shithub: pokecrystal

Download patch

ref: fa673df4fa286e24097a5690ffad30b815d2607e
parent: 255135d1878b76bf82122ade20cb1c2132553ec7
author: Mr Wint <MrWint42@gmail.com>
date: Tue Oct 1 21:59:16 EDT 2013

* applied callab/callba macros where possible
* corrected some mislabeled jump addresses

--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -1133,9 +1133,122 @@
 ; efda
 
 
-INCBIN "baserom.gbc", $efda, $f0a9 - $efda
+; known jump sources: efb5 (3:6fb5), efd4 (3:6fd4)
+Functionefda: ; efda (3:6fda)
+	call Functionf30d
+	ld a, $1
+	ret z
+	call Functionf058
+	ld a, $20
+	call GetPartyParamLocation
+	ld a, [hl]
+	and c
+	jr nz, .asm_eff4
+	call Functionf009
+	ld a, $1
+	ret nc
+	ld b, $f9
+.asm_eff4
+	xor a
+	ld [hl], a
+	ld a, b
+	ld [PartyMenuActionText], a ; $d141
+	call Functionf030
+	call Functionf780
+	call Functionf279
+	call Functionf795
+	ld a, $0
+	ret
 
+; known jump sources: efec (3:6fec)
+Functionf009: ; f009 (3:7009)
+	call Functionf2a6
+	jr nc, .asm_f01c
+	ld a, [PlayerSubStatus3] ; $c66a
+	bit 7, a
+	jr z, .asm_f01c
+	ld a, c
+	cp $ff
+	jr nz, .asm_f01c
+	scf
+	ret
+.asm_f01c
+	and a
+	ret
 
+; known jump sources: f156 (3:7156), f1c7 (3:71c7)
+Functionf01e: ; f01e (3:701e)
+	call Functionf2a6
+	ret nc
+	ld a, $22
+	call GetPartyParamLocation
+	ld a, [hli]
+	ld [BattleMonHP], a ; $c63c
+	ld a, [hld]
+	ld [$c63d], a
+	ret
+
+; known jump sources: effa (3:6ffa), f153 (3:7153)
+Functionf030: ; f030 (3:7030)
+	call Functionf2a6
+	ret nc
+	xor a
+	ld [BattleMonStatus], a ; $c63a
+	ld hl, PlayerSubStatus5 ; $c66c
+	res 0, [hl]
+	ld hl, PlayerSubStatus1 ; $c668
+	res 0, [hl]
+	call Functionf058
+	ld a, c
+	cp $ff
+	jr nz, .asm_f04f
+	ld hl, PlayerSubStatus3 ; $c66a
+	res 7, [hl]
+.asm_f04f
+	push bc
+	ld a, BANK(Function0x365d7)
+	ld hl, Function0x365d7
+	rst $8 ;  ; indirect jump to Function0x365d7 (365d7 (d:65d7))
+	pop bc
+	ret
+
+; known jump sources: efe0 (3:6fe0), f042 (3:7042)
+Functionf058: ; f058 (3:7058)
+	push hl
+	ld a, [CurItem] ; $d106
+	ld hl, $7071
+	ld bc, $3
+.asm_f062
+	cp [hl]
+	jr z, .asm_f068
+	add hl, bc
+	jr .asm_f062
+.asm_f068
+	inc hl
+	ld b, [hl]
+	inc hl
+	ld a, [hl]
+	ld c, a
+	cp $ff
+	pop hl
+	ret
+; f071 (3:7071)
+
+INCBIN "baserom.gbc",$f071,$f09e - $f071
+
+; known jump sources: efc9 (3:6fc9), efd7 (3:6fd7), f0c5 (3:70c5), f0d3 (3:70d3), f141 (3:7141), f183 (3:7183), f189 (3:7189), f1a6 (3:71a6)
+Functionf09e: ; f09e (3:709e)
+	ld hl, $70a3
+	rst $28
+	ret
+
+; no known jump sources
+Jumptable_f0a3: ; f0a3 (3:70a3)
+	dw Functionf2a2
+	dw Functionf299
+	dw Functionf29e
+
+
 RevivalHerb: ; f0a9
 	ld b, $1
 	call $71f9
@@ -1267,8 +1380,425 @@
 ; f1a9
 
 
-INCBIN "baserom.gbc", $f1a9, $f44f - $f1a9
+; known jump sources: f186 (3:7186), f193 (3:7193)
+Functionf1a9: ; f1a9 (3:71a9)
+	ld b, $1
+	call Functionf1f9
+	ld a, $2
+	ret c
+	call Functionf30d
+	ld a, $1
+	ret z
+	call Functionf31b
+	ld a, $1
+	ret nc
+	xor a
+	ld [Danger], a ; $c2a6
+	call Functionf395
+	call Functionf2d1
+	call Functionf01e
+	call Functionf1db
+	ld a, $f5
+	ld [PartyMenuActionText], a ; $d141
+	call Functionf279
+	call Functionf795
+	ld a, $0
+	ret
 
+; known jump sources: f117 (3:7117), f159 (3:7159), f1ca (3:71ca), f3f7 (3:73f7), f408 (3:7408)
+Functionf1db: ; f1db (3:71db)
+	push de
+	ld de, $4
+	call WaitPlaySFX
+	pop de
+	ld a, [CurPartyMon] ; $d109
+	ld hl, $c4ab
+	ld bc, $28
+	call AddNTimes
+	ld a, $2
+	ld [$d10a], a
+	ld a, $b
+	jp Predef
+
+; known jump sources: ee11 (3:6e11), ee3f (3:6e3f), ef16 (3:6f16), efaf (3:6faf), efce (3:6fce), f0ab (3:70ab), f0ca (3:70ca), f12a (3:712a), f1ab (3:71ab), f5c7 (3:75c7)
+Functionf1f9: ; f1f9 (3:71f9)
+	call Functionf20b
+	ret c
+	ld a, [CurPartySpecies] ; $d108
+	cp $fd
+	jr nz, .asm_f209
+	call Functionf7e8
+	scf
+	ret
+.asm_f209
+	and a
+	ret
+
+; known jump sources: f1f9 (3:71f9)
+Functionf20b: ; f20b (3:720b)
+	ld a, b
+	ld [PartyMenuActionText], a ; $d141
+	push hl
+	push de
+	push bc
+	call WhiteBGMap
+	call Functionf21c
+	pop bc
+	pop de
+	pop hl
+	ret
+
+; known jump sources: f215 (3:7215), f41f (3:741f)
+Functionf21c: ; f21c (3:721c)
+	ld a, BANK(Function5004f)
+	ld hl, Function5004f
+	rst $8 ;  ; indirect jump to Function5004f (5004f (14:404f))
+	ld a, BANK(Function50405)
+	ld hl, Function50405
+	rst $8 ;  ; indirect jump to Function50405 (50405 (14:4405))
+	ld a, BANK(Function503e0)
+	ld hl, Function503e0
+	rst $8 ;  ; indirect jump to Function503e0 (503e0 (14:43e0))
+	ld a, BANK(WritePartyMenuTilemap)
+	ld hl, WritePartyMenuTilemap
+	rst $8 ;  ; indirect jump to WritePartyMenuTilemap (5005f (14:405f))
+	ld a, BANK(PrintPartyMenuText)
+	ld hl, PrintPartyMenuText
+	rst $8 ;  ; indirect jump to PrintPartyMenuText (5049a (14:449a))
+	call WaitBGMap
+	call Function32f9
+	call DelayFrame
+	ld a, BANK(PartyMenuSelect)
+	ld hl, PartyMenuSelect
+	rst $8 ;  ; indirect jump to PartyMenuSelect (50457 (14:4457))
+	ret
+
+; known jump sources: ef6d (3:6f6d), f28a (3:728a), f40d (3:740d)
+Functionf24a: ; f24a (3:724a)
+	ld [PartyMenuActionText], a ; $d141
+	ld a, [CurPartySpecies] ; $d108
+	push af
+	ld a, [CurPartyMon] ; $d109
+	push af
+	push hl
+	push de
+	push bc
+	ld a, BANK(WritePartyMenuTilemap)
+	ld hl, WritePartyMenuTilemap
+	rst $8 ;  ; indirect jump to WritePartyMenuTilemap (5005f (14:405f))
+	ld a, BANK(Function50566)
+	ld hl, Function50566
+	rst $8 ;  ; indirect jump to Function50566 (50566 (14:4566))
+	call WaitBGMap
+	call Function32f9
+	call DelayFrame
+	pop bc
+	pop de
+	pop hl
+	pop af
+	ld [CurPartyMon], a ; $d109
+	pop af
+	ld [CurPartySpecies], a ; $d108
+	ret
+
+; known jump sources: f000 (3:7000), f11f (3:711f), f161 (3:7161), f1d2 (3:71d2)
+Functionf279: ; f279 (3:7279)
+	xor a
+	ld [hBGMapMode], a ; $ff00+$d4
+	ld hl, TileMap ; $c4a0 (aliases: SpritesEnd)
+	ld bc, $168
+	ld a, $7f
+	call ByteFill
+	ld a, [PartyMenuActionText] ; $d141
+	call Functionf24a
+	ld a, $1
+	ld [hBGMapMode], a ; $ff00+$d4
+	ld c, $32
+	call DelayFrames
+	jp Functiona80
+
+; known jump sources: f133 (3:7133)
+Functionf299: ; f299 (3:7299)
+	call Functionf7f2
+	jr Functionf2a2
+
+; known jump sources: efb2 (3:6fb2), efd1 (3:6fd1), f0ae (3:70ae), f0cd (3:70cd), f12d (3:712d)
+Functionf29e: ; f29e (3:729e)
+	xor a
+	ld [$d0ec], a
+
+; known jump sources: f29c (3:729c)
+Functionf2a2: ; f2a2 (3:72a2)
+	call ClearPalettes
+	ret
+
+; known jump sources: f009 (3:7009), f01e (3:701e), f030 (3:7030)
+Functionf2a6: ; f2a6 (3:72a6)
+	ld a, [IsInBattle] ; $d22d (aliases: EnemyMonEnd)
+	and a
+	ret z
+	ld a, [CurPartyMon] ; $d109
+	push hl
+	ld hl, CurBattleMon ; $d0d4
+	cp [hl]
+	pop hl
+	jr nz, .asm_f2b8
+	scf
+	ret
+.asm_f2b8
+	xor a
+	ret
+
+; known jump sources: f114 (3:7114)
+Functionf2ba: ; f2ba (3:72ba)
+	call Functionf36f
+	srl d
+	rr e
+	jr asm_f2c6
+
+; known jump sources: f10f (3:710f), f148 (3:7148), f2f5 (3:72f5)
+Functionf2c3: ; f2c3 (3:72c3)
+	call Functionf36f
+asm_f2c6: ; f2c6 (3:72c6)
+	ld a, $22
+	call GetPartyParamLocation
+	ld [hl], d
+	inc hl
+	ld [hl], e
+	jp Functionf328
+
+; known jump sources: f1c4 (3:71c4), f405 (3:7405)
+Functionf2d1: ; f2d1 (3:72d1)
+	ld a, $23
+	call GetPartyParamLocation
+	ld a, [hl]
+	add e
+	ld [hld], a
+	ld a, [hl]
+	adc d
+	ld [hl], a
+	jr c, .asm_f2f5
+	call Functionf328
+	ld a, $23
+	call GetPartyParamLocation
+	ld d, h
+	ld e, l
+	ld a, $25
+	call GetPartyParamLocation
+	ld a, [de]
+	sub [hl]
+	dec de
+	dec hl
+	ld a, [de]
+	sbc [hl]
+	jr c, .asm_f2f8
+.asm_f2f5
+	call Functionf2c3
+.asm_f2f8
+	ret
+
+; known jump sources: f3f3 (3:73f3)
+Functionf2f9: ; f2f9 (3:72f9)
+	ld a, $23
+	call GetPartyParamLocation
+	ld a, [hl]
+	sub e
+	ld [hld], a
+	ld a, [hl]
+	sbc d
+	ld [hl], a
+	jr nc, .asm_f309
+	xor a
+	ld [hld], a
+	ld [hl], a
+.asm_f309
+	call Functionf328
+	ret
+
+; known jump sources: efda (3:6fda), f0d6 (3:70d6), f130 (3:7130), f1b1 (3:71b1), f3ed (3:73ed), f402 (3:7402), f432 (3:7432)
+Functionf30d: ; f30d (3:730d)
+	push de
+	call Functionf35f
+	call Functionf348
+	call Functionf356
+	ld a, d
+	or e
+	pop de
+	ret
+
+; known jump sources: f136 (3:7136), f1b7 (3:71b7), f437 (3:7437)
+Functionf31b: ; f31b (3:731b)
+	call Functionf356
+	ld h, d
+	ld l, e
+	call Functionf36f
+	ld a, l
+	sub e
+	ld a, h
+	sbc d
+	ret
+
+; known jump sources: f2ce (3:72ce), f2de (3:72de), f309 (3:7309)
+Functionf328: ; f328 (3:7328)
+	ld a, $22
+	call GetPartyParamLocation
+	ld a, [hli]
+	ld [$d1ef], a
+	ld a, [hl]
+	ld [$d1ee], a
+	ret
+; f336 (3:7336)
+
+INCBIN "baserom.gbc",$f336,$f348 - $f336
+
+; known jump sources: f311 (3:7311)
+Functionf348: ; f348 (3:7348)
+	ld a, $22
+	call GetPartyParamLocation
+	ld a, [hli]
+	ld [$d1ed], a
+	ld a, [hl]
+	ld [$d1ec], a
+	ret
+
+; known jump sources: f314 (3:7314), f31b (3:731b)
+Functionf356: ; f356 (3:7356)
+	ld a, [$d1ed]
+	ld d, a
+	ld a, [$d1ec]
+	ld e, a
+	ret
+
+; known jump sources: f30e (3:730e)
+Functionf35f: ; f35f (3:735f)
+	push hl
+	ld a, $24
+	call GetPartyParamLocation
+	ld a, [hli]
+	ld [Buffer2], a ; $d1eb (aliases: MovementType)
+	ld a, [hl]
+	ld [Buffer1], a ; $d1ea (aliases: MagikarpLength)
+	pop hl
+	ret
+
+; known jump sources: f2ba (3:72ba), f2c3 (3:72c3), f320 (3:7320)
+Functionf36f: ; f36f (3:736f)
+	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+	ld d, a
+	ld a, [Buffer1] ; $d1ea (aliases: MagikarpLength)
+	ld e, a
+	ret
+
+; known jump sources: f3f0 (3:73f0), f3fb (3:73fb)
+Functionf378: ; f378 (3:7378)
+	push bc
+	ld a, $24
+	call GetPartyParamLocation
+	ld a, [hli]
+	ld [hPastLeadingZeroes], a ; $ff00+$b3 (aliases: hDividend, hProduct)
+	ld a, [hl]
+	ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
+	ld a, $5
+	ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
+	ld b, $2
+	call Divide
+	ld a, [$FF00+$b5]
+	ld d, a
+	ld a, [$FF00+$b6]
+	ld e, a
+	pop bc
+	ret
+
+; known jump sources: f1c1 (3:71c1)
+Functionf395: ; f395 (3:7395)
+	push hl
+	ld a, [CurItem] ; $d106
+	ld hl, $73af
+	ld d, a
+.asm_f39d
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_f3a9
+	cp d
+	jr z, .asm_f3aa
+	inc hl
+	inc hl
+	jr .asm_f39d
+.asm_f3a9
+	scf
+.asm_f3aa
+	ld e, [hl]
+	inc hl
+	ld d, [hl]
+	pop hl
+	ret
+; f3af (3:73af)
+
+INCBIN "baserom.gbc",$f3af,$f3df - $f3af
+
+Functionf3df: ; f3df (3:73df)
+	ld a, [$d0d8]
+	dec a
+	ld b, a
+	call Functionf419
+	jr c, .asm_f413
+	ld a, b
+	ld [CurPartyMon], a ; $d109
+	call Functionf30d
+	call Functionf378
+	call Functionf2f9
+	push bc
+	call Functionf1db
+	pop bc
+	call Functionf378
+	ld a, c
+	ld [CurPartyMon], a ; $d109
+	call Functionf30d
+	call Functionf2d1
+	call Functionf1db
+	ld a, $f5
+	call Functionf24a
+	call Functiona36
+.asm_f413
+	ld a, b
+	inc a
+	ld [$d0d8], a
+	ret
+
+; known jump sources: f3e4 (3:73e4), f448 (3:7448)
+Functionf419: ; f419 (3:7419)
+	push bc
+	ld a, $1
+	ld [PartyMenuActionText], a ; $d141
+	call Functionf21c
+	pop bc
+	jr c, .asm_f43e
+	ld a, [$d0d8]
+	dec a
+	ld c, a
+	ld a, b
+	cp c
+	jr z, .asm_f440
+	ld a, c
+	ld [CurPartyMon], a ; $d109
+	call Functionf30d
+	jr z, .asm_f440
+	call Functionf31b
+	jr nc, .asm_f440
+	xor a
+	ret
+.asm_f43e
+	scf
+	ret
+.asm_f440
+	push bc
+	ld hl, $744a
+	call Function1d67
+	pop bc
+	jr Functionf419
+; f44a (3:744a)
+
+INCBIN "baserom.gbc",$f44a,$f44f - $f44a
 
 EscapeRope: ; f44f
 	xor a
