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/battle_interface.s |
first commit
Diffstat (limited to 'asm/battle_interface.s')
-rw-r--r-- | asm/battle_interface.s | 5660 |
1 files changed, 5660 insertions, 0 deletions
diff --git a/asm/battle_interface.s b/asm/battle_interface.s new file mode 100644 index 000000000..cfd0ca01a --- /dev/null +++ b/asm/battle_interface.s @@ -0,0 +1,5660 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8047B0C +sub_8047B0C: @ 8047B0C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r7, r1, 0 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + movs r3, 0 + movs r2, 0 +_08047B28: + lsls r0, r3, 24 + asrs r0, 24 + mov r3, sp + adds r1, r3, r0 + strb r2, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _08047B28 + movs r3, 0x3 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 + mov r8, sp +_08047B48: + lsls r0, r5, 16 + asrs r6, r0, 16 + cmp r6, 0 + ble _08047B76 + lsls r4, r3, 24 + asrs r4, 24 + mov r1, sp + adds r5, r1, r4 + adds r0, r6, 0 + movs r1, 0xA + bl __modsi3 + strb r0, [r5] + adds r0, r6, 0 + movs r1, 0xA + bl __divsi3 + lsls r0, 16 + lsrs r5, r0, 16 + subs r4, 0x1 + lsls r4, 24 + lsrs r3, r4, 24 + b _08047B48 +_08047B76: + lsls r1, r3, 24 + asrs r0, r1, 24 + cmp r0, r9 + ble _08047B9A + movs r4, 0xFF + movs r3, 0x1 + negs r3, r3 +_08047B84: + asrs r2, r1, 24 + mov r5, sp + adds r1, r5, r2 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + subs r2, 0x1 + lsls r1, r2, 24 + asrs r0, r1, 24 + cmp r0, r3 + bgt _08047B84 +_08047B9A: + mov r1, r8 + ldrb r0, [r1, 0x3] + cmp r0, 0xFF + bne _08047BA6 + movs r0, 0 + strb r0, [r1, 0x3] +_08047BA6: + mov r2, r10 + cmp r2, 0 + bne _08047C36 + movs r3, 0 + movs r1, 0 + movs r6, 0xFC + lsls r6, 8 + movs r5, 0x1E + mov r12, r5 +_08047BB8: + lsls r1, 24 + asrs r2, r1, 24 + mov r0, sp + adds r5, r0, r2 + ldrb r0, [r5] + mov r8, r1 + cmp r0, 0xFF + bne _08047BEE + lsls r1, r2, 1 + adds r1, r7 + ldrh r2, [r1] + adds r0, r6, 0 + ands r0, r2 + mov r2, r12 + orrs r0, r2 + strh r0, [r1] + lsls r3, 24 + asrs r1, r3, 23 + adds r1, r7 + adds r1, 0x40 + ldrh r2, [r1] + adds r0, r6, 0 + ands r0, r2 + mov r5, r12 + orrs r0, r5 + strh r0, [r1] + b _08047C1E +_08047BEE: + lsls r2, 1 + adds r2, r7 + ldrh r0, [r2] + adds r1, r6, 0 + ands r1, r0 + ldrb r0, [r5] + adds r0, 0x14 + orrs r1, r0 + strh r1, [r2] + lsls r4, r3, 24 + asrs r3, r4, 24 + lsls r2, r3, 1 + adds r2, r7 + adds r2, 0x40 + ldrh r0, [r2] + adds r1, r6, 0 + ands r1, r0 + mov r5, sp + adds r0, r5, r3 + ldrb r0, [r0] + adds r0, 0x34 + orrs r1, r0 + strh r1, [r2] + adds r3, r4, 0 +_08047C1E: + movs r0, 0x80 + lsls r0, 17 + add r0, r8 + lsrs r1, r0, 24 + movs r2, 0x80 + lsls r2, 17 + adds r0, r3, r2 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _08047BB8 + b _08047C9A +_08047C36: + movs r3, 0 + movs r4, 0xFC + lsls r4, 8 + movs r6, 0x1E +_08047C3E: + lsls r1, r3, 24 + asrs r2, r1, 24 + mov r3, sp + adds r5, r3, r2 + ldrb r0, [r5] + adds r3, r1, 0 + cmp r0, 0xFF + bne _08047C6A + lsls r1, r2, 1 + adds r1, r7 + ldrh r2, [r1] + adds r0, r4, 0 + ands r0, r2 + orrs r0, r6 + strh r0, [r1] + adds r1, 0x40 + ldrh r2, [r1] + adds r0, r4, 0 + ands r0, r2 + orrs r0, r6 + strh r0, [r1] + b _08047C8C +_08047C6A: + lsls r2, 1 + adds r2, r7 + ldrh r0, [r2] + adds r1, r4, 0 + ands r1, r0 + ldrb r0, [r5] + adds r0, 0x14 + orrs r1, r0 + strh r1, [r2] + adds r2, 0x40 + ldrh r0, [r2] + adds r1, r4, 0 + ands r1, r0 + ldrb r0, [r5] + adds r0, 0x34 + orrs r1, r0 + strh r1, [r2] +_08047C8C: + movs r5, 0x80 + lsls r5, 17 + adds r0, r3, r5 + lsrs r3, r0, 24 + asrs r0, 24 + cmp r0, 0x3 + ble _08047C3E +_08047C9A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8047B0C + + thumb_func_start sub_8047CAC +sub_8047CAC: @ 8047CAC + push {r4,r5,lr} + adds r4, r0, 0 + adds r0, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + movs r1, 0x1E + strh r1, [r5, 0x8] + lsls r0, 16 + asrs r0, 16 + adds r1, r5, 0 + movs r2, 0 + bl sub_8047B0C + lsls r4, 16 + asrs r4, 16 + adds r5, 0xA + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_8047B0C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8047CAC + + thumb_func_start sub_8047CE0 +sub_8047CE0: @ 8047CE0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + movs r0, 0 + str r0, [sp] + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _08047DF4 + mov r0, r10 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08047D78 + ldr r4, _08047D68 @ =gUnknown_8260278 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006F8C + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006FE0 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, _08047D6C @ =gUnknown_202063C + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x1] + movs r3, 0x3F + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1, 0x1] + lsls r2, r7, 4 + adds r2, r7 + lsls r2, 2 + adds r2, r4 + ldrb r0, [r2, 0x1] + ands r3, r0 + strb r3, [r2, 0x1] + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x40 + ldr r4, _08047D70 @ =0x000003ff + adds r0, r4, 0 + ands r1, r0 + ldr r0, _08047D74 @ =0xfffffc00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + b _08047DBE + .align 2, 0 +_08047D68: .4byte gUnknown_8260278 +_08047D6C: .4byte gUnknown_202063C +_08047D70: .4byte 0x000003ff +_08047D74: .4byte 0xfffffc00 +_08047D78: + ldr r4, _08047DE0 @ =gUnknown_82602A8 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006F8C + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006FE0 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08047DE4 @ =gUnknown_202063C + lsls r2, r7, 4 + adds r2, r7 + lsls r2, 2 + adds r2, r0 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r5, _08047DE8 @ =0x000003ff + adds r0, r5, 0 + ands r1, r0 + ldr r0, _08047DEC @ =0xfffffc00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + movs r0, 0x2 + str r0, [sp] +_08047DBE: + ldr r2, _08047DE4 @ =gUnknown_202063C + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r2 + strh r7, [r0, 0x6] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r1, r0, r2 + strh r6, [r1, 0x38] + adds r2, 0x1C + adds r0, r2 + ldr r1, _08047DF0 @ =sub_8048128 + str r1, [r0] + b _08047F1C + .align 2, 0 +_08047DE0: .4byte gUnknown_82602A8 +_08047DE4: .4byte gUnknown_202063C +_08047DE8: .4byte 0x000003ff +_08047DEC: .4byte 0xfffffc00 +_08047DF0: .4byte sub_8048128 +_08047DF4: + mov r0, r10 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08047E98 + mov r0, r10 + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r4, _08047E84 @ =gUnknown_8260278 + adds r0, r4 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006F8C + lsls r0, 24 + lsrs r6, r0, 24 + mov r0, r10 + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006FE0 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, _08047E88 @ =gUnknown_202063C + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x6] + lsls r2, r7, 4 + adds r2, r7 + lsls r2, 2 + adds r3, r2, r4 + strh r6, [r3, 0x38] + ldrh r1, [r3, 0x4] + mov r8, r1 + mov r5, r8 + lsls r1, r5, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r5, _08047E8C @ =0x000003ff + adds r0, r5, 0 + ands r1, r0 + ldr r0, _08047E90 @ =0xfffffc00 + mov r5, r8 + ands r0, r5 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r4, 0x1C + adds r2, r4 + ldr r0, _08047E94 @ =sub_8048128 + str r0, [r2] + movs r0, 0x1 + b _08047F1A + .align 2, 0 +_08047E84: .4byte gUnknown_8260278 +_08047E88: .4byte gUnknown_202063C +_08047E8C: .4byte 0x000003ff +_08047E90: .4byte 0xfffffc00 +_08047E94: .4byte sub_8048128 +_08047E98: + mov r0, r10 + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r4, _08047FE0 @ =gUnknown_82602A8 + adds r0, r4 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006F8C + lsls r0, 24 + lsrs r6, r0, 24 + mov r0, r10 + bl sub_80751D8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 25 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006FE0 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, _08047FE4 @ =gUnknown_202063C + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x6] + lsls r2, r7, 4 + adds r2, r7 + lsls r2, 2 + adds r3, r2, r4 + strh r6, [r3, 0x38] + ldrh r1, [r3, 0x4] + mov r8, r1 + mov r5, r8 + lsls r1, r5, 22 + lsrs r1, 22 + adds r1, 0x20 + ldr r5, _08047FE8 @ =0x000003ff + adds r0, r5, 0 + ands r1, r0 + ldr r0, _08047FEC @ =0xfffffc00 + mov r5, r8 + ands r0, r5 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r4, 0x1C + adds r2, r4 + ldr r0, _08047FF0 @ =sub_8048128 + str r0, [r2] + movs r0, 0x2 +_08047F1A: + str r0, [sp] +_08047F1C: + ldr r0, _08047FF4 @ =gUnknown_2023BD6 + add r0, r10 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r1, _08047FF8 @ =gUnknown_82602F8 + adds r0, r1 + movs r1, 0x8C + movs r2, 0x3C + movs r3, 0 + bl sub_8006FE0 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + ldr r1, _08047FE4 @ =gUnknown_202063C + mov r8, r1 + add r4, r8 + mov r0, r10 + bl sub_80751C4 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 21 + ldr r0, _08047FFC @ =gUnknown_82603C4 + adds r1, r0 + adds r0, r4, 0 + bl sub_8008A58 + adds r2, r4, 0 + adds r2, 0x42 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r2, 0x4 + mov r9, r2 + mov r1, r9 + orrs r0, r1 + strb r0, [r4, 0x5] + movs r0, 0x1 + bl sub_80480A8 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _08048000 @ =0x06010000 + adds r1, r2 + ldr r2, _08048004 @ =0x04000010 + bl CpuSet + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + add r0, r8 + strh r5, [r0, 0x38] + mov r2, r10 + strh r2, [r0, 0x3A] + adds r0, 0x3E + ldrb r1, [r0] + mov r5, r9 + orrs r1, r5 + strb r1, [r0] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + add r0, r8 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + strh r6, [r4, 0x38] + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x3A] + adds r4, 0x3E + ldrb r0, [r4] + orrs r0, r5 + strb r0, [r4] + adds r0, r6, 0 + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08047FE0: .4byte gUnknown_82602A8 +_08047FE4: .4byte gUnknown_202063C +_08047FE8: .4byte 0x000003ff +_08047FEC: .4byte 0xfffffc00 +_08047FF0: .4byte sub_8048128 +_08047FF4: .4byte gUnknown_2023BD6 +_08047FF8: .4byte gUnknown_82602F8 +_08047FFC: .4byte gUnknown_82603C4 +_08048000: .4byte 0x06010000 +_08048004: .4byte 0x04000010 + thumb_func_end sub_8047CE0 + + thumb_func_start sub_8048008 +sub_8048008: @ 8048008 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, _08048094 @ =gUnknown_82602D8 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006F8C + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + adds r0, r4, 0 + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x1 + bl sub_8006FE0 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08048098 @ =gUnknown_202063C + mov r9, r1 + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + add r4, r9 + ldrb r3, [r4, 0x1] + movs r2, 0x3F + adds r1, r2, 0 + ands r1, r3 + strb r1, [r4, 0x1] + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + mov r7, r9 + adds r5, r3, r7 + ldrb r1, [r5, 0x1] + ands r2, r1 + strb r2, [r5, 0x1] + ldrh r1, [r5, 0x4] + mov r8, r1 + mov r7, r8 + lsls r2, r7, 22 + lsrs r2, 22 + adds r2, 0x40 + ldr r7, _0804809C @ =0x000003ff + adds r1, r7, 0 + ands r2, r1 + ldr r1, _080480A0 @ =0xfffffc00 + mov r7, r8 + ands r1, r7 + orrs r1, r2 + strh r1, [r5, 0x4] + strh r0, [r4, 0x6] + strh r6, [r5, 0x38] + movs r0, 0x1C + add r9, r0 + add r3, r9 + ldr r0, _080480A4 @ =sub_8048128 + str r0, [r3] + adds r0, r6, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08048094: .4byte gUnknown_82602D8 +_08048098: .4byte gUnknown_202063C +_0804809C: .4byte 0x000003ff +_080480A0: .4byte 0xfffffc00 +_080480A4: .4byte sub_8048128 + thumb_func_end sub_8048008 + + thumb_func_start sub_80480A8 +sub_80480A8: @ 80480A8 + lsls r0, 24 + lsrs r0, 19 + ldr r1, _080480B4 @ =gUnknown_8D11BC4 + adds r0, r1 + bx lr + .align 2, 0 +_080480B4: .4byte gUnknown_8D11BC4 + thumb_func_end sub_80480A8 + + thumb_func_start sub_80480B8 +sub_80480B8: @ 80480B8 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0x3A + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080480E8 + cmp r0, 0x1 + bgt _080480FC + cmp r0, 0 + bne _080480FC + ldr r2, _080480E4 @ =gUnknown_202063C + lsls r3, r5, 4 + adds r1, r3, r5 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x20] + adds r0, 0x10 + b _0804810A + .align 2, 0 +_080480E4: .4byte gUnknown_202063C +_080480E8: + ldr r2, _080480F8 @ =gUnknown_202063C + lsls r3, r5, 4 + adds r1, r3, r5 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x20] + adds r0, 0x10 + b _0804810A + .align 2, 0 +_080480F8: .4byte gUnknown_202063C +_080480FC: + ldr r2, _08048124 @ =gUnknown_202063C + lsls r3, r5, 4 + adds r1, r3, r5 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x20] + adds r0, 0x8 +_0804810A: + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x22] + strh r0, [r4, 0x22] + adds r0, r3, r5 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x24] + strh r1, [r4, 0x24] + ldrh r0, [r0, 0x26] + strh r0, [r4, 0x26] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08048124: .4byte gUnknown_202063C + thumb_func_end sub_80480B8 + + thumb_func_start sub_8048128 +sub_8048128: @ 8048128 + ldrh r1, [r0, 0x38] + lsls r1, 24 + lsrs r1, 24 + ldr r3, _0804814C @ =gUnknown_202063C + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x20] + adds r1, 0x40 + strh r1, [r0, 0x20] + ldrh r1, [r2, 0x22] + strh r1, [r0, 0x22] + ldrh r1, [r2, 0x24] + strh r1, [r0, 0x24] + ldrh r1, [r2, 0x26] + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_0804814C: .4byte gUnknown_202063C + thumb_func_end sub_8048128 + + thumb_func_start sub_8048150 +sub_8048150: @ 8048150 + push {r4-r7,lr} + ldr r7, [sp, 0x14] + lsls r0, 24 + lsrs r0, 24 + ldr r6, _08048180 @ =gUnknown_2024018 + ldr r4, [r6] + ldr r5, [r4, 0xC] + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 2 + adds r5, r4, r5 + strb r1, [r5] + ldr r0, [r6] + ldr r0, [r0, 0xC] + adds r4, r0 + str r2, [r4, 0x4] + str r3, [r4, 0x8] + str r7, [r4, 0xC] + ldr r0, _08048184 @ =0xffff8000 + str r0, [r4, 0x10] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08048180: .4byte gUnknown_2024018 +_08048184: .4byte 0xffff8000 + thumb_func_end sub_8048150 + + thumb_func_start sub_8048188 +sub_8048188: @ 8048188 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _080481D0 @ =gUnknown_202063C + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + adds r1, r2, 0 + adds r1, 0x3E + ldrb r0, [r1] + movs r3, 0x4 + orrs r0, r3 + strb r0, [r1] + movs r0, 0x38 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + ldrh r1, [r2, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r3 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080481D0: .4byte gUnknown_202063C + thumb_func_end sub_8048188 + + thumb_func_start sub_80481D4 +sub_80481D4: @ 80481D4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08048224 @ =gUnknown_202063C + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + adds r4, r2, 0 + adds r4, 0x3E + ldrb r1, [r4] + movs r3, 0x5 + negs r3, r3 + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + movs r0, 0x38 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r4, [r0] + adds r1, r3, 0 + ands r1, r4 + strb r1, [r0] + ldrh r1, [r2, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08048224: .4byte gUnknown_202063C + thumb_func_end sub_80481D4 + + thumb_func_start sub_8048228 +sub_8048228: @ 8048228 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08048244 @ =gUnknown_202063C + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r3, r4 + strh r1, [r3, 0x20] + strh r2, [r3, 0x22] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08048244: .4byte gUnknown_202063C + thumb_func_end sub_8048228 + + thumb_func_start sub_8048248 +sub_8048248: @ 8048248 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08048284 @ =gUnknown_202063C + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r4, r5 + ldrh r1, [r4, 0x6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl sub_8007280 + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl sub_8007280 + adds r0, r4, 0 + bl sub_8007280 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08048284: .4byte gUnknown_202063C + thumb_func_end sub_8048248 + + thumb_func_start nullsub_21 +nullsub_21: @ 8048288 + bx lr + thumb_func_end nullsub_21 + + thumb_func_start sub_804828C +sub_804828C: @ 804828C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + ldr r1, _08048310 @ =gUnknown_2023BCC + mov r8, r1 + ldrb r2, [r1] + cmp r6, r2 + bge _08048304 + ldr r1, _08048314 @ =gUnknown_202063C + mov r12, r1 + movs r1, 0x3 + ands r0, r1 + lsls r5, r0, 2 + movs r7, 0xD + negs r7, r7 + ldr r2, _08048318 @ =gUnknown_3004FF0 + mov r9, r2 +_080482B6: + mov r1, r9 + adds r0, r6, r1 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r12 + ldrb r4, [r1, 0x6] + ldrh r3, [r1, 0x38] + lsls r3, 24 + lsrs r3, 24 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + add r1, r12 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + lsls r1, r3, 4 + adds r1, r3 + lsls r1, 2 + add r1, r12 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] + adds r6, 0x1 + mov r2, r8 + ldrb r2, [r2] + cmp r6, r2 + blt _080482B6 +_08048304: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08048310: .4byte gUnknown_2023BCC +_08048314: .4byte gUnknown_202063C +_08048318: .4byte gUnknown_3004FF0 + thumb_func_end sub_804828C + + thumb_func_start sub_804831C +sub_804831C: @ 804831C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r4, 0 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _08048348 + adds r0, r6, 0 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + beq _08048342 + movs r5, 0x2C + movs r4, 0x1E + b _08048380 +_08048342: + movs r5, 0x9E + movs r4, 0x58 + b _08048380 +_08048348: + adds r0, r6, 0 + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08048376 + cmp r0, 0x1 + bgt _08048360 + cmp r0, 0 + beq _0804836A + b _08048380 +_08048360: + cmp r0, 0x2 + beq _08048370 + cmp r0, 0x3 + beq _0804837C + b _08048380 +_0804836A: + movs r5, 0x9F + movs r4, 0x4B + b _08048380 +_08048370: + movs r5, 0xAB + movs r4, 0x64 + b _08048380 +_08048376: + movs r5, 0x2C + movs r4, 0x13 + b _08048380 +_0804837C: + movs r5, 0x20 + movs r4, 0x2C +_08048380: + ldr r0, _08048394 @ =gUnknown_3004FF0 + adds r0, r6, r0 + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_8048228 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08048394: .4byte gUnknown_3004FF0 + thumb_func_end sub_804831C + + thumb_func_start sub_8048398 +sub_8048398: @ 8048398 + push {r4-r6,lr} + sub sp, 0x14 + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _08048410 @ =gUnknown_826051C + mov r0, sp + movs r2, 0x10 + bl memcpy + mov r0, sp + adds r0, 0x2 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x3 + bl sub_8008E78 + adds r1, r0, 0 + subs r1, 0x2 + mov r0, sp + subs r1, r0 + movs r0, 0x3 + subs r0, r1 + lsls r1, r0, 2 + adds r1, r0 + add r3, sp, 0x10 + mov r0, sp + movs r2, 0x3 + bl sub_804A648 + adds r6, r0, 0 + ldr r0, _08048414 @ =gUnknown_202063C + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r4, r0, 17 + ldrh r0, [r1, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08048420 + bl sub_8075290 + lsls r0, 24 + ldr r2, _08048418 @ =0x06010420 + adds r1, r4, r2 + cmp r0, 0 + bne _08048424 + ldr r0, _0804841C @ =0x06010820 + adds r1, r4, r0 + b _08048424 + .align 2, 0 +_08048410: .4byte gUnknown_826051C +_08048414: .4byte gUnknown_202063C +_08048418: .4byte 0x06010420 +_0804841C: .4byte 0x06010820 +_08048420: + ldr r2, _0804843C @ =0x06010400 + adds r1, r4, r2 +_08048424: + adds r0, r1, 0 + adds r1, r6, 0 + movs r2, 0x3 + bl sub_804A6E8 + ldr r0, [sp, 0x10] + bl sub_804A6D8 + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804843C: .4byte 0x06010400 + thumb_func_end sub_8048398 + + thumb_func_start sub_8048440 +sub_8048440: @ 8048440 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + ldr r1, _080484B4 @ =gUnknown_202063C + lsls r0, 4 + add r0, r9 + lsls r0, 2 + adds r4, r0, r1 + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08048514 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _08048514 + mov r0, r8 + cmp r0, 0 + beq _080484BC + mov r2, r10 + lsls r1, r2, 16 + asrs r1, 16 + add r0, sp, 0x10 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8008E78 + add r3, sp, 0x2C + add r0, sp, 0x10 + movs r1, 0 + movs r2, 0x5 + bl sub_804A648 + adds r5, r0, 0 + ldrh r0, [r4, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldr r1, _080484B8 @ =0x06010a40 + adds r0, r1 + adds r1, r5, 0 + b _080484FE + .align 2, 0 +_080484B4: .4byte gUnknown_202063C +_080484B8: .4byte 0x06010a40 +_080484BC: + mov r2, r10 + lsls r1, r2, 16 + asrs r1, 16 + add r0, sp, 0x10 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8008E78 + movs r1, 0xBA + strb r1, [r0] + movs r1, 0xFF + strb r1, [r0, 0x1] + add r3, sp, 0x2C + add r0, sp, 0x10 + movs r1, 0x4 + movs r2, 0x5 + bl sub_804A648 + adds r5, r0, 0 + ldrh r4, [r4, 0x4] + lsls r4, 22 + lsrs r4, 17 + ldr r1, _0804850C @ =0x060102e0 + adds r0, r4, r1 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_804A6E8 + ldr r2, _08048510 @ =0x06010a00 + adds r4, r2 + adds r1, r5, 0 + adds r1, 0x20 + adds r0, r4, 0 +_080484FE: + movs r2, 0x2 + bl sub_804A6E8 + ldr r0, [sp, 0x2C] + bl sub_804A6D8 + b _080485F8 + .align 2, 0 +_0804850C: .4byte 0x060102e0 +_08048510: .4byte 0x06010a00 +_08048514: + add r5, sp, 0x18 + ldr r1, _0804855C @ =gUnknown_826052C + adds r0, r5, 0 + movs r2, 0x14 + bl memcpy + ldr r1, _08048560 @ =gUnknown_202063C + mov r0, r9 + lsls r4, r0, 4 + adds r0, r4, r0 + lsls r0, 2 + adds r7, r0, r1 + ldrh r0, [r7, 0x3A] + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0804854C + adds r0, r6, 0 + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08048564 +_0804854C: + mov r2, r10 + lsls r1, r2, 16 + asrs r1, 16 + mov r0, r9 + mov r2, r8 + bl sub_8048618 + b _080485F8 + .align 2, 0 +_0804855C: .4byte gUnknown_826052C +_08048560: .4byte gUnknown_202063C +_08048564: + ldrh r0, [r7, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08048580 + movs r6, 0x59 + mov r0, r8 + cmp r0, 0 + bne _0804858A + movs r6, 0x1D + b _0804858A +_08048580: + movs r6, 0x30 + mov r1, r8 + cmp r1, 0 + bne _0804858A + movs r6, 0x14 +_0804858A: + mov r0, sp + adds r0, 0x1E + mov r2, r10 + lsls r1, r2, 16 + asrs r1, 16 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8008E78 + ldr r0, _08048608 @ =gUnknown_202401C + ldr r0, [r0] + movs r1, 0xBA + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + adds r2, r5, 0 + movs r3, 0 + bl sub_8006124 + movs r5, 0 + ldr r1, _0804860C @ =gUnknown_202063C + mov r2, r9 + adds r0, r4, r2 + lsls r0, 2 + adds r4, r0, r1 +_080485C6: + ldr r0, _08048608 @ =gUnknown_202401C + ldr r0, [r0] + movs r1, 0xBA + lsls r1, 1 + adds r0, r1 + lsls r1, r5, 6 + adds r1, 0x20 + ldr r0, [r0] + adds r0, r1 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r1, r6 + adds r1, r5 + lsls r1, 5 + ldr r2, _08048610 @ =0x06010000 + adds r1, r2 + ldr r2, _08048614 @ =0x04000008 + bl CpuSet + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _080485C6 +_080485F8: + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08048608: .4byte gUnknown_202401C +_0804860C: .4byte gUnknown_202063C +_08048610: .4byte 0x06010000 +_08048614: .4byte 0x04000008 + thumb_func_end sub_8048440 + + thumb_func_start sub_8048618 +sub_8048618: @ 8048618 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + ldr r1, _080486F8 @ =gUnknown_8260542 + add r0, sp, 0x10 + movs r2, 0x14 + bl memcpy + ldr r5, _080486FC @ =gUnknown_202063C + mov r1, r9 + lsls r0, r1, 4 + add r0, r9 + lsls r0, 2 + adds r2, r0, r5 + ldrh r0, [r2, 0x3A] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _08048700 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0] + mov r3, r10 + lsls r0, r3, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0804866A + b _080487DC +_0804866A: + movs r6, 0x4 + mov r1, r8 + negs r0, r1 + orrs r0, r1 + asrs r0, 31 + ands r6, r0 + ldrh r0, [r2, 0x38] + lsls r0, 24 + lsrs r7, r0, 24 + mov r0, sp + adds r0, 0x16 + lsls r1, r4, 16 + asrs r1, 16 + movs r2, 0x1 + movs r3, 0x3 + bl sub_8008E78 + mov r2, r8 + cmp r2, 0 + bne _08048698 + ldr r1, _08048704 @ =gUnknown_8260540 + bl sub_8008D84 +_08048698: + ldr r0, _08048708 @ =gUnknown_202401C + ldr r0, [r0] + movs r3, 0xBA + lsls r3, 1 + adds r0, r3 + ldr r0, [r0] + movs r1, 0 + str r1, [sp] + str r1, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + add r2, sp, 0x10 + movs r3, 0 + bl sub_8006124 + adds r4, r6, 0 + adds r0, r4, 0x3 + cmp r4, r0 + bge _08048748 + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r5, r0, r5 +_080486C6: + cmp r4, 0x2 + bhi _08048714 + ldr r0, _08048708 @ =gUnknown_202401C + ldr r0, [r0] + movs r1, 0xBA + lsls r1, 1 + adds r0, r1 + subs r1, r4, r6 + lsls r1, 6 + adds r1, 0x20 + ldr r0, [r0] + adds r0, r1 + ldrh r1, [r5, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r4, 0x1 + adds r1, r4 + lsls r1, 5 + ldr r2, _0804870C @ =0x06010000 + adds r1, r2 + ldr r2, _08048710 @ =0x04000008 + bl CpuSet + b _0804873E + .align 2, 0 +_080486F8: .4byte gUnknown_8260542 +_080486FC: .4byte gUnknown_202063C +_08048700: .4byte gUnknown_2024018 +_08048704: .4byte gUnknown_8260540 +_08048708: .4byte gUnknown_202401C +_0804870C: .4byte 0x06010000 +_08048710: .4byte 0x04000008 +_08048714: + ldr r0, _08048790 @ =gUnknown_202401C + ldr r0, [r0] + movs r3, 0xBA + lsls r3, 1 + adds r0, r3 + subs r1, r4, r6 + lsls r1, 6 + adds r1, 0x20 + ldr r0, [r0] + adds r0, r1 + ldrh r1, [r5, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r1, r4, r1 + lsls r1, 5 + ldr r2, _08048794 @ =0x06010020 + adds r1, r2 + ldr r2, _08048798 @ =0x04000008 + bl CpuSet + adds r4, 0x1 +_0804873E: + lsls r0, r4, 24 + lsrs r4, r0, 24 + adds r0, r6, 0x3 + cmp r4, r0 + blt _080486C6 +_08048748: + mov r3, r8 + cmp r3, 0 + bne _080487A8 + ldr r0, _08048790 @ =gUnknown_202401C + ldr r0, [r0] + movs r1, 0xBA + lsls r1, 1 + adds r0, r1 + ldr r0, [r0] + adds r0, 0xE0 + ldr r1, _0804879C @ =gUnknown_202063C + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + adds r4, r1 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + adds r1, 0x80 + ldr r5, _080487A0 @ =0x06010000 + adds r1, r5 + ldr r2, _08048798 @ =0x04000008 + bl CpuSet + mov r2, r8 + str r2, [sp, 0x24] + add r0, sp, 0x24 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + adds r1, r5 + ldr r2, _080487A4 @ =0x05000008 + bl CpuSet + b _080487DC + .align 2, 0 +_08048790: .4byte gUnknown_202401C +_08048794: .4byte 0x06010020 +_08048798: .4byte 0x04000008 +_0804879C: .4byte gUnknown_202063C +_080487A0: .4byte 0x06010000 +_080487A4: .4byte 0x05000008 +_080487A8: + mov r0, r10 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _080487DC + movs r0, 0x74 + bl sub_80480A8 + ldr r2, _080487EC @ =gUnknown_202063C + mov r3, r9 + lsls r1, r3, 4 + add r1, r9 + lsls r1, 2 + adds r1, r2 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + movs r2, 0xD0 + lsls r2, 3 + adds r1, r2 + ldr r2, _080487F0 @ =0x06010000 + adds r1, r2 + ldr r2, _080487F4 @ =0x04000008 + bl CpuSet +_080487DC: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080487EC: .4byte gUnknown_202063C +_080487F0: .4byte 0x06010000 +_080487F4: .4byte 0x04000008 + thumb_func_end sub_8048618 + + thumb_func_start sub_80487F8 +sub_80487F8: @ 80487F8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + adds r4, r1, 0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x24] + ldr r1, _080488AC @ =gUnknown_826052C + add r0, sp, 0x10 + movs r2, 0x14 + bl memcpy + ldr r1, _080488B0 @ =gUnknown_202063C + ldr r2, [sp, 0x24] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl sub_80751D8 + ldr r1, _080488B4 @ =gUnknown_202401C + ldr r2, [r1] + movs r3, 0xBA + lsls r3, 1 + adds r2, r3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 7 + movs r0, 0xA4 + lsls r0, 3 + adds r1, r0 + ldr r0, [r2] + adds r6, r0, r1 + movs r1, 0x5 + mov r8, r1 + adds r0, r4, 0 + bl sub_8042E9C + lsls r0, 24 + mov r4, sp + adds r4, 0x16 + ldr r1, _080488B8 @ =gUnknown_8463E60 + lsrs r0, 22 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl sub_8008D84 + movs r0, 0 + str r0, [sp] + str r0, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + adds r0, r6, 0 + movs r1, 0 + add r2, sp, 0x10 + movs r3, 0 + bl sub_8006124 + movs r7, 0x6 + movs r5, 0 + mov r2, sp + adds r2, 0x19 + str r2, [sp, 0x28] +_08048888: + mov r0, sp + adds r0, r7 + adds r0, 0x10 + ldrb r1, [r0] + adds r0, r1, 0 + subs r0, 0x37 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bls _080488A8 + adds r0, r1, 0 + adds r0, 0x79 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bhi _080488BC +_080488A8: + movs r0, 0x2C + b _080488DA + .align 2, 0 +_080488AC: .4byte gUnknown_826052C +_080488B0: .4byte gUnknown_202063C +_080488B4: .4byte gUnknown_202401C +_080488B8: .4byte gUnknown_8463E60 +_080488BC: + adds r0, r1, 0 + subs r0, 0x4B + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _080488D4 + adds r0, r1, 0 + adds r0, 0x65 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bhi _080488D8 +_080488D4: + movs r0, 0x2D + b _080488DA +_080488D8: + movs r0, 0x2B +_080488DA: + bl sub_80480A8 + lsls r1, r5, 6 + adds r1, r6, r1 + ldr r2, _080489F8 @ =0x04000008 + bl CpuSet + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, 0x1 + cmp r5, r8 + bcc _08048888 + movs r7, 0x1 + ldr r3, [sp, 0x24] + lsls r3, 4 + str r3, [sp, 0x2C] + movs r0, 0x1 + add r0, r8 + mov r9, r0 + cmp r7, r9 + bge _08048966 + ldr r1, _080489FC @ =gUnknown_202063C + ldr r2, _080489F8 @ =0x04000008 + mov r10, r2 + ldr r2, [sp, 0x24] + adds r0, r3, r2 + lsls r0, 2 + adds r0, r1 + mov r8, r0 +_08048916: + mov r3, r8 + ldrh r0, [r3, 0x4] + lsls r0, 22 + lsrs r0, 22 + adds r5, r7, 0 + cmp r7, 0 + bge _08048926 + adds r5, r7, 0x7 +_08048926: + asrs r5, 3 + lsls r4, r5, 3 + subs r4, r7, r4 + adds r0, r4 + lsls r5, 6 + adds r0, r5 + lsls r0, 5 + ldr r2, _08048A00 @ =0x06010000 + adds r1, r0, r2 + adds r0, r6, 0 + mov r2, r10 + bl CpuSet + adds r6, 0x20 + mov r3, r8 + ldrh r0, [r3, 0x4] + lsls r0, 22 + lsrs r0, 22 + adds r4, 0x8 + adds r0, r4 + adds r0, r5 + lsls r0, 5 + ldr r2, _08048A00 @ =0x06010000 + adds r1, r0, r2 + adds r0, r6, 0 + mov r2, r10 + bl CpuSet + adds r6, 0x20 + adds r7, 0x1 + cmp r7, r9 + blt _08048916 +_08048966: + ldr r6, _080489FC @ =gUnknown_202063C + ldr r3, [sp, 0x2C] + ldr r1, [sp, 0x24] + adds r0, r3, r1 + lsls r0, 2 + adds r0, r6 + ldrh r4, [r0, 0x38] + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08048A04 @ =gUnknown_2023FE8 + ldr r0, [r5] + adds r0, 0x7C + ldrb r1, [r0] + mov r0, sp + adds r0, 0x16 + movs r2, 0x1 + movs r3, 0x2 + bl sub_8008E78 + ldr r0, [r5] + adds r0, 0x7B + ldrb r1, [r0] + ldr r0, [sp, 0x28] + movs r2, 0x1 + movs r3, 0x2 + bl sub_8008E78 + add r0, sp, 0x10 + movs r1, 0 + strb r1, [r0, 0x5] + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2, 0x8] + ldr r5, _08048A08 @ =gUnknown_202401C + ldr r0, [r5] + movs r2, 0xBA + lsls r2, 1 + adds r0, r2 + ldr r0, [r0] + str r1, [sp] + str r1, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + add r2, sp, 0x10 + movs r3, 0 + bl sub_8006124 + movs r7, 0 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r6, r0, r6 + movs r4, 0x20 +_080489D0: + cmp r7, 0x1 + bgt _08048A0C + ldr r0, [r5] + movs r3, 0xBA + lsls r3, 1 + adds r0, r3 + ldr r0, [r0] + adds r0, r4 + ldrh r1, [r6, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r2, r7, 0x2 + adds r1, r2 + lsls r1, 5 + ldr r2, _08048A00 @ =0x06010000 + adds r1, r2 + ldr r2, _080489F8 @ =0x04000008 + bl CpuSet + b _08048A2C + .align 2, 0 +_080489F8: .4byte 0x04000008 +_080489FC: .4byte gUnknown_202063C +_08048A00: .4byte 0x06010000 +_08048A04: .4byte gUnknown_2023FE8 +_08048A08: .4byte gUnknown_202401C +_08048A0C: + ldr r0, [r5] + movs r3, 0xBA + lsls r3, 1 + adds r0, r3 + ldr r0, [r0] + adds r0, r4 + ldrh r1, [r6, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r1, r7, r1 + lsls r1, 5 + ldr r2, _08048A44 @ =0x060100c0 + adds r1, r2 + ldr r2, _08048A48 @ =0x04000008 + bl CpuSet +_08048A2C: + adds r4, 0x40 + adds r7, 0x1 + cmp r7, 0x4 + ble _080489D0 + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08048A44: .4byte 0x060100c0 +_08048A48: .4byte 0x04000008 + thumb_func_end sub_80487F8 + + thumb_func_start sub_8048A4C +sub_8048A4C: @ 8048A4C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0 + mov r9, r0 + ldr r0, _08048B78 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r9, r0 + blt _08048A66 + b _08048CF2 +_08048A66: + ldr r1, _08048B7C @ =gUnknown_202063C + mov r10, r1 + ldr r2, _08048B80 @ =gUnknown_2023BCE + mov r8, r2 +_08048A6E: + ldr r0, _08048B84 @ =gUnknown_3004FF0 + mov r1, r9 + adds r6, r1, r0 + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r1, r10 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, _08048B88 @ =nullsub_8 + cmp r1, r0 + beq _08048A8C + b _08048CE0 +_08048A8C: + mov r2, r9 + lsls r0, r2, 24 + lsrs r7, r0, 24 + adds r0, r7, 0 + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08048AA2 + b _08048CE0 +_08048AA2: + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _08048ABA + adds r0, r7, 0 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08048ABA + b _08048CE0 +_08048ABA: + ldr r5, _08048B8C @ =gUnknown_2024018 + ldr r0, [r5] + ldr r3, [r0] + mov r0, r9 + lsls r4, r0, 2 + adds r3, r4, r3 + ldr r0, [r3] + lsls r0, 27 + lsrs r0, 31 + movs r2, 0x1 + eors r2, r0 + lsls r2, 4 + mov r12, r2 + ldrb r0, [r3] + movs r2, 0x11 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + mov r1, r12 + orrs r0, r1 + strb r0, [r3] + ldr r0, [r5] + ldr r0, [r0] + adds r4, r0 + ldr r0, [r4] + lsls r0, 27 + lsrs r4, r0, 31 + adds r0, r7, 0 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08048BE8 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _08048B08 + b _08048CE0 +_08048B08: + ldr r0, _08048B90 @ =gUnknown_2022B4C + ldr r2, [r0] + movs r0, 0x80 + ands r2, r0 + cmp r2, 0 + beq _08048B16 + b _08048CE0 +_08048B16: + cmp r4, 0x1 + bne _08048BA0 + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r0, [r0, 0x38] + lsls r0, 24 + lsrs r1, r0, 24 + str r2, [sp] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r1, [r0, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _08048B94 @ =0x06010000 + adds r1, r2 + mov r0, sp + ldr r2, _08048B98 @ =0x05000040 + bl CpuSet + ldrb r4, [r6] + mov r1, r8 + ldrh r0, [r1] + movs r2, 0x64 + muls r0, r2 + ldr r1, _08048B9C @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x39 + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + bl sub_8048618 + ldrb r4, [r6] + mov r2, r8 + ldrh r0, [r2] + movs r1, 0x64 + muls r0, r1 + ldr r2, _08048B9C @ =gUnknown_2024284 + b _08048C6E + .align 2, 0 +_08048B78: .4byte gUnknown_2023BCC +_08048B7C: .4byte gUnknown_202063C +_08048B80: .4byte gUnknown_2023BCE +_08048B84: .4byte gUnknown_3004FF0 +_08048B88: .4byte nullsub_8 +_08048B8C: .4byte gUnknown_2024018 +_08048B90: .4byte gUnknown_2022B4C +_08048B94: .4byte 0x06010000 +_08048B98: .4byte 0x05000040 +_08048B9C: .4byte gUnknown_2024284 +_08048BA0: + ldrb r0, [r6] + bl sub_8049934 + ldrb r0, [r6] + mov r2, r8 + ldrh r1, [r2] + movs r2, 0x64 + muls r1, r2 + ldr r2, _08048BDC @ =gUnknown_2024284 + adds r1, r2 + movs r2, 0x5 + bl sub_8049D98 + movs r0, 0x75 + bl sub_80480A8 + ldrb r2, [r6] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r10 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _08048BE0 @ =0x06010680 + adds r1, r2 + ldr r2, _08048BE4 @ =0x04000008 + bl CpuSet + b _08048CCA + .align 2, 0 +_08048BDC: .4byte gUnknown_2024284 +_08048BE0: .4byte 0x06010680 +_08048BE4: .4byte 0x04000008 +_08048BE8: + cmp r4, 0x1 + bne _08048C94 + ldr r0, _08048C0C @ =gUnknown_2022B4C + ldr r2, [r0] + movs r0, 0x80 + ands r2, r0 + cmp r2, 0 + beq _08048C14 + ldrb r0, [r6] + mov r2, r8 + ldrh r1, [r2] + movs r2, 0x64 + muls r1, r2 + ldr r2, _08048C10 @ =gUnknown_202402C + adds r1, r2 + bl sub_80487F8 + b _08048CCA + .align 2, 0 +_08048C0C: .4byte gUnknown_2022B4C +_08048C10: .4byte gUnknown_202402C +_08048C14: + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r0, [r0, 0x38] + lsls r0, 24 + lsrs r1, r0, 24 + str r2, [sp] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r1, [r0, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r0, _08048C88 @ =0x06010000 + adds r1, r0 + mov r0, sp + ldr r2, _08048C8C @ =0x05000040 + bl CpuSet + ldrb r4, [r6] + mov r1, r8 + ldrh r0, [r1] + movs r2, 0x64 + muls r0, r2 + ldr r1, _08048C90 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x39 + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + bl sub_8048618 + ldrb r4, [r6] + mov r2, r8 + ldrh r0, [r2] + movs r1, 0x64 + muls r0, r1 + ldr r2, _08048C90 @ =gUnknown_202402C +_08048C6E: + adds r0, r2 + movs r1, 0x3A + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + movs r2, 0x1 + bl sub_8048618 + b _08048CCA + .align 2, 0 +_08048C88: .4byte 0x06010000 +_08048C8C: .4byte 0x05000040 +_08048C90: .4byte gUnknown_202402C +_08048C94: + ldrb r0, [r6] + bl sub_8049934 + ldrb r0, [r6] + mov r2, r8 + ldrh r1, [r2] + movs r5, 0x64 + muls r1, r5 + ldr r4, _08048D04 @ =gUnknown_202402C + adds r1, r4 + movs r2, 0x5 + bl sub_8049D98 + ldr r0, _08048D08 @ =gUnknown_2022B4C + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08048CCA + ldrb r0, [r6] + mov r2, r8 + ldrh r1, [r2] + muls r1, r5 + adds r1, r4 + movs r2, 0x4 + bl sub_8049D98 +_08048CCA: + ldr r0, _08048D0C @ =gUnknown_3004FF0 + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrh r1, [r0, 0x3C] + movs r2, 0x1 + eors r1, r2 + strh r1, [r0, 0x3C] +_08048CE0: + movs r0, 0x2 + add r8, r0 + movs r1, 0x1 + add r9, r1 + ldr r0, _08048D10 @ =gUnknown_2023BCC + ldrb r0, [r0] + cmp r9, r0 + bge _08048CF2 + b _08048A6E +_08048CF2: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08048D04: .4byte gUnknown_202402C +_08048D08: .4byte gUnknown_2022B4C +_08048D0C: .4byte gUnknown_3004FF0 +_08048D10: .4byte gUnknown_2023BCC + thumb_func_end sub_8048A4C + + thumb_func_start sub_8048D14 +sub_8048D14: @ 8048D14 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + str r1, [sp, 0xC] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + lsls r2, 24 + lsrs r2, 24 + adds r4, r2, 0 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x10] + cmp r4, 0 + beq _08048D44 + bl sub_80751D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + beq _08048D88 +_08048D44: + ldr r0, [sp, 0x8] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _08048D64 + movs r7, 0 + movs r1, 0x88 + movs r2, 0x60 + movs r0, 0x64 + mov r8, r0 + ldr r5, _08048D60 @ =0x0000fffb + b _08048D94 + .align 2, 0 +_08048D60: .4byte 0x0000fffb +_08048D64: + movs r7, 0x1 + cmp r4, 0 + beq _08048D74 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _08048D7A +_08048D74: + movs r1, 0x68 + movs r2, 0x28 + b _08048D7E +_08048D7A: + movs r1, 0x68 + movs r2, 0x10 +_08048D7E: + ldr r3, _08048D84 @ =0x0000ff9c + mov r8, r3 + b _08048D92 + .align 2, 0 +_08048D84: .4byte 0x0000ff9c +_08048D88: + movs r7, 0x1 + movs r1, 0x68 + movs r2, 0x28 + ldr r5, _08048E40 @ =0x0000ff9c + mov r8, r5 +_08048D92: + movs r5, 0x5 +_08048D94: + movs r6, 0 + str r6, [sp, 0x14] + lsls r4, r7, 3 + ldr r0, _08048E44 @ =gUnknown_826046C + mov r10, r0 + lsls r3, r7, 1 + mov r9, r3 + lsls r1, 16 + str r1, [sp, 0x20] + lsls r2, 16 + str r2, [sp, 0x24] + ldr r2, _08048E48 @ =0x0000ffff + ldr r1, [sp, 0xC] + movs r6, 0x5 +_08048DB0: + ldrh r0, [r1] + cmp r0, r2 + beq _08048DC4 + ldr r3, [sp, 0x14] + lsls r0, r3, 24 + movs r3, 0x80 + lsls r3, 17 + adds r0, r3 + lsrs r0, 24 + str r0, [sp, 0x14] +_08048DC4: + adds r1, 0x8 + subs r6, 0x1 + cmp r6, 0 + bge _08048DB0 + mov r6, r10 + adds r0, r4, r6 + bl sub_800F034 + ldr r0, _08048E4C @ =gUnknown_826049C + adds r0, r4, r0 + bl sub_80086DC + ldr r0, _08048E50 @ =gUnknown_826047C + adds r0, r4, r0 + bl sub_8008928 + ldr r0, _08048E54 @ =gUnknown_826048C + adds r0, r4, r0 + bl sub_8008928 + mov r1, r9 + adds r0, r1, r7 + lsls r0, 3 + ldr r1, _08048E58 @ =gUnknown_82604BC + adds r0, r1 + ldr r2, [sp, 0x20] + asrs r1, r2, 16 + ldr r3, [sp, 0x24] + asrs r2, r3, 16 + movs r3, 0xA + bl sub_8006F8C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + lsls r0, 4 + ldr r6, [sp, 0x18] + adds r0, r6 + lsls r0, 2 + ldr r1, _08048E5C @ =gUnknown_202063C + adds r4, r0, r1 + ldr r1, _08048E60 @ =gUnknown_82603FC + adds r0, r4, 0 + bl sub_8008A58 + mov r0, r8 + strh r0, [r4, 0x24] + strh r5, [r4, 0x2E] + cmp r7, 0 + beq _08048E64 + ldrh r0, [r4, 0x20] + subs r0, 0x60 + strh r0, [r4, 0x20] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r4, 0x3] + b _08048E6A + .align 2, 0 +_08048E40: .4byte 0x0000ff9c +_08048E44: .4byte gUnknown_826046C +_08048E48: .4byte 0x0000ffff +_08048E4C: .4byte gUnknown_826049C +_08048E50: .4byte gUnknown_826047C +_08048E54: .4byte gUnknown_826048C +_08048E58: .4byte gUnknown_82604BC +_08048E5C: .4byte gUnknown_202063C +_08048E60: .4byte gUnknown_82603FC +_08048E64: + ldrh r0, [r4, 0x20] + adds r0, 0x60 + strh r0, [r4, 0x20] +_08048E6A: + movs r6, 0 + ldr r1, _08048F14 @ =gUnknown_202063C + mov r10, r1 + mov r4, sp + mov r2, r9 + adds r0, r2, r7 + lsls r0, 3 + str r0, [sp, 0x1C] + movs r3, 0xA + mov r9, r3 + mov r8, r6 +_08048E80: + ldr r0, _08048F18 @ =gUnknown_82604EC + ldr r5, [sp, 0x24] + ldr r1, _08048F1C @ =0xfffc0000 + adds r2, r5, r1 + ldr r3, [sp, 0x1C] + adds r0, r3, r0 + ldr r5, [sp, 0x20] + asrs r1, r5, 16 + asrs r2, 16 + movs r3, 0x9 + bl sub_8006FE0 + strb r0, [r4] + ldr r0, [sp, 0x10] + cmp r0, 0 + bne _08048EB0 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r2, _08048F20 @ =gUnknown_2020658 + adds r1, r2 + ldr r0, _08048F24 @ =sub_80496A0 + str r0, [r1] +_08048EB0: + ldr r5, _08048F14 @ =gUnknown_202063C + cmp r7, 0 + bne _08048ECE + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + strh r7, [r0, 0x24] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + strh r7, [r0, 0x26] +_08048ECE: + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0 + mov r3, sp + ldrh r3, [r3, 0x18] + strh r3, [r0, 0x2E] + cmp r7, 0 + bne _08048F28 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r0, [r1, 0x20] + adds r0, 0x18 + add r0, r8 + strh r0, [r1, 0x20] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r9 + strh r1, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x78 + b _08048F66 + .align 2, 0 +_08048F14: .4byte gUnknown_202063C +_08048F18: .4byte gUnknown_82604EC +_08048F1C: .4byte 0xfffc0000 +_08048F20: .4byte gUnknown_2020658 +_08048F24: .4byte sub_80496A0 +_08048F28: + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + ldrh r3, [r2, 0x20] + subs r3, 0x18 + movs r1, 0x5 + subs r1, r6 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + subs r3, r0 + strh r3, [r2, 0x20] + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r5 + movs r1, 0x6 + subs r1, r6 + lsls r0, r1, 3 + subs r0, r1 + adds r0, 0xA + strh r0, [r2, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08048FD4 @ =0x0000ff88 +_08048F66: + strh r1, [r0, 0x24] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r7, [r0, 0x32] + adds r4, 0x1 + movs r2, 0x7 + add r9, r2 + movs r3, 0xA + add r8, r3 + adds r6, 0x1 + cmp r6, 0x5 + bgt _08048F86 + b _08048E80 +_08048F86: + ldr r0, [sp, 0x8] + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _0804906E + movs r6, 0 + ldr r5, _08048FD8 @ =gUnknown_2022B4C + mov r10, r5 + ldr r0, _08048FDC @ =0x0000ffff + mov r9, r0 + ldr r7, _08048FE0 @ =gUnknown_202063C + ldr r1, _08048FE4 @ =0x000003ff + mov r12, r1 + ldr r2, _08048FE8 @ =0xfffffc00 + mov r8, r2 + mov r4, sp + ldr r5, [sp, 0xC] +_08048FAA: + mov r3, r10 + ldr r0, [r3] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08048FEC + ldrh r0, [r5] + cmp r0, r9 + beq _08048FF6 + cmp r0, 0 + bne _0804903E + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x3 + b _08049056 + .align 2, 0 +_08048FD4: .4byte 0x0000ff88 +_08048FD8: .4byte gUnknown_2022B4C +_08048FDC: .4byte 0x0000ffff +_08048FE0: .4byte gUnknown_202063C +_08048FE4: .4byte 0x000003ff +_08048FE8: .4byte 0xfffffc00 +_08048FEC: + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + asrs r0, 24 + cmp r6, r0 + blt _08049024 +_08048FF6: + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x1 + mov r0, r12 + ands r1, r0 + mov r0, r8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0x1 + strh r1, [r0, 0x3C] + b _08049062 +_08049024: + ldrh r0, [r5] + cmp r0, 0 + bne _0804903E + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x3 + b _08049056 +_0804903E: + ldr r0, [r5, 0x4] + cmp r0, 0 + beq _08049062 + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x2 +_08049056: + mov r0, r12 + ands r1, r0 + mov r0, r8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] +_08049062: + adds r4, 0x1 + adds r5, 0x8 + adds r6, 0x1 + cmp r6, 0x5 + ble _08048FAA + b _08049148 +_0804906E: + movs r6, 0 + ldr r1, _080490B4 @ =gUnknown_2022B4C + mov r10, r1 + ldr r2, _080490B8 @ =0x0000ffff + mov r9, r2 + ldr r7, _080490BC @ =gUnknown_202063C + ldr r3, _080490C0 @ =0x000003ff + mov r12, r3 + ldr r5, _080490C4 @ =0xfffffc00 + mov r8, r5 + ldr r5, [sp, 0xC] + mov r4, sp + adds r4, 0x5 +_08049088: + mov r1, r10 + ldr r0, [r1] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080490C8 + ldrh r0, [r5] + cmp r0, r9 + beq _080490D2 + cmp r0, 0 + bne _0804911A + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x3 + b _08049132 + .align 2, 0 +_080490B4: .4byte gUnknown_2022B4C +_080490B8: .4byte 0x0000ffff +_080490BC: .4byte gUnknown_202063C +_080490C0: .4byte 0x000003ff +_080490C4: .4byte 0xfffffc00 +_080490C8: + ldr r1, [sp, 0x14] + lsls r0, r1, 24 + asrs r0, 24 + cmp r6, r0 + blt _08049100 +_080490D2: + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x1 + mov r0, r12 + ands r1, r0 + mov r0, r8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0x1 + strh r1, [r0, 0x3C] + b _0804913E +_08049100: + ldrh r0, [r5] + cmp r0, 0 + bne _0804911A + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x3 + b _08049132 +_0804911A: + ldr r0, [r5, 0x4] + cmp r0, 0 + beq _0804913E + ldrb r0, [r4] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x2 +_08049132: + mov r0, r12 + ands r1, r0 + mov r0, r8 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] +_0804913E: + subs r4, 0x1 + adds r5, 0x8 + adds r6, 0x1 + cmp r6, 0x5 + ble _08049088 +_08049148: + ldr r0, _080491A8 @ =nullsub_43 + movs r1, 0x5 + bl sub_807741C + lsls r0, 24 + lsrs r4, r0, 24 + ldr r2, _080491AC @ =gUnknown_3005090 + lsls r3, r4, 2 + adds r1, r3, r4 + lsls r1, 3 + adds r0, r1, r2 + mov r5, sp + ldrh r5, [r5, 0x8] + strh r5, [r0, 0x8] + mov r6, sp + ldrh r6, [r6, 0x18] + strh r6, [r0, 0xA] + movs r6, 0 + adds r0, r2, 0 + adds r0, 0xE + adds r1, r0 +_08049172: + mov r5, sp + adds r0, r5, r6 + ldrb r0, [r0] + strh r0, [r1] + adds r1, 0x2 + adds r6, 0x1 + cmp r6, 0x5 + ble _08049172 + adds r0, r3, r4 + lsls r0, 3 + adds r0, r2 + ldrh r6, [r5, 0x10] + strh r6, [r0, 0x1C] + movs r0, 0x6B + movs r1, 0 + bl sub_80722F4 + adds r0, r4, 0 + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080491A8: .4byte nullsub_43 +_080491AC: .4byte gUnknown_3005090 + thumb_func_end sub_8048D14 + + thumb_func_start sub_80491B0 +sub_80491B0: @ 80491B0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, _080492C0 @ =gUnknown_3005090 + lsls r3, r0, 2 + adds r1, r3, r0 + lsls r1, 3 + adds r0, r1, r2 + ldrb r7, [r0, 0x1C] + ldrb r4, [r0, 0xA] + mov r10, r4 + ldrb r0, [r0, 0x8] + str r0, [sp, 0x8] + movs r5, 0 + str r3, [sp, 0xC] + adds r2, 0xE + adds r2, r1, r2 +_080491DE: + mov r0, sp + adds r1, r0, r5 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r5, 0x1 + cmp r5, 0x5 + ble _080491DE + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0x10 + bl sub_8000A38 + ldr r1, _080492C0 @ =gUnknown_3005090 + ldr r0, [sp, 0xC] + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0x10 + strh r1, [r0, 0x26] + movs r5, 0 + mov r1, r10 + lsls r1, 4 + str r1, [sp, 0x10] + ldr r3, _080492C4 @ =gUnknown_202063C + movs r6, 0xD + negs r6, r6 + mov r12, r3 + movs r4, 0x4 +_08049220: + mov r2, sp + adds r0, r2, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r1, 0x1] + adds r0, r6, 0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1, 0x1] + adds r5, 0x1 + cmp r5, 0x5 + ble _08049220 + ldr r2, [sp, 0x10] + add r2, r10 + lsls r2, 2 + add r2, r12 + ldrb r1, [r2, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x1] + cmp r7, 0 + bne _0804925A + b _08049360 +_0804925A: + movs r5, 0 + mov r6, r12 + mov r9, r5 + adds r3, r6, 0 + adds r3, 0x1C + mov r4, sp + movs r7, 0 +_08049268: + ldr r0, [sp, 0x8] + str r3, [sp, 0x14] + bl sub_80751C4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, [sp, 0x14] + cmp r2, 0 + beq _080492CC + movs r0, 0x5 + subs r0, r5 + mov r1, sp + adds r2, r1, r0 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r7, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r9 + strh r1, [r0, 0x34] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r9 + strh r1, [r0, 0x36] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _080492C8 @ =sub_8049630 + str r1, [r0] + ldr r2, _080492C4 @ =gUnknown_202063C + mov r12, r2 + b _08049302 + .align 2, 0 +_080492C0: .4byte gUnknown_3005090 +_080492C4: .4byte gUnknown_202063C +_080492C8: .4byte sub_8049630 +_080492CC: + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r7, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x34] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strh r2, [r0, 0x36] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, _08049348 @ =sub_8049630 + str r1, [r0] + ldr r0, _0804934C @ =gUnknown_202063C + mov r12, r0 +_08049302: + adds r4, 0x1 + adds r7, 0x7 + adds r5, 0x1 + cmp r5, 0x5 + ble _08049268 + ldr r3, [sp, 0x10] + add r3, r10 + lsls r3, 2 + mov r1, r12 + adds r0, r3, r1 + movs r2, 0x2E + ldrsh r1, [r0, r2] + lsrs r2, r1, 31 + adds r1, r2 + asrs r1, 1 + movs r2, 0 + strh r1, [r0, 0x2E] + strh r2, [r0, 0x30] + mov r1, r12 + adds r1, 0x1C + adds r3, r1 + ldr r1, _08049350 @ =sub_8049568 + str r1, [r3] + ldr r1, _08049354 @ =gUnknown_8260404 + bl sub_8008A58 + ldr r1, _08049358 @ =gUnknown_3005090 + ldr r0, [sp, 0xC] + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldr r1, _0804935C @ =sub_8049388 + str r1, [r0] + b _0804936E + .align 2, 0 +_08049348: .4byte sub_8049630 +_0804934C: .4byte gUnknown_202063C +_08049350: .4byte sub_8049568 +_08049354: .4byte gUnknown_8260404 +_08049358: .4byte gUnknown_3005090 +_0804935C: .4byte sub_8049388 +_08049360: + ldr r0, _08049380 @ =gUnknown_3005090 + ldr r1, [sp, 0xC] + add r1, r8 + lsls r1, 3 + adds r1, r0 + ldr r0, _08049384 @ =sub_804948C + str r0, [r1] +_0804936E: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08049380: .4byte gUnknown_3005090 +_08049384: .4byte sub_804948C + thumb_func_end sub_80491B0 + + thumb_func_start sub_8049388 +sub_8049388: @ 8049388 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080493DC @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080493C8 + ldrh r0, [r4, 0x26] + subs r1, r0, 0x1 + strh r1, [r4, 0x26] + lsls r0, r1, 16 + cmp r0, 0 + blt _080493D4 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl sub_8000A38 +_080493C8: + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080493D4 + ldr r0, _080493E0 @ =sub_80493E4 + str r0, [r4] +_080493D4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080493DC: .4byte gUnknown_3005090 +_080493E0: .4byte sub_80493E4 + thumb_func_end sub_8049388 + + thumb_func_start sub_80493E4 +sub_80493E4: @ 80493E4 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r7, _0804945C @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r6, r0, 3 + adds r1, r6, r7 + ldrh r0, [r1, 0x26] + subs r0, 0x1 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r2, r0, 16 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + bne _08049464 + ldrb r3, [r1, 0xA] + movs r5, 0 + adds r0, r7, 0 + adds r0, 0xE + adds r2, r6, r0 +_08049412: + mov r0, sp + adds r1, r0, r5 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r5, 0x1 + cmp r5, 0x5 + ble _08049412 + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r4, _08049460 @ =gUnknown_202063C + adds r0, r4 + bl sub_8007804 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007804 + movs r5, 0x1 +_08049442: + mov r1, sp + adds r0, r1, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007280 + adds r5, 0x1 + cmp r5, 0x5 + ble _08049442 + b _08049482 + .align 2, 0 +_0804945C: .4byte gUnknown_3005090 +_08049460: .4byte gUnknown_202063C +_08049464: + movs r0, 0x3 + negs r0, r0 + cmp r2, r0 + bne _08049482 + movs r0, 0x50 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + adds r0, r4, 0 + bl sub_8077508 +_08049482: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80493E4 + + thumb_func_start sub_804948C +sub_804948C: @ 804948C + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r7, _080494C4 @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r6, r0, 3 + adds r3, r6, r7 + ldrh r0, [r3, 0x26] + subs r1, r0, 0x1 + strh r1, [r3, 0x26] + lsls r0, r1, 16 + asrs r2, r0, 16 + cmp r2, 0 + blt _080494C8 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x52 + bl sub_8000A38 + b _08049546 + .align 2, 0 +_080494C4: .4byte gUnknown_3005090 +_080494C8: + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + bne _08049528 + ldrb r3, [r3, 0xA] + movs r5, 0 + adds r0, r7, 0 + adds r0, 0xE + adds r2, r6, r0 +_080494DA: + mov r0, sp + adds r1, r0, r5 + ldrh r0, [r2] + strb r0, [r1] + adds r2, 0x2 + adds r5, 0x1 + cmp r5, 0x5 + ble _080494DA + lsls r0, r3, 4 + adds r0, r3 + lsls r0, 2 + ldr r4, _08049524 @ =gUnknown_202063C + adds r0, r4 + bl sub_8007804 + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007804 + movs r5, 0x1 +_0804950A: + mov r1, sp + adds r0, r1, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl sub_8007280 + adds r5, 0x1 + cmp r5, 0x5 + ble _0804950A + b _08049546 + .align 2, 0 +_08049524: .4byte gUnknown_202063C +_08049528: + movs r0, 0x3 + negs r0, r0 + cmp r2, r0 + bne _08049546 + movs r0, 0x50 + movs r1, 0 + bl sub_8000A38 + movs r0, 0x52 + movs r1, 0 + bl sub_8000A38 + adds r0, r4, 0 + bl sub_8077508 +_08049546: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804948C + + thumb_func_start sub_8049550 +sub_8049550: @ 8049550 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x24] + movs r3, 0x24 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08049564 + ldrh r0, [r1, 0x2E] + adds r0, r2, r0 + strh r0, [r1, 0x24] +_08049564: + pop {r0} + bx r0 + thumb_func_end sub_8049550 + + thumb_func_start sub_8049568 +sub_8049568: @ 8049568 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0 + adds r1, 0x20 + strh r1, [r2, 0x30] + movs r3, 0x2E + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _08049586 + lsls r0, r1, 16 + asrs r0, 20 + ldrh r1, [r2, 0x24] + adds r0, r1 + b _0804958E +_08049586: + lsls r1, 16 + asrs r1, 20 + ldrh r0, [r2, 0x24] + subs r0, r1 +_0804958E: + strh r0, [r2, 0x24] + ldrh r1, [r2, 0x30] + movs r0, 0xF + ands r0, r1 + strh r0, [r2, 0x30] + pop {r0} + bx r0 + thumb_func_end sub_8049568 + + thumb_func_start sub_804959C +sub_804959C: @ 804959C + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080495B0 + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + b _08049626 +_080495B0: + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r3, r0, 24 + ldrh r2, [r4, 0x34] + adds r0, r2, 0 + adds r0, 0x38 + lsls r1, r0, 16 + lsrs r2, r1, 16 + ldr r0, _080495E0 @ =0x0000fff0 + ands r2, r0 + strh r2, [r4, 0x34] + cmp r3, 0 + beq _080495E4 + lsrs r0, r1, 20 + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + ble _080495F4 + movs r0, 0 + strh r0, [r4, 0x24] + b _080495F4 + .align 2, 0 +_080495E0: .4byte 0x0000fff0 +_080495E4: + lsrs r1, 20 + ldrh r0, [r4, 0x24] + subs r0, r1 + strh r0, [r4, 0x24] + lsls r0, 16 + cmp r0, 0 + bge _080495F4 + strh r3, [r4, 0x24] +_080495F4: + movs r2, 0x24 + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _08049626 + movs r1, 0x3F + cmp r3, 0 + beq _08049604 + movs r1, 0xC0 +_08049604: + movs r2, 0x3C + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08049618 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x6D + bl sub_807237C + b _08049622 +_08049618: + lsls r1, 24 + asrs r1, 24 + movs r0, 0x6C + bl sub_8072348 +_08049622: + ldr r0, _0804962C @ =nullsub_8 + str r0, [r4, 0x1C] +_08049626: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804962C: .4byte nullsub_8 + thumb_func_end sub_804959C + + thumb_func_start sub_8049630 +sub_8049630: @ 8049630 + push {r4,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x30] + movs r2, 0x30 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _08049644 + subs r0, r1, 0x1 + strh r0, [r3, 0x30] + b _08049694 +_08049644: + ldrh r0, [r3, 0x32] + lsls r0, 24 + ldrh r2, [r3, 0x34] + adds r1, r2, 0 + adds r1, 0x38 + lsls r4, r1, 16 + lsrs r2, r4, 16 + ldr r1, _08049664 @ =0x0000fff0 + ands r2, r1 + strh r2, [r3, 0x34] + cmp r0, 0 + beq _08049668 + lsrs r0, r4, 20 + ldrh r1, [r3, 0x24] + adds r0, r1 + b _0804966E + .align 2, 0 +_08049664: .4byte 0x0000fff0 +_08049668: + lsrs r1, r4, 20 + ldrh r0, [r3, 0x24] + subs r0, r1 +_0804966E: + strh r0, [r3, 0x24] + movs r2, 0x24 + ldrsh r0, [r3, r2] + movs r2, 0x20 + ldrsh r1, [r3, r2] + adds r0, r1 + adds r0, 0x8 + movs r1, 0x80 + lsls r1, 1 + cmp r0, r1 + bls _08049694 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0804969C @ =nullsub_8 + str r0, [r3, 0x1C] +_08049694: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0804969C: .4byte nullsub_8 + thumb_func_end sub_8049630 + + thumb_func_start sub_80496A0 +sub_80496A0: @ 80496A0 + ldrh r2, [r0, 0x2E] + lsls r2, 24 + lsrs r2, 24 + ldr r3, _080496BC @ =gUnknown_202063C + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r3 + ldrh r2, [r1, 0x24] + strh r2, [r0, 0x24] + ldrh r1, [r1, 0x26] + strh r1, [r0, 0x26] + bx lr + .align 2, 0 +_080496BC: .4byte gUnknown_202063C + thumb_func_end sub_80496A0 + + thumb_func_start sub_80496C0 +sub_80496C0: @ 80496C0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r7, r1, 0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _08049760 @ =gUnknown_202298C + ldr r1, _08049764 @ =gUnknown_8260556 + bl sub_8008D84 + adds r5, r0, 0 + adds r0, r7, 0 + movs r1, 0x2 + mov r2, sp + bl sub_803FBE8 + mov r0, sp + bl sub_8008D28 + adds r0, r5, 0 + mov r1, sp + bl sub_8008D84 + adds r5, r0, 0 + movs r0, 0xFC + strb r0, [r5] + adds r5, 0x1 + movs r0, 0x1 + strb r0, [r5] + adds r5, 0x1 + adds r0, r7, 0 + bl sub_803F720 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r7, 0 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + adds r1, r0, 0 + cmp r0, 0x1D + beq _08049720 + cmp r0, 0x20 + bne _08049734 +_08049720: + movs r0, 0xB + muls r1, r0 + ldr r0, _08049768 @ =gUnknown_8245EE0 + adds r1, r0 + mov r0, sp + bl sub_8008E28 + cmp r0, 0 + bne _08049734 + movs r6, 0x64 +_08049734: + ldr r1, _0804976C @ =gUnknown_202063C + mov r0, r8 + lsls r4, r0, 4 + adds r0, r4, r0 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x3A] + lsls r1, 24 + lsrs r1, 24 + adds r0, r7, 0 + bl sub_80448F8 + lsls r0, 24 + cmp r0, 0 + beq _08049754 + movs r6, 0x64 +_08049754: + cmp r6, 0 + beq _08049770 + cmp r6, 0xFE + beq _0804977A + movs r0, 0xB + b _08049782 + .align 2, 0 +_08049760: .4byte gUnknown_202298C +_08049764: .4byte gUnknown_8260556 +_08049768: .4byte gUnknown_8245EE0 +_0804976C: .4byte gUnknown_202063C +_08049770: + movs r0, 0xB + strb r0, [r5] + adds r5, 0x1 + movs r0, 0xB5 + b _08049782 +_0804977A: + movs r0, 0xA + strb r0, [r5] + adds r5, 0x1 + movs r0, 0xB6 +_08049782: + strb r0, [r5] + movs r0, 0xFF + strb r0, [r5, 0x1] + ldr r0, _080497E4 @ =gUnknown_202298C + add r3, sp, 0xC + movs r1, 0 + movs r2, 0x3 + bl sub_804A648 + adds r6, r0, 0 + ldr r0, _080497E8 @ =gUnknown_202063C + mov r2, r8 + adds r1, r4, r2 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r4, r0, 17 + ldrh r0, [r1, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _080497F8 + ldr r1, _080497EC @ =0x06010040 + adds r0, r4, r1 + adds r1, r6, 0 + movs r2, 0x6 + bl sub_804A6E8 + bl sub_8075290 + lsls r0, 24 + ldr r2, _080497F0 @ =0x06010400 + adds r5, r4, r2 + cmp r0, 0 + bne _080497D4 + ldr r0, _080497F4 @ =0x06010800 + adds r5, r4, r0 +_080497D4: + adds r1, r6, 0 + adds r1, 0xC0 + adds r0, r5, 0 + movs r2, 0x1 + bl sub_804A6E8 + b _08049804 + .align 2, 0 +_080497E4: .4byte gUnknown_202298C +_080497E8: .4byte gUnknown_202063C +_080497EC: .4byte 0x06010040 +_080497F0: .4byte 0x06010400 +_080497F4: .4byte 0x06010800 +_080497F8: + ldr r1, _08049818 @ =0x06010020 + adds r0, r4, r1 + adds r1, r6, 0 + movs r2, 0x7 + bl sub_804A6E8 +_08049804: + ldr r0, [sp, 0xC] + bl sub_804A6D8 + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08049818: .4byte 0x06010020 + thumb_func_end sub_80496C0 + + thumb_func_start sub_804981C +sub_804981C: @ 804981C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + ldr r0, _080498DC @ =gUnknown_2022B4C + ldr r1, [r0] + ldr r0, _080498E0 @ =0x00010210 + ands r0, r1 + cmp r0, 0 + bne _0804991C + movs r0, 0x8 + ands r1, r0 + cmp r1, 0 + bne _0804991C + ldr r0, _080498E4 @ =gUnknown_202063C + mov r9, r0 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + add r0, r9 + mov r8, r0 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + beq _0804991C + ldr r1, _080498E8 @ =gUnknown_2023BCE + lsls r0, r4, 1 + adds r5, r0, r1 + ldrh r0, [r5] + movs r7, 0x64 + muls r0, r7 + ldr r6, _080498EC @ =gUnknown_202402C + adds r0, r6 + adds r1, r4, 0 + bl sub_80448F8 + lsls r0, 24 + cmp r0, 0 + bne _0804991C + ldrh r0, [r5] + muls r0, r7 + adds r0, r6 + movs r1, 0xB + bl sub_803FBE8 + lsls r0, 16 + lsrs r0, 16 + bl sub_8043298 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8088E74 + lsls r0, 24 + cmp r0, 0 + beq _0804991C + mov r1, r8 + ldrh r0, [r1, 0x38] + lsls r0, 24 + lsrs r4, r0, 24 + mov r2, r10 + cmp r2, 0 + beq _080498F8 + movs r0, 0x46 + bl sub_80480A8 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + add r1, r9 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2 + ldr r2, _080498F0 @ =0x06010000 + adds r1, r2 + ldr r2, _080498F4 @ =0x04000008 + bl CpuSet + b _0804991C + .align 2, 0 +_080498DC: .4byte gUnknown_2022B4C +_080498E0: .4byte 0x00010210 +_080498E4: .4byte gUnknown_202063C +_080498E8: .4byte gUnknown_2023BCE +_080498EC: .4byte gUnknown_202402C +_080498F0: .4byte 0x06010000 +_080498F4: .4byte 0x04000008 +_080498F8: + mov r0, r10 + str r0, [sp] + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + add r0, r9 + ldrh r1, [r0, 0x4] + lsls r1, 22 + lsrs r1, 17 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2 + ldr r0, _0804992C @ =0x06010000 + adds r1, r0 + ldr r2, _08049930 @ =0x05000008 + mov r0, sp + bl CpuSet +_0804991C: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804992C: .4byte 0x06010000 +_08049930: .4byte 0x05000008 + thumb_func_end sub_804981C + + thumb_func_start sub_8049934 +sub_8049934: @ 8049934 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r0, _08049998 @ =gUnknown_202063C + mov r2, r9 + lsls r1, r2, 4 + add r1, r9 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1, 0x3A] + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r0, [r1, 0x38] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + adds r0, r7, 0 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + bne _080499A4 + ldr r1, _0804999C @ =gUnknown_2023BCE + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080499A0 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x37 + bl sub_803FBE8 + adds r4, r0, 0 + bl sub_8075290 + lsls r0, 24 + movs r3, 0x12 + mov r8, r3 + cmp r0, 0 + bne _080499C0 + movs r0, 0x1A + mov r8, r0 + b _080499C0 + .align 2, 0 +_08049998: .4byte gUnknown_202063C +_0804999C: .4byte gUnknown_2023BCE +_080499A0: .4byte gUnknown_2024284 +_080499A4: + ldr r1, _080499E0 @ =gUnknown_2023BCE + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080499E4 @ =gUnknown_202402C + adds r0, r1 + movs r1, 0x37 + bl sub_803FBE8 + adds r4, r0, 0 + movs r1, 0x11 + mov r8, r1 +_080499C0: + movs r0, 0x7 + ands r0, r4 + cmp r0, 0 + beq _080499E8 + movs r0, 0x1B + adds r1, r7, 0 + bl sub_8049BE4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80480A8 + adds r6, r0, 0 + movs r0, 0x2 + b _08049AF4 + .align 2, 0 +_080499E0: .4byte gUnknown_2023BCE +_080499E4: .4byte gUnknown_202402C +_080499E8: + movs r0, 0x88 + ands r0, r4 + cmp r0, 0 + beq _08049A06 + movs r0, 0x15 + adds r1, r7, 0 + bl sub_8049BE4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80480A8 + adds r6, r0, 0 + movs r0, 0 + b _08049AF4 +_08049A06: + movs r0, 0x10 + ands r0, r4 + cmp r0, 0 + beq _08049A24 + movs r0, 0x21 + adds r1, r7, 0 + bl sub_8049BE4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80480A8 + adds r6, r0, 0 + movs r0, 0x4 + b _08049AF4 +_08049A24: + movs r0, 0x20 + ands r0, r4 + cmp r0, 0 + beq _08049A42 + movs r0, 0x1E + adds r1, r7, 0 + bl sub_8049BE4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80480A8 + adds r6, r0, 0 + movs r0, 0x3 + b _08049AF4 +_08049A42: + movs r0, 0x40 + ands r0, r4 + cmp r0, 0 + beq _08049A60 + movs r0, 0x18 + adds r1, r7, 0 + bl sub_8049BE4 + lsls r0, 24 + lsrs r0, 24 + bl sub_80480A8 + adds r6, r0, 0 + movs r0, 0x1 + b _08049AF4 +_08049A60: + movs r0, 0x27 + bl sub_80480A8 + adds r6, r0, 0 + movs r4, 0 + mov r2, r9 + lsls r0, r2, 4 + mov r3, r8 + lsls r3, 16 + mov r8, r3 + lsls r7, 2 + ldr r1, _08049AE0 @ =gUnknown_202063C + add r0, r9 + lsls r0, 2 + adds r5, r0, r1 +_08049A7E: + ldrh r1, [r5, 0x4] + lsls r1, 22 + lsrs r1, 22 + mov r2, r8 + asrs r0, r2, 16 + adds r1, r0 + adds r1, r4 + lsls r1, 5 + ldr r3, _08049AE4 @ =0x06010000 + adds r1, r3 + adds r0, r6, 0 + ldr r2, _08049AE8 @ =0x04000008 + bl CpuSet + adds r4, 0x1 + cmp r4, 0x2 + ble _08049A7E + ldr r0, _08049AEC @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0] + adds r0, r7, r0 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08049AD4 + movs r0, 0x1 + bl sub_80480A8 + ldr r2, _08049AE0 @ =gUnknown_202063C + mov r3, r10 + lsls r1, r3, 4 + add r1, r10 + lsls r1, 2 + adds r1, r2 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 17 + ldr r2, _08049AE4 @ =0x06010000 + adds r1, r2 + ldr r2, _08049AF0 @ =0x04000010 + bl CpuSet +_08049AD4: + mov r0, r9 + movs r1, 0x1 + bl sub_804981C + b _08049BB6 + .align 2, 0 +_08049AE0: .4byte gUnknown_202063C +_08049AE4: .4byte 0x06010000 +_08049AE8: .4byte 0x04000008 +_08049AEC: .4byte gUnknown_2024018 +_08049AF0: .4byte 0x04000010 +_08049AF4: + mov r1, r9 + lsls r5, r1, 4 + add r5, r9 + lsls r5, 2 + ldr r2, _08049BC4 @ =gUnknown_202063C + adds r5, r2 + ldrb r4, [r5, 0x5] + lsrs r4, 4 + lsls r4, 4 + adds r4, 0xC + adds r4, r7 + ldr r1, _08049BC8 @ =gUnknown_826055A + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + movs r3, 0x80 + lsls r3, 1 + adds r1, r4, r3 + movs r2, 0x2 + bl sub_8070424 + lsls r4, 1 + ldr r0, _08049BCC @ =gUnknown_20373F8 + adds r0, r4, r0 + ldr r1, _08049BD0 @ =0x05000200 + adds r4, r1 + adds r1, r4, 0 + movs r2, 0x1 + bl CpuSet + ldrh r1, [r5, 0x4] + lsls r1, 22 + lsrs r1, 22 + add r1, r8 + lsls r1, 5 + ldr r2, _08049BD4 @ =0x06010000 + mov r8, r2 + add r1, r8 + ldr r2, _08049BD8 @ =0x04000018 + adds r0, r6, 0 + bl CpuSet + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08049B62 + adds r0, r7, 0 + bl sub_80751C4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08049BAE +_08049B62: + ldr r0, _08049BDC @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r7, 2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08049BAE + movs r0, 0 + bl sub_80480A8 + mov r3, r10 + lsls r4, r3, 4 + add r4, r10 + lsls r4, 2 + ldr r1, _08049BC4 @ =gUnknown_202063C + adds r4, r1 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + add r1, r8 + ldr r5, _08049BE0 @ =0x04000008 + adds r2, r5, 0 + bl CpuSet + movs r0, 0x41 + bl sub_80480A8 + ldrh r1, [r4, 0x4] + lsls r1, 22 + lsrs r1, 17 + adds r1, 0x20 + add r1, r8 + adds r2, r5, 0 + bl CpuSet +_08049BAE: + mov r0, r9 + movs r1, 0 + bl sub_804981C +_08049BB6: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08049BC4: .4byte gUnknown_202063C +_08049BC8: .4byte gUnknown_826055A +_08049BCC: .4byte gUnknown_20373F8 +_08049BD0: .4byte 0x05000200 +_08049BD4: .4byte 0x06010000 +_08049BD8: .4byte 0x04000018 +_08049BDC: .4byte gUnknown_2024018 +_08049BE0: .4byte 0x04000008 + thumb_func_end sub_8049934 + + thumb_func_start sub_8049BE4 +sub_8049BE4: @ 8049BE4 + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + lsrs r2, r0, 24 + adds r0, r2, 0 + subs r0, 0x15 + cmp r0, 0xC + bhi _08049CA4 + lsls r0, 2 + ldr r1, _08049C00 @ =_08049C04 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08049C00: .4byte _08049C04 + .align 2, 0 +_08049C04: + .4byte _08049C38 + .4byte _08049CA4 + .4byte _08049CA4 + .4byte _08049C4E + .4byte _08049CA4 + .4byte _08049CA4 + .4byte _08049C64 + .4byte _08049CA4 + .4byte _08049CA4 + .4byte _08049C7A + .4byte _08049CA4 + .4byte _08049CA4 + .4byte _08049C90 +_08049C38: + movs r2, 0x15 + cmp r3, 0 + beq _08049CA4 + movs r2, 0x47 + cmp r3, 0x1 + beq _08049CA4 + movs r2, 0x65 + cmp r3, 0x2 + bne _08049CA4 + movs r2, 0x56 + b _08049CA4 +_08049C4E: + movs r2, 0x18 + cmp r3, 0 + beq _08049CA4 + movs r2, 0x4A + cmp r3, 0x1 + beq _08049CA4 + movs r2, 0x68 + cmp r3, 0x2 + bne _08049CA4 + movs r2, 0x59 + b _08049CA4 +_08049C64: + movs r2, 0x1B + cmp r3, 0 + beq _08049CA4 + movs r2, 0x4D + cmp r3, 0x1 + beq _08049CA4 + movs r2, 0x6B + cmp r3, 0x2 + bne _08049CA4 + movs r2, 0x5C + b _08049CA4 +_08049C7A: + movs r2, 0x1E + cmp r3, 0 + beq _08049CA4 + movs r2, 0x50 + cmp r3, 0x1 + beq _08049CA4 + movs r2, 0x6E + cmp r3, 0x2 + bne _08049CA4 + movs r2, 0x5F + b _08049CA4 +_08049C90: + movs r2, 0x21 + cmp r3, 0 + beq _08049CA4 + movs r2, 0x53 + cmp r3, 0x1 + beq _08049CA4 + movs r2, 0x71 + cmp r3, 0x2 + bne _08049CA4 + movs r2, 0x62 +_08049CA4: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_8049BE4 + + thumb_func_start sub_8049CAC +sub_8049CAC: @ 8049CAC + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08049D00 @ =gUnknown_83FE80C + movs r1, 0 + movs r2, 0x3 + mov r3, sp + bl sub_804A648 + adds r5, r0, 0 + ldr r1, _08049D04 @ =gUnknown_202063C + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r4, [r0, 0x4] + lsls r4, 22 + lsrs r4, 17 + ldr r1, _08049D08 @ =0x06010040 + adds r0, r4, r1 + adds r1, r5, 0 + movs r2, 0x6 + bl sub_804A6E8 + ldr r0, _08049D0C @ =0x06010800 + adds r4, r0 + adds r5, 0xC0 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x2 + bl sub_804A6E8 + ldr r0, [sp] + bl sub_804A6D8 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08049D00: .4byte gUnknown_83FE80C +_08049D04: .4byte gUnknown_202063C +_08049D08: .4byte 0x06010040 +_08049D0C: .4byte 0x06010800 + thumb_func_end sub_8049CAC + + thumb_func_start sub_8049D10 +sub_8049D10: @ 8049D10 + push {r4,r5,lr} + sub sp, 0x14 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _08049D84 @ =gUnknown_83FE81C + mov r0, sp + bl sub_8008D84 + ldr r1, _08049D88 @ =gUnknown_2039994 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0x2 + bl sub_8008E78 + movs r0, 0 + mov r1, sp + movs r2, 0 + bl sub_8005ED4 + movs r1, 0x2F + subs r1, r0 + add r3, sp, 0x10 + mov r0, sp + movs r2, 0x3 + bl sub_804A648 + adds r5, r0, 0 + ldr r1, _08049D8C @ =gUnknown_202063C + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r4, [r0, 0x4] + lsls r4, 22 + lsrs r4, 17 + ldr r1, _08049D90 @ =0x060102c0 + adds r0, r4, r1 + adds r1, r5, 0 + movs r2, 0x2 + bl sub_804A734 + ldr r0, _08049D94 @ =0x06010a00 + adds r4, r0 + adds r5, 0x40 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x4 + bl sub_804A734 + ldr r0, [sp, 0x10] + bl sub_804A6D8 + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08049D84: .4byte gUnknown_83FE81C +_08049D88: .4byte gUnknown_2039994 +_08049D8C: .4byte gUnknown_202063C +_08049D90: .4byte 0x060102c0 +_08049D94: .4byte 0x06010a00 + thumb_func_end sub_8049D10 + + thumb_func_start sub_8049D98 +sub_8049D98: @ 8049D98 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r8, r1 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r2, 24 + lsrs r7, r2, 24 + ldr r1, _08049F44 @ =gUnknown_202063C + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r7, 0 + bne _08049DD4 + bl sub_8075290 + lsls r0, 24 + cmp r0, 0 + bne _08049DD4 + mov r0, r9 + bl sub_80751C4 +_08049DD4: + ldr r1, _08049F44 @ =gUnknown_202063C + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x3A] + lsls r0, 24 + lsrs r0, 24 + bl sub_80751C4 + lsls r0, 24 + cmp r0, 0 + beq _08049DF0 + b _08049F50 +_08049DF0: + cmp r7, 0x3 + beq _08049DF8 + cmp r7, 0 + bne _08049E0C +_08049DF8: + mov r0, r8 + movs r1, 0x38 + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8048398 +_08049E0C: + cmp r7, 0x1 + bhi _08049E26 + mov r0, r8 + movs r1, 0x39 + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r6, 0 + movs r2, 0 + bl sub_8048440 +_08049E26: + cmp r7, 0x2 + beq _08049E2E + cmp r7, 0 + bne _08049E44 +_08049E2E: + mov r0, r8 + movs r1, 0x3A + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r6, 0 + movs r2, 0x1 + bl sub_8048440 +_08049E44: + cmp r7, 0x5 + beq _08049E4C + cmp r7, 0 + bne _08049E80 +_08049E4C: + movs r0, 0 + bl sub_8034964 + mov r0, r8 + movs r1, 0x3A + bl sub_803FBE8 + adds r4, r0, 0 + mov r0, r8 + movs r1, 0x39 + bl sub_803FBE8 + adds r3, r0, 0 + movs r0, 0 + str r0, [sp] + mov r0, r9 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_8048150 + mov r0, r9 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0 + bl sub_8049FD8 +_08049E80: + bl sub_8075290 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0 + bne _08049F06 + cmp r7, 0x6 + beq _08049E96 + cmp r7, 0 + bne _08049F06 +_08049E96: + movs r0, 0x3 + bl sub_8034964 + mov r0, r8 + movs r1, 0xB + bl sub_803FBE8 + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + mov r0, r8 + movs r1, 0x38 + bl sub_803FBE8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r0, r8 + movs r1, 0x19 + bl sub_803FBE8 + adds r3, r0, 0 + ldr r0, _08049F48 @ =gUnknown_8253AE4 + mov r12, r0 + lsls r1, r4, 2 + ldr r2, _08049F4C @ =gUnknown_8254784 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r2 + adds r1, r0 + add r1, r12 + ldr r1, [r1] + subs r3, r1 + adds r4, 0x1 + lsls r4, 2 + adds r4, r0 + add r4, r12 + ldr r2, [r4] + subs r2, r1 + mov r0, r10 + str r0, [sp] + mov r0, r9 + adds r1, r6, 0 + bl sub_8048150 + mov r0, r9 + adds r1, r6, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_8049FD8 +_08049F06: + cmp r7, 0x4 + beq _08049F0E + cmp r7, 0 + bne _08049F16 +_08049F0E: + adds r0, r6, 0 + mov r1, r8 + bl sub_80496C0 +_08049F16: + cmp r7, 0x9 + beq _08049F1E + cmp r7, 0 + bne _08049F24 +_08049F1E: + adds r0, r6, 0 + bl sub_8049934 +_08049F24: + cmp r7, 0xA + bne _08049F2E + adds r0, r6, 0 + bl sub_8049CAC +_08049F2E: + adds r0, r7, 0 + subs r0, 0xA + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08049FC6 + adds r0, r6, 0 + bl sub_8049D10 + b _08049FC6 + .align 2, 0 +_08049F44: .4byte gUnknown_202063C +_08049F48: .4byte gUnknown_8253AE4 +_08049F4C: .4byte gUnknown_8254784 +_08049F50: + cmp r7, 0x3 + beq _08049F58 + cmp r7, 0 + bne _08049F6C +_08049F58: + mov r0, r8 + movs r1, 0x38 + bl sub_803FBE8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8048398 +_08049F6C: + cmp r7, 0x5 + beq _08049F74 + cmp r7, 0 + bne _08049FA8 +_08049F74: + movs r0, 0 + bl sub_8034964 + mov r0, r8 + movs r1, 0x3A + bl sub_803FBE8 + adds r4, r0, 0 + mov r0, r8 + movs r1, 0x39 + bl sub_803FBE8 + adds r3, r0, 0 + movs r0, 0 + str r0, [sp] + mov r0, r9 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_8048150 + mov r0, r9 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0 + bl sub_8049FD8 +_08049FA8: + cmp r7, 0x4 + beq _08049FB0 + cmp r7, 0 + bne _08049FB8 +_08049FB0: + adds r0, r6, 0 + mov r1, r8 + bl sub_80496C0 +_08049FB8: + cmp r7, 0x9 + beq _08049FC0 + cmp r7, 0 + bne _08049FC6 +_08049FC0: + adds r0, r6, 0 + bl sub_8049934 +_08049FC6: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8049D98 + + thumb_func_start sub_8049FD8 +sub_8049FD8: @ 8049FD8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + cmp r2, 0 + bne _0804A024 + ldr r0, _0804A020 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0, 0xC] + mov r1, r8 + lsls r5, r1, 2 + adds r3, r5, r1 + lsls r3, 2 + adds r3, r0 + ldr r0, [r3, 0x4] + ldr r1, [r3, 0x8] + ldr r2, [r3, 0xC] + adds r3, 0x10 + movs r4, 0x6 + str r4, [sp] + movs r4, 0x1 + str r4, [sp, 0x4] + bl sub_804A2F0 + adds r4, r0, 0 + adds r7, r5, 0 + b _0804A080 + .align 2, 0 +_0804A020: .4byte gUnknown_2024018 +_0804A024: + ldr r2, _0804A0D0 @ =gUnknown_2024018 + mov r10, r2 + ldr r0, [r2] + ldr r2, [r0, 0xC] + mov r0, r8 + lsls r4, r0, 2 + adds r0, r4, r0 + lsls r6, r0, 2 + adds r2, r6, r2 + ldr r0, [r2, 0x8] + ldr r1, [r2, 0xC] + ldr r2, [r2, 0x4] + movs r3, 0x8 + bl sub_804A59C + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r4, 0 + cmp r5, 0 + bne _0804A04E + movs r5, 0x1 +_0804A04E: + mov r1, r10 + ldr r0, [r1] + ldr r0, [r0, 0xC] + adds r4, r6, r0 + ldr r6, [r4, 0xC] + adds r0, r6, 0 + adds r1, r5, 0 + bl __divsi3 + cmp r0, 0 + bge _0804A066 + negs r0, r0 +_0804A066: + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, [r4, 0x4] + ldr r1, [r4, 0x8] + adds r3, r4, 0 + adds r3, 0x10 + movs r2, 0x8 + str r2, [sp] + str r5, [sp, 0x4] + adds r2, r6, 0 + bl sub_804A2F0 + adds r4, r0, 0 +_0804A080: + mov r2, r9 + cmp r2, 0x1 + beq _0804A09C + cmp r2, 0 + bne _0804A0A4 + ldr r0, _0804A0D0 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0] + adds r0, r7, r0 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0804A0A4 +_0804A09C: + mov r0, r8 + mov r1, r9 + bl sub_804A0D4 +_0804A0A4: + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _0804A0BE + ldr r0, _0804A0D0 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0, 0xC] + mov r2, r8 + adds r0, r7, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0 + str r1, [r0, 0x10] +_0804A0BE: + adds r0, r4, 0 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0804A0D0: .4byte gUnknown_2024018 + thumb_func_end sub_8049FD8 + + thumb_func_start sub_804A0D4 +sub_804A0D4: @ 804A0D4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0 + beq _0804A0F0 + cmp r1, 0x1 + beq _0804A1D8 + b _0804A2D6 +_0804A0F0: + ldr r0, _0804A184 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0, 0xC] + lsls r5, r6, 2 + adds r3, r5, r6 + lsls r3, 2 + adds r3, r0 + ldr r0, [r3, 0x4] + ldr r1, [r3, 0x8] + ldr r2, [r3, 0xC] + adds r3, 0x10 + add r4, sp, 0x8 + str r4, [sp] + movs r4, 0x6 + str r4, [sp, 0x4] + bl sub_804A3C4 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3 + mov r9, r1 + adds r7, r5, 0 + cmp r0, 0x18 + bhi _0804A12C + movs r2, 0x38 + mov r9, r2 + cmp r0, 0x9 + bls _0804A12C + movs r4, 0x2F + mov r9, r4 +_0804A12C: + movs r5, 0 + ldr r0, _0804A188 @ =gUnknown_202063C + mov r8, r0 +_0804A132: + ldr r0, _0804A184 @ =gUnknown_2024018 + ldr r0, [r0] + ldr r1, [r0, 0xC] + adds r0, r7, r6 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrh r0, [r0, 0x38] + lsls r0, 24 + lsrs r4, r0, 24 + cmp r5, 0x1 + bhi _0804A194 + mov r0, r9 + bl sub_80480A8 + mov r1, sp + adds r1, r5 + adds r1, 0x8 + ldrb r1, [r1] + lsls r1, 5 + adds r0, r1 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + add r1, r8 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r2, r5, 0x2 + adds r1, r2 + lsls r1, 5 + ldr r2, _0804A18C @ =0x06010000 + adds r1, r2 + ldr r2, _0804A190 @ =0x04000008 + bl CpuSet + b _0804A1C2 + .align 2, 0 +_0804A184: .4byte gUnknown_2024018 +_0804A188: .4byte gUnknown_202063C +_0804A18C: .4byte 0x06010000 +_0804A190: .4byte 0x04000008 +_0804A194: + mov r0, r9 + bl sub_80480A8 + mov r1, sp + adds r1, r5 + adds r1, 0x8 + ldrb r1, [r1] + lsls r1, 5 + adds r0, r1 + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + add r1, r8 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r1, r5, r1 + lsls r1, 5 + ldr r4, _0804A1D0 @ =0x06010040 + adds r1, r4 + ldr r2, _0804A1D4 @ =0x04000008 + bl CpuSet +_0804A1C2: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0804A132 + b _0804A2D6 + .align 2, 0 +_0804A1D0: .4byte 0x06010040 +_0804A1D4: .4byte 0x04000008 +_0804A1D8: + ldr r0, _0804A27C @ =gUnknown_2024018 + ldr r0, [r0] + ldr r0, [r0, 0xC] + lsls r5, r6, 2 + adds r3, r5, r6 + lsls r3, 2 + adds r3, r0 + ldr r0, [r3, 0x4] + ldr r1, [r3, 0x8] + ldr r2, [r3, 0xC] + adds r3, 0x10 + add r4, sp, 0x8 + str r4, [sp] + movs r4, 0x8 + str r4, [sp, 0x4] + bl sub_804A3C4 + ldr r1, _0804A280 @ =gUnknown_2023BCE + lsls r0, r6, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0804A284 @ =gUnknown_2024284 + adds r0, r1 + movs r1, 0x38 + bl sub_803FBE8 + lsls r0, 24 + lsrs r0, 24 + adds r7, r5, 0 + cmp r0, 0x64 + bne _0804A230 + movs r5, 0 + movs r1, 0 +_0804A21E: + mov r0, sp + adds r0, r5 + adds r0, 0x8 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _0804A21E +_0804A230: + movs r5, 0 + ldr r0, _0804A288 @ =gUnknown_202063C + mov r8, r0 + adds r0, r7, r6 + lsls r4, r0, 2 +_0804A23A: + cmp r5, 0x3 + bhi _0804A294 + movs r0, 0xC + bl sub_80480A8 + mov r1, sp + adds r1, r5 + adds r1, 0x8 + ldrb r1, [r1] + lsls r1, 5 + adds r0, r1 + ldr r1, _0804A27C @ =gUnknown_2024018 + ldr r1, [r1] + ldr r1, [r1, 0xC] + adds r1, r4, r1 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r2, r5, 0 + adds r2, 0x24 + adds r1, r2 + lsls r1, 5 + ldr r2, _0804A28C @ =0x06010000 + adds r1, r2 + ldr r2, _0804A290 @ =0x04000008 + bl CpuSet + b _0804A2CC + .align 2, 0 +_0804A27C: .4byte gUnknown_2024018 +_0804A280: .4byte gUnknown_2023BCE +_0804A284: .4byte gUnknown_2024284 +_0804A288: .4byte gUnknown_202063C +_0804A28C: .4byte 0x06010000 +_0804A290: .4byte 0x04000008 +_0804A294: + movs r0, 0xC + bl sub_80480A8 + mov r1, sp + adds r1, r5 + adds r1, 0x8 + ldrb r1, [r1] + lsls r1, 5 + adds r0, r1 + ldr r1, _0804A2E4 @ =gUnknown_2024018 + ldr r1, [r1] + ldr r1, [r1, 0xC] + adds r1, r4, r1 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrh r1, [r1, 0x4] + lsls r1, 22 + lsrs r1, 22 + adds r1, r5, r1 + lsls r1, 5 + ldr r2, _0804A2E8 @ =0x06010b80 + adds r1, r2 + ldr r2, _0804A2EC @ =0x04000008 + bl CpuSet +_0804A2CC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _0804A23A +_0804A2D6: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0804A2E4: .4byte gUnknown_2024018 +_0804A2E8: .4byte 0x06010b80 +_0804A2EC: .4byte 0x04000008 + thumb_func_end sub_804A0D4 + + thumb_func_start sub_804A2F0 +sub_804A2F0: @ 804A2F0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r7, r0, 0 + adds r4, r1, 0 + mov r8, r2 + adds r5, r3, 0 + ldr r1, [sp, 0x18] + ldr r0, [sp, 0x1C] + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 27 + lsrs r2, r1, 24 + ldr r1, [r5] + ldr r0, _0804A31C @ =0xffff8000 + cmp r1, r0 + bne _0804A322 + cmp r7, r2 + bge _0804A320 + lsls r0, r4, 8 + str r0, [r5] + b _0804A322 + .align 2, 0 +_0804A31C: .4byte 0xffff8000 +_0804A320: + str r4, [r5] +_0804A322: + mov r0, r8 + subs r4, r0 + cmp r4, 0 + bge _0804A32E + movs r4, 0 + b _0804A334 +_0804A32E: + cmp r4, r7 + ble _0804A334 + adds r4, r7, 0 +_0804A334: + cmp r7, r2 + bge _0804A350 + ldr r0, [r5] + asrs r1, r0, 8 + adds r6, r0, 0 + cmp r4, r1 + bne _0804A35C + movs r0, 0xFF + ands r0, r6 + cmp r0, 0 + bne _0804A35C + movs r0, 0x1 + negs r0, r0 + b _0804A3B8 +_0804A350: + ldr r6, [r5] + cmp r4, r6 + bne _0804A35C + movs r0, 0x1 + negs r0, r0 + b _0804A3B8 +_0804A35C: + cmp r7, r2 + bge _0804A396 + lsls r0, r7, 8 + adds r1, r2, 0 + bl __divsi3 + mov r1, r8 + cmp r1, 0 + bge _0804A37A + adds r0, r6, r0 + str r0, [r5] + asrs r2, r0, 8 + cmp r2, r4 + blt _0804A3B6 + b _0804A38E +_0804A37A: + subs r0, r6, r0 + str r0, [r5] + asrs r2, r0, 8 + movs r1, 0xFF + ands r0, r1 + cmp r0, 0 + ble _0804A38A + adds r2, 0x1 +_0804A38A: + cmp r2, r4 + bgt _0804A3B6 +_0804A38E: + lsls r0, r4, 8 + str r0, [r5] + adds r2, r4, 0 + b _0804A3B6 +_0804A396: + mov r0, r8 + cmp r0, 0 + bge _0804A3A8 + ldr r0, [r5] + adds r0, r3 + str r0, [r5] + cmp r0, r4 + ble _0804A3B4 + b _0804A3B2 +_0804A3A8: + ldr r0, [r5] + subs r0, r3 + str r0, [r5] + cmp r0, r4 + bge _0804A3B4 +_0804A3B2: + str r4, [r5] +_0804A3B4: + ldr r2, [r5] +_0804A3B6: + adds r0, r2, 0 +_0804A3B8: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804A2F0 + + thumb_func_start sub_804A3C4 +sub_804A3C4: @ 804A3C4 + push {r4-r7,lr} + adds r4, r0, 0 + mov r12, r3 + ldr r7, [sp, 0x14] + ldr r0, [sp, 0x18] + lsls r0, 24 + lsrs r6, r0, 24 + subs r5, r1, r2 + cmp r5, 0 + bge _0804A3DC + movs r5, 0 + b _0804A3E2 +_0804A3DC: + cmp r5, r4 + ble _0804A3E2 + adds r5, r4, 0 +_0804A3E2: + lsls r0, r6, 27 + lsrs r3, r0, 24 + movs r1, 0 + cmp r1, r6 + bcs _0804A3FC + movs r2, 0 +_0804A3EE: + adds r0, r7, r1 + strb r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r6 + bcc _0804A3EE +_0804A3FC: + cmp r4, r3 + bge _0804A410 + mov r1, r12 + ldr r0, [r1] + muls r0, r3 + adds r1, r4, 0 + bl __divsi3 + asrs r0, 8 + b _0804A41C +_0804A410: + mov r1, r12 + ldr r0, [r1] + muls r0, r3 + adds r1, r4, 0 + bl __divsi3 +_0804A41C: + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r2, 0 + cmp r3, 0 + bne _0804A432 + cmp r5, 0 + ble _0804A432 + movs r0, 0x1 + strb r0, [r7] + movs r3, 0x1 + b _0804A456 +_0804A432: + movs r1, 0 + movs r4, 0x8 +_0804A436: + cmp r1, r6 + bcs _0804A456 + cmp r2, 0x7 + bls _0804A452 + adds r0, r7, r1 + strb r4, [r0] + adds r0, r2, 0 + subs r0, 0x8 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + b _0804A436 +_0804A452: + adds r0, r7, r1 + strb r2, [r0] +_0804A456: + adds r0, r3, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804A3C4 + + thumb_func_start sub_804A460 +sub_804A460: @ 804A460 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x8 + mov r9, r0 + mov r10, r1 + adds r6, r2, 0 + mov r8, r3 + ldr r5, [sp, 0x24] + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r5, 24 + lsrs r5, 24 + mov r1, r9 + ldr r0, [r1] + ldr r1, [r1, 0x4] + mov r3, r9 + ldr r2, [r3, 0x8] + movs r3, 0x6 + str r3, [sp] + movs r3, 0x1 + str r3, [sp, 0x4] + mov r3, r10 + bl sub_804A2F0 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + str r5, [sp] + mov r0, r9 + mov r1, r10 + adds r2, r6, 0 + mov r3, r8 + bl sub_804A510 + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_804A460 + + thumb_func_start sub_804A4C8 +sub_804A4C8: @ 804A4C8 + push {r4,lr} + sub sp, 0x8 + adds r3, r1, 0 + ldr r4, [r0] + ldr r1, [r0, 0x4] + ldr r2, [r0, 0x8] + movs r0, 0x6 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r4, 0 + bl sub_804A2F0 + lsls r0, 16 + asrs r0, 16 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_804A4C8 + + thumb_func_start sub_804A4F0 +sub_804A4F0: @ 804A4F0 + push {r4,lr} + sub sp, 0x4 + ldr r4, [sp, 0xC] + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r4, 24 + lsrs r4, 24 + str r4, [sp] + bl sub_804A510 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_804A4F0 + + thumb_func_start sub_804A510 +sub_804A510: @ 804A510 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, [sp, 0x40] + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, [r4] + ldr r1, [r4, 0x4] + ldr r2, [r4, 0x8] + add r3, sp, 0xC + str r3, [sp] + movs r3, 0x6 + str r3, [sp, 0x4] + adds r3, r5, 0 + bl sub_804A3C4 + movs r3, 0 + add r6, sp, 0x14 + adds r7, r6, 0 + ldrb r0, [r4, 0xC] + lsls r5, r0, 27 + ldr r4, [r4, 0x10] +_0804A554: + lsls r2, r3, 1 + adds r2, r7, r2 + lsrs r1, r5, 15 + mov r0, sp + adds r0, r3 + adds r0, 0xC + ldrb r0, [r0] + adds r0, r4, r0 + orrs r1, r0 + strh r1, [r2] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x5 + bls _0804A554 + movs r0, 0x6 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0x11 + str r0, [sp, 0x8] + mov r0, r9 + adds r1, r6, 0 + mov r2, r10 + mov r3, r8 + bl sub_8002228 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_804A510 + + thumb_func_start sub_804A59C +sub_804A59C: @ 804A59C + push {r4-r7,lr} + adds r6, r2, 0 + lsls r3, 27 + lsrs r7, r3, 24 + subs r5, r0, r1 + cmp r5, 0 + bge _0804A5AE + movs r5, 0 + b _0804A5B4 +_0804A5AE: + cmp r5, r6 + ble _0804A5B4 + adds r5, r6, 0 +_0804A5B4: + muls r0, r7 + adds r1, r6, 0 + bl __divsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + muls r0, r7 + adds r1, r6, 0 + bl __divsi3 + lsls r4, 24 + asrs r4, 24 + lsls r0, 24 + asrs r0, 24 + subs r0, r4, r0 + cmp r0, 0 + bge _0804A5DC + negs r0, r0 +_0804A5DC: + lsls r0, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_804A59C + + thumb_func_start sub_804A5E8 +sub_804A5E8: @ 804A5E8 + push {r4,lr} + lsls r2, 24 + lsrs r2, 24 + lsls r0, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + muls r0, r2 + lsls r1, 16 + asrs r1, 16 + bl __divsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0804A60C + cmp r4, 0 + ble _0804A60C + movs r0, 0x1 +_0804A60C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_804A5E8 + + thumb_func_start sub_804A614 +sub_804A614: @ 804A614 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + cmp r0, r1 + bne _0804A626 + movs r0, 0x4 + b _0804A642 +_0804A626: + movs r2, 0x30 + bl sub_804A5E8 + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x3 + cmp r1, 0x18 + bhi _0804A642 + movs r0, 0x2 + cmp r1, 0x9 + bhi _0804A642 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 +_0804A642: + pop {r1} + bx r1 + thumb_func_end sub_804A614 + + thumb_func_start sub_804A648 +sub_804A648: @ 804A648 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x20 + mov r9, r0 + adds r6, r1, 0 + mov r8, r2 + mov r10, r3 + ldr r0, _0804A6D4 @ =gUnknown_8260564 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + add r0, sp, 0x18 + bl sub_8003CE4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, r4, 24 + lsrs r5, 24 + adds r0, r5, 0 + movs r1, 0x22 + bl sub_800445C + add r1, sp, 0x14 + movs r2, 0 + movs r0, 0x2 + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x3 + strb r0, [r1, 0x2] + lsls r6, 24 + lsrs r6, 24 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + str r2, [sp] + str r2, [sp, 0x4] + str r1, [sp, 0x8] + movs r0, 0x1 + negs r0, r0 + str r0, [sp, 0xC] + mov r0, r9 + str r0, [sp, 0x10] + adds r0, r5, 0 + movs r1, 0 + adds r2, r6, 0 + mov r3, r8 + bl sub_812E5A4 + mov r0, r10 + str r4, [r0] + adds r0, r5, 0 + movs r1, 0x7 + bl sub_8004950 + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0804A6D4: .4byte gUnknown_8260564 + thumb_func_end sub_804A648 + + thumb_func_start sub_804A6D8 +sub_804A6D8: @ 804A6D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_8003E3C + pop {r0} + bx r0 + thumb_func_end sub_804A6D8 + + thumb_func_start sub_804A6E8 +sub_804A6E8: @ 804A6E8 + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + adds r4, r2, 0 + movs r1, 0x80 + lsls r1, 1 + adds r0, r5, r1 + adds r1, r6, r1 + lsls r2, r4, 3 + ldr r3, _0804A72C @ =0x001fffff + ands r2, r3 + movs r3, 0x80 + lsls r3, 19 + orrs r2, r3 + bl CpuSet + cmp r4, 0 + ble _0804A724 +_0804A70C: + adds r0, r5, 0 + adds r0, 0x14 + adds r1, r6, 0 + adds r1, 0x14 + ldr r2, _0804A730 @ =0x04000003 + bl CpuSet + adds r6, 0x20 + adds r5, 0x20 + subs r4, 0x1 + cmp r4, 0 + bne _0804A70C +_0804A724: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804A72C: .4byte 0x001fffff +_0804A730: .4byte 0x04000003 + thumb_func_end sub_804A6E8 + + thumb_func_start sub_804A734 +sub_804A734: @ 804A734 + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + lsls r4, r2, 3 + ldr r0, _0804A768 @ =0x001fffff + ands r4, r0 + movs r0, 0x80 + lsls r0, 19 + orrs r4, r0 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl CpuSet + movs r0, 0x80 + lsls r0, 1 + adds r5, r0 + adds r6, r0 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl CpuSet + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0804A768: .4byte 0x001fffff + thumb_func_end sub_804A734 + + .align 2, 0 @ Don't pad with nop. |