diff options
Diffstat (limited to 'asm/region_map.s')
-rw-r--r-- | asm/region_map.s | 3969 |
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. |