--- a/main.asm
+++ b/main.asm
@@ -176,17 +176,13 @@
 ; 1bc9
 
 Function1bc9: ; 1bc9
-	ld hl, $41a8
-	ld a, $9
-	rst FarCall
+	callab Function241a8
 	call Function1bdd
 	ret
 ; 1bd3
 
 Function1bd3: ; 1bd3
-	ld hl, $41ab
-	ld a, $9
-	rst FarCall
+	callab Function241ab
 	call Function1bdd
 	ret
 ; 1bdd
@@ -226,9 +222,7 @@
 ; 1c00
 
 Function1c00: ; 1c00
-	ld hl, $4374
-	ld a, $9
-	rst FarCall
+	callab Function24374
 	ret
 ; 1c07
 
@@ -2650,12 +2644,8 @@
 ; 39d4
 
 UpdateBattleHuds: ; 39d4
-	ld a, $f
-	ld hl, $5f48
-	rst FarCall ; UpdatePlayerHud
-	ld a, $f
-	ld hl, $6036
-	rst FarCall ; UpdateEnemyHud
+	callba Function3df48
+	callba Function3e036
 	ret
 ; 39e1
 
@@ -6321,9 +6311,7 @@
 	add hl, bc
 	ld a, [hl]
 	ld b, a
-	ld a, $2
-	ld hl, $407e
-	rst FarCall
+	callba Function807e
 	pop bc
 	ld hl, $0005
 	add hl, bc
@@ -6821,9 +6809,7 @@
 	ret nc
 	ld d, h
 	ld e, l
-	ld a, $2
-	ld hl, $4286
-	rst FarCall
+	callba Function8286
 	ret
 ; 55b9
 
@@ -7186,9 +7172,7 @@
 	ld [$d04e], a
 	ld [$d4e2], a
 	call Function57bc
-	ld a, $5
-	ld hl, $49c6
-	rst FarCall
+	callba Function149c6
 	call c, Function57d9
 	call Function57ca
 	ret
@@ -7260,9 +7244,7 @@
 	ret c
 	ld a, c
 	call Function582c
-	ld a, $2
-	ld hl, $448a
-	rst FarCall
+	callba Function848a
 	ret
 ; 5815
 
@@ -7800,9 +7782,7 @@
 	ld a, e
 	ld [CurMusic], a
 	call StartMusic
-	ld a, $12
-	ld hl, $5cdc
-	rst FarCall
+	callba MainMenu
 	jp $6219
 ; 5b04
 
@@ -7852,12 +7832,8 @@
 
 MysteryGift: ; 5b54
 	call UpdateTime
-	ld a, $4
-	ld hl, $5548
-	rst FarCall
-	ld a, $41
-	ld hl, $48ba
-	rst FarCall
+	callba Function11548
+	callba Function1048ba
 	ret
 ; 5b64
 
@@ -7884,20 +7860,14 @@
 ; 5b8f
 
 Function5b8f: ; 5b8f
-	ld a, $41
-	ld hl, $632f
-	rst FarCall
+	callba Function10632f
 	jr c, .asm_5b9e
-	ld a, $12
-	ld hl, $4dcb
-	rst FarCall
+	callba Function48dcb
 	ret
 
 .asm_5b9e
 	ld c, $0
-	ld a, $12
-	ld hl, $402f
-	rst FarCall
+	callba Function4802f
 	ret
 ; 5ba7
 
@@ -8021,17 +7991,11 @@
 
 	call Function5ce9
 
-	ld a, $9
-	ld hl, $6751
-	rst FarCall
+	callba Function26751
 
-	ld a, $11
-	ld hl, $4765
-	rst FarCall
+	callba Function44765
 
-	ld a, $41
-	ld hl, $61c0
-	rst FarCall
+	callba Function1061c0
 
 	call ResetGameTime
 	ret
@@ -8126,12 +8090,8 @@
 
 Function5d23: ; 5d23
 	call Function610f
-	ld a, $2
-	ld hl, $4029
-	rst FarCall
-	ld a, $4
-	ld hl, $53d6
-	rst FarCall
+	callba Function8029
+	callba Function113d6
 	ret
 ; 5d33
 
@@ -8163,13 +8123,9 @@
 ; 5d65
 
 Continue: ; 5d65
-	ld a, $5
-	ld hl, $4ea5
-	rst FarCall
+	callba Function14ea5
 	jr c, .asm_5dd6
-	ld a, $5
-	ld hl, $50b9
-	rst FarCall
+	callba Function150b9
 	call Function1d6e
 	call Function5e85
 	ld a, $1
@@ -8200,15 +8156,9 @@
 	call ClearTileMap
 	ld c, $14
 	call DelayFrames
-	ld a, $a
-	ld hl, $6394
-	rst FarCall
-	ld a, $41
-	ld hl, $5091
-	rst FarCall
-	ld a, $5
-	ld hl, $40ae
-	rst FarCall
+	callba Function2a394
+	callba Function105091
+	callba Function140ae
 	ld a, [$d4b5]
 	cp $1
 	jr z, .asm_5dd7
@@ -8240,9 +8190,7 @@
 ; 5df0
 
 Function5df0: ; 5df0
-	ld a, $41
-	ld hl, $632f
-	rst FarCall
+	callba Function10632f
 	ret nc
 	ld hl, $d479
 	bit 1, [hl]
@@ -8256,12 +8204,8 @@
 	ld c, 20
 	call DelayFrames
 	ld c, $1
-	ld a, $12
-	ld hl, $402f
-	rst FarCall
-	ld a, $5
-	ld hl, $509a
-	rst FarCall
+	callba Function4802f
+	callba Function1509a
 	ld a, $8
 	ld [MusicFade], a
 	ld a, MUSIC_NONE % $100
@@ -8293,9 +8237,7 @@
 	call Function6e3
 	and $80
 	jr z, .asm_5e5b
-	ld a, $8
-	ld hl, $4021
-	rst FarCall
+	callba Function20021
 	ld a, c
 	and a
 	jr z, .asm_5e5b
@@ -8496,9 +8438,7 @@
 
 
 OakSpeech: ; 0x5f99
-	ld a, $24
-	ld hl, $4672
-	rst FarCall
+	callba Function90672
 	call Function4dd
 	call ClearTileMap
 
@@ -8615,9 +8555,7 @@
 	dec a
 	jr z, .NewName
 	call Function60fa
-	ld a, $2
-	ld hl, $4c1d
-	rst FarCall
+	callba Function8c1d
 	callba MovePlayerPicLeft
 	ret
 
@@ -8624,9 +8562,7 @@
 .NewName
 	ld b, 1
 	ld de, PlayerName
-	ld a, $4
-	ld hl, $56c1
-	rst FarCall
+	callba Function116c1
 
 	call Function4b6
 	call ClearTileMap
@@ -8636,9 +8572,7 @@
 
 	xor a
 	ld [CurPartySpecies], a
-	ld a, $22
-	ld hl, $4874
-	rst FarCall
+	callba DrawIntroPlayerPic
 
 	ld b, $1c
 	call GetSGBLayout
@@ -8848,13 +8782,9 @@
 
 
 Function620b: ; 620b
-	ld hl, $4579
-	ld a, $39
-	rst FarCall
+	callab Functione4579
 	jr c, .asm_6219
-	ld a, $39
-	ld hl, Function48ac
-	rst FarCall
+	callba Functione48ac
 
 .asm_6219
 	ld a, [rSVBK]
@@ -8920,9 +8850,7 @@
 	bit 7, a
 	jr nz, .asm_6290
 	call Function62a3
-	ld a, $43
-	ld hl, $6ea7
-	rst FarCall
+	callba Function10eea7
 	call DelayFrame
 	and a
 	ret
@@ -9123,16 +9051,12 @@
 ; 6389
 
 Function6389: ; 6389
-	ld a, $13
-	ld hl, $554c
-	rst FarCall
+	callba Function4d54c
 	jp Init
 ; 6392
 
 Function6392: ; 6392
-	ld a, $13
-	ld hl, $53b1
-	rst FarCall
+	callba Function4d3b1
 	jp Init
 ; 639b
 
@@ -9204,9 +9128,7 @@
 ; 642e
 
 GameInit: ; 642e
-	ld a, $5
-	ld hl, $4f1c
-	rst FarCall
+	callba Function14f1c
 	call Function1fbf
 	call WhiteBGMap
 	call ClearTileMap
@@ -9253,20 +9175,14 @@
 	ld a, $9c
 	call Function64b9
 	call Function2e20
-	ld a, $12
-	ld hl, $5409
-	rst FarCall
-	ld a, $2
-	ld hl, $56a4
-	rst FarCall
+	callba Function49409
+	callba Function96a4
 	ld a, $1
 	ld [hCGBPalUpdate], a
 	xor a
 	ld [hBGMapMode], a
 	ld [hWY], a
-	ld a, $1
-	ld hl, $64db
-	rst FarCall
+	callba Function64db
 	ld a, $98
 	call Function64b9
 	xor a
@@ -10654,9 +10570,7 @@
 
 	call Random
 	ld [hl], a
-	ld hl, $6e1d
-	ld a, $5
-	rst FarCall
+	callab Function16e1d
 	ld a, [$d265]
 	cp $e6
 	ld b, $50
@@ -10700,9 +10614,7 @@
 
 ; Caught data.
 	ld b, 0
-	ld a, $13
-	ld hl, $5ba3
-	rst FarCall
+	callba Function4dba3
 
 ; Holding a Berry.
 	ld bc, PartyMon2 - PartyMon1
@@ -13183,9 +13095,7 @@
 	call GetFacingTileCoord
 	ld c, a
 	push de
-	ld a, $5
-	ld hl, $49f5
-	rst FarCall
+	callba Function149f5
 	pop de
 	jr nc, .asm_c7fc
 	call Function2a66
@@ -13287,9 +13197,7 @@
 	callba CheckBadge
 	jr c, .asm_c8dd
 	push hl
-	ld a, $22
-	ld hl, $6e30
-	rst FarCall
+	callba Function8ae30
 	pop hl
 	jr c, .asm_c8d1
 	ld a, [$d847]
@@ -13743,9 +13651,7 @@
 	ld a, [StandingTile]
 	call CheckWaterfallTile
 	ret z
-	ld a, $41
-	ld hl, $60c1
-	rst FarCall
+	callba Function1060c1
 	ld a, $1
 	ld [ScriptVar], a
 	ret
@@ -13811,12 +13717,13 @@
 Functioncb95: ; cb95
 	call Functionc6ea
 	ld a, $1
-	jr .asm_cba1
+	jr asm_cba1
 
+Functioncb9c: ; cb9c
 	call Functionc6ea
 	ld a, $2
 
-.asm_cba1
+asm_cba1
 	ld [Buffer2], a
 .asm_cba4
 	ld hl, Tablecbb2
@@ -14224,9 +14131,7 @@
 	call Function2173
 	ld a, [$d1ef]
 	ld e, a
-	ld a, $23
-	ld hl, $47d4
-	rst FarCall
+	callba Function8c7d4
 	call Function2879
 	call Function2914
 	ret
@@ -16119,9 +16024,7 @@
 	push de
 	ld a, [CurPartyLevel]
 	ld d, a
-	ld hl, $4e47
-	ld a, $14
-	rst FarCall
+	callab Function50e47
 	pop de
 	ld a, [hMultiplicand]
 	ld [de], a
@@ -16294,9 +16197,7 @@
 	call AddNTimes
 	ld a, $2d
 	call Predef
-	ld hl, $7a18
-	ld a, $3e
-	rst FarCall
+	callab Functionfba18
 
 .asm_da6b
 	scf
@@ -16679,9 +16580,7 @@
 	push bc
 	push hl
 	push de
-	ld a, $3
-	ld hl, $78ec
-	rst FarCall
+	callba Functionf8ec
 	pop de
 	pop hl
 	ld a, [$d265]
@@ -16929,9 +16828,7 @@
 	push de
 	ld a, [CurPartyLevel]
 	ld d, a
-	ld hl, $4e47
-	ld a, $14
-	rst FarCall
+	callab Function50e47
 	pop de
 	ld a, [hMultiplicand]
 	ld [de], a
@@ -16978,9 +16875,7 @@
 	ld hl, BoxMon1DVs
 	ld a, $2d
 	call Predef
-	ld hl, $7a18
-	ld a, $3e
-	rst FarCall
+	callab Functionfba18
 
 .asm_df20
 	ld hl, BoxMon1Moves
@@ -17644,9 +17539,7 @@
 	ld [hli], a
 	ld [hl], $e9
 	pop bc
-	ld a, $13
-	ld hl, $5ba3
-	rst FarCall
+	callba Function4dba3
 	jr .asm_e3b2
 
 .asm_e35e
@@ -17670,9 +17563,7 @@
 	call Random
 	ld [hl], a
 	call CloseSRAM
-	ld a, $13
-	ld hl, $5b92
-	rst FarCall
+	callba Function4db92
 	jr .asm_e3b2
 
 	pop de
@@ -17682,20 +17573,14 @@
 	ld a, b
 	and a
 	jr z, .asm_e3a0
-	ld a, $13
-	ld hl, $5b83
-	rst FarCall
+	callba Function4db83
 	jr .asm_e3a6
 
 .asm_e3a0
-	ld a, $13
-	ld hl, $5b49
-	rst FarCall
+	callba Function4db49
 
 .asm_e3a6
-	ld a, $13
-	ld hl, $5b3b
-	rst FarCall
+	callba Function4db3b
 	pop de
 	jr c, .asm_e3b2
 	call Functione3de
@@ -17736,9 +17621,7 @@
 	pop de
 	push de
 	ld b, $0
-	ld a, $4
-	ld hl, $56c1
-	rst FarCall
+	callba Function116c1
 	pop hl
 	ld de, StringBuffer1
 	call InitName
@@ -17971,12 +17854,8 @@
 	and a
 	jr z, .asm_e6ea
 	ld [$d265], a
-	ld a, $33
-	ld hl, $40c7
-	rst FarCall
-	ld a, $33
-	ld hl, $4000
-	rst FarCall
+	callba Functioncc0c7
+	callba Functioncc000
 	ld bc, $0e07
 	call Function1dd2
 	ret c
@@ -18275,23 +18154,24 @@
 
 Functionf7e8: ; f7e8
 	ld hl, $7810
