diff --git a/asm/code_080011C4.s b/asm/code_080011C4.s index 9a13f50a..d6171877 100644 --- a/asm/code_080011C4.s +++ b/asm/code_080011C4.s @@ -68,7 +68,7 @@ _08001230: beq _0800123E strb r1, [r0, #0xe] movs r1, #4 - ldr r3, _0800135C @ =sub_08004276 + ldr r3, _0800135C @ =UpdateSpriteAnimation bx r3 _0800123E: ldr r3, _08001360 @ =sub_080043B4 @@ -238,7 +238,7 @@ _08001352: bx lr .align 2, 0 _08001358: .4byte gEnemyFunctions -_0800135C: .4byte sub_08004276 +_0800135C: .4byte UpdateSpriteAnimation _08001360: .4byte sub_080043B4 _08001364: .4byte 0x00001800 _08001368: .4byte gUnk_080012C8 diff --git a/asm/code_08003FC4.s b/asm/code_08003FC4.s index 6e093e15..c4a5742f 100644 --- a/asm/code_08003FC4.s +++ b/asm/code_08003FC4.s @@ -431,8 +431,8 @@ UpdateSprite: @ 0x08004260 sub_08004274: @ 0x08004274 movs r1, #1 - non_word_aligned_thumb_func_start sub_08004276 -sub_08004276: @ 0x08004276 + non_word_aligned_thumb_func_start UpdateSpriteAnimation +UpdateSpriteAnimation: @ 0x08004276 movs r3, #0x59 ldrb r2, [r0, r3] subs r2, r2, r1 @@ -478,7 +478,7 @@ sub_080042B8: @ 0x080042B8 non_word_aligned_thumb_func_start sub_080042BA sub_080042BA: @ 0x080042BA push {lr} - bl sub_08004276 + bl UpdateSpriteAnimation _080042C0: pop {r1} mov lr, r1 diff --git a/asm/code_080041E8.s b/asm/code_080041E8.s index a13ec1f2..822a87a7 100644 --- a/asm/code_080041E8.s +++ b/asm/code_080041E8.s @@ -97,8 +97,8 @@ UpdateSprite: @ 0x08004260 sub_08004274: @ 0x08004274 movs r1, #1 - non_word_aligned_thumb_func_start sub_08004276 -sub_08004276: @ 0x08004276 + non_word_aligned_thumb_func_start UpdateSpriteAnimation +UpdateSpriteAnimation: @ 0x08004276 movs r3, #0x59 ldrb r2, [r0, r3] subs r2, r2, r1 @@ -144,7 +144,7 @@ sub_080042B8: @ 0x080042B8 non_word_aligned_thumb_func_start sub_080042BA sub_080042BA: @ 0x080042BA push {lr} - bl sub_08004276 + bl UpdateSpriteAnimation _080042C0: pop {r1} mov lr, r1 diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s index 790b5f76..2c1c61de 100644 --- a/asm/code_0801D79C.s +++ b/asm/code_0801D79C.s @@ -2570,11009 +2570,3 @@ _0801EA9C: movs r0, #0xf2 _0801EAAE: pop {r4, r5, r6, pc} - - thumb_func_start sub_0801EAB0 -sub_0801EAB0: @ 0x0801EAB0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0801EACC @ =gUnk_080CA130 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0801EACC: .4byte gUnk_080CA130 - - thumb_func_start sub_0801EAD0 -sub_0801EAD0: @ 0x0801EAD0 - push {lr} - ldr r2, _0801EAE4 @ =gUnk_080CA148 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801EAE4: .4byte gUnk_080CA148 - - thumb_func_start sub_0801EAE8 -sub_0801EAE8: @ 0x0801EAE8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0801EAFC - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0801EAFC: - ldr r1, _0801EB08 @ =gUnk_080CA130 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0801EB08: .4byte gUnk_080CA130 - - thumb_func_start sub_0801EB0C -sub_0801EB0C: @ 0x0801EB0C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0801EB1E - adds r0, r1, #0 - bl sub_0804A7D4 - b _0801EB28 -_0801EB1E: - adds r0, r1, #0 - movs r1, #0xf1 - movs r2, #0 - bl sub_0804A7E0 -_0801EB28: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801EB2C -sub_0801EB2C: @ 0x0801EB2C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _0801EB50 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _0801EB50 - adds r0, r4, #0 - bl sub_0801ECFC - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite - b _0801EB60 -_0801EB50: - ldr r0, _0801EB64 @ =gUnk_080CA158 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0801EB60: - pop {r4, pc} - .align 2, 0 -_0801EB64: .4byte gUnk_080CA158 - - thumb_func_start sub_0801EB68 -sub_0801EB68: @ 0x0801EB68 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0801EB74 -sub_0801EB74: @ 0x0801EB74 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0801EB7C -sub_0801EB7C: @ 0x0801EB7C - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_0801EB84 -sub_0801EB84: @ 0x0801EB84 - push {lr} - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #2 - bl sub_08004276 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_3 -nullsub_3: @ 0x0801EB98 - bx lr - .align 2, 0 - - thumb_func_start sub_0801EB9C -sub_0801EB9C: @ 0x0801EB9C - push {lr} - adds r2, r0, #0 - ldrb r3, [r2, #0x10] - movs r0, #0x80 - ands r0, r3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0801EBC0 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r2, #0x10] - adds r2, #0x3a - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - b _0801EBC6 -_0801EBC0: - adds r0, r2, #0 - adds r0, #0x45 - strb r1, [r0] -_0801EBC6: - pop {pc} - - thumb_func_start sub_0801EBC8 -sub_0801EBC8: @ 0x0801EBC8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0801EBDE - bl Random - movs r1, #3 - ands r0, r1 -_0801EBDE: - strb r0, [r4, #0x14] - movs r0, #0x12 - strb r0, [r4, #0x1c] - adds r0, r4, #0 - bl sub_0801ECFC - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite - pop {r4, pc} - - thumb_func_start sub_0801EBF4 -sub_0801EBF4: @ 0x0801EBF4 - 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 _0801EC1E - movs r0, #2 - strb r0, [r4, #0xc] - bl Random - ldr r2, _0801EC28 @ =gUnk_080CA170 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0801ED14 -_0801EC1E: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0801EC28: .4byte gUnk_080CA170 - - thumb_func_start sub_0801EC2C -sub_0801EC2C: @ 0x0801EC2C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080AEF88 - adds r0, r5, #0 - bl sub_08004274 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801EC7E - adds r0, r5, #0 - bl sub_0801EDEC - cmp r0, #0 - beq _0801EC78 - ldr r1, _0801EC74 @ =gUnk_080CA174 - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - ldrb r4, [r0] - bl Random - movs r1, #3 - ands r0, r1 - cmp r4, r0 - bhi _0801EC78 - strb r1, [r5, #0xc] - ldrb r1, [r5, #0x14] - adds r1, #4 - adds r0, r5, #0 - bl UpdateSprite - b _0801EC7E - .align 2, 0 -_0801EC74: .4byte gUnk_080CA174 -_0801EC78: - adds r0, r5, #0 - bl sub_0801ECFC -_0801EC7E: - pop {r4, r5, pc} - - thumb_func_start sub_0801EC80 -sub_0801EC80: @ 0x0801EC80 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801ECD8 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0801ECD8 - ldrb r0, [r4, #0x15] - strb r0, [r2, #0x15] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #2 - ldr r0, _0801ECF0 @ =gUnk_080CA176 - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r3, [r2, #0x2e] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldr r0, _0801ECF4 @ =0x0000FFFD - strh r0, [r2, #0x36] - ldrb r1, [r5] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5] - ldr r0, _0801ECF8 @ =0x0000018D - bl sub_08004488 -_0801ECD8: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0801ECEC - adds r0, r4, #0 - bl sub_0801ECFC -_0801ECEC: - pop {r4, r5, pc} - .align 2, 0 -_0801ECF0: .4byte gUnk_080CA176 -_0801ECF4: .4byte 0x0000FFFD -_0801ECF8: .4byte 0x0000018D - - thumb_func_start sub_0801ECFC -sub_0801ECFC: @ 0x0801ECFC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - movs r1, #0x38 - ands r0, r1 - adds r0, #0x18 - strb r0, [r4, #0xe] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801ED14 -sub_0801ED14: @ 0x0801ED14 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #2 - beq _0801ED7E - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0801ED4C - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _0801ED46 - bl Random - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _0801ED46 - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - bne _0801EDC4 -_0801ED46: - bl Random - b _0801EDD0 -_0801ED4C: - bl Random - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0801ED78 - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl Random - ldr r2, _0801ED74 @ =gUnk_080CA17E - movs r1, #1 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r4 - b _0801EDD0 - .align 2, 0 -_0801ED74: .4byte gUnk_080CA17E -_0801ED78: - bl Random - b _0801EDD0 -_0801ED7E: - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - bne _0801EDC4 - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0801ED9A - bl Random - b _0801EDD0 -_0801ED9A: - bl Random - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0801EDC4 - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl Random - ldr r2, _0801EDC0 @ =gUnk_080CA17E - movs r1, #1 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r4 - b _0801EDD0 - .align 2, 0 -_0801EDC0: .4byte gUnk_080CA17E -_0801EDC4: - ldr r0, _0801EDE8 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r5, #0 - bl sub_080045C4 - adds r0, #4 -_0801EDD0: - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl UpdateSprite - pop {r4, r5, pc} - .align 2, 0 -_0801EDE8: .4byte gUnk_020000B0 - - thumb_func_start sub_0801EDEC -sub_0801EDEC: @ 0x0801EDEC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _0801EE12 - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - ldrb r4, [r4, #0x15] - cmp r0, r4 - bne _0801EE12 - movs r0, #1 - b _0801EE14 -_0801EE12: - movs r0, #0 -_0801EE14: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801EE18 -sub_0801EE18: @ 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 UpdateSprite - 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 sub_0800279C - 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 sub_0804A9AC - 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 UpdateSprite - 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 UpdateSprite - b _0801EFC4 -_0801EFB0: - adds r0, r4, #0 - bl sub_0804AA1C - str r6, [r4, #0x20] - adds r0, r4, #0 - movs r1, #9 - bl UpdateSprite -_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 UpdateSprite - 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 UpdateSprite -_0801F018: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_08004274 -_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 sub_08004274 -_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 sub_08004274 - 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 sub_0804A7E0 - b _0801F082 -_0801F078: - adds r0, r4, #0 - movs r1, #0xf1 - movs r2, #0 - bl sub_0804A7E0 -_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 sub_08004274 -_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 sub_08004274 - 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 UpdateSprite -_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 sub_08004274 - 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 sub_08004274 - b _0801F200 -_0801F1FA: - adds r0, r4, #0 - bl sub_08004274 -_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 sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801F250 -sub_0801F250: @ 0x0801F250 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - 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 sub_08004274 - 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 UpdateSprite - 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 sub_08004274 - 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 UpdateSprite -_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 sub_08004274 - 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 UpdateSprite - 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 UpdateSprite - 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 UpdateSprite - 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 UpdateSprite - 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 UpdateSprite -_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 UpdateSprite -_0801F488: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0801F48C -sub_0801F48C: @ 0x0801F48C - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0801F494 -sub_0801F494: @ 0x0801F494 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - 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 UpdateSprite -_0801F4E8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801F4EC -sub_0801F4EC: @ 0x0801F4EC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - 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 sub_08004274 -_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 sub_08004274 - b _0801F5D4 -_0801F5CE: - adds r0, r4, #0 - bl sub_08004274 -_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 UpdateSprite -_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 sub_08004274 - pop {pc} - - thumb_func_start sub_0801F638 -sub_0801F638: @ 0x0801F638 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - 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 UpdateSprite -_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 sub_08004274 - 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 sub_08004274 - 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 UpdateSprite -_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 sub_08004274 - 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 UpdateSprite -_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 UpdateSprite - 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 UpdateSprite - 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 UpdateSprite - 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 UpdateSprite -_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 UpdateSprite -_0801F83E: - pop {r4, r5, pc} - - thumb_func_start sub_0801F840 -sub_0801F840: @ 0x0801F840 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - 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 sub_08004274 - 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 sub_080045C4 - strb r0, [r4, #0x15] -_0801F92C: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 -_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 sub_08004274 - b _0801F98E - .align 2, 0 -_0801F984: .4byte 0x0000012B -_0801F988: - adds r0, r4, #0 - bl sub_08004274 -_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 UpdateSprite -_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 sub_08004274 - pop {pc} - - thumb_func_start sub_0801F9E0 -sub_0801F9E0: @ 0x0801F9E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - 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 UpdateSprite -_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 sub_08004274 - 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 UpdateSprite - 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 sub_08004274 - 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 UpdateSprite - 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 sub_08004274 - 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 UpdateSprite - 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 UpdateSprite - 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 UpdateSprite - 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 UpdateSprite - pop {r4, pc} - - thumb_func_start sub_0801FC08 -sub_0801FC08: @ 0x0801FC08 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0801FC24 @ =gUnk_080CA49C - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0801FC24: .4byte gUnk_080CA49C - - thumb_func_start sub_0801FC28 -sub_0801FC28: @ 0x0801FC28 - push {lr} - ldr r2, _0801FC3C @ =gUnk_080CA4B4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0801FC3C: .4byte gUnk_080CA4B4 - - thumb_func_start sub_0801FC40 -sub_0801FC40: @ 0x0801FC40 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _0801FC5C - ldrb r0, [r4, #0xc] - cmp r0, #3 - bne _0801FC6E - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #1 - strh r0, [r1] - b _0801FC6E -_0801FC5C: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0801FC6E - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0801FC6E: - ldr r1, _0801FC78 @ =gUnk_080CA49C - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0801FC78: .4byte gUnk_080CA49C - - thumb_func_start sub_0801FC7C -sub_0801FC7C: @ 0x0801FC7C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0801FC8E - adds r0, r1, #0 - bl sub_0804A7D4 - b _0801FC98 -_0801FC8E: - adds r0, r1, #0 - movs r1, #0xf1 - movs r2, #0 - bl sub_0804A7E0 -_0801FC98: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801FC9C -sub_0801FC9C: @ 0x0801FC9C - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - strb r0, [r4, #0xe] - pop {r4, pc} - - thumb_func_start sub_0801FCB0 -sub_0801FCB0: @ 0x0801FCB0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801FD28 - bl Random - movs r1, #0x1f - ands r1, r0 - adds r0, r5, #0 - bl sub_0801FE68 - cmp r0, #0 - beq _0801FD1C - movs r0, #2 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - ldr r0, _0801FD14 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r5, #0 - bl sub_080045C4 - adds r4, r0, #0 - bl Random - ldr r2, _0801FD18 @ =gUnk_080CA4C8 - movs r1, #1 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r5, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r5, #0 - bl UpdateSpriteOrderAndFlip - b _0801FD28 - .align 2, 0 -_0801FD14: .4byte gUnk_020000B0 -_0801FD18: .4byte gUnk_080CA4C8 -_0801FD1C: - bl Random - movs r1, #0x18 - ands r0, r1 - adds r0, #8 - strb r0, [r5, #0xe] -_0801FD28: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0801FD2C -sub_0801FD2C: @ 0x0801FD2C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0801FD66 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0801FD54 - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #0xb4 - b _0801FD5A -_0801FD54: - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #0x6e -_0801FD5A: - strh r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite - b _0801FD7C -_0801FD66: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801FD7C - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_0801FD7C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801FD80 -sub_0801FD80: @ 0x0801FD80 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801FED4 - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0801FDB2 - 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, #1 - bl UpdateSprite -_0801FDB2: - pop {r4, pc} - - thumb_func_start sub_0801FDB4 -sub_0801FDB4: @ 0x0801FDB4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801FED4 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0801FDE0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0xf4 - ands r0, r1 - strb r0, [r4, #0x18] -_0801FDE0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0801FDE4 -sub_0801FDE4: @ 0x0801FDE4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - ldr r7, _0801FE04 @ =gUnk_020000B0 - ldr r0, [r7] - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080002D4 - cmp r0, #0 - beq _0801FE34 - b _0801FE5C - .align 2, 0 -_0801FE04: .4byte gUnk_020000B0 -_0801FE08: - movs r0, #0x10 - rsbs r0, r0, #0 - adds r1, r0, #0 - ands r4, r1 - adds r0, r4, #0 - adds r0, #8 - strh r0, [r6, #0x2e] - ands r5, r1 - adds r0, r5, #0 - adds r0, #8 - strh r0, [r6, #0x32] - ldr r0, _0801FE30 @ =gUnk_020000B0 - ldr r0, [r0] - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r6, #0 - adds r0, #0x38 - strb r1, [r0] - movs r0, #1 - b _0801FE5E - .align 2, 0 -_0801FE30: .4byte gUnk_020000B0 -_0801FE34: - ldr r0, [r7] - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080002BC - adds r3, r0, #0 - ldr r1, _0801FE60 @ =gUnk_080CA4CA - ldrh r0, [r1] - ldr r2, _0801FE64 @ =0x0000FFFF - cmp r0, r2 - beq _0801FE5C -_0801FE4E: - ldrh r0, [r1] - adds r1, #2 - cmp r0, r3 - beq _0801FE08 - ldrh r0, [r1] - cmp r0, r2 - bne _0801FE4E -_0801FE5C: - movs r0, #0 -_0801FE5E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801FE60: .4byte gUnk_080CA4CA -_0801FE64: .4byte 0x0000FFFF - - thumb_func_start sub_0801FE68 -sub_0801FE68: @ 0x0801FE68 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r6, r1, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - bne _0801FE82 -_0801FE7E: - movs r0, #0 - b _0801FEC4 -_0801FE82: - ldr r0, _0801FECC @ =gUnk_020000B0 - ldr r0, [r0] - ldr r5, [r0, #0x2c] - ldr r4, [r0, #0x30] - ldr r1, _0801FED0 @ =gUnk_080C9160 - lsls r0, r6, #4 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r0, r0, #0xb - mov sb, r0 - lsls r0, r6, #4 - adds r0, #0x80 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r0, r0, #0xb - mov r8, r0 - movs r6, #0 -_0801FEA8: - add r5, sb - mov r2, r8 - subs r4, r4, r2 - asrs r1, r5, #0x10 - asrs r2, r4, #0x10 - adds r0, r7, #0 - bl sub_0801FDE4 - cmp r0, #0 - beq _0801FE7E - adds r6, #1 - cmp r6, #7 - bls _0801FEA8 - movs r0, #1 -_0801FEC4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801FECC: .4byte gUnk_020000B0 -_0801FED0: .4byte gUnk_080C9160 - - thumb_func_start sub_0801FED4 -sub_0801FED4: @ 0x0801FED4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - bne _0801FEEA - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #1 - strh r0, [r1] -_0801FEEA: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0xf - adds r1, r2, #0 - ands r1, r0 - lsls r1, r1, #5 - strh r1, [r4, #0x24] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0801FF28 - ldrb r1, [r4, #0xf] - adds r0, r1, #1 - strb r0, [r4, #0xf] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0801FF4E - ldr r0, _0801FF24 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0800132C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _0801FF4E - .align 2, 0 -_0801FF24: .4byte gUnk_020000B0 -_0801FF28: - adds r0, r1, #0 - adds r0, #0x40 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0xf] - adds r0, r1, #1 - strb r0, [r4, #0xf] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0801FF4E - ldr r0, _0801FF58 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0800132C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_0801FF4E: - adds r0, r4, #0 - bl sub_080AEF88 - pop {r4, pc} - .align 2, 0 -_0801FF58: .4byte gUnk_020000B0 - - thumb_func_start sub_0801FF5C -sub_0801FF5C: @ 0x0801FF5C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0801FF84 - ldr r1, _0801FF80 @ =gUnk_080CA570 - adds r0, r4, #0 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - b _0801FF94 - .align 2, 0 -_0801FF80: .4byte gUnk_080CA570 -_0801FF84: - ldr r0, _0801FF98 @ =gUnk_080CA588 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0801FF94: - pop {r4, pc} - .align 2, 0 -_0801FF98: .4byte gUnk_080CA588 - - thumb_func_start sub_0801FF9C -sub_0801FF9C: @ 0x0801FF9C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0801FFD4 @ =gUnk_080CA590 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0801FFD2 - ldr r2, _0801FFD8 @ =gUnk_080CA5B8 - ldrb r1, [r4, #0xf] - adds r0, r1, #1 - strb r0, [r4, #0xf] - movs r0, #0x30 - ands r0, r1 - lsrs r0, r0, #4 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x36] -_0801FFD2: - pop {r4, pc} - .align 2, 0 -_0801FFD4: .4byte gUnk_080CA590 -_0801FFD8: .4byte gUnk_080CA5B8 - - thumb_func_start sub_0801FFDC -sub_0801FFDC: @ 0x0801FFDC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x82 - ldrb r0, [r6] - cmp r0, #0 - beq _08020068 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - cmp r1, #0x94 - bne _08020018 - movs r0, #3 - movs r1, #1 - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _08020010 - adds r0, r4, #0 - adds r1, r5, #0 - bl CopyPosition - ldrh r0, [r5, #0x36] - subs r0, #8 - strh r0, [r5, #0x36] -_08020010: - movs r0, #0 - strb r0, [r6] - movs r0, #2 - b _0802001E -_08020018: - cmp r1, #0x9b - bne _08020042 - movs r0, #1 -_0802001E: - strb r0, [r4, #0x14] - movs r0, #5 - strb r0, [r4, #0xc] - movs r1, #0 - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x3d - movs r0, #0xe2 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite - b _08020068 -_08020042: - cmp r1, #0x80 - bne _08020068 - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08020068 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strh r1, [r4, #0x24] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0x78 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08004274 -_08020068: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802007A - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802007A: - ldr r1, _08020084 @ =gUnk_080CA570 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08020084: .4byte gUnk_080CA570 - - thumb_func_start sub_08020088 -sub_08020088: @ 0x08020088 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _0802009C - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080200AC -_0802009C: - ldr r0, _080200B0 @ =gUnk_080CA5BC - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080200AC: - pop {r4, pc} - .align 2, 0 -_080200B0: .4byte gUnk_080CA5BC - - thumb_func_start sub_080200B4 -sub_080200B4: @ 0x080200B4 - push {lr} - adds r2, r0, #0 - movs r1, #1 - strb r1, [r2, #0xd] - movs r0, #0x3c - strb r0, [r2, #0x1d] - ldrb r3, [r2, #0x14] - cmp r3, #0 - bne _080200E2 - strb r1, [r2, #0x14] - movs r0, #5 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x71 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x81 - strb r3, [r0] - ldrb r1, [r2, #0x14] - adds r0, r2, #0 - bl UpdateSprite -_080200E2: - pop {pc} - - thumb_func_start sub_080200E4 -sub_080200E4: @ 0x080200E4 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080200EC -sub_080200EC: @ 0x080200EC - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_080200F4 -sub_080200F4: @ 0x080200F4 - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - bx lr - .align 2, 0 - - thumb_func_start nullsub_5 -nullsub_5: @ 0x08020100 - bx lr - .align 2, 0 - - thumb_func_start sub_08020104 -sub_08020104: @ 0x08020104 - push {lr} - adds r2, r0, #0 - ldrb r3, [r2, #0x10] - movs r0, #0x80 - ands r0, r3 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _08020128 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r2, #0x10] - adds r2, #0x3a - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - b _0802012E -_08020128: - adds r0, r2, #0 - adds r0, #0x45 - strb r1, [r0] -_0802012E: - pop {pc} - - thumb_func_start sub_08020130 -sub_08020130: @ 0x08020130 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r5, #1 - strb r5, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] - bl Random - strb r0, [r4, #0xf] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x12 - strb r0, [r4, #0x1c] - bl Random - ands r0, r5 - movs r1, #0xfe - cmp r0, #0 - beq _08020162 - movs r1, #2 -_08020162: - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - movs r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08020180 -sub_08020180: @ 0x08020180 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x83 - ldrb r0, [r5] - cmp r0, #0 - beq _08020192 - subs r0, #1 - strb r0, [r5] -_08020192: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080201D4 - ldrb r0, [r5] - cmp r0, #0 - bne _080201D4 - ldrb r1, [r4, #0xf] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _080201D4 - ldr r0, _0802021C @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x30 - bl sub_08049F1C - cmp r0, #0 - beq _080201D4 - movs r0, #2 - strb r0, [r4, #0xc] - bl Random - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0xa0 - strh r0, [r4, #0x24] -_080201D4: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802020C - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08020604 - bl Random - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _0802020C - bl Random - movs r1, #1 - ands r1, r0 - movs r2, #0xfe - cmp r1, #0 - beq _08020206 - movs r2, #2 -_08020206: - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] -_0802020C: - adds r0, r4, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_0802021C: .4byte gUnk_020000B0 - - thumb_func_start sub_08020220 -sub_08020220: @ 0x08020220 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08020284 - ldrb r0, [r5, #0xe] - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - beq _0802024C - lsrs r0, r0, #0x1c - movs r1, #3 - ands r0, r1 - movs r1, #4 - subs r1, r1, r0 - adds r0, r5, #0 - bl sub_08004276 - b _08020292 -_0802024C: - movs r0, #3 - strb r0, [r5, #0xc] - movs r0, #0x78 - strb r0, [r5, #0xe] - movs r0, #0xc0 - strh r0, [r5, #0x24] - ldr r0, _0802027C @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r5, #0 - bl sub_080045C4 - adds r4, r0, #0 - bl Random - ldr r2, _08020280 @ =gUnk_080CA5D4 - movs r1, #1 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - b _0802028A - .align 2, 0 -_0802027C: .4byte gUnk_020000B0 -_08020280: .4byte gUnk_080CA5D4 -_08020284: - adds r0, r5, #0 - bl sub_080205F8 -_0802028A: - adds r0, r5, #0 - movs r1, #4 - bl sub_08004276 -_08020292: - pop {r4, r5, pc} - - thumb_func_start sub_08020294 -sub_08020294: @ 0x08020294 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080202F8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080202B4 - adds r0, r4, #0 - bl sub_080205F8 -_080202B4: - ldrb r1, [r4, #0xe] - cmp r1, #0x3c - bls _080202E6 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080202C8 - ldrh r0, [r4, #0x24] - adds r0, #4 - strh r0, [r4, #0x24] -_080202C8: - ldr r0, _080202F0 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _080202E6 - ldr r0, _080202F4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_080202E6: - adds r0, r4, #0 - bl sub_080AEFE0 - b _080202FE - .align 2, 0 -_080202F0: .4byte gUnk_030010A0 -_080202F4: .4byte gUnk_020000B0 -_080202F8: - adds r0, r4, #0 - bl sub_080205F8 -_080202FE: - adds r0, r4, #0 - movs r1, #4 - bl sub_08004276 - pop {r4, pc} - - thumb_func_start sub_08020308 -sub_08020308: @ 0x08020308 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08020332 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0x78 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08004274 - b _0802034E -_08020332: - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08020340 - ldrh r0, [r4, #0x24] - subs r0, #8 - strh r0, [r4, #0x24] -_08020340: - adds r0, r4, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004276 -_0802034E: - pop {r4, pc} - - thumb_func_start sub_08020350 -sub_08020350: @ 0x08020350 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x14] - cmp r0, #2 - beq _08020398 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _0802037C - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - movs r0, #0xa - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x71 - strb r0, [r1] -_0802037C: - ldrb r0, [r4, #0x15] - cmp r0, #0xff - bne _0802038A - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] -_0802038A: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - b _080203BE -_08020398: - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080203BE - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x96 - strb r0, [r4, #0xe] - movs r0, #0xa - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x71 - strb r0, [r1] -_080203BE: - pop {r4, pc} - - thumb_func_start sub_080203C0 -sub_080203C0: @ 0x080203C0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080203DC - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080203DC - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_080203DC: - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _080203F2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08020418 -_080203F2: - movs r0, #9 - strb r0, [r4, #0xc] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0804AA1C - movs r0, #5 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #5 - bl UpdateSprite -_08020418: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802041C -sub_0802041C: @ 0x0802041C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08020438 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08020438 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08020438: - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _0802044E - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08020466 -_0802044E: - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0804AA1C -_08020466: - pop {r4, pc} - - thumb_func_start sub_08020468 -sub_08020468: @ 0x08020468 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080204A6 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080204A2 - movs r0, #9 - strb r0, [r4, #0xc] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #4 - bl UpdateSprite - b _080204A6 -_080204A2: - movs r0, #1 - strb r0, [r4, #0xe] -_080204A6: - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080204C4 - movs r0, #0xfd - ands r0, r1 - strb r0, [r5] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080204C4: - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080204D6 - adds r0, r4, #0 - bl sub_0800442E - b _080204DC -_080204D6: - adds r0, r4, #0 - bl sub_080AEF88 -_080204DC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080204E0 -sub_080204E0: @ 0x080204E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802051A - movs r2, #0 - movs r1, #1 - strb r1, [r4, #0xc] - adds r3, r4, #0 - adds r3, #0x3f - movs r0, #0x70 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x82 - strb r1, [r0] - subs r0, #1 - strb r1, [r0] - strb r2, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - b _0802053A -_0802051A: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802052A - adds r0, r4, #0 - bl sub_0800442E - b _0802053A -_0802052A: - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_080AEF88 -_0802053A: - pop {r4, pc} - - thumb_func_start sub_0802053C -sub_0802053C: @ 0x0802053C - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - movs r0, #0x28 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - ands r2, r0 - orrs r2, r1 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - movs r3, #0x40 - orrs r0, r3 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r3 - strb r1, [r4, #0x1b] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r2, r0 - strb r2, [r4, #0x18] - movs r0, #0x20 - strh r0, [r4, #0x24] - bl Random - movs r1, #0x10 - ands r0, r1 - adds r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite - pop {r4, pc} - - thumb_func_start sub_08020590 -sub_08020590: @ 0x08020590 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - movs r5, #0xff - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080205AE - adds r0, r4, #0 - bl sub_0805E7BC - b _080205F2 -_080205AE: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3b - bhi _080205C8 - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - subs r0, #5 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080205C8: - ldr r0, [r4, #0x34] - ldr r1, _080205F4 @ =0xFFFF4000 - adds r0, r0, r1 - str r0, [r4, #0x34] - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _080205F2 - movs r0, #0x28 - strb r0, [r4, #0xf] - bl Random - movs r1, #0x10 - ands r0, r1 - adds r0, #8 - strb r0, [r4, #0x15] -_080205F2: - pop {r4, r5, pc} - .align 2, 0 -_080205F4: .4byte 0xFFFF4000 - - thumb_func_start sub_080205F8 -sub_080205F8: @ 0x080205F8 - movs r1, #4 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08020604 -sub_08020604: @ 0x08020604 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08020624 - bl Random - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _08020624 - adds r0, r4, #0 - bl sub_08049EE4 - b _08020632 -_08020624: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 -_08020632: - strb r0, [r4, #0x15] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08020638 -sub_08020638: @ 0x08020638 - push {lr} - ldr r1, _08020644 @ =gUnk_080CA66C - bl sub_0800129E - pop {pc} - .align 2, 0 -_08020644: .4byte gUnk_080CA66C - - thumb_func_start sub_08020648 -sub_08020648: @ 0x08020648 - push {r4, lr} - adds r4, r0, #0 - bl sub_08020AD0 - ldr r1, _08020664 @ =gUnk_080CA684 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08020664: .4byte gUnk_080CA684 - - thumb_func_start sub_08020668 -sub_08020668: @ 0x08020668 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x3f - ldrb r0, [r2] - cmp r0, #0x22 - bne _080206A2 - adds r1, r4, #0 - adds r1, #0x45 - ldrb r0, [r1] - cmp r0, #0xff - beq _080206A2 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0xff - strb r0, [r4, #0x15] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - movs r0, #0x23 - strb r0, [r2] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl UpdateSprite -_080206A2: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x80 - beq _080206D0 - ldrb r0, [r4, #0xc] - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080206D0 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xb4 - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl UpdateSprite -_080206D0: - ldrb r0, [r5] - cmp r0, #0x93 - bne _080206DC - adds r0, r4, #0 - bl sub_08020648 -_080206DC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080206E0 -sub_080206E0: @ 0x080206E0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08020AD0 - cmp r0, #0 - beq _080206F6 - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - b _08020730 -_080206F6: - adds r0, r4, #0 - bl sub_08020B6C - cmp r0, #0 - beq _0802072A - adds r1, r4, #0 - adds r1, #0x42 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r5, r4, #0 - adds r5, #0x3e - ldrb r1, [r5] - adds r0, r4, #0 - movs r2, #0xa - bl sub_080AE58C - adds r0, r4, #0 - adds r0, #0x46 - ldrh r1, [r0] - ldrb r2, [r5] - adds r0, r4, #0 - movs r3, #0xa - bl sub_080AE7E8 - b _08020730 -_0802072A: - adds r0, r4, #0 - bl sub_08001324 -_08020730: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08020734 -sub_08020734: @ 0x08020734 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _08020764 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _08020764 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl UpdateSprite - b _08020774 -_08020764: - ldr r0, _08020778 @ =gUnk_080CA6A4 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08020774: - pop {r4, pc} - .align 2, 0 -_08020778: .4byte gUnk_080CA6A4 - - thumb_func_start sub_0802077C -sub_0802077C: @ 0x0802077C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_08020788 -sub_08020788: @ 0x08020788 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08020790 -sub_08020790: @ 0x08020790 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_08020798 -sub_08020798: @ 0x08020798 - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - bx lr - .align 2, 0 - - thumb_func_start nullsub_6 -nullsub_6: @ 0x080207A4 - bx lr - .align 2, 0 - - thumb_func_start sub_080207A8 -sub_080207A8: @ 0x080207A8 - push {lr} - movs r3, #4 - movs r1, #4 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x29 - adds r1, r1, r0 - mov ip, r1 - ldrb r2, [r1] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r3 - mov r2, ip - strb r1, [r2] - adds r3, r0, #0 - adds r3, #0x3a - ldrb r2, [r3] - movs r1, #0xfb - ands r1, r2 - strb r1, [r3] - ldrb r1, [r0, #0x15] - movs r2, #0x10 - eors r1, r2 - strb r1, [r0, #0x15] - movs r1, #0xc0 - lsls r1, r1, #9 - str r1, [r0, #0x20] - movs r1, #0x80 - strh r1, [r0, #0x24] - ldrb r1, [r0, #0x14] - adds r1, #0x10 - bl UpdateSprite - pop {pc} - - thumb_func_start sub_080207F4 -sub_080207F4: @ 0x080207F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r1, #0 - movs r0, #0x30 - strb r0, [r4, #0x16] - movs r0, #0x12 - strb r0, [r4, #0x1c] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - bl Random - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08020A30 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08020820 -sub_08020820: @ 0x08020820 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0802084A - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0802084A - strb r5, [r4, #0xe] -_0802084A: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08020872 - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08020872 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] -_08020872: - pop {r4, r5, pc} - - thumb_func_start sub_08020874 -sub_08020874: @ 0x08020874 - push {lr} - ldr r2, _08020888 @ =gUnk_080CA6BC - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08020888: .4byte gUnk_080CA6BC - - thumb_func_start sub_0802088C -sub_0802088C: @ 0x0802088C - movs r1, #1 - strb r1, [r0, #0xd] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - ldr r1, _080208B0 @ =gLinkEntity - ldrb r1, [r1, #0x14] - adds r2, r0, #0 - adds r2, #0x85 - strb r1, [r2] - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080208B0: .4byte gLinkEntity - - thumb_func_start sub_080208B4 -sub_080208B4: @ 0x080208B4 - push {r4, r5, lr} - adds r2, r0, #0 - adds r4, r2, #0 - adds r4, #0x85 - ldrb r0, [r4] - ldr r5, _080208EC @ =gLinkEntity - ldrb r1, [r5, #0x14] - subs r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r0, #0 - beq _080208E6 - ldrb r0, [r2, #0x14] - adds r0, r0, r1 - movs r1, #3 - ands r0, r1 - strb r0, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r1, #0x10 - adds r0, r2, #0 - bl UpdateSprite -_080208E6: - ldrb r0, [r5, #0x14] - strb r0, [r4] - pop {r4, r5, pc} - .align 2, 0 -_080208EC: .4byte gLinkEntity - - thumb_func_start sub_080208F0 -sub_080208F0: @ 0x080208F0 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x18 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_08020904 -sub_08020904: @ 0x08020904 - push {lr} - movs r1, #4 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - movs r1, #0xff - strb r1, [r0, #0x15] - ldrb r1, [r0, #0x14] - adds r1, #0x10 - bl UpdateSprite - pop {pc} - - thumb_func_start sub_08020920 -sub_08020920: @ 0x08020920 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08020936 - adds r0, r1, #0 - bl sub_08020A30 -_08020936: - pop {pc} - - thumb_func_start sub_08020938 -sub_08020938: @ 0x08020938 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _08020950 - adds r0, r4, #0 - bl sub_08004274 -_08020950: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _08020980 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08020978 - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl UpdateSprite -_08020978: - adds r0, r4, #0 - bl sub_08078930 - b _0802099C -_08020980: - cmp r0, #1 - bne _0802098C - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_0802098C: - ldrb r1, [r4, #0x15] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _0802099C - adds r0, r4, #0 - bl sub_080AEFE0 -_0802099C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080209A0 -sub_080209A0: @ 0x080209A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080209E2 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x22 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08020A30 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite - b _080209F0 -_080209E2: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080209F0 - adds r0, r4, #0 - bl sub_08078930 -_080209F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080209F4 -sub_080209F4: @ 0x080209F4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xe0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _08020A14 - movs r1, #7 - movs r0, #7 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] -_08020A14: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - bne _08020A24 - adds r0, r4, #0 - bl sub_08004274 -_08020A24: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08020A28 -sub_08020A28: @ 0x08020A28 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_08020A30 -sub_08020A30: @ 0x08020A30 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldrb r0, [r5] - cmp r0, #1 - bhi _08020A68 - bl Random - ldr r2, _08020A64 @ =gUnk_080CA6CC - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - cmp r0, #0 - bne _08020A68 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _08020A7A - .align 2, 0 -_08020A64: .4byte gUnk_080CA6CC -_08020A68: - movs r0, #0 - movs r1, #1 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x84 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08020A7C -_08020A7A: - pop {r4, r5, pc} - - thumb_func_start sub_08020A7C -sub_08020A7C: @ 0x08020A7C - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl Random - ldrb r5, [r6, #0x15] - ldr r4, _08020ACC @ =gUnk_080CA6D4 - movs r1, #3 - bl __modsi3 - adds r0, r0, r4 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r5, r0 - movs r4, #0x18 - ands r5, r4 - adds r0, r6, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08020ABA - adds r0, r6, #0 - bl sub_08049EE4 - adds r0, #4 - ands r0, r4 - movs r1, #0x10 - eors r1, r5 - cmp r1, r0 - bne _08020ABA - adds r5, r1, #0 -_08020ABA: - strb r5, [r6, #0x15] - lsrs r0, r5, #3 - strb r0, [r6, #0x14] - ldrb r1, [r6, #0x14] - adds r0, r6, #0 - bl UpdateSprite - pop {r4, r5, r6, pc} - .align 2, 0 -_08020ACC: .4byte gUnk_080CA6D4 - - thumb_func_start sub_08020AD0 -sub_08020AD0: @ 0x08020AD0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08020B6C - cmp r0, #0 - beq _08020B68 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08020B68 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _08020B5C @ =gRoomControls - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r2, #0x3f - ands r5, r2 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r5, r0 - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r5, #0 - bl sub_080002B0 - lsls r0, r0, #0x10 - ldr r1, _08020B60 @ =0xFF8F0000 - adds r0, r0, r1 - lsrs r0, r0, #0x10 - cmp r0, #1 - bhi _08020B68 - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrh r2, [r4, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - adds r0, #8 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - ands r1, r0 - adds r1, #0xd - strh r1, [r4, #0x32] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r4, #0x14] - adds r1, #0x14 - adds r0, r4, #0 - bl UpdateSprite - ldr r0, _08020B64 @ =0x00004034 - ldrb r2, [r6] - adds r1, r5, #0 - bl UpdateCollisionLayer - movs r0, #1 - b _08020B6A - .align 2, 0 -_08020B5C: .4byte gRoomControls -_08020B60: .4byte 0xFF8F0000 -_08020B64: .4byte 0x00004034 -_08020B68: - movs r0, #0 -_08020B6A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08020B6C -sub_08020B6C: @ 0x08020B6C - push {lr} - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x10 - cmp r0, #3 - bls _08020B7C - movs r0, #0 - b _08020B7E -_08020B7C: - movs r0, #1 -_08020B7E: - pop {pc} - - thumb_func_start sub_08020B80 -sub_08020B80: @ 0x08020B80 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08020B9C @ =gUnk_080CAA98 - bl sub_0800129E - movs r3, #0x16 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - 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 sub_080042B8 - 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 sub_080042B8 -_08020E26: - pop {r4, pc} - - thumb_func_start sub_08020E28 -sub_08020E28: @ 0x08020E28 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - 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 sub_080042B8 - 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 sub_080042B8 - 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 sub_080042B8 - 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 sub_080042B8 -_08020FE2: - pop {pc} - - thumb_func_start sub_08020FE4 -sub_08020FE4: @ 0x08020FE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - 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 sub_080042B8 - 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 sub_080042B8 - 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 sub_080042B8 - 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 sub_080042B8 - 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 sub_080042B8 -_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 sub_080042B8 - 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 sub_080042B8 - 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 sub_080042B8 - 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 LoadAnimation -_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 sub_080042B8 -_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 sub_080042B8 -_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 - - thumb_func_start sub_080216D4 -sub_080216D4: @ 0x080216D4 - push {lr} - ldr r1, _080216E0 @ =gUnk_080CB570 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080216E0: .4byte gUnk_080CB570 - - thumb_func_start sub_080216E4 -sub_080216E4: @ 0x080216E4 - push {lr} - ldr r2, _080216F8 @ =gUnk_080CB588 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080216F8: .4byte gUnk_080CB588 - - thumb_func_start sub_080216FC -sub_080216FC: @ 0x080216FC - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802171A - adds r0, r2, #0 - movs r1, #3 - movs r2, #0x80 - bl CreateFx - bl sub_0805E780 -_0802171A: - pop {pc} - - thumb_func_start nullsub_7 -nullsub_7: @ 0x0802171C - bx lr - .align 2, 0 - - thumb_func_start sub_08021720 -sub_08021720: @ 0x08021720 - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - ldrb r1, [r0, #0xa] - strb r1, [r0, #0x1e] - ldrb r2, [r0, #0x19] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0, #0x19] - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #3 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start nullsub_08 -nullsub_08: @ 0x08021754 - bx lr - .align 2, 0 - - thumb_func_start sub_08021758 -sub_08021758: @ 0x08021758 - push {lr} - ldr r1, _08021764 @ =gUnk_080CB590 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08021764: .4byte gUnk_080CB590 - - thumb_func_start sub_08021768 -sub_08021768: @ 0x08021768 - push {lr} - ldr r2, _0802177C @ =gUnk_080CB5A8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802177C: .4byte gUnk_080CB5A8 - - thumb_func_start sub_08021780 -sub_08021780: @ 0x08021780 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - beq _08021792 - cmp r0, #0x93 - beq _080217F4 - b _080217FA -_08021792: - ldr r0, _080217A4 @ =gLinkState - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x18 - bne _080217A8 - adds r0, r4, #0 - bl sub_08021768 - b _080217FA - .align 2, 0 -_080217A4: .4byte gLinkState -_080217A8: - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0xb4 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands 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, #3 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080217EC @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA6C - ldr r0, _080217F0 @ =0x0000FFFF - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x87 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #6 - bl UpdateSprite - b _080217FA - .align 2, 0 -_080217EC: .4byte gLinkEntity -_080217F0: .4byte 0x0000FFFF -_080217F4: - adds r0, r4, #0 - bl sub_08021768 -_080217FA: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _08021808 - subs r0, #3 - strb r1, [r0] -_08021808: - ldr r1, _08021814 @ =gUnk_080CB590 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08021814: .4byte gUnk_080CB590 - - thumb_func_start sub_08021818 -sub_08021818: @ 0x08021818 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xa] - cmp r0, #0 - bne _0802182A - adds r0, r3, #0 - bl sub_0804A7D4 - b _08021844 -_0802182A: - ldr r2, [r3, #0x50] - cmp r2, #0 - beq _0802183A - ldrb r0, [r2, #0xf] - subs r0, #1 - movs r1, #0 - strb r0, [r2, #0xf] - str r1, [r3, #0x50] -_0802183A: - adds r0, r3, #0 - movs r1, #0xf0 - movs r2, #0 - bl sub_0804A7E0 -_08021844: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08021848 -sub_08021848: @ 0x08021848 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - adds r1, r0, #0 - cmp r1, #0 - beq _0802186C - ldr r0, _08021868 @ =gUnk_080CB5C8 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0802187A - .align 2, 0 -_08021868: .4byte gUnk_080CB5C8 -_0802186C: - movs r0, #3 - strb r0, [r4, #0xc] - strh r1, [r4, #0x36] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite -_0802187A: - pop {r4, pc} - - thumb_func_start sub_0802187C -sub_0802187C: @ 0x0802187C - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start nullsub_130 -nullsub_130: @ 0x08021884 - bx lr - .align 2, 0 - - thumb_func_start sub_08021888 -sub_08021888: @ 0x08021888 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0802189A - adds r0, r4, #0 - bl sub_08021818 -_0802189A: - pop {r4, pc} - - thumb_func_start sub_0802189C -sub_0802189C: @ 0x0802189C - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0x1c] - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite - pop {r4, pc} - - thumb_func_start sub_080218B4 -sub_080218B4: @ 0x080218B4 - push {lr} - ldr r2, _080218C8 @ =gUnk_080CB5D4 - ldrb r1, [r0, #0xb] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080218C8: .4byte gUnk_080CB5D4 - - thumb_func_start sub_080218CC -sub_080218CC: @ 0x080218CC - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _08021916 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - adds r4, r0, #0 - bl Random - movs r1, #0x10 - eors r4, r1 - ldr r2, _08021980 @ =gUnk_080CB5DC - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - movs r0, #0x90 - lsls r0, r0, #9 - str r0, [r5, #0x20] -_08021916: - adds r0, r5, #0 - bl sub_08004274 - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r6, #1 - adds r0, r6, #0 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _08021948 - adds r0, r5, #0 - bl sub_080AEFE0 - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r5, #0 - bl sub_080044EC - cmp r0, #0 - bne _08021948 - adds r0, r5, #0 - adds r0, #0x59 - strb r6, [r0] -_08021948: - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802197C - movs r0, #2 - strb r0, [r5, #0xc] - bl Random - movs r1, #0x38 - ands r0, r1 - adds r0, #8 - strb r0, [r5, #0xe] - movs r0, #1 - strb r0, [r5, #0xf] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - movs r1, #0 - bl UpdateSprite -_0802197C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08021980: .4byte gUnk_080CB5DC - - thumb_func_start sub_08021984 -sub_08021984: @ 0x08021984 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080219C2 - movs r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, _08021A08 @ =0x0000FF80 - strh r0, [r4, #0x36] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - ldr r0, _08021A0C @ =0x0000012D - bl sub_08004488 -_080219C2: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08021A04 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x86 - movs r0, #0x3c - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip -_08021A04: - pop {r4, pc} - .align 2, 0 -_08021A08: .4byte 0x0000FF80 -_08021A0C: .4byte 0x0000012D - - thumb_func_start sub_08021A10 -sub_08021A10: @ 0x08021A10 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r1, _08021A60 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0x78 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _08021A5E - adds r0, r4, #0 - bl sub_08021D00 - cmp r0, #0 - bne _08021A5E - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08021A5E - movs r0, #3 - strb r0, [r4, #0xc] - bl Random - movs r1, #0x3f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_08021D44 - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite -_08021A5E: - pop {r4, pc} - .align 2, 0 -_08021A60: .4byte gLinkEntity - - thumb_func_start sub_08021A64 -sub_08021A64: @ 0x08021A64 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08021D00 - cmp r0, #0 - bne _08021AD4 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08021A96 - movs r0, #2 - strb r0, [r4, #0xc] - bl Random - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_08021A96: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _08021AC8 - movs r0, #8 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #0 - cmp r1, #0xff - bne _08021AC2 - movs r0, #7 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - b _08021AD4 -_08021AC2: - adds r0, r4, #0 - bl sub_08021D44 -_08021AC8: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 -_08021AD4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08021AD8 -sub_08021AD8: @ 0x08021AD8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08021B3A - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08021B1E - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - cmp r0, #0xff - bne _08021B16 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - b _08021B60 -_08021B16: - strb r0, [r4, #0x15] - movs r0, #0x7c - bl sub_08004488 -_08021B1E: - adds r0, r4, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08021B3A - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #1 - strb r0, [r1] -_08021B3A: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08021B60 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x14 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x86 - movs r0, #0x3c - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_08021B60: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08021B64 -sub_08021B64: @ 0x08021B64 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _08021B88 @ =gLinkState - ldr r1, [r0, #0x30] - movs r2, #4 - ands r1, r2 - adds r6, r0, #0 - cmp r1, #0 - beq _08021B8C - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - str r1, [r4, #0x34] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite - b _08021C4E - .align 2, 0 -_08021B88: .4byte gLinkState -_08021B8C: - movs r5, #1 - adds r0, r6, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0xb - beq _08021BBA - cmp r0, #0x14 - beq _08021BBA - bl sub_0807953C - cmp r0, #0 - beq _08021BAE - ldrb r1, [r4, #0xa] - lsls r0, r1, #1 - adds r0, r0, r1 - adds r5, r0, #0 - adds r5, #8 -_08021BAE: - ldrb r0, [r4, #0xe] - subs r5, r0, r5 - cmp r5, #0 - bge _08021BB8 - movs r5, #0 -_08021BB8: - strb r5, [r4, #0xe] -_08021BBA: - ldr r0, [r6, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08021BC8 - movs r5, #0 -_08021BC8: - cmp r5, #0 - bne _08021C04 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x87 - strb r5, [r0] - ldr r2, _08021BEC @ =gLinkEntity - ldrb r1, [r2, #0x15] - adds r0, r1, #0 - cmp r0, #0xff - beq _08021BF0 - movs r0, #0x10 - b _08021BF6 - .align 2, 0 -_08021BEC: .4byte gLinkEntity -_08021BF0: - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 -_08021BF6: - eors r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #5 - bl UpdateSprite - b _08021C4E -_08021C04: - ldrb r1, [r6, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r6, #0x1a] - adds r1, r6, #0 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #0x50 - strh r0, [r1] - adds r1, #0x2a - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, _08021C50 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA6C - ldr r2, _08021C54 @ =gUnk_080CB5E4 - ldrb r1, [r4, #0xf] - adds r0, r1, #1 - strb r0, [r4, #0xf] - movs r0, #0xe - ands r0, r1 - lsrs r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 -_08021C4E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08021C50: .4byte gLinkEntity -_08021C54: .4byte gUnk_080CB5E4 - - thumb_func_start sub_08021C58 -sub_08021C58: @ 0x08021C58 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08021C8A - adds r0, r4, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08021C8A - adds r0, r4, #0 - adds r0, #0x59 - strb r5, [r0] -_08021C8A: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08021CCC - movs r0, #2 - strb r0, [r4, #0xc] - movs r2, #0x3c - strb r2, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x86 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_08021CCC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08021CD0 -sub_08021CD0: @ 0x08021CD0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08021CE6 - adds r0, r4, #0 - bl sub_08004274 -_08021CE6: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - cmp r0, #0xff - beq _08021CFE - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite -_08021CFE: - pop {r4, pc} - - thumb_func_start sub_08021D00 -sub_08021D00: @ 0x08021D00 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrb r0, [r1] - cmp r0, #0 - beq _08021D16 - subs r0, #1 - strb r0, [r1] - movs r0, #0 - b _08021D40 -_08021D16: - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x10 - bl sub_08049F64 - cmp r0, #0 - bne _08021D28 - movs r0, #0 - b _08021D40 -_08021D28: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #4 - bl UpdateSprite - movs r0, #1 -_08021D40: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08021D44 -sub_08021D44: @ 0x08021D44 - push {lr} - adds r2, r0, #0 - adds r1, #4 - movs r0, #0x18 - ands r1, r0 - strb r1, [r2, #0x15] - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _08021D5E - movs r0, #0xc0 - lsls r0, r0, #1 - b _08021D60 -_08021D5E: - movs r0, #0xc0 -_08021D60: - strh r0, [r2, #0x24] - pop {pc} - - thumb_func_start sub_08021D64 -sub_08021D64: @ 0x08021D64 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08021D7C @ =gUnk_080CB69C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_08021D7C: .4byte gUnk_080CB69C - - thumb_func_start sub_08021D80 -sub_08021D80: @ 0x08021D80 - push {lr} - ldr r2, _08021D94 @ =gUnk_080CB6B4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08021D94: .4byte gUnk_080CB6B4 - - thumb_func_start sub_08021D98 -sub_08021D98: @ 0x08021D98 - push {lr} - ldr r1, _08021DA4 @ =gUnk_080CB69C - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08021DA4: .4byte gUnk_080CB69C - - thumb_func_start sub_08021DA8 -sub_08021DA8: @ 0x08021DA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08021DC4 - ldr r0, _08021DC8 @ =gUnk_080CB6C4 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08021DC4: - pop {r4, pc} - .align 2, 0 -_08021DC8: .4byte gUnk_080CB6C4 - - thumb_func_start sub_08021DCC -sub_08021DCC: @ 0x08021DCC - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_08021DD4 -sub_08021DD4: @ 0x08021DD4 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08021DDC -sub_08021DDC: @ 0x08021DDC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08021DEE - adds r0, r4, #0 - bl sub_0804A7D4 -_08021DEE: - pop {r4, pc} - - thumb_func_start sub_08021DF0 -sub_08021DF0: @ 0x08021DF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08021E14 - 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] - ldr r0, _08021E48 @ =0x0000FFF0 - strh r0, [r4, #0x36] -_08021E14: - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #1 - strb r0, [r4, #0x1c] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r4, #0 - bl sub_08021EF0 - pop {r4, pc} - .align 2, 0 -_08021E48: .4byte 0x0000FFF0 - - thumb_func_start sub_08021E4C -sub_08021E4C: @ 0x08021E4C - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - cmp r0, #0 - beq _08021E5E - subs r0, #1 - strh r0, [r1] -_08021E5E: - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0 - beq _08021E6C - subs r0, #1 - strh r0, [r1] -_08021E6C: - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - beq _08021E8A - adds r0, r4, #0 - bl sub_08021F24 - b _08021E90 -_08021E8A: - adds r0, r4, #0 - bl sub_080AEFB4 -_08021E90: - ldr r1, _08021EA0 @ =gUnk_080CB6D0 - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x63 - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_08021EA0: .4byte gUnk_080CB6D0 - - thumb_func_start sub_08021EA4 -sub_08021EA4: @ 0x08021EA4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08021EBA - adds r0, r1, #0 - bl sub_08021EF0 -_08021EBA: - pop {pc} - - thumb_func_start sub_08021EBC -sub_08021EBC: @ 0x08021EBC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08021ECC - subs r0, #1 - strb r0, [r4, #0xe] - b _08021EE8 -_08021ECC: - ldr r0, _08021EEC @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x70 - bl sub_0806FCB8 - cmp r0, #0 - beq _08021EE8 - adds r0, r4, #0 - bl sub_08021EF0 -_08021EE8: - pop {r4, pc} - .align 2, 0 -_08021EEC: .4byte gLinkEntity - - thumb_func_start sub_08021EF0 -sub_08021EF0: @ 0x08021EF0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - ldr r2, _08021F20 @ =gUnk_080CB6D6 - movs r1, #0xf - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - pop {r4, pc} - .align 2, 0 -_08021F20: .4byte gUnk_080CB6D6 - - thumb_func_start sub_08021F24 -sub_08021F24: @ 0x08021F24 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r0, #0 - bne _08021F48 - movs r0, #2 - strb r0, [r4, #0xc] - bl Random - ldr r2, _08021F44 @ =gUnk_080CB6F6 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - b _08021F6E - .align 2, 0 -_08021F44: .4byte gUnk_080CB6F6 -_08021F48: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - bne _08021F80 - ldr r0, _08021F7C @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x70 - bl sub_0806FCB8 - cmp r0, #0 - bne _08021F80 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e -_08021F6E: - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - b _08021FA4 - .align 2, 0 -_08021F7C: .4byte gLinkEntity -_08021F80: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _08021F94 - bl Random - movs r1, #0x1f - ands r0, r1 - b _08021F9A -_08021F94: - adds r0, r4, #0 - bl sub_08049EE4 -_08021F9A: - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_08021FA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08021FA8 -sub_08021FA8: @ 0x08021FA8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08021FD4 @ =gUnk_080CB734 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r1, _08021FD8 @ =gUnk_080CB8A4 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r4, #0x1e] - ldr r0, [r0] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r4, #0x48] - pop {r4, r5, pc} - .align 2, 0 -_08021FD4: .4byte gUnk_080CB734 -_08021FD8: .4byte gUnk_080CB8A4 - - thumb_func_start sub_08021FDC -sub_08021FDC: @ 0x08021FDC - push {lr} - ldr r2, _08021FF0 @ =gUnk_080CB74C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08021FF0: .4byte gUnk_080CB74C - - thumb_func_start sub_08021FF4 -sub_08021FF4: @ 0x08021FF4 - push {lr} - ldr r1, _08022000 @ =gUnk_080CB734 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08022000: .4byte gUnk_080CB734 - - thumb_func_start sub_08022004 -sub_08022004: @ 0x08022004 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x7e - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl UpdateCollisionLayer - adds r0, r4, #0 - movs r1, #5 - movs r2, #0 - bl CreateFx - adds r0, r4, #0 - bl sub_08049CF4 - bl sub_0805E780 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08022034 -sub_08022034: @ 0x08022034 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - movs r0, #3 - ands r0, r1 - strb r0, [r4, #0xb] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r2] - ldr r2, _08022098 @ =gUnk_080CB764 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_080221C0 - pop {r4, pc} - .align 2, 0 -_08022098: .4byte gUnk_080CB764 - - thumb_func_start sub_0802209C -sub_0802209C: @ 0x0802209C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080220D2 - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x7a - ldrh r1, [r1] - movs r2, #0x10 - movs r3, #0x10 - bl sub_0806FBFC - cmp r0, #0 - beq _080220D6 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x12 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xb] - adds r1, #4 - adds r0, r4, #0 - bl UpdateSprite - b _080220D6 -_080220D2: - subs r0, #1 - strb r0, [r4, #0xe] -_080220D6: - pop {r4, pc} - - thumb_func_start sub_080220D8 -sub_080220D8: @ 0x080220D8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080220EC - movs r0, #3 - strb r0, [r1, #0xc] -_080220EC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080220F0 -sub_080220F0: @ 0x080220F0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08022160 - movs r1, #0 - movs r0, #4 - strb r0, [r5, #0xc] - movs r0, #0x78 - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x44 - strb r1, [r0] - ldrb r1, [r5, #0xb] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0802215C @ =gUnk_080CB76C - adds r4, r0, r1 - movs r6, #0 -_08022124: - adds r0, r5, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFx - adds r1, r0, #0 - cmp r1, #0 - beq _08022148 - movs r0, #0 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] -_08022148: - adds r6, #1 - adds r4, #2 - cmp r6, #5 - bls _08022124 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 - b _08022170 - .align 2, 0 -_0802215C: .4byte gUnk_080CB76C -_08022160: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08022170 - adds r1, r5, #0 - adds r1, #0x44 - movs r0, #4 - strb r0, [r1] -_08022170: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08022174 -sub_08022174: @ 0x08022174 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08022196 - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xb] - adds r1, #8 - adds r0, r4, #0 - bl UpdateSprite -_08022196: - pop {r4, pc} - - thumb_func_start sub_08022198 -sub_08022198: @ 0x08022198 - push {r4, lr} - adds r4, r0, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080221BC - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] -_080221BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080221C0 -sub_080221C0: @ 0x080221C0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r4, [r6, r0] - ldr r1, _08022220 @ =gRoomControls - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r6, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r1, _08022224 @ =gUnk_080B4488 - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - adds r4, r4, r0 - adds r0, r6, #0 - adds r0, #0x7e - strh r4, [r0] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x7c - strh r0, [r1] - ldr r1, _08022228 @ =gUnk_080CB79C - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrb r2, [r5] - adds r1, r4, #0 - bl UpdateCollisionLayer - pop {r4, r5, r6, pc} - .align 2, 0 -_08022220: .4byte gRoomControls -_08022224: .4byte gUnk_080B4488 -_08022228: .4byte gUnk_080CB79C - - thumb_func_start sub_0802222C -sub_0802222C: @ 0x0802222C - push {lr} - ldr r1, _08022238 @ =gUnk_080CB948 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08022238: .4byte gUnk_080CB948 - - thumb_func_start sub_0802223C -sub_0802223C: @ 0x0802223C - push {lr} - ldr r2, _08022250 @ =gUnk_080CB960 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08022250: .4byte gUnk_080CB960 - - thumb_func_start sub_08022254 -sub_08022254: @ 0x08022254 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08022344 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #4 - cmp r0, #0x18 - bhi _08022356 - lsls r0, r0, #2 - ldr r1, _0802227C @ =_08022280 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802227C: .4byte _08022280 -_08022280: @ jump table - .4byte _080222E4 @ case 0 - .4byte _080222E4 @ case 1 - .4byte _080222E4 @ case 2 - .4byte _08022356 @ case 3 - .4byte _080222E4 @ case 4 - .4byte _080222E4 @ case 5 - .4byte _080222E4 @ case 6 - .4byte _080222E4 @ case 7 - .4byte _080222E4 @ case 8 - .4byte _080222E4 @ case 9 - .4byte _08022356 @ case 10 - .4byte _08022356 @ case 11 - .4byte _080222E4 @ case 12 - .4byte _080222E4 @ case 13 - .4byte _080222E4 @ case 14 - .4byte _08022356 @ case 15 - .4byte _08022356 @ case 16 - .4byte _08022356 @ case 17 - .4byte _080222F2 @ case 18 - .4byte _08022356 @ case 19 - .4byte _080222E4 @ case 20 - .4byte _080222E4 @ case 21 - .4byte _080222E4 @ case 22 - .4byte _08022356 @ case 23 - .4byte _080222F2 @ case 24 -_080222E4: - ldr r0, _08022340 @ =gLinkState - adds r0, #0xac - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08022356 -_080222F2: - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - movs r0, #1 - movs r1, #1 - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _08022356 - movs r0, #1 - strb r0, [r5, #0xb] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xf8 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0804A4E4 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] - str r5, [r4, #0x54] - b _08022356 - .align 2, 0 -_08022340: .4byte gLinkState -_08022344: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x94 - beq _08022356 - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite -_08022356: - ldr r1, _08022360 @ =gUnk_080CB948 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08022360: .4byte gUnk_080CB948 - - thumb_func_start nullsub_131 -nullsub_131: @ 0x08022364 - bx lr - .align 2, 0 - - thumb_func_start sub_08022368 -sub_08022368: @ 0x08022368 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08022390 -sub_08022390: @ 0x08022390 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080223D4 - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _080223C0 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - bl Random - movs r1, #4 - ands r0, r1 - strb r0, [r4, #0xf] -_080223C0: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080223CE - adds r0, r4, #0 - bl sub_080AEF88 - b _080223DA -_080223CE: - subs r0, #1 - strb r0, [r4, #0xf] - b _080223DA -_080223D4: - bl Random - strb r0, [r4, #0xe] -_080223DA: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080223E4 -sub_080223E4: @ 0x080223E4 - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x54] - cmp r2, #0 - beq _0802240A - adds r1, r2, #0 - adds r1, #0x41 - movs r0, #0x94 - strb r0, [r1] - subs r1, #4 - movs r0, #0x10 - strb r0, [r1] - adds r1, #5 - movs r0, #0xc - strb r0, [r1] - ldrb r1, [r3, #0x15] - adds r0, r2, #0 - adds r0, #0x3e - strb r1, [r0] -_0802240A: - adds r0, r3, #0 - bl sub_0805E7BC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08022414 -sub_08022414: @ 0x08022414 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08022430 @ =gUnk_080CBA28 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08022430: .4byte gUnk_080CBA28 - - thumb_func_start sub_08022434 -sub_08022434: @ 0x08022434 - push {lr} - ldr r2, _08022448 @ =gUnk_080CBA40 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08022448: .4byte gUnk_080CBA40 - - thumb_func_start sub_0802244C -sub_0802244C: @ 0x0802244C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x45 - ldrb r0, [r5] - cmp r0, #0 - bne _0802245C - b _08022582 -_0802245C: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0x65 - bne _08022522 - adds r0, #2 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #2 - cmp r0, #0x18 - bhi _08022540 - lsls r0, r0, #2 - ldr r1, _08022480 @ =_08022484 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08022480: .4byte _08022484 -_08022484: @ jump table - .4byte _080224E8 @ case 0 - .4byte _080224E8 @ case 1 - .4byte _08022540 @ case 2 - .4byte _08022540 @ case 3 - .4byte _08022540 @ case 4 - .4byte _08022540 @ case 5 - .4byte _08022508 @ case 6 - .4byte _08022508 @ case 7 - .4byte _08022508 @ case 8 - .4byte _08022508 @ case 9 - .4byte _08022508 @ case 10 - .4byte _08022540 @ case 11 - .4byte _08022540 @ case 12 - .4byte _08022540 @ case 13 - .4byte _08022540 @ case 14 - .4byte _08022540 @ case 15 - .4byte _08022540 @ case 16 - .4byte _08022540 @ case 17 - .4byte _08022540 @ case 18 - .4byte _08022540 @ case 19 - .4byte _08022508 @ case 20 - .4byte _08022540 @ case 21 - .4byte _08022508 @ case 22 - .4byte _08022508 @ case 23 - .4byte _08022508 @ case 24 -_080224E8: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xf] - movs r0, #0x5c - strb r0, [r6] - ldr r0, _08022504 @ =gUnk_080FD468 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - b _08022540 - .align 2, 0 -_08022504: .4byte gUnk_080FD468 -_08022508: - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x5c - strb r0, [r6] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - b _08022540 -_08022522: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x94 - bne _08022540 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite -_08022540: - adds r0, r4, #0 - adds r0, #0x80 - adds r1, r4, #0 - adds r1, #0x45 - ldrb r2, [r0] - adds r5, r1, #0 - adds r7, r0, #0 - ldrb r0, [r5] - cmp r2, r0 - beq _08022566 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x5c - strb r0, [r6] - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - b _0802258E -_08022566: - ldrb r0, [r4, #0xc] - cmp r0, #3 - bne _0802258E - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite - movs r0, #0xca - lsls r0, r0, #1 - bl sub_08004488 - b _0802258E -_08022582: - adds r0, r4, #0 - movs r1, #1 - bl UpdateSprite - adds r7, r4, #0 - adds r7, #0x80 -_0802258E: - ldrb r0, [r5] - strb r0, [r7] - ldr r1, _0802259C @ =gUnk_080CBA28 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802259C: .4byte gUnk_080CBA28 - - thumb_func_start sub_080225A0 -sub_080225A0: @ 0x080225A0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _080225B2 - adds r0, r4, #0 - bl sub_08004274 -_080225B2: - adds r0, r4, #0 - bl sub_08001318 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080225BC -sub_080225BC: @ 0x080225BC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080225DE - adds r0, r4, #0 - bl sub_0804A7D4 - b _080225E4 -_080225DE: - adds r0, r4, #0 - bl sub_08004274 -_080225E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_9 -nullsub_9: @ 0x080225E8 - bx lr - .align 2, 0 - - thumb_func_start sub_080225EC -sub_080225EC: @ 0x080225EC - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r0, #0x3b - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x5a - strb r0, [r1] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0802261A - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - b _0802264C -_0802261A: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - ldr r0, _08022650 @ =0x0000FF80 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #6 - bl UpdateSprite -_0802264C: - pop {r4, pc} - .align 2, 0 -_08022650: .4byte 0x0000FF80 - - thumb_func_start sub_08022654 -sub_08022654: @ 0x08022654 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0802268C - cmp r0, #1 - bgt _08022668 - cmp r0, #0 - beq _0802266E - b _080226E4 -_08022668: - cmp r0, #2 - beq _080226BE - b _080226E4 -_0802266E: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080226E4 - movs r0, #1 - strb r0, [r4, #0xd] - ldr r0, _080226E8 @ =0x0000012D - bl PlaySFX - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_0802268C: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080226E4 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #5 - bl UpdateSprite - movs r0, #0x7d - bl sub_08004488 - adds r0, r4, #0 - bl UpdateSpriteOrderAndFlip -_080226BE: - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080226E4 - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x65 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite -_080226E4: - pop {r4, pc} - .align 2, 0 -_080226E8: .4byte 0x0000012D - - thumb_func_start sub_080226EC -sub_080226EC: @ 0x080226EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08022776 - adds r0, r4, #0 - bl sub_080228CC - cmp r0, #0 - beq _0802271A - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x65 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl UpdateSprite - b _0802277C -_0802271A: - adds r0, r4, #0 - bl sub_080228F0 - cmp r0, #0 - beq _08022758 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x90 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r0, _08022754 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x5a - strb r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl UpdateSprite - b _0802277C - .align 2, 0 -_08022754: .4byte gUnk_020000B0 -_08022758: - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08022770 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] -_08022770: - adds r0, r4, #0 - bl sub_080AEF88 -_08022776: - adds r0, r4, #0 - bl sub_08004274 -_0802277C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08022780 -sub_08022780: @ 0x08022780 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080227AA - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl UpdateSprite - movs r0, #0xca - lsls r0, r0, #1 - bl sub_08004488 -_080227AA: - pop {r4, pc} - - thumb_func_start sub_080227AC -sub_080227AC: @ 0x080227AC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080227CC - ldr r0, _080227C8 @ =gUnk_080FD470 - b _080227CE - .align 2, 0 -_080227C8: .4byte gUnk_080FD470 -_080227CC: - ldr r0, _08022814 @ =gUnk_080FD468 -_080227CE: - str r0, [r4, #0x48] - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r3, #2 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _080227EE - movs r0, #0xfd - ands r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x5c - strb r0, [r1] -_080227EE: - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08022812 - strb r3, [r4, #0xc] - bl Random - ldr r2, _08022818 @ =gUnk_080CBA60 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_08022812: - pop {r4, pc} - .align 2, 0 -_08022814: .4byte gUnk_080FD468 -_08022818: .4byte gUnk_080CBA60 - - thumb_func_start sub_0802281C -sub_0802281C: @ 0x0802281C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08022852 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x20 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite - adds r0, r4, #0 - bl sub_0804AA1C -_08022852: - pop {r4, pc} - - thumb_func_start sub_08022854 -sub_08022854: @ 0x08022854 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08022898 - adds r0, r4, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08022898 - movs r0, #7 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x5c - strb r0, [r1] - adds r0, r4, #0 - movs r1, #5 - bl UpdateSprite - movs r0, #0x7d - bl sub_08004488 -_08022898: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802289C -sub_0802289C: @ 0x0802289C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080228CA - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x20 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x78 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl UpdateSprite -_080228CA: - pop {r4, pc} - - thumb_func_start sub_080228CC -sub_080228CC: @ 0x080228CC - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xf] - cmp r0, #0 - bne _080228E8 - adds r0, r1, #0 - movs r1, #1 - movs r2, #0x28 - bl sub_08049F64 - cmp r0, #0 - beq _080228EC - movs r0, #1 - b _080228EE -_080228E8: - subs r0, #1 - strb r0, [r1, #0xf] -_080228EC: - movs r0, #0 -_080228EE: - pop {pc} - - thumb_func_start sub_080228F0 -sub_080228F0: @ 0x080228F0 - push {lr} - adds r1, r0, #0 - adds r2, r1, #0 - adds r2, #0x81 - ldrb r0, [r2] - cmp r0, #0 - bne _08022910 - adds r0, r1, #0 - movs r1, #1 - movs r2, #0x40 - bl sub_08049F64 - cmp r0, #0 - beq _08022914 - movs r0, #1 - b _08022916 -_08022910: - subs r0, #1 - strb r0, [r2] -_08022914: - movs r0, #0 -_08022916: - pop {pc} - - thumb_func_start sub_08022918 -sub_08022918: @ 0x08022918 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08022930 @ =gUnk_080CBB64 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - pop {r4, r5, pc} - .align 2, 0 -_08022930: .4byte gUnk_080CBB64 - - thumb_func_start sub_08022934 -sub_08022934: @ 0x08022934 - push {lr} - ldr r2, _08022948 @ =gUnk_080CBB7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08022948: .4byte gUnk_080CBB7C - - thumb_func_start sub_0802294C -sub_0802294C: @ 0x0802294C - push {lr} - ldr r1, _08022958 @ =gUnk_080CBB64 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08022958: .4byte gUnk_080CBB64 - - thumb_func_start nullsub_132 -nullsub_132: @ 0x0802295C - bx lr - .align 2, 0 - - thumb_func_start sub_08022960 -sub_08022960: @ 0x08022960 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - bl sub_08022A88 - pop {r4, pc} - - thumb_func_start sub_08022970 -sub_08022970: @ 0x08022970 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08022986 - adds r0, r1, #0 - bl sub_08022AA4 -_08022986: - pop {pc} - - thumb_func_start sub_08022988 -sub_08022988: @ 0x08022988 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _080229A6 - adds r0, r4, #0 - bl sub_08022B20 - cmp r0, #0 - beq _080229A6 - adds r0, r4, #0 - bl sub_08022B0C - b _080229F6 -_080229A6: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080229C6 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080229F6 - movs r0, #1 - strb r0, [r4, #0x1e] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0xd6 - bl sub_08004488 -_080229C6: - adds r0, r4, #0 - bl sub_080AEF88 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - adds r1, r0, #0 - cmp r1, #0 - bne _080229F6 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080229F0 - adds r0, r4, #0 - bl sub_08022A88 - b _080229F6 -_080229F0: - movs r0, #4 - strb r0, [r4, #0xf] - strb r1, [r4, #0x1e] -_080229F6: - pop {r4, pc} - - thumb_func_start sub_080229F8 -sub_080229F8: @ 0x080229F8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _08022A3C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08022A30 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - strb r1, [r4, #0x1e] - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08022B44 - b _08022A3C -_08022A30: - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0xd6 - bl sub_08004488 -_08022A3C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08022A40 -sub_08022A40: @ 0x08022A40 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08022A58 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08022A86 - movs r0, #1 - strb r0, [r4, #0x1e] -_08022A58: - adds r0, r4, #0 - bl sub_080AEF88 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08022A86 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08022A80 - adds r0, r4, #0 - bl sub_08022A88 - b _08022A86 -_08022A80: - adds r0, r4, #0 - bl sub_08022B44 -_08022A86: - pop {r4, pc} - - thumb_func_start sub_08022A88 -sub_08022A88: @ 0x08022A88 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - movs r1, #0xf - ands r0, r1 - adds r0, #8 - strb r0, [r4, #0xe] - strb r5, [r4, #0x1e] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08022AA4 -sub_08022AA4: @ 0x08022AA4 - push {r4, r5, lr} - adds r4, r0, #0 - bl Random - adds r5, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r1, #3 - adds r0, r5, #0 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08022AE0 - lsrs r0, r5, #8 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08022AE0 - adds r0, r4, #0 - bl sub_08049EE4 - b _08022AE6 -_08022AE0: - lsrs r0, r5, #0x10 - movs r1, #0x1f - ands r0, r1 -_08022AE6: - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _08022B08 - 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] -_08022B08: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08022B0C -sub_08022B0C: @ 0x08022B0C - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - strb r1, [r0, #0xe] - movs r1, #8 - strb r1, [r0, #0xf] - bl sub_08022B44 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08022B20 -sub_08022B20: @ 0x08022B20 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl sub_08049DF4 - cmp r0, #0 - beq _08022B40 - ldr r1, _08022B3C @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0x24 - movs r3, #0x24 - bl sub_080041A0 - b _08022B42 - .align 2, 0 -_08022B3C: .4byte gLinkEntity -_08022B40: - movs r0, #0 -_08022B42: - pop {r4, pc} - - thumb_func_start sub_08022B44 -sub_08022B44: @ 0x08022B44 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #8 - str r0, [r4, #0x20] - ldr r1, _08022B84 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - strb r1, [r4, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _08022B7A - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1c - 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] -_08022B7A: - movs r0, #0xd6 - bl sub_08004488 - pop {r4, pc} - .align 2, 0 -_08022B84: .4byte gLinkEntity - - thumb_func_start sub_08022B88 -sub_08022B88: @ 0x08022B88 - push {lr} - ldr r2, _08022B9C @ =gUnk_080CBB90 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08022B9C: .4byte gUnk_080CBB90 - - thumb_func_start sub_08022BA0 -sub_08022BA0: @ 0x08022BA0 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - 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] - ldr r1, _08022BD0 @ =gUnk_080CBBA0 - adds r0, r4, #0 - bl sub_0800129E - adds r0, r4, #0 - bl sub_08022EAC - pop {r4, pc} - .align 2, 0 -_08022BD0: .4byte gUnk_080CBBA0 - - thumb_func_start sub_08022BD4 -sub_08022BD4: @ 0x08022BD4 - push {lr} - ldr r2, _08022BE8 @ =gUnk_080CBBB4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08022BE8: .4byte gUnk_080CBBB4 - - thumb_func_start sub_08022BEC -sub_08022BEC: @ 0x08022BEC - push {lr} - adds r2, r0, #0 - movs r0, #0x7a - adds r0, r0, r2 - mov ip, r0 - adds r3, r2, #0 - adds r3, #0x45 - ldrb r0, [r0] - ldrb r1, [r3] - cmp r0, r1 - beq _08022C0A - adds r1, r2, #0 - adds r1, #0x7b - movs r0, #0x1e - strb r0, [r1] -_08022C0A: - ldrb r0, [r3] - mov r1, ip - strb r0, [r1] - movs r0, #1 - strb r0, [r2, #0xe] - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r2, #0x15] - ldrb r0, [r2, #0x15] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r2, #0x14] - strb r0, [r2, #0x1e] - ldr r0, [r2, #0x54] - adds r3, r2, #0 - adds r3, #0x3d - ldrb r1, [r3] - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r2, #0x7c] - ldrb r1, [r3] - adds r0, #0x3d - strb r1, [r0] - adds r0, r2, #0 - adds r0, #0x80 - ldr r0, [r0] - ldrb r1, [r3] - adds r0, #0x3d - strb r1, [r0] - ldr r1, _08022C54 @ =gUnk_080CBBA0 - adds r0, r2, #0 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08022C54: .4byte gUnk_080CBBA0 - - thumb_func_start sub_08022C58 -sub_08022C58: @ 0x08022C58 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - ldrb r1, [r7, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r7, #0x10] - ldr r0, _08022D3C @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x44 - bhi _08022D34 - movs r0, #0xd - movs r1, #1 - bl CreateEnemy - mov sb, r0 - str r0, [r7, #0x54] - mov r2, sb - adds r2, #0x29 - ldrb r1, [r2] - movs r4, #8 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r1, #5 - mov r8, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r2] - mov r0, sb - str r7, [r0, #0x50] - adds r0, r7, #0 - mov r1, sb - bl CopyPosition - movs r0, #0xd - movs r1, #2 - bl CreateEnemy - adds r6, r0, #0 - mov r1, sb - str r6, [r1, #0x54] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - adds r0, r4, #0 - ands r0, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r2] - str r7, [r6, #0x50] - adds r0, r7, #0 - adds r1, r6, #0 - bl CopyPosition - movs r0, #0xd - movs r1, #3 - bl CreateEnemy - adds r5, r0, #0 - str r5, [r6, #0x54] - adds r1, r5, #0 - adds r1, #0x29 - ldrb r0, [r1] - ands r4, r0 - mov r0, r8 - orrs r4, r0 - strb r4, [r1] - str r7, [r5, #0x50] - adds r0, r7, #0 - adds r1, r5, #0 - bl CopyPosition - adds r0, r7, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r7, #0xc] - strb r0, [r7, #0xe] - strb r0, [r7, #0xf] - ldrb r0, [r7, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r7, #0x10] - str r7, [r7, #0x50] - mov r1, sb - str r1, [r7, #0x54] - str r6, [r7, #0x7c] - adds r0, r7, #0 - adds r0, #0x80 - str r5, [r0] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r7, #0x15] - ldrb r0, [r7, #0x15] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r7, #0x14] - strb r0, [r7, #0x1e] - adds r0, r7, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r0, #0x35 - strb r1, [r0] -_08022D34: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08022D3C: .4byte gUnk_03003DBC - - thumb_func_start sub_08022D40 -sub_08022D40: @ 0x08022D40 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x7b - ldrb r1, [r2] - cmp r1, #0 - beq _08022D66 - adds r0, r1, #0 - adds r0, #0xff - strb r0, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08022D8E - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #7 - ands r0, r1 - b _08022D8A -_08022D66: - adds r0, r4, #0 - bl sub_08022F14 - adds r0, r4, #0 - bl sub_080AEF88 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08022D8E - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - ldrb r0, [r4, #0x15] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r0, r0, #2 -_08022D8A: - strb r0, [r4, #0x14] - strb r0, [r4, #0x1e] -_08022D8E: - pop {r4, pc} - - thumb_func_start sub_08022D90 -sub_08022D90: @ 0x08022D90 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - beq _08022DE0 - ldr r1, _08022DDC @ =gUnk_080CBBBC - ldrb r0, [r5, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - ldr r4, [r5, #0x50] - ldrb r2, [r4, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - adds r4, #0x38 - ldrb r1, [r4] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - b _08022DE6 - .align 2, 0 -_08022DDC: .4byte gUnk_080CBBBC -_08022DE0: - adds r0, r5, #0 - bl sub_0805E7BC -_08022DE6: - pop {r4, r5, pc} - - thumb_func_start sub_08022DE8 -sub_08022DE8: @ 0x08022DE8 - push {lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xc] - adds r0, r3, #0 - adds r0, #0x7c - movs r1, #0x88 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - ldr r0, [r3, #0x50] - ldrb r0, [r0, #0x14] - strb r0, [r3, #0x14] - adds r2, r3, #0 - adds r2, #0x84 - ldrb r1, [r3, #0x14] - lsls r0, r1, #4 - adds r0, r0, r1 - lsls r1, r0, #8 - adds r0, r0, r1 - lsls r1, r0, #0x10 - adds r0, r0, r1 - str r0, [r2] - ldrb r0, [r3, #0xa] - cmp r0, #3 - beq _08022E38 - adds r0, #7 - b _08022E3C -_08022E38: - ldrb r0, [r3, #0x14] - adds r0, #0xa -_08022E3C: - strb r0, [r3, #0x1e] - pop {pc} - - thumb_func_start sub_08022E40 -sub_08022E40: @ 0x08022E40 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r2, [r4, #0x50] - adds r2, #0x79 - ldrb r0, [r2] - adds r0, #1 - movs r3, #7 - ands r0, r3 - adds r0, #0x7c - adds r0, r4, r0 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - subs r0, #8 - lsrs r1, r1, #4 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r5, [r4, #0x2e] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - subs r1, #8 - ldrh r0, [r4, #0x32] - adds r1, r1, r0 - strh r1, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r2] - adds r0, #1 - ands r0, r3 - lsls r0, r0, #2 - ldr r1, [r1] - lsrs r1, r0 - movs r0, #7 - ands r1, r0 - strb r1, [r4, #0x14] - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _08022EA2 - adds r0, r1, #0 - adds r0, #0xa - strb r0, [r4, #0x1e] - b _08022EA8 -_08022EA2: - adds r0, r4, #0 - bl sub_08022EAC -_08022EA8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08022EAC -sub_08022EAC: @ 0x08022EAC - push {r4, r5, lr} - mov ip, r0 - ldr r1, [r0, #0x54] - cmp r1, #0 - beq _08022F12 - ldr r0, [r0, #0x50] - adds r0, #0x79 - ldrb r0, [r0] - movs r4, #7 - adds r3, r4, #0 - ands r3, r0 - adds r3, r3, r1 - adds r3, #0x7c - mov r0, ip - ldrh r1, [r0, #0x2e] - adds r0, #0x74 - ldrb r0, [r0] - subs r1, r1, r0 - adds r1, #8 - movs r5, #0xf - ands r1, r5 - mov r2, ip - ldrh r0, [r2, #0x32] - adds r2, #0x76 - ldrb r2, [r2] - subs r0, r0, r2 - adds r0, #8 - ands r0, r5 - lsls r0, r0, #4 - adds r1, r1, r0 - strb r1, [r3] - mov r1, ip - ldr r0, [r1, #0x50] - adds r0, #0x79 - ldrb r1, [r0] - adds r0, r4, #0 - ands r0, r1 - lsls r0, r0, #2 - mov r2, ip - ldrb r1, [r2, #0x14] - ands r4, r1 - lsls r4, r0 - movs r2, #0xf - lsls r2, r0 - mov r0, ip - ldr r1, [r0, #0x54] - adds r1, #0x84 - ldr r0, [r1] - bics r0, r2 - orrs r4, r0 - str r4, [r1] -_08022F12: - pop {r4, r5, pc} - - thumb_func_start sub_08022F14 -sub_08022F14: @ 0x08022F14 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08022F4E - adds r0, r4, #0 - bl sub_08049EE4 - ldrb r1, [r4, #0x15] - subs r2, r0, r1 - movs r1, #0x1f - ands r2, r1 - adds r0, r2, #4 - ands r0, r1 - cmp r0, #8 - bls _08022F4E - movs r0, #8 - strb r0, [r4, #0xf] - cmp r2, #0xf - bhi _08022F46 - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #1 - b _08022F4C -_08022F46: - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0xff -_08022F4C: - strb r0, [r1] -_08022F4E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08022F9E - movs r0, #4 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - adds r5, r4, #0 - adds r5, #0x78 - cmp r0, #0 - bne _08022F84 - movs r0, #8 - strb r0, [r4, #0xf] - bl Random - ldr r2, _08022FA0 @ =gUnk_080CBBC4 - movs r1, #1 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r5] -_08022F84: - ldrb r0, [r5] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - strb r0, [r4, #0x1e] -_08022F9E: - pop {r4, r5, pc} - .align 2, 0 -_08022FA0: .4byte gUnk_080CBBC4 - - thumb_func_start sub_08022FA4 -sub_08022FA4: @ 0x08022FA4 - push {lr} - ldr r1, _08022FB0 @ =gUnk_080CBBC8 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08022FB0: .4byte gUnk_080CBBC8 - - thumb_func_start sub_08022FB4 -sub_08022FB4: @ 0x08022FB4 - push {lr} - ldr r2, _08022FC8 @ =gUnk_080CBBDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08022FC8: .4byte gUnk_080CBBDC - - thumb_func_start nullsub_133 -nullsub_133: @ 0x08022FCC - bx lr - .align 2, 0 - - thumb_func_start sub_08022FD0 -sub_08022FD0: @ 0x08022FD0 - push {lr} - movs r3, #1 - movs r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, #0x18] - movs r1, #0 - bl sub_08023000 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08022FEC -sub_08022FEC: @ 0x08022FEC - push {lr} - movs r1, #0x80 - bl sub_08023000 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08022FF8 -sub_08022FF8: @ 0x08022FF8 - bx lr - .align 2, 0 - - thumb_func_start sub_08022FFC -sub_08022FFC: @ 0x08022FFC - bx lr - .align 2, 0 - - thumb_func_start sub_08023000 -sub_08023000: @ 0x08023000 - push {r4, lr} - adds r4, r0, #0 - cmp r1, #0x80 - bne _0802300E - bl sub_080042B8 - b _08023014 -_0802300E: - adds r0, r4, #0 - bl LoadAnimation -_08023014: - movs r2, #0x80 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r0, [r0] - cmp r0, #0x40 - bne _08023022 - rsbs r2, r2, #0 -_08023022: - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #0x80 - movs r3, #0 - bl sub_0805EC9C - pop {r4, pc} - - thumb_func_start sub_08023038 -sub_08023038: @ 0x08023038 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r5, [r4, #0x2e] - ldrh r6, [r4, #0x32] - ldrb r1, [r4, #0xa] - cmp r1, #0 - bne _0802306C - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08023052 - adds r0, r4, #0 - bl sub_0802390C -_08023052: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldr r1, _08023068 @ =gUnk_080CBC38 - adds r0, r4, #0 - bl sub_0800129E - b _08023090 - .align 2, 0 -_08023068: .4byte gUnk_080CBC38 -_0802306C: - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - beq _08023088 - cmp r1, #8 - beq _08023080 - adds r0, r4, #0 - bl sub_080235BC - b _08023090 -_08023080: - adds r0, r4, #0 - bl sub_08023730 - b _08023090 -_08023088: - adds r0, r4, #0 - bl sub_0805E7BC - b _080230CA -_08023090: - ldr r0, [r4, #0x50] - adds r2, r0, #0 - adds r2, #0x7c - adds r0, #0x7d - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - beq _080230CA - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _080230CA - ldrb r2, [r2] - subs r2, #1 - movs r0, #0xf - ands r2, r0 - adds r2, #0x78 - adds r2, r1, r2 - ldrh r1, [r4, #0x2e] - subs r1, r1, r5 - adds r1, #8 - movs r3, #0xf - ands r1, r3 - lsls r1, r1, #4 - ldrh r0, [r4, #0x32] - subs r0, r0, r6 - adds r0, #8 - ands r0, r3 - orrs r1, r0 - strb r1, [r2] -_080230CA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080230CC -sub_080230CC: @ 0x080230CC - push {lr} - ldr r2, _080230E0 @ =gUnk_080CBC50 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080230E0: .4byte gUnk_080CBC50 - - thumb_func_start sub_080230E4 -sub_080230E4: @ 0x080230E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0xff - bne _08023132 - movs r2, #0 - movs r0, #7 - strb r0, [r5, #0xc] - movs r3, #1 - strb r3, [r5, #0xe] - strb r2, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x85 - strb r0, [r1] - subs r1, #2 - movs r0, #0xf8 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7f - strb r2, [r0] - subs r0, #4 - strb r2, [r0] - subs r0, #0x3a - ldrb r0, [r0] - cmp r0, #0x80 - beq _0802311E - cmp r0, #0x9e - bne _08023128 -_0802311E: - strb r2, [r5, #0xb] - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #0x14 - b _08023130 -_08023128: - strb r3, [r5, #0xb] - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #8 -_08023130: - strb r0, [r1] -_08023132: - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0802318A - adds r0, r5, #0 - adds r0, #0x7f - ldrb r0, [r0] - cmp r0, #0 - bne _0802318A - ldrb r0, [r5, #0xc] - cmp r0, #7 - bne _0802318A - ldr r4, _08023194 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - 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] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r4, #0x3d - movs r0, #0xec - strb r0, [r4] - ldr r2, _08023198 @ =gLinkState - movs r0, #0x41 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - ldr r1, _0802319C @ =0xFFF7FFFF - ands r0, r1 - str r0, [r2, #0x30] -_0802318A: - ldr r1, _080231A0 @ =gUnk_080CBC38 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08023194: .4byte gLinkEntity -_08023198: .4byte gLinkState -_0802319C: .4byte 0xFFF7FFFF -_080231A0: .4byte gUnk_080CBC38 - - thumb_func_start sub_080231A4 -sub_080231A4: @ 0x080231A4 - push {lr} - adds r2, r0, #0 - adds r2, #0x7c - ldrb r1, [r2] - adds r1, #1 - strb r1, [r2] - bl sub_08001324 - - thumb_func_start nullsub_134 -nullsub_134: @ 0x080231B4 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_135 -nullsub_135: @ 0x080231B8 - bx lr - .align 2, 0 - - thumb_func_start sub_080231BC -sub_080231BC: @ 0x080231BC - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08023280 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x3f - bhi _0802327E - movs r0, #0xf - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r4, [r6, #0x54] - str r6, [r4, #0x50] - movs r0, #0xf - movs r1, #2 - bl CreateEnemy - adds r5, r0, #0 - str r5, [r4, #0x54] - str r6, [r5, #0x50] - movs r0, #0xf - movs r1, #3 - bl CreateEnemy - adds r4, r0, #0 - str r4, [r5, #0x54] - str r6, [r4, #0x50] - movs r0, #0xf - movs r1, #4 - bl CreateEnemy - adds r5, r0, #0 - str r5, [r4, #0x54] - str r6, [r5, #0x50] - movs r0, #0xf - movs r1, #5 - bl CreateEnemy - adds r4, r0, #0 - str r4, [r5, #0x54] - str r6, [r4, #0x50] - movs r0, #0xf - movs r1, #6 - bl CreateEnemy - adds r5, r0, #0 - str r5, [r4, #0x54] - str r6, [r5, #0x50] - movs r0, #0xf - movs r1, #7 - bl CreateEnemy - adds r4, r0, #0 - str r4, [r5, #0x54] - str r6, [r4, #0x50] - movs r0, #0xf - movs r1, #8 - bl CreateEnemy - str r0, [r4, #0x54] - str r4, [r0, #0x74] - str r6, [r0, #0x50] - movs r1, #0 - str r1, [r0, #0x54] - adds r0, r6, #0 - bl sub_0804A720 - movs r0, #6 - strb r0, [r6, #0xc] - movs r1, #0x1e - strb r1, [r6, #0xe] - str r6, [r6, #0x50] - adds r0, r6, #0 - adds r0, #0x78 - strh r1, [r0] - ldrb r1, [r6, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r6, #0x1a] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r6, #0x15] - ldrb r0, [r6, #0x15] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r6, #0x14] - ldrb r1, [r6, #0x14] - adds r0, r6, #0 - bl UpdateSprite -_0802327E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08023280: .4byte gUnk_03003DBC - - thumb_func_start nullsub_136 -nullsub_136: @ 0x08023284 - bx lr - .align 2, 0 - - thumb_func_start sub_08023288 -sub_08023288: @ 0x08023288 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08023324 - ldrb r1, [r7, #0xe] - adds r0, r1, #1 - strb r0, [r7, #0xe] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08023324 - bl Random - adds r4, r0, #0 - movs r0, #0x1e - ands r4, r0 - movs r0, #0 - mov r8, r0 - ldr r2, _08023308 @ =gLinkEntity - mov sb, r2 - ldr r0, _0802330C @ =gUnk_080CBC70 - mov sl, r0 -_080232C2: - mov r2, sb - movs r0, #0x2e - ldrsh r1, [r2, r0] - mov r2, sl - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r6, r1, r0 - mov r0, sb - movs r2, #0x32 - ldrsh r1, [r0, r2] - adds r0, r4, #1 - add r0, sl - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r1, r0 - ldr r0, _08023310 @ =gUnk_03001198 - ldrb r2, [r0] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080002A4 - bl sub_08023A38 - cmp r0, #0 - beq _08023314 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_08023990 - b _08023324 - .align 2, 0 -_08023308: .4byte gLinkEntity -_0802330C: .4byte gUnk_080CBC70 -_08023310: .4byte gUnk_03001198 -_08023314: - adds r4, #2 - movs r0, #0x1e - ands r4, r0 - movs r2, #1 - add r8, r2 - mov r0, r8 - cmp r0, #0xf - bls _080232C2 -_08023324: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08023330 -sub_08023330: @ 0x08023330 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08023394 - movs r0, #4 - strb r0, [r5, #0xc] - movs r0, #0x19 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x78 - movs r4, #0 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] - bl Random - movs r1, #0x1c - ands r0, r1 - strb r0, [r5, #0x15] - lsrs r0, r0, #2 - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x7b - strb r4, [r0] - adds r0, #4 - strb r4, [r0] - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl sub_08023A88 - ldr r1, [r5, #0x54] - adds r0, r5, #0 - bl CopyPosition - adds r0, r5, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx -_08023394: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08023398 -sub_08023398: @ 0x08023398 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - adds r0, #3 - ldrb r0, [r0] - cmp r0, #0 - beq _080233C0 - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - bne _080233C0 - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #1 - strh r0, [r1] -_080233C0: - adds r4, r5, #0 - adds r4, #0x78 - ldrh r0, [r4] - subs r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08023416 - adds r0, r5, #0 - bl sub_080002A0 - bl sub_08023A38 - cmp r0, #0 - beq _08023412 - movs r0, #5 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x7f - movs r0, #0 - strb r0, [r1] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x85 - strb r0, [r1] - ldr r1, [r5, #0x54] - movs r0, #1 - strb r0, [r1, #0xe] - adds r0, r5, #0 - bl sub_08023A68 - adds r0, r5, #0 - movs r1, #4 - movs r2, #0 - bl CreateFx - b _0802349C -_08023412: - movs r0, #0x28 - strh r0, [r4] -_08023416: - adds r0, r5, #0 - adds r0, #0x7f - ldrb r0, [r0] - cmp r0, #0 - beq _08023426 - adds r0, r5, #0 - bl sub_08023AB0 -_08023426: - ldrb r0, [r5, #0xe] - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _08023440 - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0802349C - movs r0, #0x19 - strb r0, [r5, #0xe] - b _0802349C -_08023440: - ldr r4, [r5, #0x2c] - ldr r6, [r5, #0x30] - adds r0, r5, #0 - bl sub_080AEF88 - ldr r0, [r5, #0x2c] - cmp r0, r4 - bne _08023460 - ldr r0, [r5, #0x30] - cmp r0, r6 - bne _08023460 - adds r1, r5, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_08023460: - ldr r0, _080234A0 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0802349C - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004596 - ldrb r0, [r5, #0x15] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r0, r0, #2 - ldrb r1, [r5, #0x14] - cmp r0, r1 - beq _0802349C - strb r0, [r5, #0x14] - adds r1, r5, #0 - adds r1, #0x7b - ldrb r1, [r1] - adds r1, r0, r1 - adds r0, r5, #0 - bl UpdateSprite -_0802349C: - pop {r4, r5, r6, pc} - .align 2, 0 -_080234A0: .4byte gUnk_030010A0 - - thumb_func_start sub_080234A4 -sub_080234A4: @ 0x080234A4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x7f - ldrb r0, [r0] - cmp r0, #0 - beq _080234D6 - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0xa - ands r0, r1 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] -_080234D6: - pop {r4, pc} - - thumb_func_start sub_080234D8 -sub_080234D8: @ 0x080234D8 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802351A - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x1a] - subs r0, #0x12 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r4, #0x1a] - bl Random - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08023A88 -_0802351A: - pop {r4, pc} - - thumb_func_start sub_0802351C -sub_0802351C: @ 0x0802351C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldrb r0, [r7, #0xe] - cmp r0, #0 - beq _0802355A - ldrb r0, [r7, #0xb] - cmp r0, #1 - beq _08023534 - ldr r0, _080235A8 @ =gLinkEntity - ldrb r0, [r0, #0x1e] - cmp r0, #0xff - bne _0802355A -_08023534: - movs r0, #0 - strb r0, [r7, #0xe] - ldr r1, [r7, #0x54] - movs r0, #3 - strb r0, [r1, #0xc] - ldr r1, [r7, #0x54] - adds r0, r7, #0 - adds r0, #0x80 - ldrb r0, [r0] - strb r0, [r1, #0xf] - ldr r0, [r7, #0x54] - ldrb r1, [r0, #0x14] - adds r1, #1 - bl UpdateSprite - ldrb r1, [r7, #0x14] - adds r0, r7, #0 - bl UpdateSprite -_0802355A: - adds r0, r7, #0 - adds r0, #0x7f - ldrb r0, [r0] - cmp r0, #0 - bne _080235B4 - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _080235B8 - ldr r5, _080235A8 @ =gLinkEntity - ldrb r0, [r7, #0x14] - movs r4, #7 - adds r2, r4, #0 - ands r2, r0 - strb r2, [r5, #0x14] - ldr r3, _080235AC @ =gLinkState - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r3, #0x30] - ldr r6, _080235B0 @ =gUnk_080CBC90 - adds r2, r2, r6 - movs r3, #0 - ldrsb r3, [r2, r3] - lsls r3, r3, #0x10 - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - ldrb r0, [r7, #0x14] - ands r4, r0 - adds r4, r4, r6 - ldrb r0, [r4] - rsbs r0, r0, #0 - adds r5, #0x63 - strb r0, [r5] - b _080235B8 - .align 2, 0 -_080235A8: .4byte gLinkEntity -_080235AC: .4byte gLinkState -_080235B0: .4byte gUnk_080CBC90 -_080235B4: - movs r0, #4 - strb r0, [r7, #0xc] -_080235B8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080235BC -sub_080235BC: @ 0x080235BC - push {lr} - ldr r2, _080235D0 @ =gUnk_080CBC98 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080235D0: .4byte gUnk_080CBC98 - - thumb_func_start sub_080235D4 -sub_080235D4: @ 0x080235D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, [r4, #0x50] - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080239F0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080235F6 - movs r0, #0x10 - b _080235F8 -_080235F6: - movs r0, #0x12 -_080235F8: - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite - pop {r4, pc} - - thumb_func_start sub_08023604 -sub_08023604: @ 0x08023604 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - adds r0, r0, r2 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0x88 - beq _08023640 - movs r1, #0 - movs r0, #2 - strb r0, [r2, #0xc] - strb r1, [r2, #0xe] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - bl sub_08023644 -_08023640: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08023644 -sub_08023644: @ 0x08023644 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x17 - bne _08023692 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08023692 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _08023692 - movs r6, #0x32 - ldrsh r1, [r4, r6] - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _08023692 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - strb r2, [r0, #0xe] - adds r0, r4, #0 - bl sub_080239F0 -_08023692: - adds r0, r5, #0 - adds r0, #0x7c - adds r1, r5, #0 - adds r1, #0x7d - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _080236F2 - movs r2, #0xf - adds r1, r2, #0 - ands r1, r0 - adds r1, #0x78 - adds r1, r4, r1 - ldrb r0, [r1] - lsrs r0, r0, #4 - ldr r3, _080236F4 @ =0x0000FFF8 - adds r0, r0, r3 - ldrh r6, [r4, #0x2e] - adds r0, r0, r6 - strh r0, [r4, #0x2e] - ldrb r0, [r1] - ands r2, r0 - adds r2, r2, r3 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] -_080236F2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080236F4: .4byte 0x0000FFF8 - - thumb_func_start sub_080236F8 -sub_080236F8: @ 0x080236F8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802372E - movs r0, #2 - strb r0, [r4, #0xc] - ldr r1, [r4, #0x54] - movs r0, #3 - strb r0, [r1, #0xc] - ldr r1, [r4, #0x54] - ldr r0, [r4, #0x50] - adds r0, #0x80 - ldrb r0, [r0] - strb r0, [r1, #0xf] - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x14] - adds r1, #1 - bl UpdateSprite - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite -_0802372E: - pop {r4, pc} - - thumb_func_start sub_08023730 -sub_08023730: @ 0x08023730 - push {lr} - ldr r2, _08023744 @ =gUnk_080CBCA8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08023744: .4byte gUnk_080CBCA8 - - thumb_func_start sub_08023748 -sub_08023748: @ 0x08023748 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x14 - strb r0, [r4, #0x14] - ldr r1, [r4, #0x50] - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_080239F0 - adds r0, r4, #0 - bl sub_08023A68 - pop {r4, pc} - - thumb_func_start sub_0802376C -sub_0802376C: @ 0x0802376C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _0802379A - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xf - bhi _0802379A - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - adds r0, r4, #0 - bl sub_08004274 -_0802379A: - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - adds r0, r0, r4 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0x88 - beq _080237D4 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r0, [r4, #0x50] - adds r0, #0x7f - movs r1, #1 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x14 - bl sub_08023A88 - adds r0, r4, #0 - bl sub_080237D8 -_080237D4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080237D8 -sub_080237D8: @ 0x080237D8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x17 - bne _0802382E - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802382E - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _0802382E - movs r6, #0x32 - ldrsh r1, [r4, r6] - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _0802382E - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r5, #0 - adds r0, #0x7f - strb r2, [r0] - adds r0, r4, #0 - bl sub_080239F0 - adds r0, r4, #0 - bl sub_08023A68 -_0802382E: - adds r0, r5, #0 - adds r0, #0x7c - adds r1, r5, #0 - adds r1, #0x7d - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _0802388E - movs r2, #0xf - adds r1, r2, #0 - ands r1, r0 - adds r1, #0x78 - adds r1, r4, r1 - ldrb r0, [r1] - lsrs r0, r0, #4 - ldr r3, _08023890 @ =0x0000FFF8 - adds r0, r0, r3 - ldrh r6, [r4, #0x2e] - adds r0, r0, r6 - strh r0, [r4, #0x2e] - ldrb r0, [r1] - ands r2, r0 - adds r2, r2, r3 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x19] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] -_0802388E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08023890: .4byte 0x0000FFF8 - - thumb_func_start sub_08023894 -sub_08023894: @ 0x08023894 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08023900 - movs r0, #2 - strb r0, [r5, #0xc] - ldr r0, [r5, #0x50] - adds r0, #0x7f - movs r1, #1 - strb r1, [r0] - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl UpdateSprite - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xb] - cmp r0, #0 - bne _08023900 - ldr r2, _08023904 @ =gLinkState - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r2, #0x30] - ldr r4, _08023908 @ =gLinkEntity - ldrh r0, [r5, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - strh r0, [r4, #0x32] - ldr r0, [r5, #0x74] - adds r1, r5, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xc - strb r0, [r1] - subs r0, #0x1c - bl ModHealth - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C -_08023900: - pop {r4, r5, pc} - .align 2, 0 -_08023904: .4byte gLinkState -_08023908: .4byte gLinkEntity - - thumb_func_start sub_0802390C -sub_0802390C: @ 0x0802390C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08023932 - ldr r2, [r5, #0x54] - adds r3, r5, #0 - adds r3, #0x3d -_08023922: - ldrb r0, [r3] - adds r1, r2, #0 - adds r1, #0x3d - strb r0, [r1] - ldr r2, [r2, #0x54] - cmp r2, #0 - bne _08023922 - b _0802398C -_08023932: - ldr r2, [r5, #0x54] - b _0802393C -_08023936: - ldr r2, [r2, #0x54] - cmp r2, #0 - beq _0802398C -_0802393C: - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08023936 - movs r0, #0x45 - adds r0, r0, r2 - mov ip, r0 - ldrb r1, [r0] - movs r4, #0xff - subs r0, r4, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08023936 - adds r0, r1, #0 - orrs r0, r4 - mov r1, ip - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3d - ldrb r4, [r0] - adds r1, r5, #0 - adds r1, #0x45 - ldrb r0, [r1] - cmp r0, r3 - blo _0802397A - subs r0, r0, r3 - b _0802397C -_0802397A: - movs r0, #0 -_0802397C: - strb r0, [r1] - adds r2, r5, #0 -_08023980: - adds r0, r2, #0 - adds r0, #0x3d - strb r4, [r0] - ldr r2, [r2, #0x54] - cmp r2, #0 - bne _08023980 -_0802398C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08023990 -sub_08023990: @ 0x08023990 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #3 - strb r0, [r5, #0xc] - ldrb r3, [r5, #0x18] - subs r0, #7 - ands r0, r3 - movs r3, #1 - orrs r0, r3 - strb r0, [r5, #0x18] - movs r0, #0x55 - strb r0, [r5, #0x1a] - adds r4, r5, #0 - adds r4, #0x29 - ldrb r0, [r4] - movs r3, #7 - orrs r0, r3 - strb r0, [r4] - strh r1, [r5, #0x2e] - strh r2, [r5, #0x32] - ldr r0, _080239EC @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - bl UpdateSpriteOrderAndFlip - adds r0, r5, #0 - movs r1, #0x16 - bl UpdateSprite - ldr r4, [r5, #0x54] -_080239D4: - adds r0, r4, #0 - bl sub_080239F0 - adds r0, r5, #0 - adds r1, r4, #0 - bl CopyPosition - ldr r4, [r4, #0x54] - cmp r4, #0 - bne _080239D4 - pop {r4, r5, pc} - .align 2, 0 -_080239EC: .4byte gLinkEntity - - thumb_func_start sub_080239F0 -sub_080239F0: @ 0x080239F0 - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x78 - movs r0, #0x88 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - bx lr - - thumb_func_start sub_08023A38 -sub_08023A38: @ 0x08023A38 - push {lr} - adds r1, r0, #0 - cmp r1, #0x1a - beq _08023A5A - cmp r1, #0x29 - beq _08023A5A - ldr r0, _08023A60 @ =gUnk_080B37A0 - adds r0, r1, r0 - ldrb r1, [r0] - cmp r1, #9 - beq _08023A5A - cmp r1, #0xb - beq _08023A5A - cmp r1, #0xa - beq _08023A5A - cmp r1, #0xc - bne _08023A64 -_08023A5A: - movs r0, #1 - b _08023A66 - .align 2, 0 -_08023A60: .4byte gUnk_080B37A0 -_08023A64: - movs r0, #0 -_08023A66: - pop {pc} - - thumb_func_start sub_08023A68 -sub_08023A68: @ 0x08023A68 - push {r4, lr} - adds r4, r0, #0 - movs r1, #5 - bl sub_0801D2B4 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x17 - bl UpdateSprite - pop {r4, pc} - - thumb_func_start sub_08023A88 -sub_08023A88: @ 0x08023A88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0x22 - bl sub_0801D2B4 - 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 - strb r0, [r2] - adds r0, r4, #0 - adds r1, r5, #0 - bl UpdateSprite - pop {r4, r5, pc} - - thumb_func_start sub_08023AB0 -sub_08023AB0: @ 0x08023AB0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r4, #0 - adds r7, #0x7b - ldrb r0, [r7] - cmp r0, #8 - bne _08023AF6 - adds r5, r4, #0 - adds r5, #0x7e - ldrb r0, [r5] - adds r6, r0, #0 - cmp r6, #0 - bne _08023B00 - adds r0, r4, #0 - bl sub_08023B38 - cmp r0, #0 - beq _08023ADE - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r0, #0x1d - bhi _08023B34 -_08023ADE: - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x85 - strb r0, [r1] - strb r6, [r7] - movs r0, #0x1e - strb r0, [r5] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite - b _08023B34 -_08023AF6: - adds r5, r4, #0 - adds r5, #0x7e - ldrb r0, [r5] - cmp r0, #0 - beq _08023B06 -_08023B00: - subs r0, #1 - strb r0, [r5] - b _08023B34 -_08023B06: - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r0, #0x59 - bls _08023B34 - adds r0, r4, #0 - bl sub_08023B38 - cmp r0, #0 - beq _08023B34 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x87 - strb r0, [r1] - movs r0, #8 - strb r0, [r7] - movs r0, #0xa - strb r0, [r5] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl UpdateSprite -_08023B34: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08023B38 -sub_08023B38: @ 0x08023B38 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r5, r0, #0 - cmp r5, #0 - bne _08023B4C - movs r0, #0 - b _08023B8E -_08023B4C: - movs r0, #0x2e - ldrsh r2, [r4, r0] - ldr r3, _08023B90 @ =gUnk_080CBCB8 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - adds r1, r0, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r2, r2, r1 - movs r6, #0x32 - ldrsh r1, [r4, r6] - adds r0, #1 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - movs r3, #0 - movs r4, #0x2e - ldrsh r0, [r5, r4] - subs r0, r0, r2 - adds r0, #0x14 - cmp r0, #0x28 - bhi _08023B8C - movs r6, #0x32 - ldrsh r0, [r5, r6] - subs r0, r0, r1 - adds r0, #0x14 - cmp r0, #0x28 - bhi _08023B8C - movs r3, #1 -_08023B8C: - adds r0, r3, #0 -_08023B8E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08023B90: .4byte gUnk_080CBCB8 - - thumb_func_start sub_08023B94 -sub_08023B94: @ 0x08023B94 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _08023BAC - ldr r1, _08023BA8 @ =gUnk_080CBDBC - adds r0, r5, #0 - bl sub_0800129E - b _08023BEC - .align 2, 0 -_08023BA8: .4byte gUnk_080CBDBC -_08023BAC: - cmp r0, #0 - bne _08023C00 - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08023BD8 - adds r0, r5, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _08023BD8 - ldr r0, _08023BD4 @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08023C06 - .align 2, 0 -_08023BD4: .4byte gUnk_080012C8 -_08023BD8: - ldr r4, _08023BFC @ =gUnk_080CBDD4 - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 -_08023BEC: - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - b _08023C06 - .align 2, 0 -_08023BFC: .4byte gUnk_080CBDD4 -_08023C00: - adds r0, r5, #0 - bl sub_08023E10 -_08023C06: - pop {r4, r5, pc} - - thumb_func_start sub_08023C08 -sub_08023C08: @ 0x08023C08 - push {lr} - ldr r2, _08023C1C @ =gUnk_080CBDEC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08023C1C: .4byte gUnk_080CBDEC - - thumb_func_start sub_08023C20 -sub_08023C20: @ 0x08023C20 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08023C34 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08023C34: - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _08023C48 - ldr r1, _08023C44 @ =gUnk_080CBDBC - adds r0, r4, #0 - bl sub_0804AA30 - b _08023C50 - .align 2, 0 -_08023C44: .4byte gUnk_080CBDBC -_08023C48: - ldr r1, _08023C54 @ =gUnk_080CBDD4 - adds r0, r4, #0 - bl sub_0804AA30 -_08023C50: - pop {r4, pc} - .align 2, 0 -_08023C54: .4byte gUnk_080CBDD4 - - thumb_func_start nullsub_137 -nullsub_137: @ 0x08023C58 - bx lr - .align 2, 0 - - thumb_func_start sub_08023C5C -sub_08023C5C: @ 0x08023C5C - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - bl Random - movs r1, #0x30 - ands r0, r1 - adds r0, #0xb4 - strb r0, [r4, #0xe] - bl Random - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite - pop {r4, pc} - - thumb_func_start sub_08023C8C -sub_08023C8C: @ 0x08023C8C - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08023E54 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08023CDC - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - beq _08023CBC - movs r0, #8 - strb r0, [r4, #0xe] - b _08023CDC -_08023CBC: - bl Random - movs r1, #0x30 - ands r0, r1 - adds r0, #0xb4 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08023E9C - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl UpdateSprite -_08023CDC: - pop {r4, pc} - .align 2, 0 diff --git a/asm/code_0801EE18.s b/asm/code_0801EE18.s new file mode 100644 index 00000000..ad7a2a64 --- /dev/null +++ b/asm/code_0801EE18.s @@ -0,0 +1,10563 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + + thumb_func_start sub_0801EE18 +sub_0801EE18: @ 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 UpdateSprite + 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 sub_0800279C + 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 sub_0804A9AC + 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 UpdateSprite + 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 UpdateSprite + b _0801EFC4 +_0801EFB0: + adds r0, r4, #0 + bl sub_0804AA1C + str r6, [r4, #0x20] + adds r0, r4, #0 + movs r1, #9 + bl UpdateSprite +_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 UpdateSprite + 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 UpdateSprite +_0801F018: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 +_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 sub_08004274 +_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 sub_08004274 + 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 sub_08004274 +_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 sub_08004274 + 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 UpdateSprite +_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 sub_08004274 + 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 sub_08004274 + b _0801F200 +_0801F1FA: + adds r0, r4, #0 + bl sub_08004274 +_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 sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F250 +sub_0801F250: @ 0x0801F250 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + 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 sub_08004274 + 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 UpdateSprite + 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 sub_08004274 + 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 UpdateSprite +_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 sub_08004274 + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite +_0801F488: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801F48C +sub_0801F48C: @ 0x0801F48C + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0801F494 +sub_0801F494: @ 0x0801F494 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + 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 UpdateSprite +_0801F4E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801F4EC +sub_0801F4EC: @ 0x0801F4EC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + 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 sub_08004274 +_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 sub_08004274 + b _0801F5D4 +_0801F5CE: + adds r0, r4, #0 + bl sub_08004274 +_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 UpdateSprite +_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 sub_08004274 + pop {pc} + + thumb_func_start sub_0801F638 +sub_0801F638: @ 0x0801F638 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + 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 UpdateSprite +_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 sub_08004274 + 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 sub_08004274 + 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 UpdateSprite +_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 sub_08004274 + 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 UpdateSprite +_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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite +_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 UpdateSprite +_0801F83E: + pop {r4, r5, pc} + + thumb_func_start sub_0801F840 +sub_0801F840: @ 0x0801F840 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + 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 sub_08004274 + 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 sub_080045C4 + strb r0, [r4, #0x15] +_0801F92C: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 +_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 sub_08004274 + b _0801F98E + .align 2, 0 +_0801F984: .4byte 0x0000012B +_0801F988: + adds r0, r4, #0 + bl sub_08004274 +_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 UpdateSprite +_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 sub_08004274 + pop {pc} + + thumb_func_start sub_0801F9E0 +sub_0801F9E0: @ 0x0801F9E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + 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 UpdateSprite +_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 sub_08004274 + 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 UpdateSprite + 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 sub_08004274 + 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 UpdateSprite + 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 sub_08004274 + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite + 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 UpdateSprite + pop {r4, pc} + + thumb_func_start sub_0801FC08 +sub_0801FC08: @ 0x0801FC08 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801FC24 @ =gUnk_080CA49C + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0801FC24: .4byte gUnk_080CA49C + + thumb_func_start sub_0801FC28 +sub_0801FC28: @ 0x0801FC28 + push {lr} + ldr r2, _0801FC3C @ =gUnk_080CA4B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0801FC3C: .4byte gUnk_080CA4B4 + + thumb_func_start sub_0801FC40 +sub_0801FC40: @ 0x0801FC40 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _0801FC5C + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _0801FC6E + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #1 + strh r0, [r1] + b _0801FC6E +_0801FC5C: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0801FC6E + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0801FC6E: + ldr r1, _0801FC78 @ =gUnk_080CA49C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0801FC78: .4byte gUnk_080CA49C + + thumb_func_start sub_0801FC7C +sub_0801FC7C: @ 0x0801FC7C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0801FC8E + adds r0, r1, #0 + bl sub_0804A7D4 + b _0801FC98 +_0801FC8E: + adds r0, r1, #0 + movs r1, #0xf1 + movs r2, #0 + bl CreateDeathFx +_0801FC98: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801FC9C +sub_0801FC9C: @ 0x0801FC9C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl Random + strb r0, [r4, #0xe] + pop {r4, pc} + + thumb_func_start sub_0801FCB0 +sub_0801FCB0: @ 0x0801FCB0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801FD28 + bl Random + movs r1, #0x1f + ands r1, r0 + adds r0, r5, #0 + bl sub_0801FE68 + cmp r0, #0 + beq _0801FD1C + movs r0, #2 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r0, _0801FD14 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + adds r4, r0, #0 + bl Random + ldr r2, _0801FD18 @ =gUnk_080CA4C8 + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r5, #0 + bl UpdateSpriteOrderAndFlip + b _0801FD28 + .align 2, 0 +_0801FD14: .4byte gUnk_020000B0 +_0801FD18: .4byte gUnk_080CA4C8 +_0801FD1C: + bl Random + movs r1, #0x18 + ands r0, r1 + adds r0, #8 + strb r0, [r5, #0xe] +_0801FD28: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0801FD2C +sub_0801FD2C: @ 0x0801FD2C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801FD66 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0801FD54 + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0xb4 + b _0801FD5A +_0801FD54: + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0x6e +_0801FD5A: + strh r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _0801FD7C +_0801FD66: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801FD7C + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_0801FD7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FD80 +sub_0801FD80: @ 0x0801FD80 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801FED4 + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0801FDB2 + 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, #1 + bl UpdateSprite +_0801FDB2: + pop {r4, pc} + + thumb_func_start sub_0801FDB4 +sub_0801FDB4: @ 0x0801FDB4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801FED4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801FDE0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0xf4 + ands r0, r1 + strb r0, [r4, #0x18] +_0801FDE0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801FDE4 +sub_0801FDE4: @ 0x0801FDE4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + ldr r7, _0801FE04 @ =gUnk_020000B0 + ldr r0, [r7] + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080002D4 + cmp r0, #0 + beq _0801FE34 + b _0801FE5C + .align 2, 0 +_0801FE04: .4byte gUnk_020000B0 +_0801FE08: + movs r0, #0x10 + rsbs r0, r0, #0 + adds r1, r0, #0 + ands r4, r1 + adds r0, r4, #0 + adds r0, #8 + strh r0, [r6, #0x2e] + ands r5, r1 + adds r0, r5, #0 + adds r0, #8 + strh r0, [r6, #0x32] + ldr r0, _0801FE30 @ =gUnk_020000B0 + ldr r0, [r0] + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x38 + strb r1, [r0] + movs r0, #1 + b _0801FE5E + .align 2, 0 +_0801FE30: .4byte gUnk_020000B0 +_0801FE34: + ldr r0, [r7] + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080002BC + adds r3, r0, #0 + ldr r1, _0801FE60 @ =gUnk_080CA4CA + ldrh r0, [r1] + ldr r2, _0801FE64 @ =0x0000FFFF + cmp r0, r2 + beq _0801FE5C +_0801FE4E: + ldrh r0, [r1] + adds r1, #2 + cmp r0, r3 + beq _0801FE08 + ldrh r0, [r1] + cmp r0, r2 + bne _0801FE4E +_0801FE5C: + movs r0, #0 +_0801FE5E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801FE60: .4byte gUnk_080CA4CA +_0801FE64: .4byte 0x0000FFFF + + thumb_func_start sub_0801FE68 +sub_0801FE68: @ 0x0801FE68 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r6, r1, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801FE82 +_0801FE7E: + movs r0, #0 + b _0801FEC4 +_0801FE82: + ldr r0, _0801FECC @ =gUnk_020000B0 + ldr r0, [r0] + ldr r5, [r0, #0x2c] + ldr r4, [r0, #0x30] + ldr r1, _0801FED0 @ =gUnk_080C9160 + lsls r0, r6, #4 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r0, r0, #0xb + mov sb, r0 + lsls r0, r6, #4 + adds r0, #0x80 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r0, r0, #0xb + mov r8, r0 + movs r6, #0 +_0801FEA8: + add r5, sb + mov r2, r8 + subs r4, r4, r2 + asrs r1, r5, #0x10 + asrs r2, r4, #0x10 + adds r0, r7, #0 + bl sub_0801FDE4 + cmp r0, #0 + beq _0801FE7E + adds r6, #1 + cmp r6, #7 + bls _0801FEA8 + movs r0, #1 +_0801FEC4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801FECC: .4byte gUnk_020000B0 +_0801FED0: .4byte gUnk_080C9160 + + thumb_func_start sub_0801FED4 +sub_0801FED4: @ 0x0801FED4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801FEEA + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #1 + strh r0, [r1] +_0801FEEA: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0xf + adds r1, r2, #0 + ands r1, r0 + lsls r1, r1, #5 + strh r1, [r4, #0x24] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0801FF28 + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0801FF4E + ldr r0, _0801FF24 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0800132C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _0801FF4E + .align 2, 0 +_0801FF24: .4byte gUnk_020000B0 +_0801FF28: + adds r0, r1, #0 + adds r0, #0x40 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0801FF4E + ldr r0, _0801FF58 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0800132C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_0801FF4E: + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + .align 2, 0 +_0801FF58: .4byte gUnk_020000B0 + + thumb_func_start sub_0801FF5C +sub_0801FF5C: @ 0x0801FF5C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0801FF84 + ldr r1, _0801FF80 @ =gUnk_080CA570 + adds r0, r4, #0 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _0801FF94 + .align 2, 0 +_0801FF80: .4byte gUnk_080CA570 +_0801FF84: + ldr r0, _0801FF98 @ =gUnk_080CA588 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0801FF94: + pop {r4, pc} + .align 2, 0 +_0801FF98: .4byte gUnk_080CA588 + + thumb_func_start sub_0801FF9C +sub_0801FF9C: @ 0x0801FF9C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0801FFD4 @ =gUnk_080CA590 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0801FFD2 + ldr r2, _0801FFD8 @ =gUnk_080CA5B8 + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + movs r0, #0x30 + ands r0, r1 + lsrs r0, r0, #4 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] +_0801FFD2: + pop {r4, pc} + .align 2, 0 +_0801FFD4: .4byte gUnk_080CA590 +_0801FFD8: .4byte gUnk_080CA5B8 + + thumb_func_start sub_0801FFDC +sub_0801FFDC: @ 0x0801FFDC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x82 + ldrb r0, [r6] + cmp r0, #0 + beq _08020068 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + cmp r1, #0x94 + bne _08020018 + movs r0, #3 + movs r1, #1 + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _08020010 + adds r0, r4, #0 + adds r1, r5, #0 + bl CopyPosition + ldrh r0, [r5, #0x36] + subs r0, #8 + strh r0, [r5, #0x36] +_08020010: + movs r0, #0 + strb r0, [r6] + movs r0, #2 + b _0802001E +_08020018: + cmp r1, #0x9b + bne _08020042 + movs r0, #1 +_0802001E: + strb r0, [r4, #0x14] + movs r0, #5 + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x3d + movs r0, #0xe2 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite + b _08020068 +_08020042: + cmp r1, #0x80 + bne _08020068 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08020068 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strh r1, [r4, #0x24] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 +_08020068: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802007A + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802007A: + ldr r1, _08020084 @ =gUnk_080CA570 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08020084: .4byte gUnk_080CA570 + + thumb_func_start sub_08020088 +sub_08020088: @ 0x08020088 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0802009C + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080200AC +_0802009C: + ldr r0, _080200B0 @ =gUnk_080CA5BC + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080200AC: + pop {r4, pc} + .align 2, 0 +_080200B0: .4byte gUnk_080CA5BC + + thumb_func_start sub_080200B4 +sub_080200B4: @ 0x080200B4 + push {lr} + adds r2, r0, #0 + movs r1, #1 + strb r1, [r2, #0xd] + movs r0, #0x3c + strb r0, [r2, #0x1d] + ldrb r3, [r2, #0x14] + cmp r3, #0 + bne _080200E2 + strb r1, [r2, #0x14] + movs r0, #5 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x71 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x81 + strb r3, [r0] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl UpdateSprite +_080200E2: + pop {pc} + + thumb_func_start sub_080200E4 +sub_080200E4: @ 0x080200E4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080200EC +sub_080200EC: @ 0x080200EC + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_080200F4 +sub_080200F4: @ 0x080200F4 + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bx lr + .align 2, 0 + + thumb_func_start nullsub_5 +nullsub_5: @ 0x08020100 + bx lr + .align 2, 0 + + thumb_func_start sub_08020104 +sub_08020104: @ 0x08020104 + push {lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x10] + movs r0, #0x80 + ands r0, r3 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08020128 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r2, #0x10] + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + b _0802012E +_08020128: + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0802012E: + pop {pc} + + thumb_func_start sub_08020130 +sub_08020130: @ 0x08020130 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r5, #1 + strb r5, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + bl Random + strb r0, [r4, #0xf] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x12 + strb r0, [r4, #0x1c] + bl Random + ands r0, r5 + movs r1, #0xfe + cmp r0, #0 + beq _08020162 + movs r1, #2 +_08020162: + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + movs r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08020180 +sub_08020180: @ 0x08020180 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x83 + ldrb r0, [r5] + cmp r0, #0 + beq _08020192 + subs r0, #1 + strb r0, [r5] +_08020192: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080201D4 + ldrb r0, [r5] + cmp r0, #0 + bne _080201D4 + ldrb r1, [r4, #0xf] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _080201D4 + ldr r0, _0802021C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x30 + bl sub_08049F1C + cmp r0, #0 + beq _080201D4 + movs r0, #2 + strb r0, [r4, #0xc] + bl Random + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0xa0 + strh r0, [r4, #0x24] +_080201D4: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802020C + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08020604 + bl Random + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0802020C + bl Random + movs r1, #1 + ands r1, r0 + movs r2, #0xfe + cmp r1, #0 + beq _08020206 + movs r2, #2 +_08020206: + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] +_0802020C: + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0802021C: .4byte gUnk_020000B0 + + thumb_func_start sub_08020220 +sub_08020220: @ 0x08020220 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08020284 + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + beq _0802024C + lsrs r0, r0, #0x1c + movs r1, #3 + ands r0, r1 + movs r1, #4 + subs r1, r1, r0 + adds r0, r5, #0 + bl UpdateSpriteAnimation + b _08020292 +_0802024C: + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x78 + strb r0, [r5, #0xe] + movs r0, #0xc0 + strh r0, [r5, #0x24] + ldr r0, _0802027C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + adds r4, r0, #0 + bl Random + ldr r2, _08020280 @ =gUnk_080CA5D4 + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + b _0802028A + .align 2, 0 +_0802027C: .4byte gUnk_020000B0 +_08020280: .4byte gUnk_080CA5D4 +_08020284: + adds r0, r5, #0 + bl sub_080205F8 +_0802028A: + adds r0, r5, #0 + movs r1, #4 + bl UpdateSpriteAnimation +_08020292: + pop {r4, r5, pc} + + thumb_func_start sub_08020294 +sub_08020294: @ 0x08020294 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080202F8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080202B4 + adds r0, r4, #0 + bl sub_080205F8 +_080202B4: + ldrb r1, [r4, #0xe] + cmp r1, #0x3c + bls _080202E6 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080202C8 + ldrh r0, [r4, #0x24] + adds r0, #4 + strh r0, [r4, #0x24] +_080202C8: + ldr r0, _080202F0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080202E6 + ldr r0, _080202F4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_080202E6: + adds r0, r4, #0 + bl sub_080AEFE0 + b _080202FE + .align 2, 0 +_080202F0: .4byte gUnk_030010A0 +_080202F4: .4byte gUnk_020000B0 +_080202F8: + adds r0, r4, #0 + bl sub_080205F8 +_080202FE: + adds r0, r4, #0 + movs r1, #4 + bl UpdateSpriteAnimation + pop {r4, pc} + + thumb_func_start sub_08020308 +sub_08020308: @ 0x08020308 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08020332 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 + b _0802034E +_08020332: + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08020340 + ldrh r0, [r4, #0x24] + subs r0, #8 + strh r0, [r4, #0x24] +_08020340: + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + movs r1, #4 + bl UpdateSpriteAnimation +_0802034E: + pop {r4, pc} + + thumb_func_start sub_08020350 +sub_08020350: @ 0x08020350 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + cmp r0, #2 + beq _08020398 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _0802037C + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0xa + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x71 + strb r0, [r1] +_0802037C: + ldrb r0, [r4, #0x15] + cmp r0, #0xff + bne _0802038A + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] +_0802038A: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + b _080203BE +_08020398: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080203BE + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x96 + strb r0, [r4, #0xe] + movs r0, #0xa + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x71 + strb r0, [r1] +_080203BE: + pop {r4, pc} + + thumb_func_start sub_080203C0 +sub_080203C0: @ 0x080203C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080203DC + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080203DC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080203DC: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _080203F2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020418 +_080203F2: + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0804AA1C + movs r0, #5 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #5 + bl UpdateSprite +_08020418: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802041C +sub_0802041C: @ 0x0802041C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08020438 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020438 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08020438: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0802044E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020466 +_0802044E: + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0804AA1C +_08020466: + pop {r4, pc} + + thumb_func_start sub_08020468 +sub_08020468: @ 0x08020468 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080204A6 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080204A2 + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #4 + bl UpdateSprite + b _080204A6 +_080204A2: + movs r0, #1 + strb r0, [r4, #0xe] +_080204A6: + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080204C4 + movs r0, #0xfd + ands r0, r1 + strb r0, [r5] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080204C4: + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080204D6 + adds r0, r4, #0 + bl sub_0800442E + b _080204DC +_080204D6: + adds r0, r4, #0 + bl sub_080AEF88 +_080204DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080204E0 +sub_080204E0: @ 0x080204E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802051A + movs r2, #0 + movs r1, #1 + strb r1, [r4, #0xc] + adds r3, r4, #0 + adds r3, #0x3f + movs r0, #0x70 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + subs r0, #1 + strb r1, [r0] + strb r2, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + b _0802053A +_0802051A: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802052A + adds r0, r4, #0 + bl sub_0800442E + b _0802053A +_0802052A: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_080AEF88 +_0802053A: + pop {r4, pc} + + thumb_func_start sub_0802053C +sub_0802053C: @ 0x0802053C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x28 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + movs r3, #0x40 + orrs r0, r3 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r3 + strb r1, [r4, #0x1b] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r2, r0 + strb r2, [r4, #0x18] + movs r0, #0x20 + strh r0, [r4, #0x24] + bl Random + movs r1, #0x10 + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite + pop {r4, pc} + + thumb_func_start sub_08020590 +sub_08020590: @ 0x08020590 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + movs r5, #0xff + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080205AE + adds r0, r4, #0 + bl sub_0805E7BC + b _080205F2 +_080205AE: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3b + bhi _080205C8 + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + subs r0, #5 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080205C8: + ldr r0, [r4, #0x34] + ldr r1, _080205F4 @ =0xFFFF4000 + adds r0, r0, r1 + str r0, [r4, #0x34] + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _080205F2 + movs r0, #0x28 + strb r0, [r4, #0xf] + bl Random + movs r1, #0x10 + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0x15] +_080205F2: + pop {r4, r5, pc} + .align 2, 0 +_080205F4: .4byte 0xFFFF4000 + + thumb_func_start sub_080205F8 +sub_080205F8: @ 0x080205F8 + movs r1, #4 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08020604 +sub_08020604: @ 0x08020604 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08020624 + bl Random + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _08020624 + adds r0, r4, #0 + bl sub_08049EE4 + b _08020632 +_08020624: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 +_08020632: + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020638 +sub_08020638: @ 0x08020638 + push {lr} + ldr r1, _08020644 @ =gUnk_080CA66C + bl sub_0800129E + pop {pc} + .align 2, 0 +_08020644: .4byte gUnk_080CA66C + + thumb_func_start sub_08020648 +sub_08020648: @ 0x08020648 + push {r4, lr} + adds r4, r0, #0 + bl sub_08020AD0 + ldr r1, _08020664 @ =gUnk_080CA684 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08020664: .4byte gUnk_080CA684 + + thumb_func_start sub_08020668 +sub_08020668: @ 0x08020668 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + cmp r0, #0x22 + bne _080206A2 + adds r1, r4, #0 + adds r1, #0x45 + ldrb r0, [r1] + cmp r0, #0xff + beq _080206A2 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + movs r0, #0x23 + strb r0, [r2] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl UpdateSprite +_080206A2: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x80 + beq _080206D0 + ldrb r0, [r4, #0xc] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080206D0 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl UpdateSprite +_080206D0: + ldrb r0, [r5] + cmp r0, #0x93 + bne _080206DC + adds r0, r4, #0 + bl sub_08020648 +_080206DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080206E0 +sub_080206E0: @ 0x080206E0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08020AD0 + cmp r0, #0 + beq _080206F6 + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + b _08020730 +_080206F6: + adds r0, r4, #0 + bl sub_08020B6C + cmp r0, #0 + beq _0802072A + adds r1, r4, #0 + adds r1, #0x42 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r5, r4, #0 + adds r5, #0x3e + ldrb r1, [r5] + adds r0, r4, #0 + movs r2, #0xa + bl sub_080AE58C + adds r0, r4, #0 + adds r0, #0x46 + ldrh r1, [r0] + ldrb r2, [r5] + adds r0, r4, #0 + movs r3, #0xa + bl sub_080AE7E8 + b _08020730 +_0802072A: + adds r0, r4, #0 + bl sub_08001324 +_08020730: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08020734 +sub_08020734: @ 0x08020734 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _08020764 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _08020764 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl UpdateSprite + b _08020774 +_08020764: + ldr r0, _08020778 @ =gUnk_080CA6A4 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08020774: + pop {r4, pc} + .align 2, 0 +_08020778: .4byte gUnk_080CA6A4 + + thumb_func_start sub_0802077C +sub_0802077C: @ 0x0802077C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08020788 +sub_08020788: @ 0x08020788 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08020790 +sub_08020790: @ 0x08020790 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_08020798 +sub_08020798: @ 0x08020798 + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + bx lr + .align 2, 0 + + thumb_func_start nullsub_6 +nullsub_6: @ 0x080207A4 + bx lr + .align 2, 0 + + thumb_func_start sub_080207A8 +sub_080207A8: @ 0x080207A8 + push {lr} + movs r3, #4 + movs r1, #4 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x29 + adds r1, r1, r0 + mov ip, r1 + ldrb r2, [r1] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r3 + mov r2, ip + strb r1, [r2] + adds r3, r0, #0 + adds r3, #0x3a + ldrb r2, [r3] + movs r1, #0xfb + ands r1, r2 + strb r1, [r3] + ldrb r1, [r0, #0x15] + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + movs r1, #0xc0 + lsls r1, r1, #9 + str r1, [r0, #0x20] + movs r1, #0x80 + strh r1, [r0, #0x24] + ldrb r1, [r0, #0x14] + adds r1, #0x10 + bl UpdateSprite + pop {pc} + + thumb_func_start sub_080207F4 +sub_080207F4: @ 0x080207F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r0, #0x30 + strb r0, [r4, #0x16] + movs r0, #0x12 + strb r0, [r4, #0x1c] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + bl Random + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08020A30 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020820 +sub_08020820: @ 0x08020820 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0802084A + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0802084A + strb r5, [r4, #0xe] +_0802084A: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08020872 + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020872 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_08020872: + pop {r4, r5, pc} + + thumb_func_start sub_08020874 +sub_08020874: @ 0x08020874 + push {lr} + ldr r2, _08020888 @ =gUnk_080CA6BC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08020888: .4byte gUnk_080CA6BC + + thumb_func_start sub_0802088C +sub_0802088C: @ 0x0802088C + movs r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r1, _080208B0 @ =gLinkEntity + ldrb r1, [r1, #0x14] + adds r2, r0, #0 + adds r2, #0x85 + strb r1, [r2] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080208B0: .4byte gLinkEntity + + thumb_func_start sub_080208B4 +sub_080208B4: @ 0x080208B4 + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r2, #0 + adds r4, #0x85 + ldrb r0, [r4] + ldr r5, _080208EC @ =gLinkEntity + ldrb r1, [r5, #0x14] + subs r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r0, #0 + beq _080208E6 + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + movs r1, #3 + ands r0, r1 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl UpdateSprite +_080208E6: + ldrb r0, [r5, #0x14] + strb r0, [r4] + pop {r4, r5, pc} + .align 2, 0 +_080208EC: .4byte gLinkEntity + + thumb_func_start sub_080208F0 +sub_080208F0: @ 0x080208F0 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x18 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_08020904 +sub_08020904: @ 0x08020904 + push {lr} + movs r1, #4 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + movs r1, #0xff + strb r1, [r0, #0x15] + ldrb r1, [r0, #0x14] + adds r1, #0x10 + bl UpdateSprite + pop {pc} + + thumb_func_start sub_08020920 +sub_08020920: @ 0x08020920 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020936 + adds r0, r1, #0 + bl sub_08020A30 +_08020936: + pop {pc} + + thumb_func_start sub_08020938 +sub_08020938: @ 0x08020938 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _08020950 + adds r0, r4, #0 + bl sub_08004274 +_08020950: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08020980 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08020978 + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl UpdateSprite +_08020978: + adds r0, r4, #0 + bl sub_08078930 + b _0802099C +_08020980: + cmp r0, #1 + bne _0802098C + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_0802098C: + ldrb r1, [r4, #0x15] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0802099C + adds r0, r4, #0 + bl sub_080AEFE0 +_0802099C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080209A0 +sub_080209A0: @ 0x080209A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080209E2 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x22 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08020A30 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite + b _080209F0 +_080209E2: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080209F0 + adds r0, r4, #0 + bl sub_08078930 +_080209F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080209F4 +sub_080209F4: @ 0x080209F4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xe0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _08020A14 + movs r1, #7 + movs r0, #7 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] +_08020A14: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _08020A24 + adds r0, r4, #0 + bl sub_08004274 +_08020A24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08020A28 +sub_08020A28: @ 0x08020A28 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08020A30 +sub_08020A30: @ 0x08020A30 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldrb r0, [r5] + cmp r0, #1 + bhi _08020A68 + bl Random + ldr r2, _08020A64 @ =gUnk_080CA6CC + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + cmp r0, #0 + bne _08020A68 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _08020A7A + .align 2, 0 +_08020A64: .4byte gUnk_080CA6CC +_08020A68: + movs r0, #0 + movs r1, #1 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x84 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08020A7C +_08020A7A: + pop {r4, r5, pc} + + thumb_func_start sub_08020A7C +sub_08020A7C: @ 0x08020A7C + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl Random + ldrb r5, [r6, #0x15] + ldr r4, _08020ACC @ =gUnk_080CA6D4 + movs r1, #3 + bl __modsi3 + adds r0, r0, r4 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r5, r0 + movs r4, #0x18 + ands r5, r4 + adds r0, r6, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08020ABA + adds r0, r6, #0 + bl sub_08049EE4 + adds r0, #4 + ands r0, r4 + movs r1, #0x10 + eors r1, r5 + cmp r1, r0 + bne _08020ABA + adds r5, r1, #0 +_08020ABA: + strb r5, [r6, #0x15] + lsrs r0, r5, #3 + strb r0, [r6, #0x14] + ldrb r1, [r6, #0x14] + adds r0, r6, #0 + bl UpdateSprite + pop {r4, r5, r6, pc} + .align 2, 0 +_08020ACC: .4byte gUnk_080CA6D4 + + thumb_func_start sub_08020AD0 +sub_08020AD0: @ 0x08020AD0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08020B6C + cmp r0, #0 + beq _08020B68 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08020B68 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _08020B5C @ =gRoomControls + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r2, #0x3f + ands r5, r2 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r5, r0 + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r5, #0 + bl sub_080002B0 + lsls r0, r0, #0x10 + ldr r1, _08020B60 @ =0xFF8F0000 + adds r0, r0, r1 + lsrs r0, r0, #0x10 + cmp r0, #1 + bhi _08020B68 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + adds r1, #0xd + strh r1, [r4, #0x32] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r4, #0x14] + adds r1, #0x14 + adds r0, r4, #0 + bl UpdateSprite + ldr r0, _08020B64 @ =0x00004034 + ldrb r2, [r6] + adds r1, r5, #0 + bl UpdateCollisionLayer + movs r0, #1 + b _08020B6A + .align 2, 0 +_08020B5C: .4byte gRoomControls +_08020B60: .4byte 0xFF8F0000 +_08020B64: .4byte 0x00004034 +_08020B68: + movs r0, #0 +_08020B6A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08020B6C +sub_08020B6C: @ 0x08020B6C + push {lr} + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x10 + cmp r0, #3 + bls _08020B7C + movs r0, #0 + b _08020B7E +_08020B7C: + movs r0, #1 +_08020B7E: + pop {pc} + + thumb_func_start sub_08020B80 +sub_08020B80: @ 0x08020B80 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08020B9C @ =gUnk_080CAA98 + bl sub_0800129E + movs r3, #0x16 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + 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 sub_080042B8 + 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 sub_080042B8 +_08020E26: + pop {r4, pc} + + thumb_func_start sub_08020E28 +sub_08020E28: @ 0x08020E28 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + 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 sub_080042B8 + 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 sub_080042B8 + 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 sub_080042B8 + 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 sub_080042B8 +_08020FE2: + pop {pc} + + thumb_func_start sub_08020FE4 +sub_08020FE4: @ 0x08020FE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + 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 sub_080042B8 + 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 sub_080042B8 + 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 sub_080042B8 + 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 sub_080042B8 + 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 sub_080042B8 +_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 sub_080042B8 + 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 sub_080042B8 + 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 sub_080042B8 + 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 LoadAnimation +_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 sub_080042B8 +_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 sub_080042B8 +_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 + + thumb_func_start sub_080216D4 +sub_080216D4: @ 0x080216D4 + push {lr} + ldr r1, _080216E0 @ =gUnk_080CB570 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080216E0: .4byte gUnk_080CB570 + + thumb_func_start sub_080216E4 +sub_080216E4: @ 0x080216E4 + push {lr} + ldr r2, _080216F8 @ =gUnk_080CB588 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080216F8: .4byte gUnk_080CB588 + + thumb_func_start sub_080216FC +sub_080216FC: @ 0x080216FC + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802171A + adds r0, r2, #0 + movs r1, #3 + movs r2, #0x80 + bl CreateFx + bl sub_0805E780 +_0802171A: + pop {pc} + + thumb_func_start nullsub_7 +nullsub_7: @ 0x0802171C + bx lr + .align 2, 0 + + thumb_func_start sub_08021720 +sub_08021720: @ 0x08021720 + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0xa] + strb r1, [r0, #0x1e] + ldrb r2, [r0, #0x19] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x19] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #3 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start nullsub_08 +nullsub_08: @ 0x08021754 + bx lr + .align 2, 0 + + thumb_func_start sub_08021758 +sub_08021758: @ 0x08021758 + push {lr} + ldr r1, _08021764 @ =gUnk_080CB590 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08021764: .4byte gUnk_080CB590 + + thumb_func_start sub_08021768 +sub_08021768: @ 0x08021768 + push {lr} + ldr r2, _0802177C @ =gUnk_080CB5A8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802177C: .4byte gUnk_080CB5A8 + + thumb_func_start sub_08021780 +sub_08021780: @ 0x08021780 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + beq _08021792 + cmp r0, #0x93 + beq _080217F4 + b _080217FA +_08021792: + ldr r0, _080217A4 @ =gLinkState + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x18 + bne _080217A8 + adds r0, r4, #0 + bl sub_08021768 + b _080217FA + .align 2, 0 +_080217A4: .4byte gLinkState +_080217A8: + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands 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, #3 + orrs r0, r1 + strb r0, [r2] + ldr r0, _080217EC @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA6C + ldr r0, _080217F0 @ =0x0000FFFF + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x87 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #6 + bl UpdateSprite + b _080217FA + .align 2, 0 +_080217EC: .4byte gLinkEntity +_080217F0: .4byte 0x0000FFFF +_080217F4: + adds r0, r4, #0 + bl sub_08021768 +_080217FA: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _08021808 + subs r0, #3 + strb r1, [r0] +_08021808: + ldr r1, _08021814 @ =gUnk_080CB590 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08021814: .4byte gUnk_080CB590 + + thumb_func_start sub_08021818 +sub_08021818: @ 0x08021818 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xa] + cmp r0, #0 + bne _0802182A + adds r0, r3, #0 + bl sub_0804A7D4 + b _08021844 +_0802182A: + ldr r2, [r3, #0x50] + cmp r2, #0 + beq _0802183A + ldrb r0, [r2, #0xf] + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0xf] + str r1, [r3, #0x50] +_0802183A: + adds r0, r3, #0 + movs r1, #0xf0 + movs r2, #0 + bl CreateDeathFx +_08021844: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08021848 +sub_08021848: @ 0x08021848 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + adds r1, r0, #0 + cmp r1, #0 + beq _0802186C + ldr r0, _08021868 @ =gUnk_080CB5C8 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802187A + .align 2, 0 +_08021868: .4byte gUnk_080CB5C8 +_0802186C: + movs r0, #3 + strb r0, [r4, #0xc] + strh r1, [r4, #0x36] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite +_0802187A: + pop {r4, pc} + + thumb_func_start sub_0802187C +sub_0802187C: @ 0x0802187C + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start nullsub_130 +nullsub_130: @ 0x08021884 + bx lr + .align 2, 0 + + thumb_func_start sub_08021888 +sub_08021888: @ 0x08021888 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0802189A + adds r0, r4, #0 + bl sub_08021818 +_0802189A: + pop {r4, pc} + + thumb_func_start sub_0802189C +sub_0802189C: @ 0x0802189C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0x1c] + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite + pop {r4, pc} + + thumb_func_start sub_080218B4 +sub_080218B4: @ 0x080218B4 + push {lr} + ldr r2, _080218C8 @ =gUnk_080CB5D4 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080218C8: .4byte gUnk_080CB5D4 + + thumb_func_start sub_080218CC +sub_080218CC: @ 0x080218CC + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _08021916 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r4, r0, #0 + bl Random + movs r1, #0x10 + eors r4, r1 + ldr r2, _08021980 @ =gUnk_080CB5DC + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r5, #0x20] +_08021916: + adds r0, r5, #0 + bl sub_08004274 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r6, #1 + adds r0, r6, #0 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _08021948 + adds r0, r5, #0 + bl sub_080AEFE0 + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #0 + bne _08021948 + adds r0, r5, #0 + adds r0, #0x59 + strb r6, [r0] +_08021948: + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802197C + movs r0, #2 + strb r0, [r5, #0xc] + bl Random + movs r1, #0x38 + ands r0, r1 + adds r0, #8 + strb r0, [r5, #0xe] + movs r0, #1 + strb r0, [r5, #0xf] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + movs r1, #0 + bl UpdateSprite +_0802197C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08021980: .4byte gUnk_080CB5DC + + thumb_func_start sub_08021984 +sub_08021984: @ 0x08021984 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080219C2 + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, _08021A08 @ =0x0000FF80 + strh r0, [r4, #0x36] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + ldr r0, _08021A0C @ =0x0000012D + bl sub_08004488 +_080219C2: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08021A04 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_08021A04: + pop {r4, pc} + .align 2, 0 +_08021A08: .4byte 0x0000FF80 +_08021A0C: .4byte 0x0000012D + + thumb_func_start sub_08021A10 +sub_08021A10: @ 0x08021A10 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r1, _08021A60 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0x78 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _08021A5E + adds r0, r4, #0 + bl sub_08021D00 + cmp r0, #0 + bne _08021A5E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08021A5E + movs r0, #3 + strb r0, [r4, #0xc] + bl Random + movs r1, #0x3f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_08021D44 + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite +_08021A5E: + pop {r4, pc} + .align 2, 0 +_08021A60: .4byte gLinkEntity + + thumb_func_start sub_08021A64 +sub_08021A64: @ 0x08021A64 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08021D00 + cmp r0, #0 + bne _08021AD4 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08021A96 + movs r0, #2 + strb r0, [r4, #0xc] + bl Random + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_08021A96: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _08021AC8 + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + cmp r1, #0xff + bne _08021AC2 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + b _08021AD4 +_08021AC2: + adds r0, r4, #0 + bl sub_08021D44 +_08021AC8: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 +_08021AD4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08021AD8 +sub_08021AD8: @ 0x08021AD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08021B3A + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08021B1E + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + bne _08021B16 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + b _08021B60 +_08021B16: + strb r0, [r4, #0x15] + movs r0, #0x7c + bl sub_08004488 +_08021B1E: + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08021B3A + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #1 + strb r0, [r1] +_08021B3A: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021B60 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x86 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_08021B60: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021B64 +sub_08021B64: @ 0x08021B64 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _08021B88 @ =gLinkState + ldr r1, [r0, #0x30] + movs r2, #4 + ands r1, r2 + adds r6, r0, #0 + cmp r1, #0 + beq _08021B8C + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _08021C4E + .align 2, 0 +_08021B88: .4byte gLinkState +_08021B8C: + movs r5, #1 + adds r0, r6, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0xb + beq _08021BBA + cmp r0, #0x14 + beq _08021BBA + bl sub_0807953C + cmp r0, #0 + beq _08021BAE + ldrb r1, [r4, #0xa] + lsls r0, r1, #1 + adds r0, r0, r1 + adds r5, r0, #0 + adds r5, #8 +_08021BAE: + ldrb r0, [r4, #0xe] + subs r5, r0, r5 + cmp r5, #0 + bge _08021BB8 + movs r5, #0 +_08021BB8: + strb r5, [r4, #0xe] +_08021BBA: + ldr r0, [r6, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08021BC8 + movs r5, #0 +_08021BC8: + cmp r5, #0 + bne _08021C04 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x87 + strb r5, [r0] + ldr r2, _08021BEC @ =gLinkEntity + ldrb r1, [r2, #0x15] + adds r0, r1, #0 + cmp r0, #0xff + beq _08021BF0 + movs r0, #0x10 + b _08021BF6 + .align 2, 0 +_08021BEC: .4byte gLinkEntity +_08021BF0: + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 +_08021BF6: + eors r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #5 + bl UpdateSprite + b _08021C4E +_08021C04: + ldrb r1, [r6, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r6, #0x1a] + adds r1, r6, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0x50 + strh r0, [r1] + adds r1, #0x2a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, _08021C50 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA6C + ldr r2, _08021C54 @ =gUnk_080CB5E4 + ldrb r1, [r4, #0xf] + adds r0, r1, #1 + strb r0, [r4, #0xf] + movs r0, #0xe + ands r0, r1 + lsrs r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 +_08021C4E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08021C50: .4byte gLinkEntity +_08021C54: .4byte gUnk_080CB5E4 + + thumb_func_start sub_08021C58 +sub_08021C58: @ 0x08021C58 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08021C8A + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08021C8A + adds r0, r4, #0 + adds r0, #0x59 + strb r5, [r0] +_08021C8A: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08021CCC + movs r0, #2 + strb r0, [r4, #0xc] + movs r2, #0x3c + strb r2, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x86 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_08021CCC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08021CD0 +sub_08021CD0: @ 0x08021CD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08021CE6 + adds r0, r4, #0 + bl sub_08004274 +_08021CE6: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + beq _08021CFE + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite +_08021CFE: + pop {r4, pc} + + thumb_func_start sub_08021D00 +sub_08021D00: @ 0x08021D00 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrb r0, [r1] + cmp r0, #0 + beq _08021D16 + subs r0, #1 + strb r0, [r1] + movs r0, #0 + b _08021D40 +_08021D16: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x10 + bl sub_08049F64 + cmp r0, #0 + bne _08021D28 + movs r0, #0 + b _08021D40 +_08021D28: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #4 + bl UpdateSprite + movs r0, #1 +_08021D40: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021D44 +sub_08021D44: @ 0x08021D44 + push {lr} + adds r2, r0, #0 + adds r1, #4 + movs r0, #0x18 + ands r1, r0 + strb r1, [r2, #0x15] + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08021D5E + movs r0, #0xc0 + lsls r0, r0, #1 + b _08021D60 +_08021D5E: + movs r0, #0xc0 +_08021D60: + strh r0, [r2, #0x24] + pop {pc} + + thumb_func_start sub_08021D64 +sub_08021D64: @ 0x08021D64 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08021D7C @ =gUnk_080CB69C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08021D7C: .4byte gUnk_080CB69C + + thumb_func_start sub_08021D80 +sub_08021D80: @ 0x08021D80 + push {lr} + ldr r2, _08021D94 @ =gUnk_080CB6B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08021D94: .4byte gUnk_080CB6B4 + + thumb_func_start sub_08021D98 +sub_08021D98: @ 0x08021D98 + push {lr} + ldr r1, _08021DA4 @ =gUnk_080CB69C + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08021DA4: .4byte gUnk_080CB69C + + thumb_func_start sub_08021DA8 +sub_08021DA8: @ 0x08021DA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08021DC4 + ldr r0, _08021DC8 @ =gUnk_080CB6C4 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08021DC4: + pop {r4, pc} + .align 2, 0 +_08021DC8: .4byte gUnk_080CB6C4 + + thumb_func_start sub_08021DCC +sub_08021DCC: @ 0x08021DCC + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_08021DD4 +sub_08021DD4: @ 0x08021DD4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08021DDC +sub_08021DDC: @ 0x08021DDC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08021DEE + adds r0, r4, #0 + bl sub_0804A7D4 +_08021DEE: + pop {r4, pc} + + thumb_func_start sub_08021DF0 +sub_08021DF0: @ 0x08021DF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08021E14 + 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] + ldr r0, _08021E48 @ =0x0000FFF0 + strh r0, [r4, #0x36] +_08021E14: + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + strb r0, [r4, #0x1c] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r4, #0 + bl sub_08021EF0 + pop {r4, pc} + .align 2, 0 +_08021E48: .4byte 0x0000FFF0 + + thumb_func_start sub_08021E4C +sub_08021E4C: @ 0x08021E4C + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + beq _08021E5E + subs r0, #1 + strh r0, [r1] +_08021E5E: + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _08021E6C + subs r0, #1 + strh r0, [r1] +_08021E6C: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _08021E8A + adds r0, r4, #0 + bl sub_08021F24 + b _08021E90 +_08021E8A: + adds r0, r4, #0 + bl sub_080AEFB4 +_08021E90: + ldr r1, _08021EA0 @ =gUnk_080CB6D0 + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x63 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08021EA0: .4byte gUnk_080CB6D0 + + thumb_func_start sub_08021EA4 +sub_08021EA4: @ 0x08021EA4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08021EBA + adds r0, r1, #0 + bl sub_08021EF0 +_08021EBA: + pop {pc} + + thumb_func_start sub_08021EBC +sub_08021EBC: @ 0x08021EBC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08021ECC + subs r0, #1 + strb r0, [r4, #0xe] + b _08021EE8 +_08021ECC: + ldr r0, _08021EEC @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x70 + bl sub_0806FCB8 + cmp r0, #0 + beq _08021EE8 + adds r0, r4, #0 + bl sub_08021EF0 +_08021EE8: + pop {r4, pc} + .align 2, 0 +_08021EEC: .4byte gLinkEntity + + thumb_func_start sub_08021EF0 +sub_08021EF0: @ 0x08021EF0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl Random + ldr r2, _08021F20 @ =gUnk_080CB6D6 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + pop {r4, pc} + .align 2, 0 +_08021F20: .4byte gUnk_080CB6D6 + + thumb_func_start sub_08021F24 +sub_08021F24: @ 0x08021F24 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0 + bne _08021F48 + movs r0, #2 + strb r0, [r4, #0xc] + bl Random + ldr r2, _08021F44 @ =gUnk_080CB6F6 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + b _08021F6E + .align 2, 0 +_08021F44: .4byte gUnk_080CB6F6 +_08021F48: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _08021F80 + ldr r0, _08021F7C @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x70 + bl sub_0806FCB8 + cmp r0, #0 + bne _08021F80 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e +_08021F6E: + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + b _08021FA4 + .align 2, 0 +_08021F7C: .4byte gLinkEntity +_08021F80: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08021F94 + bl Random + movs r1, #0x1f + ands r0, r1 + b _08021F9A +_08021F94: + adds r0, r4, #0 + bl sub_08049EE4 +_08021F9A: + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_08021FA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08021FA8 +sub_08021FA8: @ 0x08021FA8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08021FD4 @ =gUnk_080CB734 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r1, _08021FD8 @ =gUnk_080CB8A4 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r4, #0x1e] + ldr r0, [r0] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r4, #0x48] + pop {r4, r5, pc} + .align 2, 0 +_08021FD4: .4byte gUnk_080CB734 +_08021FD8: .4byte gUnk_080CB8A4 + + thumb_func_start sub_08021FDC +sub_08021FDC: @ 0x08021FDC + push {lr} + ldr r2, _08021FF0 @ =gUnk_080CB74C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08021FF0: .4byte gUnk_080CB74C + + thumb_func_start sub_08021FF4 +sub_08021FF4: @ 0x08021FF4 + push {lr} + ldr r1, _08022000 @ =gUnk_080CB734 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08022000: .4byte gUnk_080CB734 + + thumb_func_start sub_08022004 +sub_08022004: @ 0x08022004 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl UpdateCollisionLayer + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl CreateFx + adds r0, r4, #0 + bl sub_08049CF4 + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08022034 +sub_08022034: @ 0x08022034 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + movs r0, #3 + ands r0, r1 + strb r0, [r4, #0xb] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r2] + ldr r2, _08022098 @ =gUnk_080CB764 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_080221C0 + pop {r4, pc} + .align 2, 0 +_08022098: .4byte gUnk_080CB764 + + thumb_func_start sub_0802209C +sub_0802209C: @ 0x0802209C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080220D2 + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x7a + ldrh r1, [r1] + movs r2, #0x10 + movs r3, #0x10 + bl sub_0806FBFC + cmp r0, #0 + beq _080220D6 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x12 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xb] + adds r1, #4 + adds r0, r4, #0 + bl UpdateSprite + b _080220D6 +_080220D2: + subs r0, #1 + strb r0, [r4, #0xe] +_080220D6: + pop {r4, pc} + + thumb_func_start sub_080220D8 +sub_080220D8: @ 0x080220D8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080220EC + movs r0, #3 + strb r0, [r1, #0xc] +_080220EC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080220F0 +sub_080220F0: @ 0x080220F0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08022160 + movs r1, #0 + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x78 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x44 + strb r1, [r0] + ldrb r1, [r5, #0xb] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0802215C @ =gUnk_080CB76C + adds r4, r0, r1 + movs r6, #0 +_08022124: + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFx + adds r1, r0, #0 + cmp r1, #0 + beq _08022148 + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] +_08022148: + adds r6, #1 + adds r4, #2 + cmp r6, #5 + bls _08022124 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + b _08022170 + .align 2, 0 +_0802215C: .4byte gUnk_080CB76C +_08022160: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08022170 + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #4 + strb r0, [r1] +_08022170: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08022174 +sub_08022174: @ 0x08022174 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022196 + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xb] + adds r1, #8 + adds r0, r4, #0 + bl UpdateSprite +_08022196: + pop {r4, pc} + + thumb_func_start sub_08022198 +sub_08022198: @ 0x08022198 + push {r4, lr} + adds r4, r0, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080221BC + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] +_080221BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080221C0 +sub_080221C0: @ 0x080221C0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r4, [r6, r0] + ldr r1, _08022220 @ =gRoomControls + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r6, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r1, _08022224 @ =gUnk_080B4488 + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + adds r4, r4, r0 + adds r0, r6, #0 + adds r0, #0x7e + strh r4, [r0] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x7c + strh r0, [r1] + ldr r1, _08022228 @ =gUnk_080CB79C + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrb r2, [r5] + adds r1, r4, #0 + bl UpdateCollisionLayer + pop {r4, r5, r6, pc} + .align 2, 0 +_08022220: .4byte gRoomControls +_08022224: .4byte gUnk_080B4488 +_08022228: .4byte gUnk_080CB79C + + thumb_func_start sub_0802222C +sub_0802222C: @ 0x0802222C + push {lr} + ldr r1, _08022238 @ =gUnk_080CB948 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08022238: .4byte gUnk_080CB948 + + thumb_func_start sub_0802223C +sub_0802223C: @ 0x0802223C + push {lr} + ldr r2, _08022250 @ =gUnk_080CB960 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022250: .4byte gUnk_080CB960 + + thumb_func_start sub_08022254 +sub_08022254: @ 0x08022254 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08022344 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #4 + cmp r0, #0x18 + bhi _08022356 + lsls r0, r0, #2 + ldr r1, _0802227C @ =_08022280 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802227C: .4byte _08022280 +_08022280: @ jump table + .4byte _080222E4 @ case 0 + .4byte _080222E4 @ case 1 + .4byte _080222E4 @ case 2 + .4byte _08022356 @ case 3 + .4byte _080222E4 @ case 4 + .4byte _080222E4 @ case 5 + .4byte _080222E4 @ case 6 + .4byte _080222E4 @ case 7 + .4byte _080222E4 @ case 8 + .4byte _080222E4 @ case 9 + .4byte _08022356 @ case 10 + .4byte _08022356 @ case 11 + .4byte _080222E4 @ case 12 + .4byte _080222E4 @ case 13 + .4byte _080222E4 @ case 14 + .4byte _08022356 @ case 15 + .4byte _08022356 @ case 16 + .4byte _08022356 @ case 17 + .4byte _080222F2 @ case 18 + .4byte _08022356 @ case 19 + .4byte _080222E4 @ case 20 + .4byte _080222E4 @ case 21 + .4byte _080222E4 @ case 22 + .4byte _08022356 @ case 23 + .4byte _080222F2 @ case 24 +_080222E4: + ldr r0, _08022340 @ =gLinkState + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08022356 +_080222F2: + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFx + movs r0, #1 + movs r1, #1 + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _08022356 + movs r0, #1 + strb r0, [r5, #0xb] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0804A4E4 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + str r5, [r4, #0x54] + b _08022356 + .align 2, 0 +_08022340: .4byte gLinkState +_08022344: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x94 + beq _08022356 + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite +_08022356: + ldr r1, _08022360 @ =gUnk_080CB948 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08022360: .4byte gUnk_080CB948 + + thumb_func_start nullsub_131 +nullsub_131: @ 0x08022364 + bx lr + .align 2, 0 + + thumb_func_start sub_08022368 +sub_08022368: @ 0x08022368 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl Random + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08022390 +sub_08022390: @ 0x08022390 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080223D4 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _080223C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + bl Random + movs r1, #4 + ands r0, r1 + strb r0, [r4, #0xf] +_080223C0: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080223CE + adds r0, r4, #0 + bl sub_080AEF88 + b _080223DA +_080223CE: + subs r0, #1 + strb r0, [r4, #0xf] + b _080223DA +_080223D4: + bl Random + strb r0, [r4, #0xe] +_080223DA: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080223E4 +sub_080223E4: @ 0x080223E4 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _0802240A + adds r1, r2, #0 + adds r1, #0x41 + movs r0, #0x94 + strb r0, [r1] + subs r1, #4 + movs r0, #0x10 + strb r0, [r1] + adds r1, #5 + movs r0, #0xc + strb r0, [r1] + ldrb r1, [r3, #0x15] + adds r0, r2, #0 + adds r0, #0x3e + strb r1, [r0] +_0802240A: + adds r0, r3, #0 + bl sub_0805E7BC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08022414 +sub_08022414: @ 0x08022414 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08022430 @ =gUnk_080CBA28 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08022430: .4byte gUnk_080CBA28 + + thumb_func_start sub_08022434 +sub_08022434: @ 0x08022434 + push {lr} + ldr r2, _08022448 @ =gUnk_080CBA40 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022448: .4byte gUnk_080CBA40 + + thumb_func_start sub_0802244C +sub_0802244C: @ 0x0802244C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x45 + ldrb r0, [r5] + cmp r0, #0 + bne _0802245C + b _08022582 +_0802245C: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0x65 + bne _08022522 + adds r0, #2 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #2 + cmp r0, #0x18 + bhi _08022540 + lsls r0, r0, #2 + ldr r1, _08022480 @ =_08022484 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08022480: .4byte _08022484 +_08022484: @ jump table + .4byte _080224E8 @ case 0 + .4byte _080224E8 @ case 1 + .4byte _08022540 @ case 2 + .4byte _08022540 @ case 3 + .4byte _08022540 @ case 4 + .4byte _08022540 @ case 5 + .4byte _08022508 @ case 6 + .4byte _08022508 @ case 7 + .4byte _08022508 @ case 8 + .4byte _08022508 @ case 9 + .4byte _08022508 @ case 10 + .4byte _08022540 @ case 11 + .4byte _08022540 @ case 12 + .4byte _08022540 @ case 13 + .4byte _08022540 @ case 14 + .4byte _08022540 @ case 15 + .4byte _08022540 @ case 16 + .4byte _08022540 @ case 17 + .4byte _08022540 @ case 18 + .4byte _08022540 @ case 19 + .4byte _08022508 @ case 20 + .4byte _08022540 @ case 21 + .4byte _08022508 @ case 22 + .4byte _08022508 @ case 23 + .4byte _08022508 @ case 24 +_080224E8: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + movs r0, #0x5c + strb r0, [r6] + ldr r0, _08022504 @ =gUnk_080FD468 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + b _08022540 + .align 2, 0 +_08022504: .4byte gUnk_080FD468 +_08022508: + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x5c + strb r0, [r6] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + b _08022540 +_08022522: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x94 + bne _08022540 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite +_08022540: + adds r0, r4, #0 + adds r0, #0x80 + adds r1, r4, #0 + adds r1, #0x45 + ldrb r2, [r0] + adds r5, r1, #0 + adds r7, r0, #0 + ldrb r0, [r5] + cmp r2, r0 + beq _08022566 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x5c + strb r0, [r6] + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + b _0802258E +_08022566: + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _0802258E + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite + movs r0, #0xca + lsls r0, r0, #1 + bl sub_08004488 + b _0802258E +_08022582: + adds r0, r4, #0 + movs r1, #1 + bl UpdateSprite + adds r7, r4, #0 + adds r7, #0x80 +_0802258E: + ldrb r0, [r5] + strb r0, [r7] + ldr r1, _0802259C @ =gUnk_080CBA28 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802259C: .4byte gUnk_080CBA28 + + thumb_func_start sub_080225A0 +sub_080225A0: @ 0x080225A0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + bne _080225B2 + adds r0, r4, #0 + bl sub_08004274 +_080225B2: + adds r0, r4, #0 + bl sub_08001318 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080225BC +sub_080225BC: @ 0x080225BC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080225DE + adds r0, r4, #0 + bl sub_0804A7D4 + b _080225E4 +_080225DE: + adds r0, r4, #0 + bl sub_08004274 +_080225E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_9 +nullsub_9: @ 0x080225E8 + bx lr + .align 2, 0 + + thumb_func_start sub_080225EC +sub_080225EC: @ 0x080225EC + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x3b + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x5a + strb r0, [r1] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0802261A + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + b _0802264C +_0802261A: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + ldr r0, _08022650 @ =0x0000FF80 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #6 + bl UpdateSprite +_0802264C: + pop {r4, pc} + .align 2, 0 +_08022650: .4byte 0x0000FF80 + + thumb_func_start sub_08022654 +sub_08022654: @ 0x08022654 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0802268C + cmp r0, #1 + bgt _08022668 + cmp r0, #0 + beq _0802266E + b _080226E4 +_08022668: + cmp r0, #2 + beq _080226BE + b _080226E4 +_0802266E: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080226E4 + movs r0, #1 + strb r0, [r4, #0xd] + ldr r0, _080226E8 @ =0x0000012D + bl PlaySFX + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_0802268C: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080226E4 + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #5 + bl UpdateSprite + movs r0, #0x7d + bl sub_08004488 + adds r0, r4, #0 + bl UpdateSpriteOrderAndFlip +_080226BE: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080226E4 + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x65 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite +_080226E4: + pop {r4, pc} + .align 2, 0 +_080226E8: .4byte 0x0000012D + + thumb_func_start sub_080226EC +sub_080226EC: @ 0x080226EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08022776 + adds r0, r4, #0 + bl sub_080228CC + cmp r0, #0 + beq _0802271A + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x65 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl UpdateSprite + b _0802277C +_0802271A: + adds r0, r4, #0 + bl sub_080228F0 + cmp r0, #0 + beq _08022758 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, _08022754 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5a + strb r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl UpdateSprite + b _0802277C + .align 2, 0 +_08022754: .4byte gUnk_020000B0 +_08022758: + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08022770 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] +_08022770: + adds r0, r4, #0 + bl sub_080AEF88 +_08022776: + adds r0, r4, #0 + bl sub_08004274 +_0802277C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08022780 +sub_08022780: @ 0x08022780 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080227AA + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl UpdateSprite + movs r0, #0xca + lsls r0, r0, #1 + bl sub_08004488 +_080227AA: + pop {r4, pc} + + thumb_func_start sub_080227AC +sub_080227AC: @ 0x080227AC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080227CC + ldr r0, _080227C8 @ =gUnk_080FD470 + b _080227CE + .align 2, 0 +_080227C8: .4byte gUnk_080FD470 +_080227CC: + ldr r0, _08022814 @ =gUnk_080FD468 +_080227CE: + str r0, [r4, #0x48] + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r3, #2 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _080227EE + movs r0, #0xfd + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5c + strb r0, [r1] +_080227EE: + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08022812 + strb r3, [r4, #0xc] + bl Random + ldr r2, _08022818 @ =gUnk_080CBA60 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_08022812: + pop {r4, pc} + .align 2, 0 +_08022814: .4byte gUnk_080FD468 +_08022818: .4byte gUnk_080CBA60 + + thumb_func_start sub_0802281C +sub_0802281C: @ 0x0802281C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08022852 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite + adds r0, r4, #0 + bl sub_0804AA1C +_08022852: + pop {r4, pc} + + thumb_func_start sub_08022854 +sub_08022854: @ 0x08022854 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08022898 + adds r0, r4, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08022898 + movs r0, #7 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #5 + bl UpdateSprite + movs r0, #0x7d + bl sub_08004488 +_08022898: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802289C +sub_0802289C: @ 0x0802289C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080228CA + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x20 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x78 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl UpdateSprite +_080228CA: + pop {r4, pc} + + thumb_func_start sub_080228CC +sub_080228CC: @ 0x080228CC + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _080228E8 + adds r0, r1, #0 + movs r1, #1 + movs r2, #0x28 + bl sub_08049F64 + cmp r0, #0 + beq _080228EC + movs r0, #1 + b _080228EE +_080228E8: + subs r0, #1 + strb r0, [r1, #0xf] +_080228EC: + movs r0, #0 +_080228EE: + pop {pc} + + thumb_func_start sub_080228F0 +sub_080228F0: @ 0x080228F0 + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x81 + ldrb r0, [r2] + cmp r0, #0 + bne _08022910 + adds r0, r1, #0 + movs r1, #1 + movs r2, #0x40 + bl sub_08049F64 + cmp r0, #0 + beq _08022914 + movs r0, #1 + b _08022916 +_08022910: + subs r0, #1 + strb r0, [r2] +_08022914: + movs r0, #0 +_08022916: + pop {pc} + + thumb_func_start sub_08022918 +sub_08022918: @ 0x08022918 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08022930 @ =gUnk_080CBB64 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + pop {r4, r5, pc} + .align 2, 0 +_08022930: .4byte gUnk_080CBB64 + + thumb_func_start sub_08022934 +sub_08022934: @ 0x08022934 + push {lr} + ldr r2, _08022948 @ =gUnk_080CBB7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022948: .4byte gUnk_080CBB7C + + thumb_func_start sub_0802294C +sub_0802294C: @ 0x0802294C + push {lr} + ldr r1, _08022958 @ =gUnk_080CBB64 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08022958: .4byte gUnk_080CBB64 + + thumb_func_start nullsub_132 +nullsub_132: @ 0x0802295C + bx lr + .align 2, 0 + + thumb_func_start sub_08022960 +sub_08022960: @ 0x08022960 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + bl sub_08022A88 + pop {r4, pc} + + thumb_func_start sub_08022970 +sub_08022970: @ 0x08022970 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022986 + adds r0, r1, #0 + bl sub_08022AA4 +_08022986: + pop {pc} + + thumb_func_start sub_08022988 +sub_08022988: @ 0x08022988 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _080229A6 + adds r0, r4, #0 + bl sub_08022B20 + cmp r0, #0 + beq _080229A6 + adds r0, r4, #0 + bl sub_08022B0C + b _080229F6 +_080229A6: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080229C6 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080229F6 + movs r0, #1 + strb r0, [r4, #0x1e] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xd6 + bl sub_08004488 +_080229C6: + adds r0, r4, #0 + bl sub_080AEF88 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r1, r0, #0 + cmp r1, #0 + bne _080229F6 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080229F0 + adds r0, r4, #0 + bl sub_08022A88 + b _080229F6 +_080229F0: + movs r0, #4 + strb r0, [r4, #0xf] + strb r1, [r4, #0x1e] +_080229F6: + pop {r4, pc} + + thumb_func_start sub_080229F8 +sub_080229F8: @ 0x080229F8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _08022A3C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08022A30 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + strb r1, [r4, #0x1e] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08022B44 + b _08022A3C +_08022A30: + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xd6 + bl sub_08004488 +_08022A3C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08022A40 +sub_08022A40: @ 0x08022A40 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08022A58 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022A86 + movs r0, #1 + strb r0, [r4, #0x1e] +_08022A58: + adds r0, r4, #0 + bl sub_080AEF88 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08022A86 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022A80 + adds r0, r4, #0 + bl sub_08022A88 + b _08022A86 +_08022A80: + adds r0, r4, #0 + bl sub_08022B44 +_08022A86: + pop {r4, pc} + + thumb_func_start sub_08022A88 +sub_08022A88: @ 0x08022A88 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl Random + movs r1, #0xf + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0xe] + strb r5, [r4, #0x1e] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08022AA4 +sub_08022AA4: @ 0x08022AA4 + push {r4, r5, lr} + adds r4, r0, #0 + bl Random + adds r5, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r1, #3 + adds r0, r5, #0 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08022AE0 + lsrs r0, r5, #8 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08022AE0 + adds r0, r4, #0 + bl sub_08049EE4 + b _08022AE6 +_08022AE0: + lsrs r0, r5, #0x10 + movs r1, #0x1f + ands r0, r1 +_08022AE6: + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08022B08 + 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] +_08022B08: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08022B0C +sub_08022B0C: @ 0x08022B0C + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + strb r1, [r0, #0xe] + movs r1, #8 + strb r1, [r0, #0xf] + bl sub_08022B44 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08022B20 +sub_08022B20: @ 0x08022B20 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl sub_08049DF4 + cmp r0, #0 + beq _08022B40 + ldr r1, _08022B3C @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0x24 + movs r3, #0x24 + bl sub_080041A0 + b _08022B42 + .align 2, 0 +_08022B3C: .4byte gLinkEntity +_08022B40: + movs r0, #0 +_08022B42: + pop {r4, pc} + + thumb_func_start sub_08022B44 +sub_08022B44: @ 0x08022B44 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #8 + str r0, [r4, #0x20] + ldr r1, _08022B84 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + strb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08022B7A + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + 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] +_08022B7A: + movs r0, #0xd6 + bl sub_08004488 + pop {r4, pc} + .align 2, 0 +_08022B84: .4byte gLinkEntity + + thumb_func_start sub_08022B88 +sub_08022B88: @ 0x08022B88 + push {lr} + ldr r2, _08022B9C @ =gUnk_080CBB90 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022B9C: .4byte gUnk_080CBB90 + + thumb_func_start sub_08022BA0 +sub_08022BA0: @ 0x08022BA0 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + 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] + ldr r1, _08022BD0 @ =gUnk_080CBBA0 + adds r0, r4, #0 + bl sub_0800129E + adds r0, r4, #0 + bl sub_08022EAC + pop {r4, pc} + .align 2, 0 +_08022BD0: .4byte gUnk_080CBBA0 + + thumb_func_start sub_08022BD4 +sub_08022BD4: @ 0x08022BD4 + push {lr} + ldr r2, _08022BE8 @ =gUnk_080CBBB4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022BE8: .4byte gUnk_080CBBB4 + + thumb_func_start sub_08022BEC +sub_08022BEC: @ 0x08022BEC + push {lr} + adds r2, r0, #0 + movs r0, #0x7a + adds r0, r0, r2 + mov ip, r0 + adds r3, r2, #0 + adds r3, #0x45 + ldrb r0, [r0] + ldrb r1, [r3] + cmp r0, r1 + beq _08022C0A + adds r1, r2, #0 + adds r1, #0x7b + movs r0, #0x1e + strb r0, [r1] +_08022C0A: + ldrb r0, [r3] + mov r1, ip + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #0xe] + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r2, #0x15] + ldrb r0, [r2, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r2, #0x14] + strb r0, [r2, #0x1e] + ldr r0, [r2, #0x54] + adds r3, r2, #0 + adds r3, #0x3d + ldrb r1, [r3] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r2, #0x7c] + ldrb r1, [r3] + adds r0, #0x3d + strb r1, [r0] + adds r0, r2, #0 + adds r0, #0x80 + ldr r0, [r0] + ldrb r1, [r3] + adds r0, #0x3d + strb r1, [r0] + ldr r1, _08022C54 @ =gUnk_080CBBA0 + adds r0, r2, #0 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08022C54: .4byte gUnk_080CBBA0 + + thumb_func_start sub_08022C58 +sub_08022C58: @ 0x08022C58 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + ldrb r1, [r7, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7, #0x10] + ldr r0, _08022D3C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _08022D34 + movs r0, #0xd + movs r1, #1 + bl CreateEnemy + mov sb, r0 + str r0, [r7, #0x54] + mov r2, sb + adds r2, #0x29 + ldrb r1, [r2] + movs r4, #8 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #5 + mov r8, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r2] + mov r0, sb + str r7, [r0, #0x50] + adds r0, r7, #0 + mov r1, sb + bl CopyPosition + movs r0, #0xd + movs r1, #2 + bl CreateEnemy + adds r6, r0, #0 + mov r1, sb + str r6, [r1, #0x54] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r2] + str r7, [r6, #0x50] + adds r0, r7, #0 + adds r1, r6, #0 + bl CopyPosition + movs r0, #0xd + movs r1, #3 + bl CreateEnemy + adds r5, r0, #0 + str r5, [r6, #0x54] + adds r1, r5, #0 + adds r1, #0x29 + ldrb r0, [r1] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r1] + str r7, [r5, #0x50] + adds r0, r7, #0 + adds r1, r5, #0 + bl CopyPosition + adds r0, r7, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r7, #0xc] + strb r0, [r7, #0xe] + strb r0, [r7, #0xf] + ldrb r0, [r7, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + str r7, [r7, #0x50] + mov r1, sb + str r1, [r7, #0x54] + str r6, [r7, #0x7c] + adds r0, r7, #0 + adds r0, #0x80 + str r5, [r0] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r7, #0x15] + ldrb r0, [r7, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r7, #0x14] + strb r0, [r7, #0x1e] + adds r0, r7, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x35 + strb r1, [r0] +_08022D34: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08022D3C: .4byte gUnk_03003DBC + + thumb_func_start sub_08022D40 +sub_08022D40: @ 0x08022D40 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x7b + ldrb r1, [r2] + cmp r1, #0 + beq _08022D66 + adds r0, r1, #0 + adds r0, #0xff + strb r0, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08022D8E + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #7 + ands r0, r1 + b _08022D8A +_08022D66: + adds r0, r4, #0 + bl sub_08022F14 + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08022D8E + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 +_08022D8A: + strb r0, [r4, #0x14] + strb r0, [r4, #0x1e] +_08022D8E: + pop {r4, pc} + + thumb_func_start sub_08022D90 +sub_08022D90: @ 0x08022D90 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + beq _08022DE0 + ldr r1, _08022DDC @ =gUnk_080CBBBC + ldrb r0, [r5, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + ldr r4, [r5, #0x50] + ldrb r2, [r4, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + adds r4, #0x38 + ldrb r1, [r4] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + b _08022DE6 + .align 2, 0 +_08022DDC: .4byte gUnk_080CBBBC +_08022DE0: + adds r0, r5, #0 + bl sub_0805E7BC +_08022DE6: + pop {r4, r5, pc} + + thumb_func_start sub_08022DE8 +sub_08022DE8: @ 0x08022DE8 + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x7c + movs r1, #0x88 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + ldr r0, [r3, #0x50] + ldrb r0, [r0, #0x14] + strb r0, [r3, #0x14] + adds r2, r3, #0 + adds r2, #0x84 + ldrb r1, [r3, #0x14] + lsls r0, r1, #4 + adds r0, r0, r1 + lsls r1, r0, #8 + adds r0, r0, r1 + lsls r1, r0, #0x10 + adds r0, r0, r1 + str r0, [r2] + ldrb r0, [r3, #0xa] + cmp r0, #3 + beq _08022E38 + adds r0, #7 + b _08022E3C +_08022E38: + ldrb r0, [r3, #0x14] + adds r0, #0xa +_08022E3C: + strb r0, [r3, #0x1e] + pop {pc} + + thumb_func_start sub_08022E40 +sub_08022E40: @ 0x08022E40 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r2, [r4, #0x50] + adds r2, #0x79 + ldrb r0, [r2] + adds r0, #1 + movs r3, #7 + ands r0, r3 + adds r0, #0x7c + adds r0, r4, r0 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + subs r0, #8 + lsrs r1, r1, #4 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r5, [r4, #0x2e] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + subs r1, #8 + ldrh r0, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r2] + adds r0, #1 + ands r0, r3 + lsls r0, r0, #2 + ldr r1, [r1] + lsrs r1, r0 + movs r0, #7 + ands r1, r0 + strb r1, [r4, #0x14] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _08022EA2 + adds r0, r1, #0 + adds r0, #0xa + strb r0, [r4, #0x1e] + b _08022EA8 +_08022EA2: + adds r0, r4, #0 + bl sub_08022EAC +_08022EA8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08022EAC +sub_08022EAC: @ 0x08022EAC + push {r4, r5, lr} + mov ip, r0 + ldr r1, [r0, #0x54] + cmp r1, #0 + beq _08022F12 + ldr r0, [r0, #0x50] + adds r0, #0x79 + ldrb r0, [r0] + movs r4, #7 + adds r3, r4, #0 + ands r3, r0 + adds r3, r3, r1 + adds r3, #0x7c + mov r0, ip + ldrh r1, [r0, #0x2e] + adds r0, #0x74 + ldrb r0, [r0] + subs r1, r1, r0 + adds r1, #8 + movs r5, #0xf + ands r1, r5 + mov r2, ip + ldrh r0, [r2, #0x32] + adds r2, #0x76 + ldrb r2, [r2] + subs r0, r0, r2 + adds r0, #8 + ands r0, r5 + lsls r0, r0, #4 + adds r1, r1, r0 + strb r1, [r3] + mov r1, ip + ldr r0, [r1, #0x50] + adds r0, #0x79 + ldrb r1, [r0] + adds r0, r4, #0 + ands r0, r1 + lsls r0, r0, #2 + mov r2, ip + ldrb r1, [r2, #0x14] + ands r4, r1 + lsls r4, r0 + movs r2, #0xf + lsls r2, r0 + mov r0, ip + ldr r1, [r0, #0x54] + adds r1, #0x84 + ldr r0, [r1] + bics r0, r2 + orrs r4, r0 + str r4, [r1] +_08022F12: + pop {r4, r5, pc} + + thumb_func_start sub_08022F14 +sub_08022F14: @ 0x08022F14 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08022F4E + adds r0, r4, #0 + bl sub_08049EE4 + ldrb r1, [r4, #0x15] + subs r2, r0, r1 + movs r1, #0x1f + ands r2, r1 + adds r0, r2, #4 + ands r0, r1 + cmp r0, #8 + bls _08022F4E + movs r0, #8 + strb r0, [r4, #0xf] + cmp r2, #0xf + bhi _08022F46 + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #1 + b _08022F4C +_08022F46: + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0xff +_08022F4C: + strb r0, [r1] +_08022F4E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08022F9E + movs r0, #4 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x78 + cmp r0, #0 + bne _08022F84 + movs r0, #8 + strb r0, [r4, #0xf] + bl Random + ldr r2, _08022FA0 @ =gUnk_080CBBC4 + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r5] +_08022F84: + ldrb r0, [r5] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + strb r0, [r4, #0x1e] +_08022F9E: + pop {r4, r5, pc} + .align 2, 0 +_08022FA0: .4byte gUnk_080CBBC4 + + thumb_func_start sub_08022FA4 +sub_08022FA4: @ 0x08022FA4 + push {lr} + ldr r1, _08022FB0 @ =gUnk_080CBBC8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08022FB0: .4byte gUnk_080CBBC8 + + thumb_func_start sub_08022FB4 +sub_08022FB4: @ 0x08022FB4 + push {lr} + ldr r2, _08022FC8 @ =gUnk_080CBBDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08022FC8: .4byte gUnk_080CBBDC + + thumb_func_start nullsub_133 +nullsub_133: @ 0x08022FCC + bx lr + .align 2, 0 + + thumb_func_start sub_08022FD0 +sub_08022FD0: @ 0x08022FD0 + push {lr} + movs r3, #1 + movs r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r0, #0x18] + movs r1, #0 + bl sub_08023000 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08022FEC +sub_08022FEC: @ 0x08022FEC + push {lr} + movs r1, #0x80 + bl sub_08023000 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08022FF8 +sub_08022FF8: @ 0x08022FF8 + bx lr + .align 2, 0 + + thumb_func_start sub_08022FFC +sub_08022FFC: @ 0x08022FFC + bx lr + .align 2, 0 + + thumb_func_start sub_08023000 +sub_08023000: @ 0x08023000 + push {r4, lr} + adds r4, r0, #0 + cmp r1, #0x80 + bne _0802300E + bl sub_080042B8 + b _08023014 +_0802300E: + adds r0, r4, #0 + bl LoadAnimation +_08023014: + movs r2, #0x80 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + cmp r0, #0x40 + bne _08023022 + rsbs r2, r2, #0 +_08023022: + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0x80 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + + thumb_func_start sub_08023038 +sub_08023038: @ 0x08023038 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r5, [r4, #0x2e] + ldrh r6, [r4, #0x32] + ldrb r1, [r4, #0xa] + cmp r1, #0 + bne _0802306C + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08023052 + adds r0, r4, #0 + bl sub_0802390C +_08023052: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldr r1, _08023068 @ =gUnk_080CBC38 + adds r0, r4, #0 + bl sub_0800129E + b _08023090 + .align 2, 0 +_08023068: .4byte gUnk_080CBC38 +_0802306C: + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + beq _08023088 + cmp r1, #8 + beq _08023080 + adds r0, r4, #0 + bl sub_080235BC + b _08023090 +_08023080: + adds r0, r4, #0 + bl sub_08023730 + b _08023090 +_08023088: + adds r0, r4, #0 + bl sub_0805E7BC + b _080230CA +_08023090: + ldr r0, [r4, #0x50] + adds r2, r0, #0 + adds r2, #0x7c + adds r0, #0x7d + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + beq _080230CA + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _080230CA + ldrb r2, [r2] + subs r2, #1 + movs r0, #0xf + ands r2, r0 + adds r2, #0x78 + adds r2, r1, r2 + ldrh r1, [r4, #0x2e] + subs r1, r1, r5 + adds r1, #8 + movs r3, #0xf + ands r1, r3 + lsls r1, r1, #4 + ldrh r0, [r4, #0x32] + subs r0, r0, r6 + adds r0, #8 + ands r0, r3 + orrs r1, r0 + strb r1, [r2] +_080230CA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080230CC +sub_080230CC: @ 0x080230CC + push {lr} + ldr r2, _080230E0 @ =gUnk_080CBC50 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080230E0: .4byte gUnk_080CBC50 + + thumb_func_start sub_080230E4 +sub_080230E4: @ 0x080230E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0xff + bne _08023132 + movs r2, #0 + movs r0, #7 + strb r0, [r5, #0xc] + movs r3, #1 + strb r3, [r5, #0xe] + strb r2, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x85 + strb r0, [r1] + subs r1, #2 + movs r0, #0xf8 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7f + strb r2, [r0] + subs r0, #4 + strb r2, [r0] + subs r0, #0x3a + ldrb r0, [r0] + cmp r0, #0x80 + beq _0802311E + cmp r0, #0x9e + bne _08023128 +_0802311E: + strb r2, [r5, #0xb] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0x14 + b _08023130 +_08023128: + strb r3, [r5, #0xb] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #8 +_08023130: + strb r0, [r1] +_08023132: + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802318A + adds r0, r5, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + bne _0802318A + ldrb r0, [r5, #0xc] + cmp r0, #7 + bne _0802318A + ldr r4, _08023194 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + 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] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r4, #0x3d + movs r0, #0xec + strb r0, [r4] + ldr r2, _08023198 @ =gLinkState + movs r0, #0x41 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + ldr r1, _0802319C @ =0xFFF7FFFF + ands r0, r1 + str r0, [r2, #0x30] +_0802318A: + ldr r1, _080231A0 @ =gUnk_080CBC38 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08023194: .4byte gLinkEntity +_08023198: .4byte gLinkState +_0802319C: .4byte 0xFFF7FFFF +_080231A0: .4byte gUnk_080CBC38 + + thumb_func_start sub_080231A4 +sub_080231A4: @ 0x080231A4 + push {lr} + adds r2, r0, #0 + adds r2, #0x7c + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + bl sub_08001324 + + thumb_func_start nullsub_134 +nullsub_134: @ 0x080231B4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_135 +nullsub_135: @ 0x080231B8 + bx lr + .align 2, 0 + + thumb_func_start sub_080231BC +sub_080231BC: @ 0x080231BC + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08023280 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x3f + bhi _0802327E + movs r0, #0xf + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r4, [r6, #0x54] + str r6, [r4, #0x50] + movs r0, #0xf + movs r1, #2 + bl CreateEnemy + adds r5, r0, #0 + str r5, [r4, #0x54] + str r6, [r5, #0x50] + movs r0, #0xf + movs r1, #3 + bl CreateEnemy + adds r4, r0, #0 + str r4, [r5, #0x54] + str r6, [r4, #0x50] + movs r0, #0xf + movs r1, #4 + bl CreateEnemy + adds r5, r0, #0 + str r5, [r4, #0x54] + str r6, [r5, #0x50] + movs r0, #0xf + movs r1, #5 + bl CreateEnemy + adds r4, r0, #0 + str r4, [r5, #0x54] + str r6, [r4, #0x50] + movs r0, #0xf + movs r1, #6 + bl CreateEnemy + adds r5, r0, #0 + str r5, [r4, #0x54] + str r6, [r5, #0x50] + movs r0, #0xf + movs r1, #7 + bl CreateEnemy + adds r4, r0, #0 + str r4, [r5, #0x54] + str r6, [r4, #0x50] + movs r0, #0xf + movs r1, #8 + bl CreateEnemy + str r0, [r4, #0x54] + str r4, [r0, #0x74] + str r6, [r0, #0x50] + movs r1, #0 + str r1, [r0, #0x54] + adds r0, r6, #0 + bl sub_0804A720 + movs r0, #6 + strb r0, [r6, #0xc] + movs r1, #0x1e + strb r1, [r6, #0xe] + str r6, [r6, #0x50] + adds r0, r6, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r1, [r6, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r6, #0x1a] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r6, #0x15] + ldrb r0, [r6, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r6, #0x14] + ldrb r1, [r6, #0x14] + adds r0, r6, #0 + bl UpdateSprite +_0802327E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023280: .4byte gUnk_03003DBC + + thumb_func_start nullsub_136 +nullsub_136: @ 0x08023284 + bx lr + .align 2, 0 + + thumb_func_start sub_08023288 +sub_08023288: @ 0x08023288 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08023324 + ldrb r1, [r7, #0xe] + adds r0, r1, #1 + strb r0, [r7, #0xe] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08023324 + bl Random + adds r4, r0, #0 + movs r0, #0x1e + ands r4, r0 + movs r0, #0 + mov r8, r0 + ldr r2, _08023308 @ =gLinkEntity + mov sb, r2 + ldr r0, _0802330C @ =gUnk_080CBC70 + mov sl, r0 +_080232C2: + mov r2, sb + movs r0, #0x2e + ldrsh r1, [r2, r0] + mov r2, sl + adds r0, r4, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r6, r1, r0 + mov r0, sb + movs r2, #0x32 + ldrsh r1, [r0, r2] + adds r0, r4, #1 + add r0, sl + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r1, r0 + ldr r0, _08023310 @ =gUnk_03001198 + ldrb r2, [r0] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080002A4 + bl sub_08023A38 + cmp r0, #0 + beq _08023314 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_08023990 + b _08023324 + .align 2, 0 +_08023308: .4byte gLinkEntity +_0802330C: .4byte gUnk_080CBC70 +_08023310: .4byte gUnk_03001198 +_08023314: + adds r4, #2 + movs r0, #0x1e + ands r4, r0 + movs r2, #1 + add r8, r2 + mov r0, r8 + cmp r0, #0xf + bls _080232C2 +_08023324: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08023330 +sub_08023330: @ 0x08023330 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023394 + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x19 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x78 + movs r4, #0 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] + bl Random + movs r1, #0x1c + ands r0, r1 + strb r0, [r5, #0x15] + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x7b + strb r4, [r0] + adds r0, #4 + strb r4, [r0] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_08023A88 + ldr r1, [r5, #0x54] + adds r0, r5, #0 + bl CopyPosition + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl CreateFx +_08023394: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08023398 +sub_08023398: @ 0x08023398 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r0, #3 + ldrb r0, [r0] + cmp r0, #0 + beq _080233C0 + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _080233C0 + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #1 + strh r0, [r1] +_080233C0: + adds r4, r5, #0 + adds r4, #0x78 + ldrh r0, [r4] + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08023416 + adds r0, r5, #0 + bl sub_080002A0 + bl sub_08023A38 + cmp r0, #0 + beq _08023412 + movs r0, #5 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x7f + movs r0, #0 + strb r0, [r1] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x85 + strb r0, [r1] + ldr r1, [r5, #0x54] + movs r0, #1 + strb r0, [r1, #0xe] + adds r0, r5, #0 + bl sub_08023A68 + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl CreateFx + b _0802349C +_08023412: + movs r0, #0x28 + strh r0, [r4] +_08023416: + adds r0, r5, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + beq _08023426 + adds r0, r5, #0 + bl sub_08023AB0 +_08023426: + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _08023440 + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802349C + movs r0, #0x19 + strb r0, [r5, #0xe] + b _0802349C +_08023440: + ldr r4, [r5, #0x2c] + ldr r6, [r5, #0x30] + adds r0, r5, #0 + bl sub_080AEF88 + ldr r0, [r5, #0x2c] + cmp r0, r4 + bne _08023460 + ldr r0, [r5, #0x30] + cmp r0, r6 + bne _08023460 + adds r1, r5, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_08023460: + ldr r0, _080234A0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0802349C + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004596 + ldrb r0, [r5, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + ldrb r1, [r5, #0x14] + cmp r0, r1 + beq _0802349C + strb r0, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x7b + ldrb r1, [r1] + adds r1, r0, r1 + adds r0, r5, #0 + bl UpdateSprite +_0802349C: + pop {r4, r5, r6, pc} + .align 2, 0 +_080234A0: .4byte gUnk_030010A0 + + thumb_func_start sub_080234A4 +sub_080234A4: @ 0x080234A4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + beq _080234D6 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0xa + ands r0, r1 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] +_080234D6: + pop {r4, pc} + + thumb_func_start sub_080234D8 +sub_080234D8: @ 0x080234D8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802351A + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x1a] + subs r0, #0x12 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r4, #0x1a] + bl Random + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08023A88 +_0802351A: + pop {r4, pc} + + thumb_func_start sub_0802351C +sub_0802351C: @ 0x0802351C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0802355A + ldrb r0, [r7, #0xb] + cmp r0, #1 + beq _08023534 + ldr r0, _080235A8 @ =gLinkEntity + ldrb r0, [r0, #0x1e] + cmp r0, #0xff + bne _0802355A +_08023534: + movs r0, #0 + strb r0, [r7, #0xe] + ldr r1, [r7, #0x54] + movs r0, #3 + strb r0, [r1, #0xc] + ldr r1, [r7, #0x54] + adds r0, r7, #0 + adds r0, #0x80 + ldrb r0, [r0] + strb r0, [r1, #0xf] + ldr r0, [r7, #0x54] + ldrb r1, [r0, #0x14] + adds r1, #1 + bl UpdateSprite + ldrb r1, [r7, #0x14] + adds r0, r7, #0 + bl UpdateSprite +_0802355A: + adds r0, r7, #0 + adds r0, #0x7f + ldrb r0, [r0] + cmp r0, #0 + bne _080235B4 + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _080235B8 + ldr r5, _080235A8 @ =gLinkEntity + ldrb r0, [r7, #0x14] + movs r4, #7 + adds r2, r4, #0 + ands r2, r0 + strb r2, [r5, #0x14] + ldr r3, _080235AC @ =gLinkState + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r3, #0x30] + ldr r6, _080235B0 @ =gUnk_080CBC90 + adds r2, r2, r6 + movs r3, #0 + ldrsb r3, [r2, r3] + lsls r3, r3, #0x10 + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + ldrb r0, [r7, #0x14] + ands r4, r0 + adds r4, r4, r6 + ldrb r0, [r4] + rsbs r0, r0, #0 + adds r5, #0x63 + strb r0, [r5] + b _080235B8 + .align 2, 0 +_080235A8: .4byte gLinkEntity +_080235AC: .4byte gLinkState +_080235B0: .4byte gUnk_080CBC90 +_080235B4: + movs r0, #4 + strb r0, [r7, #0xc] +_080235B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080235BC +sub_080235BC: @ 0x080235BC + push {lr} + ldr r2, _080235D0 @ =gUnk_080CBC98 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080235D0: .4byte gUnk_080CBC98 + + thumb_func_start sub_080235D4 +sub_080235D4: @ 0x080235D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, [r4, #0x50] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080239F0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080235F6 + movs r0, #0x10 + b _080235F8 +_080235F6: + movs r0, #0x12 +_080235F8: + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite + pop {r4, pc} + + thumb_func_start sub_08023604 +sub_08023604: @ 0x08023604 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + adds r0, r0, r2 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0x88 + beq _08023640 + movs r1, #0 + movs r0, #2 + strb r0, [r2, #0xc] + strb r1, [r2, #0xe] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + bl sub_08023644 +_08023640: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08023644 +sub_08023644: @ 0x08023644 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x17 + bne _08023692 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08023692 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _08023692 + movs r6, #0x32 + ldrsh r1, [r4, r6] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _08023692 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + strb r2, [r0, #0xe] + adds r0, r4, #0 + bl sub_080239F0 +_08023692: + adds r0, r5, #0 + adds r0, #0x7c + adds r1, r5, #0 + adds r1, #0x7d + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080236F2 + movs r2, #0xf + adds r1, r2, #0 + ands r1, r0 + adds r1, #0x78 + adds r1, r4, r1 + ldrb r0, [r1] + lsrs r0, r0, #4 + ldr r3, _080236F4 @ =0x0000FFF8 + adds r0, r0, r3 + ldrh r6, [r4, #0x2e] + adds r0, r0, r6 + strh r0, [r4, #0x2e] + ldrb r0, [r1] + ands r2, r0 + adds r2, r2, r3 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_080236F2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080236F4: .4byte 0x0000FFF8 + + thumb_func_start sub_080236F8 +sub_080236F8: @ 0x080236F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802372E + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, [r4, #0x54] + movs r0, #3 + strb r0, [r1, #0xc] + ldr r1, [r4, #0x54] + ldr r0, [r4, #0x50] + adds r0, #0x80 + ldrb r0, [r0] + strb r0, [r1, #0xf] + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x14] + adds r1, #1 + bl UpdateSprite + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite +_0802372E: + pop {r4, pc} + + thumb_func_start sub_08023730 +sub_08023730: @ 0x08023730 + push {lr} + ldr r2, _08023744 @ =gUnk_080CBCA8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08023744: .4byte gUnk_080CBCA8 + + thumb_func_start sub_08023748 +sub_08023748: @ 0x08023748 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0x14] + ldr r1, [r4, #0x50] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_080239F0 + adds r0, r4, #0 + bl sub_08023A68 + pop {r4, pc} + + thumb_func_start sub_0802376C +sub_0802376C: @ 0x0802376C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _0802379A + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xf + bhi _0802379A + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + adds r0, r4, #0 + bl sub_08004274 +_0802379A: + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + adds r0, r0, r4 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0x88 + beq _080237D4 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x50] + adds r0, #0x7f + movs r1, #1 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08023A88 + adds r0, r4, #0 + bl sub_080237D8 +_080237D4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080237D8 +sub_080237D8: @ 0x080237D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x17 + bne _0802382E + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802382E + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0802382E + movs r6, #0x32 + ldrsh r1, [r4, r6] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0802382E + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x7f + strb r2, [r0] + adds r0, r4, #0 + bl sub_080239F0 + adds r0, r4, #0 + bl sub_08023A68 +_0802382E: + adds r0, r5, #0 + adds r0, #0x7c + adds r1, r5, #0 + adds r1, #0x7d + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _0802388E + movs r2, #0xf + adds r1, r2, #0 + ands r1, r0 + adds r1, #0x78 + adds r1, r4, r1 + ldrb r0, [r1] + lsrs r0, r0, #4 + ldr r3, _08023890 @ =0x0000FFF8 + adds r0, r0, r3 + ldrh r6, [r4, #0x2e] + adds r0, r0, r6 + strh r0, [r4, #0x2e] + ldrb r0, [r1] + ands r2, r0 + adds r2, r2, r3 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_0802388E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023890: .4byte 0x0000FFF8 + + thumb_func_start sub_08023894 +sub_08023894: @ 0x08023894 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08023900 + movs r0, #2 + strb r0, [r5, #0xc] + ldr r0, [r5, #0x50] + adds r0, #0x7f + movs r1, #1 + strb r1, [r0] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl UpdateSprite + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _08023900 + ldr r2, _08023904 @ =gLinkState + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2, #0x30] + ldr r4, _08023908 @ =gLinkEntity + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + strh r0, [r4, #0x32] + ldr r0, [r5, #0x74] + adds r1, r5, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xc + strb r0, [r1] + subs r0, #0x1c + bl ModHealth + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C +_08023900: + pop {r4, r5, pc} + .align 2, 0 +_08023904: .4byte gLinkState +_08023908: .4byte gLinkEntity + + thumb_func_start sub_0802390C +sub_0802390C: @ 0x0802390C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023932 + ldr r2, [r5, #0x54] + adds r3, r5, #0 + adds r3, #0x3d +_08023922: + ldrb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3d + strb r0, [r1] + ldr r2, [r2, #0x54] + cmp r2, #0 + bne _08023922 + b _0802398C +_08023932: + ldr r2, [r5, #0x54] + b _0802393C +_08023936: + ldr r2, [r2, #0x54] + cmp r2, #0 + beq _0802398C +_0802393C: + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023936 + movs r0, #0x45 + adds r0, r0, r2 + mov ip, r0 + ldrb r1, [r0] + movs r4, #0xff + subs r0, r4, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08023936 + adds r0, r1, #0 + orrs r0, r4 + mov r1, ip + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3d + ldrb r4, [r0] + adds r1, r5, #0 + adds r1, #0x45 + ldrb r0, [r1] + cmp r0, r3 + blo _0802397A + subs r0, r0, r3 + b _0802397C +_0802397A: + movs r0, #0 +_0802397C: + strb r0, [r1] + adds r2, r5, #0 +_08023980: + adds r0, r2, #0 + adds r0, #0x3d + strb r4, [r0] + ldr r2, [r2, #0x54] + cmp r2, #0 + bne _08023980 +_0802398C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08023990 +sub_08023990: @ 0x08023990 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #3 + strb r0, [r5, #0xc] + ldrb r3, [r5, #0x18] + subs r0, #7 + ands r0, r3 + movs r3, #1 + orrs r0, r3 + strb r0, [r5, #0x18] + movs r0, #0x55 + strb r0, [r5, #0x1a] + adds r4, r5, #0 + adds r4, #0x29 + ldrb r0, [r4] + movs r3, #7 + orrs r0, r3 + strb r0, [r4] + strh r1, [r5, #0x2e] + strh r2, [r5, #0x32] + ldr r0, _080239EC @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + bl UpdateSpriteOrderAndFlip + adds r0, r5, #0 + movs r1, #0x16 + bl UpdateSprite + ldr r4, [r5, #0x54] +_080239D4: + adds r0, r4, #0 + bl sub_080239F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl CopyPosition + ldr r4, [r4, #0x54] + cmp r4, #0 + bne _080239D4 + pop {r4, r5, pc} + .align 2, 0 +_080239EC: .4byte gLinkEntity + + thumb_func_start sub_080239F0 +sub_080239F0: @ 0x080239F0 + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x78 + movs r0, #0x88 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + bx lr + + thumb_func_start sub_08023A38 +sub_08023A38: @ 0x08023A38 + push {lr} + adds r1, r0, #0 + cmp r1, #0x1a + beq _08023A5A + cmp r1, #0x29 + beq _08023A5A + ldr r0, _08023A60 @ =gUnk_080B37A0 + adds r0, r1, r0 + ldrb r1, [r0] + cmp r1, #9 + beq _08023A5A + cmp r1, #0xb + beq _08023A5A + cmp r1, #0xa + beq _08023A5A + cmp r1, #0xc + bne _08023A64 +_08023A5A: + movs r0, #1 + b _08023A66 + .align 2, 0 +_08023A60: .4byte gUnk_080B37A0 +_08023A64: + movs r0, #0 +_08023A66: + pop {pc} + + thumb_func_start sub_08023A68 +sub_08023A68: @ 0x08023A68 + push {r4, lr} + adds r4, r0, #0 + movs r1, #5 + bl sub_0801D2B4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x17 + bl UpdateSprite + pop {r4, pc} + + thumb_func_start sub_08023A88 +sub_08023A88: @ 0x08023A88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x22 + bl sub_0801D2B4 + 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 + strb r0, [r2] + adds r0, r4, #0 + adds r1, r5, #0 + bl UpdateSprite + pop {r4, r5, pc} + + thumb_func_start sub_08023AB0 +sub_08023AB0: @ 0x08023AB0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r4, #0 + adds r7, #0x7b + ldrb r0, [r7] + cmp r0, #8 + bne _08023AF6 + adds r5, r4, #0 + adds r5, #0x7e + ldrb r0, [r5] + adds r6, r0, #0 + cmp r6, #0 + bne _08023B00 + adds r0, r4, #0 + bl sub_08023B38 + cmp r0, #0 + beq _08023ADE + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0x1d + bhi _08023B34 +_08023ADE: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x85 + strb r0, [r1] + strb r6, [r7] + movs r0, #0x1e + strb r0, [r5] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite + b _08023B34 +_08023AF6: + adds r5, r4, #0 + adds r5, #0x7e + ldrb r0, [r5] + cmp r0, #0 + beq _08023B06 +_08023B00: + subs r0, #1 + strb r0, [r5] + b _08023B34 +_08023B06: + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0x59 + bls _08023B34 + adds r0, r4, #0 + bl sub_08023B38 + cmp r0, #0 + beq _08023B34 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x87 + strb r0, [r1] + movs r0, #8 + strb r0, [r7] + movs r0, #0xa + strb r0, [r5] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl UpdateSprite +_08023B34: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08023B38 +sub_08023B38: @ 0x08023B38 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r5, r0, #0 + cmp r5, #0 + bne _08023B4C + movs r0, #0 + b _08023B8E +_08023B4C: + movs r0, #0x2e + ldrsh r2, [r4, r0] + ldr r3, _08023B90 @ =gUnk_080CBCB8 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + adds r1, r0, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r2, r2, r1 + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r0, #1 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + movs r3, #0 + movs r4, #0x2e + ldrsh r0, [r5, r4] + subs r0, r0, r2 + adds r0, #0x14 + cmp r0, #0x28 + bhi _08023B8C + movs r6, #0x32 + ldrsh r0, [r5, r6] + subs r0, r0, r1 + adds r0, #0x14 + cmp r0, #0x28 + bhi _08023B8C + movs r3, #1 +_08023B8C: + adds r0, r3, #0 +_08023B8E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023B90: .4byte gUnk_080CBCB8 + + thumb_func_start sub_08023B94 +sub_08023B94: @ 0x08023B94 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08023BAC + ldr r1, _08023BA8 @ =gUnk_080CBDBC + adds r0, r5, #0 + bl sub_0800129E + b _08023BEC + .align 2, 0 +_08023BA8: .4byte gUnk_080CBDBC +_08023BAC: + cmp r0, #0 + bne _08023C00 + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08023BD8 + adds r0, r5, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08023BD8 + ldr r0, _08023BD4 @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08023C06 + .align 2, 0 +_08023BD4: .4byte gUnk_080012C8 +_08023BD8: + ldr r4, _08023BFC @ =gUnk_080CBDD4 + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 +_08023BEC: + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _08023C06 + .align 2, 0 +_08023BFC: .4byte gUnk_080CBDD4 +_08023C00: + adds r0, r5, #0 + bl sub_08023E10 +_08023C06: + pop {r4, r5, pc} + + thumb_func_start sub_08023C08 +sub_08023C08: @ 0x08023C08 + push {lr} + ldr r2, _08023C1C @ =gUnk_080CBDEC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08023C1C: .4byte gUnk_080CBDEC + + thumb_func_start sub_08023C20 +sub_08023C20: @ 0x08023C20 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08023C34 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08023C34: + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08023C48 + ldr r1, _08023C44 @ =gUnk_080CBDBC + adds r0, r4, #0 + bl sub_0804AA30 + b _08023C50 + .align 2, 0 +_08023C44: .4byte gUnk_080CBDBC +_08023C48: + ldr r1, _08023C54 @ =gUnk_080CBDD4 + adds r0, r4, #0 + bl sub_0804AA30 +_08023C50: + pop {r4, pc} + .align 2, 0 +_08023C54: .4byte gUnk_080CBDD4 + + thumb_func_start nullsub_137 +nullsub_137: @ 0x08023C58 + bx lr + .align 2, 0 + + thumb_func_start sub_08023C5C +sub_08023C5C: @ 0x08023C5C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl Random + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + strb r0, [r4, #0xe] + bl Random + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite + pop {r4, pc} + + thumb_func_start sub_08023C8C +sub_08023C8C: @ 0x08023C8C + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08023E54 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08023CDC + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + beq _08023CBC + movs r0, #8 + strb r0, [r4, #0xe] + b _08023CDC +_08023CBC: + bl Random + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08023E9C + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite +_08023CDC: + pop {r4, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/code_08023E10.s b/asm/code_08023E10.s index c822d24a..36f8e890 100644 --- a/asm/code_08023E10.s +++ b/asm/code_08023E10.s @@ -8802,7 +8802,7 @@ sub_0802805C: @ 0x0802805C push {r4, r5, lr} adds r5, r0, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation bl sub_0807953C cmp r0, #0 beq _0802807E diff --git a/asm/code_08028E40.s b/asm/code_08028E40.s index 600782fe..8eb740f3 100644 --- a/asm/code_08028E40.s +++ b/asm/code_08028E40.s @@ -769,7 +769,7 @@ sub_080293B4: @ 0x080293B4 adds r1, r1, r3 ldrb r2, [r1] movs r1, #0xff - bl sub_0804A7E0 + bl CreateDeathFx pop {pc} .align 2, 0 _080293D4: .4byte gUnk_080CCC34 diff --git a/asm/code_0802B234.s b/asm/code_0802B234.s index c9d3a844..0bb54b1f 100644 --- a/asm/code_0802B234.s +++ b/asm/code_0802B234.s @@ -1490,7 +1490,7 @@ sub_0802BD10: @ 0x0802BD10 ands r1, r2 strb r1, [r0, #0x10] movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation pop {pc} .align 2, 0 @@ -1632,7 +1632,7 @@ sub_0802BE18: @ 0x0802BE18 push {r4, lr} adds r4, r0, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] @@ -8613,7 +8613,7 @@ sub_0802F284: @ 0x0802F284 bls _0802F298 adds r0, r4, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation b _0802F29E _0802F298: adds r0, r4, #0 @@ -10809,7 +10809,7 @@ sub_08030338: @ 0x08030338 _0803034C: adds r0, r4, #0 movs r1, #3 - bl sub_08004276 + bl UpdateSpriteAnimation adds r0, r4, #0 adds r0, #0x84 ldr r0, [r0] @@ -13287,7 +13287,7 @@ sub_080315BC: @ 0x080315BC strb r0, [r4, #0xe] adds r0, r4, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation b _080315FC _080315D4: adds r0, r4, #0 @@ -18505,7 +18505,7 @@ sub_08033C94: @ 0x08033C94 push {r4, lr} adds r4, r0, #0 movs r1, #3 - bl sub_08004276 + bl UpdateSpriteAnimation adds r1, r4, #0 adds r1, #0x79 ldrb r0, [r1] diff --git a/asm/code_08033FFC.s b/asm/code_08033FFC.s index 5973bf86..8d072ff6 100644 --- a/asm/code_08033FFC.s +++ b/asm/code_08033FFC.s @@ -8116,7 +8116,7 @@ _08037CD6: adds r0, r4, #0 movs r1, #0xff movs r2, #0x58 - bl sub_0804A7E0 + bl CreateDeathFx pop {r4, pc} .align 2, 0 @@ -8158,7 +8158,7 @@ _08037D1C: _08037D26: adds r0, r4, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 @@ -8183,7 +8183,7 @@ sub_08037D54: @ 0x08037D54 push {r4, lr} adds r4, r0, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation adds r2, r4, #0 adds r2, #0x5a ldrb r1, [r2] @@ -8457,7 +8457,7 @@ _08037F6E: _08037F78: adds r0, r4, #0 movs r1, #0xff - bl sub_0804A7E0 + bl CreateDeathFx pop {r4, pc} .align 2, 0 @@ -8513,7 +8513,7 @@ sub_08037FE0: @ 0x08037FE0 push {r4, lr} adds r4, r0, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation ldrb r0, [r4, #0xe] adds r2, r0, #0 cmp r2, #0 @@ -8567,7 +8567,7 @@ sub_08038048: @ 0x08038048 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation adds r0, r4, #0 bl sub_080AEF88 movs r0, #0x36 @@ -8669,7 +8669,7 @@ sub_08038110: @ 0x08038110 push {r4, lr} adds r4, r0, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] @@ -8829,7 +8829,7 @@ _0803824A: adds r0, r4, #0 movs r1, #0xff movs r2, #0x58 - bl sub_0804A7E0 + bl CreateDeathFx pop {r4, pc} .align 2, 0 @@ -8887,7 +8887,7 @@ _080382B8: .4byte gLinkEntity _080382BC: adds r0, r4, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 @@ -8929,7 +8929,7 @@ sub_08038304: @ 0x08038304 push {r4, r5, r6, lr} adds r4, r0, #0 movs r1, #2 - bl sub_08004276 + bl UpdateSpriteAnimation adds r0, r4, #0 bl sub_080AEF88 cmp r0, #0 @@ -11182,7 +11182,7 @@ sub_08039418: @ 0x08039418 adds r0, r1, #0 movs r1, #0xf3 movs r2, #0 - bl sub_0804A7E0 + bl CreateDeathFx b _08039434 _0803942E: adds r0, r1, #0 @@ -22035,7 +22035,7 @@ sub_0803E570: @ 0x0803E570 push {lr} movs r1, #0xff movs r2, #0x57 - bl sub_0804A7E0 + bl CreateDeathFx pop {pc} thumb_func_start nullsub_20 @@ -22824,7 +22824,7 @@ sub_0803EB34: @ 0x0803EB34 push {lr} movs r1, #0xff movs r2, #0x57 - bl sub_0804A7E0 + bl CreateDeathFx pop {pc} thumb_func_start nullsub_21 @@ -44329,7 +44329,7 @@ _08048C6C: bl UpdateSprite adds r0, r4, #0 movs r1, #7 - bl sub_08004276 + bl UpdateSpriteAnimation adds r1, r6, #0 ldrb r4, [r4, #0xa] lsls r1, r4 @@ -44357,7 +44357,7 @@ _08048CBC: movs r1, #0x1c ands r1, r0 adds r0, r4, #0 - bl sub_08004276 + bl UpdateSpriteAnimation _08048CE4: adds r0, r4, #0 bl sub_08004274 @@ -47976,11 +47976,11 @@ sub_0804A7D4: @ 0x0804A7D4 push {lr} ldrb r1, [r0, #9] movs r2, #0 - bl sub_0804A7E0 + bl CreateDeathFx pop {pc} - thumb_func_start sub_0804A7E0 -sub_0804A7E0: @ 0x0804A7E0 + thumb_func_start CreateDeathFx +CreateDeathFx: @ 0x0804A7E0 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb diff --git a/asm/code_080874A0.s b/asm/code_080874A0.s index 06d4285e..44d25eac 100644 --- a/asm/code_080874A0.s +++ b/asm/code_080874A0.s @@ -4732,7 +4732,7 @@ sub_08089848: @ 0x08089848 ands r1, r0 adds r1, #1 adds r0, r4, #0 - bl sub_08004276 + bl UpdateSpriteAnimation pop {r4, pc} .align 2, 0 _08089870: .4byte gUnk_08120D90 diff --git a/asm/octorok.s b/asm/octorok.s new file mode 100644 index 00000000..41b9f72d --- /dev/null +++ b/asm/octorok.s @@ -0,0 +1,246 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801EC2C +sub_0801EC2C: @ 0x0801EC2C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080AEF88 + adds r0, r5, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801EC7E + adds r0, r5, #0 + bl sub_0801EDEC + cmp r0, #0 + beq _0801EC78 + ldr r1, _0801EC74 @ =gUnk_080CA174 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r4, [r0] + bl Random + movs r1, #3 + ands r0, r1 + cmp r4, r0 + bhi _0801EC78 + strb r1, [r5, #0xc] + ldrb r1, [r5, #0x14] + adds r1, #4 + adds r0, r5, #0 + bl UpdateSprite + b _0801EC7E + .align 2, 0 +_0801EC74: .4byte gUnk_080CA174 +_0801EC78: + adds r0, r5, #0 + bl sub_0801ECFC +_0801EC7E: + pop {r4, r5, pc} + + thumb_func_start sub_0801EC80 +sub_0801EC80: @ 0x0801EC80 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801ECD8 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0801ECD8 + ldrb r0, [r4, #0x15] + strb r0, [r2, #0x15] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + ldr r0, _0801ECF0 @ =gUnk_080CA176 + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r3, [r2, #0x2e] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, _0801ECF4 @ =0x0000FFFD + strh r0, [r2, #0x36] + ldrb r1, [r5] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5] + ldr r0, _0801ECF8 @ =0x0000018D + bl sub_08004488 +_0801ECD8: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801ECEC + adds r0, r4, #0 + bl sub_0801ECFC +_0801ECEC: + pop {r4, r5, pc} + .align 2, 0 +_0801ECF0: .4byte gUnk_080CA176 +_0801ECF4: .4byte 0x0000FFFD +_0801ECF8: .4byte 0x0000018D + + thumb_func_start sub_0801ECFC +sub_0801ECFC: @ 0x0801ECFC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl Random + movs r1, #0x38 + ands r0, r1 + adds r0, #0x18 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0801ED14 +sub_0801ED14: @ 0x0801ED14 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #2 + beq _0801ED7E + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0801ED4C + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0801ED46 + bl Random + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0801ED46 + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801EDC4 +_0801ED46: + bl Random + b _0801EDD0 +_0801ED4C: + bl Random + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801ED78 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl Random + ldr r2, _0801ED74 @ =gUnk_080CA17E + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + b _0801EDD0 + .align 2, 0 +_0801ED74: .4byte gUnk_080CA17E +_0801ED78: + bl Random + b _0801EDD0 +_0801ED7E: + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0801EDC4 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0801ED9A + bl Random + b _0801EDD0 +_0801ED9A: + bl Random + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801EDC4 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl Random + ldr r2, _0801EDC0 @ =gUnk_080CA17E + movs r1, #1 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + b _0801EDD0 + .align 2, 0 +_0801EDC0: .4byte gUnk_080CA17E +_0801EDC4: + ldr r0, _0801EDE8 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + adds r0, #4 +_0801EDD0: + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl UpdateSprite + pop {r4, r5, pc} + .align 2, 0 +_0801EDE8: .4byte gUnk_020000B0 + + thumb_func_start sub_0801EDEC +sub_0801EDEC: @ 0x0801EDEC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _0801EE12 + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + ldrb r4, [r4, #0x15] + cmp r0, r4 + bne _0801EE12 + movs r0, #1 + b _0801EE14 +_0801EE12: + movs r0, #0 +_0801EE14: + pop {r4, pc} + .align 2, 0 diff --git a/asm/octorok/sub_0801EBC8.inc b/asm/octorok/sub_0801EBC8.inc new file mode 100644 index 00000000..75fbd75a --- /dev/null +++ b/asm/octorok/sub_0801EBC8.inc @@ -0,0 +1,28 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .text + + .syntax unified + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0801EBDE + bl Random + movs r1, #3 + ands r0, r1 +_0801EBDE: + strb r0, [r4, #0x14] + movs r0, #0x12 + strb r0, [r4, #0x1c] + adds r0, r4, #0 + bl sub_0801ECFC + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl UpdateSprite + pop {r4, pc} + .syntax divided + \ No newline at end of file diff --git a/data/data_8.s b/data/data_8.s index 7c14db37..6906ad0e 100644 --- a/data/data_8.s +++ b/data/data_8.s @@ -3304,10 +3304,10 @@ gUnk_080CA06C:: @ 080CA06C gUnk_080CA11C:: @ 080CA11C .incbin "baserom.gba", 0x0CA11C, 0x0000014 -gUnk_080CA130:: @ 080CA130 +gOctorok:: @ 080CA130 .incbin "baserom.gba", 0x0CA130, 0x0000018 -gUnk_080CA148:: @ 080CA148 +gOctorokIdle:: @ 080CA148 .incbin "baserom.gba", 0x0CA148, 0x0000010 gUnk_080CA158:: @ 080CA158 diff --git a/linker.ld b/linker.ld index be33e671..466b1e0b 100644 --- a/linker.ld +++ b/linker.ld @@ -317,6 +317,9 @@ SECTIONS { asm/readKeyInput.o(.text); asm/code_0801D714.o(.text); asm/code_0801D79C.o(.text); + src/octorok.o(.text); + asm/octorok.o(.text); + asm/code_0801EE18.o(.text); asm/createSluggula.o(.text); asm/code_08023E10.o(.text); asm/doItemTrade.o(.text); diff --git a/src/octorok.c b/src/octorok.c new file mode 100644 index 00000000..64ceb622 --- /dev/null +++ b/src/octorok.c @@ -0,0 +1,140 @@ +#include "global.h" +#include "entity.h" + +extern void sub_0800129E(); +extern void sub_0804A9AC(); +extern void sub_0804AA30(); +extern void sub_0804A9FC(); +extern void sub_0804A7D4(); +extern void CreateDeathFx(); +extern void sub_0801ECFC(); +extern u32 sub_0806F520(); +extern void UpdateSprite(); +extern void sub_0806F4E8(); +extern void sub_0806F3E4(); +extern void UpdateSpriteAnimation(); +extern void sub_0804A720(); +extern u32 Random(); +extern void sub_0801ED14(); +extern void sub_08004274(); + +extern void (*gOctorok[2]); +extern void (*gOctorokIdle[4])(Entity *); +extern void (*gUnk_080CA158[4])(Entity *); + +extern u8 gUnk_080CA170[8]; +//Main +void sub_0801EAB0(Entity *ent) +{ + sub_0800129E(ent, gOctorok); + sub_0804A9AC(ent, 0, 1, -16); +} + +//Idle +void sub_0801EAD0(Entity *ent) +{ + gOctorokIdle[ent->action](ent); +} + +//Touch player +void sub_0801EAE8(Entity *ent) +{ + if (ent->field_0x43 != 0) { + sub_0804A9FC(ent, 28); + } + sub_0804AA30(ent, gOctorok); +} + +//Death +void sub_0801EB0C(Entity *ent) +{ + if ((ent->entityType).parameter1 == 0) { + sub_0804A7D4(ent); + } + else { + CreateDeathFx(ent, 241, 0); + } +} + +void sub_0801EB2C(Entity *ent) +{ + s32 iVar1; + + if ((ent->previousActionFlag < 3) && (iVar1 = sub_0806F520(ent), iVar1 == 0)) { + sub_0801ECFC(ent); + UpdateSprite(ent, ent->animationState); + } + else { + gUnk_080CA158[ent->previousActionFlag](ent); + } +} + +void sub_0801EB68(Entity *ent) +{ + ent->previousActionFlag = 1; + ent->filler[1] = 60; +} + +void sub_0801EB74(Entity *ent) +{ + sub_0806F4E8(ent); +} + +void sub_0801EB7C(Entity *ent) +{ + sub_0806F3E4(ent); +} + +void sub_0801EB84(Entity *ent) +{ + ent->flags = ent->flags & 127; + UpdateSpriteAnimation(ent, 2); +} + +void nullsub_3() +{ +} + +void sub_0801EB9C(Entity *ent) +{ + if ((ent->flags & 128) != 0) { + ent->flags = ent->flags | 128; + ent->field_0x3a = ent->field_0x3a & 251; + } + else { + ent->currentHealth = 0; + } +} + +//Init +#ifdef NON_MATCHING +void sub_0801EBC8(Entity *ent) +{ + sub_0804A720(); + ent->animationState = (ent->entityType).parameter1 == 2 ? (ent->entityType).parameter1 : Random() & 3; + ent->filler[0] = 18; + sub_0801ECFC(ent); + UpdateSprite(ent,ent->animationState); +} +#else +NAKED +void sub_0801EBC8(Entity *ent) +{ + asm(".include \"asm/octorok/sub_0801EBC8.inc\""); +} +#endif + +void sub_0801EBF4(Entity *ent) +{ + u8 bVar1; + u32 uVar2; + + bVar1 = ent->parameter3 -= 1; + if (bVar1 == 0) { + ent->action = 2; + uVar2 = Random(); + ent->parameter3 = gUnk_080CA170[uVar2 & 3]; + sub_0801ED14(ent); + } + sub_08004274(ent); +} \ No newline at end of file