.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start Chuchu Chuchu: @ 0x0801EE18 push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r4, r0, #0 cmp r4, #0 beq _0801EE9E cmp r4, #2 beq _0801EE40 ldr r0, _0801EE3C @ =gUnk_080012C8 lsls r1, r4, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _0801EEE0 .align 2, 0 _0801EE3C: .4byte gUnk_080012C8 _0801EE40: adds r2, r5, #0 adds r2, #0x3a ldrb r1, [r2] movs r0, #0xfe ands r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x81 ldrb r0, [r0] cmp r4, r0 beq _0801EE9E ldrb r0, [r5, #0xa] cmp r0, #1 beq _0801EE9E cmp r0, #1 bgt _0801EE66 cmp r0, #0 beq _0801EE6C b _0801EE9E _0801EE66: cmp r0, #2 beq _0801EE96 b _0801EE9E _0801EE6C: ldrb r1, [r5, #0x10] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801EE9E movs r0, #6 strb r0, [r5, #0xc] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] movs r0, #0x20 strh r0, [r5, #0x24] adds r1, r5, #0 adds r1, #0x3f movs r0, #0x5c strb r0, [r1] adds r0, r5, #0 movs r1, #5 bl InitializeAnimation b _0801EE9E _0801EE96: adds r0, r5, #0 bl sub_080043A8 b _0801EEE0 _0801EE9E: adds r0, r5, #0 adds r0, #0x81 strb r4, [r0] ldr r4, _0801EED0 @ =gUnk_080CA21C adds r0, r5, #0 bl GetNextFunction lsls r0, r0, #2 adds r0, r0, r4 ldr r1, [r0] adds r0, r5, #0 bl _call_via_r1 ldr r0, [r5, #0x68] ldrb r0, [r0, #0xa] cmp r0, #0x1c bne _0801EED4 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl SetChildOffset b _0801EEE0 .align 2, 0 _0801EED0: .4byte gUnk_080CA21C _0801EED4: ldrb r0, [r5, #0xa] cmp r0, #2 bne _0801EEE0 adds r0, r5, #0 bl sub_0801FB34 _0801EEE0: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801EEE4 sub_0801EEE4: @ 0x0801EEE4 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0801EF0C cmp r0, #1 bgt _0801EEF8 cmp r0, #0 beq _0801EEFE b _0801EF38 _0801EEF8: cmp r0, #2 beq _0801EF28 b _0801EF38 _0801EEFE: adds r0, r4, #0 bl sub_0801F3AC ldr r0, _0801EF08 @ =gUnk_080CA234 b _0801EF14 .align 2, 0 _0801EF08: .4byte gUnk_080CA234 _0801EF0C: adds r0, r4, #0 bl sub_0801F764 ldr r0, _0801EF24 @ =gUnk_080CA25C _0801EF14: ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 b _0801EF38 .align 2, 0 _0801EF24: .4byte gUnk_080CA25C _0801EF28: ldr r0, _0801EF3C @ =gUnk_080CA288 ldrb r1, [r4, #0xc] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _0801EF38: pop {r4, pc} .align 2, 0 _0801EF3C: .4byte gUnk_080CA288 thumb_func_start sub_0801EF40 sub_0801EF40: @ 0x0801EF40 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #2 bne _0801EF68 adds r0, r4, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0x8e beq _0801EF58 cmp r0, #0x95 bne _0801EF68 _0801EF58: ldrb r0, [r4, #0x10] movs r1, #0x7f ands r1, r0 movs r0, #0 strb r1, [r4, #0x10] adds r1, r4, #0 adds r1, #0x45 strb r0, [r1] _0801EF68: adds r0, r4, #0 adds r0, #0x45 ldrb r6, [r0] adds r7, r0, #0 cmp r6, #0 beq _0801EFB0 subs r0, #4 ldrb r0, [r0] cmp r0, #0x94 bne _0801EF94 adds r0, r4, #0 bl sub_0801FB68 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC adds r0, r4, #0 movs r1, #6 bl InitializeAnimation b _0801EFC0 _0801EF94: adds r0, r4, #0 adds r0, #0x80 ldrb r1, [r0] adds r5, r0, #0 cmp r1, r6 beq _0801EFC4 adds r0, r4, #0 bl sub_0801FB68 adds r0, r4, #0 movs r1, #6 bl InitializeAnimation b _0801EFC4 _0801EFB0: adds r0, r4, #0 bl sub_0804AA1C str r6, [r4, #0x20] adds r0, r4, #0 movs r1, #9 bl InitializeAnimation _0801EFC0: adds r5, r4, #0 adds r5, #0x80 _0801EFC4: ldrb r0, [r7] strb r0, [r5] ldr r1, _0801EFD4 @ =gUnk_080CA21C adds r0, r4, #0 bl sub_0804AA30 pop {r4, r5, r6, r7, pc} .align 2, 0 _0801EFD4: .4byte gUnk_080CA21C thumb_func_start sub_0801EFD8 sub_0801EFD8: @ 0x0801EFD8 push {r4, lr} adds r4, r0, #0 bl sub_0806F520 cmp r0, #0 bne _0801F000 adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _0801F000 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC adds r0, r4, #0 movs r1, #6 bl InitializeAnimation b _0801F028 _0801F000: adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #8 beq _0801F018 adds r0, r4, #0 bl sub_0801FB68 adds r0, r4, #0 movs r1, #8 bl InitializeAnimation _0801F018: movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 adds r0, r4, #0 bl GetNextFrame _0801F028: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F02C sub_0801F02C: @ 0x0801F02C push {r4, lr} adds r4, r0, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #6 bne _0801F03E adds r0, r4, #0 bl GetNextFrame _0801F03E: adds r0, r4, #0 bl sub_08001318 pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F048 sub_0801F048: @ 0x0801F048 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl GetNextFrame ldrb r0, [r4, #0xa] cmp r0, #0 bne _0801F068 adds r0, r4, #0 bl sub_0804A7D4 b _0801F082 _0801F068: cmp r0, #1 bne _0801F078 adds r0, r4, #0 movs r1, #0xf2 movs r2, #0 bl CreateDeathFx b _0801F082 _0801F078: adds r0, r4, #0 movs r1, #0xf1 movs r2, #0 bl CreateDeathFx _0801F082: pop {r4, pc} thumb_func_start sub_0801F084 sub_0801F084: @ 0x0801F084 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _0801F09A adds r0, r4, #0 bl GetNextFrame _0801F09A: adds r0, r4, #0 bl sub_08001242 pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F0A4 sub_0801F0A4: @ 0x0801F0A4 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r2, #0 movs r0, #1 strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x3b strb r1, [r0] adds r4, #0x82 strb r2, [r4] pop {r4, pc} .align 2, 0 thumb_func_start nullsub_4 nullsub_4: @ 0x0801F0C4 bx lr .align 2, 0 thumb_func_start sub_0801F0C8 sub_0801F0C8: @ 0x0801F0C8 push {r4, r5, lr} adds r5, r0, #0 bl GetNextFrame adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F12A movs r4, #3 movs r0, #3 strb r0, [r5, #0xc] bl Random ands r0, r4 adds r0, #0xc strb r0, [r5, #0xe] bl Random strb r0, [r5, #0xf] adds r0, r5, #0 movs r1, #1 bl sub_08049F84 strb r0, [r5, #0x15] ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 movs r1, #0x39 rsbs r1, r1, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] adds r0, r5, #0 movs r1, #2 bl InitializeAnimation _0801F12A: pop {r4, r5, pc} thumb_func_start sub_0801F12C sub_0801F12C: @ 0x0801F12C push {r4, lr} adds r4, r0, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F140 adds r0, r4, #0 bl sub_0801F328 b _0801F1AC _0801F140: ldrb r1, [r4, #0xf] adds r0, r1, #1 strb r0, [r4, #0xf] movs r0, #7 ands r0, r1 cmp r0, #0 bne _0801F158 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _0801F158: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl GetNextFrame ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F1AC adds r0, r4, #0 movs r1, #1 movs r2, #0x38 bl sub_08049F64 cmp r0, #0 beq _0801F18A movs r0, #4 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801FBE4 b _0801F1AC _0801F18A: adds r0, r4, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _0801F1A6 bl Random movs r1, #3 ands r0, r1 adds r0, #0xc strb r0, [r4, #0xe] b _0801F1AC _0801F1A6: adds r0, r4, #0 bl sub_0801F328 _0801F1AC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F1B0 sub_0801F1B0: @ 0x0801F1B0 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801F1FA movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801F1DE movs r0, #1 eors r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5a strb r0, [r1] adds r0, #0xd1 bl sub_08004488 _0801F1DE: adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0801F200 adds r0, r4, #0 bl GetNextFrame b _0801F200 _0801F1FA: adds r0, r4, #0 bl GetNextFrame _0801F200: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F226 adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F220 adds r0, r4, #0 bl sub_0801F328 b _0801F226 _0801F220: adds r0, r4, #0 bl sub_0801F340 _0801F226: pop {r4, pc} thumb_func_start sub_0801F228 sub_0801F228: @ 0x0801F228 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F246 movs r0, #3 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _0801F246: adds r0, r4, #0 bl GetNextFrame pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F250 sub_0801F250: @ 0x0801F250 push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F26C adds r0, r4, #0 bl sub_0801F360 _0801F26C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F270 sub_0801F270: @ 0x0801F270 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xf] adds r0, r1, #1 strb r0, [r4, #0xf] movs r0, #7 ands r0, r1 cmp r0, #0 bne _0801F28C adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _0801F28C: adds r0, r4, #0 bl sub_080AF160 adds r0, r4, #0 bl GetNextFrame adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 bne _0801F2CA ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F2CA adds r0, r4, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 bne _0801F2C6 movs r0, #2 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #4 bl InitializeAnimation b _0801F2CA _0801F2C6: movs r0, #8 strb r0, [r4, #0xe] _0801F2CA: pop {r4, pc} thumb_func_start sub_0801F2CC sub_0801F2CC: @ 0x0801F2CC push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F2F6 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl InitializeAnimation _0801F2F6: pop {r4, pc} thumb_func_start sub_0801F2F8 sub_0801F2F8: @ 0x0801F2F8 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F324 adds r0, r4, #0 bl sub_0801F340 adds r0, r4, #0 bl sub_0804AA1C _0801F324: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F328 sub_0801F328: @ 0x0801F328 push {lr} movs r1, #6 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 bl InitializeAnimation pop {pc} .align 2, 0 thumb_func_start sub_0801F340 sub_0801F340: @ 0x0801F340 push {lr} movs r1, #5 strb r1, [r0, #0xc] movs r1, #0x3c strb r1, [r0, #0xe] movs r1, #0x20 strh r1, [r0, #0x24] adds r2, r0, #0 adds r2, #0x3f movs r1, #0x5c strb r1, [r2] movs r1, #2 bl InitializeAnimation pop {pc} .align 2, 0 thumb_func_start sub_0801F360 sub_0801F360: @ 0x0801F360 push {r4, lr} adds r4, r0, #0 movs r0, #7 strb r0, [r4, #0xc] bl Random movs r1, #0x38 ands r0, r1 adds r0, #0xb4 strb r0, [r4, #0xe] bl Random strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 movs r1, #8 rsbs r1, r1, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl InitializeAnimation pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F3AC sub_0801F3AC: @ 0x0801F3AC push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #9 beq _0801F426 cmp r0, #0 beq _0801F426 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0801F408 adds r5, r4, #0 adds r5, #0x82 ldrb r0, [r5] cmp r0, #0 bne _0801F3DE adds r0, r4, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _0801F400 _0801F3DE: ldrb r2, [r4, #0xc] cmp r2, #1 bne _0801F426 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] strb r2, [r5] adds r0, r4, #0 movs r1, #0 bl InitializeAnimation b _0801F426 _0801F400: ldrb r0, [r4, #0xc] cmp r0, #3 bne _0801F426 b _0801F40E _0801F408: ldrb r0, [r4, #0xc] cmp r0, #3 bne _0801F416 _0801F40E: adds r0, r4, #0 bl sub_0801F328 b _0801F426 _0801F416: cmp r0, #7 bne _0801F426 movs r0, #8 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 bl InitializeAnimation _0801F426: pop {r4, r5, pc} thumb_func_start sub_0801F428 sub_0801F428: @ 0x0801F428 push {r4, r5, lr} adds r5, r0, #0 bl sub_0804A720 movs r4, #0 movs r0, #1 strb r0, [r5, #0xc] bl Random strb r0, [r5, #0xe] adds r0, r5, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x3b strb r1, [r0] adds r0, #2 strb r4, [r0] ldrb r0, [r5, #0xb] cmp r0, #0 beq _0801F488 movs r0, #3 strb r0, [r5, #0xc] movs r0, #0x1e strb r0, [r5, #0xf] ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r5, #0x18] adds r0, r5, #0 movs r1, #2 bl InitializeAnimation _0801F488: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801F48C sub_0801F48C: @ 0x0801F48C push {lr} bl GetNextFrame pop {pc} thumb_func_start sub_0801F494 sub_0801F494: @ 0x0801F494 push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F4E8 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 movs r1, #0x39 rsbs r1, r1, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #2 bl InitializeAnimation _0801F4E8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F4EC sub_0801F4EC: @ 0x0801F4EC push {r4, lr} adds r4, r0, #0 bl GetNextFrame ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F504 movs r0, #4 strb r0, [r4, #0xc] _0801F504: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F508 sub_0801F508: @ 0x0801F508 push {r4, r5, lr} adds r4, r0, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F51C adds r1, r4, #0 adds r1, #0x83 movs r0, #0 b _0801F55C _0801F51C: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r1, #0xff adds r5, r0, #0 ands r5, r1 movs r0, #7 ands r5, r0 cmp r5, #0 bne _0801F566 adds r0, r4, #0 movs r1, #1 movs r2, #0x38 bl sub_08049F64 cmp r0, #0 beq _0801F566 bl Random movs r1, #1 ands r1, r0 cmp r1, #0 beq _0801F556 movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801FBE4 b _0801F580 _0801F556: adds r1, r4, #0 adds r1, #0x83 movs r0, #0x78 _0801F55C: strb r0, [r1] adds r0, r4, #0 bl sub_0801F730 b _0801F580 _0801F566: cmp r5, #4 bne _0801F574 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] _0801F574: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl GetNextFrame _0801F580: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801F584 sub_0801F584: @ 0x0801F584 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801F5CE movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801F5B2 movs r0, #1 eors r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5b strb r0, [r1] adds r0, #0xd0 bl sub_08004488 _0801F5B2: adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0801F5D4 adds r0, r4, #0 bl GetNextFrame b _0801F5D4 _0801F5CE: adds r0, r4, #0 bl GetNextFrame _0801F5D4: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F618 adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F5FC adds r1, r4, #0 adds r1, #0x83 movs r0, #0 strb r0, [r1] adds r0, r4, #0 bl sub_0801F730 b _0801F618 _0801F5FC: movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] movs r0, #0x20 strh r0, [r4, #0x24] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5c strb r0, [r1] adds r0, r4, #0 movs r1, #2 bl InitializeAnimation _0801F618: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F61C sub_0801F61C: @ 0x0801F61C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xf] subs r0, #1 strb r0, [r1, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F630 movs r0, #4 strb r0, [r1, #0xc] _0801F630: adds r0, r1, #0 bl GetNextFrame pop {pc} thumb_func_start sub_0801F638 sub_0801F638: @ 0x0801F638 push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F684 movs r0, #8 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 movs r1, #8 rsbs r1, r1, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl InitializeAnimation _0801F684: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F688 sub_0801F688: @ 0x0801F688 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x83 ldrb r0, [r5] cmp r0, #0 beq _0801F69A subs r0, #1 strb r0, [r5] _0801F69A: adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 bne _0801F6AA ldrb r0, [r5] cmp r0, #0 beq _0801F6C2 _0801F6AA: adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AF160 adds r0, r4, #0 bl GetNextFrame b _0801F6C8 _0801F6C2: adds r0, r4, #0 bl sub_0801F748 _0801F6C8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0801F6CC sub_0801F6CC: @ 0x0801F6CC push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F6F6 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl InitializeAnimation _0801F6F6: pop {r4, pc} thumb_func_start sub_0801F6F8 sub_0801F6F8: @ 0x0801F6F8 push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F72E movs r0, #4 strb r0, [r4, #0xc] movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0804AA1C adds r0, r4, #0 movs r1, #2 bl InitializeAnimation _0801F72E: pop {r4, pc} thumb_func_start sub_0801F730 sub_0801F730: @ 0x0801F730 push {lr} movs r1, #7 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 bl InitializeAnimation pop {pc} .align 2, 0 thumb_func_start sub_0801F748 sub_0801F748: @ 0x0801F748 push {lr} movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #6 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] movs r1, #4 bl InitializeAnimation pop {pc} .align 2, 0 thumb_func_start sub_0801F764 sub_0801F764: @ 0x0801F764 push {r4, r5, r6, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0xa beq _0801F7D6 cmp r0, #0 beq _0801F7D6 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0801F7B8 ldrb r6, [r4, #0xc] cmp r6, #1 bne _0801F7D6 adds r5, r4, #0 adds r5, #0x82 ldrb r0, [r5] cmp r0, #0 bne _0801F79C adds r0, r4, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _0801F7D6 _0801F79C: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] strb r6, [r5] adds r0, r4, #0 movs r1, #0 bl InitializeAnimation b _0801F7D6 _0801F7B8: ldrb r0, [r4, #0xc] cmp r0, #4 bne _0801F7C6 adds r0, r4, #0 bl sub_0801F730 b _0801F7D6 _0801F7C6: cmp r0, #8 bne _0801F7D6 movs r0, #9 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 bl InitializeAnimation _0801F7D6: pop {r4, r5, r6, pc} thumb_func_start sub_0801F7D8 sub_0801F7D8: @ 0x0801F7D8 push {r4, r5, lr} adds r4, r0, #0 bl sub_0804A720 movs r5, #0 movs r0, #1 strb r0, [r4, #0xc] bl Random strb r0, [r4, #0xe] adds r0, r4, #0 adds r0, #0x45 ldrb r1, [r0] adds r0, #0x3b strb r1, [r0] adds r4, #0x82 strb r5, [r4] pop {r4, r5, pc} thumb_func_start sub_0801F7FC sub_0801F7FC: @ 0x0801F7FC push {r4, r5, lr} adds r4, r0, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _0801F83E adds r5, r4, #0 adds r5, #0x82 ldrb r0, [r5] cmp r0, #0 bne _0801F822 adds r0, r4, #0 movs r1, #1 movs r2, #0x48 bl sub_08049F64 cmp r0, #0 beq _0801F83E _0801F822: movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r5] adds r0, r4, #0 movs r1, #0 bl InitializeAnimation _0801F83E: pop {r4, r5, pc} thumb_func_start sub_0801F840 sub_0801F840: @ 0x0801F840 push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F880 adds r0, r4, #0 bl sub_0801FB14 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 movs r1, #0x39 rsbs r1, r1, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] _0801F880: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F884 sub_0801F884: @ 0x0801F884 push {r4, lr} adds r4, r0, #0 bl GetNextFrame ldrb r0, [r4, #0xf] cmp r0, #0 beq _0801F898 subs r0, #1 strb r0, [r4, #0xf] b _0801F8BC _0801F898: adds r0, r4, #0 movs r1, #0x1b bl sub_0804A9FC adds r1, r0, #0 cmp r1, #0 beq _0801F8BC movs r0, #0x40 strb r0, [r1, #0xb] movs r0, #4 strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0xa5 strb r0, [r1] adds r0, #0xee bl sub_08004488 _0801F8BC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801F8C0 sub_0801F8C0: @ 0x0801F8C0 push {r4, r5, lr} adds r4, r0, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F8D4 adds r0, r4, #0 bl sub_0801FAE0 b _0801F938 _0801F8D4: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0801F8E8 adds r0, r4, #0 bl sub_0801F730 b _0801F938 _0801F8E8: ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] movs r1, #0xff adds r5, r0, #0 ands r5, r1 movs r0, #7 ands r5, r0 cmp r5, #0 bne _0801F91C ldr r0, _0801F918 @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 movs r2, #0x38 bl sub_08049F1C cmp r0, #0 beq _0801F91C movs r0, #5 strb r0, [r4, #0xc] adds r0, r4, #0 bl sub_0801FBE4 b _0801F938 .align 2, 0 _0801F918: .4byte gUnk_020000B0 _0801F91C: cmp r5, #4 bne _0801F92C ldr r0, _0801F93C @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl GetFacingDirection strb r0, [r4, #0x15] _0801F92C: adds r0, r4, #0 bl sub_080AEF88 adds r0, r4, #0 bl GetNextFrame _0801F938: pop {r4, r5, pc} .align 2, 0 _0801F93C: .4byte gUnk_020000B0 thumb_func_start sub_0801F940 sub_0801F940: @ 0x0801F940 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0801F988 movs r0, #1 ands r0, r1 cmp r0, #0 beq _0801F966 movs r0, #1 eors r0, r1 strb r0, [r2] ldr r0, _0801F984 @ =0x0000012B bl sub_08004488 _0801F966: adds r0, r4, #0 bl sub_080AEFE0 movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _0801F98E adds r0, r4, #0 bl GetNextFrame b _0801F98E .align 2, 0 _0801F984: .4byte 0x0000012B _0801F988: adds r0, r4, #0 bl GetNextFrame _0801F98E: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801F9C2 adds r0, r4, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801F9AE adds r0, r4, #0 bl sub_0801FAE0 b _0801F9C2 _0801F9AE: movs r0, #6 strb r0, [r4, #0xc] movs r0, #0x3c strb r0, [r4, #0xf] movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 movs r1, #2 bl InitializeAnimation _0801F9C2: pop {r4, pc} thumb_func_start sub_0801F9C4 sub_0801F9C4: @ 0x0801F9C4 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xf] subs r0, #1 strb r0, [r1, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _0801F9D8 movs r0, #4 strb r0, [r1, #0xc] _0801F9D8: adds r0, r1, #0 bl GetNextFrame pop {pc} thumb_func_start sub_0801F9E0 sub_0801F9E0: @ 0x0801F9E0 push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801FA2C movs r0, #8 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 movs r1, #8 rsbs r1, r1, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #1 bl InitializeAnimation _0801FA2C: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FA30 sub_0801FA30: @ 0x0801FA30 push {r4, lr} adds r4, r0, #0 bl sub_0801FBD0 cmp r0, #0 beq _0801FA54 adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080AF160 adds r0, r4, #0 bl GetNextFrame b _0801FA74 _0801FA54: adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 bne _0801FA6E movs r0, #9 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #7 bl InitializeAnimation b _0801FA74 _0801FA6E: adds r0, r4, #0 bl sub_0801FAF8 _0801FA74: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FA78 sub_0801FA78: @ 0x0801FA78 push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801FAA8 movs r0, #1 strb r0, [r4, #0xc] ldrb r1, [r4, #0x18] subs r0, #5 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #4 bl InitializeAnimation adds r0, r4, #0 bl sub_0804AA1C _0801FAA8: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FAAC sub_0801FAAC: @ 0x0801FAAC push {r4, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 adds r0, r4, #0 bl GetNextFrame adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0801FADC adds r0, r4, #0 bl sub_0801FB14 movs r0, #0x20 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0804AA1C _0801FADC: pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FAE0 sub_0801FAE0: @ 0x0801FAE0 push {lr} movs r1, #7 strb r1, [r0, #0xc] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #5 bl InitializeAnimation pop {pc} .align 2, 0 thumb_func_start sub_0801FAF8 sub_0801FAF8: @ 0x0801FAF8 push {lr} movs r1, #2 strb r1, [r0, #0xc] ldrb r2, [r0, #0x18] subs r1, #6 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] movs r1, #4 bl InitializeAnimation pop {pc} .align 2, 0 thumb_func_start sub_0801FB14 sub_0801FB14: @ 0x0801FB14 push {r4, lr} adds r4, r0, #0 movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x1e strb r0, [r4, #0xf] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #2 bl InitializeAnimation pop {r4, pc} thumb_func_start sub_0801FB34 sub_0801FB34: @ 0x0801FB34 push {r4, lr} adds r4, r0, #0 ldr r3, [r4, #0x68] cmp r3, #0 beq _0801FB62 ldr r2, _0801FB64 @ =gUnk_080CA2B4 adds r0, #0x5a ldrb r1, [r0] movs r0, #0xf ands r0, r1 adds r0, r0, r2 movs r2, #0 ldrsb r2, [r0, r2] adds r0, r4, #0 adds r1, r3, #0 movs r3, #1 bl sub_0806FA90 ldr r1, [r4, #0x68] adds r1, #0x63 ldrb r0, [r1] subs r0, #1 strb r0, [r1] _0801FB62: pop {r4, pc} .align 2, 0 _0801FB64: .4byte gUnk_080CA2B4 thumb_func_start sub_0801FB68 sub_0801FB68: @ 0x0801FB68 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xa] cmp r0, #1 beq _0801FB88 cmp r0, #1 bgt _0801FB7C cmp r0, #0 beq _0801FB82 b _0801FBC8 _0801FB7C: cmp r0, #2 beq _0801FBB6 b _0801FBC8 _0801FB82: movs r0, #9 strb r0, [r4, #0xc] b _0801FBC8 _0801FB88: movs r0, #0xa strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] b _0801FBC8 _0801FBB6: movs r0, #0xa strb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x3f movs r0, #0x5c strb r0, [r1] adds r0, r4, #0 bl sub_0804AA1C _0801FBC8: movs r0, #0 str r0, [r4, #0x20] pop {r4, pc} .align 2, 0 thumb_func_start sub_0801FBD0 sub_0801FBD0: @ 0x0801FBD0 push {lr} bl sub_080002B8 cmp r0, #0x10 beq _0801FBDE movs r0, #0 b _0801FBE0 _0801FBDE: movs r0, #1 _0801FBE0: pop {pc} .align 2, 0 thumb_func_start sub_0801FBE4 sub_0801FBE4: @ 0x0801FBE4 push {r4, lr} adds r4, r0, #0 movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] adds r0, r4, #0 movs r1, #1 bl sub_08049F84 strb r0, [r4, #0x15] adds r0, r4, #0 movs r1, #3 bl InitializeAnimation pop {r4, pc}