-	jr .asm_f804
+	jr asm_f804
 
 	ld hl, $7815
-	jr .asm_f804
+	jr asm_f804
 
+Functionf7f2: ; f7f2
 	ld hl, $781f
-	jr .asm_f804
+	jr asm_f804
 
 	ld hl, $781a
-	jr .asm_f804
+	jr asm_f804
 
 	ld hl, $782e
-	jr .asm_f804
+	jr asm_f804
 
 	ld hl, $7833
 
-.asm_f804
+asm_f804
 	xor a
 	ld [$d0ec], a
 	jp PrintText
@@ -19610,9 +19490,7 @@
 	ret
 
 .asm_108c5
-	ld a, $12
-	ld hl, $4e81
-	rst FarCall
+	callba Function48e81
 	ret
 ; 108cc
 
@@ -20733,9 +20611,7 @@
 	bit 7, a
 	jr nz, .asm_11930
 	call Function11968
-	ld a, $23
-	ld hl, $4f62
-	rst FarCall
+	callba Function8cf62
 	call Function11940
 	call DelayFrame
 	and a
@@ -22066,9 +21942,7 @@
 HalveMoney: ; 12513
 
 ; Empty function...
-	ld a, $41
-	ld hl, $60c7
-	rst FarCall
+	callba Function1060c7
 
 ; Halve the player's money.
 	ld hl, Money
@@ -22090,9 +21964,7 @@
 	ld d, a
 	ld a, [$dcb3]
 	ld e, a
-	ld a, $5
-	ld hl, $5344
-	rst FarCall
+	callba Function15344
 	ld a, c
 	jr c, .asm_12539
 	xor a
@@ -22106,9 +21978,7 @@
 
 
 Function12580: ; 12580
-	ld a, $2e
-	ld hl, $4172
-	rst FarCall
+	callba Functionb8172
 	jr c, .asm_1258d
 	ld hl, $65ba
 	jr .asm_12590
@@ -22508,9 +22378,7 @@
 	ld hl, StatusFlags2
 	bit 2, [hl] ; bug catching contest
 	ret z
-	ld a, $9
-	ld hl, $4bdc
-	rst FarCall
+	callba Function24bdc
 	ret
 ; 128de
 
@@ -22520,9 +22388,7 @@
 	jr nz, .contest
 	ret
 .contest
-	ld a, $9
-	ld hl, $4be7
-	rst FarCall
+	callba Function24be7
 	ret
 ; 128ed
 
@@ -22560,9 +22426,7 @@
 ; Save the game.
 
 	call Function2879
-	ld a, $5
-	ld hl, $4a1a
-	rst FarCall
+	callba Function14a1a
 	jr nc, .asm_12919
 	ld a, 0
 	ret
@@ -22586,9 +22450,7 @@
 ; Player status.
 
 	call FadeToMenu
-	ld a, $9
-	ld hl, $5105
-	rst FarCall
+	callba Function25105
 	call Function2b3c
 	ld a, 0
 	ret
@@ -22602,9 +22464,7 @@
 	jr z, .asm_12949
 
 	call FadeToMenu
-	ld a, $10
-	ld hl, $4000
-	rst FarCall
+	callba Function40000
 	call Function2b3c
 
 .asm_12949
@@ -22616,9 +22476,7 @@
 StartMenu_Pokegear: ; 1294c
 
 	call FadeToMenu
-	ld a, $24
-	ld hl, $4b8d
-	rst FarCall
+	callba Function90b8d
 	call Function2b3c
 	ld a, 0
 	ret
@@ -22628,9 +22486,7 @@
 StartMenu_Pack: ; 1295b
 
 	call FadeToMenu
-	ld a, $4
-	ld hl, $4000
-	rst FarCall
+	callba Function10000
 	ld a, [$cf66]
 	and a
 	jr nz, .asm_12970
@@ -22658,15 +22514,9 @@
 	call WhiteBGMap
 
 .menu
-	ld a, $14
-	ld hl, $404f
-	rst FarCall ; load gfx
-	ld a, $14
-	ld hl, $4405
-	rst FarCall ; setup menu?
-	ld a, $14
-	ld hl, $43e0
-	rst FarCall ; load menu pokémon sprites
+	callba Function5004f
+	callba Function50405
+	callba Function503e0
 
 .menunoreload
 	callba WritePartyMenuTilemap
@@ -22726,12 +22576,8 @@
 
 
 CancelPokemonAction: ; 12a79
-	ld a, $14
-	ld hl, $4405
-	rst FarCall
-	ld a, $23
-	ld hl, $6a71
-	rst FarCall
+	callba Function50405
+	callba Function8ea71
 	ld a, 1
 	ret
 ; 12a88
@@ -22741,9 +22587,7 @@
 	hlcoord 1, 15
 	ld bc, $0212 ; box size
 	call ClearBox
-	ld a, $9
-	ld hl, $4d19
-	rst FarCall
+	callba Function24d19
 	call GetCurNick
 	ld a, [MenuSelection]
 	ld hl, .Actions
@@ -22796,12 +22640,8 @@
 	inc a
 	ld [$d0e3], a
 
-	ld a, $23
-	ld hl, $6a8c
-	rst FarCall
-	ld a, $14
-	ld hl, $442d
-	rst FarCall
+	callba Function8ea8c
+	callba Function5042d
 
 	ld a, 4
 	ld [PartyMenuActionText], a
@@ -22822,22 +22662,14 @@
 	bit 1, b
 	jr c, .DontSwitch
 
-	ld a, $14
-	ld hl, $4f12
-	rst FarCall
+	callba Function50f12
 
 	xor a
 	ld [PartyMenuActionText], a
 
-	ld a, $14
-	ld hl, $404f
-	rst FarCall
-	ld a, $14
-	ld hl, $4405
-	rst FarCall
-	ld a, $14
-	ld hl, $43e0
-	rst FarCall
+	callba Function5004f
+	callba Function50405
+	callba Function503e0
 
 	ld a, 1
 	ret
@@ -22894,14 +22726,10 @@
 
 Function12ba9: ; 12ba9
 
-	ld a, $4
-	ld hl, $46a5
-	rst FarCall
+	callba Function106a5
 
 .loop
-	ld a, $4
-	ld hl, $46be
-	rst FarCall
+	callba Function106be
 
 	ld a, [$cf66]
 	and a
@@ -22940,9 +22768,7 @@
 
 	push hl
 	ld d, a
-	ld a, $2e
-	ld hl, $5e76
-	rst FarCall
+	callba ItemIsMail
 	pop hl
 	jr c, .asm_12c01
 	ld a, [hl]
@@ -23002,9 +22828,7 @@
 	ld a, [CurItem]
 	ld [hl], a
 	ld d, a
-	ld a, $2e
-	ld hl, $5e76
-	rst FarCall
+	callba ItemIsMail
 	jr nc, .asm_12c5f
 	call $6cfe
 
@@ -23025,9 +22849,7 @@
 	call Function12cdf
 	jr nc, .asm_12c94
 
-	ld a, $2e
-	ld hl, $5e76
-	rst FarCall
+	callba ItemIsMail
 	call GetPartyItemLocation
 	ld a, [hl]
 	ld [$d265], a
@@ -23189,9 +23011,7 @@
 	jp .asm_12dc6
 
 .asm_12d6d
-	ld a, $2e
-	ld hl, $5229
-	rst FarCall
+	callba Functionb9229
 	ld a, $0
 	ret
 
@@ -23290,9 +23110,7 @@
 
 
 Function12e1b: ; 12e1b
-	ld a, $3
-	ld hl, $4785
-	rst FarCall
+	callba Functionc785
 	ld a, [$d0ec]
 	cp $1
 	jr nz, .asm_12e2d
@@ -23313,9 +23131,7 @@
 	jr z, .asm_12e4c
 	cp $0
 	jr z, .asm_12e4f
-	ld a, $41
-	ld hl, $60b5
-	rst FarCall
+	callba Function1060b5
 	ld b, $4
 	ld a, $2
 	ret
@@ -23332,9 +23148,7 @@
 INCBIN "baserom.gbc",$12e52,$12e55 - $12e52
 
 Function12e55: ; 12e55
-	ld a, $3
-	ld hl, $48ac
-	rst FarCall
+	callba Functionc8ac
 	ld a, [$d0ec]
 	cp $1
 	jr nz, .asm_12e67
@@ -23362,9 +23176,7 @@
 ; 12e7f
 
 Function12e7f: ; 12e7f
-	ld a, $3
-	ld hl, $4d9d
-	rst FarCall
+	callba Functioncd9d
 	ld a, [$d0ec]
 	cp $1
 	jr nz, .asm_12e91
@@ -23378,9 +23190,7 @@
 ; 12e94
 
 Function12e94: ; 12e94
-	ld a, $3
-	ld hl, $4ade
-	rst FarCall
+	callba Functioncade
 	ld a, [$d0ec]
 	cp $1
 	jr nz, .asm_12ea6
@@ -23394,9 +23204,7 @@
 ; 12ea9
 
 Function12ea9: ; 12ea9
-	ld a, $3
-	ld hl, $4c61
-	rst FarCall
+	callba Functioncc61
 	ld a, [$d0ec]
 	and a
 	jr z, .asm_12eba
@@ -23410,9 +23218,7 @@
 ; 12ebd
 
 Function12ebd: ; 12ebd
-	ld a, $3
-	ld hl, $4909
-	rst FarCall
+	callba Functionc909
 	ld a, [$d0ec]
 	and a
 	jr z, .asm_12ece
@@ -23426,9 +23232,7 @@
 ; 12ed1
 
 Function12ed1: ; 12ed1
-	ld a, $3
-	ld hl, $4b9c
-	rst FarCall
+	callba Functioncb9c
 	ld a, [$d0ec]
 	cp $1
 	jr nz, .asm_12ee3
@@ -23444,9 +23248,7 @@
 Function12ee6: ; 12ee6
 	call Function12f05
 	jr nc, .asm_12ef3
-	ld a, $3
-	ld hl, $73df
-	rst FarCall
+	callba Functionf3df
 	jr .asm_12ef9
 
 .asm_12ef3
@@ -23484,9 +23286,7 @@
 ; 12f26
 
 Function12f26: ; 12f26
-	ld a, $3
-	ld hl, $4e7d
-	rst FarCall
+	callba Functionce7d
 	ld a, [$d0ec]
 	cp $1
 	jr nz, .asm_12f38
@@ -23500,9 +23300,7 @@
 ; 12f3b
 
 Function12f3b: ; 12f3b
-	ld a, $3
-	ld hl, $4eeb
-	rst FarCall
+	callba Functionceeb
 	ld a, [$d0ec]
 	cp $1
 	jr nz, .asm_12f4d
@@ -23516,9 +23314,7 @@
 ; 12f50
 
 Function12f50: ; 12f50
-	ld a, $14
-	ld hl, $46bc
-	rst FarCall
+	callba Function506bc
 	ld b, $4
 	ld a, $2
 	ret
@@ -23820,9 +23616,7 @@
 	call ClearSprites
 	xor a
 	ld [hBGMapMode], a
-	ld a, $3e
-	ld hl, $7571
-	rst FarCall
+	callba Functionfb571
 	callba Function8e814
 	ld a, [CurPartyMon]
 	ld e, a
@@ -23832,9 +23626,7 @@
 	ld a, [hl]
 	ld [$d265], a
 	ld e, $2
-	ld a, $23
-	ld hl, $683f
-	rst FarCall
+	callba Function8e83f
 	ld hl, $c4b4
 	ld b, $9
 	ld c, $12
@@ -23854,9 +23646,7 @@
 	ld hl, $c4b9
 	call PlaceString
 	push bc
-	ld a, $14
-	ld hl, $484a
-	rst FarCall
+	callba Function5084a
 	pop hl
 	call PrintLevel
 	ld hl, PlayerHPPal
@@ -25210,12 +25000,8 @@
 	jr c, .asm_140eb
 
 .asm_140c8
-	ld a, $4
-	ld hl, $53da
-	rst FarCall
-	ld a, $5c
-	ld hl, $4923
-	rst FarCall
+	callba Function113da
+	callba Function170923
 	ld a, $5
 	call GetSRAMBank
 	ld a, [$aa8c]
@@ -25439,9 +25225,7 @@
 	bit 6, a
 	ret nz
 	ld c, $8
-	ld a, $5
-	ld hl, $442f
-	rst FarCall
+	callba Function1442f
 	call GetMapPermission
 	call CheckOutdoorMap
 	ld c, $b
@@ -25449,9 +25233,7 @@
 	ld c, $a
 
 .asm_1422f
-	ld a, $5
-	ld hl, $442f
-	rst FarCall
+	callba Function1442f
 	ret
 ; 14236
 
@@ -25527,9 +25309,7 @@
 	and a
 	jr z, .asm_1429f
 
-	ld a, $23
-	ld hl, $682b
-	rst FarCall ; callba LoadMonSprite
+	callba Function8e82b
 
 	ld l, 1
 	ld h, 0
@@ -26742,6 +26522,7 @@
 	ret
 ; 149c6
 
+Function149c6: ; 149c6
 	ld de, $1
 	ld hl, $49d3
 	ld a, [StandingTile] ; $d4e4
@@ -26784,6 +26565,7 @@
 	ret
 ; 14a1a
 
+Function14a1a: ; 14a1a
 	call Function1d6e
 	ld a, $1
 	ld hl, $5e9a
@@ -26994,12 +26776,8 @@
 Function14c10: ; 14c10
 	ld a, $1
 	ld [$cfcd], a
-	ld a, $5
-	ld hl, $4056
-	rst FarCall
-	ld a, $41
-	ld hl, $50d9
-	rst FarCall
+	callba Function14056
+	callba Function1050d9
 	call Function14da9
 	call Function14dbb
 	call Function14dd7
@@ -27012,15 +26790,9 @@
 	call Function14e76
 	call Function14e8b
 	call Function14c6b
-	ld a, $11
-	ld hl, $4725
-	rst FarCall
-	ld a, $41
-	ld hl, $6187
-	rst FarCall
-	ld a, $5
-	ld hl, $406a
-	rst FarCall
+	callba Function44725
+	callba Function106187
+	callba Function1406a
 	ld a, $1
 	call GetSRAMBank
 	ld a, [$be45]
@@ -29053,9 +28825,7 @@
 
 
 Function15cef: ; 15cef
-	ld a, $9
-	ld hl, $4ae8
-	rst FarCall
+	callba Function24ae8
 	call Function1ad2
 	ld hl, $5e18
 	call Function1d3c
@@ -29131,9 +28901,7 @@
 	ld [$d10d], a
 	ld a, $0
 	call Function15c7d
-	ld a, $9
-	ld hl, $4fc9
-	rst FarCall
+	callba Function24fc9
 	call Function1c07
 	ret
 ; 15d97
@@ -29194,9 +28962,7 @@
 	call Function15df9
 	ld a, $63
 	ld [$d10d], a
-	ld a, $9
-	ld hl, $4fcf
-	rst FarCall
+	callba Function24fcf
 	call Function1c07
 	ret
 ; 15df9
@@ -29244,13 +29010,9 @@
 
 Function15eb3: ; 15eb3
 	call Function2ed3
-	ld a, $4
-	ld hl, $46a5
-	rst FarCall
+	callba Function106a5
 .asm_15ebc
-	ld a, $4
-	ld hl, $46be
-	rst FarCall
+	callba Function106be
 	ld a, [$cf66]
 	and a
 	jp z, Function15ece
@@ -29303,12 +29065,8 @@
 .asm_15f11
 	ld hl, UnknownText_0x15f73
 	call PrintText
-	ld a, $9
-	ld hl, $4af8
-	rst FarCall
-	ld a, $9
-	ld hl, $4fe1
-	rst FarCall
+	callba Function24af8
+	callba Function24fe1
 	call Function1c07
 	jr c, .asm_15f6e
 	ld hl, $c5b9
