diff options
author | YamaArashi <shadow962@live.com> | 2016-11-01 10:08:48 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-11-01 10:16:34 -0700 |
commit | 6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (patch) | |
tree | dcea69ec49430f004c17ff71b77587cafd78c69a /asm/palette.s | |
parent | fef81187dce23adc635d7f4b7fd82298eab09ec2 (diff) |
split asm files
Diffstat (limited to 'asm/palette.s')
-rw-r--r-- | asm/palette.s | 2831 |
1 files changed, 2831 insertions, 0 deletions
diff --git a/asm/palette.s b/asm/palette.s new file mode 100644 index 000000000..bead76986 --- /dev/null +++ b/asm/palette.s @@ -0,0 +1,2831 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_80A1818 +sub_80A1818: @ 80A1818 + push {lr} + lsls r0, 16 + ldr r2, =gUnknown_0852487C + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsrs r1, 14 + adds r1, r2 + ldr r0, [r1] + ldr r1, =0x02037814 + movs r2, 0x10 + bl CpuSet + ldr r0, =0x02037fd4 + ldrh r2, [r0, 0x4] + lsls r2, 21 + lsrs r2, 27 + ldrh r3, [r0, 0x6] + lsls r3, 17 + lsrs r3, 17 + movs r0, 0x80 + movs r1, 0x10 + bl pal_fade_1 + ldr r0, =sub_8149DFC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080A1862 + ldr r1, =0x03000f44 + ldr r0, =sub_80A1670 + str r0, [r1] + ldr r1, =0x03000f3c + movs r0, 0x20 + strh r0, [r1] +_080A1862: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A1818 + + thumb_func_start sub_80A1884 +sub_80A1884: @ 80A1884 + push {lr} + lsls r0, 16 + ldr r2, =gUnknown_0852487C + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsrs r1, 14 + adds r1, r2 + ldr r0, [r1] + ldr r1, =0x02037814 + movs r2, 0x10 + bl CpuSet + ldr r0, =sub_8149DFC + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080A18D6 + ldr r0, =0x02037fd4 + ldrh r2, [r0, 0x4] + lsls r2, 21 + lsrs r2, 27 + ldrh r3, [r0, 0x6] + lsls r3, 17 + lsrs r3, 17 + movs r0, 0x80 + movs r1, 0x10 + bl pal_fade_1 + ldr r1, =0x03000f3c + ldrh r0, [r1] + subs r0, 0x1 + strh r0, [r1] + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _080A18D6 + ldr r0, =0x03000f44 + str r1, [r0] +_080A18D6: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A1884 + + thumb_func_start decompress_palette +@ void decompress_palette(void *src, u16 offset, u16 size) +decompress_palette: @ 80A18F4 + push {r4-r6,lr} + adds r4, r1, 0 + adds r5, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + ldr r6, =0x02037fe8 + adds r1, r6, 0 + bl LZDecompressWram + lsls r4, 1 + ldr r1, =0x02037714 + adds r1, r4, r1 + lsrs r5, 17 + adds r0, r6, 0 + adds r2, r5, 0 + bl CpuSet + ldr r0, =0x02037b14 + adds r4, r0 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end decompress_palette + + thumb_func_start gpu_pal_apply +@ void gpu_pal_apply(void *src, int dest_offset, int mode) +gpu_pal_apply: @ 80A1938 + 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, =0x02037714 + adds r1, r4, r1 + lsrs r5, 17 + adds r2, r5, 0 + bl CpuSet + ldr r0, =0x02037b14 + adds r4, r0 + adds r0, r6, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end gpu_pal_apply + + thumb_func_start rboxid_80040B8 +rboxid_80040B8: @ 80A1970 + 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, =0x02037714 + 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, =0x02037b14 + adds r4, r1 + adds r1, r4, 0 + adds r2, r5, 0 + bl CpuSet + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end rboxid_80040B8 + + thumb_func_start copy_pal_bg_faded_to_pal_ram +@ void copy_pal_bg_faded_to_pal_ram() +copy_pal_bg_faded_to_pal_ram: @ 80A19C0 + push {r4,r5,lr} + ldr r4, =0x02037fd4 + 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 _080A1A02 + ldr r1, =0x02037b14 + movs r2, 0xA0 + lsls r2, 19 + ldr r0, =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, =0x80000200 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r0, =0x02037fe4 + str r3, [r0] + ldrb r1, [r4, 0x9] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _080A1A02 + ldrb r1, [r4, 0x7] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _080A1A02 + bl sub_80A2968 +_080A1A02: + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end copy_pal_bg_faded_to_pal_ram + + thumb_func_start fade_and_return_progress_probably +@ int fade_and_return_progress_probably() +fade_and_return_progress_probably: @ 80A1A1C + push {lr} + ldr r0, =0x02037fe4 + ldr r0, [r0] + cmp r0, 0 + beq _080A1A30 + movs r0, 0xFF + b _080A1A68 + .pool +_080A1A30: + ldr r0, =0x02037fd4 + ldrb r0, [r0, 0x9] + movs r1, 0x3 + ands r1, r0 + cmp r1, 0 + bne _080A1A48 + bl pal_fade__0 + b _080A1A56 + .pool +_080A1A48: + cmp r1, 0x1 + bne _080A1A52 + bl pal_fade__1 + b _080A1A56 +_080A1A52: + bl pal_fade__2 +_080A1A56: + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, =0x02037fe4 + ldr r0, =0x02037fd4 + ldr r0, [r0] + movs r1, 0 + orrs r0, r1 + str r0, [r2] + adds r0, r3, 0 +_080A1A68: + pop {r1} + bx r1 + .pool + thumb_func_end fade_and_return_progress_probably + + thumb_func_start sub_80A1A74 +sub_80A1A74: @ 80A1A74 + push {r4,lr} + movs r4, 0 +_080A1A78: + adds r0, r4, 0 + bl palslot_dead_struct_update + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _080A1A78 + bl pal_fade_control_reset_maybe + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80A1A74 + + thumb_func_start sub_80A1A94 +sub_80A1A94: @ 80A1A94 + push {r4-r7,lr} + movs r0, 0xA0 + lsls r0, 19 + mov r12, r0 + movs r4, 0 + ldr r7, =0x02037714 + ldr r6, =0x02037b14 + ldr r5, =0x000001ff +_080A1AA4: + 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 _080A1AA4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A1A94 + + thumb_func_start pal_fade_maybe +pal_fade_maybe: @ 80A1AD4 + 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, =0x02037fd4 + ldrb r1, [r5, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080A1B08 + movs r0, 0 + b _080A1C00 + .pool +_080A1B08: + 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 _080A1B36 + 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 +_080A1B36: + 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, =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, =0x00007fff + mov r0, r8 + ands r1, r0 + ldrh r2, [r5, 0x6] + ldr r0, =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 _080A1BB0 + movs r0, 0x41 + negs r0, r0 + ands r3, r0 + b _080A1BB4 + .pool +_080A1BB0: + movs r0, 0x40 + orrs r3, r0 +_080A1BB4: + strb r3, [r5, 0x8] + bl fade_and_return_progress_probably + ldr r4, =0x02037fd4 + ldrb r1, [r4, 0x8] + lsrs r5, r1, 7 + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x8] + ldr r0, =0x02037b14 + movs r1, 0xA0 + lsls r1, 19 + ldr r2, =0x04000100 + bl CpuSet + ldr r1, =0x02037fe4 + movs r0, 0 + str r0, [r1] + ldrb r1, [r4, 0x9] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _080A1BF0 + ldrb r1, [r4, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080A1BF0 + bl sub_80A2968 +_080A1BF0: + ldr r2, =0x02037fd4 + lsls r3, r5, 7 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + orrs r0, r3 + strb r0, [r2, 0x8] + movs r0, 0x1 +_080A1C00: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end pal_fade_maybe + + thumb_func_start sub_80A1C1C +sub_80A1C1C: @ 80A1C1C + 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_80A1A94 + 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 pal_fade_maybe + 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_80A1C1C + + thumb_func_start sub_80A1C64 +sub_80A1C64: @ 80A1C64 + push {r4-r7,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + movs r5, 0 +_080A1C6E: + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + ldr r1, =0x02037f14 + adds r4, r0, r1 + ldrb r0, [r4, 0x4] + lsls r0, 31 + cmp r0, 0 + beq _080A1CCC + ldr r2, [r4] + ldrb r0, [r2, 0x8] + lsls r0, 31 + lsrs r0, 31 + cmp r0, r7 + bne _080A1CCC + ldrh r1, [r4, 0x6] + lsls r1, 20 + lsrs r1, 25 + ldrb r0, [r2, 0xB] + lsls r0, 27 + lsrs r0, 27 + cmp r1, r0 + bne _080A1CAA + adds r0, r4, 0 + bl sub_80A1F00 + ldrb r0, [r4, 0x4] + lsls r0, 31 + cmp r0, 0 + beq _080A1CCC +_080A1CAA: + ldrb r0, [r4, 0x8] + cmp r0, 0 + bne _080A1CC0 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80A1CDC + b _080A1CC4 + .pool +_080A1CC0: + subs r0, 0x1 + strb r0, [r4, 0x8] +_080A1CC4: + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_80A1E40 +_080A1CCC: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _080A1C6E + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A1C64 + + thumb_func_start sub_80A1CDC +sub_80A1CDC: @ 80A1CDC + 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 _080A1D78 + lsrs r0, r2, 27 + cmp r6, r0 + bcs _080A1DC4 + ldr r0, =0x02037714 + mov r12, r0 + ldr r7, =0x02037b14 +_080A1D10: + 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, =0x000003ff + ands r1, r0 + lsls r1, 11 + ldr r0, =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 _080A1D10 + b _080A1DC4 + .pool +_080A1D78: + lsrs r0, r2, 27 + cmp r6, r0 + bcs _080A1DC4 + ldr r3, =0x02037b14 +_080A1D80: + 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, =0x000003ff + ands r1, r0 + lsls r1, 11 + ldr r0, =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 _080A1D80 +_080A1DC4: + ldrh r0, [r4, 0x4] + lsls r0, 21 + lsrs r0, 23 + lsls r0, 11 + ldr r1, [r4, 0x4] + ldr r2, =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, =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 _080A1E14 + ldrb r0, [r4, 0x9] + cmp r0, 0 + beq _080A1E0C + subs r0, 0x1 + strb r0, [r4, 0x9] +_080A1E0C: + ldrh r1, [r4, 0x6] + adds r0, r5, 0 + ands r0, r1 + strh r0, [r4, 0x6] +_080A1E14: + 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 + .pool + thumb_func_end sub_80A1CDC + + thumb_func_start sub_80A1E40 +sub_80A1E40: @ 80A1E40 + push {r4-r6,lr} + adds r4, r0, 0 + ldr r3, =0x02037fd4 + ldrb r1, [r3, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080A1EF4 + 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 _080A1EF4 + ldr r2, [r4] + ldrb r1, [r2, 0x8] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _080A1E9C + ldrb r1, [r3, 0x4] + lsls r1, 26 + ldrb r0, [r3, 0x8] + lsls r0, 26 + cmp r1, r0 + beq _080A1EF4 + 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 pal_fade_1 + b _080A1EF4 + .pool +_080A1E9C: + ldrb r1, [r3, 0x4] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + bne _080A1EF4 + ldrb r0, [r4, 0x8] + ldrb r1, [r2, 0xA] + cmp r0, r1 + beq _080A1EF4 + 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 _080A1EF4 + ldr r6, =0x02037b14 +_080A1EC8: + 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 _080A1EC8 +_080A1EF4: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A1E40 + + thumb_func_start sub_80A1F00 +sub_80A1F00: @ 80A1F00 + push {lr} + adds r3, r0, 0 + ldrb r0, [r3, 0x9] + cmp r0, 0 + bne _080A1F50 + ldr r2, [r3] + ldrb r0, [r2, 0xB] + lsrs r0, 5 + cmp r0, 0 + bne _080A1F40 + ldrh r1, [r3, 0x6] + ldr r0, =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, =0xffe007ff + ands r1, r2 + orrs r1, r0 + str r1, [r3, 0x4] + b _080A1F54 + .pool +_080A1F40: + cmp r0, 0 + blt _080A1F54 + cmp r0, 0x2 + bgt _080A1F54 + ldrh r0, [r2] + bl sub_80A1F58 + b _080A1F54 +_080A1F50: + subs r0, 0x1 + strb r0, [r3, 0x9] +_080A1F54: + pop {r0} + bx r0 + thumb_func_end sub_80A1F00 + + thumb_func_start sub_80A1F58 +sub_80A1F58: @ 80A1F58 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_80A20A4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x10 + beq _080A1F6E + bl palslot_dead_struct_update +_080A1F6E: + pop {r0} + bx r0 + thumb_func_end sub_80A1F58 + + thumb_func_start palslot_dead_struct_update +palslot_dead_struct_update: @ 80A1F74 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x02037f14 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r0, =gUnknown_0852488C + 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, =0xfffff803 + ands r0, r2 + strh r0, [r1, 0x4] + ldr r0, [r1, 0x4] + ldr r2, =0xffe007ff + ands r0, r2 + str r0, [r1, 0x4] + ldrh r2, [r1, 0x6] + ldr r0, =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 + .pool + thumb_func_end palslot_dead_struct_update + + thumb_func_start pal_fade_control_reset_maybe +pal_fade_control_reset_maybe: @ 80A1FD0 + ldr r2, =0x02037fd4 + 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, =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, =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, =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 + .pool + thumb_func_end pal_fade_control_reset_maybe + + thumb_func_start sub_80A2048 +sub_80A2048: @ 80A2048 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_80A20A4 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x10 + beq _080A206C + ldr r1, =0x02037f14 + 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] +_080A206C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2048 + + thumb_func_start sub_80A2074 +sub_80A2074: @ 80A2074 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_80A20A4 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x10 + beq _080A209A + ldr r0, =0x02037f14 + 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] +_080A209A: + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2074 + + thumb_func_start sub_80A20A4 +sub_80A20A4: @ 80A20A4 + push {lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r1, 0 + ldr r3, =0x02037f14 +_080A20AE: + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrh r0, [r0] + cmp r0, r2 + bne _080A20C8 + adds r0, r1, 0 + b _080A20D4 + .pool +_080A20C8: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0xF + bls _080A20AE + movs r0, 0x10 +_080A20D4: + pop {r1} + bx r1 + thumb_func_end sub_80A20A4 + + thumb_func_start pal_fade__0 +pal_fade__0: @ 80A20D8 + push {r4-r7,lr} + ldr r4, =0x02037fd4 + ldrb r1, [r4, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A20F0 + movs r0, 0 + b _080A220C + .pool +_080A20F0: + bl sub_80A29BC + lsls r0, 24 + cmp r0, 0 + beq _080A20FE + ldrb r0, [r4, 0x7] + b _080A220A +_080A20FE: + ldrb r1, [r4, 0xA] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080A2132 + ldrb r2, [r4, 0x4] + lsls r1, r2, 26 + ldrb r0, [r4, 0x8] + lsls r0, 26 + cmp r1, r0 + bcs _080A212A + 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 _080A220C +_080A212A: + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + strb r0, [r4, 0x4] +_080A2132: + movs r5, 0 + ldr r2, =0x02037fd4 + ldrb r1, [r2, 0xA] + movs r0, 0x4 + ands r0, r1 + adds r7, r2, 0 + cmp r0, 0 + bne _080A214C + ldrh r4, [r7] + b _080A2152 + .pool +_080A214C: + ldrh r4, [r7, 0x2] + movs r5, 0x80 + lsls r5, 1 +_080A2152: + cmp r4, 0 + beq _080A2184 + ldr r7, =0x02037fd4 + adds r6, r7, 0 +_080A215A: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080A2176 + 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 pal_fade_1 +_080A2176: + lsrs r4, 1 + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0 + bne _080A215A +_080A2184: + 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 _080A2208 + 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 _080A21C4 + str r3, [r7] + movs r0, 0x2 + orrs r4, r0 + strb r4, [r7, 0xA] + b _080A2208 + .pool +_080A21C4: + ldrb r1, [r7, 0x8] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080A21E0 + lsrs r3, r2, 27 + lsls r0, r4, 25 + lsrs r0, 28 + adds r3, r0, r3 + lsrs r0, r5, 27 + cmp r3, r0 + ble _080A21F6 + adds r3, r0, 0 + b _080A21F6 +_080A21E0: + 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 _080A21F6 + adds r3, r1, 0 +_080A21F6: + lsls r0, r3, 24 + asrs r0, 24 + movs r1, 0x1F + ands r0, r1 + lsls r0, 6 + ldr r1, =0xfffff83f + ands r1, r6 + orrs r1, r0 + strh r1, [r7, 0x4] +_080A2208: + ldrb r0, [r7, 0x7] +_080A220A: + lsrs r0, 7 +_080A220C: + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end pal_fade__0 + + thumb_func_start sub_80A2218 +sub_80A2218: @ 80A2218 + push {r4-r7,lr} + adds r1, r0, 0 + movs r3, 0 + cmp r1, 0 + beq _080A2256 + ldr r7, =0x02037b14 +_080A2224: + movs r0, 0x1 + ands r0, r1 + lsrs r4, r1, 1 + adds r5, r3, 0 + adds r5, 0x10 + cmp r0, 0 + beq _080A224C + movs r2, 0 + adds r6, r7, 0 +_080A2236: + 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 _080A2236 +_080A224C: + adds r1, r4, 0 + lsls r0, r5, 16 + lsrs r3, r0, 16 + cmp r1, 0 + bne _080A2224 +_080A2256: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2218 + + thumb_func_start sub_80A2260 +sub_80A2260: @ 80A2260 + 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 _080A231C + lsls r1, 24 + str r1, [sp, 0x8] +_080A228A: + 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 _080A230E + movs r4, 0 + ldr r2, =0x02037b14 + 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 +_080A22B6: + 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, =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 _080A22B6 +_080A230E: + ldr r4, [sp, 0xC] + mov r1, r10 + lsls r0, r1, 16 + lsrs r0, 16 + mov r9, r0 + cmp r4, 0 + bne _080A228A +_080A231C: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2260 + + thumb_func_start sub_80A2334 +sub_80A2334: @ 80A2334 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r1, r0, 0 + movs r3, 0 + cmp r1, 0 + beq _080A237E + ldr r0, =0x02037b14 + mov r8, r0 + ldr r0, =0x02037714 + mov r12, r0 +_080A234A: + movs r0, 0x1 + ands r0, r1 + lsrs r4, r1, 1 + adds r5, r3, 0 + adds r5, 0x10 + cmp r0, 0 + beq _080A2374 + movs r2, 0 + mov r7, r8 + mov r6, r12 +_080A235E: + 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 _080A235E +_080A2374: + adds r1, r4, 0 + lsls r0, r5, 16 + lsrs r3, r0, 16 + cmp r1, 0 + bne _080A234A +_080A237E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2334 + + thumb_func_start sub_80A2390 +sub_80A2390: @ 80A2390 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, =0x02037fd4 + 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_80A23B4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2390 + + thumb_func_start sub_80A23B4 +sub_80A23B4: @ 80A23B4 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r2, =0x02037fd4 + 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 _080A2406 + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, =0x02037b14 + ldr r2, =0x01000200 + mov r0, sp + bl CpuSet +_080A2406: + cmp r4, 0 + bne _080A241C + mov r0, sp + adds r0, 0x2 + ldr r2, =0x00007fff + adds r1, r2, 0 + strh r1, [r0] + ldr r1, =0x02037b14 + ldr r2, =0x01000200 + bl CpuSet +_080A241C: + bl fade_and_return_progress_probably + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A23B4 + + thumb_func_start pal_fade__1 +pal_fade__1: @ 80A2438 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r4, =0x02037fd4 + ldrb r1, [r4, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080A2458 + movs r0, 0 + b _080A2792 + .pool +_080A2458: + bl sub_80A29BC + lsls r0, 24 + cmp r0, 0 + beq _080A2466 + ldrb r0, [r4, 0x7] + b _080A2790 +_080A2466: + ldrb r1, [r4, 0xA] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080A247C + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x80 + lsls r0, 2 + mov r10, r0 + b _080A2484 +_080A247C: + movs r2, 0 + movs r1, 0x80 + lsls r1, 1 + mov r10, r1 +_080A2484: + ldr r1, =0x02037fd4 + ldrb r0, [r1, 0x8] + lsls r0, 26 + lsrs r0, 26 + cmp r0, 0x1 + beq _080A2544 + cmp r0, 0x1 + bgt _080A24A0 + cmp r0, 0 + beq _080A24AE + b _080A2694 + .pool +_080A24A0: + cmp r0, 0x2 + bne _080A24A6 + b _080A25A8 +_080A24A6: + cmp r0, 0x3 + bne _080A24AC + b _080A2630 +_080A24AC: + b _080A2694 +_080A24AE: + adds r7, r2, 0 + cmp r7, r10 + bcc _080A24B6 + b _080A2694 +_080A24B6: + lsls r2, r7, 1 + ldr r0, =0x02037714 + 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, =0x02037b14 + 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 _080A2500 + lsrs r6, r3, 24 +_080A2500: + lsls r0, r5, 24 + asrs r0, 24 + mov r2, r12 + lsls r1, r2, 24 + cmp r0, r12 + bge _080A250E + lsrs r5, r1, 24 +_080A250E: + lsls r0, r4, 24 + asrs r0, 24 + mov r3, r8 + lsls r1, r3, 24 + cmp r0, r8 + bge _080A251C + lsrs r4, r1, 24 +_080A251C: + 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 _080A24B6 + b _080A2694 + .pool +_080A2544: + adds r7, r2, 0 + cmp r7, r10 + bcc _080A254C + b _080A2694 +_080A254C: + lsls r1, r7, 1 + ldr r0, =0x02037b14 + 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 _080A2572 + movs r6, 0x1F +_080A2572: + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0x1F + ble _080A257C + movs r5, 0x1F +_080A257C: + lsls r0, r4, 24 + asrs r0, 24 + cmp r0, 0x1F + ble _080A2586 + movs r4, 0x1F +_080A2586: + 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 _080A254C + b _080A2694 + .pool +_080A25A8: + adds r7, r2, 0 + cmp r7, r10 + bcs _080A2694 +_080A25AE: + lsls r2, r7, 1 + ldr r0, =0x02037714 + 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, =0x02037b14 + 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 _080A25EC + lsrs r6, r3, 24 +_080A25EC: + lsls r0, r5, 24 + asrs r0, 24 + mov r3, r12 + lsls r1, r3, 24 + cmp r0, r12 + ble _080A25FA + lsrs r5, r1, 24 +_080A25FA: + lsls r0, r4, 24 + asrs r0, 24 + mov r3, r8 + lsls r1, r3, 24 + cmp r0, r8 + ble _080A2608 + lsrs r4, r1, 24 +_080A2608: + 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 _080A25AE + b _080A2694 + .pool +_080A2630: + adds r7, r2, 0 + cmp r7, r10 + bcs _080A2694 + ldr r4, =0x02037b14 + mov r8, r4 +_080A263A: + 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 _080A2668 + movs r6, 0 +_080A2668: + lsls r0, r5, 24 + cmp r0, 0 + bge _080A2670 + movs r5, 0 +_080A2670: + lsls r0, r4, 24 + cmp r0, 0 + bge _080A2678 + movs r4, 0 +_080A2678: + 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 _080A263A +_080A2694: + ldr r0, =0x02037fd4 + 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, =0x02037fd4 + strb r3, [r1, 0xA] + movs r0, 0x4 + ands r0, r3 + cmp r0, 0 + beq _080A26C4 + ldrb r0, [r1, 0x7] + b _080A2790 + .pool +_080A26C4: + ldr r2, =0x02037fd4 + 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 _080A26E8 + ldr r0, =0xfffff83f + ands r0, r4 + ldr r3, =0x02037fd4 + strh r0, [r3, 0x4] + b _080A26FE + .pool +_080A26E8: + lsrs r1, r5, 27 + lsrs r0, r2, 28 + subs r1, r0 + movs r0, 0x1F + ands r1, r0 + lsls r1, 6 + ldr r0, =0xfffff83f + ands r0, r4 + orrs r0, r1 + ldr r4, =0x02037fd4 + strh r0, [r4, 0x4] +_080A26FE: + ldr r1, =0x02037fd4 + ldrh r0, [r1, 0x4] + movs r1, 0xF8 + lsls r1, 3 + ands r1, r0 + cmp r1, 0 + bne _080A278C + ldr r2, =0x02037fd4 + ldrb r0, [r2, 0x8] + lsls r0, 26 + lsrs r0, 26 + cmp r0, 0x1 + beq _080A2750 + cmp r0, 0x1 + bgt _080A272C + cmp r0, 0 + beq _080A2736 + b _080A2778 + .pool +_080A272C: + cmp r0, 0x2 + beq _080A2736 + cmp r0, 0x3 + beq _080A276C + b _080A2778 +_080A2736: + ldr r0, =0x02037714 + ldr r1, =0x02037b14 + ldr r2, =0x04000100 + bl CpuSet + b _080A2778 + .pool +_080A2750: + movs r0, 0x1 + negs r0, r0 + str r0, [sp] + ldr r1, =0x02037b14 + ldr r2, =0x05000100 + mov r0, sp + bl CpuSet + b _080A2778 + .pool +_080A276C: + str r1, [sp, 0x4] + add r0, sp, 0x4 + ldr r1, =0x02037b14 + ldr r2, =0x05000100 + bl CpuSet +_080A2778: + ldr r2, =0x02037fd4 + 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] +_080A278C: + ldr r3, =0x02037fd4 + ldrb r0, [r3, 0x7] +_080A2790: + lsrs r0, 7 +_080A2792: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end pal_fade__1 + + thumb_func_start sub_80A27B0 +sub_80A27B0: @ 80A27B0 + 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, =0x02037fd4 + 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, =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 _080A2840 + movs r0, 0x41 + negs r0, r0 + ands r6, r0 + b _080A2844 + .pool +_080A2840: + movs r0, 0x40 + orrs r6, r0 +_080A2844: + strb r6, [r7, 0x8] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A27B0 + + thumb_func_start pal_fade__2 +pal_fade__2: @ 80A284C + push {r4-r7,lr} + ldr r2, =0x02037fd4 + ldrb r1, [r2, 0x7] + movs r0, 0x80 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0 + bne _080A2864 + movs r0, 0 + b _080A295C + .pool +_080A2864: + ldrb r2, [r4, 0x4] + lsls r1, r2, 26 + ldrb r3, [r4, 0x8] + lsls r0, r3, 26 + cmp r1, r0 + bcs _080A2886 + 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 _080A295C +_080A2886: + movs r0, 0x40 + negs r0, r0 + ands r0, r2 + strb r0, [r4, 0x4] + movs r0, 0x40 + ands r0, r3 + cmp r0, 0 + bne _080A28E4 + 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, =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 _080A2930 + 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 _080A292C + .pool +_080A28E4: + 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, =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 _080A2930 + 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 +_080A292C: + orrs r3, r0 + strh r3, [r4, 0x4] +_080A2930: + ldrb r1, [r4, 0x9] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080A2958 + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080A294E + movs r0, 0 + str r0, [r4] + ldrh r1, [r4, 0x4] + ldr r0, =0xfffff83f + ands r0, r1 + strh r0, [r4, 0x4] +_080A294E: + ldrb r1, [r4, 0x9] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x9] +_080A2958: + ldrb r0, [r4, 0x7] + lsrs r0, 7 +_080A295C: + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end pal_fade__2 + + thumb_func_start sub_80A2968 +sub_80A2968: @ 80A2968 + push {r4,lr} + ldr r4, =0x02037fd4 + ldrh r1, [r4] + movs r0, 0x50 + bl SetGpuReg + ldrh r1, [r4, 0x4] + lsls r1, 21 + lsrs r1, 27 + movs r0, 0x54 + bl SetGpuReg + ldrb r1, [r4, 0x9] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080A29AC + 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, =0xfffff83f + ands r0, r1 + strh r0, [r4, 0x4] + ldrb r1, [r4, 0x7] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x7] +_080A29AC: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2968 + + thumb_func_start sub_80A29BC +sub_80A29BC: @ 80A29BC + push {r4,lr} + ldr r3, =0x02037fd4 + ldrb r4, [r3, 0xA] + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _080A2A18 + ldr r2, [r3, 0x8] + movs r0, 0xF8 + lsls r0, 9 + ands r0, r2 + movs r1, 0x80 + lsls r1, 7 + cmp r0, r1 + bne _080A29FC + 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, =0xfffe0fff + ands r0, r1 + str r0, [r3, 0x8] + b _080A2A10 + .pool +_080A29FC: + lsls r0, r2, 15 + lsrs r0, 27 + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + lsls r0, 12 + ldr r1, =0xfffe0fff + ands r1, r2 + orrs r1, r0 + str r1, [r3, 0x8] +_080A2A10: + movs r0, 0x1 + b _080A2A1A + .pool +_080A2A18: + movs r0, 0 +_080A2A1A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80A29BC + + thumb_func_start sub_80A2A20 +sub_80A2A20: @ 80A2A20 + 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 _080A2A54 +_080A2A32: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080A2A46 + adds r0, r5, 0 + movs r1, 0x10 + adds r2, r7, 0 + adds r3, r6, 0 + bl pal_fade_1 +_080A2A46: + lsrs r4, 1 + adds r0, r5, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r4, 0 + bne _080A2A32 +_080A2A54: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A2A20 + + thumb_func_start sub_80A2A5C +sub_80A2A5C: @ 80A2A5C + push {r4,r5,lr} + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + ldr r4, =0x02037714 + ldr r5, =0x02037b14 + ldr r3, =0x040000d4 + str r4, [r3] + str r5, [r3, 0x4] + ldr r4, =0x84000100 + str r4, [r3, 0x8] + ldr r3, [r3, 0x8] + bl sub_80A2A20 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2A5C + + thumb_func_start TintPalette_GrayScale +TintPalette_GrayScale: @ 80A2A90 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0 + beq _080A2AD8 + movs r6, 0x1F + adds r5, r1, 0 +_080A2AA0: + 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 _080A2AA0 +_080A2AD8: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end TintPalette_GrayScale + + thumb_func_start sub_80A2AE0 +sub_80A2AE0: @ 80A2AE0 + push {r4-r7,lr} + adds r4, r0, 0 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0 + beq _080A2B34 + movs r6, 0x1F + ldr r7, =gUnknown_0852489C + adds r5, r1, 0 +_080A2AF2: + 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 _080A2B1E + movs r2, 0x1F +_080A2B1E: + 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 _080A2AF2 +_080A2B34: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2AE0 + + thumb_func_start TintPalette_SepiaTone +TintPalette_SepiaTone: @ 80A2B40 + push {r4-r7,lr} + adds r5, r0, 0 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0 + beq _080A2BA2 + movs r7, 0x1F + adds r6, r1, 0 +_080A2B50: + 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, =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 _080A2B90 + movs r2, 0x1F +_080A2B90: + 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 _080A2B50 +_080A2BA2: + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end TintPalette_SepiaTone + + thumb_func_start sub_80A2BAC +sub_80A2BAC: @ 80A2BAC + 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 _080A2C38 + movs r7, 0x1F + adds r6, r1, 0 +_080A2BD6: + 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 _080A2C1A + movs r4, 0x1F +_080A2C1A: + cmp r2, 0x1F + ble _080A2C20 + movs r2, 0x1F +_080A2C20: + cmp r3, 0x1F + ble _080A2C26 + movs r3, 0x1F +_080A2C26: + 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 _080A2BD6 +_080A2C38: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80A2BAC + + thumb_func_start sub_80A2C44 +sub_80A2C44: @ 80A2C44 + 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, =sub_80A2D54 + bl CreateTask + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =0x03005e00 + 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 _080A2CA4 + strh r4, [r1, 0xE] + movs r0, 0x1 + b _080A2CAC + .pool +_080A2CA4: + movs r0, 0 + strh r0, [r1, 0xE] + negs r0, r4 + adds r0, 0x1 +_080A2CAC: + strh r0, [r1, 0xC] + lsls r4, r5, 2 + cmp r6, r7 + bcs _080A2CC4 + ldr r0, =0x03005e00 + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0xC + ldrsh r0, [r1, r2] + negs r0, r0 + strh r0, [r1, 0xC] +_080A2CC4: + adds r0, r5, 0 + movs r1, 0x5 + mov r2, r10 + bl SetWordTaskArg + ldr r0, =0x03005e00 + 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 + .pool + thumb_func_end sub_80A2C44 + + thumb_func_start sub_80A2CF8 +sub_80A2CF8: @ 80A2CF8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r4, =sub_80A2D54 + ldr r1, =0x03005e00 +_080A2D04: + ldrb r0, [r1, 0x4] + cmp r0, 0x1 + bne _080A2D24 + ldr r0, [r1] + cmp r0, r4 + bne _080A2D24 + movs r5, 0x18 + ldrsh r0, [r1, r5] + cmp r0, r3 + bne _080A2D24 + movs r0, 0x1 + b _080A2D2E + .pool +_080A2D24: + adds r1, 0x28 + adds r2, 0x1 + cmp r2, 0xF + ble _080A2D04 + movs r0, 0 +_080A2D2E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80A2CF8 + + thumb_func_start sub_80A2D34 +sub_80A2D34: @ 80A2D34 + push {lr} + b _080A2D3C +_080A2D38: + bl DestroyTask +_080A2D3C: + ldr r0, =sub_80A2D54 + bl FindTaskIdByFunc + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080A2D38 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80A2D34 + + thumb_func_start sub_80A2D54 +sub_80A2D54: @ 80A2D54 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =0x03005e08 + adds r4, r0, r1 + adds r0, r5, 0 + movs r1, 0x5 + bl GetWordTaskArg + 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 _080A2DCC + movs r0, 0 + strh r0, [r4, 0x8] + ldrb r1, [r4] + ldrh r2, [r4, 0xE] + adds r0, r3, 0 + bl sub_80A2A20 + 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 _080A2DAC + adds r0, r5, 0 + bl DestroyTask + b _080A2DCC + .pool +_080A2DAC: + ldrh r0, [r4, 0x4] + adds r1, r0 + strh r1, [r4] + lsls r0, 16 + cmp r0, 0 + blt _080A2DC2 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, r2 + blt _080A2DCC + b _080A2DCA +_080A2DC2: + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, r2 + bgt _080A2DCC +_080A2DCA: + strh r3, [r4] +_080A2DCC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80A2D54 + + .align 2, 0 @ Don't pad with nop. |