.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start NPC5 NPC5: @ 0x080609E8 push {lr} ldr r2, _080609FC @ =gUnk_0810AC1C ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080609FC: .4byte gUnk_0810AC1C thumb_func_start sub_08060A00 sub_08060A00: @ 0x08060A00 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08060AD0 @ =gLinkState ldrb r1, [r0, #2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08060A44 ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A52 ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #4 ands r0, r1 cmp r0, #0 bne _08060A44 movs r0, #4 orrs r0, r1 strb r0, [r2] ldr r4, [r5, #0x64] ldr r3, _08060AD4 @ =gLinkEntity ldrh r2, [r3, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 adds r0, #8 strh r0, [r4, #0xa] ldr r2, [r5, #0x64] ldrh r0, [r3, #0x32] ands r1, r0 adds r1, #8 strh r1, [r2, #0xc] _08060A44: ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A52 ldrb r0, [r5, #0x18] lsls r0, r0, #0x1e cmp r0, #0 beq _08060A62 _08060A52: ldr r0, _08060AD8 @ =gUnk_0810AC2C ldrb r1, [r5, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 _08060A62: ldrb r0, [r5, #0xc] cmp r0, #0 beq _08060A76 ldr r1, [r5, #0x64] ldr r2, _08060AD4 @ =gLinkEntity ldrh r0, [r2, #0x2e] strh r0, [r1, #2] ldr r1, [r5, #0x64] ldrh r0, [r2, #0x32] strh r0, [r1, #4] _08060A76: adds r2, r5, #0 adds r2, #0x74 ldr r4, _08060ADC @ =gRoomControls ldrb r1, [r4, #5] ldrh r0, [r2] cmp r0, r1 beq _08060ACE strh r1, [r2] ldr r0, _08060AD4 @ =gLinkEntity adds r1, r5, #0 bl CopyPosition movs r2, #1 movs r0, #1 strb r0, [r5, #0xc] ldrb r1, [r5, #0x18] subs r0, #5 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] movs r0, #0x90 lsls r0, r0, #1 strh r0, [r5, #0x24] ldrb r1, [r4, #0x10] lsls r0, r1, #1 strb r0, [r5, #0x14] lsls r1, r1, #0x19 lsrs r1, r1, #0x19 adds r0, r5, #0 bl InitAnimationForceUpdate bl Random movs r1, #0x7f ands r0, r1 adds r0, #0x80 adds r1, r5, #0 adds r1, #0x59 strb r0, [r1] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] _08060ACE: pop {r4, r5, pc} .align 2, 0 _08060AD0: .4byte gLinkState _08060AD4: .4byte gLinkEntity _08060AD8: .4byte gUnk_0810AC2C _08060ADC: .4byte gRoomControls thumb_func_start sub_08060AE0 sub_08060AE0: @ 0x08060AE0 push {r4, lr} adds r4, r0, #0 movs r0, #0x14 bl sub_0801D8E0 adds r1, r0, #0 cmp r1, #0 beq _08060B54 str r1, [r4, #0x64] movs r0, #0x20 strb r0, [r1, #1] movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x14] movs r2, #3 adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] adds r1, #4 movs r0, #0x48 strb r0, [r1] subs r1, #1 movs r0, #0x49 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3b strb r2, [r0] ldr r0, _08060B58 @ =gUnk_080FD150 str r0, [r4, #0x48] ldrb r1, [r4, #0x17] movs r0, #0xfe ands r0, r1 strb r0, [r4, #0x17] adds r1, r4, #0 adds r1, #0x6c movs r0, #0xff strb r0, [r1] ldrb r1, [r4, #0x14] adds r0, r4, #0 bl sub_08060E70 movs r0, #5 movs r1, #2 movs r2, #0 bl CreateNPC cmp r0, #0 beq _08060B54 str r4, [r0, #0x50] str r0, [r4, #0x78] _08060B54: pop {r4, pc} .align 2, 0 _08060B58: .4byte gUnk_080FD150 thumb_func_start sub_08060B5C sub_08060B5C: @ 0x08060B5C push {r4, r5, lr} adds r4, r0, #0 bl sub_08061230 cmp r0, #0 bne _08060B9E adds r0, r4, #0 bl sub_08060F80 adds r5, r0, #0 cmp r5, #0 bne _08060B98 ldr r1, _08060B94 @ =gLinkEntity adds r0, r4, #0 bl GetFacingDirection ldrb r1, [r4, #0x14] lsls r1, r1, #2 subs r0, r0, r1 adds r0, #4 movs r1, #0x1f ands r0, r1 cmp r0, #8 bhi _08060B98 movs r0, #2 strb r0, [r4, #0xc] strb r5, [r4, #0xf] b _08060B9E .align 2, 0 _08060B94: .4byte gLinkEntity _08060B98: adds r0, r4, #0 bl sub_08060EDC _08060B9E: pop {r4, r5, pc} thumb_func_start sub_08060BA0 sub_08060BA0: @ 0x08060BA0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08061230 cmp r0, #0 beq _08060BAE b _08060D74 _08060BAE: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08060C66 movs r0, #8 ands r0, r1 cmp r0, #0 beq _08060BF6 movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrh r1, [r2, #0xe] ldrh r2, [r2, #0x10] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xe] ldrh r2, [r0, #0x10] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 bne _08060BEE b _08060D54 _08060BEE: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf7 b _08060D36 _08060BF6: ldrh r1, [r2, #0xa] ldrh r2, [r2, #0xc] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060C56 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xa] ldrh r2, [r0, #0xc] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060C38 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] movs r0, #5 strb r0, [r4, #0xc] ldrb r0, [r5, #0x15] strb r0, [r4, #0x15] movs r0, #0xb0 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #8 bl sub_08060E70 b _08060D54 _08060C38: movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 b _08060D54 _08060C56: movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061464 b _08060D54 _08060C66: ldr r5, _08060C98 @ =gLinkEntity movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060C9C movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061090 adds r0, r4, #0 bl sub_08061170 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf5 b _08060D36 .align 2, 0 _08060C98: .4byte gLinkEntity _08060C9C: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08060CDA movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldrh r1, [r2, #0xe] ldrh r2, [r2, #0x10] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #0xe] ldrh r2, [r0, #0x10] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060D54 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xf7 b _08060D36 _08060CDA: movs r0, #2 ands r0, r1 cmp r0, #0 bne _08060CF4 movs r0, #2 orrs r0, r1 strb r0, [r2] ldr r1, [r4, #0x64] ldrh r0, [r1, #2] strh r0, [r1, #6] ldr r1, [r4, #0x64] ldrh r0, [r1, #4] strh r0, [r1, #8] _08060CF4: ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060D3C movs r0, #0xf0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 movs r3, #0xc bl sub_08061120 adds r0, r4, #0 bl sub_08061170 ldr r0, [r4, #0x64] ldrh r1, [r0, #6] ldrh r2, [r0, #8] adds r0, r4, #0 movs r3, #4 bl sub_0806FCB8 cmp r0, #0 beq _08060D54 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfd _08060D36: ands r0, r1 strb r0, [r2] b _08060D54 _08060D3C: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfd ands r0, r1 strb r0, [r2] movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 bl sub_08061464 _08060D54: adds r0, r4, #0 bl sub_08060F80 cmp r0, #0 beq _08060D74 movs r0, #1 strb r0, [r4, #0xc] ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060D74: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08060D78 sub_08060D78: @ 0x08060D78 push {r4, r5, lr} adds r4, r0, #0 bl sub_08061358 adds r0, r4, #0 bl sub_08060F80 cmp r0, #0 beq _08060DCE adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060DC2 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #7 ands r0, r1 cmp r0, #0 beq _08060DB2 adds r1, r4, #0 adds r1, #0x59 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl UpdateAnimationSingleFrame _08060DB2: ldrb r1, [r5] movs r0, #0x18 ands r0, r1 strb r0, [r4, #0x14] adds r1, r4, #0 adds r1, #0x6c movs r0, #0xff strb r0, [r1] _08060DC2: movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060DCE: pop {r4, r5, pc} thumb_func_start sub_08060DD0 sub_08060DD0: @ 0x08060DD0 push {r4, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08060DF2 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 _08060DF2: pop {r4, pc} thumb_func_start sub_08060DF4 sub_08060DF4: @ 0x08060DF4 push {lr} bl sub_08061170 pop {pc} thumb_func_start sub_08060DFC sub_08060DFC: @ 0x08060DFC push {r4, lr} adds r4, r0, #0 bl sub_0806F69C adds r0, r4, #0 bl sub_08060E94 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08060E32 movs r0, #7 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x38 movs r0, #1 strb r0, [r1] adds r0, r4, #0 bl UpdateSpriteForCollisionLayer adds r0, r4, #0 movs r1, #0x1c bl sub_08060E70 _08060E32: pop {r4, pc} thumb_func_start sub_08060E34 sub_08060E34: @ 0x08060E34 push {r4, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08060E68 movs r0, #2 strb r0, [r4, #0xc] ldr r1, _08060E6C @ =gLinkEntity adds r0, r4, #0 bl GetFacingDirection adds r0, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #8 bl sub_08060E70 _08060E68: pop {r4, pc} .align 2, 0 _08060E6C: .4byte gLinkEntity thumb_func_start sub_08060E70 sub_08060E70: @ 0x08060E70 push {lr} adds r2, r0, #0 adds r3, r1, #0 ldrb r0, [r2, #0x14] lsrs r0, r0, #1 adds r1, r3, r0 adds r0, r2, #0 adds r0, #0x58 ldrb r0, [r0] cmp r1, r0 beq _08060E92 adds r0, r2, #0 adds r0, #0x6c strb r3, [r0] adds r0, r2, #0 bl InitAnimationForceUpdate _08060E92: pop {pc} thumb_func_start sub_08060E94 sub_08060E94: @ 0x08060E94 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x58] ldr r1, _08060ECC @ =0x0080FF00 ands r0, r1 ldr r1, _08060ED0 @ =0x00800100 cmp r0, r1 bne _08060ED4 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #3 bhi _08060ED4 ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r0, r4, #0 bl InitAnimationForceUpdate bl Random movs r1, #0x7f ands r0, r1 adds r0, #0x80 adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] b _08060EDA .align 2, 0 _08060ECC: .4byte 0x0080FF00 _08060ED0: .4byte 0x00800100 _08060ED4: adds r0, r4, #0 bl UpdateAnimationSingleFrame _08060EDA: pop {r4, pc} thumb_func_start sub_08060EDC sub_08060EDC: @ 0x08060EDC push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060F00 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08060F00 adds r0, r4, #0 bl UpdateAnimationSingleFrame b _08060F7C _08060F00: ldr r1, _08060F30 @ =gLinkEntity adds r0, r4, #0 bl GetFacingDirection ldrb r2, [r4, #0x14] lsls r1, r2, #2 subs r1, r0, r1 adds r0, r1, #3 movs r3, #0x1f ands r0, r3 cmp r0, #6 ble _08060F4A ands r1, r3 cmp r1, #0xf bgt _08060F34 adds r1, r2, #0 adds r1, #0x20 adds r0, r4, #0 bl InitAnimationForceUpdate ldrb r0, [r4, #0x14] adds r0, #1 b _08060F42 .align 2, 0 _08060F30: .4byte gLinkEntity _08060F34: adds r1, r2, #0 adds r1, #0x28 adds r0, r4, #0 bl InitAnimationForceUpdate ldrb r0, [r4, #0x14] subs r0, #1 _08060F42: movs r1, #7 ands r0, r1 strb r0, [r4, #0x14] b _08060F7C _08060F4A: movs r0, #1 ands r2, r0 cmp r2, #0 bne _08060F7C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08060F76 adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] subs r0, #0x20 cmp r0, #0xf bhi _08060F76 adds r0, r4, #0 movs r1, #0 bl sub_08060E70 b _08060F7C _08060F76: adds r0, r4, #0 bl sub_08060E94 _08060F7C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08060F80 sub_08060F80: @ 0x08060F80 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08060FC8 @ =gLinkEntity movs r0, #0x2e ldrsh r1, [r5, r0] movs r3, #0x32 ldrsh r2, [r5, r3] adds r0, r4, #0 bl sub_08060FD0 cmp r0, #0 beq _08060FC2 ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] movs r1, #0x2e ldrsh r0, [r5, r1] movs r2, #0x2e ldrsh r1, [r4, r2] subs r0, r0, r1 movs r3, #0x32 ldrsh r1, [r5, r3] movs r3, #0x32 ldrsh r2, [r4, r3] subs r1, r1, r2 ldr r2, [r4, #0x64] ldrb r2, [r2, #1] bl sub_0806FCD0 cmp r0, #0 bne _08060FCC _08060FC2: movs r0, #0 b _08060FCE .align 2, 0 _08060FC8: .4byte gLinkEntity _08060FCC: movs r0, #1 _08060FCE: pop {r4, r5, pc} thumb_func_start sub_08060FD0 sub_08060FD0: @ 0x08060FD0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 adds r4, r0, #0 mov sb, r1 mov r8, r2 movs r0, #0x2e ldrsh r7, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] mov r2, sb subs r0, r2, r7 mov r5, r8 subs r1, r5, r6 bl sub_080045DA lsls r7, r7, #8 lsls r6, r6, #8 ldr r3, _08061058 @ =gSineTable lsls r1, r0, #1 adds r1, r1, r3 movs r5, #0 ldrsh r2, [r1, r5] lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #1 str r1, [sp] adds r0, #0x40 lsls r0, r0, #1 adds r0, r0, r3 movs r2, #0 ldrsh r1, [r0, r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #1 str r0, [sp, #4] adds r4, #0x38 ldrb r0, [r4] ldr r5, _0806105C @ =gUnk_0200D654 mov sl, r5 cmp r0, #2 beq _0806102E ldr r0, _08061060 @ =gUnk_02027EB4 mov sl, r0 _0806102E: adds r1, r7, #0 cmp r7, #0 bge _08061036 adds r1, #0xff _08061036: asrs r5, r1, #8 adds r2, r6, #0 cmp r6, #0 bge _08061040 adds r2, #0xff _08061040: asrs r4, r2, #8 mov r0, sl adds r1, r5, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061064 movs r0, #0 b _08061084 .align 2, 0 _08061058: .4byte gSineTable _0806105C: .4byte gUnk_0200D654 _08061060: .4byte gUnk_02027EB4 _08061064: mov r1, sb subs r0, r1, r5 adds r0, #6 cmp r0, #0xc bhi _08061078 mov r2, r8 subs r0, r2, r4 adds r0, #6 cmp r0, #0xc bls _08061082 _08061078: ldr r5, [sp] adds r7, r7, r5 ldr r0, [sp, #4] subs r6, r6, r0 b _0806102E _08061082: movs r0, #1 _08061084: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061090 sub_08061090: @ 0x08061090 push {r4, r5, r6, lr} adds r3, r0, #0 adds r5, r1, #0 adds r6, r2, #0 ldr r1, _080610C8 @ =gLinkEntity movs r0, #0x2e ldrsh r2, [r1, r0] movs r4, #0x2e ldrsh r0, [r3, r4] subs r2, r2, r0 movs r4, #0x32 ldrsh r0, [r1, r4] movs r4, #0x32 ldrsh r1, [r3, r4] subs r0, r0, r1 adds r1, r2, #0 muls r1, r2, r1 adds r2, r0, #0 muls r2, r0, r2 adds r0, r2, #0 adds r1, r1, r0 ldr r0, _080610CC @ =0x000008FF cmp r1, r0 bgt _080610D0 movs r0, #0x90 lsls r0, r0, #1 b _080610F0 .align 2, 0 _080610C8: .4byte gLinkEntity _080610CC: .4byte 0x000008FF _080610D0: ldr r0, _080610E4 @ =0x000018FF cmp r1, r0 bgt _080610EC ldr r4, _080610E8 @ =0xFFFFF700 adds r0, r1, r4 asrs r0, r0, #4 movs r1, #0x90 lsls r1, r1, #1 adds r0, r0, r1 b _080610F0 .align 2, 0 _080610E4: .4byte 0x000018FF _080610E8: .4byte 0xFFFFF700 _080610EC: movs r0, #0x88 lsls r0, r0, #2 _080610F0: strh r0, [r3, #0x24] movs r2, #0x24 ldrsh r1, [r3, r2] movs r0, #0x90 lsls r0, r0, #1 cmp r1, r0 bne _08061102 movs r4, #4 b _0806110C _08061102: ldr r0, _0806111C @ =0x0000015F movs r4, #0xc cmp r1, r0 bgt _0806110C movs r4, #8 _0806110C: adds r0, r3, #0 adds r1, r5, #0 adds r2, r6, #0 adds r3, r4, #0 bl sub_08061120 pop {r4, r5, r6, pc} .align 2, 0 _0806111C: .4byte 0x0000015F thumb_func_start sub_08061120 sub_08061120: @ 0x08061120 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r4, r1, #0 adds r5, r2, #0 adds r7, r3, #0 movs r1, #0x2e ldrsh r0, [r6, r1] movs r2, #0x32 ldrsh r1, [r6, r2] adds r2, r4, #0 adds r3, r5, #0 bl sub_080045D4 strb r0, [r6, #0x15] adds r0, r6, #0 adds r0, #0x6c ldrb r0, [r0] cmp r7, r0 bne _08061158 ldrb r0, [r6, #0x15] ldrb r1, [r6, #0x14] lsls r1, r1, #2 subs r0, r0, r1 adds r0, #5 movs r1, #0x1f ands r0, r1 cmp r0, #0xa ble _0806116C _08061158: ldrb r0, [r6, #0x15] adds r0, #4 movs r1, #0x18 ands r0, r1 asrs r0, r0, #2 strb r0, [r6, #0x14] adds r0, r6, #0 adds r1, r7, #0 bl sub_08060E70 _0806116C: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061170 sub_08061170: @ 0x08061170 push {r4, r5, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 bl sub_080AF1EC cmp r0, #0 bne _080611CA adds r0, r4, #0 bl sub_080611D4 adds r5, r0, #0 cmp r5, #0xff beq _080611C6 movs r0, #6 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08079FD4 lsls r0, r0, #4 subs r0, #4 lsls r0, r0, #0xc str r0, [r4, #0x20] movs r1, #0x80 lsls r1, r1, #1 strh r1, [r4, #0x24] strb r5, [r4, #0x15] lsrs r1, r5, #2 strb r1, [r4, #0x14] lsrs r0, r0, #0x10 cmp r0, #0 beq _080611BE adds r0, r4, #0 movs r1, #0x14 bl sub_08060E70 b _080611C6 _080611BE: adds r0, r4, #0 movs r1, #0x18 bl sub_08060E70 _080611C6: movs r0, #0 b _080611D2 _080611CA: adds r0, r4, #0 bl sub_08016AD2 movs r0, #1 _080611D2: pop {r4, r5, pc} thumb_func_start sub_080611D4 sub_080611D4: @ 0x080611D4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x14] movs r0, #6 ands r0, r1 ldr r1, _08061218 @ =gUnk_0810AC4C adds r0, r0, r1 movs r1, #0 ldrsb r1, [r0, r1] movs r2, #1 ldrsb r2, [r0, r2] adds r0, r4, #0 bl sub_080002B4 adds r3, r0, #0 ldr r2, _0806121C @ =gUnk_0810AC54 _080611F4: ldrb r0, [r2] cmp r0, r3 bne _08061220 ldrb r0, [r2, #1] ldrb r1, [r4, #0x14] lsrs r0, r0, #2 cmp r1, r0 bne _08061220 ldrb r0, [r4, #0xf] adds r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #7 bls _0806122A ldrb r0, [r2, #1] b _0806122C .align 2, 0 _08061218: .4byte gUnk_0810AC4C _0806121C: .4byte gUnk_0810AC54 _08061220: adds r2, #2 ldrb r0, [r2] cmp r0, #0 bne _080611F4 strb r0, [r4, #0xf] _0806122A: movs r0, #0xff _0806122C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061230 sub_08061230: @ 0x08061230 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x64] ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08061302 adds r1, r4, #0 adds r1, #0x41 ldrb r3, [r1] movs r0, #0x80 ands r0, r3 adds r2, r1, #0 cmp r0, #0 beq _0806133A movs r0, #0x7f ands r0, r3 cmp r0, #0x1f bhi _080612E8 lsls r0, r0, #2 ldr r1, _08061264 @ =_08061268 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08061264: .4byte _08061268 _08061268: @ jump table .4byte _0806133A @ case 0 .4byte _0806133A @ case 1 .4byte _0806133A @ case 2 .4byte _0806133A @ case 3 .4byte _080612E8 @ case 4 .4byte _080612E8 @ case 5 .4byte _080612E8 @ case 6 .4byte _080612E8 @ case 7 .4byte _080612E8 @ case 8 .4byte _080612E8 @ case 9 .4byte _080612E8 @ case 10 .4byte _080612E8 @ case 11 .4byte _080612E8 @ case 12 .4byte _080612E8 @ case 13 .4byte _080612E8 @ case 14 .4byte _0806133A @ case 15 .4byte _080612E8 @ case 16 .4byte _080612E8 @ case 17 .4byte _080612E8 @ case 18 .4byte _0806133A @ case 19 .4byte _080612E8 @ case 20 .4byte _080612E8 @ case 21 .4byte _080612E8 @ case 22 .4byte _080612E8 @ case 23 .4byte _080612E8 @ case 24 .4byte _080612E8 @ case 25 .4byte _080612E8 @ case 26 .4byte _0806133A @ case 27 .4byte _080612E8 @ case 28 .4byte _080612E8 @ case 29 .4byte _0806133A @ case 30 .4byte _0806133A @ case 31 _080612E8: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #1 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r1, #0x40 adds r0, r4, #0 bl InitAnimationForceUpdate movs r0, #1 b _08061356 _08061302: adds r0, r4, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0806131A movs r0, #1 b _08061356 _0806131A: ldr r2, [r4, #0x64] ldrb r1, [r2] movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x6c ldrb r1, [r4, #0x14] lsrs r1, r1, #1 ldrb r0, [r0] adds r1, r1, r0 adds r0, r4, #0 bl InitAnimationForceUpdate adds r2, r4, #0 adds r2, #0x41 _0806133A: ldrb r0, [r2] movs r1, #0x7f ands r1, r0 strb r1, [r2] adds r1, r4, #0 adds r1, #0x3d ldrb r2, [r1] movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08061354 adds r0, r2, #1 strb r0, [r1] _08061354: movs r0, #0 _08061356: pop {r4, pc} thumb_func_start sub_08061358 sub_08061358: @ 0x08061358 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r5, [r4, #0xd] cmp r5, #1 beq _0806139C cmp r5, #1 bgt _0806136C cmp r5, #0 beq _08061376 b _08061460 _0806136C: cmp r5, #2 beq _080613D0 cmp r5, #3 beq _0806141E b _08061460 _08061376: adds r0, r4, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08061460 movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xf strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #0 bl sub_08060E70 b _08061460 _0806139C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08061460 bl Random adds r6, r0, #0 ands r5, r6 cmp r5, #0 beq _080613FA movs r0, #2 strb r0, [r4, #0xd] ldr r3, _080613CC @ =gUnk_0810AC5D ldrb r0, [r4, #0x14] lsls r0, r0, #1 lsrs r1, r6, #4 movs r2, #3 ands r1, r2 adds r0, r0, r1 adds r0, r0, r3 b _0806143A .align 2, 0 _080613CC: .4byte gUnk_0810AC5D _080613D0: adds r0, r4, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08061460 movs r0, #0x18 ands r0, r1 lsrs r0, r0, #2 strb r0, [r4, #0x14] bl Random adds r1, r0, #0 movs r0, #1 ands r1, r0 cmp r1, #0 beq _08061412 _080613FA: movs r0, #3 strb r0, [r4, #0xd] movs r0, #0x18 ands r6, r0 adds r0, r6, #0 adds r0, #0x1e strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #4 bl sub_08060E70 b _08061460 _08061412: strb r1, [r4, #0xd] adds r0, r4, #0 movs r1, #0x10 bl sub_08060E70 b _08061460 _0806141E: adds r0, r4, #0 bl sub_08061170 cmp r0, #0 bne _08061448 movs r0, #2 strb r0, [r4, #0xd] ldr r2, _08061444 @ =gUnk_0810AC5D ldrb r0, [r4, #0x14] lsls r0, r0, #1 lsrs r1, r6, #4 ands r1, r5 adds r0, r0, r1 adds r0, r0, r2 _0806143A: ldrb r1, [r0] adds r0, r4, #0 bl InitAnimationForceUpdate b _08061460 .align 2, 0 _08061444: .4byte gUnk_0810AC5D _08061448: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _08061460 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #0x10 bl sub_08060E70 _08061460: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08061464 sub_08061464: @ 0x08061464 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r4, r0, #0 mov r8, r1 adds r5, r2, #0 movs r0, #0x2e ldrsh r7, [r4, r0] movs r1, #0x32 ldrsh r6, [r4, r1] adds r0, r7, #0 adds r1, r6, #0 mov r2, r8 adds r3, r5, #0 bl sub_080045D4 adds r0, #2 movs r1, #0x1c ands r0, r1 lsrs r0, r0, #2 cmp r0, #7 bls _08061494 b _08061612 _08061494: lsls r0, r0, #2 ldr r1, _080614A0 @ =_080614A4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080614A0: .4byte _080614A4 _080614A4: @ jump table .4byte _080614C4 @ case 0 .4byte _080614E2 @ case 1 .4byte _08061514 @ case 2 .4byte _08061544 @ case 3 .4byte _08061566 @ case 4 .4byte _08061584 @ case 5 .4byte _080615B4 @ case 6 .4byte _080615E4 @ case 7 _080614C4: adds r0, r4, #0 adds r0, #0x6e strh r5, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, r8 ble _08061504 adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061630 b _08061612 _080614E2: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061720 cmp r0, #0 beq _08061500 b _08061612 _08061500: mov r0, sb strh r5, [r0] _08061504: adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_080616A8 b _08061612 _08061514: adds r0, r4, #0 adds r0, #0x6e mov r1, r8 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 ble _08061534 adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061720 b _08061612 _08061534: adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061798 b _08061612 _08061544: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 adds r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061798 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] b _08061574 _08061566: adds r0, r4, #0 adds r0, #0x6e strh r5, [r0] movs r1, #0x2e ldrsh r0, [r4, r1] cmp r0, r8 bgt _080615A4 _08061574: adds r2, r6, #0 adds r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061888 b _08061612 _08061584: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061978 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] _080615A4: adds r2, r6, #0 adds r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061810 b _08061612 _080615B4: adds r0, r4, #0 adds r0, #0x6e mov r1, r8 strh r1, [r0] movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 ble _080615D4 adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061900 b _08061612 _080615D4: adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061978 b _08061612 _080615E4: movs r0, #0x6e adds r0, r0, r4 mov sb, r0 mov r1, r8 strh r1, [r0] adds r1, r7, #0 subs r1, #8 adds r0, r4, #0 adds r2, r6, #0 adds r3, r5, #0 bl sub_08061900 cmp r0, #0 bne _08061612 mov r0, sb strh r5, [r0] adds r2, r6, #0 subs r2, #8 adds r0, r4, #0 adds r1, r7, #0 mov r3, r8 bl sub_08061630 _08061612: ldr r0, [r4, #0x64] ldrb r1, [r0] movs r0, #8 ands r0, r1 lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _08061628 movs r0, #3 strb r0, [r4, #0xc] strb r1, [r4, #0xd] _08061628: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061630 sub_08061630: @ 0x08061630 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061650 @ =gUnk_02027EB4 cmp r0, #2 bne _0806168C ldr r7, _08061654 @ =gUnk_0200D654 b _0806168C .align 2, 0 _08061650: .4byte gUnk_02027EB4 _08061654: .4byte gUnk_0200D654 _08061658: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A74 cmp r0, #0 beq _0806168A ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _0806168A movs r0, #1 b _0806169E _0806168A: subs r4, #8 _0806168C: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061658 movs r0, #0 _0806169E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080616A8 sub_080616A8: @ 0x080616A8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080616C8 @ =gUnk_02027EB4 cmp r0, #2 bne _08061704 ldr r7, _080616CC @ =gUnk_0200D654 b _08061704 .align 2, 0 _080616C8: .4byte gUnk_02027EB4 _080616CC: .4byte gUnk_0200D654 _080616D0: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A1C cmp r0, #0 beq _08061702 ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _08061702 movs r0, #1 b _08061716 _08061702: subs r4, #8 _08061704: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080616D0 movs r0, #0 _08061716: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061720 sub_08061720: @ 0x08061720 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061740 @ =gUnk_02027EB4 cmp r0, #2 bne _0806177C ldr r7, _08061744 @ =gUnk_0200D654 b _0806177C .align 2, 0 _08061740: .4byte gUnk_02027EB4 _08061744: .4byte gUnk_0200D654 _08061748: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_080619F0 cmp r0, #0 beq _0806177A ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _0806177A movs r0, #1 b _0806178E _0806177A: adds r4, #8 _0806177C: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061748 movs r0, #0 _0806178E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061798 sub_08061798: @ 0x08061798 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080617B8 @ =gUnk_02027EB4 cmp r0, #2 bne _080617F4 ldr r7, _080617BC @ =gUnk_0200D654 b _080617F4 .align 2, 0 _080617B8: .4byte gUnk_02027EB4 _080617BC: .4byte gUnk_0200D654 _080617C0: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_08061A48 cmp r0, #0 beq _080617F2 ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _080617F2 movs r0, #1 b _08061806 _080617F2: adds r4, #8 _080617F4: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080617C0 movs r0, #0 _08061806: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061810 sub_08061810: @ 0x08061810 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061830 @ =gUnk_02027EB4 cmp r0, #2 bne _0806186C ldr r7, _08061834 @ =gUnk_0200D654 b _0806186C .align 2, 0 _08061830: .4byte gUnk_02027EB4 _08061834: .4byte gUnk_0200D654 _08061838: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A74 cmp r0, #0 beq _0806186A ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _0806186A movs r0, #1 b _0806187E _0806186A: adds r4, #8 _0806186C: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061838 movs r0, #0 _0806187E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061888 sub_08061888: @ 0x08061888 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r6, r1, #0 adds r4, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _080618A8 @ =gUnk_02027EB4 cmp r0, #2 bne _080618E4 ldr r7, _080618AC @ =gUnk_0200D654 b _080618E4 .align 2, 0 _080618A8: .4byte gUnk_02027EB4 _080618AC: .4byte gUnk_0200D654 _080618B0: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 mov r3, sb bl sub_08061A1C cmp r0, #0 beq _080618E2 ldr r0, [r5, #0x64] strh r6, [r0, #0xe] ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 bgt _080618E2 movs r0, #1 b _080618F6 _080618E2: adds r4, #8 _080618E4: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080618B0 movs r0, #0 _080618F6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061900 sub_08061900: @ 0x08061900 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061920 @ =gUnk_02027EB4 cmp r0, #2 bne _0806195C ldr r7, _08061924 @ =gUnk_0200D654 b _0806195C .align 2, 0 _08061920: .4byte gUnk_02027EB4 _08061924: .4byte gUnk_0200D654 _08061928: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_080619F0 cmp r0, #0 beq _0806195A ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _0806195A movs r0, #1 b _0806196E _0806195A: subs r4, #8 _0806195C: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061928 movs r0, #0 _0806196E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08061978 sub_08061978: @ 0x08061978 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 mov sb, r3 mov r8, r4 adds r0, #0x38 ldrb r0, [r0] ldr r7, _08061998 @ =gUnk_02027EB4 cmp r0, #2 bne _080619D4 ldr r7, _0806199C @ =gUnk_0200D654 b _080619D4 .align 2, 0 _08061998: .4byte gUnk_02027EB4 _0806199C: .4byte gUnk_0200D654 _080619A0: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 mov r3, sb bl sub_08061A48 cmp r0, #0 beq _080619D2 ldr r0, [r5, #0x64] mov r1, r8 strh r1, [r0, #0xe] ldr r0, [r5, #0x64] strh r6, [r0, #0x10] ldr r2, [r5, #0x64] ldrb r1, [r2] movs r0, #8 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x6e ldrh r0, [r0] cmp r0, r4 blt _080619D2 movs r0, #1 b _080619E6 _080619D2: subs r4, #8 _080619D4: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _080619A0 movs r0, #0 _080619E6: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080619F0 sub_080619F0: @ 0x080619F0 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r6, r1, #0 adds r4, r2, #0 adds r5, r3, #0 cmp r5, r4 bgt _08061A18 _080619FE: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A12 movs r0, #0 b _08061A1A _08061A12: subs r4, #8 cmp r5, r4 ble _080619FE _08061A18: movs r0, #1 _08061A1A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A1C sub_08061A1C: @ 0x08061A1C push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r4, r1, #0 adds r6, r2, #0 adds r5, r3, #0 cmp r5, r4 blt _08061A44 _08061A2A: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A3E movs r0, #0 b _08061A46 _08061A3E: adds r4, #8 cmp r5, r4 bge _08061A2A _08061A44: movs r0, #1 _08061A46: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A48 sub_08061A48: @ 0x08061A48 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r6, r1, #0 adds r4, r2, #0 adds r5, r3, #0 cmp r5, r4 blt _08061A70 _08061A56: adds r0, r7, #0 adds r1, r6, #0 adds r2, r4, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A6A movs r0, #0 b _08061A72 _08061A6A: adds r4, #8 cmp r5, r4 bge _08061A56 _08061A70: movs r0, #1 _08061A72: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061A74 sub_08061A74: @ 0x08061A74 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r4, r1, #0 adds r6, r2, #0 adds r5, r3, #0 cmp r5, r4 bgt _08061A9C _08061A82: adds r0, r7, #0 adds r1, r4, #0 adds r2, r6, #0 movs r3, #6 bl sub_080AE4CC cmp r0, #0 beq _08061A96 movs r0, #0 b _08061A9E _08061A96: subs r4, #8 cmp r5, r4 ble _08061A82 _08061A9C: movs r0, #1 _08061A9E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08061AA0 sub_08061AA0: @ 0x08061AA0 push {lr} bl DeleteThisEntity pop {pc} thumb_func_start sub_08061AA8 sub_08061AA8: @ 0x08061AA8 push {r4, lr} adds r4, r0, #0 ldr r1, _08061AC8 @ =gUnk_0810AC70 ldrb r0, [r4, #0xc] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r0, [r4, #0x50] adds r1, r4, #0 bl CopyPosition pop {r4, pc} .align 2, 0 _08061AC8: .4byte gUnk_0810AC70 thumb_func_start sub_08061ACC sub_08061ACC: @ 0x08061ACC push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0x20 movs r2, #0 orrs r0, r1 strb r0, [r4, #0x10] movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0xd] strb r2, [r4, #0xe] ldrb r1, [r4, #0x17] movs r0, #0xfe ands r0, r1 strb r0, [r4, #0x17] adds r0, r4, #0 bl sub_08078778 adds r0, r4, #0 bl sub_08061AFC pop {r4, pc} .align 2, 0 thumb_func_start sub_08061AFC sub_08061AFC: @ 0x08061AFC push {lr} adds r1, r0, #0 movs r2, #0 ldrb r0, [r1, #0xd] cmp r0, #0 beq _08061B12 strb r2, [r1, #0xd] ldr r0, _08061B14 @ =gUnk_0810B660 ldr r0, [r0] str r0, [r1, #0x68] strb r2, [r1, #0xe] _08061B12: pop {pc} .align 2, 0 _08061B14: .4byte gUnk_0810B660 thumb_func_start sub_08061B18 sub_08061B18: @ 0x08061B18 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x39 movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 beq _08061B54 cmp r0, #1 bne _08061B54 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08061AFC ldr r2, [r4, #0x68] ldrb r0, [r4, #0xe] adds r1, r0, #1 strb r1, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x17 adds r2, r2, r0 ldrh r0, [r2, #2] cmp r0, #0 bne _08061B4C strb r0, [r4, #0xe] _08061B4C: ldrh r0, [r2] adds r1, r4, #0 bl TextboxNoOverlap _08061B54: pop {r4, pc} .align 2, 0 thumb_func_start sub_08061B58 sub_08061B58: @ 0x08061B58 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0 bne _08061B6E movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #2 bl InitAnimationForceUpdate _08061B6E: ldr r0, _08061B88 @ =gScreenTransition adds r0, #0x2c ldrb r0, [r0] cmp r0, #2 bne _08061B7E adds r0, r4, #0 bl UpdateAnimationSingleFrame _08061B7E: adds r0, r4, #0 bl sub_0806FD3C pop {r4, pc} .align 2, 0 _08061B88: .4byte gScreenTransition