@@ -29332,9 +29090,7 @@
 	ld hl, UnknownText_0x15fbe
 	call PrintTextBoxText
 	call Function15fc3
-	ld a, $9
-	ld hl, $4af0
-	rst FarCall
+	callba Function24af0
 	call Functiona36
 
 .asm_15f6e
@@ -31718,9 +31474,7 @@
 	set 7, [hl]
 .asm_2405a
 	call DelayFrame
-	ld a, $40
-	ld hl, $432e
-	rst FarCall
+	callba Function10032e
 	ld a, [$cd2b]
 	and a
 	jr nz, .asm_24076
@@ -31755,6 +31509,8 @@
 	call $411a
 	call Function1bc9
 	call Function1ff8
+
+Function24098: ; 24098
 	ld a, [$cf91]
 	bit 1, a
 	jr z, .asm_240a6
@@ -31947,6 +31703,7 @@
 
 Function241a8: ; 241a8
 	call $4329
+Function241ab: ; 241ab
 	ld hl, $cfa6
 	res 7, [hl]
 	ld a, [hBGMapMode]
@@ -32028,9 +31785,7 @@
 	ld a, [$cfa5]
 	bit 6, a
 	jr z, .asm_24266
-	ld hl, $4f62
-	ld a, $23
-	rst FarCall
+	callab Function8cf62
 
 .asm_24266
 	call Functiona57
@@ -33459,17 +33214,19 @@
 Function24ae8: ; 24ae8
 	ld hl, $4b15
 	call Function1d3c
-	jr .asm_24b01
+	jr asm_24b01
 
+Function24af0: ; 24af0
 	ld hl, $4b1d
 	call Function1d3c
-	jr .asm_24b01
+	jr asm_24b01
 
+Function24af8: ; 24af8
 	ld hl, $4b15
 	ld de, $000b
 	call Function1e2e
 
-.asm_24b01
+asm_24b01
 	call Function1cbb
 	call Function1cfd
 	ld de, $0015
@@ -34169,6 +33926,7 @@
 
 Function24fc9: ; 24fc9
 	callba GetItemPrice
+Function24fcf: ; 24fcf
 	ld a, d
 	ld [Buffer1], a
 	ld a, e
@@ -34377,6 +34135,8 @@
 
 
 INCBIN "baserom.gbc",$250ed,$25105 - $250ed
+
+Function25105: ; 25105
 	ld a, [VramState] ; $d0ed
 	push af
 	xor a
@@ -39337,7 +39097,7 @@
 	ld l, e
 	call Random
 	and $1f
-	jr z, .asm_2a3cd
+	jr z, asm_2a3cd
 	and $3
 	cp [hl]
 	jr nc, .asm_2a36e
@@ -39361,6 +39121,7 @@
 	ld c, [hl]
 	ret
 
+Function2a394: ; 2a394
 	ld a, [RoamMon1MapGroup]
 	cp $ff
 	jr z, .asm_2a3a6
@@ -39393,7 +39154,7 @@
 .asm_2a3ca
 	jp Function2a3f6
 
-.asm_2a3cd
+asm_2a3cd
 	ld hl, $640f
 .asm_2a3d0
 	call Random
@@ -39418,7 +39179,7 @@
 	inc hl
 	ld a, [MapNumber]
 	cp [hl]
-	jr z, .asm_2a3cd
+	jr z, asm_2a3cd
 	dec hl
 
 .asm_2a3f2
@@ -40101,9 +39862,7 @@
 	ld a, $69
 	ld [hli], a
 	ld [hl], $6a
-	ld a, $b
-	ld hl, $410d
-	rst FarCall
+	callba Function2c10d
 	ld b, $8
 	call GetSGBLayout
 	call Function32f9
@@ -40657,15 +40416,11 @@
 	ld bc, $000c
 	call CopyBytes
 	call WhiteBGMap
-	ld a, $14
-	ld hl, $404f
-	rst FarCall
-	ld a, $14
-	ld hl, $4405
-	rst FarCall
-	ld a, $14
-	ld hl, $43e0
-	rst FarCall
+
+Function2c80a: ; 2c80a
+	callba Function5004f
+	callba Function50405
+	callba Function503e0
 	ld a, $3
 	ld [PartyMenuActionText], a
 .asm_2c821
@@ -41280,9 +41035,7 @@
 	ld a, [InLinkBattle]
 	and a
 	ret z
-	ld a, $b
-	ld hl, $41b2
-	rst FarCall
+	callba Function2c1b2
 	ld c, 150
 	call DelayFrames
 	call ClearTileMap
@@ -41352,9 +41105,7 @@
 	and a
 	jr nz, .trainermusic
 
-	ld a, BANK(RegionCheck)
-	ld hl, RegionCheck
-	rst FarCall
+	callba RegionCheck
 	ld a, e
 	and a
 	jr nz, .kantowild
@@ -41385,15 +41136,11 @@
 	jr z, .done
 
 	ld de, MUSIC_KANTO_GYM_LEADER_BATTLE
-	ld a, BANK(IsKantoGymLeader)
-	ld hl, IsKantoGymLeader
-	rst FarCall
+	callba IsKantoGymLeader
 	jr c, .done
 
 	ld de, MUSIC_JOHTO_GYM_LEADER_BATTLE
-	ld a, BANK(IsJohtoGymLeader)
-	ld hl, IsJohtoGymLeader
-	rst FarCall
+	callba IsJohtoGymLeader
 	jr c, .done
 
 	ld de, MUSIC_RIVAL_BATTLE
@@ -41414,9 +41161,7 @@
 	and a
 	jr nz, .johtotrainer
 
-	ld a, BANK(RegionCheck)
-	ld hl, RegionCheck
-	rst FarCall
+	callba RegionCheck
 	ld a, e
 	and a
 	jr nz, .kantotrainer
@@ -41478,9 +41223,7 @@
 	xor a
 	call ByteFill
 
-	ld hl, $5867
-	ld a, $f
-	rst FarCall
+	callab Function3d867
 
 	call Function1fbf
 
@@ -41574,9 +41317,7 @@
 	ld a, [InLinkBattle]
 	and a
 	ret nz
-	ld a, $f
-	ld hl, $68d1
-	rst FarCall
+	callba Function3e8d1
 	ret nz
 	ld a, [PlayerSubStatus5]
 	bit 7, a
@@ -42125,9 +41866,7 @@
 	res 6, [hl]
 	xor a
 	ld [hBattleTurn], a
-	ld hl, $5c5b
-	ld a, $f
-	rst FarCall
+	callab Function3dc5b
 	push af
 	ld a, [CurOTMon]
 	ld hl, OTPartyMon1Status
@@ -42146,20 +41885,12 @@
 .asm_384a3
 	ld a, $1
 	ld [$d264], a
-	ld hl, $5834
-	ld a, $f
-	rst FarCall
-	ld hl, $5867
-	ld a, $f
-	rst FarCall
+	callab Function3d834
+	callab Function3d867
 	ld hl, PlayerSubStatus1
 	res 7, [hl]
-	ld a, $f
-	ld hl, $54e1
-	rst FarCall
-	ld a, $f
-	ld hl, $557a
-	rst FarCall
+	callba Function3d4e1
+	callba Function3d57a
 	xor a
 	ld [$d264], a
 	ld a, [InLinkBattle]
@@ -45004,9 +44735,7 @@
 	ld e, $30
 	call Function3e12e
 	call WaitBGMap
-	ld a, $b
-	ld hl, $4012
-	rst FarCall
+	callba Function2c012
 	ld a, [InLinkBattle]
 	and a
 	jr z, .asm_3cf6d
@@ -45095,9 +44824,7 @@
 	ld c, $28
 	call DelayFrames
 	ld c, $4
-	ld a, $13
-	ld hl, $6a0a
-	rst FarCall
+	callba Function4ea0a
 	ret
 
 .asm_3d006
@@ -45106,9 +44833,7 @@
 	call DelayFrames
 	call EmptyBattleTextBox
 	ld c, $3
-	ld a, $47
-	ld hl, $4000
-	rst FarCall
+	callba Function11c000
 	call Functiona80
 	ld hl, $c6ec
 	ld a, [hli]
@@ -45238,9 +44963,7 @@
 	push bc
 	ld b, h
 	ld c, l
-	ld a, $41
-	ld hl, $6008
-	rst FarCall
+	callba Function106008
 	pop bc
 	pop hl
 .asm_3d0ce
@@ -45583,9 +45306,7 @@
 	call WhiteBGMap
 	callba Function5004f
 	callba Function50405
-	ld a, $2
-	ld hl, $4e85
-	rst FarCall
+	callba Function8e85
 	callba Function503e0
 	ret
 ; 3d313
@@ -45606,9 +45327,7 @@
 	ret
 
 .asm_3d335
-	ld a, $40
-	ld hl, $4cb5
-	rst FarCall
+	callba Function100cb5
 	ret
 ; 3d33c
 
@@ -45716,9 +45435,7 @@
 
 	call EmptyBattleTextBox
 	ld c, 2
-	ld a, $47
-	ld hl, $4000
-	rst FarCall
+	callba Function11c000
 	call Functiona80
 	call ClearTileMap
 	call WhiteBGMap
@@ -45769,9 +45486,7 @@
 	call DelayFrames
 
 	ld c, $3
-	ld a, $13
-	ld hl, $6a0a
-	rst FarCall
+	callba Function4ea0a
 	scf
 	ret
 ; 3d432
@@ -46352,9 +46067,7 @@
 	ld bc, TempMonSpecies
 	callba Function4e53f
 	jr c, .asm_3d82c
-	ld a, $13
-	ld hl, $6a44
-	rst FarCall
+	callba Function4ea44
 	jr c, .asm_3d821
 	ld hl, $c4ac
 	ld d, $0
@@ -46953,16 +46666,16 @@
 	jr nz, .asm_3dce4
 	ld a, [CurBattleMon]
 	push af
-	ld hl, Function3c000
+	ld hl, DoPlayerTurn
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3dc7e
-	ld hl, $400a
+	ld hl, DoEnemyTurn
 	ld a, [$c71a]
 	ld [CurBattleMon], a
 
 .asm_3dc7e
-	ld a, $d
+	ld a, BANK(DoPlayerTurn)
 	rst FarCall
 	ld a, $10
 	call GetBattleVarPair
@@ -47140,9 +46853,7 @@
 	ld a, [hl]
 	ld [$d265], a
 	call GetItemName
-	ld hl, $7192
-	ld a, $9
-	rst FarCall
+	callab Function27192
 	ld hl, RecoveredUsingText
 	jp StdBattleTextBox
 ; 3ddc8
@@ -47205,15 +46916,15 @@
 	res 7, [hl]
 
 .asm_3de26
-	ld hl, $65fd
+	ld hl, Function0x365fd
 	ld a, [hBattleTurn]
 	and a
 	jr z, .asm_3de31
-	ld hl, $65d7
+	ld hl, Function0x365d7
 
 .asm_3de31
 	call Function3c8e4
-	ld a, $d
+	ld a, BANK(Function0x365fd)
 	rst FarCall
 	call Function3c8e4
 	call Function3ddc8
@@ -47556,9 +47267,7 @@
 	ld hl, $c4a1
 	ld bc, $040b
 	call ClearBox
-	ld a, $b
-	ld hl, $40c5
-	rst FarCall
+	callba Function2c0c5
 	ld a, [TempEnemyMonSpecies]
 	ld [CurSpecies], a
 	ld [CurPartySpecies], a
@@ -47716,9 +47425,7 @@
 	ld a, [BattleType]
 	cp $6
 	jr nz, .asm_3e165
-	ld a, $9
-	ld hl, $4f13
-	rst FarCall
+	callba Function24f13
 	jr .asm_3e175
 
 .asm_3e165
@@ -47761,9 +47468,7 @@
 	ret
 
 .asm_3e1a8
-	ld a, $40
-	ld hl, $4b12
-	rst FarCall
+	callba Function100b12
 	ld a, [$cd2b]
 	and a
 	ret z
@@ -47793,9 +47498,7 @@
 	jr z, .asm_3e1f1
 	cp $6
 	jr z, .asm_3e201
-	ld a, $4
-	ld hl, $4493
-	rst FarCall
+	callba Function10493
 	ld a, [$d0ec]
 	and a
 	jr z, .asm_3e20d
@@ -47802,9 +47505,7 @@
 	jr .asm_3e209
 
 .asm_3e1f1
-	ld a, $4
-	ld hl, $47bb
-	rst FarCall
+	callba Function107bb
 	ld a, $5
 	ld [CurItem], a
 	call DoItemEffect
@@ -47896,9 +47597,7 @@
 	call Function3d329
 	jr c, .asm_3e2da
 .asm_3e2a8
-	ld a, $23
-	ld hl, $6a4a
-	rst FarCall
+	callba Function8ea4a
 	call Function3e2f5
 	jr c, .asm_3e2c8
 	call Function1bee
@@ -47937,15 +47636,11 @@
 Function3e2f5: ; 3e2f5
 	call Function3d2f1
 	jr z, .asm_3e301
-	ld a, $9
-	ld hl, $4e99
-	rst FarCall
+	callba Function24e99
 	ret
 
 .asm_3e301
-	ld a, $40
-	ld hl, $4d22
-	rst FarCall
+	callba Function100d22
 	ret
 ; 3e308
 
@@ -47964,9 +47659,7 @@
 	call LowVolume
 	xor a
 	ld [MonType], a
-	ld a, $13
-	ld hl, $5c7b
-	rst FarCall
+	callba Function4dc7b
 	call MaxVolume
 	call DisableLCD
 	ld hl, VTiles0
@@ -48075,9 +47768,7 @@
 ; 3e3ff
 
 Function3e3ff: ; 3e3ff
-	ld hl, $446c
-	ld a, $e
-	rst FarCall
+	callab Function3846c
 	call SetEnemyTurn
 	jp Function3dc23
 ; 3e40b
@@ -48170,9 +47861,7 @@
 Function3e4bc: ; 3e4bc
 	call Function3d2f1
 	jr nz, .asm_3e4c8
-	ld a, $40
-	ld hl, $4b9f
-	rst FarCall
+	callba Function100b9f
 	ret
 
 .asm_3e4c8
@@ -48802,9 +48491,7 @@
 ; 3e8e4
 
 Function3e8e4: ; 3e8e4
-	ld a, $40
-	ld hl, $4a09
-	rst FarCall
+	callba Function100a09
 	ret
 ; 3e8eb
 
@@ -49441,9 +49128,7 @@
 	ld a, [OtherTrainerClass]
 	ld [TrainerClass], a
 	ld de, VTiles2
-	ld hl, $520d
-	ld a, $14
-	rst FarCall
+	callab Function5120d
 	ld hl, $c4b3
 	ld c, $0
 .asm_3ebf3
@@ -49805,16 +49490,12 @@
 
 
 Function3ed9f: ; 3ed9f
-	ld hl, $74f2
-	ld a, $3e
-	rst FarCall
+	callab Functionfb4f2
 	ret
 ; 3eda6
 
 Function3eda6: ; 3eda6
-	ld hl, $750d
-	ld a, $3e
-	rst FarCall
+	callab Functionfb50d
 	ret
 ; 3edad
 
@@ -50117,9 +49798,7 @@
 	call GetBaseData
 	push bc
 	ld d, $64
-	ld hl, $4e47
-	ld a, $14
-	rst FarCall
+	callab Function50e47
 	pop bc
 	ld hl, $000a
 	add hl, bc
@@ -50149,9 +49828,7 @@
 	ld [MonType], a
 	ld a, $1f
 	call Predef
-	ld hl, $4e1b
-	ld a, $14
-	rst FarCall
+	callab Function50e1b
 	pop bc
 	ld hl, $001f
 	add hl, bc
