diff options
Diffstat (limited to 'asm/code_8002774.s')
-rw-r--r-- | asm/code_8002774.s | 1034 |
1 files changed, 1034 insertions, 0 deletions
diff --git a/asm/code_8002774.s b/asm/code_8002774.s new file mode 100644 index 0000000..c1e3140 --- /dev/null +++ b/asm/code_8002774.s @@ -0,0 +1,1034 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8002774 +sub_8002774: + sub sp, 0x4 + str r0, [sp] + mov r0, sp + ldrb r1, [r0, 0x2] + movs r0, 0xF8 + adds r2, r0, 0 + ands r2, r1 + lsls r2, 7 + mov r1, sp + ldrb r3, [r1, 0x1] + adds r1, r0, 0 + ands r1, r3 + lsls r1, 2 + orrs r2, r1 + mov r1, sp + ldrb r1, [r1] + ands r0, r1 + lsrs r0, 3 + orrs r0, r2 + add sp, 0x4 + bx lr + thumb_func_end sub_8002774 + + thumb_func_start sub_80027A0 +sub_80027A0: + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r2, r0, 16 + adds r3, r2, 0 + mov r4, sp + movs r0, 0x1F + ands r0, r2 + lsls r1, r0, 3 + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080027BE + movs r0, 0x7 + orrs r1, r0 +_080027BE: + strb r1, [r4] + mov r4, sp + movs r0, 0xF8 + lsls r0, 2 + ands r0, r2 + lsrs r1, r0, 2 + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _080027D6 + movs r0, 0x7 + orrs r1, r0 +_080027D6: + strb r1, [r4, 0x1] + mov r2, sp + movs r0, 0xF8 + lsls r0, 7 + ands r0, r3 + lsrs r1, r0, 7 + movs r0, 0x80 + lsls r0, 3 + ands r3, r0 + cmp r3, 0 + beq _080027F0 + movs r0, 0x7 + orrs r1, r0 +_080027F0: + strb r1, [r2, 0x2] + mov r0, sp + movs r1, 0 + strb r1, [r0, 0x3] + ldr r0, [sp] + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80027A0 + + thumb_func_start sub_8002804 +sub_8002804: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r3, 0 +_0800280C: + adds r1, r5, r3 + adds r0, r2, r3 + ldrb r0, [r0] + muls r0, r4 + cmp r0, 0 + bge _0800281A + adds r0, 0xFF +_0800281A: + asrs r0, 8 + strb r0, [r1] + adds r3, 0x1 + cmp r3, 0x3 + ble _0800280C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8002804 + + thumb_func_start sub_800282C +sub_800282C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + mov r9, r0 + str r1, [sp, 0x20] + adds r7, r2, 0 + mov r8, r3 + adds r0, r1, 0 + bl __floatsisf + adds r1, r0, 0 + ldr r0, _08002904 + bl __divsf3 + str r0, [sp, 0x24] + movs r5, 0 + mov r0, sp + adds r0, 0x10 + str r0, [sp, 0x2C] + str r0, [sp, 0x34] + mov r10, sp +_0800285C: + adds r6, r7, r5 + movs r4, 0 + ldrsb r4, [r6, r4] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08002872 + ldr r1, _08002908 + bl __addsf3 +_08002872: + mov r1, r10 + adds r1, 0x4 + mov r10, r1 + subs r1, 0x4 + stm r1!, {r0} + mov r1, r8 + adds r0, r1, r5 + ldrb r0, [r0] + ldrb r1, [r6] + subs r0, r1 + bl __floatsisf + ldr r1, [sp, 0x24] + bl __mulsf3 + ldr r1, [sp, 0x34] + stm r1!, {r0} + str r1, [sp, 0x34] + adds r5, 0x1 + cmp r5, 0x3 + ble _0800285C + ldr r0, [r7] + mov r1, r9 + adds r1, 0x4 + mov r9, r1 + subs r1, 0x4 + stm r1!, {r0} + movs r5, 0x1 + ldr r0, [sp, 0x20] + subs r0, 0x1 + str r0, [sp, 0x28] + mov r1, r8 + ldr r1, [r1] + str r1, [sp, 0x30] + cmp r5, r0 + bge _080028EE +_080028BA: + movs r6, 0 + adds r5, 0x1 + mov r10, r5 + movs r0, 0x4 + add r0, r9 + mov r8, r0 + mov r5, sp + ldr r7, [sp, 0x2C] +_080028CA: + mov r1, r9 + adds r4, r1, r6 + ldr r0, [r5] + ldm r7!, {r1} + bl __addsf3 + stm r5!, {r0} + bl __fixunssfsi + strb r0, [r4] + adds r6, 0x1 + cmp r6, 0x3 + ble _080028CA + mov r9, r8 + mov r5, r10 + ldr r0, [sp, 0x28] + cmp r5, r0 + blt _080028BA +_080028EE: + ldr r1, [sp, 0x30] + mov r0, r9 + str r1, [r0] + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08002904: .4byte 0x3f800000 +_08002908: .4byte 0x43800000 + thumb_func_end sub_800282C + + thumb_func_start sub_800290C +sub_800290C: + push {lr} + ldr r3, [r0] + cmp r3, r1 + ble _08002918 + str r1, [r0] + b _08002920 +_08002918: + negs r2, r1 + cmp r3, r2 + bge _08002920 + str r2, [r0] +_08002920: + ldr r2, [r0, 0x4] + cmp r2, r1 + bgt _0800292C + negs r1, r1 + cmp r2, r1 + bge _0800292E +_0800292C: + str r1, [r0, 0x4] +_0800292E: + pop {r0} + bx r0 + thumb_func_end sub_800290C + + thumb_func_start sub_8002934 +sub_8002934: + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + mov r10, r0 + adds r6, r1, 0 + mov r8, r2 + adds r4, r3, 0 + ldr r5, [sp, 0x1C] + adds r0, r4, r5 + mov r9, r0 + ldr r0, [r6] + muls r0, r4 + ldr r1, [r2] + muls r1, r5 + adds r0, r1 + mov r1, r9 + bl __divsi3 + mov r1, r10 + str r0, [r1] + ldr r0, [r6, 0x4] + muls r0, r4 + mov r2, r8 + ldr r1, [r2, 0x4] + muls r1, r5 + adds r0, r1 + mov r1, r9 + bl __divsi3 + mov r1, r10 + str r0, [r1, 0x4] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8002934 + + thumb_func_start sub_8002984 +sub_8002984: + push {r4,lr} + lsls r0, 24 + asrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + subs r0, r1, 0x1 + cmp r0, 0x8 + bhi _08002A68 + lsls r0, 2 + ldr r1, _080029A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080029A0: .4byte _080029A4 + .align 2, 0 +_080029A4: + .4byte _080029C8 + .4byte _080029D0 + .4byte _080029D8 + .4byte _080029E0 + .4byte _080029E8 + .4byte _080029F4 + .4byte _08002A34 + .4byte _08002A4E + .4byte _08002A5E +_080029C8: + cmp r4, 0 + blt _08002A68 + adds r4, 0x7 + b _080029EE +_080029D0: + cmp r4, 0 + blt _08002A68 + adds r4, 0x1 + b _080029EE +_080029D8: + cmp r4, 0 + blt _08002A68 + adds r4, 0x6 + b _080029EE +_080029E0: + cmp r4, 0 + blt _08002A68 + adds r4, 0x2 + b _080029EE +_080029E8: + cmp r4, 0 + blt _08002A68 + adds r4, 0x4 +_080029EE: + movs r0, 0x7 + ands r4, r0 + b _08002A68 +_080029F4: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08002A18 + movs r0, 0x2 + bl OtherRandomCapped + adds r1, r4, 0x7 + lsls r0, 1 + adds r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002A10 + adds r0, r1, 0x7 +_08002A10: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + b _08002A64 +_08002A18: + movs r0, 0x3 + bl OtherRandomCapped + adds r1, r4, 0x6 + lsls r0, 1 + adds r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002A2C + adds r0, r1, 0x7 +_08002A2C: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + b _08002A64 +_08002A34: + movs r0, 0x3 + bl OtherRandomCapped + adds r1, r4, 0x7 + adds r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002A46 + adds r0, r1, 0x7 +_08002A46: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + b _08002A64 +_08002A4E: + movs r0, 0x8 + bl OtherRandomCapped + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + b _08002A64 +_08002A5E: + movs r0, 0x8 + bl OtherRandomCapped +_08002A64: + lsls r0, 24 + asrs r4, r0, 24 +_08002A68: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8002984 + + thumb_func_start sub_8002A70 +sub_8002A70: + push {r4,lr} + lsls r0, 24 + asrs r3, r0, 24 + lsls r1, 24 + asrs r4, r1, 24 + lsls r2, 24 + lsrs r0, r2, 24 + cmp r3, r4 + beq _08002AFC + subs r0, 0x1 + cmp r0, 0xA + bhi _08002AFC + lsls r0, 2 + ldr r1, _08002A94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08002A94: .4byte _08002A98 + .align 2, 0 +_08002A98: + .4byte _08002AC4 + .4byte _08002ACC + .4byte _08002AD4 + .4byte _08002ADC + .4byte _08002AFC + .4byte _08002AFC + .4byte _08002AFC + .4byte _08002AFC + .4byte _08002AFC + .4byte _08002AF2 + .4byte _08002AE8 +_08002AC4: + cmp r3, 0 + blt _08002AFC + adds r3, 0x7 + b _08002AE2 +_08002ACC: + cmp r3, 0 + blt _08002AFC + adds r3, 0x1 + b _08002AE2 +_08002AD4: + cmp r3, 0 + blt _08002AFC + adds r3, 0x6 + b _08002AE2 +_08002ADC: + cmp r3, 0 + blt _08002AFC + adds r3, 0x2 +_08002AE2: + movs r0, 0x7 + ands r3, r0 + b _08002AFC +_08002AE8: + adds r0, r3, 0 + adds r1, r4, 0 + bl sub_8002B04 + adds r3, r0, 0 +_08002AF2: + adds r0, r3, 0 + adds r1, r4, 0 + bl sub_8002B04 + adds r3, r0, 0 +_08002AFC: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8002A70 + + thumb_func_start sub_8002B04 +sub_8002B04: + push {lr} + lsls r0, 24 + asrs r2, r0, 24 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08002B56 + adds r0, r2, 0 + subs r0, 0x8 + subs r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002B24 + adds r0, r1, 0x7 +_08002B24: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + cmp r0, 0 + beq _08002B56 + cmp r0, 0x3 + bgt _08002B40 + adds r1, r2, 0x1 + adds r0, r1, 0 + cmp r1, 0 + bge _08002B4C + adds r0, r2, 0 + adds r0, 0x8 + b _08002B4C +_08002B40: + adds r1, r2, 0x7 + adds r0, r1, 0 + cmp r1, 0 + bge _08002B4C + adds r0, r2, 0 + adds r0, 0xE +_08002B4C: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + lsls r0, 24 + asrs r2, r0, 24 +_08002B56: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_8002B04 + + thumb_func_start sub_8002B5C +sub_8002B5C: + push {lr} + lsls r0, 24 + asrs r2, r0, 24 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08002BAE + adds r0, r2, 0 + subs r0, 0x8 + subs r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002B7C + adds r0, r1, 0x7 +_08002B7C: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + cmp r0, 0 + beq _08002BAE + cmp r0, 0x3 + bgt _08002B98 + adds r1, r2, 0x2 + adds r0, r1, 0 + cmp r1, 0 + bge _08002BA4 + adds r0, r2, 0 + adds r0, 0x9 + b _08002BA4 +_08002B98: + adds r1, r2, 0x6 + adds r0, r1, 0 + cmp r1, 0 + bge _08002BA4 + adds r0, r2, 0 + adds r0, 0xD +_08002BA4: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + lsls r0, 24 + asrs r2, r0, 24 +_08002BAE: + movs r0, 0x6 + ands r2, r0 + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_8002B5C + + thumb_func_start sub_8002BB8 +sub_8002BB8: + push {r4,r5,lr} + lsls r1, 24 + asrs r1, 21 + ldr r3, _08002BD8 + adds r1, r3 + ldr r5, [r1] + adds r3, r5, 0 + muls r3, r2 + ldr r1, [r1, 0x4] + adds r4, r1, 0 + muls r4, r2 + str r3, [r0] + str r4, [r0, 0x4] + pop {r4,r5} + pop {r2} + bx r2 + .align 2, 0 +_08002BD8: .4byte gUnknown_80B7E3C + thumb_func_end sub_8002BB8 + + thumb_func_start sub_8002BDC +sub_8002BDC: + push {lr} + ldr r1, [r0] + cmp r1, 0 + bge _08002BFA + ldr r0, [r0, 0x4] + cmp r0, 0 + bge _08002BEE + movs r0, 0x5 + b _08002C2A +_08002BEE: + cmp r0, 0 + ble _08002BF6 + movs r0, 0x7 + b _08002C2A +_08002BF6: + movs r0, 0x6 + b _08002C2A +_08002BFA: + cmp r1, 0 + ble _08002C14 + ldr r0, [r0, 0x4] + cmp r0, 0 + bge _08002C08 + movs r0, 0x3 + b _08002C2A +_08002C08: + cmp r0, 0 + ble _08002C10 + movs r0, 0x1 + b _08002C2A +_08002C10: + movs r0, 0x2 + b _08002C2A +_08002C14: + ldr r0, [r0, 0x4] + cmp r0, 0 + bge _08002C1E + movs r0, 0x4 + b _08002C2A +_08002C1E: + cmp r0, 0 + bgt _08002C28 + movs r0, 0x1 + negs r0, r0 + b _08002C2A +_08002C28: + movs r0, 0 +_08002C2A: + pop {r1} + bx r1 + thumb_func_end sub_8002BDC + + thumb_func_start sub_8002C30 +sub_8002C30: + push {lr} + ldr r1, [r0, 0x4] + cmp r1, 0 + bge _08002C3C + movs r0, 0x4 + b _08002C5A +_08002C3C: + cmp r1, 0 + ble _08002C44 + movs r0, 0 + b _08002C5A +_08002C44: + ldr r0, [r0] + cmp r0, 0 + bge _08002C4E + movs r0, 0x6 + b _08002C5A +_08002C4E: + cmp r0, 0 + bgt _08002C58 + movs r0, 0x1 + negs r0, r0 + b _08002C5A +_08002C58: + movs r0, 0x2 +_08002C5A: + pop {r1} + bx r1 + thumb_func_end sub_8002C30 + + thumb_func_start sub_8002C60 +sub_8002C60: + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, [r4] + cmp r0, 0 + bge _08002C6C + negs r0, r0 +_08002C6C: + adds r1, r0, 0 + ldr r3, [r4, 0x4] + adds r5, r3, 0 + cmp r3, 0 + bge _08002C78 + negs r5, r3 +_08002C78: + adds r2, r5, 0 + ldr r4, [r4] + cmp r4, 0 + bge _08002CA8 + cmp r3, 0 + bge _08002C94 + lsls r0, 1 + cmp r2, r0 + bgt _08002CD8 + lsls r0, r5, 1 + cmp r1, r0 + bgt _08002CA0 + movs r0, 0x5 + b _08002CE8 +_08002C94: + lsls r0, 1 + cmp r2, r0 + bgt _08002CE6 + lsls r0, r5, 1 + cmp r1, r0 + ble _08002CA4 +_08002CA0: + movs r0, 0x6 + b _08002CE8 +_08002CA4: + movs r0, 0x7 + b _08002CE8 +_08002CA8: + cmp r4, 0 + ble _08002CD4 + cmp r3, 0 + bge _08002CC0 + lsls r0, 1 + cmp r2, r0 + bgt _08002CD8 + lsls r0, r5, 1 + cmp r1, r0 + bgt _08002CCC + movs r0, 0x3 + b _08002CE8 +_08002CC0: + lsls r0, 1 + cmp r2, r0 + bgt _08002CE6 + lsls r0, r5, 1 + cmp r1, r0 + ble _08002CD0 +_08002CCC: + movs r0, 0x2 + b _08002CE8 +_08002CD0: + movs r0, 0x1 + b _08002CE8 +_08002CD4: + cmp r3, 0 + bge _08002CDC +_08002CD8: + movs r0, 0x4 + b _08002CE8 +_08002CDC: + cmp r3, 0 + bgt _08002CE6 + movs r0, 0x1 + negs r0, r0 + b _08002CE8 +_08002CE6: + movs r0, 0 +_08002CE8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8002C60 + + thumb_func_start sub_8002CF0 +sub_8002CF0: + push {r4,lr} + adds r4, r0, 0 + ldr r3, [r4] + cmp r3, 0 + bge _08002CFC + negs r3, r3 +_08002CFC: + adds r1, r3, 0 + ldr r3, [r4, 0x4] + adds r0, r3, 0 + cmp r3, 0 + bge _08002D08 + negs r0, r3 +_08002D08: + adds r2, r0, 0 + ldr r0, [r4] + cmp r0, 0 + bge _08002D22 + cmp r3, 0 + bge _08002D1A + cmp r2, r1 + bgt _08002D3C + b _08002D1E +_08002D1A: + cmp r2, r1 + bgt _08002D4A +_08002D1E: + movs r0, 0x6 + b _08002D4C +_08002D22: + cmp r0, 0 + ble _08002D38 + cmp r3, 0 + bge _08002D30 + cmp r2, r1 + bgt _08002D3C + b _08002D34 +_08002D30: + cmp r2, r1 + bgt _08002D4A +_08002D34: + movs r0, 0x2 + b _08002D4C +_08002D38: + cmp r3, 0 + bge _08002D40 +_08002D3C: + movs r0, 0x4 + b _08002D4C +_08002D40: + cmp r3, 0 + bgt _08002D4A + movs r0, 0x1 + negs r0, r0 + b _08002D4C +_08002D4A: + movs r0, 0 +_08002D4C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8002CF0 + + thumb_func_start sub_8002D54 +sub_8002D54: + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r1, 0 + adds r5, r3, 0 + ldr r3, [r2] + ldr r1, [r0] + subs r3, r1 + str r3, [sp] + ldr r1, [r2, 0x4] + ldr r0, [r0, 0x4] + subs r1, r0 + str r1, [sp, 0x4] + adds r2, r3, 0 + cmp r2, 0 + blt _08002D8A + adds r2, 0x1 + ldr r0, [r4] + ldr r1, [r5] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r2, r0 + str r2, [sp] + cmp r2, 0 + bge _08002DA4 + b _08002DA0 +_08002D8A: + subs r2, r3, 0x1 + ldr r0, [r4] + ldr r1, [r5] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + str r2, [sp] + cmp r2, 0 + ble _08002DA4 +_08002DA0: + movs r0, 0 + str r0, [sp] +_08002DA4: + ldr r2, [sp, 0x4] + cmp r2, 0 + blt _08002DC2 + adds r2, 0x1 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x4] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r2, r0 + str r2, [sp, 0x4] + cmp r2, 0 + bge _08002DDC + b _08002DD8 +_08002DC2: + subs r2, 0x1 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x4] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + str r2, [sp, 0x4] + cmp r2, 0 + ble _08002DDC +_08002DD8: + movs r0, 0 + str r0, [sp, 0x4] +_08002DDC: + mov r0, sp + bl sub_8002CF0 + lsls r0, 24 + asrs r0, 24 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8002D54 + + thumb_func_start sub_8002DF0 +sub_8002DF0: + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r1, 0 + adds r5, r3, 0 + ldr r3, [r2] + ldr r1, [r0] + subs r3, r1 + str r3, [sp] + ldr r1, [r2, 0x4] + ldr r0, [r0, 0x4] + subs r1, r0 + str r1, [sp, 0x4] + adds r2, r3, 0 + cmp r2, 0 + blt _08002E26 + adds r2, 0x1 + ldr r0, [r4] + ldr r1, [r5] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r2, r0 + str r2, [sp] + cmp r2, 0 + bge _08002E40 + b _08002E3C +_08002E26: + subs r2, r3, 0x1 + ldr r0, [r4] + ldr r1, [r5] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + str r2, [sp] + cmp r2, 0 + ble _08002E40 +_08002E3C: + movs r0, 0 + str r0, [sp] +_08002E40: + ldr r2, [sp, 0x4] + cmp r2, 0 + blt _08002E5E + adds r2, 0x1 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x4] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r2, r0 + str r2, [sp, 0x4] + cmp r2, 0 + bge _08002E78 + b _08002E74 +_08002E5E: + subs r2, 0x1 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x4] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + str r2, [sp, 0x4] + cmp r2, 0 + ble _08002E78 +_08002E74: + movs r0, 0 + str r0, [sp, 0x4] +_08002E78: + mov r0, sp + bl sub_8002C60 + lsls r0, 24 + asrs r0, 24 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8002DF0 + + .align 2, 0 @ Don't pad with nop. |