summaryrefslogtreecommitdiff
path: root/asm/region_map.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/region_map.s')
-rw-r--r--asm/region_map.s3969
1 files changed, 3969 insertions, 0 deletions
diff --git a/asm/region_map.s b/asm/region_map.s
new file mode 100644
index 000000000..ce64bfa98
--- /dev/null
+++ b/asm/region_map.s
@@ -0,0 +1,3969 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FA8EC
+sub_80FA8EC: @ 80FA8EC
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_80FA904
+_080FA8F6:
+ bl sub_80FA940
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FA8F6
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FA8EC
+
+ thumb_func_start sub_80FA904
+sub_80FA904: @ 80FA904
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r3, _080FA928 @ =gUnknown_020388CC
+ str r0, [r3]
+ movs r2, 0x79
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0
+ mov r4, r12
+ strb r2, [r4]
+ adds r0, 0x78
+ strb r1, [r0]
+ ldr r3, [r3]
+ cmp r1, 0
+ bne _080FA930
+ ldr r0, _080FA92C @ =sub_80FAB78
+ b _080FA932
+ .align 2, 0
+_080FA928: .4byte gUnknown_020388CC
+_080FA92C: .4byte sub_80FAB78
+_080FA930:
+ ldr r0, _080FA93C @ =sub_80FAD04
+_080FA932:
+ str r0, [r3, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FA93C: .4byte sub_80FAD04
+ thumb_func_end sub_80FA904
+
+ thumb_func_start sub_80FA940
+sub_80FA940: @ 80FA940
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, _080FA95C @ =gUnknown_020388CC
+ ldr r0, [r0]
+ adds r0, 0x79
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _080FA952
+ b _080FAAE2
+_080FA952:
+ lsls r0, 2
+ ldr r1, _080FA960 @ =_080FA964
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FA95C: .4byte gUnknown_020388CC
+_080FA960: .4byte _080FA964
+ .align 2, 0
+_080FA964:
+ .4byte _080FA984
+ .4byte _080FA998
+ .4byte _080FA9AC
+ .4byte _080FA9BC
+ .4byte _080FA9D8
+ .4byte _080FA9F4
+ .4byte _080FAA38
+ .4byte _080FAAB4
+_080FA984:
+ ldr r0, _080FA990 @ =gUnknown_083E5DA0
+ ldr r1, _080FA994 @ =0x06008000
+ bl LZ77UnCompVram
+ b _080FAAF4
+ .align 2, 0
+_080FA990: .4byte gUnknown_083E5DA0
+_080FA994: .4byte 0x06008000
+_080FA998:
+ ldr r0, _080FA9A4 @ =gUnknown_083E6B04
+ ldr r1, _080FA9A8 @ =0x0600e000
+ bl LZ77UnCompVram
+ b _080FAAF4
+ .align 2, 0
+_080FA9A4: .4byte gUnknown_083E6B04
+_080FA9A8: .4byte 0x0600e000
+_080FA9AC:
+ ldr r0, _080FA9B8 @ =gUnknown_083E5D60
+ movs r1, 0x70
+ movs r2, 0x60
+ bl LoadPalette
+ b _080FAAF4
+ .align 2, 0
+_080FA9B8: .4byte gUnknown_083E5D60
+_080FA9BC:
+ ldr r0, _080FA9D0 @ =gUnknown_083E5AF0
+ ldr r1, _080FA9D4 @ =gUnknown_020388CC
+ ldr r1, [r1]
+ movs r2, 0xC0
+ lsls r2, 1
+ adds r1, r2
+ bl LZ77UnCompWram
+ b _080FAAF4
+ .align 2, 0
+_080FA9D0: .4byte gUnknown_083E5AF0
+_080FA9D4: .4byte gUnknown_020388CC
+_080FA9D8:
+ ldr r0, _080FA9EC @ =gUnknown_083E5B34
+ ldr r1, _080FA9F0 @ =gUnknown_020388CC
+ ldr r1, [r1]
+ movs r3, 0xA0
+ lsls r3, 2
+ adds r1, r3
+ bl LZ77UnCompWram
+ b _080FAAF4
+ .align 2, 0
+_080FA9EC: .4byte gUnknown_083E5B34
+_080FA9F0: .4byte gUnknown_020388CC
+_080FA9F4:
+ bl sub_80FB32C
+ ldr r4, _080FAA34 @ =gUnknown_020388CC
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x54
+ ldrh r1, [r0]
+ adds r0, 0x20
+ strh r1, [r0]
+ subs r0, 0x1E
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x76
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ bl sub_80FB758
+ ldr r1, [r4]
+ strb r0, [r1, 0x16]
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x14]
+ bl sub_80FB9C0
+ adds r1, r0, 0
+ ldr r0, [r4]
+ strh r1, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+ b _080FAAF4
+ .align 2, 0
+_080FAA34: .4byte gUnknown_020388CC
+_080FAA38:
+ ldr r0, _080FAA60 @ =gUnknown_020388CC
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x78
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _080FAA64
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80FB170
+ b _080FAAF4
+ .align 2, 0
+_080FAA60: .4byte gUnknown_020388CC
+_080FAA64:
+ adds r1, r4, 0
+ adds r1, 0x54
+ ldrh r0, [r1]
+ lsls r0, 3
+ subs r0, 0x34
+ adds r2, r4, 0
+ adds r2, 0x5C
+ movs r3, 0
+ strh r0, [r2]
+ movs r5, 0x56
+ adds r5, r4
+ mov r12, r5
+ ldrh r0, [r5]
+ lsls r0, 3
+ subs r0, 0x44
+ adds r5, r4, 0
+ adds r5, 0x5E
+ strh r0, [r5]
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ mov r0, r12
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x66
+ strh r1, [r0]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r2, 0x80
+ str r2, [sp]
+ str r2, [sp, 0x4]
+ str r3, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ b _080FAAF4
+_080FAAB4:
+ bl sub_80FBA18
+ bl sub_80FB260
+ ldr r2, _080FAAE8 @ =gUnknown_020388CC
+ ldr r0, [r2]
+ movs r1, 0
+ str r1, [r0, 0x1C]
+ str r1, [r0, 0x20]
+ adds r0, 0x7A
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r0, 0x7E
+ strb r1, [r0]
+ ldr r1, _080FAAEC @ =REG_BG2CNT
+ ldr r3, _080FAAF0 @ =0x0000bc8a
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r1, [r2]
+ adds r1, 0x79
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080FAAE2:
+ movs r0, 0
+ b _080FAB02
+ .align 2, 0
+_080FAAE8: .4byte gUnknown_020388CC
+_080FAAEC: .4byte REG_BG2CNT
+_080FAAF0: .4byte 0x0000bc8a
+_080FAAF4:
+ ldr r0, _080FAB0C @ =gUnknown_020388CC
+ ldr r1, [r0]
+ adds r1, 0x79
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+_080FAB02:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAB0C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FA940
+
+ thumb_func_start sub_80FAB10
+sub_80FAB10: @ 80FAB10
+ push {r4,lr}
+ ldr r4, _080FAB5C @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080FAB34
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FAB34:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x20]
+ cmp r0, 0
+ beq _080FAB54
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x70
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x72
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FAB54:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FAB5C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAB10
+
+ thumb_func_start sub_80FAB60
+sub_80FAB60: @ 80FAB60
+ push {lr}
+ ldr r0, _080FAB74 @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldr r0, [r0, 0x18]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAB74: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAB60
+
+ thumb_func_start sub_80FAB78
+sub_80FAB78: @ 80FAB78
+ push {r4,lr}
+ movs r4, 0
+ ldr r2, _080FAC14 @ =gUnknown_020388CC
+ ldr r0, [r2]
+ adds r0, 0x7B
+ strb r4, [r0]
+ ldr r0, [r2]
+ adds r0, 0x7C
+ strb r4, [r0]
+ ldr r3, _080FAC18 @ =gMain
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABAA
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ cmp r0, 0x2
+ bls _080FABAA
+ adds r1, 0x7C
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABAA:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABC8
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x56
+ ldrh r0, [r0]
+ cmp r0, 0xF
+ bhi _080FABC8
+ adds r1, 0x7C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABC8:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FABE6
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _080FABE6
+ adds r1, 0x7B
+ movs r0, 0xFF
+ strb r0, [r1]
+ movs r4, 0x1
+_080FABE6:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAC04
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ cmp r0, 0x1B
+ bhi _080FAC04
+ adds r1, 0x7B
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0x1
+_080FAC04:
+ ldrh r3, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _080FAC1C
+ movs r4, 0x4
+ b _080FAC26
+ .align 2, 0
+_080FAC14: .4byte gUnknown_020388CC
+_080FAC18: .4byte gMain
+_080FAC1C:
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _080FAC26
+ movs r4, 0x5
+_080FAC26:
+ cmp r4, 0x1
+ bne _080FAC38
+ ldr r0, [r2]
+ adds r0, 0x7A
+ movs r1, 0x4
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldr r0, _080FAC40 @ =_swiopen
+ str r0, [r1, 0x18]
+_080FAC38:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAC40: .4byte _swiopen
+ thumb_func_end sub_80FAB78
+
+ thumb_func_start _swiopen
+_swiopen: @ 80FAC44
+ push {r4,r5,lr}
+ ldr r5, _080FAC5C @ =gUnknown_020388CC
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7A
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _080FAC60
+ movs r0, 0x2
+ b _080FACFA
+ .align 2, 0
+_080FAC5C: .4byte gUnknown_020388CC
+_080FAC60:
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080FAC76
+ adds r1, 0x54
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080FAC76:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FAC8E
+ adds r1, 0x54
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_080FAC8E:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080FACA6
+ adds r1, 0x56
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080FACA6:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FACBE
+ adds r1, 0x56
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+_080FACBE:
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ adds r1, 0x56
+ ldrh r1, [r1]
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80FB758
+ ldr r1, [r5]
+ strb r0, [r1, 0x16]
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x14]
+ cmp r4, r1
+ beq _080FACEE
+ strh r4, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+_080FACEE:
+ bl sub_80FBA18
+ ldr r1, [r5]
+ ldr r0, _080FAD00 @ =sub_80FAB78
+ str r0, [r1, 0x18]
+ movs r0, 0x3
+_080FACFA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FAD00: .4byte sub_80FAB78
+ thumb_func_end _swiopen
+
+ thumb_func_start sub_80FAD04
+sub_80FAD04: @ 80FAD04
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r3, _080FADD4 @ =gUnknown_020388CC
+ ldr r0, [r3]
+ mov r12, r0
+ adds r0, 0x6A
+ strh r4, [r0]
+ mov r5, r12
+ adds r5, 0x68
+ strh r4, [r5]
+ ldr r2, _080FADD8 @ =gMain
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _080FAD3E
+ mov r0, r12
+ adds r0, 0x5E
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x34
+ negs r0, r0
+ cmp r1, r0
+ ble _080FAD3E
+ ldr r0, _080FADDC @ =0x0000ffff
+ strh r0, [r5]
+ movs r4, 0x1
+_080FAD3E:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAD5E
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x5E
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, 0x3B
+ bgt _080FAD5E
+ adds r1, 0x68
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r4, 0x1
+_080FAD5E:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FAD84
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ movs r0, 0x2C
+ negs r0, r0
+ cmp r1, r0
+ ble _080FAD84
+ adds r1, r2, 0
+ adds r1, 0x6A
+ ldr r0, _080FADDC @ =0x0000ffff
+ strh r0, [r1]
+ movs r4, 0x1
+_080FAD84:
+ ldrh r1, [r3, 0x2C]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080FADA4
+ ldr r1, [r6]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0xAB
+ bgt _080FADA4
+ adds r1, 0x6A
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r4, 0x1
+_080FADA4:
+ ldrh r2, [r3, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080FADB0
+ movs r4, 0x4
+_080FADB0:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _080FADBA
+ movs r4, 0x5
+_080FADBA:
+ cmp r4, 0x1
+ bne _080FADCA
+ ldr r0, [r6]
+ ldr r1, _080FADE0 @ =sub_80FADE4
+ str r1, [r0, 0x18]
+ adds r0, 0x6C
+ movs r1, 0
+ strh r1, [r0]
+_080FADCA:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FADD4: .4byte gUnknown_020388CC
+_080FADD8: .4byte gMain
+_080FADDC: .4byte 0x0000ffff
+_080FADE0: .4byte sub_80FADE4
+ thumb_func_end sub_80FAD04
+
+ thumb_func_start sub_80FADE4
+sub_80FADE4: @ 80FADE4
+ push {r4,r5,lr}
+ ldr r5, _080FAEB4 @ =gUnknown_020388CC
+ ldr r2, [r5]
+ adds r3, r2, 0
+ adds r3, 0x5E
+ adds r0, r2, 0
+ adds r0, 0x68
+ ldrh r0, [r0]
+ ldrh r1, [r3]
+ adds r0, r1
+ strh r0, [r3]
+ adds r1, r2, 0
+ adds r1, 0x5C
+ adds r0, r2, 0
+ adds r0, 0x6A
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ movs r2, 0
+ ldrsh r1, [r3, r2]
+ bl sub_80FB238
+ ldr r2, [r5]
+ adds r1, r2, 0
+ adds r1, 0x6C
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bne _080FAEBC
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r0, r1, 0
+ adds r0, 0x2C
+ cmp r0, 0
+ bge _080FAE3C
+ adds r0, 0x7
+_080FAE3C:
+ asrs r0, 3
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ adds r0, r1, 0
+ adds r0, 0x34
+ cmp r0, 0
+ bge _080FAE56
+ adds r0, 0x7
+_080FAE56:
+ asrs r0, 3
+ adds r0, 0x2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r4, r2, 0
+ adds r4, 0x64
+ adds r0, r2, 0
+ adds r0, 0x66
+ ldrh r2, [r4]
+ cmp r3, r2
+ bne _080FAE72
+ ldrh r2, [r0]
+ cmp r1, r2
+ beq _080FAEA0
+_080FAE72:
+ strh r3, [r4]
+ strh r1, [r0]
+ adds r0, r3, 0
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_80FB758
+ ldr r1, [r5]
+ strb r0, [r1, 0x16]
+ ldr r0, [r5]
+ ldrh r3, [r0, 0x14]
+ cmp r4, r3
+ beq _080FAE9C
+ strh r4, [r0, 0x14]
+ ldrh r1, [r0, 0x14]
+ movs r2, 0x10
+ bl sub_80FBFB4
+_080FAE9C:
+ bl sub_80FBA18
+_080FAEA0:
+ ldr r0, _080FAEB4 @ =gUnknown_020388CC
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x6C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _080FAEB8 @ =sub_80FAD04
+ str r0, [r2, 0x18]
+ movs r0, 0x3
+ b _080FAEBE
+ .align 2, 0
+_080FAEB4: .4byte gUnknown_020388CC
+_080FAEB8: .4byte sub_80FAD04
+_080FAEBC:
+ movs r0, 0x2
+_080FAEBE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FADE4
+
+ thumb_func_start sub_80FAEC4
+sub_80FAEC4: @ 80FAEC4
+ push {r4-r6,lr}
+ ldr r1, _080FAF40 @ =gUnknown_020388CC
+ ldr r2, [r1]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r3, [r0]
+ adds r5, r1, 0
+ cmp r3, 0
+ bne _080FAF48
+ subs r0, 0x1A
+ strh r3, [r0]
+ subs r0, 0x2
+ strh r3, [r0]
+ str r3, [r2, 0x40]
+ str r3, [r2, 0x3C]
+ adds r4, r2, 0
+ adds r4, 0x54
+ ldrh r0, [r4]
+ lsls r0, 3
+ subs r0, 0x34
+ adds r1, r2, 0
+ adds r1, 0x60
+ strh r0, [r1]
+ movs r0, 0x56
+ adds r0, r2
+ mov r12, r0
+ ldrh r0, [r0]
+ lsls r0, 3
+ subs r0, 0x44
+ adds r3, r2, 0
+ adds r3, 0x62
+ strh r0, [r3]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ lsls r0, 8
+ cmp r0, 0
+ bge _080FAF10
+ adds r0, 0xF
+_080FAF10:
+ asrs r0, 4
+ str r0, [r2, 0x44]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 8
+ cmp r0, 0
+ bge _080FAF20
+ adds r0, 0xF
+_080FAF20:
+ asrs r0, 4
+ str r0, [r2, 0x48]
+ ldrh r1, [r4]
+ adds r0, r2, 0
+ adds r0, 0x64
+ strh r1, [r0]
+ mov r3, r12
+ ldrh r0, [r3]
+ adds r1, r2, 0
+ adds r1, 0x66
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 9
+ str r0, [r2, 0x4C]
+ ldr r0, _080FAF44 @ =0xfffff800
+ b _080FAFA6
+ .align 2, 0
+_080FAF40: .4byte gUnknown_020388CC
+_080FAF44: .4byte 0xfffff800
+_080FAF48:
+ adds r0, r2, 0
+ adds r0, 0x5C
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ lsls r0, 8
+ str r0, [r2, 0x3C]
+ adds r0, r2, 0
+ adds r0, 0x5E
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r0, 8
+ str r0, [r2, 0x40]
+ adds r0, r2, 0
+ adds r0, 0x60
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, [r2, 0x3C]
+ cmp r0, 0
+ bge _080FAF74
+ adds r0, 0xF
+_080FAF74:
+ asrs r0, 4
+ negs r0, r0
+ str r0, [r2, 0x44]
+ ldr r0, [r2, 0x40]
+ cmp r0, 0
+ bge _080FAF82
+ adds r0, 0xF
+_080FAF82:
+ asrs r0, 4
+ negs r0, r0
+ str r0, [r2, 0x48]
+ adds r0, r2, 0
+ adds r0, 0x64
+ ldrh r1, [r0]
+ subs r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x12
+ ldrh r0, [r0]
+ adds r1, r2, 0
+ adds r1, 0x56
+ strh r0, [r1]
+ movs r0, 0x80
+ lsls r0, 8
+ str r0, [r2, 0x4C]
+ movs r0, 0x80
+ lsls r0, 4
+_080FAFA6:
+ str r0, [r2, 0x50]
+ ldr r0, [r5]
+ adds r0, 0x6E
+ movs r1, 0
+ strh r1, [r0]
+ bl sub_80FBCA0
+ bl sub_80FBDF8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FAEC4
+
+ thumb_func_start sub_80FAFC0
+sub_80FAFC0: @ 80FAFC0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r0, _080FAFD8 @ =gUnknown_020388CC
+ ldr r3, [r0]
+ adds r2, r3, 0
+ adds r2, 0x6E
+ ldrh r1, [r2]
+ adds r5, r0, 0
+ cmp r1, 0xF
+ bls _080FAFDC
+ movs r0, 0
+ b _080FB164
+ .align 2, 0
+_080FAFD8: .4byte gUnknown_020388CC
+_080FAFDC:
+ adds r0, r1, 0x1
+ movs r1, 0
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bne _080FB050
+ str r1, [r3, 0x44]
+ str r1, [r3, 0x48]
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r1, [r0]
+ subs r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x6
+ ldrh r0, [r0]
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ adds r1, 0x1A
+ ldrb r0, [r1]
+ movs r2, 0x80
+ lsls r2, 9
+ cmp r0, 0
+ bne _080FB012
+ movs r2, 0x80
+ lsls r2, 8
+_080FB012:
+ str r2, [r3, 0x4C]
+ movs r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080FB01E
+ movs r2, 0x1
+_080FB01E:
+ strb r2, [r1]
+ ldr r1, [r5]
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ ldr r2, _080FB048 @ =sub_80FAD04
+ cmp r0, 0
+ bne _080FB030
+ ldr r2, _080FB04C @ =sub_80FAB78
+_080FB030:
+ str r2, [r1, 0x18]
+ adds r0, r1, 0
+ adds r0, 0x58
+ ldrh r0, [r0]
+ adds r1, 0x5A
+ ldrh r1, [r1]
+ bl sub_80FBB3C
+ bl sub_80FBE24
+ movs r4, 0
+ b _080FB132
+ .align 2, 0
+_080FB048: .4byte sub_80FAD04
+_080FB04C: .4byte sub_80FAB78
+_080FB050:
+ ldr r2, [r3, 0x3C]
+ ldr r0, [r3, 0x44]
+ adds r2, r0
+ str r2, [r3, 0x3C]
+ ldr r0, [r3, 0x40]
+ ldr r1, [r3, 0x48]
+ adds r0, r1
+ str r0, [r3, 0x40]
+ asrs r2, 8
+ adds r4, r3, 0
+ adds r4, 0x5C
+ strh r2, [r4]
+ ldr r0, [r3, 0x40]
+ asrs r0, 8
+ adds r1, r3, 0
+ adds r1, 0x5E
+ strh r0, [r1]
+ ldr r0, [r3, 0x4C]
+ ldr r1, [r3, 0x50]
+ adds r0, r1
+ str r0, [r3, 0x4C]
+ ldr r2, [r3, 0x44]
+ cmp r2, 0
+ bge _080FB090
+ adds r0, r3, 0
+ adds r0, 0x60
+ movs r6, 0
+ ldrsh r1, [r4, r6]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ blt _080FB0A4
+_080FB090:
+ cmp r2, 0
+ ble _080FB0B4
+ adds r0, r3, 0
+ adds r0, 0x60
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ ble _080FB0B4
+_080FB0A4:
+ ldr r3, [r5]
+ adds r0, r3, 0
+ adds r0, 0x60
+ ldrh r2, [r0]
+ subs r0, 0x4
+ movs r1, 0
+ strh r2, [r0]
+ str r1, [r3, 0x44]
+_080FB0B4:
+ ldr r2, [r5]
+ ldr r4, [r2, 0x48]
+ cmp r4, 0
+ bge _080FB0D0
+ adds r0, r2, 0
+ adds r0, 0x5E
+ adds r3, r2, 0
+ adds r3, 0x62
+ movs r6, 0
+ ldrsh r1, [r0, r6]
+ movs r6, 0
+ ldrsh r0, [r3, r6]
+ cmp r1, r0
+ blt _080FB0E8
+_080FB0D0:
+ cmp r4, 0
+ ble _080FB0FA
+ adds r1, r2, 0
+ adds r1, 0x5E
+ adds r0, r2, 0
+ adds r0, 0x62
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r1, r0
+ ble _080FB0FA
+_080FB0E8:
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x62
+ ldrh r1, [r0]
+ adds r3, r2, 0
+ adds r3, 0x5E
+ movs r0, 0
+ strh r1, [r3]
+ str r0, [r2, 0x48]
+_080FB0FA:
+ ldr r0, _080FB118 @ =gUnknown_020388CC
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080FB120
+ ldr r1, [r2, 0x4C]
+ ldr r0, _080FB11C @ =0x00007fff
+ cmp r1, r0
+ bgt _080FB130
+ adds r0, 0x1
+ str r0, [r2, 0x4C]
+ str r3, [r2, 0x50]
+ b _080FB130
+ .align 2, 0
+_080FB118: .4byte gUnknown_020388CC
+_080FB11C: .4byte 0x00007fff
+_080FB120:
+ ldr r0, [r2, 0x4C]
+ movs r1, 0x80
+ lsls r1, 9
+ cmp r0, r1
+ ble _080FB130
+ str r1, [r2, 0x4C]
+ movs r0, 0
+ str r0, [r2, 0x50]
+_080FB130:
+ movs r4, 0x1
+_080FB132:
+ ldr r0, _080FB16C @ =gUnknown_020388CC
+ ldr r3, [r0]
+ adds r0, r3, 0
+ adds r0, 0x5C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r1, r3, 0
+ adds r1, 0x5E
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, [r3, 0x4C]
+ lsls r2, 8
+ lsrs r2, 16
+ str r2, [sp]
+ ldr r2, [r3, 0x4C]
+ lsls r2, 8
+ lsrs r2, 16
+ str r2, [sp, 0x4]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ adds r0, r4, 0
+_080FB164:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FB16C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FAFC0
+
+ thumb_func_start sub_80FB170
+sub_80FB170: @ 80FB170
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, [sp, 0x24]
+ ldr r7, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ lsls r4, 16
+ lsrs r4, 16
+ mov r8, r4
+ lsls r7, 16
+ adds r4, r7, 0
+ lsrs r4, 16
+ mov r9, r4
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _080FB230 @ =gUnknown_020388CC
+ ldr r6, [r4]
+ ldr r7, _080FB234 @ =gSineTable
+ mov r12, r7
+ adds r4, r5, 0
+ adds r4, 0x40
+ lsls r4, 1
+ add r4, r12
+ movs r7, 0
+ ldrsh r4, [r4, r7]
+ str r4, [sp]
+ mov r7, r8
+ muls r7, r4
+ adds r4, r7, 0
+ asrs r4, 8
+ mov r10, r4
+ str r4, [r6, 0x2C]
+ lsls r5, 1
+ add r5, r12
+ movs r7, 0
+ ldrsh r5, [r5, r7]
+ negs r4, r5
+ mov r7, r8
+ muls r7, r4
+ adds r4, r7, 0
+ asrs r4, 8
+ mov r12, r4
+ str r4, [r6, 0x30]
+ mov r7, r9
+ muls r7, r5
+ adds r5, r7, 0
+ asrs r5, 8
+ str r5, [r6, 0x34]
+ ldr r7, [sp]
+ mov r4, r9
+ muls r4, r7
+ asrs r4, 8
+ mov r8, r4
+ str r4, [r6, 0x38]
+ lsls r0, 16
+ asrs r0, 8
+ lsls r2, 16
+ asrs r2, 16
+ lsls r4, r2, 8
+ adds r0, r4
+ lsls r3, 16
+ asrs r3, 16
+ adds r4, r3, 0
+ muls r4, r5
+ mov r5, r10
+ muls r5, r2
+ adds r4, r5
+ subs r0, r4
+ str r0, [r6, 0x24]
+ lsls r1, 16
+ asrs r1, 8
+ lsls r0, r3, 8
+ adds r1, r0
+ mov r0, r8
+ muls r0, r3
+ mov r3, r12
+ muls r3, r2
+ adds r2, r3, 0
+ adds r0, r2
+ subs r1, r0
+ str r1, [r6, 0x28]
+ adds r6, 0x7D
+ movs r0, 0x1
+ strb r0, [r6]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB230: .4byte gUnknown_020388CC
+_080FB234: .4byte gSineTable
+ thumb_func_end sub_80FB170
+
+ thumb_func_start sub_80FB238
+sub_80FB238: @ 80FB238
+ ldr r2, _080FB25C @ =gUnknown_020388CC
+ ldr r2, [r2]
+ lsls r0, 16
+ asrs r0, 8
+ movs r3, 0xE0
+ lsls r3, 5
+ adds r0, r3
+ str r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 8
+ movs r0, 0x90
+ lsls r0, 6
+ adds r1, r0
+ str r1, [r2, 0x28]
+ adds r2, 0x7D
+ movs r0, 0x1
+ strb r0, [r2]
+ bx lr
+ .align 2, 0
+_080FB25C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FB238
+
+ thumb_func_start sub_80FB260
+sub_80FB260: @ 80FB260
+ push {lr}
+ ldr r0, _080FB29C @ =gUnknown_020388CC
+ ldr r2, [r0]
+ adds r3, r2, 0
+ adds r3, 0x7D
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080FB298
+ ldr r1, _080FB2A0 @ =REG_BG2PA
+ ldr r0, [r2, 0x2C]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x34]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x30]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x38]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r2, 0x24]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r2, 0x28]
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r3]
+_080FB298:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB29C: .4byte gUnknown_020388CC
+_080FB2A0: .4byte REG_BG2PA
+ thumb_func_end sub_80FB260
+
+ thumb_func_start sub_80FB2A4
+sub_80FB2A4: @ 80FB2A4
+ push {r4,r5,lr}
+ sub sp, 0xC
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r1, 16
+ asrs r5, r1, 16
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x38
+ movs r3, 0x48
+ bl sub_80FB170
+ bl sub_80FB260
+ ldr r0, _080FB2E8 @ =gUnknown_020388CC
+ ldr r2, [r0]
+ ldr r1, [r2, 0x20]
+ cmp r1, 0
+ beq _080FB2E0
+ negs r0, r4
+ strh r0, [r1, 0x24]
+ ldr r1, [r2, 0x20]
+ negs r0, r5
+ strh r0, [r1, 0x26]
+_080FB2E0:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB2E8: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FB2A4
+
+ thumb_func_start sub_80FB2EC
+sub_80FB2EC: @ 80FB2EC
+ push {lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ ldr r0, _080FB30C @ =0xfffe0000
+ adds r1, r0
+ lsrs r2, r1, 16
+ cmp r2, 0xE
+ bhi _080FB306
+ cmp r3, 0
+ beq _080FB306
+ cmp r3, 0x1C
+ bls _080FB310
+_080FB306:
+ movs r0, 0x58
+ b _080FB324
+ .align 2, 0
+_080FB30C: .4byte 0xfffe0000
+_080FB310:
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r1, _080FB328 @ =gRegionMapSections
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3, r0
+ adds r0, r1
+ ldrb r0, [r0]
+_080FB324:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FB328: .4byte gRegionMapSections
+ thumb_func_end sub_80FB2EC
+
+ thumb_func_start sub_80FB32C
+sub_80FB32C: @ 80FB32C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080FB358 @ =gSaveBlock1
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ adds r2, r0, 0
+ cmp r1, 0x19
+ bne _080FB35C
+ ldrb r0, [r2, 0x5]
+ subs r0, 0x29
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080FB35C
+ bl sub_80FB600
+ b _080FB5E8
+ .align 2, 0
+_080FB358: .4byte gSaveBlock1
+_080FB35C:
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ movs r1, 0x5
+ ldrsb r1, [r2, r1]
+ bl get_map_light_level_by_bank_and_number
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x8
+ bhi _080FB3A4
+ lsls r0, 2
+ ldr r1, _080FB37C @ =_080FB380
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB37C: .4byte _080FB380
+ .align 2, 0
+_080FB380:
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3E0
+ .4byte _080FB3A4
+ .4byte _080FB3A4
+ .4byte _080FB3E0
+ .4byte _080FB464
+ .4byte _080FB428
+_080FB3A4:
+ ldr r4, _080FB3D4 @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldr r3, _080FB3D8 @ =gMapHeader
+ ldrb r1, [r3, 0x14]
+ movs r2, 0
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ strb r2, [r0]
+ ldr r0, [r3]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldr r0, _080FB3DC @ =gSaveBlock1
+ ldrh r6, [r0]
+ ldrh r3, [r0, 0x2]
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x45
+ beq _080FB3CC
+ b _080FB4CC
+_080FB3CC:
+ adds r1, 0x7F
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080FB4CC
+ .align 2, 0
+_080FB3D4: .4byte gUnknown_020388CC
+_080FB3D8: .4byte gMapHeader
+_080FB3DC: .4byte gSaveBlock1
+_080FB3E0:
+ ldr r4, _080FB420 @ =gSaveBlock1
+ adds r0, r4, 0
+ adds r0, 0x24
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r1, 0x25
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r0, _080FB424 @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldrb r1, [r2, 0x14]
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x28]
+ ldrh r3, [r4, 0x2A]
+ b _080FB4CC
+ .align 2, 0
+_080FB420: .4byte gSaveBlock1
+_080FB424: .4byte gUnknown_020388CC
+_080FB428:
+ ldr r4, _080FB45C @ =gSaveBlock1
+ movs r0, 0x14
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x15
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r0, _080FB460 @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldrb r1, [r2, 0x14]
+ strh r1, [r0, 0x14]
+ adds r0, 0x7F
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x18]
+ ldrh r3, [r4, 0x1A]
+ b _080FB4CC
+ .align 2, 0
+_080FB45C: .4byte gSaveBlock1
+_080FB460: .4byte gUnknown_020388CC
+_080FB464:
+ ldr r5, _080FB48C @ =gUnknown_020388CC
+ ldr r0, [r5]
+ ldr r1, _080FB490 @ =gMapHeader
+ ldrb r1, [r1, 0x14]
+ strh r1, [r0, 0x14]
+ cmp r1, 0x57
+ beq _080FB498
+ ldr r4, _080FB494 @ =gSaveBlock1 + 0x24
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ b _080FB4B6
+ .align 2, 0
+_080FB48C: .4byte gUnknown_020388CC
+_080FB490: .4byte gMapHeader
+_080FB494: .4byte gSaveBlock1 + 0x24
+_080FB498:
+ ldr r4, _080FB548 @ =gSaveBlock1 + 0x14
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ lsls r1, 16
+ lsrs r1, 16
+ bl get_mapheader_by_bank_and_number
+ adds r2, r0, 0
+ ldr r1, [r5]
+ ldrb r0, [r2, 0x14]
+ strh r0, [r1, 0x14]
+_080FB4B6:
+ ldr r0, _080FB54C @ =gUnknown_020388CC
+ ldr r0, [r0]
+ adds r0, 0x7F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldrh r2, [r0]
+ ldrh r0, [r0, 0x4]
+ mov r8, r0
+ ldrh r6, [r4, 0x4]
+ ldrh r3, [r4, 0x6]
+_080FB4CC:
+ mov r9, r6
+ ldr r4, _080FB54C @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldrh r5, [r0, 0x14]
+ lsls r0, r5, 3
+ ldr r1, _080FB550 @ =gRegionMapLocations
+ adds r0, r1
+ mov r10, r0
+ ldrb r7, [r0, 0x2]
+ adds r0, r2, 0
+ adds r1, r7, 0
+ str r3, [sp]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r3, [sp]
+ cmp r1, 0
+ bne _080FB4F4
+ movs r1, 0x1
+_080FB4F4:
+ adds r0, r6, 0
+ str r3, [sp]
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ cmp r6, r7
+ bcc _080FB50C
+ subs r0, r7, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB50C:
+ mov r2, r10
+ ldrb r4, [r2, 0x3]
+ mov r0, r8
+ adds r1, r4, 0
+ str r3, [sp]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r3, [sp]
+ cmp r1, 0
+ bne _080FB526
+ movs r1, 0x1
+_080FB526:
+ adds r0, r3, 0
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ bcc _080FB53A
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+_080FB53A:
+ cmp r5, 0x24
+ beq _080FB59C
+ cmp r5, 0x24
+ bgt _080FB554
+ cmp r5, 0x1D
+ beq _080FB55E
+ b _080FB5BE
+ .align 2, 0
+_080FB548: .4byte gSaveBlock1 + 0x14
+_080FB54C: .4byte gUnknown_020388CC
+_080FB550: .4byte gRegionMapLocations
+_080FB554:
+ cmp r5, 0x29
+ beq _080FB566
+ cmp r5, 0x33
+ beq _080FB566
+ b _080FB5BE
+_080FB55E:
+ cmp r3, 0
+ beq _080FB5BE
+ movs r6, 0
+ b _080FB5BE
+_080FB566:
+ movs r6, 0
+ ldr r1, _080FB598 @ =gSaveBlock1
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ ble _080FB574
+ movs r6, 0x1
+_080FB574:
+ cmp r0, 0x33
+ ble _080FB57E
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB57E:
+ movs r3, 0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x25
+ ble _080FB58A
+ movs r3, 0x1
+_080FB58A:
+ cmp r0, 0x38
+ ble _080FB5BE
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ b _080FB5BE
+ .align 2, 0
+_080FB598: .4byte gSaveBlock1
+_080FB59C:
+ movs r6, 0
+ mov r0, r9
+ cmp r0, 0xE
+ bls _080FB5A6
+ movs r6, 0x1
+_080FB5A6:
+ mov r1, r9
+ cmp r1, 0x1C
+ bls _080FB5B2
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB5B2:
+ mov r2, r9
+ cmp r2, 0x36
+ bls _080FB5BE
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FB5BE:
+ ldr r0, _080FB5F8 @ =gUnknown_020388CC
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ ldr r1, _080FB5FC @ =gRegionMapLocations
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r6, r0
+ adds r0, 0x1
+ adds r1, r2, 0
+ adds r1, 0x54
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ ldr r1, _080FB5FC @ =gRegionMapLocations
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ adds r0, r3, r0
+ adds r0, 0x2
+ adds r2, 0x56
+ strh r0, [r2]
+_080FB5E8:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB5F8: .4byte gUnknown_020388CC
+_080FB5FC: .4byte gRegionMapLocations
+ thumb_func_end sub_80FB32C
+
+ thumb_func_start sub_80FB600
+sub_80FB600: @ 80FB600
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ mov r4, sp
+ adds r4, 0x1
+ mov r5, sp
+ adds r5, 0x2
+ add r6, sp, 0x4
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_810D9EC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r5
+ cmp r0, 0x4
+ bhi _080FB694
+ lsls r0, 2
+ ldr r1, _080FB63C @ =_080FB640
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB63C: .4byte _080FB640
+ .align 2, 0
+_080FB640:
+ .4byte _080FB694
+ .4byte _080FB654
+ .4byte _080FB664
+ .4byte _080FB674
+ .4byte _080FB684
+_080FB654:
+ ldr r2, _080FB660 @ =gUnknown_020388CC
+ ldr r1, [r2]
+ movs r0, 0x8
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB660: .4byte gUnknown_020388CC
+_080FB664:
+ ldr r2, _080FB670 @ =gUnknown_020388CC
+ ldr r1, [r2]
+ movs r0, 0xC
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB670: .4byte gUnknown_020388CC
+_080FB674:
+ ldr r2, _080FB680 @ =gUnknown_020388CC
+ ldr r1, [r2]
+ movs r0, 0x27
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB680: .4byte gUnknown_020388CC
+_080FB684:
+ ldr r2, _080FB690 @ =gUnknown_020388CC
+ ldr r1, [r2]
+ movs r0, 0x2E
+ strh r0, [r1, 0x14]
+ b _080FB710
+ .align 2, 0
+_080FB690: .4byte gUnknown_020388CC
+_080FB694:
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r4]
+ bl get_mapheader_by_bank_and_number
+ ldr r1, _080FB750 @ =gUnknown_020388CC
+ mov r9, r1
+ ldr r2, [r1]
+ ldrb r1, [r0, 0x14]
+ strh r1, [r2, 0x14]
+ ldr r6, [r0]
+ ldr r1, _080FB754 @ =gRegionMapLocations
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r4, [r5, 0x2]
+ ldr r0, [r6]
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FB6C6
+ movs r1, 0x1
+_080FB6C6:
+ mov r2, r10
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ cmp r8, r4
+ bcc _080FB6E2
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_080FB6E2:
+ ldrb r4, [r5, 0x3]
+ ldr r0, [r6, 0x4]
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _080FB6F6
+ movs r1, 0x1
+_080FB6F6:
+ mov r2, sp
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r2, r9
+ cmp r7, r4
+ bcc _080FB710
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080FB710:
+ ldr r0, [r2]
+ adds r0, 0x7F
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, [r2]
+ ldr r3, _080FB754 @ =gRegionMapLocations
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0]
+ add r0, r8
+ adds r0, 0x1
+ adds r1, r2, 0
+ adds r1, 0x54
+ strh r0, [r1]
+ ldrh r0, [r2, 0x14]
+ lsls r0, 3
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ adds r0, r7, r0
+ adds r0, 0x2
+ adds r2, 0x56
+ strh r0, [r2]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FB750: .4byte gUnknown_020388CC
+_080FB754: .4byte gRegionMapLocations
+ thumb_func_end sub_80FB600
+
+ thumb_func_start sub_80FB758
+sub_80FB758: @ 80FB758
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x58
+ bls _080FB764
+ b _080FB9A0
+_080FB764:
+ lsls r0, 2
+ ldr r1, _080FB770 @ =_080FB774
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FB770: .4byte _080FB774
+ .align 2, 0
+_080FB774:
+ .4byte _080FB8DC
+ .4byte _080FB8E4
+ .4byte _080FB8EA
+ .4byte _080FB8F4
+ .4byte _080FB8FC
+ .4byte _080FB904
+ .4byte _080FB90C
+ .4byte _080FB914
+ .4byte _080FB91C
+ .4byte _080FB924
+ .4byte _080FB92C
+ .4byte _080FB934
+ .4byte _080FB93C
+ .4byte _080FB944
+ .4byte _080FB94C
+ .4byte _080FB954
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB96C
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB988
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB9A0
+ .4byte _080FB8D8
+_080FB8D8:
+ movs r0, 0
+ b _080FB9A2
+_080FB8DC:
+ ldr r0, _080FB8E0 @ =0x0000080f
+ b _080FB956
+ .align 2, 0
+_080FB8E0: .4byte 0x0000080f
+_080FB8E4:
+ movs r0, 0x81
+ lsls r0, 4
+ b _080FB956
+_080FB8EA:
+ ldr r0, _080FB8F0 @ =0x00000811
+ b _080FB956
+ .align 2, 0
+_080FB8F0: .4byte 0x00000811
+_080FB8F4:
+ ldr r0, _080FB8F8 @ =0x00000812
+ b _080FB956
+ .align 2, 0
+_080FB8F8: .4byte 0x00000812
+_080FB8FC:
+ ldr r0, _080FB900 @ =0x00000813
+ b _080FB956
+ .align 2, 0
+_080FB900: .4byte 0x00000813
+_080FB904:
+ ldr r0, _080FB908 @ =0x00000814
+ b _080FB956
+ .align 2, 0
+_080FB908: .4byte 0x00000814
+_080FB90C:
+ ldr r0, _080FB910 @ =0x00000815
+ b _080FB956
+ .align 2, 0
+_080FB910: .4byte 0x00000815
+_080FB914:
+ ldr r0, _080FB918 @ =0x00000816
+ b _080FB956
+ .align 2, 0
+_080FB918: .4byte 0x00000816
+_080FB91C:
+ ldr r0, _080FB920 @ =0x00000817
+ b _080FB956
+ .align 2, 0
+_080FB920: .4byte 0x00000817
+_080FB924:
+ ldr r0, _080FB928 @ =0x00000818
+ b _080FB956
+ .align 2, 0
+_080FB928: .4byte 0x00000818
+_080FB92C:
+ ldr r0, _080FB930 @ =0x00000819
+ b _080FB956
+ .align 2, 0
+_080FB930: .4byte 0x00000819
+_080FB934:
+ ldr r0, _080FB938 @ =0x0000081a
+ b _080FB956
+ .align 2, 0
+_080FB938: .4byte 0x0000081a
+_080FB93C:
+ ldr r0, _080FB940 @ =0x0000081b
+ b _080FB956
+ .align 2, 0
+_080FB940: .4byte 0x0000081b
+_080FB944:
+ ldr r0, _080FB948 @ =0x0000081c
+ b _080FB956
+ .align 2, 0
+_080FB948: .4byte 0x0000081c
+_080FB94C:
+ ldr r0, _080FB950 @ =0x0000081d
+ b _080FB956
+ .align 2, 0
+_080FB950: .4byte 0x0000081d
+_080FB954:
+ ldr r0, _080FB968 @ =0x0000081e
+_080FB956:
+ bl FlagGet
+ lsls r0, 24
+ movs r1, 0x3
+ cmp r0, 0
+ beq _080FB964
+ movs r1, 0x2
+_080FB964:
+ adds r0, r1, 0
+ b _080FB9A2
+ .align 2, 0
+_080FB968: .4byte 0x0000081e
+_080FB96C:
+ ldr r0, _080FB984 @ =0x00000848
+ bl FlagGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ asrs r0, 31
+ movs r1, 0x4
+ ands r0, r1
+ b _080FB9A2
+ .align 2, 0
+_080FB984: .4byte 0x00000848
+_080FB988:
+ ldr r0, _080FB99C @ =0x00000849
+ bl FlagGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _080FB9A2
+ .align 2, 0
+_080FB99C: .4byte 0x00000849
+_080FB9A0:
+ movs r0, 0x1
+_080FB9A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB758
+
+ thumb_func_start sub_80FB9A8
+sub_80FB9A8: @ 80FB9A8
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80FB2EC
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB9A8
+
+ thumb_func_start sub_80FB9C0
+sub_80FB9C0: @ 80FB9C0
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r0, _080FB9E8 @ =gUnknown_083E7684
+ ldrh r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x58
+ beq _080FB9FC
+ adds r5, r4, 0
+ adds r6, r4, 0x2
+_080FB9D6:
+ lsls r1, r2, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _080FB9EC
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ b _080FB9FE
+ .align 2, 0
+_080FB9E8: .4byte gUnknown_083E7684
+_080FB9EC:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 2
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _080FB9D6
+_080FB9FC:
+ adds r0, r3, 0
+_080FB9FE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FB9C0
+
+ thumb_func_start sub_80FBA04
+sub_80FBA04: @ 80FBA04
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80FB9C0
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBA04
+
+ thumb_func_start sub_80FBA18
+sub_80FBA18: @ 80FBA18
+ push {r4-r6,lr}
+ ldr r0, _080FBA2C @ =gUnknown_020388CC
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x14]
+ cmp r0, 0x58
+ bne _080FBA30
+ movs r0, 0
+ strb r0, [r1, 0x17]
+ b _080FBA96
+ .align 2, 0
+_080FBA2C: .4byte gUnknown_020388CC
+_080FBA30:
+ adds r0, r1, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FBA40
+ adds r0, r1, 0
+ adds r0, 0x54
+ b _080FBA44
+_080FBA40:
+ adds r0, r1, 0
+ adds r0, 0x64
+_080FBA44:
+ ldrh r4, [r0]
+ adds r0, 0x2
+ ldrh r5, [r0]
+ movs r6, 0
+ b _080FBA70
+_080FBA4E:
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FB2EC
+ ldr r1, _080FBA8C @ =gUnknown_020388CC
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x14]
+ cmp r0, r1
+ bne _080FBA70
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080FBA70:
+ cmp r4, 0x1
+ bhi _080FBA4E
+ adds r0, r5, 0
+ bl sub_80FBAA0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FBA90
+ subs r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r4, 0x1D
+ b _080FBA70
+ .align 2, 0
+_080FBA8C: .4byte gUnknown_020388CC
+_080FBA90:
+ ldr r0, _080FBA9C @ =gUnknown_020388CC
+ ldr r0, [r0]
+ strb r6, [r0, 0x17]
+_080FBA96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBA9C: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBA18
+
+ thumb_func_start sub_80FBAA0
+sub_80FBAA0: @ 80FBAA0
+ push {r4,r5,lr}
+ lsls r0, 16
+ ldr r1, _080FBAB4 @ =0xffff0000
+ adds r0, r1
+ lsrs r5, r0, 16
+ ldr r0, _080FBAB8 @ =0x0000ffff
+ cmp r5, r0
+ bne _080FBAC0
+ b _080FBAE2
+ .align 2, 0
+_080FBAB4: .4byte 0xffff0000
+_080FBAB8: .4byte 0x0000ffff
+_080FBABC:
+ movs r0, 0x1
+ b _080FBAE4
+_080FBAC0:
+ movs r4, 0x1
+_080FBAC2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80FB2EC
+ ldr r1, _080FBAEC @ =gUnknown_020388CC
+ ldr r1, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1, 0x14]
+ cmp r0, r1
+ beq _080FBABC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1C
+ bls _080FBAC2
+_080FBAE2:
+ movs r0, 0
+_080FBAE4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FBAEC: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBAA0
+
+ thumb_func_start sub_80FBAF0
+sub_80FBAF0: @ 80FBAF0
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r0, _080FBB34 @ =gUnknown_020388CC
+ ldr r1, [r0]
+ adds r3, r1, 0
+ adds r3, 0x7A
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r0, 0
+ beq _080FBB2E
+ adds r0, r1, 0
+ adds r0, 0x7B
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r4, [r2, 0x20]
+ adds r0, r4
+ strh r0, [r2, 0x20]
+ adds r0, r1, 0
+ adds r0, 0x7C
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r1, [r2, 0x22]
+ adds r0, r1
+ strh r0, [r2, 0x22]
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+_080FBB2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBB34: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBAF0
+
+ thumb_func_start nullsub_66
+nullsub_66: @ 80FBB38
+ bx lr
+ thumb_func_end nullsub_66
+
+ thumb_func_start sub_80FBB3C
+sub_80FBB3C: @ 80FBB3C
+ push {r4-r7,lr}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, _080FBBAC @ =gUnknown_083E76E8
+ ldr r2, [r1, 0x4]
+ ldr r1, [r1]
+ str r1, [sp, 0x20]
+ str r2, [sp, 0x24]
+ mov r2, sp
+ ldr r1, _080FBBB0 @ =gSpriteTemplate_83E76F0
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ lsrs r3, r0, 16
+ add r2, sp, 0x18
+ ldrh r1, [r2, 0x4]
+ orrs r1, r0
+ str r1, [r2, 0x4]
+ mov r0, sp
+ strh r3, [r0]
+ ldr r0, _080FBBB4 @ =gUnknown_020388CC
+ ldr r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0x58
+ strh r3, [r0]
+ ldr r5, _080FBBB8 @ =0xffff0000
+ add r1, sp, 0x20
+ ldr r0, [r1, 0x4]
+ ands r0, r5
+ orrs r0, r6
+ str r0, [r1, 0x4]
+ mov r0, sp
+ strh r6, [r0, 0x2]
+ adds r3, r4, 0
+ adds r0, r3, 0
+ adds r0, 0x5A
+ strh r6, [r0]
+ adds r0, 0x1E
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _080FBBC0
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r3, r1
+ str r0, [sp, 0x18]
+ ldr r0, [r2, 0x4]
+ ands r0, r5
+ subs r1, 0x80
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080FBBBC @ =sub_80FBAF0
+ b _080FBBD6
+ .align 2, 0
+_080FBBAC: .4byte gUnknown_083E76E8
+_080FBBB0: .4byte gSpriteTemplate_83E76F0
+_080FBBB4: .4byte gUnknown_020388CC
+_080FBBB8: .4byte 0xffff0000
+_080FBBBC: .4byte sub_80FBAF0
+_080FBBC0:
+ movs r3, 0xA0
+ lsls r3, 2
+ adds r0, r4, r3
+ str r0, [sp, 0x18]
+ ldr r0, [r2, 0x4]
+ ands r0, r5
+ movs r1, 0xC0
+ lsls r1, 3
+ orrs r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _080FBC38 @ =nullsub_66
+_080FBBD6:
+ str r0, [sp, 0x14]
+ adds r0, r2, 0
+ bl LoadSpriteSheet
+ adds r0, r7, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0x38
+ movs r2, 0x48
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080FBC90
+ ldr r4, _080FBC3C @ =gUnknown_020388CC
+ ldr r2, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080FBC40 @ =gSprites
+ adds r3, r0, r1
+ str r3, [r2, 0x1C]
+ adds r2, 0x78
+ ldrb r0, [r2]
+ cmp r0, 0x1
+ bne _080FBC44
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ ldr r2, [r4]
+ ldr r1, [r2, 0x1C]
+ ldrh r0, [r1, 0x20]
+ subs r0, 0x8
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x1C]
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x8
+ strh r0, [r1, 0x22]
+ ldr r0, [r2, 0x1C]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _080FBC6C
+ .align 2, 0
+_080FBC38: .4byte nullsub_66
+_080FBC3C: .4byte gUnknown_020388CC
+_080FBC40: .4byte gSprites
+_080FBC44:
+ ldrb r1, [r3, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ ldr r1, [r4]
+ ldr r2, [r1, 0x1C]
+ adds r0, r1, 0
+ adds r0, 0x54
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ ldr r2, [r1, 0x1C]
+ adds r1, 0x56
+ ldrh r0, [r1]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x22]
+_080FBC6C:
+ ldr r4, _080FBC98 @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0x2
+ strh r0, [r1, 0x30]
+ adds r0, r6, 0
+ bl IndexOfSpritePaletteTag
+ ldr r1, [r4]
+ ldr r2, [r1, 0x1C]
+ lsls r0, 24
+ lsrs r0, 20
+ ldr r4, _080FBC9C @ =0x00000101
+ adds r0, r4
+ strh r0, [r2, 0x32]
+ ldr r1, [r1, 0x1C]
+ movs r0, 0x1
+ strh r0, [r1, 0x34]
+_080FBC90:
+ add sp, 0x28
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBC98: .4byte gUnknown_020388CC
+_080FBC9C: .4byte 0x00000101
+ thumb_func_end sub_80FBB3C
+
+ thumb_func_start sub_80FBCA0
+sub_80FBCA0: @ 80FBCA0
+ push {r4,lr}
+ ldr r4, _080FBCCC @ =gUnknown_020388CC
+ ldr r0, [r4]
+ ldr r0, [r0, 0x1C]
+ cmp r0, 0
+ beq _080FBCC4
+ bl DestroySprite
+ ldr r0, [r4]
+ adds r0, 0x58
+ ldrh r0, [r0]
+ bl FreeSpriteTilesByTag
+ ldr r0, [r4]
+ adds r0, 0x5A
+ ldrh r0, [r0]
+ bl FreeSpritePaletteByTag
+_080FBCC4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBCCC: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBCA0
+
+ thumb_func_start unref_sub_80FBCD0
+unref_sub_80FBCD0: @ 80FBCD0
+ ldr r0, _080FBCDC @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0x1
+ strh r0, [r1, 0x34]
+ bx lr
+ .align 2, 0
+_080FBCDC: .4byte gUnknown_020388CC
+ thumb_func_end unref_sub_80FBCD0
+
+ thumb_func_start unref_sub_80FBCE0
+unref_sub_80FBCE0: @ 80FBCE0
+ ldr r0, _080FBCEC @ =gUnknown_020388CC
+ ldr r0, [r0]
+ ldr r1, [r0, 0x1C]
+ movs r0, 0
+ strh r0, [r1, 0x34]
+ bx lr
+ .align 2, 0
+_080FBCEC: .4byte gUnknown_020388CC
+ thumb_func_end unref_sub_80FBCE0
+
+ thumb_func_start sub_80FBCF0
+sub_80FBCF0: @ 80FBCF0
+ push {r4,r5,lr}
+ sub sp, 0x28
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _080FBD98 @ =gUnknown_083E5C40
+ str r2, [sp, 0x18]
+ movs r2, 0x80
+ add r5, sp, 0x18
+ lsrs r3, r0, 16
+ orrs r0, r2
+ str r0, [r5, 0x4]
+ ldr r0, _080FBD9C @ =gUnknown_083E5C20
+ str r0, [sp, 0x20]
+ ldr r2, _080FBDA0 @ =0xffff0000
+ add r4, sp, 0x20
+ ldr r0, [r4, 0x4]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r4, 0x4]
+ mov r0, sp
+ movs r2, 0
+ strh r3, [r0]
+ strh r1, [r0, 0x2]
+ ldr r0, _080FBDA4 @ =gUnknown_083E7708
+ str r0, [sp, 0x4]
+ ldr r0, _080FBDA8 @ =gUnknown_083E7718
+ str r0, [sp, 0x8]
+ str r2, [sp, 0xC]
+ ldr r0, _080FBDAC @ =gDummySpriteAffineAnimTable
+ str r0, [sp, 0x10]
+ ldr r0, _080FBDB0 @ =SpriteCallbackDummy
+ str r0, [sp, 0x14]
+ ldr r0, _080FBDB4 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ bne _080FBD42
+ ldr r0, _080FBDB8 @ =gUnknown_083E5CE0
+ str r0, [sp, 0x18]
+ ldr r0, _080FBDBC @ =gUnknown_083E5CC0
+ str r0, [sp, 0x20]
+_080FBD42:
+ adds r0, r5, 0
+ bl LoadSpriteSheet
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080FBDC0 @ =gUnknown_020388CC
+ ldr r2, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080FBDC4 @ =gSprites
+ adds r1, r0
+ str r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FBDCC
+ adds r0, r2, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x22]
+ ldr r1, [r2, 0x20]
+ ldr r0, _080FBDC8 @ =sub_80FBF34
+ b _080FBDEA
+ .align 2, 0
+_080FBD98: .4byte gUnknown_083E5C40
+_080FBD9C: .4byte gUnknown_083E5C20
+_080FBDA0: .4byte 0xffff0000
+_080FBDA4: .4byte gUnknown_083E7708
+_080FBDA8: .4byte gUnknown_083E7718
+_080FBDAC: .4byte gDummySpriteAffineAnimTable
+_080FBDB0: .4byte SpriteCallbackDummy
+_080FBDB4: .4byte gSaveBlock2
+_080FBDB8: .4byte gUnknown_083E5CE0
+_080FBDBC: .4byte gUnknown_083E5CC0
+_080FBDC0: .4byte gUnknown_020388CC
+_080FBDC4: .4byte gSprites
+_080FBDC8: .4byte sub_80FBF34
+_080FBDCC:
+ adds r0, r2, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x30
+ strh r0, [r1, 0x20]
+ ldr r1, [r2, 0x20]
+ adds r0, r2, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x42
+ strh r0, [r1, 0x22]
+ ldr r1, [r2, 0x20]
+ ldr r0, _080FBDF4 @ =sub_80FBEA4
+_080FBDEA:
+ str r0, [r1, 0x1C]
+ add sp, 0x28
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBDF4: .4byte sub_80FBEA4
+ thumb_func_end sub_80FBCF0
+
+ thumb_func_start sub_80FBDF8
+sub_80FBDF8: @ 80FBDF8
+ push {lr}
+ ldr r3, _080FBE1C @ =gUnknown_020388CC
+ ldr r0, [r3]
+ ldr r2, [r0, 0x20]
+ cmp r2, 0
+ beq _080FBE16
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r1, [r0, 0x20]
+ ldr r0, _080FBE20 @ =SpriteCallbackDummy
+ str r0, [r1, 0x1C]
+_080FBE16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBE1C: .4byte gUnknown_020388CC
+_080FBE20: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80FBDF8
+
+ thumb_func_start sub_80FBE24
+sub_80FBE24: @ 80FBE24
+ push {lr}
+ ldr r0, _080FBE5C @ =gUnknown_020388CC
+ ldr r3, [r0]
+ ldr r1, [r3, 0x20]
+ cmp r1, 0
+ beq _080FBE9A
+ adds r0, r3, 0
+ adds r0, 0x78
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FBE64
+ adds r0, r3, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x30
+ strh r0, [r1, 0x20]
+ ldr r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 4
+ subs r0, 0x42
+ strh r0, [r1, 0x22]
+ ldr r1, [r3, 0x20]
+ ldr r0, _080FBE60 @ =sub_80FBEA4
+ b _080FBE8C
+ .align 2, 0
+_080FBE5C: .4byte gUnknown_020388CC
+_080FBE60: .4byte sub_80FBEA4
+_080FBE64:
+ adds r0, r3, 0
+ adds r0, 0x74
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ movs r2, 0
+ strh r0, [r1, 0x20]
+ ldr r1, [r3, 0x20]
+ adds r0, r3, 0
+ adds r0, 0x76
+ ldrh r0, [r0]
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x22]
+ ldr r0, [r3, 0x20]
+ strh r2, [r0, 0x24]
+ ldr r0, [r3, 0x20]
+ strh r2, [r0, 0x26]
+ ldr r1, [r3, 0x20]
+ ldr r0, _080FBEA0 @ =sub_80FBF34
+_080FBE8C:
+ str r0, [r1, 0x1C]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_080FBE9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBEA0: .4byte sub_80FBF34
+ thumb_func_end sub_80FBE24
+
+ thumb_func_start sub_80FBEA4
+sub_80FBEA4: @ 80FBEA4
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080FBF08 @ =gUnknown_020388CC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x5C
+ movs r4, 0
+ ldrsh r2, [r0, r4]
+ lsls r2, 1
+ negs r2, r2
+ strh r2, [r3, 0x24]
+ adds r1, 0x5E
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ lsls r0, 1
+ negs r0, r0
+ strh r0, [r3, 0x26]
+ ldrh r1, [r3, 0x22]
+ adds r1, r0
+ adds r0, r3, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x20]
+ adds r1, r2
+ adds r2, r3, 0
+ adds r2, 0x28
+ ldrb r2, [r2]
+ lsls r2, 24
+ asrs r2, 24
+ adds r2, r1
+ strh r2, [r3, 0x30]
+ adds r0, 0x8
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB0
+ bhi _080FBF04
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ movs r0, 0x8
+ negs r0, r0
+ cmp r2, r0
+ blt _080FBF04
+ cmp r2, 0xF8
+ ble _080FBF0C
+_080FBF04:
+ movs r0, 0
+ b _080FBF0E
+ .align 2, 0
+_080FBF08: .4byte gUnknown_020388CC
+_080FBF0C:
+ movs r0, 0x1
+_080FBF0E:
+ strh r0, [r3, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _080FBF20
+ adds r0, r3, 0
+ bl sub_80FBF40
+ b _080FBF2C
+_080FBF20:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_080FBF2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBEA4
+
+ thumb_func_start sub_80FBF34
+sub_80FBF34: @ 80FBF34
+ push {lr}
+ bl sub_80FBF40
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBF34
+
+ thumb_func_start sub_80FBF40
+sub_80FBF40: @ 80FBF40
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FBF80 @ =gUnknown_020388CC
+ ldr r0, [r0]
+ adds r0, 0x7E
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FBF84
+ ldrh r0, [r2, 0x3C]
+ adds r0, 0x1
+ strh r0, [r2, 0x3C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080FBF90
+ movs r0, 0
+ strh r0, [r2, 0x3C]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080FBF90
+ .align 2, 0
+_080FBF80: .4byte gUnknown_020388CC
+_080FBF84:
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_080FBF90:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FBF40
+
+ thumb_func_start sub_80FBF94
+sub_80FBF94: @ 80FBF94
+ push {lr}
+ ldr r0, _080FBFB0 @ =gUnknown_020388CC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FBFAA
+ adds r1, 0x7E
+ movs r0, 0x1
+ strb r0, [r1]
+_080FBFAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FBFB0: .4byte gUnknown_020388CC
+ thumb_func_end sub_80FBF94
+
+ thumb_func_start sub_80FBFB4
+sub_80FBFB4: @ 80FBFB4
+ push {lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r1, 0x56
+ bne _080FBFCA
+ bl GetSecretBaseMapName
+ b _080FBFF2
+_080FBFCA:
+ cmp r1, 0x57
+ bhi _080FBFE4
+ ldr r0, _080FBFE0 @ =gRegionMapLocations
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r3, 0
+ bl StringCopy
+ b _080FBFF2
+ .align 2, 0
+_080FBFE0: .4byte gRegionMapLocations
+_080FBFE4:
+ cmp r2, 0
+ bne _080FBFEA
+ movs r2, 0x12
+_080FBFEA:
+ adds r0, r3, 0
+ movs r1, 0
+ bl StringFill
+_080FBFF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBFB4
+
+ thumb_func_start sub_80FBFF8
+sub_80FBFF8: @ 80FBFF8
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x56
+ beq _080FC014
+ cmp r1, 0x57
+ bne _080FC020
+ ldr r1, _080FC010 @ =gOtherText_Ferry
+ bl StringCopy
+ b _080FC026
+ .align 2, 0
+_080FC010: .4byte gOtherText_Ferry
+_080FC014:
+ ldr r1, _080FC01C @ =gOtherText_SecretBase
+ bl StringCopy
+ b _080FC026
+ .align 2, 0
+_080FC01C: .4byte gOtherText_SecretBase
+_080FC020:
+ movs r2, 0
+ bl sub_80FBFB4
+_080FC026:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FBFF8
+
+ thumb_func_start sub_80FC02C
+sub_80FC02C: @ 80FC02C
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0x42
+ beq _080FC03C
+ bl sub_80FBFF8
+ b _080FC042
+_080FC03C:
+ ldr r1, _080FC048 @ =gOtherText_Hideout
+ bl StringCopy
+_080FC042:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FC048: .4byte gOtherText_Hideout
+ thumb_func_end sub_80FC02C
+
+ thumb_func_start sub_80FC04C
+sub_80FC04C: @ 80FC04C
+ push {r4,r5,lr}
+ ldr r5, [sp, 0xC]
+ lsls r0, 16
+ ldr r4, _080FC070 @ =gRegionMapLocations
+ lsrs r0, 13
+ adds r0, r4
+ ldrb r4, [r0]
+ strh r4, [r1]
+ ldrb r1, [r0, 0x1]
+ strh r1, [r2]
+ ldrb r1, [r0, 0x2]
+ strh r1, [r3]
+ ldrb r0, [r0, 0x3]
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC070: .4byte gRegionMapLocations
+ thumb_func_end sub_80FC04C
+
+ thumb_func_start sub_80FC074
+sub_80FC074: @ 80FC074
+ push {r4,lr}
+ ldr r0, _080FC090 @ =gMain
+ ldr r1, _080FC094 @ =0x0000043c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _080FC084
+ b _080FC1F2
+_080FC084:
+ lsls r0, 2
+ ldr r1, _080FC098 @ =_080FC09C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC090: .4byte gMain
+_080FC094: .4byte 0x0000043c
+_080FC098: .4byte _080FC09C
+ .align 2, 0
+_080FC09C:
+ .4byte _080FC0C4
+ .4byte _080FC104
+ .4byte _080FC110
+ .4byte _080FC120
+ .4byte _080FC15C
+ .4byte _080FC170
+ .4byte _080FC184
+ .4byte _080FC1A4
+ .4byte _080FC1AA
+ .4byte _080FC1C4
+_080FC0C4:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x10
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ b _080FC1E6
+_080FC104:
+ ldr r0, _080FC10C @ =gWindowConfig_81E7224
+ bl SetUpWindowConfig
+ b _080FC1E6
+ .align 2, 0
+_080FC10C: .4byte gWindowConfig_81E7224
+_080FC110:
+ ldr r0, _080FC11C @ =gWindowConfig_81E7224
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ b _080FC1E6
+ .align 2, 0
+_080FC11C: .4byte gWindowConfig_81E7224
+_080FC120:
+ ldr r4, _080FC158 @ =0x02000008
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80FBB3C
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBCF0
+ adds r1, r4, 0
+ subs r1, 0x8
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x6]
+ movs r2, 0xA4
+ lsls r2, 4
+ adds r4, r2
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xC
+ bl StringFill
+ bl sub_80FC254
+ b _080FC1E6
+ .align 2, 0
+_080FC158: .4byte 0x02000008
+_080FC15C:
+ ldr r0, _080FC168 @ =gUnknown_083E773C
+ ldr r1, _080FC16C @ =0x0600c000
+ bl LZ77UnCompVram
+ b _080FC1E6
+ .align 2, 0
+_080FC168: .4byte gUnknown_083E773C
+_080FC16C: .4byte 0x0600c000
+_080FC170:
+ ldr r0, _080FC17C @ =gUnknown_083E7774
+ ldr r1, _080FC180 @ =0x0600f000
+ bl LZ77UnCompVram
+ b _080FC1E6
+ .align 2, 0
+_080FC17C: .4byte gUnknown_083E7774
+_080FC180: .4byte 0x0600f000
+_080FC184:
+ ldr r0, _080FC19C @ =gUnknown_083E771C
+ movs r1, 0x10
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080FC1A0 @ =gOtherText_FlyToWhere
+ movs r1, 0x1
+ movs r2, 0x90
+ movs r3, 0x1
+ bl MenuPrint_PixelCoords
+ b _080FC1E6
+ .align 2, 0
+_080FC19C: .4byte gUnknown_083E771C
+_080FC1A0: .4byte gOtherText_FlyToWhere
+_080FC1A4:
+ bl sub_80FC31C
+ b _080FC1E6
+_080FC1AA:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r0, _080FC1C0 @ =sub_80FC214
+ bl SetVBlankCallback
+ b _080FC1E6
+ .align 2, 0
+_080FC1C0: .4byte sub_80FC214
+_080FC1C4:
+ ldr r1, _080FC1F8 @ =REG_BLDCNT
+ movs r0, 0
+ strh r0, [r1]
+ subs r1, 0x46
+ ldr r2, _080FC1FC @ =0x00001e0d
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r2, _080FC200 @ =0x00001741
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _080FC204 @ =sub_80FC5B4
+ bl sub_80FC244
+ ldr r0, _080FC208 @ =sub_80FC228
+ bl SetMainCallback2
+_080FC1E6:
+ ldr r1, _080FC20C @ =gMain
+ ldr r0, _080FC210 @ =0x0000043c
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080FC1F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC1F8: .4byte REG_BLDCNT
+_080FC1FC: .4byte 0x00001e0d
+_080FC200: .4byte 0x00001741
+_080FC204: .4byte sub_80FC5B4
+_080FC208: .4byte sub_80FC228
+_080FC20C: .4byte gMain
+_080FC210: .4byte 0x0000043c
+ thumb_func_end sub_80FC074
+
+ thumb_func_start sub_80FC214
+sub_80FC214: @ 80FC214
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC214
+
+ thumb_func_start sub_80FC228
+sub_80FC228: @ 80FC228
+ push {lr}
+ ldr r0, _080FC240 @ =0x02000000
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC240: .4byte 0x02000000
+ thumb_func_end sub_80FC228
+
+ thumb_func_start sub_80FC244
+sub_80FC244: @ 80FC244
+ ldr r1, _080FC250 @ =0x02000000
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_080FC250: .4byte 0x02000000
+ thumb_func_end sub_80FC244
+
+ thumb_func_start sub_80FC254
+sub_80FC254: @ 80FC254
+ push {r4,r5,lr}
+ ldr r4, _080FC2AC @ =0x02000000
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0x2
+ beq _080FC262
+ cmp r0, 0x4
+ bne _080FC2EC
+_080FC262:
+ movs r1, 0
+ ldr r2, _080FC2B0 @ =gUnknown_083E79C0
+ adds r5, r4, 0
+_080FC268:
+ lsls r0, r1, 3
+ adds r4, r0, r2
+ ldrh r0, [r5, 0x1C]
+ ldrh r3, [r4, 0x4]
+ cmp r0, r3
+ bne _080FC2B4
+ ldrh r0, [r4, 0x6]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC2BE
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ adds r0, 0x8
+ movs r1, 0x11
+ movs r2, 0xF
+ bl MenuPrint
+ ldrb r0, [r5, 0x1F]
+ ldr r1, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1D
+ movs r2, 0x11
+ bl sub_8072B4C
+ b _080FC310
+ .align 2, 0
+_080FC2AC: .4byte 0x02000000
+_080FC2B0: .4byte gUnknown_083E79C0
+_080FC2B4:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080FC268
+_080FC2BE:
+ movs r0, 0
+ cmp r0, 0
+ bne _080FC310
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _080FC2E8 @ =0x02000008
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+ b _080FC310
+ .align 2, 0
+_080FC2E8: .4byte 0x02000008
+_080FC2EC:
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _080FC318 @ =0x00000a48
+ adds r0, r4, r1
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x10
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0xF
+ bl MenuZeroFillWindowRect
+_080FC310:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC318: .4byte 0x00000a48
+ thumb_func_end sub_80FC254
+
+ thumb_func_start sub_80FC31C
+sub_80FC31C: @ 80FC31C
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, _080FC360 @ =gUnknown_083E784C
+ ldr r4, _080FC364 @ =0x02000888
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ str r4, [sp]
+ ldr r1, _080FC368 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0xE0
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _080FC36C @ =0x0000ffff
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 10
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _080FC370 @ =gUnknown_083E79CC
+ bl LoadSpritePalette
+ bl sub_80FC374
+ bl sub_80FC484
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC360: .4byte gUnknown_083E784C
+_080FC364: .4byte 0x02000888
+_080FC368: .4byte 0xffff0000
+_080FC36C: .4byte 0x0000ffff
+_080FC370: .4byte gUnknown_083E79CC
+ thumb_func_end sub_80FC31C
+
+ thumb_func_start sub_80FC374
+sub_80FC374: @ 80FC374
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _080FC3D4 @ =0x0000080f
+ str r0, [sp, 0xC]
+ movs r1, 0
+ mov r9, r1
+ mov r2, sp
+ adds r2, 0x6
+ str r2, [sp, 0x14]
+ mov r3, sp
+ adds r3, 0xA
+ str r3, [sp, 0x18]
+ mov r0, sp
+ adds r0, 0x8
+ str r0, [sp, 0x10]
+ add r1, sp, 0x4
+ mov r10, r1
+_080FC39E:
+ ldr r2, [sp, 0x18]
+ str r2, [sp]
+ mov r0, r9
+ add r1, sp, 0x4
+ mov r2, sp
+ adds r2, 0x6
+ ldr r3, [sp, 0x10]
+ bl sub_80FC04C
+ mov r3, r10
+ ldrh r0, [r3]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r3]
+ mov r1, sp
+ ldrh r0, [r1, 0x6]
+ adds r0, 0x2
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r1, 0x6]
+ ldr r2, [sp, 0x10]
+ ldrh r0, [r2]
+ cmp r0, 0x2
+ bne _080FC3D8
+ movs r7, 0x1
+ b _080FC3E4
+ .align 2, 0
+_080FC3D4: .4byte 0x0000080f
+_080FC3D8:
+ ldr r3, [sp, 0x18]
+ ldrh r0, [r3]
+ movs r7, 0
+ cmp r0, 0x2
+ bne _080FC3E4
+ movs r7, 0x2
+_080FC3E4:
+ mov r0, r10
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r3, [sp, 0x14]
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ ldr r0, _080FC430 @ =gSpriteTemplate_83E7A38
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _080FC458
+ ldr r1, _080FC434 @ =gSprites
+ mov r8, r1
+ lsls r4, r5, 4
+ adds r0, r4, r5
+ lsls r6, r0, 2
+ adds r2, r6, r1
+ lsls r3, r7, 6
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x1]
+ ldr r0, [sp, 0xC]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC43C
+ mov r0, r8
+ adds r0, 0x1C
+ adds r0, r6, r0
+ ldr r1, _080FC438 @ =sub_80FC55C
+ str r1, [r0]
+ b _080FC442
+ .align 2, 0
+_080FC430: .4byte gSpriteTemplate_83E7A38
+_080FC434: .4byte gSprites
+_080FC438: .4byte sub_80FC55C
+_080FC43C:
+ adds r0, r7, 0x3
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080FC442:
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _080FC480 @ =gSprites
+ adds r4, r0
+ lsls r1, r7, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ mov r2, r9
+ strh r2, [r4, 0x2E]
+_080FC458:
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ cmp r0, 0xF
+ bls _080FC39E
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC480: .4byte gSprites
+ thumb_func_end sub_80FC374
+
+ thumb_func_start sub_80FC484
+sub_80FC484: @ 80FC484
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0
+ mov r8, r0
+ ldr r6, _080FC54C @ =gUnknown_083E79D4
+ ldrh r0, [r6, 0x2]
+ cmp r0, 0x58
+ beq _080FC53C
+ mov r5, sp
+ adds r5, 0x6
+ add r7, sp, 0x4
+ ldr r1, _080FC550 @ =gSprites
+ mov r9, r1
+ movs r0, 0x1C
+ add r0, r9
+ mov r10, r0
+_080FC4AC:
+ mov r1, r8
+ lsls r4, r1, 2
+ adds r0, r4, r6
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FC524
+ adds r0, r6, 0x2
+ adds r0, r4, r0
+ ldrh r6, [r0]
+ mov r0, sp
+ adds r0, 0xA
+ str r0, [sp]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ add r3, sp, 0x8
+ bl sub_80FC04C
+ ldrh r0, [r7]
+ adds r0, 0x1
+ lsls r0, 3
+ strh r0, [r7]
+ ldrh r0, [r5]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r5]
+ movs r0, 0
+ ldrsh r1, [r7, r0]
+ movs r0, 0
+ ldrsh r2, [r5, r0]
+ ldr r0, _080FC554 @ =gSpriteTemplate_83E7A38
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _080FC524
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ mov r1, r9
+ adds r4, r2, r1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ add r2, r10
+ ldr r0, _080FC558 @ =sub_80FC55C
+ str r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl StartSpriteAnim
+ strh r6, [r4, 0x2E]
+_080FC524:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r6, _080FC54C @ =gUnknown_083E79D4
+ lsls r0, 2
+ adds r1, r6, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _080FC4AC
+_080FC53C:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC54C: .4byte gUnknown_083E79D4
+_080FC550: .4byte gSprites
+_080FC554: .4byte gSpriteTemplate_83E7A38
+_080FC558: .4byte sub_80FC55C
+ thumb_func_end sub_80FC484
+
+ thumb_func_start sub_80FC55C
+sub_80FC55C: @ 80FC55C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FC59C @ =0x02000000
+ ldrh r1, [r0, 0x1C]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r1, r0
+ bne _080FC5A0
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080FC5AE
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _080FC5AE
+ .align 2, 0
+_080FC59C: .4byte 0x02000000
+_080FC5A0:
+ movs r0, 0x10
+ strh r0, [r2, 0x30]
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x15
+ ands r0, r1
+ strb r0, [r2]
+_080FC5AE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC55C
+
+ thumb_func_start sub_80FC5B4
+sub_80FC5B4: @ 80FC5B4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080FC5C8 @ =0x02000000
+ ldrh r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080FC5CC
+ cmp r1, 0x1
+ beq _080FC5E4
+ b _080FC5F4
+ .align 2, 0
+_080FC5C8: .4byte 0x02000000
+_080FC5CC:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _080FC5F4
+_080FC5E4:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FC5F4
+ ldr r0, _080FC5FC @ =sub_80FC600
+ bl sub_80FC244
+_080FC5F4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC5FC: .4byte sub_80FC600
+ thumb_func_end sub_80FC5B4
+
+ thumb_func_start sub_80FC600
+sub_80FC600: @ 80FC600
+ push {r4,lr}
+ ldr r0, _080FC620 @ =0x02000000
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _080FC68A
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080FC68A
+ lsls r0, 2
+ ldr r1, _080FC624 @ =_080FC628
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC620: .4byte 0x02000000
+_080FC624: .4byte _080FC628
+ .align 2, 0
+_080FC628:
+ .4byte _080FC68A
+ .4byte _080FC68A
+ .4byte _080FC68A
+ .4byte _080FC640
+ .4byte _080FC646
+ .4byte _080FC674
+_080FC640:
+ bl sub_80FC254
+ b _080FC68A
+_080FC646:
+ ldr r4, _080FC668 @ =0x02000000
+ ldrb r0, [r4, 0x1E]
+ cmp r0, 0x2
+ beq _080FC652
+ cmp r0, 0x4
+ bne _080FC68A
+_080FC652:
+ movs r0, 0x5
+ bl m4aSongNumStart
+ ldr r1, _080FC66C @ =0x00000a6e
+ adds r0, r4, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080FC670 @ =sub_80FC69C
+ bl sub_80FC244
+ b _080FC68A
+ .align 2, 0
+_080FC668: .4byte 0x02000000
+_080FC66C: .4byte 0x00000a6e
+_080FC670: .4byte sub_80FC69C
+_080FC674:
+ movs r0, 0x5
+ bl m4aSongNumStart
+ ldr r0, _080FC690 @ =0x02000000
+ ldr r1, _080FC694 @ =0x00000a6e
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080FC698 @ =sub_80FC69C
+ bl sub_80FC244
+_080FC68A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC690: .4byte 0x02000000
+_080FC694: .4byte 0x00000a6e
+_080FC698: .4byte sub_80FC69C
+ thumb_func_end sub_80FC600
+
+ thumb_func_start sub_80FC69C
+sub_80FC69C: @ 80FC69C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080FC6B0 @ =0x02000000
+ ldrh r1, [r4, 0x4]
+ cmp r1, 0
+ beq _080FC6B4
+ cmp r1, 0x1
+ beq _080FC6CC
+ b _080FC792
+ .align 2, 0
+_080FC6B0: .4byte 0x02000000
+_080FC6B4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ b _080FC792
+_080FC6CC:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FC792
+ bl sub_80FAB10
+ ldr r1, _080FC6F4 @ =0x00000a6e
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FC78C
+ ldrh r0, [r4, 0x1C]
+ cmp r0, 0xF
+ beq _080FC724
+ cmp r0, 0xF
+ bgt _080FC6F8
+ cmp r0, 0
+ beq _080FC710
+ b _080FC748
+ .align 2, 0
+_080FC6F4: .4byte 0x00000a6e
+_080FC6F8:
+ cmp r0, 0x3A
+ beq _080FC708
+ cmp r0, 0x49
+ bne _080FC748
+ movs r0, 0x16
+ bl sub_8053538
+ b _080FC786
+_080FC708:
+ movs r0, 0x15
+ bl sub_8053538
+ b _080FC786
+_080FC710:
+ ldr r0, _080FC720 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ movs r1, 0xD
+ cmp r0, 0
+ bne _080FC73A
+ movs r1, 0xC
+ b _080FC73A
+ .align 2, 0
+_080FC720: .4byte gSaveBlock2
+_080FC724:
+ ldr r0, _080FC744 @ =0x00000854
+ bl FlagGet
+ lsls r0, 24
+ movs r1, 0xB
+ cmp r0, 0
+ beq _080FC73A
+ ldrb r0, [r4, 0x1F]
+ cmp r0, 0
+ bne _080FC73A
+ movs r1, 0x14
+_080FC73A:
+ adds r0, r1, 0
+ bl sub_8053538
+ b _080FC786
+ .align 2, 0
+_080FC744: .4byte 0x00000854
+_080FC748:
+ ldr r3, _080FC764 @ =gUnknown_083E7920
+ ldr r0, _080FC768 @ =0x02000000
+ ldrh r1, [r0, 0x1C]
+ lsls r0, r1, 1
+ adds r2, r0, r1
+ adds r0, r3, 0x2
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080FC76C
+ bl sub_8053538
+ b _080FC786
+ .align 2, 0
+_080FC764: .4byte gUnknown_083E7920
+_080FC768: .4byte 0x02000000
+_080FC76C:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ bl warp1_set_2
+_080FC786:
+ bl sub_80865BC
+ b _080FC792
+_080FC78C:
+ ldr r0, _080FC79C @ =sub_808AD58
+ bl SetMainCallback2
+_080FC792:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC79C: .4byte sub_808AD58
+ thumb_func_end sub_80FC69C
+
+ .align 2, 0 @ Don't pad with nop.