@@ -50238,15 +49915,9 @@
 	xor a
 	ld [$d265], a
 	call Function3ecab
-	ld hl, Function3ec2c
-	ld a, $f
-	rst FarCall
-	ld hl, $6d45
-	ld a, $f
-	rst FarCall
-	ld hl, Function3df48
-	ld a, $f
-	rst FarCall
+	callab Function3ec2c
+	callab BadgeStatBoosts
+	callab Function3df48
 	call EmptyBattleTextBox
 	call Function309d
 	ld a, $1
@@ -50253,9 +49924,7 @@
 	ld [hBGMapMode], a
 
 .asm_3f035
-	ld a, $9
-	ld hl, $709e
-	rst FarCall
+	callba Function2709e
 	ld a, [CurBattleMon]
 	ld b, a
 	ld a, [CurPartyMon]
@@ -50479,9 +50148,7 @@
 	ld [hld], a
 
 .asm_3f1a8
-	ld hl, $4e1b
-	ld a, $14
-	rst FarCall
+	callab Function50e1b
 	ld a, d
 	pop bc
 	pop de
@@ -50513,9 +50180,7 @@
 	call Function3dfe
 	ld de, SFX_HIT_END_OF_EXP_BAR
 	call StartSFX
-	ld a, $23
-	ld hl, $679d
-	rst FarCall
+	callba Function8e79d
 	call WaitSFX
 	ld hl, BattleText_0x80c9c
 	call StdBattleTextBox
@@ -50947,12 +50612,12 @@
 Function3f43d: ; 3f43d
 	ld a, [PlayerSubStatus4]
 	bit 4, a
-	ld hl, $4640
+	ld hl, Functioncc640
 	jr nz, asm_3f46f
 Function3f447: ; 3f447
 	ld a, [$c6fe]
 	and a
-	ld hl, Function3c6cf
+	ld hl, Functioncc6cf
 	jr nz, asm_3f46f
 	ld a, [CurPartySpecies]
 	push af
@@ -50973,7 +50638,7 @@
 	push af
 	xor a
 	ld [hBattleTurn], a
-	ld a, $33
+	ld a, BANK(Functioncc640)
 	rst FarCall
 	pop af
 	ld [hBattleTurn], a
@@ -50983,12 +50648,12 @@
 Function3f47c: ; 3f47c
 	ld a, [EnemySubStatus4]
 	bit 4, a
-	ld hl, $4640
+	ld hl, Functioncc640
 	jr nz, asm_3f4b4
 Function3f486: ; 3f486
 	ld a, [$c6fa]
 	and a
-	ld hl, Function3c6cf
+	ld hl, Functioncc6cf
 	jr nz, asm_3f4b4
 	ld a, [CurPartySpecies]
 	push af
@@ -51010,7 +50675,7 @@
 	ld a, [hBattleTurn]
 	push af
 	call SetEnemyTurn
-	ld a, $33
+	ld a, BANK(Functioncc640)
 	rst FarCall
 	pop af
 	ld [hBattleTurn], a
@@ -51041,9 +50706,7 @@
 
 
 Function3f4dd: ; 3f4dd
-	ld a, $41
-	ld hl, $6050
-	rst FarCall
+	callba Function106050
 	call Function3f54e
 	xor a
 	ld [TempBattleMonSpecies], a
@@ -51128,17 +50791,11 @@
 
 Function3f594: ; 3f594
 	ld [TrainerClass], a
-	ld a, $41
-	ld hl, $606a
-	rst FarCall
+	callba Function10606a
 	xor a
 	ld [TempEnemyMonSpecies], a
-	ld hl, $557b
-	ld a, $e
-	rst FarCall
-	ld hl, $5771
-	ld a, $e
-	rst FarCall
+	callab Function3957b
+	callab Function39771
 	ld a, [TrainerClass]
 	cp $9
 	jr nz, .asm_3f5b8
@@ -51147,9 +50804,7 @@
 
 .asm_3f5b8
 	ld de, VTiles2
-	ld hl, $520d
-	ld a, $14
-	rst FarCall
+	callab Function5120d
 	xor a
 	ld [$ffad], a
 	dec a
@@ -51193,9 +50848,7 @@
 Function3f607: ; 3f607
 	ld a, $1
 	ld [IsInBattle], a
-	ld a, $41
-	ld hl, $605d
-	rst FarCall
+	callba Function10605d
 	call LoadEnemyMon
 	ld hl, EnemyMonMove1
 	ld de, $c735
@@ -51378,9 +51031,7 @@
 ; 3f759
 
 Function3f759: ; 3f759
-	ld a, $41
-	ld hl, $60df
-	rst FarCall
+	callba Function1060df
 	callba Function106187
 	ld a, [CurOTMon]
 	ld hl, OTPartyMon1Status
@@ -51400,9 +51051,7 @@
 	ld hl, $cd2a
 	bit 4, [hl]
 	jr z, .asm_3f797
-	ld a, $a
-	ld hl, $7930
-	rst FarCall
+	callba Function2b930
 
 .asm_3f797
 	ld a, [$d0ee]
@@ -51410,23 +51059,17 @@
 	cp $1
 	jr c, .asm_3f7ad
 	jr z, .asm_3f7b8
-	ld a, $41
-	ld hl, $6107
-	rst FarCall
+	callba Function106107
 	ld de, .Draw
 	jr .asm_3f7c3
 
 .asm_3f7ad
-	ld a, $41
-	ld hl, $60fb
-	rst FarCall
+	callba Function1060fb
 	ld de, .Win
 	jr .asm_3f7c3
 
 .asm_3f7b8
-	ld a, $41
-	ld hl, $6101
-	rst FarCall
+	callba Function106101
 	ld de, .Lose
 	jr .asm_3f7c3
 
@@ -51980,9 +51623,7 @@
 	call WaitBGMap
 	xor a
 	ld [hBGMapMode], a
-	ld a, $13
-	ld hl, $6980
-	rst FarCall
+	callba Function4e980
 	ld a, $1
 	ld [hBGMapMode], a
 	ld a, $31
@@ -52139,9 +51780,7 @@
 	ld c, 20
 	call DelayFrames
 
-	ld a, $e
-	ld hl, $5939
-	rst FarCall
+	callba Function39939
 
 	ld hl, WantsToBattleText
 	jr .asm_3fd0e
@@ -52163,9 +51802,7 @@
 	callba CheckSleepingTreeMon
 	jr c, .asm_3fceb
 
-	ld a, $13
-	ld hl, $6a44
-	rst FarCall
+	callba Function4ea44
 	jr c, .asm_3fce0
 
 	hlcoord 12, 0
@@ -52186,9 +51823,7 @@
 	cp BATTLETYPE_FISH
 	jr nz, .asm_3fcfd
 
-	ld a, $41
-	ld hl, $6086
-	rst FarCall
+	callba Function106086
 
 	ld hl, HookedPokemonAttackedText
 	jr .asm_3fd0e
@@ -52204,9 +51839,7 @@
 
 .asm_3fd0e
 	push hl
-	ld a, $b
-	ld hl, $4000
-	rst FarCall
+	callba Function2c000
 	pop hl
 	call StdBattleTextBox
 
@@ -52214,9 +51847,7 @@
 	ret nz
 
 	ld c, $2
-	ld a, $13
-	ld hl, $6a0a
-	rst FarCall
+	callba Function4ea0a
 
 	ret
 ; 3fd26
@@ -52309,9 +51940,7 @@
 	call Function40bdc
 	call Function400b4
 	call Function400ed
-	ld a, $77
-	ld hl, $6247
-	rst FarCall
+	callba Function1de247
 	call Function41af7
 	ret
 ; 400a2
@@ -54176,9 +53805,7 @@
 .asm_4145b
 	ld a, $0
 	call GetSRAMBank
-	ld a, $77
-	ld hl, $60d7
-	rst FarCall
+	callba Function1de0d7
 	ld hl, VTiles2
 	ld de, $a000
 	ld c, $31
@@ -54243,9 +53870,7 @@
 	call $5504
 	call Function41a24
 	jr nz, .asm_414e0
-	ld a, $77
-	ld hl, $5f1c
-	rst FarCall
+	callba Function1ddf1c
 	jr .asm_414e9
 
 .asm_414e0
@@ -54588,9 +54213,7 @@
 	ld a, $1
 	ld [hBGMapMode], a
 	call ClearSprites
-	ld a, $13
-	ld hl, $65e1
-	rst FarCall
+	callba Function4e5e1
 	push af
 	call ClearSprites
 	pop af
@@ -54607,9 +54230,7 @@
 	push hl
 	ld hl, $6478
 	call PrintTextBoxText
-	ld a, $41
-	ld hl, $6094
-	rst FarCall
+	callba Function106094
 	ld de, MUSIC_NONE
 	call StartMusic
 	ld de, SFX_CAUGHT_MON
@@ -54667,9 +54288,7 @@
 	ld hl, TempMonDVs
 	ld a, $2d
 	call Predef
-	ld hl, $7a18
-	ld a, $3e
-	rst FarCall
+	callab Functionfba18
 
 .asm_423ec
 	pop de
@@ -55032,9 +54651,7 @@
 	ret nz
 
 ; No use picking a move if there's no choice.
-	ld a, $f
-	ld hl, $68d1
-	rst FarCall ; CheckLockedEnemyMove
+	callba Function3e8d1
 	ret nz
 
 
@@ -55456,9 +55073,7 @@
 	ld a, $1
 	call GetPartyParamLocation
 	ld d, [hl]
-	ld a, $2e
-	ld hl, $5e76
-	rst FarCall
+	callba ItemIsMail
 	jr nc, .asm_445be
 	call Function44648
 	cp $a
@@ -55509,9 +55124,7 @@
 Function44654: ; 44654
 	push bc
 	push de
-	ld a, $14
-	ld hl, $4000
-	rst FarCall
+	callba Function50000
 	ld a, $2
 	jr c, .asm_446c6
 	ld a, [CurPartyMon]
@@ -55519,9 +55132,7 @@
 	ld bc, $0030
 	call AddNTimes
 	ld d, [hl]
-	ld a, $2e
-	ld hl, $5e76
-	rst FarCall
+	callba ItemIsMail
 	ld a, $3
 	jr nc, .asm_446c6
 	ld a, $0
@@ -55554,16 +55165,12 @@
 	jr nz, .asm_44691
 
 .asm_446ab
-	ld a, $3
-	ld hl, $6538
-	rst FarCall
+	callba Functione538
 	ld a, $4
 	jr c, .asm_446c1
 	xor a
 	ld [$d10b], a
-	ld a, $3
-	ld hl, $6039
-	rst FarCall
+	callba Functione039
 	ld a, $1
 
 .asm_446c1
@@ -57706,16 +57313,12 @@
 	ld [$d262], a
 	call GetMoveName
 	call CopyName1
-	ld a, $b
-	ld hl, $47fb
-	rst FarCall
+	callba Function2c7fb
 	jr c, .asm_4929c
 	jr .asm_49291
 
 .asm_49289
-	ld a, $b
-	ld hl, $480a
-	rst FarCall
+	callba Function2c80a
 	jr c, .asm_4929c
 
 .asm_49291
@@ -57775,9 +57378,7 @@
 	jr .asm_49300
 
 .asm_492e5
-	ld hl, $79ea
-	ld a, $3
-	rst FarCall
+	callab Functionf9ea
 	jr c, .asm_49300
 	ld a, $0
 	call Predef
@@ -58761,9 +58362,7 @@
 	decoord 4, 16
 	ld a, [hHours]
 	ld c, a
-	ld a, $24
-	ld hl, $4b3e
-	rst FarCall
+	callba Function90b3e
 	ld [hl], ":"
 	inc hl
 	ld de, hMinutes
@@ -61365,9 +60964,7 @@
 ; 4d3b1
 
 Function4d3b1: ; 4d3b1
-	ld a, $2
-	ld hl, $4000
-	rst FarCall
+	callba Function8000
 	ld b, $8
 	call GetSGBLayout
 	call Functione51
@@ -61609,9 +61206,7 @@
 ; 4d54c
 
 Function4d54c: ; 4d54c
-	ld a, $2
-	ld hl, $4000
-	rst FarCall
+	callba Function8000
 	ld b, $8
 	call GetSGBLayout
 	call Functione51
@@ -61627,9 +61222,7 @@
 	ld a, [$cfa9]
 	cp $1
 	ret z
-	ld a, $13
-	ld hl, $4f1f
-	rst FarCall
+	callba Function4cf1f
 	ret
 ; 4d580
 
@@ -62387,9 +61980,7 @@
 	call WhiteBGMap
 	call ClearTileMap
 	call Function1ad2
-	ld a, $3e
-	ld hl, $753e
-	rst FarCall ; this loads graphics
+	callba Functionfb53e
 	pop hl
 	call _hl_
 	call WhiteBGMap
@@ -63339,9 +62930,7 @@
 	call DelayFrame
 	ld hl, TileMap
 	call Function3786
-	ld a, $41
-	ld hl, $402d
-	rst FarCall
+	callba Function10402d
 	call $6497
 
 	ld a, [TempMonHappiness]
@@ -63823,9 +63412,7 @@
 	call GetPartyLocation
 	ld b, h
 	ld c, l
-	ld a, $13
-	ld hl, $653f
-	rst FarCall
+	callba Function4e53f
 	ret
 ; 4e7a6
 
@@ -64184,9 +63771,7 @@
 	ld [rSVBK], a
 	ld bc, $cd53
 	ld de, $c5b9
-	ld a, $47
-	ld hl, $40c6
-	rst FarCall
+	callba Function11c0c6
 	pop af
 	ld [rSVBK], a
 	ld c, $b4
@@ -64714,12 +64299,8 @@
 
 Function5004f: ; 5004f
 	call Functione58
-	ld hl, $4ad1
-	ld a, $2
-	rst FarCall
-	ld hl, $6814
-	ld a, $23
-	rst FarCall
+	callab Function8ad1
+	callab Function8e814
 	ret
 ; 5005f
 
@@ -65279,8 +64860,8 @@
 .asm_503ea
 	push bc
 	push hl
-	ld hl, $683f
-	ld a, $23
+	ld hl, Function8e83f
+	ld a, BANK(Function8e83f)
 	ld e, $0
 	rst FarCall
 	ld a, [hConnectedMapWidth]
@@ -65321,8 +64902,29 @@
 	ret
 ; 5042d
 
-INCBIN "baserom.gbc",$5042d,$50457 - $5042d
+Function5042d: ; 0x5042d
+	ld de, $444f
+	call Function1bb1
+	ld a, [PartyCount] ; $dcd7
+	ld [$cfa3], a
+	ld b, a
+	ld a, [$d0d8]
+	and a
+	jr z, .asm_50444
+	inc b
+	cp b
+	jr c, .asm_50446
+.asm_50444
+	ld a, $1
+.asm_50446
+	ld [$cfa9], a
+	ld a, $3
+	ld [$cfa8], a
+	ret
+; 5044f (14:444f)
 
+INCBIN "baserom.gbc",$5044f,$50457 - $5044f
+
 PartyMenuSelect: ; 0x50457
 ; sets carry if exitted menu.
 	call Function1bc9
@@ -65651,15 +65253,11 @@
 	ld hl, StatusFlags2
 	bit 2, [hl]
 	jr nz, .asm_50712
-	ld a, $a
-	ld hl, $6111
-	rst FarCall
+	callba Function2a111
 	ld a, b
 	and a
 	jr z, .asm_5071e
-	ld a, $a
-	ld hl, $614f
-	rst FarCall
+	callba Function2a14f
 	jr nz, .asm_5071e
 	jr .asm_50718
 
@@ -65907,9 +65505,7 @@
 	cp $1
 	jr z, .asm_5087b
 	ld bc, $0020
