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/palette.s |
first commit
Diffstat (limited to 'asm/palette.s')
-rw-r--r-- | asm/palette.s | 2945 |
1 files changed, 2945 insertions, 0 deletions
diff --git a/asm/palette.s b/asm/palette.s new file mode 100644 index 000000000..596238614 --- /dev/null +++ b/asm/palette.s @@ -0,0 +1,2945 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80703A8 +sub_80703A8: @ 80703A8 + push {r4-r6,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + ldr r6, _080703E0 @ =gUnknown_2037ACC + adds r1, r6, 0 + bl sub_800EBB4 + lsls r4, 1 + ldr r1, _080703E4 @ =gUnknown_20371F8 + adds r1, r4, r1 + lsrs r5, 17 + adds r0, r6, 0 + adds r2, r5, 0 + bl CpuSet + ldr r0, _080703E8 @ =gUnknown_20375F8 + adds r4, r0 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080703E0: .4byte gUnknown_2037ACC +_080703E4: .4byte gUnknown_20371F8 +_080703E8: .4byte gUnknown_20375F8 + thumb_func_end sub_80703A8 + + thumb_func_start sub_80703EC +sub_80703EC: @ 80703EC + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsls r5, 16 + lsrs r4, 15 + ldr r1, _0807041C @ =gUnknown_20371F8 + adds r1, r4, r1 + lsrs r5, 17 + adds r2, r5, 0 + bl CpuSet + ldr r0, _08070420 @ =gUnknown_20375F8 + adds r4, r0 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807041C: .4byte gUnknown_20371F8 +_08070420: .4byte gUnknown_20375F8 + thumb_func_end sub_80703EC + + thumb_func_start sub_8070424 +sub_8070424: @ 8070424 + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r6, 16 + lsrs r6, 16 + lsls r4, 16 + lsls r5, 16 + mov r0, sp + strh r6, [r0] + lsrs r4, 15 + ldr r1, _0807046C @ =gUnknown_20371F8 + adds r1, r4, r1 + lsrs r5, 17 + movs r0, 0x80 + lsls r0, 17 + orrs r5, r0 + mov r0, sp + adds r2, r5, 0 + bl CpuSet + mov r0, sp + adds r0, 0x2 + strh r6, [r0] + ldr r1, _08070470 @ =gUnknown_20375F8 + adds r4, r1 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807046C: .4byte gUnknown_20371F8 +_08070470: .4byte gUnknown_20375F8 + thumb_func_end sub_8070424 + + thumb_func_start sub_8070474 +sub_8070474: @ 8070474 + push {r4,r5,lr} + ldr r4, _080704BC @ =gUnknown_2037AB8 + ldrb r1, [r4, 0x8] + movs r5, 0x80 + adds r0, r5, 0 + ands r0, r1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _080704B6 + ldr r1, _080704C0 @ =gUnknown_20375F8 + movs r2, 0xA0 + lsls r2, 19 + ldr r0, _080704C4 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _080704C8 @ =0x80000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, _080704CC @ =gUnknown_2037AC8 + str r3, [r0] + ldrb r1, [r4, 0x9] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _080704B6 + ldrb r1, [r4, 0x7] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080704B6 + bl sub_807141C +_080704B6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080704BC: .4byte gUnknown_2037AB8 +_080704C0: .4byte gUnknown_20375F8 +_080704C4: .4byte 0x040000d4 +_080704C8: .4byte 0x80000200 +_080704CC: .4byte gUnknown_2037AC8 + thumb_func_end sub_8070474 + + thumb_func_start sub_80704D0 +sub_80704D0: @ 80704D0 + push {lr} + ldr r0, _080704E0 @ =gUnknown_2037AC8 + ldr r0, [r0] + cmp r0, 0 + beq _080704E4 + movs r0, 0xFF + b _0807051C + .align 2, 0 +_080704E0: .4byte gUnknown_2037AC8 +_080704E4: + ldr r0, _080704F8 @ =gUnknown_2037AB8 + ldrb r0, [r0, 0x9] + movs r1, 0x3 + ands r1, r0 + cmp r1, 0 + bne _080704FC + bl sub_8070B8C + b _0807050A + .align 2, 0 +_080704F8: .4byte gUnknown_2037AB8 +_080704FC: + cmp r1, 0x1 + bne _08070506 + bl sub_8070EEC + b _0807050A +_08070506: + bl sub_8071300 +_0807050A: + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _08070520 @ =gUnknown_2037AC8 + ldr r0, _08070524 @ =gUnknown_2037AB8 + ldr r0, [r0] + movs r1, 0 + orrs r0, r1 + str r0, [r2] + adds r0, r3, 0 +_0807051C: + pop {r1} + bx r1 + .align 2, 0 +_08070520: .4byte gUnknown_2037AC8 +_08070524: .4byte gUnknown_2037AB8 + thumb_func_end sub_80704D0 + + thumb_func_start sub_8070528 +sub_8070528: @ 8070528 + push {r4,lr} + movs r4, 0 +_0807052C: + adds r0, r4, 0 + bl sub_8070A28 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _0807052C + bl sub_8070A84 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8070528 + + thumb_func_start sub_8070548 +sub_8070548: @ 8070548 + push {r4-r7,lr} + movs r0, 0xA0 + lsls r0, 19 + mov r12, r0 + movs r4, 0 + ldr r7, _0807057C @ =gUnknown_20371F8 + ldr r6, _08070580 @ =gUnknown_20375F8 + ldr r5, _08070584 @ =0x000001ff +_08070558: + lsls r1, r4, 1 + adds r3, r1, r7 + mov r0, r12 + adds r2, r1, r0 + ldrh r0, [r2] + strh r0, [r3] + adds r1, r6 + ldrh r0, [r2] + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r5 + bls _08070558 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807057C: .4byte gUnknown_20371F8 +_08070580: .4byte gUnknown_20375F8 +_08070584: .4byte 0x000001ff + thumb_func_end sub_8070548 + + thumb_func_start sub_8070588 +sub_8070588: @ 8070588 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + ldr r0, [sp, 0x18] + lsls r1, 24 + lsrs r6, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r12, r2 + lsls r3, 24 + lsrs r7, r3, 24 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r5, _080705B8 @ =gUnknown_2037AB8 + ldrb r1, [r5, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080705BC + movs r0, 0 + b _080706B4 + .align 2, 0 +_080705B8: .4byte gUnknown_2037AB8 +_080705BC: + ldrb r0, [r5, 0xA] + movs r3, 0x79 + negs r3, r3 + adds r2, r3, 0 + ands r2, r0 + movs r0, 0x10 + orrs r2, r0 + strb r2, [r5, 0xA] + lsls r0, r6, 24 + asrs r1, r0, 24 + cmp r1, 0 + bge _080705EA + lsls r0, r2, 25 + lsrs r0, 28 + negs r1, r1 + adds r0, r1 + movs r1, 0xF + ands r0, r1 + lsls r0, 3 + ands r2, r3 + orrs r2, r0 + strb r2, [r5, 0xA] + movs r6, 0 +_080705EA: + str r4, [r5] + movs r4, 0x3F + adds r1, r6, 0 + ands r1, r4 + ldrb r2, [r5, 0x4] + movs r3, 0x40 + negs r3, r3 + adds r0, r3, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x4] + ands r6, r4 + ldrb r0, [r5, 0x8] + ands r3, r0 + orrs r3, r6 + strb r3, [r5, 0x8] + movs r0, 0x1F + mov r1, r12 + ands r1, r0 + lsls r1, 6 + ldrh r2, [r5, 0x4] + ldr r0, _08070658 @ =0xfffff83f + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x4] + lsls r2, r7, 3 + ldrb r1, [r5, 0x5] + movs r0, 0x7 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x5] + ldr r1, _0807065C @ =0x00007fff + mov r0, r8 + ands r1, r0 + ldrh r2, [r5, 0x6] + ldr r0, _08070660 @ =0xffff8000 + ands r0, r2 + orrs r0, r1 + strh r0, [r5, 0x6] + ldrb r0, [r5, 0x7] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r5, 0x7] + ldrb r1, [r5, 0x9] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r5, 0x9] + cmp r12, r7 + bcs _08070664 + movs r0, 0x41 + negs r0, r0 + ands r3, r0 + b _08070668 + .align 2, 0 +_08070658: .4byte 0xfffff83f +_0807065C: .4byte 0x00007fff +_08070660: .4byte 0xffff8000 +_08070664: + movs r0, 0x40 + orrs r3, r0 +_08070668: + strb r3, [r5, 0x8] + bl sub_80704D0 + ldr r4, _080706C0 @ =gUnknown_2037AB8 + ldrb r1, [r4, 0x8] + lsrs r5, r1, 7 + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x8] + ldr r0, _080706C4 @ =gUnknown_20375F8 + movs r1, 0xA0 + lsls r1, 19 + ldr r2, _080706C8 @ =0x04000100 + bl CpuSet + ldr r1, _080706CC @ =gUnknown_2037AC8 + movs r0, 0 + str r0, [r1] + ldrb r1, [r4, 0x9] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _080706A4 + ldrb r1, [r4, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080706A4 + bl sub_807141C +_080706A4: + ldr r2, _080706C0 @ =gUnknown_2037AB8 + lsls r3, r5, 7 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x8] + movs r0, 0x1 +_080706B4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080706C0: .4byte gUnknown_2037AB8 +_080706C4: .4byte gUnknown_20375F8 +_080706C8: .4byte 0x04000100 +_080706CC: .4byte gUnknown_2037AC8 + thumb_func_end sub_8070588 + + thumb_func_start sub_80706D0 +sub_80706D0: @ 80706D0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x8 + mov r8, r0 + adds r4, r1, 0 + adds r6, r2, 0 + ldr r5, [sp, 0x1C] + lsls r4, 24 + lsrs r4, 24 + lsls r6, 24 + lsrs r6, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r5, 16 + lsrs r5, 16 + str r3, [sp, 0x4] + bl sub_8070548 + lsls r4, 24 + asrs r4, 24 + str r5, [sp] + mov r0, r8 + adds r1, r4, 0 + adds r2, r6, 0 + ldr r3, [sp, 0x4] + bl sub_8070588 + lsls r0, 24 + lsrs r0, 24 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80706D0 + + thumb_func_start sub_8070718 +sub_8070718: @ 8070718 + push {r4-r7,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + movs r5, 0 +_08070722: + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + ldr r1, _08070770 @ =gUnknown_20379F8 + adds r4, r0, r1 + ldrb r0, [r4, 0x4] + lsls r0, 31 + cmp r0, 0 + beq _08070780 + ldr r2, [r4] + ldrb r0, [r2, 0x8] + lsls r0, 31 + lsrs r0, 31 + cmp r0, r7 + bne _08070780 + ldrh r1, [r4, 0x6] + lsls r1, 20 + lsrs r1, 25 + ldrb r0, [r2, 0xB] + lsls r0, 27 + lsrs r0, 27 + cmp r1, r0 + bne _0807075E + adds r0, r4, 0 + bl sub_80709B4 + ldrb r0, [r4, 0x4] + lsls r0, 31 + cmp r0, 0 + beq _08070780 +_0807075E: + ldrb r0, [r4, 0x8] + cmp r0, 0 + bne _08070774 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8070790 + b _08070778 + .align 2, 0 +_08070770: .4byte gUnknown_20379F8 +_08070774: + subs r0, 0x1 + strb r0, [r4, 0x8] +_08070778: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80708F4 +_08070780: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _08070722 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8070718 + + thumb_func_start sub_8070790 +sub_8070790: @ 8070790 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r0, 0 + mov r8, r1 + movs r6, 0 + ldrh r1, [r4, 0x6] + lsls r1, 20 + lsrs r1, 25 + ldr r3, [r4] + ldrb r0, [r3, 0x9] + lsls r2, r0, 25 + lsrs r0, r2, 27 + adds r5, r1, 0 + muls r5, r0 + ldrb r1, [r3, 0x8] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0807082C + lsrs r0, r2, 27 + cmp r6, r0 + bcs _08070878 + ldr r0, _0807081C @ =gUnknown_20371F8 + mov r12, r0 + ldr r7, _08070820 @ =gUnknown_20375F8 +_080707C4: + ldr r0, [r4, 0x4] + lsls r0, 11 + lsrs r0, 22 + lsls r0, 1 + add r0, r12 + ldr r1, [r3, 0x4] + lsls r2, r5, 1 + adds r1, r2, r1 + ldrh r1, [r1] + strh r1, [r0] + ldr r0, [r4, 0x4] + lsls r0, 11 + lsrs r0, 22 + lsls r0, 1 + adds r0, r7 + ldr r1, [r4] + ldr r1, [r1, 0x4] + adds r2, r1 + ldrh r1, [r2] + strh r1, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, [r4, 0x4] + lsls r1, r2, 11 + lsrs r1, 22 + adds r1, 0x1 + ldr r0, _08070824 @ =0x000003ff + ands r1, r0 + lsls r1, 11 + ldr r0, _08070828 @ =0xffe007ff + ands r0, r2 + orrs r0, r1 + str r0, [r4, 0x4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r3, [r4] + ldrb r0, [r3, 0x9] + lsls r0, 25 + lsrs r0, 27 + cmp r6, r0 + bcc _080707C4 + b _08070878 + .align 2, 0 +_0807081C: .4byte gUnknown_20371F8 +_08070820: .4byte gUnknown_20375F8 +_08070824: .4byte 0x000003ff +_08070828: .4byte 0xffe007ff +_0807082C: + lsrs r0, r2, 27 + cmp r6, r0 + bcs _08070878 + ldr r3, _080708E4 @ =gUnknown_20375F8 +_08070834: + ldr r1, [r4, 0x4] + lsls r1, 11 + lsrs r1, 22 + lsls r1, 1 + adds r1, r3 + ldr r0, [r4] + ldr r2, [r0, 0x4] + lsls r0, r5, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, [r4, 0x4] + lsls r1, r2, 11 + lsrs r1, 22 + adds r1, 0x1 + ldr r0, _080708E8 @ =0x000003ff + ands r1, r0 + lsls r1, 11 + ldr r0, _080708EC @ =0xffe007ff + ands r0, r2 + orrs r0, r1 + str r0, [r4, 0x4] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, [r4] + ldrb r0, [r0, 0x9] + lsls r0, 25 + lsrs r0, 27 + cmp r6, r0 + bcc _08070834 +_08070878: + ldrh r0, [r4, 0x4] + lsls r0, 21 + lsrs r0, 23 + lsls r0, 11 + ldr r1, [r4, 0x4] + ldr r2, _080708EC @ =0xffe007ff + ands r1, r2 + orrs r1, r0 + str r1, [r4, 0x4] + ldr r3, [r4] + ldrb r0, [r3, 0xA] + strb r0, [r4, 0x8] + ldrh r2, [r4, 0x6] + lsls r0, r2, 20 + lsrs r0, 25 + adds r0, 0x1 + movs r1, 0x7F + ands r0, r1 + lsls r0, 5 + ldr r5, _080708F0 @ =0xfffff01f + adds r1, r5, 0 + ands r1, r2 + orrs r1, r0 + strh r1, [r4, 0x6] + lsls r1, 20 + lsrs r1, 25 + ldrb r0, [r3, 0xB] + lsls r0, 27 + lsrs r0, 27 + cmp r1, r0 + blt _080708C8 + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _080708C0 + subs r0, 0x1 + strb r0, [r4, 0x9] +_080708C0: + ldrh r1, [r4, 0x6] + adds r0, r5, 0 + ands r0, r1 + strh r0, [r4, 0x6] +_080708C8: + ldrh r0, [r4, 0x4] + lsls r0, 21 + lsrs r0, 27 + movs r1, 0x1 + lsls r1, r0 + mov r2, r8 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080708E4: .4byte gUnknown_20375F8 +_080708E8: .4byte 0x000003ff +_080708EC: .4byte 0xffe007ff +_080708F0: .4byte 0xfffff01f + thumb_func_end sub_8070790 + + thumb_func_start sub_80708F4 +sub_80708F4: @ 80708F4 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r3, _0807094C @ =gUnknown_2037AB8 + ldrb r1, [r3, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080709A8 + ldrh r0, [r4, 0x4] + lsls r0, 21 + lsrs r6, r0, 23 + asrs r1, r6, 4 + movs r5, 0x1 + adds r0, r5, 0 + lsls r0, r1 + ldr r1, [r3] + ands r0, r1 + cmp r0, 0 + beq _080709A8 + ldr r2, [r4] + ldrb r1, [r2, 0x8] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08070950 + ldrb r1, [r3, 0x4] + lsls r1, 26 + ldrb r0, [r3, 0x8] + lsls r0, 26 + cmp r1, r0 + beq _080709A8 + adds r0, r6, 0 + ldrb r1, [r2, 0x9] + lsls r1, 25 + lsrs r1, 27 + ldrh r2, [r3, 0x4] + lsls r2, 21 + lsrs r2, 27 + ldrh r3, [r3, 0x6] + lsls r3, 17 + lsrs r3, 17 + bl sub_8045274 + b _080709A8 + .align 2, 0 +_0807094C: .4byte gUnknown_2037AB8 +_08070950: + ldrb r1, [r3, 0x4] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + bne _080709A8 + ldrb r0, [r4, 0x8] + ldrb r1, [r2, 0xA] + cmp r0, r1 + beq _080709A8 + ldrh r0, [r4, 0x6] + lsls r0, 20 + lsrs r0, 25 + ldrb r1, [r2, 0x9] + lsls r1, 25 + lsrs r2, r1, 27 + adds r5, r0, 0 + muls r5, r2 + movs r3, 0 + adds r1, r2, 0 + cmp r3, r1 + bcs _080709A8 + ldr r6, _080709B0 @ =gUnknown_20375F8 +_0807097C: + ldrh r1, [r4, 0x4] + lsls r1, 21 + lsrs r1, 23 + adds r1, r3 + lsls r1, 1 + adds r1, r6 + ldr r2, [r4] + adds r0, r5, r3 + ldr r2, [r2, 0x4] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, [r4] + ldrb r0, [r0, 0x9] + lsls r0, 25 + lsrs r0, 27 + cmp r3, r0 + bcc _0807097C +_080709A8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080709B0: .4byte gUnknown_20375F8 + thumb_func_end sub_80708F4 + + thumb_func_start sub_80709B4 +sub_80709B4: @ 80709B4 + push {lr} + adds r3, r0, 0 + ldrb r0, [r3, 0x9] + cmp r0, 0 + bne _08070A04 + ldr r2, [r3] + ldrb r0, [r2, 0xB] + lsrs r0, 5 + cmp r0, 0 + bne _080709F4 + ldrh r1, [r3, 0x6] + ldr r0, _080709EC @ =0xfffff01f + ands r0, r1 + strh r0, [r3, 0x6] + ldrb r0, [r2, 0xA] + strb r0, [r3, 0x8] + ldrb r0, [r2, 0xC] + strb r0, [r3, 0x9] + ldrh r0, [r3, 0x4] + lsls r0, 21 + lsrs r0, 23 + lsls r0, 11 + ldr r1, [r3, 0x4] + ldr r2, _080709F0 @ =0xffe007ff + ands r1, r2 + orrs r1, r0 + str r1, [r3, 0x4] + b _08070A08 + .align 2, 0 +_080709EC: .4byte 0xfffff01f +_080709F0: .4byte 0xffe007ff +_080709F4: + cmp r0, 0 + blt _08070A08 + cmp r0, 0x2 + bgt _08070A08 + ldrh r0, [r2] + bl sub_8070A0C + b _08070A08 +_08070A04: + subs r0, 0x1 + strb r0, [r3, 0x9] +_08070A08: + pop {r0} + bx r0 + thumb_func_end sub_80709B4 + + thumb_func_start sub_8070A0C +sub_8070A0C: @ 8070A0C + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_8070B58 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + beq _08070A22 + bl sub_8070A28 +_08070A22: + pop {r0} + bx r0 + thumb_func_end sub_8070A0C + + thumb_func_start sub_8070A28 +sub_8070A28: @ 8070A28 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08070A70 @ =gUnknown_20379F8 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, _08070A74 @ =gUnknown_83AC960 + str r0, [r1] + ldrb r2, [r1, 0x4] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x4] + ldrh r2, [r1, 0x4] + ldr r0, _08070A78 @ =0xfffff803 + ands r0, r2 + strh r0, [r1, 0x4] + ldr r0, [r1, 0x4] + ldr r2, _08070A7C @ =0xffe007ff + ands r0, r2 + str r0, [r1, 0x4] + ldrh r2, [r1, 0x6] + ldr r0, _08070A80 @ =0xfffff01f + ands r0, r2 + strh r0, [r1, 0x6] + ldrb r2, [r1, 0x4] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x4] + movs r0, 0 + strb r0, [r1, 0x8] + strb r0, [r1, 0x9] + bx lr + .align 2, 0 +_08070A70: .4byte gUnknown_20379F8 +_08070A74: .4byte gUnknown_83AC960 +_08070A78: .4byte 0xfffff803 +_08070A7C: .4byte 0xffe007ff +_08070A80: .4byte 0xfffff01f + thumb_func_end sub_8070A28 + + thumb_func_start sub_8070A84 +sub_8070A84: @ 8070A84 + ldr r2, _08070AEC @ =gUnknown_2037AB8 + movs r0, 0 + str r0, [r2] + subs r0, 0x40 + ldrb r1, [r2, 0x4] + ands r0, r1 + strb r0, [r2, 0x4] + ldrh r1, [r2, 0x4] + ldr r0, _08070AF0 @ =0xfffff83f + ands r0, r1 + strh r0, [r2, 0x4] + ldrb r1, [r2, 0x5] + movs r0, 0x7 + ands r0, r1 + strb r0, [r2, 0x5] + ldrh r1, [r2, 0x6] + ldr r0, _08070AF4 @ =0xffff8000 + ands r0, r1 + strh r0, [r2, 0x6] + ldrb r1, [r2, 0x7] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x7] + movs r0, 0 + strb r0, [r2, 0x8] + ldrb r1, [r2, 0x9] + movs r3, 0x5 + negs r3, r3 + adds r0, r3, 0 + ands r0, r1 + movs r1, 0x9 + negs r1, r1 + ands r0, r1 + strb r0, [r2, 0x9] + ldrb r1, [r2, 0xA] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0xA] + ldr r0, [r2, 0x8] + ldr r1, _08070AF8 @ =0xfffe0fff + ands r0, r1 + str r0, [r2, 0x8] + ldrb r0, [r2, 0xA] + ands r3, r0 + movs r0, 0x79 + negs r0, r0 + ands r3, r0 + movs r0, 0x10 + orrs r3, r0 + strb r3, [r2, 0xA] + bx lr + .align 2, 0 +_08070AEC: .4byte gUnknown_2037AB8 +_08070AF0: .4byte 0xfffff83f +_08070AF4: .4byte 0xffff8000 +_08070AF8: .4byte 0xfffe0fff + thumb_func_end sub_8070A84 + + thumb_func_start sub_8070AFC +sub_8070AFC: @ 8070AFC + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_8070B58 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x10 + beq _08070B20 + ldr r1, _08070B24 @ =gUnknown_20379F8 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x4] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x4] +_08070B20: + pop {r0} + bx r0 + .align 2, 0 +_08070B24: .4byte gUnknown_20379F8 + thumb_func_end sub_8070AFC + + thumb_func_start sub_8070B28 +sub_8070B28: @ 8070B28 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_8070B58 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x10 + beq _08070B4E + ldr r0, _08070B54 @ =gUnknown_20379F8 + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r2, [r1, 0x4] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x4] +_08070B4E: + pop {r0} + bx r0 + .align 2, 0 +_08070B54: .4byte gUnknown_20379F8 + thumb_func_end sub_8070B28 + + thumb_func_start sub_8070B58 +sub_8070B58: @ 8070B58 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0 + ldr r3, _08070B78 @ =gUnknown_20379F8 +_08070B62: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, r2 + bne _08070B7C + adds r0, r1, 0 + b _08070B88 + .align 2, 0 +_08070B78: .4byte gUnknown_20379F8 +_08070B7C: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _08070B62 + movs r0, 0x10 +_08070B88: + pop {r1} + bx r1 + thumb_func_end sub_8070B58 + + thumb_func_start sub_8070B8C +sub_8070B8C: @ 8070B8C + push {r4-r7,lr} + ldr r4, _08070BA0 @ =gUnknown_2037AB8 + ldrb r1, [r4, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08070BA4 + movs r0, 0 + b _08070CC0 + .align 2, 0 +_08070BA0: .4byte gUnknown_2037AB8 +_08070BA4: + bl sub_8071470 + lsls r0, 24 + cmp r0, 0 + beq _08070BB2 + ldrb r0, [r4, 0x7] + b _08070CBE +_08070BB2: + ldrb r1, [r4, 0xA] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _08070BE6 + ldrb r2, [r4, 0x4] + lsls r1, r2, 26 + ldrb r0, [r4, 0x8] + lsls r0, 26 + cmp r1, r0 + bcs _08070BDE + lsrs r0, r1, 26 + adds r0, 0x1 + movs r1, 0x3F + ands r0, r1 + movs r1, 0x40 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x4] + movs r0, 0x2 + b _08070CC0 +_08070BDE: + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + strb r0, [r4, 0x4] +_08070BE6: + movs r5, 0 + ldr r2, _08070BFC @ =gUnknown_2037AB8 + ldrb r1, [r2, 0xA] + movs r0, 0x4 + ands r0, r1 + adds r7, r2, 0 + cmp r0, 0 + bne _08070C00 + ldrh r4, [r7] + b _08070C06 + .align 2, 0 +_08070BFC: .4byte gUnknown_2037AB8 +_08070C00: + ldrh r4, [r7, 0x2] + movs r5, 0x80 + lsls r5, 1 +_08070C06: + cmp r4, 0 + beq _08070C38 + ldr r7, _08070C74 @ =gUnknown_2037AB8 + adds r6, r7, 0 +_08070C0E: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08070C2A + ldrh r2, [r6, 0x4] + lsls r2, 21 + lsrs r2, 27 + ldrh r3, [r6, 0x6] + lsls r3, 17 + lsrs r3, 17 + adds r0, r5, 0 + movs r1, 0x10 + bl sub_8045274 +_08070C2A: + lsrs r4, 1 + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0 + bne _08070C0E +_08070C38: + ldrb r2, [r7, 0xA] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r4, 0x5 + negs r4, r4 + ands r4, r2 + orrs r4, r1 + strb r4, [r7, 0xA] + movs r0, 0x4 + ands r0, r4 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _08070CBC + ldrh r6, [r7, 0x4] + lsls r2, r6, 21 + ldrb r0, [r7, 0x5] + lsls r5, r0, 24 + lsrs r1, r2, 27 + lsrs r0, r5, 27 + cmp r1, r0 + bne _08070C78 + str r3, [r7] + movs r0, 0x2 + orrs r4, r0 + strb r4, [r7, 0xA] + b _08070CBC + .align 2, 0 +_08070C74: .4byte gUnknown_2037AB8 +_08070C78: + ldrb r1, [r7, 0x8] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08070C94 + lsrs r3, r2, 27 + lsls r0, r4, 25 + lsrs r0, 28 + adds r3, r0, r3 + lsrs r0, r5, 27 + cmp r3, r0 + ble _08070CAA + adds r3, r0, 0 + b _08070CAA +_08070C94: + lsrs r3, r2, 27 + lsls r0, r4, 25 + lsrs r0, 28 + subs r0, r3, r0 + lsls r0, 24 + lsrs r3, r0, 24 + asrs r0, 24 + lsrs r1, r5, 27 + cmp r0, r1 + bge _08070CAA + adds r3, r1, 0 +_08070CAA: + lsls r0, r3, 24 + asrs r0, 24 + movs r1, 0x1F + ands r0, r1 + lsls r0, 6 + ldr r1, _08070CC8 @ =0xfffff83f + ands r1, r6 + orrs r1, r0 + strh r1, [r7, 0x4] +_08070CBC: + ldrb r0, [r7, 0x7] +_08070CBE: + lsrs r0, 7 +_08070CC0: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08070CC8: .4byte 0xfffff83f + thumb_func_end sub_8070B8C + + thumb_func_start sub_8070CCC +sub_8070CCC: @ 8070CCC + push {r4-r7,lr} + adds r1, r0, 0 + movs r3, 0 + cmp r1, 0 + beq _08070D0A + ldr r7, _08070D10 @ =gUnknown_20375F8 +_08070CD8: + movs r0, 0x1 + ands r0, r1 + lsrs r4, r1, 1 + adds r5, r3, 0 + adds r5, 0x10 + cmp r0, 0 + beq _08070D00 + movs r2, 0 + adds r6, r7, 0 +_08070CEA: + adds r0, r3, r2 + lsls r0, 1 + adds r0, r6 + ldrh r1, [r0] + mvns r1, r1 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _08070CEA +_08070D00: + adds r1, r4, 0 + lsls r0, r5, 16 + lsrs r3, r0, 16 + cmp r1, 0 + bne _08070CD8 +_08070D0A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070D10: .4byte gUnknown_20375F8 + thumb_func_end sub_8070CCC + + thumb_func_start sub_8070D14 +sub_8070D14: @ 8070D14 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r4, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp] + lsls r3, 24 + lsrs r3, 24 + str r3, [sp, 0x4] + movs r0, 0 + mov r9, r0 + cmp r4, 0 + beq _08070DD0 + lsls r1, 24 + str r1, [sp, 0x8] +_08070D3E: + movs r0, 0x1 + ands r0, r4 + lsrs r4, 1 + str r4, [sp, 0xC] + movs r1, 0x10 + add r1, r9 + mov r10, r1 + cmp r0, 0 + beq _08070DC2 + movs r4, 0 + ldr r2, _08070DE0 @ =gUnknown_20375F8 + mov r8, r2 + ldr r1, [sp] + lsls r0, r1, 24 + ldr r2, [sp, 0x4] + lsls r1, r2, 24 + ldr r2, [sp, 0x8] + asrs r2, 24 + mov r12, r2 + movs r5, 0x1F + asrs r7, r0, 24 + asrs r6, r1, 24 +_08070D6A: + mov r0, r9 + adds r2, r0, r4 + lsls r2, 1 + add r2, r8 + ldr r1, [r2] + lsls r1, 27 + lsrs r1, 27 + add r1, r12 + ands r1, r5 + ldrb r3, [r2] + movs r0, 0x20 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r2] + lsls r1, 22 + lsrs r1, 27 + adds r1, r7 + movs r0, 0x1F + ands r1, r0 + lsls r1, 5 + ldrh r3, [r2] + ldr r0, _08070DE4 @ =0xfffffc1f + ands r0, r3 + orrs r0, r1 + strh r0, [r2] + ldr r1, [r2] + lsls r1, 17 + lsrs r1, 27 + adds r1, r6 + ands r1, r5 + lsls r1, 2 + ldrb r3, [r2, 0x1] + movs r0, 0x7D + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _08070D6A +_08070DC2: + ldr r4, [sp, 0xC] + mov r1, r10 + lsls r0, r1, 16 + lsrs r0, 16 + mov r9, r0 + cmp r4, 0 + bne _08070D3E +_08070DD0: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070DE0: .4byte gUnknown_20375F8 +_08070DE4: .4byte 0xfffffc1f + thumb_func_end sub_8070D14 + + thumb_func_start sub_8070DE8 +sub_8070DE8: @ 8070DE8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r1, r0, 0 + movs r3, 0 + cmp r1, 0 + beq _08070E32 + ldr r0, _08070E3C @ =gUnknown_20375F8 + mov r8, r0 + ldr r0, _08070E40 @ =gUnknown_20371F8 + mov r12, r0 +_08070DFE: + movs r0, 0x1 + ands r0, r1 + lsrs r4, r1, 1 + adds r5, r3, 0 + adds r5, 0x10 + cmp r0, 0 + beq _08070E28 + movs r2, 0 + mov r7, r8 + mov r6, r12 +_08070E12: + adds r0, r3, r2 + lsls r0, 1 + adds r1, r0, r7 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xF + bls _08070E12 +_08070E28: + adds r1, r4, 0 + lsls r0, r5, 16 + lsrs r3, r0, 16 + cmp r1, 0 + bne _08070DFE +_08070E32: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08070E3C: .4byte gUnknown_20375F8 +_08070E40: .4byte gUnknown_20371F8 + thumb_func_end sub_8070DE8 + + thumb_func_start sub_8070E44 +sub_8070E44: @ 8070E44 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08070E64 @ =gUnknown_2037AB8 + ldrb r2, [r3, 0xA] + movs r1, 0x79 + negs r1, r1 + ands r1, r2 + movs r2, 0x10 + orrs r1, r2 + strb r1, [r3, 0xA] + bl sub_8070E68 + pop {r0} + bx r0 + .align 2, 0 +_08070E64: .4byte gUnknown_2037AB8 + thumb_func_end sub_8070E44 + + thumb_func_start sub_8070E68 +sub_8070E68: @ 8070E68 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r2, _08070EDC @ =gUnknown_2037AB8 + ldrh r0, [r2, 0x4] + movs r3, 0xF8 + lsls r3, 3 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2, 0x4] + movs r1, 0x3F + ands r1, r4 + ldrb r3, [r2, 0x8] + movs r0, 0x40 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x8] + ldrb r0, [r2, 0x7] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x7] + ldrb r1, [r2, 0x9] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + cmp r4, 0x2 + bne _08070EBA + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, _08070EE0 @ =gUnknown_20375F8 + ldr r2, _08070EE4 @ =0x01000200 + mov r0, sp + bl CpuSet +_08070EBA: + cmp r4, 0 + bne _08070ED0 + mov r0, sp + adds r0, 0x2 + ldr r2, _08070EE8 @ =0x00007fff + adds r1, r2, 0 + strh r1, [r0] + ldr r1, _08070EE0 @ =gUnknown_20375F8 + ldr r2, _08070EE4 @ =0x01000200 + bl CpuSet +_08070ED0: + bl sub_80704D0 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08070EDC: .4byte gUnknown_2037AB8 +_08070EE0: .4byte gUnknown_20375F8 +_08070EE4: .4byte 0x01000200 +_08070EE8: .4byte 0x00007fff + thumb_func_end sub_8070E68 + + thumb_func_start sub_8070EEC +sub_8070EEC: @ 8070EEC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r4, _08070F08 @ =gUnknown_2037AB8 + ldrb r1, [r4, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08070F0C + movs r0, 0 + b _08071246 + .align 2, 0 +_08070F08: .4byte gUnknown_2037AB8 +_08070F0C: + bl sub_8071470 + lsls r0, 24 + cmp r0, 0 + beq _08070F1A + ldrb r0, [r4, 0x7] + b _08071244 +_08070F1A: + ldrb r1, [r4, 0xA] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08070F30 + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 2 + mov r10, r0 + b _08070F38 +_08070F30: + movs r2, 0 + movs r1, 0x80 + lsls r1, 1 + mov r10, r1 +_08070F38: + ldr r1, _08070F50 @ =gUnknown_2037AB8 + ldrb r0, [r1, 0x8] + lsls r0, 26 + lsrs r0, 26 + cmp r0, 0x1 + beq _08070FF8 + cmp r0, 0x1 + bgt _08070F54 + cmp r0, 0 + beq _08070F62 + b _08071148 + .align 2, 0 +_08070F50: .4byte gUnknown_2037AB8 +_08070F54: + cmp r0, 0x2 + bne _08070F5A + b _0807105C +_08070F5A: + cmp r0, 0x3 + bne _08070F60 + b _080710E4 +_08070F60: + b _08071148 +_08070F62: + adds r7, r2, 0 + cmp r7, r10 + bcc _08070F6A + b _08071148 +_08070F6A: + lsls r2, r7, 1 + ldr r0, _08070FF0 @ =gUnknown_20371F8 + adds r0, r2, r0 + ldr r1, [r0] + lsls r3, r1, 27 + lsls r0, r1, 22 + lsrs r0, 27 + mov r12, r0 + lsls r1, 17 + lsrs r1, 27 + mov r8, r1 + ldr r0, _08070FF4 @ =gUnknown_20375F8 + adds r2, r0 + mov r9, r2 + ldr r1, [r2] + lsls r2, r1, 27 + lsrs r2, 3 + movs r4, 0xFE + lsls r4, 24 + adds r2, r4 + lsls r0, r1, 22 + lsrs r0, 27 + subs r0, 0x2 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 17 + lsrs r1, 27 + subs r1, 0x2 + lsls r1, 24 + lsrs r4, r1, 24 + lsrs r6, r2, 24 + asrs r2, 24 + lsrs r3, 3 + asrs r0, r3, 24 + cmp r2, r0 + bge _08070FB4 + lsrs r6, r3, 24 +_08070FB4: + lsls r0, r5, 24 + asrs r0, 24 + mov r2, r12 + lsls r1, r2, 24 + cmp r0, r12 + bge _08070FC2 + lsrs r5, r1, 24 +_08070FC2: + lsls r0, r4, 24 + asrs r0, 24 + mov r3, r8 + lsls r1, r3, 24 + cmp r0, r8 + bge _08070FD0 + lsrs r4, r1, 24 +_08070FD0: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r5, 24 + asrs r0, 19 + orrs r1, r0 + lsls r0, r4, 24 + asrs r0, 14 + orrs r1, r0 + mov r4, r9 + strh r1, [r4] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, r10 + bcc _08070F6A + b _08071148 + .align 2, 0 +_08070FF0: .4byte gUnknown_20371F8 +_08070FF4: .4byte gUnknown_20375F8 +_08070FF8: + adds r7, r2, 0 + cmp r7, r10 + bcc _08071000 + b _08071148 +_08071000: + lsls r1, r7, 1 + ldr r0, _08071058 @ =gUnknown_20375F8 + adds r2, r1, r0 + ldr r1, [r2] + lsls r0, r1, 27 + lsrs r0, 3 + movs r3, 0x80 + lsls r3, 18 + adds r0, r3 + lsrs r6, r0, 24 + lsls r0, r1, 22 + lsrs r0, 27 + adds r5, r0, 0x2 + lsls r1, 17 + lsrs r1, 27 + adds r4, r1, 0x2 + cmp r6, 0x1F + ble _08071026 + movs r6, 0x1F +_08071026: + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0x1F + ble _08071030 + movs r5, 0x1F +_08071030: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x1F + ble _0807103A + movs r4, 0x1F +_0807103A: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r5, 24 + asrs r0, 19 + orrs r1, r0 + lsls r0, r4, 24 + asrs r0, 14 + orrs r1, r0 + strh r1, [r2] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, r10 + bcc _08071000 + b _08071148 + .align 2, 0 +_08071058: .4byte gUnknown_20375F8 +_0807105C: + adds r7, r2, 0 + cmp r7, r10 + bcs _08071148 +_08071062: + lsls r2, r7, 1 + ldr r0, _080710DC @ =gUnknown_20371F8 + adds r0, r2, r0 + ldr r1, [r0] + lsls r3, r1, 27 + lsls r0, r1, 22 + lsrs r0, 27 + mov r12, r0 + lsls r1, 17 + lsrs r1, 27 + mov r8, r1 + ldr r0, _080710E0 @ =gUnknown_20375F8 + adds r2, r0 + ldr r1, [r2] + lsls r0, r1, 27 + lsrs r0, 3 + movs r4, 0x80 + lsls r4, 18 + adds r0, r4 + lsrs r6, r0, 24 + lsls r0, r1, 22 + lsrs r0, 27 + adds r5, r0, 0x2 + lsls r1, 17 + lsrs r1, 27 + adds r4, r1, 0x2 + lsrs r3, 3 + asrs r0, r3, 24 + cmp r6, r0 + ble _080710A0 + lsrs r6, r3, 24 +_080710A0: + lsls r0, r5, 24 + asrs r0, 24 + mov r3, r12 + lsls r1, r3, 24 + cmp r0, r12 + ble _080710AE + lsrs r5, r1, 24 +_080710AE: + lsls r0, r4, 24 + asrs r0, 24 + mov r3, r8 + lsls r1, r3, 24 + cmp r0, r8 + ble _080710BC + lsrs r4, r1, 24 +_080710BC: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r5, 24 + asrs r0, 19 + orrs r1, r0 + lsls r0, r4, 24 + asrs r0, 14 + orrs r1, r0 + strh r1, [r2] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, r10 + bcc _08071062 + b _08071148 + .align 2, 0 +_080710DC: .4byte gUnknown_20371F8 +_080710E0: .4byte gUnknown_20375F8 +_080710E4: + adds r7, r2, 0 + cmp r7, r10 + bcs _08071148 + ldr r4, _08071170 @ =gUnknown_20375F8 + mov r8, r4 +_080710EE: + lsls r0, r7, 1 + mov r1, r8 + adds r3, r0, r1 + ldr r1, [r3] + lsls r2, r1, 27 + lsrs r2, 3 + movs r4, 0xFE + lsls r4, 24 + adds r2, r4 + lsls r0, r1, 22 + lsrs r0, 27 + subs r0, 0x2 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 17 + lsrs r1, 27 + subs r1, 0x2 + lsls r1, 24 + lsrs r4, r1, 24 + lsrs r6, r2, 24 + cmp r2, 0 + bge _0807111C + movs r6, 0 +_0807111C: + lsls r0, r5, 24 + cmp r0, 0 + bge _08071124 + movs r5, 0 +_08071124: + lsls r0, r4, 24 + cmp r0, 0 + bge _0807112C + movs r4, 0 +_0807112C: + lsls r1, r6, 24 + asrs r1, 24 + lsls r0, r5, 24 + asrs r0, 19 + orrs r1, r0 + lsls r0, r4, 24 + asrs r0, 14 + orrs r1, r0 + strh r1, [r3] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, r10 + bcc _080710EE +_08071148: + ldr r0, _08071174 @ =gUnknown_2037AB8 + ldrb r2, [r0, 0xA] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r3, 0x5 + negs r3, r3 + ands r3, r2 + orrs r3, r1 + ldr r1, _08071174 @ =gUnknown_2037AB8 + strb r3, [r1, 0xA] + movs r0, 0x4 + ands r0, r3 + cmp r0, 0 + beq _08071178 + ldrb r0, [r1, 0x7] + b _08071244 + .align 2, 0 +_08071170: .4byte gUnknown_20375F8 +_08071174: .4byte gUnknown_2037AB8 +_08071178: + ldr r2, _08071194 @ =gUnknown_2037AB8 + ldrh r4, [r2, 0x4] + lsls r5, r4, 21 + lsrs r0, r5, 27 + lsls r2, r3, 25 + lsrs r1, r2, 28 + subs r0, r1 + cmp r0, 0 + bge _0807119C + ldr r0, _08071198 @ =0xfffff83f + ands r0, r4 + ldr r3, _08071194 @ =gUnknown_2037AB8 + strh r0, [r3, 0x4] + b _080711B2 + .align 2, 0 +_08071194: .4byte gUnknown_2037AB8 +_08071198: .4byte 0xfffff83f +_0807119C: + lsrs r1, r5, 27 + lsrs r0, r2, 28 + subs r1, r0 + movs r0, 0x1F + ands r1, r0 + lsls r1, 6 + ldr r0, _080711D8 @ =0xfffff83f + ands r0, r4 + orrs r0, r1 + ldr r4, _080711DC @ =gUnknown_2037AB8 + strh r0, [r4, 0x4] +_080711B2: + ldr r1, _080711DC @ =gUnknown_2037AB8 + ldrh r0, [r1, 0x4] + movs r1, 0xF8 + lsls r1, 3 + ands r1, r0 + cmp r1, 0 + bne _08071240 + ldr r2, _080711DC @ =gUnknown_2037AB8 + ldrb r0, [r2, 0x8] + lsls r0, 26 + lsrs r0, 26 + cmp r0, 0x1 + beq _08071204 + cmp r0, 0x1 + bgt _080711E0 + cmp r0, 0 + beq _080711EA + b _0807122C + .align 2, 0 +_080711D8: .4byte 0xfffff83f +_080711DC: .4byte gUnknown_2037AB8 +_080711E0: + cmp r0, 0x2 + beq _080711EA + cmp r0, 0x3 + beq _08071220 + b _0807122C +_080711EA: + ldr r0, _080711F8 @ =gUnknown_20371F8 + ldr r1, _080711FC @ =gUnknown_20375F8 + ldr r2, _08071200 @ =0x04000100 + bl CpuSet + b _0807122C + .align 2, 0 +_080711F8: .4byte gUnknown_20371F8 +_080711FC: .4byte gUnknown_20375F8 +_08071200: .4byte 0x04000100 +_08071204: + movs r0, 0x1 + negs r0, r0 + str r0, [sp] + ldr r1, _08071218 @ =gUnknown_20375F8 + ldr r2, _0807121C @ =0x05000100 + mov r0, sp + bl CpuSet + b _0807122C + .align 2, 0 +_08071218: .4byte gUnknown_20375F8 +_0807121C: .4byte 0x05000100 +_08071220: + str r1, [sp, 0x4] + add r0, sp, 0x4 + ldr r1, _08071258 @ =gUnknown_20375F8 + ldr r2, _0807125C @ =0x05000100 + bl CpuSet +_0807122C: + ldr r2, _08071260 @ =gUnknown_2037AB8 + ldrb r1, [r2, 0x9] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldrb r0, [r2, 0xA] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0xA] +_08071240: + ldr r3, _08071260 @ =gUnknown_2037AB8 + ldrb r0, [r3, 0x7] +_08071244: + lsrs r0, 7 +_08071246: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08071258: .4byte gUnknown_20375F8 +_0807125C: .4byte 0x05000100 +_08071260: .4byte gUnknown_2037AB8 + thumb_func_end sub_8070EEC + + thumb_func_start sub_8071264 +sub_8071264: @ 8071264 + push {r4-r7,lr} + ldr r5, [sp, 0x14] + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r7, _080712EC @ =gUnknown_2037AB8 + str r0, [r7] + movs r0, 0x3F + ands r1, r0 + ldrb r4, [r7, 0x4] + movs r6, 0x40 + negs r6, r6 + adds r0, r6, 0 + ands r0, r4 + orrs r0, r1 + strb r0, [r7, 0x4] + ldrb r0, [r7, 0x8] + ands r6, r0 + orrs r6, r1 + strb r6, [r7, 0x8] + movs r0, 0x1F + adds r1, r2, 0 + ands r1, r0 + lsls r1, 6 + ldrh r4, [r7, 0x4] + ldr r0, _080712F0 @ =0xfffff83f + ands r0, r4 + orrs r0, r1 + strh r0, [r7, 0x4] + lsls r4, r3, 3 + ldrb r1, [r7, 0x5] + movs r0, 0x7 + ands r0, r1 + orrs r0, r4 + strb r0, [r7, 0x5] + ldrb r0, [r7, 0x7] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r7, 0x7] + ldrb r1, [r7, 0x9] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + movs r1, 0x1 + ands r5, r1 + lsls r5, 2 + subs r1, 0x6 + ands r0, r1 + orrs r0, r5 + subs r1, 0x4 + ands r0, r1 + strb r0, [r7, 0x9] + cmp r2, r3 + bcs _080712F4 + movs r0, 0x41 + negs r0, r0 + ands r6, r0 + b _080712F8 + .align 2, 0 +_080712EC: .4byte gUnknown_2037AB8 +_080712F0: .4byte 0xfffff83f +_080712F4: + movs r0, 0x40 + orrs r6, r0 +_080712F8: + strb r6, [r7, 0x8] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8071264 + + thumb_func_start sub_8071300 +sub_8071300: @ 8071300 + push {r4-r7,lr} + ldr r2, _08071314 @ =gUnknown_2037AB8 + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0 + bne _08071318 + movs r0, 0 + b _08071410 + .align 2, 0 +_08071314: .4byte gUnknown_2037AB8 +_08071318: + ldrb r2, [r4, 0x4] + lsls r1, r2, 26 + ldrb r3, [r4, 0x8] + lsls r0, r3, 26 + cmp r1, r0 + bcs _0807133A + lsrs r0, r1, 26 + adds r0, 0x1 + movs r1, 0x3F + ands r0, r1 + movs r1, 0x40 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x4] + movs r0, 0x2 + b _08071410 +_0807133A: + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + strb r0, [r4, 0x4] + movs r0, 0x40 + ands r0, r3 + cmp r0, 0 + bne _08071398 + ldrh r1, [r4, 0x4] + lsls r0, r1, 21 + lsrs r0, 27 + adds r0, 0x1 + movs r7, 0x1F + ands r0, r7 + lsls r0, 6 + ldr r6, _08071394 @ =0xfffff83f + adds r3, r6, 0 + ands r3, r1 + orrs r3, r0 + strh r3, [r4, 0x4] + lsls r5, r3, 21 + ldrb r0, [r4, 0x5] + lsrs r1, r5, 27 + lsrs r0, 3 + cmp r1, r0 + bls _080713E4 + ldrb r2, [r4, 0x9] + lsls r1, r2, 28 + lsrs r1, 31 + adds r1, 0x1 + movs r0, 0x1 + ands r1, r0 + lsls r1, 3 + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x9] + lsrs r0, r5, 27 + subs r0, 0x1 + ands r0, r7 + lsls r0, 6 + ands r3, r6 + b _080713E0 + .align 2, 0 +_08071394: .4byte 0xfffff83f +_08071398: + ldrh r2, [r4, 0x4] + lsls r1, r2, 21 + lsrs r0, r1, 27 + subs r0, 0x1 + movs r6, 0x1F + ands r0, r6 + lsls r0, 6 + ldr r5, _08071418 @ =0xfffff83f + adds r3, r5, 0 + ands r3, r2 + orrs r3, r0 + strh r3, [r4, 0x4] + lsrs r1, 27 + subs r1, 0x1 + ldrb r0, [r4, 0x5] + lsrs r0, 3 + cmp r1, r0 + bge _080713E4 + ldrb r2, [r4, 0x9] + lsls r1, r2, 28 + lsrs r1, 31 + adds r1, 0x1 + movs r0, 0x1 + ands r1, r0 + lsls r1, 3 + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x9] + lsls r0, r3, 21 + lsrs r0, 27 + adds r0, 0x1 + ands r0, r6 + lsls r0, 6 + ands r3, r5 +_080713E0: + orrs r3, r0 + strh r3, [r4, 0x4] +_080713E4: + ldrb r1, [r4, 0x9] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0807140C + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08071402 + movs r0, 0 + str r0, [r4] + ldrh r1, [r4, 0x4] + ldr r0, _08071418 @ =0xfffff83f + ands r0, r1 + strh r0, [r4, 0x4] +_08071402: + ldrb r1, [r4, 0x9] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x9] +_0807140C: + ldrb r0, [r4, 0x7] + lsrs r0, 7 +_08071410: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08071418: .4byte 0xfffff83f + thumb_func_end sub_8071300 + + thumb_func_start sub_807141C +sub_807141C: @ 807141C + push {r4,lr} + ldr r4, _08071468 @ =gUnknown_2037AB8 + ldrh r1, [r4] + movs r0, 0x50 + bl sub_8000A38 + ldrh r1, [r4, 0x4] + lsls r1, 21 + lsrs r1, 27 + movs r0, 0x54 + bl sub_8000A38 + ldrb r1, [r4, 0x9] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _08071460 + movs r0, 0x9 + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + negs r1, r1 + ands r0, r1 + strb r0, [r4, 0x9] + movs r0, 0 + str r0, [r4] + ldrh r1, [r4, 0x4] + ldr r0, _0807146C @ =0xfffff83f + ands r0, r1 + strh r0, [r4, 0x4] + ldrb r1, [r4, 0x7] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x7] +_08071460: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08071468: .4byte gUnknown_2037AB8 +_0807146C: .4byte 0xfffff83f + thumb_func_end sub_807141C + + thumb_func_start sub_8071470 +sub_8071470: @ 8071470 + push {r4,lr} + ldr r3, _080714A8 @ =gUnknown_2037AB8 + ldrb r4, [r3, 0xA] + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _080714CC + ldr r2, [r3, 0x8] + movs r0, 0xF8 + lsls r0, 9 + ands r0, r2 + movs r1, 0x80 + lsls r1, 7 + cmp r0, r1 + bne _080714B0 + ldrb r1, [r3, 0x7] + movs r0, 0x7F + ands r0, r1 + strb r0, [r3, 0x7] + movs r0, 0x3 + negs r0, r0 + ands r0, r4 + strb r0, [r3, 0xA] + ldr r0, [r3, 0x8] + ldr r1, _080714AC @ =0xfffe0fff + ands r0, r1 + str r0, [r3, 0x8] + b _080714C4 + .align 2, 0 +_080714A8: .4byte gUnknown_2037AB8 +_080714AC: .4byte 0xfffe0fff +_080714B0: + lsls r0, r2, 15 + lsrs r0, 27 + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + lsls r0, 12 + ldr r1, _080714C8 @ =0xfffe0fff + ands r1, r2 + orrs r1, r0 + str r1, [r3, 0x8] +_080714C4: + movs r0, 0x1 + b _080714CE + .align 2, 0 +_080714C8: .4byte 0xfffe0fff +_080714CC: + movs r0, 0 +_080714CE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8071470 + + thumb_func_start sub_80714D4 +sub_80714D4: @ 80714D4 + push {r4-r7,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 16 + lsrs r6, r2, 16 + movs r5, 0 + cmp r4, 0 + beq _08071508 +_080714E6: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080714FA + adds r0, r5, 0 + movs r1, 0x10 + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_8045274 +_080714FA: + lsrs r4, 1 + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0 + bne _080714E6 +_08071508: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80714D4 + + thumb_func_start sub_8071510 +sub_8071510: @ 8071510 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r5, 16 + lsrs r5, 16 + ldr r0, _0807153C @ =gUnknown_20371F8 + ldr r1, _08071540 @ =gUnknown_20375F8 + movs r2, 0x80 + lsls r2, 1 + bl CpuFastSet + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_80714D4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0807153C: .4byte gUnknown_20371F8 +_08071540: .4byte gUnknown_20375F8 + thumb_func_end sub_8071510 + + thumb_func_start sub_8071544 +sub_8071544: @ 8071544 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0 + beq _0807158C + movs r6, 0x1F + adds r5, r1, 0 +_08071554: + ldrh r1, [r4] + movs r2, 0x1F + ands r2, r1 + lsls r1, 16 + lsrs r3, r1, 21 + ands r3, r6 + lsrs r1, 26 + ands r1, r6 + movs r0, 0x4C + muls r2, r0 + movs r0, 0x97 + muls r0, r3 + adds r2, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + adds r2, r0 + asrs r2, 8 + lsls r0, r2, 10 + lsls r1, r2, 5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r4] + adds r4, 0x2 + subs r5, 0x1 + cmp r5, 0 + bne _08071554 +_0807158C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8071544 + + thumb_func_start sub_8071594 +sub_8071594: @ 8071594 + push {r4-r7,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0 + beq _080715E8 + movs r6, 0x1F + ldr r7, _080715F0 @ =gUnknown_83AC970 + adds r5, r1, 0 +_080715A6: + ldrh r1, [r4] + movs r2, 0x1F + ands r2, r1 + lsls r1, 16 + lsrs r3, r1, 21 + ands r3, r6 + lsrs r1, 26 + ands r1, r6 + movs r0, 0x4C + muls r2, r0 + movs r0, 0x97 + muls r0, r3 + adds r2, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + adds r2, r0 + asrs r2, 8 + cmp r2, 0x1F + bls _080715D2 + movs r2, 0x1F +_080715D2: + adds r0, r2, r7 + ldrb r2, [r0] + lsls r0, r2, 10 + lsls r1, r2, 5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r4] + adds r4, 0x2 + subs r5, 0x1 + cmp r5, 0 + bne _080715A6 +_080715E8: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080715F0: .4byte gUnknown_83AC970 + thumb_func_end sub_8071594 + + thumb_func_start sub_80715F4 +sub_80715F4: @ 80715F4 + push {r4-r7,lr} + adds r5, r0, 0 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0 + beq _08071656 + movs r7, 0x1F + adds r6, r1, 0 +_08071604: + ldrh r0, [r5] + movs r1, 0x1F + ands r1, r0 + lsls r0, 16 + lsrs r2, r0, 21 + ands r2, r7 + lsrs r3, r0, 26 + ands r3, r7 + movs r0, 0x4C + muls r1, r0 + movs r0, 0x97 + muls r0, r2 + adds r1, r0 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r3 + adds r1, r0 + asrs r1, 8 + ldr r0, _0807165C @ =0x00000133 + muls r0, r1 + lsls r0, 16 + lsrs r2, r0, 24 + lsls r0, r1, 24 + lsrs r4, r0, 24 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 20 + lsrs r3, r0, 24 + cmp r2, 0x1F + ble _08071644 + movs r2, 0x1F +_08071644: + lsls r0, r3, 10 + lsls r1, r4, 5 + orrs r0, r1 + orrs r0, r2 + strh r0, [r5] + adds r5, 0x2 + subs r6, 0x1 + cmp r6, 0 + bne _08071604 +_08071656: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0807165C: .4byte 0x00000133 + thumb_func_end sub_80715F4 + + thumb_func_start sub_8071660 +sub_8071660: @ 8071660 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + ldr r0, [sp, 0x1C] + lsls r1, 16 + lsrs r1, 16 + lsls r2, 16 + lsrs r2, 16 + mov r9, r2 + lsls r3, 16 + lsrs r3, 16 + mov r8, r3 + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + cmp r1, 0 + beq _080716EC + movs r7, 0x1F + adds r6, r1, 0 +_0807168A: + ldrh r0, [r5] + movs r1, 0x1F + ands r1, r0 + lsls r0, 16 + lsrs r2, r0, 21 + ands r2, r7 + lsrs r3, r0, 26 + ands r3, r7 + movs r0, 0x4C + muls r1, r0 + movs r0, 0x97 + muls r0, r2 + adds r1, r0 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r3 + adds r1, r0 + asrs r1, 8 + mov r0, r9 + muls r0, r1 + lsls r0, 16 + lsrs r4, r0, 24 + mov r0, r8 + muls r0, r1 + lsls r0, 16 + lsrs r2, r0, 24 + mov r0, r12 + muls r0, r1 + lsls r0, 16 + lsrs r3, r0, 24 + cmp r4, 0x1F + ble _080716CE + movs r4, 0x1F +_080716CE: + cmp r2, 0x1F + ble _080716D4 + movs r2, 0x1F +_080716D4: + cmp r3, 0x1F + ble _080716DA + movs r3, 0x1F +_080716DA: + lsls r0, r3, 10 + lsls r1, r2, 5 + orrs r0, r1 + orrs r0, r4 + strh r0, [r5] + adds r5, 0x2 + subs r6, 0x1 + cmp r6, 0 + bne _0807168A +_080716EC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8071660 + + thumb_func_start sub_80716F8 +sub_80716F8: @ 80716F8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + adds r6, r1, 0 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 24 + lsrs r3, 24 + mov r12, r3 + cmp r3, 0 + bne _0807172C + cmp r2, 0 + beq _0807179A + adds r5, r2, 0 +_08071718: + mov r1, r9 + ldrh r0, [r1] + strh r0, [r6] + movs r7, 0x2 + add r9, r7 + adds r6, 0x2 + subs r5, 0x1 + cmp r5, 0 + bne _08071718 + b _0807179A +_0807172C: + cmp r2, 0 + beq _0807179A + movs r0, 0x1F + mov r8, r0 + adds r5, r2, 0 +_08071736: + mov r7, r9 + ldrh r1, [r7] + movs r4, 0x1F + ands r4, r1 + lsls r1, 16 + lsrs r3, r1, 21 + mov r0, r8 + ands r3, r0 + lsrs r1, 26 + ands r1, r0 + movs r0, 0x4C + adds r2, r4, 0 + muls r2, r0 + movs r0, 0x97 + muls r0, r3 + adds r2, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + adds r2, r0 + asrs r2, 8 + subs r0, r2, r4 + mov r7, r12 + muls r7, r0 + adds r0, r7, 0 + lsrs r0, 4 + adds r4, r0 + subs r0, r2, r3 + mov r7, r12 + muls r7, r0 + adds r0, r7, 0 + lsrs r0, 4 + adds r3, r0 + subs r2, r1 + mov r0, r12 + muls r0, r2 + lsrs r0, 4 + adds r1, r0 + lsls r1, 10 + lsls r3, 5 + orrs r1, r3 + orrs r1, r4 + strh r1, [r6] + movs r0, 0x2 + add r9, r0 + adds r6, 0x2 + subs r5, 0x1 + cmp r5, 0 + bne _08071736 +_0807179A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80716F8 + + thumb_func_start sub_80717A8 +sub_80717A8: @ 80717A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + adds r4, r1, 0 + ldr r0, [sp, 0x20] + ldr r1, [sp, 0x24] + ldr r5, [sp, 0x28] + lsls r4, 24 + lsrs r4, 24 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 24 + lsrs r6, r3, 24 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + lsls r5, 24 + lsrs r5, 24 + mov r8, r5 + ldr r0, _08071800 @ =sub_80718B8 + bl sub_807741C + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08071804 @ =gUnknown_3005090 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r1 + strh r7, [r1, 0x8] + strh r6, [r1, 0xA] + lsls r4, 24 + asrs r4, 24 + cmp r4, 0 + blt _08071808 + strh r4, [r1, 0xE] + movs r0, 0x1 + b _08071810 + .align 2, 0 +_08071800: .4byte sub_80718B8 +_08071804: .4byte gUnknown_3005090 +_08071808: + movs r0, 0 + strh r0, [r1, 0xE] + negs r0, r4 + adds r0, 0x1 +_08071810: + strh r0, [r1, 0xC] + lsls r4, r5, 2 + cmp r6, r7 + bcs _08071828 + ldr r0, _08071858 @ =gUnknown_3005090 + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0xC + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0xC] +_08071828: + adds r0, r5, 0 + movs r1, 0x5 + mov r2, r10 + bl sub_80776E8 + ldr r0, _08071858 @ =gUnknown_3005090 + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + mov r0, r9 + strh r0, [r1, 0x16] + mov r2, r8 + strh r2, [r1, 0x18] + ldr r1, [r1] + adds r0, r5, 0 + bl _call_via_r1 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08071858: .4byte gUnknown_3005090 + thumb_func_end sub_80717A8 + + thumb_func_start sub_807185C +sub_807185C: @ 807185C + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r4, _08071880 @ =sub_80718B8 + ldr r1, _08071884 @ =gUnknown_3005090 +_08071868: + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + bne _08071888 + ldr r0, [r1] + cmp r0, r4 + bne _08071888 + movs r5, 0x18 + ldrsh r0, [r1, r5] + cmp r0, r3 + bne _08071888 + movs r0, 0x1 + b _08071892 + .align 2, 0 +_08071880: .4byte sub_80718B8 +_08071884: .4byte gUnknown_3005090 +_08071888: + adds r1, 0x28 + adds r2, 0x1 + cmp r2, 0xF + ble _08071868 + movs r0, 0 +_08071892: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_807185C + + thumb_func_start sub_8071898 +sub_8071898: @ 8071898 + push {lr} + b _080718A0 +_0807189C: + bl sub_8077508 +_080718A0: + ldr r0, _080718B4 @ =sub_80718B8 + bl sub_8077688 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0807189C + pop {r0} + bx r0 + .align 2, 0 +_080718B4: .4byte sub_80718B8 + thumb_func_end sub_8071898 + + thumb_func_start sub_80718B8 +sub_80718B8: @ 80718B8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0807190C @ =gUnknown_3005098 + adds r4, r0, r1 + adds r0, r5, 0 + movs r1, 0x5 + bl sub_8077720 + adds r3, r0, 0 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x6 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _08071930 + movs r0, 0 + strh r0, [r4, 0x8] + ldrb r1, [r4] + ldrh r2, [r4, 0xE] + adds r0, r3, 0 + bl sub_80714D4 + ldrh r1, [r4] + movs r6, 0 + ldrsh r0, [r4, r6] + ldrh r3, [r4, 0x2] + movs r6, 0x2 + ldrsh r2, [r4, r6] + cmp r0, r2 + bne _08071910 + adds r0, r5, 0 + bl sub_8077508 + b _08071930 + .align 2, 0 +_0807190C: .4byte gUnknown_3005098 +_08071910: + ldrh r0, [r4, 0x4] + adds r1, r0 + strh r1, [r4] + lsls r0, 16 + cmp r0, 0 + blt _08071926 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, r2 + blt _08071930 + b _0807192E +_08071926: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, r2 + bgt _08071930 +_0807192E: + strh r3, [r4] +_08071930: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80718B8 + + .align 2, 0 @ Don't pad with nop. |