.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_814F65C sub_814F65C: @ 814F65C push {r4-r7,lr} sub sp, 0x18 mov r12, r2 ldr r2, [sp, 0x2C] ldr r4, [sp, 0x30] lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r3, 24 lsrs r6, r3, 24 lsls r2, 24 lsrs r3, r2, 24 lsls r4, 24 lsrs r0, r4, 24 cmp r0, 0x4 bhi _0814F6E6 lsls r0, 2 ldr r1, _0814F688 @ =_0814F68C adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0814F688: .4byte _0814F68C .align 2, 0 _0814F68C: .4byte _0814F6A0 .4byte _0814F6AE .4byte _0814F6BC .4byte _0814F6CA .4byte _0814F6D8 _0814F6A0: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x2 strb r0, [r1, 0x1] movs r0, 0x3 b _0814F6E4 _0814F6AE: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0x3 b _0814F6E4 _0814F6BC: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x4 strb r0, [r1, 0x1] movs r0, 0x5 b _0814F6E4 _0814F6CA: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x7 strb r0, [r1, 0x1] movs r0, 0x6 b _0814F6E4 _0814F6D8: add r1, sp, 0x14 movs r0, 0 strb r0, [r1] movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0x2 _0814F6E4: strb r0, [r1, 0x2] _0814F6E6: negs r0, r5 orrs r0, r5 lsrs r0, 31 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] add r0, sp, 0x14 str r0, [sp, 0x8] movs r0, 0x1 negs r0, r0 str r0, [sp, 0xC] mov r0, r12 str r0, [sp, 0x10] adds r0, r7, 0 adds r1, r5, 0 adds r2, r6, 0 bl AddTextPrinterParametrized2 add sp, 0x18 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_814F65C thumb_func_start sub_814F714 sub_814F714: @ 814F714 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r12, r0 adds r7, r1, 0 ldrb r0, [r0, 0xA] lsls r0, 25 lsrs r0, 25 mov r8, r0 movs r4, 0 ldr r0, _0814F78C @ =gUnknown_846FAC0 mov r9, r0 movs r1, 0x1 add r1, r9 mov r10, r1 mov r3, r12 adds r3, 0x4 str r3, [sp] _0814F73E: lsls r0, r4, 1 adds r2, r0, r4 mov r3, r9 adds r1, r2, r3 adds r5, r0, 0 adds r6, r4, 0x1 ldrb r1, [r1] cmp r8, r1 bne _0814F7A2 mov r0, r12 ldrb r1, [r0, 0x1A] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _0814F7A2 mov r0, r9 adds r0, 0x2 adds r3, r2, r0 ldrb r0, [r3] cmp r0, 0 bne _0814F790 movs r2, 0 movs r1, 0 ldr r3, [sp] _0814F76E: adds r0, r3, r1 ldrb r0, [r0] cmp r0, 0 beq _0814F778 adds r2, 0x1 _0814F778: adds r1, 0x1 cmp r1, 0x3 ble _0814F76E adds r2, 0x1 adds r0, r5, r4 add r0, r10 ldrb r1, [r0] lsls r1, 2 adds r1, r7 b _0814F79C .align 2, 0 _0814F78C: .4byte gUnknown_846FAC0 _0814F790: mov r1, r10 adds r0, r2, r1 ldrb r1, [r0] lsls r1, 2 adds r1, r7 ldrb r2, [r3] _0814F79C: ldr r0, [r1] adds r0, r2 str r0, [r1] _0814F7A2: adds r4, r6, 0 cmp r4, 0x16 bls _0814F73E mov r0, r8 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_814F714 thumb_func_start sub_814F7BC sub_814F7BC: @ 814F7BC push {r4,lr} movs r4, 0 adds r3, r1, 0 adds r2, r0, 0 _0814F7C4: ldr r1, [r2] ldr r0, [r3] cmp r1, r0 beq _0814F7D0 movs r0, 0x1 b _0814F7DC _0814F7D0: adds r3, 0x4 adds r2, 0x4 adds r4, 0x1 cmp r4, 0x3 ble _0814F7C4 movs r0, 0 _0814F7DC: pop {r4} pop {r1} bx r1 thumb_func_end sub_814F7BC thumb_func_start sub_814F7E4 sub_814F7E4: @ 814F7E4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r6, r0, 0 mov r9, r1 adds r5, r2, 0 lsls r4, r3, 24 lsrs r4, 24 movs r0, 0 mov r8, r0 mov r0, sp movs r1, 0 movs r2, 0x10 bl memset lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, _0814F84C @ =gTasks+0x8 adds r7, r0, r1 movs r4, 0 _0814F812: lsls r1, r4, 5 ldr r0, [r7] adds r0, r1 mov r1, sp bl sub_814F714 adds r1, r0, 0 ldr r0, [r5] cmp r1, r0 beq _0814F82C str r1, [r5] movs r2, 0x1 mov r8, r2 _0814F82C: adds r5, 0x4 adds r4, 0x1 cmp r4, 0xF ble _0814F812 mov r0, sp mov r1, r9 bl sub_814F7BC cmp r0, 0 bne _0814F850 mov r3, r8 cmp r3, 0x1 beq _0814F874 movs r0, 0 b _0814F876 .align 2, 0 _0814F84C: .4byte gTasks+0x8 _0814F850: adds r1, r6, 0 mov r0, sp ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] mov r1, r9 mov r0, sp ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] ldr r0, [r6] ldr r1, [r6, 0x4] adds r0, r1 ldr r1, [r6, 0x8] adds r0, r1 str r0, [r6, 0xC] _0814F874: movs r0, 0x1 _0814F876: add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_814F7E4 .align 2, 0 @ Don't pad with nop.