-	ld hl, $65bb
-	ld a, $3
-	rst FarCall
+	callab Functione5bb
 	jr .asm_5088a
 
 .asm_5087b
@@ -66835,10 +66431,158 @@
 	jp Multiply
 ; 50efa
 
+INCBIN "baserom.gbc",$50efa,$50f12 - $50efa
 
-INCBIN "baserom.gbc",$50efa,$51040 - $50efa
+Function50f12:
+	ld a, [$d0e3]
+	dec a
+	ld [$d1ec], a
+	ld b, a
+	ld a, [$cfa9]
+	dec a
+	ld [Buffer2], a ; $d1eb (aliases: MovementType)
+	cp b
+	jr z, .asm_50f33
+	call Function50f62
+	ld a, [$d1ec]
+	call Function50f34
+	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+	call Function50f34
+.asm_50f33
+	ret
 
+; known jump sources: 50f2a (14:4f2a), 50f30 (14:4f30)
+Function50f34: ; 50f34 (14:4f34)
+	push af
+	ld hl, $c4b4
+	ld bc, $28
+	call AddNTimes
+	ld bc, $28
+	ld a, $7f
+	call ByteFill
+	pop af
+	ld hl, Sprites ; $c400
+	ld bc, $10
+	call AddNTimes
+	ld de, $4
+	ld c, $4
+.asm_50f55
+	ld [hl], $a0
+	add hl, de
+	dec c
+	jr nz, .asm_50f55
+	ld de, $20
+	call WaitPlaySFX
+	ret
 
+; known jump sources: 50f24 (14:4f24)
+Function50f62: ; 50f62 (14:4f62)
+	push hl
+	push de
+	push bc
+	ld bc, PartySpecies ; $dcd8
+	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+	ld l, a
+	ld h, $0
+	add hl, bc
+	ld d, h
+	ld e, l
+	ld a, [$d1ec]
+	ld l, a
+	ld h, $0
+	add hl, bc
+	ld a, [hl]
+	push af
+	ld a, [de]
+	ld [hl], a
+	pop af
+	ld [de], a
+	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+	ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species)
+	ld bc, $30
+	call AddNTimes
+	push hl
+	ld de, DefaultFlypoint ; $d002
+	ld bc, $30
+	call CopyBytes
+	ld a, [$d1ec]
+	ld hl, PartyMons ; $dcdf (aliases: PartyMon1, PartyMon1Species)
+	ld bc, $30
+	call AddNTimes
+	pop de
+	push hl
+	ld bc, $30
+	call CopyBytes
+	pop de
+	ld hl, DefaultFlypoint ; $d002
+	ld bc, $30
+	call CopyBytes
+	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+	ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT)
+	call SkipNames
+	push hl
+	call Function51036
+	ld a, [$d1ec]
+	ld hl, PartyMonOT ; $ddff (aliases: PartyMon1OT)
+	call SkipNames
+	pop de
+	push hl
+	call Function51039
+	pop de
+	ld hl, DefaultFlypoint ; $d002
+	call Function51039
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+	call SkipNames
+	push hl
+	call Function51036
+	ld hl, PartyMonNicknames ; $de41 (aliases: PartyMon1Nickname)
+	ld a, [$d1ec]
+	call SkipNames
+	pop de
+	push hl
+	call Function51039
+	pop de
+	ld hl, DefaultFlypoint ; $d002
+	call Function51039
+	ld hl, $a600
+	ld a, [Buffer2] ; $d1eb (aliases: MovementType)
+	ld bc, $2f
+	call AddNTimes
+	push hl
+	ld de, DefaultFlypoint ; $d002
+	ld bc, $2f
+	ld a, $0
+	call GetSRAMBank
+	call CopyBytes
+	ld hl, $a600
+	ld a, [$d1ec]
+	ld bc, $2f
+	call AddNTimes
+	pop de
+	push hl
+	ld bc, $2f
+	call CopyBytes
+	pop de
+	ld hl, DefaultFlypoint ; $d002
+	ld bc, $2f
+	call CopyBytes
+	call CloseSRAM
+	pop bc
+	pop de
+	pop hl
+	ret
+
+; known jump sources: 50fbc (14:4fbc), 50fde (14:4fde)
+Function51036: ; 51036 (14:5036)
+	ld de, DefaultFlypoint ; $d002
+
+; known jump sources: 50fca (14:4fca), 50fd1 (14:4fd1), 50fec (14:4fec), 50ff3 (14:4ff3)
+Function51039: ; 51039 (14:5039)
+	ld bc, $b
+	call CopyBytes
+	ret
+
 GetUnownLetter: ; 51040
 ; Return Unown letter in UnownLetter based on DVs at hl
 
@@ -70257,9 +70001,7 @@
 	ld hl, StatusFlags
 	set 6, [hl]
 
-	ld a, $5
-	ld hl, $4da0
-	rst FarCall
+	callba Function14da0
 	ld hl, $d95e
 	ld a, [hl]
 	cp $c8
@@ -70266,21 +70008,15 @@
 	jr nc, .asm_86436 ; 0x86433 $1
 	inc [hl]
 .asm_86436
-	ld a, $5
-	ld hl, $4b85
-	rst FarCall
+	callba Function14b85
 	call Function8653f
-	ld a, $5
-	ld hl, $4b5f
-	rst FarCall
+	callba Function14b5f
 	xor a
 	ld [$c2cd], a
 	call Function864c3
 	pop af
 	ld b, a
-	ld a, $42
-	ld hl, $5847
-	rst FarCall
+	callba Function109847
 	ret
 ; 0x86455
 
@@ -70291,15 +70027,11 @@
 	ld [MusicFadeIDHi], a
 	ld a, $a
 	ld [MusicFade], a
-	ld a, $23
-	ld hl, $4084
-	rst FarCall
+	callba Function8c084
 	xor a
 	ld [VramState], a
 	ld [$ffde], a
-	ld a, $13
-	ld hl, $68c2
-	rst FarCall
+	callba Function4e8c2
 	ld c, $8
 	call DelayFrames
 	call Function2ed3
@@ -70307,9 +70039,7 @@
 	ld [$d4b5], a
 	ld a, [StatusFlags]
 	ld b, a
-	ld a, $42
-	ld hl, $5847
-	rst FarCall
+	callba Function109847
 	ret
 ; 8648e
 
@@ -70320,15 +70050,11 @@
 	ld [MusicFadeIDHi], a
 	ld a, $a
 	ld [MusicFade], a
-	ld a, $23
-	ld hl, $4084
-	rst FarCall
+	callba Function8c084
 	xor a
 	ld [VramState], a
 	ld [$ffde], a
-	ld a, $13
-	ld hl, $6881
-	rst FarCall
+	callba Function4e881
 	ld c, $64
 	jp DelayFrames
 ; 864b4
@@ -70483,9 +70209,7 @@
 Function865b5: ; 865b5
 	push hl
 	call WhiteBGMap
-	ld a, $13
-	ld hl, $6906
-	rst FarCall
+	callba Function4e906
 	pop hl
 	ld a, [hli]
 	ld [TempMonSpecies], a
@@ -70715,9 +70439,7 @@
 	ld bc, $0168
 	ld a, $7f
 	call ByteFill
-	ld a, $22
-	ld hl, $4840
-	rst FarCall
+	callba Function88840
 	xor a
 	ld [$ffad], a
 	hlcoord 12, 5
@@ -78281,9 +78003,7 @@
 	jr nz, .asm_8c96c
 	ld a, $90
 	ld [$c3b5], a
-	ld hl, Function8cf7a
-	ld a, $23
-	rst FarCall
+	callab Function8cf7a
 	call Function8ca0c
 	call DelayFrame
 	jr .asm_8c952
@@ -78293,9 +78013,7 @@
 ; 8c96d
 
 Function8c96d: ; 8c96d
-	ld hl, Function8cf53
-	ld a, $23
-	rst FarCall
+	callab Function8cf53
 	ld de, $49cc
 	ld hl, VTiles1
 	ld bc, $2304
@@ -80617,6 +80335,7 @@
 	ret
 ; 8ea71
 
+Function8ea71: ; 8ea71
 	ld hl, $c314
 	ld e, $6
 .asm_8ea76
@@ -80638,7 +80357,35 @@
 	ret
 ; 8ea8c (23:6a8c)
 
-INCBIN "baserom.gbc",$8ea8c,$8eab3 - $8ea8c
+Function8ea8c: ; 8ea8c
+	ld hl, $c314
+	ld e, $6
+	ld a, [$d0e3]
+	ld d, a
+.asm_8ea95
+	ld a, [hl]
+	and a
+	jr z, .asm_8eaab
+	cp d
+	jr z, .asm_8eaa0
+	ld a, $3
+	jr .asm_8eaa2
+.asm_8eaa0
+	ld a, $2
+.asm_8eaa2
+	push hl
+	ld c, l
+	ld b, h
+	ld hl, $2
+	add hl, bc
+	ld [hl], a
+	pop hl
+.asm_8eaab
+	ld bc, $10
+	add hl, bc
+	dec e
+	jr nz, .asm_8ea95
+	ret
 
 
 INCLUDE "menu/mon_icons.asm"
@@ -81079,9 +80826,7 @@
 	ld [$d004], a
 	call Function902b3
 	call Function902b3
-	ld a, $41
-	ld hl, $60d3
-	rst FarCall
+	callba Function1060d3
 	ret
 ; 902b3
 
@@ -81179,9 +80924,7 @@
 	call StartSFX
 	call Function90375
 	call Function1ad2
-	ld a, $13
-	ld hl, $5188
-	rst FarCall
+	callba Function4d188
 	ret
 ; 90355
 
@@ -81191,9 +80934,7 @@
 Function90357
 	ld c, $14
 	call DelayFrames
-	ld a, $13
-	ld hl, $5188
-	rst FarCall
+	callba Function4d188
 	ret
 ; 90363
 
@@ -81896,6 +81637,8 @@
 .asm_90b8a
 	ld a, $c
 	ret
+
+Function90b8d: ; 90b8d (24:4b8d)
 	ld hl, Options ; $cfcc
 	ld a, [hl]
 	push af
@@ -84991,9 +84734,7 @@
 	ld hl, $d432
 	ld bc, $3e
 	call ByteFill
-	ld a, $4
-	ld hl, $53e5
-	rst FarCall
+	callba Function113e5
 	call ClearJoypadPublic
 	; fallthrough
 ; 9673e
@@ -85103,9 +84844,7 @@
 
 Function967d1: ; 967d1
 	callba Function576a
-	ld a, $3
-	ld hl, $5497
-	rst FarCall
+	callba Functiond497
 	call Function96812
 	ret
 ; 967e1
@@ -85112,12 +84851,8 @@
 
 Function967e1: ; 967e1
 	callba Function5920
-	ld a, $3
-	ld hl, $54d2
-	rst FarCall
-	ld a, $2e
-	ld hl, $4098
-	rst FarCall
+	callba Functiond4d2
+	callba Functionb8098
 	ret
 ; 967f4
 
@@ -85146,9 +84881,7 @@
 	ld hl, $d150
 	bit 6, [hl]
 	ret z
-	ld a, $2
-	ld hl, $41ca
-	rst FarCall
+	callba Function81ca
 
 	ret
 ; 9681f
@@ -85229,9 +84962,7 @@
 	call Function9670c
 	jr z, .asm_96886
 
-	ld a, $41
-	ld hl, $4820
-	rst FarCall
+	callba Function104820
 	jr c, .asm_968a6
 
 	call Function2238
@@ -85386,23 +85117,15 @@
 	ld hl, StatusFlags2
 	bit 2, [hl]
 	jr z, .asm_96951
-	ld a, $4
-	ld hl, Route7_SecondMapHeader
-	rst FarCall
+	callba Function114a4
 	jr c, .asm_96966
 	xor a
 	ret
 
 .asm_96951
-	ld a, $4
-	ld hl, $5452
-	rst FarCall
-	ld a, $4
-	ld hl, $54e7
-	rst FarCall
-	ld a, $24
-	ld hl, $4074
-	rst FarCall
+	callba Function11452
+	callba Function114e7
+	callba Function90074
 	ret c
 
 .asm_96964
@@ -85840,9 +85563,7 @@
 	and a
 	jr nz, .asm_96bc9
 
-	ld a, $24
-	ld hl, $4136
-	rst FarCall
+	callba Function90136
 	jr c, .asm_96bcb
 
 	call Function96bd7
@@ -85873,9 +85594,7 @@
 	jr c, .asm_96bc3
 	ld [hl], 0
 
-	ld a, $14
-	ld hl, $45da
-	rst FarCall
+	callba Function505da
 	jr c, .asm_96bcb
 
 .asm_96bc3
@@ -86235,9 +85954,7 @@
 	jr z, .asm_97d17
 	cp $7
 	jr z, .asm_97d17
-	ld a, $5
-	ld hl, $49dd
-	rst FarCall
+	callba Function149dd
 	jr nc, .asm_97d21
 
 .asm_97d17
@@ -86256,9 +85973,7 @@
 	call Function97d64
 	ret nc
 	call Function97d31
-	ld a, $a
-	ld hl, $61df
-	rst FarCall
+	callba Function2a1df
 	ret
 ; 97d31
 
@@ -86310,12 +86025,8 @@
 	ld b, $33
 
 .asm_97d70
-	ld a, $a
-	ld hl, $6124
-	rst FarCall
-	ld a, $a
-	ld hl, $6138
-	rst FarCall
+	callba Function2a124
+	callba Function2a138
 	call Random
 	ld a, [hRandomAdd]
 	cp b
@@ -86846,9 +86557,7 @@
 	ld [$c2da], a
 	call Functionb80c6
 	call Functionb80d3
-	ld a, $41
-	ld hl, $4303
-	rst FarCall
+	callba Function104303
 	ret
 
 .asm_b8054
@@ -89007,9 +88716,7 @@
 	push de
 	ld a, $0
 	call GetSRAMBank
-	ld a, $77
-	ld hl, $65c8
-	rst FarCall
+	callba Function1de5c8
 	call CloseSRAM
 	ld a, c
 	ld de, $65e6
@@ -89030,9 +88737,7 @@
 	call WaitBGMap
 	ld a, [$d1ec]
 	ld e, a
-	ld a, $2
-	ld hl, $4cb4
-	rst FarCall
+	callba Function8cb4
 	call Function32f9
 	xor a
 	ld [hJoyPressed], a
@@ -89056,9 +88761,7 @@
 .asm_b92a8
 	ld a, [$cf63]
 	push af
-	ld hl, $45d4
-	ld a, $21
-	rst FarCall
+	callab Function845d4
 	pop af
 	ld [$cf63], a
 	jr .asm_b929a
@@ -93993,9 +93696,7 @@
 
 
 Functionccb48: ; ccb48
-	ld hl, Functioncc000
-	ld a, $32
-	rst FarCall
+	callab Functionc8000
 	ret
 ; ccb4f
 
@@ -102990,9 +102691,7 @@
 	ld c, $64
 	call DelayFrames
 	call ClearTileMap
-	ld a, $13
-	ld hl, $6a82
-	rst FarCall
+	callba Function4ea82
 	call Functione45e8
 .asm_e45c0
 	call Functiona57
@@ -103003,9 +102702,7 @@
 	bit 7, a
 	jr nz, .asm_e45e3
 	call Functione4670
-	ld a, $23
-	ld hl, $4f69
-	rst FarCall
+	callba Function8cf69
 	call DelayFrame
 	jr .asm_e45c0
 
@@ -103043,9 +102740,7 @@
 	call Request2bpp
 	pop af
 	ld [rSVBK], a
-	ld a, $23
-	ld hl, $4f53
-	rst FarCall
+	callba Function8cf53
 	ld de, $5458
 	ld a, $3
 	call Function3b2a
@@ -103074,9 +102769,7 @@
 ; e465e
 
 Functione465e: ; e465e
