pokeruby/asm/region_map.s
2017-05-09 01:56:49 -07:00

3970 lines
66 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.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 GetRegionMapSectionAt
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 GetRegionMapSectionAt
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 GetRegionMapSectionAt
GetRegionMapSectionAt: @ 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 GetRegionMapSectionAt
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 GetSSTidalLocation
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 GetRegionMapSectionAt_
GetRegionMapSectionAt_: @ 80FB9A8
push {lr}
lsls r0, 16
lsrs r0, 16
lsls r1, 16
lsrs r1, 16
bl GetRegionMapSectionAt
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end GetRegionMapSectionAt_
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 GetRegionMapSectionAt
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 GetRegionMapSectionAt
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 @ =gRegionMapBrendanIconTiles
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 @ =gRegionMapBrendanIconPalette
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 @ =gOamData_083E7708
str r0, [sp, 0x4]
ldr r0, _080FBDA8 @ =gSpriteAnimTable_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 @ =gRegionMapMayIconTiles
str r0, [sp, 0x18]
ldr r0, _080FBDBC @ =gRegionMapMayIconPalette
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 gRegionMapBrendanIconTiles
_080FBD9C: .4byte gRegionMapBrendanIconPalette
_080FBDA0: .4byte 0xffff0000
_080FBDA4: .4byte gOamData_083E7708
_080FBDA8: .4byte gSpriteAnimTable_083E7718
_080FBDAC: .4byte gDummySpriteAffineAnimTable
_080FBDB0: .4byte SpriteCallbackDummy
_080FBDB4: .4byte gSaveBlock2
_080FBDB8: .4byte gRegionMapMayIconTiles
_080FBDBC: .4byte gRegionMapMayIconPalette
_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 CopyMapName
CopyMapName: @ 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 CopyMapName
thumb_func_start CopyLocationName
CopyLocationName: @ 80FC02C
push {lr}
lsls r1, 16
lsrs r1, 16
cmp r1, 0x42
beq _080FC03C
bl CopyMapName
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 CopyLocationName
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 MenuPrint_RightAligned
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.