.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start DarkNut DarkNut: @ 0x08020B80 push {r4, lr} adds r4, r0, #0 ldr r1, _08020B9C @ =gUnk_080CAA98 bl EnemyFunctionHandler movs r3, #0x16 rsbs r3, r3, #0 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl SetChildOffset pop {r4, pc} .align 2, 0 _08020B9C: .4byte gUnk_080CAA98 thumb_func_start sub_08020BA0 sub_08020BA0: @ 0x08020BA0 push {lr} ldr r2, _08020BB4 @ =gUnk_080CAAB0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08020BB4: .4byte gUnk_080CAAB0 thumb_func_start sub_08020BB8 sub_08020BB8: @ 0x08020BB8 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] movs r2, #0x7f adds r1, r2, #0 ands r1, r0 cmp r1, #0x1c beq _08020BE0 cmp r1, #0x1c bgt _08020BD4 cmp r1, #0x16 beq _08020C24 b _08020D32 _08020BD4: cmp r1, #0x4b beq _08020C68 cmp r1, #0x4c bne _08020BDE b _08020CF0 _08020BDE: b _08020D32 _08020BE0: movs r0, #0xb strb r0, [r4, #0xc] ldr r1, _08020C20 @ =gUnk_080CAB0C ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x51 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] movs r2, #0x10 eors r2, r0 adds r2, #4 movs r0, #0x18 ands r2, r0 asrs r2, r2, #3 adds r0, r4, #0 movs r1, #8 bl sub_08021218 adds r0, r4, #0 bl sub_08021588 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC b _08020CE2 .align 2, 0 _08020C20: .4byte gUnk_080CAB0C _08020C24: movs r0, #0xb strb r0, [r4, #0xc] ldr r1, _08020C64 @ =gUnk_080CAB10 ldrb r0, [r4, #0xa] adds r0, r0, r1 ldrb r0, [r0] strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x51 strb r0, [r1] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] movs r2, #0x10 eors r2, r0 adds r2, #4 movs r0, #0x18 ands r2, r0 asrs r2, r2, #3 adds r0, r4, #0 movs r1, #8 bl sub_08021218 adds r0, r4, #0 bl sub_08021588 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC b _08020CE2 .align 2, 0 _08020C64: .4byte gUnk_080CAB10 _08020C68: ldrb r0, [r4, #0xc] adds r6, r4, #0 adds r6, #0x45 adds r5, r4, #0 adds r5, #0x78 cmp r0, #0xd beq _08020D58 cmp r0, #0xf beq _08020D58 cmp r0, #0x13 beq _08020D58 cmp r0, #0x12 beq _08020D58 adds r0, r4, #0 adds r0, #0x79 ldrb r0, [r0] cmp r0, #4 blt _08020CC0 cmp r0, #6 ble _08020CAC cmp r0, #0xc bgt _08020CC0 cmp r0, #8 blt _08020CC0 ldr r0, _08020CA8 @ =gUnk_080CAB04 ldrb r1, [r4, #0xa] adds r1, r1, r0 ldrb r0, [r1] adds r1, r4, #0 adds r1, #0x7a b _08020CC6 .align 2, 0 _08020CA8: .4byte gUnk_080CAB04 _08020CAC: ldr r0, _08020CBC @ =gUnk_080CAB00 ldrb r1, [r4, #0xa] adds r1, r1, r0 ldrb r0, [r1] adds r1, r4, #0 adds r1, #0x7a b _08020CC6 .align 2, 0 _08020CBC: .4byte gUnk_080CAB00 _08020CC0: adds r1, r4, #0 adds r1, #0x7a movs r0, #0 _08020CC6: strb r0, [r1] movs r0, #0xa strb r0, [r4, #0xc] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #0xb bl sub_08021218 ldr r0, _08020CEC @ =0x0000015D bl sub_08004488 adds r0, r4, #0 bl sub_08021588 _08020CE2: adds r6, r4, #0 adds r6, #0x45 adds r5, r4, #0 adds r5, #0x78 b _08020D58 .align 2, 0 _08020CEC: .4byte 0x0000015D _08020CF0: ldrb r0, [r4, #0xc] adds r6, r4, #0 adds r6, #0x45 adds r5, r4, #0 adds r5, #0x78 cmp r0, #0xf bne _08020D58 movs r1, #0xff ldr r0, [r4, #0x54] cmp r0, #0 beq _08020D0E adds r0, #0x41 ldrb r0, [r0] adds r1, r2, #0 ands r1, r0 _08020D0E: cmp r1, #2 bne _08020D28 ldr r0, _08020D24 @ =gUnk_080CAB08 ldrb r1, [r4, #0xa] adds r1, r1, r0 ldrb r1, [r1] adds r0, r4, #0 bl sub_080213D0 b _08020D58 .align 2, 0 _08020D24: .4byte gUnk_080CAB08 _08020D28: adds r0, r4, #0 movs r1, #0 bl sub_080213D0 b _08020D58 _08020D32: adds r2, r4, #0 adds r2, #0x45 adds r0, r4, #0 adds r0, #0x78 ldrb r1, [r2] adds r6, r2, #0 adds r5, r0, #0 ldrb r0, [r5] cmp r1, r0 beq _08020D58 adds r0, r4, #0 bl sub_08021588 adds r0, r4, #0 bl sub_08021390 adds r0, r4, #0 bl sub_0804AA1C _08020D58: ldrb r0, [r6] strb r0, [r5] ldr r1, _08020D68 @ =gUnk_080CAA98 adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, pc} .align 2, 0 _08020D68: .4byte gUnk_080CAA98 thumb_func_start nullsub_129 nullsub_129: @ 0x08020D6C bx lr .align 2, 0 thumb_func_start sub_08020D70 sub_08020D70: @ 0x08020D70 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r1, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x75 strb r1, [r0] subs r0, #0x30 ldrb r1, [r0] adds r0, #0x33 strb r1, [r0] movs r0, #0xff strb r0, [r4, #0x14] adds r0, r4, #0 movs r1, #0 movs r2, #2 bl sub_08021218 pop {r4, pc} thumb_func_start sub_08020D9C sub_08020D9C: @ 0x08020D9C push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08020DB0 adds r0, r4, #0 bl sub_080213F0 _08020DB0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020DB4 sub_08020DB4: @ 0x08020DB4 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 _08020DD0 adds r0, r4, #0 bl sub_08021390 _08020DD0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020DD4 sub_08020DD4: @ 0x08020DD4 push {r4, lr} adds r4, r0, #0 bl sub_080214FC cmp r0, #0 beq _08020DE8 adds r0, r4, #0 bl sub_080213F0 b _08020E26 _08020DE8: adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _08020E08 movs r0, #5 strb r0, [r4, #0xc] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #5 bl sub_08021218 b _08020E26 _08020E08: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08020E1A adds r0, r4, #0 bl sub_08021540 _08020E1A: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl UpdateAnimationSingleFrame _08020E26: pop {r4, pc} thumb_func_start sub_08020E28 sub_08020E28: @ 0x08020E28 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 _08020E44 adds r0, r4, #0 bl sub_080213B0 _08020E44: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020E48 sub_08020E48: @ 0x08020E48 push {r4, lr} adds r4, r0, #0 bl sub_080214FC cmp r0, #0 beq _08020E5C adds r0, r4, #0 bl sub_080213F0 b _08020E76 _08020E5C: 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 _08020E76 adds r0, r4, #0 bl sub_080213B0 _08020E76: pop {r4, pc} thumb_func_start sub_08020E78 sub_08020E78: @ 0x08020E78 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 _08020E94 adds r0, r4, #0 bl sub_08021390 _08020E94: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020E98 sub_08020E98: @ 0x08020E98 push {r4, r5, lr} adds r4, r0, #0 movs r1, #1 movs r2, #0x38 bl sub_08049F64 cmp r0, #0 beq _08020EF6 ldr r5, _08020EDC @ =gUnk_020000B0 ldr r1, [r5] adds r0, r4, #0 bl sub_0802169C cmp r0, #0 bne _08020ECA ldr r0, [r5] adds r1, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 bne _08020EE0 _08020ECA: movs r0, #8 strb r0, [r4, #0xc] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #7 bl sub_08021218 b _08020F26 .align 2, 0 _08020EDC: .4byte gUnk_020000B0 _08020EE0: ldrb r0, [r4, #0x15] movs r1, #0x10 eors r0, r1 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0802124C adds r0, r4, #0 bl sub_08021644 b _08020F26 _08020EF6: ldr r0, _08020F08 @ =gUnk_020000B0 ldr r1, [r0] cmp r1, #0 bne _08020F0C adds r0, r4, #0 bl sub_08021414 b _08020F26 .align 2, 0 _08020F08: .4byte gUnk_020000B0 _08020F0C: adds r0, r4, #0 bl sub_080045C4 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl sub_0802124C adds r0, r4, #0 bl sub_08021644 _08020F26: pop {r4, r5, pc} thumb_func_start sub_08020F28 sub_08020F28: @ 0x08020F28 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 _08020F44 adds r0, r4, #0 bl sub_08021400 _08020F44: pop {r4, pc} .align 2, 0 thumb_func_start sub_08020F48 sub_08020F48: @ 0x08020F48 push {r4, r5, lr} adds r4, r0, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _08020FA4 ldr r5, _08020F98 @ =gUnk_020000B0 ldr r1, [r5] adds r0, r4, #0 bl sub_08021664 cmp r0, #0 beq _08020F9C ldr r1, [r5] adds r0, r4, #0 movs r2, #9 bl sub_0804A044 adds r2, r0, #0 cmp r2, #0xff beq _08020F9C movs r0, #0xe strb r0, [r4, #0xc] lsrs r2, r2, #3 adds r0, r4, #0 movs r1, #0xd bl sub_08021218 adds r0, r4, #0 movs r1, #0 movs r2, #1 bl sub_0804A98C cmp r0, #0 beq _08020FAA str r4, [r0, #0x50] str r0, [r4, #0x54] b _08020FAA .align 2, 0 _08020F98: .4byte gUnk_020000B0 _08020F9C: adds r0, r4, #0 bl sub_08021424 b _08020FAA _08020FA4: adds r0, r4, #0 bl sub_08021390 _08020FAA: pop {r4, r5, pc} thumb_func_start sub_08020FAC sub_08020FAC: @ 0x08020FAC push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08020FDC adds r1, r2, #0 adds r1, #0x7a ldrb r0, [r1] cmp r0, #0 beq _08020FCC subs r0, #1 strb r0, [r1] b _08020FE2 _08020FCC: adds r1, r2, #0 adds r1, #0x3d movs r0, #0xf8 strb r0, [r1] adds r0, r2, #0 bl sub_08021390 b _08020FE2 _08020FDC: adds r0, r2, #0 bl UpdateAnimationSingleFrame _08020FE2: pop {pc} thumb_func_start sub_08020FE4 sub_08020FE4: @ 0x08020FE4 push {r4, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0802100C movs r0, #0xc strb r0, [r4, #0xc] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #9 bl sub_08021218 adds r0, r4, #0 bl sub_0804AA1C _0802100C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021010 sub_08021010: @ 0x08021010 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 _08021034 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x56 strb r0, [r1] adds r0, r4, #0 bl sub_080213F0 _08021034: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021038 sub_08021038: @ 0x08021038 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x54] cmp r0, #0 bne _08021066 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 beq _08021066 adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_0804A98C cmp r0, #0 beq _0802105E str r4, [r0, #0x50] str r0, [r4, #0x54] _0802105E: movs r0, #0x87 lsls r0, r0, #1 bl sub_08004488 _08021066: adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021090 adds r0, r4, #0 bl sub_08021588 adds r1, r4, #0 adds r1, #0x7c ldrb r0, [r1] cmp r0, #0 beq _08021088 subs r0, #1 b _080210A2 _08021088: adds r0, r4, #0 bl sub_08021390 b _080210A4 _08021090: adds r0, r4, #0 bl UpdateAnimationSingleFrame ldrb r0, [r5] cmp r0, #4 bne _080210A4 adds r1, r4, #0 adds r1, #0x3f movs r0, #0x51 _080210A2: strb r0, [r1] _080210A4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080210A8 sub_080210A8: @ 0x080210A8 push {r4, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _080210D4 movs r0, #0 strb r0, [r2] adds r0, r4, #0 bl sub_08021588 ldr r0, _080210D0 @ =0x0000015D bl sub_08004488 b _080210E2 .align 2, 0 _080210D0: .4byte 0x0000015D _080210D4: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080210E2 adds r0, r4, #0 bl sub_08021390 _080210E2: pop {r4, pc} thumb_func_start sub_080210E4 sub_080210E4: @ 0x080210E4 push {r4, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0802111A movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0 movs r2, #2 bl sub_0804A98C cmp r0, #0 beq _08021112 str r4, [r0, #0x50] str r0, [r4, #0x54] _08021112: movs r0, #0x87 lsls r0, r0, #1 bl sub_08004488 _0802111A: adds r0, r4, #0 bl sub_08021644 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08021154 adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 beq _0802114A ldr r0, [r4, #0x54] cmp r0, #0 beq _08021154 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021154 _0802114A: adds r0, r4, #0 movs r1, #0 bl sub_080213D0 b _0802116C _08021154: adds r1, r4, #0 adds r1, #0x76 ldrh r0, [r1] subs r0, #1 strh r0, [r1] lsls r0, r0, #0x10 cmp r0, #0 bne _0802116C adds r0, r4, #0 movs r1, #0 bl sub_080213D0 _0802116C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08021170 sub_08021170: @ 0x08021170 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021198 adds r1, r2, #0 adds r1, #0x7b ldrb r0, [r1] cmp r0, #0 beq _08021190 subs r0, #1 strb r0, [r1] b _0802119E _08021190: adds r0, r2, #0 bl sub_08021390 b _0802119E _08021198: adds r0, r2, #0 bl UpdateAnimationSingleFrame _0802119E: pop {pc} thumb_func_start sub_080211A0 sub_080211A0: @ 0x080211A0 push {r4, lr} adds r4, r0, #0 bl sub_080214FC cmp r0, #0 beq _080211B4 adds r0, r4, #0 bl sub_08021390 b _080211CE _080211B4: 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 _080211CE adds r0, r4, #0 bl sub_080213B0 _080211CE: pop {r4, pc} thumb_func_start sub_080211D0 sub_080211D0: @ 0x080211D0 push {r4, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 bl sub_0802159C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080211F2 adds r0, r4, #0 bl sub_08021390 _080211F2: pop {r4, pc} thumb_func_start sub_080211F4 sub_080211F4: @ 0x080211F4 push {r4, lr} adds r4, r0, #0 bl UpdateAnimationSingleFrame adds r0, r4, #0 bl sub_08021600 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08021216 adds r0, r4, #0 bl sub_08021390 _08021216: pop {r4, pc} thumb_func_start sub_08021218 sub_08021218: @ 0x08021218 push {r4, lr} adds r3, r0, #0 adds r4, r3, #0 adds r4, #0x74 ldrb r0, [r4] cmp r0, r1 bne _0802122C ldrb r0, [r3, #0x14] cmp r0, r2 beq _08021244 _0802122C: strb r2, [r3, #0x14] strb r1, [r4] lsls r0, r1, #1 ldr r1, _08021248 @ =gUnk_080CAB14 adds r0, r0, r1 ldrb r1, [r0, #1] strh r1, [r3, #0x12] ldrb r1, [r0] adds r1, r1, r2 adds r0, r3, #0 bl InitAnimationForceUpdate _08021244: pop {r4, pc} .align 2, 0 _08021248: .4byte gUnk_080CAB14 thumb_func_start sub_0802124C sub_0802124C: @ 0x0802124C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x14] ldrb r1, [r4, #0x15] bl sub_08021274 adds r2, r0, #0 cmp r2, #0xff beq _0802126C adds r0, r4, #0 adds r0, #0x74 ldrb r1, [r0] adds r0, r4, #0 bl sub_08021218 b _08021272 _0802126C: adds r0, r4, #0 bl UpdateAnimationSingleFrame _08021272: pop {r4, pc} thumb_func_start sub_08021274 sub_08021274: @ 0x08021274 push {lr} adds r2, r0, #0 movs r0, #7 ands r0, r1 subs r0, #3 cmp r0, #2 bhi _0802129A movs r3, #0x18 adds r0, r1, #0 ands r0, r3 lsrs r0, r0, #3 cmp r0, r2 beq _080212AA adds r0, r1, #0 adds r0, #8 ands r0, r3 lsrs r0, r0, #3 cmp r0, r2 beq _080212AA _0802129A: adds r0, r1, #4 movs r1, #0x18 ands r0, r1 lsrs r1, r0, #3 cmp r2, r1 beq _080212AA adds r0, r1, #0 b _080212AC _080212AA: movs r0, #0xff _080212AC: pop {pc} .align 2, 0 thumb_func_start sub_080212B0 sub_080212B0: @ 0x080212B0 push {r4, r5, lr} adds r5, r0, #0 adds r1, r5, #0 adds r1, #0x75 ldrb r0, [r1] cmp r0, #1 beq _080212D0 cmp r0, #2 beq _080212DC movs r0, #1 strb r0, [r1] ldr r4, _080212CC @ =gUnk_080CAB3A b _080212E2 .align 2, 0 _080212CC: .4byte gUnk_080CAB3A _080212D0: movs r0, #2 strb r0, [r1] ldr r4, _080212D8 @ =gUnk_080CAB42 b _080212E2 .align 2, 0 _080212D8: .4byte gUnk_080CAB42 _080212DC: movs r0, #0 strb r0, [r1] ldr r4, _0802131C @ =gUnk_080CAB4A _080212E2: bl Random movs r1, #7 ands r1, r0 adds r1, r1, r4 ldrb r2, [r1] ldrb r0, [r5, #0xa] cmp r0, #1 bhi _08021306 cmp r2, #2 bne _08021306 ldr r4, _08021320 @ =gUnk_080CAB52 bl Random movs r1, #3 ands r1, r0 adds r1, r1, r4 ldrb r2, [r1] _08021306: movs r0, #0 str r0, [r5, #0x54] ldr r1, _08021324 @ =gUnk_080CAB58 lsls r0, r2, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 pop {r4, r5, pc} .align 2, 0 _0802131C: .4byte gUnk_080CAB4A _08021320: .4byte gUnk_080CAB52 _08021324: .4byte gUnk_080CAB58 thumb_func_start sub_08021328 sub_08021328: @ 0x08021328 push {lr} movs r1, #0xd strb r1, [r0, #0xc] ldr r2, _08021348 @ =gUnk_080CAB68 ldrb r1, [r0, #0xa] adds r1, r1, r2 ldrb r2, [r1] adds r1, r0, #0 adds r1, #0x7c strb r2, [r1] ldrb r2, [r0, #0x14] movs r1, #0xc bl sub_08021218 pop {pc} .align 2, 0 _08021348: .4byte gUnk_080CAB68 thumb_func_start sub_0802134C sub_0802134C: @ 0x0802134C push {lr} movs r1, #0xf strb r1, [r0, #0xc] ldrb r1, [r0, #0x14] lsls r1, r1, #3 strb r1, [r0, #0x15] movs r1, #0x80 lsls r1, r1, #2 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x76 movs r1, #0x78 strh r1, [r2] ldrb r2, [r0, #0x14] movs r1, #0xe bl sub_08021218 pop {pc} thumb_func_start sub_08021370 sub_08021370: @ 0x08021370 push {lr} movs r1, #0x12 strb r1, [r0, #0xc] ldrb r2, [r0, #0x14] movs r1, #0x10 bl sub_08021218 pop {pc} thumb_func_start sub_08021380 sub_08021380: @ 0x08021380 push {lr} movs r1, #0x13 strb r1, [r0, #0xc] ldrb r2, [r0, #0x14] movs r1, #0x11 bl sub_08021218 pop {pc} thumb_func_start sub_08021390 sub_08021390: @ 0x08021390 push {lr} movs r1, #7 strb r1, [r0, #0xc] movs r1, #0x80 lsls r1, r1, #2 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x3f movs r1, #0x56 strb r1, [r2] ldrb r2, [r0, #0x14] movs r1, #6 bl sub_08021218 pop {pc} .align 2, 0 thumb_func_start sub_080213B0 sub_080213B0: @ 0x080213B0 push {lr} movs r1, #3 strb r1, [r0, #0xc] movs r1, #1 strb r1, [r0, #0xe] movs r1, #0xc0 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x76 movs r1, #0xf0 strh r1, [r2] ldrb r2, [r0, #0x14] movs r1, #3 bl sub_08021218 pop {pc} thumb_func_start sub_080213D0 sub_080213D0: @ 0x080213D0 push {r4, lr} adds r4, r0, #0 movs r0, #0x10 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x7b strb r1, [r0] ldrb r2, [r4, #0x14] adds r0, r4, #0 movs r1, #0xf bl sub_08021218 adds r0, r4, #0 bl sub_08021588 pop {r4, pc} thumb_func_start sub_080213F0 sub_080213F0: @ 0x080213F0 push {lr} movs r1, #6 strb r1, [r0, #0xc] ldrb r2, [r0, #0x14] movs r1, #1 bl sub_08021218 pop {pc} thumb_func_start sub_08021400 sub_08021400: @ 0x08021400 push {lr} movs r1, #9 strb r1, [r0, #0xc] movs r1, #0x60 strh r1, [r0, #0x24] ldrb r2, [r0, #0x14] movs r1, #0xa bl sub_08021218 pop {pc} thumb_func_start sub_08021414 sub_08021414: @ 0x08021414 push {lr} movs r1, #0x11 strb r1, [r0, #0xc] ldrb r2, [r0, #0x14] movs r1, #5 bl sub_08021218 pop {pc} thumb_func_start sub_08021424 sub_08021424: @ 0x08021424 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _08021450 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r5, #0 bl sub_080045C4 adds r1, r0, #0 ldrb r0, [r5, #0x14] bl sub_08021274 adds r4, r0, #0 cmp r4, #0xff beq _08021454 adds r0, r5, #0 adds r0, #0x74 ldrb r1, [r0] adds r0, r5, #0 adds r2, r4, #0 bl sub_08021218 b _08021456 .align 2, 0 _08021450: .4byte gUnk_020000B0 _08021454: ldrb r4, [r5, #0x14] _08021456: cmp r4, #1 beq _08021490 cmp r4, #1 blo _08021478 cmp r4, #2 beq _080214A8 ldr r0, _08021474 @ =gUnk_020000B0 ldr r1, [r0] movs r2, #0x2e ldrsh r0, [r1, r2] adds r2, r0, #0 adds r2, #0x24 movs r4, #0x32 ldrsh r3, [r1, r4] b _080214B8 .align 2, 0 _08021474: .4byte gUnk_020000B0 _08021478: ldr r0, _0802148C @ =gUnk_020000B0 ldr r0, [r0] movs r1, #0x2e ldrsh r2, [r0, r1] movs r4, #0x32 ldrsh r0, [r0, r4] adds r3, r0, #0 adds r3, #0x2c b _080214B8 .align 2, 0 _0802148C: .4byte gUnk_020000B0 _08021490: ldr r0, _080214A4 @ =gUnk_020000B0 ldr r1, [r0] movs r2, #0x2e ldrsh r0, [r1, r2] adds r2, r0, #0 subs r2, #0x24 movs r4, #0x32 ldrsh r3, [r1, r4] b _080214B8 .align 2, 0 _080214A4: .4byte gUnk_020000B0 _080214A8: ldr r0, _080214F0 @ =gUnk_020000B0 ldr r0, [r0] movs r1, #0x2e ldrsh r2, [r0, r1] movs r4, #0x32 ldrsh r0, [r0, r4] adds r3, r0, #0 subs r3, #0x1d _080214B8: movs r1, #0x2e ldrsh r0, [r5, r1] subs r0, r2, r0 adds r0, #3 cmp r0, #6 bhi _080214D0 movs r4, #0x32 ldrsh r0, [r5, r4] subs r0, r3, r0 adds r0, #2 cmp r0, #4 bls _080214E8 _080214D0: movs r1, #0x2e ldrsh r0, [r5, r1] movs r4, #0x32 ldrsh r1, [r5, r4] bl sub_080045D4 strb r0, [r5, #0x15] adds r0, r5, #0 bl sub_080AEF88 cmp r0, #0 bne _080214F4 _080214E8: adds r0, r5, #0 bl sub_080212B0 b _080214FA .align 2, 0 _080214F0: .4byte gUnk_020000B0 _080214F4: adds r0, r5, #0 bl UpdateAnimationSingleFrame _080214FA: pop {r4, r5, pc} thumb_func_start sub_080214FC sub_080214FC: @ 0x080214FC push {r4, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0802153C ldr r0, _08021538 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl sub_080045C4 adds r2, r0, #0 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x1f ands r0, r1 subs r0, r2, r0 subs r0, #2 cmp r0, #4 bhi _0802153C adds r0, r2, #4 movs r1, #0x18 ands r0, r1 lsrs r0, r0, #3 strb r0, [r4, #0x14] movs r0, #1 b _0802153E .align 2, 0 _08021538: .4byte gUnk_020000B0 _0802153C: movs r0, #0 _0802153E: pop {r4, pc} thumb_func_start sub_08021540 sub_08021540: @ 0x08021540 push {r4, r5, lr} adds r4, r0, #0 bl Random adds r5, r0, #0 adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _08021566 movs r0, #1 ands r0, r5 cmp r0, #0 beq _08021566 adds r0, r4, #0 bl sub_08049EE4 adds r1, r0, #4 b _08021568 _08021566: lsrs r1, r5, #0x10 _08021568: movs r0, #0x18 ands r1, r0 strb r1, [r4, #0x15] ldrb r0, [r4, #0x14] bl sub_08021274 adds r2, r0, #0 cmp r2, #0xff beq _08021582 adds r0, r4, #0 movs r1, #3 bl sub_08021218 _08021582: movs r0, #0x1e strb r0, [r4, #0xe] pop {r4, r5, pc} thumb_func_start sub_08021588 sub_08021588: @ 0x08021588 push {lr} adds r2, r0, #0 ldr r1, [r2, #0x54] cmp r1, #0 beq _08021598 movs r0, #0 str r0, [r1, #0x50] str r0, [r2, #0x54] _08021598: pop {pc} .align 2, 0 thumb_func_start sub_0802159C sub_0802159C: @ 0x0802159C push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] adds r0, r1, #0 cmp r0, #1 bne _080215D4 movs r0, #0 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x51 strb r0, [r1] adds r0, r4, #0 movs r1, #0 movs r2, #3 bl sub_0804A98C cmp r0, #0 beq _080215CA str r4, [r0, #0x50] str r0, [r4, #0x54] _080215CA: movs r0, #0x8b lsls r0, r0, #1 bl sub_08004488 b _080215F8 _080215D4: cmp r0, #2 bne _080215E4 movs r0, #0 strb r0, [r2] adds r0, r4, #0 bl sub_08021588 b _080215F8 _080215E4: movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080215F8 movs r0, #0xdf ands r0, r1 strb r0, [r2] ldr r0, _080215FC @ =0x00000115 bl sub_08004488 _080215F8: pop {r4, pc} .align 2, 0 _080215FC: .4byte 0x00000115 thumb_func_start sub_08021600 sub_08021600: @ 0x08021600 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x5a ldrb r0, [r1] cmp r0, #1 bne _08021634 movs r0, #0 strb r0, [r1] subs r1, #0x1b movs r0, #0x51 strb r0, [r1] adds r0, r4, #0 movs r1, #0 movs r2, #4 bl sub_0804A98C cmp r0, #0 beq _0802162A str r4, [r0, #0x50] str r0, [r4, #0x54] _0802162A: movs r0, #0x87 lsls r0, r0, #1 bl sub_08004488 b _08021642 _08021634: cmp r0, #2 bne _08021642 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_08021588 _08021642: pop {r4, pc} thumb_func_start sub_08021644 sub_08021644: @ 0x08021644 push {lr} adds r2, r0, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08021660 movs r0, #0xdf ands r0, r1 strb r0, [r2] movs r0, #0x7d bl sub_08004488 _08021660: pop {pc} .align 2, 0 thumb_func_start sub_08021664 sub_08021664: @ 0x08021664 push {lr} ldrb r2, [r0, #0x14] cmp r2, #1 beq _08021690 cmp r2, #1 bgt _08021676 cmp r2, #0 beq _08021680 b _08021698 _08021676: cmp r2, #2 beq _08021688 cmp r2, #3 beq _08021690 b _08021698 _08021680: movs r2, #0x22 bl sub_08049F1C b _0802169A _08021688: movs r2, #0x13 bl sub_08049F1C b _0802169A _08021690: movs r2, #0x1a bl sub_08049F1C b _0802169A _08021698: movs r0, #0 _0802169A: pop {pc} thumb_func_start sub_0802169C sub_0802169C: @ 0x0802169C push {lr} ldrb r2, [r0, #0x14] cmp r2, #1 beq _080216C0 cmp r2, #1 bgt _080216AE cmp r2, #0 beq _080216B8 b _080216CE _080216AE: cmp r2, #2 beq _080216BC cmp r2, #3 beq _080216C0 b _080216CE _080216B8: movs r2, #0x2c b _080216C2 _080216BC: movs r2, #0x1d b _080216C2 _080216C0: movs r2, #0x24 _080216C2: bl sub_08049F1C cmp r0, #0 bne _080216CE movs r0, #1 b _080216D0 _080216CE: movs r0, #0 _080216D0: pop {pc} .align 2, 0