-	ld a, $23
-	ld hl, $4f53
-	rst FarCall
+	callba Function8cf53
 	call ClearTileMap
 	call ClearSprites
 	ld c, $10
@@ -105341,6 +105034,8 @@
 	ld bc, $3e03
 	call Functiondc9
 	call Functionfb4cc
+
+Functionfb50d: ; fb50d
 	ld de, $4ac0
 	ld hl, $96c0
 	ld bc, $3e04
@@ -105378,6 +105073,8 @@
 	ld hl, $9550
 	ld bc, $3e08
 	call Functiondc9
+
+Functionfb571: ; fb571
 	ld de, $49b0
 	ld hl, $9310
 	ld bc, $3e11
@@ -107130,9 +106827,7 @@
 	ld a, $1
 	jr c, .asm_fcc03
 	ld b, $6
-	ld a, $14
-	ld hl, $401d
-	rst FarCall
+	callba Function5001d
 	ld a, $1
 	jr c, .asm_fcc03
 	ld e, $1
@@ -107263,9 +106958,7 @@
 	call Functionfcdd7
 	ld b, h
 	ld c, l
-	ld a, $13
-	ld hl, $7301
-	rst FarCall
+	callba Function4f301
 	ld a, c
 	ld [$c701], a
 	ld e, $0
@@ -107288,9 +106981,7 @@
 	xor a
 	ld [MonType], a
 	ld [$d10b], a
-	ld hl, $6039
-	ld a, $3
-	rst FarCall
+	callab Functione039
 	ld a, $6
 	call Predef
 	ld e, $0
@@ -107302,9 +106993,7 @@
 	ld b, $1
 
 .asm_fcd1c
-	ld a, $13
-	ld hl, $5ba3
-	rst FarCall
+	callba Function4dba3
 	ld e, $3
 	call LoadTradesPointer
 	ld de, FailedMessage
@@ -107363,9 +107052,7 @@
 	ld a, [PartyCount]
 	dec a
 	ld [CurPartyMon], a
-	ld a, $3
-	ld hl, $6134
-	rst FarCall
+	callba Functione134
 	pop af
 	ld [CurPartyMon], a
 	pop hl
@@ -107584,9 +107271,7 @@
 	ld [$ffc5], a
 	ld de, $d851
 	ld bc, $ffc3
-	ld a, $5
-	ld hl, $600b
-	rst FarCall
+	callba Function1600b
 	jr nc, .asm_fd067
 
 .asm_fd065
@@ -107606,9 +107291,7 @@
 .asm_fd074
 	ld de, $dc19
 	ld bc, $d851
-	ld a, $5
-	ld hl, $600b
-	rst FarCall
+	callba Function1600b
 	jr z, .asm_fd08b
 	jr nc, .asm_fd089
 	call Functionfd099
@@ -107631,9 +107314,7 @@
 Functionfd099: ; fd099
 	ld de, $dc19
 	ld bc, $ffc3
-	ld a, $5
-	ld hl, $6053
-	rst FarCall
+	callba Function16053
 	ret
 ; fd0a6
 
@@ -107667,9 +107348,7 @@
 	ld a, [hl]
 	ld c, a
 	ld b, $1
-	ld a, $9
-	ld hl, $6ef1
-	rst FarCall
+	callba Function26ef1
 	scf
 	ret
 
@@ -109016,9 +108695,7 @@
 	jr nz, .asm_100a2a
 	call Function100a87
 	call Function100da5
-	ld a, $f
-	ld hl, $6e27
-	rst FarCall
+	callba Function3ee27
 	jr .asm_100a2d
 
 .asm_100a2a
@@ -109091,9 +108768,7 @@
 .asm_100a92
 	call DelayFrame
 	call GetJoypadPublic
-	ld a, $40
-	ld hl, $4382
-	rst FarCall
+	callba Function100382
 	ld c, $1
 	ld b, $3
 	push bc
@@ -109204,9 +108879,7 @@
 	ld a, [$cfa8]
 	and c
 	jr z, .asm_100b48
-	ld a, $9
-	ld hl, $4098
-	rst FarCall
+	callba Function24098
 	ret
 
 .asm_100b6b
@@ -109227,9 +108900,7 @@
 	callba MobileTextBorder
 	call Function1ad2
 	call Function321c
-	ld a, $9
-	ld hl, $411a
-	rst FarCall
+	callba Function2411a
 	ld hl, $cfa5
 	set 7, [hl]
 	ret
@@ -109238,9 +108909,7 @@
 Function100b9f: ; 100b9f
 	xor a
 	ld [$d0e3], a
-	ld a, $f
-	ld hl, $6786
-	rst FarCall
+	callba Function3e786
 	ret z
 	call Function100dd8
 	jp c, Function2ec8
@@ -109389,14 +109058,10 @@
 	res 6, [hl]
 .asm_100cc0
 	call Function100dd2
-	ld a, $9
-	ld hl, $41ba
-	rst FarCall
+	callba Function241ba
 	push bc
 	callba Function8cf69
-	ld a, $41
-	ld hl, $402d
-	rst FarCall
+	callba Function10402d
 	call Function100dfd
 	pop bc
 	jr c, .asm_100d17
@@ -109546,17 +109211,13 @@
 Function100dd8: ; 100dd8
 	ld c, $1
 	ld b, $3
-	ld a, $40
-	ld hl, $462d
-	rst FarCall
+	callba Function10062d
 	jr c, .asm_100dfb
 	ld c, $3c
 	ld b, $1
 	call Function10079c
 	jr c, .asm_100dfb
-	ld a, $40
-	ld hl, $432e
-	rst FarCall
+	callba Function10032e
 	ld a, [$cd2b]
 	and a
 	jr nz, .asm_100dfb
@@ -109576,9 +109237,7 @@
 	ld c, a
 	ld b, $3
 	push bc
-	ld a, $40
-	ld hl, $462d
-	rst FarCall
+	callba Function10062d
 	pop bc
 	jr c, .asm_100e2b
 	ld b, $1
@@ -109586,9 +109245,7 @@
 	jr c, .asm_100e2b
 	call Function1009f3
 	jr c, .asm_100e2b
-	ld a, $40
-	ld hl, $432e
-	rst FarCall
+	callba Function10032e
 	ld a, [$cd2b]
 	and a
 	jr nz, .asm_100e2b
@@ -109715,9 +109372,7 @@
 ; 100eca
 
 Function100eca: ; 100eca
-	ld a, $2
-	ld hl, $4e8b
-	rst FarCall
+	callba Function8e8b
 	call Function100ed4
 	ret
 ; 100ed4
@@ -113729,6 +113384,8 @@
 ; 1060c2
 
 INCBIN "baserom.gbc",$1060c2,$1060c7 - $1060c2
+
+Function1060c7: ; 1060c7
 	ret
 ; 1060c8 (41:60c8)
 
@@ -115423,12 +115080,8 @@
 	ld [$cf66], a
 	call WhiteBGMap
 	call ClearSprites
-	ld a, $5c
-	ld hl, $6e78
-	rst FarCall
-	ld a, $41
-	ld hl, $4000
-	rst FarCall
+	callba Function172e78
+	callba Function104000
 	ret
 ; 0x117ab4
 
@@ -115435,15 +115088,9 @@
 Function117ab4: ; 0x117ab4
 	call WhiteBGMap
 	call ClearSprites
-	ld a, $5c
-	ld hl, $6e78
-	rst FarCall
-	ld a, $5c
-	ld hl, $6eb9
-	rst FarCall
-	ld a, $41
-	ld hl, $4061
-	rst FarCall
+	callba Function172e78
+	callba Function172eb9
+	callba Function104061
 	ret
 ; 0x117acd
 
@@ -115453,9 +115100,7 @@
 	bit 7, a
 	jr nz, .asm_117ae2 ; 0x117ad5 $b
 	call Function117ae9
-	ld a, $41
-	ld hl, $4000
-	rst FarCall
+	callba Function104000
 	jr Function117acd
 .asm_117ae2
 	call WhiteBGMap
@@ -115484,9 +115129,7 @@
 	dw Function117c4a
 
 Function117b06:
-	ld a, $5c
-	ld hl, $6eb9
-	rst FarCall
+	callba Function172eb9
 	ld a, $10
 	ld [$cf64], a
 	jp Function117cdd
@@ -115561,16 +115204,12 @@
 	jr nz, .asm_117ba4 ; 0x117b93 $f
 	call Function1c07
 	call Function1c07
-	ld a, $41
-	ld hl, $4061
-	rst FarCall
+	callba Function104061
 	jp Function117cdd
 .asm_117ba4
 	call Function1c07
 	call Function1c07
-	ld a, $41
-	ld hl, $4061
-	rst FarCall
+	callba Function104061
 	ld a, $80
 	ld [$cf63], a
 	ret
@@ -115579,9 +115218,7 @@
 	call Function117c89
 	ld a, $1
 	ld [hBGMapMode], a
-	ld a, $46
-	ld hl, $4284
-	rst FarCall
+	callba Function118284
 	call ClearSprites
 	ld a, [$c300]
 	and a
@@ -115591,9 +115228,7 @@
 .asm_117bd0
 	ld a, $2
 	ld [$c303], a
-	ld a, $5f
-	ld hl, $7555
-	rst FarCall
+	callba Function17f555
 	ld a, $80
 	ld [$cf63], a
 	ret
@@ -115636,9 +115271,7 @@
 .asm_117c20
 	pop af
 	ld [rSVBK], a
-	ld a, $5c
-	ld hl, $6eb9
-	rst FarCall
+	callba Function172eb9
 	ld a, [rSVBK]
 	push af
 	ld a, $3
@@ -115659,9 +115292,7 @@
 	call LoadMenuDataHeader
 	call Function1cbb
 	call Function1cfd
-	ld a, $41
-	ld hl, $4061
-	rst FarCall
+	callba Function104061
 	ld hl, MobileStadiumSuccessText
 	call PrintText
 	ld a, [rSVBK]
@@ -115787,6 +115418,7 @@
 	ld [rSVBK], a
 	call Function118452
 	call Function222a
+Function11805e: ; 11805e (46:405e)
 	ret
 ; 11805f
 
@@ -115964,8 +115596,51 @@
 	ret
 ; 118233
 
-INCBIN "baserom.gbc",$118233,$1183cb - $118233
+INCBIN "baserom.gbc",$118233,$118284 - $118233
 
+Function118284: ; 118284
+	call Function1183cb
+	ld a, $19
+	ld [$cd33], a
+	ld a, $1e
+	ld [$cd34], a
+	ld a, $5
+	ld [$c3f0], a
+	ld a, [rSVBK] ; $ff00+$70
+	push af
+	ld a, $3
+	ld [rSVBK], a ; $ff00+$70
+.asm_11829d
+	call Functiona57
+	call Function118473
+	ld a, [$cf66]
+	cp $20
+	jr c, .asm_1182b0
+	ld a, [$cd34]
+	ld [$cf66], a
+.asm_1182b0
+	call Function1186f5
+	call Function11a8fa
+	ld a, BANK(Function115dd3)
+	ld hl, Function115dd3
+	rst $8 ;  ; indirect jump to Function115dd3 (115dd3 (45:5dd3))
+	ld a, BANK(Function11619d)
+	ld hl, Function11619d
+	rst $8 ;  ; indirect jump to Function11619d (11619d (45:619d))
+	call DelayFrame
+	ld a, [$cf66]
+	ld hl, $cd33
+	cp [hl]
+	jr nz, .asm_11829d
+	pop af
+	ld [rSVBK], a ; $ff00+$70
+	call Function118452
+	ret
+; 1182d5 (46:42d5)
+
+
+INCBIN "baserom.gbc",$1182d5,$1183cb - $1182d5
+
 Function1183cb: ; 1183cb
 	di
 	ld a, [rIE]
@@ -116121,8 +115796,315 @@
 	jp [hl]
 ; 1185d2
 
-INCBIN "baserom.gbc",$1185d2,$118ba5 - $1185d2
+INCBIN "baserom.gbc",$1185d2,$1186f5 - $1185d2
 
+; known jump sources: 1182b0 (46:42b0)
+Function1186f5: ; 1186f5 (46:46f5)
+	ld a, [$cf66]
+	ld e, a
+	ld d, $0
+	ld hl, $4704
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+; 118704 (46:4704)
+
+; no known jump sources
+Jumptable_118704: ; 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 Function11805e
+	dw Function11967d
+	dw Function119685
+	dw Function119665
+	dw Function11966d
+	dw Function118e76
+	dw Function118e87
+; 118744 (46:4744)
+
+INCBIN "baserom.gbc",$118744,$11878d - $118744
+
+; no known jump sources
+Function11878d: ; 11878d (46:478d)
+	ld a, [$c821]
+	bit 1, a
+	jr nz, .asm_1187af
+	bit 2, a
+	jr nz, .asm_1187d1
+	bit 0, a
+	jr nz, .asm_1187aa
+	ld a, [$cd89]
+	and $1
+	jr z, .asm_1187a7
+	ld a, $3
+	ld [rSVBK], a ; $ff00+$70
+.asm_1187a7
+	jp Function119e2e
+.asm_1187aa
+	call Function118821
+	ret c
+	ret
+.asm_1187af
+	ld a, $0
+	call Function3e32
+	ld [$c300], a
+	ld a, l
+	ld [$c301], a
+	ld a, h
+	ld [$c302], a
+	ld a, $a
+	call Function3e32
+	ld a, [$c3f0]
+	ld [$c319], a
+	ld a, [$cd34]
+	ld [$cf66], a
+	ret
+.asm_1187d1
+	ld hl, $cd89
+	bit 0, [hl]
+	jr nz, .asm_118803
+	set 0, [hl]
+	ld a, $6
+	ld [rSVBK], a ; $ff00+$70
+	ld de, Unkn1Pals ; $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
+
+; known jump sources: 11945a (46:545a), 119573 (46:5573), 1195f5 (46:55f5)
+Function118805: ; 118805 (46:4805)
+	ld [$c300], a
+	xor a
+	ld [$c301], a
+	ld [$c302], a
+	ld a, $a
+	call Function3e32
+	ld a, [$c3f0]
+	ld [$c319], a
+	ld a, [$cd34]
+	ld [$cf66], a
+	ret
+
+; known jump sources: 1187aa (46:47aa)
+Function118821: ; 118821 (46:4821)
+	ld a, [$c319]
+	cp $3
+	jr c, .asm_11884a
+	cp $4
+	jr z, .asm_11884a
+	ld a, [hJoyDown] ; $ff00+$a8
+	cp $5
+	jr nz, .asm_11884a
+	ld a, $a
+	call Function3e32
+	ld a, $a
+	ld [$c300], a
+	ld a, [$c3f0]
+	ld [$c319], a
+	ld a, [$cd34]
+	ld [$cf66], a
+	scf
+	ret
+.asm_11884a
+	and a
+	ret
+; 11884c (46:484c)
+
+INCBIN "baserom.gbc",$11884c,$11886a - $11884c
+
+; no known jump sources
+Function11886a: ; 11886a (46:486a)
+	ld a, $1
+	jr .asm_11886f
+; 11886e (46:486e)
+
+INCBIN "baserom.gbc",$11886e,$11886f - $11886e
+.asm_11886f
+	ld [BGMapPalBuffer], a ; $cd48
+	ld a, $0
+	ld [$cd3c], a
+	call Function119e2e
+	ld a, [$cd33]
+	ld [$cd45], a
+
+; no known jump sources
+Function118880: ; 118880 (46:4880)
+	call Function119ed8
+	ret c
+	xor a
+	ld [$cf64], a
+	ld [$c807], a
+	ld de, $cd81
+	ld hl, $46
+	ld a, $2
+	jp Function119e2b
+; 118896 (46:4896)
+
+INCBIN "baserom.gbc",$118896,$1188b0 - $118896
+
+; no known jump sources
+Function1188b0: ; 1188b0 (46:48b0)
+	ld de, $c346
+	ld a, $c
+	jp Function119e2b
+
+; no known jump sources
+Function1188b8: ; 1188b8 (46:48b8)
+	ld de, $c3ac
+	ld a, $e
+	jp Function119e2b
+
+; no known jump sources
+Function1188c0: ; 1188c0 (46:48c0)
+	ld de, $c3cd
+	ld a, $10
+	jp Function119e2b
+
+; no known jump sources
+Function1188c8: ; 1188c8 (46:48c8)
+	ld a, $1
+	ld [$cd65], 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
+
+; known jump sources: 1188cd (46:48cd)
+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
+
+; no known jump sources
+Function118903: ; 118903 (46:4903)
+	ld a, [$c3f0]
+	ld [$c319], a
+	ld c, $1
+	ld a, BANK(Function115e18)
+	ld hl, Function115e18
+	rst $8 ;  ; indirect jump to Function115e18 (115e18 (45:5e18))
+	ld a, $8
+	ld [$cd3c], a
+	call Function119ed8
+	jp Function119e2e
+; 11891c (46:491c)
+
+INCBIN "baserom.gbc",$11891c,$118abc - $11891c
+
+; no known jump sources
+Function118abc: ; 118abc (46:4abc)
+	ld hl, $4c95
+	ld de, $cc60
+	ld bc, $80
+	call CopyBytes
+	ld de, Unkn1Pals ; $d000
+	ld bc, $1000
+	jr .asm_118b10
+; 118ad0 (46:4ad0)
+
+INCBIN "baserom.gbc",$118ad0,$118b10 - $118ad0
+.asm_118b10
+	push de
+	push bc
+	ld a, $8
+	ld [$cd3c], a
+	call Function119ed8
+	call Function118b24
+	pop bc
+	pop de
+	ld a, $2a
+	jp Function119e2b
+
+; known jump sources: 118b1a (46:4b1a), 119657 (46:5657)
+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 [$cd89], a
+	ld hl, $c346
+	ret
+; 118b42 (46:4b42)
+
+INCBIN "baserom.gbc",$118b42,$118ba5 - $118b42
+
 ExchangeDownloadURL: ; 0x118ba5
 	ascii "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt"
 
