diff options
author | Diegoisawesome <diego@domoreaweso.me> | 2016-11-01 12:20:17 -0500 |
---|---|---|
committer | Diegoisawesome <diego@domoreaweso.me> | 2016-11-01 12:20:17 -0500 |
commit | b4a39100c0e052bdab3cfa2da707072c2ee18115 (patch) | |
tree | dcea69ec49430f004c17ff71b77587cafd78c69a /asm/record_mixing.s | |
parent | f09f9cef752c37e3cc0686573c1fdb29da842772 (diff) | |
parent | 6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (diff) |
Merge https://github.com/pret/pokeemerald
Diffstat (limited to 'asm/record_mixing.s')
-rw-r--r-- | asm/record_mixing.s | 3711 |
1 files changed, 3711 insertions, 0 deletions
diff --git a/asm/record_mixing.s b/asm/record_mixing.s new file mode 100644 index 000000000..a706fef91 --- /dev/null +++ b/asm/record_mixing.s @@ -0,0 +1,3711 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80E6BE8 +sub_80E6BE8: @ 80E6BE8 + push {lr} + ldr r0, =sub_80E715C + bl sub_80B37D4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E6BE8 + + thumb_func_start sub_80E6BF8 +sub_80E6BF8: @ 80E6BF8 + push {r4,lr} + ldr r2, =0x03001134 + ldr r0, =0x03005d8c + ldr r1, [r0] + ldr r3, =0x00001a9c + adds r0, r1, r3 + str r0, [r2] + ldr r2, =0x03001138 + ldr r4, =0x000027cc + adds r0, r1, r4 + str r0, [r2] + ldr r2, =0x0300113c + ldr r3, =0x00002b50 + adds r0, r1, r3 + str r0, [r2] + ldr r2, =0x03001140 + ldr r4, =0x00002e28 + adds r0, r1, r4 + str r0, [r2] + ldr r2, =0x03001144 + ldr r3, =0x00002e68 + adds r0, r1, r3 + str r0, [r2] + ldr r2, =0x03001148 + ldr r0, =0x02039f9c + str r0, [r2] + ldr r2, =0x0300114c + ldr r0, =0x03005d90 + ldr r0, [r0] + ldr r4, =0x0000064c + adds r3, r0, r4 + str r3, [r2] + ldr r2, =0x03001150 + ldr r4, =0x00003b58 + adds r1, r4 + str r1, [r2] + ldr r1, =0x03001154 + adds r0, 0xDC + str r0, [r1] + ldr r0, =0x03001158 + str r3, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E6BF8 + + thumb_func_start sub_80E6CA0 +sub_80E6CA0: @ 80E6CA0 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =0x03001134 + ldr r1, [r0] + movs r4, 0xC8 + lsls r4, 4 + adds r0, r5, 0 + adds r2, r4, 0 + bl memcpy + adds r4, r5, r4 + ldr r0, =0x03001138 + ldr r1, [r0] + movs r2, 0xE1 + lsls r2, 2 + adds r0, r4, 0 + bl memcpy + adds r0, r4, 0 + bl sub_80F14F8 + ldr r1, =0x00001004 + adds r0, r5, r1 + ldr r1, =0x0300113c + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r2, =0x00001044 + adds r0, r5, r2 + ldr r1, =0x03001140 + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r1, =0x00001084 + adds r0, r5, r1 + ldr r1, =0x03001144 + ldr r1, [r1] + movs r2, 0x28 + bl memcpy + ldr r2, =0x000010ac + adds r0, r5, r2 + bl sub_80E89F8 + ldr r0, =0x0300114c + ldr r0, [r0] + ldr r2, =0x00001124 + adds r1, r5, r2 + bl sub_81659DC + bl link_get_multiplayer_id + lsls r0, 24 + cmp r0, 0 + bne _080E6D1C + bl sub_81539D4 + ldr r2, =0x000011c8 + adds r1, r5, r2 + strh r0, [r1] +_080E6D1C: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E6CA0 + + thumb_func_start sub_80E6D54 +sub_80E6D54: @ 80E6D54 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =0x03001134 + ldr r1, [r0] + movs r4, 0xC8 + lsls r4, 4 + adds r0, r5, 0 + adds r2, r4, 0 + bl memcpy + adds r0, r5, 0 + bl sub_80EB18C + adds r4, r5, r4 + ldr r0, =0x03001138 + ldr r1, [r0] + movs r2, 0xE1 + lsls r2, 2 + adds r0, r4, 0 + bl memcpy + adds r0, r4, 0 + bl sub_80F1208 + ldr r1, =0x00001004 + adds r0, r5, r1 + ldr r1, =0x0300113c + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r2, =0x00001044 + adds r4, r5, r2 + ldr r0, =0x03001140 + ldr r1, [r0] + adds r0, r4, 0 + movs r2, 0x40 + bl memcpy + adds r0, r4, 0 + bl sub_8120B70 + ldr r1, =0x00001084 + adds r0, r5, r1 + ldr r1, =0x03001144 + ldr r1, [r1] + movs r2, 0x28 + bl memcpy + ldr r2, =0x000010ac + adds r4, r5, r2 + adds r0, r4, 0 + bl sub_80E89F8 + adds r0, r4, 0 + bl sub_80E8A54 + ldr r0, =0x0300114c + ldr r0, [r0] + ldr r1, =0x00001124 + adds r4, r5, r1 + adds r1, r4, 0 + bl sub_81659DC + adds r0, r4, 0 + bl TaskDummy4 + bl link_get_multiplayer_id + lsls r0, 24 + cmp r0, 0 + bne _080E6DEE + bl sub_81539D4 + ldr r2, =0x000011c8 + adds r1, r5, r2 + strh r0, [r1] +_080E6DEE: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E6D54 + + thumb_func_start sub_80E6E24 +sub_80E6E24: @ 80E6E24 + push {r4,r5,lr} + bl sub_80E9914 + bl sub_80F0BB8 + bl sub_80E6BF8 + bl sub_800A064 + cmp r0, 0 + beq _080E6E60 + bl sub_800A03C + cmp r0, 0 + bne _080E6E50 + ldr r0, =0x0203a018 + ldr r0, [r0] + bl sub_80E6CA0 + b _080E6F12 + .pool +_080E6E50: + ldr r0, =0x0203a018 + ldr r0, [r0] + bl sub_80E6D54 + b _080E6F12 + .pool +_080E6E60: + ldr r5, =0x0203a018 + ldr r0, [r5] + ldr r1, =0x03001134 + ldr r1, [r1] + movs r4, 0xC8 + lsls r4, 4 + adds r2, r4, 0 + bl memcpy + ldr r0, [r5] + adds r0, r4 + ldr r1, =0x03001138 + ldr r1, [r1] + movs r2, 0xE1 + lsls r2, 2 + bl memcpy + ldr r0, [r5] + ldr r1, =0x00001004 + adds r0, r1 + ldr r1, =0x0300113c + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r0, [r5] + ldr r2, =0x00001044 + adds r0, r2 + ldr r1, =0x03001140 + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r0, [r5] + ldr r1, =0x00001214 + adds r0, r1 + ldr r1, =0x03001150 + ldr r1, [r1] + movs r2, 0x40 + bl memcpy + ldr r0, [r5] + ldr r2, =0x00001084 + adds r0, r2 + ldr r1, =0x03001144 + ldr r1, [r1] + movs r2, 0x28 + bl memcpy + ldr r0, [r5] + ldr r1, =0x000010ac + adds r0, r1 + bl sub_80E89F8 + ldr r0, [r5] + ldr r4, =0x00001124 + adds r0, r4 + ldr r1, =0x0300114c + ldr r1, [r1] + movs r2, 0xEC + bl memcpy + ldr r0, [r5] + adds r0, r4 + bl sub_80E8AC0 + bl link_get_multiplayer_id + lsls r0, 24 + cmp r0, 0 + bne _080E6EFA + bl sub_81539D4 + ldr r1, [r5] + ldr r2, =0x00001210 + adds r1, r2 + strh r0, [r1] +_080E6EFA: + ldr r0, [r5] + ldr r1, =0x00001254 + adds r0, r1 + ldr r1, =0x03001154 + ldr r1, [r1] + bl sub_80E8110 + ldr r0, [r5] + ldr r2, =0x000012dc + adds r0, r2 + bl sub_80E8260 +_080E6F12: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E6E24 + + thumb_func_start sub_80E6F60 +sub_80E6F60: @ 80E6F60 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r4, r0, 0 + bl sub_800A064 + cmp r0, 0 + beq _080E7014 + ldr r5, =0x0203a014 + ldr r0, [r5] + movs r1, 0xC8 + lsls r1, 4 + mov r8, r1 + add r0, r8 + bl sub_80E7B2C + ldr r0, [r5] + ldr r6, =0x00001230 + lsls r4, 24 + lsrs r4, 24 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80EAF80 + ldr r3, [r5] + ldr r1, =0x000010ac + adds r0, r3, r1 + add r3, r8 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E7B60 + ldr r0, [r5] + ldr r1, =0x00001124 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E7948 + ldr r0, [r5] + add r0, r8 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80F01E8 + ldr r0, [r5] + ldr r1, =0x00001004 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80F0C7C + ldr r0, [r5] + ldr r1, =0x00001044 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E78C4 + ldr r0, [r5] + ldr r1, =0x00001084 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_812287C + ldr r0, [r5] + ldr r1, =0x000011c8 + adds r0, r1 + adds r1, r4, 0 + bl sub_80E7F68 + b _080E70BE + .pool +_080E7014: + ldr r5, =0x0203a014 + ldr r0, [r5] + movs r1, 0xC8 + lsls r1, 4 + mov r8, r1 + add r0, r8 + bl sub_80E7B2C + ldr r0, [r5] + ldr r6, =0x00001444 + lsls r4, 24 + lsrs r4, 24 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80EAF80 + ldr r0, [r5] + add r0, r8 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80F01E8 + ldr r0, [r5] + ldr r1, =0x00001004 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80F0C7C + ldr r0, [r5] + ldr r1, =0x00001044 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E78C4 + ldr r0, [r5] + ldr r1, =0x00001084 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_812287C + ldr r3, [r5] + ldr r1, =0x000010ac + adds r0, r3, r1 + add r3, r8 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E7B60 + ldr r0, [r5] + ldr r1, =0x00001124 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E7948 + ldr r0, [r5] + ldr r1, =0x00001210 + adds r0, r1 + adds r1, r4, 0 + bl sub_80E7F68 + ldr r0, [r5] + ldr r1, =0x00001214 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E7A14 + ldr r0, [r5] + ldr r1, =0x00001254 + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E8468 + ldr r0, [r5] + ldr r1, =0x000012dc + adds r0, r1 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_80E89AC +_080E70BE: + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E6F60 + + thumb_func_start sub_80E70F4 +sub_80E70F4: @ 80E70F4 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + movs r0, 0 + movs r1, 0 + bl sub_81973C4 + movs r0, 0x1 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + str r0, [sp, 0x8] + movs r1, 0x1 + adds r2, r4, 0 + movs r3, 0 + bl Print + movs r0, 0 + movs r1, 0x3 + bl CopyWindowToVram + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80E70F4 + + thumb_func_start sub_80E7128 +sub_80E7128: @ 80E7128 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + bne _080E7150 + movs r0, 0xE2 + bl audio_play + movs r0, 0 + strh r0, [r4, 0x8] +_080E7150: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E7128 + + thumb_func_start sub_80E715C +sub_80E715C: @ 80E715C + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, =0x03005e08 + adds r5, r0, r1 + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bls _080E7176 + b _080E730A +_080E7176: + lsls r0, 2 + ldr r1, =_080E7188 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080E7188: + .4byte _080E71A0 + .4byte _080E7218 + .4byte _080E724C + .4byte _080E726C + .4byte _080E72AC + .4byte _080E72C0 +_080E71A0: + ldr r4, =0x0203a018 + ldr r0, =0x00001444 + bl Alloc + str r0, [r4] + ldr r4, =0x0203a014 + ldr r0, =0x00005110 + bl Alloc + str r0, [r4] + ldr r0, =0x020375e2 + ldrb r0, [r0] + bl sub_8009628 + movs r0, 0x80 + lsls r0, 7 + movs r1, 0x1 + bl VarSet + ldr r1, =0x03001130 + movs r0, 0 + strb r0, [r1] + bl sub_80E6E24 + bl sub_80FB00C + movs r0, 0x1 + strh r0, [r5] + ldr r0, =sub_80E7324 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + ldr r0, =sub_80E7128 + movs r1, 0x51 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1E] + b _080E730A + .pool +_080E7218: + ldr r2, =0x03005e00 + movs r0, 0x14 + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080E730A + movs r0, 0x2 + strh r0, [r5] + ldr r0, =0x00000894 + bl FlagSet + bl sub_80FB074 + ldrb r0, [r5, 0x1E] + bl DestroyTask + b _080E730A + .pool +_080E724C: + ldr r0, =sub_80E7FF8 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] + movs r0, 0x3 + strh r0, [r5] + movs r0, 0xE0 + bl audio_play + b _080E730A + .pool +_080E726C: + ldr r2, =0x03005e00 + movs r0, 0x14 + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r4, [r0, 0x4] + cmp r4, 0 + bne _080E730A + movs r0, 0x4 + strh r0, [r5] + ldr r0, =0x030030fc + ldrb r0, [r0] + cmp r0, 0 + bne _080E7296 + bl sub_80B3050 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x14] +_080E7296: + ldr r0, =gUnknown_085EEA8E + bl sub_80E70F4 + strh r4, [r5, 0x10] + b _080E730A + .pool +_080E72AC: + ldrh r0, [r5, 0x10] + adds r0, 0x1 + strh r0, [r5, 0x10] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080E730A + movs r0, 0x5 + strh r0, [r5] + b _080E730A +_080E72C0: + ldr r2, =0x03005e00 + movs r0, 0x14 + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080E730A + ldr r0, =0x0203a014 + ldr r0, [r0] + bl Free + ldr r0, =0x0203a018 + ldr r0, [r0] + bl Free + bl sub_808729C + ldr r0, =0x030030fc + ldrb r0, [r0] + cmp r0, 0 + beq _080E72F8 + ldr r0, =sub_80AF2B4 + movs r1, 0xA + bl CreateTask +_080E72F8: + movs r0, 0 + movs r1, 0x1 + bl sub_8197434 + adds r0, r4, 0 + bl DestroyTask + bl script_env_2_enable_and_set_ctx_running +_080E730A: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E715C + + thumb_func_start sub_80E7324 +sub_80E7324: @ 80E7324 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r6, =0x03005e00 + adds r5, r0, r6 + movs r0, 0x8 + ldrsh r1, [r5, r0] + cmp r1, 0x64 + beq _080E73A0 + cmp r1, 0x64 + bgt _080E7362 + cmp r1, 0x1 + bne _080E7346 + b _080E7464 +_080E7346: + cmp r1, 0x1 + bgt _080E7354 + cmp r1, 0 + beq _080E7384 + b _080E7566 + .pool +_080E7354: + cmp r1, 0x2 + bne _080E735A + b _080E7490 +_080E735A: + cmp r1, 0x5 + bne _080E7360 + b _080E7550 +_080E7360: + b _080E7566 +_080E7362: + cmp r1, 0xC9 + beq _080E73F8 + cmp r1, 0xC9 + bgt _080E7370 + cmp r1, 0x65 + beq _080E73B8 + b _080E7566 +_080E7370: + ldr r0, =0x0000012d + cmp r1, r0 + beq _080E7432 + adds r0, 0x63 + cmp r1, r0 + beq _080E744A + b _080E7566 + .pool +_080E7384: + ldr r0, =gUnknown_085EEA7E + bl sub_80E70F4 + movs r0, 0xE1 + lsls r0, 3 + strh r0, [r5, 0x18] + movs r0, 0xC8 + lsls r0, 1 + strh r0, [r5, 0x8] + bl sub_8009FAC + b _080E7566 + .pool +_080E73A0: + ldrh r0, [r5, 0x20] + adds r0, 0x1 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080E73B0 + b _080E7566 +_080E73B0: + movs r0, 0 + strh r0, [r5, 0x20] + movs r0, 0x65 + b _080E7564 +_080E73B8: + bl sub_800ABAC + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_800ABBC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080E73EA + bl sub_800AA48 + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _080E73DA + b _080E7566 +_080E73DA: + movs r0, 0x15 + bl audio_play + movs r1, 0 + movs r0, 0xC9 + strh r0, [r5, 0x8] + strh r1, [r5, 0x20] + b _080E7566 +_080E73EA: + movs r0, 0x16 + bl audio_play + ldr r0, =0x0000012d + b _080E7564 + .pool +_080E73F8: + bl sub_800AA48 + adds r4, r0, 0 + bl sub_800ABAC + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _080E740C + b _080E7566 +_080E740C: + ldrh r4, [r5, 0x20] + adds r4, 0x1 + strh r4, [r5, 0x20] + lsls r4, 16 + asrs r4, 16 + bl sub_800ABAC + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + cmp r4, r1 + bgt _080E742A + b _080E7566 +_080E742A: + bl sub_800A620 + movs r0, 0x1 + b _080E7564 +_080E7432: + bl sub_800AA48 + adds r4, r0, 0 + bl sub_800ABAC + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _080E7446 + b _080E7566 +_080E7446: + movs r0, 0x1 + b _080E7564 +_080E744A: + ldrh r0, [r5, 0x20] + adds r0, 0x1 + strh r0, [r5, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bgt _080E745A + b _080E7566 +_080E745A: + movs r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + strh r0, [r5, 0x20] + b _080E7566 +_080E7464: + ldr r0, =0x03003124 + ldrb r0, [r0] + cmp r0, 0 + bne _080E746E + b _080E7566 +_080E746E: + ldr r4, =0x02021cc4 + bl sub_80E7810 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalString + movs r0, 0x5 + b _080E7564 + .pool +_080E7490: + bl sub_800ABAC + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + strh r0, [r5, 0x14] + strh r1, [r5, 0x8] + bl sub_80E7810 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x12] + ldr r0, =sub_80E756C + str r0, [r5] + bl sub_800A064 + cmp r0, 0 + beq _080E7504 + ldr r0, =0x0203a018 + ldr r0, [r0] + adds r1, r5, 0 + adds r1, 0xC + bl sub_80E7808 + ldr r0, =sub_80E7630 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r0, r1, r6 + strh r4, [r0, 0x8] + ldr r0, =0x0203a014 + ldr r0, [r0] + adds r1, r6, r1 + adds r1, 0x12 + bl sub_80E7808 + ldr r1, =0x0300115c + ldr r0, =0x00001230 + str r0, [r1] + b _080E7566 + .pool +_080E7504: + ldr r0, =0x0203a018 + ldr r0, [r0] + adds r1, r5, 0 + adds r1, 0xC + bl sub_80E7808 + ldr r0, =sub_80E7630 + movs r1, 0x50 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0x1C] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r0, r1, r6 + strh r4, [r0, 0x8] + ldr r0, =0x0203a014 + ldr r0, [r0] + adds r1, r6, r1 + adds r1, 0x12 + bl sub_80E7808 + ldr r1, =0x0300115c + ldr r0, =0x00001444 + str r0, [r1] + b _080E7566 + .pool +_080E7550: + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _080E7566 + movs r0, 0 + strh r0, [r5, 0x1C] + movs r0, 0x2 +_080E7564: + strh r0, [r5, 0x8] +_080E7566: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E7324 + + thumb_func_start sub_80E756C +sub_80E756C: @ 80E756C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =0x03005e00 + adds r5, r1, r0 + movs r2, 0x8 + ldrsh r1, [r5, r2] + adds r2, r0, 0 + cmp r1, 0x4 + bhi _080E7624 + lsls r0, r1, 2 + ldr r1, =_080E7598 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080E7598: + .4byte _080E75AC + .4byte _080E75D0 + .4byte _080E7624 + .4byte _080E75E2 + .4byte _080E760E +_080E75AC: + adds r0, r5, 0 + adds r0, 0xC + bl sub_80E77FC + adds r1, r0, 0 + movs r0, 0x10 + ldrsh r2, [r5, r0] + movs r0, 0xC8 + muls r0, r2 + adds r1, r0 + ldr r0, =0x020228c4 + movs r2, 0xC8 + bl memcpy + b _080E75FC + .pool +_080E75D0: + bl link_get_multiplayer_id + lsls r0, 24 + cmp r0, 0 + bne _080E75FC + movs r0, 0x1 + bl sub_800A4D8 + b _080E75FC +_080E75E2: + ldrh r0, [r5, 0x10] + adds r0, 0x1 + strh r0, [r5, 0x10] + movs r1, 0x10 + ldrsh r4, [r5, r1] + ldr r0, =0x0300115c + ldr r0, [r0] + movs r1, 0xC8 + bl __udivsi3 + adds r0, 0x1 + cmp r4, r0 + bne _080E7608 +_080E75FC: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _080E7624 + .pool +_080E7608: + movs r0, 0 + strh r0, [r5, 0x8] + b _080E7624 +_080E760E: + movs r1, 0x1C + ldrsh r0, [r5, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _080E7624 + ldr r0, =sub_80E77D4 + str r0, [r5] +_080E7624: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E756C + + thumb_func_start sub_80E7630 +sub_80E7630: @ 80E7630 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r0, 2 + ldr r1, [sp] + adds r0, r1 + lsls r0, 3 + ldr r1, =0x03005e00 + adds r0, r1 + mov r10, r0 + bl sub_800A550 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + movs r2, 0 + str r2, [sp, 0x8] + bl sub_800A9D8 + lsls r0, 24 + lsrs r0, 24 + ldr r3, [sp, 0x4] + cmp r3, r0 + bne _080E773E + movs r4, 0 + mov r8, r4 + b _080E771C + .pool +_080E7678: + ldr r1, [sp, 0x4] + mov r0, r8 + asrs r1, r0 + movs r0, 0x1 + ands r1, r0 + movs r2, 0x1 + add r2, r8 + mov r9, r2 + cmp r1, 0 + beq _080E7714 + mov r0, r10 + adds r0, 0x12 + bl sub_80E77FC + mov r3, r9 + lsls r4, r3, 1 + mov r5, r10 + adds r5, 0x8 + adds r4, r5, r4 + movs r2, 0 + ldrsh r1, [r4, r2] + movs r7, 0xC8 + muls r1, r7 + adds r0, r1 + ldr r3, =0x0300115c + ldr r1, [r3] + mov r2, r8 + muls r2, r1 + adds r1, r2, 0 + adds r6, r0, r1 + mov r0, r8 + bl sub_80E7820 + adds r1, r0, 0 + movs r3, 0 + ldrsh r2, [r4, r3] + adds r0, r2, 0x1 + muls r0, r7 + ldr r4, =0x0300115c + ldr r3, [r4] + cmp r0, r3 + bls _080E76DC + muls r2, r7 + subs r2, r3, r2 + adds r0, r6, 0 + bl memcpy + b _080E76E4 + .pool +_080E76DC: + adds r0, r6, 0 + movs r2, 0xC8 + bl memcpy +_080E76E4: + mov r0, r8 + bl sub_800A5EC + mov r0, r9 + lsls r1, r0, 1 + adds r1, r5, r1 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + movs r2, 0 + ldrsh r4, [r1, r2] + ldr r3, =0x0300115c + ldr r0, [r3] + movs r1, 0xC8 + bl __udivsi3 + adds r0, 0x1 + cmp r4, r0 + bne _080E7714 + ldr r0, [sp, 0x8] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] +_080E7714: + mov r4, r9 + lsls r0, r4, 24 + lsrs r0, 24 + mov r8, r0 +_080E771C: + bl sub_8009FCC + lsls r0, 24 + lsrs r0, 24 + cmp r8, r0 + bcc _080E7678 + ldr r2, =0x03005e00 + mov r0, r10 + movs r3, 0x8 + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] +_080E773E: + bl sub_8009FCC + lsls r0, 24 + lsrs r0, 24 + ldr r4, [sp, 0x8] + cmp r4, r0 + bne _080E7752 + ldr r0, [sp] + bl DestroyTask +_080E7752: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E7630 + + thumb_func_start sub_80E776C +sub_80E776C: @ 80E776C + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + ldr r2, =0x03005e00 + adds r0, r2 + movs r4, 0x1C + ldrsh r1, [r0, r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _080E7794 + adds r0, r3, 0 + bl DestroyTask +_080E7794: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E776C + + thumb_func_start sub_80E77A0 +sub_80E77A0: @ 80E77A0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, =0x03005e00 + adds r1, r0 + ldr r0, =sub_80E776C + str r0, [r1] + ldr r0, =0x03001130 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080E77C4 + movs r2, 0x12 + ldrsh r0, [r1, r2] + bl sub_80E6F60 +_080E77C4: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E77A0 + + thumb_func_start sub_80E77D4 +sub_80E77D4: @ 80E77D4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, =sub_80E77A0 + str r0, [r1] + ldr r1, =0x03001130 + movs r0, 0x1 + strb r0, [r1] + bx lr + .pool + thumb_func_end sub_80E77D4 + + thumb_func_start sub_80E77FC +sub_80E77FC: @ 80E77FC + adds r1, r0, 0 + ldrh r0, [r1] + ldrh r1, [r1, 0x2] + lsls r1, 16 + orrs r0, r1 + bx lr + thumb_func_end sub_80E77FC + + thumb_func_start sub_80E7808 +sub_80E7808: @ 80E7808 + strh r0, [r1] + lsrs r0, 16 + strh r0, [r1, 0x2] + bx lr + thumb_func_end sub_80E7808 + + thumb_func_start sub_80E7810 +sub_80E7810: @ 80E7810 + push {lr} + bl link_get_multiplayer_id + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80E7810 + + thumb_func_start sub_80E7820 +sub_80E7820: @ 80E7820 + lsls r0, 24 + lsrs r0, 16 + ldr r1, =0x020223c4 + adds r0, r1 + bx lr + .pool + thumb_func_end sub_80E7820 + + thumb_func_start sub_80E7830 +sub_80E7830: @ 80E7830 + push {r4,lr} + adds r4, r0, 0 + bl sub_8009FCC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _080E7868 + cmp r0, 0x3 + bhi _080E784A + cmp r0, 0x2 + beq _080E7850 + b _080E78B8 +_080E784A: + cmp r0, 0x4 + beq _080E7894 + b _080E78B8 +_080E7850: + movs r3, 0 + ldr r2, =gUnknown_0858CF8C + adds r1, r4, 0 +_080E7856: + adds r0, r3, r2 + ldrb r0, [r0] + stm r1!, {r0} + adds r3, 0x1 + cmp r3, 0x1 + bls _080E7856 + b _080E78B8 + .pool +_080E7868: + movs r0, 0 + bl sub_800A2A4 + adds r2, r0, 0 + movs r0, 0x1 + ands r2, r0 + movs r3, 0 + ldr r1, =gUnknown_0858CF8E + lsls r0, r2, 1 + adds r0, r2 + adds r1, r0, r1 + adds r2, r4, 0 +_080E7880: + ldrb r0, [r1] + stm r2!, {r0} + adds r1, 0x1 + adds r3, 0x1 + cmp r3, 0x2 + bls _080E7880 + b _080E78B8 + .pool +_080E7894: + movs r0, 0 + bl sub_800A2A4 + movs r1, 0x9 + bl __umodsi3 + adds r2, r0, 0 + movs r3, 0 + ldr r1, =gUnknown_0858CF94 + lsls r0, r2, 2 + adds r1, r0, r1 + adds r2, r4, 0 +_080E78AC: + ldrb r0, [r1] + stm r2!, {r0} + adds r1, 0x1 + adds r3, 0x1 + cmp r3, 0x3 + bls _080E78AC +_080E78B8: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E7830 + + thumb_func_start sub_80E78C4 +sub_80E78C4: @ 80E78C4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + mov r9, r0 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + mov r0, sp + bl sub_80E7830 + lsls r0, r7, 2 + add r0, sp + ldr r1, [r0] + mov r0, r8 + muls r0, r1 + mov r2, r9 + adds r6, r2, r0 + ldr r2, =0x020229e8 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r4, [r0] + ldrh r5, [r0, 0x1A] + bl sub_800A064 + cmp r0, 0 + beq _080E7910 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8120D34 + b _080E791A + .pool +_080E7910: + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8120CD0 +_080E791A: + ldr r0, =0x03001140 + ldr r0, [r0] + lsls r1, r7, 2 + add r1, sp + ldr r1, [r1] + mov r2, r8 + muls r2, r1 + adds r1, r2, 0 + add r1, r9 + movs r2, 0x40 + bl memcpy + bl sub_8120670 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E78C4 + + thumb_func_start sub_80E7948 +sub_80E7948: @ 80E7948 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + mov r8, r0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r6, r2, 24 + mov r0, sp + bl sub_80E7830 + bl sub_800A064 + cmp r0, 0 + beq _080E79AC + lsls r0, r6, 2 + mov r1, sp + adds r5, r1, r0 + ldr r0, [r5] + muls r0, r7 + add r0, r8 + adds r4, r7, 0 + muls r4, r6 + mov r1, r8 + adds r6, r1, r4 + adds r1, r6, 0 + bl sub_816587C + mov r9, r4 + cmp r0, 0x1 + bne _080E79FE + adds r7, r6, 0 + ldr r2, =0x020229e8 + ldr r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x1A] + adds r0, r7, 0 + adds r0, 0xE4 + strb r1, [r0] + adds r0, r7, 0 + bl sub_8164F70 + b _080E79FE + .pool +_080E79AC: + adds r5, r7, 0 + muls r5, r6 + mov r0, r8 + adds r4, r0, r5 + lsls r0, r6, 2 + add r0, sp + ldr r0, [r0] + adds r1, r7, 0 + muls r1, r0 + add r1, r8 + adds r0, r4, 0 + movs r2, 0xEC + bl memcpy + adds r7, r4, 0 + movs r6, 0 + mov r9, r5 +_080E79CE: + movs r0, 0x2C + muls r0, r6 + adds r0, 0x34 + adds r1, r7, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _080E79F2 + adds r4, r1, 0 + adds r4, 0x20 + adds r0, r4, 0 + bl sub_8009228 + cmp r0, 0 + beq _080E79F2 + adds r0, r4, 0 + movs r1, 0x1 + bl StopMusicWhileStringIsPrinted +_080E79F2: + adds r6, 0x1 + cmp r6, 0x3 + ble _080E79CE + adds r0, r7, 0 + bl sub_8164F70 +_080E79FE: + mov r0, r8 + add r0, r9 + bl sub_81628A0 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E7948 + + thumb_func_start sub_80E7A14 +sub_80E7A14: @ 80E7A14 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + mov r8, r0 + adds r7, r1, 0 + lsls r2, 24 + lsrs r5, r2, 24 + mov r0, sp + bl sub_80E7830 + adds r0, r7, 0 + muls r0, r5 + add r0, r8 + ldr r6, =0x03001150 + ldr r1, [r6] + movs r2, 0x40 + bl memcpy + bl sub_818D9AC + lsls r0, 24 + cmp r0, 0 + bne _080E7A60 + movs r0, 0x40 + bl Alloc + adds r4, r0, 0 + cmp r4, 0 + beq _080E7A8A + ldr r1, [r6] + movs r2, 0x40 + bl memcpy + b _080E7A62 + .pool +_080E7A60: + movs r4, 0 +_080E7A62: + ldr r0, =0x03001150 + ldr r0, [r0] + lsls r1, r5, 2 + add r1, sp + ldr r1, [r1] + muls r1, r7 + add r1, r8 + movs r2, 0x40 + bl memcpy + bl sub_818DA78 + cmp r4, 0 + beq _080E7A8A + adds r0, r4, 0 + bl sub_818E570 + adds r0, r4, 0 + bl Free +_080E7A8A: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E7A14 + + thumb_func_start sub_80E7A9C +sub_80E7A9C: @ 80E7A9C + ldrh r0, [r0, 0x20] + lsls r0, 24 + lsrs r0, 24 + bx lr + thumb_func_end sub_80E7A9C + + thumb_func_start sub_80E7AA4 +sub_80E7AA4: @ 80E7AA4 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x38 + mov r8, r0 + mov r10, r1 + mov r9, r2 + adds r4, r3, 0 + ldr r5, [sp, 0x54] + lsls r4, 24 + lsls r5, 24 + lsrs r5, 24 + lsrs r4, 23 + add r4, r9 + ldrb r0, [r4] + mov r6, r10 + muls r6, r0 + add r6, r8 + ldrb r0, [r4, 0x1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + adds r1, r6, r1 + mov r0, sp + movs r2, 0x38 + bl memcpy + lsls r5, 1 + add r5, r9 + ldrb r0, [r5] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r8, r0 + ldrb r1, [r4, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + adds r6, r0 + ldrb r0, [r5, 0x1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 3 + add r1, r8 + adds r0, r6, 0 + movs r2, 0x38 + bl memcpy + ldrb r1, [r5, 0x1] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 3 + add r8, r0 + mov r0, r8 + mov r1, sp + movs r2, 0x38 + bl memcpy + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E7AA4 + + thumb_func_start sub_80E7B2C +sub_80E7B2C: @ 80E7B2C + push {r4,lr} + adds r3, r0, 0 + movs r2, 0 + movs r1, 0 + ldr r4, =0x03001160 +_080E7B36: + adds r0, r3, r1 + ldrb r0, [r0] + adds r0, r2, r0 + lsls r0, 24 + lsrs r2, r0, 24 + adds r1, 0x1 + cmp r1, 0xFF + ble _080E7B36 + strb r2, [r4] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E7B2C + + thumb_func_start sub_80E7B54 +sub_80E7B54: @ 80E7B54 + ldr r0, =0x03001160 + ldrb r0, [r0] + bx lr + .pool + thumb_func_end sub_80E7B54 + + thumb_func_start sub_80E7B60 +sub_80E7B60: @ 80E7B60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + str r0, [sp, 0x2C] + str r1, [sp, 0x30] + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + bl GenerateRandomNumber2 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x38] + ldr r0, =0x020229e8 + ldrh r0, [r0, 0x4] + bl SeedRng2 + bl sub_8009FCC + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + mov r8, r0 + mov r1, sp + adds r1, 0x1C + str r1, [sp, 0x4C] + mov r2, sp + adds r2, 0x1D + str r2, [sp, 0x50] + mov r3, sp + adds r3, 0xC + str r3, [sp, 0x48] + movs r7, 0xFF + add r3, sp, 0x8 + movs r2, 0 + adds r6, r1, 0 + ldr r5, [sp, 0x50] +_080E7BB0: + mov r1, sp + add r1, r8 + adds r1, 0x4 + ldrb r0, [r1] + orrs r0, r7 + strb r0, [r1] + mov r1, r8 + adds r0, r3, r1 + strb r2, [r0] + lsls r1, 1 + adds r0, r6, r1 + strb r2, [r0] + adds r1, r5, r1 + strb r2, [r1] + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x3 + bls _080E7BB0 + bl sub_800A064 + str r0, [sp, 0x3C] + movs r2, 0 + mov r8, r2 + lsls r4, 16 + str r4, [sp, 0x54] + ldr r0, [sp, 0x30] + mov r3, r9 + muls r3, r0 + str r3, [sp, 0x44] + b _080E7D04 + .pool +_080E7BF8: + ldr r1, [sp, 0x30] + mov r0, r8 + muls r0, r1 + ldr r2, [sp, 0x2C] + adds r7, r2, r0 + ldr r1, =0x020229e8 + mov r3, r8 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x1A] + mov r9, r1 + ldrb r0, [r0] + str r0, [sp, 0x40] + movs r6, 0 + ldr r0, [r7, 0x70] + cmp r6, r0 + bcs _080E7CFA + movs r2, 0x10 + negs r2, r2 + mov r10, r2 +_080E7C24: + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 3 + adds r5, r7, r0 + ldrh r0, [r5, 0x20] + cmp r0, 0 + beq _080E7CEE + ldr r3, [sp, 0x3C] + cmp r3, 0 + beq _080E7C9A + adds r4, r5, 0 + adds r4, 0x24 + adds r0, r4, 0 + bl GetStringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _080E7C54 + movs r4, 0x1 + b _080E7C5C + .pool +_080E7C54: + adds r0, r4, 0 + bl StripExtendedControlCodes + mov r4, r9 +_080E7C5C: + ldrh r1, [r5, 0x2C] + ldr r0, =0x000015fc + cmp r1, r0 + bne _080E7C74 + adds r0, r5, 0 + adds r0, 0x2C + bl StripExtendedControlCodes + movs r1, 0x1 + b _080E7C76 + .pool +_080E7C74: + mov r1, r9 +_080E7C76: + ldr r0, [sp, 0x40] + subs r0, 0x1 + cmp r0, 0x1 + bhi _080E7CEE + adds r2, r5, 0 + adds r2, 0x37 + movs r0, 0xF + ands r4, r0 + ldrb r0, [r2] + mov r3, r10 + ands r0, r3 + orrs r0, r4 + lsls r1, 4 + movs r3, 0xF + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _080E7CEE +_080E7C9A: + mov r0, r9 + cmp r0, 0x1 + bne _080E7CEE + adds r0, r5, 0 + adds r0, 0x24 + bl sub_8009228 + cmp r0, 0 + beq _080E7CBA + adds r0, r5, 0 + adds r0, 0x37 + ldrb r1, [r0] + mov r2, r10 + ands r1, r2 + movs r2, 0x1 + b _080E7CC6 +_080E7CBA: + adds r0, r5, 0 + adds r0, 0x37 + ldrb r1, [r0] + mov r3, r10 + ands r1, r3 + movs r2, 0x2 +_080E7CC6: + orrs r1, r2 + strb r1, [r0] + adds r4, r0, 0 + adds r0, r5, 0 + adds r0, 0x2C + bl sub_8009228 + cmp r0, 0 + beq _080E7CE2 + ldrb r0, [r4] + movs r1, 0xF + ands r1, r0 + movs r0, 0x10 + b _080E7CEA +_080E7CE2: + ldrb r0, [r4] + movs r1, 0xF + ands r1, r0 + movs r0, 0x20 +_080E7CEA: + orrs r1, r0 + strb r1, [r4] +_080E7CEE: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, [r7, 0x70] + cmp r6, r0 + bcc _080E7C24 +_080E7CFA: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 +_080E7D04: + bl sub_8009FCC + lsls r0, 24 + lsrs r0, 24 + cmp r8, r0 + bcs _080E7D12 + b _080E7BF8 +_080E7D12: + movs r0, 0 + str r0, [sp, 0x34] + mov r8, r0 + ldr r1, [sp, 0x54] + lsrs r0, r1, 16 + ldr r2, [sp, 0x34] + cmp r2, r0 + bcs _080E7D70 + adds r5, r0, 0 +_080E7D24: + ldr r3, [sp, 0x30] + mov r0, r8 + muls r0, r3 + ldr r1, [sp, 0x2C] + adds r7, r1, r0 + ldr r0, [r7, 0x70] + cmp r0, 0 + beq _080E7D62 + movs r6, 0 + cmp r6, r0 + bcs _080E7D62 + adds r3, r7, 0 + adds r3, 0x74 + ldr r2, [sp, 0x4C] + mov r0, r8 + lsls r1, r0, 1 + movs r4, 0x1 +_080E7D46: + lsls r0, r6, 1 + adds r0, r3, r0 + ldrh r0, [r0] + cmp r0, 0 + bne _080E7D56 + adds r0, r6, r1 + adds r0, r2, r0 + strb r4, [r0] +_080E7D56: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, [r7, 0x70] + cmp r6, r0 + bcc _080E7D46 +_080E7D62: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r8, r5 + bcc _080E7D24 +_080E7D70: + movs r6, 0 + mov r8, r6 + ldr r1, [sp, 0x54] + cmp r1, 0 + beq _080E7E64 + add r2, sp, 0x24 + mov r10, r2 + movs r3, 0x25 + add r3, sp + mov r9, r3 +_080E7D84: + ldr r1, [sp, 0x30] + mov r0, r8 + muls r0, r1 + ldr r2, [sp, 0x2C] + adds r7, r2, r0 + mov r3, r8 + lsls r1, r3, 1 + ldr r2, [sp, 0x4C] + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _080E7DA6 + ldr r3, [sp, 0x50] + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080E7DB0 +_080E7DA6: + ldr r0, [sp, 0x34] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x34] +_080E7DB0: + ldr r2, [sp, 0x4C] + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080E7DD4 + ldr r3, [sp, 0x50] + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, 0 + bne _080E7DD4 +_080E7DC4: + lsls r1, r6, 1 + mov r3, r10 + adds r0, r3, r1 + mov r3, r8 + strb r3, [r0] + add r1, r9 + strb r2, [r1] + b _080E7E4E +_080E7DD4: + ldr r2, [sp, 0x4C] + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _080E7DE8 + ldr r3, [sp, 0x50] + adds r0, r3, r1 + ldrb r2, [r0] + cmp r2, 0x1 + beq _080E7DC4 +_080E7DE8: + ldr r2, [sp, 0x4C] + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080E7E54 + ldr r3, [sp, 0x50] + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _080E7E54 + lsls r5, r6, 1 + mov r1, r10 + adds r0, r1, r5 + mov r2, r8 + strb r2, [r0] + adds r0, r7, 0 + bl sub_80E7A9C + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r7, 0 + adds r0, 0x38 + bl sub_80E7A9C + lsls r0, 24 + lsrs r1, r0, 24 + cmp r4, 0 + bne _080E7E30 + cmp r1, 0 + beq _080E7E34 + mov r3, r9 + adds r1, r3, r5 + movs r0, 0x1 + strb r0, [r1] + b _080E7E4E +_080E7E30: + cmp r1, 0 + beq _080E7E48 +_080E7E34: + bl GenerateRandomNumber2 + mov r1, r9 + adds r2, r1, r5 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + strb r0, [r2] + b _080E7E4E +_080E7E48: + mov r2, r9 + adds r0, r2, r5 + strb r1, [r0] +_080E7E4E: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 +_080E7E54: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + mov r8, r3 + ldr r1, [sp, 0x54] + cmp r0, r1 + bcc _080E7D84 +_080E7E64: + movs r2, 0 + mov r8, r2 + ldr r3, [sp, 0x44] + lsls r0, r3, 4 + subs r0, r3 + lsls r0, 3 + ldr r1, [sp, 0x2C] + adds r7, r1, r0 + ldr r1, [sp, 0x48] +_080E7E76: + mov r2, r8 + lsls r0, r2, 2 + adds r0, r1, r0 + str r7, [r0] + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + cmp r0, 0x3 + bls _080E7E76 + bl sub_80E7B54 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r1, r0, 24 + ldr r3, [sp, 0x34] + cmp r3, 0x3 + beq _080E7EC8 + cmp r3, 0x3 + bgt _080E7EAE + cmp r3, 0x2 + beq _080E7EB6 + b _080E7F1C +_080E7EAE: + ldr r0, [sp, 0x34] + cmp r0, 0x4 + beq _080E7EE8 + b _080E7F1C +_080E7EB6: + add r2, sp, 0x24 + movs r0, 0x1 + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + movs r3, 0 + bl sub_80E7AA4 + b _080E7F1C +_080E7EC8: + ldr r0, =gUnknown_0858CFB8 + lsls r1, 1 + adds r2, r1, r0 + ldrb r3, [r2] + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + add r2, sp, 0x24 + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + bl sub_80E7AA4 + b _080E7F1C + .pool +_080E7EE8: + add r6, sp, 0x24 + ldr r4, =gUnknown_0858CFBE + lsls r5, r1, 2 + adds r0, r5, r4 + ldrb r3, [r0] + adds r0, r4, 0x1 + adds r0, r5, r0 + ldrb r0, [r0] + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + adds r2, r6, 0 + bl sub_80E7AA4 + adds r0, r4, 0x2 + adds r0, r5, r0 + ldrb r3, [r0] + adds r4, 0x3 + adds r5, r4 + ldrb r0, [r5] + str r0, [sp] + ldr r0, [sp, 0x2C] + ldr r1, [sp, 0x30] + adds r2, r6, 0 + bl sub_80E7AA4 +_080E7F1C: + ldr r1, [sp, 0x2C] + ldr r2, [sp, 0x44] + adds r7, r1, r2 + ldr r4, =0x03005d8c + ldr r0, [r4] + movs r3, 0xC2 + lsls r3, 6 + adds r0, r3 + adds r1, r7, 0 + movs r2, 0x38 + bl memcpy + ldr r0, [r4] + ldr r1, =0x0000310c + adds r0, r1 + adds r1, r7, 0 + adds r1, 0x38 + movs r2, 0x38 + bl memcpy + ldr r0, [sp, 0x38] + bl SeedRng + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E7B60 + + thumb_func_start sub_80E7F68 +sub_80E7F68: @ 80E7F68 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + cmp r1, 0 + beq _080E7FEC + ldrh r0, [r4] + cmp r0, 0 + beq _080E7FEC + bl sub_80D6C68 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _080E7FEC + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80D6724 + lsls r0, 24 + cmp r0, 0 + bne _080E7FE4 + ldrh r0, [r4] + movs r1, 0x1 + bl sub_80D6D1C + lsls r0, 24 + cmp r0, 0 + bne _080E7FE4 + ldrh r0, [r4] + movs r1, 0x1 + bl bag_add_item + lsls r0, 24 + cmp r0, 0 + beq _080E7FE4 + ldr r0, =0x00004001 + ldrh r1, [r4] + bl VarSet + ldr r0, =0x02021cc4 + ldr r1, =0x020229f0 + bl CopyString + ldrh r1, [r4] + ldr r0, =0x00000113 + cmp r1, r0 + bne _080E7FEC + ldr r0, =0x000008b3 + bl FlagSet + b _080E7FEC + .pool +_080E7FE4: + ldr r0, =0x00004001 + movs r1, 0 + bl VarSet +_080E7FEC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E7F68 + + thumb_func_start sub_80E7FF8 +sub_80E7FF8: @ 80E7FF8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =0x03005e00 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x9 + bls _080E8012 + b _080E810A +_080E8012: + lsls r0, 2 + ldr r1, =_080E8024 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_080E8024: + .4byte _080E80F2 + .4byte _080E804C + .4byte _080E805A + .4byte _080E8064 + .4byte _080E807C + .4byte _080E8090 + .4byte _080E80A4 + .4byte _080E80C0 + .4byte _080E80EE + .4byte _080E80FA +_080E804C: + bl sub_800A064 + cmp r0, 0 + bne _080E80F2 + movs r0, 0x6 + strh r0, [r4, 0x8] + b _080E810A +_080E805A: + bl sub_8076D5C + bl sub_8153430 + b _080E80F2 +_080E8064: + bl sub_8153474 + lsls r0, 24 + cmp r0, 0 + beq _080E810A + bl sav2_gender2_inplace_and_xFE + movs r1, 0 + movs r0, 0x4 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + b _080E810A +_080E807C: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + ble _080E810A + bl sub_800AC34 + b _080E80F2 +_080E8090: + ldr r0, =0x03003124 + ldrb r0, [r0] + cmp r0, 0 + bne _080E810A + adds r0, r5, 0 + bl DestroyTask + b _080E810A + .pool +_080E80A4: + movs r0, 0 + bl sub_801048C + lsls r0, 24 + cmp r0, 0 + bne _080E810A + ldr r0, =sub_8153688 + movs r1, 0x5 + bl CreateTask + b _080E80F2 + .pool +_080E80C0: + ldr r0, =sub_8153688 + bl FuncIsActiveTask + lsls r0, 24 + cmp r0, 0 + bne _080E810A + ldr r0, =0x030030fc + ldrb r0, [r0] + cmp r0, 0 + beq _080E80E8 + movs r0, 0x1 + bl sub_801048C + movs r0, 0x8 + strh r0, [r4, 0x8] + b _080E810A + .pool +_080E80E8: + movs r0, 0x4 + strh r0, [r4, 0x8] + b _080E810A +_080E80EE: + bl sub_800ADF8 +_080E80F2: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _080E810A +_080E80FA: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _080E810A + adds r0, r5, 0 + bl DestroyTask +_080E810A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E7FF8 + + thumb_func_start sub_80E8110 +sub_80E8110: @ 80E8110 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + str r0, [sp] + mov r10, r1 + adds r1, r0, 0 + adds r1, 0x38 + movs r0, 0xFF + strb r0, [r1] + ldr r1, [sp] + adds r1, 0x7C + movs r0, 0x1 + negs r0, r0 + strb r0, [r1] + ldr r0, [sp] + mov r1, r10 + movs r2, 0x44 + bl memcpy + movs r0, 0 + str r0, [sp, 0x8] + movs r1, 0 + str r1, [sp, 0xC] + movs r2, 0 + str r2, [sp, 0x4] + mov r8, r2 + movs r7, 0 + ldr r0, =0x03005d90 + mov r9, r0 +_080E8150: + mov r1, r9 + ldr r0, [r1] + adds r0, 0xB2 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 30 + adds r0, r7, r0 + movs r1, 0x3 + bl __modsi3 + adds r6, r0, 0x1 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + mov r2, r10 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x38 + ldrb r0, [r0] + cmp r0, 0xFF + beq _080E81B8 + adds r5, r1, 0 + adds r5, 0x34 + adds r0, r5, 0 + bl sub_80842DC + adds r4, r0, 0 + mov r1, r9 + ldr r0, [r1] + adds r0, 0xA + bl sub_80842DC + cmp r4, r0 + beq _080E819A + movs r2, 0x1 + add r8, r2 + str r6, [sp, 0x4] +_080E819A: + adds r0, r5, 0 + bl sub_80842DC + adds r4, r0, 0 + mov r1, r9 + ldr r0, [r1] + adds r0, 0xA + bl sub_80842DC + cmp r4, r0 + bne _080E81B8 + ldr r2, [sp, 0xC] + adds r2, 0x1 + str r2, [sp, 0xC] + str r6, [sp, 0x8] +_080E81B8: + adds r7, 0x1 + cmp r7, 0x1 + ble _080E8150 + mov r0, r8 + cmp r0, 0 + bne _080E81D0 + ldr r1, [sp, 0xC] + cmp r1, 0 + beq _080E81D0 + mov r8, r1 + ldr r2, [sp, 0x8] + str r2, [sp, 0x4] +_080E81D0: + mov r0, r8 + cmp r0, 0x1 + beq _080E81E0 + cmp r0, 0x2 + beq _080E81EC + b _080E824C + .pool +_080E81E0: + ldr r2, [sp, 0x4] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r10 + b _080E820E +_080E81EC: + bl GenerateRandomNumber2 + lsls r0, 16 + ldr r1, =0x33330000 + cmp r0, r1 + bls _080E8224 + ldr r0, =0x03005d90 + ldr r0, [r0] + adds r0, 0xB2 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 30 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r10 + adds r1, 0x44 +_080E820E: + ldr r0, [sp] + adds r0, 0x44 + movs r2, 0x44 + bl memcpy + b _080E824C + .pool +_080E8224: + ldr r0, =0x03005d90 + ldr r0, [r0] + adds r0, 0xB2 + ldrb r0, [r0] + lsls r0, 27 + lsrs r0, 30 + adds r0, 0x1 + movs r1, 0x3 + bl __modsi3 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r10 + adds r1, 0x44 + ldr r0, [sp] + adds r0, 0x44 + movs r2, 0x44 + bl memcpy +_080E824C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E8110 + + thumb_func_start sub_80E8260 +sub_80E8260: @ 80E8260 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + mov r8, r0 + movs r6, 0 + ldr r0, =0x03005d90 + mov r10, r0 +_080E8274: + movs r7, 0 + lsls r0, r6, 5 + adds r6, 0x1 + mov r9, r6 + mov r1, r8 + adds r4, r0, r1 + adds r0, 0x6 + adds r6, r1, r0 + adds r5, r4, 0 +_080E8286: + mov r2, r10 + ldr r1, [r2] + adds r1, 0xA + adds r0, r5, 0 + bl sub_80842F4 + movs r0, 0x2 + strb r0, [r4, 0xE] + mov r0, r10 + ldr r1, [r0] + adds r0, r6, 0 + bl CopyString + adds r4, 0x10 + adds r6, 0x10 + adds r5, 0x10 + adds r7, 0x1 + cmp r7, 0x1 + ble _080E8286 + mov r6, r9 + cmp r6, 0x8 + ble _080E8274 + ldr r1, =0x03005d90 + mov r10, r1 + ldr r2, =0x00000ee1 + str r2, [sp, 0x4] + movs r4, 0x99 + lsls r4, 1 + add r4, r8 + movs r0, 0x95 + lsls r0, 1 + add r0, r8 + mov r9, r0 + ldr r1, =0x00000ef1 + str r1, [sp, 0x8] + movs r6, 0x92 + lsls r6, 1 + add r6, r8 + movs r5, 0x90 + lsls r5, 1 + add r5, r8 + movs r7, 0x1 +_080E82DA: + movs r0, 0x2 + strb r0, [r4, 0x8] + mov r2, r10 + ldr r1, [r2] + adds r1, 0xA + adds r0, r5, 0 + bl sub_80842F4 + mov r0, r10 + ldr r1, [r0] + ldr r2, [sp, 0x8] + adds r1, r2 + adds r0, r6, 0 + bl sub_80842F4 + mov r0, r10 + ldr r1, [r0] + mov r0, r9 + bl CopyString + mov r2, r10 + ldr r1, [r2] + ldr r0, [sp, 0x4] + adds r1, r0 + adds r0, r4, 0 + bl CopyString + ldr r1, [sp, 0x4] + adds r1, 0x8 + str r1, [sp, 0x4] + adds r4, 0x1C + movs r2, 0x1C + add r9, r2 + ldr r0, [sp, 0x8] + adds r0, 0x4 + str r0, [sp, 0x8] + adds r6, 0x1C + adds r5, 0x1C + subs r7, 0x1 + cmp r7, 0 + bge _080E82DA + movs r6, 0 + ldr r0, =0x03005d90 + ldr r3, [r0] + mov r4, r8 + movs r1, 0xC4 + adds r1, r4 + mov r9, r1 + movs r2, 0x84 + adds r2, r4 + mov r8, r2 + movs r0, 0x44 + adds r0, r4 + mov r12, r0 + adds r7, r4, 0x4 + movs r1, 0xCF + lsls r1, 4 + adds r1, r3, r1 + str r1, [sp] + mov r10, r4 + ldr r2, =0x00000cf4 + adds r5, r3, r2 +_080E8356: + lsls r2, r6, 1 + ldr r1, [sp] + ldrh r0, [r1] + strh r0, [r7] + ldrh r0, [r5] + strh r0, [r7, 0x20] + ldrh r0, [r5, 0x4] + mov r1, r12 + strh r0, [r1] + ldr r1, =0x00000d14 + adds r0, r3, r1 + adds r0, r2 + ldrh r0, [r0] + mov r1, r12 + strh r0, [r1, 0x20] + movs r1, 0xDD + lsls r1, 4 + adds r0, r3, r1 + adds r0, r2 + ldrh r0, [r0] + mov r1, r8 + strh r0, [r1] + ldr r1, =0x00000dde + adds r0, r3, r1 + adds r0, r2 + ldrh r0, [r0] + mov r1, r8 + strh r0, [r1, 0x20] + ldr r1, =0x00000dea + adds r0, r3, r1 + adds r0, r2 + ldrh r0, [r0] + mov r1, r9 + strh r0, [r1] + ldr r1, =0x00000e08 + adds r0, r3, r1 + adds r0, r2 + ldrh r0, [r0] + mov r1, r9 + strh r0, [r1, 0x20] + ldr r1, =0x00000e1e + adds r0, r3, r1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x82 + lsls r0, 1 + add r0, r10 + strh r1, [r0] + ldr r1, =0x00000cfc + adds r0, r3, r1 + adds r0, r2 + ldrh r1, [r0] + movs r2, 0x94 + lsls r2, 1 + adds r0, r4, r2 + strh r1, [r0] + adds r4, 0x1C + movs r0, 0x10 + add r9, r0 + add r8, r0 + add r12, r0 + adds r7, 0x10 + ldr r1, [sp] + adds r1, 0x2 + str r1, [sp] + add r10, r0 + adds r5, 0x2 + adds r6, 0x1 + cmp r6, 0x1 + ble _080E8356 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E8260 + + thumb_func_start sub_80E841C +sub_80E841C: @ 80E841C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + movs r0, 0 + mov r8, r0 + adds r6, r1, 0 + adds r6, 0x34 + adds r5, r1, 0 +_080E842E: + adds r0, r7, 0 + adds r0, 0x34 + bl sub_80842DC + adds r4, r0, 0 + adds r0, r6, 0 + bl sub_80842DC + cmp r4, r0 + bne _080E844E + ldrb r0, [r7, 0x2] + ldrb r1, [r5, 0x2] + cmp r0, r1 + bne _080E844E + movs r0, 0x1 + b _080E845E +_080E844E: + adds r6, 0x44 + adds r5, 0x44 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x3 + ble _080E842E + movs r0, 0 +_080E845E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80E841C + + thumb_func_start sub_80E8468 +sub_80E8468: @ 80E8468 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r6, r0, 0 + adds r5, r1, 0 + adds r4, r2, 0 + mov r0, sp + bl sub_80E7830 + lsls r4, 2 + mov r1, sp + adds r0, r1, r4 + ldr r0, [r0] + muls r0, r5 + adds r3, r6, r0 + movs r7, 0 + movs r2, 0 + mov r8, r2 + movs r5, 0 + adds r6, r3, 0 + adds r6, 0x38 + adds r4, r3, 0 +_080E8496: + ldrb r0, [r6] + cmp r0, 0xFF + beq _080E84B4 + ldr r0, =0x03005d90 + ldr r1, [r0] + adds r1, 0xDC + adds r0, r4, 0 + str r3, [sp, 0x10] + bl sub_80E841C + ldr r3, [sp, 0x10] + cmp r0, 0 + bne _080E84B4 + adds r7, 0x1 + mov r8, r5 +_080E84B4: + adds r6, 0x44 + adds r4, 0x44 + adds r5, 0x1 + cmp r5, 0x1 + ble _080E8496 + cmp r7, 0x1 + beq _080E84CC + cmp r7, 0x2 + beq _080E8508 + b _080E8566 + .pool +_080E84CC: + ldr r4, =0x03005d90 + ldr r0, [r4] + adds r1, r0, 0 + adds r1, 0xB2 + ldrb r1, [r1] + lsls r1, 27 + lsrs r1, 30 + adds r2, r1, 0x1 + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r0, r1 + adds r0, 0xDC + mov r2, r8 + lsls r1, r2, 4 + add r1, r8 + lsls r1, 2 + adds r1, r3 + movs r2, 0x44 + bl memcpy + ldr r4, [r4] + adds r4, 0xB2 + ldrb r5, [r4] + lsls r0, r5, 27 + lsrs r0, 30 + adds r0, 0x1 + b _080E8550 + .pool +_080E8508: + movs r5, 0 + adds r6, r3, 0 +_080E850C: + movs r0, 0x1 + eors r0, r5 + ldr r7, =0x03005d90 + ldr r4, [r7] + adds r1, r4, 0 + adds r1, 0xB2 + ldrb r1, [r1] + lsls r1, 27 + lsrs r1, 30 + adds r0, r1 + movs r1, 0x3 + bl __modsi3 + adds r2, r0, 0x1 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r4, r0 + adds r4, 0xDC + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0x44 + bl memcpy + adds r6, 0x44 + adds r5, 0x1 + cmp r5, 0x1 + ble _080E850C + ldr r4, [r7] + adds r4, 0xB2 + ldrb r5, [r4] + lsls r0, r5, 27 + lsrs r0, 30 + adds r0, 0x2 +_080E8550: + movs r1, 0x3 + bl __modsi3 + movs r1, 0x3 + ands r0, r1 + lsls r0, 3 + movs r1, 0x19 + negs r1, r1 + ands r1, r5 + orrs r1, r0 + strb r1, [r4] +_080E8566: + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E8468 + + thumb_func_start sub_80E8578 +sub_80E8578: @ 80E8578 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x54 + str r0, [sp] + ldr r0, [sp, 0x74] + movs r4, 0 + mov r8, r4 + movs r5, 0 + str r5, [sp, 0x4] + ldr r4, =0x03001168 + b _080E85A0 + .pool +_080E8598: + adds r1, r2 + ldr r6, [sp, 0x4] + adds r6, 0x1 + str r6, [sp, 0x4] +_080E85A0: + ldr r5, [sp, 0x4] + cmp r5, r0 + bge _080E85B6 + cmp r5, r3 + beq _080E85B0 + stm r4!, {r1} + movs r6, 0x1 + add r8, r6 +_080E85B0: + mov r5, r8 + cmp r5, 0x3 + bne _080E8598 +_080E85B6: + movs r6, 0 + str r6, [sp, 0x4] + subs r0, 0x1 + str r0, [sp, 0x24] +_080E85BE: + movs r0, 0 + str r0, [sp, 0x8] + ldr r1, [sp, 0x4] + adds r1, 0x1 + str r1, [sp, 0x28] + ldr r2, [sp, 0x4] + lsls r2, 1 + str r2, [sp, 0x34] + ldr r3, [sp, 0x4] + adds r3, r2, r3 + str r3, [sp, 0x10] + movs r4, 0 + str r4, [sp, 0x44] + movs r5, 0 + str r5, [sp, 0x48] +_080E85DC: + movs r6, 0 + mov r8, r6 + ldr r0, =0x03005d90 + ldr r1, [r0] + ldr r2, [sp, 0x10] + lsls r0, r2, 5 + ldr r3, [sp, 0x48] + adds r0, r3, r0 + adds r3, r0, r1 + lsls r0, r2, 6 + ldr r4, [sp, 0x44] + adds r0, r4, r0 + ldr r5, [sp] + adds r2, r0, r5 +_080E85F8: + adds r0, r2, 0 + movs r6, 0x87 + lsls r6, 2 + adds r1, r3, r6 + ldm r1!, {r4-r6} + stm r0!, {r4-r6} + ldr r1, [r1] + str r1, [r0] + adds r3, 0x10 + adds r2, 0x10 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x2 + ble _080E85F8 + movs r2, 0 + mov r8, r2 + ldr r3, [sp, 0x24] + cmp r8, r3 + bge _080E86DC + ldr r4, [sp, 0x4] + lsls r4, 5 + mov r9, r4 + ldr r5, [sp, 0x8] + lsls r7, r5, 4 + ldr r6, [sp, 0x34] + ldr r1, [sp, 0x4] + adds r0, r6, r1 + lsls r0, 6 + str r0, [sp, 0x14] + ldr r2, [sp] + adds r0, r2, r0 + ldr r3, [sp, 0x44] + str r3, [sp, 0x18] + adds r0, r3 + str r0, [sp, 0x1C] + ldr r4, [sp, 0x14] + adds r0, r3, r4 + adds r0, r2 + adds r0, 0x30 + mov r10, r0 +_080E864A: + movs r5, 0 + str r5, [sp, 0xC] + movs r3, 0 + mov r6, r8 + lsls r6, 2 + str r6, [sp, 0x38] + ldr r1, [sp, 0x18] + ldr r2, [sp, 0x14] + adds r0, r1, r2 + ldr r4, [sp] + adds r5, r0, r4 + ldr r0, =0x03001168 + adds r0, r6, r0 + str r0, [sp, 0x50] +_080E8666: + lsls r0, r3, 4 + ldr r6, [sp, 0x1C] + adds r0, r6, r0 + str r3, [sp, 0x4C] + bl sub_80842DC + adds r4, r0, 0 + ldr r1, [sp, 0x50] + ldr r0, [r1] + add r0, r9 + adds r0, r7 + bl sub_80842DC + ldr r3, [sp, 0x4C] + cmp r4, r0 + bne _080E86A8 + ldr r2, [sp, 0xC] + adds r2, 0x1 + str r2, [sp, 0xC] + ldr r4, [sp, 0x50] + ldr r0, [r4] + mov r6, r9 + adds r1, r7, r6 + adds r1, r0, r1 + ldrh r0, [r5, 0x4] + ldrh r2, [r1, 0x4] + cmp r0, r2 + bcs _080E86A8 + adds r0, r5, 0 + ldm r1!, {r2,r4,r6} + stm r0!, {r2,r4,r6} + ldr r1, [r1] + str r1, [r0] +_080E86A8: + adds r5, 0x10 + adds r3, 0x1 + cmp r3, 0x2 + ble _080E8666 + ldr r3, [sp, 0xC] + cmp r3, 0 + bne _080E86CE + ldr r0, =0x03001168 + ldr r4, [sp, 0x38] + adds r0, r4, r0 + ldr r0, [r0] + mov r5, r9 + adds r2, r7, r5 + mov r1, r10 + adds r0, r2 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldr r0, [r0] + str r0, [r1] +_080E86CE: + movs r4, 0x10 + add r10, r4 + movs r5, 0x1 + add r8, r5 + ldr r6, [sp, 0x24] + cmp r8, r6 + blt _080E864A +_080E86DC: + ldr r0, [sp, 0x44] + adds r0, 0x60 + str r0, [sp, 0x44] + ldr r1, [sp, 0x48] + adds r1, 0x30 + str r1, [sp, 0x48] + ldr r2, [sp, 0x8] + adds r2, 0x1 + str r2, [sp, 0x8] + cmp r2, 0x1 + bgt _080E86F4 + b _080E85DC +_080E86F4: + ldr r3, [sp, 0x28] + str r3, [sp, 0x4] + cmp r3, 0x8 + bgt _080E86FE + b _080E85BE +_080E86FE: + movs r4, 0 + str r4, [sp, 0x8] +_080E8702: + ldr r5, [sp, 0x8] + adds r5, 0x1 + str r5, [sp, 0x2C] + ldr r0, =0x03005d90 + ldr r1, [r0] + movs r0, 0x54 + ldr r6, [sp, 0x8] + muls r0, r6 + adds r3, r0, r1 + movs r0, 0xA8 + muls r0, r6 + ldr r1, [sp] + adds r2, r0, r1 + movs r4, 0x2 + mov r8, r4 +_080E8720: + movs r5, 0xD8 + lsls r5, 3 + adds r0, r2, r5 + ldr r6, =0x0000057c + adds r1, r3, r6 + ldm r1!, {r4-r6} + stm r0!, {r4-r6} + ldm r1!, {r4-r6} + stm r0!, {r4-r6} + ldr r1, [r1] + str r1, [r0] + adds r3, 0x1C + adds r2, 0x1C + movs r0, 0x1 + negs r0, r0 + add r8, r0 + mov r1, r8 + cmp r1, 0 + bge _080E8720 + movs r2, 0 + mov r8, r2 + ldr r3, [sp, 0x24] + cmp r8, r3 + blt _080E8752 + b _080E885A +_080E8752: + ldr r4, [sp, 0x8] + lsls r1, r4, 3 + movs r0, 0xA8 + adds r5, r4, 0 + muls r5, r0 + str r5, [sp, 0x20] + str r5, [sp, 0x3C] + subs r1, r4 + lsls r1, 2 + mov r10, r1 +_080E8766: + movs r6, 0 + str r6, [sp, 0xC] + mov r0, r8 + lsls r0, 2 + str r0, [sp, 0x38] + mov r1, r8 + adds r1, 0x1 + str r1, [sp, 0x30] + ldr r0, =0x03001168 + ldr r2, [sp, 0x38] + adds r2, r0 + mov r9, r2 + ldr r3, [sp] + movs r4, 0xD8 + lsls r4, 3 + adds r0, r3, r4 + ldr r5, [sp, 0x3C] + adds r7, r5, r0 + str r6, [sp, 0x40] + movs r3, 0x2 +_080E878E: + ldr r1, [sp, 0x20] + movs r2, 0xD8 + lsls r2, 3 + adds r0, r1, r2 + ldr r4, [sp] + adds r0, r4, r0 + ldr r6, [sp, 0x40] + adds r5, r0, r6 + adds r0, r5, 0 + str r3, [sp, 0x4C] + bl sub_80842DC + adds r4, r0, 0 + movs r6, 0x90 + lsls r6, 1 + add r6, r10 + mov r1, r9 + ldr r0, [r1] + adds r0, r6 + bl sub_80842DC + ldr r3, [sp, 0x4C] + cmp r4, r0 + bne _080E8808 + adds r0, r5, 0x4 + bl sub_80842DC + adds r4, r0, 0 + mov r2, r9 + ldr r0, [r2] + adds r0, r6 + adds r0, 0x4 + bl sub_80842DC + ldr r3, [sp, 0x4C] + cmp r4, r0 + bne _080E8808 + ldr r4, [sp, 0xC] + adds r4, 0x1 + str r4, [sp, 0xC] + mov r5, r9 + ldr r0, [r5] + mov r6, r10 + adds r2, r0, r6 + movs r0, 0x94 + lsls r0, 1 + adds r1, r2, r0 + ldrh r0, [r7, 0x8] + ldrh r1, [r1] + cmp r0, r1 + bcs _080E8808 + adds r0, r7, 0 + movs r4, 0x90 + lsls r4, 1 + adds r1, r2, r4 + ldm r1!, {r2,r5,r6} + stm r0!, {r2,r5,r6} + ldm r1!, {r4-r6} + stm r0!, {r4-r6} + ldr r1, [r1] + str r1, [r0] +_080E8808: + adds r7, 0x1C + ldr r0, [sp, 0x40] + adds r0, 0x1C + str r0, [sp, 0x40] + subs r3, 0x1 + cmp r3, 0 + bge _080E878E + ldr r1, [sp, 0xC] + cmp r1, 0 + bne _080E8850 + mov r0, r8 + adds r0, 0x3 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r2, [sp, 0x20] + adds r1, r2 + ldr r3, [sp] + adds r1, r3, r1 + ldr r0, =0x03001168 + ldr r4, [sp, 0x38] + adds r0, r4, r0 + ldr r0, [r0] + add r0, r10 + movs r5, 0xD8 + lsls r5, 3 + adds r1, r5 + movs r6, 0x90 + lsls r6, 1 + adds r0, r6 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2,r5,r6} + stm r1!, {r2,r5,r6} + ldr r0, [r0] + str r0, [r1] +_080E8850: + ldr r3, [sp, 0x30] + mov r8, r3 + ldr r4, [sp, 0x24] + cmp r8, r4 + blt _080E8766 +_080E885A: + ldr r5, [sp, 0x2C] + str r5, [sp, 0x8] + cmp r5, 0x1 + bgt _080E8864 + b _080E8702 +_080E8864: + add sp, 0x54 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E8578 + + thumb_func_start sub_80E8880 +sub_80E8880: @ 80E8880 + push {r4-r7,lr} + mov r12, r0 + adds r7, r1, 0 + movs r5, 0 +_080E8888: + movs r2, 0 + movs r4, 0x1 + negs r4, r4 + movs r1, 0 + adds r6, r5, 0x1 + adds r3, r7, 0 +_080E8894: + ldrh r0, [r3, 0x4] + cmp r0, r2 + ble _080E889E + adds r4, r1, 0 + adds r2, r0, 0 +_080E889E: + adds r3, 0x10 + adds r1, 0x1 + cmp r1, 0x5 + ble _080E8894 + cmp r4, 0 + blt _080E88C0 + lsls r1, r5, 4 + lsls r2, r4, 4 + adds r2, r7 + add r1, r12 + adds r0, r2, 0 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, [r0] + str r0, [r1] + movs r0, 0 + strh r0, [r2, 0x4] +_080E88C0: + adds r5, r6, 0 + cmp r5, 0x2 + ble _080E8888 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E8880 + + thumb_func_start sub_80E88CC +sub_80E88CC: @ 80E88CC + push {r4-r7,lr} + mov r12, r0 + adds r6, r1, 0 + movs r5, 0 +_080E88D4: + movs r3, 0 + movs r4, 0x1 + negs r4, r4 + movs r2, 0 + adds r7, r5, 0x1 + adds r1, r6, 0 +_080E88E0: + ldrh r0, [r1, 0x8] + cmp r0, r3 + ble _080E88EA + adds r4, r2, 0 + adds r3, r0, 0 +_080E88EA: + adds r1, 0x1C + adds r2, 0x1 + cmp r2, 0x5 + ble _080E88E0 + cmp r4, 0 + blt _080E8918 + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + lsls r2, r4, 3 + subs r2, r4 + lsls r2, 2 + adds r2, r6 + add r1, r12 + adds r0, r2, 0 + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldm r0!, {r3-r5} + stm r1!, {r3-r5} + ldr r0, [r0] + str r0, [r1] + movs r0, 0 + strh r0, [r2, 0x8] +_080E8918: + adds r5, r7, 0 + cmp r5, 0x2 + ble _080E88D4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E88CC + + thumb_func_start sub_80E8924 +sub_80E8924: @ 80E8924 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + movs r0, 0 + ldr r1, =0x03005d90 + mov r10, r1 +_080E8936: + lsls r1, r0, 1 + adds r2, r0, 0x1 + mov r8, r2 + adds r1, r0 + lsls r0, r1, 5 + movs r2, 0x87 + lsls r2, 2 + adds r7, r0, r2 + lsls r1, 6 + mov r0, r9 + adds r4, r0, r1 + movs r6, 0 + movs r5, 0x1 +_080E8950: + mov r1, r10 + ldr r0, [r1] + adds r0, r7 + adds r0, r6 + adds r1, r4, 0 + bl sub_80E8880 + adds r4, 0x60 + adds r6, 0x30 + subs r5, 0x1 + cmp r5, 0 + bge _080E8950 + mov r0, r8 + cmp r0, 0x8 + ble _080E8936 + movs r5, 0 + ldr r4, =0x03005d90 +_080E8972: + movs r0, 0x54 + adds r1, r5, 0 + muls r1, r0 + ldr r2, =0x0000057c + adds r1, r2 + ldr r0, [r4] + adds r0, r1 + movs r1, 0xA8 + muls r1, r5 + movs r2, 0xD8 + lsls r2, 3 + adds r1, r2 + add r1, r9 + bl sub_80E88CC + adds r5, 0x1 + cmp r5, 0x1 + ble _080E8972 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E8924 + + thumb_func_start sub_80E89AC +sub_80E89AC: @ 80E89AC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r6, r0, 0 + mov r8, r1 + mov r9, r2 + bl sub_8009FCC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x81 + lsls r0, 4 + bl AllocZeroed + adds r5, r0, 0 + str r4, [sp] + adds r1, r6, 0 + mov r2, r8 + mov r3, r9 + bl sub_80E8578 + adds r0, r5, 0 + bl sub_80E8924 + adds r0, r5, 0 + bl Free + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80E89AC + + thumb_func_start sub_80E89F8 +sub_80E89F8: @ 80E89F8 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, =0x02039f9c + ldr r4, =0x03005d8c + ldr r1, [r4] + movs r0, 0xC2 + lsls r0, 6 + adds r1, r0 + adds r0, r5, 0 + movs r2, 0x38 + bl memcpy + ldr r1, [r4] + ldr r0, =0x0000310c + adds r1, r0 + adds r0, r5, 0 + adds r0, 0x38 + movs r2, 0x38 + bl memcpy + ldr r0, [r4] + ldr r1, =0x00003030 + adds r0, r1 + adds r1, r5, 0 + bl sub_806FA9C + ldr r0, =0x03001148 + ldr r1, [r0] + adds r0, r6, 0 + movs r2, 0x78 + bl memcpy + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80E89F8 + + thumb_func_start sub_80E8A54 +sub_80E8A54: @ 80E8A54 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r0, 0 + mov r9, r0 + ldr r0, [r5, 0x70] + cmp r9, r0 + bcs _080E8AAE + adds r4, r5, 0 + adds r4, 0x2C + movs r0, 0x24 + adds r0, r5 + mov r8, r0 + adds r7, r5, 0 + adds r7, 0x37 + adds r6, r5, 0 +_080E8A78: + ldrh r0, [r6, 0x20] + cmp r0, 0 + beq _080E8A9A + ldrb r1, [r4, 0xB] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + beq _080E8A90 + mov r0, r8 + movs r1, 0xFC + bl sub_81DB4DC +_080E8A90: + ldrb r1, [r7] + lsrs r1, 4 + adds r0, r4, 0 + bl StopMusicWhileStringIsPrinted +_080E8A9A: + adds r4, 0x38 + movs r0, 0x38 + add r8, r0 + adds r7, 0x38 + adds r6, 0x38 + movs r0, 0x1 + add r9, r0 + ldr r0, [r5, 0x70] + cmp r9, r0 + bcc _080E8A78 +_080E8AAE: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80E8A54 + + thumb_func_start TaskDummy4 +TaskDummy4: @ 80E8ABC + bx lr + thumb_func_end TaskDummy4 + + thumb_func_start sub_80E8AC0 +sub_80E8AC0: @ 80E8AC0 + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 +_080E8AC6: + movs r0, 0x2C + muls r0, r4 + adds r0, 0x34 + adds r1, r5, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _080E8ADC + adds r0, r1, 0 + adds r0, 0x20 + bl StripExtendedControlCodes +_080E8ADC: + adds r4, 0x1 + cmp r4, 0x3 + ble _080E8AC6 + adds r0, r5, 0 + bl sub_8164F70 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80E8AC0 + + .align 2, 0 @ Don't pad with nop. |