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_transition.s |
first commit
Diffstat (limited to 'asm/battle_transition.s')
-rw-r--r-- | asm/battle_transition.s | 7480 |
1 files changed, 7480 insertions, 0 deletions
diff --git a/asm/battle_transition.s b/asm/battle_transition.s new file mode 100644 index 000000000..e1efd07cb --- /dev/null +++ b/asm/battle_transition.s @@ -0,0 +1,7480 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80D08B8 +sub_80D08B8: @ 80D08B8 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080D08DC @ =gUnknown_2039A2C + movs r0, 0x3C + bl sub_8002BB0 + str r0, [r5] + ldr r1, _080D08E0 @ =gUnknown_30030F0 + ldr r0, _080D08E4 @ =sub_80565A8 + str r0, [r1, 0x4] + adds r0, r4, 0 + bl sub_80D0948 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D08DC: .4byte gUnknown_2039A2C +_080D08E0: .4byte gUnknown_30030F0 +_080D08E4: .4byte sub_80565A8 + thumb_func_end sub_80D08B8 + + thumb_func_start sub_80D08E8 +sub_80D08E8: @ 80D08E8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_80D0948 + pop {r0} + bx r0 + thumb_func_end sub_80D08E8 + + thumb_func_start sub_80D08F8 +sub_80D08F8: @ 80D08F8 + push {r4,r5,lr} + ldr r0, _080D091C @ =sub_80D0978 + bl sub_8077688 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080D0920 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x26 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _080D0924 + movs r0, 0 + b _080D093C + .align 2, 0 +_080D091C: .4byte sub_80D0978 +_080D0920: .4byte gUnknown_3005090 +_080D0924: + bl sub_80D3DD0 + ldr r4, _080D0944 @ =gUnknown_2039A2C + ldr r0, [r4] + bl sub_8002BC4 + movs r0, 0 + str r0, [r4] + adds r0, r5, 0 + bl sub_8077508 + movs r0, 0x1 +_080D093C: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D0944: .4byte gUnknown_2039A2C + thumb_func_end sub_80D08F8 + + thumb_func_start sub_80D0948 +sub_80D0948: @ 80D0948 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _080D0970 @ =sub_80D0978 + movs r1, 0x2 + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D0974 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D0970: .4byte sub_80D0978 +_080D0974: .4byte gUnknown_3005090 + thumb_func_end sub_80D0948 + + thumb_func_start sub_80D0978 +sub_80D0978: @ 80D0978 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D09A8 @ =gUnknown_83FA3B0 + ldr r2, _080D09AC @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D098A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D098A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D09A8: .4byte gUnknown_83FA3B0 +_080D09AC: .4byte gUnknown_3005090 + thumb_func_end sub_80D0978 + + thumb_func_start sub_80D09B0 +sub_80D09B0: @ 80D09B0 + push {r4,lr} + adds r4, r0, 0 + bl sub_807B05C + ldr r0, _080D09DC @ =gUnknown_20375F8 + ldr r1, _080D09E0 @ =gUnknown_20371F8 + ldr r2, _080D09E4 @ =0x04000100 + bl CpuSet + ldr r1, _080D09E8 @ =gUnknown_83FA320 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bne _080D09EC + movs r0, 0x2 + strh r0, [r4, 0x8] + movs r0, 0x1 + b _080D09FA + .align 2, 0 +_080D09DC: .4byte gUnknown_20375F8 +_080D09E0: .4byte gUnknown_20371F8 +_080D09E4: .4byte 0x04000100 +_080D09E8: .4byte gUnknown_83FA320 +_080D09EC: + movs r1, 0x4 + bl sub_807741C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 +_080D09FA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80D09B0 + + thumb_func_start sub_80D0A00 +sub_80D0A00: @ 80D0A00 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080D0A20 @ =gUnknown_83FA320 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080D0A24 + movs r0, 0 + b _080D0A2C + .align 2, 0 +_080D0A20: .4byte gUnknown_83FA320 +_080D0A24: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 +_080D0A2C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80D0A00 + + thumb_func_start sub_80D0A34 +sub_80D0A34: @ 80D0A34 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080D0A58 @ =gUnknown_83FA368 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0 + bl sub_807741C + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D0A58: .4byte gUnknown_83FA368 + thumb_func_end sub_80D0A34 + + thumb_func_start sub_80D0A5C +sub_80D0A5C: @ 80D0A5C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + strh r0, [r4, 0x26] + ldr r1, _080D0A88 @ =gUnknown_83FA368 + movs r2, 0xA + ldrsh r0, [r4, r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080D0A80 + movs r0, 0x1 + strh r0, [r4, 0x26] +_080D0A80: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D0A88: .4byte gUnknown_83FA368 + thumb_func_end sub_80D0A5C + + thumb_func_start sub_80D0A8C +sub_80D0A8C: @ 80D0A8C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, _080D0AC0 @ =gUnknown_3005090 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _080D0AC4 + adds r0, r2, 0x1 + strh r0, [r1, 0x8] + movs r0, 0x2 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x2 + bl sub_80D3C40 + b _080D0AD4 + .align 2, 0 +_080D0AC0: .4byte gUnknown_3005090 +_080D0AC4: + bl sub_80D3CA4 + lsls r0, 24 + cmp r0, 0 + beq _080D0AD4 + adds r0, r4, 0 + bl sub_8077508 +_080D0AD4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D0A8C + + thumb_func_start sub_80D0ADC +sub_80D0ADC: @ 80D0ADC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D0B0C @ =gUnknown_83FA3C0 + ldr r2, _080D0B10 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D0AEE: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D0AEE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0B0C: .4byte gUnknown_83FA3C0 +_080D0B10: .4byte gUnknown_3005090 + thumb_func_end sub_80D0ADC + + thumb_func_start sub_80D0B14 +sub_80D0B14: @ 80D0B14 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x4C + movs r1, 0 + bl sub_8000A38 + movs r0, 0xA + movs r1, 0x40 + bl sub_8000AF4 + movs r0, 0xC + movs r1, 0x40 + bl sub_8000AF4 + movs r0, 0xE + movs r1, 0x40 + bl sub_8000AF4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80D0B14 + + thumb_func_start sub_80D0B48 +sub_80D0B48: @ 80D0B48 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r2, [r4, r1] + cmp r2, 0 + beq _080D0B5E + subs r0, 0x1 + strh r0, [r4, 0xA] + b _080D0B9E +_080D0B5E: + movs r0, 0x2 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _080D0B80 + movs r1, 0x1 + negs r1, r1 + str r2, [sp] + adds r0, r1, 0 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 +_080D0B80: + ldrh r1, [r4, 0xC] + movs r0, 0xF + ands r0, r1 + lsls r1, r0, 4 + orrs r1, r0 + movs r0, 0x4C + bl sub_8000A38 + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0xE + ble _080D0B9E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D0B9E: + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80D0B48 + + thumb_func_start sub_80D0BA8 +sub_80D0BA8: @ 80D0BA8 + push {lr} + ldr r0, _080D0BCC @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080D0BC4 + ldr r0, _080D0BD0 @ =sub_80D0ADC + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 +_080D0BC4: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080D0BCC: .4byte gUnknown_2037AB8 +_080D0BD0: .4byte sub_80D0ADC + thumb_func_end sub_80D0BA8 + + thumb_func_start sub_80D0BD4 +sub_80D0BD4: @ 80D0BD4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D0C04 @ =gUnknown_83FA3CC + ldr r2, _080D0C08 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D0BE6: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D0BE6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0C04: .4byte gUnknown_83FA3CC +_080D0C08: .4byte gUnknown_3005090 + thumb_func_end sub_80D0BD4 + + thumb_func_start sub_80D0C0C +sub_80D0C0C: @ 80D0C0C + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0x4 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r0, _080D0C68 @ =gUnknown_2038E80 + ldr r1, _080D0C6C @ =gUnknown_2039A2C + ldr r1, [r1] + movs r2, 0x14 + ldrsh r1, [r1, r2] + str r4, [sp] + movs r2, 0xA0 + str r2, [sp, 0x4] + movs r2, 0 + movs r3, 0x2 + bl sub_80D3E74 + ldr r0, _080D0C70 @ =sub_80D0CF0 + bl sub_80006F4 + ldr r0, _080D0C74 @ =sub_80D0D28 + bl sub_8000700 + movs r0, 0x3 + bl sub_8000B68 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D0C68: .4byte gUnknown_2038E80 +_080D0C6C: .4byte gUnknown_2039A2C +_080D0C70: .4byte sub_80D0CF0 +_080D0C74: .4byte sub_80D0D28 + thumb_func_end sub_80D0C0C + + thumb_func_start sub_80D0C78 +sub_80D0C78: @ 80D0C78 + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, _080D0CE0 @ =gUnknown_2039A2C + ldr r2, [r4] + ldrb r1, [r2] + movs r1, 0 + strb r1, [r2] + ldrh r1, [r0, 0xA] + adds r1, 0x4 + strh r1, [r0, 0xA] + ldrh r1, [r0, 0xC] + adds r1, 0x8 + strh r1, [r0, 0xC] + ldr r3, _080D0CE4 @ =gUnknown_2038700 + ldr r1, [r4] + movs r2, 0x14 + ldrsh r1, [r1, r2] + movs r5, 0xA + ldrsh r2, [r0, r5] + movs r5, 0xC + ldrsh r0, [r0, r5] + str r0, [sp] + movs r0, 0xA0 + str r0, [sp, 0x4] + adds r0, r3, 0 + movs r3, 0x2 + bl sub_80D3E74 + ldr r0, _080D0CE8 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080D0CCA + ldr r0, _080D0CEC @ =sub_80D0BD4 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 +_080D0CCA: + ldr r0, [r4] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D0CE0: .4byte gUnknown_2039A2C +_080D0CE4: .4byte gUnknown_2038700 +_080D0CE8: .4byte gUnknown_2037AB8 +_080D0CEC: .4byte sub_80D0BD4 + thumb_func_end sub_80D0C78 + + thumb_func_start sub_80D0CF0 +sub_80D0CF0: @ 80D0CF0 + push {lr} + bl sub_80D3DF4 + ldr r0, _080D0D18 @ =gUnknown_2039A2C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0 + beq _080D0D14 + ldr r1, _080D0D1C @ =0x040000d4 + ldr r0, _080D0D20 @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D0D24 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D0D14: + pop {r0} + bx r0 + .align 2, 0 +_080D0D18: .4byte gUnknown_2039A2C +_080D0D1C: .4byte 0x040000d4 +_080D0D20: .4byte gUnknown_2038700 +_080D0D24: .4byte 0x800000a0 + thumb_func_end sub_80D0CF0 + + thumb_func_start sub_80D0D28 +sub_80D0D28: @ 80D0D28 + ldr r1, _080D0D48 @ =gUnknown_2038700 + ldr r0, _080D0D4C @ =0x04000006 + ldrh r0, [r0] + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _080D0D50 @ =0x04000014 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_080D0D48: .4byte gUnknown_2038700 +_080D0D4C: .4byte 0x04000006 +_080D0D50: .4byte 0x04000014 + thumb_func_end sub_80D0D28 + + thumb_func_start sub_80D0D54 +sub_80D0D54: @ 80D0D54 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D0D84 @ =gUnknown_83FA3D4 + ldr r2, _080D0D88 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D0D66: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D0D66 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0D84: .4byte gUnknown_83FA3D4 +_080D0D88: .4byte gUnknown_3005090 + thumb_func_end sub_80D0D54 + + thumb_func_start sub_80D0D8C +sub_80D0D8C: @ 80D0D8C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x4 + movs r2, 0 + movs r3, 0x10 + bl sub_8070588 + ldr r0, _080D0DE0 @ =gUnknown_2039A2C + ldr r1, [r0] + ldr r0, _080D0DE4 @ =gUnknown_2038E80 + movs r2, 0x16 + ldrsh r1, [r1, r2] + movs r2, 0xA0 + lsls r2, 1 + bl memset + ldr r0, _080D0DE8 @ =sub_80D0E80 + bl sub_80006F4 + ldr r0, _080D0DEC @ =sub_80D0EB8 + bl sub_8000700 + movs r0, 0x3 + bl sub_8000B68 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D0DE0: .4byte gUnknown_2039A2C +_080D0DE4: .4byte gUnknown_2038E80 +_080D0DE8: .4byte sub_80D0E80 +_080D0DEC: .4byte sub_80D0EB8 + thumb_func_end sub_80D0D8C + + thumb_func_start sub_80D0DF0 +sub_80D0DF0: @ 80D0DF0 + push {r4-r7,lr} + ldr r1, _080D0E70 @ =gUnknown_2039A2C + ldr r2, [r1] + ldrb r1, [r2] + movs r1, 0 + strb r1, [r2] + ldrh r4, [r0, 0xA] + ldrh r2, [r0, 0xC] + lsls r3, r2, 16 + asrs r3, 24 + movs r5, 0x84 + lsls r5, 5 + adds r1, r4, r5 + strh r1, [r0, 0xA] + movs r1, 0xC0 + lsls r1, 1 + adds r2, r1 + strh r2, [r0, 0xC] + movs r5, 0 + lsls r7, r3, 16 +_080D0E18: + lsrs r0, r4, 8 + asrs r1, r7, 16 + bl sub_8044E30 + ldr r1, _080D0E74 @ =gUnknown_2038700 + lsls r2, r5, 1 + adds r2, r1 + ldr r6, _080D0E70 @ =gUnknown_2039A2C + ldr r1, [r6] + ldrh r1, [r1, 0x16] + adds r0, r1 + strh r0, [r2] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0x84 + lsls r1, 5 + adds r0, r4, r1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0x9F + bls _080D0E18 + ldr r0, _080D0E78 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080D0E5E + ldr r0, _080D0E7C @ =sub_80D0D54 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 +_080D0E5E: + ldr r0, [r6] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D0E70: .4byte gUnknown_2039A2C +_080D0E74: .4byte gUnknown_2038700 +_080D0E78: .4byte gUnknown_2037AB8 +_080D0E7C: .4byte sub_80D0D54 + thumb_func_end sub_80D0DF0 + + thumb_func_start sub_80D0E80 +sub_80D0E80: @ 80D0E80 + push {lr} + bl sub_80D3DF4 + ldr r0, _080D0EA8 @ =gUnknown_2039A2C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0 + beq _080D0EA4 + ldr r1, _080D0EAC @ =0x040000d4 + ldr r0, _080D0EB0 @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D0EB4 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D0EA4: + pop {r0} + bx r0 + .align 2, 0 +_080D0EA8: .4byte gUnknown_2039A2C +_080D0EAC: .4byte 0x040000d4 +_080D0EB0: .4byte gUnknown_2038700 +_080D0EB4: .4byte 0x800000a0 + thumb_func_end sub_80D0E80 + + thumb_func_start sub_80D0EB8 +sub_80D0EB8: @ 80D0EB8 + ldr r1, _080D0ED8 @ =gUnknown_2038700 + ldr r0, _080D0EDC @ =0x04000006 + ldrh r0, [r0] + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _080D0EE0 @ =0x04000016 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_080D0ED8: .4byte gUnknown_2038700 +_080D0EDC: .4byte 0x04000006 +_080D0EE0: .4byte 0x04000016 + thumb_func_end sub_80D0EB8 + + thumb_func_start sub_80D0EE4 +sub_80D0EE4: @ 80D0EE4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D0F14 @ =gUnknown_83FA3DC + ldr r2, _080D0F18 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D0EF6: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D0EF6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D0F14: .4byte gUnknown_83FA3DC +_080D0F18: .4byte gUnknown_3005090 + thumb_func_end sub_80D0EE4 + + thumb_func_start sub_80D0F1C +sub_80D0F1C: @ 80D0F1C + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + movs r1, 0 + movs r0, 0x10 + strh r0, [r4, 0xA] + strh r1, [r4, 0xC] + strh r1, [r4, 0x10] + movs r0, 0x80 + lsls r0, 7 + strh r0, [r4, 0x12] + ldr r0, _080D0FB8 @ =gUnknown_2039A2C + ldr r2, [r0] + movs r0, 0x3F + strh r0, [r2, 0x2] + strh r1, [r2, 0x4] + movs r0, 0xF0 + strh r0, [r2, 0x6] + movs r0, 0xA0 + strh r0, [r2, 0x8] + ldr r0, _080D0FBC @ =0x00003f41 + strh r0, [r2, 0xE] + ldrh r0, [r4, 0xA] + lsls r0, 8 + ldrh r1, [r4, 0xC] + orrs r0, r1 + strh r0, [r2, 0x10] + movs r1, 0 + add r5, sp, 0x4 + add r6, sp, 0x8 + ldr r3, _080D0FC0 @ =gUnknown_2038E80 + movs r2, 0xF0 +_080D0F64: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9F + bls _080D0F64 + ldr r0, _080D0FC4 @ =sub_80D1370 + bl sub_80006F4 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_80D3E28 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, [sp, 0x4] + ldr r2, _080D0FC8 @ =0x01000400 + mov r0, sp + bl CpuSet + ldr r0, _080D0FCC @ =gUnknown_83F87A0 + ldr r1, [sp, 0x8] + movs r2, 0xB0 + lsls r2, 2 + bl CpuSet + ldr r0, _080D0FD0 @ =gUnknown_83FA638 + movs r1, 0xF0 + movs r2, 0x20 + bl sub_80703EC + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080D0FB8: .4byte gUnknown_2039A2C +_080D0FBC: .4byte 0x00003f41 +_080D0FC0: .4byte gUnknown_2038E80 +_080D0FC4: .4byte sub_80D1370 +_080D0FC8: .4byte 0x01000400 +_080D0FCC: .4byte gUnknown_83F87A0 +_080D0FD0: .4byte gUnknown_83FA638 + thumb_func_end sub_80D0F1C + + thumb_func_start sub_80D0FD4 +sub_80D0FD4: @ 80D0FD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + adds r7, r0, 0 + ldr r5, _080D105C @ =gUnknown_83FA784 + add r1, sp, 0xC + add r0, sp, 0x8 + bl sub_80D3E28 + movs r1, 0 + ldr r0, [sp, 0x8] + mov r9, r0 + ldr r6, _080D1060 @ =gUnknown_2038700 + mov r8, r6 + movs r0, 0xF0 + lsls r0, 8 + mov r12, r0 +_080D0FFA: + movs r0, 0 + lsls r3, r1, 16 + asrs r4, r3, 11 +_080D1000: + lsls r2, r0, 16 + asrs r2, 16 + adds r1, r4, r2 + lsls r1, 1 + add r1, r9 + ldrh r0, [r5] + mov r6, r12 + orrs r0, r6 + strh r0, [r1] + adds r2, 0x1 + lsls r2, 16 + adds r5, 0x2 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0x1D + ble _080D1000 + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080D0FFA + movs r6, 0x10 + ldrsh r2, [r7, r6] + movs r1, 0x12 + ldrsh r0, [r7, r1] + str r0, [sp] + movs r0, 0xA0 + str r0, [sp, 0x4] + mov r0, r8 + movs r1, 0 + movs r3, 0x84 + bl sub_80D3E74 + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] + movs r0, 0x1 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D105C: .4byte gUnknown_83FA784 +_080D1060: .4byte gUnknown_2038700 + thumb_func_end sub_80D0FD4 + + thumb_func_start sub_80D1064 +sub_80D1064: @ 80D1064 + push {r4,r5,lr} + sub sp, 0x8 + adds r3, r0, 0 + ldr r2, _080D10EC @ =gUnknown_2039A2C + ldr r1, [r2] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r1, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + adds r4, r2, 0 + cmp r0, 0 + beq _080D108A + subs r0, r1, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080D1094 +_080D108A: + ldrh r0, [r3, 0xC] + adds r0, 0x1 + strh r0, [r3, 0xC] + movs r0, 0x1 + strh r0, [r3, 0xE] +_080D1094: + ldr r2, [r4] + ldrh r0, [r3, 0xA] + lsls r0, 8 + ldrh r1, [r3, 0xC] + orrs r0, r1 + strh r0, [r2, 0x10] + movs r5, 0xC + ldrsh r0, [r3, r5] + cmp r0, 0xF + ble _080D10AE + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080D10AE: + ldrh r0, [r3, 0x10] + adds r0, 0xC + strh r0, [r3, 0x10] + ldr r0, _080D10F0 @ =0xfffffe80 + adds r1, r0, 0 + ldrh r5, [r3, 0x12] + adds r1, r5 + strh r1, [r3, 0x12] + ldr r0, _080D10F4 @ =gUnknown_2038700 + movs r5, 0x10 + ldrsh r2, [r3, r5] + lsls r1, 16 + asrs r1, 24 + str r1, [sp] + movs r1, 0xA0 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0x84 + bl sub_80D3E74 + ldr r1, [r4] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D10EC: .4byte gUnknown_2039A2C +_080D10F0: .4byte 0xfffffe80 +_080D10F4: .4byte gUnknown_2038700 + thumb_func_end sub_80D1064 + + thumb_func_start sub_80D10F8 +sub_80D10F8: @ 80D10F8 + push {r4,lr} + sub sp, 0x8 + adds r3, r0, 0 + ldr r2, _080D1158 @ =gUnknown_2039A2C + ldr r1, [r2] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r1, [r3, 0xE] + movs r4, 0xE + ldrsh r0, [r3, r4] + cmp r0, 0 + beq _080D111C + subs r0, r1, 0x1 + strh r0, [r3, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080D1126 +_080D111C: + ldrh r0, [r3, 0xA] + subs r0, 0x1 + strh r0, [r3, 0xA] + movs r0, 0x2 + strh r0, [r3, 0xE] +_080D1126: + ldr r2, [r2] + ldrh r0, [r3, 0xA] + lsls r0, 8 + ldrh r1, [r3, 0xC] + orrs r0, r1 + strh r0, [r2, 0x10] + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0 + bne _080D1140 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080D1140: + ldrh r1, [r3, 0x12] + movs r2, 0x12 + ldrsh r0, [r3, r2] + cmp r0, 0 + ble _080D1160 + ldrh r0, [r3, 0x10] + adds r0, 0xC + strh r0, [r3, 0x10] + ldr r4, _080D115C @ =0xfffffe80 + adds r0, r1, r4 + b _080D1162 + .align 2, 0 +_080D1158: .4byte gUnknown_2039A2C +_080D115C: .4byte 0xfffffe80 +_080D1160: + movs r0, 0 +_080D1162: + strh r0, [r3, 0x12] + ldr r0, _080D1194 @ =gUnknown_2038700 + movs r1, 0x10 + ldrsh r2, [r3, r1] + ldrh r1, [r3, 0x12] + lsls r1, 16 + asrs r1, 24 + str r1, [sp] + movs r1, 0xA0 + str r1, [sp, 0x4] + movs r1, 0 + movs r3, 0x84 + bl sub_80D3E74 + ldr r0, _080D1198 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D1194: .4byte gUnknown_2038700 +_080D1198: .4byte gUnknown_2039A2C + thumb_func_end sub_80D10F8 + + thumb_func_start sub_80D119C +sub_80D119C: @ 80D119C + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, _080D11C4 @ =gUnknown_2039A2C + ldr r0, [r0] + ldrb r1, [r0] + movs r2, 0 + strb r2, [r0] + ldrh r1, [r4, 0x12] + movs r3, 0x12 + ldrsh r0, [r4, r3] + cmp r0, 0 + ble _080D11CC + ldrh r0, [r4, 0x10] + adds r0, 0xC + strh r0, [r4, 0x10] + ldr r2, _080D11C8 @ =0xfffffe80 + adds r0, r1, r2 + strh r0, [r4, 0x12] + b _080D11CE + .align 2, 0 +_080D11C4: .4byte gUnknown_2039A2C +_080D11C8: .4byte 0xfffffe80 +_080D11CC: + strh r2, [r4, 0x12] +_080D11CE: + ldr r0, _080D1218 @ =gUnknown_2038700 + movs r3, 0x10 + ldrsh r2, [r4, r3] + ldrh r1, [r4, 0x12] + lsls r1, 16 + asrs r1, 24 + str r1, [sp] + movs r5, 0xA0 + str r5, [sp, 0x4] + movs r1, 0 + movs r3, 0x84 + bl sub_80D3E74 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + bgt _080D1202 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + strh r5, [r4, 0xA] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0xC] + strh r1, [r4, 0xE] +_080D1202: + ldr r0, _080D121C @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D1218: .4byte gUnknown_2038700 +_080D121C: .4byte gUnknown_2039A2C + thumb_func_end sub_80D119C + + thumb_func_start sub_80D1220 +sub_80D1220: @ 80D1220 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D12C4 @ =gUnknown_2039A2C + ldr r0, [r0] + ldrb r1, [r0] + movs r3, 0 + strb r3, [r0] + ldrh r2, [r4, 0xC] + movs r0, 0xC + ldrsh r1, [r4, r0] + ldr r0, _080D12C8 @ =0x000007ff + cmp r1, r0 + bgt _080D1242 + movs r1, 0x80 + lsls r1, 1 + adds r0, r2, r1 + strh r0, [r4, 0xC] +_080D1242: + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080D125E + ldrh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 24 + subs r0, r1, r0 + strh r0, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + bge _080D125E + strh r3, [r4, 0xA] +_080D125E: + ldr r0, _080D12CC @ =gUnknown_2038700 + movs r1, 0xA + ldrsh r3, [r4, r1] + movs r1, 0x78 + movs r2, 0x50 + bl sub_80D3EF0 + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080D129A + ldr r1, _080D12D0 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D12D4 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D12D8 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_80D3E60 + ldr r0, _080D12DC @ =sub_80D0EE4 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 +_080D129A: + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080D12AE + adds r0, r1, 0x1 + strh r0, [r4, 0xE] + ldr r0, _080D12E0 @ =sub_80D139C + bl sub_80006F4 +_080D12AE: + ldr r0, _080D12C4 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D12C4: .4byte gUnknown_2039A2C +_080D12C8: .4byte 0x000007ff +_080D12CC: .4byte gUnknown_2038700 +_080D12D0: .4byte 0x040000b0 +_080D12D4: .4byte 0x0000c5ff +_080D12D8: .4byte 0x00007fff +_080D12DC: .4byte sub_80D0EE4 +_080D12E0: .4byte sub_80D139C + thumb_func_end sub_80D1220 + + thumb_func_start sub_80D12E4 +sub_80D12E4: @ 80D12E4 + push {r4,lr} + ldr r1, _080D1354 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D1358 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D135C @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_80D3DF4 + ldr r4, _080D1360 @ =gUnknown_2039A2C + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _080D131C + ldr r1, _080D1364 @ =0x040000d4 + ldr r0, _080D1368 @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D136C @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D131C: + ldr r0, [r4] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x8] + movs r0, 0x44 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0xE] + movs r0, 0x50 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x10] + movs r0, 0x52 + bl sub_8000A38 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D1354: .4byte 0x040000b0 +_080D1358: .4byte 0x0000c5ff +_080D135C: .4byte 0x00007fff +_080D1360: .4byte gUnknown_2039A2C +_080D1364: .4byte 0x040000d4 +_080D1368: .4byte gUnknown_2038700 +_080D136C: .4byte 0x800000a0 + thumb_func_end sub_80D12E4 + + thumb_func_start sub_80D1370 +sub_80D1370: @ 80D1370 + push {lr} + bl sub_80D12E4 + ldr r1, _080D138C @ =0x040000b0 + ldr r0, _080D1390 @ =gUnknown_2038E80 + str r0, [r1] + ldr r0, _080D1394 @ =0x04000010 + str r0, [r1, 0x4] + ldr r0, _080D1398 @ =0xa2400001 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_080D138C: .4byte 0x040000b0 +_080D1390: .4byte gUnknown_2038E80 +_080D1394: .4byte 0x04000010 +_080D1398: .4byte 0xa2400001 + thumb_func_end sub_80D1370 + + thumb_func_start sub_80D139C +sub_80D139C: @ 80D139C + push {lr} + bl sub_80D12E4 + ldr r1, _080D13B8 @ =0x040000b0 + ldr r0, _080D13BC @ =gUnknown_2038E80 + str r0, [r1] + ldr r0, _080D13C0 @ =0x04000040 + str r0, [r1, 0x4] + ldr r0, _080D13C4 @ =0xa2400001 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_080D13B8: .4byte 0x040000b0 +_080D13BC: .4byte gUnknown_2038E80 +_080D13C0: .4byte 0x04000040 +_080D13C4: .4byte 0xa2400001 + thumb_func_end sub_80D139C + + thumb_func_start sub_80D13C8 +sub_80D13C8: @ 80D13C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D13F8 @ =gUnknown_83FA3F4 + ldr r2, _080D13FC @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D13DA: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D13DA + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D13F8: .4byte gUnknown_83FA3F4 +_080D13FC: .4byte gUnknown_3005090 + thumb_func_end sub_80D13C8 + + thumb_func_start sub_80D1400 +sub_80D1400: @ 80D1400 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + add r0, sp, 0x4 + add r1, sp, 0x8 + bl sub_80D3E28 + ldr r0, _080D1440 @ =gUnknown_83F8D20 + ldr r1, [sp, 0x8] + movs r2, 0x20 + bl CpuSet + movs r0, 0 + str r0, [sp] + ldr r1, [sp, 0x4] + ldr r2, _080D1444 @ =0x05000200 + mov r0, sp + bl CpuSet + ldr r0, _080D1448 @ =gUnknown_83FA638 + movs r1, 0xF0 + movs r2, 0x20 + bl sub_80703EC + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D1440: .4byte gUnknown_83F8D20 +_080D1444: .4byte 0x05000200 +_080D1448: .4byte gUnknown_83FA638 + thumb_func_end sub_80D1400 + + thumb_func_start sub_80D144C +sub_80D144C: @ 80D144C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + adds r7, r0, 0 + ldr r1, _080D14CC @ =gUnknown_83FA400 + mov r0, sp + movs r2, 0x4 + bl memcpy + add r4, sp, 0x4 + ldr r1, _080D14D0 @ =gUnknown_83FA404 + adds r0, r4, 0 + movs r2, 0xA + bl memcpy + bl sub_8044EC8 + movs r5, 0x1 + ands r5, r0 + movs r1, 0 + mov r8, r4 + ldr r6, _080D14D4 @ =gUnknown_20386E0 +_080D147A: + lsls r5, 16 + asrs r5, 16 + lsls r0, r5, 1 + add r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + str r0, [r6] + lsls r4, r1, 16 + asrs r4, 16 + lsls r0, r4, 5 + adds r0, 0x10 + str r0, [r6, 0x4] + str r5, [r6, 0x8] + lsls r0, r4, 1 + add r0, r8 + movs r1, 0 + ldrsh r0, [r0, r1] + str r0, [r6, 0xC] + movs r0, 0x2D + bl sub_8083444 + adds r4, 0x1 + lsls r4, 16 + movs r0, 0x1 + eors r5, r0 + lsls r5, 16 + lsrs r5, 16 + lsrs r1, r4, 16 + asrs r4, 16 + cmp r4, 0x4 + ble _080D147A + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] + movs r0, 0 + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D14CC: .4byte gUnknown_83FA400 +_080D14D0: .4byte gUnknown_83FA404 +_080D14D4: .4byte gUnknown_20386E0 + thumb_func_end sub_80D144C + + thumb_func_start sub_80D14D8 +sub_80D14D8: @ 80D14D8 + push {lr} + movs r0, 0x2D + bl sub_808382C + lsls r0, 24 + cmp r0, 0 + bne _080D14F8 + bl sub_80D3E60 + ldr r0, _080D1500 @ =sub_80D13C8 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 +_080D14F8: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080D1500: .4byte sub_80D13C8 + thumb_func_end sub_80D14D8 + + thumb_func_start sub_80D1504 +sub_80D1504: @ 80D1504 + push {r4,r5,lr} + ldr r0, _080D1560 @ =gUnknown_83FA5CC + ldr r5, _080D1564 @ =gUnknown_20386E0 + movs r2, 0 + ldrsh r1, [r5, r2] + movs r3, 0x4 + ldrsh r2, [r5, r3] + movs r3, 0 + bl sub_8006FE0 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080D1568 @ =gUnknown_202063C + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r4, r1 + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x5] + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, [r5, 0x8] + strh r0, [r4, 0x2E] + ldr r0, [r5, 0xC] + strh r0, [r4, 0x30] + ldr r0, _080D156C @ =0x0000ffff + strh r0, [r4, 0x32] + adds r0, r4, 0 + bl sub_800860C + ldrb r1, [r5, 0x8] + adds r0, r4, 0 + bl sub_800843C + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D1560: .4byte gUnknown_83FA5CC +_080D1564: .4byte gUnknown_20386E0 +_080D1568: .4byte gUnknown_202063C +_080D156C: .4byte 0x0000ffff + thumb_func_end sub_80D1504 + + thumb_func_start sub_80D1570 +sub_80D1570: @ 80D1570 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _080D1590 @ =gUnknown_83FA40E + mov r0, sp + movs r2, 0x4 + bl memcpy + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080D1594 + subs r0, r1, 0x1 + strh r0, [r4, 0x30] + b _080D162A + .align 2, 0 +_080D1590: .4byte gUnknown_83FA40E +_080D1594: + ldrh r0, [r4, 0x20] + lsls r1, r0, 16 + lsrs r0, r1, 16 + cmp r0, 0xF0 + bhi _080D1606 + asrs r0, r1, 19 + lsls r0, 16 + ldrh r1, [r4, 0x22] + lsls r1, 16 + asrs r1, 19 + lsls r1, 16 + lsrs r6, r1, 16 + lsrs r1, r0, 16 + asrs r5, r0, 16 + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r5, r0 + beq _080D1606 + strh r1, [r4, 0x32] + movs r0, 0x8 + bl sub_8000AC4 + lsls r0, 16 + lsrs r0, 24 + movs r1, 0x1F + ands r0, r1 + lsls r0, 11 + movs r1, 0xC0 + lsls r1, 19 + adds r0, r1 + lsls r2, r6, 16 + asrs r2, 16 + subs r1, r2, 0x2 + lsls r1, 5 + adds r1, r5 + lsls r1, 1 + adds r1, r0 + ldr r6, _080D1634 @ =0x0000f001 + adds r3, r6, 0 + strh r3, [r1] + subs r1, r2, 0x1 + lsls r1, 5 + adds r1, r5 + lsls r1, 1 + adds r1, r0 + strh r3, [r1] + lsls r1, r2, 5 + adds r1, r5 + lsls r1, 1 + adds r1, r0 + strh r3, [r1] + adds r2, 0x1 + lsls r2, 5 + adds r2, r5 + lsls r2, 1 + adds r2, r0 + strh r3, [r2] +_080D1606: + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + adds r0, 0xF + lsls r0, 16 + movs r1, 0x87 + lsls r1, 17 + cmp r0, r1 + bls _080D162A + adds r0, r4, 0 + movs r1, 0x2D + bl sub_80836D8 +_080D162A: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D1634: .4byte 0x0000f001 + thumb_func_end sub_80D1570 + + thumb_func_start sub_80D1638 +sub_80D1638: @ 80D1638 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D1668 @ =gUnknown_83FA414 + ldr r2, _080D166C @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D164A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D164A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1668: .4byte gUnknown_83FA414 +_080D166C: .4byte gUnknown_3005090 + thumb_func_end sub_80D1638 + + thumb_func_start sub_80D1670 +sub_80D1670: @ 80D1670 + push {r4,lr} + adds r4, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + ldr r0, _080D16C4 @ =gUnknown_2039A2C + ldr r1, [r0] + movs r0, 0 + strh r0, [r1, 0x2] + movs r0, 0x3F + strh r0, [r1, 0x4] + ldr r0, _080D16C8 @ =0x0000f0f1 + strh r0, [r1, 0x6] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r3, _080D16CC @ =gUnknown_2038E80 + ldr r2, _080D16D0 @ =0x0000f3f4 +_080D1696: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9F + bls _080D1696 + ldr r0, _080D16D4 @ =sub_80D1ABC + bl sub_80006F4 + ldr r0, _080D16C4 @ =gUnknown_2039A2C + ldr r1, [r0] + movs r0, 0x78 + strh r0, [r1, 0x2C] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D16C4: .4byte gUnknown_2039A2C +_080D16C8: .4byte 0x0000f0f1 +_080D16CC: .4byte gUnknown_2038E80 +_080D16D0: .4byte 0x0000f3f4 +_080D16D4: .4byte sub_80D1ABC + thumb_func_end sub_80D1670 + + thumb_func_start sub_80D16D8 +sub_80D16D8: @ 80D16D8 + push {r4-r7,lr} + sub sp, 0xC + adds r6, r0, 0 + ldr r2, _080D1760 @ =gUnknown_2039A2C + ldr r1, [r2] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x24 + movs r2, 0x2C + ldrsh r3, [r1, r2] + movs r1, 0x1 + negs r1, r1 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + bl sub_80D4088 + ldr r5, _080D1764 @ =gUnknown_2038700 +_080D1708: + ldr r4, _080D1760 @ =gUnknown_2039A2C + ldr r0, [r4] + movs r7, 0x2A + ldrsh r3, [r0, r7] + lsls r3, 1 + adds r3, r5 + ldrh r1, [r0, 0x28] + adds r1, 0x1 + movs r7, 0xF0 + lsls r7, 7 + adds r2, r7, 0 + orrs r1, r2 + strh r1, [r3] + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80D4104 + lsls r0, 24 + cmp r0, 0 + beq _080D1708 + ldr r1, [r4] + ldrh r0, [r1, 0x2C] + adds r0, 0x20 + strh r0, [r1, 0x2C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xEF + ble _080D174C + movs r0, 0 + strh r0, [r1, 0x2E] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] +_080D174C: + ldr r0, [r4] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D1760: .4byte gUnknown_2039A2C +_080D1764: .4byte gUnknown_2038700 + thumb_func_end sub_80D16D8 + + thumb_func_start sub_80D1768 +sub_80D1768: @ 80D1768 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + mov r8, r0 + add r1, sp, 0xC + movs r0, 0 + strb r0, [r1] + ldr r4, _080D17EC @ =gUnknown_2039A2C + ldr r1, [r4] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x24 + movs r2, 0x2E + ldrsh r1, [r1, r2] + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0xF0 + bl sub_80D4088 + mov r9, r4 + mov r7, r9 + add r5, sp, 0xC +_080D17A6: + movs r1, 0x78 + ldr r3, [r7] + ldrh r0, [r3, 0x28] + adds r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + movs r2, 0x2E + ldrsh r0, [r3, r2] + cmp r0, 0x4F + ble _080D17BE + ldrh r1, [r3, 0x28] + movs r4, 0xF0 +_080D17BE: + ldr r6, _080D17F0 @ =gUnknown_2038700 + movs r0, 0x2A + ldrsh r2, [r3, r0] + lsls r2, 1 + adds r2, r6 + lsls r1, 16 + asrs r1, 8 + lsls r0, r4, 16 + asrs r4, r0, 16 + orrs r4, r1 + strh r4, [r2] + ldrb r0, [r5] + cmp r0, 0 + bne _080D17F4 + adds r0, r3, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80D4104 + strb r0, [r5] + b _080D17A6 + .align 2, 0 +_080D17EC: .4byte gUnknown_2039A2C +_080D17F0: .4byte gUnknown_2038700 +_080D17F4: + ldr r1, [r7] + ldrh r0, [r1, 0x2E] + adds r0, 0x10 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0x9F + ble _080D1812 + movs r0, 0xF0 + strh r0, [r1, 0x2C] + mov r1, r8 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080D183A +_080D1812: + movs r3, 0x2A + ldrsh r0, [r1, r3] + cmp r0, r2 + bge _080D183A + adds r3, r4, 0 + ldr r5, _080D1858 @ =gUnknown_2039A2C +_080D181E: + ldr r2, [r5] + ldrh r0, [r2, 0x2A] + adds r0, 0x1 + strh r0, [r2, 0x2A] + lsls r0, 16 + asrs r0, 15 + adds r0, r6 + strh r3, [r0] + movs r4, 0x2A + ldrsh r1, [r2, r4] + movs r4, 0x2E + ldrsh r0, [r2, r4] + cmp r1, r0 + blt _080D181E +_080D183A: + mov r1, r9 + ldr r0, [r1] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D1858: .4byte gUnknown_2039A2C + thumb_func_end sub_80D1768 + + thumb_func_start sub_80D185C +sub_80D185C: @ 80D185C + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + ldr r2, _080D18DC @ =gUnknown_2039A2C + ldr r1, [r2] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r1, [r2] + adds r0, r1, 0 + adds r0, 0x24 + movs r2, 0x2C + ldrsh r3, [r1, r2] + movs r1, 0xA0 + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + bl sub_80D4088 + ldr r5, _080D18E0 @ =gUnknown_2038700 +_080D188A: + ldr r4, _080D18DC @ =gUnknown_2039A2C + ldr r0, [r4] + movs r1, 0x2A + ldrsh r3, [r0, r1] + lsls r3, 1 + adds r3, r5 + ldrh r1, [r0, 0x28] + lsls r1, 8 + movs r2, 0xF0 + orrs r1, r2 + strh r1, [r3] + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80D4104 + lsls r0, 24 + cmp r0, 0 + beq _080D188A + ldr r1, [r4] + ldrh r0, [r1, 0x2C] + subs r0, 0x20 + strh r0, [r1, 0x2C] + lsls r0, 16 + cmp r0, 0 + bgt _080D18C8 + movs r0, 0xA0 + strh r0, [r1, 0x2E] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] +_080D18C8: + ldr r0, [r4] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080D18DC: .4byte gUnknown_2039A2C +_080D18E0: .4byte gUnknown_2038700 + thumb_func_end sub_80D185C + + thumb_func_start sub_80D18E4 +sub_80D18E4: @ 80D18E4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r9, r0 + add r1, sp, 0xC + movs r0, 0 + strb r0, [r1] + ldr r4, _080D196C @ =gUnknown_2039A2C + ldr r1, [r4] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x24 + movs r2, 0x2E + ldrsh r1, [r1, r2] + str r1, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0 + bl sub_80D4088 + ldr r7, _080D1970 @ =gUnknown_2038700 + mov r10, r7 + ldr r0, _080D196C @ =gUnknown_2039A2C + mov r8, r0 + add r6, sp, 0xC +_080D1928: + mov r1, r8 + ldr r4, [r1] + movs r2, 0x2A + ldrsh r0, [r4, r2] + lsls r0, 1 + mov r7, r10 + adds r5, r0, r7 + ldrb r1, [r5] + ldrh r2, [r4, 0x28] + adds r3, r2, 0 + movs r7, 0x2E + ldrsh r0, [r4, r7] + cmp r0, 0x50 + bgt _080D1948 + movs r2, 0x78 + adds r1, r3, 0 +_080D1948: + lsls r0, r2, 16 + asrs r0, 8 + lsls r1, 16 + asrs r1, 16 + orrs r1, r0 + movs r7, 0 + strh r1, [r5] + ldrb r0, [r6] + cmp r0, 0 + bne _080D1974 + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80D4104 + strb r0, [r6] + b _080D1928 + .align 2, 0 +_080D196C: .4byte gUnknown_2039A2C +_080D1970: .4byte gUnknown_2038700 +_080D1974: + mov r0, r8 + ldr r2, [r0] + ldrh r0, [r2, 0x2E] + subs r0, 0x10 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r3, r0, 16 + cmp r3, 0 + bgt _080D1992 + strh r7, [r2, 0x2C] + mov r1, r9 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080D19BC +_080D1992: + movs r4, 0x2A + ldrsh r0, [r2, r4] + cmp r0, r3 + ble _080D19BC + ldr r6, _080D19DC @ =gUnknown_2038700 + adds r3, r1, 0 + ldr r5, _080D19E0 @ =gUnknown_2039A2C +_080D19A0: + ldr r2, [r5] + ldrh r0, [r2, 0x2A] + subs r0, 0x1 + strh r0, [r2, 0x2A] + lsls r0, 16 + asrs r0, 15 + adds r0, r6 + strh r3, [r0] + movs r7, 0x2A + ldrsh r1, [r2, r7] + movs r4, 0x2E + ldrsh r0, [r2, r4] + cmp r1, r0 + bgt _080D19A0 +_080D19BC: + ldr r7, _080D19E0 @ =gUnknown_2039A2C + ldr r0, [r7] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D19DC: .4byte gUnknown_2038700 +_080D19E0: .4byte gUnknown_2039A2C + thumb_func_end sub_80D18E4 + + thumb_func_start sub_80D19E4 +sub_80D19E4: @ 80D19E4 + push {r4-r7,lr} + sub sp, 0xC + adds r7, r0, 0 + ldr r1, _080D1A74 @ =gUnknown_2039A2C + ldr r0, [r1] + ldrb r2, [r0] + movs r2, 0 + strb r2, [r0] + ldr r1, [r1] + adds r0, r1, 0 + adds r0, 0x24 + movs r4, 0x2C + ldrsh r3, [r1, r4] + str r2, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + str r1, [sp, 0x8] + movs r1, 0x78 + movs r2, 0x50 + bl sub_80D4088 + ldr r6, _080D1A78 @ =gUnknown_2038700 +_080D1A10: + movs r2, 0x78 + ldr r5, _080D1A74 @ =gUnknown_2039A2C + ldr r3, [r5] + ldrh r4, [r3, 0x28] + movs r1, 0x28 + ldrsh r0, [r3, r1] + cmp r0, 0x77 + ble _080D1A24 + movs r2, 0 + movs r4, 0xF0 +_080D1A24: + movs r0, 0x2A + ldrsh r1, [r3, r0] + lsls r1, 1 + adds r1, r6 + lsls r2, 8 + lsls r0, r4, 16 + asrs r0, 16 + orrs r0, r2 + strh r0, [r1] + adds r0, r3, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80D4104 + lsls r0, 24 + cmp r0, 0 + beq _080D1A10 + ldr r0, [r5] + ldrh r1, [r0, 0x2C] + adds r1, 0x20 + strh r1, [r0, 0x2C] + movs r1, 0x28 + ldrsh r0, [r0, r1] + cmp r0, 0x78 + ble _080D1A5E + ldrh r0, [r7, 0x8] + adds r0, 0x1 + strh r0, [r7, 0x8] +_080D1A5E: + ldr r0, [r5] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + add sp, 0xC + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D1A74: .4byte gUnknown_2039A2C +_080D1A78: .4byte gUnknown_2038700 + thumb_func_end sub_80D19E4 + + thumb_func_start sub_80D1A7C +sub_80D1A7C: @ 80D1A7C + push {lr} + ldr r1, _080D1AAC @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D1AB0 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D1AB4 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_80D3E60 + ldr r0, _080D1AB8 @ =sub_80D1638 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080D1AAC: .4byte 0x040000b0 +_080D1AB0: .4byte 0x0000c5ff +_080D1AB4: .4byte 0x00007fff +_080D1AB8: .4byte sub_80D1638 + thumb_func_end sub_80D1A7C + + thumb_func_start sub_80D1ABC +sub_80D1ABC: @ 80D1ABC + push {r4,r5,lr} + ldr r5, _080D1B34 @ =0x040000b0 + ldrh r1, [r5, 0xA] + ldr r0, _080D1B38 @ =0x0000c5ff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r1, [r5, 0xA] + ldr r0, _080D1B3C @ =0x00007fff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r0, [r5, 0xA] + bl sub_80D3DF4 + ldr r4, _080D1B40 @ =gUnknown_2039A2C + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _080D1AF4 + ldr r1, _080D1B44 @ =0x040000d4 + ldr r0, _080D1B48 @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D1B4C @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D1AF4: + ldr r0, [r4] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x8] + movs r0, 0x44 + bl sub_8000A38 + ldr r4, _080D1B48 @ =gUnknown_2038700 + movs r0, 0xF0 + lsls r0, 3 + adds r4, r0 + ldrh r1, [r4] + movs r0, 0x40 + bl sub_8000A38 + str r4, [r5] + ldr r0, _080D1B50 @ =0x04000040 + str r0, [r5, 0x4] + ldr r0, _080D1B54 @ =0xa2400001 + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1B34: .4byte 0x040000b0 +_080D1B38: .4byte 0x0000c5ff +_080D1B3C: .4byte 0x00007fff +_080D1B40: .4byte gUnknown_2039A2C +_080D1B44: .4byte 0x040000d4 +_080D1B48: .4byte gUnknown_2038700 +_080D1B4C: .4byte 0x800000a0 +_080D1B50: .4byte 0x04000040 +_080D1B54: .4byte 0xa2400001 + thumb_func_end sub_80D1ABC + + thumb_func_start sub_80D1B58 +sub_80D1B58: @ 80D1B58 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D1B88 @ =gUnknown_83FA430 + ldr r2, _080D1B8C @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D1B6A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D1B6A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1B88: .4byte gUnknown_83FA430 +_080D1B8C: .4byte gUnknown_3005090 + thumb_func_end sub_80D1B58 + + thumb_func_start sub_80D1B90 +sub_80D1B90: @ 80D1B90 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + movs r2, 0 + ldr r4, _080D1BD8 @ =gUnknown_2038E80 + ldr r3, _080D1BDC @ =gUnknown_2039A2C +_080D1BA2: + lsls r1, r2, 1 + adds r1, r4 + ldr r0, [r3] + ldrh r0, [r0, 0x16] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x9F + bls _080D1BA2 + ldr r0, _080D1BE0 @ =sub_80D1CC8 + bl sub_80006F4 + ldr r0, _080D1BE4 @ =sub_80D1D00 + bl sub_8000700 + movs r0, 0x2 + bl sub_8000B68 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D1BD8: .4byte gUnknown_2038E80 +_080D1BDC: .4byte gUnknown_2039A2C +_080D1BE0: .4byte sub_80D1CC8 +_080D1BE4: .4byte sub_80D1D00 + thumb_func_end sub_80D1B90 + + thumb_func_start sub_80D1BE8 +sub_80D1BE8: @ 80D1BE8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r6, r0, 0 + ldr r0, _080D1CB4 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r2, [r6, 0xC] + lsls r1, r2, 16 + asrs r0, r1, 24 + lsls r0, 16 + lsrs r3, r0, 16 + ldrh r4, [r6, 0xA] + movs r0, 0xC0 + lsls r0, 1 + mov r8, r0 + movs r5, 0x80 + lsls r5, 3 + adds r0, r4, r5 + strh r0, [r6, 0xA] + ldr r0, _080D1CB8 @ =0x1fff0000 + cmp r1, r0 + bgt _080D1C24 + movs r1, 0xC0 + lsls r1, 1 + adds r0, r2, r1 + strh r0, [r6, 0xC] +_080D1C24: + movs r5, 0 + lsls r7, r3, 16 +_080D1C28: + lsrs r0, r4, 8 + asrs r1, r7, 16 + bl sub_8044E30 + ldr r1, _080D1CBC @ =gUnknown_2038700 + lsls r2, r5, 1 + adds r2, r1 + ldr r1, _080D1CB4 @ =gUnknown_2039A2C + ldr r1, [r1] + ldrh r1, [r1, 0x16] + adds r0, r1 + strh r0, [r2] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r8 + adds r0, r4, r1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r5, 0x9F + bls _080D1C28 + ldrh r0, [r6, 0xE] + adds r0, 0x1 + strh r0, [r6, 0xE] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x29 + bne _080D1C78 + ldrh r0, [r6, 0x10] + adds r0, 0x1 + strh r0, [r6, 0x10] + movs r0, 0x1 + negs r0, r0 + movs r1, 0x8 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r3, 0x10 + bl sub_8070588 +_080D1C78: + movs r5, 0x10 + ldrsh r0, [r6, r5] + cmp r0, 0 + beq _080D1C9A + ldr r0, _080D1CC0 @ =gUnknown_2037AB8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080D1C9A + ldr r0, _080D1CC4 @ =sub_80D1B58 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 +_080D1C9A: + ldr r0, _080D1CB4 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D1CB4: .4byte gUnknown_2039A2C +_080D1CB8: .4byte 0x1fff0000 +_080D1CBC: .4byte gUnknown_2038700 +_080D1CC0: .4byte gUnknown_2037AB8 +_080D1CC4: .4byte sub_80D1B58 + thumb_func_end sub_80D1BE8 + + thumb_func_start sub_80D1CC8 +sub_80D1CC8: @ 80D1CC8 + push {lr} + bl sub_80D3DF4 + ldr r0, _080D1CF0 @ =gUnknown_2039A2C + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, 0 + beq _080D1CEC + ldr r1, _080D1CF4 @ =0x040000d4 + ldr r0, _080D1CF8 @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D1CFC @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D1CEC: + pop {r0} + bx r0 + .align 2, 0 +_080D1CF0: .4byte gUnknown_2039A2C +_080D1CF4: .4byte 0x040000d4 +_080D1CF8: .4byte gUnknown_2038700 +_080D1CFC: .4byte 0x800000a0 + thumb_func_end sub_80D1CC8 + + thumb_func_start sub_80D1D00 +sub_80D1D00: @ 80D1D00 + ldr r1, _080D1D20 @ =gUnknown_2038700 + ldr r0, _080D1D24 @ =0x04000006 + ldrh r0, [r0] + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _080D1D28 @ =0x04000016 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_080D1D20: .4byte gUnknown_2038700 +_080D1D24: .4byte 0x04000006 +_080D1D28: .4byte 0x04000016 + thumb_func_end sub_80D1D00 + + thumb_func_start sub_80D1D2C +sub_80D1D2C: @ 80D1D2C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D1D5C @ =gUnknown_83FA438 + ldr r2, _080D1D60 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D1D3E: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D1D3E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1D5C: .4byte gUnknown_83FA438 +_080D1D60: .4byte gUnknown_3005090 + thumb_func_end sub_80D1D2C + + thumb_func_start sub_80D1D64 +sub_80D1D64: @ 80D1D64 + push {r4,lr} + adds r4, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + ldr r0, _080D1DB0 @ =gUnknown_2039A2C + ldr r1, [r0] + movs r2, 0 + movs r0, 0x3F + strh r0, [r1, 0x2] + strh r2, [r1, 0x4] + movs r0, 0xF0 + strh r0, [r1, 0x6] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r3, _080D1DB4 @ =gUnknown_2038E80 + movs r2, 0xF2 +_080D1D8A: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9F + bls _080D1D8A + ldr r0, _080D1DB8 @ =sub_80D1E98 + bl sub_80006F4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D1DB0: .4byte gUnknown_2039A2C +_080D1DB4: .4byte gUnknown_2038E80 +_080D1DB8: .4byte sub_80D1E98 + thumb_func_end sub_80D1D64 + + thumb_func_start sub_80D1DBC +sub_80D1DBC: @ 80D1DBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + ldr r0, _080D1E50 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r7, _080D1E54 @ =gUnknown_2038700 + ldrh r0, [r4, 0xC] + ldrb r5, [r4, 0xC] + adds r0, 0x10 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0xA] + adds r0, 0x8 + strh r0, [r4, 0xA] + movs r6, 0 + movs r0, 0x1 + mov r8, r0 +_080D1DE4: + adds r0, r5, 0 + movs r1, 0x28 + bl sub_8044E30 + ldrh r1, [r4, 0xA] + adds r0, r1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r0, 0 + bge _080D1DFA + movs r1, 0 +_080D1DFA: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0xF0 + ble _080D1E04 + movs r1, 0xF0 +_080D1E04: + lsls r0, r1, 16 + asrs r0, 16 + lsls r1, r0, 8 + movs r2, 0xF1 + orrs r1, r2 + strh r1, [r7] + cmp r0, 0xEF + bgt _080D1E18 + movs r0, 0 + mov r8, r0 +_080D1E18: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, 0x2 + cmp r6, 0x9F + bls _080D1DE4 + mov r1, r8 + cmp r1, 0 + beq _080D1E36 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D1E36: + ldr r0, _080D1E50 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D1E50: .4byte gUnknown_2039A2C +_080D1E54: .4byte gUnknown_2038700 + thumb_func_end sub_80D1DBC + + thumb_func_start sub_80D1E58 +sub_80D1E58: @ 80D1E58 + push {lr} + ldr r1, _080D1E88 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D1E8C @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D1E90 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_80D3E60 + ldr r0, _080D1E94 @ =sub_80D1D2C + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080D1E88: .4byte 0x040000b0 +_080D1E8C: .4byte 0x0000c5ff +_080D1E90: .4byte 0x00007fff +_080D1E94: .4byte sub_80D1D2C + thumb_func_end sub_80D1E58 + + thumb_func_start sub_80D1E98 +sub_80D1E98: @ 80D1E98 + push {r4,r5,lr} + ldr r4, _080D1F04 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _080D1F08 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _080D1F0C @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_80D3DF4 + ldr r5, _080D1F10 @ =gUnknown_2039A2C + ldr r0, [r5] + ldrb r0, [r0] + cmp r0, 0 + beq _080D1ED0 + ldr r1, _080D1F14 @ =0x040000d4 + ldr r0, _080D1F18 @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D1F1C @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D1ED0: + ldr r0, [r5] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r5] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r5] + ldrh r1, [r0, 0x8] + movs r0, 0x44 + bl sub_8000A38 + ldr r0, _080D1F20 @ =gUnknown_2038E80 + str r0, [r4] + ldr r0, _080D1F24 @ =0x04000040 + str r0, [r4, 0x4] + ldr r0, _080D1F28 @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1F04: .4byte 0x040000b0 +_080D1F08: .4byte 0x0000c5ff +_080D1F0C: .4byte 0x00007fff +_080D1F10: .4byte gUnknown_2039A2C +_080D1F14: .4byte 0x040000d4 +_080D1F18: .4byte gUnknown_2038700 +_080D1F1C: .4byte 0x800000a0 +_080D1F20: .4byte gUnknown_2038E80 +_080D1F24: .4byte 0x04000040 +_080D1F28: .4byte 0xa2400001 + thumb_func_end sub_80D1E98 + + thumb_func_start sub_80D1F2C +sub_80D1F2C: @ 80D1F2C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D1F5C @ =gUnknown_83FA464 + ldr r2, _080D1F60 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D1F3E: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D1F3E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D1F5C: .4byte gUnknown_83FA464 +_080D1F60: .4byte gUnknown_3005090 + thumb_func_end sub_80D1F2C + + thumb_func_start sub_80D1F64 +sub_80D1F64: @ 80D1F64 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + movs r0, 0 + mov r10, r0 + movs r1, 0xA0 + lsls r1, 17 + ldr r4, _080D1FD8 @ =gUnknown_2038E80 + ldr r3, _080D1FDC @ =0x000003bf + movs r2, 0x78 +_080D1F8E: + asrs r0, r1, 16 + lsls r1, r0, 1 + adds r1, r4 + strh r2, [r1] + adds r0, 0x1 + lsls r1, r0, 16 + asrs r0, r1, 16 + cmp r0, r3 + ble _080D1F8E + lsls r0, r5, 16 + movs r1, 0 + mov r9, r1 + str r0, [sp, 0xC] + cmp r0, 0 + bgt _080D1FAE + b _080D221A +_080D1FAE: + mov r3, r10 + lsrs r2, r3, 3 + ldr r4, [sp] + adds r0, r2, r4 + lsls r0, 16 + lsrs r3, r0, 16 + mov r0, r10 + adds r0, 0x1 + asrs r1, r0, 3 + str r0, [sp, 0x8] + cmp r2, r1 + beq _080D1FE0 + lsls r1, r3, 16 + movs r6, 0x80 + lsls r6, 9 + adds r0, r1, r6 + lsrs r0, 16 + mov r8, r0 + adds r0, r1, 0 + b _080D1FE6 + .align 2, 0 +_080D1FD8: .4byte gUnknown_2038E80 +_080D1FDC: .4byte 0x000003bf +_080D1FE0: + lsls r0, r3, 16 + lsrs r1, r0, 16 + mov r8, r1 +_080D1FE6: + asrs r4, r0, 16 + mov r0, r10 + adds r1, r4, 0 + bl sub_8044E30 + movs r5, 0x50 + subs r0, r5, r0 + lsls r0, 16 + lsrs r2, r0, 16 + mov r0, r10 + adds r1, r4, 0 + str r2, [sp, 0x10] + bl sub_8044E4C + adds r0, 0x78 + lsls r0, 16 + lsrs r7, r0, 16 + ldr r6, [sp, 0x8] + mov r3, r8 + lsls r4, r3, 16 + asrs r4, 16 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_8044E30 + subs r5, r0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_8044E4C + adds r0, 0x78 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r2, [sp, 0x10] + lsls r0, r2, 16 + asrs r1, r0, 16 + cmp r1, 0 + bge _080D203E + lsls r0, r5, 16 + cmp r0, 0 + bge _080D203E + b _080D21F8 +_080D203E: + cmp r1, 0x9F + ble _080D204C + lsls r0, r5, 16 + asrs r0, 16 + cmp r0, 0x9F + ble _080D204C + b _080D21F8 +_080D204C: + cmp r1, 0 + bge _080D2052 + movs r2, 0 +_080D2052: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x9F + ble _080D205C + movs r2, 0x9F +_080D205C: + lsls r0, r7, 16 + cmp r0, 0 + bge _080D2064 + movs r7, 0 +_080D2064: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080D206E + movs r7, 0xFF +_080D206E: + lsls r0, r5, 16 + cmp r0, 0 + bge _080D2076 + movs r5, 0 +_080D2076: + lsls r0, r5, 16 + asrs r0, 16 + cmp r0, 0x9F + ble _080D2080 + movs r5, 0x9F +_080D2080: + lsls r0, r3, 16 + cmp r0, 0 + bge _080D2088 + movs r3, 0 +_080D2088: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080D2092 + movs r3, 0xFF +_080D2092: + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, r2, 16 + asrs r2, r1, 16 + subs r0, r2 + lsls r0, 16 + lsrs r5, r0, 16 + mov r0, r10 + subs r0, 0x40 + lsls r0, 24 + adds r6, r1, 0 + cmp r0, 0 + blt _080D2158 + movs r4, 0xA0 + lsls r4, 1 + adds r0, r2, r4 + lsls r0, 1 + ldr r1, _080D20E8 @ =gUnknown_2038E80 + adds r0, r1 + strh r7, [r0] + lsls r0, r5, 16 + adds r4, r0, 0 + cmp r4, 0 + bne _080D20C4 + b _080D21F8 +_080D20C4: + lsls r0, r3, 16 + asrs r0, 16 + lsls r1, r7, 16 + asrs r2, r1, 16 + subs r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + mov r8, r0 + movs r0, 0x1 + negs r0, r0 + cmp r8, r0 + bge _080D20EC + cmp r2, 0x1 + ble _080D20EC + subs r0, r2, 0x1 + b _080D20FC + .align 2, 0 +_080D20E8: .4byte gUnknown_2038E80 +_080D20EC: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D2100 + asrs r0, r1, 16 + cmp r0, 0xFE + bgt _080D2100 + adds r0, 0x1 +_080D20FC: + lsls r0, 16 + lsrs r7, r0, 16 +_080D2100: + adds r0, r4, 0 + asrs r1, r0, 16 + cmp r1, 0 + bge _080D212C + asrs r2, r6, 16 + ldr r3, _080D2128 @ =gUnknown_2038E80 +_080D210C: + asrs r1, r0, 16 + adds r0, r2, r1 + movs r4, 0xA0 + lsls r4, 1 + adds r0, r4 + lsls r0, 1 + adds r0, r3 + strh r7, [r0] + adds r1, 0x1 + lsls r0, r1, 16 + cmp r0, 0 + blt _080D210C + b _080D21F8 + .align 2, 0 +_080D2128: .4byte gUnknown_2038E80 +_080D212C: + cmp r1, 0 + ble _080D21F8 + asrs r2, r6, 16 + ldr r3, _080D2154 @ =gUnknown_2038E80 +_080D2134: + lsls r1, r5, 16 + asrs r1, 16 + adds r0, r2, r1 + movs r6, 0xA0 + lsls r6, 1 + adds r0, r6 + lsls r0, 1 + adds r0, r3 + strh r7, [r0] + subs r1, 0x1 + lsls r1, 16 + lsrs r5, r1, 16 + cmp r1, 0 + bgt _080D2134 + b _080D21F8 + .align 2, 0 +_080D2154: .4byte gUnknown_2038E80 +_080D2158: + movs r1, 0xF0 + lsls r1, 1 + adds r0, r2, r1 + lsls r0, 1 + ldr r2, _080D2190 @ =gUnknown_2038E80 + adds r0, r2 + strh r7, [r0] + lsls r0, r5, 16 + adds r4, r0, 0 + cmp r4, 0 + beq _080D21F8 + lsls r0, r3, 16 + asrs r0, 16 + lsls r1, r7, 16 + asrs r2, r1, 16 + subs r0, r2 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + mov r8, r0 + movs r0, 0x1 + negs r0, r0 + cmp r8, r0 + bge _080D2194 + cmp r2, 0x1 + ble _080D2194 + subs r0, r2, 0x1 + b _080D21A4 + .align 2, 0 +_080D2190: .4byte gUnknown_2038E80 +_080D2194: + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _080D21A8 + asrs r0, r1, 16 + cmp r0, 0xFE + bgt _080D21A8 + adds r0, 0x1 +_080D21A4: + lsls r0, 16 + lsrs r7, r0, 16 +_080D21A8: + adds r0, r4, 0 + asrs r1, r0, 16 + cmp r1, 0 + bge _080D21D4 + asrs r2, r6, 16 + ldr r3, _080D21D0 @ =gUnknown_2038E80 +_080D21B4: + asrs r1, r0, 16 + adds r0, r2, r1 + movs r4, 0xF0 + lsls r4, 1 + adds r0, r4 + lsls r0, 1 + adds r0, r3 + strh r7, [r0] + adds r1, 0x1 + lsls r0, r1, 16 + cmp r0, 0 + blt _080D21B4 + b _080D21F8 + .align 2, 0 +_080D21D0: .4byte gUnknown_2038E80 +_080D21D4: + cmp r1, 0 + ble _080D21F8 + asrs r2, r6, 16 + ldr r3, _080D2270 @ =gUnknown_2038E80 +_080D21DC: + lsls r1, r5, 16 + asrs r1, 16 + adds r0, r2, r1 + movs r6, 0xF0 + lsls r6, 1 + adds r0, r6 + lsls r0, 1 + adds r0, r3 + strh r7, [r0] + subs r1, 0x1 + lsls r1, 16 + lsrs r5, r1, 16 + cmp r1, 0 + bgt _080D21DC +_080D21F8: + mov r1, r9 + lsls r0, r1, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + ldr r3, [sp, 0x8] + lsls r1, r3, 24 + lsrs r1, 24 + mov r10, r1 + lsrs r4, r0, 16 + mov r9, r4 + asrs r0, 16 + ldr r6, [sp, 0xC] + asrs r1, r6, 12 + cmp r0, r1 + bge _080D221A + b _080D1FAE +_080D221A: + ldr r0, [sp, 0x4] + cmp r0, 0 + beq _080D222C + movs r0, 0xC0 + lsls r0, 10 + ldr r1, [sp, 0xC] + ands r0, r1 + cmp r0, 0 + bne _080D2274 +_080D222C: + movs r2, 0 + mov r9, r2 + ldr r4, _080D2270 @ =gUnknown_2038E80 + movs r5, 0xA0 + lsls r5, 1 +_080D2236: + mov r3, r9 + lsls r1, r3, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldr r6, [sp, 0x4] + adds r3, r6 + lsls r3, 1 + adds r3, r4 + adds r0, r1, r5 + lsls r0, 1 + adds r0, r4 + ldrh r2, [r0] + lsls r2, 8 + movs r6, 0xF0 + lsls r6, 1 + adds r0, r1, r6 + lsls r0, 1 + adds r0, r4 + ldrh r0, [r0] + orrs r2, r0 + strh r2, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r0, r1, 16 + mov r9, r0 + asrs r1, 16 + cmp r1, 0x9F + ble _080D2236 + b _080D251C + .align 2, 0 +_080D2270: .4byte gUnknown_2038E80 +_080D2274: + ldr r1, [sp, 0xC] + asrs r4, r1, 16 + lsls r0, r4, 20 + asrs r0, 16 + lsls r5, r4, 1 + ldr r2, [sp] + lsls r1, r2, 16 + asrs r1, 16 + adds r1, r5 + lsls r1, 16 + asrs r1, 16 + bl sub_8044E30 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r4, 0 + bge _080D2298 + adds r4, 0x3 +_080D2298: + asrs r0, r4, 2 + cmp r0, 0x1 + beq _080D234C + cmp r0, 0x1 + bgt _080D22A8 + cmp r0, 0 + beq _080D22B6 + b _080D24DA +_080D22A8: + cmp r0, 0x2 + bne _080D22AE + b _080D23CC +_080D22AE: + cmp r0, 0x3 + bne _080D22B4 + b _080D2466 +_080D22B4: + b _080D24DA +_080D22B6: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x50 + ble _080D22C0 + movs r2, 0x50 +_080D22C0: + mov r9, r2 + lsls r1, r2, 16 + cmp r1, 0 + bgt _080D22CA + b _080D24DA +_080D22CA: + ldr r0, _080D2320 @ =gUnknown_83FA444 + adds r0, r5, r0 + movs r3, 0 + ldrsh r4, [r0, r3] + ldr r6, _080D2324 @ =gUnknown_2038E80 +_080D22D4: + ldr r0, _080D2328 @ =gUnknown_2039A2C + ldr r5, [r0] + asrs r2, r1, 16 + adds r0, r2, 0 + muls r0, r4 + asrs r0, 8 + adds r0, 0x78 + lsls r1, r0, 16 + lsrs r7, r1, 16 + strh r0, [r5, 0x28] + lsls r1, r7, 16 + lsrs r0, r1, 16 + cmp r0, 0xFF + bhi _080D2334 + movs r3, 0xC8 + lsls r3, 1 + adds r0, r3, 0 + subs r0, r2 + strh r0, [r5, 0x14] + adds r0, r3, 0 + subs r0, r2 + lsls r0, 1 + adds r3, r0, r6 + ldrh r0, [r3] + strh r0, [r5, 0x38] + movs r0, 0x8C + lsls r0, 2 + subs r0, r2 + lsls r0, 1 + adds r2, r0, r6 + ldrh r0, [r2] + asrs r1, 16 + cmp r0, r1 + bge _080D232C + movs r0, 0x78 + strh r0, [r2] + b _080D2334 + .align 2, 0 +_080D2320: .4byte gUnknown_83FA444 +_080D2324: .4byte gUnknown_2038E80 +_080D2328: .4byte gUnknown_2039A2C +_080D232C: + ldrh r0, [r3] + cmp r0, r1 + bge _080D2334 + strh r7, [r3] +_080D2334: + mov r1, r9 + lsls r0, r1, 16 + ldr r2, _080D2348 @ =0xffff0000 + adds r0, r2 + lsrs r0, 16 + mov r9, r0 + lsls r1, r0, 16 + cmp r1, 0 + bgt _080D22D4 + b _080D24DA + .align 2, 0 +_080D2348: .4byte 0xffff0000 +_080D234C: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x50 + ble _080D2356 + movs r2, 0x50 +_080D2356: + mov r9, r2 + lsls r1, r2, 16 + cmp r1, 0 + bgt _080D2360 + b _080D24DA +_080D2360: + ldr r0, _080D23BC @ =gUnknown_83FA444 + adds r0, r5, r0 + movs r3, 0 + ldrsh r4, [r0, r3] + ldr r6, _080D23C0 @ =gUnknown_2038E80 +_080D236A: + ldr r0, _080D23C4 @ =gUnknown_2039A2C + ldr r3, [r0] + asrs r2, r1, 16 + adds r0, r2, 0 + muls r0, r4 + asrs r0, 8 + adds r0, 0x78 + lsls r1, r0, 16 + lsrs r7, r1, 16 + strh r0, [r3, 0x28] + lsls r5, r7, 16 + lsrs r0, r5, 16 + cmp r0, 0xFF + bhi _080D23A6 + movs r1, 0xC8 + lsls r1, 1 + adds r0, r1, 0 + subs r0, r2 + strh r0, [r3, 0x14] + adds r0, r1, 0 + subs r0, r2 + lsls r0, 1 + adds r2, r0, r6 + ldrh r0, [r2] + strh r0, [r3, 0x38] + ldrh r1, [r2] + asrs r0, r5, 16 + cmp r1, r0 + bge _080D23A6 + strh r7, [r2] +_080D23A6: + mov r2, r9 + lsls r0, r2, 16 + ldr r3, _080D23C8 @ =0xffff0000 + adds r0, r3 + lsrs r0, 16 + mov r9, r0 + lsls r1, r0, 16 + cmp r1, 0 + bgt _080D236A + b _080D24DA + .align 2, 0 +_080D23BC: .4byte gUnknown_83FA444 +_080D23C0: .4byte gUnknown_2038E80 +_080D23C4: .4byte gUnknown_2039A2C +_080D23C8: .4byte 0xffff0000 +_080D23CC: + lsls r0, r2, 16 + asrs r0, 16 + movs r1, 0x4F + negs r1, r1 + cmp r0, r1 + bge _080D23DA + ldr r2, _080D2438 @ =0x0000ffb1 +_080D23DA: + mov r9, r2 + lsls r1, r2, 16 + cmp r1, 0 + bgt _080D24DA + ldr r0, _080D243C @ =gUnknown_83FA444 + adds r0, r5, r0 + movs r6, 0 + ldrsh r4, [r0, r6] + ldr r6, _080D2440 @ =gUnknown_2038E80 +_080D23EC: + ldr r0, _080D2444 @ =gUnknown_2039A2C + ldr r5, [r0] + asrs r2, r1, 16 + adds r0, r2, 0 + muls r0, r4 + asrs r0, 8 + adds r0, 0x78 + lsls r1, r0, 16 + lsrs r7, r1, 16 + strh r0, [r5, 0x28] + lsls r1, r7, 16 + lsrs r0, r1, 16 + cmp r0, 0xFF + bhi _080D2450 + movs r3, 0x8C + lsls r3, 2 + adds r0, r3, 0 + subs r0, r2 + strh r0, [r5, 0x14] + adds r0, r3, 0 + subs r0, r2 + lsls r0, 1 + adds r3, r0, r6 + ldrh r0, [r3] + strh r0, [r5, 0x38] + movs r0, 0xC8 + lsls r0, 1 + subs r0, r2 + lsls r0, 1 + adds r2, r0, r6 + ldrh r0, [r2] + asrs r1, 16 + cmp r0, r1 + blt _080D2448 + movs r0, 0x78 + strh r0, [r2] + b _080D2450 + .align 2, 0 +_080D2438: .4byte 0x0000ffb1 +_080D243C: .4byte gUnknown_83FA444 +_080D2440: .4byte gUnknown_2038E80 +_080D2444: .4byte gUnknown_2039A2C +_080D2448: + ldrh r0, [r3] + cmp r0, r1 + ble _080D2450 + strh r7, [r3] +_080D2450: + mov r1, r9 + lsls r0, r1, 16 + movs r2, 0x80 + lsls r2, 9 + adds r0, r2 + lsrs r0, 16 + mov r9, r0 + lsls r1, r0, 16 + cmp r1, 0 + ble _080D23EC + b _080D24DA +_080D2466: + lsls r0, r2, 16 + asrs r0, 16 + movs r1, 0x4F + negs r1, r1 + cmp r0, r1 + bge _080D2474 + ldr r2, _080D252C @ =0x0000ffb1 +_080D2474: + mov r9, r2 + lsls r1, r2, 16 + cmp r1, 0 + bgt _080D24DA + ldr r0, _080D2530 @ =gUnknown_83FA444 + adds r0, r5, r0 + movs r3, 0 + ldrsh r4, [r0, r3] + ldr r6, _080D2534 @ =gUnknown_2039A2C + mov r8, r6 + ldr r6, _080D2538 @ =gUnknown_2038E80 +_080D248A: + mov r0, r8 + ldr r3, [r0] + asrs r2, r1, 16 + adds r0, r2, 0 + muls r0, r4 + asrs r0, 8 + adds r0, 0x78 + lsls r1, r0, 16 + lsrs r7, r1, 16 + strh r0, [r3, 0x28] + lsls r5, r7, 16 + lsrs r0, r5, 16 + cmp r0, 0xFF + bhi _080D24C6 + movs r1, 0x8C + lsls r1, 2 + adds r0, r1, 0 + subs r0, r2 + strh r0, [r3, 0x14] + adds r0, r1, 0 + subs r0, r2 + lsls r0, 1 + adds r2, r0, r6 + ldrh r0, [r2] + strh r0, [r3, 0x38] + ldrh r1, [r2] + asrs r0, r5, 16 + cmp r1, r0 + ble _080D24C6 + strh r7, [r2] +_080D24C6: + mov r2, r9 + lsls r0, r2, 16 + movs r3, 0x80 + lsls r3, 9 + adds r0, r3 + lsrs r0, 16 + mov r9, r0 + lsls r1, r0, 16 + cmp r1, 0 + ble _080D248A +_080D24DA: + movs r4, 0 + mov r9, r4 + ldr r4, _080D2538 @ =gUnknown_2038E80 + movs r5, 0xA0 + lsls r5, 1 +_080D24E4: + mov r6, r9 + lsls r1, r6, 16 + asrs r1, 16 + lsls r3, r1, 1 + ldr r0, [sp, 0x4] + adds r3, r0 + lsls r3, 1 + adds r3, r4 + adds r0, r1, r5 + lsls r0, 1 + adds r0, r4 + ldrh r2, [r0] + lsls r2, 8 + movs r6, 0xF0 + lsls r6, 1 + adds r0, r1, r6 + lsls r0, 1 + adds r0, r4 + ldrh r0, [r0] + orrs r2, r0 + strh r2, [r3] + adds r1, 0x1 + lsls r1, 16 + lsrs r0, r1, 16 + mov r9, r0 + asrs r1, 16 + cmp r1, 0x9F + ble _080D24E4 +_080D251C: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D252C: .4byte 0x0000ffb1 +_080D2530: .4byte gUnknown_83FA444 +_080D2534: .4byte gUnknown_2039A2C +_080D2538: .4byte gUnknown_2038E80 + thumb_func_end sub_80D1F64 + + thumb_func_start sub_80D253C +sub_80D253C: @ 80D253C + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + ldr r0, _080D25A0 @ =gUnknown_2039A2C + ldr r1, [r0] + movs r4, 0 + strh r4, [r1, 0x2] + movs r0, 0x3F + strh r0, [r1, 0x4] + ldr r0, _080D25A4 @ =0x00007878 + strh r0, [r1, 0x6] + ldr r0, _080D25A8 @ =0x00003070 + strh r0, [r1, 0x8] + ldr r0, _080D25AC @ =0x00001090 + strh r0, [r1, 0xC] + strh r4, [r1, 0x20] + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl sub_80D1F64 + movs r0, 0 + movs r1, 0 + movs r2, 0x1 + bl sub_80D1F64 + ldr r1, _080D25B0 @ =0x040000d4 + ldr r0, _080D25B4 @ =gUnknown_2038E80 + str r0, [r1] + ldr r2, _080D25B8 @ =0xfffff880 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D25BC @ =0x80000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r0, _080D25C0 @ =sub_80D2698 + bl sub_80006F4 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + strh r4, [r5, 0xA] + strh r4, [r5, 0xC] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D25A0: .4byte gUnknown_2039A2C +_080D25A4: .4byte 0x00007878 +_080D25A8: .4byte 0x00003070 +_080D25AC: .4byte 0x00001090 +_080D25B0: .4byte 0x040000d4 +_080D25B4: .4byte gUnknown_2038E80 +_080D25B8: .4byte 0xfffff880 +_080D25BC: .4byte 0x80000140 +_080D25C0: .4byte sub_80D2698 + thumb_func_end sub_80D253C + + thumb_func_start sub_80D25C4 +sub_80D25C4: @ 80D25C4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + movs r1, 0xC + ldrsh r0, [r4, r1] + movs r2, 0xA + ldrsh r1, [r4, r2] + movs r2, 0x1 + bl sub_80D1F64 + ldr r5, _080D2694 @ =gUnknown_2039A2C + ldr r1, [r5] + ldrb r0, [r1] + movs r2, 0x1 + mov r8, r2 + ldrb r2, [r1] + movs r7, 0 + mov r2, r8 + orrs r0, r2 + strb r0, [r1] + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x11 + bne _080D2686 + movs r1, 0xC + ldrsh r0, [r4, r1] + movs r1, 0x10 + movs r2, 0 + bl sub_80D1F64 + ldrh r1, [r4, 0xC] + movs r6, 0x30 + subs r0, r6, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r0, 0 + bge _080D2618 + movs r3, 0 +_080D2618: + adds r0, r1, 0 + adds r0, 0x70 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080D2628 + movs r2, 0xFF +_080D2628: + ldr r0, [r5] + orrs r2, r3 + strh r2, [r0, 0x8] + ldrh r0, [r4, 0xC] + adds r0, 0x20 + strh r0, [r4, 0xC] + movs r0, 0 + strh r0, [r4, 0xA] + movs r2, 0xC + ldrsh r0, [r4, r2] + movs r1, 0 + movs r2, 0x1 + bl sub_80D1F64 + ldrh r1, [r4, 0xC] + subs r0, r6, r1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r0, 0 + bge _080D2652 + movs r3, 0 +_080D2652: + adds r0, r1, 0 + adds r0, 0x70 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _080D2662 + movs r2, 0xFF +_080D2662: + ldr r1, [r5] + orrs r2, r3 + strh r2, [r1, 0xC] + ldrb r0, [r1] + mov r2, r8 + orrs r0, r2 + ldrb r2, [r1] + orrs r0, r7 + strb r0, [r1] + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x9F + ble _080D2686 + ldr r1, [r5] + movs r0, 0x1 + strh r0, [r1, 0x20] + bl sub_80D3E60 +_080D2686: + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D2694: .4byte gUnknown_2039A2C + thumb_func_end sub_80D25C4 + + thumb_func_start sub_80D2698 +sub_80D2698: @ 80D2698 + push {r4-r6,lr} + ldr r5, _080D26D0 @ =0x040000b0 + ldrh r1, [r5, 0xA] + ldr r0, _080D26D4 @ =0x0000c5ff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r1, [r5, 0xA] + ldr r0, _080D26D8 @ =0x00007fff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r0, [r5, 0xA] + bl sub_80D3DF4 + ldr r4, _080D26DC @ =gUnknown_2039A2C + ldr r2, [r4] + movs r0, 0x20 + ldrsh r3, [r2, r0] + cmp r3, 0 + beq _080D26E4 + ldr r0, _080D26E0 @ =sub_80D1F2C + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + b _080D2746 + .align 2, 0 +_080D26D0: .4byte 0x040000b0 +_080D26D4: .4byte 0x0000c5ff +_080D26D8: .4byte 0x00007fff +_080D26DC: .4byte gUnknown_2039A2C +_080D26E0: .4byte sub_80D1F2C +_080D26E4: + ldrb r0, [r2] + cmp r0, 0 + beq _080D2700 + ldr r1, _080D274C @ =0x040000d4 + ldr r0, _080D2750 @ =gUnknown_2038E80 + str r0, [r1] + ldr r6, _080D2754 @ =0xfffff880 + adds r0, r6 + str r0, [r1, 0x4] + ldr r0, _080D2758 @ =0x80000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldrb r0, [r2] + strb r3, [r2] +_080D2700: + ldr r0, [r4] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x8] + movs r0, 0x44 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0xC] + movs r0, 0x46 + bl sub_8000A38 + ldr r4, _080D275C @ =gUnknown_2038700 + ldrh r1, [r4] + movs r0, 0x40 + bl sub_8000A38 + ldrh r1, [r4, 0x2] + movs r0, 0x42 + bl sub_8000A38 + str r4, [r5] + ldr r0, _080D2760 @ =0x04000040 + str r0, [r5, 0x4] + ldr r0, _080D2764 @ =0xa6400001 + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] +_080D2746: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D274C: .4byte 0x040000d4 +_080D2750: .4byte gUnknown_2038E80 +_080D2754: .4byte 0xfffff880 +_080D2758: .4byte 0x80000140 +_080D275C: .4byte gUnknown_2038700 +_080D2760: .4byte 0x04000040 +_080D2764: .4byte 0xa6400001 + thumb_func_end sub_80D2698 + + thumb_func_start sub_80D2768 +sub_80D2768: @ 80D2768 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D2784 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x26] + bl sub_80D2808 + pop {r0} + bx r0 + .align 2, 0 +_080D2784: .4byte gUnknown_3005090 + thumb_func_end sub_80D2768 + + thumb_func_start sub_80D2788 +sub_80D2788: @ 80D2788 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D27A4 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x1 + strh r2, [r1, 0x26] + bl sub_80D2808 + pop {r0} + bx r0 + .align 2, 0 +_080D27A4: .4byte gUnknown_3005090 + thumb_func_end sub_80D2788 + + thumb_func_start sub_80D27A8 +sub_80D27A8: @ 80D27A8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D27C4 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x2 + strh r2, [r1, 0x26] + bl sub_80D2808 + pop {r0} + bx r0 + .align 2, 0 +_080D27C4: .4byte gUnknown_3005090 + thumb_func_end sub_80D27A8 + + thumb_func_start sub_80D27C8 +sub_80D27C8: @ 80D27C8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D27E4 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x3 + strh r2, [r1, 0x26] + bl sub_80D2808 + pop {r0} + bx r0 + .align 2, 0 +_080D27E4: .4byte gUnknown_3005090 + thumb_func_end sub_80D27C8 + + thumb_func_start sub_80D27E8 +sub_80D27E8: @ 80D27E8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D2804 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x4 + strh r2, [r1, 0x26] + bl sub_80D2808 + pop {r0} + bx r0 + .align 2, 0 +_080D2804: .4byte gUnknown_3005090 + thumb_func_end sub_80D27E8 + + thumb_func_start sub_80D2808 +sub_80D2808: @ 80D2808 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D2838 @ =gUnknown_83FA46C + ldr r2, _080D283C @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D281A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D281A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2838: .4byte gUnknown_83FA46C +_080D283C: .4byte gUnknown_3005090 + thumb_func_end sub_80D2808 + + thumb_func_start sub_80D2840 +sub_80D2840: @ 80D2840 + push {r4,lr} + adds r4, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + adds r0, r4, 0 + bl sub_80D2EA4 + movs r0, 0 + strh r0, [r4, 0xA] + movs r0, 0x1 + strh r0, [r4, 0xC] + movs r0, 0xEF + strh r0, [r4, 0xE] + ldr r0, _080D2898 @ =gUnknown_2039A2C + ldr r1, [r0] + movs r0, 0x3F + strh r0, [r1, 0x2] + movs r0, 0x3E + strh r0, [r1, 0x4] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r3, _080D289C @ =gUnknown_2038E80 + ldr r2, _080D28A0 @ =0x0000f0f1 +_080D2874: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x9F + bls _080D2874 + ldr r0, _080D28A4 @ =sub_80D2D50 + bl sub_80006F4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D2898: .4byte gUnknown_2039A2C +_080D289C: .4byte gUnknown_2038E80 +_080D28A0: .4byte 0x0000f0f1 +_080D28A4: .4byte sub_80D2D50 + thumb_func_end sub_80D2840 + + thumb_func_start sub_80D28A8 +sub_80D28A8: @ 80D28A8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + mov r8, r0 + ldr r6, _080D2950 @ =gUnknown_83FAC34 + add r1, sp, 0x4 + mov r0, sp + bl sub_80D3E28 + ldr r0, _080D2954 @ =gUnknown_83F8F60 + ldr r1, [sp, 0x4] + movs r2, 0xF0 + bl CpuSet + ldr r1, _080D2958 @ =gUnknown_83FA740 + mov r2, r8 + movs r3, 0x26 + ldrsh r0, [r2, r3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xF0 + movs r2, 0x20 + bl sub_80703EC + ldr r1, _080D295C @ =gUnknown_83FA754 + ldr r0, _080D2960 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x8] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xFA + movs r2, 0xC + bl sub_80703EC + movs r1, 0 + ldr r5, [sp] + movs r0, 0xF0 + lsls r0, 8 + adds r7, r0, 0 +_080D28FC: + movs r0, 0 + lsls r3, r1, 16 + asrs r4, r3, 11 +_080D2902: + lsls r2, r0, 16 + asrs r2, 16 + adds r1, r4, r2 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r6] + orrs r0, r7 + strh r0, [r1] + adds r2, 0x1 + lsls r2, 16 + adds r6, 0x2 + lsrs r0, r2, 16 + asrs r2, 16 + cmp r2, 0x1F + ble _080D2902 + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080D28FC + movs r0, 0x2 + bl sub_8000B68 + ldr r0, _080D2964 @ =sub_80D2E6C + bl sub_8000700 + mov r2, r8 + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + movs r0, 0 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D2950: .4byte gUnknown_83FAC34 +_080D2954: .4byte gUnknown_83F8F60 +_080D2958: .4byte gUnknown_83FA740 +_080D295C: .4byte gUnknown_83FA754 +_080D2960: .4byte gUnknown_300500C +_080D2964: .4byte sub_80D2E6C + thumb_func_end sub_80D28A8 + + thumb_func_start sub_80D2968 +sub_80D2968: @ 80D2968 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r0, _080D2A4C @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r7, _080D2A50 @ =gUnknown_2038700 + ldrh r0, [r4, 0xA] + ldrb r5, [r4, 0xA] + adds r0, 0x10 + strh r0, [r4, 0xA] + movs r6, 0 +_080D2982: + adds r0, r5, 0 + movs r1, 0x10 + bl sub_8044E30 + ldrh r1, [r4, 0xC] + adds r0, r1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r0, 0 + bge _080D2998 + movs r2, 0x1 +_080D2998: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xF0 + ble _080D29A2 + movs r2, 0xF0 +_080D29A2: + strh r2, [r7] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r7, 0x2 + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r6, 0x4F + bls _080D2982 + cmp r6, 0x9F + bhi _080D29FA +_080D29BC: + adds r0, r5, 0 + movs r1, 0x10 + bl sub_8044E30 + ldrh r1, [r4, 0xE] + subs r1, r0 + lsls r1, 16 + lsrs r2, r1, 16 + cmp r1, 0 + bge _080D29D2 + movs r2, 0 +_080D29D2: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0xEF + ble _080D29DC + movs r2, 0xEF +_080D29DC: + lsls r0, r2, 16 + asrs r0, 8 + movs r1, 0xF0 + orrs r0, r1 + strh r0, [r7] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r7, 0x2 + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r6, 0x9F + bls _080D29BC +_080D29FA: + ldrh r1, [r4, 0xC] + adds r1, 0x8 + strh r1, [r4, 0xC] + ldrh r0, [r4, 0xE] + subs r0, 0x8 + strh r0, [r4, 0xE] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0xF0 + ble _080D2A12 + movs r0, 0xF0 + strh r0, [r4, 0xC] +_080D2A12: + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _080D2A1E + movs r0, 0 + strh r0, [r4, 0xE] +_080D2A1E: + ldr r0, [r4, 0xC] + cmp r0, 0xF0 + bne _080D2A2A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D2A2A: + ldr r0, _080D2A4C @ =gUnknown_2039A2C + ldr r1, [r0] + ldrh r0, [r1, 0x18] + subs r0, 0x8 + strh r0, [r1, 0x18] + ldrh r0, [r1, 0x1A] + adds r0, 0x8 + strh r0, [r1, 0x1A] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D2A4C: .4byte gUnknown_2039A2C +_080D2A50: .4byte gUnknown_2038700 + thumb_func_end sub_80D2968 + + thumb_func_start sub_80D2A54 +sub_80D2A54: @ 80D2A54 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r2, _080D2AC8 @ =gUnknown_2039A2C + ldr r1, [r2] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r1, _080D2ACC @ =gUnknown_2038700 + adds r5, r2, 0 + movs r2, 0xF0 +_080D2A68: + strh r2, [r1] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + adds r1, 0x2 + cmp r0, 0x9F + bls _080D2A68 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x8] + strh r1, [r4, 0xA] + strh r1, [r4, 0xC] + strh r1, [r4, 0xE] + ldr r1, [r5] + ldrh r0, [r1, 0x18] + subs r0, 0x8 + strh r0, [r1, 0x18] + ldrh r0, [r1, 0x1A] + adds r0, 0x8 + strh r0, [r1, 0x1A] + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r1, 0 + bl sub_80D3120 + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r1, 0x1 + bl sub_80D3120 + movs r1, 0x22 + ldrsh r0, [r4, r1] + bl sub_80D3138 + movs r0, 0x61 + bl sub_80722CC + ldr r1, [r5] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D2AC8: .4byte gUnknown_2039A2C +_080D2ACC: .4byte gUnknown_2038700 + thumb_func_end sub_80D2A54 + + thumb_func_start sub_80D2AD0 +sub_80D2AD0: @ 80D2AD0 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _080D2B08 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrh r0, [r1, 0x18] + subs r0, 0x8 + strh r0, [r1, 0x18] + ldrh r0, [r1, 0x1A] + adds r0, 0x8 + strh r0, [r1, 0x1A] + movs r1, 0x22 + ldrsh r0, [r4, r1] + bl sub_80D3154 + lsls r0, 16 + cmp r0, 0 + beq _080D2B00 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r1, 0x24 + ldrsh r0, [r4, r1] + bl sub_80D3138 +_080D2B00: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D2B08: .4byte gUnknown_2039A2C + thumb_func_end sub_80D2AD0 + + thumb_func_start sub_80D2B0C +sub_80D2B0C: @ 80D2B0C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r7, _080D2BAC @ =gUnknown_2039A2C + ldr r1, [r7] + ldrh r0, [r1, 0x18] + subs r0, 0x8 + movs r2, 0 + mov r8, r2 + strh r0, [r1, 0x18] + ldrh r0, [r1, 0x1A] + adds r0, 0x8 + strh r0, [r1, 0x1A] + movs r1, 0x24 + ldrsh r0, [r6, r1] + bl sub_80D3154 + lsls r0, 16 + cmp r0, 0 + beq _080D2BA0 + ldr r1, [r7] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + movs r0, 0 + bl sub_80006F4 + ldr r1, _080D2BB0 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D2BB4 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D2BB8 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + ldr r4, _080D2BBC @ =gUnknown_2038700 + movs r5, 0xA0 + lsls r5, 1 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + movs r2, 0xF0 + lsls r2, 3 + adds r4, r2 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + movs r0, 0x40 + movs r1, 0xF0 + bl sub_8000A38 + movs r0, 0x54 + movs r1, 0 + bl sub_8000A38 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + mov r0, r8 + strh r0, [r6, 0xE] + strh r0, [r6, 0x10] + ldr r1, [r7] + movs r0, 0xBF + strh r0, [r1, 0xE] + ldr r0, _080D2BC0 @ =sub_80D2DEC + bl sub_80006F4 +_080D2BA0: + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D2BAC: .4byte gUnknown_2039A2C +_080D2BB0: .4byte 0x040000b0 +_080D2BB4: .4byte 0x0000c5ff +_080D2BB8: .4byte 0x00007fff +_080D2BBC: .4byte gUnknown_2038700 +_080D2BC0: .4byte sub_80D2DEC + thumb_func_end sub_80D2B0C + + thumb_func_start sub_80D2BC4 +sub_80D2BC4: @ 80D2BC4 + push {r4-r7,lr} + adds r4, r0, 0 + ldr r2, _080D2C84 @ =gUnknown_2039A2C + ldr r1, [r2] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + movs r6, 0x1 + ldr r1, [r2] + ldrh r0, [r1, 0x18] + subs r0, 0x8 + strh r0, [r1, 0x18] + ldrh r0, [r1, 0x1A] + adds r0, 0x8 + strh r0, [r1, 0x1A] + ldrh r1, [r4, 0x10] + movs r3, 0x10 + ldrsh r0, [r4, r3] + mov r12, r2 + cmp r0, 0x4F + bgt _080D2BF2 + adds r0, r1, 0x2 + strh r0, [r4, 0x10] +_080D2BF2: + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0x50 + ble _080D2BFE + movs r0, 0x50 + strh r0, [r4, 0x10] +_080D2BFE: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + movs r1, 0x1 + ands r0, r1 + ldrh r3, [r4, 0x10] + cmp r0, 0 + beq _080D2C60 + movs r2, 0 + lsls r0, r3, 16 + movs r6, 0 + cmp r0, 0 + blt _080D2C60 + movs r7, 0x50 + ldr r5, _080D2C88 @ =gUnknown_2038700 +_080D2C1C: + lsls r0, r2, 16 + asrs r3, r0, 16 + subs r1, r7, r3 + adds r0, r3, 0 + adds r0, 0x50 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, 16 + asrs r1, 15 + adds r1, r5 + ldrh r0, [r1] + cmp r0, 0xF + bhi _080D2C3C + movs r6, 0x1 + adds r0, 0x1 + strh r0, [r1] +_080D2C3C: + lsls r0, r2, 16 + asrs r0, 15 + adds r1, r0, r5 + ldrh r0, [r1] + cmp r0, 0xF + bhi _080D2C4E + movs r6, 0x1 + adds r0, 0x1 + strh r0, [r1] +_080D2C4E: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + movs r3, 0x10 + ldrsh r1, [r4, r3] + ldrh r3, [r4, 0x10] + cmp r0, r1 + ble _080D2C1C +_080D2C60: + cmp r3, 0x50 + bne _080D2C6E + cmp r6, 0 + bne _080D2C6E + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D2C6E: + mov r1, r12 + ldr r0, [r1] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D2C84: .4byte gUnknown_2039A2C +_080D2C88: .4byte gUnknown_2038700 + thumb_func_end sub_80D2BC4 + + thumb_func_start sub_80D2C8C +sub_80D2C8C: @ 80D2C8C + push {r4-r6,lr} + adds r4, r0, 0 + ldr r5, _080D2CBC @ =gUnknown_2039A2C + ldr r0, [r5] + ldrb r1, [r0] + movs r6, 0 + strb r6, [r0] + movs r0, 0x1 + negs r0, r0 + ldr r2, _080D2CC0 @ =0x00007fff + movs r1, 0x10 + bl sub_80714D4 + ldr r1, [r5] + movs r0, 0xFF + strh r0, [r1, 0xE] + strh r6, [r4, 0xE] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080D2CBC: .4byte gUnknown_2039A2C +_080D2CC0: .4byte 0x00007fff + thumb_func_end sub_80D2C8C + + thumb_func_start sub_80D2CC4 +sub_80D2CC4: @ 80D2CC4 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D2D08 @ =gUnknown_2039A2C + ldr r1, [r5] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + ldr r0, _080D2D0C @ =gUnknown_2038700 + movs r2, 0xE + ldrsh r1, [r4, r2] + movs r2, 0xA0 + lsls r2, 1 + bl memset + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0xF + ble _080D2CF4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D2CF4: + ldr r0, [r5] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D2D08: .4byte gUnknown_2039A2C +_080D2D0C: .4byte gUnknown_2038700 + thumb_func_end sub_80D2CC4 + + thumb_func_start sub_80D2D10 +sub_80D2D10: @ 80D2D10 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _080D2D44 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D2D48 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D2D4C @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_80D3E60 + ldr r0, [r4] + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D2D44: .4byte 0x040000b0 +_080D2D48: .4byte 0x0000c5ff +_080D2D4C: .4byte 0x00007fff + thumb_func_end sub_80D2D10 + + thumb_func_start sub_80D2D50 +sub_80D2D50: @ 80D2D50 + push {r4,r5,lr} + ldr r4, _080D2DC4 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _080D2DC8 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _080D2DCC @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_80D3DF4 + ldr r5, _080D2DD0 @ =gUnknown_2039A2C + ldr r0, [r5] + ldrb r0, [r0] + cmp r0, 0 + beq _080D2D88 + ldr r1, _080D2DD4 @ =0x040000d4 + ldr r0, _080D2DD8 @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D2DDC @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D2D88: + ldr r0, [r5] + ldrh r1, [r0, 0x1C] + movs r0, 0x12 + bl sub_8000A38 + ldr r0, [r5] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r5] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r5] + ldrh r1, [r0, 0x8] + movs r0, 0x44 + bl sub_8000A38 + ldr r0, _080D2DE0 @ =gUnknown_2038E80 + str r0, [r4] + ldr r0, _080D2DE4 @ =0x04000040 + str r0, [r4, 0x4] + ldr r0, _080D2DE8 @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D2DC4: .4byte 0x040000b0 +_080D2DC8: .4byte 0x0000c5ff +_080D2DCC: .4byte 0x00007fff +_080D2DD0: .4byte gUnknown_2039A2C +_080D2DD4: .4byte 0x040000d4 +_080D2DD8: .4byte gUnknown_2038700 +_080D2DDC: .4byte 0x800000a0 +_080D2DE0: .4byte gUnknown_2038E80 +_080D2DE4: .4byte 0x04000040 +_080D2DE8: .4byte 0xa2400001 + thumb_func_end sub_80D2D50 + + thumb_func_start sub_80D2DEC +sub_80D2DEC: @ 80D2DEC + push {r4,lr} + ldr r4, _080D2E44 @ =0x040000b0 + ldrh r1, [r4, 0xA] + ldr r0, _080D2E48 @ =0x0000c5ff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0xA] + ldr r0, _080D2E4C @ =0x00007fff + ands r0, r1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xA] + bl sub_80D3DF4 + ldr r2, _080D2E50 @ =gUnknown_2039A2C + ldr r0, [r2] + ldrb r0, [r0] + cmp r0, 0 + beq _080D2E24 + ldr r1, _080D2E54 @ =0x040000d4 + ldr r0, _080D2E58 @ =gUnknown_2038700 + str r0, [r1] + movs r3, 0xF0 + lsls r3, 3 + adds r0, r3 + str r0, [r1, 0x4] + ldr r0, _080D2E5C @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D2E24: + ldr r0, [r2] + ldrh r1, [r0, 0xE] + movs r0, 0x50 + bl sub_8000A38 + ldr r0, _080D2E60 @ =gUnknown_2038E80 + str r0, [r4] + ldr r0, _080D2E64 @ =0x04000054 + str r0, [r4, 0x4] + ldr r0, _080D2E68 @ =0xa2400001 + str r0, [r4, 0x8] + ldr r0, [r4, 0x8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D2E44: .4byte 0x040000b0 +_080D2E48: .4byte 0x0000c5ff +_080D2E4C: .4byte 0x00007fff +_080D2E50: .4byte gUnknown_2039A2C +_080D2E54: .4byte 0x040000d4 +_080D2E58: .4byte gUnknown_2038700 +_080D2E5C: .4byte 0x800000a0 +_080D2E60: .4byte gUnknown_2038E80 +_080D2E64: .4byte 0x04000054 +_080D2E68: .4byte 0xa2400001 + thumb_func_end sub_80D2DEC + + thumb_func_start sub_80D2E6C +sub_80D2E6C: @ 80D2E6C + push {lr} + ldr r0, _080D2E80 @ =0x04000006 + ldrh r0, [r0] + cmp r0, 0x4F + bhi _080D2E8C + ldr r1, _080D2E84 @ =0x04000010 + ldr r0, _080D2E88 @ =gUnknown_2039A2C + ldr r0, [r0] + ldrh r0, [r0, 0x18] + b _080D2E94 + .align 2, 0 +_080D2E80: .4byte 0x04000006 +_080D2E84: .4byte 0x04000010 +_080D2E88: .4byte gUnknown_2039A2C +_080D2E8C: + ldr r1, _080D2E9C @ =0x04000010 + ldr r0, _080D2EA0 @ =gUnknown_2039A2C + ldr r0, [r0] + ldrh r0, [r0, 0x1A] +_080D2E94: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080D2E9C: .4byte 0x04000010 +_080D2EA0: .4byte gUnknown_2039A2C + thumb_func_end sub_80D2E6C + + thumb_func_start sub_80D2EA4 +sub_80D2EA4: @ 80D2EA4 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r4, r0, 0 + ldr r6, _080D2FF8 @ =gUnknown_3003E58 + movs r0, 0xA + strb r0, [r6] + ldr r0, _080D2FFC @ =gUnknown_83FA494 + movs r2, 0x26 + ldrsh r1, [r4, r2] + mov r9, r1 + add r0, r9 + ldrb r0, [r0] + ldr r2, _080D3000 @ =gUnknown_83FA4AE + lsls r1, 2 + mov r9, r1 + adds r1, r2 + ldrh r1, [r1] + subs r1, 0x20 + lsls r1, 16 + asrs r1, 16 + adds r2, 0x2 + add r2, r9 + ldrh r2, [r2] + adds r2, 0x2A + lsls r2, 16 + asrs r2, 16 + ldr r5, _080D3004 @ =gUnknown_201C000 + str r5, [sp] + movs r3, 0 + bl sub_8083858 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + ldr r0, _080D3008 @ =gUnknown_300500C + ldr r0, [r0] + ldrb r0, [r0, 0x8] + movs r1, 0x1 + bl sub_810C374 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x88 + lsls r1, 1 + str r5, [sp] + movs r2, 0x6A + movs r3, 0 + bl sub_8083858 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x24] + movs r0, 0xC + strb r0, [r6] + movs r3, 0x22 + ldrsh r0, [r4, r3] + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + ldr r1, _080D300C @ =gUnknown_202063C + adds r5, r1 + movs r2, 0x24 + ldrsh r0, [r4, r2] + lsls r6, r0, 4 + adds r6, r0 + lsls r6, 2 + adds r6, r1 + ldr r0, _080D3010 @ =sub_80D301C + str r0, [r5, 0x1C] + str r0, [r6, 0x1C] + ldrb r0, [r5, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r5, 0x1] + ldrb r0, [r6, 0x1] + orrs r0, r1 + strb r0, [r6, 0x1] + bl sub_8008594 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0x1F + mov r8, r3 + mov r4, r8 + ands r0, r4 + lsls r0, 1 + ldrb r2, [r5, 0x3] + movs r4, 0x3F + negs r4, r4 + adds r1, r4, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x3] + bl sub_8008594 + lsls r0, 24 + lsrs r0, 24 + mov r1, r8 + ands r0, r1 + lsls r0, 1 + ldrb r1, [r6, 0x3] + ands r4, r1 + orrs r4, r0 + strb r4, [r6, 0x3] + ldrb r2, [r5, 0x1] + movs r1, 0x3F + adds r0, r1, 0 + ands r0, r2 + movs r2, 0x40 + orrs r0, r2 + strb r0, [r5, 0x1] + ldrb r0, [r6, 0x1] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, 0x1] + ldrb r0, [r5, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r5, 0x3] + ldrb r0, [r6, 0x3] + orrs r0, r1 + strb r0, [r6, 0x3] + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0x3 + movs r3, 0x3 + bl sub_80073F0 + adds r0, r6, 0 + movs r1, 0x1 + movs r2, 0x3 + movs r3, 0x3 + bl sub_80073F0 + ldrb r0, [r5, 0x3] + lsls r0, 26 + lsrs r0, 27 + ldr r2, _080D3014 @ =gUnknown_83FA49A + mov r3, r9 + adds r1, r3, r2 + movs r4, 0 + ldrsh r1, [r1, r4] + adds r2, 0x2 + add r9, r2 + mov r3, r9 + movs r4, 0 + ldrsh r2, [r3, r4] + movs r3, 0 + bl sub_800865C + ldrb r0, [r6, 0x3] + lsls r0, 26 + lsrs r0, 27 + ldr r1, _080D3018 @ =0xfffffe00 + movs r2, 0x80 + lsls r2, 2 + movs r3, 0 + bl sub_800865C + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D2FF8: .4byte gUnknown_3003E58 +_080D2FFC: .4byte gUnknown_83FA494 +_080D3000: .4byte gUnknown_83FA4AE +_080D3004: .4byte gUnknown_201C000 +_080D3008: .4byte gUnknown_300500C +_080D300C: .4byte gUnknown_202063C +_080D3010: .4byte sub_80D301C +_080D3014: .4byte gUnknown_83FA49A +_080D3018: .4byte 0xfffffe00 + thumb_func_end sub_80D2EA4 + + thumb_func_start sub_80D301C +sub_80D301C: @ 80D301C + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _080D3040 @ =gUnknown_83FA4C4 +_080D3022: + movs r1, 0x2E + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D3022 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3040: .4byte gUnknown_83FA4C4 + thumb_func_end sub_80D301C + + thumb_func_start sub_80D3044 +sub_80D3044: @ 80D3044 + movs r0, 0 + bx lr + thumb_func_end sub_80D3044 + + thumb_func_start sub_80D3048 +sub_80D3048: @ 80D3048 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + ldr r1, _080D308C @ =gUnknown_83FA4E0 + mov r0, sp + movs r2, 0x4 + bl memcpy + add r4, sp, 0x4 + ldr r1, _080D3090 @ =gUnknown_83FA4E4 + adds r0, r4, 0 + movs r2, 0x4 + bl memcpy + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + movs r1, 0x3C + ldrsh r0, [r5, r1] + lsls r0, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r5, 0x30] + movs r1, 0x3C + ldrsh r0, [r5, r1] + lsls r0, 1 + adds r4, r0 + ldrh r0, [r4] + strh r0, [r5, 0x32] + movs r0, 0x1 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D308C: .4byte gUnknown_83FA4E0 +_080D3090: .4byte gUnknown_83FA4E4 + thumb_func_end sub_80D3048 + + thumb_func_start sub_80D3094 +sub_80D3094: @ 80D3094 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x30] + ldrh r3, [r1, 0x20] + adds r2, r0, r3 + strh r2, [r1, 0x20] + movs r3, 0x3C + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _080D30B2 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x84 + bgt _080D30C0 + b _080D30BA +_080D30B2: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x67 + ble _080D30C0 +_080D30BA: + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] +_080D30C0: + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_80D3094 + + thumb_func_start sub_80D30C8 +sub_80D30C8: @ 80D30C8 + push {lr} + adds r2, r0, 0 + ldrh r3, [r2, 0x32] + ldrh r0, [r2, 0x30] + adds r1, r3, r0 + strh r1, [r2, 0x30] + ldrh r0, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + lsls r1, 16 + cmp r1, 0 + bne _080D30EE + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] + negs r0, r3 + strh r0, [r2, 0x32] + movs r0, 0x1 + strh r0, [r2, 0x3A] +_080D30EE: + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_80D30C8 + + thumb_func_start sub_80D30F4 +sub_80D30F4: @ 80D30F4 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x30] + adds r0, r1 + strh r0, [r2, 0x30] + ldrh r1, [r2, 0x20] + adds r1, r0 + strh r1, [r2, 0x20] + adds r1, 0x1F + lsls r1, 16 + movs r0, 0x97 + lsls r0, 17 + cmp r1, r0 + bls _080D3118 + ldrh r0, [r2, 0x2E] + adds r0, 0x1 + strh r0, [r2, 0x2E] +_080D3118: + movs r0, 0 + pop {r1} + bx r1 + thumb_func_end sub_80D30F4 + + thumb_func_start sub_80D3120 +sub_80D3120: @ 80D3120 + ldr r3, _080D3134 @ =gUnknown_202063C + lsls r0, 16 + asrs r0, 16 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + strh r1, [r2, 0x3C] + bx lr + .align 2, 0 +_080D3134: .4byte gUnknown_202063C + thumb_func_end sub_80D3120 + + thumb_func_start sub_80D3138 +sub_80D3138: @ 80D3138 + ldr r2, _080D3150 @ =gUnknown_202063C + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + bx lr + .align 2, 0 +_080D3150: .4byte gUnknown_202063C + thumb_func_end sub_80D3138 + + thumb_func_start sub_80D3154 +sub_80D3154: @ 80D3154 + ldr r2, _080D3168 @ =gUnknown_202063C + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r2, 0x3A + ldrsh r0, [r1, r2] + bx lr + .align 2, 0 +_080D3168: .4byte gUnknown_202063C + thumb_func_end sub_80D3154 + + thumb_func_start sub_80D316C +sub_80D316C: @ 80D316C + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D319C @ =gUnknown_83FA4E8 + ldr r2, _080D31A0 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D317E: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D317E + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D319C: .4byte gUnknown_83FA4E8 +_080D31A0: .4byte gUnknown_3005090 + thumb_func_end sub_80D316C + + thumb_func_start sub_80D31A4 +sub_80D31A4: @ 80D31A4 + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + movs r3, 0 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0xC] + movs r0, 0x1 + strh r0, [r5, 0xE] + ldr r2, _080D3210 @ =gUnknown_2039A2C + ldr r1, [r2] + movs r0, 0x3F + strh r0, [r1, 0x2] + strh r3, [r1, 0x4] + movs r0, 0xA0 + strh r0, [r1, 0x8] + ldr r4, _080D3214 @ =gUnknown_2038E80 + adds r6, r2, 0 + movs r2, 0xF0 +_080D31D0: + lsls r1, r3, 1 + adds r1, r4 + ldr r0, [r6] + ldrh r0, [r0, 0x14] + strh r0, [r1] + adds r0, r3, 0 + adds r0, 0xA0 + lsls r0, 1 + adds r0, r4 + strh r2, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x9F + bls _080D31D0 + movs r0, 0x2 + bl sub_8000B68 + ldr r0, _080D3218 @ =sub_80D332C + bl sub_80006F4 + ldr r0, _080D321C @ =sub_80D33C0 + bl sub_8000700 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x1 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080D3210: .4byte gUnknown_2039A2C +_080D3214: .4byte gUnknown_2038E80 +_080D3218: .4byte sub_80D332C +_080D321C: .4byte sub_80D33C0 + thumb_func_end sub_80D31A4 + + thumb_func_start sub_80D3220 +sub_80D3220: @ 80D3220 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r3, r0, 0 + ldr r2, _080D329C @ =gUnknown_2039A2C + ldr r1, [r2] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldrh r0, [r3, 0xC] + lsls r0, 16 + asrs r0, 24 + ldrh r1, [r3, 0xA] + adds r0, r1 + strh r0, [r3, 0xA] + lsls r0, 16 + asrs r0, 16 + mov r8, r2 + cmp r0, 0xF0 + ble _080D324C + movs r0, 0xF0 + strh r0, [r3, 0xA] +_080D324C: + ldrh r4, [r3, 0xC] + movs r0, 0xC + ldrsh r1, [r3, r0] + ldr r0, _080D32A0 @ =0x00000fff + ldrh r2, [r3, 0xE] + cmp r1, r0 + bgt _080D325E + adds r0, r4, r2 + strh r0, [r3, 0xC] +_080D325E: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x7F + bgt _080D326A + lsls r0, r2, 1 + strh r0, [r3, 0xE] +_080D326A: + movs r5, 0 + ldr r7, _080D32A4 @ =gUnknown_2038700 + movs r1, 0xA0 + lsls r1, 1 + adds r1, r7 + mov r12, r1 + mov r6, r8 +_080D3278: + lsls r0, r5, 1 + adds r2, r0, r7 + mov r1, r12 + adds r4, r0, r1 + movs r0, 0x1 + ands r0, r5 + cmp r0, 0 + beq _080D32A8 + ldr r1, [r6] + ldrh r0, [r3, 0xA] + ldrh r1, [r1, 0x14] + adds r0, r1 + strh r0, [r2] + ldrh r1, [r3, 0xA] + movs r0, 0xF0 + subs r0, r1 + b _080D32BA + .align 2, 0 +_080D329C: .4byte gUnknown_2039A2C +_080D32A0: .4byte 0x00000fff +_080D32A4: .4byte gUnknown_2038700 +_080D32A8: + ldr r0, [r6] + ldrh r0, [r0, 0x14] + ldrh r1, [r3, 0xA] + subs r0, r1 + strh r0, [r2] + ldrh r0, [r3, 0xA] + lsls r0, 8 + movs r1, 0xF1 + orrs r0, r1 +_080D32BA: + strh r0, [r4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x9F + bls _080D3278 + movs r1, 0xA + ldrsh r0, [r3, r1] + cmp r0, 0xEF + ble _080D32D4 + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] +_080D32D4: + mov r1, r8 + ldr r0, [r1] + ldrb r1, [r0] + adds r1, 0x1 + ldrb r2, [r0] + strb r1, [r0] + movs r0, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80D3220 + + thumb_func_start sub_80D32EC +sub_80D32EC: @ 80D32EC + push {lr} + ldr r1, _080D331C @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D3320 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D3324 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_80D3E60 + ldr r0, _080D3328 @ =sub_80D316C + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080D331C: .4byte 0x040000b0 +_080D3320: .4byte 0x0000c5ff +_080D3324: .4byte 0x00007fff +_080D3328: .4byte sub_80D316C + thumb_func_end sub_80D32EC + + thumb_func_start sub_80D332C +sub_80D332C: @ 80D332C + push {r4,r5,lr} + ldr r5, _080D3398 @ =0x040000b0 + ldrh r1, [r5, 0xA] + ldr r0, _080D339C @ =0x0000c5ff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r1, [r5, 0xA] + ldr r0, _080D33A0 @ =0x00007fff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r0, [r5, 0xA] + bl sub_80D3DF4 + ldr r4, _080D33A4 @ =gUnknown_2039A2C + ldr r0, [r4] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x8] + movs r0, 0x44 + bl sub_8000A38 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _080D3382 + ldr r1, _080D33A8 @ =0x040000d4 + ldr r0, _080D33AC @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D33B0 @ =0x80000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D3382: + ldr r0, _080D33B4 @ =gUnknown_2038FC0 + str r0, [r5] + ldr r0, _080D33B8 @ =0x04000040 + str r0, [r5, 0x4] + ldr r0, _080D33BC @ =0xa2400001 + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3398: .4byte 0x040000b0 +_080D339C: .4byte 0x0000c5ff +_080D33A0: .4byte 0x00007fff +_080D33A4: .4byte gUnknown_2039A2C +_080D33A8: .4byte 0x040000d4 +_080D33AC: .4byte gUnknown_2038700 +_080D33B0: .4byte 0x80000140 +_080D33B4: .4byte gUnknown_2038FC0 +_080D33B8: .4byte 0x04000040 +_080D33BC: .4byte 0xa2400001 + thumb_func_end sub_80D332C + + thumb_func_start sub_80D33C0 +sub_80D33C0: @ 80D33C0 + ldr r1, _080D33E0 @ =gUnknown_2038700 + ldr r0, _080D33E4 @ =0x04000006 + ldrh r0, [r0] + lsls r0, 1 + movs r2, 0xF0 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _080D33E8 @ =0x04000014 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + bx lr + .align 2, 0 +_080D33E0: .4byte gUnknown_2038700 +_080D33E4: .4byte 0x04000006 +_080D33E8: .4byte 0x04000014 + thumb_func_end sub_80D33C0 + + thumb_func_start sub_80D33EC +sub_80D33EC: @ 80D33EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D341C @ =gUnknown_83FA4F4 + ldr r2, _080D3420 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D33FE: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D33FE + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D341C: .4byte gUnknown_83FA4F4 +_080D3420: .4byte gUnknown_3005090 + thumb_func_end sub_80D33EC + + thumb_func_start sub_80D3424 +sub_80D3424: @ 80D3424 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + ldr r0, _080D348C @ =gUnknown_2039A2C + ldr r1, [r0] + movs r2, 0 + movs r0, 0xBF + strh r0, [r1, 0xE] + strh r2, [r1, 0x12] + movs r0, 0x1E + strh r0, [r1, 0x2] + movs r0, 0x3F + strh r0, [r1, 0x4] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r2, _080D3490 @ =gUnknown_2038E80 + movs r4, 0 + movs r3, 0xF0 +_080D3450: + lsls r0, r1, 1 + adds r0, r2 + strh r4, [r0] + adds r0, r1, 0 + adds r0, 0xA0 + lsls r0, 1 + adds r0, r2 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9F + bls _080D3450 + movs r0, 0x2 + bl sub_8000B68 + ldr r0, _080D3494 @ =sub_80D36E0 + bl sub_8000700 + ldr r0, _080D3498 @ =sub_80D35F4 + bl sub_80006F4 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D348C: .4byte gUnknown_2039A2C +_080D3490: .4byte gUnknown_2038E80 +_080D3494: .4byte sub_80D36E0 +_080D3498: .4byte sub_80D35F4 + thumb_func_end sub_80D3424 + + thumb_func_start sub_80D349C +sub_80D349C: @ 80D349C + push {r4-r6,lr} + sub sp, 0xC + adds r6, r0, 0 + ldr r1, _080D3504 @ =gUnknown_83FA508 + mov r0, sp + movs r2, 0xC + bl memcpy + movs r5, 0 + movs r4, 0 +_080D34B0: + ldr r0, _080D3508 @ =sub_80D3720 + bl sub_800704C + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _080D350C @ =gUnknown_202063C + adds r2, r1, r0 + movs r0, 0xF0 + strh r0, [r2, 0x20] + strh r4, [r2, 0x22] + lsls r1, r5, 16 + asrs r1, 16 + lsls r0, r1, 1 + add r0, sp + ldrh r0, [r0] + strh r0, [r2, 0x38] + adds r1, 0x1 + lsls r1, 16 + lsls r0, r4, 16 + movs r3, 0xD8 + lsls r3, 13 + adds r0, r3 + lsrs r4, r0, 16 + lsrs r5, r1, 16 + asrs r1, 16 + cmp r1, 0x5 + ble _080D34B0 + ldrh r0, [r2, 0x3A] + adds r0, 0x1 + strh r0, [r2, 0x3A] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080D3504: .4byte gUnknown_83FA508 +_080D3508: .4byte sub_80D3720 +_080D350C: .4byte gUnknown_202063C + thumb_func_end sub_80D349C + + thumb_func_start sub_80D3510 +sub_80D3510: @ 80D3510 + push {r4,lr} + adds r4, r0, 0 + ldr r2, _080D3544 @ =gUnknown_2039A2C + ldr r1, [r2] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + ldr r0, [r2] + movs r1, 0x20 + ldrsh r0, [r0, r1] + cmp r0, 0x5 + ble _080D353A + movs r0, 0x1 + negs r0, r0 + ldr r2, _080D3548 @ =0x00007fff + movs r1, 0x10 + bl sub_80714D4 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] +_080D353A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D3544: .4byte gUnknown_2039A2C +_080D3548: .4byte 0x00007fff + thumb_func_end sub_80D3510 + + thumb_func_start sub_80D354C +sub_80D354C: @ 80D354C + push {r4-r6,lr} + adds r6, r0, 0 + ldr r5, _080D35A0 @ =gUnknown_2039A2C + ldr r0, [r5] + ldrb r1, [r0] + movs r4, 0 + strb r4, [r0] + ldr r1, _080D35A4 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D35A8 @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D35AC @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + movs r0, 0 + bl sub_80006F4 + movs r0, 0 + bl sub_8000700 + ldr r1, [r5] + movs r0, 0xF0 + strh r0, [r1, 0x6] + strh r4, [r1, 0x12] + movs r0, 0xFF + strh r0, [r1, 0xE] + movs r0, 0x3F + strh r0, [r1, 0x2] + strh r4, [r1, 0x20] + ldr r0, _080D35B0 @ =sub_80D3690 + bl sub_80006F4 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080D35A0: .4byte gUnknown_2039A2C +_080D35A4: .4byte 0x040000b0 +_080D35A8: .4byte 0x0000c5ff +_080D35AC: .4byte 0x00007fff +_080D35B0: .4byte sub_80D3690 + thumb_func_end sub_80D354C + + thumb_func_start sub_80D35B4 +sub_80D35B4: @ 80D35B4 + push {lr} + ldr r0, _080D35EC @ =gUnknown_2039A2C + ldr r1, [r0] + movs r2, 0xF0 + lsls r2, 1 + adds r0, r2, 0 + ldrh r2, [r1, 0x20] + adds r0, r2 + strh r0, [r1, 0x20] + lsls r0, 16 + asrs r0, 24 + strh r0, [r1, 0x12] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x10 + bls _080D35E6 + bl sub_80D3E60 + ldr r0, _080D35F0 @ =sub_80D33EC + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 +_080D35E6: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080D35EC: .4byte gUnknown_2039A2C +_080D35F0: .4byte sub_80D33EC + thumb_func_end sub_80D35B4 + + thumb_func_start sub_80D35F4 +sub_80D35F4: @ 80D35F4 + push {r4,r5,lr} + ldr r5, _080D3668 @ =0x040000b0 + ldrh r1, [r5, 0xA] + ldr r0, _080D366C @ =0x0000c5ff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r1, [r5, 0xA] + ldr r0, _080D3670 @ =0x00007fff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r0, [r5, 0xA] + bl sub_80D3DF4 + ldr r4, _080D3674 @ =gUnknown_2039A2C + ldr r0, [r4] + ldrh r1, [r0, 0xE] + movs r0, 0x50 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x6] + movs r0, 0x44 + bl sub_8000A38 + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _080D3654 + ldr r1, _080D3678 @ =0x040000d4 + ldr r0, _080D367C @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D3680 @ =0x80000140 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D3654: + ldr r0, _080D3684 @ =gUnknown_2038FC0 + str r0, [r5] + ldr r0, _080D3688 @ =0x04000040 + str r0, [r5, 0x4] + ldr r0, _080D368C @ =0xa2400001 + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3668: .4byte 0x040000b0 +_080D366C: .4byte 0x0000c5ff +_080D3670: .4byte 0x00007fff +_080D3674: .4byte gUnknown_2039A2C +_080D3678: .4byte 0x040000d4 +_080D367C: .4byte gUnknown_2038700 +_080D3680: .4byte 0x80000140 +_080D3684: .4byte gUnknown_2038FC0 +_080D3688: .4byte 0x04000040 +_080D368C: .4byte 0xa2400001 + thumb_func_end sub_80D35F4 + + thumb_func_start sub_80D3690 +sub_80D3690: @ 80D3690 + push {r4,lr} + bl sub_80D3DF4 + ldr r4, _080D36DC @ =gUnknown_2039A2C + ldr r0, [r4] + ldrh r1, [r0, 0x12] + movs r0, 0x54 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0xE] + movs r0, 0x50 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x6] + movs r0, 0x40 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x8] + movs r0, 0x44 + bl sub_8000A38 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D36DC: .4byte gUnknown_2039A2C + thumb_func_end sub_80D3690 + + thumb_func_start sub_80D36E0 +sub_80D36E0: @ 80D36E0 + push {lr} + sub sp, 0x4 + mov r1, sp + ldr r0, _080D3714 @ =0x04000006 + ldrh r0, [r0] + strh r0, [r1] + mov r0, sp + ldrh r0, [r0] + cmp r0, 0xE3 + bne _080D36F8 + movs r0, 0 + strh r0, [r1] +_080D36F8: + ldr r2, _080D3718 @ =0x04000054 + ldr r1, _080D371C @ =gUnknown_2038700 + mov r0, sp + ldrh r0, [r0] + lsls r0, 1 + movs r3, 0xF0 + lsls r3, 3 + adds r1, r3 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080D3714: .4byte 0x04000006 +_080D3718: .4byte 0x04000054 +_080D371C: .4byte gUnknown_2038700 + thumb_func_end sub_80D36E0 + + thumb_func_start sub_80D3720 +sub_80D3720: @ 80D3720 + push {r4-r7,lr} + adds r3, r0, 0 + ldrh r1, [r3, 0x38] + movs r2, 0x38 + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080D374C + subs r0, r1, 0x1 + strh r0, [r3, 0x38] + movs r1, 0x3A + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080D380A + ldr r0, _080D3748 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + movs r0, 0x1 + strb r0, [r1] + b _080D380A + .align 2, 0 +_080D3748: .4byte gUnknown_2039A2C +_080D374C: + movs r2, 0x22 + ldrsh r0, [r3, r2] + lsls r0, 1 + ldr r1, _080D3810 @ =gUnknown_2038700 + adds r7, r0, r1 + movs r2, 0xA0 + lsls r2, 1 + adds r1, r2 + adds r6, r0, r1 + movs r1, 0x3A + ldrsh r0, [r3, r1] + movs r5, 0x1B + cmp r0, 0 + beq _080D376A + movs r5, 0x19 +_080D376A: + movs r4, 0 + cmp r4, r5 + bcs _080D3790 +_080D3770: + lsls r1, r4, 1 + adds r2, r1, r7 + ldrh r0, [r3, 0x2E] + lsls r0, 16 + asrs r0, 24 + strh r0, [r2] + adds r1, r6 + ldrh r0, [r3, 0x20] + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bcc _080D3770 +_080D3790: + movs r2, 0x20 + ldrsh r0, [r3, r2] + ldrh r2, [r3, 0x20] + cmp r0, 0 + bne _080D37AA + movs r0, 0x2E + ldrsh r1, [r3, r0] + movs r0, 0x80 + lsls r0, 5 + cmp r1, r0 + bne _080D37AA + movs r0, 0x1 + strh r0, [r3, 0x30] +_080D37AA: + adds r1, r2, 0 + subs r1, 0x18 + strh r1, [r3, 0x20] + ldrh r0, [r3, 0x2E] + adds r0, 0xC0 + strh r0, [r3, 0x2E] + lsls r1, 16 + cmp r1, 0 + bge _080D37C0 + movs r0, 0 + strh r0, [r3, 0x20] +_080D37C0: + movs r1, 0x2E + ldrsh r0, [r3, r1] + movs r1, 0x80 + lsls r1, 5 + cmp r0, r1 + ble _080D37CE + strh r1, [r3, 0x2E] +_080D37CE: + movs r2, 0x3A + ldrsh r0, [r3, r2] + cmp r0, 0 + beq _080D37E0 + ldr r0, _080D3814 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + movs r0, 0x1 + strb r0, [r1] +_080D37E0: + movs r1, 0x30 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _080D380A + movs r2, 0x3A + ldrsh r0, [r3, r2] + ldr r1, _080D3814 @ =gUnknown_2039A2C + cmp r0, 0 + beq _080D37FC + ldr r0, [r1] + movs r2, 0x20 + ldrsh r0, [r0, r2] + cmp r0, 0x4 + ble _080D380A +_080D37FC: + ldr r1, [r1] + ldrh r0, [r1, 0x20] + adds r0, 0x1 + strh r0, [r1, 0x20] + adds r0, r3, 0 + bl sub_8007280 +_080D380A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3810: .4byte gUnknown_2038700 +_080D3814: .4byte gUnknown_2039A2C + thumb_func_end sub_80D3720 + + thumb_func_start sub_80D3818 +sub_80D3818: @ 80D3818 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D3848 @ =gUnknown_83FA514 + ldr r2, _080D384C @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D382A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D382A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3848: .4byte gUnknown_83FA514 +_080D384C: .4byte gUnknown_3005090 + thumb_func_end sub_80D3818 + + thumb_func_start sub_80D3850 +sub_80D3850: @ 80D3850 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + add r0, sp, 0x4 + add r1, sp, 0x8 + bl sub_80D3E28 + ldr r0, _080D3898 @ =gUnknown_83FA140 + ldr r1, [sp, 0x8] + movs r2, 0x10 + bl CpuSet + mov r1, sp + movs r2, 0xF0 + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, [sp, 0x4] + ldr r2, _080D389C @ =0x01000400 + mov r0, sp + bl CpuSet + ldr r0, _080D38A0 @ =gUnknown_83FA638 + movs r1, 0xF0 + movs r2, 0x20 + bl sub_80703EC + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0 + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D3898: .4byte gUnknown_83FA140 +_080D389C: .4byte 0x01000400 +_080D38A0: .4byte gUnknown_83FA638 + thumb_func_end sub_80D3850 + + thumb_func_start sub_80D38A4 +sub_80D38A4: @ 80D38A4 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _080D38E6 + mov r0, sp + bl sub_80D3E08 + movs r0, 0x3 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0xC + ldrsh r0, [r4, r1] + lsls r0, 5 + ldr r1, _080D38F8 @ =gUnknown_83FA140 + adds r0, r1 + ldr r1, [sp] + movs r2, 0x10 + bl CpuSet + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0xD + ble _080D38E6 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r0, 0x10 + strh r0, [r4, 0xA] +_080D38E6: + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D38F8: .4byte gUnknown_83FA140 + thumb_func_end sub_80D38A4 + + thumb_func_start sub_80D38FC +sub_80D38FC: @ 80D38FC + push {lr} + ldrh r1, [r0, 0xA] + subs r1, 0x1 + strh r1, [r0, 0xA] + lsls r1, 16 + cmp r1, 0 + bne _080D391C + bl sub_80D3E60 + ldr r0, _080D3924 @ =sub_80D3818 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 +_080D391C: + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080D3924: .4byte sub_80D3818 + thumb_func_end sub_80D38FC + + thumb_func_start sub_80D3928 +sub_80D3928: @ 80D3928 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D3958 @ =gUnknown_83FA520 + ldr r2, _080D395C @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D393A: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D393A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3958: .4byte gUnknown_83FA520 +_080D395C: .4byte gUnknown_3005090 + thumb_func_end sub_80D3928 + + thumb_func_start sub_80D3960 +sub_80D3960: @ 80D3960 + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_80D3DD0 + bl sub_8087EA4 + ldr r0, _080D39B8 @ =gUnknown_2039A2C + ldr r1, [r0] + movs r2, 0 + movs r0, 0x3F + strh r0, [r1, 0x2] + strh r2, [r1, 0x4] + movs r0, 0xA0 + strh r0, [r1, 0x8] + movs r1, 0 + ldr r2, _080D39BC @ =gUnknown_2038700 + movs r3, 0xF0 + adds r4, r2, 0 +_080D3984: + lsls r0, r1, 1 + adds r0, r2 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x9F + bls _080D3984 + movs r0, 0xF0 + lsls r0, 3 + adds r1, r4, r0 + adds r0, r4, 0 + movs r2, 0xA0 + bl CpuSet + ldr r0, _080D39C0 @ =sub_80D3BA4 + bl sub_80006F4 + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080D39B8: .4byte gUnknown_2039A2C +_080D39BC: .4byte gUnknown_2038700 +_080D39C0: .4byte sub_80D3BA4 + thumb_func_end sub_80D3960 + + thumb_func_start sub_80D39C4 +sub_80D39C4: @ 80D39C4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + mov r8, r0 + ldr r0, _080D3A38 @ =gUnknown_2039A2C + ldr r0, [r0] + adds r0, 0x24 + ldr r6, _080D3A3C @ =gUnknown_83FA534 + mov r2, r8 + movs r3, 0xA + ldrsh r1, [r2, r3] + lsls r4, r1, 2 + adds r4, r1 + lsls r4, 1 + adds r1, r4, r6 + movs r5, 0 + ldrsh r1, [r1, r5] + adds r2, r6, 0x2 + adds r2, r4, r2 + movs r3, 0 + ldrsh r2, [r2, r3] + adds r3, r6, 0x4 + adds r3, r4, r3 + movs r5, 0 + ldrsh r3, [r3, r5] + adds r5, r6, 0x6 + adds r4, r5 + movs r5, 0 + ldrsh r4, [r4, r5] + str r4, [sp] + movs r4, 0x1 + str r4, [sp, 0x4] + str r4, [sp, 0x8] + bl sub_80D4088 + mov r0, r8 + movs r2, 0xA + ldrsh r1, [r0, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + adds r6, 0x8 + adds r0, r6 + ldrh r0, [r0] + mov r3, r8 + strh r0, [r3, 0xC] + ldrh r0, [r3, 0x8] + adds r0, 0x1 + strh r0, [r3, 0x8] + movs r0, 0x1 + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080D3A38: .4byte gUnknown_2039A2C +_080D3A3C: .4byte gUnknown_83FA534 + thumb_func_end sub_80D39C4 + + thumb_func_start sub_80D3A40 +sub_80D3A40: @ 80D3A40 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + ldr r0, _080D3A90 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + movs r0, 0 + strb r0, [r1] + mov r8, r0 + movs r7, 0 + ldr r0, _080D3A94 @ =gUnknown_2038700 + mov r9, r0 +_080D3A5C: + ldr r1, _080D3A94 @ =gUnknown_2038700 + ldr r0, _080D3A90 @ =gUnknown_2039A2C + ldr r2, [r0] + movs r3, 0x2A + ldrsh r0, [r2, r3] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsrs r3, r0, 8 + movs r5, 0xFF + ands r5, r0 + movs r4, 0xC + ldrsh r0, [r6, r4] + cmp r0, 0 + bne _080D3A98 + movs r1, 0x28 + ldrsh r0, [r2, r1] + cmp r3, r0 + bge _080D3A84 + ldrh r3, [r2, 0x28] +_080D3A84: + lsls r0, r3, 16 + lsls r1, r5, 16 + cmp r0, r1 + ble _080D3AB0 + lsrs r3, r1, 16 + b _080D3AB0 + .align 2, 0 +_080D3A90: .4byte gUnknown_2039A2C +_080D3A94: .4byte gUnknown_2038700 +_080D3A98: + lsls r0, r5, 16 + asrs r0, 16 + movs r4, 0x28 + ldrsh r1, [r2, r4] + cmp r0, r1 + ble _080D3AA6 + ldrh r5, [r2, 0x28] +_080D3AA6: + lsls r0, r5, 16 + lsls r1, r3, 16 + cmp r0, r1 + bgt _080D3AB0 + lsrs r5, r1, 16 +_080D3AB0: + ldr r0, _080D3AD4 @ =gUnknown_2039A2C + ldr r4, [r0] + movs r0, 0x2A + ldrsh r2, [r4, r0] + lsls r2, 1 + add r2, r9 + lsls r1, r3, 16 + asrs r1, 8 + lsls r0, r5, 16 + asrs r0, 16 + orrs r0, r1 + strh r0, [r2] + cmp r7, 0 + beq _080D3AD8 + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _080D3AFC + .align 2, 0 +_080D3AD4: .4byte gUnknown_2039A2C +_080D3AD8: + adds r0, r4, 0 + adds r0, 0x24 + movs r1, 0x1 + movs r2, 0x1 + bl sub_80D4104 + lsls r0, 24 + lsrs r7, r0, 24 + mov r1, r8 + lsls r0, r1, 16 + movs r3, 0x80 + lsls r3, 9 + adds r0, r3 + lsrs r4, r0, 16 + mov r8, r4 + asrs r0, 16 + cmp r0, 0xF + ble _080D3A5C +_080D3AFC: + ldr r0, _080D3B18 @ =gUnknown_2039A2C + ldr r1, [r0] + ldrb r0, [r1] + adds r0, 0x1 + ldrb r2, [r1] + strb r0, [r1] + movs r0, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080D3B18: .4byte gUnknown_2039A2C + thumb_func_end sub_80D3A40 + + thumb_func_start sub_80D3B1C +sub_80D3B1C: @ 80D3B1C + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0xA] + adds r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + ble _080D3B68 + ldr r1, _080D3B58 @ =0x040000b0 + ldrh r2, [r1, 0xA] + ldr r0, _080D3B5C @ =0x0000c5ff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r2, [r1, 0xA] + ldr r0, _080D3B60 @ =0x00007fff + ands r0, r2 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xA] + bl sub_80D3E60 + ldr r0, _080D3B64 @ =sub_80D3928 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + movs r0, 0 + b _080D3B80 + .align 2, 0 +_080D3B58: .4byte 0x040000b0 +_080D3B5C: .4byte 0x0000c5ff +_080D3B60: .4byte 0x00007fff +_080D3B64: .4byte sub_80D3928 +_080D3B68: + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + ldr r1, _080D3B84 @ =gUnknown_83FA57A + movs r3, 0xA + ldrsh r0, [r2, r3] + subs r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2, 0xE] + movs r0, 0x1 +_080D3B80: + pop {r1} + bx r1 + .align 2, 0 +_080D3B84: .4byte gUnknown_83FA57A + thumb_func_end sub_80D3B1C + + thumb_func_start sub_80D3B88 +sub_80D3B88: @ 80D3B88 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0xE] + subs r0, 0x1 + strh r0, [r1, 0xE] + lsls r0, 16 + cmp r0, 0 + beq _080D3B9C + movs r0, 0 + b _080D3BA0 +_080D3B9C: + movs r0, 0x1 + strh r0, [r1, 0x8] +_080D3BA0: + pop {r1} + bx r1 + thumb_func_end sub_80D3B88 + + thumb_func_start sub_80D3BA4 +sub_80D3BA4: @ 80D3BA4 + push {r4,r5,lr} + ldr r5, _080D3C1C @ =0x040000b0 + ldrh r1, [r5, 0xA] + ldr r0, _080D3C20 @ =0x0000c5ff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r1, [r5, 0xA] + ldr r0, _080D3C24 @ =0x00007fff + ands r0, r1 + strh r0, [r5, 0xA] + ldrh r0, [r5, 0xA] + bl sub_80D3DF4 + ldr r4, _080D3C28 @ =gUnknown_2039A2C + ldr r0, [r4] + ldrb r0, [r0] + cmp r0, 0 + beq _080D3BDC + ldr r1, _080D3C2C @ =0x040000d4 + ldr r0, _080D3C30 @ =gUnknown_2038700 + str r0, [r1] + movs r2, 0xF0 + lsls r2, 3 + adds r0, r2 + str r0, [r1, 0x4] + ldr r0, _080D3C34 @ =0x800000a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] +_080D3BDC: + ldr r0, [r4] + ldrh r1, [r0, 0x2] + movs r0, 0x48 + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x4] + movs r0, 0x4A + bl sub_8000A38 + ldr r0, [r4] + ldrh r1, [r0, 0x8] + movs r0, 0x44 + bl sub_8000A38 + ldr r4, _080D3C30 @ =gUnknown_2038700 + movs r0, 0xF0 + lsls r0, 3 + adds r4, r0 + ldrh r1, [r4] + movs r0, 0x40 + bl sub_8000A38 + str r4, [r5] + ldr r0, _080D3C38 @ =0x04000040 + str r0, [r5, 0x4] + ldr r0, _080D3C3C @ =0xa2400001 + str r0, [r5, 0x8] + ldr r0, [r5, 0x8] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3C1C: .4byte 0x040000b0 +_080D3C20: .4byte 0x0000c5ff +_080D3C24: .4byte 0x00007fff +_080D3C28: .4byte gUnknown_2039A2C +_080D3C2C: .4byte 0x040000d4 +_080D3C30: .4byte gUnknown_2038700 +_080D3C34: .4byte 0x800000a0 +_080D3C38: .4byte 0x04000040 +_080D3C3C: .4byte 0xa2400001 + thumb_func_end sub_80D3BA4 + + thumb_func_start sub_80D3C40 +sub_80D3C40: @ 80D3C40 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + ldr r3, [sp, 0x18] + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r0, _080D3C9C @ =sub_80D3CC4 + movs r1, 0x3 + str r3, [sp] + bl sub_807741C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080D3CA0 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r0, r8 + strh r0, [r1, 0xA] + strh r4, [r1, 0xC] + strh r5, [r1, 0xE] + strh r6, [r1, 0x10] + ldr r3, [sp] + strh r3, [r1, 0x12] + strh r0, [r1, 0x14] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080D3C9C: .4byte sub_80D3CC4 +_080D3CA0: .4byte gUnknown_3005090 + thumb_func_end sub_80D3C40 + + thumb_func_start sub_80D3CA4 +sub_80D3CA4: @ 80D3CA4 + push {lr} + ldr r0, _080D3CB8 @ =sub_80D3CC4 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080D3CBC + movs r0, 0 + b _080D3CBE + .align 2, 0 +_080D3CB8: .4byte sub_80D3CC4 +_080D3CBC: + movs r0, 0x1 +_080D3CBE: + pop {r1} + bx r1 + thumb_func_end sub_80D3CA4 + + thumb_func_start sub_80D3CC4 +sub_80D3CC4: @ 80D3CC4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _080D3CF4 @ =gUnknown_83FA588 + ldr r2, _080D3CF8 @ =gUnknown_3005090 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 +_080D3CD6: + movs r1, 0x8 + ldrsh r0, [r4, r1] + lsls r0, 2 + adds r0, r5 + ldr r1, [r0] + adds r0, r4, 0 + bl _call_via_r1 + lsls r0, 24 + cmp r0, 0 + bne _080D3CD6 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080D3CF4: .4byte gUnknown_83FA588 +_080D3CF8: .4byte gUnknown_3005090 + thumb_func_end sub_80D3CC4 + + thumb_func_start sub_80D3CFC +sub_80D3CFC: @ 80D3CFC + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080D3D14 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _080D3D38 +_080D3D14: + ldrh r0, [r4, 0xA] + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x10] + ldrh r1, [r4, 0x16] + adds r0, r1 + strh r0, [r4, 0x16] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _080D3D2C + movs r0, 0x10 + strh r0, [r4, 0x16] +_080D3D2C: + movs r0, 0x1 + negs r0, r0 + ldrb r1, [r4, 0x16] + ldr r2, _080D3D54 @ =0x00002d6b + bl sub_80714D4 +_080D3D38: + movs r2, 0x16 + ldrsh r0, [r4, r2] + cmp r0, 0xF + ble _080D3D4A + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xC] + strh r0, [r4, 0x14] +_080D3D4A: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080D3D54: .4byte 0x00002d6b + thumb_func_end sub_80D3CFC + + thumb_func_start sub_80D3D58 +sub_80D3D58: @ 80D3D58 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x14] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080D3D70 + subs r0, r1, 0x1 + strh r0, [r4, 0x14] + lsls r0, 16 + cmp r0, 0 + bne _080D3D92 +_080D3D70: + ldrh r0, [r4, 0xC] + strh r0, [r4, 0x14] + ldrh r0, [r4, 0x16] + ldrh r1, [r4, 0x12] + subs r0, r1 + strh r0, [r4, 0x16] + lsls r0, 16 + cmp r0, 0 + bge _080D3D86 + movs r0, 0 + strh r0, [r4, 0x16] +_080D3D86: + movs r0, 0x1 + negs r0, r0 + ldrb r1, [r4, 0x16] + ldr r2, _080D3DB8 @ =0x00002d6b + bl sub_80714D4 +_080D3D92: + movs r0, 0x16 + ldrsh r1, [r4, r0] + cmp r1, 0 + bne _080D3DC6 + ldrh r0, [r4, 0xE] + subs r0, 0x1 + strh r0, [r4, 0xE] + lsls r0, 16 + cmp r0, 0 + bne _080D3DC0 + ldr r0, _080D3DBC @ =sub_80D3CC4 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + bl sub_8077508 + b _080D3DC6 + .align 2, 0 +_080D3DB8: .4byte 0x00002d6b +_080D3DBC: .4byte sub_80D3CC4 +_080D3DC0: + ldrh r0, [r4, 0xA] + strh r0, [r4, 0x14] + strh r1, [r4, 0x8] +_080D3DC6: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80D3D58 + + thumb_func_start sub_80D3DD0 +sub_80D3DD0: @ 80D3DD0 + push {r4,lr} + ldr r4, _080D3DF0 @ =gUnknown_2039A2C + ldr r0, [r4] + movs r1, 0 + movs r2, 0x3C + bl memset + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x14 + adds r1, 0x16 + bl sub_805A658 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080D3DF0: .4byte gUnknown_2039A2C + thumb_func_end sub_80D3DD0 + + thumb_func_start sub_80D3DF4 +sub_80D3DF4: @ 80D3DF4 + push {lr} + bl sub_8007320 + bl sub_8007610 + bl sub_8070474 + pop {r0} + bx r0 + thumb_func_end sub_80D3DF4 + + thumb_func_start sub_80D3E08 +sub_80D3E08: @ 80D3E08 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl sub_8000AC4 + lsls r0, 16 + lsrs r0, 18 + lsls r0, 30 + lsrs r0, 16 + movs r1, 0xC0 + lsls r1, 19 + adds r0, r1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80D3E08 + + thumb_func_start sub_80D3E28 +sub_80D3E28: @ 80D3E28 + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + movs r0, 0x8 + bl sub_8000AC4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 24 + movs r0, 0x1F + ands r4, r0 + movs r0, 0x8 + bl sub_8000AC4 + lsls r0, 16 + lsrs r0, 18 + lsls r4, 11 + lsls r0, 30 + lsrs r0, 16 + movs r1, 0xC0 + lsls r1, 19 + adds r4, r1 + str r4, [r5] + adds r0, r1 + str r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80D3E28 + + thumb_func_start sub_80D3E60 +sub_80D3E60: @ 80D3E60 + push {lr} + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl sub_80714D4 + pop {r0} + bx r0 + thumb_func_end sub_80D3E60 + + thumb_func_start sub_80D3E74 +sub_80D3E74: @ 80D3E74 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + ldr r0, [sp, 0x20] + ldr r4, [sp, 0x24] + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r1, r0, 16 + lsls r4, 16 + movs r6, 0 + lsrs r5, r4, 16 + cmp r4, 0 + ble _080D3EDC + lsls r0, r7, 16 + asrs r0, 16 + mov r9, r0 + lsls r1, 16 + mov r8, r1 + lsls r0, r3, 16 + asrs r7, r0, 16 +_080D3EAC: + lsls r4, r2, 16 + asrs r4, 16 + movs r0, 0xFF + ands r0, r4 + mov r2, r8 + asrs r1, r2, 16 + bl sub_8044E30 + lsls r1, r6, 1 + add r1, r10 + add r0, r9 + strh r0, [r1] + lsls r1, r5, 16 + ldr r0, _080D3EEC @ =0xffff0000 + adds r1, r0 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + adds r4, r7 + lsls r4, 16 + lsrs r2, r4, 16 + lsrs r5, r1, 16 + cmp r1, 0 + bgt _080D3EAC +_080D3EDC: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D3EEC: .4byte 0xffff0000 + thumb_func_end sub_80D3E74 + + thumb_func_start sub_80D3EF0 +sub_80D3EF0: @ 80D3EF0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r9, r0 + adds r5, r2, 0 + adds r4, r3, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + movs r2, 0xA0 + lsls r2, 1 + movs r1, 0xA + bl memset + movs r1, 0 + lsls r4, 16 + asrs r4, 16 + str r4, [sp, 0x4] + lsls r5, 16 + asrs r5, 16 + str r5, [sp, 0x8] +_080D3F28: + lsls r5, r1, 16 + asrs r0, r5, 16 + mov r10, r0 + ldr r1, [sp, 0x4] + bl sub_8044E30 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + mov r0, r10 + ldr r1, [sp, 0x4] + bl sub_8044E4C + ldr r2, [sp] + lsls r1, r2, 16 + asrs r1, 16 + lsls r4, 16 + asrs r4, 16 + subs r2, r1, r4 + lsls r2, 16 + adds r1, r4 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r0, 16 + asrs r0, 16 + ldr r3, [sp, 0x8] + subs r1, r3, r0 + lsls r1, 16 + lsrs r7, r1, 16 + adds r0, r3, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsrs r1, r2, 16 + str r5, [sp, 0x10] + cmp r2, 0 + bge _080D3F74 + movs r1, 0 +_080D3F74: + lsls r0, r6, 16 + asrs r0, 16 + cmp r0, 0xF0 + ble _080D3F7E + movs r6, 0xF0 +_080D3F7E: + lsls r0, r7, 16 + cmp r0, 0 + bge _080D3F86 + movs r7, 0 +_080D3F86: + mov r2, r8 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x9F + ble _080D3F94 + movs r3, 0x9F + mov r8, r3 +_080D3F94: + lsls r0, r1, 24 + lsrs r0, 16 + orrs r6, r0 + lsls r0, r7, 16 + asrs r0, 16 + str r0, [sp, 0xC] + lsls r0, 1 + add r0, r9 + strh r6, [r0] + mov r0, r8 + lsls r4, r0, 16 + asrs r0, r4, 15 + add r0, r9 + strh r6, [r0] + mov r0, r10 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + ldr r1, [sp, 0x4] + bl sub_8044E4C + lsls r0, 16 + asrs r0, 16 + ldr r2, [sp, 0x8] + subs r1, r2, r0 + lsls r1, 16 + adds r0, r2, r0 + lsls r0, 16 + lsrs r2, r0, 16 + lsrs r3, r1, 16 + cmp r1, 0 + bge _080D3FD6 + movs r3, 0 +_080D3FD6: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x9F + ble _080D3FE0 + movs r2, 0x9F +_080D3FE0: + lsls r0, r3, 16 + asrs r1, r0, 16 + adds r3, r0, 0 + lsls r5, r2, 16 + ldr r0, [sp, 0xC] + cmp r0, r1 + ble _080D4004 + adds r2, r1, 0 +_080D3FF0: + lsls r1, r7, 16 + ldr r0, _080D4084 @ =0xffff0000 + adds r1, r0 + asrs r0, r1, 15 + add r0, r9 + strh r6, [r0] + lsrs r7, r1, 16 + asrs r1, 16 + cmp r1, r2 + bgt _080D3FF0 +_080D4004: + lsls r1, r7, 16 + asrs r0, r3, 16 + cmp r1, r3 + bge _080D4022 + adds r2, r0, 0 +_080D400E: + movs r3, 0x80 + lsls r3, 9 + adds r0, r1, r3 + asrs r1, r0, 15 + add r1, r9 + strh r6, [r1] + adds r1, r0, 0 + asrs r0, r1, 16 + cmp r0, r2 + blt _080D400E +_080D4022: + asrs r0, r5, 16 + cmp r4, r5 + ble _080D4040 + adds r1, r0, 0 +_080D402A: + ldr r2, _080D4084 @ =0xffff0000 + adds r0, r4, r2 + lsrs r3, r0, 16 + mov r8, r3 + asrs r0, 15 + add r0, r9 + strh r6, [r0] + lsls r4, r3, 16 + asrs r0, r4, 16 + cmp r0, r1 + bgt _080D402A +_080D4040: + mov r0, r8 + lsls r4, r0, 16 + asrs r0, r5, 16 + cmp r4, r5 + bge _080D4060 + adds r2, r0, 0 +_080D404C: + movs r1, 0x80 + lsls r1, 9 + adds r0, r4, r1 + asrs r1, r0, 15 + add r1, r9 + strh r6, [r1] + adds r4, r0, 0 + asrs r0, r4, 16 + cmp r0, r2 + blt _080D404C +_080D4060: + ldr r2, [sp, 0x10] + movs r3, 0x80 + lsls r3, 9 + adds r0, r2, r3 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x3F + bgt _080D4072 + b _080D3F28 +_080D4072: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080D4084: .4byte 0xffff0000 + thumb_func_end sub_80D3EF0 + + thumb_func_start sub_80D4088 +sub_80D4088: @ 80D4088 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, [sp, 0x14] + ldr r5, [sp, 0x18] + ldr r4, [sp, 0x1C] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r0, 16 + lsrs r0, 16 + adds r7, r0, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + strh r1, [r6] + strh r2, [r6, 0x2] + strh r1, [r6, 0x4] + strh r2, [r6, 0x6] + strh r3, [r6, 0x8] + strh r7, [r6, 0xA] + strh r5, [r6, 0xC] + strh r4, [r6, 0xE] + lsls r3, 16 + asrs r3, 16 + lsls r1, 16 + asrs r1, 16 + subs r3, r1 + strh r3, [r6, 0x10] + lsls r0, r3, 16 + cmp r0, 0 + bge _080D40DA + negs r0, r3 + strh r0, [r6, 0x10] + lsls r0, r5, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r6, 0xC] +_080D40DA: + lsls r0, r7, 16 + asrs r0, 16 + lsls r1, r2, 16 + asrs r1, 16 + subs r1, r0, r1 + strh r1, [r6, 0x12] + lsls r0, r1, 16 + cmp r0, 0 + bge _080D40F8 + negs r0, r1 + strh r0, [r6, 0x12] + lsls r0, r4, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r6, 0xE] +_080D40F8: + movs r0, 0 + strh r0, [r6, 0x14] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80D4088 + + thumb_func_start sub_80D4104 +sub_80D4104: @ 80D4104 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r3, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + ldrh r0, [r3, 0x10] + mov r8, r0 + movs r1, 0x10 + ldrsh r6, [r3, r1] + ldrh r2, [r3, 0x12] + mov r12, r2 + movs r4, 0x12 + ldrsh r5, [r3, r4] + cmp r6, r5 + ble _080D4154 + ldrh r0, [r3, 0xC] + ldrh r2, [r3, 0x4] + adds r1, r0, r2 + strh r1, [r3, 0x4] + ldrh r2, [r3, 0x14] + add r2, r12 + strh r2, [r3, 0x14] + lsls r1, r2, 16 + asrs r1, 16 + adds r4, r0, 0 + ldrh r7, [r3, 0xE] + cmp r1, r6 + ble _080D417A + ldrh r1, [r3, 0x6] + adds r0, r7, r1 + strh r0, [r3, 0x6] + mov r1, r8 + b _080D4176 +_080D4154: + ldrh r0, [r3, 0xE] + ldrh r2, [r3, 0x6] + adds r1, r0, r2 + strh r1, [r3, 0x6] + ldrh r2, [r3, 0x14] + add r2, r8 + strh r2, [r3, 0x14] + lsls r1, r2, 16 + asrs r1, 16 + ldrh r4, [r3, 0xC] + adds r7, r0, 0 + cmp r1, r5 + ble _080D417A + ldrh r1, [r3, 0x4] + adds r0, r4, r1 + strh r0, [r3, 0x4] + mov r1, r12 +_080D4176: + subs r0, r2, r1 + strh r0, [r3, 0x14] +_080D417A: + movs r5, 0 + lsls r0, r4, 16 + asrs r2, r0, 16 + cmp r2, 0 + ble _080D4192 + movs r4, 0x4 + ldrsh r1, [r3, r4] + movs r4, 0x8 + ldrsh r0, [r3, r4] + ldrh r4, [r3, 0x8] + cmp r1, r0 + bge _080D41A4 +_080D4192: + cmp r2, 0 + bge _080D41B2 + movs r0, 0x4 + ldrsh r1, [r3, r0] + movs r2, 0x8 + ldrsh r0, [r3, r2] + ldrh r4, [r3, 0x8] + cmp r1, r0 + bgt _080D41B2 +_080D41A4: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r9 + cmp r0, 0 + beq _080D41B2 + strh r4, [r3, 0x4] +_080D41B2: + lsls r0, r7, 16 + asrs r2, r0, 16 + cmp r2, 0 + ble _080D41C8 + movs r4, 0x6 + ldrsh r1, [r3, r4] + movs r4, 0xA + ldrsh r0, [r3, r4] + ldrh r4, [r3, 0xA] + cmp r1, r0 + bge _080D41DA +_080D41C8: + cmp r2, 0 + bge _080D41E8 + movs r0, 0x6 + ldrsh r1, [r3, r0] + movs r2, 0xA + ldrsh r0, [r3, r2] + ldrh r4, [r3, 0xA] + cmp r1, r0 + bgt _080D41E8 +_080D41DA: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r10 + cmp r0, 0 + beq _080D41E8 + strh r4, [r3, 0x6] +_080D41E8: + cmp r5, 0x2 + beq _080D41F0 + movs r0, 0 + b _080D41F2 +_080D41F0: + movs r0, 0x1 +_080D41F2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80D4104 + + .align 2, 0 @ Don't pad with nop. |