@@ -116148,9 +116130,514 @@
 
 db $0
 
-INCBIN "baserom.gbc",$118d35,$119d93 - $118d35
+INCBIN "baserom.gbc",$118d35,$118e39 - $118d35
 
+; known jump sources: 118e3b (46:4e3b), 119633 (46:5633)
+Function118e39: ; 118e39 (46:4e39)
+	ld a, [hli]
+	and a
+	jr nz, Function118e39
+	dec hl
+.asm_118e3e
+	ld a, [hld]
+	cp $2f
+	jr nz, .asm_118e3e
+	inc hl
+	inc hl
+	ld de, $cd85
+	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, $cd85
+.asm_118e63
+	ld a, $50
+	ld [de], a
+	ret
+.asm_118e67
+	ld a, $f3
+	ld [de], a
+	inc de
+	jr .asm_118e63
+
 ; no known jump sources
+Function118e6d: ; 118e6d (46:4e6d)
+	xor a
+	ld [$cd65], a
+	ld a, $a
+	jp Function119e2b
+
+; no known jump sources
+Function118e76: ; 118e76 (46:4e76)
+	ld a, $c
+	ld [$cd3c], a
+	jp Function119e2e
+
+; no known jump sources
+Function118e7e: ; 118e7e (46:4e7e)
+	call Function119ed8
+	ret c
+	ld a, $36
+	jp Function119e2b
+
+; no known jump sources
+Function118e87: ; 118e87 (46:4e87)
+	call Function119ed8
+	ret c
+	ld a, [$cd33]
+	ld [$cf66], a
+	ret
+; 118e92 (46:4e92)
+
+INCBIN "baserom.gbc",$118e92,$119451 - $118e92
+
+; no known jump sources
+Function119451: ; 119451 (46:5451)
+	ld a, [$cd89]
+	and $1
+	jr z, .asm_11945d
+	ld a, $d3
+	jp Function118805
+.asm_11945d
+	xor a
+	ld [$cd50], a
+	call Function119694
+	ld a, b
+	ld [$cd49], a
+	call Function1196cd
+	ld a, [DefaultFlypoint] ; $d002
+	ld hl, $d003
+
+; known jump sources: 119562 (46:5562)
+Function119471: ; 119471 (46:5471)
+	push af
+	ld a, [hli]
+	ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct)
+	ld a, [hli]
+	ld [EnemyMoveType], a ; $c60b
+	ld a, [hli]
+	ld [EnemyMoveEffect], a ; $c609
+	ld a, [hli]
+	ld [EnemyMovePower], a ; $c60a
+	ld a, [hli]
+	ld [EnemyMoveAccuracy], a ; $c60c
+	ld a, [hli]
+	ld [EnemyMovePP], a ; $c60d
+	push hl
+	ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct)
+	cp $ff
+	jr z, .asm_1194a7
+	ld a, [EnemyMovePower] ; $c60a
+	cp $ff
+	jr z, .asm_1194a7
+	ld a, [EnemyMoveEffect] ; $c609
+	cp $ff
+	jr nz, .asm_1194a7
+	call Function119584
+	jr c, .asm_11950c
+	jr .asm_1194f0
+.asm_1194a7
+	ld hl, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+	ld de, EnemyMoveType ; $c60b
+	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, $cd49
+	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+.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, $cd49
+	ld de, EnemyMoveType ; $c60b
+.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, $cd49
+	ld de, EnemyMoveAnimation ; $c608 (aliases: EnemyMoveStruct)
+.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 [$cd50], a
+	ld a, l
+	ld [EnemyMoveAnimation], a ; $c608 (aliases: EnemyMoveStruct)
+	ld a, h
+	ld [EnemyMoveEffect], a ; $c609
+	ld de, $cd69
+	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
+	inc hl
+	inc hl
+	inc hl
+	inc hl
+	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, [$cd83]
+	cp c
+	jr nz, .asm_119576
+	ld a, [$cd84]
+	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, [$cd50]
+	and a
+	jr z, .asm_119571
+	ld a, $1a
+	ld [$cf66], 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 [$cf66], a
+	pop af
+	call Function1195c4
+	ret
+
+; known jump sources: 1194a0 (46:54a0)
+Function119584: ; 119584 (46:5584)
+	ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct)
+	ld b, a
+	ld a, [EnemyMoveType] ; $c60b
+	ld c, a
+	cp b
+	jr c, .asm_11959c
+	ld a, [$cd49]
+	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, [$cd49]
+	cp b
+	jr c, .asm_119595
+.asm_1195a2
+	ld a, [EnemyMovePower] ; $c60a
+	ld b, a
+	ld a, [EnemyMovePP] ; $c60d
+	ld c, a
+	cp b
+	jr c, .asm_1195ba
+	ld a, [$cd4b]
+	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, [$cd4b]
+	cp b
+	jr c, .asm_1195b3
+.asm_1195c0
+	scf
+	ret
+.asm_1195c2
+	and a
+	ret
+
+; known jump sources: 119580 (46:5580)
+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, $cc60
+	call CopyBytes
+	xor a
+	ld [de], a
+	ld a, [EnemyMoveAnimation] ; $c608 (aliases: EnemyMoveStruct)
+	ld l, a
+	ld a, [EnemyMoveEffect] ; $c609
+	ld h, a
+	ld de, $cd69
+	ld bc, $10
+	call CopyBytes
+	ret
+.asm_1195f3
+	ld a, $d8
+	jp Function118805
+
+; no known jump sources
+Function1195f8: ; 1195f8 (46:55f8)
+	ld a, $11
+	ld [$cd3c], a
+	ld a, $1c
+	ld [$cd45], a
+	ld a, $f
+	ld [$cd46], a
+	ld a, $14
+	ld [$cd47], a
+	call Function119e2e
+	jp Function119e2e
+
+; no known jump sources
+Function119612: ; 119612 (46:5612)
+	ld a, $14
+	ld [$cd3c], a
+	ld a, $1c
+	ld [$cd45], a
+	ld a, $10
+	ld [$cd46], a
+	ld a, $14
+	ld [$cd47], a
+	jp Function119e2e
+
+; no known jump sources
+Function119629: ; 119629 (46:5629)
+	call Function119ed8
+	ret c
+	ld a, $60
+	ld l, a
+	ld a, $cc
+	ld h, a
+	call Function118e39
+	ld a, $9
+	ld [$cd3c], a
+	ld a, $1c
+	ld [$cd45], a
+	ld a, $14
+	ld [$cd47], a
+	call Function119e2e
+
+; no known jump sources
+Function119648: ; 119648 (46:5648)
+	call Function119ed8
+	ret c
+	call DelayFrame
+	ld a, $8
+	ld [$cd3c], a
+	call Function119ed8
+	call Function118b24
+	ld de, Unkn1Pals ; $d000
+	ld bc, $1000
+	ld a, $2a
+	jp Function119e2b
+
+; no known jump sources
+Function119665: ; 119665 (46:5665)
+	ld a, $1a
+	ld [$cd3c], a
+	call Function119e2e
+
+; no known jump sources
+Function11966d: ; 11966d (46:566d)
+	call Function119ed8
+	ret c
+	ld a, [$cd47]
+	ld [$cf66], a
+	ld a, $a
+	ld [$c300], a
+	ret
+
+; no known jump sources
+Function11967d: ; 11967d (46:567d)
+	ld a, $18
+	ld [$cd3c], a
+	call Function119e2e
+
+; no known jump sources
+Function119685: ; 119685 (46:5685)
+	call Function119ed8
+	ret c
+	ld a, $14
+	ld [$cf66], a
+	ld a, $a
+	ld [$c300], a
+	ret
+
+; known jump sources: 119461 (46:5461)
+Function119694: ; 119694 (46:5694)
+	ld b, $0
+	ld hl, $56b8
+.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)
+
+INCBIN "baserom.gbc",$1196b8,$1196cd - $1196b8
+
+; known jump sources: 119468 (46:5468)
+Function1196cd: ; 1196cd (46:56cd)
+	ld de, $c719
+	call Function1196de
+	ld [$cd4a], a
+	inc de
+	call Function1196de
+	ld [$cd4b], a
+	ret
+
+; known jump sources: 1196d0 (46:56d0), 1196d7 (46:56d7)
+Function1196de: ; 1196de (46:56de)
+	ld a, [de]
+	inc de
+	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)
+
+INCBIN "baserom.gbc",$1196f2,$119d93 - $1196f2
+
+; no known jump sources
 Function119d93: ; 119d93 (46:5d93)
 	ld a, [rSVBK] ; $ff00+$70
 	push af
@@ -116250,8 +116737,77 @@
 	ret
 ; 119e2b (46:5e2b)
 
-INCBIN "baserom.gbc",$119e2b,$11a8fa - $119e2b
+; known jump sources: 118893 (46:4893), 1188b5 (46:48b5), 1188bd (46:48bd), 1188c5 (46:48c5), 1188e4 (46:48e4), 118b21 (46:4b21), 118e73 (46:4e73), 118e84 (46:4e84), 119662 (46:5662)
+Function119e2b: ; 119e2b (46:5e2b)
+	call Function3e32
 
+; known jump sources: 1187a7 (46:47a7), 118877 (46:4877), 118919 (46:4919), 118e7b (46:4e7b), 11960c (46:560c), 11960f (46:560f), 119626 (46:5626), 119645 (46:5645), 11966a (46:566a), 119682 (46:5682)
+Function119e2e: ; 119e2e (46:5e2e)
+	ld hl, $cf66
+	inc [hl]
+	ret
+; 119e33 (46:5e33)
+
+INCBIN "baserom.gbc",$119e33,$119eb4 - $119e33
+
+; known jump sources: 1188d9 (46:48d9), 118b33 (46:4b33)
+Function119eb4: ; 119eb4 (46:5eb4)
+	xor a
+	ld [$c3cc], a
+	ld de, $c3ac
+.asm_119ebb
+	ld a, [de]
+	inc de
+	ld [hli], a
+	and a
+	jr nz, .asm_119ebb
+	ret
+
+; known jump sources: 1188dc (46:48dc), 118b36 (46:4b36)
+Function119ec2: ; 119ec2 (46:5ec2)
+	ld a, $5
+	call GetSRAMBank
+	xor a
+	ld [$aa5c], a
+	ld de, $aa4c
+.asm_119ece
+	ld a, [de]
+	inc de
+	ld [hli], a
+	and a
+	jr nz, .asm_119ece
+	call CloseSRAM
+	ret
+
+; known jump sources: 118880 (46:4880), 118916 (46:4916), 118b17 (46:4b17), 118e7e (46:4e7e), 118e87 (46:4e87), 119629 (46:5629), 119648 (46:5648), 119654 (46:5654), 11966d (46:566d), 119685 (46:5685)
+Function119ed8: ; 119ed8 (46:5ed8)
+	ld a, [rSVBK] ; $ff00+$70
+	ld [$cd8c], a
+	ld a, $1
+	ld [rSVBK], a ; $ff00+$70
+	call Function119eee
+	ld a, [$cd8c]
+	ld [rSVBK], a ; $ff00+$70
+	ld a, $1
+	ld [hBGMapMode], a ; $ff00+$d4
+	ret
+
+; known jump sources: 119ee1 (46:5ee1)
+Function119eee: ; 119eee (46:5eee)
+	ld a, [$cd3c]
+	ld e, a
+	ld d, $0
+	ld hl, $5efd
+	add hl, de
+	add hl, de
+	ld a, [hli]
+	ld h, [hl]
+	ld l, a
+	jp [hl]
+; 119efd (46:5efd)
+
+INCBIN "baserom.gbc",$119efd,$11a8fa - $119efd
+
 Function11a8fa: ; 11a8fa
 	ld a, [$c31a]
 	ld e, a
@@ -116488,12 +117044,12 @@
 	ld [hConnectedMapWidth], a
 	ld a, $10
 	ld [$c3b7], a
-	ld hl, $683f
-	ld a, $23
+	ld hl, Function8e83f
+	ld a, BANK(Function8e83f)
 	ld e, $4
 	rst FarCall
-	ld hl, $683f
-	ld a, $23
+	ld hl, Function8e83f
+	ld a, BANK(Function8e83f)
 	ld e, $5
 	rst FarCall
 	ld hl, PlayerSDefLevel
@@ -122367,9 +122923,28 @@
 	ret
 ; 172eb9 (5c:6eb9)
 
-INCBIN "baserom.gbc",$172eb9,$17367f - $172eb9
+Function172eb9:
+	ld a, [rSVBK] ; $ff00+$70
+	push af
+	ld a, $5
+	ld [rSVBK], a ; $ff00+$70
+	ld hl, $6edf
+	ld de, Unkn1Pals ; $d000
+	ld bc, $40
+	call CopyBytes
+	ld hl, $6edf
+	ld de, BGPals ; $d080
+	ld bc, $40
+	call CopyBytes
+	call Function32f9
+	pop af
+	ld [rSVBK], a ; $ff00+$70
+	ret
+; 172edf (5c:6edf)
 
+INCBIN "baserom.gbc",$172edf,$17367f - $172edf
 
+
 SECTION "bank5D",ROMX,BANK[$5D]
 
 INCLUDE "text/phone/extra3.asm"
@@ -123287,9 +123862,7 @@
 	xor a
 	ld [rVBK], a
 	call EnableLCD
-	ld a, $41
-	ld hl, $4061
-	rst FarCall
+	callba Function104061
 	ret
 ; 17c083
 
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -161,6 +161,8 @@
 	ld a, $40
 	ld hl, $4dc0
 	rst FarCall
+
+Function8e8b: ; 8e8b
 	ld hl, $7311
 	jr nc, .asm_8e93
 	ld hl, $7309
--