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/roulette_util.s | |
parent | fef81187dce23adc635d7f4b7fd82298eab09ec2 (diff) |
split asm files
Diffstat (limited to 'asm/roulette_util.s')
-rw-r--r-- | asm/roulette_util.s | 1431 |
1 files changed, 1431 insertions, 0 deletions
diff --git a/asm/roulette_util.s b/asm/roulette_util.s new file mode 100644 index 000000000..04dc39a0c --- /dev/null +++ b/asm/roulette_util.s @@ -0,0 +1,1431 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_8151678 +sub_8151678: @ 8151678 + push {lr} + movs r1, 0 + strb r1, [r0] + strh r1, [r0, 0x2] + adds r0, 0x4 + movs r2, 0xC0 + bl memset + pop {r0} + bx r0 + thumb_func_end sub_8151678 + + thumb_func_start sub_815168C +sub_815168C: @ 815168C + push {r4-r7,lr} + adds r3, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r6, 0xF + bhi _081516A8 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r5, r3, r0 + ldrb r7, [r5, 0x4] + lsrs r0, r7, 7 + cmp r0, 0 + beq _081516AC +_081516A8: + movs r0, 0xFF + b _0815170A +_081516AC: + ldrh r0, [r2] + movs r4, 0 + strh r0, [r5, 0x8] + ldrh r0, [r2, 0x2] + strh r0, [r5, 0xA] + ldrb r0, [r2, 0x4] + strb r0, [r5, 0xC] + ldrb r0, [r2, 0x5] + strb r0, [r5, 0xD] + ldrb r0, [r2, 0x6] + strb r0, [r5, 0xE] + ldrb r3, [r2, 0x7] + lsls r0, r3, 27 + lsrs r0, 27 + ldrb r2, [r5, 0xF] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + movs r0, 0x60 + ands r0, r3 + movs r2, 0x61 + negs r2, r2 + ands r1, r2 + orrs r1, r0 + lsls r3, 24 + asrs r3, 31 + lsls r3, 7 + movs r0, 0x7F + ands r1, r0 + orrs r1, r3 + strb r1, [r5, 0xF] + subs r0, 0xFF + ands r0, r7 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r5, 0x4] + strb r4, [r5, 0x6] + strb r4, [r5, 0x5] + lsls r1, 24 + cmp r1, 0 + bge _08151704 + movs r0, 0xFF + b _08151706 +_08151704: + movs r0, 0x1 +_08151706: + strb r0, [r5, 0x7] + adds r0, r6, 0 +_0815170A: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_815168C + + thumb_func_start sub_8151710 +sub_8151710: @ 8151710 + push {r4,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r4, r1, 0 + cmp r4, 0xF + bhi _0815173C + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r1, r2, r0 + ldrb r0, [r1, 0x4] + lsrs r0, 7 + cmp r0, 0 + beq _0815173C + adds r0, r1, 0x4 + movs r1, 0 + movs r2, 0xC + bl memset + adds r0, r4, 0 + b _0815173E +_0815173C: + movs r0, 0xFF +_0815173E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8151710 + + thumb_func_start sub_8151744 +sub_8151744: @ 8151744 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r5, r0, 0 + movs r0, 0 + mov r12, r0 + ldrb r1, [r5, 0x8] + cmp r12, r1 + bcc _0815175C + b _081518F4 +_0815175C: + movs r7, 0x1F + ldr r0, =0xfffffc1f + mov r10, r0 + movs r1, 0x7D + negs r1, r1 + mov r9, r1 + movs r0, 0x1F + mov r8, r0 +_0815176C: + ldrh r0, [r5, 0x6] + add r0, r12 + lsls r0, 1 + ldr r1, =0x02037b14 + adds r3, r0, r1 + ldr r1, =0x02037714 + adds r6, r0, r1 + ldrb r0, [r5] + lsls r0, 25 + lsrs r0, 25 + cmp r0, 0x1 + beq _08151798 + cmp r0, 0x2 + beq _081517F6 + b _081518E2 + .pool +_08151798: + ldr r0, [r3] + lsls r2, r0, 27 + lsrs r0, r2, 27 + movs r1, 0x3 + ldrsb r1, [r5, r1] + adds r0, r1 + cmp r0, 0x1F + bhi _081517BA + lsrs r0, r2, 27 + adds r0, r1 + ands r0, r7 + ldrb r2, [r3] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_081517BA: + ldr r0, [r3] + lsls r2, r0, 22 + lsrs r0, r2, 27 + movs r1, 0x3 + ldrsb r1, [r5, r1] + adds r0, r1 + cmp r0, 0x1F + bhi _081517DE + lsrs r0, r2, 27 + adds r0, r1 + mov r1, r8 + ands r0, r1 + lsls r0, 5 + ldrh r2, [r3] + mov r1, r10 + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_081517DE: + ldr r0, [r3] + lsls r2, r0, 17 + lsrs r0, r2, 27 + movs r1, 0x3 + ldrsb r1, [r5, r1] + adds r0, r1 + cmp r0, 0x1F + bls _081517F0 + b _081518E2 +_081517F0: + lsrs r0, r2, 27 + adds r0, r1 + b _081518D4 +_081517F6: + movs r0, 0x3 + ldrsb r0, [r5, r0] + cmp r0, 0 + bge _08151868 + ldr r0, [r3] + lsls r4, r0, 27 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 27 + lsrs r0, 27 + cmp r1, r0 + blt _08151826 + lsrs r0, r4, 27 + adds r0, r2 + ands r0, r7 + ldrb r2, [r3] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_08151826: + ldr r0, [r3] + lsls r4, r0, 22 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 22 + lsrs r0, 27 + cmp r1, r0 + blt _08151850 + lsrs r0, r4, 27 + adds r0, r2 + mov r1, r8 + ands r0, r1 + lsls r0, 5 + ldrh r2, [r3] + mov r1, r10 + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_08151850: + ldr r0, [r3] + lsls r4, r0, 17 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 17 + lsrs r0, 27 + cmp r1, r0 + blt _081518E2 + b _081518D0 +_08151868: + ldr r0, [r3] + lsls r4, r0, 27 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 27 + lsrs r0, 27 + cmp r1, r0 + bgt _08151890 + lsrs r0, r4, 27 + adds r0, r2 + ands r0, r7 + ldrb r2, [r3] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_08151890: + ldr r0, [r3] + lsls r4, r0, 22 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 22 + lsrs r0, 27 + cmp r1, r0 + bgt _081518BA + lsrs r0, r4, 27 + adds r0, r2 + mov r1, r8 + ands r0, r1 + lsls r0, 5 + ldrh r2, [r3] + mov r1, r10 + ands r1, r2 + orrs r1, r0 + strh r1, [r3] +_081518BA: + ldr r0, [r3] + lsls r4, r0, 17 + lsrs r1, r4, 27 + movs r2, 0x3 + ldrsb r2, [r5, r2] + adds r1, r2 + ldr r0, [r6] + lsls r0, 17 + lsrs r0, 27 + cmp r1, r0 + bgt _081518E2 +_081518D0: + lsrs r0, r4, 27 + adds r0, r2 +_081518D4: + ands r0, r7 + lsls r0, 2 + ldrb r2, [r3, 0x1] + mov r1, r9 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] +_081518E2: + mov r0, r12 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + ldrb r0, [r5, 0x8] + cmp r12, r0 + bcs _081518F4 + b _0815176C +_081518F4: + ldrb r1, [r5, 0x2] + adds r0, r1, 0x1 + strb r0, [r5, 0x2] + ldrb r0, [r5, 0xB] + lsls r0, 27 + lsls r1, 24 + asrs r0, 3 + cmp r1, r0 + beq _0815190A + movs r0, 0 + b _0815193E +_0815190A: + movs r0, 0 + strb r0, [r5, 0x2] + movs r0, 0x3 + ldrsb r0, [r5, r0] + negs r0, r0 + strb r0, [r5, 0x3] + ldrb r2, [r5] + movs r1, 0x7F + movs r0, 0x7F + ands r0, r2 + cmp r0, 0x1 + bne _0815192A + lsls r0, r2, 25 + lsrs r0, 25 + adds r0, 0x1 + b _08151930 +_0815192A: + lsls r0, r2, 25 + lsrs r0, 25 + subs r0, 0x1 +_08151930: + ands r0, r1 + movs r1, 0x80 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5] + movs r0, 0x1 +_0815193E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8151744 + + thumb_func_start sub_815194C +sub_815194C: @ 815194C + push {r4,r5,lr} + adds r3, r0, 0 + movs r2, 0 + ldrb r0, [r3] + lsls r0, 25 + lsrs r0, 25 + cmp r0, 0x1 + beq _08151962 + cmp r0, 0x2 + beq _08151990 + b _081519CA +_08151962: + ldrb r0, [r3, 0x8] + cmp r2, r0 + bcs _08151982 + ldr r4, =0x02037b14 +_0815196A: + ldrh r0, [r3, 0x6] + adds r0, r2 + lsls r0, 1 + adds r0, r4 + ldrh r1, [r3, 0x4] + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r3, 0x8] + cmp r2, r0 + bcc _0815196A +_08151982: + ldrb r2, [r3] + lsls r1, r2, 25 + lsrs r1, 25 + adds r1, 0x1 + b _081519BC + .pool +_08151990: + ldrb r0, [r3, 0x8] + cmp r2, r0 + bcs _081519B4 + ldr r5, =0x02037b14 + ldr r4, =0x02037714 +_0815199A: + ldrh r0, [r3, 0x6] + adds r0, r2 + lsls r0, 1 + adds r1, r0, r5 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r3, 0x8] + cmp r2, r0 + bcc _0815199A +_081519B4: + ldrb r2, [r3] + lsls r1, r2, 25 + lsrs r1, 25 + subs r1, 0x1 +_081519BC: + movs r0, 0x7F + ands r1, r0 + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_081519CA: + movs r0, 0x1 + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_815194C + + thumb_func_start task_tutorial_controls_fadein +task_tutorial_controls_fadein: @ 81519DC + push {r4-r6,lr} + adds r4, r0, 0 + movs r5, 0 + ldrb r0, [r4] + cmp r0, 0 + beq _08151A40 +_081519E8: + ldrh r0, [r4, 0x2] + asrs r0, r5 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08151A36 + lsls r1, r5, 1 + adds r0, r1, r5 + lsls r3, r0, 2 + adds r2, r4, r3 + ldrb r0, [r2, 0x5] + subs r0, 0x1 + strb r0, [r2, 0x5] + lsls r0, 24 + lsrs r0, 24 + adds r6, r1, 0 + cmp r0, 0xFF + bne _08151A36 + ldrh r0, [r2, 0x8] + movs r2, 0x80 + lsls r2, 8 + adds r1, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08151A24 + adds r0, r3, 0x4 + adds r0, r4, r0 + bl sub_8151744 + b _08151A2C +_08151A24: + adds r0, r3, 0x4 + adds r0, r4, r0 + bl sub_815194C +_08151A2C: + adds r0, r6, r5 + lsls r0, 2 + adds r0, r4, r0 + ldrb r1, [r0, 0xD] + strb r1, [r0, 0x5] +_08151A36: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _081519E8 +_08151A40: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end task_tutorial_controls_fadein + + thumb_func_start sub_8151A48 +sub_8151A48: @ 8151A48 + push {r4-r7,lr} + adds r3, r0, 0 + lsls r1, 16 + lsrs r6, r1, 16 + movs r4, 0 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + movs r5, 0x1 + movs r7, 0x80 + negs r7, r7 +_08151A5E: + adds r0, r6, 0 + asrs r0, r4 + ands r0, r5 + cmp r0, 0 + beq _08151A8C + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r2, r3, r0 + ldrb r0, [r2, 0x4] + lsrs r0, 7 + cmp r0, 0 + beq _08151A8C + adds r0, r5, 0 + lsls r0, r4 + ldrh r1, [r3, 0x2] + orrs r0, r1 + strh r0, [r3, 0x2] + ldrb r1, [r2, 0x4] + adds r0, r7, 0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2, 0x4] +_08151A8C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _08151A5E + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8151A48 + + thumb_func_start sub_8151A9C +sub_8151A9C: @ 8151A9C + push {r4-r7,lr} + sub sp, 0x4 + adds r6, r0, 0 + lsls r1, 16 + lsrs r7, r1, 16 + movs r5, 0 + movs r3, 0x1 +_08151AAA: + ldrh r0, [r6, 0x2] + asrs r0, r5 + ands r0, r3 + cmp r0, 0 + beq _08151B12 + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + adds r4, r6, r0 + ldrb r0, [r4, 0x4] + lsrs r0, 7 + cmp r0, 0 + beq _08151B12 + adds r0, r7, 0 + asrs r0, r5 + ands r0, r3 + cmp r0, 0 + beq _08151B12 + ldrh r1, [r4, 0xA] + lsls r1, 1 + ldr r0, =0x02037b14 + adds r0, r1, r0 + ldr r2, =0x02037714 + adds r1, r2 + ldrb r2, [r4, 0xC] + lsls r2, 1 + str r3, [sp] + bl memcpy + ldrb r0, [r4, 0x4] + movs r2, 0x80 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + strb r0, [r4, 0x4] + movs r0, 0 + strb r0, [r4, 0x6] + strb r0, [r4, 0x5] + ldrb r0, [r4, 0xF] + lsls r0, 24 + ldr r3, [sp] + cmp r0, 0 + bge _08151B10 + movs r0, 0xFF + strb r0, [r4, 0x7] + b _08151B12 + .pool +_08151B10: + strb r3, [r4, 0x7] +_08151B12: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xF + bls _08151AAA + ldr r0, =0x0000ffff + cmp r7, r0 + bne _08151B2C + movs r0, 0 + strb r0, [r6] + b _08151B30 + .pool +_08151B2C: + ldrh r0, [r6, 0x2] + bics r0, r7 +_08151B30: + strh r0, [r6, 0x2] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8151A9C + + thumb_func_start sub_8151B3C +sub_8151B3C: @ 8151B3C + push {r4,r5,lr} + adds r5, r0, 0 + movs r4, 0 + strh r4, [r5] + adds r0, r5, 0x4 + movs r1, 0 + movs r2, 0xC0 + bl memset +_08151B4E: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r5, r0 + strb r4, [r0, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _08151B4E + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8151B3C + + thumb_func_start sub_8151B68 +sub_8151B68: @ 8151B68 + push {r4,r5,lr} + adds r2, r0, 0 + adds r5, r1, 0 + movs r3, 0 + movs r4, 0 + ldrb r0, [r2, 0x5] + lsrs r0, 7 + cmp r0, 0 + bne _08151B7E + adds r4, r2, 0x4 + b _08151B9C +_08151B7E: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xF + bhi _08151B9C + lsls r0, r3, 1 + adds r0, r3 + lsls r1, r0, 2 + adds r0, r2, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 7 + cmp r0, 0 + bne _08151B7E + adds r0, r1, 0x4 + adds r4, r2, r0 +_08151B9C: + cmp r4, 0 + beq _08151BCA + ldrb r1, [r4, 0x1] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r4, 0x1] + movs r0, 0 + strb r0, [r4, 0x2] + strb r0, [r4, 0x3] + adds r1, r4, 0x4 + adds r0, r5, 0 + ldm r0!, {r2,r4} + stm r1!, {r2,r4} + adds r0, r3, 0 + b _08151BCC +_08151BCA: + movs r0, 0xFF +_08151BCC: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8151B68 + + thumb_func_start sub_8151BD4 +sub_8151BD4: @ 8151BD4 + push {r4,r5,lr} + adds r4, r0, 0 + ldrb r1, [r4, 0x1] + movs r2, 0x40 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08151C16 + ldrb r1, [r4, 0xB] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08151C16 + ldrh r2, [r4, 0x6] + ldrb r0, [r4, 0x8] + adds r0, r2, r0 + cmp r2, r0 + bge _08151C16 + ldr r5, =0x02037b14 + ldr r3, =0x02037714 +_08151BFC: + lsls r0, r2, 1 + adds r1, r0, r5 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r4, 0x6] + ldrb r1, [r4, 0x8] + adds r0, r1 + cmp r2, r0 + blt _08151BFC +_08151C16: + adds r0, r4, 0x4 + movs r1, 0 + movs r2, 0x8 + bl memset + ldrb r1, [r4, 0x1] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + subs r1, 0x10 + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + movs r1, 0x7F + ands r0, r1 + strb r0, [r4, 0x1] + movs r0, 0 + strb r0, [r4, 0x3] + strb r0, [r4, 0x2] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8151BD4 + + thumb_func_start sub_8151C50 +sub_8151C50: @ 8151C50 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + movs r5, 0 + cmp r2, 0 + bne _08151C74 + movs r1, 0xF + ands r1, r4 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, 0x4 + adds r0, r6, r0 + bl sub_8151BD4 + b _08151CA0 +_08151C74: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08151C94 + lsls r0, r5, 1 + adds r0, r5 + lsls r1, r0, 2 + adds r0, r6, r1 + ldrb r0, [r0, 0x5] + lsrs r0, 7 + cmp r0, 0 + beq _08151C94 + adds r0, r1, 0x4 + adds r0, r6, r0 + bl sub_8151BD4 +_08151C94: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xF + bls _08151C74 +_08151CA0: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8151C50 + + thumb_func_start sub_8151CA8 +sub_8151CA8: @ 8151CA8 + push {r4-r7,lr} + adds r5, r0, 0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + movs r3, 0 + cmp r2, 0 + bne _08151CDC + movs r0, 0xF + adds r3, r0, 0 + ands r3, r4 + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r1, r5, r1 + ldrb r2, [r1, 0x5] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x5] + movs r0, 0x1 + lsls r0, r3 + ldrh r1, [r5] + orrs r0, r1 + strh r0, [r5] + b _08151D20 +_08151CDC: + movs r6, 0x1 + movs r7, 0x41 + negs r7, r7 +_08151CE2: + adds r0, r4, 0 + ands r0, r6 + cmp r0, 0 + beq _08151D00 + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r2, r5, r0 + ldrb r1, [r2, 0x5] + lsrs r0, r1, 7 + cmp r0, 0 + beq _08151D00 + lsls r0, r1, 25 + cmp r0, 0 + blt _08151D06 +_08151D00: + lsls r0, r4, 17 + lsrs r4, r0, 16 + b _08151D16 +_08151D06: + adds r0, r7, 0 + ands r0, r1 + strb r0, [r2, 0x5] + adds r0, r6, 0 + lsls r0, r3 + ldrh r1, [r5] + orrs r0, r1 + strh r0, [r5] +_08151D16: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xF + bls _08151CE2 +_08151D20: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8151CA8 + + thumb_func_start sub_8151D28 +sub_8151D28: @ 8151D28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 24 + movs r0, 0 + mov r12, r0 + cmp r2, 0 + bne _08151DB0 + movs r1, 0xF + ands r1, r7 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, 0x4 + mov r1, r8 + adds r3, r1, r0 + ldrb r1, [r3, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x80 + bne _08151E3A + ldrb r1, [r3, 0xB] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08151D8E + ldrh r2, [r3, 0x6] + ldrb r0, [r3, 0x8] + adds r0, r2, r0 + cmp r2, r0 + bge _08151D8E + ldr r5, =0x02037b14 + ldr r4, =0x02037714 +_08151D74: + lsls r0, r2, 1 + adds r1, r0, r5 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r3, 0x6] + ldrb r1, [r3, 0x8] + adds r0, r1 + cmp r2, r0 + blt _08151D74 +_08151D8E: + ldrb r0, [r3, 0x1] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r3, 0x1] + movs r1, 0x1 + mov r2, r12 + lsls r1, r2 + mov r2, r8 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] + b _08151E3A + .pool +_08151DB0: + movs r0, 0x1 + mov r9, r0 + movs r1, 0x40 + mov r10, r1 +_08151DB8: + mov r2, r12 + lsls r0, r2, 1 + add r0, r12 + lsls r0, 2 + adds r0, 0x4 + mov r1, r8 + adds r3, r1, r0 + adds r0, r7, 0 + mov r2, r9 + ands r0, r2 + cmp r0, 0 + beq _08151DDA + ldrb r1, [r3, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x80 + beq _08151DE4 +_08151DDA: + lsls r0, r7, 17 + lsrs r7, r0, 16 + mov r5, r12 + adds r5, 0x1 + b _08151E30 +_08151DE4: + ldrb r1, [r3, 0xB] + mov r0, r10 + ands r0, r1 + mov r5, r12 + adds r5, 0x1 + cmp r0, 0 + beq _08151E1A + ldrh r2, [r3, 0x6] + ldrb r0, [r3, 0x8] + adds r0, r2, r0 + cmp r2, r0 + bge _08151E1A + ldr r6, =0x02037b14 + ldr r4, =0x02037714 +_08151E00: + lsls r0, r2, 1 + adds r1, r0, r6 + adds r0, r4 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r3, 0x6] + ldrb r1, [r3, 0x8] + adds r0, r1 + cmp r2, r0 + blt _08151E00 +_08151E1A: + ldrb r1, [r3, 0x1] + mov r0, r10 + orrs r0, r1 + strb r0, [r3, 0x1] + mov r1, r9 + mov r0, r12 + lsls r1, r0 + mov r2, r8 + ldrh r0, [r2] + bics r0, r1 + strh r0, [r2] +_08151E30: + lsls r0, r5, 24 + lsrs r0, 24 + mov r12, r0 + cmp r0, 0xF + bls _08151DB8 +_08151E3A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8151D28 + + thumb_func_start sub_8151E50 +sub_8151E50: @ 8151E50 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + str r0, [sp] + movs r0, 0 + mov r10, r0 + ldr r1, [sp] + ldrh r0, [r1] + cmp r0, 0 + bne _08151E6C + b _08151FF6 +_08151E6C: + movs r2, 0xF + mov r9, r2 + movs r3, 0x10 + negs r3, r3 + mov r8, r3 + movs r7, 0x1 +_08151E78: + mov r5, r10 + lsls r0, r5, 1 + add r0, r10 + lsls r0, 2 + adds r0, 0x4 + ldr r1, [sp] + adds r4, r1, r0 + ldrb r2, [r4, 0x1] + movs r3, 0xC0 + ands r3, r2 + cmp r3, 0x80 + beq _08151E92 + b _08151FE6 +_08151E92: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08151EA8 + ldrb r0, [r4, 0xB] + ands r3, r0 + cmp r3, 0 + beq _08151EA8 + b _08151FE6 +_08151EA8: + ldrb r0, [r4, 0x2] + subs r0, 0x1 + strb r0, [r4, 0x2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _08151EB8 + b _08151FE6 +_08151EB8: + ldrb r0, [r4, 0x9] + strb r0, [r4, 0x2] + ldrh r0, [r4, 0x6] + ldrb r1, [r4, 0x8] + lsls r2, 28 + lsrs r2, 28 + ldrh r3, [r4, 0x4] + bl pal_fade_1 + ldrb r5, [r4, 0xB] + lsls r0, r5, 26 + asrs r0, 30 + cmp r0, 0x1 + beq _08151F16 + cmp r0, 0x1 + bgt _08151EE4 + cmp r0, 0 + beq _08151EEA + b _08151FD0 + .pool +_08151EE4: + cmp r0, 0x2 + beq _08151F92 + b _08151FD0 +_08151EEA: + ldrb r2, [r4, 0x1] + lsls r1, r2, 28 + lsrs r0, r1, 28 + adds r0, 0x1 + mov r3, r9 + ands r0, r3 + mov r6, r8 + adds r3, r6, 0 + ands r3, r2 + orrs r3, r0 + strb r3, [r4, 0x1] + lsrs r1, 28 + lsls r0, r5, 28 + asrs r0, 28 + cmp r1, r0 + bne _08151FD0 + ldrb r0, [r4, 0x3] + adds r0, 0x1 + strb r0, [r4, 0x3] + ands r3, r6 + strb r3, [r4, 0x1] + b _08151FD0 +_08151F16: + ldrb r3, [r4, 0x1] + movs r0, 0x10 + ands r0, r3 + cmp r0, 0 + beq _08151F54 + lsls r0, r3, 28 + lsrs r0, 28 + subs r0, 0x1 + mov r5, r9 + ands r0, r5 + mov r2, r8 + ands r2, r3 + orrs r2, r0 + strb r2, [r4, 0x1] + cmp r0, 0 + bne _08151FD0 + ldrb r0, [r4, 0x3] + adds r0, 0x1 + strb r0, [r4, 0x3] + lsls r0, r2, 27 + lsrs r0, 31 + eors r0, r7 + ands r0, r7 + lsls r0, 4 + movs r3, 0x11 + negs r3, r3 + adds r1, r3, 0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, 0x1] + b _08151FD0 +_08151F54: + lsls r0, r5, 28 + asrs r0, 28 + subs r0, 0x1 + mov r5, r9 + ands r0, r5 + lsls r2, r3, 28 + lsrs r1, r2, 28 + adds r1, 0x1 + ands r1, r5 + mov r5, r8 + ands r3, r5 + orrs r3, r1 + strb r3, [r4, 0x1] + lsrs r2, 28 + cmp r2, r0 + bne _08151FD0 + ldrb r0, [r4, 0x3] + adds r0, 0x1 + strb r0, [r4, 0x3] + lsls r0, r3, 27 + lsrs r0, 31 + eors r0, r7 + ands r0, r7 + lsls r0, 4 + movs r2, 0x11 + negs r2, r2 + adds r1, r2, 0 + ands r3, r1 + orrs r3, r0 + strb r3, [r4, 0x1] + b _08151FD0 +_08151F92: + ldrb r2, [r4, 0x1] + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + beq _08151FA2 + mov r0, r8 + ands r0, r2 + b _08151FB0 +_08151FA2: + lsls r1, r5, 28 + asrs r1, 28 + mov r3, r9 + ands r1, r3 + mov r0, r8 + ands r0, r2 + orrs r0, r1 +_08151FB0: + strb r0, [r4, 0x1] + ldrb r2, [r4, 0x1] + lsls r0, r2, 27 + lsrs r0, 31 + eors r0, r7 + ands r0, r7 + lsls r0, 4 + movs r5, 0x11 + negs r5, r5 + adds r1, r5, 0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, 0x1] + ldrb r0, [r4, 0x3] + adds r0, 0x1 + strb r0, [r4, 0x3] +_08151FD0: + ldrb r1, [r4, 0xA] + cmp r1, 0xFF + beq _08151FE6 + ldrb r0, [r4, 0x3] + cmp r0, r1 + bne _08151FE6 + ldrb r1, [r4] + ldr r0, [sp] + movs r2, 0 + bl sub_8151D28 +_08151FE6: + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + cmp r0, 0xF + bhi _08151FF6 + b _08151E78 +_08151FF6: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8151E50 + + thumb_func_start sub_8152008 +sub_8152008: @ 8152008 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r0, [sp, 0x14] + ldr r4, [sp, 0x18] + lsls r1, 16 + lsrs r7, r1, 16 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r4, 24 + movs r1, 0 + lsrs r3, 19 + adds r3, r2 + lsls r3, 1 + adds r6, r3 + cmp r1, r4 + bcs _08152052 +_08152030: + lsls r0, r1, 6 + adds r2, r6, r0 + movs r0, 0 + adds r3, r1, 0x1 + cmp r0, r5 + bcs _0815204A +_0815203C: + strh r7, [r2] + adds r2, 0x2 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, r5 + bcc _0815203C +_0815204A: + lsls r0, r3, 24 + lsrs r1, r0, 24 + cmp r1, r4 + bcc _08152030 +_08152052: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8152008 + + thumb_func_start sub_8152058 +sub_8152058: @ 8152058 + push {r4-r7,lr} + adds r7, r0, 0 + ldr r0, [sp, 0x14] + ldr r4, [sp, 0x18] + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r4, 24 + lsrs r6, r4, 24 + movs r4, 0 + lsrs r3, 19 + adds r3, r2 + lsls r3, 1 + adds r7, r3 + cmp r4, r6 + bcs _081520A2 +_0815207C: + lsls r0, r4, 6 + adds r2, r7, r0 + movs r3, 0 + adds r4, 0x1 + cmp r3, r5 + bcs _0815209A +_08152088: + ldrh r0, [r1] + strh r0, [r2] + adds r1, 0x2 + adds r2, 0x2 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r5 + bcc _08152088 +_0815209A: + lsls r0, r4, 24 + lsrs r4, r0, 24 + cmp r4, r6 + bcc _0815207C +_081520A2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8152058 + + .align 2, 0 @ Don't pad with nop. |