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/intro.s |
first commit
Diffstat (limited to 'asm/intro.s')
-rw-r--r-- | asm/intro.s | 4841 |
1 files changed, 4841 insertions, 0 deletions
diff --git a/asm/intro.s b/asm/intro.s new file mode 100644 index 000000000..e1b2fd4b7 --- /dev/null +++ b/asm/intro.s @@ -0,0 +1,4841 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80EC5A4 +sub_80EC5A4: @ 80EC5A4 + push {lr} + bl sub_8007320 + bl sub_8007610 + bl sub_8070474 + pop {r0} + bx r0 + thumb_func_end sub_80EC5A4 + + thumb_func_start sub_80EC5B8 +sub_80EC5B8: @ 80EC5B8 + push {lr} + bl sub_80704D0 + lsls r0, 24 + cmp r0, 0 + bne _080EC5CA + ldr r0, _080EC5D0 @ =sub_80EC870 + bl sub_8000544 +_080EC5CA: + pop {r0} + bx r0 + .align 2, 0 +_080EC5D0: .4byte sub_80EC870 + thumb_func_end sub_80EC5B8 + + thumb_func_start sub_80EC5D4 +sub_80EC5D4: @ 80EC5D4 + push {r4-r6,lr} + adds r3, r0, 0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r3, 16 + lsrs r3, 16 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _080EC610 @ =gUnknown_8402280 + movs r6, 0xC0 + lsls r6, 19 + adds r3, r6 + adds r1, r3, 0 + bl LZ77UnCompVram + ldr r0, _080EC614 @ =gUnknown_84024E4 + adds r4, r6 + adds r1, r4, 0 + bl LZ77UnCompVram + ldr r0, _080EC618 @ =gUnknown_8402260 + adds r1, r5, 0 + movs r2, 0x20 + bl sub_80703EC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EC610: .4byte gUnknown_8402280 +_080EC614: .4byte gUnknown_84024E4 +_080EC618: .4byte gUnknown_8402260 + thumb_func_end sub_80EC5D4 + + thumb_func_start sub_80EC61C +sub_80EC61C: @ 80EC61C + push {lr} + ldr r0, _080EC628 @ =gUnknown_203AAD4 + bl GameCubeMultiBoot_HandleSerialInterrupt + pop {r0} + bx r0 + .align 2, 0 +_080EC628: .4byte gUnknown_203AAD4 + thumb_func_end sub_80EC61C + + thumb_func_start sub_80EC62C +sub_80EC62C: @ 80EC62C + push {r4-r6,lr} + sub sp, 0xC + ldr r0, _080EC64C @ =gUnknown_30030F0 + movs r1, 0x87 + lsls r1, 3 + adds r5, r0, r1 + ldrb r4, [r5] + cmp r4, 0x8C + bne _080EC640 + b _080EC778 +_080EC640: + cmp r4, 0x8C + bgt _080EC650 + cmp r4, 0 + beq _080EC65E + b _080EC732 + .align 2, 0 +_080EC64C: .4byte gUnknown_30030F0 +_080EC650: + cmp r4, 0x8D + bne _080EC656 + b _080EC7A4 +_080EC656: + cmp r4, 0x8E + bne _080EC65C + b _080EC808 +_080EC65C: + b _080EC732 +_080EC65E: + movs r0, 0 + bl sub_80006F4 + movs r0, 0x50 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x54 + movs r1, 0 + bl sub_8000A38 + movs r1, 0xA0 + lsls r1, 19 + ldr r2, _080EC74C @ =0x00007fff + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x10 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x12 + movs r1, 0 + bl sub_8000A38 + add r0, sp, 0x4 + strh r4, [r0] + ldr r1, _080EC750 @ =0x040000d4 + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080EC754 @ =0x8100c000 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + str r4, [sp, 0x8] + add r0, sp, 0x8 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080EC758 @ =0x85000100 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0x4 + strh r4, [r0] + str r0, [r1] + ldr r0, _080EC75C @ =0x05000002 + str r0, [r1, 0x4] + ldr r0, _080EC760 @ =0x810001ff + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl sub_8070528 + movs r1, 0xE0 + lsls r1, 6 + movs r0, 0 + movs r2, 0 + bl sub_80EC5D4 + bl sub_8087E64 + bl sub_80773BC + bl sub_8006B10 + bl sub_80088F0 + movs r0, 0x1 + negs r0, r0 + ldr r1, _080EC764 @ =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + movs r1, 0xE0 + lsls r1, 3 + movs r0, 0x8 + bl sub_8000A38 + movs r0, 0x1 + bl sub_8000B68 + ldr r0, _080EC768 @ =sub_80EC5A4 + bl sub_80006F4 + movs r1, 0xA0 + lsls r1, 1 + movs r0, 0 + bl sub_8000A38 + ldr r0, _080EC76C @ =sub_80EC61C + bl sub_8000718 + ldr r0, _080EC770 @ =gUnknown_203AAD4 + bl GameCubeMultiBoot_Init +_080EC732: + bl sub_80704D0 + ldr r0, _080EC774 @ =gUnknown_30030F0 + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r0, _080EC770 @ =gUnknown_203AAD4 + bl GameCubeMultiBoot_Main + b _080EC812 + .align 2, 0 +_080EC74C: .4byte 0x00007fff +_080EC750: .4byte 0x040000d4 +_080EC754: .4byte 0x8100c000 +_080EC758: .4byte 0x85000100 +_080EC75C: .4byte 0x05000002 +_080EC760: .4byte 0x810001ff +_080EC764: .4byte 0x0000ffff +_080EC768: .4byte sub_80EC5A4 +_080EC76C: .4byte sub_80EC61C +_080EC770: .4byte gUnknown_203AAD4 +_080EC774: .4byte gUnknown_30030F0 +_080EC778: + ldr r4, _080EC7A0 @ =gUnknown_203AAD4 + adds r0, r4, 0 + bl GameCubeMultiBoot_Main + ldrb r0, [r4, 0x2] + cmp r0, 0x1 + beq _080EC812 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _080EC812 + .align 2, 0 +_080EC7A0: .4byte gUnknown_203AAD4 +_080EC7A4: + bl sub_80704D0 + lsls r0, 24 + cmp r0, 0 + bne _080EC812 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ldr r5, _080EC7E4 @ =gUnknown_203AAD4 + ldrb r0, [r5, 0x2] + cmp r0, 0 + beq _080EC7F4 + ldrb r0, [r5, 0x2] + cmp r0, 0x2 + bne _080EC7FE + ldr r6, _080EC7E8 @ =0x020000ac + ldr r4, [r6] + ldr r0, _080EC7EC @ =0x65366347 + cmp r4, r0 + bne _080EC7DC + ldr r0, _080EC7F0 @ =gMultiBootProgram_PokemonColosseum_Start + movs r1, 0x80 + lsls r1, 18 + movs r2, 0xA0 + lsls r2, 9 + bl CpuSet + str r4, [r6] +_080EC7DC: + adds r0, r5, 0 + bl GameCubeMultiBoot_ExecuteProgram + b _080EC7FE + .align 2, 0 +_080EC7E4: .4byte gUnknown_203AAD4 +_080EC7E8: .4byte 0x020000ac +_080EC7EC: .4byte 0x65366347 +_080EC7F0: .4byte gMultiBootProgram_PokemonColosseum_Start +_080EC7F4: + bl GameCubeMultiBoot_Quit + ldr r0, _080EC804 @ =sub_800B798 + bl sub_8000718 +_080EC7FE: + movs r0, 0 + b _080EC814 + .align 2, 0 +_080EC804: .4byte sub_800B798 +_080EC808: + bl sub_800B388 + ldr r0, _080EC81C @ =sub_80EC5B8 + bl sub_8000544 +_080EC812: + movs r0, 0x1 +_080EC814: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080EC81C: .4byte sub_80EC5B8 + thumb_func_end sub_80EC62C + + thumb_func_start sub_80EC820 +sub_80EC820: @ 80EC820 + push {lr} + bl sub_80EC62C + lsls r0, 24 + cmp r0, 0 + bne _080EC858 + bl sub_8054A28 + bl sub_80D9750 + movs r0, 0 + bl sub_80DA4FC + ldr r0, _080EC85C @ =gUnknown_30053A0 + ldrh r0, [r0] + cmp r0, 0 + beq _080EC846 + cmp r0, 0x2 + bne _080EC84A +_080EC846: + bl sub_8054A18 +_080EC84A: + ldr r0, _080EC860 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x15] + lsls r0, 31 + lsrs r0, 31 + bl SetPokemonCryStereo +_080EC858: + pop {r0} + bx r0 + .align 2, 0 +_080EC85C: .4byte gUnknown_30053A0 +_080EC860: .4byte gUnknown_300500C + thumb_func_end sub_80EC820 + + thumb_func_start sub_80EC864 +sub_80EC864: @ 80EC864 + push {lr} + bl sub_80EC62C + pop {r0} + bx r0 + thumb_func_end sub_80EC864 + + thumb_func_start sub_80EC870 +sub_80EC870: @ 80EC870 + push {r4,lr} + sub sp, 0xC + ldr r0, _080EC88C @ =gUnknown_30030F0 + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + ldrb r4, [r0] + cmp r4, 0x1 + beq _080EC944 + cmp r4, 0x1 + bgt _080EC890 + cmp r4, 0 + beq _080EC8A0 + b _080EC894 + .align 2, 0 +_080EC88C: .4byte gUnknown_30030F0 +_080EC890: + cmp r4, 0x2 + beq _080EC988 +_080EC894: + ldr r0, _080EC928 @ =gUnknown_30030F0 + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + movs r1, 0 + strb r1, [r0] +_080EC8A0: + movs r0, 0 + bl sub_80006F4 + movs r0, 0 + movs r1, 0 + bl sub_8000A38 + ldr r0, _080EC92C @ =gHeap + movs r1, 0xE0 + lsls r1, 9 + bl sub_8002B80 + bl sub_80773BC + bl sub_8006B10 + bl sub_8070528 + bl sub_80F6808 + bl sub_80ECA00 + add r1, sp, 0x4 + movs r0, 0 + strh r0, [r1] + ldr r1, _080EC930 @ =0x040000d4 + add r0, sp, 0x4 + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080EC934 @ =0x8100c000 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r2, 0 + str r2, [sp, 0x8] + add r0, sp, 0x8 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080EC938 @ =0x85000100 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0x4 + strh r2, [r0] + str r0, [r1] + movs r0, 0xA0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _080EC93C @ =0x81000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r2, 0x80 + lsls r2, 3 + movs r0, 0 + movs r1, 0 + bl sub_8070424 + movs r0, 0 + bl sub_8001618 + ldr r1, _080EC940 @ =gUnknown_840BB80 + movs r0, 0 + movs r2, 0x2 + bl sub_8001658 + b _080EC9B8 + .align 2, 0 +_080EC928: .4byte gUnknown_30030F0 +_080EC92C: .4byte gHeap +_080EC930: .4byte 0x040000d4 +_080EC934: .4byte 0x8100c000 +_080EC938: .4byte 0x85000100 +_080EC93C: .4byte 0x81000200 +_080EC940: .4byte gUnknown_840BB80 +_080EC944: + ldr r0, _080EC978 @ =gUnknown_8402630 + movs r1, 0 + movs r2, 0x20 + bl sub_80703EC + ldr r1, _080EC97C @ =gUnknown_8402650 + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080EC980 @ =gUnknown_8402668 + str r4, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r0, _080EC984 @ =gUnknown_840270C + movs r1, 0xD0 + movs r2, 0x20 + bl sub_80703EC + b _080EC9B8 + .align 2, 0 +_080EC978: .4byte gUnknown_8402630 +_080EC97C: .4byte gUnknown_8402650 +_080EC980: .4byte gUnknown_8402668 +_080EC984: .4byte gUnknown_840270C +_080EC988: + bl sub_80F682C + lsls r0, 24 + cmp r0, 0 + bne _080EC9C6 + bl sub_80ECA70 + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl sub_80714D4 + ldr r0, _080EC9B0 @ =sub_80EC9D4 + bl sub_8000544 + ldr r0, _080EC9B4 @ =sub_80EC9EC + bl sub_80006F4 + b _080EC9C6 + .align 2, 0 +_080EC9B0: .4byte sub_80EC9D4 +_080EC9B4: .4byte sub_80EC9EC +_080EC9B8: + ldr r1, _080EC9D0 @ =gUnknown_30030F0 + movs r0, 0x87 + lsls r0, 3 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_080EC9C6: + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EC9D0: .4byte gUnknown_30030F0 + thumb_func_end sub_80EC870 + + thumb_func_start sub_80EC9D4 +sub_80EC9D4: @ 80EC9D4 + push {lr} + bl sub_8077578 + bl sub_8006B5C + bl sub_8006BA8 + bl sub_80704D0 + pop {r0} + bx r0 + thumb_func_end sub_80EC9D4 + + thumb_func_start sub_80EC9EC +sub_80EC9EC: @ 80EC9EC + push {lr} + bl sub_8007320 + bl sub_8007610 + bl sub_8070474 + pop {r0} + bx r0 + thumb_func_end sub_80EC9EC + + thumb_func_start sub_80ECA00 +sub_80ECA00: @ 80ECA00 + push {lr} + movs r0, 0 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x50 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x54 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x10 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x12 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x14 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x16 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x18 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x1A + movs r1, 0 + bl sub_8000A38 + movs r0, 0x1C + movs r1, 0 + bl sub_8000A38 + movs r0, 0x1E + movs r1, 0 + bl sub_8000A38 + movs r1, 0x82 + lsls r1, 5 + movs r0, 0 + bl sub_8000AF4 + pop {r0} + bx r0 + thumb_func_end sub_80ECA00 + + thumb_func_start sub_80ECA70 +sub_80ECA70: @ 80ECA70 + push {r4,lr} + ldr r0, _080ECA9C @ =0x000028bc + bl sub_8002B9C + adds r4, r0, 0 + ldr r1, _080ECAA0 @ =sub_80ECAF0 + bl sub_80ECAA8 + ldr r0, _080ECAA4 @ =sub_80ECAB0 + movs r1, 0x3 + bl sub_807741C + strb r0, [r4, 0x5] + ldrb r0, [r4, 0x5] + movs r1, 0 + adds r2, r4, 0 + bl sub_80776E8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ECA9C: .4byte 0x000028bc +_080ECAA0: .4byte sub_80ECAF0 +_080ECAA4: .4byte sub_80ECAB0 + thumb_func_end sub_80ECA70 + + thumb_func_start sub_80ECAA8 +sub_80ECAA8: @ 80ECAA8 + str r1, [r0] + movs r1, 0 + strb r1, [r0, 0x4] + bx lr + thumb_func_end sub_80ECAA8 + + thumb_func_start sub_80ECAB0 +sub_80ECAB0: @ 80ECAB0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8077720 + adds r4, r0, 0 + ldr r0, _080ECAE8 @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0xD + ands r0, r1 + cmp r0, 0 + beq _080ECAD8 + ldr r0, [r4] + ldr r1, _080ECAEC @ =sub_80EDBE8 + cmp r0, r1 + beq _080ECAD8 + adds r0, r4, 0 + bl sub_80ECAA8 +_080ECAD8: + ldr r1, [r4] + adds r0, r4, 0 + bl _call_via_r1 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ECAE8: .4byte gUnknown_30030F0 +_080ECAEC: .4byte sub_80EDBE8 + thumb_func_end sub_80ECAB0 + + thumb_func_start sub_80ECAF0 +sub_80ECAF0: @ 80ECAF0 + push {r4,r5,lr} + sub sp, 0xC + adds r5, r0, 0 + ldrb r0, [r5, 0x4] + cmp r0, 0 + beq _080ECB02 + cmp r0, 0x1 + beq _080ECB78 + b _080ECB8A +_080ECB02: + ldr r0, _080ECB68 @ =gUnknown_840BBA8 + bl sub_8003B24 + ldr r0, _080ECB6C @ =gUnknown_840272C + ldr r1, _080ECB70 @ =0x0000043c + adds r4, r5, r1 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r0, _080ECB74 @ =gUnknown_84028F8 + adds r1, r5, 0 + adds r1, 0x3C + bl LZ77UnCompWram + movs r0, 0x20 + str r0, [sp] + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8002554 + movs r0, 0 + movs r1, 0 + bl sub_800445C + movs r0, 0x90 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x28 + bl sub_80041B8 + movs r0, 0 + bl sub_8003FA0 + movs r0, 0 + movs r1, 0x3 + bl sub_8003F20 + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _080ECB8A + .align 2, 0 +_080ECB68: .4byte gUnknown_840BBA8 +_080ECB6C: .4byte gUnknown_840272C +_080ECB70: .4byte 0x0000043c +_080ECB74: .4byte gUnknown_84028F8 +_080ECB78: + bl sub_8001960 + lsls r0, 24 + cmp r0, 0 + bne _080ECB8A + ldr r1, _080ECB94 @ =sub_80ECB98 + adds r0, r5, 0 + bl sub_80ECAA8 +_080ECB8A: + add sp, 0xC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECB94: .4byte sub_80ECB98 + thumb_func_end sub_80ECAF0 + + thumb_func_start sub_80ECB98 +sub_80ECB98: @ 80ECB98 + push {r4,r5,lr} + adds r4, r0, 0 + ldrb r5, [r4, 0x4] + cmp r5, 0x1 + beq _080ECBE2 + cmp r5, 0x1 + bgt _080ECBAC + cmp r5, 0 + beq _080ECBB2 + b _080ECC32 +_080ECBAC: + cmp r5, 0x2 + beq _080ECBFC + b _080ECC32 +_080ECBB2: + movs r1, 0x80 + lsls r1, 7 + movs r0, 0 + bl sub_8000AF4 + movs r1, 0xFC + lsls r1, 6 + movs r0, 0x48 + bl sub_8000A38 + movs r0, 0x4A + movs r1, 0 + bl sub_8000A38 + movs r0, 0x42 + movs r1, 0xF0 + bl sub_8000A38 + movs r0, 0x46 + movs r1, 0 + bl sub_8000A38 + strh r5, [r4, 0x12] + b _080ECBF4 +_080ECBE2: + movs r0, 0x3 + bl sub_80019BC + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + movs r2, 0 + bl sub_80714D4 +_080ECBF4: + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _080ECC32 +_080ECBFC: + ldrh r0, [r4, 0x12] + adds r0, 0x8 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2F + bls _080ECC0E + movs r0, 0x30 + strh r0, [r4, 0x12] +_080ECC0E: + ldrh r0, [r4, 0x12] + movs r1, 0x50 + subs r1, r0 + lsls r1, 8 + adds r0, 0x50 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x46 + bl sub_8000A38 + ldrh r0, [r4, 0x12] + cmp r0, 0x30 + bne _080ECC32 + ldr r1, _080ECC38 @ =sub_80ECC3C + adds r0, r4, 0 + bl sub_80ECAA8 +_080ECC32: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECC38: .4byte sub_80ECC3C + thumb_func_end sub_80ECB98 + + thumb_func_start sub_80ECC3C +sub_80ECC3C: @ 80ECC3C + push {r4,r5,lr} + adds r4, r0, 0 + ldrb r5, [r4, 0x4] + cmp r5, 0x1 + beq _080ECC68 + cmp r5, 0x1 + bgt _080ECC50 + cmp r5, 0 + beq _080ECC56 + b _080ECC9C +_080ECC50: + cmp r5, 0x2 + beq _080ECC86 + b _080ECC9C +_080ECC56: + ldr r0, _080ECC64 @ =0x00000141 + bl sub_80722CC + bl sub_80EDC40 + strh r5, [r4, 0x12] + b _080ECC7E + .align 2, 0 +_080ECC64: .4byte 0x00000141 +_080ECC68: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bne _080ECC9C + bl sub_80EDDF0 + movs r0, 0 + strh r0, [r4, 0x12] +_080ECC7E: + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _080ECC9C +_080ECC86: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5A + bne _080ECC9C + ldr r1, _080ECCA4 @ =sub_80ECCA8 + adds r0, r4, 0 + bl sub_80ECAA8 +_080ECC9C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECCA4: .4byte sub_80ECCA8 + thumb_func_end sub_80ECC3C + + thumb_func_start sub_80ECCA8 +sub_80ECCA8: @ 80ECCA8 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldrb r0, [r4, 0x4] + cmp r0, 0x5 + bhi _080ECD54 + lsls r0, 2 + ldr r1, _080ECCC0 @ =_080ECCC4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECCC0: .4byte _080ECCC4 + .align 2, 0 +_080ECCC4: + .4byte _080ECCDC + .4byte _080ECCE6 + .4byte _080ECCF6 + .4byte _080ECD18 + .4byte _080ECD20 + .4byte _080ECD3E +_080ECCDC: + bl sub_80EDED8 + movs r0, 0 + strh r0, [r4, 0x12] + b _080ECD36 +_080ECCE6: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x27 + bls _080ECD54 + b _080ECD36 +_080ECCF6: + ldr r1, _080ECD14 @ =0x00003f44 + movs r0, 0x50 + bl sub_8000A38 + movs r0, 0x30 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + movs r1, 0x10 + movs r2, 0x10 + movs r3, 0 + bl sub_812E944 + b _080ECD36 + .align 2, 0 +_080ECD14: .4byte 0x00003f44 +_080ECD18: + movs r0, 0x2 + bl sub_80019BC + b _080ECD36 +_080ECD20: + bl sub_812E9E4 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _080ECD54 + movs r0, 0x50 + movs r1, 0 + bl sub_8000A38 + strh r5, [r4, 0x12] +_080ECD36: + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _080ECD54 +_080ECD3E: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x32 + bls _080ECD54 + ldr r1, _080ECD5C @ =sub_80ECD60 + adds r0, r4, 0 + bl sub_80ECAA8 +_080ECD54: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ECD5C: .4byte sub_80ECD60 + thumb_func_end sub_80ECCA8 + + thumb_func_start sub_80ECD60 +sub_80ECD60: @ 80ECD60 + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + ldrb r0, [r6, 0x4] + cmp r0, 0x7 + bls _080ECD6E + b _080ECE96 +_080ECD6E: + lsls r0, 2 + ldr r1, _080ECD78 @ =_080ECD7C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECD78: .4byte _080ECD7C + .align 2, 0 +_080ECD7C: + .4byte _080ECD9C + .4byte _080ECDC4 + .4byte _080ECDCC + .4byte _080ECE10 + .4byte _080ECE26 + .4byte _080ECE52 + .4byte _080ECE64 + .4byte _080ECE78 +_080ECD9C: + ldr r1, _080ECDC0 @ =0x00003f50 + movs r0, 0x50 + bl sub_8000A38 + movs r5, 0x10 + str r5, [sp] + movs r4, 0 + str r4, [sp, 0x4] + movs r0, 0 + movs r1, 0x10 + movs r2, 0x10 + movs r3, 0 + bl sub_812E944 + strh r4, [r6, 0x8] + strh r5, [r6, 0xA] + strh r4, [r6, 0x12] + b _080ECE70 + .align 2, 0 +_080ECDC0: .4byte 0x00003f50 +_080ECDC4: + bl sub_80EDF68 + str r0, [r6, 0x14] + b _080ECE70 +_080ECDCC: + bl sub_812E9E4 + lsls r0, 24 + cmp r0, 0 + bne _080ECE96 + adds r1, r6, 0 + adds r1, 0x3C + movs r0, 0x20 + str r0, [sp] + movs r0, 0x40 + str r0, [sp, 0x4] + movs r0, 0 + movs r2, 0x38 + movs r3, 0x6 + bl sub_80041B8 + ldr r0, _080ECE0C @ =0x0000043c + adds r1, r6, r0 + movs r0, 0x90 + str r0, [sp] + movs r0, 0x10 + str r0, [sp, 0x4] + movs r0, 0 + movs r2, 0 + movs r3, 0x28 + bl sub_80041B8 + movs r0, 0 + movs r1, 0x2 + bl sub_8003F20 + b _080ECE70 + .align 2, 0 +_080ECE0C: .4byte 0x0000043c +_080ECE10: + bl sub_8001960 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080ECE96 + ldr r0, [r6, 0x14] + bl sub_8007280 + strh r4, [r6, 0x12] + b _080ECE70 +_080ECE26: + ldrh r0, [r6, 0x12] + adds r0, 0x1 + strh r0, [r6, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5A + bls _080ECE96 + movs r0, 0x50 + movs r1, 0x4 + bl sub_8000AF4 + movs r0, 0x14 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + movs r0, 0x10 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_812E944 + b _080ECE70 +_080ECE52: + bl sub_812E9E4 + lsls r0, 24 + cmp r0, 0 + bne _080ECE96 + movs r0, 0x2 + bl sub_80019D0 + b _080ECE70 +_080ECE64: + bl sub_8006B10 + bl sub_80088F0 + movs r0, 0 + strh r0, [r6, 0x12] +_080ECE70: + ldrb r0, [r6, 0x4] + adds r0, 0x1 + strb r0, [r6, 0x4] + b _080ECE96 +_080ECE78: + ldrh r0, [r6, 0x12] + adds r0, 0x1 + strh r0, [r6, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x14 + bls _080ECE96 + movs r0, 0x50 + movs r1, 0 + bl sub_8000A38 + ldr r1, _080ECEA0 @ =sub_80ECEA4 + adds r0, r6, 0 + bl sub_80ECAA8 +_080ECE96: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ECEA0: .4byte sub_80ECEA4 + thumb_func_end sub_80ECD60 + + thumb_func_start sub_80ECEA4 +sub_80ECEA4: @ 80ECEA4 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldrb r0, [r5, 0x4] + cmp r0, 0x5 + bls _080ECEB2 + b _080ED094 +_080ECEB2: + lsls r0, 2 + ldr r1, _080ECEBC @ =_080ECEC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ECEBC: .4byte _080ECEC0 + .align 2, 0 +_080ECEC0: + .4byte _080ECED8 + .4byte _080ECF64 + .4byte _080ECFA4 + .4byte _080ECFD8 + .4byte _080ED000 + .4byte _080ED064 +_080ECED8: + movs r0, 0 + bl sub_80006F4 + ldr r0, _080ECF48 @ =gUnknown_8402D34 + movs r1, 0x10 + movs r2, 0x20 + bl sub_80703EC + ldr r0, _080ECF4C @ =gUnknown_84048CC + movs r1, 0x20 + movs r2, 0x20 + bl sub_80703EC + ldr r2, _080ECF50 @ =0x00007fff + movs r0, 0x6 + movs r1, 0x10 + bl sub_80714D4 + ldr r1, _080ECF54 @ =gUnknown_840BB88 + movs r0, 0 + movs r2, 0x2 + bl sub_8001658 + ldr r1, _080ECF58 @ =gUnknown_84048EC + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ECF5C @ =gUnknown_8404F7C + movs r0, 0x1 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + movs r0, 0x1 + bl sub_80019BC + movs r0, 0 + bl sub_80019D0 + movs r0, 0x2 + bl sub_80019D0 + movs r0, 0x3 + bl sub_80019D0 + bl sub_80EEBE4 + ldr r0, _080ECF60 @ =sub_80EC9EC + bl sub_80006F4 + b _080ECFF0 + .align 2, 0 +_080ECF48: .4byte gUnknown_8402D34 +_080ECF4C: .4byte gUnknown_84048CC +_080ECF50: .4byte 0x00007fff +_080ECF54: .4byte gUnknown_840BB88 +_080ECF58: .4byte gUnknown_84048EC +_080ECF5C: .4byte gUnknown_8404F7C +_080ECF60: .4byte sub_80EC9EC +_080ECF64: + bl sub_80F682C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _080ECF72 + b _080ED094 +_080ECF72: + ldr r1, _080ECF9C @ =gUnknown_8402D54 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ECFA0 @ =gUnknown_8403FE8 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + bl sub_80F6C14 + movs r0, 0x1 + bl sub_80019BC + b _080ECFF0 + .align 2, 0 +_080ECF9C: .4byte gUnknown_8402D54 +_080ECFA0: .4byte gUnknown_8403FE8 +_080ECFA4: + bl sub_80F682C + lsls r0, 24 + cmp r0, 0 + bne _080ED094 + movs r0, 0 + bl sub_80019BC + ldr r0, _080ECFD0 @ =sub_80ED0AC + movs r1, 0 + bl sub_807741C + movs r1, 0x2 + negs r1, r1 + ldr r0, _080ECFD4 @ =0x00007fff + str r0, [sp] + movs r0, 0x6 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + b _080ECFF0 + .align 2, 0 +_080ECFD0: .4byte sub_80ED0AC +_080ECFD4: .4byte 0x00007fff +_080ECFD8: + ldr r0, _080ECFF8 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080ED094 + ldr r0, _080ECFFC @ =0x00000115 + bl m4aSongNumStart + strh r4, [r5, 0x12] +_080ECFF0: + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _080ED094 + .align 2, 0 +_080ECFF8: .4byte gUnknown_2037AB8 +_080ECFFC: .4byte 0x00000115 +_080ED000: + ldrh r0, [r5, 0x12] + adds r0, 0x1 + strh r0, [r5, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x14 + bne _080ED01A + ldr r0, _080ED054 @ =sub_80ED140 + movs r1, 0 + bl sub_807741C + bl sub_80ED118 +_080ED01A: + ldrh r0, [r5, 0x12] + cmp r0, 0x1D + bls _080ED094 + movs r0, 0x2 + negs r0, r0 + ldr r2, _080ED058 @ =0x00007fff + movs r1, 0x10 + bl sub_80714D4 + ldr r0, _080ED05C @ =sub_80ED0AC + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + ldr r0, _080ED054 @ =sub_80ED140 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + ldr r1, _080ED060 @ =sub_80ED188 + adds r0, r5, 0 + bl sub_80ECAA8 + b _080ED094 + .align 2, 0 +_080ED054: .4byte sub_80ED140 +_080ED058: .4byte 0x00007fff +_080ED05C: .4byte sub_80ED0AC +_080ED060: .4byte sub_80ED188 +_080ED064: + ldr r0, _080ED09C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080ED094 + ldr r0, _080ED0A0 @ =sub_80ED0AC + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + ldr r0, _080ED0A4 @ =sub_80ED140 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + ldr r1, _080ED0A8 @ =sub_80ED188 + adds r0, r5, 0 + bl sub_80ECAA8 +_080ED094: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ED09C: .4byte gUnknown_2037AB8 +_080ED0A0: .4byte sub_80ED0AC +_080ED0A4: .4byte sub_80ED140 +_080ED0A8: .4byte sub_80ED188 + thumb_func_end sub_80ECEA4 + + thumb_func_start sub_80ED0AC +sub_80ED0AC: @ 80ED0AC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080ED114 @ =gUnknown_3005098 + adds r4, r1, r0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _080ED0EC + movs r1, 0 + strh r1, [r4] + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _080ED0DE + strh r1, [r4, 0x2] +_080ED0DE: + movs r0, 0x2 + ldrsh r1, [r4, r0] + lsls r1, 15 + movs r0, 0 + movs r2, 0 + bl sub_8001D08 +_080ED0EC: + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080ED10C + movs r1, 0x90 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r4, 0x6] + adds r0, r1 + strh r0, [r4, 0x6] + movs r0, 0x6 + ldrsh r1, [r4, r0] + movs r0, 0 + movs r2, 0x2 + bl sub_8001D08 +_080ED10C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED114: .4byte gUnknown_3005098 + thumb_func_end sub_80ED0AC + + thumb_func_start sub_80ED118 +sub_80ED118: @ 80ED118 + push {lr} + ldr r0, _080ED138 @ =sub_80ED0AC + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ED13C @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0xC] + pop {r0} + bx r0 + .align 2, 0 +_080ED138: .4byte sub_80ED0AC +_080ED13C: .4byte gUnknown_3005090 + thumb_func_end sub_80ED118 + + thumb_func_start sub_80ED140 +sub_80ED140: @ 80ED140 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080ED184 @ =gUnknown_3005098 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080ED17E + movs r0, 0 + strh r0, [r1] + ldrh r2, [r1, 0x2] + movs r3, 0x2 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + bgt _080ED170 + adds r0, r2, 0x1 + strh r0, [r1, 0x2] +_080ED170: + movs r0, 0x2 + ldrsh r1, [r1, r0] + lsls r1, 15 + movs r0, 0x1 + movs r2, 0 + bl sub_8001D08 +_080ED17E: + pop {r0} + bx r0 + .align 2, 0 +_080ED184: .4byte gUnknown_3005098 + thumb_func_end sub_80ED140 + + thumb_func_start sub_80ED188 +sub_80ED188: @ 80ED188 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r7, r0, 0 + ldrb r0, [r7, 0x4] + cmp r0, 0x6 + bls _080ED19A + b _080ED3F6 +_080ED19A: + lsls r0, 2 + ldr r1, _080ED1A4 @ =_080ED1A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED1A4: .4byte _080ED1A8 + .align 2, 0 +_080ED1A8: + .4byte _080ED1C4 + .4byte _080ED214 + .4byte _080ED32C + .4byte _080ED350 + .4byte _080ED360 + .4byte _080ED3BC + .4byte _080ED3D2 +_080ED1C4: + movs r0, 0x2 + negs r0, r0 + ldr r2, _080ED204 @ =0x00007fff + movs r1, 0x10 + bl sub_80714D4 + ldr r1, _080ED208 @ =gUnknown_840BB90 + movs r0, 0 + movs r2, 0x4 + bl sub_8001658 + ldr r1, _080ED20C @ =gUnknown_8405414 + movs r0, 0 + str r0, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED210 @ =gUnknown_8405890 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + movs r0, 0x3 + bl sub_80019BC + b _080ED3CA + .align 2, 0 +_080ED204: .4byte 0x00007fff +_080ED208: .4byte gUnknown_840BB90 +_080ED20C: .4byte gUnknown_8405414 +_080ED210: .4byte gUnknown_8405890 +_080ED214: + bl sub_80F682C + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0 + beq _080ED222 + b _080ED3F6 +_080ED222: + movs r0, 0 + bl sub_80006F4 + ldr r0, _080ED2FC @ =gUnknown_84053B4 + movs r1, 0x10 + movs r2, 0x60 + bl sub_80703EC + ldr r0, _080ED300 @ =gUnknown_8405DA4 + movs r1, 0x50 + movs r2, 0x20 + bl sub_80703EC + ldr r0, _080ED304 @ =gUnknown_8406634 + movs r1, 0x60 + movs r2, 0x20 + bl sub_80703EC + movs r5, 0x2 + negs r5, r5 + ldr r0, _080ED308 @ =0x00007fff + mov r8, r0 + adds r0, r5, 0 + movs r1, 0x10 + mov r2, r8 + bl sub_80714D4 + ldr r1, _080ED30C @ =gUnknown_8405B28 + str r6, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED310 @ =gUnknown_8405CDC + movs r4, 0x1 + str r4, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED314 @ =gUnknown_8406654 + str r6, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED318 @ =gUnknown_84071D0 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED31C @ =gUnknown_8405DC4 + str r6, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED320 @ =gUnknown_840644C + str r4, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + bl sub_80F6C14 + movs r0, 0 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019D0 + movs r0, 0x2 + bl sub_80019D0 + movs r1, 0xE7 + lsls r1, 9 + movs r0, 0x2 + movs r2, 0 + bl sub_8001D08 + movs r1, 0xA0 + lsls r1, 6 + movs r0, 0x1 + movs r2, 0 + bl sub_8001D08 + ldr r0, _080ED324 @ =sub_80ED40C + movs r1, 0 + bl sub_807741C + adds r0, r7, 0 + bl sub_80ED444 + adds r0, r5, 0 + movs r1, 0x10 + mov r2, r8 + bl sub_80714D4 + ldr r0, _080ED328 @ =sub_80EC9EC + bl sub_80006F4 + b _080ED3CA + .align 2, 0 +_080ED2FC: .4byte gUnknown_84053B4 +_080ED300: .4byte gUnknown_8405DA4 +_080ED304: .4byte gUnknown_8406634 +_080ED308: .4byte 0x00007fff +_080ED30C: .4byte gUnknown_8405B28 +_080ED310: .4byte gUnknown_8405CDC +_080ED314: .4byte gUnknown_8406654 +_080ED318: .4byte gUnknown_84071D0 +_080ED31C: .4byte gUnknown_8405DC4 +_080ED320: .4byte gUnknown_840644C +_080ED324: .4byte sub_80ED40C +_080ED328: .4byte sub_80EC9EC +_080ED32C: + bl sub_80F682C + lsls r0, 24 + cmp r0, 0 + bne _080ED3F6 + movs r1, 0x2 + negs r1, r1 + ldr r0, _080ED34C @ =0x00007fff + str r0, [sp] + adds r0, r1, 0 + movs r2, 0x10 + movs r3, 0 + bl sub_8070588 + b _080ED3CA + .align 2, 0 +_080ED34C: .4byte 0x00007fff +_080ED350: + ldr r0, _080ED35C @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + b _080ED3C0 + .align 2, 0 +_080ED35C: .4byte gUnknown_2037AB8 +_080ED360: + ldrh r0, [r7, 0x12] + adds r0, 0x1 + strh r0, [r7, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3B + bls _080ED3F6 + movs r0, 0 + strh r0, [r7, 0x12] + ldr r0, _080ED3B4 @ =sub_80ED40C + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + adds r0, r7, 0 + bl sub_80ED4A0 + ldr r0, _080ED3B8 @ =sub_80ED428 + movs r1, 0 + bl sub_807741C + movs r1, 0x80 + lsls r1, 9 + movs r0, 0x3 + movs r2, 0 + bl sub_8001D08 + movs r0, 0 + bl sub_80019D0 + movs r0, 0x3 + bl sub_80019BC + movs r0, 0x1 + bl sub_80019BC + movs r0, 0x2 + bl sub_80019BC + b _080ED3CA + .align 2, 0 +_080ED3B4: .4byte sub_80ED40C +_080ED3B8: .4byte sub_80ED428 +_080ED3BC: + bl sub_8001960 +_080ED3C0: + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080ED3F6 + strh r0, [r7, 0x12] +_080ED3CA: + ldrb r0, [r7, 0x4] + adds r0, 0x1 + strb r0, [r7, 0x4] + b _080ED3F6 +_080ED3D2: + ldrh r0, [r7, 0x12] + adds r0, 0x1 + strh r0, [r7, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3B + bls _080ED3F6 + ldr r0, _080ED404 @ =sub_80ED428 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + ldr r1, _080ED408 @ =sub_80ED4C0 + adds r0, r7, 0 + bl sub_80ECAA8 +_080ED3F6: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ED404: .4byte sub_80ED428 +_080ED408: .4byte sub_80ED4C0 + thumb_func_end sub_80ED188 + + thumb_func_start sub_80ED40C +sub_80ED40C: @ 80ED40C + push {lr} + movs r0, 0x3 + movs r1, 0xE0 + movs r2, 0x2 + bl sub_8001B90 + movs r1, 0x88 + lsls r1, 1 + movs r0, 0 + movs r2, 0x1 + bl sub_8001B90 + pop {r0} + bx r0 + thumb_func_end sub_80ED40C + + thumb_func_start sub_80ED428 +sub_80ED428: @ 80ED428 + push {lr} + movs r0, 0x2 + movs r1, 0x20 + movs r2, 0x1 + bl sub_8001D08 + movs r0, 0x1 + movs r1, 0x24 + movs r2, 0x2 + bl sub_8001D08 + pop {r0} + bx r0 + thumb_func_end sub_80ED428 + + thumb_func_start sub_80ED444 +sub_80ED444: @ 80ED444 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + str r0, [r4, 0x1C] + str r0, [r4, 0x20] + ldr r0, _080ED494 @ =gUnknown_840BDA8 + movs r1, 0xA8 + movs r2, 0x50 + movs r3, 0xB + bl sub_8006F8C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080ED46E + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080ED498 @ =gUnknown_202063C + adds r0, r1 + str r0, [r4, 0x20] +_080ED46E: + ldr r0, _080ED49C @ =gUnknown_840BDC0 + movs r1, 0x48 + movs r2, 0x50 + movs r3, 0xC + bl sub_8006F8C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080ED48E + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080ED498 @ =gUnknown_202063C + adds r0, r1 + str r0, [r4, 0x1C] +_080ED48E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ED494: .4byte gUnknown_840BDA8 +_080ED498: .4byte gUnknown_202063C +_080ED49C: .4byte gUnknown_840BDC0 + thumb_func_end sub_80ED444 + + thumb_func_start sub_80ED4A0 +sub_80ED4A0: @ 80ED4A0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x1C] + cmp r0, 0 + beq _080ED4AE + bl sub_8007280 +_080ED4AE: + ldr r0, [r4, 0x20] + cmp r0, 0 + beq _080ED4B8 + bl sub_8007280 +_080ED4B8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ED4A0 + + thumb_func_start sub_80ED4C0 +sub_80ED4C0: @ 80ED4C0 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldrb r4, [r5, 0x4] + cmp r4, 0x1 + beq _080ED59C + cmp r4, 0x1 + bgt _080ED4D6 + cmp r4, 0 + beq _080ED4E4 + b _080ED68A +_080ED4D6: + cmp r4, 0x2 + bne _080ED4DC + b _080ED5FC +_080ED4DC: + cmp r4, 0x3 + bne _080ED4E2 + b _080ED658 +_080ED4E2: + b _080ED68A +_080ED4E4: + ldr r0, _080ED584 @ =gUnknown_8407430 + movs r1, 0x10 + movs r2, 0x40 + bl sub_80703EC + ldr r0, _080ED588 @ =gUnknown_8405DA4 + movs r1, 0x50 + movs r2, 0x20 + bl sub_80703EC + movs r0, 0x2 + negs r0, r0 + ldr r2, _080ED58C @ =0x00007fff + movs r1, 0x10 + bl sub_80714D4 + ldr r1, _080ED590 @ =gUnknown_840BBA0 + movs r0, 0 + movs r2, 0x2 + bl sub_8001658 + ldr r1, _080ED594 @ =gUnknown_8407470 + str r4, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED598 @ =gUnknown_8407A50 + movs r0, 0x1 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + movs r0, 0x1 + bl sub_80019BC + movs r0, 0 + bl sub_80019D0 + movs r0, 0x2 + bl sub_80019D0 + movs r0, 0x3 + bl sub_80019D0 + bl sub_80F6C14 + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl sub_8000AF4 + movs r0, 0x48 + movs r1, 0x12 + bl sub_8000AF4 + movs r0, 0x48 + movs r1, 0x1 + bl sub_8000B14 + movs r0, 0x4A + movs r1, 0 + bl sub_8000AF4 + movs r1, 0x82 + lsls r1, 6 + movs r0, 0x44 + bl sub_8000A38 + movs r0, 0x40 + movs r1, 0x78 + bl sub_8000A38 + b _080ED68A + .align 2, 0 +_080ED584: .4byte gUnknown_8407430 +_080ED588: .4byte gUnknown_8405DA4 +_080ED58C: .4byte 0x00007fff +_080ED590: .4byte gUnknown_840BBA0 +_080ED594: .4byte gUnknown_8407470 +_080ED598: .4byte gUnknown_8407A50 +_080ED59C: + bl sub_80F682C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080ED68A + ldr r1, _080ED5EC @ =gUnknown_8407B9C + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED5F0 @ =gUnknown_8408D98 + str r4, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0 + bl sub_80F6878 + ldr r1, _080ED5F4 @ =gUnknown_203AB00 + movs r0, 0x4 + strh r0, [r1] + ldr r1, _080ED5F8 @ =gUnknown_203AB02 + movs r0, 0x34 + strh r0, [r1] + movs r1, 0xC0 + lsls r1, 5 + movs r0, 0 + movs r2, 0 + bl sub_8001B90 + movs r1, 0xF8 + lsls r1, 9 + movs r0, 0 + movs r2, 0 + bl sub_8001D08 + b _080ED642 + .align 2, 0 +_080ED5EC: .4byte gUnknown_8407B9C +_080ED5F0: .4byte gUnknown_8408D98 +_080ED5F4: .4byte gUnknown_203AB00 +_080ED5F8: .4byte gUnknown_203AB02 +_080ED5FC: + bl sub_80F682C + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080ED68A + movs r0, 0x2 + negs r0, r0 + ldr r2, _080ED64C @ =0x00007fff + movs r1, 0 + bl sub_80714D4 + movs r0, 0 + bl sub_80019BC + ldr r0, _080ED650 @ =sub_80ED714 + movs r1, 0 + bl sub_807741C + adds r0, r5, 0 + bl sub_80EE4F8 + ldr r0, [r5, 0x18] + movs r1, 0 + movs r2, 0xB4 + movs r3, 0x34 + bl sub_80EE528 + ldr r0, _080ED654 @ =sub_80EE200 + movs r1, 0 + bl sub_807741C + bl sub_80ED6D8 + strh r4, [r5, 0x12] +_080ED642: + ldrb r0, [r5, 0x4] + adds r0, 0x1 + strb r0, [r5, 0x4] + b _080ED68A + .align 2, 0 +_080ED64C: .4byte 0x00007fff +_080ED650: .4byte sub_80ED714 +_080ED654: .4byte sub_80EE200 +_080ED658: + ldrh r0, [r5, 0x12] + adds r0, 0x1 + strh r0, [r5, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x10 + bne _080ED66C + adds r0, r5, 0 + bl sub_80ED7D4 +_080ED66C: + adds r0, r5, 0 + bl sub_80EE5C8 + cmp r0, 0 + bne _080ED68A + ldr r0, _080ED694 @ =sub_80EE200 + bl sub_8077650 + lsls r0, 24 + cmp r0, 0 + bne _080ED68A + ldr r1, _080ED698 @ =sub_80ED898 + adds r0, r5, 0 + bl sub_80ECAA8 +_080ED68A: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ED694: .4byte sub_80EE200 +_080ED698: .4byte sub_80ED898 + thumb_func_end sub_80ED4C0 + + thumb_func_start sub_80ED69C +sub_80ED69C: @ 80ED69C + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ED6C4 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080ED6C8 + movs r1, 0x80 + lsls r1, 3 + movs r0, 0x1 + movs r2, 0x2 + bl sub_8001B90 + b _080ED6D2 + .align 2, 0 +_080ED6C4: .4byte gUnknown_3005090 +_080ED6C8: + movs r0, 0x1 + movs r1, 0x20 + movs r2, 0x2 + bl sub_8001B90 +_080ED6D2: + pop {r0} + bx r0 + thumb_func_end sub_80ED69C + + thumb_func_start sub_80ED6D8 +sub_80ED6D8: @ 80ED6D8 + push {lr} + ldr r0, _080ED6E8 @ =sub_80ED69C + movs r1, 0 + bl sub_807741C + pop {r0} + bx r0 + .align 2, 0 +_080ED6E8: .4byte sub_80ED69C + thumb_func_end sub_80ED6D8 + + thumb_func_start sub_80ED6EC +sub_80ED6EC: @ 80ED6EC + push {lr} + ldr r0, _080ED70C @ =sub_80ED69C + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ED710 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_080ED70C: .4byte sub_80ED69C +_080ED710: .4byte gUnknown_3005090 + thumb_func_end sub_80ED6EC + + thumb_func_start sub_80ED714 +sub_80ED714: @ 80ED714 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080ED75C @ =gUnknown_3005098 + adds r2, r1, r0 + movs r0, 0 + ldrsh r1, [r2, r0] + cmp r1, 0 + bne _080ED758 + ldrh r0, [r2, 0x2] + adds r0, 0x1 + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _080ED758 + strh r1, [r2, 0x2] + ldrh r0, [r2, 0x4] + movs r1, 0x1 + eors r0, r1 + strh r0, [r2, 0x4] + movs r0, 0x4 + ldrsh r1, [r2, r0] + lsls r1, 15 + movs r0, 0xF8 + lsls r0, 9 + adds r1, r0 + movs r0, 0 + movs r2, 0 + bl sub_8001D08 +_080ED758: + pop {r0} + bx r0 + .align 2, 0 +_080ED75C: .4byte gUnknown_3005098 + thumb_func_end sub_80ED714 + + thumb_func_start sub_80ED760 +sub_80ED760: @ 80ED760 + push {lr} + ldr r0, _080ED780 @ =sub_80ED714 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ED784 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_080ED780: .4byte sub_80ED714 +_080ED784: .4byte gUnknown_3005090 + thumb_func_end sub_80ED760 + + thumb_func_start sub_80ED788 +sub_80ED788: @ 80ED788 + push {lr} + ldr r0, _080ED7A8 @ =sub_80ED714 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ED7AC @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_080ED7A8: .4byte sub_80ED714 +_080ED7AC: .4byte gUnknown_3005090 + thumb_func_end sub_80ED788 + + thumb_func_start sub_80ED7B0 +sub_80ED7B0: @ 80ED7B0 + push {lr} + ldr r0, _080ED7CC @ =sub_80ED714 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080ED7D0 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0xC] + pop {r1} + bx r1 + .align 2, 0 +_080ED7CC: .4byte sub_80ED714 +_080ED7D0: .4byte gUnknown_3005090 + thumb_func_end sub_80ED7B0 + + thumb_func_start sub_80ED7D4 +sub_80ED7D4: @ 80ED7D4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080ED800 @ =gUnknown_840BDFC + movs r1, 0x94 + lsls r1, 1 + movs r2, 0x70 + movs r3, 0x7 + bl sub_8006F8C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080ED80C + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080ED804 @ =gUnknown_202063C + adds r0, r1 + str r0, [r4, 0x24] + ldr r1, _080ED808 @ =sub_80ED818 + str r1, [r0, 0x1C] + b _080ED810 + .align 2, 0 +_080ED800: .4byte gUnknown_840BDFC +_080ED804: .4byte gUnknown_202063C +_080ED808: .4byte sub_80ED818 +_080ED80C: + movs r0, 0 + str r0, [r4, 0x24] +_080ED810: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ED7D4 + + thumb_func_start sub_80ED818 +sub_80ED818: @ 80ED818 + push {r4,lr} + adds r2, r0, 0 + adds r4, r2, 0 + adds r4, 0x2E + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _080ED848 + cmp r0, 0x1 + bgt _080ED832 + cmp r0, 0 + beq _080ED838 + b _080ED892 +_080ED832: + cmp r0, 0x2 + beq _080ED866 + b _080ED892 +_080ED838: + ldrh r0, [r2, 0x20] + lsls r0, 5 + strh r0, [r4, 0x2] + movs r0, 0xA0 + strh r0, [r4, 0x4] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] +_080ED848: + ldrh r0, [r4, 0x2] + ldrh r1, [r4, 0x4] + subs r0, r1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 21 + strh r0, [r2, 0x20] + cmp r0, 0x34 + bgt _080ED892 + bl sub_80ED6EC + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _080ED892 +_080ED866: + ldrh r0, [r4, 0x2] + subs r0, 0x20 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 21 + strh r0, [r2, 0x20] + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _080ED892 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + adds r0, r2, 0 + bl sub_8007280 +_080ED892: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80ED818 + + thumb_func_start sub_80ED898 +sub_80ED898: @ 80ED898 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldrb r0, [r4, 0x4] + cmp r0, 0xF + bls _080ED8A6 + b _080EDA98 +_080ED8A6: + lsls r0, 2 + ldr r1, _080ED8B0 @ =_080ED8B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ED8B0: .4byte _080ED8B4 + .align 2, 0 +_080ED8B4: + .4byte _080ED8F4 + .4byte _080ED8F8 + .4byte _080ED910 + .4byte _080ED918 + .4byte _080ED936 + .4byte _080ED946 + .4byte _080ED95E + .4byte _080ED97C + .4byte _080ED998 + .4byte _080ED9A0 + .4byte _080ED9BA + .4byte _080ED9D2 + .4byte _080ED9DC + .4byte _080EDA1C + .4byte _080EDA5C + .4byte _080EDA7C +_080ED8F4: + movs r0, 0 + b _080EDA6C +_080ED8F8: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bhi _080ED908 + b _080EDAC4 +_080ED908: + adds r0, r4, 0 + bl sub_80EE5E4 + b _080EDA6E +_080ED910: + adds r0, r4, 0 + bl sub_80EE850 + b _080EDA64 +_080ED918: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1E + bhi _080ED928 + b _080EDAC4 +_080ED928: + bl sub_80ED760 + adds r0, r4, 0 + bl sub_80EDF94 + movs r0, 0 + b _080EDA6C +_080ED936: + ldrb r0, [r4, 0x6] + cmp r0, 0 + bne _080ED93E + b _080EDAC4 +_080ED93E: + adds r0, r4, 0 + bl sub_80EE6A4 + b _080EDA6E +_080ED946: + adds r0, r4, 0 + bl sub_80EE850 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080ED956 + b _080EDAC4 +_080ED956: + bl sub_80ED788 + strh r5, [r4, 0x12] + b _080EDA6E +_080ED95E: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x10 + bhi _080ED96E + b _080EDAC4 +_080ED96E: + ldr r0, [r4, 0x18] + movs r1, 0x8 + movs r2, 0xC + movs r3, 0x5 + bl sub_80EE970 + b _080EDA6E +_080ED97C: + adds r0, r4, 0 + bl sub_80EE850 + lsls r0, 24 + cmp r0, 0 + beq _080ED98A + b _080EDAC4 +_080ED98A: + ldr r0, [r4, 0x18] + movs r1, 0x8 + movs r2, 0xC + movs r3, 0x5 + bl sub_80EE970 + b _080EDA6E +_080ED998: + adds r0, r4, 0 + bl sub_80EE850 + b _080EDA64 +_080ED9A0: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x14 + bhi _080ED9B0 + b _080EDAC4 +_080ED9B0: + adds r0, r4, 0 + bl sub_80EEA94 + movs r0, 0 + b _080EDA6C +_080ED9BA: + bl sub_80ED7B0 + lsls r0, 24 + cmp r0, 0 + beq _080ED9C6 + b _080EDAC4 +_080ED9C6: + bl sub_80ED760 + adds r0, r4, 0 + bl sub_80EDAF0 + b _080EDA6E +_080ED9D2: + movs r0, 0 + bl sub_80019D0 + movs r0, 0 + b _080EDA6C +_080ED9DC: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x30 + bne _080ED9FA + ldr r0, _080EDA18 @ =0x00007fff + str r0, [sp] + movs r0, 0x6 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 +_080ED9FA: + ldrh r0, [r4, 0x12] + cmp r0, 0x78 + bls _080EDAC4 + adds r0, r4, 0 + bl sub_80EDB70 + adds r0, r4, 0 + bl sub_80EDBAC + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + movs r0, 0 + b _080EDAC2 + .align 2, 0 +_080EDA18: .4byte 0x00007fff +_080EDA1C: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bls _080EDAC4 + add r1, sp, 0x4 + ldr r2, _080EDA50 @ =0x00007fff + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _080EDA54 @ =gUnknown_2037218 + ldr r2, _080EDA58 @ =0x01000020 + add r0, sp, 0x4 + bl CpuSet + movs r1, 0x2 + negs r1, r1 + movs r0, 0 + str r0, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + b _080EDA6E + .align 2, 0 +_080EDA50: .4byte 0x00007fff +_080EDA54: .4byte gUnknown_2037218 +_080EDA58: .4byte 0x01000020 +_080EDA5C: + ldr r0, _080EDA78 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 +_080EDA64: + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080EDAC4 +_080EDA6C: + strh r0, [r4, 0x12] +_080EDA6E: + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _080EDAC4 + .align 2, 0 +_080EDA78: .4byte gUnknown_2037AB8 +_080EDA7C: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3C + bls _080EDAC4 + ldr r1, _080EDA94 @ =sub_80EDBE8 + adds r0, r4, 0 + bl sub_80ECAA8 + b _080EDAC4 + .align 2, 0 +_080EDA94: .4byte sub_80EDBE8 +_080EDA98: + ldr r0, _080EDACC @ =gUnknown_30030F0 + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _080EDAC4 + ldr r0, _080EDAD0 @ =0xffff0064 + ldr r2, _080EDAD4 @ =0x00007fff + movs r1, 0 + bl sub_80714D4 + ldr r1, [r4, 0x18] + movs r0, 0 + strh r0, [r1, 0x24] + ldr r1, [r4, 0x18] + movs r0, 0xB4 + strh r0, [r1, 0x20] + movs r0, 0x1 + strb r0, [r4, 0x4] + movs r0, 0x1E +_080EDAC2: + strh r0, [r4, 0x12] +_080EDAC4: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EDACC: .4byte gUnknown_30030F0 +_080EDAD0: .4byte 0xffff0064 +_080EDAD4: .4byte 0x00007fff + thumb_func_end sub_80ED898 + + thumb_func_start sub_80EDAD8 +sub_80EDAD8: @ 80EDAD8 + push {lr} + ldrb r3, [r0, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r0, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + bl sub_80073F0 + pop {r0} + bx r0 + thumb_func_end sub_80EDAD8 + + thumb_func_start sub_80EDAF0 +sub_80EDAF0: @ 80EDAF0 + push {r4-r7,lr} + adds r7, r0, 0 + movs r5, 0 +_080EDAF6: + movs r6, 0x1 + ands r6, r5 + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 20 + lsrs r2, r5, 31 + adds r2, r5, r2 + asrs r2, 1 + lsls r2, 22 + movs r0, 0xC4 + lsls r0, 14 + adds r1, r0 + asrs r1, 16 + movs r0, 0x90 + lsls r0, 15 + adds r2, r0 + asrs r2, 16 + ldr r0, _080EDB68 @ =gUnknown_840BE4C + movs r3, 0x8 + bl sub_8006F8C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080EDB5C + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080EDB6C @ =gUnknown_202063C + adds r4, r0, r1 + lsls r1, r5, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_800838C + lsls r1, r5, 2 + adds r0, r7, 0 + adds r0, 0x28 + adds r2, r0, r1 + str r4, [r2] + cmp r6, 0 + beq _080EDB56 + ldrb r0, [r4, 0x1] + movs r1, 0x3F + ands r1, r0 + movs r0, 0x80 + orrs r1, r0 + strb r1, [r4, 0x1] +_080EDB56: + ldr r0, [r2] + bl sub_80EDAD8 +_080EDB5C: + adds r5, 0x1 + cmp r5, 0x3 + ble _080EDAF6 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EDB68: .4byte gUnknown_840BE4C +_080EDB6C: .4byte gUnknown_202063C + thumb_func_end sub_80EDAF0 + + thumb_func_start sub_80EDB70 +sub_80EDB70: @ 80EDB70 + push {r4,lr} + adds r4, r0, 0 + ldr r1, [r4, 0x18] + ldrh r0, [r1, 0x24] + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + ldr r1, [r4, 0x18] + ldrh r0, [r1, 0x26] + ldrh r2, [r1, 0x22] + adds r0, r2 + strh r0, [r1, 0x22] + ldr r0, [r4, 0x18] + movs r1, 0 + movs r2, 0x2A + bl sub_8007FFC + ldr r0, [r4, 0x18] + ldr r1, _080EDBA4 @ =nullsub_8 + str r1, [r0, 0x1C] + movs r1, 0x1 + bl sub_800843C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EDBA4: .4byte nullsub_8 + thumb_func_end sub_80EDB70 + + thumb_func_start nullsub_83 +nullsub_83: @ 80EDBA8 + bx lr + thumb_func_end nullsub_83 + + thumb_func_start sub_80EDBAC +sub_80EDBAC: @ 80EDBAC + push {r4-r7,lr} + adds r7, r0, 0 + movs r6, 0 + ldr r5, _080EDBE0 @ =gUnknown_840BBB8 +_080EDBB4: + lsls r0, r6, 2 + adds r4, r7, 0 + adds r4, 0x28 + adds r4, r0 + ldr r0, [r4] + movs r1, 0x1 + bl sub_800843C + ldr r0, [r4] + ldr r1, _080EDBE4 @ =nullsub_83 + str r1, [r0, 0x1C] + ldrb r1, [r5] + ldrb r2, [r5, 0x1] + bl sub_8007FFC + adds r5, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _080EDBB4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EDBE0: .4byte gUnknown_840BBB8 +_080EDBE4: .4byte nullsub_83 + thumb_func_end sub_80EDBAC + + thumb_func_start sub_80EDBE8 +sub_80EDBE8: @ 80EDBE8 + push {r4,lr} + adds r4, r0, 0 + ldrb r0, [r4, 0x4] + cmp r0, 0 + beq _080EDBF8 + cmp r0, 0x1 + beq _080EDC0C + b _080EDC34 +_080EDBF8: + movs r2, 0x80 + lsls r2, 3 + movs r0, 0 + movs r1, 0 + bl sub_8070424 + ldrb r0, [r4, 0x4] + adds r0, 0x1 + strb r0, [r4, 0x4] + b _080EDC34 +_080EDC0C: + bl sub_80F682C + lsls r0, 24 + cmp r0, 0 + bne _080EDC34 + ldrb r0, [r4, 0x5] + bl sub_8077508 + adds r0, r4, 0 + bl sub_8002BC4 + movs r0, 0x2 + bl sub_8000B94 + movs r0, 0 + bl sub_8000700 + ldr r0, _080EDC3C @ =sub_8078914 + bl sub_8000544 +_080EDC34: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EDC3C: .4byte sub_8078914 + thumb_func_end sub_80EDBE8 + + thumb_func_start sub_80EDC40 +sub_80EDC40: @ 80EDC40 + push {r4-r6,lr} + movs r5, 0 + ldr r4, _080EDCE4 @ =gUnknown_840BBC0 +_080EDC46: + adds r0, r4, 0 + bl sub_800EBCC + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0x4 + bls _080EDC46 + ldr r0, _080EDCE8 @ =gUnknown_840BBE8 + bl sub_8008974 + ldr r6, _080EDCEC @ =gUnknown_203AB0E + movs r0, 0x60 + strh r0, [r6] + ldr r5, _080EDCF0 @ =gUnknown_203AB10 + movs r0, 0x10 + strh r0, [r5] + ldr r1, _080EDCF4 @ =gUnknown_203AB12 + movs r0, 0x7 + strh r0, [r1] + ldr r0, _080EDCF8 @ =gUnknown_203AB14 + movs r2, 0x5 + strh r2, [r0] + ldr r1, _080EDCFC @ =gUnknown_203AB16 + movs r0, 0x8 + strh r0, [r1] + ldr r1, _080EDD00 @ =gUnknown_203AB18 + movs r0, 0x5A + strh r0, [r1] + ldr r1, _080EDD04 @ =gUnknown_203AB1A + movs r0, 0x78 + strh r0, [r1] + ldr r0, _080EDD08 @ =gUnknown_203AB1E + movs r1, 0x1 + strh r1, [r0] + ldr r0, _080EDD0C @ =gUnknown_203AB20 + strh r1, [r0] + ldr r0, _080EDD10 @ =gUnknown_203AB22 + strh r2, [r0] + ldr r0, _080EDD14 @ =gUnknown_203AB24 + strh r2, [r0] + ldr r4, _080EDD18 @ =gUnknown_203AB28 + ldr r0, [r4] + cmp r0, 0 + bne _080EDCA2 + ldr r0, _080EDD1C @ =0x151b9245 + str r0, [r4] +_080EDCA2: + ldr r0, _080EDD20 @ =gUnknown_840BC6C + movs r1, 0xF8 + movs r2, 0x37 + movs r3, 0 + bl sub_8006F8C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080EDCDE + ldr r0, _080EDD24 @ =gUnknown_202063C + lsls r3, r1, 4 + adds r3, r1 + lsls r3, 2 + adds r2, r3, r0 + movs r1, 0xF8 + lsls r1, 4 + strh r1, [r2, 0x2E] + movs r1, 0xDC + lsls r1, 2 + strh r1, [r2, 0x30] + ldrh r1, [r6] + strh r1, [r2, 0x32] + ldrh r1, [r5] + strh r1, [r2, 0x34] + adds r0, r3 + adds r0, 0x3A + ldr r1, [r4] + bl sub_8044F34 +_080EDCDE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EDCE4: .4byte gUnknown_840BBC0 +_080EDCE8: .4byte gUnknown_840BBE8 +_080EDCEC: .4byte gUnknown_203AB0E +_080EDCF0: .4byte gUnknown_203AB10 +_080EDCF4: .4byte gUnknown_203AB12 +_080EDCF8: .4byte gUnknown_203AB14 +_080EDCFC: .4byte gUnknown_203AB16 +_080EDD00: .4byte gUnknown_203AB18 +_080EDD04: .4byte gUnknown_203AB1A +_080EDD08: .4byte gUnknown_203AB1E +_080EDD0C: .4byte gUnknown_203AB20 +_080EDD10: .4byte gUnknown_203AB22 +_080EDD14: .4byte gUnknown_203AB24 +_080EDD18: .4byte gUnknown_203AB28 +_080EDD1C: .4byte 0x151b9245 +_080EDD20: .4byte gUnknown_840BC6C +_080EDD24: .4byte gUnknown_202063C + thumb_func_end sub_80EDC40 + + thumb_func_start sub_80EDD28 +sub_80EDD28: @ 80EDD28 + push {r4-r7,lr} + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r3, r1, 16 + lsls r2, 16 + lsrs r2, 16 + ldr r0, _080EDDCC @ =gUnknown_203AB12 + ldrh r0, [r0] + ands r2, r0 + adds r2, 0x2 + lsls r2, 16 + lsrs r4, r2, 16 + ldr r1, _080EDDD0 @ =gUnknown_203AB2C + ldrh r0, [r1] + adds r2, r0, 0 + adds r0, r2, 0x1 + strh r0, [r1] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080EDD5C + movs r6, 0x3 + negs r6, r6 + adds r0, r6, 0 + strh r0, [r1] +_080EDD5C: + lsls r1, r5, 16 + asrs r1, 16 + lsls r0, r4, 16 + asrs r7, r0, 16 + adds r1, r7 + lsls r0, r3, 16 + asrs r0, 16 + lsls r2, 16 + asrs r6, r2, 16 + adds r0, r6 + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + asrs r4, r1, 16 + ldr r0, _080EDDD4 @ =0xffff0000 + adds r1, r0 + lsrs r1, 16 + cmp r1, 0xEE + bhi _080EDDC6 + ldr r0, _080EDDD8 @ =gUnknown_840BC84 + lsls r1, r3, 16 + asrs r5, r1, 16 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x1 + bl sub_8006F8C + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _080EDDC6 + ldr r0, _080EDDDC @ =gUnknown_202063C + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldr r0, _080EDDE0 @ =gUnknown_203AB22 + ldrh r0, [r0] + lsls r4, r0 + strh r4, [r1, 0x2E] + ldr r2, _080EDDE4 @ =gUnknown_203AB24 + adds r0, r5, 0 + ldrh r2, [r2] + lsls r0, r2 + strh r0, [r1, 0x30] + ldr r0, _080EDDE8 @ =gUnknown_203AB1E + ldrh r0, [r0] + muls r0, r7 + strh r0, [r1, 0x32] + ldr r0, _080EDDEC @ =gUnknown_203AB20 + ldrh r0, [r0] + muls r0, r6 + strh r0, [r1, 0x34] +_080EDDC6: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EDDCC: .4byte gUnknown_203AB12 +_080EDDD0: .4byte gUnknown_203AB2C +_080EDDD4: .4byte 0xffff0000 +_080EDDD8: .4byte gUnknown_840BC84 +_080EDDDC: .4byte gUnknown_202063C +_080EDDE0: .4byte gUnknown_203AB22 +_080EDDE4: .4byte gUnknown_203AB24 +_080EDDE8: .4byte gUnknown_203AB1E +_080EDDEC: .4byte gUnknown_203AB20 + thumb_func_end sub_80EDD28 + + thumb_func_start sub_80EDDF0 +sub_80EDDF0: @ 80EDDF0 + push {lr} + ldr r0, _080EDE00 @ =sub_80EDE04 + movs r1, 0x1 + bl sub_807741C + pop {r0} + bx r0 + .align 2, 0 +_080EDE00: .4byte sub_80EDE04 + thumb_func_end sub_80EDDF0 + + thumb_func_start sub_80EDE04 +sub_80EDE04: @ 80EDE04 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r0, 2 + add r0, r9 + lsls r0, 3 + ldr r1, _080EDEB0 @ =gUnknown_3005098 + adds r0, r1 + mov r8, r0 + ldrh r1, [r0, 0x4] + adds r1, 0x1 + strh r1, [r0, 0x4] + ldrh r0, [r0, 0x6] + adds r0, 0x1 + mov r2, r8 + strh r0, [r2, 0x6] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x6 + ble _080EDECA + movs r0, 0 + strh r0, [r2, 0x4] + ldrb r6, [r2] + ldr r0, _080EDEB4 @ =gUnknown_840BC84 + ldr r1, _080EDEB8 @ =gUnknown_840BC08 + lsls r6, 2 + adds r6, r1 + movs r3, 0 + ldrsh r1, [r6, r3] + movs r3, 0x2 + ldrsh r2, [r6, r3] + movs r3, 0x2 + bl sub_8006F8C + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, _080EDEBC @ =gUnknown_202063C + adds r7, r4, r5 + adds r0, r7, 0 + movs r1, 0x1 + bl sub_800838C + adds r5, 0x1C + adds r4, r5 + ldr r0, _080EDEC0 @ =sub_80EE40C + str r0, [r4] + ldrh r0, [r6, 0x2] + lsls r0, 4 + strh r0, [r7, 0x30] + movs r0, 0x78 + strh r0, [r7, 0x32] + mov r1, r8 + ldrh r0, [r1, 0x2] + strh r0, [r7, 0x34] + lsls r0, 16 + cmp r0, 0 + bge _080EDE88 + movs r0, 0x1 + strh r0, [r7, 0x34] +_080EDE88: + mov r2, r8 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bls _080EDECA + ldrh r0, [r2, 0x2] + adds r0, 0x1 + strh r0, [r2, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080EDEC4 + mov r0, r9 + bl sub_8077508 + b _080EDECA + .align 2, 0 +_080EDEB0: .4byte gUnknown_3005098 +_080EDEB4: .4byte gUnknown_840BC84 +_080EDEB8: .4byte gUnknown_840BC08 +_080EDEBC: .4byte gUnknown_202063C +_080EDEC0: .4byte sub_80EE40C +_080EDEC4: + movs r0, 0 + mov r3, r8 + strh r0, [r3] +_080EDECA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80EDE04 + + thumb_func_start sub_80EDED8 +sub_80EDED8: @ 80EDED8 + push {lr} + ldr r0, _080EDEE8 @ =sub_80EDEEC + movs r1, 0x2 + bl sub_807741C + pop {r0} + bx r0 + .align 2, 0 +_080EDEE8: .4byte sub_80EDEEC + thumb_func_end sub_80EDED8 + + thumb_func_start sub_80EDEEC +sub_80EDEEC: @ 80EDEEC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080EDF5C @ =gUnknown_3005098 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080EDF44 + ldrh r1, [r4, 0x2] + ldrb r2, [r4, 0x2] + adds r0, r1, 0x4 + strh r0, [r4, 0x2] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bls _080EDF1A + subs r0, r1, 0x5 + strh r0, [r4, 0x2] +_080EDF1A: + ldr r0, _080EDF60 @ =gUnknown_840BCBC + ldr r1, _080EDF64 @ =gUnknown_840BC08 + lsls r2, 2 + adds r2, r1 + movs r3, 0 + ldrsh r1, [r2, r3] + movs r3, 0x2 + ldrsh r2, [r2, r3] + movs r3, 0x3 + bl sub_8006F8C + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080EDF44 + adds r0, r5, 0 + bl sub_8077508 +_080EDF44: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + ble _080EDF56 + movs r0, 0 + strh r0, [r4] +_080EDF56: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EDF5C: .4byte gUnknown_3005098 +_080EDF60: .4byte gUnknown_840BCBC +_080EDF64: .4byte gUnknown_840BC08 + thumb_func_end sub_80EDEEC + + thumb_func_start sub_80EDF68 +sub_80EDF68: @ 80EDF68 + push {lr} + ldr r0, _080EDF8C @ =gUnknown_840BCDC + movs r1, 0x78 + movs r2, 0x46 + movs r3, 0x4 + bl sub_8006F8C + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080EDF90 @ =gUnknown_202063C + adds r0, r1 + pop {r1} + bx r1 + .align 2, 0 +_080EDF8C: .4byte gUnknown_840BCDC +_080EDF90: .4byte gUnknown_202063C + thumb_func_end sub_80EDF68 + + thumb_func_start sub_80EDF94 +sub_80EDF94: @ 80EDF94 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0 + strb r0, [r4, 0x6] + ldr r0, _080EDFD0 @ =sub_80EE024 + movs r1, 0x4 + bl sub_807741C + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + movs r1, 0x5 + adds r2, r4, 0 + bl sub_80776E8 + ldr r0, _080EDFD4 @ =gUnknown_3005090 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r0, 0x40 + strh r0, [r4, 0xE] + movs r0, 0 + bl sub_8001CCC + strh r0, [r4, 0x10] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EDFD0: .4byte sub_80EE024 +_080EDFD4: .4byte gUnknown_3005090 + thumb_func_end sub_80EDF94 + + thumb_func_start sub_80EDFD8 +sub_80EDFD8: @ 80EDFD8 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + mov r8, r3 + lsls r4, 15 + movs r0, 0xF8 + lsls r0, 9 + adds r4, r0 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8001D08 + movs r0, 0 + mov r1, r8 + movs r2, 0 + bl sub_8001B90 + lsls r5, 8 + movs r0, 0 + adds r1, r5, 0 + movs r2, 0x2 + bl sub_8001B90 + lsls r6, 8 + movs r0, 0 + adds r1, r6, 0 + movs r2, 0x2 + bl sub_8001D08 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80EDFD8 + + thumb_func_start sub_80EE024 +sub_80EE024: @ 80EE024 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080EE048 @ =gUnknown_3005098 + adds r5, r0, r1 + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bhi _080EE11C + lsls r0, 2 + ldr r1, _080EE04C @ =_080EE050 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080EE048: .4byte gUnknown_3005098 +_080EE04C: .4byte _080EE050 + .align 2, 0 +_080EE050: + .4byte _080EE068 + .4byte _080EE07A + .4byte _080EE094 + .4byte _080EE0BC + .4byte _080EE0EE + .4byte _080EE114 +_080EE068: + movs r0, 0x2 + strh r0, [r5, 0xE] + movs r0, 0 + strh r0, [r5, 0x2] + movs r0, 0x6 + strh r0, [r5, 0x10] + movs r0, 0x20 + strh r0, [r5, 0x12] + b _080EE10C +_080EE07A: + ldrh r0, [r5, 0x6] + subs r0, 0x2 + strh r0, [r5, 0x6] + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080EE11C + movs r0, 0 + strh r0, [r5, 0x2] + b _080EE10C +_080EE094: + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xE + bne _080EE0AE + adds r0, r2, 0 + movs r1, 0x5 + bl sub_8077720 + movs r1, 0x1 + strb r1, [r0, 0x6] +_080EE0AE: + movs r2, 0x2 + ldrsh r0, [r5, r2] + cmp r0, 0xF + ble _080EE11C + movs r0, 0 + strh r0, [r5, 0x2] + b _080EE10C +_080EE0BC: + ldrh r0, [r5, 0x6] + adds r0, 0x8 + strh r0, [r5, 0x6] + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bne _080EE0E0 + bl sub_80EE160 + movs r0, 0x20 + strh r0, [r5, 0x10] + movs r0, 0x30 + strh r0, [r5, 0x12] + movs r0, 0x3 + strh r0, [r5, 0xE] +_080EE0E0: + movs r3, 0x2 + ldrsh r0, [r5, r3] + cmp r0, 0x7 + ble _080EE11C + movs r0, 0 + strh r0, [r5, 0x2] + b _080EE10C +_080EE0EE: + ldrh r0, [r5, 0x6] + subs r0, 0x8 + strh r0, [r5, 0x6] + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3 + ble _080EE11C + movs r1, 0 + strh r1, [r5, 0xE] + movs r0, 0x40 + strh r0, [r5, 0x6] + strh r1, [r5, 0x2] +_080EE10C: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _080EE11C +_080EE114: + adds r0, r2, 0 + bl sub_8077508 + b _080EE156 +_080EE11C: + movs r4, 0x6 + ldrsh r3, [r5, r4] + ldr r4, _080EE15C @ =gUnknown_825E074 + adds r0, r3, 0 + adds r0, 0x40 + lsls r0, 1 + adds r0, r4 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x12 + ldrsh r0, [r5, r2] + muls r1, r0 + asrs r1, 8 + negs r1, r1 + movs r0, 0x10 + ldrsh r2, [r5, r0] + lsls r3, 1 + adds r3, r4 + movs r4, 0 + ldrsh r0, [r3, r4] + muls r0, r2 + asrs r0, 8 + subs r2, r0 + movs r3, 0xE + ldrsh r0, [r5, r3] + movs r4, 0x8 + ldrsh r3, [r5, r4] + bl sub_80EDFD8 +_080EE156: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE15C: .4byte gUnknown_825E074 + thumb_func_end sub_80EE024 + + thumb_func_start sub_80EE160 +sub_80EE160: @ 80EE160 + push {r4,lr} + ldr r4, _080EE1BC @ =gUnknown_840BE8C + adds r0, r4, 0 + movs r1, 0x84 + movs r2, 0x4E + movs r3, 0x6 + bl sub_8006F8C + adds r0, r4, 0 + movs r1, 0x84 + movs r2, 0x76 + movs r3, 0x6 + bl sub_8006F8C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080EE1B4 + ldr r0, _080EE1C0 @ =gUnknown_202063C + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + ldrb r2, [r4, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x40 + orrs r0, r2 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + ands r1, r0 + movs r0, 0x80 + orrs r1, r0 + strb r1, [r4, 0x3] + adds r0, r4, 0 + bl sub_80EDAD8 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_800838C +_080EE1B4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE1BC: .4byte gUnknown_840BE8C +_080EE1C0: .4byte gUnknown_202063C + thumb_func_end sub_80EE160 + + thumb_func_start sub_80EE1C4 +sub_80EE1C4: @ 80EE1C4 + push {lr} + adds r3, r0, 0 + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + adds r0, r3, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080EE1FA + adds r0, r3, 0 + bl sub_8007280 +_080EE1FA: + pop {r0} + bx r0 + thumb_func_end sub_80EE1C4 + + thumb_func_start sub_80EE200 +sub_80EE200: @ 80EE200 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _080EE220 @ =gUnknown_3005098 + adds r1, r0, r1 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _080EE224 + cmp r0, 0x1 + beq _080EE232 + b _080EE28A + .align 2, 0 +_080EE220: .4byte gUnknown_3005098 +_080EE224: + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + strh r0, [r1, 0x2] + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] +_080EE232: + ldrh r0, [r1, 0x4] + adds r0, 0x1 + strh r0, [r1, 0x4] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x27 + ble _080EE250 + ldrh r2, [r1, 0x2] + movs r3, 0x2 + ldrsh r0, [r1, r3] + cmp r0, 0x10 + ble _080EE250 + adds r0, r2, 0 + subs r0, 0x10 + strh r0, [r1, 0x2] +_080EE250: + movs r0, 0x2 + ldrsh r1, [r1, r0] + movs r0, 0 + movs r2, 0x1 + bl sub_8001B90 + ldr r5, _080EE290 @ =gUnknown_203AB30 + str r0, [r5] + ldr r1, _080EE294 @ =0x00007fff + cmp r0, r1 + bls _080EE270 + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + bl sub_8000B14 +_080EE270: + ldr r1, [r5] + ldr r0, _080EE298 @ =0x0000eeff + cmp r1, r0 + bls _080EE28A + movs r1, 0xEF + lsls r1, 8 + movs r0, 0 + movs r2, 0 + bl sub_8001B90 + adds r0, r4, 0 + bl sub_8077508 +_080EE28A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE290: .4byte gUnknown_203AB30 +_080EE294: .4byte 0x00007fff +_080EE298: .4byte 0x0000eeff + thumb_func_end sub_80EE200 + + thumb_func_start sub_80EE29C +sub_80EE29C: @ 80EE29C + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r2, [r5, 0x2E] + ldrh r0, [r5, 0x32] + subs r2, r0 + strh r2, [r5, 0x2E] + ldrh r1, [r5, 0x34] + ldrh r0, [r5, 0x30] + adds r1, r0 + strh r1, [r5, 0x30] + ldrh r0, [r5, 0x36] + adds r0, 0x30 + strh r0, [r5, 0x36] + lsls r2, 16 + asrs r2, 20 + strh r2, [r5, 0x20] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x22] + ldr r1, _080EE340 @ =gUnknown_825E074 + lsls r0, 16 + asrs r0, 20 + adds r0, 0x40 + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 16 + asrs r0, 21 + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x38] + adds r0, 0x1 + strh r0, [r5, 0x38] + movs r1, 0x38 + ldrsh r0, [r5, r1] + ldr r1, _080EE344 @ =gUnknown_203AB16 + ldrh r1, [r1] + bl __modsi3 + cmp r0, 0 + beq _080EE324 + adds r4, r5, 0 + adds r4, 0x3A + adds r0, r4, 0 + mov r1, sp + bl sub_8044F3C + ldr r1, [sp] + ldr r0, _080EE348 @ =0x41c64e6d + muls r1, r0 + ldr r3, _080EE34C @ =0x00006073 + adds r1, r3 + str r1, [sp] + adds r0, r4, 0 + bl sub_8044F34 + ldr r2, [sp] + lsrs r2, 16 + str r2, [sp] + movs r1, 0x20 + ldrsh r0, [r5, r1] + ldrh r1, [r5, 0x26] + ldrh r3, [r5, 0x22] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + bl sub_80EDD28 +_080EE324: + movs r0, 0x20 + ldrsh r1, [r5, r0] + movs r0, 0x8 + negs r0, r0 + cmp r1, r0 + bge _080EE336 + adds r0, r5, 0 + bl sub_8007280 +_080EE336: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE340: .4byte gUnknown_825E074 +_080EE344: .4byte gUnknown_203AB16 +_080EE348: .4byte 0x41c64e6d +_080EE34C: .4byte 0x00006073 + thumb_func_end sub_80EE29C + + thumb_func_start sub_80EE350 +sub_80EE350: @ 80EE350 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x32] + ldrh r1, [r4, 0x2E] + adds r0, r1 + strh r0, [r4, 0x2E] + ldrh r2, [r4, 0x34] + ldrh r1, [r4, 0x30] + adds r0, r2, r1 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x36] + adds r1, 0x1 + strh r1, [r4, 0x36] + ldrh r0, [r4, 0x38] + adds r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + ldrh r0, [r4, 0x2E] + ldr r1, _080EE3F8 @ =gUnknown_203AB22 + ldrh r1, [r1] + asrs r0, r1 + strh r0, [r4, 0x20] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldr r1, _080EE3FC @ =gUnknown_203AB24 + ldrh r1, [r1] + asrs r0, r1 + strh r0, [r4, 0x22] + ldr r1, _080EE400 @ =gUnknown_203AB1C + ldrh r0, [r1] + cmp r0, 0 + beq _080EE3A4 + lsls r0, r2, 16 + cmp r0, 0 + bge _080EE3A4 + movs r2, 0x38 + ldrsh r0, [r4, r2] + ldrh r1, [r1] + asrs r0, r1 + strh r0, [r4, 0x26] +_080EE3A4: + movs r0, 0x3C + ldrsh r1, [r4, r0] + ldr r0, _080EE404 @ =gUnknown_203AB18 + ldrh r0, [r0] + cmp r1, r0 + ble _080EE3DC + adds r3, r4, 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] + movs r2, 0x3C + ldrsh r1, [r4, r2] + ldr r0, _080EE408 @ =gUnknown_203AB1A + ldrh r0, [r0] + cmp r1, r0 + ble _080EE3DC + adds r0, r4, 0 + bl sub_8007280 +_080EE3DC: + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + cmp r0, 0xA0 + bls _080EE3F0 + adds r0, r4, 0 + bl sub_8007280 +_080EE3F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE3F8: .4byte gUnknown_203AB22 +_080EE3FC: .4byte gUnknown_203AB24 +_080EE400: .4byte gUnknown_203AB1C +_080EE404: .4byte gUnknown_203AB18 +_080EE408: .4byte gUnknown_203AB1A + thumb_func_end sub_80EE350 + + thumb_func_start sub_80EE40C +sub_80EE40C: @ 80EE40C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080EE490 + subs r0, r1, 0x1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x22] + cmp r0, 0x56 + ble _080EE438 + movs r0, 0x4A + strh r0, [r4, 0x22] + movs r0, 0x94 + lsls r0, 3 + strh r0, [r4, 0x30] +_080EE438: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080EE4D4 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080EE46C + ldrh r0, [r4, 0x20] + adds r1, r0, 0 + adds r1, 0x1A + strh r1, [r4, 0x20] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xBC + ble _080EE486 + movs r2, 0xBC + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4, 0x20] + movs r0, 0x1 + b _080EE484 +_080EE46C: + ldrh r0, [r4, 0x20] + adds r1, r0, 0 + subs r1, 0x1A + strh r1, [r4, 0x20] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x33 + bgt _080EE486 + movs r0, 0x68 + subs r0, r1 + strh r0, [r4, 0x20] + movs r0, 0 +_080EE484: + strh r0, [r4, 0x2E] +_080EE486: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_800838C + b _080EE4D4 +_080EE490: + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080EE49E + adds r0, r4, 0 + bl sub_8007280 +_080EE49E: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080EE4B4 + adds r0, r4, 0 + movs r1, 0 + bl sub_800838C +_080EE4B4: + ldrh r0, [r4, 0x30] + adds r0, 0x4 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 20 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + ble _080EE4D4 + adds r0, r4, 0 + bl sub_8007280 +_080EE4D4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80EE40C + + thumb_func_start sub_80EE4DC +sub_80EE4DC: @ 80EE4DC + push {lr} + adds r2, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080EE4F2 + adds r0, r2, 0 + bl sub_8007280 +_080EE4F2: + pop {r0} + bx r0 + thumb_func_end sub_80EE4DC + + thumb_func_start sub_80EE4F8 +sub_80EE4F8: @ 80EE4F8 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080EE520 @ =gUnknown_840BD88 + movs r1, 0 + movs r2, 0 + movs r3, 0x9 + bl sub_8006F8C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _080EE524 @ =gUnknown_202063C + adds r1, r0 + str r1, [r4, 0x18] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE520: .4byte gUnknown_840BD88 +_080EE524: .4byte gUnknown_202063C + thumb_func_end sub_80EE4F8 + + thumb_func_start sub_80EE528 +sub_80EE528: @ 80EE528 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + adds r4, r0, 0 + adds r0, r2, 0 + adds r5, r3, 0 + lsls r1, 16 + lsls r0, 16 + lsls r5, 16 + lsrs r5, 16 + lsrs r2, r1, 16 + mov r9, r2 + asrs r1, 16 + lsls r2, r1, 4 + movs r3, 0 + mov r8, r3 + strh r2, [r4, 0x2E] + lsrs r6, r0, 16 + asrs r0, 16 + subs r0, r1 + lsls r0, 4 + adds r1, r5, 0 + bl __divsi3 + strh r0, [r4, 0x30] + strh r5, [r4, 0x32] + strh r6, [r4, 0x34] + mov r0, r8 + strh r0, [r4, 0x36] + mov r2, r9 + strh r2, [r4, 0x20] + movs r0, 0x64 + strh r0, [r4, 0x22] + ldr r0, _080EE57C @ =sub_80EE580 + str r0, [r4, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE57C: .4byte sub_80EE580 + thumb_func_end sub_80EE528 + + thumb_func_start sub_80EE580 +sub_80EE580: @ 80EE580 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x36] + adds r0, 0x1 + strh r0, [r2, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x27 + ble _080EE5A0 + ldrh r1, [r2, 0x30] + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0x1 + ble _080EE5A0 + subs r0, r1, 0x1 + strh r0, [r2, 0x30] +_080EE5A0: + ldrh r0, [r2, 0x30] + ldrh r4, [r2, 0x2E] + adds r0, r4 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 20 + strh r0, [r2, 0x20] + ldrh r3, [r2, 0x34] + movs r4, 0x34 + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080EE5BE + strh r3, [r2, 0x20] + ldr r0, _080EE5C4 @ =nullsub_8 + str r0, [r2, 0x1C] +_080EE5BE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE5C4: .4byte nullsub_8 + thumb_func_end sub_80EE580 + + thumb_func_start sub_80EE5C8 +sub_80EE5C8: @ 80EE5C8 + push {lr} + movs r2, 0 + ldr r0, [r0, 0x18] + ldr r1, [r0, 0x1C] + ldr r0, _080EE5E0 @ =sub_80EE580 + cmp r1, r0 + bne _080EE5D8 + movs r2, 0x1 +_080EE5D8: + adds r0, r2, 0 + pop {r1} + bx r1 + .align 2, 0 +_080EE5E0: .4byte sub_80EE580 + thumb_func_end sub_80EE5C8 + + thumb_func_start sub_80EE5E4 +sub_80EE5E4: @ 80EE5E4 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x18] + movs r1, 0x2 + bl sub_800838C + ldr r0, [r4, 0x18] + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r0, [r4, 0x18] + strh r1, [r0, 0x30] + ldr r1, [r4, 0x18] + movs r0, 0x3 + strh r0, [r1, 0x26] + ldr r1, [r4, 0x18] + ldr r0, _080EE60C @ =sub_80EE610 + str r0, [r1, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE60C: .4byte sub_80EE610 + thumb_func_end sub_80EE5E4 + + thumb_func_start sub_80EE610 +sub_80EE610: @ 80EE610 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080EE646 + cmp r5, 0x1 + bgt _080EE626 + cmp r5, 0 + beq _080EE62C + b _080EE69A +_080EE626: + cmp r5, 0x2 + beq _080EE65C + b _080EE69A +_080EE62C: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080EE69A + adds r0, r4, 0 + movs r1, 0x1 + bl sub_800838C + strh r5, [r4, 0x26] + b _080EE654 +_080EE646: + movs r0, 0x21 + movs r1, 0x3F + movs r2, 0x1 + bl sub_8071E60 + movs r0, 0 + strh r0, [r4, 0x30] +_080EE654: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080EE69A +_080EE65C: + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080EE67C + movs r0, 0 + strh r0, [r4, 0x32] + movs r1, 0 + movs r2, 0x26 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080EE67A + movs r1, 0x1 +_080EE67A: + strh r1, [r4, 0x26] +_080EE67C: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x30 + ble _080EE69A + adds r0, r4, 0 + movs r1, 0 + bl sub_800838C + movs r0, 0 + strh r0, [r4, 0x26] + ldr r0, _080EE6A0 @ =nullsub_8 + str r0, [r4, 0x1C] +_080EE69A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE6A0: .4byte nullsub_8 + thumb_func_end sub_80EE610 + + thumb_func_start sub_80EE6A4 +sub_80EE6A4: @ 80EE6A4 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080EE6F0 @ =gUnknown_203AB0A + movs r0, 0x10 + strh r0, [r1] + ldr r1, _080EE6F4 @ =gUnknown_203AB04 + movs r0, 0x3 + strh r0, [r1] + ldr r1, _080EE6F8 @ =gUnknown_203AB08 + movs r0, 0x5 + strh r0, [r1] + ldr r1, _080EE6FC @ =gUnknown_203AB06 + movs r0, 0 + strh r0, [r1] + ldr r0, [r4, 0x18] + movs r1, 0x2 + bl sub_800838C + ldr r0, [r4, 0x18] + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r0, [r4, 0x18] + strh r1, [r0, 0x30] + ldr r0, [r4, 0x18] + strh r1, [r0, 0x32] + ldr r0, [r4, 0x18] + strh r1, [r0, 0x34] + ldr r0, [r4, 0x18] + strh r1, [r0, 0x36] + ldr r1, [r4, 0x18] + movs r0, 0x28 + strh r0, [r1, 0x3C] + ldr r1, [r4, 0x18] + ldr r0, _080EE700 @ =sub_80EE704 + str r0, [r1, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EE6F0: .4byte gUnknown_203AB0A +_080EE6F4: .4byte gUnknown_203AB04 +_080EE6F8: .4byte gUnknown_203AB08 +_080EE6FC: .4byte gUnknown_203AB06 +_080EE700: .4byte sub_80EE704 + thumb_func_end sub_80EE6A4 + + thumb_func_start sub_80EE704 +sub_80EE704: @ 80EE704 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080EE740 + cmp r0, 0x1 + bgt _080EE71A + cmp r0, 0 + beq _080EE726 + b _080EE846 +_080EE71A: + cmp r0, 0x2 + beq _080EE7C4 + cmp r0, 0x3 + bne _080EE724 + b _080EE824 +_080EE724: + b _080EE846 +_080EE726: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + bgt _080EE736 + b _080EE846 +_080EE736: + adds r0, r4, 0 + movs r1, 0x3 + bl sub_800838C + b _080EE818 +_080EE740: + ldrh r2, [r4, 0x3C] + ldrh r3, [r4, 0x32] + adds r1, r2, r3 + movs r5, 0 + strh r1, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x8 + strh r0, [r4, 0x34] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x24] + ldr r1, _080EE7B0 @ =gUnknown_825E074 + movs r3, 0x34 + ldrsh r0, [r4, r3] + lsls r0, 1 + adds r0, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r0, _080EE7B4 @ =gUnknown_203AB04 + ldrh r0, [r0] + muls r0, r1 + ldr r1, _080EE7B8 @ =gUnknown_203AB08 + ldrh r1, [r1] + asrs r0, r1 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + movs r0, 0x38 + ldrsh r1, [r4, r0] + ldr r0, _080EE7BC @ =gUnknown_203AB06 + ldrh r0, [r0] + cmp r1, r0 + ble _080EE78C + strh r5, [r4, 0x38] + subs r0, r2, 0x1 + strh r0, [r4, 0x3C] +_080EE78C: + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + ble _080EE846 + adds r0, r4, 0 + movs r1, 0x2 + bl sub_800838C + strh r5, [r4, 0x30] + ldr r0, _080EE7C0 @ =0x00004757 + strh r0, [r4, 0x3A] + movs r0, 0x1C + strh r0, [r4, 0x3C] + b _080EE818 + .align 2, 0 +_080EE7B0: .4byte gUnknown_825E074 +_080EE7B4: .4byte gUnknown_203AB04 +_080EE7B8: .4byte gUnknown_203AB08 +_080EE7BC: .4byte gUnknown_203AB06 +_080EE7C0: .4byte 0x00004757 +_080EE7C4: + ldrh r0, [r4, 0x3C] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r1, r0, 20 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080EE804 + ldrh r0, [r4, 0x20] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + ldrh r1, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r1, r2 + lsls r1, 16 + asrs r1, 16 + movs r3, 0x3A + ldrsh r2, [r4, r3] + bl sub_80EE864 + movs r0, 0x3A + ldrsh r1, [r4, r0] + ldr r0, _080EE820 @ =0x41c64e6d + muls r0, r1 + strh r0, [r4, 0x3A] +_080EE804: + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0xC + ble _080EE846 + adds r0, r4, 0 + movs r1, 0 + bl sub_800838C + movs r0, 0 + strh r0, [r4, 0x30] +_080EE818: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080EE846 + .align 2, 0 +_080EE820: .4byte 0x41c64e6d +_080EE824: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080EE846 + ldr r0, _080EE84C @ =gUnknown_203AB0A + ldrh r1, [r0] + ldrh r2, [r4, 0x24] + negs r2, r2 + lsls r2, 16 + asrs r2, 16 + adds r0, r4, 0 + movs r3, 0x4 + bl sub_80EE970 +_080EE846: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EE84C: .4byte gUnknown_203AB0A + thumb_func_end sub_80EE704 + + thumb_func_start sub_80EE850 +sub_80EE850: @ 80EE850 + ldr r0, [r0, 0x18] + ldr r1, [r0, 0x1C] + ldr r0, _080EE860 @ =nullsub_8 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + bx lr + .align 2, 0 +_080EE860: .4byte nullsub_8 + thumb_func_end sub_80EE850 + + thumb_func_start sub_80EE864 +sub_80EE864: @ 80EE864 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r2, 16 + lsrs r5, r2, 16 + movs r6, 0 + lsls r0, 16 + ldr r2, _080EE8D4 @ =0xffea0000 + adds r2, r0 + mov r8, r2 + lsls r1, 16 + movs r0, 0xC0 + lsls r0, 13 + adds r7, r1, r0 +_080EE880: + ldr r0, _080EE8D8 @ =gUnknown_840BEC4 + mov r2, r8 + asrs r1, r2, 16 + asrs r2, r7, 16 + movs r3, 0xA + bl sub_8006F8C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080EE8C4 + ldr r0, _080EE8DC @ =gUnknown_202063C + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + lsls r5, 16 + asrs r5, 16 + adds r0, r5, 0 + movs r1, 0xD + bl __modsi3 + adds r0, 0x8 + strh r0, [r4, 0x34] + adds r0, r5, 0 + movs r1, 0x3 + bl __modsi3 + strh r0, [r4, 0x36] + strh r6, [r4, 0x3C] + ldr r0, _080EE8E0 @ =0x41c64e6d + muls r0, r5 + lsls r0, 16 + lsrs r5, r0, 16 +_080EE8C4: + adds r6, 0x1 + cmp r6, 0x1 + ble _080EE880 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080EE8D4: .4byte 0xffea0000 +_080EE8D8: .4byte gUnknown_840BEC4 +_080EE8DC: .4byte gUnknown_202063C +_080EE8E0: .4byte 0x41c64e6d + thumb_func_end sub_80EE864 + + thumb_func_start sub_80EE8E4 +sub_80EE8E4: @ 80EE8E4 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r5, 0 + adds r4, 0x2E + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _080EE8FA + cmp r0, 0x1 + beq _080EE90C + b _080EE93E +_080EE8FA: + ldrh r0, [r5, 0x20] + lsls r0, 4 + strh r0, [r4, 0x2] + ldrh r0, [r5, 0x22] + lsls r0, 4 + strh r0, [r4, 0x4] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_080EE90C: + ldrh r1, [r4, 0x2] + ldrh r0, [r4, 0x6] + subs r1, r0 + strh r1, [r4, 0x2] + ldrh r0, [r4, 0x8] + ldrh r2, [r4, 0x4] + adds r0, r2 + strh r0, [r4, 0x4] + lsls r1, 16 + asrs r1, 20 + strh r1, [r5, 0x20] + ldrh r0, [r4, 0x4] + lsls r0, 16 + asrs r0, 20 + strh r0, [r5, 0x22] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080EE93E + adds r0, r5, 0 + bl sub_8007280 +_080EE93E: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080EE96A + movs r0, 0 + strh r0, [r4, 0xE] + adds r3, r5, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_080EE96A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80EE8E4 + + thumb_func_start sub_80EE970 +sub_80EE970: @ 80EE970 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + adds r5, r1, 0 + adds r0, r2, 0 + adds r6, r3, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 24 + lsrs r6, 24 + movs r1, 0 + mov r8, r1 + mov r1, r8 + strh r1, [r4, 0x2E] + strh r5, [r4, 0x30] + ldrh r1, [r4, 0x24] + lsls r1, 4 + strh r1, [r4, 0x32] + lsls r0, 16 + asrs r0, 12 + adds r1, r5, 0 + bl __divsi3 + strh r0, [r4, 0x34] + mov r0, r8 + strh r0, [r4, 0x36] + movs r0, 0x80 + lsls r0, 4 + adds r1, r5, 0 + bl __divsi3 + strh r0, [r4, 0x38] + mov r1, r8 + strh r1, [r4, 0x3A] + strh r6, [r4, 0x3C] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_800838C + ldr r0, _080EE9D0 @ =sub_80EE9D4 + str r0, [r4, 0x1C] + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080EE9D0: .4byte sub_80EE9D4 + thumb_func_end sub_80EE970 + + thumb_func_start sub_80EE9D4 +sub_80EE9D4: @ 80EE9D4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0x1 + beq _080EEA08 + cmp r5, 0x1 + bgt _080EE9EA + cmp r5, 0 + beq _080EE9F0 + b _080EEA88 +_080EE9EA: + cmp r5, 0x2 + beq _080EEA6E + b _080EEA88 +_080EE9F0: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080EEA88 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_800838C + b _080EEA64 +_080EEA08: + ldrh r0, [r4, 0x30] + subs r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r5, r0, 16 + cmp r5, 0 + beq _080EEA4C + ldrh r1, [r4, 0x34] + ldrh r2, [r4, 0x32] + adds r1, r2 + strh r1, [r4, 0x32] + ldrh r0, [r4, 0x38] + ldrh r2, [r4, 0x36] + adds r0, r2 + strh r0, [r4, 0x36] + lsls r1, 16 + asrs r1, 20 + strh r1, [r4, 0x24] + ldr r1, _080EEA48 @ =gUnknown_825E074 + lsls r0, 16 + asrs r0, 20 + lsls r0, 1 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0x3C + ldrsh r1, [r4, r2] + asrs r0, r1 + negs r0, r0 + strh r0, [r4, 0x26] + b _080EEA88 + .align 2, 0 +_080EEA48: .4byte gUnknown_825E074 +_080EEA4C: + ldrh r0, [r4, 0x32] + lsrs r0, 4 + strh r0, [r4, 0x24] + strh r5, [r4, 0x26] + adds r0, r4, 0 + movs r1, 0x2 + bl sub_800838C + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0x5 + beq _080EEA84 +_080EEA64: + strh r5, [r4, 0x3A] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080EEA88 +_080EEA6E: + ldrh r0, [r4, 0x3A] + adds r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4 + ble _080EEA88 + adds r0, r4, 0 + movs r1, 0 + bl sub_800838C +_080EEA84: + ldr r0, _080EEA90 @ =nullsub_8 + str r0, [r4, 0x1C] +_080EEA88: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EEA90: .4byte nullsub_8 + thumb_func_end sub_80EE9D4 + + thumb_func_start sub_80EEA94 +sub_80EEA94: @ 80EEA94 + push {r4,lr} + adds r4, r0, 0 + ldr r0, [r4, 0x18] + movs r2, 0 + strh r2, [r0, 0x2E] + ldr r0, [r4, 0x18] + strh r2, [r0, 0x30] + ldr r0, [r4, 0x18] + strh r2, [r0, 0x32] + ldr r0, [r4, 0x18] + strh r2, [r0, 0x34] + ldr r0, [r4, 0x18] + strh r2, [r0, 0x36] + ldr r0, [r4, 0x18] + strh r2, [r0, 0x38] + ldr r1, [r4, 0x18] + ldrh r0, [r1, 0x24] + ldrh r3, [r1, 0x20] + adds r0, r3 + strh r0, [r1, 0x20] + ldr r0, [r4, 0x18] + strh r2, [r0, 0x24] + ldr r1, _080EEAF4 @ =gUnknown_203AB0C + movs r0, 0x24 + strh r0, [r1] + ldr r1, _080EEAF8 @ =gUnknown_203AB06 + movs r0, 0x28 + strh r0, [r1] + ldr r1, _080EEAFC @ =gUnknown_203AB04 + movs r0, 0x3 + strh r0, [r1] + ldr r1, _080EEB00 @ =gUnknown_203AB08 + movs r0, 0x4 + strh r0, [r1] + ldr r1, [r4, 0x18] + movs r0, 0x24 + strh r0, [r1, 0x3C] + ldr r0, [r4, 0x18] + movs r1, 0x2 + bl sub_800838C + ldr r1, [r4, 0x18] + ldr r0, _080EEB04 @ =sub_80EEB08 + str r0, [r1, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080EEAF4: .4byte gUnknown_203AB0C +_080EEAF8: .4byte gUnknown_203AB06 +_080EEAFC: .4byte gUnknown_203AB04 +_080EEB00: .4byte gUnknown_203AB08 +_080EEB04: .4byte sub_80EEB08 + thumb_func_end sub_80EEA94 + + thumb_func_start sub_80EEB08 +sub_80EEB08: @ 80EEB08 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080EEB58 + cmp r0, 0x1 + bgt _080EEB1E + cmp r0, 0 + beq _080EEB24 + b _080EEBCE +_080EEB1E: + cmp r0, 0x2 + beq _080EEB84 + b _080EEBCE +_080EEB24: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080EEB4A + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + ands r0, r1 + cmp r0, 0 + beq _080EEB44 + ldrh r0, [r4, 0x24] + adds r0, 0x1 + b _080EEB48 +_080EEB44: + ldrh r0, [r4, 0x24] + subs r0, 0x1 +_080EEB48: + strh r0, [r4, 0x24] +_080EEB4A: + movs r3, 0x30 + ldrsh r0, [r4, r3] + cmp r0, 0x11 + ble _080EEBCE + movs r0, 0 + strh r0, [r4, 0x30] + b _080EEB78 +_080EEB58: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + ldr r1, _080EEB80 @ =gUnknown_203AB06 + ldrh r1, [r1] + cmp r0, r1 + blt _080EEBCE + adds r0, r4, 0 + movs r1, 0x4 + bl sub_800838C + strh r5, [r4, 0x30] + strh r5, [r4, 0x32] +_080EEB78: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _080EEBCE + .align 2, 0 +_080EEB80: .4byte gUnknown_203AB06 +_080EEB84: + ldrh r2, [r4, 0x3C] + ldrh r1, [r4, 0x30] + adds r0, r2, r1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 20 + negs r1, r0 + strh r1, [r4, 0x24] + ldr r1, _080EEBD4 @ =gUnknown_825E074 + lsls r0, 1 + adds r0, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r0, _080EEBD8 @ =gUnknown_203AB04 + ldrh r0, [r0] + muls r0, r1 + ldr r1, _080EEBDC @ =gUnknown_203AB08 + ldrh r1, [r1] + asrs r0, r1 + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xC + ble _080EEBC0 + subs r0, r2, 0x1 + strh r0, [r4, 0x3C] +_080EEBC0: + ldrh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 20 + cmp r0, 0x3F + ble _080EEBCE + ldr r0, _080EEBE0 @ =nullsub_8 + str r0, [r4, 0x1C] +_080EEBCE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EEBD4: .4byte gUnknown_825E074 +_080EEBD8: .4byte gUnknown_203AB04 +_080EEBDC: .4byte gUnknown_203AB08 +_080EEBE0: .4byte nullsub_8 + thumb_func_end sub_80EEB08 + + thumb_func_start sub_80EEBE4 +sub_80EEBE4: @ 80EEBE4 + push {r4,r5,lr} + movs r5, 0 + ldr r4, _080EEC04 @ =gUnknown_840BEDC +_080EEBEA: + adds r0, r4, 0 + bl sub_800EBCC + adds r4, 0x8 + adds r5, 0x1 + cmp r5, 0x6 + bls _080EEBEA + ldr r0, _080EEC08 @ =gUnknown_840BF14 + bl sub_8008974 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080EEC04: .4byte gUnknown_840BEDC +_080EEC08: .4byte gUnknown_840BF14 + thumb_func_end sub_80EEBE4 + + .align 2, 0 @ Don't pad with nop. |