shithub: pokecrystal

Download patch

ref: ebf3bfb6b289bf684941a86cafe1286d8ce212fe
parent: 253c09949b421ec09a688af2945eb3df1fc00777
author: Remy Oukaour <[email protected]>
date: Fri Dec 15 07:53:33 EST 2017

Move some misc/ files into meaningful directories

--- a/constants/mobile_constants.asm
+++ b/constants/mobile_constants.asm
@@ -1,4 +1,4 @@
-; MobileEZChatCategoryPointers indexes (see misc/fixed_words.asm)
+; MobileEZChatCategoryPointers indexes (see mobile/fixed_words.asm)
 	const_def
 	const EZCHAT_POKEMON
 	const EZCHAT_TYPES
@@ -16,6 +16,6 @@
 	const EZCHAT_FAREWELLS
 	const EZCHAT_THISANDTHAT
 
-NUM_KANA EQU 45 ; length of SortedPokemon table (see misc/fixed_words.asm)
+NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm)
 
 MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -16,7 +16,7 @@
 ; - NewPokedexOrder (see data/pokemon/dex_order_new.asm)
 ; - MonMenuIcons (see data/pokemon/menu_icons.asm)
 ; - Pokered_MonIndices (see data/time_capsule/mon_order.asm)
-; - SortedPokemon (see misc/fixed_words.asm)
+; - SortedPokemon (see mobile/fixed_words.asm)
 const_value set 1
 	const BULBASAUR  ; 01
 	const IVYSAUR    ; 02
--- /dev/null
+++ b/engine/dma_transfer.asm
@@ -1,0 +1,625 @@
+HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
+	ld hl, .Function
+	jp CallInSafeGFXMode
+
+.Function:
+	decoord 0, 0, AttrMap
+	ld hl, wScratchAttrMap
+	call CutAndPasteAttrMap
+	decoord 0, 0
+	ld hl, wScratchTileMap
+	call CutAndPasteTilemap
+	ld a, $0
+	ld [rVBK], a
+	ld hl, wScratchTileMap
+	call HDMATransferToWRAMBank3
+	ld a, $1
+	ld [rVBK], a
+	ld hl, wScratchAttrMap
+	call HDMATransferToWRAMBank3
+	ret
+; 10402d
+
+HDMATransferTileMapToWRAMBank3:: ; 10402d
+	ld hl, .Function
+	jp CallInSafeGFXMode
+
+.Function:
+	decoord 0, 0
+	ld hl, wScratchTileMap
+	call CutAndPasteTilemap
+	ld a, $0
+	ld [rVBK], a
+	ld hl, wScratchTileMap
+	call HDMATransferToWRAMBank3
+	ret
+; 104047
+
+HDMATransferAttrMapToWRAMBank3: ; 104047
+	ld hl, .Function
+	jp CallInSafeGFXMode
+
+.Function:
+	decoord 0, 0, AttrMap
+	ld hl, wScratchAttrMap
+	call CutAndPasteAttrMap
+	ld a, $1
+	ld [rVBK], a
+	ld hl, wScratchAttrMap
+	call HDMATransferToWRAMBank3
+	ret
+; 104061
+
+ReloadMapPart:: ; 104061
+	ld hl, .Function
+	jp CallInSafeGFXMode
+
+.Function:
+	decoord 0, 0, AttrMap
+	ld hl, wScratchAttrMap
+	call CutAndPasteAttrMap
+	decoord 0, 0
+	ld hl, wScratchTileMap
+	call CutAndPasteTilemap
+	call DelayFrame
+
+	di
+	ld a, [rVBK]
+	push af
+	ld a, $1
+	ld [rVBK], a
+	ld hl, wScratchAttrMap
+	call HDMATransfer_Wait127Scanlines_toBGMap
+	ld a, $0
+	ld [rVBK], a
+	ld hl, wScratchTileMap
+	call HDMATransfer_Wait127Scanlines_toBGMap
+	pop af
+	ld [rVBK], a
+	ei
+
+	ret
+
+Mobile_ReloadMapPart: ; 104099
+	ld hl, ReloadMapPart ; useless
+	ld hl, .Function
+	jp CallInSafeGFXMode
+
+.Function:
+	decoord 0, 0, AttrMap
+	ld hl, wScratchAttrMap
+	call CutAndPasteAttrMap
+	decoord 0, 0
+	ld hl, wScratchTileMap
+	call CutAndPasteTilemap
+	call DelayFrame
+
+	di
+	ld a, [rVBK]
+	push af
+	ld a, $1
+	ld [rVBK], a
+	ld hl, wScratchAttrMap
+	call HDMATransfer_NoDI
+	ld a, $0
+	ld [rVBK], a
+	ld hl, wScratchTileMap
+	call HDMATransfer_NoDI
+	pop af
+	ld [rVBK], a
+	ei
+
+	ret
+; 1040d4
+
+; XXX
+	ld hl, .unreferenced_1040da
+	jp CallInSafeGFXMode
+
+.unreferenced_1040da
+	ld a, $1
+	ld [rVBK], a
+	ld a, $3
+	ld [rSVBK], a
+	ld de, w3_d800
+	ld a, [hBGMapAddress + 1]
+	ld [rHDMA1], a
+	ld a, [hBGMapAddress]
+	ld [rHDMA2], a
+	ld a, d
+	ld [rHDMA3], a
+	ld a, e
+	ld [rHDMA4], a
+	ld a, $23
+	ld [hDMATransfer], a
+	call WaitDMATransfer
+	ret
+; 1040fb
+
+; XXX
+	ld hl, .unreferenced_104101
+	jp CallInSafeGFXMode
+
+.unreferenced_104101
+	ld a, $1
+	ld [rVBK], a
+	ld a, $3
+	ld [rSVBK], a
+	ld hl, w3_d800
+	call HDMATransferToWRAMBank3
+	ret
+; 104110
+
+OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
+; OpenText
+	ld hl, .Function
+	jp CallInSafeGFXMode
+
+.Function:
+	; Transfer AttrMap and Tilemap to BGMap
+	; Fill vBGAttrs with $00
+	; Fill vBGTiles with " "
+	decoord 0, 0, AttrMap
+	ld hl, wScratchAttrMap
+	call CutAndPasteAttrMap
+	decoord 0, 0
+	ld hl, wScratchTileMap
+	call CutAndPasteTilemap
+	call DelayFrame
+
+	di
+	ld a, [rVBK]
+	push af
+	ld a, $1
+	ld [rVBK], a
+	ld hl, wScratchAttrMap
+	call HDMATransfer_Wait123Scanlines_toBGMap
+	ld a, $0
+	ld [rVBK], a
+	ld hl, wScratchTileMap
+	call HDMATransfer_Wait123Scanlines_toBGMap
+	pop af
+	ld [rVBK], a
+	ei
+	ret
+; 104148
+
+Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
+	ld hl, .Function
+	jp CallInSafeGFXMode
+
+.Function:
+	; Transfer AttrMap and Tilemap to BGMap
+	; Fill vBGAttrs with $00
+	; Fill vBGTiles with $ff
+	decoord 0, 0, AttrMap
+	ld hl, wScratchAttrMap
+	call CutAndPasteAttrMap
+	ld c, $ff
+	decoord 0, 0
+	ld hl, wScratchTileMap
+	call CutAndPasteMap
+
+	ld a, $1
+	ld [rVBK], a
+	ld hl, wScratchAttrMap
+	call HDMATransfer_Wait127Scanlines_toBGMap
+	ld a, $0
+	ld [rVBK], a
+	ld hl, wScratchTileMap
+	call HDMATransfer_Wait127Scanlines_toBGMap
+	ret
+; 104177
+
+CallInSafeGFXMode: ; 104177
+	ld a, [hBGMapMode]
+	push af
+	ld a, [hMapAnims]
+	push af
+	xor a
+	ld [hBGMapMode], a
+	ld [hMapAnims], a
+	ld a, [rSVBK]
+	push af
+	ld a, $6
+	ld [rSVBK], a
+	ld a, [rVBK]
+	push af
+
+	call ._hl_
+
+	pop af
+	ld [rVBK], a
+	pop af
+	ld [rSVBK], a
+	pop af
+	ld [hMapAnims], a
+	pop af
+	ld [hBGMapMode], a
+	ret
+; 10419c
+
+._hl_ ; 10419c
+	jp hl
+; 10419d
+
+
+HDMATransferToWRAMBank3: ; 10419d (41:419d)
+	call _LoadHDMAParameters
+	ld a, $23
+	ld [hDMATransfer], a
+
+WaitDMATransfer: ; 104a14
+.loop
+	call DelayFrame
+	ld a, [hDMATransfer]
+	and a
+	jr nz, .loop
+	ret
+
+HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
+	ld a, [hBGMapAddress + 1]
+	ld d, a
+	ld a, [hBGMapAddress]
+	ld e, a
+	ld c, 2 * SCREEN_HEIGHT
+	jr HDMATransfer_Wait127Scanlines
+
+HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
+; $7b --> b
+	ld a, [hBGMapAddress + 1]
+	ld d, a
+	ld a, [hBGMapAddress]
+	ld e, a
+	ld c, 2 * SCREEN_HEIGHT
+	jr HDMATransfer_Wait123Scanlines
+; 1041c1 (41:41c1)
+
+HDMATransfer_NoDI: ; 1041c1
+; HDMA transfer from hl to [hBGMapAddress]
+; [hBGMapAddress] --> de
+; 2 * SCREEN_HEIGHT --> c
+	ld a, [hBGMapAddress + 1]
+	ld d, a
+	ld a, [hBGMapAddress]
+	ld e, a
+	ld c, 2 * SCREEN_HEIGHT
+
+	; [rHDMA1, rHDMA2] = hl & $fff0
+	ld a, h
+	ld [rHDMA1], a
+	ld a, l
+	and $f0
+	ld [rHDMA2], a
+	; [rHDMA3, rHDMA4] = de & $1ff0
+	ld a, d
+	and $1f
+	ld [rHDMA3], a
+	ld a, e
+	and $f0
+	ld [rHDMA4], a
+	; b = c | %10000000
+	ld a, c
+	dec c
+	or $80
+	ld b, a
+	; d = $7f - c + 1
+	ld a, $7f
+	sub c
+	ld d, a
+	; while [rLY] >= d: pass
+.loop1
+	ld a, [rLY]
+	cp d
+	jr nc, .loop1
+	; while not [rSTAT] & 3: pass
+.loop2
+	ld a, [rSTAT]
+	and $3
+	jr z, .loop2
+	; load the 5th byte of HDMA
+	ld a, b
+	ld [rHDMA5], a
+	; wait until rLY advances (c + 1) times
+	ld a, [rLY]
+	inc c
+	ld hl, rLY
+.loop3
+	cp [hl]
+	jr z, .loop3
+	ld a, [hl]
+	dec c
+	jr nz, .loop3
+	ld hl, rHDMA5
+	res 7, [hl]
+	ret
+; 104205
+
+HDMATransfer_Wait123Scanlines:
+	ld b, $7b
+	jr _continue_HDMATransfer
+
+
+HDMATransfer_Wait127Scanlines:
+	ld b, $7f
+_continue_HDMATransfer:
+; a lot of waiting around for hardware registers
+	; [rHDMA1, rHDMA2] = hl & $fff0
+	ld a, h
+	ld [rHDMA1], a
+	ld a, l
+	and $f0 ; high nybble
+	ld [rHDMA2], a
+	; [rHDMA3, rHDMA4] = de & $1ff0
+	ld a, d
+	and $1f ; lower 5 bits
+	ld [rHDMA3], a
+	ld a, e
+	and $f0 ; high nybble
+	ld [rHDMA4], a
+	; e = c | %10000000
+	ld a, c
+	dec c
+	or $80
+	ld e, a
+	; d = b - c + 1
+	ld a, b
+	sub c
+	ld d, a
+	; while [rLY] >= d: pass
+.ly_loop
+	ld a, [rLY]
+	cp d
+	jr nc, .ly_loop
+
+	di
+	; while [rSTAT] & 3: pass
+.rstat_loop_1
+	ld a, [rSTAT]
+	and $3
+	jr nz, .rstat_loop_1
+	; while not [rSTAT] & 3: pass
+.rstat_loop_2
+	ld a, [rSTAT]
+	and $3
+	jr z, .rstat_loop_2
+	; load the 5th byte of HDMA
+	ld a, e
+	ld [rHDMA5], a
+	; wait until rLY advances (c + 1) times
+	ld a, [rLY]
+	inc c
+	ld hl, rLY
+.final_ly_loop
+	cp [hl]
+	jr z, .final_ly_loop
+	ld a, [hl]
+	dec c
+	jr nz, .final_ly_loop
+	ld hl, rHDMA5
+	res 7, [hl]
+	ei
+
+	ret
+; 10424e
+
+
+_LoadHDMAParameters: ; 10424e (41:424e)
+	ld a, h
+	ld [rHDMA1], a
+	ld a, l
+	ld [rHDMA2], a
+	ld a, [hBGMapAddress + 1]
+	and $1f
+	ld [rHDMA3], a
+	ld a, [hBGMapAddress]
+	ld [rHDMA4], a
+	ret
+
+CutAndPasteTilemap: ; 10425f (41:425f)
+	ld c, " "
+	jr CutAndPasteMap
+
+CutAndPasteAttrMap: ; 104263 (41:4263)
+	ld c, $0
+
+CutAndPasteMap: ; 104265 (41:4265)
+; back up the value of c to hMapObjectIndexBuffer
+	ld a, [hMapObjectIndexBuffer]
+	push af
+	ld a, c
+	ld [hMapObjectIndexBuffer], a
+
+; for each row on the screen
+	ld c, SCREEN_HEIGHT
+.loop1
+; for each tile in the row
+	ld b, SCREEN_WIDTH
+.loop2
+; copy from de to hl
+	ld a, [de]
+	inc de
+	ld [hli], a
+	dec b
+	jr nz, .loop2
+
+; load the original value of c into hl 12 times
+	ld a, [hMapObjectIndexBuffer]
+	ld b, BG_MAP_WIDTH - SCREEN_WIDTH
+.loop3
+	ld [hli], a
+	dec b
+	jr nz, .loop3
+
+	dec c
+	jr nz, .loop1
+
+; restore the original value of hMapObjectIndexBuffer
+	pop af
+	ld [hMapObjectIndexBuffer], a
+	ret
+
+
+_Get2bpp:: ; 104284
+	; 2bpp when [rLCDC] & $80
+	; switch to WRAM bank 6
+	ld a, [rSVBK]
+	push af
+	ld a, $6
+	ld [rSVBK], a
+
+	push bc
+	push hl
+
+	; Copy c tiles of the 2bpp from b:de to wScratchTileMap
+	ld a, b ; bank
+	ld l, c ; number of tiles
+	ld h, $0
+	; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
+	add hl, hl
+	add hl, hl
+	add hl, hl
+	add hl, hl
+	ld b, h
+	ld c, l
+	ld h, d ; address
+	ld l, e
+	ld de, wScratchTileMap
+	call FarCopyBytes
+
+	pop hl
+	pop bc
+
+	push bc
+	call DelayFrame
+	pop bc
+
+	ld d, h
+	ld e, l
+	ld hl, wScratchTileMap
+	call HDMATransfer_Wait127Scanlines
+
+	; restore the previous bank
+	pop af
+	ld [rSVBK], a
+	ret
+; 1042b2
+
+_Get1bpp:: ; 1042b2
+	; 1bpp when [rLCDC] & $80
+.loop
+	ld a, c
+	cp $10
+	jp c, .bankswitch
+	jp z, .bankswitch
+	push bc
+	push hl
+	push de
+	ld c, $10
+	call .bankswitch
+	pop de
+	ld hl, $80
+	add hl, de
+	ld d, h
+	ld e, l
+	pop hl
+	lb bc, 1, 0
+	add hl, bc
+	pop bc
+	ld a, c
+	sub $10
+	ld c, a
+	jr .loop
+; 1042d6
+
+.bankswitch ; 1042d6
+	ld a, [rSVBK]
+	push af
+	ld a, $6
+	ld [rSVBK], a
+
+	push bc
+	push hl
+
+	ld a, b
+	ld l, c
+	ld h, $0
+	add hl, hl ; multiply by 8
+	add hl, hl ; multiply by 8
+	add hl, hl ; multiply by 8
+	ld c, l
+	ld b, h
+	ld h, d
+	ld l, e
+	ld de, wScratchTileMap
+	call FarCopyBytesDouble_DoubleBankSwitch
+
+	pop hl
+	pop bc
+
+	push bc
+	call DelayFrame
+	pop bc
+
+	ld d, h
+	ld e, l
+	ld hl, wScratchTileMap
+	call HDMATransfer_Wait127Scanlines
+
+	pop af
+	ld [rSVBK], a
+	ret
+; 104303
+
+HDMATransfer_OnlyTopFourRows: ; 104303
+	ld hl, .Function
+	jp CallInSafeGFXMode
+; 104309
+
+.Function:
+	ld hl, wScratchTileMap
+	decoord 0, 0
+	call .Copy
+	ld hl, wScratchTileMap + $80
+	decoord 0, 0, AttrMap
+	call .Copy
+	ld a, $1
+	ld [rVBK], a
+	ld c, $8
+	ld hl, wScratchTileMap + $80
+	debgcoord 0, 0, VBGMap1
+	call HDMATransfer_Wait127Scanlines
+	ld a, $0
+	ld [rVBK], a
+	ld c, $8
+	ld hl, wScratchTileMap
+	debgcoord 0, 0, VBGMap1
+	call HDMATransfer_Wait127Scanlines
+	ret
+
+.Copy: ; 10433a (41:433a)
+	ld b, 4
+.outer_loop
+	ld c, SCREEN_WIDTH
+.inner_loop
+	ld a, [de]
+	ld [hli], a
+	inc de
+	dec c
+	jr nz, .inner_loop
+	ld a, l
+	add BG_MAP_WIDTH - SCREEN_WIDTH
+	ld l, a
+	ld a, h
+	adc $0
+	ld h, a
+	dec b
+	jr nz, .outer_loop
+	ret
+; 104350
--- /dev/null
+++ b/engine/gbc_only.asm
@@ -1,0 +1,149 @@
+GBCOnlyScreen: ; 4ea82
+
+	ld a, [hCGB]
+	and a
+	ret nz
+
+	ld de, MUSIC_NONE
+	call PlayMusic
+
+	call ClearTileMap
+
+	ld hl, GBCOnlyGFX
+	ld de, $d000
+	ld a, [rSVBK]
+	push af
+	ld a, 0
+	ld [rSVBK], a
+	call Decompress
+	pop af
+	ld [rSVBK], a
+
+	ld de, $d000
+	ld hl, VTiles2
+	lb bc, BANK(GBCOnlyGFX), $54
+	call Get2bpp
+
+	ld de, Font
+	ld hl, VTiles1
+	lb bc, BANK(Font), $80
+	call Get1bpp
+
+	call DrawGBCOnlyScreen
+
+	call WaitBGMap
+
+; better luck next time
+.loop
+	call DelayFrame
+	jr .loop
+; 4eac5
+
+
+DrawGBCOnlyScreen: ; 4eac5
+
+	call DrawGBCOnlyBorder
+
+	; Pokemon
+	hlcoord 3, 2
+	ld b, 14
+	ld c, 4
+	ld a, $8
+	call DrawGBCOnlyGraphic
+
+	; Crystal
+	hlcoord 5, 6
+	ld b, 10
+	ld c, 2
+	ld a, $40
+	call DrawGBCOnlyGraphic
+
+	ld de, GBCOnlyString
+	hlcoord 1, 10
+	call PlaceString
+
+	ret
+; 4eaea
+
+
+DrawGBCOnlyBorder: ; 4eaea
+
+	hlcoord 0, 0
+	ld [hl], 0 ; top-left
+
+	inc hl
+	ld a, 1 ; top
+	call .FillRow
+
+	ld [hl], 2 ; top-right
+
+	hlcoord 0, 1
+	ld a, 3 ; left
+	call .FillColumn
+
+	hlcoord 19, 1
+	ld a, 4 ; right
+	call .FillColumn
+
+	hlcoord 0, 17
+	ld [hl], 5 ; bottom-left
+
+	inc hl
+	ld a, 6 ; bottom
+	call .FillRow
+
+	ld [hl], 7 ; bottom-right
+	ret
+; 4eb15
+
+.FillRow: ; 4eb15
+	ld c, SCREEN_WIDTH - 2
+.next_column
+	ld [hli], a
+	dec c
+	jr nz, .next_column
+	ret
+; 4eb1c
+
+.FillColumn: ; 4eb1c
+	ld de, SCREEN_WIDTH
+	ld c, SCREEN_HEIGHT - 2
+.next_row
+	ld [hl], a
+	add hl, de
+	dec c
+	jr nz, .next_row
+	ret
+; 4eb27
+
+
+DrawGBCOnlyGraphic: ; 4eb27
+	ld de, SCREEN_WIDTH
+.y
+	push bc
+	push hl
+.x
+	ld [hli], a
+	inc a
+	dec b
+	jr nz, .x
+	pop hl
+	add hl, de
+	pop bc
+	dec c
+	jr nz, .y
+	ret
+; 4eb38
+
+
+GBCOnlyString: ; 4eb38
+	db   "This Game Pak is"
+	next "designed only for"
+	next "use on the"
+	next "Game Boy Color.@"
+; 4eb76
+
+
+GBCOnlyGFX: ; 4eb76
+INCBIN "gfx/sgb/gbc_only.2bpp.lz"
+; 4f0bc
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -20,7 +20,7 @@
 	ret
 ; 4802f
 
-INCLUDE "misc/mobile_12.asm"
+INCLUDE "mobile/mobile_12.asm"
 
 InitGender: ; 48dcb (12:4dcb)
 	call InitGenderScreen
--- /dev/null
+++ b/engine/print_party.asm
@@ -1,0 +1,362 @@
+PrintPage1: ; 1dc1b0
+	hlcoord 0, 0
+	decoord 0, 0, wPrinterTileMapBuffer
+	ld bc, 17 * SCREEN_WIDTH
+	call CopyBytes
+	hlcoord 17, 1, wPrinterTileMapBuffer
+	ld a, $62
+	ld [hli], a
+	inc a
+	ld [hl], a
+	hlcoord 17, 2, wPrinterTileMapBuffer
+	ld a, $64
+	ld [hli], a
+	inc a
+	ld [hl], a
+	hlcoord 1, 9, wPrinterTileMapBuffer
+	ld a, " "
+	ld [hli], a
+	ld [hl], a
+	hlcoord 1, 10, wPrinterTileMapBuffer
+	ld a, $61
+	ld [hli], a
+	ld [hl], a
+	hlcoord 2, 11, wPrinterTileMapBuffer
+	lb bc, 5, 18
+	call ClearBox
+	ld a, [wd265]
+	dec a
+	call CheckCaughtMon
+	push af
+	ld a, [wd265]
+	ld b, a
+	ld c, 1 ; get page 1
+	callba GetDexEntryPagePointer
+	pop af
+	ld a, b
+	hlcoord 1, 11, wPrinterTileMapBuffer
+	call nz, FarString
+	hlcoord 19, 0, wPrinterTileMapBuffer
+	ld [hl], $35
+	ld de, SCREEN_WIDTH
+	add hl, de
+	ld b, $f
+.column_loop
+	ld [hl], $37
+	add hl, de
+	dec b
+	jr nz, .column_loop
+	ld [hl], $3a
+	ret
+; 1dc213
+
+PrintPage2: ; 1dc213
+	hlcoord 0, 0, wPrinterTileMapBuffer
+	ld bc, 8 * SCREEN_WIDTH
+	ld a, " "
+	call ByteFill
+	hlcoord 0, 0, wPrinterTileMapBuffer
+	ld a, $36
+	ld b, 6
+	call .FillColumn
+	hlcoord 19, 0, wPrinterTileMapBuffer
+	ld a, $37
+	ld b, 6
+	call .FillColumn
+	hlcoord 0, 6, wPrinterTileMapBuffer
+	ld [hl], $38
+	inc hl
+	ld a, $39
+	ld bc, SCREEN_HEIGHT
+	call ByteFill
+	ld [hl], $3a
+	hlcoord 0, 7, wPrinterTileMapBuffer
+	ld bc, SCREEN_WIDTH
+	ld a, $32
+	call ByteFill
+	ld a, [wd265]
+	dec a
+	call CheckCaughtMon
+	push af
+	ld a, [wd265]
+	ld b, a
+	ld c, 2 ; get page 2
+	callba GetDexEntryPagePointer
+	pop af
+	hlcoord 1, 1, wPrinterTileMapBuffer
+	ld a, b
+	call nz, FarString
+	ret
+; 1dc26a
+
+.FillColumn: ; 1dc26a
+	push de
+	ld de, SCREEN_WIDTH
+.column_loop
+	ld [hl], a
+	add hl, de
+	dec b
+	jr nz, .column_loop
+	pop de
+	ret
+; 1dc275
+
+GBPrinterStrings:
+GBPrinterString_Null: db "@"
+GBPrinterString_CheckingLink: next " CHECKING LINK...@"
+GBPrinterString_Transmitting: next "  TRANSMITTING...@"
+GBPrinterString_Printing: next "    PRINTING...@"
+GBPrinterString_PrinterError1:
+	db   " Printer Error 1"
+	next ""
+	next "Check the Game Boy"
+	next "Printer Manual."
+	db   "@"
+GBPrinterString_PrinterError2:
+	db   " Printer Error 2"
+	next ""
+	next "Check the Game Boy"
+	next "Printer Manual."
+	db   "@"
+GBPrinterString_PrinterError3:
+	db   " Printer Error 3"
+	next ""
+	next "Check the Game Boy"
+	next "Printer Manual."
+	db   "@"
+GBPrinterString_PrinterError4:
+	db   " Printer Error 4"
+	next ""
+	next "Check the Game Boy"
+	next "Printer Manual."
+	db   "@"
+; 1dc381
+
+PrintPartyMonPage1: ; 1dc381
+	call ClearBGPalettes
+	call ClearTileMap
+	call ClearSprites
+	xor a
+	ld [hBGMapMode], a
+	call LoadFontsBattleExtra
+
+	ld de, GBPrinterHPIcon
+	ld hl, VTiles2 tile $71
+	lb bc, BANK(GBPrinterHPIcon), 1
+	call Request1bpp
+
+	ld de, GBPrinterLvIcon
+	ld hl, VTiles2 tile $6e
+	lb bc, BANK(GBPrinterLvIcon), 1
+	call Request1bpp
+
+	ld de, ShinyIconGFX
+	ld hl, VTiles2 tile $3f
+	lb bc, BANK(ShinyIconGFX), 1
+	call Get2bpp
+
+	xor a
+	ld [MonType], a
+	callba CopyPkmnToTempMon
+	hlcoord 0, 7
+	ld b, 9
+	ld c, 18
+	call TextBox
+	hlcoord 8, 2
+	ld a, [TempMonLevel]
+	call PrintLevel_Force3Digits
+	hlcoord 12, 2
+	ld [hl], "◀" ; Filled left triangle
+	inc hl
+	ld de, TempMonMaxHP
+	lb bc, 2, 3
+	call PrintNum
+	ld a, [CurPartySpecies]
+	ld [wd265], a
+	ld [CurSpecies], a
+	ld hl, PartyMonNicknames
+	call Function1dc50e
+	hlcoord 8, 4
+	call PlaceString
+	hlcoord 9, 6
+	ld [hl], "/"
+	call GetPokemonName
+	hlcoord 10, 6
+	call PlaceString
+	hlcoord 8, 0
+	ld [hl], "№"
+	inc hl
+	ld [hl], "."
+	inc hl
+	ld de, wd265
+	lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+	call PrintNum
+	hlcoord 1, 9
+	ld de, String1dc550
+	call PlaceString
+	ld hl, PartyMonOT
+	call Function1dc50e
+	hlcoord 4, 9
+	call PlaceString
+	hlcoord 1, 11
+	ld de, String1dc559
+	call PlaceString
+	hlcoord 4, 11
+	ld de, TempMonID
+	lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+	call PrintNum
+	hlcoord 1, 14
+	ld de, String1dc554
+	call PlaceString
+	hlcoord 7, 14
+	ld a, [TempMonMoves + 0]
+	call Function1dc51a
+	call Function1dc52c
+	ld hl, TempMonDVs
+	predef GetUnownLetter
+	ld hl, wBoxAlignment
+	xor a
+	ld [hl], a
+	ld a, [CurPartySpecies]
+	cp UNOWN
+	jr z, .asm_1dc469
+	inc [hl]
+
+.asm_1dc469
+	hlcoord 0, 0
+	call _PrepMonFrontpic
+	call WaitBGMap
+	ld b, SCGB_STATS_SCREEN_HP_PALS
+	call GetSGBLayout
+	call SetPalettes
+	ret
+; 1dc47b
+
+PrintPartyMonPage2: ; 1dc47b
+	call ClearBGPalettes
+	call ClearTileMap
+	call ClearSprites
+	xor a
+	ld [hBGMapMode], a
+	call LoadFontsBattleExtra
+	xor a
+	ld [MonType], a
+	callba CopyPkmnToTempMon
+	hlcoord 0, 0
+	ld b, 15
+	ld c, 18
+	call TextBox
+	ld bc, SCREEN_WIDTH
+	decoord 0, 0
+	hlcoord 0, 1
+	call CopyBytes
+	hlcoord 7, 0
+	ld a, [TempMonMoves + 1]
+	call Function1dc51a
+	hlcoord 7, 2
+	ld a, [TempMonMoves + 2]
+	call Function1dc51a
+	hlcoord 7, 4
+	ld a, [TempMonMoves + 3]
+	call Function1dc51a
+	hlcoord 7, 7
+	ld de, String1dc55d
+	call PlaceString
+	hlcoord 16, 7
+	ld de, TempMonAttack
+	call .PrintTempMonStats
+	hlcoord 16, 9
+	ld de, TempMonDefense
+	call .PrintTempMonStats
+	hlcoord 16, 11
+	ld de, TempMonSpclAtk
+	call .PrintTempMonStats
+	hlcoord 16, 13
+	ld de, TempMonSpclDef
+	call .PrintTempMonStats
+	hlcoord 16, 15
+	ld de, TempMonSpeed
+	call .PrintTempMonStats
+	call WaitBGMap
+	ld b, SCGB_STATS_SCREEN_HP_PALS
+	call GetSGBLayout
+	call SetPalettes
+	ret
+; 1dc507
+
+.PrintTempMonStats: ; 1dc507
+	lb bc, 2, 3
+	call PrintNum
+	ret
+; 1dc50e
+
+Function1dc50e: ; 1dc50e
+	ld bc, NAME_LENGTH
+	ld a, [CurPartyMon]
+	call AddNTimes
+	ld e, l
+	ld d, h
+	ret
+; 1dc51a
+
+Function1dc51a: ; 1dc51a
+	and a
+	jr z, .no_move
+
+	ld [wd265], a
+	call GetMoveName
+	jr .got_string
+
+.no_move
+	ld de, String1dc584
+
+.got_string
+	call PlaceString
+	ret
+; 1dc52c
+
+Function1dc52c: ; 1dc52c
+	callba GetGender
+	ld a, " "
+	jr c, .got_gender
+	ld a, "♂"
+	jr nz, .got_gender
+	ld a, "♀"
+
+.got_gender
+	hlcoord 17, 2
+	ld [hl], a
+	ld bc, TempMonDVs
+	callba CheckShininess
+	ret nc
+	hlcoord 18, 2
+	ld [hl], "<SHINY>"
+	ret
+; 1dc550
+
+String1dc550: ; 1dc550
+	db "OT/@"
+
+String1dc554: ; 1dc554
+	db "MOVE@"
+
+String1dc559: ; 1dc559
+	db "<ID>№.@"
+
+String1dc55d: ; 1dc55d
+	db   "ATTACK"
+	next "DEFENSE"
+	next "SPCL.ATK"
+	next "SPCL.DEF"
+	next "SPEED"
+	db   "@"
+
+String1dc584: ; 1dc584
+	db "------------@"
+; 1dc591
+
+GBPrinterHPIcon: ; 1dc591
+INCBIN "gfx/printer/hp.1bpp"
+
+GBPrinterLvIcon: ; 1dc599
+INCBIN "gfx/printer/lv.1bpp"
--- /dev/null
+++ b/engine/unused_title.asm
@@ -1,0 +1,556 @@
+UnusedTitleScreen: ; 10c000
+
+	call ClearBGPalettes
+	call ClearTileMap
+	call DisableLCD
+	xor a
+	ld [hBGMapMode], a
+
+	ld hl, wJumptableIndex
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+
+	ld hl, UnusedTitleBG_GFX
+	ld de, VTiles2
+	ld bc, VBGMap0 - VTiles2
+	call CopyBytes
+
+	ld hl, UnusedTitleBG_GFX + $800
+	ld de, VTiles1
+	ld bc, VTiles2 - VTiles1
+	call CopyBytes
+
+	ld hl, UnusedTitleFG_GFX
+	ld de, VTiles0
+	ld bc, VTiles1 - VTiles0
+	call CopyBytes
+
+	ld hl, UnusedTitleBG_Tilemap
+	debgcoord 0, 0
+	ld bc, 32 * 32
+.copy
+	ld a, 0
+	ld [rVBK], a
+	ld a, [hli]
+	ld [de], a
+	ld a, 1
+	ld [rVBK], a
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec bc
+	ld a, b
+	or c
+	jr nz, .copy
+
+	ld hl, UnusedTitleFG_OAM
+	ld de, Sprites
+	ld bc, $a0
+	call CopyBytes
+
+	call EnableLCD
+	ld a, [rLCDC]
+	set 1, a
+	set 2, a
+	ld [rLCDC], a
+
+	call DelayFrame
+
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+
+	ld hl, UnusedTitleBG_Palettes
+	ld de, UnknBGPals
+	ld bc, $40
+	call CopyBytes
+
+	ld hl, UnusedTitleFG_Palettes
+	ld de, UnknOBPals
+	ld bc, $40
+	call CopyBytes
+
+	ld hl, UnusedTitleBG_Palettes
+	ld de, BGPals
+	ld bc, $40
+	call CopyBytes
+
+	ld hl, UnusedTitleFG_Palettes
+	ld de, OBPals
+	ld bc, $40
+	call CopyBytes
+
+	pop af
+	ld [rSVBK], a
+
+	ld a, $1
+	ld [hCGBPalUpdate], a
+
+	ld de, MUSIC_TITLE
+	call PlayMusic
+
+	ret
+; 10c0b1
+
+UnusedTitleBG_GFX: ; 10c0b1
+INCBIN "gfx/title/old_bg.2bpp"
+; 10d0b1
+
+UnusedTitleBG_Tilemap: ; 10d0b1
+; 32x32 (tile, attributes)
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+; 10d8b1
+
+UnusedTitleBG_Palettes: ; 10d8b1
+	RGB 00, 00, 00
+	RGB 25, 15, 28
+	RGB 22, 11, 28
+	RGB 19, 08, 26
+
+	RGB 00, 00, 00
+	RGB 17, 07, 22
+	RGB 13, 07, 16
+	RGB 19, 08, 26
+
+	RGB 25, 15, 28
+	RGB 22, 11, 28
+	RGB 19, 08, 26
+	RGB 17, 07, 22
+
+	RGB 22, 11, 28
+	RGB 19, 08, 26
+	RGB 17, 07, 22
+	RGB 13, 07, 16
+
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 16, 16, 24
+	RGB 02, 13, 21
+
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 20, 20, 20
+	RGB 12, 12, 12
+
+	RGB 00, 00, 00
+	RGB 01, 11, 23
+	RGB 16, 16, 24
+	RGB 02, 13, 21
+
+	RGB 00, 00, 00
+	RGB 22, 10, 31
+	RGB 19, 08, 26
+	RGB 17, 07, 22
+
+
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+
+	RGB 31, 31, 31
+	RGB 20, 04, 20
+	RGB 16, 08, 16
+	RGB 24, 00, 24
+
+	rept 54
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	endr
+; 10dab1
+
+UnusedTitleFG_GFX: ; 10dab1
+INCBIN "gfx/title/old_fg.2bpp"
+; 10eab1
+
+UnusedTitleFG_Palettes: ; 10eab1
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 16, 16, 24
+	RGB 02, 13, 21
+
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 20, 20, 20
+	RGB 12, 12, 12
+
+	RGB 00, 00, 00
+	RGB 01, 11, 23
+	RGB 16, 16, 24
+	RGB 02, 13, 21
+
+	RGB 00, 00, 00
+	RGB 31, 22, 00
+	RGB 31, 27, 00
+	RGB 31, 31, 00
+
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 16, 16, 24
+	RGB 02, 13, 21
+
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 20, 20, 20
+	RGB 12, 12, 12
+
+	RGB 00, 00, 00
+	RGB 01, 11, 23
+	RGB 16, 16, 24
+	RGB 02, 13, 21
+
+	RGB 16, 31, 00
+	RGB 22, 31, 00
+	RGB 27, 31, 00
+	RGB 31, 31, 00
+
+
+	RGB 31, 00, 18
+	RGB 31, 31, 31
+	RGB 16, 16, 24
+	RGB 02, 13, 21
+
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 20, 20, 20
+	RGB 12, 12, 12
+
+	RGB 00, 00, 00
+	RGB 01, 11, 23
+	RGB 16, 16, 24
+	RGB 02, 13, 21
+
+	RGB 16, 31, 00
+	RGB 22, 31, 00
+	RGB 27, 31, 00
+	RGB 31, 31, 00
+
+	RGB 24, 18, 31
+	RGB 31, 31, 00
+	RGB 31, 31, 01
+	RGB 31, 31, 03
+
+	RGB 31, 31, 05
+	RGB 31, 31, 08
+	RGB 31, 31, 10
+	RGB 31, 31, 12
+
+	RGB 31, 31, 14
+	RGB 31, 31, 16
+	RGB 31, 31, 18
+	RGB 31, 31, 20
+
+	RGB 31, 31, 22
+	RGB 31, 31, 25
+	RGB 31, 31, 27
+	RGB 31, 31, 29
+
+	RGB 24, 06, 06
+	RGB 01, 01, 01
+	RGB 03, 03, 03
+	RGB 05, 05, 05
+
+	RGB 08, 08, 08
+	RGB 10, 10, 10
+	RGB 12, 12, 12
+	RGB 14, 14, 14
+
+	RGB 16, 16, 16
+	RGB 18, 18, 18
+	RGB 20, 20, 20
+	RGB 22, 22, 22
+
+	RGB 25, 25, 25
+	RGB 27, 27, 27
+	RGB 29, 29, 29
+	RGB 31, 31, 31
+
+	RGB 18, 24, 18
+	RGB 31, 29, 01
+	RGB 31, 27, 03
+	RGB 31, 25, 05
+
+	RGB 31, 22, 08
+	RGB 31, 20, 10
+	RGB 31, 18, 12
+	RGB 31, 16, 14
+
+	RGB 31, 14, 16
+	RGB 31, 12, 18
+	RGB 31, 10, 20
+	RGB 31, 08, 22
+
+	RGB 31, 05, 25
+	RGB 31, 03, 27
+	RGB 31, 01, 29
+	RGB 31, 00, 31
+
+	RGB 18, 06, 31
+	RGB 00, 31, 31
+	RGB 00, 31, 29
+	RGB 00, 31, 27
+
+	RGB 00, 31, 25
+	RGB 00, 31, 22
+	RGB 00, 31, 20
+	RGB 00, 31, 18
+
+	RGB 00, 31, 16
+	RGB 00, 31, 14
+	RGB 00, 31, 12
+	RGB 00, 31, 10
+
+	RGB 00, 31, 08
+	RGB 00, 31, 05
+	RGB 00, 31, 03
+	RGB 00, 31, 01
+
+	RGB 12, 31, 06
+	RGB 00, 00, 31
+	RGB 00, 01, 31
+	RGB 00, 03, 31
+
+	RGB 00, 05, 31
+	RGB 00, 08, 31
+	RGB 00, 10, 31
+	RGB 00, 12, 31
+
+	RGB 00, 14, 31
+	RGB 00, 16, 31
+	RGB 00, 18, 31
+	RGB 00, 20, 31
+
+	RGB 00, 22, 31
+	RGB 00, 25, 31
+	RGB 00, 27, 31
+	RGB 00, 29, 31
+
+	RGB 00, 00, 00
+	RGB 06, 00, 04
+	RGB 19, 02, 09
+	RGB 28, 04, 11
+
+	RGB 31, 07, 16
+	RGB 31, 17, 23
+	RGB 31, 26, 30
+	RGB 07, 05, 10
+
+	RGB 14, 10, 18
+	RGB 20, 20, 25
+	RGB 25, 27, 31
+	RGB 09, 05, 06
+
+	RGB 23, 16, 13
+	RGB 30, 23, 22
+	RGB 31, 28, 28
+	RGB 31, 31, 31
+
+	RGB 06, 31, 31
+	RGB 04, 00, 04
+	RGB 11, 02, 04
+	RGB 17, 02, 04
+
+	RGB 24, 05, 04
+	RGB 28, 07, 04
+	RGB 31, 11, 04
+	RGB 02, 01, 15
+
+	RGB 04, 11, 22
+	RGB 12, 25, 25
+	RGB 20, 31, 31
+	RGB 09, 04, 03
+
+	RGB 22, 11, 08
+	RGB 27, 19, 16
+	RGB 30, 28, 26
+	RGB 31, 31, 31
+
+	RGB 06, 18, 06
+	RGB 04, 04, 02
+	RGB 07, 07, 02
+	RGB 18, 18, 04
+
+	RGB 24, 24, 06
+	RGB 27, 27, 11
+	RGB 31, 31, 20
+	RGB 02, 03, 10
+
+	RGB 04, 05, 13
+	RGB 06, 10, 25
+	RGB 08, 15, 31
+	RGB 04, 00, 06
+
+	RGB 11, 07, 14
+	RGB 21, 16, 23
+	RGB 29, 26, 31
+	RGB 31, 31, 31
+
+	RGB 06, 00, 18
+	RGB 00, 04, 03
+	RGB 02, 09, 05
+	RGB 11, 19, 07
+
+	RGB 16, 24, 08
+	RGB 22, 31, 09
+	RGB 24, 31, 18
+	RGB 03, 01, 03
+
+	RGB 10, 04, 10
+	RGB 20, 08, 20
+	RGB 31, 17, 31
+	RGB 01, 03, 06
+
+	RGB 05, 09, 10
+	RGB 15, 21, 21
+	RGB 23, 25, 25
+	RGB 31, 31, 31
+
+	RGB 00, 18, 31
+	RGB 00, 05, 07
+	RGB 00, 08, 13
+	RGB 00, 12, 17
+
+	RGB 01, 20, 24
+	RGB 04, 27, 31
+	RGB 14, 31, 31
+	RGB 04, 02, 02
+
+	RGB 15, 01, 03
+	RGB 26, 04, 07
+	RGB 31, 13, 16
+	RGB 00, 05, 02
+
+	RGB 01, 11, 03
+	RGB 06, 21, 06
+	RGB 13, 31, 16
+	RGB 31, 31, 31
+
+	RGB 00, 06, 06
+	RGB 00, 01, 08
+	RGB 00, 05, 14
+	RGB 00, 08, 19
+
+	RGB 02, 14, 26
+	RGB 04, 21, 31
+	RGB 06, 26, 31
+	RGB 13, 00, 00
+
+	RGB 27, 07, 00
+	RGB 31, 17, 05
+	RGB 31, 25, 16
+	RGB 02, 04, 00
+
+	RGB 07, 11, 03
+	RGB 17, 19, 05
+	RGB 27, 31, 16
+	RGB 31, 31, 31
+
+	RGB 02, 00, 00
+	RGB 04, 01, 06
+	RGB 11, 03, 14
+	RGB 16, 04, 19
+
+	RGB 20, 07, 22
+	RGB 26, 12, 27
+	RGB 26, 20, 31
+	RGB 04, 07, 00
+
+	RGB 16, 20, 07
+	RGB 24, 28, 15
+	RGB 29, 31, 24
+	RGB 05, 02, 02
+
+	RGB 15, 04, 02
+	RGB 24, 11, 10
+	RGB 31, 22, 20
+	RGB 31, 31, 31
+
+	RGB 00, 00, 14
+	RGB 12, 00, 00
+	RGB 27, 05, 00
+	RGB 31, 15, 05
+
+	RGB 31, 26, 13
+	RGB 31, 30, 21
+	RGB 05, 07, 16
+	RGB 04, 16, 20
+
+	RGB 04, 24, 26
+	RGB 08, 31, 31
+	RGB 23, 31, 31
+	RGB 00, 00, 00
+
+	RGB 05, 05, 05
+	RGB 17, 17, 15
+	RGB 28, 28, 24
+	RGB 31, 31, 31
+; 10ecb1
+
+UnusedTitleFG_OAM: ; 10ecb1
+	db $18, $38, $00, $01,  $18, $40, $02, $01,  $18, $48, $04, $01,  $18, $50, $06, $01
+	db $18, $58, $08, $01,  $18, $60, $0a, $01,  $18, $68, $0c, $01,  $18, $70, $0e, $01
+
+	db $28, $38, $10, $00,  $28, $40, $12, $00,  $28, $48, $14, $00,  $28, $50, $16, $00
+	db $28, $58, $18, $00,  $28, $60, $1a, $00,  $28, $68, $1c, $00,  $28, $70, $1e, $00
+
+	db $38, $38, $20, $00,  $38, $40, $22, $00,  $38, $48, $24, $00,  $38, $50, $26, $00
+	db $38, $58, $28, $00,  $38, $60, $2a, $00,  $38, $68, $2c, $00,  $38, $70, $2e, $00
+
+	db $48, $38, $30, $02,  $48, $40, $32, $02,  $48, $48, $34, $02,  $48, $50, $36, $02
+	db $48, $58, $38, $02,  $48, $60, $3a, $02,  $48, $68, $3c, $02,  $48, $70, $3e, $02
+
+	db $58, $38, $40, $01,  $58, $40, $42, $01,  $58, $48, $44, $01,  $58, $50, $46, $01
+	db $58, $58, $48, $01,  $58, $60, $4a, $01,  $58, $68, $4c, $01,  $58, $70, $4e, $01
+; 10ed51
+
+
+Function10ed51: ; 10ed51
+	call _TitleScreen
+.loop
+	call JoyTextDelay
+	ld a, [hJoyLast]
+	ld b, a
+	and 1
+	jr nz, .done
+	call SuicuneFrameIterator
+	call DelayFrame
+	jr .loop
+.done
+	ret
+; 10ed67
--- /dev/null
+++ b/gfx/emotes.asm
@@ -1,0 +1,12 @@
+ShockEmote:     INCBIN "gfx/emotes/shock.2bpp"
+QuestionEmote:  INCBIN "gfx/emotes/question.2bpp"
+HappyEmote:     INCBIN "gfx/emotes/happy.2bpp"
+SadEmote:       INCBIN "gfx/emotes/sad.2bpp"
+HeartEmote:     INCBIN "gfx/emotes/heart.2bpp"
+BoltEmote:      INCBIN "gfx/emotes/bolt.2bpp"
+SleepEmote:     INCBIN "gfx/emotes/sleep.2bpp"
+FishEmote:      INCBIN "gfx/emotes/fish.2bpp"
+JumpShadowGFX:  INCBIN "gfx/overworld/shadow.2bpp"
+FishingRodGFX:  INCBIN "gfx/overworld/fishing_rod.2bpp"
+BoulderDustGFX: INCBIN "gfx/overworld/boulder_dust.2bpp"
+GrassRustleGFX: INCBIN "gfx/overworld/grass_rustle.2bpp"
binary files a/gfx/mobile/hp.png /dev/null differ
binary files a/gfx/mobile/lv.png /dev/null differ
binary files /dev/null b/gfx/printer/hp.png differ
binary files /dev/null b/gfx/printer/lv.png differ
--- a/main.asm
+++ b/main.asm
@@ -1784,9 +1784,9 @@
 
 INCLUDE "event/celebi.asm"
 INCLUDE "engine/main_menu.asm"
-INCLUDE "misc/mobile_menu.asm"
+INCLUDE "mobile/mobile_menu.asm"
 INCLUDE "engine/search.asm"
-INCLUDE "misc/mobile_12_2.asm"
+INCLUDE "mobile/mobile_12_2.asm"
 ; mobile battle selection
 
 AskRememberPassword: ; 4ae12
@@ -3196,7 +3196,7 @@
 	scf
 	ret
 
-INCLUDE "misc/gbc_only.asm"
+INCLUDE "engine/gbc_only.asm"
 
 INCLUDE "event/poke_seer.asm"
 
@@ -4604,12 +4604,12 @@
 String_89116:
 	db "-----@"
 
-INCLUDE "misc/mobile_22.asm"
+INCLUDE "mobile/mobile_22.asm"
 INCLUDE "event/unown.asm"
 INCLUDE "event/buena.asm"
 INCLUDE "event/dratini.asm"
 INCLUDE "event/battle_tower.asm"
-INCLUDE "misc/mobile_22_2.asm"
+INCLUDE "mobile/mobile_22_2.asm"
 
 
 SECTION "bank23", ROMX
@@ -5088,17 +5088,17 @@
 
 SECTION "mobile_40", ROMX
 
-INCLUDE "misc/mobile_40.asm"
+INCLUDE "mobile/mobile_40.asm"
 
 
 SECTION "bank41", ROMX
 
-INCLUDE "misc/gfx_41.asm"
-
+INCLUDE "engine/dma_transfer.asm"
+INCLUDE "gfx/emotes.asm"
 INCLUDE "engine/warp_connection.asm"
 INCLUDE "engine/mysterygift.asm"
 INCLUDE "battle/used_move_text.asm"
-INCLUDE "misc/mobile_41.asm"
+INCLUDE "mobile/mobile_41.asm"
 
 LoadOverworldFont:: ; 106594
 	ld de, .font
@@ -5120,7 +5120,7 @@
 
 SECTION "mobile_42", ROMX
 
-INCLUDE "misc/mobile_42.asm"
+INCLUDE "mobile/mobile_42.asm"
 
 
 SECTION "Intro Logo", ROMX
@@ -5131,10 +5131,10 @@
 
 SECTION "bank43", ROMX
 
-INCLUDE "misc/unused_title.asm"
+INCLUDE "engine/unused_title.asm"
 INCLUDE "engine/title.asm"
-INCLUDE "misc/mobile_45.asm"
-INCLUDE "misc/mobile_46.asm"
+INCLUDE "mobile/mobile_45.asm"
+INCLUDE "mobile/mobile_46.asm"
 
 
 SECTION "battle_tower_47", ROMX
@@ -5144,13 +5144,13 @@
 
 SECTION "bank5B", ROMX
 
-INCLUDE "misc/mobile_5b.asm"
+INCLUDE "mobile/mobile_5b.asm"
 INCLUDE "engine/link_trade.asm"
 
 
 SECTION "mobile_5c", ROMX
 
-INCLUDE "misc/mobile_5c.asm"
+INCLUDE "mobile/mobile_5c.asm"
 
 
 SECTION "Crystal Phone Text 2", ROMX
@@ -5170,7 +5170,7 @@
 	callba FinishBattleAnim
 	ret
 
-INCLUDE "misc/mobile_5f.asm"
+INCLUDE "mobile/mobile_5f.asm"
 
 
 SECTION "Common Text 1", ROMX
@@ -5210,13 +5210,7 @@
 UnownFont: ; 1dc000
 INCBIN "gfx/font/unown_font.2bpp"
 
-INCLUDE "misc/printer_77.asm"
-
-MobileHPIcon: ; 1dc591
-INCBIN "gfx/mobile/hp.1bpp"
-
-MobileLvIcon: ; 1dc599
-INCBIN "gfx/mobile/lv.1bpp"
+INCLUDE "engine/print_party.asm"
 
 
 SECTION "bank77_2", ROMX
--- a/misc/battle_tower_47.asm
+++ b/misc/battle_tower_47.asm
@@ -85,7 +85,7 @@
 	ret
 ; 11c05d
 
-INCLUDE "misc/fixed_words.asm"
+INCLUDE "mobile/fixed_words.asm"
 
 BTTrainerClassGenders: ; 11f2f0
 	db MALE   ; FALKNER
--- a/misc/fixed_words.asm
+++ /dev/null
@@ -1,4294 +1,0 @@
-; These functions seem to be related to the selection of preset phrases
-; for use in mobile communications.  Annoyingly, they separate the
-; Battle Tower function above from the data it references.
-Function11c05d: ; 11c05d
-	ld a, e
-	or d
-	jr z, .error
-	ld a, e
-	and d
-	cp $ff
-	jr z, .error
-	push hl
-	call CopyMobileEZChatToC608
-	pop hl
-	call PlaceString
-	and a
-	ret
-
-.error
-	ld c, l
-	ld b, h
-	scf
-	ret
-; 11c075
-
-Function11c075: ; 11c075
-	push de
-	ld a, c
-	call Function11c254
-	pop de
-	ld bc, wcd36
-	call Function11c08f
-	ret
-; 11c082
-
-Function11c082: ; 11c082
-; XXX
-	push de
-	ld a, c
-	call Function11c254
-	pop de
-	ld bc, wcd36
-	call PrintEZChatBattleMessage
-	ret
-; 11c08f
-
-Function11c08f: ; 11c08f
-	ld l, e
-	ld h, d
-	push hl
-	ld a, 3
-.loop
-	push af
-	ld a, [bc]
-	ld e, a
-	inc bc
-	ld a, [bc]
-	ld d, a
-	inc bc
-	push bc
-	call Function11c05d
-	jr c, .okay
-	inc bc
-
-.okay
-	ld l, c
-	ld h, b
-	pop bc
-	pop af
-	dec a
-	jr nz, .loop
-	pop hl
-	ld de, 2 * SCREEN_WIDTH
-	add hl, de
-	ld a, $3
-.loop2
-	push af
-	ld a, [bc]
-	ld e, a
-	inc bc
-	ld a, [bc]
-	ld d, a
-	inc bc
-	push bc
-	call Function11c05d
-	jr c, .okay2
-	inc bc
-
-.okay2
-	ld l, c
-	ld h, b
-	pop bc
-	pop af
-	dec a
-	jr nz, .loop2
-	ret
-; 11c0c6
-
-PrintEZChatBattleMessage: ; 11c0c6
-; Use up to 6 words from bc to print text starting at de.
-	; Preserve $cf63, $cf64
-	ld a, [wJumptableIndex]
-	ld l, a
-	ld a, [wcf64]
-	ld h, a
-	push hl
-	; reset value at c618 (not preserved)
-	ld hl, $c618
-	ld a, $0
-	ld [hli], a
-	; preserve de
-	push de
-	; $cf63 keeps track of which line we're on (0, 1, or 2)
-	; $cf64 keeps track of how much room we have left in the current line
-	xor a
-	ld [wJumptableIndex], a
-	ld a, 18
-	ld [wcf64], a
-	ld a, $6 ; up to 6 times
-.loop
-	push af
-	; load the 2-byte word data pointed to by bc
-	ld a, [bc]
-	ld e, a
-	inc bc
-	ld a, [bc]
-	ld d, a
-	inc bc
-	; if $0000, we're done
-	or e
-	jr z, .done
-	; preserving hl and bc, get the length of the word
-	push hl
-	push bc
-	call CopyMobileEZChatToC608
-	call GetLengthOfWordAtC608
-	ld e, c
-	pop bc
-	pop hl
-	; if the functions return 0, we're done
-	ld a, e
-	or a
-	jr z, .done
-.loop2
-	; e contains the length of the word
-	; add 1 for the space, unless we're at the start of the line
-	ld a, [wcf64]
-	cp 18
-	jr z, .skip_inc
-	inc e
-
-.skip_inc
-	; if the word fits, put it on the same line
-	cp e
-	jr nc, .same_line
-	; otherwise, go to the next line
-	ld a, [wJumptableIndex]
-	inc a
-	ld [wJumptableIndex], a
-	; if we're on line 2, insert "<NEXT>"
-	ld [hl], "<NEXT>"
-	rra
-	jr c, .got_line_terminator
-	; else, insert "<CONT>"
-	ld [hl], "<CONT>"
-
-.got_line_terminator
-	inc hl
-	; init the next line, holding on to the same word
-	ld a, 18
-	ld [wcf64], a
-	dec e
-	jr .loop2
-
-.same_line
-	; add the space, unless we're at the start of the line
-	cp 18
-	jr z, .skip_space
-	ld [hl], " "
-	inc hl
-
-.skip_space
-	; deduct the length of the word
-	sub e
-	ld [wcf64], a
-	ld de, $c608
-.place_string_loop
-	; load the string from de to hl
-	ld a, [de]
-	cp "@"
-	jr z, .done
-	inc de
-	ld [hli], a
-	jr .place_string_loop
-
-.done
-	; next word?
-	pop af
-	dec a
-	jr nz, .loop
-	; we're finished, place "<DONE>"
-	ld [hl], "<DONE>"
-	; now, let's place the string from c618 to bc
-	pop bc
-	ld hl, $c618
-	call PlaceHLTextAtBC
-	; restore the original values of $cf63 and $cf64
-	pop hl
-	ld a, l
-	ld [wJumptableIndex], a
-	ld a, h
-	ld [wcf64], a
-	ret
-; 11c14a
-
-GetLengthOfWordAtC608: ; 11c14a
-	ld c, $0
-	ld hl, $c608
-.loop
-	ld a, [hli]
-	cp "@"
-	ret z
-	inc c
-	jr .loop
-; 11c156
-
-CopyMobileEZChatToC608: ; 11c156
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, "@"
-	ld hl, $c608
-	ld bc, NAME_LENGTH
-	call ByteFill
-	ld a, d
-	and a
-	jr z, .get_name
-	ld hl, MobileEZChatCategoryPointers
-	dec d
-	sla d
-	ld c, d
-	ld b, $0
-	add hl, bc
-	ld a, [hli]
-	ld c, a
-	ld a, [hl]
-	ld b, a
-	push bc
-	pop hl
-	ld c, e
-	ld b, $0
-	sla c
-	rl b
-	sla c
-	rl b
-	sla c
-	rl b
-	add hl, bc
-	ld bc, 5 ; length of a string
-.copy_string
-	ld de, $c608
-	call CopyBytes
-	ld de, $c608
-	pop af
-	ld [rSVBK], a
-	ret
-
-.get_name
-	ld a, e
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, StringBuffer1
-	ld bc, PKMN_NAME_LENGTH - 1
-	jr .copy_string
-; 11c1ab
-
-Function11c1ab: ; 11c1ab
-	ld a, [hInMenu]
-	push af
-	ld a, $1
-	ld [hInMenu], a
-	call Function11c1b9
-	pop af
-	ld [hInMenu], a
-	ret
-; 11c1b9
-
-Function11c1b9: ; 11c1b9
-	call .InitKanaMode
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	call EZChat_MasterLoop
-	pop af
-	ld [rSVBK], a
-	ret
-; 11c1ca
-
-.InitKanaMode: ; 11c1ca
-	xor a
-	ld [wJumptableIndex], a
-	ld [wcf64], a
-	ld [wcf65], a
-	ld [wcf66], a
-	ld [wcd23], a
-	ld [wcd20], a
-	ld [wcd21], a
-	ld [wcd22], a
-	ld [wcd35], a
-	ld [wcd2b], a
-	ld a, $ff
-	ld [wcd24], a
-	ld a, [wMenuCursorY]
-	dec a
-	call Function11c254
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearScreen
-	call Function11d323
-	call SetPalettes
-	call DisableLCD
-	ld hl, GFX_11d67e
-	ld de, VTiles2
-	ld bc, $60
-	call CopyBytes
-	ld hl, LZ_11d6de
-	ld de, VTiles0
-	call Decompress
-	call EnableLCD
-	callba ReloadMapPart
-	callba ClearSpriteAnims
-	callba LoadPokemonData
-	callba Pokedex_ABCMode
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, $c6d0
-	ld de, LYOverrides
-	ld bc, $100
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	call EZChat_GetCategoryWordsByKana
-	call EZChat_GetSeenPokemonByKana
-	ret
-; 11c254
-
-Function11c254: ; 11c254
-	push af
-	ld a, $4
-	call GetSRAMBank
-	ld hl, $a007
-	pop af
-	sla a
-	sla a
-	ld c, a
-	sla a
-	add c
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld de, wcd36
-	ld bc, 12
-	call CopyBytes
-	call CloseSRAM
-	ret
-; 11c277
-
-EZChat_ClearBottom12Rows: ; 11c277 (47:4277)
-	ld a, " "
-	hlcoord 0, 6
-	ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH
-	call ByteFill
-	ret
-
-EZChat_MasterLoop: ; 11c283
-.loop
-	call JoyTextDelay
-	ld a, [hJoyPressed]
-	ld [hJoypadPressed], a
-	ld a, [wJumptableIndex]
-	bit 7, a
-	jr nz, .exit
-	call .DoJumptableFunction
-	callba PlaySpriteAnimations
-	callba ReloadMapPart
-	jr .loop
-
-.exit
-	callba ClearSpriteAnims
-	call ClearSprites
-	ret
-; 11c2ac
-
-.DoJumptableFunction: ; 11c2ac
-	jumptable .Jumptable, wJumptableIndex
-; 11c2bb
-
-.Jumptable: ; 11c2bb (47:42bb)
-	dw .SpawnObjects ; 00
-	dw .InitRAM ; 01
-	dw Function11c35f ; 02
-	dw Function11c373 ; 03
-	dw Function11c3c2 ; 04
-	dw Function11c3ed ; 05
-	dw Function11c52c ; 06
-	dw Function11c53d ; 07
-	dw Function11c658 ; 08
-	dw Function11c675 ; 09
-	dw Function11c9bd ; 0a
-	dw Function11c9c3 ; 0b
-	dw Function11caad ; 0c
-	dw Function11cab3 ; 0d
-	dw Function11cb52 ; 0e
-	dw Function11cb66 ; 0f
-	dw Function11cbf5 ; 10
-	dw Function11ccef ; 11
-	dw Function11cd04 ; 12
-	dw Function11cd20 ; 13
-	dw Function11cd54 ; 14
-	dw Function11ce0b ; 15
-	dw Function11ce2b ; 16
-
-.SpawnObjects: ; 11c2e9 (47:42e9)
-	depixel 3, 1, 2, 5
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	depixel 8, 1, 2, 5
-
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, $1
-	ld [hl], a
-
-	depixel 9, 2, 2, 0
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, $3
-	ld [hl], a
-
-	depixel 10, 16
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, $4
-	ld [hl], a
-
-	depixel 10, 4
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, $5
-	ld [hl], a
-
-	depixel 10, 2
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, $2
-	ld [hl], a
-
-	ld hl, wcd23
-	set 1, [hl]
-	set 2, [hl]
-	jp Function11cfb5
-
-.InitRAM: ; 11c346 (47:4346)
-	ld a, $9
-	ld [wcd2d], a
-	ld a, $2
-	ld [wcd2e], a
-	ld [wcd2f], a
-	ld [wcd30], a
-	ld de, wcd2d
-	call Function11cfce
-	jp Function11cfb5
-
-Function11c35f: ; 11c35f (47:435f)
-	ld hl, wcd2f
-	inc [hl]
-	inc [hl]
-	dec hl
-	dec hl
-	dec [hl]
-	push af
-	ld de, wcd2d
-	call Function11cfce
-	pop af
-	ret nz
-	jp Function11cfb5
-
-Function11c373: ; 11c373 (47:4373)
-	ld hl, wcd30
-	inc [hl]
-	inc [hl]
-	dec hl
-	dec hl
-	dec [hl]
-	push af
-	ld de, wcd2d
-	call Function11cfce
-	pop af
-	ret nz
-	call Function11c38a
-	jp Function11cfb5
-
-Function11c38a: ; 11c38a (47:438a)
-	ld hl, Unknown_11c986
-	ld bc, wcd36
-	ld a, $6
-.asm_11c392
-	push af
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push hl
-	push de
-	pop hl
-	ld a, [bc]
-	inc bc
-	ld e, a
-	ld a, [bc]
-	inc bc
-	ld d, a
-	push bc
-	or e
-	jr z, .asm_11c3af
-	ld a, e
-	and d
-	cp $ff
-	jr z, .asm_11c3af
-	call Function11c05d
-	jr .asm_11c3b5
-.asm_11c3af
-	ld de, String_11c3bc
-	call PlaceString
-.asm_11c3b5
-	pop bc
-	pop hl
-	pop af
-	dec a
-	jr nz, .asm_11c392
-	ret
-; 11c3bc (47:43bc)
-
-String_11c3bc: ; 11c3bc
-	db "ーーーーー@"
-; 11c3c2
-
-Function11c3c2: ; 11c3c2 (47:43c2)
-	call EZChat_ClearBottom12Rows
-	ld de, Unknown_11cfbe
-	call Function11d035
-	hlcoord 1, 7
-	ld de, String_11c4db
-	call PlaceString
-	hlcoord 1, 16
-	ld de, String_11c51b
-	call PlaceString
-	call Function11c4be
-	ld hl, wcd23
-	set 0, [hl]
-	ld hl, wcd24
-	res 0, [hl]
-	call Function11cfb5
-
-Function11c3ed: ; 11c3ed (47:43ed)
-	ld hl, wcd20 ; wcd20
-	ld de, hJoypadPressed ; $ffa3
-	ld a, [de]
-	and $8
-	jr nz, .asm_11c426
-	ld a, [de]
-	and $2
-	jr nz, .asm_11c41a
-	ld a, [de]
-	and $1
-	jr nz, .asm_11c42c
-	ld de, hJoyLast
-	ld a, [de]
-	and $40
-	jr nz, .asm_11c47c
-	ld a, [de]
-	and $80
-	jr nz, .asm_11c484
-	ld a, [de]
-	and $20
-	jr nz, .asm_11c48c
-	ld a, [de]
-	and $10
-	jr nz, .asm_11c498
-	ret
-
-.asm_11c41a
-	call PlayClickSFX
-.asm_11c41d
-	ld hl, wcd24
-	set 0, [hl]
-	ld a, $c
-	jr .asm_11c475
-.asm_11c426
-	ld a, $8
-	ld [wcd20], a ; wcd20
-	ret
-
-.asm_11c42c
-	ld a, [wcd20] ; wcd20
-	cp $6
-	jr c, .asm_11c472
-	sub $6
-	jr z, .asm_11c469
-	dec a
-	jr z, .asm_11c41d
-	ld hl, wcd36
-	ld c, $c
-	xor a
-.asm_11c440
-	or [hl]
-	inc hl
-	dec c
-	jr nz, .asm_11c440
-	and a
-	jr z, .asm_11c460
-	ld de, Unknown_11cfba
-	call Function11cfce
-	decoord 1, 2
-	ld bc, wcd36
-	call Function11c08f
-	ld hl, wcd24
-	set 0, [hl]
-	ld a, $e
-	jr .asm_11c475
-.asm_11c460
-	ld hl, wcd24
-	set 0, [hl]
-	ld a, $11
-	jr .asm_11c475
-.asm_11c469
-	ld hl, wcd24
-	set 0, [hl]
-	ld a, $a
-	jr .asm_11c475
-.asm_11c472
-	call Function11c4a5
-.asm_11c475
-	ld [wJumptableIndex], a
-	call PlayClickSFX
-	ret
-
-.asm_11c47c
-	ld a, [hl]
-	cp $3
-	ret c
-	sub $3
-	jr .asm_11c4a3
-.asm_11c484
-	ld a, [hl]
-	cp $6
-	ret nc
-	add $3
-	jr .asm_11c4a3
-.asm_11c48c
-	ld a, [hl]
-	and a
-	ret z
-	cp $3
-	ret z
-	cp $6
-	ret z
-	dec a
-	jr .asm_11c4a3
-.asm_11c498
-	ld a, [hl]
-	cp $2
-	ret z
-	cp $5
-	ret z
-	cp $8
-	ret z
-	inc a
-.asm_11c4a3
-	ld [hl], a
-	ret
-
-Function11c4a5: ; 11c4a5 (47:44a5)
-	ld hl, wcd23
-	res 0, [hl]
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_11c4b7
-	xor a
-	ld [wcd21], a
-	ld a, $6
-	ret
-
-.asm_11c4b7
-	xor a
-	ld [wcd22], a
-	ld a, $15
-	ret
-
-Function11c4be: ; 11c4be (47:44be)
-	ld a, $1
-	hlcoord 0, 6, AttrMap
-	ld bc, $a0
-	call ByteFill
-	ld a, $7
-	hlcoord 0, 14, AttrMap
-	ld bc, $28
-	call ByteFill
-	callba ReloadMapPart
-	ret
-; 11c4db (47:44db)
-
-String_11c4db: ; 11c4db
-	db   "6つのことば¯くみあわせます"
-	next "かえたいところ¯えらぶと でてくる"
-	next "ことばのグループから いれかえたい"
-	next "たんご¯えらんでください"
-	db   "@"
-; 11c51b
-
-String_11c51b: ; 11c51b
-	db "ぜんぶけす やめる   けってい@"
-; 11c52c
-
-Function11c52c: ; 11c52c (47:452c)
-	call EZChat_ClearBottom12Rows
-	call EZChat_PlaceCategoryNames
-	call Function11c618
-	ld hl, wcd24
-	res 1, [hl]
-	call Function11cfb5
-
-Function11c53d: ; 11c53d (47:453d)
-	ld hl, wcd21
-	ld de, hJoypadPressed ; $ffa3
-
-	ld a, [de]
-	and START
-	jr nz, .start
-
-	ld a, [de]
-	and SELECT
-	jr nz, .select
-
-	ld a, [de]
-	and B_BUTTON
-	jr nz, .b
-
-	ld a, [de]
-	and A_BUTTON
-	jr nz, .a
-
-	ld de, hJoyLast
-
-	ld a, [de]
-	and D_UP
-	jr nz, .up
-
-	ld a, [de]
-	and D_DOWN
-	jr nz, .down
-
-	ld a, [de]
-	and D_LEFT
-	jr nz, .left
-
-	ld a, [de]
-	and D_RIGHT
-	jr nz, .right
-
-	ret
-
-.a
-	ld a, [wcd21]
-	cp 15
-	jr c, .got_category
-	sub $f
-	jr z, .done
-	dec a
-	jr z, .mode
-	jr .b
-
-.start
-	ld hl, wcd24
-	set 0, [hl]
-	ld a, $8
-	ld [wcd20], a ; wcd20
-
-.b
-	ld a, $4
-	jr .go_to_function
-
-.select
-	ld a, [wcd2b]
-	xor $1
-	ld [wcd2b], a
-	ld a, $15
-	jr .go_to_function
-
-.mode
-	ld a, $13
-	jr .go_to_function
-
-.got_category
-	ld a, $8
-
-.go_to_function
-	ld hl, wcd24
-	set 1, [hl]
-	ld [wJumptableIndex], a
-	call PlayClickSFX
-	ret
-
-.done
-	ld a, [wcd20] ; wcd20
-	call Function11ca6a
-	call PlayClickSFX
-	ret
-
-.up
-	ld a, [hl]
-	cp $3
-	ret c
-	sub $3
-	jr .finish_dpad
-
-.down
-	ld a, [hl]
-	cp $f
-	ret nc
-	add $3
-	jr .finish_dpad
-
-.left
-	ld a, [hl]
-	and a
-	ret z
-	cp $3
-	ret z
-	cp $6
-	ret z
-	cp $9
-	ret z
-	cp $c
-	ret z
-	cp $f
-	ret z
-	dec a
-	jr .finish_dpad
-
-.right
-	ld a, [hl]
-	cp $2
-	ret z
-	cp $5
-	ret z
-	cp $8
-	ret z
-	cp $b
-	ret z
-	cp $e
-	ret z
-	cp $11
-	ret z
-	inc a
-
-.finish_dpad
-	ld [hl], a
-	ret
-; 11c5f0
-
-EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0)
-	ld de, MobileEZChatCategoryNames
-	ld bc, Coords_11c63a
-	ld a, 15
-.loop
-	push af
-	ld a, [bc]
-	inc bc
-	ld l, a
-	ld a, [bc]
-	inc bc
-	ld h, a
-	push bc
-	call PlaceString
-	; The category names are padded with "@".
-	; To find the next category, the system must
-	; find the first character at de that is not "@".
-.find_next_string_loop
-	inc de
-	ld a, [de]
-	cp "@"
-	jr z, .find_next_string_loop
-	pop bc
-	pop af
-	dec a
-	jr nz, .loop
-	hlcoord 1, 17
-	ld de, EZChatString_Stop_Mode_Cancel
-	call PlaceString
-	ret
-
-Function11c618: ; 11c618 (47:4618)
-	ld a, $2
-	hlcoord 0, 6, AttrMap
-	ld bc, $c8
-	call ByteFill
-	callba ReloadMapPart
-	ret
-; 11c62a (47:462a)
-
-EZChatString_Stop_Mode_Cancel: ; 11c62a
-	db "けす    モード   やめる@"
-; 11c63a
-
-Coords_11c63a: ; 11c63a
-	dwcoord  1,  7
-	dwcoord  7,  7
-	dwcoord 13,  7
-	dwcoord  1,  9
-	dwcoord  7,  9
-	dwcoord 13,  9
-	dwcoord  1, 11
-	dwcoord  7, 11
-	dwcoord 13, 11
-	dwcoord  1, 13
-	dwcoord  7, 13
-	dwcoord 13, 13
-	dwcoord  1, 15
-	dwcoord  7, 15
-	dwcoord 13, 15
-; 11c658
-
-Function11c658: ; 11c658 (47:4658)
-	call EZChat_ClearBottom12Rows
-	call Function11c770
-	ld de, Unknown_11cfc2
-	call Function11d035
-	call Function11c9ab
-	call Function11c7bc
-	call Function11c86e
-	ld hl, wcd24
-	res 3, [hl]
-	call Function11cfb5
-
-Function11c675: ; 11c675 (47:4675)
-	ld hl, wMobileCommsJumptableIndex
-	ld de, hJoypadPressed ; $ffa3
-	ld a, [de]
-	and A_BUTTON
-	jr nz, .a
-	ld a, [de]
-	and B_BUTTON
-	jr nz, .b
-	ld a, [de]
-	and START
-	jr nz, .start
-	ld a, [de]
-	and SELECT
-	jr z, .select
-
-	ld a, [wcd26]
-	and a
-	ret z
-	sub $c
-	jr nc, .asm_11c699
-	xor a
-.asm_11c699
-	ld [wcd26], a
-	jr .asm_11c6c4
-
-.start
-	ld hl, wcd28
-	ld a, [wcd26]
-	add $c
-	cp [hl]
-	ret nc
-	ld [wcd26], a
-	ld a, [hl]
-	ld b, a
-	ld hl, wMobileCommsJumptableIndex
-	ld a, [wcd26]
-	add [hl]
-	jr c, .asm_11c6b9
-	cp b
-	jr c, .asm_11c6c4
-.asm_11c6b9
-	ld a, [wcd28]
-	ld hl, wcd26
-	sub [hl]
-	dec a
-	ld [wMobileCommsJumptableIndex], a
-.asm_11c6c4
-	call Function11c992
-	call Function11c7bc
-	call Function11c86e
-	ret
-
-.select
-	ld de, hJoyLast
-	ld a, [de]
-	and D_UP
-	jr nz, .asm_11c708
-	ld a, [de]
-	and D_DOWN
-	jr nz, .asm_11c731
-	ld a, [de]
-	and D_LEFT
-	jr nz, .asm_11c746
-	ld a, [de]
-	and D_RIGHT
-	jr nz, .asm_11c755
-	ret
-
-.a
-	call Function11c8f6
-	ld a, $4
-	ld [wcd35], a
-	jr .asm_11c6fc
-.b
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_11c6fa
-	ld a, $6
-	jr .asm_11c6fc
-.asm_11c6fa
-	ld a, $15
-.asm_11c6fc
-	ld [wJumptableIndex], a
-	ld hl, wcd24
-	set 3, [hl]
-	call PlayClickSFX
-	ret
-
-.asm_11c708
-	ld a, [hl]
-	cp $3
-	jr c, .asm_11c711
-	sub $3
-	jr .asm_11c76e
-.asm_11c711
-	ld a, [wcd26]
-	sub $3
-	ret c
-	ld [wcd26], a
-	jr .asm_11c6c4
-.asm_11c71c
-	ld hl, wcd28
-	ld a, [wcd26]
-	add $c
-	ret c
-	cp [hl]
-	ret nc
-	ld a, [wcd26]
-	add $3
-	ld [wcd26], a
-	jr .asm_11c6c4
-.asm_11c731
-	ld a, [wcd28]
-	ld b, a
-	ld a, [wcd26]
-	add [hl]
-	add $3
-	cp b
-	ret nc
-	ld a, [hl]
-	cp $9
-	jr nc, .asm_11c71c
-	add $3
-	jr .asm_11c76e
-.asm_11c746
-	ld a, [hl]
-	and a
-	ret z
-	cp $3
-	ret z
-	cp $6
-	ret z
-	cp $9
-	ret z
-	dec a
-	jr .asm_11c76e
-.asm_11c755
-	ld a, [wcd28]
-	ld b, a
-	ld a, [wcd26]
-	add [hl]
-	inc a
-	cp b
-	ret nc
-	ld a, [hl]
-	cp $2
-	ret z
-	cp $5
-	ret z
-	cp $8
-	ret z
-	cp $b
-	ret z
-	inc a
-.asm_11c76e
-	ld [hl], a
-	ret
-
-Function11c770: ; 11c770 (47:4770)
-	xor a
-	ld [wMobileCommsJumptableIndex], a
-	ld [wcd26], a
-	ld [wcd27], a
-	ld a, [wcd2b]
-	and a
-	jr nz, .cd2b_is_nonzero
-	ld a, [wcd21]
-	and a
-	jr z, .cd21_is_zero
-	; load from data array
-	dec a
-	sla a
-	ld hl, MobileEZChatData_WordAndPageCounts
-	ld c, a
-	ld b, 0
-	add hl, bc
-	ld a, [hli]
-	ld [wcd28], a
-	ld a, [hl]
-.load
-	ld [wcd29], a
-	ret
-
-.cd21_is_zero
-	; compute from [wc7d2]
-	ld a, [wc7d2]
-	ld [wcd28], a
-.div_12
-	ld c, 12
-	call SimpleDivide
-	and a
-	jr nz, .no_need_to_floor
-	dec b
-.no_need_to_floor
-	ld a, b
-	jr .load
-
-.cd2b_is_nonzero
-	; compute from [c6a8 + 2 * [cd22]]
-	ld hl, $c6a8 ; $c68a + 30
-	ld a, [wcd22]
-	ld c, a
-	ld b, 0
-	add hl, bc
-	add hl, bc
-	ld a, [hl]
-	ld [wcd28], a
-	jr .div_12
-
-Function11c7bc: ; 11c7bc (47:47bc)
-	ld bc, Unknown_11c854
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_11c814
-	ld a, [wcd21]
-	ld d, a
-	and a
-	jr z, .asm_11c7e9
-	ld a, [wcd26]
-	ld e, a
-.asm_11c7d0
-	ld a, [bc]
-	ld l, a
-	inc bc
-	ld a, [bc]
-	ld h, a
-	inc bc
-	and l
-	cp $ff
-	ret z
-	push bc
-	push de
-	call Function11c05d
-	pop de
-	pop bc
-	inc e
-	ld a, [wcd28]
-	cp e
-	jr nz, .asm_11c7d0
-	ret
-
-.asm_11c7e9
-	ld hl, wListPointer
-	ld a, [wcd26]
-	ld e, a
-	add hl, de
-.asm_11c7f1
-	push de
-	ld a, [hli]
-	ld e, a
-	ld d, $0
-	push hl
-	ld a, [bc]
-	ld l, a
-	inc bc
-	ld a, [bc]
-	ld h, a
-	inc bc
-	and l
-	cp $ff
-	jr z, .asm_11c811
-	push bc
-	call Function11c05d
-	pop bc
-	pop hl
-	pop de
-	inc e
-	ld a, [wcd28]
-	cp e
-	jr nz, .asm_11c7f1
-	ret
-
-.asm_11c811
-	pop hl
-	pop de
-	ret
-
-.asm_11c814
-	ld hl, $c648
-	ld a, [wcd22]
-	ld e, a
-	ld d, $0
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	push de
-	pop hl
-	ld a, [wcd26]
-	ld e, a
-	ld d, $0
-	add hl, de
-	add hl, de
-	ld a, [wcd26]
-	ld e, a
-.asm_11c831
-	push de
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push hl
-	ld a, [bc]
-	ld l, a
-	inc bc
-	ld a, [bc]
-	ld h, a
-	inc bc
-	and l
-	cp $ff
-	jr z, .asm_11c851
-	push bc
-	call Function11c05d
-	pop bc
-	pop hl
-	pop de
-	inc e
-	ld a, [wcd28]
-	cp e
-	jr nz, .asm_11c831
-	ret
-
-.asm_11c851
-	pop hl
-	pop de
-	ret
-; 11c854 (47:4854)
-
-Unknown_11c854: ; 11c854
-	dwcoord  2,  8
-	dwcoord  8,  8
-	dwcoord 14,  8
-	dwcoord  2, 10
-	dwcoord  8, 10
-	dwcoord 14, 10
-	dwcoord  2, 12
-	dwcoord  8, 12
-	dwcoord 14, 12
-	dwcoord  2, 14
-	dwcoord  8, 14
-	dwcoord 14, 14
-	dw -1
-; 11c86e
-
-Function11c86e: ; 11c86e (47:486e)
-	ld a, [wcd26]
-	and a
-	jr z, .asm_11c88a
-	hlcoord 2, 17
-	ld de, MobileString_Prev
-	call PlaceString
-	hlcoord 6, 17
-	ld c, $3
-	xor a
-.asm_11c883
-	ld [hli], a
-	inc a
-	dec c
-	jr nz, .asm_11c883
-	jr .asm_11c895
-.asm_11c88a
-	hlcoord 2, 17
-	ld c, $7
-	ld a, $7f
-.asm_11c891
-	ld [hli], a
-	dec c
-	jr nz, .asm_11c891
-.asm_11c895
-	ld hl, wcd28
-	ld a, [wcd26]
-	add $c
-	jr c, .asm_11c8b7
-	cp [hl]
-	jr nc, .asm_11c8b7
-	hlcoord 16, 17
-	ld de, MobileString_Next
-	call PlaceString
-	hlcoord 11, 17
-	ld a, $3
-	ld c, a
-.asm_11c8b1
-	ld [hli], a
-	inc a
-	dec c
-	jr nz, .asm_11c8b1
-	ret
-
-.asm_11c8b7
-	hlcoord 17, 16
-	ld a, $7f
-	ld [hl], a
-	hlcoord 11, 17
-	ld c, $7
-.asm_11c8c2
-	ld [hli], a
-	dec c
-	jr nz, .asm_11c8c2
-	ret
-; 11c8c7 (47:48c7)
-
-BCD2String: ; 11c8c7
-	inc a
-	push af
-	and $f
-	ld [hDividend], a
-	pop af
-	and $f0
-	swap a
-	ld [hDividend + 1], a
-	xor a
-	ld [hDividend + 2], a
-	push hl
-	callba Function11a80c
-	pop hl
-	ld a, [wcd63]
-	add "0"
-	ld [hli], a
-	ld a, [wcd62]
-	add "0"
-	ld [hli], a
-	ret
-; 11c8ec
-
-MobileString_Page: ; 11c8ec
-	db "ぺージ@"
-; 11c8f0
-
-MobileString_Prev: ; 11c8f0
-	db "まえ@"
-; 11c8f3
-
-MobileString_Next: ; 11c8f3
-	db "つぎ@"
-; 11c8f6
-
-Function11c8f6: ; 11c8f6 (47:48f6)
-	ld a, [wcd20] ; wcd20
-	call Function11c95d
-	push hl
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_11c938
-	ld a, [wcd21]
-	ld d, a
-	and a
-	jr z, .asm_11c927
-	ld hl, wcd26
-	ld a, [wMobileCommsJumptableIndex]
-	add [hl]
-.asm_11c911
-	ld e, a
-.asm_11c912
-	pop hl
-	push de
-	call Function11c05d
-	pop de
-	ld a, [wcd20] ; wcd20
-	ld c, a
-	ld b, $0
-	ld hl, wcd36
-	add hl, bc
-	add hl, bc
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ret
-
-.asm_11c927
-	ld hl, wcd26
-	ld a, [wMobileCommsJumptableIndex]
-	add [hl]
-	ld c, a
-	ld b, $0
-	ld hl, wListPointer
-	add hl, bc
-	ld a, [hl]
-	jr .asm_11c911
-.asm_11c938
-	ld hl, $c648
-	ld a, [wcd22]
-	ld e, a
-	ld d, $0
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	push de
-	pop hl
-	ld a, [wcd26]
-	ld e, a
-	ld d, $0
-	add hl, de
-	add hl, de
-	ld a, [wMobileCommsJumptableIndex]
-	ld e, a
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	jr .asm_11c912
-
-Function11c95d: ; 11c95d (47:495d)
-	sla a
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_11c986
-	add hl, bc
-	ld a, [hli]
-	ld c, a
-	ld a, [hl]
-	ld b, a
-	push bc
-	push bc
-	pop hl
-	ld a, $5
-	ld c, a
-	ld a, $7f
-.asm_11c972
-	ld [hli], a
-	dec c
-	jr nz, .asm_11c972
-	dec hl
-	ld bc, -20
-	add hl, bc
-	ld a, $5
-	ld c, a
-	ld a, $7f
-.asm_11c980
-	ld [hld], a
-	dec c
-	jr nz, .asm_11c980
-	pop hl
-	ret
-; 11c986 (47:4986)
-
-Unknown_11c986:
-	dwcoord  1,  2
-	dwcoord  7,  2
-	dwcoord 13,  2
-	dwcoord  1,  4
-	dwcoord  7,  4
-	dwcoord 13,  4
-; 11c992
-
-Function11c992: ; 11c992 (47:4992)
-	ld a, $8
-	hlcoord 2, 7
-.asm_11c997
-	push af
-	ld a, $7f
-	push hl
-	ld bc, $11
-	call ByteFill
-	pop hl
-	ld bc, $14
-	add hl, bc
-	pop af
-	dec a
-	jr nz, .asm_11c997
-	ret
-
-Function11c9ab: ; 11c9ab (47:49ab)
-	ld a, $7
-	hlcoord 0, 6, AttrMap
-	ld bc, $c8
-	call ByteFill
-	callba ReloadMapPart
-	ret
-
-Function11c9bd: ; 11c9bd (47:49bd)
-	ld de, String_11ca38
-	call Function11ca7f
-
-Function11c9c3: ; 11c9c3 (47:49c3)
-	ld hl, wcd2a
-	ld de, hJoypadPressed ; $ffa3
-	ld a, [de]
-	and $1
-	jr nz, .asm_11c9de
-	ld a, [de]
-	and $2
-	jr nz, .asm_11c9e9
-	ld a, [de]
-	and $40
-	jr nz, .asm_11c9f7
-	ld a, [de]
-	and $80
-	jr nz, .asm_11c9fc
-	ret
-
-.asm_11c9de
-	ld a, [hl]
-	and a
-	jr nz, .asm_11c9e9
-	call Function11ca5e
-	xor a
-	ld [wcd20], a ; wcd20
-.asm_11c9e9
-	ld hl, wcd24
-	set 4, [hl]
-	ld a, $4
-	ld [wJumptableIndex], a
-	call PlayClickSFX
-	ret
-
-.asm_11c9f7
-	ld a, [hl]
-	and a
-	ret z
-	dec [hl]
-	ret
-
-.asm_11c9fc
-	ld a, [hl]
-	and a
-	ret nz
-	inc [hl]
-	ret
-
-Function11ca01: ; 11ca01 (47:4a01)
-	hlcoord 14, 7, AttrMap
-	ld de, $14
-	ld a, $5
-	ld c, a
-.asm_11ca0a
-	push hl
-	ld a, $6
-	ld b, a
-	ld a, $7
-.asm_11ca10
-	ld [hli], a
-	dec b
-	jr nz, .asm_11ca10
-	pop hl
-	add hl, de
-	dec c
-	jr nz, .asm_11ca0a
-
-Function11ca19: ; 11ca19 (47:4a19)
-	hlcoord 0, 12, AttrMap
-	ld de, $14
-	ld a, $6
-	ld c, a
-.asm_11ca22
-	push hl
-	ld a, $14
-	ld b, a
-	ld a, $7
-.asm_11ca28
-	ld [hli], a
-	dec b
-	jr nz, .asm_11ca28
-	pop hl
-	add hl, de
-	dec c
-	jr nz, .asm_11ca22
-	callba ReloadMapPart
-	ret
-; 11ca38 (47:4a38)
-
-String_11ca38: ; 11ca38
-	db   "とうろくちゅう", $25, "あいさつ¯ぜんぶ"
-	next "けしても よろしいですか?@"
-; 11ca57
-
-String_11ca57: ; 11ca57
-	db   "はい"
-	next "いいえ@"
-; 11ca5e
-
-Function11ca5e: ; 11ca5e (47:4a5e)
-	xor a
-.loop
-	push af
-	call Function11ca6a
-	pop af
-	inc a
-	cp $6
-	jr nz, .loop
-	ret
-
-Function11ca6a: ; 11ca6a (47:4a6a)
-	ld hl, wcd36
-	ld c, a
-	ld b, $0
-	add hl, bc
-	add hl, bc
-	ld [hl], b
-	inc hl
-	ld [hl], b
-	call Function11c95d
-	ld de, String_11c3bc
-	call PlaceString
-	ret
-
-Function11ca7f: ; 11ca7f (47:4a7f)
-	push de
-	ld de, Unknown_11cfc6
-	call Function11cfce
-	ld de, Unknown_11cfca
-	call Function11cfce
-	hlcoord 1, 14
-	pop de
-	call PlaceString
-	hlcoord 16, 8
-	ld de, String_11ca57
-	call PlaceString
-	call Function11ca01
-	ld a, $1
-	ld [wcd2a], a
-	ld hl, wcd24
-	res 4, [hl]
-	call Function11cfb5
-	ret
-
-Function11caad: ; 11caad (47:4aad)
-	ld de, String_11cb1c
-	call Function11ca7f
-
-Function11cab3: ; 11cab3 (47:4ab3)
-	ld hl, wcd2a
-	ld de, hJoypadPressed ; $ffa3
-	ld a, [de]
-	and $1
-	jr nz, .asm_11cace
-	ld a, [de]
-	and $2
-	jr nz, .asm_11caf9
-	ld a, [de]
-	and $40
-	jr nz, .asm_11cb12
-	ld a, [de]
-	and $80
-	jr nz, .asm_11cb17
-	ret
-
-.asm_11cace
-	call PlayClickSFX
-	ld a, [hl]
-	and a
-	jr nz, .asm_11cafc
-	ld a, [wcd35]
-	and a
-	jr z, .asm_11caf3
-	cp $ff
-	jr z, .asm_11caf3
-	ld a, $ff
-	ld [wcd35], a
-	hlcoord 1, 14
-	ld de, String_11cb31
-	call PlaceString
-	ld a, $1
-	ld [wcd2a], a
-	ret
-
-.asm_11caf3
-	ld hl, wJumptableIndex
-	set 7, [hl]
-	ret
-
-.asm_11caf9
-	call PlayClickSFX
-.asm_11cafc
-	ld hl, wcd24
-	set 4, [hl]
-	ld a, $4
-	ld [wJumptableIndex], a
-	ld a, [wcd35]
-	cp $ff
-	ret nz
-	ld a, $1
-	ld [wcd35], a
-	ret
-
-.asm_11cb12
-	ld a, [hl]
-	and a
-	ret z
-	dec [hl]
-	ret
-
-.asm_11cb17
-	ld a, [hl]
-	and a
-	ret nz
-	inc [hl]
-	ret
-; 11cb1c (47:4b1c)
-
-String_11cb1c: ; 11cb1c
-	db   "あいさつ", $25, "とうろく¯ちゅうし"
-	next "しますか?@"
-; 11cb31
-
-String_11cb31: ; 11cb31
-	db   "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
-	next "されません", $4a, "よろしい ですか?@"
-; 11cb52
-
-Function11cb52: ; 11cb52 (47:4b52)
-	ld hl, Unknown_11cc01
-	ld a, [wMenuCursorY]
-.asm_11cb58
-	dec a
-	jr z, .asm_11cb5f
-	inc hl
-	inc hl
-	jr .asm_11cb58
-.asm_11cb5f
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	call Function11ca7f
-
-Function11cb66: ; 11cb66 (47:4b66)
-	ld hl, wcd2a
-	ld de, hJoypadPressed ; $ffa3
-	ld a, [de]
-	and $1
-	jr nz, .asm_11cb81
-	ld a, [de]
-	and $2
-	jr nz, .asm_11cbd7
-	ld a, [de]
-	and $40
-	jr nz, .asm_11cbeb
-	ld a, [de]
-	and $80
-	jr nz, .asm_11cbf0
-	ret
-
-.asm_11cb81
-	ld a, [hl]
-	and a
-	jr nz, .asm_11cbd4
-	ld a, $4
-	call GetSRAMBank
-	ld hl, $a007
-	ld a, [wMenuCursorY]
-	dec a
-	sla a
-	sla a
-	ld c, a
-	sla a
-	add c
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld de, wcd36
-	ld c, $c
-.asm_11cba2
-	ld a, [de]
-	ld [hli], a
-	inc de
-	dec c
-	jr nz, .asm_11cba2
-	call CloseSRAM
-	call PlayClickSFX
-	ld de, Unknown_11cfc6
-	call Function11cfce
-	ld hl, Unknown_11cc7e
-	ld a, [wMenuCursorY]
-.asm_11cbba
-	dec a
-	jr z, .asm_11cbc1
-	inc hl
-	inc hl
-	jr .asm_11cbba
-.asm_11cbc1
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	hlcoord 1, 14
-	call PlaceString
-	ld hl, wJumptableIndex
-	inc [hl]
-	inc hl
-	ld a, $10
-	ld [hl], a
-	ret
-
-.asm_11cbd4
-	call PlayClickSFX
-.asm_11cbd7
-	ld de, Unknown_11cfba
-	call Function11cfce
-	call Function11c38a
-	ld hl, wcd24
-	set 4, [hl]
-	ld a, $4
-	ld [wJumptableIndex], a
-	ret
-
-.asm_11cbeb
-	ld a, [hl]
-	and a
-	ret z
-	dec [hl]
-	ret
-
-.asm_11cbf0
-	ld a, [hl]
-	and a
-	ret nz
-	inc [hl]
-	ret
-
-Function11cbf5: ; 11cbf5 (47:4bf5)
-	call WaitSFX
-	ld hl, wcf64
-	dec [hl]
-	ret nz
-	dec hl
-	set 7, [hl]
-	ret
-; 11cc01 (47:4c01)
-
-Unknown_11cc01: ; 11cc01
-	dw String_11cc09
-	dw String_11cc23
-	dw String_11cc42
-	dw String_11cc60
-
-String_11cc09: ; 11cc09
-	db   "じこしょうかい は"
-	next "この あいさつで いいですか?@"
-
-String_11cc23: ; 11cc23
-	db   "たいせん ", $4a, "はじまるとき は"
-	next "この あいさつで いいですか?@"
-
-String_11cc42: ; 11cc42
-	db   "たいせん ", $1d, "かったとき は"
-	next "この あいさつで いいですか?@"
-
-String_11cc60: ; 11cc60
-	db   "たいせん ", $1d, "まけたとき は"
-	next "この あいさつで いいですか?@"
-; 11cc7e
-
-Unknown_11cc7e: ; 11cc7e
-	dw String_11cc86
-	dw String_11cc9d
-	dw String_11ccb9
-	dw String_11ccd4
-
-String_11cc86: ; 11cc86
-	db   "じこしょうかい の"
-	next "あいさつ¯とうろくした!@"
-
-String_11cc9d: ; 11cc9d
-	db   "たいせん ", $4a, "はじまるとき の"
-	next "あいさつ¯とうろくした!@"
-
-String_11ccb9: ; 11ccb9
-	db   "たいせん ", $1d, "かったとき の"
-	next "あいさつ¯とうろくした!@"
-
-String_11ccd4: ; 11ccd4
-	db   "たいせん ", $1d, "まけたとき の"
-	next "あいさつ¯とうろくした!@"
-; 11ccef
-
-Function11ccef: ; 11ccef (47:4cef)
-	ld de, Unknown_11cfc6
-	call Function11cfce
-	hlcoord 1, 14
-	ld de, String_11cd10
-	call PlaceString
-	call Function11ca19
-	call Function11cfb5
-
-Function11cd04: ; 11cd04 (47:4d04)
-	ld de, hJoypadPressed ; $ffa3
-	ld a, [de]
-	and a
-	ret z
-	ld a, $4
-	ld [wJumptableIndex], a
-	ret
-; 11cd10 (47:4d10)
-
-String_11cd10: ; 11cd10
-	db "なにか ことば¯いれてください@"
-; 11cd20
-
-Function11cd20: ; 11cd20 (47:4d20)
-	call EZChat_ClearBottom12Rows
-	ld de, Unknown_11cfc6
-	call Function11cfce
-	hlcoord 1, 14
-	ld a, [wcd2b]
-	ld [wcd2c], a
-	and a
-	jr nz, .asm_11cd3a
-	ld de, String_11cdc7
-	jr .asm_11cd3d
-.asm_11cd3a
-	ld de, String_11cdd9
-.asm_11cd3d
-	call PlaceString
-	hlcoord 4, 8
-	ld de, String_11cdf5
-	call PlaceString
-	call Function11cdaa
-	ld hl, wcd24
-	res 5, [hl]
-	call Function11cfb5
-
-Function11cd54: ; 11cd54 (47:4d54)
-	ld hl, wcd2c
-	ld de, hJoypadPressed ; $ffa3
-	ld a, [de]
-	and A_BUTTON
-	jr nz, .asm_11cd6f
-	ld a, [de]
-	and B_BUTTON
-	jr nz, .asm_11cd73
-	ld a, [de]
-	and D_UP
-	jr nz, .asm_11cd8b
-	ld a, [de]
-	and D_DOWN
-	jr nz, .asm_11cd94
-	ret
-
-.asm_11cd6f
-	ld a, [hl]
-	ld [wcd2b], a
-.asm_11cd73
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_11cd7d
-	ld a, $6
-	jr .asm_11cd7f
-
-.asm_11cd7d
-	ld a, $15
-.asm_11cd7f
-	ld [wJumptableIndex], a
-	ld hl, wcd24
-	set 5, [hl]
-	call PlayClickSFX
-	ret
-
-.asm_11cd8b
-	ld a, [hl]
-	and a
-	ret z
-	dec [hl]
-	ld de, String_11cdc7
-	jr .asm_11cd9b
-
-.asm_11cd94
-	ld a, [hl]
-	and a
-	ret nz
-	inc [hl]
-	ld de, String_11cdd9
-.asm_11cd9b
-	push de
-	ld de, Unknown_11cfc6
-	call Function11cfce
-	pop de
-	hlcoord 1, 14
-	call PlaceString
-	ret
-
-Function11cdaa: ; 11cdaa (47:4daa)
-	ld a, $2
-	hlcoord 0, 6, AttrMap
-	ld bc, 6 * SCREEN_WIDTH
-	call ByteFill
-	ld a, $7
-	hlcoord 0, 12, AttrMap
-	ld bc, 4 * SCREEN_WIDTH
-	call ByteFill
-	callba ReloadMapPart
-	ret
-; 11cdc7 (47:4dc7)
-
-String_11cdc7: ; 11cdc7
-; Words will be displayed by category
-	db   "ことば¯しゅるいべつに"
-	next "えらべます@"
-; 11cdd9
-
-String_11cdd9: ; 11cdd9
-; Words will be displayed in alphabetical order
-	db   "ことば¯アイウエォ の"
-	next "じゅんばんで ひょうじ します@"
-; 11cdf5
-
-String_11cdf5: ; 11cdf5
-	db   "しゅるいべつ モード"  ; Category mode
-	next "アイウエォ  モード@" ; ABC mode
-; 11ce0b
-
-Function11ce0b: ; 11ce0b (47:4e0b)
-	call EZChat_ClearBottom12Rows
-	hlcoord 1, 7
-	ld de, String_11cf79
-	call PlaceString
-	hlcoord 1, 17
-	ld de, EZChatString_Stop_Mode_Cancel
-	call PlaceString
-	call Function11c618
-	ld hl, wcd24
-	res 2, [hl]
-	call Function11cfb5
-
-Function11ce2b: ; 11ce2b (47:4e2b)
-	ld a, [wcd22]
-	sla a
-	sla a
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_11ceb9
-	add hl, bc
-
-	ld de, hJoypadPressed ; $ffa3
-	ld a, [de]
-	and START
-	jr nz, .start
-	ld a, [de]
-	and SELECT
-	jr nz, .select
-	ld a, [de]
-	and A_BUTTON
-	jr nz, .a
-	ld a, [de]
-	and B_BUTTON
-	jr nz, .b
-
-	ld de, hJoyLast
-	ld a, [de]
-	and D_UP
-	jr nz, .up
-	ld a, [de]
-	and D_DOWN
-	jr nz, .down
-	ld a, [de]
-	and D_LEFT
-	jr nz, .left
-	ld a, [de]
-	and D_RIGHT
-	jr nz, .right
-
-	ret
-
-.a
-	ld a, [wcd22]
-	cp NUM_KANA
-	jr c, .place
-	sub NUM_KANA
-	jr z, .done
-	dec a
-	jr z, .mode
-	jr .b
-
-.start
-	ld hl, wcd24
-	set 0, [hl]
-	ld a, $8
-	ld [wcd20], a ; wcd20
-.b
-	ld a, $4
-	jr .load
-
-.select
-	ld a, [wcd2b]
-	xor $1
-	ld [wcd2b], a
-	ld a, $6
-	jr .load
-
-.place
-	ld a, $8
-	jr .load
-
-.mode
-	ld a, $13
-.load
-	ld [wJumptableIndex], a
-	ld hl, wcd24
-	set 2, [hl]
-	call PlayClickSFX
-	ret
-
-.done
-	ld a, [wcd20] ; wcd20
-	call Function11ca6a
-	call PlayClickSFX
-	ret
-
-.left
-	inc hl
-.down
-	inc hl
-.right
-	inc hl
-.up
-	ld a, [hl]
-	cp $ff
-	ret z
-	ld [wcd22], a
-	ret
-; 11ceb9 (47:4eb9)
-
-Unknown_11ceb9: ; 11ceb9
-	; up left down right
-	db $ff, $01
-	db $05, $ff
-	db $ff, $02
-	db $06, $00
-	db $ff, $03
-	db $07, $01
-	db $ff, $04
-	db $08, $02
-	db $ff, $14
-	db $09, $03
-	db $00, $06
-	db $0a, $ff
-	db $01, $07
-	db $0b, $05
-	db $02, $08
-	db $0c, $06
-	db $03, $09
-	db $0d, $07
-	db $04, $19
-	db $0e, $08
-	db $05, $0b
-	db $0f, $ff
-	db $06, $0c
-	db $10, $0a
-	db $07, $0d
-	db $11, $0b
-	db $08, $0e
-	db $12, $0c
-	db $09, $1e
-	db $13, $0d
-	db $0a, $10
-	db $2d, $ff
-	db $0b, $11
-	db $2d, $0f
-	db $0c, $12
-	db $2d, $10
-	db $0d, $13
-	db $2d, $11
-	db $0e, $26
-	db $2d, $12
-	db $ff, $15
-	db $19, $04
-	db $ff, $16
-	db $1a, $14
-	db $ff, $17
-	db $1b, $15
-	db $ff, $18
-	db $1c, $16
-	db $ff, $23
-	db $1d, $17
-	db $14, $1a
-	db $1e, $09
-	db $15, $1b
-	db $1f, $19
-	db $16, $1c
-	db $20, $1a
-	db $17, $1d
-	db $21, $1b
-	db $18, $2b
-	db $22, $1c
-	db $19, $1f
-	db $26, $0e
-	db $1a, $20
-	db $27, $1e
-	db $1b, $21
-	db $28, $1f
-	db $1c, $22
-	db $29, $20
-	db $1d, $2c
-	db $2a, $21
-	db $ff, $24
-	db $2b, $18
-	db $ff, $25
-	db $2b, $23
-	db $ff, $ff
-	db $2b, $24
-	db $1e, $27
-	db $2e, $13
-	db $1f, $28
-	db $2e, $26
-	db $20, $29
-	db $2e, $27
-	db $21, $2a
-	db $2e, $28
-	db $22, $ff
-	db $2e, $29
-	db $23, $ff
-	db $2c, $1d
-	db $2b, $ff
-	db $2f, $22
-	db $0f, $2e
-	db $ff, $ff
-	db $26, $2f
-	db $ff, $2d
-	db $2c, $ff
-	db $ff, $2e
-; 11cf79
-
-String_11cf79: ; 11cf79
-; Hiragana table
-	db   "あいうえお なにぬねの や ゆ よ"
-	next "かきくけこ はひふへほ わ"
-	next "さしすせそ まみむめも そのた"
-	next "たちつてと らりるれろ"
-	db   "@"
-; 11cfb5
-
-Function11cfb5: ; 11cfb5 (47:4fb5)
-	ld hl, wJumptableIndex
-	inc [hl]
-	ret
-; 11cfba (47:4fba)
-
-Unknown_11cfba:
-	db  0,  0 ; start coords
-	db 20,  6 ; end coords
-
-Unknown_11cfbe:
-	db  0, 14 ; start coords
-	db 20,  4 ; end coords
-
-Unknown_11cfc2:
-	db  0,  6 ; start coords
-	db 20, 10 ; end coords
-
-Unknown_11cfc6:
-	db  0, 12 ; start coords
-	db 20,  6 ; end coords
-
-Unknown_11cfca:
-	db 14,  7 ; start coords
-	db  6,  5 ; end coords
-; 11cfce
-
-Function11cfce: ; 11cfce (47:4fce)
-	hlcoord 0, 0
-	ld bc, SCREEN_WIDTH
-	ld a, [de]
-	inc de
-	push af
-	ld a, [de]
-	inc de
-	and a
-.add_n_times
-	jr z, .done_add_n_times
-	add hl, bc
-	dec a
-	jr .add_n_times
-.done_add_n_times
-	pop af
-	ld c, a
-	ld b, 0
-	add hl, bc
-	push hl
-	ld a, $79
-	ld [hli], a
-	ld a, [de]
-	inc de
-	dec a
-	dec a
-	jr z, .skip_fill
-	ld c, a
-	ld a, $7a
-.fill_loop
-	ld [hli], a
-	dec c
-	jr nz, .fill_loop
-.skip_fill
-	ld a, $7b
-	ld [hl], a
-	pop hl
-	ld bc, SCREEN_WIDTH
-	add hl, bc
-	ld a, [de]
-	dec de
-	dec a
-	dec a
-	jr z, .skip_section
-	ld b, a
-.loop
-	push hl
-	ld a, $7c
-	ld [hli], a
-	ld a, [de]
-	dec a
-	dec a
-	jr z, .skip_row
-	ld c, a
-	ld a, $7f
-.row_loop
-	ld [hli], a
-	dec c
-	jr nz, .row_loop
-.skip_row
-	ld a, $7c
-	ld [hl], a
-	pop hl
-	push bc
-	ld bc, SCREEN_WIDTH
-	add hl, bc
-	pop bc
-	dec b
-	jr nz, .loop
-.skip_section
-	ld a, $7d
-	ld [hli], a
-	ld a, [de]
-	dec a
-	dec a
-	jr z, .skip_remainder
-	ld c, a
-	ld a, $7a
-.final_loop
-	ld [hli], a
-	dec c
-	jr nz, .final_loop
-.skip_remainder
-	ld a, $7e
-	ld [hl], a
-	ret
-
-Function11d035: ; 11d035 (47:5035)
-	hlcoord 0, 0
-	ld bc, SCREEN_WIDTH
-	ld a, [de]
-	inc de
-	push af
-	ld a, [de]
-	inc de
-	and a
-.add_n_times
-	jr z, .done_add_n_times
-	add hl, bc
-	dec a
-	jr .add_n_times
-.done_add_n_times
-	pop af
-	ld c, a
-	ld b, $0
-	add hl, bc
-	push hl
-	ld a, $79
-	ld [hl], a
-	pop hl
-	push hl
-	ld a, [de]
-	dec a
-	inc de
-	ld c, a
-	add hl, bc
-	ld a, $7b
-	ld [hl], a
-	call .AddNMinusOneTimes
-	ld a, $7e
-	ld [hl], a
-	pop hl
-	push hl
-	call .AddNMinusOneTimes
-	ld a, $7d
-	ld [hl], a
-	pop hl
-	push hl
-	inc hl
-	push hl
-	call .AddNMinusOneTimes
-	pop bc
-	dec de
-	ld a, [de]
-	cp $2
-	jr z, .skip
-	dec a
-	dec a
-.loop
-	push af
-	ld a, $7a
-	ld [hli], a
-	ld [bc], a
-	inc bc
-	pop af
-	dec a
-	jr nz, .loop
-.skip
-	pop hl
-	ld bc, $14
-	add hl, bc
-	push hl
-	ld a, [de]
-	dec a
-	ld c, a
-	ld b, $0
-	add hl, bc
-	pop bc
-	inc de
-	ld a, [de]
-	cp $2
-	ret z
-	push bc
-	dec a
-	dec a
-	ld c, a
-	ld b, a
-	ld de, $14
-.loop2
-	ld a, $7c
-	ld [hl], a
-	add hl, de
-	dec c
-	jr nz, .loop2
-	pop hl
-.loop3
-	ld a, $7c
-	ld [hl], a
-	add hl, de
-	dec b
-	jr nz, .loop3
-	ret
-
-.AddNMinusOneTimes: ; 11d0ac (47:50ac)
-	ld a, [de]
-	dec a
-	ld bc, SCREEN_WIDTH
-.add_n_minus_one_times
-	add hl, bc
-	dec a
-	jr nz, .add_n_minus_one_times
-	ret
-
-AnimateEZChatCursor: ; 11d0b6 (47:50b6)
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, [hl]
-	ld e, a
-	ld d, 0
-	ld hl, .Jumptable
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-
-.Jumptable:
-	dw .zero
-	dw .one
-	dw .two
-	dw .three
-	dw .four
-	dw .five
-	dw .six
-	dw .seven
-	dw .eight
-	dw .nine
-	dw .ten
-
-.zero ; 11d0dd (47:50dd)
-	ld a, [wcd20] ; wcd20
-	sla a
-	ld hl, .Coords_Zero
-	ld e, $1
-	jr .load
-
-.one ; 11d0e9 (47:50e9)
-	ld a, [wcd21]
-	sla a
-	ld hl, .Coords_One
-	ld e, $2
-	jr .load
-
-.two ; 11d0f5 (47:50f5)
-	ld hl, .FramesetsIDs_Two
-	ld a, [wcd22]
-	ld e, a
-	ld d, $0
-	add hl, de
-	ld a, [hl]
-	call ReinitSpriteAnimFrame
-
-	ld a, [wcd22]
-	sla a
-	ld hl, .Coords_Two
-	ld e, $4
-	jr .load
-
-.three ; 11d10f (47:510f)
-	ld a, SPRITE_ANIM_FRAMESET_27
-	call ReinitSpriteAnimFrame
-	ld a, [wMobileCommsJumptableIndex]
-	sla a
-	ld hl, .Coords_Three
-	ld e, $8
-.load ; 11d11e (47:511e)
-	push de
-	ld e, a
-	ld d, $0
-	add hl, de
-	push hl
-	pop de
-	ld hl, SPRITEANIMSTRUCT_XCOORD
-	add hl, bc
-	ld a, [de]
-	inc de
-	ld [hli], a
-	ld a, [de]
-	ld [hl], a
-	pop de
-	ld a, e
-	call .UpdateObjectFlags
-	ret
-
-.four ; 11d134 (47:5134)
-	ld a, SPRITE_ANIM_FRAMESET_27
-	call ReinitSpriteAnimFrame
-	ld a, [wcd2a]
-	sla a
-	ld hl, .Coords_Four
-	ld e, $10
-	jr .load
-
-.five ; 11d145 (47:5145)
-	ld a, SPRITE_ANIM_FRAMESET_27
-	call ReinitSpriteAnimFrame
-	ld a, [wcd2c]
-	sla a
-	ld hl, .Coords_Five
-	ld e, $20
-	jr .load
-
-.six ; 11d156 (47:5156)
-	ld a, SPRITE_ANIM_FRAMESET_2A
-	call ReinitSpriteAnimFrame
-	; X = [wcd4a] * 8 + 24
-	ld a, [wcd4a]
-	sla a
-	sla a
-	sla a
-	add $18
-	ld hl, SPRITEANIMSTRUCT_XCOORD
-	add hl, bc
-	ld [hli], a
-	; Y = 48
-	ld a, $30
-	ld [hl], a
-
-	ld a, $1
-	ld e, a
-	call .UpdateObjectFlags
-	ret
-
-.seven ; 11d175 (47:5175)
-	ld a, [wEZChatCursorYCoord]
-	cp $4
-	jr z, .frameset_26
-	ld a, SPRITE_ANIM_FRAMESET_28
-	jr .got_frameset
-
-.frameset_26
-	ld a, SPRITE_ANIM_FRAMESET_26
-.got_frameset
-	call ReinitSpriteAnimFrame
-	ld a, [wEZChatCursorYCoord]
-	cp $4
-	jr z, .asm_11d1b1
-	; X = [wEZChatCursorXCoord] * 8 + 32
-	ld a, [wEZChatCursorXCoord]
-	sla a
-	sla a
-	sla a
-	add $20
-	ld hl, SPRITEANIMSTRUCT_XCOORD
-	add hl, bc
-	ld [hli], a
-	; Y = [wEZChatCursorYCoord] * 16 + 72
-	ld a, [wEZChatCursorYCoord]
-	sla a
-	sla a
-	sla a
-	sla a
-	add $48
-	ld [hl], a
-	ld a, $2
-	ld e, a
-	call .UpdateObjectFlags
-	ret
-
-.asm_11d1b1
-	; X = [wEZChatCursorXCoord] * 40 + 24
-	ld a, [wEZChatCursorXCoord]
-	sla a
-	sla a
-	sla a
-	ld e, a
-	sla a
-	sla a
-	add e
-	add $18
-	ld hl, SPRITEANIMSTRUCT_XCOORD
-	add hl, bc
-	ld [hli], a
-	; Y = 138
-	ld a, $8a
-	ld [hl], a
-	ld a, $2
-	ld e, a
-	call .UpdateObjectFlags
-	ret
-
-.nine ; 11d1d1 (47:51d1)
-	ld d, -13 * 8
-	ld a, SPRITE_ANIM_FRAMESET_2C
-	jr .eight_nine_load
-
-.eight ; 11d1d7 (47:51d7)
-	ld d, 2 * 8
-	ld a, SPRITE_ANIM_FRAMESET_2B
-.eight_nine_load ; 11d1db (47:51db)
-	push de
-	call ReinitSpriteAnimFrame
-	ld a, [wcd4a]
-	sla a
-	sla a
-	sla a
-	ld e, a
-	sla a
-	add e
-	add 8 * 8
-	ld hl, SPRITEANIMSTRUCT_YCOORD
-	add hl, bc
-	ld [hld], a
-	pop af
-	ld [hl], a
-	ld a, $4
-	ld e, a
-	call .UpdateObjectFlags
-	ret
-
-.ten ; 11d1fc (47:51fc)
-	ld a, SPRITE_ANIM_FRAMESET_26
-	call ReinitSpriteAnimFrame
-	ld a, $8
-	ld e, a
-	call .UpdateObjectFlags
-	ret
-; 11d208 (47:5208)
-
-.Coords_Zero: ; 11d208
-	dbpixel  1,  3, 5, 2
-	dbpixel  7,  3, 5, 2
-	dbpixel 13,  3, 5, 2
-	dbpixel  1,  5, 5, 2
-	dbpixel  7,  5, 5, 2
-	dbpixel 13,  5, 5, 2
-	dbpixel  1, 17, 5, 2
-	dbpixel  7, 17, 5, 2
-	dbpixel 13, 17, 5, 2
-
-.Coords_One: ; 11d21a
-	dbpixel  1,  8, 5, 2
-	dbpixel  7,  8, 5, 2
-	dbpixel 13,  8, 5, 2
-	dbpixel  1, 10, 5, 2
-	dbpixel  7, 10, 5, 2
-	dbpixel 13, 10, 5, 2
-	dbpixel  1, 12, 5, 2
-	dbpixel  7, 12, 5, 2
-	dbpixel 13, 12, 5, 2
-	dbpixel  1, 14, 5, 2
-	dbpixel  7, 14, 5, 2
-	dbpixel 13, 14, 5, 2
-	dbpixel  1, 16, 5, 2
-	dbpixel  7, 16, 5, 2
-	dbpixel 13, 16, 5, 2
-	dbpixel  1, 18, 5, 2
-	dbpixel  7, 18, 5, 2
-	dbpixel 13, 18, 5, 2
-
-.Coords_Two: ; 11d23e
-	dbpixel  2,  9       ; 00
-	dbpixel  3,  9       ; 01
-	dbpixel  4,  9       ; 02
-	dbpixel  5,  9       ; 03
-	dbpixel  6,  9       ; 04
-	dbpixel  2, 11       ; 05
-	dbpixel  3, 11       ; 06
-	dbpixel  4, 11       ; 07
-	dbpixel  5, 11       ; 08
-	dbpixel  6, 11       ; 09
-	dbpixel  2, 13       ; 0a
-	dbpixel  3, 13       ; 0b
-	dbpixel  4, 13       ; 0c
-	dbpixel  5, 13       ; 0d
-	dbpixel  6, 13       ; 0e
-	dbpixel  2, 15       ; 0f
-	dbpixel  3, 15       ; 10
-	dbpixel  4, 15       ; 11
-	dbpixel  5, 15       ; 12
-	dbpixel  6, 15       ; 13
-	dbpixel  8,  9       ; 14
-	dbpixel  9,  9       ; 15
-	dbpixel 10,  9       ; 16
-	dbpixel 11,  9       ; 17
-	dbpixel 12,  9       ; 18
-	dbpixel  8, 11       ; 19
-	dbpixel  9, 11       ; 1a
-	dbpixel 10, 11       ; 1b
-	dbpixel 11, 11       ; 1c
-	dbpixel 12, 11       ; 1d
-	dbpixel  8, 13       ; 1e
-	dbpixel  9, 13       ; 1f
-	dbpixel 10, 13       ; 20
-	dbpixel 11, 13       ; 21
-	dbpixel 12, 13       ; 22
-	dbpixel 14,  9       ; 23
-	dbpixel 16,  9       ; 24
-	dbpixel 18,  9       ; 25
-	dbpixel  8, 15       ; 26
-	dbpixel  9, 15       ; 27
-	dbpixel 10, 15       ; 28
-	dbpixel 11, 15       ; 29
-	dbpixel 12, 15       ; 2a
-	dbpixel 14, 11       ; 2b
-	dbpixel 14, 13       ; 2c
-	dbpixel  1, 18, 5, 2 ; 2d
-	dbpixel  7, 18, 5, 2 ; 2e
-	dbpixel 13, 18, 5, 2 ; 2f
-
-.Coords_Three: ; 11d29e
-	dbpixel  2, 10
-	dbpixel  8, 10
-	dbpixel 14, 10
-	dbpixel  2, 12
-	dbpixel  8, 12
-	dbpixel 14, 12
-	dbpixel  2, 14
-	dbpixel  8, 14
-	dbpixel 14, 14
-	dbpixel  2, 16
-	dbpixel  8, 16
-	dbpixel 14, 16
-
-.Coords_Four: ; 11d2b6
-	dbpixel 16, 10
-	dbpixel 16, 12
-
-.Coords_Five: ; 11d2ba
-	dbpixel  4, 10
-	dbpixel  4, 12
-
-.FramesetsIDs_Two: ; 11d2be
-	db SPRITE_ANIM_FRAMESET_28 ; 00
-	db SPRITE_ANIM_FRAMESET_28 ; 01
-	db SPRITE_ANIM_FRAMESET_28 ; 02
-	db SPRITE_ANIM_FRAMESET_28 ; 03
-	db SPRITE_ANIM_FRAMESET_28 ; 04
-	db SPRITE_ANIM_FRAMESET_28 ; 05
-	db SPRITE_ANIM_FRAMESET_28 ; 06
-	db SPRITE_ANIM_FRAMESET_28 ; 07
-	db SPRITE_ANIM_FRAMESET_28 ; 08
-	db SPRITE_ANIM_FRAMESET_28 ; 09
-	db SPRITE_ANIM_FRAMESET_28 ; 0a
-	db SPRITE_ANIM_FRAMESET_28 ; 0b
-	db SPRITE_ANIM_FRAMESET_28 ; 0c
-	db SPRITE_ANIM_FRAMESET_28 ; 0d
-	db SPRITE_ANIM_FRAMESET_28 ; 0e
-	db SPRITE_ANIM_FRAMESET_28 ; 0f
-	db SPRITE_ANIM_FRAMESET_28 ; 10
-	db SPRITE_ANIM_FRAMESET_28 ; 11
-	db SPRITE_ANIM_FRAMESET_28 ; 12
-	db SPRITE_ANIM_FRAMESET_28 ; 13
-	db SPRITE_ANIM_FRAMESET_28 ; 14
-	db SPRITE_ANIM_FRAMESET_28 ; 15
-	db SPRITE_ANIM_FRAMESET_28 ; 16
-	db SPRITE_ANIM_FRAMESET_28 ; 17
-	db SPRITE_ANIM_FRAMESET_28 ; 18
-	db SPRITE_ANIM_FRAMESET_28 ; 19
-	db SPRITE_ANIM_FRAMESET_28 ; 1a
-	db SPRITE_ANIM_FRAMESET_28 ; 1b
-	db SPRITE_ANIM_FRAMESET_28 ; 1c
-	db SPRITE_ANIM_FRAMESET_28 ; 1d
-	db SPRITE_ANIM_FRAMESET_28 ; 1e
-	db SPRITE_ANIM_FRAMESET_28 ; 1f
-	db SPRITE_ANIM_FRAMESET_28 ; 20
-	db SPRITE_ANIM_FRAMESET_28 ; 21
-	db SPRITE_ANIM_FRAMESET_28 ; 22
-	db SPRITE_ANIM_FRAMESET_28 ; 23
-	db SPRITE_ANIM_FRAMESET_28 ; 24
-	db SPRITE_ANIM_FRAMESET_28 ; 25
-	db SPRITE_ANIM_FRAMESET_28 ; 26
-	db SPRITE_ANIM_FRAMESET_28 ; 27
-	db SPRITE_ANIM_FRAMESET_28 ; 28
-	db SPRITE_ANIM_FRAMESET_28 ; 29
-	db SPRITE_ANIM_FRAMESET_28 ; 2a
-	db SPRITE_ANIM_FRAMESET_28 ; 2b
-	db SPRITE_ANIM_FRAMESET_29 ; 2c
-	db SPRITE_ANIM_FRAMESET_26 ; 2d
-	db SPRITE_ANIM_FRAMESET_26 ; 2e
-	db SPRITE_ANIM_FRAMESET_26 ; 2f
-
-.UpdateObjectFlags: ; 11d2ee (47:52ee)
-	ld hl, wcd24
-	and [hl]
-	jr nz, .update_y_offset
-	ld a, e
-	ld hl, wcd23
-	and [hl]
-	jr z, .reset_y_offset
-	ld hl, SPRITEANIMSTRUCT_0E
-	add hl, bc
-	ld a, [hl]
-	and a
-	jr z, .flip_bit_0
-	dec [hl]
-	ret
-
-.flip_bit_0
-	ld a, $0
-	ld [hld], a
-	ld a, $1
-	xor [hl]
-	ld [hl], a
-	and a
-	jr nz, .update_y_offset
-.reset_y_offset
-	ld hl, SPRITEANIMSTRUCT_YOFFSET
-	add hl, bc
-	xor a
-	ld [hl], a
-	ret
-
-.update_y_offset
-	ld hl, SPRITEANIMSTRUCT_YCOORD
-	add hl, bc
-	ld a, $b0
-	sub [hl]
-	ld hl, SPRITEANIMSTRUCT_YOFFSET
-	add hl, bc
-	ld [hl], a
-	ret
-
-Function11d323: ; 11d323
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_11d33a
-	ld de, UnknBGPals
-	ld bc, 16 palettes
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	ret
-; 11d33a
-
-Palette_11d33a:
-	RGB 31, 31, 31
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 31, 16, 31
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 23, 17, 31
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-; 11d3ba
-
-EZChat_GetSeenPokemonByKana: ; 11d3ba
-	ld a, [rSVBK]
-	push af
-	ld hl, $c648
-	ld a, w5_d800 % $100
-	ld [wcd2d], a
-	ld [hli], a
-	ld a, w5_d800 / $100
-	ld [wcd2e], a
-	ld [hl], a
-
-	ld a, SortedPokemon % $100
-	ld [wcd2f], a
-	ld a, SortedPokemon / $100
-	ld [wcd30], a
-
-	ld a, $c6a8 % $100
-	ld [wcd31], a
-	ld a, $c6a8 / $100
-	ld [wcd32], a
-
-	ld a, $c64a % $100
-	ld [wcd33], a
-	ld a, $c64a / $100
-	ld [wcd34], a
-
-	ld hl, EZChat_SortedWords
-	ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4
-
-.MasterLoop: ; 11d3ef
-	push af
-; read row
-; offset
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-; size
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-; save the pointer to the next row
-	push hl
-; add de to w3_d000
-	ld hl, w3_d000
-	add hl, de
-; recover de from wcd2d (default: w5_d800)
-	ld a, [wcd2d]
-	ld e, a
-	ld a, [wcd2e]
-	ld d, a
-; save bc for later
-	push bc
-
-.loop1
-; copy 2*bc bytes from 3:hl to 5:de
-	ld a, $3
-	ld [rSVBK], a
-	ld a, [hli]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	pop af
-	ld [de], a
-	inc de
-
-	ld a, $3
-	ld [rSVBK], a
-	ld a, [hli]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	pop af
-	ld [de], a
-	inc de
-
-	dec bc
-	ld a, c
-	or b
-	jr nz, .loop1
-
-; recover the pointer from wcd2f (default: SortedPokemon)
-	ld a, [wcd2f]
-	ld l, a
-	ld a, [wcd30]
-	ld h, a
-; copy the pointer from [hl] to bc
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-; store the pointer to the next pointer back in wcd2f
-	ld a, l
-	ld [wcd2f], a
-	ld a, h
-	ld [wcd30], a
-; push pop that pointer to hl
-	push bc
-	pop hl
-	ld c, $0
-.loop2
-; Have you seen this Pokemon?
-	ld a, [hl]
-	cp $ff
-	jr z, .done
-	call .CheckSeenMon
-	jr nz, .next
-; If not, skip it.
-	inc hl
-	jr .loop2
-
-.next
-; If so, append it to the list at 5:de, and increase the count.
-	ld a, [hli]
-	ld [de], a
-	inc de
-	xor a
-	ld [de], a
-	inc de
-	inc c
-	jr .loop2
-
-.done
-; Remember the original value of bc from the table?
-; Well, the stack remembers it, and it's popping it to hl.
-	pop hl
-; Add the number of seen Pokemon from the list.
-	ld b, $0
-	add hl, bc
-; Push pop to bc.
-	push hl
-	pop bc
-; Load the pointer from [wcd31] (default: $c6a8)
-	ld a, [wcd31]
-	ld l, a
-	ld a, [wcd32]
-	ld h, a
-; Save the quantity from bc to [hl]
-	ld a, c
-	ld [hli], a
-	ld a, b
-	ld [hli], a
-; Save the new value of hl to [wcd31]
-	ld a, l
-	ld [wcd31], a
-	ld a, h
-	ld [wcd32], a
-; Recover the pointer from [wcd33] (default: $c64a)
-	ld a, [wcd33]
-	ld l, a
-	ld a, [wcd34]
-	ld h, a
-; Save the current value of de there
-	ld a, e
-	ld [wcd2d], a
-	ld [hli], a
-	ld a, d
-	ld [wcd2e], a
-; Save the new value of hl back to [wcd33]
-	ld [hli], a
-	ld a, l
-	ld [wcd33], a
-	ld a, h
-	ld [wcd34], a
-; Next row
-	pop hl
-	pop af
-	dec a
-	jr z, .ExitMasterLoop
-	jp .MasterLoop
-
-.ExitMasterLoop:
-	pop af
-	ld [rSVBK], a
-	ret
-; 11d493
-
-.CheckSeenMon: ; 11d493
-	push hl
-	push bc
-	push de
-	dec a
-	ld hl, rSVBK
-	ld e, $1
-	ld [hl], e
-	call CheckSeenMon
-	ld hl, rSVBK
-	ld e, $5
-	ld [hl], e
-	pop de
-	pop bc
-	pop hl
-	ret
-; 11d4aa
-
-EZChat_GetCategoryWordsByKana: ; 11d4aa
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-
-	; load pointers
-	ld hl, MobileEZChatCategoryPointers
-	ld bc, MobileEZChatData_WordAndPageCounts
-
-	; init WRAM registers
-	xor a
-	ld [wcd2d], a
-	inc a
-	ld [wcd2e], a
-
-	; enter the first loop
-	ld a, 14
-.loop1
-	push af
-
-	; load the pointer to the category
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push hl
-
-	; skip to the attributes
-	ld hl, 5 ; length of a string
-	add hl, de
-
-	; get the number of words in the category
-	ld a, [bc] ; number of entries to copy
-	inc bc
-	inc bc
-	push bc
-
-.loop2
-	push af
-	push hl
-
-	; load offset at [hl]
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-
-	; add to w3_d000
-	ld hl, w3_d000
-	add hl, de
-
-	; copy from wcd2d and increment [wcd2d] in place
-	ld a, [wcd2d]
-	ld [hli], a
-	inc a
-	ld [wcd2d], a
-
-	; copy from wcd2e
-	ld a, [wcd2e]
-	ld [hl], a
-
-	; next entry
-	pop hl
-	ld de, 8
-	add hl, de
-	pop af
-	dec a
-	jr nz, .loop2
-
-	; reset and go to next category
-	ld hl, wcd2d
-	xor a
-	ld [hli], a
-	inc [hl]
-	pop bc
-	pop hl
-	pop af
-	dec a
-	jr nz, .loop1
-	pop af
-	ld [rSVBK], a
-	ret
-; 11d4fe
-
-SortedPokemon:
-; Pokemon sorted by kana.
-; Notably, Rhydon is missing.
-	dw .a
-	dw .i
-	dw .u
-	dw .e
-	dw .o
-	dw .ka_ga
-	dw .ki_gi
-	dw .ku_gu
-	dw .ke_ge
-	dw .ko_go
-	dw .sa_za
-	dw .shi_ji
-	dw .su_zu
-	dw .se_ze
-	dw .so_zo
-	dw .ta_da
-	dw .chi_dhi
-	dw .tsu_du
-	dw .te_de
-	dw .to_do
-	dw .na
-	dw .ni
-	dw .nu
-	dw .ne
-	dw .no
-	dw .ha_ba_pa
-	dw .hi_bi_pi
-	dw .fu_bu_pu
-	dw .he_be_pe
-	dw .ho_bo_po
-	dw .ma
-	dw .mi
-	dw .mu
-	dw .me
-	dw .mo
-	dw .ya
-	dw .yu
-	dw .yo
-	dw .ra
-	dw .ri
-	dw .ru
-	dw .re
-	dw .ro
-	dw .wa
-	dw .end
-
-.a:		db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1
-.i:		db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1
-.u:		db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1
-.e:		db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1
-.o:		db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1
-.ka_ga		db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1
-.ki_gi		db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1
-.ku_gu		db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1
-.ke_ge		db ABRA, GENGAR, TAUROS, -1
-.ko_go		db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1
-.sa_za		db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list
-.shi_ji		db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1
-.su_zu		db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1
-.se_ze		db SQUIRTLE, CELEBI, -1
-.so_zo		db WOBBUFFET, -1
-.ta_da		db DUGTRIO, HORSEA, EXEGGCUTE, -1
-.chi_dhi	db CHIKORITA, CHINCHOU, -1
-.tsu_du		db SHUCKLE, -1
-.te_de		db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1
-.to_do		db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1
-.na		db ODDISH, EXEGGUTOR, -1
-.ni		db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1
-.nu		db QUAGSIRE, -1
-.ne		db NATU, XATU, -1
-.no		db DUNSPARCE, -1
-.ha_ba_pa	db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1
-.hi_bi_pi	db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1
-.fu_bu_pu	db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1
-.he_be_pe	db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1
-.ho_bo_po	db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1
-.ma		db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1
-.mi		db DRATINI, MEW, MEWTWO, MILTANK, -1
-.mu		db MISDREAVUS, SMOOCHUM, -1
-.me		db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1
-.mo		db FLAAFFY, VENOMOTH, TANGELA, -1
-.ya		db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1
-.yu		db KADABRA, -1
-.yo		db LARVITAR, NOCTOWL, -1
-.ra		db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1
-.ri		db CHARMELEON, CHARIZARD, URSARING, -1
-.ru		db JYNX, LUGIA, -1
-.re		db MAGNETON, LEDIAN, LEDYBA, -1
-.ro		db VULPIX, -1
-.wa		db JUMPLUFF, TOTODILE, MACHOP;, -1
-.end		db -1
-; 11d67e
-
-GFX_11d67e:
-INCBIN "gfx/pokedex/select_start.2bpp"
-; 11d6de
-
-LZ_11d6de:
-INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-; 11da52
-
-MobileEZChatCategoryNames: ; 11da52
-; Fixed message categories
-	db "ポケモン@@" ; 00
-	db "タイプ@@@" ; 01
-	db "あいさつ@@" ; 02
-	db "ひと@@@@" ; 03
-	db "バトル@@@" ; 04
-	db "こえ@@@@" ; 05
-	db "かいわ@@@" ; 06
-	db "きもち@@@" ; 07
-	db "じょうたい@" ; 08
-	db "せいかつ@@" ; 09
-	db "しゅみ@@@" ; 0a
-	db "こうどう@@" ; 0b
-	db "じかん@@@" ; 0c
-	db "むすび@@@" ; 0d
-	db "あれこれ@@" ; 0e
-; 11daac
-
-MobileEZChatCategoryPointers: ; 11daac
-; entries correspond to EZCHAT_* constants
-	dw .Types          ; 01
-	dw .Greetings      ; 02
-	dw .People         ; 03
-	dw .Battle         ; 04
-	dw .Exclamations   ; 05
-	dw .Conversation   ; 06
-	dw .Feelings       ; 07
-	dw .Conditions     ; 08
-	dw .Life           ; 09
-	dw .Hobbies        ; 0a
-	dw .Actions        ; 0b
-	dw .Time           ; 0c
-	dw .Farewells      ; 0d
-	dw .ThisAndThat    ; 0e
-
-.Types: ; 11dac8
-	db "あく@@@", $26, $0, $0
-	db "いわ@@@", $aa, $0, $0
-	db "エスパー@", $da, $0, $0
-	db "かくとう@", $4e, $1, $0
-	db "くさ@@@", $ba, $1, $0
-	db "ゴースト@", $e4, $1, $0
-	db "こおり@@", $e6, $1, $0
-	db "じめん@@", $68, $2, $0
-	db "タイプ@@", $e8, $2, $0
-	db "でんき@@", $8e, $3, $0
-	db "どく@@@", $ae, $3, $0
-	db "ドラゴン@", $bc, $3, $0
-	db "ノーマル@", $22, $4, $0
-	db "はがね@@", $36, $4, $0
-	db "ひこう@@", $5e, $4, $0
-	db "ほのお@@", $b2, $4, $0
-	db "みず@@@", $f4, $4, $0
-	db "むし@@@", $12, $5, $0
-
-.Greetings: ; 11db58
-	db "ありがと@", $58, $0, $0
-	db "ありがとう", $5a, $0, $0
-	db "いくぜ!@", $80, $0, $0
-	db "いくよ!@", $82, $0, $0
-	db "いくわよ!", $84, $0, $0
-	db "いやー@@", $a6, $0, $0
-	db "おっす@@", $a, $1, $0
-	db "おはつです", $22, $1, $0
-	db "おめでとう", $2a, $1, $0
-	db "ごめん@@", $f8, $1, $0
-	db "ごめんよ@", $fa, $1, $0
-	db "こらっ@@", $fc, $1, $0
-	db "こんちは!", $a, $2, $0
-	db "こんにちは", $10, $2, $0
-	db "さようなら", $28, $2, $0
-	db "サンキュー", $2e, $2, $0
-	db "さんじょう", $30, $2, $0
-	db "しっけい@", $48, $2, $0
-	db "しつれい@", $4c, $2, $0
-	db "じゃーね@", $6c, $2, $0
-	db "すいません", $8c, $2, $0
-	db "それじゃ@", $ca, $2, $0
-	db "どうも@@", $a6, $3, $0
-	db "なんじゃ@", $ee, $3, $0
-	db "ハーイ@@", $2c, $4, $0
-	db "はいはい@", $32, $4, $0
-	db "バイバイ@", $34, $4, $0
-	db "へイ@@@", $8a, $4, $0
-	db "またね@@", $de, $4, $0
-	db "もしもし@", $32, $5, $0
-	db "やあ@@@", $3e, $5, $0
-	db "やっほー@", $4e, $5, $0
-	db "よう@@@", $62, $5, $0
-	db "ようこそ@", $64, $5, $0
-	db "よろしく@", $80, $5, $0
-	db "らっしゃい", $94, $5, $0
-
-.People: ; 11dc78
-	db "あいて@@", $1c, $0, $0
-	db "あたし@@", $36, $0, $0
-	db "あなた@@", $40, $0, $0
-	db "あなたが@", $42, $0, $0
-	db "あなたに@", $44, $0, $0
-	db "あなたの@", $46, $0, $0
-	db "あなたは@", $48, $0, $0
-	db "あなたを@", $4a, $0, $0
-	db "おかあさん", $e8, $0, $0
-	db "おじいさん", $fc, $0, $0
-	db "おじさん@", $2, $1, $0
-	db "おとうさん", $e, $1, $0
-	db "おとこのこ", $10, $1, $0
-	db "おとな@@", $14, $1, $0
-	db "おにいさん", $16, $1, $0
-	db "おねえさん", $18, $1, $0
-	db "おばあさん", $1c, $1, $0
-	db "おばさん@", $20, $1, $0
-	db "おれさま@", $34, $1, $0
-	db "おんなのこ", $3a, $1, $0
-	db "ガール@@", $40, $1, $0
-	db "かぞく@@", $52, $1, $0
-	db "かのじょ@", $72, $1, $0
-	db "かれ@@@", $7c, $1, $0
-	db "きみ@@@", $9a, $1, $0
-	db "きみが@@", $9c, $1, $0
-	db "きみに@@", $9e, $1, $0
-	db "きみの@@", $a0, $1, $0
-	db "きみは@@", $a2, $1, $0
-	db "きみを@@", $a4, $1, $0
-	db "ギャル@@", $ae, $1, $0
-	db "きょうだい", $b2, $1, $0
-	db "こども@@", $f0, $1, $0
-	db "じぶん@@", $54, $2, $0
-	db "じぶんが@", $56, $2, $0
-	db "じぶんに@", $58, $2, $0
-	db "じぶんの@", $5a, $2, $0
-	db "じぶんは@", $5c, $2, $0
-	db "じぶんを@", $5e, $2, $0
-	db "だれ@@@", $18, $3, $0
-	db "だれか@@", $1a, $3, $0
-	db "だれが@@", $1c, $3, $0
-	db "だれに@@", $1e, $3, $0
-	db "だれの@@", $20, $3, $0
-	db "だれも@@", $22, $3, $0
-	db "だれを@@", $24, $3, $0
-	db "ちゃん@@", $38, $3, $0
-	db "ともだち@", $b8, $3, $0
-	db "なかま@@", $d4, $3, $0
-	db "ひと@@@", $62, $4, $0
-	db "ボーイ@@", $98, $4, $0
-	db "ボク@@@", $a0, $4, $0
-	db "ボクが@@", $a2, $4, $0
-	db "ボクに@@", $a4, $4, $0
-	db "ボクの@@", $a6, $4, $0
-	db "ボクは@@", $a8, $4, $0
-	db "ボクを@@", $aa, $4, $0
-	db "みんな@@", $4, $5, $0
-	db "みんなが@", $6, $5, $0
-	db "みんなに@", $8, $5, $0
-	db "みんなの@", $a, $5, $0
-	db "みんなは@", $c, $5, $0
-	db "ライバル@", $8a, $5, $0
-	db "わたし@@", $c2, $5, $0
-	db "わたしが@", $c4, $5, $0
-	db "わたしに@", $c6, $5, $0
-	db "わたしの@", $c8, $5, $0
-	db "わたしは@", $ca, $5, $0
-	db "わたしを@", $cc, $5, $0
-
-.Battle: ; 11dea0
-	db "あいしょう", $18, $0, $0
-	db "いけ!@@", $88, $0, $0
-	db "いちばん@", $96, $0, $0
-	db "かくご@@", $4c, $1, $0
-	db "かたせて@", $54, $1, $0
-	db "かち@@@", $56, $1, $0
-	db "かつ@@@", $58, $1, $0
-	db "かった@@", $60, $1, $0
-	db "かったら@", $62, $1, $0
-	db "かって@@", $64, $1, $0
-	db "かてない@", $66, $1, $0
-	db "かてる@@", $68, $1, $0
-	db "かなわない", $70, $1, $0
-	db "きあい@@", $84, $1, $0
-	db "きめた@@", $a8, $1, $0
-	db "きりふだ@", $b6, $1, $0
-	db "くらえ@@", $c2, $1, $0
-	db "こい!@@", $da, $1, $0
-	db "こうげき@", $e0, $1, $0
-	db "こうさん@", $e2, $1, $0
-	db "こんじょう", $8, $2, $0
-	db "さいのう@", $16, $2, $0
-	db "さくせん@", $1a, $2, $0
-	db "さばき@@", $22, $2, $0
-	db "しょうぶ@", $7e, $2, $0
-	db "しょうり@", $80, $2, $0
-	db "せめ@@@", $b4, $2, $0
-	db "センス@@", $b6, $2, $0
-	db "たいせん@", $e6, $2, $0
-	db "たたかい@", $f6, $2, $0
-	db "ちから@@", $32, $3, $0
-	db "チャレンジ", $36, $3, $0
-	db "つよい@@", $58, $3, $0
-	db "つよすぎ@", $5a, $3, $0
-	db "つらい@@", $5c, $3, $0
-	db "つらかった", $5e, $3, $0
-	db "てかげん@", $6c, $3, $0
-	db "てき@@@", $6e, $3, $0
-	db "てんさい@", $90, $3, $0
-	db "でんせつ@", $94, $3, $0
-	db "トレーナー", $c6, $3, $0
-	db "にげ@@@", $4, $4, $0
-	db "ぬるい@@", $10, $4, $0
-	db "ねらう@@", $16, $4, $0
-	db "バトル@@", $4a, $4, $0
-	db "ファイト@", $72, $4, $0
-	db "ふっかつ@", $78, $4, $0
-	db "ポイント@", $94, $4, $0
-	db "ポケモン@", $ac, $4, $0
-	db "ほんき@@", $bc, $4, $0
-	db "まいった!", $c4, $4, $0
-	db "まけ@@@", $c8, $4, $0
-	db "まけたら@", $ca, $4, $0
-	db "まけて@@", $cc, $4, $0
-	db "まける@@", $ce, $4, $0
-	db "まもり@@", $ea, $4, $0
-	db "みかた@@", $f2, $4, $0
-	db "みとめない", $fe, $4, $0
-	db "みとめる@", $0, $5, $0
-	db "むてき@@", $16, $5, $0
-	db "もらった!", $3c, $5, $0
-	db "よゆう@@", $7a, $5, $0
-	db "よわい@@", $82, $5, $0
-	db "よわすぎ@", $84, $5, $0
-	db "らくしょう", $8e, $5, $0
-	db "りーダー@", $9e, $5, $0
-	db "ルール@@", $a0, $5, $0
-	db "レべル@@", $a6, $5, $0
-	db "わざ@@@", $be, $5, $0
-
-.Exclamations: ; 11e0c8
-	db "!@@@@", $0, $0, $0
-	db "!!@@@", $2, $0, $0
-	db "!?@@@", $4, $0, $0
-	db "?@@@@", $6, $0, $0
-	db "…@@@@", $8, $0, $0
-	db "…!@@@", $a, $0, $0
-	db "………@@", $c, $0, $0
-	db "ー@@@@", $e, $0, $0
-	db "ーーー@@", $10, $0, $0
-	db "あーあ@@", $14, $0, $0
-	db "あーん@@", $16, $0, $0
-	db "あははー@", $52, $0, $0
-	db "あら@@@", $54, $0, $0
-	db "いえ@@@", $72, $0, $0
-	db "イエス@@", $74, $0, $0
-	db "うう@@@", $ac, $0, $0
-	db "うーん@@", $ae, $0, $0
-	db "うおー!@", $b0, $0, $0
-	db "うおりゃー", $b2, $0, $0
-	db "うひょー@", $bc, $0, $0
-	db "うふふ@@", $be, $0, $0
-	db "うわー@@", $ca, $0, $0
-	db "うわーん@", $cc, $0, $0
-	db "ええ@@@", $d2, $0, $0
-	db "えー@@@", $d4, $0, $0
-	db "えーん@@", $d6, $0, $0
-	db "えへへ@@", $dc, $0, $0
-	db "おいおい@", $e0, $0, $0
-	db "おお@@@", $e2, $0, $0
-	db "おっと@@", $c, $1, $0
-	db "がーん@@", $42, $1, $0
-	db "キャー@@", $aa, $1, $0
-	db "ギャー@@", $ac, $1, $0
-	db "ぐふふふふ", $bc, $1, $0
-	db "げっ@@@", $ce, $1, $0
-	db "しくしく@", $3e, $2, $0
-	db "ちえっ@@", $2e, $3, $0
-	db "てへ@@@", $86, $3, $0
-	db "ノー@@@", $20, $4, $0
-	db "はあー@@", $2a, $4, $0
-	db "はい@@@", $30, $4, $0
-	db "はっはっは", $48, $4, $0
-	db "ひいー@@", $56, $4, $0
-	db "ひゃあ@@", $6a, $4, $0
-	db "ふっふっふ", $7c, $4, $0
-	db "ふにゃ@@", $7e, $4, $0
-	db "ププ@@@", $80, $4, $0
-	db "ふふん@@", $82, $4, $0
-	db "ふん@@@", $88, $4, $0
-	db "へっへっへ", $8e, $4, $0
-	db "へへー@@", $90, $4, $0
-	db "ほーほほほ", $9c, $4, $0
-	db "ほら@@@", $b6, $4, $0
-	db "まあ@@@", $c0, $4, $0
-	db "むきー!!", $10, $5, $0
-	db "むふー@@", $18, $5, $0
-	db "むふふ@@", $1a, $5, $0
-	db "むむ@@@", $1c, $5, $0
-	db "よーし@@", $6a, $5, $0
-	db "よし!@@", $72, $5, $0
-	db "ラララ@@", $98, $5, $0
-	db "わーい@@", $ac, $5, $0
-	db "わーん!!", $b0, $5, $0
-	db "ワォ@@@", $b2, $5, $0
-	db "わっ!!@", $ce, $5, $0
-	db "わははは!", $d0, $5, $0
-
-.Conversation: ; 11e2d8
-	db "あのね@@", $50, $0, $0
-	db "あんまり@", $6e, $0, $0
-	db "いじわる@", $8e, $0, $0
-	db "うそ@@@", $b6, $0, $0
-	db "うむ@@@", $c4, $0, $0
-	db "おーい@@", $e4, $0, $0
-	db "おすすめ@", $6, $1, $0
-	db "おばかさん", $1e, $1, $0
-	db "かなり@@", $6e, $1, $0
-	db "から@@@", $7a, $1, $0
-	db "きぶん@@", $98, $1, $0
-	db "けど@@@", $d6, $1, $0
-	db "こそ@@@", $ea, $1, $0
-	db "こと@@@", $ee, $1, $0
-	db "さあ@@@", $12, $2, $0
-	db "さっぱり@", $1e, $2, $0
-	db "さて@@@", $20, $2, $0
-	db "じゅうぶん", $72, $2, $0
-	db "すぐ@@@", $94, $2, $0
-	db "すごく@@", $98, $2, $0
-	db "すこしは@", $9a, $2, $0
-	db "すっっごい", $a0, $2, $0
-	db "ぜーんぜん", $b0, $2, $0
-	db "ぜったい@", $b2, $2, $0
-	db "それで@@", $ce, $2, $0
-	db "だけ@@@", $f2, $2, $0
-	db "だって@@", $fc, $2, $0
-	db "たぶん@@", $6, $3, $0
-	db "たら@@@", $14, $3, $0
-	db "ちょー@@", $3a, $3, $0
-	db "ちょっと@", $3c, $3, $0
-	db "ったら@@", $4e, $3, $0
-	db "って@@@", $50, $3, $0
-	db "ていうか@", $62, $3, $0
-	db "でも@@@", $88, $3, $0
-	db "どうしても", $9c, $3, $0
-	db "とうぜん@", $a0, $3, $0
-	db "どうぞ@@", $a2, $3, $0
-	db "とりあえず", $be, $3, $0
-	db "なあ@@@", $cc, $3, $0
-	db "なんて@@", $f4, $3, $0
-	db "なんでも@", $fc, $3, $0
-	db "なんとか@", $fe, $3, $0
-	db "には@@@", $8, $4, $0
-	db "バッチり@", $46, $4, $0
-	db "ばりばり@", $52, $4, $0
-	db "ほど@@@", $b0, $4, $0
-	db "ほんと@@", $be, $4, $0
-	db "まさに@@", $d0, $4, $0
-	db "マジ@@@", $d2, $4, $0
-	db "マジで@@", $d4, $4, $0
-	db "まったく@", $e4, $4, $0
-	db "まで@@@", $e6, $4, $0
-	db "まるで@@", $ec, $4, $0
-	db "ムード@@", $e, $5, $0
-	db "むしろ@@", $14, $5, $0
-	db "めちゃ@@", $24, $5, $0
-	db "めっぽう@", $28, $5, $0
-	db "もう@@@", $2c, $5, $0
-	db "モード@@", $2e, $5, $0
-	db "もっと@@", $36, $5, $0
-	db "もはや@@", $38, $5, $0
-	db "やっと@@", $4a, $5, $0
-	db "やっぱり@", $4c, $5, $0
-	db "より@@@", $7c, $5, $0
-	db "れば@@@", $a4, $5, $0
-
-.Feelings: ; 11e4e8
-	db "あいたい@", $1a, $0, $0
-	db "あそびたい", $32, $0, $0
-	db "いきたい@", $7c, $0, $0
-	db "うかれて@", $b4, $0, $0
-	db "うれしい@", $c6, $0, $0
-	db "うれしさ@", $c8, $0, $0
-	db "エキサイト", $d8, $0, $0
-	db "えらい@@", $de, $0, $0
-	db "おかしい@", $ec, $0, $0
-	db "ォッケー@", $8, $1, $0
-	db "かえりたい", $48, $1, $0
-	db "がっくし@", $5a, $1, $0
-	db "かなしい@", $6c, $1, $0
-	db "がんばって", $80, $1, $0
-	db "きがしない", $86, $1, $0
-	db "きがする@", $88, $1, $0
-	db "ききたい@", $8a, $1, $0
-	db "きになる@", $90, $1, $0
-	db "きのせい@", $96, $1, $0
-	db "きらい@@", $b4, $1, $0
-	db "くやしい@", $be, $1, $0
-	db "くやしさ@", $c0, $1, $0
-	db "さみしい@", $24, $2, $0
-	db "ざんねん@", $32, $2, $0
-	db "しあわせ@", $36, $2, $0
-	db "したい@@", $44, $2, $0
-	db "したくない", $46, $2, $0
-	db "しまった@", $64, $2, $0
-	db "しょんぼり", $82, $2, $0
-	db "すき@@@", $92, $2, $0
-	db "だいきらい", $da, $2, $0
-	db "たいくつ@", $dc, $2, $0
-	db "だいじ@@", $de, $2, $0
-	db "だいすき@", $e4, $2, $0
-	db "たいへん@", $ea, $2, $0
-	db "たのしい@", $0, $3, $0
-	db "たのしすぎ", $2, $3, $0
-	db "たべたい@", $8, $3, $0
-	db "ダメダメ@", $e, $3, $0
-	db "たりない@", $16, $3, $0
-	db "ちくしょー", $34, $3, $0
-	db "どうしよう", $9e, $3, $0
-	db "ドキドキ@", $ac, $3, $0
-	db "ナイス@@", $d0, $3, $0
-	db "のみたい@", $26, $4, $0
-	db "びっくり@", $60, $4, $0
-	db "ふあん@@", $74, $4, $0
-	db "ふらふら@", $86, $4, $0
-	db "ほしい@@", $ae, $4, $0
-	db "ボロボロ@", $b8, $4, $0
-	db "まだまだ@", $e0, $4, $0
-	db "まてない@", $e8, $4, $0
-	db "まんぞく@", $f0, $4, $0
-	db "みたい@@", $f8, $4, $0
-	db "めずらしい", $22, $5, $0
-	db "メラメラ@", $2a, $5, $0
-	db "やだ@@@", $46, $5, $0
-	db "やったー@", $48, $5, $0
-	db "やばい@@", $50, $5, $0
-	db "やばすぎる", $52, $5, $0
-	db "やられた@", $54, $5, $0
-	db "やられて@", $56, $5, $0
-	db "よかった@", $6e, $5, $0
-	db "ラブラブ@", $96, $5, $0
-	db "ロマン@@", $a8, $5, $0
-	db "ろんがい@", $aa, $5, $0
-	db "わから@@", $b4, $5, $0
-	db "わかり@@", $b6, $5, $0
-	db "わくわく@", $ba, $5, $0
-
-.Conditions: ; 11e710
-	db "あつい@@", $38, $0, $0
-	db "あった@@", $3a, $0, $0
-	db "あり@@@", $56, $0, $0
-	db "ある@@@", $5e, $0, $0
-	db "あわてて@", $6a, $0, $0
-	db "いい@@@", $70, $0, $0
-	db "いか@@@", $76, $0, $0
-	db "イカス@@", $78, $0, $0
-	db "いきおい@", $7a, $0, $0
-	db "いける@@", $8a, $0, $0
-	db "いじょう@", $8c, $0, $0
-	db "いそがしい", $90, $0, $0
-	db "いっしょに", $9a, $0, $0
-	db "いっぱい@", $9c, $0, $0
-	db "いない@@", $a0, $0, $0
-	db "いや@@@", $a4, $0, $0
-	db "いる@@@", $a8, $0, $0
-	db "うまい@@", $c0, $0, $0
-	db "うまく@@", $c2, $0, $0
-	db "おおきい@", $e6, $0, $0
-	db "おくれ@@", $f2, $0, $0
-	db "おしい@@", $fa, $0, $0
-	db "おもしろい", $2c, $1, $0
-	db "おもしろく", $2e, $1, $0
-	db "かっこいい", $5c, $1, $0
-	db "かわいい@", $7e, $1, $0
-	db "かんぺき@", $82, $1, $0
-	db "けっこう@", $d0, $1, $0
-	db "げんき@@", $d8, $1, $0
-	db "こわい@@", $6, $2, $0
-	db "さいこう@", $14, $2, $0
-	db "さむい@@", $26, $2, $0
-	db "さわやか@", $2c, $2, $0
-	db "しかたない", $38, $2, $0
-	db "すごい@@", $96, $2, $0
-	db "すごすぎ@", $9c, $2, $0
-	db "すてき@@", $a4, $2, $0
-	db "たいした@", $e0, $2, $0
-	db "だいじょぶ", $e2, $2, $0
-	db "たかい@@", $ec, $2, $0
-	db "ただしい@", $f8, $2, $0
-	db "だめ@@@", $c, $3, $0
-	db "ちいさい@", $2c, $3, $0
-	db "ちがう@@", $30, $3, $0
-	db "つかれ@@", $48, $3, $0
-	db "とくい@@", $b0, $3, $0
-	db "とまらない", $b6, $3, $0
-	db "ない@@@", $ce, $3, $0
-	db "なかった@", $d2, $3, $0
-	db "なし@@@", $d8, $3, $0
-	db "なって@@", $dc, $3, $0
-	db "はやい@@", $50, $4, $0
-	db "ひかる@@", $5a, $4, $0
-	db "ひくい@@", $5c, $4, $0
-	db "ひどい@@", $64, $4, $0
-	db "ひとりで@", $66, $4, $0
-	db "ひま@@@", $68, $4, $0
-	db "ふそく@@", $76, $4, $0
-	db "へた@@@", $8c, $4, $0
-	db "まちがって", $e2, $4, $0
-	db "やさしい@", $42, $5, $0
-	db "よく@@@", $70, $5, $0
-	db "よわって@", $86, $5, $0
-	db "らく@@@", $8c, $5, $0
-	db "らしい@@", $90, $5, $0
-	db "わるい@@", $d4, $5, $0
-
-.Life: ; 11e920
-	db "アルバイト", $64, $0, $0
-	db "うち@@@", $ba, $0, $0
-	db "おかね@@", $ee, $0, $0
-	db "おこづかい", $f4, $0, $0
-	db "おふろ@@", $24, $1, $0
-	db "がっこう@", $5e, $1, $0
-	db "きねん@@", $92, $1, $0
-	db "グループ@", $c6, $1, $0
-	db "ゲット@@", $d2, $1, $0
-	db "こうかん@", $de, $1, $0
-	db "しごと@@", $40, $2, $0
-	db "しゅぎょう", $74, $2, $0
-	db "じゅぎょう", $76, $2, $0
-	db "じゅく@@", $78, $2, $0
-	db "しんか@@", $88, $2, $0
-	db "ずかん@@", $90, $2, $0
-	db "せいかつ@", $ae, $2, $0
-	db "せんせい@", $b8, $2, $0
-	db "センター@", $ba, $2, $0
-	db "タワー@@", $28, $3, $0
-	db "つうしん@", $40, $3, $0
-	db "テスト@@", $7e, $3, $0
-	db "テレビ@@", $8c, $3, $0
-	db "でんわ@@", $96, $3, $0
-	db "どうぐ@@", $9a, $3, $0
-	db "トレード@", $c4, $3, $0
-	db "なまえ@@", $e8, $3, $0
-	db "ニュース@", $a, $4, $0
-	db "にんき@@", $c, $4, $0
-	db "パーティー", $2e, $4, $0
-	db "べんきょう", $92, $4, $0
-	db "マシン@@", $d6, $4, $0
-	db "めいし@@", $1e, $5, $0
-	db "メッセージ", $26, $5, $0
-	db "もようがえ", $3a, $5, $0
-	db "ゆめ@@@", $5a, $5, $0
-	db "ようちえん", $66, $5, $0
-	db "ラジォ@@", $92, $5, $0
-	db "ワールド@", $ae, $5, $0
-
-.Hobbies: ; 11ea58
-	db "アイドル@", $1e, $0, $0
-	db "アニメ@@", $4c, $0, $0
-	db "うた@@@", $b8, $0, $0
-	db "えいが@@", $d0, $0, $0
-	db "おかし@@", $ea, $0, $0
-	db "おしゃべり", $4, $1, $0
-	db "おままごと", $28, $1, $0
-	db "おもちゃ@", $30, $1, $0
-	db "おんがく@", $38, $1, $0
-	db "カード@@", $3e, $1, $0
-	db "かいもの@", $46, $1, $0
-	db "グルメ@@", $c8, $1, $0
-	db "ゲーム@@", $cc, $1, $0
-	db "ざっし@@", $1c, $2, $0
-	db "さんぽ@@", $34, $2, $0
-	db "じてんしゃ", $50, $2, $0
-	db "しゅみ@@", $7a, $2, $0
-	db "スポーツ@", $a8, $2, $0
-	db "ダイエット", $d8, $2, $0
-	db "たからもの", $f0, $2, $0
-	db "たび@@@", $4, $3, $0
-	db "ダンス@@", $2a, $3, $0
-	db "つり@@@", $60, $3, $0
-	db "デート@@", $6a, $3, $0
-	db "でんしゃ@", $92, $3, $0
-	db "ぬいぐるみ", $e, $4, $0
-	db "パソコン@", $3e, $4, $0
-	db "はな@@@", $4c, $4, $0
-	db "ヒーロー@", $58, $4, $0
-	db "ひるね@@", $6e, $4, $0
-	db "ヒロイン@", $70, $4, $0
-	db "ぼうけん@", $96, $4, $0
-	db "ボード@@", $9a, $4, $0
-	db "ボール@@", $9e, $4, $0
-	db "ほん@@@", $ba, $4, $0
-	db "マンガ@@", $ee, $4, $0
-	db "やくそく@", $40, $5, $0
-	db "やすみ@@", $44, $5, $0
-	db "よてい@@", $74, $5, $0
-
-.Actions: ; 11eb90
-	db "あう@@@", $20, $0, $0
-	db "あきらめ@", $24, $0, $0
-	db "あげる@@", $28, $0, $0
-	db "あせる@@", $2e, $0, $0
-	db "あそび@@", $30, $0, $0
-	db "あそぶ@@", $34, $0, $0
-	db "あつめ@@", $3e, $0, $0
-	db "あるき@@", $60, $0, $0
-	db "あるく@@", $62, $0, $0
-	db "いく@@@", $7e, $0, $0
-	db "いけ@@@", $86, $0, $0
-	db "おき@@@", $f0, $0, $0
-	db "おこり@@", $f6, $0, $0
-	db "おこる@@", $f8, $0, $0
-	db "おしえ@@", $fe, $0, $0
-	db "おしえて@", $0, $1, $0
-	db "おねがい@", $1a, $1, $0
-	db "おぼえ@@", $26, $1, $0
-	db "かえる@@", $4a, $1, $0
-	db "がまん@@", $74, $1, $0
-	db "きく@@@", $8c, $1, $0
-	db "きたえ@@", $8e, $1, $0
-	db "きめ@@@", $a6, $1, $0
-	db "くる@@@", $c4, $1, $0
-	db "さがし@@", $18, $2, $0
-	db "さわぎ@@", $2a, $2, $0
-	db "した@@@", $42, $2, $0
-	db "しって@@", $4a, $2, $0
-	db "して@@@", $4e, $2, $0
-	db "しない@@", $52, $2, $0
-	db "しまう@@", $60, $2, $0
-	db "じまん@@", $66, $2, $0
-	db "しらない@", $84, $2, $0
-	db "しる@@@", $86, $2, $0
-	db "しんじて@", $8a, $2, $0
-	db "する@@@", $aa, $2, $0
-	db "たべる@@", $a, $3, $0
-	db "つかう@@", $42, $3, $0
-	db "つかえ@@", $44, $3, $0
-	db "つかって@", $46, $3, $0
-	db "できない@", $70, $3, $0
-	db "できる@@", $72, $3, $0
-	db "でない@@", $84, $3, $0
-	db "でる@@@", $8a, $3, $0
-	db "なげる@@", $d6, $3, $0
-	db "なやみ@@", $ea, $3, $0
-	db "ねられ@@", $18, $4, $0
-	db "ねる@@@", $1a, $4, $0
-	db "のがし@@", $24, $4, $0
-	db "のむ@@@", $28, $4, $0
-	db "はしり@@", $3a, $4, $0
-	db "はしる@@", $3c, $4, $0
-	db "はたらき@", $40, $4, $0
-	db "はたらく@", $42, $4, $0
-	db "はまって@", $4e, $4, $0
-	db "ぶつけ@@", $7a, $4, $0
-	db "ほめ@@@", $b4, $4, $0
-	db "みせて@@", $f6, $4, $0
-	db "みて@@@", $fc, $4, $0
-	db "みる@@@", $2, $5, $0
-	db "めざす@@", $20, $5, $0
-	db "もって@@", $34, $5, $0
-	db "ゆずる@@", $58, $5, $0
-	db "ゆるす@@", $5c, $5, $0
-	db "ゆるせ@@", $5e, $5, $0
-	db "られない@", $9a, $5, $0
-	db "られる@@", $9c, $5, $0
-	db "わかる@@", $b8, $5, $0
-	db "わすれ@@", $c0, $5, $0
-
-.Time: ; 11edb8
-	db "あき@@@", $22, $0, $0
-	db "あさ@@@", $2a, $0, $0
-	db "あした@@", $2c, $0, $0
-	db "いちにち@", $94, $0, $0
-	db "いつか@@", $98, $0, $0
-	db "いつも@@", $9e, $0, $0
-	db "いま@@@", $a2, $0, $0
-	db "えいえん@", $ce, $0, $0
-	db "おととい@", $12, $1, $0
-	db "おわり@@", $36, $1, $0
-	db "かようび@", $78, $1, $0
-	db "きのう@@", $94, $1, $0
-	db "きょう@@", $b0, $1, $0
-	db "きんようび", $b8, $1, $0
-	db "げつようび", $d4, $1, $0
-	db "このあと@", $f4, $1, $0
-	db "このまえ@", $f6, $1, $0
-	db "こんど@@", $c, $2, $0
-	db "じかん@@", $3c, $2, $0
-	db "じゅうねん", $70, $2, $0
-	db "すいようび", $8e, $2, $0
-	db "スタート@", $9e, $2, $0
-	db "ずっと@@", $a2, $2, $0
-	db "ストップ@", $a6, $2, $0
-	db "そのうち@", $c4, $2, $0
-	db "ついに@@", $3e, $3, $0
-	db "つぎ@@@", $4a, $3, $0
-	db "どようび@", $ba, $3, $0
-	db "なつ@@@", $da, $3, $0
-	db "にちようび", $6, $4, $0
-	db "はじめ@@", $38, $4, $0
-	db "はる@@@", $54, $4, $0
-	db "ひる@@@", $6c, $4, $0
-	db "ふゆ@@@", $84, $4, $0
-	db "まいにち@", $c6, $4, $0
-	db "もくようび", $30, $5, $0
-	db "よなか@@", $76, $5, $0
-	db "よる@@@", $7e, $5, $0
-	db "らいしゅう", $88, $5, $0
-
-.Farewells: ; 11eef0
-	db "いたします", $92, $0, $0
-	db "おります@", $32, $1, $0
-	db "か!?@@", $3c, $1, $0
-	db "かい?@@", $44, $1, $0
-	db "かしら?@", $50, $1, $0
-	db "かな?@@", $6a, $1, $0
-	db "かも@@@", $76, $1, $0
-	db "くれ@@@", $ca, $1, $0
-	db "ございます", $e8, $1, $0
-	db "しがち@@", $3a, $2, $0
-	db "します@@", $62, $2, $0
-	db "じゃ@@@", $6a, $2, $0
-	db "じゃん@@", $6e, $2, $0
-	db "しよう@@", $7c, $2, $0
-	db "ぜ!@@@", $ac, $2, $0
-	db "ぞ!@@@", $bc, $2, $0
-	db "た@@@@", $d4, $2, $0
-	db "だ@@@@", $d6, $2, $0
-	db "だからね@", $ee, $2, $0
-	db "だぜ@@@", $f4, $2, $0
-	db "だった@@", $fa, $2, $0
-	db "だね@@@", $fe, $2, $0
-	db "だよ@@@", $10, $3, $0
-	db "だよねー!", $12, $3, $0
-	db "だわ@@@", $26, $3, $0
-	db "ッス@@@", $4c, $3, $0
-	db "ってかんじ", $52, $3, $0
-	db "っぱなし@", $54, $3, $0
-	db "つもり@@", $56, $3, $0
-	db "ていない@", $64, $3, $0
-	db "ている@@", $66, $3, $0
-	db "でーす!@", $68, $3, $0
-	db "でした@@", $74, $3, $0
-	db "でしょ?@", $76, $3, $0
-	db "でしょー!", $78, $3, $0
-	db "です@@@", $7a, $3, $0
-	db "ですか?@", $7c, $3, $0
-	db "ですよ@@", $80, $3, $0
-	db "ですわ@@", $82, $3, $0
-	db "どうなの?", $a4, $3, $0
-	db "どうよ?@", $a8, $3, $0
-	db "とかいって", $aa, $3, $0
-	db "なの@@@", $e0, $3, $0
-	db "なのか@@", $e2, $3, $0
-	db "なのだ@@", $e4, $3, $0
-	db "なのよ@@", $e6, $3, $0
-	db "なんだね@", $f2, $3, $0
-	db "なんです@", $f8, $3, $0
-	db "なんてね@", $fa, $3, $0
-	db "ね@@@@", $12, $4, $0
-	db "ねー@@@", $14, $4, $0
-	db "の@@@@", $1c, $4, $0
-	db "の?@@@", $1e, $4, $0
-	db "ばっかり@", $44, $4, $0
-	db "まーす!@", $c2, $4, $0
-	db "ます@@@", $d8, $4, $0
-	db "ますわ@@", $da, $4, $0
-	db "ません@@", $dc, $4, $0
-	db "みたいな@", $fa, $4, $0
-	db "よ!@@@", $60, $5, $0
-	db "よー@@@", $68, $5, $0
-	db "よーん@@", $6c, $5, $0
-	db "よね@@@", $78, $5, $0
-	db "るよ@@@", $a2, $5, $0
-	db "わけ@@@", $bc, $5, $0
-	db "わよ!@@", $d2, $5, $0
-
-.ThisAndThat: ; 11f100
-	db "ああ@@@", $12, $0, $0
-	db "あっち@@", $3c, $0, $0
-	db "あの@@@", $4e, $0, $0
-	db "ありゃ@@", $5c, $0, $0
-	db "あれ@@@", $66, $0, $0
-	db "あれは@@", $68, $0, $0
-	db "あんな@@", $6c, $0, $0
-	db "こう@@@", $dc, $1, $0
-	db "こっち@@", $ec, $1, $0
-	db "この@@@", $f2, $1, $0
-	db "こりゃ@@", $fe, $1, $0
-	db "これ@@@", $0, $2, $0
-	db "これだ!@", $2, $2, $0
-	db "これは@@", $4, $2, $0
-	db "こんな@@", $e, $2, $0
-	db "そう@@@", $be, $2, $0
-	db "そっち@@", $c0, $2, $0
-	db "その@@@", $c2, $2, $0
-	db "そりゃ@@", $c6, $2, $0
-	db "それ@@@", $c8, $2, $0
-	db "それだ!@", $cc, $2, $0
-	db "それは@@", $d0, $2, $0
-	db "そんな@@", $d2, $2, $0
-	db "どう@@@", $98, $3, $0
-	db "どっち@@", $b2, $3, $0
-	db "どの@@@", $b4, $3, $0
-	db "どりゃ@@", $c0, $3, $0
-	db "どれ@@@", $c2, $3, $0
-	db "どれを@@", $c8, $3, $0
-	db "どんな@@", $ca, $3, $0
-	db "なに@@@", $de, $3, $0
-	db "なんか@@", $ec, $3, $0
-	db "なんだ@@", $f0, $3, $0
-	db "なんで@@", $f6, $3, $0
-	db "なんなんだ", $0, $4, $0
-	db "なんの@@", $2, $4, $0
-; 11f220
-
-MobileEZChatData_WordAndPageCounts:
-macro_11f220: macro
-; parameter: number of words
-	db \1
-; 12 words per page (0-based indexing)
-x = \1 / 12
-if \1 % 12 == 0
-x = x +- 1
-endc
-	db x
-endm
-	macro_11f220 18 ; 01: Types
-	macro_11f220 36 ; 02: Greetings
-	macro_11f220 69 ; 03: People
-	macro_11f220 69 ; 04: Battle
-	macro_11f220 66 ; 05: Exclamations
-	macro_11f220 66 ; 06: Conversation
-	macro_11f220 69 ; 07: Feelings
-	macro_11f220 66 ; 08: Conditions
-	macro_11f220 39 ; 09: Life
-	macro_11f220 39 ; 0a: Hobbies
-	macro_11f220 69 ; 0b: Actions
-	macro_11f220 39 ; 0c: Time
-	macro_11f220 66 ; 0d: Farewells
-	macro_11f220 36 ; 0e: ThisAndThat
-
-EZChat_SortedWords:
-; Addresses in WRAM bank 3 where EZChat words beginning
-; with the given kana are sorted in memory, and the pre-
-; allocated size for each.
-; These arrays are expanded dynamically to accomodate
-; any Pokemon you've seen that starts with each kana.\
-macro_11f23c: macro
-	dw x - w3_d000, \1
-x = x + 2 * \1
-endm
-x = $d012
-	macro_11f23c $2f ; a
-	macro_11f23c $1e ; i
-	macro_11f23c $11 ; u
-	macro_11f23c $09 ; e
-	macro_11f23c $2e ; o
-	macro_11f23c $24 ; ka_ga
-	macro_11f23c $1b ; ki_gi
-	macro_11f23c $09 ; ku_gu
-	macro_11f23c $07 ; ke_ge
-	macro_11f23c $1c ; ko_go
-	macro_11f23c $12 ; sa_za
-	macro_11f23c $2b ; shi_ji
-	macro_11f23c $10 ; su_zu
-	macro_11f23c $08 ; se_ze
-	macro_11f23c $0c ; so_zo
-	macro_11f23c $2c ; ta_da
-	macro_11f23c $09 ; chi_dhi
-	macro_11f23c $12 ; tsu_du
-	macro_11f23c $1b ; te_de
-	macro_11f23c $1a ; to_do
-	macro_11f23c $1c ; na
-	macro_11f23c $05 ; ni
-	macro_11f23c $02 ; nu
-	macro_11f23c $05 ; ne
-	macro_11f23c $07 ; no
-	macro_11f23c $16 ; ha_ba_pa
-	macro_11f23c $0e ; hi_bi_pi
-	macro_11f23c $0c ; fu_bu_pu
-	macro_11f23c $05 ; he_be_pe
-	macro_11f23c $16 ; ho_bo_po
-	macro_11f23c $19 ; ma
-	macro_11f23c $0e ; mi
-	macro_11f23c $08 ; mu
-	macro_11f23c $07 ; me
-	macro_11f23c $09 ; mo
-	macro_11f23c $0d ; ya
-	macro_11f23c $04 ; yu
-	macro_11f23c $14 ; yo
-	macro_11f23c $0b ; ra
-	macro_11f23c $01 ; ri
-	macro_11f23c $02 ; ru
-	macro_11f23c $02 ; re
-	macro_11f23c $02 ; ro
-	macro_11f23c $15 ; wa
-x = $d000
-	macro_11f23c $09 ; end
-EZChat_SortedWordsEnd:
--- a/misc/gbc_only.asm
+++ /dev/null
@@ -1,149 +1,0 @@
-GBCOnlyScreen: ; 4ea82
-
-	ld a, [hCGB]
-	and a
-	ret nz
-
-	ld de, MUSIC_NONE
-	call PlayMusic
-
-	call ClearTileMap
-
-	ld hl, GBCOnlyGFX
-	ld de, $d000
-	ld a, [rSVBK]
-	push af
-	ld a, 0
-	ld [rSVBK], a
-	call Decompress
-	pop af
-	ld [rSVBK], a
-
-	ld de, $d000
-	ld hl, VTiles2
-	lb bc, BANK(GBCOnlyGFX), $54
-	call Get2bpp
-
-	ld de, Font
-	ld hl, VTiles1
-	lb bc, BANK(Font), $80
-	call Get1bpp
-
-	call DrawGBCOnlyScreen
-
-	call WaitBGMap
-
-; better luck next time
-.loop
-	call DelayFrame
-	jr .loop
-; 4eac5
-
-
-DrawGBCOnlyScreen: ; 4eac5
-
-	call DrawGBCOnlyBorder
-
-	; Pokemon
-	hlcoord 3, 2
-	ld b, 14
-	ld c, 4
-	ld a, $8
-	call DrawGBCOnlyGraphic
-
-	; Crystal
-	hlcoord 5, 6
-	ld b, 10
-	ld c, 2
-	ld a, $40
-	call DrawGBCOnlyGraphic
-
-	ld de, GBCOnlyString
-	hlcoord 1, 10
-	call PlaceString
-
-	ret
-; 4eaea
-
-
-DrawGBCOnlyBorder: ; 4eaea
-
-	hlcoord 0, 0
-	ld [hl], 0 ; top-left
-
-	inc hl
-	ld a, 1 ; top
-	call .FillRow
-
-	ld [hl], 2 ; top-right
-
-	hlcoord 0, 1
-	ld a, 3 ; left
-	call .FillColumn
-
-	hlcoord 19, 1
-	ld a, 4 ; right
-	call .FillColumn
-
-	hlcoord 0, 17
-	ld [hl], 5 ; bottom-left
-
-	inc hl
-	ld a, 6 ; bottom
-	call .FillRow
-
-	ld [hl], 7 ; bottom-right
-	ret
-; 4eb15
-
-.FillRow: ; 4eb15
-	ld c, SCREEN_WIDTH - 2
-.next_column
-	ld [hli], a
-	dec c
-	jr nz, .next_column
-	ret
-; 4eb1c
-
-.FillColumn: ; 4eb1c
-	ld de, SCREEN_WIDTH
-	ld c, SCREEN_HEIGHT - 2
-.next_row
-	ld [hl], a
-	add hl, de
-	dec c
-	jr nz, .next_row
-	ret
-; 4eb27
-
-
-DrawGBCOnlyGraphic: ; 4eb27
-	ld de, SCREEN_WIDTH
-.y
-	push bc
-	push hl
-.x
-	ld [hli], a
-	inc a
-	dec b
-	jr nz, .x
-	pop hl
-	add hl, de
-	pop bc
-	dec c
-	jr nz, .y
-	ret
-; 4eb38
-
-
-GBCOnlyString: ; 4eb38
-	db   "This Game Pak is"
-	next "designed only for"
-	next "use on the"
-	next "Game Boy Color.@"
-; 4eb76
-
-
-GBCOnlyGFX: ; 4eb76
-INCBIN "gfx/sgb/gbc_only.2bpp.lz"
-; 4f0bc
--- a/misc/gfx_41.asm
+++ /dev/null
@@ -1,638 +1,0 @@
-HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
-	ld hl, .Function
-	jp CallInSafeGFXMode
-
-.Function:
-	decoord 0, 0, AttrMap
-	ld hl, wScratchAttrMap
-	call CutAndPasteAttrMap
-	decoord 0, 0
-	ld hl, wScratchTileMap
-	call CutAndPasteTilemap
-	ld a, $0
-	ld [rVBK], a
-	ld hl, wScratchTileMap
-	call HDMATransferToWRAMBank3
-	ld a, $1
-	ld [rVBK], a
-	ld hl, wScratchAttrMap
-	call HDMATransferToWRAMBank3
-	ret
-; 10402d
-
-HDMATransferTileMapToWRAMBank3:: ; 10402d
-	ld hl, .Function
-	jp CallInSafeGFXMode
-
-.Function:
-	decoord 0, 0
-	ld hl, wScratchTileMap
-	call CutAndPasteTilemap
-	ld a, $0
-	ld [rVBK], a
-	ld hl, wScratchTileMap
-	call HDMATransferToWRAMBank3
-	ret
-; 104047
-
-HDMATransferAttrMapToWRAMBank3: ; 104047
-	ld hl, .Function
-	jp CallInSafeGFXMode
-
-.Function:
-	decoord 0, 0, AttrMap
-	ld hl, wScratchAttrMap
-	call CutAndPasteAttrMap
-	ld a, $1
-	ld [rVBK], a
-	ld hl, wScratchAttrMap
-	call HDMATransferToWRAMBank3
-	ret
-; 104061
-
-ReloadMapPart:: ; 104061
-	ld hl, .Function
-	jp CallInSafeGFXMode
-
-.Function:
-	decoord 0, 0, AttrMap
-	ld hl, wScratchAttrMap
-	call CutAndPasteAttrMap
-	decoord 0, 0
-	ld hl, wScratchTileMap
-	call CutAndPasteTilemap
-	call DelayFrame
-
-	di
-	ld a, [rVBK]
-	push af
-	ld a, $1
-	ld [rVBK], a
-	ld hl, wScratchAttrMap
-	call HDMATransfer_Wait127Scanlines_toBGMap
-	ld a, $0
-	ld [rVBK], a
-	ld hl, wScratchTileMap
-	call HDMATransfer_Wait127Scanlines_toBGMap
-	pop af
-	ld [rVBK], a
-	ei
-
-	ret
-
-Mobile_ReloadMapPart: ; 104099
-	ld hl, ReloadMapPart ; useless
-	ld hl, .Function
-	jp CallInSafeGFXMode
-
-.Function:
-	decoord 0, 0, AttrMap
-	ld hl, wScratchAttrMap
-	call CutAndPasteAttrMap
-	decoord 0, 0
-	ld hl, wScratchTileMap
-	call CutAndPasteTilemap
-	call DelayFrame
-
-	di
-	ld a, [rVBK]
-	push af
-	ld a, $1
-	ld [rVBK], a
-	ld hl, wScratchAttrMap
-	call HDMATransfer_NoDI
-	ld a, $0
-	ld [rVBK], a
-	ld hl, wScratchTileMap
-	call HDMATransfer_NoDI
-	pop af
-	ld [rVBK], a
-	ei
-
-	ret
-; 1040d4
-
-; XXX
-	ld hl, .unreferenced_1040da
-	jp CallInSafeGFXMode
-
-.unreferenced_1040da
-	ld a, $1
-	ld [rVBK], a
-	ld a, $3
-	ld [rSVBK], a
-	ld de, w3_d800
-	ld a, [hBGMapAddress + 1]
-	ld [rHDMA1], a
-	ld a, [hBGMapAddress]
-	ld [rHDMA2], a
-	ld a, d
-	ld [rHDMA3], a
-	ld a, e
-	ld [rHDMA4], a
-	ld a, $23
-	ld [hDMATransfer], a
-	call WaitDMATransfer
-	ret
-; 1040fb
-
-; XXX
-	ld hl, .unreferenced_104101
-	jp CallInSafeGFXMode
-
-.unreferenced_104101
-	ld a, $1
-	ld [rVBK], a
-	ld a, $3
-	ld [rSVBK], a
-	ld hl, w3_d800
-	call HDMATransferToWRAMBank3
-	ret
-; 104110
-
-OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
-; OpenText
-	ld hl, .Function
-	jp CallInSafeGFXMode
-
-.Function:
-	; Transfer AttrMap and Tilemap to BGMap
-	; Fill vBGAttrs with $00
-	; Fill vBGTiles with " "
-	decoord 0, 0, AttrMap
-	ld hl, wScratchAttrMap
-	call CutAndPasteAttrMap
-	decoord 0, 0
-	ld hl, wScratchTileMap
-	call CutAndPasteTilemap
-	call DelayFrame
-
-	di
-	ld a, [rVBK]
-	push af
-	ld a, $1
-	ld [rVBK], a
-	ld hl, wScratchAttrMap
-	call HDMATransfer_Wait123Scanlines_toBGMap
-	ld a, $0
-	ld [rVBK], a
-	ld hl, wScratchTileMap
-	call HDMATransfer_Wait123Scanlines_toBGMap
-	pop af
-	ld [rVBK], a
-	ei
-	ret
-; 104148
-
-Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
-	ld hl, .Function
-	jp CallInSafeGFXMode
-
-.Function:
-	; Transfer AttrMap and Tilemap to BGMap
-	; Fill vBGAttrs with $00
-	; Fill vBGTiles with $ff
-	decoord 0, 0, AttrMap
-	ld hl, wScratchAttrMap
-	call CutAndPasteAttrMap
-	ld c, $ff
-	decoord 0, 0
-	ld hl, wScratchTileMap
-	call CutAndPasteMap
-
-	ld a, $1
-	ld [rVBK], a
-	ld hl, wScratchAttrMap
-	call HDMATransfer_Wait127Scanlines_toBGMap
-	ld a, $0
-	ld [rVBK], a
-	ld hl, wScratchTileMap
-	call HDMATransfer_Wait127Scanlines_toBGMap
-	ret
-; 104177
-
-CallInSafeGFXMode: ; 104177
-	ld a, [hBGMapMode]
-	push af
-	ld a, [hMapAnims]
-	push af
-	xor a
-	ld [hBGMapMode], a
-	ld [hMapAnims], a
-	ld a, [rSVBK]
-	push af
-	ld a, $6
-	ld [rSVBK], a
-	ld a, [rVBK]
-	push af
-
-	call ._hl_
-
-	pop af
-	ld [rVBK], a
-	pop af
-	ld [rSVBK], a
-	pop af
-	ld [hMapAnims], a
-	pop af
-	ld [hBGMapMode], a
-	ret
-; 10419c
-
-._hl_ ; 10419c
-	jp hl
-; 10419d
-
-
-HDMATransferToWRAMBank3: ; 10419d (41:419d)
-	call _LoadHDMAParameters
-	ld a, $23
-	ld [hDMATransfer], a
-
-WaitDMATransfer: ; 104a14
-.loop
-	call DelayFrame
-	ld a, [hDMATransfer]
-	and a
-	jr nz, .loop
-	ret
-
-HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
-; HDMA transfer from hl to [hBGMapAddress]
-; hBGMapAddress -> de
-; 2 * SCREEN_HEIGHT -> c
-	ld a, [hBGMapAddress + 1]
-	ld d, a
-	ld a, [hBGMapAddress]
-	ld e, a
-	ld c, 2 * SCREEN_HEIGHT
-	jr HDMATransfer_Wait127Scanlines
-
-HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
-; HDMA transfer from hl to [hBGMapAddress]
-; hBGMapAddress -> de
-; 2 * SCREEN_HEIGHT -> c
-; $7b --> b
-	ld a, [hBGMapAddress + 1]
-	ld d, a
-	ld a, [hBGMapAddress]
-	ld e, a
-	ld c, 2 * SCREEN_HEIGHT
-	jr HDMATransfer_Wait123Scanlines
-; 1041c1 (41:41c1)
-
-HDMATransfer_NoDI: ; 1041c1
-; HDMA transfer from hl to [hBGMapAddress]
-; [hBGMapAddress] --> de
-; 2 * SCREEN_HEIGHT --> c
-	ld a, [hBGMapAddress + 1]
-	ld d, a
-	ld a, [hBGMapAddress]
-	ld e, a
-	ld c, 2 * SCREEN_HEIGHT
-
-	; [rHDMA1, rHDMA2] = hl & $fff0
-	ld a, h
-	ld [rHDMA1], a
-	ld a, l
-	and $f0
-	ld [rHDMA2], a
-	; [rHDMA3, rHDMA4] = de & $1ff0
-	ld a, d
-	and $1f
-	ld [rHDMA3], a
-	ld a, e
-	and $f0
-	ld [rHDMA4], a
-	; b = c | %10000000
-	ld a, c
-	dec c
-	or $80
-	ld b, a
-	; d = $7f - c + 1
-	ld a, $7f
-	sub c
-	ld d, a
-	; while [rLY] >= d: pass
-.loop1
-	ld a, [rLY]
-	cp d
-	jr nc, .loop1
-	; while not [rSTAT] & 3: pass
-.loop2
-	ld a, [rSTAT]
-	and $3
-	jr z, .loop2
-	; load the 5th byte of HDMA
-	ld a, b
-	ld [rHDMA5], a
-	; wait until rLY advances (c + 1) times
-	ld a, [rLY]
-	inc c
-	ld hl, rLY
-.loop3
-	cp [hl]
-	jr z, .loop3
-	ld a, [hl]
-	dec c
-	jr nz, .loop3
-	ld hl, rHDMA5
-	res 7, [hl]
-	ret
-; 104205
-
-HDMATransfer_Wait123Scanlines:
-	ld b, $7b
-	jr _continue_HDMATransfer
-
-
-HDMATransfer_Wait127Scanlines:
-	ld b, $7f
-_continue_HDMATransfer:
-; a lot of waiting around for hardware registers
-	; [rHDMA1, rHDMA2] = hl & $fff0
-	ld a, h
-	ld [rHDMA1], a
-	ld a, l
-	and $f0 ; high nybble
-	ld [rHDMA2], a
-	; [rHDMA3, rHDMA4] = de & $1ff0
-	ld a, d
-	and $1f ; lower 5 bits
-	ld [rHDMA3], a
-	ld a, e
-	and $f0 ; high nybble
-	ld [rHDMA4], a
-	; e = c | %10000000
-	ld a, c
-	dec c
-	or $80
-	ld e, a
-	; d = b - c + 1
-	ld a, b
-	sub c
-	ld d, a
-	; while [rLY] >= d: pass
-.ly_loop
-	ld a, [rLY]
-	cp d
-	jr nc, .ly_loop
-
-	di
-	; while [rSTAT] & 3: pass
-.rstat_loop_1
-	ld a, [rSTAT]
-	and $3
-	jr nz, .rstat_loop_1
-	; while not [rSTAT] & 3: pass
-.rstat_loop_2
-	ld a, [rSTAT]
-	and $3
-	jr z, .rstat_loop_2
-	; load the 5th byte of HDMA
-	ld a, e
-	ld [rHDMA5], a
-	; wait until rLY advances (c + 1) times
-	ld a, [rLY]
-	inc c
-	ld hl, rLY
-.final_ly_loop
-	cp [hl]
-	jr z, .final_ly_loop
-	ld a, [hl]
-	dec c
-	jr nz, .final_ly_loop
-	ld hl, rHDMA5
-	res 7, [hl]
-	ei
-
-	ret
-; 10424e
-
-
-_LoadHDMAParameters: ; 10424e (41:424e)
-	ld a, h
-	ld [rHDMA1], a
-	ld a, l
-	ld [rHDMA2], a
-	ld a, [hBGMapAddress + 1]
-	and $1f
-	ld [rHDMA3], a
-	ld a, [hBGMapAddress]
-	ld [rHDMA4], a
-	ret
-
-CutAndPasteTilemap: ; 10425f (41:425f)
-	ld c, " "
-	jr CutAndPasteMap
-
-CutAndPasteAttrMap: ; 104263 (41:4263)
-	ld c, $0
-
-CutAndPasteMap: ; 104265 (41:4265)
-; back up the value of c to hMapObjectIndexBuffer
-	ld a, [hMapObjectIndexBuffer]
-	push af
-	ld a, c
-	ld [hMapObjectIndexBuffer], a
-
-; for each row on the screen
-	ld c, SCREEN_HEIGHT
-.loop1
-; for each tile in the row
-	ld b, SCREEN_WIDTH
-.loop2
-; copy from de to hl
-	ld a, [de]
-	inc de
-	ld [hli], a
-	dec b
-	jr nz, .loop2
-
-; load the original value of c into hl 12 times
-	ld a, [hMapObjectIndexBuffer]
-	ld b, BG_MAP_WIDTH - SCREEN_WIDTH
-.loop3
-	ld [hli], a
-	dec b
-	jr nz, .loop3
-
-	dec c
-	jr nz, .loop1
-
-; restore the original value of hMapObjectIndexBuffer
-	pop af
-	ld [hMapObjectIndexBuffer], a
-	ret
-
-
-_Get2bpp:: ; 104284
-	; 2bpp when [rLCDC] & $80
-	; switch to WRAM bank 6
-	ld a, [rSVBK]
-	push af
-	ld a, $6
-	ld [rSVBK], a
-
-	push bc
-	push hl
-
-	; Copy c tiles of the 2bpp from b:de to wScratchTileMap
-	ld a, b ; bank
-	ld l, c ; number of tiles
-	ld h, $0
-	; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
-	add hl, hl
-	add hl, hl
-	add hl, hl
-	add hl, hl
-	ld b, h
-	ld c, l
-	ld h, d ; address
-	ld l, e
-	ld de, wScratchTileMap
-	call FarCopyBytes
-
-	pop hl
-	pop bc
-
-	push bc
-	call DelayFrame
-	pop bc
-
-	ld d, h
-	ld e, l
-	ld hl, wScratchTileMap
-	call HDMATransfer_Wait127Scanlines
-
-	; restore the previous bank
-	pop af
-	ld [rSVBK], a
-	ret
-; 1042b2
-
-_Get1bpp:: ; 1042b2
-	; 1bpp when [rLCDC] & $80
-.loop
-	ld a, c
-	cp $10
-	jp c, .bankswitch
-	jp z, .bankswitch
-	push bc
-	push hl
-	push de
-	ld c, $10
-	call .bankswitch
-	pop de
-	ld hl, $80
-	add hl, de
-	ld d, h
-	ld e, l
-	pop hl
-	lb bc, 1, 0
-	add hl, bc
-	pop bc
-	ld a, c
-	sub $10
-	ld c, a
-	jr .loop
-; 1042d6
-
-.bankswitch ; 1042d6
-	ld a, [rSVBK]
-	push af
-	ld a, $6
-	ld [rSVBK], a
-
-	push bc
-	push hl
-
-	ld a, b
-	ld l, c
-	ld h, $0
-	add hl, hl ; multiply by 8
-	add hl, hl ; multiply by 8
-	add hl, hl ; multiply by 8
-	ld c, l
-	ld b, h
-	ld h, d
-	ld l, e
-	ld de, wScratchTileMap
-	call FarCopyBytesDouble_DoubleBankSwitch
-
-	pop hl
-	pop bc
-
-	push bc
-	call DelayFrame
-	pop bc
-
-	ld d, h
-	ld e, l
-	ld hl, wScratchTileMap
-	call HDMATransfer_Wait127Scanlines
-
-	pop af
-	ld [rSVBK], a
-	ret
-; 104303
-
-HDMATransfer_OnlyTopFourRows: ; 104303
-	ld hl, .Function
-	jp CallInSafeGFXMode
-; 104309
-
-.Function:
-	ld hl, wScratchTileMap
-	decoord 0, 0
-	call .Copy
-	ld hl, wScratchTileMap + $80
-	decoord 0, 0, AttrMap
-	call .Copy
-	ld a, $1
-	ld [rVBK], a
-	ld c, $8
-	ld hl, wScratchTileMap + $80
-	debgcoord 0, 0, VBGMap1
-	call HDMATransfer_Wait127Scanlines
-	ld a, $0
-	ld [rVBK], a
-	ld c, $8
-	ld hl, wScratchTileMap
-	debgcoord 0, 0, VBGMap1
-	call HDMATransfer_Wait127Scanlines
-	ret
-
-.Copy: ; 10433a (41:433a)
-	ld b, 4
-.outer_loop
-	ld c, SCREEN_WIDTH
-.inner_loop
-	ld a, [de]
-	ld [hli], a
-	inc de
-	dec c
-	jr nz, .inner_loop
-	ld a, l
-	add BG_MAP_WIDTH - SCREEN_WIDTH
-	ld l, a
-	ld a, h
-	adc $0
-	ld h, a
-	dec b
-	jr nz, .outer_loop
-	ret
-; 104350
-
-ShockEmote:     INCBIN "gfx/emotes/shock.2bpp"
-QuestionEmote:  INCBIN "gfx/emotes/question.2bpp"
-HappyEmote:     INCBIN "gfx/emotes/happy.2bpp"
-SadEmote:       INCBIN "gfx/emotes/sad.2bpp"
-HeartEmote:     INCBIN "gfx/emotes/heart.2bpp"
-BoltEmote:      INCBIN "gfx/emotes/bolt.2bpp"
-SleepEmote:     INCBIN "gfx/emotes/sleep.2bpp"
-FishEmote:      INCBIN "gfx/emotes/fish.2bpp"
-JumpShadowGFX:  INCBIN "gfx/overworld/shadow.2bpp"
-FishingRodGFX:  INCBIN "gfx/overworld/fishing_rod.2bpp"
-BoulderDustGFX: INCBIN "gfx/overworld/boulder_dust.2bpp"
-GrassRustleGFX: INCBIN "gfx/overworld/grass_rustle.2bpp"
--- a/misc/mobile_12.asm
+++ /dev/null
@@ -1,1845 +1,0 @@
-InitMobileProfile: ; 4802f (12:402f)
-	xor a
-	set 6, a
-	ld [wd002], a
-	ld hl, wd003
-	set 0, [hl]
-	ld a, c
-	and a
-	call z, InitCrystalData
-	call ClearBGPalettes
-	call Function48d3d
-	ld a, [wd479]
-	bit 1, a
-	jr z, .not_yet_initialized
-	ld a, [wd003]
-	set 0, a
-	set 1, a
-	set 2, a
-	set 3, a
-	ld [wd003], a
-.not_yet_initialized
-	call Function486bf
-	call LoadFontsExtra
-	ld de, GFX_488c3
-	ld hl, VTiles2 tile $10
-	lb bc, BANK(GFX_488c3), 1
-	call Request1bpp
-	ld de, GFX_488cb
-	ld hl, VTiles2 tile $11
-	lb bc, BANK(GFX_488cb), 1
-	call Request1bpp
-	call Function4a3a7
-	call ClearBGPalettes
-	ld a, [wd002]
-	bit 6, a
-	jr z, .asm_4808a
-	call Function48689
-	jr .asm_480d7
-.asm_4808a
-	ld a, $5
-	ld [MusicFade], a
-	ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
-	ld [MusicFadeID], a
-	ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
-	ld [MusicFadeID + 1], a
-	ld c, 20
-	call DelayFrames
-	ld b, $1
-	call GetMysteryGift_MobileAdapterLayout
-	call ClearBGPalettes
-	hlcoord 0, 0
-	ld b,  2
-	ld c, 20
-	call ClearBox
-	hlcoord 0, 1
-	ld a, $c
-	ld [hl], a
-	ld bc, $13
-	add hl, bc
-	ld [hl], a
-	ld de, MobileProfileString
-	hlcoord 1, 1
-	call PlaceString
-	hlcoord 0, 2
-	ld b, $a
-	ld c, $12
-	call Function48cdc
-	hlcoord 2, 4
-	ld de, MobileString_Gender
-	call PlaceString
-.asm_480d7
-	hlcoord 2, 6
-	ld de, MobileString_Age
-	call PlaceString
-	hlcoord 2, 8
-	ld de, MobileString_Address
-	call PlaceString
-	hlcoord 2, 10
-	ld de, MobileString_ZipCode
-	call PlaceString
-	hlcoord 2, 12
-	ld de, MobileString_OK
-	call PlaceString
-	ld a, [wd002]
-	bit 6, a
-	jr nz, .asm_48113
-	ld a, [PlayerGender]
-	ld hl, Strings_484fb
-	call GetNthString
-	ld d, h
-	ld e, l
-	hlcoord 11, 4
-	call PlaceString
-.asm_48113
-	hlcoord 11, 6
-	call Function487ec
-	ld a, [wd474]
-	dec a
-	ld hl, Prefectures
-	call GetNthString
-	ld d, h
-	ld e, l
-	hlcoord 11, 8
-	call PlaceString
-	hlcoord 11, 10
-	call Function489ea
-	hlcoord 0, 14
-	ld b, $2
-	ld c, $12
-	call TextBox
-	hlcoord 1, 16
-	ld de, MobileString_PersonalInfo
-	call PlaceString
-	call Function48187
-	call WaitBGMap2
-	call SetPalettes
-	call StaticMenuJoypad
-	ld hl, wMenuCursorY
-	ld b, [hl]
-	push bc
-	jr asm_4815f
-
-Function48157: ; 48157 (12:4157)
-	call ScrollingMenuJoypad
-	ld hl, wMenuCursorY
-	ld b, [hl]
-	push bc
-asm_4815f: ; 4815f (12:415f)
-	bit A_BUTTON_F, a
-	jp nz, Function4820d
-	ld b, a
-	ld a, [wd002]
-	bit 6, a
-	jr z, .dont_check_b_button
-	ld hl, wd479
-	bit 1, [hl]
-	jr z, .dont_check_b_button
-	bit B_BUTTON_F, b
-	jr nz, .b_button
-.dont_check_b_button
-	jp Function48272
-
-.b_button
-	call ClearBGPalettes
-	call Function48d30
-	pop bc
-	call ClearTileMap
-	ld a, $ff
-	ret
-
-Function48187: ; 48187 (12:4187)
-	ld a, [wd479]
-	bit 1, a
-	jr nz, .asm_481f1
-	ld a, [wd003]
-	ld d, a
-	call Function48725
-	jr c, .asm_481a2
-	lb bc, 1, 4
-	hlcoord 2, 12
-	call ClearBox
-	jr .asm_481ad
-.asm_481a2
-	push de
-	hlcoord 2, 12
-	ld de, MobileString_OK
-	call PlaceString
-	pop de
-.asm_481ad
-	ld a, [wd002]
-	bit 6, a
-	jr nz, .asm_481c1
-	bit 0, d
-	jr nz, .asm_481c1
-	lb bc, 1, 8
-	hlcoord 11, 4
-	call ClearBox
-.asm_481c1
-	bit 1, d
-	jr nz, .asm_481ce
-	lb bc, 1, 8
-	hlcoord 11, 6
-	call ClearBox
-.asm_481ce
-	bit 2, d
-	jr nz, .asm_481db
-	lb bc, 2, 8
-	hlcoord 11, 7
-	call ClearBox
-.asm_481db
-	bit 3, d
-	jr nz, .asm_481f1
-	ld a, [wd479]
-	bit 0, a
-	jr nz, .asm_481f8
-	lb bc, 1, 8
-	hlcoord 11, 10
-	call ClearBox
-	jr .asm_48201
-.asm_481f1
-	ld a, [wd479]
-	bit 0, a
-	jr nz, .asm_48201
-.asm_481f8
-	hlcoord 11, 10
-	ld de, .String_TellLater
-	call PlaceString
-.asm_48201
-	ret
-; 48202 (12:4202)
-
-.String_TellLater: ; 48202
-	db "Tell Later@"
-; 4820d
-
-Function4820d: ; 4820d (12:420d)
-	call PlaceHollowCursor
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	push af
-	ld a, [wd002]
-	bit 6, a
-	jr z, .asm_4821f
-	pop af
-	inc a
-	push af
-.asm_4821f
-	pop af
-	cp $1
-	jr z, asm_4828d
-	cp $2
-	jp z, Function4876f
-	cp $3
-	jp z, Function48304
-	cp $4
-	jp z, Function488d3
-	ld a, $2
-	call MenuClickSound
-	ld a, [wd002]
-	bit 6, a
-	jr z, .asm_4825c
-	jr .asm_4825c
-; 48241 (12:4241)
-
-	hlcoord 1, 15
-	ld b, $2
-	ld c, $12
-	call ClearBox
-	ld de, MobileString_ProfileChanged
-	hlcoord 1, 16
-	call PlaceString
-	call WaitBGMap
-	ld c, 48
-	call DelayFrames
-
-.asm_4825c
-	call ClearBGPalettes
-	call Function48d30
-	pop bc
-	call ClearTileMap
-	ld b, SCGB_DIPLOMA
-	call GetSGBLayout
-	ld hl, wd479
-	set 1, [hl]
-	xor a
-	ret
-
-Function48272: ; 48272 (12:4272)
-	jp Function4840c
-; 48275 (12:4275)
-
-MobileString_PersonalInfo: ; 48275
-	db "Personal Info@"
-; 48283
-
-Function48283: ; 48283 (12:4283)
-	lb bc, 2, 18
-	hlcoord 1, 15
-	call ClearBox
-	ret
-
-asm_4828d: ; 4828d (12:428d)
-	call Function48283
-	hlcoord 1, 16
-	ld de, MobileDesc_Gender
-	call PlaceString
-	ld hl, MenuDataHeader_0x484f1
-	call LoadMenuDataHeader
-	call Function4873c
-	hlcoord 11, 2
-	ld b, $4
-	ld c, $7
-	call Function48cdc
-	hlcoord 13, 4
-	ld de, String_484fb
-	call PlaceString
-	hlcoord 13, 6
-	ld de, String_484ff
-	call PlaceString
-	call WaitBGMap
-	ld a, [PlayerGender]
-	inc a
-	ld [wMenuCursorBuffer], a
-	call StaticMenuJoypad
-	call PlayClickSFX
-	call ExitMenu
-	bit 0, a
-	jp z, Function4840c
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	ld hl, Strings_484fb
-	cp $1
-	jr z, .asm_482ed
-.asm_482e1
-	ld a, [hli]
-	cp $50
-	jr nz, .asm_482e1
-	ld a, $1
-	ld [PlayerGender], a
-	jr .asm_482f1
-.asm_482ed
-	xor a
-	ld [PlayerGender], a
-.asm_482f1
-	ld d, h
-	ld e, l
-	hlcoord 11, 4
-	call PlaceString
-	ld a, [wd003]
-	set 0, a
-	ld [wd003], a
-	jp Function4840c
-
-Function48304: ; 48304 (12:4304)
-	call Function48283
-	hlcoord 1, 16
-	ld de, MobileDesc_Address
-	call PlaceString
-	ld hl, MenuDataHeader_0x48504
-	call LoadMenuDataHeader
-	ld hl, MenuDataHeader_0x48513
-	call LoadMenuDataHeader
-	hlcoord 10, 0
-	ld b, $c
-	ld c, $8
-	call Function48cdc
-	ld a, [wMenuCursorBuffer]
-	ld b, a
-	ld a, [wMenuScrollPosition]
-	ld c, a
-	push bc
-	ld a, [wd474]
-	dec a
-	cp $29
-	jr c, .asm_4833f
-	sub $29
-	inc a
-	ld [wMenuCursorBuffer], a
-	ld a, $29
-.asm_4833f
-	ld [wMenuScrollPosition], a
-	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-.asm_48348
-	call ScrollingMenu
-	ld de, $629
-	call Function48383
-	jr c, .asm_48348
-	ld d, a
-	pop bc
-	ld a, b
-	ld [wMenuCursorBuffer], a
-	ld a, c
-	ld [wMenuScrollPosition], a
-	ld a, d
-	push af
-	call ExitMenu
-	call ExitMenu
-	pop af
-	ld a, [hJoyPressed]
-	bit 0, a
-	jr z, .asm_48377
-	call Function483bb
-	ld a, [wd003]
-	set 2, a
-	ld [wd003], a
-.asm_48377
-	call Function48187
-	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-	jp Function4840c
-
-Function48383: ; 48383 (12:4383)
-	push bc
-	push af
-	bit 5, a
-	jr nz, .asm_48390
-	bit 4, a
-	jr nz, .asm_4839f
-	and a
-	jr .asm_483b7
-.asm_48390
-	ld a, [wMenuScrollPosition]
-	sub d
-	ld [wMenuScrollPosition], a
-	jr nc, .asm_483af
-	xor a
-	ld [wMenuScrollPosition], a
-	jr .asm_483af
-.asm_4839f
-	ld a, [wMenuScrollPosition]
-	add d
-	ld [wMenuScrollPosition], a
-	cp e
-	jr c, .asm_483af
-	ld a, e
-	ld [wMenuScrollPosition], a
-	jr .asm_483af
-.asm_483af
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	ld [wMenuCursorBuffer], a
-	scf
-.asm_483b7
-	pop bc
-	ld a, b
-	pop bc
-	ret
-
-Function483bb: ; 483bb (12:43bb)
-	ld hl, wScrollingMenuCursorPosition
-	ld a, [hl]
-	inc a
-	ld [wd474], a
-	dec a
-	ld b, a
-	ld hl, Prefectures
-.asm_483c8
-	and a
-	jr z, .asm_483d5
-.asm_483cb
-	ld a, [hli]
-	cp "@"
-	jr nz, .asm_483cb
-	ld a, b
-	dec a
-	ld b, a
-	jr .asm_483c8
-.asm_483d5
-	ld d, h
-	ld e, l
-	ld b, $2
-	ld c, $8
-	hlcoord 11, 7
-	call ClearBox
-	hlcoord 11, 8
-	call PlaceString
-	ret
-; 483e8 (12:43e8)
-
-Function483e8: ; 483e8
-	push de
-	ld hl, Prefectures
-	ld a, [MenuSelection]
-	cp $ff
-	jr nz, .asm_483f8
-	ld hl, Wakayama ; last string
-	jr .asm_48405
-
-.asm_483f8
-	ld d, a
-	and a
-	jr z, .asm_48405
-.asm_483fc
-	ld a, [hli]
-	cp "@"
-	jr nz, .asm_483fc
-	ld a, d
-	dec a
-	jr .asm_483f8
-
-.asm_48405
-	ld d, h
-	ld e, l
-	pop hl
-	call PlaceString
-	ret
-; 4840c
-
-Function4840c: ; 4840c (12:440c)
-	call Function48187
-	call Function48283
-	hlcoord 1, 16
-	ld de, MobileString_PersonalInfo
-	call PlaceString
-	call Function486bf
-	pop bc
-	ld hl, wMenuCursorY
-	ld [hl], b
-	ld a, [wd002]
-	bit 6, a
-	jr nz, .narrower_box
-	ld b, 9
-	ld c, 1
-	hlcoord 1, 4
-	call ClearBox
-	jp Function48157
-
-.narrower_box
-	ld b, 7
-	ld c, 1
-	hlcoord 1, 6
-	call ClearBox
-	jp Function48157
-
-Mobile12_Bin2Dec: ; 48444 (12:4444)
-	push bc
-	push af
-	push de
-	push hl
-	ld hl, .DigitStrings
-.loop
-	and a
-	jr z, .got_string
-	inc hl
-	inc hl
-	dec a
-	jr .loop
-.got_string
-	ld d, h
-	ld e, l
-	pop hl
-	call PlaceString
-	pop de
-	pop af
-	pop bc
-	ret
-; 4845d (12:445d)
-
-.DigitStrings: ; 4845d
-; 4845d
-	db "0@"
-	db "1@"
-	db "2@"
-	db "3@"
-	db "4@"
-	db "5@"
-	db "6@"
-	db "7@"
-	db "8@"
-	db "9@"
-; 48471
-
-MobileProfileString:         db "  Mobile Profile@"
-MobileString_Gender:         db "Gender@"
-MobileString_Age:            db "Age@"
-MobileString_Address:        db "Address@"
-MobileString_ZipCode:        db "Zip Code@"
-MobileString_OK:             db "OK@"
-MobileString_ProfileChanged: db "Profile Changed@"
-MobileDesc_Gender:           db "Boy or girl?@"
-MobileDesc_Age:              db "How old are you?@"
-MobileDesc_Address:          db "Where do you live?@"
-MobileDesc_ZipCode:          db "Your zip code?@"
-; 484f1
-
-MenuDataHeader_0x484f1: ; 0x484f1
-	db $40 ; flags
-	db 02, 11 ; start coords
-	db 07, 19 ; end coords
-	dw MenuData2_0x484f9
-	db 1 ; default option
-; 0x484f9
-
-MenuData2_0x484f9: ; 0x484f9
-	db $a0 ; flags
-	db 2 ; items
-Strings_484fb:
-String_484fb: db "Boy@"
-String_484ff: db "Girl@"
-; 0x48504
-
-MenuDataHeader_0x48504: ; 0x48504
-	db $40 ; flags
-	db 00, 10 ; start coords
-	db 17, 19 ; end coords
-
-MenuDataHeader_0x48509: ; 0x48509
-	db $40 ; flags
-	db 05, 10 ; start coords
-	db 07, 19 ; end coords
-
-MenuDataHeader_0x4850e: ; 0x4850e
-	db $40 ; flags
-	db 09, 10 ; start coords
-	db 11, 19 ; end coords
-
-MenuDataHeader_0x48513: ; 0x48513
-	db $40 ; flags
-	db 01, 11 ; start coords
-	db 12, 18 ; end coords
-	dw MenuData2_0x4851b
-	db 1 ; default option
-; 0x4851b
-
-MenuData2_0x4851b: ; 0x4851b
-	db $1d ; flags
-	db 6 ; items
-
-Unknown_4851d: ; 4851d
-	db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
-	db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
-	db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
-	db $2d, $ff
-
-Prefectures:
-Aichi:     db "あいちけん@"   ; Aichi
-Aomori:    db "あおもりけん@" ; Aomori
-Akita:     db "あきたけん@"   ; Akita
-Ishikawa:  db "いしかわけん@" ; Ishikawa
-Ibaraki:   db "いばらきけん@" ; Ibaraki
-Iwate:     db "いわてけん@"   ; Iwate
-Ehime:     db "えひめけん@"   ; Ehime
-Oita:      db "おおいたけん@" ; Oita
-Osakafu:   db "おおさかふ@"   ; Osakafu
-Okayama:   db "おかやまけん@" ; Okayama
-Okinawa:   db "おきなわけん@" ; Okinawa
-Kagawa:    db "かがわけん@"   ; Kagawa
-Kagoshima: db "かごしまけん@" ; Kagoshima
-Kanagawa:  db "かながわけん@" ; Kanagawa
-Gifu:      db "ぎふけん@"     ; Gifu
-Kyotofu:   db "きょうとふ@"   ; Kyotofu
-Kumamoto:  db "くまもとけん@" ; Kumamoto
-Gunma:     db "ぐんまけん@"   ; Gunma
-Kochi:     db "こうちけん@"   ; Kochi
-Saitama:   db "さいたまけん@" ; Saitama
-Saga:      db "さがけん@"     ; Saga
-Shiga:     db "しがけん@"     ; Shiga
-Shizuoka:  db "しずおかけん@" ; Shizuoka
-Shimane:   db "しまねけん@"   ; Shimane
-Chiba:     db "ちばけん@"     ; Chiba
-Tokyo:     db "とうきょうと@" ; Tokyo
-Tokushima: db "とくしまけん@" ; Tokushima
-Tochigi:   db "とちぎけん@"   ; Tochigi
-Tottori:   db "とっとりけん@" ; Tottori
-Toyama:    db "とやまけん@"   ; Toyama
-Nagasaki:  db "ながさきけん@" ; Nagasaki
-Nagano:    db "ながのけん@"   ; Nagano
-Naraken:   db "ならけん@"     ; Naraken
-Niigata:   db "にいがたけん@" ; Niigata
-Hyogo:     db "ひょうごけん@" ; Hyogo
-Hiroshima: db "ひろしまけん@" ; Hiroshima
-Fukui:     db "ふくいけん@"   ; Fukui
-Fukuoka:   db "ふくおかけん@" ; Fukuoka
-Fukushima: db "ふくしまけん@" ; Fukushima
-Hokkaido:  db "ほっかいどう@" ; Hokkaido
-Mie:       db "みえけん@"     ; Mie
-Miyagi:    db "みやぎけん@"   ; Miyagi
-Miyazaki:  db "みやざきけん@" ; Miyazaki
-Yamagata:  db "やまがたけん@" ; Yamagata
-Yamaguchi: db "やまぐちけん@" ; Yamaguchi
-Yamanashi: db "やまなしけん@" ; Yamanashi
-Wakayama:  db "わかやまけん@" ; Wakayama
-; 48689
-
-Function48689: ; 48689 (12:4689)
-	ld c, 7
-	call DelayFrames
-	ld b, $1
-	call GetMysteryGift_MobileAdapterLayout
-	call ClearBGPalettes
-	hlcoord 0, 0
-	ld b, 4
-	ld c, SCREEN_WIDTH
-	call ClearBox
-	hlcoord 0, 2
-	ld a, $c
-	ld [hl], a
-	ld bc, SCREEN_WIDTH - 1
-	add hl, bc
-	ld [hl], a
-	ld de, MobileProfileString
-	hlcoord 1, 2
-	call PlaceString
-	hlcoord 0, 4
-	ld b, $8
-	ld c, $12
-	call Function48cdc
-	ret
-
-Function486bf: ; 486bf (12:46bf)
-	ld hl, w2DMenuCursorInitY
-	ld a, [wd002]
-	bit 6, a
-	jr nz, .start_at_6
-	ld a, 4
-	ld [hli], a
-	jr .got_init_y
-
-.start_at_6
-	ld a, 6
-	ld [hli], a
-.got_init_y
-	ld a, 1
-	ld [hli], a ; init x
-	ld a, [wd002]
-	bit 6, a
-	jr nz, .check_wd479
-	call Function48725
-	ld a, 4
-	jr nc, .got_num_rows_1
-	ld a, 5
-.got_num_rows_1
-	ld [hli], a
-	jr .got_num_rows_2
-
-.check_wd479
-	ld a, [wd479]
-	bit 1, a
-	jr nz, .four_rows
-	call Function48725
-	jr c, .four_rows
-	ld a, 3
-	ld [hli], a
-	jr .got_num_rows_2
-
-.four_rows
-	ld a, 4
-	ld [hli], a
-.got_num_rows_2
-	ld a, 1
-	ld [hli], a ; num cols
-	ld [hl], $0 ; flags 1
-	set 5, [hl]
-	inc hl
-	xor a
-	ld [hli], a ; flags 2
-	ld a, $20
-	ld [hli], a ; cursor offsets
-	ld a, A_BUTTON
-	add D_UP
-	add D_DOWN
-	push af
-	ld a, [wd002]
-	bit 6, a
-	jr z, .got_joypad_mask
-	pop af
-	add B_BUTTON
-	push af
-.got_joypad_mask
-	pop af
-	ld [hli], a
-	ld a, $1
-	ld [hli], a ; cursor y
-	ld [hli], a ; cursor x
-	xor a
-	ld [hli], a ; off char
-	ld [hli], a ; cursor tile
-	ld [hli], a ; cursor tile + 1
-	ret
-
-Function48725: ; 48725 (12:4725)
-;	 ld a, [wd003]
-;	 and $f
-;	 cp $f
-;	 jr nz, .clear_carry
-;	 scf
-;	 ret
-; .clear_carry
-;	 and a
-;	 ret
-
-	ld a, [wd003]
-	bit 0, a
-	jr z, .clear_carry
-	bit 1, a
-	jr z, .clear_carry
-	bit 2, a
-	jr z, .clear_carry
-	bit 3, a
-	jr z, .clear_carry
-	scf
-	ret
-
-.clear_carry
-	and a
-	ret
-
-Function4873c: ; 4873c (12:473c)
-	ld hl, w2DMenuCursorInitY
-	ld a, 4
-	ld [hli], a
-	ld a, 12
-	ld [hli], a ; init x
-	ld a, 2
-	ld [hli], a ; num rows
-	ld a, 1
-	ld [hli], a ; num cols
-	ld [hl], $0 ; flags 1
-	set 5, [hl]
-	inc hl
-	xor a
-	ld [hli], a ; flags 2
-	ln a, 2, 0
-	ld [hli], a ; cursor offsets
-	ld a, A_BUTTON
-	add B_BUTTON
-	ld [hli], a ; joypad filter
-	; ld a, [PlayerGender]
-	; xor 1
-	; inc a
-	ld a, [PlayerGender]
-	and a
-	jr z, .male
-	ld a, 2
-	jr .okay_gender
-
-.male
-	ld a, 1
-.okay_gender
-	ld [hli], a ; cursor y
-	ld a, $1
-	ld [hli], a ; cursor x
-	xor a
-	ld [hli], a ; off char
-	ld [hli], a ; cursor tile
-	ld [hli], a ; cursor tile + 1
-	ret
-
-Function4876f: ; 4876f (12:476f)
-	call Function48283
-	hlcoord 1, 16
-	ld de, MobileDesc_Age
-	call PlaceString
-	ld hl, MenuDataHeader_0x48509
-	call LoadMenuDataHeader
-	ld a, [hInMenu]
-	push af
-	ld a, $1
-	ld [hInMenu], a
-	hlcoord 10, 5
-	ld b, $1
-	ld c, $8
-	call Function48cdc
-	call WaitBGMap
-	ld a, [wd473]
-	and a
-	jr z, .asm_487ab
-	cp $64
-	jr z, .asm_487b2
-	hlcoord 12, 5
-	ld [hl], $10
-	hlcoord 12, 7
-	ld [hl], $11
-	jr .asm_487b7
-.asm_487ab
-	hlcoord 12, 5
-	ld [hl], $10
-	jr .asm_487b7
-.asm_487b2
-	hlcoord 12, 7
-	ld [hl], $11
-.asm_487b7
-	hlcoord 11, 6
-	call Function487ec
-	ld c, 10
-	call DelayFrames
-	ld a, [wd473]
-	push af
-.asm_487c6
-	call JoyTextDelay
-	call Function4880e
-	jr nc, .asm_487c6
-	ld a, $1
-	call MenuClickSound
-	pop bc
-	jr nz, .asm_487da
-	ld a, b
-	ld [wd473], a
-.asm_487da
-	ld a, [wd473]
-	call ExitMenu
-	hlcoord 11, 6
-	call Function487ec
-	pop af
-	ld [hInMenu], a
-	jp Function4840c
-
-Function487ec: ; 487ec (12:47ec)
-	push hl
-	ld de, wd473
-	call Function487ff
-	pop hl
-rept 4
-	inc hl
-endr
-	ld de, String_4880d
-	call PlaceString
-	ret
-
-Function487ff: ; 487ff (12:47ff)
-	push hl
-	ld a, " "
-	ld [hli], a
-	ld [hl], a
-	pop hl
-	ld b, PRINTNUM_LEADINGZEROS | 1
-	ld c, 3
-	call PrintNum
-	ret
-; 4880d (12:480d)
-
-String_4880d: ; 4880d
-	db "@"
-; 4880e
-
-Function4880e: ; 4880e (12:480e)
-	ld a, [hJoyPressed]
-	and A_BUTTON
-	jp nz, Function488b9
-	ld a, [hJoyPressed]
-	and B_BUTTON
-	jp nz, Function488b4
-	ld hl, hJoyLast
-	ld a, [hl]
-	and D_UP
-	jr nz, .asm_48843
-	ld a, [hl]
-	and D_DOWN
-	jr nz, .asm_48838
-	ld a, [hl]
-	and D_LEFT
-	jr nz, .asm_4884f
-	ld a, [hl]
-	and D_RIGHT
-	jr nz, .asm_4885f
-	call DelayFrame
-	and a
-	ret
-.asm_48838
-	ld hl, wd473
-	ld a, [hl]
-	and a
-	jr z, .asm_48840
-	dec a
-.asm_48840
-	ld [hl], a
-	jr .asm_4886f
-.asm_48843
-	ld hl, wd473
-	ld a, [hl]
-	cp $64
-	jr nc, .asm_4884c
-	inc a
-.asm_4884c
-	ld [hl], a
-	jr .asm_4886f
-.asm_4884f
-	ld a, [wd473]
-	cp $5b
-	jr c, .asm_48858
-	ld a, $5a
-.asm_48858
-	add $a
-	ld [wd473], a
-	jr .asm_4886f
-.asm_4885f
-	ld a, [wd473]
-	cp $a
-	jr nc, .asm_48868
-	ld a, $a
-.asm_48868
-	sub $a
-	ld [wd473], a
-	jr .asm_4886f
-.asm_4886f
-	ld a, [wd473]
-	and a
-	jr z, .asm_48887
-	cp $64
-	jr z, .asm_48898
-	jr z, .asm_488a7
-	hlcoord 12, 5
-	ld [hl], $10
-	hlcoord 12, 7
-	ld [hl], $11
-	jr .asm_488a7
-.asm_48887
-	hlcoord 10, 5
-	ld b, $1
-	ld c, $8
-	call Function48cdc
-	hlcoord 12, 5
-	ld [hl], $10
-	jr .asm_488a7
-.asm_48898
-	hlcoord 10, 5
-	ld b, $1
-	ld c, $8
-	call Function48cdc
-	hlcoord 12, 7
-	ld [hl], $11
-.asm_488a7
-	hlcoord 11, 6
-	call Function487ec
-	call WaitBGMap
-	ld a, $1
-	and a
-	ret
-
-Function488b4: ; 488b4 (12:48b4)
-	ld a, $0
-	and a
-	scf
-	ret
-
-Function488b9: ; 488b9 (12:48b9)
-	ld a, [wd003]
-	set 1, a
-	ld [wd003], a
-	scf
-	ret
-; 488c3 (12:48c3)
-
-GFX_488c3: ; 488c3
-INCBIN "gfx/unknown/up_arrow.2bpp"
-
-GFX_488cb: ; 488cb
-INCBIN "gfx/unknown/down_arrow.2bpp"
-
-Function488d3: ; 488d3 (12:48d3)
-	call Function48283
-	hlcoord 1, 16
-	ld de, MobileDesc_ZipCode
-	call PlaceString
-	call Function48a3a
-	jp c, Function4840c
-	ld hl, MenuDataHeader_0x4850e
-	call LoadMenuDataHeader
-	ld a, [hInMenu]
-	push af
-	ld a, $1
-	ld [hInMenu], a
-	hlcoord 10, 9
-	ld b, $1
-	ld c, $8
-	call Function48cdc
-	ld a, [wd475]
-	and $f
-	ld d, $0
-	hlcoord 11, 10
-	call Function489ea
-	call WaitBGMap
-	ld a, [wd475]
-	ld b, a
-	ld a, [wd476]
-	ld c, a
-	ld a, [wd477]
-	ld d, a
-	ld a, [wd478]
-	ld e, a
-	push de
-	push bc
-	ld d, $0
-	ld b, $0
-
-asm_48922: ; 48922 (12:4922)
-	push bc
-	call JoyTextDelay
-	ld a, [hJoyDown]
-	and a
-	jp z, Function4896e
-	bit 0, a
-	jp nz, Function4896e
-	bit 1, a
-	jp nz, Function4896e
-	ld a, [wd002]
-	and %11001111
-	res 7, a
-	ld [wd002], a
-	pop bc
-	inc b
-	ld a, b
-	cp $5
-	push bc
-	jr c, .asm_4894c
-	pop bc
-	ld b, $4
-	push bc
-.asm_4894c
-	pop bc
-	push bc
-	ld a, b
-	cp $4
-	jr nz, asm_48972
-	ld c, 10
-	call DelayFrames
-	jr asm_48972
-; 4895a (12:495a)
-
-Function4895a: ; 4895a
-	ld a, [hJoyPressed]
-	and a
-	jr z, .asm_48965
-	pop bc
-	ld b, $1
-	push bc
-	jr asm_48972
-
-.asm_48965
-	ld a, [hJoyLast]
-	and a
-	jr z, asm_48972
-
-	pop bc
-	ld b, $1
-	push bc
-
-Function4896e: ; 4896e (12:496e)
-	pop bc
-	ld b, $0
-	push bc
-
-asm_48972: ; 48972 (12:4972)
-	call Function48ab5
-	push af
-	cp $f0
-	jr z, .asm_48994
-	cp $f
-	jr nz, .asm_48988
-	ld a, [wd002]
-	set 7, a
-	and $cf
-	ld [wd002], a
-.asm_48988
-	hlcoord 11, 10
-	ld b, $0
-	ld c, d
-	add hl, bc
-	ld b, $3
-	call Function48c11
-.asm_48994
-	call WaitBGMap
-	pop af
-	pop bc
-	jr nc, asm_48922
-	jr nz, .asm_489b1
-	pop bc
-	ld a, b
-	ld [wd475], a
-	ld a, c
-	ld [wd476], a
-	pop bc
-	ld a, b
-	ld [wd477], a
-	ld a, c
-	ld [wd478], a
-	jr .asm_489c5
-.asm_489b1
-	push af
-	ld a, [wd479]
-	set 0, a
-	ld [wd479], a
-	ld a, [wd003]
-	set 3, a
-	ld [wd003], a
-	pop af
-	pop bc
-	pop bc
-.asm_489c5
-	push af
-	push bc
-	push de
-	push hl
-	ld a, $1
-	call MenuClickSound
-	pop hl
-	pop de
-	pop bc
-	pop af
-	call ExitMenu
-	hlcoord 11, 10
-	call Function489ea
-	hlcoord 11, 9
-	lb bc, 1, 8
-	call ClearBox
-	pop af
-	ld [hInMenu], a
-	jp Function4840c
-
-Function489ea: ; 489ea (12:49ea)
-	push de
-	ld a, [wd475]
-	and $f
-	call Mobile12_Bin2Dec
-	ld a, [wd476]
-	and $f0
-	swap a
-	inc hl
-	call Mobile12_Bin2Dec
-	ld a, [wd476]
-	and $f
-	inc hl
-	call Mobile12_Bin2Dec
-	inc hl
-	ld de, String_48a38
-	call PlaceString
-	ld a, [wd477]
-	and $f0
-	swap a
-	inc hl
-	call Mobile12_Bin2Dec
-	ld a, [wd477]
-	and $f
-	inc hl
-	call Mobile12_Bin2Dec
-	ld a, [wd478]
-	and $f0
-	swap a
-	inc hl
-	call Mobile12_Bin2Dec
-	ld a, [wd478]
-	and $f
-	inc hl
-	call Mobile12_Bin2Dec
-	pop de
-	ret
-; 48a38 (12:4a38)
-
-String_48a38: ; 48a38
-	db "-@"
-; 48a3a
-
-Function48a3a: ; 48a3a (12:4a3a)
-	ld hl, MenuDataHeader_0x48a9c
-	call LoadMenuDataHeader
-	call Function4873c
-	ld a, $a
-	ld [w2DMenuCursorInitY], a
-	ld a, $b
-	ld [w2DMenuCursorInitX], a
-	ld a, $1
-	ld [wMenuCursorY], a
-	hlcoord 10, 8
-	ld b, $4
-	ld c, $8
-	call Function48cdc
-	hlcoord 12, 10
-	ld de, String_48aa1
-	call PlaceString
-	call StaticMenuJoypad
-	push af
-	call PlayClickSFX
-	call ExitMenu
-	pop af
-	bit 1, a
-	jp nz, Function48a9a
-	ld a, [wMenuCursorY]
-	cp $1
-	jr z, .asm_48a98
-	ld a, [wd003]
-	set 3, a
-	ld [wd003], a
-	ld a, [wd479]
-	res 0, a
-	ld [wd479], a
-	xor a
-	ld bc, $4
-	ld hl, wd475
-	call ByteFill
-	jr Function48a9a
-.asm_48a98
-	and a
-	ret
-
-Function48a9a: ; 48a9a (12:4a9a)
-	scf
-	ret
-; 48a9c (12:4a9c)
-
-MenuDataHeader_0x48a9c: ; 0x48a9c
-	db $40 ; flags
-	db 08, 10 ; start coords
-	db 13, 19 ; end coord
-
-String_48aa1: ; 48aa1
-	db   "Tell Now"
-	next "Tell Later@"
-; 48ab5
-
-
-Function48ab5: ; 48ab5 (12:4ab5)
-	ld a, [hJoyPressed]
-	and A_BUTTON
-	jp nz, Function48c0f
-	ld a, [hJoyPressed]
-	and B_BUTTON
-	jp nz, Function48c0d
-	ld a, d
-	and a
-	jr z, .asm_48adf
-	cp $1
-	jr z, .asm_48ae7
-	cp $2
-	jr z, .asm_48af1
-	cp $3
-	jr z, .asm_48af9
-	cp $4
-	jr z, .asm_48b03
-	cp $5
-	jr z, .asm_48b0b
-	cp $6
-	jr .asm_48b15
-.asm_48adf
-	ld hl, wd475
-	ld a, [hl]
-	and $f
-	jr .asm_48b1d
-.asm_48ae7
-	ld hl, wd476
-	ld a, [hl]
-	swap a
-	or $f0
-	jr .asm_48b1d
-.asm_48af1
-	ld hl, wd476
-	ld a, [hl]
-	and $f
-	jr .asm_48b1d
-.asm_48af9
-	ld hl, wd477
-	ld a, [hl]
-	swap a
-	or $f0
-	jr .asm_48b1d
-.asm_48b03
-	ld hl, wd477
-	ld a, [hl]
-	and $f
-	jr .asm_48b1d
-.asm_48b0b
-	ld hl, wd478
-	ld a, [hl]
-	swap a
-	or $f0
-	jr .asm_48b1d
-.asm_48b15
-	ld hl, wd478
-	ld a, [hl]
-	and $f
-	jr .asm_48b1d
-.asm_48b1d
-	push hl
-	push af
-	ld e, $0
-	hlcoord 11, 10
-	ld a, d
-.asm_48b25
-	and a
-	jr z, .asm_48b2c
-	inc e
-	dec a
-	jr .asm_48b25
-.asm_48b2c
-	ld hl, hJoyLast
-	ld a, [hl]
-	and D_UP
-	jr nz, .asm_48b8d
-	ld a, [hl]
-	and D_DOWN
-	jr nz, .asm_48b55
-	ld a, [hl]
-	and D_LEFT
-	jp nz, Function48bd7
-	ld a, [hl]
-	and D_RIGHT
-	jr nz, .asm_48b9d
-	hlcoord 11, 10
-	call Function489ea
-	ld a, [wd002]
-	bit 7, a
-	jr nz, .asm_48b51
-.asm_48b51
-	pop bc
-	pop bc
-	and a
-	ret
-.asm_48b55
-	pop af
-	ld b, a
-	and $f
-	and a
-	ld a, b
-	jr nz, .asm_48b61
-	and $f0
-	add $a
-.asm_48b61
-	dec a
-.asm_48b62
-	push de
-	push af
-	hlcoord 10, 9
-	ld b, $1
-	ld c, $8
-	call Function48cdc
-	pop af
-	pop de
-	hlcoord 11, 10
-	ld b, a
-	ld a, d
-	cp $3
-	jr c, .asm_48b7a
-	inc hl
-.asm_48b7a
-	ld a, b
-	pop hl
-	bit 7, a
-	jr z, .asm_48b85
-	call Function48c4d
-	jr .asm_48b88
-.asm_48b85
-	call Function48c5a
-.asm_48b88
-	ld a, $f0
-	jp Function48c00
-.asm_48b8d
-	pop af
-	ld b, a
-	and $f
-	cp $9
-	ld a, b
-	jr c, .asm_48b9a
-	and $f0
-	add $ff
-.asm_48b9a
-	inc a
-	jr .asm_48b62
-.asm_48b9d
-	push de
-	hlcoord 10, 9
-	ld b, $1
-	ld c, $8
-	call Function48cdc
-	pop de
-	ld a, d
-	cp $6
-	jr nc, .asm_48baf
-	inc d
-.asm_48baf
-	pop af
-	pop hl
-	ld b, a
-	ld a, d
-	cp $6
-	ld a, b
-	jr z, .asm_48bc4
-	bit 7, a
-	jr nz, .asm_48bc4
-	inc hl
-	ld a, [hl]
-	swap a
-	and $f
-	jr asm_48bc7
-.asm_48bc4
-	ld a, [hl]
-	and $f
-
-asm_48bc7: ; 48bc7 (12:4bc7)
-	hlcoord 11, 10
-	push af
-	ld a, d
-	cp $3
-	pop bc
-	ld a, b
-	jr c, .asm_48bd3
-	inc hl
-.asm_48bd3
-	ld a, $f
-	jr Function48c00
-
-Function48bd7: ; 48bd7 (12:4bd7)
-	push de
-	hlcoord 10, 9
-	ld b, $1
-	ld c, $8
-	call Function48cdc
-	pop de
-	ld a, d
-	and a
-	pop af
-	pop hl
-	ld b, a
-	ld a, d
-	and a
-	ld a, b
-	jr z, .asm_48bf3
-	bit 7, a
-	jr z, .asm_48bf8
-	dec d
-	dec hl
-.asm_48bf3
-	ld a, [hl]
-	and $f
-	jr asm_48bc7
-.asm_48bf8
-	dec d
-	ld a, [hl]
-	swap a
-	and $f
-	jr asm_48bc7
-
-Function48c00: ; 48c00 (12:4c00)
-	push af
-	hlcoord 11, 10
-	call Function489ea
-	ld a, $1
-	and a
-	pop bc
-	ld a, b
-	ret
-
-Function48c0d: ; 48c0d (12:4c0d)
-	xor a
-	and a
-
-Function48c0f: ; 48c0f (12:4c0f)
-	scf
-	ret
-
-Function48c11: ; 48c11 (12:4c11)
-	ld a, [wd002]
-	bit 7, a
-	jr z, .asm_48c20
-	ld a, d
-	cp $3
-	jr c, .asm_48c1e
-	inc hl
-.asm_48c1e
-	ld [hl], $7f
-.asm_48c20
-	ld a, [wd002]
-	swap a
-	and $3
-	inc a
-	cp b
-	jr nz, .asm_48c40
-	ld a, [wd002]
-	bit 7, a
-	jr z, .asm_48c3a
-	res 7, a
-	ld [wd002], a
-	xor a
-	jr .asm_48c40
-.asm_48c3a
-	set 7, a
-	ld [wd002], a
-	xor a
-.asm_48c40
-	swap a
-	ld b, a
-	ld a, [wd002]
-	and $cf
-	or b
-	ld [wd002], a
-	ret
-
-Function48c4d: ; 48c4d (12:4c4d)
-	swap a
-	and $f0
-	push af
-	ld a, [hl]
-	and $f
-	ld [hl], a
-	pop af
-	or [hl]
-	ld [hl], a
-	ret
-
-Function48c5a: ; 48c5a (12:4c5a)
-	push af
-	ld a, [hl]
-	and $f0
-	ld [hl], a
-	pop af
-	or [hl]
-	ld [hl], a
-	ret
-
-Function48c63: ; 48c63
-	ld a, "@"
-	ld [de], a
-	ld a, c
-	cp $30
-	jr nc, .asm_48c8c
-	and a
-	jr z, .asm_48c8c
-	dec c
-	push de
-	ld h, d
-	ld l, e
-	ld a, "@"
-	ld b, 7
-.asm_48c76
-	ld [hli], a
-	dec b
-	jr nz, .asm_48c76
-	ld hl, Prefectures
-	ld a, c
-	call GetNthString
-.asm_48c81
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hl]
-	cp "@"
-	jr nz, .asm_48c81
-	and a
-	pop de
-	ret
-
-.asm_48c8c
-	scf
-	ret
-; 48c8e
-
-Function48c8e: ; 48c8e
-; unreferenced
-	ld hl, $d02a
-	ld d, h
-	ld e, l
-	callba Function48c63
-	hlcoord 10, 7
-	call PlaceString
-	call WaitBGMap
-	ret
-; 48ca3
-
-Function48ca3: ; 48ca3
-	push af
-	push bc
-	push de
-	push hl
-	ld b, 0
-	ld c, 0
-	ld d, 0
-.asm_48cad
-	cp 100
-	jr c, .asm_48cb6
-	sub 100
-	inc b
-	jr .asm_48cad
-
-.asm_48cb6
-	cp 10
-	jr c, .asm_48cbf
-	sub 10
-	inc c
-	jr .asm_48cb6
-
-.asm_48cbf
-	cp 1
-	jr c, .asm_48cc7
-	dec a
-	inc d
-	jr .asm_48cbf
-
-.asm_48cc7
-	ld a, b
-	call Mobile12_Bin2Dec
-	inc hl
-	ld a, c
-	call Mobile12_Bin2Dec
-	inc hl
-	ld a, d
-	call Mobile12_Bin2Dec
-	pop hl
-	pop de
-	pop bc
-	pop af
-	ret
-; 48cda
-
-Function48cda: ; 48cda (12:4cda)
-	ld h, d
-	ld l, e
-
-Function48cdc: ; 48cdc (12:4cdc)
-	push bc
-	push hl
-	call Function48cfd
-	pop hl
-	pop bc
-	ld de, AttrMap - TileMap
-	add hl, de
-	inc b
-	inc b
-	inc c
-	inc c
-	ld a, $0
-.asm_48ced
-	push bc
-	push hl
-.asm_48cef
-	ld [hli], a
-	dec c
-	jr nz, .asm_48cef
-	pop hl
-	ld de, $14
-	add hl, de
-	pop bc
-	dec b
-	jr nz, .asm_48ced
-	ret
-
-Function48cfd: ; 48cfd (12:4cfd)
-	push hl
-	ld a, $4
-	ld [hli], a
-	inc a
-	call Function48d2a
-	inc a
-	ld [hl], a
-	pop hl
-	ld de, $14
-	add hl, de
-.asm_48d0c
-	push hl
-	ld a, $7
-	ld [hli], a
-	ld a, $7f
-	call Function48d2a
-	ld [hl], $8
-	pop hl
-	ld de, $14
-	add hl, de
-	dec b
-	jr nz, .asm_48d0c
-	ld a, $9
-	ld [hli], a
-	ld a, $a
-	call Function48d2a
-	ld [hl], $b
-	ret
-
-Function48d2a: ; 48d2a (12:4d2a)
-	ld d, c
-.asm_48d2b
-	ld [hli], a
-	dec d
-	jr nz, .asm_48d2b
-	ret
-
-Function48d30: ; 48d30 (12:4d30)
-	ld hl, wd475
-	call Function48d4a
-	ld hl, wd477
-	call Function48d4a
-	ret
-
-Function48d3d: ; 48d3d (12:4d3d)
-	ld hl, wd475
-	call Function48d94
-	ld hl, wd477
-	call Function48d94
-	ret
-
-Function48d4a: ; 48d4a (12:4d4a)
-	inc hl
-	ld a, [hl]
-	ld b, a
-	and $f
-	ld c, a
-	srl b
-	srl b
-	srl b
-	srl b
-	push bc
-	ld c, 10
-	ld a, b
-	call SimpleMultiply
-	pop bc
-	add c
-	ld [hld], a
-	xor a
-	ld [hMultiplicand + 0], a
-	ld [hMultiplicand + 1], a
-	ld a, [hl]
-	srl a
-	srl a
-	srl a
-	srl a
-	ld c, 10
-	call SimpleMultiply
-	ld b, a
-	ld a, [hli]
-	and $f
-	add b
-	ld [hMultiplicand + 2], a
-	ld a, 100
-	ld [hMultiplier], a
-	call Multiply
-	ld a, [hProduct + 2]
-	ld b, a
-	ld a, [hProduct + 3]
-	ld c, a
-	ld e, [hl]
-	add e
-	ld c, a
-	ld a, b
-	adc $0
-	ld b, a
-	ld a, c
-	ld [hld], a
-	ld [hl], b
-	ret
-
-Function48d94: ; 48d94 (12:4d94)
-	xor a
-	ld [hDividend + 0], a
-	ld [hDividend + 1], a
-	ld a, [hli]
-	ld [hDividend + 0], a
-	ld a, [hl]
-	ld [hDividend + 1], a
-	ld a, 100
-	ld [hDivisor], a
-	ld b, 2
-	call Divide
-	ld a, [hRemainder]
-	ld c, 10
-	call SimpleDivide
-	sla b
-	sla b
-	sla b
-	sla b
-	or b
-	ld [hld], a
-	ld a, [hQuotient + 2]
-	ld c, 10
-	call SimpleDivide
-	sla b
-	sla b
-	sla b
-	sla b
-	or b
-	ld [hl], a
-	ret
--- a/misc/mobile_12_2.asm
+++ /dev/null
@@ -1,936 +1,0 @@
-MobileCheckOwnMonAnywhere: ; 4a843
-; Like CheckOwnMonAnywhere, but only check for species.
-; OT/ID don't matter.
-
-	ld a, [PartyCount]
-	and a
-	ret z
-
-	ld d, a
-	ld e, 0
-	ld hl, PartyMon1Species
-	ld bc, PartyMonOT
-.asm_4a851
-	call .CheckMatch
-	ret c
-	push bc
-	ld bc, PARTYMON_STRUCT_LENGTH
-	add hl, bc
-	pop bc
-	call .CopyName
-	dec d
-	jr nz, .asm_4a851
-	ld a, BANK(sBoxCount)
-	call GetSRAMBank
-	ld a, [sBoxCount]
-	and a
-	jr z, .asm_4a888
-	ld d, a
-	ld hl, sBoxMon1Species
-	ld bc, sBoxMonOT
-.asm_4a873
-	call .CheckMatch
-	jr nc, .asm_4a87c
-	call CloseSRAM
-	ret
-
-.asm_4a87c
-	push bc
-	ld bc, BOXMON_STRUCT_LENGTH
-	add hl, bc
-	pop bc
-	call .CopyName
-	dec d
-	jr nz, .asm_4a873
-
-.asm_4a888
-	call CloseSRAM
-	ld c, 0
-.asm_4a88d
-	ld a, [wCurBox]
-	and $f
-	cp c
-	jr z, .asm_4a8d1
-	ld hl, .BoxAddrs
-	ld b, 0
-	add hl, bc
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	call GetSRAMBank
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [hl]
-	and a
-	jr z, .asm_4a8d1
-	push bc
-	push hl
-	ld de, sBoxMons - sBoxCount
-	add hl, de
-	ld d, h
-	ld e, l
-	pop hl
-	push de
-	ld de, sBoxMonOT - sBoxCount
-	add hl, de
-	ld b, h
-	ld c, l
-	pop hl
-	ld d, a
-.asm_4a8ba
-	call .CheckMatch
-	jr nc, .asm_4a8c4
-	pop bc
-	call CloseSRAM
-	ret
-
-.asm_4a8c4
-	push bc
-	ld bc, BOXMON_STRUCT_LENGTH
-	add hl, bc
-	pop bc
-	call .CopyName
-	dec d
-	jr nz, .asm_4a8ba
-	pop bc
-
-.asm_4a8d1
-	inc c
-	ld a, c
-	cp NUM_BOXES
-	jr c, .asm_4a88d
-	call CloseSRAM
-	and a
-	ret
-; 4a8dc
-
-.CheckMatch: ; 4a8dc
-	push bc
-	push hl
-	push de
-	ld d, b
-	ld e, c
-	ld a, [ScriptVar]
-	ld b, [hl]
-	cp b
-	jr nz, .no_match
-	jr .match
-
-.no_match
-	pop de
-	pop hl
-	pop bc
-	and a
-	ret
-
-.match
-	pop de
-	pop hl
-	pop bc
-	scf
-	ret
-; 4a8f4
-
-.BoxAddrs: ; 4a8f4
-	dba sBox1
-	dba sBox2
-	dba sBox3
-	dba sBox4
-	dba sBox5
-	dba sBox6
-	dba sBox7
-	dba sBox8
-	dba sBox9
-	dba sBox10
-	dba sBox11
-	dba sBox12
-	dba sBox13
-	dba sBox14
-; 4a91e
-
-.CopyName: ; 4a91e
-	push hl
-	ld hl, NAME_LENGTH
-	add hl, bc
-	ld b, h
-	ld c, l
-	pop hl
-	ret
-; 4a927
-
-FindItemInPCOrBag: ; 4a927
-	ld a, [ScriptVar]
-	ld [CurItem], a
-	ld hl, PCItems
-	call CheckItem
-	jr c, .found
-
-	ld a, [ScriptVar]
-	ld [CurItem], a
-	ld hl, NumItems
-	call CheckItem
-	jr c, .found
-
-	xor a
-	ld [ScriptVar], a
-	ret
-
-.found
-	ld a, 1
-	ld [ScriptVar], a
-	ret
-; 4a94e
-
-Function4a94e: ; 4a94e
-	call FadeToMenu
-	ld a, -1
-	ld hl, wd002
-	ld bc, 3
-	call ByteFill
-	xor a
-	ld [wd018], a
-	ld [wd019], a
-	ld b, SCGB_PACKPALS
-	call GetSGBLayout
-	call SetPalettes
-	call Function4aa22
-	jr c, .asm_4a985
-	jr z, .asm_4a9a1
-	jr .asm_4a97b
-
-.asm_4a974
-	call Function4aa25
-	jr c, .asm_4a985
-	jr z, .asm_4a9a1
-
-.asm_4a97b
-	call Function4ac58
-	ld hl, wd019
-	res 1, [hl]
-	jr .asm_4a974
-
-.asm_4a985
-	ld a, [wd018]
-	and a
-	jr nz, .asm_4a990
-	call Function4aba8
-	jr c, .asm_4a974
-
-.asm_4a990
-	call CloseSubmenu
-	ld hl, wd002
-	ld a, -1
-	ld bc, 3
-	call ByteFill
-	scf
-	jr .asm_4a9af
-
-.asm_4a9a1
-	call Function4a9c3
-	jr c, .asm_4a9b0
-	call Function4a9d7
-	jr c, .asm_4a974
-	call CloseSubmenu
-	and a
-
-.asm_4a9af
-	ret
-
-.asm_4a9b0
-	ld de, SFX_WRONG
-	call PlaySFX
-	ld hl, UnknownText_0x4a9be
-	call PrintText
-	jr .asm_4a974
-; 4a9be
-
-UnknownText_0x4a9be: ; 0x4a9be
-	; Pick three #MON for battle.
-	text_jump UnknownText_0x1c51d7
-	db "@"
-; 0x4a9c3
-
-Function4a9c3: ; 4a9c3
-	ld hl, wd002
-	ld a, $ff
-	cp [hl]
-	jr z, .asm_4a9d5
-	inc hl
-	cp [hl]
-	jr z, .asm_4a9d5
-	inc hl
-	cp [hl]
-	jr z, .asm_4a9d5
-	and a
-	ret
-
-.asm_4a9d5
-	scf
-	ret
-; 4a9d7
-
-Function4a9d7: ; 4a9d7
-	ld a, [wd002]
-	ld hl, PartyMonNicknames
-	call GetNick
-	ld h, d
-	ld l, e
-	ld de, EndFlypoint
-	ld bc, 6
-	call CopyBytes
-	ld a, [wd003]
-	ld hl, PartyMonNicknames
-	call GetNick
-	ld h, d
-	ld l, e
-	ld de, wd00c
-	ld bc, 6
-	call CopyBytes
-	ld a, [wd004]
-	ld hl, PartyMonNicknames
-	call GetNick
-	ld h, d
-	ld l, e
-	ld de, wd012
-	ld bc, 6
-	call CopyBytes
-	ld hl, UnknownText_0x4aa1d
-	call PrintText
-	call YesNoBox
-	ret
-; 4aa1d
-
-UnknownText_0x4aa1d: ; 0x4aa1d
-	; , @  and @ . Use these three?
-	text_jump UnknownText_0x1c51f4
-	db "@"
-; 0x4aa22
-
-Function4aa22: ; 4aa22
-	call ClearBGPalettes
-
-Function4aa25: ; 4aa25
-	callba LoadPartyMenuGFX
-	callba InitPartyMenuWithCancel
-	call Function4aad3
-
-Function4aa34: ; 4aa34
-	ld a, PARTYMENUACTION_MOBILE
-	ld [PartyMenuActionText], a
-	callba WritePartyMenuTilemap
-	xor a
-	ld [PartyMenuActionText], a
-	callba PrintPartyMenuText
-	call Function4aab6
-	call WaitBGMap
-	call SetPalettes
-	call DelayFrame
-	call Function4ab1a
-	jr z, .asm_4aa66
-	push af
-	call Function4aafb
-	jr c, .asm_4aa67
-	call Function4ab06
-	jr c, .asm_4aa67
-	pop af
-
-.asm_4aa66
-	ret
-
-.asm_4aa67
-	ld hl, wd019
-	set 1, [hl]
-	pop af
-	ret
-; 4aa6e
-
-Function4aa6e: ; 4aa6e
-	pop af
-	ld de, SFX_WRONG
-	call PlaySFX
-	call WaitSFX
-	jr Function4aa34
-; 4aa7a
-
-Function4aa7a: ; 4aa7a
-	ld hl, wd002
-	ld d, $3
-.loop
-	ld e, PARTY_LENGTH
-	ld a, [hli]
-	push de
-	push hl
-	cp -1
-	jr z, .done
-	ld hl, wSpriteAnimationStructs
-	inc a
-	ld d, a
-.inner_loop
-	ld a, [hl]
-	and a
-	jr z, .next
-	cp d
-	jr z, .same_as_d
-	jr .next
-
-	ld a, $3
-	jr .proceed
-
-.same_as_d
-	ld a, $2
-
-.proceed
-	push hl
-	ld c, l
-	ld b, h
-	ld hl, $2
-	add hl, bc
-	ld [hl], a
-	pop hl
-
-.next
-	ld bc, $10
-	add hl, bc
-	dec e
-	jr nz, .inner_loop
-	pop hl
-	pop de
-	dec d
-	jr nz, .loop
-	jr .finished
-
-.done
-	pop hl
-	pop de
-
-.finished
-	ret
-; 4aab6
-
-Function4aab6: ; 4aab6
-	ld hl, wd002
-	ld d, $3
-.loop
-	ld a, [hli]
-	cp -1
-	jr z, .done
-	push de
-	push hl
-	hlcoord 0, 1
-	ld bc, $28
-	call AddNTimes
-	ld [hl], $ec
-	pop hl
-	pop de
-	dec d
-	jr nz, .loop
-
-.done
-	ret
-; 4aad3
-
-Function4aad3: ; 4aad3
-	ld hl, PartyCount
-	ld a, [hli]
-	and a
-	ret z ; Nothing in your party
-
-	ld c, a
-	xor a
-	ld [hObjectStructIndexBuffer], a
-.loop
-	push bc
-	push hl
-	ld e, 0
-	callba LoadMenuMonIcon
-	ld a, [hObjectStructIndexBuffer]
-	inc a
-	ld [hObjectStructIndexBuffer], a
-	pop hl
-	pop bc
-	dec c
-	jr nz, .loop
-
-	call Function4aa7a
-	callba PlaySpriteAnimations
-	ret
-; 4aafb
-
-Function4aafb: ; 4aafb
-	ld a, [CurPartySpecies]
-	cp EGG
-	jr z, .egg
-	and a
-	ret
-
-.egg
-	scf
-	ret
-; 4ab06
-
-Function4ab06: ; 4ab06
-	ld a, [CurPartyMon]
-	ld bc, PARTYMON_STRUCT_LENGTH
-	ld hl, PartyMon1HP
-	call AddNTimes
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	or b
-	jr nz, .NotFainted
-	scf
-
-.NotFainted:
-	ret
-; 4ab1a
-
-Function4ab1a: ; 4ab1a
-.asm_4ab1a
-	ld a, $fb
-	ld [wMenuJoypadFilter], a
-	ld a, $26
-	ld [w2DMenuCursorOffsets], a
-	ld a, $2
-	ld [w2DMenuNumCols], a
-	call Function4adf7
-	call StaticMenuJoypad
-	call Function4abc3
-	jr c, .asm_4ab1a
-	push af
-	call Function4ab99
-	call nc, PlaceHollowCursor
-	pop af
-	bit 1, a
-	jr nz, .asm_4ab6d
-	ld a, [PartyCount]
-	inc a
-	ld b, a
-	ld a, [wMenuCursorY]
-	ld [wPartyMenuCursor], a
-	cp b
-	jr z, .asm_4ab7e
-	ld a, [wMenuCursorY]
-	dec a
-	ld [CurPartyMon], a
-	ld c, a
-	ld b, $0
-	ld hl, PartySpecies
-	add hl, bc
-	ld a, [hl]
-	ld [CurPartySpecies], a
-	ld de, SFX_READ_TEXT_2
-	call PlaySFX
-	call WaitSFX
-	ld a, $1
-	and a
-	ret
-
-.asm_4ab6d
-	ld a, [wMenuCursorY]
-	ld [wPartyMenuCursor], a
-.asm_4ab73
-	ld de, SFX_READ_TEXT_2
-	call PlaySFX
-	call WaitSFX
-	scf
-	ret
-
-.asm_4ab7e
-	ld a, $1
-	ld [wd018], a
-	ld a, [wMenuCursorX]
-	cp $2
-	jr z, .asm_4ab73
-	ld de, SFX_READ_TEXT_2
-	call PlaySFX
-	call WaitSFX
-	xor a
-	ld [wd018], a
-	and a
-	ret
-; 4ab99
-
-Function4ab99: ; 4ab99
-	bit 1, a
-	jr z, .asm_4aba6
-	ld a, [wd002]
-	cp $ff
-	jr z, .asm_4aba6
-	scf
-	ret
-
-.asm_4aba6
-	and a
-	ret
-; 4aba8
-
-Function4aba8: ; 4aba8
-	ld hl, wd004
-	ld a, [hl]
-	cp $ff
-	jr nz, .asm_4abbe
-	dec hl
-	ld a, [hl]
-	cp $ff
-	jr nz, .asm_4abbe
-	dec hl
-	ld a, [hl]
-	cp $ff
-	jr nz, .asm_4abbe
-	and a
-	ret
-
-.asm_4abbe
-	ld a, $ff
-	ld [hl], a
-	scf
-	ret
-; 4abc3
-
-Function4abc3: ; 4abc3
-	bit 3, a
-	jr z, .asm_4abd5
-	ld a, [PartyCount]
-	inc a
-	ld [wMenuCursorY], a
-	ld a, $1
-	ld [wMenuCursorX], a
-	jr .asm_4ac29
-
-.asm_4abd5
-	bit 6, a
-	jr z, .asm_4abeb
-	ld a, [wMenuCursorY]
-	ld [wMenuCursorY], a
-	and a
-	jr nz, .asm_4ac29
-	ld a, [PartyCount]
-	inc a
-	ld [wMenuCursorY], a
-	jr .asm_4ac29
-
-.asm_4abeb
-	bit 7, a
-	jr z, .asm_4ac08
-	ld a, [wMenuCursorY]
-	ld [wMenuCursorY], a
-	ld a, [PartyCount]
-	inc a
-	inc a
-	ld b, a
-	ld a, [wMenuCursorY]
-	cp b
-	jr nz, .asm_4ac29
-	ld a, $1
-	ld [wMenuCursorY], a
-	jr .asm_4ac29
-
-.asm_4ac08
-	bit 4, a
-	jr nz, .asm_4ac10
-	bit 5, a
-	jr z, .asm_4ac56
-
-.asm_4ac10
-	ld a, [wMenuCursorY]
-	ld b, a
-	ld a, [PartyCount]
-	inc a
-	cp b
-	jr nz, .asm_4ac29
-	ld a, [wMenuCursorX]
-	cp $1
-	jr z, .asm_4ac26
-	ld a, $1
-	jr .asm_4ac29
-
-.asm_4ac26
-	ld [wMenuCursorX], a
-
-.asm_4ac29
-	hlcoord 0, 1
-	lb bc, 13, 1
-	call ClearBox
-	call Function4aab6
-	ld a, [PartyCount]
-	hlcoord 6, 1
-.asm_4ac3b
-	ld bc, $28
-	add hl, bc
-	dec a
-	jr nz, .asm_4ac3b
-	ld [hl], $7f
-	ld a, [wMenuCursorY]
-	ld b, a
-	ld a, [PartyCount]
-	inc a
-	cp b
-	jr z, .asm_4ac54
-	ld a, $1
-	ld [wMenuCursorX], a
-
-.asm_4ac54
-	scf
-	ret
-
-.asm_4ac56
-	and a
-	ret
-; 4ac58
-
-Function4ac58: ; 4ac58
-	lb bc, 2, 18
-	hlcoord 1, 15
-	call ClearBox
-	callba FreezeMonIcons
-	ld hl, MenuDataHeader_0x4aca2
-	call LoadMenuDataHeader
-	ld hl, wd019
-	bit 1, [hl]
-	jr z, .asm_4ac89
-	hlcoord 11, 13
-	ld b, $3
-	ld c, $7
-	call TextBox
-	hlcoord 13, 14
-	ld de, String_4ada7
-	call PlaceString
-	jr .asm_4ac96
-
-.asm_4ac89
-	hlcoord 11, 9
-	ld b, $7
-	ld c, $7
-	call TextBox
-	call Function4ad68
-
-.asm_4ac96
-	ld a, $1
-	ld [hBGMapMode], a
-	call Function4acaa
-	call ExitMenu
-	and a
-	ret
-; 4aca2
-
-MenuDataHeader_0x4aca2: ; 0x4aca2
-	db $40 ; flags
-	db 09, 11 ; start coords
-	db 17, 19 ; end coords
-	dw NULL
-	db 1 ; default option
-; 0x4acaa
-
-Function4acaa: ; 4acaa
-.asm_4acaa
-	ld a, $a0
-	ld [wMenuData2Flags], a
-	ld a, [wd019]
-	bit 1, a
-	jr z, .asm_4acc2
-	ld a, $2
-	ld [wMenuData2Items], a
-	ld a, $c
-	ld [wMenuBorderTopCoord], a
-	jr .asm_4accc
-
-.asm_4acc2
-	ld a, $4
-	ld [wMenuData2Items], a
-	ld a, $8
-	ld [wMenuBorderTopCoord], a
-
-.asm_4accc
-	ld a, $b
-	ld [wMenuBorderLeftCoord], a
-	ld a, $1
-	ld [wMenuCursorBuffer], a
-	call InitVerticalMenuCursor
-	ld hl, w2DMenuFlags1
-	set 6, [hl]
-	call StaticMenuJoypad
-	ld de, SFX_READ_TEXT_2
-	call PlaySFX
-	ld a, [hJoyPressed]
-	bit 0, a
-	jr nz, .asm_4acf4
-	bit 1, a
-	jr nz, .asm_4acf3
-	jr .asm_4acaa
-
-.asm_4acf3
-	ret
-
-.asm_4acf4
-	ld a, [wd019]
-	bit 1, a
-	jr nz, .asm_4ad0e
-	ld a, [wMenuCursorY]
-	cp $1
-	jr z, Function4ad17
-	cp $2
-	jp z, Function4ad56
-	cp $3
-	jp z, Function4ad60
-	jr .asm_4acf3
-
-.asm_4ad0e
-	ld a, [wMenuCursorY]
-	cp $1
-	jr z, Function4ad56
-	jr .asm_4acf3
-
-Function4ad17: ; 4ad17
-	call Function4adb2
-	jr z, .asm_4ad4a
-	ld hl, wd002
-	ld a, $ff
-	cp [hl]
-	jr z, .asm_4ad39
-	inc hl
-	cp [hl]
-	jr z, .asm_4ad39
-	inc hl
-	cp [hl]
-	jr z, .asm_4ad39
-	ld de, SFX_WRONG
-	call WaitPlaySFX
-	ld hl, UnknownText_0x4ad51
-	call PrintText
-	ret
-
-.asm_4ad39
-	ld a, [CurPartyMon]
-	ld [hl], a
-	call Function4a9c3
-	ret c
-	ld a, [wd019]
-	set 0, a
-	ld [wd019], a
-	ret
-
-.asm_4ad4a
-	ld a, $ff
-	ld [hl], a
-	call Function4adc2
-	ret
-
-UnknownText_0x4ad51: ; 0x4ad51
-	; Only three #MON may enter.
-	text_jump UnknownText_0x1c521c
-	db "@"
-; 0x4ad56
-
-Function4ad56: ; 4ad56
-	callba OpenPartyStats
-	call WaitBGMap2
-	ret
-; 4ad60
-
-Function4ad60: ; 4ad60
-	callba ManagePokemonMoves
-	ret
-; 4ad67
-
-Function4ad67: ; 4ad67
-	ret
-; 4ad68
-
-Function4ad68: ; 4ad68
-	hlcoord 13, 12
-	ld de, String_4ad88
-	call PlaceString
-	call Function4adb2
-	jr c, .asm_4ad7e
-	hlcoord 13, 10
-	ld de, String_4ada0
-	jr .asm_4ad84
-
-.asm_4ad7e
-	hlcoord 13, 10
-	ld de, String_4ad9a
-
-.asm_4ad84
-	call PlaceString
-	ret
-; 4ad88
-
-String_4ad88: ; 4ad88
-	db   "つよさをみる"
-	next "つかえるわざ"
-	next "もどる@"
-; 4ad9a
-
-String_4ad9a: ; 4ad9a
-	db   "さんかする@"
-; 4ada0
-
-String_4ada0: ; 4ada0
-	db   "さんかしない@"
-; 4ada7
-
-String_4ada7: ; 4ada7
-	db   "つよさをみる"
-	next "もどる@" ; BACK
-; 4adb2
-
-Function4adb2: ; 4adb2
-	ld hl, wd002
-	ld a, [CurPartyMon]
-	cp [hl]
-	ret z
-	inc hl
-	cp [hl]
-	ret z
-	inc hl
-	cp [hl]
-	ret z
-	scf
-	ret
-; 4adc2
-
-Function4adc2: ; 4adc2
-	ld a, [wd002]
-	cp $ff
-	jr nz, .skip
-	ld a, [wd003]
-	cp $ff
-	jr nz, .skip2
-	ld a, [wd004]
-	ld [wd002], a
-	ld a, $ff
-	ld [wd004], a
-	jr .skip
-
-.skip2
-	ld [wd002], a
-	ld a, $ff
-	ld [wd003], a
-
-.skip
-	ld a, [wd003]
-	cp $ff
-	ret nz
-	ld b, a
-	ld a, [wd004]
-	ld [wd003], a
-	ld a, b
-	ld [wd004], a
-	ret
-; 4adf7
-
-Function4adf7: ; 4adf7
-	ld a, [wd019]
-	bit 0, a
-	ret z
-	ld a, [PartyCount]
-	inc a
-	ld [wMenuCursorY], a
-	ld a, $1
-	ld [wMenuCursorX], a
-	ld a, [wd019]
-	res 0, a
-	ld [wd019], a
-	ret
-; 4ae12
--- a/misc/mobile_22.asm
+++ /dev/null
@@ -1,4448 +1,0 @@
-
-String_8911c: ; 8911c
-	db   "でんわばんごうが ただしく"   ; Phone number is not
-	next "はいって いません!@"         ; entered correctly!
-; 89135
-
-String_89135: ; 89135
-	db   "データが かわって いますが"  ; The data has changed.
-	next "かきかえないで やめますか?@" ; Quit anyway?
-; 89153
-
-String_89153: ; 89153
-	db   "メッセージは ありません@"    ; No message
-; 89160
-
-OpenSRAMBank4: ; 89160
-	push af
-	ld a, $4
-	call GetSRAMBank
-	pop af
-	ret
-; 89168
-
-
-Function89168: ; 89168 (22:5168)
-	ld hl, GameTimerPause
-	set 7, [hl]
-	ret
-
-Function8916e: ; 8916e (22:516e)
-	ld hl, GameTimerPause
-	res 7, [hl]
-	ret
-
-Function89174: ; 89174 (22:5174)
-	ld hl, GameTimerPause
-	bit 7, [hl]
-	ret
-
-Function8917a: ; 8917a (22:517a)
-	ld hl, wd002
-	ld bc, $32
-	xor a
-	call ByteFill
-	ret
-
-Function89185: ; 89185 (22:5185)
-; strcmp(hl, de, c)
-; Compares c bytes starting at de and hl and incrementing together until a mismatch is found.
-; Preserves hl and de.
-	push de
-	push hl
-.loop
-	ld a, [de]
-	inc de
-	cp [hl]
-	jr nz, .done
-	inc hl
-	dec c
-	jr nz, .loop
-.done
-	pop hl
-	pop de
-	ret
-
-Function89193: ; 89193
-; copy(hl, de, 4)
-; Copies c bytes from hl to de.
-; Preserves hl and de.
-	push de
-	push hl
-.loop
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .loop
-	pop hl
-	pop de
-	ret
-; 8919e
-
-
-Function8919e: ; 8919e (22:519e)
-; Searches for the c'th string starting at de.  Returns the pointer in de.
-	ld a, c
-	and a
-	ret z
-.loop
-	ld a, [de]
-	inc de
-	cp "@"
-	jr nz, .loop
-	dec c
-	jr nz, .loop
-	ret
-
-Function891ab: ; 891ab
-	call Mobile22_SetBGMapMode1
-	callba ReloadMapPart
-	call Mobile22_SetBGMapMode0
-	ret
-; 891b8
-
-Function891b8: ; 891b8
-	call Mobile22_SetBGMapMode0
-	hlcoord 0, 0
-	ld a, " "
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	call DelayFrame
-	ret
-; 891ca
-
-
-Function891ca: ; 891ca (22:51ca)
-	push bc
-	call Function891b8
-	call WaitBGMap
-	pop bc
-	ret
-
-Function891d3: ; 891d3 (22:51d3)
-	push bc
-	call Function891ca
-	ld c, $10
-	call DelayFrames
-	pop bc
-	ret
-
-Function891de: ; 891de
-	call Mobile22_SetBGMapMode0
-	call ClearPalettes
-	hlcoord 0, 0, AttrMap
-	ld a, $7
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	hlcoord 0, 0
-	ld a, " "
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	call Function891ab
-	ret
-; 891fe
-
-Function891fe: ; 891fe
-	push bc
-	call Function891de
-	ld c, $10
-	call DelayFrames
-	pop bc
-	ret
-; 89209
-
-Function89209: ; 89209
-	ld a, 1
-	ld [wSpriteUpdatesEnabled], a
-	ret
-; 8920f
-
-Function8920f: ; 8920f
-	ld a, 0
-	ld [wSpriteUpdatesEnabled], a
-	ret
-; 89215
-
-Function89215: ; 89215
-	push hl
-	push bc
-	ld bc, AttrMap - TileMap
-	add hl, bc
-	ld [hl], a
-	pop bc
-	pop hl
-	ret
-; 8921f
-
-
-Function8921f: ; 8921f (22:521f)
-	push de
-	ld de, SCREEN_WIDTH
-	add hl, de
-	inc hl
-	ld a, $7f
-.loop
-	push bc
-	push hl
-.asm_89229
-	ld [hli], a
-	dec c
-	jr nz, .asm_89229
-	pop hl
-	add hl, de
-	pop bc
-	dec b
-	jr nz, .loop
-	pop de
-	ret
-
-Mobile22_ButtonSound: ; 89235 (22:5235)
-	call JoyWaitAorB
-	call PlayClickSFX
-	ret
-
-Mobile22_SetBGMapMode0: ; 8923c
-	xor a
-	ld [hBGMapMode], a
-	ret
-; 89240
-
-Mobile22_SetBGMapMode1: ; 89240
-	ld a, $1
-	ld [hBGMapMode], a
-	ret
-; 89245
-
-
-Function89245: ; 89245 (22:5245)
-	callba TryLoadSaveFile
-	ret c
-	callba _LoadData
-	and a
-	ret
-
-Function89254: ; 89254 (22:5254)
-	ld bc, $d07
-	jr Function89261
-
-Function89259: ; 89259
-	ld bc, $0e07
-	jr Function89261
-
-Function8925e: ; 8925e
-	ld bc, $0e0c
-
-Function89261: ; 89261
-	push af
-	push bc
-	ld hl, MenuDataHeader_0x892a3
-	call CopyMenuDataHeader
-	pop bc
-	ld hl, wMenuBorderTopCoord
-	ld a, c
-	ld [hli], a
-	ld a, b
-	ld [hli], a
-	ld a, c
-	add $4
-	ld [hli], a
-	ld a, b
-	add $5
-	ld [hl], a
-	pop af
-	ld [wMenuCursorBuffer], a
-	call PushWindow
-	call Mobile22_SetBGMapMode0
-	call Function89209
-	call VerticalMenu
-	push af
-	ld c, $a
-	call DelayFrames
-	call CloseWindow
-	call Function8920f
-	pop af
-	jr c, .done
-	ld a, [wMenuCursorY]
-	cp $2
-	jr z, .done
-	and a
-	ret
-
-.done
-	scf
-	ret
-; 892a3
-
-MenuDataHeader_0x892a3: ; 0x892a3
-	db $40 ; flags
-	db 05, 10 ; start coords
-	db 09, 15 ; end coords
-	dw MenuData2_0x892ab
-	db 1 ; default option
-; 0x892ab
-
-MenuData2_0x892ab: ; 0x892ab
-	db $c0 ; flags
-	db 2 ; items
-	db "はい@"
-	db "いいえ@"
-; 0x892b4
-
-Function892b4: ; 892b4 (22:52b4)
-	call Function8931b
-
-Function892b7: ; 892b7
-	ld d, b
-	ld e, c
-	ld hl, 0
-	add hl, bc
-	ld a, "@"
-	ld bc, 6
-	call ByteFill
-	ld b, d
-	ld c, e
-	ld hl, 6
-	add hl, bc
-	ld a, "@"
-	ld bc, 6
-	call ByteFill
-	ld b, d
-	ld c, e
-	ld hl, 12
-	add hl, bc
-	xor a
-	ld [hli], a
-	ld [hl], a
-	ld hl, 14
-	add hl, bc
-	ld [hli], a
-	ld [hl], a
-	ld hl, 16
-	add hl, bc
-	ld [hl], a
-	ld hl, 17
-	add hl, bc
-	ld a, -1
-	ld bc, 8
-	call ByteFill
-	ld b, d
-	ld c, e
-	ld e, 6
-	ld hl, 25
-	add hl, bc
-.loop
-	ld a, -1
-	ld [hli], a
-	ld a, -1
-	ld [hli], a
-	dec e
-	jr nz, .loop
-	ret
-; 89305
-
-
-Function89305: ; 89305 (22:5305)
-	xor a
-	ld [MenuSelection], a
-	ld c, 40
-.loop
-	ld a, [MenuSelection]
-	inc a
-	ld [MenuSelection], a
-	push bc
-	call Function892b4
-	pop bc
-	dec c
-	jr nz, .loop
-	ret
-
-Function8931b: ; 8931b
-	push hl
-	ld hl, $a03b ; 4:a03b
-	ld a, [MenuSelection]
-	dec a
-	ld bc, 37
-	call AddNTimes
-	ld b, h
-	ld c, l
-	pop hl
-	ret
-; 8932d
-
-Function8932d: ; 8932d
-	ld hl, 0
-	add hl, bc
-
-Function89331: ; 89331
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.
-; Sets carry if it does not find a nonspace character.
-; Returns the location of the following character in hl.
-	push bc
-	ld c, 5
-.loop
-	ld a, [hli]
-	cp "@"
-	jr z, .terminator
-	cp " "
-	jr nz, .nonspace
-	dec c
-	jr nz, .loop
-
-.terminator
-	scf
-	jr .done
-
-.nonspace
-	and a
-
-.done
-	pop bc
-	ret
-; 89346
-
-
-Function89346: ; 89346 (22:5346)
-	ld h, b
-	ld l, c
-	jr _incave
-
-Function8934a: ; 8934a
-	ld hl, 6
-	add hl, bc
-_incave:
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.  Sets carry if it does not find a nonspace character.  Returns the location of the following character in hl.
-	push bc
-	ld c, 5
-.loop
-	ld a, [hli]
-	cp "@"
-	jr z, .terminator
-	cp " "
-	jr nz, .nonspace
-	dec c
-	jr nz, .loop
-
-.terminator
-	scf
-	jr .done
-
-.nonspace
-	and a
-
-.done
-	pop bc
-	ret
-; 89363
-
-Function89363: ; 89363
-; Scans six byte pairs starting at bc to find $ff.  Sets carry if it does not find a $ff.  Returns the location of the byte after the first $ff found in hl.
-	ld h, b
-	ld l, c
-	jr ._incave
-
-	ld hl, 25
-	add hl, bc
-
-._incave
-	push de
-	ld e, 6
-.loop
-	ld a, [hli]
-	cp -1
-	jr nz, .ok
-	ld a, [hli]
-	cp -1
-	jr nz, .ok
-	dec e
-	jr nz, .loop
-	scf
-	jr .done
-
-.ok
-	and a
-
-.done
-	pop de
-	ret
-; 89381
-
-Function89381: ; 89381
-	push bc
-	push de
-	call Function89b45
-	jr c, .ok
-	push hl
-	ld a, -1
-	ld bc, 8
-	call ByteFill
-	pop hl
-
-.ok
-	pop de
-	ld c, 8
-	call Function89193
-	pop bc
-	ret
-; 8939a
-
-Function8939a: ; 8939a
-	push bc
-	ld hl, 0
-	add hl, bc
-	ld de, wd002
-	ld c, 6
-	call Function89193
-	pop bc
-	ld hl, 17
-	add hl, bc
-	ld de, wd008
-	call Function89381
-	ret
-; 893b3
-
-
-Function893b3: ; 893b3 (22:53b3)
-	call DisableLCD
-	call ClearSprites
-	call LoadStandardFont
-	call LoadFontsExtra
-	call Function893ef
-	call Function8942b
-	call Function89455
-	call EnableLCD
-	ret
-
-Function893cc: ; 893cc
-	call DisableLCD
-	call ClearSprites
-	call LoadStandardFont
-	call LoadFontsExtra
-	call Function893ef
-	call Function89464
-	call EnableLCD
-	ret
-; 893e2
-
-
-Function893e2: ; 893e2 (22:53e2)
-	call Function89b1e
-	call Function893b3
-	call Function8a5b6
-	call Function8949c
-	ret
-
-Function893ef: ; 893ef
-	ld de, VTiles0
-	ld hl, GFX_8940b
-	ld bc, $20
-	ld a, BANK(GFX_8940b)
-	call FarCopyBytes
-	ret
-; 893fe
-
-Function893fe: ; 893fe
-	call DisableLCD
-	call Function893ef
-	call EnableLCD
-	call DelayFrame
-	ret
-; 8940b
-
-GFX_8940b: ; 8940b
-INCBIN "gfx/unknown/08940b.2bpp"
-; 8942b
-
-Function8942b: ; 8942b (22:542b)
-	ld de, VTiles0 tile $02
-	ld hl, MobileAdapterGFX + $7d0
-	ld bc, $80
-	ld a, BANK(MobileAdapterGFX)
-	call FarCopyBytes
-	ld de, VTiles0 tile $0a
-	ld hl, MobileAdapterGFX + $c60
-	ld bc, $40
-	ld a, BANK(MobileAdapterGFX)
-	call FarCopyBytes
-	ret
-
-Function89448: ; 89448 (22:5448)
-; Clears the Sprites array
-	push af
-	ld hl, Sprites
-	ld d, $10 * 6
-	xor a
-.loop
-	ld [hli], a
-	dec d
-	jr nz, .loop
-	pop af
-	ret
-
-Function89455: ; 89455 (22:5455)
-	ld hl, MobileAdapterGFX + $7d0
-	ld de, VTiles2 tile $0c
-	ld bc, $490
-	ld a, BANK(MobileAdapterGFX)
-	call FarCopyBytes
-	ret
-
-Function89464: ; 89464
-	ld hl, MobileAdapterGFX
-	ld de, VTiles2
-	ld bc, $200
-	ld a, BANK(MobileAdapterGFX)
-	call FarCopyBytes
-	ld hl, MobileAdapterGFX + $660
-	ld de, VTiles2 tile $20
-	ld bc, $170
-	ld a, BANK(MobileAdapterGFX)
-	call FarCopyBytes
-	ret
-; 89481
-
-Function89481: ; 89481
-	ld d, 2
-	call Function8934a
-	ret c
-	ld d, 0
-	ld hl, 16
-	add hl, bc
-	bit 0, [hl]
-	ret z
-	inc d
-	ret
-; 89492
-
-
-Function89492: ; 89492 (22:5492)
-	ld d, 0
-	ld a, [PlayerGender]
-	bit 0, a
-	ret z
-	inc d
-	ret
-
-Function8949c: ; 8949c
-	ld a, [rSVBK]
-	push af
-	ld a, 5
-	ld [rSVBK], a
-	ld hl, Palette_894b3
-	ld de, UnknBGPals + 8 * 7
-	ld bc, 8
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	ret
-; 894b3
-
-Palette_894b3: ; 894b3
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 00, 00, 00
-; 894bb
-
-Function894bb: ; 894bb
-	call Function894dc
-	push bc
-	call Function8956f
-	call Function8949c
-	call Function8a60d
-	pop bc
-	ret
-; 894ca
-
-
-Function894ca: ; 894ca (22:54ca)
-	push bc
-	call Function894dc
-	call Function895c7
-	call Function8949c
-	call Function8a60d
-	call SetPalettes
-	pop bc
-	ret
-
-Function894dc: ; 894dc
-	push bc
-	ld a, [rSVBK]
-	push af
-	ld a, 5
-	ld [rSVBK], a
-
-	ld c, d
-	ld b, 0
-	ld hl, .PalettePointers
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld de, UnknBGPals
-	ld bc, 3 palettes
-	call CopyBytes
-	ld hl, .Pals345
-	ld de, UnknBGPals + 3 palettes
-	ld bc, 3 palettes
-	call CopyBytes
-
-	pop af
-	ld [rSVBK], a
-	pop bc
-	ret
-; 89509
-
-.PalettePointers: ; 89509
-	dw .Pals012a
-	dw .Pals012b
-	dw .Pals012c
-; 8950f
-
-.Pals012a: ; 8950f
-	RGB 31, 31, 31
-	RGB 10, 17, 13
-	RGB 10, 08, 22
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 16, 20, 31
-	RGB 10, 08, 22
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 16, 20, 31
-	RGB 10, 17, 13
-	RGB 00, 00, 00
-
-.Pals012b: ; 89527
-	RGB 31, 31, 31
-	RGB 30, 22, 11
-	RGB 31, 08, 15
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 16, 20, 31
-	RGB 31, 08, 15
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 16, 20, 31
-	RGB 30, 22, 11
-	RGB 00, 00, 00
-
-.Pals012c: ; 8953f
-	RGB 31, 31, 31
-	RGB 15, 20, 26
-	RGB 25, 07, 20
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 16, 20, 31
-	RGB 25, 07, 20
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 16, 20, 31
-	RGB 15, 20, 26
-	RGB 00, 00, 00
-
-.Pals345: ; 89557
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 31, 13, 00
-	RGB 14, 08, 00
-
-	RGB 31, 31, 31
-	RGB 16, 16, 31
-	RGB 00, 00, 31
-	RGB 00, 00, 00
-
-	RGB 19, 31, 11
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-; 8956f
-
-Function8956f: ; 8956f
-	push bc
-	ld hl, 16
-	add hl, bc
-	ld d, h
-	ld e, l
-	ld hl, $000c
-	add hl, bc
-	ld b, h
-	ld c, l
-	callba GetMobileOTTrainerClass
-	ld a, c
-	ld [TrainerClass], a
-	ld a, [rSVBK]
-	push af
-	ld a, 5
-	ld [rSVBK], a
-	ld hl, wd030
-	ld a, -1
-	ld [hli], a
-	ld a, " "
-	ld [hl], a
-	pop af
-	ld [rSVBK], a
-	ld a, [TrainerClass]
-	ld h, 0
-	ld l, a
-	add hl, hl
-	add hl, hl
-	ld de, TrainerPalettes
-	add hl, de
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld de, wd032
-	ld c, 4
-.loop
-	ld a, BANK(TrainerPalettes)
-	call GetFarByte
-	ld [de], a
-	inc de
-	inc hl
-	dec c
-	jr nz, .loop
-	ld hl, wd036
-	xor a
-	ld [hli], a
-	ld [hl], a
-	pop af
-	ld [rSVBK], a
-	pop bc
-	ret
-; 895c7
-
-
-Function895c7: ; 895c7 (22:55c7)
-	ld a, [rSVBK]
-	push af
-	ld a, 5
-	ld [rSVBK], a
-	ld hl, Palette_895de
-	ld de, wd030
-	ld bc, 8
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	ret
-; 895de (22:55de)
-
-Palette_895de: ; 895de
-	RGB 31, 31, 31
-	RGB 07, 07, 06
-	RGB 07, 07, 06
-	RGB 00, 00, 00
-; 895e6
-
-Function895e6: ; 895e6
-	ld a, 7
-	hlcoord 0, 0, AttrMap
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	ret
-; 895f2
-
-Function895f2: ; 895f2
-	push bc
-	xor a
-	hlcoord 0, 0, AttrMap
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	call Function89605
-	call Function89655
-	pop bc
-	ret
-; 89605
-
-Function89605: ; 89605
-	hlcoord 19, 2, AttrMap
-	ld a, 1
-	ld de, SCREEN_WIDTH
-	ld c, 14
-.loop
-	ld [hl], a
-	dec c
-	jr z, .done
-	add hl, de
-	inc a
-	ld [hl], a
-	dec a
-	add hl, de
-	dec c
-	jr nz, .loop
-
-.done
-	hlcoord 0, 16, AttrMap
-	ld c, 10
-	ld a, 2
-.loop2
-	ld [hli], a
-	dec a
-	ld [hli], a
-	inc a
-	dec c
-	jr nz, .loop2
-	hlcoord 1, 11, AttrMap
-	ld a, 4
-	ld bc, 4
-	call ByteFill
-	ld a, 5
-	ld bc, 14
-	call ByteFill
-	ret
-; 8963d
-
-Function8963d: ; 8963d
-	hlcoord 12, 3, AttrMap
-	ld a, 6
-	ld de, SCREEN_WIDTH
-	lb bc, 7, 7
-.loop
-	push hl
-	ld c, 7
-.next
-	ld [hli], a
-	dec c
-	jr nz, .next
-	pop hl
-	add hl, de
-	dec b
-	jr nz, .loop
-	ret
-; 89655
-
-Function89655: ; 89655
-	hlcoord 1, 12, AttrMap
-	ld de, SCREEN_WIDTH
-	ld a, 5
-	ld b, 4
-.loop
-	ld c, 18
-	push hl
-.next
-	ld [hli], a
-	dec c
-	jr nz, .next
-	pop hl
-	add hl, de
-	dec b
-	jr nz, .loop
-	ret
-; 8966c
-
-Function8966c: ; 8966c
-	push bc
-	call Function89688
-	hlcoord 4, 0
-	ld c, 8
-	call Function896f5
-	pop bc
-	ret
-; 8967a
-
-
-Function8967a: ; 8967a (22:567a)
-	push bc
-	call Function89688
-	hlcoord 2, 0
-	ld c, 12
-	call Function896f5
-	pop bc
-	ret
-
-Function89688: ; 89688
-	hlcoord 0, 0
-	ld a, 1
-	ld e, SCREEN_WIDTH
-	call Function896e1
-	ld a, 2
-	ld e, SCREEN_WIDTH
-	call Function896eb
-	ld a, 3
-	ld [hli], a
-	ld a, 4
-	ld e, SCREEN_HEIGHT
-	call Function896e1
-	ld a, 6
-	ld [hli], a
-	push bc
-	ld c, 13
-.loop
-	call Function896cb
-	dec c
-	jr z, .done
-	call Function896d6
-	dec c
-	jr nz, .loop
-
-.done
-	pop bc
-	ld a, 25
-	ld [hli], a
-	ld a, 26
-	ld e, SCREEN_HEIGHT
-	call Function896e1
-	ld a, 28
-	ld [hli], a
-	ld a, 2
-	ld e, SCREEN_WIDTH
-	call Function896eb
-	ret
-; 896cb
-
-Function896cb: ; 896cb
-	ld de, SCREEN_WIDTH - 1
-	ld a, 7
-	ld [hl], a
-	add hl, de
-	ld a, 9
-	ld [hli], a
-	ret
-; 896d6
-
-Function896d6: ; 896d6
-	ld de, SCREEN_WIDTH - 1
-	ld a, 10
-	ld [hl], a
-	add hl, de
-	ld a, 11
-	ld [hli], a
-	ret
-; 896e1
-
-Function896e1: ; 896e1
-.loop
-	ld [hli], a
-	inc a
-	dec e
-	ret z
-	ld [hli], a
-	dec a
-	dec e
-	jr nz, .loop
-	ret
-; 896eb
-
-Function896eb: ; 896eb
-.loop
-	ld [hli], a
-	dec a
-	dec e
-	ret z
-	ld [hli], a
-	inc a
-	dec e
-	jr nz, .loop
-	ret
-; 896f5
-
-Function896f5: ; 896f5
-	call Function8971f
-	call Function89736
-	inc hl
-	inc hl
-	ld b, 2
-
-ClearScreenArea: ; 0x896ff
-; clears an area of the screen
-; INPUT:
-; hl = address of upper left corner of the area
-; b = height
-; c = width
-
-	ld a, " " ; blank tile
-	ld de, 20 ; screen width
-.loop
-	push bc
-	push hl
-.innerLoop
-	ld [hli], a
-	dec c
-	jr nz, .innerLoop
-	pop hl
-	pop bc
-	add hl, de
-	dec b
-	jr nz, .loop
-
-	dec hl
-	inc c
-	inc c
-.asm_89713
-	ld a, $36
-	ld [hli], a
-	dec c
-	ret z
-	ld a, $18
-	ld [hli], a
-	dec c
-	jr nz, .asm_89713 ; 0x8971c $f5
-	ret
-; 0x8971f
-
-Function8971f: ; 8971f
-	ld a, $2c
-	ld [hli], a
-	ld a, $2d
-	ld [hld], a
-	push hl
-	ld de, SCREEN_WIDTH
-	add hl, de
-	ld a, $31
-	ld [hli], a
-	ld a, $32
-	ld [hld], a
-	add hl, de
-	ld a, $35
-	ld [hl], a
-	pop hl
-	ret
-; 89736
-
-Function89736: ; 89736
-	push hl
-	inc hl
-	inc hl
-	ld e, c
-	ld d, $0
-	add hl, de
-	ld a, $2f
-	ld [hli], a
-	ld a, $30
-	ld [hld], a
-	ld de, SCREEN_WIDTH
-	add hl, de
-	ld a, $33
-	ld [hli], a
-	ld a, $34
-	ld [hl], a
-	add hl, de
-	ld a, $1f
-	ld [hl], a
-	pop hl
-	ret
-; 89753
-
-Function89753: ; 89753
-	ld a, $c
-	ld [hl], a
-	xor a
-	call Function89215
-	ret
-; 8975b
-
-Function8975b: ; 8975b
-	ld a, $1d
-	ld [hli], a
-	inc a
-	ld [hli], a
-	ld a, $d
-	ld [hl], a
-	dec hl
-	dec hl
-	ld a, $4
-	ld e, $3
-.asm_89769
-	call Function89215
-	inc hl
-	dec e
-	jr nz, .asm_89769
-	ret
-; 89771
-
-Function89771: ; 89771
-	ld a, $12
-	ld [hl], a
-	ld a, $3
-	call Function89215
-	ret
-; 8977a
-
-Function8977a: ; 8977a
-	ld e, $4
-	ld d, $13
-.asm_8977e
-	ld a, d
-	ld [hl], a
-	ld a, $4
-	call Function89215
-	inc hl
-	inc d
-	dec e
-	jr nz, .asm_8977e
-	ld e, $e
-.asm_8978c
-	ld a, d
-	ld [hl], a
-	xor a
-	call Function89215
-	inc hl
-	dec e
-	jr nz, .asm_8978c
-	ret
-; 89797
-
-Function89797: ; 89797
-	push bc
-	ld a, $e
-	ld [hl], a
-	ld bc, SCREEN_WIDTH
-	add hl, bc
-	ld a, $11
-	ld [hli], a
-	ld a, $10
-	ld c, $8
-.asm_897a6
-	ld [hli], a
-	dec c
-	jr nz, .asm_897a6
-	ld a, $f
-	ld [hl], a
-	pop bc
-	ret
-; 897af
-
-Function897af: ; 897af
-	push bc
-	ld hl, $0010
-	add hl, bc
-	ld d, h
-	ld e, l
-	ld hl, $000c
-	add hl, bc
-	ld b, h
-	ld c, l
-	callba GetMobileOTTrainerClass
-	ld a, c
-	ld [TrainerClass], a
-	xor a
-	ld [CurPartySpecies], a
-	ld de, VTiles2 tile $37
-	callba GetTrainerPic
-	pop bc
-	ret
-; 897d5
-
-Function897d5: ; 897d5
-	push bc
-	call Function8934a
-	jr nc, .asm_897f3
-	hlcoord 12, 3, AttrMap
-	xor a
-	ld de, SCREEN_WIDTH
-	lb bc, 7, 7
-.asm_897e5
-	push hl
-	ld c, $7
-.asm_897e8
-	ld [hli], a
-	dec c
-	jr nz, .asm_897e8
-	pop hl
-	add hl, de
-	dec b
-	jr nz, .asm_897e5
-	pop bc
-	ret
-
-.asm_897f3
-	ld a, $37
-	ld [hGraphicStartTile], a
-	hlcoord 12, 3
-	lb bc, 7, 7
-	predef PlaceGraphic
-	call Function8963d
-	pop bc
-	ret
-; 89807
-
-
-Function89807: ; 89807 (22:5807)
-	ld hl, MobileAdapterGFX + $200
-	ld a, [PlayerGender]
-	bit 0, a
-	jr z, .asm_89814
-	ld hl, MobileAdapterGFX + $200 + $230
-.asm_89814
-	call DisableLCD
-	ld de, VTiles2 tile $37
-	ld bc, $230
-	ld a, BANK(MobileAdapterGFX)
-	call FarCopyBytes
-	call EnableLCD
-	call DelayFrame
-	ret
-
-Function89829: ; 89829 (22:5829)
-	push bc
-	ld bc, $705
-	ld de, $14
-	ld a, $37
-.asm_89832
-	push bc
-	push hl
-.asm_89834
-	ld [hli], a
-	inc a
-	dec c
-	jr nz, .asm_89834
-	pop hl
-	add hl, de
-	pop bc
-	dec b
-	jr nz, .asm_89832
-	call Function8963d
-	pop bc
-	ret
-
-Function89844: ; 89844
-	call Function89481
-	call Function894bb
-	call Function897af
-	push bc
-	call WaitBGMap2
-	call SetPalettes
-	pop bc
-	ret
-; 89856
-
-Function89856: ; 89856
-	push bc
-	call Function891b8
-	pop bc
-	call Function895f2
-	call Function8966c
-	call Function899d3
-	call Function898aa
-	call Function898be
-	call Function898dc
-	call Function898f3
-	push bc
-	ld bc, wd008
-	hlcoord 2, 10
-	call Function89975
-	pop bc
-	call Function897d5
-	ret
-; 8987f
-
-
-Function8987f: ; 8987f (22:587f)
-	call Function891b8
-	call Function895f2
-	call Function8967a
-	call Function899d3
-	hlcoord 5, 1
-	call Function8999c
-	hlcoord 13, 3
-	call Function89829
-	call Function899b2
-	hlcoord 5, 5
-	call Function899c9
-	ld bc, wd008
-	hlcoord 2, 10
-	call Function89975
-	ret
-
-Function898aa: ; 898aa
-	ld a, [MenuSelection]
-	and a
-	ret z
-	push bc
-	hlcoord 6, 1
-	ld de, MenuSelection
-	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
-	call PrintNum
-	pop bc
-	ret
-; 898be
-
-Function898be: ; 898be
-	push bc
-	ld de, wd002
-	ld hl, wd002
-	call Function89331
-	jr nc, .asm_898cd
-	ld de, String_89116
-
-.asm_898cd
-	hlcoord 9, 1
-	ld a, [MenuSelection]
-	and a
-	jr nz, .asm_898d7
-	dec hl
-
-.asm_898d7
-	call PlaceString
-	pop bc
-	ret
-; 898dc
-
-Function898dc: ; 898dc
-	ld hl, $0006
-	add hl, bc
-	push bc
-	ld d, h
-	ld e, l
-	call Function8934a
-	jr nc, .asm_898eb
-	ld de, String_89116
-
-.asm_898eb
-	hlcoord 6, 4
-	call PlaceString
-	pop bc
-	ret
-; 898f3
-
-Function898f3: ; 898f3
-	push bc
-	ld hl, $000c
-	add hl, bc
-	ld d, h
-	ld e, l
-	call Function8934a
-	jr c, .asm_8990a
-	hlcoord 5, 5
-	lb bc, PRINTNUM_LEADINGZEROS | 2, 5
-	call PrintNum
-	jr .asm_89913
-
-.asm_8990a
-	hlcoord 5, 5
-	ld de, String_89116
-	call PlaceString
-
-.asm_89913
-	pop bc
-	ret
-; 89915
-
-Function89915: ; 89915
-	push bc
-	push hl
-	ld de, Unknown_89942
-	ld c, $8
-.asm_8991c
-	ld a, [de]
-	ld [hl], a
-	ld a, $4
-	call Function89215
-	inc hl
-	inc de
-	dec c
-	jr nz, .asm_8991c
-	pop hl
-	ld b, $4
-	ld c, $2b
-	ld a, $8
-	ld de, Unknown_8994a
-.asm_89932
-	push af
-	ld a, [de]
-	cp [hl]
-	jr nz, .asm_8993b
-	call Function8994e
-	inc de
-
-.asm_8993b
-	inc hl
-	pop af
-	dec a
-	jr nz, .asm_89932
-	pop bc
-	ret
-; 89942
-
-Unknown_89942: ; 89942
-	db $24, $25, $26, " ", $27, $28, $29, $2a
-Unknown_8994a: ; 8994a
-	db $24, $27, $29, $ff
-; 8994e
-
-Function8994e: ; 8994e
-	push hl
-	push de
-	ld de, SCREEN_WIDTH
-	ld a, l
-	sub e
-	ld l, a
-	ld a, h
-	sbc d
-	ld h, a
-	ld a, c
-	ld [hl], a
-	ld a, b
-	call Function89215
-	pop de
-	pop hl
-	ret
-; 89962
-
-Function89962: ; 89962
-	push bc
-	ld c, $4
-	ld b, $20
-.asm_89967
-	ld a, b
-	ld [hl], a
-	ld a, $4
-	call Function89215
-	inc hl
-	inc b
-	dec c
-	jr nz, .asm_89967
-	pop bc
-	ret
-; 89975
-
-Function89975: ; 89975
-	push bc
-	ld e, $8
-.asm_89978
-	ld a, [bc]
-	ld d, a
-	call Function8998b
-	swap d
-	inc hl
-	ld a, d
-	call Function8998b
-	inc bc
-	inc hl
-	dec e
-	jr nz, .asm_89978
-	pop bc
-	ret
-; 8998b
-
-Function8998b: ; 8998b
-	push bc
-	and $f
-	cp $a
-	jr nc, .asm_89997
-	ld c, $f6
-	add c
-	jr .asm_89999
-
-.asm_89997
-	ld a, $7f
-
-.asm_89999
-	ld [hl], a
-	pop bc
-	ret
-; 8999c
-
-
-Function8999c: ; 8999c (22:599c)
-	ld de, PlayerName
-	call PlaceString
-	inc bc
-	ld h, b
-	ld l, c
-	ld de, String_899ac
-	call PlaceString
-	ret
-; 899ac (22:59ac)
-
-String_899ac: ; 899ac
-	db "の めいし@"
-; 899b2
-
-Function899b2: ; 899b2 (22:59b2)
-	ld bc, PlayerName
-	call Function89346
-	jr c, .asm_899bf
-	ld de, PlayerName
-	jr .asm_899c2
-.asm_899bf
-	ld de, String_89116
-.asm_899c2
-	hlcoord 6, 4
-	call PlaceString
-	ret
-
-Function899c9: ; 899c9 (22:59c9)
-	ld de, PlayerID
-	lb bc, PRINTNUM_LEADINGZEROS | 2, 5
-	call PrintNum
-	ret
-
-Function899d3: ; 899d3
-	hlcoord 1, 4
-	call Function89753
-	hlcoord 2, 5
-	call Function8975b
-	hlcoord 1, 9
-	call Function89771
-	hlcoord 1, 11
-	call Function8977a
-	hlcoord 1, 5
-	call Function89797
-	hlcoord 2, 4
-	call Function89962
-	hlcoord 2, 9
-	call Function89915
-	ret
-; 899fe
-
-Function899fe: ; 899fe
-	push bc
-	push hl
-	ld hl, $0019
-	add hl, bc
-	ld b, h
-	ld c, l
-	pop hl
-	call Function89a0c
-	pop bc
-	ret
-; 89a0c
-
-Function89a0c: ; 89a0c
-	push hl
-	call Function89363
-	pop hl
-	jr c, .asm_89a1c
-	ld d, h
-	ld e, l
-	callba Function11c08f
-	ret
-
-.asm_89a1c
-	ld de, String_89153
-	call PlaceString
-	ret
-; 89a23
-
-
-Function89a23: ; 89a23 (22:5a23)
-	hlcoord 0, 11
-	ld b, $4
-	ld c, $12
-	call Function8921f
-	ret
-
-Function89a2e: ; 89a2e (22:5a2e)
-	hlcoord 11, 12
-	ld b, $2
-	ld c, $6
-	call TextBox
-	hlcoord 13, 13
-	ld de, String_89a4e
-	call PlaceString
-	hlcoord 13, 14
-	ld de, String_89a53
-	call PlaceString
-	call Function89655
-	ret
-; 89a4e (22:5a4e)
-
-String_89a4e: ; 89a4e
-	db "けってい@"
-; 89a53
-
-String_89a53: ; 89a53
-	db "やめる@"
-; 89a57
-
-Function89a57: ; 89a57
-	call JoyTextDelay_ForcehJoyDown ; joypad
-	bit D_UP_F, c
-	jr nz, .d_up
-	bit D_DOWN_F, c
-	jr nz, .d_down
-	bit A_BUTTON_F, c
-	jr nz, .a_b_button
-	bit B_BUTTON_F, c
-	jr nz, .a_b_button
-	bit START_F, c
-	jr nz, .start_button
-	scf
-	ret
-
-.a_b_button
-	ld a, $1
-	and a
-	ret
-
-.start_button
-	ld a, $2
-	and a
-	ret
-
-.d_up
-	call .MoveCursorUp
-	call nc, .PlayPocketSwitchSFX
-	ld a, $0
-	ret
-
-.d_down
-	call .MoveCursorDown
-	call nc, .PlayPocketSwitchSFX
-	ld a, $0
-	ret
-; 89a8a
-
-.PlayPocketSwitchSFX: ; 89a8a
-	push af
-	ld de, SFX_SWITCH_POCKETS
-	call PlaySFX
-	pop af
-	ret
-; 89a93
-
-.MoveCursorDown: ; 89a93
-	ld d, 40
-	ld e,  1
-	call .ApplyCursorMovement
-	ret
-; 89a9b
-
-.MoveCursorUp: ; 89a9b
-	ld d,  1
-	ld e, -1
-	call .ApplyCursorMovement
-	ret
-; 89aa3
-
-.ApplyCursorMovement: ; 89aa3
-	ld a, [MenuSelection]
-	ld c, a
-	push bc
-.loop
-	ld a, [MenuSelection]
-	cp d
-	jr z, .equal_to_d
-	add e
-	jr nz, .not_zero
-	inc a
-
-.not_zero
-	ld [MenuSelection], a
-	call .Function89ac7 ; BCD conversion of data in SRAM?
-	jr nc, .loop
-	call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5
-	pop bc
-	and a
-	ret
-
-.equal_to_d
-	pop bc
-	ld a, c
-	ld [MenuSelection], a
-	scf
-	ret
-; 89ac7
-
-.Function89ac7: ; 89ac7
-	call OpenSRAMBank4
-	call Function8931b
-	call .Function89ad4
-	call CloseSRAM
-	ret
-; 89ad4
-
-.Function89ad4: ; 89ad4
-	push de
-	call Function8932d ; find a non-space character within 5 bytes of bc
-	jr c, .no_nonspace_character
-	ld hl, 17
-	add hl, bc
-	call Function89b45
-	jr c, .finish_decode
-
-.no_nonspace_character
-	and a
-
-.finish_decode
-	pop de
-	ret
-; 89ae6
-
-.Function89ae6: ; 89ae6
-	ld hl, wd031
-	xor a
-	ld [hl], a
-	ld a, [MenuSelection]
-.loop2
-	cp 6
-	jr c, .load_and_ret
-	sub 5
-	ld c, a
-	ld a, [hl]
-	add 5
-	ld [hl], a
-	ld a, c
-	jr .loop2
-
-.load_and_ret
-	ld [wd030], a
-	ret
-; 89b00
-
-
-Function89b00: ; 89b00 (22:5b00)
-	callba MG_Mobile_Layout_LoadPals
-	ret
-; 89b07 (22:5b07)
-
-Function89b07: ; 89b07
-	call Mobile22_SetBGMapMode0
-	call DelayFrame
-	callba Function4a3a7
-	ret
-; 89b14
-
-Function89b14: ; 89b14
-	call ClearBGPalettes
-	call Function89b07
-	call Function89b00
-	ret
-; 89b1e
-
-Function89b1e: ; 89b1e (22:5b1e)
-	callba Function4a485
-	call Function89b00
-	ret
-
-Function89b28: ; 89b28 (22:5b28)
-	call Function891de
-	call ClearBGPalettes
-	call Function893e2
-	call Call_ExitMenu
-	call Function891ab
-	call SetPalettes
-	ret
-
-Function89b3b: ; 89b3b (22:5b3b)
-	call Mobile22_SetBGMapMode0
-	callba Function48cda
-	ret
-
-Function89b45: ; 89b45
-	; some sort of decoder?
-	; BCD?
-	push hl
-	push bc
-	ld c, $10
-	ld e, $0
-.loop
-	ld a, [hli]
-	ld b, a
-	and $f
-	cp 10
-	jr c, .low_nybble_less_than_10
-	ld a, c
-	cp $b
-	jr nc, .clear_carry
-	jr .set_carry
-
-.low_nybble_less_than_10
-	dec c
-	swap b
-	inc e
-	ld a, b
-	and $f
-	cp 10
-	jr c, .high_nybble_less_than_10
-	ld a, c
-	cp $b
-	jr nc, .clear_carry
-	jr .set_carry
-
-.high_nybble_less_than_10
-	inc e
-	dec c
-	jr nz, .loop
-	dec e
-
-.set_carry
-	scf
-	jr .finish
-
-.clear_carry
-	and a
-
-.finish
-	pop bc
-	pop hl
-	ret
-; 89b78
-
-
-Function89b78: ; 89b78 (22:5b78)
-	push bc
-	ld a, [wd010]
-	cp $10
-	jr c, .asm_89b8c
-	ld a, e
-	and a
-	jr z, .asm_89b89
-	ld c, e
-.asm_89b85
-	inc hl
-	dec c
-	jr nz, .asm_89b85
-.asm_89b89
-	ld a, $7f
-	ld [hl], a
-.asm_89b8c
-	ld a, [wd010]
-	inc a
-	and $1f
-	ld [wd010], a
-	pop bc
-	ret
-
-Function89b97: ; 89b97 (22:5b97)
-	call Function89c34
-	jr c, .asm_89ba0
-	call Function89448
-	ret
-.asm_89ba0
-	ld a, [wd011]
-	ld hl, Unknown_89bd8
-	and a
-	jr z, .asm_89bae
-.asm_89ba9
-	inc hl
-	inc hl
-	dec a
-	jr nz, .asm_89ba9
-.asm_89bae
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld de, Sprites
-.asm_89bb4
-	ld a, [hli]
-	cp $ff
-	ret z
-	ld c, a
-	ld b, $0
-.asm_89bbb
-	push hl
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	add b
-	ld [de], a
-	inc de
-	ld a, $8
-	add b
-	ld b, a
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	pop hl
-	dec c
-	jr nz, .asm_89bbb
-	ld b, $0
-	ld c, $4
-	add hl, bc
-	jr .asm_89bb4
-; 89bd8 (22:5bd8)
-
-Unknown_89bd8: ; 89bd8
-	dw Unknown_89be0
-	dw Unknown_89bf5
-	dw Unknown_89c0a
-	dw Unknown_89c1f
-; 89be0
-
-Unknown_89be0: ; 89be0
-	db $01, $12, $4e, $01, $00
-	db $01, $19, $4e, $01, $40
-	db $01, $12, $72, $01, $20
-	db $01, $19, $72, $01, $60
-	db $ff
-
-Unknown_89bf5: ; 89bf5
-	db $01, $60, $16, $01, $00
-	db $01, $62, $16, $01, $40
-	db $01, $60, $92, $01, $20
-	db $01, $62, $92, $01, $60
-	db $ff
-
-Unknown_89c0a: ; 89c0a
-	db $01, $78, $66, $01, $00
-	db $01, $78, $66, $01, $40
-	db $01, $78, $92, $01, $20
-	db $01, $78, $92, $01, $60
-	db $ff
-
-Unknown_89c1f: ; 89c1f
-	db $01, $80, $66, $01, $00
-	db $01, $80, $66, $01, $40
-	db $01, $80, $92, $01, $20
-	db $01, $80, $92, $01, $60
-	db $ff
-; 89c34
-
-Function89c34: ; 89c34 (22:5c34)
-	push bc
-	ld a, [wd012]
-	ld c, a
-	inc a
-	and $f
-	ld [wd012], a
-	ld a, c
-	cp $8
-	pop bc
-	ret
-
-Function89c44: ; 89c44 (22:5c44)
-	call Function89c34
-	jr c, .asm_89c4f
-	push de
-	call Function89448
-	pop de
-	ret
-.asm_89c4f
-	ld hl, Sprites
-	push de
-	ld a, b
-	ld [hli], a
-	ld d, $8
-	ld a, e
-	and a
-	ld a, c
-	jr z, .asm_89c60
-.asm_89c5c
-	add d
-	dec e
-	jr nz, .asm_89c5c
-.asm_89c60
-	pop de
-	ld [hli], a
-	ld a, d
-	ld [hli], a
-	xor a
-	ld [hli], a
-	ret
-
-Function89c67: ; 89c67 (22:5c67)
-; menu scrolling?
-	call JoyTextDelay_ForcehJoyDown ; joypad
-	ld b, $0
-	bit A_BUTTON_F, c
-	jr z, .not_a_button
-	ld b, $1
-	and a
-	ret
-
-.not_a_button
-	bit B_BUTTON_F, c
-	jr z, .not_b_button
-	scf
-	ret
-
-.not_b_button
-	xor a
-	bit D_UP_F, c
-	jr z, .not_d_up
-	ld a, $1
-.not_d_up
-	bit D_DOWN_F, c
-	jr z, .not_d_down
-	ld a, $2
-.not_d_down
-	bit D_LEFT_F, c
-	jr z, .not_d_left
-	ld a, $3
-.not_d_left
-	bit D_RIGHT_F, c
-	jr z, .not_d_right
-	ld a, $4
-.not_d_right
-	and a
-	ret z ; no dpad pressed
-	dec a
-	ld c, a
-	ld d, $0
-	ld hl, .ScrollData0
-	ld a, [wd02f]
-	and a
-	jr z, .got_data
-	ld hl, .ScrollData1
-.got_data
-	ld a, [wd011]
-	and a
-	jr z, .got_row
-	ld e, $4
-.add_n_times
-	add hl, de
-	dec a
-	jr nz, .add_n_times
-.got_row
-	ld e, c
-	add hl, de
-	ld a, [hl]
-	and a
-	ret z
-	dec a
-	ld [wd011], a
-	xor a
-	ld [wd012], a
-	ret
-; 89cbf (22:5cbf)
-
-.ScrollData0: ; 89cbf
-	db 0, 2, 0, 0
-	db 1, 3, 0, 0
-	db 2, 4, 0, 0
-	db 3, 0, 0, 0
-
-.ScrollData1: ; 89ccf
-	db 0, 0, 0, 0
-	db 0, 3, 0, 0
-	db 2, 4, 0, 0
-	db 3, 0, 0, 0
-; 89cdf
-
-Function89cdf: ; 89cdf (22:5cdf)
-	ld a, $10
-	add b
-	ld b, a
-	ld a, $8
-	add c
-	ld c, a
-	ld e, $2
-	ld a, $2
-	ld hl, Sprites
-.asm_89cee
-	push af
-	push bc
-	ld d, $4
-.asm_89cf2
-	ld a, b
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld a, $1
-	ld [hli], a
-	ld a, $8
-	add c
-	ld c, a
-	inc e
-	dec d
-	jr nz, .asm_89cf2
-	pop bc
-	ld a, $8
-	add b
-	ld b, a
-	pop af
-	dec a
-	jr nz, .asm_89cee
-	ret
-
-Function89d0d: ; 89d0d (22:5d0d)
-	call Mobile22_SetBGMapMode0
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-
-	ld c, 8
-	ld de, UnknBGPals
-.loop
-	push bc
-	ld hl, .Palette1
-	ld bc, 1 palettes
-	call CopyBytes
-	pop bc
-	dec c
-	jr nz, .loop
-
-	ld hl, .Palette2
-	ld de, UnknBGPals + 2 palettes
-	ld bc, 1 palettes
-	call CopyBytes
-
-	pop af
-	ld [rSVBK], a
-
-	call SetPalettes
-	callba PrintMail_
-	call Mobile22_SetBGMapMode1
-	ld c, 24
-	call DelayFrames
-	call RestartMapMusic
-	ret
-; 89d4e (22:5d4e)
-
-.Palette1: ; 89d4e
-	RGB 31, 31, 31
-	RGB 19, 19, 19
-	RGB 15, 15, 15
-	RGB 00, 00, 00
-; 89d56
-
-.Palette2: ; 89d56
-	RGB 31, 31, 31
-	RGB 19, 19, 19
-	RGB 19, 19, 19
-	RGB 00, 00, 00
-; 89d5e
-
-Function89d5e: ; 89d5e (22:5d5e)
-	push af
-	call CopyMenuDataHeader
-	pop af
-	ld [wMenuCursorBuffer], a
-	call Mobile22_SetBGMapMode0
-	call PlaceVerticalMenuItems
-	call InitVerticalMenuCursor
-	ld hl, w2DMenuFlags1
-	set 7, [hl]
-	ret
-
-Function89d75: ; 89d75 (22:5d75)
-	push hl
-	call Mobile22_SetBGMapMode0
-	call _hl_
-	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-	pop hl
-	jr asm_89d90
-
-Function89d85: ; 89d85 (22:5d85)
-	push hl
-	call Mobile22_SetBGMapMode0
-	call _hl_
-	call CGBOnly_LoadEDTile
-	pop hl
-
-asm_89d90: ; 89d90 (22:5d90)
-	call Mobile22_SetBGMapMode0
-	push hl
-	call _hl_
-	call Function89dab
-	ld a, [wMenuCursorY]
-	push af
-	call Function891ab
-	pop af
-	pop hl
-	jr c, .asm_89da9
-	jr z, asm_89d90
-	scf
-	ret
-.asm_89da9
-	and a
-	ret
-
-Function89dab: ; 89dab (22:5dab)
-	call Mobile22_SetBGMapMode0
-	callba MobileMenuJoypad
-	call Mobile22_SetBGMapMode0
-	ld a, c
-	ld hl, wMenuJoypadFilter
-	and [hl]
-	ret z
-	bit 0, a
-	jr nz, .asm_89dc7
-	bit 1, a
-	jr nz, .asm_89dd9
-	xor a
-	ret
-.asm_89dc7
-	call PlayClickSFX
-	ld a, [w2DMenuNumRows]
-	ld c, a
-	ld a, [wMenuCursorY]
-	cp c
-	jr z, .asm_89dd9
-	call PlaceHollowCursor
-	scf
-	ret
-.asm_89dd9
-	call PlayClickSFX
-	ld a, $1
-	and a
-	ret
-
-Function89de0: ; 89de0 (22:5de0)
-	call ClearSprites
-	call Function89e0a
-	jr c, .asm_89e00
-	ld c, $1
-.asm_89dea
-	call Function8a31c
-	jr z, .asm_89dfd
-	ld a, [wMenuCursorY]
-	ld c, a
-	push bc
-	ld hl, Jumptable_89e04
-	ld a, e
-	dec a
-	rst JumpTable
-	pop bc
-	jr .asm_89dea
-.asm_89dfd
-	call Function891fe
-.asm_89e00
-	call Function8917a
-	ret
-
-Jumptable_89e04: ; 89e04 (22:5e04)
-	dw Function8a62c
-	dw Function8a999
-	dw Function8ab93
-
-
-Function89e0a: ; 89e0a (22:5e0a)
-	call OpenSRAMBank4
-	call Function8b3b0
-	call CloseSRAM
-	ld hl, Jumptable_89e18
-	rst JumpTable
-	ret
-
-Jumptable_89e18: ; 89e18 (22:5e18)
-	dw Function89e1e
-	dw Function8a116
-	dw Function8a2aa
-
-
-Function89e1e: ; 89e1e (22:5e1e)
-	call OpenSRAMBank4
-	ld bc, $a037 ; 4:a037
-	call Function8b36c
-	call CloseSRAM
-	xor a
-	ld [wd02d], a
-
-asm_89e2e: ; 89e2e (22:5e2e)
-	ld a, [wd02d]
-	ld hl, Jumptable_89e3c
-	rst JumpTable
-	ret
-
-Function89e36: ; 89e36 (22:5e36)
-	ld hl, wd02d
-	inc [hl]
-	jr asm_89e2e
-
-Jumptable_89e3c: ; 89e3c (22:5e3c)
-	dw Function89e6f
-	dw Function89fed
-	dw Function89ff6
-	dw Function8a03d
-	dw Function89eb9
-	dw Function89efd
-	dw Function89fce
-	dw Function8a04c
-	dw Function8a055
-	dw Function8a0e6
-	dw Function8a0ec
-	dw Function8a0f5
-	dw Function89e58
-	dw Function89e68
-
-
-Function89e58: ; 89e58 (22:5e58)
-	ld a, $1
-	call Function8a2fe
-	call Function891fe
-	call Function893e2
-	call Function89168
-	and a
-	ret
-
-Function89e68: ; 89e68 (22:5e68)
-	call Function891fe
-	ld a, $1
-	scf
-	ret
-
-Function89e6f: ; 89e6f (22:5e6f)
-	call Function891de
-	call Function89245
-	call Function89ee1
-	call Function89e9a
-	hlcoord 7, 4
-	call Function8a58d
-	ld a, $5
-	hlcoord 7, 4, AttrMap
-	call Function8a5a3
-	ld a, $6
-	hlcoord 10, 4, AttrMap
-	call Function8a5a3
-	call Function891ab
-	call SetPalettes
-	jp Function89e36
-
-Function89e9a: ; 89e9a (22:5e9a)
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_89eb1
-	ld de, UnknBGPals + 5 palettes
-	ld bc, 1 palettes
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	ret
-; 89eb1 (22:5eb1)
-
-Palette_89eb1: ; 89eb1
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 27, 19, 00
-	RGB 00, 00, 00
-; 89eb9
-
-Function89eb9: ; 89eb9 (22:5eb9)
-	call Function891fe
-	call Function89ee1
-	call Function89e9a
-	hlcoord 7, 4
-	call Function8a58d
-	ld a, $5
-	hlcoord 7, 4, AttrMap
-	call Function8a5a3
-	ld a, $6
-	hlcoord 10, 4, AttrMap
-	call Function8a5a3
-	call Function891ab
-	call SetPalettes
-	jp Function89e36
-
-Function89ee1: ; 89ee1 (22:5ee1)
-	call ClearBGPalettes
-	call Function893e2
-	call Mobile22_SetBGMapMode0
-	callba Function4a3a7
-	callba MG_Mobile_Layout_CreatePalBoxes
-	hlcoord 1, 0
-	call Function8a53d
-	ret
-
-Function89efd: ; 89efd (22:5efd)
-	ld hl, wd012
-	ld a, $ff
-	ld [hli], a
-	xor a
-rept 4
-	ld [hli], a
-endr
-	ld [hl], a
-.asm_89f09
-	ld hl, wd012
-	inc [hl]
-	ld a, [hli]
-	and $3
-	jr nz, .asm_89f2e
-	ld a, [hl]
-	cp $4
-	jr nc, .asm_89f2e
-	ld b, $32
-	inc [hl]
-	ld a, [hl]
-	dec a
-	jr z, .asm_89f26
-	ld c, a
-.asm_89f1f
-	ld a, $b
-	add b
-	ld b, a
-	dec c
-	jr nz, .asm_89f1f
-.asm_89f26
-	ld c, $e8
-	ld a, [wd013]
-	call Function89fa5
-.asm_89f2e
-	ld a, [wd013]
-	and a
-	jr z, .asm_89f58
-.asm_89f34
-	call Function89f6a
-	ld e, a
-	ld a, c
-	cp $a8
-	jr nc, .asm_89f4d
-	cp $46
-	jr c, .asm_89f4d
-	ld d, $0
-	dec e
-	ld hl, wd014
-	add hl, de
-	set 0, [hl]
-	inc e
-	jr .asm_89f51
-.asm_89f4d
-	ld a, $2
-	add c
-	ld c, a
-.asm_89f51
-	ld a, e
-	call Function89f77
-	dec a
-	jr nz, .asm_89f34
-.asm_89f58
-	call DelayFrame
-	ld hl, wd014
-	ld c, $4
-.asm_89f60
-	ld a, [hli]
-	and a
-	jr z, .asm_89f09
-	dec c
-	jr nz, .asm_89f60
-	jp Function89e36
-
-Function89f6a: ; 89f6a (22:5f6a)
-	push af
-	ld de, $10
-	call Function89f9a
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	pop af
-	ret
-
-Function89f77: ; 89f77 (22:5f77)
-	push af
-	ld de, $10
-	call Function89f9a
-	ld d, $2
-.asm_89f80
-	push bc
-	ld e, $2
-.asm_89f83
-	ld a, b
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	inc hl
-	inc hl
-	ld a, $8
-	add c
-	ld c, a
-	dec e
-	jr nz, .asm_89f83
-	pop bc
-	ld a, $8
-	add b
-	ld b, a
-	dec d
-	jr nz, .asm_89f80
-	pop af
-	ret
-
-Function89f9a: ; 89f9a (22:5f9a)
-	dec a
-	ld hl, Sprites
-	and a
-	ret z
-.asm_89fa0
-	add hl, de
-	dec a
-	jr nz, .asm_89fa0
-	ret
-
-Function89fa5: ; 89fa5 (22:5fa5)
-	ld de, $10
-	call Function89f9a
-	ld e, $2
-	ld d, $a
-.asm_89faf
-	push bc
-	ld a, $2
-.asm_89fb2
-	push af
-	ld a, b
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld a, d
-	inc d
-	ld [hli], a
-	ld a, $1
-	ld [hli], a
-	ld a, $8
-	add c
-	ld c, a
-	pop af
-	dec a
-	jr nz, .asm_89fb2
-	pop bc
-	ld a, $8
-	add b
-	ld b, a
-	dec e
-	jr nz, .asm_89faf
-	ret
-
-Function89fce: ; 89fce (22:5fce)
-	call Function8a5b6
-	ld a, $5
-	hlcoord 7, 4, AttrMap
-	call Function8a5a3
-	ld a, $6
-	hlcoord 10, 4, AttrMap
-	call Function8a5a3
-	call Function89448
-	call SetPalettes
-	call Function891ab
-	jp Function89e36
-
-Function89fed: ; 89fed (22:5fed)
-	ld hl, UnknownText_0x8a102
-	call PrintText
-	jp Function89e36
-
-Function89ff6: ; 89ff6 (22:5ff6)
-	call Function891fe
-	call ClearBGPalettes
-	call Function893cc
-	call Function89807
-	call Function89492
-	call Function894ca
-	call OpenSRAMBank4
-	ld hl, $a603
-	ld a, -1
-	ld bc, 8
-	call ByteFill
-	ld hl, $a603
-	ld de, wd008
-	call Function89381
-	call CloseSRAM
-	call Function8987f
-	call OpenSRAMBank4
-	hlcoord 1, 13
-	ld bc, $a007
-	call Function89a0c
-	call CloseSRAM
-	call Function891ab
-	call Mobile22_ButtonSound
-	jp Function89e36
-
-Function8a03d: ; 8a03d (22:603d)
-	ld hl, UnknownText_0x8a107
-	call Function89209
-	call PrintText
-	call Function8920f
-	jp Function89e36
-
-Function8a04c: ; 8a04c (22:604c)
-	ld hl, UnknownText_0x8a10c
-	call PrintText
-	jp Function89e36
-
-Function8a055: ; 8a055 (22:6055)
-	ld c, $7
-	ld b, $4
-.asm_8a059
-	call Function8a0a1
-	inc c
-	call Function8a0c9
-	push bc
-	call Function8a58d
-	pop bc
-	call Function8a0de
-	push bc
-	push hl
-	ld a, $5
-	call Function8a5a3
-	pop hl
-	inc hl
-	inc hl
-	inc hl
-	ld a, $6
-	call Function8a5a3
-	call CGBOnly_LoadEDTile
-	pop bc
-	ld a, c
-	cp $b
-	jr nz, .asm_8a059
-	call Function8a0a1
-	hlcoord 12, 4
-	call Function8a58d
-	ld a, $5
-	hlcoord 12, 4, AttrMap
-	call Function8a5a3
-	pop hl
-	ld a, $6
-	hlcoord 15, 4, AttrMap
-	call Function8a5a3
-	call CGBOnly_LoadEDTile
-	jp Function89e36
-
-Function8a0a1: ; 8a0a1 (22:60a1)
-	call Mobile22_SetBGMapMode0
-	push bc
-	call Function8a0c9
-	ld e, $6
-.asm_8a0aa
-	push hl
-	ld bc, $6
-	add hl, bc
-	ld d, [hl]
-	call Function8a0c1
-	pop hl
-	ld [hl], d
-	call Function89215
-	ld bc, $14
-	add hl, bc
-	dec e
-	jr nz, .asm_8a0aa
-	pop bc
-	ret
-
-Function8a0c1: ; 8a0c1 (22:60c1)
-	push hl
-	ld bc, AttrMap - TileMap
-	add hl, bc
-	ld a, [hl]
-	pop hl
-	ret
-
-Function8a0c9: ; 8a0c9 (22:60c9)
-	push bc
-	hlcoord 0, 0
-	ld de, $14
-	ld a, b
-	and a
-	jr z, .asm_8a0d8
-.asm_8a0d4
-	add hl, de
-	dec b
-	jr nz, .asm_8a0d4
-.asm_8a0d8
-	ld d, $0
-	ld e, c
-	add hl, de
-	pop bc
-	ret
-
-Function8a0de: ; 8a0de (22:60de)
-	call Function8a0c9
-	ld de, AttrMap - TileMap
-	add hl, de
-	ret
-
-Function8a0e6: ; 8a0e6 (22:60e6)
-	call Function8b539
-	jp Function89e36
-
-Function8a0ec: ; 8a0ec (22:60ec)
-	ld hl, UnknownText_0x8a111
-	call PrintText
-	jp Function89e36
-
-Function8a0f5: ; 8a0f5 (22:60f5)
-	call Function8b555
-	jp nc, Function8a0ff
-	ld hl, wd02d
-	inc [hl]
-
-Function8a0ff: ; 8a0ff (22:60ff)
-	jp Function89e36
-; 8a102 (22:6102)
-
-UnknownText_0x8a102: ; 0x8a102
-	; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
-	text_jump UnknownText_0x1c5238
-	db "@"
-; 0x8a107
-
-UnknownText_0x8a107: ; 0x8a107
-	; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
-	text_jump UnknownText_0x1c52bc
-	db "@"
-; 0x8a10c
-
-UnknownText_0x8a10c: ; 0x8a10c
-	; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
-	text_jump UnknownText_0x1c531e
-	db "@"
-; 0x8a111
-
-UnknownText_0x8a111: ; 0x8a111
-	; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
-	text_jump UnknownText_0x1c5394
-	db "@"
-; 0x8a116
-
-Function8a116: ; 8a116 (22:6116)
-	ld a, $1
-	ld [wd030], a
-	ld hl, MenuDataHeader_0x8a176
-	call LoadMenuDataHeader
-.asm_8a121
-	call Mobile22_SetBGMapMode0
-	call Function8a17b
-	jr c, .asm_8a16b
-	ld a, [wMenuCursorY]
-	ld [wd030], a
-	dec d
-	jr z, .asm_8a140
-	call Function8a20d
-	jr c, .asm_8a121
-	xor a
-	call Function8a2fe
-	call Function8916e
-	jr .asm_8a16b
-.asm_8a140
-	call Function89174
-	jr nz, .asm_8a14c
-	call Function8a241
-	jr c, .asm_8a121
-	jr .asm_8a15a
-.asm_8a14c
-	call WaitSFX
-	ld de, SFX_TWINKLE
-	call PlaySFX
-	ld c, $10
-	call DelayFrames
-.asm_8a15a
-	call ExitMenu
-	call Function891de
-	call Function893e2
-	call Function89245
-	call Function89168
-	and a
-	ret
-.asm_8a16b
-	call Function89209
-	call CloseWindow
-	call Function8920f
-	scf
-	ret
-; 8a176 (22:6176)
-
-MenuDataHeader_0x8a176: ; 0x8a176
-	db $40 ; flags
-	db 00, 14 ; start coords
-	db 06, 19 ; end coords
-; 8a17b
-
-Function8a17b: ; 8a17b (22:617b)
-	decoord 14, 0
-	ld b, $5
-	ld c, $4
-	call Function89b3b
-	ld hl, MenuDataHeader_0x8a19a
-	ld a, [wd030]
-	call Function89d5e
-	ld hl, Function8a1b0
-	call Function89d75
-	jr nc, .asm_8a198
-	ld a, $0
-.asm_8a198
-	ld d, a
-	ret
-; 8a19a (22:619a)
-
-MenuDataHeader_0x8a19a: ; 0x8a19a
-	db $40 ; flags
-	db 00, 14 ; start coords
-	db 06, 19 ; end coords
-	dw MenuData2_0x8a1a2
-	db 1 ; default option
-; 0x8a1a2
-
-MenuData2_0x8a1a2: ; 0x8a1a2
-	db $e0 ; flags
-	db 3 ; items
-	db "ひらく@"
-	db "すてる@"
-	db "もどる@"
-; 0x8a1b0
-
-Function8a1b0: ; 8a1b0
-	hlcoord 0, 12
-	ld b, $4
-	ld c, $12
-	call TextBox
-	hlcoord 1, 14
-	ld a, [wMenuCursorY]
-	ld de, Strings_8a1cc
-	dec a
-	ld c, a
-	call Function8919e
-	call PlaceString
-	ret
-; 8a1cc
-
-Strings_8a1cc: ; 8a1cc
-	db   "めいし", $25, "せいりと へんしゅうを"
-	next "おこないます"
-	db   "@"
-
-	db   "めいしフ,ルダー", $25, "めいしと"
-	next "あんしょうばんごう", $1f, "けします"
-	db   "@"
-
-	db   "まえ", $25, "がめん", $1d, "もどります"
-	db   "@"
-; 8a20d
-
-
-Function8a20d: ; 8a20d (22:620d)
-	ld hl, UnknownText_0x8a232
-	call PrintText
-	ld a, $2
-	call Function89259
-	ret c
-	ld hl, UnknownText_0x8a237
-	call PrintText
-	ld a, $2
-	call Function89259
-	ret c
-	xor a
-	call Function8a2fe
-	ld hl, UnknownText_0x8a23c
-	call PrintText
-	xor a
-	and a
-	ret
-; 8a232 (22:6232)
-
-UnknownText_0x8a232: ; 0x8a232
-	; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
-	text_jump UnknownText_0x1c53ee
-	db "@"
-; 0x8a237
-
-UnknownText_0x8a237: ; 0x8a237
-	; Are you sure you want to delete it?
-	text_jump UnknownText_0x1c5494
-	db "@"
-; 0x8a23c
-
-UnknownText_0x8a23c: ; 0x8a23c
-	; The CARD FOLDER has been deleted.
-	text_jump UnknownText_0x1c54b9
-	db "@"
-; 0x8a241
-
-Function8a241: ; 8a241 (22:6241)
-	call LoadStandardMenuDataHeader
-	call Function891fe
-	call Function8a262
-	jr nc, .asm_8a254
-	call Function891fe
-	call Function89b28
-	scf
-	ret
-.asm_8a254
-	call Function891de
-	call ClearBGPalettes
-	call Call_ExitMenu
-	call Function891de
-	and a
-	ret
-
-Function8a262: ; 8a262 (22:6262)
-	call ClearBGPalettes
-	call Function893e2
-	call Mobile22_SetBGMapMode0
-	callba Function4a3a7
-	callba MG_Mobile_Layout_CreatePalBoxes
-	hlcoord 1, 0
-	call Function8a53d
-	hlcoord 12, 4
-	call Function8a58d
-	ld a, $5
-	hlcoord 12, 4, AttrMap
-	call Function8a5a3
-	ld a, $6
-	hlcoord 15, 4, AttrMap
-	call Function8a5a3
-	xor a
-	ld [wd02e], a
-	ld bc, wd013
-	call Function8b36c
-	call Function8b493
-	call Function891ab
-	call SetPalettes
-	call Function8b5e7
-	ret
-
-Function8a2aa: ; 8a2aa (22:62aa)
-	ld hl, MenuDataHeader_0x8a2ef
-	call LoadMenuDataHeader
-	ld hl, UnknownText_0x8a2f4
-	call PrintText
-	ld a, $1
-	call Function89259
-	jr nc, .asm_8a2cf
-	ld hl, UnknownText_0x8a2f9
-	call PrintText
-	ld a, $2
-	call Function89259
-	jr c, .asm_8a2ea
-	call Function8a20d
-	jr .asm_8a2ea
-.asm_8a2cf
-	call ExitMenu
-	call Function8a241
-	jr c, .asm_8a2ed
-	ld a, $1
-	call Function8a313
-	call CloseSRAM
-	call Function891de
-	call Function89245
-	call Function89168
-	and a
-	ret
-.asm_8a2ea
-	call CloseWindow
-.asm_8a2ed
-	scf
-	ret
-; 8a2ef (22:62ef)
-
-MenuDataHeader_0x8a2ef: ; 0x8a2ef
-	db $40 ; flags
-	db 12, 00 ; start coords
-	db 17, 19 ; end coords
-; 8a2f4
-
-UnknownText_0x8a2f4: ; 0x8a2f4
-	; There is an older CARD FOLDER from a previous journey. Do you want to open it?
-	text_jump UnknownText_0x1c54dd
-	db "@"
-; 0x8a2f9
-
-UnknownText_0x8a2f9: ; 0x8a2f9
-	; Delete the old CARD FOLDER?
-	text_jump UnknownText_0x1c552d
-	db "@"
-; 0x8a2fe
-
-Function8a2fe: ; 8a2fe (22:62fe)
-	call Function8a313
-	call Function89305
-	ld hl, $a603
-	ld bc, $8
-	ld a, -1
-	call ByteFill
-	call CloseSRAM
-	ret
-
-Function8a313: ; 8a313 (22:6313)
-	ld c, a
-	call OpenSRAMBank4
-	ld a, c
-	ld [$a60b], a
-	ret
-
-Function8a31c: ; 8a31c (22:631c)
-	push bc
-	call Mobile22_SetBGMapMode0
-	callba Function4a3a7
-	callba MG_Mobile_Layout_CreatePalBoxes
-	hlcoord 1, 0
-	call Function8a53d
-	hlcoord 12, 4
-	call Function8a58d
-	call Function8a3b2
-	pop bc
-	ld a, c
-	ld [wMenuCursorBuffer], a
-	ld [MenuSelection], a
-	call PlaceVerticalMenuItems
-	call InitVerticalMenuCursor
-	ld hl, w2DMenuFlags1
-	set 7, [hl]
-.asm_8a34e
-	call Function8a3a2
-	call Mobile22_SetBGMapMode0
-	call Function8a453
-	call Function8a4d3
-	call Function8a4fc
-	call Function891ab
-	call SetPalettes
-	call Function8a383
-	jr c, .asm_8a370
-	jr z, .asm_8a34e
-.asm_8a36a
-	call Function89448
-	xor a
-	ld e, a
-	ret
-.asm_8a370
-	call Function89448
-	call PlaceHollowCursor
-	call Function8a3a2
-	ld a, [MenuSelection]
-	cp $ff
-	jr z, .asm_8a36a
-	ld e, a
-	and a
-	ret
-
-Function8a383: ; 8a383 (22:6383)
-	callba MobileMenuJoypad
-	ld a, c
-	ld hl, wMenuJoypadFilter
-	and [hl]
-	ret z
-	bit 0, a
-	jr nz, .asm_8a399
-	bit 1, a
-	jr nz, .asm_8a39e
-	xor a
-	ret
-.asm_8a399
-	call PlayClickSFX
-	scf
-	ret
-.asm_8a39e
-	call PlayClickSFX
-	ret
-
-Function8a3a2: ; 8a3a2 (22:63a2)
-	ld a, [wMenuCursorY]
-	dec a
-	ld hl, wd002
-	ld e, a
-	ld d, $0
-	add hl, de
-	ld a, [hl]
-	ld [MenuSelection], a
-	ret
-
-Function8a3b2: ; 8a3b2 (22:63b2)
-	ld a, $1
-	ld [MenuSelection], a
-	call Function8a4fc
-	call Function8a3df
-	jr nc, .asm_8a3ce
-	decoord 0, 2
-	ld b, $6
-	ld c, $9
-	call Function89b3b
-	ld hl, MenuDataHeader_0x8a435
-	jr .asm_8a3db
-.asm_8a3ce
-	decoord 0, 2
-	ld b, $8
-	ld c, $9
-	call Function89b3b
-	ld hl, MenuDataHeader_0x8a40f
-.asm_8a3db
-	call CopyMenuDataHeader
-	ret
-
-Function8a3df: ; 8a3df (22:63df)
-	call OpenSRAMBank4
-	ld hl, $a603
-	call Function89b45
-	call CloseSRAM
-	ld hl, wd002
-	jr c, .asm_8a3f8
-	ld de, Unknown_8a408
-	call Function8a400
-	scf
-	ret
-.asm_8a3f8
-	ld de, Unknown_8a40b
-	call Function8a400
-	and a
-	ret
-
-Function8a400: ; 8a400 (22:6400)
-	ld a, [de]
-	inc de
-	ld [hli], a
-	cp $ff
-	jr nz, Function8a400
-	ret
-; 8a408 (22:6408)
-
-Unknown_8a408: db 1, 2, -1
-Unknown_8a40b: db 1, 2, 3, -1
-
-MenuDataHeader_0x8a40f: ; 0x8a40f
-	db $40 ; flags
-	db 02, 00 ; start coords
-	db 11, 10 ; end coords
-	dw MenuData2_0x8a417
-	db 1 ; default option
-; 0x8a417
-
-MenuData2_0x8a417: ; 0x8a417
-	db $a0 ; flags
-	db 4 ; items
-	db "めいしりスト@"
-	db "じぶんの めいし@"
-	db "めいしこうかん@"
-	db "やめる@"
-; 0x8a435
-
-MenuDataHeader_0x8a435: ; 0x8a435
-	db $40 ; flags
-	db 02, 00 ; start coords
-	db 09, 10 ; end coords
-	dw MenuData2_0x8a43d
-	db 1 ; default option
-; 0x8a43d
-
-MenuData2_0x8a43d: ; 0x8a43d
-	db $a0 ; flags
-	db 3 ; items
-	db "めいしりスト@"
-	db "じぶんの めいし@"
-	db "やめる@"
-; 0x8a453
-
-Function8a453: ; 8a453 (22:6453)
-	hlcoord 0, 12
-	ld b, $4
-	ld c, $12
-	call TextBox
-	hlcoord 1, 14
-	ld de, String_8a476
-	ld a, [MenuSelection]
-	cp $ff
-	jr z, .asm_8a472
-	ld de, Strings_8a483
-	dec a
-	ld c, a
-	call Function8919e
-.asm_8a472
-	call PlaceString
-	ret
-; 8a476 (22:6476)
-
-String_8a476: ; 8a476
-	db   "まえ", $25, "がめん", $1d, "もどります@"
-; 8a483
-
-Strings_8a483: ; 8a483
-	db   "おともだち", $25, "めいしは"
-	next "ここ", $1d, "いれておきます@"
-
-	db   "でんわばんごう", $1f, "いれると"
-	next "めいしこうかん", $4a, "できます@"
-
-	db   "ともだちと じぶん", $25, "めいしを"
-	next "せきがいせんで こうかん します@"
-; 8a4d3
-
-Function8a4d3: ; 8a4d3 (22:64d3)
-	ld a, [MenuSelection]
-	cp $1
-	jr nz, .asm_8a4eb
-	ld a, $5
-	hlcoord 12, 4, AttrMap
-	call Function8a5a3
-	ld a, $7
-	hlcoord 15, 4, AttrMap
-	call Function8a5a3
-	ret
-.asm_8a4eb
-	ld a, $7
-	hlcoord 12, 4, AttrMap
-	call Function8a5a3
-	ld a, $6
-	hlcoord 15, 4, AttrMap
-	call Function8a5a3
-	ret
-
-Function8a4fc: ; 8a4fc (22:64fc)
-	ld a, [MenuSelection]
-	cp $3
-	jr nz, asm_8a529
-	ld hl, wd012
-	ld a, [hli]
-	ld b, a
-	ld a, [hld]
-	add b
-	ld [hl], a
-	ld b, a
-	ld c, $80
-	call Function89cdf
-	call Function8a515
-	ret
-
-Function8a515: ; 8a515 (22:6515)
-	ld hl, wd012
-	ld a, [hl]
-	cp $38
-	jr c, .asm_8a520
-	cp $3c
-	ret c
-.asm_8a520
-	ld a, [wd013]
-	cpl
-	inc a
-	ld [wd013], a
-	ret
-
-asm_8a529: ; 8a529 (22:6529)
-	ld hl, wd012
-	ld a, $3c
-	ld [hli], a
-	ld a, $ff
-	ld [hli], a
-	ld hl, Sprites
-	xor a
-	ld bc, $20
-	call ByteFill
-	ret
-
-Function8a53d: ; 8a53d (22:653d)
-	push hl
-	ld a, $15
-	ld c, $8
-	ld de, $14
-	call Function8a573
-	ld a, $1d
-	ld c, $9
-	call Function8a57c
-	inc a
-	ld [hl], a
-	call Function8a584
-	pop hl
-	add hl, de
-	ld a, $1f
-	ld c, $8
-	call Function8a573
-	dec hl
-	ld a, $51
-	ld [hli], a
-	ld a, $26
-	ld c, $1
-	call Function8a57c
-	ld a, $52
-	ld c, $3
-	call Function8a573
-	ld a, $27
-	ld c, $6
-
-Function8a573: ; 8a573 (22:6573)
-	ld [hl], a
-	call Function8a584
-	inc a
-	dec c
-	jr nz, Function8a573
-	ret
-
-Function8a57c: ; 8a57c (22:657c)
-	ld [hl], a
-	call Function8a584
-	dec c
-	jr nz, Function8a57c
-	ret
-
-Function8a584: ; 8a584 (22:6584)
-	push af
-	ld a, $4
-	call Function89215
-	inc hl
-	pop af
-	ret
-
-Function8a58d: ; 8a58d (22:658d)
-	ld a, $2d
-	ld bc, $606
-	ld de, $14
-.asm_8a595
-	push bc
-	push hl
-.asm_8a597
-	ld [hli], a
-	inc a
-	dec c
-	jr nz, .asm_8a597
-	pop hl
-	add hl, de
-	pop bc
-	dec b
-	jr nz, .asm_8a595
-	ret
-
-Function8a5a3: ; 8a5a3 (22:65a3)
-	ld bc, $603
-	ld de, $14
-.asm_8a5a9
-	push bc
-	push hl
-.asm_8a5ab
-	ld [hli], a
-	dec c
-	jr nz, .asm_8a5ab
-	pop hl
-	add hl, de
-	pop bc
-	dec b
-	jr nz, .asm_8a5a9
-	ret
-
-Function8a5b6: ; 8a5b6 (22:65b6)
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_8a5e5
-	ld de, UnknBGPals + 4 palettes
-	ld bc, 3 palettes
-	call CopyBytes
-	ld hl, Palette_8a5fd
-	ld de, UnknOBPals
-	ld bc, 1 palettes
-	call CopyBytes
-	ld hl, Palette_8a605
-	ld de, UnknOBPals + 1 palettes
-	ld bc, 1 palettes
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	ret
-; 8a5e5 (22:65e5)
-
-Palette_8a5e5: ; 8a5e5
-	RGB 31, 31, 31
-	RGB 27, 19, 00
-	RGB 07, 11, 22
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 16, 16, 31
-	RGB 27, 19, 00
-	RGB 00, 00, 00
-
-	RGB 31, 31, 31
-	RGB 31, 00, 00
-	RGB 27, 19, 00
-	RGB 00, 00, 00
-; 8a5fd
-
-Palette_8a5fd: ; 8a5fd
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-; 8a605
-
-Palette_8a605: ; 8a605
-	RGB 00, 00, 00
-	RGB 14, 18, 31
-	RGB 16, 16, 31
-	RGB 31, 31, 31
-; 8a60d
-
-Function8a60d: ; 8a60d
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_8a624
-	ld de, UnknOBPals
-	ld bc, 1 palettes
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	ret
-; 8a624
-
-Palette_8a624: ; 8a624
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 00, 00, 00
-; 8a62c
-
-Function8a62c: ; 8a62c (22:662c)
-	call LoadStandardMenuDataHeader
-	call Function891fe
-	xor a
-	call Function8b94a
-	call Function8b677
-.asm_8a639
-	xor a
-	ld [wd033], a
-	ld [wd032], a
-	ld [wd0e3], a
-	call Function8b7bd
-	ld a, c
-	and a
-	jr z, .asm_8a66a
-	ld [MenuSelection], a
-	ld b, a
-	ld a, [wScrollingMenuCursorPosition]
-	inc a
-	ld [wd034], a
-	push bc
-	call Function8b960
-	ld a, c
-	pop bc
-	jr z, .asm_8a639
-	ld c, a
-	ld hl, Jumptable_8a671
-	ld a, b
-	ld [MenuSelection], a
-	ld a, c
-	dec a
-	rst JumpTable
-	jr .asm_8a639
-.asm_8a66a
-	call Function891fe
-	call Function89b28
-	ret
-
-Jumptable_8a671: ; 8a671 (22:6671)
-	dw Function8a679
-	dw Function8a6cd
-	dw Function8a8c3
-	dw Function8a930
-
-
-Function8a679: ; 8a679 (22:6679)
-	call Function891de
-	call ClearBGPalettes
-	call Function893cc
-	call OpenSRAMBank4
-	call Function8931b
-	call Function89844
-	call CloseSRAM
-	call OpenSRAMBank4
-	call Function8939a
-	call Function89856
-	hlcoord 1, 13
-	call Function899fe
-	call Function891ab
-	call CloseSRAM
-.asm_8a6a3
-	call Function89a57
-	jr c, .asm_8a6a3
-	and a
-	jr z, Function8a679
-	ld hl, Jumptable_8a6bc
-	dec a
-	rst JumpTable
-	jr c, Function8a679
-	call Function891fe
-	call Function8b677
-	call Function89448
-	ret
-
-Jumptable_8a6bc: ; 8a6bc (22:66bc)
-	dw Function8a6c0
-	dw Function8a6c5
-
-
-Function8a6c0: ; 8a6c0 (22:66c0)
-	call PlayClickSFX
-	and a
-	ret
-
-Function8a6c5: ; 8a6c5 (22:66c5)
-	call PlayClickSFX
-	call Function89d0d
-	scf
-	ret
-
-Function8a6cd: ; 8a6cd (22:66cd)
-	call Function891de
-	call ClearBGPalettes
-	call Function893cc
-	call OpenSRAMBank4
-	call Function8931b
-	call Function89844
-	call Function8a757
-	call CloseSRAM
-.asm_8a6e5
-	call OpenSRAMBank4
-	call Function8931b
-	call Function89856
-	call Function89a2e
-	call Function891ab
-	xor a
-	ld [wd02f], a
-	call CloseSRAM
-.asm_8a6fb
-	call Function89b97
-	call Function89c67
-	jr c, .asm_8a718
-	ld a, b
-	and a
-	jr z, .asm_8a6fb
-	call PlayClickSFX
-	call Function89448
-	ld a, [wd011]
-	ld hl, Jumptable_8a74f
-	rst JumpTable
-	jr nc, .asm_8a6e5
-	jr .asm_8a742
-.asm_8a718
-	call OpenSRAMBank4
-	call Function8a765
-	call CloseSRAM
-	jr nc, .asm_8a73f
-	call Mobile22_SetBGMapMode0
-	call Function89448
-	call Function89a23
-	hlcoord 1, 13
-	ld de, String_89135
-	call PlaceString
-	call WaitBGMap
-	ld a, $2
-	call Function89254
-	jr c, .asm_8a6e5
-.asm_8a73f
-	call CloseSRAM
-.asm_8a742
-	call ClearBGPalettes
-	call Function89448
-	call Function891d3
-	call Function8b677
-	ret
-
-Jumptable_8a74f: ; 8a74f (22:674f)
-	dw Function8a78c
-	dw Function8a7cb
-	dw Function8a818
-	dw Function8a8a1
-
-
-Function8a757: ; 8a757 (22:6757)
-	call Function8939a
-	xor a
-	ld [wd010], a
-	ld [wd011], a
-	ld [wd012], a
-	ret
-
-Function8a765: ; 8a765 (22:6765)
-	call Function8931b
-	push bc
-	ld hl, $0
-	add hl, bc
-	ld de, wd002
-	ld c, $6
-	call Function89185
-	pop bc
-	jr nz, .asm_8a78a
-	push bc
-	ld hl, $11
-	add hl, bc
-	ld de, wd008
-	ld c, $8
-	call Function89185
-	pop bc
-	jr nz, .asm_8a78a
-	and a
-	ret
-.asm_8a78a
-	scf
-	ret
-
-Function8a78c: ; 8a78c (22:678c)
-	call Function891fe
-	ld de, wd002
-	ld b, $5
-	callba NamingScreen
-	call OpenSRAMBank4
-	call Function8931b
-	push bc
-	ld hl, $0
-	add hl, bc
-	ld d, h
-	ld e, l
-	ld hl, wd002
-	call InitName
-	call CloseSRAM
-	call DelayFrame
-	call JoyTextDelay
-	call Function891de
-	call ClearBGPalettes
-	call Function893cc
-	call OpenSRAMBank4
-	pop bc
-	call Function89844
-	call CloseSRAM
-	and a
-	ret
-
-Function8a7cb: ; 8a7cb (22:67cb)
-	ld a, [MenuSelection]
-	push af
-	call Function891de
-	ld de, wd008
-	ld c, $0
-	callba Function17a68f
-	jr c, .asm_8a7f4
-	ld hl, wd008
-	ld a, $ff
-	ld bc, $8
-	call ByteFill
-	ld h, d
-	ld l, e
-	ld de, wd008
-	ld c, $8
-	call Function89193
-.asm_8a7f4
-	pop af
-	ld [MenuSelection], a
-	call Function891de
-	call ClearBGPalettes
-	call Function893cc
-	call OpenSRAMBank4
-	call Function8931b
-	call Function89844
-	call Function89856
-	call Function89a2e
-	call Function891ab
-	call CloseSRAM
-	and a
-	ret
-
-Function8a818: ; 8a818 (22:6818)
-	call Function89a23
-	ld hl, wd002
-	call Function89331
-	jr c, .asm_8a875
-	ld hl, wd008
-	call Function89b45
-	jr nc, .asm_8a87a
-	call OpenSRAMBank4
-	call Function8a765
-	jr nc, .asm_8a863
-	call Function8931b
-	push bc
-	ld hl, $0
-	add hl, bc
-	ld d, h
-	ld e, l
-	ld hl, wd002
-	ld c, $6
-	call Function89193
-	pop bc
-	ld hl, $11
-	add hl, bc
-	ld d, h
-	ld e, l
-	ld hl, wd008
-	ld c, $8
-	call Function89193
-	hlcoord 1, 13
-	ld de, .string_8a868
-	call PlaceString
-	call WaitBGMap
-	call JoyWaitAorB
-.asm_8a863
-	call CloseSRAM
-	scf
-	ret
-; 8a868 (22:6868)
-
-.string_8a868
-	db "めいし", $1f, "かきかえ まし", $22, "@"
-
-.asm_8a875
-	ld de, String_8a88b
-	jr .asm_8a87d
-.asm_8a87a
-	ld de, String_8911c
-.asm_8a87d
-	hlcoord 1, 13
-	call PlaceString
-	call WaitBGMap
-	call JoyWaitAorB
-	and a
-	ret
-; 8a88b (22:688b)
-
-String_8a88b: ; 8a88b
-	db   "おともだち", $25, "なまえが"
-	next "かかれて いません!@"
-; 8a8a1
-
-Function8a8a1: ; 8a8a1 (22:68a1)
-	call OpenSRAMBank4
-	call Function8a765
-	call CloseSRAM
-	jr nc, .asm_8a8bf
-	call Function89a23
-	hlcoord 1, 13
-	ld de, String_89135
-	call PlaceString
-	ld a, $2
-	call Function89254
-	jr c, .asm_8a8c1
-.asm_8a8bf
-	scf
-	ret
-.asm_8a8c1
-	and a
-	ret
-
-Function8a8c3: ; 8a8c3 (22:68c3)
-	call Function891de
-	call ClearBGPalettes
-	call Function893cc
-	call OpenSRAMBank4
-	call Function8931b
-	call Function89844
-	call Function8939a
-	call Function89856
-	call CloseSRAM
-	call Function891ab
-	hlcoord 1, 13
-	ld de, String_8a919
-	call PlaceString
-	ld a, $2
-	call Function89254
-	jr c, .asm_8a90f
-	call OpenSRAMBank4
-	call Function892b4
-	call CloseSRAM
-	call Function89a23
-	call Mobile22_SetBGMapMode0
-	hlcoord 1, 13
-	ld de, String_8a926
-	call PlaceString
-	call WaitBGMap
-	call JoyWaitAorB
-.asm_8a90f
-	call Function89448
-	call Function891fe
-	call Function8b677
-	ret
-; 8a919 (22:6919)
-
-String_8a919: ; 8a919
-	db "このデータ", $1f, "けしますか?@"
-; 8a926
-
-String_8a926: ; 8a926
-	db "データ", $1f, "けしまし", $22, "@"
-; 8a930
-
-Function8a930: ; 8a930 (22:6930)
-	ld a, [MenuSelection]
-	push af
-	xor a
-	ld [wd032], a
-	ld a, $1
-	ld [wd033], a
-	ld a, [wd034]
-	ld [wd0e3], a
-.asm_8a943
-	call Function8b7bd
-	ld a, [wMenuJoypad]
-	and $1
-	jr nz, .asm_8a953
-	ld a, c
-	and a
-	jr nz, .asm_8a943
-	pop af
-	ret
-.asm_8a953
-	call OpenSRAMBank4
-	pop af
-	cp c
-	jr z, .asm_8a995
-	push bc
-	ld [MenuSelection], a
-	call Function8931b
-	push bc
-	ld h, b
-	ld l, c
-	ld de, wd002
-	ld bc, $25
-	call CopyBytes
-	pop de
-	pop bc
-	ld a, c
-	ld [MenuSelection], a
-	call Function8931b
-	push bc
-	ld h, b
-	ld l, c
-	ld bc, $25
-	call CopyBytes
-	pop de
-	ld hl, wd002
-	ld bc, $25
-	call CopyBytes
-	ld de, SFX_SWITCH_POKEMON
-	call WaitPlaySFX
-	ld de, SFX_SWITCH_POKEMON
-	call WaitPlaySFX
-.asm_8a995
-	call CloseSRAM
-	ret
-
-Function8a999: ; 8a999 (22:6999)
-	ld hl, MenuDataHeader_0x8a9c9
-	call LoadMenuDataHeader
-	ld c, $1
-.asm_8a9a1
-	call Function8a9ce
-	jr c, .asm_8a9bb
-	push bc
-	push de
-	call LoadStandardMenuDataHeader
-	pop de
-	dec e
-	ld a, e
-	ld hl, Jumptable_8a9c5
-	rst JumpTable
-	call Function891fe
-	call Function89b28
-	pop bc
-	jr .asm_8a9a1
-.asm_8a9bb
-	call Function89209
-	call CloseWindow
-	call Function8920f
-	ret
-
-Jumptable_8a9c5: ; 8a9c5 (22:69c5)
-	dw Function8aa0a
-	dw Function8ab3b
-; 8a9c9 (22:69c9)
-
-MenuDataHeader_0x8a9c9: ; 0x8a9c9
-	db $40 ; flags
-	db 04, 11 ; start coords
-	db 11, 18 ; end coords
-; 8a9ce
-
-Function8a9ce: ; 8a9ce (22:69ce)
-	push bc
-	decoord 11, 4
-	ld b, $6
-	ld c, $6
-	call Function89b3b
-	pop bc
-	ld a, c
-	ld hl, MenuDataHeader_0x8a9f2
-	call Function89d5e
-	ld hl, Function8aa09
-	call Function89d85
-	jr c, .asm_8a9ed
-	ld c, a
-	ld e, a
-	and a
-	ret
-.asm_8a9ed
-	ld c, a
-	ld e, $0
-	scf
-	ret
-; 8a9f2 (22:69f2)
-
-MenuDataHeader_0x8a9f2: ; 0x8a9f2
-	db $40 ; flags
-	db 04, 11 ; start coords
-	db 11, 18 ; end coords
-	dw MenuData2_0x8a9fa
-	db 1 ; default option
-; 0x8a9fa
-
-MenuData2_0x8a9fa: ; 0x8a9fa
-	db $a0 ; flags
-	db 3 ; items
-	db "へんしゅう@"
-	db "みる@"
-	db "やめる@"
-; 0x8aa09
-
-Function8aa09: ; 8aa09
-	ret
-; 8aa0a
-
-Function8aa0a: ; 8aa0a (22:6a0a)
-	ld a, $1
-	ld [wd02f], a
-	ld [wd011], a
-	xor a
-	ld [wd010], a
-	ld [wd012], a
-	call OpenSRAMBank4
-	ld hl, $a603
-	ld de, wd008
-	call Function89381
-	call CloseSRAM
-	call Function891fe
-	call ClearBGPalettes
-	call Function893cc
-	call Function89807
-	call Function89492
-	call Function894ca
-.asm_8aa3a
-	call Function8987f
-	call Function89a2e
-	call Function891ab
-.asm_8aa43
-	call Function89b97
-	call Function89c67
-	jr c, .asm_8aa61
-	ld a, b
-	and a
-	jr z, .asm_8aa43
-	call PlayClickSFX
-	call Function89448
-	ld a, [wd011]
-	dec a
-	ld hl, Jumptable_8aa6d
-	rst JumpTable
-	jr nc, .asm_8aa3a
-	jr .asm_8aa69
-.asm_8aa61
-	call Function89448
-	call Function8ab11
-	jr nc, .asm_8aa3a
-.asm_8aa69
-	call Function89448
-	ret
-
-Jumptable_8aa6d: ; 8aa6d (22:6a6d)
-	dw Function8aa73
-	dw Function8aab6
-	dw Function8ab11
-
-
-Function8aa73: ; 8aa73 (22:6a73)
-	ld a, [MenuSelection]
-	ld e, a
-	push de
-	call Function891de
-	ld de, wd008
-	ld c, $0
-	callba Function17a68f
-	jr c, .asm_8aa9d
-	ld hl, wd008
-	ld a, $ff
-	ld bc, $8
-	call ByteFill
-	ld h, d
-	ld l, e
-	ld de, wd008
-	ld c, $8
-	call Function89193
-.asm_8aa9d
-	call Function891fe
-	call ClearBGPalettes
-	call Function893cc
-	call Function89807
-	call Function89492
-	call Function894ca
-	pop de
-	ld a, e
-	ld [MenuSelection], a
-	and a
-	ret
-
-Function8aab6: ; 8aab6 (22:6ab6)
-	call Function89a23
-	ld hl, wd008
-	call Function89b45
-	jr nc, Function8ab00
-	call OpenSRAMBank4
-	ld de, wd008
-	ld hl, $a603
-	ld c, $8
-	call Function89185
-	jr z, .asm_8aaeb
-	ld hl, wd008
-	ld de, $a603
-	ld c, $8
-	call Function89193
-	hlcoord 1, 13
-	ld de, String_8aaf0
-	call PlaceString
-	call WaitBGMap
-	call JoyWaitAorB
-.asm_8aaeb
-	call CloseSRAM
-	scf
-	ret
-; 8aaf0 (22:6af0)
-
-String_8aaf0: ; 8aaf0
-	db "あたらしい めいし<PKMN>できまし<LNBRK>@"
-; 8ab00
-
-Function8ab00: ; 8ab00
-	ld de, String_8911c
-	hlcoord 1, 13
-	call PlaceString
-	call WaitBGMap
-	call Mobile22_ButtonSound
-	and a
-	ret
-
-Function8ab11: ; 8ab11 (22:6b11)
-	call OpenSRAMBank4
-	ld hl, $a603
-	ld de, wd008
-	ld c, $8
-	call Function89185
-	call CloseSRAM
-	jr z, .asm_8ab37
-	call Function89a23
-	hlcoord 1, 13
-	ld de, String_89135
-	call PlaceString
-	ld a, $2
-	call Function89254
-	jr c, .asm_8ab39
-.asm_8ab37
-	scf
-	ret
-.asm_8ab39
-	and a
-	ret
-
-Function8ab3b: ; 8ab3b (22:6b3b)
-.pressed_start
-	call Function891fe
-	call ClearBGPalettes
-	call Function893cc
-	call Function89807
-	call Function89492
-	call Function894ca
-	call OpenSRAMBank4
-	ld hl, $a603
-	ld de, wd008
-	call Function89381
-	call CloseSRAM
-	call Function8987f
-	call OpenSRAMBank4
-	hlcoord 1, 13
-	ld bc, $a007
-	call Function89a0c
-	call CloseSRAM
-	call Function891ab
-	call .JoypadLoop
-	jr c, .pressed_start
-	ret
-
-.JoypadLoop: ; 8ab77 (22:6b77)
-	call JoyTextDelay_ForcehJoyDown
-	bit A_BUTTON_F, c
-	jr nz, .a_b_button
-	bit B_BUTTON_F, c
-	jr nz, .a_b_button
-	bit START_F, c
-	jr z, .JoypadLoop
-	call PlayClickSFX
-	call Function89d0d
-	scf
-	ret
-
-.a_b_button
-	call PlayClickSFX
-	and a
-	ret
-
-Function8ab93: ; 8ab93 (22:6b93)
-	call ClearBGPalettes
-	call LoadStandardMenuDataHeader
-	callba Function105688
-	call ClearSprites
-	call Function891fe
-	call Function89b28
-	ret
-; 8aba9 (22:6ba9)
-
-Function8aba9: ; 8aba9
-	ld a, $2
-	call Function8b94a
-	ld a, $1
-	ld [wd032], a
-.asm_8abb3
-	call Function891fe
-	call Function8b677
-.asm_8abb9
-	call Function8b7bd
-	jr z, .asm_8abdf
-	ld a, c
-	ld [MenuSelection], a
-	call OpenSRAMBank4
-	call Function8931b
-	ld hl, $0011
-	add hl, bc
-	call Function89b45
-	call CloseSRAM
-	jr c, .asm_8abe2
-	ld de, SFX_WRONG
-	call WaitPlaySFX
-	call CloseSRAM
-	jr .asm_8abb9
-
-.asm_8abdf
-	xor a
-	ld c, a
-	ret
-
-.asm_8abe2
-	call PlayClickSFX
-.asm_8abe5
-	call Function891de
-	call ClearBGPalettes
-	call Function893cc
-	call OpenSRAMBank4
-	call Function8931b
-	call Function89844
-	call CloseSRAM
-	call OpenSRAMBank4
-	call Function8939a
-	call Function89856
-	hlcoord 1, 13
-	call Function899fe
-	call CloseSRAM
-	call Function891ab
-.asm_8ac0f
-	call Function89a57
-	jr c, .asm_8ac0f
-	and a
-	jr z, .asm_8abe5
-	cp $2
-	jr z, .asm_8ac0f
-	hlcoord 0, 12
-	ld b, $4
-	ld c, $12
-	call TextBox
-	hlcoord 1, 14
-	ld de, String_8ac3b
-	call PlaceString
-	ld a, $1
-	call Function8925e
-	jp c, .asm_8abb3
-	ld a, [MenuSelection]
-	ld c, a
-	ret
-; 8ac3b
-
-String_8ac3b: ; 8ac3b
-	db   "こ", $25, "ともだち", $1d, "でんわを"
-	next "かけますか?@"
-; 8ac4e
-
-Function8ac4e: ; 8ac4e
-	xor a
-	ld [MenuSelection], a
-	push de
-	call Function891de
-	call ClearBGPalettes
-	call Function893cc
-	pop bc
-	call Function89844
-	call Function8939a
-	call Function89856
-	hlcoord 1, 13
-	call Function899fe
-	call Function891ab
-	ret
-; 8ac70
-
-Function8ac70: ; 8ac70
-	push de
-	ld a, $3
-	call Function8b94a
-
-Function8ac76: ; 8ac76
-	call Function891fe
-	call Function8b677
-
-Function8ac7c: ; 8ac7c
-	call Function8b7bd
-	jr z, .asm_8acf0
-	ld a, c
-	ld [wd02f], a
-	ld [MenuSelection], a
-	call OpenSRAMBank4
-	call Function8931b
-	call Function8932d
-	call CloseSRAM
-	jr nc, .asm_8acb0
-	call OpenSRAMBank4
-	ld hl, $0011
-	add hl, bc
-	call Function89b45
-	call CloseSRAM
-	jr nc, .asm_8accc
-	call OpenSRAMBank4
-	call Function892b7
-	call CloseSRAM
-	jr .asm_8accc
-
-.asm_8acb0
-	call Function8ad0b
-	jr c, Function8ac76
-	and a
-	jr nz, .asm_8accc
-	call OpenSRAMBank4
-	ld h, b
-	ld l, c
-	ld d, $0
-	ld e, $6
-	add hl, de
-	ld d, h
-	ld e, l
-	pop hl
-	ld c, $1f
-	call Function89193
-	jr .asm_8ace4
-
-.asm_8accc
-	pop hl
-	call OpenSRAMBank4
-	ld d, b
-	ld e, c
-	ld c, $6
-	call Function89193
-	ld a, $6
-	add e
-	ld e, a
-	ld a, $0
-	adc d
-	ld d, a
-	ld c, $1f
-	call Function89193
-
-.asm_8ace4
-	call CloseSRAM
-	call LoadStandardFont
-	ld a, [wd02f]
-	ld c, a
-	and a
-	ret
-
-.asm_8acf0
-	ld hl, UnknownText_0x8ad06
-	call PrintText
-	ld a, $2
-	call Function89259
-	jp c, Function8ac7c
-	call LoadStandardFont
-	pop de
-	ld c, $0
-	scf
-	ret
-; 8ad06
-
-UnknownText_0x8ad06: ; 0x8ad06
-	; Finish registering CARDS?
-	text_jump UnknownText_0x1c554a
-	db "@"
-; 0x8ad0b
-
-Function8ad0b: ; 8ad0b
-.asm_8ad0b
-	ld a, [MenuSelection]
-	ld [wd02f], a
-	call Function891de
-	call ClearBGPalettes
-	call Function893cc
-	call OpenSRAMBank4
-	call Function8931b
-	push bc
-	call Function89844
-	call Function8939a
-	call Function89856
-	hlcoord 1, 13
-	call Function899fe
-	call CloseSRAM
-	call Function891ab
-	pop bc
-.asm_8ad37
-	push bc
-	call Function89a57
-	pop bc
-	jr c, .asm_8ad37
-	and a
-	jr z, .asm_8ad0b
-	cp $2
-	jr z, .asm_8ad37
-	call Mobile22_SetBGMapMode0
-	push bc
-	hlcoord 0, 12
-	ld b, $4
-	ld c, $12
-	call TextBox
-	ld de, String_8ad89
-	hlcoord 1, 14
-	call PlaceString
-	ld a, $2
-	call Function8925e
-	jr c, .asm_8ad87
-	call Mobile22_SetBGMapMode0
-	hlcoord 0, 12
-	ld b, $4
-	ld c, $12
-	call TextBox
-	ld de, String_8ad9c
-	hlcoord 1, 14
-	call PlaceString
-	ld a, $1
-	call Function8925e
-	jr c, .asm_8ad84
-	ld a, $0
-	jr .asm_8ad86
-
-.asm_8ad84
-	ld a, $1
-
-.asm_8ad86
-	and a
-
-.asm_8ad87
-	pop bc
-	ret
-; 8ad89
-
-String_8ad89: ; 8ad89
-	db   "こ", $25, "めいし", $1f, "けして"
-	next "いれかえますか?@"
-; 8ad9c
-
-String_8ad9c: ; 8ad9c
-	db   "おともだち", $25, "なまえを"
-	next "のこして おきますか?@"
-; 8adb3
-
-Function8adb3: ; 8adb3
-	call Function891de
-	call Function8a262
-	push af
-	call Function891de
-	pop af
-	ret
-; 8adbf
-
-Function8adbf: ; 8adbf
-	call OpenSRAMBank4
-	ld hl, $a603
-	call Function89b45
-	call CloseSRAM
-	ret
-; 8adcc
-
-Function8adcc: ; 8adcc
-	call OpenSRAMBank4
-	call Function8b3b0
-	call CloseSRAM
-	ret nc
-	cp $2
-	ret z
-	scf
-	ret
-; 8addb
--- a/misc/mobile_22_2.asm
+++ /dev/null
@@ -1,1162 +1,0 @@
-Function8b342:: ; 8b342
-; Loads the secondary map header pointer, then runs through a
-; dw with three dummy functions.  Spends a lot of energy
-; doing pretty much nothing.
-	call GetSecondaryMapHeaderPointer
-	ld d, h
-	ld e, l
-
-; Everything between here and "ret" is useless.
-	xor a
-.loop
-	push af
-	ld hl, .dw
-	rst JumpTable
-	pop af
-	inc a
-	cp 3
-	jr nz, .loop
-	ret
-; 8b354
-
-.dw ; 8b354
-	dw .zero
-	dw .one
-	dw .two
-; 8b35a
-
-.zero ; 8b35a
-	mobile
-; 8b35b
-
-.one ; 8b35b
-	mobile
-; 8b35c
-
-.two ; 8b35c
-	mobile
-; 8b35d
-
-Function8b35d: ; 8b35d
-	ld a, h
-	cp d
-	ret nz
-	ld a, l
-	cp e
-	ret
-; 8b363
-
-Function8b363: ; 8b363
-	push bc
-	callba Mobile_AlwaysReturnNotCarry
-	pop bc
-	ret
-; 8b36c
-
-Function8b36c: ; 8b36c (22:736c)
-	; [bc + (0:4)] = -1
-	push bc
-	ld h, b
-	ld l, c
-	ld bc, 4
-	ld a, -1
-	call ByteFill
-	pop bc
-	ret
-
-Function8b379: ; 8b379 (22:7379)
-	; d = [bc + e]
-	push bc
-	ld a, c
-	add e
-	ld c, a
-	ld a, $0
-	adc b
-	ld b, a
-	ld a, [bc]
-	ld d, a
-	pop bc
-	ret
-
-Function8b385: ; 8b385 (22:7385)
-	; [bc + e] = d
-	push bc
-	ld a, c
-	add e
-	ld c, a
-	ld a, $0
-	adc b
-	ld b, a
-	ld a, d
-	ld [bc], a
-	pop bc
-	ret
-
-Function8b391: ; 8b391 (22:7391)
-	; find first e in range(4) such that [bc + e] == -1
-	; if none exist, return carry
-	push bc
-	ld e, 0
-	ld d, 4
-.loop
-	ld a, [bc]
-	inc bc
-	cp -1
-	jr z, .done
-	inc e
-	dec d
-	jr nz, .loop
-	dec e
-	scf
-.done
-	pop bc
-	ret
-
-Function8b3a4: ; 8b3a4 (22:73a4)
-	; strcmp(hl, bc, 4)
-	push de
-	push bc
-	ld d, b
-	ld e, c
-	ld c, 4
-	call Function89185
-	pop bc
-	pop de
-	ret
-
-Function8b3b0: ; 8b3b0 (22:73b0)
-	ld bc, $a037 ; 4:a037
-	ld a, [$a60b]
-	and a
-	jr z, .asm_8b3c2
-	cp $3
-	jr nc, .asm_8b3c2
-	call Function8b391
-	jr c, .asm_8b3c9
-.asm_8b3c2
-	call Function8b36c
-	xor a
-	ld [$a60b], a
-.asm_8b3c9
-	ld a, [$a60b]
-	ret
-
-Function8b3cd: ; 8b3cd (22:73cd)
-	push de
-	push bc
-	ld e, $4
-.asm_8b3d1
-	ld a, [bc]
-	inc bc
-	call Function8998b
-	inc hl
-	dec e
-	jr nz, .asm_8b3d1
-	pop bc
-	pop de
-	ret
-
-Function8b3dd: ; 8b3dd (22:73dd)
-	push de
-	push bc
-	call JoyTextDelay_ForcehJoyDown ; joypad
-	ld a, c
-	pop bc
-	pop de
-	bit A_BUTTON_F, a
-	jr nz, .a_button
-	bit B_BUTTON_F, a
-	jr nz, .b_button
-	bit D_UP_F, a
-	jr nz, .d_up
-	bit D_DOWN_F, a
-	jr nz, .d_down
-	and a
-	ret
-
-.a_button
-	ld a, e
-	cp $3
-	jr z, .e_is_zero
-	inc e
-	ld d, 0
-	call Function8b385
-	xor a
-	ld [wd010], a
-	ret
-
-.e_is_zero
-	call PlayClickSFX
-	ld d, $0
-	scf
-	ret
-
-.b_button
-	ld a, e
-	and a
-	jr nz, .e_is_not_zero
-	call PlayClickSFX
-	ld d, -1
-	call Function8b385
-	ld d, 1
-	scf
-	ret
-
-.e_is_not_zero
-	ld d, -1
-	call Function8b385
-	dec e
-	xor a
-	ld [wd010], a
-	ret
-
-.d_up
-	call Function8b379
-	ld a, d
-	cp $a
-	jr c, .less_than_10_up_1
-	ld d, $9
-.less_than_10_up_1
-	inc d
-	ld a, d
-	cp $a
-	jr c, .less_than_10_up_2
-	ld d, $0
-.less_than_10_up_2
-	call Function8b385
-	xor a
-	ld [wd010], a
-	ret
-
-.d_down
-	call Function8b379
-	ld a, d
-	cp $a
-	jr c, .less_than_10_down
-	ld d, $0
-.less_than_10_down
-	ld a, d
-	dec d
-	and a
-	jr nz, .nonzero_down
-	ld d, $9
-.nonzero_down
-	call Function8b385
-	xor a
-	ld [wd010], a
-	ret
-
-Function8b45c: ; 8b45c (22:745c)
-	call Function8b36c
-	xor a
-	ld [wd010], a
-	ld [wd012], a
-	call Function8b391
-	ld d, $0
-	call Function8b385
-.asm_8b46e
-	call Mobile22_SetBGMapMode0
-	call Function8b493
-	call Function8b4cc
-	call Function8b518
-	call Function89b78
-	push bc
-	call Function8b4fd
-	call Function89c44
-	ld a, $1
-	ld [hBGMapMode], a
-	pop bc
-	call Function8b3dd
-	jr nc, .asm_8b46e
-	ld a, d
-	and a
-	ret z
-	scf
-	ret
-
-Function8b493: ; 8b493 (22:7493)
-	push bc
-	call Mobile22_SetBGMapMode0
-	call Function8b521
-	ld hl, Jumptable_8b4a0
-	pop bc
-	rst JumpTable
-	ret
-
-Jumptable_8b4a0: ; 8b4a0 (22:74a0)
-	dw Function8b4a4
-	dw Function8b4b8
-
-
-Function8b4a4: ; 8b4a4 (22:74a4)
-	push bc
-	push de
-	call Function8b4d8
-	call TextBox
-	pop de
-	pop bc
-	call Function8b4cc
-	call Function8b518
-	call Function8b3cd
-	ret
-
-Function8b4b8: ; 8b4b8 (22:74b8)
-	push bc
-	push de
-	call Function8b4ea
-	call Function89b3b
-	pop de
-	pop bc
-	call Function8b4cc
-	call Function8b518
-	call Function8b3cd
-	ret
-
-Function8b4cc: ; 8b4cc (22:74cc)
-	push bc
-	ld hl, Unknown_8b529
-	call Function8b50a
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	pop bc
-	ret
-
-Function8b4d8: ; 8b4d8 (22:74d8)
-	ld hl, Unknown_8b529
-	call Function8b50a
-	push hl
-	inc hl
-	inc hl
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	pop hl
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ret
-
-Function8b4ea: ; 8b4ea (22:74ea)
-	ld hl, Unknown_8b529
-	call Function8b50a
-	push hl
-	inc hl
-	inc hl
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld c, a
-	pop hl
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	ret
-
-Function8b4fd: ; 8b4fd (22:74fd)
-	ld hl, Unknown_8b529 + 4
-	call Function8b50a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	ld d, a
-	ret
-
-Function8b50a: ; 8b50a (22:750a)
-	ld a, [wd02e]
-	and a
-	ret z
-	ld b, $0
-	ld c, $8
-.asm_8b513
-	add hl, bc
-	dec a
-	jr nz, .asm_8b513
-	ret
-
-Function8b518: ; 8b518 (22:7518)
-	push de
-	ld d, $0
-	ld e, $14
-	add hl, de
-	inc hl
-	pop de
-	ret
-
-Function8b521: ; 8b521 (22:7521)
-	ld hl, Unknown_8b529 + 7
-	call Function8b50a
-	ld a, [hl]
-	ret
-; 8b529 (22:7529)
-
-Unknown_8b529: ; 8b529
-	dwcoord 2, 5
-	db 1, 4, $20, $49, 0, 1
-	dwcoord 7, 4
-	db 1, 4, $48, $41, 0, 0
-; 8b539
-
-Function8b539: ; 8b539 (22:7539)
-	ld bc, wd017
-	call Function8b36c
-	xor a
-	ld [wd012], a
-	ld [wd02e], a
-	call Function8b493
-	call Function8b4fd
-	ld e, $0
-	call Function89c44
-	call CGBOnly_LoadEDTile
-	ret
-
-Function8b555: ; 8b555 (22:7555)
-.loop
-	ld hl, UnknownText_0x8b5ce
-	call PrintText
-	ld bc, wd017
-	call Function8b45c
-	jr c, .asm_8b5c8
-	call Function89448
-	ld bc, wd017
-	call Function8b493
-	ld bc, wd017
-	call Function8b664
-	jr nz, .asm_8b57c
-	ld hl, UnknownText_0x8b5e2
-	call PrintText
-	jr .loop
-
-.asm_8b57c
-	ld hl, UnknownText_0x8b5d3
-	call PrintText
-	ld bc, wd013
-	call Function8b45c
-	jr c, .loop
-	ld bc, wd017
-	ld hl, wd013
-	call Function8b3a4
-	jr z, .strings_equal
-	call Function89448
-	ld bc, wd013
-	call Function8b493
-	ld hl, UnknownText_0x8b5d8
-	call PrintText
-	jr .asm_8b57c
-
-.strings_equal
-	call OpenSRAMBank4
-	ld hl, wd013
-	ld de, $a037 ; 4:a037
-	ld bc, $4
-	call CopyBytes
-	call CloseSRAM
-	call Function89448
-	ld bc, wd013
-	call Function8b493
-	ld hl, UnknownText_0x8b5dd
-	call PrintText
-	and a
-.asm_8b5c8
-	push af
-	call Function89448
-	pop af
-	ret
-; 8b5ce (22:75ce)
-
-UnknownText_0x8b5ce: ; 0x8b5ce
-	; Please enter any four-digit number.
-	text_jump UnknownText_0x1bc187
-	db "@"
-; 0x8b5d3
-
-UnknownText_0x8b5d3: ; 0x8b5d3
-	; Enter the same number to confirm.
-	text_jump UnknownText_0x1bc1ac
-	db "@"
-; 0x8b5d8
-
-UnknownText_0x8b5d8: ; 0x8b5d8
-	; That's not the same number.
-	text_jump UnknownText_0x1bc1cf
-	db "@"
-; 0x8b5dd
-
-UnknownText_0x8b5dd: ; 0x8b5dd
-	; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER.
-	text_jump UnknownText_0x1bc1eb
-	db "@"
-; 0x8b5e2
-
-UnknownText_0x8b5e2: ; 0x8b5e2
-	; 0000 is invalid!
-	text_jump UnknownText_0x1bc23e
-	db "@"
-; 0x8b5e7
-
-Function8b5e7: ; 8b5e7 (22:75e7)
-	ld bc, wd013
-	call Function8b36c
-	xor a
-	ld [wd012], a
-	ld [wd02e], a
-	call Function8b493
-	call Function891ab
-	call Function8b4fd
-	ld e, $0
-	call Function89c44
-.asm_8b602
-	ld hl, UnknownText_0x8b642
-	call PrintText
-	ld bc, wd013
-	call Function8b45c
-	jr c, .asm_8b63c
-	call Function89448
-	ld bc, wd013
-	call Function8b493
-	call OpenSRAMBank4
-	ld hl, $a037 ; 4:a037
-	call Function8b3a4
-	call CloseSRAM
-	jr z, .asm_8b635
-	ld hl, UnknownText_0x8b647
-	call PrintText
-	ld bc, wd013
-	call Function8b36c
-	jr .asm_8b602
-.asm_8b635
-	ld hl, UnknownText_0x8b64c
-	call PrintText
-	and a
-.asm_8b63c
-	push af
-	call Function89448
-	pop af
-	ret
-; 8b642 (22:7642)
-
-UnknownText_0x8b642: ; 0x8b642
-	; Enter the CARD FOLDER PASSCODE.
-	text_jump UnknownText_0x1bc251
-	db "@"
-; 0x8b647
-
-UnknownText_0x8b647: ; 0x8b647
-	; Incorrect PASSCODE!
-	text_jump UnknownText_0x1bc272
-	db "@"
-; 0x8b64c
-
-UnknownText_0x8b64c: ; 0x8b64c
-	; CARD FOLDER open.@ @
-	text_jump UnknownText_0x1bc288
-	start_asm
-	ld de, SFX_TWINKLE
-	call PlaySFX
-	call WaitSFX
-	ld c, $8
-	call DelayFrames
-	ld hl, .string_8b663
-	ret
-.string_8b663
-	db "@"
-; 8b664
-
-Function8b664: ; 8b664 (22:7664)
-	push bc
-	ld de, $4
-.asm_8b668
-	ld a, [bc]
-	cp $0
-	jr nz, .asm_8b66e
-	inc d
-.asm_8b66e
-	inc bc
-	dec e
-	jr nz, .asm_8b668
-	pop bc
-	ld a, d
-	cp $4
-	ret
-
-Function8b677: ; 8b677
-	call ClearBGPalettes
-	call DisableLCD
-	call Function8b690
-	call Function8b6bb
-	call Function8b6ed
-	call EnableLCD
-	call Function891ab
-	call SetPalettes
-	ret
-; 8b690
-
-Function8b690: ; 8b690
-	ld hl, GFX_17afa5 + $514
-	ld de, VTiles2
-	ld bc, $160
-	ld a, BANK(GFX_17afa5)
-	call FarCopyBytes
-	ld hl, GFX_17afa5 + $514 + $160 - $10
-	ld de, VTiles2 tile $61
-	ld bc, $10
-	ld a, BANK(GFX_17afa5)
-	call FarCopyBytes
-	ld hl, GFX_17afa5 + $514 + $160
-	ld de, VTiles1 tile $6e
-	ld bc, $10
-	ld a, BANK(GFX_17afa5)
-	call FarCopyBytes
-	ret
-; 8b6bb
-
-Function8b6bb: ; 8b6bb
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_8b6d5
-	ld de, UnknBGPals
-	ld bc, $0018
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	call Function8949c
-	ret
-; 8b6d5
-
-Palette_8b6d5: ; 8b6d5
-	RGB 31, 31, 31
-	RGB 31, 21, 00
-	RGB 14, 07, 03
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 31, 21, 00
-	RGB 22, 09, 17
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 31, 21, 00
-	RGB 06, 24, 08
-	RGB 00, 00, 00
-; 8b6ed
-
-Function8b6ed: ; 8b6ed
-	hlcoord 0, 0, AttrMap
-	ld bc, $012c
-	xor a
-	call ByteFill
-	hlcoord 0, 14, AttrMap
-	ld bc, $0050
-	ld a, $7
-	call ByteFill
-	ret
-; 8b703
-
-Function8b703: ; 8b703
-	call Mobile22_SetBGMapMode0
-	push hl
-	ld a, $c
-	ld [hli], a
-	inc a
-	call Function8b73e
-	inc a
-	ld [hl], a
-	pop hl
-	push hl
-	push bc
-	ld de, SCREEN_WIDTH
-	add hl, de
-.asm_8b717
-	push hl
-	ld a, $f
-	ld [hli], a
-	ld a, $7f
-	call Function8b73e
-	ld a, $11
-	ld [hl], a
-	pop hl
-	ld de, SCREEN_WIDTH
-	add hl, de
-	dec b
-	jr nz, .asm_8b717
-	call Function8b732
-	pop bc
-	pop hl
-	jr Function8b744
-; 8b732
-
-Function8b732: ; 8b732
-	ld a, $12
-	ld [hli], a
-	ld a, $13
-	call Function8b73e
-	ld a, $14
-	ld [hl], a
-	ret
-; 8b73e
-
-Function8b73e: ; 8b73e
-	ld d, c
-.asm_8b73f
-	ld [hli], a
-	dec d
-	jr nz, .asm_8b73f
-	ret
-; 8b744
-
-Function8b744: ; 8b744
-	ld de, AttrMap - TileMap
-	add hl, de
-	inc b
-	inc b
-	inc c
-	inc c
-	xor a
-.asm_8b74d
-	push bc
-	push hl
-.asm_8b74f
-	ld [hli], a
-	dec c
-	jr nz, .asm_8b74f
-	pop hl
-	ld de, SCREEN_WIDTH
-	add hl, de
-	pop bc
-	dec b
-	jr nz, .asm_8b74d
-	ret
-; 8b75d
-
-Function8b75d: ; 8b75d
-	call Mobile22_SetBGMapMode0
-	hlcoord 0, 0
-	ld a, $1
-	ld bc, SCREEN_WIDTH
-	call ByteFill
-	hlcoord 0, 1
-	ld a, $2
-	ld [hl], a
-	hlcoord 9, 1
-	ld c, $b
-	call Function8b788
-	hlcoord 1, 1
-	ld a, $4
-	ld e, $8
-.asm_8b780
-	ld [hli], a
-	inc a
-	dec e
-	jr nz, .asm_8b780
-	jr Function8b79e
-; 8b787
-
-Function8b787: ; 8b787
-	ret
-; 8b788
-
-Function8b788: ; 8b788
-.asm_8b788
-	ld a, $2
-	ld [hli], a
-	dec c
-	ret z
-	ld a, $1
-	ld [hli], a
-	dec c
-	ret z
-	ld a, $3
-	ld [hli], a
-	dec c
-	ret z
-	ld a, $1
-	ld [hli], a
-	dec c
-	jr nz, .asm_8b788
-	ret
-; 8b79e
-
-Function8b79e: ; 8b79e
-	hlcoord 0, 1, AttrMap
-	ld a, $1
-	ld [hli], a
-	hlcoord 9, 1, AttrMap
-	ld e, $b
-.asm_8b7a9
-	ld a, $2
-	ld [hli], a
-	dec e
-	ret z
-	xor a
-	ld [hli], a
-	dec e
-	ret z
-	ld a, $1
-	ld [hli], a
-	dec e
-	ret z
-	xor a
-	ld [hli], a
-	dec e
-	jr nz, .asm_8b7a9
-	ret
-; 8b7bd
-
-Function8b7bd: ; 8b7bd
-	call Function8b855
-	ld hl, MenuDataHeader_0x8b867
-	call CopyMenuDataHeader
-	ld a, [wd030]
-	ld [wMenuCursorBuffer], a
-	ld a, [wd031]
-	ld [wMenuScrollPosition], a
-	ld a, [wd032]
-	and a
-	jr z, .asm_8b7e0
-	ld a, [wMenuFlags]
-	set 3, a
-	ld [wMenuFlags], a
-
-.asm_8b7e0
-	ld a, [wd0e3]
-	and a
-	jr z, .asm_8b7ea
-	dec a
-	ld [wScrollingMenuCursorPosition], a
-
-.asm_8b7ea
-	hlcoord 0, 2
-	ld b, $b
-	ld c, $12
-	call Function8b703
-	call Function8b75d
-	call UpdateSprites
-	call Function89209
-	call ScrollingMenu
-	call Function8920f
-	ld a, [wMenuJoypad]
-	cp $2
-	jr z, .asm_8b823
-	cp $20
-	jr nz, .asm_8b813
-	call Function8b832
-	jr .asm_8b7ea
-
-.asm_8b813
-	cp $10
-	jr nz, .asm_8b81c
-	call Function8b83e
-	jr .asm_8b7ea
-
-.asm_8b81c
-	ld a, [MenuSelection]
-	cp $ff
-	jr nz, .asm_8b824
-
-.asm_8b823
-	xor a
-
-.asm_8b824
-	ld c, a
-	ld a, [wMenuCursorY]
-	ld [wd030], a
-	ld a, [wMenuScrollPosition]
-	ld [wd031], a
-	ret
-; 8b832
-
-Function8b832: ; 8b832
-	ld a, [wMenuScrollPosition]
-	ld hl, wMenuData2Items
-	sub [hl]
-	jr nc, Function8b84b
-	xor a
-	jr Function8b84b
-; 8b83e
-
-Function8b83e: ; 8b83e
-	ld a, [wMenuScrollPosition]
-	ld hl, wMenuData2Items
-	add [hl]
-	cp $24
-	jr c, Function8b84b
-	ld a, $24
-
-Function8b84b: ; 8b84b
-	ld [wMenuScrollPosition], a
-	ld a, [wMenuCursorY]
-	ld [wMenuCursorBuffer], a
-	ret
-; 8b855
-
-Function8b855: ; 8b855
-	ld a, $28
-	ld hl, wd002
-	ld [hli], a
-	ld c, $28
-	xor a
-.asm_8b85e
-	inc a
-	ld [hli], a
-	dec c
-	jr nz, .asm_8b85e
-	ld a, $ff
-	ld [hl], a
-	ret
-; 8b867
-
-MenuDataHeader_0x8b867: ; 0x8b867
-	db $40 ; flags
-	db 03, 01 ; start coords
-	db 13, 18 ; end coords
-	dw MenuData2_0x8b870
-	db 1 ; default option
-; 0x8b86f
-
-	db 0
-
-MenuData2_0x8b870: ; 0x8b870
-	db $3c ; flags
-	db 5 ; items
-	db 3, 1
-	dbw 0, wd002
-	dba Function8b880
-	dba Function8b88c
-	dba Function8b8c8
-; 8b880
-
-Function8b880: ; 8b880
-	ld h, d
-	ld l, e
-	ld de, MenuSelection
-	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
-	call PrintNum
-	ret
-; 8b88c
-
-Function8b88c: ; 8b88c
-	call OpenSRAMBank4
-	ld h, d
-	ld l, e
-	push hl
-	ld de, String_89116
-	call Function8931b
-	call Function8932d
-	jr c, .asm_8b8a3
-	ld hl, 0
-	add hl, bc
-	ld d, h
-	ld e, l
-
-.asm_8b8a3
-	pop hl
-	push hl
-	call PlaceString
-	pop hl
-	ld d, $0
-	ld e, $6
-	add hl, de
-	push hl
-	ld de, String_89116
-	call Function8931b
-	call Function8934a
-	jr c, .asm_8b8c0
-	ld hl, $0006
-	add hl, bc
-	ld d, h
-	ld e, l
-
-.asm_8b8c0
-	pop hl
-	call PlaceString
-	call CloseSRAM
-	ret
-; 8b8c8
-
-Function8b8c8: ; 8b8c8
-	hlcoord 0, 14
-	ld b, $2
-	ld c, $12
-	call TextBox
-	ld a, [wd033]
-	ld b, 0
-	ld c, a
-	ld hl, Unknown_8b903
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld d, h
-	ld e, l
-	hlcoord 1, 16
-	call PlaceString
-	hlcoord 0, 13
-	ld a, $f
-	ld [hl], a
-	hlcoord 19, 13
-	ld a, $11
-	ld [hl], a
-	ld a, [wMenuScrollPosition]
-	cp $24
-	ret c
-	hlcoord 0, 13
-	ld c, $12
-	call Function8b732
-	ret
-; 8b903
-
-Unknown_8b903: ; 8b903
-	dw String_8b90b
-	dw String_8b919
-	dw String_8b92a
-	dw String_8b938
-
-String_8b90b: db "めいしを えらんでください@"        ; Please select a noun.
-String_8b919: db "どの めいしと いれかえますか?@"    ; OK to swap with any noun?
-String_8b92a: db "あいてを えらんでください@"        ; Please select an opponent.
-String_8b938: db "いれる ところを えらんでください@" ; Please select a location.
-; 8b94a
-
-Function8b94a: ; 8b94a
-	ld [wd033], a
-	xor a
-	ld [wMenuScrollPosition], a
-	ld [wd032], a
-	ld [wd0e3], a
-	ld [wd031], a
-	ld a, $1
-	ld [wd030], a
-	ret
-; 8b960
-
-
-Function8b960: ; 8b960 (22:7960)
-	ld hl, MenuDataHeader_0x8b9ac
-	call LoadMenuDataHeader
-	call Function8b9e9
-	jr c, .asm_8b97a
-	hlcoord 11, 0
-	ld b, $6
-	ld c, $7
-	call Function8b703
-	ld hl, MenuDataHeader_0x8b9b1
-	jr .asm_8b987
-.asm_8b97a
-	hlcoord 11, 0
-	ld b, $a
-	ld c, $7
-	call Function8b703
-	ld hl, MenuDataHeader_0x8b9ca
-.asm_8b987
-	ld a, $1
-	call Function89d5e
-	ld hl, Function8b9ab
-	call Function89d85
-	call ExitMenu
-	jr c, .asm_8b99c
-	call Function8b99f
-	jr nz, .asm_8b99d
-.asm_8b99c
-	xor a
-.asm_8b99d
-	ld c, a
-	ret
-
-Function8b99f: ; 8b99f (22:799f)
-	ld hl, wd002
-	dec a
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hl]
-	cp $ff
-	ret
-; 8b9ab (22:79ab)
-
-Function8b9ab: ; 8b9ab
-	ret
-; 8b9ac
-
-MenuDataHeader_0x8b9ac: ; 0x8b9ac
-	db $40 ; flags
-	db 00, 11 ; start coords
-	db 11, 19 ; end coords
-
-MenuDataHeader_0x8b9b1: ; 0x8b9b1
-	db $40 ; flags
-	db 00, 11 ; start coords
-	db 07, 19 ; end coords
-	dw MenuData2_0x8b9b9
-	db 1 ; default option
-; 0x8b9b9
-
-MenuData2_0x8b9b9: ; 0x8b9b9
-	db $a0 ; flags
-	db 3 ; items
-	db "へんしゅう@" ; EDIT
-	db "いれかえ@"   ; REPLACE
-	db "やめる@"     ; QUIT
-; 0x8b9ca
-
-MenuDataHeader_0x8b9ca: ; 0x8b9ca
-	db $40 ; flags
-	db 00, 11 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x8b9d2
-	db 1 ; default option
-; 0x8b9d2
-
-MenuData2_0x8b9d2: ; 0x8b9d2
-	db $a0 ; flags
-	db 5 ; items
-	db "みる@"       ; VIEW
-	db "へんしゅう@" ; EDIT
-	db "いれかえ@"   ; REPLACE
-	db "けす@"       ; ERASE
-	db "やめる@"     ; QUIT
-; 0x8b9e9
-
-Function8b9e9: ; 8b9e9 (22:79e9)
-	call OpenSRAMBank4
-	call Function8931b
-	call Function8932d
-	jr nc, .asm_8b9f6
-	jr .asm_8b9ff
-.asm_8b9f6
-	ld hl, $11
-	add hl, bc
-	call Function89b45
-	jr c, .asm_8ba08
-.asm_8b9ff
-	call Function892b4
-	and a
-	ld de, Unknown_8ba1c
-	jr .asm_8ba0c
-.asm_8ba08
-	ld de, Unknown_8ba1f
-	scf
-.asm_8ba0c
-	push af
-	ld hl, wd002
-.asm_8ba10
-	ld a, [de]
-	inc de
-	ld [hli], a
-	cp $ff
-	jr nz, .asm_8ba10
-	call CloseSRAM
-	pop af
-	ret
-; 8ba1c (22:7a1c)
-
-Unknown_8ba1c: ; 8b1ac
-	db 2, 4, -1
-
-Unknown_8ba1f: ; 8ba1f
-	db 1, 2, 4, 3, -1
-; 8ba24
--- a/misc/mobile_40.asm
+++ /dev/null
@@ -1,8156 +1,0 @@
-Function100000: ; 100000
-; d: 1 or 2
-; e: bank
-; bc: addr
-	ld a, [rSVBK]
-	push af
-	ld a, 1
-	ld [rSVBK], a
-
-	call Function100022
-	call Function1000ba
-	call Function100675
-	call Function100057
-	call Function10016f
-	call Function100276
-
-	push bc
-	call Function100301
-	pop bc
-
-	pop af
-	ld [rSVBK], a
-	ret
-; 100022
-
-Function100022: ; 100022
-	push de
-	push bc
-	call SetRAMStateForMobile
-	pop bc
-	pop de
-	ld a, d
-	ld [wcd21], a
-	ld a, e
-	ld [wcd22], a
-	ld a, c
-	ld [wcd23], a
-	ld a, b
-	ld [wcd24], a
-	callba Function10127e
-	callba MobileFunc_106462
-	callba Function106464 ; load broken gfx
-	callba Function11615a ; init RAM
-	ld hl, VramState
-	set 1, [hl]
-	ret
-; 100057
-
-Function100057: ; 100057
-	call DisableMobile
-	call ReturnToMapFromSubmenu
-	ld hl, VramState
-	res 1, [hl]
-	ret
-; 100063
-
-SetRAMStateForMobile: ; 100063
-	xor a
-	ld hl, BGMapBuffer
-	ld bc, $65
-	call ByteFill
-	xor a
-	ld hl, wc300
-	ld bc, $100
-	call ByteFill
-	ld a, [rIE]
-	ld [BGMapBuffer], a
-	xor a
-	ld [hMapAnims], a
-	ld [hLCDCPointer], a
-	ret
-; 100082
-
-EnableMobile: ; 100082
-	xor a
-	ld hl, OverworldMap
-	ld bc, OverworldMapEnd - OverworldMap
-	call ByteFill
-
-	di
-	call DoubleSpeed
-	xor a
-	ld [rIF], a
-	ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL
-	ld [rIE], a
-	xor a
-	ld [hMapAnims], a
-	ld [hLCDCPointer], a
-	ld a, $01
-	ld [hMobileReceive], a
-	ld [hMobile], a
-	ei
-
-	ret
-; 0x1000a4
-
-DisableMobile: ; 1000a4
-	di
-	xor a
-	ld [hMobileReceive], a
-	ld [hMobile], a
-	xor a
-	ld [hVBlank], a
-	call NormalSpeed
-	xor a
-	ld [rIF], a
-	ld a, [BGMapBuffer]
-	ld [rIE], a
-	ei
-	ret
-; 1000ba
-
-Function1000ba: ; 1000ba
-.loop
-	; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex])
-	ld hl, wcd23
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [wMobileCommsJumptableIndex]
-	ld e, a
-	ld d, 0
-	add hl, de
-	add hl, de
-	ld a, [wcd22]
-	call GetFarHalfword
-	ld a, [wcd22]
-	rst FarCall
-
-	call Function1000e8
-	call Function1000fa
-	call Function100144
-	call Function100163
-	ld a, [wcd2b]
-	and a
-	jr z, .loop
-	call DelayFrame
-	ret
-; 1000e8
-
-Function1000e8: ; 1000e8
-	ld hl, wcd29
-	bit 7, [hl]
-	ret z
-	callba Function115dd3
-	ld hl, wcd29
-	set 6, [hl]
-	ret
-; 1000fa
-
-Function1000fa: ; 1000fa
-	ld a, [wc30d]
-	and a
-	ret z
-	ld hl, wcd29
-	bit 4, [hl]
-	ret z
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_100117
-	callba Function11619d
-	ld hl, wcd29
-	set 6, [hl]
-	ret
-
-.asm_100117
-	di
-	xor a
-	ld [rIF], a
-	ld a, [rIE]
-	and $13
-	ld [rIE], a
-	xor a
-	ld [hMobileReceive], a
-	ld [hMobile], a
-	ei
-
-	ld a, [wLinkMode]
-	push af
-	xor a
-	ld [wLinkMode], a
-	ld a, $04
-	ld [wc314 + 5], a
-	callba Function11619d
-	ld hl, wcd29
-	set 6, [hl]
-	pop af
-	ld [wLinkMode], a
-	ret
-; 100144
-
-Function100144: ; 100144
-	ld hl, wcd29
-	bit 5, [hl]
-	jr z, .asm_100155
-	res 5, [hl]
-	res 2, [hl]
-	res 6, [hl]
-	call Function100320
-	ret
-
-.asm_100155
-	bit 2, [hl]
-	ret z
-	res 2, [hl]
-	res 6, [hl]
-	callba HDMATransferTileMapToWRAMBank3
-	ret
-; 100163
-
-Function100163: ; 100163
-	ld hl, wcd29
-	bit 6, [hl]
-	ret z
-	res 6, [hl]
-	call DelayFrame
-	ret
-; 10016f
-
-Function10016f: ; 10016f
-	ld a, [wcd2b]
-	cp $01
-	ret z
-	cp $02
-	ret z
-	cp $ff
-	jp z, .asm_1001f5
-	cp $fe
-	jr z, .asm_1001c4
-	cp $f5
-	jr z, .asm_1001e7
-	cp $f6
-	jr z, .asm_1001b6
-	cp $fa
-	jp z, .asm_1001bd
-	cp $f7
-	jp z, .asm_1001ee
-	cp $f4
-	jr z, .asm_1001d2
-	cp $f3
-	jr z, .asm_1001cb
-	cp $f1
-	jr z, .asm_1001c4
-	cp $f2
-	jr z, .asm_1001c4
-	cp $fc
-	jr z, .asm_1001e6
-	cp $fb
-	jr z, .asm_1001af
-	cp $f8
-	ret z
-	ret   ; ????????????????????????????
-
-.asm_1001af
-	ld a, $d7
-	ld de, 0
-	jr .asm_1001d7
-
-.asm_1001b6
-	ld a, $d5
-	ld de, 0
-	jr .asm_1001d7
-
-.asm_1001bd
-	ld a, $d6
-	ld de, 0
-	jr .asm_1001d7
-
-.asm_1001c4
-	ld a, $d2
-	ld de, 2
-	jr .asm_1001d7
-
-.asm_1001cb
-	ld a, $d1
-	ld de, 1
-	jr .asm_1001d7
-
-.asm_1001d2
-	ld a, $d0
-	ld de, 0
-
-.asm_1001d7
-	ld [wc300], a
-	ld a, d
-	ld [wc302], a
-	ld a, e
-	ld [wc301], a
-	call Function10020b
-	ret
-
-.asm_1001e6
-	ret
-
-.asm_1001e7
-	ld de, String10025e
-	call Function100232
-	ret
-
-.asm_1001ee
-	ld de, String10024d
-	call Function100232
-	ret
-
-.asm_1001f5
-	ld a, [wcd2c]
-	ld [wc300], a
-	ld a, [wcd2d]
-	ld [wc302], a
-	ld a, [wcd2d]
-	ld [wc301], a
-	call Function10020b
-	ret
-; 10020b
-
-Function10020b: ; 10020b
-	xor a
-	ld [wc303], a
-	callba FadeOutPalettes
-	callba Function106464
-	call HideSprites
-	call DelayFrame
-
-	ld a, [rSVBK]
-	push af
-	ld a, $01
-	ld [rSVBK], a
-
-	callba DisplayMobileError
-
-	pop af
-	ld [rSVBK], a
-	ret
-; 100232
-
-Function100232: ; 100232
-	push de
-	callba Function106464
-	call Function3f20
-	call UpdateSprites
-	hlcoord 1, 2
-	pop de
-	call PlaceString
-	call Function100320
-	call JoyWaitAorB
-	ret
-; 10024d
-
-String10024d: ; 10024d
-	db   "つうしんを キャンセル しました@"
-; 10025e
-
-String10025e: ; 10025e
-	db   "おともだちと えらんだ へやが"
-	next "ちがうようです@"
-; 100276
-
-Function100276: ; 100276
-	ld a, [wcd2b]
-	cp $01
-	jr z, .asm_10029f
-	cp $02
-	jr z, .asm_100296
-	cp $f5
-	jr z, .asm_1002a5
-	cp $f6
-	jr z, .asm_1002a5
-	cp $f7
-	jr z, .asm_100293
-	cp $f8
-	jr z, .asm_1002b1
-	jr .asm_1002c0
-
-.asm_100293
-	ld c, $02
-	ret
-
-.asm_100296
-	callba Script_reloadmappart
-	ld c, $04
-	ret
-
-.asm_10029f
-	call Function1002dc
-	ld c, 0
-	ret
-
-.asm_1002a5
-	callba Script_reloadmappart
-	call Function1002ed
-	ld c, $03
-	ret
-
-.asm_1002b1
-	call Function1002c9
-	call Function1002dc
-	ld de, String10024d
-	call Function100232
-	ld c, $02
-	ret
-
-.asm_1002c0
-	call Function1002c9
-	call Function1002dc
-	ld c, $01
-	ret
-; 1002c9
-
-Function1002c9: ; 1002c9
-	ld hl, wcd2a
-	bit 0, [hl]
-	ret z
-	callba CleanUpBattleRAM
-	callba LoadPokemonData
-	ret
-; 1002dc
-
-Function1002dc: ; 1002dc
-	ld a, MAPSETUP_LINKRETURN
-	ld [hMapEntryMethod], a
-	callba RunMapSetupScript
-	xor a
-	ld [hMapEntryMethod], a
-	call LoadStandardFont
-	ret
-; 1002ed
-
-Function1002ed: ; 1002ed
-	callba LoadOW_BGPal7
-	callba ApplyPals
-	ld a, $01
-	ld [hCGBPalUpdate], a
-	call DelayFrame
-	ret
-; 100301
-
-Function100301: ; 100301
-	ld hl, wcd2a
-	bit 1, [hl]
-	ret z
-	callba Function106464
-	callba Function10202c
-	callba Function115dd3
-	call Function100320
-	call JoyWaitAorB
-	ret
-; 100320
-
-Function100320: ; 100320
-	callba Mobile_ReloadMapPart
-	ret
-; 100327
-
-Function100327: ; 100327
-	callba HDMATransferTileMapToWRAMBank3
-	ret
-; 100327
-
-
-Function10032e: ; 10032e
-	call Function10034d
-	ld e, a
-	ret nc
-	ld [wcd2b], a
-	ret
-; 100337
-
-Function100337: ; 100337
-	call Function10032e
-	ret c
-	ld a, [wc821]
-	bit 4, a
-	jr z, .asm_100345
-	ld a, e
-	and a
-	ret
-
-.asm_100345
-	ld a, $f9
-	ld e, a
-	ld [wcd2b], a
-	scf
-	ret
-; 10034d
-
-Function10034d: ; 10034d
-	ld a, [wc821]
-	bit 1, a
-	jr nz, .asm_10036a
-	bit 2, a
-	jr nz, .asm_10037e
-	bit 3, a
-	jr nz, .asm_100366
-	bit 0, a
-	jr nz, .asm_100364
-	ld a, $01
-	and a
-	ret
-
-.asm_100364
-	xor a
-	ret
-
-.asm_100366
-	ld a, $02
-	and a
-	ret
-
-.asm_10036a
-	ld a, 0
-	call Function3e32
-	ld [wcd2c], a
-	ld a, h
-	ld [wcd2d], a
-	ld a, l
-	ld [wcd2e], a
-	ld a, $ff
-	scf
-	ret
-
-.asm_10037e
-	ld a, $fe
-	scf
-	ret
-; 100382
-
-Function100382: ; 100382
-	ld a, [wcd27]
-	ld hl, Jumptable_10044e
-	rst JumpTable
-	ret
-; 10038a
-
-Function10038a: ; 10038a
-	ld hl, wccb4
-	ld a, $2e
-	call Function3e32
-	ret
-; 100393
-
-Function100393: ; 100393
-	ld hl, wcc60
-	ld a, $3a
-	call Function3e32
-	ret
-; 10039c
-
-Function10039c: ; 10039c
-	ld hl, wcc60
-	ld de, w3_d000
-	ld bc, $54
-	ld a, $03
-	call FarCopyWRAM
-	ret
-; 1003ab
-
-Function1003ab: ; 1003ab
-	ld hl, w3_d000
-	ld de, wcc60
-	ld bc, $54
-	ld a, $03
-	call FarCopyWRAM
-	ret
-; 1003ba
-
-Function1003ba: ; 1003ba
-	ld hl, wccb4
-	ld de, w3_d080
-	ld bc, $54
-	ld a, $03
-	call FarCopyWRAM
-	ret
-; 1003c9
-
-Function1003c9: ; 1003c9
-	ld hl, w3_d080
-	ld de, wccb4
-	ld bc, $54
-	ld a, $03
-	call FarCopyWRAM
-	ret
-; 1003d8
-
-Function1003d8: ; 1003d8
-	ld hl, wccb4
-	ld a, [hli]
-	ld c, a
-	ld b, 0
-	push hl
-	add hl, bc
-	ld a, [BGMapPalBuffer]
-	ld [hl], a
-	pop hl
-	inc bc
-	call Function10043a
-	add hl, bc
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld a, c
-	add $02
-	ld [wccb4], a
-	ret
-; 1003f5
-
-Function1003f5: ; 1003f5
-	ld a, [wcc60]
-	sub $03
-	ld [wcc60], a
-	ld a, [wccb4]
-	sub $03
-	ld [wccb4], a
-	ret
-; 100406
-
-Function100406: ; 100406
-	ld a, [wcc60]
-	sub $02
-	ld c, a
-	ld b, 0
-	ld hl, wcc61
-	call Function10043a
-	add hl, bc
-	ld a, [hli]
-	cp e
-	jr nz, .asm_100426
-	ld a, [hld]
-	cp d
-	jr nz, .asm_100426
-	dec hl
-	ld a, [BGMapPalBuffer]
-	cp [hl]
-	jr nz, .asm_10042d
-	xor a
-	ret
-
-.asm_100426
-	ld a, $f4
-	ld [wcd2b], a
-	jr .asm_100432
-
-.asm_10042d
-	ld a, $f3
-	ld [wcd2b], a
-
-.asm_100432
-	push hl
-	ld hl, wcd7c
-	inc [hl]
-	pop hl
-	scf
-	ret
-; 10043a
-
-Function10043a: ; 10043a
-	push hl
-	push bc
-	ld de, 0
-.asm_10043f
-	ld a, [hli]
-	add e
-	ld e, a
-	ld a, d
-	adc 0
-	ld d, a
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_10043f
-	pop bc
-	pop hl
-	ret
-; 10044e
-
-
-Jumptable_10044e: ; 10044e (40:444e)
-	dw Function10046a
-	dw Function10047c
-	dw Function100493
-	dw Function1004ba
-	dw Function1004f4
-	dw Function1004ce
-	dw Function1004de
-	dw Function1004a4
-	dw Function100495
-	dw Function1004ce
-	dw Function1004de
-	dw Function1004e9
-	dw Function1004f4
-	dw Function1004a4
-
-Function10046a: ; 10046a
-	ld hl, BGMapPalBuffer
-	inc [hl]
-	call Function1003d8
-	call Function1003ba
-	ld a, [wcd27]
-	inc a
-	ld [wcd27], a
-	ret
-; 10047c
-
-Function10047c: ; 10047c
-	call Function100337
-	ret c
-	ret z
-	cp $02
-	jr z, .asm_100487
-	jr .asm_10048d
-
-.asm_100487
-	ld a, $08
-	ld [wcd27], a
-	ret
-
-.asm_10048d
-	ld a, $02
-	ld [wcd27], a
-	ret
-; 100493
-
-Function100493: ; 100493
-	jr asm_100497
-
-Function100495: ; 100495
-	jr asm_100497
-
-asm_100497
-	call Function100337
-	ret c
-	ret z
-	ld a, [wcd27]
-	inc a
-	ld [wcd27], a
-	ret
-; 1004a4
-
-Function1004a4: ; 1004a4
-	call Function100406
-	jr c, .asm_1004b8
-	call Function1003c9
-	call Function1003f5
-	ld a, [wcd27]
-	set 7, a
-	ld [wcd27], a
-	ret
-
-.asm_1004b8
-	scf
-	ret
-; 1004ba
-
-Function1004ba: ; 1004ba
-	call Function10038a
-	and a
-	jr nz, .asm_1004c8
-	ld a, [wcd27]
-	inc a
-	ld [wcd27], a
-	ret
-
-.asm_1004c8
-	ld a, $08
-	ld [wcd27], a
-	ret
-; 1004ce
-
-Function1004ce: ; 1004ce
-	call Function100337
-	ret c
-	ret z
-	cp $02
-	ret nz
-	ld a, [wcd27]
-	inc a
-	ld [wcd27], a
-	ret
-; 1004de
-
-Function1004de: ; 1004de
-	call Function100393
-	ld a, [wcd27]
-	inc a
-	ld [wcd27], a
-	ret
-; 1004e9
-
-Function1004e9: ; 1004e9
-	call Function10038a
-	ld a, [wcd27]
-	inc a
-	ld [wcd27], a
-	ret
-; 1004f4
-
-Function1004f4: ; 1004f4
-	call Function100337
-	ret c
-	ret z
-	ld a, [wcd27]
-	inc a
-	ld [wcd27], a
-	call Function10039c
-	ret
-; 100504
-
-Function100504: ; 100504
-	push de
-	call Function3f20
-	call UpdateSprites
-	pop de
-	hlcoord 4, 2
-	call PlaceString
-	ret
-; 100513
-
-Function100513: ; 100513
-	call Function3f7c
-	call PlaceVerticalMenuItems
-	call InitVerticalMenuCursor
-	ld hl, w2DMenuFlags1
-	set 7, [hl]
-	ret
-; 100522
-
-Function100522: ; 100522
-	ld a, [wcd28]
-	ld hl, Jumptable_10052a
-	rst JumpTable
-	ret
-; 10052a
-
-Jumptable_10052a: ; 10052a
-	dw Function100534
-	dw Function100545
-	dw Function100545
-	dw Function100545
-	dw Function10054d
-; 100534
-
-Function100534: ; 100534
-	call Function100513
-	call UpdateSprites
-	call ApplyTilemap
-	ld a, [wcd28]
-	inc a
-	ld [wcd28], a
-	ret
-; 100545
-
-Function100545: ; 100545
-	ld a, [wcd28]
-	inc a
-	ld [wcd28], a
-	ret
-; 10054d
-
-Function10054d: ; 10054d
-	callba MobileMenuJoypad
-	ld a, c
-	ld hl, wMenuJoypadFilter
-	and [hl]
-	ret z
-	call MenuClickSound
-	bit 0, a
-	jr nz, .asm_100565
-	bit 1, a
-	jr nz, .asm_10056f
-	ret
-
-.asm_100565
-	ld a, [wcd28]
-	set 7, a
-	ld [wcd28], a
-	and a
-	ret
-
-.asm_10056f
-	ld a, [wcd28]
-	set 7, a
-	ld [wcd28], a
-	scf
-	ret
-; 100579
-
-Function100579: ; 100579
-	ld a, [wcd26]
-	ld hl, Jumptable_100581
-	rst JumpTable
-	ret
-; 100581
-
-Jumptable_100581: ; 100581
-	dw Function100585
-	dw Function100597
-; 100585
-
-Function100585: ; 100585
-	ld hl, MenuDataHeader_1005b2
-	call LoadMenuDataHeader
-	ld a, 0
-	ld [wcd28], a
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-
-Function100597: ; 100597
-	call Function100522
-	ld a, [wcd28]
-	bit 7, a
-	ret z
-	jr nc, .asm_1005a6
-	xor a
-	ld [wMenuCursorY], a
-
-.asm_1005a6
-	call ExitMenu
-	ld a, [wcd26]
-	set 7, a
-	ld [wcd26], a
-	ret
-; 1005b2
-
-MenuDataHeader_1005b2: ; 1005b2
-	db $40 ; flags
-	db 6, 14
-	db 10, 19
-	dw MenuData2_1005ba
-	db 1 ; default option
-
-MenuData2_1005ba:
-	db $c0 ; flags
-	db 2
-	db "はい@"
-	db "いいえ@"
-; 1005c3
-
-Function1005c3: ; 1005c3
-	ld a, [wcd26]
-	ld hl, Jumptable_1005cb
-	rst JumpTable
-	ret
-; 1005cb
-
-Jumptable_1005cb: ; 1005cb
-	dw Function1005cf
-	dw Function1005e1
-; 1005cf
-
-Function1005cf: ; 1005cf
-	ld hl, MenuDataHeader_1005fc
-	call LoadMenuDataHeader
-	ld a, 0
-	ld [wcd28], a
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-
-Function1005e1: ; 1005e1
-	call Function100522
-	ld a, [wcd28]
-	bit 7, a
-	ret z
-	jr nc, .asm_1005f0
-	xor a
-	ld [wMenuCursorY], a
-.asm_1005f0
-	call ExitMenu
-	ld a, [wcd26]
-	set 7, a
-	ld [wcd26], a
-	ret
-; 1005fc
-
-MenuDataHeader_1005fc: ; 1005fc
-	db $40 ; flags
-	db 6, 14
-	db 10, 19
-	dw MenuData2_100604
-	db 1 ; default option
-
-MenuData2_100604: ; 100604
-	db $c0 ; flags
-	db 2
-	db "かける@"
-	db "まつ@"
-; 10060d
-
-Mobile_CommunicationStandby: ; 10060d
-	hlcoord 3, 10
-	ld b, 1
-	ld c, 11
-	call Function3eea
-	ld de, .String
-	hlcoord 4, 11
-	call PlaceString
-	ret
-; 100621
-
-.String: ; 100621
-	db "つうしんたいきちゅう!@"
-; 10062d
-
-AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d
-	push bc
-	call IncrementMobileInactivityTimerByCFrames
-	pop bc
-	ld a, [wMobileInactivityTimerMinutes]
-	cp b
-	jr nc, .timed_out
-	and a
-	ret
-
-.timed_out
-	ld a, $fa
-	ld [wcd2b], a
-	scf
-	ret
-; 100641
-
-StartMobileInactivityTimer: ; 100641
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	ld [wMobileInactivityTimerSeconds], a
-	ld [wMobileInactivityTimerFrames], a
-	ret
-; 10064c
-
-IncrementMobileInactivityTimerBy1Frame: ; 10064c
-	ld c, 1
-IncrementMobileInactivityTimerByCFrames: ; 10064e
-	ld hl, wMobileInactivityTimerFrames ; timer?
-	ld a, [hl]
-	add c
-	cp 60
-	jr c, .seconds
-	xor a
-
-.seconds
-	ld [hld], a
-	ret c
-	ld a, [hl]
-	inc a
-	cp 60
-	jr c, .minutes
-	xor a
-
-.minutes
-	ld [hld], a
-	ret c
-	inc [hl]
-	ret
-; 100665
-
-Function100665: ; 100665
-	call UpdateTime
-	ld hl, wcd36
-	ld a, [hHours]
-	ld [hli], a
-	ld a, [hMinutes]
-	ld [hli], a
-	ld a, [hSeconds]
-	ld [hl], a
-	ret
-; 100675
-
-Function100675: ; 100675
-	ld hl, wcd2a
-	bit 2, [hl]
-	set 2, [hl]
-	ret nz
-	call Function1006d3
-	ret
-; 100681
-
-Function100681: ; 100681
-	push hl
-	ld hl, wcd2a
-	bit 2, [hl]
-	ld hl, wcd2a
-	set 2, [hl]
-	pop hl
-	jr nz, .asm_100694
-	push hl
-	call Function1006d3
-	pop hl
-.asm_100694
-	ld de, wcd32
-
-Function100697: ; 100697
-	ld a, [de]
-	and a
-	jr nz, .asm_1006bb
-	inc de
-	push de
-	call .asm_1006b4
-	ld de, String1006c2
-	call PlaceString
-	ld h, b
-	ld l, c
-	pop de
-	inc de
-	call .asm_1006b4
-	ld de, String1006c6
-	call PlaceString
-	ret
-
-.asm_1006b4
-	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
-	call PrintNum
-	ret
-
-.asm_1006bb
-	ld de, String1006ca
-	call PlaceString
-	ret
-; 1006c2
-
-String1006c2: ; 1006c2
-	db "ふん @"
-String1006c6: ; 1006c6
-	db "びょう@"
-String1006ca: ; 1006ca
-	db "1じかんいじょう@"
-; 1006d3
-
-Function1006d3: ; 1006d3
-	call UpdateTime
-	ld de, wcd34
-	ld hl, wcd38
-
-Function1006dc: ; 1006dc
-	ld a, [hld]
-	ld c, a
-	ld a, [hSeconds]
-	sub c
-	jr nc, .asm_1006e5
-	add $3c
-
-.asm_1006e5
-	ld [de], a
-	dec de
-	ld a, [hld]
-	ld c, a
-	ld a, [hMinutes]
-	sbc c
-	jr nc, .asm_1006f0
-	add $3c
-
-.asm_1006f0
-	ld [de], a
-	dec de
-	ld a, [hl]
-	ld c, a
-	ld a, [hHours]
-	sbc c
-	jr nc, .asm_1006fb
-	add $18
-
-.asm_1006fb
-	ld [de], a
-	ret
-; 1006fd
-
-Function1006fd: ; 1006fd
-	ld a, $04
-	ld hl, $a800
-	call GetSRAMBank
-	xor a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	call CloseSRAM
-	ret
-; 10070d
-
-Function10070d: ; 10070d
-	ld a, $04
-	ld hl, $a800
-	call GetSRAMBank
-	xor a
-	ld [hli], a
-	ld a, $0a
-	ld [hli], a
-	xor a
-	ld [hli], a
-	call CloseSRAM
-	ret
-; 100720
-
-Function100720: ; 100720
-	xor a
-	ld [wcd6a], a
-	call UpdateTime
-	ld a, [hHours]
-	ld [wcd72], a
-	ld a, [hMinutes]
-	ld [wcd73], a
-	ld a, [hSeconds]
-	ld [wcd74], a
-	ld a, $04
-	ld hl, $a800
-	call GetSRAMBank
-	ld a, [hli]
-	ld [wcd6c], a
-	ld a, [hli]
-	ld [wcd6d], a
-	ld a, [hli]
-	ld [wcd6e], a
-	call CloseSRAM
-	ld a, [wcd6d]
-	ld [wcd6b], a
-	ret
-; 100754
-
-Function100754: ; 100754
-	call UpdateTime
-	ld a, [hHours]
-	ld [wcd72], a
-	ld a, [hMinutes]
-	ld [wcd73], a
-	ld a, [hSeconds]
-	ld [wcd74], a
-	ld a, [wcd6d]
-	ld [wcd6b], a
-	ld hl, wcd2a
-	res 6, [hl]
-	ret
-; 100772
-
-Function100772: ; 100772
-	push de
-	ld hl, wcd6c
-	ld a, [de]
-	cp [hl]
-	jr c, .asm_10079a
-	jr nz, .asm_10078c
-	inc hl
-	inc de
-	ld a, [de]
-	cp [hl]
-	jr c, .asm_10079a
-	jr nz, .asm_10078c
-	inc hl
-	inc de
-	ld a, [de]
-	cp [hl]
-	jr c, .asm_10079a
-	jr z, .asm_10079a
-
-.asm_10078c
-	pop hl
-	ld a, [hli]
-	ld [wcd6c], a
-	ld a, [hli]
-	ld [wcd6d], a
-	ld a, [hli]
-	ld [wcd6e], a
-	ret
-
-.asm_10079a
-	pop de
-	ret
-; 10079c
-
-
-Function10079c: ; 10079c
-	ld a, [wcd21]
-	cp $01
-	jr nz, .dont_quit
-	ld hl, wcd2a
-	bit 5, [hl]
-	jr nz, .dont_quit
-	ld hl, wcd2a
-	bit 6, [hl]
-	jr nz, .dont_quit
-	ld a, [wcd6a]
-	add c
-	cp 60
-	jr nc, .overflow
-	ld [wcd6a], a
-	and a
-	ret
-
-.overflow
-	sub 60
-	ld [wcd6a], a
-	ld d, b
-	push de
-	call Function1007f6
-	pop de
-	jr c, .quit
-	ld a, c
-	and a
-	jr nz, .quit
-	ld a, b
-	cp 10
-	jr nc, .quit
-	ld a, d
-	and a
-	ret z
-	ld a, [wcd6b]
-	cp b
-	ret z
-	ld a, b
-	ld [wcd6b], a
-	call Function1008e0
-	and a
-	ret
-
-.quit
-	call Function1008e0
-	ld hl, wcd2a
-	set 4, [hl]
-	ld a, $fc
-	ld [wcd2b], a
-	scf
-	ret
-
-.dont_quit
-	and a
-	ret
-; 1007f6
-
-Function1007f6: ; 1007f6
-	call UpdateTime
-	ld hl, wcd74
-	ld de, wcd71
-	call Function1006dc
-	ld a, $04
-	call GetSRAMBank
-	ld hl, $a802
-	call Function100826
-	call CloseSRAM
-	ld hl, wcd6e
-	call Function100826
-	ld a, [hHours]
-	ld [wcd72], a
-	ld a, [hMinutes]
-	ld [wcd73], a
-	ld a, [hSeconds]
-	ld [wcd74], a
-	ret
-; 100826
-
-Function100826: ; 100826
-	ld a, [wcd71]
-	add [hl]
-	sub $3c
-	jr nc, .asm_100830
-	add $3c
-
-.asm_100830
-	ld [hld], a
-	ccf
-	ld a, [BGMapBufferPtrs]
-	adc [hl]
-	sub $3c
-	jr nc, .asm_10083c
-	add $3c
-
-.asm_10083c
-	ld [hld], a
-	ld b, a
-	ccf
-	ld a, [wcd6f]
-	adc [hl]
-	ld [hl], a
-	ld c, a
-	ret
-; 100846
-
-Function100846: ; 100846
-	ld hl, wcd2a
-	bit 5, [hl]
-	jr nz, .asm_10087c
-	ld a, [wcd6e]
-	ld c, a
-	ld a, 0
-	sub c
-	jr nc, .asm_100858
-	add $3c
-
-.asm_100858
-	ld [StringBuffer2 + 2], a
-	ld a, [wcd6d]
-	ld c, a
-	ld a, $0a
-	sbc c
-	ld [StringBuffer2 + 1], a
-	xor a
-	ld [StringBuffer2], a
-	ld de, String_10088e
-	hlcoord 1, 14
-	call PlaceString
-	ld de, StringBuffer2
-	hlcoord 4, 16
-	call Function100697
-	ret
-
-.asm_10087c
-	ld de, String_10088e
-	hlcoord 1, 14
-	call PlaceString
-	ld h, b
-	ld l, c
-	ld de, String_10089f
-	call PlaceString
-	ret
-; 10088e
-
-String_10088e: ; 10088e
-	db   "モバイルたいせん できる"
-	next "じかん@"
-; 10089f
-
-String_10089f: ; 10089f
-	db " むせいげん@"
-; 1008a6
-
-Function1008a6: ; 1008a6
-	ld a, $04
-	ld hl, $a800
-	call GetSRAMBank
-	ld a, [hli]
-	ld [StringBuffer2], a
-	ld a, [hli]
-	ld [StringBuffer2 + 1], a
-	ld a, [hli]
-	ld [StringBuffer2 + 2], a
-	call CloseSRAM
-	ld a, [StringBuffer2 + 2]
-	ld b, a
-	ld a, 0
-	sub b
-	jr nc, .asm_1008c8
-	add $3c
-
-.asm_1008c8
-	ld b, a
-	ld a, [StringBuffer2 + 1]
-	ld c, a
-	ld a, $0a
-	sbc c
-	ld c, a
-	jr c, .asm_1008da
-	ld a, [StringBuffer2]
-	and a
-	jr nz, .asm_1008da
-	ret
-
-.asm_1008da
-	call Function10070d
-	ld c, 0
-	ret
-; 1008e0
-
-
-Function1008e0: ; 1008e0
-	ld a, [hBGMapMode]
-	ld b, a
-	ld a, [hVBlank]
-	ld c, a
-	push bc
-	xor a
-	ld [hBGMapMode], a
-	ld a, $03
-	ld [hVBlank], a
-	call Function100970
-	call Function100902
-	call Function100989
-	call DelayFrame
-	pop bc
-	ld a, c
-	ld [hVBlank], a
-	ld a, b
-	ld [hBGMapMode], a
-	ret
-; 100902
-
-Function100902: ; 100902
-	hlcoord 3, 10
-	ld b, $01
-	ld c, $0b
-	call TextBox
-	ld a, [wcd6d]
-	ld c, a
-	ld a, $0a
-	sub c
-	ld [StringBuffer2], a
-	jr z, .asm_10093f
-	ld de, .string_100966
-	hlcoord 4, 11
-	call PlaceString
-	hlcoord 8, 11
-	lb bc, 1, 2
-	ld de, StringBuffer2
-	call PrintNum
-	ld de, SFX_TWO_PC_BEEPS
-	call PlaySFX
-	callba ReloadMapPart
-	ld c, $3c
-	call DelayFrames
-	ret
-
-.asm_10093f
-	ld de, .string_10095a
-	hlcoord 4, 11
-	call PlaceString
-	ld de, SFX_4_NOTE_DITTY
-	call PlaySFX
-	callba ReloadMapPart
-	ld c, 120
-	call DelayFrames
-	ret
-; 10095a
-
-.string_10095a ; 10095a
-	db "たいせん しゅうりょう@"
-.string_100966 ; 100966
-	db "のこり   ふん", $e7, "@"
-; 100970
-
-
-Function100970: ; 100970
-	hlcoord 0, 0
-	ld de, w3_dc00
-	call Function1009a5
-	hlcoord 0, 0, AttrMap
-	ld de, w3_dd68
-	call Function1009a5
-	call Function1009d2
-	call Function1009ae
-	ret
-; 100989
-
-Function100989: ; 100989
-	ld hl, w3_dc00
-	decoord 0, 0
-	call Function1009a5
-	call Function1009ae
-	callba ReloadMapPart
-	ld hl, w3_dd68
-	decoord 0, 0, AttrMap
-	call Function1009a5
-	ret
-; 1009a5
-
-Function1009a5: ; 1009a5
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	ld a, $03
-	call FarCopyWRAM
-	ret
-; 1009ae
-
-Function1009ae: ; 1009ae
-	ld a, [rSVBK]
-	push af
-	ld a, $03
-	ld [rSVBK], a
-
-	ld hl, w3_d800
-	decoord 0, 0, AttrMap
-	ld c, SCREEN_WIDTH
-	ld b, SCREEN_HEIGHT
-.loop_row
-	push bc
-.loop_col
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .loop_col
-	ld bc, BG_MAP_WIDTH - SCREEN_WIDTH
-	add hl, bc
-	pop bc
-	dec b
-	jr nz, .loop_row
-
-	pop af
-	ld [rSVBK], a
-	ret
-; 1009d2
-
-Function1009d2: ; 1009d2
-	ld a, [rSVBK]
-	push af
-	ld a, $03
-	ld [rSVBK], a
-
-	ld a, [rVBK]
-	push af
-	ld a, $01
-	ld [rVBK], a
-
-	ld hl, w3_d800
-	debgcoord 0, 0
-	lb bc, $03, $24
-	call Get2bpp
-
-	pop af
-	ld [rVBK], a
-
-	pop af
-	ld [rSVBK], a
-	ret
-; 1009f3
-
-Function1009f3: ; 1009f3
-	ld a, [hJoyDown]
-	and SELECT + A_BUTTON
-	cp SELECT + A_BUTTON
-	jr nz, .select_a
-	ld hl, wcd2a
-	set 4, [hl]
-	ld a, $f8
-	ld [wcd2b], a
-	scf
-	ret
-
-.select_a
-	xor a
-	ret
-; 100a09
-
-_LinkBattleSendReceiveAction: ; 100a09
-	call .StageForSend
-	ld [wd431], a
-	callba PlaceWaitingText
-	ld a, [wLinkMode]
-	cp LINK_MOBILE
-	jr nz, .not_mobile
-
-	call .MobileBattle_SendReceiveAction
-	call Function100da5
-	callba FinishBattleAnim
-	jr .done
-
-.not_mobile
-	call .LinkBattle_SendReceiveAction
-
-.done
-	ret
-; 100a2e
-
-.StageForSend: ; 100a2e
-	ld a, [wPlayerAction]
-	and a
-	jr nz, .switch
-	ld a, [CurPlayerMove]
-	ld b, BATTLEACTION_E
-	cp STRUGGLE
-	jr z, .struggle
-	ld b, BATTLEACTION_D
-	cp $ff
-	jr z, .struggle
-	ld a, [CurMoveNum]
-	jr .use_move
-
-.switch
-	ld a, [CurPartyMon]
-	add BATTLEACTION_SWITCH1
-	jr .use_move
-
-.struggle
-	ld a, b
-
-.use_move
-	and $0f
-	ret
-; 100a53
-
-.LinkBattle_SendReceiveAction: ; 100a53
-	ld a, [wd431]
-	ld [wPlayerLinkAction], a
-	ld a, $ff
-	ld [wOtherPlayerLinkAction], a
-.waiting
-	call LinkTransfer
-	call DelayFrame
-	ld a, [wOtherPlayerLinkAction]
-	inc a
-	jr z, .waiting
-
-	ld b, 10
-.receive
-	call DelayFrame
-	call LinkTransfer
-	dec b
-	jr nz, .receive
-
-	ld b, 10
-.acknowledge
-	call DelayFrame
-	call LinkDataReceived
-	dec b
-	jr nz, .acknowledge
-
-	ld a, [wOtherPlayerLinkAction]
-	ld [wBattleAction], a
-	ret
-; 100a87
-
-.MobileBattle_SendReceiveAction: ; 100a87
-	call Function100acf
-	call StartMobileInactivityTimer
-	ld a, 0
-	ld [wcd27], a
-.asm_100a92
-	call DelayFrame
-	call GetJoypad
-	callba Function100382
-	ld c, $01
-	ld b, $03
-	push bc
-	call AdvanceMobileInactivityTimerAndCheckExpired
-	pop bc
-	jr c, .asm_100ac7
-	ld b, $01
-	call Function10079c
-	jr c, .asm_100ac7
-	call Function1009f3
-	jr c, .asm_100ac7
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_100ac7
-	ld a, [wcd27]
-	bit 7, a
-	jr z, .asm_100a92
-	call Function100ae7
-	jr .asm_100ace
-
-.asm_100ac7
-	ld a, $0f
-	ld [wd430], a
-	jr .asm_100ace
-
-.asm_100ace
-	ret
-; 100acf
-
-Function100acf: ; 100acf
-	ld de, Unknown_100b0a
-	ld hl, wccb5
-	ld a, [wd431]
-	ld [hli], a
-	ld c, $01
-.asm_100adb
-	ld a, [de]
-	inc de
-	ld [hli], a
-	inc c
-	and a
-	jr nz, .asm_100adb
-	ld a, c
-	ld [wccb4], a
-	ret
-; 100ae7
-
-Function100ae7: ; 100ae7
-	ld de, Unknown_100b0a
-	ld hl, wcc62
-.asm_100aed
-	ld a, [de]
-	inc de
-	and a
-	jr z, .asm_100af8
-	cp [hl]
-	jr nz, .asm_100aff
-	inc hl
-	jr .asm_100aed
-
-.asm_100af8
-	ld a, [wcc61]
-	ld [wd430], a
-	ret
-
-.asm_100aff
-	ld a, $0f
-	ld [wd430], a
-	ld a, $f1
-	ld [wcd2b], a
-	ret
-; 100b0a
-
-
-SECTION "tetsuji", ROMX
-
-	charmap " ", $20 ; revert to ascii
-
-Unknown_100b0a: ; 100b0a
-	db "tetsuji", 0
-; 100b12
-
-
-SECTION "bank40_2", ROMX
-
-Function100b12: ; 100b12
-	call Function100dd8
-	ret c
-	ld hl, BattleMenuDataHeader
-	ld a, BANK(BattleMenuDataHeader)
-	ld de, LoadMenuDataHeader
-	call FarCall_de
-	ld a, BANK(BattleMenuDataHeader)
-	ld [wMenuData2_2DMenuItemStringsBank], a
-	ld a, [wBattleMenuCursorBuffer]
-	ld [wMenuCursorBuffer], a
-	call Function100e72
-	call Function100b45
-	callba InitPartyMenuBGPal7
-	call Function100ed4
-	ld a, [wMenuCursorBuffer]
-	ld [wBattleMenuCursorBuffer], a
-	call ExitMenu
-	ret
-; 100b45
-
-Function100b45: ; 100b45
-	call Function100b7a
-.loop
-	call Mobile_SetOverworldDelay
-	callba MobileMenuJoypad
-	push bc
-	callba HDMATransferTileMapToWRAMBank3
-	call Function100e2d
-	pop bc
-	jr c, .asm_100b6b
-	ld a, [wMenuJoypadFilter]
-	and c
-	jr z, .loop
-	callba Mobile_GetMenuSelection
-	ret
-
-.asm_100b6b
-	ld a, [w2DMenuNumCols]
-	ld c, a
-	ld a, [w2DMenuNumRows]
-	call SimpleMultiply
-	ld [wMenuCursorBuffer], a
-	and a
-	ret
-; 100b7a
-
-Function100b7a: ; 100b7a
-	ld hl, CopyMenuData2
-	ld a, [wMenuData2_2DMenuItemStringsBank]
-	rst FarCall
-	callba Draw2DMenu
-	callba MobileTextBorder
-	call UpdateSprites
-	call ApplyTilemap
-	callba Init2DMenuCursorPosition
-	ld hl, w2DMenuFlags1
-	set 7, [hl]
-	ret
-; 100b9f
-
-MobileMoveSelectionScreen: ; 100b9f
-	xor a
-	ld [wMoveSwapBuffer], a
-	callba CheckPlayerHasUsableMoves
-	ret z
-	call Function100dd8
-	jp c, xor_a_dec_a
-	call Function100e72
-	call .GetMoveSelection
-	push af
-	callba InitPartyMenuBGPal7
-	call Function100ed4
-	pop af
-	ret
-; 100bc2
-
-.GetMoveSelection: ; 100bc2
-	xor a
-	ld [hBGMapMode], a
-	call Function100c74
-	call Function100c98
-.master_loop
-	callba MoveInfoBox
-.loop
-	call Mobile_SetOverworldDelay
-	callba MobileMenuJoypad
-	push bc
-	callba HDMATransferTileMapToWRAMBank3
-	call Function100e2d
-	pop bc
-	jr c, .b_button
-	ld a, [wMenuJoypadFilter]
-	and c
-	bit D_UP_F, a
-	jp nz, .d_up
-	bit D_DOWN_F, a
-	jp nz, .d_down
-	bit A_BUTTON_F, a
-	jr nz, .a_button
-	bit B_BUTTON_F, a
-	jr nz, .b_button
-	jr .loop
-
-.d_up
-	ld a, [wMenuCursorY]
-	and a
-	jp nz, .master_loop
-	ld a, [wNumMoves]
-	inc a
-	ld [wMenuCursorY], a
-	jp .master_loop
-
-.d_down
-	ld a, [wMenuCursorY]
-	ld b, a
-	ld a, [wNumMoves]
-	inc a
-	inc a
-	cp b
-	jp nz, .master_loop
-	ld a, $01
-	ld [wMenuCursorY], a
-	jp .master_loop
-
-.b_button
-	ld a, [wMenuCursorY]
-	dec a
-	ld [CurMoveNum], a
-	ld a, $01
-	and a
-	ret
-
-.a_button
-	ld a, [wMenuCursorY]
-	dec a
-	ld [CurMoveNum], a
-	ld a, [wMenuCursorY]
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, BattleMonPP
-	add hl, bc
-	ld a, [hl]
-	and $3f
-	jr z, .no_pp_left
-	ld a, [PlayerDisableCount]
-	swap a
-	and $0f
-	dec a
-	cp c
-	jr z, .move_disabled
-	ld a, [wMenuCursorY]
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, BattleMonMoves
-	add hl, bc
-	ld a, [hl]
-	ld [CurPlayerMove], a
-	xor a
-	ret
-
-.move_disabled
-	ld hl, BattleText_TheMoveIsDisabled
-	jr .print_text
-
-.no_pp_left
-	ld hl, BattleText_TheresNoPPLeftForThisMove
-
-.print_text
-	call StdBattleTextBox
-	call Call_LoadTempTileMapToTileMap
-	jp .GetMoveSelection
-; 100c74
-
-Function100c74: ; 100c74
-	hlcoord 0, 8
-	ld b, 8
-	ld c, 8
-	call TextBox
-	ld hl, BattleMonMoves
-	ld de, wListMoves_MoveIndicesBuffer
-	ld bc, NUM_MOVES
-	call CopyBytes
-	ld a, SCREEN_WIDTH * 2
-	ld [Buffer1], a
-	hlcoord 2, 10
-	predef ListMoves
-	ret
-; 100c98
-
-Function100c98: ; 100c98
-	ld de, .attrs
-	call SetMenuAttributes
-	ld a, [wNumMoves]
-	inc a
-	ld [w2DMenuNumRows], a
-	ld a, [CurMoveNum]
-	inc a
-	ld [wMenuCursorY], a
-	ret
-; 100cad
-
-.attrs ; 100cad
-	db 10, 1
-	db 255, 1
-	db $a0, $00
-	dn 2, 0
-	db D_UP | D_DOWN | A_BUTTON | B_BUTTON
-
-Mobile_PartyMenuSelect: ; 100cb5
-	call Function100dd8
-	ret c
-	ld hl, w2DMenuFlags1
-	set 7, [hl]
-	res 6, [hl]
-.loop
-	call Mobile_SetOverworldDelay
-	callba MobileMenuJoypad
-	push bc
-	callba PlaySpriteAnimations
-	callba HDMATransferTileMapToWRAMBank3
-	call MobileComms_CheckInactivityTimer
-	pop bc
-	jr c, .done
-	ld a, [wMenuJoypadFilter]
-	and c
-	jr z, .loop
-	call PlaceHollowCursor
-	ld a, [PartyCount]
-	inc a
-	ld b, a
-	ld a, [wMenuCursorY]
-	cp b
-	jr z, .done
-	ld [wPartyMenuCursor], a
-	ld a, [hJoyLast]
-	ld b, a
-	bit 1, b
-	jr nz, .done
-	ld a, [wMenuCursorY]
-	dec a
-	ld [CurPartyMon], a
-	ld c, a
-	ld b, 0
-	ld hl, PartySpecies
-	add hl, bc
-	ld a, [hl]
-	ld [CurPartySpecies], a
-	ld de, SFX_READ_TEXT_2
-	call PlaySFX
-	call WaitSFX
-	and a
-	ret
-
-.done
-	ld de, SFX_READ_TEXT_2
-	call PlaySFX
-	call WaitSFX
-	scf
-	ret
-; 100d22
-
-MobileBattleMonMenu: ; 100d22
-	call Function100dd8
-	ret c
-	call Function100d67
-	ld hl, w2DMenuFlags1
-	set 7, [hl]
-	res 6, [hl]
-.asm_100d30
-	call Mobile_SetOverworldDelay
-	callba MobileMenuJoypad
-	push bc
-	callba PlaySpriteAnimations
-	callba HDMATransferTileMapToWRAMBank3
-	call MobileComms_CheckInactivityTimer
-	pop bc
-	jr c, .asm_100d54
-	ld a, [wMenuJoypadFilter]
-	and c
-	jr nz, .asm_100d56
-	jr .asm_100d30
-
-.asm_100d54
-	scf
-	ret
-
-.asm_100d56
-	push af
-	ld de, SFX_READ_TEXT_2
-	call PlaySFX
-	pop af
-	bit 1, a
-	jr z, .asm_100d65
-	ret z
-	scf
-	ret
-
-.asm_100d65
-	and a
-	ret
-; 100d67
-
-Function100d67: ; 100d67
-	ld hl, .MenuDataHeader
-	call CopyMenuDataHeader
-	xor a
-	ld [hBGMapMode], a
-	call MenuBox
-	call UpdateSprites
-	call PlaceVerticalMenuItems
-	call WaitBGMap
-	call CopyMenuData2
-	call InitVerticalMenuCursor
-	ld hl, w2DMenuFlags1
-	set 6, [hl]
-	ret
-; 100d88
-
-.MenuDataHeader: ; 100d88
-	db 0 ; flags
-	db 11, 11 ; start coords
-	db 17, 19 ; end coords
-	dw .MenuData2
-	db 1 ; default option
-
-.MenuData2: ; 100d90
-	db $c0 ; flags
-	db 3
-	db "いれかえる@"  ; TRADE
-	db "つよさをみる@" ; STATS
-	db "キャンセル@"  ; CANCEL
-; 100da5
-
-Function100da5: ; 100da5
-	ld hl, wcd2a
-	res 3, [hl]
-	ld hl, wcd29
-	res 0, [hl]
-	ret
-; 100db0
-
-Function100db0: ; 100db0
-	ld hl, wcd2a
-	bit 3, [hl]
-	jr nz, .asm_100dbe
-	ld hl, wcd2a
-	set 3, [hl]
-	scf
-	ret
-
-.asm_100dbe
-	xor a
-	ret
-; 100dc0
-
-
-
-Function100dc0: ; 100dc0
-	ld a, [wLinkMode]
-	cp LINK_MOBILE
-	jr nz, .mobile
-	ld hl, wcd2a
-	bit 3, [hl]
-	jr z, .mobile
-	scf
-	ret
-
-.mobile
-	xor a
-	ret
-; 100dd2
-
-Mobile_SetOverworldDelay: ; 100dd2
-	ld a, 30
-	ld [OverworldDelay], a
-	ret
-; 100dd8
-
-Function100dd8: ; 100dd8
-	ld c, $01
-	ld b, $03
-	callba AdvanceMobileInactivityTimerAndCheckExpired
-	jr c, .asm_100dfb
-	ld c, $3c
-	ld b, $01
-	call Function10079c
-	jr c, .asm_100dfb
-	callba Function10032e
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_100dfb
-	xor a
-	ret
-
-.asm_100dfb
-	scf
-	ret
-; 100dfd
-
-MobileComms_CheckInactivityTimer: ; 100dfd
-	ld a, [OverworldDelay]
-	ld c, a
-	ld a, 30
-	sub c
-	ld c, a
-	ld b, 3
-	push bc
-	callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall
-	pop bc
-	jr c, .quit
-	ld b, 1
-	call Function10079c
-	jr c, .quit
-	call Function1009f3
-	jr c, .quit
-	callba Function10032e ; useless to farcall
-	ld a, [wcd2b]
-	and a
-	jr nz, .quit
-	xor a
-	ret
-
-.quit
-	scf
-	ret
-; 100e2d
-
-Function100e2d: ; 100e2d
-	ld a, [OverworldDelay]
-	ld c, a
-	ld a, 30
-	sub c
-	ld c, a
-	ld b, 3
-	push bc
-	callba AdvanceMobileInactivityTimerAndCheckExpired
-	pop bc
-	jr c, .asm_100e61
-	ld b, 1
-	call Function10079c
-	jr c, .asm_100e61
-	call Function1009f3
-	jr c, .asm_100e61
-	callba Function10032e
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_100e61
-	call Function100e63
-	call Function100e84
-	xor a
-	ret
-
-.asm_100e61
-	scf
-	ret
-; 100e63
-
-Function100e63: ; 100e63
-	ld a, e
-	cp $02
-	ret nz
-	call Function100db0
-	ret nc
-	ld de, SFX_ELEVATOR_END
-	call PlaySFX
-	ret
-; 100e72
-
-Function100e72: ; 100e72
-	xor a
-	ld hl, wcd29
-	bit 0, [hl]
-	jr z, .asm_100e7c
-	ld a, $0a
-
-.asm_100e7c
-	ld [wcd67], a
-	xor a
-	ld [wcd68], a
-	ret
-; 100e84
-
-Function100e84: ; 100e84
-	ld a, [wcd67]
-	ld hl, Jumptable_100e8c
-	rst JumpTable
-	ret
-; 100e8c
-
-
-Jumptable_100e8c: ; 100e8c (40:4e8c)
-	dw Function100ea2
-	dw Function100eae
-	dw Function100eb4
-	dw Function100eae
-	dw Function100eb4
-	dw Function100eae
-	dw Function100eb4
-	dw Function100eae
-	dw Function100eb4
-	dw Function100eae
-	dw Function100ec4
-
-
-Function100ea2: ; 100ea2 (40:4ea2)
-	call Function100dc0
-	ret nc
-	ld hl, wcd29
-	set 0, [hl]
-	call Function100ec5
-
-
-Function100eae: ; 100eae
-	scf
-	call Function100eca
-	jr asm_100eb8
-
-Function100eb4: ; 100eb4
-	and a
-	call Function100eca
-
-asm_100eb8
-	ld hl, wcd68
-	inc [hl]
-	ld a, [hl]
-	cp $02
-	ret c
-	ld [hl], 0
-	jr Function100ec5
-
-Function100ec4: ; 100ec4
-	ret
-
-Function100ec5
-	ld hl, wcd67
-	inc [hl]
-	ret
-; 100eca
-
-Function100eca: ; 100eca
-	callba Mobile_InitPartyMenuBGPal7
-	call Function100ed4
-	ret
-; 100ed4
-
-Function100ed4: ; 100ed4
-	callba ApplyPals
-	ld a, $01
-	ld [hCGBPalUpdate], a
-	ret
-; 100edf
-
-Function100edf: ; 100edf
-	ld hl, Unknown_100fc0
-	ld c, 1
-	jr asm_100f02
-
-Function100ee6: ; 100ee6
-	ld hl, Unknown_100fc0
-	ld c, 2
-	jr asm_100f02
-
-Function100eed: ; 100eed
-	ld hl, Unknown_100feb
-	ld c, 1
-	jr asm_100f02
-
-Function100ef4: ; 100ef4
-	ld hl, Unknown_100ff3
-	ld c, 1
-	jr asm_100f02
-
-Function100efb: ; 100efb
-	ld hl, Unknown_10102c
-	ld c, 1
-	jr asm_100f02
-
-asm_100f02:
-	ld a, c
-	ld [StringBuffer2], a
-	; someting that was previously stored in de gets backed up to here
-	ld a, e
-	ld [StringBuffer2 + 1], a
-	ld a, d
-	ld [StringBuffer2 + 2], a
-	; empty this
-	xor a
-	ld [StringBuffer2 + 4], a
-	ld [StringBuffer2 + 5], a
-.loop
-	ld a, [hl]
-	cp $ff
-	jr z, .done
-	ld [StringBuffer2 + 3], a ; bank
-	push hl
-	inc hl
-	; addr 1
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	; size
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	; addr 2
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call Function100f3d
-	; next line
-	pop hl
-	ld de, 7
-	add hl, de
-	jr .loop
-
-.done
-	; recover the values into bc
-	ld a, [StringBuffer2 + 4]
-	ld c, a
-	ld a, [StringBuffer2 + 5]
-	ld b, a
-	ret
-; 100f3d
-
-Function100f3d: ; 100f3d
-	; parameter
-	ld a, [StringBuffer2]
-	cp $02
-	jr z, .two
-	cp $01
-	jr z, .one
-	cp $03
-	jr z, .three
-	ret
-
-.three
-	; what was once in de gets copied to hl,
-	; modified by Function100f8d, and put back
-	; into this backup
-	ld a, [StringBuffer2 + 1]
-	ld l, a
-	ld a, [StringBuffer2 + 2]
-	ld h, a
-	call Function100f8d
-	ld a, l
-	ld [StringBuffer2 + 1], a
-	ld a, h
-	ld [StringBuffer2 + 2], a
-	ret
-
-.two
-	; hl gets backed up to de, then
-	; do the same as in .three
-	ld d, h
-	ld e, l
-	ld a, [StringBuffer2 + 1]
-	ld l, a
-	ld a, [StringBuffer2 + 2]
-	ld h, a
-	call Function100f8d
-	ld a, l
-	ld [StringBuffer2 + 1], a
-	ld a, h
-	ld [StringBuffer2 + 2], a
-	ret
-
-.one
-	; de gets copied to hl, then
-	; load the backup into de,
-	; finally run Function100f8d
-	; and store the de result
-	ld h, d
-	ld l, e
-	ld a, [StringBuffer2 + 1]
-	ld e, a
-	ld a, [StringBuffer2 + 2]
-	ld d, a
-	call Function100f8d
-	ld a, e
-	ld [StringBuffer2 + 1], a
-	ld a, d
-	ld [StringBuffer2 + 2], a
-	ret
-; 100f8d
-
-Function100f8d: ; 100f8d
-	push hl
-	ld a, [StringBuffer2 + 4]
-	ld l, a
-	ld a, [StringBuffer2 + 5]
-	ld h, a
-	add hl, bc
-	ld a, l
-	ld [StringBuffer2 + 4], a
-	ld a, h
-	ld [StringBuffer2 + 5], a
-	pop hl
-	ld a, [StringBuffer2 + 3]
-	bit 7, a
-	res 7, a
-	jr z, .sram
-	and a
-	jr nz, .far_wram
-	call CopyBytes
-	ret
-
-.far_wram
-	and $7f
-	call FarCopyWRAM
-	ret
-
-.sram
-	call GetSRAMBank
-	call CopyBytes
-	call CloseSRAM
-	ret
-; 100fc0
-
-Unknown_100fc0: ; 100fc0
-	; first byte:
-	;     Bit 7 set: Not SRAM
-	;     Lower 7 bits: Bank
-	; Address, size (dw), address
-	dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName
-	dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount
-	dbwww $80, PlayerID, 2, OTPlayerID
-	dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons
-	dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT
-	dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames
-	db -1
-
-Unknown_100feb: ; 100feb
-	dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
-	db -1
-
-Unknown_100ff3: ; 100ff3
-	dbwww $80, wdc41, 1, NULL
-	dbwww $80, PlayerName, NAME_LENGTH, NULL
-	dbwww $80, PlayerName, NAME_LENGTH, NULL
-	dbwww $80, PlayerID, 2, NULL
-	dbwww $80, wSecretID, 2, NULL
-	dbwww $80, PlayerGender, 1, NULL
-	dbwww $04, $a603, 8, NULL
-	dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL
-	db -1
-
-Unknown_10102c: ; 10102c
-	dbwww $80, OTPlayerName, NAME_LENGTH, NULL
-	dbwww $80, OTPlayerID, 2, NULL
-	dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL
-	dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL
-	dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
-	db -1
-; 10104f
-
-Function101050: ; 101050
-	call Function10107d
-	ld a, [OTPartyCount]
-rept 2 ; ???
-	ld hl, wc608
-endr
-	ld bc, wc7bb - wc608
-	call Function1010de
-	ld hl, wc7bb
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld a, $07
-	call GetSRAMBank
-	ld hl, wc608
-	ld de, $a001
-	ld bc, wc7bd - wc608
-	call CopyBytes
-	call CloseSRAM
-	ret
-; 10107d
-
-Function10107d: ; 10107d
-	xor a
-	ld hl, wc608
-	ld bc, wc7bd - wc608
-	call ByteFill
-	ld hl, OTPlayerName
-	ld de, wc608
-	ld bc, NAME_LENGTH
-	call CopyBytes
-	ld hl, wd271
-	ld a, [hli]
-	ld [wc608 + 11], a
-	ld a, [hl]
-	ld [wc608 + 12], a
-	ld hl, OTPartyMonNicknames
-	ld de, wc608 + 13
-	ld bc, NAME_LENGTH
-	call .CopyAllFromOT
-	ld hl, OTPartyMonOT
-	ld de, OTClassName + 1
-	ld bc, NAME_LENGTH
-	call .CopyAllFromOT
-	ld hl, OTPartyMon1Species
-	ld de, $c699
-	ld bc, PARTYMON_STRUCT_LENGTH
-	call .CopyAllFromOT
-	ld a, $50
-	ld [wc7b9], a
-	ld a, $33
-	ld [wc7ba], a
-	ret
-; 1010cd
-
-.CopyAllFromOT: ; 1010cd
-	push hl
-	ld hl, 0
-	ld a, [OTPartyCount]
-	call AddNTimes
-	ld b, h
-	ld c, l
-	pop hl
-	call CopyBytes
-	ret
-; 1010de
-
-Function1010de: ; 1010de
-	push hl
-	push bc
-	ld de, 0
-.loop
-	ld a, [hli]
-	add e
-	ld e, a
-	ld a, d
-	adc 0
-	ld d, a
-	dec bc
-	ld a, b
-	or c
-	jr nz, .loop
-	pop bc
-	pop hl
-	ret
-; 1010f2
-
-LoadSelectedPartiesForColosseum: ; 1010f2
-	xor a
-	ld hl, StringBuffer2
-	ld bc, 9
-	call ByteFill
-	ld hl, wPlayerMonSelection
-	ld de, PartyCount
-	call .CopyThreeSpecies
-	ld hl, wPlayerMonSelection
-	ld de, PartyMon1Species
-	call .CopyPartyStruct
-	ld hl, wPlayerMonSelection
-	ld de, PartyMonOT
-	call .CopyName
-	ld hl, wPlayerMonSelection
-	ld de, PartyMonNicknames
-	call .CopyName
-	ld hl, wOTMonSelection
-	ld de, OTPartyCount
-	call .CopyThreeSpecies
-	ld hl, wOTMonSelection
-	ld de, OTPartyMon1Species
-	call .CopyPartyStruct
-	ld hl, wOTMonSelection
-	ld de, OTPartyMonOT
-	call .CopyName
-	ld hl, wOTMonSelection
-	ld de, OTPartyMonNicknames
-	call .CopyName
-	ret
-; 101145
-
-.CopyThreeSpecies: ; 101145
-; Load the 3 choices to the buffer
-	push de
-	ld bc, StringBuffer2 + 6
-	xor a
-.party_loop
-	push af
-	call .GetNthSpecies
-	ld [bc], a
-	inc bc
-	pop af
-	inc a
-	cp 3
-	jr nz, .party_loop
-	pop de
-; Copy the 3 choices to the party
-	ld a, 3
-	ld [de], a
-	inc de
-	ld hl, StringBuffer2 + 6
-	ld bc, 3
-	call CopyBytes
-	ld a, $ff
-	ld [de], a
-	ret
-; 101168
-
-.GetNthSpecies: ; 101168
-; Preserves hl and de
-; Get the index of the Nth selection
-	push hl
-	add l
-	ld l, a
-	ld a, h
-	adc 0
-	ld h, a
-	ld a, [hl]
-	pop hl
-; Get the corresponding species
-	push de
-	inc de
-	add e
-	ld e, a
-	ld a, d
-	adc 0
-	ld d, a
-	ld a, [de]
-	pop de
-	ret
-; 10117c
-
-.CopyPartyStruct: ; 10117c
-	ld bc, PARTYMON_STRUCT_LENGTH
-	jr .ContinueCopy
-
-.CopyName: ; 101181
-	ld bc, NAME_LENGTH
-
-.ContinueCopy:
-	; Copy, via wc608...
-	ld a, wc608 % $100
-	ld [StringBuffer2], a
-	ld a, wc608 / $100
-	ld [StringBuffer2 + 1], a
-	; ... bc bytes...
-	ld a, c
-	ld [StringBuffer2 + 2], a
-	ld a, b
-	ld [StringBuffer2 + 3], a
-	; ... to de...
-	ld a, e
-	ld [StringBuffer2 + 4], a
-	ld a, d
-	ld [StringBuffer2 + 5], a
-	; ... 3 times.
-	ld a, 3
-.big_copy_loop
-	push af
-	ld a, [hli]
-	push hl
-	push af
-	call .GetDestinationAddress
-	call .GetCopySize
-	pop af
-	call AddNTimes
-	ld a, [StringBuffer2]
-	ld e, a
-	ld a, [StringBuffer2 + 1]
-	ld d, a
-	call CopyBytes
-	ld a, e
-	ld [StringBuffer2], a
-	ld a, d
-	ld [StringBuffer2 + 1], a
-	pop hl
-	pop af
-	dec a
-	jr nz, .big_copy_loop
-	call .GetCopySize
-	ld a, 3
-	ld hl, 0
-	call AddNTimes
-	ld b, h
-	ld c, l
-	call .GetDestinationAddress
-	ld d, h
-	ld e, l
-	ld hl, wc608
-	call CopyBytes
-	ret
-; 1011df
-
-.GetDestinationAddress: ; 1011df
-	ld a, [StringBuffer2 + 4]
-	ld l, a
-	ld a, [StringBuffer2 + 5]
-	ld h, a
-	ret
-; 1011e8
-
-.GetCopySize: ; 1011e8
-	ld a, [StringBuffer2 + 2]
-	ld c, a
-	ld a, [StringBuffer2 + 3]
-	ld b, a
-	ret
-; 1011f1
-
-Function1011f1: ; 1011f1
-	ld a, $04
-	call GetSRAMBank
-	ld a, [$a60c]
-	ld [wdc41], a
-	call CloseSRAM
-	ld hl, wdc41
-	res 4, [hl]
-	ld hl, GameTimerPause
-	bit 7, [hl]
-	jr z, .skip
-	ld hl, wdc41
-	set 4, [hl]
-
-.skip
-	call Function10209c
-	xor a
-	ld [wdc5f], a
-	ld [wdc60], a
-	ld a, LINK_MOBILE
-	ld [wLinkMode], a
-	ret
-; 101220
-
-Function101220: ; 101220
-	xor a
-	ld [wLinkMode], a
-	ret
-; 101225
-
-Function101225: ; 101225
-	ld d, 1
-	ld e, BANK(Jumptable_101297)
-	ld bc, Jumptable_101297
-	call Function100000
-	jr Function10123d
-
-Function101231: ; 101231
-	ld d, 2
-	ld e, BANK(Jumptable_101297)
-	ld bc, Jumptable_101297
-	call Function100000
-	jr Function10123d
-
-Function10123d: ; 10123d
-	xor a
-	ld [ScriptVar], a
-	ld a, c
-	ld hl, Jumptable_101247
-	rst JumpTable
-	ret
-; 101247
-
-Jumptable_101247: ; 101247
-	dw Function101251
-	dw Function10127d
-	dw Function10127c
-	dw Function10126c
-	dw Function101265
-; 101251
-
-Function101251: ; 101251
-	call UpdateSprites
-	call RefreshScreen
-	ld hl, UnknownText_0x1021f4
-	call Function1021e0
-	call Function1020ea
-	ret c
-	call Function102142
-	ret
-; 101265
-
-Function101265: ; 101265
-	ld hl, UnknownText_0x1021ef
-	call Function1021e0
-	ret
-; 10126c
-
-Function10126c: ; 10126c
-	call UpdateSprites
-	callba Script_reloadmappart
-	ld hl, UnknownText_0x1021f4
-	call Function1021e0
-	ret
-; 10127c
-
-Function10127c: ; 10127c
-	ret
-; 10127d
-
-Function10127d: ; 10127d
-	ret
-; 10127e
-
-Function10127e: ; 10127e
-	ld a, [wdc5f]
-	and a
-	jr z, .zero
-	cp 1
-	ld c, $27
-	jr z, .load
-	cp 2
-	ld c, $37
-	jr z, .load
-.zero
-	ld c, 0
-.load
-	ld a, c
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101297
-
-Jumptable_101297: ; 101297
-	dw Function101a97                         ; 00
-	dw Function101ab4                         ; 01
-	dw Function101475                         ; 02
-	dw Function101b0f                         ; 03
-	dw Function101438                         ; 04
-	dw Function101b2b                         ; 05
-	dw Function101b59                         ; 06
-	dw Function101475                         ; 07
-	dw Function101b70                         ; 08
-	dw Function101438                         ; 09
-	dw Function101b8f                         ; 0a
-	dw Function101d7b                         ; 0b
-	dw Function101d95                         ; 0c
-	dw Function101475                         ; 0d
-	dw Function101db2                         ; 0e
-	dw Function101e4f                         ; 0f
-	dw Function101475                         ; 10
-	dw Function101e64                         ; 11
-	dw Function101e4f                         ; 12
-	dw Function101475                         ; 13
-	dw Function101e64                         ; 14
-	dw Function101d95                         ; 15
-	dw Function101475                         ; 16
-	dw Function101db2                         ; 17
-	dw Function101dd0                         ; 18
-	dw Function101de3                         ; 19
-	dw Function101e39                         ; 1a
-	dw Function101e09                         ; 1b
-	dw Function101e4f                         ; 1c
-	dw Function101475                         ; 1d
-	dw Function101e64                         ; 1e
-	dw Function101d95                         ; 1f
-	dw Function101475                         ; 20
-	dw Function101db2                         ; 21
-	dw Function101e09                         ; 22
-	dw Function101e31                         ; 23
-	dw Function101bc8                         ; 24
-	dw Function101438                         ; 25
-	dw Function101be5                         ; 26
-	dw Function101ac6                         ; 27
-	dw Function101ab4                         ; 28
-	dw Function101475                         ; 29
-	dw Function101c11                         ; 2a
-	dw Function1014f4                         ; 2b
-	dw Function101cc8                         ; 2c
-	dw Function1014e2                         ; 2d
-	dw Function1014e2                         ; 2e
-	dw Function101d10                         ; 2f
-	dw Function101d2a                         ; 30
-	dw Function101d2a                         ; 31
-	dw Function101507                         ; 32
-	dw Function10156d                         ; 33
-	dw Function101557                         ; 34
-	dw Function10158a                         ; 35
-	dw Function101c42                         ; 36
-	dw Function101aed                         ; 37
-	dw Function101ab4                         ; 38
-	dw Function101475                         ; 39
-	dw Function101c2b                         ; 3a
-	dw Function1014f4                         ; 3b
-	dw Function101cdf                         ; 3c
-	dw Function1014e2                         ; 3d
-	dw Function1014e2                         ; 3e
-	dw Function101d1e                         ; 3f
-	dw Function101d2a                         ; 40
-	dw Function101d2a                         ; 41
-	dw Function101507                         ; 42
-	dw Function10156d                         ; 43
-	dw Function101544                         ; 44
-	dw Function10158a                         ; 45
-	dw Function101c42                         ; 46
-	dw Function101c50                         ; 47
-	dw Function1014ce                         ; 48
-	dw Function101cf6                         ; 49
-	dw Function101826                         ; 4a
-	dw Function1017e4                         ; 4b
-	dw Function1017f1                         ; 4c
-	dw Function1018a8                         ; 4d
-	dw Function1018d6                         ; 4e
-	dw Function1017e4                         ; 4f
-	dw Function1017f1                         ; 50
-	dw Function1018e1                         ; 51
-	dw Function1015df                         ; 52
-	dw Function10167d                         ; 53
-	dw Function10168a                         ; 54
-	dw Function10162a                         ; 55
-	dw Function1015be                         ; 56
-	dw Function10167d                         ; 57
-	dw Function10168a                         ; 58
-	dw Function10161f                         ; 59
-	dw Function10159d                         ; 5a
-	dw Function10167d                         ; 5b
-	dw Function10168a                         ; 5c
-	dw Function101600                         ; 5d
-	dw Function101d03                         ; 5e
-	dw Function101d6b                         ; 5f
-	dw Function10159d                         ; 60
-	dw Function1014ce                         ; 61
-	dw Function10168e                         ; 62
-	dw Function101600                         ; 63
-	dw Function101913                         ; 64
-	dw Function10194b                         ; 65
-	dw _SelectMonsForMobileBattle             ; 66
-	dw Function1017e4                         ; 67
-	dw Function1017f5                         ; 68
-	dw _StartMobileBattle                     ; 69
-	dw Function101537                         ; 6a
-	dw Function101571                         ; 6b
-	dw Function101c92                         ; 6c
-	dw Function10152a                         ; 6d
-	dw Function101571                         ; 6e
-	dw Function101a4f                         ; 6f
-	dw Function101cbc                         ; 70
-	dw Function101c62                         ; 71
-	dw Function101537                         ; 72
-	dw Function101571                         ; 73
-	dw Function101c92                         ; 74
-	dw Function10152a                         ; 75
-	dw Function101571                         ; 76
-	dw Function101ca0                         ; 77
-	dw Function101475                         ; 78
-	dw Function101cbc                         ; 79
-; 10138b
-
-Function10138b: ; 10138b
-	callba Function8adcc
-	ld c, 0
-	jr c, .asm_101396
-	inc c
-
-.asm_101396
-	sla c
-	ld a, [wcd2f]
-	and a
-	jr z, .asm_10139f
-	inc c
-
-.asm_10139f
-	sla c
-	ld a, [wcd21]
-	cp $01
-	jr z, .asm_1013a9
-	inc c
-
-.asm_1013a9
-	ret
-; 1013aa
-
-Function1013aa: ; 1013aa
-	call ClearBGPalettes
-	call Call_ExitMenu
-	call ReloadTilesetAndPalettes
-	callba Function106464
-	call UpdateSprites
-	call FinishExitMenu
-	ret
-; 1013c0
-
-Function1013c0: ; 1013c0
-	callba BlankScreen
-	callba MobileFunc_106462
-	callba Function106464
-	call FinishExitMenu
-	ret
-; 1013d6
-
-Function1013d6: ; 1013d6
-	callba HDMATransferAttrMapAndTileMapToWRAMBank3
-	ret
-; 1013dd
-
-Function1013dd: ; 1013dd
-	call CGBOnly_LoadEDTile
-	ret
-; 1013e1
-
-Function1013e1: ; 1013e1 ; unreferenced
-	push de
-	inc de
-	ld b, a
-	ld c, 0
-.asm_1013e6
-	inc c
-	ld a, [hli]
-	ld [de], a
-	inc de
-	and a
-	jr z, .asm_1013f1
-	dec b
-	jr nz, .asm_1013e6
-	scf
-
-.asm_1013f1
-	pop de
-	ld a, c
-	ld [de], a
-	ret
-; 1013f5
-
-Function1013f5: ; 1013f5
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld c, a
-.asm_1013f9
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .asm_1013f9
-	ret
-; 101400
-
-Function101400: ; 101400 ; unreferenced
-	ld a, [de]
-	inc de
-	cp [hl]
-	jr nz, asm_101416
-	inc hl
-
-Function101406: ; 101406
-	ld c, a
-	ld b, 0
-.asm_101409
-	ld a, [de]
-	inc de
-	cp [hl]
-	jr nz, asm_101416
-	inc hl
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_101409
-	and a
-	ret
-
-asm_101416
-	scf
-	ret
-; 101418
-
-Function101418: ; 101418
-	call GetJoypad
-	ld a, [hJoyDown]
-	and SELECT + A_BUTTON
-	cp SELECT + A_BUTTON
-	jr z, .asm_101425
-	xor a
-	ret
-
-.asm_101425
-	ld a, $f7
-	ld [wcd2b], a
-	scf
-	ret
-; 10142c
-
-Function10142c: ; 10142c
-	ld a, $01
-	ld [wc305], a
-	callba Function115e18
-	ret
-; 101438
-
-Function101438: ; 101438
-	ld hl, wcd29
-	set 6, [hl]
-	ld a, [wcd26]
-	ld hl, Jumptable_101457
-	rst JumpTable
-	ld a, [wcd26]
-	bit 7, a
-	ret z
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101457
-
-Jumptable_101457: ; 101457
-	dw Function10145b
-	dw Function101467
-; 10145b
-
-Function10145b: ; 10145b
-	ld a, $3c
-	ld [wcd42], a
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-
-Function101467: ; 101467
-	ld hl, wcd42
-	dec [hl]
-	ret nz
-	ld a, [wcd26]
-	set 7, a
-	ld [wcd26], a
-	ret
-; 101475
-
-Function101475: ; 101475
-	ld hl, wcd29
-	set 6, [hl]
-	ld a, [wcd26]
-	ld hl, Jumptable_101494
-	rst JumpTable
-	ld a, [wcd26]
-	bit 7, a
-	ret z
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101494
-
-Jumptable_101494: ; 101494
-	dw Function10149a
-	dw Function1014a6
-	dw Function1014b7
-; 10149a
-
-Function10149a: ; 10149a
-	ld a, $28
-	ld [wcd42], a
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-
-Function1014a6: ; 1014a6
-	ld hl, wcd42
-	dec [hl]
-	ret nz
-	ld a, $50
-	ld [wcd42], a
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-
-Function1014b7: ; 1014b7
-	call GetJoypad
-	ld a, [hJoyPressed]
-	and $03
-	jr nz, .asm_1014c5
-	ld hl, wcd42
-	dec [hl]
-	ret nz
-
-.asm_1014c5
-	ld a, [wcd26]
-	set 7, a
-	ld [wcd26], a
-	ret
-; 1014ce
-
-Function1014ce: ; 1014ce
-	callba Function100720
-	callba StartMobileInactivityTimer
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1014e2
-
-Function1014e2: ; 1014e2
-	ld hl, wcd29
-	set 6, [hl]
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1014f4
-
-Function1014f4: ; 1014f4
-	callba EnableMobile
-	ld hl, wcd29
-	set 6, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101507
-
-Function101507: ; 101507
-	ld de, wcd30
-	ld hl, $40
-	ld bc, $40
-	ld a, $02
-	call Function3e32
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10151d
-
-Function10151d: ; 10151d ; unreferenced
-	ld a, $34
-	call Function3e32
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10152a
-
-Function10152a: ; 10152a
-	ld a, $36
-	call Function3e32
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101537
-
-Function101537: ; 101537
-	ld a, $0a
-	call Function3e32
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101544
-
-Function101544: ; 101544
-	callba StartMobileInactivityTimer
-	ld a, $12
-	call Function3e32
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101557
-
-Function101557: ; 101557
-	callba StartMobileInactivityTimer
-	ld hl, wcd53
-	ld a, $08
-	call Function3e32
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10156d
-
-Function10156d: ; 10156d
-	call Function101418
-	ret c
-
-Function101571: ; 101571
-	callba Function10032e
-	ret c
-	ret z
-	ld a, e
-	cp $01
-	jr z, .asm_101582
-	ld [wcd2b], a
-	ret
-
-.asm_101582
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10158a
-
-Function10158a: ; 10158a
-	callba IncrementMobileInactivityTimerBy1Frame
-	ld a, [wMobileInactivityTimerMinutes]
-	cp $0a
-	jr c, Function10156d
-	ld a, $fb
-	ld [wcd2b], a
-	ret
-; 10159d
-
-Function10159d: ; 10159d
-	ld de, wc608
-	callba Function100edf
-	ld de, wc608
-	ld a, $05
-	ld hl, w5_d800
-	call Function10174c
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1015be
-
-Function1015be: ; 1015be
-	ld de, wc608
-	callba Function100eed
-	ld de, wc608
-	ld a, $05
-	ld hl, w5_d800
-	call Function10174c
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1015df
-
-Function1015df: ; 1015df
-	ld de, wc608
-	callba Function100ef4
-	ld de, wc608
-	ld a, $05
-	ld hl, w5_d800
-	call Function10174c
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101600
-
-Function101600: ; 101600
-	ld hl, w5_d800
-	ld de, wc608
-	ld bc, $1e0
-	ld a, $05
-	call FarCopyWRAM
-	ld de, wc608
-	callba Function100ee6
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10161f
-
-Function10161f: ; 10161f
-	call Function101649
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10162a
-
-Function10162a: ; 10162a
-	call Function101663
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101635
-
-Function101635: ; 101635
-	ld de, wc608
-	ld bc, $1e0
-	call FarCopyWRAM
-	ret
-; 10163f
-
-Function10163f: ; 10163f
-	ld hl, wc608
-	ld bc, $1e0
-	call FarCopyWRAM
-	ret
-; 101649
-
-Function101649: ; 101649
-	ld a, $05
-	ld hl, w5_d800
-	call Function101635
-	ld a, $05
-	ld de, w5_da00
-	call Function10163f
-	ret
-; 10165a
-
-Function10165a: ; 10165a
-	ld a, $05
-	ld hl, w5_da00
-	call Function101635
-	ret
-; 101663
-
-Function101663: ; 101663
-	ld a, $05
-	ld hl, w5_d800
-	call Function101635
-	ld a, $05
-	ld de, w5_dc00
-	call Function10163f
-	ret
-; 101674
-
-Function101674: ; 101674 ; unreferenced
-	ld a, $05
-	ld hl, w5_dc00
-	call Function101635
-	ret
-; 10167d
-
-Function10167d: ; 10167d
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10168a
-
-Function10168a: ; 10168a
-	call Function101418
-	ret c
-
-Function10168e: ; 10168e
-	ld b, 0
-	ld c, $01
-	callba Function10079c
-	ret c
-	ld c, $01
-	ld b, $03
-	callba AdvanceMobileInactivityTimerAndCheckExpired
-	ret c
-	ld a, [wcd26]
-	ld hl, Jumptable_1016c3
-	rst JumpTable
-	ld hl, wcd29
-	set 6, [hl]
-	ld a, [wcd26]
-	bit 7, a
-	ret z
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1016c3
-
-Jumptable_1016c3: ; 1016c3
-	dw Function1016cf
-	dw Function1016de
-	dw Function1016f8
-	dw Function101705
-	dw Function101719
-	dw Function101724
-; 1016cf
-
-Function1016cf: ; 1016cf
-	ld hl, wcd3a
-	inc [hl]
-	call Function10176f
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-	ret
-; 1016de
-
-Function1016de: ; 1016de
-	call Function10177b
-	jr nc, .asm_1016eb
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-	ret
-
-.asm_1016eb
-	ld a, $ff
-	ld [wcd39], a
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-	ret
-; 1016f8
-
-Function1016f8: ; 1016f8
-	ld a, 0
-	ld [wcd27], a
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-	ret
-; 101705
-
-Function101705: ; 101705
-	callba Function100382
-	ld a, [wcd27]
-	bit 7, a
-	ret z
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-	ret
-; 101719
-
-Function101719: ; 101719
-	call Function1017c7
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-	ret
-; 101724
-
-Function101724: ; 101724
-	ld a, [wcd39]
-	cp $ff
-	jr z, .asm_101731
-	ld a, 0
-	ld [wcd26], a
-	ret
-
-.asm_101731
-	ld a, [wcd26]
-	set 7, a
-	ld [wcd26], a
-	ret
-; 10173a
-
-Unknown_10173a:
-	db $50
-
-Function10173b: ; 10173b
-	push bc
-	push af
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [Unknown_10173a]
-	ld c, a
-	ld b, 0
-	pop af
-	call AddNTimes
-	pop bc
-	ret
-; 10174c
-
-Function10174c: ; 10174c
-	ld [wcd3d], a
-	ld a, l
-	ld [wcd3e], a
-	ld a, h
-	ld [wcd3f], a
-	ld a, e
-	ld [wcd3b], a
-	ld a, d
-	ld [wcd3c], a
-	ld a, c
-	ld [wcd40], a
-	ld a, b
-	ld [wcd41], a
-	xor a
-	ld [wcd39], a
-	ld [wcd3a], a
-	ret
-; 10176f
-
-Function10176f: ; 10176f
-	ld hl, wccb4
-	ld bc, $54
-	ld a, $11
-	call ByteFill
-	ret
-; 10177b
-
-Function10177b: ; 10177b
-	ld a, [Unknown_10173a]
-	ld c, a
-	ld b, 0
-	ld a, [wcd3a]
-	ld hl, 0
-	call AddNTimes
-	ld e, l
-	ld d, h
-	ld hl, wcd40
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, l
-	sub e
-	ld l, a
-	ld a, h
-	sbc d
-	ld h, a
-	jr c, .asm_1017a0
-	add hl, bc
-	call Function1017b0
-	scf
-	ret
-
-.asm_1017a0
-	ld a, $ff
-	ld [wcd39], a
-	add hl, bc
-	ld a, h
-	or l
-	ret z
-	ld c, l
-	ld b, h
-	call Function1017b0
-	xor a
-	ret
-; 1017b0
-
-Function1017b0: ; 1017b0
-	ld a, c
-	ld [wccb4], a
-	push bc
-	ld a, [wcd3a]
-	dec a
-	ld hl, wcd3b
-	call Function10173b
-	pop bc
-	ld de, wccb5
-	call CopyBytes
-	ret
-; 1017c7
-
-Function1017c7: ; 1017c7
-	ld a, [wcc60]
-	ld c, a
-	ld b, 0
-	ld a, [wcd3a]
-	dec a
-	ld hl, wcd3e
-	call Function10173b
-	ld e, l
-	ld d, h
-	ld hl, wcc61
-	ld a, [wcd3d]
-	call FarCopyWRAM
-	and a
-	ret
-; 1017e4
-
-Function1017e4: ; 1017e4
-	ld a, 0
-	ld [wcd27], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1017f1
-
-Function1017f1: ; 1017f1
-	call Function101418
-	ret c
-
-Function1017f5: ; 1017f5
-	ld b, 0
-	ld c, $01
-	callba Function10079c
-	ret c
-	ld c, $01
-	ld b, $03
-	callba AdvanceMobileInactivityTimerAndCheckExpired
-	ret c
-	callba Function100382
-	ld a, [wcd27]
-	bit 7, a
-	jr nz, .next
-	ld hl, wcd29
-	set 6, [hl]
-	ret
-
-.next
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101826
-
-Function101826: ; 101826
-	ld a, [wcd21]
-	cp $02
-	jr z, .asm_101833
-	cp $01
-	jr z, .asm_101844
-	jr .asm_101869
-
-.asm_101833
-	ld hl, Unknown_10186f
-	ld de, wccb4
-	call Function1013f5
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101844
-	callba Function103654
-	ld a, c
-	ld hl, Unknown_101882
-	cp $01
-	jr z, .asm_10185b
-	ld hl, Unknown_101895
-	cp $02
-	jr z, .asm_10185b
-	jr .asm_101869
-
-.asm_10185b
-	ld de, wccb4
-	call Function1013f5
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101869
-	ld a, $fe
-	ld [wcd2b], a
-	ret
-; 10186f
-
-
-SECTION "ascii 10186f", ROMX
-
-	charmap " ", $20 ; revert to ascii
-
-Unknown_10186f:
-	db .end - @
-	db $19, $73, $09, $13, "trade_crystal"
-.end	db 0
-
-Unknown_101882:
-	db .end - @
-	db $19, $67, $10, $01, "free__crystal"
-.end	db 0
-
-Unknown_101895:
-	db .end - @
-	db $19, $67, $10, $01, "limit_crystal"
-.end	db 0
-; 1018a8
-
-
-SECTION "bank40_3", ROMX
-
-Function1018a8: ; 1018a8
-	ld hl, wccb5
-	ld de, wcc61
-	ld a, $04
-	call Function101406
-	jr c, .asm_1018d0
-	ld hl, wccb9
-	ld de, wcc65
-	ld a, $06
-	call Function101406
-	jr c, .asm_1018ca
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_1018ca
-	ld a, $f6
-	ld [wcd2b], a
-	ret
-
-.asm_1018d0
-	ld a, $f5
-	ld [wcd2b], a
-	ret
-; 1018d6
-
-Function1018d6: ; 1018d6
-	call Function1018ec
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1018e1
-
-Function1018e1: ; 1018e1
-	call Function1018fb
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1018ec
-
-Function1018ec: ; 1018ec
-	ld a, $0a
-	ld hl, wccb4
-	ld [hli], a
-	ld c, a
-.asm_1018f3
-	call Random
-	ld [hli], a
-	dec c
-	jr nz, .asm_1018f3
-	ret
-; 1018fb
-
-Function1018fb: ; 1018fb
-	ld a, [wcd2f]
-	and a
-	jr z, .asm_101906
-	ld hl, wcc61
-	jr .asm_101909
-
-.asm_101906
-	ld hl, wccb5
-
-.asm_101909
-	ld de, LinkBattleRNs
-	ld bc, 10
-	call CopyBytes
-	ret
-; 101913
-
-Function101913: ; 101913
-	ld hl, wcd2a
-	set 0, [hl]
-	xor a
-	ld [wc30d], a
-	ld hl, wcd29
-	res 4, [hl]
-	xor a
-	ld [wc305], a
-	ld hl, wcd29
-	res 7, [hl]
-	ld a, $90
-	ld [hWY], a
-	ld a, [wcd21]
-	cp $01
-	jr z, .asm_10193f
-	cp $02
-	jr z, .asm_101945
-	ld a, $71
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_10193f
-	ld a, $66
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101945
-	ld a, $65
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10194b
-
-Function10194b: ; 10194b
-	call DisableSpriteUpdates
-	call ClearSprites
-	callba Function1021f9
-	ld hl, wcd29
-	bit 3, [hl]
-	jr nz, .asm_101967
-	call Function1013c0
-	ld a, $71
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101967
-	ld a, $60
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 10196d
-
-_SelectMonsForMobileBattle: ; 10196d
-	callba BlankScreen
-	callba Mobile_CommunicationStandby
-	ld hl, wcd29
-	set 5, [hl]
-	ld hl, wcd2a
-	set 6, [hl]
-	ld a, $06
-	ld [wccb4], a
-	ld hl, wPlayerMonSelection
-	ld de, wccb5
-	ld bc, 3
-	call CopyBytes
-	ld hl, wcd6c
-	ld a, [hli]
-	ld [wccb8], a
-	ld a, [hli]
-	ld [wccb9], a
-	ld a, [hl]
-	ld [wccba], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1019ab
-
-_StartMobileBattle: ; 1019ab
-	call CopyOtherPlayersBattleMonSelection
-	callba Function100754
-	xor a
-	ld [wdc5f], a
-	ld [wdc60], a
-	callba BlankScreen
-	call SpeechTextBox
-	callba Function100846
-	ld c, 120
-	call DelayFrames
-	callba ClearTileMap
-	call .CopyOTDetails
-	call StartMobileBattle
-	ld a, [wcd2b]
-	cp $fc
-	jr nz, .asm_1019e6
-	xor a
-	ld [wcd2b], a
-.asm_1019e6
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1019ee
-
-.CopyOTDetails: ; 1019ee
-	ld a, [rSVBK]
-	push af
-	ld a, 5
-	ld [rSVBK], a
-
-	ld bc, w5_dc0d
-	ld de, w5_dc11
-	callba GetMobileOTTrainerClass
-
-	pop af
-	ld [rSVBK], a
-
-	ld a, c
-	ld [OtherTrainerClass], a
-	ld hl, OTPlayerName
-	ld de, OTClassName
-	ld bc, NAME_LENGTH
-	call CopyBytes
-	ld a, [wcd2f]
-	and a
-	ld a, 2
-	jr z, .got_link_player_number
-	ld a, 1
-.got_link_player_number
-	ld [hLinkPlayerNumber], a
-	ret
-; 101a21
-
-StartMobileBattle: ; 101a21
-	; force stereo and fast text speed
-	ld hl, Options
-	ld a, [hl]
-	push af
-	and (1 << STEREO)
-	or 1 ; 1 frame per character i.e. fast text
-	ld [hl], a
-	ld a, 1
-	ld [wDisableTextAcceleration], a
-	callba BattleIntro
-	callba DoBattle
-	callba ShowLinkBattleParticipantsAfterEnd
-	xor a
-	ld [wDisableTextAcceleration], a
-	ld a, $ff
-	ld [hLinkPlayerNumber], a
-	pop af
-	ld [Options], a
-	ret
-; 101a4f
-
-Function101a4f: ; 101a4f
-	ld a, 1
-	ld [wDisableTextAcceleration], a
-	callba DisplayLinkBattleResult
-	xor a
-	ld [wDisableTextAcceleration], a
-	callba CleanUpBattleRAM
-	callba LoadPokemonData
-	call Function1013c0
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101a75
-
-CopyOtherPlayersBattleMonSelection: ; 101a75
-	ld hl, wcc61
-	ld de, wOTMonSelection
-	ld bc, 3
-	call CopyBytes
-	ld de, wcc64
-	callba Function100772
-	callba Function101050
-	callba LoadSelectedPartiesForColosseum
-	ret
-; 101a97
-
-Function101a97: ; 101a97
-	callba Function115d99
-	ld hl, wcd29
-	set 7, [hl]
-	ld c, $02
-	call Function10142c
-	ld hl, wcd29
-	set 6, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101ab4
-
-Function101ab4: ; 101ab4
-	ld e, $01
-	call Function101ee4
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101ac6
-
-Function101ac6: ; 101ac6
-	callba Function115d99
-	ld hl, wcd29
-	set 7, [hl]
-	ld c, $02
-	call Function10142c
-	ld hl, wcd29
-	set 6, [hl]
-	xor a
-	ld [wcd2f], a
-	ld de, wdc42
-	call Function102068
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101aed
-
-Function101aed: ; 101aed
-	callba Function115d99
-	ld hl, wcd29
-	set 7, [hl]
-	ld c, $02
-	call Function10142c
-	ld hl, wcd29
-	set 6, [hl]
-	ld a, $01
-	ld [wcd2f], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101b0f
-
-Function101b0f: ; 101b0f
-	ld c, 0
-	call Function10142c
-	ld e, $03
-	call Function101ee4
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ld a, 0
-	ld [wcd26], a
-	ret
-; 101b2b
-
-Function101b2b: ; 101b2b
-	callba Function100579
-	ld hl, wcd29
-	set 2, [hl]
-	ld a, [wcd26]
-	bit 7, a
-	ret z
-	call Function1013dd
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMenuCursorY]
-	cp $01
-	jr z, .asm_101b51
-	ld a, $02
-	ld [wcd2b], a
-	ret
-
-.asm_101b51
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101b59
-
-Function101b59: ; 101b59
-	ld c, $02
-	call Function10142c
-	ld e, $02
-	call Function101ee4
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101b70
-
-Function101b70: ; 101b70
-	ld c, $02
-	call Function10142c
-	ld e, $04
-	call Function101ee4
-	ld hl, wcd29
-	set 5, [hl]
-	call UpdateSprites
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ld a, 0
-	ld [wcd26], a
-	ret
-; 101b8f
-
-Function101b8f: ; 101b8f
-	callba Function1005c3
-	ld hl, wcd29
-	set 2, [hl]
-	ld a, [wcd26]
-	bit 7, a
-	ret z
-	call Function1013dd
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMenuCursorY]
-	cp $01
-	jr z, .asm_101bbc
-	ld a, $01
-	ld [wcd2f], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101bbc
-	xor a
-	ld [wcd2f], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101bc8
-
-Function101bc8: ; 101bc8
-	ld c, $02
-	call Function10142c
-	ld e, $08
-	call Function101ee4
-	call Function102048
-	call Function1013dd
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101be5
-
-Function101be5: ; 101be5
-	callba Function100579
-	ld hl, wcd29
-	set 2, [hl]
-	ld a, [wcd26]
-	bit 7, a
-	ret z
-	call Function1013dd
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMenuCursorY]
-	cp $01
-	jr nz, .asm_101c0b
-	ld a, $2a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101c0b
-	ld a, $02
-	ld [wcd2b], a
-	ret
-; 101c11
-
-Function101c11: ; 101c11
-	ld a, $01
-	ld [wdc5f], a
-	ld e, $09
-	call Function101ee4
-	call Function102048
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101c2b
-
-Function101c2b: ; 101c2b
-	ld a, $02
-	ld [wdc5f], a
-	ld e, $07
-	call Function101ee4
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101c42
-
-Function101c42: ; 101c42
-	ld hl, wcd2a
-	set 1, [hl]
-	call Function100665
-	ld a, $47
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101c50
-
-Function101c50: ; 101c50
-	ld e, $0a
-	call Function101ee4
-	ld hl, wcd29
-	set 2, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101c62
-
-Function101c62: ; 101c62
-	callba Function115d99
-	ld hl, wcd29
-	set 7, [hl]
-	ld c, $01
-	call Function10142c
-	xor a
-	ld [wc30d], a
-	ld hl, wcd29
-	res 4, [hl]
-	ld e, $0b
-	call Function101ee4
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ld a, 0
-	ld [wcd26], a
-	ret
-; 101c92
-
-Function101c92: ; 101c92
-	callba Function100675
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101ca0
-
-Function101ca0: ; 101ca0
-	ld c, $02
-	call Function10142c
-	ld e, $0c
-	call Function101ee4
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ld a, 0
-	ld [wcd26], a
-	ret
-; 101cbc
-
-Function101cbc: ; 101cbc
-	ld a, $01
-	ld [wcd2b], a
-	ret
-; 101cc2
-
-Function101cc2: ; 101cc2 ; unreferenced
-	ld a, $02
-	ld [wcd2b], a
-	ret
-; 101cc8
-
-Function101cc8: ; 101cc8
-	ld a, $01
-	ld [wc314], a
-	ld a, $01
-	ld [wc30d], a
-	ld hl, wcd29
-	set 4, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101cdf
-
-Function101cdf: ; 101cdf
-	ld a, $06
-	ld [wc314], a
-	ld a, $01
-	ld [wc30d], a
-	ld hl, wcd29
-	set 4, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101cf6
-
-Function101cf6: ; 101cf6
-	ld a, $0b
-	ld [wc314 + 1], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101d03
-
-Function101d03: ; 101d03
-	ld a, $0e
-	ld [wc314 + 1], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101d10
-
-Function101d10: ; 101d10
-	ld c, $01
-	call Function10142c
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	jr Function101d2a
-
-Function101d1e: ; 101d1e
-	ld c, $03
-	call Function10142c
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-
-Function101d2a: ; 101d2a
-	call Function101418
-	ret c
-	ld hl, wcd29
-	set 6, [hl]
-	ld a, [wcd26]
-	ld hl, Jumptable_101d4d
-	rst JumpTable
-	ld a, [wcd26]
-	bit 7, a
-	ret z
-	ld a, 0
-	ld [wcd26], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101d4d
-
-Jumptable_101d4d: ; 101d4d
-	dw Function101d51
-	dw Function101d5d
-; 101d51
-
-Function101d51: ; 101d51
-	ld a, $3c
-	ld [wcd42], a
-	ld a, [wcd26]
-	inc a
-	ld [wcd26], a
-
-Function101d5d: ; 101d5d
-	ld hl, wcd42
-	dec [hl]
-	ret nz
-	ld a, [wcd26]
-	set 7, a
-	ld [wcd26], a
-	ret
-; 101d6b
-
-Function101d6b: ; 101d6b
-	ld a, [wc30d]
-	and a
-	ret nz
-	ld hl, wcd29
-	res 4, [hl]
-	ld a, $64
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101d7b
-
-Function101d7b: ; 101d7b
-	callba Function10138b
-	ld b, 0
-	ld hl, Unknown_101d8d
-	add hl, bc
-	ld c, [hl]
-	ld a, c
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101d8d
-
-Unknown_101d8d: ; 101d8d
-	db $15, $15, $1f, $1f, $0c, $12, $3a, $3a
-; 101d95
-
-Function101d95: ; 101d95
-	call Function101ee2
-	call LoadStandardMenuDataHeader
-	ld e, $0e
-	call Function101ee4
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ld a, 0
-	ld [wcd26], a
-	ret
-; 101db2
-
-Function101db2: ; 101db2
-	callba Function103302
-	call ExitMenu
-	ld hl, wcd29
-	set 5, [hl]
-	jr c, .asm_101dca
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101dca
-	ld a, $02
-	ld [wcd2b], a
-	ret
-; 101dd0
-
-Function101dd0: ; 101dd0
-	ld hl, wdc41
-	bit 1, [hl]
-	jr nz, .asm_101ddd
-	ld a, $19
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101ddd
-	ld a, $1b
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101de3
-
-Function101de3: ; 101de3
-	call Function101ecc
-	call Function101ead
-	jr c, .asm_101df3
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101df3
-	call Function101e98
-	jr c, .asm_101e00
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101e00
-	call Function101ed3
-	ld a, $02
-	ld [wcd2b], a
-	ret
-; 101e09
-
-Function101e09: ; 101e09
-	call Function101ead
-	jr c, .asm_101e16
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101e16
-	call Function101ecc
-	call Function101e98
-	push af
-	call Function101ed3
-	pop af
-	jr c, .asm_101e2b
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101e2b
-	ld a, $02
-	ld [wcd2b], a
-	ret
-; 101e31
-
-Function101e31: ; 101e31
-	ld a, $3a
-	ld [wMobileCommsJumptableIndex], a
-	jp Function101c2b
-; 101e39
-
-Function101e39: ; 101e39
-	call Function1020bf
-	push af
-	call Function101ed3
-	pop af
-	jr c, .asm_101e49
-	ld a, $2a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101e49
-	ld a, $02
-	ld [wcd2b], a
-	ret
-; 101e4f
-
-Function101e4f: ; 101e4f
-	ld e, $06
-	call Function101ee4
-	call Function1013d6
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ld a, 0
-	ld [wcd26], a
-	ret
-; 101e64
-
-Function101e64: ; 101e64
-	call Function101ecc
-	call Function1020a8
-	push af
-	call Function101ed3
-	pop af
-	jr c, .asm_101e77
-	ld a, $24
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_101e77
-	ld hl, wcd29
-	set 5, [hl]
-	ld a, $02
-	ld [wcd2b], a
-	ret
-; 101e82
-
-Function101e82: ; 101e82 ; unreferenced
-	call Function101ecc
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101e8d
-
-Function101e8d: ; 101e8d ; unreferenced
-	call Function101ed3
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 101e98
-
-Function101e98: ; 101e98
-	call ClearSprites
-	callba Function8adb3
-	ret c
-	ld hl, GameTimerPause
-	set 7, [hl]
-	ld hl, wdc41
-	set 4, [hl]
-	ret
-; 101ead
-
-Function101ead: ; 101ead
-	ld hl, GameTimerPause
-	bit 7, [hl]
-	jr nz, .asm_101ec8
-	ld hl, wdc41
-	bit 2, [hl]
-	jr z, .asm_101eca
-	ld a, [wcd2f]
-	and a
-	jr nz, .asm_101ec8
-	ld hl, wdc41
-	bit 1, [hl]
-	jr z, .asm_101eca
-
-.asm_101ec8
-	xor a
-	ret
-
-.asm_101eca
-	scf
-	ret
-; 101ecc
-
-Function101ecc: ; 101ecc
-	call Function101ee2
-	call FadeToMenu
-	ret
-; 101ed3
-
-Function101ed3: ; 101ed3
-	call Function1013aa
-	callba Function115d99
-	ld hl, wcd29
-	set 7, [hl]
-	ret
-; 101ee2
-
-Function101ee2: ; 101ee2
-	ld e, 0
-
-Function101ee4: ; 101ee4
-	ld d, 0
-	ld hl, Unknown_101ef5
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld d, [hl]
-	ld e, a
-	callba Function100504
-	ret
-; 101ef5
-
-Unknown_101ef5: ; 101ef5
-	dw String_101f13
-	dw String_101f14
-	dw String_101f32
-	dw String_101f4f
-	dw String_101f69
-	dw String_101f81
-	dw String_101f93
-	dw String_101faa
-	dw String_101fc5
-	dw String_101fd2
-	dw String_101fe1
-	dw String_101fef
-	dw String_102000
-	dw String_10200c
-	dw String_102014
-
-String_101f13: ; 101f13
-	db "@"
-
-String_101f14: ; 101f14
-	db   "モバイルアダプタを つかって"
-	next "おともだちと つうしんします@"
-
-String_101f32: ; 101f32
-	db   "でんわを かけるひとには"
-	next "つうわりょうきんが かかります@"
-
-String_101f4f: ; 101f4f
-	db   "モバイルアダプタの じゅんびは"
-	next "できて いますか?@"
-
-String_101f69: ; 101f69
-	db   "あなたが おともだちに"
-	next "でんわを かけますか?@"
-
-String_101f81: ; 101f81
-	db   "めいしフ,ルダーを"
-	next "つかいますか?@"
-
-String_101f93: ; 101f93
-	db   "でんわばんごうを にゅうりょく"
-	next "してください@"
-
-String_101faa: ; 101faa
-	db   "それでは おともだちからの"
-	next "でんわを おまちします…@"
-
-String_101fc5: ; 101fc5
-	next "に でんわを かけます@"
-
-String_101fd2: ; 101fd2
-	next "に でんわを かけています@"
-
-String_101fe1: ; 101fe1
-	db   "でんわが つながりました!@"
-
-String_101fef: ; 101fef
-	db   "つうわを"
-	next "しゅうりょう します…@"
-
-String_102000: ; 102000
-	db   "つうしん しゅうりょう@"
-
-String_10200c: ; 10200c
-	db   "つうわ じかん@"
-
-String_102014: ; 102014
-	db   "それでは つうしんの"
-	next "せっていを してください@"
-; 10202c
-
-Function10202c: ; 10202c
-	callba Function115d99
-	ld hl, wcd29
-	set 7, [hl]
-	ld c, $02
-	call Function10142c
-	ld e, $0d
-	call Function101ee4
-	hlcoord 4, 4
-	call Function100681
-	ret
-; 102048
-
-Function102048: ; 102048
-	call Function10204c
-	ret
-; 10204c
-
-Function10204c: ; 10204c
-	hlcoord 3, 2
-	ld c, $10
-	ld de, wcd53
-.asm_102054
-	ld a, [de]
-	inc de
-	and a
-	jr z, .asm_102067
-	sub $30
-	jr c, .asm_102067
-	cp $0a
-	jr nc, .asm_102067
-	add $f6
-	ld [hli], a
-	dec c
-	jr nz, .asm_102054
-
-.asm_102067
-	ret
-; 102068
-
-Function102068: ; 102068
-	ld hl, wcd53
-	ld c, $08
-.asm_10206d
-	ld a, [de]
-	call Function102080
-	jr c, .asm_10207f
-	ld a, [de]
-	swap a
-	call Function102080
-	jr c, .asm_10207f
-	inc de
-	dec c
-	jr nz, .asm_10206d
-
-.asm_10207f
-	ret
-; 102080
-
-Function102080: ; 102080
-	and $0f
-	cp $0f
-	jr z, .asm_10208a
-	add $30
-	ld [hli], a
-	ret
-
-.asm_10208a
-	ld [hl], 0
-	scf
-	ret
-; 10208e
-
-Function10208e: ; 10208e
-	push de
-	ld h, d
-	ld l, e
-	ld de, wdc42
-	ld bc, 8
-	call CopyBytes
-	pop de
-	ret
-; 10209c
-
-Function10209c: ; 10209c
-	ld a, $ff
-	ld hl, wdc42
-	ld bc, 8
-	call ByteFill
-	ret
-; 1020a8
-
-Function1020a8: ; 1020a8
-	call Function10209c
-	ld c, $01
-	ld de, wdc42
-	callba Function17a68f
-	ret c
-	call Function10208e
-	call Function102068
-	xor a
-	ret
-; 1020bf
-
-Function1020bf: ; 1020bf
-	call ClearSprites
-	callba Function8aba9
-	ld a, c
-	and a
-	jr z, .asm_1020e8
-	dec a
-	ld hl, $a04c
-	ld bc, $25
-	call AddNTimes
-	ld d, h
-	ld e, l
-	ld a, $04
-	call GetSRAMBank
-	call Function10208e
-	call Function102068
-	call CloseSRAM
-	xor a
-	ret
-
-.asm_1020e8
-	scf
-	ret
-; 1020ea
-
-Function1020ea: ; 1020ea
-	ld hl, wdc41
-	bit 4, [hl]
-	jr z, .quit
-	ld hl, wdc41
-	bit 2, [hl]
-	jr nz, .quit
-	call Function10218d
-	ld hl, wc608
-	bit 4, [hl]
-	jr z, .quit
-	ld hl, wc608
-	bit 2, [hl]
-	jr nz, .quit
-	call Function102112
-	jr z, .quit
-	and a
-	ret
-
-.quit
-	scf
-	ret
-; 102112
-
-Function102112: ; 102112
-	ld a, $04
-	call GetSRAMBank
-	ld hl, $a041
-	ld c, 40
-.outer_loop
-	push hl
-	ld de, $c60f
-	ld b, 31
-.inner_loop
-	ld a, [de]
-	cp [hl]
-	jr nz, .not_matching
-	inc de
-	inc hl
-	dec b
-	jr nz, .inner_loop
-	pop hl
-	xor a
-	jr .done
-
-.not_matching
-	pop hl
-	ld de, 37
-	add hl, de
-	dec c
-	jr nz, .outer_loop
-	ld a, $01
-	and a
-	jr .done ; useless jr
-
-.done
-	push af
-	call CloseSRAM
-	pop af
-	ret
-; 102142
-
-Function102142: ; 102142
-	call Function10218d
-	call Function102180
-	ld hl, UnknownText_0x1021d1
-	call MenuTextBox
-	ld de, SFX_LEVEL_UP
-	call PlaySFX
-	call JoyWaitAorB
-	call ExitMenu
-	call Function10219f
-	ld hl, UnknownText_0x1021d6
-	call MenuTextBox
-	call YesNoBox
-	call ExitMenu
-	jr c, .asm_10217c
-	call Function1021b8
-	jr c, .asm_10217c
-	call Function10218d
-	call Function102180
-	ld hl, UnknownText_0x1021db
-	call PrintText
-
-.asm_10217c
-	call Function1013d6
-	ret
-; 102180
-
-Function102180: ; 102180
-	ld hl, wc608 + 1
-	ld de, StringBuffer2
-	ld bc, 11
-	call CopyBytes
-	ret
-; 10218d
-
-Function10218d: ; 10218d
-	ld hl, w5_dc00
-	ld de, wc608
-	ld bc, $26
-	ld a, $05
-	call FarCopyWRAM
-	ld de, wc608 + 1 ; useless
-	ret
-; 10219f
-
-Function10219f: ; 10219f
-	call FadeToMenu
-	call Function10218d
-	ld de, wc608 + 1
-	callba Function8ac4e
-	call JoyWaitAorB
-	call PlayClickSFX
-	call Function1013aa
-	ret
-; 1021b8
-
-Function1021b8: ; 1021b8
-	call FadeToMenu
-	call Function10218d
-	ld de, wPlayerMoveStruct
-	callba Function8ac70
-	ld a, c
-	ld [StringBuffer1], a
-	push af
-	call Function1013aa
-	pop af
-	ret
-; 1021d1
-
-UnknownText_0x1021d1: ; 1021d1
-	text_jump UnknownText_0x1bd19a
-	db "@"
-
-UnknownText_0x1021d6: ; 1021d1
-	text_jump UnknownText_0x1bd1ba
-	db "@"
-
-UnknownText_0x1021db: ; 1021d1
-	text_jump UnknownText_0x1bd1dd
-	db "@"
-; 1021e0
-
-Function1021e0: ; 1021e0
-	call MenuTextBox
-	call JoyWaitAorB
-	call ExitMenu
-	ret
-; 1021ea
-
-UnknownText_0x1021ea: ; 1021ea
-	text_jump UnknownText_0x1bd201
-	db "@"
-
-UnknownText_0x1021ef:
-	text_jump UnknownText_0x1bd211
-	db "@"
-
-UnknownText_0x1021f4:
-	text_jump UnknownText_0x1bd223
-	db "@"
-; 1021f9
-
-Function1021f9: ; 1021f9
-	call Function102233
-	ld a, $0 ; Function10234b
-	ld [wcd49], a
-	ld hl, wcd29
-	bit 3, [hl]
-	res 3, [hl]
-	jr z, .asm_10220f
-	ld a, $1 ; Function102361
-	ld [wcd49], a
-
-.asm_10220f
-	call Function1022ca
-	ld a, [wcd49]
-	ld hl, Jumptable_1022f5
-	rst JumpTable
-	call Function102241
-	call Function1022d0
-	jr c, .asm_102231
-	ld a, [wcd49]
-	bit 7, a
-	jr z, .asm_10220f
-	xor a
-	ld hl, wcd29
-	bit 3, [hl]
-	ret z
-	scf
-	ret
-
-.asm_102231
-	xor a
-	ret
-; 102233
-
-Function102233: ; 102233
-	ld hl, wcd49
-	ld bc, 10
-	xor a
-	call ByteFill
-	call Function10304f
-	ret
-; 102241
-
-Function102241: ; 102241
-	call Function10226a
-	call Function102274
-	call Function10224b
-	ret
-; 10224b
-
-Function10224b: ; 10224b
-	ld hl, wcd4b
-	bit 1, [hl]
-	jr nz, .asm_10225e
-	bit 2, [hl]
-	jr nz, .asm_10225e
-	call DelayFrame
-	call DelayFrame
-	xor a
-	ret
-
-.asm_10225e
-	res 1, [hl]
-	res 2, [hl]
-	callba Mobile_ReloadMapPart
-	scf
-	ret
-; 10226a
-
-Function10226a: ; 10226a
-	ld hl, wcd4b
-	bit 0, [hl]
-	ret z
-	call Function10305d
-	ret
-; 102274
-
-Function102274: ; 102274
-	ld hl, wcd4b
-	bit 3, [hl]
-	ret z
-	res 3, [hl]
-	ld de, 8
-	call PlaySFX
-	ret
-; 102283
-
-Function102283: ; 102283
-	ld a, $01
-	ld [AttrMapEnd], a
-	ld hl, wcd4b
-	set 0, [hl]
-	ret
-; 10228e
-
-Function10228e: ; 10228e
-	xor a
-	ld [AttrMapEnd], a
-	ld hl, wcd4b
-	res 0, [hl]
-	ret
-; 102298
-
-Function102298: ; 102298
-	ld a, e
-	cp $02
-	ret nz
-	ld hl, wcd4b
-	bit 6, [hl]
-	jr z, .asm_1022b6
-	ld hl, wcd4b
-	bit 7, [hl]
-	ld hl, wcd4b
-	set 7, [hl]
-	ret nz
-	ld de, SFX_ELEVATOR_END
-	call PlaySFX
-	jr .asm_1022c1
-
-.asm_1022b6
-	ld hl, wcd4b
-	bit 7, [hl]
-	ld hl, wcd4b
-	res 7, [hl]
-	ret z
-
-.asm_1022c1
-	call Function10304f
-	ld a, $01
-	ld [AttrMapEnd], a
-	ret
-; 1022ca
-
-Function1022ca: ; 1022ca
-	ld a, 30
-	ld [OverworldDelay], a
-	ret
-; 1022d0
-
-Function1022d0: ; 1022d0
-	callba Function10032e
-	ld a, [wcd2b]
-	and a
-	jr nz, .asm_1022f3
-	call Function102298
-	ld a, [OverworldDelay]
-	ld c, a
-	ld a, 30
-	sub c
-	ld c, a
-	ld b, $03
-	callba AdvanceMobileInactivityTimerAndCheckExpired
-	jr c, .asm_1022f3
-	xor a
-	ret
-
-.asm_1022f3
-	scf
-	ret
-; 1022f5
-
-Jumptable_1022f5: ; 1022f5
-	dw Function10234b ; 00
-	dw Function102361 ; 01
-	dw Function10236e ; 02
-	dw Function102387 ; 03
-	dw Function1023a1 ; 04
-	dw Function1025c7 ; 05
-	dw Function1025dc ; 06
-	dw Function1024f6 ; 07
-	dw Function10250c ; 08
-	dw Function1024a8 ; 09
-	dw Function102591 ; 0a
-	dw Function1024a8 ; 0b
-	dw Function1025b0 ; 0c
-	dw Function1025bd ; 0d
-	dw Function102814 ; 0e
-	dw Function10283c ; 0f
-	dw Function102862 ; 10
-	dw Function10286f ; 11
-	dw Function1024a8 ; 12
-	dw Function1028a5 ; 13
-	dw Function1028ab ; 14
-	dw Function1023b5 ; 15
-	dw Function1023c6 ; 16
-	dw Function1024af ; 17
-	dw Function102416 ; 18
-	dw Function102423 ; 19
-	dw Function10244b ; 1a
-	dw Function1024af ; 1b
-	dw Function10246a ; 1c
-	dw Function102652 ; 1d
-	dw Function10266b ; 1e
-	dw Function1025e9 ; 1f
-	dw Function1025ff ; 20
-	dw Function102738 ; 21
-	dw Function102754 ; 22
-	dw Function1026b7 ; 23
-	dw Function1026c8 ; 24
-	dw Function1028bf ; 25
-	dw Function1028c6 ; 26
-	dw Function1028d3 ; 27
-	dw Function1028da ; 28
-	dw Function1024a8 ; 29
-	dw Function10248d ; 2a
-; 10234b
-
-Function10234b: ; 10234b
-	call Function102d9a
-	call Function102dd3
-	call Function102dec
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 102361
-
-Function102361: ; 102361
-	ld a, $cc
-	call Function1028e8
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 10236e
-
-Function10236e: ; 10236e
-	call Function1028fc
-	ret nc
-	ld a, [wcd51]
-	cp $cc
-	jr z, .asm_10237f
-	ld a, $f2
-	ld [wcd2b], a
-	ret
-
-.asm_10237f
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 102387
-
-Function102387: ; 102387
-	ld hl, wcd4b
-	set 6, [hl]
-	xor a
-	ld [wdc5f], a
-	ld de, MUSIC_ROUTE_30
-	call PlayMusic
-	call Function102d9a
-	call Function102dd3
-	ld a, $01
-	ld [wMenuCursorY], a
-
-Function1023a1: ; 1023a1
-	call Function102283
-	call Function102db7
-	call Function102dec
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, $1d
-	ld [wcd49], a
-	ret
-; 1023b5
-
-Function1023b5: ; 1023b5
-	call Function10228e
-	call Function102a3b
-	call Function102b12
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 1023c6
-
-Function1023c6: ; 1023c6
-	call Function102c48
-	call Function102c87
-	ld a, [wcd4c]
-	dec a
-	ld [CurPartyMon], a
-	xor a
-	ld [wPokemonWithdrawDepositParameter], a
-	callba RemoveMonFromPartyOrBox
-	ld hl, PartyCount
-	inc [hl]
-	ld a, [hli]
-	ld c, a
-	ld b, 0
-	add hl, bc
-	ld [hl], $ff
-	ld a, [PartyCount]
-	ld [wcd4c], a
-	call Function102c07
-	call Function102d48
-	call Function102b32
-	call Function102f50
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, $14
-	ld [wcd4e], a
-	ld a, 0
-	ld [wcd4f], a
-	ld a, 0
-	ld [wcd4a], a
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 102416
-
-Function102416: ; 102416
-	ld a, $aa
-	call Function1028e8
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 102423
-
-Function102423: ; 102423
-	call Function102921
-	ret nc
-	callba SaveAfterLinkTrade
-	callba TrainerRankings_Trades
-	callba BackupMobileEventIndex
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, 0
-	ld [wcd4a], a
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 10244b
-
-Function10244b: ; 10244b
-	call Function102f32
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, $19
-	ld [wcd4e], a
-	ld a, 0
-	ld [wcd4f], a
-	ld a, 0
-	ld [wcd4a], a
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 10246a
-
-Function10246a: ; 10246a
-	call Function102d9a
-	ld hl, wcd29
-	set 3, [hl]
-	call Function102e07
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, $2a
-	ld [wcd49], a
-	ret
-; 102480
-
-Function102480: ; 102480
-	ld c, $32
-	call DelayFrames
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 10248d
-
-Function10248d: ; 10248d
-	ld a, [wcd49]
-	set 7, a
-	ld [wcd49], a
-	ret
-; 102496
-
-Function102496: ; 102496
-	ld hl, wcd4e
-	dec [hl]
-	ret nz
-	ld a, 0
-	ld [wcd4a], a
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 1024a8
-
-Function1024a8: ; 1024a8
-	callba Function1009f3
-	ret c
-
-Function1024af: ; 1024af
-	call GetJoypad
-	ld a, [wcd4a]
-	ld hl, Jumptable_1024ba
-	rst JumpTable
-	ret
-; 1024ba
-
-Jumptable_1024ba: ; 1024ba
-	dw Function1024c0
-	dw Function1024cb
-	dw Function1024de
-; 1024c0
-
-Function1024c0: ; 1024c0
-	ld hl, wcd4e
-	inc [hl]
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-
-Function1024cb: ; 1024cb
-	ld hl, wcd4e
-	dec [hl]
-	ret nz
-	ld a, [wcd4f]
-	inc a
-	ld [wcd4e], a
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-
-Function1024de: ; 1024de
-	ld hl, wcd4e
-	dec [hl]
-	jr z, .asm_1024e9
-	ld a, [hJoyPressed]
-	and A_BUTTON | B_BUTTON
-	ret z
-
-.asm_1024e9
-	ld a, 0
-	ld [wcd4a], a
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 1024f6
-
-Function1024f6: ; 1024f6
-	call PlaceHollowCursor
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, [wcd4c]
-	call Function1028e8
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 10250c
-
-Function10250c: ; 10250c
-	call Function1028fc
-	ret nc
-	ld a, [wcd51]
-	cp $0f
-	jr z, .asm_10254b
-	and a
-	jr z, .asm_102572
-	cp $aa
-	jr z, .asm_102572
-	cp $07
-	jr nc, .asm_102572
-	ld [wcd4d], a
-	dec a
-	ld [wd003], a
-	ld a, [wcd4c]
-	dec a
-	ld [wd002], a
-	call Function102b9c
-	call Function102bdc
-	jr c, .asm_10256d
-	callba Functionfb5dd
-	jr c, .asm_102568
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, $0e
-	ld [wcd49], a
-	ret
-
-.asm_10254b
-	call Function103021
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, 0
-	ld [wcd4a], a
-	ld a, $1e
-	ld [wcd4e], a
-	ld a, $1e
-	ld [wcd4f], a
-	ld a, $29
-	ld [wcd49], a
-	ret
-
-.asm_102568
-	call Function102ff5
-	jr .asm_102577
-
-.asm_10256d
-	call Function102f85
-	jr .asm_102577
-
-.asm_102572
-	call Function102fce
-	jr .asm_102577
-
-.asm_102577
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, 0
-	ld [wcd4a], a
-	ld a, $1e
-	ld [wcd4e], a
-	ld a, $3c
-	ld [wcd4f], a
-	ld a, $09
-	ld [wcd49], a
-	ret
-; 102591
-
-Function102591: ; 102591
-	call Function102ee7
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, 0
-	ld [wcd4a], a
-	ld a, $1e
-	ld [wcd4e], a
-	ld a, $3c
-	ld [wcd4f], a
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 1025b0
-
-Function1025b0: ; 1025b0
-	ld a, $09
-	call Function1028e8
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 1025bd
-
-Function1025bd: ; 1025bd
-	call Function1028fc
-	ret nc
-	ld a, $04
-	ld [wcd49], a
-	ret
-; 1025c7
-
-Function1025c7: ; 1025c7
-	call Function102f6d
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, $0f
-	call Function1028e8
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 1025dc
-
-Function1025dc: ; 1025dc
-	call Function1028fc
-	ret nc
-	ld a, [wcd49]
-	set 7, a
-	ld [wcd49], a
-	ret
-; 1025e9
-
-Function1025e9: ; 1025e9
-	nop
-	ld hl, wcd4b
-	set 6, [hl]
-	call Function102b4e
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 1025ff
-
-Function1025ff: ; 1025ff
-	ld hl, wcd4b
-	set 2, [hl]
-	callba Function1009f3
-	ret c
-	callba MobileMenuJoypad
-	ld a, [wMenuJoypadFilter]
-	and c
-	ret z
-	bit A_BUTTON_F, c
-	jr nz, .a_button
-	bit D_UP_F, c
-	jr nz, .d_up
-	bit D_DOWN_F, c
-	jr nz, .d_down
-	ret
-
-.a_button
-	ld hl, wcd4b
-	set 3, [hl]
-	ld a, $27 ; Function1028d3
-	ld [wcd49], a
-	ret
-
-.d_up
-	ld a, [wMenuCursorY]
-	ld b, a
-	ld a, [OTPartyCount]
-	cp b
-	ret nz
-	call HideCursor
-	ld a, [PartyCount]
-	ld [wMenuCursorY], a
-	ld a, $1d ; Function102652
-	ld [wcd49], a
-	ret
-
-.d_down
-	ld a, [wMenuCursorY]
-	cp $01
-	ret nz
-	ld a, $23 ; Function1026b7
-	ld [wcd49], a
-	ret
-; 102652
-
-Function102652: ; 102652
-	nop
-	ld hl, wcd4b
-	set 6, [hl]
-	nop
-	call Function102b7b
-	nop
-	ld hl, wcd4b
-	set 1, [hl]
-	nop
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 10266b
-
-Function10266b: ; 10266b
-	ld hl, wcd4b
-	set 2, [hl]
-	callba Function1009f3
-	ret c
-	callba MobileMenuJoypad
-	ld a, [wMenuJoypadFilter]
-	and c
-	ret z
-	bit A_BUTTON_F, c
-	jr nz, .a_button
-	bit D_DOWN_F, c
-	jr nz, .d_down
-	bit D_UP_F, c
-	jr nz, .d_up
-	ret
-
-.a_button
-	ld hl, wcd4b
-	set 3, [hl]
-	ld a, $21 ; Function102738
-	ld [wcd49], a
-	ret
-
-.d_down
-	ld a, [wMenuCursorY]
-	dec a
-	ret nz
-	call HideCursor
-	ld a, $1f ; Function1025e9
-	ld [wcd49], a
-	ret
-
-.d_up
-	ld a, [wMenuCursorY]
-	ld b, a
-	ld a, [PartyCount]
-	cp b
-	ret nz
-	ld a, $23 ; Function1026b7
-	ld [wcd49], a
-	ret
-; 1026b7
-
-Function1026b7: ; 1026b7
-	ld hl, wcd4b
-	set 6, [hl]
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ld a, 0
-	ld [wcd4a], a
-
-Function1026c8: ; 1026c8
-	call GetJoypad
-	callba Function1009f3
-	ret c
-	ld a, [wcd4a]
-	ld hl, Jumptable_1026da
-	rst JumpTable
-	ret
-; 1026da
-
-Jumptable_1026da: ; 1026da
-	dw Function1026de
-	dw Function1026f3
-; 1026de
-
-Function1026de: ; 1026de
-	call HideCursor
-	hlcoord 9, 17
-	ld [hl], $ed
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	ld hl, wcd4b
-	set 1, [hl]
-	ret
-; 1026f3
-
-Function1026f3: ; 1026f3
-	ld a, [hJoyPressed]
-	bit A_BUTTON_F, a
-	jr nz, .asm_102723
-	bit D_UP_F, a
-	jr nz, .asm_102712
-	bit D_DOWN_F, a
-	jr nz, .asm_102702
-	ret
-
-.asm_102702
-	hlcoord 9, 17
-	ld [hl], " "
-	ld a, $01
-	ld [wMenuCursorY], a
-	ld a, $1d ; Function102652
-	ld [wcd49], a
-	ret
-
-.asm_102712
-	hlcoord 9, 17
-	ld [hl], " "
-	ld a, [OTPartyCount]
-	ld [wMenuCursorY], a
-	ld a, $1f ; Function1025e9
-	ld [wcd49], a
-	ret
-
-.asm_102723
-	hlcoord 9, 17
-	ld [hl], "▷"
-	ld hl, wcd4b
-	set 3, [hl]
-	ld hl, wcd4b
-	set 2, [hl]
-	ld a, $5 ; Function1025c7
-	ld [wcd49], a
-	ret
-; 102738
-
-Function102738: ; 102738
-	ld hl, wcd4b
-	set 6, [hl]
-	call PlaceHollowCursor
-	call Function1027eb
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ld a, 0
-	ld [wcd4a], a
-
-Function102754: ; 102754
-	call GetJoypad
-	callba Function1009f3
-	ret c
-	ld a, [wcd4a]
-	ld hl, Jumptable_102766
-	rst JumpTable
-	ret
-; 102766
-
-Jumptable_102766: ; 102766
-	dw Function102770
-	dw Function102775
-	dw Function10278c
-	dw Function1027a0
-	dw Function1027b7
-; 102770
-
-Function102770: ; 102770
-	ld a, $01
-	ld [wcd4a], a
-
-Function102775: ; 102775
-	hlcoord 1, 16
-	ld [hl], "▶"
-	hlcoord 11, 16
-	ld [hl], " "
-	ld hl, wcd4b
-	set 2, [hl]
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	ret
-; 10278c
-
-Function10278c: ; 10278c
-	ld a, [hJoyPressed]
-	bit A_BUTTON_F, a
-	jr nz, asm_1027c6
-	bit B_BUTTON_F, a
-	jr nz, asm_1027e2
-	bit D_RIGHT_F, a
-	jr nz, .asm_10279b
-	ret
-
-.asm_10279b
-	ld a, $03
-	ld [wcd4a], a
-Function1027a0: ; 1027a0
-	hlcoord 1, 16
-	ld [hl], " "
-	hlcoord 11, 16
-	ld [hl], "▶"
-	ld hl, wcd4b
-	set 2, [hl]
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	ret
-
-Function1027b7: ; 1027b7
-	ld a, [hJoyPressed]
-	bit A_BUTTON_F, a
-	jr nz, asm_1027d1
-	bit B_BUTTON_F, a
-	jr nz, asm_1027e2
-	bit D_LEFT_F, a
-	jr nz, Function102770
-	ret
-
-asm_1027c6:
-	ld hl, wcd4b
-	set 3, [hl]
-	ld a, $25 ; Function1028bf
-	ld [wcd49], a
-	ret
-
-asm_1027d1:
-	ld hl, wcd4b
-	set 3, [hl]
-	ld a, [wMenuCursorY]
-	ld [wcd4c], a
-	ld a, $7 ; Function1024f6
-	ld [wcd49], a
-	ret
-
-asm_1027e2:
-	call Function102db7
-	ld a, $1d ; Function102652
-	ld [wcd49], a
-	ret
-; 1027eb
-
-Function1027eb: ; 1027eb
-	hlcoord 0, 14
-	ld b, 2
-	ld c, 18
-	ld d, h
-	ld e, l
-	callba _LinkTextbox
-	ld de, .Stats_Trade
-	hlcoord 2, 16
-	call PlaceString
-	ret
-; 102804
-
-.Stats_Trade: ; 102804
-	db "STATS     TRADE@"
-; 102814
-
-Function102814: ; 102814
-	ld a, [wMenuCursorY]
-	ld [wcd52], a
-	ld a, [wcd4c]
-	dec a
-	ld [wd002], a
-	ld a, [wcd4d]
-	dec a
-	ld [wd003], a
-	call Function102ea8
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ld a, 0
-	ld [wcd4a], a
-	ld hl, wcd4b
-	set 1, [hl]
-
-Function10283c: ; 10283c
-	ld hl, wcd4b
-	set 2, [hl]
-	call Function1029c3
-	ret z
-	jr c, .asm_102852
-	ld a, $10 ; Function102862
-	ld [wcd49], a
-	ld hl, wcd4b
-	set 1, [hl]
-	ret
-
-.asm_102852
-	ld a, $14 ; Function1028ab
-	ld [wcd49], a
-	ld hl, wcd4b
-	set 3, [hl]
-	ld hl, wcd4b
-	set 1, [hl]
-	ret
-; 102862
-
-Function102862: ; 102862
-	ld a, $08
-	call Function1028e8
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 10286f
-
-Function10286f: ; 10286f
-	call Function1028fc
-	ret nc
-	ld a, [wcd52]
-	ld [wMenuCursorY], a
-	ld a, [wcd51]
-	cp $08
-	jr nz, .asm_102886
-	ld a, $15 ; Function1023b5
-	ld [wcd49], a
-	ret
-
-.asm_102886
-	call Function102ee7
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, $1e
-	ld [wcd4e], a
-	ld a, $3c
-	ld [wcd4f], a
-	ld a, 0
-	ld [wcd4a], a
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ret
-; 1028a5
-
-Function1028a5: ; 1028a5
-	ld a, $4 ; Function1023a1
-	ld [wcd49], a
-	ret
-; 1028ab
-
-Function1028ab: ; 1028ab
-	ld a, [wcd52]
-	ld [wMenuCursorY], a
-	call Function102f15
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, $c ; Function1025b0
-	ld [wcd49], a
-	ret
-; 1028bf
-
-Function1028bf: ; 1028bf
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-
-Function1028c6: ; 1028c6
-	xor a
-	ld [MonType], a
-	call Function102bac
-	ld a, $1d ; Function102652
-	ld [wcd49], a
-	ret
-; 1028d3
-
-Function1028d3: ; 1028d3
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-
-Function1028da: ; 1028da
-	ld a, OTPARTYMON
-	ld [MonType], a
-	call Function102bac
-	ld a, $1f ; Function1025e9
-	ld [wcd49], a
-	ret
-; 1028e8
-
-Function1028e8: ; 1028e8
-	ld hl, wcd4b
-	res 6, [hl]
-	ld [wcd50], a
-	callba StartMobileInactivityTimer
-	ld a, 0
-	ld [wcd4a], a
-	ret
-; 1028fc
-
-Function1028fc: ; 1028fc
-	call GetJoypad
-	callba Function1009f3
-	jr nc, .asm_102909
-	and a
-	ret
-
-.asm_102909
-	ld a, [wcd4a]
-	ld hl, Jumptable_102917
-	rst JumpTable
-	ret nc
-	ld a, 0
-	ld [wcd4a], a
-	ret
-; 102917
-
-Jumptable_102917: ; 102917
-	dw Function102933
-	dw Function10294f
-	dw Function10295d
-	dw Function10296e
-	dw Function102996
-; 102921
-
-Function102921: ; 102921
-	ld a, [wcd4a]
-	ld hl, Jumptable_10292f
-	rst JumpTable
-	ret nc
-	ld a, 0
-	ld [wcd4a], a
-	ret
-; 10292f
-
-Jumptable_10292f: ; 10292f
-	dw Function10295d
-	dw Function102984
-; 102933
-
-Function102933: ; 102933
-	ld hl, MenuDataHeader_1029bb
-	call LoadMenuDataHeader
-	call Function102e07
-	ld a, $32
-	ld [TextDelayFrames], a
-	ld hl, wcd4b
-	set 1, [hl]
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	and a
-	ret
-; 10294f
-
-Function10294f: ; 10294f
-	ld a, [TextDelayFrames]
-	and a
-	ret nz
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	and a
-	ret
-; 10295d
-
-Function10295d: ; 10295d
-	call Function10299e
-	ld a, 0
-	ld [wcd27], a
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	and a
-	ret
-; 10296e
-
-Function10296e: ; 10296e
-	callba Function100382
-	and a
-	ld a, [wcd27]
-	bit 7, a
-	ret z
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	and a
-	ret
-; 102984
-
-Function102984: ; 102984
-	callba Function100382
-	and a
-	ld a, [wcd27]
-	bit 7, a
-	ret z
-	call Function1029af
-	scf
-	ret
-; 102996
-
-Function102996: ; 102996
-	call Function1029af
-	call ExitMenu
-	scf
-	ret
-; 10299e
-
-Function10299e: ; 10299e
-	ld a, $01
-	ld [wccb4], a
-	ld a, [wcd50]
-	ld [wccb5], a
-	ld a, $aa
-	ld [wcd51], a
-	ret
-; 1029af
-
-Function1029af: ; 1029af
-	ld hl, wcd4b
-	res 7, [hl]
-	ld a, [wcc61]
-	ld [wcd51], a
-	ret
-; 1029bb
-
-MenuDataHeader_1029bb: ; 1029bb
-	db $40 ; flags
-	db 10, 3 ; start coords
-	db 12, 15 ; end coords
-	dw NULL
-	db 1 ; default option
-; 1029c3
-
-Function1029c3: ; 1029c3
-	ld a, [wcd4a]
-	ld hl, Jumptable_1029cb
-	rst JumpTable
-	ret
-; 1029cb
-
-Jumptable_1029cb: ; 1029cb
-	dw Function1029cf
-	dw Function1029fe
-; 1029cf
-
-Function1029cf: ; 1029cf
-	call LoadStandardMenuDataHeader
-	hlcoord 10, 7
-	ld b, 3
-	ld c, 8
-	ld d, h
-	ld e, l
-	callba _LinkTextbox
-	ld de, String_102a26
-	hlcoord 12, 8
-	call PlaceString
-	ld hl, wcd4b
-	set 1, [hl]
-	ld de, MenuData3_102a33
-	call SetMenuAttributes
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	xor a
-	ret
-; 1029fe
-
-Function1029fe: ; 1029fe
-	callba Function1009f3
-	ret c
-	callba MobileMenuJoypad
-	ld a, c
-	ld hl, wMenuJoypadFilter
-	and [hl]
-	ret z
-	push af
-	call ExitMenu
-	pop af
-	ld a, [wMenuCursorY]
-	cp $01
-	jr nz, .asm_102a21
-	ld a, $01
-	and a
-	ret
-
-.asm_102a21
-	ld a, $01
-	and a
-	scf
-	ret
-; 102a26
-
-String_102a26: ; 102a26
-	db   "TRADE"
-	next "CANCEL"
-	db   "@"
-; 102a33
-
-MenuData3_102a33:
-	db 8, 11
-	db 2,  1
-	db $80, $00
-	dn 2, 0
-	db A_BUTTON
-
-Function102a3b: ; 102a3b
-	ld a, [wcd30]
-	ld [wc74e], a
-	ld hl, PlayerName
-	ld de, wPlayerTrademonSenderName
-	ld bc, NAME_LENGTH
-	call CopyBytes
-	ld a, [wcd4c]
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, PartySpecies
-	add hl, bc
-	ld a, [hl]
-	ld [wPlayerTrademonSpecies], a
-	ld a, [wcd4c]
-	dec a
-	ld hl, PartyMonOT
-	call SkipNames
-	ld de, wPlayerTrademonOTName
-	ld bc, NAME_LENGTH
-	call CopyBytes
-	ld a, [wcd4c]
-	dec a
-	ld hl, PartyMon1ID
-	call GetPartyLocation
-	ld a, [hli]
-	ld [wPlayerTrademonID], a
-	ld a, [hl]
-	ld [wPlayerTrademonID + 1], a
-	ld a, [wcd4c]
-	dec a
-	ld hl, PartyMon1DVs
-	call GetPartyLocation
-	ld a, [hli]
-	ld [wPlayerTrademonDVs], a
-	ld a, [hl]
-	ld [wPlayerTrademonDVs + 1], a
-	ld a, [wcd4c]
-	dec a
-	ld hl, PartyMon1Species
-	call GetPartyLocation
-	ld b, h
-	ld c, l
-	callba GetCaughtGender
-	ld a, c
-	ld [wPlayerTrademonCaughtData], a
-	ld hl, OTPlayerName
-	ld de, wOTTrademonSenderName
-	ld bc, NAME_LENGTH
-	call CopyBytes
-
-	ld a, [wcd4d]
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, OTPartySpecies
-	add hl, bc
-	ld a, [hl]
-	ld [wOTTrademonSpecies], a
-	ld a, [wcd4d]
-	dec a
-	ld hl, OTPartyMonOT
-	call SkipNames
-	ld de, wOTTrademonOTName
-	ld bc, NAME_LENGTH
-	call CopyBytes
-	ld a, [wcd4d]
-	dec a
-	ld hl, OTPartyMon1ID
-	call GetPartyLocation
-	ld a, [hli]
-	ld [wOTTrademonID], a
-	ld a, [hl]
-	ld [wOTTrademonID + 1], a
-	ld a, [wcd4d]
-	dec a
-	ld hl, OTPartyMon1DVs
-	call GetPartyLocation
-	ld a, [hli]
-	ld [wOTTrademonDVs], a
-	ld a, [hl]
-	ld [wOTTrademonDVs + 1], a
-	ld a, [wcd4d]
-	dec a
-	ld hl, OTPartyMon1Species
-	call GetPartyLocation
-	ld b, h
-	ld c, l
-	callba GetCaughtGender
-	ld a, c
-	ld [wOTTrademonCaughtData], a
-	ret
-; 102b12
-
-Function102b12: ; 102b12
-	ld c, 100
-	call DelayFrames
-	call Function102d9a
-	call LoadFontsBattleExtra
-	ld a, [wcd2f]
-	and a
-	jr nz, .asm_102b2b
-	callba Function108026
-	jr .asm_102b31
-
-.asm_102b2b
-	callba Function10802a
-
-.asm_102b31
-	ret
-; 102b32
-
-Function102b32: ; 102b32
-	ld a, [wcd4c]
-	dec a
-	ld [CurPartyMon], a
-	ld a, $01
-	ld [wForceEvolution], a
-	callba EvolvePokemon
-	call Function102d9a
-	call Function102dd3
-	call Function102dec
-	ret
-; 102b4e
-
-Function102b4e: ; 102b4e
-	ld a, OTPARTYMON
-	ld [MonType], a
-	ld a, [wMenuCursorY]
-	push af
-	ld de, Unknown_102b73
-	call SetMenuAttributes
-	pop af
-	ld [wMenuCursorY], a
-	ld a, [OTPartyCount]
-	ld [w2DMenuNumRows], a
-	ret
-; 102b68
-
-Function102b68: ; 102b68 ; unreferenced
-	xor a
-	ld hl, wWindowStackPointer
-	ld bc, $10
-	call ByteFill
-	ret
-; 102b73
-
-Unknown_102b73:
-	db 9, 6
-	db 255, 1
-	db $a0, $00
-	dn 1, 0
-	db D_UP | D_DOWN | A_BUTTON
-
-Function102b7b: ; 102b7b
-	xor a
-	ld [MonType], a
-	ld a, [wMenuCursorY]
-	push af
-	ld de, Unknown_102b94
-	call SetMenuAttributes
-	pop af
-	ld [wMenuCursorY], a
-	ld a, [PartyCount]
-	ld [w2DMenuNumRows], a
-	ret
-; 102b94
-
-Unknown_102b94:
-	db 1, 6
-	db 255, 1
-	db $a0, $00
-	dn 1, 0
-	db D_UP | D_DOWN | A_BUTTON
-
-Function102b9c: ; 102b9c
-	ld a, [wcd4d]
-	dec a
-	hlcoord 6, 9
-	ld bc, $14
-	call AddNTimes
-	ld [hl], $ec
-	ret
-; 102bac
-
-Function102bac: ; 102bac
-	ld a, [wMenuCursorY]
-	dec a
-	ld [CurPartyMon], a
-	call LowVolume
-	call ClearSprites
-	callba _MobileStatsScreenInit
-	ld a, [CurPartyMon]
-	inc a
-	ld [wMenuCursorY], a
-	call Function102d9a
-	call ClearPalettes
-	call DelayFrame
-	call MaxVolume
-	call Function102dd3
-	call Function102dec
-	call Function102db7
-	ret
-; 102bdc
-
-Function102bdc: ; 102bdc
-	ld a, [wcd4d]
-	dec a
-	ld hl, OTPartyMon1Species
-	call GetPartyLocation
-	push hl
-	ld a, [wcd4d]
-	ld c, a
-	ld b, 0
-	ld hl, OTPartyCount
-	add hl, bc
-	ld a, [hl]
-	pop hl
-	cp EGG
-	jr z, .asm_102bfa
-	cp [hl]
-	jr nz, .asm_102c05
-
-.asm_102bfa
-	ld bc, MON_LEVEL
-	add hl, bc
-	ld a, [hl]
-	cp MAX_LEVEL + 1
-	jr nc, .asm_102c05
-	and a
-	ret
-
-.asm_102c05
-	scf
-	ret
-; 102c07
-
-Function102c07: ; 102c07
-	call Function102c14
-	call Function102c3b
-	call Function102c21
-	call Function102c2e
-	ret
-; 102c14
-
-Function102c14: ; 102c14
-	ld hl, PartySpecies
-	ld de, OTPartySpecies
-	ld bc, 1
-	call Function102c71
-	ret
-; 102c21
-
-Function102c21: ; 102c21
-	ld hl, PartyMonNicknames
-	ld de, OTPartyMonNicknames
-	ld bc, 11
-	call Function102c71
-	ret
-; 102c2e
-
-Function102c2e: ; 102c2e
-	ld hl, PartyMonOT
-	ld de, OTPartyMonOT
-	ld bc, 11
-	call Function102c71
-	ret
-; 102c3b
-
-Function102c3b: ; 102c3b
-	ld hl, PartyMon1
-	ld de, OTPartyMon1
-	ld bc, $30
-	call Function102c71
-	ret
-; 102c48
-
-Function102c48: ; 102c48
-	callba Function10165a
-	ld a, 0
-	call GetSRAMBank
-	ld hl, $a600
-	ld de, wc608
-	ld bc, $2f
-	call Function102c71
-	call CloseSRAM
-	ld hl, wc608
-	ld de, w5_da00
-	ld bc, $1e0
-	ld a, $05
-	call FarCopyWRAM
-	ret
-; 102c71
-
-Function102c71: ; 102c71
-	ld a, [wcd4c]
-	dec a
-	call AddNTimes
-	push hl
-	ld h, d
-	ld l, e
-	ld a, [wcd4d]
-	dec a
-	call AddNTimes
-	pop de
-	call SwapBytes
-	ret
-; 102c87
-
-Function102c87: ; 102c87
-	ld a, [wJumptableIndex]
-	push af
-	ld a, [wcf64]
-	push af
-	ld a, [wcd4c]
-	ld [wJumptableIndex], a
-	ld a, [PartyCount]
-	ld [wcf64], a
-	ld a, 0
-	ld hl, $a600
-	ld de, wc608
-	ld bc, $11a
-	call Function102d3e
-	call Function102cee
-	ld a, 0
-	ld hl, wc608
-	ld de, $a600
-	ld bc, $11a
-	call Function102d3e
-	ld a, [wcd4d]
-	ld [wJumptableIndex], a
-	ld a, [OTPartyCount]
-	ld [wcf64], a
-	ld a, $05
-	ld hl, w5_da00
-	ld de, wc608
-	ld bc, $11a
-	call FarCopyWRAM
-	call Function102cee
-	ld a, $05
-	ld hl, wc608
-	ld de, w5_da00
-	ld bc, $11a
-	call FarCopyWRAM
-	pop af
-	ld [wcf64], a
-	pop af
-	ld [wJumptableIndex], a
-	ret
-; 102cee
-
-Function102cee: ; 102cee
-	ld a, [wJumptableIndex]
-	dec a
-	call Function102d34
-	ld de, wd002
-	ld bc, $2f
-	call CopyBytes
-	ld a, [wJumptableIndex]
-	ld c, a
-	ld a, $06
-	sub c
-	ret z
-	ld bc, $2f
-	ld hl, 0
-	call AddNTimes
-	push hl
-	ld a, [wJumptableIndex]
-	dec a
-	call Function102d34
-	ld d, h
-	ld e, l
-	ld hl, $2f
-	add hl, de
-	pop bc
-	call CopyBytes
-	ld a, [wcf64]
-	dec a
-	call Function102d34
-	ld d, h
-	ld e, l
-	ld hl, wd002
-	ld bc, $2f
-	call CopyBytes
-	ret
-; 102d34
-
-Function102d34: ; 102d34
-	ld hl, wc608
-	ld bc, $2f
-	call AddNTimes
-	ret
-; 102d3e
-
-Function102d3e: ; 102d3e
-	call GetSRAMBank
-	call CopyBytes
-	call CloseSRAM
-	ret
-; 102d48
-
-Function102d48: ; 102d48
-	ld a, [wcd4c]
-	ld e, a
-	ld d, 0
-	ld hl, PartyCount
-	add hl, de
-	ld a, [hl]
-	ld [wd265], a
-	cp EGG
-	jr z, .asm_102d6d
-	dec a
-	call SetSeenAndCaughtMon
-	ld a, [wcd4c]
-	dec a
-	ld bc, PARTYMON_STRUCT_LENGTH
-	ld hl, PartyMon1Happiness
-	call AddNTimes
-	ld [hl], BASE_HAPPINESS
-
-.asm_102d6d
-	ld a, [wd265]
-	cp UNOWN
-	jr nz, .asm_102d98
-	ld a, [wcd4c]
-	dec a
-	ld bc, PARTYMON_STRUCT_LENGTH
-	ld hl, PartyMon1DVs
-	call AddNTimes
-	predef GetUnownLetter
-	callba UpdateUnownDex
-	ld a, [wFirstUnownSeen]
-	and a
-	jr nz, .asm_102d98
-	ld a, [UnownLetter]
-	ld [wFirstUnownSeen], a
-
-.asm_102d98
-	and a
-	ret
-; 102d9a
-
-Function102d9a: ; 102d9a
-	ld a, " "
-	hlcoord 0, 0
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	ld a, $07
-	hlcoord 0, 0, AttrMap
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	callba HDMATransferAttrMapAndTileMapToWRAMBank3
-	ret
-; 102db7
-
-Function102db7: ; 102db7
-	call Function102e4f
-	call Function102e3e
-	ld hl, wcd4b
-	set 1, [hl]
-	ret
-; 102dc3
-
-Function102dc3: ; 102dc3
-	hlcoord 0, 12
-	ld b,  4
-	ld c, 18
-	ld d, h
-	ld e, l
-	callba _LinkTextbox
-	ret
-; 102dd3
-
-Function102dd3: ; 102dd3
-	call DisableLCD
-	ld de, GFX_1032a2
-	ld hl, VTiles0
-	lb bc, BANK(GFX_1032a2), 4
-	call Get2bpp
-	callba __LoadTradeScreenBorder
-	call EnableLCD
-	ret
-; 102dec
-
-Function102dec: ; 102dec
-	ld hl, Palettes_1032e2
-	ld de, UnknOBPals
-	ld bc, 4 palettes
-	ld a, $05
-	call FarCopyWRAM
-	callba Function49742
-	call SetPalettes
-	call DelayFrame
-	ret
-; 102e07
-
-Function102e07: ; 102e07
-	hlcoord 3, 10
-	ld b,  1
-	ld c, 11
-	ld a, [wBattleMode]
-	and a
-	jr z, .link_battle
-	call TextBox
-	jr .okay
-
-.link_battle
-; this is idiotic
-	hlcoord 3, 10
-	ld b,  1
-	ld c, 11
-	ld d, h
-	ld e, l
-	callba _LinkTextbox
-
-.okay
-	ld de, .waiting
-	hlcoord 4, 11
-	call PlaceString
-	ret
-; 102e32
-
-.waiting ; 102e32
-	db "Waiting...!@"
-; 102e3e
-
-Function102e3e: ; 102e3e
-	ld de, .CANCEL
-	hlcoord 10, 17
-	call PlaceString
-	ret
-; 102e48
-
-.CANCEL: ; 102e48
-	db "CANCEL@"
-; 102e4f
-
-Function102e4f: ; 102e4f
-	callba Function16d42e
-	callba _InitMG_Mobile_LinkTradePalMap
-	ld de, PlayerName
-	hlcoord 4, 0
-	call PlaceString
-	ld a, $14
-	ld [bc], a
-	ld de, OTPlayerName
-	hlcoord 4, 8
-	call PlaceString
-	ld a, $14
-	ld [bc], a
-	hlcoord 7, 1
-	ld de, PartySpecies
-	call .PlaceSpeciesNames
-	hlcoord 7, 9
-	ld de, OTPartySpecies
-	call .PlaceSpeciesNames
-	ret
-; 102e86
-
-.PlaceSpeciesNames: ; 102e86
-	ld c, 0
-.count_loop
-	ld a, [de]
-	cp $ff
-	ret z
-	ld [wd265], a
-	push bc
-	push hl
-	push de
-	push hl
-	ld a, c
-	ld [hDividend], a
-	call GetPokemonName
-	pop hl
-	call PlaceString
-	pop de
-	inc de
-	pop hl
-	ld bc, SCREEN_WIDTH
-	add hl, bc
-	pop bc
-	inc c
-	jr .count_loop
-; 102ea8
-
-Function102ea8: ; 102ea8
-	call Function102dc3
-	ld a, [wcd4c]
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, PartySpecies
-	add hl, bc
-	ld a, [hl]
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, StringBuffer1
-	ld de, StringBuffer2
-	ld bc, 11
-	call CopyBytes
-	ld a, [wcd4d]
-	dec a
-	ld c, a
-	ld b, 0
-	ld hl, OTPartySpecies
-	add hl, bc
-	ld a, [hl]
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, UnknownText_0x102ee2
-	call PrintTextBoxText
-	ret
-; 102ee2
-
-UnknownText_0x102ee2: ; 102ee2
-	text_jump UnknownText_0x1bd286
-	db "@"
-
-Function102ee7: ; 102ee7
-	call Function102dc3
-	ld de, String_102ef4
-	hlcoord 1, 14
-	call PlaceString
-	ret
-; 102ef4
-
-String_102ef4: ; 102ef4
-	db   "Too bad! The trade"
-	next "was canceled!"
-	db   "@"
-; 102f15
-
-Function102f15: ; 102f15
-	call Function102dc3
-	ld de, .TooBadTheTradeWasCanceled
-	hlcoord 1, 14
-	call PlaceString
-	ret
-; 102f22
-
-.TooBadTheTradeWasCanceled: ; 102f22
-	db "こうかんを キャンセルしました@"
-; 102f32
-
-Function102f32: ; 102f32
-	call Function102dc3
-	ld de, .TradeCompleted
-	hlcoord 1, 14
-	call PlaceString
-	ret
-; 102f3f
-
-.TradeCompleted: ; 102f3f
-	db "Trade completed!@"
-; 102f50
-
-Function102f50: ; 102f50
-	call Function102dc3
-	ld de, .PleaseWait
-	hlcoord 1, 14
-	call PlaceString
-	ret
-; 102f5d
-
-.PleaseWait: ; 102f5d
-	db "しょうしょう おまち ください@"
-; 102f6d
-
-Function102f6d: ; 102f6d
-	call Function102dc3
-	ld de, .Finished
-	hlcoord 1, 14
-	call PlaceString
-	ret
-; 102f7a
-
-.Finished: ; 102f7a
-	db "しゅうりょう します@"
-; 102f85
-
-Function102f85: ; 102f85
-	ld a, [wd003]
-	ld c, a
-	ld b, 0
-	ld hl, OTPartySpecies
-	add hl, bc
-	ld a, [hl]
-	ld [wd265], a
-	call GetPokemonName
-	call Function102dc3
-	ld de, String_102fb2
-	hlcoord 1, 14
-	call PlaceString
-	ld de, StringBuffer1
-	hlcoord 13, 14
-	call PlaceString
-	ld de, String_102fcc
-	call PlaceString
-	ret
-; 102fb2
-
-String_102fb2: ; 102fb2
-	db   "あいてがわ<PKMN>えらんだ "
-	next "いじょう<PKMN>あるようです!!"
-	db   "@"
-; 102fcc
-
-String_102fcc: ; 102fcc
-	db "に@"
-; 102fce
-
-Function102fce: ; 102fce
-	call Function102dc3
-	ld de, String_102fdb
-	hlcoord 1, 14
-	call PlaceString
-	ret
-; 102fdb
-
-String_102fdb: ; 102fdb
-	db   "あいてがわ%せんたくに"
-	next "いじょう<PKMN>あるようです!!"
-	done
-; 102ff5
-
-Function102ff5: ; 102ff5
-	call Function102dc3
-	ld de, String_103002
-	hlcoord 1, 14
-	call PlaceString
-	ret
-; 103002
-
-String_103002: ; 103002
-	db   "その#を こうかんすると"
-	next "せんとう できなく なっちゃうよ!"
-	db   "@"
-; 103021
-
-Function103021: ; 103021
-	call Function102dc3
-	ld de, String_10302e
-	hlcoord 1, 14
-	call PlaceString
-	ret
-; 10302e
-
-String_10302e: ; 10302e
-	db   "あいてが ちゅうしを えらんだので"
-	next "こうかんを ちゅうし します"
-	db   "@"
-; 10304f
-
-Function10304f: ; 10304f
-	xor a
-	ld [AttrMapEnd], a
-	ld [wcf42], a
-	ld [wcf44], a
-	ld [wcf45], a
-	ret
-; 10305d
-
-Function10305d: ; 10305d
-	nop
-	ld a, [AttrMapEnd]
-	and a
-	ret z
-	call Function10307f
-	ret c
-	call Function103094
-	call Function10306e
-	ret
-; 10306e
-
-Function10306e: ; 10306e
-	ld a, $01
-	ld [hOAMUpdate], a
-	call ClearSprites
-	ld de, Sprites
-	call Function1030cd
-	xor a
-	ld [hOAMUpdate], a
-	ret
-; 10307f
-
-Function10307f: ; 10307f
-	ld c, $02
-	ld hl, wcd4b
-	bit 7, [hl]
-	jr z, .asm_10308a
-	ld c, $01
-
-.asm_10308a
-	ld hl, wcf45
-	inc [hl]
-	ld a, [hl]
-	cp c
-	ret c
-	xor a
-	ld [hl], a
-	ret
-; 103094
-
-Function103094: ; 103094
-	ld hl, wcd4b
-	bit 7, [hl]
-	jr nz, .asm_1030c0
-	ld a, [wcf42]
-	bit 7, a
-	jr nz, .asm_1030b2
-	ld a, [wcf44]
-	inc a
-	ld [wcf44], a
-	cp $2c
-	ret nz
-	ld hl, wcf42
-	set 7, [hl]
-	ret
-
-.asm_1030b2
-	ld a, [wcf44]
-	dec a
-	ld [wcf44], a
-	ret nz
-	ld hl, wcf42
-	res 7, [hl]
-	ret
-
-.asm_1030c0
-	ld hl, wcf44
-	ld a, [hl]
-	and a
-	jr z, .asm_1030ca
-	dec a
-	ld [hl], a
-	ret nz
-
-.asm_1030ca
-	ld [hl], $2c
-	ret
-; 1030cd
-
-Function1030cd: ; 1030cd
-	ld a, [wcf44]
-	ld l, a
-	ld h, 0
-	add hl, hl
-	add hl, hl
-	add hl, hl
-	ld bc, Unknown_103112
-	add hl, bc
-	ld b, $30
-	ld c, $08
-.asm_1030de
-	push hl
-	ld hl, wcd4b
-	bit 7, [hl]
-	pop hl
-	ld a, 0
-	jr z, .asm_1030eb
-	ld a, $05
-.asm_1030eb
-
-	add [hl]
-	inc hl
-	push hl
-
-	add a
-	add a
-
-	add Unknown_10327a % $100
-	ld l, a
-	ld a, Unknown_10327a / $100
-	adc 0
-	ld h, a
-
-	ld a, b
-	add [hl]
-	inc hl
-	ld [de], a
-	inc de
-	ld a, $0a
-	add [hl]
-	inc hl
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	pop hl
-	ld a, b
-	add $08
-	ld b, a
-	dec c
-	jr nz, .asm_1030de
-	ret
-; 103112
-
-Unknown_103112: ; 103112
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $01, $00, $00, $00, $00, $00, $00, $00
-	db $02, $01, $00, $00, $00, $00, $00, $00
-	db $03, $02, $01, $00, $00, $00, $00, $00
-	db $04, $03, $02, $01, $00, $00, $00, $00
-	db $04, $04, $03, $02, $01, $00, $00, $00
-	db $04, $04, $04, $03, $02, $01, $00, $00
-	db $04, $04, $04, $04, $03, $02, $01, $00
-	db $04, $04, $04, $04, $04, $03, $02, $01
-	db $04, $04, $04, $04, $04, $04, $03, $02
-	db $04, $04, $04, $04, $04, $04, $04, $03
-	db $04, $04, $04, $04, $04, $04, $04, $04
-	db $04, $04, $04, $04, $04, $04, $04, $04
-	db $04, $04, $04, $04, $04, $04, $04, $04
-	db $04, $04, $04, $04, $04, $04, $04, $04
-	db $04, $04, $04, $04, $04, $04, $04, $04
-	db $04, $04, $04, $04, $04, $04, $04, $04
-	db $04, $04, $04, $04, $04, $04, $04, $04
-	db $04, $04, $04, $04, $04, $04, $04, $04
-	db $03, $04, $04, $04, $04, $04, $04, $04
-	db $02, $03, $04, $04, $04, $04, $04, $04
-	db $01, $02, $03, $04, $04, $04, $04, $04
-	db $00, $01, $02, $03, $04, $04, $04, $04
-	db $00, $00, $01, $02, $03, $04, $04, $04
-	db $00, $00, $00, $01, $02, $03, $04, $04
-	db $00, $00, $00, $00, $01, $02, $03, $04
-	db $00, $00, $00, $00, $00, $01, $02, $03
-	db $00, $00, $00, $00, $00, $00, $01, $02
-	db $00, $00, $00, $00, $00, $00, $00, $01
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-	db $00, $00, $00, $00, $00, $00, $00, $00
-; 10327a
-
-Unknown_10327a: ; 10327a
-	db $00, $00, $00, $00
-	db $00, $00, $01, $00
-	db $00, $00, $02, $00
-	db $00, $00, $03, $00
-	db $00, $00, $01, $01
-	db $00, $00, $00, $00
-	db $00, $00, $01, $02
-	db $00, $00, $02, $02
-	db $00, $00, $03, $02
-	db $00, $00, $01, $03
-
-GFX_1032a2:
-INCBIN "gfx/unknown/1032a2.2bpp"
-
-Palettes_1032e2:
-	RGB  0,  0,  0
-	RGB 31, 31,  7
-	RGB 20, 31,  6
-	RGB 13, 20, 16
-
-	RGB  0,  0,  0
-	RGB  7, 11, 17
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB  0,  0,  0
-	RGB 31, 24,  4
-	RGB 25, 12,  0
-	RGB 31,  7,  4
-
-	RGB  0,  0,  0
-	RGB 25,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-; 103302
-
-Function103302: ; 103302
-	call Function103309
-	call Function103362
-	ret
-; 103309
-
-Function103309: ; 103309
-	xor a
-	ld [hBGMapMode], a
-	ld hl, Buffer1
-	ld bc, 10
-	xor a
-	call ByteFill
-	ld a, $04
-	call GetSRAMBank
-	ld a, [wdc41]
-	ld [$a60c], a
-	ld [Buffer1], a
-	call CloseSRAM
-	call Function1035c6
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	ld [wd1ef], a
-	ld a, [hli]
-	ld [wd1ec], a
-	ld a, [hli]
-	ld [wd1ed], a
-	ld h, d
-	ld l, e
-	call Function3eea
-	ld hl, wd1ec
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [hl]
-	ld [wd1ee], a
-	call Function1034be
-	call UpdateSprites
-	callba HDMATransferAttrMapAndTileMapToWRAMBank3
-	ld a, $01
-	ld [wd1f0], a
-	call Function10339a
-	ret
-; 103362
-
-Function103362: ; 103362
-.asm_103362
-	ld a, [wd1f0]
-	ld [wd1f1], a
-	call Function1033af
-	call Function10339a
-	call Function10342c
-	callba HDMATransferTileMapToWRAMBank3
-	ld a, [Buffer2]
-	bit 7, a
-	jr z, .asm_103362
-	ld hl, Buffer2
-	bit 6, [hl]
-	jr z, .asm_103398
-	ld a, $04
-	call GetSRAMBank
-	ld a, [Buffer1]
-	ld [$a60c], a
-	ld [wdc41], a
-	call CloseSRAM
-	xor a
-	ret
-
-.asm_103398
-	scf
-	ret
-; 10339a
-
-Function10339a: ; 10339a
-	ld a, [wd1f0]
-	ld [wd1f2], a
-	ld c, a
-	ld b, 0
-	ld hl, wd1ec
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	add hl, bc
-	ld a, [hl]
-	ld [wd1f3], a
-	ret
-; 1033af
-
-Function1033af: ; 1033af
-	call GetJoypad
-	ld a, [hJoyPressed]
-	bit D_LEFT_F, a
-	jr nz, .left
-	bit D_RIGHT_F, a
-	jr nz, .right
-	bit B_BUTTON_F, a
-	jr nz, .b
-	bit A_BUTTON_F, a
-	jr nz, .a
-	bit D_UP_F, a
-	jr nz, .up
-	bit D_DOWN_F, a
-	jr nz, .down
-	ret
-
-.up
-	ld a, [wd1f0]
-	dec a
-	ld [wd1f0], a
-	cp 1
-	ret nc
-	ld a, [wd1ee]
-	ld [wd1f0], a
-	ret
-
-.down
-	ld a, [wd1f0]
-	inc a
-	ld [wd1f0], a
-	ld c, a
-	ld a, [wd1ee]
-	cp c
-	ret nc
-	ld a, 1
-	ld [wd1f0], a
-	ret
-
-.b
-	call PlayClickSFX
-	ld hl, Buffer2
-	set 7, [hl]
-	ret
-
-.a
-	ld a, [wd1f3]
-	cp 3
-	jr nz, .a_return
-	ld de, SFX_TRANSACTION
-	call PlaySFX
-	ld hl, Buffer2
-	set 7, [hl]
-	ld hl, Buffer2
-	set 6, [hl]
-	ret
-
-.left
-.right
-.a_return
-	ld a, [wd1f3]
-	cp 3
-	ret z
-	ld de, SFX_PUSH_BUTTON
-	call PlaySFX
-	ld bc, 8
-	call Function10350f
-	ld a, [Buffer1]
-	xor e
-	ld [Buffer1], a
-	ret
-; 10342c
-
-Function10342c: ; 10342c
-	ld a, [wd1f0]
-	ld [wd1f2], a
-	call Function103490
-	call Function10343c
-	call Function1034a7
-	ret
-; 10343c
-
-Function10343c: ; 10343c
-	ld a, [wd1f3]
-	cp $02
-	jr nz, .asm_103452
-	ld bc, 1
-	call Function1034f7
-	ld c, $12
-	ld b, $01
-	call Function1034e0
-	jr .asm_10345f
-
-.asm_103452
-	ld bc, $ffed
-	call Function1034f7
-	ld c, $12
-	ld b, $02
-	call Function1034e0
-
-.asm_10345f
-	ld bc, 0
-	call Function10350f
-	ld bc, 1
-	call Function103487
-	ld bc, 8
-	call Function10350f
-	ld a, [Buffer1]
-	and e
-	ld bc, 2
-	jr z, .asm_10347d
-	ld bc, 4
-
-.asm_10347d
-	call Function10350f
-	ld bc, 11
-	call Function103487
-	ret
-; 103487
-
-Function103487: ; 103487
-	push de
-	call Function1034f7
-	pop de
-	call PlaceString
-	ret
-; 103490
-
-Function103490: ; 103490
-	hlcoord 0, 15
-	ld c, $14
-	ld b, $03
-	call Function1034e0
-	ld bc, 6
-	call Function10350f
-	hlcoord 1, 16
-	call PlaceString
-	ret
-; 1034a7
-
-Function1034a7: ; 1034a7
-	ld a, [wd1f1]
-	ld [wd1f2], a
-	ld bc, 10
-	call Function1034f7
-	ld [hl], $7f
-	ld bc, 10
-	call Function1034f1
-	ld [hl], $ed
-	ret
-; 1034be
-
-Function1034be: ; 1034be
-	ld a, $01
-	ld [wd1f2], a
-	ld hl, wd1ec
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [hli]
-.asm_1034ca
-	push af
-	ld a, [hli]
-	push hl
-	ld [wd1f3], a
-	call Function10343c
-	ld hl, wd1f2
-	inc [hl]
-	pop hl
-	pop af
-	dec a
-	jr nz, .asm_1034ca
-	call Function103490
-	ret
-; 1034e0
-
-Function1034e0: ; 1034e0
-	push bc
-	push hl
-	call ClearBox
-	pop hl
-	ld bc, AttrMap - TileMap
-	add hl, bc
-	pop bc
-	ld a, $06
-	call FillBoxWithByte
-	ret
-; 1034f1
-
-Function1034f1: ; 1034f1
-	ld a, [wd1f0]
-	ld [wd1f2], a
-
-Function1034f7: ; 10134f7
-	hlcoord 0, 0
-	add hl, bc
-	ld a, [wd1ef]
-	ld bc, SCREEN_WIDTH
-	call AddNTimes
-	ld a, [wd1f2]
-	dec a
-	ld bc, 40
-	call AddNTimes
-	ret
-; 10350f
-
-Function10350f: ; 10350f
-	ld a, [wd1f3]
-	push bc
-	ld hl, Unknown_103522
-	ld bc, 9
-	call AddNTimes
-	pop bc
-	add hl, bc
-	ld a, [hli]
-	ld d, [hl]
-	ld e, a
-	ret
-; 103522
-
-Unknown_103522: ; 103522
-	dw String_103546
-	dw String_103598
-	dw String_1035a0
-	dw String_10355f
-	db $01
-	dw String_10354f
-	dw String_1035a8
-	dw String_1035b1
-	dw String_103571
-	db $02
-	dw String_103557
-	dw String_1035ba
-	dw String_1035bd
-	dw String_103585
-	db $04
-	dw String_103545
-	dw String_1035c1
-	dw String_1035c1
-	dw String_103545
-
-String_103545: db "@"
-String_103546: db "せんとう アニメ@"
-String_10354f: db "でんわばんごう@"
-String_103557: db "めいしこうかん@"
-String_10355f: db "でんわを かけるひとが きめられる@"
-String_103571: db "でんわばんごうの にゅうりょくのしかた@"
-String_103585: db "あたらしいめいしが あれば こうかん@"
-String_103598: db "とばして みる@"
-String_1035a0: db "じっくり みる@"
-String_1035a8: db "めいしからえらぶ@"
-String_1035b1: db "すうじで いれる@"
-String_1035ba: db "する@"
-String_1035bd: db "しない@"
-String_1035c1: db "けってい@"
-; 1035c6
-
-Function1035c6: ; 1035c6
-	callba Function10138b
-	ld b, 0
-	ld hl, Unknown_1035d7
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ret
-; 1035d7
-
-Unknown_1035d7: ; 1035d7
-	dw Unknown_1035e7
-	dw Unknown_1035f3
-	dw Unknown_103608
-	dw Unknown_103608
-	dw Unknown_1035fe
-	dw AskMobileOrCable
-	dw AskMobileOrCable
-	dw AskMobileOrCable
-
-Unknown_1035e7: ; 1035e7
-	dwcoord 0, 6
-	db $12, $07, $07
-	dw .this
-.this
-	db 4, 2, 1, 0, 3
-
-Unknown_1035f3: ; 1035f3
-	dwcoord 0, 7
-	db $12, $06, $09
-	dw .this
-.this
-	db 3, 2, 1, 3
-
-Unknown_1035fe: ; 1035fe
-	dwcoord 0, 9
-	db $12, $04, $0b
-	dw .this
-.this
-	db 2, 0, 3
-
-Unknown_103608: ; 103608
-	dwcoord 0, 9
-	db $12, $04, $0b
-	dw .this
-.this
-	db 2, 2, 3
-; 103612
-
-AskMobileOrCable: ; 103612
-	ld hl, MenuDataHeader_103640
-	call LoadMenuDataHeader
-	ld a, [wMobileOrCable_LastSelection]
-	and $0f
-	jr z, .skip_load
-	ld [wMenuCursorBuffer], a
-
-.skip_load
-	call VerticalMenu
-	call CloseWindow
-	jr c, .pressed_b
-	ld a, [wMenuCursorY]
-	ld [ScriptVar], a
-	ld c, a
-	ld a, [wMobileOrCable_LastSelection]
-	and $f0
-	or c
-	ld [wMobileOrCable_LastSelection], a
-	ret
-
-.pressed_b
-	xor a
-	ld [ScriptVar], a
-	ret
-; 103640
-
-MenuDataHeader_103640: ; 103640
-	db $40 ; flags
-	db  6, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_103648
-	db 1 ; default option
-
-MenuData2_103648: ; 103648
-	db $80 ; flags
-	db 2
-	db "モバイル@"
-	db "ケーブル@"
-; 103654
-
-Function103654: ; 103654
-	callba Mobile_AlwaysReturnNotCarry
-	bit 7, c
-	jr nz, .asm_103666
-	ld hl, wcd2a
-	res 5, [hl]
-	ld c, $02
-	ret
-
-.asm_103666
-	ld hl, wcd2a
-	set 5, [hl]
-	ld c, $01
-	ret
-; 10366e
-
-Mobile_SelectThreeMons: ; 10366e
-	callba Mobile_AlwaysReturnNotCarry
-	bit 7, c
-	jr z, .asm_10369b
-	ld hl, UnknownText_0x10375d
-	call PrintText
-	call YesNoBox
-	jr c, .asm_103696
-	callba CheckForMobileBattleRules
-	jr nc, .asm_103690
-	call JoyWaitAorB
-	jr .asm_103696
-
-.asm_103690
-	ld a, $01
-	ld [ScriptVar], a
-	ret
-
-.asm_103696
-	xor a
-	ld [ScriptVar], a
-	ret
-
-.asm_10369b
-	ld hl, wMobileOrCable_LastSelection
-	bit 7, [hl]
-	set 7, [hl]
-	jr nz, .asm_1036b5
-	ld hl, UnknownText_0x103762
-	call PrintText
-	call YesNoBox
-	jr c, .asm_1036b5
-	call Function1036f9
-	call JoyWaitAorB
-
-.asm_1036b5
-	call Function103700
-	jr c, .asm_1036f4
-	ld hl, MenuDataHeader_103747
-	call LoadMenuDataHeader
-	call VerticalMenu
-	call ExitMenu
-	jr c, .asm_1036f4
-	ld a, [wMenuCursorY]
-	cp $01
-	jr z, .asm_1036d9
-	cp $02
-	jr z, .asm_1036f4
-	cp $03
-	jr z, .asm_1036ec
-	jr .asm_1036b5
-
-.asm_1036d9
-	callba CheckForMobileBattleRules
-	jr nc, .asm_1036e6
-	call JoyWaitAorB
-	jr .asm_1036f4
-
-.asm_1036e6
-	ld a, $01
-	ld [ScriptVar], a
-	ret
-
-.asm_1036ec
-	call Function1036f9
-	call JoyWaitAorB
-	jr .asm_1036b5
-
-.asm_1036f4
-	xor a
-	ld [ScriptVar], a
-	ret
-; 1036f9
-
-Function1036f9: ; 1036f9
-	ld hl, UnknownText_0x103767
-	call PrintText
-	ret
-; 103700
-
-Function103700: ; 103700
-	ld c, $0a
-	ld hl, SwarmFlags
-	bit 4, [hl]
-	jr z, .asm_10370f
-	callba Function1008a6
-
-.asm_10370f
-	ld a, c
-	ld [StringBuffer2], a
-	ld a, [StringBuffer2]
-	cp $05
-	jr nc, .asm_103724
-	cp $02
-	jr nc, .asm_10372c
-	cp $01
-	jr nc, .asm_103734
-	jr .asm_10373c
-
-.asm_103724
-	ld hl, UnknownText_0x10376c
-	call PrintText
-	and a
-	ret
-
-.asm_10372c
-	ld hl, UnknownText_0x103771
-	call PrintText
-	and a
-	ret
-
-.asm_103734
-	ld hl, UnknownText_0x103776
-	call PrintText
-	and a
-	ret
-
-.asm_10373c
-	ld hl, UnknownText_0x10377b
-	call PrintText
-	call JoyWaitAorB
-	scf
-	ret
-; 103747
-
-MenuDataHeader_103747: ; 103747
-	db $40 ; flags
-	db  5, 13 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_10374f
-	db 1 ; default option
-
-MenuData2_10374f: ; 10374f
-	db $c0 ; flags
-	db 3
-	db "はい@"
-	db "やめる@"
-	db "せつめい@"
-; 10375d
-
-UnknownText_0x10375d: ; 0x10375d
-	text_jump UnknownText_0x1c422a
-	db "@"
-; 0x103762
-UnknownText_0x103762: ; 0x103762
-	text_jump UnknownText_0x1c4275
-	db "@"
-; 0x103767
-UnknownText_0x103767: ; 0x103767
-	text_jump UnknownText_0x1c4298
-	db "@"
-; 0x10376c
-UnknownText_0x10376c: ; 0x10376c
-	text_jump UnknownText_0x1c439c
-	db "@"
-; 0x103771
-UnknownText_0x103771: ; 0x103771
-	text_jump UnknownText_0x1c43dc
-	db "@"
-; 0x103776
-UnknownText_0x103776: ; 0x103776
-	text_jump UnknownText_0x1c4419
-	db "@"
-; 0x10377b
-UnknownText_0x10377b: ; 0x10377b
-	text_jump UnknownText_0x1c445a
-	db "@"
-; 0x103780
-
-Function103780: ; 103780
-	ld a, [wd265]
-	push af
-	call Function10378c
-	pop af
-	ld [wd265], a
-	ret
-; 10378c
-
-Function10378c: ; 10378c
-	ld c, 0
-	ld hl, SwarmFlags
-	bit 4, [hl]
-	jr nz, .already_set
-	ld c, $01
-	ld hl, SwarmFlags
-	set 4, [hl]
-
-.already_set
-	push bc
-	callba Link_SaveGame
-	pop bc
-	jr c, .failed_to_save
-	ld a, $01
-	ld [ScriptVar], a
-	ld a, c
-	and a
-	ret z
-	callba Function1006fd
-	ret
-
-.failed_to_save
-	xor a
-	ld [ScriptVar], a
-	ld a, c
-	and a
-	ret z
-	ld hl, SwarmFlags
-	res 4, [hl]
-	ret
-; 1037c2
-
-Function1037c2: ; 1037c2
-	call Function103823
-	jr c, .nope
-	ld a, [wdc5f]
-	and a
-	jr z, .nope
-	ld hl, UnknownText_0x1037e6
-	call PrintText
-	call YesNoBox
-	jr c, .nope
-	ld a, $01
-	ld [ScriptVar], a
-	ret
-
-.nope
-	xor a
-	ld [wdc5f], a
-	ld [ScriptVar], a
-	ret
-; 1037e6
-
-UnknownText_0x1037e6: ; 0x1037e6
-	text_jump UnknownText_0x1c449c
-	db "@"
-; 0x1037eb
-
-Function1037eb: ; 1037eb
-	call Function103823
-	jr nc, .asm_103807
-	ld hl, UnknownText_0x103819
-	call PrintText
-	call JoyWaitAorB
-	ld hl, UnknownText_0x10381e
-	call PrintText
-	call JoyWaitAorB
-	xor a
-	ld [ScriptVar], a
-	ret
-
-.asm_103807
-	ld a, [wdc60]
-	and a
-	jr nz, .asm_103813
-	ld a, $01
-	ld [ScriptVar], a
-	ret
-
-.asm_103813
-	ld a, $02
-	ld [ScriptVar], a
-	ret
-; 103819
-
-UnknownText_0x103819: ; 0x103819
-	text_jump UnknownText_0x1c44c0
-	db "@"
-; 0x10381e
-
-UnknownText_0x10381e: ; 0x10381e
-	text_jump UnknownText_0x1c44e7
-	db "@"
-; 0x103823
-
-Function103823: ; 103823
-	callba Mobile_AlwaysReturnNotCarry
-	bit 7, c
-	jr nz, .asm_103838
-	callba Function1008a6
-	ld a, c
-	cp $01
-	jr c, .asm_10383a
-
-.asm_103838
-	xor a
-	ret
-
-.asm_10383a
-	scf
-	ret
-; 10383c
-
-Function10383c: ; 10383c
-	ld a, $01
-	ld [wdc60], a
-	xor a
-	ld hl, wPlayerMonSelection
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-	ld hl, UnknownText_0x103876
-	call PrintText
-	call JoyWaitAorB
-	callba Script_reloadmappart
-	callba Function4a94e
-	jr c, .asm_103870
-	ld hl, wd002
-	ld de, wPlayerMonSelection
-	ld bc, 3
-	call CopyBytes
-	xor a
-	ld [ScriptVar], a
-	ret
-
-.asm_103870
-	ld a, $01
-	ld [ScriptVar], a
-	ret
-; 103876
-
-UnknownText_0x103876: ; 0x103876
-	text_jump UnknownText_0x1c4508
-	db "@"
-; 0x10387b
-
-Function10387b: ; 10387b
-	callba Mobile_AlwaysReturnNotCarry
-	bit 7, c
-	ret nz
-	callba Function1008a6
-	ld a, c
-	ld [StringBuffer2], a
-	ld hl, UnknownText_0x103898
-	call PrintText
-	call JoyWaitAorB
-	ret
-; 103898
-
-UnknownText_0x103898: ; 0x103898
-	text_jump UnknownText_0x1c4525
-	db "@"
-; 0x10389d
--- a/misc/mobile_41.asm
+++ /dev/null
@@ -1,1115 +1,0 @@
-SECTION "bank41_2", ROMX
-
-; These functions deal with miscellaneous statistics
-; which were used for Trainer Rankings in Pokémon News.
-
-; Copies certain values at the time the player enters the Hall of Fame.
-TrainerRankings_HallOfFame2:: mobile ; 0x105ef6
-	ld a, BANK(sTrainerRankingGameTimeHOF)
-	call GetSRAMBank
-
-	ld hl, GameTimeHours
-	ld de, sTrainerRankingGameTimeHOF
-	ld bc, 4
-	call CopyBytes
-
-	ld hl, sTrainerRankingStepCount
-	ld de, sTrainerRankingStepCountHOF
-	ld bc, 4
-	call CopyBytes
-
-	; sTrainerRankingHealings is only a 3-byte value.
-	; One extraneous byte is copied from sTrainerRankingMysteryGift.
-	ld hl, sTrainerRankingHealings
-	ld de, sTrainerRankingHealingsHOF
-	ld bc, 4
-	call CopyBytes
-
-	ld hl, sTrainerRankingBattles
-	ld de, sTrainerRankingBattlesHOF
-	ld bc, 3
-	call CopyBytes
-
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	ret
-; 105f33
-
-TrainerRankings_MagikarpLength: mobile ; 105f33
-	ld a, BANK(sTrainerRankingLongestMagikarp)
-	call GetSRAMBank
-	ld de, Buffer1
-	ld hl, sTrainerRankingLongestMagikarp
-
-	; Is this Magikarp the longest measured?
-	ld a, [de]
-	cp [hl]
-	jr z, .isLowByteHigher
-	jr nc, .newRecordLongest
-	jr .checkShortest
-
-.isLowByteHigher
-	inc hl
-	inc de
-	ld a, [de]
-	cp [hl]
-	dec hl
-	dec de
-	jr c, .checkShortest
-
-.newRecordLongest
-	ld a, [de]
-	inc de
-	ld [hli], a
-	ld a, [de]
-	dec de
-	ld [hl], a
-
-.checkShortest
-	; First, check if the record for shortest Magikarp is 0.
-	; This seems unnecessary, because the value is initialized to 100.0 cm.
-	ld hl, sTrainerRankingShortestMagikarp
-	ld a, [hli]
-	or [hl]
-	dec hl
-	jr z, .newRecordShortest
-
-	; Now check if this Magikarp is the shortest
-	ld a, [de]
-	cp [hl]
-	jr z, .isLowByteLower
-	jr c, .newRecordShortest
-	jr .done
-
-.isLowByteLower
-	inc hl
-	inc de
-	ld a, [de]
-	cp [hl]
-	jr nc, .done
-	dec hl
-	dec de
-
-.newRecordShortest
-	ld a, [de]
-	inc de
-	ld [hli], a
-	ld a, [de]
-	ld [hl], a
-
-.done
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	ret
-; 105f79
-
-TrainerRankings_BugContestScore: mobile ; 105f79
-	ld a, BANK(sTrainerRankingBugContestScore)
-	call GetSRAMBank
-	ld a, [hProduct]
-	ld hl, sTrainerRankingBugContestScore
-	cp [hl]
-	jr z, .isLowByteHigher
-	jr nc, .newHighScore
-	jr .done
-
-.isLowByteHigher
-	inc hl
-	ld a, [hMultiplicand]
-	cp [hl]
-	jr c, .done
-	dec hl
-
-.newHighScore
-	ld a, [hProduct]
-	ld [hli], a
-	ld a, [hMultiplicand]
-	ld [hl], a
-
-.done
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	ret
-; 105f9f
-
-TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f
-	ld a, BANK(sTrainerRankingCurrentSlotsStreak)
-	call GetSRAMBank
-
-	; Increment the current streak
-	ld hl, sTrainerRankingCurrentSlotsStreak + 1
-	inc [hl]
-	jr nz, .noCarry
-	dec hl
-	inc [hl]
-	inc hl
-
-.noCarry
-	dec hl
-	; Now check if this is a new record for longest streak
-	ld a, [sTrainerRankingLongestSlotsStreak]
-	cp [hl]
-	jr z, .isLowByteHigher
-	jr c, .newRecordStreak
-	jr .done
-
-.isLowByteHigher
-	inc hl
-	ld a, [sTrainerRankingLongestSlotsStreak + 1]
-	cp [hl]
-	jr nc, .done
-	dec hl
-
-.newRecordStreak
-	ld a, [hli]
-	ld [sTrainerRankingLongestSlotsStreak], a
-	ld a, [hl]
-	ld [sTrainerRankingLongestSlotsStreak + 1], a
-
-.done
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	ret
-; 105fd0
-
-TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0
-	ld a, BANK(sTrainerRankingCurrentSlotsStreak)
-	call GetSRAMBank
-	ld hl, sTrainerRankingCurrentSlotsStreak
-	xor a
-	ld [hli], a
-	ld [hl], a
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	ret
-; 105fe3
-
-TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3
-	ld a, BANK(sTrainerRankingTotalSlotsPayouts)
-	call GetSRAMBank
-	ld hl, sTrainerRankingTotalSlotsPayouts + 3
-	ld a, e
-	add [hl]
-	ld [hld], a
-	ld a, d
-	adc [hl]
-	ld [hld], a
-	jr nc, .done
-	inc [hl]
-	jr nz, .done
-	dec hl
-	inc [hl]
-	jr nz, .done
-	ld a, $ff
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-
-.done
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	ret
-; 106008
-
-TrainerRankings_AddToBattlePayouts: mobile ; 106008
-	ld a, BANK(sTrainerRankingTotalBattlePayouts)
-	call GetSRAMBank
-	ld hl, sTrainerRankingTotalBattlePayouts + 3
-	ld a, [bc]
-	dec bc
-	add [hl]
-	ld [hld], a
-	ld a, [bc]
-	dec bc
-	adc [hl]
-	ld [hld], a
-	ld a, [bc]
-	adc [hl]
-	ld [hld], a
-	jr nc, .done
-	inc [hl]
-	jr nz, .done
-	ld a, $ff
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-
-.done
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	ret
-; 10602e
-
-TrainerRankings_StepCount: mobile ; 10602e (41:602e)
-	ld hl, sTrainerRankingStepCount
-	jp TrainerRankings_Increment4Byte
-
-; Unreferenced in English version.
-TrainerRankings_BattleTowerWins: mobile ; 106035
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$aa8d]
-	and a
-	call CloseSRAM
-	ret nz
-	ld hl, sTrainerRankingBattleTowerWins
-	jp TrainerRankings_Increment2Byte
-
-TrainerRankings_TMsHMsTaught: mobile ; 106049
-	ld hl, sTrainerRankingTMsHMsTaught
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Battles: mobile ; 106050
-	ld a, [BattleType]
-	cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
-	ret z
-	ld hl, sTrainerRankingBattles
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_WildBattles: mobile ; 10605d
-	ld a, [BattleType]
-	cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
-	ret z
-	ld hl, sTrainerRankingWildBattles
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_TrainerBattles: mobile ; 10606a
-	ld hl, sTrainerRankingTrainerBattles
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused1: mobile ; 106071
-	ld hl, sTrainerRankingUnused1
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_HallOfFame:: mobile ; 0x106078
-	ld hl, sTrainerRankingHOFEntries
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f)
-	ld hl, sTrainerRankingWildMonsCaught
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_HookedEncounters: mobile ; 106086
-	ld hl, sTrainerRankingHookedEncounters
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_EggsHatched: mobile ; 10608d (41:608d)
-	ld hl, sTrainerRankingEggsHatched
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_MonsEvolved: mobile ; 106094
-	ld hl, sTrainerRankingMonsEvolved
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_FruitPicked: mobile ; 10609b
-	ld hl, sTrainerRankingFruitPicked
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Healings: mobile ; 1060a2
-	ld hl, sTrainerRankingHealings
-	jp TrainerRankings_Increment3Byte
-
-TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9)
-	ld hl, sTrainerRankingMysteryGift
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Trades: mobile ; 1060af
-	ld hl, sTrainerRankingTrades
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Fly: mobile ; 1060b5
-	ld hl, sTrainerRankingFly
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Surf: mobile ; 1060bb
-	ld hl, sTrainerRankingSurf
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Waterfall: mobile ; 1060c1
-	ld hl, sTrainerRankingWaterfall
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_WhiteOuts: mobile ; 1060c7
-	ld hl, sTrainerRankingWhiteOuts
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_LuckyNumberShow: mobile ; 1060cd
-	ld hl, sTrainerRankingLuckyNumberShow
-	jr TrainerRankings_Increment2Byte
-
-TrainerRankings_PhoneCalls: mobile ; 1060d3
-	ld hl, sTrainerRankingPhoneCalls
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused2: mobile ; 1060df
-	ld hl, sTrainerRankingUnused2
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_LinkBattles: mobile ; 1060df
-	ld hl, sTrainerRankingLinkBattles
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Splash: mobile ; 1060e5
-	; Only counts if it’s the player’s turn
-	ld a, [hBattleTurn]
-	and a
-	ret nz
-	ld hl, sTrainerRankingSplash
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_TreeEncounters: mobile ; 1060ef
-	ld hl, sTrainerRankingTreeEncounters
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused3: mobile ; 1060f5
-	ld hl, sTrainerRankingUnused3
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_ColosseumWins: mobile ; win
-	ld hl, sTrainerRankingColosseumWins
-	jr TrainerRankings_Increment3Byte
-
-TrainerRankings_ColosseumLosses: mobile ; lose
-	ld hl, sTrainerRankingColosseumLosses
-	jr TrainerRankings_Increment3Byte
-; 106107
-
-TrainerRankings_ColosseumDraws: mobile ; draw
-	ld hl, sTrainerRankingColosseumDraws
-	jr TrainerRankings_Increment3Byte
-; 10610d
-
-; Counts uses of both Selfdestruct and Explosion.
-TrainerRankings_Selfdestruct: mobile ; 10610d
-	; Only counts if it’s the player’s turn
-	ld a, [hBattleTurn]
-	and a
-	ret nz
-	ld hl, sTrainerRankingSelfdestruct
-	jr TrainerRankings_Increment3Byte
-; 106117
-
-TrainerRankings_Increment4Byte: ; 106117
-	push bc
-	ld bc, 3
-	jr TrainerRankings_Increment
-; 10611d
-
-TrainerRankings_Increment3Byte: ; 10611d
-	push bc
-	ld bc, 2
-	jr TrainerRankings_Increment
-; 106123
-
-TrainerRankings_Increment2Byte: ; 106123
-	push bc
-	ld bc, 1
-	jr TrainerRankings_Increment
-; 106129
-
-; unused
-TrainerRankings_Increment1Byte: ; 106129
-	push bc
-	ld bc, 0
-
-; Increments a big-endian value of bc + 1 bytes at hl
-TrainerRankings_Increment: ; 10612d
-	ld a, BANK(sTrainerRankings)
-	call GetSRAMBank
-	push hl
-	push de
-	ld e, c
-	inc e
-.asm_106136
-	ld a, [hli]
-	inc a
-	jr nz, .asm_10613d
-	dec e
-	jr nz, .asm_106136
-
-.asm_10613d
-	pop de
-	pop hl
-	jr z, .asm_10614d
-	add hl, bc
-.asm_106142
-	inc [hl]
-	jr nz, .asm_10614d
-	ld a, c
-	and a
-	jr z, .asm_10614d
-	dec hl
-	dec c
-	jr .asm_106142
-
-.asm_10614d
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	pop bc
-	ret
-; 106155
-
-; Used when SRAM bank 5 isn’t already loaded — what’s the point of this?
-UpdateTrainerRankingsChecksum2: mobile ; 106155
-	ld a, BANK(sTrainerRankings)
-	call GetSRAMBank
-	call UpdateTrainerRankingsChecksum
-	call CloseSRAM
-	ret
-; 106162
-
-UpdateTrainerRankingsChecksum: ; 106162
-	push de
-	call CalculateTrainerRankingsChecksum
-	ld hl, sTrainerRankingsChecksum
-	ld [hl], d
-	inc hl
-	ld [hl], e
-	pop de
-	ret
-; 10616e
-
-CalculateTrainerRankingsChecksum: ; 10616e
-	push bc
-	ld hl, sTrainerRankings
-	ld bc, sTrainerRankingsChecksum - sTrainerRankings
-	xor a
-	ld de, 0
-.asm_106179
-	ld a, e
-	add [hl]
-	ld e, a
-	jr nc, .asm_10617f
-	inc d
-
-.asm_10617f
-	inc hl
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_106179
-	pop bc
-	ret
-; 106187
-
-
-BackupMobileEventIndex: ; 106187
-	ld a, BANK(sMobileEventIndex)
-	call GetSRAMBank
-	ld a, [sMobileEventIndex]
-	push af
-	ld a, BANK(sMobileEventIndexBackup)
-	call GetSRAMBank
-	pop af
-	ld [sMobileEventIndexBackup], a
-	call CloseSRAM
-	ret
-; 10619d
-
-
-RestoreMobileEventIndex: ; 10619d (41:619d)
-	ld a, BANK(sMobileEventIndexBackup)
-	call GetSRAMBank
-	ld a, [sMobileEventIndexBackup]
-	push af
-	ld a, BANK(sMobileEventIndex)
-	call GetSRAMBank
-	pop af
-	ld [sMobileEventIndex], a
-	call CloseSRAM
-	ret
-; 1061b3 (41:61b3)
-
-; Unreferenced in English version.
-VerifyTrainerRankingsChecksum: ; 1061b3
-	call CalculateTrainerRankingsChecksum
-	ld hl, sTrainerRankingsChecksum
-	ld a, d
-	cp [hl]
-	ret nz
-	inc hl
-	ld a, e
-	cp [hl]
-	ret
-; 1061c0
-
-DeleteMobileEventIndex: ; 1061c0 (41:61c0)
-	ld a, BANK(sMobileEventIndex)
-	call GetSRAMBank
-	xor a
-	ld [sMobileEventIndex], a
-	call CloseSRAM
-	ret
-; 1061cd (41:61cd)
-
-; Used in the Japanese version to initialize Trainer Rankings data
-; for a new save file. Unreferenced in the English version.
-InitializeTrainerRankings:
-	ld hl, sTrainerRankings
-	ld bc, sTrainerRankingsEnd - sTrainerRankings
-	xor a
-	call ByteFill
-
-	; Initialize the shortest Magikarp to 100.0 cm
-	ld hl, sTrainerRankingShortestMagikarp
-	ld a, $3
-	ld [hli], a
-	ld [hl], $e8
-
-	call UpdateTrainerRankingsChecksum
-	ld hl, sTrainerRankings
-	ld de, sTrainerRankingsBackup
-	ld bc, sTrainerRankingsEnd - sTrainerRankings
-	call CopyBytes
-	ret
-; 1061ef
-
-
-_MobilePrintNum:: ; 1061ef
-; Supports signed 31-bit integers (up to 10 digits)
-; b: Bits 0-4 = # bytes
-;    Bit 7 = set if negative
-; c: Number of digits
-; de: highest byte of number to convert
-; hl: where to print the converted string
-	push bc
-	xor a
-	ld [hPrintNum1], a
-	ld [hPrintNum2], a
-	ld [hPrintNum3], a
-	ld a, b
-	and $f
-	cp $1
-	jr z, .one_byte
-	cp $2
-	jr z, .two_bytes
-	cp $3
-	jr z, .three_bytes
-; four bytes
-	ld a, [de]
-	ld [hPrintNum1], a
-	inc de
-
-.three_bytes
-	ld a, [de]
-	ld [hPrintNum2], a
-	inc de
-
-.two_bytes
-	ld a, [de]
-	ld [hPrintNum3], a
-	inc de
-
-.one_byte
-	ld a, [de]
-	ld [hPrintNum4], a
-	inc de
-
-	push de
-	xor a
-	ld [hPrintNum9], a
-	ld a, b
-	ld [hPrintNum10], a
-	ld a, c
-	cp 2
-	jr z, .two_digits
-	ld de, ._2
-	cp 3
-	jr z, .three_to_nine_digits
-	ld de, ._3
-	cp 4
-	jr z, .three_to_nine_digits
-	ld de, ._4
-	cp 5
-	jr z, .three_to_nine_digits
-	ld de, ._5
-	cp 6
-	jr z, .three_to_nine_digits
-	ld de, ._6
-	cp 7
-	jr z, .three_to_nine_digits
-	ld de, ._7
-	cp 8
-	jr z, .three_to_nine_digits
-	ld de, ._8
-	cp 9
-	jr z, .three_to_nine_digits
-	ld de, ._9
-
-.three_to_nine_digits
-	inc de
-	inc de
-	inc de
-	dec a
-	dec a
-
-.digit_loop
-	push af
-	call .Function1062b2
-	call .Function1062ff
-rept 4
-	inc de
-endr
-	pop af
-	dec a
-	jr nz, .digit_loop
-
-.two_digits
-	ld c, 0
-	ld a, [hPrintNum4]
-.mod_ten_loop
-	cp 10
-	jr c, .simple_divide_done
-	sub 10
-	inc c
-	jr .mod_ten_loop
-
-.simple_divide_done
-	ld b, a
-	ld a, [hPrintNum9]
-	or c
-	ld [hPrintNum9], a
-	jr nz, .create_digit
-	call .LoadMinusTenIfNegative
-	jr .done
-
-.create_digit
-	ld a, "0"
-	add c
-	ld [hl], a
-
-.done
-	call .Function1062ff
-	ld a, "0"
-	add b
-	ld [hli], a
-	pop de
-	pop bc
-	ret
-; 106292
-
-._9	dd 1000000000
-._8	dd 100000000
-._7	dd 10000000
-._6	dd 1000000
-._5	dd 100000
-._4	dd 10000
-._3	dd 1000
-._2	dd 100
-; 1062b2
-
-.Function1062b2: ; 1062b2
-	ld c, $0
-.asm_1062b4
-	ld a, [de]
-	dec de
-	ld b, a
-	ld a, [hPrintNum4]
-	sub b
-	ld [hPrintNum8], a
-	ld a, [de]
-	dec de
-	ld b, a
-	ld a, [hPrintNum3]
-	sbc b
-	ld [hPrintNum7], a
-	ld a, [de]
-	dec de
-	ld b, a
-	ld a, [hPrintNum2]
-	sbc b
-	ld [hPrintNum6], a
-	ld a, [de]
-	inc de
-	inc de
-	inc de
-	ld b, a
-	ld a, [hPrintNum1]
-	sbc b
-	ld [hPrintNum5], a
-	jr c, .asm_1062eb
-	ld a, [hPrintNum5]
-	ld [hPrintNum1], a
-	ld a, [hPrintNum6]
-	ld [hPrintNum2], a
-	ld a, [hPrintNum7]
-	ld [hPrintNum3], a
-	ld a, [hPrintNum8]
-	ld [hPrintNum4], a
-	inc c
-	jr .asm_1062b4
-
-.asm_1062eb
-	ld a, [hPrintNum9]
-	or c
-	jr z, .LoadMinusTenIfNegative
-	ld a, -10
-	add c
-	ld [hl], a
-	ld [hPrintNum9], a
-	ret
-
-.LoadMinusTenIfNegative:
-	ld a, [hPrintNum10]
-	bit 7, a
-	ret z
-
-	ld [hl], -10
-	ret
-; 1062ff
-
-.Function1062ff: ; 1062ff
-	ld a, [hPrintNum10]
-	bit 7, a
-	jr nz, .asm_10630d
-	bit 6, a
-	jr z, .asm_10630d
-	ld a, [hPrintNum9]
-	and a
-	ret z
-
-.asm_10630d
-	inc hl
-	ret
-; 10630f
-
-; functions related to the cable club and various NPC scripts referencing mobile communications
-
-Mobile_DummyReturnFalse: ; 10630f
-	xor a
-	ld [ScriptVar], a
-	ret
-; 106314
-
-MobileFn_106314: mobile ; 106314
-	ld a, $4
-	call GetSRAMBank
-	ld a, c
-	cpl
-	ld [$b000], a
-	call CloseSRAM
-	ld a, $7
-	call GetSRAMBank
-	ld a, c
-	ld [$a800], a
-	call CloseSRAM
-	ret
-; 10632f
-
-Mobile_AlwaysReturnNotCarry: ; 10632f
-	or a
-	ret
-
-Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
-	; check ~[4:b000] == [7:a800]
-	ld a, $4
-	call GetSRAMBank
-	ld a, [$b000]
-	cpl
-	ld b, a
-	call CloseSRAM
-	ld a, $7
-	call GetSRAMBank
-	ld a, [$a800]
-	ld c, a
-	call CloseSRAM
-	ld a, c
-	cp b
-	jr nz, .nope
-
-	; check [7:a800] != 0
-	and a
-	jr z, .nope
-
-	; check !([7:a800] & %01110000)
-	and %10001111
-	cp c
-	jr nz, .nope
-
-	ld c, a
-	scf
-	ret
-
-.nope
-	xor a
-	ld c, a
-	ret
-; 10635c
-
-Function10635c: ; 10635c
-	ld a, [wMobileCommsJumptableIndex]
-	bit 7, a
-	ret nz
-	ld a, [wMobileCommsJumptableIndex]
-	ld hl, .Jumptable
-	rst JumpTable
-	ret
-; 10636a
-
-.Jumptable: ; 10636a
-	dw .init
-	dw Function106392
-	dw Function1063cc
-	dw Function1063d8
-	dw Function1063e5
-	dw Function1063f3
-	dw Function106403
-	dw Function106442
-	dw Function106453
-; 10637c
-
-.init: ; 10637c
-	ld de, wcd30
-	ld hl, $41
-	ld bc, $41
-	ld a, $40
-	call Function3e32
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 106392
-
-Function106392: ; 106392
-	xor a
-	ld [wcf64], a
-	ld a, [wc821]
-	bit 1, a
-	jr nz, .asm_1063a2
-	bit 0, a
-	jr z, .asm_1063bf
-	ret
-
-.asm_1063a2
-	call Mobile_AlwaysReturnNotCarry
-	ld a, c
-	and a
-	jr nz, .asm_1063b4
-	ld a, $b
-	ld [wcf64], a
-	ld a, $7
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_1063b4
-	ld a, $7
-	ld [wcf64], a
-	ld a, $7
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_1063bf
-	ld a, $1
-	ld [wcf64], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1063cc
-
-Function1063cc: ; 1063cc
-	ld a, $78
-	ld [wcd42], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-
-Function1063d8: ; 1063d8
-	ld hl, wcd42
-	dec [hl]
-	ret nz
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1063e5
-
-Function1063e5: ; 1063e5
-	ld a, [wcf64]
-	cp $3
-	ret nz
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 1063f3
-
-Function1063f3: ; 1063f3
-	ld de, wcd31
-	ld a, $32
-	call Function3e32
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 106403
-
-Function106403: ; 106403
-	ld a, [wc821]
-	bit 1, a
-	jr nz, .asm_106426
-	bit 0, a
-	jr z, .asm_10640f
-	ret
-
-.asm_10640f
-	ld a, [wcd31]
-	and $80
-	ld c, a
-	ld a, [wcd30]
-	or c
-	inc a
-	ld c, a
-	call MobileFn_106314
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_106426
-	call Mobile_AlwaysReturnNotCarry
-	ld a, c
-	and a
-	jr z, .asm_106435
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-
-.asm_106435
-	ld c, $0
-	call MobileFn_106314
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-	ret
-; 106442
-
-Function106442: ; 106442
-	ld a, $36
-	call Function3e32
-	xor a
-	ld [hMobile], a
-	ld [hMobileReceive], a
-	ld a, [wMobileCommsJumptableIndex]
-	inc a
-	ld [wMobileCommsJumptableIndex], a
-
-Function106453: ; 106453
-	ld a, [wMobileCommsJumptableIndex]
-	set 7, a
-	ld [wMobileCommsJumptableIndex], a
-	nop
-	ld a, $4
-	ld [wcf64], a
-	ret
-; 106462
-
-MobileFunc_106462: mobile
-	ret
-; 106464
-
-Function106464:: ; 106464
-	ld de, MobilePhoneTilesGFX
-	ld hl, VTiles2 tile $60
-	lb bc, BANK(MobilePhoneTilesGFX), 1
-	call Get2bpp
-	ld de, FontsExtra2_UpArrowGFX
-	ld hl, VTiles2 tile $61
-	lb bc, BANK(FontsExtra2_UpArrowGFX), 1
-	call Get2bpp
-	ld de, GFX_106514
-	ld hl, VTiles2 tile $62
-	ld c, 9
-	ld b, BANK(GFX_106514)
-	call Get2bpp
-	ld de, $40b0
-	ld hl, VTiles2 tile $6b
-	ld b, $f ; XXX no graphics at 0f:40b0
-	call Get2bpp
-	callba LoadFrame
-	ret
-; 10649b
-
-Function10649b: ; 10649b
-	ld a, [TextBoxFrame]
-	and $7
-	ld bc, 3 tiles
-	ld hl, Frames
-	call AddNTimes
-	ld d, h
-	ld e, l
-	ld hl, VTiles2 tile $79
-	ld c, 6
-	ld b, BANK(Frames)
-	call Function1064c3
-	ld hl, VTiles2 tile $7f
-	ld de, TextBoxSpaceGFX
-	ld c, 1
-	ld b, BANK(TextBoxSpaceGFX)
-	call Function1064c3
-	ret
-; 1064c3
-
-Function1064c3: ; 1064c3
-	ld a, [rSVBK]
-	push af
-	ld a, $6
-	ld [rSVBK], a
-	push bc
-	push hl
-	ld hl, Function3f88
-	ld a, b
-	rst FarCall
-	pop hl
-	pop bc
-	pop af
-	ld [rSVBK], a
-	jr asm_1064ed
-
-Function1064d8: ; 1064d8
-	ld a, [rSVBK]
-	push af
-	ld a, $6
-	ld [rSVBK], a
-	push bc
-	push hl
-	ld hl, Function3f9f
-	ld a, b
-	rst FarCall
-	pop hl
-	pop bc
-	pop af
-	ld [rSVBK], a
-	jr asm_1064ed
-
-asm_1064ed
-	ld de, wDecompressScratch
-	ld b, $0
-	ld a, [rSVBK]
-	push af
-	ld a, $6
-	ld [rSVBK], a
-	ld a, [rVBK]
-	push af
-	ld a, $1
-	ld [rVBK], a
-	call Get2bpp
-	pop af
-	ld [rVBK], a
-	pop af
-	ld [rSVBK], a
-	ret
-; 10650a
-
-Function10650a: ; 10650a
-	ld de, MobilePhoneTilesGFX + $20
-	lb bc, BANK(MobilePhoneTilesGFX), $11
-	call Get2bpp
-	ret
-; 106514
-
-GFX_106514:
-INCBIN "gfx/unknown/106514.2bpp"
--- a/misc/mobile_42.asm
+++ /dev/null
@@ -1,2009 +1,0 @@
-MobileTradeAnimation_SendGivemonToGTS: ; 108000
-	ld a, $80
-	ld [wcf65], a
-	ld de, .TradeAnimScript
-	jp RunMobileTradeAnim_NoFrontpics
-; 10800b
-
-.TradeAnimScript:
-	mobiletradeanim_showgtsgivemon
-	mobiletradeanim_12
-	mobiletradeanim_10
-	mobiletradeanim_sendmon
-	mobiletradeanim_06
-	mobiletradeanim_0f
-	mobiletradeanim_end
-
-MobileTradeAnimation_RetrieveGivemonFromGTS:
-	ld a, $80
-	jr asm_108018
-
-MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016
-	ld a, $0
-asm_108018:
-	ld [wcf65], a
-	ld de, .TradeAnimScript
-	jp RunMobileTradeAnim_NoFrontpics
-; 108021
-
-.TradeAnimScript:
-	mobiletradeanim_11
-	mobiletradeanim_07
-	mobiletradeanim_receivemon
-	mobiletradeanim_showgtsgetmon
-	mobiletradeanim_end
-
-Function108026: ; 108026
-	ld a, $0
-	jr asm_10802c
-
-Function10802a: ; 10802a
-	ld a, $1
-
-asm_10802c:
-	ld [wcf65], a
-	ld de, .TradeAnimScript
-	jp RunMobileTradeAnim_Frontpics
-; 108035
-
-.TradeAnimScript: ; trade
-	mobiletradeanim_showgivemon
-	mobiletradeanim_12
-	mobiletradeanim_02
-	mobiletradeanim_sendmon
-	mobiletradeanim_05
-	mobiletradeanim_receivemon
-	mobiletradeanim_showgetmon
-	mobiletradeanim_end
-
-Function10803d: ; 10803d
-	ld a, $0
-	ld [wcf65], a
-	ld de, .TradeAnimScript
-	jp RunMobileTradeAnim_NoFrontpics
-; 108048
-
-.TradeAnimScript:
-	mobiletradeanim_11
-	mobiletradeanim_07
-	mobiletradeanim_receivemon
-	mobiletradeanim_showoddegg
-	mobiletradeanim_end
-
-Function10804d: ; 10804d
-	ld a, $0
-	ld [wcf65], a
-	ld de, .TradeAnimScript
-	jp RunMobileTradeAnim_NoFrontpics
-; 108058
-
-.TradeAnimScript:
-	mobiletradeanim_11
-	mobiletradeanim_showgtsgetmon
-	mobiletradeanim_end
-
-RunMobileTradeAnim_Frontpics: ; 10805b
-	ld hl, wTradeAnimAddress
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld a, [hMapAnims]
-	push af
-	xor a
-	ld [hMapAnims], a
-	ld hl, VramState
-	ld a, [hl]
-	push af
-	res 0, [hl]
-	ld hl, Options
-	ld a, [hl]
-	push af
-	set NO_TEXT_SCROLL, [hl]
-	call Function1080b7
-.loop
-	call MobileTradeAnim_JumptableLoop
-	jr nc, .loop
-	pop af
-	ld [Options], a
-	pop af
-	ld [VramState], a
-	pop af
-	ld [hMapAnims], a
-	ret
-; 108089
-
-RunMobileTradeAnim_NoFrontpics: ; 108089
-	ld hl, wTradeAnimAddress
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld a, [hMapAnims]
-	push af
-	xor a
-	ld [hMapAnims], a
-	ld hl, VramState
-	ld a, [hl]
-	push af
-	res 0, [hl]
-	ld hl, Options
-	ld a, [hl]
-	push af
-	set NO_TEXT_SCROLL, [hl]
-	call Function108157
-.loop
-	call MobileTradeAnim_JumptableLoop
-	jr nc, .loop
-	pop af
-	ld [Options], a
-	pop af
-	ld [VramState], a
-	pop af
-	ld [hMapAnims], a
-	ret
-; 1080b7
-
-Function1080b7: ; 1080b7
-	xor a
-	ld [wJumptableIndex], a
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	call DisableLCD
-	call MobileTradeAnim_ClearVTiles
-	call MobileTradeAnim_ClearBGMap
-	call LoadStandardFont
-	call LoadFontsBattleExtra
-
-	ld a, $1
-	ld [rVBK], a
-	ld hl, LZ_108da7
-	ld de, VTiles2
-	call Decompress
-
-	ld a, $0
-	ld [rVBK], a
-	ld hl, LZ_108d27
-	ld de, VTiles0 tile $20
-	call Decompress
-
-	call EnableLCD
-
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	callba ClearSpriteAnims
-
-	call DelayFrame
-
-	ld de, TradeBallGFX
-	ld hl, VTiles0
-	lb bc, BANK(TradeBallGFX), $06
-	call Request2bpp
-
-	ld de, TradePoofGFX
-	ld hl, VTiles0 tile $06
-	lb bc, BANK(TradePoofGFX), $0c
-	call Request2bpp
-
-	xor a
-	ld hl, wSpriteAnimDict
-	ld [hli], a
-	ld [hl], $0
-
-	ld a, [wPlayerTrademonSpecies]
-	ld hl, wPlayerTrademonDVs
-	ld de, VTiles0 tile $30
-	call MobileTradeAnim_GetFrontpic
-
-	ld a, [wOTTrademonSpecies]
-	ld hl, wOTTrademonDVs
-	ld de, VTiles2 tile $31
-	call MobileTradeAnim_GetFrontpic
-
-	ld a, [wPlayerTrademonSpecies]
-	ld de, wPlayerTrademonSpeciesName
-	call MobileTradeAnim_InitSpeciesName
-
-	ld a, [wOTTrademonSpecies]
-	ld de, wOTTrademonSpeciesName
-	call MobileTradeAnim_InitSpeciesName
-
-	xor a
-	call Function108b98
-	call Function108af4
-	ret
-; 108157
-
-Function108157: ; 108157
-	xor a
-	ld [wJumptableIndex], a
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	call DisableLCD
-	call MobileTradeAnim_ClearVTiles
-	call MobileTradeAnim_ClearBGMap
-	call LoadStandardFont
-	call LoadFontsBattleExtra
-	call EnableLCD
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	callba ClearSpriteAnims
-	xor a
-	ld hl, wSpriteAnimDict
-	ld [hli], a
-	ld [hl], $0
-	call DelayFrame
-	ld a, [wPlayerTrademonSpecies]
-	ld de, wPlayerTrademonSpeciesName
-	call MobileTradeAnim_InitSpeciesName
-	ld a, [wOTTrademonSpecies]
-	ld de, wOTTrademonSpeciesName
-	call MobileTradeAnim_InitSpeciesName
-	xor a
-	call Function108b98
-	call Function108af4
-	ret
-; 1081ad
-
-MobileTradeAnim_ClearVTiles: ; 1081ad
-	ld a, $1
-	ld [rVBK], a
-	ld hl, VTiles0
-	ld bc, 3 * $80 tiles
-	xor a
-	call ByteFill
-	ld a, $0
-	ld [rVBK], a
-	ld hl, VTiles0
-	ld bc, 3 * $80 tiles
-	xor a
-	call ByteFill
-	ret
-; 1081ca
-
-MobileTradeAnim_ClearBGMap: ; 1081ca
-	ld a, $1
-	ld [rVBK], a
-	hlbgcoord 0, 0
-	ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
-	ld a, $0
-	call ByteFill
-	ld a, $0
-	ld [rVBK], a
-	hlbgcoord 0, 0
-	ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
-	ld a, $7f
-	call ByteFill
-	ret
-; 1081e9
-
-MobileTradeAnim_GetFrontpic: ; 1081e9
-	push de
-	push af
-	predef GetUnownLetter
-	pop af
-	ld [CurPartySpecies], a
-	ld [CurSpecies], a
-	call GetBaseData
-	pop de
-	predef GetFrontpic
-	ret
-; 108201
-
-Function108201: ; 108201
-	push de
-	push af
-	predef GetUnownLetter
-	pop af
-	ld [CurPartySpecies], a
-	ld [CurSpecies], a
-	call GetBaseData
-	pop de
-	predef FrontpicPredef
-	ret
-; 108219
-
-Function108219: ; 108219
-	ld [CurPartySpecies], a
-	hlcoord 7, 2
-	ld d, $0
-	ld e, ANIM_MON_TRADE
-	predef AnimateFrontpic
-	ret
-; 108229
-
-Function108229: ; 108229
-	ld [CurPartySpecies], a
-	hlcoord 7, 2
-	ld d, $0
-	ld e, ANIM_MON_TRADE
-	predef LoadMonAnimation
-	ret
-; 108239
-
-MobileTradeAnim_InitSpeciesName: ; 108239
-	push de
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, StringBuffer1
-	pop de
-	ld bc, PKMN_NAME_LENGTH
-	call CopyBytes
-	ret
-; 10824b
-
-MobileTradeAnim_JumptableLoop: ; 10824b
-	ld a, [wJumptableIndex]
-	bit 7, a
-	jr nz, .StopAnim
-	call .ExecuteMobileTradeAnimCommand
-	call DelayFrame
-	and a
-	ret
-
-.StopAnim:
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	call LoadStandardFont
-	call LoadFontsBattleExtra
-	callba MobileFunc_106462
-	callba Function106464
-	scf
-	ret
-; 10827b
-
-.ExecuteMobileTradeAnimCommand: ; 10827b
-	ld a, [wJumptableIndex]
-	ld e, a
-	ld d, 0
-	ld hl, .Jumptable
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-; 10828a
-
-.Jumptable: ; 10828a
-
-	dw GetMobileTradeAnimByte ; 00
-	dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01
-	dw MobileTradeAnim_02 ; 02
-	dw MobileTradeAnim_GiveTrademon1 ; 03
-	dw MobileTradeAnim_GiveTrademon2 ; 04
-	dw MobileTradeAnim_05 ; 05
-	dw MobileTradeAnim_06 ; 06
-	dw MobileTradeAnim_07 ; 07
-	dw MobileTradeAnim_GetTrademon1 ; 08
-	dw MobileTradeAnim_GetTrademon2 ; 09
-	dw MobileTradeAnim_GetTrademon3 ; 0a
-	dw MobileTradeAnim_ShowOTMonFromTrade ; 0b
-	dw EndMobileTradeAnim ; 0c
-	dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d
-	dw MobileTradeAnim_ShowOTMonFromGTS ; 0e
-	dw MobileTradeAnim_0f ; 0f
-	dw MobileTradeAnim_10 ; 10
-	dw MobileTradeAnim_11 ; 11
-	dw MobileTradeAnim_FadeToBlack ; 12
-	dw MobileTradeAnim_GetOddEgg ; 13 get odd egg
-; 1082b2
-
-MobileTradeAnim_Next: ; 1082b2
-	ld hl, wJumptableIndex
-	inc [hl]
-	ret
-; 1082b7
-
-GetMobileTradeAnimByte: ; 1082b7
-	ld hl, wTradeAnimAddress
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld a, [de]
-	ld [wJumptableIndex], a
-	inc de
-	ld [hl], d
-	dec hl
-	ld [hl], e
-	ret
-; 1082c6
-
-EndMobileTradeAnim: ; 1082c6
-	ld hl, wJumptableIndex
-	set 7, [hl]
-	ret
-; 1082cc
-
-WaitMobileTradeSpriteAnims: ; 1082cc
-.loop
-	push bc
-	callba PlaySpriteAnimations
-	pop bc
-	call DelayFrame
-	dec c
-	jr nz, .loop
-	ret
-; 1082db
-
-Function1082db: ; 1082db
-.loop
-	callba PlaySpriteAnimations
-	callba SetUpPokeAnim
-	callba HDMATransferTileMapToWRAMBank3
-	jr nc, .loop
-	ret
-; 1082f0
-
-Function1082f0: ; 1082f0
-.loop
-	call Function108b78
-	call DelayFrame
-	dec c
-	jr nz, .loop
-	ret
-; 1082fa
-
-Function1082fa: ; 1082fa
-.loop
-	call Function108b78
-	push hl
-	push bc
-	callba PlaySpriteAnimations
-	pop bc
-	pop hl
-	call DelayFrame
-	dec c
-	jr nz, .loop
-	ret
-; 10830e
-
-MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
-	ld de, MUSIC_EVOLUTION
-	call PlayMusic2
-	ld a, $80
-	ld [hSCX], a
-	xor a
-	ld [hSCY], a
-	ld a, $87
-	ld [hWX], a
-	ld a, $50
-	ld [hWY], a
-	call MobileTradeAnim_DisplayMonToBeSent
-	ld a, [wPlayerTrademonSpecies]
-	ld [CurPartySpecies], a
-	call Function10895e
-	ld a, [wPlayerTrademonDVs]
-	ld [TempMonDVs], a
-	ld a, [wPlayerTrademonDVs + 1]
-	ld [TempMonDVs + 1], a
-	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
-	call GetSGBLayout
-	ld a, %11100100 ; 3,2,1,0
-	call DmgToCgbBGPals
-	call WaitBGMap
-.loop
-	ld a, [hWX]
-	cp $7
-	jr z, .okay
-	sub $4
-	ld [hWX], a
-	ld a, [hSCX]
-	sub $4
-	ld [hSCX], a
-	call DelayFrame
-	jr .loop
-
-.okay
-	ld a, $7
-	ld [hWX], a
-	xor a
-	ld [hSCX], a
-	ld a, [wPlayerTrademonSpecies]
-	call GetCryIndex
-	jr c, .skip_cry
-	ld e, c
-	ld d, b
-	call PlayCryHeader
-
-.skip_cry
-	ld c, 80
-	call DelayFrames
-	call Function108bec
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
-	call _InitSpriteAnimStruct
-	ld de, SFX_BALL_POOF
-	call PlaySFX
-	hlcoord 0, 0
-	ld bc, 12 * SCREEN_WIDTH
-	ld a, " "
-	call ByteFill
-	ld c, 80
-	call WaitMobileTradeSpriteAnims
-	call GetMobileTradeAnimByte
-	ret
-; 10839b
-
-MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	call DisableLCD
-	call MobileTradeAnim_ClearBGMap
-	ld a, [wOTTrademonSpecies]
-	ld [CurPartySpecies], a
-	ld hl, wOTTrademonDVs
-	ld de, VTiles2
-	call Function108201
-	call EnableLCD
-	callba DeinitializeAllSprites
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
-	call _InitSpriteAnimStruct
-	call Function108b45
-	ld a, $1
-	call Function108b98
-	call Function108af4
-	ld c, 48
-	call WaitMobileTradeSpriteAnims
-	ld de, SFX_BALL_POOF
-	call PlaySFX
-	call MobileTradeAnim_DisplayReceivedMon
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $50
-	ld [hWY], a
-	ld a, [wOTTrademonSpecies]
-	ld [CurPartySpecies], a
-	ld a, [wOTTrademonDVs]
-	ld [TempMonDVs], a
-	ld a, [wOTTrademonDVs + 1]
-	ld [TempMonDVs + 1], a
-	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
-	call GetSGBLayout
-	ld a, %11100100 ; 3,2,1,0
-	call DmgToCgbBGPals
-	call Function108963
-	ld a, [wOTTrademonSpecies]
-	call Function108229
-	call Function1082db
-	call Function108c16
-	call GetMobileTradeAnimByte
-	ret
-; 10842c
-
-MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
-	ld de, MUSIC_EVOLUTION
-	call PlayMusic2
-	ld a, $80
-	ld [hSCX], a
-	xor a
-	ld [hSCY], a
-	ld a, $87
-	ld [hWX], a
-	ld a, $50
-	ld [hWY], a
-	call MobileTradeAnim_DisplayMonToBeSent
-	ld a, [wPlayerTrademonSpecies]
-	ld [CurPartySpecies], a
-	ld hl, wPlayerTrademonDVs
-	call Function10898a
-	call DelayFrame
-	ld de, TradeBallGFX
-	ld hl, VTiles0
-	lb bc, BANK(TradeBallGFX), $06
-	call Request2bpp
-	ld de, TradePoofGFX
-	ld hl, VTiles0 tile $06
-	lb bc, BANK(TradePoofGFX), $0c
-	call Request2bpp
-	ld a, [wPlayerTrademonDVs]
-	ld [TempMonDVs], a
-	ld a, [wPlayerTrademonDVs + 1]
-	ld [TempMonDVs + 1], a
-	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
-	call GetSGBLayout
-	ld a, %11100100 ; 3,2,1,0
-	call DmgToCgbBGPals
-	call WaitBGMap
-.loop
-	ld a, [hWX]
-	cp $7
-	jr z, .done
-	sub $4
-	ld [hWX], a
-	ld a, [hSCX]
-	sub $4
-	ld [hSCX], a
-	call DelayFrame
-	jr .loop
-
-.done
-	ld a, $7
-	ld [hWX], a
-	xor a
-	ld [hSCX], a
-	ld a, [wPlayerTrademonSpecies]
-	call GetCryIndex
-	jr c, .skip_cry
-	ld e, c
-	ld d, b
-	call PlayCryHeader
-
-.skip_cry
-	ld c, 80
-	call DelayFrames
-	call Function108c2b
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
-	call _InitSpriteAnimStruct
-	ld de, SFX_BALL_POOF
-	call PlaySFX
-	hlcoord 0, 0
-	ld bc, 12 * SCREEN_WIDTH
-	ld a, " "
-	call ByteFill
-	ld c, 80
-	call WaitMobileTradeSpriteAnims
-	call GetMobileTradeAnimByte
-	ret
-; 1084d7
-
-MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	call DisableLCD
-	call MobileTradeAnim_ClearBGMap
-	ld a, [wOTTrademonSpecies]
-	ld [CurPartySpecies], a
-	ld hl, wOTTrademonDVs
-	ld de, VTiles2
-	call Function108201
-	call EnableLCD
-	callba DeinitializeAllSprites
-	call DelayFrame
-	ld de, TradeBallGFX
-	ld hl, VTiles0
-	lb bc, BANK(TradeBallGFX), $06
-	call Request2bpp
-	ld de, TradePoofGFX
-	ld hl, VTiles0 tile $06
-	lb bc, BANK(TradePoofGFX), $0c
-	call Request2bpp
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
-	call _InitSpriteAnimStruct
-	call Function108b45
-	ld a, $1
-	call Function108b98
-	call Function108af4
-	ld c, 48
-	call WaitMobileTradeSpriteAnims
-	ld de, SFX_BALL_POOF
-	call PlaySFX
-	call MobileTradeAnim_DisplayReceivedMon
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $50
-	ld [hWY], a
-	ld a, [wOTTrademonSpecies]
-	ld [CurPartySpecies], a
-	ld a, [wOTTrademonDVs]
-	ld [TempMonDVs], a
-	ld a, [wOTTrademonDVs + 1]
-	ld [TempMonDVs + 1], a
-	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
-	call GetSGBLayout
-	ld a, %11100100 ; 3,2,1,0
-	call DmgToCgbBGPals
-	ld a, [wOTTrademonSpecies]
-	ld hl, wOTTrademonDVs
-	call Function10898a
-	ld a, [wOTTrademonSpecies]
-	call Function108229
-	call Function1082db
-	call Function108c40
-	call GetMobileTradeAnimByte
-	ret
-; 108589
-
-MobileTradeAnim_GetOddEgg: ; 108589
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	call DisableLCD
-	call MobileTradeAnim_ClearBGMap
-	ld a, [wOTTrademonSpecies]
-	ld [CurPartySpecies], a
-	ld hl, wOTTrademonDVs
-	ld de, VTiles2
-	call Function108201
-	call EnableLCD
-	callba DeinitializeAllSprites
-	call DelayFrame
-	ld de, TradeBallGFX
-	ld hl, VTiles0
-	lb bc, BANK(TradeBallGFX), $06
-	call Request2bpp
-	ld de, TradePoofGFX
-	ld hl, VTiles0 tile $06
-	lb bc, BANK(TradePoofGFX), $0c
-	call Request2bpp
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
-	call _InitSpriteAnimStruct
-	call Function108b45
-	ld a, $1
-	call Function108b98
-	call Function108af4
-	ld c, 48
-	call WaitMobileTradeSpriteAnims
-	ld de, SFX_BALL_POOF
-	call PlaySFX
-	call Function108a33
-	xor a
-	ld [hSCX], a
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $50
-	ld [hWY], a
-	ld a, [wOTTrademonSpecies]
-	ld [CurPartySpecies], a
-	ld a, [wOTTrademonDVs]
-	ld [TempMonDVs], a
-	ld a, [wOTTrademonDVs + 1]
-	ld [TempMonDVs + 1], a
-	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
-	call GetSGBLayout
-	ld a, %11100100 ; 3,2,1,0
-	call DmgToCgbBGPals
-	ld a, [wOTTrademonSpecies]
-	ld hl, wOTTrademonDVs
-	call Function10898a
-	ld a, [wOTTrademonSpecies]
-	call Function108229
-	call Function1082db
-	call GetMobileTradeAnimByte
-	ret
-; 108638
-
-MobileTradeAnim_02: ; 108638
-	callba DeinitializeAllSprites
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	xor a
-	ld [hBGMapMode], a
-	call DisableLCD
-	call MobileTradeAnim_ClearBGMap
-	call Function108c80
-	call Function108c6d
-	call EnableLCD
-	ld a, $c
-	ld [hSCX], a
-	ld a, $78
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_109107
-	ld de, UnknBGPals
-	ld bc, 8 palettes
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	call Function108d07
-	call Function108af4
-	call GetMobileTradeAnimByte
-	ret
-; 108689
-
-MobileTradeAnim_10: ; 108689
-	callba DeinitializeAllSprites
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	xor a
-	ld [hBGMapMode], a
-	call DisableLCD
-	call MobileTradeAnim_ClearBGMap
-	ld a, $1
-	ld [rVBK], a
-	ld hl, LZ_108da7
-	ld de, VTiles2
-	call Decompress
-	ld a, $0
-	ld [rVBK], a
-	ld hl, LZ_108d27
-	ld de, VTiles0 tile $20
-	call Decompress
-	call Function108c80
-	call Function108c6d
-	call EnableLCD
-	ld a, $c
-	ld [hSCX], a
-	ld a, $78
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_109107
-	ld de, UnknBGPals
-	ld bc, 8 palettes
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	call Function108d07
-	call Function108af4
-	call GetMobileTradeAnimByte
-	ret
-; 1086f4
-
-MobileTradeAnim_11: ; 1086f4
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	xor a
-	ld [hBGMapMode], a
-	call DisableLCD
-	ld a, $1
-	ld [rVBK], a
-	ld hl, LZ_108da7
-	ld de, VTiles2
-	call Decompress
-	ld a, $0
-	ld [rVBK], a
-	ld hl, LZ_108d27
-	ld de, VTiles0 tile $20
-	call Decompress
-	call Function108c80
-	call Function108c6d
-	call EnableLCD
-	ld a, $80
-	ld [hSCX], a
-	ld a, $90
-	ld [hSCY], a
-	ld a, $7
-	ld [hWX], a
-	ld a, $90
-	ld [hWY], a
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_109107
-	ld de, UnknBGPals
-	ld bc, 8 palettes
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	call Function108d07
-	call Function108af4
-	call Function108b5a
-	ld a, $e0
-	ld [hSCX], a
-	ld de, MUSIC_EVOLUTION
-	call PlayMusic2
-	call GetMobileTradeAnimByte
-	ret
-; 108763
-
-MobileTradeAnim_GiveTrademon1: ; 108763
-	ld de, SFX_GIVE_TRADEMON
-	call PlaySFX
-	ld c, 40
-	ld hl, BGPals + 6 palettes
-	call Function1082f0
-	call Function108af4
-.loop
-	ld a, [hSCX]
-	cp $e0
-	jr z, .loop2
-	dec a
-	dec a
-	ld [hSCX], a
-	cp $f8
-	jr nz, .next
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_22
-	call _InitSpriteAnimStruct
-
-.next
-	ld c, 1
-	call WaitMobileTradeSpriteAnims
-	jr .loop
-
-.loop2
-	ld a, [hSCY]
-	cp $f8
-	jr z, .done
-	dec a
-	dec a
-	ld [hSCY], a
-	cp $40
-	jr z, .init
-	cp $30
-	jr z, .delete
-	cp $68
-	jr z, .replace
-	jr .next2
-
-.init
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_22
-	call _InitSpriteAnimStruct
-	xor a
-	call Function108ad4
-	jr .next2
-
-.delete
-	call MobileTradeAnim_DeleteSprites
-	jr .next2
-
-.replace
-	call MobileTradeAnim_DeleteSprites
-	ld a, $1
-	call Function108ad4
-.next2
-	ld c, 1
-	call WaitMobileTradeSpriteAnims
-	jr .loop2
-
-.done
-	call MobileTradeAnim_Next
-	ret
-; 1087cf
-
-MobileTradeAnim_GiveTrademon2: ; 1087cf
-	ld c, 40
-	ld hl, BGPals + 1 palettes
-	call Function1082f0
-	call Function108af4
-	call Function108b5a
-	depixel 9, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_25
-	call _InitSpriteAnimStruct
-	ld de, SFX_FORESIGHT
-	call PlaySFX
-	ld c, 10
-	call WaitMobileTradeSpriteAnims
-	xor a
-	ld [wcf64], a
-	depixel 9, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_23
-	call _InitSpriteAnimStruct
-.loop
-	ld a, [hSCY]
-	cp $90
-	jr z, .done
-	sub $8
-	ld [hSCY], a
-	ld c, 1
-	call WaitMobileTradeSpriteAnims
-	jr .loop
-
-.done
-	call GetMobileTradeAnimByte
-	ret
-; 108811
-
-MobileTradeAnim_05: ; 108811
-	ld c, 40
-	call WaitMobileTradeSpriteAnims
-	ld a, $1
-	ld [wcf64], a
-	ld de, SFX_SHARPEN
-	call PlaySFX
-	ld c, 60
-	call WaitMobileTradeSpriteAnims
-	depixel 30, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_24
-	call _InitSpriteAnimStruct
-	call GetMobileTradeAnimByte
-	ld de, SFX_THROW_BALL
-	call PlaySFX
-	ret
-; 108838
-
-MobileTradeAnim_06: ; 108838
-	ld c, 40
-	call WaitMobileTradeSpriteAnims
-	ld a, $1
-	ld [wcf64], a
-	ld de, SFX_SHARPEN
-	call PlaySFX
-	call GetMobileTradeAnimByte
-	ret
-; 10884c
-
-MobileTradeAnim_07: ; 10884c
-	ld c, 80
-	call DelayFrames
-	depixel 30, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_24
-	call _InitSpriteAnimStruct
-	call GetMobileTradeAnimByte
-	ld de, SFX_THROW_BALL
-	call PlaySFX
-	ret
-; 108863
-
-MobileTradeAnim_GetTrademon1: ; 108863
-	ld c, 40
-	call WaitMobileTradeSpriteAnims
-.loop
-	ld a, [hSCY]
-	cp $f8
-	jr z, .done
-	add $8
-	ld [hSCY], a
-	ld c, 1
-	call WaitMobileTradeSpriteAnims
-	jr .loop
-
-.done
-	callba DeinitializeAllSprites
-	depixel 9, 10, 2, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_25
-	call _InitSpriteAnimStruct
-	ld de, SFX_GLASS_TING_2
-	call PlaySFX
-	call Function108af4
-	call MobileTradeAnim_Next
-	ret
-; 108894
-
-MobileTradeAnim_GetTrademon2: ; 108894
-	ld c, 20
-	ld hl, BGPals + 1 palettes
-	call Function1082fa
-	ld de, SFX_GIVE_TRADEMON
-	call PlaySFX
-	ld c, 20
-	ld hl, BGPals + 1 palettes
-	call Function1082fa
-	call Function108af4
-.asm_1088ad
-	ld a, [hSCY]
-	cp $78
-	jr z, .asm_1088ee
-	inc a
-	inc a
-	ld [hSCY], a
-	cp $30
-	jr z, .asm_1088c5
-	cp $40
-	jr z, .asm_1088dd
-	cp $68
-	jr z, .asm_1088cf
-	jr .asm_1088e7
-
-.asm_1088c5
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_22
-	call _InitSpriteAnimStruct
-	jr .asm_1088e7
-
-.asm_1088cf
-	depixel 10, 11, 4, 0
-	ld a, SPRITE_ANIM_INDEX_MOBILE_22
-	call _InitSpriteAnimStruct
-	xor a
-	call Function108ad4
-	jr .asm_1088e7
-
-.asm_1088dd
-	call MobileTradeAnim_DeleteSprites
-	ld a, $1
-	call Function108ad4
-	jr .asm_1088e7
-
-.asm_1088e7
-	ld c, 1
-	call WaitMobileTradeSpriteAnims
-	jr .asm_1088ad
-
-.asm_1088ee
-	ld a, [hSCX]
-	cp $c
-	jr z, .asm_108906
-	inc a
-	inc a
-	ld [hSCX], a
-	cp -8
-	jr nz, .asm_1088e7
-	call MobileTradeAnim_DeleteSprites
-	ld c, 1
-	call WaitMobileTradeSpriteAnims
-	jr .asm_1088ee
-
-.asm_108906
-	call MobileTradeAnim_Next
-	ret
-; 10890a
-
-MobileTradeAnim_GetTrademon3: ; 10890a
-	ld c, 40
-	ld hl, BGPals + 6 palettes
-	call Function1082f0
-	call Function108af4
-	call GetMobileTradeAnimByte
-	ret
-; 108919
-
-MobileTradeAnim_0f: ; 108919
-	ld c, 40
-	call WaitMobileTradeSpriteAnims
-	callba DeinitializeAllSprites
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	call DisableLCD
-	call MobileTradeAnim_ClearVTiles
-	call MobileTradeAnim_ClearBGMap
-	call EnableLCD
-	call GetMobileTradeAnimByte
-	ret
-; 10893d
-
-MobileTradeAnim_FadeToBlack: ; 10893d
-.loop
-	ld a, [rBGP]
-	and a
-	jr z, .blank
-	sla a
-	sla a
-	call DmgToCgbBGPals
-	call DmgToCgbObjPal0
-	ld c, 4
-	call DelayFrames
-	jr .loop
-
-.blank
-	xor a
-	call DmgToCgbBGPals
-	call DmgToCgbObjPal0
-	call GetMobileTradeAnimByte
-	ret
-; 10895e
-
-Function10895e: ; 10895e
-	ld de, VTiles0 tile $30
-	jr asm_108966
-
-Function108963:
-	ld de, VTiles2 tile $31
-asm_108966
-	call DelayFrame
-	ld hl, VTiles2
-	lb bc, $a, $31 ; $a is the bank of ?????
-	call Request2bpp
-	call WaitTop
-	call MobileTradeAnim_ClearTilemap
-	hlcoord 7, 2
-	xor a
-	ld [hGraphicStartTile], a
-	lb bc, 7, 7
-	predef PlaceGraphic
-	call WaitBGMap
-	ret
-; 10898a
-
-Function10898a: ; 10898a
-	ld de, VTiles2
-	call MobileTradeAnim_GetFrontpic
-	call WaitTop
-	call MobileTradeAnim_ClearTilemap
-	hlcoord 7, 2
-	xor a
-	ld [hGraphicStartTile], a
-	lb bc, 7, 7
-	predef PlaceGraphic
-	call WaitBGMap
-	ret
-; 1089a8
-
-MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
-	ld de, wPlayerTrademonSpecies
-	ld a, [de]
-	cp EGG
-	jr z, MobileTradeAnim_DisplayEggData
-	call MobileTradeAnim_LoadMonTemplate
-	ld de, wPlayerTrademonSpecies
-	call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
-	ld de, wPlayerTrademonSpeciesName
-	call MobileTradeAnim_MonDisplay_PrintSpeciesName
-	ld a, [wPlayerTrademonCaughtData]
-	ld de, wPlayerTrademonOTName
-	call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
-	ld de, wPlayerTrademonID
-	call MobileTradeAnim_MonDisplay_PrintIDNumber
-	call MobileTradeAnim_MonDisplay_UpdateBGMap
-	ret
-
-MobileTradeAnim_DisplayReceivedMon:
-	ld de, wOTTrademonSpecies
-	ld a, [de]
-	cp EGG
-	jr z, MobileTradeAnim_DisplayEggData
-	call MobileTradeAnim_LoadMonTemplate
-	ld de, wOTTrademonSpecies
-	call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
-	ld de, wOTTrademonSpeciesName
-	call MobileTradeAnim_MonDisplay_PrintSpeciesName
-	ld a, [wOTTrademonCaughtData]
-	ld de, wOTTrademonOTName
-	call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
-	ld de, wOTTrademonID
-	call MobileTradeAnim_MonDisplay_PrintIDNumber
-	call MobileTradeAnim_MonDisplay_UpdateBGMap
-	ret
-
-MobileTradeAnim_DisplayEggData
-	call WaitTop
-	call MobileTradeAnim_ClearTilemap
-	ld a, VBGMap1 / $100
-	ld [hBGMapAddress + 1], a
-	hlcoord 5, 0
-	ld b, 6
-	ld c, 9
-	call TextBox
-	hlcoord 6, 2
-	ld de, .EggTemplate
-	call PlaceString
-	call MobileTradeAnim_MonDisplay_UpdateBGMap
-	ret
-; 108a1d
-
-.EggTemplate: ; 108a1d
-	db   "タマゴ"
-	next "おや/?????"
-	next "<ID>№<DOT>?????"
-	db   "@"
-; 108a33
-
-Function108a33: ; 108a33
-	call WaitTop
-	call MobileTradeAnim_ClearTilemap
-	ld a, VBGMap1 / $100
-	ld [hBGMapAddress + 1], a
-	hlcoord 5, 0
-	ld b, 6
-	ld c, 9
-	call TextBox
-	hlcoord 7, 4
-	ld de, .OddEgg
-	call PlaceString
-	call MobileTradeAnim_MonDisplay_UpdateBGMap
-	ret
-; 108a54
-
-.OddEgg: ; 108a54
-	db "なぞのタマゴ@"
-; 108a5b
-
-MobileTradeAnim_LoadMonTemplate: ; 108a5b
-	call WaitTop
-	call MobileTradeAnim_ClearTilemap
-	ld a, VBGMap1 / $100
-	ld [hBGMapAddress + 1], a
-	hlcoord 4, 0
-	ld b,  6
-	ld c, 10
-	call TextBox
-	hlcoord 5, 0
-	ld de, .MonTemplate
-	call PlaceString
-	ret
-; 108a79
-
-.MonTemplate: ; 108a79
-	db   "─ №<DOT>"
-	next ""
-	next "おや/"
-	next "<ID>№<DOT>"
-	db   "@"
-; 108a87
-
-MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
-	call WaitBGMap
-	call WaitTop
-	ld a, VBGMap0 / $100
-	ld [hBGMapAddress + 1], a
-	ret
-; 108a92
-
-MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
-	hlcoord 9, 0
-	lb bc, PRINTNUM_LEADINGZEROS | 1, 3
-	call PrintNum
-	ret
-; 108a9c
-
-MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
-	hlcoord 5, 2
-	call PlaceString
-	ret
-; 108aa3
-
-MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
-	cp $3
-	jr c, .got_gender
-	xor a
-.got_gender
-	push af
-	hlcoord 8, 4
-	call PlaceString
-	inc bc
-	pop af
-	ld hl, .GenderChars
-	ld d, 0
-	ld e, a
-	add hl, de
-	ld a, [hl]
-	ld [bc], a
-	ret
-; 108abb
-
-.GenderChars: ; 108abb
-	db " "
-	db "♂"
-	db "♀"
-; 108abe
-
-MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
-	hlcoord 8, 6
-	lb bc, PRINTNUM_LEADINGZEROS | 2, 5
-	call PrintNum
-	ret
-; 108ac8
-
-MobileTradeAnim_ClearTilemap: ; 108ac8
-	hlcoord 0, 0
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	ld a, " "
-	call ByteFill
-	ret
-; 108ad4
-
-Function108ad4: ; 108ad4
-	and a
-	jr z, .asm_108adc
-	ld de, GFX_1092c7
-	jr .asm_108adf
-
-.asm_108adc
-	ld de, GFX_1091c7
-.asm_108adf
-	ld a, $1
-	ld [rVBK], a
-	ld hl, VTiles2 tile $4a
-	lb bc, BANK(GFX_1092c7), 16
-	call Get2bpp_2
-	call DelayFrame
-	ld a, $0
-	ld [rVBK], a
-	ret
-; 108af4
-
-Function108af4: ; 108af4
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld a, [wcf65]
-	and $1
-	jr z, .copy_palette_109147
-	ld hl, Palette_109187
-	ld de, UnknOBPals
-	ld bc, 8 palettes
-	call CopyBytes
-	ld hl, Palette_109187
-	ld de, OBPals
-	ld bc, 8 palettes
-	call CopyBytes
-	jr .done_copy
-
-.copy_palette_109147
-	ld hl, Palette_109147
-	ld de, UnknOBPals
-	ld bc, 8 palettes
-	call CopyBytes
-	ld hl, Palette_109147
-	ld de, OBPals
-	ld bc, 8 palettes
-	call CopyBytes
-
-.done_copy
-	pop af
-	ld [rSVBK], a
-	ld a, %11100100 ; 3,2,1,0
-	call DmgToCgbObjPal0
-	ld a, %11100100 ; 3,2,1,0
-	call DmgToCgbBGPals
-	call DelayFrame
-	ret
-; 108b45
-
-Function108b45: ; 108b45
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
-	ld hl, UnknBGPals
-	ld a, e
-	ld [hli], a
-	ld d, a
-	ld [hli], a
-	pop af
-	ld [rSVBK], a
-	ret
-; 108b5a
-
-Function108b5a: ; 108b5a
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
-	ld hl, BGPals + 4 palettes
-	ld c, $10
-.loop
-	ld a, e
-	ld [hli], a
-	ld a, d
-	ld [hli], a
-	dec c
-	jr nz, .loop
-	pop af
-	ld [rSVBK], a
-	ld a, $1
-	ld [hCGBPalUpdate], a
-	ret
-; 108b78
-
-Function108b78: ; 108b78
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld a, c
-	and $2
-	jr z, .Orange
-	ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
-	jr .load_pal
-
-.Orange:
-	ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
-.load_pal
-	ld a, e
-	ld [hli], a
-	ld a, d
-	ld [hld], a
-	pop af
-	ld [rSVBK], a
-	ld a, $1
-	ld [hCGBPalUpdate], a
-	ret
-; 108b98
-
-Palette_108b98:
-; removed
-
-Function108b98: ; 108b98
-	ld d, a
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld a, [wcf65]
-	and $1
-	xor d
-	jr z, .asm_108bad
-	ld hl, Palette_108b98 + 1 palettes
-	jr .asm_108bb0
-
-.asm_108bad
-	ld hl, Palette_108b98
-.asm_108bb0
-	ld de, UnknBGPals + 7 palettes
-	ld bc, 8 palettes
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	ret
-; 108bbd
-
-MobileTradeAnim_DeleteSprites: ; 108bbd
-	callba DeinitializeAllSprites
-	call ClearSprites
-	ret
-; 108bc7
-
-Function108bc7: ; 108bc7 (42:4bc7)
-	ld a, [wcf64]
-	and a
-	ret z
-	ld hl, SPRITEANIMSTRUCT_YCOORD
-	add hl, bc
-	ld a, [hl]
-	cp -1 * 8 - 6
-	jr z, .delete
-	sub 1 * 8
-	ld [hl], a
-	ret
-
-.delete
-	callba DeinitializeSprite
-	ret
-
-Function108be0: ; 108be0 (42:4be0)
-	ld hl, SPRITEANIMSTRUCT_YCOORD
-	add hl, bc
-	ld a, [hl]
-	cp 9 * 8 + 2
-	ret z
-	add 1 * 8
-	ld [hl], a
-	ret
-; 108bec (42:4bec)
-
-Function108bec: ; 108bec
-	ld a, $90
-	ld [hWY], a
-	ld hl, .PlayerWillTradeMon
-	call PrintText
-	ld c, 80
-	call DelayFrames
-	ld hl, .ForPartnersMon
-	call PrintText
-	ld c, 80
-	call DelayFrames
-	ret
-; 108c07
-
-.PlayerWillTradeMon: ; 0x108c07
-	text_jump UnknownText_0x1bc787
-	db "@"
-; 0x108c0c
-
-.ForPartnersMon: ; 0x108c0c
-	text_jump UnknownText_0x1bc79d
-	db "@"
-; 0x108c11
-
-.UnusedTextPlayersMonTrade: ; 0x108c11
-	text_jump UnknownText_0x1bc7b0
-	db "@"
-; 0x108c16
-
-Function108c16: ; 108c16
-	ld a, $90
-	ld [hWY], a
-	ld hl, .TakeGoodCareOfMon
-	call PrintText
-	ld c, 80
-	call DelayFrames
-	ret
-; 108c26
-
-.TakeGoodCareOfMon: ; 0x108c26
-	text_jump UnknownText_0x1bc7c3
-	db "@"
-; 0x108c2b
-
-Function108c2b: ; 108c2b
-	ld a, $90
-	ld [hWY], a
-	ld hl, .PlayersMonTrade
-	call PrintText
-	ld c, 80
-	call DelayFrames
-	ret
-; 108c3b
-
-.PlayersMonTrade: ; 0x108c3b
-	text_jump UnknownText_0x1bc7dd
-	db "@"
-; 0x108c40
-
-Function108c40: ; 108c40
-	ld a, $90
-	ld [hWY], a
-	ld a, [wcf65]
-	and %10000000
-	jr z, .Getmon
-	ld hl, .CameBack
-	call PrintText
-	ld c, 80
-	call DelayFrames
-	ret
-
-.Getmon:
-	ld hl, .TakeGoodCareOf
-	call PrintText
-	ld c, 80
-	call DelayFrames
-	ret
-; 108c63
-
-.TakeGoodCareOf: ; 0x108c63
-	text_jump UnknownText_0x1bc7f0
-	db "@"
-; 0x108c68
-
-.CameBack: ; 0x108c68
-	text_jump UnknownText_0x1bc80a
-	db "@"
-; 0x108c6d
-
-Function108c6d: ; 108c6d
-	ld hl, LZ_108fe7
-	debgcoord 0, 0
-	call Decompress
-	ld hl, LZ_108fe7
-	debgcoord 0, 0, VBGMap1
-	call Decompress
-	ret
-; 108c80
-
-Function108c80: ; 108c80
-	ld a, $1
-	ld [rVBK], a
-	ld hl, LZ_1090a7
-	debgcoord 0, 0
-	call Decompress
-	ld hl, LZ_1090a7
-	debgcoord 0, 0, VBGMap1
-	call Decompress
-	ld a, $0
-	ld [rVBK], a
-	ret
-; 108c9b
-
-DebugMobileTrade: ; 108c9b
-; localization error: NAME_LENGTH (11) should be 6 here
-
-	ld hl, .DebugTradeData
-	ld a, [hli]
-	ld [wPlayerTrademonSpecies], a
-
-	ld de, wPlayerTrademonSenderName
-	ld c, NAME_LENGTH
-.your_name_loop
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .your_name_loop
-
-	ld de, wPlayerTrademonID
-	ld c, 2
-.your_id_loop
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .your_id_loop
-
-	ld de, wPlayerTrademonOTName
-	ld c, NAME_LENGTH
-.your_ot_loop
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .your_ot_loop
-
-	ld a, [hli]
-	ld [wOTTrademonSpecies], a
-
-	ld de, wOTTrademonSenderName
-	ld c, NAME_LENGTH
-.their_name_loop
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .their_name_loop
-
-	ld de, wOTTrademonID
-	ld c, 2
-.their_id_loop
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .their_id_loop
-
-	ld de, wOTTrademonOTName
-	ld c, NAME_LENGTH
-.their_ot_loop
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .their_ot_loop
-
-	ret
-; 108ce9
-
-.DebugTradeData:
-	db VENUSAUR
-	db "ゲーフり@@"
-	dw $0123
-	db "かびーん@@"
-	db CHARIZARD
-	db "クりーチャ@"
-	dw $0456
-	db "マツミヤ@@"
-; 108d07
-
-Function108d07: ; 108d07
-	ld a, [wc74e]
-	and $7f
-	cp $8
-	jr c, .asm_108d12
-	ld a, $7
-
-.asm_108d12
-	ld bc, 1 palettes
-	ld hl, Palette_1093c7
-	call AddNTimes
-	ld a, $5
-	ld de, UnknBGPals + 4 palettes
-	ld bc, 1 palettes
-	call FarCopyWRAM
-	ret
-; 108d27
-
-LZ_108d27:
-INCBIN "gfx/unknown/108d27.2bpp.lz"
-
-LZ_108da7:
-INCBIN "gfx/unknown/108da7.2bpp.lz"
-
-LZ_108fe7:
-INCBIN "gfx/unknown/108fe7.tilemap.lz"
-
-LZ_1090a7:
-INCBIN "gfx/unknown/1090a7.tilemap.lz"
-
-Palette_1090f7:
-; unreferenced
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-
-	RGB 31,  0, 25
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-
-	RGB  9, 19, 31
-	RGB  0,  0,  0
-
-Palette_109107:
-	RGB 18, 31, 15
-	RGB 20, 20, 20
-	RGB 11, 11, 11
-	RGB  0,  0,  0
-
-	RGB 31, 15,  1
-	RGB 14, 14, 31
-	RGB 12,  9, 31
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 14, 14, 31
-	RGB 12,  9, 31
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 20, 20, 20
-	RGB 11, 11, 11
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 31,  7,  9
-	RGB 18,  0,  1
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 20, 20, 20
-	RGB 11, 11, 11
-	RGB  0,  0,  0
-
-	RGB 31, 15,  1
-	RGB 18,  0, 30
-	RGB  9,  0, 17
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 18,  0, 30
-	RGB  9,  0, 17
-	RGB  0,  0,  0
-
-Palette_109147:
-	RGB 31, 31, 31
-	RGB 31, 31, 12
-	RGB 31, 13, 12
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB 31, 23, 15
-	RGB 31, 18,  7
-	RGB 31, 15,  0
-
-	RGB 31, 31, 31
-	RGB 20, 20, 20
-	RGB 11, 11, 11
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB 31,  0, 25
-	RGB 31,  0, 25
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  9, 19, 31
-	RGB  9, 19, 31
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-Palette_109187:
-	RGB 31, 31, 31
-	RGB 31, 31, 12
-	RGB 31, 13, 12
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB 31, 23, 15
-	RGB 31, 18,  7
-	RGB 31, 15,  0
-
-	RGB 31, 31, 31
-	RGB 20, 20, 20
-	RGB 11, 11, 11
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  9, 19, 31
-	RGB  9, 19, 31
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB 31,  0, 25
-	RGB 31,  0, 25
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-GFX_1091c7:
-INCBIN "gfx/unknown/1091c7.2bpp"
-GFX_1092c7:
-INCBIN "gfx/unknown/1092c7.2bpp"
-
-Palette_1093c7:
-	RGB 18, 31, 15
-	RGB  4, 13, 31
-	RGB  0,  0, 31
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 31, 31,  0
-	RGB 31, 15,  0
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB  9, 24,  0
-	RGB  2, 16,  0
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 31,  7,  9
-	RGB 18,  0,  1
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 28,  5, 31
-	RGB 17,  0, 17
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB  9,  9,  9
-	RGB  4,  4,  4
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 31, 13, 21
-	RGB 27,  7, 12
-	RGB  0,  0,  0
-
-	RGB 18, 31, 15
-	RGB 21, 20, 20
-	RGB 14, 14, 31
-	RGB  0,  0,  0
--- a/misc/mobile_45.asm
+++ /dev/null
@@ -1,7690 +1,0 @@
-
-SECTION "bank45", ROMX
-
-	charmap " ", $20 ; revert to ascii
-
-String_114000:
-	db "---", 0
-String_114004:
-	db "CGB-AAAA-00", 0, 0
-
-Unknown_114011: ; 114011
-	dw String_114033
-	dw String_11403a
-	dw String_114043
-	dw String_11404e
-	dw String_114053
-	dw String_114058
-	dw String_114062
-	dw String_114074
-	dw String_11408d
-	dw String_11409f
-	dw String_1140b8
-	dw String_1140e6
-	dw String_114110
-	dw String_11413f
-	dw String_114160
-	dw String_114160
-	dw String_114163
-
-String_114033: ; 114033
-	db "From: ", 0
-String_11403a: ; 11403a
-	db "Sender: ", 0
-String_114043: ; 114043
-	db "Reply-To: ", 0
-String_11404e: ; 11404e
-	db "To: ", 0
-String_114053: ; 114053
-	db "Cc: ", 0
-String_114058: ; 114058
-	db "Subject: ", 0
-String_114062: ; 114062
-	db "MIME-Version: 1.0", 0
-String_114074: ; 114074
-	db "X-Game-title: XXXXXXXXXX", 0
-String_11408d: ; 11408d
-	db "X-Game-code: CGB-", 0
-String_11409f: ; 11409f
-	db "X-GBmail-type: exclusive", 0
-String_1140b8: ; 1140b8
-	db "Content-Type: text/plain; charset=iso-2022-jp", 0
-String_1140e6: ; 1140e6
-	db "Content-Type: multipart/mixed; boundary=\"", 0
-String_114110: ; 114110
-	db "Content-Type: Application/Octet-Stream; name=\"", 0
-String_11413f: ; 11413f
-	db "Content-Transfer-Encoding:Base64", 0
-String_114160: ; 114160
-	db "--", 0
-String_114163: ; 114163
-	db ".", 0
-; 114165
-
-Jumptable_114165: ; 114165
-	dw Function114268
-	dw Function114269
-	dw Function11433c
-	dw Function1143b7
-	dw Function1144d1
-	dw Function114b55
-	dw Function114bbc
-	dw Function114cd9
-	dw Function114e62
-	dw Function1152b8
-	dw Function1154d4
-	dw Function1156cc
-	dw Function1159fb
-; 11417f
-
-Unknown_11417f: ; 11417f
-	dw .From
-	dw .Sender
-	dw .ReplyTo
-	dw .To
-	dw .CC
-	dw .Subject
-	dw .Date
-	dw .ContentType
-	dw .MimeVersion
-	dw .XMailer
-	dw .XGameTitle
-	dw .XGameCode
-	dw .XGBMailType
-
-.From: ; 114199
-	db "FROM:", 0
-.Sender: ; 11419f
-	db "SENDER:", 0
-.ReplyTo: ; 1141a7
-	db "REPLY-TO:", 0
-.To: ; 1141b1
-	db "TO:", 0
-.CC: ; 1141b5
-	db "CC:", 0
-.Subject: ; 1141b9
-	db "SUBJECT:", 0
-.Date: ; 1141c2
-	db "DATE:", 0
-.ContentType: ; 1141c8
-	db "CONTENT-TYPE:", 0
-.MimeVersion: ; 1141d6
-	db "MIME-VERSION:", 0
-.XMailer: ; 1141e4
-	db "X-MAILER:", 0
-.XGameTitle: ; 1141ee
-	db "X-GAME-TITLE:", 0
-.XGameCode: ; 1141fc
-	db "X-GAME-CODE:", 0
-.XGBMailType: ; 114209
-	db "X-GBMAIL-TYPE:", 0
-; 114218
-
-String_114218: ; 114218
-	db "NAME=", 0
-String_11421e: ; 11421e
-	db "MULTIPART", 0
-String_114228: ; 114228
-	db "BOUNDARY=", 0
-String_114232: ; 114232
-	db "=?ISO-2022-JP?B?", 0
-; 114243
-
-Function114243:: ; 114243
-	ld a, SRAM_ENABLE
-	ld [MBC3SRamEnable], a
-	ld a, [hFF8C]
-	push af ; if [$dc02] == 0, this is popped to pc.
-	push de
-	ld a, [$dc02]
-	add a
-	ld e, a
-	ld d, 0
-	ld hl, Jumptable_114165
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	pop de
-	jp hl
-
-; 11425c
-
-Function11425c: ; 11425c
-	ld [$dc02], a
-	pop af
-	ld [hFF8C], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ret
-
-; 114268
-
-Function114268: mobile
-
-; 114269
-
-Function114269: ; 114269
-	ld h, d
-	ld l, e
-	xor a
-	ld [$dc02], a
-	ld [$dc03], a
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc hl
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-.asm_114282
-	ld a, [de]
-	and a
-	jr z, .asm_1142a4
-	ld h, a
-	ld a, [$dc03]
-	and a
-	jr nz, .asm_114292
-	ld a, h
-	cp $80
-	jr nc, .asm_1142ae
-
-.asm_114292
-	ld a, h
-	cp $d
-	jr z, .asm_1142bb
-	xor a
-	ld [$dc02], a
-.asm_11429b
-	inc e
-	call z, Function114333
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_114282
-
-.asm_1142a4
-	ld a, [$dc03]
-	and a
-	jr nz, .asm_114303
-	ld b, $80
-	jr .asm_1142b0
-
-.asm_1142ae
-	ld b, $81
-
-.asm_1142b0
-	ld a, [$dc00]
-	ld c, a
-	ld a, $1
-	ld h, d
-	ld l, e
-	jp Function11425c
-
-.asm_1142bb
-	and a
-	jr z, .asm_1142a4
-	inc e
-	call z, Function114333
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1142a4
-	ld a, [de]
-	ld h, a
-	ld a, [$dc03]
-	and a
-	jr nz, .asm_1142d4
-	ld a, h
-	cp $80
-	jr nc, .asm_1142ae
-
-.asm_1142d4
-	ld a, h
-	cp $a
-	jr nz, .asm_1142ae
-	ld a, [$dc03]
-	and a
-	jr nz, .asm_11430d
-	ld a, [$dc02]
-	and a
-	jr nz, .asm_114309
-	ld a, $1
-	ld [$dc02], a
-	inc e
-	call z, Function114333
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1142a4
-	ld a, [de]
-	cp $20
-	jr z, .asm_11429b
-	cp $9
-	jr z, .asm_11429b
-	jr .asm_114282
-
-.asm_1142fe
-	xor a
-	ld b, a
-	jp Function11425c
-
-.asm_114303
-	xor a
-	ld b, $1
-	jp Function11425c
-
-.asm_114309
-	xor a
-	ld [$dc02], a
-
-.asm_11430d
-	ld a, [$dc02]
-	and a
-	jr nz, .asm_1142fe
-	ld a, $1
-	ld [$dc03], a
-	inc e
-	call z, Function114333
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1142a4
-	ld a, [de]
-	and a
-	jp z, .asm_1142a4
-	cp $2e
-	jp nz, .asm_114282
-	ld a, $1
-	ld [$dc02], a
-	jp .asm_11429b
-
-; 114333
-
-Function114333: ; 114333
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 11433c
-
-Function11433c: ; 11433c
-	push de
-	ld h, d
-	ld l, e
-	ld c, [hl]
-	inc hl
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld b, $b
-	call Function1143f3
-	cp $2
-	jr z, .asm_114358
-	and a
-	jr z, .asm_114360
-	pop hl
-.asm_114351
-	xor a
-	ld b, $3
-	jp Function11425c
-
-.asm_114357
-	pop hl
-
-.asm_114358
-	pop hl
-	ld a, $1
-	ld b, $82
-	jp Function11425c
-
-.asm_114360
-	ld a, h
-	ld [$dc03], a
-	pop hl
-	push bc
-	push de
-	ld c, [hl]
-	inc hl
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc hl
-	ld b, $c
-	call Function1143f3
-	cp $2
-	jr z, .asm_114357
-	and a
-	jr z, .asm_114381
-	xor a
-	ld b, $2
-	pop hl
-	pop hl
-	jp Function11425c
-
-.asm_114381
-	pop de
-	pop bc
-	ld a, [$dc03]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	call Function114c0b
-	ld hl, String_114004
-.asm_114394
-	ld de, $dc24
-.asm_114397
-	ld a, [hli]
-	and a
-	jr z, .asm_1143ad
-	ld b, a
-	ld a, [de]
-	inc de
-	cp b
-	jr z, .asm_114397
-.asm_1143a1
-	ld a, [hli]
-	and a
-	jr nz, .asm_1143a1
-	ld a, [hl]
-	and a
-	jr nz, .asm_114394
-	ld b, a
-	jp Function11425c
-
-.asm_1143ad
-	ld a, [de]
-	and a
-	jr nz, .asm_114351
-	xor a
-	ld b, $1
-	jp Function11425c
-
-; 1143b7
-
-Function1143b7: ; 1143b7
-	ld a, [de]
-	ld b, a
-	inc de
-	ld a, [de]
-	ld c, a
-	inc de
-	ld a, [de]
-	ld h, a
-	inc de
-	ld a, [de]
-	inc de
-	push de
-	ld d, a
-	ld e, h
-	call Function1143f3
-	cp $2
-	jr z, .asm_1143eb
-	and a
-	jr nz, .asm_1143ed
-	ld a, h
-	pop hl
-	push af
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	pop af
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld a, d
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld [hl], b
-	xor a
-	jp Function11425c
-
-.asm_1143eb
-	ld b, $82
-
-.asm_1143ed
-	ld a, $1
-	pop hl
-	jp Function11425c
-
-; 1143f3
-
-Function1143f3: ; 1143f3
-	call Function114412
-	and a
-	jr nz, .asm_11440d
-	ld a, $4
-	cp b
-	jr c, .asm_114407
-	jr z, .asm_114402
-.asm_114400
-	xor a
-	ret
-
-.asm_114402
-	ld a, $0
-	cp c
-	jr nc, .asm_114400
-
-.asm_114407
-	lb bc, $4, $0
-	ld a, $2
-	ret
-
-.asm_11440d
-	ld a, $1
-	ld b, $84
-	ret
-
-; 114412
-
-Function114412: ; 114412
-	ld a, c
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld hl, Unknown_11417f
-	ld a, b
-	add a
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld c, $0
-	jr .asm_11444a
-
-.asm_11442b
-	ld a, [de]
-	and a
-	jp z, .asm_1144c2
-	inc e
-	call z, Function1144c8
-	cp $d ; CR
-	jr nz, .asm_11442b
-	ld a, [de]
-	inc e
-	call z, Function1144c8
-	cp $a ; NL
-	jr nz, .asm_11442b
-	ld a, [de]
-	cp $2e ; .
-	jr z, .asm_1144ae
-	cp $d  ; CR
-	jr z, .asm_1144b8
-
-.asm_11444a
-	ld a, [$dc00]
-	ld [$dc02], a
-	ld a, [de]
-	and a
-	jr z, .asm_1144c2
-	inc e
-	call z, Function1144c8
-	cp $61 ; "a"
-	jr c, .asm_114462
-	cp $7b ; "z" + 1
-	jr nc, .asm_114462
-	sub $20
-
-.asm_114462
-	ld b, a
-	ld a, [hl]
-	and a
-	jr z, .asm_114476
-	cp b
-	jr nz, .asm_11446e
-	inc c
-	inc hl
-	jr .asm_11444a
-
-.asm_11446e
-	ld a, c
-	and a
-	jr z, .asm_11442b
-	dec c
-	dec hl
-	jr .asm_11446e
-
-.asm_114476
-	ld a, $20 ; " "
-	cp b
-	jr z, .asm_114481
-	ld a, $a ; NL
-	cp b
-	jr z, .asm_114481
-	dec de
-
-.asm_114481
-	ld h, d
-	ld l, e
-	ld bc, NULL
-.asm_114486
-	ld a, [de]
-	and a
-	jr z, .asm_1144c2
-	inc bc
-	inc e
-	call z, Function1144c8
-	cp $d ; CR
-	jr nz, .asm_114486
-	ld a, [de]
-	inc bc
-	inc e
-	call z, Function1144c8
-	cp $a ; NL
-	jr nz, .asm_114486
-	ld a, [de]
-	cp $20 ; " "
-	jr z, .asm_114486
-	cp $9 ; TAB
-	jr z, .asm_114486
-	ld d, h
-	ld e, l
-	ld a, [$dc02]
-	ld h, a
-	xor a
-	ret
-
-.asm_1144ae
-	inc e
-	call z, Function1144c8
-	ld a, [de]
-	cp $d ; CR
-	jp nz, .asm_11442b
-
-.asm_1144b8
-	inc e
-	call z, Function1144c8
-	ld a, [de]
-	cp $a ; NL
-	jp nz, .asm_11442b
-
-.asm_1144c2
-	ld a, $0
-	ld [hl], a
-	ld a, $1
-	ret
-
-; 1144c8
-
-Function1144c8: ; 1144c8
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 1144d1
-
-Function1144d1: ; 1144d1
-	call Function114561
-	dec de
-	dec de
-	push de
-	inc de
-	inc de
-	inc de
-	inc hl
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc hl
-	ld a, [de]
-	ld [hld], a
-	dec de
-	ld a, [de]
-	ld [hl], a
-	xor a
-	ld [BigDoll], a
-	ld [$dc17], a
-	ld a, $2
-	ld [$dc0e], a
-	ld hl, $dc03
-	ld c, [hl]
-	inc hl
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	call Function114576
-	cp $2
-	jr z, .asm_11455b
-	and a
-	jr z, .asm_114511
-	ld a, $1
-	ld [$dc0d], a
-	call Function1146fa
-	and a
-	jr nz, .asm_11455b
-	jr .asm_11451c
-
-.asm_114511
-	call Function1146a4
-	and a
-	jr nz, .asm_11455b
-	ld a, $2
-	ld [$dc0d], a
-
-.asm_11451c
-	pop hl
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld a, [$dc0d]
-	ld [de], a
-	ld b, $0
-	ld a, [BigDoll]
-	and a
-	jr z, .asm_114537
-	ld b, $1
-
-.asm_114537
-	ld hl, $dc06
-	ld a, [hl]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld hl, $dc09
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	dec de
-	ld a, d
-	or e
-	jr z, .asm_114559
-	ld hl, wCurrMapTriggerCount
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	xor a
-	ld [de], a
-	jp Function11425c
-
-.asm_114559
-	ld b, $83
-
-.asm_11455b
-	pop hl
-	ld a, $1
-	jp Function11425c
-
-; 114561
-
-Function114561: ; 114561
-	ld hl, $dc03
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hl], a
-	ret
-
-; 114576
-
-Function114576: ; 114576
-	xor a
-	ld [Bed], a
-	ld b, $7
-	call Function1143f3
-	cp $2
-	jr z, .asm_1145b6
-	and a
-	jr nz, .asm_1145b4
-	ld a, h
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	push hl
-	push de
-	push bc
-	ld hl, $dc24
-	call Function115d53
-	call Function1145c5
-	pop bc
-	pop de
-	pop hl
-	and a
-	jr z, .asm_1145bf
-	ld a, b
-	and a
-	jr nz, .asm_1145ba
-	ld a, h
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld hl, String_114218
-	call Function114acf
-
-.asm_1145b4
-	xor a
-	ret
-
-.asm_1145b6
-	ld b, $82
-	jr .asm_1145bc
-
-.asm_1145ba
-	ld b, $81
-
-.asm_1145bc
-	ld a, $2
-	ret
-
-.asm_1145bf
-	ld a, $1
-	ld [Bed], a
-	ret
-
-; 1145c5
-
-Function1145c5: ; 1145c5
-	ld hl, $dc24
-	ld de, String_11421e
-	ld c, $0
-.asm_1145cd
-	ld a, [hli]
-	and a
-	jr z, .asm_1145ef
-	cp $20
-	jr z, .asm_1145cd
-	cp $d
-	jr z, .asm_1145f8
-	cp $61
-	jr c, .asm_1145e3
-	cp $7b
-	jr nc, .asm_1145e3
-	sub $20
-
-.asm_1145e3
-	ld b, a
-	ld a, [de]
-	and a
-	jr z, .asm_11460e
-	inc de
-	cp b
-	jr z, .asm_1145cd
-	dec de
-	jr .asm_1145cd
-
-.asm_1145ef
-	ld b, $0
-	jr .asm_1145f5
-
-.asm_1145f3
-	ld b, $81
-
-.asm_1145f5
-	ld a, $1
-	ret
-
-.asm_1145f8
-	ld a, [hli]
-	and a
-	jr z, .asm_1145f3
-	cp $a
-	jr nz, .asm_1145f3
-	ld a, [hli]
-	and a
-	jr z, .asm_1145f3
-	cp $20
-	jr z, .asm_1145cd
-	cp $9
-	jr z, .asm_1145cd
-	jr .asm_1145f3
-
-.asm_11460e
-	ld a, c
-	and a
-	jr nz, .asm_114619
-	ld c, $1
-	ld de, String_114228
-	jr .asm_1145cd
-
-.asm_114619
-	dec hl
-	ld a, [hl]
-	cp $22
-	jr nz, .asm_114620
-	inc hl
-
-.asm_114620
-	ld de, $ddc8
-	ld b, $0
-	ld c, $40
-.asm_114627
-	ld a, [hli]
-	cp $22
-	jr z, .asm_114636
-	cp $d
-	jr z, .asm_114636
-	ld [de], a
-	inc de
-	inc b
-	dec c
-	jr nz, .asm_114627
-
-.asm_114636
-	ld a, b
-	ld [PartyMon5Defense], a
-	xor a
-	ret
-
-; 11463c
-
-Function11463c: ; 11463c
-	ld a, [$dc00]
-	push af
-	push de
-	ld hl, $ddc8
-	ld a, [PartyMon5Defense]
-	ld b, a
-.asm_114648
-	ld a, [de]
-	ld c, a
-	ld a, [hli]
-	cp c
-	jr nz, .asm_11468a
-	inc e
-	call z, Function11469b
-	dec b
-	jr nz, .asm_114648
-	ld a, [de]
-	cp $2d
-	jr z, .asm_114673
-	cp $d
-	jr nz, .asm_11468a
-	xor a
-	ld [Carpet], a
-.asm_114662
-	inc e
-	call z, Function11469b
-	ld a, [de]
-	cp $a
-	jr nz, .asm_11468a
-	inc e
-	call z, Function11469b
-	xor a
-	pop hl
-	pop hl
-	ret
-
-.asm_114673
-	inc e
-	call z, Function11469b
-	ld a, [de]
-	cp $2d
-	jr nz, .asm_11468a
-	inc e
-	call z, Function11469b
-	ld a, $1
-	ld [Carpet], a
-	ld a, [de]
-	cp $d
-	jr z, .asm_114662
-
-.asm_11468a
-	pop de
-	pop af
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	xor a
-	ld [Carpet], a
-	ld a, $1
-	ret
-
-; 11469b
-
-Function11469b: ; 11469b
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 1146a4
-
-Function1146a4: ; 1146a4
-	call Function114867
-	and a
-	jr nz, .asm_1146e4
-	ld hl, $dc03
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	call Function114a18
-	and a
-	jr nz, .asm_1146e8
-	call Function1148c2
-	and a
-	jr nz, .asm_1146e4
-	ld hl, $dc03
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	call Function114a7a
-	and a
-	jr nz, .asm_1146e8
-.asm_1146da
-	dec bc
-	dec bc
-	call Function1149cc
-	and a
-	jr nz, .asm_1146e4
-	xor a
-	ret
-
-.asm_1146e4
-	ld b, $83
-	jr .asm_1146f7
-
-.asm_1146e8
-	ld a, [$dc17]
-	and a
-	jr z, .asm_1146f5
-	ld a, $1
-	ld [BigDoll], a
-	jr .asm_1146da
-
-.asm_1146f5
-	ld b, $81
-
-.asm_1146f7
-	ld a, $1
-	ret
-
-; 1146fa
-
-Function1146fa: ; 1146fa
-	call Function114867
-	and a
-	jp nz, .asm_11478a
-	ld hl, $dc03
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	call Function114a18
-	and a
-	jp nz, .asm_11478e
-	call Function1149cc
-	and a
-	jp nz, .asm_11478a
-	ld a, $1
-	ld [$dc0e], a
-	ld a, [$dc00]
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, $1
-	ld [RightOrnament], a
-	call Function1147cd
-	and a
-	jp nz, .asm_1147b7
-.asm_114737
-	call Function114843
-	cp $1
-	jr nz, .asm_114749
-	ld a, [$dc17]
-	and a
-	jr z, .asm_114794
-	ld a, $1
-	ld [BigDoll], a
-
-.asm_114749
-	call Function11494d
-	and a
-	jr nz, .asm_11478a
-	ld a, [BigDoll]
-	and a
-	jr nz, .asm_114786
-	ld hl, $dc03
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	call Function1147cd
-	and a
-	jr nz, .asm_1147b7
-	ld a, [$dc0e]
-	cp $3
-	jr nz, .asm_114773
-	dec bc
-	dec bc
-
-.asm_114773
-	call Function1149cc
-	and a
-	jr nz, .asm_11478a
-	ld a, [$dc0d]
-	inc a
-	ld [$dc0d], a
-	ld a, [BigDoll]
-	and a
-	jr z, .asm_114799
-
-.asm_114786
-	ld b, $1
-	jr .asm_1147cb
-
-.asm_11478a
-	ld b, $83
-	jr .asm_114796
-
-.asm_11478e
-	ld a, [$dc17]
-	and a
-	jr nz, .asm_114796
-
-.asm_114794
-	ld b, $81
-
-.asm_114796
-	ld a, $1
-	ret
-
-.asm_114799
-	ld a, [Carpet]
-	and a
-	jr z, .asm_114737
-	jr .asm_1147cb
-
-	ld hl, $dc03
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	call Function114a7a
-	and a
-	jr z, .asm_1147cb
-	xor a
-	ld [BigDoll], a
-
-.asm_1147b7
-	ld a, [$dc17]
-	and a
-	jr z, .asm_114794
-	ld a, $1
-	ld [BigDoll], a
-	ld a, [$dc0d]
-	cp $1
-	jr nz, .asm_114773
-	ld b, $1
-
-.asm_1147cb
-	xor a
-	ret
-
-; 1147cd
-
-Function1147cd: ; 1147cd
-	ld bc, NULL
-	ld a, [RightOrnament]
-	and a
-	jr nz, .asm_11480c
-.asm_1147d6
-	ld a, [de]
-	and a
-	jr z, .asm_11482f
-	inc e
-	call z, Function11483a
-	inc bc
-	cp $d
-	jr nz, .asm_1147d6
-	ld a, [de]
-	cp $a
-	jr nz, .asm_11482f
-.asm_1147e8
-	inc bc
-	inc e
-	call z, Function11483a
-	ld a, [de]
-	cp $20
-	jr z, .asm_114827
-	cp $9
-	jr z, .asm_114827
-	cp $d
-	jr nz, .asm_11482b
-	inc e
-	call z, Function11483a
-	ld a, [de]
-	cp $a
-	jr nz, .asm_11482f
-	inc e
-	call z, Function11483a
-	ld a, h
-	and a
-	jr z, .asm_11480c
-	dec bc
-
-.asm_11480c
-	ld a, [de]
-	cp $2d
-	jr nz, .asm_1147d6
-	inc e
-	call z, Function11483a
-	ld a, [de]
-	cp $2d
-	jr nz, .asm_1147d6
-	inc e
-	call z, Function11483a
-	push bc
-	call Function11463c
-	pop bc
-	and a
-	jr nz, .asm_1147d6
-	ret
-
-.asm_114827
-	ld h, $1
-	jr .asm_1147e8
-
-.asm_11482b
-	ld h, $0
-	jr .asm_11480c
-
-.asm_11482f
-	and a
-	jr nz, .asm_114837
-	ld a, $1
-	ld [$dc17], a
-
-.asm_114837
-	ld a, $1
-	ret
-
-; 11483a
-
-Function11483a: ; 11483a
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 114843
-
-Function114843: ; 114843
-	ld a, [$dc00]
-	push af
-	push de
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	call Function114a18
-	and a
-	jr nz, .asm_11485f
-	pop de
-	pop af
-	ld [$dc00], a
-	ld hl, String_114218
-	call Function114acf
-	ret
-
-.asm_11485f
-	pop de
-	pop af
-	ld [$dc00], a
-	ld a, $1
-	ret
-
-; 114867
-
-Function114867: ; 114867
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld a, $2
-	ld [de], a
-	inc e
-	call z, Function1148b9
-	ld a, $1
-	ld [de], a
-	inc e
-	call z, Function1148b9
-	ld hl, $dc03
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1148b9
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1148b9
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1148b9
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	inc hl
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	ld d, $5
-.asm_1148a9
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1148b6
-	dec d
-	jr nz, .asm_1148a9
-	ld [hl], b
-	dec hl
-	ld [hl], c
-	xor a
-	ret
-
-.asm_1148b6
-	ld a, $1
-	ret
-
-; 1148b9
-
-Function1148b9: ; 1148b9
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 1148c2
-
-Function1148c2: ; 1148c2
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld a, c
-	ld [de], a
-	inc e
-	call z, Function114944
-	ld a, b
-	ld [de], a
-	inc e
-	call z, Function114944
-	ld a, [$dc0e]
-	ld [de], a
-	inc e
-	call z, Function114944
-	cp $3
-	jr nz, .asm_114904
-	ld hl, Plant
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function114944
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function114944
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function114944
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function114944
-
-.asm_114904
-	ld hl, $dc03
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function114944
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function114944
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function114944
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	inc hl
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	ld a, [$dc0e]
-	cp $3
-	jr z, .asm_114932
-	ld d, $6
-	jr .asm_114934
-
-.asm_114932
-	ld d, $a
-
-.asm_114934
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_114941
-	dec d
-	jr nz, .asm_114934
-	ld [hl], b
-	dec hl
-	ld [hl], c
-	xor a
-	ret
-
-.asm_114941
-	ld a, $1
-	ret
-
-; 114944
-
-Function114944: ; 114944
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 11494d
-
-Function11494d: ; 11494d
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld a, [$dc0e]
-	ld [de], a
-	inc e
-	call z, Function1149c3
-	cp $3
-	jr nz, .asm_114983
-	ld hl, Plant
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1149c3
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1149c3
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1149c3
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1149c3
-
-.asm_114983
-	ld hl, $dc03
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1149c3
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1149c3
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function1149c3
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	inc hl
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	ld a, [$dc0e]
-	cp $3
-	jr z, .asm_1149b1
-	ld d, $4
-	jr .asm_1149b3
-
-.asm_1149b1
-	ld d, $8
-
-.asm_1149b3
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1149c0
-	dec d
-	jr nz, .asm_1149b3
-	ld [hl], b
-	dec hl
-	ld [hl], c
-	xor a
-	ret
-
-.asm_1149c0
-	ld a, $1
-	ret
-
-; 1149c3
-
-Function1149c3: ; 1149c3
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 1149cc
-
-Function1149cc: ; 1149cc
-	ld hl, $dc06
-	ld a, [hl]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	push de
-	ld hl, $dc09
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	dec de
-	ld a, d
-	or e
-	jr z, .asm_114a0b
-	dec de
-	ld a, d
-	or e
-	jr z, .asm_114a0b
-	ld [hl], d
-	dec hl
-	ld [hl], e
-	ld hl, wCurrMapTriggerCount
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld a, c
-	ld [de], a
-	inc e
-	call z, Function114a0f
-	ld a, b
-	ld [de], a
-	inc e
-	call z, Function114a0f
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	pop de
-	xor a
-	ret
-
-.asm_114a0b
-	pop de
-	ld a, $1
-	ret
-
-; 114a0f
-
-Function114a0f: ; 114a0f
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 114a18
-
-Function114a18: ; 114a18
-	ld bc, NULL
-	ld h, b
-.asm_114a1c
-	inc bc
-	ld a, [de]
-	and a
-	jr z, .asm_114a66
-	inc e
-	call z, Function114a71
-	cp $d
-	jr nz, .asm_114a1c
-	ld a, [de]
-	cp $a
-	jr nz, .asm_114a66
-.asm_114a2e
-	inc bc
-	inc e
-	call z, Function114a71
-	ld a, [de]
-	cp $20
-	jr z, .asm_114a5e
-	cp $9
-	jr z, .asm_114a5e
-	cp $d
-	jr nz, .asm_114a62
-	inc e
-	call z, Function114a71
-	ld a, [de]
-	cp $a
-	jr nz, .asm_114a66
-	inc e
-	call z, Function114a71
-	ld a, h
-	and a
-	jr z, .asm_114a52
-	dec bc
-
-.asm_114a52
-	ld hl, $dc03
-	ld a, [$dc00]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	xor a
-	ret
-
-.asm_114a5e
-	ld h, $1
-	jr .asm_114a2e
-
-.asm_114a62
-	ld h, $0
-	jr .asm_114a1c
-
-.asm_114a66
-	and a
-	jr nz, .asm_114a6e
-	ld a, $1
-	ld [$dc17], a
-
-.asm_114a6e
-	ld a, $1
-	ret
-
-; 114a71
-
-Function114a71: ; 114a71
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 114a7a
-
-Function114a7a: ; 114a7a
-	ld bc, NULL
-.asm_114a7d
-	inc bc
-	ld a, [de]
-	and a
-	jr z, .asm_114abb
-	inc e
-	call z, Function114ac6
-	cp $d
-	jr nz, .asm_114a7d
-	ld a, [de]
-	cp $a
-	jr nz, .asm_114abb
-	inc e
-	call z, Function114ac6
-	inc bc
-	ld a, [de]
-	cp $2e
-	jr nz, .asm_114a7d
-	inc e
-	call z, Function114ac6
-	ld a, [de]
-	cp $d
-	jr nz, .asm_114a7d
-	inc e
-	call z, Function114ac6
-	ld a, [de]
-	cp $a
-	jr nz, .asm_114abb
-	inc e
-	call z, Function114ac6
-	ld hl, $dc03
-	ld a, [$dc00]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	xor a
-	ret
-
-.asm_114abb
-	and a
-	jr nz, .asm_114ac3
-	ld a, $1
-	ld [$dc17], a
-
-.asm_114ac3
-	ld a, $1
-	ret
-
-; 114ac6
-
-Function114ac6: ; 114ac6
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 114acf
-
-Function114acf: ; 114acf
-.asm_114acf
-	push hl
-	push bc
-.asm_114ad1
-	ld a, [hl]
-	ld b, a
-	ld a, [de]
-	inc e
-	call z, Function114b4c
-	cp $61
-	jr c, .asm_114ae2
-	cp $7b
-	jr nc, .asm_114ae2
-	sub $20
-
-.asm_114ae2
-	cp b
-	jr z, .asm_114af4
-	pop bc
-	dec bc
-	push bc
-	ld a, b
-	or c
-	jr nz, .asm_114ad1
-.asm_114aec
-	ld a, $2
-	ld [$dc0e], a
-	pop bc
-	pop hl
-	ret
-
-.asm_114af4
-	inc hl
-.asm_114af5
-	ld a, [hli]
-	and a
-	jr z, .asm_114b19
-	ld b, a
-	ld a, [de]
-	inc e
-	call z, Function114b4c
-	cp $61
-	jr c, .asm_114b09
-	cp $7b
-	jr nc, .asm_114b09
-	sub $20
-
-.asm_114b09
-	cp b
-	jr nz, .asm_114b15
-	pop bc
-	dec bc
-	push bc
-	ld a, b
-	or c
-	jr nz, .asm_114af5
-	jr .asm_114aec
-
-.asm_114b15
-	pop bc
-	pop hl
-	jr .asm_114acf
-
-.asm_114b19
-	ld b, $0
-	ld c, $40
-	ld a, [de]
-	cp $22
-	jr nz, .asm_114b26
-	inc e
-	call z, Function114b4c
-
-.asm_114b26
-	ld hl, Plant
-	ld a, [$dc00]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	inc hl
-.asm_114b31
-	ld a, [de]
-	cp $22
-	jr z, .asm_114b42
-	cp $d
-	jr z, .asm_114b42
-	inc e
-	call z, Function114b4c
-	inc b
-	dec c
-	jr nz, .asm_114b31
-
-.asm_114b42
-	ld [hl], b
-	pop bc
-	pop hl
-	ld a, $3
-	ld [$dc0e], a
-	xor a
-	ret
-
-; 114b4c
-
-Function114b4c: ; 114b4c
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 114b55
-
-Function114b55: ; 114b55
-	call Function114561
-	ld b, $0
-	ld hl, $dc03
-	ld c, [hl]
-	inc hl
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $dc24
-.asm_114b65
-	push de
-	push bc
-	push hl
-	call Function1143f3
-	cp $2
-	jr z, .asm_114bb2
-	and a
-	jr nz, .asm_114b8c
-	ld a, h
-	pop hl
-	inc hl
-	ld [hld], a
-	ld a, $1
-	ld [hli], a
-	inc hl
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	inc hl
-	ld [hl], c
-	inc hl
-	ld [hl], b
-	inc hl
-.asm_114b82
-	pop bc
-	pop de
-	inc b
-	ld a, b
-	cp $d
-	jr z, .asm_114b96
-	jr .asm_114b65
-
-.asm_114b8c
-	pop hl
-	xor a
-rept 6
-	ld [hli], a
-endr
-	jr .asm_114b82
-
-.asm_114b96
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc hl
-	ld bc, $004e
-	ld hl, $dc24
-	call Function115d6a
-	jp Function11425c
-
-.asm_114bb2
-	ld a, $1
-	pop bc
-	pop bc
-	pop bc
-	ld b, $82
-	jp Function11425c
-
-; 114bbc
-
-Function114bbc: ; 114bbc
-	ld h, d
-	ld l, e
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld e, a
-	ld d, [hl]
-	inc hl
-	push hl
-	call Function1143f3
-	cp $2
-	jr z, .asm_114c03
-	and a
-	jr nz, .asm_114bff
-	ld a, h
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	call Function114c0b
-	ld hl, $dc24
-	call Function114c5e
-	ld a, b
-	or c
-	jr z, .asm_114bff
-	pop hl
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld e, a
-	ld d, [hl]
-	ld hl, $dc24
-	push bc
-	call Function115d6a
-	pop hl
-	jp Function11425c
-
-.asm_114bff
-	ld b, $84
-	jr .asm_114c05
-
-.asm_114c03
-	ld b, $82
-
-.asm_114c05
-	ld a, $1
-	pop hl
-	jp Function11425c
-
-; 114c0b
-
-Function114c0b: ; 114c0b
-	ld hl, $dc24
-	push bc
-	call Function115d53
-	pop bc
-	ld hl, $dc24
-	ld d, h
-	ld e, l
-.asm_114c18
-	ld a, [hli]
-	cp $d
-	jr z, .asm_114c34
-	ld [de], a
-	inc de
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_114c18
-.asm_114c24
-	xor a
-	ld [de], a
-	ld hl, $dc24
-	ld bc, NULL
-.asm_114c2c
-	ld a, [hli]
-	inc bc
-	and a
-	jr nz, .asm_114c2c
-	dec bc
-	xor a
-	ret
-
-.asm_114c34
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_114c24
-	ld a, [hli]
-	cp $a
-	jr nz, .asm_114c18
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_114c24
-	ld a, [hli]
-	cp $20
-	jr z, .asm_114c4e
-	cp $9
-	jr z, .asm_114c4e
-	jr .asm_114c24
-
-.asm_114c4e
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_114c24
-	jr .asm_114c18
-
-; 114c55
-
-Function114c55: ; 114c55
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 114c5e
-
-Function114c5e: ; 114c5e
-	ld de, PartyMon5Defense
-	push hl
-.asm_114c62
-	ld a, [hli]
-	ld [de], a
-	inc de
-	and a
-	jr z, .asm_114cc6
-	cp $3d
-	jr nz, .asm_114c62
-	ld a, [hli]
-	ld [de], a
-	inc de
-	cp $3f
-	jr nz, .asm_114c62
-	dec de
-	dec de
-.asm_114c75
-	ld a, [hli]
-	cp $3f
-	jr nz, .asm_114c75
-	ld a, [hli]
-	cp $42
-	jr nz, .asm_114cb8
-	inc hl
-	ld bc, NULL
-	push hl
-.asm_114c84
-	inc bc
-	ld a, [hli]
-	cp $3f
-	jr nz, .asm_114c84
-	inc bc
-	ld a, [hli]
-	cp $3d
-	jr nz, .asm_114c84
-	dec bc
-	dec bc
-	ld a, l
-	ld [$dc03], a
-	ld a, h
-	ld [$dc04], a
-	pop hl
-	push de
-	call Function115c49
-	pop de
-	ld h, d
-	ld l, e
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-.asm_114ca6
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_114ca6
-	ld a, [$dc03]
-	ld l, a
-	ld a, [$dc04]
-	ld h, a
-	jr .asm_114c62
-
-.asm_114cb8
-	ld a, $3d
-	ld [de], a
-	inc de
-	ld a, $3f
-	ld [de], a
-	inc de
-.asm_114cc0
-	ld a, [hli]
-	ld [de], a
-	inc de
-	and a
-	jr nz, .asm_114cc0
-
-.asm_114cc6
-	ld [de], a
-	pop hl
-	ld de, PartyMon5Defense
-	ld bc, NULL
-.asm_114cce
-	inc bc
-	ld a, [de]
-	ld [hli], a
-	inc de
-	and a
-	jr z, .asm_114cd7
-	jr .asm_114cce
-
-.asm_114cd7
-	dec bc
-	ret
-
-; 114cd9
-
-Function114cd9: ; 114cd9
-	ld h, d
-	ld l, e
-	ld b, [hl]
-	inc hl
-	ld c, [hl]
-	inc hl
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc hl
-	push hl
-	call Function1143f3
-	and a
-	jr nz, .asm_114d33
-	ld [$dc03], a
-	ld [$dc04], a
-	ld a, h
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld hl, $dc24
-	call Function114d39
-	ld hl, $dc24
-	call Function114d99
-	pop hl
-	push hl
-rept 4
-	inc hl
-endr
-	ld a, [hld]
-	cp b
-	jr c, .asm_114d2d
-	jr z, .asm_114d29
-.asm_114d11
-	pop hl
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld hl, PartyMon5Defense
-	call Function115d6a
-	xor a
-	jp Function11425c
-
-.asm_114d29
-	ld a, [hli]
-	cp c
-	jr nc, .asm_114d11
-
-.asm_114d2d
-	ld b, $83
-	jr .asm_114d33
-
-	ld b, $82
-
-.asm_114d33
-	pop hl
-	ld a, $1
-	jp Function11425c
-
-; 114d39
-
-Function114d39: ; 114d39
-.asm_114d39
-	ld a, [$dc04]
-	and a
-	jr nz, .asm_114d4a
-	ld a, [de]
-	cp $28
-	jr z, .asm_114d55
-	cp $22
-	jr z, .asm_114d55
-	jr .asm_114d7f
-
-.asm_114d4a
-	ld a, [de]
-	cp $29
-	jr z, .asm_114d5f
-	cp $22
-	jr z, .asm_114d6f
-	jr .asm_114d84
-
-.asm_114d55
-	ld [$dc03], a
-	ld a, $1
-	ld [$dc04], a
-	jr .asm_114d84
-
-.asm_114d5f
-	ld a, [$dc03]
-	cp $28
-	jr nz, .asm_114d84
-	xor a
-	ld [$dc03], a
-	ld [$dc04], a
-	jr .asm_114d84
-
-.asm_114d6f
-	ld a, [$dc03]
-	cp $22
-	jr nz, .asm_114d84
-	xor a
-	ld [$dc03], a
-	ld [$dc04], a
-	jr .asm_114d84
-
-.asm_114d7f
-	cp $20
-	jr z, .asm_114d84
-	ld [hli], a
-
-.asm_114d84
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_114d96
-	inc e
-	jr nz, .asm_114d39
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	jr .asm_114d39
-
-.asm_114d96
-	xor a
-	ld [hli], a
-	ret
-
-; 114d99
-
-Function114d99: ; 114d99
-	ld de, PartyMon5Defense
-	xor a
-	ld [de], a
-.asm_114d9e
-	ld a, [hli]
-	call Function114df1
-	and a
-	jr z, .asm_114dde
-	cp $40
-	jr nz, .asm_114d9e
-	dec hl
-.asm_114daa
-	dec hl
-	ld a, [hl]
-	call Function114e2d
-	and a
-	jr z, .asm_114daa
-	inc hl
-	push hl
-	ld b, $0
-.asm_114db6
-	ld a, [hli]
-	cp $40
-	jr z, .asm_114dc1
-	call Function114e2d
-	and a
-	jr nz, .asm_114dc4
-
-.asm_114dc1
-	inc b
-	jr .asm_114db6
-
-.asm_114dc4
-	pop hl
-	ld a, [PartyMon5Defense]
-	and a
-	jr z, .asm_114dd2
-	ld a, $2c
-	inc de
-	ld [de], a
-	ld a, [PartyMon5Defense]
-
-.asm_114dd2
-	inc a
-	ld [PartyMon5Defense], a
-.asm_114dd6
-	inc de
-	ld a, [hli]
-	ld [de], a
-	dec b
-	jr nz, .asm_114dd6
-	jr .asm_114d9e
-
-.asm_114dde
-	inc de
-	xor a
-	ld [de], a
-	ld a, $dd
-	cpl
-	ld h, a
-	ld a, $c8
-	cpl
-	ld l, a
-	inc hl
-	add hl, de
-	ld b, h
-	ld c, l
-	inc bc
-	inc bc
-	xor a
-	ret
-
-; 114df1
-
-Function114df1: ; 114df1
-	cp $1b
-	ret nz
-	ld a, [hli]
-	and a
-	jr z, .asm_114e2b
-	cp $24
-	jr nz, .asm_114e09
-	ld a, [hli]
-	and a
-	jr z, .asm_114e2b
-	cp $42
-	jr z, .asm_114e0b
-	cp $40
-	jr z, .asm_114e0b
-	dec hl
-
-.asm_114e09
-	dec hl
-	ret
-
-.asm_114e0b
-	ld a, [hli]
-	and a
-	jr z, .asm_114e2b
-	cp $1b
-	jr nz, .asm_114e0b
-	ld a, [hli]
-	and a
-	jr z, .asm_114e2b
-	cp $28
-	jr nz, .asm_114e0b
-	ld a, [hli]
-	and a
-	jr z, .asm_114e2b
-	cp $42
-	jr z, .asm_114e29
-	cp $4a
-	jr z, .asm_114e29
-	jr .asm_114e0b
-
-.asm_114e29
-	ld a, [hli]
-	ret
-
-.asm_114e2b
-	xor a
-	ret
-
-; 114e2d
-
-Function114e2d: ; 114e2d
-	cp $30
-	jr c, .asm_114e45
-	cp $40
-	jr c, .asm_114e58
-	cp $41
-	jr c, .asm_114e45
-	cp $5b
-	jr c, .asm_114e58
-	cp $61
-	jr c, .asm_114e45
-	cp $7b
-	jr c, .asm_114e58
-
-.asm_114e45
-	cp $20
-	jr z, .asm_114e58
-	cp $2d
-	jr z, .asm_114e58
-	cp $2e
-	jr z, .asm_114e58
-	cp $5f
-	jr z, .asm_114e58
-.asm_114e55
-	ld a, $1
-	ret
-
-.asm_114e58
-	cp $3c
-	jr z, .asm_114e55
-	cp $3e
-	jr z, .asm_114e55
-	xor a
-	ret
-
-; 114e62
-
-Function114e62: ; 114e62
-	ld a, c
-	and a
-	jr nz, .asm_114e6f
-	ld a, [wStartDay]
-	and a
-	jp z, Function11425c
-	jr .asm_114e76
-
-.asm_114e6f
-	xor a
-	ld [wStartDay], a
-	call Function114ee9
-
-.asm_114e76
-	call Function114f0a
-	cp $ff
-	jp z, Function11425c
-	and a
-	jr nz, .asm_114e99
-	call Function114ea0
-	and a
-	jr nz, .asm_114e99
-	ld hl, $dc09
-	ld a, [hli]
-	cpl
-	ld e, a
-	ld a, [hli]
-	cpl
-	ld d, a
-	inc de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	add hl, de
-	xor a
-	jp Function11425c
-
-.asm_114e99
-	ld a, $1
-	ld b, $83
-	jp Function11425c
-
-; 114ea0
-
-Function114ea0: ; 114ea0
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld a, $d
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_114edb
-	inc e
-	call z, Function114ee0
-	ld a, $a
-	ld [de], a
-	dec bc
-	inc e
-	call z, Function114ee0
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld a, d
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld [hl], b
-	xor a
-	ld [wStartDay], a
-	ret
-
-.asm_114edb
-	ld a, $1
-	ld b, $83
-	ret
-
-; 114ee0
-
-Function114ee0: ; 114ee0
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 114ee9
-
-Function114ee9: ; 114ee9
-	ld hl, $dc03
-	ld a, b
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld [hli], a
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld c, a
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld b, a
-	ld [hli], a
-	inc de
-	ld a, c
-	ld [hli], a
-	ld a, b
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld [hl], d
-	ret
-
-; 114f0a
-
-Function114f0a: ; 114f0a
-	call Function114f39
-	and a
-	jr nz, .asm_114f26
-	ld a, [$dc03]
-	cp $6
-	jr c, .asm_114f21
-	cp $c
-	jr z, .asm_114f23
-	call Function114f59
-	and a
-	jr nz, .asm_114f23
-
-.asm_114f21
-	xor a
-	ret
-
-.asm_114f23
-	ld a, $1
-	ret
-
-.asm_114f26
-	call Function114f59
-	and a
-	jr nz, .asm_114f23
-	ld hl, $dc0d
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld a, [de]
-	and a
-	jr z, .asm_114f21
-	ld a, $ff
-	ret
-
-; 114f39
-
-Function114f39: ; 114f39
-	ld hl, $dc0d
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc hl
-	ld a, [de]
-	and a
-	jr z, .asm_114f58
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld hl, $dc0d
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld a, $1
-	ret
-
-.asm_114f58
-	ret
-
-; 114f59
-
-Function114f59: ; 114f59
-	ld a, [wStartDay]
-	and a
-	jr nz, .asm_114f7c
-	ld a, [$dc03]
-	cp $11
-	jr z, .asm_114fa7
-	add a
-	ld e, a
-	ld d, 0
-	ld hl, Unknown_114011
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	call Function115020
-	and a
-	jr nz, .asm_114fe7
-	ld a, $1
-	ld [wStartDay], a
-
-.asm_114f7c
-	ld a, [$dc03]
-	cp $5
-	jr c, .asm_114fc9
-	jr z, .asm_114fec
-	cp $8
-	jr c, .asm_114fa5
-	jr z, .asm_114ff4
-	cp $b
-	jr c, .asm_114fa5
-	jr z, .asm_114ffc
-	cp $c
-	jr z, .asm_115007
-	cp $d
-	jr z, .asm_114fa5
-	cp $10
-	jr c, .asm_115015
-	jr z, .asm_114fa5
-	cp $12
-	jr c, .asm_114fa5
-	jr .asm_114fe7
-
-.asm_114fa5
-	xor a
-	ret
-
-.asm_114fa7
-	ld hl, Bed
-	ld c, [hl]
-	inc hl
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $dc24
-	call Function115d53
-	ld hl, $dc24
-	call Function115020
-	and a
-	jr nz, .asm_114fe7
-	jr .asm_11501e
-
-.asm_114fc9
-	call Function115062
-	and a
-	jr nz, .asm_114fe7
-	ld a, [$dc04]
-	dec a
-	ld [$dc04], a
-	and a
-	jr z, .asm_114fdf
-	call Function114f39
-	and a
-	jr nz, .asm_114fc9
-
-.asm_114fdf
-	ld a, [$dc05]
-	ld [$dc04], a
-	jr .asm_11501e
-
-.asm_114fe7
-	ld a, $1
-	ld b, $83
-	ret
-
-.asm_114fec
-	call Function115062
-	and a
-	jr nz, .asm_114fe7
-	jr .asm_11501e
-
-.asm_114ff4
-	call Function115179
-	and a
-	jr nz, .asm_114fe7
-	jr .asm_11501e
-
-.asm_114ffc
-	ld hl, String_114000
-	call Function115217
-	and a
-	jr nz, .asm_114fe7
-	jr .asm_11501e
-
-.asm_115007
-	call Function11528f
-	ld hl, $dc24
-	call Function115217
-	and a
-	jr nz, .asm_114fe7
-	jr .asm_11501e
-
-.asm_115015
-	ld hl, String_114000
-	call Function115217
-	and a
-	jr nz, .asm_114fe7
-
-.asm_11501e
-	xor a
-	ret
-
-; 115020
-
-Function115020: ; 115020
-	push hl
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	pop hl
-.asm_115036
-	ld a, [hli]
-	and a
-	jr z, .asm_115046
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115056
-	inc e
-	call z, Function115059
-	jr .asm_115036
-
-.asm_115046
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld a, d
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld [hl], b
-	xor a
-	ret
-
-.asm_115056
-	ld a, $1
-	ret
-
-; 115059
-
-Function115059: ; 115059
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 115062
-
-Function115062: ; 115062
-	ld hl, Bed
-	ld a, [hli]
-	and a
-	jr z, .asm_1150ae
-	ld c, a
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld b, $0
-	ld hl, $dc24
-	ld a, [wStartDay]
-	cp $1
-	jr z, .asm_11509b
-	cp $2
-	jr z, .asm_115098
-	cp $3
-	jr nz, .asm_1150b2
-	ld a, $2c
-	ld [hli], a
-	ld a, $d
-	ld [hli], a
-	ld a, $a
-	ld [hli], a
-	ld a, $9
-	ld [hli], a
-	jr .asm_11509b
-
-.asm_115098
-	ld a, $2c
-	ld [hli], a
-
-.asm_11509b
-	call Function115d53
-	call Function1150b3
-	call Function115136
-	ld a, [wStartDay]
-	inc a
-	cp $4
-	jr nz, .asm_1150ae
-	ld a, $2
-
-.asm_1150ae
-	ld [wStartDay], a
-	xor a
-
-.asm_1150b2
-	ret
-
-; 1150b3
-
-Function1150b3: ; 1150b3
-	ld hl, $dc24
-	ld de, PartyMon5Defense
-	ld b, $0
-.asm_1150bb
-	ld c, $0
-	ld a, [hli]
-	cp $1b
-	jr z, .asm_1150c9
-	ld [de], a
-	inc de
-	and a
-	jr z, .asm_115133
-	jr .asm_1150bb
-
-.asm_1150c9
-	inc c
-	ld a, [hl]
-	cp $24
-	jr nz, .asm_1150bb
-	inc hl
-	inc c
-	ld a, [hl]
-	cp $42
-	jr z, .asm_1150dc
-	cp $40
-	jr z, .asm_1150dc
-	jr .asm_1150bb
-
-.asm_1150dc
-	push hl
-.asm_1150dd
-	inc c
-	ld a, [hli]
-	and a
-	jr z, .asm_115133
-	cp $1b
-	jr nz, .asm_1150dd
-	inc c
-	ld a, [hli]
-	cp $28
-	jr nz, .asm_1150dd
-	inc c
-	ld a, [hli]
-	cp $42
-	jr z, .asm_1150f8
-	cp $4a
-	jr z, .asm_1150f8
-	jr .asm_1150dd
-
-.asm_1150f8
-	ld a, l
-	ld [Console], a
-	ld a, h
-	ld [LeftOrnament], a
-	ld hl, String_114232
-.asm_115103
-	ld a, [hli]
-	and a
-	jr z, .asm_11510b
-	ld [de], a
-	inc de
-	jr .asm_115103
-
-.asm_11510b
-	pop hl
-	dec hl
-	dec hl
-	push de
-	call Function1158c2
-	pop de
-	ld h, d
-	ld l, e
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	inc hl
-.asm_115119
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_115119
-	ld a, $3f
-	ld [de], a
-	inc de
-	ld a, $3d
-	ld [de], a
-	inc de
-	ld a, [Console]
-	ld l, a
-	ld a, [LeftOrnament]
-	ld h, a
-	jr .asm_1150bb
-
-.asm_115133
-	xor a
-	ld [de], a
-	ret
-
-; 115136
-
-Function115136: ; 115136
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld hl, PartyMon5Defense
-.asm_11514d
-	ld a, [hli]
-	and a
-	jr z, .asm_11515d
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_11516d
-	inc e
-	call z, Function115170
-	jr .asm_11514d
-
-.asm_11515d
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld a, d
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld [hl], b
-	xor a
-	ret
-
-.asm_11516d
-	ld a, $1
-	ret
-
-; 115170
-
-Function115170: ; 115170
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 115179
-
-Function115179: ; 115179
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld hl, $013f
-	ld a, [hli]
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1151ef
-	inc e
-	call z, Function11520e
-	ld a, [hli]
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1151ef
-	inc e
-	call z, Function11520e
-	ld a, [hli]
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1151ef
-	inc e
-	call z, Function11520e
-	ld a, [hli]
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1151ef
-	inc e
-	call z, Function11520e
-	ld a, $2d
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1151ef
-	inc e
-	call z, Function11520e
-	ld a, [$014c]
-	ld h, a
-	and $f0
-	swap a
-	cp $a
-	jr nc, .asm_1151d8
-	add $30
-	jr .asm_1151da
-
-.asm_1151d8
-	add $37
-
-.asm_1151da
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1151ef
-	inc e
-	call z, Function11520e
-	ld a, h
-	and $f
-	cp $a
-	jr nc, .asm_1151f2
-	add $30
-	jr .asm_1151f4
-
-.asm_1151ef
-	ld a, $1
-	ret
-
-.asm_1151f2
-	add $37
-
-.asm_1151f4
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_1151ef
-	inc e
-	call z, Function11520e
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld a, d
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld [hl], b
-	xor a
-	ret
-
-; 11520e
-
-Function11520e: ; 11520e
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 115217
-
-Function115217: ; 115217
-	push hl
-	ld hl, $dc06
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	pop hl
-.asm_11522d
-	ld a, [hli]
-	and a
-	jr z, .asm_11523d
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115262
-	inc e
-	call z, Function115286
-	jr .asm_11522d
-
-.asm_11523d
-	ld a, [$dc03]
-	cp $b
-	jr z, .asm_115278
-	cp $c
-	jr z, .asm_115278
-	cp $e
-	jr z, .asm_115252
-	cp $f
-	jr z, .asm_115265
-	jr .asm_115262
-
-.asm_115252
-	ld hl, $dc06
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld a, d
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld [hl], b
-	xor a
-	ret
-
-.asm_115262
-	ld a, $1
-	ret
-
-.asm_115265
-	ld h, $2
-.asm_115267
-	ld a, $2d
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115262
-	inc e
-	call z, Function115286
-	dec h
-	jr nz, .asm_115267
-	jr .asm_115252
-
-.asm_115278
-	ld a, $22
-	ld [de], a
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115262
-	inc e
-	call z, Function115286
-	jr .asm_115252
-
-; 115286
-
-Function115286: ; 115286
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 11528f
-
-Function11528f: ; 11528f
-	ld hl, Bed
-	ld c, [hl]
-	inc hl
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld hl, $dc24
-.asm_1152a4
-	ld a, [de]
-	ld [hli], a
-	inc e
-	call z, Function1152af
-	dec c
-	jr nz, .asm_1152a4
-	ld [hl], c
-	ret
-
-; 1152af
-
-Function1152af: ; 1152af
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 1152b8
-
-Function1152b8: ; 1152b8
-	push bc
-	call Function11537d
-	push de
-	ld h, d
-	ld l, e
-	ld a, [hli]
-	ld b, a
-	ld c, $1
-	call Function1153d2
-	pop de
-	and a
-	jr nz, .asm_1152f9
-.asm_1152ca
-	ld hl, $dc0d
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-.asm_1152d0
-	ld a, [$dc03]
-	cp $3
-	jr nz, .asm_1152d8
-	push de
-
-.asm_1152d8
-	cp $5
-	jr nz, .asm_1152e7
-	pop hl
-	ld a, [hli]
-	ld b, a
-	ld c, $3
-	call Function1153d2
-	and a
-	jr nz, .asm_1152f9
-
-.asm_1152e7
-	ld a, [de]
-	inc de
-	and a
-	jr nz, .asm_115301
-	ld a, [$dc03]
-	cp $6
-	jr z, .asm_115335
-	inc a
-	ld [$dc03], a
-	jr .asm_1152d0
-
-.asm_1152f9
-	pop hl
-	ld a, $1
-	ld b, $83
-	jp Function11425c
-
-.asm_115301
-	ld hl, $dc0d
-	ld [hl], e
-	inc hl
-	ld [hl], d
-.asm_115307
-	ld [$dc05], a
-	ld a, $1
-	ld [$dc04], a
-	call Function1153b5
-	call Function114f59
-	and a
-	jr nz, .asm_1152f9
-	ld a, [$dc05]
-	dec a
-	jr nz, .asm_115307
-	ld a, [$dc03]
-	inc a
-	ld [$dc03], a
-	call Function114ea0
-	and a
-	jr nz, .asm_1152f9
-	ld [wStartDay], a
-	ld a, [$dc03]
-	cp $6
-	jr nz, .asm_1152ca
-
-.asm_115335
-	call Function1153b5
-	xor a
-	ld [wStartDay], a
-	call Function114f59
-	and a
-	jr nz, .asm_1152f9
-	call Function114ea0
-	and a
-	jr nz, .asm_1152f9
-	ld a, [$dc03]
-	inc a
-	ld [$dc03], a
-	cp $9
-	jr nz, .asm_115335
-	pop bc
-	ld a, b
-	and a
-	jr z, .asm_11536b
-	call Function1153b5
-	xor a
-	ld [wStartDay], a
-	call Function114f59
-	and a
-	jr nz, .asm_1152f9
-	call Function114ea0
-	and a
-	jr nz, .asm_1152f9
-
-.asm_11536b
-	ld hl, $dc09
-	ld a, [hli]
-	cpl
-	ld e, a
-	ld a, [hli]
-	cpl
-	ld d, a
-	inc de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	add hl, de
-	xor a
-	jp Function11425c
-
-; 11537d
-
-Function11537d: ; 11537d
-	ld hl, $dc06
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	ld b, a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc hl
-	ld a, [de]
-	ld [hld], a
-	ld a, b
-	ld [hli], a
-	inc de
-	ld hl, RightOrnament
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld hl, $dc0d
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	xor a
-	ld [$dc03], a
-	ld [wStartDay], a
-	ret
-
-; 1153b5
-
-Function1153b5: ; 1153b5
-	ld hl, $dc0d
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc hl
-	inc hl
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hl], a
-	inc de
-	ld a, [de]
-	ld [Bed], a
-	inc de
-	ld hl, $dc0d
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ret
-
-; 1153d2
-
-Function1153d2: ; 1153d2
-	ld a, [$dc03]
-	ld d, a
-	ld a, [$dc04]
-	ld e, a
-	push de
-	xor a
-	ld [$dc03], a
-	ld [$dc04], a
-	ld a, $24
-	ld [Console], a
-	ld a, $dc
-	ld [LeftOrnament], a
-	push bc
-	jr .asm_1153f4
-
-.asm_1153ef
-	ld a, [hli]
-	and a
-	jr z, .asm_115426
-	ld b, a
-
-.asm_1153f4
-	push bc
-.asm_1153f5
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc hl
-	ld c, [hl]
-	inc hl
-	push hl
-	ld a, [Console]
-	ld l, a
-	ld a, [LeftOrnament]
-	ld h, a
-	push bc
-	ld b, $0
-	call Function115d53
-	inc hl
-	ld [hl], a
-	pop bc
-	ld a, l
-	ld e, a
-	ld [Console], a
-	ld a, h
-	ld d, a
-	ld [LeftOrnament], a
-	dec b
-	jr z, .asm_11542b
-	pop hl
-	jr .asm_1153f5
-
-.asm_115426
-	dec c
-	jr nz, .asm_1153ef
-	jr .asm_115430
-
-.asm_11542b
-	pop hl
-	pop bc
-	dec c
-	jr nz, .asm_1153ef
-
-.asm_115430
-	ld a, l
-	ld [Console], a
-	ld a, h
-	ld [LeftOrnament], a
-	xor a
-	ld [de], a
-	ld hl, $dc24
-.asm_11543d
-	ld a, [hli]
-	and a
-	jr nz, .asm_11543d
-	ld a, [hl]
-	and a
-	jr z, .asm_115457
-	dec hl
-	ld a, $2c
-	ld [hli], a
-	jr .asm_11543d
-
-.asm_11544b
-	pop hl
-	ld a, h
-	ld [$dc03], a
-	ld a, l
-	ld [$dc04], a
-	ld a, $1
-	ret
-
-.asm_115457
-	ld hl, $dc24
-	call Function114d99
-	ld hl, $ddc8
-.asm_115460
-	ld a, [hli]
-	and a
-	jr z, .asm_11546d
-	cp $2c
-	jr nz, .asm_115460
-	dec hl
-	xor a
-	ld [hli], a
-	jr .asm_115460
-
-.asm_11546d
-	pop de
-	ld a, e
-	cp $1
-	jr z, .asm_115477
-	xor a
-	ld [hli], a
-	jr .asm_115478
-
-.asm_115477
-	dec bc
-
-.asm_115478
-	ld hl, $dc18
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, b
-	cp h
-	jr c, .asm_11548c
-	jr nz, .asm_11544b
-	ld a, c
-	cp l
-	jr c, .asm_11548c
-	jr z, .asm_11548c
-	jr .asm_11544b
-
-.asm_11548c
-	ld hl, $dc18
-	ld a, c
-	cpl
-	ld e, a
-	ld a, b
-	cpl
-	ld d, a
-	inc de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	add hl, de
-	ld de, $dc18
-	ld a, l
-	ld [de], a
-	inc de
-	ld a, h
-	ld [de], a
-	ld hl, RightOrnament
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $ddc8
-	call Function115d6a
-	ld hl, RightOrnament
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld a, [Console]
-	ld e, a
-	ld a, [LeftOrnament]
-	ld d, a
-	pop hl
-	ld a, h
-	ld [$dc03], a
-	ld a, l
-	ld [$dc04], a
-	xor a
-	ret
-
-; 1154d4
-
-Function1154d4: ; 1154d4
-	xor a
-	ld [wStartDay], a
-	call Function1155af
-	call Function11560a
-	and a
-	jr nz, .asm_11552c
-	call Function1155d1
-	ld a, [RightOrnament]
-	dec a
-	ld [RightOrnament], a
-	and a
-	jp z, .asm_115577
-	cp $1
-	jr nz, .asm_115531
-	xor a
-	ld [wDailyResetTimer], a
-.asm_1154f7
-	ld a, [BigDoll]
-	cp $2
-	jr z, .asm_115502
-	cp $3
-	jr z, .asm_11550f
-
-.asm_115502
-	ld a, $a
-	ld [$dc03], a
-	call Function114f59
-	and a
-	jr z, .asm_11551a
-	jr .asm_11552c
-
-.asm_11550f
-	ld a, $c
-	ld [$dc03], a
-	call Function114f59
-	and a
-	jr nz, .asm_11552c
-
-.asm_11551a
-	call Function114ea0
-	and a
-	jr nz, .asm_11552c
-	call Function114ea0
-	and a
-	jr nz, .asm_11552c
-	call Function11560a
-	and a
-	jr z, .asm_1155a0
-
-.asm_11552c
-	ld a, $1
-	jp Function11425c
-
-.asm_115531
-	ld a, $1
-	ld [wDailyResetTimer], a
-	ld a, $b
-	ld [$dc03], a
-	call Function114f59
-	and a
-	jr nz, .asm_11552c
-	call Function114ea0
-	and a
-	jr nz, .asm_11552c
-.asm_115547
-	call Function114ea0
-	and a
-	jr nz, .asm_11552c
-	ld a, $e
-	ld [$dc03], a
-	call Function114f59
-	and a
-	jr nz, .asm_11552c
-	call Function114ea0
-	and a
-	jr nz, .asm_11552c
-	jr .asm_1154f7
-
-.asm_115560
-	call Function114ea0
-	and a
-	jr nz, .asm_11552c
-	ld a, [wDailyResetTimer]
-	and a
-	jr z, .asm_11557d
-	ld a, $f
-	ld [$dc03], a
-	call Function114f59
-	and a
-	jr nz, .asm_11552c
-
-.asm_115577
-	call Function114ea0
-	and a
-	jr nz, .asm_11552c
-
-.asm_11557d
-	ld a, $10
-	ld [$dc03], a
-	call Function114f59
-	and a
-	jr nz, .asm_11552c
-	call Function114ea0
-	and a
-	jr nz, .asm_11552c
-	ld hl, $dc09
-	ld a, [hli]
-	cpl
-	ld e, a
-	ld a, [hli]
-	cpl
-	ld d, a
-	inc de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	add hl, de
-	xor a
-	jp Function11425c
-
-.asm_1155a0
-	ld a, [RightOrnament]
-	dec a
-	ld [RightOrnament], a
-	and a
-	jr z, .asm_115560
-	call Function1155d1
-	jr .asm_115547
-
-; 1155af
-
-Function1155af: ; 1155af
-	ld hl, $dc06
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	ld b, a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	ld [hl], b
-	inc hl
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [RightOrnament], a
-	inc de
-	ld a, e
-	ld [hli], a
-	ld [hl], d
-	call Function1155d1
-	ret
-
-; 1155d1
-
-Function1155d1: ; 1155d1
-	ld a, [$dc0d]
-	ld l, a
-	ld a, [$dc0e]
-	ld h, a
-	ld a, [hli]
-	ld [BigDoll], a
-	cp $3
-	jr nz, .asm_1155f0
-	ld de, Carpet
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	ld a, [hli]
-	ld [Bed], a
-
-.asm_1155f0
-	ld de, $dc17
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	ld a, l
-	ld [$dc0d], a
-	ld a, h
-	ld [$dc0e], a
-	ret
-
-; 11560a
-
-Function11560a: ; 11560a
-	ld a, [$dc06]
-	ld [wCurrentMapSignpostCount], a
-	ld a, [$dc17]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld hl, $dc1a
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	ld a, [wCurrMapCallbackCount]
-	cp b
-	jp c, .asm_1156b1
-	jr nz, .asm_115631
-	ld a, [$dc09]
-	cp c
-	jp c, .asm_1156b1
-
-.asm_115631
-	ld a, b
-	or c
-	jr z, .asm_1156a9
-	ld a, [$dc09]
-	ld l, a
-	ld a, [wCurrMapCallbackCount]
-	ld h, a
-	ld a, c
-	cpl
-	ld e, a
-	ld a, b
-	cpl
-	ld d, a
-	inc de
-	add hl, de
-	ld a, l
-	ld [$dc09], a
-	ld a, h
-	ld [wCurrMapCallbackCount], a
-.asm_11564d
-	ld a, $3
-	cp b
-	jr c, .asm_1156b6
-	jr nz, .asm_115659
-	ld a, $db
-	cp c
-	jr c, .asm_1156b6
-
-.asm_115659
-	ld a, [$dc1a]
-	ld e, a
-	ld a, [$dc1b]
-	ld d, a
-	ld a, c
-	cpl
-	ld l, a
-	ld a, b
-	cpl
-	ld h, a
-	inc hl
-	add hl, de
-	ld a, l
-	ld [$dc1a], a
-	ld a, h
-	ld [$dc1b], a
-	push bc
-	ld hl, $dc18
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $dc24
-	call Function115d53
-	ld hl, $dc18
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	pop bc
-	ld a, [wCurrentMapSignpostCount]
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld hl, wCurrMapTriggerCount
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $dc24
-	call Function115d6a
-	ld hl, wCurrMapTriggerCount
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld hl, $dc1a
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	ld a, b
-	or c
-	jr nz, .asm_11564d
-
-.asm_1156a9
-	ld a, [wCurrentMapSignpostCount]
-	ld [$dc06], a
-	xor a
-	ret
-
-.asm_1156b1
-	ld a, $1
-	ld b, $83
-	ret
-
-.asm_1156b6
-	ld a, $3
-	cpl
-	ld h, a
-	ld a, $db
-	cpl
-	ld l, a
-	add hl, bc
-	ld de, $dc1a
-	ld a, l
-	ld [de], a
-	inc de
-	ld a, h
-	ld [de], a
-	ld bc, $03db
-	jr .asm_115659
-
-; 1156cc
-
-Function1156cc: ; 1156cc
-	ld a, [wStartDay]
-	and a
-	jp z, Function11425c
-	cp $2
-	jr z, .asm_1156fa
-	cp $3
-	jr z, .asm_1156fd
-	cp $4
-	jr z, .asm_1156fd
-	cp $5
-	jr z, .asm_115716
-	cp $ff
-	jr z, .asm_11572b
-	cp $1
-	jp nz, Function11425c
-	call Function115732
-	call Function11575c
-	ld a, h
-	ld [Poster], a
-	ld a, l
-	ld [Plant], a
-
-.asm_1156fa
-	call Function1157d0
-
-.asm_1156fd
-	call Function11581e
-	and a
-	jr nz, .asm_11572b
-	ld a, [wStartDay]
-	cp $5
-	jr z, .asm_115716
-	ld a, [Poster]
-	ld h, a
-	ld a, [Plant]
-	ld l, a
-	xor a
-	jp Function11425c
-
-.asm_115716
-	ld hl, wCurrMapCallbackCount
-	ld a, [hli]
-	cpl
-	ld e, a
-	ld a, [hli]
-	cpl
-	ld d, a
-	inc de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	add hl, de
-	xor a
-	ld [wStartDay], a
-	jp Function11425c
-
-.asm_11572b
-	ld a, $1
-	ld b, $83
-	jp Function11425c
-
-; 115732
-
-Function115732: ; 115732
-	ld hl, $dc02
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	dec de
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hli], a
-	ld a, c
-	ld [hli], a
-	ld [hl], b
-	ret
-
-; 11575c
-
-Function11575c: ; 11575c
-	ld hl, $dc05
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld e, $10
-	ld b, $0
-	ld c, b
-	ld d, b
-	ld a, $3
-.asm_11576a
-	rl l
-	rl h
-	rl d
-	cp d
-	jr c, .asm_11577c
-	rl c
-	rl b
-	dec e
-	jr nz, .asm_11576a
-	jr .asm_11578a
-
-.asm_11577c
-	ld a, d
-	sub $3
-	ld d, a
-	ld a, $3
-	scf
-	rl c
-	rl b
-	dec e
-	jr nz, .asm_11576a
-
-.asm_11578a
-	ld a, d
-	and a
-	jr z, .asm_11578f
-	inc bc
-
-.asm_11578f
-	sla c
-	rl b
-	sla c
-	rl b
-	ld h, b
-	ld l, c
-	push hl
-	ld e, $10
-	ld b, $0
-	ld c, b
-	ld d, b
-	ld a, $40
-.asm_1157a2
-	rl l
-	rl h
-	rl d
-	cp d
-	jr c, .asm_1157b4
-	rl c
-	rl b
-	dec e
-	jr nz, .asm_1157a2
-	jr .asm_1157c3
-
-.asm_1157b4
-	ld a, d
-	sub $40
-	ld d, a
-	ld a, $40
-	scf
-	rl c
-	rl b
-	dec e
-	jr nz, .asm_1157a2
-	inc bc
-
-.asm_1157c3
-	and a
-	sla c
-	rl b
-	pop hl
-	add hl, bc
-	ld a, $2
-	ld [wStartDay], a
-	ret
-
-; 1157d0
-
-Function1157d0: ; 1157d0
-	ld hl, $dc05
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [$dc0e]
-	ld c, a
-	ld a, [Bed]
-	ld b, a
-	cp h
-	jr c, .asm_1157eb
-	jr nz, .asm_1157e9
-	ld a, c
-	cp l
-	jr c, .asm_1157eb
-	jr z, .asm_1157eb
-
-.asm_1157e9
-	ld b, h
-	ld c, l
-
-.asm_1157eb
-	push bc
-	ld a, b
-	cpl
-	ld b, a
-	ld a, c
-	cpl
-	ld c, a
-	inc bc
-	add hl, bc
-	ld a, l
-	ld [$dc05], a
-	ld a, h
-	ld [$dc06], a
-	ld a, h
-	or l
-	jr nz, .asm_11580f
-	pop bc
-	ld a, c
-	ld [$dc0e], a
-	ld a, b
-	ld [Bed], a
-	ld a, $4
-	ld [wStartDay], a
-	ret
-
-.asm_11580f
-	pop bc
-	ld a, c
-	ld [$dc0e], a
-	ld a, b
-	ld [Bed], a
-	ld a, $3
-	ld [wStartDay], a
-	ret
-
-; 11581e
-
-Function11581e: ; 11581e
-	ld a, [wStartDay]
-	and a
-	ret z
-	ld a, [$dc0e]
-	ld c, a
-	ld a, [Bed]
-	ld b, a
-	ld hl, $dc02
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $dc24
-	push bc
-	call Function115d53
-	pop bc
-	ld hl, $dc02
-	ld a, [$dc00]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld hl, $dc24
-	ld de, PartyMon5Defense
-	call Function1158c2
-	ld hl, PartyMon5Defense
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	inc hl
-	push hl
-	ld a, [wCurrMapCallbackCount]
-	ld l, a
-	ld a, [wCurrMapCallbackHeaderPointer]
-	ld h, a
-	cp b
-	jr c, .asm_1158bb
-	jr nz, .asm_11586e
-	ld a, l
-	cp c
-	jr c, .asm_1158bb
-
-.asm_11586e
-	push bc
-	ld a, b
-	cpl
-	ld b, a
-	ld a, c
-	cpl
-	ld c, a
-	inc bc
-	add hl, bc
-	ld a, l
-	ld [wCurrMapCallbackCount], a
-	ld a, h
-	ld [wCurrMapCallbackHeaderPointer], a
-	pop bc
-	pop hl
-	ld hl, wCurrMapTriggerCount
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, PartyMon5Speed
-	call Function115d6a
-	ld hl, wCurrMapTriggerCount
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld [hl], d
-	ld a, [wStartDay]
-	cp $3
-	jr z, .asm_1158b4
-	cp $4
-	jr z, .asm_1158ad
-	jr .asm_1158bc
-
-.asm_1158ad
-	ld a, $5
-	ld [wStartDay], a
-	jr .asm_1158b9
-
-.asm_1158b4
-	ld a, $2
-	ld [wStartDay], a
-
-.asm_1158b9
-	xor a
-	ret
-
-.asm_1158bb
-	pop hl
-
-.asm_1158bc
-	ld a, $ff
-	ld [wStartDay], a
-	ret
-
-; 1158c2
-
-Function1158c2: ; 1158c2
-	ld a, e
-	ld [SwarmFlags], a
-	ld a, d
-	ld [$dc21], a
-	xor a
-	ld [$dc22], a
-	xor a
-	ld [de], a
-	inc de
-	ld [de], a
-	inc de
-	ld a, c
-	ld [$dc19], a
-	ld a, b
-	ld [$dc1a], a
-	ld c, e
-	ld b, d
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	xor a
-	ld [WeeklyFlags], a
-
-.asm_1158e5
-	ld b, $3
-	push hl
-	ld hl, $dc1b
-.asm_1158eb
-	ld a, [de]
-	inc de
-	ld [hli], a
-	dec b
-	jr nz, .asm_1158eb
-	ld a, [$dc19]
-	ld c, a
-	ld a, [$dc1a]
-	ld b, a
-	xor a
-	or b
-	jr nz, .asm_115914
-	ld a, $2
-	cp c
-	jr c, .asm_115914
-	push hl
-	dec hl
-	ld a, c
-	ld [WeeklyFlags], a
-.asm_115908
-	xor a
-	ld [hld], a
-	inc c
-	ld a, $3
-	cp c
-	jr nz, .asm_115908
-	pop hl
-	ld bc, $0003
-
-.asm_115914
-	dec bc
-	dec bc
-	dec bc
-	ld a, c
-	ld [$dc19], a
-	ld a, b
-	ld [$dc1a], a
-	push de
-	push hl
-	ld hl, SwarmFlags
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-rept 4
-	inc de
-endr
-	ld [hl], d
-	dec hl
-	ld [hl], e
-	pop hl
-	dec hl
-	ld c, [hl]
-	dec hl
-	ld b, [hl]
-	dec hl
-	ld a, [hl]
-	ld d, a
-	srl a
-	srl a
-	ld [hli], a
-	ld a, $3
-	and d
-	ld d, a
-	ld a, $f0
-	and b
-	or d
-	swap a
-	ld [hli], a
-	ld a, $f
-	and b
-	ld d, a
-	ld a, c
-	and $c0
-	or d
-	rlca
-	rlca
-	ld [hli], a
-	ld a, $3f
-	and c
-	ld [hld], a
-	dec hl
-	dec hl
-	pop de
-	ld b, h
-	ld c, l
-	pop hl
-	ld a, [bc]
-	inc bc
-	call Function1159dc
-	ld [hli], a
-	ld a, [bc]
-	inc bc
-	call Function1159dc
-	ld [hli], a
-	ld a, [bc]
-	inc bc
-	call Function1159dc
-	ld [hli], a
-	ld a, [bc]
-	inc bc
-	call Function1159dc
-	ld [hli], a
-	ld a, [$dc22]
-	inc a
-	cp $10
-	jr nz, .asm_1159b1
-	push af
-	push bc
-	ld a, [$dc19]
-	ld b, a
-	ld a, [$dc1a]
-	or b
-	jr nz, .asm_115998
-	ld a, [$dc05]
-	ld b, a
-	ld a, [$dc06]
-	or b
-	jr nz, .asm_115998
-	pop bc
-	pop af
-	jr .asm_1159c4
-
-.asm_115998
-	pop bc
-	pop af
-	ld a, $d
-	ld [hli], a
-	ld a, $a
-	ld [hli], a
-	push hl
-	ld hl, SwarmFlags
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [hli]
-	ld c, a
-	ld b, [hl]
-	inc bc
-	inc bc
-	ld a, b
-	ld [hld], a
-	ld [hl], c
-	pop hl
-	xor a
-
-.asm_1159b1
-	ld [$dc22], a
-	ld a, [$dc19]
-	cp $0
-	jp nz, .asm_1158e5
-	ld a, [$dc1a]
-	cp $0
-	jp nz, .asm_1158e5
-
-.asm_1159c4
-	ld a, [WeeklyFlags]
-	cp $0
-	jr z, .asm_1159d8
-	push hl
-	dec hl
-	ld b, a
-.asm_1159ce
-	ld a, $3d
-	ld [hld], a
-	inc b
-	ld a, $3
-	cp b
-	jr nz, .asm_1159ce
-	pop hl
-
-.asm_1159d8
-	ld a, $0
-	ld [hl], a
-	ret
-
-; 1159dc
-
-Function1159dc: ; 1159dc
-	cp $1a
-	jr c, .asm_1159ef
-	cp $34
-	jr c, .asm_1159f2
-	cp $3e
-	jr c, .asm_1159f5
-	cp $3e
-	jr z, .asm_1159f8
-	ld a, $2f
-	ret
-
-.asm_1159ef
-	add $41
-	ret
-
-.asm_1159f2
-	add $47
-	ret
-
-.asm_1159f5
-	sub $4
-	ret
-
-.asm_1159f8
-	ld a, $2b
-	ret
-
-; 1159fb
-
-Function1159fb: ; 1159fb
-	ld a, [wStartDay]
-	and a
-	jp z, Function11425c
-	cp $2
-	jr z, .asm_115a29
-	cp $3
-	jr z, .asm_115a2c
-	cp $4
-	jr z, .asm_115a2c
-	cp $5
-	jr z, .asm_115a45
-	cp $ff
-	jr z, .asm_115a5a
-	cp $1
-	jp nz, Function11425c
-	call Function115732
-	call Function115a5f
-	ld a, h
-	ld [Plant], a
-	ld a, l
-	ld [Poster], a
-
-.asm_115a29
-	call Function115ab0
-
-.asm_115a2c
-	call Function115b00
-	and a
-	jr nz, .asm_115a5a
-	ld a, [wStartDay]
-	cp $5
-	jr z, .asm_115a45
-	ld a, [Poster]
-	ld h, a
-	ld a, [Plant]
-	ld l, a
-	xor a
-	jp Function11425c
-
-.asm_115a45
-	ld hl, wCurrMapCallbackCount
-	ld a, [hli]
-	cpl
-	ld e, a
-	ld a, [hli]
-	cpl
-	ld d, a
-	inc de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	add hl, de
-	xor a
-	ld [wStartDay], a
-	jp Function11425c
-
-.asm_115a5a
-	ld a, $1
-	jp Function11425c
-
-; 115a5f
-
-Function115a5f: ; 115a5f
-	ld hl, $dc05
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	push hl
-	ld e, $10
-	ld b, $0
-	ld c, b
-	ld d, b
-	ld a, $42
-.asm_115a6e
-	rl l
-	rl h
-	rl d
-	cp d
-	jr c, .asm_115a80
-	rl c
-	rl b
-	dec e
-	jr nz, .asm_115a6e
-	jr .asm_115a8e
-
-.asm_115a80
-	ld a, d
-	sub $42
-	ld d, a
-	ld a, $42
-	scf
-	rl c
-	rl b
-	dec e
-	jr nz, .asm_115a6e
-
-.asm_115a8e
-	sla c
-	rl b
-	pop hl
-	ld a, b
-	cpl
-	ld b, a
-	ld a, c
-	cpl
-	ld c, a
-	inc bc
-	add hl, bc
-	srl h
-	rr l
-	srl h
-	rr l
-	ld b, h
-	ld c, l
-	sla c
-	rl b
-	add hl, bc
-	ld a, $2
-	ld [wStartDay], a
-	ret
-
-; 115ab0
-
-Function115ab0: ; 115ab0
-	ld hl, $dc05
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld a, [$dc0e]
-	ld c, a
-	ld a, [Bed]
-	ld b, a
-	cp h
-	jr c, .asm_115acb
-	jr nz, .asm_115ac9
-	ld a, c
-	cp l
-	jr c, .asm_115acb
-	jr z, .asm_115acb
-
-.asm_115ac9
-	ld b, h
-	ld c, l
-
-.asm_115acb
-	push bc
-	ld a, b
-	cpl
-	ld b, a
-	ld a, c
-	cpl
-	ld c, a
-	inc bc
-	add hl, bc
-	ld a, l
-	ld [$dc05], a
-	ld a, h
-	ld [$dc06], a
-	ld a, h
-	or l
-	jr nz, .asm_115af0
-	pop bc
-	ld a, c
-	ld [$dc0e], a
-	ld a, b
-	ld [Bed], a
-	ld a, $4
-	ld [wStartDay], a
-	xor a
-	ret
-
-.asm_115af0
-	pop bc
-	ld a, c
-	ld [$dc0e], a
-	ld a, b
-	ld [Bed], a
-	ld a, $3
-	ld [wStartDay], a
-	xor a
-	ret
-
-; 115b00
-
-Function115b00: ; 115b00
-	ld a, [wStartDay]
-	and a
-	ret z
-	ld a, [$dc0e]
-	ld c, a
-	ld a, [Bed]
-	ld b, a
-	ld hl, $dc02
-	ld a, [hli]
-	ld [$dc00], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, PartyMon5Defense
-	push bc
-	call Function115bc8
-	pop hl
-	and a
-	jr z, .asm_115b43
-	cp $2
-	jr z, .asm_115b3b
-	ld a, [wStartDay]
-	cp $4
-	jr z, .asm_115b43
-	inc hl
-	inc hl
-	jr .asm_115b43
-
-.asm_115b36
-	pop hl
-	ld b, $83
-	jr .asm_115b3d
-
-.asm_115b3b
-	ld b, $81
-
-.asm_115b3d
-	ld a, $ff
-	ld [wStartDay], a
-	ret
-
-.asm_115b43
-	ld a, [Carpet]
-	add a
-	cpl
-	ld c, a
-	ld b, $ff
-	inc bc
-	add hl, bc
-	ld b, h
-	ld c, l
-	ld hl, $dc02
-	ld a, [$dc00]
-	ld [hli], a
-	ld [hl], e
-	inc hl
-	ld [hl], d
-	ld hl, PartyMon5Defense
-	ld de, $dc24
-	call Function115c49
-	ld hl, $dc24
-	ld c, [hl]
-	inc hl
-	ld b, [hl]
-	inc hl
-	push hl
-	ld a, [wCurrMapCallbackCount]
-	ld l, a
-	ld a, [wCurrMapCallbackHeaderPointer]
-	ld h, a
-	cp b
-	jr c, .asm_115b36
-	jr nz, .asm_115b7b
-	ld a, l
-	cp c
-	jr c, .asm_115b36
-
-.asm_115b7b
-	push bc
-	ld a, b
-	cpl
-	ld b, a
-	ld a, c
-	cpl
-	ld c, a
-	inc bc
-	add hl, bc
-	ld a, l
-	ld [wCurrMapCallbackCount], a
-	ld a, h
-	ld [wCurrMapCallbackHeaderPointer], a
-	pop bc
-	pop hl
-	ld hl, wCurrMapTriggerCount
-	ld a, [hli]
-	ld [wCurrentMapSignpostCount], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld hl, $dc26
-	call Function115d6a
-	ld hl, wCurrMapTriggerCount
-	ld a, [wCurrentMapSignpostCount]
-	ld [hli], a
-	ld a, e
-	ld [hli], a
-	ld [hl], d
-	ld a, [wStartDay]
-	cp $3
-	jr z, .asm_115bc1
-	cp $4
-	jr z, .asm_115bba
-	jr .asm_115b3b
-
-.asm_115bba
-	ld a, $5
-	ld [wStartDay], a
-	jr .asm_115bc6
-
-.asm_115bc1
-	ld a, $2
-	ld [wStartDay], a
-
-.asm_115bc6
-	xor a
-	ret
-
-; 115bc8
-
-Function115bc8: ; 115bc8
-	xor a
-	ld [Carpet], a
-.asm_115bcc
-	ld a, [de]
-	ld [hli], a
-	inc e
-	call z, .Function115c3d
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115c46
-	ld a, [de]
-	ld [hli], a
-	inc e
-	call z, .Function115c3d
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115c1b
-	ld a, [de]
-	ld [hli], a
-	inc e
-	call z, .Function115c3d
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115c46
-	ld a, [de]
-	ld [hli], a
-	inc e
-	call z, .Function115c3d
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115c3a
-	ld a, [de]
-	cp $d
-	jr nz, .asm_115bcc
-	inc e
-	call z, .Function115c3d
-	ld a, [de]
-	cp $a
-	jr nz, .asm_115c46
-	inc e
-	call z, .Function115c3d
-	dec bc
-	ld a, b
-	or c
-	jr z, .asm_115c46
-	ld a, [Carpet]
-	inc a
-	ld [Carpet], a
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_115bcc
-
-.asm_115c1b
-	ld a, [wStartDay]
-	cp $4
-	jr z, .asm_115c33
-	ld a, [de]
-	ld [hli], a
-	inc e
-	call z, .Function115c3d
-	ld a, [de]
-	ld [hli], a
-	inc e
-	call z, .Function115c3d
-	xor a
-	ld [hl], a
-	ld a, $1
-	ret
-
-.asm_115c33
-	dec hl
-	dec hl
-	xor a
-	ld [hl], a
-	ld a, $1
-	ret
-
-.asm_115c3a
-	xor a
-	ld [hl], a
-	ret
-
-.Function115c3d:
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-.asm_115c46
-	ld a, $2
-	ret
-
-; 115c49
-
-Function115c49: ; 115c49
-	ld a, e
-	ld [WeeklyFlags], a
-	ld a, d
-	ld [SwarmFlags], a
-	xor a
-	ld [de], a
-	inc de
-	ld [de], a
-	inc de
-
-	ld a, c
-	ld [$dc19], a
-	ld a, b
-	ld [$dc1a], a
-	ld c, e
-	ld b, d
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-
-.asm_115c64
-	ld a, [$dc1a]
-	or a
-	jr nz, .asm_115c71
-	ld a, [$dc19]
-	cp $4
-	jr c, .asm_115c99
-
-.asm_115c71
-	ld b, $4
-	push hl
-	ld hl, $dc1b
-.asm_115c77
-	ld a, [de]
-	inc de
-	call Function115cfd
-	ld [hli], a
-	dec b
-	jr nz, .asm_115c77
-	ld a, [$dc19]
-	ld c, a
-	ld a, [$dc1a]
-	ld b, a
-rept 4
-	dec bc
-endr
-.asm_115c8c
-	ld a, [de]
-	cp $d
-	jr z, .asm_115c95
-	cp $a
-	jr nz, .asm_115c9f
-
-.asm_115c95
-	inc de
-	dec bc
-	jr .asm_115c8c
-
-.asm_115c99
-	ld a, $ff
-	ld [wStartDay], a
-	ret
-
-.asm_115c9f
-	ld a, c
-	ld [$dc19], a
-	ld a, b
-	ld [$dc1a], a
-	push de
-	push hl
-	ld hl, WeeklyFlags
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	inc de
-	inc de
-	inc de
-	ld [hl], d
-	dec hl
-	ld [hl], e
-	pop hl
-	dec hl
-	ld d, [hl]
-	dec hl
-	ld c, [hl]
-	dec hl
-	ld b, [hl]
-	dec hl
-	ld a, [hl]
-	sla b
-	sla b
-	sla b
-	rla
-	sla b
-	rla
-	ld [hli], a
-	ld [hl], b
-	inc hl
-	rrc c
-	rrc c
-	ld [hl], c
-	dec hl
-	ld a, $f
-	and c
-	or [hl]
-	ld [hli], a
-	ld a, [hli]
-	and $c0
-	or [hl]
-	dec hl
-	ld [hld], a
-	dec hl
-	pop de
-	ld b, h
-	ld c, l
-	pop hl
-	ld a, [bc]
-	ld [hli], a
-	inc bc
-	ld a, [bc]
-	ld [hli], a
-	inc bc
-	ld a, [bc]
-	ld [hli], a
-	ld a, [$dc19]
-	cp $0
-	jp nz, .asm_115c64
-	ld a, [$dc1a]
-	cp $0
-	jp nz, .asm_115c64
-	ret
-
-; 115cfd
-
-Function115cfd: ; 115cfd
-	cp $2b
-	jr c, .asm_115d27
-	jr z, .asm_115d2f
-	cp $2f
-	jr c, .asm_115d27
-	jr z, .asm_115d32
-	cp $30
-	jr c, .asm_115d27
-	cp $3a
-	jr c, .asm_115d35
-	cp $3d
-	jr c, .asm_115d27
-	jr z, .asm_115d38
-	cp $41
-	jr c, .asm_115d27
-	cp $5b
-	jr c, .asm_115d4d
-	cp $61
-	jr c, .asm_115d27
-	cp $7b
-	jr c, .asm_115d50
-
-.asm_115d27
-	pop hl
-	pop hl
-	ld a, $ff
-	ld [wStartDay], a
-	ret
-
-.asm_115d2f
-	ld a, $3e
-	ret
-
-.asm_115d32
-	ld a, $3f
-	ret
-
-.asm_115d35
-	add $4
-	ret
-
-.asm_115d38
-	push de
-	push hl
-	ld a, [WeeklyFlags]
-	ld l, a
-	ld a, [SwarmFlags]
-	ld h, a
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	dec de
-	ld [hl], d
-	dec hl
-	ld [hl], e
-	pop hl
-	pop de
-	xor a
-	ret
-
-.asm_115d4d
-	sub $41
-	ret
-
-.asm_115d50
-	sub $47
-	ret
-
-; 115d53
-
-Function115d53: ; 115d53
-.asm_115d53
-	ld a, [de]
-	ld [hli], a
-	inc e
-	call z, Function115d61
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_115d53
-	xor a
-	ld [hl], a
-	ret
-
-; 115d61
-
-Function115d61: ; 115d61
-	push bc
-	ld bc, $dc00
-	call Function115d80
-	pop bc
-	ret
-
-; 115d6a
-
-Function115d6a: ; 115d6a
-.asm_115d6a
-	ld a, [hli]
-	ld [de], a
-	inc e
-	call z, Function115d77
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_115d6a
-	xor a
-	ret
-
-; 115d77
-
-Function115d77: ; 115d77
-	push bc
-	ld bc, wCurrentMapSignpostCount
-	call Function115d80
-	pop bc
-	ret
-
-; 115d80
-
-Function115d80: ; 115d80
-	ld e, a
-	ld a, d
-	cp $bf
-	jr z, .asm_115d8b
-	inc d
-	ld a, e
-	ld e, $0
-	ret
-
-.asm_115d8b
-	ld a, [bc]
-	inc a
-	ld [bc], a
-	ld [hFF8C], a
-	ld [MBC3SRamBank], a
-	ld a, e
-	ld d, $a0
-	ld e, $0
-	ret
-
-; 115d99
-
-INCLUDE "misc/mobile_45_sprite_engine.asm"
-
-; 116567
-
-Function116567: ; 116567
-	ld hl, wc3f7
-	dec [hl]
-	ret nz
-	ld hl, wc3f6
-	inc [hl]
-.asm_116570
-	ld a, $7
-	sla a
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_1167eb
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push de
-	pop hl
-	ld a, [wc3f6]
-	sla a
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hli]
-	cp $fe
-	jr nz, .asm_116595
-	xor a
-	ld [wc3f6], a
-	jr .asm_116570
-
-.asm_116595
-	ld [wc3f5], a
-	ld a, [hl]
-	ld [wc3f7], a
-	ret
-
-; 11659d
-
-Function11659d: ; 11659d
-	ld a, [wc314]
-	cp $12
-	ret nc
-	ld e, a
-	ld d, 0
-	ld hl, Jumptable_1165af
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-
-; 1165af
-
-Jumptable_1165af: ; 1165af
-	dw Function11677e
-	dw Function1165d5
-	dw Function1165d8
-	dw Function1165e3
-	dw Function1165f5
-	dw Function116600
-	dw Function116615
-	dw Function116618
-	dw Function116623
-	dw Function116635
-	dw Function116640
-	dw Function116655
-	dw Function11665c
-	dw Function11668d
-	dw Function11669f
-	dw Function1166a2
-	dw Function1166c4
-	dw Function1166d6
-	dw Function1166d6
-; 1165d5
-
-Function1165d5: ; 1165d5
-	call Function11678e
-
-Function1165d8:
-	ld a, $0
-	ld c, a
-	ld a, $ff
-	ld b, a
-	ld a, $a8
-	call Function1166f4
-
-Function1165e3:
-	call Function116747
-	ld a, [wc30e]
-	cp $e8
-	ret nz
-	ld a, $1
-	call Function116780
-	ret c
-	jp Function116797
-
-; 1165f5
-
-Function1165f5: ; 1165f5
-	ld a, $1
-	ld c, a
-	ld a, $1
-	ld b, a
-	ld a, $e8
-	call Function1166f4
-
-Function116600:
-	call Function116747
-	ld a, [wc30e]
-	cp $a8
-	ret nz
-	ld a, $1
-	call Function116780
-	ret c
-	ld a, $2
-	ld [wc314], a
-	ret
-
-; 116615
-
-Function116615: ; 116615
-	call Function11678e
-
-Function116618:
-	ld a, $3
-	ld c, a
-	ld a, $1
-	ld b, a
-	ld a, $28
-	call Function11671f
-
-Function116623:
-	call Function116747
-	ld a, [wc30f]
-	cp $a0
-	ret nz
-	ld a, $6
-	call Function116780
-	ret c
-	jp Function116797
-
-; 116635
-
-Function116635: ; 116635
-	ld a, $2
-	ld c, a
-	ld a, $ff
-	ld b, a
-	ld a, $a0
-	call Function11671f
-
-Function116640:
-	call Function116747
-	ld a, [wc30f]
-	cp $28
-	ret nz
-	ld a, $6
-	call Function116780
-	ret c
-	ld a, $7
-	ld [wc314], a
-	ret
-
-; 116655
-
-Function116655: ; 116655
-	xor a
-	ld [wc314 + 3], a
-	call Function11678e
-
-Function11665c:
-	ld hl, wc314 + 3
-	ld a, $1
-	xor [hl]
-	ld [hl], a
-	add $4
-	ld c, a
-	call Function11679c
-	ld a, [wc314 + 3]
-	and a
-	jr nz, .asm_116673
-	ld a, $48
-	jr .asm_116675
-
-.asm_116673
-	ld a, $78
-
-.asm_116675
-	ld [wc30f], a
-	call Random
-	ld a, [hRandomAdd]
-	and $7
-	sla a
-	sla a
-	sla a
-	add $30
-	ld [wc30e], a
-	call Function116797
-
-Function11668d:
-	ld a, [wc311]
-	cp $ff
-	ret nz
-	ld a, $b
-	call Function116780
-	ret c
-	ld a, $c
-	ld [wc314], a
-	ret
-
-; 11669f
-
-Function11669f: ; 11669f
-	call Function11678e
-
-Function1166a2:
-	ld a, $a8
-	ld [wc30e], a
-	ld [wc3f1], a
-	ld a, $60
-	ld [wc30f], a
-	ld [wc3f3], a
-	ld a, $ff
-	ld [wc314 + 2], a
-	xor a
-	ld [wc314 + 3], a
-	ld a, $0
-	ld c, a
-	call Function11679c
-	call Function116797
-
-Function1166c4:
-	call Function116747
-	ld a, [wc30e]
-	cp $58
-	ret nz
-	ld a, $6
-	ld c, a
-	call Function11679c
-	call Function116797
-
-Function1166d6:
-	call Function116747
-	ld a, [wc30e]
-	cp $48
-	jr nz, .asm_1166e4
-	xor a
-	ld [wc314 + 2], a
-
-.asm_1166e4
-	ld a, [wc311]
-	cp $ff
-	ret nz
-	ld a, $4
-	ld [$c319], a
-	xor a
-	ld [wc314], a
-	ret
-
-; 1166f4
-
-Function1166f4: ; 1166f4
-	ld [wc30e], a
-	ld a, b
-	ld [wc314 + 2], a
-	xor a
-	ld [wc314 + 3], a
-	ld hl, wc30f
-.asm_116702
-	call Random
-	ld a, [hRandomAdd]
-	and $7
-	jr z, .asm_11670c
-	dec a
-
-.asm_11670c
-	sla a
-	sla a
-	sla a
-	add $48
-	cp [hl]
-	jr z, .asm_116702
-	ld [hl], a
-	call Function11679c
-	call Function116797
-	ret
-
-; 11671f
-
-Function11671f: ; 11671f
-	ld [wc30f], a
-	ld a, b
-	ld [wc314 + 3], a
-	xor a
-	ld [wc314 + 2], a
-	ld hl, wc30e
-.asm_11672d
-	call Random
-	ld a, [hRandomAdd]
-	and $7
-	sla a
-	sla a
-	sla a
-	add $30
-	cp [hl]
-	jr z, .asm_11672d
-	ld [hl], a
-	call Function11679c
-	call Function116797
-	ret
-
-; 116747
-
-Function116747: ; 116747
-	ld hl, wc30e
-	ld a, [wc314 + 2]
-	add [hl]
-	ld [hl], a
-	ld hl, wc30f
-	ld a, [wc314 + 3]
-	add [hl]
-	ld [hl], a
-	ret
-
-; 116758
-
-Function116758: ; 116758
-	ld a, [wc30f]
-	cp $30
-	jr c, .asm_116770
-	jr z, .asm_116770
-	cp $38
-	jr c, .asm_116774
-	jr z, .asm_116774
-	cp $40
-	jr c, .asm_116778
-	jr z, .asm_116778
-	xor a
-	jr .asm_11677a
-
-.asm_116770
-	ld a, $c
-	jr .asm_11677a
-
-.asm_116774
-	ld a, $8
-	jr .asm_11677a
-
-.asm_116778
-	ld a, $4
-
-.asm_11677a
-	ld [wc314 + 4], a
-	ret
-
-; 11677e
-
-Function11677e: ; 11677e
-	ld a, $0
-
-Function116780:
-	ld hl, wc314 + 1
-	cp [hl]
-	jr z, .asm_11678c
-	ld a, [hl]
-	ld [wc314], a
-	scf
-	ret
-
-.asm_11678c
-	and a
-	ret
-
-; 11678e
-
-Function11678e: ; 11678e
-	ld hl, wc314
-	ld a, [hl]
-	ld [wc314 + 1], a
-	inc [hl]
-	ret
-
-; 116797
-
-Function116797: ; 116797
-	ld hl, wc314
-	inc [hl]
-	ret
-
-; 11679c
-
-Function11679c:
-	ld a, c
-	ld [wc311], a
-	xor a
-	ld [wc312], a
-	jr asm_1167af
-
-Function1167a6: ; 1167a6
-	ld hl, wc313
-	dec [hl]
-	ret nz
-	ld hl, wc312
-	inc [hl]
-
-asm_1167af
-.asm_1167af
-	ld a, [wc311]
-	cp $ff
-	ret z
-	sla a
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_1167eb
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push de
-	pop hl
-	ld a, [wc312]
-	sla a
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_1167dc
-	cp $fe
-	jr nz, .asm_1167e3
-	xor a
-	ld [wc312], a
-	jr .asm_1167af
-
-.asm_1167dc
-	ld a, $ff
-	ld [wc311], a
-	ld a, $fd
-
-.asm_1167e3
-	ld [wc310], a
-	ld a, [hl]
-	ld [wc313], a
-	ret
-
-; 1167eb
-
-Unknown_1167eb:
-	dw Unknown_1167fb
-	dw Unknown_116808
-	dw Unknown_116867
-	dw Unknown_116870
-	dw Unknown_116815
-	dw Unknown_11683e
-	dw Unknown_116881
-	dw Unknown_1168ae
-
-Unknown_1167fb: ; 1167fb
-	db $0, $6
-	db $1, $4
-	db $2, $4
-	db $3, $6
-	db $2, $4
-	db $1, $4
-	db $fe
-
-Unknown_116808: ; 116808
-	db $4, $6
-	db $5, $4
-	db $6, $4
-	db $7, $6
-	db $6, $4
-	db $5, $4
-	db $fe
-
-Unknown_116815: ; 116815
-	db $fd, $20
-	db $8, $c
-	db $9, $24
-	db $a, $4
-	db $b, $8
-	db $a, $4
-	db $9, $6
-	db $c, $4
-	db $d, $8
-	db $c, $5
-	db $9, $24
-	db $a, $4
-	db $b, $8
-	db $a, $4
-	db $9, $6
-	db $c, $4
-	db $d, $8
-	db $c, $5
-	db $9, $8
-	db $8, $4
-	db $ff
-
-Unknown_11683e: ; 11683e
-	db $fd, $20
-	db $e, $c
-	db $f, $24
-	db $10, $4
-	db $11, $8
-	db $10, $4
-	db $f, $6
-	db $12, $4
-	db $13, $8
-	db $12, $5
-	db $f, $24
-	db $10, $4
-	db $11, $8
-	db $10, $4
-	db $f, $6
-	db $12, $4
-	db $13, $8
-	db $12, $5
-	db $f, $8
-	db $e, $4
-	db $ff
-
-Unknown_116867: ; 116867
-	db $14, $8
-	db $15, $8
-	db $16, $8
-	db $15, $8
-	db $fe
-
-Unknown_116870: ; 116870
-	db $17, $5
-	db $18, $5
-	db $19, $5
-	db $1a, $5
-	db $1b, $5
-	db $1a, $5
-	db $19, $5
-	db $18, $5
-	db $fe
-
-Unknown_116881: ; 116881
-	db $1c, $7
-	db $1d, $7
-	db $1e, $a
-	db $1f, $a
-	db $20, $5
-	db $21, $5
-	db $20, $5
-	db $21, $5
-	db $20, $18
-	db $22, $4
-	db $23, $2
-	db $22, $2
-	db $23, $2
-	db $22, $1
-	db $23, $1
-	db $22, $1
-	db $23, $4
-	db $fd, $1
-	db $23, $1
-	db $fd, $2
-	db $23, $2
-	db $fd, $40
-	db $ff
-
-Unknown_1168ae: ; 1168ae
-	db $24, $4
-	db $25, $4
-	db $26, $4
-	db $27, $4
-	db $28, $4
-	db $29, $4
-	db $2a, $4
-	db $2b, $4
-	db $2c, $4
-	db $2d, $4
-	db $2e, $4
-	db $fe
-; 1168c5
-
-Unknown_1168c5:
-	dw Unknown_116923
-	dw Unknown_116960
-	dw Unknown_1169a1
-	dw Unknown_1169de
-	dw Unknown_116a1b
-	dw Unknown_116a58
-	dw Unknown_116a99
-	dw Unknown_116ad6
-	dw Unknown_116d1b
-	dw Unknown_116d4c
-	dw Unknown_116d85
-	dw Unknown_116dbe
-	dw Unknown_116df7
-	dw Unknown_116e30
-	dw Unknown_116e69
-	dw Unknown_116e9a
-	dw Unknown_116ed3
-	dw Unknown_116f0c
-	dw Unknown_116f45
-	dw Unknown_116f7e
-	dw Unknown_116b13
-	dw Unknown_116b54
-	dw Unknown_116b95
-	dw Unknown_116bd6
-	dw Unknown_116c17
-	dw Unknown_116c58
-	dw Unknown_116c99
-	dw Unknown_116cda
-	dw Unknown_116fb7
-	dw Unknown_116fec
-	dw Unknown_117025
-	dw Unknown_117056
-	dw Unknown_117083
-	dw Unknown_1170c0
-	dw Unknown_1170fd
-	dw Unknown_11713a
-	dw Unknown_117177
-	dw Unknown_11719c
-	dw Unknown_1171c1
-	dw Unknown_1171e6
-	dw Unknown_11720b
-	dw Unknown_117230
-	dw Unknown_117255
-	dw Unknown_11727a
-	dw Unknown_11729f
-	dw Unknown_1172c4
-	dw Unknown_1172e9
-
-Unknown_116923: ; 116923
-	db $f
-	db $0, $0, $1, $a
-	db $0, $8, $2, $d
-	db $0, $10, $3, $d
-	db $0, $18, $4, $d
-	db $8, $0, $11, $a
-	db $8, $8, $12, $a
-	db $8, $10, $13, $a
-	db $8, $18, $14, $d
-	db $10, $0, $21, $a
-	db $10, $8, $22, $a
-	db $10, $10, $23, $a
-	db $10, $18, $24, $a
-	db $18, $0, $31, $a
-	db $18, $8, $32, $a
-	db $18, $10, $33, $a
-
-Unknown_116960: ; 116960
-	db $10
-	db $1, $0, $1, $a
-	db $1, $8, $2, $d
-	db $1, $10, $3, $d
-	db $1, $18, $4, $d
-	db $9, $0, $11, $a
-	db $9, $8, $12, $a
-	db $9, $10, $13, $a
-	db $9, $18, $14, $d
-	db $11, $0, $5, $a
-	db $11, $8, $6, $a
-	db $11, $10, $7, $a
-	db $11, $18, $34, $a
-	db $19, $0, $15, $a
-	db $19, $8, $16, $a
-	db $19, $10, $17, $a
-	db $19, $18, $35, $a
-
-Unknown_1169a1: ; 1169a1
-	db $f
-	db $1, $0, $1, $a
-	db $1, $8, $2, $d
-	db $1, $10, $3, $d
-	db $1, $18, $4, $d
-	db $9, $0, $11, $a
-	db $9, $8, $12, $a
-	db $9, $10, $13, $a
-	db $9, $18, $14, $d
-	db $11, $0, $25, $a
-	db $11, $8, $26, $a
-	db $11, $10, $27, $a
-	db $11, $18, $34, $a
-	db $19, $8, $36, $a
-	db $19, $10, $37, $a
-	db $19, $18, $35, $a
-
-Unknown_1169de: ; 1169de
-	db $f
-	db $0, $0, $1, $a
-	db $0, $8, $2, $d
-	db $0, $10, $3, $d
-	db $0, $18, $4, $d
-	db $8, $0, $11, $a
-	db $8, $8, $12, $a
-	db $8, $10, $13, $a
-	db $8, $18, $14, $d
-	db $10, $0, $10, $a
-	db $10, $8, $20, $a
-	db $10, $10, $30, $a
-	db $10, $18, $24, $a
-	db $18, $0, $31, $a
-	db $18, $8, $32, $a
-	db $18, $10, $33, $a
-
-Unknown_116a1b: ; 116a1b
-	db $f
-	db $0, $0, $4, $2d
-	db $0, $8, $3, $2d
-	db $0, $10, $2, $2d
-	db $0, $18, $1, $2a
-	db $8, $0, $14, $2d
-	db $8, $8, $13, $2a
-	db $8, $10, $12, $2a
-	db $8, $18, $11, $2a
-	db $10, $0, $24, $2a
-	db $10, $8, $23, $2a
-	db $10, $10, $22, $2a
-	db $10, $18, $21, $2a
-	db $18, $8, $33, $2a
-	db $18, $10, $32, $2a
-	db $18, $18, $31, $2a
-
-Unknown_116a58: ; 116a58
-	db $10
-	db $1, $0, $4, $2d
-	db $1, $8, $3, $2d
-	db $1, $10, $2, $2d
-	db $1, $18, $1, $2a
-	db $9, $0, $14, $2d
-	db $9, $8, $13, $2a
-	db $9, $10, $12, $2a
-	db $9, $18, $11, $2a
-	db $11, $0, $34, $2a
-	db $11, $8, $7, $2a
-	db $11, $10, $6, $2a
-	db $11, $18, $5, $2a
-	db $19, $0, $35, $2a
-	db $19, $8, $17, $2a
-	db $19, $10, $16, $2a
-	db $19, $18, $15, $2a
-
-Unknown_116a99: ; 116a99
-	db $f
-	db $1, $0, $4, $2d
-	db $1, $8, $3, $2d
-	db $1, $10, $2, $2d
-	db $1, $18, $1, $2a
-	db $9, $0, $14, $2d
-	db $9, $8, $13, $2a
-	db $9, $10, $12, $2a
-	db $9, $18, $11, $2a
-	db $11, $0, $34, $2a
-	db $11, $8, $27, $2a
-	db $11, $10, $26, $2a
-	db $11, $18, $25, $2a
-	db $19, $0, $35, $2a
-	db $19, $8, $37, $2a
-	db $19, $10, $36, $2a
-
-Unknown_116ad6: ; 116ad6
-	db $f
-	db $0, $0, $4, $2d
-	db $0, $8, $3, $2d
-	db $0, $10, $2, $2d
-	db $0, $18, $1, $2a
-	db $8, $0, $14, $2d
-	db $8, $8, $13, $2a
-	db $8, $10, $12, $2a
-	db $8, $18, $11, $2a
-	db $10, $0, $24, $2a
-	db $10, $8, $30, $2a
-	db $10, $10, $20, $2a
-	db $10, $18, $10, $2a
-	db $18, $8, $33, $2a
-	db $18, $10, $32, $2a
-	db $18, $18, $31, $2a
-
-Unknown_116b13: ; 116b13
-	db $10
-	db $18, $0, $0, $b
-	db $18, $8, $8, $b
-	db $18, $10, $5c, $b
-	db $18, $18, $0, $b
-	db $10, $0, $0, $b
-	db $10, $8, $5d, $b
-	db $10, $10, $5e, $b
-	db $10, $18, $0, $b
-	db $8, $0, $50, $b
-	db $8, $8, $51, $b
-	db $8, $10, $52, $b
-	db $8, $18, $50, $2b
-	db $0, $0, $43, $b
-	db $0, $8, $44, $b
-	db $0, $10, $44, $2b
-	db $0, $18, $43, $2b
-
-Unknown_116b54: ; 116b54
-	db $10
-	db $19, $0, $0, $b
-	db $19, $8, $18, $b
-	db $19, $10, $c, $b
-	db $19, $18, $0, $b
-	db $11, $0, $42, $b
-	db $11, $8, $3a, $b
-	db $11, $10, $3a, $2b
-	db $11, $18, $42, $2b
-	db $9, $0, $58, $b
-	db $9, $8, $45, $b
-	db $9, $10, $45, $2b
-	db $9, $18, $58, $2b
-	db $1, $0, $d, $b
-	db $1, $8, $44, $b
-	db $1, $10, $44, $2b
-	db $1, $18, $d, $2b
-
-Unknown_116b95: ; 116b95
-	db $10
-	db $18, $0, $0, $b
-	db $18, $8, $5c, $2b
-	db $18, $10, $8, $2b
-	db $18, $18, $0, $b
-	db $10, $0, $0, $b
-	db $10, $8, $5e, $2b
-	db $10, $10, $5d, $2b
-	db $10, $18, $0, $b
-	db $8, $0, $50, $b
-	db $8, $8, $52, $2b
-	db $8, $10, $51, $2b
-	db $8, $18, $50, $2b
-	db $0, $0, $43, $b
-	db $0, $8, $44, $b
-	db $0, $10, $44, $2b
-	db $0, $18, $43, $2b
-
-Unknown_116bd6: ; 116bd6
-	db $10
-	db $18, $0, $0, $a
-	db $18, $8, $56, $a
-	db $18, $10, $57, $a
-	db $18, $18, $0, $a
-	db $10, $0, $64, $a
-	db $10, $8, $4a, $a
-	db $10, $10, $4b, $a
-	db $10, $18, $71, $a
-	db $8, $0, $54, $a
-	db $8, $8, $55, $a
-	db $8, $10, $55, $2a
-	db $8, $18, $54, $2a
-	db $0, $0, $48, $a
-	db $0, $8, $49, $a
-	db $0, $10, $49, $2a
-	db $0, $18, $48, $2a
-
-Unknown_116c17: ; 116c17
-	db $10
-	db $19, $0, $0, $a
-	db $19, $8, $76, $a
-	db $19, $10, $77, $a
-	db $19, $18, $0, $a
-	db $11, $0, $64, $a
-	db $11, $8, $69, $a
-	db $11, $10, $6a, $a
-	db $11, $18, $6b, $a
-	db $9, $0, $6f, $a
-	db $9, $8, $70, $a
-	db $9, $10, $70, $2a
-	db $9, $18, $6f, $2a
-	db $1, $0, $63, $a
-	db $1, $8, $19, $a
-	db $1, $10, $19, $2a
-	db $1, $18, $63, $2a
-
-Unknown_116c58: ; 116c58
-	db $10
-	db $1a, $0, $6c, $a
-	db $1a, $8, $6d, $a
-	db $1a, $10, $6e, $a
-	db $1a, $18, $0, $a
-	db $12, $0, $5f, $a
-	db $12, $8, $60, $a
-	db $12, $10, $61, $a
-	db $12, $18, $62, $a
-	db $a, $0, $53, $a
-	db $a, $8, $55, $a
-	db $a, $10, $55, $2a
-	db $a, $18, $53, $2a
-	db $2, $0, $46, $a
-	db $2, $8, $47, $a
-	db $2, $10, $47, $2a
-	db $2, $18, $46, $2a
-
-Unknown_116c99: ; 116c99
-	db $10
-	db $19, $0, $0, $2a
-	db $19, $8, $77, $2a
-	db $19, $10, $76, $2a
-	db $19, $18, $0, $2a
-	db $11, $0, $6b, $2a
-	db $11, $8, $6a, $2a
-	db $11, $10, $69, $2a
-	db $11, $18, $64, $2a
-	db $9, $0, $6f, $a
-	db $9, $8, $70, $a
-	db $9, $10, $70, $2a
-	db $9, $18, $6f, $2a
-	db $1, $0, $63, $a
-	db $1, $8, $19, $a
-	db $1, $10, $19, $2a
-	db $1, $18, $63, $2a
-
-Unknown_116cda: ; 116cda
-	db $10
-	db $18, $0, $0, $a
-	db $18, $8, $57, $2a
-	db $18, $10, $56, $2a
-	db $18, $18, $0, $a
-	db $10, $0, $71, $2a
-	db $10, $8, $4b, $2a
-	db $10, $10, $4a, $2a
-	db $10, $18, $64, $2a
-	db $8, $0, $54, $a
-	db $8, $8, $55, $a
-	db $8, $10, $55, $2a
-	db $8, $18, $54, $2a
-	db $0, $0, $48, $a
-	db $0, $8, $49, $a
-	db $0, $10, $49, $2a
-	db $0, $18, $48, $2a
-
-Unknown_116d1b: ; 116d1b
-	db $c
-	db $0, $0, $38, $4a
-	db $0, $8, $39, $4a
-	db $0, $10, $39, $6a
-	db $0, $18, $38, $6a
-	db $8, $0, $28, $4a
-	db $8, $8, $29, $4a
-	db $8, $10, $29, $6a
-	db $8, $18, $28, $6a
-	db $10, $0, $9, $4d
-	db $10, $8, $19, $4a
-	db $10, $10, $19, $6a
-	db $10, $18, $9, $6d
-
-Unknown_116d4c: ; 116d4c
-	db $e
-	db $0, $8, $3b, $4a
-	db $0, $10, $3b, $6a
-	db $8, $0, $2a, $4a
-	db $8, $8, $2b, $4a
-	db $8, $10, $2b, $6a
-	db $8, $18, $2a, $6a
-	db $10, $0, $1a, $4a
-	db $10, $8, $1b, $4a
-	db $10, $10, $1b, $6a
-	db $10, $18, $1a, $6a
-	db $18, $0, $a, $4a
-	db $18, $8, $b, $4a
-	db $18, $10, $b, $6a
-	db $18, $18, $a, $6a
-
-Unknown_116d85: ; 116d85
-	db $e
-	db $0, $0, $35, $2a
-	db $0, $8, $3c, $4a
-	db $0, $10, $3d, $4a
-	db $0, $18, $3e, $4a
-	db $8, $0, $2c, $4a
-	db $8, $8, $2d, $4a
-	db $8, $10, $2e, $4a
-	db $8, $18, $2f, $4a
-	db $10, $0, $1c, $4a
-	db $10, $8, $1d, $4a
-	db $10, $10, $1e, $4d
-	db $10, $18, $1f, $4d
-	db $18, $10, $e, $4d
-	db $18, $18, $f, $4a
-
-Unknown_116dbe: ; 116dbe
-	db $e
-	db $0, $0, $65, $4a
-	db $0, $8, $66, $4a
-	db $0, $10, $67, $4a
-	db $0, $18, $68, $4a
-	db $8, $8, $59, $4a
-	db $8, $10, $5a, $4a
-	db $8, $18, $5b, $4a
-	db $10, $0, $4c, $4a
-	db $10, $8, $4d, $4d
-	db $10, $10, $4e, $4d
-	db $10, $18, $4f, $4a
-	db $18, $0, $3f, $4d
-	db $18, $8, $40, $4d
-	db $18, $10, $41, $4d
-
-Unknown_116df7: ; 116df7
-	db $e
-	db $0, $0, $3e, $6a
-	db $0, $8, $3d, $6a
-	db $0, $10, $3c, $6a
-	db $0, $18, $35, $a
-	db $8, $0, $2f, $6a
-	db $8, $8, $2e, $6a
-	db $8, $10, $2d, $6a
-	db $8, $18, $2c, $6a
-	db $10, $0, $1f, $6d
-	db $10, $8, $1e, $6d
-	db $10, $10, $1d, $6a
-	db $10, $18, $1c, $6a
-	db $18, $0, $f, $6a
-	db $18, $8, $e, $6d
-
-Unknown_116e30: ; 116e30
-	db $e
-	db $0, $0, $68, $6a
-	db $0, $8, $67, $6a
-	db $0, $10, $66, $6a
-	db $0, $18, $65, $6a
-	db $8, $0, $5b, $6a
-	db $8, $8, $5a, $6a
-	db $8, $10, $59, $6a
-	db $10, $0, $4f, $6a
-	db $10, $8, $4e, $6d
-	db $10, $10, $4d, $6d
-	db $10, $18, $4c, $6a
-	db $18, $8, $41, $6d
-	db $18, $10, $40, $6d
-	db $18, $18, $3f, $6d
-
-Unknown_116e69: ; 116e69
-	db $c
-	db $8, $0, $9, $d
-	db $8, $8, $19, $a
-	db $8, $10, $19, $2a
-	db $8, $18, $9, $2d
-	db $10, $0, $28, $a
-	db $10, $8, $29, $a
-	db $10, $10, $29, $2a
-	db $10, $18, $28, $2a
-	db $18, $0, $38, $a
-	db $18, $8, $39, $a
-	db $18, $10, $39, $2a
-	db $18, $18, $38, $2a
-
-Unknown_116e9a: ; 116e9a
-	db $e
-	db $0, $0, $a, $a
-	db $0, $8, $b, $a
-	db $0, $10, $b, $2a
-	db $0, $18, $a, $2a
-	db $8, $0, $1a, $a
-	db $8, $8, $1b, $a
-	db $8, $10, $1b, $2a
-	db $8, $18, $1a, $2a
-	db $10, $0, $2a, $a
-	db $10, $8, $2b, $a
-	db $10, $10, $2b, $2a
-	db $10, $18, $2a, $2a
-	db $18, $8, $3b, $a
-	db $18, $10, $3b, $2a
-
-Unknown_116ed3: ; 116ed3
-	db $e
-	db $0, $10, $e, $d
-	db $0, $18, $f, $a
-	db $8, $0, $1c, $a
-	db $8, $8, $1d, $a
-	db $8, $10, $1e, $d
-	db $8, $18, $1f, $d
-	db $10, $0, $2c, $a
-	db $10, $8, $2d, $a
-	db $10, $10, $2e, $a
-	db $10, $18, $2f, $a
-	db $18, $0, $35, $6a
-	db $18, $8, $3c, $a
-	db $18, $10, $3d, $a
-	db $18, $18, $3e, $a
-
-Unknown_116f0c: ; 116f0c
-	db $e
-	db $0, $0, $3f, $d
-	db $0, $8, $40, $d
-	db $0, $10, $41, $d
-	db $8, $0, $4c, $a
-	db $8, $8, $4d, $d
-	db $8, $10, $4e, $d
-	db $8, $18, $4f, $a
-	db $10, $8, $59, $a
-	db $10, $10, $5a, $a
-	db $10, $18, $5b, $a
-	db $18, $0, $65, $a
-	db $18, $8, $66, $a
-	db $18, $10, $67, $a
-	db $18, $18, $68, $a
-
-Unknown_116f45: ; 116f45
-	db $e
-	db $0, $0, $f, $2a
-	db $0, $8, $e, $2d
-	db $8, $0, $1f, $2d
-	db $8, $8, $1e, $2d
-	db $8, $10, $1d, $2a
-	db $8, $18, $1c, $2a
-	db $10, $0, $2f, $2a
-	db $10, $8, $2e, $2a
-	db $10, $10, $2d, $2a
-	db $10, $18, $2c, $2a
-	db $18, $0, $3e, $2a
-	db $18, $8, $3d, $2a
-	db $18, $10, $3c, $2a
-	db $18, $18, $35, $4a
-
-Unknown_116f7e: ; 116f7e
-	db $e
-	db $0, $8, $41, $2d
-	db $0, $10, $40, $2d
-	db $0, $18, $3f, $2d
-	db $8, $0, $4f, $2a
-	db $8, $8, $4e, $2d
-	db $8, $10, $4d, $2d
-	db $8, $18, $4c, $2a
-	db $10, $0, $5b, $2a
-	db $10, $8, $5a, $2a
-	db $10, $10, $59, $2a
-	db $18, $0, $68, $2a
-	db $18, $8, $67, $2a
-	db $18, $10, $66, $2a
-	db $18, $18, $65, $2a
-
-Unknown_116fb7: ; 116fb7
-	db $d
-	db $fa, $0, $72, $a
-	db $fa, $8, $73, $d
-	db $fa, $10, $74, $d
-	db $fa, $18, $75, $d
-	db $2, $0, $81, $a
-	db $2, $8, $82, $a
-	db $2, $10, $83, $a
-	db $2, $18, $84, $a
-	db $a, $0, $91, $a
-	db $a, $8, $92, $a
-	db $a, $10, $93, $a
-	db $a, $18, $94, $a
-	db $12, $10, $a3, $a
-
-Unknown_116fec: ; 116fec
-	db $e
-	db $fd, $0, $85, $d
-	db $fd, $8, $86, $d
-	db $5, $0, $95, $d
-	db $5, $8, $96, $a
-	db $5, $10, $97, $a
-	db $5, $18, $98, $a
-	db $d, $0, $a5, $a
-	db $d, $8, $a6, $a
-	db $d, $10, $a7, $a
-	db $d, $18, $a8, $a
-	db $15, $0, $b3, $a
-	db $15, $8, $b4, $a
-	db $15, $10, $b5, $a
-	db $15, $18, $b6, $a
-
-Unknown_117025: ; 117025
-	db $c
-	db $8, $0, $79, $d
-	db $8, $8, $7a, $d
-	db $8, $10, $7b, $a
-	db $8, $18, $7c, $a
-	db $10, $0, $89, $d
-	db $10, $8, $8a, $a
-	db $10, $10, $8b, $a
-	db $10, $18, $8c, $a
-	db $18, $0, $99, $a
-	db $18, $8, $9a, $a
-	db $18, $10, $9b, $a
-	db $18, $18, $9c, $a
-
-Unknown_117056: ; 117056
-	db $b
-	db $8, $0, $7d, $a
-	db $8, $8, $7e, $d
-	db $8, $10, $7f, $d
-	db $8, $18, $80, $a
-	db $10, $0, $8d, $a
-	db $10, $8, $8e, $a
-	db $10, $10, $8f, $a
-	db $10, $18, $90, $a
-	db $18, $8, $9e, $a
-	db $18, $10, $9f, $a
-	db $18, $18, $a0, $a
-
-Unknown_117083: ; 117083
-	db $f
-	db $0, $0, $a1, $a
-	db $0, $8, $a2, $a
-	db $0, $10, $a2, $2a
-	db $0, $18, $a1, $2a
-	db $8, $0, $b1, $a
-	db $8, $8, $b2, $d
-	db $8, $10, $b2, $2d
-	db $8, $18, $b1, $2a
-	db $10, $0, $ab, $a
-	db $10, $8, $ac, $a
-	db $10, $10, $ac, $2a
-	db $10, $18, $ab, $2a
-	db $18, $8, $a4, $a
-	db $18, $10, $87, $a
-	db $18, $18, $88, $a
-
-Unknown_1170c0: ; 1170c0
-	db $f
-	db $0, $0, $a1, $a
-	db $0, $8, $a2, $d
-	db $0, $10, $a2, $2a
-	db $0, $18, $a1, $2a
-	db $8, $0, $b1, $a
-	db $8, $8, $78, $d
-	db $8, $10, $78, $2d
-	db $8, $18, $b1, $2a
-	db $10, $0, $ab, $a
-	db $10, $8, $ac, $a
-	db $10, $10, $ac, $2a
-	db $10, $18, $ab, $2a
-	db $18, $8, $a4, $a
-	db $18, $10, $87, $a
-	db $18, $18, $88, $a
-
-Unknown_1170fd: ; 1170fd
-	db $f
-	db $0, $0, $a9, $a
-	db $0, $8, $aa, $a
-	db $0, $10, $aa, $2a
-	db $0, $18, $a9, $2a
-	db $8, $0, $b7, $a
-	db $8, $8, $b8, $a
-	db $8, $10, $b8, $2a
-	db $8, $18, $b7, $2a
-	db $10, $0, $ab, $a
-	db $10, $8, $ac, $a
-	db $10, $10, $ac, $2a
-	db $10, $18, $ad, $a
-	db $18, $8, $a4, $a
-	db $18, $10, $ba, $a
-	db $18, $18, $bb, $a
-
-Unknown_11713a: ; 11713a
-	db $f
-	db $0, $0, $ae, $c
-	db $0, $8, $af, $c
-	db $0, $10, $af, $2c
-	db $0, $18, $ae, $2c
-	db $8, $0, $bc, $c
-	db $8, $8, $bd, $c
-	db $8, $10, $bd, $2c
-	db $8, $18, $bc, $2c
-	db $10, $0, $bf, $c
-	db $10, $8, $9d, $c
-	db $10, $10, $9d, $2c
-	db $10, $18, $b0, $c
-	db $18, $8, $b9, $c
-	db $18, $10, $c0, $c
-	db $18, $18, $be, $c
-
-Unknown_117177: ; 117177
-	db $9
-	db $14, $0, $1f, $6
-	db $14, $8, $20, $6
-	db $14, $10, $21, $6
-	db $c, $0, $10, $6
-	db $c, $8, $11, $6
-	db $c, $10, $12, $6
-	db $4, $0, $1, $6
-	db $4, $8, $2, $6
-	db $4, $10, $3, $6
-
-Unknown_11719c: ; 11719c
-	db $9
-	db $14, $0, $22, $6
-	db $14, $8, $23, $6
-	db $14, $10, $24, $6
-	db $c, $0, $13, $6
-	db $c, $8, $14, $6
-	db $c, $10, $15, $6
-	db $4, $0, $4, $6
-	db $4, $8, $5, $6
-	db $4, $10, $6, $6
-
-Unknown_1171c1: ; 1171c1
-	db $9
-	db $14, $0, $25, $6
-	db $14, $8, $26, $6
-	db $14, $10, $27, $6
-	db $c, $0, $16, $6
-	db $c, $8, $17, $6
-	db $c, $10, $18, $6
-	db $4, $0, $7, $6
-	db $4, $8, $8, $6
-	db $4, $10, $9, $6
-
-Unknown_1171e6: ; 1171e6
-	db $9
-	db $14, $0, $28, $6
-	db $14, $8, $29, $6
-	db $14, $10, $2a, $6
-	db $c, $0, $19, $6
-	db $c, $8, $1a, $6
-	db $c, $10, $1b, $6
-	db $4, $0, $a, $6
-	db $4, $8, $b, $6
-	db $4, $10, $c, $6
-
-Unknown_11720b: ; 11720b
-	db $9
-	db $14, $0, $2b, $6
-	db $14, $8, $2c, $6
-	db $14, $10, $2d, $6
-	db $c, $0, $1c, $6
-	db $c, $8, $1d, $6
-	db $c, $10, $1e, $6
-	db $4, $0, $d, $6
-	db $4, $8, $e, $6
-	db $4, $10, $f, $6
-
-Unknown_117230: ; 117230
-	db $9
-	db $14, $0, $47, $6
-	db $14, $8, $48, $6
-	db $14, $10, $49, $6
-	db $c, $0, $3b, $6
-	db $c, $8, $3c, $6
-	db $c, $10, $3b, $26
-	db $4, $0, $2e, $6
-	db $4, $8, $2f, $6
-	db $4, $10, $30, $6
-
-Unknown_117255: ; 117255
-	db $9
-	db $14, $0, $35, $6
-	db $14, $8, $4a, $6
-	db $14, $10, $35, $6
-	db $c, $0, $3d, $6
-	db $c, $8, $35, $6
-	db $c, $10, $3d, $26
-	db $4, $0, $31, $6
-	db $4, $8, $32, $6
-	db $4, $10, $31, $26
-
-Unknown_11727a: ; 11727a
-	db $9
-	db $14, $0, $4b, $6
-	db $14, $8, $4c, $6
-	db $14, $10, $4d, $6
-	db $c, $0, $3e, $6
-	db $c, $8, $3f, $6
-	db $c, $10, $40, $6
-	db $4, $0, $33, $6
-	db $4, $8, $34, $6
-	db $4, $10, $35, $6
-
-Unknown_11729f: ; 11729f
-	db $9
-	db $14, $0, $4e, $6
-	db $14, $8, $4f, $6
-	db $14, $10, $50, $6
-	db $c, $0, $41, $6
-	db $c, $8, $42, $6
-	db $c, $10, $43, $6
-	db $4, $0, $35, $6
-	db $4, $8, $36, $6
-	db $4, $10, $37, $6
-
-Unknown_1172c4: ; 1172c4
-	db $9
-	db $14, $0, $51, $6
-	db $14, $8, $52, $6
-	db $14, $10, $35, $6
-	db $c, $0, $44, $6
-	db $c, $8, $45, $6
-	db $c, $10, $46, $6
-	db $4, $0, $38, $6
-	db $4, $8, $39, $6
-	db $4, $10, $3a, $6
-
-Unknown_1172e9: ; 1172e9
-	db $9
-	db $10, $0, $0, $2
-	db $10, $8, $0, $2
-	db $10, $10, $0, $2
-	db $8, $0, $0, $2
-	db $8, $8, $0, $2
-	db $c, $10, $1f, $6
-	db $0, $0, $0, $2
-	db $0, $8, $0, $2
-	db $4, $10, $10, $6
-; 11730e
-
-Palette_11730e:
-	RGB 31, 31, 31
-	RGB  7,  5,  4
-	RGB 31, 28,  4
-	RGB 31,  5,  5
-	RGB 31, 31, 31
-	RGB  7,  5,  4
-	RGB 31, 23,  0
-	RGB 31, 28,  4
-	RGB 31, 31, 31
-	RGB 16, 19, 31
-	RGB 17, 31, 31
-	RGB 31, 31, 31
-	RGB  5,  5,  5
-	RGB  7,  5,  4
-	RGB 31, 28,  4
-	RGB 19, 11,  6
-	RGB 31, 31, 31
-	RGB  3, 15, 31
-	RGB  4, 25, 25
-	RGB  0,  7, 12
-	RGB 31, 31, 31
-	RGB  0, 16,  0
-	RGB  0, 16,  0
-	RGB  0, 16,  0
-	RGB  4, 11, 22
-	RGB  0, 16,  0
-	RGB  0, 16,  0
-	RGB  0, 16,  0
-	RGB 22, 11,  8
-	RGB  0, 16,  0
-	RGB  0, 16,  0
-	RGB  0, 16,  0
-
-Palette_11734e:
-	RGB 31, 30, 30
-	RGB  2,  0,  0
-	RGB 10,  9,  9
-	RGB 15, 14, 14
-
-Unknown_117356: ; 117356
-	db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
-	db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c5, $c6, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
-	db $c2, $c2, $c6, $c5, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
-	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
-	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
-	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
-	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
-	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
-	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
-	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $d8, $c2, $c2, $d8, $c2, $c2, $c2
-	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c7, $c8, $ca, $cb, $cc, $cd, $ce, $c2, $cf, $d0, $d1, $d2, $d3, $c2, $d4, $d5
-	db $d6, $d7, $c8, $c7, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-	db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
-	db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-
-	db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
-	db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $8f, $0f, $0f, $8f, $0f, $0f, $0f
-	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f
-	db $8f, $8f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-	db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
-	db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-; 117656
-
-
-SECTION "Mobile Stadium", ROMX
-
-Special_GiveOddEgg: ; 117656
-	callba GiveOddEgg
-	ret
-
-; 11765d
-
-Function11765d: ; 11765d (45:765d)
-	ld a, [hInMenu]
-	push af
-	ld a, $1
-	ld [hInMenu], a
-	call Function11766b
-	pop af
-	ld [hInMenu], a
-	ret
-
-Function11766b: ; 11766b (45:766b)
-	call Function117699
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	call Function1176ee
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $b1f3
-	ld de, wcd49
-	ld bc, $8
-	call CopyBytes
-	ld de, $c708
-	ld bc, $11
-	call CopyBytes
-	call CloseSRAM
-	pop af
-	ld [rSVBK], a
-	ret
-
-Function117699: ; 117699 (45:7699)
-	ld a, $5
-	call GetSRAMBank
-	ld hl, wcd49
-	ld de, $b1f3
-	ld bc, $8
-	call CopyBytes
-	ld hl, $c708
-	ld bc, $11
-	call CopyBytes
-	call CloseSRAM
-	xor a
-	ld [wcd49], a
-	ld [wcd4a], a
-	ld [wcd4b], a
-	ld [wcd4c], a
-	ld [wcd4d], a
-	ld [wcd4e], a
-	ld [wcd4f], a
-	ld hl, $c708
-	ld bc, $11
-	call ByteFill
-	call ClearBGPalettes
-	call ClearSprites
-	callba Function171c87
-	callba ReloadMapPart
-	callba ClearSpriteAnims
-	ret
-
-Function1176ee: ; 1176ee (45:76ee)
-.loop
-	call JoyTextDelay
-	ld a, [wcd49]
-	bit 7, a
-	jr nz, .quit
-	call Function117719
-	callba PlaySpriteAnimations
-	callba ReloadMapPart
-	jr .loop
-
-.quit
-	callba ClearSpriteAnims
-	call ClearBGPalettes
-	call ClearScreen
-	call ClearSprites
-	ret
-
-Function117719: ; 117719 (45:7719)
-	ld a, [wcd49]
-	ld e, a
-	ld d, 0
-	ld hl, Jumptable_117728
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-
-Jumptable_117728: ; 117728 (45:7728)
-	dw Function117738
-	dw Function117764
-	dw Function1178aa
-	dw Function1178e8
-	dw Function117942
-	dw Function117976
-	dw Function117984
-	dw Function1179a7
-
-
-Function117738: ; 117738 (45:7738)
-	callba Function171ccd
-	depixel 6, 3
-	ld a, $1d
-	call _InitSpriteAnimStruct
-	ld hl, $c
-	add hl, bc
-	ld a, $6
-	ld [hl], a
-	depixel 9, 4
-	ld a, $1d
-	call _InitSpriteAnimStruct
-	ld hl, $c
-	add hl, bc
-	ld a, $7
-	ld [hl], a
-	ld a, $3
-	ld [wcd23], a
-	jp MobilePassword_IncrementJumptable
-
-Function117764: ; 117764 (45:7764)
-	ld a, [wcd4a]
-	cp $10
-	jr nz, .asm_11776f
-	ld a, $1
-	jr .asm_117770
-
-.asm_11776f
-	xor a
-.asm_117770
-	ld [wcd24], a
-	ld hl, hJoyPressed ; $ffa7
-	ld a, [hl]
-	and SELECT
-	jr nz, Function117764_select
-	ld a, [hl]
-	and START
-	jr nz, Function117764_start
-	ld a, [hl]
-	and A_BUTTON
-	jp nz, Function117764_a_button
-	ld a, [hl]
-	and B_BUTTON
-	jr nz, Function117764_b_button
-	ld hl, hJoyLast
-	ld a, [hl]
-	and D_UP
-	jr nz, Function117764_d_up
-	ld a, [hl]
-	and D_DOWN
-	jr nz, Function117764_d_down
-	ld a, [hl]
-	and D_LEFT
-	jp nz, Function117764_d_left
-	ld a, [hl]
-	and D_RIGHT
-	jp nz, Function117764_d_right
-	ret
-
-Function117764_select: ; 1177a5 (45:77a5)
-	callba Function171cf0
-	ret
-
-Function117764_start: ; 1177ac (45:77ac)
-	ld a, $2
-	ld [wcd4c], a
-	ld a, $4
-	ld [wcd4d], a
-	ret
-
-Function1177b7: ; 1177b7 (45:77b7)
-	ld a, $3
-	ld [wcd24], a
-	ld a, [wcd4a]
-	and a
-	jr z, .asm_1177c5
-	jp MobilePassword_IncrementJumptable
-
-.asm_1177c5
-	ld a, $6
-	ld [wcd49], a
-	ret
-
-Function1177cb: ; 1177cb (45:77cb)
-	ld a, $80
-	ld [wcd49], a
-	ld [ScriptVar], a
-	jp MobilePassword_IncrementJumptable
-
-Function117764_b_button: ; 1177d6 (45:77d6)
-	call PlayClickSFX
-	ld a, [wcd4a]
-	and a
-	ret z
-	dec a
-	ld [wcd4a], a
-	ld e, a
-	ld d, $0
-	ld hl, $c708
-	add hl, de
-	xor a
-	ld [hl], a
-	hlcoord 2, 4
-	add hl, de
-	ld [hl], a
-	ret
-
-Function117764_d_up: ; 1177f1 (45:77f1)
-	ld a, [wcd4d]
-	and a
-	ret z
-	dec a
-	ld [wcd4d], a
-	cp $3
-	ret nz
-	ld a, [wcd4c]
-	ld e, a
-	sla a
-	sla a
-	add e
-Function117764_d_vertical_load: ; 117806 (45:7806)
-	ld [wcd4c], a
-	ret
-
-Function117764_d_down: ; 11780a (45:780a)
-	ld a, [wcd4d]
-	cp $4
-	ret z
-	inc a
-	ld [wcd4d], a
-	cp $4
-	ret nz
-	ld a, [wcd4c]
-	cp $a
-	jr nc, .asm_117825
-	cp $5
-	jr nc, .asm_117829
-	xor a
-	jr Function117764_d_vertical_load
-
-.asm_117825
-	ld a, $2
-	jr Function117764_d_vertical_load
-
-.asm_117829
-	ld a, $1
-	jr Function117764_d_vertical_load
-
-Function117764_d_left: ; 11782d (45:782d)
-	ld a, [wcd4c]
-	and a
-	ret z
-	dec a
-	ld [wcd4c], a
-	ret
-
-Function117764_d_right: ; 117837 (45:7837)
-	ld e, $d
-	ld a, [wcd4d]
-	cp $4
-	jr nz, .wrap
-	ld e, $2
-.wrap
-	ld a, [wcd4c]
-	cp e
-	ret z
-	inc a
-	ld [wcd4c], a
-	ret
-
-Function117764_a_button: ; 11784c (45:784c)
-	call PlayClickSFX
-	ld a, [wcd4d]
-	cp $4
-	jr nz, .not_4
-	ld a, [wcd4c]
-	cp $2
-	jp z, Function1177b7
-	cp $1
-	jp z, Function1177cb
-	jp Function117764_select
-
-.not_4
-	ld a, [wcd4a]
-	ld e, a
-	cp $10
-	jp z, Function117764_start
-	inc a
-	ld [wcd4a], a
-	ld d, $0
-	ld a, [wcd4b]
-	and a
-	jr nz, .ascii_symbols
-	ld hl, Unknown_117a0f
-	jr .got_ascii
-
-.ascii_symbols
-	ld hl, Unknown_117a47
-.got_ascii
-	push de
-	ld a, [wcd4c]
-	ld b, a
-	ld a, [wcd4d]
-	ld c, $e
-	call SimpleMultiply
-	add b
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hl]
-	ld hl, $c708
-	add hl, de
-	ld [hl], a
-	pop de
-	hlcoord 2, 4
-	add hl, de
-	sub $20
-	ld [hl], a
-	ld a, e
-	cp $f
-	ret nz
-	jp Function117764_start
-
-Function1178aa: ; 1178aa (45:78aa)
-	ld hl, MenuDataHeader_1179b5
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	ld hl, MenuDataHeader_1179bd
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	callba ReloadMapPart
-	hlcoord 16, 8
-	ld de, YessNoString_1179c5
-	call PlaceString
-	hlcoord 15, 10
-	ld a, "▶"
-	ld [hl], a
-	hlcoord 1, 14
-	ld de, AskSavePasswordString
-	call PlaceString
-	ld a, $1
-	ld [wcd4e], a
-	jp MobilePassword_IncrementJumptable
-
-Function1178e8: ; 1178e8 (45:78e8)
-	ld a, [hJoyPressed]
-	cp B_BUTTON
-	jr z, .b_button
-	cp A_BUTTON
-	jr z, .a_button
-	cp D_DOWN
-	jr z, .d_down
-	cp D_UP
-	ret nz
-	ld a, [wcd4e]
-	and a
-	ret z
-	dec a
-	ld [wcd4e], a
-	hlcoord 15, 8
-	ld a, "▶"
-	ld [hl], a
-	hlcoord 15, 10
-	ld a, " "
-	ld [hl], a
-	ret
-
-.d_down
-	ld a, [wcd4e]
-	and a
-	ret nz
-	inc a
-	ld [wcd4e], a
-	hlcoord 15, 8
-	ld a, " "
-	ld [hl], a
-	hlcoord 15, 10
-	ld a, "▶"
-	ld [hl], a
-	ret
-
-.a_button
-	call PlayClickSFX
-	ld a, [wcd4e]
-	and a
-	jr nz, .b_button
-	call ExitMenu
-	ld a, $1
-	ld [wcd4f], a
-	jp MobilePassword_IncrementJumptable
-
-.b_button
-	call ExitMenu
-	call ExitMenu
-	jp MobilePassword_IncrementJumptable
-
-Function117942: ; 117942 (45:7942)
-	call SpeechTextBox
-	hlcoord 1, 14
-	ld de, SavedPasswordString
-	call PlaceString
-	ld a, $1e
-	ld [wcd4e], a
-	ld a, BANK(sMobileLoginPassword)
-	call GetSRAMBank
-	ld a, [wcd4f]
-	ld [sMobileLoginPassword], a
-	ld hl, $c708
-	ld de, sMobileLoginPassword + 1
-	ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
-	call CopyBytes
-	call CloseSRAM
-	ld a, [wcd4f]
-	and a
-	jr z, asm_11797e
-	call MobilePassword_IncrementJumptable
-
-Function117976: ; 117976 (45:7976)
-	ld hl, wcd4e
-	dec [hl]
-	ret nz
-	call ExitMenu
-asm_11797e: ; 11797e (45:797e)
-	ld a, $80
-	ld [wcd49], a
-	ret
-
-Function117984: ; 117984 (45:7984)
-	ld hl, MenuDataHeader_1179b5
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	callba ReloadMapPart
-	hlcoord 1, 14
-	ld de, NotAPokemonPasswordString
-	call PlaceString
-	ld a, $1e
-	ld [wcd4e], a
-	call MobilePassword_IncrementJumptable
-
-Function1179a7: ; 1179a7 (45:79a7)
-	ld hl, wcd4e
-	dec [hl]
-	ret nz
-	call ExitMenu
-	ld a, $1
-	ld [wcd49], a
-	ret
-
-; 1179b5 (45:79b5)
-
-MenuDataHeader_1179b5: ; 1179b5
-	db $40 ; flags
-	db 12,  0 ; start coords
-	db 17, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 1179bd
-
-MenuDataHeader_1179bd: ; 1179bd
-	db $40 ; flags
-	db  7, 14 ; start coords
-	db 11, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 1179c5
-
-
-YessNoString_1179c5: ; 1179c5
-	db   "はい"
-	next "いいえ@"
-; 1179cc
-
-AskSavePasswordString: ; 1179cc
-	db   "こ%パスワード¯ほぞんして"
-	line "おきますか?@"
-; 1179e1
-
-NotAPokemonPasswordString: ; 1179e1
-	db   "パスワード<PKMN>にゅうりょく"
-	line "されていません!@"
-; 1179f7
-
-SavedPasswordString: ; 1179f7
-	db   "ログインパスワード¯ほぞん"
-	line "しました@"
-; 117a0a
-
-MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a)
-	ld hl, wcd49
-	inc [hl]
-	ret
-
-; 117a0f (45:7a0f)
-
-Unknown_117a0f:
-INCBIN "data/mobile/ascii-alpha.txt"
-
-Unknown_117a47:
-INCBIN "data/mobile/ascii-sym.txt"
-; 117a7f
-
-
-; everything from here to the end of the bank is related to the
-; Mobile Stadium option from the continue/newgame menu.
-; XXX better function names
-MobileStudium: ; 0x117a7f
-	ld a, [hInMenu]
-	push af
-	ld a, $1
-	ld [hInMenu], a
-	call Function117a8d
-	pop af
-	ld [hInMenu], a
-	ret
-
-; 0x117a8d
-
-Function117a8d: ; 0x117a8d
-	call Function117a94
-	call Function117acd
-	ret
-
-; 0x117a94
-
-Function117a94: ; 0x117a94
-	xor a
-	ld [wJumptableIndex], a
-	ld [wcf64], a
-	ld [wcf65], a
-	ld [wcf66], a
-	call ClearBGPalettes
-	call ClearSprites
-	callba Function172e78
-	callba HDMATransferAttrMapAndTileMapToWRAMBank3
-	ret
-
-; 0x117ab4
-
-Function117ab4: ; 0x117ab4
-	call ClearBGPalettes
-	call ClearSprites
-	callba Function172e78
-	callba Function172eb9
-	callba ReloadMapPart
-	ret
-
-; 0x117acd
-
-Function117acd: ; 0x117acd
-	call JoyTextDelay
-	ld a, [wJumptableIndex]
-	bit 7, a
-	jr nz, .asm_117ae2
-	call Function117ae9
-	callba HDMATransferAttrMapAndTileMapToWRAMBank3
-	jr Function117acd
-
-.asm_117ae2
-	call ClearBGPalettes
-	call ClearSprites
-	ret
-
-Function117ae9: ; 0x117ae9
-	ld a, [wJumptableIndex]
-	ld e, a
-	ld d, $0
-	ld hl, .Jumptable
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-
-.Jumptable: ; 0x117af8
-	dw Function117b06
-	dw Function117b14
-	dw Function117b28
-	dw Function117b31
-	dw Function117b4f
-	dw Function117bb6
-	dw Function117c4a
-
-Function117b06:
-	callba Function172eb9
-	ld a, $10
-	ld [wcf64], a
-	jp MobileStudium_JumptableIncrement
-
-Function117b14:
-	ld hl, wcf64
-	dec [hl]
-	ret nz
-	ld hl, MenuDataHeader_117cbc
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	jp MobileStudium_JumptableIncrement
-
-Function117b28:
-	ld hl, MobileStadiumEntryText
-	call PrintText
-	jp MobileStudium_JumptableIncrement
-
-Function117b31:
-	ld hl, MenuDataHeader_117cc4
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	hlcoord 16, 8
-	ld de, YesNo117ccc
-	call PlaceString
-	hlcoord 15, 8
-	ld a, "▶"
-	ld [hl], a
-	jp MobileStudium_JumptableIncrement
-
-Function117b4f:
-	ld a, [hJoyPressed]
-	cp B_BUTTON
-	jr z, .b_button
-	cp A_BUTTON
-	jr z, .a_button
-	cp D_DOWN
-	jr z, .d_down
-	cp D_UP
-	ret nz
-	ld a, [wcf64]
-	and a
-	ret z
-	dec a
-	ld [wcf64], a
-	hlcoord 15, 8
-	ld a, "▶"
-	ld [hl], a
-	hlcoord 15, 10
-	ld a, " "
-	ld [hl], a
-	ret
-
-.d_down
-	ld a, [wcf64]
-	and a
-	ret nz
-	inc a
-	ld [wcf64], a
-	hlcoord 15, 8
-	ld a, " "
-	ld [hl], a
-	hlcoord 15, 10
-	ld a, "▶"
-	ld [hl], a
-	ret
-
-.a_button
-	call PlayClickSFX
-	ld a, [wcf64]
-	and a
-	jr nz, .b_button
-	call ExitMenu
-	call ExitMenu
-	callba ReloadMapPart
-	jp MobileStudium_JumptableIncrement
-
-.b_button
-	call ExitMenu
-	call ExitMenu
-	callba ReloadMapPart
-	ld a, $80
-	ld [wJumptableIndex], a
-	ret
-
-Function117bb6:
-	call Function117c89
-	ld a, $1
-	ld [hBGMapMode], a
-	callba Function118284
-	call ClearSprites
-	ld a, [wc300]
-	and a
-	jr z, .asm_117be7
-	cp $a
-	jr z, .asm_117be1
-.asm_117bd0
-	ld a, $2
-	ld [wc303], a
-	callba DisplayMobileError
-	ld a, $80
-	ld [wJumptableIndex], a
-	ret
-
-.asm_117be1
-	ld a, $80
-	ld [wJumptableIndex], a
-	ret
-
-.asm_117be7
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-	ld a, [wcd89]
-	and $1
-	jr nz, .asm_117c16
-	ld a, [w3_d000]
-	cp $fe
-	jr nz, .asm_117c16
-	ld a, [w3_d001]
-	cp $f
-	jr nz, .asm_117c16
-	ld hl, w3_dfec
-	ld de, wcd69
-	ld c, $10
-.asm_117c0b
-	ld a, [de]
-	inc de
-	cp [hl]
-	jr nz, .asm_117c16
-	inc hl
-	dec c
-	jr nz, .asm_117c0b
-	jr .asm_117c20
-
-.asm_117c16
-	pop af
-	ld [rSVBK], a
-	ld a, $d3
-	ld [wc300], a
-	jr .asm_117bd0
-
-.asm_117c20
-	pop af
-	ld [rSVBK], a
-	callba Function172eb9
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-	ld a, $7
-	call GetSRAMBank
-	ld hl, w3_d002
-	ld de, $b000
-	ld bc, $1000
-	call CopyBytes
-	call CloseSRAM
-	pop af
-	ld [rSVBK], a
-	jp MobileStudium_JumptableIncrement
-
-Function117c4a:
-	ld hl, MenuDataHeader_117cbc
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	callba ReloadMapPart
-	ld hl, MobileStadiumSuccessText
-	call PrintText
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, UnknBGPals
-	ld de, 1 palettes
-	ld c, 8
-.loop
-	push hl
-	ld a, $7fff % $100
-	ld [hli], a
-	ld a, $7fff / $100
-	ld [hl], a
-	pop hl
-	add hl, de
-	dec c
-	jr nz, .loop
-	call RotateThreePalettesRight
-	pop af
-	ld [rSVBK], a
-	ld a, $80
-	ld [wJumptableIndex], a
-	ret
-
-Function117c89:
-	ld a, $7
-	call GetSRAMBank
-	ld l, $0
-	ld h, l
-	ld de, $b000
-	ld bc, $0ffc
-.asm_117c97
-	push bc
-	ld a, [de]
-	inc de
-	ld c, a
-	ld b, $0
-	add hl, bc
-	pop bc
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_117c97
-	ld a, l
-	ld [wcd83], a
-	ld a, h
-	ld [wcd84], a
-	ld hl, $bfea
-	ld de, wcd69
-	ld bc, $10
-	call CopyBytes
-	call CloseSRAM
-	ret
-
-MenuDataHeader_117cbc: ; 0x117cbc
-	db $40    ; flags
-	db 12,  0 ; start coords
-	db 17, 19 ; end coords
-	dw NULL   ; menu data 2
-	db 0      ; default option
-
-MenuDataHeader_117cc4: ; 0x117cc4
-	db $40    ; flags
-	db  7, 14 ; start coords
-	db 11, 19 ; end coords
-	dw NULL   ; menu data 2
-	db 0      ; default item
-
-YesNo117ccc: ; 0x117ccc
-	db   "はい"
-	next "いいえ@"
-
-MobileStadiumEntryText: ; 0x117cd3
-	text_jump _MobileStadiumEntryText
-	db "@"
-
-MobileStadiumSuccessText: ; 0x117cd8
-	text_jump _MobileStadiumSuccessText
-	db "@"
-
-MobileStudium_JumptableIncrement: ; 0x117cdd
-	ld hl, wJumptableIndex
-	inc [hl]
-	ret
--- a/misc/mobile_45_sprite_engine.asm
+++ /dev/null
@@ -1,922 +1,0 @@
-Function115d99: ; 115d99
-	ld de, GFX_11601a
-	ld hl, VTiles0 tile $60
-	lb bc, BANK(GFX_11601a), $14
-	call Get2bpp
-	xor a
-	ld [wc305], a
-	ld [wc306], a
-	ld [wc309], a
-	ld [wc30a], a
-	ld [wc30b], a
-	ld [wc30c], a
-	ld a, $10
-	ld [wc307], a
-	ld a, $18
-	ld [wc308], a
-	ret
-
-; 115dc3
-
-Function115dc3: ; 115dc3
-	xor a
-	ld [wc305], a
-	ld a, $a0
-	ld hl, Sprites + 31 * 4
-	ld bc, 8 * 4
-	call ByteFill
-	ret
-
-; 115dd3
-
-Function115dd3: ; 115dd3
-	ld a, [wc305]
-	and a
-	ret z
-	ld a, $a0
-	ld hl, Sprites + 31 * 4
-	ld bc, 8 * 4
-	call ByteFill
-	call Function115e22
-	ld a, [wc309]
-	sla a
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_115e86
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	push de
-	pop hl
-	ld de, Sprites + 31 * 4
-	ld a, [wc307]
-	ld c, a
-	ld a, [wc308]
-	ld b, a
-	ld a, [hli]
-.asm_115e04
-	push af
-	ld a, [hli]
-	add b
-	ld [de], a
-	inc de
-	ld a, [hli]
-	add c
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	pop af
-	dec a
-	jr nz, .asm_115e04
-	ret
-
-; 115e18
-
-Function115e18: ; 115e18
-	ld a, c
-	ld [wc30a], a
-	xor a
-	ld [wc30b], a
-	jr Function115e2b
-
-; 115e22
-
-Function115e22: ; 115e22
-	ld hl, wc30c
-	dec [hl]
-	ret nz
-	ld hl, wc30b
-	inc [hl]
-
-Function115e2b: ; 115e2b
-	ld a, [wc30a]
-	sla a
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_115e59
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push de
-	pop hl
-	ld a, [wc30b]
-	sla a
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [hli]
-	cp $ff
-	jr nz, .not_end
-	xor a
-	ld [wc30b], a
-	jr Function115e2b
-
-.not_end
-	ld [wc309], a
-	ld a, [hl]
-	ld [wc30c], a
-	ret
-
-; 115e59
-
-Unknown_115e59:
-	dw Unknown_115e61
-	dw Unknown_115e6c
-	dw Unknown_115e76
-	dw Unknown_115e79
-
-; OAM idx (see Unknown_115e86), flip flags/duration
-Unknown_115e61: ; 115e61
-	db $04, $08
-	db $05, $08
-	db $06, $08
-	db $07, $08
-	db $08, $08
-	db -1
-
-Unknown_115e6c: ; 115e6c
-	db $01, $08
-	db $02, $08
-	db $03, $08
-	db $09, $08
-	db $0a, $08
-Unknown_115e76: ; 115e76
-	db $00, $08
-	db -1
-
-Unknown_115e79: ; 115e79
-	db $0b, $08
-	db $0c, $08
-	db $0d, $08
-	db $0e, $08
-	db $0f, $08
-	db $00, $08
-	db -1
-; 115e86
-
-Unknown_115e86:
-	dw Unknown_115ea6
-	dw Unknown_115eb7
-	dw Unknown_115ecc
-	dw Unknown_115ee1
-	dw Unknown_115ef6
-	dw Unknown_115f13
-	dw Unknown_115f30
-	dw Unknown_115f4d
-	dw Unknown_115f6a
-	dw Unknown_115f87
-	dw Unknown_115f9c
-	dw Unknown_115fb1
-	dw Unknown_115fc6
-	dw Unknown_115fdb
-	dw Unknown_115ff0
-	dw Unknown_116005
-
-Unknown_115ea6: ; 115ea6
-	db 4
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115eb7: ; 115eb7
-	db 5
-	dsprite   0, 0,   1, 0, $64, $00
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115ecc: ; 115ecc
-	db 5
-	dsprite   0, 0,   1, 0, $65, $00
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115ee1: ; 115ee1
-	db 5
-	dsprite   0, 0,   1, 0, $66, $00
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115ef6: ; 115ef6
-	db 7
-	dsprite   0, 0,   0, 0, $67, $01
-	dsprite   1, 0,   0, 0, $68, $01
-	dsprite   2, 0,   0, 0, $6d, $00
-	dsprite   2, 0,   1, 0, $69, $00
-	dsprite   2, 0,   2, 0, $6a, $00
-	dsprite   3, 0,   1, 0, $6b, $00
-	dsprite   3, 0,   2, 0, $6c, $00
-
-Unknown_115f13: ; 115f13
-	db 7
-	dsprite   0, 0,   0, 0, $67, $01
-	dsprite   1, 0,   0, 0, $68, $01
-	dsprite   2, 0,   0, 0, $6e, $00
-	dsprite   2, 0,   1, 0, $69, $00
-	dsprite   2, 0,   2, 0, $6a, $00
-	dsprite   3, 0,   1, 0, $6b, $00
-	dsprite   3, 0,   2, 0, $6c, $00
-
-Unknown_115f30: ; 115f30
-	db 7
-	dsprite   0, 0,   0, 0, $67, $01
-	dsprite   1, 0,   0, 0, $68, $01
-	dsprite   2, 0,   0, 0, $6f, $00
-	dsprite   2, 0,   1, 0, $69, $00
-	dsprite   2, 0,   2, 0, $6a, $00
-	dsprite   3, 0,   1, 0, $6b, $00
-	dsprite   3, 0,   2, 0, $6c, $00
-
-Unknown_115f4d: ; 115f4d
-	db 7
-	dsprite   0, 0,   0, 0, $67, $01
-	dsprite   1, 0,   0, 0, $68, $01
-	dsprite   2, 0,   0, 0, $70, $00
-	dsprite   2, 0,   1, 0, $69, $00
-	dsprite   2, 0,   2, 0, $6a, $00
-	dsprite   3, 0,   1, 0, $6b, $00
-	dsprite   3, 0,   2, 0, $6c, $00
-
-Unknown_115f6a: ; 115f6a
-	db 7
-	dsprite   0, 0,   0, 0, $67, $01
-	dsprite   1, 0,   0, 0, $68, $01
-	dsprite   2, 0,   0, 0, $71, $00
-	dsprite   2, 0,   1, 0, $69, $00
-	dsprite   2, 0,   2, 0, $6a, $00
-	dsprite   3, 0,   1, 0, $6b, $00
-	dsprite   3, 0,   2, 0, $6c, $00
-
-Unknown_115f87: ; 115f87
-	db 5
-	dsprite   0, 0,   1, 0, $72, $00
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115f9c: ; 115f9c
-	db 5
-	dsprite   0, 0,   1, 0, $73, $00
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115fb1: ; 115fb1
-	db 5
-	dsprite   0, 1,   1, 0, $64, $60
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115fc6: ; 115fc6
-	db 5
-	dsprite   0, 1,   1, 0, $65, $60
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115fdb: ; 115fdb
-	db 5
-	dsprite   0, 1,   1, 0, $66, $60
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_115ff0: ; 115ff0
-	db 5
-	dsprite   0, 1,   1, 0, $72, $60
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-
-Unknown_116005: ; 116005
-	db 5
-	dsprite   0, 1,   1, 0, $73, $60
-	dsprite   1, 0,   0, 0, $60, $01
-	dsprite   1, 0,   1, 0, $61, $01
-	dsprite   2, 0,   0, 0, $62, $01
-	dsprite   2, 0,   1, 0, $63, $01
-; 11601a
-
-GFX_11601a:: ; 11601a
-INCBIN "gfx/unknown/11601a.2bpp"
-
-
-Function11615a: ; 11615a
-	xor a
-	ld [wc30d], a
-	ld [$c319], a
-	ld [wc310], a
-	ld [wc311], a
-	ld [wc312], a
-	ld [wc313], a
-	ld [wc314], a
-	ld [wc314 + 1], a
-	ld [wc314 + 4], a
-	ld [wc3f6], a
-	ld [wc3f8], a
-	ld [wc3f2], a
-	ld [wc3f4], a
-	ld a, $24
-	ld [wc3f5], a
-	ld a, $7
-	ld [wc3f7], a
-	ld a, $b0
-	ld [wc30e], a
-	ld [wc3f1], a
-	ld a, $48
-	ld [wc30f], a
-	ld [wc3f3], a
-	ret
-
-; 11619d
-
-Function11619d: ; 11619d
-	ld a, [wc30d]
-	and a
-	ret z
-	ld a, [$c319]
-	cp $2
-	jr c, .asm_1161b4
-	ld a, $a0
-	ld hl, Sprites
-	ld bc, $0064
-	call ByteFill
-
-.asm_1161b4
-	call Function1161b8
-	ret
-
-; 1161b8
-
-Function1161b8: ; 1161b8
-	ld a, [$c319]
-	ld e, a
-	ld d, 0
-	ld hl, .Jumptable
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-
-; 1161c7
-
-.Jumptable: ; 1161c7
-	dw Function1161d5
-	dw Function116294
-	dw Function1162cb
-	dw Function1162f2
-	dw Function1163c0
-	dw Function11636e
-	dw Function116441
-; 1161d5
-
-Function1161d5: ; 1161d5
-	ld a, [rSVBK]
-	push af
-
-	ld a, $6
-	ld [rSVBK], a
-
-	ld hl, Unknown_117356
-	ld de, wDecompressScratch
-	ld bc, $0300
-	call CopyBytes
-
-	di
-
-.wait_for_vblank
-; Wait until a vblank would occur had interrupts not just been disabled.
-	ld a, [rLY]
-	cp $91
-	jr nz, .wait_for_vblank
-
-	ld a, $d0
-	ld [rHDMA1], a
-	ld a, $0
-	ld [rHDMA2], a
-	ld a, $1c
-	ld [rHDMA3], a
-	xor a
-	ld [rHDMA4], a
-	ld a, $8
-	ld [rHDMA5], a
-
-	ld a, $d0
-	ld [rHDMA1], a
-	ld a, $80
-	ld [rHDMA2], a
-	ld a, $1c
-	ld [rHDMA3], a
-	ld a, $80
-	ld [rHDMA4], a
-	ld a, $8
-	ld [rHDMA5], a
-
-	ld a, $d1
-	ld [rHDMA1], a
-	ld a, $0
-	ld [rHDMA2], a
-	ld a, $1d
-	ld [rHDMA3], a
-	xor a
-	ld [rHDMA4], a
-	ld a, $8
-	ld [rHDMA5], a
-
-	ld a, $1
-	ld [rVBK], a
-
-	ld a, $d1
-	ld [rHDMA1], a
-	ld a, $80
-	ld [rHDMA2], a
-	ld a, $1c
-	ld [rHDMA3], a
-	xor a
-	ld [rHDMA4], a
-	ld a, $8
-	ld [rHDMA5], a
-
-	ld a, $d2
-	ld [rHDMA1], a
-	ld a, $0
-	ld [rHDMA2], a
-	ld a, $1c
-	ld [rHDMA3], a
-	ld a, $80
-	ld [rHDMA4], a
-	ld a, $8
-	ld [rHDMA5], a
-
-	ld a, $d2
-	ld [rHDMA1], a
-	ld a, $80
-	ld [rHDMA2], a
-	ld a, $1d
-	ld [rHDMA3], a
-	xor a
-	ld [rHDMA4], a
-	ld a, $8
-	ld [rHDMA5], a
-
-	xor a
-	ld [rVBK], a
-
-	ei
-
-	pop af
-	ld [rSVBK], a
-
-	callba ReloadMapPart
-	ld a, $8
-	ld [MusicFade], a
-	ld de, MUSIC_MOBILE_ADAPTER
-	ld a, e
-	ld [MusicFadeID], a
-	ld a, d
-	ld [MusicFadeID + 1], a
-	ld a, [$c319]
-	inc a
-	ld [$c319], a
-	ret
-
-; 11628c
-
-MenuDataHeader_11628c: ; 11628c
-	db $40 ; flags
-	db  6,  0 ; start coords
-	db 17, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 116294
-
-Function116294: ; 116294
-	callba Function170d02
-	ld a, [$c319]
-	inc a
-	ld [$c319], a
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, UnknBGPals + 8 * 6
-	ld de, $c320
-	ld bc, 2 palettes
-	call CopyBytes
-	ld hl, Palette_11734e
-	ld de, UnknBGPals + 8 * 7
-	ld bc, 1 palettes
-	call CopyBytes
-	call SetPalettes
-	pop af
-	ld [rSVBK], a
-	ld a, $30
-	ld [hWY], a
-	ret
-
-; 1162cb
-
-Function1162cb: ; 1162cb
-	callba Function170cc6
-	ld a, [$c319]
-	inc a
-	ld [$c319], a
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_11730e
-	ld de, UnknOBPals + 2 palettes
-	ld bc, 6 palettes
-	call CopyBytes
-	call SetPalettes
-	pop af
-	ld [rSVBK], a
-	ret
-
-; 1162f2
-
-Function1162f2: ; 1162f2
-	call Function11659d
-	call Function116758
-	call Function1167a6
-	ld a, [wc310]
-	cp EGG
-	ret z
-	sla a
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_1168c5
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	push de
-	pop hl
-	ld a, [wc30e]
-	ld c, a
-	ld a, [wc30f]
-	ld b, a
-	ld a, [wc314 + 4]
-	ld e, a
-	ld a, [hli]
-	sub e
-	ld de, Sprites + $24
-.asm_116321
-	push af
-	ld a, [hli]
-	add b
-	ld [de], a
-	inc de
-	ld a, [hli]
-	add c
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	pop af
-	dec a
-	jr nz, .asm_116321
-	call Function116468
-	ld a, [wc3f5]
-	sla a
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_1168c5
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	push de
-	pop hl
-	ld a, [wc3f1]
-	ld c, a
-	ld a, [wc3f3]
-	ld b, a
-	ld a, [wc3f8]
-	ld e, a
-	ld a, [hli]
-	sub e
-	ld de, Sprites
-.asm_11635a
-	push af
-	ld a, [hli]
-	add b
-	ld [de], a
-	inc de
-	ld a, [hli]
-	add c
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	pop af
-	dec a
-	jr nz, .asm_11635a
-	ret
-
-; 11636e
-
-Function11636e: ; 11636e
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, BGPals
-	ld de, UnknBGPals
-	ld bc, $0040
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	call SetPalettes
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, $a0
-	ld hl, Sprites
-	ld bc, 16 * 4
-	call ByteFill
-	ld a, $90
-	ld [hWY], a
-	call UpdateSprites
-	pop af
-	ld [rSVBK], a
-	callba ReloadMapPart
-	ld a, $8
-	ld [MusicFade], a
-	ld a, [wMapMusic]
-	ld [MusicFadeID], a
-	xor a
-	ld [MusicFadeID + 1], a
-	xor a
-	ld [$c319], a
-	ld [wc30d], a
-	ret
-
-; 1163c0
-
-Function1163c0: ; 1163c0
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, $a0
-	ld hl, Sprites
-	ld bc, 16 * 4
-	call ByteFill
-	call DelayFrame
-	callba Function14146
-	ld b, SCGB_MAPPALS
-	call GetSGBLayout
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, $c320
-	ld de, wd030
-	ld bc, $0010
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	call SetPalettes
-	call DelayFrame
-	ld a, $90
-	ld [hWY], a
-	call UpdateSprites
-	callba Function14157
-	pop af
-	ld [rSVBK], a
-	callba ReloadMapPart
-	ld a, [wLinkMode]
-	cp $4
-	jr z, .asm_11642a
-	ld a, $8
-	ld [MusicFade], a
-	ld a, [wMapMusic]
-	ld [MusicFadeID], a
-	xor a
-	ld [MusicFadeID + 1], a
-	jr .asm_116439
-
-.asm_11642a
-	ld a, $8
-	ld [MusicFade], a
-	ld a, $0
-	ld [MusicFadeID], a
-	ld a, $0
-	ld [MusicFadeID + 1], a
-
-.asm_116439
-	xor a
-	ld [$c319], a
-	ld [wc30d], a
-	ret
-
-; 116441
-
-Function116441: ; 116441
-	callba Function17d405
-	ld a, $90
-	ld [hWY], a
-	callba ReloadMapPart
-	ld a, $8
-	ld [MusicFade], a
-	ld a, [wMapMusic]
-	ld [MusicFadeID], a
-	xor a
-	ld [MusicFadeID + 1], a
-	xor a
-	ld [$c319], a
-	ld [wc30d], a
-	ret
-
-; 116468
-
-Function116468: ; 116468
-	call Function116567
-	ld a, [wc314]
-	cp $d
-	jr nz, .asm_1164a8
-	ld hl, wc30e
-	ld a, [hl]
-	cp $50
-	jr nc, .asm_116484
-	ld a, $50
-	sub [hl]
-	add $50
-	ld [wc3f1], a
-	jr .asm_11648d
-
-.asm_116484
-	sub $50
-	ld c, a
-	ld a, $50
-	sub c
-	ld [wc3f1], a
-
-.asm_11648d
-	ld hl, wc30f
-	ld a, [hl]
-	cp $60
-	jr nc, .asm_11649e
-	ld a, $60
-	sub [hl]
-	add $60
-	ld [wc3f3], a
-	ret
-
-.asm_11649e
-	sub $60
-	ld c, a
-	ld a, $60
-	sub c
-	ld [wc3f3], a
-	ret
-
-.asm_1164a8
-	ld hl, wc30e
-	ld a, $b0
-	cp [hl]
-	jr nc, .asm_1164b8
-	ld a, [wc3f1]
-	and a
-	jr z, .asm_11650b
-	jr .asm_1164f2
-
-.asm_1164b8
-	ld a, [wc3f1]
-	sub [hl]
-	jr nc, .asm_1164c1
-	xor $ff
-	inc a
-
-.asm_1164c1
-	ld b, a
-	ld c, $0
-	ld a, $5
-.asm_1164c6
-	srl b
-	rr c
-	dec a
-	jr nz, .asm_1164c6
-	ld a, c
-	ld [wc3fa], a
-	ld a, b
-	ld [wc3f9], a
-	ld a, [wc3f1]
-	sub [hl]
-	jr c, .asm_1164f2
-	ld c, $0
-	ld a, [wc3fa]
-	xor $ff
-	add $1
-	rl c
-	ld [wc3fa], a
-	ld a, [wc3f9]
-	xor $ff
-	add c
-	ld [wc3f9], a
-
-.asm_1164f2
-	ld a, [wc3f2]
-	ld l, a
-	ld a, [wc3f1]
-	ld h, a
-	ld a, [wc3fa]
-	ld e, a
-	ld a, [wc3f9]
-	ld d, a
-	add hl, de
-	ld a, l
-	ld [wc3f2], a
-	ld a, h
-	ld [wc3f1], a
-
-.asm_11650b
-	ld hl, wc30f
-	ld a, $b0
-	cp [hl]
-	jr c, .asm_11654d
-	ld a, [wc3f3]
-	sub [hl]
-	jr nc, .asm_11651c
-	xor $ff
-	inc a
-
-.asm_11651c
-	ld b, a
-	ld c, $0
-	ld a, $5
-.asm_116521
-	srl b
-	rr c
-	dec a
-	jr nz, .asm_116521
-	ld a, c
-	ld [wc3fc], a
-	ld a, b
-	ld [wc3fb], a
-	ld a, [wc3f3]
-	sub [hl]
-	jr c, .asm_11654d
-	ld c, $0
-	ld a, [wc3fc]
-	xor $ff
-	add $1
-	rl c
-	ld [wc3fc], a
-	ld a, [wc3fb]
-	xor $ff
-	add c
-	ld [wc3fb], a
-
-.asm_11654d
-	ld a, [wc3f4]
-	ld l, a
-	ld a, [wc3f3]
-	ld h, a
-	ld a, [wc3fc]
-	ld e, a
-	ld a, [wc3fb]
-	ld d, a
-	add hl, de
-	ld a, l
-	ld [wc3f4], a
-	ld a, h
-	ld [wc3f3], a
-	ret
--- a/misc/mobile_46.asm
+++ /dev/null
@@ -1,7986 +1,0 @@
-SECTION "bank46", ROMX
-
-Function118000: ; 118000
-	ld a, $1
-	ld [wcd38], a
-	jr asm_11800b
-
-Function118007: ; 118007
-	xor a
-	ld [wcd38], a
-
-asm_11800b
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $18
-	ld [wcd33], a
-	ld a, $19
-	ld [wcd34], a
-	ld a, $4
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.loop
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $1b
-	jr c, .skip
-	ld a, [wcd34]
-	ld [wcf66], a
-
-.skip
-	call Function1184a5
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .loop
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	call ReturnToMapFromSubmenu
-BattleTowerRoomMenu_DoNothing: ; 11805e (46:405e)
-	ret
-; 11805f
-
-Function11805f: ; 11805f
-	ld a, $1
-	ld [wcd38], a
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $18
-	ld [wcd33], a
-	ld a, $19
-	ld [wcd34], a
-	ld a, $4
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.asm_11807d
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $1b
-	jr c, .asm_118090
-	ld a, [wcd34]
-	ld [wcf66], a
-
-.asm_118090
-	call Function11857c
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .asm_11807d
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	call ReturnToMapFromSubmenu
-	ret
-; 1180b8
-
-Function1180b8: ; 1180b8
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $22
-	ld [wcd33], a
-	ld a, $23
-	ld [wcd34], a
-	ld a, $4
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.asm_1180d1
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $28
-	jr c, .asm_1180e4
-	ld a, [wcd34]
-	ld [wcf66], a
-
-.asm_1180e4
-	ld a, [wcf66]
-	cp $10
-	jr c, .asm_1180f2
-	cp $16
-	jr nc, .asm_1180f2
-	call Function11884c
-
-.asm_1180f2
-	call Function1184ec
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .asm_1180d1
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	call ReturnToMapFromSubmenu
-	ret
-; 11811a
-
-Function11811a: ; 11811a
-	ld a, 1
-	ld [wcd38], a
-	jr Function118125
-
-_BattleTowerRoomMenu: ; 118121
-	xor a
-	ld [wcd38], a
-Function118125: ; 118125
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $3
-	ld [wcd33], a
-	ld a, $d
-	ld [wcd34], a
-	ld a, $4
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.loop
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $f
-	jr c, .skip
-	ld a, [wcd34]
-	ld [wcf66], a
-.skip
-	call BattleTowerRoomMenu_Jumptable
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .loop
-	xor a
-	ld [w3_d000], a
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	call Function118180
-	call ReturnToMapFromSubmenu
-	ret
-; 118180
-
-Function118180: ; 118180
-	ld a, [ScriptVar]
-	and a
-	ret nz
-	ld a, [wcd38]
-	and a
-	ret z
-	ld a, $5
-	call GetSRAMBank
-	ld hl, wcd69
-	ld de, $a89c
-	ld bc, $0016
-	call CopyBytes
-
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-
-	ld de, w3_d202
-	ld c, $96
-	callba CheckStringForErrors_IgnoreTerminator
-	jr c, .return_d3
-
-	ld de, w3_d202
-	lb bc, 1, $96
-	callba CheckStringContainsLessThanBNextCharacters
-	jr c, .return_d3
-
-	ld hl, w3_d202
-	ld de, $a8b2
-	ld bc, $0096
-	call CopyBytes
-.reset_banks
-	pop af
-	ld [rSVBK], a
-	call CloseSRAM
-	ret
-
-.return_d3
-	ld a, $d3
-	ld [wc300], a
-	ld [ScriptVar], a
-	jr .reset_banks
-; 1181da
-
-Function1181da: ; 1181da
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $2
-	ld [wcd38], a
-	ld a, $21
-	ld [wcd33], a
-	ld a, $22
-	ld [wcd34], a
-	ld a, $4
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.asm_1181f8
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $28
-	jr c, .asm_11820b
-	ld a, [wcd34]
-	ld [wcf66], a
-
-.asm_11820b
-	call Function1185c3
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .asm_1181f8
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	call ReturnToMapFromSubmenu
-	ret
-; 118233
-
-Function118233: ; 118233
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $1b
-	ld [wcd33], a
-	ld a, $1c
-	ld [wcd34], a
-	ld a, $6
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.asm_11824c
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $1e
-	jr c, .asm_11825f
-	ld a, [wcd34]
-	ld [wcf66], a
-
-.asm_11825f
-	call Function118624
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .asm_11824c
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	ret
-; 118284
-
-Function118284: ; 118284
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $19
-	ld [wcd33], a
-	ld a, $1e
-	ld [wcd34], a
-	ld a, $5
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.asm_11829d
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $20
-	jr c, .asm_1182b0
-	ld a, [wcd34]
-	ld [wcf66], a
-.asm_1182b0
-	call Function1186f5
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .asm_11829d
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	ret
-; 1182d5 (46:42d5)
-
-
-Function1182d5: ; 1182d5
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $18
-	ld [wcd33], a
-	ld a, $19
-	ld [wcd34], a
-	ld a, $4
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.asm_1182ee
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $1b
-	jr c, .asm_118301
-	ld a, [wcd34]
-	ld [wcf66], a
-
-.asm_118301
-	call Function118746
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .asm_1182ee
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	call ReturnToMapFromSubmenu
-	ret
-; 118329
-
-Function118329: ; 118329
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $15
-	ld [wcd33], a
-	ld a, $16
-	ld [wcd34], a
-	ld a, $6
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.asm_118342
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $18
-	jr c, .asm_118355
-	ld a, [wcd34]
-	ld [wcf66], a
-
-.asm_118355
-	call Function118671
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .asm_118342
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	ret
-; 11837a
-
-Function11837a: ; 11837a
-	call BattleTowerRoomMenu_InitRAM
-	ld a, $16
-	ld [wcd33], a
-	ld a, $17
-	ld [wcd34], a
-	ld a, $6
-	ld [wc3f0], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-.asm_118393
-	call JoyTextDelay
-	call Function118473
-	ld a, [wcf66]
-	cp $19
-	jr c, .asm_1183a6
-	ld a, [wcd34]
-	ld [wcf66], a
-
-.asm_1183a6
-	call Function1186b2
-	call BattleTowerRoomMenu_WriteMessage
-	callba Function115dd3
-	callba Function11619d
-	call DelayFrame
-	ld a, [wcf66]
-	ld hl, wcd33
-	cp [hl]
-	jr nz, .asm_118393
-	pop af
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_Cleanup
-	ret
-; 1183cb
-
-BattleTowerRoomMenu_InitRAM: ; 1183cb
-	di
-	ld a, [rIE]
-	ld [wcd32], a
-	call DoubleSpeed
-	xor a
-	ld [rIF], a
-	ld [wc300], a
-	ld [wc301], a
-	ld [wc302], a
-	ld [wcd80], a
-	ld [wcd65], a
-	ld [wcd66], a
-	ld [wcd67], a
-	ld [wcd68], a
-	ld [$c31a], a
-	ld [wcd89], a
-	ld [wcd8a], a
-	ld [wcd8b], a
-	ld [wc3ec], a
-	ld [wc3ed], a
-	ld [wc3ee], a
-	ld [wc3ef], a
-	ld hl, VramState
-	ld a, [hl]
-	ld [wcd7f], a
-	set 1, [hl]
-	ld a, $f
-	ld [rIE], a
-	ld a, $1
-	ld [hMobileReceive], a
-	ld [hMobile], a
-	ei
-	callba MobileFunc_106462
-	callba Function106464
-	callba Function115d99
-	callba Function11615a
-	ld a, $5
-	call GetSRAMBank
-	xor a
-	ld [$bfff], a
-	call CloseSRAM
-	ret
-; 118440
-
-Function118440: ; 118440
-	push af
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$bfff]
-	inc a
-	ld [$bfff], a
-	call CloseSRAM
-	pop af
-	ret
-; 118452
-
-BattleTowerRoomMenu_Cleanup: ; 118452
-	di
-	xor a
-	ld [hMobileReceive], a
-	ld [hMobile], a
-	ld [hVBlank], a
-	call NormalSpeed
-	xor a
-	ld [rIF], a
-	ld a, [wcd32]
-	ld [rIE], a
-	ei
-	ld a, [wcd7f]
-	ld [VramState], a
-	ld a, [wc300]
-	ld [ScriptVar], a
-	ret
-; 118473
-
-Function118473: ; 118473
-	ld a, [wcd65]
-	and a
-	ret z
-	ld a, [wcd66]
-	inc a
-	ld [wcd66], a
-	cp 60
-	ret nz
-	xor a
-	ld [wcd66], a
-	ld a, [wcd67]
-	inc a
-	ld [wcd67], a
-	cp 60
-	ret nz
-	ld a, [wcd68]
-	inc a
-	ld [wcd68], a
-	cp 99
-	jr z, .ninety_nine
-	xor a
-	ld [wcd67], a
-	ret
-
-.ninety_nine
-	xor a
-	ld [wcd65], a
-	ret
-; 1184a5
-
-Function1184a5: ; 1184a5
-	jumptable .Jumptable, wcf66
-; 1184b4
-
-.Jumptable: ; 1184b4
-	dw Function11886e
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function118a8f
-	dw Function11878d
-	dw Function118d80
-	dw Function118d9b
-	dw Function11878d
-	dw Function118ded
-	dw Function118e6d
-	dw Function11878d
-	dw Function11984e
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw Function118e76
-; 1184ec
-
-Function1184ec: ; 1184ec
-	jumptable .Jumptable, wcf66
-; 1184fb
-
-.Jumptable: ; 1184fb
-	dw Function11886e
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function119954
-	dw Function11878d
-	dw Function119973
-	dw Function11878d
-	dw Function119987
-	dw Function11878d
-	dw Function1199b4
-	dw Function1199ca
-	dw Function11878d
-	dw Function1199e2
-	dw Function119b0d
-	dw Function11878d
-	dw Function119b6b
-	dw Function119b3b
-	dw Function11878d
-	dw Function119b52
-	dw Function11878d
-	dw Function118e6d
-	dw Function11878d
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw Function119b45
-	dw Function11878d
-	dw Function119ac9
-	dw Function118e76
-; 11854d
-
-BattleTowerRoomMenu_Jumptable: ; 11854d
-	jumptable .Jumptable, wcf66
-; 11855c
-
-.Jumptable: ; 11855c
-	dw BattleTowerRoomMenu_PickLevelMessage
-	dw BattleTowerRoomMenu_PlacePickLevelMenu
-	dw BattleTowerRoomMenu_UpdatePickLevelMenu
-	dw BattleTowerRoomMenu_DoNothing
-	dw BattleTowerRoomMenu_PartyMonTopsThisLevelMessage
-	dw BattleTowerRoomMenu_WaitForMessage
-	dw BattleTowerRoomMenu_DelayRestartMenu
-	dw BattleTowerRoomMenu_QuitMessage
-	dw BattleTowerRoomMenu_PlaceYesNoMenu
-	dw BattleTowerRoomMenu_UpdateYesNoMenu
-	dw BattleTowerRoomMenu_UberRestrictionMessage
-	dw BattleTowerRoomMenu_WaitForMessage
-	dw BattleTowerRoomMenu_DelayRestartMenu
-	dw Function118e76 ; mobile
-	dw BattleTowerRoomMenu_CallRoomMenu2 ; mobile
-	dw Function118e76 ; mobile
-; 11857c
-
-Function11857c: ; 11857c
-	jumptable .Jumptable, wcf66
-; 11858b
-
-.Jumptable: ; 11858b
-	dw Function11886e
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function118a7a
-	dw Function11878d
-	dw Function11891c
-	dw Function1198ee
-	dw Function1198f7
-	dw Function11878d
-	dw Function119937
-	dw Function118e6d
-	dw Function11878d
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw Function118e76
-; 1185c3
-
-Function1185c3: ; 1185c3
-	jumptable .Jumptable, wcf66
-; 1185d2
-
-.Jumptable: ; 1185d2
-	dw Function11886e
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function118aa4
-	dw Function11878d
-	dw Function118e92
-	dw Function11878d
-	dw Function118eb0
-	dw Function118ec6
-	dw Function118f0d
-	dw Function118f14
-	dw Function118f5e
-	dw Function11878d
-	dw Function118fc0
-	dw Function11878d
-	dw Function119054
-	dw Function1190d0
-	dw Function11878d
-	dw Function1190ec
-	dw Function118e6d
-	dw Function11878d
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw BattleTowerRoomMenu_QuitMessage
-	dw BattleTowerRoomMenu_PlaceYesNoMenu
-	dw BattleTowerRoomMenu_UpdateYesNoMenu
-	dw Function11914e
-	dw Function118e76
-; 118624
-
-Function118624: ; 118624
-	jumptable .Jumptable, wcf66
-; 118633
-
-.Jumptable: ; 118633
-	dw Function118866
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function118aa4
-	dw Function11878d
-	dw Function118e92
-	dw Function11878d
-	dw Function11915d
-	dw Function118f68
-	dw Function11878d
-	dw Function119009
-	dw Function11878d
-	dw Function119054
-	dw Function118e6d
-	dw Function11878d
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw Function118e76
-; 118671
-
-Function118671: ; 118671
-	jumptable .Jumptable, wcf66
-; 118680
-
-.Jumptable: ; 118680
-	dw Function118866
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function119380
-	dw Function119388
-	dw Function1193a0
-	dw Function11878d
-	dw Function118e6d
-	dw Function11878d
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw Function118e76
-; 1186b2
-
-Function1186b2: ; 1186b2
-	jumptable .Jumptable, wcf66
-; 1186c1
-
-.Jumptable: ; 1186c1
-	dw Function118866
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function119380
-	dw Function1193e3
-	dw Function1193fb
-	dw Function11878d
-	dw Function119413
-	dw Function118e6d
-	dw Function11878d
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw Function118e76
-; 1186f5
-
-Function1186f5: ; 1186f5 (46:46f5)
-	jumptable .Jumptable, wcf66
-; 118704 (46:4704)
-
-.Jumptable: ; 118704 (46:4704)
-	dw Function11886a
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function118abc
-	dw Function11878d
-	dw Function119451
-	dw Function1195f8
-	dw Function119612
-	dw Function119629
-	dw Function119648
-	dw Function11878d
-	dw Function118e6d
-	dw Function11878d
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function11967d
-	dw Function119685
-	dw Function119665
-	dw Function11966d
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw Function118e76
-; 118746 (46:4746)
-
-Function118746: ; 118746
-	jumptable .Jumptable, wcf66
-; 118755
-
-.Jumptable: ; 118755
-	dw Function11886e
-	dw Function118880
-	dw Function11878d
-	dw Function1188b0
-	dw Function11878d
-	dw Function1188b8
-	dw Function11878d
-	dw Function1188c0
-	dw Function11878d
-	dw Function1188c8
-	dw Function11878d
-	dw Function118903
-	dw Function118ad0
-	dw Function11878d
-	dw Function1196f2
-	dw Function1197c9
-	dw Function1197dc
-	dw Function11878d
-	dw Function118e6d
-	dw Function11878d
-	dw Function119800
-	dw Function118e76
-	dw Function118e7e
-	dw Function11878d
-	dw BattleTowerRoomMenu_DoNothing
-	dw Function118e76
-	dw BattleTowerRoomMenu_CallRoomMenu2
-	dw Function118e76
-; 11878d
-
-Function11878d: ; 11878d (46:478d)
-	ld a, [wc821]
-	bit 1, a
-	jr nz, .asm_1187af
-	bit 2, a
-	jr nz, .asm_1187d1
-	bit 0, a
-	jr nz, .asm_1187aa
-	ld a, [wcd89]
-	and $1
-	jr z, .asm_1187a7
-	ld a, $3
-	ld [rSVBK], a
-.asm_1187a7
-	jp BattleTowerRoomMenu_IncrementJumptable
-.asm_1187aa
-	call Function118821
-	ret c
-	ret
-.asm_1187af
-	ld a, $0
-	call Function3e32
-	ld [wc300], a
-	ld a, l
-	ld [wc301], a
-	ld a, h
-	ld [wc302], a
-	ld a, $a
-	call Function3e32
-	ld a, [wc3f0]
-	ld [$c319], a
-	ld a, [wcd34]
-	ld [wcf66], a
-	ret
-.asm_1187d1
-	ld hl, wcd89
-	bit 0, [hl]
-	jr nz, .asm_118803
-	set 0, [hl]
-	ld a, $6
-	ld [rSVBK], a
-	ld de, w3_d000
-	ld bc, $1000
-	ld a, [hl]
-	sla a
-	jr c, .asm_1187f9
-	sla a
-	jr c, .asm_1187fd
-	sla a
-	jr c, .asm_1187f5
-	ld a, $24
-	jr .asm_1187ff
-.asm_1187f5
-	ld a, $28
-	jr .asm_1187ff
-.asm_1187f9
-	ld a, $2a
-	jr .asm_1187ff
-.asm_1187fd
-	ld a, $2c
-.asm_1187ff
-	call Function3e32
-	ret
-.asm_118803
-	ld a, $d3
-
-Function118805: ; 118805 (46:4805)
-	ld [wc300], a
-	xor a
-	ld [wc301], a
-	ld [wc302], a
-	ld a, $a
-	call Function3e32
-	ld a, [wc3f0]
-	ld [$c319], a
-	ld a, [wcd34]
-	ld [wcf66], a
-	ret
-
-Function118821: ; 118821 (46:4821)
-	ld a, [$c319]
-	cp $3
-	jr c, .asm_11884a
-	cp $4
-	jr z, .asm_11884a
-	ld a, [hJoyDown]
-	cp $5
-	jr nz, .asm_11884a
-	ld a, $a
-	call Function3e32
-	ld a, $a
-	ld [wc300], a
-	ld a, [wc3f0]
-	ld [$c319], a
-	ld a, [wcd34]
-	ld [wcf66], a
-	scf
-	ret
-.asm_11884a
-	and a
-	ret
-; 11884c (46:484c)
-
-Function11884c: ; 11884c
-	ld a, [hJoyDown]
-	cp $5
-	jr nz, .asm_118864
-	ld a, $a
-	call Function3e32
-	ld a, $a
-	ld [wc300], a
-	ld a, [wcd34]
-	ld [wcf66], a
-	scf
-	ret
-
-.asm_118864
-	and a
-	ret
-; 118866
-
-Function118866:
-	ld a, 2
-	jr asm_11886f
-
-Function11886a: ; 11886a (46:486a)
-	ld a, 1
-	jr asm_11886f
-; 11886e (46:486e)
-
-Function11886e:
-	xor a
-
-asm_11886f
-	ld [BGMapPalBuffer], a
-	ld a, $0
-	ld [wcd3c], a
-	call BattleTowerRoomMenu_IncrementJumptable
-	ld a, [wcd33]
-	ld [wMobileInactivityTimerSeconds], a
-
-Function118880: ; 118880 (46:4880)
-	call BattleTowerRoomMenu2
-	ret c
-	xor a
-	ld [wcf64], a
-	ld [wc807], a
-	ld de, wcd81
-	ld hl, $46
-	ld a, $2
-	jp Function119e2b
-; 118896 (46:4896)
-
-Function118896: ; 118896
-	ld a, [wc821]
-	bit 1, a
-	jr nz, .asm_1188a5
-	bit 2, a
-	jr nz, .asm_1188a5
-	bit 0, a
-	jr z, .asm_1188aa
-
-.asm_1188a5
-	ld a, $34
-	jp Function119e2b
-
-.asm_1188aa
-	call BattleTowerRoomMenu_IncrementJumptable
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 1188b0
-
-Function1188b0: ; 1188b0 (46:48b0)
-	ld de, $c346
-	ld a, $c
-	jp Function119e2b
-
-Function1188b8: ; 1188b8 (46:48b8)
-	ld de, wc3ac
-	ld a, $e
-	jp Function119e2b
-
-Function1188c0: ; 1188c0 (46:48c0)
-	ld de, wc3cd
-	ld a, $10
-	jp Function119e2b
-
-Function1188c8: ; 1188c8 (46:48c8)
-	ld a, $1
-	ld [wcd65], a
-	call Function1188e7
-	ld hl, $c708
-.asm_1188d3
-	ld a, [de]
-	inc de
-	ld [hli], a
-	and a
-	jr nz, .asm_1188d3
-	call Function119eb4
-	call Function119ec2
-	ld hl, $c708
-	ld a, $6
-	jp Function119e2b
-
-Function1188e7: ; 1188e7 (46:48e7)
-	ld de, $c346
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$aa4a]
-	call CloseSRAM
-	and a
-	ret z
-	sla a
-	ld c, a
-.asm_1188fa
-	ld a, [de]
-	inc de
-	and a
-	jr nz, .asm_1188fa
-	dec c
-	jr nz, .asm_1188fa
-	ret
-
-Function118903: ; 118903 (46:4903)
-	ld a, [wc3f0]
-	ld [$c319], a
-	ld c, $1
-	callba Function115e18
-	ld a, $8
-	ld [wcd3c], a
-	call BattleTowerRoomMenu2
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-
-Function11891c: ; 11891c
-	call Function118b42
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-
-BattleTowerRoomMenu_PickLevelMessage: ; 118922
-	ld a, [wcd38]
-	and a
-	jr nz, .asm_11892d
-	ld hl, Text_WhatLevelDoYouWantToChallenge
-	jr .asm_118930
-
-.asm_11892d
-	ld hl, Text_CheckBattleRoomListByMaxLevel
-
-.asm_118930
-	call BattleTowerRoomMenu_SetMessage
-	call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_PlacePickLevelMenu:
-	ld a, [$c31a]
-	and a
-	ret nz
-	ld hl, MenuDataHeader_119cf7
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	call ApplyTilemap
-	hlcoord 16, 8, AttrMap
-	ld a, $40
-	or [hl]
-	ld [hl], a
-	call WaitBGMap2
-	ld a, $1
-	ld [wcd4f], a
-	ld a, $1
-	ld [rSVBK], a
-	ld a, [StatusFlags]
-	bit 6, a ; Hall Of Fame
-	jr nz, .asm_11896b
-	ld hl, Strings_Ll0ToL40		; Address to list of strings with the choosable levels
-	ld a, 5						; 4 levels to choose from, including 'Cancel'-option
-	jr .asm_118970
-
-.asm_11896b
-	ld hl, Strings_L10ToL100	; Address to list of strings with the choosable levels
-	ld a, 11					; 10 levels to choose from, including 'Cancel'-option
-
-.asm_118970
-	ld [wcd4a], a
-	ld a, l
-	ld [wcd4b], a
-	ld a, h
-	ld [wcd4c], a
-	ld a, $3
-	ld [rSVBK], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_UpdatePickLevelMenu:
-	hlcoord 13, 8
-	ld de, String_119d07
-	call PlaceString
-	hlcoord 13, 10
-	ld de, String_119d07
-	call PlaceString
-	ld a, [wcd4b]
-	ld l, a
-	ld a, [wcd4c]
-	ld h, a
-	ld d, $0
-	ld a, [wcd4f]
-	dec a
-	rlca
-	rlca
-	rlca
-	ld e, a
-	add hl, de
-	ld a, l
-	ld e, a
-	ld a, h
-	ld d, a
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld bc, StringBuffer3
-.asm_1189b5
-	ld a, [hli]
-	cp $50
-	jr z, .asm_1189c4
-	cp $7f
-	jr z, .asm_1189c2
-	ld [bc], a
-	inc bc
-	jr .asm_1189b5
-
-.asm_1189c2
-	ld a, $50
-
-.asm_1189c4
-	ld [bc], a
-	pop af
-	ld [rSVBK], a
-	hlcoord 13, 9
-	call PlaceString
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and B_BUTTON
-	jr nz, .b_button
-	ld a, [hl]
-	and A_BUTTON
-	jr nz, .a_button
-	ld a, [hl]
-	and D_DOWN
-	jr nz, .d_down
-	ld a, [hl]
-	and D_UP
-	jr nz, .d_up
-.asm_1189e5
-	ret
-
-.d_down
-	ld hl, wcd4f
-	dec [hl]
-	jr nz, .asm_1189e5
-	ld a, [wcd4a]
-	ld [hl], a
-	jr .asm_1189e5
-
-.d_up
-	ld a, [wcd4a]
-	ld hl, wcd4f
-	inc [hl]
-	cp [hl]
-	jr nc, .asm_1189e5
-	ld a, $1
-	ld [hl], a
-	jr .asm_1189e5
-
-.a_button
-	call PlayClickSFX
-	ld a, [wcd4f]
-	ld hl, wcd4a
-	cp [hl]
-	jr z, .asm_118a3c
-	dec a
-	and $fe
-	srl a
-	ld [wcf65], a
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	call CloseWindow
-	pop af
-	ld [rSVBK], a
-	ld a, [wcd38]
-	and a
-	jr nz, .asm_118a30
-	call BattleTower_LevelCheck
-	ret c
-	call BattleTower_UbersCheck
-	ret c
-
-.asm_118a30
-	ld a, [wcd4f]
-	ld [w3_d800], a
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-.b_button
-	call PlayClickSFX
-
-.asm_118a3c
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	call CloseWindow
-	pop af
-	ld [rSVBK], a
-	ld a, $7
-	ld [wcf66], a
-	ld a, $0
-	ld [wMobileInactivityTimerFrames], a
-	ret
-
-
-
-Function118a54: ; 118a54
-	ld a, [wcd55]
-	ld l, a
-	ld a, [wcd56]
-	ld h, a
-	ld de, wc3ec
-	ld bc, $0004
-	jp Function118ae4
-; 118a65
-
-Function118a65: ; 118a65
-	ld hl, BattleDownloadURL
-	ld de, wcc60
-	ld bc, $80
-	call CopyBytes
-	ld de, w3_d000
-	ld bc, $1000
-	jp Function118b10
-; 118a7a
-
-Function118a7a: ; 118a7a
-	ld hl, BattleDownloadURL
-	ld de, wcc60
-	ld bc, $80
-	call CopyBytes
-	ld de, w3_d000
-	ld bc, $1000
-	jp Function118b10
-; 118a8f
-
-Function118a8f: ; 118a8f
-	ld hl, ExchangeDownloadURL
-	ld de, wcc60
-	ld bc, $80
-	call CopyBytes
-	ld de, w3_d000
-	ld bc, $1000
-	jp Function118b10
-; 118aa4
-
-Function118aa4: ; 118aa4
-	ld hl, NewsDownloadURL
-	ld de, wcc60
-	ld bc, $80
-	call CopyBytes
-	ld a, $5
-	ld [rSVBK], a
-	ld de, w3_d100
-	ld bc, $e00
-	jr Function118b10
-; 118abc
-
-Function118abc: ; 118abc (46:4abc)
-	ld hl, MenuDownloadURL
-	ld de, wcc60
-	ld bc, $80
-	call CopyBytes
-	ld de, w3_d000
-	ld bc, $1000
-	jr Function118b10
-; 118ad0 (46:4ad0)
-
-Function118ad0:
-	ld hl, IndexDownloadURL
-	ld de, wcc60
-	ld bc, $80
-	call CopyBytes
-	ld de, w3_d000
-	ld bc, $1000
-	jr Function118b10
-
-Function118ae4:
-	push bc
-	push de
-	push hl
-	ld a, $8
-	ld [wcd3c], a
-	call BattleTowerRoomMenu2
-	pop hl
-	ld c, $0
-	ld de, wcc60
-.asm_118af5
-	ld a, [hli]
-	ld [de], a
-	inc de
-	and a
-	jr z, .asm_118b06
-	inc c
-	ld a, c
-	cp $a6
-	jr c, .asm_118af5
-	ld a, $da
-	jp Function118805
-
-.asm_118b06
-	call Function118b24
-	pop de
-	pop bc
-	ld a, $2a
-	jp Function119e2b
-; 118b10
-
-Function118b10:
-	push de
-	push bc
-	ld a, $8
-	ld [wcd3c], a
-	call BattleTowerRoomMenu2
-	call Function118b24
-	pop bc
-	pop de
-	ld a, $2a
-	jp Function119e2b
-
-Function118b24: ; 118b24 (46:4b24)
-	ld hl, $c346
-	ld a, $8
-	ld [hli], a
-	ld a, $c7
-	ld [hli], a
-	ld a, $60
-	ld [hli], a
-	ld a, $cc
-	ld [hli], a
-	call Function119eb4
-	call Function119ec2
-	ld a, $80
-	ld [wcd89], a
-	ld hl, $c346
-	ret
-; 118b42 (46:4b42)
-
-Function118b42: ; 118b42
-	ld hl, wd002
-	ld a, l
-	ld [wcd51], a
-	ld a, h
-	ld [wcd52], a
-	call Function118b8c
-	ld a, l
-	ld [wcd55], a
-	ld [wcd59], a
-	ld a, h
-	ld [wcd56], a
-	ld [wcd5a], a
-	call Function118b8c
-	ld a, l
-	ld [wcd53], a
-	ld [wcd5d], a
-	ld a, h
-	ld [wcd54], a
-	ld [wcd5e], a
-	call Function118b8c
-	ld a, l
-	ld [wcd57], a
-	ld [wcd5b], a
-	ld a, h
-	ld [wcd58], a
-	ld [wcd5c], a
-	call Function118b8c
-	ld a, l
-	ld [wcd5f], a
-	ld a, h
-	ld [wcd60], a
-	ret
-; 118b8c
-
-Function118b8c: ; 118b8c
-.asm_118b8c
-	call Function118b9a
-	ret nc
-	ld a, [hli]
-	cp $d
-	jr nz, .asm_118b8c
-	dec hl
-	xor a
-	ld [hli], a
-	ld [hli], a
-	ret
-; 118b9a
-
-Function118b9a: ; 118b9a
-	ld a, h
-	cp $e0
-	ret c
-	ld a, $d3
-	call Function118805
-	and a
-	ret
-; 118ba5
-
-
-	charmap " ", $20 ; revert to ascii
-
-ExchangeDownloadURL: ; 0x118ba5
-	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0
-
-BattleDownloadURL: ; 0x118bf7
-	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0
-
-NewsDownloadURL: ; 0x118c47
-	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0
-
-MenuDownloadURL: ; 0x118c95
-	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0
-
-IndexDownloadURL: ; 0x118ce5
-	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0
-
-
-Function118d35: ; 118d35
-; unreferenced
-	ld hl, $d200
-	ld a, [wcd38]
-	and a
-	jr nz, .asm_118d6e
-	ld a, [hli]
-	cp $94
-	jr nz, .asm_118d7b
-	ld a, [hl]
-	cp $5
-	jr nz, .asm_118d7b
-	ld a, [wcd4f]
-	sla a
-	ld b, a
-	sla a
-	sla a
-	add b
-	ld b, a
-	ld a, $5
-	call GetSRAMBank
-	ld a, b
-	ld [$b2fb], a
-	call CloseSRAM
-	callba Function170be4
-	callba Function1700c4
-	jr .asm_118d78
-
-.asm_118d6e
-	ld a, [hli]
-	cp $96
-	jr nz, .asm_118d7b
-	ld a, [hl]
-	cp $0
-	jr nz, .asm_118d7b
-
-.asm_118d78
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_118d7b
-	ld a, $d3
-	jp Function118805
-; 118d80
-
-Function118d80: ; 118d80
-	call Function118e06
-	ld a, [wcd38]
-	and a
-	jr z, .asm_118d8e
-	call BattleTowerRoomMenu_IncrementJumptable
-	jr asm_118d9f
-
-.asm_118d8e
-	ld a, $9
-	ld [wcd3c], a
-	ld a, $12
-	ld [wMobileInactivityTimerSeconds], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-Function118d9b:
-	call BattleTowerRoomMenu2
-	ret c
-
-asm_118d9f
-	ld hl, $c608
-	call Function119940
-	ld a, [wcd38]
-	and a
-	jr nz, .asm_118db2
-	ld a, $8f
-	ld [wcd3b], a
-	jr .asm_118db7
-
-.asm_118db2
-	ld a, $26
-	ld [wcd3b], a
-
-.asm_118db7
-	ld hl, w3_d800
-	ld a, $8
-	ld [hli], a
-	ld a, $c6
-	ld [hli], a
-	ld a, [wcd3b]
-	ld [hli], a
-	xor a
-	ld [hli], a
-	ld a, $8
-	ld [hli], a
-	ld a, $c7
-	ld [hli], a
-	ld a, [wcd39]
-	ld [hli], a
-	ld a, [wcd3a]
-	ld [hli], a
-	call Function119eb4
-	call Function119ec2
-	ld a, $40
-	ld [wcd89], a
-	ld hl, w3_d800
-	ld de, $de00
-	ld bc, $0200
-	ld a, $2c
-	jp Function119e2b
-; 118ded
-
-Function118ded: ; 118ded
-	ld a, [wcd38]
-	and a
-	jr z, .asm_118e03
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	callba Function11b93b
-	pop af
-	ld [rSVBK], a
-
-.asm_118e03
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 118e06
-
-Function118e06: ; 118e06
-	ld hl, wd002
-	ld a, [wcd38]
-	and a
-	jr z, .asm_118e1d
-.asm_118e0f
-	call Function118b9a
-	ret nc
-	ld a, [hli]
-	cp $d
-	jr nz, .asm_118e0f
-	ld a, [hli]
-	cp $a
-	jr nz, .asm_118e0f
-
-.asm_118e1d
-	ld a, l
-	ld [wcd39], a
-	ld a, h
-	ld [wcd3a], a
-.asm_118e25
-	call Function118b9a
-	ret nc
-	ld a, [hli]
-	cp $d
-	jr nz, .asm_118e25
-	ld a, [hli]
-	cp $a
-	jr nz, .asm_118e25
-	dec hl
-	xor a
-	ld [hld], a
-	ld [hl], a
-	jr asm_118e3e
-
-Function118e39: ; 118e39 (46:4e39)
-.asm_118e39
-	ld a, [hli]
-	and a
-	jr nz, .asm_118e39
-	dec hl
-asm_118e3e
-.asm_118e3e
-	ld a, [hld]
-	cp $2f
-	jr nz, .asm_118e3e
-	inc hl
-	inc hl
-	ld de, wcd85
-	ld c, $4
-.asm_118e4a
-	ld a, [hli]
-	cp $2e
-	jr z, .asm_118e63
-	cp $30
-	jr c, .asm_118e67
-	cp $3a
-	jr nc, .asm_118e67
-	sub $30
-	add $f6
-	ld [de], a
-	inc de
-	dec c
-	jr nz, .asm_118e4a
-	ld de, wcd85
-.asm_118e63
-	ld a, $50
-	ld [de], a
-	ret
-.asm_118e67
-	ld a, $f3
-	ld [de], a
-	inc de
-	jr .asm_118e63
-
-Function118e6d: ; 118e6d (46:4e6d)
-	xor a
-	ld [wcd65], a
-	ld a, $a
-	jp Function119e2b
-
-Function118e76: ; 118e76 (46:4e76)
-	; Call $c in BattleTowerRoomMenu2
-	ld a, $c
-	ld [wcd3c], a
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-Function118e7e: ; 118e7e (46:4e7e)
-	call BattleTowerRoomMenu2
-	ret c
-	ld a, $36
-	jp Function119e2b
-
-BattleTowerRoomMenu_CallRoomMenu2: ; 118e87 (46:4e87)
-	call BattleTowerRoomMenu2
-	ret c
-	ld a, [wcd33]
-	ld [wcf66], a
-	ret
-; 118e92 (46:4e92)
-
-Function118e92: ; 118e92
-	call Function118440
-	call Function1191d3
-	ld a, [wcd53]
-	ld l, a
-	ld a, [wcd54]
-	ld h, a
-	ld de, wcc60
-	call Function1191ad
-	ret c
-	ld de, w3_d800
-	ld bc, $0800
-	jp Function118b10
-; 118eb0
-
-Function118eb0: ; 118eb0
-	call Function118440
-	ld hl, $d802
-	ld de, BGMapBuffer
-	ld bc, $000c
-	call CopyBytes
-	call Function1192cc
-	ret c
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 118ec6
-
-Function118ec6: ; 118ec6
-	call Function118440
-	call SpeechTextBox
-	ld hl, $d80e
-	ld de, $c320
-	ld bc, $0026
-	call CopyBytes
-	xor a
-	ld [$c31f], a
-	ld a, $20
-	ld [$c31b], a
-	ld a, $c3
-	ld [$c31c], a
-	hlcoord 1, 14
-	ld a, l
-	ld [$c31d], a
-	ld a, h
-	ld [$c31e], a
-	ld a, $2
-	ld [$c31a], a
-	ld a, $1d
-	ld [wcd3c], a
-	ld a, $24
-	ld [wMobileInactivityTimerSeconds], a
-	ld a, $11
-	ld [wMobileInactivityTimerFrames], a
-	ld a, $1c
-	ld [wcd47], a
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 118f0d
-
-Function118f0d: ; 118f0d
-	call BattleTowerRoomMenu2
-	ret c
-	call Function118440
-
-Function118f14:
-	call Function118440
-	ld a, [wcd51]
-	ld l, a
-	ld a, [wcd52]
-	ld h, a
-	ld de, wcc60
-	call Function1191ad
-	ret c
-	ld a, [wcc60]
-	and a
-	jr z, .DontSendSaveFile
-	ld hl, Text_SaveFileWillBeSent
-	call BattleTowerRoomMenu_SetMessage
-
-.DontSendSaveFile:
-	ld a, [wcd57]
-	ld l, a
-	ld a, [wcd58]
-	ld h, a
-	ld de, wcc60
-	call Function1191ad
-	ret c
-	ld hl, wcc60
-	call Function118e39
-	ld a, $9
-	ld [wcd3c], a
-	ld a, $24
-	ld [wMobileInactivityTimerSeconds], a
-	ld a, $13
-	ld [wMobileInactivityTimerFrames], a
-	ld a, $1c
-	ld [wcd47], a
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 118f5e
-
-Function118f5e: ; 118f5e
-	call BattleTowerRoomMenu2
-	ret c
-	call Function118440
-	call DelayFrame
-
-Function118f68:
-	call Function119223
-	ret c
-	call Function118440
-	ld a, [wcd51]
-	ld l, a
-	ld a, [wcd52]
-	ld h, a
-	ld de, wcc60
-	call Function1191ad
-	ret c
-	ld a, [wcc60]
-	and a
-	jr z, .asm_118fba
-	ld hl, $c346
-	ld a, $c608 % $100
-	ld [hli], a
-	ld a, $c608 / $100
-	ld [hli], a
-	ld a, [wcd4b]
-	ld [hli], a
-	ld a, [wcd4c]
-	ld [hli], a
-	ld a, $c708 % $100
-	ld [hli], a
-	ld a, $c708 / $100
-	ld [hli], a
-	ld a, $60
-	ld [hli], a
-	ld a, $cc
-	ld [hli], a
-	call Function119eb4
-	call Function119ec2
-	ld a, $40
-	ld [wcd89], a
-	ld hl, $c346
-	ld de, $de00
-	ld bc, $0200
-	ld a, $2c
-	jp Function119e2b
-
-.asm_118fba
-	call BattleTowerRoomMenu_IncrementJumptable
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 118fc0
-
-Function118fc0: ; 118fc0
-	call Function118440
-	ld a, [wcd55]
-	ld l, a
-	ld a, [wcd56]
-	ld h, a
-	ld de, wcc60
-	call Function1191ad
-	ret c
-	ld a, [wcc60]
-	and a
-	jr z, .asm_118ffa
-	ld a, [wcd51]
-	ld l, a
-	ld a, [wcd52]
-	ld h, a
-	ld de, wcc60
-	call Function1191ad
-	ret c
-	ld a, [wcc60]
-	and a
-	jr z, .asm_118ff2
-	ld hl, Text_SentSaveFileReadingNews
-	jr .asm_118ff5
-
-.asm_118ff2
-	ld hl, Text_ReadingNews
-
-.asm_118ff5
-	call BattleTowerRoomMenu_SetMessage
-	jr Function119009
-
-.asm_118ffa
-	ld hl, Text_ReadingNews
-	call BattleTowerRoomMenu_SetMessage
-	call BattleTowerRoomMenu_IncrementJumptable
-	call BattleTowerRoomMenu_IncrementJumptable
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119009:
-	call Function118440
-	call Function119300
-	ld a, [wcd55]
-	ld l, a
-	ld a, [wcd56]
-	ld h, a
-	ld de, wcc60
-	call Function1191ad
-	ret c
-	ld hl, $c346
-	ld a, $8
-	ld [hli], a
-	ld a, $c6
-	ld [hli], a
-	ld a, [wcd4b]
-	ld [hli], a
-	ld a, [wcd4c]
-	ld [hli], a
-	ld a, $8
-	ld [hli], a
-	ld a, $c7
-	ld [hli], a
-	ld a, $60
-	ld [hli], a
-	ld a, $cc
-	ld [hli], a
-	call Function119eb4
-	call Function119ec2
-	ld a, $40
-	ld [wcd89], a
-	ld hl, $c346
-	ld de, w3_d000
-	ld bc, $1000
-	ld a, $2c
-	jp Function119e2b
-; 119054
-
-Function119054: ; 119054
-	ld a, $6
-	call GetSRAMBank
-	ld hl, wd002
-	ld a, [wcd4f]
-	ld e, a
-	ld a, [wcd50]
-	ld d, a
-	ld a, [w3_d000]
-	ld c, a
-	ld a, [w3_d000 + 1]
-	ld b, a
-	call Function119192
-	ret c
-	ld a, [wcd89]
-	and $1
-	jr z, .asm_11908a
-	ld a, $6
-	ld [rSVBK], a
-	ld hl, wd002
-	ld a, [w3_d000]
-	ld c, a
-	ld a, [w3_d000 + 1]
-	ld b, a
-	call Function119192
-	ret c
-
-.asm_11908a
-	call CloseSRAM
-	ld a, $3
-	ld [rSVBK], a
-	ld a, $5
-	call GetSRAMBank
-	ld a, [wcd4f]
-	ld [$b1b3], a
-	ld a, [wcd50]
-	ld [$b1b4], a
-	ld hl, BGMapBuffer
-	ld de, $aa7f
-	ld bc, $000c
-	call CopyBytes
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, [wd474]
-	ld [$b2f3], a
-	ld hl, wd475
-	ld de, $b2f4
-	ld bc, $0004
-	call CopyBytes
-	pop af
-	ld [rSVBK], a
-	call CloseSRAM
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 1190d0
-
-Function1190d0: ; 1190d0
-	ld a, $3
-	ld [rSVBK], a
-	ld a, [wcd57]
-	ld l, a
-	ld a, [wcd58]
-	ld h, a
-	ld de, wcc60
-	call Function1191ad
-	ret c
-	ld de, w3_d000
-	ld bc, $1000
-	jp Function118b10
-; 1190ec
-
-Function1190ec: ; 1190ec
-	ld a, $5
-	call GetSRAMBank
-	ld hl, BGMapBuffer
-	ld de, $aa73
-	ld bc, $000c
-	call CopyBytes
-	call CloseSRAM
-	ld a, $5
-	call GetSRAMBank
-	ld a, $1
-	ld [$aa72], a
-	call CloseSRAM
-	ld a, $6
-	call GetSRAMBank
-	ld a, [w3_d000]
-	ld c, a
-	ld a, [w3_d000 + 1]
-	ld b, a
-	ld hl, wd002
-	ld de, $a000
-	call Function119192
-	ret c
-	ld a, [wcd89]
-	and $1
-	jr z, .asm_11913e
-	ld a, $6
-	ld [rSVBK], a
-	ld a, [w3_d000]
-	ld c, a
-	ld a, [w3_d000 + 1]
-	ld b, a
-	ld hl, wd002
-	call Function119192
-	ret c
-
-.asm_11913e
-	ld a, $3
-	ld [rSVBK], a
-	call CloseSRAM
-	ld hl, Text_ReceivedNews
-	call BattleTowerRoomMenu_SetMessage
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 11914e
-
-Function11914e: ; 11914e
-	call BattleTowerRoomMenu2
-	ret c
-	ld a, $1c
-	ld [wcf66], a
-	ld a, $a
-	ld [wc300], a
-	ret
-; 11915d
-
-Function11915d: ; 11915d
-	ld hl, $d802
-	ld de, BGMapBuffer
-	ld bc, $000c
-	call CopyBytes
-	ld a, $5
-	call GetSRAMBank
-	ld hl, BGMapBuffer
-	ld de, $aa7f
-	ld c, $c
-.asm_119176
-	ld a, [de]
-	inc de
-	cp [hl]
-	jr nz, .asm_119184
-	inc hl
-	dec c
-	jr nz, .asm_119176
-	call BattleTowerRoomMenu_IncrementJumptable
-	jr .asm_11918e
-
-.asm_119184
-	ld a, $16
-	ld [wcf66], a
-	ld a, $b
-	ld [wc300], a
-
-.asm_11918e
-	call CloseSRAM
-	ret
-; 119192
-
-Function119192: ; 119192
-	inc b
-	inc c
-	jr .asm_11919e
-
-.asm_119196
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, $bf
-	cp d
-	jr c, .asm_1191a6
-
-.asm_11919e
-	dec c
-	jr nz, .asm_119196
-	dec b
-	jr nz, .asm_119196
-	and a
-	ret
-
-.asm_1191a6
-	ld a, $d3
-	call Function118805
-	scf
-	ret
-; 1191ad
-
-Function1191ad: ; 1191ad
-	push bc
-	ld c, $0
-	ld a, $5
-	ld [rSVBK], a
-.asm_1191b4
-	ld a, [hli]
-	ld [de], a
-	inc de
-	and a
-	jr z, .asm_1191cc
-	inc c
-	ld a, c
-	cp $a6
-	jr c, .asm_1191b4
-	ld a, $da
-	call Function118805
-	ld a, $3
-	ld [rSVBK], a
-	pop bc
-	scf
-	ret
-
-.asm_1191cc
-	ld a, $3
-	ld [rSVBK], a
-	pop bc
-	and a
-	ret
-; 1191d3
-
-Function1191d3: ; 1191d3
-	ld hl, w3_d100 + 2
-	ld a, l
-	ld [wcd53], a
-	ld a, h
-	ld [wcd54], a
-	call Function11920f
-	ld a, l
-	ld [wcd51], a
-	ld a, [wcd4a]
-	ld a, h
-	ld [wcd52], a
-	call Function11920f
-	ld a, l
-	ld [wcd55], a
-	ld a, [wcd4a]
-	ld a, h
-	ld [wcd56], a
-	call Function11920f
-	ld a, [wcd49]
-	ld a, l
-	ld [wcd57], a
-	ld a, [wcd4a]
-	ld a, h
-	ld [wcd58], a
-	call Function11920f
-	ret
-; 11920f
-
-Function11920f: ; 11920f
-.asm_11920f
-	call Function118b9a
-	ret nc
-	ld a, [hli]
-	cp $d
-	jr nz, .asm_11920f
-	ld a, [hli]
-	cp $a
-	jr nz, .asm_11920f
-	dec hl
-	xor a
-	ld [hld], a
-	ld [hli], a
-	inc hl
-	ret
-; 119223
-
-Function119223: ; 119223
-	xor a
-	ld [wcd4b], a
-	ld [wcd4c], a
-	ld a, $5
-	call GetSRAMBank
-	ld hl, wc3cd
-	ld de, $b092
-	ld bc, $001f
-	call CopyBytes
-	dec de
-	xor a
-	ld [de], a
-	ld hl, $d810
-.asm_119241
-	ld a, [hli]
-	cp $50
-	jr nz, .asm_119241
-	ld a, [hli]
-	ld [wcd4f], a
-	ld a, [hli]
-	ld [wcd50], a
-	ld a, [hli]
-	ld [$b1b1], a
-	ld c, a
-	ld a, [hli]
-	ld [$b1b2], a
-	ld b, a
-	ld de, $b1d3
-	call CopyBytes
-	call CloseSRAM
-	ld e, l
-	ld d, h
-	ld hl, $c608
-.asm_119266
-	ld a, [de]
-	inc de
-	cp $ff
-	jr z, .asm_1192c2
-	cp $fe
-	jr z, .asm_1192a5
-	call GetSRAMBank
-	ld a, [de]
-	inc de
-	ld c, a
-	ld a, [de]
-	inc de
-	ld b, a
-	ld a, [de]
-	inc de
-	push de
-	push af
-	ld a, [wcd4b]
-	ld e, a
-	ld a, [wcd4c]
-	ld d, a
-	pop af
-.asm_119286
-	push af
-	ld a, [bc]
-	inc bc
-	ld [hli], a
-	inc de
-	pop af
-	dec a
-	jr nz, .asm_119286
-	call CloseSRAM
-	ld a, e
-	ld [wcd4b], a
-	ld a, d
-	ld [wcd4c], a
-	pop de
-.asm_11929b
-	and a
-	jr z, .asm_119266
-	ld a, $d3
-	call Function118805
-	scf
-	ret
-
-.asm_1192a5
-	ld a, [wcd4b]
-	ld c, a
-	ld a, [wcd4c]
-	ld b, a
-	ld a, [de]
-	inc de
-.asm_1192af
-	push af
-	ld a, [de]
-	inc de
-	ld [hli], a
-	inc bc
-	pop af
-	dec a
-	jr nz, .asm_1192af
-	ld a, c
-	ld [wcd4b], a
-	ld a, b
-	ld [wcd4c], a
-	jr .asm_11929b
-
-.asm_1192c2
-	ld a, e
-	ld [wcd4d], a
-	ld a, d
-	ld [wcd4e], a
-	and a
-	ret
-; 1192cc
-
-Function1192cc: ; 1192cc
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $aa73
-	ld de, $c608
-	ld bc, $000c
-	call CopyBytes
-	call CloseSRAM
-	ld hl, $c608
-	ld de, BGMapBuffer
-	ld c, $c
-.asm_1192e8
-	ld a, [de]
-	inc de
-	ld b, a
-	ld a, [hli]
-	cp b
-	jr nz, .asm_1192fe
-	dec c
-	jr nz, .asm_1192e8
-	ld a, $1f
-	ld [wcd3c], a
-	ld a, $27
-	ld [wcf66], a
-	scf
-	ret
-
-.asm_1192fe
-	and a
-	ret
-; 119300
-
-Function119300: ; 119300
-	xor a
-	ld [wcd4b], a
-	ld [wcd4c], a
-	ld a, [wcd4d]
-	ld e, a
-	ld a, [wcd4e]
-	ld d, a
-	ld hl, $c608
-	ld a, [wcd4b]
-	ld c, a
-	ld a, [wcd4c]
-	ld b, a
-.asm_11931a
-	ld a, [de]
-	inc de
-	cp $50
-	jr z, .asm_119324
-	ld [hli], a
-	inc bc
-	jr .asm_11931a
-
-.asm_119324
-	ld a, $3d
-	ld [hli], a
-	inc bc
-	ld a, c
-	ld [wcd4b], a
-	ld a, b
-	ld [wcd4c], a
-	ld a, [de]
-	inc de
-	call GetSRAMBank
-	ld a, [de]
-	inc de
-	ld c, a
-	ld a, [de]
-	inc de
-	ld b, a
-	ld a, [de]
-	inc de
-	push de
-	push af
-	ld a, [wcd4b]
-	ld e, a
-	ld a, [wcd4c]
-	ld d, a
-	pop af
-.asm_119348
-	push af
-	ld a, [bc]
-	and $f0
-	swap a
-	call Function1197bf
-	ld [hli], a
-	inc de
-	ld a, [bc]
-	inc bc
-	and $f
-	call Function1197bf
-	ld [hli], a
-	inc de
-	pop af
-	dec a
-	jr nz, .asm_119348
-	call CloseSRAM
-	ld a, e
-	ld [wcd4b], a
-	ld a, d
-	ld [wcd4c], a
-	pop de
-	ld a, [de]
-	cp $50
-	jr z, .asm_11937f
-	ld a, [wcd4b]
-	ld c, a
-	ld a, [wcd4c]
-	ld b, a
-	ld a, $26
-	ld [hli], a
-	inc bc
-	jr .asm_11931a
-
-.asm_11937f
-	ret
-; 119380
-
-Function119380: ; 119380
-	ld a, $80
-	ld [wcd49], a
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 119388
-
-Function119388: ; 119388
-	ld hl, wcd49
-	dec [hl]
-	ret nz
-	ld hl, wcc60
-	call Function118e39
-	ld a, $9
-	ld [wcd3c], a
-	ld a, $10
-	ld [wMobileInactivityTimerSeconds], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-Function1193a0:
-	call BattleTowerRoomMenu2
-	ret c
-	call DelayFrame
-	ld a, $8
-	ld [wcd3c], a
-	call BattleTowerRoomMenu2
-	ld hl, $c346
-	ld a, wd000 % $100
-	ld [hli], a
-	ld a, wd000 / $100
-	ld [hli], a
-	ld a, [wcd3b]
-	ld [hli], a
-	xor a
-	ld [hli], a
-	ld a, $c708 % $100
-	ld [hli], a
-	ld a, $c708 / $100
-	ld [hli], a
-	ld a, $60
-	ld [hli], a
-	ld a, $cc
-	ld [hli], a
-	call Function119eb4
-	call Function119ec2
-	ld a, $40
-	ld [wcd89], a
-	ld hl, $c346
-	ld de, $de00
-	ld bc, $0200
-	ld a, $2c
-	jp Function119e2b
-; 1193e3
-
-Function1193e3: ; 1193e3
-	ld hl, wcd49
-	dec [hl]
-	ret nz
-	ld hl, wcc60
-	call Function118e39
-	ld a, $9
-	ld [wcd3c], a
-	ld a, $11
-	ld [wMobileInactivityTimerSeconds], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-Function1193fb:
-	call BattleTowerRoomMenu2
-	ret c
-	call DelayFrame
-	ld a, $8
-	ld [wcd3c], a
-	call BattleTowerRoomMenu2
-	ld de, w3_d000
-	ld bc, $1000
-	jp Function118b10
-; 119413
-
-Function119413: ; 119413
-	ld a, $6
-	call GetSRAMBank
-	ld a, [w3_d000]
-	ld c, a
-	ld a, [w3_d000 + 1]
-	ld b, a
-	dec bc
-	dec bc
-	ld hl, wd002
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	call Function119192
-	ret c
-	ld a, [wcd89]
-	and $1
-	jr z, .asm_119447
-	ld a, $6
-	ld [rSVBK], a
-	ld a, [wd000]
-	ld c, a
-	ld a, [w3_d000 + 1]
-	ld b, a
-	ld hl, wd002
-	call Function119192
-	ret c
-
-.asm_119447
-	ld a, $3
-	ld [rSVBK], a
-	call CloseSRAM
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 119451
-
-Function119451: ; 119451 (46:5451)
-	ld a, [wcd89]
-	and $1
-	jr z, .asm_11945d
-	ld a, $d3
-	jp Function118805
-.asm_11945d
-	xor a
-	ld [wcd50], a
-	call Function119694
-	ld a, b
-	ld [wcd49], a
-	call Function1196cd
-	ld a, [wd002]
-	ld hl, wd003
-
-Function119471: ; 119471 (46:5471)
-	push af
-	ld a, [hli]
-	ld [$c608], a
-	ld a, [hli]
-	ld [$c608 + 3], a
-	ld a, [hli]
-	ld [$c608 + 1], a
-	ld a, [hli]
-	ld [$c608 + 2], a
-	ld a, [hli]
-	ld [$c608 + 4], a
-	ld a, [hli]
-	ld [$c608 + 5], a ; $c608 + 5
-	push hl
-	ld a, [$c608]
-	cp $ff
-	jr z, .asm_1194a7
-	ld a, [$c608 + 2]
-	cp $ff
-	jr z, .asm_1194a7
-	ld a, [$c608 + 1]
-	cp $ff
-	jr nz, .asm_1194a7
-	call Function119584
-	jr c, .asm_11950c
-	jr .asm_1194f0
-.asm_1194a7
-	ld hl, $c608
-	ld de, $c608 + 3
-	ld c, $3
-.asm_1194af
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	jr c, .asm_1194f3
-	jr z, .asm_1194b9
-	jr nc, .asm_1194bc
-.asm_1194b9
-	dec c
-	jr nz, .asm_1194af
-.asm_1194bc
-	ld c, $3
-	ld hl, wcd49
-	ld de, $c608
-.asm_1194c4
-	ld a, [de]
-	inc de
-	cp $ff
-	jr z, .asm_1194d1
-	cp [hl]
-	jr z, .asm_1194d1
-	jr c, .asm_1194d5
-	jr nc, .asm_1194f0
-.asm_1194d1
-	inc hl
-	dec c
-	jr nz, .asm_1194c4
-.asm_1194d5
-	ld c, $3
-	ld hl, wcd49
-	ld de, $c608 + 3
-.asm_1194dd
-	ld a, [de]
-	inc de
-	cp $ff
-	jr z, .asm_1194ea
-	cp [hl]
-	jr c, .asm_1194f0
-	jr z, .asm_1194ea
-	jr nc, .asm_11950c
-.asm_1194ea
-	inc hl
-	dec c
-	jr nz, .asm_1194dd
-	jr .asm_11950c
-.asm_1194f0
-	pop hl
-	jr .asm_119557
-.asm_1194f3
-	ld c, $3
-	ld hl, wcd49
-	ld de, $c608
-.asm_1194fb
-	ld a, [de]
-	inc de
-	cp $ff
-	jr z, .asm_119508
-	cp [hl]
-	jr c, .asm_11950c
-	jr z, .asm_119508
-	jr nc, .asm_1194d5
-.asm_119508
-	inc hl
-	dec c
-	jr nz, .asm_1194fb
-.asm_11950c
-	pop hl
-	ld a, $1
-	ld [wcd50], a
-	ld a, l
-	ld [$c608], a
-	ld a, h
-	ld [$c608 + 1], a
-	ld de, wcd69
-	ld c, $10
-	ld b, $0
-.asm_119521
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	jr nz, .asm_119528
-	inc b
-.asm_119528
-	dec c
-	jr nz, .asm_119521
-	ld a, $10
-	cp b
-	jr z, .asm_119536
-rept 4
-	inc hl
-endr
-	jr .asm_11957a
-.asm_119536
-	ld a, [hli]
-	cp $50
-	jr nz, .asm_119552
-	ld a, [hli]
-	cp $33
-	jr nz, .asm_119553
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld a, [wcd83]
-	cp c
-	jr nz, .asm_119576
-	ld a, [wcd84]
-	cp b
-	jr nz, .asm_119576
-	jr .asm_11955b
-.asm_119552
-	inc hl
-.asm_119553
-	inc hl
-	inc hl
-	jr .asm_11955b
-.asm_119557
-	ld de, $14
-	add hl, de
-.asm_11955b
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	add hl, de
-	pop af
-	dec a
-	jp nz, Function119471
-	ld a, [wcd50]
-	and a
-	jr z, .asm_119571
-	ld a, $1a
-	ld [wcf66], a
-	ret
-.asm_119571
-	ld a, $d8
-	jp Function118805
-.asm_119576
-	ld a, $10
-	jr .asm_11957c
-.asm_11957a
-	ld a, $f
-.asm_11957c
-	ld [wcf66], a
-	pop af
-	call Function1195c4
-	ret
-
-Function119584: ; 119584 (46:5584)
-	ld a, [$c608]
-	ld b, a
-	ld a, [$c608 + 3]
-	ld c, a
-	cp b
-	jr c, .asm_11959c
-	ld a, [wcd49]
-	cp b
-	jr c, .asm_1195c2
-.asm_119595
-	cp c
-	jr c, .asm_1195a2
-	jr z, .asm_1195a2
-	jr .asm_1195c2
-.asm_11959c
-	ld a, [wcd49]
-	cp b
-	jr c, .asm_119595
-.asm_1195a2
-	ld a, [$c608 + 2]
-	ld b, a
-	ld a, [$c608 + 5] ; $c608 + 5
-	ld c, a
-	cp b
-	jr c, .asm_1195ba
-	ld a, [wcd4b]
-	cp b
-	jr c, .asm_1195c2
-.asm_1195b3
-	cp c
-	jr c, .asm_1195c0
-	jr z, .asm_1195c0
-	jr .asm_1195c2
-.asm_1195ba
-	ld a, [wcd4b]
-	cp b
-	jr c, .asm_1195b3
-.asm_1195c0
-	scf
-	ret
-.asm_1195c2
-	and a
-	ret
-
-Function1195c4: ; 1195c4 (46:55c4)
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld de, $a5
-	ld a, b
-	cp d
-	jr c, .asm_1195d9
-	jr z, .asm_1195d3
-	jr nc, .asm_1195f3
-.asm_1195d3
-	ld a, c
-	cp e
-	jr z, .asm_1195d9
-	jr nc, .asm_1195f3
-.asm_1195d9
-	ld de, wcc60
-	call CopyBytes
-	xor a
-	ld [de], a
-	ld a, [$c608]
-	ld l, a
-	ld a, [$c608 + 1]
-	ld h, a
-	ld de, wcd69
-	ld bc, $10
-	call CopyBytes
-	ret
-.asm_1195f3
-	ld a, $d8
-	jp Function118805
-
-Function1195f8: ; 1195f8 (46:55f8)
-	ld a, $11
-	ld [wcd3c], a
-	ld a, $1c
-	ld [wMobileInactivityTimerSeconds], a
-	ld a, $f
-	ld [wMobileInactivityTimerFrames], a
-	ld a, $14
-	ld [wcd47], a
-	call BattleTowerRoomMenu_IncrementJumptable
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119612: ; 119612 (46:5612)
-	ld a, $14
-	ld [wcd3c], a
-	ld a, $1c
-	ld [wMobileInactivityTimerSeconds], a
-	ld a, $10
-	ld [wMobileInactivityTimerFrames], a
-	ld a, $14
-	ld [wcd47], a
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119629: ; 119629 (46:5629)
-	call BattleTowerRoomMenu2
-	ret c
-	ld a, $60
-	ld l, a
-	ld a, $cc
-	ld h, a
-	call Function118e39
-	ld a, $9
-	ld [wcd3c], a
-	ld a, $1c
-	ld [wMobileInactivityTimerSeconds], a
-	ld a, $14
-	ld [wcd47], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-Function119648: ; 119648 (46:5648)
-	call BattleTowerRoomMenu2
-	ret c
-	call DelayFrame
-	ld a, $8
-	ld [wcd3c], a
-	call BattleTowerRoomMenu2
-	call Function118b24
-	ld de, w3_d000
-	ld bc, $1000
-	ld a, $2a
-	jp Function119e2b
-
-Function119665: ; 119665 (46:5665)
-	ld a, $1a
-	ld [wcd3c], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-Function11966d: ; 11966d (46:566d)
-	call BattleTowerRoomMenu2
-	ret c
-	ld a, [wcd47]
-	ld [wcf66], a
-	ld a, $a
-	ld [wc300], a
-	ret
-
-Function11967d: ; 11967d (46:567d)
-	ld a, $18
-	ld [wcd3c], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-Function119685: ; 119685 (46:5685)
-	call BattleTowerRoomMenu2
-	ret c
-	ld a, $14
-	ld [wcf66], a
-	ld a, $a
-	ld [wc300], a
-	ret
-
-Function119694: ; 119694 (46:5694)
-	ld b, 0
-	ld hl, Unknown_1196b8
-.asm_119699
-	ld de, $c708
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	jr nz, .asm_1196af
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	jr nz, .asm_1196b0
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	jr nz, .asm_1196b1
-	ret
-.asm_1196af
-	inc hl
-.asm_1196b0
-	inc hl
-.asm_1196b1
-	inc b
-	ld a, b
-	cp $7
-	jr nz, .asm_119699
-	ret
-; 1196b8 (46:56b8)
-
-Unknown_1196b8: ; 1196b8
-	db "Mon"
-	db "Tue"
-	db "Wed"
-	db "Thu"
-	db "Fri"
-	db "Sat"
-	db "Sun"
-; 1196cd
-
-SECTION "bank46_2", ROMX
-; A hack to use ascii above.
-
-Function1196cd: ; 1196cd (46:56cd)
-	ld de, $c719
-	call Function1196de
-	ld [wcd4a], a
-	inc de
-	call Function1196de
-	ld [wcd4b], a
-	ret
-
-Function1196de: ; 1196de (46:56de)
-	ld a, [de]
-	inc de
-	; b = ([de] - 48) * 2
-	; c = ([de] - 48) * 10
-	sub $30
-	sla a
-	ld b, a
-	sla a
-	sla a
-	add b
-	ld c, a
-	add hl, bc
-	ld a, [de]
-	inc de
-	sub $30
-	add c
-	ret
-; 1196f2 (46:56f2)
-
-Function1196f2: ; 1196f2
-	ld hl, wd002
-.asm_1196f5
-	call Function118b9a
-	ret nc
-	ld a, [hli]
-	cp $d
-	jr nz, .asm_1196f5
-	ld a, [hl]
-	cp $a
-	jr nz, .asm_1196f5
-	xor a
-	ld [hld], a
-	ld [hli], a
-	ld a, l
-	ld [wcd5b], a
-	ld a, h
-	ld [wcd5c], a
-	inc hl
-	ld e, l
-	ld d, h
-	ld a, [de]
-	inc de
-	cp $d
-	jr nz, .asm_119722
-	ld a, [de]
-	inc de
-	cp $a
-	jr nz, .asm_119722
-	ld a, $b
-	jp Function118805
-
-.asm_119722
-	call Random
-	ld c, $0
-	ld b, c
-.asm_119728
-	call Function119798
-	ld a, d
-	cp $ff
-	jr nz, .asm_119735
-	ld a, e
-	cp $ff
-	jr z, .asm_11974c
-
-.asm_119735
-	ld a, [hRandomSub]
-	cp d
-	jr c, .asm_11974c
-	jr z, .asm_11973e
-	jr .asm_119745
-
-.asm_11973e
-	ld a, [hRandomAdd]
-	cp e
-	jr c, .asm_11974c
-	jr z, .asm_11974c
-
-.asm_119745
-	inc bc
-	ld a, c
-	or b
-	jr z, .asm_119770
-	jr .asm_119728
-
-.asm_11974c
-	ld a, [wcd5b]
-	ld l, a
-	ld a, [wcd5c]
-	ld h, a
-.asm_119754
-	ld a, [hld]
-	cp $58
-	jr nz, .asm_119754
-	ld d, $0
-.asm_11975b
-	inc d
-	ld a, [hld]
-	cp $58
-	jr z, .asm_11975b
-	inc hl
-	inc hl
-	ld a, d
-	dec a
-	jr z, .asm_11978e
-	dec a
-	jr z, .asm_119785
-	dec a
-	jr z, .asm_11977e
-	dec a
-	jr z, .asm_119775
-
-.asm_119770
-	ld a, $d3
-	jp Function118805
-
-.asm_119775
-	ld a, b
-	and $f0
-	swap a
-	call Function1197bf
-	ld [hli], a
-
-.asm_11977e
-	ld a, b
-	and $f
-	call Function1197bf
-	ld [hli], a
-
-.asm_119785
-	ld a, c
-	and $f0
-	swap a
-	call Function1197bf
-	ld [hli], a
-
-.asm_11978e
-	ld a, c
-	and $f
-	call Function1197bf
-	ld [hli], a
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 119798
-
-Function119798: ; 119798
-	ld d, $0
-	ld e, d
-	call Function1197b4
-	swap a
-	or d
-	ld d, a
-	call Function1197b4
-	or d
-	ld d, a
-	call Function1197b4
-	swap a
-	or e
-	ld e, a
-	call Function1197b4
-	or e
-	ld e, a
-	ret
-; 1197b4
-
-Function1197b4: ; 1197b4
-	ld a, [hli]
-	cp $61
-	jr nc, .asm_1197bc
-	sub $30
-	ret
-
-.asm_1197bc
-	sub $57
-	ret
-; 1197bf
-
-Function1197bf: ; 1197bf
-	cp $a
-	jr nc, .asm_1197c6
-	add $30
-	ret
-
-.asm_1197c6
-	add $57
-	ret
-; 1197c9
-
-Function1197c9: ; 1197c9
-	ld hl, wd002
-	call Function118e39
-	ld a, $9
-	ld [wcd3c], a
-	ld a, $12
-	ld [wMobileInactivityTimerSeconds], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-Function1197dc:
-	call BattleTowerRoomMenu2
-	ret c
-	call DelayFrame
-	ld hl, wd002
-	ld de, wcc60
-	ld bc, $0080
-	call CopyBytes
-	dec de
-	xor a
-	ld [de], a
-	call Function118b24
-	ld de, w3_d000
-	ld bc, $1000
-	ld a, $2a
-	jp Function119e2b
-; 119800
-
-Function119800: ; 119800
-	ld a, $fd
-	ld [$c6d0], a
-	ld [wOTTrademonSpecies], a
-	ld a, [wcd81]
-	ld [wc74e], a
-	ld a, [wJumptableIndex]
-	push af
-	ld a, [wcf64]
-	push af
-	ld a, [wcf65]
-	push af
-	ld a, [wcf66]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	call FadeToMenu
-	callba Function10803d
-	call Function11a9ce
-	call RestartMapMusic
-	ld a, $3
-	ld [rSVBK], a
-	pop af
-	ld [wcf66], a
-	pop af
-	ld [wcf65], a
-	pop af
-	ld [wcf64], a
-	pop af
-	ld [wJumptableIndex], a
-	callba Function115dc3
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 11984e
-
-Function11984e: ; 11984e
-	ld a, [wcd80]
-	and a
-	jr nz, .asm_1198a0
-	ld a, [wcd38]
-	and a
-	jr nz, .asm_1198a8
-	callba Function170000
-	ld a, [wJumptableIndex]
-	push af
-	ld a, [wcf64]
-	push af
-	ld a, [wcf65]
-	push af
-	ld a, [wcf66]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	call FadeToMenu
-	callba MobileTradeAnimation_SendGivemonToGTS
-	call Function11a9ce
-	call RestartMapMusic
-	ld a, $3
-	ld [rSVBK], a
-	pop af
-	ld [wcf66], a
-	pop af
-	ld [wcf65], a
-	pop af
-	ld [wcf64], a
-	pop af
-	ld [wJumptableIndex], a
-	callba Function115dc3
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_1198a0
-	ld a, $a
-	ld [wc300], a
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_1198a8
-	callba Function17005a
-	ld a, [wJumptableIndex]
-	push af
-	ld a, [wcf64]
-	push af
-	ld a, [wcf65]
-	push af
-	ld a, [wcf66]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	call FadeToMenu
-	callba MobileTradeAnimation_RetrieveGivemonFromGTS
-	call Function11a9ce
-	call RestartMapMusic
-	ld a, $3
-	ld [rSVBK], a
-	pop af
-	ld [wcf66], a
-	pop af
-	ld [wcf65], a
-	pop af
-	ld [wcf64], a
-	pop af
-	ld [wJumptableIndex], a
-	callba Function115dc3
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 1198ee
-
-Function1198ee: ; 1198ee
-	ld hl, Text_RegisteringRecord
-	call BattleTowerRoomMenu_SetMessage
-	call BattleTowerRoomMenu_IncrementJumptable
-
-Function1198f7:
-	ld a, [$c31a]
-	and a
-	ret nz
-	ld hl, $c608 + 2
-	call Function119940
-	ld hl, w3_d800
-	ld a, $c608 % $100
-	ld [hli], a
-	ld a, $c608 / $100
-	ld [hli], a
-	ld a, $f6
-	ld [hli], a
-	xor a
-	ld [hli], a
-	ld a, $c708 % $100
-	ld [hli], a
-	ld a, $c708 / $100
-	ld [hli], a
-	ld a, [wcd51]
-	ld [hli], a
-	ld a, [wcd52]
-	ld [hli], a
-	call Function119eb4
-	call Function119ec2
-	ld a, $40
-	ld [wcd89], a
-	ld hl, w3_d800
-	ld de, $de00
-	ld bc, $0200
-	ld a, $2c
-	jp Function119e2b
-; 119937
-
-Function119937: ; 119937
-	callba Function1707f4
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 119940
-
-Function119940: ; 119940
-	ld de, wc3cd
-	ld c, $1e
-.asm_119945
-	ld a, [de]
-	inc de
-	ld [hli], a
-	dec c
-	jr z, .asm_119953
-	and a
-	jr nz, .asm_119945
-	xor a
-.asm_11994f
-	ld [hli], a
-	dec c
-	jr nz, .asm_11994f
-
-.asm_119953
-	ret
-; 119954
-
-Function119954: ; 119954
-	ld a, $1c
-	ld [wcd3c], a
-	call BattleTowerRoomMenu2
-	ld hl, $c608
-	ld de, wc3cd
-.asm_119962
-	ld a, [de]
-	inc de
-	ld [hli], a
-	and a
-	jr nz, .asm_119962
-	call Function119ec2
-	ld hl, $c608
-	ld a, $1e
-	jp Function119e2b
-; 119973
-
-Function119973: ; 119973
-	ld a, $1
-	ld [wcf64], a
-	xor a
-	ld [wcf65], a
-	ld [w3_d090], a
-	ld de, w3_d000
-	ld a, $20
-	jp Function119e2b
-; 119987
-
-Function119987: ; 119987
-	ld hl, w3_d000 + 1
-	ld a, [w3_d000]
-	or [hl]
-	jr z, .asm_1199a0
-	ld a, [wcf64]
-	ld l, a
-	ld a, [wcf65]
-	ld h, a
-	ld de, BGPals
-	ld a, $22
-	jp Function119e2b
-
-.asm_1199a0
-	ld a, [w3_d090]
-	and a
-	jr z, .asm_1199ae
-	ld a, $16
-	ld [wcf66], a
-	jp Function119b0d
-
-.asm_1199ae
-	ld a, $1b
-	ld [wcf66], a
-	ret
-; 1199b4
-
-Function1199b4: ; 1199b4
-	ld a, [wd000 + 130]
-	and a
-	jr nz, .asm_1199c7
-	ld a, [wd000 + 129]
-	cp $7
-	jr nc, .asm_1199c7
-	call BattleTowerRoomMenu_IncrementJumptable
-	jp Function1199ca
-
-.asm_1199c7
-	jp Function119ac9
-; 1199ca
-
-Function1199ca: ; 1199ca
-	ld a, $20
-	ld [wcd89], a
-	ld a, [wcf64]
-	ld l, a
-	ld a, [wcf65]
-	ld h, a
-	ld de, w3_d100
-	ld bc, $0700
-	ld a, $28
-	jp Function119e2b
-; 1199e2
-
-Function1199e2: ; 1199e2
-	ld c, $c
-	ld de, XGameCodePrefix
-	call Function119e4f
-	jp c, Function119ac9
-	ld a, c
-	cp $1
-	jp nz, Function119ac9
-	ld hl, w3_d880
-	ld bc, XGameCode
-.loop
-	ld a, [bc]
-	and a
-	jr z, .game_result_prefix
-	cp [hl]
-	jp nz, Function119ac9
-	inc bc
-	inc hl
-	jr .loop
-
-.game_result_prefix
-	ld c, $17
-	ld de, XGameResultPrefix
-	call Function119e4f
-	jp c, .asm_119aa7
-	ld a, c
-	cp $1
-	jp nz, .asm_119aa7
-	ld a, [w3_d880]
-	cp $31
-	jp nz, .asm_119aa7
-	ld a, [w3_d881]
-	cp $20
-	jp nz, .asm_119aa7
-	ld a, [w3_d88a]
-	cp $20
-	jp nz, .asm_119aa7
-	ld a, [w3_d894]
-	cp $20
-	jp nz, .asm_119aa7
-	xor a
-	ld [w3_d8a0], a
-	ld [w3_d8a1], a
-	ld [w3_d8a2], a
-	ld [w3_d8a3], a
-	ld hl, $d8a0
-	ld bc, $d889
-	call Function119e98
-	call Function119e98
-	ld hl, $d8a0
-	ld a, [wcd2d]
-	cp [hl]
-	jr nz, Function119ac9
-	inc hl
-	ld a, [wcd2c]
-	cp [hl]
-	jr nz, Function119ac9
-	inc hl
-	ld a, [wcd2b]
-	cp [hl]
-	jr nz, Function119ac9
-	inc hl
-	ld a, [wcd2a]
-	cp [hl]
-	jr nz, Function119ac9
-	xor a
-	ld [w3_d8a0], a
-	ld [w3_d8a1], a
-	ld [w3_d8a2], a
-	ld [w3_d8a3], a
-	ld hl, $d8a0
-	ld bc, $d88e
-	call Function119e98
-	ld bc, $d893
-	call Function119e98
-	ld hl, $d8a0
-	ld a, [wcd2f]
-	cp [hl]
-	jr nz, .asm_119aa7
-	inc hl
-	ld a, [wcd2e]
-	cp [hl]
-	jr nz, .asm_119aa7
-	inc hl
-	ld a, [wcd31]
-	cp [hl]
-	jr nz, .asm_119aa7
-	inc hl
-	ld a, [wcd30]
-	cp [hl]
-	jr z, .asm_119aaf
-
-.asm_119aa7
-	ld a, $25
-	ld [wcf66], a
-	jp Function119b45
-
-.asm_119aaf
-	ld a, [w3_d090]
-	and a
-	jr nz, .asm_119aa7
-	ld a, [w3_d895]
-	sub $30
-	ld [w3_d090], a
-	ld a, [wcf64]
-	ld [w3_d090 + 1], a
-	ld a, [wcf65]
-	ld [w3_d090 + 2], a
-
-Function119ac9:
-	ld a, [w3_d000]
-	ld l, a
-	ld a, [w3_d000 + 1]
-	ld h, a
-	dec hl
-	ld a, l
-	ld [w3_d000], a
-	ld a, h
-	ld [w3_d000 + 1], a
-	ld a, [wcf64]
-	ld l, a
-	ld a, [wcf65]
-	ld h, a
-	inc hl
-	ld a, l
-	ld [wcf64], a
-	ld a, h
-	ld [wcf65], a
-	ld a, $10
-	ld [wcf66], a
-	ret
-; 119af1
-
-XGameCode:
-INCBIN "data/mobile/x-game-code.txt"
-XGameResult:
-INCBIN "data/mobile/x-game-result.txt"
-; 119b0d
-
-Function119b0d: ; 119b0d
-	ld a, $8
-	ld [wcd3c], a
-	call BattleTowerRoomMenu2
-	ld a, [w3_d090]
-	cp $1
-	jr z, .asm_119b23
-	ld a, $19
-	ld [wcf66], a
-	jr Function119b3b
-
-.asm_119b23
-	ld a, $10
-	ld [wcd89], a
-	ld a, [w3_d090 + 1]
-	ld l, a
-	ld a, [w3_d090 + 2]
-	ld h, a
-	ld de, w3_d100
-	ld bc, $0700
-	ld a, $24
-	jp Function119e2b
-
-Function119b3b:
-	ld a, [w3_d090 + 1]
-	ld l, a
-	ld a, [w3_d090 + 2]
-	ld h, a
-	jr asm_119b4d
-
-Function119b45:
-	ld a, [wcf64]
-	ld l, a
-	ld a, [wcf65]
-	ld h, a
-
-asm_119b4d
-	ld a, $26
-	jp Function119e2b
-; 119b52
-
-Function119b52: ; 119b52
-	ld a, [w3_d090]
-	cp $1
-	jr nz, .asm_119b66
-	ld a, $5
-	call GetSRAMBank
-	ld a, $4
-	ld [$a800], a
-	call CloseSRAM
-
-.asm_119b66
-	ld a, $1c
-	jp Function119e2b
-; 119b6b
-
-Function119b6b: ; 119b6b
-	ld a, [w3_d090]
-	cp $1
-	jr z, .asm_119b75
-	jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_119b75
-	ld a, [w3_d100]
-	ld b, a
-	ld a, [w3_d100 + 1]
-	or b
-	jr z, .asm_119be3
-	ld hl, w3_d800
-	ld de, w3_d100 + 2
-.asm_119b85
-	ld a, [de]
-	inc de
-	cp $d
-	jr nz, .asm_119b85
-	inc de
-	ld a, [de]
-	cp $d
-	jr nz, .asm_119b85
-	inc de
-	inc de
-.asm_119b93
-	ld a, [de]
-	inc de
-	cp $d
-	jr z, .asm_119bfa
-	call Function119c3e
-	ret c
-	ld [hli], a
-	ld a, [de]
-	inc de
-	call Function119c3e
-	ret c
-	ld [hli], a
-	ld a, [de]
-	inc de
-	call Function119c3e
-	ret c
-	ld [hli], a
-	ld a, [de]
-	inc de
-	call Function119c3e
-	ret c
-	ld [hl], a
-	push de
-	ld d, [hl]
-	dec hl
-	ld c, [hl]
-	dec hl
-	ld b, [hl]
-	dec hl
-	ld a, [hl]
-	sla b
-	sla b
-	sla b
-	rla
-	sla b
-	rla
-	ld [hli], a
-	ld [hl], b
-	inc hl
-	rrc c
-	rrc c
-	ld [hl], c
-	dec hl
-	ld a, $f
-	and c
-	or [hl]
-	ld [hli], a
-	ld a, [hli]
-	and $c0
-	or [hl]
-	dec hl
-	ld [hld], a
-	dec hl
-	pop de
-	inc hl
-	inc hl
-	inc hl
-	ld a, h
-	cp $e0
-	jr c, .asm_119b93
-
-.asm_119be3
-	ld a, $19
-	ld [wcf66], a
-	ld a, $5
-	call GetSRAMBank
-	ld a, $1
-	ld [$a800], a
-	call CloseSRAM
-	xor a
-	ld [w3_d090], a
-	ret
-
-.asm_119bfa
-	inc de
-	ld a, [de]
-	cp $d
-	jr nz, .asm_119b93
-	ld a, l
-	cp (w3_d869) % $100
-	jr nz, .asm_119be3
-	ld a, h
-	cp (w3_d869) / $100
-	jr nz, .asm_119be3
-	ld a, $5
-	call GetSRAMBank
-	ld a, [wcf64]
-	ld [$b090], a
-	ld a, [wcf65]
-	ld [$b091], a
-	ld hl, w3_d800
-	ld de, $b023
-	ld bc, $0069
-	call CopyBytes
-	ld a, $3
-	ld [$a800], a
-	call CloseSRAM
-	ld hl, w3_d800
-	ld de, $c608
-	ld bc, $0069
-	call CopyBytes
-	jp BattleTowerRoomMenu_IncrementJumptable
-; 119c3e
-
-Function119c3e: ; 119c3e
-	cp $2b
-	jr c, .asm_119c68
-	jr z, .asm_119c80
-	cp $2f
-	jr c, .asm_119c68
-	jr z, .asm_119c84
-	cp $30
-	jr c, .asm_119c68
-	cp $3a
-	jr c, .asm_119c88
-	cp $3d
-	jr c, .asm_119c68
-	jr z, .asm_119c8c
-	cp $41
-	jr c, .asm_119c68
-	cp $5b
-	jr c, .asm_119c8f
-	cp $61
-	jr c, .asm_119c68
-	cp $7b
-	jr c, .asm_119c93
-
-.asm_119c68
-	ld a, $19
-	ld [wcf66], a
-	ld a, $5
-	call GetSRAMBank
-	ld a, $1
-	ld [$a800], a
-	call CloseSRAM
-	xor a
-	ld [w3_d090], a
-	scf
-	ret
-
-.asm_119c80
-	ld a, $3e
-	and a
-	ret
-
-.asm_119c84
-	ld a, $3f
-	and a
-	ret
-
-.asm_119c88
-	add $4
-	and a
-	ret
-
-.asm_119c8c
-	xor a
-	and a
-	ret
-
-.asm_119c8f
-	sub $41
-	and a
-	ret
-
-.asm_119c93
-	sub $47
-	and a
-	ret
-; 119c97
-
-BattleTowerRoomMenu_UberRestrictionMessage: ; 119c97
-	ld hl, Text_UberRestriction
-	call BattleTowerRoomMenu_SetMessage
-	call BattleTowerRoomMenu_IncrementJumptable
-	jr BattleTowerRoomMenu_WaitForMessage
-
-BattleTowerRoomMenu_PartyMonTopsThisLevelMessage:
-	ld hl, Text_PartyMonTopsThisLevel
-	call BattleTowerRoomMenu_SetMessage
-	call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_WaitForMessage:
-	ld a, [$c31a]
-	and a
-	ret nz
-	ld a, $80
-	ld [wcd50], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_DelayRestartMenu:
-    ; Loops while (--[wcd50] != 0),
-    ;   to create some sort of "delay" after the message is written on the screen,
-    ;   before starting the menu again.
-	ld hl, wcd50
-	dec [hl]
-	ret nz
-	ld a, $0
-	ld [wcf66], a
-	ret
-; 119cc3
-
-BattleTowerRoomMenu_QuitMessage: ; 119cc3
-	ld a, [wcd38]
-	and a
-	jr z, .asm_119cd1
-	dec a
-	jr z, .asm_119cd6
-	ld hl, Text_QuitReadingNews
-	jr .asm_119cd9
-
-.asm_119cd1
-	ld hl, Text_CancelBattleRoomChallenge
-	jr .asm_119cd9
-
-.asm_119cd6
-	ld hl, Text_ExitGymLeaderHonorRoll
-
-.asm_119cd9
-	call BattleTowerRoomMenu_SetMessage
-	call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_PlaceYesNoMenu:
-	ld a, [$c31a]
-	and a
-	ret nz
-	ld a, $f
-	ld [wcd3c], a
-	call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_UpdateYesNoMenu:
-	; Only ever called when [wcd3c] is $10
-	call BattleTowerRoomMenu2
-	ret c
-	ld a, [wMobileInactivityTimerFrames]
-	ld [wcf66], a
-	ret
-; 119cf7
-
-MenuDataHeader_119cf7: ; 119cf7
-	db $40 ; flags
-	db  7, 12 ; start coords
-	db 11, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 119cff
-
-MenuData_119cff: ; 119cff
-	db $40 ; flags
-	db  7, 15 ; start coords
-	db 11, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 119d07
-
-String_119d07:
-	db "   ▼@"
-
-Strings_L10ToL100: ; 119d0c
-	db " L:10 @@"
-	db " L:20 @@"
-	db " L:30 @@"
-	db " L:40 @@"
-	db " L:50 @@"
-	db " L:60 @@"
-	db " L:70 @@"
-	db " L:80 @@"
-	db " L:90 @@"
-	db " L:100@@"
-	db "CANCEL@@"
-
-Strings_Ll0ToL40: ; 119d64
-	db " L:10 @@"
-	db " L:20 @@"
-	db " L:30 @@"
-	db " L:40 @@"
-	db "CANCEL@@"
-
-String_119d8c:
-	db "CANCEL@"
-; 119d93
-
-BattleTower_LevelCheck: ; 119d93 (46:5d93)
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, [wcd4f]
-	ld c, 10
-	call SimpleMultiply
-	ld hl, wcd50
-	ld [hl], a
-	ld bc, PARTYMON_STRUCT_LENGTH
-	ld de, PartyMon1Level
-	ld a, [PartyCount]
-.party_loop
-	push af
-	ld a, [de]
-	push hl
-	push de
-	pop hl
-	add hl, bc
-	push hl
-	pop de
-	pop hl
-	cp [hl]
-	jr z, .equal
-	jr nc, .exceeds
-.equal
-	pop af
-	dec a
-	jr nz, .party_loop
-	pop af
-	ld [rSVBK], a
-	and a
-	ret
-
-.exceeds
-	pop af
-	ld a, $4
-	ld [wcf66], a
-	pop af
-	ld [rSVBK], a
-	scf
-	ret
-
-BattleTower_UbersCheck: ; 119dd1 (46:5dd1)
-	ld a, [rSVBK]
-	push af
-	ld a, [wcd4f]
-	cp 70 / 10
-	jr nc, .level_70_or_more
-	ld a, $1
-	ld [rSVBK], a
-	ld hl, PartyMon1Level
-	ld bc, PARTYMON_STRUCT_LENGTH
-	ld de, PartySpecies
-	ld a, [PartyCount]
-.loop
-	push af
-	ld a, [de]
-	cp MEWTWO
-	jr z, .uber
-	cp MEW
-	jr z, .uber
-	cp LUGIA
-	jr c, .next
-	cp NUM_POKEMON + 1
-	jr nc, .next
-.uber
-	ld a, [hl]
-	cp 70
-	jr c, .uber_under_70
-.next
-	add hl, bc
-	inc de
-	pop af
-	dec a
-	jr nz, .loop
-.level_70_or_more
-	pop af
-	ld [rSVBK], a
-	and a
-	ret
-
-.uber_under_70
-	pop af
-	ld a, [de]
-	ld [wd265], a
-	call GetPokemonName
-	ld hl, StringBuffer1
-	ld de, wcd49
-	ld bc, PKMN_NAME_LENGTH
-	call CopyBytes
-	ld a, $a
-	ld [wcf66], a
-	pop af
-	ld [rSVBK], a
-	scf
-	ret
-; 119e2b (46:5e2b)
-
-Function119e2b: ; 119e2b (46:5e2b)
-	call Function3e32
-
-BattleTowerRoomMenu_IncrementJumptable: ; 119e2e (46:5e2e)
-	ld hl, wcf66
-	inc [hl]
-	ret
-; 119e33 (46:5e33)
-
-XGameCodePrefix: ; 119e33
-INCBIN "data/mobile/x-game-code-prefix.txt"
-XGameCodePrefixEnd:
-;119e40
-
-XGameResultPrefix: ; 119e40
-INCBIN "data/mobile/x-game-result-prefix.txt"
-XGameResultPrefixEnd:
-; 119e4f
-
-Function119e4f: ; 119e4f
-	push bc
-	ld hl, w3_d100
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-.loop
-	ld a, [de]
-	cp [hl]
-	jr z, .found_equality
-.next
-	inc hl
-	dec bc
-	ld a, b
-	or c
-	jr nz, .loop
-.return_carry
-	pop bc
-	scf
-	ret
-
-.found_equality
-	push de
-.loop2
-	ld a, [de]
-	inc de
-	cp "\n"
-	jr z, .newline
-	cp [hl]
-	jr nz, .unequal
-	inc hl
-	dec bc
-	ld a, b
-	or c
-	jr nz, .loop2
-	pop de
-	jr .return_carry
-
-.unequal
-	pop de
-	jr .next
-
-.newline
-	pop de
-	pop bc
-	inc hl
-	ld de, w3_d880
-.loop3
-	ld a, [hli]
-	ld [de], a
-	inc de
-	cp $d
-	jr z, .finish
-	dec c
-	jr nz, .loop3
-	scf
-	ret
-
-.finish
-	and a
-	ret
-; 119e8e
-
-Function119e8e: ; 119e8e
-	cp $60
-	jr c, .less_than_0x60
-	sub $57
-	ret
-
-.less_than_0x60
-	sub $30
-	ret
-; 119e98
-
-Function119e98: ; 119e98
-	ld a, $2
-.loop
-	push af
-	ld a, [bc]
-	dec bc
-	call Function119e8e
-	or [hl]
-	ld [hl], a
-	ld a, [bc]
-	dec bc
-	call Function119e8e
-	rlca
-	rlca
-	rlca
-	rlca
-	or [hl]
-	ld [hl], a
-	inc hl
-	pop af
-	dec a
-	and a
-	jr nz, .loop
-	ret
-; 119eb4
-
-Function119eb4: ; 119eb4 (46:5eb4)
-	xor a
-	ld [wc3cc], a
-	ld de, wc3ac
-.loop
-	ld a, [de]
-	inc de
-	ld [hli], a
-	and a
-	jr nz, .loop
-	ret
-
-Function119ec2: ; 119ec2 (46:5ec2)
-	ld a, BANK(sMobileLoginPassword)
-	call GetSRAMBank
-	xor a
-	ld [sMobileLoginPassword + MOBILE_LOGIN_PASSWORD_LENGTH], a
-	ld de, sMobileLoginPassword + 1
-.loop
-	ld a, [de]
-	inc de
-	ld [hli], a
-	and a
-	jr nz, .loop
-	call CloseSRAM
-	ret
-
-BattleTowerRoomMenu2: ; 119ed8 (46:5ed8)
-	ld a, [rSVBK]
-	ld [wcd8c], a
-	ld a, $1
-	ld [rSVBK], a
-
-	call .RunJumptable
-
-	ld a, [wcd8c]
-	ld [rSVBK], a
-	ld a, $1
-	ld [hBGMapMode], a
-	ret
-
-.RunJumptable:
-	jumptable .Jumptable, wcd3c
-
-.Jumptable:
-	dw Function119f3f
-	dw Function119f45
-	dw Function119f56
-	dw Function119f76
-	dw Function119f98
-	dw Function11a113
-	dw Function11a129
-	dw Function11a131
-	dw Function11a13d
-	dw Function11a14b
-	dw Function11a16d
-	dw Function11a192
-	dw Function11a2e6
-	dw Function11a302
-	dw Function11a33a
-	dw BattleTowerRoomMenu2_PlaceYesNoMenu
-	dw BattleTowerRoomMenu2_UpdateYesNoMenu
-	dw Function11a357
-	dw Function11a36b
-	dw Function11a38d
-	dw Function11a3c5
-	dw Function11a3d9
-	dw Function11a3f9
-	dw Function11a41b
-	dw Function11a452
-	dw Function11a47a
-	dw Function11a488
-	dw Function11a49e
-	dw Function11a4db
-	dw Function11a4e8
-	dw Function11a4fe
-	dw Function11a466
-	dw Function11a47a
-; 119f3f
-
-Function119f3f: ; 119f3f
-	call Function11a5b9
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f45
-
-Function119f45: ; 119f45
-	hlcoord 4, 2
-	ld de, String_11a661
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f56
-
-Function119f56: ; 119f56
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_119f62
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_119f62
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6aa
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f76
-
-Function119f76: ; 119f76
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_119f82
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_119f82
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a679
-	call PlaceString
-	call Function11a5f5
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f98
-
-Function119f98: ; 119f98
-	call Function11a536
-	ret c
-	call PlayClickSFX
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .asm_119fef
-	call ExitMenu
-	call Function11a63c
-	xor a
-	ld [ScriptVar], a
-	call Function11a00e
-	ld a, [ScriptVar]
-	and a
-	jr z, .asm_119fd4
-	call ExitMenu
-	callba ReloadMapPart
-	callba Function115dc3
-	ld a, [wcd33]
-	ld [wcf66], a
-	ld a, $a
-	ld [wc300], a
-	scf
-	ret
-
-.asm_119fd4
-	hlcoord 4, 2
-	ld de, String_11a692
-	call PlaceString
-	ld a, $1
-	ld [wc30d], a
-	ld a, $1
-	ld [wc314], a
-	callba ReloadMapPart
-	and a
-	ret
-
-.asm_119fef
-	call ExitMenu
-	call ExitMenu
-	callba ReloadMapPart
-	ld a, [wMobileInactivityTimerSeconds]
-	ld [wcf66], a
-	callba Function115dc3
-	ld a, $a
-	ld [wc300], a
-	scf
-	ret
-; 11a00e
-
-Function11a00e: ; 11a00e
-	ld a, BANK(sMobileLoginPassword)
-	call GetSRAMBank
-	ld a, [sMobileLoginPassword]
-	and a
-	jr z, .asm_11a02a
-	ld a, [sMobileLoginPassword + 1]
-	call CloseSRAM
-	and a
-	ret nz
-	ld a, BANK(sMobileLoginPassword)
-	call GetSRAMBank
-	xor a
-	ld [sMobileLoginPassword], a
-
-.asm_11a02a
-	call CloseSRAM
-	ld a, [BGMapPalBuffer]
-	and a
-	jr z, .asm_11a039
-	dec a
-	jr z, .asm_11a081
-	jp Function11a0ca
-
-.asm_11a039
-	ld a, $3
-	ld [rSVBK], a
-	ld hl, $c608
-	ld de, w3_d800
-	ld bc, $00f6
-	call CopyBytes
-	ld a, $1
-	ld [rSVBK], a
-	call FadeToMenu
-	callba Function11765d
-	call Function11a9ce
-	ld a, $3
-	ld [rSVBK], a
-	ld hl, w3_d800
-	ld de, $c608
-	ld bc, $00f6
-	call CopyBytes
-	ld a, $1
-	ld [rSVBK], a
-	callba Function115d99
-	ld c, $0
-	callba Function115e18
-	ld a, $1
-	ld [wc305], a
-	ret
-
-.asm_11a081
-	xor a
-	ld [wMenuBorderLeftCoord], a
-	ld [wMenuBorderTopCoord], a
-	ld a, $13
-	ld [wMenuBorderRightCoord], a
-	ld a, $5
-	ld [wMenuBorderBottomCoord], a
-	call PushWindow
-	callba Function11765d
-	callba Function117ab4
-	callba MobileFunc_106462
-	callba Function106464
-	call ExitMenu
-	callba ReloadMapPart
-	callba Function115d99
-	ld c, $0
-	callba Function115e18
-	ld a, $1
-	ld [wc305], a
-	ret
-; 11a0ca
-
-Function11a0ca: ; 11a0ca
-	xor a
-	ld [wMenuBorderLeftCoord], a
-	ld [wMenuBorderTopCoord], a
-	ld a, $13
-	ld [wMenuBorderRightCoord], a
-	ld a, $11
-	ld [wMenuBorderBottomCoord], a
-	call PushWindow
-	callba Function11765d
-	callba Function17d3f6
-	callba MobileFunc_106462
-	callba Function106464
-	call ExitMenu
-	callba ReloadMapPart
-	callba Function115d99
-	ld c, $0
-	callba Function115e18
-	ld a, $1
-	ld [wc305], a
-	ret
-; 11a113
-
-Function11a113: ; 11a113
-	call Function11a63c
-	ld c, $1
-	callba Function115e18
-	hlcoord 4, 2
-	ld de, String_11a6c8
-	call PlaceString
-	and a
-	ret
-; 11a129
-
-Function11a129: ; 11a129
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a131
-
-Function11a131: ; 11a131
-	ld hl, wMobileInactivityTimerMinutes
-	dec [hl]
-	ret nz
-	ld a, [wcd3c]
-	inc a
-	ld [wcd3c], a
-
-Function11a13d:
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6d2
-	call PlaceString
-	and a
-	ret
-; 11a14b
-
-Function11a14b: ; 11a14b
-	ld hl, wcd85
-	ld a, [hl]
-	cp $f3
-	jr nz, .asm_11a155
-	and a
-	ret
-
-.asm_11a155
-	call Function11a1d6
-	ret c
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6f1
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a16d
-
-Function11a16d: ; 11a16d
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a179
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_11a179
-	call Function11a63c
-	call Function11a1e6
-	hlcoord 4, 2
-	ld de, $c346
-	call PlaceString
-	call Function11a5f5
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a192
-
-Function11a192: ; 11a192
-	call Function11a536
-	ret c
-	call PlayClickSFX
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .asm_11a1b6
-	call ExitMenu
-	callba ReloadMapPart
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6d2
-	call PlaceString
-	and a
-	ret
-
-.asm_11a1b6
-	call ExitMenu
-	callba ReloadMapPart
-	ld a, [wMobileInactivityTimerSeconds]
-	ld [wcf66], a
-	ld [wcd80], a
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6d2
-	call PlaceString
-	scf
-	ret
-; 11a1d6
-
-Function11a1d6: ; 11a1d6
-	ld a, [wcd85]
-	cp $50
-	jr nz, .asm_11a1e4
-	ld a, $d3
-	call Function118805
-	scf
-	ret
-
-.asm_11a1e4
-	and a
-	ret
-; 11a1e6
-
-Function11a1e6: ; 11a1e6
-	ld hl, String_11a706
-	ld de, $c346
-	call Function11a1ff
-	ld hl, wcd85
-	call Function11a1ff
-	ld hl, String_11a70b
-	call Function11a1ff
-	ld a, $50
-	ld [de], a
-	ret
-; 11a1ff
-
-Function11a1ff: ; 11a1ff
-.asm_11a1ff
-	ld a, [hli]
-	cp $50
-	ret z
-	ld [de], a
-	inc de
-	jr .asm_11a1ff
-; 11a207
-
-BattleTowerRoomMenu2_PlaceYesNoMenu: ; 11a207
-	ld hl, MenuDataHeader_11a2de
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	call ApplyTilemap
-	hlcoord 16, 8
-	ld de, String_11a2cf
-	call PlaceString
-	hlcoord 16, 10
-	ld de, String_11a2d3
-	call PlaceString
-	hlcoord 15, 8
-	ld a, $ed
-	ld [hl], a
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a235
-
-BattleTowerRoomMenu2_UpdateYesNoMenu: ; 11a235
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and A_BUTTON
-	jr nz, .a_button
-	ld a, [hl]
-	and B_BUTTON
-	jr nz, .b_button
-	ld a, [hl]
-	and D_UP
-	jr nz, .d_up
-	ld a, [hl]
-	and D_DOWN
-	jr nz, .d_down
-.asm_11a24c
-	call Function11a9f0
-	scf
-	ret
-
-.d_up
-	xor a
-	ld [wcd8a], a
-	ld [wcd8b], a
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a24c
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	hlcoord 15, 8
-	ld a, $ed
-	ld [hl], a
-	hlcoord 15, 10
-	ld a, $7f
-	ld [hl], a
-	jr .asm_11a24c
-
-.d_down
-	xor a
-	ld [wcd8a], a
-	ld [wcd8b], a
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .asm_11a24c
-	inc a
-	ld [wMobileInactivityTimerMinutes], a
-	hlcoord 15, 8
-	ld a, $7f
-	ld [hl], a
-	hlcoord 15, 10
-	ld a, $ed
-	ld [hl], a
-	jr .asm_11a24c
-
-.a_button
-	xor a
-	ld [wcd8a], a
-	ld [wcd8b], a
-	call PlayClickSFX
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .exit_no_carry
-	call ExitMenu
-	callba ReloadMapPart
-	ld a, [wMobileInactivityTimerFrames]
-	cp $0
-	jr z, .asm_11a2b4
-	ld a, [wcd47]
-	jr .exit_carry
-
-.asm_11a2b4
-	ld a, [wcd33]
-
-.exit_carry
-	ld [wcf66], a
-	ld a, $a
-	ld [wc300], a
-	scf
-	ret
-
-.b_button
-	call PlayClickSFX
-
-.exit_no_carry
-	call ExitMenu
-	callba ReloadMapPart
-	and a
-	ret
-; 11a2cf
-
-String_11a2cf: ; 11a2cf
-	db "YES@"
-; 11a2d3
-
-String_11a2d3: ; 11a2d3
-	db "NO@"
-; 11a2d6
-
-MenuDataHeader_11a2d6: ; 11a2d6
-	db $40 ; flags
-	db  6, 14 ; start coords
-	db 10, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 11a2de
-
-MenuDataHeader_11a2de: ; 11a2de
-	db $40 ; flags
-	db  7, 14 ; start coords
-	db 11, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 11a2e6
-
-Function11a2e6: ; 11a2e6
-	call Function11a63c
-	ld c, $2
-	callba Function115e18
-	hlcoord 4, 2
-	ld de, String_11a71e
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a302
-
-Function11a302: ; 11a302
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a30e
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_11a30e
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a72a
-	call PlaceString
-	hlcoord 9, 4
-	ld de, wcd68
-	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
-	call PrintNum
-	hlcoord 14, 4
-	ld de, wcd67
-	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
-	call PrintNum
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a33a
-
-Function11a33a: ; 11a33a
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a346
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_11a346
-	call ExitMenu
-	callba ReloadMapPart
-	callba Function115dc3
-	and a
-	ret
-; 11a357
-
-Function11a357: ; 11a357
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a743
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a36b
-
-Function11a36b: ; 11a36b
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a377
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_11a377
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a755
-	call PlaceString
-	call Function11a5f5
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a38d
-
-Function11a38d: ; 11a38d
-	call Function11a536
-	ret c
-	call PlayClickSFX
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .asm_11a3b1
-	call ExitMenu
-	callba ReloadMapPart
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6d2
-	call PlaceString
-	and a
-	ret
-
-.asm_11a3b1
-	call ExitMenu
-	callba ReloadMapPart
-	ld a, [wMobileInactivityTimerSeconds]
-	ld [wcf66], a
-	ld [wcd80], a
-	scf
-	ret
-; 11a3c5
-
-Function11a3c5: ; 11a3c5
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a762
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a3d9
-
-Function11a3d9: ; 11a3d9
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a3e5
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_11a3e5
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a779
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a3f9
-
-Function11a3f9: ; 11a3f9
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a405
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_11a405
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a755
-	call PlaceString
-	call Function11a5f5
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a41b
-
-Function11a41b: ; 11a41b
-	call Function11a536
-	ret c
-	call PlayClickSFX
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .asm_11a43f
-	call ExitMenu
-	callba ReloadMapPart
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6d2
-	call PlaceString
-	and a
-	ret
-
-.asm_11a43f
-	call ExitMenu
-	callba ReloadMapPart
-	ld a, $1c
-	ld [wcf66], a
-	ld [wcd80], a
-	scf
-	ret
-; 11a452
-
-Function11a452: ; 11a452
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a791
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a466
-
-Function11a466: ; 11a466
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a7c1
-	call PlaceString
-	ld a, $80
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a47a
-
-Function11a47a: ; 11a47a
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a486
-	dec a
-	ld [wMobileInactivityTimerMinutes], a
-	scf
-	ret
-
-.asm_11a486
-	and a
-	ret
-; 11a488
-
-Function11a488: ; 11a488
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a7ac
-	call PlaceString
-	call Function11a5f5
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a49e
-
-Function11a49e: ; 11a49e
-	call Function11a536
-	ret c
-	call PlayClickSFX
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .asm_11a4c7
-	call ExitMenu
-	callba ReloadMapPart
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6d2
-	call PlaceString
-	ld a, $14
-	ld [wcf66], a
-	and a
-	ret
-
-.asm_11a4c7
-	call ExitMenu
-	callba ReloadMapPart
-	ld a, [wMobileInactivityTimerFrames]
-	ld [wcf66], a
-	ld [wcd80], a
-	scf
-	ret
-; 11a4db
-
-Function11a4db: ; 11a4db
-	call Function11a63c
-	ld de, String_11a6db
-	hlcoord 4, 2
-	call PlaceString
-	ret
-; 11a4e8
-
-Function11a4e8: ; 11a4e8
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a7d7
-	call PlaceString
-	call Function11a5f5
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a4fe
-
-Function11a4fe: ; 11a4fe
-	call Function11a536
-	ret c
-	call PlayClickSFX
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .asm_11a522
-	call ExitMenu
-	callba ReloadMapPart
-	call Function11a63c
-	hlcoord 4, 2
-	ld de, String_11a6d2
-	call PlaceString
-	and a
-	ret
-
-.asm_11a522
-	call ExitMenu
-	callba ReloadMapPart
-	ld a, [wMobileInactivityTimerSeconds]
-	ld [wcf66], a
-	ld [wcd80], a
-	scf
-	ret
-; 11a536
-
-Function11a536: ; 11a536
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and $1
-	jr nz, .asm_11a5a7
-	ld a, [hl]
-	and $2
-	jr nz, .asm_11a5a2
-	ld a, [hl]
-	and $40
-	jr nz, .asm_11a564
-	ld a, [hl]
-	and $80
-	jr nz, .asm_11a583
-.asm_11a54d
-	ld a, [wcd3c]
-	cp $4
-	jr z, .asm_11a562
-	call Function11a9f0
-	jr nz, .asm_11a562
-	call ExitMenu
-	callba ReloadMapPart
-
-.asm_11a562
-	scf
-	ret
-
-.asm_11a564
-	xor a
-	ld [wcd8a], a
-	ld [wcd8b], a
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr z, .asm_11a54d
-	xor a
-	ld [wMobileInactivityTimerMinutes], a
-	hlcoord 15, 7
-	ld a, $ed
-	ld [hl], a
-	hlcoord 15, 9
-	ld a, $7f
-	ld [hl], a
-	jr .asm_11a54d
-
-.asm_11a583
-	xor a
-	ld [wcd8a], a
-	ld [wcd8b], a
-	ld a, [wMobileInactivityTimerMinutes]
-	and a
-	jr nz, .asm_11a54d
-	inc a
-	ld [wMobileInactivityTimerMinutes], a
-	hlcoord 15, 7
-	ld a, $7f
-	ld [hl], a
-	hlcoord 15, 9
-	ld a, $ed
-	ld [hl], a
-	jr .asm_11a54d
-
-.asm_11a5a2
-	ld a, $1
-	ld [wMobileInactivityTimerMinutes], a
-
-.asm_11a5a7
-	xor a
-	ld [wcd8a], a
-	ld [wcd8b], a
-	and a
-	ret
-; 11a5b0
-
-BattleTowerRoomMenu2_IncrementJumptable: ; 11a5b0
-	ld a, [wcd3c]
-	inc a
-	ld [wcd3c], a
-	scf
-	ret
-; 11a5b9
-
-Function11a5b9: ; 11a5b9
-	xor a
-	ld [wMenuBorderLeftCoord], a
-	ld [wMenuBorderTopCoord], a
-	ld a, $13
-	ld [wMenuBorderRightCoord], a
-	ld a, $5
-	ld [wMenuBorderBottomCoord], a
-	call PushWindow
-	hlcoord 0, 0, AttrMap
-	ld b, $6
-	ld c, $14
-	hlcoord 0, 0
-	ld b, $4
-	ld c, $12
-	call Function3eea
-	callba ReloadMapPart
-	call UpdateSprites
-	ld c, $0
-	callba Function115e18
-	ld a, $1
-	ld [wc305], a
-	ret
-; 11a5f5
-
-Function11a5f5: ; 11a5f5
-	ld a, $e
-	ld [wMenuBorderLeftCoord], a
-	ld a, $13
-	ld [wMenuBorderRightCoord], a
-	ld a, $6
-	ld [wMenuBorderTopCoord], a
-	ld a, $a
-	ld [wMenuBorderBottomCoord], a
-	call PushWindow
-	hlcoord 14, 6, AttrMap
-	ld b, $5
-	ld c, $6
-	hlcoord 14, 6
-	ld b, $3
-	ld c, $4
-	call Function3eea
-	hlcoord 16, 7
-	ld de, String_11a2cf
-	call PlaceString
-	hlcoord 16, 9
-	ld de, String_11a2d3
-	call PlaceString
-	hlcoord 15, 7
-	ld a, $ed
-	ld [hl], a
-	callba ReloadMapPart
-	ret
-; 11a63c
-
-Function11a63c: ; 11a63c
-	hlcoord 4, 1
-	ld de, String_11a7f4
-	call PlaceString
-	hlcoord 4, 2
-	ld de, String_11a7f4
-	call PlaceString
-	hlcoord 4, 3
-	ld de, String_11a7f4
-	call PlaceString
-	hlcoord 4, 4
-	ld de, String_11a7f4
-	call PlaceString
-	ret
-; 11a661
-
-String_11a661: ; 11a661
-	db   "これから モバイルセンターに"
-	next "でんわ", $1f, "かけます@"
-; 11a679
-
-String_11a679: ; 11a679
-	db   "モバイルアダプタ", $25, "じゅんびは"
-	next "できて いますか?@"
-; 11a692
-
-String_11a692: ; 11a692
-	db   "でんわ", $1f, "かけています"
-	next "しばらく おまちください@"
-; 11a6aa
-
-String_11a6aa: ; 11a6aa
-	db   "でんわをかけると つうわりょう"
-	next "せつぞくりょう", $4a, "かかります@"
-; 11a6c8
-
-String_11a6c8: ; 11a6c8
-	db   "せつぞく しました@"
-; 11a6d2
-
-String_11a6d2: ; 11a6d2
-	db   "つうしん ちゅう@"
-; 11a6db
-
-String_11a6db: ; 11a6db
-	db   "つうしん ちゅう"
-	next "セレクト エーでちゅうし@"
-; 11a6f1
-
-String_11a6f1: ; 11a6f1
-	db   "この サービスには"
-	next "つうわりょう", $25, "ほかに@"
-; 11a706
-
-String_11a706: ; 11a706
-	db   "おかね", $4a, "@"
-; 11a70b
-
-String_11a70b: ; 11a70b
-	db   "えん"
-	next "かかります よろしい ですか?@"
-; 11a71e
-
-String_11a71e: ; 11a71e
-	db   "つうしん しゅうりょう@"
-; 11a72a
-
-String_11a72a: ; 11a72a
-	db   "つないだ じかん"
-	next "  やく   ふん   びょう@"
-; 11a743
-
-String_11a743: ; 11a743
-	db   "もっていない データが"
-	next "あります!@"
-; 11a755
-
-String_11a755: ; 11a755
-	db   "データ", $1f, "よみこみますか?@"
-; 11a762
-
-String_11a762: ; 11a762
-	db   "おなじ データ", $1f, "よみこんだ"
-	next "こと", $4a, "ありますが@"
-; 11a779
-
-String_11a779: ; 11a779
-	db   "そのデータ", $24, "なくなっているか"
-	next "こわれて います@"
-; 11a791
-
-String_11a791: ; 11a791
-	db   "もっている データと"
-	next "おなじデータしか ありません!@"
-; 11a7ac
-
-String_11a7ac: ; 11a7ac
-	db   "データ", $25, "よみこみを"
-	next "ちゅうし しますか?@"
-; 11a7c1
-
-String_11a7c1: ; 11a7c1 ; new news?
-	db   "あたらしい ニュースは"
-	next "ありません でした@"
-; 11a7d7
-
-String_11a7d7: ; 11a7d7
-	db   "あたらしいニュース", $4a, "あります"
-	next "ニュース", $1f, "よみこみますか?@"
-; 11a7f4
-
-String_11a7f4: ; 11a7f4
-	db   "               @"
-; 11a804
-
-MenuDataHeader_11a804: ; 11a804
-	db $40 ; flags
-	db  0,  0 ; start coords
-	db  5, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 11a80c
-
-Function11a80c: ; 11a80c
-	ld de, hDivisor
-	ld bc, hDividend
-	ld hl, Unknown_11a89a
-	call Function11a88c
-	ld bc, hQuotient
-	ld hl, Unknown_11a8ba
-	call Function11a88c
-	ld bc, hPrintNum3
-	ld hl, Unknown_11a8da
-	call Function11a88c
-	xor a
-	ld b, a
-	ld a, [hDivisor]
-	and $f
-	ld e, a
-	ld a, [hPrintNum7]
-	and $f
-	call Function11a884
-	ld e, a
-	ld a, [hPrintNum9]
-	and $f
-	call Function11a884
-	ld [wcd62], a
-	ld e, b
-	xor a
-	ld b, a
-	ld a, [hDivisor]
-	and $f0
-	swap a
-	call Function11a884
-	ld e, a
-	ld a, [hPrintNum7]
-	and $f0
-	swap a
-	call Function11a884
-	ld e, a
-	ld a, [hPrintNum9]
-	and $f0
-	swap a
-	call Function11a884
-	ld [wcd63], a
-	ld e, b
-	xor a
-	ld b, a
-	ld a, [hMathBuffer]
-	and $f
-	call Function11a884
-	ld e, a
-	ld a, [hPrintNum8]
-	and $f
-	call Function11a884
-	ld e, a
-	ld a, [hPrintNum10]
-	and $f
-	call Function11a884
-	ld [wcd64], a
-	ret
-; 11a884
-
-Function11a884: ; 11a884
-	add e
-	cp $a
-	ret c
-	sub $a
-	inc b
-	ret
-; 11a88c
-
-Function11a88c: ; 11a88c
-	ld a, [bc]
-	sla a
-	ld c, a
-	xor a
-	ld b, a
-	add hl, bc
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hl]
-	ld [de], a
-	inc de
-	ret
-; 11a89a
-
-Unknown_11a89a: ; 11a89a
-x = 0
-rept 16
-	bcd x % 100, x / 100
-x = x + 1
-endr
-
-Unknown_11a8ba: ; 11a8ba
-x = 0
-rept 16
-	bcd x % 100, x / 100
-x = x + 16
-endr
-
-Unknown_11a8da: ; 11a8da
-x = 0
-rept 16
-	bcd x % 100, x / 100
-x = x + 256
-endr
-; 11a8fa
-
-BattleTowerRoomMenu_WriteMessage: ; 11a8fa
-	jumptable .Jumptable, $c31a
-; 11a909
-
-.Jumptable: ; 11a909
-	dw BattleTowerRoomMenu_WriteMessage_DoNothing
-	dw Function11a90f
-	dw Function11a971
-; 11a90f
-
-Function11a90f: ; 11a90f
-	ld a, $1
-	ld [rSVBK], a
-	call SpeechTextBox
-	ld a, $50
-	ld hl, $c320
-	ld bc, $008c
-	call ByteFill
-	ld a, [$c31b]
-	ld l, a
-	ld a, [$c31c]
-	ld h, a
-	ld de, $c320
-.asm_11a92c
-	ld a, [hli]
-	cp $57
-	jr z, .asm_11a94f
-	cp $0
-	jr z, .asm_11a92c
-	cp $50
-	jr z, .asm_11a92c
-	cp $1
-	jr z, .asm_11a941
-	ld [de], a
-	inc de
-	jr .asm_11a92c
-
-.asm_11a941
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-.asm_11a945
-	ld a, [bc]
-	inc bc
-	cp $50
-	jr z, .asm_11a92c
-	ld [de], a
-	inc de
-	jr .asm_11a945
-
-.asm_11a94f
-	xor a
-	ld [$c31f], a
-	ld a, $c320 % $100
-	ld [$c31b], a
-	ld a, $c320 / $100
-	ld [$c31c], a
-	hlcoord 1, 14
-	ld a, l
-	ld [$c31d], a
-	ld a, h
-	ld [$c31e], a
-	ld hl, $c31a
-	inc [hl]
-	ld a, $3
-	ld [rSVBK], a
-
-BattleTowerRoomMenu_WriteMessage_DoNothing:
-	ret
-; 11a971
-
-Function11a971: ; 11a971
-	ld hl, $c31f
-	ld a, [hJoyDown]
-	and a
-	jr nz, .asm_11a97f
-	ld a, [hl]
-	and a
-	jr z, .asm_11a97f
-	dec [hl]
-	ret
-
-.asm_11a97f
-	ld a, [Options]
-	and $7
-	ld [hl], a
-	ld hl, wcd8d
-	ld a, [$c31b]
-	ld e, a
-	ld a, [$c31c]
-	ld d, a
-	ld a, [de]
-	inc de
-	ld [hli], a
-	ld a, e
-	ld [$c31b], a
-	ld a, d
-	ld [$c31c], a
-	ld a, $50
-	ld [hl], a
-	ld a, [$c31d]
-	ld l, a
-	ld a, [$c31e]
-	ld h, a
-	ld de, wcd8d
-	call PlaceString
-	ld a, c
-	ld [$c31d], a
-	ld a, b
-	ld [$c31e], a
-	ld a, [wcd8d]
-	cp $50
-	jr nz, .asm_11a9bf
-	xor a
-	ld [$c31a], a
-
-.asm_11a9bf
-	ret
-; 11a9c0
-
-BattleTowerRoomMenu_SetMessage: ; 11a9c0
-	ld a, l
-	ld [$c31b], a
-	ld a, h
-	ld [$c31c], a
-	ld a, $1
-	ld [$c31a], a
-	ret
-; 11a9ce
-
-Function11a9ce: ; 11a9ce
-	call ClearBGPalettes
-	call ReloadTilesetAndPalettes
-	call Call_ExitMenu
-	callba MobileFunc_106462
-	callba Function106464
-	call ret_d90
-	callba FinishExitMenu
-	call UpdateSprites
-	ret
-; 11a9f0
-
-Function11a9f0: ; 11a9f0
-	ld a, $1
-	and a
-	ret
-; 11a9f4
-
-Function11a9f4: ; 11a9f4
-	ld a, [wcd8a]
-	ld l, a
-	ld a, [wcd8b]
-	ld h, a
-	inc hl
-	ld a, l
-	ld [wcd8a], a
-	ld a, h
-	ld [wcd8b], a
-	ld de, $d5d0
-	add hl, de
-	bit 7, h
-	ret nz
-	ld a, $d6
-	call Function118805
-	and a
-	ret
-; 11aa13
-
-Text_SaveFileWillBeSent: ; 0x11aa13
-	text "SAVE FILE will be"
-	line "sent."
-	done
-; 0x11aa2c
-
-Text_SentSaveFileReadingNews: ; 0x11aa2c
-	text "Sent SAVE FILE."
-	line "Reading NEWS…"
-	done
-; 0x11aa4b
-
-Text_ReadingNews: ; 0x11aa4b
-	text "Reading NEWS…"
-	done
-; 0x11aa5a
-
-Text_ReceivedNews: ; 0x11aa5a
-	text "Received NEWS!"
-	done
-; 0x11aa6a
-
-Text_QuitReadingNews: ; 0x11aa6a
-	text "Quit reading NEWS?"
-	done
-; 0x11aa7e
-
-Text_CanceledSendingSaveFile: ; 0x11aa7e
-	text "Canceled sending"
-	line "SAVE FILE."
-	done
-; 0x11aa9b
-
-Text_ReceivedOddEgg: ; 0x11aa9b
-	text "ODD EGG"
-	line "was received!"
-	done
-; 0x11aab2
-
-Text_RegisteringRecord: ; 0x11aab2
-	text "Registering your"
-	line "record…"
-	done
-; 0x11aacc
-
-Text_BattleRoomVisitLimit: ; 0x11aacc
-	text "One visit per day"
-	line "per BATTLE ROOM!"
-	done
-; 0x11aaf0
-
-Text_PartyMonTopsThisLevel: ; 0x11aaf0
-	text "A party #MON"
-	line "tops this level."
-	done
-; 0x11ab0f
-
-Text_UberRestriction: ; 0x11ab0f
-	text_from_ram wcd49
-	text " may go"
-	line "only to BATTLE"
-
-	para "ROOMS that are"
-	line "Lv.70 or higher."
-	done
-; 0x11ab4a
-
-Text_CancelBattleRoomChallenge: ; 0x11ab4a
-	text "Cancel your BATTLE"
-	line "ROOM challenge?"
-	done
-; 0x11ab6e
-
-Text_ExitGymLeaderHonorRoll: ; 0x11ab6e
-	text "Exit GYM LEADER"
-	line "HONOR ROLL?"
-	done
-; 0x11ab8b
-
-Text_LinkingWithCenter: ; 0x11ab8b
-	text "Linking with the"
-	line "CENTER…"
-	done
-; 0x11aba5
-
-Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5
-	text "What level do you"
-	line "want to challenge?"
-	done
-; 0x11abcb
-
-Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb
-	text "Check BATTLE ROOM"
-	line "list by max level?"
-	done
-; 0x11abf1
-
-Text_EnterWhichBattleRoom: ; 0x11abf1
-	text "Enter which"
-	line "BATTLE ROOM?"
-	done
-; 0x11ac0b
-
-Text_WhichBattleRoom: ; 0x11ac0b
-	text "Which BATTLE ROOM?"
-	done
-; 0x11ac1f
-
-Text_ThisBattleRoomPleaseWait: ; 0x11ac1f
-	text_from_ram StringBuffer3
-	text "'s ROOM"
-	line "@"
-	text_from_ram StringBuffer4
-	text "?"
-	cont "Please wait…"
-	done
-; 0x11ac3e
-
-Function11ac3e: ; 11ac3e
-	call SpeechTextBox
-	call FadeToMenu
-	callab ClearSpriteAnims2
-	call Function11ac51
-	call CloseSubmenu
-	ret
-; 11ac51
-
-Function11ac51: ; 11ac51
-	xor a
-	ld [hBGMapMode], a
-	ld hl, Options
-	ld a, [hl]
-	push af
-	set 4, [hl]
-	ld a, [VramState]
-	push af
-	xor a
-	ld [VramState], a
-	ld a, [hInMenu]
-	push af
-	ld a, $1
-	ld [hInMenu], a
-	xor a
-	ld [hMapAnims], a
-	ld [wcd49], a
-	ld [wcd4a], a
-	ld [wcd4c], a
-	ld [wcd4d], a
-	ld [wcd4e], a
-	call Function11ad1b
-	call DelayFrame
-.loop
-	call JoyTextDelay
-	ld a, [wJumptableIndex]
-	bit 7, a
-	jr nz, .asm_11aca8
-	call Function11b314
-	call Function11acb7
-	call Function11ad6e
-	ld a, 30 * 4
-	ld [wCurrSpriteOAMAddr], a
-	callba DoNextFrameForAllSprites
-	callba ReloadMapPart
-	jr .loop
-
-.asm_11aca8
-	call ClearSprites
-	pop af
-	ld [hInMenu], a
-	pop af
-	ld [VramState], a
-	pop af
-	ld [Options], a
-	ret
-; 11acb7
-
-Function11acb7: ; 11acb7
-	ld hl, TilemapPack_11ba44
-	ld a, [wcd49]
-	ld c, a
-	ld b, $0
-	sla c
-	rl b
-	sla c
-	rl b
-	sla c
-	rl b
-	add hl, bc
-	decoord 6, 6
-	ld a, [hli]
-	ld [de], a
-	decoord 0, 7
-	ld bc, 7
-	call CopyBytes
-	ld a, [wcd49]
-	inc a
-	ld [wcd49], a
-	ld a, [hl]
-	cp $ff
-	jr nz, .get_the_other
-	xor a
-	ld [wcd49], a
-.get_the_other
-	ld hl, TilemapPack_11bb7d
-	ld a, [wcd4a]
-	ld c, a
-	ld b, $0
-	sla c
-	rl b
-	sla c
-	rl b
-	sla c
-	rl b
-	add hl, bc
-	decoord 3, 9
-	ld bc, 7
-	call CopyBytes
-	ld a, [wcd4a]
-	inc a
-	ld [wcd4a], a
-	inc hl
-	ld a, [hl]
-	cp $ff
-	ret nz
-	xor a
-	ld [wcd4a], a
-	ret
-; 11ad1b
-
-Function11ad1b: ; 11ad1b
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearTileMap
-	callba Function17c000
-	ld a, [wMenuCursorY]
-	ld [wcd82], a
-	dec a
-	ld [hObjectStructIndexBuffer], a
-	ld a, $10
-	ld [wCurIconTile], a
-	ld hl, LoadMenuMonIcon
-	ld a, BANK(LoadMenuMonIcon)
-	ld e, $4
-	rst FarCall
-	ld hl, LoadMenuMonIcon
-	ld a, BANK(LoadMenuMonIcon)
-	ld e, $5
-	rst FarCall
-	ld hl, $c6d0
-	ld bc, $0115
-	xor a
-	call ByteFill
-	xor a
-	ld [wJumptableIndex], a
-	ld [wcf64], a
-	ld [wcf65], a
-	ld [wcf66], a
-	ld [wcd30], a
-	ld a, $2
-	ld [wc7d4], a
-	callba Pokedex_OrderMonsByMode
-	ret
-; 11ad6e
-
-Function11ad6e: ; 11ad6e
-	ld a, [wJumptableIndex]
-	ld hl, Jumptable_11ad78
-	call Function11b239
-	jp hl
-; 11ad78
-
-Jumptable_11ad78: ; 11ad78
-	dw Function11b082
-	dw Function11b0ff
-	dw Function11ad95
-	dw Function11adc4
-	dw Function11ae4e
-	dw Function11ae98
-	dw Function11ad8f
-	dw Function11af04
-	dw Function11af4e
-; 11ad8a
-
-Function11ad8a: ; 11ad8a
-	ld hl, wJumptableIndex
-	inc [hl]
-	ret
-; 11ad8f
-
-Function11ad8f: ; 11ad8f
-	ld hl, wJumptableIndex
-	set 7, [hl]
-	ret
-; 11ad95
-
-Function11ad95: ; 11ad95
-	ld hl, MenuDataHeader_11ae38
-	call LoadMenuDataHeader
-	call MenuBox
-	hlcoord 12, 12
-	ld de, String_11ae40
-	call PlaceString
-	hlcoord 10, 10, AttrMap
-	lb bc, 8, 8
-	call Function11afd6
-	callba ReloadMapPart
-	call Function11ad8a
-	ld a, $1
-	ld [wMenuCursorY], a
-	ld hl, Unknown_11afcc
-	call Function11afb7
-
-Function11adc4:
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and a
-	ret z
-	ld a, [hl]
-	and $40
-	jr nz, .asm_11ade6
-	ld a, [hl]
-	and $80
-	jr nz, .asm_11aded
-	ld a, [hl]
-	and $1
-	jr nz, .asm_11ae06
-	ld a, [hl]
-	and $2
-	ret z
-	call PlayClickSFX
-	xor a
-	ld [wJumptableIndex], a
-	jr .asm_11ae2e
-
-.asm_11ade6
-	ld a, [wMenuCursorY]
-	dec a
-	ret z
-	jr .asm_11adf4
-
-.asm_11aded
-	ld a, [wMenuCursorY]
-	inc a
-	cp $4
-	ret z
-
-.asm_11adf4
-	push af
-	ld hl, Unknown_11afcc
-	call Function11afbb
-	pop af
-	ld [wMenuCursorY], a
-	ld hl, Unknown_11afcc
-	call Function11afb7
-	ret
-
-.asm_11ae06
-	call PlayClickSFX
-	ld a, [wMenuCursorY]
-	dec a
-	ld hl, wcd30
-	ld [hl], a
-	and a
-	jr z, .asm_11ae28
-	hlcoord 2, 14
-	ld a, [wMenuCursorY]
-	cp $2
-	jr z, .asm_11ae23
-	call Function11b272
-	jr .asm_11ae2b
-
-.asm_11ae23
-	call Function11b267
-	jr .asm_11ae2b
-
-.asm_11ae28
-	ld a, $3
-	ld [hl], a
-
-.asm_11ae2b
-	call Function11ad8a
-
-.asm_11ae2e
-	call ExitMenu
-	callba ReloadMapPart
-	ret
-; 11ae38
-
-MenuDataHeader_11ae38: ; 11ae38
-	db $40 ; flags
-	db 10, 10 ; start coords
-	db 17, 17 ; end coords
-	dw NULL
-	db 0 ; default option
-; 11ae40
-
-String_11ae40: ; 11ae40
-	db   "どちらでも"
-	next "♂ォス"
-	next "♀メス"
-	db   "@"
-; 11ae4e
-
-Function11ae4e: ; 11ae4e
-	ld hl, MenuDataHeader_11afe8
-	call LoadMenuDataHeader
-	call MenuBox
-	hlcoord 10, 14
-	ld de, String_11aff0
-	call PlaceString
-	ld hl, MenuDataHeader_11b013
-	call LoadMenuDataHeader
-	call MenuBox
-	hlcoord 16, 8
-	ld de, String_11b01b
-	call PlaceString
-	hlcoord 14, 7, AttrMap
-	lb bc, 5, 6
-	call Function11afd6
-	hlcoord 9, 12, AttrMap
-	lb bc, 6, 11
-	call Function11afd6
-	callba ReloadMapPart
-	call Function11ad8a
-	ld a, $1
-	ld [wMenuCursorY], a
-	ld hl, Unknown_11afd2
-	call Function11afb7
-
-Function11ae98:
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and a
-	ret z
-	ld a, [hl]
-	and D_UP
-	jr nz, .asm_11aec1
-	ld a, [hl]
-	and D_DOWN
-	jr nz, .asm_11aec8
-	ld a, [hl]
-	and A_BUTTON
-	jr nz, .asm_11aee1
-	ld a, [hl]
-	and B_BUTTON
-	ret z
-	call PlayClickSFX
-.asm_11aeb4
-	hlcoord 2, 14
-	ld a, $7f
-	ld [hl], a
-	ld a, $1
-	ld [wJumptableIndex], a
-	jr .asm_11aef7
-
-.asm_11aec1
-	ld a, [wMenuCursorY]
-	dec a
-	ret z
-	jr .asm_11aecf
-
-.asm_11aec8
-	ld a, [wMenuCursorY]
-	inc a
-	cp $3
-	ret z
-
-.asm_11aecf
-	push af
-	ld hl, Unknown_11afd2
-	call Function11afbb
-	pop af
-	ld [wMenuCursorY], a
-	ld hl, Unknown_11afd2
-	call Function11afb7
-	ret
-
-.asm_11aee1
-	call PlayClickSFX
-	ld a, [wMenuCursorY]
-	cp $2
-	jr z, .asm_11aeb4
-	ld a, [wcd4b]
-	ld [ScriptVar], a
-	call Function11b022
-	call Function11ad8a
-
-.asm_11aef7
-	call ExitMenu
-	call ExitMenu
-	callba ReloadMapPart
-	ret
-; 11af04
-
-Function11af04: ; 11af04
-	ld hl, MenuDataHeader_11afe8
-	call LoadMenuDataHeader
-	call MenuBox
-	hlcoord 10, 14
-	ld de, String_11b003
-	call PlaceString
-	ld hl, MenuDataHeader_11b013
-	call LoadMenuDataHeader
-	call MenuBox
-	hlcoord 16, 8
-	ld de, String_11b01b
-	call PlaceString
-	hlcoord 14, 7, AttrMap
-	lb bc, 5, 6
-	call Function11afd6
-	hlcoord 9, 12, AttrMap
-	lb bc, 6, 11
-	call Function11afd6
-	callba ReloadMapPart
-	call Function11ad8a
-	ld a, $2
-	ld [wMenuCursorY], a
-	ld hl, Unknown_11afd2
-	call Function11afb7
-
-Function11af4e:
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and a
-	ret z
-	ld a, [hl]
-	and D_UP
-	jr nz, .asm_11af77
-	ld a, [hl]
-	and D_DOWN
-	jr nz, .asm_11af7e
-	ld a, [hl]
-	and A_BUTTON
-	jr nz, .asm_11af97
-	ld a, [hl]
-	and B_BUTTON
-	ret z
-	call PlayClickSFX
-.asm_11af6a
-	hlcoord 2, 14
-	ld a, $7f
-	ld [hl], a
-	ld a, $1
-	ld [wJumptableIndex], a
-	jr .asm_11afaa
-
-.asm_11af77
-	ld a, [wMenuCursorY]
-	dec a
-	ret z
-	jr .asm_11af85
-
-.asm_11af7e
-	ld a, [wMenuCursorY]
-	inc a
-	cp $3
-	ret z
-
-.asm_11af85
-	push af
-	ld hl, Unknown_11afd2
-	call Function11afbb
-	pop af
-	ld [wMenuCursorY], a
-	ld hl, Unknown_11afd2
-	call Function11afb7
-	ret
-
-.asm_11af97
-	call PlayClickSFX
-	ld a, [wMenuCursorY]
-	cp $2
-	jr z, .asm_11af6a
-	ld a, $6
-	ld [wJumptableIndex], a
-	xor a
-	ld [ScriptVar], a
-
-.asm_11afaa
-	call ExitMenu
-	call ExitMenu
-	callba ReloadMapPart
-	ret
-; 11afb7
-
-Function11afb7: ; 11afb7
-	ld e, $ed
-	jr asm_11afbd
-
-Function11afbb:
-	ld e, $7f
-
-asm_11afbd:
-	ld a, [wMenuCursorY]
-	dec a
-	ld c, a
-	ld b, 0
-	add hl, bc
-	add hl, bc
-	ld a, e
-	ld e, [hl]
-	inc hl
-	ld d, [hl]
-	ld [de], a
-	ret
-; 11afcc
-
-Unknown_11afcc:
-	dwcoord 11, 12
-	dwcoord 11, 14
-	dwcoord 11, 16
-
-Unknown_11afd2:
-	dwcoord 15,  8
-	dwcoord 15, 10
-; 11afd6
-
-Function11afd6: ; 11afd6
-	ld de, SCREEN_WIDTH
-	ld a, $3
-.row
-	push bc
-	push hl
-.col
-	ld [hli], a
-	dec c
-	jr nz, .col
-	pop hl
-	add hl, de
-	pop bc
-	dec b
-	jr nz, .row
-	ret
-; 11afe8
-
-MenuDataHeader_11afe8: ; 11afe8
-	db $40 ; flags
-	db 12,  9 ; start coords
-	db 17, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 11aff0
-
-String_11aff0: ; 11aff0
-	db   "この じょうけんで"
-	next "よろしいですか?@"
-; 11b003
-
-String_11b003: ; 11b003
-	db   "こうかんを"
-	next "ちゅうししますか?@"
-; 11b013
-
-MenuDataHeader_11b013: ; 11b013
-	db $40 ; flags
-	db  7, 14 ; start coords
-	db 11, 19 ; end coords
-	dw NULL
-	db 1 ; default option
-; 11b01b
-
-String_11b01b:
-	db   "はい"
-	next "いいえ@"
-; 11b022
-
-Function11b022: ; 11b022
-	ld a, [wcd2e]
-	and a
-	jr z, .asm_11b02e
-	ld hl, StringBuffer3
-	call Function11b03d
-
-.asm_11b02e
-	ld a, [wcd30]
-	and a
-	ret z
-	cp $3
-	ret z
-	ld hl, StringBuffer4
-	call Function11b03d
-	ret
-; 11b03d
-
-Function11b03d: ; 11b03d
-	push hl
-	push af
-	ld c, $1
-.loop
-	ld a, [hli]
-	cp "♂"
-	jr z, .gender
-	cp "♀"
-	jr z, .gender
-	cp "@"
-	jr z, .done
-	inc c
-	jr .loop
-
-.gender
-	dec hl
-	ld a, "@"
-	ld [hli], a
-
-.done
-	dec hl
-	push hl
-	ld e, 4
-	ld d, 0
-	add hl, de
-	ld e, l
-	ld d, h
-	pop hl
-.loop2
-	ld a, [hld]
-	ld [de], a
-	dec de
-	dec c
-	jr nz, .loop2
-	pop af
-	pop de
-	cp $1
-	jr nz, .female
-	ld hl, .MaleString
-	jr .got_string
-
-.female
-	ld hl, .FemaleString
-
-.got_string
-	ld bc, 4 ; string length
-	call CopyBytes
-	ret
-; 11b07a
-
-.MaleString: db "ォスの "
-.FemaleString: db "メスの "
-
-Function11b082: ; 11b082
-	call Function11b242
-	ld a, $7
-	ld [wc7d3], a
-	call Function11b099
-	call Function11b295
-	call Function11b275
-	call SetPalettes
-	jp Function11ad8a
-; 11b099
-
-Function11b099: ; 11b099
-	ld c, $6
-	hlcoord 11, 1
-	ld a, [wc7d3]
-	add a
-	ld b, a
-	xor a
-	call Function11b236
-	ld a, [wc7d0]
-	ld e, a
-	ld d, $0
-	ld hl, wc6d0
-	add hl, de
-	ld e, l
-	ld d, h
-	hlcoord 11, 2
-	ld a, [wc7d3]
-.loop
-	push af
-	ld a, [de]
-	ld [wd265], a
-	push de
-	push hl
-	call .PlaceMonNameOrPlaceholderString
-	pop hl
-	ld de, 2 * SCREEN_WIDTH
-	add hl, de
-	pop de
-	inc de
-	pop af
-	dec a
-	jr nz, .loop
-	ret
-; 11b0cf
-
-.PlaceMonNameOrPlaceholderString: ; 11b0cf
-	and a
-	ret z
-
-	call .CheckSeenFlag
-	ret c
-
-	call .SetCaughtFlag
-	push hl
-	call GetPokemonName
-	pop hl
-	call PlaceString
-	ret
-; 11b0e1
-
-.SetCaughtFlag: ; 11b0e1
-	call CheckCaughtMemMon
-	jr nz, .okay
-	inc hl
-	ret
-
-.okay
-	ld a, $1
-	ld [hli], a
-	ret
-; 11b0ec
-
-.CheckSeenFlag: ; 11b0ec
-	call CheckSeenMemMon
-	ret nz
-
-	inc hl
-	ld de, .EmptySlot
-	call PlaceString
-	scf
-	ret
-; 11b0f9
-
-.EmptySlot: ; 11b0f9
-	db "ーーーーー@"
-; 11b0ff
-
-Function11b0ff: ; 11b0ff
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and $2
-	jr nz, .asm_11b141
-	ld a, [hl]
-	and $1
-	jr nz, .asm_11b131
-	call Function11b175
-	jr nc, .asm_11b125
-	ld a, [wcd4c]
-	inc a
-	and $3
-	ld [wcd4c], a
-	xor a
-	ld [hBGMapMode], a
-	call Function11b099
-	ld a, $1
-	ld [hBGMapMode], a
-	ret
-
-.asm_11b125
-	ld a, [wcd4c]
-	and a
-	ret z
-	inc a
-	and $3
-	ld [wcd4c], a
-	ret
-
-.asm_11b131
-	call Function11b20b
-	call CheckSeenMemMon
-	jr z, .asm_11b13d
-	ld a, $1
-	jr .asm_11b148
-
-.asm_11b13d
-	ld a, $2
-	jr .asm_11b148
-
-.asm_11b141
-	ld hl, wJumptableIndex
-	ld a, $7
-	ld [hl], a
-	ret
-
-.asm_11b148
-	call PlayClickSFX
-	ld [wcd4b], a
-	and a
-	jr z, .asm_11b16c
-	ld a, [wcf65]
-	cp $0
-	jr z, .asm_11b163
-	cp $fe
-	jr z, .asm_11b167
-	cp $ff
-	jr z, .asm_11b16b
-	jp Function11ad8a
-
-.asm_11b163
-	ld a, $1
-	jr .asm_11b16c
-
-.asm_11b167
-	ld a, $2
-	jr .asm_11b16c
-
-.asm_11b16b
-	xor a
-
-.asm_11b16c
-	ld [wcd30], a
-	ld a, $4
-	ld [wJumptableIndex], a
-	ret
-; 11b175
-
-Function11b175: ; 11b175
-	ld a, [wc7d3]
-	ld d, a
-	ld a, [wc7d2]
-	ld e, a
-	ld hl, hJoyLast
-	ld a, [hl]
-	and $40
-	jr nz, .asm_11b19a
-	ld a, [hl]
-	and $80
-	jr nz, .asm_11b1ae
-	ld a, d
-	cp e
-	jr nc, .asm_11b1ed
-	ld a, [hl]
-	and $20
-	jr nz, .asm_11b1c6
-	ld a, [hl]
-	and $10
-	jr nz, .asm_11b1d8
-	jr .asm_11b1ed
-
-.asm_11b19a
-	ld hl, wc7d1
-	ld a, [hl]
-	and a
-	jr z, .asm_11b1a4
-	dec [hl]
-	jr .asm_11b1ef
-
-.asm_11b1a4
-	ld hl, wc7d0
-	ld a, [hl]
-	and a
-	jr z, .asm_11b1ed
-	dec [hl]
-	jr .asm_11b1ef
-
-.asm_11b1ae
-	ld hl, wc7d1
-	ld a, [hl]
-	inc a
-	cp e
-	jr nc, .asm_11b1ed
-	cp d
-	jr nc, .asm_11b1bc
-	inc [hl]
-	jr .asm_11b1ef
-
-.asm_11b1bc
-	ld hl, wc7d0
-	add [hl]
-	cp e
-	jr nc, .asm_11b1ed
-	inc [hl]
-	jr .asm_11b1ef
-
-.asm_11b1c6
-	ld hl, wc7d0
-	ld a, [hl]
-	and a
-	jr z, .asm_11b1ed
-	cp d
-	jr nc, .asm_11b1d4
-	xor a
-	ld [hl], a
-	jr .asm_11b1ef
-
-.asm_11b1d4
-	sub d
-	ld [hl], a
-	jr .asm_11b1ef
-
-.asm_11b1d8
-	ld hl, wc7d0
-	ld a, d
-	add a
-	add [hl]
-	jr c, .asm_11b1e3
-	cp e
-	jr c, .asm_11b1e8
-
-.asm_11b1e3
-	ld a, e
-	sub d
-	ld [hl], a
-	jr .asm_11b1ef
-
-.asm_11b1e8
-	ld a, [hl]
-	add d
-	ld [hl], a
-	jr .asm_11b1ef
-
-.asm_11b1ed
-	and a
-	ret
-
-.asm_11b1ef
-	call Function11b295
-	call Function11b275
-	scf
-	ret
-; 11b1f7
-
-Function11b1f7: ; 11b1f7
-	hlcoord 0, 0
-	ld a, $32
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	ret
-; 11b203
-
-Function11b203: ; 11b203
-.asm_11b203
-	ld a, [de]
-	cp $ff
-	ret z
-	inc de
-	ld [hli], a
-	jr .asm_11b203
-; 11b20b
-
-Function11b20b: ; 11b20b
-	ld a, [wc7d1]
-	ld hl, wc7d0
-	add [hl]
-	ld e, a
-	ld d, $0
-	ld hl, $c6d0
-	add hl, de
-	ld a, [hl]
-	ld [wd265], a
-	ret
-; 11b21e
-
-CheckCaughtMemMon: ; 11b21e
-	push de
-	push hl
-	ld a, [wd265]
-	dec a
-	call CheckCaughtMon
-	pop hl
-	pop de
-	ret
-; 11b22a
-
-CheckSeenMemMon: ; 11b22a
-	push de
-	push hl
-	ld a, [wd265]
-	dec a
-	call CheckSeenMon
-	pop hl
-	pop de
-	ret
-; 11b236
-
-Function11b236: ; 11b236
-	jp FillBoxWithByte
-; 11b239
-
-Function11b239: ; 11b239
-	ld e, a
-	ld d, 0
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	ret
-; 11b242
-
-Function11b242: ; 11b242
-	hlcoord 3, 4
-	ld de, StringBuffer3
-	call PlaceString
-	xor a
-	ld [MonType], a
-	callba GetGender
-	hlcoord 1, 4
-	ld a, [CurPartySpecies]
-	ld bc, wcd2f
-	ld [bc], a
-	dec bc
-	jr c, asm_11b26a
-	jr z, asm_11b26f
-	ld a, $1
-	ld [bc], a
-
-Function11b267:
-	ld [hl], $ef
-	ret
-
-asm_11b26a
-	xor a
-	ld [bc], a
-	ld [hl], $7f
-	ret
-
-asm_11b26f
-	ld a, $2
-	ld [bc], a
-
-Function11b272:
-	ld [hl], $f5
-	ret
-; 11b275
-
-Function11b275: ; 11b275
-	call Function11b279
-	ret
-; 11b279
-
-Function11b279: ; 11b279
-	ld a, [wd265]
-	ld [CurSpecies], a
-	call CheckSeenMemMon
-	jr z, .asm_11b28f
-	call GetBaseData
-	ld a, [BaseGender]
-	ld [wcf65], a
-	jr .asm_11b294
-
-.asm_11b28f
-	ld a, $ff
-	ld [wcf65], a
-
-.asm_11b294
-	ret
-; 11b295
-
-Function11b295: ; 11b295
-	hlcoord 4, 13
-	ld de, String_11b308
-	call PlaceString
-	hlcoord 4, 14
-	ld de, String_11b308
-	call PlaceString
-	call Function11b20b
-	call CheckSeenMemMon
-	jr z, .asm_11b2d1
-	ld a, [$c608]
-	ld c, a
-	ld a, [$c608 + 1]
-	ld b, a
-	ld hl, $0007
-	add hl, bc
-	xor a
-	ld [hl], a
-	ld hl, $0003
-	add hl, bc
-	ld e, [hl]
-	callba FlyFunction_GetMonIcon
-	hlcoord 4, 14
-	push hl
-	call GetPokemonName
-	jr .asm_11b2e7
-
-.asm_11b2d1
-	ld a, [$c608]
-	ld c, a
-	ld a, [$c608 + 1]
-	ld b, a
-	ld hl, $0007
-	add hl, bc
-	ld a, $50
-	ld [hl], a
-	hlcoord 4, 13
-	push hl
-	ld de, String_11b30e
-
-.asm_11b2e7
-	ld a, $6
-	ld bc, StringBuffer4
-.asm_11b2ec
-	push af
-	ld a, [de]
-	ld [bc], a
-	inc de
-	inc bc
-	pop af
-	dec a
-	and a
-	jr nz, .asm_11b2ec
-	pop hl
-	ld de, StringBuffer4
-	call PlaceString
-	ret
-; 11b2fe
-
-String_11b2fe: ; 11b2fe
-	db "あげる#@"
-; 11b303
-
-String_11b303: ; 11b303
-	db "ほしい#@"
-; 11b308
-
-String_11b308: ; 11b308
-	db "     @"
-; 11b30e
-
-String_11b30e: ; 11b30e
-	db "みはっけん@"
-; 11b314
-
-Function11b314: ; 11b314
-	call Function11b31b
-	call Function11b3d9
-	ret
-; 11b31b
-
-Function11b31b: ; 11b31b
-	ld hl, .Coords
-	ld a, [wJumptableIndex]
-	cp 2
-	jr c, .tilemap_1
-	ld a, [wc7d1]
-	cp 4
-	jr nc, .tilemap_3
-	cp 3
-	jr c, .tilemap_1
-	ld a, [wJumptableIndex]
-	cp 2
-	jr z, .tilemap_1
-	cp 3
-	jr z, .tilemap_1
-	cp 6
-	jr z, .tilemap_1
-
-	ld bc, .Tilemap2
-	jr .load_sprites
-
-.tilemap_3
-	ld bc, .Tilemap3
-	jr .load_sprites
-
-.tilemap_1
-	ld bc, .Tilemap1
-
-.load_sprites
-	call Function11b397
-	ret
-; 11b350
-
-.Coords:
-	dbpixel 3, 11, 2, 6 ;  0
-	dbpixel 3, 12, 2, 6 ;  1
-	dbpixel 3, 13, 2, 6 ;  2
-	dbpixel 3, 14, 2, 6 ;  3
-	dbpixel 3, 15, 2, 6 ;  4
-	dbpixel 3, 16, 2, 6 ;  5
-	dbpixel 3, 17, 2, 6 ;  6
-	dbpixel 4, 11, 2, 6 ;  7
-	dbpixel 4, 12, 2, 6 ;  8
-	dbpixel 4, 13, 2, 6 ;  9
-	dbpixel 4, 14, 2, 6 ; 10
-	dbpixel 4, 15, 2, 6 ; 11
-	dbpixel 4, 16, 2, 6 ; 12
-	dbpixel 4, 17, 2, 6 ; 13
-	db -1
-
-.Tilemap1: ; vtiles
-	db $30 ;  0
-	db $31 ;  1
-	db $31 ;  2
-	db $31 ;  3
-	db $31 ;  4
-	db $31 ;  5
-	db $32 ;  6
-	db $40 ;  7
-	db $41 ;  8
-	db $41 ;  9
-	db $41 ; 10
-	db $41 ; 11
-	db $41 ; 12
-	db $42 ; 13
-
-.Tilemap2: ; vtiles
-	db $30 ;  0
-	db $31 ;  1
-	db $31 ;  2
-	db $39 ;  3
-	db $39 ;  4
-	db $39 ;  5
-	db $39 ;  6
-	db $40 ;  7
-	db $41 ;  8
-	db $41 ;  9
-	db $39 ; 10
-	db $39 ; 11
-	db $39 ; 12
-	db $39 ; 13
-
-.Tilemap3: ; vtiles
-	db $39 ;  0
-	db $39 ;  1
-	db $39 ;  2
-	db $39 ;  3
-	db $39 ;  4
-	db $39 ;  5
-	db $39 ;  6
-	db $39 ;  7
-	db $39 ;  8
-	db $39 ;  9
-	db $39 ; 10
-	db $39 ; 11
-	db $39 ; 12
-	db $39 ; 13
-
-Function11b397: ; 11b397
-	ld de, Sprites
-.loop
-	ld a, [hl]
-	cp $ff
-	ret z
-	ld a, [wc7d1]
-	and $7
-	swap a
-	add [hl]
-	inc hl ; 1
-	ld [de], a
-	inc de
-
-	ld a, [hli] ; 2
-	ld [de], a
-	inc de
-
-	ld a, [bc]
-	inc bc
-	ld [de], a
-	inc de
-	ld a, $5 ; OBPal 5
-	ld [de], a
-	inc de
-	jr .loop
-; 11b3b6
-
-Function11b3b6: ; 11b3b6
-; unreferenced
-.loop
-	ld a, [hl]
-	cp -1
-	ret z
-	ld a, [wcd4d]
-	and $7
-	swap a
-	add [hl]
-	inc hl
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	inc de
-	push hl
-	ld l, c
-	ld h, b
-	ld a, [wcd4e]
-	add [hl]
-	inc bc
-	ld [de], a
-	inc de
-	pop hl
-	ld a, $5
-	ld [de], a
-	inc de
-	jr .loop
-; 11b3d9
-
-Function11b3d9: ; 11b3d9
-	ld de, Sprites + 28 * 4
-	push de
-	ld a, [wc7d2]
-	dec a
-	ld e, a
-	ld a, [wc7d1]
-	ld hl, wc7d0
-	add [hl]
-	cp e
-	jr z, .skip
-	ld hl, 0
-	ld bc, $70
-	call AddNTimes
-	ld e, l
-	ld d, h
-	ld b, 0
-	ld a, d
-	or e
-	jr z, .load_sprites
-	ld a, [wc7d2]
-	ld c, a
-.loop1
-	ld a, e
-	sub c
-	ld e, a
-	ld a, d
-	sbc $0
-	ld d, a
-	jr c, .load_sprites
-	inc b
-	jr .loop1
-
-.skip
-	ld b, 14 * 8
-
-.load_sprites
-	ld a, 2 * 8 + 5
-	add b
-	pop hl
-	ld [hli], a
-	cp $41
-	jr c, .version1
-	ld a, [wJumptableIndex]
-	cp 4
-	jr z, .version2
-	cp 5
-	jr z, .version2
-	cp 7
-	jr z, .version2
-	cp 8
-	jr z, .version2
-
-.version1
-	ld a, 19 * 8 + 3
-	ld [hli], a
-	ld a, [wcd4c]
-	add $3c
-	ld [hli], a
-	ld a, [wcd4c]
-	add $1
-	ld [hl], a
-	ret
-
-.version2
-	ld a, 19 * 8 + 3
-	ld [hli], a
-	ld a, $39
-	ld [hli], a
-	xor a
-	ld [hl], a
-	ret
-; 11b444
-
-Function11b444: ; 11b444
-; special
-	call Mobile46_InitJumptable
-	call Mobile46_RunJumptable
-	ret
-; 11b44b
-
-Mobile46_InitJumptable: ; 11b44b
-	xor a
-	ld [wJumptableIndex], a
-	ld [wcf64], a
-	ld [wcf65], a
-	ld [wcf66], a
-	call UpdateTime
-	ret
-; 11b45c
-
-Mobile46_RunJumptable: ; 11b45c
-.loop
-	call .IterateJumptable
-	call DelayFrame
-	ld a, [wJumptableIndex]
-	cp 4
-	jr nz, .loop
-	ret
-; 11b46a
-
-.IterateJumptable: ; 11b46a
-	jumptable .Jumptable, wJumptableIndex
-
-.Jumptable:
-	dw Function11b483
-	dw Function11b570
-	dw Function11b5c0
-	dw Function11b5e0
-	dw Function11b5e7 ; unused
-; 11b483
-
-Function11b483: ; 11b483
-	call .InitRAM
-	ld hl, PlayerName
-	ld a, $5 ; Japanese Name Length
-.loop1
-	push af
-	ld a, [hli]
-	ld [bc], a
-	inc bc
-	pop af
-	dec a
-	and a
-	jr nz, .loop1
-
-	ld de, PARTYMON_STRUCT_LENGTH
-	ld hl, PartyMon1Species
-	ld a, [wcd82]
-	dec a
-	push af
-.loop2
-	and a
-	jr z, .okay
-	add hl, de
-	dec a
-	jr .loop2
-
-.okay
-	push bc
-	ld a, PARTYMON_STRUCT_LENGTH
-.loop3
-	push af
-	ld a, [hli]
-	ld [bc], a
-	inc bc
-	pop af
-	dec a
-	and a
-	jr nz, .loop3
-
-	pop de
-	push bc
-	ld a, [de]
-	ld [CurSpecies], a
-	call GetBaseData
-	ld hl, MON_LEVEL
-	add hl, de
-	ld a, [hl]
-	ld [CurPartyLevel], a
-	ld hl, MON_MAXHP
-	add hl, de
-	push hl
-	ld hl, MON_STAT_EXP - 1
-	add hl, de
-	pop de
-	push de
-	ld b, OTPARTYMON
-	predef CalcPkmnStats
-	pop de
-	ld h, d
-	ld l, e
-	dec hl
-	dec hl
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hl], a
-	pop bc
-	ld de, NAME_LENGTH
-	ld hl, PartyMonOT
-	pop af
-	push af
-.loop4
-	and a
-	jr z, .okay2
-	add hl, de
-	dec a
-	jr .loop4
-
-.okay2
-	ld a, NAME_LENGTH - 1
-.loop5
-	push af
-	ld a, [hli]
-	ld [bc], a
-	inc bc
-	pop af
-	dec a
-	and a
-	jr nz, .loop5
-	ld de, NAME_LENGTH
-	ld hl, PartyMonNicknames
-	pop af
-	push af
-.loop6
-	and a
-	jr z, .okay3
-	add hl, de
-	dec a
-	jr .loop6
-
-.okay3
-	ld a, NAME_LENGTH - 1
-.loop7
-	push af
-	ld a, [hli]
-	ld [bc], a
-	inc bc
-	pop af
-	dec a
-	and a
-	jr nz, .loop7
-	ld de, MAIL_STRUCT_LENGTH
-	ld hl, sPartyMail
-	pop af
-.loop8
-	and a
-	jr z, .okay4
-	add hl, de
-	dec a
-	jr .loop8
-
-.okay4
-	ld a, $0 ; BANK(sPartyMail)
-	call GetSRAMBank
-	ld a, MAIL_STRUCT_LENGTH
-.loop9
-	push af
-	ld a, [hli]
-	ld [bc], a
-	inc bc
-	pop af
-	dec a
-	and a
-	jr nz, .loop9
-	call CloseSRAM
-	jp Function11ad8a
-
-.InitRAM:
-	ld bc, $c626
-	ld a, [PlayerID]
-	ld [wcd2a], a
-	ld [bc], a
-	inc bc
-
-	ld a, [PlayerID + 1]
-	ld [wcd2b], a
-	ld [bc], a
-	inc bc
-
-	ld a, [wSecretID]
-	ld [wcd2c], a
-	ld [bc], a
-	inc bc
-
-	ld a, [wSecretID + 1]
-	ld [wcd2d], a
-	ld [bc], a
-	inc bc
-
-	ld a, [wcd2e]
-	ld [bc], a
-	inc bc
-
-	ld a, [wcd2f]
-	ld [bc], a
-	inc bc
-
-	ld a, [wcd30]
-	ld [bc], a
-	inc bc
-
-	ld a, [wd265]
-	ld [bc], a
-	inc bc
-	ret
-; 11b570
-
-Function11b570: ; 11b570
-	call Function118007
-	ld a, [ScriptVar]
-	and a
-	jr nz, .exit
-	call .SaveData
-	jp Function11ad8a
-
-.exit
-	ld a, $4
-	ld [wJumptableIndex], a
-	ret
-
-.SaveData:
-	ld a, $3
-	ld [rSVBK], a
-
-	ld hl, w3_d800
-	ld de, $c608
-	ld bc, w3_d88f - w3_d800
-	call CopyBytes
-
-	ld a, $1
-	ld [rSVBK], a
-	ld a, $5
-	call GetSRAMBank
-
-	ld de, $a800
-	ld a, $1
-	ld [de], a
-	inc de
-	ld hl, $c608
-	ld bc, w3_d88f - w3_d800
-	call CopyBytes
-
-	push de
-	pop hl
-
-	ld a, [hRTCMinutes]
-	ld [hli], a
-	ld a, [hRTCHours]
-	ld [hli], a
-	ld a, [hRTCDayLo]
-	ld [hli], a
-	ld a, [hRTCDayHi]
-	ld [hl], a
-
-	call CloseSRAM
-	ret
-; 11b5c0
-
-Function11b5c0: ; 11b5c0
-	ld a, [wcd82]
-	dec a
-	ld [CurPartyMon], a
-	xor a
-	ld [wPokemonWithdrawDepositParameter], a
-	callba RemoveMonFromPartyOrBox
-	callba Function170807
-	callba SaveAfterLinkTrade
-	jp Function11ad8a
-; 11b5e0
-
-Function11b5e0: ; 11b5e0
-	xor a
-	ld [ScriptVar], a
-	jp Function11ad8a
-; 11b5e7
-
-Function11b5e7: ; 11b5e7
-	ret
-; 11b5e8
-
-Function11b5e8: ; 11b5e8
-	ld a, $0
-	call GetSRAMBank
-	ld hl, wRTC
-	ld de, $c608
-	ld bc, 4
-	call CopyBytes
-	call CloseSRAM
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $c608
-	ld de, $b08c
-	ld bc, 4
-	call CopyBytes
-	ld a, $2
-	ld [$a800], a
-	ld a, [$a81f]
-	ld [wcd2a], a
-	ld a, [$a820]
-	ld [wcd2b], a
-	ld a, [$a821]
-	ld [wcd2c], a
-	ld a, [$a822]
-	ld [wcd2d], a
-	ld a, [$a823]
-	ld [wcd2e], a
-	ld a, [$a824]
-	ld [wcd2f], a
-	ld a, [$a825]
-	ld [wcd30], a
-	ld a, [$a826]
-	ld [wcd31], a
-	call CloseSRAM
-	call Mobile46_InitJumptable
-	call .loop
-	ret
-
-.loop
-	call .RunJumptable
-	call DelayFrame
-	ld a, [wJumptableIndex]
-	cp $1
-	jr nz, .loop
-	ret
-
-.RunJumptable:
-	jumptable .Jumptable, wJumptableIndex
-.Jumptable:
-	dw Function11b66d
-	dw Function11b6b3
-; 11b66d
-
-Function11b66d: ; 11b66d
-	call Function1180b8
-	ld a, [ScriptVar]
-	and a
-	jr nz, .asm_11b6b0
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-	ld a, [w3_d090]
-	ld b, a
-	pop af
-	ld [rSVBK], a
-	ld a, b
-	and a
-	jr z, .asm_11b691
-	cp $1
-	jr nz, .asm_11b6b0
-	call Function11b6b4
-	jr .asm_11b6b0
-
-.asm_11b691
-	callba Function17081d
-	ld a, [ScriptVar]
-	and a
-	jr z, .asm_11b6b0
-	xor a
-	ld [ScriptVar], a
-	ld a, [rSVBK]
-	push af
-	ld a, $3
-	ld [rSVBK], a
-	ld a, $2
-	ld [w3_d090], a
-	pop af
-	ld [rSVBK], a
-
-.asm_11b6b0
-	jp Function11ad8a
-; 11b6b3
-
-Function11b6b3: ; 11b6b3
-	ret
-; 11b6b4
-
-Function11b6b4: ; 11b6b4
-	ld a, $5
-	call GetSRAMBank
-	ld a, [wcd30]
-	ld [$c708], a
-	ld a, [wcd31]
-	ld [$c709], a
-
-	ld a, $c708 % $100
-	ld [wMobileMonSpeciesPointerBuffer], a
-	ld a, $c708 / $100
-	ld [wMobileMonSpeciesPointerBuffer + 1], a
-
-	ld a, $c60d % $100 ; Partymon Struct
-	ld [wMobileMonStructurePointerBuffer], a
-	ld a, $c60d / $100
-	ld [wMobileMonStructurePointerBuffer + 1], a
-
-	ld a, $c63d % $100 ; OT
-	ld [wMobileMonOTNamePointerBuffer], a
-	ld a, $c63d / $100
-	ld [wMobileMonOTNamePointerBuffer + 1], a
-
-	ld a, $c642 % $100 ; Nickname
-	ld [wMobileMonNicknamePointerBuffer], a
-	ld a, $c642 / $100
-	ld [wMobileMonNicknamePointerBuffer + 1], a
-
-	ld a, $c647 % $100 ; ???
-	ld [wMobileMonMailPointerBuffer], a
-	ld a, $c647 / $100
-	ld [wMobileMonMailPointerBuffer + 1], a
-
-	ld a, $46
-	ld [$c628], a
-
-	ld de, $c63d
-	ld c, 5
-	callba CheckStringForErrors
-	jr nc, .length_check_OT
-	callba Mobile_CopyDefaultOTName
-
-.length_check_OT
-	ld de, $c63d
-	lb bc, 1, 5
-	callba CheckStringContainsLessThanBNextCharacters
-	jr nc, .error_check_nick
-	callba Mobile_CopyDefaultOTName
-
-.error_check_nick
-	ld de, $c642
-	ld c, 5
-	callba CheckStringForErrors
-	jr nc, .length_check_nick
-	callba Mobile_CopyDefaultNickname
-
-.length_check_nick
-	ld de, $c642
-	lb bc, 1, 5
-	callba CheckStringContainsLessThanBNextCharacters
-	jr nc, .error_check_mail
-	callba Mobile_CopyDefaultNickname
-
-.error_check_mail
-	ld de, $c647
-	ld c, MAIL_MSG_LENGTH + 1
-	callba CheckStringForErrors
-	jr nc, .length_check_mail
-	callba Mobile_CopyDefaultMail
-
-.length_check_mail
-	ld de, $c647
-	lb bc, 2, MAIL_MSG_LENGTH + 1
-	callba CheckStringContainsLessThanBNextCharacters
-	jr c, .fix_mail
-	ld a, b
-	cp $2
-	jr nz, .mail_ok
-
-.fix_mail
-	callba Mobile_CopyDefaultMail
-
-.mail_ok
-	ld de, $c668
-	ld c, $5
-	callba CheckStringForErrors
-	jr nc, .length_check_author
-	callba Mobile_CopyDefaultMailAuthor
-
-.length_check_author
-	ld de, $c668
-	lb bc, 1, 5
-	callba CheckStringContainsLessThanBNextCharacters
-	jr nc, .author_okay
-	callba Mobile_CopyDefaultMailAuthor
-
-.author_okay
-	ld a, [$c60e]
-	cp -1
-	jr nz, .item_okay
-	xor a
-	ld [$c60e], a
-
-.item_okay
-	ld a, [wcd31]
-	ld [$c60d], a
-	ld [CurSpecies], a
-	call GetBaseData
-
-	ld hl, $c60d + MON_LEVEL
-	ld a, [hl]
-	cp MIN_LEVEL
-	ld a, MIN_LEVEL
-	jr c, .replace_level
-	ld a, [hl]
-	cp MAX_LEVEL
-	jr c, .done_level
-	ld a, MAX_LEVEL
-.replace_level
-	ld [hl], a
-.done_level
-	ld [CurPartyLevel], a
-
-	ld hl, $c60d + MON_STAT_EXP - 1
-	ld de, $c60d + MON_MAXHP
-	ld b, $1
-	predef CalcPkmnStats
-	ld de, $c60d + MON_MAXHP
-	ld hl, $c60d + MON_HP
-	ld a, [de]
-	ld [hli], a
-	inc de
-	ld a, [de]
-	ld [hl], a
-	call AddMobileMonToParty
-	ret
-; 11b7e5
-
-Function11b7e5: ; 11b7e5
-	ld a, [$c60d] ; species
-	ld [wOTTrademonSpecies], a
-	ld [CurPartySpecies], a
-	ld a, [wcd81]
-	ld [wc74e], a
-	ld hl, $c63d ; OT
-	ld de, wOTTrademonOTName
-	ld bc, 5
-	call CopyBytes
-	ld a, "@"
-	ld [de], a
-	ld a, [$c60d + MON_ID] ; id
-	ld [wOTTrademonID], a
-	ld a, [$c60d + MON_ID + 1]
-	ld [wOTTrademonID + 1], a
-	ld hl, $c60d + MON_DVS ; dvs
-	ld a, [hli]
-	ld [wOTTrademonDVs], a
-	ld a, [hl]
-	ld [wOTTrademonDVs + 1], a
-	ld bc, $c60d ; pokemon_data_start
-	callba GetCaughtGender
-	ld a, c
-	ld [wOTTrademonCaughtData], a
-	call SpeechTextBox
-	call FadeToMenu
-	callba MobileTradeAnimation_ReceiveGetmonFromGTS
-	callba Function17d1f1
-	ld a, $1
-	ld [wForceEvolution], a
-	ld a, $2
-	ld [wLinkMode], a
-	callba EvolvePokemon
-	xor a
-	ld [wLinkMode], a
-	callba SaveAfterLinkTrade
-	ld a, $5
-	call GetSRAMBank
-	ld a, $5
-	ld [$a800], a
-	call CloseSRAM
-	ld a, [MapGroup]
-	ld b, a
-	ld a, [MapNumber]
-	ld c, a
-	call GetMapTrigger
-	ld a, d
-	or e
-	jr z, .asm_11b872
-	ld a, $1
-	ld [de], a
-
-.asm_11b872
-	call CloseSubmenu
-	call RestartMapMusic
-	ret
-; 11b879
-
-Function11b879: ; 11b879
-	callba BattleTower_CheckSaveFileExistsAndIsYours
-	ld a, [ScriptVar]
-	and a
-	ret z
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$a800]
-	ld [ScriptVar], a
-	ld a, [$a890]
-	ld [wcd49], a
-	ld a, [$a891]
-	ld [wcd4a], a
-	ld a, [$a892]
-	ld [wcd4b], a
-	ld a, [$a893]
-	ld [wcd4c], a
-	call CloseSRAM
-	ld a, [ScriptVar]
-	and a
-	ret z
-	ld hl, wcd4c
-	ld a, [hRTCDayHi]
-	cp [hl]
-	ret nz
-	dec hl
-	ld a, [hRTCDayLo]
-	cp [hl]
-	ret nz
-	ld hl, wcd4a
-	ld a, [hRTCHours]
-	cp [hl]
-	jr nc, .asm_11b8d8
-	ld a, $18
-	sub [hl]
-	ld hl, hRTCHours
-	add [hl]
-	ld [wcd4c], a
-	ld a, [hRTCMinutes]
-	ld [wcd4b], a
-	xor a
-	ld [wcd4a], a
-	jr .asm_11b8e2
-
-.asm_11b8d8
-	ld a, [hRTCMinutes]
-	ld [wcd4b], a
-	ld a, [hRTCHours]
-	ld [wcd4c], a
-
-.asm_11b8e2
-	xor a
-	ld l, a
-	ld h, a
-	ld b, a
-	ld d, a
-	ld a, [wcd4b]
-	ld e, a
-	ld a, [wcd4c]
-	ld c, $3c
-	call AddNTimes
-	add hl, de
-	push hl
-	xor a
-	ld l, a
-	ld h, a
-	ld b, a
-	ld d, a
-	ld a, [wcd49]
-	ld e, a
-	ld a, [wcd4a]
-	ld c, $3c
-	call AddNTimes
-	add hl, de
-	ld a, l
-	cpl
-	add $1
-	ld e, a
-	ld a, h
-	cpl
-	adc $0
-	ld d, a
-	pop hl
-	add hl, de
-	ld de, $ff88
-	add hl, de
-	bit 7, h
-	ret z
-	ld a, $2
-	ld [ScriptVar], a
-	ret
-; 11b920
-
-Function11b920: ; 11b920
-	call Mobile46_InitJumptable
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $a81f
-	ld de, $c626
-	ld bc, 8
-	call CopyBytes
-	call CloseSRAM
-	call Function118000
-	ret
-; 11b93b
-
-Function11b93b: ; 11b93b
-	ld a, $5
-	call GetSRAMBank
-	xor a
-	ld [$a800], a
-	ld hl, $a823
-	ld de, $c608
-	ld bc, $008f
-	call CopyBytes
-	call CloseSRAM
-
-	ld a, $c608 % $100
-	ld [wMobileMonSpeciesPointerBuffer], a
-	ld a, $c608 / $100
-	ld [wMobileMonSpeciesPointerBuffer + 1], a
-
-	ld a, $c611 % $100
-	ld [wMobileMonStructurePointerBuffer], a
-	ld a, $c611 / $100
-	ld [wMobileMonStructurePointerBuffer + 1], a
-
-	ld a, $c641 % $100
-	ld [wMobileMonOTNamePointerBuffer], a
-	ld a, $c641 / $100
-	ld [wMobileMonOTNamePointerBuffer + 1], a
-
-	ld a, $c646 % $100
-	ld [wMobileMonNicknamePointerBuffer], a
-	ld a, $c646 / $100
-	ld [wMobileMonNicknamePointerBuffer + 1], a
-
-	ld a, $c64b % $100
-	ld [wMobileMonMailPointerBuffer], a
-	ld a, $c64b / $100
-	ld [wMobileMonMailPointerBuffer + 1], a
-	call AddMobileMonToParty
-	callba SaveAfterLinkTrade
-	ret
-; 11b98f
-
-AddMobileMonToParty: ; 11b98f
-	ld hl, PartyCount
-	ld a, [hl]
-	ld e, a
-	inc [hl]
-
-	ld a, [wMobileMonSpeciesPointerBuffer]
-	ld l, a
-	ld a, [wMobileMonSpeciesPointerBuffer + 1]
-	ld h, a
-	inc hl
-	ld bc, PartySpecies
-	ld d, e
-.loop1
-	inc bc
-	dec d
-	jr nz, .loop1
-	ld a, e
-	ld [CurPartyMon], a
-	ld a, [hl]
-	ld [bc], a
-	inc bc
-	ld a, -1
-	ld [bc], a
-
-	ld hl, PartyMon1Species
-	ld bc, PARTYMON_STRUCT_LENGTH
-	ld a, e
-	ld [wMobileMonSpeciesBuffer], a
-.loop2
-	add hl, bc
-	dec a
-	and a
-	jr nz, .loop2
-	ld e, l
-	ld d, h
-	ld a, [wMobileMonStructurePointerBuffer]
-	ld l, a
-	ld a, [wMobileMonStructurePointerBuffer + 1]
-	ld h, a
-	ld bc, PARTYMON_STRUCT_LENGTH
-	call CopyBytes
-
-	ld hl, PartyMonOT
-	ld bc, NAME_LENGTH
-	ld a, [wMobileMonSpeciesBuffer]
-.loop3
-	add hl, bc
-	dec a
-	and a
-	jr nz, .loop3
-	ld e, l
-	ld d, h
-	ld a, [wMobileMonOTNamePointerBuffer]
-	ld l, a
-	ld a, [wMobileMonOTNamePointerBuffer + 1]
-	ld h, a
-	ld bc, PKMN_NAME_LENGTH - 1
-	call CopyBytes
-	ld a, "@"
-	ld [de], a
-
-	ld hl, PartyMonNicknames
-	ld bc, PKMN_NAME_LENGTH
-	ld a, [wMobileMonSpeciesBuffer]
-.loop4
-	add hl, bc
-	dec a
-	and a
-	jr nz, .loop4
-	ld e, l
-	ld d, h
-	ld a, [wMobileMonNicknamePointerBuffer]
-	ld l, a
-	ld a, [wMobileMonNicknamePointerBuffer + 1]
-	ld h, a
-	ld bc, PKMN_NAME_LENGTH - 1
-	call CopyBytes
-	ld a, "@"
-	ld [de], a
-
-	ld hl, sPartyMail
-	ld bc, MAIL_STRUCT_LENGTH
-	ld a, [wMobileMonSpeciesBuffer]
-.loop5
-	add hl, bc
-	dec a
-	and a
-	jr nz, .loop5
-	ld a, BANK(sPartyMail)
-	call GetSRAMBank
-	ld e, l
-	ld d, h
-	ld a, [wMobileMonMailPointerBuffer]
-	ld l, a
-	ld a, [wMobileMonMailPointerBuffer + 1]
-	ld h, a
-	ld bc, MAIL_STRUCT_LENGTH
-	call CopyBytes
-
-	call CloseSRAM
-	ret
-; 11ba38
-
-Function11ba38: ; 11ba38
-	callba CheckCurPartyMonFainted
-	ret c
-	xor a
-	ld [ScriptVar], a
-	ret
-; 11ba44
-
-TilemapPack_11ba44:
-	db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 ; 00
-	db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 ; 01
-	db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 ; 02
-	db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 ; 03
-	db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 ; 04
-	db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 ; 05
-	db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 ; 06
-	db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f ; 07
-	db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e ; 08
-	db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 ; 09
-	db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 ; 0a
-	db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 ; 0b
-	db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 ; 0c
-	db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 ; 0d
-	db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 ; 0e
-	db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 ; 0f
-	db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 ; 10
-	db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 ; 11
-	db $4a, $30, $0a, $0a, $61, $62, $0a, $58 ; 12
-	db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 ; 13
-	db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 ; 14
-	db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 ; 15
-	db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 ; 16
-	db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 ; 17
-	db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 ; 18
-	db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 ; 19
-	db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 ; 1a
-	db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 ; 1b
-	db $4a, $2f, $68, $87, $88, $89, $0a, $58 ; 1c
-	db $4a, $3d, $6e, $6f, $70, $75, $76, $58 ; 1d
-	db $4a, $30, $75, $76, $5c, $5d, $5e, $58 ; 1e
-	db $4a, $2f, $71, $72, $73, $74, $6d, $58 ; 1f
-	db $4a, $3d, $75, $76, $77, $8a, $8b, $58 ; 20
-	db $4a, $30, $66, $67, $65, $0a, $6a, $58 ; 21
-	db $4a, $2f, $83, $84, $0a, $83, $84, $58 ; 22
-	db $4a, $3d, $0a, $85, $82, $84, $0a, $58 ; 23
-	db $4a, $30, $41, $80, $40, $0a, $0a, $58 ; 24
-	db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 ; 25
-	db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 ; 26
-	db -1
-
-TilemapPack_11bb7d:
-	db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 ; 00
-	db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 01
-	db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 02
-	db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 03
-	db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 04
-	db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 05
-	db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 06
-	db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 ; 07
-	db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 ; 08
-	db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 ; 09
-	db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 ; 0a
-	db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 ; 0b
-	db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 ; 0c
-	db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 ; 0d
-	db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 ; 0e
-	db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 ; 0f
-	db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 ; 10
-	db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 ; 11
-	db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 ; 12
-	db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 ; 13
-	db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 ; 14
-	db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 15
-	db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 ; 16
-	db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 ; 17
-	db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 ; 18
-	db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 ; 19
-	db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1a
-	db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 ; 1b
-	db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 ; 1c
-	db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1d
-	db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 ; 1e
-	db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 ; 1f
-	db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 20
-	db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 ; 21
-	db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 ; 22
-	db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 ; 23
-	db -1
-
-
--- a/misc/mobile_5b.asm
+++ /dev/null
@@ -1,833 +1,0 @@
-Function16c000: ; 16c000
-; unreferenced
-	; Only for CGB
-	ld a, [hCGB]
-	and a
-	ret z
-	; Only do this once per boot cycle
-	ld a, [hFFEA]
-	and a
-	ret z
-	; Set some flag, preserving the old state
-	ld a, [wcfbe]
-	push af
-	set 7, a
-	ld [wcfbe], a
-	; Do stuff
-	call MobileSystemSplashScreen_InitGFX ; Load GFX
-	callba SetRAMStateForMobile
-	callba EnableMobile
-	call .RunJumptable
-	callba DisableMobile
-	; Prevent this routine from running again
-	; until the next time the syatem is turned on
-	xor a
-	ld [hFFEA], a
-	; Restore the flag state
-	pop af
-	ld [wcfbe], a
-	ret
-; 16c031
-
-.RunJumptable: ; 16c031
-	xor a
-	ld [wJumptableIndex], a
-	ld [wcf64], a
-	ld [wd002], a
-	ld [wd003], a
-.loop
-	call DelayFrame
-	callba Function10635c
-	ld a, [wd002]
-	ld hl, .Jumptable
-	rst JumpTable
-	call Function16cb2e
-	call Function16cbae
-	ld a, [wd002]
-	cp $ff
-	jr nz, .loop
-	ret
-; 16c05c
-
-.Jumptable: ; 16c05c
-	dw .init
-	dw Function16c0ba
-	dw Function16c089
-	dw Function16c09e
-	dw Function16c0a8
-	dw Function16c0dc
-	dw Function16c0ec
-	dw Function16c0ba
-	dw Function16c0ca
-	dw Function16c0dc
-	dw Function16c0ec
-	dw .quit
-; 16c074
-
-.init ; 16c074
-	ld a, [wcf64]
-	and a
-	ret z
-	ld [wd002], a
-	xor a
-	ld [wd003], a
-	ret
-; 16c081
-
-.quit ; 16c081
-	push af
-	ld a, $ff
-	ld [wd002], a
-	pop af
-	ret
-; 16c089
-
-Function16c089: ; 16c089
-	ld a, $1
-	ld [Buffer2], a
-	ld [wd1f1], a
-	xor a
-	ld [hWY], a
-	call Function16c0fa
-	ld a, [wd002]
-	ld [wcf64], a
-	ret
-; 16c09e
-
-Function16c09e: ; 16c09e
-	ld a, [wcf64]
-	cp $4
-	ret nz
-	call Function16c0fa
-	ret
-; 16c0a8
-
-Function16c0a8: ; 16c0a8
-	xor a
-	ld [Buffer2], a
-	ld [wd1f1], a
-	call ClearSprites
-	ld a, $90
-	ld [hWY], a
-	call Function16c0fa
-	ret
-; 16c0ba
-
-Function16c0ba: ; 16c0ba
-	call Function16c943
-	push af
-	ld a, [wd003]
-	inc a
-	ld [wd003], a
-	pop af
-	call c, Function16c0fa
-	ret
-; 16c0ca
-
-Function16c0ca: ; 16c0ca
-	ld a, [wd003]
-	cp $28
-	push af
-	ld a, [wd003]
-	inc a
-	ld [wd003], a
-	pop af
-	call z, Function16c0fa
-	ret
-; 16c0dc
-
-Function16c0dc: ; 16c0dc
-	call Function16ca11
-	push af
-	ld a, [wd003]
-	inc a
-	ld [wd003], a
-	pop af
-	call c, Function16c0fa
-	ret
-; 16c0ec
-
-Function16c0ec: ; 16c0ec
-	call ClearBGPalettes
-	call ClearScreen
-	push af
-	ld a, $ff
-	ld [wd002], a
-	pop af
-	ret
-; 16c0fa
-
-Function16c0fa: ; 16c0fa
-	push af
-	ld a, [wd002]
-	inc a
-	ld [wd002], a
-	xor a
-	ld [wd003], a
-	pop af
-	ret
-; 16c108
-
-MobileSystemSplashScreen_InitGFX: ; 16c108
-	call DisableLCD
-	ld hl, VTiles2
-	ld de, .Tiles
-	lb bc, BANK(.Tiles), $68
-	call Get2bpp
-	call .LoadPals
-	call .LoadTileMap
-	call .LoadAttrMap
-	hlbgcoord 0, 0
-	call Function16cc73
-	call Function16cc02
-	xor a
-	ld [hBGMapMode], a
-	call EnableLCD
-	ret
-; 16c130
-
-.LoadPals: ; 16c130
-	ld de, UnknBGPals
-	ld hl, UnknownMobilePalettes_16c903
-	ld bc, 8
-	ld a, $5
-	call FarCopyWRAM
-	callba ApplyPals
-	ret
-; 16c145
-
-.LoadTileMap: ; 16c145
-	hlcoord 0, 0
-	ld bc, 20
-	xor a
-	call ByteFill
-	ld hl, .TileMap
-	decoord 0, 1
-	ld bc, $0154
-	call CopyBytes
-	ret
-; 16c15c
-
-.LoadAttrMap: ; 16c15c
-	hlcoord 0, 0, AttrMap
-	ld bc, SCREEN_WIDTH
-	xor a
-	call ByteFill
-	ld hl, .AttrMap
-	decoord 0, 1, AttrMap
-	ld bc, 17 * SCREEN_WIDTH
-	call CopyBytes
-	ret
-; 16c173
-
-.Tiles:
-INCBIN "gfx/unknown/mobile_splash.2bpp"
-
-.TileMap:
-INCBIN "gfx/unknown/mobile_splash.tilemap"
-
-.AttrMap:
-INCBIN "gfx/unknown/mobile_splash.attrmap"
-
-UnknownMobilePalettes_16c903: ; 16c903
-INCLUDE "gfx/unknown/16c903.pal"
-
-; 16c943
-
-Function16c943: ; 16c943
-	ld a, [wd003]
-	and a
-	jr nz, .asm_16c95e
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld a, $ff
-	ld bc, $0008
-	ld hl, UnknBGPals
-	call ByteFill
-	pop af
-	ld [rSVBK], a
-
-.asm_16c95e
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld e, $0
-	ld a, $0
-.asm_16c969
-	ld hl, UnknownMobilePalettes_16c903
-	call Function16cab6
-	call Function16cabb
-	ld d, a
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cabb
-	cp d
-	jr z, .asm_16c991
-	ld b, $1
-.asm_16c981
-	dec a
-	cp d
-	jr z, .asm_16c988
-	dec b
-	jr nz, .asm_16c981
-
-.asm_16c988
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cadc
-
-.asm_16c991
-	ld hl, UnknownMobilePalettes_16c903
-	call Function16cab6
-	call Function16cad8
-	ld d, a
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cad8
-	cp d
-	jr z, .asm_16c9b9
-	ld b, $1
-.asm_16c9a9
-	dec a
-	cp d
-	jr z, .asm_16c9b0
-	dec b
-	jr nz, .asm_16c9a9
-
-.asm_16c9b0
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cb08
-
-.asm_16c9b9
-	ld hl, UnknownMobilePalettes_16c903
-	call Function16cab6
-	call Function16cac4
-	ld d, a
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cac4
-	cp d
-	jr z, .asm_16c9e1
-	ld b, $1
-.asm_16c9d1
-	dec a
-	cp d
-	jr z, .asm_16c9d8
-	dec b
-	jr nz, .asm_16c9d1
-
-.asm_16c9d8
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cae8
-
-.asm_16c9e1
-	inc e
-	inc e
-	ld a, e
-	cp $8
-	jr nz, .asm_16c969
-	callba ApplyPals
-	call SetPalettes
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, [wd003]
-	cp $1f
-	jr z, .asm_16ca09
-	pop af
-	ld [rSVBK], a
-	ld e, $0
-	pop af
-	ld [rSVBK], a
-	and a
-	ret
-
-.asm_16ca09
-	pop af
-	ld [rSVBK], a
-	pop af
-	ld [rSVBK], a
-	scf
-	ret
-; 16ca11
-
-Function16ca11: ; 16ca11
-	ld a, [wd003]
-	and a
-	jr nz, .asm_16ca1d
-	callba ApplyPals
-
-.asm_16ca1d
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld e, $0
-	ld a, $0
-.asm_16ca28
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cabb
-	cp $1f
-	jr z, .asm_16ca48
-	ld b, $1
-.asm_16ca37
-	inc a
-	cp $1f
-	jr z, .asm_16ca3f
-	dec b
-	jr nz, .asm_16ca37
-
-.asm_16ca3f
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cadc
-
-.asm_16ca48
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cad8
-	cp $1f
-	jr z, .asm_16ca68
-	ld b, $1
-.asm_16ca57
-	inc a
-	cp $1f
-	jr z, .asm_16ca5f
-	dec b
-	jr nz, .asm_16ca57
-
-.asm_16ca5f
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cb08
-
-.asm_16ca68
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cac4
-	cp $1f
-	jr z, .asm_16ca88
-	ld b, $1
-.asm_16ca77
-	inc a
-	cp $1f
-	jr z, .asm_16ca7f
-	dec b
-	jr nz, .asm_16ca77
-
-.asm_16ca7f
-	ld hl, UnknBGPals
-	call Function16cab6
-	call Function16cae8
-
-.asm_16ca88
-	inc e
-	inc e
-	ld a, e
-	cp $8
-	jr nz, .asm_16ca28
-	callba ApplyPals
-	call SetPalettes
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, [wd003]
-	cp $1f
-	jr z, .asm_16caae
-	pop af
-	ld [rSVBK], a
-	pop af
-	ld [rSVBK], a
-	and a
-	ret
-
-.asm_16caae
-	pop af
-	ld [rSVBK], a
-	pop af
-	ld [rSVBK], a
-	scf
-	ret
-; 16cab6
-
-Function16cab6: ; 16cab6
-	ld b, $0
-	ld c, e
-	add hl, bc
-	ret
-; 16cabb
-
-Function16cabb: ; 16cabb
-	inc hl
-	ld a, [hl]
-	srl a
-	srl a
-	and $1f
-	ret
-; 16cac4
-
-Function16cac4: ; 16cac4
-	inc hl
-	ld a, [hld]
-	and $3
-	ld b, a
-	ld a, [hl]
-	sla a
-	rl b
-	sla a
-	rl b
-	sla a
-	rl b
-	ld a, b
-	ret
-; 16cad8
-
-Function16cad8: ; 16cad8
-	ld a, [hl]
-	and $1f
-	ret
-; 16cadc
-
-Function16cadc: ; 16cadc
-	sla a
-	sla a
-	ld b, a
-	inc hl
-	ld a, [hl]
-	and $83
-	or b
-	ld [hl], a
-	ret
-; 16cae8
-
-Function16cae8: ; 16cae8
-	ld c, a
-	srl a
-	srl a
-	srl a
-	ld b, a
-	inc hl
-	ld a, [hl]
-	and $fc
-	or b
-	ld [hld], a
-	ld a, c
-	sla a
-	sla a
-	sla a
-	sla a
-	sla a
-	ld b, a
-	ld a, [hl]
-	and $1f
-	or b
-	ld [hl], a
-	ret
-; 16cb08
-
-Function16cb08: ; 16cb08
-	ld b, a
-	ld a, [hl]
-	and $e0
-	or b
-	ld [hl], a
-	ret
-; 16cb0f
-
-Function16cb0f: ; 16cb0f
-	xor a
-	ld [Buffer1], a
-	ld [Buffer2], a
-	xor a
-	ld [wd1ec], a
-	ld a, $70
-	ld [wd1ee], a
-	ld a, $4
-	ld [wd1ed], a
-	ld a, $a0
-	ld [wd1ef], a
-	xor a
-	ld [wd1f0], a
-	ret
-; 16cb2e
-
-Function16cb2e: ; 16cb2e
-	ld a, [Buffer2]
-	and a
-	ret z
-	call Function16cb40
-	ld hl, Unknown_16cb86
-	ld de, Sprites
-	call Function16cb5d
-	ret
-; 16cb40
-
-Function16cb40: ; 16cb40
-	ld hl, wd1ec
-	inc [hl]
-	ld a, [hl]
-	cp $18
-	ret c
-	xor a
-	ld [hl], a
-	ld a, [wd1ef]
-	cp $a0
-	jr nz, .asm_16cb57
-	ld a, $a7
-	ld [wd1ef], a
-	ret
-
-.asm_16cb57
-	ld a, $a0
-	ld [wd1ef], a
-	ret
-; 16cb5d
-
-Function16cb5d: ; 16cb5d
-	ld a, [hli]
-	and a
-	ret z
-.asm_16cb60
-	push af
-	ld a, [wd1ee]
-	add [hl]
-	add $10
-	ld [de], a
-	inc hl
-	inc de
-	ld a, [wd1ed]
-	add [hl]
-	add $8
-	ld [de], a
-	inc hl
-	inc de
-	ld a, [wd1ef]
-	add [hl]
-	ld [de], a
-	inc hl
-	inc de
-	ld a, [wd1f0]
-	or [hl]
-	ld [de], a
-	inc hl
-	inc de
-	pop af
-	dec a
-	jr nz, .asm_16cb60
-	ret
-; 16cb86
-
-Unknown_16cb86:
-	db 7
-	db  0,  0, 0, 1
-	db  8,  0, 1, 1
-	db  8,  8, 2, 0
-	db  8, 16, 3, 0
-	db 16,  0, 4, 1
-	db 16,  8, 5, 0
-	db 16, 16, 6, 0
-; 16cba3
-
-Function16cba3: ; 16cba3
-	xor a
-	ld [wd1f1], a
-	ld [wd1f2], a
-	ld [wd1f3], a
-	ret
-; 16cbae
-
-Function16cbae: ; 16cbae
-	ld a, [wd1f1]
-	and a
-	ret z
-	call Function16cbba
-	call Function16cbd1
-	ret
-; 16cbba
-
-Function16cbba: ; 16cbba
-	ld hl, wd1f2
-	inc [hl]
-	ld a, [hl]
-	cp $c
-	ret c
-	xor a
-	ld [hl], a
-	ld a, [wd1f3]
-	inc a
-	cp $4
-	jr c, .asm_16cbcd
-	xor a
-
-.asm_16cbcd
-	ld [wd1f3], a
-	ret
-; 16cbd1
-
-Function16cbd1: ; 16cbd1
-	ld a, [wd1f3]
-	ld c, a
-	ld b, 0
-	ld hl, Unknown_16cbfb
-	add hl, bc
-	ld a, [hl]
-	ld bc, 2
-	ld hl, Unknown_16cfa3
-	call AddNTimes
-	ld de, UnknBGPals + 1 palettes + 4
-	ld bc, 2
-	ld a, $5
-	call FarCopyWRAM
-	callba ApplyPals
-	ld a, $1
-	ld [hCGBPalUpdate], a
-	ret
-; 16cbfb
-
-Unknown_16cbfb:
-	db 0, 1, 2, 1, 0, 1, 2
-; 16cc02
-
-Function16cc02: ; 16cc02
-	call Function16cc18
-	call Function16cc49
-	call Function16cc62
-	call Function16cc25
-	call Function16cc6e
-	call Function16cb0f
-	call Function16cba3
-	ret
-; 16cc18
-
-Function16cc18: ; 16cc18
-	ld hl, VTiles1
-	ld de, GFX_16cca3
-	lb bc, BANK(GFX_16cca3), $2e
-	call Get2bpp
-	ret
-; 16cc25
-
-Function16cc25: ; 16cc25
-	ld hl, Unknown_16cfa9
-	ld de, UnknBGPals + 1 palettes
-	call .CopyPal
-	ld hl, Unknown_16cfb1
-	ld de, UnknOBPals
-	call .CopyPal
-	ld hl, Unknown_16cfb9
-	ld de, UnknOBPals + 1 palettes
-	call .CopyPal
-	ret
-; 16cc41
-
-.CopyPal: ; 16cc41
-	ld bc, 1 palettes
-	ld a, $5
-	jp FarCopyWRAM
-; 16cc49
-
-Function16cc49: ; 16cc49
-	hlcoord 4, 15
-	ld a, $80
-	call Function16cc5a
-	hlcoord 4, 16
-	ld a, $90
-	call Function16cc5a
-	ret
-; 16cc5a
-
-Function16cc5a: ; 16cc5a
-	ld c, $10
-.asm_16cc5c
-	ld [hli], a
-	inc a
-	dec c
-	jr nz, .asm_16cc5c
-	ret
-; 16cc62
-
-Function16cc62: ; 16cc62
-	hlcoord 0, 15, AttrMap
-	ld bc, $0028
-	ld a, $1
-	call ByteFill
-	ret
-; 16cc6e
-
-Function16cc6e: ; 16cc6e
-	hlbgcoord 0, 0, VBGMap1
-	jr Function16cc73
-
-Function16cc73:
-	ld a, [rVBK]
-	push af
-	ld a, $0
-	ld [rVBK], a
-	push hl
-	decoord 0, 0
-	call Function16cc90
-	pop hl
-	ld a, $1
-	ld [rVBK], a
-	decoord 0, 0, AttrMap
-	call Function16cc90
-	pop af
-	ld [rVBK], a
-	ret
-; 16cc90
-
-Function16cc90: ; 16cc90
-	ld bc, $1214
-.asm_16cc93
-	push bc
-.asm_16cc94
-	ld a, [de]
-	inc de
-	ld [hli], a
-	dec c
-	jr nz, .asm_16cc94
-	ld bc, $000c
-	add hl, bc
-	pop bc
-	dec b
-	jr nz, .asm_16cc93
-	ret
-; 16cca3
-
-GFX_16cca3:
-INCBIN "gfx/unknown/16cca3.2bpp"
-
-Unknown_16cfa3:
-	RGB 31, 31, 31
-	RGB 25, 27, 29
-	RGB 16, 19, 25
-
-Unknown_16cfa9:
-	RGB 31, 31, 31
-	RGB 25, 27, 29
-	RGB 31, 31, 31
-	RGB 07, 07, 07
-
-
-Unknown_16cfb1:
-	RGB 31, 31, 31
-	RGB 13, 09, 18
-	RGB 26, 21, 16
-	RGB 07, 07, 07
-
-
-Unknown_16cfb9:
-	RGB 31, 31, 31
-	RGB 18, 05, 02
-	RGB 27, 11, 12
-	RGB 07, 07, 07
-
-; 16cfc1
--- a/misc/mobile_5c.asm
+++ /dev/null
@@ -1,944 +1,0 @@
-Function170000: ; 170000
-	ld a, [$c62b]
-	ld [wPlayerTrademonSpecies], a
-	ld hl, $c62e
-	ld de, wPlayerTrademonSenderName
-	ld bc, $0005
-	call CopyBytes
-	ld a, $50
-	ld [de], a
-	ld hl, $c663
-	ld de, wPlayerTrademonOTName
-	ld bc, $0005
-	call CopyBytes
-	ld a, $50
-	ld [de], a
-	ld hl, $c648
-	ld a, [hli]
-	ld [wPlayerTrademonDVs], a
-	ld a, [hl]
-	ld [wPlayerTrademonDVs + 1], a
-	ld hl, $c639
-	ld a, [hli]
-	ld [wPlayerTrademonID], a
-	ld a, [hl]
-	ld [wPlayerTrademonID + 1], a
-	ld bc, $c633
-	callba GetCaughtGender
-	ld a, c
-	ld [wPlayerTrademonCaughtData], a
-	ld a, [wcd81]
-	ld [wc74e], a
-	ld hl, $c608
-	ld de, $d800
-	ld bc, $008f
-	call CopyBytes
-	ret
-
-; 17005a
-
-Function17005a: ; 17005a
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$a824]
-	ld [wOTTrademonSpecies], a
-	ld hl, $a827
-	ld de, wOTTrademonSenderName
-	ld bc, 5 ; Japanese Name Length
-	call CopyBytes
-	ld a, "@"
-	ld [de], a
-	ld hl, $a85c
-	ld de, wOTTrademonOTName
-	ld bc, 5 ; Japanese Name Length
-	call CopyBytes
-	ld a, "@"
-	ld [de], a
-	ld hl, $a841
-	ld a, [hli]
-	ld [wOTTrademonDVs], a
-	ld a, [hl]
-	ld [wOTTrademonDVs + 1], a
-	ld hl, $a832
-	ld a, [hli]
-	ld [wOTTrademonID], a
-	ld a, [hl]
-	ld [wOTTrademonID + 1], a
-	ld bc, $a82c
-	callba GetCaughtGender
-	ld a, c
-	ld [wOTTrademonCaughtData], a
-	ld a, [wcd81]
-	ld [wc74e], a
-	call CloseSRAM
-	ret
-
-; 1700b0
-
-INCLUDE "misc/battle_tower_5c.asm"
-
-Function170be4: ; 170be4
-	ld a, $5
-	call GetSRAMBank
-	xor a
-	ld hl, $a894
-	ld bc, $0008
-	call ByteFill
-	call CloseSRAM
-	ret
-
-; 170bf7
-
-Clears5_a89a: ; 170bf7
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $a89a
-	xor a
-	ld [hli], a
-	ld [hl], a
-	call CloseSRAM
-	ret
-
-; 170c06
-
-Function170c06: ; 170c06
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $a894
-	ld a, [wBattleResult]
-	and a
-	jr nz, .asm_170c15
-	inc [hl]
-
-.asm_170c15
-	inc hl
-	inc hl
-	ld a, [$a89b]
-	add [hl]
-	ld [hld], a
-	ld a, [$a89a]
-	adc [hl]
-	ld [hli], a
-	jr nc, .asm_170c27
-	ld a, $ff
-	ld [hld], a
-	ld [hli], a
-
-.asm_170c27
-	inc hl
-	push hl
-	ld de, 0
-	xor a
-	ld [wd265], a
-.asm_170c30
-	ld hl, PartyMon1HP
-	ld a, [wd265]
-	call GetPartyLocation
-	ld a, [hli]
-	ld b, a
-	ld c, [hl]
-	inc hl
-	inc hl
-	ld a, [hld]
-	sub c
-	ld c, a
-	ld a, [hl]
-	sbc b
-	ld b, a
-	push de
-	pop hl
-	add hl, bc
-	push hl
-	pop de
-	jr c, .asm_170c58
-	ld a, [wd265]
-	inc a
-	ld [wd265], a
-	cp $3
-	jr c, .asm_170c30
-	jr .asm_170c5b
-
-.asm_170c58
-	ld de, -1
-
-.asm_170c5b
-	pop hl
-	inc hl
-	ld a, e
-	add [hl]
-	ld [hld], a
-	ld a, d
-	adc [hl]
-	ld [hli], a
-	jr nc, .asm_170c69
-	ld a, $ff
-	ld [hld], a
-	ld [hli], a
-
-.asm_170c69
-	inc hl
-	push hl
-	ld b, $0
-	ld c, $0
-.asm_170c6f
-	ld hl, PartyMon1HP
-	ld a, b
-	push bc
-	call GetPartyLocation
-	pop bc
-	ld a, [hli]
-	or [hl]
-	jr nz, .asm_170c7d
-	inc c
-
-.asm_170c7d
-	inc b
-	ld a, b
-	cp $3
-	jr c, .asm_170c6f
-	pop hl
-	ld a, [hl]
-	add c
-	ld [hl], a
-	call CloseSRAM
-	ret
-
-; 170c8b
-
-Function170c8b: ; 170c8b
-	ld hl, LastEnemyCounterMove
-	ld b, $5
-.asm_170c90
-	ld a, [hl]
-	xor $ff
-	ld [hli], a
-	dec b
-	jr nz, .asm_170c90
-	ret
-
-; 170c98
-
-CheckBTMonMovesForErrors: ; 170c98
-	ld c, BATTLETOWER_NROFPKMNS
-	ld hl, wBT_OTTempPkmn1Moves
-.loop
-	push hl
-	ld a, [hl]
-	cp NUM_ATTACKS + 1
-	jr c, .okay
-	ld a, POUND
-	ld [hl], a
-
-.okay
-	inc hl
-	ld b, NUM_MOVES - 1
-.loop2
-	ld a, [hl]
-	and a
-	jr z, .loop3
-	cp NUM_ATTACKS + 1
-	jr c, .next
-
-.loop3
-	xor a
-	ld [hl], a
-	inc hl
-	dec b
-	jr nz, .loop3
-	jr .done
-
-.next
-	inc hl
-	dec b
-	jr nz, .loop2
-
-.done
-	pop hl
-	ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
-	add hl, de
-	dec c
-	jr nz, .loop
-	ret
-
-; 170cc6
-
-Function170cc6: ; 170cc6
-	ld a, [rSVBK]
-	push af
-	ld a, $6
-	ld [rSVBK], a
-	ld hl, LZ_170d16
-	ld de, wDecompressScratch
-	call Decompress
-	ld a, $1
-	ld [rVBK], a
-	ld de, wd000
-	ld hl, VTiles0
-	lb bc, $6, $c1
-	call Get2bpp
-	xor a
-	ld [rVBK], a
-	ld hl, LZ_1715a4
-	ld de, wd000
-	call Decompress
-	ld de, UnknBGPals
-	ld hl, VTiles0
-	lb bc, $6, $53
-	call Get2bpp
-	pop af
-	ld [rSVBK], a
-	ret
-
-; 170d02
-
-Function170d02: ; 170d02
-	ld a, $1
-	ld [rVBK], a
-	ld de, GFX_171848
-	ld hl, VTiles1 tile $41
-	lb bc, BANK(GFX_171848), $18
-	call Get2bpp
-	xor a
-	ld [rVBK], a
-	ret
-
-; 170d16
-
-LZ_170d16:
-INCBIN "gfx/unknown/pichu_animated.2bpp.lz"
-
-LZ_1715a4:
-INCBIN "gfx/unknown/egg_animated.2bpp.lz"
-
-GFX_171848:
-INCBIN "gfx/unknown/171848.2bpp"
-
-Function1719c8: ; 1719c8 (5c:59c8)
-	ld a, [hInMenu]
-	push af
-	ld a, $1
-	ld [hInMenu], a
-	call Function1719d6
-	pop af
-	ld [hInMenu], a
-	ret
-
-Function1719d6: ; 1719d6 (5c:59d6)
-	callba BattleTowerRoomMenu_InitRAM
-	call Function1719ed
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	call Function171a11
-	pop af
-	ld [rSVBK], a
-	ret
-
-Function1719ed: ; 1719ed (5c:59ed)
-	xor a
-	ld [wcd49], a
-	ld [wcd4a], a
-	dec a
-	ld [wcd4b], a
-	call ClearBGPalettes
-	call ClearSprites
-	callba Function171d2b
-	callba ReloadMapPart
-	callba ClearSpriteAnims
-	ret
-
-Function171a11: ; 171a11 (5c:5a11)
-.loop
-	call JoyTextDelay
-	ld a, [wcd49]
-	bit 7, a
-	jr nz, .done
-	call Function171a36
-	callba PlaySpriteAnimations
-	callba ReloadMapPart
-	jr .loop
-.done
-	callba ClearSpriteAnims
-	call ClearSprites
-	ret
-
-Function171a36: ; 171a36 (5c:5a36)
-	ld a, [wcd49]
-	ld e, a
-	ld d, 0
-	ld hl, Jumptable_171a45
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-
-Jumptable_171a45: ; 171a45 (5c:5a45)
-	dw Function171a95
-	dw Function171ac9
-	dw Function171a5d
-	dw Function171ad7
-	dw Function171a5d
-	dw Function171aec
-	dw Function171b4b
-	dw Function171b85
-	dw Function171bcc
-	dw Function171c2c
-	dw Function171c39
-	dw Function171c41
-
-
-Function171a5d: ; 171a5d (5c:5a5d)
-	ld a, [wc821]
-	bit 1, a
-	jr nz, .asm_171a6a
-	bit 0, a
-	ret nz
-	jp Function171c66
-
-.asm_171a6a
-	ld a, $0
-	call Function3e32
-	ld [wc300], a
-	ld a, l
-	ld [wc301], a
-	ld a, h
-	ld [wc302], a
-	ld a, $a
-	call Function3e32
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	callba BattleTowerRoomMenu_Cleanup
-	pop af
-	ld [rSVBK], a
-	ld a, $a
-	ld [wcd49], a
-	ret
-
-Function171a95: ; 171a95 (5c:5a95)
-	callba Function171ccd
-	hlcoord 2, 8
-	ld de, String_171aa7
-	call PlaceString
-	jp Function171c66
-
-; 171aa7 (5c:5aa7)
-
-String_171aa7: ; 171aa7
-	db   "モバイルアダプタに"
-	next "せつぞく しています"
-	next "しばらく おまちください"
-	db   "@"
-; 171ac9
-
-Function171ac9: ; 171ac9 (5c:5ac9)
-	ld de, wcd81
-	ld hl, $5c
-	ld a, $2
-	call Function3e32
-	jp Function171c66
-
-Function171ad7: ; 171ad7 (5c:5ad7)
-	xor a
-	ld hl, $c608
-	ld bc, $66
-	call ByteFill
-	ld de, $c608
-	ld a, $c
-	call Function3e32
-	jp Function171c66
-
-Function171aec: ; 171aec (5c:5aec)
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	callba BattleTowerRoomMenu_Cleanup
-	pop af
-	ld [rSVBK], a
-	hlcoord 2, 6
-	ld a, $8
-.asm_171b01
-	push af
-	push hl
-	xor a
-	ld bc, $10
-	call ByteFill
-	pop hl
-	ld de, $14
-	add hl, de
-	pop af
-	dec a
-	jr nz, .asm_171b01
-	hlcoord 2, 7
-	ld a, $3
-	ld de, $c608
-.asm_171b1b
-	push af
-	push hl
-	ld a, [de]
-	and a
-	jr z, .asm_171b34
-	ld a, [wcd4b]
-	inc a
-	ld [wcd4b], a
-	push hl
-	call Function171b42
-	pop hl
-	ld bc, $ffec
-	add hl, bc
-	call Function171b42
-.asm_171b34
-	pop hl
-	ld bc, $14
-	add hl, bc
-	add hl, bc
-	add hl, bc
-	pop af
-	dec a
-	jr nz, .asm_171b1b
-	jp Function171c66
-
-Function171b42: ; 171b42 (5c:5b42)
-	ld a, [de]
-	inc de
-	and a
-	ret z
-	sub $20
-	ld [hli], a
-	jr Function171b42
-
-Function171b4b: ; 171b4b (5c:5b4b)
-	depixel 8, 2
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, $8
-	ld [hl], a
-
-	depixel 8, 19
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, $9
-	ld [hl], a
-
-	depixel 17, 14, 2, 0
-	ld a, SPRITE_ANIM_INDEX_1D
-	call _InitSpriteAnimStruct
-	ld hl, SPRITEANIMSTRUCT_0C
-	add hl, bc
-	ld a, $a
-	ld [hl], a
-
-	ld a, $4
-	ld [wcd23], a
-	ld a, $8
-	ld [wcd24], a
-	jp Function171c66
-
-Function171b85: ; 171b85 (5c:5b85)
-	ld hl, hJoyPressed ; $ffa7
-	ld a, [hl]
-	and $2
-	jp nz, Function171b9f
-	ld a, [hl]
-	and $1
-	jp nz, Function171bbd
-	ld a, [hl]
-	and $40
-	jr nz, asm_171ba5
-	ld a, [hl]
-	and $80
-	jr nz, asm_171baf
-	ret
-
-Function171b9f: ; 171b9f (5c:5b9f)
-	ld a, $80
-	ld [wcd49], a
-	ret
-
-asm_171ba5: ; 171ba5 (5c:5ba5)
-	ld a, [wcd4a]
-	and a
-	ret z
-	dec a
-	ld [wcd4a], a
-	ret
-
-asm_171baf: ; 171baf (5c:5baf)
-	ld a, [wcd4b]
-	ld c, a
-	ld a, [wcd4a]
-	cp c
-	ret z
-	inc a
-	ld [wcd4a], a
-	ret
-
-Function171bbd: ; 171bbd (5c:5bbd)
-	call PlayClickSFX
-	ld a, $8
-	ld [wcd23], a
-	xor a
-	ld [wcd24], a
-	jp Function171c66
-
-Function171bcc: ; 171bcc (5c:5bcc)
-	ld hl, hJoyPressed ; $ffa7
-	ld a, [hl]
-	and $2
-	jp nz, Function171bdc
-	ld a, [hl]
-	and $1
-	jp nz, Function171beb
-	ret
-
-Function171bdc: ; 171bdc (5c:5bdc)
-	ld a, $4
-	ld [wcd23], a
-	ld a, $8
-	ld [wcd24], a
-	ld hl, wcd49
-	dec [hl]
-	ret
-
-Function171beb: ; 171beb (5c:5beb)
-	ld a, $5
-	call GetSRAMBank
-	ld a, [wcd4a]
-	ld [$aa4a], a
-	call CloseSRAM
-	ld hl, MenuDataHeader_171c6b
-	call LoadMenuDataHeader
-	call MenuBox
-	call MenuBoxCoord2Tile
-	callba ReloadMapPart
-	hlcoord 1, 14
-	ld de, String_171c73
-	call PlaceString
-	ld a, [wcd4a]
-	cp $2
-	jr z, .asm_171c1f
-	ld a, $8
-	jr .asm_171c21
-.asm_171c1f
-	ld a, $c
-.asm_171c21
-	ld [wcd24], a
-	ld a, $1e
-	ld [wcd4c], a
-	call Function171c66
-
-Function171c2c: ; 171c2c (5c:5c2c)
-	ld hl, wcd4c
-	dec [hl]
-	ret nz
-	call ExitMenu
-	call ClearBGPalettes
-	jr asm_171c60
-
-Function171c39: ; 171c39 (5c:5c39)
-	ld a, $28
-	ld [wcd4c], a
-	call Function171c66
-
-Function171c41: ; 171c41 (5c:5c41)
-	ld hl, wcd4c
-	dec [hl]
-	ret nz
-	call ClearBGPalettes
-	callba MobileFunc_106462
-	callba Function106464
-	ld a, $2
-	ld [wc303], a
-	callba DisplayMobileError
-asm_171c60: ; 171c60 (5c:5c60)
-	ld a, $80
-	ld [wcd49], a
-	ret
-
-Function171c66: ; 171c66 (5c:5c66)
-	ld hl, wcd49
-	inc [hl]
-	ret
-
-; 171c6b (5c:5c6b)
-
-MenuDataHeader_171c6b: ; 171c6b
-	db $40 ; flags
-	db 12,  0 ; start coords
-	db 17, 19 ; end coords
-	dw NULL
-	db 0 ; default option
-; 171c73
-
-String_171c73: ; 171c73
-	db   "モバイルセンターを けってい"
-	next "しました@"
-; 171c87
-
-Function171c87: ; 171c87 (5c:5c87)
-	call DisableLCD
-	ld hl, GFX_171db1
-	ld de, VTiles2 tile $00
-	ld bc, $6e0
-	call CopyBytes
-	ld hl, LZ_172abd
-	ld de, VTiles0 tile $00
-	call Decompress
-	call EnableLCD
-	ld hl, Tilemap_172491
-	decoord 0, 0
-	ld bc, $168
-	call CopyBytes
-	ld hl, Attrmap_1727ed
-	decoord 0, 0, AttrMap
-	ld bc, $168
-	call CopyBytes
-	hlcoord 3, 2
-	ld de, String_172e31
-	call PlaceString
-	hlcoord 3, 16
-	ld de, String_172e3f
-	call PlaceString
-	ret
-
-Function171ccd: ; 171ccd (5c:5ccd)
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_171d71
-	ld de, UnknBGPals
-	ld bc, $40
-	call CopyBytes
-	ld hl, EngineBuffer5
-	ld a, $ff
-	ld [hli], a
-	ld a, $7f
-	ld [hl], a
-	call SetPalettes
-	pop af
-	ld [rSVBK], a
-	ret
-
-Function171cf0: ; 171cf0 (5c:5cf0)
-	xor a
-	hlcoord 4, 15
-	ld [hli], a
-	ld [hli], a
-	ld a, [wcd4b]
-	xor $1
-	ld [wcd4b], a
-	and a
-	jr nz, .asm_171d16
-	ld hl, Tilemap_17251d
-	decoord 0, 7
-	ld bc, $8c
-	call CopyBytes
-	hlcoord 3, 16
-	ld de, String_172e3f
-	jp PlaceString
-
-.asm_171d16
-	ld hl, Tilemap_1725f9
-	decoord 0, 7
-	ld bc, $8c
-	call CopyBytes
-	hlcoord 3, 16
-	ld de, String_172e4e
-	jp PlaceString
-
-Function171d2b: ; 171d2b (5c:5d2b)
-	call DisableLCD
-	ld hl, GFX_171db1
-	ld de, VTiles2 tile $00
-	ld bc, $6e0
-	call CopyBytes
-	ld hl, LZ_172abd
-	ld de, VTiles0 tile $00
-	call Decompress
-	call EnableLCD
-	ld hl, Tilemap_172685
-	decoord 0, 0
-	ld bc, $168
-	call CopyBytes
-	ld hl, Attrmap_172955
-	decoord 0, 0, AttrMap
-	ld bc, $168
-	call CopyBytes
-	hlcoord 2, 2
-	ld de, String_172e5d
-	call PlaceString
-	hlcoord 14, 16
-	ld de, String_172e58
-	call PlaceString
-	ret
-
-; 171d71 (5c:5d71)
-
-Palette_171d71:
-	RGB  0,  0,  0
-	RGB  3,  0,  0
-	RGB  5,  0,  0
-	RGB 31, 31, 29
-	RGB  0,  2, 10
-	RGB  2, 10, 21
-	RGB  0,  0,  0
-	RGB 10, 26, 31
-	RGB  0,  0,  0
-	RGB  0,  7,  8
-	RGB 31,  8,  0
-	RGB  1, 17, 15
-	RGB 31, 16,  0
-	RGB 31, 22,  0
-	RGB 31, 27,  0
-	RGB 31, 31,  0
-	RGB 31, 18,  6
-	RGB  0,  3,  0
-	RGB  0,  9,  0
-	RGB  0, 12,  0
-	RGB  0, 16,  0
-	RGB  0, 22,  0
-	RGB  0, 25,  0
-	RGB  0, 27,  0
-	RGB  5,  5, 16
-	RGB  8, 19, 28
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 31, 31, 29
-	RGB 21, 21, 20
-	RGB 11, 11, 10
-	RGB  0,  0,  0
-
-GFX_171db1:
-INCBIN "gfx/unknown/ascii_font.2bpp"
-Tilemap_172491:
-INCBIN "gfx/unknown/172491.tilemap"
-Tilemap_17251d:
-INCBIN "gfx/unknown/17251d.tilemap"
-Tilemap_1725f9:
-INCBIN "gfx/unknown/1725f9.tilemap"
-Tilemap_172685:
-INCBIN "gfx/unknown/172685.tilemap"
-Attrmap_1727ed:
-INCBIN "gfx/unknown/1727ed.attrmap"
-Attrmap_172955:
-INCBIN "gfx/unknown/172955.attrmap"
-LZ_172abd:
-INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-
-String_172e31: ; 172e31
-	db "パスワード", $1f, "いれてください@"
-String_172e3f: ; 172e3f
-	db "きりかえ やめる  けってい@"
-String_172e4e: ; 172e4e
-	db "きりかえ やめる  "
-String_172e58:
-	db "けってい@"
-String_172e5d: ; 172e5d
-	db "せつぞくする モバイルセンターを"
-	next "えらんで ください@"
-; 172e78
-
-
-Function172e78: ; 172e78 (5c:6e78)
-	ld a, $7f
-	hlcoord 0, 0
-	ld bc, $168
-	call ByteFill
-	ld a, $7
-	hlcoord 0, 0, AttrMap
-	ld bc, $168
-	call ByteFill
-	call DisableLCD
-	ld hl, GameBoyN64GFX
-	ld de, VTiles2 tile $00
-	ld bc, $610
-	call CopyBytes
-	call EnableLCD
-	ld hl, Tilemap_1733af
-	decoord 0, 0
-	ld bc, $168
-	call CopyBytes
-	ld hl, Attrmap_173517
-	decoord 0, 0, AttrMap
-	ld bc, $168
-	call CopyBytes
-	ret
-
-; 172eb9 (5c:6eb9)
-
-Function172eb9:
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_172edf
-	ld de, UnknBGPals
-	ld bc, $40
-	call CopyBytes
-	ld hl, Palette_172edf
-	ld de, BGPals
-	ld bc, $40
-	call CopyBytes
-	call SetPalettes
-	pop af
-	ld [rSVBK], a
-	ret
-
-; 172edf (5c:6edf)
-
-Palette_172edf:
-	RGB  5, 12, 17
-	RGB 31, 31, 31
-	RGB 18, 25, 28
-	RGB 10, 17, 21
-	RGB  6, 13, 18
-	RGB 31, 31, 31
-	RGB 20, 26, 28
-	RGB 12, 19, 23
-	RGB  3, 10, 16
-	RGB 31, 31, 31
-	RGB  6, 13, 18
-	RGB 20, 26, 28
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  5,  5, 16
-	RGB  8, 19, 28
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-GameBoyN64GFX:
-INCBIN "gfx/trade/game_boy_n64.2bpp"
-
-Tilemap_1733af:
-IF DEF(CRYSTAL11)
-INCBIN "gfx/unknown/1733af_corrupt.tilemap"
-ELSE
-INCBIN "gfx/unknown/1733af.tilemap"
-ENDC
-
-Attrmap_173517:
-INCBIN "gfx/unknown/173517.attrmap"
--- a/misc/mobile_5f.asm
+++ /dev/null
@@ -1,5310 +1,0 @@
-
-SECTION "bank5F", ROMX
-
-Function17c000: ; 17c000
-
-	call DisableLCD
-
-	ld hl, VTiles2
-	ld bc, $31 tiles
-	xor a
-	call ByteFill
-
-	call LoadStandardFont
-	call LoadFontsExtra
-
-	ld hl, HaveWantMap
-	decoord 0, 0
-	bccoord 0, 0, AttrMap
-
-	ld a, SCREEN_HEIGHT
-.y
-	push af
-	ld a, SCREEN_WIDTH
-
-	push hl
-.x
-	push af
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [bc], a
-	inc bc
-	pop af
-	dec a
-	jr nz, .x
-	pop hl
-
-	push bc
-	ld bc, BG_MAP_WIDTH * 2
-	add hl, bc
-	pop bc
-
-	pop af
-	dec a
-	jr nz, .y
-
-	ld a, [rSVBK]
-	push af
-
-	ld a, 5 ; BANK(UnknBGPals)
-	ld [rSVBK], a
-
-	ld hl, HaveWantPals
-	ld de, UnknBGPals
-	ld bc, $80
-	call CopyBytes
-
-	pop af
-	ld [rSVBK], a
-
-	ld hl, MobileSelectGFX
-	ld de, VTiles0 tile $30
-	ld bc, $20 tiles
-	call CopyBytes
-
-	ld a, 1
-	ld [rVBK], a
-
-	ld hl, HaveWantGFX
-	ld de, VTiles2
-	ld bc, $80 tiles
-	call CopyBytes
-
-	ld hl, HaveWantGFX + $800
-	ld de, VTiles1
-	ld bc, $10 tiles
-	call CopyBytes
-
-	xor a
-	ld [rVBK], a
-
-	call EnableLCD
-	callba ReloadMapPart
-	ret
-; 17c083
-
-HaveWantGFX: ; 17c083
-INCBIN "gfx/mobile/havewant.2bpp"
-
-MobileSelectGFX: ; 17c983
-INCBIN "gfx/mobile/select.2bpp"
-
-HaveWantMap: ; 17cb83
-; Interleaved tile/palette map.
-INCBIN "gfx/mobile/havewant_map.bin"
-
-HaveWantPals: ; 17cff3
-; BG and OBJ palettes.
-	RGB  0,  0,  0
-	RGB 21, 21, 21
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB  0,  0,  0
-	RGB  4, 17, 29
-	RGB  6, 19, 31
-	RGB 31, 31, 31
-
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB  0,  0,  0
-	RGB  2, 13, 18
-	RGB  6, 19, 31
-	RGB 31, 31, 31
-
-	RGB  0,  0,  0
-	RGB 31,  5,  5
-	RGB 29, 21, 21
-	RGB 31, 31, 31
-
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB  0,  0,  0
-	RGB  4, 17, 29
-	RGB  6, 19, 31
-	RGB  2, 15, 27
-
-	RGB  0,  0,  0
-	RGB 28, 19, 18
-	RGB 25,  9,  0
-	RGB  0,  0,  0
-
-	RGB  0,  0,  0
-	RGB 31, 27, 27
-	RGB 31, 10,  4
-	RGB 29,  0,  0
-
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 26,  8, 23
-	RGB 22,  0, 16
-
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 20,  8, 31
-	RGB 15,  1, 26
-
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 17, 12, 31
-	RGB 12,  6, 31
-
-	RGB  0, 16,  0
-	RGB 11, 11, 14
-	RGB  5,  5,  7
-	RGB 31, 31, 31
-
-	RGB  0, 31,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-	RGB 16, 31,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-	RGB  0,  0,  0
-
-
-CheckStringForErrors: ; 17d073
-; Valid character ranges:
-; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
-.loop
-	ld a, [de]
-	inc de
-	and a
-	jr z, .NextChar
-	cp $60
-	jr nc, .NextChar
-	cp $4e
-	jr z, .NextChar
-	cp "@"
-	jr z, .Done
-	cp $5
-	jr c, .Fail
-	cp "<PLAY_G>"
-	jr c, .NextChar
-	cp $19
-	jr c, .Fail
-	cp $1d
-	jr c, .NextChar
-	cp $26
-	jr c, .Fail
-	cp $35
-	jr c, .NextChar
-	cp $3a
-	jr c, .Fail
-	cp $3f
-	jr c, .NextChar
-	cp $40
-	jr c, .Fail
-	cp $49
-	jr c, .NextChar
-
-.Fail:
-	scf
-	ret
-
-.NextChar:
-	dec c
-	jr nz, .loop
-
-.Done:
-	and a
-	ret
-; 17d0b3
-
-CheckStringForErrors_IgnoreTerminator: ; 17d0b3
-; Find control chars
-.loop
-	ld a, [de]
-	inc de
-	and a
-	jr z, .next
-	cp "<DEXEND>" + 1
-	jr nc, .next
-	cp "<NEXT>"
-	jr z, .next
-	cp "@"
-	jr z, .next
-
-	cp $5
-	jr c, .end
-	cp "<PLAY_G>"
-	jr c, .next
-	cp $19
-	jr c, .end
-	cp $1d
-	jr c, .next
-	cp "%" + 1
-	jr c, .end
-	cp $35
-	jr c, .next
-	cp "<GREEN>" + 1
-	jr c, .end
-	cp "<ENEMY>"
-	jr c, .next
-	cp "<ENEMY>" + 1
-	jr c, .end
-	cp "<MOM>"
-	jr c, .next
-
-.end
-	scf
-	ret
-
-.next
-	dec c
-	jr nz, .loop
-	and a
-	ret
-; 17d0f3
-
-Function17d0f3: ; 17d0f3
-	ld a, [$c608 + 5]
-	ld [wOTTrademonSpecies], a
-	ld [CurPartySpecies], a
-	ld a, [wcd81]
-	ld [$c74e], a
-	ld hl, $c63d
-	ld de, wOTTrademonOTName
-	ld bc, 5
-	call CopyBytes
-	ld a, "@"
-	ld [de], a
-	ld a, [$c608 + 11]
-	ld [wOTTrademonID], a
-	ld a, [$c608 + 12]
-	ld [wOTTrademonID + 1], a
-	ld hl, $c608 + 26
-	ld a, [hli]
-	ld [wOTTrademonDVs], a
-	ld a, [hl]
-	ld [wOTTrademonDVs + 1], a
-	ld bc, $c608 + 5
-	callba GetCaughtGender
-	ld a, c
-	ld [wOTTrademonCaughtData], a
-	call SpeechTextBox
-	call FadeToMenu
-	callba Function10804d
-	callba Function17d1f1
-	ld a, $1
-	ld [wForceEvolution], a
-	ld a, $2
-	ld [wLinkMode], a
-	callba EvolvePokemon
-	xor a
-	ld [wLinkMode], a
-	callba SaveAfterLinkTrade
-	ld a, $5
-	call GetSRAMBank
-	ld a, $5
-	ld [$a800], a
-	call CloseSRAM
-	ld a, [MapGroup]
-	ld b, a
-	ld a, [MapNumber]
-	ld c, a
-	call GetMapTrigger
-	ld a, d
-	or e
-	jr z, .asm_17d180
-	ld a, $1
-	ld [de], a
-
-.asm_17d180
-	call CloseSubmenu
-	call RestartMapMusic
-	ret
-; 17d187
-
-Mobile_CopyDefaultOTName: ; 17d187
-	ld hl, Mobile5F_KrissName
-	ld de, $c63d
-	ld bc, 5
-	call CopyBytes
-	ret
-; 17d194
-
-Mobile5F_KrissName:
-	db "クりス@@"
-; 17d198
-
-Mobile_CopyDefaultNickname: ; 17d199
-	ld hl, .DefaultNickname
-	ld de, $c642
-	ld bc, 5
-	call CopyBytes
-	ret
-; 17d1a6
-
-.DefaultNickname:
-	db "?????"
-
-Mobile_CopyDefaultMail: ; 17d1ab
-	ld a, "@"
-	ld hl, $c647
-	ld bc, MAIL_MSG_LENGTH + 1
-	call ByteFill
-	ld hl, .DefaultMessage
-	ld de, $c647
-	ld bc, 6
-	call CopyBytes
-	ret
-; 17d1c3
-
-.DefaultMessage:
-	db "こんにちは@"
-; 17d1c9
-
-Mobile_CopyDefaultMailAuthor: ; 17d1c9
-	ld a, "@"
-	ld de, $c668
-	ld bc, 5
-	call ByteFill
-	ld hl, Mobile5F_KrissName
-	ld de, $c668
-	ld bc, 5
-	call CopyBytes
-	ret
-; 17d1e1
-
-CheckStringContainsLessThanBNextCharacters: ; 17d1e1
-.loop
-	ld a, [de]
-	inc de
-	cp "<NEXT>"
-	jr nz, .next_char
-	dec b
-	jr z, .done
-
-.next_char
-	dec c
-	jr nz, .loop
-	and a
-	ret
-
-.done
-	scf
-	ret
-; 17d1f1
-
-Function17d1f1: ; 17d1f1
-	ld a, [CurPartySpecies]
-	dec a
-	call SetSeenAndCaughtMon
-
-	ld a, [CurPartySpecies]
-	cp UNOWN
-	jr nz, .asm_17d223
-
-	ld hl, PartyMon1DVs
-	ld a, [PartyCount]
-	dec a
-	ld bc, PARTYMON_STRUCT_LENGTH
-	call AddNTimes
-	predef GetUnownLetter
-	callab UpdateUnownDex
-	ld a, [wFirstUnownSeen]
-	and a
-	jr nz, .asm_17d223
-
-	ld a, [UnownLetter]
-	ld [wFirstUnownSeen], a
-
-.asm_17d223
-	ret
-; 17d224
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Parameter: [ScriptVar] = 0..1
-;
-; if [ScriptVar] == 0
-;    Show japanese menu options
-;    - News - News - ??? - Cancel
-; if [ScriptVar] == 1
-;    Show BattleTower-Menu with 3 options in english language
-;    - Challenge - Explanation - Cancel
-Special_Menu_ChallengeExplanationCancel: ; 17d224
-	ld a, [ScriptVar]
-	and a
-	jr nz, .English
-	ld a, $4
-	ld [ScriptVar], a
-	ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option
-	jr .Load_Interpret
-
-.English:
-	ld a, $4
-	ld [ScriptVar], a
-	ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu
-
-.Load_Interpret:
-	call LoadMenuDataHeader
-	call Function17d246
-	call CloseWindow
-	ret
-; 17d246
-
-Function17d246: ; 17d246
-	call VerticalMenu
-	jr c, .Exit
-	ld a, [ScriptVar]
-	cp $5
-	jr nz, .UsewMenuCursorY
-	ld a, [wMenuCursorY]
-	cp $3
-	ret z
-	jr c, .UsewMenuCursorY
-	dec a
-	jr .LoadToScriptVar
-
-.UsewMenuCursorY:
-	ld a, [wMenuCursorY]
-
-.LoadToScriptVar:
-	ld [ScriptVar], a
-	ret
-
-.Exit:
-	ld a, $4
-	ld [ScriptVar], a
-	ret
-; 17d26a
-
-MenuDataHeader_17d26a: ; 17d26a
-	db $40 ; flags
-	db  0,  0 ; start coords
-	db  9, 14 ; end coords
-	dw MenuData2_17d272
-	db 1 ; default option
-
-MenuData2_17d272: ; 17d272
-	db $a0 ; flags
-	db 4
-	db "ニュース¯よみこむ@"
-	db "ニュース¯みる@"
-	db "せつめい@"
-	db "やめる@"
-; 17d28f
-
-MenuDataHeader_ChallengeExplanationCancel: ; 17d28f
-	db $40 ; flags
-	db  0,  0 ; start coords
-	db  7, 14 ; end coords
-	dw MenuData2_ChallengeExplanationCancel
-	db 1 ; default option
-
-MenuData2_ChallengeExplanationCancel: ; 17d297
-	db $a0 ; flags
-	db 3
-	db "Challenge@"
-	db "Explanation@"
-	db "Cancel@"
-; 17d2b6
-
-Function17d2b6: ; 17d2b6
-	call Function17d2c0
-	callba Function1181da
-	ret
-; 17d2c0
-
-Function17d2c0: ; 17d2c0
-	xor a
-	ld [wJumptableIndex], a
-	ld [wcf64], a
-	ld [wcf65], a
-	ld [wcf66], a
-	ret
-; 17d2ce
-
-Function17d2ce: ; 17d2ce
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$aa72]
-	call CloseSRAM
-	and a
-	jr nz, .asm_17d2e2
-	ld a, $1
-	ld [ScriptVar], a
-	ret
-
-.asm_17d2e2
-	call Function17d314
-	ret c
-	call SpeechTextBox
-	call FadeToMenu
-	ld a, [rSVBK]
-	push af
-	ld a, $4
-	ld [rSVBK], a
-	call Function17d370
-	call Function17d45a
-	pop af
-	ld [rSVBK], a
-	ld de, MUSIC_MOBILE_CENTER
-	ld a, e
-	ld [wMapMusic], a
-	ld [MusicFadeID], a
-	ld a, d
-	ld [MusicFadeID + 1], a
-	call PlayMusic
-	call ReturnToMapFromSubmenu
-	call CloseSubmenu
-	ret
-; 17d314
-
-Function17d314: ; 17d314
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$b1b1]
-	call CloseSRAM
-	cp $21
-	jr nc, .asm_17d354
-	ld a, $6
-	call GetSRAMBank
-	ld l, $0
-	ld h, l
-	ld de, $a006
-	ld a, [$a004]
-	ld c, a
-	ld a, [$a005]
-	ld b, a
-.asm_17d336
-	push bc
-	ld a, [de]
-	inc de
-	ld c, a
-	ld b, $0
-	add hl, bc
-	pop bc
-	dec bc
-	ld a, b
-	or c
-	jr nz, .asm_17d336
-	ld a, [$a002]
-	cp l
-	jr nz, .asm_17d354
-	ld a, [$a003]
-	cp h
-	jr nz, .asm_17d354
-	call CloseSRAM
-	and a
-	ret
-
-.asm_17d354
-	call CloseSRAM
-	ld a, $5
-	call GetSRAMBank
-	xor a
-	ld hl, $aa73
-	ld bc, $c
-	call ByteFill
-	call CloseSRAM
-	ld a, $2
-	ld [ScriptVar], a
-	scf
-	ret
-; 17d370
-
-Function17d370: ; 17d370
-	xor a
-	ld [wcd77], a
-	ld [wcd78], a
-	ld [wcd79], a
-	dec a
-	ld [wcd6c], a
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearScreen
-	callba ReloadMapPart
-	call DisableLCD
-	ld hl, VTiles1 tile $6e
-	ld de, $c608
-	ld bc, 1 tiles
-	call CopyBytes
-	ld a, $1
-	ld [rVBK], a
-	ld hl, PokemonNewsGFX
-	ld de, VTiles1
-	ld bc, $48 tiles
-	call CopyBytes
-	xor a
-	ld hl, VTiles2 tile $7f
-	ld bc, 1 tiles
-	call ByteFill
-	ld hl, $c608
-	ld de, VTiles1 tile $6e
-	ld bc, 1 tiles
-	call CopyBytes
-	xor a
-	ld [rVBK], a
-	ld hl, GFX_17eb7e
-	ld de, VTiles2 tile $60
-	ld bc, 1 tiles
-	call CopyBytes
-	call EnableLCD
-	call Function17d60b
-	ld a, $0
-	ld [BGMapBuffer], a
-	ld a, $d0
-	ld [wcd21], a
-	ld a, $6
-	call GetSRAMBank
-	ld hl, $a006
-	ld de, UnknBGPals
-	ld bc, $1000
-	call CopyBytes
-	call CloseSRAM
-	ret
-; 17d3f6
-
-Function17d3f6: ; 17d3f6
-	call ClearBGPalettes
-	call ClearSprites
-	call ClearScreen
-	callba ReloadMapPart
-
-Function17d405:
-	call DisableLCD
-	ld hl, VTiles1 tile $6e
-	ld de, $c608
-	ld bc, 1 tiles
-	call CopyBytes
-	ld a, $1
-	ld [rVBK], a
-	ld hl, PokemonNewsGFX
-	ld de, VTiles1
-	ld bc, $48 tiles
-	call CopyBytes
-	xor a
-	ld hl, VTiles2 tile $7f
-	ld bc, 1 tiles
-	call ByteFill
-	ld hl, $c608
-	ld de, VTiles1 tile $6e
-	ld bc, 1 tiles
-	call CopyBytes
-	xor a
-	ld [rVBK], a
-	call EnableLCD
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, Palette_17eff6
-	ld de, UnknBGPals
-	ld bc, 8 palettes
-	call CopyBytes
-	call SetPalettes
-	pop af
-	ld [rSVBK], a
-	ret
-; 17d45a
-
-Function17d45a: ; 17d45a
-.asm_17d45a
-	call JoyTextDelay
-	ld a, [wcd77]
-	bit 7, a
-	jr nz, .asm_17d46f
-	call Function17d474
-	callba ReloadMapPart
-	jr .asm_17d45a
-
-.asm_17d46f
-	xor a
-	ld [ScriptVar], a
-	ret
-; 17d474
-
-Function17d474: ; 17d474
-	jumptable Jumptable_17d483, wcd77
-; 17d483
-
-Jumptable_17d483: ; 17d483
-	dw Function17d48d
-	dw Function17d5be
-	dw Function17d5c4
-	dw Function17d6fd
-	dw Function17e427
-; 17d48d
-
-Function17d48d: ; 17d48d
-	ld hl, Palette_17eff6
-	ld de, $c608
-	ld bc, $40
-	call CopyBytes
-	ld hl, TileAttrmap_17eb8e
-	decoord 0, 0
-	bccoord 0, 0, AttrMap
-	ld a, $12
-.asm_17d4a4
-	push af
-	ld a, $14
-	push hl
-.asm_17d4a8
-	push af
-	ld a, [hli]
-	cp $7f
-	jr z, .asm_17d4b0
-	add $80
-
-.asm_17d4b0
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [bc], a
-	inc bc
-	pop af
-	dec a
-	jr nz, .asm_17d4a8
-	pop hl
-	push bc
-	ld bc, $40
-	add hl, bc
-	pop bc
-	pop af
-	dec a
-	jr nz, .asm_17d4a4
-	ld a, [BGMapBuffer]
-	ld l, a
-	ld a, [wcd21]
-	ld h, a
-	ld a, [hli]
-	ld e, a
-	ld a, [wcd6c]
-	cp e
-	jr z, .asm_17d4e0
-	ld a, e
-	ld [wcd6c], a
-	ld [wMapMusic], a
-	ld d, $0
-	call PlayMusic2
-
-.asm_17d4e0
-	ld a, [hli]
-	ld de, $c608
-	ld c, $8
-.asm_17d4e6
-	srl a
-	jr nc, .asm_17d4f6
-	ld b, $8
-	push af
-.asm_17d4ed
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec b
-	jr nz, .asm_17d4ed
-	pop af
-	jr .asm_17d4fc
-
-.asm_17d4f6
-	push af
-	ld a, e
-	add $8
-	ld e, a
-	pop af
-
-.asm_17d4fc
-	dec c
-	jr nz, .asm_17d4e6
-	push hl
-	call Function17d5f6
-	pop hl
-	ld a, [hli]
-	and a
-	jr z, .asm_17d539
-.asm_17d508
-	push af
-	ld a, [hli]
-	ld [wcd4f], a
-	ld a, [hli]
-	ld [wcd50], a
-	ld a, [hli]
-	ld [wcd51], a
-	ld a, [hli]
-	ld [wcd52], a
-	ld a, [hli]
-	sla a
-	sla a
-	sla a
-	add $98
-	ld [wcd53], a
-	ld de, wcd4f
-	call Function17e613
-	ld a, [hli]
-	ld [wcd53], a
-	ld de, wcd4f
-	call Function17e691
-	pop af
-	dec a
-	jr nz, .asm_17d508
-
-.asm_17d539
-	ld a, [hli]
-.asm_17d53a
-	push af
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	push hl
-	pop de
-	hlcoord 0, 0
-	add hl, bc
-	call PlaceString
-	push de
-	pop hl
-	inc hl
-	pop af
-	dec a
-	jr nz, .asm_17d53a
-	ld de, CreditsTimer
-	ld bc, $c
-	call CopyBytes
-	xor a
-	ld [wcd2e], a
-	ld [wcd2f], a
-	inc a
-	ld [wcd30], a
-	ld [wcd31], a
-	ld de, wcd32
-	ld bc, $10
-	call CopyBytes
-	ld a, [hli]
-	ld [wcd42], a
-	ld a, [hli]
-	ld [wcd43], a
-	ld a, [hli]
-	ld [wMobileInactivityTimerMinutes], a
-	ld a, [hli]
-	ld [wMobileInactivityTimerSeconds], a
-	ld a, [hli]
-	ld [wMobileInactivityTimerFrames], a
-	ld a, [hli]
-	and a
-	jr z, .asm_17d58a
-	call Function17d6a1
-
-.asm_17d58a
-	ld a, l
-	ld [wcd49], a
-	ld a, h
-	ld [wcd4a], a
-	ld a, [wcd42]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	add hl, bc
-	ld a, l
-	ld [wcd4b], a
-	ld a, h
-	ld [wcd4c], a
-	add hl, bc
-	add hl, bc
-	ld a, l
-	ld [wcd4d], a
-	ld a, h
-	ld [wcd4e], a
-	call Function17e451
-	call Function17e55b
-	call Function17e5af
-	callba ReloadMapPart
-	jp Function17e438
-; 17d5be
-
-Function17d5be: ; 17d5be
-	call SetPalettes
-	call Function17e438
-
-Function17d5c4:
-	ld a, [hJoyPressed]
-	and a
-	ret z
-	ld c, 0
-	ld b, c
-	ld hl, wcd32
-.loop
-	srl a
-	jr c, .got_button
-	inc c
-	inc c
-	jr .loop
-
-.got_button
-	add hl, bc
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	and c
-	cp $ff
-	ret z
-	ld a, [wcd20]
-	ld l, a
-	ld a, [wcd21]
-	ld h, a
-	add hl, bc
-	ld a, l
-	ld [wcd78], a
-	ld a, h
-	ld [wcd79], a
-	ld a, $3
-	ld [wcd77], a
-	ret
-; 17d5f6
-
-Function17d5f6: ; 17d5f6
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, $c608
-	ld de, UnknBGPals
-	ld bc, 8 palettes
-	call CopyBytes
-	ld a, $4
-	ld [rSVBK], a
-	ret
-; 17d60b
-
-Function17d60b: ; 17d60b
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $b1d3
-	ld de, $c608
-	ld bc, $20
-	call CopyBytes
-	ld a, [$b1b1]
-	ld c, a
-	ld a, [$b1b2]
-	ld b, a
-	ld a, [$b1b3]
-	ld l, a
-	ld a, [$b1b4]
-	ld h, a
-	call CloseSRAM
-	ld a, $6
-	call GetSRAMBank
-	ld de, $c708
-	ld a, c
-	and a
-	jr z, .asm_17d684
-.asm_17d63b
-	push bc
-	ld a, l
-	ld [de], a
-	inc de
-	ld a, h
-	ld [de], a
-	inc de
-	ld bc, $a
-	add hl, bc
-	pop bc
-	ld a, [hli]
-	ld [wcd4a], a
-	ld a, [hli]
-	ld [wcd49], a
-	push hl
-	push de
-	ld hl, $c608
-	ld e, b
-	ld d, $0
-	add hl, de
-	ld a, [hli]
-	ld [wcd4b], a
-	ld a, [hl]
-	ld [wcd4c], a
-	pop de
-	pop hl
-	inc b
-	inc b
-	dec c
-	dec c
-	jr z, .asm_17d684
-	push bc
-	push de
-	ld a, [wcd49]
-	ld c, a
-	ld a, [wcd4a]
-	ld b, a
-	ld a, [wcd4b]
-	ld e, a
-	ld a, [wcd4c]
-	ld d, a
-.asm_17d67a
-	add hl, de
-	dec bc
-	ld a, c
-	or b
-	jr nz, .asm_17d67a
-	pop de
-	pop bc
-	jr .asm_17d63b
-
-.asm_17d684
-	call CloseSRAM
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $c708
-	ld de, $b1b3
-	ld a, [$b1b1]
-	ld c, a
-	ld a, [$b1b2]
-	ld b, a
-	call CopyBytes
-	call CloseSRAM
-	ret
-; 17d6a1
-
-
-Function17d6a1: ; 17d6a1
-	push hl
-	ld a, [wcd6e]
-	ld c, a
-	ld b, $0
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $b1d3
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld [wcd47], a
-	ld a, [hl]
-	ld [BGMapPalBuffer], a
-	ld hl, $b1b3
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld c, a
-	ld a, [hl]
-	ld h, a
-	ld l, c
-	call CloseSRAM
-	ld a, $6
-	call GetSRAMBank
-	ld a, l
-	ld [wcd5e], a
-	ld a, h
-	ld [wcd5f], a
-	ld de, wcd60
-	ld bc, $4
-	call CopyBytes
-	inc hl
-	inc hl
-	ld de, wcd64
-	ld bc, $4
-	call CopyBytes
-	ld a, [hli]
-	ld [wcd69], a
-	ld a, [hli]
-	ld [wcd68], a
-	ld a, l
-	ld [wcd6a], a
-	ld a, h
-	ld [wcd6b], a
-	call CloseSRAM
-	pop hl
-	ret
-; 17d6fd
-
-Function17d6fd: ; 17d6fd
-	ld a, [wcd77]
-	bit 7, a
-	jr nz, asm_17d721
-	ld a, [wcd78]
-	ld l, a
-	ld a, [wcd79]
-	ld h, a
-	ld a, [hl]
-	cp $ff
-	jr z, asm_17d721
-
-Function17d711:
-.crash_loop
-	cp $31
-	jr nc, .crash_loop
-	ld e, a
-	ld d, 0
-	ld hl, Jumptable17d72a
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-
-asm_17d721
-	call Function17e5af
-	ld a, $2
-	ld [wcd77], a
-	ret
-; 17d72a
-
-Jumptable17d72a: ; 17d72a
-	dw Function17d78c
-	dw Function17d78d
-	dw Function17d7b4
-	dw Function17d7c2
-	dw Function17d7d3
-	dw Function17d7e5
-	dw Function17d818
-	dw Function17d833
-	dw Function17d85d
-	dw Function17d902
-	dw Function17d93a
-	dw Function17d98b
-	dw Function17d9e3
-	dw Function17da31
-	dw Function17da9c
-	dw Function17dadc
-	dw Function17db2d
-	dw Function17db56
-	dw Function17db77
-	dw Function17dbe9
-	dw Function17dc1f
-	dw Function17dc9f
-	dw Function17dca9
-	dw Function17dccf
-	dw Function17dd13
-	dw Function17dd30
-	dw Function17dd49
-	dw Function17ddcd
-	dw Function17de32
-	dw Function17de91
-	dw Function17ded9
-	dw Function17e0fd
-	dw Function17e133
-	dw Function17e165
-	dw Function17e1a1
-	dw Function17e254
-	dw Function17e261
-	dw Function17e270
-	dw Function17e27f
-	dw Function17e293
-	dw Function17e2a7
-	dw Function17e367
-	dw Function17e37e
-	dw Function17e395
-	dw Function17e3ac
-	dw Function17e3c3
-	dw Function17e3e0
-	dw Function17e3f0
-	dw Function17e409
-; 17d78c
-
-Function17d78c: ; 17d78c
-	ret
-; 17d78d
-
-Function17d78d: ; 17d78d
-	call Function17e415
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	call Function17e41e
-	ld a, $6
-	call GetSRAMBank
-	ld hl, $a006
-	add hl, bc
-	ld de, UnknBGPals
-	ld bc, $1000
-	call CopyBytes
-	call CloseSRAM
-	xor a
-	ld [wcd77], a
-	call ClearBGPalettes
-	ret
-; 17d7b4
-
-Function17d7b4: ; 17d7b4
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld d, $0
-	call PlayMusic2
-	call Function17e41e
-	ret
-; 17d7c2
-
-Function17d7c2: ; 17d7c2
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld d, $0
-	call PlaySFX
-	call WaitSFX
-	call Function17e41e
-	ret
-; 17d7d3
-
-Function17d7d3: ; 17d7d3
-	call Function17e415
-	ld a, [hli]
-	dec a
-	ld e, a
-	ld d, $0
-	call PlayCryHeader
-	call WaitSFX
-	call Function17e41e
-	ret
-; 17d7e5
-
-Function17d7e5: ; 17d7e5
-	call Function17e415
-	ld a, [hli]
-	ld [wcd4f], a
-	ld a, [hli]
-	ld [wcd50], a
-	ld a, [hli]
-	ld [wcd51], a
-	ld a, [hli]
-	ld [wcd52], a
-	ld a, [hli]
-	sla a
-	sla a
-	sla a
-	add $98
-	ld [wcd53], a
-	ld de, wcd4f
-	call Function17e613
-	ld a, [hli]
-	ld [wcd53], a
-	ld de, wcd4f
-	call Function17e691
-	call Function17e41e
-	ret
-; 17d818
-
-Function17d818: ; 17d818
-	call Function17e415
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	call Function17e41e
-	call Function17e447
-	ld e, l
-	ld d, h
-	hlcoord 0, 0
-	add hl, bc
-	call PlaceString
-	ret
-; 17d833
-
-Function17d833: ; 17d833
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	call Function17e41e
-	push de
-	push bc
-	call Function17e32b
-	pop bc
-	pop de
-	call Function17e43d
-	ld c, l
-	ld b, h
-	hlcoord 0, 0
-	add hl, de
-	ld e, l
-	ld d, h
-	callba Function11c08f
-	call Function17e349
-	ret
-; 17d85d
-
-Function17d85d: ; 17d85d
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push hl
-	ld hl, UnknBGPals
-	add hl, de
-	ld de, wcc60
-.asm_17d86c
-	ld a, [hli]
-	ld [de], a
-	inc de
-	and a
-	jr nz, .asm_17d86c
-	pop hl
-	ld de, $c608
-	ld c, $0
-.asm_17d878
-	ld a, [hli]
-	cp $ff
-	jr z, .asm_17d8c7
-	ld [wcd4f], a
-	ld a, [hli]
-	ld [wcd50], a
-	ld a, [hli]
-	ld [wcd51], a
-	ld a, [hli]
-	ld [wcd52], a
-	ld a, [wcd51]
-	push af
-	cp $c0
-	jr c, .asm_17d89b
-	ld a, [wcd4f]
-	ld [rSVBK], a
-	jr .asm_17d8a1
-
-.asm_17d89b
-	ld a, [wcd4f]
-	call GetSRAMBank
-
-.asm_17d8a1
-	push hl
-	ld a, [wcd50]
-	ld l, a
-	ld a, [wcd51]
-	ld h, a
-	ld a, [wcd52]
-.asm_17d8ad
-	push af
-	ld a, [hli]
-	ld [de], a
-	inc de
-	inc c
-	pop af
-	dec a
-	jr nz, .asm_17d8ad
-	pop hl
-	pop af
-	cp $c0
-	jr c, .asm_17d8c2
-	ld a, $4
-	ld [rSVBK], a
-	jr .asm_17d878
-
-.asm_17d8c2
-	call CloseSRAM
-	jr .asm_17d878
-
-.asm_17d8c7
-	call Function17e41e
-	push bc
-	ld a, $3
-	ld [rSVBK], a
-	ld hl, $c608
-	ld de, UnknBGPals
-	ld b, $0
-	call CopyBytes
-	ld a, $4
-	ld [rSVBK], a
-	call Function17e32b
-	pop bc
-	ld a, c
-	ld [wcd3b], a
-	xor a
-	ld [wcf66], a
-	callba Function118329
-	ld a, [wc300]
-	and a
-	jr z, .asm_17d8fe
-	cp $a
-	jr z, .asm_17d8fe
-	call Function17e309
-	ret
-
-.asm_17d8fe
-	call Function17e349
-	ret
-; 17d902
-
-Function17d902: ; 17d902
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	push de
-	call Function17e41e
-	call Function17e32b
-	pop de
-	ld hl, UnknBGPals
-	add hl, de
-	ld de, wcc60
-.asm_17d918
-	ld a, [hli]
-	ld [de], a
-	inc de
-	and a
-	jr nz, .asm_17d918
-	xor a
-	ld [wcf66], a
-	callba Function11837a
-	ld a, [wc300]
-	and a
-	jr z, .asm_17d936
-	cp $a
-	jr z, .asm_17d936
-	call Function17e309
-	ret
-
-.asm_17d936
-	call Function17e349
-	ret
-; 17d93a
-
-Function17d93a: ; 17d93a
-	call Function17e415
-	ld de, $c708
-	ld bc, $5
-	call CopyBytes
-	call Function17e41e
-	call Function17e32b
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, [$c70c]
-	call Function17e6de
-	ld a, [$c70a]
-	ld [CurPartySpecies], a
-	ld a, [$c70c]
-	ld e, a
-	callba LoadMonPaletteAsNthBGPal
-	call SetPalettes
-	ld a, [$c708]
-	ld l, a
-	ld a, [$c709]
-	ld h, a
-	ld a, [$c70b]
-	ld c, a
-	decoord 0, 0
-	add hl, de
-	ld e, l
-	ld d, h
-	callba HOF_AnimateFrontpic
-	pop af
-	ld [rSVBK], a
-	call Function17e349
-	ret
-; 17d98b
-
-Function17d98b: ; 17d98b
-	call Function17e415
-	ld de, $c708
-	ld bc, $4
-	call CopyBytes
-	call Function17e41e
-	call Function17e32b
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld a, [$c70b]
-	call Function17e6de
-	ld a, [$c70a]
-	ld [TrainerClass], a
-	ld a, [$c70b]
-	ld e, a
-	callba LoadTrainerClassPaletteAsNthBGPal
-	call SetPalettes
-	ld a, [$c708]
-	ld e, a
-	ld a, [$c709]
-	ld d, a
-	push de
-	ld de, VTiles2
-	callba GetTrainerPic
-	pop hl
-	decoord 0, 0
-	add hl, de
-	ld bc, $707
-	predef PlaceGraphic
-	pop af
-	ld [rSVBK], a
-	call Function17e349
-	ret
-; 17d9e3
-
-Function17d9e3: ; 17d9e3
-	call Function17e415
-	ld de, $c708
-	ld bc, $7
-	call CopyBytes
-	call Function17e41e
-	ld a, [$c70b]
-	push af
-	cp $c0
-	jr c, .asm_17da01
-	ld a, [$c70c]
-	ld [rSVBK], a
-	jr .asm_17da07
-
-.asm_17da01
-	ld a, [$c70c]
-	call GetSRAMBank
-
-.asm_17da07
-	ld a, [$c708]
-	ld l, a
-	ld a, [$c709]
-	ld h, a
-	ld a, [$c70a]
-	ld e, a
-	ld a, [$c70b]
-	ld d, a
-	ld a, [$c70d]
-	ld c, a
-	ld a, [$c70e]
-	ld b, a
-	call CopyBytes
-	pop af
-	cp $c0
-	jr c, .asm_17da2d
-	ld a, $4
-	ld [rSVBK], a
-	jr .asm_17da30
-
-.asm_17da2d
-	call CloseSRAM
-
-.asm_17da30
-	ret
-; 17da31
-
-Function17da31: ; 17da31
-	call Function17e415
-	ld de, $c708
-	ld bc, $4
-	call CopyBytes
-	call Function17e41e
-	ld a, [$c709]
-	push af
-	cp $c0
-	jr c, .asm_17da4f
-	ld a, [$c70a]
-	ld [rSVBK], a
-	jr .asm_17da55
-
-.asm_17da4f
-	ld a, [$c70a]
-	call GetSRAMBank
-
-.asm_17da55
-	ld a, [$c708]
-	ld e, a
-	ld a, [$c709]
-	ld d, a
-	ld a, [$c70b]
-	ld c, a
-	bit 7, c
-	jr nz, .asm_17da70
-	ld hl, Unknown_17da8c
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	or [hl]
-	ld [de], a
-	jr .asm_17da7d
-
-.asm_17da70
-	ld hl, Unknown_17da94
-	ld a, c
-	and $7f
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	and [hl]
-	ld [de], a
-
-.asm_17da7d
-	pop af
-	cp $c0
-	jr c, .asm_17da88
-	ld a, $4
-	ld [rSVBK], a
-	jr .asm_17da8b
-
-.asm_17da88
-	call CloseSRAM
-
-.asm_17da8b
-	ret
-; 17da8c
-
-Unknown_17da8c:
-x = 0
-	rept 8
-	db 1 << x
-x = x + 1
-	endr
-
-Unknown_17da94:
-x = 0
-	rept 8
-	db (1 << x) ^ $ff
-x = x + 1
-	endr
-; 17da9c
-
-Function17da9c: ; 17da9c
-	ld a, [wcd31]
-	dec a
-	jr z, .asm_17dabd
-	push af
-	call Function17e566
-	pop af
-	ld [wcd31], a
-	ld hl, wcd24
-	ld a, [wcd2e]
-	sub [hl]
-	ld [wcd2e], a
-	call Function17e55b
-	call Function17e5af
-.asm_17daba
-	jp Function17e415
-
-.asm_17dabd
-	ld a, [wcd2f]
-	and a
-	jr z, .asm_17daba
-	ld hl, wcd24
-	sub [hl]
-	ld [wcd2f], a
-	ld a, [wcd2e]
-	sub [hl]
-	ld [wcd2e], a
-	call Function17e451
-	call Function17e55b
-	call Function17e5af
-	jr .asm_17daba
-; 17dadc
-
-Function17dadc: ; 17dadc
-	ld a, [wcd2e]
-	ld hl, wcd24
-	add [hl]
-	ld hl, wcd42
-	cp [hl]
-	jr z, .asm_17db0e
-	jr nc, .asm_17db0e
-	ld hl, wcd31
-	ld a, [wcd2b]
-	cp [hl]
-	jr z, .asm_17db11
-	call Function17e566
-	ld a, [wcd31]
-	inc a
-	ld [wcd31], a
-	ld hl, wcd24
-	ld a, [wcd2e]
-	add [hl]
-	ld [wcd2e], a
-	call Function17e55b
-	call Function17e5af
-
-.asm_17db0e
-	jp Function17e415
-
-.asm_17db11
-	ld hl, wcd24
-	ld a, [wcd2f]
-	add [hl]
-	ld [wcd2f], a
-	ld a, [wcd2e]
-	add [hl]
-	ld [wcd2e], a
-	call Function17e451
-	call Function17e55b
-	call Function17e5af
-	jr .asm_17db0e
-; 17db2d
-
-Function17db2d: ; 17db2d
-	ld a, [wcd30]
-	ld hl, wcd24
-	cp [hl]
-	jr z, .asm_17db53
-	ld hl, wcd42
-	ld a, [wcd2e]
-	inc a
-	cp [hl]
-	jr z, .asm_17db53
-	ld [wcd2e], a
-	call Function17e566
-	ld a, [wcd30]
-	inc a
-	ld [wcd30], a
-	call Function17e55b
-	call Function17e5af
-
-.asm_17db53
-	jp Function17e415
-; 17db56
-
-Function17db56: ; 17db56
-	ld a, [wcd30]
-	cp $1
-	jr z, .asm_17db74
-	call Function17e566
-	ld a, [wcd30]
-	dec a
-	ld [wcd30], a
-	ld a, [wcd2e]
-	dec a
-	ld [wcd2e], a
-	call Function17e55b
-	call Function17e5af
-
-.asm_17db74
-	jp Function17e415
-; 17db77
-
-Function17db77: ; 17db77
-	ld hl, wcd2d
-	ld a, [wcd2f]
-	add [hl]
-	ld hl, wcd42
-	cp [hl]
-	jr z, .asm_17dbae
-	jr nc, .asm_17dbae
-	call Function17e566
-	ld hl, wcd2d
-	ld a, [wcd2f]
-	add [hl]
-	ld [wcd2f], a
-	ld a, [wcd2e]
-	add [hl]
-	ld hl, wcd42
-	cp [hl]
-	jr c, .asm_17db9f
-	ld a, [hl]
-	dec a
-
-.asm_17db9f
-	ld [wcd2e], a
-	call Function17dbb1
-	call Function17e451
-	call Function17e55b
-	call Function17e5af
-
-.asm_17dbae
-	jp Function17e415
-; 17dbb1
-
-Function17dbb1: ; 17dbb1
-	ld hl, wcd2f
-	ld a, [wcd42]
-	sub [hl]
-	ld hl, wcd2d
-	cp [hl]
-	ret nc
-	ld a, $1
-	ld [wcd30], a
-	ld [wcd31], a
-	ld a, [wcd24]
-	ld c, a
-	ld a, [wcd24]
-	ld b, a
-	ld a, [wcd2e]
-	ld hl, wcd2f
-	sub [hl]
-.asm_17dbd4
-	and a
-	ret z
-	push af
-	ld hl, wcd30
-	ld a, b
-	cp [hl]
-	jr nz, .asm_17dbe4
-	ld a, $1
-	ld [hl], a
-	ld hl, wcd31
-
-.asm_17dbe4
-	inc [hl]
-	pop af
-	dec a
-	jr .asm_17dbd4
-; 17dbe9
-
-Function17dbe9: ; 17dbe9
-	ld hl, wcd2d
-	ld a, [wcd2f]
-	sub [hl]
-	bit 7, a
-	jr z, .asm_17dbf5
-	xor a
-
-.asm_17dbf5
-	ld [wcd2f], a
-	ld a, [wcd30]
-	dec a
-	ld c, a
-	ld a, [wcd31]
-	ld b, a
-	xor a
-	ld hl, wcd24
-.asm_17dc05
-	dec b
-	jr z, .asm_17dc0b
-	add [hl]
-	jr .asm_17dc05
-
-.asm_17dc0b
-	add c
-	ld hl, wcd2f
-	add [hl]
-	ld [wcd2e], a
-	call Function17e451
-	call Function17e55b
-	call Function17e5af
-	jp Function17e415
-; 17dc1f
-
-Function17dc1f: ; 17dc1f
-	call Function17e415
-	ld de, $c688
-	ld bc, $6
-	call CopyBytes
-	call Function17e32b
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld hl, $c688
-	ld a, $40
-	ld [$c708], a
-	ld a, [hli]
-	ld [$c70a], a
-	add $5
-	ld [$c70c], a
-	ld a, [hli]
-	ld [$c709], a
-	add $4
-	ld [$c70b], a
-	ld a, $96
-	ld [$c70d], a
-	ld a, $5c
-	ld [$c70e], a
-	ld a, $1
-	ld [$c70f], a
-	ld hl, $c708
-	call LoadMenuDataHeader
-	call VerticalMenu
-	jr nc, .asm_17dc6e
-	ld a, $2
-	ld [wMenuCursorY], a
-
-.asm_17dc6e
-	call CloseWindow
-	pop af
-	ld [rSVBK], a
-	ld a, [wMenuCursorY]
-	cp $1
-	jr nz, .asm_17dc85
-	ld a, [$c68a]
-	ld l, a
-	ld a, [$c68a + 1]
-	ld h, a
-	jr .asm_17dc8d
-
-.asm_17dc85
-	ld a, [$c68a + 2]
-	ld l, a
-	ld a, [$c68a + 3]
-	ld h, a
-
-.asm_17dc8d
-	push hl
-	call Function17e349
-	pop hl
-	call Function17e40f
-	ret
-; 17dc96
-
-MenuData2_17dc96:
-	db $e0 ; flags
-	db 2
-	db "はい@"
-	db "いいえ@"
-; 17dc9f
-
-Function17dc9f: ; 17dc9f
-	call Function17e415
-	call Function17e41e
-	call RotateFourPalettesLeft
-	ret
-; 17dca9
-
-Function17dca9: ; 17dca9
-	call Function17e415
-	call Function17e41e
-
-Function17dcaf:
-	ld a, $5
-	ld [rSVBK], a
-	ld hl, UnknBGPals
-	ld de, $8
-	ld c, $8
-.asm_17dcbb
-	push hl
-	ld a, $ff
-	ld [hli], a
-	ld a, $7f
-	ld [hl], a
-	pop hl
-	add hl, de
-	dec c
-	jr nz, .asm_17dcbb
-	call RotateThreePalettesRight
-	ld a, $4
-	ld [rSVBK], a
-	ret
-; 17dccf
-
-Function17dccf: ; 17dccf
-	call Function17e415
-	push hl
-	ld a, [wcd4b]
-	ld l, a
-	ld a, [wcd4c]
-	ld h, a
-	ld a, [wcd2e]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld c, a
-	ld a, [hl]
-	ld b, a
-	call Function17e43d
-	call Function17e41e
-.asm_17dced
-	ld a, [wcd78]
-	ld l, a
-	ld a, [wcd79]
-	ld h, a
-	ld a, [hl]
-	cp $ff
-	jr z, .asm_17dd0d
-.crash_loop
-	cp $31
-	jr nc, .crash_loop
-	call Function17d711
-	ld a, [wcd77]
-	bit 7, a
-	jr nz, .asm_17dd0d
-	and a
-	jr z, .asm_17dd11
-	jr .asm_17dced
-
-.asm_17dd0d
-	pop hl
-	jp Function17e41e
-
-.asm_17dd11
-	pop hl
-	ret
-; 17dd13
-
-Function17dd13: ; 17dd13
-	call Function17e415
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	call Function17e41e
-	call Function17e447
-	push hl
-	hlcoord 0, 0
-	add hl, bc
-	push hl
-	pop bc
-	pop hl
-	call PlaceHLTextAtBC
-	ret
-; 17dd30
-
-Function17dd30: ; 17dd30
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld b, $0
-	ld a, [hli]
-	push af
-	call Function17e41e
-	pop af
-	hlcoord 0, 0
-	add hl, de
-	call Function17e600
-	ret
-; 17dd49
-
-Function17dd49: ; 17dd49
-	call Function17e415
-	ld de, $c708
-	ld bc, $a
-	call CopyBytes
-	ld a, [$c711]
-	ld c, a
-	ld b, $0
-	call CopyBytes
-	ld a, [$c70a]
-	cp $c0
-	jr c, .sram
-	ld a, [$c708]
-	ld [rSVBK], a
-	jr .got_bank
-
-.sram
-	ld a, [$c708]
-	call GetSRAMBank
-
-.got_bank
-	ld a, [$c709]
-	ld l, a
-	ld a, [$c70a]
-	ld h, a
-	ld de, $c688
-	ld a, [$c711]
-	ld c, a
-	ld b, $0
-	call CopyBytes
-	ld a, [$c70a]
-	cp $c0
-	jr c, .close_sram
-	ld a, $4
-	ld [rSVBK], a
-	jr .exited_bank
-
-.close_sram
-	call CloseSRAM
-
-.exited_bank
-	ld a, [$c711]
-	ld c, a
-	ld hl, $c712
-	ld de, $c688
-.loop
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	jr z, .next
-	jr c, .load
-	jr .load2
-
-.next
-	dec c
-	jr nz, .loop
-	ld a, [$c70d]
-	ld l, a
-	ld a, [$c70e]
-	ld h, a
-	jr .done
-
-.load2
-	ld a, [$c70f]
-	ld l, a
-	ld a, [$c710]
-	ld h, a
-	jr .done
-
-.load
-	ld a, [$c70b]
-	ld l, a
-	ld a, [$c70c]
-	ld h, a
-
-.done
-	call Function17e40f
-	ret
-; 17ddcd
-
-Function17ddcd: ; 17ddcd
-	call Function17e415
-	ld de, $c708
-	ld bc, $8
-	call CopyBytes
-	ld a, [$c70a]
-	cp $c0
-	jr c, .asm_17dde7
-	ld a, [$c708]
-	ld [rSVBK], a
-	jr .asm_17dded
-
-.asm_17dde7
-	ld a, [$c708]
-	call GetSRAMBank
-
-.asm_17dded
-	ld a, [$c709]
-	ld e, a
-	ld a, [$c70a]
-	ld d, a
-	ld a, [de]
-	ld [$c710], a
-	ld a, [$c70b]
-	ld c, a
-	ld b, $0
-	ld a, [$c70a]
-	cp $c0
-	jr c, .asm_17de0c
-	ld a, $4
-	ld [rSVBK], a
-	jr .asm_17de0f
-
-.asm_17de0c
-	call CloseSRAM
-
-.asm_17de0f
-	push hl
-	ld hl, Unknown_17da8c
-	add hl, bc
-	ld a, [hl]
-	ld hl, $c710
-	and [hl]
-	pop hl
-	jr nz, .asm_17de26
-	ld a, [$c70e]
-	ld l, a
-	ld a, [$c70f]
-	ld h, a
-	jr .asm_17de2e
-
-.asm_17de26
-	ld a, [$c70c]
-	ld l, a
-	ld a, [$c70d]
-	ld h, a
-
-.asm_17de2e
-	call Function17e40f
-	ret
-; 17de32
-
-Function17de32: ; 17de32
-	call Function17e415
-	ld de, $c708
-	ld bc, $9
-	call CopyBytes
-	ld a, [$c710]
-	ld c, a
-	ld b, $0
-	call CopyBytes
-	ld a, $6
-	call GetSRAMBank
-	call Function17f4f6
-	ld a, [$c708]
-	ld e, a
-	ld a, [$c709]
-	ld d, a
-	add hl, de
-	ld e, l
-	ld d, h
-	ld a, [$c710]
-	ld c, a
-	ld hl, $c711
-.asm_17de61
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	jr z, .asm_17de6b
-	jr c, .asm_17de82
-	jr .asm_17de78
-
-.asm_17de6b
-	dec c
-	jr nz, .asm_17de61
-	ld a, [$c70c]
-	ld l, a
-	ld a, [$c70d]
-	ld h, a
-	jr .asm_17de8a
-
-.asm_17de78
-	ld a, [$c70e]
-	ld l, a
-	ld a, [$c70f]
-	ld h, a
-	jr .asm_17de8a
-
-.asm_17de82
-	ld a, [$c70a]
-	ld l, a
-	ld a, [$c70b]
-	ld h, a
-
-.asm_17de8a
-	call CloseSRAM
-	call Function17e40f
-	ret
-; 17de91
-
-Function17de91: ; 17de91
-	call Function17e415
-	ld de, $c708
-	ld bc, $7
-	call CopyBytes
-	ld a, $6
-	call GetSRAMBank
-	call Function17f4f6
-	ld a, [$c708]
-	ld e, a
-	ld a, [$c709]
-	ld d, a
-	add hl, de
-	ld e, l
-	ld d, h
-	ld a, [$c70a]
-	ld c, a
-	ld b, $0
-	ld hl, Unknown_17da8c
-	add hl, bc
-	ld a, [hl]
-	ld l, e
-	ld h, d
-	and [hl]
-	jr nz, .asm_17deca
-	ld a, [$c70d]
-	ld l, a
-	ld a, [$c70e]
-	ld h, a
-	jr .asm_17ded2
-
-.asm_17deca
-	ld a, [$c70b]
-	ld l, a
-	ld a, [$c70c]
-	ld h, a
-
-.asm_17ded2
-	call CloseSRAM
-	call Function17e40f
-	ret
-; 17ded9
-
-Function17ded9: ; 17ded9
-	call Function17e415
-	ld de, $c708
-	ld bc, $1f
-	call CopyBytes
-	call Function17e32b
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld hl, $c708
-	ld a, [hli]
-	ld [CurPartySpecies], a
-	ld [TempEnemyMonSpecies], a
-	ld a, [hli]
-	ld [CurPartyLevel], a
-	ld a, [hli]
-	ld b, a
-	ld a, [PartyCount]
-	cp $6
-	jp nc, Function17e026
-	xor a
-	ld [MonType], a
-	push hl
-	push bc
-	predef TryAddMonToParty
-	callba SetCaughtData
-	pop bc
-	pop hl
-	bit 1, b
-	jr z, .asm_17df33
-	push bc
-	push hl
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMonNicknames
-	call SkipNames
-	ld d, h
-	ld e, l
-	pop hl
-	call CopyBytes
-	pop bc
-	jr .asm_17df37
-
-.asm_17df33
-	ld de, $6
-	add hl, de
-
-.asm_17df37
-	bit 2, b
-	jr z, .asm_17df5a
-	push bc
-	push hl
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMonOT
-	call SkipNames
-	ld d, h
-	ld e, l
-	pop hl
-	call CopyBytes
-	ld a, [hli]
-	ld b, a
-	push hl
-	callba SetGiftPartyMonCaughtData
-	pop hl
-	pop bc
-	jr .asm_17df5e
-
-.asm_17df5a
-	ld de, $7
-	add hl, de
-
-.asm_17df5e
-	bit 3, b
-	jr z, .asm_17df79
-	push bc
-	push hl
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMon1ID
-	call GetPartyLocation
-	ld d, h
-	ld e, l
-	pop hl
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	pop bc
-	jr .asm_17df7b
-
-.asm_17df79
-	inc hl
-	inc hl
-
-.asm_17df7b
-	bit 4, b
-	jr z, .asm_17dfd0
-	push bc
-	push hl
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMon1DVs
-	call GetPartyLocation
-	ld d, h
-	ld e, l
-	pop hl
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	push hl
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMon1Species
-	call GetPartyLocation
-	ld a, [hl]
-	ld [CurSpecies], a
-	call GetBaseData
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMon1MaxHP
-	call GetPartyLocation
-	ld d, h
-	ld e, l
-	push hl
-	ld b, $0
-	callba CalcPkmnStats
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMon1HP
-	call GetPartyLocation
-	ld d, h
-	ld e, l
-	pop hl
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hl]
-	ld [de], a
-	pop hl
-	pop bc
-	jr .asm_17dfd2
-
-.asm_17dfd0
-	inc hl
-	inc hl
-
-.asm_17dfd2
-	bit 5, b
-	jr z, .asm_17dfea
-	push bc
-	push hl
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMon1Item
-	call GetPartyLocation
-	ld d, h
-	ld e, l
-	pop hl
-	ld a, [hli]
-	ld [de], a
-	pop bc
-	jr .asm_17dfeb
-
-.asm_17dfea
-	inc hl
-
-.asm_17dfeb
-	bit 6, b
-	jr z, .asm_17e01f
-	push bc
-	push hl
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMon1Moves
-	call GetPartyLocation
-	ld d, h
-	ld e, l
-	pop hl
-	push de
-	ld bc, $4
-	call CopyBytes
-	pop de
-	push hl
-	push de
-	ld a, [PartyCount]
-	dec a
-	ld hl, PartyMon1PP
-	call GetPartyLocation
-	ld d, h
-	ld e, l
-	pop hl
-	predef FillPP
-	pop hl
-	pop bc
-	jp asm_17e0ee
-
-.asm_17e01f
-	ld de, $4
-	add hl, de
-	jp asm_17e0ee
-; 17e026
-
-Function17e026: ; 17e026
-	ld a, BANK(sBoxCount)
-	call GetSRAMBank
-	ld a, [sBoxCount]
-	call CloseSRAM
-	cp $14
-	jp nc, .asm_17e0ea
-	bit 0, b
-	jp z, .asm_17e0ea
-	push bc
-	push hl
-	callba LoadEnemyMon
-	callba SentPkmnIntoBox
-	callba SetBoxMonCaughtData
-	pop hl
-	pop bc
-	ld a, BANK(sBoxMonNicknames)
-	call GetSRAMBank
-	bit 1, b
-	jr z, .asm_17e067
-	push bc
-	ld bc, $b
-	ld de, sBoxMonNicknames
-	call CopyBytes
-	pop bc
-	jr .asm_17e06b
-
-.asm_17e067
-	ld de, $6
-	add hl, de
-
-.asm_17e06b
-	bit 2, b
-	jr z, .asm_17e08e
-	push bc
-	ld bc, $6
-	ld de, sBoxMonOT
-	call CopyBytes
-	ld a, [hli]
-	ld b, a
-	push hl
-	call CloseSRAM
-	callba SetGiftBoxMonCaughtData
-	ld a, $1
-	call GetSRAMBank
-	pop hl
-	pop bc
-	jr .asm_17e092
-
-.asm_17e08e
-	ld de, $7
-	add hl, de
-
-.asm_17e092
-	bit 3, b
-	jr z, .asm_17e0a2
-	push bc
-	ld de, sBoxMon1ID
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	pop bc
-	jr .asm_17e0a4
-
-.asm_17e0a2
-	inc hl
-	inc hl
-
-.asm_17e0a4
-	bit 4, b
-	jr z, .asm_17e0b4
-	push bc
-	ld de, sBoxMon1DVs
-	ld a, [hli]
-	ld [de], a
-	inc de
-	ld a, [hli]
-	ld [de], a
-	pop bc
-	jr .asm_17e0b6
-
-.asm_17e0b4
-	inc hl
-	inc hl
-
-.asm_17e0b6
-	bit 5, b
-	ld a, [hli]
-	jr z, .asm_17e0be
-	ld [sBoxMon1Item], a
-
-.asm_17e0be
-	bit 6, b
-	jr z, .asm_17e0e1
-	push bc
-	ld de, sBoxMon1Moves
-	ld bc, $4
-	call CopyBytes
-	push hl
-	ld hl, sBoxMon1Moves
-	ld de, sBoxMon1PP
-	predef FillPP
-	call CloseSRAM
-	pop hl
-	pop bc
-	inc hl
-	inc hl
-	jr asm_17e0ee
-
-.asm_17e0e1
-	call CloseSRAM
-	ld de, $6
-	add hl, de
-	jr asm_17e0ee
-
-.asm_17e0ea
-	ld bc, $1a
-	add hl, bc
-
-asm_17e0ee
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	pop af
-	ld [rSVBK], a
-	push hl
-	call Function17e349
-	pop hl
-	call Function17e40f
-	ret
-; 17e0fd
-
-Function17e0fd: ; 17e0fd
-	call Function17e415
-	ld de, $c708
-	ld bc, $6
-	call CopyBytes
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld hl, $c708
-	ld a, [hli]
-	ld [CurItem], a
-	ld a, [hli]
-	ld [wItemQuantityChangeBuffer], a
-	push hl
-	ld hl, NumItems
-	call ReceiveItem
-	pop hl
-	jr c, .asm_17e127
-	inc hl
-	inc hl
-
-.asm_17e127
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld h, a
-	ld l, b
-	pop af
-	ld [rSVBK], a
-	call Function17e40f
-	ret
-; 17e133
-
-Function17e133: ; 17e133
-	call Function17e415
-	ld de, $c708
-	ld bc, $5
-	call CopyBytes
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld hl, $c708
-	ld a, [hli]
-	ld [ScriptVar], a
-	push hl
-	callba MobileCheckOwnMonAnywhere
-	pop hl
-	jr c, .asm_17e159
-	inc hl
-	inc hl
-
-.asm_17e159
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld h, a
-	ld l, b
-	pop af
-	ld [rSVBK], a
-	call Function17e40f
-	ret
-; 17e165
-
-Function17e165: ; 17e165
-	call Function17e415
-	ld de, $c708
-	ld bc, $5
-	call CopyBytes
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	ld hl, $c708
-	ld a, [hli]
-	ld [CurItem], a
-	push hl
-	ld hl, NumItems
-	call CheckItem
-	pop hl
-	jr c, .asm_17e195
-	push hl
-	ld hl, PCItems
-	call CheckItem
-	pop hl
-	jr c, .asm_17e195
-	inc hl
-	inc hl
-
-.asm_17e195
-	ld a, [hli]
-	ld b, a
-	ld a, [hl]
-	ld h, a
-	ld l, b
-	pop af
-	ld [rSVBK], a
-	call Function17e40f
-	ret
-; 17e1a1
-
-Function17e1a1: ; 17e1a1
-	call Function17e415
-	ld de, $c708
-	ld bc, $d
-	call CopyBytes
-	ld a, [$c70a]
-	cp $c0
-	jr c, .asm_17e1bb
-	ld a, [$c708]
-	ld [rSVBK], a
-	jr .asm_17e1c1
-
-.asm_17e1bb
-	ld a, [$c708]
-	call GetSRAMBank
-
-.asm_17e1c1
-	ld a, [$c709]
-	ld l, a
-	ld a, [$c70a]
-	ld h, a
-	ld de, $c608
-	ld a, [$c70b]
-	ld c, a
-	ld b, $0
-	call CopyBytes
-	ld a, [$c70a]
-	cp $c0
-	jr c, .asm_17e1e2
-	ld a, $4
-	ld [rSVBK], a
-	jr .asm_17e1e5
-
-.asm_17e1e2
-	call CloseSRAM
-
-.asm_17e1e5
-	ld a, [$c70e]
-	cp $c0
-	jr c, .asm_17e1f3
-	ld a, [$c70c]
-	ld [rSVBK], a
-	jr .asm_17e1f9
-
-.asm_17e1f3
-	ld a, [$c70c]
-	call GetSRAMBank
-
-.asm_17e1f9
-	ld a, [$c70d]
-	ld l, a
-	ld a, [$c70e]
-	ld h, a
-	ld de, $c688
-	ld a, [$c70b]
-	ld c, a
-	ld b, $0
-	call CopyBytes
-	ld a, [$c70e]
-	cp $c0
-	jr c, .asm_17e21a
-	ld a, $4
-	ld [rSVBK], a
-	jr .asm_17e21d
-
-.asm_17e21a
-	call CloseSRAM
-
-.asm_17e21d
-	ld a, [$c70b]
-	ld c, a
-	ld hl, $c688
-	ld de, $c608
-.asm_17e227
-	ld a, [de]
-	inc de
-	cp [hl]
-	inc hl
-	jr z, .asm_17e231
-	jr c, .asm_17e23e
-	jr .asm_17e248
-
-.asm_17e231
-	dec c
-	jr nz, .asm_17e227
-	ld a, [$c711]
-	ld l, a
-	ld a, [$c712]
-	ld h, a
-	jr .asm_17e250
-
-.asm_17e23e
-	ld a, [$c70f]
-	ld l, a
-	ld a, [$c710]
-	ld h, a
-	jr .asm_17e250
-
-.asm_17e248
-	ld a, [$c712 + 1]
-	ld l, a
-	ld a, [$c712 + 2]
-	ld h, a
-
-.asm_17e250
-	call Function17e40f
-	ret
-; 17e254
-
-Function17e254: ; 17e254
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld [de], a
-	call Function17e41e
-	ret
-; 17e261
-
-Function17e261: ; 17e261
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [de]
-	add [hl]
-	ld [de], a
-	inc hl
-	call Function17e41e
-	ret
-; 17e270
-
-Function17e270: ; 17e270
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [de]
-	sub [hl]
-	ld [de], a
-	inc hl
-	call Function17e41e
-	ret
-; 17e27f
-
-Function17e27f: ; 17e27f
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	call Function17e41e
-	ld l, c
-	ld h, b
-	ld a, [de]
-	add [hl]
-	ld [de], a
-	ret
-; 17e293
-
-Function17e293: ; 17e293
-	call Function17e415
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hli]
-	ld b, a
-	call Function17e41e
-	ld l, c
-	ld h, b
-	ld a, [de]
-	sub [hl]
-	ld [de], a
-	ret
-; 17e2a7
-
-Function17e2a7: ; 17e2a7
-	call Function17e415
-	call Function17e41e
-	call Function17e32b
-	xor a
-	ld [wcf66], a
-	callba Function118233
-	ld de, GFX_17eb7e
-	ld hl, VTiles2 tile $60
-	lb bc, BANK(GFX_17eb7e), 1
-	call Get2bpp
-	ld a, [wc300]
-	and a
-	jr z, .asm_17e2d8
-	cp $a
-	jr z, .asm_17e2f7
-	cp $b
-	jr z, .asm_17e300
-	call Function17e309
-	ret
-
-.asm_17e2d8
-	call Function17d60b
-	call Function17e349
-	xor a
-	ld [wcd7a], a
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $aa73
-	ld de, $aa7f
-	ld bc, $c
-	call CopyBytes
-	call CloseSRAM
-	ret
-
-.asm_17e2f7
-	call Function17e349
-	ld a, $1
-	ld [wcd7a], a
-	ret
-
-.asm_17e300
-	call Function17e349
-	ld a, $2
-	ld [wcd7a], a
-	ret
-; 17e309
-
-Function17e309: ; 17e309
-	ld a, $2
-	ld [wc303], a
-	call Function17dcaf
-	call ClearScreen
-	call Function17e349
-	call Function17d5f6
-	callba DisplayMobileError
-	call Function17e349
-	call Function17dcaf
-	xor a
-	ld [wcd77], a
-	ret
-; 17e32b
-
-Function17e32b: ; 17e32b
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $c608
-	ld de, $b0b1
-	ld bc, $40
-	call CopyBytes
-	ld hl, BGMapBuffer
-	ld bc, $5b
-	call CopyBytes
-	call CloseSRAM
-	ret
-; 17e349
-
-Function17e349: ; 17e349
-	ld a, $5
-	call GetSRAMBank
-	ld hl, $b0b1
-	ld de, $c608
-	ld bc, $40
-	call CopyBytes
-	ld de, BGMapBuffer
-	ld bc, $5b
-	call CopyBytes
-	call CloseSRAM
-	ret
-; 17e367
-
-Function17e367: ; 17e367
-	call Function17e415
-	call Function17e41e
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	callba SaveGameData_
-	pop af
-	ld [rSVBK], a
-	ret
-; 17e37e
-
-Function17e37e: ; 17e37e
-	call Function17e415
-	call Function17e41e
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	callba SaveAfterLinkTrade
-	pop af
-	ld [rSVBK], a
-	ret
-; 17e395
-
-Function17e395: ; 17e395
-	call Function17e415
-	call Function17e41e
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	callba SaveBox
-	pop af
-	ld [rSVBK], a
-	ret
-; 17e3ac
-
-Function17e3ac: ; 17e3ac
-	call Function17e415
-	call Function17e41e
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	callba SaveChecksum
-	pop af
-	ld [rSVBK], a
-	ret
-; 17e3c3
-
-Function17e3c3: ; 17e3c3
-	call Function17e415
-	call Function17e41e
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-	callba UpdateTrainerRankingsChecksum2
-	callba BackupMobileEventIndex
-	pop af
-	ld [rSVBK], a
-	ret
-; 17e3e0
-
-Function17e3e0: ; 17e3e0
-	call Function17e415
-	ld a, [hli]
-	ld c, a
-	call Function17e41e
-	ld a, $1
-	ld [hBGMapMode], a
-	call DelayFrames
-	ret
-; 17e3f0
-
-Function17e3f0: ; 17e3f0
-	call Function17e415
-	call Function17e41e
-.asm_17e3f6
-	call JoyTextDelay
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and $1
-	ret nz
-	ld a, [hl]
-	and $2
-	ret nz
-	call WaitBGMap
-	jr .asm_17e3f6
-; 17e409
-
-Function17e409: ; 17e409
-	ld hl, wcd77
-	set 7, [hl]
-	ret
-; 17e40f
-
-Function17e40f: ; 17e40f
-	ld de, UnknBGPals
-	add hl, de
-	jr Function17e41e
-
-Function17e415:
-	ld a, [wcd78]
-	ld l, a
-	ld a, [wcd79]
-	ld h, a
-	inc hl
-
-Function17e41e:
-	ld a, l
-	ld [wcd78], a
-	ld a, h
-	ld [wcd79], a
-	ret
-; 17e427
-
-Function17e427: ; 17e427
-	ld hl, hJoyPressed
-	ld a, [hl]
-	and $1
-	jr nz, .asm_17e432
-	and $2
-	ret z
-
-.asm_17e432
-	ld a, $3
-	ld [wcd77], a
-	ret
-; 17e438
-
-Function17e438: ; 17e438
-	ld hl, wcd77
-	inc [hl]
-	ret
-; 17e43d
-
-Function17e43d: ; 17e43d
-	ld a, [BGMapBuffer]
-	ld l, a
-	ld a, [wcd21]
-	ld h, a
-	add hl, bc
-	ret
-; 17e447
-
-Function17e447: ; 17e447
-	ld a, [BGMapBuffer]
-	ld l, a
-	ld a, [wcd21]
-	ld h, a
-	add hl, de
-	ret
-; 17e451
-
-Function17e451: ; 17e451
-	ld a, [wcd42]
-	and a
-	ret z
-	call Function17e51b
-	call Function17e4dd
-	ld a, [wcd2e]
-	push af
-	ld a, [wcd49]
-	ld l, a
-	ld a, [wcd4a]
-	ld h, a
-	ld a, [wcd2f]
-	ld [wcd2e], a
-	ld c, a
-	ld b, $0
-	add hl, bc
-	add hl, bc
-	push hl
-	hlcoord 0, 0
-	ld bc, $14
-	ld a, [wcd23]
-	call AddNTimes
-	ld a, [CreditsTimer]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	pop bc
-	ld a, [wMobileCommsJumptableIndex]
-.asm_17e48b
-	push af
-	push hl
-	ld a, [wcd24]
-.asm_17e490
-	push af
-	push hl
-	ld a, [bc]
-	inc bc
-	ld e, a
-	ld a, [bc]
-	inc bc
-	ld d, a
-	push bc
-	push hl
-	ld a, [BGMapBuffer]
-	ld l, a
-	ld a, [wcd21]
-	ld h, a
-	add hl, de
-	push hl
-	pop de
-	pop hl
-	call PlaceString
-	pop bc
-	pop hl
-	ld a, [wcd26]
-	ld e, a
-	ld d, $0
-	add hl, de
-	ld a, [wcd2e]
-	inc a
-	ld [wcd2e], a
-	ld e, a
-	ld a, [wcd42]
-	cp e
-	jr z, .asm_17e4d5
-	pop af
-	dec a
-	jr nz, .asm_17e490
-	pop hl
-	ld a, [wcd27]
-	ld de, $14
-.asm_17e4cb
-	add hl, de
-	dec a
-	jr nz, .asm_17e4cb
-	pop af
-	dec a
-	jr nz, .asm_17e48b
-	jr .asm_17e4d8
-
-.asm_17e4d5
-	pop af
-	pop hl
-	pop af
-
-.asm_17e4d8
-	pop af
-	ld [wcd2e], a
-	ret
-; 17e4dd
-
-Function17e4dd: ; 17e4dd
-	ld a, [wcd2c]
-	and $1
-	ret z
-	ld a, [wcd29]
-	hlcoord 0, 0
-	ld bc, $14
-	call AddNTimes
-	ld a, [wcd28]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [wcd2f]
-	and a
-	jr z, .asm_17e4ff
-	ld a, $61
-	ld [hl], a
-
-.asm_17e4ff
-	ld a, [wcd2a]
-	ld bc, $14
-	call AddNTimes
-	ld a, [wcd42]
-	ld c, a
-	ld a, [wcd2e]
-	ld b, a
-	ld a, [wcd24]
-	add b
-	cp c
-	ret z
-	ret nc
-	ld a, $ee
-	ld [hl], a
-	ret
-; 17e51b
-
-Function17e51b: ; 17e51b
-	ld a, [wcd28]
-	ld hl, CreditsTimer
-	sub [hl]
-	inc a
-	ld [wcd4f], a
-	hlcoord 0, 0
-	ld bc, $14
-	ld a, [wcd23]
-	dec a
-	call AddNTimes
-	ld a, [CreditsTimer]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [wMobileCommsJumptableIndex]
-	ld c, a
-	ld a, [wcd27]
-	call SimpleMultiply
-.asm_17e544
-	push af
-	push hl
-	ld a, [wcd4f]
-	ld c, a
-	ld b, $0
-	ld a, $7f
-	call ByteFill
-	pop hl
-	ld bc, $14
-	add hl, bc
-	pop af
-	dec a
-	jr nz, .asm_17e544
-	ret
-; 17e55b
-
-Function17e55b: ; 17e55b
-	ld a, [wcd42]
-	and a
-	ret z
-	ld a, $ed
-	call Function17e571
-	ret
-; 17e566
-
-Function17e566: ; 17e566
-	ld a, [wcd42]
-	and a
-	ret z
-	ld a, $7f
-	call Function17e571
-	ret
-; 17e571
-
-Function17e571: ; 17e571
-	push af
-	hlcoord 0, 0
-	ld bc, $14
-	ld a, [wcd23]
-	call AddNTimes
-	ld a, [CreditsTimer]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	dec hl
-	push hl
-	ld a, [wcd31]
-	dec a
-	ld c, a
-	ld a, [wcd27]
-	call SimpleMultiply
-	ld l, $0
-	ld h, l
-	ld bc, $14
-	call AddNTimes
-	ld a, [wcd30]
-	dec a
-	ld c, a
-	ld a, [wcd26]
-	call SimpleMultiply
-	ld c, a
-	ld b, $0
-	add hl, bc
-	pop bc
-	add hl, bc
-	pop af
-	ld [hl], a
-	ret
-; 17e5af
-
-Function17e5af: ; 17e5af
-	ld a, [wcd2c]
-	and $2
-	ret z
-	ld a, [wcd43]
-	ld l, a
-	ld a, [wMobileInactivityTimerMinutes]
-	ld h, a
-	bccoord 0, 0
-	add hl, bc
-	ld bc, $ffec
-	add hl, bc
-	ld a, [wMobileInactivityTimerSeconds]
-	ld c, a
-	ld b, $0
-	ld a, [wMobileInactivityTimerFrames]
-	call Function17e600
-	ld a, [wcd2e]
-	ld c, a
-	ld b, $0
-	ld a, [wcd4d]
-	ld l, a
-	ld a, [wcd4e]
-	ld h, a
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [BGMapBuffer]
-	ld l, a
-	ld a, [wcd21]
-	ld h, a
-	add hl, de
-	push hl
-	pop de
-	ld a, [wcd43]
-	ld l, a
-	ld a, [wMobileInactivityTimerMinutes]
-	ld h, a
-	bccoord 0, 0
-	add hl, bc
-	call PlaceString
-	ret
-; 17e600
-
-Function17e600: ; 17e600
-.asm_17e600
-	push af
-	push hl
-	push bc
-	ld a, $7f
-	call ByteFill
-	pop bc
-	pop hl
-	ld de, $14
-	add hl, de
-	pop af
-	dec a
-	jr nz, .asm_17e600
-	ret
-; 17e613
-
-Function17e613: ; 17e613
-	push hl
-	hlcoord 0, 0
-	ld bc, $14
-	ld a, [de]
-	inc de
-	push af
-	ld a, [de]
-	inc de
-	and a
-.asm_17e620
-	jr z, .asm_17e626
-	add hl, bc
-	dec a
-	jr .asm_17e620
-
-.asm_17e626
-	pop af
-	ld c, a
-	ld b, $0
-	add hl, bc
-	push hl
-	ld a, [wcd53]
-	ld [hli], a
-	ld a, [de]
-	inc de
-	dec a
-	dec a
-	jr z, .asm_17e63f
-	ld c, a
-	ld a, [wcd53]
-	inc a
-.asm_17e63b
-	ld [hli], a
-	dec c
-	jr nz, .asm_17e63b
-
-.asm_17e63f
-	ld a, [wcd53]
-	add $2
-	ld [hl], a
-	pop hl
-	ld bc, $14
-	add hl, bc
-	ld a, [de]
-	dec de
-	dec a
-	dec a
-	jr z, .asm_17e674
-	ld b, a
-.asm_17e651
-	push hl
-	ld a, [wcd53]
-	add $3
-	ld [hli], a
-	ld a, [de]
-	dec a
-	dec a
-	jr z, .asm_17e664
-	ld c, a
-	ld a, $7f
-.asm_17e660
-	ld [hli], a
-	dec c
-	jr nz, .asm_17e660
-
-.asm_17e664
-	ld a, [wcd53]
-	add $4
-	ld [hl], a
-	pop hl
-	push bc
-	ld bc, $14
-	add hl, bc
-	pop bc
-	dec b
-	jr nz, .asm_17e651
-
-.asm_17e674
-	ld a, [wcd53]
-	add $5
-	ld [hli], a
-	ld a, [de]
-	dec a
-	dec a
-	jr z, .asm_17e689
-	ld c, a
-	ld a, [wcd53]
-	add $6
-.asm_17e685
-	ld [hli], a
-	dec c
-	jr nz, .asm_17e685
-
-.asm_17e689
-	ld a, [wcd53]
-	add $7
-	ld [hl], a
-	pop hl
-	ret
-; 17e691
-
-Function17e691: ; 17e691
-	push hl
-	ld hl, NULL
-	ld bc, $14
-	ld a, [de]
-	inc de
-	push af
-	ld a, [de]
-	inc de
-	inc de
-	and a
-.asm_17e69f
-	jr z, .asm_17e6a5
-	add hl, bc
-	dec a
-	jr .asm_17e69f
-
-.asm_17e6a5
-	pop af
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	dec de
-.asm_17e6ac
-	push af
-	push hl
-	ld a, [de]
-.asm_17e6af
-	push af
-	push hl
-	push hl
-	bccoord 0, 0
-	add hl, bc
-	ld a, [hl]
-	cp $7f
-	jr z, .asm_17e6c2
-	ld a, [wcd53]
-	add $8
-	jr .asm_17e6c7
-
-.asm_17e6c2
-	ld a, [wcd53]
-	jr .asm_17e6c7
-
-.asm_17e6c7
-	pop hl
-	bccoord 0, 0, AttrMap
-	add hl, bc
-	ld [hl], a
-	pop hl
-	inc hl
-	pop af
-	dec a
-	jr nz, .asm_17e6af
-	pop hl
-	ld bc, $14
-	add hl, bc
-	pop af
-	dec a
-	jr nz, .asm_17e6ac
-	pop hl
-	ret
-; 17e6de
-
-Function17e6de: ; 17e6de
-	push af
-	ld a, [$c708]
-	ld l, a
-	ld a, [$c709]
-	ld h, a
-	decoord 0, 0, AttrMap
-	add hl, de
-	pop af
-	ld b, $7
-.asm_17e6ee
-	push hl
-	ld c, $7
-.asm_17e6f1
-	ld [hli], a
-	dec c
-	jr nz, .asm_17e6f1
-	pop hl
-	ld de, $14
-	add hl, de
-	dec b
-	jr nz, .asm_17e6ee
-	ret
-; 17e6fe
-
-
-PokemonNewsGFX: ; 17e6fe
-INCBIN "gfx/mobile/pokemon_news.2bpp"
-
-GFX_17eb7e:
-INCBIN "gfx/unknown/17eb7e.2bpp"
-
-TileAttrmap_17eb8e:
-INCBIN "gfx/unknown/17eb8e.attrmap"
-
-Palette_17eff6:
-	RGB 24,  9,  8
-	RGB  4,  9, 18
-	RGB 18, 18, 12
-	RGB  0,  0,  0
-	RGB 24, 24, 18
-	RGB 18, 18, 12
-	RGB  4,  9, 18
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 23, 11, 10
-	RGB 13,  6,  5
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 15, 25,  5
-	RGB 10, 20,  0
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 20, 28, 20
-	RGB 10, 18, 15
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 22, 22, 12
-	RGB 17, 12,  5
-	RGB  0,  0,  0
-	RGB  5,  5, 16
-	RGB  8, 19, 28
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 27, 24,  0
-	RGB 24, 16,  3
-	RGB  0,  0,  0
-
-
-Function17f036:: ; 17f036
-	ld a, $6
-	call GetSRAMBank
-	inc de
-.asm_17f03c
-	call Function17f047
-	jr c, .asm_17f043
-	jr .asm_17f03c
-
-.asm_17f043
-	call CloseSRAM
-	ret
-; 17f047
-
-Function17f047: ; 17f047
-	ld a, [de]
-	inc de
-	cp $50
-	jr z, .finished
-	cp $10
-	jr nc, .finished
-	dec a
-	push de
-	ld e, a
-	ld d, 0
-	ld hl, .Jumptable
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld h, [hl]
-	ld l, a
-	jp hl
-
-.finished
-	scf
-	ret
-; 17f061
-
-.Jumptable: ; 17f061
-	dw Function17f081 ; 0
-	dw Function17f0f8 ; 1
-	dw Function17f154 ; 2
-	dw Function17f181 ; 3
-	dw Function17f1d0 ; 4
-	dw Function17f220 ; 5
-	dw Function17f27b ; 6
-	dw Function17f2cb ; 7
-	dw Function17f2ff ; 8
-	dw Function17f334 ; 9
-	dw Function17f382 ; a
-	dw Function17f3c9 ; b
-	dw Function17f3f0 ; c
-	dw Function17f41d ; d
-	dw Function17f44f ; e
-	dw Function17f44f ; f
-; 17f081
-
-Function17f081: ; 17f081
-	pop hl
-	call Function17f524
-	jr c, .asm_17f09f
-	ld de, 4
-	add hl, de
-	ld a, [hli]
-	inc hl
-	inc hl
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	cp $50
-	jr z, .asm_17f09d
-	and a
-	ret
-
-.asm_17f09d
-	scf
-	ret
-
-.asm_17f09f
-	push bc
-	ld de, wcd54
-	ld bc, 7
-	call CopyBytes
-	pop bc
-	push hl
-	push bc
-	call Function17f4f6
-	pop bc
-	ld a, [wcd54]
-	ld e, a
-	ld a, [wcd55]
-	ld d, a
-	add hl, de
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	push hl
-	ld a, [wcd56]
-	ld b, a
-	ld a, [wcd57]
-	ld c, a
-	call MobilePrintNum
-	ld a, l
-	ld [wcd52], a
-	ld a, h
-	ld [wcd53], a
-	ld a, [wcd59]
-	and a
-	jr z, .asm_17f0ee
-	ld c, a
-	ld a, [wcd57]
-	inc a
-	ld b, a
-	ld e, l
-	ld d, h
-	dec de
-.asm_17f0e0
-	ld a, c
-	cp b
-	jr z, .asm_17f0ea
-	ld a, [de]
-	dec de
-	ld [hld], a
-	dec b
-	jr .asm_17f0e0
-
-.asm_17f0ea
-	ld a, [wcd5a]
-	ld [hl], a
-
-.asm_17f0ee
-	pop hl
-	ld a, [wcd58]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f0f8
-
-Function17f0f8: ; 17f0f8
-	pop hl
-	call Function17f524
-	jr c, .asm_17f114
-	ld de, $3
-	add hl, de
-	ld a, [hli]
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	cp $50
-	jr z, .asm_17f112
-	and a
-	ret
-
-.asm_17f112
-	scf
-	ret
-
-.asm_17f114
-	push bc
-	ld de, wcd54
-	ld bc, $4
-	call CopyBytes
-	pop bc
-	push hl
-	push bc
-	call Function17f4f6
-	ld a, [wcd54]
-	ld e, a
-	ld a, [wcd55]
-	ld d, a
-	add hl, de
-	ld de, $c608
-	ld a, [wcd56]
-	ld c, a
-	ld b, $0
-	call CopyBytes
-	ld a, $50
-	ld [de], a
-	pop hl
-	ld de, $c608
-	call PlaceString
-	ld a, c
-	ld [wcd52], a
-	ld a, b
-	ld [wcd53], a
-	ld a, [wcd57]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f154
-
-Function17f154: ; 17f154
-	pop hl
-	call Function17f524
-	jr c, .asm_17f167
-	inc hl
-	inc hl
-	ld e, l
-	ld d, h
-	ld a, [de]
-	cp $50
-	jr z, .asm_17f165
-	and a
-	ret
-
-.asm_17f165
-	scf
-	ret
-
-.asm_17f167
-	push bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	pop bc
-	push hl
-	push bc
-	call Function17f4f6
-	add hl, de
-	ld c, l
-	ld b, h
-	pop de
-	callba Function11c08f
-	ld c, l
-	ld b, h
-	pop de
-	and a
-	ret
-; 17f181
-
-Function17f181: ; 17f181
-	pop hl
-	call Function17f524
-	jr c, .asm_17f19d
-	ld de, $2
-	add hl, de
-	ld a, [hli]
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	cp $50
-	jr z, .asm_17f19b
-	and a
-	ret
-
-.asm_17f19b
-	scf
-	ret
-
-.asm_17f19d
-	push bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld [wcd54], a
-	pop bc
-	push hl
-	push bc
-	call Function17f4f6
-	add hl, de
-	ld a, [hl]
-	ld c, a
-	ld de, $c608
-	callba Function48c63
-	pop hl
-	ld de, $c608
-	call PlaceString
-	ld a, c
-	ld [wcd52], a
-	ld a, b
-	ld [wcd53], a
-	ld a, [wcd54]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f1d0
-
-Function17f1d0: ; 17f1d0
-	pop hl
-	call Function17f524
-	jr c, .asm_17f1ec
-	ld de, $2
-	add hl, de
-	ld a, [hli]
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	cp $50
-	jr z, .asm_17f1ea
-	and a
-	ret
-
-.asm_17f1ea
-	scf
-	ret
-
-.asm_17f1ec
-	push bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld [wcd54], a
-	pop bc
-	push hl
-	push bc
-	call Function17f4f6
-	add hl, de
-	ld a, [hl]
-	ld a, $1
-	ld [rSVBK], a
-	ld [wd265], a
-	call GetPokemonName
-	pop hl
-	call PlaceString
-	ld a, c
-	ld [wcd52], a
-	ld a, b
-	ld [wcd53], a
-	ld a, $4
-	ld [rSVBK], a
-	ld a, [wcd54]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f220
-
-Function17f220: ; 17f220
-	pop hl
-	call Function17f524
-	jr c, .asm_17f23c
-	ld de, $2
-	add hl, de
-	ld a, [hli]
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	cp $50
-	jr z, .asm_17f23a
-	and a
-	ret
-
-.asm_17f23a
-	scf
-	ret
-
-.asm_17f23c
-	push bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld [wcd54], a
-	pop bc
-	push hl
-	push bc
-	call Function17f4f6
-	add hl, de
-	ld a, [hl]
-	ld e, a
-	ld d, 0
-	ld hl, .Genders
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	pop hl
-	call PlaceString
-	ld a, c
-	ld [wcd52], a
-	ld a, b
-	ld [wcd53], a
-	ld a, [wcd54]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f26e
-
-.Genders: dw .Boy, .Girl
-.Boy:     db "Boy@"
-.Girl:    db "Girl@"
-
-Function17f27b: ; 17f27b
-	pop hl
-	call Function17f524
-	jr c, .asm_17f297
-	ld de, $2
-	add hl, de
-	ld a, [hli]
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld a, [de]
-	cp $50
-	jr z, .asm_17f295
-	and a
-	ret
-
-.asm_17f295
-	scf
-	ret
-
-.asm_17f297
-	push bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [hli]
-	ld [wcd54], a
-	pop bc
-	push hl
-	push bc
-	call Function17f4f6
-	add hl, de
-	ld a, [hl]
-	ld a, $1
-	ld [rSVBK], a
-	ld [wd265], a
-	call GetItemName
-	pop hl
-	call PlaceString
-	ld a, c
-	ld [wcd52], a
-	ld a, b
-	ld [wcd53], a
-	ld a, $4
-	ld [rSVBK], a
-	ld a, [wcd54]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f2cb
-
-Function17f2cb: ; 17f2cb
-	pop hl
-	push bc
-	ld a, [hli]
-	ld [wcd54], a
-	ld a, [hli]
-	ld [wcd55], a
-	ld a, [wcd2e]
-	inc a
-	ld [wcd56], a
-	pop bc
-	push hl
-	ld l, c
-	ld h, b
-	push hl
-	ld de, wcd56
-	ld b, $1
-	ld a, [wcd54]
-	ld c, a
-	call MobilePrintNum
-	ld a, l
-	ld [wcd52], a
-	ld a, h
-	ld [wcd53], a
-	pop hl
-	ld a, [wcd55]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f2ff
-
-Function17f2ff: ; 17f2ff
-	pop hl
-	push bc
-	ld a, [hli]
-	ld [wcd54], a
-	pop bc
-	push hl
-	push bc
-	ld a, $1
-	ld [rSVBK], a
-	ld hl, PlayerName
-	ld de, $c608
-	ld bc, $6
-	call CopyBytes
-	ld a, $4
-	ld [rSVBK], a
-	pop hl
-	ld de, $c608
-	call PlaceString
-	ld a, c
-	ld [wcd52], a
-	ld a, b
-	ld [wcd53], a
-	ld a, [wcd54]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f334
-
-Function17f334: ; 17f334
-	pop hl
-	push bc
-	ld a, [hli]
-	ld [wcd55], a
-	and $f
-	ld [wcd54], a
-	pop bc
-	push hl
-	ld l, c
-	ld h, b
-	push hl
-	ld a, [wcd55]
-	bit 7, a
-	jr nz, .asm_17f355
-	ld a, BANK(sCrystalData)
-	call GetSRAMBank
-	ld a, [sCrystalData + 2]
-	jr .asm_17f35d
-
-.asm_17f355
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$b2f3]
-
-.asm_17f35d
-	ld c, a
-	call CloseSRAM
-	ld de, $c608
-	callba Function48c63
-	pop hl
-	ld de, $c608
-	call PlaceString
-	ld a, c
-	ld [wcd52], a
-	ld a, b
-	ld [wcd53], a
-	ld a, [wcd54]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f382
-
-Function17f382: ; 17f382
-	pop hl
-	push bc
-	ld a, [hli]
-	ld [wcd55], a
-	and $f
-	ld [wcd54], a
-	pop bc
-	push hl
-	push bc
-	ld l, c
-	ld h, b
-	ld a, [wcd55]
-	bit 7, a
-	jr nz, .asm_17f3a3
-	ld a, BANK(sCrystalData)
-	call GetSRAMBank
-	ld de, sCrystalData + 3
-	jr .asm_17f3ab
-
-.asm_17f3a3
-	ld a, $5
-	call GetSRAMBank
-	ld de, $b2f4
-
-.asm_17f3ab
-	ld a, PRINTNUM_LEADINGZEROS | 2
-	ld b, a
-	ld a, 3
-	ld c, a
-	call PrintNum
-	call CloseSRAM
-	ld a, l
-	ld [wcd52], a
-	ld a, h
-	ld [wcd53], a
-	pop hl
-	ld a, [wcd54]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f3c9
-
-Function17f3c9: ; 17f3c9
-	push bc
-	ld hl, wcd36
-	ld de, $c708
-	ld bc, 12
-	call CopyBytes
-	pop de
-	ld c, $0
-	callba Function11c075
-	push hl
-	ld hl, $c708
-	ld de, wcd36
-	ld bc, $c
-	call CopyBytes
-	pop bc
-	pop de
-	and a
-	ret
-; 17f3f0
-
-Function17f3f0: ; 17f3f0
-	pop hl
-	push hl
-	ld a, [hli]
-	push af
-	push bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld a, [de]
-	ld c, a
-	ld b, $0
-	add hl, bc
-	add hl, bc
-	ld a, [hli]
-	ld e, a
-	ld a, [hli]
-	ld d, a
-	ld hl, UnknBGPals
-	add hl, de
-	ld e, l
-	ld d, h
-	pop hl
-	call PlaceString
-	pop af
-	ld e, a
-	ld d, $0
-	pop hl
-	add hl, de
-	add hl, de
-	inc hl
-	inc hl
-	inc hl
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	scf
-	ret
-; 17f41d
-
-Function17f41d: ; 17f41d
-	pop hl
-	ld a, [hli]
-	push hl
-	push af
-	ld l, c
-	ld h, b
-	ld bc, -TileMap + $10000
-	add hl, bc
-	ld de, -SCREEN_WIDTH
-	ld c, $1
-.asm_17f42c
-	ld a, h
-	and a
-	jr nz, .asm_17f435
-	ld a, l
-	cp SCREEN_WIDTH
-	jr c, .asm_17f439
-
-.asm_17f435
-	add hl, de
-	inc c
-	jr .asm_17f42c
-
-.asm_17f439
-	hlcoord 0, 0
-	ld de, SCREEN_WIDTH
-	ld a, c
-.asm_17f440
-	and a
-	jr z, .asm_17f447
-	add hl, de
-	dec a
-	jr .asm_17f440
-
-.asm_17f447
-	pop af
-	ld e, a
-	ld d, 0
-	add hl, de
-	pop de
-	and a
-	ret
-; 17f44f
-
-Function17f44f: ; 17f44f
-	pop hl
-	call Function17f524
-	jr c, .asm_17f46d
-	ld de, $5
-	add hl, de
-	ld a, [hli]
-	inc hl
-	inc hl
-	ld e, l
-	ld d, h
-	ld l, c
-	ld h, b
-	ld c, a
-	ld b, 0
-	add hl, bc
-	ld a, [de]
-	cp $50
-	jr z, .asm_17f46b
-	and a
-	ret
-
-.asm_17f46b
-	scf
-	ret
-
-.asm_17f46d
-	push bc
-	ld de, wcd54
-	ld bc, $8
-	call CopyBytes
-	pop bc
-	push hl
-	push bc
-	ld a, [wcd56]
-	cp $c0
-	jr c, .asm_17f488
-	ld a, [wcd54]
-	ld [rSVBK], a
-	jr .asm_17f48e
-
-.asm_17f488
-	ld a, [wcd54]
-	call GetSRAMBank
-
-.asm_17f48e
-	ld a, [wcd55]
-	ld l, a
-	ld a, [wcd56]
-	ld h, a
-	ld de, $c608
-	ld a, [wcd57]
-	ld c, a
-	ld b, $0
-	call CopyBytes
-	ld a, [wcd56]
-	cp $c0
-	jr c, .asm_17f4af
-	ld a, $4
-	ld [rSVBK], a
-	jr .asm_17f4b7
-
-.asm_17f4af
-	call CloseSRAM
-	ld a, $6
-	call GetSRAMBank
-
-.asm_17f4b7
-	ld de, $c608
-	pop hl
-	push hl
-	ld a, [wcd57]
-	ld b, a
-	ld a, [wcd58]
-	ld c, a
-	call MobilePrintNum
-	ld a, l
-	ld [wcd52], a
-	ld a, h
-	ld [wcd53], a
-	ld a, [wcd5a]
-	and a
-	jr z, .asm_17f4ec
-	ld c, a
-	ld a, [wcd58]
-	inc a
-	ld b, a
-	ld e, l
-	ld d, h
-	dec de
-.asm_17f4de
-	ld a, c
-	cp b
-	jr z, .asm_17f4e8
-	ld a, [de]
-	dec de
-	ld [hld], a
-	dec b
-	jr .asm_17f4de
-
-.asm_17f4e8
-	ld a, [wcd5b]
-	ld [hl], a
-
-.asm_17f4ec
-	pop hl
-	ld a, [wcd59]
-	call Function17f50f
-	pop de
-	and a
-	ret
-; 17f4f6
-
-Function17f4f6: ; 17f4f6
-	ld a, [wcd6a]
-	ld l, a
-	ld a, [wcd6b]
-	ld h, a
-	ld a, [wcd47]
-	ld c, a
-	ld a, [BGMapPalBuffer]
-	ld b, a
-	ld a, [wcd2e]
-.asm_17f509
-	and a
-	ret z
-	dec a
-	add hl, bc
-	jr .asm_17f509
-; 17f50f
-
-Function17f50f: ; 17f50f
-	and a
-	jr z, .asm_17f519
-	ld c, a
-	ld b, $0
-	add hl, bc
-	ld c, l
-	ld b, h
-	ret
-
-.asm_17f519
-	ld a, [wcd52]
-	ld c, a
-	ld l, a
-	ld a, [wcd53]
-	ld b, a
-	ld h, a
-	ret
-; 17f524
-
-Function17f524: ; 17f524
-	push hl
-	push bc
-	push de
-	ld a, [wcd42]
-	dec a
-	ld b, a
-	ld a, [wcd2e]
-	cp b
-	jr z, .asm_17f53a
-	ld hl, wcd68
-	cp [hl]
-.asm_17f536
-	pop de
-	pop bc
-	pop hl
-	ret
-
-.asm_17f53a
-	scf
-	jr .asm_17f536
-; 17f53d
-
-BattleTowerMobileError: ; 17f53d
-	call FadeToMenu
-	xor a
-	ld [wc303], a
-	ld a, [rSVBK]
-	push af
-	ld a, $1
-	ld [rSVBK], a
-
-	call DisplayMobileError
-
-	pop af
-	ld [rSVBK], a
-	call ExitAllMenus
-	ret
-; 17f555
-
-DisplayMobileError: ; 17f555
-.loop
-	call JoyTextDelay
-	call .RunJumptable
-	ld a, [wc303]
-	bit 7, a
-	jr nz, .quit
-	callba HDMATransferAttrMapAndTileMapToWRAMBank3
-	jr .loop
-
-.quit
-	call .deinit
-	ret
-
-.deinit
-	ld a, [wc300]
-	cp $22
-	jr z, .asm_17f597
-	cp $31
-	jr z, .asm_17f58a
-	cp $33
-	ret nz
-	ld a, [wc301]
-	cp $1
-	ret nz
-	ld a, [wc302]
-	cp $2
-	ret nz
-	jr .asm_17f5a1
-
-.asm_17f58a
-	ld a, [wc301]
-	cp $3
-	ret nz
-	ld a, [wc302]
-	and a
-	ret nz
-	jr .asm_17f5a1
-
-.asm_17f597
-	ld a, [wc301]
-	and a
-	ret nz
-	ld a, [wc302]
-	and a
-	ret nz
-
-.asm_17f5a1
-	ld a, BANK(sMobileLoginPassword)
-	call GetSRAMBank
-	xor a
-	ld [sMobileLoginPassword], a
-	call CloseSRAM
-	ret
-; 17f5ae
-
-.RunJumptable: ; 17f5ae
-	jumptable .Jumptable, wc303
-; 17f5bd
-
-.Jumptable: ; 17f5bd
-	dw Function17f5c3
-	dw Function17ff23
-	dw Function17f5d2
-; 17f5c3
-
-Function17f5c3: ; 17f5c3
-	call Function17f5e4
-	callba FinishExitMenu
-	ld a, $1
-	ld [wc303], a
-	ret
-; 17f5d2
-
-Function17f5d2: ; 17f5d2
-	call Function17f5e4
-	callba HDMATransferAttrMapAndTileMapToWRAMBank3
-	call SetPalettes
-	ld a, $1
-	ld [wc303], a
-	ret
-; 17f5e4
-
-Function17f5e4: ; 17f5e4
-	ld a, $8
-	ld [MusicFade], a
-	ld de, MUSIC_NONE
-	ld a, e
-	ld [MusicFadeID], a
-	ld a, d
-	ld [MusicFadeID + 1], a
-	ld a, " "
-	hlcoord 0, 0
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	ld a, $6
-	hlcoord 0, 0, AttrMap
-	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
-	call ByteFill
-	hlcoord 2, 1
-	ld b, $1
-	ld c, $e
-	call Function3eea
-	hlcoord 1, 4
-	ld b, $c
-	ld c, $10
-	call Function3eea
-	hlcoord 3, 2
-	ld de, String_17f6dc
-	call PlaceString
-	call Function17ff3c
-	jr nc, .asm_17f632
-	hlcoord 11, 2
-	call Function17f6b7
-
-.asm_17f632
-	ld a, [wc300]
-	cp $d0
-	jr nc, .asm_17f684
-	cp $10
-	jr c, .asm_17f679
-	sub $10
-	cp $24
-	jr nc, .asm_17f679
-	ld e, a
-	ld d, $0
-	ld hl, Table_17f706
-	add hl, de
-	add hl, de
-	ld a, [wc301]
-	ld e, a
-	ld a, [wc302]
-	ld d, a
-	ld a, [hli]
-	ld c, a
-	ld a, [hl]
-	ld h, a
-	ld l, c
-	ld a, [hli]
-	and a
-	jr z, .asm_17f679
-	ld c, a
-.asm_17f65d
-	ld a, [hli]
-	ld b, a
-	ld a, [hli]
-	cp $ff
-	jr nz, .asm_17f667
-	cp b
-	jr z, .asm_17f66e
-
-.asm_17f667
-	xor d
-	jr nz, .asm_17f674
-	ld a, b
-	xor e
-	jr nz, .asm_17f674
-
-.asm_17f66e
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	jr .asm_17f67d
-
-.asm_17f674
-	inc hl
-	inc hl
-	dec c
-	jr nz, .asm_17f65d
-
-.asm_17f679
-	ld a, $d9
-	jr .asm_17f684
-
-.asm_17f67d
-	hlcoord 2, 6
-	call PlaceString
-	ret
-
-.asm_17f684
-	sub $d0
-	ld e, a
-	ld d, 0
-	ld hl, Table_17f699
-	add hl, de
-	add hl, de
-	ld a, [hli]
-	ld e, a
-	ld a, [hl]
-	ld d, a
-	hlcoord 2, 6
-	call PlaceString
-	ret
-; 17f699
-
-Table_17f699: ; 17f699
-	dw String_17fedf
-	dw String_17fdd9
-	dw String_17fdd9
-	dw String_17fe03
-	dw String_17fd84
-	dw String_17fe63
-	dw String_17fdb2
-	dw String_17fe4b
-	dw String_17fe03
-	dw String_17fe03
-	dw String_17fe03
-; 17f6af
-
-Palette_17f6af: ; 17f6af
-	RGB  5,  5, 16
-	RGB  8, 19, 28
-	RGB  0,  0,  0
-	RGB 31, 31, 31
-; 17f6b7
-
-Function17f6b7: ; 17f6b7
-	ld a, [wc300]
-	call .bcd_two_digits
-	inc hl
-	ld a, [wc302]
-	and $f
-	call .bcd_digit
-	ld a, [wc301]
-	call .bcd_two_digits
-	ret
-; 17f6cd
-
-.bcd_two_digits ; 17f6cd
-	ld c, a
-	and $f0
-	swap a
-	call .bcd_digit
-	ld a, c
-	and $f
-
-.bcd_digit ; 17f6d8
-	add "0"
-	ld [hli], a
-	ret
-; 17f6dc
-
-String_17f6dc: ; 17f6dc
-	db "つうしんエラー   ー@"
-; 17f6e8
-
-String_17f6e8: ; 17f6e8
-	db   "みていぎ", $25, "エラーです"
-	next "プログラム", $1f
-	next "かくにん してください"
-	db   "@"
-; 17f706
-
-Table_17f706:
-	dw Unknown_17f74e
-	dw Unknown_17f753
-	dw Unknown_17f758
-	dw Unknown_17f75d
-	dw Unknown_17f762
-	dw Unknown_17f767
-	dw Unknown_17f778
-	dw Unknown_17f77d
-	dw Unknown_17f782
-	dw Unknown_17f782
-	dw Unknown_17f782
-	dw Unknown_17f782
-	dw Unknown_17f782
-	dw Unknown_17f782
-	dw Unknown_17f782
-	dw Unknown_17f782
-	dw Unknown_17f782
-	dw Unknown_17f787
-	dw Unknown_17f78c
-	dw Unknown_17f791
-	dw Unknown_17f796
-	dw Unknown_17f79b
-	dw Unknown_17f7a0
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7a5
-	dw Unknown_17f7ea
-	dw Unknown_17f7ff
-	dw Unknown_17f844
-
-Unknown_17f74e: db 1
-	dbbw $0, $0, String_17f891
-
-Unknown_17f753: db 1
-	dbbw $0, $0, String_17f8d1
-
-Unknown_17f758: db 1
-	dbbw $0, $0, String_17f913
-
-Unknown_17f75d: db 1
-	dbbw $0, $0, String_17f8d1
-
-Unknown_17f762: db 1
-	dbbw $0, $0, String_17fa71
-
-Unknown_17f767: db 4
-	dbbw $0, $0, String_17f946
-	dbbw $1, $0, String_17f946
-	dbbw $2, $0, String_17f946
-	dbbw $3, $0, String_17f946
-
-Unknown_17f778: db 1
-	dbbw $0, $0, String_17f98e
-
-Unknown_17f77d: db 1
-	dbbw $0, $0, String_17f98e
-
-Unknown_17f782: db 1
-	dbbw $0, $0, String_17f98e
-
-Unknown_17f787: db 1
-	dbbw $0, $0, String_17f98e
-
-Unknown_17f78c: db 1
-	dbbw $0, $0, String_17f9d0
-
-Unknown_17f791: db 1
-	dbbw $0, $0, String_17fa14
-
-Unknown_17f796: db 1
-	dbbw $0, $0, String_17fcbf
-
-Unknown_17f79b: db 1
-	dbbw $0, $0, String_17fa71
-
-Unknown_17f7a0: db 1
-	dbbw $0, $0, String_17fbfe
-
-Unknown_17f7a5: db 17
-	dbbw $0, $0, String_17f98e
-	dbbw $21, $2, String_17fcbf
-	dbbw $21, $4, String_17fcbf
-	dbbw $50, $4, String_17faf9
-	dbbw $51, $4, String_17fcbf
-	dbbw $52, $4, String_17fcbf
-	dbbw $0, $5, String_17f98e
-	dbbw $1, $5, String_17f98e
-	dbbw $2, $5, String_17f98e
-	dbbw $3, $5, String_17f98e
-	dbbw $4, $5, String_17f98e
-	dbbw $50, $5, String_17faf9
-	dbbw $51, $5, String_17faf9
-	dbbw $52, $5, String_17fcbf
-	dbbw $53, $5, String_17faf9
-	dbbw $54, $5, String_17fcbf
-	dbbw $ff, $ff, String_17fcbf
-
-Unknown_17f7ea: db 5
-	dbbw $0, $0, String_17f98e
-	dbbw $2, $0, String_17fb2a
-	dbbw $3, $0, String_17fb6e
-	dbbw $4, $0, String_17f98e
-	dbbw $ff, $ff, String_17fcbf
-
-Unknown_17f7ff: db 17
-	dbbw $0, $0, String_17f98e
-	dbbw $1, $3, String_17f98e
-	dbbw $2, $3, String_17f98e
-	dbbw $0, $4, String_17f98e
-	dbbw $1, $4, String_17f98e
-	dbbw $3, $4, String_17fbb6
-	dbbw $4, $4, String_17fbb6
-	dbbw $5, $4, String_17f98e
-	dbbw $6, $4, String_17f98e
-	dbbw $7, $4, String_17f98e
-	dbbw $8, $4, String_17fbfe
-	dbbw $0, $5, String_17fa49
-	dbbw $1, $5, String_17f98e
-	dbbw $2, $5, String_17fa49
-	dbbw $3, $5, String_17fab0
-	dbbw $4, $5, String_17fa49
-	dbbw $ff, $ff, String_17fa49
-
-Unknown_17f844: db 19
-	dbbw $1, $1, String_17fc3e
-	dbbw $2, $1, String_17fc88
-	dbbw $3, $1, String_17fcff
-	dbbw $4, $1, String_17fd84
-	dbbw $5, $1, String_17fd84
-	dbbw $6, $1, String_17fd47
-	dbbw $1, $2, String_17fb6e
-	dbbw $2, $2, String_17f98e
-	dbbw $3, $2, String_17fd84
-	dbbw $4, $2, String_17f98e
-	dbbw $5, $2, String_17fa49
-	dbbw $6, $2, String_17fd84
-	dbbw $99, $2, String_17fc88
-	dbbw $1, $3, String_17fa49
-	dbbw $1, $4, String_17fa49
-	dbbw $2, $4, String_17fa49
-	dbbw $3, $4, String_17fa49
-	dbbw $4, $4, String_17fa49
-	dbbw $ff, $ff, String_17fa49
-
-String_17f891: ; 17f891
-	db   "モバイルアダプタが ただしく"
-	next "さしこまれていません"
-	next "とりあつかいせつめいしょを"
-	next "ごらんのうえ しっかりと"
-	next "さしこんで ください"
-	db   "@"
-
-String_17f8d1: ; 17f8d1
-	db   "でんわが うまく かけられないか"
-	next "でんわかいせんが こんでいるので"
-	next "つうしん できません"
-	next "しばらく まって"
-	next "かけなおして ください"
-	db   "@"
-
-String_17f913: ; 17f913
-	db   "でんわかいせんが こんでいるため"
-	next "でんわが かけられません"
-	next "しばらく まって"
-	next "かけなおして ください"
-	db   "@"
-
-String_17f946: ; 17f946
-	db   "モバイルアダプタの エラーです"
-	next "しばらく まって"
-	next "かけなおして ください"
-	next "なおらない ときは"
-	next "モバイルサポートセンターへ"
-	next "おといあわせください"
-	db   "@"
-
-String_17f98e: ; 17f98e
-	db   "つうしんエラーです"
-	next "しばらく まって"
-	next "かけなおして ください"
-	next "なおらない ときは"
-	next "モバイルサポートセンターへ"
-	next "おといあわせください"
-	db   "@"
-
-String_17f9d0: ; 17f9d0
-	db   "ログインパスワードか"
-	next "ログイン アイディーに"
-	next "まちがいがあります"
-	next "パスワードを かくにんして"
-	next "しばらく まって"
-	next "かけなおして ください"
-	db   "@"
-
-String_17fa14: ; 17fa14
-	db   "でんわが きれました"
-	next "とりあつかいせつめいしょを"
-	next "ごらんのうえ"
-	next "しばらく まって"
-	next "かけなおして ください"
-	db   "@"
-
-String_17fa49: ; 17fa49
-	db   "モバイルセンターの"
-	next "つうしんエラーです"
-	next "しばらくまって"
-	next "かけなおして ください"
-	db   "@"
-
-String_17fa71: ; 17fa71
-	db   "モバイルアダプタに"
-	next "とうろくされた じょうほうが"
-	next "ただしく ありません"
-	next "モバイルトレーナーで"
-	next "しょきとうろくを してください"
-	db   "@"
-
-String_17fab0: ; 17fab0
-	db   "モバイルセンターが"
-	next "こんでいて つながりません"
-	next "しばらくまって"
-	next "かけなおして ください"
-	next "くわしくは とりあつかい"
-	next "せつめいしょを ごらんください"
-	db   "@"
-
-String_17faf9: ; 17faf9
-	db   "あてさき メールアドレスに"
-	next "まちがいがあります"
-	next "ただしい メールアドレスを"
-	next "いれなおしてください"
-	db   "@"
-
-String_17fb2a: ; 17fb2a
-	db   "メールアドレスに"
-	next "まちがいが あります"
-	next "とりあつかいせつめいしょを"
-	next "ごらんのうえ"
-	next "モバイルトレーナーで"
-	next "しょきとうろくを してください"
-	db   "@"
-
-String_17fb6e: ; 17fb6e
-	db   "ログインパスワードに"
-	next "まちがいが あるか"
-	next "モバイルセンターの エラーです"
-	next "パスワードを かくにんして"
-	next "しばらく まって"
-	next "かけなおして ください"
-	db   "@"
-
-String_17fbb6: ; 17fbb6
-	db   "データの よみこみが できません"
-	next "しばらくまって"
-	next "かけなおして ください"
-	next "なおらない ときは"
-	next "モバイルサポートセンターへ"
-	next "おといあわせください"
-	db   "@"
-
-String_17fbfe: ; 17fbfe
-	db   "じかんぎれです"
-	next "でんわが きれました"
-	next "でんわを かけなおしてください"
-	next "くわしくは とりあつかい"
-	next "せつめいしょを ごらんください"
-	db   "@"
-
-String_17fc3e: ; 17fc3e
-	db   "ごりよう りょうきんの "
-	next "おしはらいが おくれたばあいには"
-	next "ごりようが できなくなります"
-	next "くわしくは とりあつかい"
-	next "せつめいしょを ごらんください"
-	db   "@"
-
-String_17fc88: ; 17fc88
-	db   "おきゃくさまの ごつごうにより"
-	next "ごりようできません"
-	next "くわしくは とりあつかい"
-	next "せつめいしょを ごらんください"
-	db   "@"
-
-String_17fcbf: ; 17fcbf
-	db   "でんわかいせんが こんでいるか"
-	next "モバイルセンターの エラーで"
-	next "つうしんが できません"
-	next "しばらく まって"
-	next "かけなおして ください"
-	db   "@"
-
-String_17fcff: ; 17fcff
-	db   "ごりよう りょうきんが"
-	next "じょうげんを こえているため"
-	next "こんげつは ごりようできません"
-	next "くわしくは とりあつかい"
-	next "せつめいしょを ごらんください"
-	db   "@"
-
-String_17fd47: ; 17fd47
-	db   "げんざい モバイルセンターの"
-	next "てんけんを しているので"
-	next "つうしんが できません"
-	next "しばらく まって"
-	next "かけなおして ください"
-	db   "@"
-
-String_17fd84: ; 17fd84
-	db   "データの よみこみが できません"
-	next "くわしくは とりあつかい"
-	next "せつめいしょを ごらんください"
-	db   "@"
-
-
-String_17fdb2: ; 17fdb2
-	db   "3ぷん いじょう なにも"
-	next "にゅうりょく しなかったので"
-	next "でんわが きれました"
-	db   "@"
-
-String_17fdd9: ; 17fdd9
-	db   "つうしんが うまく"
-	next "できませんでした"
-	next "もういちど はじめから"
-	next "やりなおしてください"
-	db   "@"
-
-String_17fe03: ; 17fe03
-	db   "データの よみこみが できません"
-	next "しばらくまって"
-	next "かけなおして ください"
-	next "なおらない ときは"
-	next "モバイルサポートセンターへ"
-	next "おといあわせください"
-	db   "@"
-
-String_17fe4b: ; 17fe4b
-	db   "まちじかんが ながいので"
-	next "でんわが きれました"
-	db   "@"
-
-String_17fe63: ; 17fe63
-	db   "あいての モバイルアダプタと"
-	next "タイプが ちがいます"
-	next "くわしくは とりあつかい"
-	next "せつめいしょを ごらんください"
-	db   "@"
-
-String_17fe9a: ; 17fe9a ; unreferenced
-	db   "ポケモンニュースが"
-	next "あたらしくなっているので"
-	next "レポートを おくれません"
-	next "あたらしい ポケモンニュースの"
-	next "よみこみを さきに してください"
-	db   "@"
-
-String_17fedf: ; 17fedf
-	db   "つうしんの じょうきょうが"
-	next "よくないか かけるあいてが"
-	next "まちがっています"
-	next "もういちど かくにんをして"
-	next "でんわを かけなおして ください"
-	db   "@"
-; 17ff23
-
-Function17ff23: ; 17ff23
-	ld a, [hJoyPressed]
-	and a
-	ret z
-	ld a, $8
-	ld [MusicFade], a
-	ld a, [wMapMusic]
-	ld [MusicFadeID], a
-	xor a
-	ld [MusicFadeID + 1], a
-	ld hl, wc303
-	set 7, [hl]
-	ret
-; 17ff3c
-
-Function17ff3c: ; 17ff3c
-	nop
-	ld a, [wc300]
-	cp $d0
-	ret c
-	hlcoord 10, 2
-	ld de, String_17ff68
-	call PlaceString
-	ld a, [wc300]
-	push af
-	sub $d0
-	inc a
-	ld [wc300], a
-	hlcoord 14, 2
-	ld de, wc300
-	lb bc, PRINTNUM_LEADINGZEROS | 1, 3
-	call PrintNum
-	pop af
-	ld [wc300], a
-	and a
-	ret
-; 17ff68
-
-String_17ff68: ; 17ff68
-	db "101@"
-; 17ff6c
--- a/misc/mobile_menu.asm
+++ /dev/null
@@ -1,879 +1,0 @@
-MainMenu_Mobile: ; 49efc
-	call ClearBGPalettes
-	ld a, MUSIC_MOBILE_ADAPTER_MENU
-	ld [wMapMusic], a
-	ld de, MUSIC_MOBILE_ADAPTER_MENU
-	call Function4a6c5
-Function49f0a: ; 49f0a
-	call ClearBGPalettes
-	call Function4a3a7
-	call Function4a492
-	call ClearBGPalettes
-Function49f16: ; 49f16
-	call MobileMenu_InitMenuBuffers
-	ld c, 12
-	call DelayFrames
-	hlcoord 4, 0
-	ld b, 10
-	ld c, 10
-	call Function48cdc
-	hlcoord 6, 2
-	ld de, MobileString1
-	call PlaceString
-	hlcoord 0, 12
-	ld b, 4
-	ld c, SCREEN_HEIGHT
-	call TextBox
-	xor a
-	ld de, String_0x49fe9
-	hlcoord 1, 14
-	call PlaceString
-	call WaitBGMap2
-	call SetPalettes
-	call StaticMenuJoypad
-	ld hl, wMenuCursorY
-	ld b, [hl]
-	push bc
-	jr .check_buttons
-
-.joy_loop
-	call ScrollingMenuJoypad
-	ld hl, wMenuCursorY
-	ld b, [hl]
-	push bc
-
-.check_buttons
-	bit A_BUTTON_F, a
-	jr nz, .a_button
-	bit B_BUTTON_F, a
-	jr nz, .b_button
-	jr .next
-
-.a_button
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	cp 1
-	jp z, Function4a098
-	cp 2
-	jp z, Function4a0b9
-	cp 3
-	jp z, Function4a0c2
-	cp 4
-	jp z, Function4a100
-	ld a, 1
-	call MenuClickSound
-.b_button
-	pop bc
-	call ClearBGPalettes
-	call ClearTileMap
-	ld a, MUSIC_MAIN_MENU
-	ld [wMapMusic], a
-	ld de, MUSIC_MAIN_MENU
-	call Function4a6c5
-	ret
-
-.next
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	dec a
-	ld hl, MobileStrings2
-	call GetNthString
-	ld d, h
-	ld e, l
-	hlcoord 1, 13
-	ld b, 4
-	ld c, SCREEN_HEIGHT
-	call ClearBox
-	hlcoord 1, 14
-	call PlaceString
-	jp .useless_jump
-
-.useless_jump
-	call MobileMenu_InitMenuBuffers
-	pop bc
-	ld hl, wMenuCursorY
-	ld [hl], b
-	ld b, $a
-	ld c, $1
-	hlcoord 5, 1
-	call ClearBox
-	jp .joy_loop
-; 49fcc
-
-
-MobileString1: ; 49fcc
-	db   "めいしフ,ルダー"
-	next "あいさつ"
-	next "プロフィール"
-	next "せ", $1e, "い"
-	next "もどる"
-	db   "@"
-; 49fe9
-
-
-MobileStrings2:
-
-String_0x49fe9: ; 49fe9
-	db   "めいし¯つくったり"
-	next "ほぞんしておける フ,ルダーです@"
-; 4a004
-
-String_0x4a004: ; 4a004
-	db   "モバイルたいせんや じぶんのめいしで"
-	next "つかう あいさつ¯つくります@"
-; 4a026
-
-String_0x4a026: ; 4a026
-	db   "あなた%じゅうしょや ねんれいの"
-	next "せ", $1e, "い¯かえられます@"
-; 4a042
-
-String_0x4a042: ; 4a042
-	db  "モバイルセンター", $1d, "せつぞくするとき"
-	next "ひつような こと¯きめます@"
-; 4a062
-
-String_0x4a062: ; 4a062
-	db   "まえ%がめん ", $1d, "もどります"
-	next "@"
-; 4a071
-
-MobileMenu_InitMenuBuffers: ; 4a071 (12:6071)
-	ld hl, w2DMenuCursorInitY
-	ld a, 2
-	ld [hli], a
-	ld a, 5 ; w2DMenuCursorInitX
-	ld [hli], a
-	ld a, 5 ; w2DMenuNumRows
-	ld [hli], a
-	ld a, 1 ; w2DMenuNumCols
-	ld [hli], a
-	ld [hl], $0 ; w2DMenuFlags1
-	set 5, [hl]
-	inc hl
-	xor a ; w2DMenuFlags2
-	ld [hli], a
-	ld a, $20 ; w2DMenuCursorOffsets
-	ld [hli], a
-	; this is a stupid way to load $c3
-	ld a, A_BUTTON
-	add D_UP
-	add D_DOWN
-	add B_BUTTON
-	ld [hli], a ; wMenuJoypadFilter
-	ld a, 1
-	ld [hli], a ; wMenuCursorY, wMenuCursorX
-	ld [hli], a ; wMenuCursorY, wMenuCursorX
-	ret
-
-Function4a098: ; 4a098 (12:6098)
-	ld a, 2
-	call MenuClickSound
-	call PlaceHollowCursor
-	call WaitBGMap
-	call LoadStandardMenuDataHeader
-	callba Function89de0
-	call Call_ExitMenu
-	call MG_Mobile_Layout_LoadPals
-	call Function4a485
-	pop bc
-	jp Function49f16
-
-Function4a0b9: ; 4a0b9 (12:60b9)
-	ld a, 2
-	call MenuClickSound
-	pop bc
-	jp Function4a4c4
-
-Function4a0c2: ; 4a0c2 (12:60c2)
-	ld a, 2
-	call MenuClickSound
-	ld a, BANK(sPlayerData)
-	call GetSRAMBank
-	ld hl, sPlayerData + PlayerName - wPlayerData
-	ld de, PlayerName
-	ld bc, 6 ; japanese name length
-	call CopyBytes
-	call CloseSRAM
-	callba _LoadData
-	ld c, 2
-	call DelayFrames
-	ld c, $1
-	call InitMobileProfile
-	push af
-	call ClearBGPalettes
-	pop af
-	and a
-	jr nz, .skip_save
-	callba _SaveData
-.skip_save
-	ld c, 5
-	call DelayFrames
-	jr asm_4a111
-
-Function4a100: ; 4a100 (12:6100)
-	ld a, 2
-	call MenuClickSound
-	call ClearBGPalettes
-	call Function4a13b
-	call ClearBGPalettes
-	call ClearTileMap
-
-asm_4a111: ; 4a111 (12:6111)
-	pop bc
-	call LoadFontsExtra
-	jp Function49f0a
-
-Function4a118: ; 4a118 (12:6118)
-	ld hl, w2DMenuCursorInitY
-	ld a, $1
-	ld [hli], a
-	ld a, $d
-	ld [hli], a
-	ld a, $3
-	ld [hli], a
-	ld a, $1
-	ld [hli], a
-	ld [hl], $0
-	set 5, [hl]
-	inc hl
-	xor a
-	ld [hli], a
-	ld a, $20
-	ld [hli], a
-	ld a, $1
-	add $2
-	ld [hli], a
-	ld a, $1
-	ld [hli], a
-	ld [hli], a
-	ret
-
-Function4a13b: ; 4a13b (12:613b)
-	call Function4a3a7
-	call Function4a492
-	call Function4a373
-	ld c, 10
-	call DelayFrames
-
-Function4a149: ; 4a149 (12:6149)
-	hlcoord 1, 2
-	ld b, $6
-	ld c, $10
-	call Function48cdc
-	hlcoord 3, 4
-	ld de, String_4a1ef
-	call PlaceString
-	hlcoord 0, 12
-	ld b, $4
-	ld c, $12
-	call TextBox
-	ld a, [wMenuCursorY]
-	dec a
-	ld hl, Strings_4a23d
-	call GetNthString
-	ld d, h
-	ld e, l
-	hlcoord 1, 13
-	ld b, $4
-	ld c, $12
-	call ClearBox
-	hlcoord 1, 14
-	call PlaceString
-	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-	call SetPalettes
-	call StaticMenuJoypad
-	ld hl, wMenuCursorY
-	ld b, [hl]
-	push bc
-	jr asm_4a19d
-
-Function4a195: ; 4a195 (12:6195)
-	call ScrollingMenuJoypad
-	ld hl, wMenuCursorY
-	ld b, [hl]
-	push bc
-
-asm_4a19d: ; 4a19d (12:619d)
-	bit 0, a
-	jr nz, .asm_4a1a7
-	bit 1, a
-	jr nz, .asm_4a1ba
-	jr .asm_4a1bc
-.asm_4a1a7
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	cp $1
-	jp z, Function4a20e
-	cp $2
-	jp z, Function4a221
-	ld a, $1
-	call MenuClickSound
-.asm_4a1ba
-	pop bc
-	ret
-.asm_4a1bc
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	dec a
-	ld hl, Strings_4a23d
-	call GetNthString
-	ld d, h
-	ld e, l
-	hlcoord 1, 13
-	ld b, $4
-	ld c, $12
-	call ClearBox
-	hlcoord 1, 14
-	call PlaceString
-	jr .asm_4a1db
-.asm_4a1db
-	call Function4a373
-	pop bc
-	ld hl, wMenuCursorY
-	ld [hl], b
-	lb bc, 6, 1
-	hlcoord 2, 3
-	call ClearBox
-	jp Function4a195
-; 4a1ef (12:61ef)
-
-String_4a1ef: ; 4a1ef
-	db   "モバイルセンター¯えらぶ"
-	next "ログインパスワード¯いれる"
-	next "もどる@"
-; 4a20e
-
-Function4a20e: ; 4a20e (12:620e)
-	ld a, $1
-	call MenuClickSound
-	callba Function1719c8
-	call ClearBGPalettes
-	call DelayFrame
-	jr Function4a239
-
-Function4a221: ; 4a221 (12:6221)
-	ld a, $1
-	call MenuClickSound
-	call Function4a28a
-	jr c, Function4a239
-	call Function4a373
-	ld a, $2
-	ld [wMenuCursorY], a
-	jr .asm_4a235
-.asm_4a235
-	pop bc
-	jp Function4a149
-
-Function4a239: ; 4a239 (12:6239)
-	pop bc
-	jp Function4a13b
-; 4a23d (12:623d)
-
-Strings_4a23d: ; 4a23d
-	db   "いつも せつぞく¯する"
-	next "モバイルセンター¯えらびます@"
-
-	db   "モバイルセンター", $1d, "せつぞくするとき"
-	next "つかうパスワード¯ほぞんできます@"
-
-	db   "まえ%がめん ", $1d, "もどります@"
-
-	db   "@"
-; 4a28a
-
-Function4a28a: ; 4a28a (12:628a)
-	hlcoord 2, 3
-	lb bc, 6, 1
-	ld a, " "
-	call Function4a6d8
-	call PlaceHollowCursor
-	call WaitBGMap
-	call LoadStandardMenuDataHeader
-	ld a, $5
-	call GetSRAMBank
-	ld a, [$aa4b]
-	call CloseSRAM
-	and a
-	jr z, .asm_4a2df
-	hlcoord 12, 0
-	ld b, $5
-	ld c, $6
-	call Function48cdc
-	hlcoord 14, 1
-	ld de, String_4a34b
-	call PlaceString
-	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-	call Function4a118
-	call ScrollingMenuJoypad
-	push af
-	call PlayClickSFX
-	pop af
-	bit B_BUTTON_F, a
-	jr nz, .quit
-	ld a, [wMenuCursorY]
-	cp $2
-	jr z, .DeleteLoginPassword
-	cp $3
-	jr z, .quit
-.asm_4a2df
-	callba Function11765d
-	call ClearBGPalettes
-	call Call_ExitMenu
-	call LoadFontsExtra
-	scf
-	ret
-
-.DeleteLoginPassword:
-	call PlaceHollowCursor
-	ld hl, UnknownText_0x4a358
-	call PrintText
-	hlcoord 14, 7
-	ld b, 3
-	ld c, 4
-	call TextBox
-	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-	ld hl, DeletePassword_YesNo_MenuDataHeader
-	call LoadMenuDataHeader
-	call VerticalMenu
-	bit B_BUTTON_F, a
-	jr nz, .dont_delete_password
-	ld a, [wMenuCursorY]
-	cp $2
-	jr z, .dont_delete_password
-	ld a, BANK(sMobileLoginPassword)
-	call GetSRAMBank
-	ld hl, sMobileLoginPassword
-	xor a
-	ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
-	call ByteFill
-	call CloseSRAM
-	ld hl, UnknownText_0x4a35d
-	call PrintText
-	call JoyWaitAorB
-.dont_delete_password
-	call ExitMenu
-.quit
-	call Call_ExitMenu
-	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-	xor a
-	ret
-; 4a346 (12:6346)
-
-MenuDataHeader_0x4a346: ; 0x4a346
-	db $40 ; flags
-	db 00, 12 ; start coords
-	db 06, 19 ; end coords
-
-String_4a34b: ; 4a34b
-	db   "いれなおす"
-	next "けす"
-	next "もどる@"
-; 4a358
-
-UnknownText_0x4a358: ; 0x4a358
-	; Delete the saved LOG-IN PASSWORD?
-	text_jump UnknownText_0x1c5196
-	db "@"
-; 0x4a35d
-
-UnknownText_0x4a35d: ; 0x4a35d
-	; Deleted the LOG-IN PASSWORD.
-	text_jump UnknownText_0x1c51b9
-	db "@"
-; 0x4a362
-
-DeletePassword_YesNo_MenuDataHeader: ; 0x4a362
-	db $40 ; flags
-	db 07, 14 ; start coords
-	db 11, 19 ; end coords
-	dw MenuData2_0x4a36a
-	db 2 ; default option
-; 0x4a36a
-
-MenuData2_0x4a36a: ; 0x4a36a
-	db $e0 ; flags
-	db 2 ; items
-	db "はい@"
-	db "いいえ@"
-; 0x4a373
-
-Function4a373: ; 4a373 (12:6373)
-	ld hl, w2DMenuCursorInitY
-	ld a, $4
-	ld [hli], a
-	ld a, $2
-	ld [hli], a
-	ld a, $3
-	ld [hli], a
-	ld a, $1
-	ld [hli], a
-	ld [hl], $0
-	set 5, [hl]
-	inc hl
-	xor a
-	ld [hli], a
-	ld a, $20
-	ld [hli], a
-	ld a, $1
-	add $40
-	add $80
-	add $2
-	ld [hli], a
-	ld a, $1
-	ld [hli], a
-	ld [hli], a
-	ret
-; 4a39a (12:639a)
-
-Function4a39a: ; 4a39a
-	call Function4a485
-	call Function4a492
-	call Function4a3aa
-	call SetPalettes
-	ret
-; 4a3a7
-
-Function4a3a7: ; 4a3a7 (12:63a7)
-	call Function4a485
-Function4a3aa: ; 4a3aa
-	hlcoord 0, 0
-	lb bc, 3, 1
-	xor a
-	call Function4a6d8
-	lb bc, 1, 1
-	ld a, $1
-	call Function4a6d8
-	lb bc, 1, 1
-	xor a
-	call Function4a6d8
-	lb bc, 1, 1
-	ld a, $1
-	call Function4a6d8
-	lb bc, 4, 1
-	ld a, $2
-	call Function4a6d8
-	lb bc, 1, 1
-	ld a, $3
-	call Function4a6d8
-	lb bc, 1, 1
-	ld a, " "
-	call Function4a6d8
-	hlcoord 1, 0
-	ld a, $1
-	lb bc, 3, 18
-	call Function4a6d8
-	lb bc, 1, 18
-	ld a, $0
-	call Function4a6d8
-	lb bc, 1, 18
-	ld a, $1
-	call Function4a6d8
-	lb bc, 1, 18
-	ld a, $2
-	call Function4a6d8
-	lb bc, 11, 18
-	ld a, " "
-	call Function4a6d8
-	hlcoord 19, 0
-	lb bc, 3, 1
-	ld a, $0
-	call Function4a6d8
-	lb bc, 1, 1
-	ld a, $1
-	call Function4a6d8
-	lb bc, 1, 1
-	xor a
-	call Function4a6d8
-	lb bc, 1, 1
-	ld a, $1
-	call Function4a6d8
-	lb bc, 4, 1
-	ld a, $2
-	call Function4a6d8
-	lb bc, 1, 1
-	ld a, $3
-	call Function4a6d8
-	lb bc, 1, 1
-	ld a, " "
-	call Function4a6d8
-	ret
-; 4a449 (12:6449)
-
-Function4a449: ; 4a449
-	ld bc, 3 * SCREEN_WIDTH
-	ld a, $0
-	hlcoord 0, 0
-	call ByteFill
-	ld bc, 2 * SCREEN_WIDTH
-	ld a, $1
-	call ByteFill
-	ld bc, 2 * SCREEN_WIDTH
-	ld a, $0
-	call ByteFill
-	ld bc, 2 * SCREEN_WIDTH
-	ld a, $1
-	call ByteFill
-	ld bc, SCREEN_WIDTH
-	ld a, $2
-	call ByteFill
-	ld bc, SCREEN_WIDTH
-	ld a, $3
-	call ByteFill
-	ld bc, SCREEN_WIDTH
-	ld a, " "
-	call ByteFill
-	ret
-; 4a485
-
-Function4a485: ; 4a485 (12:6485)
-	ld de, GFX_49c0c
-	ld hl, VTiles2 tile $00
-	lb bc, BANK(GFX_49c0c), 13
-	call Get2bpp
-	ret
-
-Function4a492: ; 4a492 (12:6492)
-	call MG_Mobile_Layout00
-	ret
-
-
-MainMenu_MobileStudium: ; 4a496
-	ld a, [StartDay]
-	ld b, a
-	ld a, [StartHour]
-	ld c, a
-	ld a, [StartMinute]
-	ld d, a
-	ld a, [StartSecond]
-	ld e, a
-	push bc
-	push de
-	callba MobileStudium
-	call ClearBGPalettes
-	pop de
-	pop bc
-	ld a, b
-	ld [StartDay], a
-	ld a, c
-	ld [StartHour], a
-	ld a, d
-	ld [StartMinute], a
-	ld a, e
-	ld [StartSecond], a
-	ret
-; 4a4c4
-
-
-Function4a4c4: ; 4a4c4 (12:64c4)
-	call ClearBGPalettes
-	call Function4a3a7
-	call Function4a492
-	call Function4a680
-	call ClearBGPalettes
-	ld c, 20
-	call DelayFrames
-	hlcoord 2, 0
-	ld b, $a
-	ld c, $e
-	call Function48cdc
-	hlcoord 4, 2
-	ld de, String_4a5c5
-	call PlaceString
-	hlcoord 4, 4
-	ld de, String_4a5cd
-	call PlaceString
-	hlcoord 4, 6
-	ld de, String_4a5da
-	call PlaceString
-	hlcoord 4, 8
-	ld de, String_4a5e6
-	call PlaceString
-	hlcoord 4, 10
-	ld de, String_4a5f2
-	call PlaceString
-	hlcoord 0, 12
-	ld b, $4
-	ld c, $12
-	call TextBox
-	xor a
-	ld hl, Strings_4a5f6
-	ld d, h
-	ld e, l
-	hlcoord 1, 14
-	call PlaceString
-	ld a, $1
-	ld hl, Strings_4a5f6
-	call GetNthString
-	ld d, h
-	ld e, l
-	hlcoord 1, 16
-	call PlaceString
-	call WaitBGMap2
-	call SetPalettes
-	call StaticMenuJoypad
-	ld hl, wMenuCursorY
-	ld b, [hl]
-	push bc
-	jr asm_4a54d
-
-Function4a545: ; 4a545 (12:6545)
-	call ScrollingMenuJoypad
-	ld hl, wMenuCursorY
-	ld b, [hl]
-	push bc
-
-asm_4a54d: ; 4a54d (12:654d)
-	bit 0, a
-	jr nz, .asm_4a557
-	bit 1, a
-	jr nz, .asm_4a574
-	jr .asm_4a57e
-.asm_4a557
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	cp $1
-	jp z, Function4a6ab
-	cp $2
-	jp z, Function4a6ab
-	cp $3
-	jp z, Function4a6ab
-	cp $4
-	jp z, Function4a6ab
-	ld a, $1
-	call MenuClickSound
-.asm_4a574
-	pop bc
-	call ClearBGPalettes
-	call ClearTileMap
-	jp Function49f0a
-.asm_4a57e
-	ld hl, wMenuCursorY
-	ld a, [hl]
-	dec a
-	add a
-	push af
-	ld hl, Strings_4a5f6
-	call GetNthString
-	ld d, h
-	ld e, l
-	hlcoord 1, 13
-	ld b, $4
-	ld c, $12
-	call ClearBox
-	hlcoord 1, 14
-	call PlaceString
-	pop af
-	inc a
-	ld hl, Strings_4a5f6
-	call GetNthString
-	ld d, h
-	ld e, l
-	hlcoord 1, 16
-	call PlaceString
-	jp Function4a5b0
-
-Function4a5b0: ; 4a5b0 (12:65b0)
-	call Function4a680
-	pop bc
-	ld hl, wMenuCursorY
-	ld [hl], b
-	ld b, $a
-	ld c, $1
-	hlcoord 3, 1
-	call ClearBox
-	jp Function4a545
-; 4a5c5 (12:65c5)
-
-String_4a5c5: ; 4a5c5
-	db "じこしょうかい@"
-String_4a5cd: ; 4a5cd
-	db "たいせん ", $4a, "はじまるとき@"
-String_4a5da: ; 4a5da
-	db "たいせん ", $1d, "かったとき@"
-String_4a5e6: ; 4a5e6
-	db "たいせん ", $1d, "まけたとき@"
-String_4a5f2: ; 4a5f2
-	db "もどる@"
-; 4a5f6
-
-Strings_4a5f6: ; 4a5f6
-	db "めいし や ニュース ", $1d, "のせる@"
-	db "あなた%あいさつです@"
-	db "モバイル たいせん", $4a, "はじまるとき@"
-	db "あいて", $1d, "みえる あいさつです@"
-	db "モバイル たいせんで かったとき@"
-	db "あいて", $1d, "みえる あいさつです@"
-	db "モバイル たいせんで まけたとき@"
-	db "あいて", $1d, "みえる あいさつです@"
-	db "まえ%がめん ", $1d, "もどります@"
-	db "@"
-; 4a680
-
-Function4a680: ; 4a680 (12:6680)
-	ld hl, w2DMenuCursorInitY
-	ld a, $2
-	ld [hli], a
-	ld a, $3
-	ld [hli], a
-	ld a, $5
-	ld [hli], a
-	ld a, $1
-	ld [hli], a
-	ld [hl], $0
-	set 5, [hl]
-	inc hl
-	xor a
-	ld [hli], a
-	ld a, $20
-	ld [hli], a
-	ld a, $1
-	add $40
-	add $80
-	add $2
-	ld [hli], a
-	ld a, $1
-	ld [hli], a
-	ld [hli], a
-	xor a
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ret
-
-Function4a6ab: ; 4a6ab (12:66ab)
-	ld a, $2
-	call MenuClickSound
-	call ClearBGPalettes
-	ld b, SCGB_DIPLOMA
-	call GetSGBLayout
-	callba Function11c1ab
-	pop bc
-	call LoadFontsExtra
-	jp Function4a4c4
-
-Function4a6c5: ; 4a6c5 (12:66c5)
-	ld a, $5
-	ld [MusicFade], a
-	ld a, e
-	ld [MusicFadeID], a
-	ld a, d
-	ld [MusicFadeID + 1], a
-	ld c, 22
-	call DelayFrames
-	ret
-
-Function4a6d8: ; 4a6d8 (12:66d8)
-	push bc
-	push hl
-.asm_4a6da
-	ld [hli], a
-	dec c
-	jr nz, .asm_4a6da
-	pop hl
-	ld bc, SCREEN_WIDTH
-	add hl, bc
-	pop bc
-	dec b
-	jr nz, Function4a6d8
-	ret
--- a/misc/printer_77.asm
+++ /dev/null
@@ -1,356 +1,0 @@
-PrintPage1: ; 1dc1b0
-	hlcoord 0, 0
-	decoord 0, 0, wPrinterTileMapBuffer
-	ld bc, 17 * SCREEN_WIDTH
-	call CopyBytes
-	hlcoord 17, 1, wPrinterTileMapBuffer
-	ld a, $62
-	ld [hli], a
-	inc a
-	ld [hl], a
-	hlcoord 17, 2, wPrinterTileMapBuffer
-	ld a, $64
-	ld [hli], a
-	inc a
-	ld [hl], a
-	hlcoord 1, 9, wPrinterTileMapBuffer
-	ld a, " "
-	ld [hli], a
-	ld [hl], a
-	hlcoord 1, 10, wPrinterTileMapBuffer
-	ld a, $61
-	ld [hli], a
-	ld [hl], a
-	hlcoord 2, 11, wPrinterTileMapBuffer
-	lb bc, 5, 18
-	call ClearBox
-	ld a, [wd265]
-	dec a
-	call CheckCaughtMon
-	push af
-	ld a, [wd265]
-	ld b, a
-	ld c, 1 ; get page 1
-	callba GetDexEntryPagePointer
-	pop af
-	ld a, b
-	hlcoord 1, 11, wPrinterTileMapBuffer
-	call nz, FarString
-	hlcoord 19, 0, wPrinterTileMapBuffer
-	ld [hl], $35
-	ld de, SCREEN_WIDTH
-	add hl, de
-	ld b, $f
-.column_loop
-	ld [hl], $37
-	add hl, de
-	dec b
-	jr nz, .column_loop
-	ld [hl], $3a
-	ret
-; 1dc213
-
-PrintPage2: ; 1dc213
-	hlcoord 0, 0, wPrinterTileMapBuffer
-	ld bc, 8 * SCREEN_WIDTH
-	ld a, " "
-	call ByteFill
-	hlcoord 0, 0, wPrinterTileMapBuffer
-	ld a, $36
-	ld b, 6
-	call .FillColumn
-	hlcoord 19, 0, wPrinterTileMapBuffer
-	ld a, $37
-	ld b, 6
-	call .FillColumn
-	hlcoord 0, 6, wPrinterTileMapBuffer
-	ld [hl], $38
-	inc hl
-	ld a, $39
-	ld bc, SCREEN_HEIGHT
-	call ByteFill
-	ld [hl], $3a
-	hlcoord 0, 7, wPrinterTileMapBuffer
-	ld bc, SCREEN_WIDTH
-	ld a, $32
-	call ByteFill
-	ld a, [wd265]
-	dec a
-	call CheckCaughtMon
-	push af
-	ld a, [wd265]
-	ld b, a
-	ld c, 2 ; get page 2
-	callba GetDexEntryPagePointer
-	pop af
-	hlcoord 1, 1, wPrinterTileMapBuffer
-	ld a, b
-	call nz, FarString
-	ret
-; 1dc26a
-
-.FillColumn: ; 1dc26a
-	push de
-	ld de, SCREEN_WIDTH
-.column_loop
-	ld [hl], a
-	add hl, de
-	dec b
-	jr nz, .column_loop
-	pop de
-	ret
-; 1dc275
-
-GBPrinterStrings:
-GBPrinterString_Null: db "@"
-GBPrinterString_CheckingLink: next " CHECKING LINK...@"
-GBPrinterString_Transmitting: next "  TRANSMITTING...@"
-GBPrinterString_Printing: next "    PRINTING...@"
-GBPrinterString_PrinterError1:
-	db   " Printer Error 1"
-	next ""
-	next "Check the Game Boy"
-	next "Printer Manual."
-	db   "@"
-GBPrinterString_PrinterError2:
-	db   " Printer Error 2"
-	next ""
-	next "Check the Game Boy"
-	next "Printer Manual."
-	db   "@"
-GBPrinterString_PrinterError3:
-	db   " Printer Error 3"
-	next ""
-	next "Check the Game Boy"
-	next "Printer Manual."
-	db   "@"
-GBPrinterString_PrinterError4:
-	db   " Printer Error 4"
-	next ""
-	next "Check the Game Boy"
-	next "Printer Manual."
-	db   "@"
-; 1dc381
-
-PrintPartyMonPage1: ; 1dc381
-	call ClearBGPalettes
-	call ClearTileMap
-	call ClearSprites
-	xor a
-	ld [hBGMapMode], a
-	call LoadFontsBattleExtra
-
-	ld de, MobileHPIcon
-	ld hl, VTiles2 tile $71
-	lb bc, BANK(MobileHPIcon), 1
-	call Request1bpp
-
-	ld de, MobileLvIcon
-	ld hl, VTiles2 tile $6e
-	lb bc, BANK(MobileLvIcon), 1
-	call Request1bpp
-
-	ld de, ShinyIconGFX
-	ld hl, VTiles2 tile $3f
-	lb bc, BANK(ShinyIconGFX), 1
-	call Get2bpp
-
-	xor a
-	ld [MonType], a
-	callba CopyPkmnToTempMon
-	hlcoord 0, 7
-	ld b, 9
-	ld c, 18
-	call TextBox
-	hlcoord 8, 2
-	ld a, [TempMonLevel]
-	call PrintLevel_Force3Digits
-	hlcoord 12, 2
-	ld [hl], "◀" ; Filled left triangle
-	inc hl
-	ld de, TempMonMaxHP
-	lb bc, 2, 3
-	call PrintNum
-	ld a, [CurPartySpecies]
-	ld [wd265], a
-	ld [CurSpecies], a
-	ld hl, PartyMonNicknames
-	call Function1dc50e
-	hlcoord 8, 4
-	call PlaceString
-	hlcoord 9, 6
-	ld [hl], "/"
-	call GetPokemonName
-	hlcoord 10, 6
-	call PlaceString
-	hlcoord 8, 0
-	ld [hl], "№"
-	inc hl
-	ld [hl], "."
-	inc hl
-	ld de, wd265
-	lb bc, PRINTNUM_LEADINGZEROS | 1, 3
-	call PrintNum
-	hlcoord 1, 9
-	ld de, String1dc550
-	call PlaceString
-	ld hl, PartyMonOT
-	call Function1dc50e
-	hlcoord 4, 9
-	call PlaceString
-	hlcoord 1, 11
-	ld de, String1dc559
-	call PlaceString
-	hlcoord 4, 11
-	ld de, TempMonID
-	lb bc, PRINTNUM_LEADINGZEROS | 2, 5
-	call PrintNum
-	hlcoord 1, 14
-	ld de, String1dc554
-	call PlaceString
-	hlcoord 7, 14
-	ld a, [TempMonMoves + 0]
-	call Function1dc51a
-	call Function1dc52c
-	ld hl, TempMonDVs
-	predef GetUnownLetter
-	ld hl, wBoxAlignment
-	xor a
-	ld [hl], a
-	ld a, [CurPartySpecies]
-	cp UNOWN
-	jr z, .asm_1dc469
-	inc [hl]
-
-.asm_1dc469
-	hlcoord 0, 0
-	call _PrepMonFrontpic
-	call WaitBGMap
-	ld b, SCGB_STATS_SCREEN_HP_PALS
-	call GetSGBLayout
-	call SetPalettes
-	ret
-; 1dc47b
-
-PrintPartyMonPage2: ; 1dc47b
-	call ClearBGPalettes
-	call ClearTileMap
-	call ClearSprites
-	xor a
-	ld [hBGMapMode], a
-	call LoadFontsBattleExtra
-	xor a
-	ld [MonType], a
-	callba CopyPkmnToTempMon
-	hlcoord 0, 0
-	ld b, 15
-	ld c, 18
-	call TextBox
-	ld bc, SCREEN_WIDTH
-	decoord 0, 0
-	hlcoord 0, 1
-	call CopyBytes
-	hlcoord 7, 0
-	ld a, [TempMonMoves + 1]
-	call Function1dc51a
-	hlcoord 7, 2
-	ld a, [TempMonMoves + 2]
-	call Function1dc51a
-	hlcoord 7, 4
-	ld a, [TempMonMoves + 3]
-	call Function1dc51a
-	hlcoord 7, 7
-	ld de, String1dc55d
-	call PlaceString
-	hlcoord 16, 7
-	ld de, TempMonAttack
-	call .PrintTempMonStats
-	hlcoord 16, 9
-	ld de, TempMonDefense
-	call .PrintTempMonStats
-	hlcoord 16, 11
-	ld de, TempMonSpclAtk
-	call .PrintTempMonStats
-	hlcoord 16, 13
-	ld de, TempMonSpclDef
-	call .PrintTempMonStats
-	hlcoord 16, 15
-	ld de, TempMonSpeed
-	call .PrintTempMonStats
-	call WaitBGMap
-	ld b, SCGB_STATS_SCREEN_HP_PALS
-	call GetSGBLayout
-	call SetPalettes
-	ret
-; 1dc507
-
-.PrintTempMonStats: ; 1dc507
-	lb bc, 2, 3
-	call PrintNum
-	ret
-; 1dc50e
-
-Function1dc50e: ; 1dc50e
-	ld bc, NAME_LENGTH
-	ld a, [CurPartyMon]
-	call AddNTimes
-	ld e, l
-	ld d, h
-	ret
-; 1dc51a
-
-Function1dc51a: ; 1dc51a
-	and a
-	jr z, .no_move
-
-	ld [wd265], a
-	call GetMoveName
-	jr .got_string
-
-.no_move
-	ld de, String1dc584
-
-.got_string
-	call PlaceString
-	ret
-; 1dc52c
-
-Function1dc52c: ; 1dc52c
-	callba GetGender
-	ld a, " "
-	jr c, .got_gender
-	ld a, "♂"
-	jr nz, .got_gender
-	ld a, "♀"
-
-.got_gender
-	hlcoord 17, 2
-	ld [hl], a
-	ld bc, TempMonDVs
-	callba CheckShininess
-	ret nc
-	hlcoord 18, 2
-	ld [hl], "<SHINY>"
-	ret
-; 1dc550
-
-String1dc550: ; 1dc550
-	db "OT/@"
-
-String1dc554: ; 1dc554
-	db "MOVE@"
-
-String1dc559: ; 1dc559
-	db "<ID>№.@"
-
-String1dc55d: ; 1dc55d
-	db   "ATTACK"
-	next "DEFENSE"
-	next "SPCL.ATK"
-	next "SPCL.DEF"
-	next "SPEED"
-	db   "@"
-
-String1dc584: ; 1dc584
-	db "------------@"
-; 1dc591
--- a/misc/unused_title.asm
+++ /dev/null
@@ -1,556 +1,0 @@
-UnusedTitleScreen: ; 10c000
-
-	call ClearBGPalettes
-	call ClearTileMap
-	call DisableLCD
-	xor a
-	ld [hBGMapMode], a
-
-	ld hl, wJumptableIndex
-	ld [hli], a
-	ld [hli], a
-	ld [hli], a
-	ld [hl], a
-
-	ld hl, UnusedTitleBG_GFX
-	ld de, VTiles2
-	ld bc, VBGMap0 - VTiles2
-	call CopyBytes
-
-	ld hl, UnusedTitleBG_GFX + $800
-	ld de, VTiles1
-	ld bc, VTiles2 - VTiles1
-	call CopyBytes
-
-	ld hl, UnusedTitleFG_GFX
-	ld de, VTiles0
-	ld bc, VTiles1 - VTiles0
-	call CopyBytes
-
-	ld hl, UnusedTitleBG_Tilemap
-	debgcoord 0, 0
-	ld bc, 32 * 32
-.copy
-	ld a, 0
-	ld [rVBK], a
-	ld a, [hli]
-	ld [de], a
-	ld a, 1
-	ld [rVBK], a
-	ld a, [hli]
-	ld [de], a
-	inc de
-	dec bc
-	ld a, b
-	or c
-	jr nz, .copy
-
-	ld hl, UnusedTitleFG_OAM
-	ld de, Sprites
-	ld bc, $a0
-	call CopyBytes
-
-	call EnableLCD
-	ld a, [rLCDC]
-	set 1, a
-	set 2, a
-	ld [rLCDC], a
-
-	call DelayFrame
-
-	ld a, [rSVBK]
-	push af
-	ld a, $5
-	ld [rSVBK], a
-
-	ld hl, UnusedTitleBG_Palettes
-	ld de, UnknBGPals
-	ld bc, $40
-	call CopyBytes
-
-	ld hl, UnusedTitleFG_Palettes
-	ld de, UnknOBPals
-	ld bc, $40
-	call CopyBytes
-
-	ld hl, UnusedTitleBG_Palettes
-	ld de, BGPals
-	ld bc, $40
-	call CopyBytes
-
-	ld hl, UnusedTitleFG_Palettes
-	ld de, OBPals
-	ld bc, $40
-	call CopyBytes
-
-	pop af
-	ld [rSVBK], a
-
-	ld a, $1
-	ld [hCGBPalUpdate], a
-
-	ld de, MUSIC_TITLE
-	call PlayMusic
-
-	ret
-; 10c0b1
-
-UnusedTitleBG_GFX: ; 10c0b1
-INCBIN "gfx/title/old_bg.2bpp"
-; 10d0b1
-
-UnusedTitleBG_Tilemap: ; 10d0b1
-; 32x32 (tile, attributes)
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-	db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-; 10d8b1
-
-UnusedTitleBG_Palettes: ; 10d8b1
-	RGB 00, 00, 00
-	RGB 25, 15, 28
-	RGB 22, 11, 28
-	RGB 19, 08, 26
-
-	RGB 00, 00, 00
-	RGB 17, 07, 22
-	RGB 13, 07, 16
-	RGB 19, 08, 26
-
-	RGB 25, 15, 28
-	RGB 22, 11, 28
-	RGB 19, 08, 26
-	RGB 17, 07, 22
-
-	RGB 22, 11, 28
-	RGB 19, 08, 26
-	RGB 17, 07, 22
-	RGB 13, 07, 16
-
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 16, 16, 24
-	RGB 02, 13, 21
-
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 20, 20, 20
-	RGB 12, 12, 12
-
-	RGB 00, 00, 00
-	RGB 01, 11, 23
-	RGB 16, 16, 24
-	RGB 02, 13, 21
-
-	RGB 00, 00, 00
-	RGB 22, 10, 31
-	RGB 19, 08, 26
-	RGB 17, 07, 22
-
-
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-
-	RGB 31, 31, 31
-	RGB 20, 04, 20
-	RGB 16, 08, 16
-	RGB 24, 00, 24
-
-	rept 54
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	RGB 31, 31, 31
-	endr
-; 10dab1
-
-UnusedTitleFG_GFX: ; 10dab1
-INCBIN "gfx/title/old_fg.2bpp"
-; 10eab1
-
-UnusedTitleFG_Palettes: ; 10eab1
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 16, 16, 24
-	RGB 02, 13, 21
-
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 20, 20, 20
-	RGB 12, 12, 12
-
-	RGB 00, 00, 00
-	RGB 01, 11, 23
-	RGB 16, 16, 24
-	RGB 02, 13, 21
-
-	RGB 00, 00, 00
-	RGB 31, 22, 00
-	RGB 31, 27, 00
-	RGB 31, 31, 00
-
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 16, 16, 24
-	RGB 02, 13, 21
-
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 20, 20, 20
-	RGB 12, 12, 12
-
-	RGB 00, 00, 00
-	RGB 01, 11, 23
-	RGB 16, 16, 24
-	RGB 02, 13, 21
-
-	RGB 16, 31, 00
-	RGB 22, 31, 00
-	RGB 27, 31, 00
-	RGB 31, 31, 00
-
-
-	RGB 31, 00, 18
-	RGB 31, 31, 31
-	RGB 16, 16, 24
-	RGB 02, 13, 21
-
-	RGB 00, 00, 00
-	RGB 31, 31, 31
-	RGB 20, 20, 20
-	RGB 12, 12, 12
-
-	RGB 00, 00, 00
-	RGB 01, 11, 23
-	RGB 16, 16, 24
-	RGB 02, 13, 21
-
-	RGB 16, 31, 00
-	RGB 22, 31, 00
-	RGB 27, 31, 00
-	RGB 31, 31, 00
-
-	RGB 24, 18, 31
-	RGB 31, 31, 00
-	RGB 31, 31, 01
-	RGB 31, 31, 03
-
-	RGB 31, 31, 05
-	RGB 31, 31, 08
-	RGB 31, 31, 10
-	RGB 31, 31, 12
-
-	RGB 31, 31, 14
-	RGB 31, 31, 16
-	RGB 31, 31, 18
-	RGB 31, 31, 20
-
-	RGB 31, 31, 22
-	RGB 31, 31, 25
-	RGB 31, 31, 27
-	RGB 31, 31, 29
-
-	RGB 24, 06, 06
-	RGB 01, 01, 01
-	RGB 03, 03, 03
-	RGB 05, 05, 05
-
-	RGB 08, 08, 08
-	RGB 10, 10, 10
-	RGB 12, 12, 12
-	RGB 14, 14, 14
-
-	RGB 16, 16, 16
-	RGB 18, 18, 18
-	RGB 20, 20, 20
-	RGB 22, 22, 22
-
-	RGB 25, 25, 25
-	RGB 27, 27, 27
-	RGB 29, 29, 29
-	RGB 31, 31, 31
-
-	RGB 18, 24, 18
-	RGB 31, 29, 01
-	RGB 31, 27, 03
-	RGB 31, 25, 05
-
-	RGB 31, 22, 08
-	RGB 31, 20, 10
-	RGB 31, 18, 12
-	RGB 31, 16, 14
-
-	RGB 31, 14, 16
-	RGB 31, 12, 18
-	RGB 31, 10, 20
-	RGB 31, 08, 22
-
-	RGB 31, 05, 25
-	RGB 31, 03, 27
-	RGB 31, 01, 29
-	RGB 31, 00, 31
-
-	RGB 18, 06, 31
-	RGB 00, 31, 31
-	RGB 00, 31, 29
-	RGB 00, 31, 27
-
-	RGB 00, 31, 25
-	RGB 00, 31, 22
-	RGB 00, 31, 20
-	RGB 00, 31, 18
-
-	RGB 00, 31, 16
-	RGB 00, 31, 14
-	RGB 00, 31, 12
-	RGB 00, 31, 10
-
-	RGB 00, 31, 08
-	RGB 00, 31, 05
-	RGB 00, 31, 03
-	RGB 00, 31, 01
-
-	RGB 12, 31, 06
-	RGB 00, 00, 31
-	RGB 00, 01, 31
-	RGB 00, 03, 31
-
-	RGB 00, 05, 31
-	RGB 00, 08, 31
-	RGB 00, 10, 31
-	RGB 00, 12, 31
-
-	RGB 00, 14, 31
-	RGB 00, 16, 31
-	RGB 00, 18, 31
-	RGB 00, 20, 31
-
-	RGB 00, 22, 31
-	RGB 00, 25, 31
-	RGB 00, 27, 31
-	RGB 00, 29, 31
-
-	RGB 00, 00, 00
-	RGB 06, 00, 04
-	RGB 19, 02, 09
-	RGB 28, 04, 11
-
-	RGB 31, 07, 16
-	RGB 31, 17, 23
-	RGB 31, 26, 30
-	RGB 07, 05, 10
-
-	RGB 14, 10, 18
-	RGB 20, 20, 25
-	RGB 25, 27, 31
-	RGB 09, 05, 06
-
-	RGB 23, 16, 13
-	RGB 30, 23, 22
-	RGB 31, 28, 28
-	RGB 31, 31, 31
-
-	RGB 06, 31, 31
-	RGB 04, 00, 04
-	RGB 11, 02, 04
-	RGB 17, 02, 04
-
-	RGB 24, 05, 04
-	RGB 28, 07, 04
-	RGB 31, 11, 04
-	RGB 02, 01, 15
-
-	RGB 04, 11, 22
-	RGB 12, 25, 25
-	RGB 20, 31, 31
-	RGB 09, 04, 03
-
-	RGB 22, 11, 08
-	RGB 27, 19, 16
-	RGB 30, 28, 26
-	RGB 31, 31, 31
-
-	RGB 06, 18, 06
-	RGB 04, 04, 02
-	RGB 07, 07, 02
-	RGB 18, 18, 04
-
-	RGB 24, 24, 06
-	RGB 27, 27, 11
-	RGB 31, 31, 20
-	RGB 02, 03, 10
-
-	RGB 04, 05, 13
-	RGB 06, 10, 25
-	RGB 08, 15, 31
-	RGB 04, 00, 06
-
-	RGB 11, 07, 14
-	RGB 21, 16, 23
-	RGB 29, 26, 31
-	RGB 31, 31, 31
-
-	RGB 06, 00, 18
-	RGB 00, 04, 03
-	RGB 02, 09, 05
-	RGB 11, 19, 07
-
-	RGB 16, 24, 08
-	RGB 22, 31, 09
-	RGB 24, 31, 18
-	RGB 03, 01, 03
-
-	RGB 10, 04, 10
-	RGB 20, 08, 20
-	RGB 31, 17, 31
-	RGB 01, 03, 06
-
-	RGB 05, 09, 10
-	RGB 15, 21, 21
-	RGB 23, 25, 25
-	RGB 31, 31, 31
-
-	RGB 00, 18, 31
-	RGB 00, 05, 07
-	RGB 00, 08, 13
-	RGB 00, 12, 17
-
-	RGB 01, 20, 24
-	RGB 04, 27, 31
-	RGB 14, 31, 31
-	RGB 04, 02, 02
-
-	RGB 15, 01, 03
-	RGB 26, 04, 07
-	RGB 31, 13, 16
-	RGB 00, 05, 02
-
-	RGB 01, 11, 03
-	RGB 06, 21, 06
-	RGB 13, 31, 16
-	RGB 31, 31, 31
-
-	RGB 00, 06, 06
-	RGB 00, 01, 08
-	RGB 00, 05, 14
-	RGB 00, 08, 19
-
-	RGB 02, 14, 26
-	RGB 04, 21, 31
-	RGB 06, 26, 31
-	RGB 13, 00, 00
-
-	RGB 27, 07, 00
-	RGB 31, 17, 05
-	RGB 31, 25, 16
-	RGB 02, 04, 00
-
-	RGB 07, 11, 03
-	RGB 17, 19, 05
-	RGB 27, 31, 16
-	RGB 31, 31, 31
-
-	RGB 02, 00, 00
-	RGB 04, 01, 06
-	RGB 11, 03, 14
-	RGB 16, 04, 19
-
-	RGB 20, 07, 22
-	RGB 26, 12, 27
-	RGB 26, 20, 31
-	RGB 04, 07, 00
-
-	RGB 16, 20, 07
-	RGB 24, 28, 15
-	RGB 29, 31, 24
-	RGB 05, 02, 02
-
-	RGB 15, 04, 02
-	RGB 24, 11, 10
-	RGB 31, 22, 20
-	RGB 31, 31, 31
-
-	RGB 00, 00, 14
-	RGB 12, 00, 00
-	RGB 27, 05, 00
-	RGB 31, 15, 05
-
-	RGB 31, 26, 13
-	RGB 31, 30, 21
-	RGB 05, 07, 16
-	RGB 04, 16, 20
-
-	RGB 04, 24, 26
-	RGB 08, 31, 31
-	RGB 23, 31, 31
-	RGB 00, 00, 00
-
-	RGB 05, 05, 05
-	RGB 17, 17, 15
-	RGB 28, 28, 24
-	RGB 31, 31, 31
-; 10ecb1
-
-UnusedTitleFG_OAM: ; 10ecb1
-	db $18, $38, $00, $01,  $18, $40, $02, $01,  $18, $48, $04, $01,  $18, $50, $06, $01
-	db $18, $58, $08, $01,  $18, $60, $0a, $01,  $18, $68, $0c, $01,  $18, $70, $0e, $01
-
-	db $28, $38, $10, $00,  $28, $40, $12, $00,  $28, $48, $14, $00,  $28, $50, $16, $00
-	db $28, $58, $18, $00,  $28, $60, $1a, $00,  $28, $68, $1c, $00,  $28, $70, $1e, $00
-
-	db $38, $38, $20, $00,  $38, $40, $22, $00,  $38, $48, $24, $00,  $38, $50, $26, $00
-	db $38, $58, $28, $00,  $38, $60, $2a, $00,  $38, $68, $2c, $00,  $38, $70, $2e, $00
-
-	db $48, $38, $30, $02,  $48, $40, $32, $02,  $48, $48, $34, $02,  $48, $50, $36, $02
-	db $48, $58, $38, $02,  $48, $60, $3a, $02,  $48, $68, $3c, $02,  $48, $70, $3e, $02
-
-	db $58, $38, $40, $01,  $58, $40, $42, $01,  $58, $48, $44, $01,  $58, $50, $46, $01
-	db $58, $58, $48, $01,  $58, $60, $4a, $01,  $58, $68, $4c, $01,  $58, $70, $4e, $01
-; 10ed51
-
-
-Function10ed51: ; 10ed51
-	call _TitleScreen
-.loop
-	call JoyTextDelay
-	ld a, [hJoyLast]
-	ld b, a
-	and 1
-	jr nz, .done
-	call SuicuneFrameIterator
-	call DelayFrame
-	jr .loop
-.done
-	ret
-; 10ed67
--- /dev/null
+++ b/mobile/fixed_words.asm
@@ -1,0 +1,4294 @@
+; These functions seem to be related to the selection of preset phrases
+; for use in mobile communications.  Annoyingly, they separate the
+; Battle Tower function above from the data it references.
+Function11c05d: ; 11c05d
+	ld a, e
+	or d
+	jr z, .error
+	ld a, e
+	and d
+	cp $ff
+	jr z, .error
+	push hl
+	call CopyMobileEZChatToC608
+	pop hl
+	call PlaceString
+	and a
+	ret
+
+.error
+	ld c, l
+	ld b, h
+	scf
+	ret
+; 11c075
+
+Function11c075: ; 11c075
+	push de
+	ld a, c
+	call Function11c254
+	pop de
+	ld bc, wcd36
+	call Function11c08f
+	ret
+; 11c082
+
+Function11c082: ; 11c082
+; XXX
+	push de
+	ld a, c
+	call Function11c254
+	pop de
+	ld bc, wcd36
+	call PrintEZChatBattleMessage
+	ret
+; 11c08f
+
+Function11c08f: ; 11c08f
+	ld l, e
+	ld h, d
+	push hl
+	ld a, 3
+.loop
+	push af
+	ld a, [bc]
+	ld e, a
+	inc bc
+	ld a, [bc]
+	ld d, a
+	inc bc
+	push bc
+	call Function11c05d
+	jr c, .okay
+	inc bc
+
+.okay
+	ld l, c
+	ld h, b
+	pop bc
+	pop af
+	dec a
+	jr nz, .loop
+	pop hl
+	ld de, 2 * SCREEN_WIDTH
+	add hl, de
+	ld a, $3
+.loop2
+	push af
+	ld a, [bc]
+	ld e, a
+	inc bc
+	ld a, [bc]
+	ld d, a
+	inc bc
+	push bc
+	call Function11c05d
+	jr c, .okay2
+	inc bc
+
+.okay2
+	ld l, c
+	ld h, b
+	pop bc
+	pop af
+	dec a
+	jr nz, .loop2
+	ret
+; 11c0c6
+
+PrintEZChatBattleMessage: ; 11c0c6
+; Use up to 6 words from bc to print text starting at de.
+	; Preserve $cf63, $cf64
+	ld a, [wJumptableIndex]
+	ld l, a
+	ld a, [wcf64]
+	ld h, a
+	push hl
+	; reset value at c618 (not preserved)
+	ld hl, $c618
+	ld a, $0
+	ld [hli], a
+	; preserve de
+	push de
+	; $cf63 keeps track of which line we're on (0, 1, or 2)
+	; $cf64 keeps track of how much room we have left in the current line
+	xor a
+	ld [wJumptableIndex], a
+	ld a, 18
+	ld [wcf64], a
+	ld a, $6 ; up to 6 times
+.loop
+	push af
+	; load the 2-byte word data pointed to by bc
+	ld a, [bc]
+	ld e, a
+	inc bc
+	ld a, [bc]
+	ld d, a
+	inc bc
+	; if $0000, we're done
+	or e
+	jr z, .done
+	; preserving hl and bc, get the length of the word
+	push hl
+	push bc
+	call CopyMobileEZChatToC608
+	call GetLengthOfWordAtC608
+	ld e, c
+	pop bc
+	pop hl
+	; if the functions return 0, we're done
+	ld a, e
+	or a
+	jr z, .done
+.loop2
+	; e contains the length of the word
+	; add 1 for the space, unless we're at the start of the line
+	ld a, [wcf64]
+	cp 18
+	jr z, .skip_inc
+	inc e
+
+.skip_inc
+	; if the word fits, put it on the same line
+	cp e
+	jr nc, .same_line
+	; otherwise, go to the next line
+	ld a, [wJumptableIndex]
+	inc a
+	ld [wJumptableIndex], a
+	; if we're on line 2, insert "<NEXT>"
+	ld [hl], "<NEXT>"
+	rra
+	jr c, .got_line_terminator
+	; else, insert "<CONT>"
+	ld [hl], "<CONT>"
+
+.got_line_terminator
+	inc hl
+	; init the next line, holding on to the same word
+	ld a, 18
+	ld [wcf64], a
+	dec e
+	jr .loop2
+
+.same_line
+	; add the space, unless we're at the start of the line
+	cp 18
+	jr z, .skip_space
+	ld [hl], " "
+	inc hl
+
+.skip_space
+	; deduct the length of the word
+	sub e
+	ld [wcf64], a
+	ld de, $c608
+.place_string_loop
+	; load the string from de to hl
+	ld a, [de]
+	cp "@"
+	jr z, .done
+	inc de
+	ld [hli], a
+	jr .place_string_loop
+
+.done
+	; next word?
+	pop af
+	dec a
+	jr nz, .loop
+	; we're finished, place "<DONE>"
+	ld [hl], "<DONE>"
+	; now, let's place the string from c618 to bc
+	pop bc
+	ld hl, $c618
+	call PlaceHLTextAtBC
+	; restore the original values of $cf63 and $cf64
+	pop hl
+	ld a, l
+	ld [wJumptableIndex], a
+	ld a, h
+	ld [wcf64], a
+	ret
+; 11c14a
+
+GetLengthOfWordAtC608: ; 11c14a
+	ld c, $0
+	ld hl, $c608
+.loop
+	ld a, [hli]
+	cp "@"
+	ret z
+	inc c
+	jr .loop
+; 11c156
+
+CopyMobileEZChatToC608: ; 11c156
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, "@"
+	ld hl, $c608
+	ld bc, NAME_LENGTH
+	call ByteFill
+	ld a, d
+	and a
+	jr z, .get_name
+	ld hl, MobileEZChatCategoryPointers
+	dec d
+	sla d
+	ld c, d
+	ld b, $0
+	add hl, bc
+	ld a, [hli]
+	ld c, a
+	ld a, [hl]
+	ld b, a
+	push bc
+	pop hl
+	ld c, e
+	ld b, $0
+	sla c
+	rl b
+	sla c
+	rl b
+	sla c
+	rl b
+	add hl, bc
+	ld bc, 5 ; length of a string
+.copy_string
+	ld de, $c608
+	call CopyBytes
+	ld de, $c608
+	pop af
+	ld [rSVBK], a
+	ret
+
+.get_name
+	ld a, e
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, StringBuffer1
+	ld bc, PKMN_NAME_LENGTH - 1
+	jr .copy_string
+; 11c1ab
+
+Function11c1ab: ; 11c1ab
+	ld a, [hInMenu]
+	push af
+	ld a, $1
+	ld [hInMenu], a
+	call Function11c1b9
+	pop af
+	ld [hInMenu], a
+	ret
+; 11c1b9
+
+Function11c1b9: ; 11c1b9
+	call .InitKanaMode
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	call EZChat_MasterLoop
+	pop af
+	ld [rSVBK], a
+	ret
+; 11c1ca
+
+.InitKanaMode: ; 11c1ca
+	xor a
+	ld [wJumptableIndex], a
+	ld [wcf64], a
+	ld [wcf65], a
+	ld [wcf66], a
+	ld [wcd23], a
+	ld [wcd20], a
+	ld [wcd21], a
+	ld [wcd22], a
+	ld [wcd35], a
+	ld [wcd2b], a
+	ld a, $ff
+	ld [wcd24], a
+	ld a, [wMenuCursorY]
+	dec a
+	call Function11c254
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearScreen
+	call Function11d323
+	call SetPalettes
+	call DisableLCD
+	ld hl, GFX_11d67e
+	ld de, VTiles2
+	ld bc, $60
+	call CopyBytes
+	ld hl, LZ_11d6de
+	ld de, VTiles0
+	call Decompress
+	call EnableLCD
+	callba ReloadMapPart
+	callba ClearSpriteAnims
+	callba LoadPokemonData
+	callba Pokedex_ABCMode
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, $c6d0
+	ld de, LYOverrides
+	ld bc, $100
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	call EZChat_GetCategoryWordsByKana
+	call EZChat_GetSeenPokemonByKana
+	ret
+; 11c254
+
+Function11c254: ; 11c254
+	push af
+	ld a, $4
+	call GetSRAMBank
+	ld hl, $a007
+	pop af
+	sla a
+	sla a
+	ld c, a
+	sla a
+	add c
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld de, wcd36
+	ld bc, 12
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 11c277
+
+EZChat_ClearBottom12Rows: ; 11c277 (47:4277)
+	ld a, " "
+	hlcoord 0, 6
+	ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH
+	call ByteFill
+	ret
+
+EZChat_MasterLoop: ; 11c283
+.loop
+	call JoyTextDelay
+	ld a, [hJoyPressed]
+	ld [hJoypadPressed], a
+	ld a, [wJumptableIndex]
+	bit 7, a
+	jr nz, .exit
+	call .DoJumptableFunction
+	callba PlaySpriteAnimations
+	callba ReloadMapPart
+	jr .loop
+
+.exit
+	callba ClearSpriteAnims
+	call ClearSprites
+	ret
+; 11c2ac
+
+.DoJumptableFunction: ; 11c2ac
+	jumptable .Jumptable, wJumptableIndex
+; 11c2bb
+
+.Jumptable: ; 11c2bb (47:42bb)
+	dw .SpawnObjects ; 00
+	dw .InitRAM ; 01
+	dw Function11c35f ; 02
+	dw Function11c373 ; 03
+	dw Function11c3c2 ; 04
+	dw Function11c3ed ; 05
+	dw Function11c52c ; 06
+	dw Function11c53d ; 07
+	dw Function11c658 ; 08
+	dw Function11c675 ; 09
+	dw Function11c9bd ; 0a
+	dw Function11c9c3 ; 0b
+	dw Function11caad ; 0c
+	dw Function11cab3 ; 0d
+	dw Function11cb52 ; 0e
+	dw Function11cb66 ; 0f
+	dw Function11cbf5 ; 10
+	dw Function11ccef ; 11
+	dw Function11cd04 ; 12
+	dw Function11cd20 ; 13
+	dw Function11cd54 ; 14
+	dw Function11ce0b ; 15
+	dw Function11ce2b ; 16
+
+.SpawnObjects: ; 11c2e9 (47:42e9)
+	depixel 3, 1, 2, 5
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	depixel 8, 1, 2, 5
+
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, $1
+	ld [hl], a
+
+	depixel 9, 2, 2, 0
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, $3
+	ld [hl], a
+
+	depixel 10, 16
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, $4
+	ld [hl], a
+
+	depixel 10, 4
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, $5
+	ld [hl], a
+
+	depixel 10, 2
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, $2
+	ld [hl], a
+
+	ld hl, wcd23
+	set 1, [hl]
+	set 2, [hl]
+	jp Function11cfb5
+
+.InitRAM: ; 11c346 (47:4346)
+	ld a, $9
+	ld [wcd2d], a
+	ld a, $2
+	ld [wcd2e], a
+	ld [wcd2f], a
+	ld [wcd30], a
+	ld de, wcd2d
+	call Function11cfce
+	jp Function11cfb5
+
+Function11c35f: ; 11c35f (47:435f)
+	ld hl, wcd2f
+	inc [hl]
+	inc [hl]
+	dec hl
+	dec hl
+	dec [hl]
+	push af
+	ld de, wcd2d
+	call Function11cfce
+	pop af
+	ret nz
+	jp Function11cfb5
+
+Function11c373: ; 11c373 (47:4373)
+	ld hl, wcd30
+	inc [hl]
+	inc [hl]
+	dec hl
+	dec hl
+	dec [hl]
+	push af
+	ld de, wcd2d
+	call Function11cfce
+	pop af
+	ret nz
+	call Function11c38a
+	jp Function11cfb5
+
+Function11c38a: ; 11c38a (47:438a)
+	ld hl, Unknown_11c986
+	ld bc, wcd36
+	ld a, $6
+.asm_11c392
+	push af
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push hl
+	push de
+	pop hl
+	ld a, [bc]
+	inc bc
+	ld e, a
+	ld a, [bc]
+	inc bc
+	ld d, a
+	push bc
+	or e
+	jr z, .asm_11c3af
+	ld a, e
+	and d
+	cp $ff
+	jr z, .asm_11c3af
+	call Function11c05d
+	jr .asm_11c3b5
+.asm_11c3af
+	ld de, String_11c3bc
+	call PlaceString
+.asm_11c3b5
+	pop bc
+	pop hl
+	pop af
+	dec a
+	jr nz, .asm_11c392
+	ret
+; 11c3bc (47:43bc)
+
+String_11c3bc: ; 11c3bc
+	db "ーーーーー@"
+; 11c3c2
+
+Function11c3c2: ; 11c3c2 (47:43c2)
+	call EZChat_ClearBottom12Rows
+	ld de, Unknown_11cfbe
+	call Function11d035
+	hlcoord 1, 7
+	ld de, String_11c4db
+	call PlaceString
+	hlcoord 1, 16
+	ld de, String_11c51b
+	call PlaceString
+	call Function11c4be
+	ld hl, wcd23
+	set 0, [hl]
+	ld hl, wcd24
+	res 0, [hl]
+	call Function11cfb5
+
+Function11c3ed: ; 11c3ed (47:43ed)
+	ld hl, wcd20 ; wcd20
+	ld de, hJoypadPressed ; $ffa3
+	ld a, [de]
+	and $8
+	jr nz, .asm_11c426
+	ld a, [de]
+	and $2
+	jr nz, .asm_11c41a
+	ld a, [de]
+	and $1
+	jr nz, .asm_11c42c
+	ld de, hJoyLast
+	ld a, [de]
+	and $40
+	jr nz, .asm_11c47c
+	ld a, [de]
+	and $80
+	jr nz, .asm_11c484
+	ld a, [de]
+	and $20
+	jr nz, .asm_11c48c
+	ld a, [de]
+	and $10
+	jr nz, .asm_11c498
+	ret
+
+.asm_11c41a
+	call PlayClickSFX
+.asm_11c41d
+	ld hl, wcd24
+	set 0, [hl]
+	ld a, $c
+	jr .asm_11c475
+.asm_11c426
+	ld a, $8
+	ld [wcd20], a ; wcd20
+	ret
+
+.asm_11c42c
+	ld a, [wcd20] ; wcd20
+	cp $6
+	jr c, .asm_11c472
+	sub $6
+	jr z, .asm_11c469
+	dec a
+	jr z, .asm_11c41d
+	ld hl, wcd36
+	ld c, $c
+	xor a
+.asm_11c440
+	or [hl]
+	inc hl
+	dec c
+	jr nz, .asm_11c440
+	and a
+	jr z, .asm_11c460
+	ld de, Unknown_11cfba
+	call Function11cfce
+	decoord 1, 2
+	ld bc, wcd36
+	call Function11c08f
+	ld hl, wcd24
+	set 0, [hl]
+	ld a, $e
+	jr .asm_11c475
+.asm_11c460
+	ld hl, wcd24
+	set 0, [hl]
+	ld a, $11
+	jr .asm_11c475
+.asm_11c469
+	ld hl, wcd24
+	set 0, [hl]
+	ld a, $a
+	jr .asm_11c475
+.asm_11c472
+	call Function11c4a5
+.asm_11c475
+	ld [wJumptableIndex], a
+	call PlayClickSFX
+	ret
+
+.asm_11c47c
+	ld a, [hl]
+	cp $3
+	ret c
+	sub $3
+	jr .asm_11c4a3
+.asm_11c484
+	ld a, [hl]
+	cp $6
+	ret nc
+	add $3
+	jr .asm_11c4a3
+.asm_11c48c
+	ld a, [hl]
+	and a
+	ret z
+	cp $3
+	ret z
+	cp $6
+	ret z
+	dec a
+	jr .asm_11c4a3
+.asm_11c498
+	ld a, [hl]
+	cp $2
+	ret z
+	cp $5
+	ret z
+	cp $8
+	ret z
+	inc a
+.asm_11c4a3
+	ld [hl], a
+	ret
+
+Function11c4a5: ; 11c4a5 (47:44a5)
+	ld hl, wcd23
+	res 0, [hl]
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_11c4b7
+	xor a
+	ld [wcd21], a
+	ld a, $6
+	ret
+
+.asm_11c4b7
+	xor a
+	ld [wcd22], a
+	ld a, $15
+	ret
+
+Function11c4be: ; 11c4be (47:44be)
+	ld a, $1
+	hlcoord 0, 6, AttrMap
+	ld bc, $a0
+	call ByteFill
+	ld a, $7
+	hlcoord 0, 14, AttrMap
+	ld bc, $28
+	call ByteFill
+	callba ReloadMapPart
+	ret
+; 11c4db (47:44db)
+
+String_11c4db: ; 11c4db
+	db   "6つのことば¯くみあわせます"
+	next "かえたいところ¯えらぶと でてくる"
+	next "ことばのグループから いれかえたい"
+	next "たんご¯えらんでください"
+	db   "@"
+; 11c51b
+
+String_11c51b: ; 11c51b
+	db "ぜんぶけす やめる   けってい@"
+; 11c52c
+
+Function11c52c: ; 11c52c (47:452c)
+	call EZChat_ClearBottom12Rows
+	call EZChat_PlaceCategoryNames
+	call Function11c618
+	ld hl, wcd24
+	res 1, [hl]
+	call Function11cfb5
+
+Function11c53d: ; 11c53d (47:453d)
+	ld hl, wcd21
+	ld de, hJoypadPressed ; $ffa3
+
+	ld a, [de]
+	and START
+	jr nz, .start
+
+	ld a, [de]
+	and SELECT
+	jr nz, .select
+
+	ld a, [de]
+	and B_BUTTON
+	jr nz, .b
+
+	ld a, [de]
+	and A_BUTTON
+	jr nz, .a
+
+	ld de, hJoyLast
+
+	ld a, [de]
+	and D_UP
+	jr nz, .up
+
+	ld a, [de]
+	and D_DOWN
+	jr nz, .down
+
+	ld a, [de]
+	and D_LEFT
+	jr nz, .left
+
+	ld a, [de]
+	and D_RIGHT
+	jr nz, .right
+
+	ret
+
+.a
+	ld a, [wcd21]
+	cp 15
+	jr c, .got_category
+	sub $f
+	jr z, .done
+	dec a
+	jr z, .mode
+	jr .b
+
+.start
+	ld hl, wcd24
+	set 0, [hl]
+	ld a, $8
+	ld [wcd20], a ; wcd20
+
+.b
+	ld a, $4
+	jr .go_to_function
+
+.select
+	ld a, [wcd2b]
+	xor $1
+	ld [wcd2b], a
+	ld a, $15
+	jr .go_to_function
+
+.mode
+	ld a, $13
+	jr .go_to_function
+
+.got_category
+	ld a, $8
+
+.go_to_function
+	ld hl, wcd24
+	set 1, [hl]
+	ld [wJumptableIndex], a
+	call PlayClickSFX
+	ret
+
+.done
+	ld a, [wcd20] ; wcd20
+	call Function11ca6a
+	call PlayClickSFX
+	ret
+
+.up
+	ld a, [hl]
+	cp $3
+	ret c
+	sub $3
+	jr .finish_dpad
+
+.down
+	ld a, [hl]
+	cp $f
+	ret nc
+	add $3
+	jr .finish_dpad
+
+.left
+	ld a, [hl]
+	and a
+	ret z
+	cp $3
+	ret z
+	cp $6
+	ret z
+	cp $9
+	ret z
+	cp $c
+	ret z
+	cp $f
+	ret z
+	dec a
+	jr .finish_dpad
+
+.right
+	ld a, [hl]
+	cp $2
+	ret z
+	cp $5
+	ret z
+	cp $8
+	ret z
+	cp $b
+	ret z
+	cp $e
+	ret z
+	cp $11
+	ret z
+	inc a
+
+.finish_dpad
+	ld [hl], a
+	ret
+; 11c5f0
+
+EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0)
+	ld de, MobileEZChatCategoryNames
+	ld bc, Coords_11c63a
+	ld a, 15
+.loop
+	push af
+	ld a, [bc]
+	inc bc
+	ld l, a
+	ld a, [bc]
+	inc bc
+	ld h, a
+	push bc
+	call PlaceString
+	; The category names are padded with "@".
+	; To find the next category, the system must
+	; find the first character at de that is not "@".
+.find_next_string_loop
+	inc de
+	ld a, [de]
+	cp "@"
+	jr z, .find_next_string_loop
+	pop bc
+	pop af
+	dec a
+	jr nz, .loop
+	hlcoord 1, 17
+	ld de, EZChatString_Stop_Mode_Cancel
+	call PlaceString
+	ret
+
+Function11c618: ; 11c618 (47:4618)
+	ld a, $2
+	hlcoord 0, 6, AttrMap
+	ld bc, $c8
+	call ByteFill
+	callba ReloadMapPart
+	ret
+; 11c62a (47:462a)
+
+EZChatString_Stop_Mode_Cancel: ; 11c62a
+	db "けす    モード   やめる@"
+; 11c63a
+
+Coords_11c63a: ; 11c63a
+	dwcoord  1,  7
+	dwcoord  7,  7
+	dwcoord 13,  7
+	dwcoord  1,  9
+	dwcoord  7,  9
+	dwcoord 13,  9
+	dwcoord  1, 11
+	dwcoord  7, 11
+	dwcoord 13, 11
+	dwcoord  1, 13
+	dwcoord  7, 13
+	dwcoord 13, 13
+	dwcoord  1, 15
+	dwcoord  7, 15
+	dwcoord 13, 15
+; 11c658
+
+Function11c658: ; 11c658 (47:4658)
+	call EZChat_ClearBottom12Rows
+	call Function11c770
+	ld de, Unknown_11cfc2
+	call Function11d035
+	call Function11c9ab
+	call Function11c7bc
+	call Function11c86e
+	ld hl, wcd24
+	res 3, [hl]
+	call Function11cfb5
+
+Function11c675: ; 11c675 (47:4675)
+	ld hl, wMobileCommsJumptableIndex
+	ld de, hJoypadPressed ; $ffa3
+	ld a, [de]
+	and A_BUTTON
+	jr nz, .a
+	ld a, [de]
+	and B_BUTTON
+	jr nz, .b
+	ld a, [de]
+	and START
+	jr nz, .start
+	ld a, [de]
+	and SELECT
+	jr z, .select
+
+	ld a, [wcd26]
+	and a
+	ret z
+	sub $c
+	jr nc, .asm_11c699
+	xor a
+.asm_11c699
+	ld [wcd26], a
+	jr .asm_11c6c4
+
+.start
+	ld hl, wcd28
+	ld a, [wcd26]
+	add $c
+	cp [hl]
+	ret nc
+	ld [wcd26], a
+	ld a, [hl]
+	ld b, a
+	ld hl, wMobileCommsJumptableIndex
+	ld a, [wcd26]
+	add [hl]
+	jr c, .asm_11c6b9
+	cp b
+	jr c, .asm_11c6c4
+.asm_11c6b9
+	ld a, [wcd28]
+	ld hl, wcd26
+	sub [hl]
+	dec a
+	ld [wMobileCommsJumptableIndex], a
+.asm_11c6c4
+	call Function11c992
+	call Function11c7bc
+	call Function11c86e
+	ret
+
+.select
+	ld de, hJoyLast
+	ld a, [de]
+	and D_UP
+	jr nz, .asm_11c708
+	ld a, [de]
+	and D_DOWN
+	jr nz, .asm_11c731
+	ld a, [de]
+	and D_LEFT
+	jr nz, .asm_11c746
+	ld a, [de]
+	and D_RIGHT
+	jr nz, .asm_11c755
+	ret
+
+.a
+	call Function11c8f6
+	ld a, $4
+	ld [wcd35], a
+	jr .asm_11c6fc
+.b
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_11c6fa
+	ld a, $6
+	jr .asm_11c6fc
+.asm_11c6fa
+	ld a, $15
+.asm_11c6fc
+	ld [wJumptableIndex], a
+	ld hl, wcd24
+	set 3, [hl]
+	call PlayClickSFX
+	ret
+
+.asm_11c708
+	ld a, [hl]
+	cp $3
+	jr c, .asm_11c711
+	sub $3
+	jr .asm_11c76e
+.asm_11c711
+	ld a, [wcd26]
+	sub $3
+	ret c
+	ld [wcd26], a
+	jr .asm_11c6c4
+.asm_11c71c
+	ld hl, wcd28
+	ld a, [wcd26]
+	add $c
+	ret c
+	cp [hl]
+	ret nc
+	ld a, [wcd26]
+	add $3
+	ld [wcd26], a
+	jr .asm_11c6c4
+.asm_11c731
+	ld a, [wcd28]
+	ld b, a
+	ld a, [wcd26]
+	add [hl]
+	add $3
+	cp b
+	ret nc
+	ld a, [hl]
+	cp $9
+	jr nc, .asm_11c71c
+	add $3
+	jr .asm_11c76e
+.asm_11c746
+	ld a, [hl]
+	and a
+	ret z
+	cp $3
+	ret z
+	cp $6
+	ret z
+	cp $9
+	ret z
+	dec a
+	jr .asm_11c76e
+.asm_11c755
+	ld a, [wcd28]
+	ld b, a
+	ld a, [wcd26]
+	add [hl]
+	inc a
+	cp b
+	ret nc
+	ld a, [hl]
+	cp $2
+	ret z
+	cp $5
+	ret z
+	cp $8
+	ret z
+	cp $b
+	ret z
+	inc a
+.asm_11c76e
+	ld [hl], a
+	ret
+
+Function11c770: ; 11c770 (47:4770)
+	xor a
+	ld [wMobileCommsJumptableIndex], a
+	ld [wcd26], a
+	ld [wcd27], a
+	ld a, [wcd2b]
+	and a
+	jr nz, .cd2b_is_nonzero
+	ld a, [wcd21]
+	and a
+	jr z, .cd21_is_zero
+	; load from data array
+	dec a
+	sla a
+	ld hl, MobileEZChatData_WordAndPageCounts
+	ld c, a
+	ld b, 0
+	add hl, bc
+	ld a, [hli]
+	ld [wcd28], a
+	ld a, [hl]
+.load
+	ld [wcd29], a
+	ret
+
+.cd21_is_zero
+	; compute from [wc7d2]
+	ld a, [wc7d2]
+	ld [wcd28], a
+.div_12
+	ld c, 12
+	call SimpleDivide
+	and a
+	jr nz, .no_need_to_floor
+	dec b
+.no_need_to_floor
+	ld a, b
+	jr .load
+
+.cd2b_is_nonzero
+	; compute from [c6a8 + 2 * [cd22]]
+	ld hl, $c6a8 ; $c68a + 30
+	ld a, [wcd22]
+	ld c, a
+	ld b, 0
+	add hl, bc
+	add hl, bc
+	ld a, [hl]
+	ld [wcd28], a
+	jr .div_12
+
+Function11c7bc: ; 11c7bc (47:47bc)
+	ld bc, Unknown_11c854
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_11c814
+	ld a, [wcd21]
+	ld d, a
+	and a
+	jr z, .asm_11c7e9
+	ld a, [wcd26]
+	ld e, a
+.asm_11c7d0
+	ld a, [bc]
+	ld l, a
+	inc bc
+	ld a, [bc]
+	ld h, a
+	inc bc
+	and l
+	cp $ff
+	ret z
+	push bc
+	push de
+	call Function11c05d
+	pop de
+	pop bc
+	inc e
+	ld a, [wcd28]
+	cp e
+	jr nz, .asm_11c7d0
+	ret
+
+.asm_11c7e9
+	ld hl, wListPointer
+	ld a, [wcd26]
+	ld e, a
+	add hl, de
+.asm_11c7f1
+	push de
+	ld a, [hli]
+	ld e, a
+	ld d, $0
+	push hl
+	ld a, [bc]
+	ld l, a
+	inc bc
+	ld a, [bc]
+	ld h, a
+	inc bc
+	and l
+	cp $ff
+	jr z, .asm_11c811
+	push bc
+	call Function11c05d
+	pop bc
+	pop hl
+	pop de
+	inc e
+	ld a, [wcd28]
+	cp e
+	jr nz, .asm_11c7f1
+	ret
+
+.asm_11c811
+	pop hl
+	pop de
+	ret
+
+.asm_11c814
+	ld hl, $c648
+	ld a, [wcd22]
+	ld e, a
+	ld d, $0
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	push de
+	pop hl
+	ld a, [wcd26]
+	ld e, a
+	ld d, $0
+	add hl, de
+	add hl, de
+	ld a, [wcd26]
+	ld e, a
+.asm_11c831
+	push de
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push hl
+	ld a, [bc]
+	ld l, a
+	inc bc
+	ld a, [bc]
+	ld h, a
+	inc bc
+	and l
+	cp $ff
+	jr z, .asm_11c851
+	push bc
+	call Function11c05d
+	pop bc
+	pop hl
+	pop de
+	inc e
+	ld a, [wcd28]
+	cp e
+	jr nz, .asm_11c831
+	ret
+
+.asm_11c851
+	pop hl
+	pop de
+	ret
+; 11c854 (47:4854)
+
+Unknown_11c854: ; 11c854
+	dwcoord  2,  8
+	dwcoord  8,  8
+	dwcoord 14,  8
+	dwcoord  2, 10
+	dwcoord  8, 10
+	dwcoord 14, 10
+	dwcoord  2, 12
+	dwcoord  8, 12
+	dwcoord 14, 12
+	dwcoord  2, 14
+	dwcoord  8, 14
+	dwcoord 14, 14
+	dw -1
+; 11c86e
+
+Function11c86e: ; 11c86e (47:486e)
+	ld a, [wcd26]
+	and a
+	jr z, .asm_11c88a
+	hlcoord 2, 17
+	ld de, MobileString_Prev
+	call PlaceString
+	hlcoord 6, 17
+	ld c, $3
+	xor a
+.asm_11c883
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .asm_11c883
+	jr .asm_11c895
+.asm_11c88a
+	hlcoord 2, 17
+	ld c, $7
+	ld a, $7f
+.asm_11c891
+	ld [hli], a
+	dec c
+	jr nz, .asm_11c891
+.asm_11c895
+	ld hl, wcd28
+	ld a, [wcd26]
+	add $c
+	jr c, .asm_11c8b7
+	cp [hl]
+	jr nc, .asm_11c8b7
+	hlcoord 16, 17
+	ld de, MobileString_Next
+	call PlaceString
+	hlcoord 11, 17
+	ld a, $3
+	ld c, a
+.asm_11c8b1
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .asm_11c8b1
+	ret
+
+.asm_11c8b7
+	hlcoord 17, 16
+	ld a, $7f
+	ld [hl], a
+	hlcoord 11, 17
+	ld c, $7
+.asm_11c8c2
+	ld [hli], a
+	dec c
+	jr nz, .asm_11c8c2
+	ret
+; 11c8c7 (47:48c7)
+
+BCD2String: ; 11c8c7
+	inc a
+	push af
+	and $f
+	ld [hDividend], a
+	pop af
+	and $f0
+	swap a
+	ld [hDividend + 1], a
+	xor a
+	ld [hDividend + 2], a
+	push hl
+	callba Function11a80c
+	pop hl
+	ld a, [wcd63]
+	add "0"
+	ld [hli], a
+	ld a, [wcd62]
+	add "0"
+	ld [hli], a
+	ret
+; 11c8ec
+
+MobileString_Page: ; 11c8ec
+	db "ぺージ@"
+; 11c8f0
+
+MobileString_Prev: ; 11c8f0
+	db "まえ@"
+; 11c8f3
+
+MobileString_Next: ; 11c8f3
+	db "つぎ@"
+; 11c8f6
+
+Function11c8f6: ; 11c8f6 (47:48f6)
+	ld a, [wcd20] ; wcd20
+	call Function11c95d
+	push hl
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_11c938
+	ld a, [wcd21]
+	ld d, a
+	and a
+	jr z, .asm_11c927
+	ld hl, wcd26
+	ld a, [wMobileCommsJumptableIndex]
+	add [hl]
+.asm_11c911
+	ld e, a
+.asm_11c912
+	pop hl
+	push de
+	call Function11c05d
+	pop de
+	ld a, [wcd20] ; wcd20
+	ld c, a
+	ld b, $0
+	ld hl, wcd36
+	add hl, bc
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ret
+
+.asm_11c927
+	ld hl, wcd26
+	ld a, [wMobileCommsJumptableIndex]
+	add [hl]
+	ld c, a
+	ld b, $0
+	ld hl, wListPointer
+	add hl, bc
+	ld a, [hl]
+	jr .asm_11c911
+.asm_11c938
+	ld hl, $c648
+	ld a, [wcd22]
+	ld e, a
+	ld d, $0
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	push de
+	pop hl
+	ld a, [wcd26]
+	ld e, a
+	ld d, $0
+	add hl, de
+	add hl, de
+	ld a, [wMobileCommsJumptableIndex]
+	ld e, a
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	jr .asm_11c912
+
+Function11c95d: ; 11c95d (47:495d)
+	sla a
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_11c986
+	add hl, bc
+	ld a, [hli]
+	ld c, a
+	ld a, [hl]
+	ld b, a
+	push bc
+	push bc
+	pop hl
+	ld a, $5
+	ld c, a
+	ld a, $7f
+.asm_11c972
+	ld [hli], a
+	dec c
+	jr nz, .asm_11c972
+	dec hl
+	ld bc, -20
+	add hl, bc
+	ld a, $5
+	ld c, a
+	ld a, $7f
+.asm_11c980
+	ld [hld], a
+	dec c
+	jr nz, .asm_11c980
+	pop hl
+	ret
+; 11c986 (47:4986)
+
+Unknown_11c986:
+	dwcoord  1,  2
+	dwcoord  7,  2
+	dwcoord 13,  2
+	dwcoord  1,  4
+	dwcoord  7,  4
+	dwcoord 13,  4
+; 11c992
+
+Function11c992: ; 11c992 (47:4992)
+	ld a, $8
+	hlcoord 2, 7
+.asm_11c997
+	push af
+	ld a, $7f
+	push hl
+	ld bc, $11
+	call ByteFill
+	pop hl
+	ld bc, $14
+	add hl, bc
+	pop af
+	dec a
+	jr nz, .asm_11c997
+	ret
+
+Function11c9ab: ; 11c9ab (47:49ab)
+	ld a, $7
+	hlcoord 0, 6, AttrMap
+	ld bc, $c8
+	call ByteFill
+	callba ReloadMapPart
+	ret
+
+Function11c9bd: ; 11c9bd (47:49bd)
+	ld de, String_11ca38
+	call Function11ca7f
+
+Function11c9c3: ; 11c9c3 (47:49c3)
+	ld hl, wcd2a
+	ld de, hJoypadPressed ; $ffa3
+	ld a, [de]
+	and $1
+	jr nz, .asm_11c9de
+	ld a, [de]
+	and $2
+	jr nz, .asm_11c9e9
+	ld a, [de]
+	and $40
+	jr nz, .asm_11c9f7
+	ld a, [de]
+	and $80
+	jr nz, .asm_11c9fc
+	ret
+
+.asm_11c9de
+	ld a, [hl]
+	and a
+	jr nz, .asm_11c9e9
+	call Function11ca5e
+	xor a
+	ld [wcd20], a ; wcd20
+.asm_11c9e9
+	ld hl, wcd24
+	set 4, [hl]
+	ld a, $4
+	ld [wJumptableIndex], a
+	call PlayClickSFX
+	ret
+
+.asm_11c9f7
+	ld a, [hl]
+	and a
+	ret z
+	dec [hl]
+	ret
+
+.asm_11c9fc
+	ld a, [hl]
+	and a
+	ret nz
+	inc [hl]
+	ret
+
+Function11ca01: ; 11ca01 (47:4a01)
+	hlcoord 14, 7, AttrMap
+	ld de, $14
+	ld a, $5
+	ld c, a
+.asm_11ca0a
+	push hl
+	ld a, $6
+	ld b, a
+	ld a, $7
+.asm_11ca10
+	ld [hli], a
+	dec b
+	jr nz, .asm_11ca10
+	pop hl
+	add hl, de
+	dec c
+	jr nz, .asm_11ca0a
+
+Function11ca19: ; 11ca19 (47:4a19)
+	hlcoord 0, 12, AttrMap
+	ld de, $14
+	ld a, $6
+	ld c, a
+.asm_11ca22
+	push hl
+	ld a, $14
+	ld b, a
+	ld a, $7
+.asm_11ca28
+	ld [hli], a
+	dec b
+	jr nz, .asm_11ca28
+	pop hl
+	add hl, de
+	dec c
+	jr nz, .asm_11ca22
+	callba ReloadMapPart
+	ret
+; 11ca38 (47:4a38)
+
+String_11ca38: ; 11ca38
+	db   "とうろくちゅう", $25, "あいさつ¯ぜんぶ"
+	next "けしても よろしいですか?@"
+; 11ca57
+
+String_11ca57: ; 11ca57
+	db   "はい"
+	next "いいえ@"
+; 11ca5e
+
+Function11ca5e: ; 11ca5e (47:4a5e)
+	xor a
+.loop
+	push af
+	call Function11ca6a
+	pop af
+	inc a
+	cp $6
+	jr nz, .loop
+	ret
+
+Function11ca6a: ; 11ca6a (47:4a6a)
+	ld hl, wcd36
+	ld c, a
+	ld b, $0
+	add hl, bc
+	add hl, bc
+	ld [hl], b
+	inc hl
+	ld [hl], b
+	call Function11c95d
+	ld de, String_11c3bc
+	call PlaceString
+	ret
+
+Function11ca7f: ; 11ca7f (47:4a7f)
+	push de
+	ld de, Unknown_11cfc6
+	call Function11cfce
+	ld de, Unknown_11cfca
+	call Function11cfce
+	hlcoord 1, 14
+	pop de
+	call PlaceString
+	hlcoord 16, 8
+	ld de, String_11ca57
+	call PlaceString
+	call Function11ca01
+	ld a, $1
+	ld [wcd2a], a
+	ld hl, wcd24
+	res 4, [hl]
+	call Function11cfb5
+	ret
+
+Function11caad: ; 11caad (47:4aad)
+	ld de, String_11cb1c
+	call Function11ca7f
+
+Function11cab3: ; 11cab3 (47:4ab3)
+	ld hl, wcd2a
+	ld de, hJoypadPressed ; $ffa3
+	ld a, [de]
+	and $1
+	jr nz, .asm_11cace
+	ld a, [de]
+	and $2
+	jr nz, .asm_11caf9
+	ld a, [de]
+	and $40
+	jr nz, .asm_11cb12
+	ld a, [de]
+	and $80
+	jr nz, .asm_11cb17
+	ret
+
+.asm_11cace
+	call PlayClickSFX
+	ld a, [hl]
+	and a
+	jr nz, .asm_11cafc
+	ld a, [wcd35]
+	and a
+	jr z, .asm_11caf3
+	cp $ff
+	jr z, .asm_11caf3
+	ld a, $ff
+	ld [wcd35], a
+	hlcoord 1, 14
+	ld de, String_11cb31
+	call PlaceString
+	ld a, $1
+	ld [wcd2a], a
+	ret
+
+.asm_11caf3
+	ld hl, wJumptableIndex
+	set 7, [hl]
+	ret
+
+.asm_11caf9
+	call PlayClickSFX
+.asm_11cafc
+	ld hl, wcd24
+	set 4, [hl]
+	ld a, $4
+	ld [wJumptableIndex], a
+	ld a, [wcd35]
+	cp $ff
+	ret nz
+	ld a, $1
+	ld [wcd35], a
+	ret
+
+.asm_11cb12
+	ld a, [hl]
+	and a
+	ret z
+	dec [hl]
+	ret
+
+.asm_11cb17
+	ld a, [hl]
+	and a
+	ret nz
+	inc [hl]
+	ret
+; 11cb1c (47:4b1c)
+
+String_11cb1c: ; 11cb1c
+	db   "あいさつ", $25, "とうろく¯ちゅうし"
+	next "しますか?@"
+; 11cb31
+
+String_11cb31: ; 11cb31
+	db   "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
+	next "されません", $4a, "よろしい ですか?@"
+; 11cb52
+
+Function11cb52: ; 11cb52 (47:4b52)
+	ld hl, Unknown_11cc01
+	ld a, [wMenuCursorY]
+.asm_11cb58
+	dec a
+	jr z, .asm_11cb5f
+	inc hl
+	inc hl
+	jr .asm_11cb58
+.asm_11cb5f
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	call Function11ca7f
+
+Function11cb66: ; 11cb66 (47:4b66)
+	ld hl, wcd2a
+	ld de, hJoypadPressed ; $ffa3
+	ld a, [de]
+	and $1
+	jr nz, .asm_11cb81
+	ld a, [de]
+	and $2
+	jr nz, .asm_11cbd7
+	ld a, [de]
+	and $40
+	jr nz, .asm_11cbeb
+	ld a, [de]
+	and $80
+	jr nz, .asm_11cbf0
+	ret
+
+.asm_11cb81
+	ld a, [hl]
+	and a
+	jr nz, .asm_11cbd4
+	ld a, $4
+	call GetSRAMBank
+	ld hl, $a007
+	ld a, [wMenuCursorY]
+	dec a
+	sla a
+	sla a
+	ld c, a
+	sla a
+	add c
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld de, wcd36
+	ld c, $c
+.asm_11cba2
+	ld a, [de]
+	ld [hli], a
+	inc de
+	dec c
+	jr nz, .asm_11cba2
+	call CloseSRAM
+	call PlayClickSFX
+	ld de, Unknown_11cfc6
+	call Function11cfce
+	ld hl, Unknown_11cc7e
+	ld a, [wMenuCursorY]
+.asm_11cbba
+	dec a
+	jr z, .asm_11cbc1
+	inc hl
+	inc hl
+	jr .asm_11cbba
+.asm_11cbc1
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	hlcoord 1, 14
+	call PlaceString
+	ld hl, wJumptableIndex
+	inc [hl]
+	inc hl
+	ld a, $10
+	ld [hl], a
+	ret
+
+.asm_11cbd4
+	call PlayClickSFX
+.asm_11cbd7
+	ld de, Unknown_11cfba
+	call Function11cfce
+	call Function11c38a
+	ld hl, wcd24
+	set 4, [hl]
+	ld a, $4
+	ld [wJumptableIndex], a
+	ret
+
+.asm_11cbeb
+	ld a, [hl]
+	and a
+	ret z
+	dec [hl]
+	ret
+
+.asm_11cbf0
+	ld a, [hl]
+	and a
+	ret nz
+	inc [hl]
+	ret
+
+Function11cbf5: ; 11cbf5 (47:4bf5)
+	call WaitSFX
+	ld hl, wcf64
+	dec [hl]
+	ret nz
+	dec hl
+	set 7, [hl]
+	ret
+; 11cc01 (47:4c01)
+
+Unknown_11cc01: ; 11cc01
+	dw String_11cc09
+	dw String_11cc23
+	dw String_11cc42
+	dw String_11cc60
+
+String_11cc09: ; 11cc09
+	db   "じこしょうかい は"
+	next "この あいさつで いいですか?@"
+
+String_11cc23: ; 11cc23
+	db   "たいせん ", $4a, "はじまるとき は"
+	next "この あいさつで いいですか?@"
+
+String_11cc42: ; 11cc42
+	db   "たいせん ", $1d, "かったとき は"
+	next "この あいさつで いいですか?@"
+
+String_11cc60: ; 11cc60
+	db   "たいせん ", $1d, "まけたとき は"
+	next "この あいさつで いいですか?@"
+; 11cc7e
+
+Unknown_11cc7e: ; 11cc7e
+	dw String_11cc86
+	dw String_11cc9d
+	dw String_11ccb9
+	dw String_11ccd4
+
+String_11cc86: ; 11cc86
+	db   "じこしょうかい の"
+	next "あいさつ¯とうろくした!@"
+
+String_11cc9d: ; 11cc9d
+	db   "たいせん ", $4a, "はじまるとき の"
+	next "あいさつ¯とうろくした!@"
+
+String_11ccb9: ; 11ccb9
+	db   "たいせん ", $1d, "かったとき の"
+	next "あいさつ¯とうろくした!@"
+
+String_11ccd4: ; 11ccd4
+	db   "たいせん ", $1d, "まけたとき の"
+	next "あいさつ¯とうろくした!@"
+; 11ccef
+
+Function11ccef: ; 11ccef (47:4cef)
+	ld de, Unknown_11cfc6
+	call Function11cfce
+	hlcoord 1, 14
+	ld de, String_11cd10
+	call PlaceString
+	call Function11ca19
+	call Function11cfb5
+
+Function11cd04: ; 11cd04 (47:4d04)
+	ld de, hJoypadPressed ; $ffa3
+	ld a, [de]
+	and a
+	ret z
+	ld a, $4
+	ld [wJumptableIndex], a
+	ret
+; 11cd10 (47:4d10)
+
+String_11cd10: ; 11cd10
+	db "なにか ことば¯いれてください@"
+; 11cd20
+
+Function11cd20: ; 11cd20 (47:4d20)
+	call EZChat_ClearBottom12Rows
+	ld de, Unknown_11cfc6
+	call Function11cfce
+	hlcoord 1, 14
+	ld a, [wcd2b]
+	ld [wcd2c], a
+	and a
+	jr nz, .asm_11cd3a
+	ld de, String_11cdc7
+	jr .asm_11cd3d
+.asm_11cd3a
+	ld de, String_11cdd9
+.asm_11cd3d
+	call PlaceString
+	hlcoord 4, 8
+	ld de, String_11cdf5
+	call PlaceString
+	call Function11cdaa
+	ld hl, wcd24
+	res 5, [hl]
+	call Function11cfb5
+
+Function11cd54: ; 11cd54 (47:4d54)
+	ld hl, wcd2c
+	ld de, hJoypadPressed ; $ffa3
+	ld a, [de]
+	and A_BUTTON
+	jr nz, .asm_11cd6f
+	ld a, [de]
+	and B_BUTTON
+	jr nz, .asm_11cd73
+	ld a, [de]
+	and D_UP
+	jr nz, .asm_11cd8b
+	ld a, [de]
+	and D_DOWN
+	jr nz, .asm_11cd94
+	ret
+
+.asm_11cd6f
+	ld a, [hl]
+	ld [wcd2b], a
+.asm_11cd73
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_11cd7d
+	ld a, $6
+	jr .asm_11cd7f
+
+.asm_11cd7d
+	ld a, $15
+.asm_11cd7f
+	ld [wJumptableIndex], a
+	ld hl, wcd24
+	set 5, [hl]
+	call PlayClickSFX
+	ret
+
+.asm_11cd8b
+	ld a, [hl]
+	and a
+	ret z
+	dec [hl]
+	ld de, String_11cdc7
+	jr .asm_11cd9b
+
+.asm_11cd94
+	ld a, [hl]
+	and a
+	ret nz
+	inc [hl]
+	ld de, String_11cdd9
+.asm_11cd9b
+	push de
+	ld de, Unknown_11cfc6
+	call Function11cfce
+	pop de
+	hlcoord 1, 14
+	call PlaceString
+	ret
+
+Function11cdaa: ; 11cdaa (47:4daa)
+	ld a, $2
+	hlcoord 0, 6, AttrMap
+	ld bc, 6 * SCREEN_WIDTH
+	call ByteFill
+	ld a, $7
+	hlcoord 0, 12, AttrMap
+	ld bc, 4 * SCREEN_WIDTH
+	call ByteFill
+	callba ReloadMapPart
+	ret
+; 11cdc7 (47:4dc7)
+
+String_11cdc7: ; 11cdc7
+; Words will be displayed by category
+	db   "ことば¯しゅるいべつに"
+	next "えらべます@"
+; 11cdd9
+
+String_11cdd9: ; 11cdd9
+; Words will be displayed in alphabetical order
+	db   "ことば¯アイウエォ の"
+	next "じゅんばんで ひょうじ します@"
+; 11cdf5
+
+String_11cdf5: ; 11cdf5
+	db   "しゅるいべつ モード"  ; Category mode
+	next "アイウエォ  モード@" ; ABC mode
+; 11ce0b
+
+Function11ce0b: ; 11ce0b (47:4e0b)
+	call EZChat_ClearBottom12Rows
+	hlcoord 1, 7
+	ld de, String_11cf79
+	call PlaceString
+	hlcoord 1, 17
+	ld de, EZChatString_Stop_Mode_Cancel
+	call PlaceString
+	call Function11c618
+	ld hl, wcd24
+	res 2, [hl]
+	call Function11cfb5
+
+Function11ce2b: ; 11ce2b (47:4e2b)
+	ld a, [wcd22]
+	sla a
+	sla a
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_11ceb9
+	add hl, bc
+
+	ld de, hJoypadPressed ; $ffa3
+	ld a, [de]
+	and START
+	jr nz, .start
+	ld a, [de]
+	and SELECT
+	jr nz, .select
+	ld a, [de]
+	and A_BUTTON
+	jr nz, .a
+	ld a, [de]
+	and B_BUTTON
+	jr nz, .b
+
+	ld de, hJoyLast
+	ld a, [de]
+	and D_UP
+	jr nz, .up
+	ld a, [de]
+	and D_DOWN
+	jr nz, .down
+	ld a, [de]
+	and D_LEFT
+	jr nz, .left
+	ld a, [de]
+	and D_RIGHT
+	jr nz, .right
+
+	ret
+
+.a
+	ld a, [wcd22]
+	cp NUM_KANA
+	jr c, .place
+	sub NUM_KANA
+	jr z, .done
+	dec a
+	jr z, .mode
+	jr .b
+
+.start
+	ld hl, wcd24
+	set 0, [hl]
+	ld a, $8
+	ld [wcd20], a ; wcd20
+.b
+	ld a, $4
+	jr .load
+
+.select
+	ld a, [wcd2b]
+	xor $1
+	ld [wcd2b], a
+	ld a, $6
+	jr .load
+
+.place
+	ld a, $8
+	jr .load
+
+.mode
+	ld a, $13
+.load
+	ld [wJumptableIndex], a
+	ld hl, wcd24
+	set 2, [hl]
+	call PlayClickSFX
+	ret
+
+.done
+	ld a, [wcd20] ; wcd20
+	call Function11ca6a
+	call PlayClickSFX
+	ret
+
+.left
+	inc hl
+.down
+	inc hl
+.right
+	inc hl
+.up
+	ld a, [hl]
+	cp $ff
+	ret z
+	ld [wcd22], a
+	ret
+; 11ceb9 (47:4eb9)
+
+Unknown_11ceb9: ; 11ceb9
+	; up left down right
+	db $ff, $01
+	db $05, $ff
+	db $ff, $02
+	db $06, $00
+	db $ff, $03
+	db $07, $01
+	db $ff, $04
+	db $08, $02
+	db $ff, $14
+	db $09, $03
+	db $00, $06
+	db $0a, $ff
+	db $01, $07
+	db $0b, $05
+	db $02, $08
+	db $0c, $06
+	db $03, $09
+	db $0d, $07
+	db $04, $19
+	db $0e, $08
+	db $05, $0b
+	db $0f, $ff
+	db $06, $0c
+	db $10, $0a
+	db $07, $0d
+	db $11, $0b
+	db $08, $0e
+	db $12, $0c
+	db $09, $1e
+	db $13, $0d
+	db $0a, $10
+	db $2d, $ff
+	db $0b, $11
+	db $2d, $0f
+	db $0c, $12
+	db $2d, $10
+	db $0d, $13
+	db $2d, $11
+	db $0e, $26
+	db $2d, $12
+	db $ff, $15
+	db $19, $04
+	db $ff, $16
+	db $1a, $14
+	db $ff, $17
+	db $1b, $15
+	db $ff, $18
+	db $1c, $16
+	db $ff, $23
+	db $1d, $17
+	db $14, $1a
+	db $1e, $09
+	db $15, $1b
+	db $1f, $19
+	db $16, $1c
+	db $20, $1a
+	db $17, $1d
+	db $21, $1b
+	db $18, $2b
+	db $22, $1c
+	db $19, $1f
+	db $26, $0e
+	db $1a, $20
+	db $27, $1e
+	db $1b, $21
+	db $28, $1f
+	db $1c, $22
+	db $29, $20
+	db $1d, $2c
+	db $2a, $21
+	db $ff, $24
+	db $2b, $18
+	db $ff, $25
+	db $2b, $23
+	db $ff, $ff
+	db $2b, $24
+	db $1e, $27
+	db $2e, $13
+	db $1f, $28
+	db $2e, $26
+	db $20, $29
+	db $2e, $27
+	db $21, $2a
+	db $2e, $28
+	db $22, $ff
+	db $2e, $29
+	db $23, $ff
+	db $2c, $1d
+	db $2b, $ff
+	db $2f, $22
+	db $0f, $2e
+	db $ff, $ff
+	db $26, $2f
+	db $ff, $2d
+	db $2c, $ff
+	db $ff, $2e
+; 11cf79
+
+String_11cf79: ; 11cf79
+; Hiragana table
+	db   "あいうえお なにぬねの や ゆ よ"
+	next "かきくけこ はひふへほ わ"
+	next "さしすせそ まみむめも そのた"
+	next "たちつてと らりるれろ"
+	db   "@"
+; 11cfb5
+
+Function11cfb5: ; 11cfb5 (47:4fb5)
+	ld hl, wJumptableIndex
+	inc [hl]
+	ret
+; 11cfba (47:4fba)
+
+Unknown_11cfba:
+	db  0,  0 ; start coords
+	db 20,  6 ; end coords
+
+Unknown_11cfbe:
+	db  0, 14 ; start coords
+	db 20,  4 ; end coords
+
+Unknown_11cfc2:
+	db  0,  6 ; start coords
+	db 20, 10 ; end coords
+
+Unknown_11cfc6:
+	db  0, 12 ; start coords
+	db 20,  6 ; end coords
+
+Unknown_11cfca:
+	db 14,  7 ; start coords
+	db  6,  5 ; end coords
+; 11cfce
+
+Function11cfce: ; 11cfce (47:4fce)
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH
+	ld a, [de]
+	inc de
+	push af
+	ld a, [de]
+	inc de
+	and a
+.add_n_times
+	jr z, .done_add_n_times
+	add hl, bc
+	dec a
+	jr .add_n_times
+.done_add_n_times
+	pop af
+	ld c, a
+	ld b, 0
+	add hl, bc
+	push hl
+	ld a, $79
+	ld [hli], a
+	ld a, [de]
+	inc de
+	dec a
+	dec a
+	jr z, .skip_fill
+	ld c, a
+	ld a, $7a
+.fill_loop
+	ld [hli], a
+	dec c
+	jr nz, .fill_loop
+.skip_fill
+	ld a, $7b
+	ld [hl], a
+	pop hl
+	ld bc, SCREEN_WIDTH
+	add hl, bc
+	ld a, [de]
+	dec de
+	dec a
+	dec a
+	jr z, .skip_section
+	ld b, a
+.loop
+	push hl
+	ld a, $7c
+	ld [hli], a
+	ld a, [de]
+	dec a
+	dec a
+	jr z, .skip_row
+	ld c, a
+	ld a, $7f
+.row_loop
+	ld [hli], a
+	dec c
+	jr nz, .row_loop
+.skip_row
+	ld a, $7c
+	ld [hl], a
+	pop hl
+	push bc
+	ld bc, SCREEN_WIDTH
+	add hl, bc
+	pop bc
+	dec b
+	jr nz, .loop
+.skip_section
+	ld a, $7d
+	ld [hli], a
+	ld a, [de]
+	dec a
+	dec a
+	jr z, .skip_remainder
+	ld c, a
+	ld a, $7a
+.final_loop
+	ld [hli], a
+	dec c
+	jr nz, .final_loop
+.skip_remainder
+	ld a, $7e
+	ld [hl], a
+	ret
+
+Function11d035: ; 11d035 (47:5035)
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH
+	ld a, [de]
+	inc de
+	push af
+	ld a, [de]
+	inc de
+	and a
+.add_n_times
+	jr z, .done_add_n_times
+	add hl, bc
+	dec a
+	jr .add_n_times
+.done_add_n_times
+	pop af
+	ld c, a
+	ld b, $0
+	add hl, bc
+	push hl
+	ld a, $79
+	ld [hl], a
+	pop hl
+	push hl
+	ld a, [de]
+	dec a
+	inc de
+	ld c, a
+	add hl, bc
+	ld a, $7b
+	ld [hl], a
+	call .AddNMinusOneTimes
+	ld a, $7e
+	ld [hl], a
+	pop hl
+	push hl
+	call .AddNMinusOneTimes
+	ld a, $7d
+	ld [hl], a
+	pop hl
+	push hl
+	inc hl
+	push hl
+	call .AddNMinusOneTimes
+	pop bc
+	dec de
+	ld a, [de]
+	cp $2
+	jr z, .skip
+	dec a
+	dec a
+.loop
+	push af
+	ld a, $7a
+	ld [hli], a
+	ld [bc], a
+	inc bc
+	pop af
+	dec a
+	jr nz, .loop
+.skip
+	pop hl
+	ld bc, $14
+	add hl, bc
+	push hl
+	ld a, [de]
+	dec a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	pop bc
+	inc de
+	ld a, [de]
+	cp $2
+	ret z
+	push bc
+	dec a
+	dec a
+	ld c, a
+	ld b, a
+	ld de, $14
+.loop2
+	ld a, $7c
+	ld [hl], a
+	add hl, de
+	dec c
+	jr nz, .loop2
+	pop hl
+.loop3
+	ld a, $7c
+	ld [hl], a
+	add hl, de
+	dec b
+	jr nz, .loop3
+	ret
+
+.AddNMinusOneTimes: ; 11d0ac (47:50ac)
+	ld a, [de]
+	dec a
+	ld bc, SCREEN_WIDTH
+.add_n_minus_one_times
+	add hl, bc
+	dec a
+	jr nz, .add_n_minus_one_times
+	ret
+
+AnimateEZChatCursor: ; 11d0b6 (47:50b6)
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, [hl]
+	ld e, a
+	ld d, 0
+	ld hl, .Jumptable
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+.Jumptable:
+	dw .zero
+	dw .one
+	dw .two
+	dw .three
+	dw .four
+	dw .five
+	dw .six
+	dw .seven
+	dw .eight
+	dw .nine
+	dw .ten
+
+.zero ; 11d0dd (47:50dd)
+	ld a, [wcd20] ; wcd20
+	sla a
+	ld hl, .Coords_Zero
+	ld e, $1
+	jr .load
+
+.one ; 11d0e9 (47:50e9)
+	ld a, [wcd21]
+	sla a
+	ld hl, .Coords_One
+	ld e, $2
+	jr .load
+
+.two ; 11d0f5 (47:50f5)
+	ld hl, .FramesetsIDs_Two
+	ld a, [wcd22]
+	ld e, a
+	ld d, $0
+	add hl, de
+	ld a, [hl]
+	call ReinitSpriteAnimFrame
+
+	ld a, [wcd22]
+	sla a
+	ld hl, .Coords_Two
+	ld e, $4
+	jr .load
+
+.three ; 11d10f (47:510f)
+	ld a, SPRITE_ANIM_FRAMESET_27
+	call ReinitSpriteAnimFrame
+	ld a, [wMobileCommsJumptableIndex]
+	sla a
+	ld hl, .Coords_Three
+	ld e, $8
+.load ; 11d11e (47:511e)
+	push de
+	ld e, a
+	ld d, $0
+	add hl, de
+	push hl
+	pop de
+	ld hl, SPRITEANIMSTRUCT_XCOORD
+	add hl, bc
+	ld a, [de]
+	inc de
+	ld [hli], a
+	ld a, [de]
+	ld [hl], a
+	pop de
+	ld a, e
+	call .UpdateObjectFlags
+	ret
+
+.four ; 11d134 (47:5134)
+	ld a, SPRITE_ANIM_FRAMESET_27
+	call ReinitSpriteAnimFrame
+	ld a, [wcd2a]
+	sla a
+	ld hl, .Coords_Four
+	ld e, $10
+	jr .load
+
+.five ; 11d145 (47:5145)
+	ld a, SPRITE_ANIM_FRAMESET_27
+	call ReinitSpriteAnimFrame
+	ld a, [wcd2c]
+	sla a
+	ld hl, .Coords_Five
+	ld e, $20
+	jr .load
+
+.six ; 11d156 (47:5156)
+	ld a, SPRITE_ANIM_FRAMESET_2A
+	call ReinitSpriteAnimFrame
+	; X = [wcd4a] * 8 + 24
+	ld a, [wcd4a]
+	sla a
+	sla a
+	sla a
+	add $18
+	ld hl, SPRITEANIMSTRUCT_XCOORD
+	add hl, bc
+	ld [hli], a
+	; Y = 48
+	ld a, $30
+	ld [hl], a
+
+	ld a, $1
+	ld e, a
+	call .UpdateObjectFlags
+	ret
+
+.seven ; 11d175 (47:5175)
+	ld a, [wEZChatCursorYCoord]
+	cp $4
+	jr z, .frameset_26
+	ld a, SPRITE_ANIM_FRAMESET_28
+	jr .got_frameset
+
+.frameset_26
+	ld a, SPRITE_ANIM_FRAMESET_26
+.got_frameset
+	call ReinitSpriteAnimFrame
+	ld a, [wEZChatCursorYCoord]
+	cp $4
+	jr z, .asm_11d1b1
+	; X = [wEZChatCursorXCoord] * 8 + 32
+	ld a, [wEZChatCursorXCoord]
+	sla a
+	sla a
+	sla a
+	add $20
+	ld hl, SPRITEANIMSTRUCT_XCOORD
+	add hl, bc
+	ld [hli], a
+	; Y = [wEZChatCursorYCoord] * 16 + 72
+	ld a, [wEZChatCursorYCoord]
+	sla a
+	sla a
+	sla a
+	sla a
+	add $48
+	ld [hl], a
+	ld a, $2
+	ld e, a
+	call .UpdateObjectFlags
+	ret
+
+.asm_11d1b1
+	; X = [wEZChatCursorXCoord] * 40 + 24
+	ld a, [wEZChatCursorXCoord]
+	sla a
+	sla a
+	sla a
+	ld e, a
+	sla a
+	sla a
+	add e
+	add $18
+	ld hl, SPRITEANIMSTRUCT_XCOORD
+	add hl, bc
+	ld [hli], a
+	; Y = 138
+	ld a, $8a
+	ld [hl], a
+	ld a, $2
+	ld e, a
+	call .UpdateObjectFlags
+	ret
+
+.nine ; 11d1d1 (47:51d1)
+	ld d, -13 * 8
+	ld a, SPRITE_ANIM_FRAMESET_2C
+	jr .eight_nine_load
+
+.eight ; 11d1d7 (47:51d7)
+	ld d, 2 * 8
+	ld a, SPRITE_ANIM_FRAMESET_2B
+.eight_nine_load ; 11d1db (47:51db)
+	push de
+	call ReinitSpriteAnimFrame
+	ld a, [wcd4a]
+	sla a
+	sla a
+	sla a
+	ld e, a
+	sla a
+	add e
+	add 8 * 8
+	ld hl, SPRITEANIMSTRUCT_YCOORD
+	add hl, bc
+	ld [hld], a
+	pop af
+	ld [hl], a
+	ld a, $4
+	ld e, a
+	call .UpdateObjectFlags
+	ret
+
+.ten ; 11d1fc (47:51fc)
+	ld a, SPRITE_ANIM_FRAMESET_26
+	call ReinitSpriteAnimFrame
+	ld a, $8
+	ld e, a
+	call .UpdateObjectFlags
+	ret
+; 11d208 (47:5208)
+
+.Coords_Zero: ; 11d208
+	dbpixel  1,  3, 5, 2
+	dbpixel  7,  3, 5, 2
+	dbpixel 13,  3, 5, 2
+	dbpixel  1,  5, 5, 2
+	dbpixel  7,  5, 5, 2
+	dbpixel 13,  5, 5, 2
+	dbpixel  1, 17, 5, 2
+	dbpixel  7, 17, 5, 2
+	dbpixel 13, 17, 5, 2
+
+.Coords_One: ; 11d21a
+	dbpixel  1,  8, 5, 2
+	dbpixel  7,  8, 5, 2
+	dbpixel 13,  8, 5, 2
+	dbpixel  1, 10, 5, 2
+	dbpixel  7, 10, 5, 2
+	dbpixel 13, 10, 5, 2
+	dbpixel  1, 12, 5, 2
+	dbpixel  7, 12, 5, 2
+	dbpixel 13, 12, 5, 2
+	dbpixel  1, 14, 5, 2
+	dbpixel  7, 14, 5, 2
+	dbpixel 13, 14, 5, 2
+	dbpixel  1, 16, 5, 2
+	dbpixel  7, 16, 5, 2
+	dbpixel 13, 16, 5, 2
+	dbpixel  1, 18, 5, 2
+	dbpixel  7, 18, 5, 2
+	dbpixel 13, 18, 5, 2
+
+.Coords_Two: ; 11d23e
+	dbpixel  2,  9       ; 00
+	dbpixel  3,  9       ; 01
+	dbpixel  4,  9       ; 02
+	dbpixel  5,  9       ; 03
+	dbpixel  6,  9       ; 04
+	dbpixel  2, 11       ; 05
+	dbpixel  3, 11       ; 06
+	dbpixel  4, 11       ; 07
+	dbpixel  5, 11       ; 08
+	dbpixel  6, 11       ; 09
+	dbpixel  2, 13       ; 0a
+	dbpixel  3, 13       ; 0b
+	dbpixel  4, 13       ; 0c
+	dbpixel  5, 13       ; 0d
+	dbpixel  6, 13       ; 0e
+	dbpixel  2, 15       ; 0f
+	dbpixel  3, 15       ; 10
+	dbpixel  4, 15       ; 11
+	dbpixel  5, 15       ; 12
+	dbpixel  6, 15       ; 13
+	dbpixel  8,  9       ; 14
+	dbpixel  9,  9       ; 15
+	dbpixel 10,  9       ; 16
+	dbpixel 11,  9       ; 17
+	dbpixel 12,  9       ; 18
+	dbpixel  8, 11       ; 19
+	dbpixel  9, 11       ; 1a
+	dbpixel 10, 11       ; 1b
+	dbpixel 11, 11       ; 1c
+	dbpixel 12, 11       ; 1d
+	dbpixel  8, 13       ; 1e
+	dbpixel  9, 13       ; 1f
+	dbpixel 10, 13       ; 20
+	dbpixel 11, 13       ; 21
+	dbpixel 12, 13       ; 22
+	dbpixel 14,  9       ; 23
+	dbpixel 16,  9       ; 24
+	dbpixel 18,  9       ; 25
+	dbpixel  8, 15       ; 26
+	dbpixel  9, 15       ; 27
+	dbpixel 10, 15       ; 28
+	dbpixel 11, 15       ; 29
+	dbpixel 12, 15       ; 2a
+	dbpixel 14, 11       ; 2b
+	dbpixel 14, 13       ; 2c
+	dbpixel  1, 18, 5, 2 ; 2d
+	dbpixel  7, 18, 5, 2 ; 2e
+	dbpixel 13, 18, 5, 2 ; 2f
+
+.Coords_Three: ; 11d29e
+	dbpixel  2, 10
+	dbpixel  8, 10
+	dbpixel 14, 10
+	dbpixel  2, 12
+	dbpixel  8, 12
+	dbpixel 14, 12
+	dbpixel  2, 14
+	dbpixel  8, 14
+	dbpixel 14, 14
+	dbpixel  2, 16
+	dbpixel  8, 16
+	dbpixel 14, 16
+
+.Coords_Four: ; 11d2b6
+	dbpixel 16, 10
+	dbpixel 16, 12
+
+.Coords_Five: ; 11d2ba
+	dbpixel  4, 10
+	dbpixel  4, 12
+
+.FramesetsIDs_Two: ; 11d2be
+	db SPRITE_ANIM_FRAMESET_28 ; 00
+	db SPRITE_ANIM_FRAMESET_28 ; 01
+	db SPRITE_ANIM_FRAMESET_28 ; 02
+	db SPRITE_ANIM_FRAMESET_28 ; 03
+	db SPRITE_ANIM_FRAMESET_28 ; 04
+	db SPRITE_ANIM_FRAMESET_28 ; 05
+	db SPRITE_ANIM_FRAMESET_28 ; 06
+	db SPRITE_ANIM_FRAMESET_28 ; 07
+	db SPRITE_ANIM_FRAMESET_28 ; 08
+	db SPRITE_ANIM_FRAMESET_28 ; 09
+	db SPRITE_ANIM_FRAMESET_28 ; 0a
+	db SPRITE_ANIM_FRAMESET_28 ; 0b
+	db SPRITE_ANIM_FRAMESET_28 ; 0c
+	db SPRITE_ANIM_FRAMESET_28 ; 0d
+	db SPRITE_ANIM_FRAMESET_28 ; 0e
+	db SPRITE_ANIM_FRAMESET_28 ; 0f
+	db SPRITE_ANIM_FRAMESET_28 ; 10
+	db SPRITE_ANIM_FRAMESET_28 ; 11
+	db SPRITE_ANIM_FRAMESET_28 ; 12
+	db SPRITE_ANIM_FRAMESET_28 ; 13
+	db SPRITE_ANIM_FRAMESET_28 ; 14
+	db SPRITE_ANIM_FRAMESET_28 ; 15
+	db SPRITE_ANIM_FRAMESET_28 ; 16
+	db SPRITE_ANIM_FRAMESET_28 ; 17
+	db SPRITE_ANIM_FRAMESET_28 ; 18
+	db SPRITE_ANIM_FRAMESET_28 ; 19
+	db SPRITE_ANIM_FRAMESET_28 ; 1a
+	db SPRITE_ANIM_FRAMESET_28 ; 1b
+	db SPRITE_ANIM_FRAMESET_28 ; 1c
+	db SPRITE_ANIM_FRAMESET_28 ; 1d
+	db SPRITE_ANIM_FRAMESET_28 ; 1e
+	db SPRITE_ANIM_FRAMESET_28 ; 1f
+	db SPRITE_ANIM_FRAMESET_28 ; 20
+	db SPRITE_ANIM_FRAMESET_28 ; 21
+	db SPRITE_ANIM_FRAMESET_28 ; 22
+	db SPRITE_ANIM_FRAMESET_28 ; 23
+	db SPRITE_ANIM_FRAMESET_28 ; 24
+	db SPRITE_ANIM_FRAMESET_28 ; 25
+	db SPRITE_ANIM_FRAMESET_28 ; 26
+	db SPRITE_ANIM_FRAMESET_28 ; 27
+	db SPRITE_ANIM_FRAMESET_28 ; 28
+	db SPRITE_ANIM_FRAMESET_28 ; 29
+	db SPRITE_ANIM_FRAMESET_28 ; 2a
+	db SPRITE_ANIM_FRAMESET_28 ; 2b
+	db SPRITE_ANIM_FRAMESET_29 ; 2c
+	db SPRITE_ANIM_FRAMESET_26 ; 2d
+	db SPRITE_ANIM_FRAMESET_26 ; 2e
+	db SPRITE_ANIM_FRAMESET_26 ; 2f
+
+.UpdateObjectFlags: ; 11d2ee (47:52ee)
+	ld hl, wcd24
+	and [hl]
+	jr nz, .update_y_offset
+	ld a, e
+	ld hl, wcd23
+	and [hl]
+	jr z, .reset_y_offset
+	ld hl, SPRITEANIMSTRUCT_0E
+	add hl, bc
+	ld a, [hl]
+	and a
+	jr z, .flip_bit_0
+	dec [hl]
+	ret
+
+.flip_bit_0
+	ld a, $0
+	ld [hld], a
+	ld a, $1
+	xor [hl]
+	ld [hl], a
+	and a
+	jr nz, .update_y_offset
+.reset_y_offset
+	ld hl, SPRITEANIMSTRUCT_YOFFSET
+	add hl, bc
+	xor a
+	ld [hl], a
+	ret
+
+.update_y_offset
+	ld hl, SPRITEANIMSTRUCT_YCOORD
+	add hl, bc
+	ld a, $b0
+	sub [hl]
+	ld hl, SPRITEANIMSTRUCT_YOFFSET
+	add hl, bc
+	ld [hl], a
+	ret
+
+Function11d323: ; 11d323
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_11d33a
+	ld de, UnknBGPals
+	ld bc, 16 palettes
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	ret
+; 11d33a
+
+Palette_11d33a:
+	RGB 31, 31, 31
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 31, 16, 31
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 23, 17, 31
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+; 11d3ba
+
+EZChat_GetSeenPokemonByKana: ; 11d3ba
+	ld a, [rSVBK]
+	push af
+	ld hl, $c648
+	ld a, w5_d800 % $100
+	ld [wcd2d], a
+	ld [hli], a
+	ld a, w5_d800 / $100
+	ld [wcd2e], a
+	ld [hl], a
+
+	ld a, SortedPokemon % $100
+	ld [wcd2f], a
+	ld a, SortedPokemon / $100
+	ld [wcd30], a
+
+	ld a, $c6a8 % $100
+	ld [wcd31], a
+	ld a, $c6a8 / $100
+	ld [wcd32], a
+
+	ld a, $c64a % $100
+	ld [wcd33], a
+	ld a, $c64a / $100
+	ld [wcd34], a
+
+	ld hl, EZChat_SortedWords
+	ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4
+
+.MasterLoop: ; 11d3ef
+	push af
+; read row
+; offset
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+; size
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+; save the pointer to the next row
+	push hl
+; add de to w3_d000
+	ld hl, w3_d000
+	add hl, de
+; recover de from wcd2d (default: w5_d800)
+	ld a, [wcd2d]
+	ld e, a
+	ld a, [wcd2e]
+	ld d, a
+; save bc for later
+	push bc
+
+.loop1
+; copy 2*bc bytes from 3:hl to 5:de
+	ld a, $3
+	ld [rSVBK], a
+	ld a, [hli]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	pop af
+	ld [de], a
+	inc de
+
+	ld a, $3
+	ld [rSVBK], a
+	ld a, [hli]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	pop af
+	ld [de], a
+	inc de
+
+	dec bc
+	ld a, c
+	or b
+	jr nz, .loop1
+
+; recover the pointer from wcd2f (default: SortedPokemon)
+	ld a, [wcd2f]
+	ld l, a
+	ld a, [wcd30]
+	ld h, a
+; copy the pointer from [hl] to bc
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+; store the pointer to the next pointer back in wcd2f
+	ld a, l
+	ld [wcd2f], a
+	ld a, h
+	ld [wcd30], a
+; push pop that pointer to hl
+	push bc
+	pop hl
+	ld c, $0
+.loop2
+; Have you seen this Pokemon?
+	ld a, [hl]
+	cp $ff
+	jr z, .done
+	call .CheckSeenMon
+	jr nz, .next
+; If not, skip it.
+	inc hl
+	jr .loop2
+
+.next
+; If so, append it to the list at 5:de, and increase the count.
+	ld a, [hli]
+	ld [de], a
+	inc de
+	xor a
+	ld [de], a
+	inc de
+	inc c
+	jr .loop2
+
+.done
+; Remember the original value of bc from the table?
+; Well, the stack remembers it, and it's popping it to hl.
+	pop hl
+; Add the number of seen Pokemon from the list.
+	ld b, $0
+	add hl, bc
+; Push pop to bc.
+	push hl
+	pop bc
+; Load the pointer from [wcd31] (default: $c6a8)
+	ld a, [wcd31]
+	ld l, a
+	ld a, [wcd32]
+	ld h, a
+; Save the quantity from bc to [hl]
+	ld a, c
+	ld [hli], a
+	ld a, b
+	ld [hli], a
+; Save the new value of hl to [wcd31]
+	ld a, l
+	ld [wcd31], a
+	ld a, h
+	ld [wcd32], a
+; Recover the pointer from [wcd33] (default: $c64a)
+	ld a, [wcd33]
+	ld l, a
+	ld a, [wcd34]
+	ld h, a
+; Save the current value of de there
+	ld a, e
+	ld [wcd2d], a
+	ld [hli], a
+	ld a, d
+	ld [wcd2e], a
+; Save the new value of hl back to [wcd33]
+	ld [hli], a
+	ld a, l
+	ld [wcd33], a
+	ld a, h
+	ld [wcd34], a
+; Next row
+	pop hl
+	pop af
+	dec a
+	jr z, .ExitMasterLoop
+	jp .MasterLoop
+
+.ExitMasterLoop:
+	pop af
+	ld [rSVBK], a
+	ret
+; 11d493
+
+.CheckSeenMon: ; 11d493
+	push hl
+	push bc
+	push de
+	dec a
+	ld hl, rSVBK
+	ld e, $1
+	ld [hl], e
+	call CheckSeenMon
+	ld hl, rSVBK
+	ld e, $5
+	ld [hl], e
+	pop de
+	pop bc
+	pop hl
+	ret
+; 11d4aa
+
+EZChat_GetCategoryWordsByKana: ; 11d4aa
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+
+	; load pointers
+	ld hl, MobileEZChatCategoryPointers
+	ld bc, MobileEZChatData_WordAndPageCounts
+
+	; init WRAM registers
+	xor a
+	ld [wcd2d], a
+	inc a
+	ld [wcd2e], a
+
+	; enter the first loop
+	ld a, 14
+.loop1
+	push af
+
+	; load the pointer to the category
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push hl
+
+	; skip to the attributes
+	ld hl, 5 ; length of a string
+	add hl, de
+
+	; get the number of words in the category
+	ld a, [bc] ; number of entries to copy
+	inc bc
+	inc bc
+	push bc
+
+.loop2
+	push af
+	push hl
+
+	; load offset at [hl]
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+
+	; add to w3_d000
+	ld hl, w3_d000
+	add hl, de
+
+	; copy from wcd2d and increment [wcd2d] in place
+	ld a, [wcd2d]
+	ld [hli], a
+	inc a
+	ld [wcd2d], a
+
+	; copy from wcd2e
+	ld a, [wcd2e]
+	ld [hl], a
+
+	; next entry
+	pop hl
+	ld de, 8
+	add hl, de
+	pop af
+	dec a
+	jr nz, .loop2
+
+	; reset and go to next category
+	ld hl, wcd2d
+	xor a
+	ld [hli], a
+	inc [hl]
+	pop bc
+	pop hl
+	pop af
+	dec a
+	jr nz, .loop1
+	pop af
+	ld [rSVBK], a
+	ret
+; 11d4fe
+
+SortedPokemon:
+; Pokemon sorted by kana.
+; Notably, Rhydon is missing.
+	dw .a
+	dw .i
+	dw .u
+	dw .e
+	dw .o
+	dw .ka_ga
+	dw .ki_gi
+	dw .ku_gu
+	dw .ke_ge
+	dw .ko_go
+	dw .sa_za
+	dw .shi_ji
+	dw .su_zu
+	dw .se_ze
+	dw .so_zo
+	dw .ta_da
+	dw .chi_dhi
+	dw .tsu_du
+	dw .te_de
+	dw .to_do
+	dw .na
+	dw .ni
+	dw .nu
+	dw .ne
+	dw .no
+	dw .ha_ba_pa
+	dw .hi_bi_pi
+	dw .fu_bu_pu
+	dw .he_be_pe
+	dw .ho_bo_po
+	dw .ma
+	dw .mi
+	dw .mu
+	dw .me
+	dw .mo
+	dw .ya
+	dw .yu
+	dw .yo
+	dw .ra
+	dw .ri
+	dw .ru
+	dw .re
+	dw .ro
+	dw .wa
+	dw .end
+
+.a:		db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1
+.i:		db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1
+.u:		db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1
+.e:		db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1
+.o:		db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1
+.ka_ga		db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1
+.ki_gi		db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1
+.ku_gu		db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1
+.ke_ge		db ABRA, GENGAR, TAUROS, -1
+.ko_go		db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1
+.sa_za		db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list
+.shi_ji		db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1
+.su_zu		db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1
+.se_ze		db SQUIRTLE, CELEBI, -1
+.so_zo		db WOBBUFFET, -1
+.ta_da		db DUGTRIO, HORSEA, EXEGGCUTE, -1
+.chi_dhi	db CHIKORITA, CHINCHOU, -1
+.tsu_du		db SHUCKLE, -1
+.te_de		db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1
+.to_do		db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1
+.na		db ODDISH, EXEGGUTOR, -1
+.ni		db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1
+.nu		db QUAGSIRE, -1
+.ne		db NATU, XATU, -1
+.no		db DUNSPARCE, -1
+.ha_ba_pa	db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1
+.hi_bi_pi	db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1
+.fu_bu_pu	db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1
+.he_be_pe	db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1
+.ho_bo_po	db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1
+.ma		db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1
+.mi		db DRATINI, MEW, MEWTWO, MILTANK, -1
+.mu		db MISDREAVUS, SMOOCHUM, -1
+.me		db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1
+.mo		db FLAAFFY, VENOMOTH, TANGELA, -1
+.ya		db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1
+.yu		db KADABRA, -1
+.yo		db LARVITAR, NOCTOWL, -1
+.ra		db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1
+.ri		db CHARMELEON, CHARIZARD, URSARING, -1
+.ru		db JYNX, LUGIA, -1
+.re		db MAGNETON, LEDIAN, LEDYBA, -1
+.ro		db VULPIX, -1
+.wa		db JUMPLUFF, TOTODILE, MACHOP;, -1
+.end		db -1
+; 11d67e
+
+GFX_11d67e:
+INCBIN "gfx/pokedex/select_start.2bpp"
+; 11d6de
+
+LZ_11d6de:
+INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
+; 11da52
+
+MobileEZChatCategoryNames: ; 11da52
+; Fixed message categories
+	db "ポケモン@@" ; 00
+	db "タイプ@@@" ; 01
+	db "あいさつ@@" ; 02
+	db "ひと@@@@" ; 03
+	db "バトル@@@" ; 04
+	db "こえ@@@@" ; 05
+	db "かいわ@@@" ; 06
+	db "きもち@@@" ; 07
+	db "じょうたい@" ; 08
+	db "せいかつ@@" ; 09
+	db "しゅみ@@@" ; 0a
+	db "こうどう@@" ; 0b
+	db "じかん@@@" ; 0c
+	db "むすび@@@" ; 0d
+	db "あれこれ@@" ; 0e
+; 11daac
+
+MobileEZChatCategoryPointers: ; 11daac
+; entries correspond to EZCHAT_* constants
+	dw .Types          ; 01
+	dw .Greetings      ; 02
+	dw .People         ; 03
+	dw .Battle         ; 04
+	dw .Exclamations   ; 05
+	dw .Conversation   ; 06
+	dw .Feelings       ; 07
+	dw .Conditions     ; 08
+	dw .Life           ; 09
+	dw .Hobbies        ; 0a
+	dw .Actions        ; 0b
+	dw .Time           ; 0c
+	dw .Farewells      ; 0d
+	dw .ThisAndThat    ; 0e
+
+.Types: ; 11dac8
+	db "あく@@@", $26, $0, $0
+	db "いわ@@@", $aa, $0, $0
+	db "エスパー@", $da, $0, $0
+	db "かくとう@", $4e, $1, $0
+	db "くさ@@@", $ba, $1, $0
+	db "ゴースト@", $e4, $1, $0
+	db "こおり@@", $e6, $1, $0
+	db "じめん@@", $68, $2, $0
+	db "タイプ@@", $e8, $2, $0
+	db "でんき@@", $8e, $3, $0
+	db "どく@@@", $ae, $3, $0
+	db "ドラゴン@", $bc, $3, $0
+	db "ノーマル@", $22, $4, $0
+	db "はがね@@", $36, $4, $0
+	db "ひこう@@", $5e, $4, $0
+	db "ほのお@@", $b2, $4, $0
+	db "みず@@@", $f4, $4, $0
+	db "むし@@@", $12, $5, $0
+
+.Greetings: ; 11db58
+	db "ありがと@", $58, $0, $0
+	db "ありがとう", $5a, $0, $0
+	db "いくぜ!@", $80, $0, $0
+	db "いくよ!@", $82, $0, $0
+	db "いくわよ!", $84, $0, $0
+	db "いやー@@", $a6, $0, $0
+	db "おっす@@", $a, $1, $0
+	db "おはつです", $22, $1, $0
+	db "おめでとう", $2a, $1, $0
+	db "ごめん@@", $f8, $1, $0
+	db "ごめんよ@", $fa, $1, $0
+	db "こらっ@@", $fc, $1, $0
+	db "こんちは!", $a, $2, $0
+	db "こんにちは", $10, $2, $0
+	db "さようなら", $28, $2, $0
+	db "サンキュー", $2e, $2, $0
+	db "さんじょう", $30, $2, $0
+	db "しっけい@", $48, $2, $0
+	db "しつれい@", $4c, $2, $0
+	db "じゃーね@", $6c, $2, $0
+	db "すいません", $8c, $2, $0
+	db "それじゃ@", $ca, $2, $0
+	db "どうも@@", $a6, $3, $0
+	db "なんじゃ@", $ee, $3, $0
+	db "ハーイ@@", $2c, $4, $0
+	db "はいはい@", $32, $4, $0
+	db "バイバイ@", $34, $4, $0
+	db "へイ@@@", $8a, $4, $0
+	db "またね@@", $de, $4, $0
+	db "もしもし@", $32, $5, $0
+	db "やあ@@@", $3e, $5, $0
+	db "やっほー@", $4e, $5, $0
+	db "よう@@@", $62, $5, $0
+	db "ようこそ@", $64, $5, $0
+	db "よろしく@", $80, $5, $0
+	db "らっしゃい", $94, $5, $0
+
+.People: ; 11dc78
+	db "あいて@@", $1c, $0, $0
+	db "あたし@@", $36, $0, $0
+	db "あなた@@", $40, $0, $0
+	db "あなたが@", $42, $0, $0
+	db "あなたに@", $44, $0, $0
+	db "あなたの@", $46, $0, $0
+	db "あなたは@", $48, $0, $0
+	db "あなたを@", $4a, $0, $0
+	db "おかあさん", $e8, $0, $0
+	db "おじいさん", $fc, $0, $0
+	db "おじさん@", $2, $1, $0
+	db "おとうさん", $e, $1, $0
+	db "おとこのこ", $10, $1, $0
+	db "おとな@@", $14, $1, $0
+	db "おにいさん", $16, $1, $0
+	db "おねえさん", $18, $1, $0
+	db "おばあさん", $1c, $1, $0
+	db "おばさん@", $20, $1, $0
+	db "おれさま@", $34, $1, $0
+	db "おんなのこ", $3a, $1, $0
+	db "ガール@@", $40, $1, $0
+	db "かぞく@@", $52, $1, $0
+	db "かのじょ@", $72, $1, $0
+	db "かれ@@@", $7c, $1, $0
+	db "きみ@@@", $9a, $1, $0
+	db "きみが@@", $9c, $1, $0
+	db "きみに@@", $9e, $1, $0
+	db "きみの@@", $a0, $1, $0
+	db "きみは@@", $a2, $1, $0
+	db "きみを@@", $a4, $1, $0
+	db "ギャル@@", $ae, $1, $0
+	db "きょうだい", $b2, $1, $0
+	db "こども@@", $f0, $1, $0
+	db "じぶん@@", $54, $2, $0
+	db "じぶんが@", $56, $2, $0
+	db "じぶんに@", $58, $2, $0
+	db "じぶんの@", $5a, $2, $0
+	db "じぶんは@", $5c, $2, $0
+	db "じぶんを@", $5e, $2, $0
+	db "だれ@@@", $18, $3, $0
+	db "だれか@@", $1a, $3, $0
+	db "だれが@@", $1c, $3, $0
+	db "だれに@@", $1e, $3, $0
+	db "だれの@@", $20, $3, $0
+	db "だれも@@", $22, $3, $0
+	db "だれを@@", $24, $3, $0
+	db "ちゃん@@", $38, $3, $0
+	db "ともだち@", $b8, $3, $0
+	db "なかま@@", $d4, $3, $0
+	db "ひと@@@", $62, $4, $0
+	db "ボーイ@@", $98, $4, $0
+	db "ボク@@@", $a0, $4, $0
+	db "ボクが@@", $a2, $4, $0
+	db "ボクに@@", $a4, $4, $0
+	db "ボクの@@", $a6, $4, $0
+	db "ボクは@@", $a8, $4, $0
+	db "ボクを@@", $aa, $4, $0
+	db "みんな@@", $4, $5, $0
+	db "みんなが@", $6, $5, $0
+	db "みんなに@", $8, $5, $0
+	db "みんなの@", $a, $5, $0
+	db "みんなは@", $c, $5, $0
+	db "ライバル@", $8a, $5, $0
+	db "わたし@@", $c2, $5, $0
+	db "わたしが@", $c4, $5, $0
+	db "わたしに@", $c6, $5, $0
+	db "わたしの@", $c8, $5, $0
+	db "わたしは@", $ca, $5, $0
+	db "わたしを@", $cc, $5, $0
+
+.Battle: ; 11dea0
+	db "あいしょう", $18, $0, $0
+	db "いけ!@@", $88, $0, $0
+	db "いちばん@", $96, $0, $0
+	db "かくご@@", $4c, $1, $0
+	db "かたせて@", $54, $1, $0
+	db "かち@@@", $56, $1, $0
+	db "かつ@@@", $58, $1, $0
+	db "かった@@", $60, $1, $0
+	db "かったら@", $62, $1, $0
+	db "かって@@", $64, $1, $0
+	db "かてない@", $66, $1, $0
+	db "かてる@@", $68, $1, $0
+	db "かなわない", $70, $1, $0
+	db "きあい@@", $84, $1, $0
+	db "きめた@@", $a8, $1, $0
+	db "きりふだ@", $b6, $1, $0
+	db "くらえ@@", $c2, $1, $0
+	db "こい!@@", $da, $1, $0
+	db "こうげき@", $e0, $1, $0
+	db "こうさん@", $e2, $1, $0
+	db "こんじょう", $8, $2, $0
+	db "さいのう@", $16, $2, $0
+	db "さくせん@", $1a, $2, $0
+	db "さばき@@", $22, $2, $0
+	db "しょうぶ@", $7e, $2, $0
+	db "しょうり@", $80, $2, $0
+	db "せめ@@@", $b4, $2, $0
+	db "センス@@", $b6, $2, $0
+	db "たいせん@", $e6, $2, $0
+	db "たたかい@", $f6, $2, $0
+	db "ちから@@", $32, $3, $0
+	db "チャレンジ", $36, $3, $0
+	db "つよい@@", $58, $3, $0
+	db "つよすぎ@", $5a, $3, $0
+	db "つらい@@", $5c, $3, $0
+	db "つらかった", $5e, $3, $0
+	db "てかげん@", $6c, $3, $0
+	db "てき@@@", $6e, $3, $0
+	db "てんさい@", $90, $3, $0
+	db "でんせつ@", $94, $3, $0
+	db "トレーナー", $c6, $3, $0
+	db "にげ@@@", $4, $4, $0
+	db "ぬるい@@", $10, $4, $0
+	db "ねらう@@", $16, $4, $0
+	db "バトル@@", $4a, $4, $0
+	db "ファイト@", $72, $4, $0
+	db "ふっかつ@", $78, $4, $0
+	db "ポイント@", $94, $4, $0
+	db "ポケモン@", $ac, $4, $0
+	db "ほんき@@", $bc, $4, $0
+	db "まいった!", $c4, $4, $0
+	db "まけ@@@", $c8, $4, $0
+	db "まけたら@", $ca, $4, $0
+	db "まけて@@", $cc, $4, $0
+	db "まける@@", $ce, $4, $0
+	db "まもり@@", $ea, $4, $0
+	db "みかた@@", $f2, $4, $0
+	db "みとめない", $fe, $4, $0
+	db "みとめる@", $0, $5, $0
+	db "むてき@@", $16, $5, $0
+	db "もらった!", $3c, $5, $0
+	db "よゆう@@", $7a, $5, $0
+	db "よわい@@", $82, $5, $0
+	db "よわすぎ@", $84, $5, $0
+	db "らくしょう", $8e, $5, $0
+	db "りーダー@", $9e, $5, $0
+	db "ルール@@", $a0, $5, $0
+	db "レべル@@", $a6, $5, $0
+	db "わざ@@@", $be, $5, $0
+
+.Exclamations: ; 11e0c8
+	db "!@@@@", $0, $0, $0
+	db "!!@@@", $2, $0, $0
+	db "!?@@@", $4, $0, $0
+	db "?@@@@", $6, $0, $0
+	db "…@@@@", $8, $0, $0
+	db "…!@@@", $a, $0, $0
+	db "………@@", $c, $0, $0
+	db "ー@@@@", $e, $0, $0
+	db "ーーー@@", $10, $0, $0
+	db "あーあ@@", $14, $0, $0
+	db "あーん@@", $16, $0, $0
+	db "あははー@", $52, $0, $0
+	db "あら@@@", $54, $0, $0
+	db "いえ@@@", $72, $0, $0
+	db "イエス@@", $74, $0, $0
+	db "うう@@@", $ac, $0, $0
+	db "うーん@@", $ae, $0, $0
+	db "うおー!@", $b0, $0, $0
+	db "うおりゃー", $b2, $0, $0
+	db "うひょー@", $bc, $0, $0
+	db "うふふ@@", $be, $0, $0
+	db "うわー@@", $ca, $0, $0
+	db "うわーん@", $cc, $0, $0
+	db "ええ@@@", $d2, $0, $0
+	db "えー@@@", $d4, $0, $0
+	db "えーん@@", $d6, $0, $0
+	db "えへへ@@", $dc, $0, $0
+	db "おいおい@", $e0, $0, $0
+	db "おお@@@", $e2, $0, $0
+	db "おっと@@", $c, $1, $0
+	db "がーん@@", $42, $1, $0
+	db "キャー@@", $aa, $1, $0
+	db "ギャー@@", $ac, $1, $0
+	db "ぐふふふふ", $bc, $1, $0
+	db "げっ@@@", $ce, $1, $0
+	db "しくしく@", $3e, $2, $0
+	db "ちえっ@@", $2e, $3, $0
+	db "てへ@@@", $86, $3, $0
+	db "ノー@@@", $20, $4, $0
+	db "はあー@@", $2a, $4, $0
+	db "はい@@@", $30, $4, $0
+	db "はっはっは", $48, $4, $0
+	db "ひいー@@", $56, $4, $0
+	db "ひゃあ@@", $6a, $4, $0
+	db "ふっふっふ", $7c, $4, $0
+	db "ふにゃ@@", $7e, $4, $0
+	db "ププ@@@", $80, $4, $0
+	db "ふふん@@", $82, $4, $0
+	db "ふん@@@", $88, $4, $0
+	db "へっへっへ", $8e, $4, $0
+	db "へへー@@", $90, $4, $0
+	db "ほーほほほ", $9c, $4, $0
+	db "ほら@@@", $b6, $4, $0
+	db "まあ@@@", $c0, $4, $0
+	db "むきー!!", $10, $5, $0
+	db "むふー@@", $18, $5, $0
+	db "むふふ@@", $1a, $5, $0
+	db "むむ@@@", $1c, $5, $0
+	db "よーし@@", $6a, $5, $0
+	db "よし!@@", $72, $5, $0
+	db "ラララ@@", $98, $5, $0
+	db "わーい@@", $ac, $5, $0
+	db "わーん!!", $b0, $5, $0
+	db "ワォ@@@", $b2, $5, $0
+	db "わっ!!@", $ce, $5, $0
+	db "わははは!", $d0, $5, $0
+
+.Conversation: ; 11e2d8
+	db "あのね@@", $50, $0, $0
+	db "あんまり@", $6e, $0, $0
+	db "いじわる@", $8e, $0, $0
+	db "うそ@@@", $b6, $0, $0
+	db "うむ@@@", $c4, $0, $0
+	db "おーい@@", $e4, $0, $0
+	db "おすすめ@", $6, $1, $0
+	db "おばかさん", $1e, $1, $0
+	db "かなり@@", $6e, $1, $0
+	db "から@@@", $7a, $1, $0
+	db "きぶん@@", $98, $1, $0
+	db "けど@@@", $d6, $1, $0
+	db "こそ@@@", $ea, $1, $0
+	db "こと@@@", $ee, $1, $0
+	db "さあ@@@", $12, $2, $0
+	db "さっぱり@", $1e, $2, $0
+	db "さて@@@", $20, $2, $0
+	db "じゅうぶん", $72, $2, $0
+	db "すぐ@@@", $94, $2, $0
+	db "すごく@@", $98, $2, $0
+	db "すこしは@", $9a, $2, $0
+	db "すっっごい", $a0, $2, $0
+	db "ぜーんぜん", $b0, $2, $0
+	db "ぜったい@", $b2, $2, $0
+	db "それで@@", $ce, $2, $0
+	db "だけ@@@", $f2, $2, $0
+	db "だって@@", $fc, $2, $0
+	db "たぶん@@", $6, $3, $0
+	db "たら@@@", $14, $3, $0
+	db "ちょー@@", $3a, $3, $0
+	db "ちょっと@", $3c, $3, $0
+	db "ったら@@", $4e, $3, $0
+	db "って@@@", $50, $3, $0
+	db "ていうか@", $62, $3, $0
+	db "でも@@@", $88, $3, $0
+	db "どうしても", $9c, $3, $0
+	db "とうぜん@", $a0, $3, $0
+	db "どうぞ@@", $a2, $3, $0
+	db "とりあえず", $be, $3, $0
+	db "なあ@@@", $cc, $3, $0
+	db "なんて@@", $f4, $3, $0
+	db "なんでも@", $fc, $3, $0
+	db "なんとか@", $fe, $3, $0
+	db "には@@@", $8, $4, $0
+	db "バッチり@", $46, $4, $0
+	db "ばりばり@", $52, $4, $0
+	db "ほど@@@", $b0, $4, $0
+	db "ほんと@@", $be, $4, $0
+	db "まさに@@", $d0, $4, $0
+	db "マジ@@@", $d2, $4, $0
+	db "マジで@@", $d4, $4, $0
+	db "まったく@", $e4, $4, $0
+	db "まで@@@", $e6, $4, $0
+	db "まるで@@", $ec, $4, $0
+	db "ムード@@", $e, $5, $0
+	db "むしろ@@", $14, $5, $0
+	db "めちゃ@@", $24, $5, $0
+	db "めっぽう@", $28, $5, $0
+	db "もう@@@", $2c, $5, $0
+	db "モード@@", $2e, $5, $0
+	db "もっと@@", $36, $5, $0
+	db "もはや@@", $38, $5, $0
+	db "やっと@@", $4a, $5, $0
+	db "やっぱり@", $4c, $5, $0
+	db "より@@@", $7c, $5, $0
+	db "れば@@@", $a4, $5, $0
+
+.Feelings: ; 11e4e8
+	db "あいたい@", $1a, $0, $0
+	db "あそびたい", $32, $0, $0
+	db "いきたい@", $7c, $0, $0
+	db "うかれて@", $b4, $0, $0
+	db "うれしい@", $c6, $0, $0
+	db "うれしさ@", $c8, $0, $0
+	db "エキサイト", $d8, $0, $0
+	db "えらい@@", $de, $0, $0
+	db "おかしい@", $ec, $0, $0
+	db "ォッケー@", $8, $1, $0
+	db "かえりたい", $48, $1, $0
+	db "がっくし@", $5a, $1, $0
+	db "かなしい@", $6c, $1, $0
+	db "がんばって", $80, $1, $0
+	db "きがしない", $86, $1, $0
+	db "きがする@", $88, $1, $0
+	db "ききたい@", $8a, $1, $0
+	db "きになる@", $90, $1, $0
+	db "きのせい@", $96, $1, $0
+	db "きらい@@", $b4, $1, $0
+	db "くやしい@", $be, $1, $0
+	db "くやしさ@", $c0, $1, $0
+	db "さみしい@", $24, $2, $0
+	db "ざんねん@", $32, $2, $0
+	db "しあわせ@", $36, $2, $0
+	db "したい@@", $44, $2, $0
+	db "したくない", $46, $2, $0
+	db "しまった@", $64, $2, $0
+	db "しょんぼり", $82, $2, $0
+	db "すき@@@", $92, $2, $0
+	db "だいきらい", $da, $2, $0
+	db "たいくつ@", $dc, $2, $0
+	db "だいじ@@", $de, $2, $0
+	db "だいすき@", $e4, $2, $0
+	db "たいへん@", $ea, $2, $0
+	db "たのしい@", $0, $3, $0
+	db "たのしすぎ", $2, $3, $0
+	db "たべたい@", $8, $3, $0
+	db "ダメダメ@", $e, $3, $0
+	db "たりない@", $16, $3, $0
+	db "ちくしょー", $34, $3, $0
+	db "どうしよう", $9e, $3, $0
+	db "ドキドキ@", $ac, $3, $0
+	db "ナイス@@", $d0, $3, $0
+	db "のみたい@", $26, $4, $0
+	db "びっくり@", $60, $4, $0
+	db "ふあん@@", $74, $4, $0
+	db "ふらふら@", $86, $4, $0
+	db "ほしい@@", $ae, $4, $0
+	db "ボロボロ@", $b8, $4, $0
+	db "まだまだ@", $e0, $4, $0
+	db "まてない@", $e8, $4, $0
+	db "まんぞく@", $f0, $4, $0
+	db "みたい@@", $f8, $4, $0
+	db "めずらしい", $22, $5, $0
+	db "メラメラ@", $2a, $5, $0
+	db "やだ@@@", $46, $5, $0
+	db "やったー@", $48, $5, $0
+	db "やばい@@", $50, $5, $0
+	db "やばすぎる", $52, $5, $0
+	db "やられた@", $54, $5, $0
+	db "やられて@", $56, $5, $0
+	db "よかった@", $6e, $5, $0
+	db "ラブラブ@", $96, $5, $0
+	db "ロマン@@", $a8, $5, $0
+	db "ろんがい@", $aa, $5, $0
+	db "わから@@", $b4, $5, $0
+	db "わかり@@", $b6, $5, $0
+	db "わくわく@", $ba, $5, $0
+
+.Conditions: ; 11e710
+	db "あつい@@", $38, $0, $0
+	db "あった@@", $3a, $0, $0
+	db "あり@@@", $56, $0, $0
+	db "ある@@@", $5e, $0, $0
+	db "あわてて@", $6a, $0, $0
+	db "いい@@@", $70, $0, $0
+	db "いか@@@", $76, $0, $0
+	db "イカス@@", $78, $0, $0
+	db "いきおい@", $7a, $0, $0
+	db "いける@@", $8a, $0, $0
+	db "いじょう@", $8c, $0, $0
+	db "いそがしい", $90, $0, $0
+	db "いっしょに", $9a, $0, $0
+	db "いっぱい@", $9c, $0, $0
+	db "いない@@", $a0, $0, $0
+	db "いや@@@", $a4, $0, $0
+	db "いる@@@", $a8, $0, $0
+	db "うまい@@", $c0, $0, $0
+	db "うまく@@", $c2, $0, $0
+	db "おおきい@", $e6, $0, $0
+	db "おくれ@@", $f2, $0, $0
+	db "おしい@@", $fa, $0, $0
+	db "おもしろい", $2c, $1, $0
+	db "おもしろく", $2e, $1, $0
+	db "かっこいい", $5c, $1, $0
+	db "かわいい@", $7e, $1, $0
+	db "かんぺき@", $82, $1, $0
+	db "けっこう@", $d0, $1, $0
+	db "げんき@@", $d8, $1, $0
+	db "こわい@@", $6, $2, $0
+	db "さいこう@", $14, $2, $0
+	db "さむい@@", $26, $2, $0
+	db "さわやか@", $2c, $2, $0
+	db "しかたない", $38, $2, $0
+	db "すごい@@", $96, $2, $0
+	db "すごすぎ@", $9c, $2, $0
+	db "すてき@@", $a4, $2, $0
+	db "たいした@", $e0, $2, $0
+	db "だいじょぶ", $e2, $2, $0
+	db "たかい@@", $ec, $2, $0
+	db "ただしい@", $f8, $2, $0
+	db "だめ@@@", $c, $3, $0
+	db "ちいさい@", $2c, $3, $0
+	db "ちがう@@", $30, $3, $0
+	db "つかれ@@", $48, $3, $0
+	db "とくい@@", $b0, $3, $0
+	db "とまらない", $b6, $3, $0
+	db "ない@@@", $ce, $3, $0
+	db "なかった@", $d2, $3, $0
+	db "なし@@@", $d8, $3, $0
+	db "なって@@", $dc, $3, $0
+	db "はやい@@", $50, $4, $0
+	db "ひかる@@", $5a, $4, $0
+	db "ひくい@@", $5c, $4, $0
+	db "ひどい@@", $64, $4, $0
+	db "ひとりで@", $66, $4, $0
+	db "ひま@@@", $68, $4, $0
+	db "ふそく@@", $76, $4, $0
+	db "へた@@@", $8c, $4, $0
+	db "まちがって", $e2, $4, $0
+	db "やさしい@", $42, $5, $0
+	db "よく@@@", $70, $5, $0
+	db "よわって@", $86, $5, $0
+	db "らく@@@", $8c, $5, $0
+	db "らしい@@", $90, $5, $0
+	db "わるい@@", $d4, $5, $0
+
+.Life: ; 11e920
+	db "アルバイト", $64, $0, $0
+	db "うち@@@", $ba, $0, $0
+	db "おかね@@", $ee, $0, $0
+	db "おこづかい", $f4, $0, $0
+	db "おふろ@@", $24, $1, $0
+	db "がっこう@", $5e, $1, $0
+	db "きねん@@", $92, $1, $0
+	db "グループ@", $c6, $1, $0
+	db "ゲット@@", $d2, $1, $0
+	db "こうかん@", $de, $1, $0
+	db "しごと@@", $40, $2, $0
+	db "しゅぎょう", $74, $2, $0
+	db "じゅぎょう", $76, $2, $0
+	db "じゅく@@", $78, $2, $0
+	db "しんか@@", $88, $2, $0
+	db "ずかん@@", $90, $2, $0
+	db "せいかつ@", $ae, $2, $0
+	db "せんせい@", $b8, $2, $0
+	db "センター@", $ba, $2, $0
+	db "タワー@@", $28, $3, $0
+	db "つうしん@", $40, $3, $0
+	db "テスト@@", $7e, $3, $0
+	db "テレビ@@", $8c, $3, $0
+	db "でんわ@@", $96, $3, $0
+	db "どうぐ@@", $9a, $3, $0
+	db "トレード@", $c4, $3, $0
+	db "なまえ@@", $e8, $3, $0
+	db "ニュース@", $a, $4, $0
+	db "にんき@@", $c, $4, $0
+	db "パーティー", $2e, $4, $0
+	db "べんきょう", $92, $4, $0
+	db "マシン@@", $d6, $4, $0
+	db "めいし@@", $1e, $5, $0
+	db "メッセージ", $26, $5, $0
+	db "もようがえ", $3a, $5, $0
+	db "ゆめ@@@", $5a, $5, $0
+	db "ようちえん", $66, $5, $0
+	db "ラジォ@@", $92, $5, $0
+	db "ワールド@", $ae, $5, $0
+
+.Hobbies: ; 11ea58
+	db "アイドル@", $1e, $0, $0
+	db "アニメ@@", $4c, $0, $0
+	db "うた@@@", $b8, $0, $0
+	db "えいが@@", $d0, $0, $0
+	db "おかし@@", $ea, $0, $0
+	db "おしゃべり", $4, $1, $0
+	db "おままごと", $28, $1, $0
+	db "おもちゃ@", $30, $1, $0
+	db "おんがく@", $38, $1, $0
+	db "カード@@", $3e, $1, $0
+	db "かいもの@", $46, $1, $0
+	db "グルメ@@", $c8, $1, $0
+	db "ゲーム@@", $cc, $1, $0
+	db "ざっし@@", $1c, $2, $0
+	db "さんぽ@@", $34, $2, $0
+	db "じてんしゃ", $50, $2, $0
+	db "しゅみ@@", $7a, $2, $0
+	db "スポーツ@", $a8, $2, $0
+	db "ダイエット", $d8, $2, $0
+	db "たからもの", $f0, $2, $0
+	db "たび@@@", $4, $3, $0
+	db "ダンス@@", $2a, $3, $0
+	db "つり@@@", $60, $3, $0
+	db "デート@@", $6a, $3, $0
+	db "でんしゃ@", $92, $3, $0
+	db "ぬいぐるみ", $e, $4, $0
+	db "パソコン@", $3e, $4, $0
+	db "はな@@@", $4c, $4, $0
+	db "ヒーロー@", $58, $4, $0
+	db "ひるね@@", $6e, $4, $0
+	db "ヒロイン@", $70, $4, $0
+	db "ぼうけん@", $96, $4, $0
+	db "ボード@@", $9a, $4, $0
+	db "ボール@@", $9e, $4, $0
+	db "ほん@@@", $ba, $4, $0
+	db "マンガ@@", $ee, $4, $0
+	db "やくそく@", $40, $5, $0
+	db "やすみ@@", $44, $5, $0
+	db "よてい@@", $74, $5, $0
+
+.Actions: ; 11eb90
+	db "あう@@@", $20, $0, $0
+	db "あきらめ@", $24, $0, $0
+	db "あげる@@", $28, $0, $0
+	db "あせる@@", $2e, $0, $0
+	db "あそび@@", $30, $0, $0
+	db "あそぶ@@", $34, $0, $0
+	db "あつめ@@", $3e, $0, $0
+	db "あるき@@", $60, $0, $0
+	db "あるく@@", $62, $0, $0
+	db "いく@@@", $7e, $0, $0
+	db "いけ@@@", $86, $0, $0
+	db "おき@@@", $f0, $0, $0
+	db "おこり@@", $f6, $0, $0
+	db "おこる@@", $f8, $0, $0
+	db "おしえ@@", $fe, $0, $0
+	db "おしえて@", $0, $1, $0
+	db "おねがい@", $1a, $1, $0
+	db "おぼえ@@", $26, $1, $0
+	db "かえる@@", $4a, $1, $0
+	db "がまん@@", $74, $1, $0
+	db "きく@@@", $8c, $1, $0
+	db "きたえ@@", $8e, $1, $0
+	db "きめ@@@", $a6, $1, $0
+	db "くる@@@", $c4, $1, $0
+	db "さがし@@", $18, $2, $0
+	db "さわぎ@@", $2a, $2, $0
+	db "した@@@", $42, $2, $0
+	db "しって@@", $4a, $2, $0
+	db "して@@@", $4e, $2, $0
+	db "しない@@", $52, $2, $0
+	db "しまう@@", $60, $2, $0
+	db "じまん@@", $66, $2, $0
+	db "しらない@", $84, $2, $0
+	db "しる@@@", $86, $2, $0
+	db "しんじて@", $8a, $2, $0
+	db "する@@@", $aa, $2, $0
+	db "たべる@@", $a, $3, $0
+	db "つかう@@", $42, $3, $0
+	db "つかえ@@", $44, $3, $0
+	db "つかって@", $46, $3, $0
+	db "できない@", $70, $3, $0
+	db "できる@@", $72, $3, $0
+	db "でない@@", $84, $3, $0
+	db "でる@@@", $8a, $3, $0
+	db "なげる@@", $d6, $3, $0
+	db "なやみ@@", $ea, $3, $0
+	db "ねられ@@", $18, $4, $0
+	db "ねる@@@", $1a, $4, $0
+	db "のがし@@", $24, $4, $0
+	db "のむ@@@", $28, $4, $0
+	db "はしり@@", $3a, $4, $0
+	db "はしる@@", $3c, $4, $0
+	db "はたらき@", $40, $4, $0
+	db "はたらく@", $42, $4, $0
+	db "はまって@", $4e, $4, $0
+	db "ぶつけ@@", $7a, $4, $0
+	db "ほめ@@@", $b4, $4, $0
+	db "みせて@@", $f6, $4, $0
+	db "みて@@@", $fc, $4, $0
+	db "みる@@@", $2, $5, $0
+	db "めざす@@", $20, $5, $0
+	db "もって@@", $34, $5, $0
+	db "ゆずる@@", $58, $5, $0
+	db "ゆるす@@", $5c, $5, $0
+	db "ゆるせ@@", $5e, $5, $0
+	db "られない@", $9a, $5, $0
+	db "られる@@", $9c, $5, $0
+	db "わかる@@", $b8, $5, $0
+	db "わすれ@@", $c0, $5, $0
+
+.Time: ; 11edb8
+	db "あき@@@", $22, $0, $0
+	db "あさ@@@", $2a, $0, $0
+	db "あした@@", $2c, $0, $0
+	db "いちにち@", $94, $0, $0
+	db "いつか@@", $98, $0, $0
+	db "いつも@@", $9e, $0, $0
+	db "いま@@@", $a2, $0, $0
+	db "えいえん@", $ce, $0, $0
+	db "おととい@", $12, $1, $0
+	db "おわり@@", $36, $1, $0
+	db "かようび@", $78, $1, $0
+	db "きのう@@", $94, $1, $0
+	db "きょう@@", $b0, $1, $0
+	db "きんようび", $b8, $1, $0
+	db "げつようび", $d4, $1, $0
+	db "このあと@", $f4, $1, $0
+	db "このまえ@", $f6, $1, $0
+	db "こんど@@", $c, $2, $0
+	db "じかん@@", $3c, $2, $0
+	db "じゅうねん", $70, $2, $0
+	db "すいようび", $8e, $2, $0
+	db "スタート@", $9e, $2, $0
+	db "ずっと@@", $a2, $2, $0
+	db "ストップ@", $a6, $2, $0
+	db "そのうち@", $c4, $2, $0
+	db "ついに@@", $3e, $3, $0
+	db "つぎ@@@", $4a, $3, $0
+	db "どようび@", $ba, $3, $0
+	db "なつ@@@", $da, $3, $0
+	db "にちようび", $6, $4, $0
+	db "はじめ@@", $38, $4, $0
+	db "はる@@@", $54, $4, $0
+	db "ひる@@@", $6c, $4, $0
+	db "ふゆ@@@", $84, $4, $0
+	db "まいにち@", $c6, $4, $0
+	db "もくようび", $30, $5, $0
+	db "よなか@@", $76, $5, $0
+	db "よる@@@", $7e, $5, $0
+	db "らいしゅう", $88, $5, $0
+
+.Farewells: ; 11eef0
+	db "いたします", $92, $0, $0
+	db "おります@", $32, $1, $0
+	db "か!?@@", $3c, $1, $0
+	db "かい?@@", $44, $1, $0
+	db "かしら?@", $50, $1, $0
+	db "かな?@@", $6a, $1, $0
+	db "かも@@@", $76, $1, $0
+	db "くれ@@@", $ca, $1, $0
+	db "ございます", $e8, $1, $0
+	db "しがち@@", $3a, $2, $0
+	db "します@@", $62, $2, $0
+	db "じゃ@@@", $6a, $2, $0
+	db "じゃん@@", $6e, $2, $0
+	db "しよう@@", $7c, $2, $0
+	db "ぜ!@@@", $ac, $2, $0
+	db "ぞ!@@@", $bc, $2, $0
+	db "た@@@@", $d4, $2, $0
+	db "だ@@@@", $d6, $2, $0
+	db "だからね@", $ee, $2, $0
+	db "だぜ@@@", $f4, $2, $0
+	db "だった@@", $fa, $2, $0
+	db "だね@@@", $fe, $2, $0
+	db "だよ@@@", $10, $3, $0
+	db "だよねー!", $12, $3, $0
+	db "だわ@@@", $26, $3, $0
+	db "ッス@@@", $4c, $3, $0
+	db "ってかんじ", $52, $3, $0
+	db "っぱなし@", $54, $3, $0
+	db "つもり@@", $56, $3, $0
+	db "ていない@", $64, $3, $0
+	db "ている@@", $66, $3, $0
+	db "でーす!@", $68, $3, $0
+	db "でした@@", $74, $3, $0
+	db "でしょ?@", $76, $3, $0
+	db "でしょー!", $78, $3, $0
+	db "です@@@", $7a, $3, $0
+	db "ですか?@", $7c, $3, $0
+	db "ですよ@@", $80, $3, $0
+	db "ですわ@@", $82, $3, $0
+	db "どうなの?", $a4, $3, $0
+	db "どうよ?@", $a8, $3, $0
+	db "とかいって", $aa, $3, $0
+	db "なの@@@", $e0, $3, $0
+	db "なのか@@", $e2, $3, $0
+	db "なのだ@@", $e4, $3, $0
+	db "なのよ@@", $e6, $3, $0
+	db "なんだね@", $f2, $3, $0
+	db "なんです@", $f8, $3, $0
+	db "なんてね@", $fa, $3, $0
+	db "ね@@@@", $12, $4, $0
+	db "ねー@@@", $14, $4, $0
+	db "の@@@@", $1c, $4, $0
+	db "の?@@@", $1e, $4, $0
+	db "ばっかり@", $44, $4, $0
+	db "まーす!@", $c2, $4, $0
+	db "ます@@@", $d8, $4, $0
+	db "ますわ@@", $da, $4, $0
+	db "ません@@", $dc, $4, $0
+	db "みたいな@", $fa, $4, $0
+	db "よ!@@@", $60, $5, $0
+	db "よー@@@", $68, $5, $0
+	db "よーん@@", $6c, $5, $0
+	db "よね@@@", $78, $5, $0
+	db "るよ@@@", $a2, $5, $0
+	db "わけ@@@", $bc, $5, $0
+	db "わよ!@@", $d2, $5, $0
+
+.ThisAndThat: ; 11f100
+	db "ああ@@@", $12, $0, $0
+	db "あっち@@", $3c, $0, $0
+	db "あの@@@", $4e, $0, $0
+	db "ありゃ@@", $5c, $0, $0
+	db "あれ@@@", $66, $0, $0
+	db "あれは@@", $68, $0, $0
+	db "あんな@@", $6c, $0, $0
+	db "こう@@@", $dc, $1, $0
+	db "こっち@@", $ec, $1, $0
+	db "この@@@", $f2, $1, $0
+	db "こりゃ@@", $fe, $1, $0
+	db "これ@@@", $0, $2, $0
+	db "これだ!@", $2, $2, $0
+	db "これは@@", $4, $2, $0
+	db "こんな@@", $e, $2, $0
+	db "そう@@@", $be, $2, $0
+	db "そっち@@", $c0, $2, $0
+	db "その@@@", $c2, $2, $0
+	db "そりゃ@@", $c6, $2, $0
+	db "それ@@@", $c8, $2, $0
+	db "それだ!@", $cc, $2, $0
+	db "それは@@", $d0, $2, $0
+	db "そんな@@", $d2, $2, $0
+	db "どう@@@", $98, $3, $0
+	db "どっち@@", $b2, $3, $0
+	db "どの@@@", $b4, $3, $0
+	db "どりゃ@@", $c0, $3, $0
+	db "どれ@@@", $c2, $3, $0
+	db "どれを@@", $c8, $3, $0
+	db "どんな@@", $ca, $3, $0
+	db "なに@@@", $de, $3, $0
+	db "なんか@@", $ec, $3, $0
+	db "なんだ@@", $f0, $3, $0
+	db "なんで@@", $f6, $3, $0
+	db "なんなんだ", $0, $4, $0
+	db "なんの@@", $2, $4, $0
+; 11f220
+
+MobileEZChatData_WordAndPageCounts:
+macro_11f220: macro
+; parameter: number of words
+	db \1
+; 12 words per page (0-based indexing)
+x = \1 / 12
+if \1 % 12 == 0
+x = x +- 1
+endc
+	db x
+endm
+	macro_11f220 18 ; 01: Types
+	macro_11f220 36 ; 02: Greetings
+	macro_11f220 69 ; 03: People
+	macro_11f220 69 ; 04: Battle
+	macro_11f220 66 ; 05: Exclamations
+	macro_11f220 66 ; 06: Conversation
+	macro_11f220 69 ; 07: Feelings
+	macro_11f220 66 ; 08: Conditions
+	macro_11f220 39 ; 09: Life
+	macro_11f220 39 ; 0a: Hobbies
+	macro_11f220 69 ; 0b: Actions
+	macro_11f220 39 ; 0c: Time
+	macro_11f220 66 ; 0d: Farewells
+	macro_11f220 36 ; 0e: ThisAndThat
+
+EZChat_SortedWords:
+; Addresses in WRAM bank 3 where EZChat words beginning
+; with the given kana are sorted in memory, and the pre-
+; allocated size for each.
+; These arrays are expanded dynamically to accomodate
+; any Pokemon you've seen that starts with each kana.\
+macro_11f23c: macro
+	dw x - w3_d000, \1
+x = x + 2 * \1
+endm
+x = $d012
+	macro_11f23c $2f ; a
+	macro_11f23c $1e ; i
+	macro_11f23c $11 ; u
+	macro_11f23c $09 ; e
+	macro_11f23c $2e ; o
+	macro_11f23c $24 ; ka_ga
+	macro_11f23c $1b ; ki_gi
+	macro_11f23c $09 ; ku_gu
+	macro_11f23c $07 ; ke_ge
+	macro_11f23c $1c ; ko_go
+	macro_11f23c $12 ; sa_za
+	macro_11f23c $2b ; shi_ji
+	macro_11f23c $10 ; su_zu
+	macro_11f23c $08 ; se_ze
+	macro_11f23c $0c ; so_zo
+	macro_11f23c $2c ; ta_da
+	macro_11f23c $09 ; chi_dhi
+	macro_11f23c $12 ; tsu_du
+	macro_11f23c $1b ; te_de
+	macro_11f23c $1a ; to_do
+	macro_11f23c $1c ; na
+	macro_11f23c $05 ; ni
+	macro_11f23c $02 ; nu
+	macro_11f23c $05 ; ne
+	macro_11f23c $07 ; no
+	macro_11f23c $16 ; ha_ba_pa
+	macro_11f23c $0e ; hi_bi_pi
+	macro_11f23c $0c ; fu_bu_pu
+	macro_11f23c $05 ; he_be_pe
+	macro_11f23c $16 ; ho_bo_po
+	macro_11f23c $19 ; ma
+	macro_11f23c $0e ; mi
+	macro_11f23c $08 ; mu
+	macro_11f23c $07 ; me
+	macro_11f23c $09 ; mo
+	macro_11f23c $0d ; ya
+	macro_11f23c $04 ; yu
+	macro_11f23c $14 ; yo
+	macro_11f23c $0b ; ra
+	macro_11f23c $01 ; ri
+	macro_11f23c $02 ; ru
+	macro_11f23c $02 ; re
+	macro_11f23c $02 ; ro
+	macro_11f23c $15 ; wa
+x = $d000
+	macro_11f23c $09 ; end
+EZChat_SortedWordsEnd:
--- /dev/null
+++ b/mobile/mobile_12.asm
@@ -1,0 +1,1845 @@
+InitMobileProfile: ; 4802f (12:402f)
+	xor a
+	set 6, a
+	ld [wd002], a
+	ld hl, wd003
+	set 0, [hl]
+	ld a, c
+	and a
+	call z, InitCrystalData
+	call ClearBGPalettes
+	call Function48d3d
+	ld a, [wd479]
+	bit 1, a
+	jr z, .not_yet_initialized
+	ld a, [wd003]
+	set 0, a
+	set 1, a
+	set 2, a
+	set 3, a
+	ld [wd003], a
+.not_yet_initialized
+	call Function486bf
+	call LoadFontsExtra
+	ld de, GFX_488c3
+	ld hl, VTiles2 tile $10
+	lb bc, BANK(GFX_488c3), 1
+	call Request1bpp
+	ld de, GFX_488cb
+	ld hl, VTiles2 tile $11
+	lb bc, BANK(GFX_488cb), 1
+	call Request1bpp
+	call Function4a3a7
+	call ClearBGPalettes
+	ld a, [wd002]
+	bit 6, a
+	jr z, .asm_4808a
+	call Function48689
+	jr .asm_480d7
+.asm_4808a
+	ld a, $5
+	ld [MusicFade], a
+	ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
+	ld [MusicFadeID], a
+	ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
+	ld [MusicFadeID + 1], a
+	ld c, 20
+	call DelayFrames
+	ld b, $1
+	call GetMysteryGift_MobileAdapterLayout
+	call ClearBGPalettes
+	hlcoord 0, 0
+	ld b,  2
+	ld c, 20
+	call ClearBox
+	hlcoord 0, 1
+	ld a, $c
+	ld [hl], a
+	ld bc, $13
+	add hl, bc
+	ld [hl], a
+	ld de, MobileProfileString
+	hlcoord 1, 1
+	call PlaceString
+	hlcoord 0, 2
+	ld b, $a
+	ld c, $12
+	call Function48cdc
+	hlcoord 2, 4
+	ld de, MobileString_Gender
+	call PlaceString
+.asm_480d7
+	hlcoord 2, 6
+	ld de, MobileString_Age
+	call PlaceString
+	hlcoord 2, 8
+	ld de, MobileString_Address
+	call PlaceString
+	hlcoord 2, 10
+	ld de, MobileString_ZipCode
+	call PlaceString
+	hlcoord 2, 12
+	ld de, MobileString_OK
+	call PlaceString
+	ld a, [wd002]
+	bit 6, a
+	jr nz, .asm_48113
+	ld a, [PlayerGender]
+	ld hl, Strings_484fb
+	call GetNthString
+	ld d, h
+	ld e, l
+	hlcoord 11, 4
+	call PlaceString
+.asm_48113
+	hlcoord 11, 6
+	call Function487ec
+	ld a, [wd474]
+	dec a
+	ld hl, Prefectures
+	call GetNthString
+	ld d, h
+	ld e, l
+	hlcoord 11, 8
+	call PlaceString
+	hlcoord 11, 10
+	call Function489ea
+	hlcoord 0, 14
+	ld b, $2
+	ld c, $12
+	call TextBox
+	hlcoord 1, 16
+	ld de, MobileString_PersonalInfo
+	call PlaceString
+	call Function48187
+	call WaitBGMap2
+	call SetPalettes
+	call StaticMenuJoypad
+	ld hl, wMenuCursorY
+	ld b, [hl]
+	push bc
+	jr asm_4815f
+
+Function48157: ; 48157 (12:4157)
+	call ScrollingMenuJoypad
+	ld hl, wMenuCursorY
+	ld b, [hl]
+	push bc
+asm_4815f: ; 4815f (12:415f)
+	bit A_BUTTON_F, a
+	jp nz, Function4820d
+	ld b, a
+	ld a, [wd002]
+	bit 6, a
+	jr z, .dont_check_b_button
+	ld hl, wd479
+	bit 1, [hl]
+	jr z, .dont_check_b_button
+	bit B_BUTTON_F, b
+	jr nz, .b_button
+.dont_check_b_button
+	jp Function48272
+
+.b_button
+	call ClearBGPalettes
+	call Function48d30
+	pop bc
+	call ClearTileMap
+	ld a, $ff
+	ret
+
+Function48187: ; 48187 (12:4187)
+	ld a, [wd479]
+	bit 1, a
+	jr nz, .asm_481f1
+	ld a, [wd003]
+	ld d, a
+	call Function48725
+	jr c, .asm_481a2
+	lb bc, 1, 4
+	hlcoord 2, 12
+	call ClearBox
+	jr .asm_481ad
+.asm_481a2
+	push de
+	hlcoord 2, 12
+	ld de, MobileString_OK
+	call PlaceString
+	pop de
+.asm_481ad
+	ld a, [wd002]
+	bit 6, a
+	jr nz, .asm_481c1
+	bit 0, d
+	jr nz, .asm_481c1
+	lb bc, 1, 8
+	hlcoord 11, 4
+	call ClearBox
+.asm_481c1
+	bit 1, d
+	jr nz, .asm_481ce
+	lb bc, 1, 8
+	hlcoord 11, 6
+	call ClearBox
+.asm_481ce
+	bit 2, d
+	jr nz, .asm_481db
+	lb bc, 2, 8
+	hlcoord 11, 7
+	call ClearBox
+.asm_481db
+	bit 3, d
+	jr nz, .asm_481f1
+	ld a, [wd479]
+	bit 0, a
+	jr nz, .asm_481f8
+	lb bc, 1, 8
+	hlcoord 11, 10
+	call ClearBox
+	jr .asm_48201
+.asm_481f1
+	ld a, [wd479]
+	bit 0, a
+	jr nz, .asm_48201
+.asm_481f8
+	hlcoord 11, 10
+	ld de, .String_TellLater
+	call PlaceString
+.asm_48201
+	ret
+; 48202 (12:4202)
+
+.String_TellLater: ; 48202
+	db "Tell Later@"
+; 4820d
+
+Function4820d: ; 4820d (12:420d)
+	call PlaceHollowCursor
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	push af
+	ld a, [wd002]
+	bit 6, a
+	jr z, .asm_4821f
+	pop af
+	inc a
+	push af
+.asm_4821f
+	pop af
+	cp $1
+	jr z, asm_4828d
+	cp $2
+	jp z, Function4876f
+	cp $3
+	jp z, Function48304
+	cp $4
+	jp z, Function488d3
+	ld a, $2
+	call MenuClickSound
+	ld a, [wd002]
+	bit 6, a
+	jr z, .asm_4825c
+	jr .asm_4825c
+; 48241 (12:4241)
+
+	hlcoord 1, 15
+	ld b, $2
+	ld c, $12
+	call ClearBox
+	ld de, MobileString_ProfileChanged
+	hlcoord 1, 16
+	call PlaceString
+	call WaitBGMap
+	ld c, 48
+	call DelayFrames
+
+.asm_4825c
+	call ClearBGPalettes
+	call Function48d30
+	pop bc
+	call ClearTileMap
+	ld b, SCGB_DIPLOMA
+	call GetSGBLayout
+	ld hl, wd479
+	set 1, [hl]
+	xor a
+	ret
+
+Function48272: ; 48272 (12:4272)
+	jp Function4840c
+; 48275 (12:4275)
+
+MobileString_PersonalInfo: ; 48275
+	db "Personal Info@"
+; 48283
+
+Function48283: ; 48283 (12:4283)
+	lb bc, 2, 18
+	hlcoord 1, 15
+	call ClearBox
+	ret
+
+asm_4828d: ; 4828d (12:428d)
+	call Function48283
+	hlcoord 1, 16
+	ld de, MobileDesc_Gender
+	call PlaceString
+	ld hl, MenuDataHeader_0x484f1
+	call LoadMenuDataHeader
+	call Function4873c
+	hlcoord 11, 2
+	ld b, $4
+	ld c, $7
+	call Function48cdc
+	hlcoord 13, 4
+	ld de, String_484fb
+	call PlaceString
+	hlcoord 13, 6
+	ld de, String_484ff
+	call PlaceString
+	call WaitBGMap
+	ld a, [PlayerGender]
+	inc a
+	ld [wMenuCursorBuffer], a
+	call StaticMenuJoypad
+	call PlayClickSFX
+	call ExitMenu
+	bit 0, a
+	jp z, Function4840c
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	ld hl, Strings_484fb
+	cp $1
+	jr z, .asm_482ed
+.asm_482e1
+	ld a, [hli]
+	cp $50
+	jr nz, .asm_482e1
+	ld a, $1
+	ld [PlayerGender], a
+	jr .asm_482f1
+.asm_482ed
+	xor a
+	ld [PlayerGender], a
+.asm_482f1
+	ld d, h
+	ld e, l
+	hlcoord 11, 4
+	call PlaceString
+	ld a, [wd003]
+	set 0, a
+	ld [wd003], a
+	jp Function4840c
+
+Function48304: ; 48304 (12:4304)
+	call Function48283
+	hlcoord 1, 16
+	ld de, MobileDesc_Address
+	call PlaceString
+	ld hl, MenuDataHeader_0x48504
+	call LoadMenuDataHeader
+	ld hl, MenuDataHeader_0x48513
+	call LoadMenuDataHeader
+	hlcoord 10, 0
+	ld b, $c
+	ld c, $8
+	call Function48cdc
+	ld a, [wMenuCursorBuffer]
+	ld b, a
+	ld a, [wMenuScrollPosition]
+	ld c, a
+	push bc
+	ld a, [wd474]
+	dec a
+	cp $29
+	jr c, .asm_4833f
+	sub $29
+	inc a
+	ld [wMenuCursorBuffer], a
+	ld a, $29
+.asm_4833f
+	ld [wMenuScrollPosition], a
+	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+.asm_48348
+	call ScrollingMenu
+	ld de, $629
+	call Function48383
+	jr c, .asm_48348
+	ld d, a
+	pop bc
+	ld a, b
+	ld [wMenuCursorBuffer], a
+	ld a, c
+	ld [wMenuScrollPosition], a
+	ld a, d
+	push af
+	call ExitMenu
+	call ExitMenu
+	pop af
+	ld a, [hJoyPressed]
+	bit 0, a
+	jr z, .asm_48377
+	call Function483bb
+	ld a, [wd003]
+	set 2, a
+	ld [wd003], a
+.asm_48377
+	call Function48187
+	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+	jp Function4840c
+
+Function48383: ; 48383 (12:4383)
+	push bc
+	push af
+	bit 5, a
+	jr nz, .asm_48390
+	bit 4, a
+	jr nz, .asm_4839f
+	and a
+	jr .asm_483b7
+.asm_48390
+	ld a, [wMenuScrollPosition]
+	sub d
+	ld [wMenuScrollPosition], a
+	jr nc, .asm_483af
+	xor a
+	ld [wMenuScrollPosition], a
+	jr .asm_483af
+.asm_4839f
+	ld a, [wMenuScrollPosition]
+	add d
+	ld [wMenuScrollPosition], a
+	cp e
+	jr c, .asm_483af
+	ld a, e
+	ld [wMenuScrollPosition], a
+	jr .asm_483af
+.asm_483af
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	ld [wMenuCursorBuffer], a
+	scf
+.asm_483b7
+	pop bc
+	ld a, b
+	pop bc
+	ret
+
+Function483bb: ; 483bb (12:43bb)
+	ld hl, wScrollingMenuCursorPosition
+	ld a, [hl]
+	inc a
+	ld [wd474], a
+	dec a
+	ld b, a
+	ld hl, Prefectures
+.asm_483c8
+	and a
+	jr z, .asm_483d5
+.asm_483cb
+	ld a, [hli]
+	cp "@"
+	jr nz, .asm_483cb
+	ld a, b
+	dec a
+	ld b, a
+	jr .asm_483c8
+.asm_483d5
+	ld d, h
+	ld e, l
+	ld b, $2
+	ld c, $8
+	hlcoord 11, 7
+	call ClearBox
+	hlcoord 11, 8
+	call PlaceString
+	ret
+; 483e8 (12:43e8)
+
+Function483e8: ; 483e8
+	push de
+	ld hl, Prefectures
+	ld a, [MenuSelection]
+	cp $ff
+	jr nz, .asm_483f8
+	ld hl, Wakayama ; last string
+	jr .asm_48405
+
+.asm_483f8
+	ld d, a
+	and a
+	jr z, .asm_48405
+.asm_483fc
+	ld a, [hli]
+	cp "@"
+	jr nz, .asm_483fc
+	ld a, d
+	dec a
+	jr .asm_483f8
+
+.asm_48405
+	ld d, h
+	ld e, l
+	pop hl
+	call PlaceString
+	ret
+; 4840c
+
+Function4840c: ; 4840c (12:440c)
+	call Function48187
+	call Function48283
+	hlcoord 1, 16
+	ld de, MobileString_PersonalInfo
+	call PlaceString
+	call Function486bf
+	pop bc
+	ld hl, wMenuCursorY
+	ld [hl], b
+	ld a, [wd002]
+	bit 6, a
+	jr nz, .narrower_box
+	ld b, 9
+	ld c, 1
+	hlcoord 1, 4
+	call ClearBox
+	jp Function48157
+
+.narrower_box
+	ld b, 7
+	ld c, 1
+	hlcoord 1, 6
+	call ClearBox
+	jp Function48157
+
+Mobile12_Bin2Dec: ; 48444 (12:4444)
+	push bc
+	push af
+	push de
+	push hl
+	ld hl, .DigitStrings
+.loop
+	and a
+	jr z, .got_string
+	inc hl
+	inc hl
+	dec a
+	jr .loop
+.got_string
+	ld d, h
+	ld e, l
+	pop hl
+	call PlaceString
+	pop de
+	pop af
+	pop bc
+	ret
+; 4845d (12:445d)
+
+.DigitStrings: ; 4845d
+; 4845d
+	db "0@"
+	db "1@"
+	db "2@"
+	db "3@"
+	db "4@"
+	db "5@"
+	db "6@"
+	db "7@"
+	db "8@"
+	db "9@"
+; 48471
+
+MobileProfileString:         db "  Mobile Profile@"
+MobileString_Gender:         db "Gender@"
+MobileString_Age:            db "Age@"
+MobileString_Address:        db "Address@"
+MobileString_ZipCode:        db "Zip Code@"
+MobileString_OK:             db "OK@"
+MobileString_ProfileChanged: db "Profile Changed@"
+MobileDesc_Gender:           db "Boy or girl?@"
+MobileDesc_Age:              db "How old are you?@"
+MobileDesc_Address:          db "Where do you live?@"
+MobileDesc_ZipCode:          db "Your zip code?@"
+; 484f1
+
+MenuDataHeader_0x484f1: ; 0x484f1
+	db $40 ; flags
+	db 02, 11 ; start coords
+	db 07, 19 ; end coords
+	dw MenuData2_0x484f9
+	db 1 ; default option
+; 0x484f9
+
+MenuData2_0x484f9: ; 0x484f9
+	db $a0 ; flags
+	db 2 ; items
+Strings_484fb:
+String_484fb: db "Boy@"
+String_484ff: db "Girl@"
+; 0x48504
+
+MenuDataHeader_0x48504: ; 0x48504
+	db $40 ; flags
+	db 00, 10 ; start coords
+	db 17, 19 ; end coords
+
+MenuDataHeader_0x48509: ; 0x48509
+	db $40 ; flags
+	db 05, 10 ; start coords
+	db 07, 19 ; end coords
+
+MenuDataHeader_0x4850e: ; 0x4850e
+	db $40 ; flags
+	db 09, 10 ; start coords
+	db 11, 19 ; end coords
+
+MenuDataHeader_0x48513: ; 0x48513
+	db $40 ; flags
+	db 01, 11 ; start coords
+	db 12, 18 ; end coords
+	dw MenuData2_0x4851b
+	db 1 ; default option
+; 0x4851b
+
+MenuData2_0x4851b: ; 0x4851b
+	db $1d ; flags
+	db 6 ; items
+
+Unknown_4851d: ; 4851d
+	db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
+	db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
+	db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
+	db $2d, $ff
+
+Prefectures:
+Aichi:     db "あいちけん@"   ; Aichi
+Aomori:    db "あおもりけん@" ; Aomori
+Akita:     db "あきたけん@"   ; Akita
+Ishikawa:  db "いしかわけん@" ; Ishikawa
+Ibaraki:   db "いばらきけん@" ; Ibaraki
+Iwate:     db "いわてけん@"   ; Iwate
+Ehime:     db "えひめけん@"   ; Ehime
+Oita:      db "おおいたけん@" ; Oita
+Osakafu:   db "おおさかふ@"   ; Osakafu
+Okayama:   db "おかやまけん@" ; Okayama
+Okinawa:   db "おきなわけん@" ; Okinawa
+Kagawa:    db "かがわけん@"   ; Kagawa
+Kagoshima: db "かごしまけん@" ; Kagoshima
+Kanagawa:  db "かながわけん@" ; Kanagawa
+Gifu:      db "ぎふけん@"     ; Gifu
+Kyotofu:   db "きょうとふ@"   ; Kyotofu
+Kumamoto:  db "くまもとけん@" ; Kumamoto
+Gunma:     db "ぐんまけん@"   ; Gunma
+Kochi:     db "こうちけん@"   ; Kochi
+Saitama:   db "さいたまけん@" ; Saitama
+Saga:      db "さがけん@"     ; Saga
+Shiga:     db "しがけん@"     ; Shiga
+Shizuoka:  db "しずおかけん@" ; Shizuoka
+Shimane:   db "しまねけん@"   ; Shimane
+Chiba:     db "ちばけん@"     ; Chiba
+Tokyo:     db "とうきょうと@" ; Tokyo
+Tokushima: db "とくしまけん@" ; Tokushima
+Tochigi:   db "とちぎけん@"   ; Tochigi
+Tottori:   db "とっとりけん@" ; Tottori
+Toyama:    db "とやまけん@"   ; Toyama
+Nagasaki:  db "ながさきけん@" ; Nagasaki
+Nagano:    db "ながのけん@"   ; Nagano
+Naraken:   db "ならけん@"     ; Naraken
+Niigata:   db "にいがたけん@" ; Niigata
+Hyogo:     db "ひょうごけん@" ; Hyogo
+Hiroshima: db "ひろしまけん@" ; Hiroshima
+Fukui:     db "ふくいけん@"   ; Fukui
+Fukuoka:   db "ふくおかけん@" ; Fukuoka
+Fukushima: db "ふくしまけん@" ; Fukushima
+Hokkaido:  db "ほっかいどう@" ; Hokkaido
+Mie:       db "みえけん@"     ; Mie
+Miyagi:    db "みやぎけん@"   ; Miyagi
+Miyazaki:  db "みやざきけん@" ; Miyazaki
+Yamagata:  db "やまがたけん@" ; Yamagata
+Yamaguchi: db "やまぐちけん@" ; Yamaguchi
+Yamanashi: db "やまなしけん@" ; Yamanashi
+Wakayama:  db "わかやまけん@" ; Wakayama
+; 48689
+
+Function48689: ; 48689 (12:4689)
+	ld c, 7
+	call DelayFrames
+	ld b, $1
+	call GetMysteryGift_MobileAdapterLayout
+	call ClearBGPalettes
+	hlcoord 0, 0
+	ld b, 4
+	ld c, SCREEN_WIDTH
+	call ClearBox
+	hlcoord 0, 2
+	ld a, $c
+	ld [hl], a
+	ld bc, SCREEN_WIDTH - 1
+	add hl, bc
+	ld [hl], a
+	ld de, MobileProfileString
+	hlcoord 1, 2
+	call PlaceString
+	hlcoord 0, 4
+	ld b, $8
+	ld c, $12
+	call Function48cdc
+	ret
+
+Function486bf: ; 486bf (12:46bf)
+	ld hl, w2DMenuCursorInitY
+	ld a, [wd002]
+	bit 6, a
+	jr nz, .start_at_6
+	ld a, 4
+	ld [hli], a
+	jr .got_init_y
+
+.start_at_6
+	ld a, 6
+	ld [hli], a
+.got_init_y
+	ld a, 1
+	ld [hli], a ; init x
+	ld a, [wd002]
+	bit 6, a
+	jr nz, .check_wd479
+	call Function48725
+	ld a, 4
+	jr nc, .got_num_rows_1
+	ld a, 5
+.got_num_rows_1
+	ld [hli], a
+	jr .got_num_rows_2
+
+.check_wd479
+	ld a, [wd479]
+	bit 1, a
+	jr nz, .four_rows
+	call Function48725
+	jr c, .four_rows
+	ld a, 3
+	ld [hli], a
+	jr .got_num_rows_2
+
+.four_rows
+	ld a, 4
+	ld [hli], a
+.got_num_rows_2
+	ld a, 1
+	ld [hli], a ; num cols
+	ld [hl], $0 ; flags 1
+	set 5, [hl]
+	inc hl
+	xor a
+	ld [hli], a ; flags 2
+	ld a, $20
+	ld [hli], a ; cursor offsets
+	ld a, A_BUTTON
+	add D_UP
+	add D_DOWN
+	push af
+	ld a, [wd002]
+	bit 6, a
+	jr z, .got_joypad_mask
+	pop af
+	add B_BUTTON
+	push af
+.got_joypad_mask
+	pop af
+	ld [hli], a
+	ld a, $1
+	ld [hli], a ; cursor y
+	ld [hli], a ; cursor x
+	xor a
+	ld [hli], a ; off char
+	ld [hli], a ; cursor tile
+	ld [hli], a ; cursor tile + 1
+	ret
+
+Function48725: ; 48725 (12:4725)
+;	 ld a, [wd003]
+;	 and $f
+;	 cp $f
+;	 jr nz, .clear_carry
+;	 scf
+;	 ret
+; .clear_carry
+;	 and a
+;	 ret
+
+	ld a, [wd003]
+	bit 0, a
+	jr z, .clear_carry
+	bit 1, a
+	jr z, .clear_carry
+	bit 2, a
+	jr z, .clear_carry
+	bit 3, a
+	jr z, .clear_carry
+	scf
+	ret
+
+.clear_carry
+	and a
+	ret
+
+Function4873c: ; 4873c (12:473c)
+	ld hl, w2DMenuCursorInitY
+	ld a, 4
+	ld [hli], a
+	ld a, 12
+	ld [hli], a ; init x
+	ld a, 2
+	ld [hli], a ; num rows
+	ld a, 1
+	ld [hli], a ; num cols
+	ld [hl], $0 ; flags 1
+	set 5, [hl]
+	inc hl
+	xor a
+	ld [hli], a ; flags 2
+	ln a, 2, 0
+	ld [hli], a ; cursor offsets
+	ld a, A_BUTTON
+	add B_BUTTON
+	ld [hli], a ; joypad filter
+	; ld a, [PlayerGender]
+	; xor 1
+	; inc a
+	ld a, [PlayerGender]
+	and a
+	jr z, .male
+	ld a, 2
+	jr .okay_gender
+
+.male
+	ld a, 1
+.okay_gender
+	ld [hli], a ; cursor y
+	ld a, $1
+	ld [hli], a ; cursor x
+	xor a
+	ld [hli], a ; off char
+	ld [hli], a ; cursor tile
+	ld [hli], a ; cursor tile + 1
+	ret
+
+Function4876f: ; 4876f (12:476f)
+	call Function48283
+	hlcoord 1, 16
+	ld de, MobileDesc_Age
+	call PlaceString
+	ld hl, MenuDataHeader_0x48509
+	call LoadMenuDataHeader
+	ld a, [hInMenu]
+	push af
+	ld a, $1
+	ld [hInMenu], a
+	hlcoord 10, 5
+	ld b, $1
+	ld c, $8
+	call Function48cdc
+	call WaitBGMap
+	ld a, [wd473]
+	and a
+	jr z, .asm_487ab
+	cp $64
+	jr z, .asm_487b2
+	hlcoord 12, 5
+	ld [hl], $10
+	hlcoord 12, 7
+	ld [hl], $11
+	jr .asm_487b7
+.asm_487ab
+	hlcoord 12, 5
+	ld [hl], $10
+	jr .asm_487b7
+.asm_487b2
+	hlcoord 12, 7
+	ld [hl], $11
+.asm_487b7
+	hlcoord 11, 6
+	call Function487ec
+	ld c, 10
+	call DelayFrames
+	ld a, [wd473]
+	push af
+.asm_487c6
+	call JoyTextDelay
+	call Function4880e
+	jr nc, .asm_487c6
+	ld a, $1
+	call MenuClickSound
+	pop bc
+	jr nz, .asm_487da
+	ld a, b
+	ld [wd473], a
+.asm_487da
+	ld a, [wd473]
+	call ExitMenu
+	hlcoord 11, 6
+	call Function487ec
+	pop af
+	ld [hInMenu], a
+	jp Function4840c
+
+Function487ec: ; 487ec (12:47ec)
+	push hl
+	ld de, wd473
+	call Function487ff
+	pop hl
+rept 4
+	inc hl
+endr
+	ld de, String_4880d
+	call PlaceString
+	ret
+
+Function487ff: ; 487ff (12:47ff)
+	push hl
+	ld a, " "
+	ld [hli], a
+	ld [hl], a
+	pop hl
+	ld b, PRINTNUM_LEADINGZEROS | 1
+	ld c, 3
+	call PrintNum
+	ret
+; 4880d (12:480d)
+
+String_4880d: ; 4880d
+	db "@"
+; 4880e
+
+Function4880e: ; 4880e (12:480e)
+	ld a, [hJoyPressed]
+	and A_BUTTON
+	jp nz, Function488b9
+	ld a, [hJoyPressed]
+	and B_BUTTON
+	jp nz, Function488b4
+	ld hl, hJoyLast
+	ld a, [hl]
+	and D_UP
+	jr nz, .asm_48843
+	ld a, [hl]
+	and D_DOWN
+	jr nz, .asm_48838
+	ld a, [hl]
+	and D_LEFT
+	jr nz, .asm_4884f
+	ld a, [hl]
+	and D_RIGHT
+	jr nz, .asm_4885f
+	call DelayFrame
+	and a
+	ret
+.asm_48838
+	ld hl, wd473
+	ld a, [hl]
+	and a
+	jr z, .asm_48840
+	dec a
+.asm_48840
+	ld [hl], a
+	jr .asm_4886f
+.asm_48843
+	ld hl, wd473
+	ld a, [hl]
+	cp $64
+	jr nc, .asm_4884c
+	inc a
+.asm_4884c
+	ld [hl], a
+	jr .asm_4886f
+.asm_4884f
+	ld a, [wd473]
+	cp $5b
+	jr c, .asm_48858
+	ld a, $5a
+.asm_48858
+	add $a
+	ld [wd473], a
+	jr .asm_4886f
+.asm_4885f
+	ld a, [wd473]
+	cp $a
+	jr nc, .asm_48868
+	ld a, $a
+.asm_48868
+	sub $a
+	ld [wd473], a
+	jr .asm_4886f
+.asm_4886f
+	ld a, [wd473]
+	and a
+	jr z, .asm_48887
+	cp $64
+	jr z, .asm_48898
+	jr z, .asm_488a7
+	hlcoord 12, 5
+	ld [hl], $10
+	hlcoord 12, 7
+	ld [hl], $11
+	jr .asm_488a7
+.asm_48887
+	hlcoord 10, 5
+	ld b, $1
+	ld c, $8
+	call Function48cdc
+	hlcoord 12, 5
+	ld [hl], $10
+	jr .asm_488a7
+.asm_48898
+	hlcoord 10, 5
+	ld b, $1
+	ld c, $8
+	call Function48cdc
+	hlcoord 12, 7
+	ld [hl], $11
+.asm_488a7
+	hlcoord 11, 6
+	call Function487ec
+	call WaitBGMap
+	ld a, $1
+	and a
+	ret
+
+Function488b4: ; 488b4 (12:48b4)
+	ld a, $0
+	and a
+	scf
+	ret
+
+Function488b9: ; 488b9 (12:48b9)
+	ld a, [wd003]
+	set 1, a
+	ld [wd003], a
+	scf
+	ret
+; 488c3 (12:48c3)
+
+GFX_488c3: ; 488c3
+INCBIN "gfx/unknown/up_arrow.2bpp"
+
+GFX_488cb: ; 488cb
+INCBIN "gfx/unknown/down_arrow.2bpp"
+
+Function488d3: ; 488d3 (12:48d3)
+	call Function48283
+	hlcoord 1, 16
+	ld de, MobileDesc_ZipCode
+	call PlaceString
+	call Function48a3a
+	jp c, Function4840c
+	ld hl, MenuDataHeader_0x4850e
+	call LoadMenuDataHeader
+	ld a, [hInMenu]
+	push af
+	ld a, $1
+	ld [hInMenu], a
+	hlcoord 10, 9
+	ld b, $1
+	ld c, $8
+	call Function48cdc
+	ld a, [wd475]
+	and $f
+	ld d, $0
+	hlcoord 11, 10
+	call Function489ea
+	call WaitBGMap
+	ld a, [wd475]
+	ld b, a
+	ld a, [wd476]
+	ld c, a
+	ld a, [wd477]
+	ld d, a
+	ld a, [wd478]
+	ld e, a
+	push de
+	push bc
+	ld d, $0
+	ld b, $0
+
+asm_48922: ; 48922 (12:4922)
+	push bc
+	call JoyTextDelay
+	ld a, [hJoyDown]
+	and a
+	jp z, Function4896e
+	bit 0, a
+	jp nz, Function4896e
+	bit 1, a
+	jp nz, Function4896e
+	ld a, [wd002]
+	and %11001111
+	res 7, a
+	ld [wd002], a
+	pop bc
+	inc b
+	ld a, b
+	cp $5
+	push bc
+	jr c, .asm_4894c
+	pop bc
+	ld b, $4
+	push bc
+.asm_4894c
+	pop bc
+	push bc
+	ld a, b
+	cp $4
+	jr nz, asm_48972
+	ld c, 10
+	call DelayFrames
+	jr asm_48972
+; 4895a (12:495a)
+
+Function4895a: ; 4895a
+	ld a, [hJoyPressed]
+	and a
+	jr z, .asm_48965
+	pop bc
+	ld b, $1
+	push bc
+	jr asm_48972
+
+.asm_48965
+	ld a, [hJoyLast]
+	and a
+	jr z, asm_48972
+
+	pop bc
+	ld b, $1
+	push bc
+
+Function4896e: ; 4896e (12:496e)
+	pop bc
+	ld b, $0
+	push bc
+
+asm_48972: ; 48972 (12:4972)
+	call Function48ab5
+	push af
+	cp $f0
+	jr z, .asm_48994
+	cp $f
+	jr nz, .asm_48988
+	ld a, [wd002]
+	set 7, a
+	and $cf
+	ld [wd002], a
+.asm_48988
+	hlcoord 11, 10
+	ld b, $0
+	ld c, d
+	add hl, bc
+	ld b, $3
+	call Function48c11
+.asm_48994
+	call WaitBGMap
+	pop af
+	pop bc
+	jr nc, asm_48922
+	jr nz, .asm_489b1
+	pop bc
+	ld a, b
+	ld [wd475], a
+	ld a, c
+	ld [wd476], a
+	pop bc
+	ld a, b
+	ld [wd477], a
+	ld a, c
+	ld [wd478], a
+	jr .asm_489c5
+.asm_489b1
+	push af
+	ld a, [wd479]
+	set 0, a
+	ld [wd479], a
+	ld a, [wd003]
+	set 3, a
+	ld [wd003], a
+	pop af
+	pop bc
+	pop bc
+.asm_489c5
+	push af
+	push bc
+	push de
+	push hl
+	ld a, $1
+	call MenuClickSound
+	pop hl
+	pop de
+	pop bc
+	pop af
+	call ExitMenu
+	hlcoord 11, 10
+	call Function489ea
+	hlcoord 11, 9
+	lb bc, 1, 8
+	call ClearBox
+	pop af
+	ld [hInMenu], a
+	jp Function4840c
+
+Function489ea: ; 489ea (12:49ea)
+	push de
+	ld a, [wd475]
+	and $f
+	call Mobile12_Bin2Dec
+	ld a, [wd476]
+	and $f0
+	swap a
+	inc hl
+	call Mobile12_Bin2Dec
+	ld a, [wd476]
+	and $f
+	inc hl
+	call Mobile12_Bin2Dec
+	inc hl
+	ld de, String_48a38
+	call PlaceString
+	ld a, [wd477]
+	and $f0
+	swap a
+	inc hl
+	call Mobile12_Bin2Dec
+	ld a, [wd477]
+	and $f
+	inc hl
+	call Mobile12_Bin2Dec
+	ld a, [wd478]
+	and $f0
+	swap a
+	inc hl
+	call Mobile12_Bin2Dec
+	ld a, [wd478]
+	and $f
+	inc hl
+	call Mobile12_Bin2Dec
+	pop de
+	ret
+; 48a38 (12:4a38)
+
+String_48a38: ; 48a38
+	db "-@"
+; 48a3a
+
+Function48a3a: ; 48a3a (12:4a3a)
+	ld hl, MenuDataHeader_0x48a9c
+	call LoadMenuDataHeader
+	call Function4873c
+	ld a, $a
+	ld [w2DMenuCursorInitY], a
+	ld a, $b
+	ld [w2DMenuCursorInitX], a
+	ld a, $1
+	ld [wMenuCursorY], a
+	hlcoord 10, 8
+	ld b, $4
+	ld c, $8
+	call Function48cdc
+	hlcoord 12, 10
+	ld de, String_48aa1
+	call PlaceString
+	call StaticMenuJoypad
+	push af
+	call PlayClickSFX
+	call ExitMenu
+	pop af
+	bit 1, a
+	jp nz, Function48a9a
+	ld a, [wMenuCursorY]
+	cp $1
+	jr z, .asm_48a98
+	ld a, [wd003]
+	set 3, a
+	ld [wd003], a
+	ld a, [wd479]
+	res 0, a
+	ld [wd479], a
+	xor a
+	ld bc, $4
+	ld hl, wd475
+	call ByteFill
+	jr Function48a9a
+.asm_48a98
+	and a
+	ret
+
+Function48a9a: ; 48a9a (12:4a9a)
+	scf
+	ret
+; 48a9c (12:4a9c)
+
+MenuDataHeader_0x48a9c: ; 0x48a9c
+	db $40 ; flags
+	db 08, 10 ; start coords
+	db 13, 19 ; end coord
+
+String_48aa1: ; 48aa1
+	db   "Tell Now"
+	next "Tell Later@"
+; 48ab5
+
+
+Function48ab5: ; 48ab5 (12:4ab5)
+	ld a, [hJoyPressed]
+	and A_BUTTON
+	jp nz, Function48c0f
+	ld a, [hJoyPressed]
+	and B_BUTTON
+	jp nz, Function48c0d
+	ld a, d
+	and a
+	jr z, .asm_48adf
+	cp $1
+	jr z, .asm_48ae7
+	cp $2
+	jr z, .asm_48af1
+	cp $3
+	jr z, .asm_48af9
+	cp $4
+	jr z, .asm_48b03
+	cp $5
+	jr z, .asm_48b0b
+	cp $6
+	jr .asm_48b15
+.asm_48adf
+	ld hl, wd475
+	ld a, [hl]
+	and $f
+	jr .asm_48b1d
+.asm_48ae7
+	ld hl, wd476
+	ld a, [hl]
+	swap a
+	or $f0
+	jr .asm_48b1d
+.asm_48af1
+	ld hl, wd476
+	ld a, [hl]
+	and $f
+	jr .asm_48b1d
+.asm_48af9
+	ld hl, wd477
+	ld a, [hl]
+	swap a
+	or $f0
+	jr .asm_48b1d
+.asm_48b03
+	ld hl, wd477
+	ld a, [hl]
+	and $f
+	jr .asm_48b1d
+.asm_48b0b
+	ld hl, wd478
+	ld a, [hl]
+	swap a
+	or $f0
+	jr .asm_48b1d
+.asm_48b15
+	ld hl, wd478
+	ld a, [hl]
+	and $f
+	jr .asm_48b1d
+.asm_48b1d
+	push hl
+	push af
+	ld e, $0
+	hlcoord 11, 10
+	ld a, d
+.asm_48b25
+	and a
+	jr z, .asm_48b2c
+	inc e
+	dec a
+	jr .asm_48b25
+.asm_48b2c
+	ld hl, hJoyLast
+	ld a, [hl]
+	and D_UP
+	jr nz, .asm_48b8d
+	ld a, [hl]
+	and D_DOWN
+	jr nz, .asm_48b55
+	ld a, [hl]
+	and D_LEFT
+	jp nz, Function48bd7
+	ld a, [hl]
+	and D_RIGHT
+	jr nz, .asm_48b9d
+	hlcoord 11, 10
+	call Function489ea
+	ld a, [wd002]
+	bit 7, a
+	jr nz, .asm_48b51
+.asm_48b51
+	pop bc
+	pop bc
+	and a
+	ret
+.asm_48b55
+	pop af
+	ld b, a
+	and $f
+	and a
+	ld a, b
+	jr nz, .asm_48b61
+	and $f0
+	add $a
+.asm_48b61
+	dec a
+.asm_48b62
+	push de
+	push af
+	hlcoord 10, 9
+	ld b, $1
+	ld c, $8
+	call Function48cdc
+	pop af
+	pop de
+	hlcoord 11, 10
+	ld b, a
+	ld a, d
+	cp $3
+	jr c, .asm_48b7a
+	inc hl
+.asm_48b7a
+	ld a, b
+	pop hl
+	bit 7, a
+	jr z, .asm_48b85
+	call Function48c4d
+	jr .asm_48b88
+.asm_48b85
+	call Function48c5a
+.asm_48b88
+	ld a, $f0
+	jp Function48c00
+.asm_48b8d
+	pop af
+	ld b, a
+	and $f
+	cp $9
+	ld a, b
+	jr c, .asm_48b9a
+	and $f0
+	add $ff
+.asm_48b9a
+	inc a
+	jr .asm_48b62
+.asm_48b9d
+	push de
+	hlcoord 10, 9
+	ld b, $1
+	ld c, $8
+	call Function48cdc
+	pop de
+	ld a, d
+	cp $6
+	jr nc, .asm_48baf
+	inc d
+.asm_48baf
+	pop af
+	pop hl
+	ld b, a
+	ld a, d
+	cp $6
+	ld a, b
+	jr z, .asm_48bc4
+	bit 7, a
+	jr nz, .asm_48bc4
+	inc hl
+	ld a, [hl]
+	swap a
+	and $f
+	jr asm_48bc7
+.asm_48bc4
+	ld a, [hl]
+	and $f
+
+asm_48bc7: ; 48bc7 (12:4bc7)
+	hlcoord 11, 10
+	push af
+	ld a, d
+	cp $3
+	pop bc
+	ld a, b
+	jr c, .asm_48bd3
+	inc hl
+.asm_48bd3
+	ld a, $f
+	jr Function48c00
+
+Function48bd7: ; 48bd7 (12:4bd7)
+	push de
+	hlcoord 10, 9
+	ld b, $1
+	ld c, $8
+	call Function48cdc
+	pop de
+	ld a, d
+	and a
+	pop af
+	pop hl
+	ld b, a
+	ld a, d
+	and a
+	ld a, b
+	jr z, .asm_48bf3
+	bit 7, a
+	jr z, .asm_48bf8
+	dec d
+	dec hl
+.asm_48bf3
+	ld a, [hl]
+	and $f
+	jr asm_48bc7
+.asm_48bf8
+	dec d
+	ld a, [hl]
+	swap a
+	and $f
+	jr asm_48bc7
+
+Function48c00: ; 48c00 (12:4c00)
+	push af
+	hlcoord 11, 10
+	call Function489ea
+	ld a, $1
+	and a
+	pop bc
+	ld a, b
+	ret
+
+Function48c0d: ; 48c0d (12:4c0d)
+	xor a
+	and a
+
+Function48c0f: ; 48c0f (12:4c0f)
+	scf
+	ret
+
+Function48c11: ; 48c11 (12:4c11)
+	ld a, [wd002]
+	bit 7, a
+	jr z, .asm_48c20
+	ld a, d
+	cp $3
+	jr c, .asm_48c1e
+	inc hl
+.asm_48c1e
+	ld [hl], $7f
+.asm_48c20
+	ld a, [wd002]
+	swap a
+	and $3
+	inc a
+	cp b
+	jr nz, .asm_48c40
+	ld a, [wd002]
+	bit 7, a
+	jr z, .asm_48c3a
+	res 7, a
+	ld [wd002], a
+	xor a
+	jr .asm_48c40
+.asm_48c3a
+	set 7, a
+	ld [wd002], a
+	xor a
+.asm_48c40
+	swap a
+	ld b, a
+	ld a, [wd002]
+	and $cf
+	or b
+	ld [wd002], a
+	ret
+
+Function48c4d: ; 48c4d (12:4c4d)
+	swap a
+	and $f0
+	push af
+	ld a, [hl]
+	and $f
+	ld [hl], a
+	pop af
+	or [hl]
+	ld [hl], a
+	ret
+
+Function48c5a: ; 48c5a (12:4c5a)
+	push af
+	ld a, [hl]
+	and $f0
+	ld [hl], a
+	pop af
+	or [hl]
+	ld [hl], a
+	ret
+
+Function48c63: ; 48c63
+	ld a, "@"
+	ld [de], a
+	ld a, c
+	cp $30
+	jr nc, .asm_48c8c
+	and a
+	jr z, .asm_48c8c
+	dec c
+	push de
+	ld h, d
+	ld l, e
+	ld a, "@"
+	ld b, 7
+.asm_48c76
+	ld [hli], a
+	dec b
+	jr nz, .asm_48c76
+	ld hl, Prefectures
+	ld a, c
+	call GetNthString
+.asm_48c81
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hl]
+	cp "@"
+	jr nz, .asm_48c81
+	and a
+	pop de
+	ret
+
+.asm_48c8c
+	scf
+	ret
+; 48c8e
+
+Function48c8e: ; 48c8e
+; unreferenced
+	ld hl, $d02a
+	ld d, h
+	ld e, l
+	callba Function48c63
+	hlcoord 10, 7
+	call PlaceString
+	call WaitBGMap
+	ret
+; 48ca3
+
+Function48ca3: ; 48ca3
+	push af
+	push bc
+	push de
+	push hl
+	ld b, 0
+	ld c, 0
+	ld d, 0
+.asm_48cad
+	cp 100
+	jr c, .asm_48cb6
+	sub 100
+	inc b
+	jr .asm_48cad
+
+.asm_48cb6
+	cp 10
+	jr c, .asm_48cbf
+	sub 10
+	inc c
+	jr .asm_48cb6
+
+.asm_48cbf
+	cp 1
+	jr c, .asm_48cc7
+	dec a
+	inc d
+	jr .asm_48cbf
+
+.asm_48cc7
+	ld a, b
+	call Mobile12_Bin2Dec
+	inc hl
+	ld a, c
+	call Mobile12_Bin2Dec
+	inc hl
+	ld a, d
+	call Mobile12_Bin2Dec
+	pop hl
+	pop de
+	pop bc
+	pop af
+	ret
+; 48cda
+
+Function48cda: ; 48cda (12:4cda)
+	ld h, d
+	ld l, e
+
+Function48cdc: ; 48cdc (12:4cdc)
+	push bc
+	push hl
+	call Function48cfd
+	pop hl
+	pop bc
+	ld de, AttrMap - TileMap
+	add hl, de
+	inc b
+	inc b
+	inc c
+	inc c
+	ld a, $0
+.asm_48ced
+	push bc
+	push hl
+.asm_48cef
+	ld [hli], a
+	dec c
+	jr nz, .asm_48cef
+	pop hl
+	ld de, $14
+	add hl, de
+	pop bc
+	dec b
+	jr nz, .asm_48ced
+	ret
+
+Function48cfd: ; 48cfd (12:4cfd)
+	push hl
+	ld a, $4
+	ld [hli], a
+	inc a
+	call Function48d2a
+	inc a
+	ld [hl], a
+	pop hl
+	ld de, $14
+	add hl, de
+.asm_48d0c
+	push hl
+	ld a, $7
+	ld [hli], a
+	ld a, $7f
+	call Function48d2a
+	ld [hl], $8
+	pop hl
+	ld de, $14
+	add hl, de
+	dec b
+	jr nz, .asm_48d0c
+	ld a, $9
+	ld [hli], a
+	ld a, $a
+	call Function48d2a
+	ld [hl], $b
+	ret
+
+Function48d2a: ; 48d2a (12:4d2a)
+	ld d, c
+.asm_48d2b
+	ld [hli], a
+	dec d
+	jr nz, .asm_48d2b
+	ret
+
+Function48d30: ; 48d30 (12:4d30)
+	ld hl, wd475
+	call Function48d4a
+	ld hl, wd477
+	call Function48d4a
+	ret
+
+Function48d3d: ; 48d3d (12:4d3d)
+	ld hl, wd475
+	call Function48d94
+	ld hl, wd477
+	call Function48d94
+	ret
+
+Function48d4a: ; 48d4a (12:4d4a)
+	inc hl
+	ld a, [hl]
+	ld b, a
+	and $f
+	ld c, a
+	srl b
+	srl b
+	srl b
+	srl b
+	push bc
+	ld c, 10
+	ld a, b
+	call SimpleMultiply
+	pop bc
+	add c
+	ld [hld], a
+	xor a
+	ld [hMultiplicand + 0], a
+	ld [hMultiplicand + 1], a
+	ld a, [hl]
+	srl a
+	srl a
+	srl a
+	srl a
+	ld c, 10
+	call SimpleMultiply
+	ld b, a
+	ld a, [hli]
+	and $f
+	add b
+	ld [hMultiplicand + 2], a
+	ld a, 100
+	ld [hMultiplier], a
+	call Multiply
+	ld a, [hProduct + 2]
+	ld b, a
+	ld a, [hProduct + 3]
+	ld c, a
+	ld e, [hl]
+	add e
+	ld c, a
+	ld a, b
+	adc $0
+	ld b, a
+	ld a, c
+	ld [hld], a
+	ld [hl], b
+	ret
+
+Function48d94: ; 48d94 (12:4d94)
+	xor a
+	ld [hDividend + 0], a
+	ld [hDividend + 1], a
+	ld a, [hli]
+	ld [hDividend + 0], a
+	ld a, [hl]
+	ld [hDividend + 1], a
+	ld a, 100
+	ld [hDivisor], a
+	ld b, 2
+	call Divide
+	ld a, [hRemainder]
+	ld c, 10
+	call SimpleDivide
+	sla b
+	sla b
+	sla b
+	sla b
+	or b
+	ld [hld], a
+	ld a, [hQuotient + 2]
+	ld c, 10
+	call SimpleDivide
+	sla b
+	sla b
+	sla b
+	sla b
+	or b
+	ld [hl], a
+	ret
--- /dev/null
+++ b/mobile/mobile_12_2.asm
@@ -1,0 +1,936 @@
+MobileCheckOwnMonAnywhere: ; 4a843
+; Like CheckOwnMonAnywhere, but only check for species.
+; OT/ID don't matter.
+
+	ld a, [PartyCount]
+	and a
+	ret z
+
+	ld d, a
+	ld e, 0
+	ld hl, PartyMon1Species
+	ld bc, PartyMonOT
+.asm_4a851
+	call .CheckMatch
+	ret c
+	push bc
+	ld bc, PARTYMON_STRUCT_LENGTH
+	add hl, bc
+	pop bc
+	call .CopyName
+	dec d
+	jr nz, .asm_4a851
+	ld a, BANK(sBoxCount)
+	call GetSRAMBank
+	ld a, [sBoxCount]
+	and a
+	jr z, .asm_4a888
+	ld d, a
+	ld hl, sBoxMon1Species
+	ld bc, sBoxMonOT
+.asm_4a873
+	call .CheckMatch
+	jr nc, .asm_4a87c
+	call CloseSRAM
+	ret
+
+.asm_4a87c
+	push bc
+	ld bc, BOXMON_STRUCT_LENGTH
+	add hl, bc
+	pop bc
+	call .CopyName
+	dec d
+	jr nz, .asm_4a873
+
+.asm_4a888
+	call CloseSRAM
+	ld c, 0
+.asm_4a88d
+	ld a, [wCurBox]
+	and $f
+	cp c
+	jr z, .asm_4a8d1
+	ld hl, .BoxAddrs
+	ld b, 0
+	add hl, bc
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	call GetSRAMBank
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [hl]
+	and a
+	jr z, .asm_4a8d1
+	push bc
+	push hl
+	ld de, sBoxMons - sBoxCount
+	add hl, de
+	ld d, h
+	ld e, l
+	pop hl
+	push de
+	ld de, sBoxMonOT - sBoxCount
+	add hl, de
+	ld b, h
+	ld c, l
+	pop hl
+	ld d, a
+.asm_4a8ba
+	call .CheckMatch
+	jr nc, .asm_4a8c4
+	pop bc
+	call CloseSRAM
+	ret
+
+.asm_4a8c4
+	push bc
+	ld bc, BOXMON_STRUCT_LENGTH
+	add hl, bc
+	pop bc
+	call .CopyName
+	dec d
+	jr nz, .asm_4a8ba
+	pop bc
+
+.asm_4a8d1
+	inc c
+	ld a, c
+	cp NUM_BOXES
+	jr c, .asm_4a88d
+	call CloseSRAM
+	and a
+	ret
+; 4a8dc
+
+.CheckMatch: ; 4a8dc
+	push bc
+	push hl
+	push de
+	ld d, b
+	ld e, c
+	ld a, [ScriptVar]
+	ld b, [hl]
+	cp b
+	jr nz, .no_match
+	jr .match
+
+.no_match
+	pop de
+	pop hl
+	pop bc
+	and a
+	ret
+
+.match
+	pop de
+	pop hl
+	pop bc
+	scf
+	ret
+; 4a8f4
+
+.BoxAddrs: ; 4a8f4
+	dba sBox1
+	dba sBox2
+	dba sBox3
+	dba sBox4
+	dba sBox5
+	dba sBox6
+	dba sBox7
+	dba sBox8
+	dba sBox9
+	dba sBox10
+	dba sBox11
+	dba sBox12
+	dba sBox13
+	dba sBox14
+; 4a91e
+
+.CopyName: ; 4a91e
+	push hl
+	ld hl, NAME_LENGTH
+	add hl, bc
+	ld b, h
+	ld c, l
+	pop hl
+	ret
+; 4a927
+
+FindItemInPCOrBag: ; 4a927
+	ld a, [ScriptVar]
+	ld [CurItem], a
+	ld hl, PCItems
+	call CheckItem
+	jr c, .found
+
+	ld a, [ScriptVar]
+	ld [CurItem], a
+	ld hl, NumItems
+	call CheckItem
+	jr c, .found
+
+	xor a
+	ld [ScriptVar], a
+	ret
+
+.found
+	ld a, 1
+	ld [ScriptVar], a
+	ret
+; 4a94e
+
+Function4a94e: ; 4a94e
+	call FadeToMenu
+	ld a, -1
+	ld hl, wd002
+	ld bc, 3
+	call ByteFill
+	xor a
+	ld [wd018], a
+	ld [wd019], a
+	ld b, SCGB_PACKPALS
+	call GetSGBLayout
+	call SetPalettes
+	call Function4aa22
+	jr c, .asm_4a985
+	jr z, .asm_4a9a1
+	jr .asm_4a97b
+
+.asm_4a974
+	call Function4aa25
+	jr c, .asm_4a985
+	jr z, .asm_4a9a1
+
+.asm_4a97b
+	call Function4ac58
+	ld hl, wd019
+	res 1, [hl]
+	jr .asm_4a974
+
+.asm_4a985
+	ld a, [wd018]
+	and a
+	jr nz, .asm_4a990
+	call Function4aba8
+	jr c, .asm_4a974
+
+.asm_4a990
+	call CloseSubmenu
+	ld hl, wd002
+	ld a, -1
+	ld bc, 3
+	call ByteFill
+	scf
+	jr .asm_4a9af
+
+.asm_4a9a1
+	call Function4a9c3
+	jr c, .asm_4a9b0
+	call Function4a9d7
+	jr c, .asm_4a974
+	call CloseSubmenu
+	and a
+
+.asm_4a9af
+	ret
+
+.asm_4a9b0
+	ld de, SFX_WRONG
+	call PlaySFX
+	ld hl, UnknownText_0x4a9be
+	call PrintText
+	jr .asm_4a974
+; 4a9be
+
+UnknownText_0x4a9be: ; 0x4a9be
+	; Pick three #MON for battle.
+	text_jump UnknownText_0x1c51d7
+	db "@"
+; 0x4a9c3
+
+Function4a9c3: ; 4a9c3
+	ld hl, wd002
+	ld a, $ff
+	cp [hl]
+	jr z, .asm_4a9d5
+	inc hl
+	cp [hl]
+	jr z, .asm_4a9d5
+	inc hl
+	cp [hl]
+	jr z, .asm_4a9d5
+	and a
+	ret
+
+.asm_4a9d5
+	scf
+	ret
+; 4a9d7
+
+Function4a9d7: ; 4a9d7
+	ld a, [wd002]
+	ld hl, PartyMonNicknames
+	call GetNick
+	ld h, d
+	ld l, e
+	ld de, EndFlypoint
+	ld bc, 6
+	call CopyBytes
+	ld a, [wd003]
+	ld hl, PartyMonNicknames
+	call GetNick
+	ld h, d
+	ld l, e
+	ld de, wd00c
+	ld bc, 6
+	call CopyBytes
+	ld a, [wd004]
+	ld hl, PartyMonNicknames
+	call GetNick
+	ld h, d
+	ld l, e
+	ld de, wd012
+	ld bc, 6
+	call CopyBytes
+	ld hl, UnknownText_0x4aa1d
+	call PrintText
+	call YesNoBox
+	ret
+; 4aa1d
+
+UnknownText_0x4aa1d: ; 0x4aa1d
+	; , @  and @ . Use these three?
+	text_jump UnknownText_0x1c51f4
+	db "@"
+; 0x4aa22
+
+Function4aa22: ; 4aa22
+	call ClearBGPalettes
+
+Function4aa25: ; 4aa25
+	callba LoadPartyMenuGFX
+	callba InitPartyMenuWithCancel
+	call Function4aad3
+
+Function4aa34: ; 4aa34
+	ld a, PARTYMENUACTION_MOBILE
+	ld [PartyMenuActionText], a
+	callba WritePartyMenuTilemap
+	xor a
+	ld [PartyMenuActionText], a
+	callba PrintPartyMenuText
+	call Function4aab6
+	call WaitBGMap
+	call SetPalettes
+	call DelayFrame
+	call Function4ab1a
+	jr z, .asm_4aa66
+	push af
+	call Function4aafb
+	jr c, .asm_4aa67
+	call Function4ab06
+	jr c, .asm_4aa67
+	pop af
+
+.asm_4aa66
+	ret
+
+.asm_4aa67
+	ld hl, wd019
+	set 1, [hl]
+	pop af
+	ret
+; 4aa6e
+
+Function4aa6e: ; 4aa6e
+	pop af
+	ld de, SFX_WRONG
+	call PlaySFX
+	call WaitSFX
+	jr Function4aa34
+; 4aa7a
+
+Function4aa7a: ; 4aa7a
+	ld hl, wd002
+	ld d, $3
+.loop
+	ld e, PARTY_LENGTH
+	ld a, [hli]
+	push de
+	push hl
+	cp -1
+	jr z, .done
+	ld hl, wSpriteAnimationStructs
+	inc a
+	ld d, a
+.inner_loop
+	ld a, [hl]
+	and a
+	jr z, .next
+	cp d
+	jr z, .same_as_d
+	jr .next
+
+	ld a, $3
+	jr .proceed
+
+.same_as_d
+	ld a, $2
+
+.proceed
+	push hl
+	ld c, l
+	ld b, h
+	ld hl, $2
+	add hl, bc
+	ld [hl], a
+	pop hl
+
+.next
+	ld bc, $10
+	add hl, bc
+	dec e
+	jr nz, .inner_loop
+	pop hl
+	pop de
+	dec d
+	jr nz, .loop
+	jr .finished
+
+.done
+	pop hl
+	pop de
+
+.finished
+	ret
+; 4aab6
+
+Function4aab6: ; 4aab6
+	ld hl, wd002
+	ld d, $3
+.loop
+	ld a, [hli]
+	cp -1
+	jr z, .done
+	push de
+	push hl
+	hlcoord 0, 1
+	ld bc, $28
+	call AddNTimes
+	ld [hl], $ec
+	pop hl
+	pop de
+	dec d
+	jr nz, .loop
+
+.done
+	ret
+; 4aad3
+
+Function4aad3: ; 4aad3
+	ld hl, PartyCount
+	ld a, [hli]
+	and a
+	ret z ; Nothing in your party
+
+	ld c, a
+	xor a
+	ld [hObjectStructIndexBuffer], a
+.loop
+	push bc
+	push hl
+	ld e, 0
+	callba LoadMenuMonIcon
+	ld a, [hObjectStructIndexBuffer]
+	inc a
+	ld [hObjectStructIndexBuffer], a
+	pop hl
+	pop bc
+	dec c
+	jr nz, .loop
+
+	call Function4aa7a
+	callba PlaySpriteAnimations
+	ret
+; 4aafb
+
+Function4aafb: ; 4aafb
+	ld a, [CurPartySpecies]
+	cp EGG
+	jr z, .egg
+	and a
+	ret
+
+.egg
+	scf
+	ret
+; 4ab06
+
+Function4ab06: ; 4ab06
+	ld a, [CurPartyMon]
+	ld bc, PARTYMON_STRUCT_LENGTH
+	ld hl, PartyMon1HP
+	call AddNTimes
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	or b
+	jr nz, .NotFainted
+	scf
+
+.NotFainted:
+	ret
+; 4ab1a
+
+Function4ab1a: ; 4ab1a
+.asm_4ab1a
+	ld a, $fb
+	ld [wMenuJoypadFilter], a
+	ld a, $26
+	ld [w2DMenuCursorOffsets], a
+	ld a, $2
+	ld [w2DMenuNumCols], a
+	call Function4adf7
+	call StaticMenuJoypad
+	call Function4abc3
+	jr c, .asm_4ab1a
+	push af
+	call Function4ab99
+	call nc, PlaceHollowCursor
+	pop af
+	bit 1, a
+	jr nz, .asm_4ab6d
+	ld a, [PartyCount]
+	inc a
+	ld b, a
+	ld a, [wMenuCursorY]
+	ld [wPartyMenuCursor], a
+	cp b
+	jr z, .asm_4ab7e
+	ld a, [wMenuCursorY]
+	dec a
+	ld [CurPartyMon], a
+	ld c, a
+	ld b, $0
+	ld hl, PartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [CurPartySpecies], a
+	ld de, SFX_READ_TEXT_2
+	call PlaySFX
+	call WaitSFX
+	ld a, $1
+	and a
+	ret
+
+.asm_4ab6d
+	ld a, [wMenuCursorY]
+	ld [wPartyMenuCursor], a
+.asm_4ab73
+	ld de, SFX_READ_TEXT_2
+	call PlaySFX
+	call WaitSFX
+	scf
+	ret
+
+.asm_4ab7e
+	ld a, $1
+	ld [wd018], a
+	ld a, [wMenuCursorX]
+	cp $2
+	jr z, .asm_4ab73
+	ld de, SFX_READ_TEXT_2
+	call PlaySFX
+	call WaitSFX
+	xor a
+	ld [wd018], a
+	and a
+	ret
+; 4ab99
+
+Function4ab99: ; 4ab99
+	bit 1, a
+	jr z, .asm_4aba6
+	ld a, [wd002]
+	cp $ff
+	jr z, .asm_4aba6
+	scf
+	ret
+
+.asm_4aba6
+	and a
+	ret
+; 4aba8
+
+Function4aba8: ; 4aba8
+	ld hl, wd004
+	ld a, [hl]
+	cp $ff
+	jr nz, .asm_4abbe
+	dec hl
+	ld a, [hl]
+	cp $ff
+	jr nz, .asm_4abbe
+	dec hl
+	ld a, [hl]
+	cp $ff
+	jr nz, .asm_4abbe
+	and a
+	ret
+
+.asm_4abbe
+	ld a, $ff
+	ld [hl], a
+	scf
+	ret
+; 4abc3
+
+Function4abc3: ; 4abc3
+	bit 3, a
+	jr z, .asm_4abd5
+	ld a, [PartyCount]
+	inc a
+	ld [wMenuCursorY], a
+	ld a, $1
+	ld [wMenuCursorX], a
+	jr .asm_4ac29
+
+.asm_4abd5
+	bit 6, a
+	jr z, .asm_4abeb
+	ld a, [wMenuCursorY]
+	ld [wMenuCursorY], a
+	and a
+	jr nz, .asm_4ac29
+	ld a, [PartyCount]
+	inc a
+	ld [wMenuCursorY], a
+	jr .asm_4ac29
+
+.asm_4abeb
+	bit 7, a
+	jr z, .asm_4ac08
+	ld a, [wMenuCursorY]
+	ld [wMenuCursorY], a
+	ld a, [PartyCount]
+	inc a
+	inc a
+	ld b, a
+	ld a, [wMenuCursorY]
+	cp b
+	jr nz, .asm_4ac29
+	ld a, $1
+	ld [wMenuCursorY], a
+	jr .asm_4ac29
+
+.asm_4ac08
+	bit 4, a
+	jr nz, .asm_4ac10
+	bit 5, a
+	jr z, .asm_4ac56
+
+.asm_4ac10
+	ld a, [wMenuCursorY]
+	ld b, a
+	ld a, [PartyCount]
+	inc a
+	cp b
+	jr nz, .asm_4ac29
+	ld a, [wMenuCursorX]
+	cp $1
+	jr z, .asm_4ac26
+	ld a, $1
+	jr .asm_4ac29
+
+.asm_4ac26
+	ld [wMenuCursorX], a
+
+.asm_4ac29
+	hlcoord 0, 1
+	lb bc, 13, 1
+	call ClearBox
+	call Function4aab6
+	ld a, [PartyCount]
+	hlcoord 6, 1
+.asm_4ac3b
+	ld bc, $28
+	add hl, bc
+	dec a
+	jr nz, .asm_4ac3b
+	ld [hl], $7f
+	ld a, [wMenuCursorY]
+	ld b, a
+	ld a, [PartyCount]
+	inc a
+	cp b
+	jr z, .asm_4ac54
+	ld a, $1
+	ld [wMenuCursorX], a
+
+.asm_4ac54
+	scf
+	ret
+
+.asm_4ac56
+	and a
+	ret
+; 4ac58
+
+Function4ac58: ; 4ac58
+	lb bc, 2, 18
+	hlcoord 1, 15
+	call ClearBox
+	callba FreezeMonIcons
+	ld hl, MenuDataHeader_0x4aca2
+	call LoadMenuDataHeader
+	ld hl, wd019
+	bit 1, [hl]
+	jr z, .asm_4ac89
+	hlcoord 11, 13
+	ld b, $3
+	ld c, $7
+	call TextBox
+	hlcoord 13, 14
+	ld de, String_4ada7
+	call PlaceString
+	jr .asm_4ac96
+
+.asm_4ac89
+	hlcoord 11, 9
+	ld b, $7
+	ld c, $7
+	call TextBox
+	call Function4ad68
+
+.asm_4ac96
+	ld a, $1
+	ld [hBGMapMode], a
+	call Function4acaa
+	call ExitMenu
+	and a
+	ret
+; 4aca2
+
+MenuDataHeader_0x4aca2: ; 0x4aca2
+	db $40 ; flags
+	db 09, 11 ; start coords
+	db 17, 19 ; end coords
+	dw NULL
+	db 1 ; default option
+; 0x4acaa
+
+Function4acaa: ; 4acaa
+.asm_4acaa
+	ld a, $a0
+	ld [wMenuData2Flags], a
+	ld a, [wd019]
+	bit 1, a
+	jr z, .asm_4acc2
+	ld a, $2
+	ld [wMenuData2Items], a
+	ld a, $c
+	ld [wMenuBorderTopCoord], a
+	jr .asm_4accc
+
+.asm_4acc2
+	ld a, $4
+	ld [wMenuData2Items], a
+	ld a, $8
+	ld [wMenuBorderTopCoord], a
+
+.asm_4accc
+	ld a, $b
+	ld [wMenuBorderLeftCoord], a
+	ld a, $1
+	ld [wMenuCursorBuffer], a
+	call InitVerticalMenuCursor
+	ld hl, w2DMenuFlags1
+	set 6, [hl]
+	call StaticMenuJoypad
+	ld de, SFX_READ_TEXT_2
+	call PlaySFX
+	ld a, [hJoyPressed]
+	bit 0, a
+	jr nz, .asm_4acf4
+	bit 1, a
+	jr nz, .asm_4acf3
+	jr .asm_4acaa
+
+.asm_4acf3
+	ret
+
+.asm_4acf4
+	ld a, [wd019]
+	bit 1, a
+	jr nz, .asm_4ad0e
+	ld a, [wMenuCursorY]
+	cp $1
+	jr z, Function4ad17
+	cp $2
+	jp z, Function4ad56
+	cp $3
+	jp z, Function4ad60
+	jr .asm_4acf3
+
+.asm_4ad0e
+	ld a, [wMenuCursorY]
+	cp $1
+	jr z, Function4ad56
+	jr .asm_4acf3
+
+Function4ad17: ; 4ad17
+	call Function4adb2
+	jr z, .asm_4ad4a
+	ld hl, wd002
+	ld a, $ff
+	cp [hl]
+	jr z, .asm_4ad39
+	inc hl
+	cp [hl]
+	jr z, .asm_4ad39
+	inc hl
+	cp [hl]
+	jr z, .asm_4ad39
+	ld de, SFX_WRONG
+	call WaitPlaySFX
+	ld hl, UnknownText_0x4ad51
+	call PrintText
+	ret
+
+.asm_4ad39
+	ld a, [CurPartyMon]
+	ld [hl], a
+	call Function4a9c3
+	ret c
+	ld a, [wd019]
+	set 0, a
+	ld [wd019], a
+	ret
+
+.asm_4ad4a
+	ld a, $ff
+	ld [hl], a
+	call Function4adc2
+	ret
+
+UnknownText_0x4ad51: ; 0x4ad51
+	; Only three #MON may enter.
+	text_jump UnknownText_0x1c521c
+	db "@"
+; 0x4ad56
+
+Function4ad56: ; 4ad56
+	callba OpenPartyStats
+	call WaitBGMap2
+	ret
+; 4ad60
+
+Function4ad60: ; 4ad60
+	callba ManagePokemonMoves
+	ret
+; 4ad67
+
+Function4ad67: ; 4ad67
+	ret
+; 4ad68
+
+Function4ad68: ; 4ad68
+	hlcoord 13, 12
+	ld de, String_4ad88
+	call PlaceString
+	call Function4adb2
+	jr c, .asm_4ad7e
+	hlcoord 13, 10
+	ld de, String_4ada0
+	jr .asm_4ad84
+
+.asm_4ad7e
+	hlcoord 13, 10
+	ld de, String_4ad9a
+
+.asm_4ad84
+	call PlaceString
+	ret
+; 4ad88
+
+String_4ad88: ; 4ad88
+	db   "つよさをみる"
+	next "つかえるわざ"
+	next "もどる@"
+; 4ad9a
+
+String_4ad9a: ; 4ad9a
+	db   "さんかする@"
+; 4ada0
+
+String_4ada0: ; 4ada0
+	db   "さんかしない@"
+; 4ada7
+
+String_4ada7: ; 4ada7
+	db   "つよさをみる"
+	next "もどる@" ; BACK
+; 4adb2
+
+Function4adb2: ; 4adb2
+	ld hl, wd002
+	ld a, [CurPartyMon]
+	cp [hl]
+	ret z
+	inc hl
+	cp [hl]
+	ret z
+	inc hl
+	cp [hl]
+	ret z
+	scf
+	ret
+; 4adc2
+
+Function4adc2: ; 4adc2
+	ld a, [wd002]
+	cp $ff
+	jr nz, .skip
+	ld a, [wd003]
+	cp $ff
+	jr nz, .skip2
+	ld a, [wd004]
+	ld [wd002], a
+	ld a, $ff
+	ld [wd004], a
+	jr .skip
+
+.skip2
+	ld [wd002], a
+	ld a, $ff
+	ld [wd003], a
+
+.skip
+	ld a, [wd003]
+	cp $ff
+	ret nz
+	ld b, a
+	ld a, [wd004]
+	ld [wd003], a
+	ld a, b
+	ld [wd004], a
+	ret
+; 4adf7
+
+Function4adf7: ; 4adf7
+	ld a, [wd019]
+	bit 0, a
+	ret z
+	ld a, [PartyCount]
+	inc a
+	ld [wMenuCursorY], a
+	ld a, $1
+	ld [wMenuCursorX], a
+	ld a, [wd019]
+	res 0, a
+	ld [wd019], a
+	ret
+; 4ae12
--- /dev/null
+++ b/mobile/mobile_22.asm
@@ -1,0 +1,4448 @@
+
+String_8911c: ; 8911c
+	db   "でんわばんごうが ただしく"   ; Phone number is not
+	next "はいって いません!@"         ; entered correctly!
+; 89135
+
+String_89135: ; 89135
+	db   "データが かわって いますが"  ; The data has changed.
+	next "かきかえないで やめますか?@" ; Quit anyway?
+; 89153
+
+String_89153: ; 89153
+	db   "メッセージは ありません@"    ; No message
+; 89160
+
+OpenSRAMBank4: ; 89160
+	push af
+	ld a, $4
+	call GetSRAMBank
+	pop af
+	ret
+; 89168
+
+
+Function89168: ; 89168 (22:5168)
+	ld hl, GameTimerPause
+	set 7, [hl]
+	ret
+
+Function8916e: ; 8916e (22:516e)
+	ld hl, GameTimerPause
+	res 7, [hl]
+	ret
+
+Function89174: ; 89174 (22:5174)
+	ld hl, GameTimerPause
+	bit 7, [hl]
+	ret
+
+Function8917a: ; 8917a (22:517a)
+	ld hl, wd002
+	ld bc, $32
+	xor a
+	call ByteFill
+	ret
+
+Function89185: ; 89185 (22:5185)
+; strcmp(hl, de, c)
+; Compares c bytes starting at de and hl and incrementing together until a mismatch is found.
+; Preserves hl and de.
+	push de
+	push hl
+.loop
+	ld a, [de]
+	inc de
+	cp [hl]
+	jr nz, .done
+	inc hl
+	dec c
+	jr nz, .loop
+.done
+	pop hl
+	pop de
+	ret
+
+Function89193: ; 89193
+; copy(hl, de, 4)
+; Copies c bytes from hl to de.
+; Preserves hl and de.
+	push de
+	push hl
+.loop
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .loop
+	pop hl
+	pop de
+	ret
+; 8919e
+
+
+Function8919e: ; 8919e (22:519e)
+; Searches for the c'th string starting at de.  Returns the pointer in de.
+	ld a, c
+	and a
+	ret z
+.loop
+	ld a, [de]
+	inc de
+	cp "@"
+	jr nz, .loop
+	dec c
+	jr nz, .loop
+	ret
+
+Function891ab: ; 891ab
+	call Mobile22_SetBGMapMode1
+	callba ReloadMapPart
+	call Mobile22_SetBGMapMode0
+	ret
+; 891b8
+
+Function891b8: ; 891b8
+	call Mobile22_SetBGMapMode0
+	hlcoord 0, 0
+	ld a, " "
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	call DelayFrame
+	ret
+; 891ca
+
+
+Function891ca: ; 891ca (22:51ca)
+	push bc
+	call Function891b8
+	call WaitBGMap
+	pop bc
+	ret
+
+Function891d3: ; 891d3 (22:51d3)
+	push bc
+	call Function891ca
+	ld c, $10
+	call DelayFrames
+	pop bc
+	ret
+
+Function891de: ; 891de
+	call Mobile22_SetBGMapMode0
+	call ClearPalettes
+	hlcoord 0, 0, AttrMap
+	ld a, $7
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	hlcoord 0, 0
+	ld a, " "
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	call Function891ab
+	ret
+; 891fe
+
+Function891fe: ; 891fe
+	push bc
+	call Function891de
+	ld c, $10
+	call DelayFrames
+	pop bc
+	ret
+; 89209
+
+Function89209: ; 89209
+	ld a, 1
+	ld [wSpriteUpdatesEnabled], a
+	ret
+; 8920f
+
+Function8920f: ; 8920f
+	ld a, 0
+	ld [wSpriteUpdatesEnabled], a
+	ret
+; 89215
+
+Function89215: ; 89215
+	push hl
+	push bc
+	ld bc, AttrMap - TileMap
+	add hl, bc
+	ld [hl], a
+	pop bc
+	pop hl
+	ret
+; 8921f
+
+
+Function8921f: ; 8921f (22:521f)
+	push de
+	ld de, SCREEN_WIDTH
+	add hl, de
+	inc hl
+	ld a, $7f
+.loop
+	push bc
+	push hl
+.asm_89229
+	ld [hli], a
+	dec c
+	jr nz, .asm_89229
+	pop hl
+	add hl, de
+	pop bc
+	dec b
+	jr nz, .loop
+	pop de
+	ret
+
+Mobile22_ButtonSound: ; 89235 (22:5235)
+	call JoyWaitAorB
+	call PlayClickSFX
+	ret
+
+Mobile22_SetBGMapMode0: ; 8923c
+	xor a
+	ld [hBGMapMode], a
+	ret
+; 89240
+
+Mobile22_SetBGMapMode1: ; 89240
+	ld a, $1
+	ld [hBGMapMode], a
+	ret
+; 89245
+
+
+Function89245: ; 89245 (22:5245)
+	callba TryLoadSaveFile
+	ret c
+	callba _LoadData
+	and a
+	ret
+
+Function89254: ; 89254 (22:5254)
+	ld bc, $d07
+	jr Function89261
+
+Function89259: ; 89259
+	ld bc, $0e07
+	jr Function89261
+
+Function8925e: ; 8925e
+	ld bc, $0e0c
+
+Function89261: ; 89261
+	push af
+	push bc
+	ld hl, MenuDataHeader_0x892a3
+	call CopyMenuDataHeader
+	pop bc
+	ld hl, wMenuBorderTopCoord
+	ld a, c
+	ld [hli], a
+	ld a, b
+	ld [hli], a
+	ld a, c
+	add $4
+	ld [hli], a
+	ld a, b
+	add $5
+	ld [hl], a
+	pop af
+	ld [wMenuCursorBuffer], a
+	call PushWindow
+	call Mobile22_SetBGMapMode0
+	call Function89209
+	call VerticalMenu
+	push af
+	ld c, $a
+	call DelayFrames
+	call CloseWindow
+	call Function8920f
+	pop af
+	jr c, .done
+	ld a, [wMenuCursorY]
+	cp $2
+	jr z, .done
+	and a
+	ret
+
+.done
+	scf
+	ret
+; 892a3
+
+MenuDataHeader_0x892a3: ; 0x892a3
+	db $40 ; flags
+	db 05, 10 ; start coords
+	db 09, 15 ; end coords
+	dw MenuData2_0x892ab
+	db 1 ; default option
+; 0x892ab
+
+MenuData2_0x892ab: ; 0x892ab
+	db $c0 ; flags
+	db 2 ; items
+	db "はい@"
+	db "いいえ@"
+; 0x892b4
+
+Function892b4: ; 892b4 (22:52b4)
+	call Function8931b
+
+Function892b7: ; 892b7
+	ld d, b
+	ld e, c
+	ld hl, 0
+	add hl, bc
+	ld a, "@"
+	ld bc, 6
+	call ByteFill
+	ld b, d
+	ld c, e
+	ld hl, 6
+	add hl, bc
+	ld a, "@"
+	ld bc, 6
+	call ByteFill
+	ld b, d
+	ld c, e
+	ld hl, 12
+	add hl, bc
+	xor a
+	ld [hli], a
+	ld [hl], a
+	ld hl, 14
+	add hl, bc
+	ld [hli], a
+	ld [hl], a
+	ld hl, 16
+	add hl, bc
+	ld [hl], a
+	ld hl, 17
+	add hl, bc
+	ld a, -1
+	ld bc, 8
+	call ByteFill
+	ld b, d
+	ld c, e
+	ld e, 6
+	ld hl, 25
+	add hl, bc
+.loop
+	ld a, -1
+	ld [hli], a
+	ld a, -1
+	ld [hli], a
+	dec e
+	jr nz, .loop
+	ret
+; 89305
+
+
+Function89305: ; 89305 (22:5305)
+	xor a
+	ld [MenuSelection], a
+	ld c, 40
+.loop
+	ld a, [MenuSelection]
+	inc a
+	ld [MenuSelection], a
+	push bc
+	call Function892b4
+	pop bc
+	dec c
+	jr nz, .loop
+	ret
+
+Function8931b: ; 8931b
+	push hl
+	ld hl, $a03b ; 4:a03b
+	ld a, [MenuSelection]
+	dec a
+	ld bc, 37
+	call AddNTimes
+	ld b, h
+	ld c, l
+	pop hl
+	ret
+; 8932d
+
+Function8932d: ; 8932d
+	ld hl, 0
+	add hl, bc
+
+Function89331: ; 89331
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.
+; Sets carry if it does not find a nonspace character.
+; Returns the location of the following character in hl.
+	push bc
+	ld c, 5
+.loop
+	ld a, [hli]
+	cp "@"
+	jr z, .terminator
+	cp " "
+	jr nz, .nonspace
+	dec c
+	jr nz, .loop
+
+.terminator
+	scf
+	jr .done
+
+.nonspace
+	and a
+
+.done
+	pop bc
+	ret
+; 89346
+
+
+Function89346: ; 89346 (22:5346)
+	ld h, b
+	ld l, c
+	jr _incave
+
+Function8934a: ; 8934a
+	ld hl, 6
+	add hl, bc
+_incave:
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.  Sets carry if it does not find a nonspace character.  Returns the location of the following character in hl.
+	push bc
+	ld c, 5
+.loop
+	ld a, [hli]
+	cp "@"
+	jr z, .terminator
+	cp " "
+	jr nz, .nonspace
+	dec c
+	jr nz, .loop
+
+.terminator
+	scf
+	jr .done
+
+.nonspace
+	and a
+
+.done
+	pop bc
+	ret
+; 89363
+
+Function89363: ; 89363
+; Scans six byte pairs starting at bc to find $ff.  Sets carry if it does not find a $ff.  Returns the location of the byte after the first $ff found in hl.
+	ld h, b
+	ld l, c
+	jr ._incave
+
+	ld hl, 25
+	add hl, bc
+
+._incave
+	push de
+	ld e, 6
+.loop
+	ld a, [hli]
+	cp -1
+	jr nz, .ok
+	ld a, [hli]
+	cp -1
+	jr nz, .ok
+	dec e
+	jr nz, .loop
+	scf
+	jr .done
+
+.ok
+	and a
+
+.done
+	pop de
+	ret
+; 89381
+
+Function89381: ; 89381
+	push bc
+	push de
+	call Function89b45
+	jr c, .ok
+	push hl
+	ld a, -1
+	ld bc, 8
+	call ByteFill
+	pop hl
+
+.ok
+	pop de
+	ld c, 8
+	call Function89193
+	pop bc
+	ret
+; 8939a
+
+Function8939a: ; 8939a
+	push bc
+	ld hl, 0
+	add hl, bc
+	ld de, wd002
+	ld c, 6
+	call Function89193
+	pop bc
+	ld hl, 17
+	add hl, bc
+	ld de, wd008
+	call Function89381
+	ret
+; 893b3
+
+
+Function893b3: ; 893b3 (22:53b3)
+	call DisableLCD
+	call ClearSprites
+	call LoadStandardFont
+	call LoadFontsExtra
+	call Function893ef
+	call Function8942b
+	call Function89455
+	call EnableLCD
+	ret
+
+Function893cc: ; 893cc
+	call DisableLCD
+	call ClearSprites
+	call LoadStandardFont
+	call LoadFontsExtra
+	call Function893ef
+	call Function89464
+	call EnableLCD
+	ret
+; 893e2
+
+
+Function893e2: ; 893e2 (22:53e2)
+	call Function89b1e
+	call Function893b3
+	call Function8a5b6
+	call Function8949c
+	ret
+
+Function893ef: ; 893ef
+	ld de, VTiles0
+	ld hl, GFX_8940b
+	ld bc, $20
+	ld a, BANK(GFX_8940b)
+	call FarCopyBytes
+	ret
+; 893fe
+
+Function893fe: ; 893fe
+	call DisableLCD
+	call Function893ef
+	call EnableLCD
+	call DelayFrame
+	ret
+; 8940b
+
+GFX_8940b: ; 8940b
+INCBIN "gfx/unknown/08940b.2bpp"
+; 8942b
+
+Function8942b: ; 8942b (22:542b)
+	ld de, VTiles0 tile $02
+	ld hl, MobileAdapterGFX + $7d0
+	ld bc, $80
+	ld a, BANK(MobileAdapterGFX)
+	call FarCopyBytes
+	ld de, VTiles0 tile $0a
+	ld hl, MobileAdapterGFX + $c60
+	ld bc, $40
+	ld a, BANK(MobileAdapterGFX)
+	call FarCopyBytes
+	ret
+
+Function89448: ; 89448 (22:5448)
+; Clears the Sprites array
+	push af
+	ld hl, Sprites
+	ld d, $10 * 6
+	xor a
+.loop
+	ld [hli], a
+	dec d
+	jr nz, .loop
+	pop af
+	ret
+
+Function89455: ; 89455 (22:5455)
+	ld hl, MobileAdapterGFX + $7d0
+	ld de, VTiles2 tile $0c
+	ld bc, $490
+	ld a, BANK(MobileAdapterGFX)
+	call FarCopyBytes
+	ret
+
+Function89464: ; 89464
+	ld hl, MobileAdapterGFX
+	ld de, VTiles2
+	ld bc, $200
+	ld a, BANK(MobileAdapterGFX)
+	call FarCopyBytes
+	ld hl, MobileAdapterGFX + $660
+	ld de, VTiles2 tile $20
+	ld bc, $170
+	ld a, BANK(MobileAdapterGFX)
+	call FarCopyBytes
+	ret
+; 89481
+
+Function89481: ; 89481
+	ld d, 2
+	call Function8934a
+	ret c
+	ld d, 0
+	ld hl, 16
+	add hl, bc
+	bit 0, [hl]
+	ret z
+	inc d
+	ret
+; 89492
+
+
+Function89492: ; 89492 (22:5492)
+	ld d, 0
+	ld a, [PlayerGender]
+	bit 0, a
+	ret z
+	inc d
+	ret
+
+Function8949c: ; 8949c
+	ld a, [rSVBK]
+	push af
+	ld a, 5
+	ld [rSVBK], a
+	ld hl, Palette_894b3
+	ld de, UnknBGPals + 8 * 7
+	ld bc, 8
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	ret
+; 894b3
+
+Palette_894b3: ; 894b3
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 00, 00, 00
+; 894bb
+
+Function894bb: ; 894bb
+	call Function894dc
+	push bc
+	call Function8956f
+	call Function8949c
+	call Function8a60d
+	pop bc
+	ret
+; 894ca
+
+
+Function894ca: ; 894ca (22:54ca)
+	push bc
+	call Function894dc
+	call Function895c7
+	call Function8949c
+	call Function8a60d
+	call SetPalettes
+	pop bc
+	ret
+
+Function894dc: ; 894dc
+	push bc
+	ld a, [rSVBK]
+	push af
+	ld a, 5
+	ld [rSVBK], a
+
+	ld c, d
+	ld b, 0
+	ld hl, .PalettePointers
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld de, UnknBGPals
+	ld bc, 3 palettes
+	call CopyBytes
+	ld hl, .Pals345
+	ld de, UnknBGPals + 3 palettes
+	ld bc, 3 palettes
+	call CopyBytes
+
+	pop af
+	ld [rSVBK], a
+	pop bc
+	ret
+; 89509
+
+.PalettePointers: ; 89509
+	dw .Pals012a
+	dw .Pals012b
+	dw .Pals012c
+; 8950f
+
+.Pals012a: ; 8950f
+	RGB 31, 31, 31
+	RGB 10, 17, 13
+	RGB 10, 08, 22
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 16, 20, 31
+	RGB 10, 08, 22
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 16, 20, 31
+	RGB 10, 17, 13
+	RGB 00, 00, 00
+
+.Pals012b: ; 89527
+	RGB 31, 31, 31
+	RGB 30, 22, 11
+	RGB 31, 08, 15
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 16, 20, 31
+	RGB 31, 08, 15
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 16, 20, 31
+	RGB 30, 22, 11
+	RGB 00, 00, 00
+
+.Pals012c: ; 8953f
+	RGB 31, 31, 31
+	RGB 15, 20, 26
+	RGB 25, 07, 20
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 16, 20, 31
+	RGB 25, 07, 20
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 16, 20, 31
+	RGB 15, 20, 26
+	RGB 00, 00, 00
+
+.Pals345: ; 89557
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 13, 00
+	RGB 14, 08, 00
+
+	RGB 31, 31, 31
+	RGB 16, 16, 31
+	RGB 00, 00, 31
+	RGB 00, 00, 00
+
+	RGB 19, 31, 11
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+; 8956f
+
+Function8956f: ; 8956f
+	push bc
+	ld hl, 16
+	add hl, bc
+	ld d, h
+	ld e, l
+	ld hl, $000c
+	add hl, bc
+	ld b, h
+	ld c, l
+	callba GetMobileOTTrainerClass
+	ld a, c
+	ld [TrainerClass], a
+	ld a, [rSVBK]
+	push af
+	ld a, 5
+	ld [rSVBK], a
+	ld hl, wd030
+	ld a, -1
+	ld [hli], a
+	ld a, " "
+	ld [hl], a
+	pop af
+	ld [rSVBK], a
+	ld a, [TrainerClass]
+	ld h, 0
+	ld l, a
+	add hl, hl
+	add hl, hl
+	ld de, TrainerPalettes
+	add hl, de
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld de, wd032
+	ld c, 4
+.loop
+	ld a, BANK(TrainerPalettes)
+	call GetFarByte
+	ld [de], a
+	inc de
+	inc hl
+	dec c
+	jr nz, .loop
+	ld hl, wd036
+	xor a
+	ld [hli], a
+	ld [hl], a
+	pop af
+	ld [rSVBK], a
+	pop bc
+	ret
+; 895c7
+
+
+Function895c7: ; 895c7 (22:55c7)
+	ld a, [rSVBK]
+	push af
+	ld a, 5
+	ld [rSVBK], a
+	ld hl, Palette_895de
+	ld de, wd030
+	ld bc, 8
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	ret
+; 895de (22:55de)
+
+Palette_895de: ; 895de
+	RGB 31, 31, 31
+	RGB 07, 07, 06
+	RGB 07, 07, 06
+	RGB 00, 00, 00
+; 895e6
+
+Function895e6: ; 895e6
+	ld a, 7
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	ret
+; 895f2
+
+Function895f2: ; 895f2
+	push bc
+	xor a
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	call Function89605
+	call Function89655
+	pop bc
+	ret
+; 89605
+
+Function89605: ; 89605
+	hlcoord 19, 2, AttrMap
+	ld a, 1
+	ld de, SCREEN_WIDTH
+	ld c, 14
+.loop
+	ld [hl], a
+	dec c
+	jr z, .done
+	add hl, de
+	inc a
+	ld [hl], a
+	dec a
+	add hl, de
+	dec c
+	jr nz, .loop
+
+.done
+	hlcoord 0, 16, AttrMap
+	ld c, 10
+	ld a, 2
+.loop2
+	ld [hli], a
+	dec a
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .loop2
+	hlcoord 1, 11, AttrMap
+	ld a, 4
+	ld bc, 4
+	call ByteFill
+	ld a, 5
+	ld bc, 14
+	call ByteFill
+	ret
+; 8963d
+
+Function8963d: ; 8963d
+	hlcoord 12, 3, AttrMap
+	ld a, 6
+	ld de, SCREEN_WIDTH
+	lb bc, 7, 7
+.loop
+	push hl
+	ld c, 7
+.next
+	ld [hli], a
+	dec c
+	jr nz, .next
+	pop hl
+	add hl, de
+	dec b
+	jr nz, .loop
+	ret
+; 89655
+
+Function89655: ; 89655
+	hlcoord 1, 12, AttrMap
+	ld de, SCREEN_WIDTH
+	ld a, 5
+	ld b, 4
+.loop
+	ld c, 18
+	push hl
+.next
+	ld [hli], a
+	dec c
+	jr nz, .next
+	pop hl
+	add hl, de
+	dec b
+	jr nz, .loop
+	ret
+; 8966c
+
+Function8966c: ; 8966c
+	push bc
+	call Function89688
+	hlcoord 4, 0
+	ld c, 8
+	call Function896f5
+	pop bc
+	ret
+; 8967a
+
+
+Function8967a: ; 8967a (22:567a)
+	push bc
+	call Function89688
+	hlcoord 2, 0
+	ld c, 12
+	call Function896f5
+	pop bc
+	ret
+
+Function89688: ; 89688
+	hlcoord 0, 0
+	ld a, 1
+	ld e, SCREEN_WIDTH
+	call Function896e1
+	ld a, 2
+	ld e, SCREEN_WIDTH
+	call Function896eb
+	ld a, 3
+	ld [hli], a
+	ld a, 4
+	ld e, SCREEN_HEIGHT
+	call Function896e1
+	ld a, 6
+	ld [hli], a
+	push bc
+	ld c, 13
+.loop
+	call Function896cb
+	dec c
+	jr z, .done
+	call Function896d6
+	dec c
+	jr nz, .loop
+
+.done
+	pop bc
+	ld a, 25
+	ld [hli], a
+	ld a, 26
+	ld e, SCREEN_HEIGHT
+	call Function896e1
+	ld a, 28
+	ld [hli], a
+	ld a, 2
+	ld e, SCREEN_WIDTH
+	call Function896eb
+	ret
+; 896cb
+
+Function896cb: ; 896cb
+	ld de, SCREEN_WIDTH - 1
+	ld a, 7
+	ld [hl], a
+	add hl, de
+	ld a, 9
+	ld [hli], a
+	ret
+; 896d6
+
+Function896d6: ; 896d6
+	ld de, SCREEN_WIDTH - 1
+	ld a, 10
+	ld [hl], a
+	add hl, de
+	ld a, 11
+	ld [hli], a
+	ret
+; 896e1
+
+Function896e1: ; 896e1
+.loop
+	ld [hli], a
+	inc a
+	dec e
+	ret z
+	ld [hli], a
+	dec a
+	dec e
+	jr nz, .loop
+	ret
+; 896eb
+
+Function896eb: ; 896eb
+.loop
+	ld [hli], a
+	dec a
+	dec e
+	ret z
+	ld [hli], a
+	inc a
+	dec e
+	jr nz, .loop
+	ret
+; 896f5
+
+Function896f5: ; 896f5
+	call Function8971f
+	call Function89736
+	inc hl
+	inc hl
+	ld b, 2
+
+ClearScreenArea: ; 0x896ff
+; clears an area of the screen
+; INPUT:
+; hl = address of upper left corner of the area
+; b = height
+; c = width
+
+	ld a, " " ; blank tile
+	ld de, 20 ; screen width
+.loop
+	push bc
+	push hl
+.innerLoop
+	ld [hli], a
+	dec c
+	jr nz, .innerLoop
+	pop hl
+	pop bc
+	add hl, de
+	dec b
+	jr nz, .loop
+
+	dec hl
+	inc c
+	inc c
+.asm_89713
+	ld a, $36
+	ld [hli], a
+	dec c
+	ret z
+	ld a, $18
+	ld [hli], a
+	dec c
+	jr nz, .asm_89713 ; 0x8971c $f5
+	ret
+; 0x8971f
+
+Function8971f: ; 8971f
+	ld a, $2c
+	ld [hli], a
+	ld a, $2d
+	ld [hld], a
+	push hl
+	ld de, SCREEN_WIDTH
+	add hl, de
+	ld a, $31
+	ld [hli], a
+	ld a, $32
+	ld [hld], a
+	add hl, de
+	ld a, $35
+	ld [hl], a
+	pop hl
+	ret
+; 89736
+
+Function89736: ; 89736
+	push hl
+	inc hl
+	inc hl
+	ld e, c
+	ld d, $0
+	add hl, de
+	ld a, $2f
+	ld [hli], a
+	ld a, $30
+	ld [hld], a
+	ld de, SCREEN_WIDTH
+	add hl, de
+	ld a, $33
+	ld [hli], a
+	ld a, $34
+	ld [hl], a
+	add hl, de
+	ld a, $1f
+	ld [hl], a
+	pop hl
+	ret
+; 89753
+
+Function89753: ; 89753
+	ld a, $c
+	ld [hl], a
+	xor a
+	call Function89215
+	ret
+; 8975b
+
+Function8975b: ; 8975b
+	ld a, $1d
+	ld [hli], a
+	inc a
+	ld [hli], a
+	ld a, $d
+	ld [hl], a
+	dec hl
+	dec hl
+	ld a, $4
+	ld e, $3
+.asm_89769
+	call Function89215
+	inc hl
+	dec e
+	jr nz, .asm_89769
+	ret
+; 89771
+
+Function89771: ; 89771
+	ld a, $12
+	ld [hl], a
+	ld a, $3
+	call Function89215
+	ret
+; 8977a
+
+Function8977a: ; 8977a
+	ld e, $4
+	ld d, $13
+.asm_8977e
+	ld a, d
+	ld [hl], a
+	ld a, $4
+	call Function89215
+	inc hl
+	inc d
+	dec e
+	jr nz, .asm_8977e
+	ld e, $e
+.asm_8978c
+	ld a, d
+	ld [hl], a
+	xor a
+	call Function89215
+	inc hl
+	dec e
+	jr nz, .asm_8978c
+	ret
+; 89797
+
+Function89797: ; 89797
+	push bc
+	ld a, $e
+	ld [hl], a
+	ld bc, SCREEN_WIDTH
+	add hl, bc
+	ld a, $11
+	ld [hli], a
+	ld a, $10
+	ld c, $8
+.asm_897a6
+	ld [hli], a
+	dec c
+	jr nz, .asm_897a6
+	ld a, $f
+	ld [hl], a
+	pop bc
+	ret
+; 897af
+
+Function897af: ; 897af
+	push bc
+	ld hl, $0010
+	add hl, bc
+	ld d, h
+	ld e, l
+	ld hl, $000c
+	add hl, bc
+	ld b, h
+	ld c, l
+	callba GetMobileOTTrainerClass
+	ld a, c
+	ld [TrainerClass], a
+	xor a
+	ld [CurPartySpecies], a
+	ld de, VTiles2 tile $37
+	callba GetTrainerPic
+	pop bc
+	ret
+; 897d5
+
+Function897d5: ; 897d5
+	push bc
+	call Function8934a
+	jr nc, .asm_897f3
+	hlcoord 12, 3, AttrMap
+	xor a
+	ld de, SCREEN_WIDTH
+	lb bc, 7, 7
+.asm_897e5
+	push hl
+	ld c, $7
+.asm_897e8
+	ld [hli], a
+	dec c
+	jr nz, .asm_897e8
+	pop hl
+	add hl, de
+	dec b
+	jr nz, .asm_897e5
+	pop bc
+	ret
+
+.asm_897f3
+	ld a, $37
+	ld [hGraphicStartTile], a
+	hlcoord 12, 3
+	lb bc, 7, 7
+	predef PlaceGraphic
+	call Function8963d
+	pop bc
+	ret
+; 89807
+
+
+Function89807: ; 89807 (22:5807)
+	ld hl, MobileAdapterGFX + $200
+	ld a, [PlayerGender]
+	bit 0, a
+	jr z, .asm_89814
+	ld hl, MobileAdapterGFX + $200 + $230
+.asm_89814
+	call DisableLCD
+	ld de, VTiles2 tile $37
+	ld bc, $230
+	ld a, BANK(MobileAdapterGFX)
+	call FarCopyBytes
+	call EnableLCD
+	call DelayFrame
+	ret
+
+Function89829: ; 89829 (22:5829)
+	push bc
+	ld bc, $705
+	ld de, $14
+	ld a, $37
+.asm_89832
+	push bc
+	push hl
+.asm_89834
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .asm_89834
+	pop hl
+	add hl, de
+	pop bc
+	dec b
+	jr nz, .asm_89832
+	call Function8963d
+	pop bc
+	ret
+
+Function89844: ; 89844
+	call Function89481
+	call Function894bb
+	call Function897af
+	push bc
+	call WaitBGMap2
+	call SetPalettes
+	pop bc
+	ret
+; 89856
+
+Function89856: ; 89856
+	push bc
+	call Function891b8
+	pop bc
+	call Function895f2
+	call Function8966c
+	call Function899d3
+	call Function898aa
+	call Function898be
+	call Function898dc
+	call Function898f3
+	push bc
+	ld bc, wd008
+	hlcoord 2, 10
+	call Function89975
+	pop bc
+	call Function897d5
+	ret
+; 8987f
+
+
+Function8987f: ; 8987f (22:587f)
+	call Function891b8
+	call Function895f2
+	call Function8967a
+	call Function899d3
+	hlcoord 5, 1
+	call Function8999c
+	hlcoord 13, 3
+	call Function89829
+	call Function899b2
+	hlcoord 5, 5
+	call Function899c9
+	ld bc, wd008
+	hlcoord 2, 10
+	call Function89975
+	ret
+
+Function898aa: ; 898aa
+	ld a, [MenuSelection]
+	and a
+	ret z
+	push bc
+	hlcoord 6, 1
+	ld de, MenuSelection
+	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+	call PrintNum
+	pop bc
+	ret
+; 898be
+
+Function898be: ; 898be
+	push bc
+	ld de, wd002
+	ld hl, wd002
+	call Function89331
+	jr nc, .asm_898cd
+	ld de, String_89116
+
+.asm_898cd
+	hlcoord 9, 1
+	ld a, [MenuSelection]
+	and a
+	jr nz, .asm_898d7
+	dec hl
+
+.asm_898d7
+	call PlaceString
+	pop bc
+	ret
+; 898dc
+
+Function898dc: ; 898dc
+	ld hl, $0006
+	add hl, bc
+	push bc
+	ld d, h
+	ld e, l
+	call Function8934a
+	jr nc, .asm_898eb
+	ld de, String_89116
+
+.asm_898eb
+	hlcoord 6, 4
+	call PlaceString
+	pop bc
+	ret
+; 898f3
+
+Function898f3: ; 898f3
+	push bc
+	ld hl, $000c
+	add hl, bc
+	ld d, h
+	ld e, l
+	call Function8934a
+	jr c, .asm_8990a
+	hlcoord 5, 5
+	lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+	call PrintNum
+	jr .asm_89913
+
+.asm_8990a
+	hlcoord 5, 5
+	ld de, String_89116
+	call PlaceString
+
+.asm_89913
+	pop bc
+	ret
+; 89915
+
+Function89915: ; 89915
+	push bc
+	push hl
+	ld de, Unknown_89942
+	ld c, $8
+.asm_8991c
+	ld a, [de]
+	ld [hl], a
+	ld a, $4
+	call Function89215
+	inc hl
+	inc de
+	dec c
+	jr nz, .asm_8991c
+	pop hl
+	ld b, $4
+	ld c, $2b
+	ld a, $8
+	ld de, Unknown_8994a
+.asm_89932
+	push af
+	ld a, [de]
+	cp [hl]
+	jr nz, .asm_8993b
+	call Function8994e
+	inc de
+
+.asm_8993b
+	inc hl
+	pop af
+	dec a
+	jr nz, .asm_89932
+	pop bc
+	ret
+; 89942
+
+Unknown_89942: ; 89942
+	db $24, $25, $26, " ", $27, $28, $29, $2a
+Unknown_8994a: ; 8994a
+	db $24, $27, $29, $ff
+; 8994e
+
+Function8994e: ; 8994e
+	push hl
+	push de
+	ld de, SCREEN_WIDTH
+	ld a, l
+	sub e
+	ld l, a
+	ld a, h
+	sbc d
+	ld h, a
+	ld a, c
+	ld [hl], a
+	ld a, b
+	call Function89215
+	pop de
+	pop hl
+	ret
+; 89962
+
+Function89962: ; 89962
+	push bc
+	ld c, $4
+	ld b, $20
+.asm_89967
+	ld a, b
+	ld [hl], a
+	ld a, $4
+	call Function89215
+	inc hl
+	inc b
+	dec c
+	jr nz, .asm_89967
+	pop bc
+	ret
+; 89975
+
+Function89975: ; 89975
+	push bc
+	ld e, $8
+.asm_89978
+	ld a, [bc]
+	ld d, a
+	call Function8998b
+	swap d
+	inc hl
+	ld a, d
+	call Function8998b
+	inc bc
+	inc hl
+	dec e
+	jr nz, .asm_89978
+	pop bc
+	ret
+; 8998b
+
+Function8998b: ; 8998b
+	push bc
+	and $f
+	cp $a
+	jr nc, .asm_89997
+	ld c, $f6
+	add c
+	jr .asm_89999
+
+.asm_89997
+	ld a, $7f
+
+.asm_89999
+	ld [hl], a
+	pop bc
+	ret
+; 8999c
+
+
+Function8999c: ; 8999c (22:599c)
+	ld de, PlayerName
+	call PlaceString
+	inc bc
+	ld h, b
+	ld l, c
+	ld de, String_899ac
+	call PlaceString
+	ret
+; 899ac (22:59ac)
+
+String_899ac: ; 899ac
+	db "の めいし@"
+; 899b2
+
+Function899b2: ; 899b2 (22:59b2)
+	ld bc, PlayerName
+	call Function89346
+	jr c, .asm_899bf
+	ld de, PlayerName
+	jr .asm_899c2
+.asm_899bf
+	ld de, String_89116
+.asm_899c2
+	hlcoord 6, 4
+	call PlaceString
+	ret
+
+Function899c9: ; 899c9 (22:59c9)
+	ld de, PlayerID
+	lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+	call PrintNum
+	ret
+
+Function899d3: ; 899d3
+	hlcoord 1, 4
+	call Function89753
+	hlcoord 2, 5
+	call Function8975b
+	hlcoord 1, 9
+	call Function89771
+	hlcoord 1, 11
+	call Function8977a
+	hlcoord 1, 5
+	call Function89797
+	hlcoord 2, 4
+	call Function89962
+	hlcoord 2, 9
+	call Function89915
+	ret
+; 899fe
+
+Function899fe: ; 899fe
+	push bc
+	push hl
+	ld hl, $0019
+	add hl, bc
+	ld b, h
+	ld c, l
+	pop hl
+	call Function89a0c
+	pop bc
+	ret
+; 89a0c
+
+Function89a0c: ; 89a0c
+	push hl
+	call Function89363
+	pop hl
+	jr c, .asm_89a1c
+	ld d, h
+	ld e, l
+	callba Function11c08f
+	ret
+
+.asm_89a1c
+	ld de, String_89153
+	call PlaceString
+	ret
+; 89a23
+
+
+Function89a23: ; 89a23 (22:5a23)
+	hlcoord 0, 11
+	ld b, $4
+	ld c, $12
+	call Function8921f
+	ret
+
+Function89a2e: ; 89a2e (22:5a2e)
+	hlcoord 11, 12
+	ld b, $2
+	ld c, $6
+	call TextBox
+	hlcoord 13, 13
+	ld de, String_89a4e
+	call PlaceString
+	hlcoord 13, 14
+	ld de, String_89a53
+	call PlaceString
+	call Function89655
+	ret
+; 89a4e (22:5a4e)
+
+String_89a4e: ; 89a4e
+	db "けってい@"
+; 89a53
+
+String_89a53: ; 89a53
+	db "やめる@"
+; 89a57
+
+Function89a57: ; 89a57
+	call JoyTextDelay_ForcehJoyDown ; joypad
+	bit D_UP_F, c
+	jr nz, .d_up
+	bit D_DOWN_F, c
+	jr nz, .d_down
+	bit A_BUTTON_F, c
+	jr nz, .a_b_button
+	bit B_BUTTON_F, c
+	jr nz, .a_b_button
+	bit START_F, c
+	jr nz, .start_button
+	scf
+	ret
+
+.a_b_button
+	ld a, $1
+	and a
+	ret
+
+.start_button
+	ld a, $2
+	and a
+	ret
+
+.d_up
+	call .MoveCursorUp
+	call nc, .PlayPocketSwitchSFX
+	ld a, $0
+	ret
+
+.d_down
+	call .MoveCursorDown
+	call nc, .PlayPocketSwitchSFX
+	ld a, $0
+	ret
+; 89a8a
+
+.PlayPocketSwitchSFX: ; 89a8a
+	push af
+	ld de, SFX_SWITCH_POCKETS
+	call PlaySFX
+	pop af
+	ret
+; 89a93
+
+.MoveCursorDown: ; 89a93
+	ld d, 40
+	ld e,  1
+	call .ApplyCursorMovement
+	ret
+; 89a9b
+
+.MoveCursorUp: ; 89a9b
+	ld d,  1
+	ld e, -1
+	call .ApplyCursorMovement
+	ret
+; 89aa3
+
+.ApplyCursorMovement: ; 89aa3
+	ld a, [MenuSelection]
+	ld c, a
+	push bc
+.loop
+	ld a, [MenuSelection]
+	cp d
+	jr z, .equal_to_d
+	add e
+	jr nz, .not_zero
+	inc a
+
+.not_zero
+	ld [MenuSelection], a
+	call .Function89ac7 ; BCD conversion of data in SRAM?
+	jr nc, .loop
+	call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5
+	pop bc
+	and a
+	ret
+
+.equal_to_d
+	pop bc
+	ld a, c
+	ld [MenuSelection], a
+	scf
+	ret
+; 89ac7
+
+.Function89ac7: ; 89ac7
+	call OpenSRAMBank4
+	call Function8931b
+	call .Function89ad4
+	call CloseSRAM
+	ret
+; 89ad4
+
+.Function89ad4: ; 89ad4
+	push de
+	call Function8932d ; find a non-space character within 5 bytes of bc
+	jr c, .no_nonspace_character
+	ld hl, 17
+	add hl, bc
+	call Function89b45
+	jr c, .finish_decode
+
+.no_nonspace_character
+	and a
+
+.finish_decode
+	pop de
+	ret
+; 89ae6
+
+.Function89ae6: ; 89ae6
+	ld hl, wd031
+	xor a
+	ld [hl], a
+	ld a, [MenuSelection]
+.loop2
+	cp 6
+	jr c, .load_and_ret
+	sub 5
+	ld c, a
+	ld a, [hl]
+	add 5
+	ld [hl], a
+	ld a, c
+	jr .loop2
+
+.load_and_ret
+	ld [wd030], a
+	ret
+; 89b00
+
+
+Function89b00: ; 89b00 (22:5b00)
+	callba MG_Mobile_Layout_LoadPals
+	ret
+; 89b07 (22:5b07)
+
+Function89b07: ; 89b07
+	call Mobile22_SetBGMapMode0
+	call DelayFrame
+	callba Function4a3a7
+	ret
+; 89b14
+
+Function89b14: ; 89b14
+	call ClearBGPalettes
+	call Function89b07
+	call Function89b00
+	ret
+; 89b1e
+
+Function89b1e: ; 89b1e (22:5b1e)
+	callba Function4a485
+	call Function89b00
+	ret
+
+Function89b28: ; 89b28 (22:5b28)
+	call Function891de
+	call ClearBGPalettes
+	call Function893e2
+	call Call_ExitMenu
+	call Function891ab
+	call SetPalettes
+	ret
+
+Function89b3b: ; 89b3b (22:5b3b)
+	call Mobile22_SetBGMapMode0
+	callba Function48cda
+	ret
+
+Function89b45: ; 89b45
+	; some sort of decoder?
+	; BCD?
+	push hl
+	push bc
+	ld c, $10
+	ld e, $0
+.loop
+	ld a, [hli]
+	ld b, a
+	and $f
+	cp 10
+	jr c, .low_nybble_less_than_10
+	ld a, c
+	cp $b
+	jr nc, .clear_carry
+	jr .set_carry
+
+.low_nybble_less_than_10
+	dec c
+	swap b
+	inc e
+	ld a, b
+	and $f
+	cp 10
+	jr c, .high_nybble_less_than_10
+	ld a, c
+	cp $b
+	jr nc, .clear_carry
+	jr .set_carry
+
+.high_nybble_less_than_10
+	inc e
+	dec c
+	jr nz, .loop
+	dec e
+
+.set_carry
+	scf
+	jr .finish
+
+.clear_carry
+	and a
+
+.finish
+	pop bc
+	pop hl
+	ret
+; 89b78
+
+
+Function89b78: ; 89b78 (22:5b78)
+	push bc
+	ld a, [wd010]
+	cp $10
+	jr c, .asm_89b8c
+	ld a, e
+	and a
+	jr z, .asm_89b89
+	ld c, e
+.asm_89b85
+	inc hl
+	dec c
+	jr nz, .asm_89b85
+.asm_89b89
+	ld a, $7f
+	ld [hl], a
+.asm_89b8c
+	ld a, [wd010]
+	inc a
+	and $1f
+	ld [wd010], a
+	pop bc
+	ret
+
+Function89b97: ; 89b97 (22:5b97)
+	call Function89c34
+	jr c, .asm_89ba0
+	call Function89448
+	ret
+.asm_89ba0
+	ld a, [wd011]
+	ld hl, Unknown_89bd8
+	and a
+	jr z, .asm_89bae
+.asm_89ba9
+	inc hl
+	inc hl
+	dec a
+	jr nz, .asm_89ba9
+.asm_89bae
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld de, Sprites
+.asm_89bb4
+	ld a, [hli]
+	cp $ff
+	ret z
+	ld c, a
+	ld b, $0
+.asm_89bbb
+	push hl
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	add b
+	ld [de], a
+	inc de
+	ld a, $8
+	add b
+	ld b, a
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	pop hl
+	dec c
+	jr nz, .asm_89bbb
+	ld b, $0
+	ld c, $4
+	add hl, bc
+	jr .asm_89bb4
+; 89bd8 (22:5bd8)
+
+Unknown_89bd8: ; 89bd8
+	dw Unknown_89be0
+	dw Unknown_89bf5
+	dw Unknown_89c0a
+	dw Unknown_89c1f
+; 89be0
+
+Unknown_89be0: ; 89be0
+	db $01, $12, $4e, $01, $00
+	db $01, $19, $4e, $01, $40
+	db $01, $12, $72, $01, $20
+	db $01, $19, $72, $01, $60
+	db $ff
+
+Unknown_89bf5: ; 89bf5
+	db $01, $60, $16, $01, $00
+	db $01, $62, $16, $01, $40
+	db $01, $60, $92, $01, $20
+	db $01, $62, $92, $01, $60
+	db $ff
+
+Unknown_89c0a: ; 89c0a
+	db $01, $78, $66, $01, $00
+	db $01, $78, $66, $01, $40
+	db $01, $78, $92, $01, $20
+	db $01, $78, $92, $01, $60
+	db $ff
+
+Unknown_89c1f: ; 89c1f
+	db $01, $80, $66, $01, $00
+	db $01, $80, $66, $01, $40
+	db $01, $80, $92, $01, $20
+	db $01, $80, $92, $01, $60
+	db $ff
+; 89c34
+
+Function89c34: ; 89c34 (22:5c34)
+	push bc
+	ld a, [wd012]
+	ld c, a
+	inc a
+	and $f
+	ld [wd012], a
+	ld a, c
+	cp $8
+	pop bc
+	ret
+
+Function89c44: ; 89c44 (22:5c44)
+	call Function89c34
+	jr c, .asm_89c4f
+	push de
+	call Function89448
+	pop de
+	ret
+.asm_89c4f
+	ld hl, Sprites
+	push de
+	ld a, b
+	ld [hli], a
+	ld d, $8
+	ld a, e
+	and a
+	ld a, c
+	jr z, .asm_89c60
+.asm_89c5c
+	add d
+	dec e
+	jr nz, .asm_89c5c
+.asm_89c60
+	pop de
+	ld [hli], a
+	ld a, d
+	ld [hli], a
+	xor a
+	ld [hli], a
+	ret
+
+Function89c67: ; 89c67 (22:5c67)
+; menu scrolling?
+	call JoyTextDelay_ForcehJoyDown ; joypad
+	ld b, $0
+	bit A_BUTTON_F, c
+	jr z, .not_a_button
+	ld b, $1
+	and a
+	ret
+
+.not_a_button
+	bit B_BUTTON_F, c
+	jr z, .not_b_button
+	scf
+	ret
+
+.not_b_button
+	xor a
+	bit D_UP_F, c
+	jr z, .not_d_up
+	ld a, $1
+.not_d_up
+	bit D_DOWN_F, c
+	jr z, .not_d_down
+	ld a, $2
+.not_d_down
+	bit D_LEFT_F, c
+	jr z, .not_d_left
+	ld a, $3
+.not_d_left
+	bit D_RIGHT_F, c
+	jr z, .not_d_right
+	ld a, $4
+.not_d_right
+	and a
+	ret z ; no dpad pressed
+	dec a
+	ld c, a
+	ld d, $0
+	ld hl, .ScrollData0
+	ld a, [wd02f]
+	and a
+	jr z, .got_data
+	ld hl, .ScrollData1
+.got_data
+	ld a, [wd011]
+	and a
+	jr z, .got_row
+	ld e, $4
+.add_n_times
+	add hl, de
+	dec a
+	jr nz, .add_n_times
+.got_row
+	ld e, c
+	add hl, de
+	ld a, [hl]
+	and a
+	ret z
+	dec a
+	ld [wd011], a
+	xor a
+	ld [wd012], a
+	ret
+; 89cbf (22:5cbf)
+
+.ScrollData0: ; 89cbf
+	db 0, 2, 0, 0
+	db 1, 3, 0, 0
+	db 2, 4, 0, 0
+	db 3, 0, 0, 0
+
+.ScrollData1: ; 89ccf
+	db 0, 0, 0, 0
+	db 0, 3, 0, 0
+	db 2, 4, 0, 0
+	db 3, 0, 0, 0
+; 89cdf
+
+Function89cdf: ; 89cdf (22:5cdf)
+	ld a, $10
+	add b
+	ld b, a
+	ld a, $8
+	add c
+	ld c, a
+	ld e, $2
+	ld a, $2
+	ld hl, Sprites
+.asm_89cee
+	push af
+	push bc
+	ld d, $4
+.asm_89cf2
+	ld a, b
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld a, $1
+	ld [hli], a
+	ld a, $8
+	add c
+	ld c, a
+	inc e
+	dec d
+	jr nz, .asm_89cf2
+	pop bc
+	ld a, $8
+	add b
+	ld b, a
+	pop af
+	dec a
+	jr nz, .asm_89cee
+	ret
+
+Function89d0d: ; 89d0d (22:5d0d)
+	call Mobile22_SetBGMapMode0
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+
+	ld c, 8
+	ld de, UnknBGPals
+.loop
+	push bc
+	ld hl, .Palette1
+	ld bc, 1 palettes
+	call CopyBytes
+	pop bc
+	dec c
+	jr nz, .loop
+
+	ld hl, .Palette2
+	ld de, UnknBGPals + 2 palettes
+	ld bc, 1 palettes
+	call CopyBytes
+
+	pop af
+	ld [rSVBK], a
+
+	call SetPalettes
+	callba PrintMail_
+	call Mobile22_SetBGMapMode1
+	ld c, 24
+	call DelayFrames
+	call RestartMapMusic
+	ret
+; 89d4e (22:5d4e)
+
+.Palette1: ; 89d4e
+	RGB 31, 31, 31
+	RGB 19, 19, 19
+	RGB 15, 15, 15
+	RGB 00, 00, 00
+; 89d56
+
+.Palette2: ; 89d56
+	RGB 31, 31, 31
+	RGB 19, 19, 19
+	RGB 19, 19, 19
+	RGB 00, 00, 00
+; 89d5e
+
+Function89d5e: ; 89d5e (22:5d5e)
+	push af
+	call CopyMenuDataHeader
+	pop af
+	ld [wMenuCursorBuffer], a
+	call Mobile22_SetBGMapMode0
+	call PlaceVerticalMenuItems
+	call InitVerticalMenuCursor
+	ld hl, w2DMenuFlags1
+	set 7, [hl]
+	ret
+
+Function89d75: ; 89d75 (22:5d75)
+	push hl
+	call Mobile22_SetBGMapMode0
+	call _hl_
+	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+	pop hl
+	jr asm_89d90
+
+Function89d85: ; 89d85 (22:5d85)
+	push hl
+	call Mobile22_SetBGMapMode0
+	call _hl_
+	call CGBOnly_LoadEDTile
+	pop hl
+
+asm_89d90: ; 89d90 (22:5d90)
+	call Mobile22_SetBGMapMode0
+	push hl
+	call _hl_
+	call Function89dab
+	ld a, [wMenuCursorY]
+	push af
+	call Function891ab
+	pop af
+	pop hl
+	jr c, .asm_89da9
+	jr z, asm_89d90
+	scf
+	ret
+.asm_89da9
+	and a
+	ret
+
+Function89dab: ; 89dab (22:5dab)
+	call Mobile22_SetBGMapMode0
+	callba MobileMenuJoypad
+	call Mobile22_SetBGMapMode0
+	ld a, c
+	ld hl, wMenuJoypadFilter
+	and [hl]
+	ret z
+	bit 0, a
+	jr nz, .asm_89dc7
+	bit 1, a
+	jr nz, .asm_89dd9
+	xor a
+	ret
+.asm_89dc7
+	call PlayClickSFX
+	ld a, [w2DMenuNumRows]
+	ld c, a
+	ld a, [wMenuCursorY]
+	cp c
+	jr z, .asm_89dd9
+	call PlaceHollowCursor
+	scf
+	ret
+.asm_89dd9
+	call PlayClickSFX
+	ld a, $1
+	and a
+	ret
+
+Function89de0: ; 89de0 (22:5de0)
+	call ClearSprites
+	call Function89e0a
+	jr c, .asm_89e00
+	ld c, $1
+.asm_89dea
+	call Function8a31c
+	jr z, .asm_89dfd
+	ld a, [wMenuCursorY]
+	ld c, a
+	push bc
+	ld hl, Jumptable_89e04
+	ld a, e
+	dec a
+	rst JumpTable
+	pop bc
+	jr .asm_89dea
+.asm_89dfd
+	call Function891fe
+.asm_89e00
+	call Function8917a
+	ret
+
+Jumptable_89e04: ; 89e04 (22:5e04)
+	dw Function8a62c
+	dw Function8a999
+	dw Function8ab93
+
+
+Function89e0a: ; 89e0a (22:5e0a)
+	call OpenSRAMBank4
+	call Function8b3b0
+	call CloseSRAM
+	ld hl, Jumptable_89e18
+	rst JumpTable
+	ret
+
+Jumptable_89e18: ; 89e18 (22:5e18)
+	dw Function89e1e
+	dw Function8a116
+	dw Function8a2aa
+
+
+Function89e1e: ; 89e1e (22:5e1e)
+	call OpenSRAMBank4
+	ld bc, $a037 ; 4:a037
+	call Function8b36c
+	call CloseSRAM
+	xor a
+	ld [wd02d], a
+
+asm_89e2e: ; 89e2e (22:5e2e)
+	ld a, [wd02d]
+	ld hl, Jumptable_89e3c
+	rst JumpTable
+	ret
+
+Function89e36: ; 89e36 (22:5e36)
+	ld hl, wd02d
+	inc [hl]
+	jr asm_89e2e
+
+Jumptable_89e3c: ; 89e3c (22:5e3c)
+	dw Function89e6f
+	dw Function89fed
+	dw Function89ff6
+	dw Function8a03d
+	dw Function89eb9
+	dw Function89efd
+	dw Function89fce
+	dw Function8a04c
+	dw Function8a055
+	dw Function8a0e6
+	dw Function8a0ec
+	dw Function8a0f5
+	dw Function89e58
+	dw Function89e68
+
+
+Function89e58: ; 89e58 (22:5e58)
+	ld a, $1
+	call Function8a2fe
+	call Function891fe
+	call Function893e2
+	call Function89168
+	and a
+	ret
+
+Function89e68: ; 89e68 (22:5e68)
+	call Function891fe
+	ld a, $1
+	scf
+	ret
+
+Function89e6f: ; 89e6f (22:5e6f)
+	call Function891de
+	call Function89245
+	call Function89ee1
+	call Function89e9a
+	hlcoord 7, 4
+	call Function8a58d
+	ld a, $5
+	hlcoord 7, 4, AttrMap
+	call Function8a5a3
+	ld a, $6
+	hlcoord 10, 4, AttrMap
+	call Function8a5a3
+	call Function891ab
+	call SetPalettes
+	jp Function89e36
+
+Function89e9a: ; 89e9a (22:5e9a)
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_89eb1
+	ld de, UnknBGPals + 5 palettes
+	ld bc, 1 palettes
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	ret
+; 89eb1 (22:5eb1)
+
+Palette_89eb1: ; 89eb1
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 27, 19, 00
+	RGB 00, 00, 00
+; 89eb9
+
+Function89eb9: ; 89eb9 (22:5eb9)
+	call Function891fe
+	call Function89ee1
+	call Function89e9a
+	hlcoord 7, 4
+	call Function8a58d
+	ld a, $5
+	hlcoord 7, 4, AttrMap
+	call Function8a5a3
+	ld a, $6
+	hlcoord 10, 4, AttrMap
+	call Function8a5a3
+	call Function891ab
+	call SetPalettes
+	jp Function89e36
+
+Function89ee1: ; 89ee1 (22:5ee1)
+	call ClearBGPalettes
+	call Function893e2
+	call Mobile22_SetBGMapMode0
+	callba Function4a3a7
+	callba MG_Mobile_Layout_CreatePalBoxes
+	hlcoord 1, 0
+	call Function8a53d
+	ret
+
+Function89efd: ; 89efd (22:5efd)
+	ld hl, wd012
+	ld a, $ff
+	ld [hli], a
+	xor a
+rept 4
+	ld [hli], a
+endr
+	ld [hl], a
+.asm_89f09
+	ld hl, wd012
+	inc [hl]
+	ld a, [hli]
+	and $3
+	jr nz, .asm_89f2e
+	ld a, [hl]
+	cp $4
+	jr nc, .asm_89f2e
+	ld b, $32
+	inc [hl]
+	ld a, [hl]
+	dec a
+	jr z, .asm_89f26
+	ld c, a
+.asm_89f1f
+	ld a, $b
+	add b
+	ld b, a
+	dec c
+	jr nz, .asm_89f1f
+.asm_89f26
+	ld c, $e8
+	ld a, [wd013]
+	call Function89fa5
+.asm_89f2e
+	ld a, [wd013]
+	and a
+	jr z, .asm_89f58
+.asm_89f34
+	call Function89f6a
+	ld e, a
+	ld a, c
+	cp $a8
+	jr nc, .asm_89f4d
+	cp $46
+	jr c, .asm_89f4d
+	ld d, $0
+	dec e
+	ld hl, wd014
+	add hl, de
+	set 0, [hl]
+	inc e
+	jr .asm_89f51
+.asm_89f4d
+	ld a, $2
+	add c
+	ld c, a
+.asm_89f51
+	ld a, e
+	call Function89f77
+	dec a
+	jr nz, .asm_89f34
+.asm_89f58
+	call DelayFrame
+	ld hl, wd014
+	ld c, $4
+.asm_89f60
+	ld a, [hli]
+	and a
+	jr z, .asm_89f09
+	dec c
+	jr nz, .asm_89f60
+	jp Function89e36
+
+Function89f6a: ; 89f6a (22:5f6a)
+	push af
+	ld de, $10
+	call Function89f9a
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	pop af
+	ret
+
+Function89f77: ; 89f77 (22:5f77)
+	push af
+	ld de, $10
+	call Function89f9a
+	ld d, $2
+.asm_89f80
+	push bc
+	ld e, $2
+.asm_89f83
+	ld a, b
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	inc hl
+	inc hl
+	ld a, $8
+	add c
+	ld c, a
+	dec e
+	jr nz, .asm_89f83
+	pop bc
+	ld a, $8
+	add b
+	ld b, a
+	dec d
+	jr nz, .asm_89f80
+	pop af
+	ret
+
+Function89f9a: ; 89f9a (22:5f9a)
+	dec a
+	ld hl, Sprites
+	and a
+	ret z
+.asm_89fa0
+	add hl, de
+	dec a
+	jr nz, .asm_89fa0
+	ret
+
+Function89fa5: ; 89fa5 (22:5fa5)
+	ld de, $10
+	call Function89f9a
+	ld e, $2
+	ld d, $a
+.asm_89faf
+	push bc
+	ld a, $2
+.asm_89fb2
+	push af
+	ld a, b
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld a, d
+	inc d
+	ld [hli], a
+	ld a, $1
+	ld [hli], a
+	ld a, $8
+	add c
+	ld c, a
+	pop af
+	dec a
+	jr nz, .asm_89fb2
+	pop bc
+	ld a, $8
+	add b
+	ld b, a
+	dec e
+	jr nz, .asm_89faf
+	ret
+
+Function89fce: ; 89fce (22:5fce)
+	call Function8a5b6
+	ld a, $5
+	hlcoord 7, 4, AttrMap
+	call Function8a5a3
+	ld a, $6
+	hlcoord 10, 4, AttrMap
+	call Function8a5a3
+	call Function89448
+	call SetPalettes
+	call Function891ab
+	jp Function89e36
+
+Function89fed: ; 89fed (22:5fed)
+	ld hl, UnknownText_0x8a102
+	call PrintText
+	jp Function89e36
+
+Function89ff6: ; 89ff6 (22:5ff6)
+	call Function891fe
+	call ClearBGPalettes
+	call Function893cc
+	call Function89807
+	call Function89492
+	call Function894ca
+	call OpenSRAMBank4
+	ld hl, $a603
+	ld a, -1
+	ld bc, 8
+	call ByteFill
+	ld hl, $a603
+	ld de, wd008
+	call Function89381
+	call CloseSRAM
+	call Function8987f
+	call OpenSRAMBank4
+	hlcoord 1, 13
+	ld bc, $a007
+	call Function89a0c
+	call CloseSRAM
+	call Function891ab
+	call Mobile22_ButtonSound
+	jp Function89e36
+
+Function8a03d: ; 8a03d (22:603d)
+	ld hl, UnknownText_0x8a107
+	call Function89209
+	call PrintText
+	call Function8920f
+	jp Function89e36
+
+Function8a04c: ; 8a04c (22:604c)
+	ld hl, UnknownText_0x8a10c
+	call PrintText
+	jp Function89e36
+
+Function8a055: ; 8a055 (22:6055)
+	ld c, $7
+	ld b, $4
+.asm_8a059
+	call Function8a0a1
+	inc c
+	call Function8a0c9
+	push bc
+	call Function8a58d
+	pop bc
+	call Function8a0de
+	push bc
+	push hl
+	ld a, $5
+	call Function8a5a3
+	pop hl
+	inc hl
+	inc hl
+	inc hl
+	ld a, $6
+	call Function8a5a3
+	call CGBOnly_LoadEDTile
+	pop bc
+	ld a, c
+	cp $b
+	jr nz, .asm_8a059
+	call Function8a0a1
+	hlcoord 12, 4
+	call Function8a58d
+	ld a, $5
+	hlcoord 12, 4, AttrMap
+	call Function8a5a3
+	pop hl
+	ld a, $6
+	hlcoord 15, 4, AttrMap
+	call Function8a5a3
+	call CGBOnly_LoadEDTile
+	jp Function89e36
+
+Function8a0a1: ; 8a0a1 (22:60a1)
+	call Mobile22_SetBGMapMode0
+	push bc
+	call Function8a0c9
+	ld e, $6
+.asm_8a0aa
+	push hl
+	ld bc, $6
+	add hl, bc
+	ld d, [hl]
+	call Function8a0c1
+	pop hl
+	ld [hl], d
+	call Function89215
+	ld bc, $14
+	add hl, bc
+	dec e
+	jr nz, .asm_8a0aa
+	pop bc
+	ret
+
+Function8a0c1: ; 8a0c1 (22:60c1)
+	push hl
+	ld bc, AttrMap - TileMap
+	add hl, bc
+	ld a, [hl]
+	pop hl
+	ret
+
+Function8a0c9: ; 8a0c9 (22:60c9)
+	push bc
+	hlcoord 0, 0
+	ld de, $14
+	ld a, b
+	and a
+	jr z, .asm_8a0d8
+.asm_8a0d4
+	add hl, de
+	dec b
+	jr nz, .asm_8a0d4
+.asm_8a0d8
+	ld d, $0
+	ld e, c
+	add hl, de
+	pop bc
+	ret
+
+Function8a0de: ; 8a0de (22:60de)
+	call Function8a0c9
+	ld de, AttrMap - TileMap
+	add hl, de
+	ret
+
+Function8a0e6: ; 8a0e6 (22:60e6)
+	call Function8b539
+	jp Function89e36
+
+Function8a0ec: ; 8a0ec (22:60ec)
+	ld hl, UnknownText_0x8a111
+	call PrintText
+	jp Function89e36
+
+Function8a0f5: ; 8a0f5 (22:60f5)
+	call Function8b555
+	jp nc, Function8a0ff
+	ld hl, wd02d
+	inc [hl]
+
+Function8a0ff: ; 8a0ff (22:60ff)
+	jp Function89e36
+; 8a102 (22:6102)
+
+UnknownText_0x8a102: ; 0x8a102
+	; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
+	text_jump UnknownText_0x1c5238
+	db "@"
+; 0x8a107
+
+UnknownText_0x8a107: ; 0x8a107
+	; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
+	text_jump UnknownText_0x1c52bc
+	db "@"
+; 0x8a10c
+
+UnknownText_0x8a10c: ; 0x8a10c
+	; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
+	text_jump UnknownText_0x1c531e
+	db "@"
+; 0x8a111
+
+UnknownText_0x8a111: ; 0x8a111
+	; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
+	text_jump UnknownText_0x1c5394
+	db "@"
+; 0x8a116
+
+Function8a116: ; 8a116 (22:6116)
+	ld a, $1
+	ld [wd030], a
+	ld hl, MenuDataHeader_0x8a176
+	call LoadMenuDataHeader
+.asm_8a121
+	call Mobile22_SetBGMapMode0
+	call Function8a17b
+	jr c, .asm_8a16b
+	ld a, [wMenuCursorY]
+	ld [wd030], a
+	dec d
+	jr z, .asm_8a140
+	call Function8a20d
+	jr c, .asm_8a121
+	xor a
+	call Function8a2fe
+	call Function8916e
+	jr .asm_8a16b
+.asm_8a140
+	call Function89174
+	jr nz, .asm_8a14c
+	call Function8a241
+	jr c, .asm_8a121
+	jr .asm_8a15a
+.asm_8a14c
+	call WaitSFX
+	ld de, SFX_TWINKLE
+	call PlaySFX
+	ld c, $10
+	call DelayFrames
+.asm_8a15a
+	call ExitMenu
+	call Function891de
+	call Function893e2
+	call Function89245
+	call Function89168
+	and a
+	ret
+.asm_8a16b
+	call Function89209
+	call CloseWindow
+	call Function8920f
+	scf
+	ret
+; 8a176 (22:6176)
+
+MenuDataHeader_0x8a176: ; 0x8a176
+	db $40 ; flags
+	db 00, 14 ; start coords
+	db 06, 19 ; end coords
+; 8a17b
+
+Function8a17b: ; 8a17b (22:617b)
+	decoord 14, 0
+	ld b, $5
+	ld c, $4
+	call Function89b3b
+	ld hl, MenuDataHeader_0x8a19a
+	ld a, [wd030]
+	call Function89d5e
+	ld hl, Function8a1b0
+	call Function89d75
+	jr nc, .asm_8a198
+	ld a, $0
+.asm_8a198
+	ld d, a
+	ret
+; 8a19a (22:619a)
+
+MenuDataHeader_0x8a19a: ; 0x8a19a
+	db $40 ; flags
+	db 00, 14 ; start coords
+	db 06, 19 ; end coords
+	dw MenuData2_0x8a1a2
+	db 1 ; default option
+; 0x8a1a2
+
+MenuData2_0x8a1a2: ; 0x8a1a2
+	db $e0 ; flags
+	db 3 ; items
+	db "ひらく@"
+	db "すてる@"
+	db "もどる@"
+; 0x8a1b0
+
+Function8a1b0: ; 8a1b0
+	hlcoord 0, 12
+	ld b, $4
+	ld c, $12
+	call TextBox
+	hlcoord 1, 14
+	ld a, [wMenuCursorY]
+	ld de, Strings_8a1cc
+	dec a
+	ld c, a
+	call Function8919e
+	call PlaceString
+	ret
+; 8a1cc
+
+Strings_8a1cc: ; 8a1cc
+	db   "めいし", $25, "せいりと へんしゅうを"
+	next "おこないます"
+	db   "@"
+
+	db   "めいしフ,ルダー", $25, "めいしと"
+	next "あんしょうばんごう", $1f, "けします"
+	db   "@"
+
+	db   "まえ", $25, "がめん", $1d, "もどります"
+	db   "@"
+; 8a20d
+
+
+Function8a20d: ; 8a20d (22:620d)
+	ld hl, UnknownText_0x8a232
+	call PrintText
+	ld a, $2
+	call Function89259
+	ret c
+	ld hl, UnknownText_0x8a237
+	call PrintText
+	ld a, $2
+	call Function89259
+	ret c
+	xor a
+	call Function8a2fe
+	ld hl, UnknownText_0x8a23c
+	call PrintText
+	xor a
+	and a
+	ret
+; 8a232 (22:6232)
+
+UnknownText_0x8a232: ; 0x8a232
+	; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
+	text_jump UnknownText_0x1c53ee
+	db "@"
+; 0x8a237
+
+UnknownText_0x8a237: ; 0x8a237
+	; Are you sure you want to delete it?
+	text_jump UnknownText_0x1c5494
+	db "@"
+; 0x8a23c
+
+UnknownText_0x8a23c: ; 0x8a23c
+	; The CARD FOLDER has been deleted.
+	text_jump UnknownText_0x1c54b9
+	db "@"
+; 0x8a241
+
+Function8a241: ; 8a241 (22:6241)
+	call LoadStandardMenuDataHeader
+	call Function891fe
+	call Function8a262
+	jr nc, .asm_8a254
+	call Function891fe
+	call Function89b28
+	scf
+	ret
+.asm_8a254
+	call Function891de
+	call ClearBGPalettes
+	call Call_ExitMenu
+	call Function891de
+	and a
+	ret
+
+Function8a262: ; 8a262 (22:6262)
+	call ClearBGPalettes
+	call Function893e2
+	call Mobile22_SetBGMapMode0
+	callba Function4a3a7
+	callba MG_Mobile_Layout_CreatePalBoxes
+	hlcoord 1, 0
+	call Function8a53d
+	hlcoord 12, 4
+	call Function8a58d
+	ld a, $5
+	hlcoord 12, 4, AttrMap
+	call Function8a5a3
+	ld a, $6
+	hlcoord 15, 4, AttrMap
+	call Function8a5a3
+	xor a
+	ld [wd02e], a
+	ld bc, wd013
+	call Function8b36c
+	call Function8b493
+	call Function891ab
+	call SetPalettes
+	call Function8b5e7
+	ret
+
+Function8a2aa: ; 8a2aa (22:62aa)
+	ld hl, MenuDataHeader_0x8a2ef
+	call LoadMenuDataHeader
+	ld hl, UnknownText_0x8a2f4
+	call PrintText
+	ld a, $1
+	call Function89259
+	jr nc, .asm_8a2cf
+	ld hl, UnknownText_0x8a2f9
+	call PrintText
+	ld a, $2
+	call Function89259
+	jr c, .asm_8a2ea
+	call Function8a20d
+	jr .asm_8a2ea
+.asm_8a2cf
+	call ExitMenu
+	call Function8a241
+	jr c, .asm_8a2ed
+	ld a, $1
+	call Function8a313
+	call CloseSRAM
+	call Function891de
+	call Function89245
+	call Function89168
+	and a
+	ret
+.asm_8a2ea
+	call CloseWindow
+.asm_8a2ed
+	scf
+	ret
+; 8a2ef (22:62ef)
+
+MenuDataHeader_0x8a2ef: ; 0x8a2ef
+	db $40 ; flags
+	db 12, 00 ; start coords
+	db 17, 19 ; end coords
+; 8a2f4
+
+UnknownText_0x8a2f4: ; 0x8a2f4
+	; There is an older CARD FOLDER from a previous journey. Do you want to open it?
+	text_jump UnknownText_0x1c54dd
+	db "@"
+; 0x8a2f9
+
+UnknownText_0x8a2f9: ; 0x8a2f9
+	; Delete the old CARD FOLDER?
+	text_jump UnknownText_0x1c552d
+	db "@"
+; 0x8a2fe
+
+Function8a2fe: ; 8a2fe (22:62fe)
+	call Function8a313
+	call Function89305
+	ld hl, $a603
+	ld bc, $8
+	ld a, -1
+	call ByteFill
+	call CloseSRAM
+	ret
+
+Function8a313: ; 8a313 (22:6313)
+	ld c, a
+	call OpenSRAMBank4
+	ld a, c
+	ld [$a60b], a
+	ret
+
+Function8a31c: ; 8a31c (22:631c)
+	push bc
+	call Mobile22_SetBGMapMode0
+	callba Function4a3a7
+	callba MG_Mobile_Layout_CreatePalBoxes
+	hlcoord 1, 0
+	call Function8a53d
+	hlcoord 12, 4
+	call Function8a58d
+	call Function8a3b2
+	pop bc
+	ld a, c
+	ld [wMenuCursorBuffer], a
+	ld [MenuSelection], a
+	call PlaceVerticalMenuItems
+	call InitVerticalMenuCursor
+	ld hl, w2DMenuFlags1
+	set 7, [hl]
+.asm_8a34e
+	call Function8a3a2
+	call Mobile22_SetBGMapMode0
+	call Function8a453
+	call Function8a4d3
+	call Function8a4fc
+	call Function891ab
+	call SetPalettes
+	call Function8a383
+	jr c, .asm_8a370
+	jr z, .asm_8a34e
+.asm_8a36a
+	call Function89448
+	xor a
+	ld e, a
+	ret
+.asm_8a370
+	call Function89448
+	call PlaceHollowCursor
+	call Function8a3a2
+	ld a, [MenuSelection]
+	cp $ff
+	jr z, .asm_8a36a
+	ld e, a
+	and a
+	ret
+
+Function8a383: ; 8a383 (22:6383)
+	callba MobileMenuJoypad
+	ld a, c
+	ld hl, wMenuJoypadFilter
+	and [hl]
+	ret z
+	bit 0, a
+	jr nz, .asm_8a399
+	bit 1, a
+	jr nz, .asm_8a39e
+	xor a
+	ret
+.asm_8a399
+	call PlayClickSFX
+	scf
+	ret
+.asm_8a39e
+	call PlayClickSFX
+	ret
+
+Function8a3a2: ; 8a3a2 (22:63a2)
+	ld a, [wMenuCursorY]
+	dec a
+	ld hl, wd002
+	ld e, a
+	ld d, $0
+	add hl, de
+	ld a, [hl]
+	ld [MenuSelection], a
+	ret
+
+Function8a3b2: ; 8a3b2 (22:63b2)
+	ld a, $1
+	ld [MenuSelection], a
+	call Function8a4fc
+	call Function8a3df
+	jr nc, .asm_8a3ce
+	decoord 0, 2
+	ld b, $6
+	ld c, $9
+	call Function89b3b
+	ld hl, MenuDataHeader_0x8a435
+	jr .asm_8a3db
+.asm_8a3ce
+	decoord 0, 2
+	ld b, $8
+	ld c, $9
+	call Function89b3b
+	ld hl, MenuDataHeader_0x8a40f
+.asm_8a3db
+	call CopyMenuDataHeader
+	ret
+
+Function8a3df: ; 8a3df (22:63df)
+	call OpenSRAMBank4
+	ld hl, $a603
+	call Function89b45
+	call CloseSRAM
+	ld hl, wd002
+	jr c, .asm_8a3f8
+	ld de, Unknown_8a408
+	call Function8a400
+	scf
+	ret
+.asm_8a3f8
+	ld de, Unknown_8a40b
+	call Function8a400
+	and a
+	ret
+
+Function8a400: ; 8a400 (22:6400)
+	ld a, [de]
+	inc de
+	ld [hli], a
+	cp $ff
+	jr nz, Function8a400
+	ret
+; 8a408 (22:6408)
+
+Unknown_8a408: db 1, 2, -1
+Unknown_8a40b: db 1, 2, 3, -1
+
+MenuDataHeader_0x8a40f: ; 0x8a40f
+	db $40 ; flags
+	db 02, 00 ; start coords
+	db 11, 10 ; end coords
+	dw MenuData2_0x8a417
+	db 1 ; default option
+; 0x8a417
+
+MenuData2_0x8a417: ; 0x8a417
+	db $a0 ; flags
+	db 4 ; items
+	db "めいしりスト@"
+	db "じぶんの めいし@"
+	db "めいしこうかん@"
+	db "やめる@"
+; 0x8a435
+
+MenuDataHeader_0x8a435: ; 0x8a435
+	db $40 ; flags
+	db 02, 00 ; start coords
+	db 09, 10 ; end coords
+	dw MenuData2_0x8a43d
+	db 1 ; default option
+; 0x8a43d
+
+MenuData2_0x8a43d: ; 0x8a43d
+	db $a0 ; flags
+	db 3 ; items
+	db "めいしりスト@"
+	db "じぶんの めいし@"
+	db "やめる@"
+; 0x8a453
+
+Function8a453: ; 8a453 (22:6453)
+	hlcoord 0, 12
+	ld b, $4
+	ld c, $12
+	call TextBox
+	hlcoord 1, 14
+	ld de, String_8a476
+	ld a, [MenuSelection]
+	cp $ff
+	jr z, .asm_8a472
+	ld de, Strings_8a483
+	dec a
+	ld c, a
+	call Function8919e
+.asm_8a472
+	call PlaceString
+	ret
+; 8a476 (22:6476)
+
+String_8a476: ; 8a476
+	db   "まえ", $25, "がめん", $1d, "もどります@"
+; 8a483
+
+Strings_8a483: ; 8a483
+	db   "おともだち", $25, "めいしは"
+	next "ここ", $1d, "いれておきます@"
+
+	db   "でんわばんごう", $1f, "いれると"
+	next "めいしこうかん", $4a, "できます@"
+
+	db   "ともだちと じぶん", $25, "めいしを"
+	next "せきがいせんで こうかん します@"
+; 8a4d3
+
+Function8a4d3: ; 8a4d3 (22:64d3)
+	ld a, [MenuSelection]
+	cp $1
+	jr nz, .asm_8a4eb
+	ld a, $5
+	hlcoord 12, 4, AttrMap
+	call Function8a5a3
+	ld a, $7
+	hlcoord 15, 4, AttrMap
+	call Function8a5a3
+	ret
+.asm_8a4eb
+	ld a, $7
+	hlcoord 12, 4, AttrMap
+	call Function8a5a3
+	ld a, $6
+	hlcoord 15, 4, AttrMap
+	call Function8a5a3
+	ret
+
+Function8a4fc: ; 8a4fc (22:64fc)
+	ld a, [MenuSelection]
+	cp $3
+	jr nz, asm_8a529
+	ld hl, wd012
+	ld a, [hli]
+	ld b, a
+	ld a, [hld]
+	add b
+	ld [hl], a
+	ld b, a
+	ld c, $80
+	call Function89cdf
+	call Function8a515
+	ret
+
+Function8a515: ; 8a515 (22:6515)
+	ld hl, wd012
+	ld a, [hl]
+	cp $38
+	jr c, .asm_8a520
+	cp $3c
+	ret c
+.asm_8a520
+	ld a, [wd013]
+	cpl
+	inc a
+	ld [wd013], a
+	ret
+
+asm_8a529: ; 8a529 (22:6529)
+	ld hl, wd012
+	ld a, $3c
+	ld [hli], a
+	ld a, $ff
+	ld [hli], a
+	ld hl, Sprites
+	xor a
+	ld bc, $20
+	call ByteFill
+	ret
+
+Function8a53d: ; 8a53d (22:653d)
+	push hl
+	ld a, $15
+	ld c, $8
+	ld de, $14
+	call Function8a573
+	ld a, $1d
+	ld c, $9
+	call Function8a57c
+	inc a
+	ld [hl], a
+	call Function8a584
+	pop hl
+	add hl, de
+	ld a, $1f
+	ld c, $8
+	call Function8a573
+	dec hl
+	ld a, $51
+	ld [hli], a
+	ld a, $26
+	ld c, $1
+	call Function8a57c
+	ld a, $52
+	ld c, $3
+	call Function8a573
+	ld a, $27
+	ld c, $6
+
+Function8a573: ; 8a573 (22:6573)
+	ld [hl], a
+	call Function8a584
+	inc a
+	dec c
+	jr nz, Function8a573
+	ret
+
+Function8a57c: ; 8a57c (22:657c)
+	ld [hl], a
+	call Function8a584
+	dec c
+	jr nz, Function8a57c
+	ret
+
+Function8a584: ; 8a584 (22:6584)
+	push af
+	ld a, $4
+	call Function89215
+	inc hl
+	pop af
+	ret
+
+Function8a58d: ; 8a58d (22:658d)
+	ld a, $2d
+	ld bc, $606
+	ld de, $14
+.asm_8a595
+	push bc
+	push hl
+.asm_8a597
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .asm_8a597
+	pop hl
+	add hl, de
+	pop bc
+	dec b
+	jr nz, .asm_8a595
+	ret
+
+Function8a5a3: ; 8a5a3 (22:65a3)
+	ld bc, $603
+	ld de, $14
+.asm_8a5a9
+	push bc
+	push hl
+.asm_8a5ab
+	ld [hli], a
+	dec c
+	jr nz, .asm_8a5ab
+	pop hl
+	add hl, de
+	pop bc
+	dec b
+	jr nz, .asm_8a5a9
+	ret
+
+Function8a5b6: ; 8a5b6 (22:65b6)
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_8a5e5
+	ld de, UnknBGPals + 4 palettes
+	ld bc, 3 palettes
+	call CopyBytes
+	ld hl, Palette_8a5fd
+	ld de, UnknOBPals
+	ld bc, 1 palettes
+	call CopyBytes
+	ld hl, Palette_8a605
+	ld de, UnknOBPals + 1 palettes
+	ld bc, 1 palettes
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	ret
+; 8a5e5 (22:65e5)
+
+Palette_8a5e5: ; 8a5e5
+	RGB 31, 31, 31
+	RGB 27, 19, 00
+	RGB 07, 11, 22
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 16, 16, 31
+	RGB 27, 19, 00
+	RGB 00, 00, 00
+
+	RGB 31, 31, 31
+	RGB 31, 00, 00
+	RGB 27, 19, 00
+	RGB 00, 00, 00
+; 8a5fd
+
+Palette_8a5fd: ; 8a5fd
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+; 8a605
+
+Palette_8a605: ; 8a605
+	RGB 00, 00, 00
+	RGB 14, 18, 31
+	RGB 16, 16, 31
+	RGB 31, 31, 31
+; 8a60d
+
+Function8a60d: ; 8a60d
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_8a624
+	ld de, UnknOBPals
+	ld bc, 1 palettes
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	ret
+; 8a624
+
+Palette_8a624: ; 8a624
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 00, 00, 00
+; 8a62c
+
+Function8a62c: ; 8a62c (22:662c)
+	call LoadStandardMenuDataHeader
+	call Function891fe
+	xor a
+	call Function8b94a
+	call Function8b677
+.asm_8a639
+	xor a
+	ld [wd033], a
+	ld [wd032], a
+	ld [wd0e3], a
+	call Function8b7bd
+	ld a, c
+	and a
+	jr z, .asm_8a66a
+	ld [MenuSelection], a
+	ld b, a
+	ld a, [wScrollingMenuCursorPosition]
+	inc a
+	ld [wd034], a
+	push bc
+	call Function8b960
+	ld a, c
+	pop bc
+	jr z, .asm_8a639
+	ld c, a
+	ld hl, Jumptable_8a671
+	ld a, b
+	ld [MenuSelection], a
+	ld a, c
+	dec a
+	rst JumpTable
+	jr .asm_8a639
+.asm_8a66a
+	call Function891fe
+	call Function89b28
+	ret
+
+Jumptable_8a671: ; 8a671 (22:6671)
+	dw Function8a679
+	dw Function8a6cd
+	dw Function8a8c3
+	dw Function8a930
+
+
+Function8a679: ; 8a679 (22:6679)
+	call Function891de
+	call ClearBGPalettes
+	call Function893cc
+	call OpenSRAMBank4
+	call Function8931b
+	call Function89844
+	call CloseSRAM
+	call OpenSRAMBank4
+	call Function8939a
+	call Function89856
+	hlcoord 1, 13
+	call Function899fe
+	call Function891ab
+	call CloseSRAM
+.asm_8a6a3
+	call Function89a57
+	jr c, .asm_8a6a3
+	and a
+	jr z, Function8a679
+	ld hl, Jumptable_8a6bc
+	dec a
+	rst JumpTable
+	jr c, Function8a679
+	call Function891fe
+	call Function8b677
+	call Function89448
+	ret
+
+Jumptable_8a6bc: ; 8a6bc (22:66bc)
+	dw Function8a6c0
+	dw Function8a6c5
+
+
+Function8a6c0: ; 8a6c0 (22:66c0)
+	call PlayClickSFX
+	and a
+	ret
+
+Function8a6c5: ; 8a6c5 (22:66c5)
+	call PlayClickSFX
+	call Function89d0d
+	scf
+	ret
+
+Function8a6cd: ; 8a6cd (22:66cd)
+	call Function891de
+	call ClearBGPalettes
+	call Function893cc
+	call OpenSRAMBank4
+	call Function8931b
+	call Function89844
+	call Function8a757
+	call CloseSRAM
+.asm_8a6e5
+	call OpenSRAMBank4
+	call Function8931b
+	call Function89856
+	call Function89a2e
+	call Function891ab
+	xor a
+	ld [wd02f], a
+	call CloseSRAM
+.asm_8a6fb
+	call Function89b97
+	call Function89c67
+	jr c, .asm_8a718
+	ld a, b
+	and a
+	jr z, .asm_8a6fb
+	call PlayClickSFX
+	call Function89448
+	ld a, [wd011]
+	ld hl, Jumptable_8a74f
+	rst JumpTable
+	jr nc, .asm_8a6e5
+	jr .asm_8a742
+.asm_8a718
+	call OpenSRAMBank4
+	call Function8a765
+	call CloseSRAM
+	jr nc, .asm_8a73f
+	call Mobile22_SetBGMapMode0
+	call Function89448
+	call Function89a23
+	hlcoord 1, 13
+	ld de, String_89135
+	call PlaceString
+	call WaitBGMap
+	ld a, $2
+	call Function89254
+	jr c, .asm_8a6e5
+.asm_8a73f
+	call CloseSRAM
+.asm_8a742
+	call ClearBGPalettes
+	call Function89448
+	call Function891d3
+	call Function8b677
+	ret
+
+Jumptable_8a74f: ; 8a74f (22:674f)
+	dw Function8a78c
+	dw Function8a7cb
+	dw Function8a818
+	dw Function8a8a1
+
+
+Function8a757: ; 8a757 (22:6757)
+	call Function8939a
+	xor a
+	ld [wd010], a
+	ld [wd011], a
+	ld [wd012], a
+	ret
+
+Function8a765: ; 8a765 (22:6765)
+	call Function8931b
+	push bc
+	ld hl, $0
+	add hl, bc
+	ld de, wd002
+	ld c, $6
+	call Function89185
+	pop bc
+	jr nz, .asm_8a78a
+	push bc
+	ld hl, $11
+	add hl, bc
+	ld de, wd008
+	ld c, $8
+	call Function89185
+	pop bc
+	jr nz, .asm_8a78a
+	and a
+	ret
+.asm_8a78a
+	scf
+	ret
+
+Function8a78c: ; 8a78c (22:678c)
+	call Function891fe
+	ld de, wd002
+	ld b, $5
+	callba NamingScreen
+	call OpenSRAMBank4
+	call Function8931b
+	push bc
+	ld hl, $0
+	add hl, bc
+	ld d, h
+	ld e, l
+	ld hl, wd002
+	call InitName
+	call CloseSRAM
+	call DelayFrame
+	call JoyTextDelay
+	call Function891de
+	call ClearBGPalettes
+	call Function893cc
+	call OpenSRAMBank4
+	pop bc
+	call Function89844
+	call CloseSRAM
+	and a
+	ret
+
+Function8a7cb: ; 8a7cb (22:67cb)
+	ld a, [MenuSelection]
+	push af
+	call Function891de
+	ld de, wd008
+	ld c, $0
+	callba Function17a68f
+	jr c, .asm_8a7f4
+	ld hl, wd008
+	ld a, $ff
+	ld bc, $8
+	call ByteFill
+	ld h, d
+	ld l, e
+	ld de, wd008
+	ld c, $8
+	call Function89193
+.asm_8a7f4
+	pop af
+	ld [MenuSelection], a
+	call Function891de
+	call ClearBGPalettes
+	call Function893cc
+	call OpenSRAMBank4
+	call Function8931b
+	call Function89844
+	call Function89856
+	call Function89a2e
+	call Function891ab
+	call CloseSRAM
+	and a
+	ret
+
+Function8a818: ; 8a818 (22:6818)
+	call Function89a23
+	ld hl, wd002
+	call Function89331
+	jr c, .asm_8a875
+	ld hl, wd008
+	call Function89b45
+	jr nc, .asm_8a87a
+	call OpenSRAMBank4
+	call Function8a765
+	jr nc, .asm_8a863
+	call Function8931b
+	push bc
+	ld hl, $0
+	add hl, bc
+	ld d, h
+	ld e, l
+	ld hl, wd002
+	ld c, $6
+	call Function89193
+	pop bc
+	ld hl, $11
+	add hl, bc
+	ld d, h
+	ld e, l
+	ld hl, wd008
+	ld c, $8
+	call Function89193
+	hlcoord 1, 13
+	ld de, .string_8a868
+	call PlaceString
+	call WaitBGMap
+	call JoyWaitAorB
+.asm_8a863
+	call CloseSRAM
+	scf
+	ret
+; 8a868 (22:6868)
+
+.string_8a868
+	db "めいし", $1f, "かきかえ まし", $22, "@"
+
+.asm_8a875
+	ld de, String_8a88b
+	jr .asm_8a87d
+.asm_8a87a
+	ld de, String_8911c
+.asm_8a87d
+	hlcoord 1, 13
+	call PlaceString
+	call WaitBGMap
+	call JoyWaitAorB
+	and a
+	ret
+; 8a88b (22:688b)
+
+String_8a88b: ; 8a88b
+	db   "おともだち", $25, "なまえが"
+	next "かかれて いません!@"
+; 8a8a1
+
+Function8a8a1: ; 8a8a1 (22:68a1)
+	call OpenSRAMBank4
+	call Function8a765
+	call CloseSRAM
+	jr nc, .asm_8a8bf
+	call Function89a23
+	hlcoord 1, 13
+	ld de, String_89135
+	call PlaceString
+	ld a, $2
+	call Function89254
+	jr c, .asm_8a8c1
+.asm_8a8bf
+	scf
+	ret
+.asm_8a8c1
+	and a
+	ret
+
+Function8a8c3: ; 8a8c3 (22:68c3)
+	call Function891de
+	call ClearBGPalettes
+	call Function893cc
+	call OpenSRAMBank4
+	call Function8931b
+	call Function89844
+	call Function8939a
+	call Function89856
+	call CloseSRAM
+	call Function891ab
+	hlcoord 1, 13
+	ld de, String_8a919
+	call PlaceString
+	ld a, $2
+	call Function89254
+	jr c, .asm_8a90f
+	call OpenSRAMBank4
+	call Function892b4
+	call CloseSRAM
+	call Function89a23
+	call Mobile22_SetBGMapMode0
+	hlcoord 1, 13
+	ld de, String_8a926
+	call PlaceString
+	call WaitBGMap
+	call JoyWaitAorB
+.asm_8a90f
+	call Function89448
+	call Function891fe
+	call Function8b677
+	ret
+; 8a919 (22:6919)
+
+String_8a919: ; 8a919
+	db "このデータ", $1f, "けしますか?@"
+; 8a926
+
+String_8a926: ; 8a926
+	db "データ", $1f, "けしまし", $22, "@"
+; 8a930
+
+Function8a930: ; 8a930 (22:6930)
+	ld a, [MenuSelection]
+	push af
+	xor a
+	ld [wd032], a
+	ld a, $1
+	ld [wd033], a
+	ld a, [wd034]
+	ld [wd0e3], a
+.asm_8a943
+	call Function8b7bd
+	ld a, [wMenuJoypad]
+	and $1
+	jr nz, .asm_8a953
+	ld a, c
+	and a
+	jr nz, .asm_8a943
+	pop af
+	ret
+.asm_8a953
+	call OpenSRAMBank4
+	pop af
+	cp c
+	jr z, .asm_8a995
+	push bc
+	ld [MenuSelection], a
+	call Function8931b
+	push bc
+	ld h, b
+	ld l, c
+	ld de, wd002
+	ld bc, $25
+	call CopyBytes
+	pop de
+	pop bc
+	ld a, c
+	ld [MenuSelection], a
+	call Function8931b
+	push bc
+	ld h, b
+	ld l, c
+	ld bc, $25
+	call CopyBytes
+	pop de
+	ld hl, wd002
+	ld bc, $25
+	call CopyBytes
+	ld de, SFX_SWITCH_POKEMON
+	call WaitPlaySFX
+	ld de, SFX_SWITCH_POKEMON
+	call WaitPlaySFX
+.asm_8a995
+	call CloseSRAM
+	ret
+
+Function8a999: ; 8a999 (22:6999)
+	ld hl, MenuDataHeader_0x8a9c9
+	call LoadMenuDataHeader
+	ld c, $1
+.asm_8a9a1
+	call Function8a9ce
+	jr c, .asm_8a9bb
+	push bc
+	push de
+	call LoadStandardMenuDataHeader
+	pop de
+	dec e
+	ld a, e
+	ld hl, Jumptable_8a9c5
+	rst JumpTable
+	call Function891fe
+	call Function89b28
+	pop bc
+	jr .asm_8a9a1
+.asm_8a9bb
+	call Function89209
+	call CloseWindow
+	call Function8920f
+	ret
+
+Jumptable_8a9c5: ; 8a9c5 (22:69c5)
+	dw Function8aa0a
+	dw Function8ab3b
+; 8a9c9 (22:69c9)
+
+MenuDataHeader_0x8a9c9: ; 0x8a9c9
+	db $40 ; flags
+	db 04, 11 ; start coords
+	db 11, 18 ; end coords
+; 8a9ce
+
+Function8a9ce: ; 8a9ce (22:69ce)
+	push bc
+	decoord 11, 4
+	ld b, $6
+	ld c, $6
+	call Function89b3b
+	pop bc
+	ld a, c
+	ld hl, MenuDataHeader_0x8a9f2
+	call Function89d5e
+	ld hl, Function8aa09
+	call Function89d85
+	jr c, .asm_8a9ed
+	ld c, a
+	ld e, a
+	and a
+	ret
+.asm_8a9ed
+	ld c, a
+	ld e, $0
+	scf
+	ret
+; 8a9f2 (22:69f2)
+
+MenuDataHeader_0x8a9f2: ; 0x8a9f2
+	db $40 ; flags
+	db 04, 11 ; start coords
+	db 11, 18 ; end coords
+	dw MenuData2_0x8a9fa
+	db 1 ; default option
+; 0x8a9fa
+
+MenuData2_0x8a9fa: ; 0x8a9fa
+	db $a0 ; flags
+	db 3 ; items
+	db "へんしゅう@"
+	db "みる@"
+	db "やめる@"
+; 0x8aa09
+
+Function8aa09: ; 8aa09
+	ret
+; 8aa0a
+
+Function8aa0a: ; 8aa0a (22:6a0a)
+	ld a, $1
+	ld [wd02f], a
+	ld [wd011], a
+	xor a
+	ld [wd010], a
+	ld [wd012], a
+	call OpenSRAMBank4
+	ld hl, $a603
+	ld de, wd008
+	call Function89381
+	call CloseSRAM
+	call Function891fe
+	call ClearBGPalettes
+	call Function893cc
+	call Function89807
+	call Function89492
+	call Function894ca
+.asm_8aa3a
+	call Function8987f
+	call Function89a2e
+	call Function891ab
+.asm_8aa43
+	call Function89b97
+	call Function89c67
+	jr c, .asm_8aa61
+	ld a, b
+	and a
+	jr z, .asm_8aa43
+	call PlayClickSFX
+	call Function89448
+	ld a, [wd011]
+	dec a
+	ld hl, Jumptable_8aa6d
+	rst JumpTable
+	jr nc, .asm_8aa3a
+	jr .asm_8aa69
+.asm_8aa61
+	call Function89448
+	call Function8ab11
+	jr nc, .asm_8aa3a
+.asm_8aa69
+	call Function89448
+	ret
+
+Jumptable_8aa6d: ; 8aa6d (22:6a6d)
+	dw Function8aa73
+	dw Function8aab6
+	dw Function8ab11
+
+
+Function8aa73: ; 8aa73 (22:6a73)
+	ld a, [MenuSelection]
+	ld e, a
+	push de
+	call Function891de
+	ld de, wd008
+	ld c, $0
+	callba Function17a68f
+	jr c, .asm_8aa9d
+	ld hl, wd008
+	ld a, $ff
+	ld bc, $8
+	call ByteFill
+	ld h, d
+	ld l, e
+	ld de, wd008
+	ld c, $8
+	call Function89193
+.asm_8aa9d
+	call Function891fe
+	call ClearBGPalettes
+	call Function893cc
+	call Function89807
+	call Function89492
+	call Function894ca
+	pop de
+	ld a, e
+	ld [MenuSelection], a
+	and a
+	ret
+
+Function8aab6: ; 8aab6 (22:6ab6)
+	call Function89a23
+	ld hl, wd008
+	call Function89b45
+	jr nc, Function8ab00
+	call OpenSRAMBank4
+	ld de, wd008
+	ld hl, $a603
+	ld c, $8
+	call Function89185
+	jr z, .asm_8aaeb
+	ld hl, wd008
+	ld de, $a603
+	ld c, $8
+	call Function89193
+	hlcoord 1, 13
+	ld de, String_8aaf0
+	call PlaceString
+	call WaitBGMap
+	call JoyWaitAorB
+.asm_8aaeb
+	call CloseSRAM
+	scf
+	ret
+; 8aaf0 (22:6af0)
+
+String_8aaf0: ; 8aaf0
+	db "あたらしい めいし<PKMN>できまし<LNBRK>@"
+; 8ab00
+
+Function8ab00: ; 8ab00
+	ld de, String_8911c
+	hlcoord 1, 13
+	call PlaceString
+	call WaitBGMap
+	call Mobile22_ButtonSound
+	and a
+	ret
+
+Function8ab11: ; 8ab11 (22:6b11)
+	call OpenSRAMBank4
+	ld hl, $a603
+	ld de, wd008
+	ld c, $8
+	call Function89185
+	call CloseSRAM
+	jr z, .asm_8ab37
+	call Function89a23
+	hlcoord 1, 13
+	ld de, String_89135
+	call PlaceString
+	ld a, $2
+	call Function89254
+	jr c, .asm_8ab39
+.asm_8ab37
+	scf
+	ret
+.asm_8ab39
+	and a
+	ret
+
+Function8ab3b: ; 8ab3b (22:6b3b)
+.pressed_start
+	call Function891fe
+	call ClearBGPalettes
+	call Function893cc
+	call Function89807
+	call Function89492
+	call Function894ca
+	call OpenSRAMBank4
+	ld hl, $a603
+	ld de, wd008
+	call Function89381
+	call CloseSRAM
+	call Function8987f
+	call OpenSRAMBank4
+	hlcoord 1, 13
+	ld bc, $a007
+	call Function89a0c
+	call CloseSRAM
+	call Function891ab
+	call .JoypadLoop
+	jr c, .pressed_start
+	ret
+
+.JoypadLoop: ; 8ab77 (22:6b77)
+	call JoyTextDelay_ForcehJoyDown
+	bit A_BUTTON_F, c
+	jr nz, .a_b_button
+	bit B_BUTTON_F, c
+	jr nz, .a_b_button
+	bit START_F, c
+	jr z, .JoypadLoop
+	call PlayClickSFX
+	call Function89d0d
+	scf
+	ret
+
+.a_b_button
+	call PlayClickSFX
+	and a
+	ret
+
+Function8ab93: ; 8ab93 (22:6b93)
+	call ClearBGPalettes
+	call LoadStandardMenuDataHeader
+	callba Function105688
+	call ClearSprites
+	call Function891fe
+	call Function89b28
+	ret
+; 8aba9 (22:6ba9)
+
+Function8aba9: ; 8aba9
+	ld a, $2
+	call Function8b94a
+	ld a, $1
+	ld [wd032], a
+.asm_8abb3
+	call Function891fe
+	call Function8b677
+.asm_8abb9
+	call Function8b7bd
+	jr z, .asm_8abdf
+	ld a, c
+	ld [MenuSelection], a
+	call OpenSRAMBank4
+	call Function8931b
+	ld hl, $0011
+	add hl, bc
+	call Function89b45
+	call CloseSRAM
+	jr c, .asm_8abe2
+	ld de, SFX_WRONG
+	call WaitPlaySFX
+	call CloseSRAM
+	jr .asm_8abb9
+
+.asm_8abdf
+	xor a
+	ld c, a
+	ret
+
+.asm_8abe2
+	call PlayClickSFX
+.asm_8abe5
+	call Function891de
+	call ClearBGPalettes
+	call Function893cc
+	call OpenSRAMBank4
+	call Function8931b
+	call Function89844
+	call CloseSRAM
+	call OpenSRAMBank4
+	call Function8939a
+	call Function89856
+	hlcoord 1, 13
+	call Function899fe
+	call CloseSRAM
+	call Function891ab
+.asm_8ac0f
+	call Function89a57
+	jr c, .asm_8ac0f
+	and a
+	jr z, .asm_8abe5
+	cp $2
+	jr z, .asm_8ac0f
+	hlcoord 0, 12
+	ld b, $4
+	ld c, $12
+	call TextBox
+	hlcoord 1, 14
+	ld de, String_8ac3b
+	call PlaceString
+	ld a, $1
+	call Function8925e
+	jp c, .asm_8abb3
+	ld a, [MenuSelection]
+	ld c, a
+	ret
+; 8ac3b
+
+String_8ac3b: ; 8ac3b
+	db   "こ", $25, "ともだち", $1d, "でんわを"
+	next "かけますか?@"
+; 8ac4e
+
+Function8ac4e: ; 8ac4e
+	xor a
+	ld [MenuSelection], a
+	push de
+	call Function891de
+	call ClearBGPalettes
+	call Function893cc
+	pop bc
+	call Function89844
+	call Function8939a
+	call Function89856
+	hlcoord 1, 13
+	call Function899fe
+	call Function891ab
+	ret
+; 8ac70
+
+Function8ac70: ; 8ac70
+	push de
+	ld a, $3
+	call Function8b94a
+
+Function8ac76: ; 8ac76
+	call Function891fe
+	call Function8b677
+
+Function8ac7c: ; 8ac7c
+	call Function8b7bd
+	jr z, .asm_8acf0
+	ld a, c
+	ld [wd02f], a
+	ld [MenuSelection], a
+	call OpenSRAMBank4
+	call Function8931b
+	call Function8932d
+	call CloseSRAM
+	jr nc, .asm_8acb0
+	call OpenSRAMBank4
+	ld hl, $0011
+	add hl, bc
+	call Function89b45
+	call CloseSRAM
+	jr nc, .asm_8accc
+	call OpenSRAMBank4
+	call Function892b7
+	call CloseSRAM
+	jr .asm_8accc
+
+.asm_8acb0
+	call Function8ad0b
+	jr c, Function8ac76
+	and a
+	jr nz, .asm_8accc
+	call OpenSRAMBank4
+	ld h, b
+	ld l, c
+	ld d, $0
+	ld e, $6
+	add hl, de
+	ld d, h
+	ld e, l
+	pop hl
+	ld c, $1f
+	call Function89193
+	jr .asm_8ace4
+
+.asm_8accc
+	pop hl
+	call OpenSRAMBank4
+	ld d, b
+	ld e, c
+	ld c, $6
+	call Function89193
+	ld a, $6
+	add e
+	ld e, a
+	ld a, $0
+	adc d
+	ld d, a
+	ld c, $1f
+	call Function89193
+
+.asm_8ace4
+	call CloseSRAM
+	call LoadStandardFont
+	ld a, [wd02f]
+	ld c, a
+	and a
+	ret
+
+.asm_8acf0
+	ld hl, UnknownText_0x8ad06
+	call PrintText
+	ld a, $2
+	call Function89259
+	jp c, Function8ac7c
+	call LoadStandardFont
+	pop de
+	ld c, $0
+	scf
+	ret
+; 8ad06
+
+UnknownText_0x8ad06: ; 0x8ad06
+	; Finish registering CARDS?
+	text_jump UnknownText_0x1c554a
+	db "@"
+; 0x8ad0b
+
+Function8ad0b: ; 8ad0b
+.asm_8ad0b
+	ld a, [MenuSelection]
+	ld [wd02f], a
+	call Function891de
+	call ClearBGPalettes
+	call Function893cc
+	call OpenSRAMBank4
+	call Function8931b
+	push bc
+	call Function89844
+	call Function8939a
+	call Function89856
+	hlcoord 1, 13
+	call Function899fe
+	call CloseSRAM
+	call Function891ab
+	pop bc
+.asm_8ad37
+	push bc
+	call Function89a57
+	pop bc
+	jr c, .asm_8ad37
+	and a
+	jr z, .asm_8ad0b
+	cp $2
+	jr z, .asm_8ad37
+	call Mobile22_SetBGMapMode0
+	push bc
+	hlcoord 0, 12
+	ld b, $4
+	ld c, $12
+	call TextBox
+	ld de, String_8ad89
+	hlcoord 1, 14
+	call PlaceString
+	ld a, $2
+	call Function8925e
+	jr c, .asm_8ad87
+	call Mobile22_SetBGMapMode0
+	hlcoord 0, 12
+	ld b, $4
+	ld c, $12
+	call TextBox
+	ld de, String_8ad9c
+	hlcoord 1, 14
+	call PlaceString
+	ld a, $1
+	call Function8925e
+	jr c, .asm_8ad84
+	ld a, $0
+	jr .asm_8ad86
+
+.asm_8ad84
+	ld a, $1
+
+.asm_8ad86
+	and a
+
+.asm_8ad87
+	pop bc
+	ret
+; 8ad89
+
+String_8ad89: ; 8ad89
+	db   "こ", $25, "めいし", $1f, "けして"
+	next "いれかえますか?@"
+; 8ad9c
+
+String_8ad9c: ; 8ad9c
+	db   "おともだち", $25, "なまえを"
+	next "のこして おきますか?@"
+; 8adb3
+
+Function8adb3: ; 8adb3
+	call Function891de
+	call Function8a262
+	push af
+	call Function891de
+	pop af
+	ret
+; 8adbf
+
+Function8adbf: ; 8adbf
+	call OpenSRAMBank4
+	ld hl, $a603
+	call Function89b45
+	call CloseSRAM
+	ret
+; 8adcc
+
+Function8adcc: ; 8adcc
+	call OpenSRAMBank4
+	call Function8b3b0
+	call CloseSRAM
+	ret nc
+	cp $2
+	ret z
+	scf
+	ret
+; 8addb
--- /dev/null
+++ b/mobile/mobile_22_2.asm
@@ -1,0 +1,1162 @@
+Function8b342:: ; 8b342
+; Loads the secondary map header pointer, then runs through a
+; dw with three dummy functions.  Spends a lot of energy
+; doing pretty much nothing.
+	call GetSecondaryMapHeaderPointer
+	ld d, h
+	ld e, l
+
+; Everything between here and "ret" is useless.
+	xor a
+.loop
+	push af
+	ld hl, .dw
+	rst JumpTable
+	pop af
+	inc a
+	cp 3
+	jr nz, .loop
+	ret
+; 8b354
+
+.dw ; 8b354
+	dw .zero
+	dw .one
+	dw .two
+; 8b35a
+
+.zero ; 8b35a
+	mobile
+; 8b35b
+
+.one ; 8b35b
+	mobile
+; 8b35c
+
+.two ; 8b35c
+	mobile
+; 8b35d
+
+Function8b35d: ; 8b35d
+	ld a, h
+	cp d
+	ret nz
+	ld a, l
+	cp e
+	ret
+; 8b363
+
+Function8b363: ; 8b363
+	push bc
+	callba Mobile_AlwaysReturnNotCarry
+	pop bc
+	ret
+; 8b36c
+
+Function8b36c: ; 8b36c (22:736c)
+	; [bc + (0:4)] = -1
+	push bc
+	ld h, b
+	ld l, c
+	ld bc, 4
+	ld a, -1
+	call ByteFill
+	pop bc
+	ret
+
+Function8b379: ; 8b379 (22:7379)
+	; d = [bc + e]
+	push bc
+	ld a, c
+	add e
+	ld c, a
+	ld a, $0
+	adc b
+	ld b, a
+	ld a, [bc]
+	ld d, a
+	pop bc
+	ret
+
+Function8b385: ; 8b385 (22:7385)
+	; [bc + e] = d
+	push bc
+	ld a, c
+	add e
+	ld c, a
+	ld a, $0
+	adc b
+	ld b, a
+	ld a, d
+	ld [bc], a
+	pop bc
+	ret
+
+Function8b391: ; 8b391 (22:7391)
+	; find first e in range(4) such that [bc + e] == -1
+	; if none exist, return carry
+	push bc
+	ld e, 0
+	ld d, 4
+.loop
+	ld a, [bc]
+	inc bc
+	cp -1
+	jr z, .done
+	inc e
+	dec d
+	jr nz, .loop
+	dec e
+	scf
+.done
+	pop bc
+	ret
+
+Function8b3a4: ; 8b3a4 (22:73a4)
+	; strcmp(hl, bc, 4)
+	push de
+	push bc
+	ld d, b
+	ld e, c
+	ld c, 4
+	call Function89185
+	pop bc
+	pop de
+	ret
+
+Function8b3b0: ; 8b3b0 (22:73b0)
+	ld bc, $a037 ; 4:a037
+	ld a, [$a60b]
+	and a
+	jr z, .asm_8b3c2
+	cp $3
+	jr nc, .asm_8b3c2
+	call Function8b391
+	jr c, .asm_8b3c9
+.asm_8b3c2
+	call Function8b36c
+	xor a
+	ld [$a60b], a
+.asm_8b3c9
+	ld a, [$a60b]
+	ret
+
+Function8b3cd: ; 8b3cd (22:73cd)
+	push de
+	push bc
+	ld e, $4
+.asm_8b3d1
+	ld a, [bc]
+	inc bc
+	call Function8998b
+	inc hl
+	dec e
+	jr nz, .asm_8b3d1
+	pop bc
+	pop de
+	ret
+
+Function8b3dd: ; 8b3dd (22:73dd)
+	push de
+	push bc
+	call JoyTextDelay_ForcehJoyDown ; joypad
+	ld a, c
+	pop bc
+	pop de
+	bit A_BUTTON_F, a
+	jr nz, .a_button
+	bit B_BUTTON_F, a
+	jr nz, .b_button
+	bit D_UP_F, a
+	jr nz, .d_up
+	bit D_DOWN_F, a
+	jr nz, .d_down
+	and a
+	ret
+
+.a_button
+	ld a, e
+	cp $3
+	jr z, .e_is_zero
+	inc e
+	ld d, 0
+	call Function8b385
+	xor a
+	ld [wd010], a
+	ret
+
+.e_is_zero
+	call PlayClickSFX
+	ld d, $0
+	scf
+	ret
+
+.b_button
+	ld a, e
+	and a
+	jr nz, .e_is_not_zero
+	call PlayClickSFX
+	ld d, -1
+	call Function8b385
+	ld d, 1
+	scf
+	ret
+
+.e_is_not_zero
+	ld d, -1
+	call Function8b385
+	dec e
+	xor a
+	ld [wd010], a
+	ret
+
+.d_up
+	call Function8b379
+	ld a, d
+	cp $a
+	jr c, .less_than_10_up_1
+	ld d, $9
+.less_than_10_up_1
+	inc d
+	ld a, d
+	cp $a
+	jr c, .less_than_10_up_2
+	ld d, $0
+.less_than_10_up_2
+	call Function8b385
+	xor a
+	ld [wd010], a
+	ret
+
+.d_down
+	call Function8b379
+	ld a, d
+	cp $a
+	jr c, .less_than_10_down
+	ld d, $0
+.less_than_10_down
+	ld a, d
+	dec d
+	and a
+	jr nz, .nonzero_down
+	ld d, $9
+.nonzero_down
+	call Function8b385
+	xor a
+	ld [wd010], a
+	ret
+
+Function8b45c: ; 8b45c (22:745c)
+	call Function8b36c
+	xor a
+	ld [wd010], a
+	ld [wd012], a
+	call Function8b391
+	ld d, $0
+	call Function8b385
+.asm_8b46e
+	call Mobile22_SetBGMapMode0
+	call Function8b493
+	call Function8b4cc
+	call Function8b518
+	call Function89b78
+	push bc
+	call Function8b4fd
+	call Function89c44
+	ld a, $1
+	ld [hBGMapMode], a
+	pop bc
+	call Function8b3dd
+	jr nc, .asm_8b46e
+	ld a, d
+	and a
+	ret z
+	scf
+	ret
+
+Function8b493: ; 8b493 (22:7493)
+	push bc
+	call Mobile22_SetBGMapMode0
+	call Function8b521
+	ld hl, Jumptable_8b4a0
+	pop bc
+	rst JumpTable
+	ret
+
+Jumptable_8b4a0: ; 8b4a0 (22:74a0)
+	dw Function8b4a4
+	dw Function8b4b8
+
+
+Function8b4a4: ; 8b4a4 (22:74a4)
+	push bc
+	push de
+	call Function8b4d8
+	call TextBox
+	pop de
+	pop bc
+	call Function8b4cc
+	call Function8b518
+	call Function8b3cd
+	ret
+
+Function8b4b8: ; 8b4b8 (22:74b8)
+	push bc
+	push de
+	call Function8b4ea
+	call Function89b3b
+	pop de
+	pop bc
+	call Function8b4cc
+	call Function8b518
+	call Function8b3cd
+	ret
+
+Function8b4cc: ; 8b4cc (22:74cc)
+	push bc
+	ld hl, Unknown_8b529
+	call Function8b50a
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	pop bc
+	ret
+
+Function8b4d8: ; 8b4d8 (22:74d8)
+	ld hl, Unknown_8b529
+	call Function8b50a
+	push hl
+	inc hl
+	inc hl
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	pop hl
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ret
+
+Function8b4ea: ; 8b4ea (22:74ea)
+	ld hl, Unknown_8b529
+	call Function8b50a
+	push hl
+	inc hl
+	inc hl
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld c, a
+	pop hl
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	ret
+
+Function8b4fd: ; 8b4fd (22:74fd)
+	ld hl, Unknown_8b529 + 4
+	call Function8b50a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld d, a
+	ret
+
+Function8b50a: ; 8b50a (22:750a)
+	ld a, [wd02e]
+	and a
+	ret z
+	ld b, $0
+	ld c, $8
+.asm_8b513
+	add hl, bc
+	dec a
+	jr nz, .asm_8b513
+	ret
+
+Function8b518: ; 8b518 (22:7518)
+	push de
+	ld d, $0
+	ld e, $14
+	add hl, de
+	inc hl
+	pop de
+	ret
+
+Function8b521: ; 8b521 (22:7521)
+	ld hl, Unknown_8b529 + 7
+	call Function8b50a
+	ld a, [hl]
+	ret
+; 8b529 (22:7529)
+
+Unknown_8b529: ; 8b529
+	dwcoord 2, 5
+	db 1, 4, $20, $49, 0, 1
+	dwcoord 7, 4
+	db 1, 4, $48, $41, 0, 0
+; 8b539
+
+Function8b539: ; 8b539 (22:7539)
+	ld bc, wd017
+	call Function8b36c
+	xor a
+	ld [wd012], a
+	ld [wd02e], a
+	call Function8b493
+	call Function8b4fd
+	ld e, $0
+	call Function89c44
+	call CGBOnly_LoadEDTile
+	ret
+
+Function8b555: ; 8b555 (22:7555)
+.loop
+	ld hl, UnknownText_0x8b5ce
+	call PrintText
+	ld bc, wd017
+	call Function8b45c
+	jr c, .asm_8b5c8
+	call Function89448
+	ld bc, wd017
+	call Function8b493
+	ld bc, wd017
+	call Function8b664
+	jr nz, .asm_8b57c
+	ld hl, UnknownText_0x8b5e2
+	call PrintText
+	jr .loop
+
+.asm_8b57c
+	ld hl, UnknownText_0x8b5d3
+	call PrintText
+	ld bc, wd013
+	call Function8b45c
+	jr c, .loop
+	ld bc, wd017
+	ld hl, wd013
+	call Function8b3a4
+	jr z, .strings_equal
+	call Function89448
+	ld bc, wd013
+	call Function8b493
+	ld hl, UnknownText_0x8b5d8
+	call PrintText
+	jr .asm_8b57c
+
+.strings_equal
+	call OpenSRAMBank4
+	ld hl, wd013
+	ld de, $a037 ; 4:a037
+	ld bc, $4
+	call CopyBytes
+	call CloseSRAM
+	call Function89448
+	ld bc, wd013
+	call Function8b493
+	ld hl, UnknownText_0x8b5dd
+	call PrintText
+	and a
+.asm_8b5c8
+	push af
+	call Function89448
+	pop af
+	ret
+; 8b5ce (22:75ce)
+
+UnknownText_0x8b5ce: ; 0x8b5ce
+	; Please enter any four-digit number.
+	text_jump UnknownText_0x1bc187
+	db "@"
+; 0x8b5d3
+
+UnknownText_0x8b5d3: ; 0x8b5d3
+	; Enter the same number to confirm.
+	text_jump UnknownText_0x1bc1ac
+	db "@"
+; 0x8b5d8
+
+UnknownText_0x8b5d8: ; 0x8b5d8
+	; That's not the same number.
+	text_jump UnknownText_0x1bc1cf
+	db "@"
+; 0x8b5dd
+
+UnknownText_0x8b5dd: ; 0x8b5dd
+	; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER.
+	text_jump UnknownText_0x1bc1eb
+	db "@"
+; 0x8b5e2
+
+UnknownText_0x8b5e2: ; 0x8b5e2
+	; 0000 is invalid!
+	text_jump UnknownText_0x1bc23e
+	db "@"
+; 0x8b5e7
+
+Function8b5e7: ; 8b5e7 (22:75e7)
+	ld bc, wd013
+	call Function8b36c
+	xor a
+	ld [wd012], a
+	ld [wd02e], a
+	call Function8b493
+	call Function891ab
+	call Function8b4fd
+	ld e, $0
+	call Function89c44
+.asm_8b602
+	ld hl, UnknownText_0x8b642
+	call PrintText
+	ld bc, wd013
+	call Function8b45c
+	jr c, .asm_8b63c
+	call Function89448
+	ld bc, wd013
+	call Function8b493
+	call OpenSRAMBank4
+	ld hl, $a037 ; 4:a037
+	call Function8b3a4
+	call CloseSRAM
+	jr z, .asm_8b635
+	ld hl, UnknownText_0x8b647
+	call PrintText
+	ld bc, wd013
+	call Function8b36c
+	jr .asm_8b602
+.asm_8b635
+	ld hl, UnknownText_0x8b64c
+	call PrintText
+	and a
+.asm_8b63c
+	push af
+	call Function89448
+	pop af
+	ret
+; 8b642 (22:7642)
+
+UnknownText_0x8b642: ; 0x8b642
+	; Enter the CARD FOLDER PASSCODE.
+	text_jump UnknownText_0x1bc251
+	db "@"
+; 0x8b647
+
+UnknownText_0x8b647: ; 0x8b647
+	; Incorrect PASSCODE!
+	text_jump UnknownText_0x1bc272
+	db "@"
+; 0x8b64c
+
+UnknownText_0x8b64c: ; 0x8b64c
+	; CARD FOLDER open.@ @
+	text_jump UnknownText_0x1bc288
+	start_asm
+	ld de, SFX_TWINKLE
+	call PlaySFX
+	call WaitSFX
+	ld c, $8
+	call DelayFrames
+	ld hl, .string_8b663
+	ret
+.string_8b663
+	db "@"
+; 8b664
+
+Function8b664: ; 8b664 (22:7664)
+	push bc
+	ld de, $4
+.asm_8b668
+	ld a, [bc]
+	cp $0
+	jr nz, .asm_8b66e
+	inc d
+.asm_8b66e
+	inc bc
+	dec e
+	jr nz, .asm_8b668
+	pop bc
+	ld a, d
+	cp $4
+	ret
+
+Function8b677: ; 8b677
+	call ClearBGPalettes
+	call DisableLCD
+	call Function8b690
+	call Function8b6bb
+	call Function8b6ed
+	call EnableLCD
+	call Function891ab
+	call SetPalettes
+	ret
+; 8b690
+
+Function8b690: ; 8b690
+	ld hl, GFX_17afa5 + $514
+	ld de, VTiles2
+	ld bc, $160
+	ld a, BANK(GFX_17afa5)
+	call FarCopyBytes
+	ld hl, GFX_17afa5 + $514 + $160 - $10
+	ld de, VTiles2 tile $61
+	ld bc, $10
+	ld a, BANK(GFX_17afa5)
+	call FarCopyBytes
+	ld hl, GFX_17afa5 + $514 + $160
+	ld de, VTiles1 tile $6e
+	ld bc, $10
+	ld a, BANK(GFX_17afa5)
+	call FarCopyBytes
+	ret
+; 8b6bb
+
+Function8b6bb: ; 8b6bb
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_8b6d5
+	ld de, UnknBGPals
+	ld bc, $0018
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	call Function8949c
+	ret
+; 8b6d5
+
+Palette_8b6d5: ; 8b6d5
+	RGB 31, 31, 31
+	RGB 31, 21, 00
+	RGB 14, 07, 03
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 31, 21, 00
+	RGB 22, 09, 17
+	RGB 00, 00, 00
+	RGB 31, 31, 31
+	RGB 31, 21, 00
+	RGB 06, 24, 08
+	RGB 00, 00, 00
+; 8b6ed
+
+Function8b6ed: ; 8b6ed
+	hlcoord 0, 0, AttrMap
+	ld bc, $012c
+	xor a
+	call ByteFill
+	hlcoord 0, 14, AttrMap
+	ld bc, $0050
+	ld a, $7
+	call ByteFill
+	ret
+; 8b703
+
+Function8b703: ; 8b703
+	call Mobile22_SetBGMapMode0
+	push hl
+	ld a, $c
+	ld [hli], a
+	inc a
+	call Function8b73e
+	inc a
+	ld [hl], a
+	pop hl
+	push hl
+	push bc
+	ld de, SCREEN_WIDTH
+	add hl, de
+.asm_8b717
+	push hl
+	ld a, $f
+	ld [hli], a
+	ld a, $7f
+	call Function8b73e
+	ld a, $11
+	ld [hl], a
+	pop hl
+	ld de, SCREEN_WIDTH
+	add hl, de
+	dec b
+	jr nz, .asm_8b717
+	call Function8b732
+	pop bc
+	pop hl
+	jr Function8b744
+; 8b732
+
+Function8b732: ; 8b732
+	ld a, $12
+	ld [hli], a
+	ld a, $13
+	call Function8b73e
+	ld a, $14
+	ld [hl], a
+	ret
+; 8b73e
+
+Function8b73e: ; 8b73e
+	ld d, c
+.asm_8b73f
+	ld [hli], a
+	dec d
+	jr nz, .asm_8b73f
+	ret
+; 8b744
+
+Function8b744: ; 8b744
+	ld de, AttrMap - TileMap
+	add hl, de
+	inc b
+	inc b
+	inc c
+	inc c
+	xor a
+.asm_8b74d
+	push bc
+	push hl
+.asm_8b74f
+	ld [hli], a
+	dec c
+	jr nz, .asm_8b74f
+	pop hl
+	ld de, SCREEN_WIDTH
+	add hl, de
+	pop bc
+	dec b
+	jr nz, .asm_8b74d
+	ret
+; 8b75d
+
+Function8b75d: ; 8b75d
+	call Mobile22_SetBGMapMode0
+	hlcoord 0, 0
+	ld a, $1
+	ld bc, SCREEN_WIDTH
+	call ByteFill
+	hlcoord 0, 1
+	ld a, $2
+	ld [hl], a
+	hlcoord 9, 1
+	ld c, $b
+	call Function8b788
+	hlcoord 1, 1
+	ld a, $4
+	ld e, $8
+.asm_8b780
+	ld [hli], a
+	inc a
+	dec e
+	jr nz, .asm_8b780
+	jr Function8b79e
+; 8b787
+
+Function8b787: ; 8b787
+	ret
+; 8b788
+
+Function8b788: ; 8b788
+.asm_8b788
+	ld a, $2
+	ld [hli], a
+	dec c
+	ret z
+	ld a, $1
+	ld [hli], a
+	dec c
+	ret z
+	ld a, $3
+	ld [hli], a
+	dec c
+	ret z
+	ld a, $1
+	ld [hli], a
+	dec c
+	jr nz, .asm_8b788
+	ret
+; 8b79e
+
+Function8b79e: ; 8b79e
+	hlcoord 0, 1, AttrMap
+	ld a, $1
+	ld [hli], a
+	hlcoord 9, 1, AttrMap
+	ld e, $b
+.asm_8b7a9
+	ld a, $2
+	ld [hli], a
+	dec e
+	ret z
+	xor a
+	ld [hli], a
+	dec e
+	ret z
+	ld a, $1
+	ld [hli], a
+	dec e
+	ret z
+	xor a
+	ld [hli], a
+	dec e
+	jr nz, .asm_8b7a9
+	ret
+; 8b7bd
+
+Function8b7bd: ; 8b7bd
+	call Function8b855
+	ld hl, MenuDataHeader_0x8b867
+	call CopyMenuDataHeader
+	ld a, [wd030]
+	ld [wMenuCursorBuffer], a
+	ld a, [wd031]
+	ld [wMenuScrollPosition], a
+	ld a, [wd032]
+	and a
+	jr z, .asm_8b7e0
+	ld a, [wMenuFlags]
+	set 3, a
+	ld [wMenuFlags], a
+
+.asm_8b7e0
+	ld a, [wd0e3]
+	and a
+	jr z, .asm_8b7ea
+	dec a
+	ld [wScrollingMenuCursorPosition], a
+
+.asm_8b7ea
+	hlcoord 0, 2
+	ld b, $b
+	ld c, $12
+	call Function8b703
+	call Function8b75d
+	call UpdateSprites
+	call Function89209
+	call ScrollingMenu
+	call Function8920f
+	ld a, [wMenuJoypad]
+	cp $2
+	jr z, .asm_8b823
+	cp $20
+	jr nz, .asm_8b813
+	call Function8b832
+	jr .asm_8b7ea
+
+.asm_8b813
+	cp $10
+	jr nz, .asm_8b81c
+	call Function8b83e
+	jr .asm_8b7ea
+
+.asm_8b81c
+	ld a, [MenuSelection]
+	cp $ff
+	jr nz, .asm_8b824
+
+.asm_8b823
+	xor a
+
+.asm_8b824
+	ld c, a
+	ld a, [wMenuCursorY]
+	ld [wd030], a
+	ld a, [wMenuScrollPosition]
+	ld [wd031], a
+	ret
+; 8b832
+
+Function8b832: ; 8b832
+	ld a, [wMenuScrollPosition]
+	ld hl, wMenuData2Items
+	sub [hl]
+	jr nc, Function8b84b
+	xor a
+	jr Function8b84b
+; 8b83e
+
+Function8b83e: ; 8b83e
+	ld a, [wMenuScrollPosition]
+	ld hl, wMenuData2Items
+	add [hl]
+	cp $24
+	jr c, Function8b84b
+	ld a, $24
+
+Function8b84b: ; 8b84b
+	ld [wMenuScrollPosition], a
+	ld a, [wMenuCursorY]
+	ld [wMenuCursorBuffer], a
+	ret
+; 8b855
+
+Function8b855: ; 8b855
+	ld a, $28
+	ld hl, wd002
+	ld [hli], a
+	ld c, $28
+	xor a
+.asm_8b85e
+	inc a
+	ld [hli], a
+	dec c
+	jr nz, .asm_8b85e
+	ld a, $ff
+	ld [hl], a
+	ret
+; 8b867
+
+MenuDataHeader_0x8b867: ; 0x8b867
+	db $40 ; flags
+	db 03, 01 ; start coords
+	db 13, 18 ; end coords
+	dw MenuData2_0x8b870
+	db 1 ; default option
+; 0x8b86f
+
+	db 0
+
+MenuData2_0x8b870: ; 0x8b870
+	db $3c ; flags
+	db 5 ; items
+	db 3, 1
+	dbw 0, wd002
+	dba Function8b880
+	dba Function8b88c
+	dba Function8b8c8
+; 8b880
+
+Function8b880: ; 8b880
+	ld h, d
+	ld l, e
+	ld de, MenuSelection
+	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+	call PrintNum
+	ret
+; 8b88c
+
+Function8b88c: ; 8b88c
+	call OpenSRAMBank4
+	ld h, d
+	ld l, e
+	push hl
+	ld de, String_89116
+	call Function8931b
+	call Function8932d
+	jr c, .asm_8b8a3
+	ld hl, 0
+	add hl, bc
+	ld d, h
+	ld e, l
+
+.asm_8b8a3
+	pop hl
+	push hl
+	call PlaceString
+	pop hl
+	ld d, $0
+	ld e, $6
+	add hl, de
+	push hl
+	ld de, String_89116
+	call Function8931b
+	call Function8934a
+	jr c, .asm_8b8c0
+	ld hl, $0006
+	add hl, bc
+	ld d, h
+	ld e, l
+
+.asm_8b8c0
+	pop hl
+	call PlaceString
+	call CloseSRAM
+	ret
+; 8b8c8
+
+Function8b8c8: ; 8b8c8
+	hlcoord 0, 14
+	ld b, $2
+	ld c, $12
+	call TextBox
+	ld a, [wd033]
+	ld b, 0
+	ld c, a
+	ld hl, Unknown_8b903
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld d, h
+	ld e, l
+	hlcoord 1, 16
+	call PlaceString
+	hlcoord 0, 13
+	ld a, $f
+	ld [hl], a
+	hlcoord 19, 13
+	ld a, $11
+	ld [hl], a
+	ld a, [wMenuScrollPosition]
+	cp $24
+	ret c
+	hlcoord 0, 13
+	ld c, $12
+	call Function8b732
+	ret
+; 8b903
+
+Unknown_8b903: ; 8b903
+	dw String_8b90b
+	dw String_8b919
+	dw String_8b92a
+	dw String_8b938
+
+String_8b90b: db "めいしを えらんでください@"        ; Please select a noun.
+String_8b919: db "どの めいしと いれかえますか?@"    ; OK to swap with any noun?
+String_8b92a: db "あいてを えらんでください@"        ; Please select an opponent.
+String_8b938: db "いれる ところを えらんでください@" ; Please select a location.
+; 8b94a
+
+Function8b94a: ; 8b94a
+	ld [wd033], a
+	xor a
+	ld [wMenuScrollPosition], a
+	ld [wd032], a
+	ld [wd0e3], a
+	ld [wd031], a
+	ld a, $1
+	ld [wd030], a
+	ret
+; 8b960
+
+
+Function8b960: ; 8b960 (22:7960)
+	ld hl, MenuDataHeader_0x8b9ac
+	call LoadMenuDataHeader
+	call Function8b9e9
+	jr c, .asm_8b97a
+	hlcoord 11, 0
+	ld b, $6
+	ld c, $7
+	call Function8b703
+	ld hl, MenuDataHeader_0x8b9b1
+	jr .asm_8b987
+.asm_8b97a
+	hlcoord 11, 0
+	ld b, $a
+	ld c, $7
+	call Function8b703
+	ld hl, MenuDataHeader_0x8b9ca
+.asm_8b987
+	ld a, $1
+	call Function89d5e
+	ld hl, Function8b9ab
+	call Function89d85
+	call ExitMenu
+	jr c, .asm_8b99c
+	call Function8b99f
+	jr nz, .asm_8b99d
+.asm_8b99c
+	xor a
+.asm_8b99d
+	ld c, a
+	ret
+
+Function8b99f: ; 8b99f (22:799f)
+	ld hl, wd002
+	dec a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hl]
+	cp $ff
+	ret
+; 8b9ab (22:79ab)
+
+Function8b9ab: ; 8b9ab
+	ret
+; 8b9ac
+
+MenuDataHeader_0x8b9ac: ; 0x8b9ac
+	db $40 ; flags
+	db 00, 11 ; start coords
+	db 11, 19 ; end coords
+
+MenuDataHeader_0x8b9b1: ; 0x8b9b1
+	db $40 ; flags
+	db 00, 11 ; start coords
+	db 07, 19 ; end coords
+	dw MenuData2_0x8b9b9
+	db 1 ; default option
+; 0x8b9b9
+
+MenuData2_0x8b9b9: ; 0x8b9b9
+	db $a0 ; flags
+	db 3 ; items
+	db "へんしゅう@" ; EDIT
+	db "いれかえ@"   ; REPLACE
+	db "やめる@"     ; QUIT
+; 0x8b9ca
+
+MenuDataHeader_0x8b9ca: ; 0x8b9ca
+	db $40 ; flags
+	db 00, 11 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x8b9d2
+	db 1 ; default option
+; 0x8b9d2
+
+MenuData2_0x8b9d2: ; 0x8b9d2
+	db $a0 ; flags
+	db 5 ; items
+	db "みる@"       ; VIEW
+	db "へんしゅう@" ; EDIT
+	db "いれかえ@"   ; REPLACE
+	db "けす@"       ; ERASE
+	db "やめる@"     ; QUIT
+; 0x8b9e9
+
+Function8b9e9: ; 8b9e9 (22:79e9)
+	call OpenSRAMBank4
+	call Function8931b
+	call Function8932d
+	jr nc, .asm_8b9f6
+	jr .asm_8b9ff
+.asm_8b9f6
+	ld hl, $11
+	add hl, bc
+	call Function89b45
+	jr c, .asm_8ba08
+.asm_8b9ff
+	call Function892b4
+	and a
+	ld de, Unknown_8ba1c
+	jr .asm_8ba0c
+.asm_8ba08
+	ld de, Unknown_8ba1f
+	scf
+.asm_8ba0c
+	push af
+	ld hl, wd002
+.asm_8ba10
+	ld a, [de]
+	inc de
+	ld [hli], a
+	cp $ff
+	jr nz, .asm_8ba10
+	call CloseSRAM
+	pop af
+	ret
+; 8ba1c (22:7a1c)
+
+Unknown_8ba1c: ; 8b1ac
+	db 2, 4, -1
+
+Unknown_8ba1f: ; 8ba1f
+	db 1, 2, 4, 3, -1
+; 8ba24
--- /dev/null
+++ b/mobile/mobile_40.asm
@@ -1,0 +1,8156 @@
+Function100000: ; 100000
+; d: 1 or 2
+; e: bank
+; bc: addr
+	ld a, [rSVBK]
+	push af
+	ld a, 1
+	ld [rSVBK], a
+
+	call Function100022
+	call Function1000ba
+	call Function100675
+	call Function100057
+	call Function10016f
+	call Function100276
+
+	push bc
+	call Function100301
+	pop bc
+
+	pop af
+	ld [rSVBK], a
+	ret
+; 100022
+
+Function100022: ; 100022
+	push de
+	push bc
+	call SetRAMStateForMobile
+	pop bc
+	pop de
+	ld a, d
+	ld [wcd21], a
+	ld a, e
+	ld [wcd22], a
+	ld a, c
+	ld [wcd23], a
+	ld a, b
+	ld [wcd24], a
+	callba Function10127e
+	callba MobileFunc_106462
+	callba Function106464 ; load broken gfx
+	callba Function11615a ; init RAM
+	ld hl, VramState
+	set 1, [hl]
+	ret
+; 100057
+
+Function100057: ; 100057
+	call DisableMobile
+	call ReturnToMapFromSubmenu
+	ld hl, VramState
+	res 1, [hl]
+	ret
+; 100063
+
+SetRAMStateForMobile: ; 100063
+	xor a
+	ld hl, BGMapBuffer
+	ld bc, $65
+	call ByteFill
+	xor a
+	ld hl, wc300
+	ld bc, $100
+	call ByteFill
+	ld a, [rIE]
+	ld [BGMapBuffer], a
+	xor a
+	ld [hMapAnims], a
+	ld [hLCDCPointer], a
+	ret
+; 100082
+
+EnableMobile: ; 100082
+	xor a
+	ld hl, OverworldMap
+	ld bc, OverworldMapEnd - OverworldMap
+	call ByteFill
+
+	di
+	call DoubleSpeed
+	xor a
+	ld [rIF], a
+	ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL
+	ld [rIE], a
+	xor a
+	ld [hMapAnims], a
+	ld [hLCDCPointer], a
+	ld a, $01
+	ld [hMobileReceive], a
+	ld [hMobile], a
+	ei
+
+	ret
+; 0x1000a4
+
+DisableMobile: ; 1000a4
+	di
+	xor a
+	ld [hMobileReceive], a
+	ld [hMobile], a
+	xor a
+	ld [hVBlank], a
+	call NormalSpeed
+	xor a
+	ld [rIF], a
+	ld a, [BGMapBuffer]
+	ld [rIE], a
+	ei
+	ret
+; 1000ba
+
+Function1000ba: ; 1000ba
+.loop
+	; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex])
+	ld hl, wcd23
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [wMobileCommsJumptableIndex]
+	ld e, a
+	ld d, 0
+	add hl, de
+	add hl, de
+	ld a, [wcd22]
+	call GetFarHalfword
+	ld a, [wcd22]
+	rst FarCall
+
+	call Function1000e8
+	call Function1000fa
+	call Function100144
+	call Function100163
+	ld a, [wcd2b]
+	and a
+	jr z, .loop
+	call DelayFrame
+	ret
+; 1000e8
+
+Function1000e8: ; 1000e8
+	ld hl, wcd29
+	bit 7, [hl]
+	ret z
+	callba Function115dd3
+	ld hl, wcd29
+	set 6, [hl]
+	ret
+; 1000fa
+
+Function1000fa: ; 1000fa
+	ld a, [wc30d]
+	and a
+	ret z
+	ld hl, wcd29
+	bit 4, [hl]
+	ret z
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_100117
+	callba Function11619d
+	ld hl, wcd29
+	set 6, [hl]
+	ret
+
+.asm_100117
+	di
+	xor a
+	ld [rIF], a
+	ld a, [rIE]
+	and $13
+	ld [rIE], a
+	xor a
+	ld [hMobileReceive], a
+	ld [hMobile], a
+	ei
+
+	ld a, [wLinkMode]
+	push af
+	xor a
+	ld [wLinkMode], a
+	ld a, $04
+	ld [wc314 + 5], a
+	callba Function11619d
+	ld hl, wcd29
+	set 6, [hl]
+	pop af
+	ld [wLinkMode], a
+	ret
+; 100144
+
+Function100144: ; 100144
+	ld hl, wcd29
+	bit 5, [hl]
+	jr z, .asm_100155
+	res 5, [hl]
+	res 2, [hl]
+	res 6, [hl]
+	call Function100320
+	ret
+
+.asm_100155
+	bit 2, [hl]
+	ret z
+	res 2, [hl]
+	res 6, [hl]
+	callba HDMATransferTileMapToWRAMBank3
+	ret
+; 100163
+
+Function100163: ; 100163
+	ld hl, wcd29
+	bit 6, [hl]
+	ret z
+	res 6, [hl]
+	call DelayFrame
+	ret
+; 10016f
+
+Function10016f: ; 10016f
+	ld a, [wcd2b]
+	cp $01
+	ret z
+	cp $02
+	ret z
+	cp $ff
+	jp z, .asm_1001f5
+	cp $fe
+	jr z, .asm_1001c4
+	cp $f5
+	jr z, .asm_1001e7
+	cp $f6
+	jr z, .asm_1001b6
+	cp $fa
+	jp z, .asm_1001bd
+	cp $f7
+	jp z, .asm_1001ee
+	cp $f4
+	jr z, .asm_1001d2
+	cp $f3
+	jr z, .asm_1001cb
+	cp $f1
+	jr z, .asm_1001c4
+	cp $f2
+	jr z, .asm_1001c4
+	cp $fc
+	jr z, .asm_1001e6
+	cp $fb
+	jr z, .asm_1001af
+	cp $f8
+	ret z
+	ret   ; ????????????????????????????
+
+.asm_1001af
+	ld a, $d7
+	ld de, 0
+	jr .asm_1001d7
+
+.asm_1001b6
+	ld a, $d5
+	ld de, 0
+	jr .asm_1001d7
+
+.asm_1001bd
+	ld a, $d6
+	ld de, 0
+	jr .asm_1001d7
+
+.asm_1001c4
+	ld a, $d2
+	ld de, 2
+	jr .asm_1001d7
+
+.asm_1001cb
+	ld a, $d1
+	ld de, 1
+	jr .asm_1001d7
+
+.asm_1001d2
+	ld a, $d0
+	ld de, 0
+
+.asm_1001d7
+	ld [wc300], a
+	ld a, d
+	ld [wc302], a
+	ld a, e
+	ld [wc301], a
+	call Function10020b
+	ret
+
+.asm_1001e6
+	ret
+
+.asm_1001e7
+	ld de, String10025e
+	call Function100232
+	ret
+
+.asm_1001ee
+	ld de, String10024d
+	call Function100232
+	ret
+
+.asm_1001f5
+	ld a, [wcd2c]
+	ld [wc300], a
+	ld a, [wcd2d]
+	ld [wc302], a
+	ld a, [wcd2d]
+	ld [wc301], a
+	call Function10020b
+	ret
+; 10020b
+
+Function10020b: ; 10020b
+	xor a
+	ld [wc303], a
+	callba FadeOutPalettes
+	callba Function106464
+	call HideSprites
+	call DelayFrame
+
+	ld a, [rSVBK]
+	push af
+	ld a, $01
+	ld [rSVBK], a
+
+	callba DisplayMobileError
+
+	pop af
+	ld [rSVBK], a
+	ret
+; 100232
+
+Function100232: ; 100232
+	push de
+	callba Function106464
+	call Function3f20
+	call UpdateSprites
+	hlcoord 1, 2
+	pop de
+	call PlaceString
+	call Function100320
+	call JoyWaitAorB
+	ret
+; 10024d
+
+String10024d: ; 10024d
+	db   "つうしんを キャンセル しました@"
+; 10025e
+
+String10025e: ; 10025e
+	db   "おともだちと えらんだ へやが"
+	next "ちがうようです@"
+; 100276
+
+Function100276: ; 100276
+	ld a, [wcd2b]
+	cp $01
+	jr z, .asm_10029f
+	cp $02
+	jr z, .asm_100296
+	cp $f5
+	jr z, .asm_1002a5
+	cp $f6
+	jr z, .asm_1002a5
+	cp $f7
+	jr z, .asm_100293
+	cp $f8
+	jr z, .asm_1002b1
+	jr .asm_1002c0
+
+.asm_100293
+	ld c, $02
+	ret
+
+.asm_100296
+	callba Script_reloadmappart
+	ld c, $04
+	ret
+
+.asm_10029f
+	call Function1002dc
+	ld c, 0
+	ret
+
+.asm_1002a5
+	callba Script_reloadmappart
+	call Function1002ed
+	ld c, $03
+	ret
+
+.asm_1002b1
+	call Function1002c9
+	call Function1002dc
+	ld de, String10024d
+	call Function100232
+	ld c, $02
+	ret
+
+.asm_1002c0
+	call Function1002c9
+	call Function1002dc
+	ld c, $01
+	ret
+; 1002c9
+
+Function1002c9: ; 1002c9
+	ld hl, wcd2a
+	bit 0, [hl]
+	ret z
+	callba CleanUpBattleRAM
+	callba LoadPokemonData
+	ret
+; 1002dc
+
+Function1002dc: ; 1002dc
+	ld a, MAPSETUP_LINKRETURN
+	ld [hMapEntryMethod], a
+	callba RunMapSetupScript
+	xor a
+	ld [hMapEntryMethod], a
+	call LoadStandardFont
+	ret
+; 1002ed
+
+Function1002ed: ; 1002ed
+	callba LoadOW_BGPal7
+	callba ApplyPals
+	ld a, $01
+	ld [hCGBPalUpdate], a
+	call DelayFrame
+	ret
+; 100301
+
+Function100301: ; 100301
+	ld hl, wcd2a
+	bit 1, [hl]
+	ret z
+	callba Function106464
+	callba Function10202c
+	callba Function115dd3
+	call Function100320
+	call JoyWaitAorB
+	ret
+; 100320
+
+Function100320: ; 100320
+	callba Mobile_ReloadMapPart
+	ret
+; 100327
+
+Function100327: ; 100327
+	callba HDMATransferTileMapToWRAMBank3
+	ret
+; 100327
+
+
+Function10032e: ; 10032e
+	call Function10034d
+	ld e, a
+	ret nc
+	ld [wcd2b], a
+	ret
+; 100337
+
+Function100337: ; 100337
+	call Function10032e
+	ret c
+	ld a, [wc821]
+	bit 4, a
+	jr z, .asm_100345
+	ld a, e
+	and a
+	ret
+
+.asm_100345
+	ld a, $f9
+	ld e, a
+	ld [wcd2b], a
+	scf
+	ret
+; 10034d
+
+Function10034d: ; 10034d
+	ld a, [wc821]
+	bit 1, a
+	jr nz, .asm_10036a
+	bit 2, a
+	jr nz, .asm_10037e
+	bit 3, a
+	jr nz, .asm_100366
+	bit 0, a
+	jr nz, .asm_100364
+	ld a, $01
+	and a
+	ret
+
+.asm_100364
+	xor a
+	ret
+
+.asm_100366
+	ld a, $02
+	and a
+	ret
+
+.asm_10036a
+	ld a, 0
+	call Function3e32
+	ld [wcd2c], a
+	ld a, h
+	ld [wcd2d], a
+	ld a, l
+	ld [wcd2e], a
+	ld a, $ff
+	scf
+	ret
+
+.asm_10037e
+	ld a, $fe
+	scf
+	ret
+; 100382
+
+Function100382: ; 100382
+	ld a, [wcd27]
+	ld hl, Jumptable_10044e
+	rst JumpTable
+	ret
+; 10038a
+
+Function10038a: ; 10038a
+	ld hl, wccb4
+	ld a, $2e
+	call Function3e32
+	ret
+; 100393
+
+Function100393: ; 100393
+	ld hl, wcc60
+	ld a, $3a
+	call Function3e32
+	ret
+; 10039c
+
+Function10039c: ; 10039c
+	ld hl, wcc60
+	ld de, w3_d000
+	ld bc, $54
+	ld a, $03
+	call FarCopyWRAM
+	ret
+; 1003ab
+
+Function1003ab: ; 1003ab
+	ld hl, w3_d000
+	ld de, wcc60
+	ld bc, $54
+	ld a, $03
+	call FarCopyWRAM
+	ret
+; 1003ba
+
+Function1003ba: ; 1003ba
+	ld hl, wccb4
+	ld de, w3_d080
+	ld bc, $54
+	ld a, $03
+	call FarCopyWRAM
+	ret
+; 1003c9
+
+Function1003c9: ; 1003c9
+	ld hl, w3_d080
+	ld de, wccb4
+	ld bc, $54
+	ld a, $03
+	call FarCopyWRAM
+	ret
+; 1003d8
+
+Function1003d8: ; 1003d8
+	ld hl, wccb4
+	ld a, [hli]
+	ld c, a
+	ld b, 0
+	push hl
+	add hl, bc
+	ld a, [BGMapPalBuffer]
+	ld [hl], a
+	pop hl
+	inc bc
+	call Function10043a
+	add hl, bc
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld a, c
+	add $02
+	ld [wccb4], a
+	ret
+; 1003f5
+
+Function1003f5: ; 1003f5
+	ld a, [wcc60]
+	sub $03
+	ld [wcc60], a
+	ld a, [wccb4]
+	sub $03
+	ld [wccb4], a
+	ret
+; 100406
+
+Function100406: ; 100406
+	ld a, [wcc60]
+	sub $02
+	ld c, a
+	ld b, 0
+	ld hl, wcc61
+	call Function10043a
+	add hl, bc
+	ld a, [hli]
+	cp e
+	jr nz, .asm_100426
+	ld a, [hld]
+	cp d
+	jr nz, .asm_100426
+	dec hl
+	ld a, [BGMapPalBuffer]
+	cp [hl]
+	jr nz, .asm_10042d
+	xor a
+	ret
+
+.asm_100426
+	ld a, $f4
+	ld [wcd2b], a
+	jr .asm_100432
+
+.asm_10042d
+	ld a, $f3
+	ld [wcd2b], a
+
+.asm_100432
+	push hl
+	ld hl, wcd7c
+	inc [hl]
+	pop hl
+	scf
+	ret
+; 10043a
+
+Function10043a: ; 10043a
+	push hl
+	push bc
+	ld de, 0
+.asm_10043f
+	ld a, [hli]
+	add e
+	ld e, a
+	ld a, d
+	adc 0
+	ld d, a
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_10043f
+	pop bc
+	pop hl
+	ret
+; 10044e
+
+
+Jumptable_10044e: ; 10044e (40:444e)
+	dw Function10046a
+	dw Function10047c
+	dw Function100493
+	dw Function1004ba
+	dw Function1004f4
+	dw Function1004ce
+	dw Function1004de
+	dw Function1004a4
+	dw Function100495
+	dw Function1004ce
+	dw Function1004de
+	dw Function1004e9
+	dw Function1004f4
+	dw Function1004a4
+
+Function10046a: ; 10046a
+	ld hl, BGMapPalBuffer
+	inc [hl]
+	call Function1003d8
+	call Function1003ba
+	ld a, [wcd27]
+	inc a
+	ld [wcd27], a
+	ret
+; 10047c
+
+Function10047c: ; 10047c
+	call Function100337
+	ret c
+	ret z
+	cp $02
+	jr z, .asm_100487
+	jr .asm_10048d
+
+.asm_100487
+	ld a, $08
+	ld [wcd27], a
+	ret
+
+.asm_10048d
+	ld a, $02
+	ld [wcd27], a
+	ret
+; 100493
+
+Function100493: ; 100493
+	jr asm_100497
+
+Function100495: ; 100495
+	jr asm_100497
+
+asm_100497
+	call Function100337
+	ret c
+	ret z
+	ld a, [wcd27]
+	inc a
+	ld [wcd27], a
+	ret
+; 1004a4
+
+Function1004a4: ; 1004a4
+	call Function100406
+	jr c, .asm_1004b8
+	call Function1003c9
+	call Function1003f5
+	ld a, [wcd27]
+	set 7, a
+	ld [wcd27], a
+	ret
+
+.asm_1004b8
+	scf
+	ret
+; 1004ba
+
+Function1004ba: ; 1004ba
+	call Function10038a
+	and a
+	jr nz, .asm_1004c8
+	ld a, [wcd27]
+	inc a
+	ld [wcd27], a
+	ret
+
+.asm_1004c8
+	ld a, $08
+	ld [wcd27], a
+	ret
+; 1004ce
+
+Function1004ce: ; 1004ce
+	call Function100337
+	ret c
+	ret z
+	cp $02
+	ret nz
+	ld a, [wcd27]
+	inc a
+	ld [wcd27], a
+	ret
+; 1004de
+
+Function1004de: ; 1004de
+	call Function100393
+	ld a, [wcd27]
+	inc a
+	ld [wcd27], a
+	ret
+; 1004e9
+
+Function1004e9: ; 1004e9
+	call Function10038a
+	ld a, [wcd27]
+	inc a
+	ld [wcd27], a
+	ret
+; 1004f4
+
+Function1004f4: ; 1004f4
+	call Function100337
+	ret c
+	ret z
+	ld a, [wcd27]
+	inc a
+	ld [wcd27], a
+	call Function10039c
+	ret
+; 100504
+
+Function100504: ; 100504
+	push de
+	call Function3f20
+	call UpdateSprites
+	pop de
+	hlcoord 4, 2
+	call PlaceString
+	ret
+; 100513
+
+Function100513: ; 100513
+	call Function3f7c
+	call PlaceVerticalMenuItems
+	call InitVerticalMenuCursor
+	ld hl, w2DMenuFlags1
+	set 7, [hl]
+	ret
+; 100522
+
+Function100522: ; 100522
+	ld a, [wcd28]
+	ld hl, Jumptable_10052a
+	rst JumpTable
+	ret
+; 10052a
+
+Jumptable_10052a: ; 10052a
+	dw Function100534
+	dw Function100545
+	dw Function100545
+	dw Function100545
+	dw Function10054d
+; 100534
+
+Function100534: ; 100534
+	call Function100513
+	call UpdateSprites
+	call ApplyTilemap
+	ld a, [wcd28]
+	inc a
+	ld [wcd28], a
+	ret
+; 100545
+
+Function100545: ; 100545
+	ld a, [wcd28]
+	inc a
+	ld [wcd28], a
+	ret
+; 10054d
+
+Function10054d: ; 10054d
+	callba MobileMenuJoypad
+	ld a, c
+	ld hl, wMenuJoypadFilter
+	and [hl]
+	ret z
+	call MenuClickSound
+	bit 0, a
+	jr nz, .asm_100565
+	bit 1, a
+	jr nz, .asm_10056f
+	ret
+
+.asm_100565
+	ld a, [wcd28]
+	set 7, a
+	ld [wcd28], a
+	and a
+	ret
+
+.asm_10056f
+	ld a, [wcd28]
+	set 7, a
+	ld [wcd28], a
+	scf
+	ret
+; 100579
+
+Function100579: ; 100579
+	ld a, [wcd26]
+	ld hl, Jumptable_100581
+	rst JumpTable
+	ret
+; 100581
+
+Jumptable_100581: ; 100581
+	dw Function100585
+	dw Function100597
+; 100585
+
+Function100585: ; 100585
+	ld hl, MenuDataHeader_1005b2
+	call LoadMenuDataHeader
+	ld a, 0
+	ld [wcd28], a
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+
+Function100597: ; 100597
+	call Function100522
+	ld a, [wcd28]
+	bit 7, a
+	ret z
+	jr nc, .asm_1005a6
+	xor a
+	ld [wMenuCursorY], a
+
+.asm_1005a6
+	call ExitMenu
+	ld a, [wcd26]
+	set 7, a
+	ld [wcd26], a
+	ret
+; 1005b2
+
+MenuDataHeader_1005b2: ; 1005b2
+	db $40 ; flags
+	db 6, 14
+	db 10, 19
+	dw MenuData2_1005ba
+	db 1 ; default option
+
+MenuData2_1005ba:
+	db $c0 ; flags
+	db 2
+	db "はい@"
+	db "いいえ@"
+; 1005c3
+
+Function1005c3: ; 1005c3
+	ld a, [wcd26]
+	ld hl, Jumptable_1005cb
+	rst JumpTable
+	ret
+; 1005cb
+
+Jumptable_1005cb: ; 1005cb
+	dw Function1005cf
+	dw Function1005e1
+; 1005cf
+
+Function1005cf: ; 1005cf
+	ld hl, MenuDataHeader_1005fc
+	call LoadMenuDataHeader
+	ld a, 0
+	ld [wcd28], a
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+
+Function1005e1: ; 1005e1
+	call Function100522
+	ld a, [wcd28]
+	bit 7, a
+	ret z
+	jr nc, .asm_1005f0
+	xor a
+	ld [wMenuCursorY], a
+.asm_1005f0
+	call ExitMenu
+	ld a, [wcd26]
+	set 7, a
+	ld [wcd26], a
+	ret
+; 1005fc
+
+MenuDataHeader_1005fc: ; 1005fc
+	db $40 ; flags
+	db 6, 14
+	db 10, 19
+	dw MenuData2_100604
+	db 1 ; default option
+
+MenuData2_100604: ; 100604
+	db $c0 ; flags
+	db 2
+	db "かける@"
+	db "まつ@"
+; 10060d
+
+Mobile_CommunicationStandby: ; 10060d
+	hlcoord 3, 10
+	ld b, 1
+	ld c, 11
+	call Function3eea
+	ld de, .String
+	hlcoord 4, 11
+	call PlaceString
+	ret
+; 100621
+
+.String: ; 100621
+	db "つうしんたいきちゅう!@"
+; 10062d
+
+AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d
+	push bc
+	call IncrementMobileInactivityTimerByCFrames
+	pop bc
+	ld a, [wMobileInactivityTimerMinutes]
+	cp b
+	jr nc, .timed_out
+	and a
+	ret
+
+.timed_out
+	ld a, $fa
+	ld [wcd2b], a
+	scf
+	ret
+; 100641
+
+StartMobileInactivityTimer: ; 100641
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	ld [wMobileInactivityTimerSeconds], a
+	ld [wMobileInactivityTimerFrames], a
+	ret
+; 10064c
+
+IncrementMobileInactivityTimerBy1Frame: ; 10064c
+	ld c, 1
+IncrementMobileInactivityTimerByCFrames: ; 10064e
+	ld hl, wMobileInactivityTimerFrames ; timer?
+	ld a, [hl]
+	add c
+	cp 60
+	jr c, .seconds
+	xor a
+
+.seconds
+	ld [hld], a
+	ret c
+	ld a, [hl]
+	inc a
+	cp 60
+	jr c, .minutes
+	xor a
+
+.minutes
+	ld [hld], a
+	ret c
+	inc [hl]
+	ret
+; 100665
+
+Function100665: ; 100665
+	call UpdateTime
+	ld hl, wcd36
+	ld a, [hHours]
+	ld [hli], a
+	ld a, [hMinutes]
+	ld [hli], a
+	ld a, [hSeconds]
+	ld [hl], a
+	ret
+; 100675
+
+Function100675: ; 100675
+	ld hl, wcd2a
+	bit 2, [hl]
+	set 2, [hl]
+	ret nz
+	call Function1006d3
+	ret
+; 100681
+
+Function100681: ; 100681
+	push hl
+	ld hl, wcd2a
+	bit 2, [hl]
+	ld hl, wcd2a
+	set 2, [hl]
+	pop hl
+	jr nz, .asm_100694
+	push hl
+	call Function1006d3
+	pop hl
+.asm_100694
+	ld de, wcd32
+
+Function100697: ; 100697
+	ld a, [de]
+	and a
+	jr nz, .asm_1006bb
+	inc de
+	push de
+	call .asm_1006b4
+	ld de, String1006c2
+	call PlaceString
+	ld h, b
+	ld l, c
+	pop de
+	inc de
+	call .asm_1006b4
+	ld de, String1006c6
+	call PlaceString
+	ret
+
+.asm_1006b4
+	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+	call PrintNum
+	ret
+
+.asm_1006bb
+	ld de, String1006ca
+	call PlaceString
+	ret
+; 1006c2
+
+String1006c2: ; 1006c2
+	db "ふん @"
+String1006c6: ; 1006c6
+	db "びょう@"
+String1006ca: ; 1006ca
+	db "1じかんいじょう@"
+; 1006d3
+
+Function1006d3: ; 1006d3
+	call UpdateTime
+	ld de, wcd34
+	ld hl, wcd38
+
+Function1006dc: ; 1006dc
+	ld a, [hld]
+	ld c, a
+	ld a, [hSeconds]
+	sub c
+	jr nc, .asm_1006e5
+	add $3c
+
+.asm_1006e5
+	ld [de], a
+	dec de
+	ld a, [hld]
+	ld c, a
+	ld a, [hMinutes]
+	sbc c
+	jr nc, .asm_1006f0
+	add $3c
+
+.asm_1006f0
+	ld [de], a
+	dec de
+	ld a, [hl]
+	ld c, a
+	ld a, [hHours]
+	sbc c
+	jr nc, .asm_1006fb
+	add $18
+
+.asm_1006fb
+	ld [de], a
+	ret
+; 1006fd
+
+Function1006fd: ; 1006fd
+	ld a, $04
+	ld hl, $a800
+	call GetSRAMBank
+	xor a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	call CloseSRAM
+	ret
+; 10070d
+
+Function10070d: ; 10070d
+	ld a, $04
+	ld hl, $a800
+	call GetSRAMBank
+	xor a
+	ld [hli], a
+	ld a, $0a
+	ld [hli], a
+	xor a
+	ld [hli], a
+	call CloseSRAM
+	ret
+; 100720
+
+Function100720: ; 100720
+	xor a
+	ld [wcd6a], a
+	call UpdateTime
+	ld a, [hHours]
+	ld [wcd72], a
+	ld a, [hMinutes]
+	ld [wcd73], a
+	ld a, [hSeconds]
+	ld [wcd74], a
+	ld a, $04
+	ld hl, $a800
+	call GetSRAMBank
+	ld a, [hli]
+	ld [wcd6c], a
+	ld a, [hli]
+	ld [wcd6d], a
+	ld a, [hli]
+	ld [wcd6e], a
+	call CloseSRAM
+	ld a, [wcd6d]
+	ld [wcd6b], a
+	ret
+; 100754
+
+Function100754: ; 100754
+	call UpdateTime
+	ld a, [hHours]
+	ld [wcd72], a
+	ld a, [hMinutes]
+	ld [wcd73], a
+	ld a, [hSeconds]
+	ld [wcd74], a
+	ld a, [wcd6d]
+	ld [wcd6b], a
+	ld hl, wcd2a
+	res 6, [hl]
+	ret
+; 100772
+
+Function100772: ; 100772
+	push de
+	ld hl, wcd6c
+	ld a, [de]
+	cp [hl]
+	jr c, .asm_10079a
+	jr nz, .asm_10078c
+	inc hl
+	inc de
+	ld a, [de]
+	cp [hl]
+	jr c, .asm_10079a
+	jr nz, .asm_10078c
+	inc hl
+	inc de
+	ld a, [de]
+	cp [hl]
+	jr c, .asm_10079a
+	jr z, .asm_10079a
+
+.asm_10078c
+	pop hl
+	ld a, [hli]
+	ld [wcd6c], a
+	ld a, [hli]
+	ld [wcd6d], a
+	ld a, [hli]
+	ld [wcd6e], a
+	ret
+
+.asm_10079a
+	pop de
+	ret
+; 10079c
+
+
+Function10079c: ; 10079c
+	ld a, [wcd21]
+	cp $01
+	jr nz, .dont_quit
+	ld hl, wcd2a
+	bit 5, [hl]
+	jr nz, .dont_quit
+	ld hl, wcd2a
+	bit 6, [hl]
+	jr nz, .dont_quit
+	ld a, [wcd6a]
+	add c
+	cp 60
+	jr nc, .overflow
+	ld [wcd6a], a
+	and a
+	ret
+
+.overflow
+	sub 60
+	ld [wcd6a], a
+	ld d, b
+	push de
+	call Function1007f6
+	pop de
+	jr c, .quit
+	ld a, c
+	and a
+	jr nz, .quit
+	ld a, b
+	cp 10
+	jr nc, .quit
+	ld a, d
+	and a
+	ret z
+	ld a, [wcd6b]
+	cp b
+	ret z
+	ld a, b
+	ld [wcd6b], a
+	call Function1008e0
+	and a
+	ret
+
+.quit
+	call Function1008e0
+	ld hl, wcd2a
+	set 4, [hl]
+	ld a, $fc
+	ld [wcd2b], a
+	scf
+	ret
+
+.dont_quit
+	and a
+	ret
+; 1007f6
+
+Function1007f6: ; 1007f6
+	call UpdateTime
+	ld hl, wcd74
+	ld de, wcd71
+	call Function1006dc
+	ld a, $04
+	call GetSRAMBank
+	ld hl, $a802
+	call Function100826
+	call CloseSRAM
+	ld hl, wcd6e
+	call Function100826
+	ld a, [hHours]
+	ld [wcd72], a
+	ld a, [hMinutes]
+	ld [wcd73], a
+	ld a, [hSeconds]
+	ld [wcd74], a
+	ret
+; 100826
+
+Function100826: ; 100826
+	ld a, [wcd71]
+	add [hl]
+	sub $3c
+	jr nc, .asm_100830
+	add $3c
+
+.asm_100830
+	ld [hld], a
+	ccf
+	ld a, [BGMapBufferPtrs]
+	adc [hl]
+	sub $3c
+	jr nc, .asm_10083c
+	add $3c
+
+.asm_10083c
+	ld [hld], a
+	ld b, a
+	ccf
+	ld a, [wcd6f]
+	adc [hl]
+	ld [hl], a
+	ld c, a
+	ret
+; 100846
+
+Function100846: ; 100846
+	ld hl, wcd2a
+	bit 5, [hl]
+	jr nz, .asm_10087c
+	ld a, [wcd6e]
+	ld c, a
+	ld a, 0
+	sub c
+	jr nc, .asm_100858
+	add $3c
+
+.asm_100858
+	ld [StringBuffer2 + 2], a
+	ld a, [wcd6d]
+	ld c, a
+	ld a, $0a
+	sbc c
+	ld [StringBuffer2 + 1], a
+	xor a
+	ld [StringBuffer2], a
+	ld de, String_10088e
+	hlcoord 1, 14
+	call PlaceString
+	ld de, StringBuffer2
+	hlcoord 4, 16
+	call Function100697
+	ret
+
+.asm_10087c
+	ld de, String_10088e
+	hlcoord 1, 14
+	call PlaceString
+	ld h, b
+	ld l, c
+	ld de, String_10089f
+	call PlaceString
+	ret
+; 10088e
+
+String_10088e: ; 10088e
+	db   "モバイルたいせん できる"
+	next "じかん@"
+; 10089f
+
+String_10089f: ; 10089f
+	db " むせいげん@"
+; 1008a6
+
+Function1008a6: ; 1008a6
+	ld a, $04
+	ld hl, $a800
+	call GetSRAMBank
+	ld a, [hli]
+	ld [StringBuffer2], a
+	ld a, [hli]
+	ld [StringBuffer2 + 1], a
+	ld a, [hli]
+	ld [StringBuffer2 + 2], a
+	call CloseSRAM
+	ld a, [StringBuffer2 + 2]
+	ld b, a
+	ld a, 0
+	sub b
+	jr nc, .asm_1008c8
+	add $3c
+
+.asm_1008c8
+	ld b, a
+	ld a, [StringBuffer2 + 1]
+	ld c, a
+	ld a, $0a
+	sbc c
+	ld c, a
+	jr c, .asm_1008da
+	ld a, [StringBuffer2]
+	and a
+	jr nz, .asm_1008da
+	ret
+
+.asm_1008da
+	call Function10070d
+	ld c, 0
+	ret
+; 1008e0
+
+
+Function1008e0: ; 1008e0
+	ld a, [hBGMapMode]
+	ld b, a
+	ld a, [hVBlank]
+	ld c, a
+	push bc
+	xor a
+	ld [hBGMapMode], a
+	ld a, $03
+	ld [hVBlank], a
+	call Function100970
+	call Function100902
+	call Function100989
+	call DelayFrame
+	pop bc
+	ld a, c
+	ld [hVBlank], a
+	ld a, b
+	ld [hBGMapMode], a
+	ret
+; 100902
+
+Function100902: ; 100902
+	hlcoord 3, 10
+	ld b, $01
+	ld c, $0b
+	call TextBox
+	ld a, [wcd6d]
+	ld c, a
+	ld a, $0a
+	sub c
+	ld [StringBuffer2], a
+	jr z, .asm_10093f
+	ld de, .string_100966
+	hlcoord 4, 11
+	call PlaceString
+	hlcoord 8, 11
+	lb bc, 1, 2
+	ld de, StringBuffer2
+	call PrintNum
+	ld de, SFX_TWO_PC_BEEPS
+	call PlaySFX
+	callba ReloadMapPart
+	ld c, $3c
+	call DelayFrames
+	ret
+
+.asm_10093f
+	ld de, .string_10095a
+	hlcoord 4, 11
+	call PlaceString
+	ld de, SFX_4_NOTE_DITTY
+	call PlaySFX
+	callba ReloadMapPart
+	ld c, 120
+	call DelayFrames
+	ret
+; 10095a
+
+.string_10095a ; 10095a
+	db "たいせん しゅうりょう@"
+.string_100966 ; 100966
+	db "のこり   ふん", $e7, "@"
+; 100970
+
+
+Function100970: ; 100970
+	hlcoord 0, 0
+	ld de, w3_dc00
+	call Function1009a5
+	hlcoord 0, 0, AttrMap
+	ld de, w3_dd68
+	call Function1009a5
+	call Function1009d2
+	call Function1009ae
+	ret
+; 100989
+
+Function100989: ; 100989
+	ld hl, w3_dc00
+	decoord 0, 0
+	call Function1009a5
+	call Function1009ae
+	callba ReloadMapPart
+	ld hl, w3_dd68
+	decoord 0, 0, AttrMap
+	call Function1009a5
+	ret
+; 1009a5
+
+Function1009a5: ; 1009a5
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	ld a, $03
+	call FarCopyWRAM
+	ret
+; 1009ae
+
+Function1009ae: ; 1009ae
+	ld a, [rSVBK]
+	push af
+	ld a, $03
+	ld [rSVBK], a
+
+	ld hl, w3_d800
+	decoord 0, 0, AttrMap
+	ld c, SCREEN_WIDTH
+	ld b, SCREEN_HEIGHT
+.loop_row
+	push bc
+.loop_col
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .loop_col
+	ld bc, BG_MAP_WIDTH - SCREEN_WIDTH
+	add hl, bc
+	pop bc
+	dec b
+	jr nz, .loop_row
+
+	pop af
+	ld [rSVBK], a
+	ret
+; 1009d2
+
+Function1009d2: ; 1009d2
+	ld a, [rSVBK]
+	push af
+	ld a, $03
+	ld [rSVBK], a
+
+	ld a, [rVBK]
+	push af
+	ld a, $01
+	ld [rVBK], a
+
+	ld hl, w3_d800
+	debgcoord 0, 0
+	lb bc, $03, $24
+	call Get2bpp
+
+	pop af
+	ld [rVBK], a
+
+	pop af
+	ld [rSVBK], a
+	ret
+; 1009f3
+
+Function1009f3: ; 1009f3
+	ld a, [hJoyDown]
+	and SELECT + A_BUTTON
+	cp SELECT + A_BUTTON
+	jr nz, .select_a
+	ld hl, wcd2a
+	set 4, [hl]
+	ld a, $f8
+	ld [wcd2b], a
+	scf
+	ret
+
+.select_a
+	xor a
+	ret
+; 100a09
+
+_LinkBattleSendReceiveAction: ; 100a09
+	call .StageForSend
+	ld [wd431], a
+	callba PlaceWaitingText
+	ld a, [wLinkMode]
+	cp LINK_MOBILE
+	jr nz, .not_mobile
+
+	call .MobileBattle_SendReceiveAction
+	call Function100da5
+	callba FinishBattleAnim
+	jr .done
+
+.not_mobile
+	call .LinkBattle_SendReceiveAction
+
+.done
+	ret
+; 100a2e
+
+.StageForSend: ; 100a2e
+	ld a, [wPlayerAction]
+	and a
+	jr nz, .switch
+	ld a, [CurPlayerMove]
+	ld b, BATTLEACTION_E
+	cp STRUGGLE
+	jr z, .struggle
+	ld b, BATTLEACTION_D
+	cp $ff
+	jr z, .struggle
+	ld a, [CurMoveNum]
+	jr .use_move
+
+.switch
+	ld a, [CurPartyMon]
+	add BATTLEACTION_SWITCH1
+	jr .use_move
+
+.struggle
+	ld a, b
+
+.use_move
+	and $0f
+	ret
+; 100a53
+
+.LinkBattle_SendReceiveAction: ; 100a53
+	ld a, [wd431]
+	ld [wPlayerLinkAction], a
+	ld a, $ff
+	ld [wOtherPlayerLinkAction], a
+.waiting
+	call LinkTransfer
+	call DelayFrame
+	ld a, [wOtherPlayerLinkAction]
+	inc a
+	jr z, .waiting
+
+	ld b, 10
+.receive
+	call DelayFrame
+	call LinkTransfer
+	dec b
+	jr nz, .receive
+
+	ld b, 10
+.acknowledge
+	call DelayFrame
+	call LinkDataReceived
+	dec b
+	jr nz, .acknowledge
+
+	ld a, [wOtherPlayerLinkAction]
+	ld [wBattleAction], a
+	ret
+; 100a87
+
+.MobileBattle_SendReceiveAction: ; 100a87
+	call Function100acf
+	call StartMobileInactivityTimer
+	ld a, 0
+	ld [wcd27], a
+.asm_100a92
+	call DelayFrame
+	call GetJoypad
+	callba Function100382
+	ld c, $01
+	ld b, $03
+	push bc
+	call AdvanceMobileInactivityTimerAndCheckExpired
+	pop bc
+	jr c, .asm_100ac7
+	ld b, $01
+	call Function10079c
+	jr c, .asm_100ac7
+	call Function1009f3
+	jr c, .asm_100ac7
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_100ac7
+	ld a, [wcd27]
+	bit 7, a
+	jr z, .asm_100a92
+	call Function100ae7
+	jr .asm_100ace
+
+.asm_100ac7
+	ld a, $0f
+	ld [wd430], a
+	jr .asm_100ace
+
+.asm_100ace
+	ret
+; 100acf
+
+Function100acf: ; 100acf
+	ld de, Unknown_100b0a
+	ld hl, wccb5
+	ld a, [wd431]
+	ld [hli], a
+	ld c, $01
+.asm_100adb
+	ld a, [de]
+	inc de
+	ld [hli], a
+	inc c
+	and a
+	jr nz, .asm_100adb
+	ld a, c
+	ld [wccb4], a
+	ret
+; 100ae7
+
+Function100ae7: ; 100ae7
+	ld de, Unknown_100b0a
+	ld hl, wcc62
+.asm_100aed
+	ld a, [de]
+	inc de
+	and a
+	jr z, .asm_100af8
+	cp [hl]
+	jr nz, .asm_100aff
+	inc hl
+	jr .asm_100aed
+
+.asm_100af8
+	ld a, [wcc61]
+	ld [wd430], a
+	ret
+
+.asm_100aff
+	ld a, $0f
+	ld [wd430], a
+	ld a, $f1
+	ld [wcd2b], a
+	ret
+; 100b0a
+
+
+SECTION "tetsuji", ROMX
+
+	charmap " ", $20 ; revert to ascii
+
+Unknown_100b0a: ; 100b0a
+	db "tetsuji", 0
+; 100b12
+
+
+SECTION "bank40_2", ROMX
+
+Function100b12: ; 100b12
+	call Function100dd8
+	ret c
+	ld hl, BattleMenuDataHeader
+	ld a, BANK(BattleMenuDataHeader)
+	ld de, LoadMenuDataHeader
+	call FarCall_de
+	ld a, BANK(BattleMenuDataHeader)
+	ld [wMenuData2_2DMenuItemStringsBank], a
+	ld a, [wBattleMenuCursorBuffer]
+	ld [wMenuCursorBuffer], a
+	call Function100e72
+	call Function100b45
+	callba InitPartyMenuBGPal7
+	call Function100ed4
+	ld a, [wMenuCursorBuffer]
+	ld [wBattleMenuCursorBuffer], a
+	call ExitMenu
+	ret
+; 100b45
+
+Function100b45: ; 100b45
+	call Function100b7a
+.loop
+	call Mobile_SetOverworldDelay
+	callba MobileMenuJoypad
+	push bc
+	callba HDMATransferTileMapToWRAMBank3
+	call Function100e2d
+	pop bc
+	jr c, .asm_100b6b
+	ld a, [wMenuJoypadFilter]
+	and c
+	jr z, .loop
+	callba Mobile_GetMenuSelection
+	ret
+
+.asm_100b6b
+	ld a, [w2DMenuNumCols]
+	ld c, a
+	ld a, [w2DMenuNumRows]
+	call SimpleMultiply
+	ld [wMenuCursorBuffer], a
+	and a
+	ret
+; 100b7a
+
+Function100b7a: ; 100b7a
+	ld hl, CopyMenuData2
+	ld a, [wMenuData2_2DMenuItemStringsBank]
+	rst FarCall
+	callba Draw2DMenu
+	callba MobileTextBorder
+	call UpdateSprites
+	call ApplyTilemap
+	callba Init2DMenuCursorPosition
+	ld hl, w2DMenuFlags1
+	set 7, [hl]
+	ret
+; 100b9f
+
+MobileMoveSelectionScreen: ; 100b9f
+	xor a
+	ld [wMoveSwapBuffer], a
+	callba CheckPlayerHasUsableMoves
+	ret z
+	call Function100dd8
+	jp c, xor_a_dec_a
+	call Function100e72
+	call .GetMoveSelection
+	push af
+	callba InitPartyMenuBGPal7
+	call Function100ed4
+	pop af
+	ret
+; 100bc2
+
+.GetMoveSelection: ; 100bc2
+	xor a
+	ld [hBGMapMode], a
+	call Function100c74
+	call Function100c98
+.master_loop
+	callba MoveInfoBox
+.loop
+	call Mobile_SetOverworldDelay
+	callba MobileMenuJoypad
+	push bc
+	callba HDMATransferTileMapToWRAMBank3
+	call Function100e2d
+	pop bc
+	jr c, .b_button
+	ld a, [wMenuJoypadFilter]
+	and c
+	bit D_UP_F, a
+	jp nz, .d_up
+	bit D_DOWN_F, a
+	jp nz, .d_down
+	bit A_BUTTON_F, a
+	jr nz, .a_button
+	bit B_BUTTON_F, a
+	jr nz, .b_button
+	jr .loop
+
+.d_up
+	ld a, [wMenuCursorY]
+	and a
+	jp nz, .master_loop
+	ld a, [wNumMoves]
+	inc a
+	ld [wMenuCursorY], a
+	jp .master_loop
+
+.d_down
+	ld a, [wMenuCursorY]
+	ld b, a
+	ld a, [wNumMoves]
+	inc a
+	inc a
+	cp b
+	jp nz, .master_loop
+	ld a, $01
+	ld [wMenuCursorY], a
+	jp .master_loop
+
+.b_button
+	ld a, [wMenuCursorY]
+	dec a
+	ld [CurMoveNum], a
+	ld a, $01
+	and a
+	ret
+
+.a_button
+	ld a, [wMenuCursorY]
+	dec a
+	ld [CurMoveNum], a
+	ld a, [wMenuCursorY]
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, BattleMonPP
+	add hl, bc
+	ld a, [hl]
+	and $3f
+	jr z, .no_pp_left
+	ld a, [PlayerDisableCount]
+	swap a
+	and $0f
+	dec a
+	cp c
+	jr z, .move_disabled
+	ld a, [wMenuCursorY]
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, BattleMonMoves
+	add hl, bc
+	ld a, [hl]
+	ld [CurPlayerMove], a
+	xor a
+	ret
+
+.move_disabled
+	ld hl, BattleText_TheMoveIsDisabled
+	jr .print_text
+
+.no_pp_left
+	ld hl, BattleText_TheresNoPPLeftForThisMove
+
+.print_text
+	call StdBattleTextBox
+	call Call_LoadTempTileMapToTileMap
+	jp .GetMoveSelection
+; 100c74
+
+Function100c74: ; 100c74
+	hlcoord 0, 8
+	ld b, 8
+	ld c, 8
+	call TextBox
+	ld hl, BattleMonMoves
+	ld de, wListMoves_MoveIndicesBuffer
+	ld bc, NUM_MOVES
+	call CopyBytes
+	ld a, SCREEN_WIDTH * 2
+	ld [Buffer1], a
+	hlcoord 2, 10
+	predef ListMoves
+	ret
+; 100c98
+
+Function100c98: ; 100c98
+	ld de, .attrs
+	call SetMenuAttributes
+	ld a, [wNumMoves]
+	inc a
+	ld [w2DMenuNumRows], a
+	ld a, [CurMoveNum]
+	inc a
+	ld [wMenuCursorY], a
+	ret
+; 100cad
+
+.attrs ; 100cad
+	db 10, 1
+	db 255, 1
+	db $a0, $00
+	dn 2, 0
+	db D_UP | D_DOWN | A_BUTTON | B_BUTTON
+
+Mobile_PartyMenuSelect: ; 100cb5
+	call Function100dd8
+	ret c
+	ld hl, w2DMenuFlags1
+	set 7, [hl]
+	res 6, [hl]
+.loop
+	call Mobile_SetOverworldDelay
+	callba MobileMenuJoypad
+	push bc
+	callba PlaySpriteAnimations
+	callba HDMATransferTileMapToWRAMBank3
+	call MobileComms_CheckInactivityTimer
+	pop bc
+	jr c, .done
+	ld a, [wMenuJoypadFilter]
+	and c
+	jr z, .loop
+	call PlaceHollowCursor
+	ld a, [PartyCount]
+	inc a
+	ld b, a
+	ld a, [wMenuCursorY]
+	cp b
+	jr z, .done
+	ld [wPartyMenuCursor], a
+	ld a, [hJoyLast]
+	ld b, a
+	bit 1, b
+	jr nz, .done
+	ld a, [wMenuCursorY]
+	dec a
+	ld [CurPartyMon], a
+	ld c, a
+	ld b, 0
+	ld hl, PartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [CurPartySpecies], a
+	ld de, SFX_READ_TEXT_2
+	call PlaySFX
+	call WaitSFX
+	and a
+	ret
+
+.done
+	ld de, SFX_READ_TEXT_2
+	call PlaySFX
+	call WaitSFX
+	scf
+	ret
+; 100d22
+
+MobileBattleMonMenu: ; 100d22
+	call Function100dd8
+	ret c
+	call Function100d67
+	ld hl, w2DMenuFlags1
+	set 7, [hl]
+	res 6, [hl]
+.asm_100d30
+	call Mobile_SetOverworldDelay
+	callba MobileMenuJoypad
+	push bc
+	callba PlaySpriteAnimations
+	callba HDMATransferTileMapToWRAMBank3
+	call MobileComms_CheckInactivityTimer
+	pop bc
+	jr c, .asm_100d54
+	ld a, [wMenuJoypadFilter]
+	and c
+	jr nz, .asm_100d56
+	jr .asm_100d30
+
+.asm_100d54
+	scf
+	ret
+
+.asm_100d56
+	push af
+	ld de, SFX_READ_TEXT_2
+	call PlaySFX
+	pop af
+	bit 1, a
+	jr z, .asm_100d65
+	ret z
+	scf
+	ret
+
+.asm_100d65
+	and a
+	ret
+; 100d67
+
+Function100d67: ; 100d67
+	ld hl, .MenuDataHeader
+	call CopyMenuDataHeader
+	xor a
+	ld [hBGMapMode], a
+	call MenuBox
+	call UpdateSprites
+	call PlaceVerticalMenuItems
+	call WaitBGMap
+	call CopyMenuData2
+	call InitVerticalMenuCursor
+	ld hl, w2DMenuFlags1
+	set 6, [hl]
+	ret
+; 100d88
+
+.MenuDataHeader: ; 100d88
+	db 0 ; flags
+	db 11, 11 ; start coords
+	db 17, 19 ; end coords
+	dw .MenuData2
+	db 1 ; default option
+
+.MenuData2: ; 100d90
+	db $c0 ; flags
+	db 3
+	db "いれかえる@"  ; TRADE
+	db "つよさをみる@" ; STATS
+	db "キャンセル@"  ; CANCEL
+; 100da5
+
+Function100da5: ; 100da5
+	ld hl, wcd2a
+	res 3, [hl]
+	ld hl, wcd29
+	res 0, [hl]
+	ret
+; 100db0
+
+Function100db0: ; 100db0
+	ld hl, wcd2a
+	bit 3, [hl]
+	jr nz, .asm_100dbe
+	ld hl, wcd2a
+	set 3, [hl]
+	scf
+	ret
+
+.asm_100dbe
+	xor a
+	ret
+; 100dc0
+
+
+
+Function100dc0: ; 100dc0
+	ld a, [wLinkMode]
+	cp LINK_MOBILE
+	jr nz, .mobile
+	ld hl, wcd2a
+	bit 3, [hl]
+	jr z, .mobile
+	scf
+	ret
+
+.mobile
+	xor a
+	ret
+; 100dd2
+
+Mobile_SetOverworldDelay: ; 100dd2
+	ld a, 30
+	ld [OverworldDelay], a
+	ret
+; 100dd8
+
+Function100dd8: ; 100dd8
+	ld c, $01
+	ld b, $03
+	callba AdvanceMobileInactivityTimerAndCheckExpired
+	jr c, .asm_100dfb
+	ld c, $3c
+	ld b, $01
+	call Function10079c
+	jr c, .asm_100dfb
+	callba Function10032e
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_100dfb
+	xor a
+	ret
+
+.asm_100dfb
+	scf
+	ret
+; 100dfd
+
+MobileComms_CheckInactivityTimer: ; 100dfd
+	ld a, [OverworldDelay]
+	ld c, a
+	ld a, 30
+	sub c
+	ld c, a
+	ld b, 3
+	push bc
+	callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall
+	pop bc
+	jr c, .quit
+	ld b, 1
+	call Function10079c
+	jr c, .quit
+	call Function1009f3
+	jr c, .quit
+	callba Function10032e ; useless to farcall
+	ld a, [wcd2b]
+	and a
+	jr nz, .quit
+	xor a
+	ret
+
+.quit
+	scf
+	ret
+; 100e2d
+
+Function100e2d: ; 100e2d
+	ld a, [OverworldDelay]
+	ld c, a
+	ld a, 30
+	sub c
+	ld c, a
+	ld b, 3
+	push bc
+	callba AdvanceMobileInactivityTimerAndCheckExpired
+	pop bc
+	jr c, .asm_100e61
+	ld b, 1
+	call Function10079c
+	jr c, .asm_100e61
+	call Function1009f3
+	jr c, .asm_100e61
+	callba Function10032e
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_100e61
+	call Function100e63
+	call Function100e84
+	xor a
+	ret
+
+.asm_100e61
+	scf
+	ret
+; 100e63
+
+Function100e63: ; 100e63
+	ld a, e
+	cp $02
+	ret nz
+	call Function100db0
+	ret nc
+	ld de, SFX_ELEVATOR_END
+	call PlaySFX
+	ret
+; 100e72
+
+Function100e72: ; 100e72
+	xor a
+	ld hl, wcd29
+	bit 0, [hl]
+	jr z, .asm_100e7c
+	ld a, $0a
+
+.asm_100e7c
+	ld [wcd67], a
+	xor a
+	ld [wcd68], a
+	ret
+; 100e84
+
+Function100e84: ; 100e84
+	ld a, [wcd67]
+	ld hl, Jumptable_100e8c
+	rst JumpTable
+	ret
+; 100e8c
+
+
+Jumptable_100e8c: ; 100e8c (40:4e8c)
+	dw Function100ea2
+	dw Function100eae
+	dw Function100eb4
+	dw Function100eae
+	dw Function100eb4
+	dw Function100eae
+	dw Function100eb4
+	dw Function100eae
+	dw Function100eb4
+	dw Function100eae
+	dw Function100ec4
+
+
+Function100ea2: ; 100ea2 (40:4ea2)
+	call Function100dc0
+	ret nc
+	ld hl, wcd29
+	set 0, [hl]
+	call Function100ec5
+
+
+Function100eae: ; 100eae
+	scf
+	call Function100eca
+	jr asm_100eb8
+
+Function100eb4: ; 100eb4
+	and a
+	call Function100eca
+
+asm_100eb8
+	ld hl, wcd68
+	inc [hl]
+	ld a, [hl]
+	cp $02
+	ret c
+	ld [hl], 0
+	jr Function100ec5
+
+Function100ec4: ; 100ec4
+	ret
+
+Function100ec5
+	ld hl, wcd67
+	inc [hl]
+	ret
+; 100eca
+
+Function100eca: ; 100eca
+	callba Mobile_InitPartyMenuBGPal7
+	call Function100ed4
+	ret
+; 100ed4
+
+Function100ed4: ; 100ed4
+	callba ApplyPals
+	ld a, $01
+	ld [hCGBPalUpdate], a
+	ret
+; 100edf
+
+Function100edf: ; 100edf
+	ld hl, Unknown_100fc0
+	ld c, 1
+	jr asm_100f02
+
+Function100ee6: ; 100ee6
+	ld hl, Unknown_100fc0
+	ld c, 2
+	jr asm_100f02
+
+Function100eed: ; 100eed
+	ld hl, Unknown_100feb
+	ld c, 1
+	jr asm_100f02
+
+Function100ef4: ; 100ef4
+	ld hl, Unknown_100ff3
+	ld c, 1
+	jr asm_100f02
+
+Function100efb: ; 100efb
+	ld hl, Unknown_10102c
+	ld c, 1
+	jr asm_100f02
+
+asm_100f02:
+	ld a, c
+	ld [StringBuffer2], a
+	; someting that was previously stored in de gets backed up to here
+	ld a, e
+	ld [StringBuffer2 + 1], a
+	ld a, d
+	ld [StringBuffer2 + 2], a
+	; empty this
+	xor a
+	ld [StringBuffer2 + 4], a
+	ld [StringBuffer2 + 5], a
+.loop
+	ld a, [hl]
+	cp $ff
+	jr z, .done
+	ld [StringBuffer2 + 3], a ; bank
+	push hl
+	inc hl
+	; addr 1
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	; size
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	; addr 2
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call Function100f3d
+	; next line
+	pop hl
+	ld de, 7
+	add hl, de
+	jr .loop
+
+.done
+	; recover the values into bc
+	ld a, [StringBuffer2 + 4]
+	ld c, a
+	ld a, [StringBuffer2 + 5]
+	ld b, a
+	ret
+; 100f3d
+
+Function100f3d: ; 100f3d
+	; parameter
+	ld a, [StringBuffer2]
+	cp $02
+	jr z, .two
+	cp $01
+	jr z, .one
+	cp $03
+	jr z, .three
+	ret
+
+.three
+	; what was once in de gets copied to hl,
+	; modified by Function100f8d, and put back
+	; into this backup
+	ld a, [StringBuffer2 + 1]
+	ld l, a
+	ld a, [StringBuffer2 + 2]
+	ld h, a
+	call Function100f8d
+	ld a, l
+	ld [StringBuffer2 + 1], a
+	ld a, h
+	ld [StringBuffer2 + 2], a
+	ret
+
+.two
+	; hl gets backed up to de, then
+	; do the same as in .three
+	ld d, h
+	ld e, l
+	ld a, [StringBuffer2 + 1]
+	ld l, a
+	ld a, [StringBuffer2 + 2]
+	ld h, a
+	call Function100f8d
+	ld a, l
+	ld [StringBuffer2 + 1], a
+	ld a, h
+	ld [StringBuffer2 + 2], a
+	ret
+
+.one
+	; de gets copied to hl, then
+	; load the backup into de,
+	; finally run Function100f8d
+	; and store the de result
+	ld h, d
+	ld l, e
+	ld a, [StringBuffer2 + 1]
+	ld e, a
+	ld a, [StringBuffer2 + 2]
+	ld d, a
+	call Function100f8d
+	ld a, e
+	ld [StringBuffer2 + 1], a
+	ld a, d
+	ld [StringBuffer2 + 2], a
+	ret
+; 100f8d
+
+Function100f8d: ; 100f8d
+	push hl
+	ld a, [StringBuffer2 + 4]
+	ld l, a
+	ld a, [StringBuffer2 + 5]
+	ld h, a
+	add hl, bc
+	ld a, l
+	ld [StringBuffer2 + 4], a
+	ld a, h
+	ld [StringBuffer2 + 5], a
+	pop hl
+	ld a, [StringBuffer2 + 3]
+	bit 7, a
+	res 7, a
+	jr z, .sram
+	and a
+	jr nz, .far_wram
+	call CopyBytes
+	ret
+
+.far_wram
+	and $7f
+	call FarCopyWRAM
+	ret
+
+.sram
+	call GetSRAMBank
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 100fc0
+
+Unknown_100fc0: ; 100fc0
+	; first byte:
+	;     Bit 7 set: Not SRAM
+	;     Lower 7 bits: Bank
+	; Address, size (dw), address
+	dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName
+	dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount
+	dbwww $80, PlayerID, 2, OTPlayerID
+	dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons
+	dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT
+	dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames
+	db -1
+
+Unknown_100feb: ; 100feb
+	dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
+	db -1
+
+Unknown_100ff3: ; 100ff3
+	dbwww $80, wdc41, 1, NULL
+	dbwww $80, PlayerName, NAME_LENGTH, NULL
+	dbwww $80, PlayerName, NAME_LENGTH, NULL
+	dbwww $80, PlayerID, 2, NULL
+	dbwww $80, wSecretID, 2, NULL
+	dbwww $80, PlayerGender, 1, NULL
+	dbwww $04, $a603, 8, NULL
+	dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL
+	db -1
+
+Unknown_10102c: ; 10102c
+	dbwww $80, OTPlayerName, NAME_LENGTH, NULL
+	dbwww $80, OTPlayerID, 2, NULL
+	dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL
+	dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL
+	dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
+	db -1
+; 10104f
+
+Function101050: ; 101050
+	call Function10107d
+	ld a, [OTPartyCount]
+rept 2 ; ???
+	ld hl, wc608
+endr
+	ld bc, wc7bb - wc608
+	call Function1010de
+	ld hl, wc7bb
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld a, $07
+	call GetSRAMBank
+	ld hl, wc608
+	ld de, $a001
+	ld bc, wc7bd - wc608
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 10107d
+
+Function10107d: ; 10107d
+	xor a
+	ld hl, wc608
+	ld bc, wc7bd - wc608
+	call ByteFill
+	ld hl, OTPlayerName
+	ld de, wc608
+	ld bc, NAME_LENGTH
+	call CopyBytes
+	ld hl, wd271
+	ld a, [hli]
+	ld [wc608 + 11], a
+	ld a, [hl]
+	ld [wc608 + 12], a
+	ld hl, OTPartyMonNicknames
+	ld de, wc608 + 13
+	ld bc, NAME_LENGTH
+	call .CopyAllFromOT
+	ld hl, OTPartyMonOT
+	ld de, OTClassName + 1
+	ld bc, NAME_LENGTH
+	call .CopyAllFromOT
+	ld hl, OTPartyMon1Species
+	ld de, $c699
+	ld bc, PARTYMON_STRUCT_LENGTH
+	call .CopyAllFromOT
+	ld a, $50
+	ld [wc7b9], a
+	ld a, $33
+	ld [wc7ba], a
+	ret
+; 1010cd
+
+.CopyAllFromOT: ; 1010cd
+	push hl
+	ld hl, 0
+	ld a, [OTPartyCount]
+	call AddNTimes
+	ld b, h
+	ld c, l
+	pop hl
+	call CopyBytes
+	ret
+; 1010de
+
+Function1010de: ; 1010de
+	push hl
+	push bc
+	ld de, 0
+.loop
+	ld a, [hli]
+	add e
+	ld e, a
+	ld a, d
+	adc 0
+	ld d, a
+	dec bc
+	ld a, b
+	or c
+	jr nz, .loop
+	pop bc
+	pop hl
+	ret
+; 1010f2
+
+LoadSelectedPartiesForColosseum: ; 1010f2
+	xor a
+	ld hl, StringBuffer2
+	ld bc, 9
+	call ByteFill
+	ld hl, wPlayerMonSelection
+	ld de, PartyCount
+	call .CopyThreeSpecies
+	ld hl, wPlayerMonSelection
+	ld de, PartyMon1Species
+	call .CopyPartyStruct
+	ld hl, wPlayerMonSelection
+	ld de, PartyMonOT
+	call .CopyName
+	ld hl, wPlayerMonSelection
+	ld de, PartyMonNicknames
+	call .CopyName
+	ld hl, wOTMonSelection
+	ld de, OTPartyCount
+	call .CopyThreeSpecies
+	ld hl, wOTMonSelection
+	ld de, OTPartyMon1Species
+	call .CopyPartyStruct
+	ld hl, wOTMonSelection
+	ld de, OTPartyMonOT
+	call .CopyName
+	ld hl, wOTMonSelection
+	ld de, OTPartyMonNicknames
+	call .CopyName
+	ret
+; 101145
+
+.CopyThreeSpecies: ; 101145
+; Load the 3 choices to the buffer
+	push de
+	ld bc, StringBuffer2 + 6
+	xor a
+.party_loop
+	push af
+	call .GetNthSpecies
+	ld [bc], a
+	inc bc
+	pop af
+	inc a
+	cp 3
+	jr nz, .party_loop
+	pop de
+; Copy the 3 choices to the party
+	ld a, 3
+	ld [de], a
+	inc de
+	ld hl, StringBuffer2 + 6
+	ld bc, 3
+	call CopyBytes
+	ld a, $ff
+	ld [de], a
+	ret
+; 101168
+
+.GetNthSpecies: ; 101168
+; Preserves hl and de
+; Get the index of the Nth selection
+	push hl
+	add l
+	ld l, a
+	ld a, h
+	adc 0
+	ld h, a
+	ld a, [hl]
+	pop hl
+; Get the corresponding species
+	push de
+	inc de
+	add e
+	ld e, a
+	ld a, d
+	adc 0
+	ld d, a
+	ld a, [de]
+	pop de
+	ret
+; 10117c
+
+.CopyPartyStruct: ; 10117c
+	ld bc, PARTYMON_STRUCT_LENGTH
+	jr .ContinueCopy
+
+.CopyName: ; 101181
+	ld bc, NAME_LENGTH
+
+.ContinueCopy:
+	; Copy, via wc608...
+	ld a, wc608 % $100
+	ld [StringBuffer2], a
+	ld a, wc608 / $100
+	ld [StringBuffer2 + 1], a
+	; ... bc bytes...
+	ld a, c
+	ld [StringBuffer2 + 2], a
+	ld a, b
+	ld [StringBuffer2 + 3], a
+	; ... to de...
+	ld a, e
+	ld [StringBuffer2 + 4], a
+	ld a, d
+	ld [StringBuffer2 + 5], a
+	; ... 3 times.
+	ld a, 3
+.big_copy_loop
+	push af
+	ld a, [hli]
+	push hl
+	push af
+	call .GetDestinationAddress
+	call .GetCopySize
+	pop af
+	call AddNTimes
+	ld a, [StringBuffer2]
+	ld e, a
+	ld a, [StringBuffer2 + 1]
+	ld d, a
+	call CopyBytes
+	ld a, e
+	ld [StringBuffer2], a
+	ld a, d
+	ld [StringBuffer2 + 1], a
+	pop hl
+	pop af
+	dec a
+	jr nz, .big_copy_loop
+	call .GetCopySize
+	ld a, 3
+	ld hl, 0
+	call AddNTimes
+	ld b, h
+	ld c, l
+	call .GetDestinationAddress
+	ld d, h
+	ld e, l
+	ld hl, wc608
+	call CopyBytes
+	ret
+; 1011df
+
+.GetDestinationAddress: ; 1011df
+	ld a, [StringBuffer2 + 4]
+	ld l, a
+	ld a, [StringBuffer2 + 5]
+	ld h, a
+	ret
+; 1011e8
+
+.GetCopySize: ; 1011e8
+	ld a, [StringBuffer2 + 2]
+	ld c, a
+	ld a, [StringBuffer2 + 3]
+	ld b, a
+	ret
+; 1011f1
+
+Function1011f1: ; 1011f1
+	ld a, $04
+	call GetSRAMBank
+	ld a, [$a60c]
+	ld [wdc41], a
+	call CloseSRAM
+	ld hl, wdc41
+	res 4, [hl]
+	ld hl, GameTimerPause
+	bit 7, [hl]
+	jr z, .skip
+	ld hl, wdc41
+	set 4, [hl]
+
+.skip
+	call Function10209c
+	xor a
+	ld [wdc5f], a
+	ld [wdc60], a
+	ld a, LINK_MOBILE
+	ld [wLinkMode], a
+	ret
+; 101220
+
+Function101220: ; 101220
+	xor a
+	ld [wLinkMode], a
+	ret
+; 101225
+
+Function101225: ; 101225
+	ld d, 1
+	ld e, BANK(Jumptable_101297)
+	ld bc, Jumptable_101297
+	call Function100000
+	jr Function10123d
+
+Function101231: ; 101231
+	ld d, 2
+	ld e, BANK(Jumptable_101297)
+	ld bc, Jumptable_101297
+	call Function100000
+	jr Function10123d
+
+Function10123d: ; 10123d
+	xor a
+	ld [ScriptVar], a
+	ld a, c
+	ld hl, Jumptable_101247
+	rst JumpTable
+	ret
+; 101247
+
+Jumptable_101247: ; 101247
+	dw Function101251
+	dw Function10127d
+	dw Function10127c
+	dw Function10126c
+	dw Function101265
+; 101251
+
+Function101251: ; 101251
+	call UpdateSprites
+	call RefreshScreen
+	ld hl, UnknownText_0x1021f4
+	call Function1021e0
+	call Function1020ea
+	ret c
+	call Function102142
+	ret
+; 101265
+
+Function101265: ; 101265
+	ld hl, UnknownText_0x1021ef
+	call Function1021e0
+	ret
+; 10126c
+
+Function10126c: ; 10126c
+	call UpdateSprites
+	callba Script_reloadmappart
+	ld hl, UnknownText_0x1021f4
+	call Function1021e0
+	ret
+; 10127c
+
+Function10127c: ; 10127c
+	ret
+; 10127d
+
+Function10127d: ; 10127d
+	ret
+; 10127e
+
+Function10127e: ; 10127e
+	ld a, [wdc5f]
+	and a
+	jr z, .zero
+	cp 1
+	ld c, $27
+	jr z, .load
+	cp 2
+	ld c, $37
+	jr z, .load
+.zero
+	ld c, 0
+.load
+	ld a, c
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101297
+
+Jumptable_101297: ; 101297
+	dw Function101a97                         ; 00
+	dw Function101ab4                         ; 01
+	dw Function101475                         ; 02
+	dw Function101b0f                         ; 03
+	dw Function101438                         ; 04
+	dw Function101b2b                         ; 05
+	dw Function101b59                         ; 06
+	dw Function101475                         ; 07
+	dw Function101b70                         ; 08
+	dw Function101438                         ; 09
+	dw Function101b8f                         ; 0a
+	dw Function101d7b                         ; 0b
+	dw Function101d95                         ; 0c
+	dw Function101475                         ; 0d
+	dw Function101db2                         ; 0e
+	dw Function101e4f                         ; 0f
+	dw Function101475                         ; 10
+	dw Function101e64                         ; 11
+	dw Function101e4f                         ; 12
+	dw Function101475                         ; 13
+	dw Function101e64                         ; 14
+	dw Function101d95                         ; 15
+	dw Function101475                         ; 16
+	dw Function101db2                         ; 17
+	dw Function101dd0                         ; 18
+	dw Function101de3                         ; 19
+	dw Function101e39                         ; 1a
+	dw Function101e09                         ; 1b
+	dw Function101e4f                         ; 1c
+	dw Function101475                         ; 1d
+	dw Function101e64                         ; 1e
+	dw Function101d95                         ; 1f
+	dw Function101475                         ; 20
+	dw Function101db2                         ; 21
+	dw Function101e09                         ; 22
+	dw Function101e31                         ; 23
+	dw Function101bc8                         ; 24
+	dw Function101438                         ; 25
+	dw Function101be5                         ; 26
+	dw Function101ac6                         ; 27
+	dw Function101ab4                         ; 28
+	dw Function101475                         ; 29
+	dw Function101c11                         ; 2a
+	dw Function1014f4                         ; 2b
+	dw Function101cc8                         ; 2c
+	dw Function1014e2                         ; 2d
+	dw Function1014e2                         ; 2e
+	dw Function101d10                         ; 2f
+	dw Function101d2a                         ; 30
+	dw Function101d2a                         ; 31
+	dw Function101507                         ; 32
+	dw Function10156d                         ; 33
+	dw Function101557                         ; 34
+	dw Function10158a                         ; 35
+	dw Function101c42                         ; 36
+	dw Function101aed                         ; 37
+	dw Function101ab4                         ; 38
+	dw Function101475                         ; 39
+	dw Function101c2b                         ; 3a
+	dw Function1014f4                         ; 3b
+	dw Function101cdf                         ; 3c
+	dw Function1014e2                         ; 3d
+	dw Function1014e2                         ; 3e
+	dw Function101d1e                         ; 3f
+	dw Function101d2a                         ; 40
+	dw Function101d2a                         ; 41
+	dw Function101507                         ; 42
+	dw Function10156d                         ; 43
+	dw Function101544                         ; 44
+	dw Function10158a                         ; 45
+	dw Function101c42                         ; 46
+	dw Function101c50                         ; 47
+	dw Function1014ce                         ; 48
+	dw Function101cf6                         ; 49
+	dw Function101826                         ; 4a
+	dw Function1017e4                         ; 4b
+	dw Function1017f1                         ; 4c
+	dw Function1018a8                         ; 4d
+	dw Function1018d6                         ; 4e
+	dw Function1017e4                         ; 4f
+	dw Function1017f1                         ; 50
+	dw Function1018e1                         ; 51
+	dw Function1015df                         ; 52
+	dw Function10167d                         ; 53
+	dw Function10168a                         ; 54
+	dw Function10162a                         ; 55
+	dw Function1015be                         ; 56
+	dw Function10167d                         ; 57
+	dw Function10168a                         ; 58
+	dw Function10161f                         ; 59
+	dw Function10159d                         ; 5a
+	dw Function10167d                         ; 5b
+	dw Function10168a                         ; 5c
+	dw Function101600                         ; 5d
+	dw Function101d03                         ; 5e
+	dw Function101d6b                         ; 5f
+	dw Function10159d                         ; 60
+	dw Function1014ce                         ; 61
+	dw Function10168e                         ; 62
+	dw Function101600                         ; 63
+	dw Function101913                         ; 64
+	dw Function10194b                         ; 65
+	dw _SelectMonsForMobileBattle             ; 66
+	dw Function1017e4                         ; 67
+	dw Function1017f5                         ; 68
+	dw _StartMobileBattle                     ; 69
+	dw Function101537                         ; 6a
+	dw Function101571                         ; 6b
+	dw Function101c92                         ; 6c
+	dw Function10152a                         ; 6d
+	dw Function101571                         ; 6e
+	dw Function101a4f                         ; 6f
+	dw Function101cbc                         ; 70
+	dw Function101c62                         ; 71
+	dw Function101537                         ; 72
+	dw Function101571                         ; 73
+	dw Function101c92                         ; 74
+	dw Function10152a                         ; 75
+	dw Function101571                         ; 76
+	dw Function101ca0                         ; 77
+	dw Function101475                         ; 78
+	dw Function101cbc                         ; 79
+; 10138b
+
+Function10138b: ; 10138b
+	callba Function8adcc
+	ld c, 0
+	jr c, .asm_101396
+	inc c
+
+.asm_101396
+	sla c
+	ld a, [wcd2f]
+	and a
+	jr z, .asm_10139f
+	inc c
+
+.asm_10139f
+	sla c
+	ld a, [wcd21]
+	cp $01
+	jr z, .asm_1013a9
+	inc c
+
+.asm_1013a9
+	ret
+; 1013aa
+
+Function1013aa: ; 1013aa
+	call ClearBGPalettes
+	call Call_ExitMenu
+	call ReloadTilesetAndPalettes
+	callba Function106464
+	call UpdateSprites
+	call FinishExitMenu
+	ret
+; 1013c0
+
+Function1013c0: ; 1013c0
+	callba BlankScreen
+	callba MobileFunc_106462
+	callba Function106464
+	call FinishExitMenu
+	ret
+; 1013d6
+
+Function1013d6: ; 1013d6
+	callba HDMATransferAttrMapAndTileMapToWRAMBank3
+	ret
+; 1013dd
+
+Function1013dd: ; 1013dd
+	call CGBOnly_LoadEDTile
+	ret
+; 1013e1
+
+Function1013e1: ; 1013e1 ; unreferenced
+	push de
+	inc de
+	ld b, a
+	ld c, 0
+.asm_1013e6
+	inc c
+	ld a, [hli]
+	ld [de], a
+	inc de
+	and a
+	jr z, .asm_1013f1
+	dec b
+	jr nz, .asm_1013e6
+	scf
+
+.asm_1013f1
+	pop de
+	ld a, c
+	ld [de], a
+	ret
+; 1013f5
+
+Function1013f5: ; 1013f5
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld c, a
+.asm_1013f9
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .asm_1013f9
+	ret
+; 101400
+
+Function101400: ; 101400 ; unreferenced
+	ld a, [de]
+	inc de
+	cp [hl]
+	jr nz, asm_101416
+	inc hl
+
+Function101406: ; 101406
+	ld c, a
+	ld b, 0
+.asm_101409
+	ld a, [de]
+	inc de
+	cp [hl]
+	jr nz, asm_101416
+	inc hl
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_101409
+	and a
+	ret
+
+asm_101416
+	scf
+	ret
+; 101418
+
+Function101418: ; 101418
+	call GetJoypad
+	ld a, [hJoyDown]
+	and SELECT + A_BUTTON
+	cp SELECT + A_BUTTON
+	jr z, .asm_101425
+	xor a
+	ret
+
+.asm_101425
+	ld a, $f7
+	ld [wcd2b], a
+	scf
+	ret
+; 10142c
+
+Function10142c: ; 10142c
+	ld a, $01
+	ld [wc305], a
+	callba Function115e18
+	ret
+; 101438
+
+Function101438: ; 101438
+	ld hl, wcd29
+	set 6, [hl]
+	ld a, [wcd26]
+	ld hl, Jumptable_101457
+	rst JumpTable
+	ld a, [wcd26]
+	bit 7, a
+	ret z
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101457
+
+Jumptable_101457: ; 101457
+	dw Function10145b
+	dw Function101467
+; 10145b
+
+Function10145b: ; 10145b
+	ld a, $3c
+	ld [wcd42], a
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+
+Function101467: ; 101467
+	ld hl, wcd42
+	dec [hl]
+	ret nz
+	ld a, [wcd26]
+	set 7, a
+	ld [wcd26], a
+	ret
+; 101475
+
+Function101475: ; 101475
+	ld hl, wcd29
+	set 6, [hl]
+	ld a, [wcd26]
+	ld hl, Jumptable_101494
+	rst JumpTable
+	ld a, [wcd26]
+	bit 7, a
+	ret z
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101494
+
+Jumptable_101494: ; 101494
+	dw Function10149a
+	dw Function1014a6
+	dw Function1014b7
+; 10149a
+
+Function10149a: ; 10149a
+	ld a, $28
+	ld [wcd42], a
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+
+Function1014a6: ; 1014a6
+	ld hl, wcd42
+	dec [hl]
+	ret nz
+	ld a, $50
+	ld [wcd42], a
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+
+Function1014b7: ; 1014b7
+	call GetJoypad
+	ld a, [hJoyPressed]
+	and $03
+	jr nz, .asm_1014c5
+	ld hl, wcd42
+	dec [hl]
+	ret nz
+
+.asm_1014c5
+	ld a, [wcd26]
+	set 7, a
+	ld [wcd26], a
+	ret
+; 1014ce
+
+Function1014ce: ; 1014ce
+	callba Function100720
+	callba StartMobileInactivityTimer
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1014e2
+
+Function1014e2: ; 1014e2
+	ld hl, wcd29
+	set 6, [hl]
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1014f4
+
+Function1014f4: ; 1014f4
+	callba EnableMobile
+	ld hl, wcd29
+	set 6, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101507
+
+Function101507: ; 101507
+	ld de, wcd30
+	ld hl, $40
+	ld bc, $40
+	ld a, $02
+	call Function3e32
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10151d
+
+Function10151d: ; 10151d ; unreferenced
+	ld a, $34
+	call Function3e32
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10152a
+
+Function10152a: ; 10152a
+	ld a, $36
+	call Function3e32
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101537
+
+Function101537: ; 101537
+	ld a, $0a
+	call Function3e32
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101544
+
+Function101544: ; 101544
+	callba StartMobileInactivityTimer
+	ld a, $12
+	call Function3e32
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101557
+
+Function101557: ; 101557
+	callba StartMobileInactivityTimer
+	ld hl, wcd53
+	ld a, $08
+	call Function3e32
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10156d
+
+Function10156d: ; 10156d
+	call Function101418
+	ret c
+
+Function101571: ; 101571
+	callba Function10032e
+	ret c
+	ret z
+	ld a, e
+	cp $01
+	jr z, .asm_101582
+	ld [wcd2b], a
+	ret
+
+.asm_101582
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10158a
+
+Function10158a: ; 10158a
+	callba IncrementMobileInactivityTimerBy1Frame
+	ld a, [wMobileInactivityTimerMinutes]
+	cp $0a
+	jr c, Function10156d
+	ld a, $fb
+	ld [wcd2b], a
+	ret
+; 10159d
+
+Function10159d: ; 10159d
+	ld de, wc608
+	callba Function100edf
+	ld de, wc608
+	ld a, $05
+	ld hl, w5_d800
+	call Function10174c
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1015be
+
+Function1015be: ; 1015be
+	ld de, wc608
+	callba Function100eed
+	ld de, wc608
+	ld a, $05
+	ld hl, w5_d800
+	call Function10174c
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1015df
+
+Function1015df: ; 1015df
+	ld de, wc608
+	callba Function100ef4
+	ld de, wc608
+	ld a, $05
+	ld hl, w5_d800
+	call Function10174c
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101600
+
+Function101600: ; 101600
+	ld hl, w5_d800
+	ld de, wc608
+	ld bc, $1e0
+	ld a, $05
+	call FarCopyWRAM
+	ld de, wc608
+	callba Function100ee6
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10161f
+
+Function10161f: ; 10161f
+	call Function101649
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10162a
+
+Function10162a: ; 10162a
+	call Function101663
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101635
+
+Function101635: ; 101635
+	ld de, wc608
+	ld bc, $1e0
+	call FarCopyWRAM
+	ret
+; 10163f
+
+Function10163f: ; 10163f
+	ld hl, wc608
+	ld bc, $1e0
+	call FarCopyWRAM
+	ret
+; 101649
+
+Function101649: ; 101649
+	ld a, $05
+	ld hl, w5_d800
+	call Function101635
+	ld a, $05
+	ld de, w5_da00
+	call Function10163f
+	ret
+; 10165a
+
+Function10165a: ; 10165a
+	ld a, $05
+	ld hl, w5_da00
+	call Function101635
+	ret
+; 101663
+
+Function101663: ; 101663
+	ld a, $05
+	ld hl, w5_d800
+	call Function101635
+	ld a, $05
+	ld de, w5_dc00
+	call Function10163f
+	ret
+; 101674
+
+Function101674: ; 101674 ; unreferenced
+	ld a, $05
+	ld hl, w5_dc00
+	call Function101635
+	ret
+; 10167d
+
+Function10167d: ; 10167d
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10168a
+
+Function10168a: ; 10168a
+	call Function101418
+	ret c
+
+Function10168e: ; 10168e
+	ld b, 0
+	ld c, $01
+	callba Function10079c
+	ret c
+	ld c, $01
+	ld b, $03
+	callba AdvanceMobileInactivityTimerAndCheckExpired
+	ret c
+	ld a, [wcd26]
+	ld hl, Jumptable_1016c3
+	rst JumpTable
+	ld hl, wcd29
+	set 6, [hl]
+	ld a, [wcd26]
+	bit 7, a
+	ret z
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1016c3
+
+Jumptable_1016c3: ; 1016c3
+	dw Function1016cf
+	dw Function1016de
+	dw Function1016f8
+	dw Function101705
+	dw Function101719
+	dw Function101724
+; 1016cf
+
+Function1016cf: ; 1016cf
+	ld hl, wcd3a
+	inc [hl]
+	call Function10176f
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+	ret
+; 1016de
+
+Function1016de: ; 1016de
+	call Function10177b
+	jr nc, .asm_1016eb
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+	ret
+
+.asm_1016eb
+	ld a, $ff
+	ld [wcd39], a
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+	ret
+; 1016f8
+
+Function1016f8: ; 1016f8
+	ld a, 0
+	ld [wcd27], a
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+	ret
+; 101705
+
+Function101705: ; 101705
+	callba Function100382
+	ld a, [wcd27]
+	bit 7, a
+	ret z
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+	ret
+; 101719
+
+Function101719: ; 101719
+	call Function1017c7
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+	ret
+; 101724
+
+Function101724: ; 101724
+	ld a, [wcd39]
+	cp $ff
+	jr z, .asm_101731
+	ld a, 0
+	ld [wcd26], a
+	ret
+
+.asm_101731
+	ld a, [wcd26]
+	set 7, a
+	ld [wcd26], a
+	ret
+; 10173a
+
+Unknown_10173a:
+	db $50
+
+Function10173b: ; 10173b
+	push bc
+	push af
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [Unknown_10173a]
+	ld c, a
+	ld b, 0
+	pop af
+	call AddNTimes
+	pop bc
+	ret
+; 10174c
+
+Function10174c: ; 10174c
+	ld [wcd3d], a
+	ld a, l
+	ld [wcd3e], a
+	ld a, h
+	ld [wcd3f], a
+	ld a, e
+	ld [wcd3b], a
+	ld a, d
+	ld [wcd3c], a
+	ld a, c
+	ld [wcd40], a
+	ld a, b
+	ld [wcd41], a
+	xor a
+	ld [wcd39], a
+	ld [wcd3a], a
+	ret
+; 10176f
+
+Function10176f: ; 10176f
+	ld hl, wccb4
+	ld bc, $54
+	ld a, $11
+	call ByteFill
+	ret
+; 10177b
+
+Function10177b: ; 10177b
+	ld a, [Unknown_10173a]
+	ld c, a
+	ld b, 0
+	ld a, [wcd3a]
+	ld hl, 0
+	call AddNTimes
+	ld e, l
+	ld d, h
+	ld hl, wcd40
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, l
+	sub e
+	ld l, a
+	ld a, h
+	sbc d
+	ld h, a
+	jr c, .asm_1017a0
+	add hl, bc
+	call Function1017b0
+	scf
+	ret
+
+.asm_1017a0
+	ld a, $ff
+	ld [wcd39], a
+	add hl, bc
+	ld a, h
+	or l
+	ret z
+	ld c, l
+	ld b, h
+	call Function1017b0
+	xor a
+	ret
+; 1017b0
+
+Function1017b0: ; 1017b0
+	ld a, c
+	ld [wccb4], a
+	push bc
+	ld a, [wcd3a]
+	dec a
+	ld hl, wcd3b
+	call Function10173b
+	pop bc
+	ld de, wccb5
+	call CopyBytes
+	ret
+; 1017c7
+
+Function1017c7: ; 1017c7
+	ld a, [wcc60]
+	ld c, a
+	ld b, 0
+	ld a, [wcd3a]
+	dec a
+	ld hl, wcd3e
+	call Function10173b
+	ld e, l
+	ld d, h
+	ld hl, wcc61
+	ld a, [wcd3d]
+	call FarCopyWRAM
+	and a
+	ret
+; 1017e4
+
+Function1017e4: ; 1017e4
+	ld a, 0
+	ld [wcd27], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1017f1
+
+Function1017f1: ; 1017f1
+	call Function101418
+	ret c
+
+Function1017f5: ; 1017f5
+	ld b, 0
+	ld c, $01
+	callba Function10079c
+	ret c
+	ld c, $01
+	ld b, $03
+	callba AdvanceMobileInactivityTimerAndCheckExpired
+	ret c
+	callba Function100382
+	ld a, [wcd27]
+	bit 7, a
+	jr nz, .next
+	ld hl, wcd29
+	set 6, [hl]
+	ret
+
+.next
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101826
+
+Function101826: ; 101826
+	ld a, [wcd21]
+	cp $02
+	jr z, .asm_101833
+	cp $01
+	jr z, .asm_101844
+	jr .asm_101869
+
+.asm_101833
+	ld hl, Unknown_10186f
+	ld de, wccb4
+	call Function1013f5
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101844
+	callba Function103654
+	ld a, c
+	ld hl, Unknown_101882
+	cp $01
+	jr z, .asm_10185b
+	ld hl, Unknown_101895
+	cp $02
+	jr z, .asm_10185b
+	jr .asm_101869
+
+.asm_10185b
+	ld de, wccb4
+	call Function1013f5
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101869
+	ld a, $fe
+	ld [wcd2b], a
+	ret
+; 10186f
+
+
+SECTION "ascii 10186f", ROMX
+
+	charmap " ", $20 ; revert to ascii
+
+Unknown_10186f:
+	db .end - @
+	db $19, $73, $09, $13, "trade_crystal"
+.end	db 0
+
+Unknown_101882:
+	db .end - @
+	db $19, $67, $10, $01, "free__crystal"
+.end	db 0
+
+Unknown_101895:
+	db .end - @
+	db $19, $67, $10, $01, "limit_crystal"
+.end	db 0
+; 1018a8
+
+
+SECTION "bank40_3", ROMX
+
+Function1018a8: ; 1018a8
+	ld hl, wccb5
+	ld de, wcc61
+	ld a, $04
+	call Function101406
+	jr c, .asm_1018d0
+	ld hl, wccb9
+	ld de, wcc65
+	ld a, $06
+	call Function101406
+	jr c, .asm_1018ca
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_1018ca
+	ld a, $f6
+	ld [wcd2b], a
+	ret
+
+.asm_1018d0
+	ld a, $f5
+	ld [wcd2b], a
+	ret
+; 1018d6
+
+Function1018d6: ; 1018d6
+	call Function1018ec
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1018e1
+
+Function1018e1: ; 1018e1
+	call Function1018fb
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1018ec
+
+Function1018ec: ; 1018ec
+	ld a, $0a
+	ld hl, wccb4
+	ld [hli], a
+	ld c, a
+.asm_1018f3
+	call Random
+	ld [hli], a
+	dec c
+	jr nz, .asm_1018f3
+	ret
+; 1018fb
+
+Function1018fb: ; 1018fb
+	ld a, [wcd2f]
+	and a
+	jr z, .asm_101906
+	ld hl, wcc61
+	jr .asm_101909
+
+.asm_101906
+	ld hl, wccb5
+
+.asm_101909
+	ld de, LinkBattleRNs
+	ld bc, 10
+	call CopyBytes
+	ret
+; 101913
+
+Function101913: ; 101913
+	ld hl, wcd2a
+	set 0, [hl]
+	xor a
+	ld [wc30d], a
+	ld hl, wcd29
+	res 4, [hl]
+	xor a
+	ld [wc305], a
+	ld hl, wcd29
+	res 7, [hl]
+	ld a, $90
+	ld [hWY], a
+	ld a, [wcd21]
+	cp $01
+	jr z, .asm_10193f
+	cp $02
+	jr z, .asm_101945
+	ld a, $71
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_10193f
+	ld a, $66
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101945
+	ld a, $65
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10194b
+
+Function10194b: ; 10194b
+	call DisableSpriteUpdates
+	call ClearSprites
+	callba Function1021f9
+	ld hl, wcd29
+	bit 3, [hl]
+	jr nz, .asm_101967
+	call Function1013c0
+	ld a, $71
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101967
+	ld a, $60
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 10196d
+
+_SelectMonsForMobileBattle: ; 10196d
+	callba BlankScreen
+	callba Mobile_CommunicationStandby
+	ld hl, wcd29
+	set 5, [hl]
+	ld hl, wcd2a
+	set 6, [hl]
+	ld a, $06
+	ld [wccb4], a
+	ld hl, wPlayerMonSelection
+	ld de, wccb5
+	ld bc, 3
+	call CopyBytes
+	ld hl, wcd6c
+	ld a, [hli]
+	ld [wccb8], a
+	ld a, [hli]
+	ld [wccb9], a
+	ld a, [hl]
+	ld [wccba], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1019ab
+
+_StartMobileBattle: ; 1019ab
+	call CopyOtherPlayersBattleMonSelection
+	callba Function100754
+	xor a
+	ld [wdc5f], a
+	ld [wdc60], a
+	callba BlankScreen
+	call SpeechTextBox
+	callba Function100846
+	ld c, 120
+	call DelayFrames
+	callba ClearTileMap
+	call .CopyOTDetails
+	call StartMobileBattle
+	ld a, [wcd2b]
+	cp $fc
+	jr nz, .asm_1019e6
+	xor a
+	ld [wcd2b], a
+.asm_1019e6
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1019ee
+
+.CopyOTDetails: ; 1019ee
+	ld a, [rSVBK]
+	push af
+	ld a, 5
+	ld [rSVBK], a
+
+	ld bc, w5_dc0d
+	ld de, w5_dc11
+	callba GetMobileOTTrainerClass
+
+	pop af
+	ld [rSVBK], a
+
+	ld a, c
+	ld [OtherTrainerClass], a
+	ld hl, OTPlayerName
+	ld de, OTClassName
+	ld bc, NAME_LENGTH
+	call CopyBytes
+	ld a, [wcd2f]
+	and a
+	ld a, 2
+	jr z, .got_link_player_number
+	ld a, 1
+.got_link_player_number
+	ld [hLinkPlayerNumber], a
+	ret
+; 101a21
+
+StartMobileBattle: ; 101a21
+	; force stereo and fast text speed
+	ld hl, Options
+	ld a, [hl]
+	push af
+	and (1 << STEREO)
+	or 1 ; 1 frame per character i.e. fast text
+	ld [hl], a
+	ld a, 1
+	ld [wDisableTextAcceleration], a
+	callba BattleIntro
+	callba DoBattle
+	callba ShowLinkBattleParticipantsAfterEnd
+	xor a
+	ld [wDisableTextAcceleration], a
+	ld a, $ff
+	ld [hLinkPlayerNumber], a
+	pop af
+	ld [Options], a
+	ret
+; 101a4f
+
+Function101a4f: ; 101a4f
+	ld a, 1
+	ld [wDisableTextAcceleration], a
+	callba DisplayLinkBattleResult
+	xor a
+	ld [wDisableTextAcceleration], a
+	callba CleanUpBattleRAM
+	callba LoadPokemonData
+	call Function1013c0
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101a75
+
+CopyOtherPlayersBattleMonSelection: ; 101a75
+	ld hl, wcc61
+	ld de, wOTMonSelection
+	ld bc, 3
+	call CopyBytes
+	ld de, wcc64
+	callba Function100772
+	callba Function101050
+	callba LoadSelectedPartiesForColosseum
+	ret
+; 101a97
+
+Function101a97: ; 101a97
+	callba Function115d99
+	ld hl, wcd29
+	set 7, [hl]
+	ld c, $02
+	call Function10142c
+	ld hl, wcd29
+	set 6, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101ab4
+
+Function101ab4: ; 101ab4
+	ld e, $01
+	call Function101ee4
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101ac6
+
+Function101ac6: ; 101ac6
+	callba Function115d99
+	ld hl, wcd29
+	set 7, [hl]
+	ld c, $02
+	call Function10142c
+	ld hl, wcd29
+	set 6, [hl]
+	xor a
+	ld [wcd2f], a
+	ld de, wdc42
+	call Function102068
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101aed
+
+Function101aed: ; 101aed
+	callba Function115d99
+	ld hl, wcd29
+	set 7, [hl]
+	ld c, $02
+	call Function10142c
+	ld hl, wcd29
+	set 6, [hl]
+	ld a, $01
+	ld [wcd2f], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101b0f
+
+Function101b0f: ; 101b0f
+	ld c, 0
+	call Function10142c
+	ld e, $03
+	call Function101ee4
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ld a, 0
+	ld [wcd26], a
+	ret
+; 101b2b
+
+Function101b2b: ; 101b2b
+	callba Function100579
+	ld hl, wcd29
+	set 2, [hl]
+	ld a, [wcd26]
+	bit 7, a
+	ret z
+	call Function1013dd
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMenuCursorY]
+	cp $01
+	jr z, .asm_101b51
+	ld a, $02
+	ld [wcd2b], a
+	ret
+
+.asm_101b51
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101b59
+
+Function101b59: ; 101b59
+	ld c, $02
+	call Function10142c
+	ld e, $02
+	call Function101ee4
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101b70
+
+Function101b70: ; 101b70
+	ld c, $02
+	call Function10142c
+	ld e, $04
+	call Function101ee4
+	ld hl, wcd29
+	set 5, [hl]
+	call UpdateSprites
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ld a, 0
+	ld [wcd26], a
+	ret
+; 101b8f
+
+Function101b8f: ; 101b8f
+	callba Function1005c3
+	ld hl, wcd29
+	set 2, [hl]
+	ld a, [wcd26]
+	bit 7, a
+	ret z
+	call Function1013dd
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMenuCursorY]
+	cp $01
+	jr z, .asm_101bbc
+	ld a, $01
+	ld [wcd2f], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101bbc
+	xor a
+	ld [wcd2f], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101bc8
+
+Function101bc8: ; 101bc8
+	ld c, $02
+	call Function10142c
+	ld e, $08
+	call Function101ee4
+	call Function102048
+	call Function1013dd
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101be5
+
+Function101be5: ; 101be5
+	callba Function100579
+	ld hl, wcd29
+	set 2, [hl]
+	ld a, [wcd26]
+	bit 7, a
+	ret z
+	call Function1013dd
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMenuCursorY]
+	cp $01
+	jr nz, .asm_101c0b
+	ld a, $2a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101c0b
+	ld a, $02
+	ld [wcd2b], a
+	ret
+; 101c11
+
+Function101c11: ; 101c11
+	ld a, $01
+	ld [wdc5f], a
+	ld e, $09
+	call Function101ee4
+	call Function102048
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101c2b
+
+Function101c2b: ; 101c2b
+	ld a, $02
+	ld [wdc5f], a
+	ld e, $07
+	call Function101ee4
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101c42
+
+Function101c42: ; 101c42
+	ld hl, wcd2a
+	set 1, [hl]
+	call Function100665
+	ld a, $47
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101c50
+
+Function101c50: ; 101c50
+	ld e, $0a
+	call Function101ee4
+	ld hl, wcd29
+	set 2, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101c62
+
+Function101c62: ; 101c62
+	callba Function115d99
+	ld hl, wcd29
+	set 7, [hl]
+	ld c, $01
+	call Function10142c
+	xor a
+	ld [wc30d], a
+	ld hl, wcd29
+	res 4, [hl]
+	ld e, $0b
+	call Function101ee4
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ld a, 0
+	ld [wcd26], a
+	ret
+; 101c92
+
+Function101c92: ; 101c92
+	callba Function100675
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101ca0
+
+Function101ca0: ; 101ca0
+	ld c, $02
+	call Function10142c
+	ld e, $0c
+	call Function101ee4
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ld a, 0
+	ld [wcd26], a
+	ret
+; 101cbc
+
+Function101cbc: ; 101cbc
+	ld a, $01
+	ld [wcd2b], a
+	ret
+; 101cc2
+
+Function101cc2: ; 101cc2 ; unreferenced
+	ld a, $02
+	ld [wcd2b], a
+	ret
+; 101cc8
+
+Function101cc8: ; 101cc8
+	ld a, $01
+	ld [wc314], a
+	ld a, $01
+	ld [wc30d], a
+	ld hl, wcd29
+	set 4, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101cdf
+
+Function101cdf: ; 101cdf
+	ld a, $06
+	ld [wc314], a
+	ld a, $01
+	ld [wc30d], a
+	ld hl, wcd29
+	set 4, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101cf6
+
+Function101cf6: ; 101cf6
+	ld a, $0b
+	ld [wc314 + 1], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101d03
+
+Function101d03: ; 101d03
+	ld a, $0e
+	ld [wc314 + 1], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101d10
+
+Function101d10: ; 101d10
+	ld c, $01
+	call Function10142c
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	jr Function101d2a
+
+Function101d1e: ; 101d1e
+	ld c, $03
+	call Function10142c
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+
+Function101d2a: ; 101d2a
+	call Function101418
+	ret c
+	ld hl, wcd29
+	set 6, [hl]
+	ld a, [wcd26]
+	ld hl, Jumptable_101d4d
+	rst JumpTable
+	ld a, [wcd26]
+	bit 7, a
+	ret z
+	ld a, 0
+	ld [wcd26], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101d4d
+
+Jumptable_101d4d: ; 101d4d
+	dw Function101d51
+	dw Function101d5d
+; 101d51
+
+Function101d51: ; 101d51
+	ld a, $3c
+	ld [wcd42], a
+	ld a, [wcd26]
+	inc a
+	ld [wcd26], a
+
+Function101d5d: ; 101d5d
+	ld hl, wcd42
+	dec [hl]
+	ret nz
+	ld a, [wcd26]
+	set 7, a
+	ld [wcd26], a
+	ret
+; 101d6b
+
+Function101d6b: ; 101d6b
+	ld a, [wc30d]
+	and a
+	ret nz
+	ld hl, wcd29
+	res 4, [hl]
+	ld a, $64
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101d7b
+
+Function101d7b: ; 101d7b
+	callba Function10138b
+	ld b, 0
+	ld hl, Unknown_101d8d
+	add hl, bc
+	ld c, [hl]
+	ld a, c
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101d8d
+
+Unknown_101d8d: ; 101d8d
+	db $15, $15, $1f, $1f, $0c, $12, $3a, $3a
+; 101d95
+
+Function101d95: ; 101d95
+	call Function101ee2
+	call LoadStandardMenuDataHeader
+	ld e, $0e
+	call Function101ee4
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ld a, 0
+	ld [wcd26], a
+	ret
+; 101db2
+
+Function101db2: ; 101db2
+	callba Function103302
+	call ExitMenu
+	ld hl, wcd29
+	set 5, [hl]
+	jr c, .asm_101dca
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101dca
+	ld a, $02
+	ld [wcd2b], a
+	ret
+; 101dd0
+
+Function101dd0: ; 101dd0
+	ld hl, wdc41
+	bit 1, [hl]
+	jr nz, .asm_101ddd
+	ld a, $19
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101ddd
+	ld a, $1b
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101de3
+
+Function101de3: ; 101de3
+	call Function101ecc
+	call Function101ead
+	jr c, .asm_101df3
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101df3
+	call Function101e98
+	jr c, .asm_101e00
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101e00
+	call Function101ed3
+	ld a, $02
+	ld [wcd2b], a
+	ret
+; 101e09
+
+Function101e09: ; 101e09
+	call Function101ead
+	jr c, .asm_101e16
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101e16
+	call Function101ecc
+	call Function101e98
+	push af
+	call Function101ed3
+	pop af
+	jr c, .asm_101e2b
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101e2b
+	ld a, $02
+	ld [wcd2b], a
+	ret
+; 101e31
+
+Function101e31: ; 101e31
+	ld a, $3a
+	ld [wMobileCommsJumptableIndex], a
+	jp Function101c2b
+; 101e39
+
+Function101e39: ; 101e39
+	call Function1020bf
+	push af
+	call Function101ed3
+	pop af
+	jr c, .asm_101e49
+	ld a, $2a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101e49
+	ld a, $02
+	ld [wcd2b], a
+	ret
+; 101e4f
+
+Function101e4f: ; 101e4f
+	ld e, $06
+	call Function101ee4
+	call Function1013d6
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ld a, 0
+	ld [wcd26], a
+	ret
+; 101e64
+
+Function101e64: ; 101e64
+	call Function101ecc
+	call Function1020a8
+	push af
+	call Function101ed3
+	pop af
+	jr c, .asm_101e77
+	ld a, $24
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_101e77
+	ld hl, wcd29
+	set 5, [hl]
+	ld a, $02
+	ld [wcd2b], a
+	ret
+; 101e82
+
+Function101e82: ; 101e82 ; unreferenced
+	call Function101ecc
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101e8d
+
+Function101e8d: ; 101e8d ; unreferenced
+	call Function101ed3
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 101e98
+
+Function101e98: ; 101e98
+	call ClearSprites
+	callba Function8adb3
+	ret c
+	ld hl, GameTimerPause
+	set 7, [hl]
+	ld hl, wdc41
+	set 4, [hl]
+	ret
+; 101ead
+
+Function101ead: ; 101ead
+	ld hl, GameTimerPause
+	bit 7, [hl]
+	jr nz, .asm_101ec8
+	ld hl, wdc41
+	bit 2, [hl]
+	jr z, .asm_101eca
+	ld a, [wcd2f]
+	and a
+	jr nz, .asm_101ec8
+	ld hl, wdc41
+	bit 1, [hl]
+	jr z, .asm_101eca
+
+.asm_101ec8
+	xor a
+	ret
+
+.asm_101eca
+	scf
+	ret
+; 101ecc
+
+Function101ecc: ; 101ecc
+	call Function101ee2
+	call FadeToMenu
+	ret
+; 101ed3
+
+Function101ed3: ; 101ed3
+	call Function1013aa
+	callba Function115d99
+	ld hl, wcd29
+	set 7, [hl]
+	ret
+; 101ee2
+
+Function101ee2: ; 101ee2
+	ld e, 0
+
+Function101ee4: ; 101ee4
+	ld d, 0
+	ld hl, Unknown_101ef5
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld d, [hl]
+	ld e, a
+	callba Function100504
+	ret
+; 101ef5
+
+Unknown_101ef5: ; 101ef5
+	dw String_101f13
+	dw String_101f14
+	dw String_101f32
+	dw String_101f4f
+	dw String_101f69
+	dw String_101f81
+	dw String_101f93
+	dw String_101faa
+	dw String_101fc5
+	dw String_101fd2
+	dw String_101fe1
+	dw String_101fef
+	dw String_102000
+	dw String_10200c
+	dw String_102014
+
+String_101f13: ; 101f13
+	db "@"
+
+String_101f14: ; 101f14
+	db   "モバイルアダプタを つかって"
+	next "おともだちと つうしんします@"
+
+String_101f32: ; 101f32
+	db   "でんわを かけるひとには"
+	next "つうわりょうきんが かかります@"
+
+String_101f4f: ; 101f4f
+	db   "モバイルアダプタの じゅんびは"
+	next "できて いますか?@"
+
+String_101f69: ; 101f69
+	db   "あなたが おともだちに"
+	next "でんわを かけますか?@"
+
+String_101f81: ; 101f81
+	db   "めいしフ,ルダーを"
+	next "つかいますか?@"
+
+String_101f93: ; 101f93
+	db   "でんわばんごうを にゅうりょく"
+	next "してください@"
+
+String_101faa: ; 101faa
+	db   "それでは おともだちからの"
+	next "でんわを おまちします…@"
+
+String_101fc5: ; 101fc5
+	next "に でんわを かけます@"
+
+String_101fd2: ; 101fd2
+	next "に でんわを かけています@"
+
+String_101fe1: ; 101fe1
+	db   "でんわが つながりました!@"
+
+String_101fef: ; 101fef
+	db   "つうわを"
+	next "しゅうりょう します…@"
+
+String_102000: ; 102000
+	db   "つうしん しゅうりょう@"
+
+String_10200c: ; 10200c
+	db   "つうわ じかん@"
+
+String_102014: ; 102014
+	db   "それでは つうしんの"
+	next "せっていを してください@"
+; 10202c
+
+Function10202c: ; 10202c
+	callba Function115d99
+	ld hl, wcd29
+	set 7, [hl]
+	ld c, $02
+	call Function10142c
+	ld e, $0d
+	call Function101ee4
+	hlcoord 4, 4
+	call Function100681
+	ret
+; 102048
+
+Function102048: ; 102048
+	call Function10204c
+	ret
+; 10204c
+
+Function10204c: ; 10204c
+	hlcoord 3, 2
+	ld c, $10
+	ld de, wcd53
+.asm_102054
+	ld a, [de]
+	inc de
+	and a
+	jr z, .asm_102067
+	sub $30
+	jr c, .asm_102067
+	cp $0a
+	jr nc, .asm_102067
+	add $f6
+	ld [hli], a
+	dec c
+	jr nz, .asm_102054
+
+.asm_102067
+	ret
+; 102068
+
+Function102068: ; 102068
+	ld hl, wcd53
+	ld c, $08
+.asm_10206d
+	ld a, [de]
+	call Function102080
+	jr c, .asm_10207f
+	ld a, [de]
+	swap a
+	call Function102080
+	jr c, .asm_10207f
+	inc de
+	dec c
+	jr nz, .asm_10206d
+
+.asm_10207f
+	ret
+; 102080
+
+Function102080: ; 102080
+	and $0f
+	cp $0f
+	jr z, .asm_10208a
+	add $30
+	ld [hli], a
+	ret
+
+.asm_10208a
+	ld [hl], 0
+	scf
+	ret
+; 10208e
+
+Function10208e: ; 10208e
+	push de
+	ld h, d
+	ld l, e
+	ld de, wdc42
+	ld bc, 8
+	call CopyBytes
+	pop de
+	ret
+; 10209c
+
+Function10209c: ; 10209c
+	ld a, $ff
+	ld hl, wdc42
+	ld bc, 8
+	call ByteFill
+	ret
+; 1020a8
+
+Function1020a8: ; 1020a8
+	call Function10209c
+	ld c, $01
+	ld de, wdc42
+	callba Function17a68f
+	ret c
+	call Function10208e
+	call Function102068
+	xor a
+	ret
+; 1020bf
+
+Function1020bf: ; 1020bf
+	call ClearSprites
+	callba Function8aba9
+	ld a, c
+	and a
+	jr z, .asm_1020e8
+	dec a
+	ld hl, $a04c
+	ld bc, $25
+	call AddNTimes
+	ld d, h
+	ld e, l
+	ld a, $04
+	call GetSRAMBank
+	call Function10208e
+	call Function102068
+	call CloseSRAM
+	xor a
+	ret
+
+.asm_1020e8
+	scf
+	ret
+; 1020ea
+
+Function1020ea: ; 1020ea
+	ld hl, wdc41
+	bit 4, [hl]
+	jr z, .quit
+	ld hl, wdc41
+	bit 2, [hl]
+	jr nz, .quit
+	call Function10218d
+	ld hl, wc608
+	bit 4, [hl]
+	jr z, .quit
+	ld hl, wc608
+	bit 2, [hl]
+	jr nz, .quit
+	call Function102112
+	jr z, .quit
+	and a
+	ret
+
+.quit
+	scf
+	ret
+; 102112
+
+Function102112: ; 102112
+	ld a, $04
+	call GetSRAMBank
+	ld hl, $a041
+	ld c, 40
+.outer_loop
+	push hl
+	ld de, $c60f
+	ld b, 31
+.inner_loop
+	ld a, [de]
+	cp [hl]
+	jr nz, .not_matching
+	inc de
+	inc hl
+	dec b
+	jr nz, .inner_loop
+	pop hl
+	xor a
+	jr .done
+
+.not_matching
+	pop hl
+	ld de, 37
+	add hl, de
+	dec c
+	jr nz, .outer_loop
+	ld a, $01
+	and a
+	jr .done ; useless jr
+
+.done
+	push af
+	call CloseSRAM
+	pop af
+	ret
+; 102142
+
+Function102142: ; 102142
+	call Function10218d
+	call Function102180
+	ld hl, UnknownText_0x1021d1
+	call MenuTextBox
+	ld de, SFX_LEVEL_UP
+	call PlaySFX
+	call JoyWaitAorB
+	call ExitMenu
+	call Function10219f
+	ld hl, UnknownText_0x1021d6
+	call MenuTextBox
+	call YesNoBox
+	call ExitMenu
+	jr c, .asm_10217c
+	call Function1021b8
+	jr c, .asm_10217c
+	call Function10218d
+	call Function102180
+	ld hl, UnknownText_0x1021db
+	call PrintText
+
+.asm_10217c
+	call Function1013d6
+	ret
+; 102180
+
+Function102180: ; 102180
+	ld hl, wc608 + 1
+	ld de, StringBuffer2
+	ld bc, 11
+	call CopyBytes
+	ret
+; 10218d
+
+Function10218d: ; 10218d
+	ld hl, w5_dc00
+	ld de, wc608
+	ld bc, $26
+	ld a, $05
+	call FarCopyWRAM
+	ld de, wc608 + 1 ; useless
+	ret
+; 10219f
+
+Function10219f: ; 10219f
+	call FadeToMenu
+	call Function10218d
+	ld de, wc608 + 1
+	callba Function8ac4e
+	call JoyWaitAorB
+	call PlayClickSFX
+	call Function1013aa
+	ret
+; 1021b8
+
+Function1021b8: ; 1021b8
+	call FadeToMenu
+	call Function10218d
+	ld de, wPlayerMoveStruct
+	callba Function8ac70
+	ld a, c
+	ld [StringBuffer1], a
+	push af
+	call Function1013aa
+	pop af
+	ret
+; 1021d1
+
+UnknownText_0x1021d1: ; 1021d1
+	text_jump UnknownText_0x1bd19a
+	db "@"
+
+UnknownText_0x1021d6: ; 1021d1
+	text_jump UnknownText_0x1bd1ba
+	db "@"
+
+UnknownText_0x1021db: ; 1021d1
+	text_jump UnknownText_0x1bd1dd
+	db "@"
+; 1021e0
+
+Function1021e0: ; 1021e0
+	call MenuTextBox
+	call JoyWaitAorB
+	call ExitMenu
+	ret
+; 1021ea
+
+UnknownText_0x1021ea: ; 1021ea
+	text_jump UnknownText_0x1bd201
+	db "@"
+
+UnknownText_0x1021ef:
+	text_jump UnknownText_0x1bd211
+	db "@"
+
+UnknownText_0x1021f4:
+	text_jump UnknownText_0x1bd223
+	db "@"
+; 1021f9
+
+Function1021f9: ; 1021f9
+	call Function102233
+	ld a, $0 ; Function10234b
+	ld [wcd49], a
+	ld hl, wcd29
+	bit 3, [hl]
+	res 3, [hl]
+	jr z, .asm_10220f
+	ld a, $1 ; Function102361
+	ld [wcd49], a
+
+.asm_10220f
+	call Function1022ca
+	ld a, [wcd49]
+	ld hl, Jumptable_1022f5
+	rst JumpTable
+	call Function102241
+	call Function1022d0
+	jr c, .asm_102231
+	ld a, [wcd49]
+	bit 7, a
+	jr z, .asm_10220f
+	xor a
+	ld hl, wcd29
+	bit 3, [hl]
+	ret z
+	scf
+	ret
+
+.asm_102231
+	xor a
+	ret
+; 102233
+
+Function102233: ; 102233
+	ld hl, wcd49
+	ld bc, 10
+	xor a
+	call ByteFill
+	call Function10304f
+	ret
+; 102241
+
+Function102241: ; 102241
+	call Function10226a
+	call Function102274
+	call Function10224b
+	ret
+; 10224b
+
+Function10224b: ; 10224b
+	ld hl, wcd4b
+	bit 1, [hl]
+	jr nz, .asm_10225e
+	bit 2, [hl]
+	jr nz, .asm_10225e
+	call DelayFrame
+	call DelayFrame
+	xor a
+	ret
+
+.asm_10225e
+	res 1, [hl]
+	res 2, [hl]
+	callba Mobile_ReloadMapPart
+	scf
+	ret
+; 10226a
+
+Function10226a: ; 10226a
+	ld hl, wcd4b
+	bit 0, [hl]
+	ret z
+	call Function10305d
+	ret
+; 102274
+
+Function102274: ; 102274
+	ld hl, wcd4b
+	bit 3, [hl]
+	ret z
+	res 3, [hl]
+	ld de, 8
+	call PlaySFX
+	ret
+; 102283
+
+Function102283: ; 102283
+	ld a, $01
+	ld [AttrMapEnd], a
+	ld hl, wcd4b
+	set 0, [hl]
+	ret
+; 10228e
+
+Function10228e: ; 10228e
+	xor a
+	ld [AttrMapEnd], a
+	ld hl, wcd4b
+	res 0, [hl]
+	ret
+; 102298
+
+Function102298: ; 102298
+	ld a, e
+	cp $02
+	ret nz
+	ld hl, wcd4b
+	bit 6, [hl]
+	jr z, .asm_1022b6
+	ld hl, wcd4b
+	bit 7, [hl]
+	ld hl, wcd4b
+	set 7, [hl]
+	ret nz
+	ld de, SFX_ELEVATOR_END
+	call PlaySFX
+	jr .asm_1022c1
+
+.asm_1022b6
+	ld hl, wcd4b
+	bit 7, [hl]
+	ld hl, wcd4b
+	res 7, [hl]
+	ret z
+
+.asm_1022c1
+	call Function10304f
+	ld a, $01
+	ld [AttrMapEnd], a
+	ret
+; 1022ca
+
+Function1022ca: ; 1022ca
+	ld a, 30
+	ld [OverworldDelay], a
+	ret
+; 1022d0
+
+Function1022d0: ; 1022d0
+	callba Function10032e
+	ld a, [wcd2b]
+	and a
+	jr nz, .asm_1022f3
+	call Function102298
+	ld a, [OverworldDelay]
+	ld c, a
+	ld a, 30
+	sub c
+	ld c, a
+	ld b, $03
+	callba AdvanceMobileInactivityTimerAndCheckExpired
+	jr c, .asm_1022f3
+	xor a
+	ret
+
+.asm_1022f3
+	scf
+	ret
+; 1022f5
+
+Jumptable_1022f5: ; 1022f5
+	dw Function10234b ; 00
+	dw Function102361 ; 01
+	dw Function10236e ; 02
+	dw Function102387 ; 03
+	dw Function1023a1 ; 04
+	dw Function1025c7 ; 05
+	dw Function1025dc ; 06
+	dw Function1024f6 ; 07
+	dw Function10250c ; 08
+	dw Function1024a8 ; 09
+	dw Function102591 ; 0a
+	dw Function1024a8 ; 0b
+	dw Function1025b0 ; 0c
+	dw Function1025bd ; 0d
+	dw Function102814 ; 0e
+	dw Function10283c ; 0f
+	dw Function102862 ; 10
+	dw Function10286f ; 11
+	dw Function1024a8 ; 12
+	dw Function1028a5 ; 13
+	dw Function1028ab ; 14
+	dw Function1023b5 ; 15
+	dw Function1023c6 ; 16
+	dw Function1024af ; 17
+	dw Function102416 ; 18
+	dw Function102423 ; 19
+	dw Function10244b ; 1a
+	dw Function1024af ; 1b
+	dw Function10246a ; 1c
+	dw Function102652 ; 1d
+	dw Function10266b ; 1e
+	dw Function1025e9 ; 1f
+	dw Function1025ff ; 20
+	dw Function102738 ; 21
+	dw Function102754 ; 22
+	dw Function1026b7 ; 23
+	dw Function1026c8 ; 24
+	dw Function1028bf ; 25
+	dw Function1028c6 ; 26
+	dw Function1028d3 ; 27
+	dw Function1028da ; 28
+	dw Function1024a8 ; 29
+	dw Function10248d ; 2a
+; 10234b
+
+Function10234b: ; 10234b
+	call Function102d9a
+	call Function102dd3
+	call Function102dec
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 102361
+
+Function102361: ; 102361
+	ld a, $cc
+	call Function1028e8
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 10236e
+
+Function10236e: ; 10236e
+	call Function1028fc
+	ret nc
+	ld a, [wcd51]
+	cp $cc
+	jr z, .asm_10237f
+	ld a, $f2
+	ld [wcd2b], a
+	ret
+
+.asm_10237f
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 102387
+
+Function102387: ; 102387
+	ld hl, wcd4b
+	set 6, [hl]
+	xor a
+	ld [wdc5f], a
+	ld de, MUSIC_ROUTE_30
+	call PlayMusic
+	call Function102d9a
+	call Function102dd3
+	ld a, $01
+	ld [wMenuCursorY], a
+
+Function1023a1: ; 1023a1
+	call Function102283
+	call Function102db7
+	call Function102dec
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, $1d
+	ld [wcd49], a
+	ret
+; 1023b5
+
+Function1023b5: ; 1023b5
+	call Function10228e
+	call Function102a3b
+	call Function102b12
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 1023c6
+
+Function1023c6: ; 1023c6
+	call Function102c48
+	call Function102c87
+	ld a, [wcd4c]
+	dec a
+	ld [CurPartyMon], a
+	xor a
+	ld [wPokemonWithdrawDepositParameter], a
+	callba RemoveMonFromPartyOrBox
+	ld hl, PartyCount
+	inc [hl]
+	ld a, [hli]
+	ld c, a
+	ld b, 0
+	add hl, bc
+	ld [hl], $ff
+	ld a, [PartyCount]
+	ld [wcd4c], a
+	call Function102c07
+	call Function102d48
+	call Function102b32
+	call Function102f50
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, $14
+	ld [wcd4e], a
+	ld a, 0
+	ld [wcd4f], a
+	ld a, 0
+	ld [wcd4a], a
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 102416
+
+Function102416: ; 102416
+	ld a, $aa
+	call Function1028e8
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 102423
+
+Function102423: ; 102423
+	call Function102921
+	ret nc
+	callba SaveAfterLinkTrade
+	callba TrainerRankings_Trades
+	callba BackupMobileEventIndex
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, 0
+	ld [wcd4a], a
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 10244b
+
+Function10244b: ; 10244b
+	call Function102f32
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, $19
+	ld [wcd4e], a
+	ld a, 0
+	ld [wcd4f], a
+	ld a, 0
+	ld [wcd4a], a
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 10246a
+
+Function10246a: ; 10246a
+	call Function102d9a
+	ld hl, wcd29
+	set 3, [hl]
+	call Function102e07
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, $2a
+	ld [wcd49], a
+	ret
+; 102480
+
+Function102480: ; 102480
+	ld c, $32
+	call DelayFrames
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 10248d
+
+Function10248d: ; 10248d
+	ld a, [wcd49]
+	set 7, a
+	ld [wcd49], a
+	ret
+; 102496
+
+Function102496: ; 102496
+	ld hl, wcd4e
+	dec [hl]
+	ret nz
+	ld a, 0
+	ld [wcd4a], a
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 1024a8
+
+Function1024a8: ; 1024a8
+	callba Function1009f3
+	ret c
+
+Function1024af: ; 1024af
+	call GetJoypad
+	ld a, [wcd4a]
+	ld hl, Jumptable_1024ba
+	rst JumpTable
+	ret
+; 1024ba
+
+Jumptable_1024ba: ; 1024ba
+	dw Function1024c0
+	dw Function1024cb
+	dw Function1024de
+; 1024c0
+
+Function1024c0: ; 1024c0
+	ld hl, wcd4e
+	inc [hl]
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+
+Function1024cb: ; 1024cb
+	ld hl, wcd4e
+	dec [hl]
+	ret nz
+	ld a, [wcd4f]
+	inc a
+	ld [wcd4e], a
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+
+Function1024de: ; 1024de
+	ld hl, wcd4e
+	dec [hl]
+	jr z, .asm_1024e9
+	ld a, [hJoyPressed]
+	and A_BUTTON | B_BUTTON
+	ret z
+
+.asm_1024e9
+	ld a, 0
+	ld [wcd4a], a
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 1024f6
+
+Function1024f6: ; 1024f6
+	call PlaceHollowCursor
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, [wcd4c]
+	call Function1028e8
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 10250c
+
+Function10250c: ; 10250c
+	call Function1028fc
+	ret nc
+	ld a, [wcd51]
+	cp $0f
+	jr z, .asm_10254b
+	and a
+	jr z, .asm_102572
+	cp $aa
+	jr z, .asm_102572
+	cp $07
+	jr nc, .asm_102572
+	ld [wcd4d], a
+	dec a
+	ld [wd003], a
+	ld a, [wcd4c]
+	dec a
+	ld [wd002], a
+	call Function102b9c
+	call Function102bdc
+	jr c, .asm_10256d
+	callba Functionfb5dd
+	jr c, .asm_102568
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, $0e
+	ld [wcd49], a
+	ret
+
+.asm_10254b
+	call Function103021
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, 0
+	ld [wcd4a], a
+	ld a, $1e
+	ld [wcd4e], a
+	ld a, $1e
+	ld [wcd4f], a
+	ld a, $29
+	ld [wcd49], a
+	ret
+
+.asm_102568
+	call Function102ff5
+	jr .asm_102577
+
+.asm_10256d
+	call Function102f85
+	jr .asm_102577
+
+.asm_102572
+	call Function102fce
+	jr .asm_102577
+
+.asm_102577
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, 0
+	ld [wcd4a], a
+	ld a, $1e
+	ld [wcd4e], a
+	ld a, $3c
+	ld [wcd4f], a
+	ld a, $09
+	ld [wcd49], a
+	ret
+; 102591
+
+Function102591: ; 102591
+	call Function102ee7
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, 0
+	ld [wcd4a], a
+	ld a, $1e
+	ld [wcd4e], a
+	ld a, $3c
+	ld [wcd4f], a
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 1025b0
+
+Function1025b0: ; 1025b0
+	ld a, $09
+	call Function1028e8
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 1025bd
+
+Function1025bd: ; 1025bd
+	call Function1028fc
+	ret nc
+	ld a, $04
+	ld [wcd49], a
+	ret
+; 1025c7
+
+Function1025c7: ; 1025c7
+	call Function102f6d
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, $0f
+	call Function1028e8
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 1025dc
+
+Function1025dc: ; 1025dc
+	call Function1028fc
+	ret nc
+	ld a, [wcd49]
+	set 7, a
+	ld [wcd49], a
+	ret
+; 1025e9
+
+Function1025e9: ; 1025e9
+	nop
+	ld hl, wcd4b
+	set 6, [hl]
+	call Function102b4e
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 1025ff
+
+Function1025ff: ; 1025ff
+	ld hl, wcd4b
+	set 2, [hl]
+	callba Function1009f3
+	ret c
+	callba MobileMenuJoypad
+	ld a, [wMenuJoypadFilter]
+	and c
+	ret z
+	bit A_BUTTON_F, c
+	jr nz, .a_button
+	bit D_UP_F, c
+	jr nz, .d_up
+	bit D_DOWN_F, c
+	jr nz, .d_down
+	ret
+
+.a_button
+	ld hl, wcd4b
+	set 3, [hl]
+	ld a, $27 ; Function1028d3
+	ld [wcd49], a
+	ret
+
+.d_up
+	ld a, [wMenuCursorY]
+	ld b, a
+	ld a, [OTPartyCount]
+	cp b
+	ret nz
+	call HideCursor
+	ld a, [PartyCount]
+	ld [wMenuCursorY], a
+	ld a, $1d ; Function102652
+	ld [wcd49], a
+	ret
+
+.d_down
+	ld a, [wMenuCursorY]
+	cp $01
+	ret nz
+	ld a, $23 ; Function1026b7
+	ld [wcd49], a
+	ret
+; 102652
+
+Function102652: ; 102652
+	nop
+	ld hl, wcd4b
+	set 6, [hl]
+	nop
+	call Function102b7b
+	nop
+	ld hl, wcd4b
+	set 1, [hl]
+	nop
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 10266b
+
+Function10266b: ; 10266b
+	ld hl, wcd4b
+	set 2, [hl]
+	callba Function1009f3
+	ret c
+	callba MobileMenuJoypad
+	ld a, [wMenuJoypadFilter]
+	and c
+	ret z
+	bit A_BUTTON_F, c
+	jr nz, .a_button
+	bit D_DOWN_F, c
+	jr nz, .d_down
+	bit D_UP_F, c
+	jr nz, .d_up
+	ret
+
+.a_button
+	ld hl, wcd4b
+	set 3, [hl]
+	ld a, $21 ; Function102738
+	ld [wcd49], a
+	ret
+
+.d_down
+	ld a, [wMenuCursorY]
+	dec a
+	ret nz
+	call HideCursor
+	ld a, $1f ; Function1025e9
+	ld [wcd49], a
+	ret
+
+.d_up
+	ld a, [wMenuCursorY]
+	ld b, a
+	ld a, [PartyCount]
+	cp b
+	ret nz
+	ld a, $23 ; Function1026b7
+	ld [wcd49], a
+	ret
+; 1026b7
+
+Function1026b7: ; 1026b7
+	ld hl, wcd4b
+	set 6, [hl]
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ld a, 0
+	ld [wcd4a], a
+
+Function1026c8: ; 1026c8
+	call GetJoypad
+	callba Function1009f3
+	ret c
+	ld a, [wcd4a]
+	ld hl, Jumptable_1026da
+	rst JumpTable
+	ret
+; 1026da
+
+Jumptable_1026da: ; 1026da
+	dw Function1026de
+	dw Function1026f3
+; 1026de
+
+Function1026de: ; 1026de
+	call HideCursor
+	hlcoord 9, 17
+	ld [hl], $ed
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	ld hl, wcd4b
+	set 1, [hl]
+	ret
+; 1026f3
+
+Function1026f3: ; 1026f3
+	ld a, [hJoyPressed]
+	bit A_BUTTON_F, a
+	jr nz, .asm_102723
+	bit D_UP_F, a
+	jr nz, .asm_102712
+	bit D_DOWN_F, a
+	jr nz, .asm_102702
+	ret
+
+.asm_102702
+	hlcoord 9, 17
+	ld [hl], " "
+	ld a, $01
+	ld [wMenuCursorY], a
+	ld a, $1d ; Function102652
+	ld [wcd49], a
+	ret
+
+.asm_102712
+	hlcoord 9, 17
+	ld [hl], " "
+	ld a, [OTPartyCount]
+	ld [wMenuCursorY], a
+	ld a, $1f ; Function1025e9
+	ld [wcd49], a
+	ret
+
+.asm_102723
+	hlcoord 9, 17
+	ld [hl], "▷"
+	ld hl, wcd4b
+	set 3, [hl]
+	ld hl, wcd4b
+	set 2, [hl]
+	ld a, $5 ; Function1025c7
+	ld [wcd49], a
+	ret
+; 102738
+
+Function102738: ; 102738
+	ld hl, wcd4b
+	set 6, [hl]
+	call PlaceHollowCursor
+	call Function1027eb
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ld a, 0
+	ld [wcd4a], a
+
+Function102754: ; 102754
+	call GetJoypad
+	callba Function1009f3
+	ret c
+	ld a, [wcd4a]
+	ld hl, Jumptable_102766
+	rst JumpTable
+	ret
+; 102766
+
+Jumptable_102766: ; 102766
+	dw Function102770
+	dw Function102775
+	dw Function10278c
+	dw Function1027a0
+	dw Function1027b7
+; 102770
+
+Function102770: ; 102770
+	ld a, $01
+	ld [wcd4a], a
+
+Function102775: ; 102775
+	hlcoord 1, 16
+	ld [hl], "▶"
+	hlcoord 11, 16
+	ld [hl], " "
+	ld hl, wcd4b
+	set 2, [hl]
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	ret
+; 10278c
+
+Function10278c: ; 10278c
+	ld a, [hJoyPressed]
+	bit A_BUTTON_F, a
+	jr nz, asm_1027c6
+	bit B_BUTTON_F, a
+	jr nz, asm_1027e2
+	bit D_RIGHT_F, a
+	jr nz, .asm_10279b
+	ret
+
+.asm_10279b
+	ld a, $03
+	ld [wcd4a], a
+Function1027a0: ; 1027a0
+	hlcoord 1, 16
+	ld [hl], " "
+	hlcoord 11, 16
+	ld [hl], "▶"
+	ld hl, wcd4b
+	set 2, [hl]
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	ret
+
+Function1027b7: ; 1027b7
+	ld a, [hJoyPressed]
+	bit A_BUTTON_F, a
+	jr nz, asm_1027d1
+	bit B_BUTTON_F, a
+	jr nz, asm_1027e2
+	bit D_LEFT_F, a
+	jr nz, Function102770
+	ret
+
+asm_1027c6:
+	ld hl, wcd4b
+	set 3, [hl]
+	ld a, $25 ; Function1028bf
+	ld [wcd49], a
+	ret
+
+asm_1027d1:
+	ld hl, wcd4b
+	set 3, [hl]
+	ld a, [wMenuCursorY]
+	ld [wcd4c], a
+	ld a, $7 ; Function1024f6
+	ld [wcd49], a
+	ret
+
+asm_1027e2:
+	call Function102db7
+	ld a, $1d ; Function102652
+	ld [wcd49], a
+	ret
+; 1027eb
+
+Function1027eb: ; 1027eb
+	hlcoord 0, 14
+	ld b, 2
+	ld c, 18
+	ld d, h
+	ld e, l
+	callba _LinkTextbox
+	ld de, .Stats_Trade
+	hlcoord 2, 16
+	call PlaceString
+	ret
+; 102804
+
+.Stats_Trade: ; 102804
+	db "STATS     TRADE@"
+; 102814
+
+Function102814: ; 102814
+	ld a, [wMenuCursorY]
+	ld [wcd52], a
+	ld a, [wcd4c]
+	dec a
+	ld [wd002], a
+	ld a, [wcd4d]
+	dec a
+	ld [wd003], a
+	call Function102ea8
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ld a, 0
+	ld [wcd4a], a
+	ld hl, wcd4b
+	set 1, [hl]
+
+Function10283c: ; 10283c
+	ld hl, wcd4b
+	set 2, [hl]
+	call Function1029c3
+	ret z
+	jr c, .asm_102852
+	ld a, $10 ; Function102862
+	ld [wcd49], a
+	ld hl, wcd4b
+	set 1, [hl]
+	ret
+
+.asm_102852
+	ld a, $14 ; Function1028ab
+	ld [wcd49], a
+	ld hl, wcd4b
+	set 3, [hl]
+	ld hl, wcd4b
+	set 1, [hl]
+	ret
+; 102862
+
+Function102862: ; 102862
+	ld a, $08
+	call Function1028e8
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 10286f
+
+Function10286f: ; 10286f
+	call Function1028fc
+	ret nc
+	ld a, [wcd52]
+	ld [wMenuCursorY], a
+	ld a, [wcd51]
+	cp $08
+	jr nz, .asm_102886
+	ld a, $15 ; Function1023b5
+	ld [wcd49], a
+	ret
+
+.asm_102886
+	call Function102ee7
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, $1e
+	ld [wcd4e], a
+	ld a, $3c
+	ld [wcd4f], a
+	ld a, 0
+	ld [wcd4a], a
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ret
+; 1028a5
+
+Function1028a5: ; 1028a5
+	ld a, $4 ; Function1023a1
+	ld [wcd49], a
+	ret
+; 1028ab
+
+Function1028ab: ; 1028ab
+	ld a, [wcd52]
+	ld [wMenuCursorY], a
+	call Function102f15
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, $c ; Function1025b0
+	ld [wcd49], a
+	ret
+; 1028bf
+
+Function1028bf: ; 1028bf
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+
+Function1028c6: ; 1028c6
+	xor a
+	ld [MonType], a
+	call Function102bac
+	ld a, $1d ; Function102652
+	ld [wcd49], a
+	ret
+; 1028d3
+
+Function1028d3: ; 1028d3
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+
+Function1028da: ; 1028da
+	ld a, OTPARTYMON
+	ld [MonType], a
+	call Function102bac
+	ld a, $1f ; Function1025e9
+	ld [wcd49], a
+	ret
+; 1028e8
+
+Function1028e8: ; 1028e8
+	ld hl, wcd4b
+	res 6, [hl]
+	ld [wcd50], a
+	callba StartMobileInactivityTimer
+	ld a, 0
+	ld [wcd4a], a
+	ret
+; 1028fc
+
+Function1028fc: ; 1028fc
+	call GetJoypad
+	callba Function1009f3
+	jr nc, .asm_102909
+	and a
+	ret
+
+.asm_102909
+	ld a, [wcd4a]
+	ld hl, Jumptable_102917
+	rst JumpTable
+	ret nc
+	ld a, 0
+	ld [wcd4a], a
+	ret
+; 102917
+
+Jumptable_102917: ; 102917
+	dw Function102933
+	dw Function10294f
+	dw Function10295d
+	dw Function10296e
+	dw Function102996
+; 102921
+
+Function102921: ; 102921
+	ld a, [wcd4a]
+	ld hl, Jumptable_10292f
+	rst JumpTable
+	ret nc
+	ld a, 0
+	ld [wcd4a], a
+	ret
+; 10292f
+
+Jumptable_10292f: ; 10292f
+	dw Function10295d
+	dw Function102984
+; 102933
+
+Function102933: ; 102933
+	ld hl, MenuDataHeader_1029bb
+	call LoadMenuDataHeader
+	call Function102e07
+	ld a, $32
+	ld [TextDelayFrames], a
+	ld hl, wcd4b
+	set 1, [hl]
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	and a
+	ret
+; 10294f
+
+Function10294f: ; 10294f
+	ld a, [TextDelayFrames]
+	and a
+	ret nz
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	and a
+	ret
+; 10295d
+
+Function10295d: ; 10295d
+	call Function10299e
+	ld a, 0
+	ld [wcd27], a
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	and a
+	ret
+; 10296e
+
+Function10296e: ; 10296e
+	callba Function100382
+	and a
+	ld a, [wcd27]
+	bit 7, a
+	ret z
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	and a
+	ret
+; 102984
+
+Function102984: ; 102984
+	callba Function100382
+	and a
+	ld a, [wcd27]
+	bit 7, a
+	ret z
+	call Function1029af
+	scf
+	ret
+; 102996
+
+Function102996: ; 102996
+	call Function1029af
+	call ExitMenu
+	scf
+	ret
+; 10299e
+
+Function10299e: ; 10299e
+	ld a, $01
+	ld [wccb4], a
+	ld a, [wcd50]
+	ld [wccb5], a
+	ld a, $aa
+	ld [wcd51], a
+	ret
+; 1029af
+
+Function1029af: ; 1029af
+	ld hl, wcd4b
+	res 7, [hl]
+	ld a, [wcc61]
+	ld [wcd51], a
+	ret
+; 1029bb
+
+MenuDataHeader_1029bb: ; 1029bb
+	db $40 ; flags
+	db 10, 3 ; start coords
+	db 12, 15 ; end coords
+	dw NULL
+	db 1 ; default option
+; 1029c3
+
+Function1029c3: ; 1029c3
+	ld a, [wcd4a]
+	ld hl, Jumptable_1029cb
+	rst JumpTable
+	ret
+; 1029cb
+
+Jumptable_1029cb: ; 1029cb
+	dw Function1029cf
+	dw Function1029fe
+; 1029cf
+
+Function1029cf: ; 1029cf
+	call LoadStandardMenuDataHeader
+	hlcoord 10, 7
+	ld b, 3
+	ld c, 8
+	ld d, h
+	ld e, l
+	callba _LinkTextbox
+	ld de, String_102a26
+	hlcoord 12, 8
+	call PlaceString
+	ld hl, wcd4b
+	set 1, [hl]
+	ld de, MenuData3_102a33
+	call SetMenuAttributes
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	xor a
+	ret
+; 1029fe
+
+Function1029fe: ; 1029fe
+	callba Function1009f3
+	ret c
+	callba MobileMenuJoypad
+	ld a, c
+	ld hl, wMenuJoypadFilter
+	and [hl]
+	ret z
+	push af
+	call ExitMenu
+	pop af
+	ld a, [wMenuCursorY]
+	cp $01
+	jr nz, .asm_102a21
+	ld a, $01
+	and a
+	ret
+
+.asm_102a21
+	ld a, $01
+	and a
+	scf
+	ret
+; 102a26
+
+String_102a26: ; 102a26
+	db   "TRADE"
+	next "CANCEL"
+	db   "@"
+; 102a33
+
+MenuData3_102a33:
+	db 8, 11
+	db 2,  1
+	db $80, $00
+	dn 2, 0
+	db A_BUTTON
+
+Function102a3b: ; 102a3b
+	ld a, [wcd30]
+	ld [wc74e], a
+	ld hl, PlayerName
+	ld de, wPlayerTrademonSenderName
+	ld bc, NAME_LENGTH
+	call CopyBytes
+	ld a, [wcd4c]
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, PartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [wPlayerTrademonSpecies], a
+	ld a, [wcd4c]
+	dec a
+	ld hl, PartyMonOT
+	call SkipNames
+	ld de, wPlayerTrademonOTName
+	ld bc, NAME_LENGTH
+	call CopyBytes
+	ld a, [wcd4c]
+	dec a
+	ld hl, PartyMon1ID
+	call GetPartyLocation
+	ld a, [hli]
+	ld [wPlayerTrademonID], a
+	ld a, [hl]
+	ld [wPlayerTrademonID + 1], a
+	ld a, [wcd4c]
+	dec a
+	ld hl, PartyMon1DVs
+	call GetPartyLocation
+	ld a, [hli]
+	ld [wPlayerTrademonDVs], a
+	ld a, [hl]
+	ld [wPlayerTrademonDVs + 1], a
+	ld a, [wcd4c]
+	dec a
+	ld hl, PartyMon1Species
+	call GetPartyLocation
+	ld b, h
+	ld c, l
+	callba GetCaughtGender
+	ld a, c
+	ld [wPlayerTrademonCaughtData], a
+	ld hl, OTPlayerName
+	ld de, wOTTrademonSenderName
+	ld bc, NAME_LENGTH
+	call CopyBytes
+
+	ld a, [wcd4d]
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, OTPartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [wOTTrademonSpecies], a
+	ld a, [wcd4d]
+	dec a
+	ld hl, OTPartyMonOT
+	call SkipNames
+	ld de, wOTTrademonOTName
+	ld bc, NAME_LENGTH
+	call CopyBytes
+	ld a, [wcd4d]
+	dec a
+	ld hl, OTPartyMon1ID
+	call GetPartyLocation
+	ld a, [hli]
+	ld [wOTTrademonID], a
+	ld a, [hl]
+	ld [wOTTrademonID + 1], a
+	ld a, [wcd4d]
+	dec a
+	ld hl, OTPartyMon1DVs
+	call GetPartyLocation
+	ld a, [hli]
+	ld [wOTTrademonDVs], a
+	ld a, [hl]
+	ld [wOTTrademonDVs + 1], a
+	ld a, [wcd4d]
+	dec a
+	ld hl, OTPartyMon1Species
+	call GetPartyLocation
+	ld b, h
+	ld c, l
+	callba GetCaughtGender
+	ld a, c
+	ld [wOTTrademonCaughtData], a
+	ret
+; 102b12
+
+Function102b12: ; 102b12
+	ld c, 100
+	call DelayFrames
+	call Function102d9a
+	call LoadFontsBattleExtra
+	ld a, [wcd2f]
+	and a
+	jr nz, .asm_102b2b
+	callba Function108026
+	jr .asm_102b31
+
+.asm_102b2b
+	callba Function10802a
+
+.asm_102b31
+	ret
+; 102b32
+
+Function102b32: ; 102b32
+	ld a, [wcd4c]
+	dec a
+	ld [CurPartyMon], a
+	ld a, $01
+	ld [wForceEvolution], a
+	callba EvolvePokemon
+	call Function102d9a
+	call Function102dd3
+	call Function102dec
+	ret
+; 102b4e
+
+Function102b4e: ; 102b4e
+	ld a, OTPARTYMON
+	ld [MonType], a
+	ld a, [wMenuCursorY]
+	push af
+	ld de, Unknown_102b73
+	call SetMenuAttributes
+	pop af
+	ld [wMenuCursorY], a
+	ld a, [OTPartyCount]
+	ld [w2DMenuNumRows], a
+	ret
+; 102b68
+
+Function102b68: ; 102b68 ; unreferenced
+	xor a
+	ld hl, wWindowStackPointer
+	ld bc, $10
+	call ByteFill
+	ret
+; 102b73
+
+Unknown_102b73:
+	db 9, 6
+	db 255, 1
+	db $a0, $00
+	dn 1, 0
+	db D_UP | D_DOWN | A_BUTTON
+
+Function102b7b: ; 102b7b
+	xor a
+	ld [MonType], a
+	ld a, [wMenuCursorY]
+	push af
+	ld de, Unknown_102b94
+	call SetMenuAttributes
+	pop af
+	ld [wMenuCursorY], a
+	ld a, [PartyCount]
+	ld [w2DMenuNumRows], a
+	ret
+; 102b94
+
+Unknown_102b94:
+	db 1, 6
+	db 255, 1
+	db $a0, $00
+	dn 1, 0
+	db D_UP | D_DOWN | A_BUTTON
+
+Function102b9c: ; 102b9c
+	ld a, [wcd4d]
+	dec a
+	hlcoord 6, 9
+	ld bc, $14
+	call AddNTimes
+	ld [hl], $ec
+	ret
+; 102bac
+
+Function102bac: ; 102bac
+	ld a, [wMenuCursorY]
+	dec a
+	ld [CurPartyMon], a
+	call LowVolume
+	call ClearSprites
+	callba _MobileStatsScreenInit
+	ld a, [CurPartyMon]
+	inc a
+	ld [wMenuCursorY], a
+	call Function102d9a
+	call ClearPalettes
+	call DelayFrame
+	call MaxVolume
+	call Function102dd3
+	call Function102dec
+	call Function102db7
+	ret
+; 102bdc
+
+Function102bdc: ; 102bdc
+	ld a, [wcd4d]
+	dec a
+	ld hl, OTPartyMon1Species
+	call GetPartyLocation
+	push hl
+	ld a, [wcd4d]
+	ld c, a
+	ld b, 0
+	ld hl, OTPartyCount
+	add hl, bc
+	ld a, [hl]
+	pop hl
+	cp EGG
+	jr z, .asm_102bfa
+	cp [hl]
+	jr nz, .asm_102c05
+
+.asm_102bfa
+	ld bc, MON_LEVEL
+	add hl, bc
+	ld a, [hl]
+	cp MAX_LEVEL + 1
+	jr nc, .asm_102c05
+	and a
+	ret
+
+.asm_102c05
+	scf
+	ret
+; 102c07
+
+Function102c07: ; 102c07
+	call Function102c14
+	call Function102c3b
+	call Function102c21
+	call Function102c2e
+	ret
+; 102c14
+
+Function102c14: ; 102c14
+	ld hl, PartySpecies
+	ld de, OTPartySpecies
+	ld bc, 1
+	call Function102c71
+	ret
+; 102c21
+
+Function102c21: ; 102c21
+	ld hl, PartyMonNicknames
+	ld de, OTPartyMonNicknames
+	ld bc, 11
+	call Function102c71
+	ret
+; 102c2e
+
+Function102c2e: ; 102c2e
+	ld hl, PartyMonOT
+	ld de, OTPartyMonOT
+	ld bc, 11
+	call Function102c71
+	ret
+; 102c3b
+
+Function102c3b: ; 102c3b
+	ld hl, PartyMon1
+	ld de, OTPartyMon1
+	ld bc, $30
+	call Function102c71
+	ret
+; 102c48
+
+Function102c48: ; 102c48
+	callba Function10165a
+	ld a, 0
+	call GetSRAMBank
+	ld hl, $a600
+	ld de, wc608
+	ld bc, $2f
+	call Function102c71
+	call CloseSRAM
+	ld hl, wc608
+	ld de, w5_da00
+	ld bc, $1e0
+	ld a, $05
+	call FarCopyWRAM
+	ret
+; 102c71
+
+Function102c71: ; 102c71
+	ld a, [wcd4c]
+	dec a
+	call AddNTimes
+	push hl
+	ld h, d
+	ld l, e
+	ld a, [wcd4d]
+	dec a
+	call AddNTimes
+	pop de
+	call SwapBytes
+	ret
+; 102c87
+
+Function102c87: ; 102c87
+	ld a, [wJumptableIndex]
+	push af
+	ld a, [wcf64]
+	push af
+	ld a, [wcd4c]
+	ld [wJumptableIndex], a
+	ld a, [PartyCount]
+	ld [wcf64], a
+	ld a, 0
+	ld hl, $a600
+	ld de, wc608
+	ld bc, $11a
+	call Function102d3e
+	call Function102cee
+	ld a, 0
+	ld hl, wc608
+	ld de, $a600
+	ld bc, $11a
+	call Function102d3e
+	ld a, [wcd4d]
+	ld [wJumptableIndex], a
+	ld a, [OTPartyCount]
+	ld [wcf64], a
+	ld a, $05
+	ld hl, w5_da00
+	ld de, wc608
+	ld bc, $11a
+	call FarCopyWRAM
+	call Function102cee
+	ld a, $05
+	ld hl, wc608
+	ld de, w5_da00
+	ld bc, $11a
+	call FarCopyWRAM
+	pop af
+	ld [wcf64], a
+	pop af
+	ld [wJumptableIndex], a
+	ret
+; 102cee
+
+Function102cee: ; 102cee
+	ld a, [wJumptableIndex]
+	dec a
+	call Function102d34
+	ld de, wd002
+	ld bc, $2f
+	call CopyBytes
+	ld a, [wJumptableIndex]
+	ld c, a
+	ld a, $06
+	sub c
+	ret z
+	ld bc, $2f
+	ld hl, 0
+	call AddNTimes
+	push hl
+	ld a, [wJumptableIndex]
+	dec a
+	call Function102d34
+	ld d, h
+	ld e, l
+	ld hl, $2f
+	add hl, de
+	pop bc
+	call CopyBytes
+	ld a, [wcf64]
+	dec a
+	call Function102d34
+	ld d, h
+	ld e, l
+	ld hl, wd002
+	ld bc, $2f
+	call CopyBytes
+	ret
+; 102d34
+
+Function102d34: ; 102d34
+	ld hl, wc608
+	ld bc, $2f
+	call AddNTimes
+	ret
+; 102d3e
+
+Function102d3e: ; 102d3e
+	call GetSRAMBank
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 102d48
+
+Function102d48: ; 102d48
+	ld a, [wcd4c]
+	ld e, a
+	ld d, 0
+	ld hl, PartyCount
+	add hl, de
+	ld a, [hl]
+	ld [wd265], a
+	cp EGG
+	jr z, .asm_102d6d
+	dec a
+	call SetSeenAndCaughtMon
+	ld a, [wcd4c]
+	dec a
+	ld bc, PARTYMON_STRUCT_LENGTH
+	ld hl, PartyMon1Happiness
+	call AddNTimes
+	ld [hl], BASE_HAPPINESS
+
+.asm_102d6d
+	ld a, [wd265]
+	cp UNOWN
+	jr nz, .asm_102d98
+	ld a, [wcd4c]
+	dec a
+	ld bc, PARTYMON_STRUCT_LENGTH
+	ld hl, PartyMon1DVs
+	call AddNTimes
+	predef GetUnownLetter
+	callba UpdateUnownDex
+	ld a, [wFirstUnownSeen]
+	and a
+	jr nz, .asm_102d98
+	ld a, [UnownLetter]
+	ld [wFirstUnownSeen], a
+
+.asm_102d98
+	and a
+	ret
+; 102d9a
+
+Function102d9a: ; 102d9a
+	ld a, " "
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	ld a, $07
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	callba HDMATransferAttrMapAndTileMapToWRAMBank3
+	ret
+; 102db7
+
+Function102db7: ; 102db7
+	call Function102e4f
+	call Function102e3e
+	ld hl, wcd4b
+	set 1, [hl]
+	ret
+; 102dc3
+
+Function102dc3: ; 102dc3
+	hlcoord 0, 12
+	ld b,  4
+	ld c, 18
+	ld d, h
+	ld e, l
+	callba _LinkTextbox
+	ret
+; 102dd3
+
+Function102dd3: ; 102dd3
+	call DisableLCD
+	ld de, GFX_1032a2
+	ld hl, VTiles0
+	lb bc, BANK(GFX_1032a2), 4
+	call Get2bpp
+	callba __LoadTradeScreenBorder
+	call EnableLCD
+	ret
+; 102dec
+
+Function102dec: ; 102dec
+	ld hl, Palettes_1032e2
+	ld de, UnknOBPals
+	ld bc, 4 palettes
+	ld a, $05
+	call FarCopyWRAM
+	callba Function49742
+	call SetPalettes
+	call DelayFrame
+	ret
+; 102e07
+
+Function102e07: ; 102e07
+	hlcoord 3, 10
+	ld b,  1
+	ld c, 11
+	ld a, [wBattleMode]
+	and a
+	jr z, .link_battle
+	call TextBox
+	jr .okay
+
+.link_battle
+; this is idiotic
+	hlcoord 3, 10
+	ld b,  1
+	ld c, 11
+	ld d, h
+	ld e, l
+	callba _LinkTextbox
+
+.okay
+	ld de, .waiting
+	hlcoord 4, 11
+	call PlaceString
+	ret
+; 102e32
+
+.waiting ; 102e32
+	db "Waiting...!@"
+; 102e3e
+
+Function102e3e: ; 102e3e
+	ld de, .CANCEL
+	hlcoord 10, 17
+	call PlaceString
+	ret
+; 102e48
+
+.CANCEL: ; 102e48
+	db "CANCEL@"
+; 102e4f
+
+Function102e4f: ; 102e4f
+	callba Function16d42e
+	callba _InitMG_Mobile_LinkTradePalMap
+	ld de, PlayerName
+	hlcoord 4, 0
+	call PlaceString
+	ld a, $14
+	ld [bc], a
+	ld de, OTPlayerName
+	hlcoord 4, 8
+	call PlaceString
+	ld a, $14
+	ld [bc], a
+	hlcoord 7, 1
+	ld de, PartySpecies
+	call .PlaceSpeciesNames
+	hlcoord 7, 9
+	ld de, OTPartySpecies
+	call .PlaceSpeciesNames
+	ret
+; 102e86
+
+.PlaceSpeciesNames: ; 102e86
+	ld c, 0
+.count_loop
+	ld a, [de]
+	cp $ff
+	ret z
+	ld [wd265], a
+	push bc
+	push hl
+	push de
+	push hl
+	ld a, c
+	ld [hDividend], a
+	call GetPokemonName
+	pop hl
+	call PlaceString
+	pop de
+	inc de
+	pop hl
+	ld bc, SCREEN_WIDTH
+	add hl, bc
+	pop bc
+	inc c
+	jr .count_loop
+; 102ea8
+
+Function102ea8: ; 102ea8
+	call Function102dc3
+	ld a, [wcd4c]
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, PartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, StringBuffer1
+	ld de, StringBuffer2
+	ld bc, 11
+	call CopyBytes
+	ld a, [wcd4d]
+	dec a
+	ld c, a
+	ld b, 0
+	ld hl, OTPartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, UnknownText_0x102ee2
+	call PrintTextBoxText
+	ret
+; 102ee2
+
+UnknownText_0x102ee2: ; 102ee2
+	text_jump UnknownText_0x1bd286
+	db "@"
+
+Function102ee7: ; 102ee7
+	call Function102dc3
+	ld de, String_102ef4
+	hlcoord 1, 14
+	call PlaceString
+	ret
+; 102ef4
+
+String_102ef4: ; 102ef4
+	db   "Too bad! The trade"
+	next "was canceled!"
+	db   "@"
+; 102f15
+
+Function102f15: ; 102f15
+	call Function102dc3
+	ld de, .TooBadTheTradeWasCanceled
+	hlcoord 1, 14
+	call PlaceString
+	ret
+; 102f22
+
+.TooBadTheTradeWasCanceled: ; 102f22
+	db "こうかんを キャンセルしました@"
+; 102f32
+
+Function102f32: ; 102f32
+	call Function102dc3
+	ld de, .TradeCompleted
+	hlcoord 1, 14
+	call PlaceString
+	ret
+; 102f3f
+
+.TradeCompleted: ; 102f3f
+	db "Trade completed!@"
+; 102f50
+
+Function102f50: ; 102f50
+	call Function102dc3
+	ld de, .PleaseWait
+	hlcoord 1, 14
+	call PlaceString
+	ret
+; 102f5d
+
+.PleaseWait: ; 102f5d
+	db "しょうしょう おまち ください@"
+; 102f6d
+
+Function102f6d: ; 102f6d
+	call Function102dc3
+	ld de, .Finished
+	hlcoord 1, 14
+	call PlaceString
+	ret
+; 102f7a
+
+.Finished: ; 102f7a
+	db "しゅうりょう します@"
+; 102f85
+
+Function102f85: ; 102f85
+	ld a, [wd003]
+	ld c, a
+	ld b, 0
+	ld hl, OTPartySpecies
+	add hl, bc
+	ld a, [hl]
+	ld [wd265], a
+	call GetPokemonName
+	call Function102dc3
+	ld de, String_102fb2
+	hlcoord 1, 14
+	call PlaceString
+	ld de, StringBuffer1
+	hlcoord 13, 14
+	call PlaceString
+	ld de, String_102fcc
+	call PlaceString
+	ret
+; 102fb2
+
+String_102fb2: ; 102fb2
+	db   "あいてがわ<PKMN>えらんだ "
+	next "いじょう<PKMN>あるようです!!"
+	db   "@"
+; 102fcc
+
+String_102fcc: ; 102fcc
+	db "に@"
+; 102fce
+
+Function102fce: ; 102fce
+	call Function102dc3
+	ld de, String_102fdb
+	hlcoord 1, 14
+	call PlaceString
+	ret
+; 102fdb
+
+String_102fdb: ; 102fdb
+	db   "あいてがわ%せんたくに"
+	next "いじょう<PKMN>あるようです!!"
+	done
+; 102ff5
+
+Function102ff5: ; 102ff5
+	call Function102dc3
+	ld de, String_103002
+	hlcoord 1, 14
+	call PlaceString
+	ret
+; 103002
+
+String_103002: ; 103002
+	db   "その#を こうかんすると"
+	next "せんとう できなく なっちゃうよ!"
+	db   "@"
+; 103021
+
+Function103021: ; 103021
+	call Function102dc3
+	ld de, String_10302e
+	hlcoord 1, 14
+	call PlaceString
+	ret
+; 10302e
+
+String_10302e: ; 10302e
+	db   "あいてが ちゅうしを えらんだので"
+	next "こうかんを ちゅうし します"
+	db   "@"
+; 10304f
+
+Function10304f: ; 10304f
+	xor a
+	ld [AttrMapEnd], a
+	ld [wcf42], a
+	ld [wcf44], a
+	ld [wcf45], a
+	ret
+; 10305d
+
+Function10305d: ; 10305d
+	nop
+	ld a, [AttrMapEnd]
+	and a
+	ret z
+	call Function10307f
+	ret c
+	call Function103094
+	call Function10306e
+	ret
+; 10306e
+
+Function10306e: ; 10306e
+	ld a, $01
+	ld [hOAMUpdate], a
+	call ClearSprites
+	ld de, Sprites
+	call Function1030cd
+	xor a
+	ld [hOAMUpdate], a
+	ret
+; 10307f
+
+Function10307f: ; 10307f
+	ld c, $02
+	ld hl, wcd4b
+	bit 7, [hl]
+	jr z, .asm_10308a
+	ld c, $01
+
+.asm_10308a
+	ld hl, wcf45
+	inc [hl]
+	ld a, [hl]
+	cp c
+	ret c
+	xor a
+	ld [hl], a
+	ret
+; 103094
+
+Function103094: ; 103094
+	ld hl, wcd4b
+	bit 7, [hl]
+	jr nz, .asm_1030c0
+	ld a, [wcf42]
+	bit 7, a
+	jr nz, .asm_1030b2
+	ld a, [wcf44]
+	inc a
+	ld [wcf44], a
+	cp $2c
+	ret nz
+	ld hl, wcf42
+	set 7, [hl]
+	ret
+
+.asm_1030b2
+	ld a, [wcf44]
+	dec a
+	ld [wcf44], a
+	ret nz
+	ld hl, wcf42
+	res 7, [hl]
+	ret
+
+.asm_1030c0
+	ld hl, wcf44
+	ld a, [hl]
+	and a
+	jr z, .asm_1030ca
+	dec a
+	ld [hl], a
+	ret nz
+
+.asm_1030ca
+	ld [hl], $2c
+	ret
+; 1030cd
+
+Function1030cd: ; 1030cd
+	ld a, [wcf44]
+	ld l, a
+	ld h, 0
+	add hl, hl
+	add hl, hl
+	add hl, hl
+	ld bc, Unknown_103112
+	add hl, bc
+	ld b, $30
+	ld c, $08
+.asm_1030de
+	push hl
+	ld hl, wcd4b
+	bit 7, [hl]
+	pop hl
+	ld a, 0
+	jr z, .asm_1030eb
+	ld a, $05
+.asm_1030eb
+
+	add [hl]
+	inc hl
+	push hl
+
+	add a
+	add a
+
+	add Unknown_10327a % $100
+	ld l, a
+	ld a, Unknown_10327a / $100
+	adc 0
+	ld h, a
+
+	ld a, b
+	add [hl]
+	inc hl
+	ld [de], a
+	inc de
+	ld a, $0a
+	add [hl]
+	inc hl
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	pop hl
+	ld a, b
+	add $08
+	ld b, a
+	dec c
+	jr nz, .asm_1030de
+	ret
+; 103112
+
+Unknown_103112: ; 103112
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $01, $00, $00, $00, $00, $00, $00, $00
+	db $02, $01, $00, $00, $00, $00, $00, $00
+	db $03, $02, $01, $00, $00, $00, $00, $00
+	db $04, $03, $02, $01, $00, $00, $00, $00
+	db $04, $04, $03, $02, $01, $00, $00, $00
+	db $04, $04, $04, $03, $02, $01, $00, $00
+	db $04, $04, $04, $04, $03, $02, $01, $00
+	db $04, $04, $04, $04, $04, $03, $02, $01
+	db $04, $04, $04, $04, $04, $04, $03, $02
+	db $04, $04, $04, $04, $04, $04, $04, $03
+	db $04, $04, $04, $04, $04, $04, $04, $04
+	db $04, $04, $04, $04, $04, $04, $04, $04
+	db $04, $04, $04, $04, $04, $04, $04, $04
+	db $04, $04, $04, $04, $04, $04, $04, $04
+	db $04, $04, $04, $04, $04, $04, $04, $04
+	db $04, $04, $04, $04, $04, $04, $04, $04
+	db $04, $04, $04, $04, $04, $04, $04, $04
+	db $04, $04, $04, $04, $04, $04, $04, $04
+	db $03, $04, $04, $04, $04, $04, $04, $04
+	db $02, $03, $04, $04, $04, $04, $04, $04
+	db $01, $02, $03, $04, $04, $04, $04, $04
+	db $00, $01, $02, $03, $04, $04, $04, $04
+	db $00, $00, $01, $02, $03, $04, $04, $04
+	db $00, $00, $00, $01, $02, $03, $04, $04
+	db $00, $00, $00, $00, $01, $02, $03, $04
+	db $00, $00, $00, $00, $00, $01, $02, $03
+	db $00, $00, $00, $00, $00, $00, $01, $02
+	db $00, $00, $00, $00, $00, $00, $00, $01
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+	db $00, $00, $00, $00, $00, $00, $00, $00
+; 10327a
+
+Unknown_10327a: ; 10327a
+	db $00, $00, $00, $00
+	db $00, $00, $01, $00
+	db $00, $00, $02, $00
+	db $00, $00, $03, $00
+	db $00, $00, $01, $01
+	db $00, $00, $00, $00
+	db $00, $00, $01, $02
+	db $00, $00, $02, $02
+	db $00, $00, $03, $02
+	db $00, $00, $01, $03
+
+GFX_1032a2:
+INCBIN "gfx/unknown/1032a2.2bpp"
+
+Palettes_1032e2:
+	RGB  0,  0,  0
+	RGB 31, 31,  7
+	RGB 20, 31,  6
+	RGB 13, 20, 16
+
+	RGB  0,  0,  0
+	RGB  7, 11, 17
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB  0,  0,  0
+	RGB 31, 24,  4
+	RGB 25, 12,  0
+	RGB 31,  7,  4
+
+	RGB  0,  0,  0
+	RGB 25,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+; 103302
+
+Function103302: ; 103302
+	call Function103309
+	call Function103362
+	ret
+; 103309
+
+Function103309: ; 103309
+	xor a
+	ld [hBGMapMode], a
+	ld hl, Buffer1
+	ld bc, 10
+	xor a
+	call ByteFill
+	ld a, $04
+	call GetSRAMBank
+	ld a, [wdc41]
+	ld [$a60c], a
+	ld [Buffer1], a
+	call CloseSRAM
+	call Function1035c6
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld [wd1ef], a
+	ld a, [hli]
+	ld [wd1ec], a
+	ld a, [hli]
+	ld [wd1ed], a
+	ld h, d
+	ld l, e
+	call Function3eea
+	ld hl, wd1ec
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [hl]
+	ld [wd1ee], a
+	call Function1034be
+	call UpdateSprites
+	callba HDMATransferAttrMapAndTileMapToWRAMBank3
+	ld a, $01
+	ld [wd1f0], a
+	call Function10339a
+	ret
+; 103362
+
+Function103362: ; 103362
+.asm_103362
+	ld a, [wd1f0]
+	ld [wd1f1], a
+	call Function1033af
+	call Function10339a
+	call Function10342c
+	callba HDMATransferTileMapToWRAMBank3
+	ld a, [Buffer2]
+	bit 7, a
+	jr z, .asm_103362
+	ld hl, Buffer2
+	bit 6, [hl]
+	jr z, .asm_103398
+	ld a, $04
+	call GetSRAMBank
+	ld a, [Buffer1]
+	ld [$a60c], a
+	ld [wdc41], a
+	call CloseSRAM
+	xor a
+	ret
+
+.asm_103398
+	scf
+	ret
+; 10339a
+
+Function10339a: ; 10339a
+	ld a, [wd1f0]
+	ld [wd1f2], a
+	ld c, a
+	ld b, 0
+	ld hl, wd1ec
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, bc
+	ld a, [hl]
+	ld [wd1f3], a
+	ret
+; 1033af
+
+Function1033af: ; 1033af
+	call GetJoypad
+	ld a, [hJoyPressed]
+	bit D_LEFT_F, a
+	jr nz, .left
+	bit D_RIGHT_F, a
+	jr nz, .right
+	bit B_BUTTON_F, a
+	jr nz, .b
+	bit A_BUTTON_F, a
+	jr nz, .a
+	bit D_UP_F, a
+	jr nz, .up
+	bit D_DOWN_F, a
+	jr nz, .down
+	ret
+
+.up
+	ld a, [wd1f0]
+	dec a
+	ld [wd1f0], a
+	cp 1
+	ret nc
+	ld a, [wd1ee]
+	ld [wd1f0], a
+	ret
+
+.down
+	ld a, [wd1f0]
+	inc a
+	ld [wd1f0], a
+	ld c, a
+	ld a, [wd1ee]
+	cp c
+	ret nc
+	ld a, 1
+	ld [wd1f0], a
+	ret
+
+.b
+	call PlayClickSFX
+	ld hl, Buffer2
+	set 7, [hl]
+	ret
+
+.a
+	ld a, [wd1f3]
+	cp 3
+	jr nz, .a_return
+	ld de, SFX_TRANSACTION
+	call PlaySFX
+	ld hl, Buffer2
+	set 7, [hl]
+	ld hl, Buffer2
+	set 6, [hl]
+	ret
+
+.left
+.right
+.a_return
+	ld a, [wd1f3]
+	cp 3
+	ret z
+	ld de, SFX_PUSH_BUTTON
+	call PlaySFX
+	ld bc, 8
+	call Function10350f
+	ld a, [Buffer1]
+	xor e
+	ld [Buffer1], a
+	ret
+; 10342c
+
+Function10342c: ; 10342c
+	ld a, [wd1f0]
+	ld [wd1f2], a
+	call Function103490
+	call Function10343c
+	call Function1034a7
+	ret
+; 10343c
+
+Function10343c: ; 10343c
+	ld a, [wd1f3]
+	cp $02
+	jr nz, .asm_103452
+	ld bc, 1
+	call Function1034f7
+	ld c, $12
+	ld b, $01
+	call Function1034e0
+	jr .asm_10345f
+
+.asm_103452
+	ld bc, $ffed
+	call Function1034f7
+	ld c, $12
+	ld b, $02
+	call Function1034e0
+
+.asm_10345f
+	ld bc, 0
+	call Function10350f
+	ld bc, 1
+	call Function103487
+	ld bc, 8
+	call Function10350f
+	ld a, [Buffer1]
+	and e
+	ld bc, 2
+	jr z, .asm_10347d
+	ld bc, 4
+
+.asm_10347d
+	call Function10350f
+	ld bc, 11
+	call Function103487
+	ret
+; 103487
+
+Function103487: ; 103487
+	push de
+	call Function1034f7
+	pop de
+	call PlaceString
+	ret
+; 103490
+
+Function103490: ; 103490
+	hlcoord 0, 15
+	ld c, $14
+	ld b, $03
+	call Function1034e0
+	ld bc, 6
+	call Function10350f
+	hlcoord 1, 16
+	call PlaceString
+	ret
+; 1034a7
+
+Function1034a7: ; 1034a7
+	ld a, [wd1f1]
+	ld [wd1f2], a
+	ld bc, 10
+	call Function1034f7
+	ld [hl], $7f
+	ld bc, 10
+	call Function1034f1
+	ld [hl], $ed
+	ret
+; 1034be
+
+Function1034be: ; 1034be
+	ld a, $01
+	ld [wd1f2], a
+	ld hl, wd1ec
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [hli]
+.asm_1034ca
+	push af
+	ld a, [hli]
+	push hl
+	ld [wd1f3], a
+	call Function10343c
+	ld hl, wd1f2
+	inc [hl]
+	pop hl
+	pop af
+	dec a
+	jr nz, .asm_1034ca
+	call Function103490
+	ret
+; 1034e0
+
+Function1034e0: ; 1034e0
+	push bc
+	push hl
+	call ClearBox
+	pop hl
+	ld bc, AttrMap - TileMap
+	add hl, bc
+	pop bc
+	ld a, $06
+	call FillBoxWithByte
+	ret
+; 1034f1
+
+Function1034f1: ; 1034f1
+	ld a, [wd1f0]
+	ld [wd1f2], a
+
+Function1034f7: ; 10134f7
+	hlcoord 0, 0
+	add hl, bc
+	ld a, [wd1ef]
+	ld bc, SCREEN_WIDTH
+	call AddNTimes
+	ld a, [wd1f2]
+	dec a
+	ld bc, 40
+	call AddNTimes
+	ret
+; 10350f
+
+Function10350f: ; 10350f
+	ld a, [wd1f3]
+	push bc
+	ld hl, Unknown_103522
+	ld bc, 9
+	call AddNTimes
+	pop bc
+	add hl, bc
+	ld a, [hli]
+	ld d, [hl]
+	ld e, a
+	ret
+; 103522
+
+Unknown_103522: ; 103522
+	dw String_103546
+	dw String_103598
+	dw String_1035a0
+	dw String_10355f
+	db $01
+	dw String_10354f
+	dw String_1035a8
+	dw String_1035b1
+	dw String_103571
+	db $02
+	dw String_103557
+	dw String_1035ba
+	dw String_1035bd
+	dw String_103585
+	db $04
+	dw String_103545
+	dw String_1035c1
+	dw String_1035c1
+	dw String_103545
+
+String_103545: db "@"
+String_103546: db "せんとう アニメ@"
+String_10354f: db "でんわばんごう@"
+String_103557: db "めいしこうかん@"
+String_10355f: db "でんわを かけるひとが きめられる@"
+String_103571: db "でんわばんごうの にゅうりょくのしかた@"
+String_103585: db "あたらしいめいしが あれば こうかん@"
+String_103598: db "とばして みる@"
+String_1035a0: db "じっくり みる@"
+String_1035a8: db "めいしからえらぶ@"
+String_1035b1: db "すうじで いれる@"
+String_1035ba: db "する@"
+String_1035bd: db "しない@"
+String_1035c1: db "けってい@"
+; 1035c6
+
+Function1035c6: ; 1035c6
+	callba Function10138b
+	ld b, 0
+	ld hl, Unknown_1035d7
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ret
+; 1035d7
+
+Unknown_1035d7: ; 1035d7
+	dw Unknown_1035e7
+	dw Unknown_1035f3
+	dw Unknown_103608
+	dw Unknown_103608
+	dw Unknown_1035fe
+	dw AskMobileOrCable
+	dw AskMobileOrCable
+	dw AskMobileOrCable
+
+Unknown_1035e7: ; 1035e7
+	dwcoord 0, 6
+	db $12, $07, $07
+	dw .this
+.this
+	db 4, 2, 1, 0, 3
+
+Unknown_1035f3: ; 1035f3
+	dwcoord 0, 7
+	db $12, $06, $09
+	dw .this
+.this
+	db 3, 2, 1, 3
+
+Unknown_1035fe: ; 1035fe
+	dwcoord 0, 9
+	db $12, $04, $0b
+	dw .this
+.this
+	db 2, 0, 3
+
+Unknown_103608: ; 103608
+	dwcoord 0, 9
+	db $12, $04, $0b
+	dw .this
+.this
+	db 2, 2, 3
+; 103612
+
+AskMobileOrCable: ; 103612
+	ld hl, MenuDataHeader_103640
+	call LoadMenuDataHeader
+	ld a, [wMobileOrCable_LastSelection]
+	and $0f
+	jr z, .skip_load
+	ld [wMenuCursorBuffer], a
+
+.skip_load
+	call VerticalMenu
+	call CloseWindow
+	jr c, .pressed_b
+	ld a, [wMenuCursorY]
+	ld [ScriptVar], a
+	ld c, a
+	ld a, [wMobileOrCable_LastSelection]
+	and $f0
+	or c
+	ld [wMobileOrCable_LastSelection], a
+	ret
+
+.pressed_b
+	xor a
+	ld [ScriptVar], a
+	ret
+; 103640
+
+MenuDataHeader_103640: ; 103640
+	db $40 ; flags
+	db  6, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_103648
+	db 1 ; default option
+
+MenuData2_103648: ; 103648
+	db $80 ; flags
+	db 2
+	db "モバイル@"
+	db "ケーブル@"
+; 103654
+
+Function103654: ; 103654
+	callba Mobile_AlwaysReturnNotCarry
+	bit 7, c
+	jr nz, .asm_103666
+	ld hl, wcd2a
+	res 5, [hl]
+	ld c, $02
+	ret
+
+.asm_103666
+	ld hl, wcd2a
+	set 5, [hl]
+	ld c, $01
+	ret
+; 10366e
+
+Mobile_SelectThreeMons: ; 10366e
+	callba Mobile_AlwaysReturnNotCarry
+	bit 7, c
+	jr z, .asm_10369b
+	ld hl, UnknownText_0x10375d
+	call PrintText
+	call YesNoBox
+	jr c, .asm_103696
+	callba CheckForMobileBattleRules
+	jr nc, .asm_103690
+	call JoyWaitAorB
+	jr .asm_103696
+
+.asm_103690
+	ld a, $01
+	ld [ScriptVar], a
+	ret
+
+.asm_103696
+	xor a
+	ld [ScriptVar], a
+	ret
+
+.asm_10369b
+	ld hl, wMobileOrCable_LastSelection
+	bit 7, [hl]
+	set 7, [hl]
+	jr nz, .asm_1036b5
+	ld hl, UnknownText_0x103762
+	call PrintText
+	call YesNoBox
+	jr c, .asm_1036b5
+	call Function1036f9
+	call JoyWaitAorB
+
+.asm_1036b5
+	call Function103700
+	jr c, .asm_1036f4
+	ld hl, MenuDataHeader_103747
+	call LoadMenuDataHeader
+	call VerticalMenu
+	call ExitMenu
+	jr c, .asm_1036f4
+	ld a, [wMenuCursorY]
+	cp $01
+	jr z, .asm_1036d9
+	cp $02
+	jr z, .asm_1036f4
+	cp $03
+	jr z, .asm_1036ec
+	jr .asm_1036b5
+
+.asm_1036d9
+	callba CheckForMobileBattleRules
+	jr nc, .asm_1036e6
+	call JoyWaitAorB
+	jr .asm_1036f4
+
+.asm_1036e6
+	ld a, $01
+	ld [ScriptVar], a
+	ret
+
+.asm_1036ec
+	call Function1036f9
+	call JoyWaitAorB
+	jr .asm_1036b5
+
+.asm_1036f4
+	xor a
+	ld [ScriptVar], a
+	ret
+; 1036f9
+
+Function1036f9: ; 1036f9
+	ld hl, UnknownText_0x103767
+	call PrintText
+	ret
+; 103700
+
+Function103700: ; 103700
+	ld c, $0a
+	ld hl, SwarmFlags
+	bit 4, [hl]
+	jr z, .asm_10370f
+	callba Function1008a6
+
+.asm_10370f
+	ld a, c
+	ld [StringBuffer2], a
+	ld a, [StringBuffer2]
+	cp $05
+	jr nc, .asm_103724
+	cp $02
+	jr nc, .asm_10372c
+	cp $01
+	jr nc, .asm_103734
+	jr .asm_10373c
+
+.asm_103724
+	ld hl, UnknownText_0x10376c
+	call PrintText
+	and a
+	ret
+
+.asm_10372c
+	ld hl, UnknownText_0x103771
+	call PrintText
+	and a
+	ret
+
+.asm_103734
+	ld hl, UnknownText_0x103776
+	call PrintText
+	and a
+	ret
+
+.asm_10373c
+	ld hl, UnknownText_0x10377b
+	call PrintText
+	call JoyWaitAorB
+	scf
+	ret
+; 103747
+
+MenuDataHeader_103747: ; 103747
+	db $40 ; flags
+	db  5, 13 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_10374f
+	db 1 ; default option
+
+MenuData2_10374f: ; 10374f
+	db $c0 ; flags
+	db 3
+	db "はい@"
+	db "やめる@"
+	db "せつめい@"
+; 10375d
+
+UnknownText_0x10375d: ; 0x10375d
+	text_jump UnknownText_0x1c422a
+	db "@"
+; 0x103762
+UnknownText_0x103762: ; 0x103762
+	text_jump UnknownText_0x1c4275
+	db "@"
+; 0x103767
+UnknownText_0x103767: ; 0x103767
+	text_jump UnknownText_0x1c4298
+	db "@"
+; 0x10376c
+UnknownText_0x10376c: ; 0x10376c
+	text_jump UnknownText_0x1c439c
+	db "@"
+; 0x103771
+UnknownText_0x103771: ; 0x103771
+	text_jump UnknownText_0x1c43dc
+	db "@"
+; 0x103776
+UnknownText_0x103776: ; 0x103776
+	text_jump UnknownText_0x1c4419
+	db "@"
+; 0x10377b
+UnknownText_0x10377b: ; 0x10377b
+	text_jump UnknownText_0x1c445a
+	db "@"
+; 0x103780
+
+Function103780: ; 103780
+	ld a, [wd265]
+	push af
+	call Function10378c
+	pop af
+	ld [wd265], a
+	ret
+; 10378c
+
+Function10378c: ; 10378c
+	ld c, 0
+	ld hl, SwarmFlags
+	bit 4, [hl]
+	jr nz, .already_set
+	ld c, $01
+	ld hl, SwarmFlags
+	set 4, [hl]
+
+.already_set
+	push bc
+	callba Link_SaveGame
+	pop bc
+	jr c, .failed_to_save
+	ld a, $01
+	ld [ScriptVar], a
+	ld a, c
+	and a
+	ret z
+	callba Function1006fd
+	ret
+
+.failed_to_save
+	xor a
+	ld [ScriptVar], a
+	ld a, c
+	and a
+	ret z
+	ld hl, SwarmFlags
+	res 4, [hl]
+	ret
+; 1037c2
+
+Function1037c2: ; 1037c2
+	call Function103823
+	jr c, .nope
+	ld a, [wdc5f]
+	and a
+	jr z, .nope
+	ld hl, UnknownText_0x1037e6
+	call PrintText
+	call YesNoBox
+	jr c, .nope
+	ld a, $01
+	ld [ScriptVar], a
+	ret
+
+.nope
+	xor a
+	ld [wdc5f], a
+	ld [ScriptVar], a
+	ret
+; 1037e6
+
+UnknownText_0x1037e6: ; 0x1037e6
+	text_jump UnknownText_0x1c449c
+	db "@"
+; 0x1037eb
+
+Function1037eb: ; 1037eb
+	call Function103823
+	jr nc, .asm_103807
+	ld hl, UnknownText_0x103819
+	call PrintText
+	call JoyWaitAorB
+	ld hl, UnknownText_0x10381e
+	call PrintText
+	call JoyWaitAorB
+	xor a
+	ld [ScriptVar], a
+	ret
+
+.asm_103807
+	ld a, [wdc60]
+	and a
+	jr nz, .asm_103813
+	ld a, $01
+	ld [ScriptVar], a
+	ret
+
+.asm_103813
+	ld a, $02
+	ld [ScriptVar], a
+	ret
+; 103819
+
+UnknownText_0x103819: ; 0x103819
+	text_jump UnknownText_0x1c44c0
+	db "@"
+; 0x10381e
+
+UnknownText_0x10381e: ; 0x10381e
+	text_jump UnknownText_0x1c44e7
+	db "@"
+; 0x103823
+
+Function103823: ; 103823
+	callba Mobile_AlwaysReturnNotCarry
+	bit 7, c
+	jr nz, .asm_103838
+	callba Function1008a6
+	ld a, c
+	cp $01
+	jr c, .asm_10383a
+
+.asm_103838
+	xor a
+	ret
+
+.asm_10383a
+	scf
+	ret
+; 10383c
+
+Function10383c: ; 10383c
+	ld a, $01
+	ld [wdc60], a
+	xor a
+	ld hl, wPlayerMonSelection
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+	ld hl, UnknownText_0x103876
+	call PrintText
+	call JoyWaitAorB
+	callba Script_reloadmappart
+	callba Function4a94e
+	jr c, .asm_103870
+	ld hl, wd002
+	ld de, wPlayerMonSelection
+	ld bc, 3
+	call CopyBytes
+	xor a
+	ld [ScriptVar], a
+	ret
+
+.asm_103870
+	ld a, $01
+	ld [ScriptVar], a
+	ret
+; 103876
+
+UnknownText_0x103876: ; 0x103876
+	text_jump UnknownText_0x1c4508
+	db "@"
+; 0x10387b
+
+Function10387b: ; 10387b
+	callba Mobile_AlwaysReturnNotCarry
+	bit 7, c
+	ret nz
+	callba Function1008a6
+	ld a, c
+	ld [StringBuffer2], a
+	ld hl, UnknownText_0x103898
+	call PrintText
+	call JoyWaitAorB
+	ret
+; 103898
+
+UnknownText_0x103898: ; 0x103898
+	text_jump UnknownText_0x1c4525
+	db "@"
+; 0x10389d
--- /dev/null
+++ b/mobile/mobile_41.asm
@@ -1,0 +1,1115 @@
+SECTION "bank41_2", ROMX
+
+; These functions deal with miscellaneous statistics
+; which were used for Trainer Rankings in Pokémon News.
+
+; Copies certain values at the time the player enters the Hall of Fame.
+TrainerRankings_HallOfFame2:: mobile ; 0x105ef6
+	ld a, BANK(sTrainerRankingGameTimeHOF)
+	call GetSRAMBank
+
+	ld hl, GameTimeHours
+	ld de, sTrainerRankingGameTimeHOF
+	ld bc, 4
+	call CopyBytes
+
+	ld hl, sTrainerRankingStepCount
+	ld de, sTrainerRankingStepCountHOF
+	ld bc, 4
+	call CopyBytes
+
+	; sTrainerRankingHealings is only a 3-byte value.
+	; One extraneous byte is copied from sTrainerRankingMysteryGift.
+	ld hl, sTrainerRankingHealings
+	ld de, sTrainerRankingHealingsHOF
+	ld bc, 4
+	call CopyBytes
+
+	ld hl, sTrainerRankingBattles
+	ld de, sTrainerRankingBattlesHOF
+	ld bc, 3
+	call CopyBytes
+
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	ret
+; 105f33
+
+TrainerRankings_MagikarpLength: mobile ; 105f33
+	ld a, BANK(sTrainerRankingLongestMagikarp)
+	call GetSRAMBank
+	ld de, Buffer1
+	ld hl, sTrainerRankingLongestMagikarp
+
+	; Is this Magikarp the longest measured?
+	ld a, [de]
+	cp [hl]
+	jr z, .isLowByteHigher
+	jr nc, .newRecordLongest
+	jr .checkShortest
+
+.isLowByteHigher
+	inc hl
+	inc de
+	ld a, [de]
+	cp [hl]
+	dec hl
+	dec de
+	jr c, .checkShortest
+
+.newRecordLongest
+	ld a, [de]
+	inc de
+	ld [hli], a
+	ld a, [de]
+	dec de
+	ld [hl], a
+
+.checkShortest
+	; First, check if the record for shortest Magikarp is 0.
+	; This seems unnecessary, because the value is initialized to 100.0 cm.
+	ld hl, sTrainerRankingShortestMagikarp
+	ld a, [hli]
+	or [hl]
+	dec hl
+	jr z, .newRecordShortest
+
+	; Now check if this Magikarp is the shortest
+	ld a, [de]
+	cp [hl]
+	jr z, .isLowByteLower
+	jr c, .newRecordShortest
+	jr .done
+
+.isLowByteLower
+	inc hl
+	inc de
+	ld a, [de]
+	cp [hl]
+	jr nc, .done
+	dec hl
+	dec de
+
+.newRecordShortest
+	ld a, [de]
+	inc de
+	ld [hli], a
+	ld a, [de]
+	ld [hl], a
+
+.done
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	ret
+; 105f79
+
+TrainerRankings_BugContestScore: mobile ; 105f79
+	ld a, BANK(sTrainerRankingBugContestScore)
+	call GetSRAMBank
+	ld a, [hProduct]
+	ld hl, sTrainerRankingBugContestScore
+	cp [hl]
+	jr z, .isLowByteHigher
+	jr nc, .newHighScore
+	jr .done
+
+.isLowByteHigher
+	inc hl
+	ld a, [hMultiplicand]
+	cp [hl]
+	jr c, .done
+	dec hl
+
+.newHighScore
+	ld a, [hProduct]
+	ld [hli], a
+	ld a, [hMultiplicand]
+	ld [hl], a
+
+.done
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	ret
+; 105f9f
+
+TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f
+	ld a, BANK(sTrainerRankingCurrentSlotsStreak)
+	call GetSRAMBank
+
+	; Increment the current streak
+	ld hl, sTrainerRankingCurrentSlotsStreak + 1
+	inc [hl]
+	jr nz, .noCarry
+	dec hl
+	inc [hl]
+	inc hl
+
+.noCarry
+	dec hl
+	; Now check if this is a new record for longest streak
+	ld a, [sTrainerRankingLongestSlotsStreak]
+	cp [hl]
+	jr z, .isLowByteHigher
+	jr c, .newRecordStreak
+	jr .done
+
+.isLowByteHigher
+	inc hl
+	ld a, [sTrainerRankingLongestSlotsStreak + 1]
+	cp [hl]
+	jr nc, .done
+	dec hl
+
+.newRecordStreak
+	ld a, [hli]
+	ld [sTrainerRankingLongestSlotsStreak], a
+	ld a, [hl]
+	ld [sTrainerRankingLongestSlotsStreak + 1], a
+
+.done
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	ret
+; 105fd0
+
+TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0
+	ld a, BANK(sTrainerRankingCurrentSlotsStreak)
+	call GetSRAMBank
+	ld hl, sTrainerRankingCurrentSlotsStreak
+	xor a
+	ld [hli], a
+	ld [hl], a
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	ret
+; 105fe3
+
+TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3
+	ld a, BANK(sTrainerRankingTotalSlotsPayouts)
+	call GetSRAMBank
+	ld hl, sTrainerRankingTotalSlotsPayouts + 3
+	ld a, e
+	add [hl]
+	ld [hld], a
+	ld a, d
+	adc [hl]
+	ld [hld], a
+	jr nc, .done
+	inc [hl]
+	jr nz, .done
+	dec hl
+	inc [hl]
+	jr nz, .done
+	ld a, $ff
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+
+.done
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	ret
+; 106008
+
+TrainerRankings_AddToBattlePayouts: mobile ; 106008
+	ld a, BANK(sTrainerRankingTotalBattlePayouts)
+	call GetSRAMBank
+	ld hl, sTrainerRankingTotalBattlePayouts + 3
+	ld a, [bc]
+	dec bc
+	add [hl]
+	ld [hld], a
+	ld a, [bc]
+	dec bc
+	adc [hl]
+	ld [hld], a
+	ld a, [bc]
+	adc [hl]
+	ld [hld], a
+	jr nc, .done
+	inc [hl]
+	jr nz, .done
+	ld a, $ff
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ld [hl], a
+
+.done
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	ret
+; 10602e
+
+TrainerRankings_StepCount: mobile ; 10602e (41:602e)
+	ld hl, sTrainerRankingStepCount
+	jp TrainerRankings_Increment4Byte
+
+; Unreferenced in English version.
+TrainerRankings_BattleTowerWins: mobile ; 106035
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$aa8d]
+	and a
+	call CloseSRAM
+	ret nz
+	ld hl, sTrainerRankingBattleTowerWins
+	jp TrainerRankings_Increment2Byte
+
+TrainerRankings_TMsHMsTaught: mobile ; 106049
+	ld hl, sTrainerRankingTMsHMsTaught
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Battles: mobile ; 106050
+	ld a, [BattleType]
+	cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
+	ret z
+	ld hl, sTrainerRankingBattles
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_WildBattles: mobile ; 10605d
+	ld a, [BattleType]
+	cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
+	ret z
+	ld hl, sTrainerRankingWildBattles
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_TrainerBattles: mobile ; 10606a
+	ld hl, sTrainerRankingTrainerBattles
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused1: mobile ; 106071
+	ld hl, sTrainerRankingUnused1
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_HallOfFame:: mobile ; 0x106078
+	ld hl, sTrainerRankingHOFEntries
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f)
+	ld hl, sTrainerRankingWildMonsCaught
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_HookedEncounters: mobile ; 106086
+	ld hl, sTrainerRankingHookedEncounters
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_EggsHatched: mobile ; 10608d (41:608d)
+	ld hl, sTrainerRankingEggsHatched
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_MonsEvolved: mobile ; 106094
+	ld hl, sTrainerRankingMonsEvolved
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_FruitPicked: mobile ; 10609b
+	ld hl, sTrainerRankingFruitPicked
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Healings: mobile ; 1060a2
+	ld hl, sTrainerRankingHealings
+	jp TrainerRankings_Increment3Byte
+
+TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9)
+	ld hl, sTrainerRankingMysteryGift
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Trades: mobile ; 1060af
+	ld hl, sTrainerRankingTrades
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Fly: mobile ; 1060b5
+	ld hl, sTrainerRankingFly
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Surf: mobile ; 1060bb
+	ld hl, sTrainerRankingSurf
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Waterfall: mobile ; 1060c1
+	ld hl, sTrainerRankingWaterfall
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_WhiteOuts: mobile ; 1060c7
+	ld hl, sTrainerRankingWhiteOuts
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_LuckyNumberShow: mobile ; 1060cd
+	ld hl, sTrainerRankingLuckyNumberShow
+	jr TrainerRankings_Increment2Byte
+
+TrainerRankings_PhoneCalls: mobile ; 1060d3
+	ld hl, sTrainerRankingPhoneCalls
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused2: mobile ; 1060df
+	ld hl, sTrainerRankingUnused2
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_LinkBattles: mobile ; 1060df
+	ld hl, sTrainerRankingLinkBattles
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Splash: mobile ; 1060e5
+	; Only counts if it’s the player’s turn
+	ld a, [hBattleTurn]
+	and a
+	ret nz
+	ld hl, sTrainerRankingSplash
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_TreeEncounters: mobile ; 1060ef
+	ld hl, sTrainerRankingTreeEncounters
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused3: mobile ; 1060f5
+	ld hl, sTrainerRankingUnused3
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_ColosseumWins: mobile ; win
+	ld hl, sTrainerRankingColosseumWins
+	jr TrainerRankings_Increment3Byte
+
+TrainerRankings_ColosseumLosses: mobile ; lose
+	ld hl, sTrainerRankingColosseumLosses
+	jr TrainerRankings_Increment3Byte
+; 106107
+
+TrainerRankings_ColosseumDraws: mobile ; draw
+	ld hl, sTrainerRankingColosseumDraws
+	jr TrainerRankings_Increment3Byte
+; 10610d
+
+; Counts uses of both Selfdestruct and Explosion.
+TrainerRankings_Selfdestruct: mobile ; 10610d
+	; Only counts if it’s the player’s turn
+	ld a, [hBattleTurn]
+	and a
+	ret nz
+	ld hl, sTrainerRankingSelfdestruct
+	jr TrainerRankings_Increment3Byte
+; 106117
+
+TrainerRankings_Increment4Byte: ; 106117
+	push bc
+	ld bc, 3
+	jr TrainerRankings_Increment
+; 10611d
+
+TrainerRankings_Increment3Byte: ; 10611d
+	push bc
+	ld bc, 2
+	jr TrainerRankings_Increment
+; 106123
+
+TrainerRankings_Increment2Byte: ; 106123
+	push bc
+	ld bc, 1
+	jr TrainerRankings_Increment
+; 106129
+
+; unused
+TrainerRankings_Increment1Byte: ; 106129
+	push bc
+	ld bc, 0
+
+; Increments a big-endian value of bc + 1 bytes at hl
+TrainerRankings_Increment: ; 10612d
+	ld a, BANK(sTrainerRankings)
+	call GetSRAMBank
+	push hl
+	push de
+	ld e, c
+	inc e
+.asm_106136
+	ld a, [hli]
+	inc a
+	jr nz, .asm_10613d
+	dec e
+	jr nz, .asm_106136
+
+.asm_10613d
+	pop de
+	pop hl
+	jr z, .asm_10614d
+	add hl, bc
+.asm_106142
+	inc [hl]
+	jr nz, .asm_10614d
+	ld a, c
+	and a
+	jr z, .asm_10614d
+	dec hl
+	dec c
+	jr .asm_106142
+
+.asm_10614d
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	pop bc
+	ret
+; 106155
+
+; Used when SRAM bank 5 isn’t already loaded — what’s the point of this?
+UpdateTrainerRankingsChecksum2: mobile ; 106155
+	ld a, BANK(sTrainerRankings)
+	call GetSRAMBank
+	call UpdateTrainerRankingsChecksum
+	call CloseSRAM
+	ret
+; 106162
+
+UpdateTrainerRankingsChecksum: ; 106162
+	push de
+	call CalculateTrainerRankingsChecksum
+	ld hl, sTrainerRankingsChecksum
+	ld [hl], d
+	inc hl
+	ld [hl], e
+	pop de
+	ret
+; 10616e
+
+CalculateTrainerRankingsChecksum: ; 10616e
+	push bc
+	ld hl, sTrainerRankings
+	ld bc, sTrainerRankingsChecksum - sTrainerRankings
+	xor a
+	ld de, 0
+.asm_106179
+	ld a, e
+	add [hl]
+	ld e, a
+	jr nc, .asm_10617f
+	inc d
+
+.asm_10617f
+	inc hl
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_106179
+	pop bc
+	ret
+; 106187
+
+
+BackupMobileEventIndex: ; 106187
+	ld a, BANK(sMobileEventIndex)
+	call GetSRAMBank
+	ld a, [sMobileEventIndex]
+	push af
+	ld a, BANK(sMobileEventIndexBackup)
+	call GetSRAMBank
+	pop af
+	ld [sMobileEventIndexBackup], a
+	call CloseSRAM
+	ret
+; 10619d
+
+
+RestoreMobileEventIndex: ; 10619d (41:619d)
+	ld a, BANK(sMobileEventIndexBackup)
+	call GetSRAMBank
+	ld a, [sMobileEventIndexBackup]
+	push af
+	ld a, BANK(sMobileEventIndex)
+	call GetSRAMBank
+	pop af
+	ld [sMobileEventIndex], a
+	call CloseSRAM
+	ret
+; 1061b3 (41:61b3)
+
+; Unreferenced in English version.
+VerifyTrainerRankingsChecksum: ; 1061b3
+	call CalculateTrainerRankingsChecksum
+	ld hl, sTrainerRankingsChecksum
+	ld a, d
+	cp [hl]
+	ret nz
+	inc hl
+	ld a, e
+	cp [hl]
+	ret
+; 1061c0
+
+DeleteMobileEventIndex: ; 1061c0 (41:61c0)
+	ld a, BANK(sMobileEventIndex)
+	call GetSRAMBank
+	xor a
+	ld [sMobileEventIndex], a
+	call CloseSRAM
+	ret
+; 1061cd (41:61cd)
+
+; Used in the Japanese version to initialize Trainer Rankings data
+; for a new save file. Unreferenced in the English version.
+InitializeTrainerRankings:
+	ld hl, sTrainerRankings
+	ld bc, sTrainerRankingsEnd - sTrainerRankings
+	xor a
+	call ByteFill
+
+	; Initialize the shortest Magikarp to 100.0 cm
+	ld hl, sTrainerRankingShortestMagikarp
+	ld a, $3
+	ld [hli], a
+	ld [hl], $e8
+
+	call UpdateTrainerRankingsChecksum
+	ld hl, sTrainerRankings
+	ld de, sTrainerRankingsBackup
+	ld bc, sTrainerRankingsEnd - sTrainerRankings
+	call CopyBytes
+	ret
+; 1061ef
+
+
+_MobilePrintNum:: ; 1061ef
+; Supports signed 31-bit integers (up to 10 digits)
+; b: Bits 0-4 = # bytes
+;    Bit 7 = set if negative
+; c: Number of digits
+; de: highest byte of number to convert
+; hl: where to print the converted string
+	push bc
+	xor a
+	ld [hPrintNum1], a
+	ld [hPrintNum2], a
+	ld [hPrintNum3], a
+	ld a, b
+	and $f
+	cp $1
+	jr z, .one_byte
+	cp $2
+	jr z, .two_bytes
+	cp $3
+	jr z, .three_bytes
+; four bytes
+	ld a, [de]
+	ld [hPrintNum1], a
+	inc de
+
+.three_bytes
+	ld a, [de]
+	ld [hPrintNum2], a
+	inc de
+
+.two_bytes
+	ld a, [de]
+	ld [hPrintNum3], a
+	inc de
+
+.one_byte
+	ld a, [de]
+	ld [hPrintNum4], a
+	inc de
+
+	push de
+	xor a
+	ld [hPrintNum9], a
+	ld a, b
+	ld [hPrintNum10], a
+	ld a, c
+	cp 2
+	jr z, .two_digits
+	ld de, ._2
+	cp 3
+	jr z, .three_to_nine_digits
+	ld de, ._3
+	cp 4
+	jr z, .three_to_nine_digits
+	ld de, ._4
+	cp 5
+	jr z, .three_to_nine_digits
+	ld de, ._5
+	cp 6
+	jr z, .three_to_nine_digits
+	ld de, ._6
+	cp 7
+	jr z, .three_to_nine_digits
+	ld de, ._7
+	cp 8
+	jr z, .three_to_nine_digits
+	ld de, ._8
+	cp 9
+	jr z, .three_to_nine_digits
+	ld de, ._9
+
+.three_to_nine_digits
+	inc de
+	inc de
+	inc de
+	dec a
+	dec a
+
+.digit_loop
+	push af
+	call .Function1062b2
+	call .Function1062ff
+rept 4
+	inc de
+endr
+	pop af
+	dec a
+	jr nz, .digit_loop
+
+.two_digits
+	ld c, 0
+	ld a, [hPrintNum4]
+.mod_ten_loop
+	cp 10
+	jr c, .simple_divide_done
+	sub 10
+	inc c
+	jr .mod_ten_loop
+
+.simple_divide_done
+	ld b, a
+	ld a, [hPrintNum9]
+	or c
+	ld [hPrintNum9], a
+	jr nz, .create_digit
+	call .LoadMinusTenIfNegative
+	jr .done
+
+.create_digit
+	ld a, "0"
+	add c
+	ld [hl], a
+
+.done
+	call .Function1062ff
+	ld a, "0"
+	add b
+	ld [hli], a
+	pop de
+	pop bc
+	ret
+; 106292
+
+._9	dd 1000000000
+._8	dd 100000000
+._7	dd 10000000
+._6	dd 1000000
+._5	dd 100000
+._4	dd 10000
+._3	dd 1000
+._2	dd 100
+; 1062b2
+
+.Function1062b2: ; 1062b2
+	ld c, $0
+.asm_1062b4
+	ld a, [de]
+	dec de
+	ld b, a
+	ld a, [hPrintNum4]
+	sub b
+	ld [hPrintNum8], a
+	ld a, [de]
+	dec de
+	ld b, a
+	ld a, [hPrintNum3]
+	sbc b
+	ld [hPrintNum7], a
+	ld a, [de]
+	dec de
+	ld b, a
+	ld a, [hPrintNum2]
+	sbc b
+	ld [hPrintNum6], a
+	ld a, [de]
+	inc de
+	inc de
+	inc de
+	ld b, a
+	ld a, [hPrintNum1]
+	sbc b
+	ld [hPrintNum5], a
+	jr c, .asm_1062eb
+	ld a, [hPrintNum5]
+	ld [hPrintNum1], a
+	ld a, [hPrintNum6]
+	ld [hPrintNum2], a
+	ld a, [hPrintNum7]
+	ld [hPrintNum3], a
+	ld a, [hPrintNum8]
+	ld [hPrintNum4], a
+	inc c
+	jr .asm_1062b4
+
+.asm_1062eb
+	ld a, [hPrintNum9]
+	or c
+	jr z, .LoadMinusTenIfNegative
+	ld a, -10
+	add c
+	ld [hl], a
+	ld [hPrintNum9], a
+	ret
+
+.LoadMinusTenIfNegative:
+	ld a, [hPrintNum10]
+	bit 7, a
+	ret z
+
+	ld [hl], -10
+	ret
+; 1062ff
+
+.Function1062ff: ; 1062ff
+	ld a, [hPrintNum10]
+	bit 7, a
+	jr nz, .asm_10630d
+	bit 6, a
+	jr z, .asm_10630d
+	ld a, [hPrintNum9]
+	and a
+	ret z
+
+.asm_10630d
+	inc hl
+	ret
+; 10630f
+
+; functions related to the cable club and various NPC scripts referencing mobile communications
+
+Mobile_DummyReturnFalse: ; 10630f
+	xor a
+	ld [ScriptVar], a
+	ret
+; 106314
+
+MobileFn_106314: mobile ; 106314
+	ld a, $4
+	call GetSRAMBank
+	ld a, c
+	cpl
+	ld [$b000], a
+	call CloseSRAM
+	ld a, $7
+	call GetSRAMBank
+	ld a, c
+	ld [$a800], a
+	call CloseSRAM
+	ret
+; 10632f
+
+Mobile_AlwaysReturnNotCarry: ; 10632f
+	or a
+	ret
+
+Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
+	; check ~[4:b000] == [7:a800]
+	ld a, $4
+	call GetSRAMBank
+	ld a, [$b000]
+	cpl
+	ld b, a
+	call CloseSRAM
+	ld a, $7
+	call GetSRAMBank
+	ld a, [$a800]
+	ld c, a
+	call CloseSRAM
+	ld a, c
+	cp b
+	jr nz, .nope
+
+	; check [7:a800] != 0
+	and a
+	jr z, .nope
+
+	; check !([7:a800] & %01110000)
+	and %10001111
+	cp c
+	jr nz, .nope
+
+	ld c, a
+	scf
+	ret
+
+.nope
+	xor a
+	ld c, a
+	ret
+; 10635c
+
+Function10635c: ; 10635c
+	ld a, [wMobileCommsJumptableIndex]
+	bit 7, a
+	ret nz
+	ld a, [wMobileCommsJumptableIndex]
+	ld hl, .Jumptable
+	rst JumpTable
+	ret
+; 10636a
+
+.Jumptable: ; 10636a
+	dw .init
+	dw Function106392
+	dw Function1063cc
+	dw Function1063d8
+	dw Function1063e5
+	dw Function1063f3
+	dw Function106403
+	dw Function106442
+	dw Function106453
+; 10637c
+
+.init: ; 10637c
+	ld de, wcd30
+	ld hl, $41
+	ld bc, $41
+	ld a, $40
+	call Function3e32
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 106392
+
+Function106392: ; 106392
+	xor a
+	ld [wcf64], a
+	ld a, [wc821]
+	bit 1, a
+	jr nz, .asm_1063a2
+	bit 0, a
+	jr z, .asm_1063bf
+	ret
+
+.asm_1063a2
+	call Mobile_AlwaysReturnNotCarry
+	ld a, c
+	and a
+	jr nz, .asm_1063b4
+	ld a, $b
+	ld [wcf64], a
+	ld a, $7
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_1063b4
+	ld a, $7
+	ld [wcf64], a
+	ld a, $7
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_1063bf
+	ld a, $1
+	ld [wcf64], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1063cc
+
+Function1063cc: ; 1063cc
+	ld a, $78
+	ld [wcd42], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+
+Function1063d8: ; 1063d8
+	ld hl, wcd42
+	dec [hl]
+	ret nz
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1063e5
+
+Function1063e5: ; 1063e5
+	ld a, [wcf64]
+	cp $3
+	ret nz
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 1063f3
+
+Function1063f3: ; 1063f3
+	ld de, wcd31
+	ld a, $32
+	call Function3e32
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 106403
+
+Function106403: ; 106403
+	ld a, [wc821]
+	bit 1, a
+	jr nz, .asm_106426
+	bit 0, a
+	jr z, .asm_10640f
+	ret
+
+.asm_10640f
+	ld a, [wcd31]
+	and $80
+	ld c, a
+	ld a, [wcd30]
+	or c
+	inc a
+	ld c, a
+	call MobileFn_106314
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_106426
+	call Mobile_AlwaysReturnNotCarry
+	ld a, c
+	and a
+	jr z, .asm_106435
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+
+.asm_106435
+	ld c, $0
+	call MobileFn_106314
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+	ret
+; 106442
+
+Function106442: ; 106442
+	ld a, $36
+	call Function3e32
+	xor a
+	ld [hMobile], a
+	ld [hMobileReceive], a
+	ld a, [wMobileCommsJumptableIndex]
+	inc a
+	ld [wMobileCommsJumptableIndex], a
+
+Function106453: ; 106453
+	ld a, [wMobileCommsJumptableIndex]
+	set 7, a
+	ld [wMobileCommsJumptableIndex], a
+	nop
+	ld a, $4
+	ld [wcf64], a
+	ret
+; 106462
+
+MobileFunc_106462: mobile
+	ret
+; 106464
+
+Function106464:: ; 106464
+	ld de, MobilePhoneTilesGFX
+	ld hl, VTiles2 tile $60
+	lb bc, BANK(MobilePhoneTilesGFX), 1
+	call Get2bpp
+	ld de, FontsExtra2_UpArrowGFX
+	ld hl, VTiles2 tile $61
+	lb bc, BANK(FontsExtra2_UpArrowGFX), 1
+	call Get2bpp
+	ld de, GFX_106514
+	ld hl, VTiles2 tile $62
+	ld c, 9
+	ld b, BANK(GFX_106514)
+	call Get2bpp
+	ld de, $40b0
+	ld hl, VTiles2 tile $6b
+	ld b, $f ; XXX no graphics at 0f:40b0
+	call Get2bpp
+	callba LoadFrame
+	ret
+; 10649b
+
+Function10649b: ; 10649b
+	ld a, [TextBoxFrame]
+	and $7
+	ld bc, 3 tiles
+	ld hl, Frames
+	call AddNTimes
+	ld d, h
+	ld e, l
+	ld hl, VTiles2 tile $79
+	ld c, 6
+	ld b, BANK(Frames)
+	call Function1064c3
+	ld hl, VTiles2 tile $7f
+	ld de, TextBoxSpaceGFX
+	ld c, 1
+	ld b, BANK(TextBoxSpaceGFX)
+	call Function1064c3
+	ret
+; 1064c3
+
+Function1064c3: ; 1064c3
+	ld a, [rSVBK]
+	push af
+	ld a, $6
+	ld [rSVBK], a
+	push bc
+	push hl
+	ld hl, Function3f88
+	ld a, b
+	rst FarCall
+	pop hl
+	pop bc
+	pop af
+	ld [rSVBK], a
+	jr asm_1064ed
+
+Function1064d8: ; 1064d8
+	ld a, [rSVBK]
+	push af
+	ld a, $6
+	ld [rSVBK], a
+	push bc
+	push hl
+	ld hl, Function3f9f
+	ld a, b
+	rst FarCall
+	pop hl
+	pop bc
+	pop af
+	ld [rSVBK], a
+	jr asm_1064ed
+
+asm_1064ed
+	ld de, wDecompressScratch
+	ld b, $0
+	ld a, [rSVBK]
+	push af
+	ld a, $6
+	ld [rSVBK], a
+	ld a, [rVBK]
+	push af
+	ld a, $1
+	ld [rVBK], a
+	call Get2bpp
+	pop af
+	ld [rVBK], a
+	pop af
+	ld [rSVBK], a
+	ret
+; 10650a
+
+Function10650a: ; 10650a
+	ld de, MobilePhoneTilesGFX + $20
+	lb bc, BANK(MobilePhoneTilesGFX), $11
+	call Get2bpp
+	ret
+; 106514
+
+GFX_106514:
+INCBIN "gfx/unknown/106514.2bpp"
--- /dev/null
+++ b/mobile/mobile_42.asm
@@ -1,0 +1,2009 @@
+MobileTradeAnimation_SendGivemonToGTS: ; 108000
+	ld a, $80
+	ld [wcf65], a
+	ld de, .TradeAnimScript
+	jp RunMobileTradeAnim_NoFrontpics
+; 10800b
+
+.TradeAnimScript:
+	mobiletradeanim_showgtsgivemon
+	mobiletradeanim_12
+	mobiletradeanim_10
+	mobiletradeanim_sendmon
+	mobiletradeanim_06
+	mobiletradeanim_0f
+	mobiletradeanim_end
+
+MobileTradeAnimation_RetrieveGivemonFromGTS:
+	ld a, $80
+	jr asm_108018
+
+MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016
+	ld a, $0
+asm_108018:
+	ld [wcf65], a
+	ld de, .TradeAnimScript
+	jp RunMobileTradeAnim_NoFrontpics
+; 108021
+
+.TradeAnimScript:
+	mobiletradeanim_11
+	mobiletradeanim_07
+	mobiletradeanim_receivemon
+	mobiletradeanim_showgtsgetmon
+	mobiletradeanim_end
+
+Function108026: ; 108026
+	ld a, $0
+	jr asm_10802c
+
+Function10802a: ; 10802a
+	ld a, $1
+
+asm_10802c:
+	ld [wcf65], a
+	ld de, .TradeAnimScript
+	jp RunMobileTradeAnim_Frontpics
+; 108035
+
+.TradeAnimScript: ; trade
+	mobiletradeanim_showgivemon
+	mobiletradeanim_12
+	mobiletradeanim_02
+	mobiletradeanim_sendmon
+	mobiletradeanim_05
+	mobiletradeanim_receivemon
+	mobiletradeanim_showgetmon
+	mobiletradeanim_end
+
+Function10803d: ; 10803d
+	ld a, $0
+	ld [wcf65], a
+	ld de, .TradeAnimScript
+	jp RunMobileTradeAnim_NoFrontpics
+; 108048
+
+.TradeAnimScript:
+	mobiletradeanim_11
+	mobiletradeanim_07
+	mobiletradeanim_receivemon
+	mobiletradeanim_showoddegg
+	mobiletradeanim_end
+
+Function10804d: ; 10804d
+	ld a, $0
+	ld [wcf65], a
+	ld de, .TradeAnimScript
+	jp RunMobileTradeAnim_NoFrontpics
+; 108058
+
+.TradeAnimScript:
+	mobiletradeanim_11
+	mobiletradeanim_showgtsgetmon
+	mobiletradeanim_end
+
+RunMobileTradeAnim_Frontpics: ; 10805b
+	ld hl, wTradeAnimAddress
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld a, [hMapAnims]
+	push af
+	xor a
+	ld [hMapAnims], a
+	ld hl, VramState
+	ld a, [hl]
+	push af
+	res 0, [hl]
+	ld hl, Options
+	ld a, [hl]
+	push af
+	set NO_TEXT_SCROLL, [hl]
+	call Function1080b7
+.loop
+	call MobileTradeAnim_JumptableLoop
+	jr nc, .loop
+	pop af
+	ld [Options], a
+	pop af
+	ld [VramState], a
+	pop af
+	ld [hMapAnims], a
+	ret
+; 108089
+
+RunMobileTradeAnim_NoFrontpics: ; 108089
+	ld hl, wTradeAnimAddress
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld a, [hMapAnims]
+	push af
+	xor a
+	ld [hMapAnims], a
+	ld hl, VramState
+	ld a, [hl]
+	push af
+	res 0, [hl]
+	ld hl, Options
+	ld a, [hl]
+	push af
+	set NO_TEXT_SCROLL, [hl]
+	call Function108157
+.loop
+	call MobileTradeAnim_JumptableLoop
+	jr nc, .loop
+	pop af
+	ld [Options], a
+	pop af
+	ld [VramState], a
+	pop af
+	ld [hMapAnims], a
+	ret
+; 1080b7
+
+Function1080b7: ; 1080b7
+	xor a
+	ld [wJumptableIndex], a
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	call DisableLCD
+	call MobileTradeAnim_ClearVTiles
+	call MobileTradeAnim_ClearBGMap
+	call LoadStandardFont
+	call LoadFontsBattleExtra
+
+	ld a, $1
+	ld [rVBK], a
+	ld hl, LZ_108da7
+	ld de, VTiles2
+	call Decompress
+
+	ld a, $0
+	ld [rVBK], a
+	ld hl, LZ_108d27
+	ld de, VTiles0 tile $20
+	call Decompress
+
+	call EnableLCD
+
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	callba ClearSpriteAnims
+
+	call DelayFrame
+
+	ld de, TradeBallGFX
+	ld hl, VTiles0
+	lb bc, BANK(TradeBallGFX), $06
+	call Request2bpp
+
+	ld de, TradePoofGFX
+	ld hl, VTiles0 tile $06
+	lb bc, BANK(TradePoofGFX), $0c
+	call Request2bpp
+
+	xor a
+	ld hl, wSpriteAnimDict
+	ld [hli], a
+	ld [hl], $0
+
+	ld a, [wPlayerTrademonSpecies]
+	ld hl, wPlayerTrademonDVs
+	ld de, VTiles0 tile $30
+	call MobileTradeAnim_GetFrontpic
+
+	ld a, [wOTTrademonSpecies]
+	ld hl, wOTTrademonDVs
+	ld de, VTiles2 tile $31
+	call MobileTradeAnim_GetFrontpic
+
+	ld a, [wPlayerTrademonSpecies]
+	ld de, wPlayerTrademonSpeciesName
+	call MobileTradeAnim_InitSpeciesName
+
+	ld a, [wOTTrademonSpecies]
+	ld de, wOTTrademonSpeciesName
+	call MobileTradeAnim_InitSpeciesName
+
+	xor a
+	call Function108b98
+	call Function108af4
+	ret
+; 108157
+
+Function108157: ; 108157
+	xor a
+	ld [wJumptableIndex], a
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	call DisableLCD
+	call MobileTradeAnim_ClearVTiles
+	call MobileTradeAnim_ClearBGMap
+	call LoadStandardFont
+	call LoadFontsBattleExtra
+	call EnableLCD
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	callba ClearSpriteAnims
+	xor a
+	ld hl, wSpriteAnimDict
+	ld [hli], a
+	ld [hl], $0
+	call DelayFrame
+	ld a, [wPlayerTrademonSpecies]
+	ld de, wPlayerTrademonSpeciesName
+	call MobileTradeAnim_InitSpeciesName
+	ld a, [wOTTrademonSpecies]
+	ld de, wOTTrademonSpeciesName
+	call MobileTradeAnim_InitSpeciesName
+	xor a
+	call Function108b98
+	call Function108af4
+	ret
+; 1081ad
+
+MobileTradeAnim_ClearVTiles: ; 1081ad
+	ld a, $1
+	ld [rVBK], a
+	ld hl, VTiles0
+	ld bc, 3 * $80 tiles
+	xor a
+	call ByteFill
+	ld a, $0
+	ld [rVBK], a
+	ld hl, VTiles0
+	ld bc, 3 * $80 tiles
+	xor a
+	call ByteFill
+	ret
+; 1081ca
+
+MobileTradeAnim_ClearBGMap: ; 1081ca
+	ld a, $1
+	ld [rVBK], a
+	hlbgcoord 0, 0
+	ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
+	ld a, $0
+	call ByteFill
+	ld a, $0
+	ld [rVBK], a
+	hlbgcoord 0, 0
+	ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
+	ld a, $7f
+	call ByteFill
+	ret
+; 1081e9
+
+MobileTradeAnim_GetFrontpic: ; 1081e9
+	push de
+	push af
+	predef GetUnownLetter
+	pop af
+	ld [CurPartySpecies], a
+	ld [CurSpecies], a
+	call GetBaseData
+	pop de
+	predef GetFrontpic
+	ret
+; 108201
+
+Function108201: ; 108201
+	push de
+	push af
+	predef GetUnownLetter
+	pop af
+	ld [CurPartySpecies], a
+	ld [CurSpecies], a
+	call GetBaseData
+	pop de
+	predef FrontpicPredef
+	ret
+; 108219
+
+Function108219: ; 108219
+	ld [CurPartySpecies], a
+	hlcoord 7, 2
+	ld d, $0
+	ld e, ANIM_MON_TRADE
+	predef AnimateFrontpic
+	ret
+; 108229
+
+Function108229: ; 108229
+	ld [CurPartySpecies], a
+	hlcoord 7, 2
+	ld d, $0
+	ld e, ANIM_MON_TRADE
+	predef LoadMonAnimation
+	ret
+; 108239
+
+MobileTradeAnim_InitSpeciesName: ; 108239
+	push de
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, StringBuffer1
+	pop de
+	ld bc, PKMN_NAME_LENGTH
+	call CopyBytes
+	ret
+; 10824b
+
+MobileTradeAnim_JumptableLoop: ; 10824b
+	ld a, [wJumptableIndex]
+	bit 7, a
+	jr nz, .StopAnim
+	call .ExecuteMobileTradeAnimCommand
+	call DelayFrame
+	and a
+	ret
+
+.StopAnim:
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	call LoadStandardFont
+	call LoadFontsBattleExtra
+	callba MobileFunc_106462
+	callba Function106464
+	scf
+	ret
+; 10827b
+
+.ExecuteMobileTradeAnimCommand: ; 10827b
+	ld a, [wJumptableIndex]
+	ld e, a
+	ld d, 0
+	ld hl, .Jumptable
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+; 10828a
+
+.Jumptable: ; 10828a
+
+	dw GetMobileTradeAnimByte ; 00
+	dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01
+	dw MobileTradeAnim_02 ; 02
+	dw MobileTradeAnim_GiveTrademon1 ; 03
+	dw MobileTradeAnim_GiveTrademon2 ; 04
+	dw MobileTradeAnim_05 ; 05
+	dw MobileTradeAnim_06 ; 06
+	dw MobileTradeAnim_07 ; 07
+	dw MobileTradeAnim_GetTrademon1 ; 08
+	dw MobileTradeAnim_GetTrademon2 ; 09
+	dw MobileTradeAnim_GetTrademon3 ; 0a
+	dw MobileTradeAnim_ShowOTMonFromTrade ; 0b
+	dw EndMobileTradeAnim ; 0c
+	dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d
+	dw MobileTradeAnim_ShowOTMonFromGTS ; 0e
+	dw MobileTradeAnim_0f ; 0f
+	dw MobileTradeAnim_10 ; 10
+	dw MobileTradeAnim_11 ; 11
+	dw MobileTradeAnim_FadeToBlack ; 12
+	dw MobileTradeAnim_GetOddEgg ; 13 get odd egg
+; 1082b2
+
+MobileTradeAnim_Next: ; 1082b2
+	ld hl, wJumptableIndex
+	inc [hl]
+	ret
+; 1082b7
+
+GetMobileTradeAnimByte: ; 1082b7
+	ld hl, wTradeAnimAddress
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld a, [de]
+	ld [wJumptableIndex], a
+	inc de
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	ret
+; 1082c6
+
+EndMobileTradeAnim: ; 1082c6
+	ld hl, wJumptableIndex
+	set 7, [hl]
+	ret
+; 1082cc
+
+WaitMobileTradeSpriteAnims: ; 1082cc
+.loop
+	push bc
+	callba PlaySpriteAnimations
+	pop bc
+	call DelayFrame
+	dec c
+	jr nz, .loop
+	ret
+; 1082db
+
+Function1082db: ; 1082db
+.loop
+	callba PlaySpriteAnimations
+	callba SetUpPokeAnim
+	callba HDMATransferTileMapToWRAMBank3
+	jr nc, .loop
+	ret
+; 1082f0
+
+Function1082f0: ; 1082f0
+.loop
+	call Function108b78
+	call DelayFrame
+	dec c
+	jr nz, .loop
+	ret
+; 1082fa
+
+Function1082fa: ; 1082fa
+.loop
+	call Function108b78
+	push hl
+	push bc
+	callba PlaySpriteAnimations
+	pop bc
+	pop hl
+	call DelayFrame
+	dec c
+	jr nz, .loop
+	ret
+; 10830e
+
+MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
+	ld de, MUSIC_EVOLUTION
+	call PlayMusic2
+	ld a, $80
+	ld [hSCX], a
+	xor a
+	ld [hSCY], a
+	ld a, $87
+	ld [hWX], a
+	ld a, $50
+	ld [hWY], a
+	call MobileTradeAnim_DisplayMonToBeSent
+	ld a, [wPlayerTrademonSpecies]
+	ld [CurPartySpecies], a
+	call Function10895e
+	ld a, [wPlayerTrademonDVs]
+	ld [TempMonDVs], a
+	ld a, [wPlayerTrademonDVs + 1]
+	ld [TempMonDVs + 1], a
+	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+	call GetSGBLayout
+	ld a, %11100100 ; 3,2,1,0
+	call DmgToCgbBGPals
+	call WaitBGMap
+.loop
+	ld a, [hWX]
+	cp $7
+	jr z, .okay
+	sub $4
+	ld [hWX], a
+	ld a, [hSCX]
+	sub $4
+	ld [hSCX], a
+	call DelayFrame
+	jr .loop
+
+.okay
+	ld a, $7
+	ld [hWX], a
+	xor a
+	ld [hSCX], a
+	ld a, [wPlayerTrademonSpecies]
+	call GetCryIndex
+	jr c, .skip_cry
+	ld e, c
+	ld d, b
+	call PlayCryHeader
+
+.skip_cry
+	ld c, 80
+	call DelayFrames
+	call Function108bec
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+	call _InitSpriteAnimStruct
+	ld de, SFX_BALL_POOF
+	call PlaySFX
+	hlcoord 0, 0
+	ld bc, 12 * SCREEN_WIDTH
+	ld a, " "
+	call ByteFill
+	ld c, 80
+	call WaitMobileTradeSpriteAnims
+	call GetMobileTradeAnimByte
+	ret
+; 10839b
+
+MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	call DisableLCD
+	call MobileTradeAnim_ClearBGMap
+	ld a, [wOTTrademonSpecies]
+	ld [CurPartySpecies], a
+	ld hl, wOTTrademonDVs
+	ld de, VTiles2
+	call Function108201
+	call EnableLCD
+	callba DeinitializeAllSprites
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+	call _InitSpriteAnimStruct
+	call Function108b45
+	ld a, $1
+	call Function108b98
+	call Function108af4
+	ld c, 48
+	call WaitMobileTradeSpriteAnims
+	ld de, SFX_BALL_POOF
+	call PlaySFX
+	call MobileTradeAnim_DisplayReceivedMon
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $50
+	ld [hWY], a
+	ld a, [wOTTrademonSpecies]
+	ld [CurPartySpecies], a
+	ld a, [wOTTrademonDVs]
+	ld [TempMonDVs], a
+	ld a, [wOTTrademonDVs + 1]
+	ld [TempMonDVs + 1], a
+	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+	call GetSGBLayout
+	ld a, %11100100 ; 3,2,1,0
+	call DmgToCgbBGPals
+	call Function108963
+	ld a, [wOTTrademonSpecies]
+	call Function108229
+	call Function1082db
+	call Function108c16
+	call GetMobileTradeAnimByte
+	ret
+; 10842c
+
+MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
+	ld de, MUSIC_EVOLUTION
+	call PlayMusic2
+	ld a, $80
+	ld [hSCX], a
+	xor a
+	ld [hSCY], a
+	ld a, $87
+	ld [hWX], a
+	ld a, $50
+	ld [hWY], a
+	call MobileTradeAnim_DisplayMonToBeSent
+	ld a, [wPlayerTrademonSpecies]
+	ld [CurPartySpecies], a
+	ld hl, wPlayerTrademonDVs
+	call Function10898a
+	call DelayFrame
+	ld de, TradeBallGFX
+	ld hl, VTiles0
+	lb bc, BANK(TradeBallGFX), $06
+	call Request2bpp
+	ld de, TradePoofGFX
+	ld hl, VTiles0 tile $06
+	lb bc, BANK(TradePoofGFX), $0c
+	call Request2bpp
+	ld a, [wPlayerTrademonDVs]
+	ld [TempMonDVs], a
+	ld a, [wPlayerTrademonDVs + 1]
+	ld [TempMonDVs + 1], a
+	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+	call GetSGBLayout
+	ld a, %11100100 ; 3,2,1,0
+	call DmgToCgbBGPals
+	call WaitBGMap
+.loop
+	ld a, [hWX]
+	cp $7
+	jr z, .done
+	sub $4
+	ld [hWX], a
+	ld a, [hSCX]
+	sub $4
+	ld [hSCX], a
+	call DelayFrame
+	jr .loop
+
+.done
+	ld a, $7
+	ld [hWX], a
+	xor a
+	ld [hSCX], a
+	ld a, [wPlayerTrademonSpecies]
+	call GetCryIndex
+	jr c, .skip_cry
+	ld e, c
+	ld d, b
+	call PlayCryHeader
+
+.skip_cry
+	ld c, 80
+	call DelayFrames
+	call Function108c2b
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+	call _InitSpriteAnimStruct
+	ld de, SFX_BALL_POOF
+	call PlaySFX
+	hlcoord 0, 0
+	ld bc, 12 * SCREEN_WIDTH
+	ld a, " "
+	call ByteFill
+	ld c, 80
+	call WaitMobileTradeSpriteAnims
+	call GetMobileTradeAnimByte
+	ret
+; 1084d7
+
+MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	call DisableLCD
+	call MobileTradeAnim_ClearBGMap
+	ld a, [wOTTrademonSpecies]
+	ld [CurPartySpecies], a
+	ld hl, wOTTrademonDVs
+	ld de, VTiles2
+	call Function108201
+	call EnableLCD
+	callba DeinitializeAllSprites
+	call DelayFrame
+	ld de, TradeBallGFX
+	ld hl, VTiles0
+	lb bc, BANK(TradeBallGFX), $06
+	call Request2bpp
+	ld de, TradePoofGFX
+	ld hl, VTiles0 tile $06
+	lb bc, BANK(TradePoofGFX), $0c
+	call Request2bpp
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+	call _InitSpriteAnimStruct
+	call Function108b45
+	ld a, $1
+	call Function108b98
+	call Function108af4
+	ld c, 48
+	call WaitMobileTradeSpriteAnims
+	ld de, SFX_BALL_POOF
+	call PlaySFX
+	call MobileTradeAnim_DisplayReceivedMon
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $50
+	ld [hWY], a
+	ld a, [wOTTrademonSpecies]
+	ld [CurPartySpecies], a
+	ld a, [wOTTrademonDVs]
+	ld [TempMonDVs], a
+	ld a, [wOTTrademonDVs + 1]
+	ld [TempMonDVs + 1], a
+	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+	call GetSGBLayout
+	ld a, %11100100 ; 3,2,1,0
+	call DmgToCgbBGPals
+	ld a, [wOTTrademonSpecies]
+	ld hl, wOTTrademonDVs
+	call Function10898a
+	ld a, [wOTTrademonSpecies]
+	call Function108229
+	call Function1082db
+	call Function108c40
+	call GetMobileTradeAnimByte
+	ret
+; 108589
+
+MobileTradeAnim_GetOddEgg: ; 108589
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	call DisableLCD
+	call MobileTradeAnim_ClearBGMap
+	ld a, [wOTTrademonSpecies]
+	ld [CurPartySpecies], a
+	ld hl, wOTTrademonDVs
+	ld de, VTiles2
+	call Function108201
+	call EnableLCD
+	callba DeinitializeAllSprites
+	call DelayFrame
+	ld de, TradeBallGFX
+	ld hl, VTiles0
+	lb bc, BANK(TradeBallGFX), $06
+	call Request2bpp
+	ld de, TradePoofGFX
+	ld hl, VTiles0 tile $06
+	lb bc, BANK(TradePoofGFX), $0c
+	call Request2bpp
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+	call _InitSpriteAnimStruct
+	call Function108b45
+	ld a, $1
+	call Function108b98
+	call Function108af4
+	ld c, 48
+	call WaitMobileTradeSpriteAnims
+	ld de, SFX_BALL_POOF
+	call PlaySFX
+	call Function108a33
+	xor a
+	ld [hSCX], a
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $50
+	ld [hWY], a
+	ld a, [wOTTrademonSpecies]
+	ld [CurPartySpecies], a
+	ld a, [wOTTrademonDVs]
+	ld [TempMonDVs], a
+	ld a, [wOTTrademonDVs + 1]
+	ld [TempMonDVs + 1], a
+	ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+	call GetSGBLayout
+	ld a, %11100100 ; 3,2,1,0
+	call DmgToCgbBGPals
+	ld a, [wOTTrademonSpecies]
+	ld hl, wOTTrademonDVs
+	call Function10898a
+	ld a, [wOTTrademonSpecies]
+	call Function108229
+	call Function1082db
+	call GetMobileTradeAnimByte
+	ret
+; 108638
+
+MobileTradeAnim_02: ; 108638
+	callba DeinitializeAllSprites
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	xor a
+	ld [hBGMapMode], a
+	call DisableLCD
+	call MobileTradeAnim_ClearBGMap
+	call Function108c80
+	call Function108c6d
+	call EnableLCD
+	ld a, $c
+	ld [hSCX], a
+	ld a, $78
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_109107
+	ld de, UnknBGPals
+	ld bc, 8 palettes
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	call Function108d07
+	call Function108af4
+	call GetMobileTradeAnimByte
+	ret
+; 108689
+
+MobileTradeAnim_10: ; 108689
+	callba DeinitializeAllSprites
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	xor a
+	ld [hBGMapMode], a
+	call DisableLCD
+	call MobileTradeAnim_ClearBGMap
+	ld a, $1
+	ld [rVBK], a
+	ld hl, LZ_108da7
+	ld de, VTiles2
+	call Decompress
+	ld a, $0
+	ld [rVBK], a
+	ld hl, LZ_108d27
+	ld de, VTiles0 tile $20
+	call Decompress
+	call Function108c80
+	call Function108c6d
+	call EnableLCD
+	ld a, $c
+	ld [hSCX], a
+	ld a, $78
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_109107
+	ld de, UnknBGPals
+	ld bc, 8 palettes
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	call Function108d07
+	call Function108af4
+	call GetMobileTradeAnimByte
+	ret
+; 1086f4
+
+MobileTradeAnim_11: ; 1086f4
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	xor a
+	ld [hBGMapMode], a
+	call DisableLCD
+	ld a, $1
+	ld [rVBK], a
+	ld hl, LZ_108da7
+	ld de, VTiles2
+	call Decompress
+	ld a, $0
+	ld [rVBK], a
+	ld hl, LZ_108d27
+	ld de, VTiles0 tile $20
+	call Decompress
+	call Function108c80
+	call Function108c6d
+	call EnableLCD
+	ld a, $80
+	ld [hSCX], a
+	ld a, $90
+	ld [hSCY], a
+	ld a, $7
+	ld [hWX], a
+	ld a, $90
+	ld [hWY], a
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_109107
+	ld de, UnknBGPals
+	ld bc, 8 palettes
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	call Function108d07
+	call Function108af4
+	call Function108b5a
+	ld a, $e0
+	ld [hSCX], a
+	ld de, MUSIC_EVOLUTION
+	call PlayMusic2
+	call GetMobileTradeAnimByte
+	ret
+; 108763
+
+MobileTradeAnim_GiveTrademon1: ; 108763
+	ld de, SFX_GIVE_TRADEMON
+	call PlaySFX
+	ld c, 40
+	ld hl, BGPals + 6 palettes
+	call Function1082f0
+	call Function108af4
+.loop
+	ld a, [hSCX]
+	cp $e0
+	jr z, .loop2
+	dec a
+	dec a
+	ld [hSCX], a
+	cp $f8
+	jr nz, .next
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_22
+	call _InitSpriteAnimStruct
+
+.next
+	ld c, 1
+	call WaitMobileTradeSpriteAnims
+	jr .loop
+
+.loop2
+	ld a, [hSCY]
+	cp $f8
+	jr z, .done
+	dec a
+	dec a
+	ld [hSCY], a
+	cp $40
+	jr z, .init
+	cp $30
+	jr z, .delete
+	cp $68
+	jr z, .replace
+	jr .next2
+
+.init
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_22
+	call _InitSpriteAnimStruct
+	xor a
+	call Function108ad4
+	jr .next2
+
+.delete
+	call MobileTradeAnim_DeleteSprites
+	jr .next2
+
+.replace
+	call MobileTradeAnim_DeleteSprites
+	ld a, $1
+	call Function108ad4
+.next2
+	ld c, 1
+	call WaitMobileTradeSpriteAnims
+	jr .loop2
+
+.done
+	call MobileTradeAnim_Next
+	ret
+; 1087cf
+
+MobileTradeAnim_GiveTrademon2: ; 1087cf
+	ld c, 40
+	ld hl, BGPals + 1 palettes
+	call Function1082f0
+	call Function108af4
+	call Function108b5a
+	depixel 9, 10, 2, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_25
+	call _InitSpriteAnimStruct
+	ld de, SFX_FORESIGHT
+	call PlaySFX
+	ld c, 10
+	call WaitMobileTradeSpriteAnims
+	xor a
+	ld [wcf64], a
+	depixel 9, 10, 2, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_23
+	call _InitSpriteAnimStruct
+.loop
+	ld a, [hSCY]
+	cp $90
+	jr z, .done
+	sub $8
+	ld [hSCY], a
+	ld c, 1
+	call WaitMobileTradeSpriteAnims
+	jr .loop
+
+.done
+	call GetMobileTradeAnimByte
+	ret
+; 108811
+
+MobileTradeAnim_05: ; 108811
+	ld c, 40
+	call WaitMobileTradeSpriteAnims
+	ld a, $1
+	ld [wcf64], a
+	ld de, SFX_SHARPEN
+	call PlaySFX
+	ld c, 60
+	call WaitMobileTradeSpriteAnims
+	depixel 30, 10, 2, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_24
+	call _InitSpriteAnimStruct
+	call GetMobileTradeAnimByte
+	ld de, SFX_THROW_BALL
+	call PlaySFX
+	ret
+; 108838
+
+MobileTradeAnim_06: ; 108838
+	ld c, 40
+	call WaitMobileTradeSpriteAnims
+	ld a, $1
+	ld [wcf64], a
+	ld de, SFX_SHARPEN
+	call PlaySFX
+	call GetMobileTradeAnimByte
+	ret
+; 10884c
+
+MobileTradeAnim_07: ; 10884c
+	ld c, 80
+	call DelayFrames
+	depixel 30, 10, 2, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_24
+	call _InitSpriteAnimStruct
+	call GetMobileTradeAnimByte
+	ld de, SFX_THROW_BALL
+	call PlaySFX
+	ret
+; 108863
+
+MobileTradeAnim_GetTrademon1: ; 108863
+	ld c, 40
+	call WaitMobileTradeSpriteAnims
+.loop
+	ld a, [hSCY]
+	cp $f8
+	jr z, .done
+	add $8
+	ld [hSCY], a
+	ld c, 1
+	call WaitMobileTradeSpriteAnims
+	jr .loop
+
+.done
+	callba DeinitializeAllSprites
+	depixel 9, 10, 2, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_25
+	call _InitSpriteAnimStruct
+	ld de, SFX_GLASS_TING_2
+	call PlaySFX
+	call Function108af4
+	call MobileTradeAnim_Next
+	ret
+; 108894
+
+MobileTradeAnim_GetTrademon2: ; 108894
+	ld c, 20
+	ld hl, BGPals + 1 palettes
+	call Function1082fa
+	ld de, SFX_GIVE_TRADEMON
+	call PlaySFX
+	ld c, 20
+	ld hl, BGPals + 1 palettes
+	call Function1082fa
+	call Function108af4
+.asm_1088ad
+	ld a, [hSCY]
+	cp $78
+	jr z, .asm_1088ee
+	inc a
+	inc a
+	ld [hSCY], a
+	cp $30
+	jr z, .asm_1088c5
+	cp $40
+	jr z, .asm_1088dd
+	cp $68
+	jr z, .asm_1088cf
+	jr .asm_1088e7
+
+.asm_1088c5
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_22
+	call _InitSpriteAnimStruct
+	jr .asm_1088e7
+
+.asm_1088cf
+	depixel 10, 11, 4, 0
+	ld a, SPRITE_ANIM_INDEX_MOBILE_22
+	call _InitSpriteAnimStruct
+	xor a
+	call Function108ad4
+	jr .asm_1088e7
+
+.asm_1088dd
+	call MobileTradeAnim_DeleteSprites
+	ld a, $1
+	call Function108ad4
+	jr .asm_1088e7
+
+.asm_1088e7
+	ld c, 1
+	call WaitMobileTradeSpriteAnims
+	jr .asm_1088ad
+
+.asm_1088ee
+	ld a, [hSCX]
+	cp $c
+	jr z, .asm_108906
+	inc a
+	inc a
+	ld [hSCX], a
+	cp -8
+	jr nz, .asm_1088e7
+	call MobileTradeAnim_DeleteSprites
+	ld c, 1
+	call WaitMobileTradeSpriteAnims
+	jr .asm_1088ee
+
+.asm_108906
+	call MobileTradeAnim_Next
+	ret
+; 10890a
+
+MobileTradeAnim_GetTrademon3: ; 10890a
+	ld c, 40
+	ld hl, BGPals + 6 palettes
+	call Function1082f0
+	call Function108af4
+	call GetMobileTradeAnimByte
+	ret
+; 108919
+
+MobileTradeAnim_0f: ; 108919
+	ld c, 40
+	call WaitMobileTradeSpriteAnims
+	callba DeinitializeAllSprites
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	call DisableLCD
+	call MobileTradeAnim_ClearVTiles
+	call MobileTradeAnim_ClearBGMap
+	call EnableLCD
+	call GetMobileTradeAnimByte
+	ret
+; 10893d
+
+MobileTradeAnim_FadeToBlack: ; 10893d
+.loop
+	ld a, [rBGP]
+	and a
+	jr z, .blank
+	sla a
+	sla a
+	call DmgToCgbBGPals
+	call DmgToCgbObjPal0
+	ld c, 4
+	call DelayFrames
+	jr .loop
+
+.blank
+	xor a
+	call DmgToCgbBGPals
+	call DmgToCgbObjPal0
+	call GetMobileTradeAnimByte
+	ret
+; 10895e
+
+Function10895e: ; 10895e
+	ld de, VTiles0 tile $30
+	jr asm_108966
+
+Function108963:
+	ld de, VTiles2 tile $31
+asm_108966
+	call DelayFrame
+	ld hl, VTiles2
+	lb bc, $a, $31 ; $a is the bank of ?????
+	call Request2bpp
+	call WaitTop
+	call MobileTradeAnim_ClearTilemap
+	hlcoord 7, 2
+	xor a
+	ld [hGraphicStartTile], a
+	lb bc, 7, 7
+	predef PlaceGraphic
+	call WaitBGMap
+	ret
+; 10898a
+
+Function10898a: ; 10898a
+	ld de, VTiles2
+	call MobileTradeAnim_GetFrontpic
+	call WaitTop
+	call MobileTradeAnim_ClearTilemap
+	hlcoord 7, 2
+	xor a
+	ld [hGraphicStartTile], a
+	lb bc, 7, 7
+	predef PlaceGraphic
+	call WaitBGMap
+	ret
+; 1089a8
+
+MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
+	ld de, wPlayerTrademonSpecies
+	ld a, [de]
+	cp EGG
+	jr z, MobileTradeAnim_DisplayEggData
+	call MobileTradeAnim_LoadMonTemplate
+	ld de, wPlayerTrademonSpecies
+	call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+	ld de, wPlayerTrademonSpeciesName
+	call MobileTradeAnim_MonDisplay_PrintSpeciesName
+	ld a, [wPlayerTrademonCaughtData]
+	ld de, wPlayerTrademonOTName
+	call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+	ld de, wPlayerTrademonID
+	call MobileTradeAnim_MonDisplay_PrintIDNumber
+	call MobileTradeAnim_MonDisplay_UpdateBGMap
+	ret
+
+MobileTradeAnim_DisplayReceivedMon:
+	ld de, wOTTrademonSpecies
+	ld a, [de]
+	cp EGG
+	jr z, MobileTradeAnim_DisplayEggData
+	call MobileTradeAnim_LoadMonTemplate
+	ld de, wOTTrademonSpecies
+	call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+	ld de, wOTTrademonSpeciesName
+	call MobileTradeAnim_MonDisplay_PrintSpeciesName
+	ld a, [wOTTrademonCaughtData]
+	ld de, wOTTrademonOTName
+	call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+	ld de, wOTTrademonID
+	call MobileTradeAnim_MonDisplay_PrintIDNumber
+	call MobileTradeAnim_MonDisplay_UpdateBGMap
+	ret
+
+MobileTradeAnim_DisplayEggData
+	call WaitTop
+	call MobileTradeAnim_ClearTilemap
+	ld a, VBGMap1 / $100
+	ld [hBGMapAddress + 1], a
+	hlcoord 5, 0
+	ld b, 6
+	ld c, 9
+	call TextBox
+	hlcoord 6, 2
+	ld de, .EggTemplate
+	call PlaceString
+	call MobileTradeAnim_MonDisplay_UpdateBGMap
+	ret
+; 108a1d
+
+.EggTemplate: ; 108a1d
+	db   "タマゴ"
+	next "おや/?????"
+	next "<ID>№<DOT>?????"
+	db   "@"
+; 108a33
+
+Function108a33: ; 108a33
+	call WaitTop
+	call MobileTradeAnim_ClearTilemap
+	ld a, VBGMap1 / $100
+	ld [hBGMapAddress + 1], a
+	hlcoord 5, 0
+	ld b, 6
+	ld c, 9
+	call TextBox
+	hlcoord 7, 4
+	ld de, .OddEgg
+	call PlaceString
+	call MobileTradeAnim_MonDisplay_UpdateBGMap
+	ret
+; 108a54
+
+.OddEgg: ; 108a54
+	db "なぞのタマゴ@"
+; 108a5b
+
+MobileTradeAnim_LoadMonTemplate: ; 108a5b
+	call WaitTop
+	call MobileTradeAnim_ClearTilemap
+	ld a, VBGMap1 / $100
+	ld [hBGMapAddress + 1], a
+	hlcoord 4, 0
+	ld b,  6
+	ld c, 10
+	call TextBox
+	hlcoord 5, 0
+	ld de, .MonTemplate
+	call PlaceString
+	ret
+; 108a79
+
+.MonTemplate: ; 108a79
+	db   "─ №<DOT>"
+	next ""
+	next "おや/"
+	next "<ID>№<DOT>"
+	db   "@"
+; 108a87
+
+MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
+	call WaitBGMap
+	call WaitTop
+	ld a, VBGMap0 / $100
+	ld [hBGMapAddress + 1], a
+	ret
+; 108a92
+
+MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
+	hlcoord 9, 0
+	lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+	call PrintNum
+	ret
+; 108a9c
+
+MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
+	hlcoord 5, 2
+	call PlaceString
+	ret
+; 108aa3
+
+MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
+	cp $3
+	jr c, .got_gender
+	xor a
+.got_gender
+	push af
+	hlcoord 8, 4
+	call PlaceString
+	inc bc
+	pop af
+	ld hl, .GenderChars
+	ld d, 0
+	ld e, a
+	add hl, de
+	ld a, [hl]
+	ld [bc], a
+	ret
+; 108abb
+
+.GenderChars: ; 108abb
+	db " "
+	db "♂"
+	db "♀"
+; 108abe
+
+MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
+	hlcoord 8, 6
+	lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+	call PrintNum
+	ret
+; 108ac8
+
+MobileTradeAnim_ClearTilemap: ; 108ac8
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	ld a, " "
+	call ByteFill
+	ret
+; 108ad4
+
+Function108ad4: ; 108ad4
+	and a
+	jr z, .asm_108adc
+	ld de, GFX_1092c7
+	jr .asm_108adf
+
+.asm_108adc
+	ld de, GFX_1091c7
+.asm_108adf
+	ld a, $1
+	ld [rVBK], a
+	ld hl, VTiles2 tile $4a
+	lb bc, BANK(GFX_1092c7), 16
+	call Get2bpp_2
+	call DelayFrame
+	ld a, $0
+	ld [rVBK], a
+	ret
+; 108af4
+
+Function108af4: ; 108af4
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld a, [wcf65]
+	and $1
+	jr z, .copy_palette_109147
+	ld hl, Palette_109187
+	ld de, UnknOBPals
+	ld bc, 8 palettes
+	call CopyBytes
+	ld hl, Palette_109187
+	ld de, OBPals
+	ld bc, 8 palettes
+	call CopyBytes
+	jr .done_copy
+
+.copy_palette_109147
+	ld hl, Palette_109147
+	ld de, UnknOBPals
+	ld bc, 8 palettes
+	call CopyBytes
+	ld hl, Palette_109147
+	ld de, OBPals
+	ld bc, 8 palettes
+	call CopyBytes
+
+.done_copy
+	pop af
+	ld [rSVBK], a
+	ld a, %11100100 ; 3,2,1,0
+	call DmgToCgbObjPal0
+	ld a, %11100100 ; 3,2,1,0
+	call DmgToCgbBGPals
+	call DelayFrame
+	ret
+; 108b45
+
+Function108b45: ; 108b45
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+	ld hl, UnknBGPals
+	ld a, e
+	ld [hli], a
+	ld d, a
+	ld [hli], a
+	pop af
+	ld [rSVBK], a
+	ret
+; 108b5a
+
+Function108b5a: ; 108b5a
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
+	ld hl, BGPals + 4 palettes
+	ld c, $10
+.loop
+	ld a, e
+	ld [hli], a
+	ld a, d
+	ld [hli], a
+	dec c
+	jr nz, .loop
+	pop af
+	ld [rSVBK], a
+	ld a, $1
+	ld [hCGBPalUpdate], a
+	ret
+; 108b78
+
+Function108b78: ; 108b78
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld a, c
+	and $2
+	jr z, .Orange
+	ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+	jr .load_pal
+
+.Orange:
+	ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
+.load_pal
+	ld a, e
+	ld [hli], a
+	ld a, d
+	ld [hld], a
+	pop af
+	ld [rSVBK], a
+	ld a, $1
+	ld [hCGBPalUpdate], a
+	ret
+; 108b98
+
+Palette_108b98:
+; removed
+
+Function108b98: ; 108b98
+	ld d, a
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld a, [wcf65]
+	and $1
+	xor d
+	jr z, .asm_108bad
+	ld hl, Palette_108b98 + 1 palettes
+	jr .asm_108bb0
+
+.asm_108bad
+	ld hl, Palette_108b98
+.asm_108bb0
+	ld de, UnknBGPals + 7 palettes
+	ld bc, 8 palettes
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	ret
+; 108bbd
+
+MobileTradeAnim_DeleteSprites: ; 108bbd
+	callba DeinitializeAllSprites
+	call ClearSprites
+	ret
+; 108bc7
+
+Function108bc7: ; 108bc7 (42:4bc7)
+	ld a, [wcf64]
+	and a
+	ret z
+	ld hl, SPRITEANIMSTRUCT_YCOORD
+	add hl, bc
+	ld a, [hl]
+	cp -1 * 8 - 6
+	jr z, .delete
+	sub 1 * 8
+	ld [hl], a
+	ret
+
+.delete
+	callba DeinitializeSprite
+	ret
+
+Function108be0: ; 108be0 (42:4be0)
+	ld hl, SPRITEANIMSTRUCT_YCOORD
+	add hl, bc
+	ld a, [hl]
+	cp 9 * 8 + 2
+	ret z
+	add 1 * 8
+	ld [hl], a
+	ret
+; 108bec (42:4bec)
+
+Function108bec: ; 108bec
+	ld a, $90
+	ld [hWY], a
+	ld hl, .PlayerWillTradeMon
+	call PrintText
+	ld c, 80
+	call DelayFrames
+	ld hl, .ForPartnersMon
+	call PrintText
+	ld c, 80
+	call DelayFrames
+	ret
+; 108c07
+
+.PlayerWillTradeMon: ; 0x108c07
+	text_jump UnknownText_0x1bc787
+	db "@"
+; 0x108c0c
+
+.ForPartnersMon: ; 0x108c0c
+	text_jump UnknownText_0x1bc79d
+	db "@"
+; 0x108c11
+
+.UnusedTextPlayersMonTrade: ; 0x108c11
+	text_jump UnknownText_0x1bc7b0
+	db "@"
+; 0x108c16
+
+Function108c16: ; 108c16
+	ld a, $90
+	ld [hWY], a
+	ld hl, .TakeGoodCareOfMon
+	call PrintText
+	ld c, 80
+	call DelayFrames
+	ret
+; 108c26
+
+.TakeGoodCareOfMon: ; 0x108c26
+	text_jump UnknownText_0x1bc7c3
+	db "@"
+; 0x108c2b
+
+Function108c2b: ; 108c2b
+	ld a, $90
+	ld [hWY], a
+	ld hl, .PlayersMonTrade
+	call PrintText
+	ld c, 80
+	call DelayFrames
+	ret
+; 108c3b
+
+.PlayersMonTrade: ; 0x108c3b
+	text_jump UnknownText_0x1bc7dd
+	db "@"
+; 0x108c40
+
+Function108c40: ; 108c40
+	ld a, $90
+	ld [hWY], a
+	ld a, [wcf65]
+	and %10000000
+	jr z, .Getmon
+	ld hl, .CameBack
+	call PrintText
+	ld c, 80
+	call DelayFrames
+	ret
+
+.Getmon:
+	ld hl, .TakeGoodCareOf
+	call PrintText
+	ld c, 80
+	call DelayFrames
+	ret
+; 108c63
+
+.TakeGoodCareOf: ; 0x108c63
+	text_jump UnknownText_0x1bc7f0
+	db "@"
+; 0x108c68
+
+.CameBack: ; 0x108c68
+	text_jump UnknownText_0x1bc80a
+	db "@"
+; 0x108c6d
+
+Function108c6d: ; 108c6d
+	ld hl, LZ_108fe7
+	debgcoord 0, 0
+	call Decompress
+	ld hl, LZ_108fe7
+	debgcoord 0, 0, VBGMap1
+	call Decompress
+	ret
+; 108c80
+
+Function108c80: ; 108c80
+	ld a, $1
+	ld [rVBK], a
+	ld hl, LZ_1090a7
+	debgcoord 0, 0
+	call Decompress
+	ld hl, LZ_1090a7
+	debgcoord 0, 0, VBGMap1
+	call Decompress
+	ld a, $0
+	ld [rVBK], a
+	ret
+; 108c9b
+
+DebugMobileTrade: ; 108c9b
+; localization error: NAME_LENGTH (11) should be 6 here
+
+	ld hl, .DebugTradeData
+	ld a, [hli]
+	ld [wPlayerTrademonSpecies], a
+
+	ld de, wPlayerTrademonSenderName
+	ld c, NAME_LENGTH
+.your_name_loop
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .your_name_loop
+
+	ld de, wPlayerTrademonID
+	ld c, 2
+.your_id_loop
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .your_id_loop
+
+	ld de, wPlayerTrademonOTName
+	ld c, NAME_LENGTH
+.your_ot_loop
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .your_ot_loop
+
+	ld a, [hli]
+	ld [wOTTrademonSpecies], a
+
+	ld de, wOTTrademonSenderName
+	ld c, NAME_LENGTH
+.their_name_loop
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .their_name_loop
+
+	ld de, wOTTrademonID
+	ld c, 2
+.their_id_loop
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .their_id_loop
+
+	ld de, wOTTrademonOTName
+	ld c, NAME_LENGTH
+.their_ot_loop
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .their_ot_loop
+
+	ret
+; 108ce9
+
+.DebugTradeData:
+	db VENUSAUR
+	db "ゲーフり@@"
+	dw $0123
+	db "かびーん@@"
+	db CHARIZARD
+	db "クりーチャ@"
+	dw $0456
+	db "マツミヤ@@"
+; 108d07
+
+Function108d07: ; 108d07
+	ld a, [wc74e]
+	and $7f
+	cp $8
+	jr c, .asm_108d12
+	ld a, $7
+
+.asm_108d12
+	ld bc, 1 palettes
+	ld hl, Palette_1093c7
+	call AddNTimes
+	ld a, $5
+	ld de, UnknBGPals + 4 palettes
+	ld bc, 1 palettes
+	call FarCopyWRAM
+	ret
+; 108d27
+
+LZ_108d27:
+INCBIN "gfx/unknown/108d27.2bpp.lz"
+
+LZ_108da7:
+INCBIN "gfx/unknown/108da7.2bpp.lz"
+
+LZ_108fe7:
+INCBIN "gfx/unknown/108fe7.tilemap.lz"
+
+LZ_1090a7:
+INCBIN "gfx/unknown/1090a7.tilemap.lz"
+
+Palette_1090f7:
+; unreferenced
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+
+	RGB 31,  0, 25
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+
+	RGB  9, 19, 31
+	RGB  0,  0,  0
+
+Palette_109107:
+	RGB 18, 31, 15
+	RGB 20, 20, 20
+	RGB 11, 11, 11
+	RGB  0,  0,  0
+
+	RGB 31, 15,  1
+	RGB 14, 14, 31
+	RGB 12,  9, 31
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 14, 14, 31
+	RGB 12,  9, 31
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 20, 20, 20
+	RGB 11, 11, 11
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 31,  7,  9
+	RGB 18,  0,  1
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 20, 20, 20
+	RGB 11, 11, 11
+	RGB  0,  0,  0
+
+	RGB 31, 15,  1
+	RGB 18,  0, 30
+	RGB  9,  0, 17
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 18,  0, 30
+	RGB  9,  0, 17
+	RGB  0,  0,  0
+
+Palette_109147:
+	RGB 31, 31, 31
+	RGB 31, 31, 12
+	RGB 31, 13, 12
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB 31, 23, 15
+	RGB 31, 18,  7
+	RGB 31, 15,  0
+
+	RGB 31, 31, 31
+	RGB 20, 20, 20
+	RGB 11, 11, 11
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB 31,  0, 25
+	RGB 31,  0, 25
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  9, 19, 31
+	RGB  9, 19, 31
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+Palette_109187:
+	RGB 31, 31, 31
+	RGB 31, 31, 12
+	RGB 31, 13, 12
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB 31, 23, 15
+	RGB 31, 18,  7
+	RGB 31, 15,  0
+
+	RGB 31, 31, 31
+	RGB 20, 20, 20
+	RGB 11, 11, 11
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  9, 19, 31
+	RGB  9, 19, 31
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB 31,  0, 25
+	RGB 31,  0, 25
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+GFX_1091c7:
+INCBIN "gfx/unknown/1091c7.2bpp"
+GFX_1092c7:
+INCBIN "gfx/unknown/1092c7.2bpp"
+
+Palette_1093c7:
+	RGB 18, 31, 15
+	RGB  4, 13, 31
+	RGB  0,  0, 31
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 31, 31,  0
+	RGB 31, 15,  0
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB  9, 24,  0
+	RGB  2, 16,  0
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 31,  7,  9
+	RGB 18,  0,  1
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 28,  5, 31
+	RGB 17,  0, 17
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB  9,  9,  9
+	RGB  4,  4,  4
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 31, 13, 21
+	RGB 27,  7, 12
+	RGB  0,  0,  0
+
+	RGB 18, 31, 15
+	RGB 21, 20, 20
+	RGB 14, 14, 31
+	RGB  0,  0,  0
--- /dev/null
+++ b/mobile/mobile_45.asm
@@ -1,0 +1,7690 @@
+
+SECTION "bank45", ROMX
+
+	charmap " ", $20 ; revert to ascii
+
+String_114000:
+	db "---", 0
+String_114004:
+	db "CGB-AAAA-00", 0, 0
+
+Unknown_114011: ; 114011
+	dw String_114033
+	dw String_11403a
+	dw String_114043
+	dw String_11404e
+	dw String_114053
+	dw String_114058
+	dw String_114062
+	dw String_114074
+	dw String_11408d
+	dw String_11409f
+	dw String_1140b8
+	dw String_1140e6
+	dw String_114110
+	dw String_11413f
+	dw String_114160
+	dw String_114160
+	dw String_114163
+
+String_114033: ; 114033
+	db "From: ", 0
+String_11403a: ; 11403a
+	db "Sender: ", 0
+String_114043: ; 114043
+	db "Reply-To: ", 0
+String_11404e: ; 11404e
+	db "To: ", 0
+String_114053: ; 114053
+	db "Cc: ", 0
+String_114058: ; 114058
+	db "Subject: ", 0
+String_114062: ; 114062
+	db "MIME-Version: 1.0", 0
+String_114074: ; 114074
+	db "X-Game-title: XXXXXXXXXX", 0
+String_11408d: ; 11408d
+	db "X-Game-code: CGB-", 0
+String_11409f: ; 11409f
+	db "X-GBmail-type: exclusive", 0
+String_1140b8: ; 1140b8
+	db "Content-Type: text/plain; charset=iso-2022-jp", 0
+String_1140e6: ; 1140e6
+	db "Content-Type: multipart/mixed; boundary=\"", 0
+String_114110: ; 114110
+	db "Content-Type: Application/Octet-Stream; name=\"", 0
+String_11413f: ; 11413f
+	db "Content-Transfer-Encoding:Base64", 0
+String_114160: ; 114160
+	db "--", 0
+String_114163: ; 114163
+	db ".", 0
+; 114165
+
+Jumptable_114165: ; 114165
+	dw Function114268
+	dw Function114269
+	dw Function11433c
+	dw Function1143b7
+	dw Function1144d1
+	dw Function114b55
+	dw Function114bbc
+	dw Function114cd9
+	dw Function114e62
+	dw Function1152b8
+	dw Function1154d4
+	dw Function1156cc
+	dw Function1159fb
+; 11417f
+
+Unknown_11417f: ; 11417f
+	dw .From
+	dw .Sender
+	dw .ReplyTo
+	dw .To
+	dw .CC
+	dw .Subject
+	dw .Date
+	dw .ContentType
+	dw .MimeVersion
+	dw .XMailer
+	dw .XGameTitle
+	dw .XGameCode
+	dw .XGBMailType
+
+.From: ; 114199
+	db "FROM:", 0
+.Sender: ; 11419f
+	db "SENDER:", 0
+.ReplyTo: ; 1141a7
+	db "REPLY-TO:", 0
+.To: ; 1141b1
+	db "TO:", 0
+.CC: ; 1141b5
+	db "CC:", 0
+.Subject: ; 1141b9
+	db "SUBJECT:", 0
+.Date: ; 1141c2
+	db "DATE:", 0
+.ContentType: ; 1141c8
+	db "CONTENT-TYPE:", 0
+.MimeVersion: ; 1141d6
+	db "MIME-VERSION:", 0
+.XMailer: ; 1141e4
+	db "X-MAILER:", 0
+.XGameTitle: ; 1141ee
+	db "X-GAME-TITLE:", 0
+.XGameCode: ; 1141fc
+	db "X-GAME-CODE:", 0
+.XGBMailType: ; 114209
+	db "X-GBMAIL-TYPE:", 0
+; 114218
+
+String_114218: ; 114218
+	db "NAME=", 0
+String_11421e: ; 11421e
+	db "MULTIPART", 0
+String_114228: ; 114228
+	db "BOUNDARY=", 0
+String_114232: ; 114232
+	db "=?ISO-2022-JP?B?", 0
+; 114243
+
+Function114243:: ; 114243
+	ld a, SRAM_ENABLE
+	ld [MBC3SRamEnable], a
+	ld a, [hFF8C]
+	push af ; if [$dc02] == 0, this is popped to pc.
+	push de
+	ld a, [$dc02]
+	add a
+	ld e, a
+	ld d, 0
+	ld hl, Jumptable_114165
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	pop de
+	jp hl
+
+; 11425c
+
+Function11425c: ; 11425c
+	ld [$dc02], a
+	pop af
+	ld [hFF8C], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ret
+
+; 114268
+
+Function114268: mobile
+
+; 114269
+
+Function114269: ; 114269
+	ld h, d
+	ld l, e
+	xor a
+	ld [$dc02], a
+	ld [$dc03], a
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc hl
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+.asm_114282
+	ld a, [de]
+	and a
+	jr z, .asm_1142a4
+	ld h, a
+	ld a, [$dc03]
+	and a
+	jr nz, .asm_114292
+	ld a, h
+	cp $80
+	jr nc, .asm_1142ae
+
+.asm_114292
+	ld a, h
+	cp $d
+	jr z, .asm_1142bb
+	xor a
+	ld [$dc02], a
+.asm_11429b
+	inc e
+	call z, Function114333
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_114282
+
+.asm_1142a4
+	ld a, [$dc03]
+	and a
+	jr nz, .asm_114303
+	ld b, $80
+	jr .asm_1142b0
+
+.asm_1142ae
+	ld b, $81
+
+.asm_1142b0
+	ld a, [$dc00]
+	ld c, a
+	ld a, $1
+	ld h, d
+	ld l, e
+	jp Function11425c
+
+.asm_1142bb
+	and a
+	jr z, .asm_1142a4
+	inc e
+	call z, Function114333
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1142a4
+	ld a, [de]
+	ld h, a
+	ld a, [$dc03]
+	and a
+	jr nz, .asm_1142d4
+	ld a, h
+	cp $80
+	jr nc, .asm_1142ae
+
+.asm_1142d4
+	ld a, h
+	cp $a
+	jr nz, .asm_1142ae
+	ld a, [$dc03]
+	and a
+	jr nz, .asm_11430d
+	ld a, [$dc02]
+	and a
+	jr nz, .asm_114309
+	ld a, $1
+	ld [$dc02], a
+	inc e
+	call z, Function114333
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1142a4
+	ld a, [de]
+	cp $20
+	jr z, .asm_11429b
+	cp $9
+	jr z, .asm_11429b
+	jr .asm_114282
+
+.asm_1142fe
+	xor a
+	ld b, a
+	jp Function11425c
+
+.asm_114303
+	xor a
+	ld b, $1
+	jp Function11425c
+
+.asm_114309
+	xor a
+	ld [$dc02], a
+
+.asm_11430d
+	ld a, [$dc02]
+	and a
+	jr nz, .asm_1142fe
+	ld a, $1
+	ld [$dc03], a
+	inc e
+	call z, Function114333
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1142a4
+	ld a, [de]
+	and a
+	jp z, .asm_1142a4
+	cp $2e
+	jp nz, .asm_114282
+	ld a, $1
+	ld [$dc02], a
+	jp .asm_11429b
+
+; 114333
+
+Function114333: ; 114333
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 11433c
+
+Function11433c: ; 11433c
+	push de
+	ld h, d
+	ld l, e
+	ld c, [hl]
+	inc hl
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld b, $b
+	call Function1143f3
+	cp $2
+	jr z, .asm_114358
+	and a
+	jr z, .asm_114360
+	pop hl
+.asm_114351
+	xor a
+	ld b, $3
+	jp Function11425c
+
+.asm_114357
+	pop hl
+
+.asm_114358
+	pop hl
+	ld a, $1
+	ld b, $82
+	jp Function11425c
+
+.asm_114360
+	ld a, h
+	ld [$dc03], a
+	pop hl
+	push bc
+	push de
+	ld c, [hl]
+	inc hl
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc hl
+	ld b, $c
+	call Function1143f3
+	cp $2
+	jr z, .asm_114357
+	and a
+	jr z, .asm_114381
+	xor a
+	ld b, $2
+	pop hl
+	pop hl
+	jp Function11425c
+
+.asm_114381
+	pop de
+	pop bc
+	ld a, [$dc03]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	call Function114c0b
+	ld hl, String_114004
+.asm_114394
+	ld de, $dc24
+.asm_114397
+	ld a, [hli]
+	and a
+	jr z, .asm_1143ad
+	ld b, a
+	ld a, [de]
+	inc de
+	cp b
+	jr z, .asm_114397
+.asm_1143a1
+	ld a, [hli]
+	and a
+	jr nz, .asm_1143a1
+	ld a, [hl]
+	and a
+	jr nz, .asm_114394
+	ld b, a
+	jp Function11425c
+
+.asm_1143ad
+	ld a, [de]
+	and a
+	jr nz, .asm_114351
+	xor a
+	ld b, $1
+	jp Function11425c
+
+; 1143b7
+
+Function1143b7: ; 1143b7
+	ld a, [de]
+	ld b, a
+	inc de
+	ld a, [de]
+	ld c, a
+	inc de
+	ld a, [de]
+	ld h, a
+	inc de
+	ld a, [de]
+	inc de
+	push de
+	ld d, a
+	ld e, h
+	call Function1143f3
+	cp $2
+	jr z, .asm_1143eb
+	and a
+	jr nz, .asm_1143ed
+	ld a, h
+	pop hl
+	push af
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	pop af
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld a, d
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld [hl], b
+	xor a
+	jp Function11425c
+
+.asm_1143eb
+	ld b, $82
+
+.asm_1143ed
+	ld a, $1
+	pop hl
+	jp Function11425c
+
+; 1143f3
+
+Function1143f3: ; 1143f3
+	call Function114412
+	and a
+	jr nz, .asm_11440d
+	ld a, $4
+	cp b
+	jr c, .asm_114407
+	jr z, .asm_114402
+.asm_114400
+	xor a
+	ret
+
+.asm_114402
+	ld a, $0
+	cp c
+	jr nc, .asm_114400
+
+.asm_114407
+	lb bc, $4, $0
+	ld a, $2
+	ret
+
+.asm_11440d
+	ld a, $1
+	ld b, $84
+	ret
+
+; 114412
+
+Function114412: ; 114412
+	ld a, c
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld hl, Unknown_11417f
+	ld a, b
+	add a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld c, $0
+	jr .asm_11444a
+
+.asm_11442b
+	ld a, [de]
+	and a
+	jp z, .asm_1144c2
+	inc e
+	call z, Function1144c8
+	cp $d ; CR
+	jr nz, .asm_11442b
+	ld a, [de]
+	inc e
+	call z, Function1144c8
+	cp $a ; NL
+	jr nz, .asm_11442b
+	ld a, [de]
+	cp $2e ; .
+	jr z, .asm_1144ae
+	cp $d  ; CR
+	jr z, .asm_1144b8
+
+.asm_11444a
+	ld a, [$dc00]
+	ld [$dc02], a
+	ld a, [de]
+	and a
+	jr z, .asm_1144c2
+	inc e
+	call z, Function1144c8
+	cp $61 ; "a"
+	jr c, .asm_114462
+	cp $7b ; "z" + 1
+	jr nc, .asm_114462
+	sub $20
+
+.asm_114462
+	ld b, a
+	ld a, [hl]
+	and a
+	jr z, .asm_114476
+	cp b
+	jr nz, .asm_11446e
+	inc c
+	inc hl
+	jr .asm_11444a
+
+.asm_11446e
+	ld a, c
+	and a
+	jr z, .asm_11442b
+	dec c
+	dec hl
+	jr .asm_11446e
+
+.asm_114476
+	ld a, $20 ; " "
+	cp b
+	jr z, .asm_114481
+	ld a, $a ; NL
+	cp b
+	jr z, .asm_114481
+	dec de
+
+.asm_114481
+	ld h, d
+	ld l, e
+	ld bc, NULL
+.asm_114486
+	ld a, [de]
+	and a
+	jr z, .asm_1144c2
+	inc bc
+	inc e
+	call z, Function1144c8
+	cp $d ; CR
+	jr nz, .asm_114486
+	ld a, [de]
+	inc bc
+	inc e
+	call z, Function1144c8
+	cp $a ; NL
+	jr nz, .asm_114486
+	ld a, [de]
+	cp $20 ; " "
+	jr z, .asm_114486
+	cp $9 ; TAB
+	jr z, .asm_114486
+	ld d, h
+	ld e, l
+	ld a, [$dc02]
+	ld h, a
+	xor a
+	ret
+
+.asm_1144ae
+	inc e
+	call z, Function1144c8
+	ld a, [de]
+	cp $d ; CR
+	jp nz, .asm_11442b
+
+.asm_1144b8
+	inc e
+	call z, Function1144c8
+	ld a, [de]
+	cp $a ; NL
+	jp nz, .asm_11442b
+
+.asm_1144c2
+	ld a, $0
+	ld [hl], a
+	ld a, $1
+	ret
+
+; 1144c8
+
+Function1144c8: ; 1144c8
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 1144d1
+
+Function1144d1: ; 1144d1
+	call Function114561
+	dec de
+	dec de
+	push de
+	inc de
+	inc de
+	inc de
+	inc hl
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc hl
+	ld a, [de]
+	ld [hld], a
+	dec de
+	ld a, [de]
+	ld [hl], a
+	xor a
+	ld [BigDoll], a
+	ld [$dc17], a
+	ld a, $2
+	ld [$dc0e], a
+	ld hl, $dc03
+	ld c, [hl]
+	inc hl
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	call Function114576
+	cp $2
+	jr z, .asm_11455b
+	and a
+	jr z, .asm_114511
+	ld a, $1
+	ld [$dc0d], a
+	call Function1146fa
+	and a
+	jr nz, .asm_11455b
+	jr .asm_11451c
+
+.asm_114511
+	call Function1146a4
+	and a
+	jr nz, .asm_11455b
+	ld a, $2
+	ld [$dc0d], a
+
+.asm_11451c
+	pop hl
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld a, [$dc0d]
+	ld [de], a
+	ld b, $0
+	ld a, [BigDoll]
+	and a
+	jr z, .asm_114537
+	ld b, $1
+
+.asm_114537
+	ld hl, $dc06
+	ld a, [hl]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld hl, $dc09
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	dec de
+	ld a, d
+	or e
+	jr z, .asm_114559
+	ld hl, wCurrMapTriggerCount
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	xor a
+	ld [de], a
+	jp Function11425c
+
+.asm_114559
+	ld b, $83
+
+.asm_11455b
+	pop hl
+	ld a, $1
+	jp Function11425c
+
+; 114561
+
+Function114561: ; 114561
+	ld hl, $dc03
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hl], a
+	ret
+
+; 114576
+
+Function114576: ; 114576
+	xor a
+	ld [Bed], a
+	ld b, $7
+	call Function1143f3
+	cp $2
+	jr z, .asm_1145b6
+	and a
+	jr nz, .asm_1145b4
+	ld a, h
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	push hl
+	push de
+	push bc
+	ld hl, $dc24
+	call Function115d53
+	call Function1145c5
+	pop bc
+	pop de
+	pop hl
+	and a
+	jr z, .asm_1145bf
+	ld a, b
+	and a
+	jr nz, .asm_1145ba
+	ld a, h
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld hl, String_114218
+	call Function114acf
+
+.asm_1145b4
+	xor a
+	ret
+
+.asm_1145b6
+	ld b, $82
+	jr .asm_1145bc
+
+.asm_1145ba
+	ld b, $81
+
+.asm_1145bc
+	ld a, $2
+	ret
+
+.asm_1145bf
+	ld a, $1
+	ld [Bed], a
+	ret
+
+; 1145c5
+
+Function1145c5: ; 1145c5
+	ld hl, $dc24
+	ld de, String_11421e
+	ld c, $0
+.asm_1145cd
+	ld a, [hli]
+	and a
+	jr z, .asm_1145ef
+	cp $20
+	jr z, .asm_1145cd
+	cp $d
+	jr z, .asm_1145f8
+	cp $61
+	jr c, .asm_1145e3
+	cp $7b
+	jr nc, .asm_1145e3
+	sub $20
+
+.asm_1145e3
+	ld b, a
+	ld a, [de]
+	and a
+	jr z, .asm_11460e
+	inc de
+	cp b
+	jr z, .asm_1145cd
+	dec de
+	jr .asm_1145cd
+
+.asm_1145ef
+	ld b, $0
+	jr .asm_1145f5
+
+.asm_1145f3
+	ld b, $81
+
+.asm_1145f5
+	ld a, $1
+	ret
+
+.asm_1145f8
+	ld a, [hli]
+	and a
+	jr z, .asm_1145f3
+	cp $a
+	jr nz, .asm_1145f3
+	ld a, [hli]
+	and a
+	jr z, .asm_1145f3
+	cp $20
+	jr z, .asm_1145cd
+	cp $9
+	jr z, .asm_1145cd
+	jr .asm_1145f3
+
+.asm_11460e
+	ld a, c
+	and a
+	jr nz, .asm_114619
+	ld c, $1
+	ld de, String_114228
+	jr .asm_1145cd
+
+.asm_114619
+	dec hl
+	ld a, [hl]
+	cp $22
+	jr nz, .asm_114620
+	inc hl
+
+.asm_114620
+	ld de, $ddc8
+	ld b, $0
+	ld c, $40
+.asm_114627
+	ld a, [hli]
+	cp $22
+	jr z, .asm_114636
+	cp $d
+	jr z, .asm_114636
+	ld [de], a
+	inc de
+	inc b
+	dec c
+	jr nz, .asm_114627
+
+.asm_114636
+	ld a, b
+	ld [PartyMon5Defense], a
+	xor a
+	ret
+
+; 11463c
+
+Function11463c: ; 11463c
+	ld a, [$dc00]
+	push af
+	push de
+	ld hl, $ddc8
+	ld a, [PartyMon5Defense]
+	ld b, a
+.asm_114648
+	ld a, [de]
+	ld c, a
+	ld a, [hli]
+	cp c
+	jr nz, .asm_11468a
+	inc e
+	call z, Function11469b
+	dec b
+	jr nz, .asm_114648
+	ld a, [de]
+	cp $2d
+	jr z, .asm_114673
+	cp $d
+	jr nz, .asm_11468a
+	xor a
+	ld [Carpet], a
+.asm_114662
+	inc e
+	call z, Function11469b
+	ld a, [de]
+	cp $a
+	jr nz, .asm_11468a
+	inc e
+	call z, Function11469b
+	xor a
+	pop hl
+	pop hl
+	ret
+
+.asm_114673
+	inc e
+	call z, Function11469b
+	ld a, [de]
+	cp $2d
+	jr nz, .asm_11468a
+	inc e
+	call z, Function11469b
+	ld a, $1
+	ld [Carpet], a
+	ld a, [de]
+	cp $d
+	jr z, .asm_114662
+
+.asm_11468a
+	pop de
+	pop af
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	xor a
+	ld [Carpet], a
+	ld a, $1
+	ret
+
+; 11469b
+
+Function11469b: ; 11469b
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 1146a4
+
+Function1146a4: ; 1146a4
+	call Function114867
+	and a
+	jr nz, .asm_1146e4
+	ld hl, $dc03
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	call Function114a18
+	and a
+	jr nz, .asm_1146e8
+	call Function1148c2
+	and a
+	jr nz, .asm_1146e4
+	ld hl, $dc03
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	call Function114a7a
+	and a
+	jr nz, .asm_1146e8
+.asm_1146da
+	dec bc
+	dec bc
+	call Function1149cc
+	and a
+	jr nz, .asm_1146e4
+	xor a
+	ret
+
+.asm_1146e4
+	ld b, $83
+	jr .asm_1146f7
+
+.asm_1146e8
+	ld a, [$dc17]
+	and a
+	jr z, .asm_1146f5
+	ld a, $1
+	ld [BigDoll], a
+	jr .asm_1146da
+
+.asm_1146f5
+	ld b, $81
+
+.asm_1146f7
+	ld a, $1
+	ret
+
+; 1146fa
+
+Function1146fa: ; 1146fa
+	call Function114867
+	and a
+	jp nz, .asm_11478a
+	ld hl, $dc03
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	call Function114a18
+	and a
+	jp nz, .asm_11478e
+	call Function1149cc
+	and a
+	jp nz, .asm_11478a
+	ld a, $1
+	ld [$dc0e], a
+	ld a, [$dc00]
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, $1
+	ld [RightOrnament], a
+	call Function1147cd
+	and a
+	jp nz, .asm_1147b7
+.asm_114737
+	call Function114843
+	cp $1
+	jr nz, .asm_114749
+	ld a, [$dc17]
+	and a
+	jr z, .asm_114794
+	ld a, $1
+	ld [BigDoll], a
+
+.asm_114749
+	call Function11494d
+	and a
+	jr nz, .asm_11478a
+	ld a, [BigDoll]
+	and a
+	jr nz, .asm_114786
+	ld hl, $dc03
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	call Function1147cd
+	and a
+	jr nz, .asm_1147b7
+	ld a, [$dc0e]
+	cp $3
+	jr nz, .asm_114773
+	dec bc
+	dec bc
+
+.asm_114773
+	call Function1149cc
+	and a
+	jr nz, .asm_11478a
+	ld a, [$dc0d]
+	inc a
+	ld [$dc0d], a
+	ld a, [BigDoll]
+	and a
+	jr z, .asm_114799
+
+.asm_114786
+	ld b, $1
+	jr .asm_1147cb
+
+.asm_11478a
+	ld b, $83
+	jr .asm_114796
+
+.asm_11478e
+	ld a, [$dc17]
+	and a
+	jr nz, .asm_114796
+
+.asm_114794
+	ld b, $81
+
+.asm_114796
+	ld a, $1
+	ret
+
+.asm_114799
+	ld a, [Carpet]
+	and a
+	jr z, .asm_114737
+	jr .asm_1147cb
+
+	ld hl, $dc03
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	call Function114a7a
+	and a
+	jr z, .asm_1147cb
+	xor a
+	ld [BigDoll], a
+
+.asm_1147b7
+	ld a, [$dc17]
+	and a
+	jr z, .asm_114794
+	ld a, $1
+	ld [BigDoll], a
+	ld a, [$dc0d]
+	cp $1
+	jr nz, .asm_114773
+	ld b, $1
+
+.asm_1147cb
+	xor a
+	ret
+
+; 1147cd
+
+Function1147cd: ; 1147cd
+	ld bc, NULL
+	ld a, [RightOrnament]
+	and a
+	jr nz, .asm_11480c
+.asm_1147d6
+	ld a, [de]
+	and a
+	jr z, .asm_11482f
+	inc e
+	call z, Function11483a
+	inc bc
+	cp $d
+	jr nz, .asm_1147d6
+	ld a, [de]
+	cp $a
+	jr nz, .asm_11482f
+.asm_1147e8
+	inc bc
+	inc e
+	call z, Function11483a
+	ld a, [de]
+	cp $20
+	jr z, .asm_114827
+	cp $9
+	jr z, .asm_114827
+	cp $d
+	jr nz, .asm_11482b
+	inc e
+	call z, Function11483a
+	ld a, [de]
+	cp $a
+	jr nz, .asm_11482f
+	inc e
+	call z, Function11483a
+	ld a, h
+	and a
+	jr z, .asm_11480c
+	dec bc
+
+.asm_11480c
+	ld a, [de]
+	cp $2d
+	jr nz, .asm_1147d6
+	inc e
+	call z, Function11483a
+	ld a, [de]
+	cp $2d
+	jr nz, .asm_1147d6
+	inc e
+	call z, Function11483a
+	push bc
+	call Function11463c
+	pop bc
+	and a
+	jr nz, .asm_1147d6
+	ret
+
+.asm_114827
+	ld h, $1
+	jr .asm_1147e8
+
+.asm_11482b
+	ld h, $0
+	jr .asm_11480c
+
+.asm_11482f
+	and a
+	jr nz, .asm_114837
+	ld a, $1
+	ld [$dc17], a
+
+.asm_114837
+	ld a, $1
+	ret
+
+; 11483a
+
+Function11483a: ; 11483a
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 114843
+
+Function114843: ; 114843
+	ld a, [$dc00]
+	push af
+	push de
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	call Function114a18
+	and a
+	jr nz, .asm_11485f
+	pop de
+	pop af
+	ld [$dc00], a
+	ld hl, String_114218
+	call Function114acf
+	ret
+
+.asm_11485f
+	pop de
+	pop af
+	ld [$dc00], a
+	ld a, $1
+	ret
+
+; 114867
+
+Function114867: ; 114867
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld a, $2
+	ld [de], a
+	inc e
+	call z, Function1148b9
+	ld a, $1
+	ld [de], a
+	inc e
+	call z, Function1148b9
+	ld hl, $dc03
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1148b9
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1148b9
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1148b9
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	inc hl
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	ld d, $5
+.asm_1148a9
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1148b6
+	dec d
+	jr nz, .asm_1148a9
+	ld [hl], b
+	dec hl
+	ld [hl], c
+	xor a
+	ret
+
+.asm_1148b6
+	ld a, $1
+	ret
+
+; 1148b9
+
+Function1148b9: ; 1148b9
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 1148c2
+
+Function1148c2: ; 1148c2
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld a, c
+	ld [de], a
+	inc e
+	call z, Function114944
+	ld a, b
+	ld [de], a
+	inc e
+	call z, Function114944
+	ld a, [$dc0e]
+	ld [de], a
+	inc e
+	call z, Function114944
+	cp $3
+	jr nz, .asm_114904
+	ld hl, Plant
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function114944
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function114944
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function114944
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function114944
+
+.asm_114904
+	ld hl, $dc03
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function114944
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function114944
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function114944
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	inc hl
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	ld a, [$dc0e]
+	cp $3
+	jr z, .asm_114932
+	ld d, $6
+	jr .asm_114934
+
+.asm_114932
+	ld d, $a
+
+.asm_114934
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_114941
+	dec d
+	jr nz, .asm_114934
+	ld [hl], b
+	dec hl
+	ld [hl], c
+	xor a
+	ret
+
+.asm_114941
+	ld a, $1
+	ret
+
+; 114944
+
+Function114944: ; 114944
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 11494d
+
+Function11494d: ; 11494d
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld a, [$dc0e]
+	ld [de], a
+	inc e
+	call z, Function1149c3
+	cp $3
+	jr nz, .asm_114983
+	ld hl, Plant
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1149c3
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1149c3
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1149c3
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1149c3
+
+.asm_114983
+	ld hl, $dc03
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1149c3
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1149c3
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function1149c3
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	inc hl
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	ld a, [$dc0e]
+	cp $3
+	jr z, .asm_1149b1
+	ld d, $4
+	jr .asm_1149b3
+
+.asm_1149b1
+	ld d, $8
+
+.asm_1149b3
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1149c0
+	dec d
+	jr nz, .asm_1149b3
+	ld [hl], b
+	dec hl
+	ld [hl], c
+	xor a
+	ret
+
+.asm_1149c0
+	ld a, $1
+	ret
+
+; 1149c3
+
+Function1149c3: ; 1149c3
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 1149cc
+
+Function1149cc: ; 1149cc
+	ld hl, $dc06
+	ld a, [hl]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	push de
+	ld hl, $dc09
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	dec de
+	ld a, d
+	or e
+	jr z, .asm_114a0b
+	dec de
+	ld a, d
+	or e
+	jr z, .asm_114a0b
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	ld hl, wCurrMapTriggerCount
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld a, c
+	ld [de], a
+	inc e
+	call z, Function114a0f
+	ld a, b
+	ld [de], a
+	inc e
+	call z, Function114a0f
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	pop de
+	xor a
+	ret
+
+.asm_114a0b
+	pop de
+	ld a, $1
+	ret
+
+; 114a0f
+
+Function114a0f: ; 114a0f
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 114a18
+
+Function114a18: ; 114a18
+	ld bc, NULL
+	ld h, b
+.asm_114a1c
+	inc bc
+	ld a, [de]
+	and a
+	jr z, .asm_114a66
+	inc e
+	call z, Function114a71
+	cp $d
+	jr nz, .asm_114a1c
+	ld a, [de]
+	cp $a
+	jr nz, .asm_114a66
+.asm_114a2e
+	inc bc
+	inc e
+	call z, Function114a71
+	ld a, [de]
+	cp $20
+	jr z, .asm_114a5e
+	cp $9
+	jr z, .asm_114a5e
+	cp $d
+	jr nz, .asm_114a62
+	inc e
+	call z, Function114a71
+	ld a, [de]
+	cp $a
+	jr nz, .asm_114a66
+	inc e
+	call z, Function114a71
+	ld a, h
+	and a
+	jr z, .asm_114a52
+	dec bc
+
+.asm_114a52
+	ld hl, $dc03
+	ld a, [$dc00]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	xor a
+	ret
+
+.asm_114a5e
+	ld h, $1
+	jr .asm_114a2e
+
+.asm_114a62
+	ld h, $0
+	jr .asm_114a1c
+
+.asm_114a66
+	and a
+	jr nz, .asm_114a6e
+	ld a, $1
+	ld [$dc17], a
+
+.asm_114a6e
+	ld a, $1
+	ret
+
+; 114a71
+
+Function114a71: ; 114a71
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 114a7a
+
+Function114a7a: ; 114a7a
+	ld bc, NULL
+.asm_114a7d
+	inc bc
+	ld a, [de]
+	and a
+	jr z, .asm_114abb
+	inc e
+	call z, Function114ac6
+	cp $d
+	jr nz, .asm_114a7d
+	ld a, [de]
+	cp $a
+	jr nz, .asm_114abb
+	inc e
+	call z, Function114ac6
+	inc bc
+	ld a, [de]
+	cp $2e
+	jr nz, .asm_114a7d
+	inc e
+	call z, Function114ac6
+	ld a, [de]
+	cp $d
+	jr nz, .asm_114a7d
+	inc e
+	call z, Function114ac6
+	ld a, [de]
+	cp $a
+	jr nz, .asm_114abb
+	inc e
+	call z, Function114ac6
+	ld hl, $dc03
+	ld a, [$dc00]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	xor a
+	ret
+
+.asm_114abb
+	and a
+	jr nz, .asm_114ac3
+	ld a, $1
+	ld [$dc17], a
+
+.asm_114ac3
+	ld a, $1
+	ret
+
+; 114ac6
+
+Function114ac6: ; 114ac6
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 114acf
+
+Function114acf: ; 114acf
+.asm_114acf
+	push hl
+	push bc
+.asm_114ad1
+	ld a, [hl]
+	ld b, a
+	ld a, [de]
+	inc e
+	call z, Function114b4c
+	cp $61
+	jr c, .asm_114ae2
+	cp $7b
+	jr nc, .asm_114ae2
+	sub $20
+
+.asm_114ae2
+	cp b
+	jr z, .asm_114af4
+	pop bc
+	dec bc
+	push bc
+	ld a, b
+	or c
+	jr nz, .asm_114ad1
+.asm_114aec
+	ld a, $2
+	ld [$dc0e], a
+	pop bc
+	pop hl
+	ret
+
+.asm_114af4
+	inc hl
+.asm_114af5
+	ld a, [hli]
+	and a
+	jr z, .asm_114b19
+	ld b, a
+	ld a, [de]
+	inc e
+	call z, Function114b4c
+	cp $61
+	jr c, .asm_114b09
+	cp $7b
+	jr nc, .asm_114b09
+	sub $20
+
+.asm_114b09
+	cp b
+	jr nz, .asm_114b15
+	pop bc
+	dec bc
+	push bc
+	ld a, b
+	or c
+	jr nz, .asm_114af5
+	jr .asm_114aec
+
+.asm_114b15
+	pop bc
+	pop hl
+	jr .asm_114acf
+
+.asm_114b19
+	ld b, $0
+	ld c, $40
+	ld a, [de]
+	cp $22
+	jr nz, .asm_114b26
+	inc e
+	call z, Function114b4c
+
+.asm_114b26
+	ld hl, Plant
+	ld a, [$dc00]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	inc hl
+.asm_114b31
+	ld a, [de]
+	cp $22
+	jr z, .asm_114b42
+	cp $d
+	jr z, .asm_114b42
+	inc e
+	call z, Function114b4c
+	inc b
+	dec c
+	jr nz, .asm_114b31
+
+.asm_114b42
+	ld [hl], b
+	pop bc
+	pop hl
+	ld a, $3
+	ld [$dc0e], a
+	xor a
+	ret
+
+; 114b4c
+
+Function114b4c: ; 114b4c
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 114b55
+
+Function114b55: ; 114b55
+	call Function114561
+	ld b, $0
+	ld hl, $dc03
+	ld c, [hl]
+	inc hl
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $dc24
+.asm_114b65
+	push de
+	push bc
+	push hl
+	call Function1143f3
+	cp $2
+	jr z, .asm_114bb2
+	and a
+	jr nz, .asm_114b8c
+	ld a, h
+	pop hl
+	inc hl
+	ld [hld], a
+	ld a, $1
+	ld [hli], a
+	inc hl
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	inc hl
+	ld [hl], c
+	inc hl
+	ld [hl], b
+	inc hl
+.asm_114b82
+	pop bc
+	pop de
+	inc b
+	ld a, b
+	cp $d
+	jr z, .asm_114b96
+	jr .asm_114b65
+
+.asm_114b8c
+	pop hl
+	xor a
+rept 6
+	ld [hli], a
+endr
+	jr .asm_114b82
+
+.asm_114b96
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc hl
+	ld bc, $004e
+	ld hl, $dc24
+	call Function115d6a
+	jp Function11425c
+
+.asm_114bb2
+	ld a, $1
+	pop bc
+	pop bc
+	pop bc
+	ld b, $82
+	jp Function11425c
+
+; 114bbc
+
+Function114bbc: ; 114bbc
+	ld h, d
+	ld l, e
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld e, a
+	ld d, [hl]
+	inc hl
+	push hl
+	call Function1143f3
+	cp $2
+	jr z, .asm_114c03
+	and a
+	jr nz, .asm_114bff
+	ld a, h
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	call Function114c0b
+	ld hl, $dc24
+	call Function114c5e
+	ld a, b
+	or c
+	jr z, .asm_114bff
+	pop hl
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld e, a
+	ld d, [hl]
+	ld hl, $dc24
+	push bc
+	call Function115d6a
+	pop hl
+	jp Function11425c
+
+.asm_114bff
+	ld b, $84
+	jr .asm_114c05
+
+.asm_114c03
+	ld b, $82
+
+.asm_114c05
+	ld a, $1
+	pop hl
+	jp Function11425c
+
+; 114c0b
+
+Function114c0b: ; 114c0b
+	ld hl, $dc24
+	push bc
+	call Function115d53
+	pop bc
+	ld hl, $dc24
+	ld d, h
+	ld e, l
+.asm_114c18
+	ld a, [hli]
+	cp $d
+	jr z, .asm_114c34
+	ld [de], a
+	inc de
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_114c18
+.asm_114c24
+	xor a
+	ld [de], a
+	ld hl, $dc24
+	ld bc, NULL
+.asm_114c2c
+	ld a, [hli]
+	inc bc
+	and a
+	jr nz, .asm_114c2c
+	dec bc
+	xor a
+	ret
+
+.asm_114c34
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_114c24
+	ld a, [hli]
+	cp $a
+	jr nz, .asm_114c18
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_114c24
+	ld a, [hli]
+	cp $20
+	jr z, .asm_114c4e
+	cp $9
+	jr z, .asm_114c4e
+	jr .asm_114c24
+
+.asm_114c4e
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_114c24
+	jr .asm_114c18
+
+; 114c55
+
+Function114c55: ; 114c55
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 114c5e
+
+Function114c5e: ; 114c5e
+	ld de, PartyMon5Defense
+	push hl
+.asm_114c62
+	ld a, [hli]
+	ld [de], a
+	inc de
+	and a
+	jr z, .asm_114cc6
+	cp $3d
+	jr nz, .asm_114c62
+	ld a, [hli]
+	ld [de], a
+	inc de
+	cp $3f
+	jr nz, .asm_114c62
+	dec de
+	dec de
+.asm_114c75
+	ld a, [hli]
+	cp $3f
+	jr nz, .asm_114c75
+	ld a, [hli]
+	cp $42
+	jr nz, .asm_114cb8
+	inc hl
+	ld bc, NULL
+	push hl
+.asm_114c84
+	inc bc
+	ld a, [hli]
+	cp $3f
+	jr nz, .asm_114c84
+	inc bc
+	ld a, [hli]
+	cp $3d
+	jr nz, .asm_114c84
+	dec bc
+	dec bc
+	ld a, l
+	ld [$dc03], a
+	ld a, h
+	ld [$dc04], a
+	pop hl
+	push de
+	call Function115c49
+	pop de
+	ld h, d
+	ld l, e
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+.asm_114ca6
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_114ca6
+	ld a, [$dc03]
+	ld l, a
+	ld a, [$dc04]
+	ld h, a
+	jr .asm_114c62
+
+.asm_114cb8
+	ld a, $3d
+	ld [de], a
+	inc de
+	ld a, $3f
+	ld [de], a
+	inc de
+.asm_114cc0
+	ld a, [hli]
+	ld [de], a
+	inc de
+	and a
+	jr nz, .asm_114cc0
+
+.asm_114cc6
+	ld [de], a
+	pop hl
+	ld de, PartyMon5Defense
+	ld bc, NULL
+.asm_114cce
+	inc bc
+	ld a, [de]
+	ld [hli], a
+	inc de
+	and a
+	jr z, .asm_114cd7
+	jr .asm_114cce
+
+.asm_114cd7
+	dec bc
+	ret
+
+; 114cd9
+
+Function114cd9: ; 114cd9
+	ld h, d
+	ld l, e
+	ld b, [hl]
+	inc hl
+	ld c, [hl]
+	inc hl
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc hl
+	push hl
+	call Function1143f3
+	and a
+	jr nz, .asm_114d33
+	ld [$dc03], a
+	ld [$dc04], a
+	ld a, h
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld hl, $dc24
+	call Function114d39
+	ld hl, $dc24
+	call Function114d99
+	pop hl
+	push hl
+rept 4
+	inc hl
+endr
+	ld a, [hld]
+	cp b
+	jr c, .asm_114d2d
+	jr z, .asm_114d29
+.asm_114d11
+	pop hl
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld hl, PartyMon5Defense
+	call Function115d6a
+	xor a
+	jp Function11425c
+
+.asm_114d29
+	ld a, [hli]
+	cp c
+	jr nc, .asm_114d11
+
+.asm_114d2d
+	ld b, $83
+	jr .asm_114d33
+
+	ld b, $82
+
+.asm_114d33
+	pop hl
+	ld a, $1
+	jp Function11425c
+
+; 114d39
+
+Function114d39: ; 114d39
+.asm_114d39
+	ld a, [$dc04]
+	and a
+	jr nz, .asm_114d4a
+	ld a, [de]
+	cp $28
+	jr z, .asm_114d55
+	cp $22
+	jr z, .asm_114d55
+	jr .asm_114d7f
+
+.asm_114d4a
+	ld a, [de]
+	cp $29
+	jr z, .asm_114d5f
+	cp $22
+	jr z, .asm_114d6f
+	jr .asm_114d84
+
+.asm_114d55
+	ld [$dc03], a
+	ld a, $1
+	ld [$dc04], a
+	jr .asm_114d84
+
+.asm_114d5f
+	ld a, [$dc03]
+	cp $28
+	jr nz, .asm_114d84
+	xor a
+	ld [$dc03], a
+	ld [$dc04], a
+	jr .asm_114d84
+
+.asm_114d6f
+	ld a, [$dc03]
+	cp $22
+	jr nz, .asm_114d84
+	xor a
+	ld [$dc03], a
+	ld [$dc04], a
+	jr .asm_114d84
+
+.asm_114d7f
+	cp $20
+	jr z, .asm_114d84
+	ld [hli], a
+
+.asm_114d84
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_114d96
+	inc e
+	jr nz, .asm_114d39
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	jr .asm_114d39
+
+.asm_114d96
+	xor a
+	ld [hli], a
+	ret
+
+; 114d99
+
+Function114d99: ; 114d99
+	ld de, PartyMon5Defense
+	xor a
+	ld [de], a
+.asm_114d9e
+	ld a, [hli]
+	call Function114df1
+	and a
+	jr z, .asm_114dde
+	cp $40
+	jr nz, .asm_114d9e
+	dec hl
+.asm_114daa
+	dec hl
+	ld a, [hl]
+	call Function114e2d
+	and a
+	jr z, .asm_114daa
+	inc hl
+	push hl
+	ld b, $0
+.asm_114db6
+	ld a, [hli]
+	cp $40
+	jr z, .asm_114dc1
+	call Function114e2d
+	and a
+	jr nz, .asm_114dc4
+
+.asm_114dc1
+	inc b
+	jr .asm_114db6
+
+.asm_114dc4
+	pop hl
+	ld a, [PartyMon5Defense]
+	and a
+	jr z, .asm_114dd2
+	ld a, $2c
+	inc de
+	ld [de], a
+	ld a, [PartyMon5Defense]
+
+.asm_114dd2
+	inc a
+	ld [PartyMon5Defense], a
+.asm_114dd6
+	inc de
+	ld a, [hli]
+	ld [de], a
+	dec b
+	jr nz, .asm_114dd6
+	jr .asm_114d9e
+
+.asm_114dde
+	inc de
+	xor a
+	ld [de], a
+	ld a, $dd
+	cpl
+	ld h, a
+	ld a, $c8
+	cpl
+	ld l, a
+	inc hl
+	add hl, de
+	ld b, h
+	ld c, l
+	inc bc
+	inc bc
+	xor a
+	ret
+
+; 114df1
+
+Function114df1: ; 114df1
+	cp $1b
+	ret nz
+	ld a, [hli]
+	and a
+	jr z, .asm_114e2b
+	cp $24
+	jr nz, .asm_114e09
+	ld a, [hli]
+	and a
+	jr z, .asm_114e2b
+	cp $42
+	jr z, .asm_114e0b
+	cp $40
+	jr z, .asm_114e0b
+	dec hl
+
+.asm_114e09
+	dec hl
+	ret
+
+.asm_114e0b
+	ld a, [hli]
+	and a
+	jr z, .asm_114e2b
+	cp $1b
+	jr nz, .asm_114e0b
+	ld a, [hli]
+	and a
+	jr z, .asm_114e2b
+	cp $28
+	jr nz, .asm_114e0b
+	ld a, [hli]
+	and a
+	jr z, .asm_114e2b
+	cp $42
+	jr z, .asm_114e29
+	cp $4a
+	jr z, .asm_114e29
+	jr .asm_114e0b
+
+.asm_114e29
+	ld a, [hli]
+	ret
+
+.asm_114e2b
+	xor a
+	ret
+
+; 114e2d
+
+Function114e2d: ; 114e2d
+	cp $30
+	jr c, .asm_114e45
+	cp $40
+	jr c, .asm_114e58
+	cp $41
+	jr c, .asm_114e45
+	cp $5b
+	jr c, .asm_114e58
+	cp $61
+	jr c, .asm_114e45
+	cp $7b
+	jr c, .asm_114e58
+
+.asm_114e45
+	cp $20
+	jr z, .asm_114e58
+	cp $2d
+	jr z, .asm_114e58
+	cp $2e
+	jr z, .asm_114e58
+	cp $5f
+	jr z, .asm_114e58
+.asm_114e55
+	ld a, $1
+	ret
+
+.asm_114e58
+	cp $3c
+	jr z, .asm_114e55
+	cp $3e
+	jr z, .asm_114e55
+	xor a
+	ret
+
+; 114e62
+
+Function114e62: ; 114e62
+	ld a, c
+	and a
+	jr nz, .asm_114e6f
+	ld a, [wStartDay]
+	and a
+	jp z, Function11425c
+	jr .asm_114e76
+
+.asm_114e6f
+	xor a
+	ld [wStartDay], a
+	call Function114ee9
+
+.asm_114e76
+	call Function114f0a
+	cp $ff
+	jp z, Function11425c
+	and a
+	jr nz, .asm_114e99
+	call Function114ea0
+	and a
+	jr nz, .asm_114e99
+	ld hl, $dc09
+	ld a, [hli]
+	cpl
+	ld e, a
+	ld a, [hli]
+	cpl
+	ld d, a
+	inc de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	xor a
+	jp Function11425c
+
+.asm_114e99
+	ld a, $1
+	ld b, $83
+	jp Function11425c
+
+; 114ea0
+
+Function114ea0: ; 114ea0
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, $d
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_114edb
+	inc e
+	call z, Function114ee0
+	ld a, $a
+	ld [de], a
+	dec bc
+	inc e
+	call z, Function114ee0
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld a, d
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld [hl], b
+	xor a
+	ld [wStartDay], a
+	ret
+
+.asm_114edb
+	ld a, $1
+	ld b, $83
+	ret
+
+; 114ee0
+
+Function114ee0: ; 114ee0
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 114ee9
+
+Function114ee9: ; 114ee9
+	ld hl, $dc03
+	ld a, b
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld [hli], a
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld c, a
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld b, a
+	ld [hli], a
+	inc de
+	ld a, c
+	ld [hli], a
+	ld a, b
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld [hl], d
+	ret
+
+; 114f0a
+
+Function114f0a: ; 114f0a
+	call Function114f39
+	and a
+	jr nz, .asm_114f26
+	ld a, [$dc03]
+	cp $6
+	jr c, .asm_114f21
+	cp $c
+	jr z, .asm_114f23
+	call Function114f59
+	and a
+	jr nz, .asm_114f23
+
+.asm_114f21
+	xor a
+	ret
+
+.asm_114f23
+	ld a, $1
+	ret
+
+.asm_114f26
+	call Function114f59
+	and a
+	jr nz, .asm_114f23
+	ld hl, $dc0d
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld a, [de]
+	and a
+	jr z, .asm_114f21
+	ld a, $ff
+	ret
+
+; 114f39
+
+Function114f39: ; 114f39
+	ld hl, $dc0d
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc hl
+	ld a, [de]
+	and a
+	jr z, .asm_114f58
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld hl, $dc0d
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld a, $1
+	ret
+
+.asm_114f58
+	ret
+
+; 114f59
+
+Function114f59: ; 114f59
+	ld a, [wStartDay]
+	and a
+	jr nz, .asm_114f7c
+	ld a, [$dc03]
+	cp $11
+	jr z, .asm_114fa7
+	add a
+	ld e, a
+	ld d, 0
+	ld hl, Unknown_114011
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	call Function115020
+	and a
+	jr nz, .asm_114fe7
+	ld a, $1
+	ld [wStartDay], a
+
+.asm_114f7c
+	ld a, [$dc03]
+	cp $5
+	jr c, .asm_114fc9
+	jr z, .asm_114fec
+	cp $8
+	jr c, .asm_114fa5
+	jr z, .asm_114ff4
+	cp $b
+	jr c, .asm_114fa5
+	jr z, .asm_114ffc
+	cp $c
+	jr z, .asm_115007
+	cp $d
+	jr z, .asm_114fa5
+	cp $10
+	jr c, .asm_115015
+	jr z, .asm_114fa5
+	cp $12
+	jr c, .asm_114fa5
+	jr .asm_114fe7
+
+.asm_114fa5
+	xor a
+	ret
+
+.asm_114fa7
+	ld hl, Bed
+	ld c, [hl]
+	inc hl
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $dc24
+	call Function115d53
+	ld hl, $dc24
+	call Function115020
+	and a
+	jr nz, .asm_114fe7
+	jr .asm_11501e
+
+.asm_114fc9
+	call Function115062
+	and a
+	jr nz, .asm_114fe7
+	ld a, [$dc04]
+	dec a
+	ld [$dc04], a
+	and a
+	jr z, .asm_114fdf
+	call Function114f39
+	and a
+	jr nz, .asm_114fc9
+
+.asm_114fdf
+	ld a, [$dc05]
+	ld [$dc04], a
+	jr .asm_11501e
+
+.asm_114fe7
+	ld a, $1
+	ld b, $83
+	ret
+
+.asm_114fec
+	call Function115062
+	and a
+	jr nz, .asm_114fe7
+	jr .asm_11501e
+
+.asm_114ff4
+	call Function115179
+	and a
+	jr nz, .asm_114fe7
+	jr .asm_11501e
+
+.asm_114ffc
+	ld hl, String_114000
+	call Function115217
+	and a
+	jr nz, .asm_114fe7
+	jr .asm_11501e
+
+.asm_115007
+	call Function11528f
+	ld hl, $dc24
+	call Function115217
+	and a
+	jr nz, .asm_114fe7
+	jr .asm_11501e
+
+.asm_115015
+	ld hl, String_114000
+	call Function115217
+	and a
+	jr nz, .asm_114fe7
+
+.asm_11501e
+	xor a
+	ret
+
+; 115020
+
+Function115020: ; 115020
+	push hl
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	pop hl
+.asm_115036
+	ld a, [hli]
+	and a
+	jr z, .asm_115046
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115056
+	inc e
+	call z, Function115059
+	jr .asm_115036
+
+.asm_115046
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld a, d
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld [hl], b
+	xor a
+	ret
+
+.asm_115056
+	ld a, $1
+	ret
+
+; 115059
+
+Function115059: ; 115059
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 115062
+
+Function115062: ; 115062
+	ld hl, Bed
+	ld a, [hli]
+	and a
+	jr z, .asm_1150ae
+	ld c, a
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld b, $0
+	ld hl, $dc24
+	ld a, [wStartDay]
+	cp $1
+	jr z, .asm_11509b
+	cp $2
+	jr z, .asm_115098
+	cp $3
+	jr nz, .asm_1150b2
+	ld a, $2c
+	ld [hli], a
+	ld a, $d
+	ld [hli], a
+	ld a, $a
+	ld [hli], a
+	ld a, $9
+	ld [hli], a
+	jr .asm_11509b
+
+.asm_115098
+	ld a, $2c
+	ld [hli], a
+
+.asm_11509b
+	call Function115d53
+	call Function1150b3
+	call Function115136
+	ld a, [wStartDay]
+	inc a
+	cp $4
+	jr nz, .asm_1150ae
+	ld a, $2
+
+.asm_1150ae
+	ld [wStartDay], a
+	xor a
+
+.asm_1150b2
+	ret
+
+; 1150b3
+
+Function1150b3: ; 1150b3
+	ld hl, $dc24
+	ld de, PartyMon5Defense
+	ld b, $0
+.asm_1150bb
+	ld c, $0
+	ld a, [hli]
+	cp $1b
+	jr z, .asm_1150c9
+	ld [de], a
+	inc de
+	and a
+	jr z, .asm_115133
+	jr .asm_1150bb
+
+.asm_1150c9
+	inc c
+	ld a, [hl]
+	cp $24
+	jr nz, .asm_1150bb
+	inc hl
+	inc c
+	ld a, [hl]
+	cp $42
+	jr z, .asm_1150dc
+	cp $40
+	jr z, .asm_1150dc
+	jr .asm_1150bb
+
+.asm_1150dc
+	push hl
+.asm_1150dd
+	inc c
+	ld a, [hli]
+	and a
+	jr z, .asm_115133
+	cp $1b
+	jr nz, .asm_1150dd
+	inc c
+	ld a, [hli]
+	cp $28
+	jr nz, .asm_1150dd
+	inc c
+	ld a, [hli]
+	cp $42
+	jr z, .asm_1150f8
+	cp $4a
+	jr z, .asm_1150f8
+	jr .asm_1150dd
+
+.asm_1150f8
+	ld a, l
+	ld [Console], a
+	ld a, h
+	ld [LeftOrnament], a
+	ld hl, String_114232
+.asm_115103
+	ld a, [hli]
+	and a
+	jr z, .asm_11510b
+	ld [de], a
+	inc de
+	jr .asm_115103
+
+.asm_11510b
+	pop hl
+	dec hl
+	dec hl
+	push de
+	call Function1158c2
+	pop de
+	ld h, d
+	ld l, e
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	inc hl
+.asm_115119
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_115119
+	ld a, $3f
+	ld [de], a
+	inc de
+	ld a, $3d
+	ld [de], a
+	inc de
+	ld a, [Console]
+	ld l, a
+	ld a, [LeftOrnament]
+	ld h, a
+	jr .asm_1150bb
+
+.asm_115133
+	xor a
+	ld [de], a
+	ret
+
+; 115136
+
+Function115136: ; 115136
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld hl, PartyMon5Defense
+.asm_11514d
+	ld a, [hli]
+	and a
+	jr z, .asm_11515d
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_11516d
+	inc e
+	call z, Function115170
+	jr .asm_11514d
+
+.asm_11515d
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld a, d
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld [hl], b
+	xor a
+	ret
+
+.asm_11516d
+	ld a, $1
+	ret
+
+; 115170
+
+Function115170: ; 115170
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 115179
+
+Function115179: ; 115179
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld hl, $013f
+	ld a, [hli]
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1151ef
+	inc e
+	call z, Function11520e
+	ld a, [hli]
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1151ef
+	inc e
+	call z, Function11520e
+	ld a, [hli]
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1151ef
+	inc e
+	call z, Function11520e
+	ld a, [hli]
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1151ef
+	inc e
+	call z, Function11520e
+	ld a, $2d
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1151ef
+	inc e
+	call z, Function11520e
+	ld a, [$014c]
+	ld h, a
+	and $f0
+	swap a
+	cp $a
+	jr nc, .asm_1151d8
+	add $30
+	jr .asm_1151da
+
+.asm_1151d8
+	add $37
+
+.asm_1151da
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1151ef
+	inc e
+	call z, Function11520e
+	ld a, h
+	and $f
+	cp $a
+	jr nc, .asm_1151f2
+	add $30
+	jr .asm_1151f4
+
+.asm_1151ef
+	ld a, $1
+	ret
+
+.asm_1151f2
+	add $37
+
+.asm_1151f4
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_1151ef
+	inc e
+	call z, Function11520e
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld a, d
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld [hl], b
+	xor a
+	ret
+
+; 11520e
+
+Function11520e: ; 11520e
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 115217
+
+Function115217: ; 115217
+	push hl
+	ld hl, $dc06
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	pop hl
+.asm_11522d
+	ld a, [hli]
+	and a
+	jr z, .asm_11523d
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115262
+	inc e
+	call z, Function115286
+	jr .asm_11522d
+
+.asm_11523d
+	ld a, [$dc03]
+	cp $b
+	jr z, .asm_115278
+	cp $c
+	jr z, .asm_115278
+	cp $e
+	jr z, .asm_115252
+	cp $f
+	jr z, .asm_115265
+	jr .asm_115262
+
+.asm_115252
+	ld hl, $dc06
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld a, d
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld [hl], b
+	xor a
+	ret
+
+.asm_115262
+	ld a, $1
+	ret
+
+.asm_115265
+	ld h, $2
+.asm_115267
+	ld a, $2d
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115262
+	inc e
+	call z, Function115286
+	dec h
+	jr nz, .asm_115267
+	jr .asm_115252
+
+.asm_115278
+	ld a, $22
+	ld [de], a
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115262
+	inc e
+	call z, Function115286
+	jr .asm_115252
+
+; 115286
+
+Function115286: ; 115286
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 11528f
+
+Function11528f: ; 11528f
+	ld hl, Bed
+	ld c, [hl]
+	inc hl
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld hl, $dc24
+.asm_1152a4
+	ld a, [de]
+	ld [hli], a
+	inc e
+	call z, Function1152af
+	dec c
+	jr nz, .asm_1152a4
+	ld [hl], c
+	ret
+
+; 1152af
+
+Function1152af: ; 1152af
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 1152b8
+
+Function1152b8: ; 1152b8
+	push bc
+	call Function11537d
+	push de
+	ld h, d
+	ld l, e
+	ld a, [hli]
+	ld b, a
+	ld c, $1
+	call Function1153d2
+	pop de
+	and a
+	jr nz, .asm_1152f9
+.asm_1152ca
+	ld hl, $dc0d
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+.asm_1152d0
+	ld a, [$dc03]
+	cp $3
+	jr nz, .asm_1152d8
+	push de
+
+.asm_1152d8
+	cp $5
+	jr nz, .asm_1152e7
+	pop hl
+	ld a, [hli]
+	ld b, a
+	ld c, $3
+	call Function1153d2
+	and a
+	jr nz, .asm_1152f9
+
+.asm_1152e7
+	ld a, [de]
+	inc de
+	and a
+	jr nz, .asm_115301
+	ld a, [$dc03]
+	cp $6
+	jr z, .asm_115335
+	inc a
+	ld [$dc03], a
+	jr .asm_1152d0
+
+.asm_1152f9
+	pop hl
+	ld a, $1
+	ld b, $83
+	jp Function11425c
+
+.asm_115301
+	ld hl, $dc0d
+	ld [hl], e
+	inc hl
+	ld [hl], d
+.asm_115307
+	ld [$dc05], a
+	ld a, $1
+	ld [$dc04], a
+	call Function1153b5
+	call Function114f59
+	and a
+	jr nz, .asm_1152f9
+	ld a, [$dc05]
+	dec a
+	jr nz, .asm_115307
+	ld a, [$dc03]
+	inc a
+	ld [$dc03], a
+	call Function114ea0
+	and a
+	jr nz, .asm_1152f9
+	ld [wStartDay], a
+	ld a, [$dc03]
+	cp $6
+	jr nz, .asm_1152ca
+
+.asm_115335
+	call Function1153b5
+	xor a
+	ld [wStartDay], a
+	call Function114f59
+	and a
+	jr nz, .asm_1152f9
+	call Function114ea0
+	and a
+	jr nz, .asm_1152f9
+	ld a, [$dc03]
+	inc a
+	ld [$dc03], a
+	cp $9
+	jr nz, .asm_115335
+	pop bc
+	ld a, b
+	and a
+	jr z, .asm_11536b
+	call Function1153b5
+	xor a
+	ld [wStartDay], a
+	call Function114f59
+	and a
+	jr nz, .asm_1152f9
+	call Function114ea0
+	and a
+	jr nz, .asm_1152f9
+
+.asm_11536b
+	ld hl, $dc09
+	ld a, [hli]
+	cpl
+	ld e, a
+	ld a, [hli]
+	cpl
+	ld d, a
+	inc de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	xor a
+	jp Function11425c
+
+; 11537d
+
+Function11537d: ; 11537d
+	ld hl, $dc06
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	ld b, a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc hl
+	ld a, [de]
+	ld [hld], a
+	ld a, b
+	ld [hli], a
+	inc de
+	ld hl, RightOrnament
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld hl, $dc0d
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	xor a
+	ld [$dc03], a
+	ld [wStartDay], a
+	ret
+
+; 1153b5
+
+Function1153b5: ; 1153b5
+	ld hl, $dc0d
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc hl
+	inc hl
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hl], a
+	inc de
+	ld a, [de]
+	ld [Bed], a
+	inc de
+	ld hl, $dc0d
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ret
+
+; 1153d2
+
+Function1153d2: ; 1153d2
+	ld a, [$dc03]
+	ld d, a
+	ld a, [$dc04]
+	ld e, a
+	push de
+	xor a
+	ld [$dc03], a
+	ld [$dc04], a
+	ld a, $24
+	ld [Console], a
+	ld a, $dc
+	ld [LeftOrnament], a
+	push bc
+	jr .asm_1153f4
+
+.asm_1153ef
+	ld a, [hli]
+	and a
+	jr z, .asm_115426
+	ld b, a
+
+.asm_1153f4
+	push bc
+.asm_1153f5
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc hl
+	ld c, [hl]
+	inc hl
+	push hl
+	ld a, [Console]
+	ld l, a
+	ld a, [LeftOrnament]
+	ld h, a
+	push bc
+	ld b, $0
+	call Function115d53
+	inc hl
+	ld [hl], a
+	pop bc
+	ld a, l
+	ld e, a
+	ld [Console], a
+	ld a, h
+	ld d, a
+	ld [LeftOrnament], a
+	dec b
+	jr z, .asm_11542b
+	pop hl
+	jr .asm_1153f5
+
+.asm_115426
+	dec c
+	jr nz, .asm_1153ef
+	jr .asm_115430
+
+.asm_11542b
+	pop hl
+	pop bc
+	dec c
+	jr nz, .asm_1153ef
+
+.asm_115430
+	ld a, l
+	ld [Console], a
+	ld a, h
+	ld [LeftOrnament], a
+	xor a
+	ld [de], a
+	ld hl, $dc24
+.asm_11543d
+	ld a, [hli]
+	and a
+	jr nz, .asm_11543d
+	ld a, [hl]
+	and a
+	jr z, .asm_115457
+	dec hl
+	ld a, $2c
+	ld [hli], a
+	jr .asm_11543d
+
+.asm_11544b
+	pop hl
+	ld a, h
+	ld [$dc03], a
+	ld a, l
+	ld [$dc04], a
+	ld a, $1
+	ret
+
+.asm_115457
+	ld hl, $dc24
+	call Function114d99
+	ld hl, $ddc8
+.asm_115460
+	ld a, [hli]
+	and a
+	jr z, .asm_11546d
+	cp $2c
+	jr nz, .asm_115460
+	dec hl
+	xor a
+	ld [hli], a
+	jr .asm_115460
+
+.asm_11546d
+	pop de
+	ld a, e
+	cp $1
+	jr z, .asm_115477
+	xor a
+	ld [hli], a
+	jr .asm_115478
+
+.asm_115477
+	dec bc
+
+.asm_115478
+	ld hl, $dc18
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, b
+	cp h
+	jr c, .asm_11548c
+	jr nz, .asm_11544b
+	ld a, c
+	cp l
+	jr c, .asm_11548c
+	jr z, .asm_11548c
+	jr .asm_11544b
+
+.asm_11548c
+	ld hl, $dc18
+	ld a, c
+	cpl
+	ld e, a
+	ld a, b
+	cpl
+	ld d, a
+	inc de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	ld de, $dc18
+	ld a, l
+	ld [de], a
+	inc de
+	ld a, h
+	ld [de], a
+	ld hl, RightOrnament
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $ddc8
+	call Function115d6a
+	ld hl, RightOrnament
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld a, [Console]
+	ld e, a
+	ld a, [LeftOrnament]
+	ld d, a
+	pop hl
+	ld a, h
+	ld [$dc03], a
+	ld a, l
+	ld [$dc04], a
+	xor a
+	ret
+
+; 1154d4
+
+Function1154d4: ; 1154d4
+	xor a
+	ld [wStartDay], a
+	call Function1155af
+	call Function11560a
+	and a
+	jr nz, .asm_11552c
+	call Function1155d1
+	ld a, [RightOrnament]
+	dec a
+	ld [RightOrnament], a
+	and a
+	jp z, .asm_115577
+	cp $1
+	jr nz, .asm_115531
+	xor a
+	ld [wDailyResetTimer], a
+.asm_1154f7
+	ld a, [BigDoll]
+	cp $2
+	jr z, .asm_115502
+	cp $3
+	jr z, .asm_11550f
+
+.asm_115502
+	ld a, $a
+	ld [$dc03], a
+	call Function114f59
+	and a
+	jr z, .asm_11551a
+	jr .asm_11552c
+
+.asm_11550f
+	ld a, $c
+	ld [$dc03], a
+	call Function114f59
+	and a
+	jr nz, .asm_11552c
+
+.asm_11551a
+	call Function114ea0
+	and a
+	jr nz, .asm_11552c
+	call Function114ea0
+	and a
+	jr nz, .asm_11552c
+	call Function11560a
+	and a
+	jr z, .asm_1155a0
+
+.asm_11552c
+	ld a, $1
+	jp Function11425c
+
+.asm_115531
+	ld a, $1
+	ld [wDailyResetTimer], a
+	ld a, $b
+	ld [$dc03], a
+	call Function114f59
+	and a
+	jr nz, .asm_11552c
+	call Function114ea0
+	and a
+	jr nz, .asm_11552c
+.asm_115547
+	call Function114ea0
+	and a
+	jr nz, .asm_11552c
+	ld a, $e
+	ld [$dc03], a
+	call Function114f59
+	and a
+	jr nz, .asm_11552c
+	call Function114ea0
+	and a
+	jr nz, .asm_11552c
+	jr .asm_1154f7
+
+.asm_115560
+	call Function114ea0
+	and a
+	jr nz, .asm_11552c
+	ld a, [wDailyResetTimer]
+	and a
+	jr z, .asm_11557d
+	ld a, $f
+	ld [$dc03], a
+	call Function114f59
+	and a
+	jr nz, .asm_11552c
+
+.asm_115577
+	call Function114ea0
+	and a
+	jr nz, .asm_11552c
+
+.asm_11557d
+	ld a, $10
+	ld [$dc03], a
+	call Function114f59
+	and a
+	jr nz, .asm_11552c
+	call Function114ea0
+	and a
+	jr nz, .asm_11552c
+	ld hl, $dc09
+	ld a, [hli]
+	cpl
+	ld e, a
+	ld a, [hli]
+	cpl
+	ld d, a
+	inc de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	xor a
+	jp Function11425c
+
+.asm_1155a0
+	ld a, [RightOrnament]
+	dec a
+	ld [RightOrnament], a
+	and a
+	jr z, .asm_115560
+	call Function1155d1
+	jr .asm_115547
+
+; 1155af
+
+Function1155af: ; 1155af
+	ld hl, $dc06
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	ld b, a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	ld [hl], b
+	inc hl
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [RightOrnament], a
+	inc de
+	ld a, e
+	ld [hli], a
+	ld [hl], d
+	call Function1155d1
+	ret
+
+; 1155d1
+
+Function1155d1: ; 1155d1
+	ld a, [$dc0d]
+	ld l, a
+	ld a, [$dc0e]
+	ld h, a
+	ld a, [hli]
+	ld [BigDoll], a
+	cp $3
+	jr nz, .asm_1155f0
+	ld de, Carpet
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	ld a, [hli]
+	ld [Bed], a
+
+.asm_1155f0
+	ld de, $dc17
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	ld a, l
+	ld [$dc0d], a
+	ld a, h
+	ld [$dc0e], a
+	ret
+
+; 11560a
+
+Function11560a: ; 11560a
+	ld a, [$dc06]
+	ld [wCurrentMapSignpostCount], a
+	ld a, [$dc17]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld hl, $dc1a
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	ld a, [wCurrMapCallbackCount]
+	cp b
+	jp c, .asm_1156b1
+	jr nz, .asm_115631
+	ld a, [$dc09]
+	cp c
+	jp c, .asm_1156b1
+
+.asm_115631
+	ld a, b
+	or c
+	jr z, .asm_1156a9
+	ld a, [$dc09]
+	ld l, a
+	ld a, [wCurrMapCallbackCount]
+	ld h, a
+	ld a, c
+	cpl
+	ld e, a
+	ld a, b
+	cpl
+	ld d, a
+	inc de
+	add hl, de
+	ld a, l
+	ld [$dc09], a
+	ld a, h
+	ld [wCurrMapCallbackCount], a
+.asm_11564d
+	ld a, $3
+	cp b
+	jr c, .asm_1156b6
+	jr nz, .asm_115659
+	ld a, $db
+	cp c
+	jr c, .asm_1156b6
+
+.asm_115659
+	ld a, [$dc1a]
+	ld e, a
+	ld a, [$dc1b]
+	ld d, a
+	ld a, c
+	cpl
+	ld l, a
+	ld a, b
+	cpl
+	ld h, a
+	inc hl
+	add hl, de
+	ld a, l
+	ld [$dc1a], a
+	ld a, h
+	ld [$dc1b], a
+	push bc
+	ld hl, $dc18
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $dc24
+	call Function115d53
+	ld hl, $dc18
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	pop bc
+	ld a, [wCurrentMapSignpostCount]
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld hl, wCurrMapTriggerCount
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $dc24
+	call Function115d6a
+	ld hl, wCurrMapTriggerCount
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld hl, $dc1a
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	ld a, b
+	or c
+	jr nz, .asm_11564d
+
+.asm_1156a9
+	ld a, [wCurrentMapSignpostCount]
+	ld [$dc06], a
+	xor a
+	ret
+
+.asm_1156b1
+	ld a, $1
+	ld b, $83
+	ret
+
+.asm_1156b6
+	ld a, $3
+	cpl
+	ld h, a
+	ld a, $db
+	cpl
+	ld l, a
+	add hl, bc
+	ld de, $dc1a
+	ld a, l
+	ld [de], a
+	inc de
+	ld a, h
+	ld [de], a
+	ld bc, $03db
+	jr .asm_115659
+
+; 1156cc
+
+Function1156cc: ; 1156cc
+	ld a, [wStartDay]
+	and a
+	jp z, Function11425c
+	cp $2
+	jr z, .asm_1156fa
+	cp $3
+	jr z, .asm_1156fd
+	cp $4
+	jr z, .asm_1156fd
+	cp $5
+	jr z, .asm_115716
+	cp $ff
+	jr z, .asm_11572b
+	cp $1
+	jp nz, Function11425c
+	call Function115732
+	call Function11575c
+	ld a, h
+	ld [Poster], a
+	ld a, l
+	ld [Plant], a
+
+.asm_1156fa
+	call Function1157d0
+
+.asm_1156fd
+	call Function11581e
+	and a
+	jr nz, .asm_11572b
+	ld a, [wStartDay]
+	cp $5
+	jr z, .asm_115716
+	ld a, [Poster]
+	ld h, a
+	ld a, [Plant]
+	ld l, a
+	xor a
+	jp Function11425c
+
+.asm_115716
+	ld hl, wCurrMapCallbackCount
+	ld a, [hli]
+	cpl
+	ld e, a
+	ld a, [hli]
+	cpl
+	ld d, a
+	inc de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	xor a
+	ld [wStartDay], a
+	jp Function11425c
+
+.asm_11572b
+	ld a, $1
+	ld b, $83
+	jp Function11425c
+
+; 115732
+
+Function115732: ; 115732
+	ld hl, $dc02
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	dec de
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hli], a
+	ld a, c
+	ld [hli], a
+	ld [hl], b
+	ret
+
+; 11575c
+
+Function11575c: ; 11575c
+	ld hl, $dc05
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld e, $10
+	ld b, $0
+	ld c, b
+	ld d, b
+	ld a, $3
+.asm_11576a
+	rl l
+	rl h
+	rl d
+	cp d
+	jr c, .asm_11577c
+	rl c
+	rl b
+	dec e
+	jr nz, .asm_11576a
+	jr .asm_11578a
+
+.asm_11577c
+	ld a, d
+	sub $3
+	ld d, a
+	ld a, $3
+	scf
+	rl c
+	rl b
+	dec e
+	jr nz, .asm_11576a
+
+.asm_11578a
+	ld a, d
+	and a
+	jr z, .asm_11578f
+	inc bc
+
+.asm_11578f
+	sla c
+	rl b
+	sla c
+	rl b
+	ld h, b
+	ld l, c
+	push hl
+	ld e, $10
+	ld b, $0
+	ld c, b
+	ld d, b
+	ld a, $40
+.asm_1157a2
+	rl l
+	rl h
+	rl d
+	cp d
+	jr c, .asm_1157b4
+	rl c
+	rl b
+	dec e
+	jr nz, .asm_1157a2
+	jr .asm_1157c3
+
+.asm_1157b4
+	ld a, d
+	sub $40
+	ld d, a
+	ld a, $40
+	scf
+	rl c
+	rl b
+	dec e
+	jr nz, .asm_1157a2
+	inc bc
+
+.asm_1157c3
+	and a
+	sla c
+	rl b
+	pop hl
+	add hl, bc
+	ld a, $2
+	ld [wStartDay], a
+	ret
+
+; 1157d0
+
+Function1157d0: ; 1157d0
+	ld hl, $dc05
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [$dc0e]
+	ld c, a
+	ld a, [Bed]
+	ld b, a
+	cp h
+	jr c, .asm_1157eb
+	jr nz, .asm_1157e9
+	ld a, c
+	cp l
+	jr c, .asm_1157eb
+	jr z, .asm_1157eb
+
+.asm_1157e9
+	ld b, h
+	ld c, l
+
+.asm_1157eb
+	push bc
+	ld a, b
+	cpl
+	ld b, a
+	ld a, c
+	cpl
+	ld c, a
+	inc bc
+	add hl, bc
+	ld a, l
+	ld [$dc05], a
+	ld a, h
+	ld [$dc06], a
+	ld a, h
+	or l
+	jr nz, .asm_11580f
+	pop bc
+	ld a, c
+	ld [$dc0e], a
+	ld a, b
+	ld [Bed], a
+	ld a, $4
+	ld [wStartDay], a
+	ret
+
+.asm_11580f
+	pop bc
+	ld a, c
+	ld [$dc0e], a
+	ld a, b
+	ld [Bed], a
+	ld a, $3
+	ld [wStartDay], a
+	ret
+
+; 11581e
+
+Function11581e: ; 11581e
+	ld a, [wStartDay]
+	and a
+	ret z
+	ld a, [$dc0e]
+	ld c, a
+	ld a, [Bed]
+	ld b, a
+	ld hl, $dc02
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $dc24
+	push bc
+	call Function115d53
+	pop bc
+	ld hl, $dc02
+	ld a, [$dc00]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld hl, $dc24
+	ld de, PartyMon5Defense
+	call Function1158c2
+	ld hl, PartyMon5Defense
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	inc hl
+	push hl
+	ld a, [wCurrMapCallbackCount]
+	ld l, a
+	ld a, [wCurrMapCallbackHeaderPointer]
+	ld h, a
+	cp b
+	jr c, .asm_1158bb
+	jr nz, .asm_11586e
+	ld a, l
+	cp c
+	jr c, .asm_1158bb
+
+.asm_11586e
+	push bc
+	ld a, b
+	cpl
+	ld b, a
+	ld a, c
+	cpl
+	ld c, a
+	inc bc
+	add hl, bc
+	ld a, l
+	ld [wCurrMapCallbackCount], a
+	ld a, h
+	ld [wCurrMapCallbackHeaderPointer], a
+	pop bc
+	pop hl
+	ld hl, wCurrMapTriggerCount
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, PartyMon5Speed
+	call Function115d6a
+	ld hl, wCurrMapTriggerCount
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld [hl], d
+	ld a, [wStartDay]
+	cp $3
+	jr z, .asm_1158b4
+	cp $4
+	jr z, .asm_1158ad
+	jr .asm_1158bc
+
+.asm_1158ad
+	ld a, $5
+	ld [wStartDay], a
+	jr .asm_1158b9
+
+.asm_1158b4
+	ld a, $2
+	ld [wStartDay], a
+
+.asm_1158b9
+	xor a
+	ret
+
+.asm_1158bb
+	pop hl
+
+.asm_1158bc
+	ld a, $ff
+	ld [wStartDay], a
+	ret
+
+; 1158c2
+
+Function1158c2: ; 1158c2
+	ld a, e
+	ld [SwarmFlags], a
+	ld a, d
+	ld [$dc21], a
+	xor a
+	ld [$dc22], a
+	xor a
+	ld [de], a
+	inc de
+	ld [de], a
+	inc de
+	ld a, c
+	ld [$dc19], a
+	ld a, b
+	ld [$dc1a], a
+	ld c, e
+	ld b, d
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	xor a
+	ld [WeeklyFlags], a
+
+.asm_1158e5
+	ld b, $3
+	push hl
+	ld hl, $dc1b
+.asm_1158eb
+	ld a, [de]
+	inc de
+	ld [hli], a
+	dec b
+	jr nz, .asm_1158eb
+	ld a, [$dc19]
+	ld c, a
+	ld a, [$dc1a]
+	ld b, a
+	xor a
+	or b
+	jr nz, .asm_115914
+	ld a, $2
+	cp c
+	jr c, .asm_115914
+	push hl
+	dec hl
+	ld a, c
+	ld [WeeklyFlags], a
+.asm_115908
+	xor a
+	ld [hld], a
+	inc c
+	ld a, $3
+	cp c
+	jr nz, .asm_115908
+	pop hl
+	ld bc, $0003
+
+.asm_115914
+	dec bc
+	dec bc
+	dec bc
+	ld a, c
+	ld [$dc19], a
+	ld a, b
+	ld [$dc1a], a
+	push de
+	push hl
+	ld hl, SwarmFlags
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+rept 4
+	inc de
+endr
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	pop hl
+	dec hl
+	ld c, [hl]
+	dec hl
+	ld b, [hl]
+	dec hl
+	ld a, [hl]
+	ld d, a
+	srl a
+	srl a
+	ld [hli], a
+	ld a, $3
+	and d
+	ld d, a
+	ld a, $f0
+	and b
+	or d
+	swap a
+	ld [hli], a
+	ld a, $f
+	and b
+	ld d, a
+	ld a, c
+	and $c0
+	or d
+	rlca
+	rlca
+	ld [hli], a
+	ld a, $3f
+	and c
+	ld [hld], a
+	dec hl
+	dec hl
+	pop de
+	ld b, h
+	ld c, l
+	pop hl
+	ld a, [bc]
+	inc bc
+	call Function1159dc
+	ld [hli], a
+	ld a, [bc]
+	inc bc
+	call Function1159dc
+	ld [hli], a
+	ld a, [bc]
+	inc bc
+	call Function1159dc
+	ld [hli], a
+	ld a, [bc]
+	inc bc
+	call Function1159dc
+	ld [hli], a
+	ld a, [$dc22]
+	inc a
+	cp $10
+	jr nz, .asm_1159b1
+	push af
+	push bc
+	ld a, [$dc19]
+	ld b, a
+	ld a, [$dc1a]
+	or b
+	jr nz, .asm_115998
+	ld a, [$dc05]
+	ld b, a
+	ld a, [$dc06]
+	or b
+	jr nz, .asm_115998
+	pop bc
+	pop af
+	jr .asm_1159c4
+
+.asm_115998
+	pop bc
+	pop af
+	ld a, $d
+	ld [hli], a
+	ld a, $a
+	ld [hli], a
+	push hl
+	ld hl, SwarmFlags
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [hli]
+	ld c, a
+	ld b, [hl]
+	inc bc
+	inc bc
+	ld a, b
+	ld [hld], a
+	ld [hl], c
+	pop hl
+	xor a
+
+.asm_1159b1
+	ld [$dc22], a
+	ld a, [$dc19]
+	cp $0
+	jp nz, .asm_1158e5
+	ld a, [$dc1a]
+	cp $0
+	jp nz, .asm_1158e5
+
+.asm_1159c4
+	ld a, [WeeklyFlags]
+	cp $0
+	jr z, .asm_1159d8
+	push hl
+	dec hl
+	ld b, a
+.asm_1159ce
+	ld a, $3d
+	ld [hld], a
+	inc b
+	ld a, $3
+	cp b
+	jr nz, .asm_1159ce
+	pop hl
+
+.asm_1159d8
+	ld a, $0
+	ld [hl], a
+	ret
+
+; 1159dc
+
+Function1159dc: ; 1159dc
+	cp $1a
+	jr c, .asm_1159ef
+	cp $34
+	jr c, .asm_1159f2
+	cp $3e
+	jr c, .asm_1159f5
+	cp $3e
+	jr z, .asm_1159f8
+	ld a, $2f
+	ret
+
+.asm_1159ef
+	add $41
+	ret
+
+.asm_1159f2
+	add $47
+	ret
+
+.asm_1159f5
+	sub $4
+	ret
+
+.asm_1159f8
+	ld a, $2b
+	ret
+
+; 1159fb
+
+Function1159fb: ; 1159fb
+	ld a, [wStartDay]
+	and a
+	jp z, Function11425c
+	cp $2
+	jr z, .asm_115a29
+	cp $3
+	jr z, .asm_115a2c
+	cp $4
+	jr z, .asm_115a2c
+	cp $5
+	jr z, .asm_115a45
+	cp $ff
+	jr z, .asm_115a5a
+	cp $1
+	jp nz, Function11425c
+	call Function115732
+	call Function115a5f
+	ld a, h
+	ld [Plant], a
+	ld a, l
+	ld [Poster], a
+
+.asm_115a29
+	call Function115ab0
+
+.asm_115a2c
+	call Function115b00
+	and a
+	jr nz, .asm_115a5a
+	ld a, [wStartDay]
+	cp $5
+	jr z, .asm_115a45
+	ld a, [Poster]
+	ld h, a
+	ld a, [Plant]
+	ld l, a
+	xor a
+	jp Function11425c
+
+.asm_115a45
+	ld hl, wCurrMapCallbackCount
+	ld a, [hli]
+	cpl
+	ld e, a
+	ld a, [hli]
+	cpl
+	ld d, a
+	inc de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	add hl, de
+	xor a
+	ld [wStartDay], a
+	jp Function11425c
+
+.asm_115a5a
+	ld a, $1
+	jp Function11425c
+
+; 115a5f
+
+Function115a5f: ; 115a5f
+	ld hl, $dc05
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	push hl
+	ld e, $10
+	ld b, $0
+	ld c, b
+	ld d, b
+	ld a, $42
+.asm_115a6e
+	rl l
+	rl h
+	rl d
+	cp d
+	jr c, .asm_115a80
+	rl c
+	rl b
+	dec e
+	jr nz, .asm_115a6e
+	jr .asm_115a8e
+
+.asm_115a80
+	ld a, d
+	sub $42
+	ld d, a
+	ld a, $42
+	scf
+	rl c
+	rl b
+	dec e
+	jr nz, .asm_115a6e
+
+.asm_115a8e
+	sla c
+	rl b
+	pop hl
+	ld a, b
+	cpl
+	ld b, a
+	ld a, c
+	cpl
+	ld c, a
+	inc bc
+	add hl, bc
+	srl h
+	rr l
+	srl h
+	rr l
+	ld b, h
+	ld c, l
+	sla c
+	rl b
+	add hl, bc
+	ld a, $2
+	ld [wStartDay], a
+	ret
+
+; 115ab0
+
+Function115ab0: ; 115ab0
+	ld hl, $dc05
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld a, [$dc0e]
+	ld c, a
+	ld a, [Bed]
+	ld b, a
+	cp h
+	jr c, .asm_115acb
+	jr nz, .asm_115ac9
+	ld a, c
+	cp l
+	jr c, .asm_115acb
+	jr z, .asm_115acb
+
+.asm_115ac9
+	ld b, h
+	ld c, l
+
+.asm_115acb
+	push bc
+	ld a, b
+	cpl
+	ld b, a
+	ld a, c
+	cpl
+	ld c, a
+	inc bc
+	add hl, bc
+	ld a, l
+	ld [$dc05], a
+	ld a, h
+	ld [$dc06], a
+	ld a, h
+	or l
+	jr nz, .asm_115af0
+	pop bc
+	ld a, c
+	ld [$dc0e], a
+	ld a, b
+	ld [Bed], a
+	ld a, $4
+	ld [wStartDay], a
+	xor a
+	ret
+
+.asm_115af0
+	pop bc
+	ld a, c
+	ld [$dc0e], a
+	ld a, b
+	ld [Bed], a
+	ld a, $3
+	ld [wStartDay], a
+	xor a
+	ret
+
+; 115b00
+
+Function115b00: ; 115b00
+	ld a, [wStartDay]
+	and a
+	ret z
+	ld a, [$dc0e]
+	ld c, a
+	ld a, [Bed]
+	ld b, a
+	ld hl, $dc02
+	ld a, [hli]
+	ld [$dc00], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, PartyMon5Defense
+	push bc
+	call Function115bc8
+	pop hl
+	and a
+	jr z, .asm_115b43
+	cp $2
+	jr z, .asm_115b3b
+	ld a, [wStartDay]
+	cp $4
+	jr z, .asm_115b43
+	inc hl
+	inc hl
+	jr .asm_115b43
+
+.asm_115b36
+	pop hl
+	ld b, $83
+	jr .asm_115b3d
+
+.asm_115b3b
+	ld b, $81
+
+.asm_115b3d
+	ld a, $ff
+	ld [wStartDay], a
+	ret
+
+.asm_115b43
+	ld a, [Carpet]
+	add a
+	cpl
+	ld c, a
+	ld b, $ff
+	inc bc
+	add hl, bc
+	ld b, h
+	ld c, l
+	ld hl, $dc02
+	ld a, [$dc00]
+	ld [hli], a
+	ld [hl], e
+	inc hl
+	ld [hl], d
+	ld hl, PartyMon5Defense
+	ld de, $dc24
+	call Function115c49
+	ld hl, $dc24
+	ld c, [hl]
+	inc hl
+	ld b, [hl]
+	inc hl
+	push hl
+	ld a, [wCurrMapCallbackCount]
+	ld l, a
+	ld a, [wCurrMapCallbackHeaderPointer]
+	ld h, a
+	cp b
+	jr c, .asm_115b36
+	jr nz, .asm_115b7b
+	ld a, l
+	cp c
+	jr c, .asm_115b36
+
+.asm_115b7b
+	push bc
+	ld a, b
+	cpl
+	ld b, a
+	ld a, c
+	cpl
+	ld c, a
+	inc bc
+	add hl, bc
+	ld a, l
+	ld [wCurrMapCallbackCount], a
+	ld a, h
+	ld [wCurrMapCallbackHeaderPointer], a
+	pop bc
+	pop hl
+	ld hl, wCurrMapTriggerCount
+	ld a, [hli]
+	ld [wCurrentMapSignpostCount], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld hl, $dc26
+	call Function115d6a
+	ld hl, wCurrMapTriggerCount
+	ld a, [wCurrentMapSignpostCount]
+	ld [hli], a
+	ld a, e
+	ld [hli], a
+	ld [hl], d
+	ld a, [wStartDay]
+	cp $3
+	jr z, .asm_115bc1
+	cp $4
+	jr z, .asm_115bba
+	jr .asm_115b3b
+
+.asm_115bba
+	ld a, $5
+	ld [wStartDay], a
+	jr .asm_115bc6
+
+.asm_115bc1
+	ld a, $2
+	ld [wStartDay], a
+
+.asm_115bc6
+	xor a
+	ret
+
+; 115bc8
+
+Function115bc8: ; 115bc8
+	xor a
+	ld [Carpet], a
+.asm_115bcc
+	ld a, [de]
+	ld [hli], a
+	inc e
+	call z, .Function115c3d
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115c46
+	ld a, [de]
+	ld [hli], a
+	inc e
+	call z, .Function115c3d
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115c1b
+	ld a, [de]
+	ld [hli], a
+	inc e
+	call z, .Function115c3d
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115c46
+	ld a, [de]
+	ld [hli], a
+	inc e
+	call z, .Function115c3d
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115c3a
+	ld a, [de]
+	cp $d
+	jr nz, .asm_115bcc
+	inc e
+	call z, .Function115c3d
+	ld a, [de]
+	cp $a
+	jr nz, .asm_115c46
+	inc e
+	call z, .Function115c3d
+	dec bc
+	ld a, b
+	or c
+	jr z, .asm_115c46
+	ld a, [Carpet]
+	inc a
+	ld [Carpet], a
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_115bcc
+
+.asm_115c1b
+	ld a, [wStartDay]
+	cp $4
+	jr z, .asm_115c33
+	ld a, [de]
+	ld [hli], a
+	inc e
+	call z, .Function115c3d
+	ld a, [de]
+	ld [hli], a
+	inc e
+	call z, .Function115c3d
+	xor a
+	ld [hl], a
+	ld a, $1
+	ret
+
+.asm_115c33
+	dec hl
+	dec hl
+	xor a
+	ld [hl], a
+	ld a, $1
+	ret
+
+.asm_115c3a
+	xor a
+	ld [hl], a
+	ret
+
+.Function115c3d:
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+.asm_115c46
+	ld a, $2
+	ret
+
+; 115c49
+
+Function115c49: ; 115c49
+	ld a, e
+	ld [WeeklyFlags], a
+	ld a, d
+	ld [SwarmFlags], a
+	xor a
+	ld [de], a
+	inc de
+	ld [de], a
+	inc de
+
+	ld a, c
+	ld [$dc19], a
+	ld a, b
+	ld [$dc1a], a
+	ld c, e
+	ld b, d
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+
+.asm_115c64
+	ld a, [$dc1a]
+	or a
+	jr nz, .asm_115c71
+	ld a, [$dc19]
+	cp $4
+	jr c, .asm_115c99
+
+.asm_115c71
+	ld b, $4
+	push hl
+	ld hl, $dc1b
+.asm_115c77
+	ld a, [de]
+	inc de
+	call Function115cfd
+	ld [hli], a
+	dec b
+	jr nz, .asm_115c77
+	ld a, [$dc19]
+	ld c, a
+	ld a, [$dc1a]
+	ld b, a
+rept 4
+	dec bc
+endr
+.asm_115c8c
+	ld a, [de]
+	cp $d
+	jr z, .asm_115c95
+	cp $a
+	jr nz, .asm_115c9f
+
+.asm_115c95
+	inc de
+	dec bc
+	jr .asm_115c8c
+
+.asm_115c99
+	ld a, $ff
+	ld [wStartDay], a
+	ret
+
+.asm_115c9f
+	ld a, c
+	ld [$dc19], a
+	ld a, b
+	ld [$dc1a], a
+	push de
+	push hl
+	ld hl, WeeklyFlags
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	inc de
+	inc de
+	inc de
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	pop hl
+	dec hl
+	ld d, [hl]
+	dec hl
+	ld c, [hl]
+	dec hl
+	ld b, [hl]
+	dec hl
+	ld a, [hl]
+	sla b
+	sla b
+	sla b
+	rla
+	sla b
+	rla
+	ld [hli], a
+	ld [hl], b
+	inc hl
+	rrc c
+	rrc c
+	ld [hl], c
+	dec hl
+	ld a, $f
+	and c
+	or [hl]
+	ld [hli], a
+	ld a, [hli]
+	and $c0
+	or [hl]
+	dec hl
+	ld [hld], a
+	dec hl
+	pop de
+	ld b, h
+	ld c, l
+	pop hl
+	ld a, [bc]
+	ld [hli], a
+	inc bc
+	ld a, [bc]
+	ld [hli], a
+	inc bc
+	ld a, [bc]
+	ld [hli], a
+	ld a, [$dc19]
+	cp $0
+	jp nz, .asm_115c64
+	ld a, [$dc1a]
+	cp $0
+	jp nz, .asm_115c64
+	ret
+
+; 115cfd
+
+Function115cfd: ; 115cfd
+	cp $2b
+	jr c, .asm_115d27
+	jr z, .asm_115d2f
+	cp $2f
+	jr c, .asm_115d27
+	jr z, .asm_115d32
+	cp $30
+	jr c, .asm_115d27
+	cp $3a
+	jr c, .asm_115d35
+	cp $3d
+	jr c, .asm_115d27
+	jr z, .asm_115d38
+	cp $41
+	jr c, .asm_115d27
+	cp $5b
+	jr c, .asm_115d4d
+	cp $61
+	jr c, .asm_115d27
+	cp $7b
+	jr c, .asm_115d50
+
+.asm_115d27
+	pop hl
+	pop hl
+	ld a, $ff
+	ld [wStartDay], a
+	ret
+
+.asm_115d2f
+	ld a, $3e
+	ret
+
+.asm_115d32
+	ld a, $3f
+	ret
+
+.asm_115d35
+	add $4
+	ret
+
+.asm_115d38
+	push de
+	push hl
+	ld a, [WeeklyFlags]
+	ld l, a
+	ld a, [SwarmFlags]
+	ld h, a
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	dec de
+	ld [hl], d
+	dec hl
+	ld [hl], e
+	pop hl
+	pop de
+	xor a
+	ret
+
+.asm_115d4d
+	sub $41
+	ret
+
+.asm_115d50
+	sub $47
+	ret
+
+; 115d53
+
+Function115d53: ; 115d53
+.asm_115d53
+	ld a, [de]
+	ld [hli], a
+	inc e
+	call z, Function115d61
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_115d53
+	xor a
+	ld [hl], a
+	ret
+
+; 115d61
+
+Function115d61: ; 115d61
+	push bc
+	ld bc, $dc00
+	call Function115d80
+	pop bc
+	ret
+
+; 115d6a
+
+Function115d6a: ; 115d6a
+.asm_115d6a
+	ld a, [hli]
+	ld [de], a
+	inc e
+	call z, Function115d77
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_115d6a
+	xor a
+	ret
+
+; 115d77
+
+Function115d77: ; 115d77
+	push bc
+	ld bc, wCurrentMapSignpostCount
+	call Function115d80
+	pop bc
+	ret
+
+; 115d80
+
+Function115d80: ; 115d80
+	ld e, a
+	ld a, d
+	cp $bf
+	jr z, .asm_115d8b
+	inc d
+	ld a, e
+	ld e, $0
+	ret
+
+.asm_115d8b
+	ld a, [bc]
+	inc a
+	ld [bc], a
+	ld [hFF8C], a
+	ld [MBC3SRamBank], a
+	ld a, e
+	ld d, $a0
+	ld e, $0
+	ret
+
+; 115d99
+
+INCLUDE "mobile/mobile_45_sprite_engine.asm"
+
+; 116567
+
+Function116567: ; 116567
+	ld hl, wc3f7
+	dec [hl]
+	ret nz
+	ld hl, wc3f6
+	inc [hl]
+.asm_116570
+	ld a, $7
+	sla a
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_1167eb
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push de
+	pop hl
+	ld a, [wc3f6]
+	sla a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hli]
+	cp $fe
+	jr nz, .asm_116595
+	xor a
+	ld [wc3f6], a
+	jr .asm_116570
+
+.asm_116595
+	ld [wc3f5], a
+	ld a, [hl]
+	ld [wc3f7], a
+	ret
+
+; 11659d
+
+Function11659d: ; 11659d
+	ld a, [wc314]
+	cp $12
+	ret nc
+	ld e, a
+	ld d, 0
+	ld hl, Jumptable_1165af
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+; 1165af
+
+Jumptable_1165af: ; 1165af
+	dw Function11677e
+	dw Function1165d5
+	dw Function1165d8
+	dw Function1165e3
+	dw Function1165f5
+	dw Function116600
+	dw Function116615
+	dw Function116618
+	dw Function116623
+	dw Function116635
+	dw Function116640
+	dw Function116655
+	dw Function11665c
+	dw Function11668d
+	dw Function11669f
+	dw Function1166a2
+	dw Function1166c4
+	dw Function1166d6
+	dw Function1166d6
+; 1165d5
+
+Function1165d5: ; 1165d5
+	call Function11678e
+
+Function1165d8:
+	ld a, $0
+	ld c, a
+	ld a, $ff
+	ld b, a
+	ld a, $a8
+	call Function1166f4
+
+Function1165e3:
+	call Function116747
+	ld a, [wc30e]
+	cp $e8
+	ret nz
+	ld a, $1
+	call Function116780
+	ret c
+	jp Function116797
+
+; 1165f5
+
+Function1165f5: ; 1165f5
+	ld a, $1
+	ld c, a
+	ld a, $1
+	ld b, a
+	ld a, $e8
+	call Function1166f4
+
+Function116600:
+	call Function116747
+	ld a, [wc30e]
+	cp $a8
+	ret nz
+	ld a, $1
+	call Function116780
+	ret c
+	ld a, $2
+	ld [wc314], a
+	ret
+
+; 116615
+
+Function116615: ; 116615
+	call Function11678e
+
+Function116618:
+	ld a, $3
+	ld c, a
+	ld a, $1
+	ld b, a
+	ld a, $28
+	call Function11671f
+
+Function116623:
+	call Function116747
+	ld a, [wc30f]
+	cp $a0
+	ret nz
+	ld a, $6
+	call Function116780
+	ret c
+	jp Function116797
+
+; 116635
+
+Function116635: ; 116635
+	ld a, $2
+	ld c, a
+	ld a, $ff
+	ld b, a
+	ld a, $a0
+	call Function11671f
+
+Function116640:
+	call Function116747
+	ld a, [wc30f]
+	cp $28
+	ret nz
+	ld a, $6
+	call Function116780
+	ret c
+	ld a, $7
+	ld [wc314], a
+	ret
+
+; 116655
+
+Function116655: ; 116655
+	xor a
+	ld [wc314 + 3], a
+	call Function11678e
+
+Function11665c:
+	ld hl, wc314 + 3
+	ld a, $1
+	xor [hl]
+	ld [hl], a
+	add $4
+	ld c, a
+	call Function11679c
+	ld a, [wc314 + 3]
+	and a
+	jr nz, .asm_116673
+	ld a, $48
+	jr .asm_116675
+
+.asm_116673
+	ld a, $78
+
+.asm_116675
+	ld [wc30f], a
+	call Random
+	ld a, [hRandomAdd]
+	and $7
+	sla a
+	sla a
+	sla a
+	add $30
+	ld [wc30e], a
+	call Function116797
+
+Function11668d:
+	ld a, [wc311]
+	cp $ff
+	ret nz
+	ld a, $b
+	call Function116780
+	ret c
+	ld a, $c
+	ld [wc314], a
+	ret
+
+; 11669f
+
+Function11669f: ; 11669f
+	call Function11678e
+
+Function1166a2:
+	ld a, $a8
+	ld [wc30e], a
+	ld [wc3f1], a
+	ld a, $60
+	ld [wc30f], a
+	ld [wc3f3], a
+	ld a, $ff
+	ld [wc314 + 2], a
+	xor a
+	ld [wc314 + 3], a
+	ld a, $0
+	ld c, a
+	call Function11679c
+	call Function116797
+
+Function1166c4:
+	call Function116747
+	ld a, [wc30e]
+	cp $58
+	ret nz
+	ld a, $6
+	ld c, a
+	call Function11679c
+	call Function116797
+
+Function1166d6:
+	call Function116747
+	ld a, [wc30e]
+	cp $48
+	jr nz, .asm_1166e4
+	xor a
+	ld [wc314 + 2], a
+
+.asm_1166e4
+	ld a, [wc311]
+	cp $ff
+	ret nz
+	ld a, $4
+	ld [$c319], a
+	xor a
+	ld [wc314], a
+	ret
+
+; 1166f4
+
+Function1166f4: ; 1166f4
+	ld [wc30e], a
+	ld a, b
+	ld [wc314 + 2], a
+	xor a
+	ld [wc314 + 3], a
+	ld hl, wc30f
+.asm_116702
+	call Random
+	ld a, [hRandomAdd]
+	and $7
+	jr z, .asm_11670c
+	dec a
+
+.asm_11670c
+	sla a
+	sla a
+	sla a
+	add $48
+	cp [hl]
+	jr z, .asm_116702
+	ld [hl], a
+	call Function11679c
+	call Function116797
+	ret
+
+; 11671f
+
+Function11671f: ; 11671f
+	ld [wc30f], a
+	ld a, b
+	ld [wc314 + 3], a
+	xor a
+	ld [wc314 + 2], a
+	ld hl, wc30e
+.asm_11672d
+	call Random
+	ld a, [hRandomAdd]
+	and $7
+	sla a
+	sla a
+	sla a
+	add $30
+	cp [hl]
+	jr z, .asm_11672d
+	ld [hl], a
+	call Function11679c
+	call Function116797
+	ret
+
+; 116747
+
+Function116747: ; 116747
+	ld hl, wc30e
+	ld a, [wc314 + 2]
+	add [hl]
+	ld [hl], a
+	ld hl, wc30f
+	ld a, [wc314 + 3]
+	add [hl]
+	ld [hl], a
+	ret
+
+; 116758
+
+Function116758: ; 116758
+	ld a, [wc30f]
+	cp $30
+	jr c, .asm_116770
+	jr z, .asm_116770
+	cp $38
+	jr c, .asm_116774
+	jr z, .asm_116774
+	cp $40
+	jr c, .asm_116778
+	jr z, .asm_116778
+	xor a
+	jr .asm_11677a
+
+.asm_116770
+	ld a, $c
+	jr .asm_11677a
+
+.asm_116774
+	ld a, $8
+	jr .asm_11677a
+
+.asm_116778
+	ld a, $4
+
+.asm_11677a
+	ld [wc314 + 4], a
+	ret
+
+; 11677e
+
+Function11677e: ; 11677e
+	ld a, $0
+
+Function116780:
+	ld hl, wc314 + 1
+	cp [hl]
+	jr z, .asm_11678c
+	ld a, [hl]
+	ld [wc314], a
+	scf
+	ret
+
+.asm_11678c
+	and a
+	ret
+
+; 11678e
+
+Function11678e: ; 11678e
+	ld hl, wc314
+	ld a, [hl]
+	ld [wc314 + 1], a
+	inc [hl]
+	ret
+
+; 116797
+
+Function116797: ; 116797
+	ld hl, wc314
+	inc [hl]
+	ret
+
+; 11679c
+
+Function11679c:
+	ld a, c
+	ld [wc311], a
+	xor a
+	ld [wc312], a
+	jr asm_1167af
+
+Function1167a6: ; 1167a6
+	ld hl, wc313
+	dec [hl]
+	ret nz
+	ld hl, wc312
+	inc [hl]
+
+asm_1167af
+.asm_1167af
+	ld a, [wc311]
+	cp $ff
+	ret z
+	sla a
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_1167eb
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push de
+	pop hl
+	ld a, [wc312]
+	sla a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_1167dc
+	cp $fe
+	jr nz, .asm_1167e3
+	xor a
+	ld [wc312], a
+	jr .asm_1167af
+
+.asm_1167dc
+	ld a, $ff
+	ld [wc311], a
+	ld a, $fd
+
+.asm_1167e3
+	ld [wc310], a
+	ld a, [hl]
+	ld [wc313], a
+	ret
+
+; 1167eb
+
+Unknown_1167eb:
+	dw Unknown_1167fb
+	dw Unknown_116808
+	dw Unknown_116867
+	dw Unknown_116870
+	dw Unknown_116815
+	dw Unknown_11683e
+	dw Unknown_116881
+	dw Unknown_1168ae
+
+Unknown_1167fb: ; 1167fb
+	db $0, $6
+	db $1, $4
+	db $2, $4
+	db $3, $6
+	db $2, $4
+	db $1, $4
+	db $fe
+
+Unknown_116808: ; 116808
+	db $4, $6
+	db $5, $4
+	db $6, $4
+	db $7, $6
+	db $6, $4
+	db $5, $4
+	db $fe
+
+Unknown_116815: ; 116815
+	db $fd, $20
+	db $8, $c
+	db $9, $24
+	db $a, $4
+	db $b, $8
+	db $a, $4
+	db $9, $6
+	db $c, $4
+	db $d, $8
+	db $c, $5
+	db $9, $24
+	db $a, $4
+	db $b, $8
+	db $a, $4
+	db $9, $6
+	db $c, $4
+	db $d, $8
+	db $c, $5
+	db $9, $8
+	db $8, $4
+	db $ff
+
+Unknown_11683e: ; 11683e
+	db $fd, $20
+	db $e, $c
+	db $f, $24
+	db $10, $4
+	db $11, $8
+	db $10, $4
+	db $f, $6
+	db $12, $4
+	db $13, $8
+	db $12, $5
+	db $f, $24
+	db $10, $4
+	db $11, $8
+	db $10, $4
+	db $f, $6
+	db $12, $4
+	db $13, $8
+	db $12, $5
+	db $f, $8
+	db $e, $4
+	db $ff
+
+Unknown_116867: ; 116867
+	db $14, $8
+	db $15, $8
+	db $16, $8
+	db $15, $8
+	db $fe
+
+Unknown_116870: ; 116870
+	db $17, $5
+	db $18, $5
+	db $19, $5
+	db $1a, $5
+	db $1b, $5
+	db $1a, $5
+	db $19, $5
+	db $18, $5
+	db $fe
+
+Unknown_116881: ; 116881
+	db $1c, $7
+	db $1d, $7
+	db $1e, $a
+	db $1f, $a
+	db $20, $5
+	db $21, $5
+	db $20, $5
+	db $21, $5
+	db $20, $18
+	db $22, $4
+	db $23, $2
+	db $22, $2
+	db $23, $2
+	db $22, $1
+	db $23, $1
+	db $22, $1
+	db $23, $4
+	db $fd, $1
+	db $23, $1
+	db $fd, $2
+	db $23, $2
+	db $fd, $40
+	db $ff
+
+Unknown_1168ae: ; 1168ae
+	db $24, $4
+	db $25, $4
+	db $26, $4
+	db $27, $4
+	db $28, $4
+	db $29, $4
+	db $2a, $4
+	db $2b, $4
+	db $2c, $4
+	db $2d, $4
+	db $2e, $4
+	db $fe
+; 1168c5
+
+Unknown_1168c5:
+	dw Unknown_116923
+	dw Unknown_116960
+	dw Unknown_1169a1
+	dw Unknown_1169de
+	dw Unknown_116a1b
+	dw Unknown_116a58
+	dw Unknown_116a99
+	dw Unknown_116ad6
+	dw Unknown_116d1b
+	dw Unknown_116d4c
+	dw Unknown_116d85
+	dw Unknown_116dbe
+	dw Unknown_116df7
+	dw Unknown_116e30
+	dw Unknown_116e69
+	dw Unknown_116e9a
+	dw Unknown_116ed3
+	dw Unknown_116f0c
+	dw Unknown_116f45
+	dw Unknown_116f7e
+	dw Unknown_116b13
+	dw Unknown_116b54
+	dw Unknown_116b95
+	dw Unknown_116bd6
+	dw Unknown_116c17
+	dw Unknown_116c58
+	dw Unknown_116c99
+	dw Unknown_116cda
+	dw Unknown_116fb7
+	dw Unknown_116fec
+	dw Unknown_117025
+	dw Unknown_117056
+	dw Unknown_117083
+	dw Unknown_1170c0
+	dw Unknown_1170fd
+	dw Unknown_11713a
+	dw Unknown_117177
+	dw Unknown_11719c
+	dw Unknown_1171c1
+	dw Unknown_1171e6
+	dw Unknown_11720b
+	dw Unknown_117230
+	dw Unknown_117255
+	dw Unknown_11727a
+	dw Unknown_11729f
+	dw Unknown_1172c4
+	dw Unknown_1172e9
+
+Unknown_116923: ; 116923
+	db $f
+	db $0, $0, $1, $a
+	db $0, $8, $2, $d
+	db $0, $10, $3, $d
+	db $0, $18, $4, $d
+	db $8, $0, $11, $a
+	db $8, $8, $12, $a
+	db $8, $10, $13, $a
+	db $8, $18, $14, $d
+	db $10, $0, $21, $a
+	db $10, $8, $22, $a
+	db $10, $10, $23, $a
+	db $10, $18, $24, $a
+	db $18, $0, $31, $a
+	db $18, $8, $32, $a
+	db $18, $10, $33, $a
+
+Unknown_116960: ; 116960
+	db $10
+	db $1, $0, $1, $a
+	db $1, $8, $2, $d
+	db $1, $10, $3, $d
+	db $1, $18, $4, $d
+	db $9, $0, $11, $a
+	db $9, $8, $12, $a
+	db $9, $10, $13, $a
+	db $9, $18, $14, $d
+	db $11, $0, $5, $a
+	db $11, $8, $6, $a
+	db $11, $10, $7, $a
+	db $11, $18, $34, $a
+	db $19, $0, $15, $a
+	db $19, $8, $16, $a
+	db $19, $10, $17, $a
+	db $19, $18, $35, $a
+
+Unknown_1169a1: ; 1169a1
+	db $f
+	db $1, $0, $1, $a
+	db $1, $8, $2, $d
+	db $1, $10, $3, $d
+	db $1, $18, $4, $d
+	db $9, $0, $11, $a
+	db $9, $8, $12, $a
+	db $9, $10, $13, $a
+	db $9, $18, $14, $d
+	db $11, $0, $25, $a
+	db $11, $8, $26, $a
+	db $11, $10, $27, $a
+	db $11, $18, $34, $a
+	db $19, $8, $36, $a
+	db $19, $10, $37, $a
+	db $19, $18, $35, $a
+
+Unknown_1169de: ; 1169de
+	db $f
+	db $0, $0, $1, $a
+	db $0, $8, $2, $d
+	db $0, $10, $3, $d
+	db $0, $18, $4, $d
+	db $8, $0, $11, $a
+	db $8, $8, $12, $a
+	db $8, $10, $13, $a
+	db $8, $18, $14, $d
+	db $10, $0, $10, $a
+	db $10, $8, $20, $a
+	db $10, $10, $30, $a
+	db $10, $18, $24, $a
+	db $18, $0, $31, $a
+	db $18, $8, $32, $a
+	db $18, $10, $33, $a
+
+Unknown_116a1b: ; 116a1b
+	db $f
+	db $0, $0, $4, $2d
+	db $0, $8, $3, $2d
+	db $0, $10, $2, $2d
+	db $0, $18, $1, $2a
+	db $8, $0, $14, $2d
+	db $8, $8, $13, $2a
+	db $8, $10, $12, $2a
+	db $8, $18, $11, $2a
+	db $10, $0, $24, $2a
+	db $10, $8, $23, $2a
+	db $10, $10, $22, $2a
+	db $10, $18, $21, $2a
+	db $18, $8, $33, $2a
+	db $18, $10, $32, $2a
+	db $18, $18, $31, $2a
+
+Unknown_116a58: ; 116a58
+	db $10
+	db $1, $0, $4, $2d
+	db $1, $8, $3, $2d
+	db $1, $10, $2, $2d
+	db $1, $18, $1, $2a
+	db $9, $0, $14, $2d
+	db $9, $8, $13, $2a
+	db $9, $10, $12, $2a
+	db $9, $18, $11, $2a
+	db $11, $0, $34, $2a
+	db $11, $8, $7, $2a
+	db $11, $10, $6, $2a
+	db $11, $18, $5, $2a
+	db $19, $0, $35, $2a
+	db $19, $8, $17, $2a
+	db $19, $10, $16, $2a
+	db $19, $18, $15, $2a
+
+Unknown_116a99: ; 116a99
+	db $f
+	db $1, $0, $4, $2d
+	db $1, $8, $3, $2d
+	db $1, $10, $2, $2d
+	db $1, $18, $1, $2a
+	db $9, $0, $14, $2d
+	db $9, $8, $13, $2a
+	db $9, $10, $12, $2a
+	db $9, $18, $11, $2a
+	db $11, $0, $34, $2a
+	db $11, $8, $27, $2a
+	db $11, $10, $26, $2a
+	db $11, $18, $25, $2a
+	db $19, $0, $35, $2a
+	db $19, $8, $37, $2a
+	db $19, $10, $36, $2a
+
+Unknown_116ad6: ; 116ad6
+	db $f
+	db $0, $0, $4, $2d
+	db $0, $8, $3, $2d
+	db $0, $10, $2, $2d
+	db $0, $18, $1, $2a
+	db $8, $0, $14, $2d
+	db $8, $8, $13, $2a
+	db $8, $10, $12, $2a
+	db $8, $18, $11, $2a
+	db $10, $0, $24, $2a
+	db $10, $8, $30, $2a
+	db $10, $10, $20, $2a
+	db $10, $18, $10, $2a
+	db $18, $8, $33, $2a
+	db $18, $10, $32, $2a
+	db $18, $18, $31, $2a
+
+Unknown_116b13: ; 116b13
+	db $10
+	db $18, $0, $0, $b
+	db $18, $8, $8, $b
+	db $18, $10, $5c, $b
+	db $18, $18, $0, $b
+	db $10, $0, $0, $b
+	db $10, $8, $5d, $b
+	db $10, $10, $5e, $b
+	db $10, $18, $0, $b
+	db $8, $0, $50, $b
+	db $8, $8, $51, $b
+	db $8, $10, $52, $b
+	db $8, $18, $50, $2b
+	db $0, $0, $43, $b
+	db $0, $8, $44, $b
+	db $0, $10, $44, $2b
+	db $0, $18, $43, $2b
+
+Unknown_116b54: ; 116b54
+	db $10
+	db $19, $0, $0, $b
+	db $19, $8, $18, $b
+	db $19, $10, $c, $b
+	db $19, $18, $0, $b
+	db $11, $0, $42, $b
+	db $11, $8, $3a, $b
+	db $11, $10, $3a, $2b
+	db $11, $18, $42, $2b
+	db $9, $0, $58, $b
+	db $9, $8, $45, $b
+	db $9, $10, $45, $2b
+	db $9, $18, $58, $2b
+	db $1, $0, $d, $b
+	db $1, $8, $44, $b
+	db $1, $10, $44, $2b
+	db $1, $18, $d, $2b
+
+Unknown_116b95: ; 116b95
+	db $10
+	db $18, $0, $0, $b
+	db $18, $8, $5c, $2b
+	db $18, $10, $8, $2b
+	db $18, $18, $0, $b
+	db $10, $0, $0, $b
+	db $10, $8, $5e, $2b
+	db $10, $10, $5d, $2b
+	db $10, $18, $0, $b
+	db $8, $0, $50, $b
+	db $8, $8, $52, $2b
+	db $8, $10, $51, $2b
+	db $8, $18, $50, $2b
+	db $0, $0, $43, $b
+	db $0, $8, $44, $b
+	db $0, $10, $44, $2b
+	db $0, $18, $43, $2b
+
+Unknown_116bd6: ; 116bd6
+	db $10
+	db $18, $0, $0, $a
+	db $18, $8, $56, $a
+	db $18, $10, $57, $a
+	db $18, $18, $0, $a
+	db $10, $0, $64, $a
+	db $10, $8, $4a, $a
+	db $10, $10, $4b, $a
+	db $10, $18, $71, $a
+	db $8, $0, $54, $a
+	db $8, $8, $55, $a
+	db $8, $10, $55, $2a
+	db $8, $18, $54, $2a
+	db $0, $0, $48, $a
+	db $0, $8, $49, $a
+	db $0, $10, $49, $2a
+	db $0, $18, $48, $2a
+
+Unknown_116c17: ; 116c17
+	db $10
+	db $19, $0, $0, $a
+	db $19, $8, $76, $a
+	db $19, $10, $77, $a
+	db $19, $18, $0, $a
+	db $11, $0, $64, $a
+	db $11, $8, $69, $a
+	db $11, $10, $6a, $a
+	db $11, $18, $6b, $a
+	db $9, $0, $6f, $a
+	db $9, $8, $70, $a
+	db $9, $10, $70, $2a
+	db $9, $18, $6f, $2a
+	db $1, $0, $63, $a
+	db $1, $8, $19, $a
+	db $1, $10, $19, $2a
+	db $1, $18, $63, $2a
+
+Unknown_116c58: ; 116c58
+	db $10
+	db $1a, $0, $6c, $a
+	db $1a, $8, $6d, $a
+	db $1a, $10, $6e, $a
+	db $1a, $18, $0, $a
+	db $12, $0, $5f, $a
+	db $12, $8, $60, $a
+	db $12, $10, $61, $a
+	db $12, $18, $62, $a
+	db $a, $0, $53, $a
+	db $a, $8, $55, $a
+	db $a, $10, $55, $2a
+	db $a, $18, $53, $2a
+	db $2, $0, $46, $a
+	db $2, $8, $47, $a
+	db $2, $10, $47, $2a
+	db $2, $18, $46, $2a
+
+Unknown_116c99: ; 116c99
+	db $10
+	db $19, $0, $0, $2a
+	db $19, $8, $77, $2a
+	db $19, $10, $76, $2a
+	db $19, $18, $0, $2a
+	db $11, $0, $6b, $2a
+	db $11, $8, $6a, $2a
+	db $11, $10, $69, $2a
+	db $11, $18, $64, $2a
+	db $9, $0, $6f, $a
+	db $9, $8, $70, $a
+	db $9, $10, $70, $2a
+	db $9, $18, $6f, $2a
+	db $1, $0, $63, $a
+	db $1, $8, $19, $a
+	db $1, $10, $19, $2a
+	db $1, $18, $63, $2a
+
+Unknown_116cda: ; 116cda
+	db $10
+	db $18, $0, $0, $a
+	db $18, $8, $57, $2a
+	db $18, $10, $56, $2a
+	db $18, $18, $0, $a
+	db $10, $0, $71, $2a
+	db $10, $8, $4b, $2a
+	db $10, $10, $4a, $2a
+	db $10, $18, $64, $2a
+	db $8, $0, $54, $a
+	db $8, $8, $55, $a
+	db $8, $10, $55, $2a
+	db $8, $18, $54, $2a
+	db $0, $0, $48, $a
+	db $0, $8, $49, $a
+	db $0, $10, $49, $2a
+	db $0, $18, $48, $2a
+
+Unknown_116d1b: ; 116d1b
+	db $c
+	db $0, $0, $38, $4a
+	db $0, $8, $39, $4a
+	db $0, $10, $39, $6a
+	db $0, $18, $38, $6a
+	db $8, $0, $28, $4a
+	db $8, $8, $29, $4a
+	db $8, $10, $29, $6a
+	db $8, $18, $28, $6a
+	db $10, $0, $9, $4d
+	db $10, $8, $19, $4a
+	db $10, $10, $19, $6a
+	db $10, $18, $9, $6d
+
+Unknown_116d4c: ; 116d4c
+	db $e
+	db $0, $8, $3b, $4a
+	db $0, $10, $3b, $6a
+	db $8, $0, $2a, $4a
+	db $8, $8, $2b, $4a
+	db $8, $10, $2b, $6a
+	db $8, $18, $2a, $6a
+	db $10, $0, $1a, $4a
+	db $10, $8, $1b, $4a
+	db $10, $10, $1b, $6a
+	db $10, $18, $1a, $6a
+	db $18, $0, $a, $4a
+	db $18, $8, $b, $4a
+	db $18, $10, $b, $6a
+	db $18, $18, $a, $6a
+
+Unknown_116d85: ; 116d85
+	db $e
+	db $0, $0, $35, $2a
+	db $0, $8, $3c, $4a
+	db $0, $10, $3d, $4a
+	db $0, $18, $3e, $4a
+	db $8, $0, $2c, $4a
+	db $8, $8, $2d, $4a
+	db $8, $10, $2e, $4a
+	db $8, $18, $2f, $4a
+	db $10, $0, $1c, $4a
+	db $10, $8, $1d, $4a
+	db $10, $10, $1e, $4d
+	db $10, $18, $1f, $4d
+	db $18, $10, $e, $4d
+	db $18, $18, $f, $4a
+
+Unknown_116dbe: ; 116dbe
+	db $e
+	db $0, $0, $65, $4a
+	db $0, $8, $66, $4a
+	db $0, $10, $67, $4a
+	db $0, $18, $68, $4a
+	db $8, $8, $59, $4a
+	db $8, $10, $5a, $4a
+	db $8, $18, $5b, $4a
+	db $10, $0, $4c, $4a
+	db $10, $8, $4d, $4d
+	db $10, $10, $4e, $4d
+	db $10, $18, $4f, $4a
+	db $18, $0, $3f, $4d
+	db $18, $8, $40, $4d
+	db $18, $10, $41, $4d
+
+Unknown_116df7: ; 116df7
+	db $e
+	db $0, $0, $3e, $6a
+	db $0, $8, $3d, $6a
+	db $0, $10, $3c, $6a
+	db $0, $18, $35, $a
+	db $8, $0, $2f, $6a
+	db $8, $8, $2e, $6a
+	db $8, $10, $2d, $6a
+	db $8, $18, $2c, $6a
+	db $10, $0, $1f, $6d
+	db $10, $8, $1e, $6d
+	db $10, $10, $1d, $6a
+	db $10, $18, $1c, $6a
+	db $18, $0, $f, $6a
+	db $18, $8, $e, $6d
+
+Unknown_116e30: ; 116e30
+	db $e
+	db $0, $0, $68, $6a
+	db $0, $8, $67, $6a
+	db $0, $10, $66, $6a
+	db $0, $18, $65, $6a
+	db $8, $0, $5b, $6a
+	db $8, $8, $5a, $6a
+	db $8, $10, $59, $6a
+	db $10, $0, $4f, $6a
+	db $10, $8, $4e, $6d
+	db $10, $10, $4d, $6d
+	db $10, $18, $4c, $6a
+	db $18, $8, $41, $6d
+	db $18, $10, $40, $6d
+	db $18, $18, $3f, $6d
+
+Unknown_116e69: ; 116e69
+	db $c
+	db $8, $0, $9, $d
+	db $8, $8, $19, $a
+	db $8, $10, $19, $2a
+	db $8, $18, $9, $2d
+	db $10, $0, $28, $a
+	db $10, $8, $29, $a
+	db $10, $10, $29, $2a
+	db $10, $18, $28, $2a
+	db $18, $0, $38, $a
+	db $18, $8, $39, $a
+	db $18, $10, $39, $2a
+	db $18, $18, $38, $2a
+
+Unknown_116e9a: ; 116e9a
+	db $e
+	db $0, $0, $a, $a
+	db $0, $8, $b, $a
+	db $0, $10, $b, $2a
+	db $0, $18, $a, $2a
+	db $8, $0, $1a, $a
+	db $8, $8, $1b, $a
+	db $8, $10, $1b, $2a
+	db $8, $18, $1a, $2a
+	db $10, $0, $2a, $a
+	db $10, $8, $2b, $a
+	db $10, $10, $2b, $2a
+	db $10, $18, $2a, $2a
+	db $18, $8, $3b, $a
+	db $18, $10, $3b, $2a
+
+Unknown_116ed3: ; 116ed3
+	db $e
+	db $0, $10, $e, $d
+	db $0, $18, $f, $a
+	db $8, $0, $1c, $a
+	db $8, $8, $1d, $a
+	db $8, $10, $1e, $d
+	db $8, $18, $1f, $d
+	db $10, $0, $2c, $a
+	db $10, $8, $2d, $a
+	db $10, $10, $2e, $a
+	db $10, $18, $2f, $a
+	db $18, $0, $35, $6a
+	db $18, $8, $3c, $a
+	db $18, $10, $3d, $a
+	db $18, $18, $3e, $a
+
+Unknown_116f0c: ; 116f0c
+	db $e
+	db $0, $0, $3f, $d
+	db $0, $8, $40, $d
+	db $0, $10, $41, $d
+	db $8, $0, $4c, $a
+	db $8, $8, $4d, $d
+	db $8, $10, $4e, $d
+	db $8, $18, $4f, $a
+	db $10, $8, $59, $a
+	db $10, $10, $5a, $a
+	db $10, $18, $5b, $a
+	db $18, $0, $65, $a
+	db $18, $8, $66, $a
+	db $18, $10, $67, $a
+	db $18, $18, $68, $a
+
+Unknown_116f45: ; 116f45
+	db $e
+	db $0, $0, $f, $2a
+	db $0, $8, $e, $2d
+	db $8, $0, $1f, $2d
+	db $8, $8, $1e, $2d
+	db $8, $10, $1d, $2a
+	db $8, $18, $1c, $2a
+	db $10, $0, $2f, $2a
+	db $10, $8, $2e, $2a
+	db $10, $10, $2d, $2a
+	db $10, $18, $2c, $2a
+	db $18, $0, $3e, $2a
+	db $18, $8, $3d, $2a
+	db $18, $10, $3c, $2a
+	db $18, $18, $35, $4a
+
+Unknown_116f7e: ; 116f7e
+	db $e
+	db $0, $8, $41, $2d
+	db $0, $10, $40, $2d
+	db $0, $18, $3f, $2d
+	db $8, $0, $4f, $2a
+	db $8, $8, $4e, $2d
+	db $8, $10, $4d, $2d
+	db $8, $18, $4c, $2a
+	db $10, $0, $5b, $2a
+	db $10, $8, $5a, $2a
+	db $10, $10, $59, $2a
+	db $18, $0, $68, $2a
+	db $18, $8, $67, $2a
+	db $18, $10, $66, $2a
+	db $18, $18, $65, $2a
+
+Unknown_116fb7: ; 116fb7
+	db $d
+	db $fa, $0, $72, $a
+	db $fa, $8, $73, $d
+	db $fa, $10, $74, $d
+	db $fa, $18, $75, $d
+	db $2, $0, $81, $a
+	db $2, $8, $82, $a
+	db $2, $10, $83, $a
+	db $2, $18, $84, $a
+	db $a, $0, $91, $a
+	db $a, $8, $92, $a
+	db $a, $10, $93, $a
+	db $a, $18, $94, $a
+	db $12, $10, $a3, $a
+
+Unknown_116fec: ; 116fec
+	db $e
+	db $fd, $0, $85, $d
+	db $fd, $8, $86, $d
+	db $5, $0, $95, $d
+	db $5, $8, $96, $a
+	db $5, $10, $97, $a
+	db $5, $18, $98, $a
+	db $d, $0, $a5, $a
+	db $d, $8, $a6, $a
+	db $d, $10, $a7, $a
+	db $d, $18, $a8, $a
+	db $15, $0, $b3, $a
+	db $15, $8, $b4, $a
+	db $15, $10, $b5, $a
+	db $15, $18, $b6, $a
+
+Unknown_117025: ; 117025
+	db $c
+	db $8, $0, $79, $d
+	db $8, $8, $7a, $d
+	db $8, $10, $7b, $a
+	db $8, $18, $7c, $a
+	db $10, $0, $89, $d
+	db $10, $8, $8a, $a
+	db $10, $10, $8b, $a
+	db $10, $18, $8c, $a
+	db $18, $0, $99, $a
+	db $18, $8, $9a, $a
+	db $18, $10, $9b, $a
+	db $18, $18, $9c, $a
+
+Unknown_117056: ; 117056
+	db $b
+	db $8, $0, $7d, $a
+	db $8, $8, $7e, $d
+	db $8, $10, $7f, $d
+	db $8, $18, $80, $a
+	db $10, $0, $8d, $a
+	db $10, $8, $8e, $a
+	db $10, $10, $8f, $a
+	db $10, $18, $90, $a
+	db $18, $8, $9e, $a
+	db $18, $10, $9f, $a
+	db $18, $18, $a0, $a
+
+Unknown_117083: ; 117083
+	db $f
+	db $0, $0, $a1, $a
+	db $0, $8, $a2, $a
+	db $0, $10, $a2, $2a
+	db $0, $18, $a1, $2a
+	db $8, $0, $b1, $a
+	db $8, $8, $b2, $d
+	db $8, $10, $b2, $2d
+	db $8, $18, $b1, $2a
+	db $10, $0, $ab, $a
+	db $10, $8, $ac, $a
+	db $10, $10, $ac, $2a
+	db $10, $18, $ab, $2a
+	db $18, $8, $a4, $a
+	db $18, $10, $87, $a
+	db $18, $18, $88, $a
+
+Unknown_1170c0: ; 1170c0
+	db $f
+	db $0, $0, $a1, $a
+	db $0, $8, $a2, $d
+	db $0, $10, $a2, $2a
+	db $0, $18, $a1, $2a
+	db $8, $0, $b1, $a
+	db $8, $8, $78, $d
+	db $8, $10, $78, $2d
+	db $8, $18, $b1, $2a
+	db $10, $0, $ab, $a
+	db $10, $8, $ac, $a
+	db $10, $10, $ac, $2a
+	db $10, $18, $ab, $2a
+	db $18, $8, $a4, $a
+	db $18, $10, $87, $a
+	db $18, $18, $88, $a
+
+Unknown_1170fd: ; 1170fd
+	db $f
+	db $0, $0, $a9, $a
+	db $0, $8, $aa, $a
+	db $0, $10, $aa, $2a
+	db $0, $18, $a9, $2a
+	db $8, $0, $b7, $a
+	db $8, $8, $b8, $a
+	db $8, $10, $b8, $2a
+	db $8, $18, $b7, $2a
+	db $10, $0, $ab, $a
+	db $10, $8, $ac, $a
+	db $10, $10, $ac, $2a
+	db $10, $18, $ad, $a
+	db $18, $8, $a4, $a
+	db $18, $10, $ba, $a
+	db $18, $18, $bb, $a
+
+Unknown_11713a: ; 11713a
+	db $f
+	db $0, $0, $ae, $c
+	db $0, $8, $af, $c
+	db $0, $10, $af, $2c
+	db $0, $18, $ae, $2c
+	db $8, $0, $bc, $c
+	db $8, $8, $bd, $c
+	db $8, $10, $bd, $2c
+	db $8, $18, $bc, $2c
+	db $10, $0, $bf, $c
+	db $10, $8, $9d, $c
+	db $10, $10, $9d, $2c
+	db $10, $18, $b0, $c
+	db $18, $8, $b9, $c
+	db $18, $10, $c0, $c
+	db $18, $18, $be, $c
+
+Unknown_117177: ; 117177
+	db $9
+	db $14, $0, $1f, $6
+	db $14, $8, $20, $6
+	db $14, $10, $21, $6
+	db $c, $0, $10, $6
+	db $c, $8, $11, $6
+	db $c, $10, $12, $6
+	db $4, $0, $1, $6
+	db $4, $8, $2, $6
+	db $4, $10, $3, $6
+
+Unknown_11719c: ; 11719c
+	db $9
+	db $14, $0, $22, $6
+	db $14, $8, $23, $6
+	db $14, $10, $24, $6
+	db $c, $0, $13, $6
+	db $c, $8, $14, $6
+	db $c, $10, $15, $6
+	db $4, $0, $4, $6
+	db $4, $8, $5, $6
+	db $4, $10, $6, $6
+
+Unknown_1171c1: ; 1171c1
+	db $9
+	db $14, $0, $25, $6
+	db $14, $8, $26, $6
+	db $14, $10, $27, $6
+	db $c, $0, $16, $6
+	db $c, $8, $17, $6
+	db $c, $10, $18, $6
+	db $4, $0, $7, $6
+	db $4, $8, $8, $6
+	db $4, $10, $9, $6
+
+Unknown_1171e6: ; 1171e6
+	db $9
+	db $14, $0, $28, $6
+	db $14, $8, $29, $6
+	db $14, $10, $2a, $6
+	db $c, $0, $19, $6
+	db $c, $8, $1a, $6
+	db $c, $10, $1b, $6
+	db $4, $0, $a, $6
+	db $4, $8, $b, $6
+	db $4, $10, $c, $6
+
+Unknown_11720b: ; 11720b
+	db $9
+	db $14, $0, $2b, $6
+	db $14, $8, $2c, $6
+	db $14, $10, $2d, $6
+	db $c, $0, $1c, $6
+	db $c, $8, $1d, $6
+	db $c, $10, $1e, $6
+	db $4, $0, $d, $6
+	db $4, $8, $e, $6
+	db $4, $10, $f, $6
+
+Unknown_117230: ; 117230
+	db $9
+	db $14, $0, $47, $6
+	db $14, $8, $48, $6
+	db $14, $10, $49, $6
+	db $c, $0, $3b, $6
+	db $c, $8, $3c, $6
+	db $c, $10, $3b, $26
+	db $4, $0, $2e, $6
+	db $4, $8, $2f, $6
+	db $4, $10, $30, $6
+
+Unknown_117255: ; 117255
+	db $9
+	db $14, $0, $35, $6
+	db $14, $8, $4a, $6
+	db $14, $10, $35, $6
+	db $c, $0, $3d, $6
+	db $c, $8, $35, $6
+	db $c, $10, $3d, $26
+	db $4, $0, $31, $6
+	db $4, $8, $32, $6
+	db $4, $10, $31, $26
+
+Unknown_11727a: ; 11727a
+	db $9
+	db $14, $0, $4b, $6
+	db $14, $8, $4c, $6
+	db $14, $10, $4d, $6
+	db $c, $0, $3e, $6
+	db $c, $8, $3f, $6
+	db $c, $10, $40, $6
+	db $4, $0, $33, $6
+	db $4, $8, $34, $6
+	db $4, $10, $35, $6
+
+Unknown_11729f: ; 11729f
+	db $9
+	db $14, $0, $4e, $6
+	db $14, $8, $4f, $6
+	db $14, $10, $50, $6
+	db $c, $0, $41, $6
+	db $c, $8, $42, $6
+	db $c, $10, $43, $6
+	db $4, $0, $35, $6
+	db $4, $8, $36, $6
+	db $4, $10, $37, $6
+
+Unknown_1172c4: ; 1172c4
+	db $9
+	db $14, $0, $51, $6
+	db $14, $8, $52, $6
+	db $14, $10, $35, $6
+	db $c, $0, $44, $6
+	db $c, $8, $45, $6
+	db $c, $10, $46, $6
+	db $4, $0, $38, $6
+	db $4, $8, $39, $6
+	db $4, $10, $3a, $6
+
+Unknown_1172e9: ; 1172e9
+	db $9
+	db $10, $0, $0, $2
+	db $10, $8, $0, $2
+	db $10, $10, $0, $2
+	db $8, $0, $0, $2
+	db $8, $8, $0, $2
+	db $c, $10, $1f, $6
+	db $0, $0, $0, $2
+	db $0, $8, $0, $2
+	db $4, $10, $10, $6
+; 11730e
+
+Palette_11730e:
+	RGB 31, 31, 31
+	RGB  7,  5,  4
+	RGB 31, 28,  4
+	RGB 31,  5,  5
+	RGB 31, 31, 31
+	RGB  7,  5,  4
+	RGB 31, 23,  0
+	RGB 31, 28,  4
+	RGB 31, 31, 31
+	RGB 16, 19, 31
+	RGB 17, 31, 31
+	RGB 31, 31, 31
+	RGB  5,  5,  5
+	RGB  7,  5,  4
+	RGB 31, 28,  4
+	RGB 19, 11,  6
+	RGB 31, 31, 31
+	RGB  3, 15, 31
+	RGB  4, 25, 25
+	RGB  0,  7, 12
+	RGB 31, 31, 31
+	RGB  0, 16,  0
+	RGB  0, 16,  0
+	RGB  0, 16,  0
+	RGB  4, 11, 22
+	RGB  0, 16,  0
+	RGB  0, 16,  0
+	RGB  0, 16,  0
+	RGB 22, 11,  8
+	RGB  0, 16,  0
+	RGB  0, 16,  0
+	RGB  0, 16,  0
+
+Palette_11734e:
+	RGB 31, 30, 30
+	RGB  2,  0,  0
+	RGB 10,  9,  9
+	RGB 15, 14, 14
+
+Unknown_117356: ; 117356
+	db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
+	db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c5, $c6, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+	db $c2, $c2, $c6, $c5, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $d8, $c2, $c2, $d8, $c2, $c2, $c2
+	db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c7, $c8, $ca, $cb, $cc, $cd, $ce, $c2, $cf, $d0, $d1, $d2, $d3, $c2, $d4, $d5
+	db $d6, $d7, $c8, $c7, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+	db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
+	db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+
+	db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
+	db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $8f, $0f, $0f, $8f, $0f, $0f, $0f
+	db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f
+	db $8f, $8f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+	db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
+	db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+; 117656
+
+
+SECTION "Mobile Stadium", ROMX
+
+Special_GiveOddEgg: ; 117656
+	callba GiveOddEgg
+	ret
+
+; 11765d
+
+Function11765d: ; 11765d (45:765d)
+	ld a, [hInMenu]
+	push af
+	ld a, $1
+	ld [hInMenu], a
+	call Function11766b
+	pop af
+	ld [hInMenu], a
+	ret
+
+Function11766b: ; 11766b (45:766b)
+	call Function117699
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	call Function1176ee
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $b1f3
+	ld de, wcd49
+	ld bc, $8
+	call CopyBytes
+	ld de, $c708
+	ld bc, $11
+	call CopyBytes
+	call CloseSRAM
+	pop af
+	ld [rSVBK], a
+	ret
+
+Function117699: ; 117699 (45:7699)
+	ld a, $5
+	call GetSRAMBank
+	ld hl, wcd49
+	ld de, $b1f3
+	ld bc, $8
+	call CopyBytes
+	ld hl, $c708
+	ld bc, $11
+	call CopyBytes
+	call CloseSRAM
+	xor a
+	ld [wcd49], a
+	ld [wcd4a], a
+	ld [wcd4b], a
+	ld [wcd4c], a
+	ld [wcd4d], a
+	ld [wcd4e], a
+	ld [wcd4f], a
+	ld hl, $c708
+	ld bc, $11
+	call ByteFill
+	call ClearBGPalettes
+	call ClearSprites
+	callba Function171c87
+	callba ReloadMapPart
+	callba ClearSpriteAnims
+	ret
+
+Function1176ee: ; 1176ee (45:76ee)
+.loop
+	call JoyTextDelay
+	ld a, [wcd49]
+	bit 7, a
+	jr nz, .quit
+	call Function117719
+	callba PlaySpriteAnimations
+	callba ReloadMapPart
+	jr .loop
+
+.quit
+	callba ClearSpriteAnims
+	call ClearBGPalettes
+	call ClearScreen
+	call ClearSprites
+	ret
+
+Function117719: ; 117719 (45:7719)
+	ld a, [wcd49]
+	ld e, a
+	ld d, 0
+	ld hl, Jumptable_117728
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+Jumptable_117728: ; 117728 (45:7728)
+	dw Function117738
+	dw Function117764
+	dw Function1178aa
+	dw Function1178e8
+	dw Function117942
+	dw Function117976
+	dw Function117984
+	dw Function1179a7
+
+
+Function117738: ; 117738 (45:7738)
+	callba Function171ccd
+	depixel 6, 3
+	ld a, $1d
+	call _InitSpriteAnimStruct
+	ld hl, $c
+	add hl, bc
+	ld a, $6
+	ld [hl], a
+	depixel 9, 4
+	ld a, $1d
+	call _InitSpriteAnimStruct
+	ld hl, $c
+	add hl, bc
+	ld a, $7
+	ld [hl], a
+	ld a, $3
+	ld [wcd23], a
+	jp MobilePassword_IncrementJumptable
+
+Function117764: ; 117764 (45:7764)
+	ld a, [wcd4a]
+	cp $10
+	jr nz, .asm_11776f
+	ld a, $1
+	jr .asm_117770
+
+.asm_11776f
+	xor a
+.asm_117770
+	ld [wcd24], a
+	ld hl, hJoyPressed ; $ffa7
+	ld a, [hl]
+	and SELECT
+	jr nz, Function117764_select
+	ld a, [hl]
+	and START
+	jr nz, Function117764_start
+	ld a, [hl]
+	and A_BUTTON
+	jp nz, Function117764_a_button
+	ld a, [hl]
+	and B_BUTTON
+	jr nz, Function117764_b_button
+	ld hl, hJoyLast
+	ld a, [hl]
+	and D_UP
+	jr nz, Function117764_d_up
+	ld a, [hl]
+	and D_DOWN
+	jr nz, Function117764_d_down
+	ld a, [hl]
+	and D_LEFT
+	jp nz, Function117764_d_left
+	ld a, [hl]
+	and D_RIGHT
+	jp nz, Function117764_d_right
+	ret
+
+Function117764_select: ; 1177a5 (45:77a5)
+	callba Function171cf0
+	ret
+
+Function117764_start: ; 1177ac (45:77ac)
+	ld a, $2
+	ld [wcd4c], a
+	ld a, $4
+	ld [wcd4d], a
+	ret
+
+Function1177b7: ; 1177b7 (45:77b7)
+	ld a, $3
+	ld [wcd24], a
+	ld a, [wcd4a]
+	and a
+	jr z, .asm_1177c5
+	jp MobilePassword_IncrementJumptable
+
+.asm_1177c5
+	ld a, $6
+	ld [wcd49], a
+	ret
+
+Function1177cb: ; 1177cb (45:77cb)
+	ld a, $80
+	ld [wcd49], a
+	ld [ScriptVar], a
+	jp MobilePassword_IncrementJumptable
+
+Function117764_b_button: ; 1177d6 (45:77d6)
+	call PlayClickSFX
+	ld a, [wcd4a]
+	and a
+	ret z
+	dec a
+	ld [wcd4a], a
+	ld e, a
+	ld d, $0
+	ld hl, $c708
+	add hl, de
+	xor a
+	ld [hl], a
+	hlcoord 2, 4
+	add hl, de
+	ld [hl], a
+	ret
+
+Function117764_d_up: ; 1177f1 (45:77f1)
+	ld a, [wcd4d]
+	and a
+	ret z
+	dec a
+	ld [wcd4d], a
+	cp $3
+	ret nz
+	ld a, [wcd4c]
+	ld e, a
+	sla a
+	sla a
+	add e
+Function117764_d_vertical_load: ; 117806 (45:7806)
+	ld [wcd4c], a
+	ret
+
+Function117764_d_down: ; 11780a (45:780a)
+	ld a, [wcd4d]
+	cp $4
+	ret z
+	inc a
+	ld [wcd4d], a
+	cp $4
+	ret nz
+	ld a, [wcd4c]
+	cp $a
+	jr nc, .asm_117825
+	cp $5
+	jr nc, .asm_117829
+	xor a
+	jr Function117764_d_vertical_load
+
+.asm_117825
+	ld a, $2
+	jr Function117764_d_vertical_load
+
+.asm_117829
+	ld a, $1
+	jr Function117764_d_vertical_load
+
+Function117764_d_left: ; 11782d (45:782d)
+	ld a, [wcd4c]
+	and a
+	ret z
+	dec a
+	ld [wcd4c], a
+	ret
+
+Function117764_d_right: ; 117837 (45:7837)
+	ld e, $d
+	ld a, [wcd4d]
+	cp $4
+	jr nz, .wrap
+	ld e, $2
+.wrap
+	ld a, [wcd4c]
+	cp e
+	ret z
+	inc a
+	ld [wcd4c], a
+	ret
+
+Function117764_a_button: ; 11784c (45:784c)
+	call PlayClickSFX
+	ld a, [wcd4d]
+	cp $4
+	jr nz, .not_4
+	ld a, [wcd4c]
+	cp $2
+	jp z, Function1177b7
+	cp $1
+	jp z, Function1177cb
+	jp Function117764_select
+
+.not_4
+	ld a, [wcd4a]
+	ld e, a
+	cp $10
+	jp z, Function117764_start
+	inc a
+	ld [wcd4a], a
+	ld d, $0
+	ld a, [wcd4b]
+	and a
+	jr nz, .ascii_symbols
+	ld hl, Unknown_117a0f
+	jr .got_ascii
+
+.ascii_symbols
+	ld hl, Unknown_117a47
+.got_ascii
+	push de
+	ld a, [wcd4c]
+	ld b, a
+	ld a, [wcd4d]
+	ld c, $e
+	call SimpleMultiply
+	add b
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hl]
+	ld hl, $c708
+	add hl, de
+	ld [hl], a
+	pop de
+	hlcoord 2, 4
+	add hl, de
+	sub $20
+	ld [hl], a
+	ld a, e
+	cp $f
+	ret nz
+	jp Function117764_start
+
+Function1178aa: ; 1178aa (45:78aa)
+	ld hl, MenuDataHeader_1179b5
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	ld hl, MenuDataHeader_1179bd
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	callba ReloadMapPart
+	hlcoord 16, 8
+	ld de, YessNoString_1179c5
+	call PlaceString
+	hlcoord 15, 10
+	ld a, "▶"
+	ld [hl], a
+	hlcoord 1, 14
+	ld de, AskSavePasswordString
+	call PlaceString
+	ld a, $1
+	ld [wcd4e], a
+	jp MobilePassword_IncrementJumptable
+
+Function1178e8: ; 1178e8 (45:78e8)
+	ld a, [hJoyPressed]
+	cp B_BUTTON
+	jr z, .b_button
+	cp A_BUTTON
+	jr z, .a_button
+	cp D_DOWN
+	jr z, .d_down
+	cp D_UP
+	ret nz
+	ld a, [wcd4e]
+	and a
+	ret z
+	dec a
+	ld [wcd4e], a
+	hlcoord 15, 8
+	ld a, "▶"
+	ld [hl], a
+	hlcoord 15, 10
+	ld a, " "
+	ld [hl], a
+	ret
+
+.d_down
+	ld a, [wcd4e]
+	and a
+	ret nz
+	inc a
+	ld [wcd4e], a
+	hlcoord 15, 8
+	ld a, " "
+	ld [hl], a
+	hlcoord 15, 10
+	ld a, "▶"
+	ld [hl], a
+	ret
+
+.a_button
+	call PlayClickSFX
+	ld a, [wcd4e]
+	and a
+	jr nz, .b_button
+	call ExitMenu
+	ld a, $1
+	ld [wcd4f], a
+	jp MobilePassword_IncrementJumptable
+
+.b_button
+	call ExitMenu
+	call ExitMenu
+	jp MobilePassword_IncrementJumptable
+
+Function117942: ; 117942 (45:7942)
+	call SpeechTextBox
+	hlcoord 1, 14
+	ld de, SavedPasswordString
+	call PlaceString
+	ld a, $1e
+	ld [wcd4e], a
+	ld a, BANK(sMobileLoginPassword)
+	call GetSRAMBank
+	ld a, [wcd4f]
+	ld [sMobileLoginPassword], a
+	ld hl, $c708
+	ld de, sMobileLoginPassword + 1
+	ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
+	call CopyBytes
+	call CloseSRAM
+	ld a, [wcd4f]
+	and a
+	jr z, asm_11797e
+	call MobilePassword_IncrementJumptable
+
+Function117976: ; 117976 (45:7976)
+	ld hl, wcd4e
+	dec [hl]
+	ret nz
+	call ExitMenu
+asm_11797e: ; 11797e (45:797e)
+	ld a, $80
+	ld [wcd49], a
+	ret
+
+Function117984: ; 117984 (45:7984)
+	ld hl, MenuDataHeader_1179b5
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	callba ReloadMapPart
+	hlcoord 1, 14
+	ld de, NotAPokemonPasswordString
+	call PlaceString
+	ld a, $1e
+	ld [wcd4e], a
+	call MobilePassword_IncrementJumptable
+
+Function1179a7: ; 1179a7 (45:79a7)
+	ld hl, wcd4e
+	dec [hl]
+	ret nz
+	call ExitMenu
+	ld a, $1
+	ld [wcd49], a
+	ret
+
+; 1179b5 (45:79b5)
+
+MenuDataHeader_1179b5: ; 1179b5
+	db $40 ; flags
+	db 12,  0 ; start coords
+	db 17, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 1179bd
+
+MenuDataHeader_1179bd: ; 1179bd
+	db $40 ; flags
+	db  7, 14 ; start coords
+	db 11, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 1179c5
+
+
+YessNoString_1179c5: ; 1179c5
+	db   "はい"
+	next "いいえ@"
+; 1179cc
+
+AskSavePasswordString: ; 1179cc
+	db   "こ%パスワード¯ほぞんして"
+	line "おきますか?@"
+; 1179e1
+
+NotAPokemonPasswordString: ; 1179e1
+	db   "パスワード<PKMN>にゅうりょく"
+	line "されていません!@"
+; 1179f7
+
+SavedPasswordString: ; 1179f7
+	db   "ログインパスワード¯ほぞん"
+	line "しました@"
+; 117a0a
+
+MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a)
+	ld hl, wcd49
+	inc [hl]
+	ret
+
+; 117a0f (45:7a0f)
+
+Unknown_117a0f:
+INCBIN "data/mobile/ascii-alpha.txt"
+
+Unknown_117a47:
+INCBIN "data/mobile/ascii-sym.txt"
+; 117a7f
+
+
+; everything from here to the end of the bank is related to the
+; Mobile Stadium option from the continue/newgame menu.
+; XXX better function names
+MobileStudium: ; 0x117a7f
+	ld a, [hInMenu]
+	push af
+	ld a, $1
+	ld [hInMenu], a
+	call Function117a8d
+	pop af
+	ld [hInMenu], a
+	ret
+
+; 0x117a8d
+
+Function117a8d: ; 0x117a8d
+	call Function117a94
+	call Function117acd
+	ret
+
+; 0x117a94
+
+Function117a94: ; 0x117a94
+	xor a
+	ld [wJumptableIndex], a
+	ld [wcf64], a
+	ld [wcf65], a
+	ld [wcf66], a
+	call ClearBGPalettes
+	call ClearSprites
+	callba Function172e78
+	callba HDMATransferAttrMapAndTileMapToWRAMBank3
+	ret
+
+; 0x117ab4
+
+Function117ab4: ; 0x117ab4
+	call ClearBGPalettes
+	call ClearSprites
+	callba Function172e78
+	callba Function172eb9
+	callba ReloadMapPart
+	ret
+
+; 0x117acd
+
+Function117acd: ; 0x117acd
+	call JoyTextDelay
+	ld a, [wJumptableIndex]
+	bit 7, a
+	jr nz, .asm_117ae2
+	call Function117ae9
+	callba HDMATransferAttrMapAndTileMapToWRAMBank3
+	jr Function117acd
+
+.asm_117ae2
+	call ClearBGPalettes
+	call ClearSprites
+	ret
+
+Function117ae9: ; 0x117ae9
+	ld a, [wJumptableIndex]
+	ld e, a
+	ld d, $0
+	ld hl, .Jumptable
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+.Jumptable: ; 0x117af8
+	dw Function117b06
+	dw Function117b14
+	dw Function117b28
+	dw Function117b31
+	dw Function117b4f
+	dw Function117bb6
+	dw Function117c4a
+
+Function117b06:
+	callba Function172eb9
+	ld a, $10
+	ld [wcf64], a
+	jp MobileStudium_JumptableIncrement
+
+Function117b14:
+	ld hl, wcf64
+	dec [hl]
+	ret nz
+	ld hl, MenuDataHeader_117cbc
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	jp MobileStudium_JumptableIncrement
+
+Function117b28:
+	ld hl, MobileStadiumEntryText
+	call PrintText
+	jp MobileStudium_JumptableIncrement
+
+Function117b31:
+	ld hl, MenuDataHeader_117cc4
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	hlcoord 16, 8
+	ld de, YesNo117ccc
+	call PlaceString
+	hlcoord 15, 8
+	ld a, "▶"
+	ld [hl], a
+	jp MobileStudium_JumptableIncrement
+
+Function117b4f:
+	ld a, [hJoyPressed]
+	cp B_BUTTON
+	jr z, .b_button
+	cp A_BUTTON
+	jr z, .a_button
+	cp D_DOWN
+	jr z, .d_down
+	cp D_UP
+	ret nz
+	ld a, [wcf64]
+	and a
+	ret z
+	dec a
+	ld [wcf64], a
+	hlcoord 15, 8
+	ld a, "▶"
+	ld [hl], a
+	hlcoord 15, 10
+	ld a, " "
+	ld [hl], a
+	ret
+
+.d_down
+	ld a, [wcf64]
+	and a
+	ret nz
+	inc a
+	ld [wcf64], a
+	hlcoord 15, 8
+	ld a, " "
+	ld [hl], a
+	hlcoord 15, 10
+	ld a, "▶"
+	ld [hl], a
+	ret
+
+.a_button
+	call PlayClickSFX
+	ld a, [wcf64]
+	and a
+	jr nz, .b_button
+	call ExitMenu
+	call ExitMenu
+	callba ReloadMapPart
+	jp MobileStudium_JumptableIncrement
+
+.b_button
+	call ExitMenu
+	call ExitMenu
+	callba ReloadMapPart
+	ld a, $80
+	ld [wJumptableIndex], a
+	ret
+
+Function117bb6:
+	call Function117c89
+	ld a, $1
+	ld [hBGMapMode], a
+	callba Function118284
+	call ClearSprites
+	ld a, [wc300]
+	and a
+	jr z, .asm_117be7
+	cp $a
+	jr z, .asm_117be1
+.asm_117bd0
+	ld a, $2
+	ld [wc303], a
+	callba DisplayMobileError
+	ld a, $80
+	ld [wJumptableIndex], a
+	ret
+
+.asm_117be1
+	ld a, $80
+	ld [wJumptableIndex], a
+	ret
+
+.asm_117be7
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+	ld a, [wcd89]
+	and $1
+	jr nz, .asm_117c16
+	ld a, [w3_d000]
+	cp $fe
+	jr nz, .asm_117c16
+	ld a, [w3_d001]
+	cp $f
+	jr nz, .asm_117c16
+	ld hl, w3_dfec
+	ld de, wcd69
+	ld c, $10
+.asm_117c0b
+	ld a, [de]
+	inc de
+	cp [hl]
+	jr nz, .asm_117c16
+	inc hl
+	dec c
+	jr nz, .asm_117c0b
+	jr .asm_117c20
+
+.asm_117c16
+	pop af
+	ld [rSVBK], a
+	ld a, $d3
+	ld [wc300], a
+	jr .asm_117bd0
+
+.asm_117c20
+	pop af
+	ld [rSVBK], a
+	callba Function172eb9
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+	ld a, $7
+	call GetSRAMBank
+	ld hl, w3_d002
+	ld de, $b000
+	ld bc, $1000
+	call CopyBytes
+	call CloseSRAM
+	pop af
+	ld [rSVBK], a
+	jp MobileStudium_JumptableIncrement
+
+Function117c4a:
+	ld hl, MenuDataHeader_117cbc
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	callba ReloadMapPart
+	ld hl, MobileStadiumSuccessText
+	call PrintText
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, UnknBGPals
+	ld de, 1 palettes
+	ld c, 8
+.loop
+	push hl
+	ld a, $7fff % $100
+	ld [hli], a
+	ld a, $7fff / $100
+	ld [hl], a
+	pop hl
+	add hl, de
+	dec c
+	jr nz, .loop
+	call RotateThreePalettesRight
+	pop af
+	ld [rSVBK], a
+	ld a, $80
+	ld [wJumptableIndex], a
+	ret
+
+Function117c89:
+	ld a, $7
+	call GetSRAMBank
+	ld l, $0
+	ld h, l
+	ld de, $b000
+	ld bc, $0ffc
+.asm_117c97
+	push bc
+	ld a, [de]
+	inc de
+	ld c, a
+	ld b, $0
+	add hl, bc
+	pop bc
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_117c97
+	ld a, l
+	ld [wcd83], a
+	ld a, h
+	ld [wcd84], a
+	ld hl, $bfea
+	ld de, wcd69
+	ld bc, $10
+	call CopyBytes
+	call CloseSRAM
+	ret
+
+MenuDataHeader_117cbc: ; 0x117cbc
+	db $40    ; flags
+	db 12,  0 ; start coords
+	db 17, 19 ; end coords
+	dw NULL   ; menu data 2
+	db 0      ; default option
+
+MenuDataHeader_117cc4: ; 0x117cc4
+	db $40    ; flags
+	db  7, 14 ; start coords
+	db 11, 19 ; end coords
+	dw NULL   ; menu data 2
+	db 0      ; default item
+
+YesNo117ccc: ; 0x117ccc
+	db   "はい"
+	next "いいえ@"
+
+MobileStadiumEntryText: ; 0x117cd3
+	text_jump _MobileStadiumEntryText
+	db "@"
+
+MobileStadiumSuccessText: ; 0x117cd8
+	text_jump _MobileStadiumSuccessText
+	db "@"
+
+MobileStudium_JumptableIncrement: ; 0x117cdd
+	ld hl, wJumptableIndex
+	inc [hl]
+	ret
--- /dev/null
+++ b/mobile/mobile_45_sprite_engine.asm
@@ -1,0 +1,922 @@
+Function115d99: ; 115d99
+	ld de, GFX_11601a
+	ld hl, VTiles0 tile $60
+	lb bc, BANK(GFX_11601a), $14
+	call Get2bpp
+	xor a
+	ld [wc305], a
+	ld [wc306], a
+	ld [wc309], a
+	ld [wc30a], a
+	ld [wc30b], a
+	ld [wc30c], a
+	ld a, $10
+	ld [wc307], a
+	ld a, $18
+	ld [wc308], a
+	ret
+
+; 115dc3
+
+Function115dc3: ; 115dc3
+	xor a
+	ld [wc305], a
+	ld a, $a0
+	ld hl, Sprites + 31 * 4
+	ld bc, 8 * 4
+	call ByteFill
+	ret
+
+; 115dd3
+
+Function115dd3: ; 115dd3
+	ld a, [wc305]
+	and a
+	ret z
+	ld a, $a0
+	ld hl, Sprites + 31 * 4
+	ld bc, 8 * 4
+	call ByteFill
+	call Function115e22
+	ld a, [wc309]
+	sla a
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_115e86
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	push de
+	pop hl
+	ld de, Sprites + 31 * 4
+	ld a, [wc307]
+	ld c, a
+	ld a, [wc308]
+	ld b, a
+	ld a, [hli]
+.asm_115e04
+	push af
+	ld a, [hli]
+	add b
+	ld [de], a
+	inc de
+	ld a, [hli]
+	add c
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	pop af
+	dec a
+	jr nz, .asm_115e04
+	ret
+
+; 115e18
+
+Function115e18: ; 115e18
+	ld a, c
+	ld [wc30a], a
+	xor a
+	ld [wc30b], a
+	jr Function115e2b
+
+; 115e22
+
+Function115e22: ; 115e22
+	ld hl, wc30c
+	dec [hl]
+	ret nz
+	ld hl, wc30b
+	inc [hl]
+
+Function115e2b: ; 115e2b
+	ld a, [wc30a]
+	sla a
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_115e59
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push de
+	pop hl
+	ld a, [wc30b]
+	sla a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [hli]
+	cp $ff
+	jr nz, .not_end
+	xor a
+	ld [wc30b], a
+	jr Function115e2b
+
+.not_end
+	ld [wc309], a
+	ld a, [hl]
+	ld [wc30c], a
+	ret
+
+; 115e59
+
+Unknown_115e59:
+	dw Unknown_115e61
+	dw Unknown_115e6c
+	dw Unknown_115e76
+	dw Unknown_115e79
+
+; OAM idx (see Unknown_115e86), flip flags/duration
+Unknown_115e61: ; 115e61
+	db $04, $08
+	db $05, $08
+	db $06, $08
+	db $07, $08
+	db $08, $08
+	db -1
+
+Unknown_115e6c: ; 115e6c
+	db $01, $08
+	db $02, $08
+	db $03, $08
+	db $09, $08
+	db $0a, $08
+Unknown_115e76: ; 115e76
+	db $00, $08
+	db -1
+
+Unknown_115e79: ; 115e79
+	db $0b, $08
+	db $0c, $08
+	db $0d, $08
+	db $0e, $08
+	db $0f, $08
+	db $00, $08
+	db -1
+; 115e86
+
+Unknown_115e86:
+	dw Unknown_115ea6
+	dw Unknown_115eb7
+	dw Unknown_115ecc
+	dw Unknown_115ee1
+	dw Unknown_115ef6
+	dw Unknown_115f13
+	dw Unknown_115f30
+	dw Unknown_115f4d
+	dw Unknown_115f6a
+	dw Unknown_115f87
+	dw Unknown_115f9c
+	dw Unknown_115fb1
+	dw Unknown_115fc6
+	dw Unknown_115fdb
+	dw Unknown_115ff0
+	dw Unknown_116005
+
+Unknown_115ea6: ; 115ea6
+	db 4
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115eb7: ; 115eb7
+	db 5
+	dsprite   0, 0,   1, 0, $64, $00
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115ecc: ; 115ecc
+	db 5
+	dsprite   0, 0,   1, 0, $65, $00
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115ee1: ; 115ee1
+	db 5
+	dsprite   0, 0,   1, 0, $66, $00
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115ef6: ; 115ef6
+	db 7
+	dsprite   0, 0,   0, 0, $67, $01
+	dsprite   1, 0,   0, 0, $68, $01
+	dsprite   2, 0,   0, 0, $6d, $00
+	dsprite   2, 0,   1, 0, $69, $00
+	dsprite   2, 0,   2, 0, $6a, $00
+	dsprite   3, 0,   1, 0, $6b, $00
+	dsprite   3, 0,   2, 0, $6c, $00
+
+Unknown_115f13: ; 115f13
+	db 7
+	dsprite   0, 0,   0, 0, $67, $01
+	dsprite   1, 0,   0, 0, $68, $01
+	dsprite   2, 0,   0, 0, $6e, $00
+	dsprite   2, 0,   1, 0, $69, $00
+	dsprite   2, 0,   2, 0, $6a, $00
+	dsprite   3, 0,   1, 0, $6b, $00
+	dsprite   3, 0,   2, 0, $6c, $00
+
+Unknown_115f30: ; 115f30
+	db 7
+	dsprite   0, 0,   0, 0, $67, $01
+	dsprite   1, 0,   0, 0, $68, $01
+	dsprite   2, 0,   0, 0, $6f, $00
+	dsprite   2, 0,   1, 0, $69, $00
+	dsprite   2, 0,   2, 0, $6a, $00
+	dsprite   3, 0,   1, 0, $6b, $00
+	dsprite   3, 0,   2, 0, $6c, $00
+
+Unknown_115f4d: ; 115f4d
+	db 7
+	dsprite   0, 0,   0, 0, $67, $01
+	dsprite   1, 0,   0, 0, $68, $01
+	dsprite   2, 0,   0, 0, $70, $00
+	dsprite   2, 0,   1, 0, $69, $00
+	dsprite   2, 0,   2, 0, $6a, $00
+	dsprite   3, 0,   1, 0, $6b, $00
+	dsprite   3, 0,   2, 0, $6c, $00
+
+Unknown_115f6a: ; 115f6a
+	db 7
+	dsprite   0, 0,   0, 0, $67, $01
+	dsprite   1, 0,   0, 0, $68, $01
+	dsprite   2, 0,   0, 0, $71, $00
+	dsprite   2, 0,   1, 0, $69, $00
+	dsprite   2, 0,   2, 0, $6a, $00
+	dsprite   3, 0,   1, 0, $6b, $00
+	dsprite   3, 0,   2, 0, $6c, $00
+
+Unknown_115f87: ; 115f87
+	db 5
+	dsprite   0, 0,   1, 0, $72, $00
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115f9c: ; 115f9c
+	db 5
+	dsprite   0, 0,   1, 0, $73, $00
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115fb1: ; 115fb1
+	db 5
+	dsprite   0, 1,   1, 0, $64, $60
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115fc6: ; 115fc6
+	db 5
+	dsprite   0, 1,   1, 0, $65, $60
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115fdb: ; 115fdb
+	db 5
+	dsprite   0, 1,   1, 0, $66, $60
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_115ff0: ; 115ff0
+	db 5
+	dsprite   0, 1,   1, 0, $72, $60
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+
+Unknown_116005: ; 116005
+	db 5
+	dsprite   0, 1,   1, 0, $73, $60
+	dsprite   1, 0,   0, 0, $60, $01
+	dsprite   1, 0,   1, 0, $61, $01
+	dsprite   2, 0,   0, 0, $62, $01
+	dsprite   2, 0,   1, 0, $63, $01
+; 11601a
+
+GFX_11601a:: ; 11601a
+INCBIN "gfx/unknown/11601a.2bpp"
+
+
+Function11615a: ; 11615a
+	xor a
+	ld [wc30d], a
+	ld [$c319], a
+	ld [wc310], a
+	ld [wc311], a
+	ld [wc312], a
+	ld [wc313], a
+	ld [wc314], a
+	ld [wc314 + 1], a
+	ld [wc314 + 4], a
+	ld [wc3f6], a
+	ld [wc3f8], a
+	ld [wc3f2], a
+	ld [wc3f4], a
+	ld a, $24
+	ld [wc3f5], a
+	ld a, $7
+	ld [wc3f7], a
+	ld a, $b0
+	ld [wc30e], a
+	ld [wc3f1], a
+	ld a, $48
+	ld [wc30f], a
+	ld [wc3f3], a
+	ret
+
+; 11619d
+
+Function11619d: ; 11619d
+	ld a, [wc30d]
+	and a
+	ret z
+	ld a, [$c319]
+	cp $2
+	jr c, .asm_1161b4
+	ld a, $a0
+	ld hl, Sprites
+	ld bc, $0064
+	call ByteFill
+
+.asm_1161b4
+	call Function1161b8
+	ret
+
+; 1161b8
+
+Function1161b8: ; 1161b8
+	ld a, [$c319]
+	ld e, a
+	ld d, 0
+	ld hl, .Jumptable
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+; 1161c7
+
+.Jumptable: ; 1161c7
+	dw Function1161d5
+	dw Function116294
+	dw Function1162cb
+	dw Function1162f2
+	dw Function1163c0
+	dw Function11636e
+	dw Function116441
+; 1161d5
+
+Function1161d5: ; 1161d5
+	ld a, [rSVBK]
+	push af
+
+	ld a, $6
+	ld [rSVBK], a
+
+	ld hl, Unknown_117356
+	ld de, wDecompressScratch
+	ld bc, $0300
+	call CopyBytes
+
+	di
+
+.wait_for_vblank
+; Wait until a vblank would occur had interrupts not just been disabled.
+	ld a, [rLY]
+	cp $91
+	jr nz, .wait_for_vblank
+
+	ld a, $d0
+	ld [rHDMA1], a
+	ld a, $0
+	ld [rHDMA2], a
+	ld a, $1c
+	ld [rHDMA3], a
+	xor a
+	ld [rHDMA4], a
+	ld a, $8
+	ld [rHDMA5], a
+
+	ld a, $d0
+	ld [rHDMA1], a
+	ld a, $80
+	ld [rHDMA2], a
+	ld a, $1c
+	ld [rHDMA3], a
+	ld a, $80
+	ld [rHDMA4], a
+	ld a, $8
+	ld [rHDMA5], a
+
+	ld a, $d1
+	ld [rHDMA1], a
+	ld a, $0
+	ld [rHDMA2], a
+	ld a, $1d
+	ld [rHDMA3], a
+	xor a
+	ld [rHDMA4], a
+	ld a, $8
+	ld [rHDMA5], a
+
+	ld a, $1
+	ld [rVBK], a
+
+	ld a, $d1
+	ld [rHDMA1], a
+	ld a, $80
+	ld [rHDMA2], a
+	ld a, $1c
+	ld [rHDMA3], a
+	xor a
+	ld [rHDMA4], a
+	ld a, $8
+	ld [rHDMA5], a
+
+	ld a, $d2
+	ld [rHDMA1], a
+	ld a, $0
+	ld [rHDMA2], a
+	ld a, $1c
+	ld [rHDMA3], a
+	ld a, $80
+	ld [rHDMA4], a
+	ld a, $8
+	ld [rHDMA5], a
+
+	ld a, $d2
+	ld [rHDMA1], a
+	ld a, $80
+	ld [rHDMA2], a
+	ld a, $1d
+	ld [rHDMA3], a
+	xor a
+	ld [rHDMA4], a
+	ld a, $8
+	ld [rHDMA5], a
+
+	xor a
+	ld [rVBK], a
+
+	ei
+
+	pop af
+	ld [rSVBK], a
+
+	callba ReloadMapPart
+	ld a, $8
+	ld [MusicFade], a
+	ld de, MUSIC_MOBILE_ADAPTER
+	ld a, e
+	ld [MusicFadeID], a
+	ld a, d
+	ld [MusicFadeID + 1], a
+	ld a, [$c319]
+	inc a
+	ld [$c319], a
+	ret
+
+; 11628c
+
+MenuDataHeader_11628c: ; 11628c
+	db $40 ; flags
+	db  6,  0 ; start coords
+	db 17, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 116294
+
+Function116294: ; 116294
+	callba Function170d02
+	ld a, [$c319]
+	inc a
+	ld [$c319], a
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, UnknBGPals + 8 * 6
+	ld de, $c320
+	ld bc, 2 palettes
+	call CopyBytes
+	ld hl, Palette_11734e
+	ld de, UnknBGPals + 8 * 7
+	ld bc, 1 palettes
+	call CopyBytes
+	call SetPalettes
+	pop af
+	ld [rSVBK], a
+	ld a, $30
+	ld [hWY], a
+	ret
+
+; 1162cb
+
+Function1162cb: ; 1162cb
+	callba Function170cc6
+	ld a, [$c319]
+	inc a
+	ld [$c319], a
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_11730e
+	ld de, UnknOBPals + 2 palettes
+	ld bc, 6 palettes
+	call CopyBytes
+	call SetPalettes
+	pop af
+	ld [rSVBK], a
+	ret
+
+; 1162f2
+
+Function1162f2: ; 1162f2
+	call Function11659d
+	call Function116758
+	call Function1167a6
+	ld a, [wc310]
+	cp EGG
+	ret z
+	sla a
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_1168c5
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	push de
+	pop hl
+	ld a, [wc30e]
+	ld c, a
+	ld a, [wc30f]
+	ld b, a
+	ld a, [wc314 + 4]
+	ld e, a
+	ld a, [hli]
+	sub e
+	ld de, Sprites + $24
+.asm_116321
+	push af
+	ld a, [hli]
+	add b
+	ld [de], a
+	inc de
+	ld a, [hli]
+	add c
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	pop af
+	dec a
+	jr nz, .asm_116321
+	call Function116468
+	ld a, [wc3f5]
+	sla a
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_1168c5
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	push de
+	pop hl
+	ld a, [wc3f1]
+	ld c, a
+	ld a, [wc3f3]
+	ld b, a
+	ld a, [wc3f8]
+	ld e, a
+	ld a, [hli]
+	sub e
+	ld de, Sprites
+.asm_11635a
+	push af
+	ld a, [hli]
+	add b
+	ld [de], a
+	inc de
+	ld a, [hli]
+	add c
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	pop af
+	dec a
+	jr nz, .asm_11635a
+	ret
+
+; 11636e
+
+Function11636e: ; 11636e
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, BGPals
+	ld de, UnknBGPals
+	ld bc, $0040
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	call SetPalettes
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, $a0
+	ld hl, Sprites
+	ld bc, 16 * 4
+	call ByteFill
+	ld a, $90
+	ld [hWY], a
+	call UpdateSprites
+	pop af
+	ld [rSVBK], a
+	callba ReloadMapPart
+	ld a, $8
+	ld [MusicFade], a
+	ld a, [wMapMusic]
+	ld [MusicFadeID], a
+	xor a
+	ld [MusicFadeID + 1], a
+	xor a
+	ld [$c319], a
+	ld [wc30d], a
+	ret
+
+; 1163c0
+
+Function1163c0: ; 1163c0
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, $a0
+	ld hl, Sprites
+	ld bc, 16 * 4
+	call ByteFill
+	call DelayFrame
+	callba Function14146
+	ld b, SCGB_MAPPALS
+	call GetSGBLayout
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, $c320
+	ld de, wd030
+	ld bc, $0010
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	call SetPalettes
+	call DelayFrame
+	ld a, $90
+	ld [hWY], a
+	call UpdateSprites
+	callba Function14157
+	pop af
+	ld [rSVBK], a
+	callba ReloadMapPart
+	ld a, [wLinkMode]
+	cp $4
+	jr z, .asm_11642a
+	ld a, $8
+	ld [MusicFade], a
+	ld a, [wMapMusic]
+	ld [MusicFadeID], a
+	xor a
+	ld [MusicFadeID + 1], a
+	jr .asm_116439
+
+.asm_11642a
+	ld a, $8
+	ld [MusicFade], a
+	ld a, $0
+	ld [MusicFadeID], a
+	ld a, $0
+	ld [MusicFadeID + 1], a
+
+.asm_116439
+	xor a
+	ld [$c319], a
+	ld [wc30d], a
+	ret
+
+; 116441
+
+Function116441: ; 116441
+	callba Function17d405
+	ld a, $90
+	ld [hWY], a
+	callba ReloadMapPart
+	ld a, $8
+	ld [MusicFade], a
+	ld a, [wMapMusic]
+	ld [MusicFadeID], a
+	xor a
+	ld [MusicFadeID + 1], a
+	xor a
+	ld [$c319], a
+	ld [wc30d], a
+	ret
+
+; 116468
+
+Function116468: ; 116468
+	call Function116567
+	ld a, [wc314]
+	cp $d
+	jr nz, .asm_1164a8
+	ld hl, wc30e
+	ld a, [hl]
+	cp $50
+	jr nc, .asm_116484
+	ld a, $50
+	sub [hl]
+	add $50
+	ld [wc3f1], a
+	jr .asm_11648d
+
+.asm_116484
+	sub $50
+	ld c, a
+	ld a, $50
+	sub c
+	ld [wc3f1], a
+
+.asm_11648d
+	ld hl, wc30f
+	ld a, [hl]
+	cp $60
+	jr nc, .asm_11649e
+	ld a, $60
+	sub [hl]
+	add $60
+	ld [wc3f3], a
+	ret
+
+.asm_11649e
+	sub $60
+	ld c, a
+	ld a, $60
+	sub c
+	ld [wc3f3], a
+	ret
+
+.asm_1164a8
+	ld hl, wc30e
+	ld a, $b0
+	cp [hl]
+	jr nc, .asm_1164b8
+	ld a, [wc3f1]
+	and a
+	jr z, .asm_11650b
+	jr .asm_1164f2
+
+.asm_1164b8
+	ld a, [wc3f1]
+	sub [hl]
+	jr nc, .asm_1164c1
+	xor $ff
+	inc a
+
+.asm_1164c1
+	ld b, a
+	ld c, $0
+	ld a, $5
+.asm_1164c6
+	srl b
+	rr c
+	dec a
+	jr nz, .asm_1164c6
+	ld a, c
+	ld [wc3fa], a
+	ld a, b
+	ld [wc3f9], a
+	ld a, [wc3f1]
+	sub [hl]
+	jr c, .asm_1164f2
+	ld c, $0
+	ld a, [wc3fa]
+	xor $ff
+	add $1
+	rl c
+	ld [wc3fa], a
+	ld a, [wc3f9]
+	xor $ff
+	add c
+	ld [wc3f9], a
+
+.asm_1164f2
+	ld a, [wc3f2]
+	ld l, a
+	ld a, [wc3f1]
+	ld h, a
+	ld a, [wc3fa]
+	ld e, a
+	ld a, [wc3f9]
+	ld d, a
+	add hl, de
+	ld a, l
+	ld [wc3f2], a
+	ld a, h
+	ld [wc3f1], a
+
+.asm_11650b
+	ld hl, wc30f
+	ld a, $b0
+	cp [hl]
+	jr c, .asm_11654d
+	ld a, [wc3f3]
+	sub [hl]
+	jr nc, .asm_11651c
+	xor $ff
+	inc a
+
+.asm_11651c
+	ld b, a
+	ld c, $0
+	ld a, $5
+.asm_116521
+	srl b
+	rr c
+	dec a
+	jr nz, .asm_116521
+	ld a, c
+	ld [wc3fc], a
+	ld a, b
+	ld [wc3fb], a
+	ld a, [wc3f3]
+	sub [hl]
+	jr c, .asm_11654d
+	ld c, $0
+	ld a, [wc3fc]
+	xor $ff
+	add $1
+	rl c
+	ld [wc3fc], a
+	ld a, [wc3fb]
+	xor $ff
+	add c
+	ld [wc3fb], a
+
+.asm_11654d
+	ld a, [wc3f4]
+	ld l, a
+	ld a, [wc3f3]
+	ld h, a
+	ld a, [wc3fc]
+	ld e, a
+	ld a, [wc3fb]
+	ld d, a
+	add hl, de
+	ld a, l
+	ld [wc3f4], a
+	ld a, h
+	ld [wc3f3], a
+	ret
--- /dev/null
+++ b/mobile/mobile_46.asm
@@ -1,0 +1,7986 @@
+SECTION "bank46", ROMX
+
+Function118000: ; 118000
+	ld a, $1
+	ld [wcd38], a
+	jr asm_11800b
+
+Function118007: ; 118007
+	xor a
+	ld [wcd38], a
+
+asm_11800b
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $18
+	ld [wcd33], a
+	ld a, $19
+	ld [wcd34], a
+	ld a, $4
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.loop
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $1b
+	jr c, .skip
+	ld a, [wcd34]
+	ld [wcf66], a
+
+.skip
+	call Function1184a5
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .loop
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	call ReturnToMapFromSubmenu
+BattleTowerRoomMenu_DoNothing: ; 11805e (46:405e)
+	ret
+; 11805f
+
+Function11805f: ; 11805f
+	ld a, $1
+	ld [wcd38], a
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $18
+	ld [wcd33], a
+	ld a, $19
+	ld [wcd34], a
+	ld a, $4
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.asm_11807d
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $1b
+	jr c, .asm_118090
+	ld a, [wcd34]
+	ld [wcf66], a
+
+.asm_118090
+	call Function11857c
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .asm_11807d
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	call ReturnToMapFromSubmenu
+	ret
+; 1180b8
+
+Function1180b8: ; 1180b8
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $22
+	ld [wcd33], a
+	ld a, $23
+	ld [wcd34], a
+	ld a, $4
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.asm_1180d1
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $28
+	jr c, .asm_1180e4
+	ld a, [wcd34]
+	ld [wcf66], a
+
+.asm_1180e4
+	ld a, [wcf66]
+	cp $10
+	jr c, .asm_1180f2
+	cp $16
+	jr nc, .asm_1180f2
+	call Function11884c
+
+.asm_1180f2
+	call Function1184ec
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .asm_1180d1
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	call ReturnToMapFromSubmenu
+	ret
+; 11811a
+
+Function11811a: ; 11811a
+	ld a, 1
+	ld [wcd38], a
+	jr Function118125
+
+_BattleTowerRoomMenu: ; 118121
+	xor a
+	ld [wcd38], a
+Function118125: ; 118125
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $3
+	ld [wcd33], a
+	ld a, $d
+	ld [wcd34], a
+	ld a, $4
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.loop
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $f
+	jr c, .skip
+	ld a, [wcd34]
+	ld [wcf66], a
+.skip
+	call BattleTowerRoomMenu_Jumptable
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .loop
+	xor a
+	ld [w3_d000], a
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	call Function118180
+	call ReturnToMapFromSubmenu
+	ret
+; 118180
+
+Function118180: ; 118180
+	ld a, [ScriptVar]
+	and a
+	ret nz
+	ld a, [wcd38]
+	and a
+	ret z
+	ld a, $5
+	call GetSRAMBank
+	ld hl, wcd69
+	ld de, $a89c
+	ld bc, $0016
+	call CopyBytes
+
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+
+	ld de, w3_d202
+	ld c, $96
+	callba CheckStringForErrors_IgnoreTerminator
+	jr c, .return_d3
+
+	ld de, w3_d202
+	lb bc, 1, $96
+	callba CheckStringContainsLessThanBNextCharacters
+	jr c, .return_d3
+
+	ld hl, w3_d202
+	ld de, $a8b2
+	ld bc, $0096
+	call CopyBytes
+.reset_banks
+	pop af
+	ld [rSVBK], a
+	call CloseSRAM
+	ret
+
+.return_d3
+	ld a, $d3
+	ld [wc300], a
+	ld [ScriptVar], a
+	jr .reset_banks
+; 1181da
+
+Function1181da: ; 1181da
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $2
+	ld [wcd38], a
+	ld a, $21
+	ld [wcd33], a
+	ld a, $22
+	ld [wcd34], a
+	ld a, $4
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.asm_1181f8
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $28
+	jr c, .asm_11820b
+	ld a, [wcd34]
+	ld [wcf66], a
+
+.asm_11820b
+	call Function1185c3
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .asm_1181f8
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	call ReturnToMapFromSubmenu
+	ret
+; 118233
+
+Function118233: ; 118233
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $1b
+	ld [wcd33], a
+	ld a, $1c
+	ld [wcd34], a
+	ld a, $6
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.asm_11824c
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $1e
+	jr c, .asm_11825f
+	ld a, [wcd34]
+	ld [wcf66], a
+
+.asm_11825f
+	call Function118624
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .asm_11824c
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	ret
+; 118284
+
+Function118284: ; 118284
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $19
+	ld [wcd33], a
+	ld a, $1e
+	ld [wcd34], a
+	ld a, $5
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.asm_11829d
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $20
+	jr c, .asm_1182b0
+	ld a, [wcd34]
+	ld [wcf66], a
+.asm_1182b0
+	call Function1186f5
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .asm_11829d
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	ret
+; 1182d5 (46:42d5)
+
+
+Function1182d5: ; 1182d5
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $18
+	ld [wcd33], a
+	ld a, $19
+	ld [wcd34], a
+	ld a, $4
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.asm_1182ee
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $1b
+	jr c, .asm_118301
+	ld a, [wcd34]
+	ld [wcf66], a
+
+.asm_118301
+	call Function118746
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .asm_1182ee
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	call ReturnToMapFromSubmenu
+	ret
+; 118329
+
+Function118329: ; 118329
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $15
+	ld [wcd33], a
+	ld a, $16
+	ld [wcd34], a
+	ld a, $6
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.asm_118342
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $18
+	jr c, .asm_118355
+	ld a, [wcd34]
+	ld [wcf66], a
+
+.asm_118355
+	call Function118671
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .asm_118342
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	ret
+; 11837a
+
+Function11837a: ; 11837a
+	call BattleTowerRoomMenu_InitRAM
+	ld a, $16
+	ld [wcd33], a
+	ld a, $17
+	ld [wcd34], a
+	ld a, $6
+	ld [wc3f0], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+.asm_118393
+	call JoyTextDelay
+	call Function118473
+	ld a, [wcf66]
+	cp $19
+	jr c, .asm_1183a6
+	ld a, [wcd34]
+	ld [wcf66], a
+
+.asm_1183a6
+	call Function1186b2
+	call BattleTowerRoomMenu_WriteMessage
+	callba Function115dd3
+	callba Function11619d
+	call DelayFrame
+	ld a, [wcf66]
+	ld hl, wcd33
+	cp [hl]
+	jr nz, .asm_118393
+	pop af
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_Cleanup
+	ret
+; 1183cb
+
+BattleTowerRoomMenu_InitRAM: ; 1183cb
+	di
+	ld a, [rIE]
+	ld [wcd32], a
+	call DoubleSpeed
+	xor a
+	ld [rIF], a
+	ld [wc300], a
+	ld [wc301], a
+	ld [wc302], a
+	ld [wcd80], a
+	ld [wcd65], a
+	ld [wcd66], a
+	ld [wcd67], a
+	ld [wcd68], a
+	ld [$c31a], a
+	ld [wcd89], a
+	ld [wcd8a], a
+	ld [wcd8b], a
+	ld [wc3ec], a
+	ld [wc3ed], a
+	ld [wc3ee], a
+	ld [wc3ef], a
+	ld hl, VramState
+	ld a, [hl]
+	ld [wcd7f], a
+	set 1, [hl]
+	ld a, $f
+	ld [rIE], a
+	ld a, $1
+	ld [hMobileReceive], a
+	ld [hMobile], a
+	ei
+	callba MobileFunc_106462
+	callba Function106464
+	callba Function115d99
+	callba Function11615a
+	ld a, $5
+	call GetSRAMBank
+	xor a
+	ld [$bfff], a
+	call CloseSRAM
+	ret
+; 118440
+
+Function118440: ; 118440
+	push af
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$bfff]
+	inc a
+	ld [$bfff], a
+	call CloseSRAM
+	pop af
+	ret
+; 118452
+
+BattleTowerRoomMenu_Cleanup: ; 118452
+	di
+	xor a
+	ld [hMobileReceive], a
+	ld [hMobile], a
+	ld [hVBlank], a
+	call NormalSpeed
+	xor a
+	ld [rIF], a
+	ld a, [wcd32]
+	ld [rIE], a
+	ei
+	ld a, [wcd7f]
+	ld [VramState], a
+	ld a, [wc300]
+	ld [ScriptVar], a
+	ret
+; 118473
+
+Function118473: ; 118473
+	ld a, [wcd65]
+	and a
+	ret z
+	ld a, [wcd66]
+	inc a
+	ld [wcd66], a
+	cp 60
+	ret nz
+	xor a
+	ld [wcd66], a
+	ld a, [wcd67]
+	inc a
+	ld [wcd67], a
+	cp 60
+	ret nz
+	ld a, [wcd68]
+	inc a
+	ld [wcd68], a
+	cp 99
+	jr z, .ninety_nine
+	xor a
+	ld [wcd67], a
+	ret
+
+.ninety_nine
+	xor a
+	ld [wcd65], a
+	ret
+; 1184a5
+
+Function1184a5: ; 1184a5
+	jumptable .Jumptable, wcf66
+; 1184b4
+
+.Jumptable: ; 1184b4
+	dw Function11886e
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function118a8f
+	dw Function11878d
+	dw Function118d80
+	dw Function118d9b
+	dw Function11878d
+	dw Function118ded
+	dw Function118e6d
+	dw Function11878d
+	dw Function11984e
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw Function118e76
+; 1184ec
+
+Function1184ec: ; 1184ec
+	jumptable .Jumptable, wcf66
+; 1184fb
+
+.Jumptable: ; 1184fb
+	dw Function11886e
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function119954
+	dw Function11878d
+	dw Function119973
+	dw Function11878d
+	dw Function119987
+	dw Function11878d
+	dw Function1199b4
+	dw Function1199ca
+	dw Function11878d
+	dw Function1199e2
+	dw Function119b0d
+	dw Function11878d
+	dw Function119b6b
+	dw Function119b3b
+	dw Function11878d
+	dw Function119b52
+	dw Function11878d
+	dw Function118e6d
+	dw Function11878d
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw Function119b45
+	dw Function11878d
+	dw Function119ac9
+	dw Function118e76
+; 11854d
+
+BattleTowerRoomMenu_Jumptable: ; 11854d
+	jumptable .Jumptable, wcf66
+; 11855c
+
+.Jumptable: ; 11855c
+	dw BattleTowerRoomMenu_PickLevelMessage
+	dw BattleTowerRoomMenu_PlacePickLevelMenu
+	dw BattleTowerRoomMenu_UpdatePickLevelMenu
+	dw BattleTowerRoomMenu_DoNothing
+	dw BattleTowerRoomMenu_PartyMonTopsThisLevelMessage
+	dw BattleTowerRoomMenu_WaitForMessage
+	dw BattleTowerRoomMenu_DelayRestartMenu
+	dw BattleTowerRoomMenu_QuitMessage
+	dw BattleTowerRoomMenu_PlaceYesNoMenu
+	dw BattleTowerRoomMenu_UpdateYesNoMenu
+	dw BattleTowerRoomMenu_UberRestrictionMessage
+	dw BattleTowerRoomMenu_WaitForMessage
+	dw BattleTowerRoomMenu_DelayRestartMenu
+	dw Function118e76 ; mobile
+	dw BattleTowerRoomMenu_CallRoomMenu2 ; mobile
+	dw Function118e76 ; mobile
+; 11857c
+
+Function11857c: ; 11857c
+	jumptable .Jumptable, wcf66
+; 11858b
+
+.Jumptable: ; 11858b
+	dw Function11886e
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function118a7a
+	dw Function11878d
+	dw Function11891c
+	dw Function1198ee
+	dw Function1198f7
+	dw Function11878d
+	dw Function119937
+	dw Function118e6d
+	dw Function11878d
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw Function118e76
+; 1185c3
+
+Function1185c3: ; 1185c3
+	jumptable .Jumptable, wcf66
+; 1185d2
+
+.Jumptable: ; 1185d2
+	dw Function11886e
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function118aa4
+	dw Function11878d
+	dw Function118e92
+	dw Function11878d
+	dw Function118eb0
+	dw Function118ec6
+	dw Function118f0d
+	dw Function118f14
+	dw Function118f5e
+	dw Function11878d
+	dw Function118fc0
+	dw Function11878d
+	dw Function119054
+	dw Function1190d0
+	dw Function11878d
+	dw Function1190ec
+	dw Function118e6d
+	dw Function11878d
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw BattleTowerRoomMenu_QuitMessage
+	dw BattleTowerRoomMenu_PlaceYesNoMenu
+	dw BattleTowerRoomMenu_UpdateYesNoMenu
+	dw Function11914e
+	dw Function118e76
+; 118624
+
+Function118624: ; 118624
+	jumptable .Jumptable, wcf66
+; 118633
+
+.Jumptable: ; 118633
+	dw Function118866
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function118aa4
+	dw Function11878d
+	dw Function118e92
+	dw Function11878d
+	dw Function11915d
+	dw Function118f68
+	dw Function11878d
+	dw Function119009
+	dw Function11878d
+	dw Function119054
+	dw Function118e6d
+	dw Function11878d
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw Function118e76
+; 118671
+
+Function118671: ; 118671
+	jumptable .Jumptable, wcf66
+; 118680
+
+.Jumptable: ; 118680
+	dw Function118866
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function119380
+	dw Function119388
+	dw Function1193a0
+	dw Function11878d
+	dw Function118e6d
+	dw Function11878d
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw Function118e76
+; 1186b2
+
+Function1186b2: ; 1186b2
+	jumptable .Jumptable, wcf66
+; 1186c1
+
+.Jumptable: ; 1186c1
+	dw Function118866
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function119380
+	dw Function1193e3
+	dw Function1193fb
+	dw Function11878d
+	dw Function119413
+	dw Function118e6d
+	dw Function11878d
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw Function118e76
+; 1186f5
+
+Function1186f5: ; 1186f5 (46:46f5)
+	jumptable .Jumptable, wcf66
+; 118704 (46:4704)
+
+.Jumptable: ; 118704 (46:4704)
+	dw Function11886a
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function118abc
+	dw Function11878d
+	dw Function119451
+	dw Function1195f8
+	dw Function119612
+	dw Function119629
+	dw Function119648
+	dw Function11878d
+	dw Function118e6d
+	dw Function11878d
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function11967d
+	dw Function119685
+	dw Function119665
+	dw Function11966d
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw Function118e76
+; 118746 (46:4746)
+
+Function118746: ; 118746
+	jumptable .Jumptable, wcf66
+; 118755
+
+.Jumptable: ; 118755
+	dw Function11886e
+	dw Function118880
+	dw Function11878d
+	dw Function1188b0
+	dw Function11878d
+	dw Function1188b8
+	dw Function11878d
+	dw Function1188c0
+	dw Function11878d
+	dw Function1188c8
+	dw Function11878d
+	dw Function118903
+	dw Function118ad0
+	dw Function11878d
+	dw Function1196f2
+	dw Function1197c9
+	dw Function1197dc
+	dw Function11878d
+	dw Function118e6d
+	dw Function11878d
+	dw Function119800
+	dw Function118e76
+	dw Function118e7e
+	dw Function11878d
+	dw BattleTowerRoomMenu_DoNothing
+	dw Function118e76
+	dw BattleTowerRoomMenu_CallRoomMenu2
+	dw Function118e76
+; 11878d
+
+Function11878d: ; 11878d (46:478d)
+	ld a, [wc821]
+	bit 1, a
+	jr nz, .asm_1187af
+	bit 2, a
+	jr nz, .asm_1187d1
+	bit 0, a
+	jr nz, .asm_1187aa
+	ld a, [wcd89]
+	and $1
+	jr z, .asm_1187a7
+	ld a, $3
+	ld [rSVBK], a
+.asm_1187a7
+	jp BattleTowerRoomMenu_IncrementJumptable
+.asm_1187aa
+	call Function118821
+	ret c
+	ret
+.asm_1187af
+	ld a, $0
+	call Function3e32
+	ld [wc300], a
+	ld a, l
+	ld [wc301], a
+	ld a, h
+	ld [wc302], a
+	ld a, $a
+	call Function3e32
+	ld a, [wc3f0]
+	ld [$c319], a
+	ld a, [wcd34]
+	ld [wcf66], a
+	ret
+.asm_1187d1
+	ld hl, wcd89
+	bit 0, [hl]
+	jr nz, .asm_118803
+	set 0, [hl]
+	ld a, $6
+	ld [rSVBK], a
+	ld de, w3_d000
+	ld bc, $1000
+	ld a, [hl]
+	sla a
+	jr c, .asm_1187f9
+	sla a
+	jr c, .asm_1187fd
+	sla a
+	jr c, .asm_1187f5
+	ld a, $24
+	jr .asm_1187ff
+.asm_1187f5
+	ld a, $28
+	jr .asm_1187ff
+.asm_1187f9
+	ld a, $2a
+	jr .asm_1187ff
+.asm_1187fd
+	ld a, $2c
+.asm_1187ff
+	call Function3e32
+	ret
+.asm_118803
+	ld a, $d3
+
+Function118805: ; 118805 (46:4805)
+	ld [wc300], a
+	xor a
+	ld [wc301], a
+	ld [wc302], a
+	ld a, $a
+	call Function3e32
+	ld a, [wc3f0]
+	ld [$c319], a
+	ld a, [wcd34]
+	ld [wcf66], a
+	ret
+
+Function118821: ; 118821 (46:4821)
+	ld a, [$c319]
+	cp $3
+	jr c, .asm_11884a
+	cp $4
+	jr z, .asm_11884a
+	ld a, [hJoyDown]
+	cp $5
+	jr nz, .asm_11884a
+	ld a, $a
+	call Function3e32
+	ld a, $a
+	ld [wc300], a
+	ld a, [wc3f0]
+	ld [$c319], a
+	ld a, [wcd34]
+	ld [wcf66], a
+	scf
+	ret
+.asm_11884a
+	and a
+	ret
+; 11884c (46:484c)
+
+Function11884c: ; 11884c
+	ld a, [hJoyDown]
+	cp $5
+	jr nz, .asm_118864
+	ld a, $a
+	call Function3e32
+	ld a, $a
+	ld [wc300], a
+	ld a, [wcd34]
+	ld [wcf66], a
+	scf
+	ret
+
+.asm_118864
+	and a
+	ret
+; 118866
+
+Function118866:
+	ld a, 2
+	jr asm_11886f
+
+Function11886a: ; 11886a (46:486a)
+	ld a, 1
+	jr asm_11886f
+; 11886e (46:486e)
+
+Function11886e:
+	xor a
+
+asm_11886f
+	ld [BGMapPalBuffer], a
+	ld a, $0
+	ld [wcd3c], a
+	call BattleTowerRoomMenu_IncrementJumptable
+	ld a, [wcd33]
+	ld [wMobileInactivityTimerSeconds], a
+
+Function118880: ; 118880 (46:4880)
+	call BattleTowerRoomMenu2
+	ret c
+	xor a
+	ld [wcf64], a
+	ld [wc807], a
+	ld de, wcd81
+	ld hl, $46
+	ld a, $2
+	jp Function119e2b
+; 118896 (46:4896)
+
+Function118896: ; 118896
+	ld a, [wc821]
+	bit 1, a
+	jr nz, .asm_1188a5
+	bit 2, a
+	jr nz, .asm_1188a5
+	bit 0, a
+	jr z, .asm_1188aa
+
+.asm_1188a5
+	ld a, $34
+	jp Function119e2b
+
+.asm_1188aa
+	call BattleTowerRoomMenu_IncrementJumptable
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 1188b0
+
+Function1188b0: ; 1188b0 (46:48b0)
+	ld de, $c346
+	ld a, $c
+	jp Function119e2b
+
+Function1188b8: ; 1188b8 (46:48b8)
+	ld de, wc3ac
+	ld a, $e
+	jp Function119e2b
+
+Function1188c0: ; 1188c0 (46:48c0)
+	ld de, wc3cd
+	ld a, $10
+	jp Function119e2b
+
+Function1188c8: ; 1188c8 (46:48c8)
+	ld a, $1
+	ld [wcd65], a
+	call Function1188e7
+	ld hl, $c708
+.asm_1188d3
+	ld a, [de]
+	inc de
+	ld [hli], a
+	and a
+	jr nz, .asm_1188d3
+	call Function119eb4
+	call Function119ec2
+	ld hl, $c708
+	ld a, $6
+	jp Function119e2b
+
+Function1188e7: ; 1188e7 (46:48e7)
+	ld de, $c346
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$aa4a]
+	call CloseSRAM
+	and a
+	ret z
+	sla a
+	ld c, a
+.asm_1188fa
+	ld a, [de]
+	inc de
+	and a
+	jr nz, .asm_1188fa
+	dec c
+	jr nz, .asm_1188fa
+	ret
+
+Function118903: ; 118903 (46:4903)
+	ld a, [wc3f0]
+	ld [$c319], a
+	ld c, $1
+	callba Function115e18
+	ld a, $8
+	ld [wcd3c], a
+	call BattleTowerRoomMenu2
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+
+Function11891c: ; 11891c
+	call Function118b42
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+
+BattleTowerRoomMenu_PickLevelMessage: ; 118922
+	ld a, [wcd38]
+	and a
+	jr nz, .asm_11892d
+	ld hl, Text_WhatLevelDoYouWantToChallenge
+	jr .asm_118930
+
+.asm_11892d
+	ld hl, Text_CheckBattleRoomListByMaxLevel
+
+.asm_118930
+	call BattleTowerRoomMenu_SetMessage
+	call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_PlacePickLevelMenu:
+	ld a, [$c31a]
+	and a
+	ret nz
+	ld hl, MenuDataHeader_119cf7
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	call ApplyTilemap
+	hlcoord 16, 8, AttrMap
+	ld a, $40
+	or [hl]
+	ld [hl], a
+	call WaitBGMap2
+	ld a, $1
+	ld [wcd4f], a
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [StatusFlags]
+	bit 6, a ; Hall Of Fame
+	jr nz, .asm_11896b
+	ld hl, Strings_Ll0ToL40		; Address to list of strings with the choosable levels
+	ld a, 5						; 4 levels to choose from, including 'Cancel'-option
+	jr .asm_118970
+
+.asm_11896b
+	ld hl, Strings_L10ToL100	; Address to list of strings with the choosable levels
+	ld a, 11					; 10 levels to choose from, including 'Cancel'-option
+
+.asm_118970
+	ld [wcd4a], a
+	ld a, l
+	ld [wcd4b], a
+	ld a, h
+	ld [wcd4c], a
+	ld a, $3
+	ld [rSVBK], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_UpdatePickLevelMenu:
+	hlcoord 13, 8
+	ld de, String_119d07
+	call PlaceString
+	hlcoord 13, 10
+	ld de, String_119d07
+	call PlaceString
+	ld a, [wcd4b]
+	ld l, a
+	ld a, [wcd4c]
+	ld h, a
+	ld d, $0
+	ld a, [wcd4f]
+	dec a
+	rlca
+	rlca
+	rlca
+	ld e, a
+	add hl, de
+	ld a, l
+	ld e, a
+	ld a, h
+	ld d, a
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld bc, StringBuffer3
+.asm_1189b5
+	ld a, [hli]
+	cp $50
+	jr z, .asm_1189c4
+	cp $7f
+	jr z, .asm_1189c2
+	ld [bc], a
+	inc bc
+	jr .asm_1189b5
+
+.asm_1189c2
+	ld a, $50
+
+.asm_1189c4
+	ld [bc], a
+	pop af
+	ld [rSVBK], a
+	hlcoord 13, 9
+	call PlaceString
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and B_BUTTON
+	jr nz, .b_button
+	ld a, [hl]
+	and A_BUTTON
+	jr nz, .a_button
+	ld a, [hl]
+	and D_DOWN
+	jr nz, .d_down
+	ld a, [hl]
+	and D_UP
+	jr nz, .d_up
+.asm_1189e5
+	ret
+
+.d_down
+	ld hl, wcd4f
+	dec [hl]
+	jr nz, .asm_1189e5
+	ld a, [wcd4a]
+	ld [hl], a
+	jr .asm_1189e5
+
+.d_up
+	ld a, [wcd4a]
+	ld hl, wcd4f
+	inc [hl]
+	cp [hl]
+	jr nc, .asm_1189e5
+	ld a, $1
+	ld [hl], a
+	jr .asm_1189e5
+
+.a_button
+	call PlayClickSFX
+	ld a, [wcd4f]
+	ld hl, wcd4a
+	cp [hl]
+	jr z, .asm_118a3c
+	dec a
+	and $fe
+	srl a
+	ld [wcf65], a
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	call CloseWindow
+	pop af
+	ld [rSVBK], a
+	ld a, [wcd38]
+	and a
+	jr nz, .asm_118a30
+	call BattleTower_LevelCheck
+	ret c
+	call BattleTower_UbersCheck
+	ret c
+
+.asm_118a30
+	ld a, [wcd4f]
+	ld [w3_d800], a
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+.b_button
+	call PlayClickSFX
+
+.asm_118a3c
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	call CloseWindow
+	pop af
+	ld [rSVBK], a
+	ld a, $7
+	ld [wcf66], a
+	ld a, $0
+	ld [wMobileInactivityTimerFrames], a
+	ret
+
+
+
+Function118a54: ; 118a54
+	ld a, [wcd55]
+	ld l, a
+	ld a, [wcd56]
+	ld h, a
+	ld de, wc3ec
+	ld bc, $0004
+	jp Function118ae4
+; 118a65
+
+Function118a65: ; 118a65
+	ld hl, BattleDownloadURL
+	ld de, wcc60
+	ld bc, $80
+	call CopyBytes
+	ld de, w3_d000
+	ld bc, $1000
+	jp Function118b10
+; 118a7a
+
+Function118a7a: ; 118a7a
+	ld hl, BattleDownloadURL
+	ld de, wcc60
+	ld bc, $80
+	call CopyBytes
+	ld de, w3_d000
+	ld bc, $1000
+	jp Function118b10
+; 118a8f
+
+Function118a8f: ; 118a8f
+	ld hl, ExchangeDownloadURL
+	ld de, wcc60
+	ld bc, $80
+	call CopyBytes
+	ld de, w3_d000
+	ld bc, $1000
+	jp Function118b10
+; 118aa4
+
+Function118aa4: ; 118aa4
+	ld hl, NewsDownloadURL
+	ld de, wcc60
+	ld bc, $80
+	call CopyBytes
+	ld a, $5
+	ld [rSVBK], a
+	ld de, w3_d100
+	ld bc, $e00
+	jr Function118b10
+; 118abc
+
+Function118abc: ; 118abc (46:4abc)
+	ld hl, MenuDownloadURL
+	ld de, wcc60
+	ld bc, $80
+	call CopyBytes
+	ld de, w3_d000
+	ld bc, $1000
+	jr Function118b10
+; 118ad0 (46:4ad0)
+
+Function118ad0:
+	ld hl, IndexDownloadURL
+	ld de, wcc60
+	ld bc, $80
+	call CopyBytes
+	ld de, w3_d000
+	ld bc, $1000
+	jr Function118b10
+
+Function118ae4:
+	push bc
+	push de
+	push hl
+	ld a, $8
+	ld [wcd3c], a
+	call BattleTowerRoomMenu2
+	pop hl
+	ld c, $0
+	ld de, wcc60
+.asm_118af5
+	ld a, [hli]
+	ld [de], a
+	inc de
+	and a
+	jr z, .asm_118b06
+	inc c
+	ld a, c
+	cp $a6
+	jr c, .asm_118af5
+	ld a, $da
+	jp Function118805
+
+.asm_118b06
+	call Function118b24
+	pop de
+	pop bc
+	ld a, $2a
+	jp Function119e2b
+; 118b10
+
+Function118b10:
+	push de
+	push bc
+	ld a, $8
+	ld [wcd3c], a
+	call BattleTowerRoomMenu2
+	call Function118b24
+	pop bc
+	pop de
+	ld a, $2a
+	jp Function119e2b
+
+Function118b24: ; 118b24 (46:4b24)
+	ld hl, $c346
+	ld a, $8
+	ld [hli], a
+	ld a, $c7
+	ld [hli], a
+	ld a, $60
+	ld [hli], a
+	ld a, $cc
+	ld [hli], a
+	call Function119eb4
+	call Function119ec2
+	ld a, $80
+	ld [wcd89], a
+	ld hl, $c346
+	ret
+; 118b42 (46:4b42)
+
+Function118b42: ; 118b42
+	ld hl, wd002
+	ld a, l
+	ld [wcd51], a
+	ld a, h
+	ld [wcd52], a
+	call Function118b8c
+	ld a, l
+	ld [wcd55], a
+	ld [wcd59], a
+	ld a, h
+	ld [wcd56], a
+	ld [wcd5a], a
+	call Function118b8c
+	ld a, l
+	ld [wcd53], a
+	ld [wcd5d], a
+	ld a, h
+	ld [wcd54], a
+	ld [wcd5e], a
+	call Function118b8c
+	ld a, l
+	ld [wcd57], a
+	ld [wcd5b], a
+	ld a, h
+	ld [wcd58], a
+	ld [wcd5c], a
+	call Function118b8c
+	ld a, l
+	ld [wcd5f], a
+	ld a, h
+	ld [wcd60], a
+	ret
+; 118b8c
+
+Function118b8c: ; 118b8c
+.asm_118b8c
+	call Function118b9a
+	ret nc
+	ld a, [hli]
+	cp $d
+	jr nz, .asm_118b8c
+	dec hl
+	xor a
+	ld [hli], a
+	ld [hli], a
+	ret
+; 118b9a
+
+Function118b9a: ; 118b9a
+	ld a, h
+	cp $e0
+	ret c
+	ld a, $d3
+	call Function118805
+	and a
+	ret
+; 118ba5
+
+
+	charmap " ", $20 ; revert to ascii
+
+ExchangeDownloadURL: ; 0x118ba5
+	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0
+
+BattleDownloadURL: ; 0x118bf7
+	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0
+
+NewsDownloadURL: ; 0x118c47
+	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0
+
+MenuDownloadURL: ; 0x118c95
+	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0
+
+IndexDownloadURL: ; 0x118ce5
+	db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0
+
+
+Function118d35: ; 118d35
+; unreferenced
+	ld hl, $d200
+	ld a, [wcd38]
+	and a
+	jr nz, .asm_118d6e
+	ld a, [hli]
+	cp $94
+	jr nz, .asm_118d7b
+	ld a, [hl]
+	cp $5
+	jr nz, .asm_118d7b
+	ld a, [wcd4f]
+	sla a
+	ld b, a
+	sla a
+	sla a
+	add b
+	ld b, a
+	ld a, $5
+	call GetSRAMBank
+	ld a, b
+	ld [$b2fb], a
+	call CloseSRAM
+	callba Function170be4
+	callba Function1700c4
+	jr .asm_118d78
+
+.asm_118d6e
+	ld a, [hli]
+	cp $96
+	jr nz, .asm_118d7b
+	ld a, [hl]
+	cp $0
+	jr nz, .asm_118d7b
+
+.asm_118d78
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_118d7b
+	ld a, $d3
+	jp Function118805
+; 118d80
+
+Function118d80: ; 118d80
+	call Function118e06
+	ld a, [wcd38]
+	and a
+	jr z, .asm_118d8e
+	call BattleTowerRoomMenu_IncrementJumptable
+	jr asm_118d9f
+
+.asm_118d8e
+	ld a, $9
+	ld [wcd3c], a
+	ld a, $12
+	ld [wMobileInactivityTimerSeconds], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+Function118d9b:
+	call BattleTowerRoomMenu2
+	ret c
+
+asm_118d9f
+	ld hl, $c608
+	call Function119940
+	ld a, [wcd38]
+	and a
+	jr nz, .asm_118db2
+	ld a, $8f
+	ld [wcd3b], a
+	jr .asm_118db7
+
+.asm_118db2
+	ld a, $26
+	ld [wcd3b], a
+
+.asm_118db7
+	ld hl, w3_d800
+	ld a, $8
+	ld [hli], a
+	ld a, $c6
+	ld [hli], a
+	ld a, [wcd3b]
+	ld [hli], a
+	xor a
+	ld [hli], a
+	ld a, $8
+	ld [hli], a
+	ld a, $c7
+	ld [hli], a
+	ld a, [wcd39]
+	ld [hli], a
+	ld a, [wcd3a]
+	ld [hli], a
+	call Function119eb4
+	call Function119ec2
+	ld a, $40
+	ld [wcd89], a
+	ld hl, w3_d800
+	ld de, $de00
+	ld bc, $0200
+	ld a, $2c
+	jp Function119e2b
+; 118ded
+
+Function118ded: ; 118ded
+	ld a, [wcd38]
+	and a
+	jr z, .asm_118e03
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	callba Function11b93b
+	pop af
+	ld [rSVBK], a
+
+.asm_118e03
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 118e06
+
+Function118e06: ; 118e06
+	ld hl, wd002
+	ld a, [wcd38]
+	and a
+	jr z, .asm_118e1d
+.asm_118e0f
+	call Function118b9a
+	ret nc
+	ld a, [hli]
+	cp $d
+	jr nz, .asm_118e0f
+	ld a, [hli]
+	cp $a
+	jr nz, .asm_118e0f
+
+.asm_118e1d
+	ld a, l
+	ld [wcd39], a
+	ld a, h
+	ld [wcd3a], a
+.asm_118e25
+	call Function118b9a
+	ret nc
+	ld a, [hli]
+	cp $d
+	jr nz, .asm_118e25
+	ld a, [hli]
+	cp $a
+	jr nz, .asm_118e25
+	dec hl
+	xor a
+	ld [hld], a
+	ld [hl], a
+	jr asm_118e3e
+
+Function118e39: ; 118e39 (46:4e39)
+.asm_118e39
+	ld a, [hli]
+	and a
+	jr nz, .asm_118e39
+	dec hl
+asm_118e3e
+.asm_118e3e
+	ld a, [hld]
+	cp $2f
+	jr nz, .asm_118e3e
+	inc hl
+	inc hl
+	ld de, wcd85
+	ld c, $4
+.asm_118e4a
+	ld a, [hli]
+	cp $2e
+	jr z, .asm_118e63
+	cp $30
+	jr c, .asm_118e67
+	cp $3a
+	jr nc, .asm_118e67
+	sub $30
+	add $f6
+	ld [de], a
+	inc de
+	dec c
+	jr nz, .asm_118e4a
+	ld de, wcd85
+.asm_118e63
+	ld a, $50
+	ld [de], a
+	ret
+.asm_118e67
+	ld a, $f3
+	ld [de], a
+	inc de
+	jr .asm_118e63
+
+Function118e6d: ; 118e6d (46:4e6d)
+	xor a
+	ld [wcd65], a
+	ld a, $a
+	jp Function119e2b
+
+Function118e76: ; 118e76 (46:4e76)
+	; Call $c in BattleTowerRoomMenu2
+	ld a, $c
+	ld [wcd3c], a
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+Function118e7e: ; 118e7e (46:4e7e)
+	call BattleTowerRoomMenu2
+	ret c
+	ld a, $36
+	jp Function119e2b
+
+BattleTowerRoomMenu_CallRoomMenu2: ; 118e87 (46:4e87)
+	call BattleTowerRoomMenu2
+	ret c
+	ld a, [wcd33]
+	ld [wcf66], a
+	ret
+; 118e92 (46:4e92)
+
+Function118e92: ; 118e92
+	call Function118440
+	call Function1191d3
+	ld a, [wcd53]
+	ld l, a
+	ld a, [wcd54]
+	ld h, a
+	ld de, wcc60
+	call Function1191ad
+	ret c
+	ld de, w3_d800
+	ld bc, $0800
+	jp Function118b10
+; 118eb0
+
+Function118eb0: ; 118eb0
+	call Function118440
+	ld hl, $d802
+	ld de, BGMapBuffer
+	ld bc, $000c
+	call CopyBytes
+	call Function1192cc
+	ret c
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 118ec6
+
+Function118ec6: ; 118ec6
+	call Function118440
+	call SpeechTextBox
+	ld hl, $d80e
+	ld de, $c320
+	ld bc, $0026
+	call CopyBytes
+	xor a
+	ld [$c31f], a
+	ld a, $20
+	ld [$c31b], a
+	ld a, $c3
+	ld [$c31c], a
+	hlcoord 1, 14
+	ld a, l
+	ld [$c31d], a
+	ld a, h
+	ld [$c31e], a
+	ld a, $2
+	ld [$c31a], a
+	ld a, $1d
+	ld [wcd3c], a
+	ld a, $24
+	ld [wMobileInactivityTimerSeconds], a
+	ld a, $11
+	ld [wMobileInactivityTimerFrames], a
+	ld a, $1c
+	ld [wcd47], a
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 118f0d
+
+Function118f0d: ; 118f0d
+	call BattleTowerRoomMenu2
+	ret c
+	call Function118440
+
+Function118f14:
+	call Function118440
+	ld a, [wcd51]
+	ld l, a
+	ld a, [wcd52]
+	ld h, a
+	ld de, wcc60
+	call Function1191ad
+	ret c
+	ld a, [wcc60]
+	and a
+	jr z, .DontSendSaveFile
+	ld hl, Text_SaveFileWillBeSent
+	call BattleTowerRoomMenu_SetMessage
+
+.DontSendSaveFile:
+	ld a, [wcd57]
+	ld l, a
+	ld a, [wcd58]
+	ld h, a
+	ld de, wcc60
+	call Function1191ad
+	ret c
+	ld hl, wcc60
+	call Function118e39
+	ld a, $9
+	ld [wcd3c], a
+	ld a, $24
+	ld [wMobileInactivityTimerSeconds], a
+	ld a, $13
+	ld [wMobileInactivityTimerFrames], a
+	ld a, $1c
+	ld [wcd47], a
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 118f5e
+
+Function118f5e: ; 118f5e
+	call BattleTowerRoomMenu2
+	ret c
+	call Function118440
+	call DelayFrame
+
+Function118f68:
+	call Function119223
+	ret c
+	call Function118440
+	ld a, [wcd51]
+	ld l, a
+	ld a, [wcd52]
+	ld h, a
+	ld de, wcc60
+	call Function1191ad
+	ret c
+	ld a, [wcc60]
+	and a
+	jr z, .asm_118fba
+	ld hl, $c346
+	ld a, $c608 % $100
+	ld [hli], a
+	ld a, $c608 / $100
+	ld [hli], a
+	ld a, [wcd4b]
+	ld [hli], a
+	ld a, [wcd4c]
+	ld [hli], a
+	ld a, $c708 % $100
+	ld [hli], a
+	ld a, $c708 / $100
+	ld [hli], a
+	ld a, $60
+	ld [hli], a
+	ld a, $cc
+	ld [hli], a
+	call Function119eb4
+	call Function119ec2
+	ld a, $40
+	ld [wcd89], a
+	ld hl, $c346
+	ld de, $de00
+	ld bc, $0200
+	ld a, $2c
+	jp Function119e2b
+
+.asm_118fba
+	call BattleTowerRoomMenu_IncrementJumptable
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 118fc0
+
+Function118fc0: ; 118fc0
+	call Function118440
+	ld a, [wcd55]
+	ld l, a
+	ld a, [wcd56]
+	ld h, a
+	ld de, wcc60
+	call Function1191ad
+	ret c
+	ld a, [wcc60]
+	and a
+	jr z, .asm_118ffa
+	ld a, [wcd51]
+	ld l, a
+	ld a, [wcd52]
+	ld h, a
+	ld de, wcc60
+	call Function1191ad
+	ret c
+	ld a, [wcc60]
+	and a
+	jr z, .asm_118ff2
+	ld hl, Text_SentSaveFileReadingNews
+	jr .asm_118ff5
+
+.asm_118ff2
+	ld hl, Text_ReadingNews
+
+.asm_118ff5
+	call BattleTowerRoomMenu_SetMessage
+	jr Function119009
+
+.asm_118ffa
+	ld hl, Text_ReadingNews
+	call BattleTowerRoomMenu_SetMessage
+	call BattleTowerRoomMenu_IncrementJumptable
+	call BattleTowerRoomMenu_IncrementJumptable
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119009:
+	call Function118440
+	call Function119300
+	ld a, [wcd55]
+	ld l, a
+	ld a, [wcd56]
+	ld h, a
+	ld de, wcc60
+	call Function1191ad
+	ret c
+	ld hl, $c346
+	ld a, $8
+	ld [hli], a
+	ld a, $c6
+	ld [hli], a
+	ld a, [wcd4b]
+	ld [hli], a
+	ld a, [wcd4c]
+	ld [hli], a
+	ld a, $8
+	ld [hli], a
+	ld a, $c7
+	ld [hli], a
+	ld a, $60
+	ld [hli], a
+	ld a, $cc
+	ld [hli], a
+	call Function119eb4
+	call Function119ec2
+	ld a, $40
+	ld [wcd89], a
+	ld hl, $c346
+	ld de, w3_d000
+	ld bc, $1000
+	ld a, $2c
+	jp Function119e2b
+; 119054
+
+Function119054: ; 119054
+	ld a, $6
+	call GetSRAMBank
+	ld hl, wd002
+	ld a, [wcd4f]
+	ld e, a
+	ld a, [wcd50]
+	ld d, a
+	ld a, [w3_d000]
+	ld c, a
+	ld a, [w3_d000 + 1]
+	ld b, a
+	call Function119192
+	ret c
+	ld a, [wcd89]
+	and $1
+	jr z, .asm_11908a
+	ld a, $6
+	ld [rSVBK], a
+	ld hl, wd002
+	ld a, [w3_d000]
+	ld c, a
+	ld a, [w3_d000 + 1]
+	ld b, a
+	call Function119192
+	ret c
+
+.asm_11908a
+	call CloseSRAM
+	ld a, $3
+	ld [rSVBK], a
+	ld a, $5
+	call GetSRAMBank
+	ld a, [wcd4f]
+	ld [$b1b3], a
+	ld a, [wcd50]
+	ld [$b1b4], a
+	ld hl, BGMapBuffer
+	ld de, $aa7f
+	ld bc, $000c
+	call CopyBytes
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [wd474]
+	ld [$b2f3], a
+	ld hl, wd475
+	ld de, $b2f4
+	ld bc, $0004
+	call CopyBytes
+	pop af
+	ld [rSVBK], a
+	call CloseSRAM
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 1190d0
+
+Function1190d0: ; 1190d0
+	ld a, $3
+	ld [rSVBK], a
+	ld a, [wcd57]
+	ld l, a
+	ld a, [wcd58]
+	ld h, a
+	ld de, wcc60
+	call Function1191ad
+	ret c
+	ld de, w3_d000
+	ld bc, $1000
+	jp Function118b10
+; 1190ec
+
+Function1190ec: ; 1190ec
+	ld a, $5
+	call GetSRAMBank
+	ld hl, BGMapBuffer
+	ld de, $aa73
+	ld bc, $000c
+	call CopyBytes
+	call CloseSRAM
+	ld a, $5
+	call GetSRAMBank
+	ld a, $1
+	ld [$aa72], a
+	call CloseSRAM
+	ld a, $6
+	call GetSRAMBank
+	ld a, [w3_d000]
+	ld c, a
+	ld a, [w3_d000 + 1]
+	ld b, a
+	ld hl, wd002
+	ld de, $a000
+	call Function119192
+	ret c
+	ld a, [wcd89]
+	and $1
+	jr z, .asm_11913e
+	ld a, $6
+	ld [rSVBK], a
+	ld a, [w3_d000]
+	ld c, a
+	ld a, [w3_d000 + 1]
+	ld b, a
+	ld hl, wd002
+	call Function119192
+	ret c
+
+.asm_11913e
+	ld a, $3
+	ld [rSVBK], a
+	call CloseSRAM
+	ld hl, Text_ReceivedNews
+	call BattleTowerRoomMenu_SetMessage
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 11914e
+
+Function11914e: ; 11914e
+	call BattleTowerRoomMenu2
+	ret c
+	ld a, $1c
+	ld [wcf66], a
+	ld a, $a
+	ld [wc300], a
+	ret
+; 11915d
+
+Function11915d: ; 11915d
+	ld hl, $d802
+	ld de, BGMapBuffer
+	ld bc, $000c
+	call CopyBytes
+	ld a, $5
+	call GetSRAMBank
+	ld hl, BGMapBuffer
+	ld de, $aa7f
+	ld c, $c
+.asm_119176
+	ld a, [de]
+	inc de
+	cp [hl]
+	jr nz, .asm_119184
+	inc hl
+	dec c
+	jr nz, .asm_119176
+	call BattleTowerRoomMenu_IncrementJumptable
+	jr .asm_11918e
+
+.asm_119184
+	ld a, $16
+	ld [wcf66], a
+	ld a, $b
+	ld [wc300], a
+
+.asm_11918e
+	call CloseSRAM
+	ret
+; 119192
+
+Function119192: ; 119192
+	inc b
+	inc c
+	jr .asm_11919e
+
+.asm_119196
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, $bf
+	cp d
+	jr c, .asm_1191a6
+
+.asm_11919e
+	dec c
+	jr nz, .asm_119196
+	dec b
+	jr nz, .asm_119196
+	and a
+	ret
+
+.asm_1191a6
+	ld a, $d3
+	call Function118805
+	scf
+	ret
+; 1191ad
+
+Function1191ad: ; 1191ad
+	push bc
+	ld c, $0
+	ld a, $5
+	ld [rSVBK], a
+.asm_1191b4
+	ld a, [hli]
+	ld [de], a
+	inc de
+	and a
+	jr z, .asm_1191cc
+	inc c
+	ld a, c
+	cp $a6
+	jr c, .asm_1191b4
+	ld a, $da
+	call Function118805
+	ld a, $3
+	ld [rSVBK], a
+	pop bc
+	scf
+	ret
+
+.asm_1191cc
+	ld a, $3
+	ld [rSVBK], a
+	pop bc
+	and a
+	ret
+; 1191d3
+
+Function1191d3: ; 1191d3
+	ld hl, w3_d100 + 2
+	ld a, l
+	ld [wcd53], a
+	ld a, h
+	ld [wcd54], a
+	call Function11920f
+	ld a, l
+	ld [wcd51], a
+	ld a, [wcd4a]
+	ld a, h
+	ld [wcd52], a
+	call Function11920f
+	ld a, l
+	ld [wcd55], a
+	ld a, [wcd4a]
+	ld a, h
+	ld [wcd56], a
+	call Function11920f
+	ld a, [wcd49]
+	ld a, l
+	ld [wcd57], a
+	ld a, [wcd4a]
+	ld a, h
+	ld [wcd58], a
+	call Function11920f
+	ret
+; 11920f
+
+Function11920f: ; 11920f
+.asm_11920f
+	call Function118b9a
+	ret nc
+	ld a, [hli]
+	cp $d
+	jr nz, .asm_11920f
+	ld a, [hli]
+	cp $a
+	jr nz, .asm_11920f
+	dec hl
+	xor a
+	ld [hld], a
+	ld [hli], a
+	inc hl
+	ret
+; 119223
+
+Function119223: ; 119223
+	xor a
+	ld [wcd4b], a
+	ld [wcd4c], a
+	ld a, $5
+	call GetSRAMBank
+	ld hl, wc3cd
+	ld de, $b092
+	ld bc, $001f
+	call CopyBytes
+	dec de
+	xor a
+	ld [de], a
+	ld hl, $d810
+.asm_119241
+	ld a, [hli]
+	cp $50
+	jr nz, .asm_119241
+	ld a, [hli]
+	ld [wcd4f], a
+	ld a, [hli]
+	ld [wcd50], a
+	ld a, [hli]
+	ld [$b1b1], a
+	ld c, a
+	ld a, [hli]
+	ld [$b1b2], a
+	ld b, a
+	ld de, $b1d3
+	call CopyBytes
+	call CloseSRAM
+	ld e, l
+	ld d, h
+	ld hl, $c608
+.asm_119266
+	ld a, [de]
+	inc de
+	cp $ff
+	jr z, .asm_1192c2
+	cp $fe
+	jr z, .asm_1192a5
+	call GetSRAMBank
+	ld a, [de]
+	inc de
+	ld c, a
+	ld a, [de]
+	inc de
+	ld b, a
+	ld a, [de]
+	inc de
+	push de
+	push af
+	ld a, [wcd4b]
+	ld e, a
+	ld a, [wcd4c]
+	ld d, a
+	pop af
+.asm_119286
+	push af
+	ld a, [bc]
+	inc bc
+	ld [hli], a
+	inc de
+	pop af
+	dec a
+	jr nz, .asm_119286
+	call CloseSRAM
+	ld a, e
+	ld [wcd4b], a
+	ld a, d
+	ld [wcd4c], a
+	pop de
+.asm_11929b
+	and a
+	jr z, .asm_119266
+	ld a, $d3
+	call Function118805
+	scf
+	ret
+
+.asm_1192a5
+	ld a, [wcd4b]
+	ld c, a
+	ld a, [wcd4c]
+	ld b, a
+	ld a, [de]
+	inc de
+.asm_1192af
+	push af
+	ld a, [de]
+	inc de
+	ld [hli], a
+	inc bc
+	pop af
+	dec a
+	jr nz, .asm_1192af
+	ld a, c
+	ld [wcd4b], a
+	ld a, b
+	ld [wcd4c], a
+	jr .asm_11929b
+
+.asm_1192c2
+	ld a, e
+	ld [wcd4d], a
+	ld a, d
+	ld [wcd4e], a
+	and a
+	ret
+; 1192cc
+
+Function1192cc: ; 1192cc
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $aa73
+	ld de, $c608
+	ld bc, $000c
+	call CopyBytes
+	call CloseSRAM
+	ld hl, $c608
+	ld de, BGMapBuffer
+	ld c, $c
+.asm_1192e8
+	ld a, [de]
+	inc de
+	ld b, a
+	ld a, [hli]
+	cp b
+	jr nz, .asm_1192fe
+	dec c
+	jr nz, .asm_1192e8
+	ld a, $1f
+	ld [wcd3c], a
+	ld a, $27
+	ld [wcf66], a
+	scf
+	ret
+
+.asm_1192fe
+	and a
+	ret
+; 119300
+
+Function119300: ; 119300
+	xor a
+	ld [wcd4b], a
+	ld [wcd4c], a
+	ld a, [wcd4d]
+	ld e, a
+	ld a, [wcd4e]
+	ld d, a
+	ld hl, $c608
+	ld a, [wcd4b]
+	ld c, a
+	ld a, [wcd4c]
+	ld b, a
+.asm_11931a
+	ld a, [de]
+	inc de
+	cp $50
+	jr z, .asm_119324
+	ld [hli], a
+	inc bc
+	jr .asm_11931a
+
+.asm_119324
+	ld a, $3d
+	ld [hli], a
+	inc bc
+	ld a, c
+	ld [wcd4b], a
+	ld a, b
+	ld [wcd4c], a
+	ld a, [de]
+	inc de
+	call GetSRAMBank
+	ld a, [de]
+	inc de
+	ld c, a
+	ld a, [de]
+	inc de
+	ld b, a
+	ld a, [de]
+	inc de
+	push de
+	push af
+	ld a, [wcd4b]
+	ld e, a
+	ld a, [wcd4c]
+	ld d, a
+	pop af
+.asm_119348
+	push af
+	ld a, [bc]
+	and $f0
+	swap a
+	call Function1197bf
+	ld [hli], a
+	inc de
+	ld a, [bc]
+	inc bc
+	and $f
+	call Function1197bf
+	ld [hli], a
+	inc de
+	pop af
+	dec a
+	jr nz, .asm_119348
+	call CloseSRAM
+	ld a, e
+	ld [wcd4b], a
+	ld a, d
+	ld [wcd4c], a
+	pop de
+	ld a, [de]
+	cp $50
+	jr z, .asm_11937f
+	ld a, [wcd4b]
+	ld c, a
+	ld a, [wcd4c]
+	ld b, a
+	ld a, $26
+	ld [hli], a
+	inc bc
+	jr .asm_11931a
+
+.asm_11937f
+	ret
+; 119380
+
+Function119380: ; 119380
+	ld a, $80
+	ld [wcd49], a
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 119388
+
+Function119388: ; 119388
+	ld hl, wcd49
+	dec [hl]
+	ret nz
+	ld hl, wcc60
+	call Function118e39
+	ld a, $9
+	ld [wcd3c], a
+	ld a, $10
+	ld [wMobileInactivityTimerSeconds], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+Function1193a0:
+	call BattleTowerRoomMenu2
+	ret c
+	call DelayFrame
+	ld a, $8
+	ld [wcd3c], a
+	call BattleTowerRoomMenu2
+	ld hl, $c346
+	ld a, wd000 % $100
+	ld [hli], a
+	ld a, wd000 / $100
+	ld [hli], a
+	ld a, [wcd3b]
+	ld [hli], a
+	xor a
+	ld [hli], a
+	ld a, $c708 % $100
+	ld [hli], a
+	ld a, $c708 / $100
+	ld [hli], a
+	ld a, $60
+	ld [hli], a
+	ld a, $cc
+	ld [hli], a
+	call Function119eb4
+	call Function119ec2
+	ld a, $40
+	ld [wcd89], a
+	ld hl, $c346
+	ld de, $de00
+	ld bc, $0200
+	ld a, $2c
+	jp Function119e2b
+; 1193e3
+
+Function1193e3: ; 1193e3
+	ld hl, wcd49
+	dec [hl]
+	ret nz
+	ld hl, wcc60
+	call Function118e39
+	ld a, $9
+	ld [wcd3c], a
+	ld a, $11
+	ld [wMobileInactivityTimerSeconds], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+Function1193fb:
+	call BattleTowerRoomMenu2
+	ret c
+	call DelayFrame
+	ld a, $8
+	ld [wcd3c], a
+	call BattleTowerRoomMenu2
+	ld de, w3_d000
+	ld bc, $1000
+	jp Function118b10
+; 119413
+
+Function119413: ; 119413
+	ld a, $6
+	call GetSRAMBank
+	ld a, [w3_d000]
+	ld c, a
+	ld a, [w3_d000 + 1]
+	ld b, a
+	dec bc
+	dec bc
+	ld hl, wd002
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	call Function119192
+	ret c
+	ld a, [wcd89]
+	and $1
+	jr z, .asm_119447
+	ld a, $6
+	ld [rSVBK], a
+	ld a, [wd000]
+	ld c, a
+	ld a, [w3_d000 + 1]
+	ld b, a
+	ld hl, wd002
+	call Function119192
+	ret c
+
+.asm_119447
+	ld a, $3
+	ld [rSVBK], a
+	call CloseSRAM
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 119451
+
+Function119451: ; 119451 (46:5451)
+	ld a, [wcd89]
+	and $1
+	jr z, .asm_11945d
+	ld a, $d3
+	jp Function118805
+.asm_11945d
+	xor a
+	ld [wcd50], a
+	call Function119694
+	ld a, b
+	ld [wcd49], a
+	call Function1196cd
+	ld a, [wd002]
+	ld hl, wd003
+
+Function119471: ; 119471 (46:5471)
+	push af
+	ld a, [hli]
+	ld [$c608], a
+	ld a, [hli]
+	ld [$c608 + 3], a
+	ld a, [hli]
+	ld [$c608 + 1], a
+	ld a, [hli]
+	ld [$c608 + 2], a
+	ld a, [hli]
+	ld [$c608 + 4], a
+	ld a, [hli]
+	ld [$c608 + 5], a ; $c608 + 5
+	push hl
+	ld a, [$c608]
+	cp $ff
+	jr z, .asm_1194a7
+	ld a, [$c608 + 2]
+	cp $ff
+	jr z, .asm_1194a7
+	ld a, [$c608 + 1]
+	cp $ff
+	jr nz, .asm_1194a7
+	call Function119584
+	jr c, .asm_11950c
+	jr .asm_1194f0
+.asm_1194a7
+	ld hl, $c608
+	ld de, $c608 + 3
+	ld c, $3
+.asm_1194af
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	jr c, .asm_1194f3
+	jr z, .asm_1194b9
+	jr nc, .asm_1194bc
+.asm_1194b9
+	dec c
+	jr nz, .asm_1194af
+.asm_1194bc
+	ld c, $3
+	ld hl, wcd49
+	ld de, $c608
+.asm_1194c4
+	ld a, [de]
+	inc de
+	cp $ff
+	jr z, .asm_1194d1
+	cp [hl]
+	jr z, .asm_1194d1
+	jr c, .asm_1194d5
+	jr nc, .asm_1194f0
+.asm_1194d1
+	inc hl
+	dec c
+	jr nz, .asm_1194c4
+.asm_1194d5
+	ld c, $3
+	ld hl, wcd49
+	ld de, $c608 + 3
+.asm_1194dd
+	ld a, [de]
+	inc de
+	cp $ff
+	jr z, .asm_1194ea
+	cp [hl]
+	jr c, .asm_1194f0
+	jr z, .asm_1194ea
+	jr nc, .asm_11950c
+.asm_1194ea
+	inc hl
+	dec c
+	jr nz, .asm_1194dd
+	jr .asm_11950c
+.asm_1194f0
+	pop hl
+	jr .asm_119557
+.asm_1194f3
+	ld c, $3
+	ld hl, wcd49
+	ld de, $c608
+.asm_1194fb
+	ld a, [de]
+	inc de
+	cp $ff
+	jr z, .asm_119508
+	cp [hl]
+	jr c, .asm_11950c
+	jr z, .asm_119508
+	jr nc, .asm_1194d5
+.asm_119508
+	inc hl
+	dec c
+	jr nz, .asm_1194fb
+.asm_11950c
+	pop hl
+	ld a, $1
+	ld [wcd50], a
+	ld a, l
+	ld [$c608], a
+	ld a, h
+	ld [$c608 + 1], a
+	ld de, wcd69
+	ld c, $10
+	ld b, $0
+.asm_119521
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	jr nz, .asm_119528
+	inc b
+.asm_119528
+	dec c
+	jr nz, .asm_119521
+	ld a, $10
+	cp b
+	jr z, .asm_119536
+rept 4
+	inc hl
+endr
+	jr .asm_11957a
+.asm_119536
+	ld a, [hli]
+	cp $50
+	jr nz, .asm_119552
+	ld a, [hli]
+	cp $33
+	jr nz, .asm_119553
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, [wcd83]
+	cp c
+	jr nz, .asm_119576
+	ld a, [wcd84]
+	cp b
+	jr nz, .asm_119576
+	jr .asm_11955b
+.asm_119552
+	inc hl
+.asm_119553
+	inc hl
+	inc hl
+	jr .asm_11955b
+.asm_119557
+	ld de, $14
+	add hl, de
+.asm_11955b
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	add hl, de
+	pop af
+	dec a
+	jp nz, Function119471
+	ld a, [wcd50]
+	and a
+	jr z, .asm_119571
+	ld a, $1a
+	ld [wcf66], a
+	ret
+.asm_119571
+	ld a, $d8
+	jp Function118805
+.asm_119576
+	ld a, $10
+	jr .asm_11957c
+.asm_11957a
+	ld a, $f
+.asm_11957c
+	ld [wcf66], a
+	pop af
+	call Function1195c4
+	ret
+
+Function119584: ; 119584 (46:5584)
+	ld a, [$c608]
+	ld b, a
+	ld a, [$c608 + 3]
+	ld c, a
+	cp b
+	jr c, .asm_11959c
+	ld a, [wcd49]
+	cp b
+	jr c, .asm_1195c2
+.asm_119595
+	cp c
+	jr c, .asm_1195a2
+	jr z, .asm_1195a2
+	jr .asm_1195c2
+.asm_11959c
+	ld a, [wcd49]
+	cp b
+	jr c, .asm_119595
+.asm_1195a2
+	ld a, [$c608 + 2]
+	ld b, a
+	ld a, [$c608 + 5] ; $c608 + 5
+	ld c, a
+	cp b
+	jr c, .asm_1195ba
+	ld a, [wcd4b]
+	cp b
+	jr c, .asm_1195c2
+.asm_1195b3
+	cp c
+	jr c, .asm_1195c0
+	jr z, .asm_1195c0
+	jr .asm_1195c2
+.asm_1195ba
+	ld a, [wcd4b]
+	cp b
+	jr c, .asm_1195b3
+.asm_1195c0
+	scf
+	ret
+.asm_1195c2
+	and a
+	ret
+
+Function1195c4: ; 1195c4 (46:55c4)
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld de, $a5
+	ld a, b
+	cp d
+	jr c, .asm_1195d9
+	jr z, .asm_1195d3
+	jr nc, .asm_1195f3
+.asm_1195d3
+	ld a, c
+	cp e
+	jr z, .asm_1195d9
+	jr nc, .asm_1195f3
+.asm_1195d9
+	ld de, wcc60
+	call CopyBytes
+	xor a
+	ld [de], a
+	ld a, [$c608]
+	ld l, a
+	ld a, [$c608 + 1]
+	ld h, a
+	ld de, wcd69
+	ld bc, $10
+	call CopyBytes
+	ret
+.asm_1195f3
+	ld a, $d8
+	jp Function118805
+
+Function1195f8: ; 1195f8 (46:55f8)
+	ld a, $11
+	ld [wcd3c], a
+	ld a, $1c
+	ld [wMobileInactivityTimerSeconds], a
+	ld a, $f
+	ld [wMobileInactivityTimerFrames], a
+	ld a, $14
+	ld [wcd47], a
+	call BattleTowerRoomMenu_IncrementJumptable
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119612: ; 119612 (46:5612)
+	ld a, $14
+	ld [wcd3c], a
+	ld a, $1c
+	ld [wMobileInactivityTimerSeconds], a
+	ld a, $10
+	ld [wMobileInactivityTimerFrames], a
+	ld a, $14
+	ld [wcd47], a
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119629: ; 119629 (46:5629)
+	call BattleTowerRoomMenu2
+	ret c
+	ld a, $60
+	ld l, a
+	ld a, $cc
+	ld h, a
+	call Function118e39
+	ld a, $9
+	ld [wcd3c], a
+	ld a, $1c
+	ld [wMobileInactivityTimerSeconds], a
+	ld a, $14
+	ld [wcd47], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+Function119648: ; 119648 (46:5648)
+	call BattleTowerRoomMenu2
+	ret c
+	call DelayFrame
+	ld a, $8
+	ld [wcd3c], a
+	call BattleTowerRoomMenu2
+	call Function118b24
+	ld de, w3_d000
+	ld bc, $1000
+	ld a, $2a
+	jp Function119e2b
+
+Function119665: ; 119665 (46:5665)
+	ld a, $1a
+	ld [wcd3c], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+Function11966d: ; 11966d (46:566d)
+	call BattleTowerRoomMenu2
+	ret c
+	ld a, [wcd47]
+	ld [wcf66], a
+	ld a, $a
+	ld [wc300], a
+	ret
+
+Function11967d: ; 11967d (46:567d)
+	ld a, $18
+	ld [wcd3c], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+Function119685: ; 119685 (46:5685)
+	call BattleTowerRoomMenu2
+	ret c
+	ld a, $14
+	ld [wcf66], a
+	ld a, $a
+	ld [wc300], a
+	ret
+
+Function119694: ; 119694 (46:5694)
+	ld b, 0
+	ld hl, Unknown_1196b8
+.asm_119699
+	ld de, $c708
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	jr nz, .asm_1196af
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	jr nz, .asm_1196b0
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	jr nz, .asm_1196b1
+	ret
+.asm_1196af
+	inc hl
+.asm_1196b0
+	inc hl
+.asm_1196b1
+	inc b
+	ld a, b
+	cp $7
+	jr nz, .asm_119699
+	ret
+; 1196b8 (46:56b8)
+
+Unknown_1196b8: ; 1196b8
+	db "Mon"
+	db "Tue"
+	db "Wed"
+	db "Thu"
+	db "Fri"
+	db "Sat"
+	db "Sun"
+; 1196cd
+
+SECTION "bank46_2", ROMX
+; A hack to use ascii above.
+
+Function1196cd: ; 1196cd (46:56cd)
+	ld de, $c719
+	call Function1196de
+	ld [wcd4a], a
+	inc de
+	call Function1196de
+	ld [wcd4b], a
+	ret
+
+Function1196de: ; 1196de (46:56de)
+	ld a, [de]
+	inc de
+	; b = ([de] - 48) * 2
+	; c = ([de] - 48) * 10
+	sub $30
+	sla a
+	ld b, a
+	sla a
+	sla a
+	add b
+	ld c, a
+	add hl, bc
+	ld a, [de]
+	inc de
+	sub $30
+	add c
+	ret
+; 1196f2 (46:56f2)
+
+Function1196f2: ; 1196f2
+	ld hl, wd002
+.asm_1196f5
+	call Function118b9a
+	ret nc
+	ld a, [hli]
+	cp $d
+	jr nz, .asm_1196f5
+	ld a, [hl]
+	cp $a
+	jr nz, .asm_1196f5
+	xor a
+	ld [hld], a
+	ld [hli], a
+	ld a, l
+	ld [wcd5b], a
+	ld a, h
+	ld [wcd5c], a
+	inc hl
+	ld e, l
+	ld d, h
+	ld a, [de]
+	inc de
+	cp $d
+	jr nz, .asm_119722
+	ld a, [de]
+	inc de
+	cp $a
+	jr nz, .asm_119722
+	ld a, $b
+	jp Function118805
+
+.asm_119722
+	call Random
+	ld c, $0
+	ld b, c
+.asm_119728
+	call Function119798
+	ld a, d
+	cp $ff
+	jr nz, .asm_119735
+	ld a, e
+	cp $ff
+	jr z, .asm_11974c
+
+.asm_119735
+	ld a, [hRandomSub]
+	cp d
+	jr c, .asm_11974c
+	jr z, .asm_11973e
+	jr .asm_119745
+
+.asm_11973e
+	ld a, [hRandomAdd]
+	cp e
+	jr c, .asm_11974c
+	jr z, .asm_11974c
+
+.asm_119745
+	inc bc
+	ld a, c
+	or b
+	jr z, .asm_119770
+	jr .asm_119728
+
+.asm_11974c
+	ld a, [wcd5b]
+	ld l, a
+	ld a, [wcd5c]
+	ld h, a
+.asm_119754
+	ld a, [hld]
+	cp $58
+	jr nz, .asm_119754
+	ld d, $0
+.asm_11975b
+	inc d
+	ld a, [hld]
+	cp $58
+	jr z, .asm_11975b
+	inc hl
+	inc hl
+	ld a, d
+	dec a
+	jr z, .asm_11978e
+	dec a
+	jr z, .asm_119785
+	dec a
+	jr z, .asm_11977e
+	dec a
+	jr z, .asm_119775
+
+.asm_119770
+	ld a, $d3
+	jp Function118805
+
+.asm_119775
+	ld a, b
+	and $f0
+	swap a
+	call Function1197bf
+	ld [hli], a
+
+.asm_11977e
+	ld a, b
+	and $f
+	call Function1197bf
+	ld [hli], a
+
+.asm_119785
+	ld a, c
+	and $f0
+	swap a
+	call Function1197bf
+	ld [hli], a
+
+.asm_11978e
+	ld a, c
+	and $f
+	call Function1197bf
+	ld [hli], a
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 119798
+
+Function119798: ; 119798
+	ld d, $0
+	ld e, d
+	call Function1197b4
+	swap a
+	or d
+	ld d, a
+	call Function1197b4
+	or d
+	ld d, a
+	call Function1197b4
+	swap a
+	or e
+	ld e, a
+	call Function1197b4
+	or e
+	ld e, a
+	ret
+; 1197b4
+
+Function1197b4: ; 1197b4
+	ld a, [hli]
+	cp $61
+	jr nc, .asm_1197bc
+	sub $30
+	ret
+
+.asm_1197bc
+	sub $57
+	ret
+; 1197bf
+
+Function1197bf: ; 1197bf
+	cp $a
+	jr nc, .asm_1197c6
+	add $30
+	ret
+
+.asm_1197c6
+	add $57
+	ret
+; 1197c9
+
+Function1197c9: ; 1197c9
+	ld hl, wd002
+	call Function118e39
+	ld a, $9
+	ld [wcd3c], a
+	ld a, $12
+	ld [wMobileInactivityTimerSeconds], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+Function1197dc:
+	call BattleTowerRoomMenu2
+	ret c
+	call DelayFrame
+	ld hl, wd002
+	ld de, wcc60
+	ld bc, $0080
+	call CopyBytes
+	dec de
+	xor a
+	ld [de], a
+	call Function118b24
+	ld de, w3_d000
+	ld bc, $1000
+	ld a, $2a
+	jp Function119e2b
+; 119800
+
+Function119800: ; 119800
+	ld a, $fd
+	ld [$c6d0], a
+	ld [wOTTrademonSpecies], a
+	ld a, [wcd81]
+	ld [wc74e], a
+	ld a, [wJumptableIndex]
+	push af
+	ld a, [wcf64]
+	push af
+	ld a, [wcf65]
+	push af
+	ld a, [wcf66]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	call FadeToMenu
+	callba Function10803d
+	call Function11a9ce
+	call RestartMapMusic
+	ld a, $3
+	ld [rSVBK], a
+	pop af
+	ld [wcf66], a
+	pop af
+	ld [wcf65], a
+	pop af
+	ld [wcf64], a
+	pop af
+	ld [wJumptableIndex], a
+	callba Function115dc3
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 11984e
+
+Function11984e: ; 11984e
+	ld a, [wcd80]
+	and a
+	jr nz, .asm_1198a0
+	ld a, [wcd38]
+	and a
+	jr nz, .asm_1198a8
+	callba Function170000
+	ld a, [wJumptableIndex]
+	push af
+	ld a, [wcf64]
+	push af
+	ld a, [wcf65]
+	push af
+	ld a, [wcf66]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	call FadeToMenu
+	callba MobileTradeAnimation_SendGivemonToGTS
+	call Function11a9ce
+	call RestartMapMusic
+	ld a, $3
+	ld [rSVBK], a
+	pop af
+	ld [wcf66], a
+	pop af
+	ld [wcf65], a
+	pop af
+	ld [wcf64], a
+	pop af
+	ld [wJumptableIndex], a
+	callba Function115dc3
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_1198a0
+	ld a, $a
+	ld [wc300], a
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_1198a8
+	callba Function17005a
+	ld a, [wJumptableIndex]
+	push af
+	ld a, [wcf64]
+	push af
+	ld a, [wcf65]
+	push af
+	ld a, [wcf66]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	call FadeToMenu
+	callba MobileTradeAnimation_RetrieveGivemonFromGTS
+	call Function11a9ce
+	call RestartMapMusic
+	ld a, $3
+	ld [rSVBK], a
+	pop af
+	ld [wcf66], a
+	pop af
+	ld [wcf65], a
+	pop af
+	ld [wcf64], a
+	pop af
+	ld [wJumptableIndex], a
+	callba Function115dc3
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 1198ee
+
+Function1198ee: ; 1198ee
+	ld hl, Text_RegisteringRecord
+	call BattleTowerRoomMenu_SetMessage
+	call BattleTowerRoomMenu_IncrementJumptable
+
+Function1198f7:
+	ld a, [$c31a]
+	and a
+	ret nz
+	ld hl, $c608 + 2
+	call Function119940
+	ld hl, w3_d800
+	ld a, $c608 % $100
+	ld [hli], a
+	ld a, $c608 / $100
+	ld [hli], a
+	ld a, $f6
+	ld [hli], a
+	xor a
+	ld [hli], a
+	ld a, $c708 % $100
+	ld [hli], a
+	ld a, $c708 / $100
+	ld [hli], a
+	ld a, [wcd51]
+	ld [hli], a
+	ld a, [wcd52]
+	ld [hli], a
+	call Function119eb4
+	call Function119ec2
+	ld a, $40
+	ld [wcd89], a
+	ld hl, w3_d800
+	ld de, $de00
+	ld bc, $0200
+	ld a, $2c
+	jp Function119e2b
+; 119937
+
+Function119937: ; 119937
+	callba Function1707f4
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 119940
+
+Function119940: ; 119940
+	ld de, wc3cd
+	ld c, $1e
+.asm_119945
+	ld a, [de]
+	inc de
+	ld [hli], a
+	dec c
+	jr z, .asm_119953
+	and a
+	jr nz, .asm_119945
+	xor a
+.asm_11994f
+	ld [hli], a
+	dec c
+	jr nz, .asm_11994f
+
+.asm_119953
+	ret
+; 119954
+
+Function119954: ; 119954
+	ld a, $1c
+	ld [wcd3c], a
+	call BattleTowerRoomMenu2
+	ld hl, $c608
+	ld de, wc3cd
+.asm_119962
+	ld a, [de]
+	inc de
+	ld [hli], a
+	and a
+	jr nz, .asm_119962
+	call Function119ec2
+	ld hl, $c608
+	ld a, $1e
+	jp Function119e2b
+; 119973
+
+Function119973: ; 119973
+	ld a, $1
+	ld [wcf64], a
+	xor a
+	ld [wcf65], a
+	ld [w3_d090], a
+	ld de, w3_d000
+	ld a, $20
+	jp Function119e2b
+; 119987
+
+Function119987: ; 119987
+	ld hl, w3_d000 + 1
+	ld a, [w3_d000]
+	or [hl]
+	jr z, .asm_1199a0
+	ld a, [wcf64]
+	ld l, a
+	ld a, [wcf65]
+	ld h, a
+	ld de, BGPals
+	ld a, $22
+	jp Function119e2b
+
+.asm_1199a0
+	ld a, [w3_d090]
+	and a
+	jr z, .asm_1199ae
+	ld a, $16
+	ld [wcf66], a
+	jp Function119b0d
+
+.asm_1199ae
+	ld a, $1b
+	ld [wcf66], a
+	ret
+; 1199b4
+
+Function1199b4: ; 1199b4
+	ld a, [wd000 + 130]
+	and a
+	jr nz, .asm_1199c7
+	ld a, [wd000 + 129]
+	cp $7
+	jr nc, .asm_1199c7
+	call BattleTowerRoomMenu_IncrementJumptable
+	jp Function1199ca
+
+.asm_1199c7
+	jp Function119ac9
+; 1199ca
+
+Function1199ca: ; 1199ca
+	ld a, $20
+	ld [wcd89], a
+	ld a, [wcf64]
+	ld l, a
+	ld a, [wcf65]
+	ld h, a
+	ld de, w3_d100
+	ld bc, $0700
+	ld a, $28
+	jp Function119e2b
+; 1199e2
+
+Function1199e2: ; 1199e2
+	ld c, $c
+	ld de, XGameCodePrefix
+	call Function119e4f
+	jp c, Function119ac9
+	ld a, c
+	cp $1
+	jp nz, Function119ac9
+	ld hl, w3_d880
+	ld bc, XGameCode
+.loop
+	ld a, [bc]
+	and a
+	jr z, .game_result_prefix
+	cp [hl]
+	jp nz, Function119ac9
+	inc bc
+	inc hl
+	jr .loop
+
+.game_result_prefix
+	ld c, $17
+	ld de, XGameResultPrefix
+	call Function119e4f
+	jp c, .asm_119aa7
+	ld a, c
+	cp $1
+	jp nz, .asm_119aa7
+	ld a, [w3_d880]
+	cp $31
+	jp nz, .asm_119aa7
+	ld a, [w3_d881]
+	cp $20
+	jp nz, .asm_119aa7
+	ld a, [w3_d88a]
+	cp $20
+	jp nz, .asm_119aa7
+	ld a, [w3_d894]
+	cp $20
+	jp nz, .asm_119aa7
+	xor a
+	ld [w3_d8a0], a
+	ld [w3_d8a1], a
+	ld [w3_d8a2], a
+	ld [w3_d8a3], a
+	ld hl, $d8a0
+	ld bc, $d889
+	call Function119e98
+	call Function119e98
+	ld hl, $d8a0
+	ld a, [wcd2d]
+	cp [hl]
+	jr nz, Function119ac9
+	inc hl
+	ld a, [wcd2c]
+	cp [hl]
+	jr nz, Function119ac9
+	inc hl
+	ld a, [wcd2b]
+	cp [hl]
+	jr nz, Function119ac9
+	inc hl
+	ld a, [wcd2a]
+	cp [hl]
+	jr nz, Function119ac9
+	xor a
+	ld [w3_d8a0], a
+	ld [w3_d8a1], a
+	ld [w3_d8a2], a
+	ld [w3_d8a3], a
+	ld hl, $d8a0
+	ld bc, $d88e
+	call Function119e98
+	ld bc, $d893
+	call Function119e98
+	ld hl, $d8a0
+	ld a, [wcd2f]
+	cp [hl]
+	jr nz, .asm_119aa7
+	inc hl
+	ld a, [wcd2e]
+	cp [hl]
+	jr nz, .asm_119aa7
+	inc hl
+	ld a, [wcd31]
+	cp [hl]
+	jr nz, .asm_119aa7
+	inc hl
+	ld a, [wcd30]
+	cp [hl]
+	jr z, .asm_119aaf
+
+.asm_119aa7
+	ld a, $25
+	ld [wcf66], a
+	jp Function119b45
+
+.asm_119aaf
+	ld a, [w3_d090]
+	and a
+	jr nz, .asm_119aa7
+	ld a, [w3_d895]
+	sub $30
+	ld [w3_d090], a
+	ld a, [wcf64]
+	ld [w3_d090 + 1], a
+	ld a, [wcf65]
+	ld [w3_d090 + 2], a
+
+Function119ac9:
+	ld a, [w3_d000]
+	ld l, a
+	ld a, [w3_d000 + 1]
+	ld h, a
+	dec hl
+	ld a, l
+	ld [w3_d000], a
+	ld a, h
+	ld [w3_d000 + 1], a
+	ld a, [wcf64]
+	ld l, a
+	ld a, [wcf65]
+	ld h, a
+	inc hl
+	ld a, l
+	ld [wcf64], a
+	ld a, h
+	ld [wcf65], a
+	ld a, $10
+	ld [wcf66], a
+	ret
+; 119af1
+
+XGameCode:
+INCBIN "data/mobile/x-game-code.txt"
+XGameResult:
+INCBIN "data/mobile/x-game-result.txt"
+; 119b0d
+
+Function119b0d: ; 119b0d
+	ld a, $8
+	ld [wcd3c], a
+	call BattleTowerRoomMenu2
+	ld a, [w3_d090]
+	cp $1
+	jr z, .asm_119b23
+	ld a, $19
+	ld [wcf66], a
+	jr Function119b3b
+
+.asm_119b23
+	ld a, $10
+	ld [wcd89], a
+	ld a, [w3_d090 + 1]
+	ld l, a
+	ld a, [w3_d090 + 2]
+	ld h, a
+	ld de, w3_d100
+	ld bc, $0700
+	ld a, $24
+	jp Function119e2b
+
+Function119b3b:
+	ld a, [w3_d090 + 1]
+	ld l, a
+	ld a, [w3_d090 + 2]
+	ld h, a
+	jr asm_119b4d
+
+Function119b45:
+	ld a, [wcf64]
+	ld l, a
+	ld a, [wcf65]
+	ld h, a
+
+asm_119b4d
+	ld a, $26
+	jp Function119e2b
+; 119b52
+
+Function119b52: ; 119b52
+	ld a, [w3_d090]
+	cp $1
+	jr nz, .asm_119b66
+	ld a, $5
+	call GetSRAMBank
+	ld a, $4
+	ld [$a800], a
+	call CloseSRAM
+
+.asm_119b66
+	ld a, $1c
+	jp Function119e2b
+; 119b6b
+
+Function119b6b: ; 119b6b
+	ld a, [w3_d090]
+	cp $1
+	jr z, .asm_119b75
+	jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_119b75
+	ld a, [w3_d100]
+	ld b, a
+	ld a, [w3_d100 + 1]
+	or b
+	jr z, .asm_119be3
+	ld hl, w3_d800
+	ld de, w3_d100 + 2
+.asm_119b85
+	ld a, [de]
+	inc de
+	cp $d
+	jr nz, .asm_119b85
+	inc de
+	ld a, [de]
+	cp $d
+	jr nz, .asm_119b85
+	inc de
+	inc de
+.asm_119b93
+	ld a, [de]
+	inc de
+	cp $d
+	jr z, .asm_119bfa
+	call Function119c3e
+	ret c
+	ld [hli], a
+	ld a, [de]
+	inc de
+	call Function119c3e
+	ret c
+	ld [hli], a
+	ld a, [de]
+	inc de
+	call Function119c3e
+	ret c
+	ld [hli], a
+	ld a, [de]
+	inc de
+	call Function119c3e
+	ret c
+	ld [hl], a
+	push de
+	ld d, [hl]
+	dec hl
+	ld c, [hl]
+	dec hl
+	ld b, [hl]
+	dec hl
+	ld a, [hl]
+	sla b
+	sla b
+	sla b
+	rla
+	sla b
+	rla
+	ld [hli], a
+	ld [hl], b
+	inc hl
+	rrc c
+	rrc c
+	ld [hl], c
+	dec hl
+	ld a, $f
+	and c
+	or [hl]
+	ld [hli], a
+	ld a, [hli]
+	and $c0
+	or [hl]
+	dec hl
+	ld [hld], a
+	dec hl
+	pop de
+	inc hl
+	inc hl
+	inc hl
+	ld a, h
+	cp $e0
+	jr c, .asm_119b93
+
+.asm_119be3
+	ld a, $19
+	ld [wcf66], a
+	ld a, $5
+	call GetSRAMBank
+	ld a, $1
+	ld [$a800], a
+	call CloseSRAM
+	xor a
+	ld [w3_d090], a
+	ret
+
+.asm_119bfa
+	inc de
+	ld a, [de]
+	cp $d
+	jr nz, .asm_119b93
+	ld a, l
+	cp (w3_d869) % $100
+	jr nz, .asm_119be3
+	ld a, h
+	cp (w3_d869) / $100
+	jr nz, .asm_119be3
+	ld a, $5
+	call GetSRAMBank
+	ld a, [wcf64]
+	ld [$b090], a
+	ld a, [wcf65]
+	ld [$b091], a
+	ld hl, w3_d800
+	ld de, $b023
+	ld bc, $0069
+	call CopyBytes
+	ld a, $3
+	ld [$a800], a
+	call CloseSRAM
+	ld hl, w3_d800
+	ld de, $c608
+	ld bc, $0069
+	call CopyBytes
+	jp BattleTowerRoomMenu_IncrementJumptable
+; 119c3e
+
+Function119c3e: ; 119c3e
+	cp $2b
+	jr c, .asm_119c68
+	jr z, .asm_119c80
+	cp $2f
+	jr c, .asm_119c68
+	jr z, .asm_119c84
+	cp $30
+	jr c, .asm_119c68
+	cp $3a
+	jr c, .asm_119c88
+	cp $3d
+	jr c, .asm_119c68
+	jr z, .asm_119c8c
+	cp $41
+	jr c, .asm_119c68
+	cp $5b
+	jr c, .asm_119c8f
+	cp $61
+	jr c, .asm_119c68
+	cp $7b
+	jr c, .asm_119c93
+
+.asm_119c68
+	ld a, $19
+	ld [wcf66], a
+	ld a, $5
+	call GetSRAMBank
+	ld a, $1
+	ld [$a800], a
+	call CloseSRAM
+	xor a
+	ld [w3_d090], a
+	scf
+	ret
+
+.asm_119c80
+	ld a, $3e
+	and a
+	ret
+
+.asm_119c84
+	ld a, $3f
+	and a
+	ret
+
+.asm_119c88
+	add $4
+	and a
+	ret
+
+.asm_119c8c
+	xor a
+	and a
+	ret
+
+.asm_119c8f
+	sub $41
+	and a
+	ret
+
+.asm_119c93
+	sub $47
+	and a
+	ret
+; 119c97
+
+BattleTowerRoomMenu_UberRestrictionMessage: ; 119c97
+	ld hl, Text_UberRestriction
+	call BattleTowerRoomMenu_SetMessage
+	call BattleTowerRoomMenu_IncrementJumptable
+	jr BattleTowerRoomMenu_WaitForMessage
+
+BattleTowerRoomMenu_PartyMonTopsThisLevelMessage:
+	ld hl, Text_PartyMonTopsThisLevel
+	call BattleTowerRoomMenu_SetMessage
+	call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_WaitForMessage:
+	ld a, [$c31a]
+	and a
+	ret nz
+	ld a, $80
+	ld [wcd50], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_DelayRestartMenu:
+    ; Loops while (--[wcd50] != 0),
+    ;   to create some sort of "delay" after the message is written on the screen,
+    ;   before starting the menu again.
+	ld hl, wcd50
+	dec [hl]
+	ret nz
+	ld a, $0
+	ld [wcf66], a
+	ret
+; 119cc3
+
+BattleTowerRoomMenu_QuitMessage: ; 119cc3
+	ld a, [wcd38]
+	and a
+	jr z, .asm_119cd1
+	dec a
+	jr z, .asm_119cd6
+	ld hl, Text_QuitReadingNews
+	jr .asm_119cd9
+
+.asm_119cd1
+	ld hl, Text_CancelBattleRoomChallenge
+	jr .asm_119cd9
+
+.asm_119cd6
+	ld hl, Text_ExitGymLeaderHonorRoll
+
+.asm_119cd9
+	call BattleTowerRoomMenu_SetMessage
+	call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_PlaceYesNoMenu:
+	ld a, [$c31a]
+	and a
+	ret nz
+	ld a, $f
+	ld [wcd3c], a
+	call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_UpdateYesNoMenu:
+	; Only ever called when [wcd3c] is $10
+	call BattleTowerRoomMenu2
+	ret c
+	ld a, [wMobileInactivityTimerFrames]
+	ld [wcf66], a
+	ret
+; 119cf7
+
+MenuDataHeader_119cf7: ; 119cf7
+	db $40 ; flags
+	db  7, 12 ; start coords
+	db 11, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 119cff
+
+MenuData_119cff: ; 119cff
+	db $40 ; flags
+	db  7, 15 ; start coords
+	db 11, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 119d07
+
+String_119d07:
+	db "   ▼@"
+
+Strings_L10ToL100: ; 119d0c
+	db " L:10 @@"
+	db " L:20 @@"
+	db " L:30 @@"
+	db " L:40 @@"
+	db " L:50 @@"
+	db " L:60 @@"
+	db " L:70 @@"
+	db " L:80 @@"
+	db " L:90 @@"
+	db " L:100@@"
+	db "CANCEL@@"
+
+Strings_Ll0ToL40: ; 119d64
+	db " L:10 @@"
+	db " L:20 @@"
+	db " L:30 @@"
+	db " L:40 @@"
+	db "CANCEL@@"
+
+String_119d8c:
+	db "CANCEL@"
+; 119d93
+
+BattleTower_LevelCheck: ; 119d93 (46:5d93)
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [wcd4f]
+	ld c, 10
+	call SimpleMultiply
+	ld hl, wcd50
+	ld [hl], a
+	ld bc, PARTYMON_STRUCT_LENGTH
+	ld de, PartyMon1Level
+	ld a, [PartyCount]
+.party_loop
+	push af
+	ld a, [de]
+	push hl
+	push de
+	pop hl
+	add hl, bc
+	push hl
+	pop de
+	pop hl
+	cp [hl]
+	jr z, .equal
+	jr nc, .exceeds
+.equal
+	pop af
+	dec a
+	jr nz, .party_loop
+	pop af
+	ld [rSVBK], a
+	and a
+	ret
+
+.exceeds
+	pop af
+	ld a, $4
+	ld [wcf66], a
+	pop af
+	ld [rSVBK], a
+	scf
+	ret
+
+BattleTower_UbersCheck: ; 119dd1 (46:5dd1)
+	ld a, [rSVBK]
+	push af
+	ld a, [wcd4f]
+	cp 70 / 10
+	jr nc, .level_70_or_more
+	ld a, $1
+	ld [rSVBK], a
+	ld hl, PartyMon1Level
+	ld bc, PARTYMON_STRUCT_LENGTH
+	ld de, PartySpecies
+	ld a, [PartyCount]
+.loop
+	push af
+	ld a, [de]
+	cp MEWTWO
+	jr z, .uber
+	cp MEW
+	jr z, .uber
+	cp LUGIA
+	jr c, .next
+	cp NUM_POKEMON + 1
+	jr nc, .next
+.uber
+	ld a, [hl]
+	cp 70
+	jr c, .uber_under_70
+.next
+	add hl, bc
+	inc de
+	pop af
+	dec a
+	jr nz, .loop
+.level_70_or_more
+	pop af
+	ld [rSVBK], a
+	and a
+	ret
+
+.uber_under_70
+	pop af
+	ld a, [de]
+	ld [wd265], a
+	call GetPokemonName
+	ld hl, StringBuffer1
+	ld de, wcd49
+	ld bc, PKMN_NAME_LENGTH
+	call CopyBytes
+	ld a, $a
+	ld [wcf66], a
+	pop af
+	ld [rSVBK], a
+	scf
+	ret
+; 119e2b (46:5e2b)
+
+Function119e2b: ; 119e2b (46:5e2b)
+	call Function3e32
+
+BattleTowerRoomMenu_IncrementJumptable: ; 119e2e (46:5e2e)
+	ld hl, wcf66
+	inc [hl]
+	ret
+; 119e33 (46:5e33)
+
+XGameCodePrefix: ; 119e33
+INCBIN "data/mobile/x-game-code-prefix.txt"
+XGameCodePrefixEnd:
+;119e40
+
+XGameResultPrefix: ; 119e40
+INCBIN "data/mobile/x-game-result-prefix.txt"
+XGameResultPrefixEnd:
+; 119e4f
+
+Function119e4f: ; 119e4f
+	push bc
+	ld hl, w3_d100
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+.loop
+	ld a, [de]
+	cp [hl]
+	jr z, .found_equality
+.next
+	inc hl
+	dec bc
+	ld a, b
+	or c
+	jr nz, .loop
+.return_carry
+	pop bc
+	scf
+	ret
+
+.found_equality
+	push de
+.loop2
+	ld a, [de]
+	inc de
+	cp "\n"
+	jr z, .newline
+	cp [hl]
+	jr nz, .unequal
+	inc hl
+	dec bc
+	ld a, b
+	or c
+	jr nz, .loop2
+	pop de
+	jr .return_carry
+
+.unequal
+	pop de
+	jr .next
+
+.newline
+	pop de
+	pop bc
+	inc hl
+	ld de, w3_d880
+.loop3
+	ld a, [hli]
+	ld [de], a
+	inc de
+	cp $d
+	jr z, .finish
+	dec c
+	jr nz, .loop3
+	scf
+	ret
+
+.finish
+	and a
+	ret
+; 119e8e
+
+Function119e8e: ; 119e8e
+	cp $60
+	jr c, .less_than_0x60
+	sub $57
+	ret
+
+.less_than_0x60
+	sub $30
+	ret
+; 119e98
+
+Function119e98: ; 119e98
+	ld a, $2
+.loop
+	push af
+	ld a, [bc]
+	dec bc
+	call Function119e8e
+	or [hl]
+	ld [hl], a
+	ld a, [bc]
+	dec bc
+	call Function119e8e
+	rlca
+	rlca
+	rlca
+	rlca
+	or [hl]
+	ld [hl], a
+	inc hl
+	pop af
+	dec a
+	and a
+	jr nz, .loop
+	ret
+; 119eb4
+
+Function119eb4: ; 119eb4 (46:5eb4)
+	xor a
+	ld [wc3cc], a
+	ld de, wc3ac
+.loop
+	ld a, [de]
+	inc de
+	ld [hli], a
+	and a
+	jr nz, .loop
+	ret
+
+Function119ec2: ; 119ec2 (46:5ec2)
+	ld a, BANK(sMobileLoginPassword)
+	call GetSRAMBank
+	xor a
+	ld [sMobileLoginPassword + MOBILE_LOGIN_PASSWORD_LENGTH], a
+	ld de, sMobileLoginPassword + 1
+.loop
+	ld a, [de]
+	inc de
+	ld [hli], a
+	and a
+	jr nz, .loop
+	call CloseSRAM
+	ret
+
+BattleTowerRoomMenu2: ; 119ed8 (46:5ed8)
+	ld a, [rSVBK]
+	ld [wcd8c], a
+	ld a, $1
+	ld [rSVBK], a
+
+	call .RunJumptable
+
+	ld a, [wcd8c]
+	ld [rSVBK], a
+	ld a, $1
+	ld [hBGMapMode], a
+	ret
+
+.RunJumptable:
+	jumptable .Jumptable, wcd3c
+
+.Jumptable:
+	dw Function119f3f
+	dw Function119f45
+	dw Function119f56
+	dw Function119f76
+	dw Function119f98
+	dw Function11a113
+	dw Function11a129
+	dw Function11a131
+	dw Function11a13d
+	dw Function11a14b
+	dw Function11a16d
+	dw Function11a192
+	dw Function11a2e6
+	dw Function11a302
+	dw Function11a33a
+	dw BattleTowerRoomMenu2_PlaceYesNoMenu
+	dw BattleTowerRoomMenu2_UpdateYesNoMenu
+	dw Function11a357
+	dw Function11a36b
+	dw Function11a38d
+	dw Function11a3c5
+	dw Function11a3d9
+	dw Function11a3f9
+	dw Function11a41b
+	dw Function11a452
+	dw Function11a47a
+	dw Function11a488
+	dw Function11a49e
+	dw Function11a4db
+	dw Function11a4e8
+	dw Function11a4fe
+	dw Function11a466
+	dw Function11a47a
+; 119f3f
+
+Function119f3f: ; 119f3f
+	call Function11a5b9
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f45
+
+Function119f45: ; 119f45
+	hlcoord 4, 2
+	ld de, String_11a661
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f56
+
+Function119f56: ; 119f56
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_119f62
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_119f62
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6aa
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f76
+
+Function119f76: ; 119f76
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_119f82
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_119f82
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a679
+	call PlaceString
+	call Function11a5f5
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f98
+
+Function119f98: ; 119f98
+	call Function11a536
+	ret c
+	call PlayClickSFX
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .asm_119fef
+	call ExitMenu
+	call Function11a63c
+	xor a
+	ld [ScriptVar], a
+	call Function11a00e
+	ld a, [ScriptVar]
+	and a
+	jr z, .asm_119fd4
+	call ExitMenu
+	callba ReloadMapPart
+	callba Function115dc3
+	ld a, [wcd33]
+	ld [wcf66], a
+	ld a, $a
+	ld [wc300], a
+	scf
+	ret
+
+.asm_119fd4
+	hlcoord 4, 2
+	ld de, String_11a692
+	call PlaceString
+	ld a, $1
+	ld [wc30d], a
+	ld a, $1
+	ld [wc314], a
+	callba ReloadMapPart
+	and a
+	ret
+
+.asm_119fef
+	call ExitMenu
+	call ExitMenu
+	callba ReloadMapPart
+	ld a, [wMobileInactivityTimerSeconds]
+	ld [wcf66], a
+	callba Function115dc3
+	ld a, $a
+	ld [wc300], a
+	scf
+	ret
+; 11a00e
+
+Function11a00e: ; 11a00e
+	ld a, BANK(sMobileLoginPassword)
+	call GetSRAMBank
+	ld a, [sMobileLoginPassword]
+	and a
+	jr z, .asm_11a02a
+	ld a, [sMobileLoginPassword + 1]
+	call CloseSRAM
+	and a
+	ret nz
+	ld a, BANK(sMobileLoginPassword)
+	call GetSRAMBank
+	xor a
+	ld [sMobileLoginPassword], a
+
+.asm_11a02a
+	call CloseSRAM
+	ld a, [BGMapPalBuffer]
+	and a
+	jr z, .asm_11a039
+	dec a
+	jr z, .asm_11a081
+	jp Function11a0ca
+
+.asm_11a039
+	ld a, $3
+	ld [rSVBK], a
+	ld hl, $c608
+	ld de, w3_d800
+	ld bc, $00f6
+	call CopyBytes
+	ld a, $1
+	ld [rSVBK], a
+	call FadeToMenu
+	callba Function11765d
+	call Function11a9ce
+	ld a, $3
+	ld [rSVBK], a
+	ld hl, w3_d800
+	ld de, $c608
+	ld bc, $00f6
+	call CopyBytes
+	ld a, $1
+	ld [rSVBK], a
+	callba Function115d99
+	ld c, $0
+	callba Function115e18
+	ld a, $1
+	ld [wc305], a
+	ret
+
+.asm_11a081
+	xor a
+	ld [wMenuBorderLeftCoord], a
+	ld [wMenuBorderTopCoord], a
+	ld a, $13
+	ld [wMenuBorderRightCoord], a
+	ld a, $5
+	ld [wMenuBorderBottomCoord], a
+	call PushWindow
+	callba Function11765d
+	callba Function117ab4
+	callba MobileFunc_106462
+	callba Function106464
+	call ExitMenu
+	callba ReloadMapPart
+	callba Function115d99
+	ld c, $0
+	callba Function115e18
+	ld a, $1
+	ld [wc305], a
+	ret
+; 11a0ca
+
+Function11a0ca: ; 11a0ca
+	xor a
+	ld [wMenuBorderLeftCoord], a
+	ld [wMenuBorderTopCoord], a
+	ld a, $13
+	ld [wMenuBorderRightCoord], a
+	ld a, $11
+	ld [wMenuBorderBottomCoord], a
+	call PushWindow
+	callba Function11765d
+	callba Function17d3f6
+	callba MobileFunc_106462
+	callba Function106464
+	call ExitMenu
+	callba ReloadMapPart
+	callba Function115d99
+	ld c, $0
+	callba Function115e18
+	ld a, $1
+	ld [wc305], a
+	ret
+; 11a113
+
+Function11a113: ; 11a113
+	call Function11a63c
+	ld c, $1
+	callba Function115e18
+	hlcoord 4, 2
+	ld de, String_11a6c8
+	call PlaceString
+	and a
+	ret
+; 11a129
+
+Function11a129: ; 11a129
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a131
+
+Function11a131: ; 11a131
+	ld hl, wMobileInactivityTimerMinutes
+	dec [hl]
+	ret nz
+	ld a, [wcd3c]
+	inc a
+	ld [wcd3c], a
+
+Function11a13d:
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6d2
+	call PlaceString
+	and a
+	ret
+; 11a14b
+
+Function11a14b: ; 11a14b
+	ld hl, wcd85
+	ld a, [hl]
+	cp $f3
+	jr nz, .asm_11a155
+	and a
+	ret
+
+.asm_11a155
+	call Function11a1d6
+	ret c
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6f1
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a16d
+
+Function11a16d: ; 11a16d
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a179
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_11a179
+	call Function11a63c
+	call Function11a1e6
+	hlcoord 4, 2
+	ld de, $c346
+	call PlaceString
+	call Function11a5f5
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a192
+
+Function11a192: ; 11a192
+	call Function11a536
+	ret c
+	call PlayClickSFX
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .asm_11a1b6
+	call ExitMenu
+	callba ReloadMapPart
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6d2
+	call PlaceString
+	and a
+	ret
+
+.asm_11a1b6
+	call ExitMenu
+	callba ReloadMapPart
+	ld a, [wMobileInactivityTimerSeconds]
+	ld [wcf66], a
+	ld [wcd80], a
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6d2
+	call PlaceString
+	scf
+	ret
+; 11a1d6
+
+Function11a1d6: ; 11a1d6
+	ld a, [wcd85]
+	cp $50
+	jr nz, .asm_11a1e4
+	ld a, $d3
+	call Function118805
+	scf
+	ret
+
+.asm_11a1e4
+	and a
+	ret
+; 11a1e6
+
+Function11a1e6: ; 11a1e6
+	ld hl, String_11a706
+	ld de, $c346
+	call Function11a1ff
+	ld hl, wcd85
+	call Function11a1ff
+	ld hl, String_11a70b
+	call Function11a1ff
+	ld a, $50
+	ld [de], a
+	ret
+; 11a1ff
+
+Function11a1ff: ; 11a1ff
+.asm_11a1ff
+	ld a, [hli]
+	cp $50
+	ret z
+	ld [de], a
+	inc de
+	jr .asm_11a1ff
+; 11a207
+
+BattleTowerRoomMenu2_PlaceYesNoMenu: ; 11a207
+	ld hl, MenuDataHeader_11a2de
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	call ApplyTilemap
+	hlcoord 16, 8
+	ld de, String_11a2cf
+	call PlaceString
+	hlcoord 16, 10
+	ld de, String_11a2d3
+	call PlaceString
+	hlcoord 15, 8
+	ld a, $ed
+	ld [hl], a
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a235
+
+BattleTowerRoomMenu2_UpdateYesNoMenu: ; 11a235
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and A_BUTTON
+	jr nz, .a_button
+	ld a, [hl]
+	and B_BUTTON
+	jr nz, .b_button
+	ld a, [hl]
+	and D_UP
+	jr nz, .d_up
+	ld a, [hl]
+	and D_DOWN
+	jr nz, .d_down
+.asm_11a24c
+	call Function11a9f0
+	scf
+	ret
+
+.d_up
+	xor a
+	ld [wcd8a], a
+	ld [wcd8b], a
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a24c
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	hlcoord 15, 8
+	ld a, $ed
+	ld [hl], a
+	hlcoord 15, 10
+	ld a, $7f
+	ld [hl], a
+	jr .asm_11a24c
+
+.d_down
+	xor a
+	ld [wcd8a], a
+	ld [wcd8b], a
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .asm_11a24c
+	inc a
+	ld [wMobileInactivityTimerMinutes], a
+	hlcoord 15, 8
+	ld a, $7f
+	ld [hl], a
+	hlcoord 15, 10
+	ld a, $ed
+	ld [hl], a
+	jr .asm_11a24c
+
+.a_button
+	xor a
+	ld [wcd8a], a
+	ld [wcd8b], a
+	call PlayClickSFX
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .exit_no_carry
+	call ExitMenu
+	callba ReloadMapPart
+	ld a, [wMobileInactivityTimerFrames]
+	cp $0
+	jr z, .asm_11a2b4
+	ld a, [wcd47]
+	jr .exit_carry
+
+.asm_11a2b4
+	ld a, [wcd33]
+
+.exit_carry
+	ld [wcf66], a
+	ld a, $a
+	ld [wc300], a
+	scf
+	ret
+
+.b_button
+	call PlayClickSFX
+
+.exit_no_carry
+	call ExitMenu
+	callba ReloadMapPart
+	and a
+	ret
+; 11a2cf
+
+String_11a2cf: ; 11a2cf
+	db "YES@"
+; 11a2d3
+
+String_11a2d3: ; 11a2d3
+	db "NO@"
+; 11a2d6
+
+MenuDataHeader_11a2d6: ; 11a2d6
+	db $40 ; flags
+	db  6, 14 ; start coords
+	db 10, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 11a2de
+
+MenuDataHeader_11a2de: ; 11a2de
+	db $40 ; flags
+	db  7, 14 ; start coords
+	db 11, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 11a2e6
+
+Function11a2e6: ; 11a2e6
+	call Function11a63c
+	ld c, $2
+	callba Function115e18
+	hlcoord 4, 2
+	ld de, String_11a71e
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a302
+
+Function11a302: ; 11a302
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a30e
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_11a30e
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a72a
+	call PlaceString
+	hlcoord 9, 4
+	ld de, wcd68
+	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+	call PrintNum
+	hlcoord 14, 4
+	ld de, wcd67
+	lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+	call PrintNum
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a33a
+
+Function11a33a: ; 11a33a
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a346
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_11a346
+	call ExitMenu
+	callba ReloadMapPart
+	callba Function115dc3
+	and a
+	ret
+; 11a357
+
+Function11a357: ; 11a357
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a743
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a36b
+
+Function11a36b: ; 11a36b
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a377
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_11a377
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a755
+	call PlaceString
+	call Function11a5f5
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a38d
+
+Function11a38d: ; 11a38d
+	call Function11a536
+	ret c
+	call PlayClickSFX
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .asm_11a3b1
+	call ExitMenu
+	callba ReloadMapPart
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6d2
+	call PlaceString
+	and a
+	ret
+
+.asm_11a3b1
+	call ExitMenu
+	callba ReloadMapPart
+	ld a, [wMobileInactivityTimerSeconds]
+	ld [wcf66], a
+	ld [wcd80], a
+	scf
+	ret
+; 11a3c5
+
+Function11a3c5: ; 11a3c5
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a762
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a3d9
+
+Function11a3d9: ; 11a3d9
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a3e5
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_11a3e5
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a779
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a3f9
+
+Function11a3f9: ; 11a3f9
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a405
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_11a405
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a755
+	call PlaceString
+	call Function11a5f5
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a41b
+
+Function11a41b: ; 11a41b
+	call Function11a536
+	ret c
+	call PlayClickSFX
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .asm_11a43f
+	call ExitMenu
+	callba ReloadMapPart
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6d2
+	call PlaceString
+	and a
+	ret
+
+.asm_11a43f
+	call ExitMenu
+	callba ReloadMapPart
+	ld a, $1c
+	ld [wcf66], a
+	ld [wcd80], a
+	scf
+	ret
+; 11a452
+
+Function11a452: ; 11a452
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a791
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a466
+
+Function11a466: ; 11a466
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a7c1
+	call PlaceString
+	ld a, $80
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a47a
+
+Function11a47a: ; 11a47a
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a486
+	dec a
+	ld [wMobileInactivityTimerMinutes], a
+	scf
+	ret
+
+.asm_11a486
+	and a
+	ret
+; 11a488
+
+Function11a488: ; 11a488
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a7ac
+	call PlaceString
+	call Function11a5f5
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a49e
+
+Function11a49e: ; 11a49e
+	call Function11a536
+	ret c
+	call PlayClickSFX
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .asm_11a4c7
+	call ExitMenu
+	callba ReloadMapPart
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6d2
+	call PlaceString
+	ld a, $14
+	ld [wcf66], a
+	and a
+	ret
+
+.asm_11a4c7
+	call ExitMenu
+	callba ReloadMapPart
+	ld a, [wMobileInactivityTimerFrames]
+	ld [wcf66], a
+	ld [wcd80], a
+	scf
+	ret
+; 11a4db
+
+Function11a4db: ; 11a4db
+	call Function11a63c
+	ld de, String_11a6db
+	hlcoord 4, 2
+	call PlaceString
+	ret
+; 11a4e8
+
+Function11a4e8: ; 11a4e8
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a7d7
+	call PlaceString
+	call Function11a5f5
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a4fe
+
+Function11a4fe: ; 11a4fe
+	call Function11a536
+	ret c
+	call PlayClickSFX
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .asm_11a522
+	call ExitMenu
+	callba ReloadMapPart
+	call Function11a63c
+	hlcoord 4, 2
+	ld de, String_11a6d2
+	call PlaceString
+	and a
+	ret
+
+.asm_11a522
+	call ExitMenu
+	callba ReloadMapPart
+	ld a, [wMobileInactivityTimerSeconds]
+	ld [wcf66], a
+	ld [wcd80], a
+	scf
+	ret
+; 11a536
+
+Function11a536: ; 11a536
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and $1
+	jr nz, .asm_11a5a7
+	ld a, [hl]
+	and $2
+	jr nz, .asm_11a5a2
+	ld a, [hl]
+	and $40
+	jr nz, .asm_11a564
+	ld a, [hl]
+	and $80
+	jr nz, .asm_11a583
+.asm_11a54d
+	ld a, [wcd3c]
+	cp $4
+	jr z, .asm_11a562
+	call Function11a9f0
+	jr nz, .asm_11a562
+	call ExitMenu
+	callba ReloadMapPart
+
+.asm_11a562
+	scf
+	ret
+
+.asm_11a564
+	xor a
+	ld [wcd8a], a
+	ld [wcd8b], a
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr z, .asm_11a54d
+	xor a
+	ld [wMobileInactivityTimerMinutes], a
+	hlcoord 15, 7
+	ld a, $ed
+	ld [hl], a
+	hlcoord 15, 9
+	ld a, $7f
+	ld [hl], a
+	jr .asm_11a54d
+
+.asm_11a583
+	xor a
+	ld [wcd8a], a
+	ld [wcd8b], a
+	ld a, [wMobileInactivityTimerMinutes]
+	and a
+	jr nz, .asm_11a54d
+	inc a
+	ld [wMobileInactivityTimerMinutes], a
+	hlcoord 15, 7
+	ld a, $7f
+	ld [hl], a
+	hlcoord 15, 9
+	ld a, $ed
+	ld [hl], a
+	jr .asm_11a54d
+
+.asm_11a5a2
+	ld a, $1
+	ld [wMobileInactivityTimerMinutes], a
+
+.asm_11a5a7
+	xor a
+	ld [wcd8a], a
+	ld [wcd8b], a
+	and a
+	ret
+; 11a5b0
+
+BattleTowerRoomMenu2_IncrementJumptable: ; 11a5b0
+	ld a, [wcd3c]
+	inc a
+	ld [wcd3c], a
+	scf
+	ret
+; 11a5b9
+
+Function11a5b9: ; 11a5b9
+	xor a
+	ld [wMenuBorderLeftCoord], a
+	ld [wMenuBorderTopCoord], a
+	ld a, $13
+	ld [wMenuBorderRightCoord], a
+	ld a, $5
+	ld [wMenuBorderBottomCoord], a
+	call PushWindow
+	hlcoord 0, 0, AttrMap
+	ld b, $6
+	ld c, $14
+	hlcoord 0, 0
+	ld b, $4
+	ld c, $12
+	call Function3eea
+	callba ReloadMapPart
+	call UpdateSprites
+	ld c, $0
+	callba Function115e18
+	ld a, $1
+	ld [wc305], a
+	ret
+; 11a5f5
+
+Function11a5f5: ; 11a5f5
+	ld a, $e
+	ld [wMenuBorderLeftCoord], a
+	ld a, $13
+	ld [wMenuBorderRightCoord], a
+	ld a, $6
+	ld [wMenuBorderTopCoord], a
+	ld a, $a
+	ld [wMenuBorderBottomCoord], a
+	call PushWindow
+	hlcoord 14, 6, AttrMap
+	ld b, $5
+	ld c, $6
+	hlcoord 14, 6
+	ld b, $3
+	ld c, $4
+	call Function3eea
+	hlcoord 16, 7
+	ld de, String_11a2cf
+	call PlaceString
+	hlcoord 16, 9
+	ld de, String_11a2d3
+	call PlaceString
+	hlcoord 15, 7
+	ld a, $ed
+	ld [hl], a
+	callba ReloadMapPart
+	ret
+; 11a63c
+
+Function11a63c: ; 11a63c
+	hlcoord 4, 1
+	ld de, String_11a7f4
+	call PlaceString
+	hlcoord 4, 2
+	ld de, String_11a7f4
+	call PlaceString
+	hlcoord 4, 3
+	ld de, String_11a7f4
+	call PlaceString
+	hlcoord 4, 4
+	ld de, String_11a7f4
+	call PlaceString
+	ret
+; 11a661
+
+String_11a661: ; 11a661
+	db   "これから モバイルセンターに"
+	next "でんわ", $1f, "かけます@"
+; 11a679
+
+String_11a679: ; 11a679
+	db   "モバイルアダプタ", $25, "じゅんびは"
+	next "できて いますか?@"
+; 11a692
+
+String_11a692: ; 11a692
+	db   "でんわ", $1f, "かけています"
+	next "しばらく おまちください@"
+; 11a6aa
+
+String_11a6aa: ; 11a6aa
+	db   "でんわをかけると つうわりょう"
+	next "せつぞくりょう", $4a, "かかります@"
+; 11a6c8
+
+String_11a6c8: ; 11a6c8
+	db   "せつぞく しました@"
+; 11a6d2
+
+String_11a6d2: ; 11a6d2
+	db   "つうしん ちゅう@"
+; 11a6db
+
+String_11a6db: ; 11a6db
+	db   "つうしん ちゅう"
+	next "セレクト エーでちゅうし@"
+; 11a6f1
+
+String_11a6f1: ; 11a6f1
+	db   "この サービスには"
+	next "つうわりょう", $25, "ほかに@"
+; 11a706
+
+String_11a706: ; 11a706
+	db   "おかね", $4a, "@"
+; 11a70b
+
+String_11a70b: ; 11a70b
+	db   "えん"
+	next "かかります よろしい ですか?@"
+; 11a71e
+
+String_11a71e: ; 11a71e
+	db   "つうしん しゅうりょう@"
+; 11a72a
+
+String_11a72a: ; 11a72a
+	db   "つないだ じかん"
+	next "  やく   ふん   びょう@"
+; 11a743
+
+String_11a743: ; 11a743
+	db   "もっていない データが"
+	next "あります!@"
+; 11a755
+
+String_11a755: ; 11a755
+	db   "データ", $1f, "よみこみますか?@"
+; 11a762
+
+String_11a762: ; 11a762
+	db   "おなじ データ", $1f, "よみこんだ"
+	next "こと", $4a, "ありますが@"
+; 11a779
+
+String_11a779: ; 11a779
+	db   "そのデータ", $24, "なくなっているか"
+	next "こわれて います@"
+; 11a791
+
+String_11a791: ; 11a791
+	db   "もっている データと"
+	next "おなじデータしか ありません!@"
+; 11a7ac
+
+String_11a7ac: ; 11a7ac
+	db   "データ", $25, "よみこみを"
+	next "ちゅうし しますか?@"
+; 11a7c1
+
+String_11a7c1: ; 11a7c1 ; new news?
+	db   "あたらしい ニュースは"
+	next "ありません でした@"
+; 11a7d7
+
+String_11a7d7: ; 11a7d7
+	db   "あたらしいニュース", $4a, "あります"
+	next "ニュース", $1f, "よみこみますか?@"
+; 11a7f4
+
+String_11a7f4: ; 11a7f4
+	db   "               @"
+; 11a804
+
+MenuDataHeader_11a804: ; 11a804
+	db $40 ; flags
+	db  0,  0 ; start coords
+	db  5, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 11a80c
+
+Function11a80c: ; 11a80c
+	ld de, hDivisor
+	ld bc, hDividend
+	ld hl, Unknown_11a89a
+	call Function11a88c
+	ld bc, hQuotient
+	ld hl, Unknown_11a8ba
+	call Function11a88c
+	ld bc, hPrintNum3
+	ld hl, Unknown_11a8da
+	call Function11a88c
+	xor a
+	ld b, a
+	ld a, [hDivisor]
+	and $f
+	ld e, a
+	ld a, [hPrintNum7]
+	and $f
+	call Function11a884
+	ld e, a
+	ld a, [hPrintNum9]
+	and $f
+	call Function11a884
+	ld [wcd62], a
+	ld e, b
+	xor a
+	ld b, a
+	ld a, [hDivisor]
+	and $f0
+	swap a
+	call Function11a884
+	ld e, a
+	ld a, [hPrintNum7]
+	and $f0
+	swap a
+	call Function11a884
+	ld e, a
+	ld a, [hPrintNum9]
+	and $f0
+	swap a
+	call Function11a884
+	ld [wcd63], a
+	ld e, b
+	xor a
+	ld b, a
+	ld a, [hMathBuffer]
+	and $f
+	call Function11a884
+	ld e, a
+	ld a, [hPrintNum8]
+	and $f
+	call Function11a884
+	ld e, a
+	ld a, [hPrintNum10]
+	and $f
+	call Function11a884
+	ld [wcd64], a
+	ret
+; 11a884
+
+Function11a884: ; 11a884
+	add e
+	cp $a
+	ret c
+	sub $a
+	inc b
+	ret
+; 11a88c
+
+Function11a88c: ; 11a88c
+	ld a, [bc]
+	sla a
+	ld c, a
+	xor a
+	ld b, a
+	add hl, bc
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hl]
+	ld [de], a
+	inc de
+	ret
+; 11a89a
+
+Unknown_11a89a: ; 11a89a
+x = 0
+rept 16
+	bcd x % 100, x / 100
+x = x + 1
+endr
+
+Unknown_11a8ba: ; 11a8ba
+x = 0
+rept 16
+	bcd x % 100, x / 100
+x = x + 16
+endr
+
+Unknown_11a8da: ; 11a8da
+x = 0
+rept 16
+	bcd x % 100, x / 100
+x = x + 256
+endr
+; 11a8fa
+
+BattleTowerRoomMenu_WriteMessage: ; 11a8fa
+	jumptable .Jumptable, $c31a
+; 11a909
+
+.Jumptable: ; 11a909
+	dw BattleTowerRoomMenu_WriteMessage_DoNothing
+	dw Function11a90f
+	dw Function11a971
+; 11a90f
+
+Function11a90f: ; 11a90f
+	ld a, $1
+	ld [rSVBK], a
+	call SpeechTextBox
+	ld a, $50
+	ld hl, $c320
+	ld bc, $008c
+	call ByteFill
+	ld a, [$c31b]
+	ld l, a
+	ld a, [$c31c]
+	ld h, a
+	ld de, $c320
+.asm_11a92c
+	ld a, [hli]
+	cp $57
+	jr z, .asm_11a94f
+	cp $0
+	jr z, .asm_11a92c
+	cp $50
+	jr z, .asm_11a92c
+	cp $1
+	jr z, .asm_11a941
+	ld [de], a
+	inc de
+	jr .asm_11a92c
+
+.asm_11a941
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+.asm_11a945
+	ld a, [bc]
+	inc bc
+	cp $50
+	jr z, .asm_11a92c
+	ld [de], a
+	inc de
+	jr .asm_11a945
+
+.asm_11a94f
+	xor a
+	ld [$c31f], a
+	ld a, $c320 % $100
+	ld [$c31b], a
+	ld a, $c320 / $100
+	ld [$c31c], a
+	hlcoord 1, 14
+	ld a, l
+	ld [$c31d], a
+	ld a, h
+	ld [$c31e], a
+	ld hl, $c31a
+	inc [hl]
+	ld a, $3
+	ld [rSVBK], a
+
+BattleTowerRoomMenu_WriteMessage_DoNothing:
+	ret
+; 11a971
+
+Function11a971: ; 11a971
+	ld hl, $c31f
+	ld a, [hJoyDown]
+	and a
+	jr nz, .asm_11a97f
+	ld a, [hl]
+	and a
+	jr z, .asm_11a97f
+	dec [hl]
+	ret
+
+.asm_11a97f
+	ld a, [Options]
+	and $7
+	ld [hl], a
+	ld hl, wcd8d
+	ld a, [$c31b]
+	ld e, a
+	ld a, [$c31c]
+	ld d, a
+	ld a, [de]
+	inc de
+	ld [hli], a
+	ld a, e
+	ld [$c31b], a
+	ld a, d
+	ld [$c31c], a
+	ld a, $50
+	ld [hl], a
+	ld a, [$c31d]
+	ld l, a
+	ld a, [$c31e]
+	ld h, a
+	ld de, wcd8d
+	call PlaceString
+	ld a, c
+	ld [$c31d], a
+	ld a, b
+	ld [$c31e], a
+	ld a, [wcd8d]
+	cp $50
+	jr nz, .asm_11a9bf
+	xor a
+	ld [$c31a], a
+
+.asm_11a9bf
+	ret
+; 11a9c0
+
+BattleTowerRoomMenu_SetMessage: ; 11a9c0
+	ld a, l
+	ld [$c31b], a
+	ld a, h
+	ld [$c31c], a
+	ld a, $1
+	ld [$c31a], a
+	ret
+; 11a9ce
+
+Function11a9ce: ; 11a9ce
+	call ClearBGPalettes
+	call ReloadTilesetAndPalettes
+	call Call_ExitMenu
+	callba MobileFunc_106462
+	callba Function106464
+	call ret_d90
+	callba FinishExitMenu
+	call UpdateSprites
+	ret
+; 11a9f0
+
+Function11a9f0: ; 11a9f0
+	ld a, $1
+	and a
+	ret
+; 11a9f4
+
+Function11a9f4: ; 11a9f4
+	ld a, [wcd8a]
+	ld l, a
+	ld a, [wcd8b]
+	ld h, a
+	inc hl
+	ld a, l
+	ld [wcd8a], a
+	ld a, h
+	ld [wcd8b], a
+	ld de, $d5d0
+	add hl, de
+	bit 7, h
+	ret nz
+	ld a, $d6
+	call Function118805
+	and a
+	ret
+; 11aa13
+
+Text_SaveFileWillBeSent: ; 0x11aa13
+	text "SAVE FILE will be"
+	line "sent."
+	done
+; 0x11aa2c
+
+Text_SentSaveFileReadingNews: ; 0x11aa2c
+	text "Sent SAVE FILE."
+	line "Reading NEWS…"
+	done
+; 0x11aa4b
+
+Text_ReadingNews: ; 0x11aa4b
+	text "Reading NEWS…"
+	done
+; 0x11aa5a
+
+Text_ReceivedNews: ; 0x11aa5a
+	text "Received NEWS!"
+	done
+; 0x11aa6a
+
+Text_QuitReadingNews: ; 0x11aa6a
+	text "Quit reading NEWS?"
+	done
+; 0x11aa7e
+
+Text_CanceledSendingSaveFile: ; 0x11aa7e
+	text "Canceled sending"
+	line "SAVE FILE."
+	done
+; 0x11aa9b
+
+Text_ReceivedOddEgg: ; 0x11aa9b
+	text "ODD EGG"
+	line "was received!"
+	done
+; 0x11aab2
+
+Text_RegisteringRecord: ; 0x11aab2
+	text "Registering your"
+	line "record…"
+	done
+; 0x11aacc
+
+Text_BattleRoomVisitLimit: ; 0x11aacc
+	text "One visit per day"
+	line "per BATTLE ROOM!"
+	done
+; 0x11aaf0
+
+Text_PartyMonTopsThisLevel: ; 0x11aaf0
+	text "A party #MON"
+	line "tops this level."
+	done
+; 0x11ab0f
+
+Text_UberRestriction: ; 0x11ab0f
+	text_from_ram wcd49
+	text " may go"
+	line "only to BATTLE"
+
+	para "ROOMS that are"
+	line "Lv.70 or higher."
+	done
+; 0x11ab4a
+
+Text_CancelBattleRoomChallenge: ; 0x11ab4a
+	text "Cancel your BATTLE"
+	line "ROOM challenge?"
+	done
+; 0x11ab6e
+
+Text_ExitGymLeaderHonorRoll: ; 0x11ab6e
+	text "Exit GYM LEADER"
+	line "HONOR ROLL?"
+	done
+; 0x11ab8b
+
+Text_LinkingWithCenter: ; 0x11ab8b
+	text "Linking with the"
+	line "CENTER…"
+	done
+; 0x11aba5
+
+Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5
+	text "What level do you"
+	line "want to challenge?"
+	done
+; 0x11abcb
+
+Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb
+	text "Check BATTLE ROOM"
+	line "list by max level?"
+	done
+; 0x11abf1
+
+Text_EnterWhichBattleRoom: ; 0x11abf1
+	text "Enter which"
+	line "BATTLE ROOM?"
+	done
+; 0x11ac0b
+
+Text_WhichBattleRoom: ; 0x11ac0b
+	text "Which BATTLE ROOM?"
+	done
+; 0x11ac1f
+
+Text_ThisBattleRoomPleaseWait: ; 0x11ac1f
+	text_from_ram StringBuffer3
+	text "'s ROOM"
+	line "@"
+	text_from_ram StringBuffer4
+	text "?"
+	cont "Please wait…"
+	done
+; 0x11ac3e
+
+Function11ac3e: ; 11ac3e
+	call SpeechTextBox
+	call FadeToMenu
+	callab ClearSpriteAnims2
+	call Function11ac51
+	call CloseSubmenu
+	ret
+; 11ac51
+
+Function11ac51: ; 11ac51
+	xor a
+	ld [hBGMapMode], a
+	ld hl, Options
+	ld a, [hl]
+	push af
+	set 4, [hl]
+	ld a, [VramState]
+	push af
+	xor a
+	ld [VramState], a
+	ld a, [hInMenu]
+	push af
+	ld a, $1
+	ld [hInMenu], a
+	xor a
+	ld [hMapAnims], a
+	ld [wcd49], a
+	ld [wcd4a], a
+	ld [wcd4c], a
+	ld [wcd4d], a
+	ld [wcd4e], a
+	call Function11ad1b
+	call DelayFrame
+.loop
+	call JoyTextDelay
+	ld a, [wJumptableIndex]
+	bit 7, a
+	jr nz, .asm_11aca8
+	call Function11b314
+	call Function11acb7
+	call Function11ad6e
+	ld a, 30 * 4
+	ld [wCurrSpriteOAMAddr], a
+	callba DoNextFrameForAllSprites
+	callba ReloadMapPart
+	jr .loop
+
+.asm_11aca8
+	call ClearSprites
+	pop af
+	ld [hInMenu], a
+	pop af
+	ld [VramState], a
+	pop af
+	ld [Options], a
+	ret
+; 11acb7
+
+Function11acb7: ; 11acb7
+	ld hl, TilemapPack_11ba44
+	ld a, [wcd49]
+	ld c, a
+	ld b, $0
+	sla c
+	rl b
+	sla c
+	rl b
+	sla c
+	rl b
+	add hl, bc
+	decoord 6, 6
+	ld a, [hli]
+	ld [de], a
+	decoord 0, 7
+	ld bc, 7
+	call CopyBytes
+	ld a, [wcd49]
+	inc a
+	ld [wcd49], a
+	ld a, [hl]
+	cp $ff
+	jr nz, .get_the_other
+	xor a
+	ld [wcd49], a
+.get_the_other
+	ld hl, TilemapPack_11bb7d
+	ld a, [wcd4a]
+	ld c, a
+	ld b, $0
+	sla c
+	rl b
+	sla c
+	rl b
+	sla c
+	rl b
+	add hl, bc
+	decoord 3, 9
+	ld bc, 7
+	call CopyBytes
+	ld a, [wcd4a]
+	inc a
+	ld [wcd4a], a
+	inc hl
+	ld a, [hl]
+	cp $ff
+	ret nz
+	xor a
+	ld [wcd4a], a
+	ret
+; 11ad1b
+
+Function11ad1b: ; 11ad1b
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearTileMap
+	callba Function17c000
+	ld a, [wMenuCursorY]
+	ld [wcd82], a
+	dec a
+	ld [hObjectStructIndexBuffer], a
+	ld a, $10
+	ld [wCurIconTile], a
+	ld hl, LoadMenuMonIcon
+	ld a, BANK(LoadMenuMonIcon)
+	ld e, $4
+	rst FarCall
+	ld hl, LoadMenuMonIcon
+	ld a, BANK(LoadMenuMonIcon)
+	ld e, $5
+	rst FarCall
+	ld hl, $c6d0
+	ld bc, $0115
+	xor a
+	call ByteFill
+	xor a
+	ld [wJumptableIndex], a
+	ld [wcf64], a
+	ld [wcf65], a
+	ld [wcf66], a
+	ld [wcd30], a
+	ld a, $2
+	ld [wc7d4], a
+	callba Pokedex_OrderMonsByMode
+	ret
+; 11ad6e
+
+Function11ad6e: ; 11ad6e
+	ld a, [wJumptableIndex]
+	ld hl, Jumptable_11ad78
+	call Function11b239
+	jp hl
+; 11ad78
+
+Jumptable_11ad78: ; 11ad78
+	dw Function11b082
+	dw Function11b0ff
+	dw Function11ad95
+	dw Function11adc4
+	dw Function11ae4e
+	dw Function11ae98
+	dw Function11ad8f
+	dw Function11af04
+	dw Function11af4e
+; 11ad8a
+
+Function11ad8a: ; 11ad8a
+	ld hl, wJumptableIndex
+	inc [hl]
+	ret
+; 11ad8f
+
+Function11ad8f: ; 11ad8f
+	ld hl, wJumptableIndex
+	set 7, [hl]
+	ret
+; 11ad95
+
+Function11ad95: ; 11ad95
+	ld hl, MenuDataHeader_11ae38
+	call LoadMenuDataHeader
+	call MenuBox
+	hlcoord 12, 12
+	ld de, String_11ae40
+	call PlaceString
+	hlcoord 10, 10, AttrMap
+	lb bc, 8, 8
+	call Function11afd6
+	callba ReloadMapPart
+	call Function11ad8a
+	ld a, $1
+	ld [wMenuCursorY], a
+	ld hl, Unknown_11afcc
+	call Function11afb7
+
+Function11adc4:
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and a
+	ret z
+	ld a, [hl]
+	and $40
+	jr nz, .asm_11ade6
+	ld a, [hl]
+	and $80
+	jr nz, .asm_11aded
+	ld a, [hl]
+	and $1
+	jr nz, .asm_11ae06
+	ld a, [hl]
+	and $2
+	ret z
+	call PlayClickSFX
+	xor a
+	ld [wJumptableIndex], a
+	jr .asm_11ae2e
+
+.asm_11ade6
+	ld a, [wMenuCursorY]
+	dec a
+	ret z
+	jr .asm_11adf4
+
+.asm_11aded
+	ld a, [wMenuCursorY]
+	inc a
+	cp $4
+	ret z
+
+.asm_11adf4
+	push af
+	ld hl, Unknown_11afcc
+	call Function11afbb
+	pop af
+	ld [wMenuCursorY], a
+	ld hl, Unknown_11afcc
+	call Function11afb7
+	ret
+
+.asm_11ae06
+	call PlayClickSFX
+	ld a, [wMenuCursorY]
+	dec a
+	ld hl, wcd30
+	ld [hl], a
+	and a
+	jr z, .asm_11ae28
+	hlcoord 2, 14
+	ld a, [wMenuCursorY]
+	cp $2
+	jr z, .asm_11ae23
+	call Function11b272
+	jr .asm_11ae2b
+
+.asm_11ae23
+	call Function11b267
+	jr .asm_11ae2b
+
+.asm_11ae28
+	ld a, $3
+	ld [hl], a
+
+.asm_11ae2b
+	call Function11ad8a
+
+.asm_11ae2e
+	call ExitMenu
+	callba ReloadMapPart
+	ret
+; 11ae38
+
+MenuDataHeader_11ae38: ; 11ae38
+	db $40 ; flags
+	db 10, 10 ; start coords
+	db 17, 17 ; end coords
+	dw NULL
+	db 0 ; default option
+; 11ae40
+
+String_11ae40: ; 11ae40
+	db   "どちらでも"
+	next "♂ォス"
+	next "♀メス"
+	db   "@"
+; 11ae4e
+
+Function11ae4e: ; 11ae4e
+	ld hl, MenuDataHeader_11afe8
+	call LoadMenuDataHeader
+	call MenuBox
+	hlcoord 10, 14
+	ld de, String_11aff0
+	call PlaceString
+	ld hl, MenuDataHeader_11b013
+	call LoadMenuDataHeader
+	call MenuBox
+	hlcoord 16, 8
+	ld de, String_11b01b
+	call PlaceString
+	hlcoord 14, 7, AttrMap
+	lb bc, 5, 6
+	call Function11afd6
+	hlcoord 9, 12, AttrMap
+	lb bc, 6, 11
+	call Function11afd6
+	callba ReloadMapPart
+	call Function11ad8a
+	ld a, $1
+	ld [wMenuCursorY], a
+	ld hl, Unknown_11afd2
+	call Function11afb7
+
+Function11ae98:
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and a
+	ret z
+	ld a, [hl]
+	and D_UP
+	jr nz, .asm_11aec1
+	ld a, [hl]
+	and D_DOWN
+	jr nz, .asm_11aec8
+	ld a, [hl]
+	and A_BUTTON
+	jr nz, .asm_11aee1
+	ld a, [hl]
+	and B_BUTTON
+	ret z
+	call PlayClickSFX
+.asm_11aeb4
+	hlcoord 2, 14
+	ld a, $7f
+	ld [hl], a
+	ld a, $1
+	ld [wJumptableIndex], a
+	jr .asm_11aef7
+
+.asm_11aec1
+	ld a, [wMenuCursorY]
+	dec a
+	ret z
+	jr .asm_11aecf
+
+.asm_11aec8
+	ld a, [wMenuCursorY]
+	inc a
+	cp $3
+	ret z
+
+.asm_11aecf
+	push af
+	ld hl, Unknown_11afd2
+	call Function11afbb
+	pop af
+	ld [wMenuCursorY], a
+	ld hl, Unknown_11afd2
+	call Function11afb7
+	ret
+
+.asm_11aee1
+	call PlayClickSFX
+	ld a, [wMenuCursorY]
+	cp $2
+	jr z, .asm_11aeb4
+	ld a, [wcd4b]
+	ld [ScriptVar], a
+	call Function11b022
+	call Function11ad8a
+
+.asm_11aef7
+	call ExitMenu
+	call ExitMenu
+	callba ReloadMapPart
+	ret
+; 11af04
+
+Function11af04: ; 11af04
+	ld hl, MenuDataHeader_11afe8
+	call LoadMenuDataHeader
+	call MenuBox
+	hlcoord 10, 14
+	ld de, String_11b003
+	call PlaceString
+	ld hl, MenuDataHeader_11b013
+	call LoadMenuDataHeader
+	call MenuBox
+	hlcoord 16, 8
+	ld de, String_11b01b
+	call PlaceString
+	hlcoord 14, 7, AttrMap
+	lb bc, 5, 6
+	call Function11afd6
+	hlcoord 9, 12, AttrMap
+	lb bc, 6, 11
+	call Function11afd6
+	callba ReloadMapPart
+	call Function11ad8a
+	ld a, $2
+	ld [wMenuCursorY], a
+	ld hl, Unknown_11afd2
+	call Function11afb7
+
+Function11af4e:
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and a
+	ret z
+	ld a, [hl]
+	and D_UP
+	jr nz, .asm_11af77
+	ld a, [hl]
+	and D_DOWN
+	jr nz, .asm_11af7e
+	ld a, [hl]
+	and A_BUTTON
+	jr nz, .asm_11af97
+	ld a, [hl]
+	and B_BUTTON
+	ret z
+	call PlayClickSFX
+.asm_11af6a
+	hlcoord 2, 14
+	ld a, $7f
+	ld [hl], a
+	ld a, $1
+	ld [wJumptableIndex], a
+	jr .asm_11afaa
+
+.asm_11af77
+	ld a, [wMenuCursorY]
+	dec a
+	ret z
+	jr .asm_11af85
+
+.asm_11af7e
+	ld a, [wMenuCursorY]
+	inc a
+	cp $3
+	ret z
+
+.asm_11af85
+	push af
+	ld hl, Unknown_11afd2
+	call Function11afbb
+	pop af
+	ld [wMenuCursorY], a
+	ld hl, Unknown_11afd2
+	call Function11afb7
+	ret
+
+.asm_11af97
+	call PlayClickSFX
+	ld a, [wMenuCursorY]
+	cp $2
+	jr z, .asm_11af6a
+	ld a, $6
+	ld [wJumptableIndex], a
+	xor a
+	ld [ScriptVar], a
+
+.asm_11afaa
+	call ExitMenu
+	call ExitMenu
+	callba ReloadMapPart
+	ret
+; 11afb7
+
+Function11afb7: ; 11afb7
+	ld e, $ed
+	jr asm_11afbd
+
+Function11afbb:
+	ld e, $7f
+
+asm_11afbd:
+	ld a, [wMenuCursorY]
+	dec a
+	ld c, a
+	ld b, 0
+	add hl, bc
+	add hl, bc
+	ld a, e
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	ld [de], a
+	ret
+; 11afcc
+
+Unknown_11afcc:
+	dwcoord 11, 12
+	dwcoord 11, 14
+	dwcoord 11, 16
+
+Unknown_11afd2:
+	dwcoord 15,  8
+	dwcoord 15, 10
+; 11afd6
+
+Function11afd6: ; 11afd6
+	ld de, SCREEN_WIDTH
+	ld a, $3
+.row
+	push bc
+	push hl
+.col
+	ld [hli], a
+	dec c
+	jr nz, .col
+	pop hl
+	add hl, de
+	pop bc
+	dec b
+	jr nz, .row
+	ret
+; 11afe8
+
+MenuDataHeader_11afe8: ; 11afe8
+	db $40 ; flags
+	db 12,  9 ; start coords
+	db 17, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 11aff0
+
+String_11aff0: ; 11aff0
+	db   "この じょうけんで"
+	next "よろしいですか?@"
+; 11b003
+
+String_11b003: ; 11b003
+	db   "こうかんを"
+	next "ちゅうししますか?@"
+; 11b013
+
+MenuDataHeader_11b013: ; 11b013
+	db $40 ; flags
+	db  7, 14 ; start coords
+	db 11, 19 ; end coords
+	dw NULL
+	db 1 ; default option
+; 11b01b
+
+String_11b01b:
+	db   "はい"
+	next "いいえ@"
+; 11b022
+
+Function11b022: ; 11b022
+	ld a, [wcd2e]
+	and a
+	jr z, .asm_11b02e
+	ld hl, StringBuffer3
+	call Function11b03d
+
+.asm_11b02e
+	ld a, [wcd30]
+	and a
+	ret z
+	cp $3
+	ret z
+	ld hl, StringBuffer4
+	call Function11b03d
+	ret
+; 11b03d
+
+Function11b03d: ; 11b03d
+	push hl
+	push af
+	ld c, $1
+.loop
+	ld a, [hli]
+	cp "♂"
+	jr z, .gender
+	cp "♀"
+	jr z, .gender
+	cp "@"
+	jr z, .done
+	inc c
+	jr .loop
+
+.gender
+	dec hl
+	ld a, "@"
+	ld [hli], a
+
+.done
+	dec hl
+	push hl
+	ld e, 4
+	ld d, 0
+	add hl, de
+	ld e, l
+	ld d, h
+	pop hl
+.loop2
+	ld a, [hld]
+	ld [de], a
+	dec de
+	dec c
+	jr nz, .loop2
+	pop af
+	pop de
+	cp $1
+	jr nz, .female
+	ld hl, .MaleString
+	jr .got_string
+
+.female
+	ld hl, .FemaleString
+
+.got_string
+	ld bc, 4 ; string length
+	call CopyBytes
+	ret
+; 11b07a
+
+.MaleString: db "ォスの "
+.FemaleString: db "メスの "
+
+Function11b082: ; 11b082
+	call Function11b242
+	ld a, $7
+	ld [wc7d3], a
+	call Function11b099
+	call Function11b295
+	call Function11b275
+	call SetPalettes
+	jp Function11ad8a
+; 11b099
+
+Function11b099: ; 11b099
+	ld c, $6
+	hlcoord 11, 1
+	ld a, [wc7d3]
+	add a
+	ld b, a
+	xor a
+	call Function11b236
+	ld a, [wc7d0]
+	ld e, a
+	ld d, $0
+	ld hl, wc6d0
+	add hl, de
+	ld e, l
+	ld d, h
+	hlcoord 11, 2
+	ld a, [wc7d3]
+.loop
+	push af
+	ld a, [de]
+	ld [wd265], a
+	push de
+	push hl
+	call .PlaceMonNameOrPlaceholderString
+	pop hl
+	ld de, 2 * SCREEN_WIDTH
+	add hl, de
+	pop de
+	inc de
+	pop af
+	dec a
+	jr nz, .loop
+	ret
+; 11b0cf
+
+.PlaceMonNameOrPlaceholderString: ; 11b0cf
+	and a
+	ret z
+
+	call .CheckSeenFlag
+	ret c
+
+	call .SetCaughtFlag
+	push hl
+	call GetPokemonName
+	pop hl
+	call PlaceString
+	ret
+; 11b0e1
+
+.SetCaughtFlag: ; 11b0e1
+	call CheckCaughtMemMon
+	jr nz, .okay
+	inc hl
+	ret
+
+.okay
+	ld a, $1
+	ld [hli], a
+	ret
+; 11b0ec
+
+.CheckSeenFlag: ; 11b0ec
+	call CheckSeenMemMon
+	ret nz
+
+	inc hl
+	ld de, .EmptySlot
+	call PlaceString
+	scf
+	ret
+; 11b0f9
+
+.EmptySlot: ; 11b0f9
+	db "ーーーーー@"
+; 11b0ff
+
+Function11b0ff: ; 11b0ff
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and $2
+	jr nz, .asm_11b141
+	ld a, [hl]
+	and $1
+	jr nz, .asm_11b131
+	call Function11b175
+	jr nc, .asm_11b125
+	ld a, [wcd4c]
+	inc a
+	and $3
+	ld [wcd4c], a
+	xor a
+	ld [hBGMapMode], a
+	call Function11b099
+	ld a, $1
+	ld [hBGMapMode], a
+	ret
+
+.asm_11b125
+	ld a, [wcd4c]
+	and a
+	ret z
+	inc a
+	and $3
+	ld [wcd4c], a
+	ret
+
+.asm_11b131
+	call Function11b20b
+	call CheckSeenMemMon
+	jr z, .asm_11b13d
+	ld a, $1
+	jr .asm_11b148
+
+.asm_11b13d
+	ld a, $2
+	jr .asm_11b148
+
+.asm_11b141
+	ld hl, wJumptableIndex
+	ld a, $7
+	ld [hl], a
+	ret
+
+.asm_11b148
+	call PlayClickSFX
+	ld [wcd4b], a
+	and a
+	jr z, .asm_11b16c
+	ld a, [wcf65]
+	cp $0
+	jr z, .asm_11b163
+	cp $fe
+	jr z, .asm_11b167
+	cp $ff
+	jr z, .asm_11b16b
+	jp Function11ad8a
+
+.asm_11b163
+	ld a, $1
+	jr .asm_11b16c
+
+.asm_11b167
+	ld a, $2
+	jr .asm_11b16c
+
+.asm_11b16b
+	xor a
+
+.asm_11b16c
+	ld [wcd30], a
+	ld a, $4
+	ld [wJumptableIndex], a
+	ret
+; 11b175
+
+Function11b175: ; 11b175
+	ld a, [wc7d3]
+	ld d, a
+	ld a, [wc7d2]
+	ld e, a
+	ld hl, hJoyLast
+	ld a, [hl]
+	and $40
+	jr nz, .asm_11b19a
+	ld a, [hl]
+	and $80
+	jr nz, .asm_11b1ae
+	ld a, d
+	cp e
+	jr nc, .asm_11b1ed
+	ld a, [hl]
+	and $20
+	jr nz, .asm_11b1c6
+	ld a, [hl]
+	and $10
+	jr nz, .asm_11b1d8
+	jr .asm_11b1ed
+
+.asm_11b19a
+	ld hl, wc7d1
+	ld a, [hl]
+	and a
+	jr z, .asm_11b1a4
+	dec [hl]
+	jr .asm_11b1ef
+
+.asm_11b1a4
+	ld hl, wc7d0
+	ld a, [hl]
+	and a
+	jr z, .asm_11b1ed
+	dec [hl]
+	jr .asm_11b1ef
+
+.asm_11b1ae
+	ld hl, wc7d1
+	ld a, [hl]
+	inc a
+	cp e
+	jr nc, .asm_11b1ed
+	cp d
+	jr nc, .asm_11b1bc
+	inc [hl]
+	jr .asm_11b1ef
+
+.asm_11b1bc
+	ld hl, wc7d0
+	add [hl]
+	cp e
+	jr nc, .asm_11b1ed
+	inc [hl]
+	jr .asm_11b1ef
+
+.asm_11b1c6
+	ld hl, wc7d0
+	ld a, [hl]
+	and a
+	jr z, .asm_11b1ed
+	cp d
+	jr nc, .asm_11b1d4
+	xor a
+	ld [hl], a
+	jr .asm_11b1ef
+
+.asm_11b1d4
+	sub d
+	ld [hl], a
+	jr .asm_11b1ef
+
+.asm_11b1d8
+	ld hl, wc7d0
+	ld a, d
+	add a
+	add [hl]
+	jr c, .asm_11b1e3
+	cp e
+	jr c, .asm_11b1e8
+
+.asm_11b1e3
+	ld a, e
+	sub d
+	ld [hl], a
+	jr .asm_11b1ef
+
+.asm_11b1e8
+	ld a, [hl]
+	add d
+	ld [hl], a
+	jr .asm_11b1ef
+
+.asm_11b1ed
+	and a
+	ret
+
+.asm_11b1ef
+	call Function11b295
+	call Function11b275
+	scf
+	ret
+; 11b1f7
+
+Function11b1f7: ; 11b1f7
+	hlcoord 0, 0
+	ld a, $32
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	ret
+; 11b203
+
+Function11b203: ; 11b203
+.asm_11b203
+	ld a, [de]
+	cp $ff
+	ret z
+	inc de
+	ld [hli], a
+	jr .asm_11b203
+; 11b20b
+
+Function11b20b: ; 11b20b
+	ld a, [wc7d1]
+	ld hl, wc7d0
+	add [hl]
+	ld e, a
+	ld d, $0
+	ld hl, $c6d0
+	add hl, de
+	ld a, [hl]
+	ld [wd265], a
+	ret
+; 11b21e
+
+CheckCaughtMemMon: ; 11b21e
+	push de
+	push hl
+	ld a, [wd265]
+	dec a
+	call CheckCaughtMon
+	pop hl
+	pop de
+	ret
+; 11b22a
+
+CheckSeenMemMon: ; 11b22a
+	push de
+	push hl
+	ld a, [wd265]
+	dec a
+	call CheckSeenMon
+	pop hl
+	pop de
+	ret
+; 11b236
+
+Function11b236: ; 11b236
+	jp FillBoxWithByte
+; 11b239
+
+Function11b239: ; 11b239
+	ld e, a
+	ld d, 0
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	ret
+; 11b242
+
+Function11b242: ; 11b242
+	hlcoord 3, 4
+	ld de, StringBuffer3
+	call PlaceString
+	xor a
+	ld [MonType], a
+	callba GetGender
+	hlcoord 1, 4
+	ld a, [CurPartySpecies]
+	ld bc, wcd2f
+	ld [bc], a
+	dec bc
+	jr c, asm_11b26a
+	jr z, asm_11b26f
+	ld a, $1
+	ld [bc], a
+
+Function11b267:
+	ld [hl], $ef
+	ret
+
+asm_11b26a
+	xor a
+	ld [bc], a
+	ld [hl], $7f
+	ret
+
+asm_11b26f
+	ld a, $2
+	ld [bc], a
+
+Function11b272:
+	ld [hl], $f5
+	ret
+; 11b275
+
+Function11b275: ; 11b275
+	call Function11b279
+	ret
+; 11b279
+
+Function11b279: ; 11b279
+	ld a, [wd265]
+	ld [CurSpecies], a
+	call CheckSeenMemMon
+	jr z, .asm_11b28f
+	call GetBaseData
+	ld a, [BaseGender]
+	ld [wcf65], a
+	jr .asm_11b294
+
+.asm_11b28f
+	ld a, $ff
+	ld [wcf65], a
+
+.asm_11b294
+	ret
+; 11b295
+
+Function11b295: ; 11b295
+	hlcoord 4, 13
+	ld de, String_11b308
+	call PlaceString
+	hlcoord 4, 14
+	ld de, String_11b308
+	call PlaceString
+	call Function11b20b
+	call CheckSeenMemMon
+	jr z, .asm_11b2d1
+	ld a, [$c608]
+	ld c, a
+	ld a, [$c608 + 1]
+	ld b, a
+	ld hl, $0007
+	add hl, bc
+	xor a
+	ld [hl], a
+	ld hl, $0003
+	add hl, bc
+	ld e, [hl]
+	callba FlyFunction_GetMonIcon
+	hlcoord 4, 14
+	push hl
+	call GetPokemonName
+	jr .asm_11b2e7
+
+.asm_11b2d1
+	ld a, [$c608]
+	ld c, a
+	ld a, [$c608 + 1]
+	ld b, a
+	ld hl, $0007
+	add hl, bc
+	ld a, $50
+	ld [hl], a
+	hlcoord 4, 13
+	push hl
+	ld de, String_11b30e
+
+.asm_11b2e7
+	ld a, $6
+	ld bc, StringBuffer4
+.asm_11b2ec
+	push af
+	ld a, [de]
+	ld [bc], a
+	inc de
+	inc bc
+	pop af
+	dec a
+	and a
+	jr nz, .asm_11b2ec
+	pop hl
+	ld de, StringBuffer4
+	call PlaceString
+	ret
+; 11b2fe
+
+String_11b2fe: ; 11b2fe
+	db "あげる#@"
+; 11b303
+
+String_11b303: ; 11b303
+	db "ほしい#@"
+; 11b308
+
+String_11b308: ; 11b308
+	db "     @"
+; 11b30e
+
+String_11b30e: ; 11b30e
+	db "みはっけん@"
+; 11b314
+
+Function11b314: ; 11b314
+	call Function11b31b
+	call Function11b3d9
+	ret
+; 11b31b
+
+Function11b31b: ; 11b31b
+	ld hl, .Coords
+	ld a, [wJumptableIndex]
+	cp 2
+	jr c, .tilemap_1
+	ld a, [wc7d1]
+	cp 4
+	jr nc, .tilemap_3
+	cp 3
+	jr c, .tilemap_1
+	ld a, [wJumptableIndex]
+	cp 2
+	jr z, .tilemap_1
+	cp 3
+	jr z, .tilemap_1
+	cp 6
+	jr z, .tilemap_1
+
+	ld bc, .Tilemap2
+	jr .load_sprites
+
+.tilemap_3
+	ld bc, .Tilemap3
+	jr .load_sprites
+
+.tilemap_1
+	ld bc, .Tilemap1
+
+.load_sprites
+	call Function11b397
+	ret
+; 11b350
+
+.Coords:
+	dbpixel 3, 11, 2, 6 ;  0
+	dbpixel 3, 12, 2, 6 ;  1
+	dbpixel 3, 13, 2, 6 ;  2
+	dbpixel 3, 14, 2, 6 ;  3
+	dbpixel 3, 15, 2, 6 ;  4
+	dbpixel 3, 16, 2, 6 ;  5
+	dbpixel 3, 17, 2, 6 ;  6
+	dbpixel 4, 11, 2, 6 ;  7
+	dbpixel 4, 12, 2, 6 ;  8
+	dbpixel 4, 13, 2, 6 ;  9
+	dbpixel 4, 14, 2, 6 ; 10
+	dbpixel 4, 15, 2, 6 ; 11
+	dbpixel 4, 16, 2, 6 ; 12
+	dbpixel 4, 17, 2, 6 ; 13
+	db -1
+
+.Tilemap1: ; vtiles
+	db $30 ;  0
+	db $31 ;  1
+	db $31 ;  2
+	db $31 ;  3
+	db $31 ;  4
+	db $31 ;  5
+	db $32 ;  6
+	db $40 ;  7
+	db $41 ;  8
+	db $41 ;  9
+	db $41 ; 10
+	db $41 ; 11
+	db $41 ; 12
+	db $42 ; 13
+
+.Tilemap2: ; vtiles
+	db $30 ;  0
+	db $31 ;  1
+	db $31 ;  2
+	db $39 ;  3
+	db $39 ;  4
+	db $39 ;  5
+	db $39 ;  6
+	db $40 ;  7
+	db $41 ;  8
+	db $41 ;  9
+	db $39 ; 10
+	db $39 ; 11
+	db $39 ; 12
+	db $39 ; 13
+
+.Tilemap3: ; vtiles
+	db $39 ;  0
+	db $39 ;  1
+	db $39 ;  2
+	db $39 ;  3
+	db $39 ;  4
+	db $39 ;  5
+	db $39 ;  6
+	db $39 ;  7
+	db $39 ;  8
+	db $39 ;  9
+	db $39 ; 10
+	db $39 ; 11
+	db $39 ; 12
+	db $39 ; 13
+
+Function11b397: ; 11b397
+	ld de, Sprites
+.loop
+	ld a, [hl]
+	cp $ff
+	ret z
+	ld a, [wc7d1]
+	and $7
+	swap a
+	add [hl]
+	inc hl ; 1
+	ld [de], a
+	inc de
+
+	ld a, [hli] ; 2
+	ld [de], a
+	inc de
+
+	ld a, [bc]
+	inc bc
+	ld [de], a
+	inc de
+	ld a, $5 ; OBPal 5
+	ld [de], a
+	inc de
+	jr .loop
+; 11b3b6
+
+Function11b3b6: ; 11b3b6
+; unreferenced
+.loop
+	ld a, [hl]
+	cp -1
+	ret z
+	ld a, [wcd4d]
+	and $7
+	swap a
+	add [hl]
+	inc hl
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	inc de
+	push hl
+	ld l, c
+	ld h, b
+	ld a, [wcd4e]
+	add [hl]
+	inc bc
+	ld [de], a
+	inc de
+	pop hl
+	ld a, $5
+	ld [de], a
+	inc de
+	jr .loop
+; 11b3d9
+
+Function11b3d9: ; 11b3d9
+	ld de, Sprites + 28 * 4
+	push de
+	ld a, [wc7d2]
+	dec a
+	ld e, a
+	ld a, [wc7d1]
+	ld hl, wc7d0
+	add [hl]
+	cp e
+	jr z, .skip
+	ld hl, 0
+	ld bc, $70
+	call AddNTimes
+	ld e, l
+	ld d, h
+	ld b, 0
+	ld a, d
+	or e
+	jr z, .load_sprites
+	ld a, [wc7d2]
+	ld c, a
+.loop1
+	ld a, e
+	sub c
+	ld e, a
+	ld a, d
+	sbc $0
+	ld d, a
+	jr c, .load_sprites
+	inc b
+	jr .loop1
+
+.skip
+	ld b, 14 * 8
+
+.load_sprites
+	ld a, 2 * 8 + 5
+	add b
+	pop hl
+	ld [hli], a
+	cp $41
+	jr c, .version1
+	ld a, [wJumptableIndex]
+	cp 4
+	jr z, .version2
+	cp 5
+	jr z, .version2
+	cp 7
+	jr z, .version2
+	cp 8
+	jr z, .version2
+
+.version1
+	ld a, 19 * 8 + 3
+	ld [hli], a
+	ld a, [wcd4c]
+	add $3c
+	ld [hli], a
+	ld a, [wcd4c]
+	add $1
+	ld [hl], a
+	ret
+
+.version2
+	ld a, 19 * 8 + 3
+	ld [hli], a
+	ld a, $39
+	ld [hli], a
+	xor a
+	ld [hl], a
+	ret
+; 11b444
+
+Function11b444: ; 11b444
+; special
+	call Mobile46_InitJumptable
+	call Mobile46_RunJumptable
+	ret
+; 11b44b
+
+Mobile46_InitJumptable: ; 11b44b
+	xor a
+	ld [wJumptableIndex], a
+	ld [wcf64], a
+	ld [wcf65], a
+	ld [wcf66], a
+	call UpdateTime
+	ret
+; 11b45c
+
+Mobile46_RunJumptable: ; 11b45c
+.loop
+	call .IterateJumptable
+	call DelayFrame
+	ld a, [wJumptableIndex]
+	cp 4
+	jr nz, .loop
+	ret
+; 11b46a
+
+.IterateJumptable: ; 11b46a
+	jumptable .Jumptable, wJumptableIndex
+
+.Jumptable:
+	dw Function11b483
+	dw Function11b570
+	dw Function11b5c0
+	dw Function11b5e0
+	dw Function11b5e7 ; unused
+; 11b483
+
+Function11b483: ; 11b483
+	call .InitRAM
+	ld hl, PlayerName
+	ld a, $5 ; Japanese Name Length
+.loop1
+	push af
+	ld a, [hli]
+	ld [bc], a
+	inc bc
+	pop af
+	dec a
+	and a
+	jr nz, .loop1
+
+	ld de, PARTYMON_STRUCT_LENGTH
+	ld hl, PartyMon1Species
+	ld a, [wcd82]
+	dec a
+	push af
+.loop2
+	and a
+	jr z, .okay
+	add hl, de
+	dec a
+	jr .loop2
+
+.okay
+	push bc
+	ld a, PARTYMON_STRUCT_LENGTH
+.loop3
+	push af
+	ld a, [hli]
+	ld [bc], a
+	inc bc
+	pop af
+	dec a
+	and a
+	jr nz, .loop3
+
+	pop de
+	push bc
+	ld a, [de]
+	ld [CurSpecies], a
+	call GetBaseData
+	ld hl, MON_LEVEL
+	add hl, de
+	ld a, [hl]
+	ld [CurPartyLevel], a
+	ld hl, MON_MAXHP
+	add hl, de
+	push hl
+	ld hl, MON_STAT_EXP - 1
+	add hl, de
+	pop de
+	push de
+	ld b, OTPARTYMON
+	predef CalcPkmnStats
+	pop de
+	ld h, d
+	ld l, e
+	dec hl
+	dec hl
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hl], a
+	pop bc
+	ld de, NAME_LENGTH
+	ld hl, PartyMonOT
+	pop af
+	push af
+.loop4
+	and a
+	jr z, .okay2
+	add hl, de
+	dec a
+	jr .loop4
+
+.okay2
+	ld a, NAME_LENGTH - 1
+.loop5
+	push af
+	ld a, [hli]
+	ld [bc], a
+	inc bc
+	pop af
+	dec a
+	and a
+	jr nz, .loop5
+	ld de, NAME_LENGTH
+	ld hl, PartyMonNicknames
+	pop af
+	push af
+.loop6
+	and a
+	jr z, .okay3
+	add hl, de
+	dec a
+	jr .loop6
+
+.okay3
+	ld a, NAME_LENGTH - 1
+.loop7
+	push af
+	ld a, [hli]
+	ld [bc], a
+	inc bc
+	pop af
+	dec a
+	and a
+	jr nz, .loop7
+	ld de, MAIL_STRUCT_LENGTH
+	ld hl, sPartyMail
+	pop af
+.loop8
+	and a
+	jr z, .okay4
+	add hl, de
+	dec a
+	jr .loop8
+
+.okay4
+	ld a, $0 ; BANK(sPartyMail)
+	call GetSRAMBank
+	ld a, MAIL_STRUCT_LENGTH
+.loop9
+	push af
+	ld a, [hli]
+	ld [bc], a
+	inc bc
+	pop af
+	dec a
+	and a
+	jr nz, .loop9
+	call CloseSRAM
+	jp Function11ad8a
+
+.InitRAM:
+	ld bc, $c626
+	ld a, [PlayerID]
+	ld [wcd2a], a
+	ld [bc], a
+	inc bc
+
+	ld a, [PlayerID + 1]
+	ld [wcd2b], a
+	ld [bc], a
+	inc bc
+
+	ld a, [wSecretID]
+	ld [wcd2c], a
+	ld [bc], a
+	inc bc
+
+	ld a, [wSecretID + 1]
+	ld [wcd2d], a
+	ld [bc], a
+	inc bc
+
+	ld a, [wcd2e]
+	ld [bc], a
+	inc bc
+
+	ld a, [wcd2f]
+	ld [bc], a
+	inc bc
+
+	ld a, [wcd30]
+	ld [bc], a
+	inc bc
+
+	ld a, [wd265]
+	ld [bc], a
+	inc bc
+	ret
+; 11b570
+
+Function11b570: ; 11b570
+	call Function118007
+	ld a, [ScriptVar]
+	and a
+	jr nz, .exit
+	call .SaveData
+	jp Function11ad8a
+
+.exit
+	ld a, $4
+	ld [wJumptableIndex], a
+	ret
+
+.SaveData:
+	ld a, $3
+	ld [rSVBK], a
+
+	ld hl, w3_d800
+	ld de, $c608
+	ld bc, w3_d88f - w3_d800
+	call CopyBytes
+
+	ld a, $1
+	ld [rSVBK], a
+	ld a, $5
+	call GetSRAMBank
+
+	ld de, $a800
+	ld a, $1
+	ld [de], a
+	inc de
+	ld hl, $c608
+	ld bc, w3_d88f - w3_d800
+	call CopyBytes
+
+	push de
+	pop hl
+
+	ld a, [hRTCMinutes]
+	ld [hli], a
+	ld a, [hRTCHours]
+	ld [hli], a
+	ld a, [hRTCDayLo]
+	ld [hli], a
+	ld a, [hRTCDayHi]
+	ld [hl], a
+
+	call CloseSRAM
+	ret
+; 11b5c0
+
+Function11b5c0: ; 11b5c0
+	ld a, [wcd82]
+	dec a
+	ld [CurPartyMon], a
+	xor a
+	ld [wPokemonWithdrawDepositParameter], a
+	callba RemoveMonFromPartyOrBox
+	callba Function170807
+	callba SaveAfterLinkTrade
+	jp Function11ad8a
+; 11b5e0
+
+Function11b5e0: ; 11b5e0
+	xor a
+	ld [ScriptVar], a
+	jp Function11ad8a
+; 11b5e7
+
+Function11b5e7: ; 11b5e7
+	ret
+; 11b5e8
+
+Function11b5e8: ; 11b5e8
+	ld a, $0
+	call GetSRAMBank
+	ld hl, wRTC
+	ld de, $c608
+	ld bc, 4
+	call CopyBytes
+	call CloseSRAM
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $c608
+	ld de, $b08c
+	ld bc, 4
+	call CopyBytes
+	ld a, $2
+	ld [$a800], a
+	ld a, [$a81f]
+	ld [wcd2a], a
+	ld a, [$a820]
+	ld [wcd2b], a
+	ld a, [$a821]
+	ld [wcd2c], a
+	ld a, [$a822]
+	ld [wcd2d], a
+	ld a, [$a823]
+	ld [wcd2e], a
+	ld a, [$a824]
+	ld [wcd2f], a
+	ld a, [$a825]
+	ld [wcd30], a
+	ld a, [$a826]
+	ld [wcd31], a
+	call CloseSRAM
+	call Mobile46_InitJumptable
+	call .loop
+	ret
+
+.loop
+	call .RunJumptable
+	call DelayFrame
+	ld a, [wJumptableIndex]
+	cp $1
+	jr nz, .loop
+	ret
+
+.RunJumptable:
+	jumptable .Jumptable, wJumptableIndex
+.Jumptable:
+	dw Function11b66d
+	dw Function11b6b3
+; 11b66d
+
+Function11b66d: ; 11b66d
+	call Function1180b8
+	ld a, [ScriptVar]
+	and a
+	jr nz, .asm_11b6b0
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+	ld a, [w3_d090]
+	ld b, a
+	pop af
+	ld [rSVBK], a
+	ld a, b
+	and a
+	jr z, .asm_11b691
+	cp $1
+	jr nz, .asm_11b6b0
+	call Function11b6b4
+	jr .asm_11b6b0
+
+.asm_11b691
+	callba Function17081d
+	ld a, [ScriptVar]
+	and a
+	jr z, .asm_11b6b0
+	xor a
+	ld [ScriptVar], a
+	ld a, [rSVBK]
+	push af
+	ld a, $3
+	ld [rSVBK], a
+	ld a, $2
+	ld [w3_d090], a
+	pop af
+	ld [rSVBK], a
+
+.asm_11b6b0
+	jp Function11ad8a
+; 11b6b3
+
+Function11b6b3: ; 11b6b3
+	ret
+; 11b6b4
+
+Function11b6b4: ; 11b6b4
+	ld a, $5
+	call GetSRAMBank
+	ld a, [wcd30]
+	ld [$c708], a
+	ld a, [wcd31]
+	ld [$c709], a
+
+	ld a, $c708 % $100
+	ld [wMobileMonSpeciesPointerBuffer], a
+	ld a, $c708 / $100
+	ld [wMobileMonSpeciesPointerBuffer + 1], a
+
+	ld a, $c60d % $100 ; Partymon Struct
+	ld [wMobileMonStructurePointerBuffer], a
+	ld a, $c60d / $100
+	ld [wMobileMonStructurePointerBuffer + 1], a
+
+	ld a, $c63d % $100 ; OT
+	ld [wMobileMonOTNamePointerBuffer], a
+	ld a, $c63d / $100
+	ld [wMobileMonOTNamePointerBuffer + 1], a
+
+	ld a, $c642 % $100 ; Nickname
+	ld [wMobileMonNicknamePointerBuffer], a
+	ld a, $c642 / $100
+	ld [wMobileMonNicknamePointerBuffer + 1], a
+
+	ld a, $c647 % $100 ; ???
+	ld [wMobileMonMailPointerBuffer], a
+	ld a, $c647 / $100
+	ld [wMobileMonMailPointerBuffer + 1], a
+
+	ld a, $46
+	ld [$c628], a
+
+	ld de, $c63d
+	ld c, 5
+	callba CheckStringForErrors
+	jr nc, .length_check_OT
+	callba Mobile_CopyDefaultOTName
+
+.length_check_OT
+	ld de, $c63d
+	lb bc, 1, 5
+	callba CheckStringContainsLessThanBNextCharacters
+	jr nc, .error_check_nick
+	callba Mobile_CopyDefaultOTName
+
+.error_check_nick
+	ld de, $c642
+	ld c, 5
+	callba CheckStringForErrors
+	jr nc, .length_check_nick
+	callba Mobile_CopyDefaultNickname
+
+.length_check_nick
+	ld de, $c642
+	lb bc, 1, 5
+	callba CheckStringContainsLessThanBNextCharacters
+	jr nc, .error_check_mail
+	callba Mobile_CopyDefaultNickname
+
+.error_check_mail
+	ld de, $c647
+	ld c, MAIL_MSG_LENGTH + 1
+	callba CheckStringForErrors
+	jr nc, .length_check_mail
+	callba Mobile_CopyDefaultMail
+
+.length_check_mail
+	ld de, $c647
+	lb bc, 2, MAIL_MSG_LENGTH + 1
+	callba CheckStringContainsLessThanBNextCharacters
+	jr c, .fix_mail
+	ld a, b
+	cp $2
+	jr nz, .mail_ok
+
+.fix_mail
+	callba Mobile_CopyDefaultMail
+
+.mail_ok
+	ld de, $c668
+	ld c, $5
+	callba CheckStringForErrors
+	jr nc, .length_check_author
+	callba Mobile_CopyDefaultMailAuthor
+
+.length_check_author
+	ld de, $c668
+	lb bc, 1, 5
+	callba CheckStringContainsLessThanBNextCharacters
+	jr nc, .author_okay
+	callba Mobile_CopyDefaultMailAuthor
+
+.author_okay
+	ld a, [$c60e]
+	cp -1
+	jr nz, .item_okay
+	xor a
+	ld [$c60e], a
+
+.item_okay
+	ld a, [wcd31]
+	ld [$c60d], a
+	ld [CurSpecies], a
+	call GetBaseData
+
+	ld hl, $c60d + MON_LEVEL
+	ld a, [hl]
+	cp MIN_LEVEL
+	ld a, MIN_LEVEL
+	jr c, .replace_level
+	ld a, [hl]
+	cp MAX_LEVEL
+	jr c, .done_level
+	ld a, MAX_LEVEL
+.replace_level
+	ld [hl], a
+.done_level
+	ld [CurPartyLevel], a
+
+	ld hl, $c60d + MON_STAT_EXP - 1
+	ld de, $c60d + MON_MAXHP
+	ld b, $1
+	predef CalcPkmnStats
+	ld de, $c60d + MON_MAXHP
+	ld hl, $c60d + MON_HP
+	ld a, [de]
+	ld [hli], a
+	inc de
+	ld a, [de]
+	ld [hl], a
+	call AddMobileMonToParty
+	ret
+; 11b7e5
+
+Function11b7e5: ; 11b7e5
+	ld a, [$c60d] ; species
+	ld [wOTTrademonSpecies], a
+	ld [CurPartySpecies], a
+	ld a, [wcd81]
+	ld [wc74e], a
+	ld hl, $c63d ; OT
+	ld de, wOTTrademonOTName
+	ld bc, 5
+	call CopyBytes
+	ld a, "@"
+	ld [de], a
+	ld a, [$c60d + MON_ID] ; id
+	ld [wOTTrademonID], a
+	ld a, [$c60d + MON_ID + 1]
+	ld [wOTTrademonID + 1], a
+	ld hl, $c60d + MON_DVS ; dvs
+	ld a, [hli]
+	ld [wOTTrademonDVs], a
+	ld a, [hl]
+	ld [wOTTrademonDVs + 1], a
+	ld bc, $c60d ; pokemon_data_start
+	callba GetCaughtGender
+	ld a, c
+	ld [wOTTrademonCaughtData], a
+	call SpeechTextBox
+	call FadeToMenu
+	callba MobileTradeAnimation_ReceiveGetmonFromGTS
+	callba Function17d1f1
+	ld a, $1
+	ld [wForceEvolution], a
+	ld a, $2
+	ld [wLinkMode], a
+	callba EvolvePokemon
+	xor a
+	ld [wLinkMode], a
+	callba SaveAfterLinkTrade
+	ld a, $5
+	call GetSRAMBank
+	ld a, $5
+	ld [$a800], a
+	call CloseSRAM
+	ld a, [MapGroup]
+	ld b, a
+	ld a, [MapNumber]
+	ld c, a
+	call GetMapTrigger
+	ld a, d
+	or e
+	jr z, .asm_11b872
+	ld a, $1
+	ld [de], a
+
+.asm_11b872
+	call CloseSubmenu
+	call RestartMapMusic
+	ret
+; 11b879
+
+Function11b879: ; 11b879
+	callba BattleTower_CheckSaveFileExistsAndIsYours
+	ld a, [ScriptVar]
+	and a
+	ret z
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$a800]
+	ld [ScriptVar], a
+	ld a, [$a890]
+	ld [wcd49], a
+	ld a, [$a891]
+	ld [wcd4a], a
+	ld a, [$a892]
+	ld [wcd4b], a
+	ld a, [$a893]
+	ld [wcd4c], a
+	call CloseSRAM
+	ld a, [ScriptVar]
+	and a
+	ret z
+	ld hl, wcd4c
+	ld a, [hRTCDayHi]
+	cp [hl]
+	ret nz
+	dec hl
+	ld a, [hRTCDayLo]
+	cp [hl]
+	ret nz
+	ld hl, wcd4a
+	ld a, [hRTCHours]
+	cp [hl]
+	jr nc, .asm_11b8d8
+	ld a, $18
+	sub [hl]
+	ld hl, hRTCHours
+	add [hl]
+	ld [wcd4c], a
+	ld a, [hRTCMinutes]
+	ld [wcd4b], a
+	xor a
+	ld [wcd4a], a
+	jr .asm_11b8e2
+
+.asm_11b8d8
+	ld a, [hRTCMinutes]
+	ld [wcd4b], a
+	ld a, [hRTCHours]
+	ld [wcd4c], a
+
+.asm_11b8e2
+	xor a
+	ld l, a
+	ld h, a
+	ld b, a
+	ld d, a
+	ld a, [wcd4b]
+	ld e, a
+	ld a, [wcd4c]
+	ld c, $3c
+	call AddNTimes
+	add hl, de
+	push hl
+	xor a
+	ld l, a
+	ld h, a
+	ld b, a
+	ld d, a
+	ld a, [wcd49]
+	ld e, a
+	ld a, [wcd4a]
+	ld c, $3c
+	call AddNTimes
+	add hl, de
+	ld a, l
+	cpl
+	add $1
+	ld e, a
+	ld a, h
+	cpl
+	adc $0
+	ld d, a
+	pop hl
+	add hl, de
+	ld de, $ff88
+	add hl, de
+	bit 7, h
+	ret z
+	ld a, $2
+	ld [ScriptVar], a
+	ret
+; 11b920
+
+Function11b920: ; 11b920
+	call Mobile46_InitJumptable
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $a81f
+	ld de, $c626
+	ld bc, 8
+	call CopyBytes
+	call CloseSRAM
+	call Function118000
+	ret
+; 11b93b
+
+Function11b93b: ; 11b93b
+	ld a, $5
+	call GetSRAMBank
+	xor a
+	ld [$a800], a
+	ld hl, $a823
+	ld de, $c608
+	ld bc, $008f
+	call CopyBytes
+	call CloseSRAM
+
+	ld a, $c608 % $100
+	ld [wMobileMonSpeciesPointerBuffer], a
+	ld a, $c608 / $100
+	ld [wMobileMonSpeciesPointerBuffer + 1], a
+
+	ld a, $c611 % $100
+	ld [wMobileMonStructurePointerBuffer], a
+	ld a, $c611 / $100
+	ld [wMobileMonStructurePointerBuffer + 1], a
+
+	ld a, $c641 % $100
+	ld [wMobileMonOTNamePointerBuffer], a
+	ld a, $c641 / $100
+	ld [wMobileMonOTNamePointerBuffer + 1], a
+
+	ld a, $c646 % $100
+	ld [wMobileMonNicknamePointerBuffer], a
+	ld a, $c646 / $100
+	ld [wMobileMonNicknamePointerBuffer + 1], a
+
+	ld a, $c64b % $100
+	ld [wMobileMonMailPointerBuffer], a
+	ld a, $c64b / $100
+	ld [wMobileMonMailPointerBuffer + 1], a
+	call AddMobileMonToParty
+	callba SaveAfterLinkTrade
+	ret
+; 11b98f
+
+AddMobileMonToParty: ; 11b98f
+	ld hl, PartyCount
+	ld a, [hl]
+	ld e, a
+	inc [hl]
+
+	ld a, [wMobileMonSpeciesPointerBuffer]
+	ld l, a
+	ld a, [wMobileMonSpeciesPointerBuffer + 1]
+	ld h, a
+	inc hl
+	ld bc, PartySpecies
+	ld d, e
+.loop1
+	inc bc
+	dec d
+	jr nz, .loop1
+	ld a, e
+	ld [CurPartyMon], a
+	ld a, [hl]
+	ld [bc], a
+	inc bc
+	ld a, -1
+	ld [bc], a
+
+	ld hl, PartyMon1Species
+	ld bc, PARTYMON_STRUCT_LENGTH
+	ld a, e
+	ld [wMobileMonSpeciesBuffer], a
+.loop2
+	add hl, bc
+	dec a
+	and a
+	jr nz, .loop2
+	ld e, l
+	ld d, h
+	ld a, [wMobileMonStructurePointerBuffer]
+	ld l, a
+	ld a, [wMobileMonStructurePointerBuffer + 1]
+	ld h, a
+	ld bc, PARTYMON_STRUCT_LENGTH
+	call CopyBytes
+
+	ld hl, PartyMonOT
+	ld bc, NAME_LENGTH
+	ld a, [wMobileMonSpeciesBuffer]
+.loop3
+	add hl, bc
+	dec a
+	and a
+	jr nz, .loop3
+	ld e, l
+	ld d, h
+	ld a, [wMobileMonOTNamePointerBuffer]
+	ld l, a
+	ld a, [wMobileMonOTNamePointerBuffer + 1]
+	ld h, a
+	ld bc, PKMN_NAME_LENGTH - 1
+	call CopyBytes
+	ld a, "@"
+	ld [de], a
+
+	ld hl, PartyMonNicknames
+	ld bc, PKMN_NAME_LENGTH
+	ld a, [wMobileMonSpeciesBuffer]
+.loop4
+	add hl, bc
+	dec a
+	and a
+	jr nz, .loop4
+	ld e, l
+	ld d, h
+	ld a, [wMobileMonNicknamePointerBuffer]
+	ld l, a
+	ld a, [wMobileMonNicknamePointerBuffer + 1]
+	ld h, a
+	ld bc, PKMN_NAME_LENGTH - 1
+	call CopyBytes
+	ld a, "@"
+	ld [de], a
+
+	ld hl, sPartyMail
+	ld bc, MAIL_STRUCT_LENGTH
+	ld a, [wMobileMonSpeciesBuffer]
+.loop5
+	add hl, bc
+	dec a
+	and a
+	jr nz, .loop5
+	ld a, BANK(sPartyMail)
+	call GetSRAMBank
+	ld e, l
+	ld d, h
+	ld a, [wMobileMonMailPointerBuffer]
+	ld l, a
+	ld a, [wMobileMonMailPointerBuffer + 1]
+	ld h, a
+	ld bc, MAIL_STRUCT_LENGTH
+	call CopyBytes
+
+	call CloseSRAM
+	ret
+; 11ba38
+
+Function11ba38: ; 11ba38
+	callba CheckCurPartyMonFainted
+	ret c
+	xor a
+	ld [ScriptVar], a
+	ret
+; 11ba44
+
+TilemapPack_11ba44:
+	db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 ; 00
+	db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 ; 01
+	db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 ; 02
+	db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 ; 03
+	db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 ; 04
+	db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 ; 05
+	db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 ; 06
+	db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f ; 07
+	db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e ; 08
+	db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 ; 09
+	db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 ; 0a
+	db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 ; 0b
+	db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 ; 0c
+	db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 ; 0d
+	db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 ; 0e
+	db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 ; 0f
+	db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 ; 10
+	db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 ; 11
+	db $4a, $30, $0a, $0a, $61, $62, $0a, $58 ; 12
+	db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 ; 13
+	db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 ; 14
+	db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 ; 15
+	db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 ; 16
+	db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 ; 17
+	db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 ; 18
+	db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 ; 19
+	db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 ; 1a
+	db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 ; 1b
+	db $4a, $2f, $68, $87, $88, $89, $0a, $58 ; 1c
+	db $4a, $3d, $6e, $6f, $70, $75, $76, $58 ; 1d
+	db $4a, $30, $75, $76, $5c, $5d, $5e, $58 ; 1e
+	db $4a, $2f, $71, $72, $73, $74, $6d, $58 ; 1f
+	db $4a, $3d, $75, $76, $77, $8a, $8b, $58 ; 20
+	db $4a, $30, $66, $67, $65, $0a, $6a, $58 ; 21
+	db $4a, $2f, $83, $84, $0a, $83, $84, $58 ; 22
+	db $4a, $3d, $0a, $85, $82, $84, $0a, $58 ; 23
+	db $4a, $30, $41, $80, $40, $0a, $0a, $58 ; 24
+	db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 ; 25
+	db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 ; 26
+	db -1
+
+TilemapPack_11bb7d:
+	db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 ; 00
+	db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 01
+	db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 02
+	db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 03
+	db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 04
+	db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 05
+	db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 06
+	db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 ; 07
+	db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 ; 08
+	db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 ; 09
+	db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 ; 0a
+	db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 ; 0b
+	db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 ; 0c
+	db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 ; 0d
+	db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 ; 0e
+	db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 ; 0f
+	db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 ; 10
+	db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 ; 11
+	db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 ; 12
+	db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 ; 13
+	db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 ; 14
+	db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 15
+	db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 ; 16
+	db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 ; 17
+	db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 ; 18
+	db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 ; 19
+	db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1a
+	db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 ; 1b
+	db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 ; 1c
+	db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1d
+	db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 ; 1e
+	db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 ; 1f
+	db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 20
+	db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 ; 21
+	db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 ; 22
+	db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 ; 23
+	db -1
+
+
--- /dev/null
+++ b/mobile/mobile_5b.asm
@@ -1,0 +1,833 @@
+Function16c000: ; 16c000
+; unreferenced
+	; Only for CGB
+	ld a, [hCGB]
+	and a
+	ret z
+	; Only do this once per boot cycle
+	ld a, [hFFEA]
+	and a
+	ret z
+	; Set some flag, preserving the old state
+	ld a, [wcfbe]
+	push af
+	set 7, a
+	ld [wcfbe], a
+	; Do stuff
+	call MobileSystemSplashScreen_InitGFX ; Load GFX
+	callba SetRAMStateForMobile
+	callba EnableMobile
+	call .RunJumptable
+	callba DisableMobile
+	; Prevent this routine from running again
+	; until the next time the syatem is turned on
+	xor a
+	ld [hFFEA], a
+	; Restore the flag state
+	pop af
+	ld [wcfbe], a
+	ret
+; 16c031
+
+.RunJumptable: ; 16c031
+	xor a
+	ld [wJumptableIndex], a
+	ld [wcf64], a
+	ld [wd002], a
+	ld [wd003], a
+.loop
+	call DelayFrame
+	callba Function10635c
+	ld a, [wd002]
+	ld hl, .Jumptable
+	rst JumpTable
+	call Function16cb2e
+	call Function16cbae
+	ld a, [wd002]
+	cp $ff
+	jr nz, .loop
+	ret
+; 16c05c
+
+.Jumptable: ; 16c05c
+	dw .init
+	dw Function16c0ba
+	dw Function16c089
+	dw Function16c09e
+	dw Function16c0a8
+	dw Function16c0dc
+	dw Function16c0ec
+	dw Function16c0ba
+	dw Function16c0ca
+	dw Function16c0dc
+	dw Function16c0ec
+	dw .quit
+; 16c074
+
+.init ; 16c074
+	ld a, [wcf64]
+	and a
+	ret z
+	ld [wd002], a
+	xor a
+	ld [wd003], a
+	ret
+; 16c081
+
+.quit ; 16c081
+	push af
+	ld a, $ff
+	ld [wd002], a
+	pop af
+	ret
+; 16c089
+
+Function16c089: ; 16c089
+	ld a, $1
+	ld [Buffer2], a
+	ld [wd1f1], a
+	xor a
+	ld [hWY], a
+	call Function16c0fa
+	ld a, [wd002]
+	ld [wcf64], a
+	ret
+; 16c09e
+
+Function16c09e: ; 16c09e
+	ld a, [wcf64]
+	cp $4
+	ret nz
+	call Function16c0fa
+	ret
+; 16c0a8
+
+Function16c0a8: ; 16c0a8
+	xor a
+	ld [Buffer2], a
+	ld [wd1f1], a
+	call ClearSprites
+	ld a, $90
+	ld [hWY], a
+	call Function16c0fa
+	ret
+; 16c0ba
+
+Function16c0ba: ; 16c0ba
+	call Function16c943
+	push af
+	ld a, [wd003]
+	inc a
+	ld [wd003], a
+	pop af
+	call c, Function16c0fa
+	ret
+; 16c0ca
+
+Function16c0ca: ; 16c0ca
+	ld a, [wd003]
+	cp $28
+	push af
+	ld a, [wd003]
+	inc a
+	ld [wd003], a
+	pop af
+	call z, Function16c0fa
+	ret
+; 16c0dc
+
+Function16c0dc: ; 16c0dc
+	call Function16ca11
+	push af
+	ld a, [wd003]
+	inc a
+	ld [wd003], a
+	pop af
+	call c, Function16c0fa
+	ret
+; 16c0ec
+
+Function16c0ec: ; 16c0ec
+	call ClearBGPalettes
+	call ClearScreen
+	push af
+	ld a, $ff
+	ld [wd002], a
+	pop af
+	ret
+; 16c0fa
+
+Function16c0fa: ; 16c0fa
+	push af
+	ld a, [wd002]
+	inc a
+	ld [wd002], a
+	xor a
+	ld [wd003], a
+	pop af
+	ret
+; 16c108
+
+MobileSystemSplashScreen_InitGFX: ; 16c108
+	call DisableLCD
+	ld hl, VTiles2
+	ld de, .Tiles
+	lb bc, BANK(.Tiles), $68
+	call Get2bpp
+	call .LoadPals
+	call .LoadTileMap
+	call .LoadAttrMap
+	hlbgcoord 0, 0
+	call Function16cc73
+	call Function16cc02
+	xor a
+	ld [hBGMapMode], a
+	call EnableLCD
+	ret
+; 16c130
+
+.LoadPals: ; 16c130
+	ld de, UnknBGPals
+	ld hl, UnknownMobilePalettes_16c903
+	ld bc, 8
+	ld a, $5
+	call FarCopyWRAM
+	callba ApplyPals
+	ret
+; 16c145
+
+.LoadTileMap: ; 16c145
+	hlcoord 0, 0
+	ld bc, 20
+	xor a
+	call ByteFill
+	ld hl, .TileMap
+	decoord 0, 1
+	ld bc, $0154
+	call CopyBytes
+	ret
+; 16c15c
+
+.LoadAttrMap: ; 16c15c
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH
+	xor a
+	call ByteFill
+	ld hl, .AttrMap
+	decoord 0, 1, AttrMap
+	ld bc, 17 * SCREEN_WIDTH
+	call CopyBytes
+	ret
+; 16c173
+
+.Tiles:
+INCBIN "gfx/unknown/mobile_splash.2bpp"
+
+.TileMap:
+INCBIN "gfx/unknown/mobile_splash.tilemap"
+
+.AttrMap:
+INCBIN "gfx/unknown/mobile_splash.attrmap"
+
+UnknownMobilePalettes_16c903: ; 16c903
+INCLUDE "gfx/unknown/16c903.pal"
+
+; 16c943
+
+Function16c943: ; 16c943
+	ld a, [wd003]
+	and a
+	jr nz, .asm_16c95e
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld a, $ff
+	ld bc, $0008
+	ld hl, UnknBGPals
+	call ByteFill
+	pop af
+	ld [rSVBK], a
+
+.asm_16c95e
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld e, $0
+	ld a, $0
+.asm_16c969
+	ld hl, UnknownMobilePalettes_16c903
+	call Function16cab6
+	call Function16cabb
+	ld d, a
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cabb
+	cp d
+	jr z, .asm_16c991
+	ld b, $1
+.asm_16c981
+	dec a
+	cp d
+	jr z, .asm_16c988
+	dec b
+	jr nz, .asm_16c981
+
+.asm_16c988
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cadc
+
+.asm_16c991
+	ld hl, UnknownMobilePalettes_16c903
+	call Function16cab6
+	call Function16cad8
+	ld d, a
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cad8
+	cp d
+	jr z, .asm_16c9b9
+	ld b, $1
+.asm_16c9a9
+	dec a
+	cp d
+	jr z, .asm_16c9b0
+	dec b
+	jr nz, .asm_16c9a9
+
+.asm_16c9b0
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cb08
+
+.asm_16c9b9
+	ld hl, UnknownMobilePalettes_16c903
+	call Function16cab6
+	call Function16cac4
+	ld d, a
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cac4
+	cp d
+	jr z, .asm_16c9e1
+	ld b, $1
+.asm_16c9d1
+	dec a
+	cp d
+	jr z, .asm_16c9d8
+	dec b
+	jr nz, .asm_16c9d1
+
+.asm_16c9d8
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cae8
+
+.asm_16c9e1
+	inc e
+	inc e
+	ld a, e
+	cp $8
+	jr nz, .asm_16c969
+	callba ApplyPals
+	call SetPalettes
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [wd003]
+	cp $1f
+	jr z, .asm_16ca09
+	pop af
+	ld [rSVBK], a
+	ld e, $0
+	pop af
+	ld [rSVBK], a
+	and a
+	ret
+
+.asm_16ca09
+	pop af
+	ld [rSVBK], a
+	pop af
+	ld [rSVBK], a
+	scf
+	ret
+; 16ca11
+
+Function16ca11: ; 16ca11
+	ld a, [wd003]
+	and a
+	jr nz, .asm_16ca1d
+	callba ApplyPals
+
+.asm_16ca1d
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld e, $0
+	ld a, $0
+.asm_16ca28
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cabb
+	cp $1f
+	jr z, .asm_16ca48
+	ld b, $1
+.asm_16ca37
+	inc a
+	cp $1f
+	jr z, .asm_16ca3f
+	dec b
+	jr nz, .asm_16ca37
+
+.asm_16ca3f
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cadc
+
+.asm_16ca48
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cad8
+	cp $1f
+	jr z, .asm_16ca68
+	ld b, $1
+.asm_16ca57
+	inc a
+	cp $1f
+	jr z, .asm_16ca5f
+	dec b
+	jr nz, .asm_16ca57
+
+.asm_16ca5f
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cb08
+
+.asm_16ca68
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cac4
+	cp $1f
+	jr z, .asm_16ca88
+	ld b, $1
+.asm_16ca77
+	inc a
+	cp $1f
+	jr z, .asm_16ca7f
+	dec b
+	jr nz, .asm_16ca77
+
+.asm_16ca7f
+	ld hl, UnknBGPals
+	call Function16cab6
+	call Function16cae8
+
+.asm_16ca88
+	inc e
+	inc e
+	ld a, e
+	cp $8
+	jr nz, .asm_16ca28
+	callba ApplyPals
+	call SetPalettes
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [wd003]
+	cp $1f
+	jr z, .asm_16caae
+	pop af
+	ld [rSVBK], a
+	pop af
+	ld [rSVBK], a
+	and a
+	ret
+
+.asm_16caae
+	pop af
+	ld [rSVBK], a
+	pop af
+	ld [rSVBK], a
+	scf
+	ret
+; 16cab6
+
+Function16cab6: ; 16cab6
+	ld b, $0
+	ld c, e
+	add hl, bc
+	ret
+; 16cabb
+
+Function16cabb: ; 16cabb
+	inc hl
+	ld a, [hl]
+	srl a
+	srl a
+	and $1f
+	ret
+; 16cac4
+
+Function16cac4: ; 16cac4
+	inc hl
+	ld a, [hld]
+	and $3
+	ld b, a
+	ld a, [hl]
+	sla a
+	rl b
+	sla a
+	rl b
+	sla a
+	rl b
+	ld a, b
+	ret
+; 16cad8
+
+Function16cad8: ; 16cad8
+	ld a, [hl]
+	and $1f
+	ret
+; 16cadc
+
+Function16cadc: ; 16cadc
+	sla a
+	sla a
+	ld b, a
+	inc hl
+	ld a, [hl]
+	and $83
+	or b
+	ld [hl], a
+	ret
+; 16cae8
+
+Function16cae8: ; 16cae8
+	ld c, a
+	srl a
+	srl a
+	srl a
+	ld b, a
+	inc hl
+	ld a, [hl]
+	and $fc
+	or b
+	ld [hld], a
+	ld a, c
+	sla a
+	sla a
+	sla a
+	sla a
+	sla a
+	ld b, a
+	ld a, [hl]
+	and $1f
+	or b
+	ld [hl], a
+	ret
+; 16cb08
+
+Function16cb08: ; 16cb08
+	ld b, a
+	ld a, [hl]
+	and $e0
+	or b
+	ld [hl], a
+	ret
+; 16cb0f
+
+Function16cb0f: ; 16cb0f
+	xor a
+	ld [Buffer1], a
+	ld [Buffer2], a
+	xor a
+	ld [wd1ec], a
+	ld a, $70
+	ld [wd1ee], a
+	ld a, $4
+	ld [wd1ed], a
+	ld a, $a0
+	ld [wd1ef], a
+	xor a
+	ld [wd1f0], a
+	ret
+; 16cb2e
+
+Function16cb2e: ; 16cb2e
+	ld a, [Buffer2]
+	and a
+	ret z
+	call Function16cb40
+	ld hl, Unknown_16cb86
+	ld de, Sprites
+	call Function16cb5d
+	ret
+; 16cb40
+
+Function16cb40: ; 16cb40
+	ld hl, wd1ec
+	inc [hl]
+	ld a, [hl]
+	cp $18
+	ret c
+	xor a
+	ld [hl], a
+	ld a, [wd1ef]
+	cp $a0
+	jr nz, .asm_16cb57
+	ld a, $a7
+	ld [wd1ef], a
+	ret
+
+.asm_16cb57
+	ld a, $a0
+	ld [wd1ef], a
+	ret
+; 16cb5d
+
+Function16cb5d: ; 16cb5d
+	ld a, [hli]
+	and a
+	ret z
+.asm_16cb60
+	push af
+	ld a, [wd1ee]
+	add [hl]
+	add $10
+	ld [de], a
+	inc hl
+	inc de
+	ld a, [wd1ed]
+	add [hl]
+	add $8
+	ld [de], a
+	inc hl
+	inc de
+	ld a, [wd1ef]
+	add [hl]
+	ld [de], a
+	inc hl
+	inc de
+	ld a, [wd1f0]
+	or [hl]
+	ld [de], a
+	inc hl
+	inc de
+	pop af
+	dec a
+	jr nz, .asm_16cb60
+	ret
+; 16cb86
+
+Unknown_16cb86:
+	db 7
+	db  0,  0, 0, 1
+	db  8,  0, 1, 1
+	db  8,  8, 2, 0
+	db  8, 16, 3, 0
+	db 16,  0, 4, 1
+	db 16,  8, 5, 0
+	db 16, 16, 6, 0
+; 16cba3
+
+Function16cba3: ; 16cba3
+	xor a
+	ld [wd1f1], a
+	ld [wd1f2], a
+	ld [wd1f3], a
+	ret
+; 16cbae
+
+Function16cbae: ; 16cbae
+	ld a, [wd1f1]
+	and a
+	ret z
+	call Function16cbba
+	call Function16cbd1
+	ret
+; 16cbba
+
+Function16cbba: ; 16cbba
+	ld hl, wd1f2
+	inc [hl]
+	ld a, [hl]
+	cp $c
+	ret c
+	xor a
+	ld [hl], a
+	ld a, [wd1f3]
+	inc a
+	cp $4
+	jr c, .asm_16cbcd
+	xor a
+
+.asm_16cbcd
+	ld [wd1f3], a
+	ret
+; 16cbd1
+
+Function16cbd1: ; 16cbd1
+	ld a, [wd1f3]
+	ld c, a
+	ld b, 0
+	ld hl, Unknown_16cbfb
+	add hl, bc
+	ld a, [hl]
+	ld bc, 2
+	ld hl, Unknown_16cfa3
+	call AddNTimes
+	ld de, UnknBGPals + 1 palettes + 4
+	ld bc, 2
+	ld a, $5
+	call FarCopyWRAM
+	callba ApplyPals
+	ld a, $1
+	ld [hCGBPalUpdate], a
+	ret
+; 16cbfb
+
+Unknown_16cbfb:
+	db 0, 1, 2, 1, 0, 1, 2
+; 16cc02
+
+Function16cc02: ; 16cc02
+	call Function16cc18
+	call Function16cc49
+	call Function16cc62
+	call Function16cc25
+	call Function16cc6e
+	call Function16cb0f
+	call Function16cba3
+	ret
+; 16cc18
+
+Function16cc18: ; 16cc18
+	ld hl, VTiles1
+	ld de, GFX_16cca3
+	lb bc, BANK(GFX_16cca3), $2e
+	call Get2bpp
+	ret
+; 16cc25
+
+Function16cc25: ; 16cc25
+	ld hl, Unknown_16cfa9
+	ld de, UnknBGPals + 1 palettes
+	call .CopyPal
+	ld hl, Unknown_16cfb1
+	ld de, UnknOBPals
+	call .CopyPal
+	ld hl, Unknown_16cfb9
+	ld de, UnknOBPals + 1 palettes
+	call .CopyPal
+	ret
+; 16cc41
+
+.CopyPal: ; 16cc41
+	ld bc, 1 palettes
+	ld a, $5
+	jp FarCopyWRAM
+; 16cc49
+
+Function16cc49: ; 16cc49
+	hlcoord 4, 15
+	ld a, $80
+	call Function16cc5a
+	hlcoord 4, 16
+	ld a, $90
+	call Function16cc5a
+	ret
+; 16cc5a
+
+Function16cc5a: ; 16cc5a
+	ld c, $10
+.asm_16cc5c
+	ld [hli], a
+	inc a
+	dec c
+	jr nz, .asm_16cc5c
+	ret
+; 16cc62
+
+Function16cc62: ; 16cc62
+	hlcoord 0, 15, AttrMap
+	ld bc, $0028
+	ld a, $1
+	call ByteFill
+	ret
+; 16cc6e
+
+Function16cc6e: ; 16cc6e
+	hlbgcoord 0, 0, VBGMap1
+	jr Function16cc73
+
+Function16cc73:
+	ld a, [rVBK]
+	push af
+	ld a, $0
+	ld [rVBK], a
+	push hl
+	decoord 0, 0
+	call Function16cc90
+	pop hl
+	ld a, $1
+	ld [rVBK], a
+	decoord 0, 0, AttrMap
+	call Function16cc90
+	pop af
+	ld [rVBK], a
+	ret
+; 16cc90
+
+Function16cc90: ; 16cc90
+	ld bc, $1214
+.asm_16cc93
+	push bc
+.asm_16cc94
+	ld a, [de]
+	inc de
+	ld [hli], a
+	dec c
+	jr nz, .asm_16cc94
+	ld bc, $000c
+	add hl, bc
+	pop bc
+	dec b
+	jr nz, .asm_16cc93
+	ret
+; 16cca3
+
+GFX_16cca3:
+INCBIN "gfx/unknown/16cca3.2bpp"
+
+Unknown_16cfa3:
+	RGB 31, 31, 31
+	RGB 25, 27, 29
+	RGB 16, 19, 25
+
+Unknown_16cfa9:
+	RGB 31, 31, 31
+	RGB 25, 27, 29
+	RGB 31, 31, 31
+	RGB 07, 07, 07
+
+
+Unknown_16cfb1:
+	RGB 31, 31, 31
+	RGB 13, 09, 18
+	RGB 26, 21, 16
+	RGB 07, 07, 07
+
+
+Unknown_16cfb9:
+	RGB 31, 31, 31
+	RGB 18, 05, 02
+	RGB 27, 11, 12
+	RGB 07, 07, 07
+
+; 16cfc1
--- /dev/null
+++ b/mobile/mobile_5c.asm
@@ -1,0 +1,944 @@
+Function170000: ; 170000
+	ld a, [$c62b]
+	ld [wPlayerTrademonSpecies], a
+	ld hl, $c62e
+	ld de, wPlayerTrademonSenderName
+	ld bc, $0005
+	call CopyBytes
+	ld a, $50
+	ld [de], a
+	ld hl, $c663
+	ld de, wPlayerTrademonOTName
+	ld bc, $0005
+	call CopyBytes
+	ld a, $50
+	ld [de], a
+	ld hl, $c648
+	ld a, [hli]
+	ld [wPlayerTrademonDVs], a
+	ld a, [hl]
+	ld [wPlayerTrademonDVs + 1], a
+	ld hl, $c639
+	ld a, [hli]
+	ld [wPlayerTrademonID], a
+	ld a, [hl]
+	ld [wPlayerTrademonID + 1], a
+	ld bc, $c633
+	callba GetCaughtGender
+	ld a, c
+	ld [wPlayerTrademonCaughtData], a
+	ld a, [wcd81]
+	ld [wc74e], a
+	ld hl, $c608
+	ld de, $d800
+	ld bc, $008f
+	call CopyBytes
+	ret
+
+; 17005a
+
+Function17005a: ; 17005a
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$a824]
+	ld [wOTTrademonSpecies], a
+	ld hl, $a827
+	ld de, wOTTrademonSenderName
+	ld bc, 5 ; Japanese Name Length
+	call CopyBytes
+	ld a, "@"
+	ld [de], a
+	ld hl, $a85c
+	ld de, wOTTrademonOTName
+	ld bc, 5 ; Japanese Name Length
+	call CopyBytes
+	ld a, "@"
+	ld [de], a
+	ld hl, $a841
+	ld a, [hli]
+	ld [wOTTrademonDVs], a
+	ld a, [hl]
+	ld [wOTTrademonDVs + 1], a
+	ld hl, $a832
+	ld a, [hli]
+	ld [wOTTrademonID], a
+	ld a, [hl]
+	ld [wOTTrademonID + 1], a
+	ld bc, $a82c
+	callba GetCaughtGender
+	ld a, c
+	ld [wOTTrademonCaughtData], a
+	ld a, [wcd81]
+	ld [wc74e], a
+	call CloseSRAM
+	ret
+
+; 1700b0
+
+INCLUDE "misc/battle_tower_5c.asm"
+
+Function170be4: ; 170be4
+	ld a, $5
+	call GetSRAMBank
+	xor a
+	ld hl, $a894
+	ld bc, $0008
+	call ByteFill
+	call CloseSRAM
+	ret
+
+; 170bf7
+
+Clears5_a89a: ; 170bf7
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $a89a
+	xor a
+	ld [hli], a
+	ld [hl], a
+	call CloseSRAM
+	ret
+
+; 170c06
+
+Function170c06: ; 170c06
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $a894
+	ld a, [wBattleResult]
+	and a
+	jr nz, .asm_170c15
+	inc [hl]
+
+.asm_170c15
+	inc hl
+	inc hl
+	ld a, [$a89b]
+	add [hl]
+	ld [hld], a
+	ld a, [$a89a]
+	adc [hl]
+	ld [hli], a
+	jr nc, .asm_170c27
+	ld a, $ff
+	ld [hld], a
+	ld [hli], a
+
+.asm_170c27
+	inc hl
+	push hl
+	ld de, 0
+	xor a
+	ld [wd265], a
+.asm_170c30
+	ld hl, PartyMon1HP
+	ld a, [wd265]
+	call GetPartyLocation
+	ld a, [hli]
+	ld b, a
+	ld c, [hl]
+	inc hl
+	inc hl
+	ld a, [hld]
+	sub c
+	ld c, a
+	ld a, [hl]
+	sbc b
+	ld b, a
+	push de
+	pop hl
+	add hl, bc
+	push hl
+	pop de
+	jr c, .asm_170c58
+	ld a, [wd265]
+	inc a
+	ld [wd265], a
+	cp $3
+	jr c, .asm_170c30
+	jr .asm_170c5b
+
+.asm_170c58
+	ld de, -1
+
+.asm_170c5b
+	pop hl
+	inc hl
+	ld a, e
+	add [hl]
+	ld [hld], a
+	ld a, d
+	adc [hl]
+	ld [hli], a
+	jr nc, .asm_170c69
+	ld a, $ff
+	ld [hld], a
+	ld [hli], a
+
+.asm_170c69
+	inc hl
+	push hl
+	ld b, $0
+	ld c, $0
+.asm_170c6f
+	ld hl, PartyMon1HP
+	ld a, b
+	push bc
+	call GetPartyLocation
+	pop bc
+	ld a, [hli]
+	or [hl]
+	jr nz, .asm_170c7d
+	inc c
+
+.asm_170c7d
+	inc b
+	ld a, b
+	cp $3
+	jr c, .asm_170c6f
+	pop hl
+	ld a, [hl]
+	add c
+	ld [hl], a
+	call CloseSRAM
+	ret
+
+; 170c8b
+
+Function170c8b: ; 170c8b
+	ld hl, LastEnemyCounterMove
+	ld b, $5
+.asm_170c90
+	ld a, [hl]
+	xor $ff
+	ld [hli], a
+	dec b
+	jr nz, .asm_170c90
+	ret
+
+; 170c98
+
+CheckBTMonMovesForErrors: ; 170c98
+	ld c, BATTLETOWER_NROFPKMNS
+	ld hl, wBT_OTTempPkmn1Moves
+.loop
+	push hl
+	ld a, [hl]
+	cp NUM_ATTACKS + 1
+	jr c, .okay
+	ld a, POUND
+	ld [hl], a
+
+.okay
+	inc hl
+	ld b, NUM_MOVES - 1
+.loop2
+	ld a, [hl]
+	and a
+	jr z, .loop3
+	cp NUM_ATTACKS + 1
+	jr c, .next
+
+.loop3
+	xor a
+	ld [hl], a
+	inc hl
+	dec b
+	jr nz, .loop3
+	jr .done
+
+.next
+	inc hl
+	dec b
+	jr nz, .loop2
+
+.done
+	pop hl
+	ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
+	add hl, de
+	dec c
+	jr nz, .loop
+	ret
+
+; 170cc6
+
+Function170cc6: ; 170cc6
+	ld a, [rSVBK]
+	push af
+	ld a, $6
+	ld [rSVBK], a
+	ld hl, LZ_170d16
+	ld de, wDecompressScratch
+	call Decompress
+	ld a, $1
+	ld [rVBK], a
+	ld de, wd000
+	ld hl, VTiles0
+	lb bc, $6, $c1
+	call Get2bpp
+	xor a
+	ld [rVBK], a
+	ld hl, LZ_1715a4
+	ld de, wd000
+	call Decompress
+	ld de, UnknBGPals
+	ld hl, VTiles0
+	lb bc, $6, $53
+	call Get2bpp
+	pop af
+	ld [rSVBK], a
+	ret
+
+; 170d02
+
+Function170d02: ; 170d02
+	ld a, $1
+	ld [rVBK], a
+	ld de, GFX_171848
+	ld hl, VTiles1 tile $41
+	lb bc, BANK(GFX_171848), $18
+	call Get2bpp
+	xor a
+	ld [rVBK], a
+	ret
+
+; 170d16
+
+LZ_170d16:
+INCBIN "gfx/unknown/pichu_animated.2bpp.lz"
+
+LZ_1715a4:
+INCBIN "gfx/unknown/egg_animated.2bpp.lz"
+
+GFX_171848:
+INCBIN "gfx/unknown/171848.2bpp"
+
+Function1719c8: ; 1719c8 (5c:59c8)
+	ld a, [hInMenu]
+	push af
+	ld a, $1
+	ld [hInMenu], a
+	call Function1719d6
+	pop af
+	ld [hInMenu], a
+	ret
+
+Function1719d6: ; 1719d6 (5c:59d6)
+	callba BattleTowerRoomMenu_InitRAM
+	call Function1719ed
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	call Function171a11
+	pop af
+	ld [rSVBK], a
+	ret
+
+Function1719ed: ; 1719ed (5c:59ed)
+	xor a
+	ld [wcd49], a
+	ld [wcd4a], a
+	dec a
+	ld [wcd4b], a
+	call ClearBGPalettes
+	call ClearSprites
+	callba Function171d2b
+	callba ReloadMapPart
+	callba ClearSpriteAnims
+	ret
+
+Function171a11: ; 171a11 (5c:5a11)
+.loop
+	call JoyTextDelay
+	ld a, [wcd49]
+	bit 7, a
+	jr nz, .done
+	call Function171a36
+	callba PlaySpriteAnimations
+	callba ReloadMapPart
+	jr .loop
+.done
+	callba ClearSpriteAnims
+	call ClearSprites
+	ret
+
+Function171a36: ; 171a36 (5c:5a36)
+	ld a, [wcd49]
+	ld e, a
+	ld d, 0
+	ld hl, Jumptable_171a45
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+Jumptable_171a45: ; 171a45 (5c:5a45)
+	dw Function171a95
+	dw Function171ac9
+	dw Function171a5d
+	dw Function171ad7
+	dw Function171a5d
+	dw Function171aec
+	dw Function171b4b
+	dw Function171b85
+	dw Function171bcc
+	dw Function171c2c
+	dw Function171c39
+	dw Function171c41
+
+
+Function171a5d: ; 171a5d (5c:5a5d)
+	ld a, [wc821]
+	bit 1, a
+	jr nz, .asm_171a6a
+	bit 0, a
+	ret nz
+	jp Function171c66
+
+.asm_171a6a
+	ld a, $0
+	call Function3e32
+	ld [wc300], a
+	ld a, l
+	ld [wc301], a
+	ld a, h
+	ld [wc302], a
+	ld a, $a
+	call Function3e32
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	callba BattleTowerRoomMenu_Cleanup
+	pop af
+	ld [rSVBK], a
+	ld a, $a
+	ld [wcd49], a
+	ret
+
+Function171a95: ; 171a95 (5c:5a95)
+	callba Function171ccd
+	hlcoord 2, 8
+	ld de, String_171aa7
+	call PlaceString
+	jp Function171c66
+
+; 171aa7 (5c:5aa7)
+
+String_171aa7: ; 171aa7
+	db   "モバイルアダプタに"
+	next "せつぞく しています"
+	next "しばらく おまちください"
+	db   "@"
+; 171ac9
+
+Function171ac9: ; 171ac9 (5c:5ac9)
+	ld de, wcd81
+	ld hl, $5c
+	ld a, $2
+	call Function3e32
+	jp Function171c66
+
+Function171ad7: ; 171ad7 (5c:5ad7)
+	xor a
+	ld hl, $c608
+	ld bc, $66
+	call ByteFill
+	ld de, $c608
+	ld a, $c
+	call Function3e32
+	jp Function171c66
+
+Function171aec: ; 171aec (5c:5aec)
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	callba BattleTowerRoomMenu_Cleanup
+	pop af
+	ld [rSVBK], a
+	hlcoord 2, 6
+	ld a, $8
+.asm_171b01
+	push af
+	push hl
+	xor a
+	ld bc, $10
+	call ByteFill
+	pop hl
+	ld de, $14
+	add hl, de
+	pop af
+	dec a
+	jr nz, .asm_171b01
+	hlcoord 2, 7
+	ld a, $3
+	ld de, $c608
+.asm_171b1b
+	push af
+	push hl
+	ld a, [de]
+	and a
+	jr z, .asm_171b34
+	ld a, [wcd4b]
+	inc a
+	ld [wcd4b], a
+	push hl
+	call Function171b42
+	pop hl
+	ld bc, $ffec
+	add hl, bc
+	call Function171b42
+.asm_171b34
+	pop hl
+	ld bc, $14
+	add hl, bc
+	add hl, bc
+	add hl, bc
+	pop af
+	dec a
+	jr nz, .asm_171b1b
+	jp Function171c66
+
+Function171b42: ; 171b42 (5c:5b42)
+	ld a, [de]
+	inc de
+	and a
+	ret z
+	sub $20
+	ld [hli], a
+	jr Function171b42
+
+Function171b4b: ; 171b4b (5c:5b4b)
+	depixel 8, 2
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, $8
+	ld [hl], a
+
+	depixel 8, 19
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, $9
+	ld [hl], a
+
+	depixel 17, 14, 2, 0
+	ld a, SPRITE_ANIM_INDEX_1D
+	call _InitSpriteAnimStruct
+	ld hl, SPRITEANIMSTRUCT_0C
+	add hl, bc
+	ld a, $a
+	ld [hl], a
+
+	ld a, $4
+	ld [wcd23], a
+	ld a, $8
+	ld [wcd24], a
+	jp Function171c66
+
+Function171b85: ; 171b85 (5c:5b85)
+	ld hl, hJoyPressed ; $ffa7
+	ld a, [hl]
+	and $2
+	jp nz, Function171b9f
+	ld a, [hl]
+	and $1
+	jp nz, Function171bbd
+	ld a, [hl]
+	and $40
+	jr nz, asm_171ba5
+	ld a, [hl]
+	and $80
+	jr nz, asm_171baf
+	ret
+
+Function171b9f: ; 171b9f (5c:5b9f)
+	ld a, $80
+	ld [wcd49], a
+	ret
+
+asm_171ba5: ; 171ba5 (5c:5ba5)
+	ld a, [wcd4a]
+	and a
+	ret z
+	dec a
+	ld [wcd4a], a
+	ret
+
+asm_171baf: ; 171baf (5c:5baf)
+	ld a, [wcd4b]
+	ld c, a
+	ld a, [wcd4a]
+	cp c
+	ret z
+	inc a
+	ld [wcd4a], a
+	ret
+
+Function171bbd: ; 171bbd (5c:5bbd)
+	call PlayClickSFX
+	ld a, $8
+	ld [wcd23], a
+	xor a
+	ld [wcd24], a
+	jp Function171c66
+
+Function171bcc: ; 171bcc (5c:5bcc)
+	ld hl, hJoyPressed ; $ffa7
+	ld a, [hl]
+	and $2
+	jp nz, Function171bdc
+	ld a, [hl]
+	and $1
+	jp nz, Function171beb
+	ret
+
+Function171bdc: ; 171bdc (5c:5bdc)
+	ld a, $4
+	ld [wcd23], a
+	ld a, $8
+	ld [wcd24], a
+	ld hl, wcd49
+	dec [hl]
+	ret
+
+Function171beb: ; 171beb (5c:5beb)
+	ld a, $5
+	call GetSRAMBank
+	ld a, [wcd4a]
+	ld [$aa4a], a
+	call CloseSRAM
+	ld hl, MenuDataHeader_171c6b
+	call LoadMenuDataHeader
+	call MenuBox
+	call MenuBoxCoord2Tile
+	callba ReloadMapPart
+	hlcoord 1, 14
+	ld de, String_171c73
+	call PlaceString
+	ld a, [wcd4a]
+	cp $2
+	jr z, .asm_171c1f
+	ld a, $8
+	jr .asm_171c21
+.asm_171c1f
+	ld a, $c
+.asm_171c21
+	ld [wcd24], a
+	ld a, $1e
+	ld [wcd4c], a
+	call Function171c66
+
+Function171c2c: ; 171c2c (5c:5c2c)
+	ld hl, wcd4c
+	dec [hl]
+	ret nz
+	call ExitMenu
+	call ClearBGPalettes
+	jr asm_171c60
+
+Function171c39: ; 171c39 (5c:5c39)
+	ld a, $28
+	ld [wcd4c], a
+	call Function171c66
+
+Function171c41: ; 171c41 (5c:5c41)
+	ld hl, wcd4c
+	dec [hl]
+	ret nz
+	call ClearBGPalettes
+	callba MobileFunc_106462
+	callba Function106464
+	ld a, $2
+	ld [wc303], a
+	callba DisplayMobileError
+asm_171c60: ; 171c60 (5c:5c60)
+	ld a, $80
+	ld [wcd49], a
+	ret
+
+Function171c66: ; 171c66 (5c:5c66)
+	ld hl, wcd49
+	inc [hl]
+	ret
+
+; 171c6b (5c:5c6b)
+
+MenuDataHeader_171c6b: ; 171c6b
+	db $40 ; flags
+	db 12,  0 ; start coords
+	db 17, 19 ; end coords
+	dw NULL
+	db 0 ; default option
+; 171c73
+
+String_171c73: ; 171c73
+	db   "モバイルセンターを けってい"
+	next "しました@"
+; 171c87
+
+Function171c87: ; 171c87 (5c:5c87)
+	call DisableLCD
+	ld hl, GFX_171db1
+	ld de, VTiles2 tile $00
+	ld bc, $6e0
+	call CopyBytes
+	ld hl, LZ_172abd
+	ld de, VTiles0 tile $00
+	call Decompress
+	call EnableLCD
+	ld hl, Tilemap_172491
+	decoord 0, 0
+	ld bc, $168
+	call CopyBytes
+	ld hl, Attrmap_1727ed
+	decoord 0, 0, AttrMap
+	ld bc, $168
+	call CopyBytes
+	hlcoord 3, 2
+	ld de, String_172e31
+	call PlaceString
+	hlcoord 3, 16
+	ld de, String_172e3f
+	call PlaceString
+	ret
+
+Function171ccd: ; 171ccd (5c:5ccd)
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_171d71
+	ld de, UnknBGPals
+	ld bc, $40
+	call CopyBytes
+	ld hl, EngineBuffer5
+	ld a, $ff
+	ld [hli], a
+	ld a, $7f
+	ld [hl], a
+	call SetPalettes
+	pop af
+	ld [rSVBK], a
+	ret
+
+Function171cf0: ; 171cf0 (5c:5cf0)
+	xor a
+	hlcoord 4, 15
+	ld [hli], a
+	ld [hli], a
+	ld a, [wcd4b]
+	xor $1
+	ld [wcd4b], a
+	and a
+	jr nz, .asm_171d16
+	ld hl, Tilemap_17251d
+	decoord 0, 7
+	ld bc, $8c
+	call CopyBytes
+	hlcoord 3, 16
+	ld de, String_172e3f
+	jp PlaceString
+
+.asm_171d16
+	ld hl, Tilemap_1725f9
+	decoord 0, 7
+	ld bc, $8c
+	call CopyBytes
+	hlcoord 3, 16
+	ld de, String_172e4e
+	jp PlaceString
+
+Function171d2b: ; 171d2b (5c:5d2b)
+	call DisableLCD
+	ld hl, GFX_171db1
+	ld de, VTiles2 tile $00
+	ld bc, $6e0
+	call CopyBytes
+	ld hl, LZ_172abd
+	ld de, VTiles0 tile $00
+	call Decompress
+	call EnableLCD
+	ld hl, Tilemap_172685
+	decoord 0, 0
+	ld bc, $168
+	call CopyBytes
+	ld hl, Attrmap_172955
+	decoord 0, 0, AttrMap
+	ld bc, $168
+	call CopyBytes
+	hlcoord 2, 2
+	ld de, String_172e5d
+	call PlaceString
+	hlcoord 14, 16
+	ld de, String_172e58
+	call PlaceString
+	ret
+
+; 171d71 (5c:5d71)
+
+Palette_171d71:
+	RGB  0,  0,  0
+	RGB  3,  0,  0
+	RGB  5,  0,  0
+	RGB 31, 31, 29
+	RGB  0,  2, 10
+	RGB  2, 10, 21
+	RGB  0,  0,  0
+	RGB 10, 26, 31
+	RGB  0,  0,  0
+	RGB  0,  7,  8
+	RGB 31,  8,  0
+	RGB  1, 17, 15
+	RGB 31, 16,  0
+	RGB 31, 22,  0
+	RGB 31, 27,  0
+	RGB 31, 31,  0
+	RGB 31, 18,  6
+	RGB  0,  3,  0
+	RGB  0,  9,  0
+	RGB  0, 12,  0
+	RGB  0, 16,  0
+	RGB  0, 22,  0
+	RGB  0, 25,  0
+	RGB  0, 27,  0
+	RGB  5,  5, 16
+	RGB  8, 19, 28
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 31, 31, 29
+	RGB 21, 21, 20
+	RGB 11, 11, 10
+	RGB  0,  0,  0
+
+GFX_171db1:
+INCBIN "gfx/unknown/ascii_font.2bpp"
+Tilemap_172491:
+INCBIN "gfx/unknown/172491.tilemap"
+Tilemap_17251d:
+INCBIN "gfx/unknown/17251d.tilemap"
+Tilemap_1725f9:
+INCBIN "gfx/unknown/1725f9.tilemap"
+Tilemap_172685:
+INCBIN "gfx/unknown/172685.tilemap"
+Attrmap_1727ed:
+INCBIN "gfx/unknown/1727ed.attrmap"
+Attrmap_172955:
+INCBIN "gfx/unknown/172955.attrmap"
+LZ_172abd:
+INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
+
+String_172e31: ; 172e31
+	db "パスワード", $1f, "いれてください@"
+String_172e3f: ; 172e3f
+	db "きりかえ やめる  けってい@"
+String_172e4e: ; 172e4e
+	db "きりかえ やめる  "
+String_172e58:
+	db "けってい@"
+String_172e5d: ; 172e5d
+	db "せつぞくする モバイルセンターを"
+	next "えらんで ください@"
+; 172e78
+
+
+Function172e78: ; 172e78 (5c:6e78)
+	ld a, $7f
+	hlcoord 0, 0
+	ld bc, $168
+	call ByteFill
+	ld a, $7
+	hlcoord 0, 0, AttrMap
+	ld bc, $168
+	call ByteFill
+	call DisableLCD
+	ld hl, GameBoyN64GFX
+	ld de, VTiles2 tile $00
+	ld bc, $610
+	call CopyBytes
+	call EnableLCD
+	ld hl, Tilemap_1733af
+	decoord 0, 0
+	ld bc, $168
+	call CopyBytes
+	ld hl, Attrmap_173517
+	decoord 0, 0, AttrMap
+	ld bc, $168
+	call CopyBytes
+	ret
+
+; 172eb9 (5c:6eb9)
+
+Function172eb9:
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_172edf
+	ld de, UnknBGPals
+	ld bc, $40
+	call CopyBytes
+	ld hl, Palette_172edf
+	ld de, BGPals
+	ld bc, $40
+	call CopyBytes
+	call SetPalettes
+	pop af
+	ld [rSVBK], a
+	ret
+
+; 172edf (5c:6edf)
+
+Palette_172edf:
+	RGB  5, 12, 17
+	RGB 31, 31, 31
+	RGB 18, 25, 28
+	RGB 10, 17, 21
+	RGB  6, 13, 18
+	RGB 31, 31, 31
+	RGB 20, 26, 28
+	RGB 12, 19, 23
+	RGB  3, 10, 16
+	RGB 31, 31, 31
+	RGB  6, 13, 18
+	RGB 20, 26, 28
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  5,  5, 16
+	RGB  8, 19, 28
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+GameBoyN64GFX:
+INCBIN "gfx/trade/game_boy_n64.2bpp"
+
+Tilemap_1733af:
+IF DEF(CRYSTAL11)
+INCBIN "gfx/unknown/1733af_corrupt.tilemap"
+ELSE
+INCBIN "gfx/unknown/1733af.tilemap"
+ENDC
+
+Attrmap_173517:
+INCBIN "gfx/unknown/173517.attrmap"
--- /dev/null
+++ b/mobile/mobile_5f.asm
@@ -1,0 +1,5310 @@
+
+SECTION "bank5F", ROMX
+
+Function17c000: ; 17c000
+
+	call DisableLCD
+
+	ld hl, VTiles2
+	ld bc, $31 tiles
+	xor a
+	call ByteFill
+
+	call LoadStandardFont
+	call LoadFontsExtra
+
+	ld hl, HaveWantMap
+	decoord 0, 0
+	bccoord 0, 0, AttrMap
+
+	ld a, SCREEN_HEIGHT
+.y
+	push af
+	ld a, SCREEN_WIDTH
+
+	push hl
+.x
+	push af
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [bc], a
+	inc bc
+	pop af
+	dec a
+	jr nz, .x
+	pop hl
+
+	push bc
+	ld bc, BG_MAP_WIDTH * 2
+	add hl, bc
+	pop bc
+
+	pop af
+	dec a
+	jr nz, .y
+
+	ld a, [rSVBK]
+	push af
+
+	ld a, 5 ; BANK(UnknBGPals)
+	ld [rSVBK], a
+
+	ld hl, HaveWantPals
+	ld de, UnknBGPals
+	ld bc, $80
+	call CopyBytes
+
+	pop af
+	ld [rSVBK], a
+
+	ld hl, MobileSelectGFX
+	ld de, VTiles0 tile $30
+	ld bc, $20 tiles
+	call CopyBytes
+
+	ld a, 1
+	ld [rVBK], a
+
+	ld hl, HaveWantGFX
+	ld de, VTiles2
+	ld bc, $80 tiles
+	call CopyBytes
+
+	ld hl, HaveWantGFX + $800
+	ld de, VTiles1
+	ld bc, $10 tiles
+	call CopyBytes
+
+	xor a
+	ld [rVBK], a
+
+	call EnableLCD
+	callba ReloadMapPart
+	ret
+; 17c083
+
+HaveWantGFX: ; 17c083
+INCBIN "gfx/mobile/havewant.2bpp"
+
+MobileSelectGFX: ; 17c983
+INCBIN "gfx/mobile/select.2bpp"
+
+HaveWantMap: ; 17cb83
+; Interleaved tile/palette map.
+INCBIN "gfx/mobile/havewant_map.bin"
+
+HaveWantPals: ; 17cff3
+; BG and OBJ palettes.
+	RGB  0,  0,  0
+	RGB 21, 21, 21
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB  0,  0,  0
+	RGB  4, 17, 29
+	RGB  6, 19, 31
+	RGB 31, 31, 31
+
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB  0,  0,  0
+	RGB  2, 13, 18
+	RGB  6, 19, 31
+	RGB 31, 31, 31
+
+	RGB  0,  0,  0
+	RGB 31,  5,  5
+	RGB 29, 21, 21
+	RGB 31, 31, 31
+
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB  0,  0,  0
+	RGB  4, 17, 29
+	RGB  6, 19, 31
+	RGB  2, 15, 27
+
+	RGB  0,  0,  0
+	RGB 28, 19, 18
+	RGB 25,  9,  0
+	RGB  0,  0,  0
+
+	RGB  0,  0,  0
+	RGB 31, 27, 27
+	RGB 31, 10,  4
+	RGB 29,  0,  0
+
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 26,  8, 23
+	RGB 22,  0, 16
+
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 20,  8, 31
+	RGB 15,  1, 26
+
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 17, 12, 31
+	RGB 12,  6, 31
+
+	RGB  0, 16,  0
+	RGB 11, 11, 14
+	RGB  5,  5,  7
+	RGB 31, 31, 31
+
+	RGB  0, 31,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+	RGB 16, 31,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+	RGB  0,  0,  0
+
+
+CheckStringForErrors: ; 17d073
+; Valid character ranges:
+; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
+.loop
+	ld a, [de]
+	inc de
+	and a
+	jr z, .NextChar
+	cp $60
+	jr nc, .NextChar
+	cp $4e
+	jr z, .NextChar
+	cp "@"
+	jr z, .Done
+	cp $5
+	jr c, .Fail
+	cp "<PLAY_G>"
+	jr c, .NextChar
+	cp $19
+	jr c, .Fail
+	cp $1d
+	jr c, .NextChar
+	cp $26
+	jr c, .Fail
+	cp $35
+	jr c, .NextChar
+	cp $3a
+	jr c, .Fail
+	cp $3f
+	jr c, .NextChar
+	cp $40
+	jr c, .Fail
+	cp $49
+	jr c, .NextChar
+
+.Fail:
+	scf
+	ret
+
+.NextChar:
+	dec c
+	jr nz, .loop
+
+.Done:
+	and a
+	ret
+; 17d0b3
+
+CheckStringForErrors_IgnoreTerminator: ; 17d0b3
+; Find control chars
+.loop
+	ld a, [de]
+	inc de
+	and a
+	jr z, .next
+	cp "<DEXEND>" + 1
+	jr nc, .next
+	cp "<NEXT>"
+	jr z, .next
+	cp "@"
+	jr z, .next
+
+	cp $5
+	jr c, .end
+	cp "<PLAY_G>"
+	jr c, .next
+	cp $19
+	jr c, .end
+	cp $1d
+	jr c, .next
+	cp "%" + 1
+	jr c, .end
+	cp $35
+	jr c, .next
+	cp "<GREEN>" + 1
+	jr c, .end
+	cp "<ENEMY>"
+	jr c, .next
+	cp "<ENEMY>" + 1
+	jr c, .end
+	cp "<MOM>"
+	jr c, .next
+
+.end
+	scf
+	ret
+
+.next
+	dec c
+	jr nz, .loop
+	and a
+	ret
+; 17d0f3
+
+Function17d0f3: ; 17d0f3
+	ld a, [$c608 + 5]
+	ld [wOTTrademonSpecies], a
+	ld [CurPartySpecies], a
+	ld a, [wcd81]
+	ld [$c74e], a
+	ld hl, $c63d
+	ld de, wOTTrademonOTName
+	ld bc, 5
+	call CopyBytes
+	ld a, "@"
+	ld [de], a
+	ld a, [$c608 + 11]
+	ld [wOTTrademonID], a
+	ld a, [$c608 + 12]
+	ld [wOTTrademonID + 1], a
+	ld hl, $c608 + 26
+	ld a, [hli]
+	ld [wOTTrademonDVs], a
+	ld a, [hl]
+	ld [wOTTrademonDVs + 1], a
+	ld bc, $c608 + 5
+	callba GetCaughtGender
+	ld a, c
+	ld [wOTTrademonCaughtData], a
+	call SpeechTextBox
+	call FadeToMenu
+	callba Function10804d
+	callba Function17d1f1
+	ld a, $1
+	ld [wForceEvolution], a
+	ld a, $2
+	ld [wLinkMode], a
+	callba EvolvePokemon
+	xor a
+	ld [wLinkMode], a
+	callba SaveAfterLinkTrade
+	ld a, $5
+	call GetSRAMBank
+	ld a, $5
+	ld [$a800], a
+	call CloseSRAM
+	ld a, [MapGroup]
+	ld b, a
+	ld a, [MapNumber]
+	ld c, a
+	call GetMapTrigger
+	ld a, d
+	or e
+	jr z, .asm_17d180
+	ld a, $1
+	ld [de], a
+
+.asm_17d180
+	call CloseSubmenu
+	call RestartMapMusic
+	ret
+; 17d187
+
+Mobile_CopyDefaultOTName: ; 17d187
+	ld hl, Mobile5F_KrissName
+	ld de, $c63d
+	ld bc, 5
+	call CopyBytes
+	ret
+; 17d194
+
+Mobile5F_KrissName:
+	db "クりス@@"
+; 17d198
+
+Mobile_CopyDefaultNickname: ; 17d199
+	ld hl, .DefaultNickname
+	ld de, $c642
+	ld bc, 5
+	call CopyBytes
+	ret
+; 17d1a6
+
+.DefaultNickname:
+	db "?????"
+
+Mobile_CopyDefaultMail: ; 17d1ab
+	ld a, "@"
+	ld hl, $c647
+	ld bc, MAIL_MSG_LENGTH + 1
+	call ByteFill
+	ld hl, .DefaultMessage
+	ld de, $c647
+	ld bc, 6
+	call CopyBytes
+	ret
+; 17d1c3
+
+.DefaultMessage:
+	db "こんにちは@"
+; 17d1c9
+
+Mobile_CopyDefaultMailAuthor: ; 17d1c9
+	ld a, "@"
+	ld de, $c668
+	ld bc, 5
+	call ByteFill
+	ld hl, Mobile5F_KrissName
+	ld de, $c668
+	ld bc, 5
+	call CopyBytes
+	ret
+; 17d1e1
+
+CheckStringContainsLessThanBNextCharacters: ; 17d1e1
+.loop
+	ld a, [de]
+	inc de
+	cp "<NEXT>"
+	jr nz, .next_char
+	dec b
+	jr z, .done
+
+.next_char
+	dec c
+	jr nz, .loop
+	and a
+	ret
+
+.done
+	scf
+	ret
+; 17d1f1
+
+Function17d1f1: ; 17d1f1
+	ld a, [CurPartySpecies]
+	dec a
+	call SetSeenAndCaughtMon
+
+	ld a, [CurPartySpecies]
+	cp UNOWN
+	jr nz, .asm_17d223
+
+	ld hl, PartyMon1DVs
+	ld a, [PartyCount]
+	dec a
+	ld bc, PARTYMON_STRUCT_LENGTH
+	call AddNTimes
+	predef GetUnownLetter
+	callab UpdateUnownDex
+	ld a, [wFirstUnownSeen]
+	and a
+	jr nz, .asm_17d223
+
+	ld a, [UnownLetter]
+	ld [wFirstUnownSeen], a
+
+.asm_17d223
+	ret
+; 17d224
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Parameter: [ScriptVar] = 0..1
+;
+; if [ScriptVar] == 0
+;    Show japanese menu options
+;    - News - News - ??? - Cancel
+; if [ScriptVar] == 1
+;    Show BattleTower-Menu with 3 options in english language
+;    - Challenge - Explanation - Cancel
+Special_Menu_ChallengeExplanationCancel: ; 17d224
+	ld a, [ScriptVar]
+	and a
+	jr nz, .English
+	ld a, $4
+	ld [ScriptVar], a
+	ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option
+	jr .Load_Interpret
+
+.English:
+	ld a, $4
+	ld [ScriptVar], a
+	ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu
+
+.Load_Interpret:
+	call LoadMenuDataHeader
+	call Function17d246
+	call CloseWindow
+	ret
+; 17d246
+
+Function17d246: ; 17d246
+	call VerticalMenu
+	jr c, .Exit
+	ld a, [ScriptVar]
+	cp $5
+	jr nz, .UsewMenuCursorY
+	ld a, [wMenuCursorY]
+	cp $3
+	ret z
+	jr c, .UsewMenuCursorY
+	dec a
+	jr .LoadToScriptVar
+
+.UsewMenuCursorY:
+	ld a, [wMenuCursorY]
+
+.LoadToScriptVar:
+	ld [ScriptVar], a
+	ret
+
+.Exit:
+	ld a, $4
+	ld [ScriptVar], a
+	ret
+; 17d26a
+
+MenuDataHeader_17d26a: ; 17d26a
+	db $40 ; flags
+	db  0,  0 ; start coords
+	db  9, 14 ; end coords
+	dw MenuData2_17d272
+	db 1 ; default option
+
+MenuData2_17d272: ; 17d272
+	db $a0 ; flags
+	db 4
+	db "ニュース¯よみこむ@"
+	db "ニュース¯みる@"
+	db "せつめい@"
+	db "やめる@"
+; 17d28f
+
+MenuDataHeader_ChallengeExplanationCancel: ; 17d28f
+	db $40 ; flags
+	db  0,  0 ; start coords
+	db  7, 14 ; end coords
+	dw MenuData2_ChallengeExplanationCancel
+	db 1 ; default option
+
+MenuData2_ChallengeExplanationCancel: ; 17d297
+	db $a0 ; flags
+	db 3
+	db "Challenge@"
+	db "Explanation@"
+	db "Cancel@"
+; 17d2b6
+
+Function17d2b6: ; 17d2b6
+	call Function17d2c0
+	callba Function1181da
+	ret
+; 17d2c0
+
+Function17d2c0: ; 17d2c0
+	xor a
+	ld [wJumptableIndex], a
+	ld [wcf64], a
+	ld [wcf65], a
+	ld [wcf66], a
+	ret
+; 17d2ce
+
+Function17d2ce: ; 17d2ce
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$aa72]
+	call CloseSRAM
+	and a
+	jr nz, .asm_17d2e2
+	ld a, $1
+	ld [ScriptVar], a
+	ret
+
+.asm_17d2e2
+	call Function17d314
+	ret c
+	call SpeechTextBox
+	call FadeToMenu
+	ld a, [rSVBK]
+	push af
+	ld a, $4
+	ld [rSVBK], a
+	call Function17d370
+	call Function17d45a
+	pop af
+	ld [rSVBK], a
+	ld de, MUSIC_MOBILE_CENTER
+	ld a, e
+	ld [wMapMusic], a
+	ld [MusicFadeID], a
+	ld a, d
+	ld [MusicFadeID + 1], a
+	call PlayMusic
+	call ReturnToMapFromSubmenu
+	call CloseSubmenu
+	ret
+; 17d314
+
+Function17d314: ; 17d314
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$b1b1]
+	call CloseSRAM
+	cp $21
+	jr nc, .asm_17d354
+	ld a, $6
+	call GetSRAMBank
+	ld l, $0
+	ld h, l
+	ld de, $a006
+	ld a, [$a004]
+	ld c, a
+	ld a, [$a005]
+	ld b, a
+.asm_17d336
+	push bc
+	ld a, [de]
+	inc de
+	ld c, a
+	ld b, $0
+	add hl, bc
+	pop bc
+	dec bc
+	ld a, b
+	or c
+	jr nz, .asm_17d336
+	ld a, [$a002]
+	cp l
+	jr nz, .asm_17d354
+	ld a, [$a003]
+	cp h
+	jr nz, .asm_17d354
+	call CloseSRAM
+	and a
+	ret
+
+.asm_17d354
+	call CloseSRAM
+	ld a, $5
+	call GetSRAMBank
+	xor a
+	ld hl, $aa73
+	ld bc, $c
+	call ByteFill
+	call CloseSRAM
+	ld a, $2
+	ld [ScriptVar], a
+	scf
+	ret
+; 17d370
+
+Function17d370: ; 17d370
+	xor a
+	ld [wcd77], a
+	ld [wcd78], a
+	ld [wcd79], a
+	dec a
+	ld [wcd6c], a
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearScreen
+	callba ReloadMapPart
+	call DisableLCD
+	ld hl, VTiles1 tile $6e
+	ld de, $c608
+	ld bc, 1 tiles
+	call CopyBytes
+	ld a, $1
+	ld [rVBK], a
+	ld hl, PokemonNewsGFX
+	ld de, VTiles1
+	ld bc, $48 tiles
+	call CopyBytes
+	xor a
+	ld hl, VTiles2 tile $7f
+	ld bc, 1 tiles
+	call ByteFill
+	ld hl, $c608
+	ld de, VTiles1 tile $6e
+	ld bc, 1 tiles
+	call CopyBytes
+	xor a
+	ld [rVBK], a
+	ld hl, GFX_17eb7e
+	ld de, VTiles2 tile $60
+	ld bc, 1 tiles
+	call CopyBytes
+	call EnableLCD
+	call Function17d60b
+	ld a, $0
+	ld [BGMapBuffer], a
+	ld a, $d0
+	ld [wcd21], a
+	ld a, $6
+	call GetSRAMBank
+	ld hl, $a006
+	ld de, UnknBGPals
+	ld bc, $1000
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 17d3f6
+
+Function17d3f6: ; 17d3f6
+	call ClearBGPalettes
+	call ClearSprites
+	call ClearScreen
+	callba ReloadMapPart
+
+Function17d405:
+	call DisableLCD
+	ld hl, VTiles1 tile $6e
+	ld de, $c608
+	ld bc, 1 tiles
+	call CopyBytes
+	ld a, $1
+	ld [rVBK], a
+	ld hl, PokemonNewsGFX
+	ld de, VTiles1
+	ld bc, $48 tiles
+	call CopyBytes
+	xor a
+	ld hl, VTiles2 tile $7f
+	ld bc, 1 tiles
+	call ByteFill
+	ld hl, $c608
+	ld de, VTiles1 tile $6e
+	ld bc, 1 tiles
+	call CopyBytes
+	xor a
+	ld [rVBK], a
+	call EnableLCD
+	ld a, [rSVBK]
+	push af
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, Palette_17eff6
+	ld de, UnknBGPals
+	ld bc, 8 palettes
+	call CopyBytes
+	call SetPalettes
+	pop af
+	ld [rSVBK], a
+	ret
+; 17d45a
+
+Function17d45a: ; 17d45a
+.asm_17d45a
+	call JoyTextDelay
+	ld a, [wcd77]
+	bit 7, a
+	jr nz, .asm_17d46f
+	call Function17d474
+	callba ReloadMapPart
+	jr .asm_17d45a
+
+.asm_17d46f
+	xor a
+	ld [ScriptVar], a
+	ret
+; 17d474
+
+Function17d474: ; 17d474
+	jumptable Jumptable_17d483, wcd77
+; 17d483
+
+Jumptable_17d483: ; 17d483
+	dw Function17d48d
+	dw Function17d5be
+	dw Function17d5c4
+	dw Function17d6fd
+	dw Function17e427
+; 17d48d
+
+Function17d48d: ; 17d48d
+	ld hl, Palette_17eff6
+	ld de, $c608
+	ld bc, $40
+	call CopyBytes
+	ld hl, TileAttrmap_17eb8e
+	decoord 0, 0
+	bccoord 0, 0, AttrMap
+	ld a, $12
+.asm_17d4a4
+	push af
+	ld a, $14
+	push hl
+.asm_17d4a8
+	push af
+	ld a, [hli]
+	cp $7f
+	jr z, .asm_17d4b0
+	add $80
+
+.asm_17d4b0
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [bc], a
+	inc bc
+	pop af
+	dec a
+	jr nz, .asm_17d4a8
+	pop hl
+	push bc
+	ld bc, $40
+	add hl, bc
+	pop bc
+	pop af
+	dec a
+	jr nz, .asm_17d4a4
+	ld a, [BGMapBuffer]
+	ld l, a
+	ld a, [wcd21]
+	ld h, a
+	ld a, [hli]
+	ld e, a
+	ld a, [wcd6c]
+	cp e
+	jr z, .asm_17d4e0
+	ld a, e
+	ld [wcd6c], a
+	ld [wMapMusic], a
+	ld d, $0
+	call PlayMusic2
+
+.asm_17d4e0
+	ld a, [hli]
+	ld de, $c608
+	ld c, $8
+.asm_17d4e6
+	srl a
+	jr nc, .asm_17d4f6
+	ld b, $8
+	push af
+.asm_17d4ed
+	ld a, [hli]
+	ld [de], a
+	inc de
+	dec b
+	jr nz, .asm_17d4ed
+	pop af
+	jr .asm_17d4fc
+
+.asm_17d4f6
+	push af
+	ld a, e
+	add $8
+	ld e, a
+	pop af
+
+.asm_17d4fc
+	dec c
+	jr nz, .asm_17d4e6
+	push hl
+	call Function17d5f6
+	pop hl
+	ld a, [hli]
+	and a
+	jr z, .asm_17d539
+.asm_17d508
+	push af
+	ld a, [hli]
+	ld [wcd4f], a
+	ld a, [hli]
+	ld [wcd50], a
+	ld a, [hli]
+	ld [wcd51], a
+	ld a, [hli]
+	ld [wcd52], a
+	ld a, [hli]
+	sla a
+	sla a
+	sla a
+	add $98
+	ld [wcd53], a
+	ld de, wcd4f
+	call Function17e613
+	ld a, [hli]
+	ld [wcd53], a
+	ld de, wcd4f
+	call Function17e691
+	pop af
+	dec a
+	jr nz, .asm_17d508
+
+.asm_17d539
+	ld a, [hli]
+.asm_17d53a
+	push af
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	push hl
+	pop de
+	hlcoord 0, 0
+	add hl, bc
+	call PlaceString
+	push de
+	pop hl
+	inc hl
+	pop af
+	dec a
+	jr nz, .asm_17d53a
+	ld de, CreditsTimer
+	ld bc, $c
+	call CopyBytes
+	xor a
+	ld [wcd2e], a
+	ld [wcd2f], a
+	inc a
+	ld [wcd30], a
+	ld [wcd31], a
+	ld de, wcd32
+	ld bc, $10
+	call CopyBytes
+	ld a, [hli]
+	ld [wcd42], a
+	ld a, [hli]
+	ld [wcd43], a
+	ld a, [hli]
+	ld [wMobileInactivityTimerMinutes], a
+	ld a, [hli]
+	ld [wMobileInactivityTimerSeconds], a
+	ld a, [hli]
+	ld [wMobileInactivityTimerFrames], a
+	ld a, [hli]
+	and a
+	jr z, .asm_17d58a
+	call Function17d6a1
+
+.asm_17d58a
+	ld a, l
+	ld [wcd49], a
+	ld a, h
+	ld [wcd4a], a
+	ld a, [wcd42]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	add hl, bc
+	ld a, l
+	ld [wcd4b], a
+	ld a, h
+	ld [wcd4c], a
+	add hl, bc
+	add hl, bc
+	ld a, l
+	ld [wcd4d], a
+	ld a, h
+	ld [wcd4e], a
+	call Function17e451
+	call Function17e55b
+	call Function17e5af
+	callba ReloadMapPart
+	jp Function17e438
+; 17d5be
+
+Function17d5be: ; 17d5be
+	call SetPalettes
+	call Function17e438
+
+Function17d5c4:
+	ld a, [hJoyPressed]
+	and a
+	ret z
+	ld c, 0
+	ld b, c
+	ld hl, wcd32
+.loop
+	srl a
+	jr c, .got_button
+	inc c
+	inc c
+	jr .loop
+
+.got_button
+	add hl, bc
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	and c
+	cp $ff
+	ret z
+	ld a, [wcd20]
+	ld l, a
+	ld a, [wcd21]
+	ld h, a
+	add hl, bc
+	ld a, l
+	ld [wcd78], a
+	ld a, h
+	ld [wcd79], a
+	ld a, $3
+	ld [wcd77], a
+	ret
+; 17d5f6
+
+Function17d5f6: ; 17d5f6
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, $c608
+	ld de, UnknBGPals
+	ld bc, 8 palettes
+	call CopyBytes
+	ld a, $4
+	ld [rSVBK], a
+	ret
+; 17d60b
+
+Function17d60b: ; 17d60b
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $b1d3
+	ld de, $c608
+	ld bc, $20
+	call CopyBytes
+	ld a, [$b1b1]
+	ld c, a
+	ld a, [$b1b2]
+	ld b, a
+	ld a, [$b1b3]
+	ld l, a
+	ld a, [$b1b4]
+	ld h, a
+	call CloseSRAM
+	ld a, $6
+	call GetSRAMBank
+	ld de, $c708
+	ld a, c
+	and a
+	jr z, .asm_17d684
+.asm_17d63b
+	push bc
+	ld a, l
+	ld [de], a
+	inc de
+	ld a, h
+	ld [de], a
+	inc de
+	ld bc, $a
+	add hl, bc
+	pop bc
+	ld a, [hli]
+	ld [wcd4a], a
+	ld a, [hli]
+	ld [wcd49], a
+	push hl
+	push de
+	ld hl, $c608
+	ld e, b
+	ld d, $0
+	add hl, de
+	ld a, [hli]
+	ld [wcd4b], a
+	ld a, [hl]
+	ld [wcd4c], a
+	pop de
+	pop hl
+	inc b
+	inc b
+	dec c
+	dec c
+	jr z, .asm_17d684
+	push bc
+	push de
+	ld a, [wcd49]
+	ld c, a
+	ld a, [wcd4a]
+	ld b, a
+	ld a, [wcd4b]
+	ld e, a
+	ld a, [wcd4c]
+	ld d, a
+.asm_17d67a
+	add hl, de
+	dec bc
+	ld a, c
+	or b
+	jr nz, .asm_17d67a
+	pop de
+	pop bc
+	jr .asm_17d63b
+
+.asm_17d684
+	call CloseSRAM
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $c708
+	ld de, $b1b3
+	ld a, [$b1b1]
+	ld c, a
+	ld a, [$b1b2]
+	ld b, a
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 17d6a1
+
+
+Function17d6a1: ; 17d6a1
+	push hl
+	ld a, [wcd6e]
+	ld c, a
+	ld b, $0
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $b1d3
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld [wcd47], a
+	ld a, [hl]
+	ld [BGMapPalBuffer], a
+	ld hl, $b1b3
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld c, a
+	ld a, [hl]
+	ld h, a
+	ld l, c
+	call CloseSRAM
+	ld a, $6
+	call GetSRAMBank
+	ld a, l
+	ld [wcd5e], a
+	ld a, h
+	ld [wcd5f], a
+	ld de, wcd60
+	ld bc, $4
+	call CopyBytes
+	inc hl
+	inc hl
+	ld de, wcd64
+	ld bc, $4
+	call CopyBytes
+	ld a, [hli]
+	ld [wcd69], a
+	ld a, [hli]
+	ld [wcd68], a
+	ld a, l
+	ld [wcd6a], a
+	ld a, h
+	ld [wcd6b], a
+	call CloseSRAM
+	pop hl
+	ret
+; 17d6fd
+
+Function17d6fd: ; 17d6fd
+	ld a, [wcd77]
+	bit 7, a
+	jr nz, asm_17d721
+	ld a, [wcd78]
+	ld l, a
+	ld a, [wcd79]
+	ld h, a
+	ld a, [hl]
+	cp $ff
+	jr z, asm_17d721
+
+Function17d711:
+.crash_loop
+	cp $31
+	jr nc, .crash_loop
+	ld e, a
+	ld d, 0
+	ld hl, Jumptable17d72a
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+asm_17d721
+	call Function17e5af
+	ld a, $2
+	ld [wcd77], a
+	ret
+; 17d72a
+
+Jumptable17d72a: ; 17d72a
+	dw Function17d78c
+	dw Function17d78d
+	dw Function17d7b4
+	dw Function17d7c2
+	dw Function17d7d3
+	dw Function17d7e5
+	dw Function17d818
+	dw Function17d833
+	dw Function17d85d
+	dw Function17d902
+	dw Function17d93a
+	dw Function17d98b
+	dw Function17d9e3
+	dw Function17da31
+	dw Function17da9c
+	dw Function17dadc
+	dw Function17db2d
+	dw Function17db56
+	dw Function17db77
+	dw Function17dbe9
+	dw Function17dc1f
+	dw Function17dc9f
+	dw Function17dca9
+	dw Function17dccf
+	dw Function17dd13
+	dw Function17dd30
+	dw Function17dd49
+	dw Function17ddcd
+	dw Function17de32
+	dw Function17de91
+	dw Function17ded9
+	dw Function17e0fd
+	dw Function17e133
+	dw Function17e165
+	dw Function17e1a1
+	dw Function17e254
+	dw Function17e261
+	dw Function17e270
+	dw Function17e27f
+	dw Function17e293
+	dw Function17e2a7
+	dw Function17e367
+	dw Function17e37e
+	dw Function17e395
+	dw Function17e3ac
+	dw Function17e3c3
+	dw Function17e3e0
+	dw Function17e3f0
+	dw Function17e409
+; 17d78c
+
+Function17d78c: ; 17d78c
+	ret
+; 17d78d
+
+Function17d78d: ; 17d78d
+	call Function17e415
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	call Function17e41e
+	ld a, $6
+	call GetSRAMBank
+	ld hl, $a006
+	add hl, bc
+	ld de, UnknBGPals
+	ld bc, $1000
+	call CopyBytes
+	call CloseSRAM
+	xor a
+	ld [wcd77], a
+	call ClearBGPalettes
+	ret
+; 17d7b4
+
+Function17d7b4: ; 17d7b4
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld d, $0
+	call PlayMusic2
+	call Function17e41e
+	ret
+; 17d7c2
+
+Function17d7c2: ; 17d7c2
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld d, $0
+	call PlaySFX
+	call WaitSFX
+	call Function17e41e
+	ret
+; 17d7d3
+
+Function17d7d3: ; 17d7d3
+	call Function17e415
+	ld a, [hli]
+	dec a
+	ld e, a
+	ld d, $0
+	call PlayCryHeader
+	call WaitSFX
+	call Function17e41e
+	ret
+; 17d7e5
+
+Function17d7e5: ; 17d7e5
+	call Function17e415
+	ld a, [hli]
+	ld [wcd4f], a
+	ld a, [hli]
+	ld [wcd50], a
+	ld a, [hli]
+	ld [wcd51], a
+	ld a, [hli]
+	ld [wcd52], a
+	ld a, [hli]
+	sla a
+	sla a
+	sla a
+	add $98
+	ld [wcd53], a
+	ld de, wcd4f
+	call Function17e613
+	ld a, [hli]
+	ld [wcd53], a
+	ld de, wcd4f
+	call Function17e691
+	call Function17e41e
+	ret
+; 17d818
+
+Function17d818: ; 17d818
+	call Function17e415
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	call Function17e41e
+	call Function17e447
+	ld e, l
+	ld d, h
+	hlcoord 0, 0
+	add hl, bc
+	call PlaceString
+	ret
+; 17d833
+
+Function17d833: ; 17d833
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	call Function17e41e
+	push de
+	push bc
+	call Function17e32b
+	pop bc
+	pop de
+	call Function17e43d
+	ld c, l
+	ld b, h
+	hlcoord 0, 0
+	add hl, de
+	ld e, l
+	ld d, h
+	callba Function11c08f
+	call Function17e349
+	ret
+; 17d85d
+
+Function17d85d: ; 17d85d
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push hl
+	ld hl, UnknBGPals
+	add hl, de
+	ld de, wcc60
+.asm_17d86c
+	ld a, [hli]
+	ld [de], a
+	inc de
+	and a
+	jr nz, .asm_17d86c
+	pop hl
+	ld de, $c608
+	ld c, $0
+.asm_17d878
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_17d8c7
+	ld [wcd4f], a
+	ld a, [hli]
+	ld [wcd50], a
+	ld a, [hli]
+	ld [wcd51], a
+	ld a, [hli]
+	ld [wcd52], a
+	ld a, [wcd51]
+	push af
+	cp $c0
+	jr c, .asm_17d89b
+	ld a, [wcd4f]
+	ld [rSVBK], a
+	jr .asm_17d8a1
+
+.asm_17d89b
+	ld a, [wcd4f]
+	call GetSRAMBank
+
+.asm_17d8a1
+	push hl
+	ld a, [wcd50]
+	ld l, a
+	ld a, [wcd51]
+	ld h, a
+	ld a, [wcd52]
+.asm_17d8ad
+	push af
+	ld a, [hli]
+	ld [de], a
+	inc de
+	inc c
+	pop af
+	dec a
+	jr nz, .asm_17d8ad
+	pop hl
+	pop af
+	cp $c0
+	jr c, .asm_17d8c2
+	ld a, $4
+	ld [rSVBK], a
+	jr .asm_17d878
+
+.asm_17d8c2
+	call CloseSRAM
+	jr .asm_17d878
+
+.asm_17d8c7
+	call Function17e41e
+	push bc
+	ld a, $3
+	ld [rSVBK], a
+	ld hl, $c608
+	ld de, UnknBGPals
+	ld b, $0
+	call CopyBytes
+	ld a, $4
+	ld [rSVBK], a
+	call Function17e32b
+	pop bc
+	ld a, c
+	ld [wcd3b], a
+	xor a
+	ld [wcf66], a
+	callba Function118329
+	ld a, [wc300]
+	and a
+	jr z, .asm_17d8fe
+	cp $a
+	jr z, .asm_17d8fe
+	call Function17e309
+	ret
+
+.asm_17d8fe
+	call Function17e349
+	ret
+; 17d902
+
+Function17d902: ; 17d902
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	push de
+	call Function17e41e
+	call Function17e32b
+	pop de
+	ld hl, UnknBGPals
+	add hl, de
+	ld de, wcc60
+.asm_17d918
+	ld a, [hli]
+	ld [de], a
+	inc de
+	and a
+	jr nz, .asm_17d918
+	xor a
+	ld [wcf66], a
+	callba Function11837a
+	ld a, [wc300]
+	and a
+	jr z, .asm_17d936
+	cp $a
+	jr z, .asm_17d936
+	call Function17e309
+	ret
+
+.asm_17d936
+	call Function17e349
+	ret
+; 17d93a
+
+Function17d93a: ; 17d93a
+	call Function17e415
+	ld de, $c708
+	ld bc, $5
+	call CopyBytes
+	call Function17e41e
+	call Function17e32b
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [$c70c]
+	call Function17e6de
+	ld a, [$c70a]
+	ld [CurPartySpecies], a
+	ld a, [$c70c]
+	ld e, a
+	callba LoadMonPaletteAsNthBGPal
+	call SetPalettes
+	ld a, [$c708]
+	ld l, a
+	ld a, [$c709]
+	ld h, a
+	ld a, [$c70b]
+	ld c, a
+	decoord 0, 0
+	add hl, de
+	ld e, l
+	ld d, h
+	callba HOF_AnimateFrontpic
+	pop af
+	ld [rSVBK], a
+	call Function17e349
+	ret
+; 17d98b
+
+Function17d98b: ; 17d98b
+	call Function17e415
+	ld de, $c708
+	ld bc, $4
+	call CopyBytes
+	call Function17e41e
+	call Function17e32b
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld a, [$c70b]
+	call Function17e6de
+	ld a, [$c70a]
+	ld [TrainerClass], a
+	ld a, [$c70b]
+	ld e, a
+	callba LoadTrainerClassPaletteAsNthBGPal
+	call SetPalettes
+	ld a, [$c708]
+	ld e, a
+	ld a, [$c709]
+	ld d, a
+	push de
+	ld de, VTiles2
+	callba GetTrainerPic
+	pop hl
+	decoord 0, 0
+	add hl, de
+	ld bc, $707
+	predef PlaceGraphic
+	pop af
+	ld [rSVBK], a
+	call Function17e349
+	ret
+; 17d9e3
+
+Function17d9e3: ; 17d9e3
+	call Function17e415
+	ld de, $c708
+	ld bc, $7
+	call CopyBytes
+	call Function17e41e
+	ld a, [$c70b]
+	push af
+	cp $c0
+	jr c, .asm_17da01
+	ld a, [$c70c]
+	ld [rSVBK], a
+	jr .asm_17da07
+
+.asm_17da01
+	ld a, [$c70c]
+	call GetSRAMBank
+
+.asm_17da07
+	ld a, [$c708]
+	ld l, a
+	ld a, [$c709]
+	ld h, a
+	ld a, [$c70a]
+	ld e, a
+	ld a, [$c70b]
+	ld d, a
+	ld a, [$c70d]
+	ld c, a
+	ld a, [$c70e]
+	ld b, a
+	call CopyBytes
+	pop af
+	cp $c0
+	jr c, .asm_17da2d
+	ld a, $4
+	ld [rSVBK], a
+	jr .asm_17da30
+
+.asm_17da2d
+	call CloseSRAM
+
+.asm_17da30
+	ret
+; 17da31
+
+Function17da31: ; 17da31
+	call Function17e415
+	ld de, $c708
+	ld bc, $4
+	call CopyBytes
+	call Function17e41e
+	ld a, [$c709]
+	push af
+	cp $c0
+	jr c, .asm_17da4f
+	ld a, [$c70a]
+	ld [rSVBK], a
+	jr .asm_17da55
+
+.asm_17da4f
+	ld a, [$c70a]
+	call GetSRAMBank
+
+.asm_17da55
+	ld a, [$c708]
+	ld e, a
+	ld a, [$c709]
+	ld d, a
+	ld a, [$c70b]
+	ld c, a
+	bit 7, c
+	jr nz, .asm_17da70
+	ld hl, Unknown_17da8c
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	or [hl]
+	ld [de], a
+	jr .asm_17da7d
+
+.asm_17da70
+	ld hl, Unknown_17da94
+	ld a, c
+	and $7f
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	and [hl]
+	ld [de], a
+
+.asm_17da7d
+	pop af
+	cp $c0
+	jr c, .asm_17da88
+	ld a, $4
+	ld [rSVBK], a
+	jr .asm_17da8b
+
+.asm_17da88
+	call CloseSRAM
+
+.asm_17da8b
+	ret
+; 17da8c
+
+Unknown_17da8c:
+x = 0
+	rept 8
+	db 1 << x
+x = x + 1
+	endr
+
+Unknown_17da94:
+x = 0
+	rept 8
+	db (1 << x) ^ $ff
+x = x + 1
+	endr
+; 17da9c
+
+Function17da9c: ; 17da9c
+	ld a, [wcd31]
+	dec a
+	jr z, .asm_17dabd
+	push af
+	call Function17e566
+	pop af
+	ld [wcd31], a
+	ld hl, wcd24
+	ld a, [wcd2e]
+	sub [hl]
+	ld [wcd2e], a
+	call Function17e55b
+	call Function17e5af
+.asm_17daba
+	jp Function17e415
+
+.asm_17dabd
+	ld a, [wcd2f]
+	and a
+	jr z, .asm_17daba
+	ld hl, wcd24
+	sub [hl]
+	ld [wcd2f], a
+	ld a, [wcd2e]
+	sub [hl]
+	ld [wcd2e], a
+	call Function17e451
+	call Function17e55b
+	call Function17e5af
+	jr .asm_17daba
+; 17dadc
+
+Function17dadc: ; 17dadc
+	ld a, [wcd2e]
+	ld hl, wcd24
+	add [hl]
+	ld hl, wcd42
+	cp [hl]
+	jr z, .asm_17db0e
+	jr nc, .asm_17db0e
+	ld hl, wcd31
+	ld a, [wcd2b]
+	cp [hl]
+	jr z, .asm_17db11
+	call Function17e566
+	ld a, [wcd31]
+	inc a
+	ld [wcd31], a
+	ld hl, wcd24
+	ld a, [wcd2e]
+	add [hl]
+	ld [wcd2e], a
+	call Function17e55b
+	call Function17e5af
+
+.asm_17db0e
+	jp Function17e415
+
+.asm_17db11
+	ld hl, wcd24
+	ld a, [wcd2f]
+	add [hl]
+	ld [wcd2f], a
+	ld a, [wcd2e]
+	add [hl]
+	ld [wcd2e], a
+	call Function17e451
+	call Function17e55b
+	call Function17e5af
+	jr .asm_17db0e
+; 17db2d
+
+Function17db2d: ; 17db2d
+	ld a, [wcd30]
+	ld hl, wcd24
+	cp [hl]
+	jr z, .asm_17db53
+	ld hl, wcd42
+	ld a, [wcd2e]
+	inc a
+	cp [hl]
+	jr z, .asm_17db53
+	ld [wcd2e], a
+	call Function17e566
+	ld a, [wcd30]
+	inc a
+	ld [wcd30], a
+	call Function17e55b
+	call Function17e5af
+
+.asm_17db53
+	jp Function17e415
+; 17db56
+
+Function17db56: ; 17db56
+	ld a, [wcd30]
+	cp $1
+	jr z, .asm_17db74
+	call Function17e566
+	ld a, [wcd30]
+	dec a
+	ld [wcd30], a
+	ld a, [wcd2e]
+	dec a
+	ld [wcd2e], a
+	call Function17e55b
+	call Function17e5af
+
+.asm_17db74
+	jp Function17e415
+; 17db77
+
+Function17db77: ; 17db77
+	ld hl, wcd2d
+	ld a, [wcd2f]
+	add [hl]
+	ld hl, wcd42
+	cp [hl]
+	jr z, .asm_17dbae
+	jr nc, .asm_17dbae
+	call Function17e566
+	ld hl, wcd2d
+	ld a, [wcd2f]
+	add [hl]
+	ld [wcd2f], a
+	ld a, [wcd2e]
+	add [hl]
+	ld hl, wcd42
+	cp [hl]
+	jr c, .asm_17db9f
+	ld a, [hl]
+	dec a
+
+.asm_17db9f
+	ld [wcd2e], a
+	call Function17dbb1
+	call Function17e451
+	call Function17e55b
+	call Function17e5af
+
+.asm_17dbae
+	jp Function17e415
+; 17dbb1
+
+Function17dbb1: ; 17dbb1
+	ld hl, wcd2f
+	ld a, [wcd42]
+	sub [hl]
+	ld hl, wcd2d
+	cp [hl]
+	ret nc
+	ld a, $1
+	ld [wcd30], a
+	ld [wcd31], a
+	ld a, [wcd24]
+	ld c, a
+	ld a, [wcd24]
+	ld b, a
+	ld a, [wcd2e]
+	ld hl, wcd2f
+	sub [hl]
+.asm_17dbd4
+	and a
+	ret z
+	push af
+	ld hl, wcd30
+	ld a, b
+	cp [hl]
+	jr nz, .asm_17dbe4
+	ld a, $1
+	ld [hl], a
+	ld hl, wcd31
+
+.asm_17dbe4
+	inc [hl]
+	pop af
+	dec a
+	jr .asm_17dbd4
+; 17dbe9
+
+Function17dbe9: ; 17dbe9
+	ld hl, wcd2d
+	ld a, [wcd2f]
+	sub [hl]
+	bit 7, a
+	jr z, .asm_17dbf5
+	xor a
+
+.asm_17dbf5
+	ld [wcd2f], a
+	ld a, [wcd30]
+	dec a
+	ld c, a
+	ld a, [wcd31]
+	ld b, a
+	xor a
+	ld hl, wcd24
+.asm_17dc05
+	dec b
+	jr z, .asm_17dc0b
+	add [hl]
+	jr .asm_17dc05
+
+.asm_17dc0b
+	add c
+	ld hl, wcd2f
+	add [hl]
+	ld [wcd2e], a
+	call Function17e451
+	call Function17e55b
+	call Function17e5af
+	jp Function17e415
+; 17dc1f
+
+Function17dc1f: ; 17dc1f
+	call Function17e415
+	ld de, $c688
+	ld bc, $6
+	call CopyBytes
+	call Function17e32b
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld hl, $c688
+	ld a, $40
+	ld [$c708], a
+	ld a, [hli]
+	ld [$c70a], a
+	add $5
+	ld [$c70c], a
+	ld a, [hli]
+	ld [$c709], a
+	add $4
+	ld [$c70b], a
+	ld a, $96
+	ld [$c70d], a
+	ld a, $5c
+	ld [$c70e], a
+	ld a, $1
+	ld [$c70f], a
+	ld hl, $c708
+	call LoadMenuDataHeader
+	call VerticalMenu
+	jr nc, .asm_17dc6e
+	ld a, $2
+	ld [wMenuCursorY], a
+
+.asm_17dc6e
+	call CloseWindow
+	pop af
+	ld [rSVBK], a
+	ld a, [wMenuCursorY]
+	cp $1
+	jr nz, .asm_17dc85
+	ld a, [$c68a]
+	ld l, a
+	ld a, [$c68a + 1]
+	ld h, a
+	jr .asm_17dc8d
+
+.asm_17dc85
+	ld a, [$c68a + 2]
+	ld l, a
+	ld a, [$c68a + 3]
+	ld h, a
+
+.asm_17dc8d
+	push hl
+	call Function17e349
+	pop hl
+	call Function17e40f
+	ret
+; 17dc96
+
+MenuData2_17dc96:
+	db $e0 ; flags
+	db 2
+	db "はい@"
+	db "いいえ@"
+; 17dc9f
+
+Function17dc9f: ; 17dc9f
+	call Function17e415
+	call Function17e41e
+	call RotateFourPalettesLeft
+	ret
+; 17dca9
+
+Function17dca9: ; 17dca9
+	call Function17e415
+	call Function17e41e
+
+Function17dcaf:
+	ld a, $5
+	ld [rSVBK], a
+	ld hl, UnknBGPals
+	ld de, $8
+	ld c, $8
+.asm_17dcbb
+	push hl
+	ld a, $ff
+	ld [hli], a
+	ld a, $7f
+	ld [hl], a
+	pop hl
+	add hl, de
+	dec c
+	jr nz, .asm_17dcbb
+	call RotateThreePalettesRight
+	ld a, $4
+	ld [rSVBK], a
+	ret
+; 17dccf
+
+Function17dccf: ; 17dccf
+	call Function17e415
+	push hl
+	ld a, [wcd4b]
+	ld l, a
+	ld a, [wcd4c]
+	ld h, a
+	ld a, [wcd2e]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld c, a
+	ld a, [hl]
+	ld b, a
+	call Function17e43d
+	call Function17e41e
+.asm_17dced
+	ld a, [wcd78]
+	ld l, a
+	ld a, [wcd79]
+	ld h, a
+	ld a, [hl]
+	cp $ff
+	jr z, .asm_17dd0d
+.crash_loop
+	cp $31
+	jr nc, .crash_loop
+	call Function17d711
+	ld a, [wcd77]
+	bit 7, a
+	jr nz, .asm_17dd0d
+	and a
+	jr z, .asm_17dd11
+	jr .asm_17dced
+
+.asm_17dd0d
+	pop hl
+	jp Function17e41e
+
+.asm_17dd11
+	pop hl
+	ret
+; 17dd13
+
+Function17dd13: ; 17dd13
+	call Function17e415
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	call Function17e41e
+	call Function17e447
+	push hl
+	hlcoord 0, 0
+	add hl, bc
+	push hl
+	pop bc
+	pop hl
+	call PlaceHLTextAtBC
+	ret
+; 17dd30
+
+Function17dd30: ; 17dd30
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld b, $0
+	ld a, [hli]
+	push af
+	call Function17e41e
+	pop af
+	hlcoord 0, 0
+	add hl, de
+	call Function17e600
+	ret
+; 17dd49
+
+Function17dd49: ; 17dd49
+	call Function17e415
+	ld de, $c708
+	ld bc, $a
+	call CopyBytes
+	ld a, [$c711]
+	ld c, a
+	ld b, $0
+	call CopyBytes
+	ld a, [$c70a]
+	cp $c0
+	jr c, .sram
+	ld a, [$c708]
+	ld [rSVBK], a
+	jr .got_bank
+
+.sram
+	ld a, [$c708]
+	call GetSRAMBank
+
+.got_bank
+	ld a, [$c709]
+	ld l, a
+	ld a, [$c70a]
+	ld h, a
+	ld de, $c688
+	ld a, [$c711]
+	ld c, a
+	ld b, $0
+	call CopyBytes
+	ld a, [$c70a]
+	cp $c0
+	jr c, .close_sram
+	ld a, $4
+	ld [rSVBK], a
+	jr .exited_bank
+
+.close_sram
+	call CloseSRAM
+
+.exited_bank
+	ld a, [$c711]
+	ld c, a
+	ld hl, $c712
+	ld de, $c688
+.loop
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	jr z, .next
+	jr c, .load
+	jr .load2
+
+.next
+	dec c
+	jr nz, .loop
+	ld a, [$c70d]
+	ld l, a
+	ld a, [$c70e]
+	ld h, a
+	jr .done
+
+.load2
+	ld a, [$c70f]
+	ld l, a
+	ld a, [$c710]
+	ld h, a
+	jr .done
+
+.load
+	ld a, [$c70b]
+	ld l, a
+	ld a, [$c70c]
+	ld h, a
+
+.done
+	call Function17e40f
+	ret
+; 17ddcd
+
+Function17ddcd: ; 17ddcd
+	call Function17e415
+	ld de, $c708
+	ld bc, $8
+	call CopyBytes
+	ld a, [$c70a]
+	cp $c0
+	jr c, .asm_17dde7
+	ld a, [$c708]
+	ld [rSVBK], a
+	jr .asm_17dded
+
+.asm_17dde7
+	ld a, [$c708]
+	call GetSRAMBank
+
+.asm_17dded
+	ld a, [$c709]
+	ld e, a
+	ld a, [$c70a]
+	ld d, a
+	ld a, [de]
+	ld [$c710], a
+	ld a, [$c70b]
+	ld c, a
+	ld b, $0
+	ld a, [$c70a]
+	cp $c0
+	jr c, .asm_17de0c
+	ld a, $4
+	ld [rSVBK], a
+	jr .asm_17de0f
+
+.asm_17de0c
+	call CloseSRAM
+
+.asm_17de0f
+	push hl
+	ld hl, Unknown_17da8c
+	add hl, bc
+	ld a, [hl]
+	ld hl, $c710
+	and [hl]
+	pop hl
+	jr nz, .asm_17de26
+	ld a, [$c70e]
+	ld l, a
+	ld a, [$c70f]
+	ld h, a
+	jr .asm_17de2e
+
+.asm_17de26
+	ld a, [$c70c]
+	ld l, a
+	ld a, [$c70d]
+	ld h, a
+
+.asm_17de2e
+	call Function17e40f
+	ret
+; 17de32
+
+Function17de32: ; 17de32
+	call Function17e415
+	ld de, $c708
+	ld bc, $9
+	call CopyBytes
+	ld a, [$c710]
+	ld c, a
+	ld b, $0
+	call CopyBytes
+	ld a, $6
+	call GetSRAMBank
+	call Function17f4f6
+	ld a, [$c708]
+	ld e, a
+	ld a, [$c709]
+	ld d, a
+	add hl, de
+	ld e, l
+	ld d, h
+	ld a, [$c710]
+	ld c, a
+	ld hl, $c711
+.asm_17de61
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	jr z, .asm_17de6b
+	jr c, .asm_17de82
+	jr .asm_17de78
+
+.asm_17de6b
+	dec c
+	jr nz, .asm_17de61
+	ld a, [$c70c]
+	ld l, a
+	ld a, [$c70d]
+	ld h, a
+	jr .asm_17de8a
+
+.asm_17de78
+	ld a, [$c70e]
+	ld l, a
+	ld a, [$c70f]
+	ld h, a
+	jr .asm_17de8a
+
+.asm_17de82
+	ld a, [$c70a]
+	ld l, a
+	ld a, [$c70b]
+	ld h, a
+
+.asm_17de8a
+	call CloseSRAM
+	call Function17e40f
+	ret
+; 17de91
+
+Function17de91: ; 17de91
+	call Function17e415
+	ld de, $c708
+	ld bc, $7
+	call CopyBytes
+	ld a, $6
+	call GetSRAMBank
+	call Function17f4f6
+	ld a, [$c708]
+	ld e, a
+	ld a, [$c709]
+	ld d, a
+	add hl, de
+	ld e, l
+	ld d, h
+	ld a, [$c70a]
+	ld c, a
+	ld b, $0
+	ld hl, Unknown_17da8c
+	add hl, bc
+	ld a, [hl]
+	ld l, e
+	ld h, d
+	and [hl]
+	jr nz, .asm_17deca
+	ld a, [$c70d]
+	ld l, a
+	ld a, [$c70e]
+	ld h, a
+	jr .asm_17ded2
+
+.asm_17deca
+	ld a, [$c70b]
+	ld l, a
+	ld a, [$c70c]
+	ld h, a
+
+.asm_17ded2
+	call CloseSRAM
+	call Function17e40f
+	ret
+; 17ded9
+
+Function17ded9: ; 17ded9
+	call Function17e415
+	ld de, $c708
+	ld bc, $1f
+	call CopyBytes
+	call Function17e32b
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld hl, $c708
+	ld a, [hli]
+	ld [CurPartySpecies], a
+	ld [TempEnemyMonSpecies], a
+	ld a, [hli]
+	ld [CurPartyLevel], a
+	ld a, [hli]
+	ld b, a
+	ld a, [PartyCount]
+	cp $6
+	jp nc, Function17e026
+	xor a
+	ld [MonType], a
+	push hl
+	push bc
+	predef TryAddMonToParty
+	callba SetCaughtData
+	pop bc
+	pop hl
+	bit 1, b
+	jr z, .asm_17df33
+	push bc
+	push hl
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMonNicknames
+	call SkipNames
+	ld d, h
+	ld e, l
+	pop hl
+	call CopyBytes
+	pop bc
+	jr .asm_17df37
+
+.asm_17df33
+	ld de, $6
+	add hl, de
+
+.asm_17df37
+	bit 2, b
+	jr z, .asm_17df5a
+	push bc
+	push hl
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMonOT
+	call SkipNames
+	ld d, h
+	ld e, l
+	pop hl
+	call CopyBytes
+	ld a, [hli]
+	ld b, a
+	push hl
+	callba SetGiftPartyMonCaughtData
+	pop hl
+	pop bc
+	jr .asm_17df5e
+
+.asm_17df5a
+	ld de, $7
+	add hl, de
+
+.asm_17df5e
+	bit 3, b
+	jr z, .asm_17df79
+	push bc
+	push hl
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMon1ID
+	call GetPartyLocation
+	ld d, h
+	ld e, l
+	pop hl
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	pop bc
+	jr .asm_17df7b
+
+.asm_17df79
+	inc hl
+	inc hl
+
+.asm_17df7b
+	bit 4, b
+	jr z, .asm_17dfd0
+	push bc
+	push hl
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMon1DVs
+	call GetPartyLocation
+	ld d, h
+	ld e, l
+	pop hl
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	push hl
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMon1Species
+	call GetPartyLocation
+	ld a, [hl]
+	ld [CurSpecies], a
+	call GetBaseData
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMon1MaxHP
+	call GetPartyLocation
+	ld d, h
+	ld e, l
+	push hl
+	ld b, $0
+	callba CalcPkmnStats
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMon1HP
+	call GetPartyLocation
+	ld d, h
+	ld e, l
+	pop hl
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hl]
+	ld [de], a
+	pop hl
+	pop bc
+	jr .asm_17dfd2
+
+.asm_17dfd0
+	inc hl
+	inc hl
+
+.asm_17dfd2
+	bit 5, b
+	jr z, .asm_17dfea
+	push bc
+	push hl
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMon1Item
+	call GetPartyLocation
+	ld d, h
+	ld e, l
+	pop hl
+	ld a, [hli]
+	ld [de], a
+	pop bc
+	jr .asm_17dfeb
+
+.asm_17dfea
+	inc hl
+
+.asm_17dfeb
+	bit 6, b
+	jr z, .asm_17e01f
+	push bc
+	push hl
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMon1Moves
+	call GetPartyLocation
+	ld d, h
+	ld e, l
+	pop hl
+	push de
+	ld bc, $4
+	call CopyBytes
+	pop de
+	push hl
+	push de
+	ld a, [PartyCount]
+	dec a
+	ld hl, PartyMon1PP
+	call GetPartyLocation
+	ld d, h
+	ld e, l
+	pop hl
+	predef FillPP
+	pop hl
+	pop bc
+	jp asm_17e0ee
+
+.asm_17e01f
+	ld de, $4
+	add hl, de
+	jp asm_17e0ee
+; 17e026
+
+Function17e026: ; 17e026
+	ld a, BANK(sBoxCount)
+	call GetSRAMBank
+	ld a, [sBoxCount]
+	call CloseSRAM
+	cp $14
+	jp nc, .asm_17e0ea
+	bit 0, b
+	jp z, .asm_17e0ea
+	push bc
+	push hl
+	callba LoadEnemyMon
+	callba SentPkmnIntoBox
+	callba SetBoxMonCaughtData
+	pop hl
+	pop bc
+	ld a, BANK(sBoxMonNicknames)
+	call GetSRAMBank
+	bit 1, b
+	jr z, .asm_17e067
+	push bc
+	ld bc, $b
+	ld de, sBoxMonNicknames
+	call CopyBytes
+	pop bc
+	jr .asm_17e06b
+
+.asm_17e067
+	ld de, $6
+	add hl, de
+
+.asm_17e06b
+	bit 2, b
+	jr z, .asm_17e08e
+	push bc
+	ld bc, $6
+	ld de, sBoxMonOT
+	call CopyBytes
+	ld a, [hli]
+	ld b, a
+	push hl
+	call CloseSRAM
+	callba SetGiftBoxMonCaughtData
+	ld a, $1
+	call GetSRAMBank
+	pop hl
+	pop bc
+	jr .asm_17e092
+
+.asm_17e08e
+	ld de, $7
+	add hl, de
+
+.asm_17e092
+	bit 3, b
+	jr z, .asm_17e0a2
+	push bc
+	ld de, sBoxMon1ID
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	pop bc
+	jr .asm_17e0a4
+
+.asm_17e0a2
+	inc hl
+	inc hl
+
+.asm_17e0a4
+	bit 4, b
+	jr z, .asm_17e0b4
+	push bc
+	ld de, sBoxMon1DVs
+	ld a, [hli]
+	ld [de], a
+	inc de
+	ld a, [hli]
+	ld [de], a
+	pop bc
+	jr .asm_17e0b6
+
+.asm_17e0b4
+	inc hl
+	inc hl
+
+.asm_17e0b6
+	bit 5, b
+	ld a, [hli]
+	jr z, .asm_17e0be
+	ld [sBoxMon1Item], a
+
+.asm_17e0be
+	bit 6, b
+	jr z, .asm_17e0e1
+	push bc
+	ld de, sBoxMon1Moves
+	ld bc, $4
+	call CopyBytes
+	push hl
+	ld hl, sBoxMon1Moves
+	ld de, sBoxMon1PP
+	predef FillPP
+	call CloseSRAM
+	pop hl
+	pop bc
+	inc hl
+	inc hl
+	jr asm_17e0ee
+
+.asm_17e0e1
+	call CloseSRAM
+	ld de, $6
+	add hl, de
+	jr asm_17e0ee
+
+.asm_17e0ea
+	ld bc, $1a
+	add hl, bc
+
+asm_17e0ee
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	pop af
+	ld [rSVBK], a
+	push hl
+	call Function17e349
+	pop hl
+	call Function17e40f
+	ret
+; 17e0fd
+
+Function17e0fd: ; 17e0fd
+	call Function17e415
+	ld de, $c708
+	ld bc, $6
+	call CopyBytes
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld hl, $c708
+	ld a, [hli]
+	ld [CurItem], a
+	ld a, [hli]
+	ld [wItemQuantityChangeBuffer], a
+	push hl
+	ld hl, NumItems
+	call ReceiveItem
+	pop hl
+	jr c, .asm_17e127
+	inc hl
+	inc hl
+
+.asm_17e127
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld h, a
+	ld l, b
+	pop af
+	ld [rSVBK], a
+	call Function17e40f
+	ret
+; 17e133
+
+Function17e133: ; 17e133
+	call Function17e415
+	ld de, $c708
+	ld bc, $5
+	call CopyBytes
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld hl, $c708
+	ld a, [hli]
+	ld [ScriptVar], a
+	push hl
+	callba MobileCheckOwnMonAnywhere
+	pop hl
+	jr c, .asm_17e159
+	inc hl
+	inc hl
+
+.asm_17e159
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld h, a
+	ld l, b
+	pop af
+	ld [rSVBK], a
+	call Function17e40f
+	ret
+; 17e165
+
+Function17e165: ; 17e165
+	call Function17e415
+	ld de, $c708
+	ld bc, $5
+	call CopyBytes
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	ld hl, $c708
+	ld a, [hli]
+	ld [CurItem], a
+	push hl
+	ld hl, NumItems
+	call CheckItem
+	pop hl
+	jr c, .asm_17e195
+	push hl
+	ld hl, PCItems
+	call CheckItem
+	pop hl
+	jr c, .asm_17e195
+	inc hl
+	inc hl
+
+.asm_17e195
+	ld a, [hli]
+	ld b, a
+	ld a, [hl]
+	ld h, a
+	ld l, b
+	pop af
+	ld [rSVBK], a
+	call Function17e40f
+	ret
+; 17e1a1
+
+Function17e1a1: ; 17e1a1
+	call Function17e415
+	ld de, $c708
+	ld bc, $d
+	call CopyBytes
+	ld a, [$c70a]
+	cp $c0
+	jr c, .asm_17e1bb
+	ld a, [$c708]
+	ld [rSVBK], a
+	jr .asm_17e1c1
+
+.asm_17e1bb
+	ld a, [$c708]
+	call GetSRAMBank
+
+.asm_17e1c1
+	ld a, [$c709]
+	ld l, a
+	ld a, [$c70a]
+	ld h, a
+	ld de, $c608
+	ld a, [$c70b]
+	ld c, a
+	ld b, $0
+	call CopyBytes
+	ld a, [$c70a]
+	cp $c0
+	jr c, .asm_17e1e2
+	ld a, $4
+	ld [rSVBK], a
+	jr .asm_17e1e5
+
+.asm_17e1e2
+	call CloseSRAM
+
+.asm_17e1e5
+	ld a, [$c70e]
+	cp $c0
+	jr c, .asm_17e1f3
+	ld a, [$c70c]
+	ld [rSVBK], a
+	jr .asm_17e1f9
+
+.asm_17e1f3
+	ld a, [$c70c]
+	call GetSRAMBank
+
+.asm_17e1f9
+	ld a, [$c70d]
+	ld l, a
+	ld a, [$c70e]
+	ld h, a
+	ld de, $c688
+	ld a, [$c70b]
+	ld c, a
+	ld b, $0
+	call CopyBytes
+	ld a, [$c70e]
+	cp $c0
+	jr c, .asm_17e21a
+	ld a, $4
+	ld [rSVBK], a
+	jr .asm_17e21d
+
+.asm_17e21a
+	call CloseSRAM
+
+.asm_17e21d
+	ld a, [$c70b]
+	ld c, a
+	ld hl, $c688
+	ld de, $c608
+.asm_17e227
+	ld a, [de]
+	inc de
+	cp [hl]
+	inc hl
+	jr z, .asm_17e231
+	jr c, .asm_17e23e
+	jr .asm_17e248
+
+.asm_17e231
+	dec c
+	jr nz, .asm_17e227
+	ld a, [$c711]
+	ld l, a
+	ld a, [$c712]
+	ld h, a
+	jr .asm_17e250
+
+.asm_17e23e
+	ld a, [$c70f]
+	ld l, a
+	ld a, [$c710]
+	ld h, a
+	jr .asm_17e250
+
+.asm_17e248
+	ld a, [$c712 + 1]
+	ld l, a
+	ld a, [$c712 + 2]
+	ld h, a
+
+.asm_17e250
+	call Function17e40f
+	ret
+; 17e254
+
+Function17e254: ; 17e254
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld [de], a
+	call Function17e41e
+	ret
+; 17e261
+
+Function17e261: ; 17e261
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [de]
+	add [hl]
+	ld [de], a
+	inc hl
+	call Function17e41e
+	ret
+; 17e270
+
+Function17e270: ; 17e270
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [de]
+	sub [hl]
+	ld [de], a
+	inc hl
+	call Function17e41e
+	ret
+; 17e27f
+
+Function17e27f: ; 17e27f
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	call Function17e41e
+	ld l, c
+	ld h, b
+	ld a, [de]
+	add [hl]
+	ld [de], a
+	ret
+; 17e293
+
+Function17e293: ; 17e293
+	call Function17e415
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hli]
+	ld b, a
+	call Function17e41e
+	ld l, c
+	ld h, b
+	ld a, [de]
+	sub [hl]
+	ld [de], a
+	ret
+; 17e2a7
+
+Function17e2a7: ; 17e2a7
+	call Function17e415
+	call Function17e41e
+	call Function17e32b
+	xor a
+	ld [wcf66], a
+	callba Function118233
+	ld de, GFX_17eb7e
+	ld hl, VTiles2 tile $60
+	lb bc, BANK(GFX_17eb7e), 1
+	call Get2bpp
+	ld a, [wc300]
+	and a
+	jr z, .asm_17e2d8
+	cp $a
+	jr z, .asm_17e2f7
+	cp $b
+	jr z, .asm_17e300
+	call Function17e309
+	ret
+
+.asm_17e2d8
+	call Function17d60b
+	call Function17e349
+	xor a
+	ld [wcd7a], a
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $aa73
+	ld de, $aa7f
+	ld bc, $c
+	call CopyBytes
+	call CloseSRAM
+	ret
+
+.asm_17e2f7
+	call Function17e349
+	ld a, $1
+	ld [wcd7a], a
+	ret
+
+.asm_17e300
+	call Function17e349
+	ld a, $2
+	ld [wcd7a], a
+	ret
+; 17e309
+
+Function17e309: ; 17e309
+	ld a, $2
+	ld [wc303], a
+	call Function17dcaf
+	call ClearScreen
+	call Function17e349
+	call Function17d5f6
+	callba DisplayMobileError
+	call Function17e349
+	call Function17dcaf
+	xor a
+	ld [wcd77], a
+	ret
+; 17e32b
+
+Function17e32b: ; 17e32b
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $c608
+	ld de, $b0b1
+	ld bc, $40
+	call CopyBytes
+	ld hl, BGMapBuffer
+	ld bc, $5b
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 17e349
+
+Function17e349: ; 17e349
+	ld a, $5
+	call GetSRAMBank
+	ld hl, $b0b1
+	ld de, $c608
+	ld bc, $40
+	call CopyBytes
+	ld de, BGMapBuffer
+	ld bc, $5b
+	call CopyBytes
+	call CloseSRAM
+	ret
+; 17e367
+
+Function17e367: ; 17e367
+	call Function17e415
+	call Function17e41e
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	callba SaveGameData_
+	pop af
+	ld [rSVBK], a
+	ret
+; 17e37e
+
+Function17e37e: ; 17e37e
+	call Function17e415
+	call Function17e41e
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	callba SaveAfterLinkTrade
+	pop af
+	ld [rSVBK], a
+	ret
+; 17e395
+
+Function17e395: ; 17e395
+	call Function17e415
+	call Function17e41e
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	callba SaveBox
+	pop af
+	ld [rSVBK], a
+	ret
+; 17e3ac
+
+Function17e3ac: ; 17e3ac
+	call Function17e415
+	call Function17e41e
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	callba SaveChecksum
+	pop af
+	ld [rSVBK], a
+	ret
+; 17e3c3
+
+Function17e3c3: ; 17e3c3
+	call Function17e415
+	call Function17e41e
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+	callba UpdateTrainerRankingsChecksum2
+	callba BackupMobileEventIndex
+	pop af
+	ld [rSVBK], a
+	ret
+; 17e3e0
+
+Function17e3e0: ; 17e3e0
+	call Function17e415
+	ld a, [hli]
+	ld c, a
+	call Function17e41e
+	ld a, $1
+	ld [hBGMapMode], a
+	call DelayFrames
+	ret
+; 17e3f0
+
+Function17e3f0: ; 17e3f0
+	call Function17e415
+	call Function17e41e
+.asm_17e3f6
+	call JoyTextDelay
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and $1
+	ret nz
+	ld a, [hl]
+	and $2
+	ret nz
+	call WaitBGMap
+	jr .asm_17e3f6
+; 17e409
+
+Function17e409: ; 17e409
+	ld hl, wcd77
+	set 7, [hl]
+	ret
+; 17e40f
+
+Function17e40f: ; 17e40f
+	ld de, UnknBGPals
+	add hl, de
+	jr Function17e41e
+
+Function17e415:
+	ld a, [wcd78]
+	ld l, a
+	ld a, [wcd79]
+	ld h, a
+	inc hl
+
+Function17e41e:
+	ld a, l
+	ld [wcd78], a
+	ld a, h
+	ld [wcd79], a
+	ret
+; 17e427
+
+Function17e427: ; 17e427
+	ld hl, hJoyPressed
+	ld a, [hl]
+	and $1
+	jr nz, .asm_17e432
+	and $2
+	ret z
+
+.asm_17e432
+	ld a, $3
+	ld [wcd77], a
+	ret
+; 17e438
+
+Function17e438: ; 17e438
+	ld hl, wcd77
+	inc [hl]
+	ret
+; 17e43d
+
+Function17e43d: ; 17e43d
+	ld a, [BGMapBuffer]
+	ld l, a
+	ld a, [wcd21]
+	ld h, a
+	add hl, bc
+	ret
+; 17e447
+
+Function17e447: ; 17e447
+	ld a, [BGMapBuffer]
+	ld l, a
+	ld a, [wcd21]
+	ld h, a
+	add hl, de
+	ret
+; 17e451
+
+Function17e451: ; 17e451
+	ld a, [wcd42]
+	and a
+	ret z
+	call Function17e51b
+	call Function17e4dd
+	ld a, [wcd2e]
+	push af
+	ld a, [wcd49]
+	ld l, a
+	ld a, [wcd4a]
+	ld h, a
+	ld a, [wcd2f]
+	ld [wcd2e], a
+	ld c, a
+	ld b, $0
+	add hl, bc
+	add hl, bc
+	push hl
+	hlcoord 0, 0
+	ld bc, $14
+	ld a, [wcd23]
+	call AddNTimes
+	ld a, [CreditsTimer]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	pop bc
+	ld a, [wMobileCommsJumptableIndex]
+.asm_17e48b
+	push af
+	push hl
+	ld a, [wcd24]
+.asm_17e490
+	push af
+	push hl
+	ld a, [bc]
+	inc bc
+	ld e, a
+	ld a, [bc]
+	inc bc
+	ld d, a
+	push bc
+	push hl
+	ld a, [BGMapBuffer]
+	ld l, a
+	ld a, [wcd21]
+	ld h, a
+	add hl, de
+	push hl
+	pop de
+	pop hl
+	call PlaceString
+	pop bc
+	pop hl
+	ld a, [wcd26]
+	ld e, a
+	ld d, $0
+	add hl, de
+	ld a, [wcd2e]
+	inc a
+	ld [wcd2e], a
+	ld e, a
+	ld a, [wcd42]
+	cp e
+	jr z, .asm_17e4d5
+	pop af
+	dec a
+	jr nz, .asm_17e490
+	pop hl
+	ld a, [wcd27]
+	ld de, $14
+.asm_17e4cb
+	add hl, de
+	dec a
+	jr nz, .asm_17e4cb
+	pop af
+	dec a
+	jr nz, .asm_17e48b
+	jr .asm_17e4d8
+
+.asm_17e4d5
+	pop af
+	pop hl
+	pop af
+
+.asm_17e4d8
+	pop af
+	ld [wcd2e], a
+	ret
+; 17e4dd
+
+Function17e4dd: ; 17e4dd
+	ld a, [wcd2c]
+	and $1
+	ret z
+	ld a, [wcd29]
+	hlcoord 0, 0
+	ld bc, $14
+	call AddNTimes
+	ld a, [wcd28]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [wcd2f]
+	and a
+	jr z, .asm_17e4ff
+	ld a, $61
+	ld [hl], a
+
+.asm_17e4ff
+	ld a, [wcd2a]
+	ld bc, $14
+	call AddNTimes
+	ld a, [wcd42]
+	ld c, a
+	ld a, [wcd2e]
+	ld b, a
+	ld a, [wcd24]
+	add b
+	cp c
+	ret z
+	ret nc
+	ld a, $ee
+	ld [hl], a
+	ret
+; 17e51b
+
+Function17e51b: ; 17e51b
+	ld a, [wcd28]
+	ld hl, CreditsTimer
+	sub [hl]
+	inc a
+	ld [wcd4f], a
+	hlcoord 0, 0
+	ld bc, $14
+	ld a, [wcd23]
+	dec a
+	call AddNTimes
+	ld a, [CreditsTimer]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [wMobileCommsJumptableIndex]
+	ld c, a
+	ld a, [wcd27]
+	call SimpleMultiply
+.asm_17e544
+	push af
+	push hl
+	ld a, [wcd4f]
+	ld c, a
+	ld b, $0
+	ld a, $7f
+	call ByteFill
+	pop hl
+	ld bc, $14
+	add hl, bc
+	pop af
+	dec a
+	jr nz, .asm_17e544
+	ret
+; 17e55b
+
+Function17e55b: ; 17e55b
+	ld a, [wcd42]
+	and a
+	ret z
+	ld a, $ed
+	call Function17e571
+	ret
+; 17e566
+
+Function17e566: ; 17e566
+	ld a, [wcd42]
+	and a
+	ret z
+	ld a, $7f
+	call Function17e571
+	ret
+; 17e571
+
+Function17e571: ; 17e571
+	push af
+	hlcoord 0, 0
+	ld bc, $14
+	ld a, [wcd23]
+	call AddNTimes
+	ld a, [CreditsTimer]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	dec hl
+	push hl
+	ld a, [wcd31]
+	dec a
+	ld c, a
+	ld a, [wcd27]
+	call SimpleMultiply
+	ld l, $0
+	ld h, l
+	ld bc, $14
+	call AddNTimes
+	ld a, [wcd30]
+	dec a
+	ld c, a
+	ld a, [wcd26]
+	call SimpleMultiply
+	ld c, a
+	ld b, $0
+	add hl, bc
+	pop bc
+	add hl, bc
+	pop af
+	ld [hl], a
+	ret
+; 17e5af
+
+Function17e5af: ; 17e5af
+	ld a, [wcd2c]
+	and $2
+	ret z
+	ld a, [wcd43]
+	ld l, a
+	ld a, [wMobileInactivityTimerMinutes]
+	ld h, a
+	bccoord 0, 0
+	add hl, bc
+	ld bc, $ffec
+	add hl, bc
+	ld a, [wMobileInactivityTimerSeconds]
+	ld c, a
+	ld b, $0
+	ld a, [wMobileInactivityTimerFrames]
+	call Function17e600
+	ld a, [wcd2e]
+	ld c, a
+	ld b, $0
+	ld a, [wcd4d]
+	ld l, a
+	ld a, [wcd4e]
+	ld h, a
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [BGMapBuffer]
+	ld l, a
+	ld a, [wcd21]
+	ld h, a
+	add hl, de
+	push hl
+	pop de
+	ld a, [wcd43]
+	ld l, a
+	ld a, [wMobileInactivityTimerMinutes]
+	ld h, a
+	bccoord 0, 0
+	add hl, bc
+	call PlaceString
+	ret
+; 17e600
+
+Function17e600: ; 17e600
+.asm_17e600
+	push af
+	push hl
+	push bc
+	ld a, $7f
+	call ByteFill
+	pop bc
+	pop hl
+	ld de, $14
+	add hl, de
+	pop af
+	dec a
+	jr nz, .asm_17e600
+	ret
+; 17e613
+
+Function17e613: ; 17e613
+	push hl
+	hlcoord 0, 0
+	ld bc, $14
+	ld a, [de]
+	inc de
+	push af
+	ld a, [de]
+	inc de
+	and a
+.asm_17e620
+	jr z, .asm_17e626
+	add hl, bc
+	dec a
+	jr .asm_17e620
+
+.asm_17e626
+	pop af
+	ld c, a
+	ld b, $0
+	add hl, bc
+	push hl
+	ld a, [wcd53]
+	ld [hli], a
+	ld a, [de]
+	inc de
+	dec a
+	dec a
+	jr z, .asm_17e63f
+	ld c, a
+	ld a, [wcd53]
+	inc a
+.asm_17e63b
+	ld [hli], a
+	dec c
+	jr nz, .asm_17e63b
+
+.asm_17e63f
+	ld a, [wcd53]
+	add $2
+	ld [hl], a
+	pop hl
+	ld bc, $14
+	add hl, bc
+	ld a, [de]
+	dec de
+	dec a
+	dec a
+	jr z, .asm_17e674
+	ld b, a
+.asm_17e651
+	push hl
+	ld a, [wcd53]
+	add $3
+	ld [hli], a
+	ld a, [de]
+	dec a
+	dec a
+	jr z, .asm_17e664
+	ld c, a
+	ld a, $7f
+.asm_17e660
+	ld [hli], a
+	dec c
+	jr nz, .asm_17e660
+
+.asm_17e664
+	ld a, [wcd53]
+	add $4
+	ld [hl], a
+	pop hl
+	push bc
+	ld bc, $14
+	add hl, bc
+	pop bc
+	dec b
+	jr nz, .asm_17e651
+
+.asm_17e674
+	ld a, [wcd53]
+	add $5
+	ld [hli], a
+	ld a, [de]
+	dec a
+	dec a
+	jr z, .asm_17e689
+	ld c, a
+	ld a, [wcd53]
+	add $6
+.asm_17e685
+	ld [hli], a
+	dec c
+	jr nz, .asm_17e685
+
+.asm_17e689
+	ld a, [wcd53]
+	add $7
+	ld [hl], a
+	pop hl
+	ret
+; 17e691
+
+Function17e691: ; 17e691
+	push hl
+	ld hl, NULL
+	ld bc, $14
+	ld a, [de]
+	inc de
+	push af
+	ld a, [de]
+	inc de
+	inc de
+	and a
+.asm_17e69f
+	jr z, .asm_17e6a5
+	add hl, bc
+	dec a
+	jr .asm_17e69f
+
+.asm_17e6a5
+	pop af
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	dec de
+.asm_17e6ac
+	push af
+	push hl
+	ld a, [de]
+.asm_17e6af
+	push af
+	push hl
+	push hl
+	bccoord 0, 0
+	add hl, bc
+	ld a, [hl]
+	cp $7f
+	jr z, .asm_17e6c2
+	ld a, [wcd53]
+	add $8
+	jr .asm_17e6c7
+
+.asm_17e6c2
+	ld a, [wcd53]
+	jr .asm_17e6c7
+
+.asm_17e6c7
+	pop hl
+	bccoord 0, 0, AttrMap
+	add hl, bc
+	ld [hl], a
+	pop hl
+	inc hl
+	pop af
+	dec a
+	jr nz, .asm_17e6af
+	pop hl
+	ld bc, $14
+	add hl, bc
+	pop af
+	dec a
+	jr nz, .asm_17e6ac
+	pop hl
+	ret
+; 17e6de
+
+Function17e6de: ; 17e6de
+	push af
+	ld a, [$c708]
+	ld l, a
+	ld a, [$c709]
+	ld h, a
+	decoord 0, 0, AttrMap
+	add hl, de
+	pop af
+	ld b, $7
+.asm_17e6ee
+	push hl
+	ld c, $7
+.asm_17e6f1
+	ld [hli], a
+	dec c
+	jr nz, .asm_17e6f1
+	pop hl
+	ld de, $14
+	add hl, de
+	dec b
+	jr nz, .asm_17e6ee
+	ret
+; 17e6fe
+
+
+PokemonNewsGFX: ; 17e6fe
+INCBIN "gfx/mobile/pokemon_news.2bpp"
+
+GFX_17eb7e:
+INCBIN "gfx/unknown/17eb7e.2bpp"
+
+TileAttrmap_17eb8e:
+INCBIN "gfx/unknown/17eb8e.attrmap"
+
+Palette_17eff6:
+	RGB 24,  9,  8
+	RGB  4,  9, 18
+	RGB 18, 18, 12
+	RGB  0,  0,  0
+	RGB 24, 24, 18
+	RGB 18, 18, 12
+	RGB  4,  9, 18
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 23, 11, 10
+	RGB 13,  6,  5
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 15, 25,  5
+	RGB 10, 20,  0
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 20, 28, 20
+	RGB 10, 18, 15
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 22, 22, 12
+	RGB 17, 12,  5
+	RGB  0,  0,  0
+	RGB  5,  5, 16
+	RGB  8, 19, 28
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+	RGB 31, 31, 31
+	RGB 27, 24,  0
+	RGB 24, 16,  3
+	RGB  0,  0,  0
+
+
+Function17f036:: ; 17f036
+	ld a, $6
+	call GetSRAMBank
+	inc de
+.asm_17f03c
+	call Function17f047
+	jr c, .asm_17f043
+	jr .asm_17f03c
+
+.asm_17f043
+	call CloseSRAM
+	ret
+; 17f047
+
+Function17f047: ; 17f047
+	ld a, [de]
+	inc de
+	cp $50
+	jr z, .finished
+	cp $10
+	jr nc, .finished
+	dec a
+	push de
+	ld e, a
+	ld d, 0
+	ld hl, .Jumptable
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp hl
+
+.finished
+	scf
+	ret
+; 17f061
+
+.Jumptable: ; 17f061
+	dw Function17f081 ; 0
+	dw Function17f0f8 ; 1
+	dw Function17f154 ; 2
+	dw Function17f181 ; 3
+	dw Function17f1d0 ; 4
+	dw Function17f220 ; 5
+	dw Function17f27b ; 6
+	dw Function17f2cb ; 7
+	dw Function17f2ff ; 8
+	dw Function17f334 ; 9
+	dw Function17f382 ; a
+	dw Function17f3c9 ; b
+	dw Function17f3f0 ; c
+	dw Function17f41d ; d
+	dw Function17f44f ; e
+	dw Function17f44f ; f
+; 17f081
+
+Function17f081: ; 17f081
+	pop hl
+	call Function17f524
+	jr c, .asm_17f09f
+	ld de, 4
+	add hl, de
+	ld a, [hli]
+	inc hl
+	inc hl
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	cp $50
+	jr z, .asm_17f09d
+	and a
+	ret
+
+.asm_17f09d
+	scf
+	ret
+
+.asm_17f09f
+	push bc
+	ld de, wcd54
+	ld bc, 7
+	call CopyBytes
+	pop bc
+	push hl
+	push bc
+	call Function17f4f6
+	pop bc
+	ld a, [wcd54]
+	ld e, a
+	ld a, [wcd55]
+	ld d, a
+	add hl, de
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	push hl
+	ld a, [wcd56]
+	ld b, a
+	ld a, [wcd57]
+	ld c, a
+	call MobilePrintNum
+	ld a, l
+	ld [wcd52], a
+	ld a, h
+	ld [wcd53], a
+	ld a, [wcd59]
+	and a
+	jr z, .asm_17f0ee
+	ld c, a
+	ld a, [wcd57]
+	inc a
+	ld b, a
+	ld e, l
+	ld d, h
+	dec de
+.asm_17f0e0
+	ld a, c
+	cp b
+	jr z, .asm_17f0ea
+	ld a, [de]
+	dec de
+	ld [hld], a
+	dec b
+	jr .asm_17f0e0
+
+.asm_17f0ea
+	ld a, [wcd5a]
+	ld [hl], a
+
+.asm_17f0ee
+	pop hl
+	ld a, [wcd58]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f0f8
+
+Function17f0f8: ; 17f0f8
+	pop hl
+	call Function17f524
+	jr c, .asm_17f114
+	ld de, $3
+	add hl, de
+	ld a, [hli]
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	cp $50
+	jr z, .asm_17f112
+	and a
+	ret
+
+.asm_17f112
+	scf
+	ret
+
+.asm_17f114
+	push bc
+	ld de, wcd54
+	ld bc, $4
+	call CopyBytes
+	pop bc
+	push hl
+	push bc
+	call Function17f4f6
+	ld a, [wcd54]
+	ld e, a
+	ld a, [wcd55]
+	ld d, a
+	add hl, de
+	ld de, $c608
+	ld a, [wcd56]
+	ld c, a
+	ld b, $0
+	call CopyBytes
+	ld a, $50
+	ld [de], a
+	pop hl
+	ld de, $c608
+	call PlaceString
+	ld a, c
+	ld [wcd52], a
+	ld a, b
+	ld [wcd53], a
+	ld a, [wcd57]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f154
+
+Function17f154: ; 17f154
+	pop hl
+	call Function17f524
+	jr c, .asm_17f167
+	inc hl
+	inc hl
+	ld e, l
+	ld d, h
+	ld a, [de]
+	cp $50
+	jr z, .asm_17f165
+	and a
+	ret
+
+.asm_17f165
+	scf
+	ret
+
+.asm_17f167
+	push bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	pop bc
+	push hl
+	push bc
+	call Function17f4f6
+	add hl, de
+	ld c, l
+	ld b, h
+	pop de
+	callba Function11c08f
+	ld c, l
+	ld b, h
+	pop de
+	and a
+	ret
+; 17f181
+
+Function17f181: ; 17f181
+	pop hl
+	call Function17f524
+	jr c, .asm_17f19d
+	ld de, $2
+	add hl, de
+	ld a, [hli]
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	cp $50
+	jr z, .asm_17f19b
+	and a
+	ret
+
+.asm_17f19b
+	scf
+	ret
+
+.asm_17f19d
+	push bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld [wcd54], a
+	pop bc
+	push hl
+	push bc
+	call Function17f4f6
+	add hl, de
+	ld a, [hl]
+	ld c, a
+	ld de, $c608
+	callba Function48c63
+	pop hl
+	ld de, $c608
+	call PlaceString
+	ld a, c
+	ld [wcd52], a
+	ld a, b
+	ld [wcd53], a
+	ld a, [wcd54]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f1d0
+
+Function17f1d0: ; 17f1d0
+	pop hl
+	call Function17f524
+	jr c, .asm_17f1ec
+	ld de, $2
+	add hl, de
+	ld a, [hli]
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	cp $50
+	jr z, .asm_17f1ea
+	and a
+	ret
+
+.asm_17f1ea
+	scf
+	ret
+
+.asm_17f1ec
+	push bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld [wcd54], a
+	pop bc
+	push hl
+	push bc
+	call Function17f4f6
+	add hl, de
+	ld a, [hl]
+	ld a, $1
+	ld [rSVBK], a
+	ld [wd265], a
+	call GetPokemonName
+	pop hl
+	call PlaceString
+	ld a, c
+	ld [wcd52], a
+	ld a, b
+	ld [wcd53], a
+	ld a, $4
+	ld [rSVBK], a
+	ld a, [wcd54]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f220
+
+Function17f220: ; 17f220
+	pop hl
+	call Function17f524
+	jr c, .asm_17f23c
+	ld de, $2
+	add hl, de
+	ld a, [hli]
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	cp $50
+	jr z, .asm_17f23a
+	and a
+	ret
+
+.asm_17f23a
+	scf
+	ret
+
+.asm_17f23c
+	push bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld [wcd54], a
+	pop bc
+	push hl
+	push bc
+	call Function17f4f6
+	add hl, de
+	ld a, [hl]
+	ld e, a
+	ld d, 0
+	ld hl, .Genders
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	pop hl
+	call PlaceString
+	ld a, c
+	ld [wcd52], a
+	ld a, b
+	ld [wcd53], a
+	ld a, [wcd54]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f26e
+
+.Genders: dw .Boy, .Girl
+.Boy:     db "Boy@"
+.Girl:    db "Girl@"
+
+Function17f27b: ; 17f27b
+	pop hl
+	call Function17f524
+	jr c, .asm_17f297
+	ld de, $2
+	add hl, de
+	ld a, [hli]
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld a, [de]
+	cp $50
+	jr z, .asm_17f295
+	and a
+	ret
+
+.asm_17f295
+	scf
+	ret
+
+.asm_17f297
+	push bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [hli]
+	ld [wcd54], a
+	pop bc
+	push hl
+	push bc
+	call Function17f4f6
+	add hl, de
+	ld a, [hl]
+	ld a, $1
+	ld [rSVBK], a
+	ld [wd265], a
+	call GetItemName
+	pop hl
+	call PlaceString
+	ld a, c
+	ld [wcd52], a
+	ld a, b
+	ld [wcd53], a
+	ld a, $4
+	ld [rSVBK], a
+	ld a, [wcd54]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f2cb
+
+Function17f2cb: ; 17f2cb
+	pop hl
+	push bc
+	ld a, [hli]
+	ld [wcd54], a
+	ld a, [hli]
+	ld [wcd55], a
+	ld a, [wcd2e]
+	inc a
+	ld [wcd56], a
+	pop bc
+	push hl
+	ld l, c
+	ld h, b
+	push hl
+	ld de, wcd56
+	ld b, $1
+	ld a, [wcd54]
+	ld c, a
+	call MobilePrintNum
+	ld a, l
+	ld [wcd52], a
+	ld a, h
+	ld [wcd53], a
+	pop hl
+	ld a, [wcd55]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f2ff
+
+Function17f2ff: ; 17f2ff
+	pop hl
+	push bc
+	ld a, [hli]
+	ld [wcd54], a
+	pop bc
+	push hl
+	push bc
+	ld a, $1
+	ld [rSVBK], a
+	ld hl, PlayerName
+	ld de, $c608
+	ld bc, $6
+	call CopyBytes
+	ld a, $4
+	ld [rSVBK], a
+	pop hl
+	ld de, $c608
+	call PlaceString
+	ld a, c
+	ld [wcd52], a
+	ld a, b
+	ld [wcd53], a
+	ld a, [wcd54]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f334
+
+Function17f334: ; 17f334
+	pop hl
+	push bc
+	ld a, [hli]
+	ld [wcd55], a
+	and $f
+	ld [wcd54], a
+	pop bc
+	push hl
+	ld l, c
+	ld h, b
+	push hl
+	ld a, [wcd55]
+	bit 7, a
+	jr nz, .asm_17f355
+	ld a, BANK(sCrystalData)
+	call GetSRAMBank
+	ld a, [sCrystalData + 2]
+	jr .asm_17f35d
+
+.asm_17f355
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$b2f3]
+
+.asm_17f35d
+	ld c, a
+	call CloseSRAM
+	ld de, $c608
+	callba Function48c63
+	pop hl
+	ld de, $c608
+	call PlaceString
+	ld a, c
+	ld [wcd52], a
+	ld a, b
+	ld [wcd53], a
+	ld a, [wcd54]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f382
+
+Function17f382: ; 17f382
+	pop hl
+	push bc
+	ld a, [hli]
+	ld [wcd55], a
+	and $f
+	ld [wcd54], a
+	pop bc
+	push hl
+	push bc
+	ld l, c
+	ld h, b
+	ld a, [wcd55]
+	bit 7, a
+	jr nz, .asm_17f3a3
+	ld a, BANK(sCrystalData)
+	call GetSRAMBank
+	ld de, sCrystalData + 3
+	jr .asm_17f3ab
+
+.asm_17f3a3
+	ld a, $5
+	call GetSRAMBank
+	ld de, $b2f4
+
+.asm_17f3ab
+	ld a, PRINTNUM_LEADINGZEROS | 2
+	ld b, a
+	ld a, 3
+	ld c, a
+	call PrintNum
+	call CloseSRAM
+	ld a, l
+	ld [wcd52], a
+	ld a, h
+	ld [wcd53], a
+	pop hl
+	ld a, [wcd54]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f3c9
+
+Function17f3c9: ; 17f3c9
+	push bc
+	ld hl, wcd36
+	ld de, $c708
+	ld bc, 12
+	call CopyBytes
+	pop de
+	ld c, $0
+	callba Function11c075
+	push hl
+	ld hl, $c708
+	ld de, wcd36
+	ld bc, $c
+	call CopyBytes
+	pop bc
+	pop de
+	and a
+	ret
+; 17f3f0
+
+Function17f3f0: ; 17f3f0
+	pop hl
+	push hl
+	ld a, [hli]
+	push af
+	push bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld a, [de]
+	ld c, a
+	ld b, $0
+	add hl, bc
+	add hl, bc
+	ld a, [hli]
+	ld e, a
+	ld a, [hli]
+	ld d, a
+	ld hl, UnknBGPals
+	add hl, de
+	ld e, l
+	ld d, h
+	pop hl
+	call PlaceString
+	pop af
+	ld e, a
+	ld d, $0
+	pop hl
+	add hl, de
+	add hl, de
+	inc hl
+	inc hl
+	inc hl
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	scf
+	ret
+; 17f41d
+
+Function17f41d: ; 17f41d
+	pop hl
+	ld a, [hli]
+	push hl
+	push af
+	ld l, c
+	ld h, b
+	ld bc, -TileMap + $10000
+	add hl, bc
+	ld de, -SCREEN_WIDTH
+	ld c, $1
+.asm_17f42c
+	ld a, h
+	and a
+	jr nz, .asm_17f435
+	ld a, l
+	cp SCREEN_WIDTH
+	jr c, .asm_17f439
+
+.asm_17f435
+	add hl, de
+	inc c
+	jr .asm_17f42c
+
+.asm_17f439
+	hlcoord 0, 0
+	ld de, SCREEN_WIDTH
+	ld a, c
+.asm_17f440
+	and a
+	jr z, .asm_17f447
+	add hl, de
+	dec a
+	jr .asm_17f440
+
+.asm_17f447
+	pop af
+	ld e, a
+	ld d, 0
+	add hl, de
+	pop de
+	and a
+	ret
+; 17f44f
+
+Function17f44f: ; 17f44f
+	pop hl
+	call Function17f524
+	jr c, .asm_17f46d
+	ld de, $5
+	add hl, de
+	ld a, [hli]
+	inc hl
+	inc hl
+	ld e, l
+	ld d, h
+	ld l, c
+	ld h, b
+	ld c, a
+	ld b, 0
+	add hl, bc
+	ld a, [de]
+	cp $50
+	jr z, .asm_17f46b
+	and a
+	ret
+
+.asm_17f46b
+	scf
+	ret
+
+.asm_17f46d
+	push bc
+	ld de, wcd54
+	ld bc, $8
+	call CopyBytes
+	pop bc
+	push hl
+	push bc
+	ld a, [wcd56]
+	cp $c0
+	jr c, .asm_17f488
+	ld a, [wcd54]
+	ld [rSVBK], a
+	jr .asm_17f48e
+
+.asm_17f488
+	ld a, [wcd54]
+	call GetSRAMBank
+
+.asm_17f48e
+	ld a, [wcd55]
+	ld l, a
+	ld a, [wcd56]
+	ld h, a
+	ld de, $c608
+	ld a, [wcd57]
+	ld c, a
+	ld b, $0
+	call CopyBytes
+	ld a, [wcd56]
+	cp $c0
+	jr c, .asm_17f4af
+	ld a, $4
+	ld [rSVBK], a
+	jr .asm_17f4b7
+
+.asm_17f4af
+	call CloseSRAM
+	ld a, $6
+	call GetSRAMBank
+
+.asm_17f4b7
+	ld de, $c608
+	pop hl
+	push hl
+	ld a, [wcd57]
+	ld b, a
+	ld a, [wcd58]
+	ld c, a
+	call MobilePrintNum
+	ld a, l
+	ld [wcd52], a
+	ld a, h
+	ld [wcd53], a
+	ld a, [wcd5a]
+	and a
+	jr z, .asm_17f4ec
+	ld c, a
+	ld a, [wcd58]
+	inc a
+	ld b, a
+	ld e, l
+	ld d, h
+	dec de
+.asm_17f4de
+	ld a, c
+	cp b
+	jr z, .asm_17f4e8
+	ld a, [de]
+	dec de
+	ld [hld], a
+	dec b
+	jr .asm_17f4de
+
+.asm_17f4e8
+	ld a, [wcd5b]
+	ld [hl], a
+
+.asm_17f4ec
+	pop hl
+	ld a, [wcd59]
+	call Function17f50f
+	pop de
+	and a
+	ret
+; 17f4f6
+
+Function17f4f6: ; 17f4f6
+	ld a, [wcd6a]
+	ld l, a
+	ld a, [wcd6b]
+	ld h, a
+	ld a, [wcd47]
+	ld c, a
+	ld a, [BGMapPalBuffer]
+	ld b, a
+	ld a, [wcd2e]
+.asm_17f509
+	and a
+	ret z
+	dec a
+	add hl, bc
+	jr .asm_17f509
+; 17f50f
+
+Function17f50f: ; 17f50f
+	and a
+	jr z, .asm_17f519
+	ld c, a
+	ld b, $0
+	add hl, bc
+	ld c, l
+	ld b, h
+	ret
+
+.asm_17f519
+	ld a, [wcd52]
+	ld c, a
+	ld l, a
+	ld a, [wcd53]
+	ld b, a
+	ld h, a
+	ret
+; 17f524
+
+Function17f524: ; 17f524
+	push hl
+	push bc
+	push de
+	ld a, [wcd42]
+	dec a
+	ld b, a
+	ld a, [wcd2e]
+	cp b
+	jr z, .asm_17f53a
+	ld hl, wcd68
+	cp [hl]
+.asm_17f536
+	pop de
+	pop bc
+	pop hl
+	ret
+
+.asm_17f53a
+	scf
+	jr .asm_17f536
+; 17f53d
+
+BattleTowerMobileError: ; 17f53d
+	call FadeToMenu
+	xor a
+	ld [wc303], a
+	ld a, [rSVBK]
+	push af
+	ld a, $1
+	ld [rSVBK], a
+
+	call DisplayMobileError
+
+	pop af
+	ld [rSVBK], a
+	call ExitAllMenus
+	ret
+; 17f555
+
+DisplayMobileError: ; 17f555
+.loop
+	call JoyTextDelay
+	call .RunJumptable
+	ld a, [wc303]
+	bit 7, a
+	jr nz, .quit
+	callba HDMATransferAttrMapAndTileMapToWRAMBank3
+	jr .loop
+
+.quit
+	call .deinit
+	ret
+
+.deinit
+	ld a, [wc300]
+	cp $22
+	jr z, .asm_17f597
+	cp $31
+	jr z, .asm_17f58a
+	cp $33
+	ret nz
+	ld a, [wc301]
+	cp $1
+	ret nz
+	ld a, [wc302]
+	cp $2
+	ret nz
+	jr .asm_17f5a1
+
+.asm_17f58a
+	ld a, [wc301]
+	cp $3
+	ret nz
+	ld a, [wc302]
+	and a
+	ret nz
+	jr .asm_17f5a1
+
+.asm_17f597
+	ld a, [wc301]
+	and a
+	ret nz
+	ld a, [wc302]
+	and a
+	ret nz
+
+.asm_17f5a1
+	ld a, BANK(sMobileLoginPassword)
+	call GetSRAMBank
+	xor a
+	ld [sMobileLoginPassword], a
+	call CloseSRAM
+	ret
+; 17f5ae
+
+.RunJumptable: ; 17f5ae
+	jumptable .Jumptable, wc303
+; 17f5bd
+
+.Jumptable: ; 17f5bd
+	dw Function17f5c3
+	dw Function17ff23
+	dw Function17f5d2
+; 17f5c3
+
+Function17f5c3: ; 17f5c3
+	call Function17f5e4
+	callba FinishExitMenu
+	ld a, $1
+	ld [wc303], a
+	ret
+; 17f5d2
+
+Function17f5d2: ; 17f5d2
+	call Function17f5e4
+	callba HDMATransferAttrMapAndTileMapToWRAMBank3
+	call SetPalettes
+	ld a, $1
+	ld [wc303], a
+	ret
+; 17f5e4
+
+Function17f5e4: ; 17f5e4
+	ld a, $8
+	ld [MusicFade], a
+	ld de, MUSIC_NONE
+	ld a, e
+	ld [MusicFadeID], a
+	ld a, d
+	ld [MusicFadeID + 1], a
+	ld a, " "
+	hlcoord 0, 0
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	ld a, $6
+	hlcoord 0, 0, AttrMap
+	ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+	call ByteFill
+	hlcoord 2, 1
+	ld b, $1
+	ld c, $e
+	call Function3eea
+	hlcoord 1, 4
+	ld b, $c
+	ld c, $10
+	call Function3eea
+	hlcoord 3, 2
+	ld de, String_17f6dc
+	call PlaceString
+	call Function17ff3c
+	jr nc, .asm_17f632
+	hlcoord 11, 2
+	call Function17f6b7
+
+.asm_17f632
+	ld a, [wc300]
+	cp $d0
+	jr nc, .asm_17f684
+	cp $10
+	jr c, .asm_17f679
+	sub $10
+	cp $24
+	jr nc, .asm_17f679
+	ld e, a
+	ld d, $0
+	ld hl, Table_17f706
+	add hl, de
+	add hl, de
+	ld a, [wc301]
+	ld e, a
+	ld a, [wc302]
+	ld d, a
+	ld a, [hli]
+	ld c, a
+	ld a, [hl]
+	ld h, a
+	ld l, c
+	ld a, [hli]
+	and a
+	jr z, .asm_17f679
+	ld c, a
+.asm_17f65d
+	ld a, [hli]
+	ld b, a
+	ld a, [hli]
+	cp $ff
+	jr nz, .asm_17f667
+	cp b
+	jr z, .asm_17f66e
+
+.asm_17f667
+	xor d
+	jr nz, .asm_17f674
+	ld a, b
+	xor e
+	jr nz, .asm_17f674
+
+.asm_17f66e
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	jr .asm_17f67d
+
+.asm_17f674
+	inc hl
+	inc hl
+	dec c
+	jr nz, .asm_17f65d
+
+.asm_17f679
+	ld a, $d9
+	jr .asm_17f684
+
+.asm_17f67d
+	hlcoord 2, 6
+	call PlaceString
+	ret
+
+.asm_17f684
+	sub $d0
+	ld e, a
+	ld d, 0
+	ld hl, Table_17f699
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld e, a
+	ld a, [hl]
+	ld d, a
+	hlcoord 2, 6
+	call PlaceString
+	ret
+; 17f699
+
+Table_17f699: ; 17f699
+	dw String_17fedf
+	dw String_17fdd9
+	dw String_17fdd9
+	dw String_17fe03
+	dw String_17fd84
+	dw String_17fe63
+	dw String_17fdb2
+	dw String_17fe4b
+	dw String_17fe03
+	dw String_17fe03
+	dw String_17fe03
+; 17f6af
+
+Palette_17f6af: ; 17f6af
+	RGB  5,  5, 16
+	RGB  8, 19, 28
+	RGB  0,  0,  0
+	RGB 31, 31, 31
+; 17f6b7
+
+Function17f6b7: ; 17f6b7
+	ld a, [wc300]
+	call .bcd_two_digits
+	inc hl
+	ld a, [wc302]
+	and $f
+	call .bcd_digit
+	ld a, [wc301]
+	call .bcd_two_digits
+	ret
+; 17f6cd
+
+.bcd_two_digits ; 17f6cd
+	ld c, a
+	and $f0
+	swap a
+	call .bcd_digit
+	ld a, c
+	and $f
+
+.bcd_digit ; 17f6d8
+	add "0"
+	ld [hli], a
+	ret
+; 17f6dc
+
+String_17f6dc: ; 17f6dc
+	db "つうしんエラー   ー@"
+; 17f6e8
+
+String_17f6e8: ; 17f6e8
+	db   "みていぎ", $25, "エラーです"
+	next "プログラム", $1f
+	next "かくにん してください"
+	db   "@"
+; 17f706
+
+Table_17f706:
+	dw Unknown_17f74e
+	dw Unknown_17f753
+	dw Unknown_17f758
+	dw Unknown_17f75d
+	dw Unknown_17f762
+	dw Unknown_17f767
+	dw Unknown_17f778
+	dw Unknown_17f77d
+	dw Unknown_17f782
+	dw Unknown_17f782
+	dw Unknown_17f782
+	dw Unknown_17f782
+	dw Unknown_17f782
+	dw Unknown_17f782
+	dw Unknown_17f782
+	dw Unknown_17f782
+	dw Unknown_17f782
+	dw Unknown_17f787
+	dw Unknown_17f78c
+	dw Unknown_17f791
+	dw Unknown_17f796
+	dw Unknown_17f79b
+	dw Unknown_17f7a0
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7a5
+	dw Unknown_17f7ea
+	dw Unknown_17f7ff
+	dw Unknown_17f844
+
+Unknown_17f74e: db 1
+	dbbw $0, $0, String_17f891
+
+Unknown_17f753: db 1
+	dbbw $0, $0, String_17f8d1
+
+Unknown_17f758: db 1
+	dbbw $0, $0, String_17f913
+
+Unknown_17f75d: db 1
+	dbbw $0, $0, String_17f8d1
+
+Unknown_17f762: db 1
+	dbbw $0, $0, String_17fa71
+
+Unknown_17f767: db 4
+	dbbw $0, $0, String_17f946
+	dbbw $1, $0, String_17f946
+	dbbw $2, $0, String_17f946
+	dbbw $3, $0, String_17f946
+
+Unknown_17f778: db 1
+	dbbw $0, $0, String_17f98e
+
+Unknown_17f77d: db 1
+	dbbw $0, $0, String_17f98e
+
+Unknown_17f782: db 1
+	dbbw $0, $0, String_17f98e
+
+Unknown_17f787: db 1
+	dbbw $0, $0, String_17f98e
+
+Unknown_17f78c: db 1
+	dbbw $0, $0, String_17f9d0
+
+Unknown_17f791: db 1
+	dbbw $0, $0, String_17fa14
+
+Unknown_17f796: db 1
+	dbbw $0, $0, String_17fcbf
+
+Unknown_17f79b: db 1
+	dbbw $0, $0, String_17fa71
+
+Unknown_17f7a0: db 1
+	dbbw $0, $0, String_17fbfe
+
+Unknown_17f7a5: db 17
+	dbbw $0, $0, String_17f98e
+	dbbw $21, $2, String_17fcbf
+	dbbw $21, $4, String_17fcbf
+	dbbw $50, $4, String_17faf9
+	dbbw $51, $4, String_17fcbf
+	dbbw $52, $4, String_17fcbf
+	dbbw $0, $5, String_17f98e
+	dbbw $1, $5, String_17f98e
+	dbbw $2, $5, String_17f98e
+	dbbw $3, $5, String_17f98e
+	dbbw $4, $5, String_17f98e
+	dbbw $50, $5, String_17faf9
+	dbbw $51, $5, String_17faf9
+	dbbw $52, $5, String_17fcbf
+	dbbw $53, $5, String_17faf9
+	dbbw $54, $5, String_17fcbf
+	dbbw $ff, $ff, String_17fcbf
+
+Unknown_17f7ea: db 5
+	dbbw $0, $0, String_17f98e
+	dbbw $2, $0, String_17fb2a
+	dbbw $3, $0, String_17fb6e
+	dbbw $4, $0, String_17f98e
+	dbbw $ff, $ff, String_17fcbf
+
+Unknown_17f7ff: db 17
+	dbbw $0, $0, String_17f98e
+	dbbw $1, $3, String_17f98e
+	dbbw $2, $3, String_17f98e
+	dbbw $0, $4, String_17f98e
+	dbbw $1, $4, String_17f98e
+	dbbw $3, $4, String_17fbb6
+	dbbw $4, $4, String_17fbb6
+	dbbw $5, $4, String_17f98e
+	dbbw $6, $4, String_17f98e
+	dbbw $7, $4, String_17f98e
+	dbbw $8, $4, String_17fbfe
+	dbbw $0, $5, String_17fa49
+	dbbw $1, $5, String_17f98e
+	dbbw $2, $5, String_17fa49
+	dbbw $3, $5, String_17fab0
+	dbbw $4, $5, String_17fa49
+	dbbw $ff, $ff, String_17fa49
+
+Unknown_17f844: db 19
+	dbbw $1, $1, String_17fc3e
+	dbbw $2, $1, String_17fc88
+	dbbw $3, $1, String_17fcff
+	dbbw $4, $1, String_17fd84
+	dbbw $5, $1, String_17fd84
+	dbbw $6, $1, String_17fd47
+	dbbw $1, $2, String_17fb6e
+	dbbw $2, $2, String_17f98e
+	dbbw $3, $2, String_17fd84
+	dbbw $4, $2, String_17f98e
+	dbbw $5, $2, String_17fa49
+	dbbw $6, $2, String_17fd84
+	dbbw $99, $2, String_17fc88
+	dbbw $1, $3, String_17fa49
+	dbbw $1, $4, String_17fa49
+	dbbw $2, $4, String_17fa49
+	dbbw $3, $4, String_17fa49
+	dbbw $4, $4, String_17fa49
+	dbbw $ff, $ff, String_17fa49
+
+String_17f891: ; 17f891
+	db   "モバイルアダプタが ただしく"
+	next "さしこまれていません"
+	next "とりあつかいせつめいしょを"
+	next "ごらんのうえ しっかりと"
+	next "さしこんで ください"
+	db   "@"
+
+String_17f8d1: ; 17f8d1
+	db   "でんわが うまく かけられないか"
+	next "でんわかいせんが こんでいるので"
+	next "つうしん できません"
+	next "しばらく まって"
+	next "かけなおして ください"
+	db   "@"
+
+String_17f913: ; 17f913
+	db   "でんわかいせんが こんでいるため"
+	next "でんわが かけられません"
+	next "しばらく まって"
+	next "かけなおして ください"
+	db   "@"
+
+String_17f946: ; 17f946
+	db   "モバイルアダプタの エラーです"
+	next "しばらく まって"
+	next "かけなおして ください"
+	next "なおらない ときは"
+	next "モバイルサポートセンターへ"
+	next "おといあわせください"
+	db   "@"
+
+String_17f98e: ; 17f98e
+	db   "つうしんエラーです"
+	next "しばらく まって"
+	next "かけなおして ください"
+	next "なおらない ときは"
+	next "モバイルサポートセンターへ"
+	next "おといあわせください"
+	db   "@"
+
+String_17f9d0: ; 17f9d0
+	db   "ログインパスワードか"
+	next "ログイン アイディーに"
+	next "まちがいがあります"
+	next "パスワードを かくにんして"
+	next "しばらく まって"
+	next "かけなおして ください"
+	db   "@"
+
+String_17fa14: ; 17fa14
+	db   "でんわが きれました"
+	next "とりあつかいせつめいしょを"
+	next "ごらんのうえ"
+	next "しばらく まって"
+	next "かけなおして ください"
+	db   "@"
+
+String_17fa49: ; 17fa49
+	db   "モバイルセンターの"
+	next "つうしんエラーです"
+	next "しばらくまって"
+	next "かけなおして ください"
+	db   "@"
+
+String_17fa71: ; 17fa71
+	db   "モバイルアダプタに"
+	next "とうろくされた じょうほうが"
+	next "ただしく ありません"
+	next "モバイルトレーナーで"
+	next "しょきとうろくを してください"
+	db   "@"
+
+String_17fab0: ; 17fab0
+	db   "モバイルセンターが"
+	next "こんでいて つながりません"
+	next "しばらくまって"
+	next "かけなおして ください"
+	next "くわしくは とりあつかい"
+	next "せつめいしょを ごらんください"
+	db   "@"
+
+String_17faf9: ; 17faf9
+	db   "あてさき メールアドレスに"
+	next "まちがいがあります"
+	next "ただしい メールアドレスを"
+	next "いれなおしてください"
+	db   "@"
+
+String_17fb2a: ; 17fb2a
+	db   "メールアドレスに"
+	next "まちがいが あります"
+	next "とりあつかいせつめいしょを"
+	next "ごらんのうえ"
+	next "モバイルトレーナーで"
+	next "しょきとうろくを してください"
+	db   "@"
+
+String_17fb6e: ; 17fb6e
+	db   "ログインパスワードに"
+	next "まちがいが あるか"
+	next "モバイルセンターの エラーです"
+	next "パスワードを かくにんして"
+	next "しばらく まって"
+	next "かけなおして ください"
+	db   "@"
+
+String_17fbb6: ; 17fbb6
+	db   "データの よみこみが できません"
+	next "しばらくまって"
+	next "かけなおして ください"
+	next "なおらない ときは"
+	next "モバイルサポートセンターへ"
+	next "おといあわせください"
+	db   "@"
+
+String_17fbfe: ; 17fbfe
+	db   "じかんぎれです"
+	next "でんわが きれました"
+	next "でんわを かけなおしてください"
+	next "くわしくは とりあつかい"
+	next "せつめいしょを ごらんください"
+	db   "@"
+
+String_17fc3e: ; 17fc3e
+	db   "ごりよう りょうきんの "
+	next "おしはらいが おくれたばあいには"
+	next "ごりようが できなくなります"
+	next "くわしくは とりあつかい"
+	next "せつめいしょを ごらんください"
+	db   "@"
+
+String_17fc88: ; 17fc88
+	db   "おきゃくさまの ごつごうにより"
+	next "ごりようできません"
+	next "くわしくは とりあつかい"
+	next "せつめいしょを ごらんください"
+	db   "@"
+
+String_17fcbf: ; 17fcbf
+	db   "でんわかいせんが こんでいるか"
+	next "モバイルセンターの エラーで"
+	next "つうしんが できません"
+	next "しばらく まって"
+	next "かけなおして ください"
+	db   "@"
+
+String_17fcff: ; 17fcff
+	db   "ごりよう りょうきんが"
+	next "じょうげんを こえているため"
+	next "こんげつは ごりようできません"
+	next "くわしくは とりあつかい"
+	next "せつめいしょを ごらんください"
+	db   "@"
+
+String_17fd47: ; 17fd47
+	db   "げんざい モバイルセンターの"
+	next "てんけんを しているので"
+	next "つうしんが できません"
+	next "しばらく まって"
+	next "かけなおして ください"
+	db   "@"
+
+String_17fd84: ; 17fd84
+	db   "データの よみこみが できません"
+	next "くわしくは とりあつかい"
+	next "せつめいしょを ごらんください"
+	db   "@"
+
+
+String_17fdb2: ; 17fdb2
+	db   "3ぷん いじょう なにも"
+	next "にゅうりょく しなかったので"
+	next "でんわが きれました"
+	db   "@"
+
+String_17fdd9: ; 17fdd9
+	db   "つうしんが うまく"
+	next "できませんでした"
+	next "もういちど はじめから"
+	next "やりなおしてください"
+	db   "@"
+
+String_17fe03: ; 17fe03
+	db   "データの よみこみが できません"
+	next "しばらくまって"
+	next "かけなおして ください"
+	next "なおらない ときは"
+	next "モバイルサポートセンターへ"
+	next "おといあわせください"
+	db   "@"
+
+String_17fe4b: ; 17fe4b
+	db   "まちじかんが ながいので"
+	next "でんわが きれました"
+	db   "@"
+
+String_17fe63: ; 17fe63
+	db   "あいての モバイルアダプタと"
+	next "タイプが ちがいます"
+	next "くわしくは とりあつかい"
+	next "せつめいしょを ごらんください"
+	db   "@"
+
+String_17fe9a: ; 17fe9a ; unreferenced
+	db   "ポケモンニュースが"
+	next "あたらしくなっているので"
+	next "レポートを おくれません"
+	next "あたらしい ポケモンニュースの"
+	next "よみこみを さきに してください"
+	db   "@"
+
+String_17fedf: ; 17fedf
+	db   "つうしんの じょうきょうが"
+	next "よくないか かけるあいてが"
+	next "まちがっています"
+	next "もういちど かくにんをして"
+	next "でんわを かけなおして ください"
+	db   "@"
+; 17ff23
+
+Function17ff23: ; 17ff23
+	ld a, [hJoyPressed]
+	and a
+	ret z
+	ld a, $8
+	ld [MusicFade], a
+	ld a, [wMapMusic]
+	ld [MusicFadeID], a
+	xor a
+	ld [MusicFadeID + 1], a
+	ld hl, wc303
+	set 7, [hl]
+	ret
+; 17ff3c
+
+Function17ff3c: ; 17ff3c
+	nop
+	ld a, [wc300]
+	cp $d0
+	ret c
+	hlcoord 10, 2
+	ld de, String_17ff68
+	call PlaceString
+	ld a, [wc300]
+	push af
+	sub $d0
+	inc a
+	ld [wc300], a
+	hlcoord 14, 2
+	ld de, wc300
+	lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+	call PrintNum
+	pop af
+	ld [wc300], a
+	and a
+	ret
+; 17ff68
+
+String_17ff68: ; 17ff68
+	db "101@"
+; 17ff6c
--- /dev/null
+++ b/mobile/mobile_menu.asm
@@ -1,0 +1,879 @@
+MainMenu_Mobile: ; 49efc
+	call ClearBGPalettes
+	ld a, MUSIC_MOBILE_ADAPTER_MENU
+	ld [wMapMusic], a
+	ld de, MUSIC_MOBILE_ADAPTER_MENU
+	call Function4a6c5
+Function49f0a: ; 49f0a
+	call ClearBGPalettes
+	call Function4a3a7
+	call Function4a492
+	call ClearBGPalettes
+Function49f16: ; 49f16
+	call MobileMenu_InitMenuBuffers
+	ld c, 12
+	call DelayFrames
+	hlcoord 4, 0
+	ld b, 10
+	ld c, 10
+	call Function48cdc
+	hlcoord 6, 2
+	ld de, MobileString1
+	call PlaceString
+	hlcoord 0, 12
+	ld b, 4
+	ld c, SCREEN_HEIGHT
+	call TextBox
+	xor a
+	ld de, String_0x49fe9
+	hlcoord 1, 14
+	call PlaceString
+	call WaitBGMap2
+	call SetPalettes
+	call StaticMenuJoypad
+	ld hl, wMenuCursorY
+	ld b, [hl]
+	push bc
+	jr .check_buttons
+
+.joy_loop
+	call ScrollingMenuJoypad
+	ld hl, wMenuCursorY
+	ld b, [hl]
+	push bc
+
+.check_buttons
+	bit A_BUTTON_F, a
+	jr nz, .a_button
+	bit B_BUTTON_F, a
+	jr nz, .b_button
+	jr .next
+
+.a_button
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	cp 1
+	jp z, Function4a098
+	cp 2
+	jp z, Function4a0b9
+	cp 3
+	jp z, Function4a0c2
+	cp 4
+	jp z, Function4a100
+	ld a, 1
+	call MenuClickSound
+.b_button
+	pop bc
+	call ClearBGPalettes
+	call ClearTileMap
+	ld a, MUSIC_MAIN_MENU
+	ld [wMapMusic], a
+	ld de, MUSIC_MAIN_MENU
+	call Function4a6c5
+	ret
+
+.next
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	dec a
+	ld hl, MobileStrings2
+	call GetNthString
+	ld d, h
+	ld e, l
+	hlcoord 1, 13
+	ld b, 4
+	ld c, SCREEN_HEIGHT
+	call ClearBox
+	hlcoord 1, 14
+	call PlaceString
+	jp .useless_jump
+
+.useless_jump
+	call MobileMenu_InitMenuBuffers
+	pop bc
+	ld hl, wMenuCursorY
+	ld [hl], b
+	ld b, $a
+	ld c, $1
+	hlcoord 5, 1
+	call ClearBox
+	jp .joy_loop
+; 49fcc
+
+
+MobileString1: ; 49fcc
+	db   "めいしフ,ルダー"
+	next "あいさつ"
+	next "プロフィール"
+	next "せ", $1e, "い"
+	next "もどる"
+	db   "@"
+; 49fe9
+
+
+MobileStrings2:
+
+String_0x49fe9: ; 49fe9
+	db   "めいし¯つくったり"
+	next "ほぞんしておける フ,ルダーです@"
+; 4a004
+
+String_0x4a004: ; 4a004
+	db   "モバイルたいせんや じぶんのめいしで"
+	next "つかう あいさつ¯つくります@"
+; 4a026
+
+String_0x4a026: ; 4a026
+	db   "あなた%じゅうしょや ねんれいの"
+	next "せ", $1e, "い¯かえられます@"
+; 4a042
+
+String_0x4a042: ; 4a042
+	db  "モバイルセンター", $1d, "せつぞくするとき"
+	next "ひつような こと¯きめます@"
+; 4a062
+
+String_0x4a062: ; 4a062
+	db   "まえ%がめん ", $1d, "もどります"
+	next "@"
+; 4a071
+
+MobileMenu_InitMenuBuffers: ; 4a071 (12:6071)
+	ld hl, w2DMenuCursorInitY
+	ld a, 2
+	ld [hli], a
+	ld a, 5 ; w2DMenuCursorInitX
+	ld [hli], a
+	ld a, 5 ; w2DMenuNumRows
+	ld [hli], a
+	ld a, 1 ; w2DMenuNumCols
+	ld [hli], a
+	ld [hl], $0 ; w2DMenuFlags1
+	set 5, [hl]
+	inc hl
+	xor a ; w2DMenuFlags2
+	ld [hli], a
+	ld a, $20 ; w2DMenuCursorOffsets
+	ld [hli], a
+	; this is a stupid way to load $c3
+	ld a, A_BUTTON
+	add D_UP
+	add D_DOWN
+	add B_BUTTON
+	ld [hli], a ; wMenuJoypadFilter
+	ld a, 1
+	ld [hli], a ; wMenuCursorY, wMenuCursorX
+	ld [hli], a ; wMenuCursorY, wMenuCursorX
+	ret
+
+Function4a098: ; 4a098 (12:6098)
+	ld a, 2
+	call MenuClickSound
+	call PlaceHollowCursor
+	call WaitBGMap
+	call LoadStandardMenuDataHeader
+	callba Function89de0
+	call Call_ExitMenu
+	call MG_Mobile_Layout_LoadPals
+	call Function4a485
+	pop bc
+	jp Function49f16
+
+Function4a0b9: ; 4a0b9 (12:60b9)
+	ld a, 2
+	call MenuClickSound
+	pop bc
+	jp Function4a4c4
+
+Function4a0c2: ; 4a0c2 (12:60c2)
+	ld a, 2
+	call MenuClickSound
+	ld a, BANK(sPlayerData)
+	call GetSRAMBank
+	ld hl, sPlayerData + PlayerName - wPlayerData
+	ld de, PlayerName
+	ld bc, 6 ; japanese name length
+	call CopyBytes
+	call CloseSRAM
+	callba _LoadData
+	ld c, 2
+	call DelayFrames
+	ld c, $1
+	call InitMobileProfile
+	push af
+	call ClearBGPalettes
+	pop af
+	and a
+	jr nz, .skip_save
+	callba _SaveData
+.skip_save
+	ld c, 5
+	call DelayFrames
+	jr asm_4a111
+
+Function4a100: ; 4a100 (12:6100)
+	ld a, 2
+	call MenuClickSound
+	call ClearBGPalettes
+	call Function4a13b
+	call ClearBGPalettes
+	call ClearTileMap
+
+asm_4a111: ; 4a111 (12:6111)
+	pop bc
+	call LoadFontsExtra
+	jp Function49f0a
+
+Function4a118: ; 4a118 (12:6118)
+	ld hl, w2DMenuCursorInitY
+	ld a, $1
+	ld [hli], a
+	ld a, $d
+	ld [hli], a
+	ld a, $3
+	ld [hli], a
+	ld a, $1
+	ld [hli], a
+	ld [hl], $0
+	set 5, [hl]
+	inc hl
+	xor a
+	ld [hli], a
+	ld a, $20
+	ld [hli], a
+	ld a, $1
+	add $2
+	ld [hli], a
+	ld a, $1
+	ld [hli], a
+	ld [hli], a
+	ret
+
+Function4a13b: ; 4a13b (12:613b)
+	call Function4a3a7
+	call Function4a492
+	call Function4a373
+	ld c, 10
+	call DelayFrames
+
+Function4a149: ; 4a149 (12:6149)
+	hlcoord 1, 2
+	ld b, $6
+	ld c, $10
+	call Function48cdc
+	hlcoord 3, 4
+	ld de, String_4a1ef
+	call PlaceString
+	hlcoord 0, 12
+	ld b, $4
+	ld c, $12
+	call TextBox
+	ld a, [wMenuCursorY]
+	dec a
+	ld hl, Strings_4a23d
+	call GetNthString
+	ld d, h
+	ld e, l
+	hlcoord 1, 13
+	ld b, $4
+	ld c, $12
+	call ClearBox
+	hlcoord 1, 14
+	call PlaceString
+	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+	call SetPalettes
+	call StaticMenuJoypad
+	ld hl, wMenuCursorY
+	ld b, [hl]
+	push bc
+	jr asm_4a19d
+
+Function4a195: ; 4a195 (12:6195)
+	call ScrollingMenuJoypad
+	ld hl, wMenuCursorY
+	ld b, [hl]
+	push bc
+
+asm_4a19d: ; 4a19d (12:619d)
+	bit 0, a
+	jr nz, .asm_4a1a7
+	bit 1, a
+	jr nz, .asm_4a1ba
+	jr .asm_4a1bc
+.asm_4a1a7
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	cp $1
+	jp z, Function4a20e
+	cp $2
+	jp z, Function4a221
+	ld a, $1
+	call MenuClickSound
+.asm_4a1ba
+	pop bc
+	ret
+.asm_4a1bc
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	dec a
+	ld hl, Strings_4a23d
+	call GetNthString
+	ld d, h
+	ld e, l
+	hlcoord 1, 13
+	ld b, $4
+	ld c, $12
+	call ClearBox
+	hlcoord 1, 14
+	call PlaceString
+	jr .asm_4a1db
+.asm_4a1db
+	call Function4a373
+	pop bc
+	ld hl, wMenuCursorY
+	ld [hl], b
+	lb bc, 6, 1
+	hlcoord 2, 3
+	call ClearBox
+	jp Function4a195
+; 4a1ef (12:61ef)
+
+String_4a1ef: ; 4a1ef
+	db   "モバイルセンター¯えらぶ"
+	next "ログインパスワード¯いれる"
+	next "もどる@"
+; 4a20e
+
+Function4a20e: ; 4a20e (12:620e)
+	ld a, $1
+	call MenuClickSound
+	callba Function1719c8
+	call ClearBGPalettes
+	call DelayFrame
+	jr Function4a239
+
+Function4a221: ; 4a221 (12:6221)
+	ld a, $1
+	call MenuClickSound
+	call Function4a28a
+	jr c, Function4a239
+	call Function4a373
+	ld a, $2
+	ld [wMenuCursorY], a
+	jr .asm_4a235
+.asm_4a235
+	pop bc
+	jp Function4a149
+
+Function4a239: ; 4a239 (12:6239)
+	pop bc
+	jp Function4a13b
+; 4a23d (12:623d)
+
+Strings_4a23d: ; 4a23d
+	db   "いつも せつぞく¯する"
+	next "モバイルセンター¯えらびます@"
+
+	db   "モバイルセンター", $1d, "せつぞくするとき"
+	next "つかうパスワード¯ほぞんできます@"
+
+	db   "まえ%がめん ", $1d, "もどります@"
+
+	db   "@"
+; 4a28a
+
+Function4a28a: ; 4a28a (12:628a)
+	hlcoord 2, 3
+	lb bc, 6, 1
+	ld a, " "
+	call Function4a6d8
+	call PlaceHollowCursor
+	call WaitBGMap
+	call LoadStandardMenuDataHeader
+	ld a, $5
+	call GetSRAMBank
+	ld a, [$aa4b]
+	call CloseSRAM
+	and a
+	jr z, .asm_4a2df
+	hlcoord 12, 0
+	ld b, $5
+	ld c, $6
+	call Function48cdc
+	hlcoord 14, 1
+	ld de, String_4a34b
+	call PlaceString
+	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+	call Function4a118
+	call ScrollingMenuJoypad
+	push af
+	call PlayClickSFX
+	pop af
+	bit B_BUTTON_F, a
+	jr nz, .quit
+	ld a, [wMenuCursorY]
+	cp $2
+	jr z, .DeleteLoginPassword
+	cp $3
+	jr z, .quit
+.asm_4a2df
+	callba Function11765d
+	call ClearBGPalettes
+	call Call_ExitMenu
+	call LoadFontsExtra
+	scf
+	ret
+
+.DeleteLoginPassword:
+	call PlaceHollowCursor
+	ld hl, UnknownText_0x4a358
+	call PrintText
+	hlcoord 14, 7
+	ld b, 3
+	ld c, 4
+	call TextBox
+	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+	ld hl, DeletePassword_YesNo_MenuDataHeader
+	call LoadMenuDataHeader
+	call VerticalMenu
+	bit B_BUTTON_F, a
+	jr nz, .dont_delete_password
+	ld a, [wMenuCursorY]
+	cp $2
+	jr z, .dont_delete_password
+	ld a, BANK(sMobileLoginPassword)
+	call GetSRAMBank
+	ld hl, sMobileLoginPassword
+	xor a
+	ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
+	call ByteFill
+	call CloseSRAM
+	ld hl, UnknownText_0x4a35d
+	call PrintText
+	call JoyWaitAorB
+.dont_delete_password
+	call ExitMenu
+.quit
+	call Call_ExitMenu
+	callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+	xor a
+	ret
+; 4a346 (12:6346)
+
+MenuDataHeader_0x4a346: ; 0x4a346
+	db $40 ; flags
+	db 00, 12 ; start coords
+	db 06, 19 ; end coords
+
+String_4a34b: ; 4a34b
+	db   "いれなおす"
+	next "けす"
+	next "もどる@"
+; 4a358
+
+UnknownText_0x4a358: ; 0x4a358
+	; Delete the saved LOG-IN PASSWORD?
+	text_jump UnknownText_0x1c5196
+	db "@"
+; 0x4a35d
+
+UnknownText_0x4a35d: ; 0x4a35d
+	; Deleted the LOG-IN PASSWORD.
+	text_jump UnknownText_0x1c51b9
+	db "@"
+; 0x4a362
+
+DeletePassword_YesNo_MenuDataHeader: ; 0x4a362
+	db $40 ; flags
+	db 07, 14 ; start coords
+	db 11, 19 ; end coords
+	dw MenuData2_0x4a36a
+	db 2 ; default option
+; 0x4a36a
+
+MenuData2_0x4a36a: ; 0x4a36a
+	db $e0 ; flags
+	db 2 ; items
+	db "はい@"
+	db "いいえ@"
+; 0x4a373
+
+Function4a373: ; 4a373 (12:6373)
+	ld hl, w2DMenuCursorInitY
+	ld a, $4
+	ld [hli], a
+	ld a, $2
+	ld [hli], a
+	ld a, $3
+	ld [hli], a
+	ld a, $1
+	ld [hli], a
+	ld [hl], $0
+	set 5, [hl]
+	inc hl
+	xor a
+	ld [hli], a
+	ld a, $20
+	ld [hli], a
+	ld a, $1
+	add $40
+	add $80
+	add $2
+	ld [hli], a
+	ld a, $1
+	ld [hli], a
+	ld [hli], a
+	ret
+; 4a39a (12:639a)
+
+Function4a39a: ; 4a39a
+	call Function4a485
+	call Function4a492
+	call Function4a3aa
+	call SetPalettes
+	ret
+; 4a3a7
+
+Function4a3a7: ; 4a3a7 (12:63a7)
+	call Function4a485
+Function4a3aa: ; 4a3aa
+	hlcoord 0, 0
+	lb bc, 3, 1
+	xor a
+	call Function4a6d8
+	lb bc, 1, 1
+	ld a, $1
+	call Function4a6d8
+	lb bc, 1, 1
+	xor a
+	call Function4a6d8
+	lb bc, 1, 1
+	ld a, $1
+	call Function4a6d8
+	lb bc, 4, 1
+	ld a, $2
+	call Function4a6d8
+	lb bc, 1, 1
+	ld a, $3
+	call Function4a6d8
+	lb bc, 1, 1
+	ld a, " "
+	call Function4a6d8
+	hlcoord 1, 0
+	ld a, $1
+	lb bc, 3, 18
+	call Function4a6d8
+	lb bc, 1, 18
+	ld a, $0
+	call Function4a6d8
+	lb bc, 1, 18
+	ld a, $1
+	call Function4a6d8
+	lb bc, 1, 18
+	ld a, $2
+	call Function4a6d8
+	lb bc, 11, 18
+	ld a, " "
+	call Function4a6d8
+	hlcoord 19, 0
+	lb bc, 3, 1
+	ld a, $0
+	call Function4a6d8
+	lb bc, 1, 1
+	ld a, $1
+	call Function4a6d8
+	lb bc, 1, 1
+	xor a
+	call Function4a6d8
+	lb bc, 1, 1
+	ld a, $1
+	call Function4a6d8
+	lb bc, 4, 1
+	ld a, $2
+	call Function4a6d8
+	lb bc, 1, 1
+	ld a, $3
+	call Function4a6d8
+	lb bc, 1, 1
+	ld a, " "
+	call Function4a6d8
+	ret
+; 4a449 (12:6449)
+
+Function4a449: ; 4a449
+	ld bc, 3 * SCREEN_WIDTH
+	ld a, $0
+	hlcoord 0, 0
+	call ByteFill
+	ld bc, 2 * SCREEN_WIDTH
+	ld a, $1
+	call ByteFill
+	ld bc, 2 * SCREEN_WIDTH
+	ld a, $0
+	call ByteFill
+	ld bc, 2 * SCREEN_WIDTH
+	ld a, $1
+	call ByteFill
+	ld bc, SCREEN_WIDTH
+	ld a, $2
+	call ByteFill
+	ld bc, SCREEN_WIDTH
+	ld a, $3
+	call ByteFill
+	ld bc, SCREEN_WIDTH
+	ld a, " "
+	call ByteFill
+	ret
+; 4a485
+
+Function4a485: ; 4a485 (12:6485)
+	ld de, GFX_49c0c
+	ld hl, VTiles2 tile $00
+	lb bc, BANK(GFX_49c0c), 13
+	call Get2bpp
+	ret
+
+Function4a492: ; 4a492 (12:6492)
+	call MG_Mobile_Layout00
+	ret
+
+
+MainMenu_MobileStudium: ; 4a496
+	ld a, [StartDay]
+	ld b, a
+	ld a, [StartHour]
+	ld c, a
+	ld a, [StartMinute]
+	ld d, a
+	ld a, [StartSecond]
+	ld e, a
+	push bc
+	push de
+	callba MobileStudium
+	call ClearBGPalettes
+	pop de
+	pop bc
+	ld a, b
+	ld [StartDay], a
+	ld a, c
+	ld [StartHour], a
+	ld a, d
+	ld [StartMinute], a
+	ld a, e
+	ld [StartSecond], a
+	ret
+; 4a4c4
+
+
+Function4a4c4: ; 4a4c4 (12:64c4)
+	call ClearBGPalettes
+	call Function4a3a7
+	call Function4a492
+	call Function4a680
+	call ClearBGPalettes
+	ld c, 20
+	call DelayFrames
+	hlcoord 2, 0
+	ld b, $a
+	ld c, $e
+	call Function48cdc
+	hlcoord 4, 2
+	ld de, String_4a5c5
+	call PlaceString
+	hlcoord 4, 4
+	ld de, String_4a5cd
+	call PlaceString
+	hlcoord 4, 6
+	ld de, String_4a5da
+	call PlaceString
+	hlcoord 4, 8
+	ld de, String_4a5e6
+	call PlaceString
+	hlcoord 4, 10
+	ld de, String_4a5f2
+	call PlaceString
+	hlcoord 0, 12
+	ld b, $4
+	ld c, $12
+	call TextBox
+	xor a
+	ld hl, Strings_4a5f6
+	ld d, h
+	ld e, l
+	hlcoord 1, 14
+	call PlaceString
+	ld a, $1
+	ld hl, Strings_4a5f6
+	call GetNthString
+	ld d, h
+	ld e, l
+	hlcoord 1, 16
+	call PlaceString
+	call WaitBGMap2
+	call SetPalettes
+	call StaticMenuJoypad
+	ld hl, wMenuCursorY
+	ld b, [hl]
+	push bc
+	jr asm_4a54d
+
+Function4a545: ; 4a545 (12:6545)
+	call ScrollingMenuJoypad
+	ld hl, wMenuCursorY
+	ld b, [hl]
+	push bc
+
+asm_4a54d: ; 4a54d (12:654d)
+	bit 0, a
+	jr nz, .asm_4a557
+	bit 1, a
+	jr nz, .asm_4a574
+	jr .asm_4a57e
+.asm_4a557
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	cp $1
+	jp z, Function4a6ab
+	cp $2
+	jp z, Function4a6ab
+	cp $3
+	jp z, Function4a6ab
+	cp $4
+	jp z, Function4a6ab
+	ld a, $1
+	call MenuClickSound
+.asm_4a574
+	pop bc
+	call ClearBGPalettes
+	call ClearTileMap
+	jp Function49f0a
+.asm_4a57e
+	ld hl, wMenuCursorY
+	ld a, [hl]
+	dec a
+	add a
+	push af
+	ld hl, Strings_4a5f6
+	call GetNthString
+	ld d, h
+	ld e, l
+	hlcoord 1, 13
+	ld b, $4
+	ld c, $12
+	call ClearBox
+	hlcoord 1, 14
+	call PlaceString
+	pop af
+	inc a
+	ld hl, Strings_4a5f6
+	call GetNthString
+	ld d, h
+	ld e, l
+	hlcoord 1, 16
+	call PlaceString
+	jp Function4a5b0
+
+Function4a5b0: ; 4a5b0 (12:65b0)
+	call Function4a680
+	pop bc
+	ld hl, wMenuCursorY
+	ld [hl], b
+	ld b, $a
+	ld c, $1
+	hlcoord 3, 1
+	call ClearBox
+	jp Function4a545
+; 4a5c5 (12:65c5)
+
+String_4a5c5: ; 4a5c5
+	db "じこしょうかい@"
+String_4a5cd: ; 4a5cd
+	db "たいせん ", $4a, "はじまるとき@"
+String_4a5da: ; 4a5da
+	db "たいせん ", $1d, "かったとき@"
+String_4a5e6: ; 4a5e6
+	db "たいせん ", $1d, "まけたとき@"
+String_4a5f2: ; 4a5f2
+	db "もどる@"
+; 4a5f6
+
+Strings_4a5f6: ; 4a5f6
+	db "めいし や ニュース ", $1d, "のせる@"
+	db "あなた%あいさつです@"
+	db "モバイル たいせん", $4a, "はじまるとき@"
+	db "あいて", $1d, "みえる あいさつです@"
+	db "モバイル たいせんで かったとき@"
+	db "あいて", $1d, "みえる あいさつです@"
+	db "モバイル たいせんで まけたとき@"
+	db "あいて", $1d, "みえる あいさつです@"
+	db "まえ%がめん ", $1d, "もどります@"
+	db "@"
+; 4a680
+
+Function4a680: ; 4a680 (12:6680)
+	ld hl, w2DMenuCursorInitY
+	ld a, $2
+	ld [hli], a
+	ld a, $3
+	ld [hli], a
+	ld a, $5
+	ld [hli], a
+	ld a, $1
+	ld [hli], a
+	ld [hl], $0
+	set 5, [hl]
+	inc hl
+	xor a
+	ld [hli], a
+	ld a, $20
+	ld [hli], a
+	ld a, $1
+	add $40
+	add $80
+	add $2
+	ld [hli], a
+	ld a, $1
+	ld [hli], a
+	ld [hli], a
+	xor a
+	ld [hli], a
+	ld [hli], a
+	ld [hli], a
+	ret
+
+Function4a6ab: ; 4a6ab (12:66ab)
+	ld a, $2
+	call MenuClickSound
+	call ClearBGPalettes
+	ld b, SCGB_DIPLOMA
+	call GetSGBLayout
+	callba Function11c1ab
+	pop bc
+	call LoadFontsExtra
+	jp Function4a4c4
+
+Function4a6c5: ; 4a6c5 (12:66c5)
+	ld a, $5
+	ld [MusicFade], a
+	ld a, e
+	ld [MusicFadeID], a
+	ld a, d
+	ld [MusicFadeID + 1], a
+	ld c, 22
+	call DelayFrames
+	ret
+
+Function4a6d8: ; 4a6d8 (12:66d8)
+	push bc
+	push hl
+.asm_4a6da
+	ld [hli], a
+	dec c
+	jr nz, .asm_4a6da
+	pop hl
+	ld bc, SCREEN_WIDTH
+	add hl, bc
+	pop bc
+	dec b
+	jr nz, Function4a6d8
+	ret