.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start AcroBandit AcroBandit: @ 0x08031864 push {r4, r5, lr} adds r5, r0, #0 bl sub_080012DC adds r4, r0, #0 cmp r4, #0 beq _0803189C adds r0, r5, #0 adds r0, #0x3a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08031886 adds r0, r5, #0 bl sub_08032338 _08031886: ldr r0, _08031898 @ =gUnk_080012C8 lsls r1, r4, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r5, #0 bl _call_via_r1 b _080318BE .align 2, 0 _08031898: .4byte gUnk_080012C8 _0803189C: ldr r4, _080318C0 @ =gUnk_080CE56C 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 movs r3, #0x10 rsbs r3, r3, #0 adds r0, r5, #0 movs r1, #0 movs r2, #1 bl SetChildOffset _080318BE: pop {r4, r5, pc} .align 2, 0 _080318C0: .4byte gUnk_080CE56C thumb_func_start sub_080318C4 sub_080318C4: @ 0x080318C4 push {lr} ldr r2, _080318D8 @ =gUnk_080CE584 ldrb r1, [r0, #0xa] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080318D8: .4byte gUnk_080CE584 thumb_func_start sub_080318DC sub_080318DC: @ 0x080318DC push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 adds r4, r0, #0 adds r0, #0x41 ldrb r0, [r0] adds r0, #0x80 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _080318FA b _08031A36 _080318FA: ldrb r0, [r4, #0xa] adds r5, r4, #0 adds r5, #0x42 cmp r0, #1 bne _080319DE ldrb r0, [r4, #0xc] adds r1, r4, #0 adds r1, #0x45 str r1, [sp] cmp r0, #6 bhi _080319AC ldrb r0, [r5] cmp r0, #0 beq _080319AC ldr r3, [r4, #0x54] movs r0, #0x29 adds r0, r0, r4 mov sb, r0 movs r1, #0x3e adds r1, r1, r4 mov sl, r1 cmp r3, #0 beq _08031960 ldr r0, [r4, #0x50] str r0, [r3, #0x50] movs r0, #5 mov ip, r0 movs r1, #0x39 rsbs r1, r1, #0 mov r8, r1 movs r7, #8 movs r6, #0xf4 _0803193A: mov r0, ip strb r0, [r3, #0xc] adds r2, r3, #0 adds r2, #0x29 ldrb r0, [r2] mov r1, r8 ands r1, r0 orrs r1, r7 strb r1, [r2] adds r1, r3, #0 adds r1, #0x3d movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #0 bne _0803195A strb r6, [r1] _0803195A: ldr r3, [r3, #0x54] cmp r3, #0 bne _0803193A _08031960: ldr r1, [r4, #0x50] cmp r1, #0 beq _0803196C ldr r0, [r4, #0x54] str r0, [r1, #0x54] b _08031974 _0803196C: ldr r0, [r4, #0x54] cmp r0, #0 beq _08031974 str r4, [r4, #0x50] _08031974: movs r0, #9 strb r0, [r4, #0xc] mov r0, sb ldrb r1, [r0] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 mov r1, sb strb r0, [r1] mov r1, sl ldrb r0, [r1] cmp r0, #0xf bhi _0803199C ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _080319A2 _0803199C: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _080319A2: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #0xe bl InitializeAnimation _080319AC: ldr r1, [sp] ldrb r0, [r1] cmp r0, #0 bne _080319DE bl Random adds r2, r4, #0 adds r2, #0x3e movs r1, #7 ands r0, r1 ldrb r1, [r2] adds r0, r0, r1 subs r0, #4 movs r1, #0x1f ands r0, r1 strb r0, [r2] ldrb r1, [r4, #0xb] lsls r0, r1, #1 adds r0, r0, r1 ldrb r1, [r5] adds r0, r0, r1 strb r0, [r5] adds r0, r4, #0 bl sub_08032338 _080319DE: ldrb r0, [r5] cmp r0, #0 beq _08031A36 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08031A36 ldrb r0, [r4, #0xa] cmp r0, #0 bne _080319FC movs r0, #8 b _080319FE _080319FC: movs r0, #9 _080319FE: strb r0, [r4, #0xc] adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] cmp r0, #0xf bhi _08031A14 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _08031A1A _08031A14: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _08031A1A: strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strb r1, [r2] adds r0, r4, #0 movs r1, #0xe bl InitializeAnimation _08031A36: adds r0, r4, #0 adds r0, #0x43 ldrb r0, [r0] cmp r0, #0 beq _08031A48 adds r0, r4, #0 movs r1, #0x1c bl sub_0804A9FC _08031A48: ldr r1, _08031A5C @ =gUnk_080CE56C adds r0, r4, #0 bl sub_0804AA30 add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08031A5C: .4byte gUnk_080CE56C thumb_func_start sub_08031A60 sub_08031A60: @ 0x08031A60 push {r4, lr} adds r4, r0, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _08031A7A movs r1, #0xc0 lsls r1, r1, #5 adds r0, r4, #0 bl sub_08003FC4 _08031A7A: adds r0, r4, #0 bl sub_08001324 thumb_func_start nullsub_153 nullsub_153: @ 0x08031A80 pop {r4, pc} .align 2, 0 thumb_func_start nullsub_154 nullsub_154: @ 0x08031A84 bx lr .align 2, 0 thumb_func_start sub_08031A88 sub_08031A88: @ 0x08031A88 push {lr} ldr r2, _08031A9C @ =gUnk_080CE58C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08031A9C: .4byte gUnk_080CE58C thumb_func_start sub_08031AA0 sub_08031AA0: @ 0x08031AA0 push {r4, lr} adds r4, r0, #0 bl sub_0804A720 movs r0, #1 strb r0, [r4, #0xc] ldrh r1, [r4, #0x2e] adds r0, r4, #0 adds r0, #0x74 strh r1, [r0] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x76 strh r0, [r1] bl Random adds r4, #0x79 strb r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_start sub_08031AC8 sub_08031AC8: @ 0x08031AC8 push {r4, r5, r6, r7, lr} adds r6, r0, #0 ldrb r0, [r6, #0xe] cmp r0, #0 beq _08031AD8 subs r0, #1 strb r0, [r6, #0xe] b _08031B44 _08031AD8: adds r0, r6, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08031B44 bl Random adds r5, r0, #0 adds r0, r6, #0 adds r0, #0x74 ldrh r4, [r0] adds r0, r5, #0 movs r1, #5 bl __modsi3 lsls r0, r0, #4 adds r4, r4, r0 adds r7, r4, #0 subs r7, #0x20 adds r0, r6, #0 adds r0, #0x76 ldrh r4, [r0] lsrs r5, r5, #4 adds r0, r5, #0 movs r1, #5 bl __modsi3 lsls r0, r0, #4 adds r4, r4, r0 subs r4, #0x20 adds r0, r6, #0 adds r0, #0x38 ldrb r2, [r0] adds r0, r7, #0 adds r1, r4, #0 bl sub_080002D4 cmp r0, #0 bne _08031B44 movs r0, #2 strb r0, [r6, #0xc] ldrb r1, [r6, #0x18] subs r0, #6 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r6, #0x18] strh r7, [r6, #0x2e] strh r4, [r6, #0x32] adds r0, r6, #0 movs r1, #0 bl InitializeAnimation _08031B44: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08031B48 sub_08031B48: @ 0x08031B48 push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08031B6C movs r0, #0 strb r0, [r2] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] b _08031B90 _08031B6C: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08031B90 movs r0, #3 strb r0, [r4, #0xc] bl Random ldr r2, _08031B94 @ =gUnk_080CE5B0 movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #1 bl InitializeAnimation _08031B90: pop {r4, pc} .align 2, 0 _08031B94: .4byte gUnk_080CE5B0 thumb_func_start sub_08031B98 sub_08031B98: @ 0x08031B98 push {r4, lr} adds r4, r0, #0 bl sub_08031E04 cmp r0, #0 beq _08031BDA movs r0, #5 strb r0, [r4, #0xc] ldr r0, _08031BC4 @ =gUnk_020000B0 ldr r0, [r0] movs r2, #0x2e ldrsh r1, [r4, r2] movs r2, #0x2e ldrsh r0, [r0, r2] cmp r1, r0 ble _08031BC8 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 b _08031BCE .align 2, 0 _08031BC4: .4byte gUnk_020000B0 _08031BC8: ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 _08031BCE: strb r0, [r4, #0x18] adds r0, r4, #0 movs r1, #3 bl InitializeAnimation b _08031C1A _08031BDA: adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08031BFA ldrb r0, [r4, #0xe] cmp r0, #0 beq _08031BFA movs r0, #0xfe ands r0, r1 strb r0, [r2] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] _08031BFA: adds r0, r4, #0 bl GetNextFrame ldrb r0, [r4, #0xe] cmp r0, #0 bne _08031C1A movs r0, #4 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #2 bl InitializeAnimation _08031C1A: pop {r4, pc} thumb_func_start sub_08031C1C sub_08031C1C: @ 0x08031C1C 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 _08031C50 movs r0, #1 strb r0, [r4, #0xc] bl Random ldr r2, _08031C54 @ =gUnk_080CE5B8 movs r1, #7 ands r1, r0 adds r1, r1, r2 ldrb r0, [r1] strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] _08031C50: pop {r4, pc} .align 2, 0 _08031C54: .4byte gUnk_080CE5B8 thumb_func_start sub_08031C58 sub_08031C58: @ 0x08031C58 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r7, r0, #0 bl GetNextFrame adds r3, r7, #0 adds r3, #0x5a ldrb r1, [r3] movs r0, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r2, r0, #0x18 cmp r2, #0 beq _08031D54 ldr r0, _08031D50 @ =gUnk_03003DBC ldrb r0, [r0] cmp r0, #0x42 bhi _08031D66 bl Random adds r6, r0, #0 movs r0, #3 mov sb, r0 ands r6, r0 movs r0, #0x2e movs r1, #1 bl CreateEnemy adds r4, r0, #0 movs r0, #0 mov r8, r0 mov r0, r8 strb r0, [r4, #0xb] mov r0, r8 str r0, [r4, #0x50] adds r0, r4, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 adds r1, r4, #0 bl sub_08031E48 movs r0, #0x2e movs r1, #1 bl CreateEnemy adds r5, r0, #0 str r5, [r4, #0x54] movs r0, #1 strb r0, [r5, #0xb] str r4, [r5, #0x50] adds r0, r5, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 adds r1, r5, #0 bl sub_08031E48 movs r0, #0x2e movs r1, #1 bl CreateEnemy adds r4, r0, #0 str r4, [r5, #0x54] movs r0, #2 strb r0, [r4, #0xb] str r5, [r4, #0x50] adds r0, r4, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 adds r1, r4, #0 bl sub_08031E48 movs r0, #0x2e movs r1, #1 bl CreateEnemy adds r5, r0, #0 str r5, [r4, #0x54] mov r0, sb strb r0, [r5, #0xb] str r4, [r5, #0x50] adds r0, r5, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 adds r1, r5, #0 bl sub_08031E48 movs r0, #0x2e movs r1, #1 bl CreateEnemy adds r1, r0, #0 str r1, [r5, #0x54] movs r0, #4 strb r0, [r1, #0xb] str r5, [r1, #0x50] mov r0, r8 str r0, [r1, #0x54] adds r0, r1, #0 adds r0, #0x74 strb r6, [r0] adds r0, r7, #0 bl sub_08031E48 movs r0, #6 strb r0, [r7, #0xc] movs r0, #0x14 strb r0, [r7, #0xe] adds r2, r7, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] adds r0, r7, #0 movs r1, #7 bl InitializeAnimation b _08031D66 .align 2, 0 _08031D50: .4byte gUnk_03003DBC _08031D54: movs r0, #1 ands r0, r1 cmp r0, #0 beq _08031D66 strb r2, [r3] ldrb r1, [r7, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r7, #0x10] _08031D66: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08031D70 sub_08031D70: @ 0x08031D70 push {r4, lr} adds r4, r0, #0 bl GetNextFrame ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08031D9C movs r0, #7 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #5 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #9 ands r0, r1 strb r0, [r4, #0x18] _08031D9C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08031DA0 sub_08031DA0: @ 0x08031DA0 push {lr} adds r1, r0, #0 ldrb r2, [r1, #0xe] movs r0, #0xf ands r0, r2 cmp r0, #0 bne _08031DC2 cmp r2, #0x50 bne _08031DBA adds r0, r1, #0 bl DeleteEntity b _08031DC2 _08031DBA: movs r0, #1 strb r0, [r1, #0xc] movs r0, #0xb4 strb r0, [r1, #0xe] _08031DC2: pop {pc} thumb_func_start sub_08031DC4 sub_08031DC4: @ 0x08031DC4 push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08031DE8 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xb4 strb r0, [r4, #0xe] ldrb r1, [r4, #0x18] subs r0, #0xb8 ands r0, r1 strb r0, [r4, #0x18] b _08031E00 _08031DE8: adds r0, r4, #0 bl GetNextFrame ldrb r1, [r5] movs r0, #0xf ands r0, r1 cmp r0, #2 bne _08031E00 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _08031E00: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08031E04 sub_08031E04: @ 0x08031E04 push {r4, lr} adds r4, r0, #0 movs r0, #1 bl sub_08049DF4 adds r2, r0, #0 cmp r2, #0 beq _08031E44 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] movs r3, #6 ands r3, r0 ldr r0, _08031E40 @ =gUnk_080CE5C0 adds r3, r3, r0 movs r0, #0x2e ldrsh r1, [r2, r0] movs r0, #0 ldrsb r0, [r3, r0] adds r1, r1, r0 movs r0, #0x32 ldrsh r2, [r2, r0] movs r0, #1 ldrsb r0, [r3, r0] adds r2, r2, r0 adds r0, r4, #0 movs r3, #0x50 bl sub_0806FCB8 b _08031E46 .align 2, 0 _08031E40: .4byte gUnk_080CE5C0 _08031E44: movs r0, #0 _08031E46: pop {r4, pc} thumb_func_start sub_08031E48 sub_08031E48: @ 0x08031E48 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 bl CopyPosition adds r0, r5, #0 adds r0, #0x6c ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x6c strb r1, [r0] adds r0, r5, #0 adds r0, #0x70 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x70 strh r1, [r0] adds r0, r5, #0 adds r0, #0x72 ldrh r0, [r0] adds r1, r4, #0 adds r1, #0x72 strh r0, [r1] adds r0, r5, #0 adds r0, #0x6e ldrb r0, [r0] subs r1, #4 strb r0, [r1] adds r0, r5, #0 adds r0, #0x6f ldrb r0, [r0] adds r1, #1 strb r0, [r1] str r5, [r4, #0x7c] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08031E90 sub_08031E90: @ 0x08031E90 push {lr} ldr r2, _08031EA4 @ =gUnk_080CE5C8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08031EA4: .4byte gUnk_080CE5C8 thumb_func_start sub_08031EA8 sub_08031EA8: @ 0x08031EA8 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x3a ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] movs r0, #0x80 lsls r0, r0, #0xb str r0, [r4, #0x20] ldrb r0, [r4, #0xb] movs r1, #4 subs r1, r1, r0 lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 strh r0, [r4, #0x36] bl Random adds r1, r4, #0 adds r1, #0x79 strb r0, [r1] adds r0, r4, #0 movs r1, #4 bl InitializeAnimation pop {r4, pc} thumb_func_start sub_08031EE8 sub_08031EE8: @ 0x08031EE8 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x34] ldr r1, [r4, #0x20] subs r0, r0, r1 str r0, [r4, #0x34] ldr r0, _08031F4C @ =0xFFFFE800 adds r1, r1, r0 str r1, [r4, #0x20] movs r1, #0x36 ldrsh r0, [r4, r1] cmp r0, #0 bgt _08031F1E ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e cmp r0, #0 bne _08031F10 ldr r0, _08031F50 @ =0x0000012B bl sub_08004488 _08031F10: ldrb r0, [r4, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r0 movs r0, #1 orrs r1, r0 strb r1, [r4, #0x18] _08031F1E: ldrb r0, [r4, #0x18] lsls r0, r0, #0x1e lsrs r0, r0, #0x1e cmp r0, #1 bne _08031F2E adds r0, r4, #0 bl GetNextFrame _08031F2E: ldr r0, [r4, #0x20] cmp r0, #0 bgt _08031F48 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 movs r1, #5 bl InitializeAnimation _08031F48: pop {r4, pc} .align 2, 0 _08031F4C: .4byte 0xFFFFE800 _08031F50: .4byte 0x0000012B thumb_func_start sub_08031F54 sub_08031F54: @ 0x08031F54 push {r4, lr} adds r4, r0, #0 ldr r1, _08031FAC @ =gUnk_080CE5F0 ldrb r0, [r4, #0xb] lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] adds r0, r4, #0 bl sub_08003FC4 ldrb r1, [r4, #0xb] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 movs r2, #0x36 ldrsh r1, [r4, r2] cmp r0, r1 bgt _08031FAA movs r0, #3 strb r0, [r4, #0xc] movs r0, #0x14 strb r0, [r4, #0xe] ldrb r1, [r4, #0xb] lsls r0, r1, #3 subs r0, r0, r1 lsls r0, r0, #1 rsbs r0, r0, #0 strh r0, [r4, #0x36] ldr r0, [r4, #0x50] cmp r0, #0 beq _08031FA2 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] _08031FA2: adds r0, r4, #0 movs r1, #6 bl InitializeAnimation _08031FAA: pop {r4, pc} .align 2, 0 _08031FAC: .4byte gUnk_080CE5F0 thumb_func_start sub_08031FB0 sub_08031FB0: @ 0x08031FB0 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 _08032006 ldr r0, [r5, #0x50] cmp r0, #0 bne _08031FD8 ldrb r0, [r5, #0xe] subs r0, #1 strb r0, [r5, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08032006 _08031FD8: movs r4, #0 movs r0, #4 strb r0, [r5, #0xc] adds r0, r5, #0 movs r1, #1 bl sub_08049F84 strb r0, [r5, #0x15] adds r0, r5, #0 adds r0, #0x76 strb r4, [r0] ldr r0, [r5, #0x54] cmp r0, #0 beq _08031FFE adds r0, r5, #0 movs r1, #9 bl InitializeAnimation b _08032006 _08031FFE: adds r0, r5, #0 movs r1, #8 bl InitializeAnimation _08032006: pop {r4, r5, pc} thumb_func_start sub_08032008 sub_08032008: @ 0x08032008 push {r4, r5, r6, r7, lr} adds r4, r0, #0 bl sub_080322A4 adds r7, r0, #0 cmp r7, #0 beq _08032018 b _08032144 _08032018: ldr r5, [r4, #0x50] cmp r5, #0 bne _080320D4 adds r0, r4, #0 movs r1, #1 bl sub_08049FDC cmp r0, #0 beq _08032060 adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r1, #0xff ands r0, r1 movs r1, #7 ands r0, r1 cmp r0, #0 bne _08032052 ldr r0, _0803205C @ =gUnk_020000B0 ldr r1, [r0] adds r0, r4, #0 bl GetFacingDirection adds r1, r0, #0 adds r0, r4, #0 bl sub_08004596 _08032052: adds r0, r4, #0 adds r0, #0x76 strb r7, [r0] b _080320AC .align 2, 0 _0803205C: .4byte gUnk_020000B0 _08032060: adds r1, r4, #0 adds r1, #0x76 ldrb r0, [r1] cmp r0, #0 beq _0803207C subs r0, #1 strb r0, [r1] adds r0, r4, #0 adds r0, #0x7a ldrb r1, [r0] adds r0, r4, #0 bl sub_08004596 b _080320AC _0803207C: movs r0, #0x10 strb r0, [r1] adds r0, r4, #0 bl sub_08049FA0 cmp r0, #0 bne _0803209E bl Random movs r1, #1 ands r1, r0 cmp r1, #0 beq _0803209E adds r0, r4, #0 bl sub_08049EE4 b _080320A6 _0803209E: bl Random movs r1, #0x1e ands r0, r1 _080320A6: adds r1, r4, #0 adds r1, #0x7a strb r0, [r1] _080320AC: ldrb r1, [r4, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _080320CC lsrs r1, r1, #4 movs r0, #1 eors r1, r0 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r4, #0x18] _080320CC: adds r0, r4, #0 bl sub_080AEF88 b _0803213E _080320D4: adds r6, r4, #0 adds r6, #0x77 ldrb r0, [r6] cmp r0, #0 bne _0803210E movs r0, #0x2e ldrsh r1, [r5, r0] movs r0, #0x32 ldrsh r2, [r5, r0] adds r0, r4, #0 movs r3, #1 bl sub_0806FCB8 cmp r0, #0 bne _0803213E movs r0, #1 strb r0, [r6] adds r0, r4, #0 adds r1, r5, #0 bl GetFacingDirection strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080322E8 adds r0, r4, #0 bl sub_0806F69C b _0803213E _0803210E: adds r0, r4, #0 adds r1, r5, #0 bl GetFacingDirection strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_080322E8 adds r0, r4, #0 bl sub_0806F69C movs r2, #0x2e ldrsh r1, [r4, r2] movs r2, #0x2e ldrsh r0, [r5, r2] cmp r1, r0 bne _0803213E movs r0, #0x32 ldrsh r1, [r4, r0] movs r2, #0x32 ldrsh r0, [r5, r2] cmp r1, r0 bne _0803213E strb r7, [r6] _0803213E: adds r0, r4, #0 bl GetNextFrame _08032144: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08032148 sub_08032148: @ 0x08032148 push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 cmp r0, #0 bne _0803215E adds r0, r4, #0 bl sub_08032290 _0803215E: pop {r4, pc} thumb_func_start sub_08032160 sub_08032160: @ 0x08032160 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 bne _080321C2 movs r0, #7 strb r0, [r4, #0xc] ldr r2, _08032190 @ =gUnk_080CE5FA adds r0, r4, #0 adds r0, #0x74 ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 ldrb r1, [r4, #0xb] adds r0, r0, r1 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r4, #0x15] cmp r0, #0xf bls _08032194 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 b _0803219C .align 2, 0 _08032190: .4byte gUnk_080CE5FA _08032194: ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 _0803219C: strb r0, [r4, #0x18] movs r0, #0xf0 strh r0, [r4, #0x24] movs r0, #0x90 lsls r0, r0, #9 str r0, [r4, #0x20] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] adds r0, r4, #0 movs r1, #0xc bl InitializeAnimation _080321C2: ldr r0, [r4, #0x54] cmp r0, #0 bne _080321E6 ldr r1, [r4, #0x50] cmp r1, #0 beq _080321E2 movs r2, #0 _080321D0: adds r0, r1, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _080321DC strb r2, [r1, #0xe] _080321DC: ldr r1, [r1, #0x50] cmp r1, #0 bne _080321D0 _080321E2: movs r0, #0 strb r0, [r4, #0xe] _080321E6: pop {r4, pc} thumb_func_start sub_080321E8 sub_080321E8: @ 0x080321E8 push {r4, lr} adds r4, r0, #0 bl sub_080AEFE0 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_080044EC cmp r0, #0 bne _08032202 movs r0, #8 strb r0, [r4, #0xc] _08032202: pop {r4, pc} thumb_func_start sub_08032204 sub_08032204: @ 0x08032204 push {r4, lr} adds r4, r0, #0 bl GetNextFrame adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08032230 movs r0, #0 strb r0, [r2] bl Random movs r1, #0x30 ands r0, r1 adds r0, #0x1e adds r1, r4, #0 adds r1, #0x59 strb r0, [r1] b _08032244 _08032230: movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08032244 movs r0, #9 strb r0, [r4, #0xc] adds r0, r4, #0 movs r1, #0xd bl InitializeAnimation _08032244: pop {r4, pc} .align 2, 0 thumb_func_start sub_08032248 sub_08032248: @ 0x08032248 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0xc0 lsls r1, r1, #5 bl sub_08003FC4 cmp r0, #0 bne _0803228E adds r5, r4, #0 adds r5, #0x5a ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08032276 ldr r1, [r4, #0x7c] ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] adds r0, r4, #0 bl DeleteEntity b _0803228E _08032276: adds r0, r4, #0 bl GetNextFrame ldrb r1, [r5] movs r0, #0xf ands r0, r1 cmp r0, #2 bne _0803228E ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _0803228E: pop {r4, r5, pc} thumb_func_start sub_08032290 sub_08032290: @ 0x08032290 push {lr} movs r1, #6 strb r1, [r0, #0xc] movs r1, #0xc strb r1, [r0, #0xe] movs r1, #0xb bl InitializeAnimation pop {pc} .align 2, 0 thumb_func_start sub_080322A4 sub_080322A4: @ 0x080322A4 push {r4, lr} adds r2, r0, #0 ldr r3, [r2, #0x54] cmp r3, #0 beq _080322E2 movs r1, #0x36 ldrsh r0, [r3, r1] adds r0, #8 movs r4, #0x36 ldrsh r1, [r2, r4] cmp r0, r1 blt _080322E2 adds r0, r1, #0 cmp r0, #0 beq _080322D8 movs r0, #5 strb r0, [r2, #0xc] ldrh r0, [r3, #0x36] adds r0, #8 strh r0, [r2, #0x36] adds r0, r2, #0 movs r1, #0xb bl InitializeAnimation movs r0, #1 b _080322E4 _080322D8: adds r0, r2, #0 bl sub_08032290 movs r0, #1 b _080322E4 _080322E2: movs r0, #0 _080322E4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080322E8 sub_080322E8: @ 0x080322E8 push {lr} adds r3, r0, #0 adds r2, r3, #0 adds r2, #0x78 ldrb r0, [r2] cmp r0, #0 beq _08032316 subs r0, #1 strb r0, [r2] lsls r0, r0, #0x18 cmp r0, #0 bne _08032334 ldrb r2, [r3, #0x18] lsls r1, r2, #0x19 lsrs r1, r1, #0x1f movs r0, #1 eors r1, r0 lsls r1, r1, #6 subs r0, #0x42 ands r0, r2 orrs r0, r1 strb r0, [r3, #0x18] b _08032334 _08032316: ldrb r1, [r3, #0x15] movs r0, #0xf ands r0, r1 cmp r0, #0 beq _08032334 lsrs r1, r1, #4 movs r0, #1 eors r1, r0 ldrb r0, [r3, #0x18] lsls r0, r0, #0x19 lsrs r0, r0, #0x1f cmp r1, r0 beq _08032334 movs r0, #6 strb r0, [r2] _08032334: pop {pc} .align 2, 0 thumb_func_start sub_08032338 sub_08032338: @ 0x08032338 push {lr} adds r2, r0, #0 ldr r1, [r2, #0x7c] ldrb r0, [r1, #0xe] adds r0, #0xf strb r0, [r1, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x50 beq _08032354 adds r1, r2, #0 adds r1, #0x6c movs r0, #0 strb r0, [r1] _08032354: pop {pc} .align 2, 0