diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
commit | 670fef77ac4d9116d5fdc28c0da40622919a062b (patch) | |
tree | 61c0e925f059404473826ac775305ba5e2706ab1 /asm/start_menu.s |
first commit
Diffstat (limited to 'asm/start_menu.s')
-rw-r--r-- | asm/start_menu.s | 2219 |
1 files changed, 2219 insertions, 0 deletions
diff --git a/asm/start_menu.s b/asm/start_menu.s new file mode 100644 index 000000000..7e3aa7735 --- /dev/null +++ b/asm/start_menu.s @@ -0,0 +1,2219 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_806ED54 +sub_806ED54: @ 806ED54 + push {lr} + ldr r0, _0806ED6C @ =gUnknown_20370F5 + movs r1, 0 + strb r1, [r0] + bl sub_805642C + cmp r0, 0x1 + bne _0806ED70 + bl sub_806EE34 + b _0806ED90 + .align 2, 0 +_0806ED6C: .4byte gUnknown_20370F5 +_0806ED70: + bl sub_811B0D0 + cmp r0, 0x1 + bne _0806ED7E + bl sub_806EE58 + b _0806ED90 +_0806ED7E: + bl sub_80A0E90 + cmp r0, 0x1 + bne _0806ED8C + bl sub_806EE04 + b _0806ED90 +_0806ED8C: + bl sub_806EDB0 +_0806ED90: + pop {r0} + bx r0 + thumb_func_end sub_806ED54 + + thumb_func_start sub_806ED94 +sub_806ED94: @ 806ED94 + push {lr} + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r0, _0806EDA8 @ =gUnknown_20370F6 + ldr r1, _0806EDAC @ =gUnknown_20370F5 + bl sub_806FEC8 + pop {r0} + bx r0 + .align 2, 0 +_0806EDA8: .4byte gUnknown_20370F6 +_0806EDAC: .4byte gUnknown_20370F5 + thumb_func_end sub_806ED94 + + thumb_func_start sub_806EDB0 +sub_806EDB0: @ 806EDB0 + push {lr} + ldr r0, _0806EDFC @ =0x00000829 + bl sub_806E6D0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806EDC6 + movs r0, 0 + bl sub_806ED94 +_0806EDC6: + ldr r0, _0806EE00 @ =0x00000828 + bl sub_806E6D0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806EDDA + movs r0, 0x1 + bl sub_806ED94 +_0806EDDA: + movs r0, 0x2 + bl sub_806ED94 + movs r0, 0x3 + bl sub_806ED94 + movs r0, 0x4 + bl sub_806ED94 + movs r0, 0x5 + bl sub_806ED94 + movs r0, 0x6 + bl sub_806ED94 + pop {r0} + bx r0 + .align 2, 0 +_0806EDFC: .4byte 0x00000829 +_0806EE00: .4byte 0x00000828 + thumb_func_end sub_806EDB0 + + thumb_func_start sub_806EE04 +sub_806EE04: @ 806EE04 + push {lr} + movs r0, 0x7 + bl sub_806ED94 + movs r0, 0 + bl sub_806ED94 + movs r0, 0x1 + bl sub_806ED94 + movs r0, 0x2 + bl sub_806ED94 + movs r0, 0x3 + bl sub_806ED94 + movs r0, 0x5 + bl sub_806ED94 + movs r0, 0x6 + bl sub_806ED94 + pop {r0} + bx r0 + thumb_func_end sub_806EE04 + + thumb_func_start sub_806EE34 +sub_806EE34: @ 806EE34 + push {lr} + movs r0, 0x1 + bl sub_806ED94 + movs r0, 0x2 + bl sub_806ED94 + movs r0, 0x8 + bl sub_806ED94 + movs r0, 0x5 + bl sub_806ED94 + movs r0, 0x6 + bl sub_806ED94 + pop {r0} + bx r0 + thumb_func_end sub_806EE34 + + thumb_func_start sub_806EE58 +sub_806EE58: @ 806EE58 + push {lr} + movs r0, 0x1 + bl sub_806ED94 + movs r0, 0x2 + bl sub_806ED94 + movs r0, 0x3 + bl sub_806ED94 + movs r0, 0x5 + bl sub_806ED94 + movs r0, 0x6 + bl sub_806ED94 + pop {r0} + bx r0 + thumb_func_end sub_806EE58 + + thumb_func_start sub_806EE7C +sub_806EE7C: @ 806EE7C + push {r4,r5,lr} + sub sp, 0xC + ldr r4, _0806EEF4 @ =gUnknown_2037101 + ldr r0, _0806EEF8 @ =gUnknown_83A738C + bl sub_8003CE4 + strb r0, [r4] + ldrb r0, [r4] + bl sub_8003FA0 + ldrb r0, [r4] + movs r1, 0 + bl sub_80F6F1C + ldr r0, _0806EEFC @ =gUnknown_2021CD0 + ldr r1, _0806EF00 @ =gUnknown_2039996 + ldrh r1, [r1] + movs r2, 0x1 + movs r3, 0x3 + bl sub_8008E78 + ldr r0, _0806EF04 @ =gUnknown_2021CF0 + movs r1, 0x96 + lsls r1, 2 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8008E78 + ldr r0, _0806EF08 @ =gUnknown_2021D04 + ldr r1, _0806EF0C @ =gUnknown_2039994 + ldrb r1, [r1] + movs r2, 0x1 + movs r3, 0x2 + bl sub_8008E78 + ldr r5, _0806EF10 @ =gUnknown_2021D18 + ldr r1, _0806EF14 @ =gUnknown_84162A9 + adds r0, r5, 0 + bl sub_8008FCC + ldrb r0, [r4] + movs r1, 0x3 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x2 + adds r2, r5, 0 + movs r3, 0x4 + bl sub_8002C48 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8003F20 + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806EEF4: .4byte gUnknown_2037101 +_0806EEF8: .4byte gUnknown_83A738C +_0806EEFC: .4byte gUnknown_2021CD0 +_0806EF00: .4byte gUnknown_2039996 +_0806EF04: .4byte gUnknown_2021CF0 +_0806EF08: .4byte gUnknown_2021D04 +_0806EF0C: .4byte gUnknown_2039994 +_0806EF10: .4byte gUnknown_2021D18 +_0806EF14: .4byte gUnknown_84162A9 + thumb_func_end sub_806EE7C + + thumb_func_start sub_806EF18 +sub_806EF18: @ 806EF18 + push {r4,lr} + bl sub_80A0E90 + cmp r0, 0 + beq _0806EF3A + ldr r4, _0806EF40 @ =gUnknown_2037101 + ldrb r0, [r4] + movs r1, 0 + bl sub_810F4D8 + ldrb r0, [r4] + movs r1, 0x2 + bl sub_8003F20 + ldrb r0, [r4] + bl sub_8003E3C +_0806EF3A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806EF40: .4byte gUnknown_2037101 + thumb_func_end sub_806EF18 + + thumb_func_start sub_806EF44 +sub_806EF44: @ 806EF44 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r8, r0 + lsls r1, 24 + lsrs r6, r1, 24 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r0, _0806EF9C @ =gUnknown_83A7344 + mov r10, r0 + ldr r1, _0806EFA0 @ =gUnknown_2021D18 + mov r9, r1 +_0806EF68: + ldr r1, _0806EFA4 @ =gUnknown_20370F6 + lsls r0, r2, 16 + asrs r5, r0, 16 + adds r4, r5, r1 + ldrb r1, [r4] + adds r7, r0, 0 + cmp r1, 0x3 + beq _0806EF7C + cmp r1, 0x8 + bne _0806EFA8 +_0806EF7C: + bl sub_80F793C + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4] + lsls r1, 3 + add r1, r10 + ldr r1, [r1] + lsls r3, r5, 4 + subs r3, r5 + lsls r3, 16 + lsrs r3, 16 + movs r2, 0x8 + bl sub_812E6DC + b _0806EFDA + .align 2, 0 +_0806EF9C: .4byte gUnknown_83A7344 +_0806EFA0: .4byte gUnknown_2021D18 +_0806EFA4: .4byte gUnknown_20370F6 +_0806EFA8: + ldrb r0, [r4] + lsls r0, 3 + add r0, r10 + ldr r1, [r0] + mov r0, r9 + bl sub_8008FCC + bl sub_80F793C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r5, 4 + subs r1, r5 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp] + movs r1, 0xFF + str r1, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + movs r1, 0x2 + mov r2, r9 + movs r3, 0x8 + bl sub_8002C48 +_0806EFDA: + movs r0, 0x80 + lsls r0, 9 + adds r1, r7, r0 + lsrs r2, r1, 16 + asrs r1, 16 + ldr r0, _0806F000 @ =gUnknown_20370F5 + ldrb r0, [r0] + cmp r1, r0 + bge _0806F004 + subs r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + bne _0806EF68 + mov r1, r8 + strb r2, [r1] + movs r0, 0 + b _0806F00A + .align 2, 0 +_0806F000: .4byte gUnknown_20370F5 +_0806F004: + mov r0, r8 + strb r2, [r0] + movs r0, 0x1 +_0806F00A: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_806EF44 + + thumb_func_start sub_806F01C +sub_806F01C: @ 806F01C + push {r4,lr} + sub sp, 0xC + ldr r0, _0806F038 @ =gUnknown_20370FF + movs r1, 0 + ldrsb r1, [r0, r1] + adds r2, r0, 0 + cmp r1, 0x5 + bls _0806F02E + b _0806F140 +_0806F02E: + lsls r0, r1, 2 + ldr r1, _0806F03C @ =_0806F040 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F038: .4byte gUnknown_20370FF +_0806F03C: .4byte _0806F040 + .align 2, 0 +_0806F040: + .4byte _0806F058 + .4byte _0806F060 + .4byte _0806F06C + .4byte _0806F090 + .4byte _0806F0A4 + .4byte _0806F0C4 +_0806F058: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _0806F140 +_0806F060: + bl sub_806ED54 + ldr r1, _0806F068 @ =gUnknown_20370FF + b _0806F0B8 + .align 2, 0 +_0806F068: .4byte gUnknown_20370FF +_0806F06C: + bl sub_80F6E9C + ldr r0, _0806F088 @ =gUnknown_20370F5 + ldrb r0, [r0] + bl sub_80F78E0 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80F6F1C + ldr r1, _0806F08C @ =gUnknown_20370FF + b _0806F0B8 + .align 2, 0 +_0806F088: .4byte gUnknown_20370F5 +_0806F08C: .4byte gUnknown_20370FF +_0806F090: + bl sub_80A0E90 + cmp r0, 0 + beq _0806F09C + bl sub_806EE7C +_0806F09C: + ldr r1, _0806F0A0 @ =gUnknown_20370FF + b _0806F0B8 + .align 2, 0 +_0806F0A0: .4byte gUnknown_20370FF +_0806F0A4: + ldr r4, _0806F0C0 @ =gUnknown_2037100 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_806EF44 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0806F140 + subs r1, r4, 0x1 +_0806F0B8: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0806F140 + .align 2, 0 +_0806F0C0: .4byte gUnknown_2037100 +_0806F0C4: + bl sub_80F793C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xF + str r1, [sp] + ldr r1, _0806F12C @ =gUnknown_20370F5 + ldrb r1, [r1] + str r1, [sp, 0x4] + ldr r4, _0806F130 @ =gUnknown_20370F4 + ldrb r1, [r4] + str r1, [sp, 0x8] + movs r1, 0x2 + movs r2, 0 + movs r3, 0 + bl sub_810F7D8 + strb r0, [r4] + bl sub_80BF708 + lsls r0, 24 + cmp r0, 0 + bne _0806F118 + bl sub_811B0D0 + cmp r0, 0x1 + beq _0806F118 + ldr r0, _0806F134 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + bne _0806F118 + ldr r2, _0806F138 @ =gUnknown_83A7394 + ldr r1, _0806F13C @ =gUnknown_20370F6 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + bl sub_80F7974 +_0806F118: + bl sub_80F793C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_8003F20 + movs r0, 0x1 + b _0806F142 + .align 2, 0 +_0806F12C: .4byte gUnknown_20370F5 +_0806F130: .4byte gUnknown_20370F4 +_0806F134: .4byte gUnknown_300500C +_0806F138: .4byte gUnknown_83A7394 +_0806F13C: .4byte gUnknown_20370F6 +_0806F140: + movs r0, 0 +_0806F142: + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_806F01C + + thumb_func_start sub_806F14C +sub_806F14C: @ 806F14C + push {lr} + ldr r1, _0806F164 @ =gUnknown_20370FF + movs r0, 0 + strb r0, [r1] + strb r0, [r1, 0x1] +_0806F156: + bl sub_806F01C + lsls r0, 24 + cmp r0, 0 + beq _0806F156 + pop {r0} + bx r0 + .align 2, 0 +_0806F164: .4byte gUnknown_20370FF + thumb_func_end sub_806F14C + + thumb_func_start sub_806F168 +sub_806F168: @ 806F168 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_806F01C + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + bne _0806F180 + adds r0, r4, 0 + bl sub_807761C +_0806F180: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_806F168 + + thumb_func_start sub_806F188 +sub_806F188: @ 806F188 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, _0806F1B0 @ =gUnknown_20370FF + movs r0, 0 + strb r0, [r1] + strb r0, [r1, 0x1] + ldr r4, _0806F1B4 @ =sub_806F168 + adds r0, r4, 0 + movs r1, 0x50 + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80775E8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806F1B0: .4byte gUnknown_20370FF +_0806F1B4: .4byte sub_806F168 + thumb_func_end sub_806F188 + + thumb_func_start sub_806F1B8 +sub_806F1B8: @ 806F1B8 + push {lr} + bl sub_806F01C + lsls r0, 24 + cmp r0, 0 + beq _0806F1CC + bl sub_807E3A0 + movs r0, 0x1 + b _0806F1CE +_0806F1CC: + movs r0, 0 +_0806F1CE: + pop {r1} + bx r1 + thumb_func_end sub_806F1B8 + + thumb_func_start sub_806F1D4 +sub_806F1D4: @ 806F1D4 + ldr r1, _0806F1E4 @ =gUnknown_20370FF + movs r0, 0 + strb r0, [r1] + strb r0, [r1, 0x1] + ldr r1, _0806F1E8 @ =gUnknown_3005024 + ldr r0, _0806F1EC @ =sub_806F1B8 + str r0, [r1] + bx lr + .align 2, 0 +_0806F1E4: .4byte gUnknown_20370FF +_0806F1E8: .4byte gUnknown_3005024 +_0806F1EC: .4byte sub_806F1B8 + thumb_func_end sub_806F1D4 + + thumb_func_start sub_806F1F0 +sub_806F1F0: @ 806F1F0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0806F210 @ =gUnknown_3005098 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0806F214 + cmp r0, 0x1 + beq _0806F238 + b _0806F24E + .align 2, 0 +_0806F210: .4byte gUnknown_3005098 +_0806F214: + bl sub_811B0D0 + cmp r0, 0x1 + bne _0806F220 + bl sub_81198EC +_0806F220: + ldr r1, _0806F230 @ =gUnknown_20370F0 + ldr r0, _0806F234 @ =sub_806F280 + str r0, [r1] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _0806F24E + .align 2, 0 +_0806F230: .4byte gUnknown_20370F0 +_0806F234: .4byte sub_806F280 +_0806F238: + ldr r0, _0806F254 @ =gUnknown_20370F0 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806F24E + adds r0, r5, 0 + bl sub_8077508 +_0806F24E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806F254: .4byte gUnknown_20370F0 + thumb_func_end sub_806F1F0 + + thumb_func_start sub_806F258 +sub_806F258: @ 806F258 + push {lr} + bl sub_805642C + cmp r0, 0 + bne _0806F26E + bl sub_8068974 + bl sub_805C270 + bl sub_805C780 +_0806F26E: + ldr r0, _0806F27C @ =sub_806F1F0 + bl sub_806F188 + bl sub_8069940 + pop {r0} + bx r0 + .align 2, 0 +_0806F27C: .4byte sub_806F1F0 + thumb_func_end sub_806F258 + + thumb_func_start sub_806F280 +sub_806F280: @ 806F280 + push {r4,lr} + ldr r0, _0806F35C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0806F2D2 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + negs r0, r0 + bl sub_810F904 + ldr r4, _0806F360 @ =gUnknown_20370F4 + strb r0, [r4] + bl sub_80BF708 + lsls r0, 24 + cmp r0, 0 + bne _0806F2D2 + bl sub_811B0D0 + cmp r0, 0x1 + beq _0806F2D2 + ldr r0, _0806F364 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + bne _0806F2D2 + ldr r2, _0806F368 @ =gUnknown_83A7394 + ldr r1, _0806F36C @ =gUnknown_20370F6 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + movs r1, 0x2 + bl sub_8113018 +_0806F2D2: + ldr r0, _0806F35C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0806F320 + movs r0, 0x5 + bl sub_80722CC + movs r0, 0x1 + bl sub_810F904 + ldr r4, _0806F360 @ =gUnknown_20370F4 + strb r0, [r4] + bl sub_80BF708 + lsls r0, 24 + cmp r0, 0 + bne _0806F320 + bl sub_811B0D0 + cmp r0, 0x1 + beq _0806F320 + ldr r0, _0806F364 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x13] + cmp r0, 0 + bne _0806F320 + ldr r2, _0806F368 @ =gUnknown_83A7394 + ldr r1, _0806F36C @ =gUnknown_20370F6 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + movs r1, 0x2 + bl sub_8113018 +_0806F320: + ldr r0, _0806F35C @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806F378 + movs r0, 0x5 + bl sub_80722CC + bl sub_806F3CC + lsls r0, 24 + cmp r0, 0 + beq _0806F358 + ldr r3, _0806F370 @ =gUnknown_20370F0 + ldr r1, _0806F374 @ =gUnknown_83A7344 + ldr r2, _0806F36C @ =gUnknown_20370F6 + ldr r0, _0806F360 @ =gUnknown_20370F4 + ldrb r0, [r0] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + str r0, [r3] + bl sub_806F394 +_0806F358: + movs r0, 0 + b _0806F38E + .align 2, 0 +_0806F35C: .4byte gUnknown_30030F0 +_0806F360: .4byte gUnknown_20370F4 +_0806F364: .4byte gUnknown_300500C +_0806F368: .4byte gUnknown_83A7394 +_0806F36C: .4byte gUnknown_20370F6 +_0806F370: .4byte gUnknown_20370F0 +_0806F374: .4byte gUnknown_83A7344 +_0806F378: + movs r0, 0xA + ands r0, r1 + cmp r0, 0 + beq _0806F358 + bl sub_806EF18 + bl sub_80F7998 + bl sub_806FEA0 + movs r0, 0x1 +_0806F38E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_806F280 + + thumb_func_start sub_806F394 +sub_806F394: @ 806F394 + push {lr} + ldr r0, _0806F3BC @ =gUnknown_20370F0 + ldr r1, [r0] + ldr r0, _0806F3C0 @ =sub_806F4E8 + cmp r1, r0 + beq _0806F3B8 + ldr r0, _0806F3C4 @ =sub_806F540 + cmp r1, r0 + beq _0806F3B8 + ldr r0, _0806F3C8 @ =sub_806F554 + cmp r1, r0 + beq _0806F3B8 + bl sub_80CCB68 + movs r0, 0x1 + movs r1, 0 + bl sub_807A818 +_0806F3B8: + pop {r0} + bx r0 + .align 2, 0 +_0806F3BC: .4byte gUnknown_20370F0 +_0806F3C0: .4byte sub_806F4E8 +_0806F3C4: .4byte sub_806F540 +_0806F3C8: .4byte sub_806F554 + thumb_func_end sub_806F394 + + thumb_func_start sub_806F3CC +sub_806F3CC: @ 806F3CC + push {lr} + ldr r1, _0806F3F8 @ =gUnknown_83A7344 + ldr r2, _0806F3FC @ =gUnknown_20370F6 + ldr r0, _0806F400 @ =gUnknown_20370F4 + ldrb r0, [r0] + adds r0, r2 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r1, [r0] + ldr r0, _0806F404 @ =sub_806F410 + cmp r1, r0 + bne _0806F408 + movs r0, 0 + bl sub_8088E8C + lsls r0, 16 + cmp r0, 0 + bne _0806F408 + movs r0, 0 + b _0806F40A + .align 2, 0 +_0806F3F8: .4byte gUnknown_83A7344 +_0806F3FC: .4byte gUnknown_20370F6 +_0806F400: .4byte gUnknown_20370F4 +_0806F404: .4byte sub_806F410 +_0806F408: + movs r0, 0x1 +_0806F40A: + pop {r1} + bx r1 + thumb_func_end sub_806F3CC + + thumb_func_start sub_806F410 +sub_806F410: @ 806F410 + push {lr} + ldr r0, _0806F424 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0806F428 + movs r0, 0 + b _0806F442 + .align 2, 0 +_0806F424: .4byte gUnknown_2037AB8 +_0806F428: + movs r0, 0x29 + bl sub_8054E90 + bl sub_807B004 + bl sub_806EF18 + bl sub_80563F0 + ldr r0, _0806F448 @ =sub_810275C + bl sub_8000544 + movs r0, 0x1 +_0806F442: + pop {r1} + bx r1 + .align 2, 0 +_0806F448: .4byte sub_810275C + thumb_func_end sub_806F410 + + thumb_func_start sub_806F44C +sub_806F44C: @ 806F44C + push {lr} + ldr r0, _0806F460 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0806F464 + movs r0, 0 + b _0806F478 + .align 2, 0 +_0806F460: .4byte gUnknown_2037AB8 +_0806F464: + bl sub_807B004 + bl sub_806EF18 + bl sub_80563F0 + ldr r0, _0806F47C @ =sub_8126EB0 + bl sub_8000544 + movs r0, 0x1 +_0806F478: + pop {r1} + bx r1 + .align 2, 0 +_0806F47C: .4byte sub_8126EB0 + thumb_func_end sub_806F44C + + thumb_func_start sub_806F480 +sub_806F480: @ 806F480 + push {lr} + ldr r0, _0806F494 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0806F498 + movs r0, 0 + b _0806F4AC + .align 2, 0 +_0806F494: .4byte gUnknown_2037AB8 +_0806F498: + bl sub_807B004 + bl sub_806EF18 + bl sub_80563F0 + ldr r0, _0806F4B0 @ =sub_8107EB8 + bl sub_8000544 + movs r0, 0x1 +_0806F4AC: + pop {r1} + bx r1 + .align 2, 0 +_0806F4B0: .4byte sub_8107EB8 + thumb_func_end sub_806F480 + + thumb_func_start sub_806F4B4 +sub_806F4B4: @ 806F4B4 + push {lr} + ldr r0, _0806F4C8 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0806F4CC + movs r0, 0 + b _0806F4E0 + .align 2, 0 +_0806F4C8: .4byte gUnknown_2037AB8 +_0806F4CC: + bl sub_807B004 + bl sub_806EF18 + bl sub_80563F0 + ldr r0, _0806F4E4 @ =sub_80568A8 + bl sub_808B698 + movs r0, 0x1 +_0806F4E0: + pop {r1} + bx r1 + .align 2, 0 +_0806F4E4: .4byte sub_80568A8 + thumb_func_end sub_806F4B4 + + thumb_func_start sub_806F4E8 +sub_806F4E8: @ 806F4E8 + ldr r1, _0806F4F4 @ =gUnknown_20370F0 + ldr r0, _0806F4F8 @ =sub_806F5A4 + str r0, [r1] + movs r0, 0 + bx lr + .align 2, 0 +_0806F4F4: .4byte gUnknown_20370F0 +_0806F4F8: .4byte sub_806F5A4 + thumb_func_end sub_806F4E8 + + thumb_func_start sub_806F4FC +sub_806F4FC: @ 806F4FC + push {lr} + ldr r0, _0806F510 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0806F514 + movs r0, 0 + b _0806F52E + .align 2, 0 +_0806F510: .4byte gUnknown_2037AB8 +_0806F514: + bl sub_807B004 + bl sub_806EF18 + bl sub_80563F0 + ldr r0, _0806F534 @ =sub_8088388 + bl sub_8000544 + ldr r1, _0806F538 @ =gUnknown_30030F0 + ldr r0, _0806F53C @ =sub_80568A8 + str r0, [r1, 0x8] + movs r0, 0x1 +_0806F52E: + pop {r1} + bx r1 + .align 2, 0 +_0806F534: .4byte sub_8088388 +_0806F538: .4byte gUnknown_30030F0 +_0806F53C: .4byte sub_80568A8 + thumb_func_end sub_806F4FC + + thumb_func_start sub_806F540 +sub_806F540: @ 806F540 + push {lr} + bl sub_806EF18 + bl sub_80F7998 + bl sub_806FEA0 + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_806F540 + + thumb_func_start sub_806F554 +sub_806F554: @ 806F554 + push {lr} + bl sub_806EF18 + bl sub_80F7998 + bl sub_806FEA0 + bl sub_80A0F3C + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_806F554 + + thumb_func_start sub_806F56C +sub_806F56C: @ 806F56C + push {lr} + ldr r0, _0806F580 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0806F584 + movs r0, 0 + b _0806F598 + .align 2, 0 +_0806F580: .4byte gUnknown_2037AB8 +_0806F584: + bl sub_807B004 + bl sub_80563F0 + ldr r0, _0806F59C @ =gUnknown_300502C + ldrb r0, [r0] + ldr r1, _0806F5A0 @ =sub_80568A8 + bl sub_808B700 + movs r0, 0x1 +_0806F598: + pop {r1} + bx r1 + .align 2, 0 +_0806F59C: .4byte gUnknown_300502C +_0806F5A0: .4byte sub_80568A8 + thumb_func_end sub_806F56C + + thumb_func_start sub_806F5A4 +sub_806F5A4: @ 806F5A4 + push {lr} + bl sub_812B234 + movs r0, 0xC + bl sub_812B1F0 + bl sub_806F624 + ldr r1, _0806F5C0 @ =gUnknown_20370F0 + ldr r0, _0806F5C4 @ =sub_806F5C8 + str r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F5C0: .4byte gUnknown_20370F0 +_0806F5C4: .4byte sub_806F5C8 + thumb_func_end sub_806F5A4 + + thumb_func_start sub_806F5C8 +sub_806F5C8: @ 806F5C8 + push {lr} + bl sub_806F648 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0806F604 + cmp r0, 0x1 + ble _0806F61C + cmp r0, 0x2 + beq _0806F5E4 + cmp r0, 0x3 + beq _0806F604 + b _0806F61C +_0806F5E4: + movs r0, 0 + movs r1, 0 + bl sub_810F260 + bl sub_806F14C + bl sub_812B248 + ldr r1, _0806F5FC @ =gUnknown_20370F0 + ldr r0, _0806F600 @ =sub_806F280 + str r0, [r1] + b _0806F61C + .align 2, 0 +_0806F5FC: .4byte gUnknown_20370F0 +_0806F600: .4byte sub_806F280 +_0806F604: + movs r0, 0 + movs r1, 0x1 + bl sub_810F260 + bl sub_80696C0 + bl sub_806994C + bl sub_812B248 + movs r0, 0x1 + b _0806F61E +_0806F61C: + movs r0, 0 +_0806F61E: + pop {r1} + bx r1 + thumb_func_end sub_806F5C8 + + thumb_func_start sub_806F624 +sub_806F624: @ 806F624 + push {lr} + bl sub_80590D8 + ldr r1, _0806F63C @ =gUnknown_3000FA4 + ldr r0, _0806F640 @ =sub_806F7A8 + str r0, [r1] + ldr r1, _0806F644 @ =gUnknown_3000FA9 + movs r0, 0 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0806F63C: .4byte gUnknown_3000FA4 +_0806F640: .4byte sub_806F7A8 +_0806F644: .4byte gUnknown_3000FA9 + thumb_func_end sub_806F624 + + thumb_func_start sub_806F648 +sub_806F648: @ 806F648 + push {lr} + bl sub_80F6CBC + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + beq _0806F674 + ldr r1, _0806F66C @ =gUnknown_3000FA9 + movs r0, 0 + strb r0, [r1] + ldr r0, _0806F670 @ =gUnknown_3000FA4 + ldr r0, [r0] + bl _call_via_r0 + lsls r0, 24 + lsrs r0, 24 + b _0806F676 + .align 2, 0 +_0806F66C: .4byte gUnknown_3000FA9 +_0806F670: .4byte gUnknown_3000FA4 +_0806F674: + movs r0, 0 +_0806F676: + pop {r1} + bx r1 + thumb_func_end sub_806F648 + + thumb_func_start sub_806F67C +sub_806F67C: @ 806F67C + push {lr} + bl sub_812B234 + movs r0, 0xC + bl sub_812B1F0 + bl sub_806F624 + ldr r0, _0806F698 @ =sub_806F6D4 + movs r1, 0x50 + bl sub_807741C + pop {r0} + bx r0 + .align 2, 0 +_0806F698: .4byte sub_806F6D4 + thumb_func_end sub_806F67C + + thumb_func_start sub_806F69C +sub_806F69C: @ 806F69C + push {r4,lr} + adds r2, r0, 0 + adds r4, r1, 0 + ldr r0, _0806F6C8 @ =gUnknown_2021D18 + adds r1, r2, 0 + bl sub_8008FCC + movs r0, 0 + movs r1, 0x1 + bl sub_80F7768 + movs r0, 0x1 + bl sub_80F6E08 + ldr r1, _0806F6CC @ =gUnknown_3000FA9 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _0806F6D0 @ =gUnknown_3000FA4 + str r4, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806F6C8: .4byte gUnknown_2021D18 +_0806F6CC: .4byte gUnknown_3000FA9 +_0806F6D0: .4byte gUnknown_3000FA4 + thumb_func_end sub_806F69C + + thumb_func_start sub_806F6D4 +sub_806F6D4: @ 806F6D4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_806F648 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + beq _0806F700 + cmp r1, 0x1 + bgt _0806F6F0 + cmp r1, 0 + beq _0806F712 + b _0806F704 +_0806F6F0: + cmp r1, 0x3 + bgt _0806F704 + ldr r1, _0806F6FC @ =gUnknown_20370D0 + movs r0, 0 + strh r0, [r1] + b _0806F704 + .align 2, 0 +_0806F6FC: .4byte gUnknown_20370D0 +_0806F700: + ldr r0, _0806F718 @ =gUnknown_20370D0 + strh r1, [r0] +_0806F704: + adds r0, r4, 0 + bl sub_8077508 + bl sub_8069B34 + bl sub_812B248 +_0806F712: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806F718: .4byte gUnknown_20370D0 + thumb_func_end sub_806F6D4 + + thumb_func_start sub_806F71C +sub_806F71C: @ 806F71C + push {lr} + movs r0, 0 + movs r1, 0x1 + bl sub_80F6F54 + pop {r0} + bx r0 + thumb_func_end sub_806F71C + + thumb_func_start sub_806F72C +sub_806F72C: @ 806F72C + push {lr} + bl sub_806FE84 + pop {r0} + bx r0 + thumb_func_end sub_806F72C + + thumb_func_start sub_806F738 +sub_806F738: @ 806F738 + ldr r1, _0806F740 @ =gUnknown_3000FA8 + movs r0, 0x3C + strb r0, [r1] + bx lr + .align 2, 0 +_0806F740: .4byte gUnknown_3000FA8 + thumb_func_end sub_806F738 + + thumb_func_start sub_806F744 +sub_806F744: @ 806F744 + push {lr} + ldr r1, _0806F764 @ =gUnknown_3000FA8 + ldrb r0, [r1] + subs r2, r0, 0x1 + strb r2, [r1] + ldr r0, _0806F768 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0806F76C + lsls r0, r2, 24 + cmp r0, 0 + beq _0806F772 + movs r0, 0 + b _0806F774 + .align 2, 0 +_0806F764: .4byte gUnknown_3000FA8 +_0806F768: .4byte gUnknown_30030F0 +_0806F76C: + movs r0, 0x5 + bl sub_80722CC +_0806F772: + movs r0, 0x1 +_0806F774: + pop {r1} + bx r1 + thumb_func_end sub_806F744 + + thumb_func_start sub_806F778 +sub_806F778: @ 806F778 + push {lr} + ldr r1, _0806F794 @ =gUnknown_3000FA8 + ldrb r0, [r1] + cmp r0, 0 + bne _0806F79C + ldr r0, _0806F798 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806F7A0 + movs r0, 0x1 + b _0806F7A2 + .align 2, 0 +_0806F794: .4byte gUnknown_3000FA8 +_0806F798: .4byte gUnknown_30030F0 +_0806F79C: + subs r0, 0x1 + strb r0, [r1] +_0806F7A0: + movs r0, 0 +_0806F7A2: + pop {r1} + bx r1 + thumb_func_end sub_806F778 + + thumb_func_start sub_806F7A8 +sub_806F7A8: @ 806F7A8 + push {lr} + bl sub_80F793C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_80F6F9C + bl sub_80F7948 + movs r0, 0 + bl sub_8112EDC + bl sub_806FCF4 + ldr r0, _0806F7D4 @ =gUnknown_81C55C9 + ldr r1, _0806F7D8 @ =sub_806F7DC + bl sub_806F69C + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F7D4: .4byte gUnknown_81C55C9 +_0806F7D8: .4byte sub_806F7DC + thumb_func_end sub_806F7A8 + + thumb_func_start sub_806F7DC +sub_806F7DC: @ 806F7DC + push {lr} + bl sub_80F7858 + ldr r1, _0806F7F0 @ =gUnknown_3000FA4 + ldr r0, _0806F7F4 @ =sub_806F7F8 + str r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F7F0: .4byte gUnknown_3000FA4 +_0806F7F4: .4byte sub_806F7F8 + thumb_func_end sub_806F7DC + + thumb_func_start sub_806F7F8 +sub_806F7F8: @ 806F7F8 + push {lr} + bl sub_81100C8 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0806F81A + cmp r1, 0 + bgt _0806F814 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0806F858 + b _0806F864 +_0806F814: + cmp r1, 0x1 + beq _0806F858 + b _0806F864 +_0806F81A: + ldr r0, _0806F838 @ =gUnknown_30053A0 + ldrh r0, [r0] + cmp r0, 0 + beq _0806F826 + cmp r0, 0x2 + bne _0806F82E +_0806F826: + ldr r0, _0806F83C @ =gUnknown_2031DB0 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F848 +_0806F82E: + ldr r1, _0806F840 @ =gUnknown_3000FA4 + ldr r0, _0806F844 @ =sub_806F86C + str r0, [r1] + b _0806F864 + .align 2, 0 +_0806F838: .4byte gUnknown_30053A0 +_0806F83C: .4byte gUnknown_2031DB0 +_0806F840: .4byte gUnknown_3000FA4 +_0806F844: .4byte sub_806F86C +_0806F848: + ldr r1, _0806F850 @ =gUnknown_3000FA4 + ldr r0, _0806F854 @ =sub_806F924 + str r0, [r1] + b _0806F864 + .align 2, 0 +_0806F850: .4byte gUnknown_3000FA4 +_0806F854: .4byte sub_806F924 +_0806F858: + bl sub_806F72C + bl sub_806F71C + movs r0, 0x2 + b _0806F866 +_0806F864: + movs r0, 0 +_0806F866: + pop {r1} + bx r1 + thumb_func_end sub_806F7F8 + + thumb_func_start sub_806F86C +sub_806F86C: @ 806F86C + push {lr} + ldr r0, _0806F880 @ =gUnknown_2031DB0 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0806F88C + ldr r0, _0806F884 @ =gUnknown_81C566A + ldr r1, _0806F888 @ =sub_806F8C0 + bl sub_806F69C + b _0806F894 + .align 2, 0 +_0806F880: .4byte gUnknown_2031DB0 +_0806F884: .4byte gUnknown_81C566A +_0806F888: .4byte sub_806F8C0 +_0806F88C: + ldr r0, _0806F89C @ =gUnknown_81C55EA + ldr r1, _0806F8A0 @ =sub_806F8A4 + bl sub_806F69C +_0806F894: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F89C: .4byte gUnknown_81C55EA +_0806F8A0: .4byte sub_806F8A4 + thumb_func_end sub_806F86C + + thumb_func_start sub_806F8A4 +sub_806F8A4: @ 806F8A4 + push {lr} + bl sub_80F7858 + ldr r1, _0806F8B8 @ =gUnknown_3000FA4 + ldr r0, _0806F8BC @ =sub_806F8DC + str r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F8B8: .4byte gUnknown_3000FA4 +_0806F8BC: .4byte sub_806F8DC + thumb_func_end sub_806F8A4 + + thumb_func_start sub_806F8C0 +sub_806F8C0: @ 806F8C0 + push {lr} + bl sub_80F7880 + ldr r1, _0806F8D4 @ =gUnknown_3000FA4 + ldr r0, _0806F8D8 @ =sub_806F8DC + str r0, [r1] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F8D4: .4byte gUnknown_3000FA4 +_0806F8D8: .4byte sub_806F8DC + thumb_func_end sub_806F8C0 + + thumb_func_start sub_806F8DC +sub_806F8DC: @ 806F8DC + push {lr} + bl sub_81100C8 + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _0806F8FE + cmp r1, 0 + bgt _0806F8F8 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0806F910 + b _0806F91C +_0806F8F8: + cmp r1, 0x1 + beq _0806F910 + b _0806F91C +_0806F8FE: + ldr r1, _0806F908 @ =gUnknown_3000FA4 + ldr r0, _0806F90C @ =sub_806F924 + str r0, [r1] + b _0806F91C + .align 2, 0 +_0806F908: .4byte gUnknown_3000FA4 +_0806F90C: .4byte sub_806F924 +_0806F910: + bl sub_806F72C + bl sub_806F71C + movs r0, 0x2 + b _0806F91E +_0806F91C: + movs r0, 0 +_0806F91E: + pop {r1} + bx r1 + thumb_func_end sub_806F8DC + + thumb_func_start sub_806F924 +sub_806F924: @ 806F924 + push {lr} + bl sub_8112450 + ldr r0, _0806F938 @ =gUnknown_81C5625 + ldr r1, _0806F93C @ =sub_806F940 + bl sub_806F69C + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F938: .4byte gUnknown_81C5625 +_0806F93C: .4byte sub_806F940 + thumb_func_end sub_806F924 + + thumb_func_start sub_806F940 +sub_806F940: @ 806F940 + push {r4,lr} + movs r0, 0 + bl sub_8054E90 + ldr r4, _0806F95C @ =gUnknown_2031DB0 + ldrb r0, [r4] + cmp r0, 0x1 + bne _0806F960 + movs r0, 0x4 + bl sub_80DA364 + movs r0, 0 + strb r0, [r4] + b _0806F966 + .align 2, 0 +_0806F95C: .4byte gUnknown_2031DB0 +_0806F960: + movs r0, 0 + bl sub_80DA364 +_0806F966: + ldr r1, _0806F974 @ =gUnknown_3000FA4 + ldr r0, _0806F978 @ =sub_806F97C + str r0, [r1] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0806F974: .4byte gUnknown_3000FA4 +_0806F978: .4byte sub_806F97C + thumb_func_end sub_806F940 + + thumb_func_start sub_806F97C +sub_806F97C: @ 806F97C + push {lr} + ldr r0, _0806F990 @ =gUnknown_3005420 + ldrh r0, [r0] + cmp r0, 0x1 + bne _0806F99C + ldr r0, _0806F994 @ =gUnknown_81C5647 + ldr r1, _0806F998 @ =sub_806F9B8 + bl sub_806F69C + b _0806F9A4 + .align 2, 0 +_0806F990: .4byte gUnknown_3005420 +_0806F994: .4byte gUnknown_81C5647 +_0806F998: .4byte sub_806F9B8 +_0806F99C: + ldr r0, _0806F9B0 @ =gUnknown_841614B + ldr r1, _0806F9B4 @ =sub_806FA04 + bl sub_806F69C +_0806F9A4: + bl sub_806F738 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F9B0: .4byte gUnknown_841614B +_0806F9B4: .4byte sub_806FA04 + thumb_func_end sub_806F97C + + thumb_func_start sub_806F9B8 +sub_806F9B8: @ 806F9B8 + push {lr} + bl sub_80F6CBC + lsls r0, 16 + cmp r0, 0 + bne _0806F9D0 + movs r0, 0x30 + bl sub_80722CC + ldr r1, _0806F9D8 @ =gUnknown_3000FA4 + ldr r0, _0806F9DC @ =sub_806F9E0 + str r0, [r1] +_0806F9D0: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806F9D8: .4byte gUnknown_3000FA4 +_0806F9DC: .4byte sub_806F9E0 + thumb_func_end sub_806F9B8 + + thumb_func_start sub_806F9E0 +sub_806F9E0: @ 806F9E0 + push {lr} + bl sub_80723E0 + lsls r0, 24 + cmp r0, 0 + bne _0806F9FE + bl sub_806F744 + lsls r0, 24 + cmp r0, 0 + beq _0806F9FE + bl sub_806F72C + movs r0, 0x1 + b _0806FA00 +_0806F9FE: + movs r0, 0 +_0806FA00: + pop {r1} + bx r1 + thumb_func_end sub_806F9E0 + + thumb_func_start sub_806FA04 +sub_806FA04: @ 806FA04 + push {lr} + bl sub_80F6CBC + lsls r0, 16 + cmp r0, 0 + bne _0806FA1C + movs r0, 0x16 + bl sub_80722CC + ldr r1, _0806FA24 @ =gUnknown_3000FA4 + ldr r0, _0806FA28 @ =sub_806FA2C + str r0, [r1] +_0806FA1C: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0806FA24: .4byte gUnknown_3000FA4 +_0806FA28: .4byte sub_806FA2C + thumb_func_end sub_806FA04 + + thumb_func_start sub_806FA2C +sub_806FA2C: @ 806FA2C + push {lr} + bl sub_806F778 + lsls r0, 24 + cmp r0, 0 + beq _0806FA40 + bl sub_806F72C + movs r0, 0x3 + b _0806FA42 +_0806FA40: + movs r0, 0 +_0806FA42: + pop {r1} + bx r1 + thumb_func_end sub_806FA2C + + thumb_func_start sub_806FA48 +sub_806FA48: @ 806FA48 + push {lr} + bl sub_8070474 + pop {r0} + bx r0 + thumb_func_end sub_806FA48 + + thumb_func_start sub_806FA54 +sub_806FA54: @ 806FA54 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r8, r0 + ldrb r0, [r0] + cmp r0, 0x4 + bls _0806FA66 + b _0806FB64 +_0806FA66: + lsls r0, 2 + ldr r1, _0806FA70 @ =_0806FA74 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806FA70: .4byte _0806FA74 + .align 2, 0 +_0806FA74: + .4byte _0806FA88 + .4byte _0806FB00 + .4byte _0806FB12 + .4byte _0806FB3C + .4byte _0806FB60 +_0806FA88: + movs r0, 0 + movs r1, 0 + bl sub_8000A38 + movs r0, 0 + bl sub_80006F4 + bl sub_8087E64 + movs r2, 0xA0 + lsls r2, 19 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, _0806FAF4 @ =0x040000d4 + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _0806FAF8 @ =0x81000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r2, 0xC0 + lsls r2, 19 + movs r3, 0xC0 + lsls r3, 9 + mov r4, sp + movs r6, 0 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _0806FAFC @ =0x81000800 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_0806FACA: + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + str r7, [r1, 0x8] + ldr r0, [r1, 0x8] + adds r2, r5 + subs r3, r5 + cmp r3, r5 + bhi _0806FACA + strh r6, [r4] + mov r0, sp + str r0, [r1] + str r2, [r1, 0x4] + lsrs r0, r3, 1 + mov r2, r12 + orrs r0, r2 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + b _0806FB64 + .align 2, 0 +_0806FAF4: .4byte 0x040000d4 +_0806FAF8: .4byte 0x81000200 +_0806FAFC: .4byte 0x81000800 +_0806FB00: + bl sub_8006B10 + bl sub_80773BC + bl sub_8070528 + bl sub_8087EA4 + b _0806FB64 +_0806FB12: + movs r0, 0 + bl sub_8001618 + ldr r1, _0806FB34 @ =gUnknown_83A73B8 + movs r0, 0 + movs r2, 0x1 + bl sub_8001658 + ldr r0, _0806FB38 @ =gUnknown_83A73BC + bl sub_8003B24 + movs r0, 0 + movs r1, 0x8 + movs r2, 0xF0 + bl sub_814FF2C + b _0806FB64 + .align 2, 0 +_0806FB34: .4byte gUnknown_83A73B8 +_0806FB38: .4byte gUnknown_83A73BC +_0806FB3C: + movs r0, 0 + bl sub_80019BC + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl sub_80714D4 + ldr r0, _0806FB5C @ =sub_806FA48 + bl sub_80006F4 + movs r0, 0x1 + bl sub_8000B68 + b _0806FB64 + .align 2, 0 +_0806FB5C: .4byte sub_806FA48 +_0806FB60: + movs r0, 0x1 + b _0806FB6E +_0806FB64: + mov r1, r8 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0 +_0806FB6E: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_806FA54 + + thumb_func_start sub_806FB7C +sub_806FB7C: @ 806FB7C + push {lr} + ldr r0, _0806FB9C @ =gUnknown_3003528 + bl sub_806FA54 + cmp r0, 0 + beq _0806FB96 + ldr r0, _0806FBA0 @ =sub_806FBB8 + movs r1, 0x50 + bl sub_807741C + ldr r0, _0806FBA4 @ =sub_806FBA8 + bl sub_8000544 +_0806FB96: + pop {r0} + bx r0 + .align 2, 0 +_0806FB9C: .4byte gUnknown_3003528 +_0806FBA0: .4byte sub_806FBB8 +_0806FBA4: .4byte sub_806FBA8 + thumb_func_end sub_806FB7C + + thumb_func_start sub_806FBA8 +sub_806FBA8: @ 806FBA8 + push {lr} + bl sub_8077578 + bl sub_80704D0 + pop {r0} + bx r0 + thumb_func_end sub_806FBA8 + + thumb_func_start sub_806FBB8 +sub_806FBB8: @ 806FBB8 + push {r4,r5,lr} + sub sp, 0x10 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _0806FBEC @ =gUnknown_3005098 + adds r5, r0, r1 + ldr r0, _0806FBF0 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0806FBD8 + b _0806FCE8 +_0806FBD8: + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0x6 + bls _0806FBE2 + b _0806FCE8 +_0806FBE2: + lsls r0, 2 + ldr r1, _0806FBF4 @ =_0806FBF8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806FBEC: .4byte gUnknown_3005098 +_0806FBF0: .4byte gUnknown_2037AB8 +_0806FBF4: .4byte _0806FBF8 + .align 2, 0 +_0806FBF8: + .4byte _0806FC14 + .4byte _0806FC80 + .4byte _0806FC8C + .4byte _0806FC9C + .4byte _0806FCB0 + .4byte _0806FCC8 + .4byte _0806FCD8 +_0806FC14: + movs r0, 0 + movs r1, 0x11 + bl sub_800445C + ldr r2, _0806FC74 @ =gUnknown_8419F54 + movs r4, 0 + str r4, [sp] + movs r0, 0x2 + str r0, [sp, 0x4] + movs r0, 0x1 + str r0, [sp, 0x8] + movs r0, 0x3 + str r0, [sp, 0xC] + movs r0, 0 + movs r1, 0x2 + movs r3, 0xFF + bl sub_80F6CD0 + movs r0, 0 + movs r1, 0x8 + movs r2, 0xF + bl sub_8150048 + movs r0, 0 + bl sub_8003FA0 + movs r0, 0 + movs r1, 0x3 + bl sub_8003F20 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + ldr r0, _0806FC78 @ =gUnknown_3003F3C + ldrb r0, [r0] + cmp r0, 0 + beq _0806FC7C + bl sub_811B0D0 + cmp r0, 0 + beq _0806FC7C + movs r0, 0x5 + b _0806FCE6 + .align 2, 0 +_0806FC74: .4byte gUnknown_8419F54 +_0806FC78: .4byte gUnknown_3003F3C +_0806FC7C: + movs r0, 0x1 + b _0806FCE6 +_0806FC80: + bl sub_804C1C0 + bl sub_80DA45C + movs r0, 0x2 + b _0806FCE6 +_0806FC8C: + bl sub_80DA4A0 + lsls r0, 24 + cmp r0, 0 + beq _0806FCE8 + bl sub_804C1DC + b _0806FCE4 +_0806FC9C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + movs r0, 0x4 + b _0806FCE6 +_0806FCB0: + bl sub_8003ECC + ldr r0, _0806FCC4 @ =gUnknown_30030F0 + ldr r0, [r0, 0x8] + bl sub_8000544 + adds r0, r4, 0 + bl sub_8077508 + b _0806FCE8 + .align 2, 0 +_0806FCC4: .4byte gUnknown_30030F0 +_0806FCC8: + ldr r0, _0806FCD4 @ =sub_80DA634 + movs r1, 0x5 + bl sub_807741C + movs r0, 0x6 + b _0806FCE6 + .align 2, 0 +_0806FCD4: .4byte sub_80DA634 +_0806FCD8: + ldr r0, _0806FCF0 @ =sub_80DA634 + bl sub_8077650 + lsls r0, 24 + cmp r0, 0 + bne _0806FCE8 +_0806FCE4: + movs r0, 0x3 +_0806FCE6: + strh r0, [r5] +_0806FCE8: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806FCF0: .4byte sub_80DA634 + thumb_func_end sub_806FBB8 + + thumb_func_start sub_806FCF4 +sub_806FCF4: @ 806FCF4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + ldr r5, _0806FE54 @ =gUnknown_2037104 + ldr r0, _0806FE58 @ =gUnknown_83A73CC + bl sub_8003CE4 + strb r0, [r5] + ldrb r0, [r5] + ldr r4, _0806FE5C @ =0x0000021d + adds r1, r4, 0 + movs r2, 0xD0 + bl sub_814FF2C + ldrb r0, [r5] + movs r1, 0 + adds r2, r4, 0 + movs r3, 0xD + bl sub_810F2E8 + ldr r4, _0806FE60 @ =gUnknown_2021D18 + movs r0, 0x3 + adds r1, r4, 0 + movs r2, 0x8 + bl sub_80F7FCC + movs r6, 0x1 + negs r6, r6 + movs r0, 0x2 + adds r1, r4, 0 + adds r2, r6, 0 + bl sub_8005ED4 + movs r2, 0x70 + subs r2, r0 + lsrs r2, 1 + lsls r2, 24 + lsrs r2, 24 + ldrb r0, [r5] + ldr r1, _0806FE64 @ =gUnknown_83A73DC + str r1, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0x2 + movs r3, 0 + bl sub_812E51C + movs r0, 0x2 + adds r1, r4, 0 + adds r2, r6, 0 + bl sub_8005ED4 + ldrb r0, [r5] + ldr r1, _0806FE68 @ =gUnknown_83A73D4 + mov r9, r1 + str r1, [sp] + str r6, [sp, 0x4] + ldr r1, _0806FE6C @ =gUnknown_841617A + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0x2 + movs r3, 0xE + bl sub_812E51C + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x2 + bl sub_80F7FCC + ldrb r0, [r5] + adds r1, r4, 0 + movs r2, 0x3C + movs r3, 0xE + bl sub_812E6DC + ldrb r0, [r5] + mov r1, r9 + str r1, [sp] + str r6, [sp, 0x4] + ldr r1, _0806FE70 @ =gUnknown_8416181 + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0x2 + movs r3, 0x1C + bl sub_812E51C + movs r0, 0x4 + adds r1, r4, 0 + movs r2, 0x2 + bl sub_80F7FCC + ldrb r0, [r5] + ldr r1, _0806FE74 @ =gUnknown_83A73D8 + mov r8, r1 + str r1, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0 + movs r2, 0x3C + movs r3, 0x1C + bl sub_812E51C + movs r7, 0x2A + ldr r0, _0806FE78 @ =0x00000829 + bl sub_806E6D0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806FE0A + ldrb r0, [r5] + mov r1, r9 + str r1, [sp] + str r6, [sp, 0x4] + ldr r1, _0806FE7C @ =gUnknown_8416188 + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0x2 + movs r3, 0x2A + bl sub_812E51C + movs r0, 0x1 + adds r1, r4, 0 + movs r2, 0x2 + bl sub_80F7FCC + ldrb r0, [r5] + mov r1, r8 + str r1, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0 + movs r2, 0x3C + movs r3, 0x2A + bl sub_812E51C + movs r7, 0x38 +_0806FE0A: + ldrb r0, [r5] + mov r1, r9 + str r1, [sp] + str r6, [sp, 0x4] + ldr r1, _0806FE80 @ =gUnknown_8416190 + str r1, [sp, 0x8] + movs r1, 0 + movs r2, 0x2 + adds r3, r7, 0 + bl sub_812E51C + movs r0, 0x2 + adds r1, r4, 0 + movs r2, 0x2 + bl sub_80F7FCC + ldrb r0, [r5] + mov r1, r8 + str r1, [sp] + str r6, [sp, 0x4] + str r4, [sp, 0x8] + movs r1, 0 + movs r2, 0x3C + adds r3, r7, 0 + bl sub_812E51C + ldrb r0, [r5] + movs r1, 0x2 + bl sub_8003F20 + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806FE54: .4byte gUnknown_2037104 +_0806FE58: .4byte gUnknown_83A73CC +_0806FE5C: .4byte 0x0000021d +_0806FE60: .4byte gUnknown_2021D18 +_0806FE64: .4byte gUnknown_83A73DC +_0806FE68: .4byte gUnknown_83A73D4 +_0806FE6C: .4byte gUnknown_841617A +_0806FE70: .4byte gUnknown_8416181 +_0806FE74: .4byte gUnknown_83A73D8 +_0806FE78: .4byte 0x00000829 +_0806FE7C: .4byte gUnknown_8416188 +_0806FE80: .4byte gUnknown_8416190 + thumb_func_end sub_806FCF4 + + thumb_func_start sub_806FE84 +sub_806FE84: @ 806FE84 + push {r4,lr} + ldr r4, _0806FE9C @ =gUnknown_2037104 + ldrb r0, [r4] + movs r1, 0 + bl sub_80F6F9C + ldrb r0, [r4] + bl sub_8003E3C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0806FE9C: .4byte gUnknown_2037104 + thumb_func_end sub_806FE84 + + thumb_func_start sub_806FEA0 +sub_806FEA0: @ 806FEA0 + push {lr} + movs r0, 0x5 + bl sub_80722CC + bl sub_80F793C + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_80F6F9C + bl sub_80F7948 + bl sub_80696C0 + bl sub_806994C + pop {r0} + bx r0 + thumb_func_end sub_806FEA0 + + thumb_func_start sub_806FEC8 +sub_806FEC8: @ 806FEC8 + ldrb r3, [r1] + adds r0, r3 + strb r2, [r0] + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bx lr + thumb_func_end sub_806FEC8 + + .align 2, 0 @ Don't pad with nop. |