diff --git a/Makefile b/Makefile index 1f59241b..f821d586 100644 --- a/Makefile +++ b/Makefile @@ -38,7 +38,7 @@ MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR) ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(REVISION) --defsym $(GAME_LANGUAGE)=1 CC1 := tools/agbcc/bin/agbcc -override CFLAGS += -Wimplicit -Wparentheses -Werror -O2 +override CFLAGS += -Wimplicit -Wparentheses -Werror -O2 # -fhex-asm ifeq ($(DINFO),1) diff --git a/asm/InitializeLink.s b/asm/InitializeLink.s index c86d7656..b631d0a5 100644 --- a/asm/InitializeLink.s +++ b/asm/InitializeLink.s @@ -18,7 +18,7 @@ InitializeLink: @ 0x080524A8 adds r1, r6, #0 adds r1, #0x40 movs r2, #0x40 - bl sub_0801D610 + bl _DmaFill32 ldr r4, _08052518 @ =gLinkEntity adds r0, r4, #0 movs r1, #0x88 diff --git a/asm/code_080041E8.s b/asm/code_080041E8.s new file mode 100644 index 00000000..0f40c15b --- /dev/null +++ b/asm/code_080041E8.s @@ -0,0 +1,295 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080041E8 +sub_080041E8: @ 0x080041E8 + subs r0, r0, r2 + subs r1, r1, r3 + + thumb_func_start sub_080041EC +sub_080041EC: @ 0x080041EC + adds r2, r0, #0 + muls r0, r2, r0 + adds r3, r1, #0 + muls r1, r3, r1 + push {lr} + adds r0, r0, r1 + lsls r0, r0, #8 + bl Sqrt + pop {r3} + bx r3 + + non_word_aligned_thumb_func_start sub_08004202 +sub_08004202: @ 0x08004202 + push {r1, lr} + ldrb r1, [r0, #0x14] + bl sub_08004212 + pop {r0} + str r1, [r0] + adds r0, r2, #0 + pop {pc} + + non_word_aligned_thumb_func_start sub_08004212 +sub_08004212: @ 0x08004212 + push {r4} + adds r4, r1, #0 + movs r3, #3 + tst r4, r3 + beq _08004226 + movs r3, #2 + lsrs r4, r4, #3 + blo _08004224 + rsbs r3, r3, #0 +_08004224: + adds r2, r2, r3 +_08004226: + adds r4, r1, #0 + movs r3, #3 + ands r4, r3 + cmp r4, #2 + beq _0800423C + movs r3, #0x80 + adds r1, #1 + lsrs r1, r1, #3 + bhs _0800423A + rsbs r3, r3, #0 +_0800423A: + adds r2, r2, r3 +_0800423C: + ldr r3, _08004390 @ =0x00001FFF + ands r2, r3 + movs r4, #0x38 + ldrb r4, [r0, r4] + lsls r4, r4, #3 + ldr r3, _08004394 @ =gUnk_08000228 + adds r3, r3, r4 + ldr r4, [r3] + ldrh r1, [r4, r2] + ldr r4, _08004398 @ =0x00004000 + tst r1, r4 + bne _0800425C + lsls r1, r1, #0x11 + lsrs r1, r1, #0x10 + ldr r4, [r3, #4] + ldrh r1, [r4, r1] +_0800425C: + pop {r4} + bx lr + + thumb_func_start sub_08004260 +sub_08004260: @ 0x08004260 + movs r2, #0x58 + strb r1, [r0, r2] + ldrh r3, [r0, #0x12] + lsls r3, r3, #4 + ldr r2, _0800439C @ =gUnk_080029B4 + ldr r2, [r2, r3] + lsls r1, r1, #2 + ldr r1, [r2, r1] + str r1, [r0, #0x5c] + b _0800432A + + thumb_func_start sub_08004274 +sub_08004274: @ 0x08004274 + movs r1, #1 + + non_word_aligned_thumb_func_start sub_08004276 +sub_08004276: @ 0x08004276 + movs r3, #0x59 + ldrb r2, [r0, r3] + subs r2, r2, r1 + beq _0800432A + ble _08004284 + strb r2, [r0, r3] + bx lr +_08004284: + ldr r1, [r0, #0x5c] +_08004286: + ldrb r3, [r1, #1] + adds r2, r2, r3 + bgt _0800429C + ldrb r3, [r1, #3] + adds r1, #4 + lsrs r3, r3, #8 + blo _08004286 + ldrb r3, [r1] + lsls r3, r3, #2 + subs r1, r1, r3 + b _08004286 +_0800429C: + str r1, [r0, #0x5c] + push {r2, lr} + bl _0800432A + pop {r2, r3} + movs r1, #0x59 + strb r2, [r0, r1] + bx r3 + + thumb_func_start sub_080042AC +sub_080042AC: @ 0x080042AC + push {lr} + bl sub_08004260 + movs r2, #0xff + strb r2, [r0, #0x1f] + b _080042C0 + + thumb_func_start sub_080042B8 +sub_080042B8: @ 0x080042B8 + movs r1, #1 + + non_word_aligned_thumb_func_start sub_080042BA +sub_080042BA: @ 0x080042BA + push {lr} + bl sub_08004276 +_080042C0: + pop {r1} + mov lr, r1 + ldrb r1, [r0, #0x1e] + ldrb r3, [r0, #0x1f] + strb r1, [r0, #0x1f] + cmp r1, r3 + beq _08004328 + ldrh r2, [r0, #0x12] + + thumb_func_start sub_080042D0 +sub_080042D0: @ 0x080042D0 + cmp r1, #0xff + beq _08004328 + lsls r2, r2, #4 + lsls r3, r1, #2 + ldr r1, _080043A0 @ =gUnk_080029B4 + adds r1, r1, r2 + ldr r2, [r1, #4] + cmp r2, #0 + beq _08004328 + ldr r1, [r1, #8] + adds r2, r2, r3 + ldrb r3, [r2] + cmp r3, #0 + beq _08004328 + push {r4, r5} + movs r3, #0x26 + ldrb r3, [r0, r3] + movs r4, #0xc + muls r3, r4, r3 + ldr r4, _080043A4 @ =gUnk_02024494 + adds r4, r4, r3 + ldrb r3, [r4] + movs r5, #0xf + ands r3, r5 + cmp r3, #5 + blo _08004326 + ldrb r5, [r4, #6] + ldrb r3, [r2] + strb r3, [r4, #6] + subs r5, r5, r3 + ldrh r3, [r2, #2] + lsls r3, r3, #5 + adds r1, r1, r3 + ldr r2, [r4, #8] + str r1, [r4, #8] + subs r2, r2, r1 + orrs r5, r2 + beq _08004326 + movs r2, #0xf0 + ldrb r1, [r4] + bics r1, r2 + adds r1, #0x30 + strb r1, [r4] +_08004326: + pop {r4, r5} +_08004328: + bx lr +_0800432A: + ldrb r3, [r0, #0x1e] + strb r3, [r0, #0x1f] + ldr r1, [r0, #0x5c] + ldrb r3, [r1] + strb r3, [r0, #0x1e] + ldrb r3, [r1, #1] + movs r2, #0x59 + strb r3, [r0, r2] + ldrb r3, [r1, #2] + movs r2, #0x5b + strb r3, [r0, r2] + ldrb r3, [r1, #3] + movs r2, #0x5a + strb r3, [r0, r2] + adds r1, #4 + lsrs r3, r3, #8 + blo _08004352 + ldrb r3, [r1] + lsls r3, r3, #2 + subs r1, r1, r3 +_08004352: + str r1, [r0, #0x5c] + bx lr + .align 2, 0 +_08004358: .4byte gUnk_081326EC +_0800435C: .4byte gUnk_02024048 +_08004360: .4byte gUnk_02021F20 +_08004364: .4byte gUnk_02024048 +_08004368: .4byte gUnk_03000BF0 +_0800436C: .4byte 0x0000016E +_08004370: .4byte 0x0000011E +_08004374: .4byte gUnk_03000BF6 +_08004378: .4byte gUnk_03000BF8 +_0800437C: .4byte 0x000003F0 +_08004380: .4byte gUnk_08000248 +_08004384: .4byte 0x000FFFFF +_08004388: .4byte 0x00080000 +_0800438C: .4byte 0x0000EE00 +_08004390: .4byte 0x00001FFF +_08004394: .4byte gUnk_08000228 +_08004398: .4byte 0x00004000 +_0800439C: .4byte gUnk_080029B4 +_080043A0: .4byte gUnk_080029B4 +_080043A4: .4byte gUnk_02024494 + + thumb_func_start sub_080043A8 +sub_080043A8: @ 0x080043A8 + movs r1, #0xb + b _080043B6 + + thumb_func_start sub_080043AC +sub_080043AC: @ 0x080043AC + movs r1, #0xc + b _080043B6 + + thumb_func_start sub_080043B0 +sub_080043B0: @ 0x080043AC + movs r1, #0x52 + b _080043B6 + + thumb_func_start sub_080043B4 +sub_080043B4: @ 0x080043B4 + movs r1, #0 +_080043B6: + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xf + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _080043E0 + movs r1, #0x48 + ldr r1, [r4, r1] + ldrh r3, [r4, #0x2e] + strh r3, [r0, #0x2e] + ldrh r3, [r4, #0x32] + strh r3, [r0, #0x32] + ldrh r3, [r4, #0x36] + strh r3, [r0, #0x36] + ldrb r3, [r4, #8] + cmp r3, #3 + bne _080043E0 + movs r1, #1 + strb r1, [r0, #0xb] +_080043E0: + adds r0, r4, #0 + bl sub_0805E7BC + pop {r4, pc} \ No newline at end of file diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s index 65c35564..4f2d1815 100644 --- a/asm/code_08016DF8.s +++ b/asm/code_08016DF8.s @@ -1425,7 +1425,7 @@ _080178AE: movs r1, #1 _080178B4: rsbs r0, r1, #0 - bl sub_080526A0 + bl ModHealth adds r5, r0, #0 adds r0, r4, #0 movs r1, #0x7a diff --git a/asm/code_08018500.s b/asm/code_08018500.s index c0f46922..ddeafeb0 100644 --- a/asm/code_08018500.s +++ b/asm/code_08018500.s @@ -2,7 +2,7 @@ .include "constants/constants.inc" .syntax unified - + .text thumb_func_start sub_08018500 @@ -7308,7 +7308,7 @@ _0801BC7A: bl sub_080A3268 _0801BC98: adds r0, r5, #0 - bl sub_080526A0 + bl ModHealth adds r0, r4, #0 adds r0, #0x68 ldrb r1, [r0] @@ -7386,7 +7386,7 @@ _0801BD40: movs r3, #2 bl sub_080A2988 movs r0, #0x20 - bl sub_080526A0 + bl ModHealth b _0801BD6C _0801BD54: ldr r1, _0801BD88 @ =gUnk_02002A40 diff --git a/asm/code_0801D714.s b/asm/code_0801D714.s index eab9f5c0..177cccbe 100644 --- a/asm/code_0801D714.s +++ b/asm/code_0801D714.s @@ -78,96415 +78,4 @@ _0801D772: .align 2, 0 _0801D790: .4byte gUnk_0200B644 _0801D794: .4byte gUnk_020176A0 -_0801D798: .4byte 0x040000D4 - - thumb_func_start sub_0801D79C -sub_0801D79C: @ 0x0801D79C - ldr r3, _0801D7B4 @ =gUnk_020176A0 - lsls r2, r0, #1 - adds r2, r2, r3 - strh r1, [r2] - ldr r2, _0801D7B8 @ =gUnk_0200B644 - lsrs r0, r0, #4 - movs r1, #1 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_0801D7B4: .4byte gUnk_020176A0 -_0801D7B8: .4byte gUnk_0200B644 - - thumb_func_start sub_0801D7BC -sub_0801D7BC: @ 0x0801D7BC - push {lr} - adds r2, r0, #0 - cmp r1, #0 - beq _0801D7D4 - ldr r1, _0801D7CC @ =gUnk_03000F50 - ldr r0, _0801D7D0 @ =0x0000E0FF - b _0801D7D8 - .align 2, 0 -_0801D7CC: .4byte gUnk_03000F50 -_0801D7D0: .4byte 0x0000E0FF -_0801D7D4: - ldr r1, _0801D7E4 @ =gUnk_03000F50 - ldr r0, _0801D7E8 @ =0x0000FFFF -_0801D7D8: - strh r0, [r1, #6] - movs r0, #0 - adds r1, r2, #0 - bl sub_0801D79C - pop {pc} - .align 2, 0 -_0801D7E4: .4byte gUnk_03000F50 -_0801D7E8: .4byte 0x0000FFFF - - thumb_func_start sub_0801D7EC -sub_0801D7EC: @ 0x0801D7EC - push {r4, r5, r6, lr} - ldr r1, _0801D814 @ =gUnk_08100AA8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r6, #0x80 - lsls r6, r6, #0x12 - ldr r5, _0801D818 @ =0x040000D4 -_0801D7FC: - movs r2, #0 - ldrb r1, [r4, #3] - movs r0, #0xf - ands r1, r0 - cmp r1, #0xd - beq _0801D894 - cmp r1, #0xd - bhi _0801D81C - cmp r1, #7 - beq _0801D842 - b _0801D836 - .align 2, 0 -_0801D814: .4byte gUnk_08100AA8 -_0801D818: .4byte 0x040000D4 -_0801D81C: - cmp r1, #0xe - beq _0801D826 - cmp r1, #0xf - beq _0801D82E - b _0801D836 -_0801D826: - ldrb r0, [r6, #7] - cmp r0, #1 - bls _0801D83E - b _0801D842 -_0801D82E: - ldrb r0, [r6, #7] - cmp r0, #0 - beq _0801D83E - b _0801D842 -_0801D836: - ldrb r0, [r6, #7] - cmp r1, r0 - bne _0801D83E - movs r2, #1 -_0801D83E: - cmp r2, #0 - beq _0801D888 -_0801D842: - ldr r0, [r4] - ldr r1, _0801D868 @ =0x00FFFFFF - ands r0, r1 - ldr r1, _0801D86C @ =gUnk_085A2E80 - adds r2, r0, r1 - ldr r1, [r4, #4] - ldr r0, [r4, #8] - movs r3, #0x80 - lsls r3, r3, #0x18 - cmp r0, #0 - bge _0801D87C - ldr r0, _0801D870 @ =0x05FFFFFF - cmp r1, r0 - bls _0801D874 - adds r0, r2, #0 - bl LZ77UnCompVram - b _0801D888 - .align 2, 0 -_0801D868: .4byte 0x00FFFFFF -_0801D86C: .4byte gUnk_085A2E80 -_0801D870: .4byte 0x05FFFFFF -_0801D874: - adds r0, r2, #0 - bl LZ77UnCompWram - b _0801D888 -_0801D87C: - str r2, [r5] - str r1, [r5, #4] - lsrs r0, r0, #1 - orrs r0, r3 - str r0, [r5, #8] - ldr r0, [r5, #8] -_0801D888: - ldrb r1, [r4, #3] - movs r0, #0x80 - ands r1, r0 - adds r4, #0xc - cmp r1, #0 - bne _0801D7FC -_0801D894: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0801D898 -sub_0801D898: @ 0x0801D898 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r3 - movs r1, #0x20 - mov ip, r1 - cmp r0, #0 - beq _0801D8B2 - movs r0, #0x40 - mov ip, r0 -_0801D8B2: - ldr r0, _0801D8D8 @ =0x00007FFF - ands r3, r0 - ldr r1, _0801D8DC @ =0x040000D4 - movs r2, #0x80 - lsls r2, r2, #0x18 - orrs r2, r6 - lsls r7, r6, #1 - mov r0, ip - lsls r6, r0, #1 -_0801D8C4: - str r4, [r1] - str r5, [r1, #4] - str r2, [r1, #8] - ldr r0, [r1, #8] - adds r4, r4, r7 - adds r5, r5, r6 - subs r3, #1 - cmp r3, #0 - bne _0801D8C4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801D8D8: .4byte 0x00007FFF -_0801D8DC: .4byte 0x040000D4 - - thumb_func_start sub_0801D8E0 -sub_0801D8E0: @ 0x0801D8E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov ip, r0 - movs r0, #3 - add ip, r0 - subs r0, #7 - mov r1, ip - ands r1, r0 - mov ip, r1 - ldr r6, _0801D90C @ =gUnk_02035540 - mov sb, r6 - ldrh r7, [r6] - movs r5, #1 - movs r3, #0x80 - lsls r3, r3, #5 - add r3, sb - subs r4, r3, r1 - movs r2, #0 - b _0801D926 - .align 2, 0 -_0801D90C: .4byte gUnk_02035540 -_0801D910: - cmp r1, r4 - bhi _0801D918 - cmp r3, r0 - bls _0801D952 -_0801D918: - cmp r4, r1 - bhi _0801D920 - cmp r0, r3 - bls _0801D952 -_0801D920: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_0801D926: - cmp r2, r7 - bhs _0801D94A - lsls r0, r2, #2 - add r0, sb - ldrh r1, [r0, #2] - ldr r6, _0801D95C @ =gUnk_02035540 - adds r1, r1, r6 - ldrh r0, [r0, #4] - adds r0, r0, r6 - cmp r1, r4 - bhi _0801D940 - cmp r4, r0 - bls _0801D952 -_0801D940: - cmp r1, r3 - bhi _0801D910 - cmp r3, r0 - bhi _0801D910 - movs r5, #0 -_0801D94A: - lsls r0, r7, #2 - mov sl, r0 - cmp r5, #0 - bne _0801D9D8 -_0801D952: - movs r1, #0 - mov r8, r1 - lsls r6, r7, #2 - mov sl, r6 - b _0801D970 - .align 2, 0 -_0801D95C: .4byte gUnk_02035540 -_0801D960: - movs r5, #0 -_0801D962: - mov r0, r8 - adds r0, #1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r8, r0 - cmp r8, r7 - bhs _0801D9D4 -_0801D970: - mov r1, r8 - lsls r0, r1, #2 - add r0, sb - ldrh r0, [r0, #2] - ldr r6, _0801D994 @ =gUnk_02035540 - adds r3, r0, r6 - mov r0, ip - subs r4, r3, r0 - movs r5, #0 - mov r0, sl - adds r0, #2 - add r0, sb - adds r0, #4 - cmp r4, r0 - blo _0801D962 - movs r5, #1 - movs r2, #0 - b _0801D9AE - .align 2, 0 -_0801D994: .4byte gUnk_02035540 -_0801D998: - cmp r1, r4 - bhi _0801D9A0 - cmp r3, r0 - bls _0801D960 -_0801D9A0: - cmp r4, r1 - bhi _0801D9A8 - cmp r0, r3 - bls _0801D960 -_0801D9A8: - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 -_0801D9AE: - cmp r2, r7 - bhs _0801D9D0 - lsls r0, r2, #2 - add r0, sb - ldrh r1, [r0, #2] - adds r1, r1, r6 - ldrh r0, [r0, #4] - adds r0, r0, r6 - cmp r1, r4 - bhi _0801D9C6 - cmp r4, r0 - blo _0801D960 -_0801D9C6: - cmp r1, r3 - bhs _0801D998 - cmp r3, r0 - bhi _0801D998 - movs r5, #0 -_0801D9D0: - cmp r5, #0 - beq _0801D962 -_0801D9D4: - cmp r5, #0 - beq _0801DA00 -_0801D9D8: - ldr r0, _0801D9FC @ =gUnk_02035542 - mov r1, sl - adds r2, r1, r0 - subs r3, r0, #2 - subs r1, r4, r3 - strh r1, [r2] - adds r0, #2 - add r0, sl - add r1, ip - strh r1, [r0] - adds r0, r7, #1 - strh r0, [r3] - adds r0, r4, #0 - mov r1, ip - bl sub_0801D630 - adds r0, r4, #0 - b _0801DA02 - .align 2, 0 -_0801D9FC: .4byte gUnk_02035542 -_0801DA00: - movs r0, #0 -_0801DA02: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0801DA0C -sub_0801DA0C: @ 0x0801DA0C - push {r4, r5, lr} - ldr r3, _0801DA44 @ =gUnk_02035540 - subs r1, r0, r3 - ldr r0, _0801DA48 @ =0x00000FFF - cmp r1, r0 - bhi _0801DA74 - adds r4, r3, #0 - ldrh r5, [r4] - adds r4, #2 - movs r2, #0 - cmp r2, r5 - bhs _0801DA74 - ldrh r0, [r4] - cmp r0, r1 - bne _0801DA4C - lsls r0, r5, #2 - subs r1, r3, #2 - adds r0, r0, r1 - ldrh r1, [r0] - strh r1, [r4] - strh r2, [r0] - adds r0, #2 - ldrh r1, [r0] - strh r1, [r4, #2] - strh r2, [r0] - subs r0, r5, #1 - strh r0, [r3] - b _0801DA74 - .align 2, 0 -_0801DA44: .4byte gUnk_02035540 -_0801DA48: .4byte 0x00000FFF -_0801DA4C: - adds r4, #4 - adds r2, #1 - cmp r2, r5 - bhs _0801DA74 - ldrh r0, [r4] - cmp r0, r1 - bne _0801DA4C - lsls r1, r5, #2 - ldr r3, _0801DA78 @ =gUnk_0203553E - adds r1, r1, r3 - ldrh r0, [r1] - strh r0, [r4] - movs r2, #0 - strh r2, [r1] - adds r1, #2 - ldrh r0, [r1] - strh r0, [r4, #2] - strh r2, [r1] - subs r0, r5, #1 - strh r0, [r3, #2] -_0801DA74: - pop {r4, r5, pc} - .align 2, 0 -_0801DA78: .4byte gUnk_0203553E - - thumb_func_start sub_0801DA7C -sub_0801DA7C: @ 0x0801DA7C - push {lr} - ldr r0, _0801DA8C @ =gUnk_02035540 - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_0801DA8C: .4byte gUnk_02035540 - - thumb_func_start sub_0801DA90 -sub_0801DA90: @ 0x0801DA90 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0801DAEC @ =gUnk_03001000 - ldrb r0, [r1] - movs r3, #0 - movs r0, #1 - strb r0, [r1] - ldr r0, _0801DAF0 @ =gUnk_03003DE0 - strb r3, [r0] - ldr r0, _0801DAF4 @ =gUnk_03000FD0 - strb r3, [r0] - ldr r5, _0801DAF8 @ =gUnk_03000F50 - adds r0, r5, #0 - adds r0, #0x6d - strb r3, [r0] - subs r0, #1 - strb r3, [r0] - ldr r1, _0801DAFC @ =0x040000B0 - ldrh r2, [r1, #0xa] - ldr r0, _0801DB00 @ =0x0000C5FF - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r2, [r1, #0xa] - ldr r0, _0801DB04 @ =0x00007FFF - ands r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r1, #0xa] - movs r0, #0x80 - lsls r0, r0, #0x13 - strh r3, [r0] - bl sub_0801DB10 - bl sub_0801DB34 - ldr r0, _0801DB08 @ =0x0600C000 - movs r1, #0x20 - bl sub_0801D630 - ldr r0, _0801DB0C @ =gUnk_02034CB0 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - strh r4, [r5, #0xe] - pop {r4, r5, pc} - .align 2, 0 -_0801DAEC: .4byte gUnk_03001000 -_0801DAF0: .4byte gUnk_03003DE0 -_0801DAF4: .4byte gUnk_03000FD0 -_0801DAF8: .4byte gUnk_03000F50 -_0801DAFC: .4byte 0x040000B0 -_0801DB00: .4byte 0x0000C5FF -_0801DB04: .4byte 0x00007FFF -_0801DB08: .4byte 0x0600C000 -_0801DB0C: .4byte gUnk_02034CB0 - - thumb_func_start sub_0801DB10 -sub_0801DB10: @ 0x0801DB10 - push {r4, lr} - ldr r3, _0801DB30 @ =gUnk_03000020 - movs r1, #0xe0 - lsls r1, r1, #0x13 - movs r0, #0x80 - movs r4, #0xa8 - lsls r4, r4, #2 - adds r2, r4, #0 -_0801DB20: - strh r2, [r3] - adds r3, #8 - strh r2, [r1] - adds r1, #8 - subs r0, #1 - cmp r0, #0 - bne _0801DB20 - pop {r4, pc} - .align 2, 0 -_0801DB30: .4byte gUnk_03000020 - - thumb_func_start sub_0801DB34 -sub_0801DB34: @ 0x0801DB34 - push {r4, lr} - ldr r4, _0801DB6C @ =gUnk_03000F50 - adds r0, r4, #0 - movs r1, #0x7c - bl sub_0801D630 - ldr r0, _0801DB70 @ =gUnk_02034CB0 - str r0, [r4, #0x10] - ldr r0, _0801DB74 @ =0x00001F0C - strh r0, [r4, #8] - ldr r0, _0801DB78 @ =gUnk_02021F30 - str r0, [r4, #0x1c] - ldr r0, _0801DB7C @ =0x00001C01 - strh r0, [r4, #0x14] - ldr r0, _0801DB80 @ =gUnk_020344B0 - str r0, [r4, #0x28] - ldr r0, _0801DB84 @ =0x00001D02 - strh r0, [r4, #0x20] - ldr r0, _0801DB88 @ =gUnk_02001A40 - str r0, [r4, #0x34] - ldr r0, _0801DB8C @ =0x00001E03 - strh r0, [r4, #0x2c] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4] - ldr r0, _0801DB90 @ =0x0000FFFF - strh r0, [r4, #6] - pop {r4, pc} - .align 2, 0 -_0801DB6C: .4byte gUnk_03000F50 -_0801DB70: .4byte gUnk_02034CB0 -_0801DB74: .4byte 0x00001F0C -_0801DB78: .4byte gUnk_02021F30 -_0801DB7C: .4byte 0x00001C01 -_0801DB80: .4byte gUnk_020344B0 -_0801DB84: .4byte 0x00001D02 -_0801DB88: .4byte gUnk_02001A40 -_0801DB8C: .4byte 0x00001E03 -_0801DB90: .4byte 0x0000FFFF - - thumb_func_start sub_0801DB94 -sub_0801DB94: @ 0x0801DB94 - ldr r0, _0801DB9C @ =gUnk_030010A0 - ldrh r0, [r0, #0x1e] - lsrs r0, r0, #0xb - bx lr - .align 2, 0 -_0801DB9C: .4byte gUnk_030010A0 - - thumb_func_start sub_0801DBA0 -sub_0801DBA0: @ 0x0801DBA0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - adds r1, r2, #0 - adds r0, r5, #0 - bl sub_0801D630 - movs r0, #1 - strb r0, [r5] - ldr r2, _0801DBE4 @ =gUnk_030010A0 - ldrh r0, [r2, #0x1c] - lsrs r0, r0, #4 - movs r1, #0x7f - ands r0, r1 - strb r0, [r5, #1] - ldrh r0, [r2, #0x1e] - lsrs r0, r0, #4 - ands r0, r1 - strb r0, [r5, #2] - adds r5, #3 - ldr r1, _0801DBE8 @ =gUnk_080C9C50 - ldr r0, _0801DBEC @ =gUnk_02033A90 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r6, [r4] - b _0801DD3A - .align 2, 0 -_0801DBE4: .4byte gUnk_030010A0 -_0801DBE8: .4byte gUnk_080C9C50 -_0801DBEC: .4byte gUnk_02033A90 -_0801DBF0: - ldrb r0, [r6] - ldrb r1, [r6, #1] - movs r2, #3 - bl sub_0804B0FC - adds r4, r0, #0 - cmp r4, #0 - bne _0801DC04 - adds r6, #8 - b _0801DD3A -_0801DC04: - adds r0, r6, #0 - bl sub_0801DF10 - mov r8, r0 - bl sub_0805279C - movs r1, #8 - adds r1, r1, r6 - mov sb, r1 - cmp r0, #0 - beq _0801DCAE - ldrb r0, [r4] - cmp r0, #0 - beq _0801DCAE - movs r3, #0xfc - lsls r3, r3, #2 - ldr r7, _0801DC84 @ =0x000007FF -_0801DC26: - ldrb r0, [r4] - cmp r0, #3 - bgt _0801DCA6 - cmp r0, #2 - blt _0801DCA6 - ldrb r1, [r4, #1] - mov r0, r8 - str r3, [sp] - bl GetProgressFlagWithOffset - ldr r3, [sp] - cmp r0, #0 - bne _0801DCA6 - ldr r0, _0801DC88 @ =gUnk_0811E214 - ldrb r2, [r6] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r1, [r6, #1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [r2] - adds r2, r1, r0 - movs r0, #2 - strb r0, [r5] - ldrb r0, [r4] - cmp r0, #2 - bne _0801DC8C - ldrh r0, [r4, #4] - lsls r0, r0, #4 - ands r0, r3 - movs r1, #8 - orrs r0, r1 - ldrh r1, [r2] - ands r1, r7 - adds r0, r0, r1 - asrs r0, r0, #4 - strb r0, [r5, #1] - ldrh r0, [r4, #4] - lsrs r0, r0, #2 - ands r0, r3 - movs r1, #8 - orrs r0, r1 - ldrh r1, [r2, #2] - ands r1, r7 - b _0801DC9E - .align 2, 0 -_0801DC84: .4byte 0x000007FF -_0801DC88: .4byte gUnk_0811E214 -_0801DC8C: - ldrh r0, [r2] - ands r0, r7 - ldrh r1, [r4, #4] - adds r0, r0, r1 - asrs r0, r0, #4 - strb r0, [r5, #1] - ldrh r0, [r2, #2] - ands r0, r7 - ldrh r1, [r4, #6] -_0801DC9E: - adds r0, r0, r1 - asrs r0, r0, #4 - strb r0, [r5, #2] - adds r5, #3 -_0801DCA6: - adds r4, #8 - ldrb r0, [r4] - cmp r0, #0 - bne _0801DC26 -_0801DCAE: - bl sub_0805279C - cmp r0, #0 - beq _0801DD16 - ldrb r1, [r6, #2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801DD16 - ldr r0, _0801DD4C @ =gUnk_02033A90 - ldrb r0, [r0, #3] - adds r0, #1 - bl GetProgressFlag - cmp r0, #0 - bne _0801DD16 - ldr r0, _0801DD50 @ =gUnk_0811E214 - ldrb r2, [r6] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r1, [r6, #1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [r2] - adds r2, r1, r0 - movs r0, #4 - strb r0, [r5] - ldrh r0, [r2, #4] - lsrs r0, r0, #1 - ldrh r1, [r2] - adds r0, r0, r1 - asrs r1, r0, #4 - adds r0, r1, #0 - cmp r1, #0 - bge _0801DCF8 - adds r0, #0x7f -_0801DCF8: - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - strb r0, [r5, #1] - ldrh r0, [r2, #6] - lsrs r0, r0, #1 - ldrh r2, [r2, #2] - adds r0, r0, r2 - asrs r1, r0, #4 - adds r0, r1, #0 - asrs r0, r0, #7 - lsls r0, r0, #7 - subs r0, r1, r0 - strb r0, [r5, #2] - adds r5, #3 -_0801DD16: - ldr r2, _0801DD54 @ =gUnk_030010A0 - ldrh r0, [r6] - ldrh r1, [r2, #0x16] - cmp r0, r1 - bne _0801DD38 - movs r0, #3 - strb r0, [r5] - ldrh r0, [r2, #0x18] - lsrs r0, r0, #4 - movs r1, #0x7f - ands r0, r1 - strb r0, [r5, #1] - ldrh r0, [r2, #0x1a] - lsrs r0, r0, #4 - ands r0, r1 - strb r0, [r5, #2] - adds r5, #3 -_0801DD38: - mov r6, sb -_0801DD3A: - ldrb r0, [r6] - cmp r0, #0 - beq _0801DD42 - b _0801DBF0 -_0801DD42: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801DD4C: .4byte gUnk_02033A90 -_0801DD50: .4byte gUnk_0811E214 -_0801DD54: .4byte gUnk_030010A0 - - thumb_func_start sub_0801DD58 -sub_0801DD58: @ 0x0801DD58 - ldr r2, _0801DD7C @ =gUnk_0811E214 - lsls r0, r0, #2 - adds r0, r0, r2 - lsls r2, r1, #2 - adds r2, r2, r1 - lsls r2, r2, #1 - ldr r3, [r0] - adds r3, r3, r2 - ldr r0, _0801DD80 @ =gUnk_02033A90 - ldr r1, _0801DD84 @ =0x0000085C - adds r0, r0, r1 - ldr r2, [r0] - ldrh r1, [r3] - strh r1, [r2, #4] - ldr r1, [r0] - ldrh r0, [r3, #2] - strh r0, [r1, #6] - bx lr - .align 2, 0 -_0801DD7C: .4byte gUnk_0811E214 -_0801DD80: .4byte gUnk_02033A90 -_0801DD84: .4byte 0x0000085C - - thumb_func_start sub_0801DD88 -sub_0801DD88: @ 0x0801DD88 - push {lr} - ldr r0, _0801DD98 @ =gUnk_0201AEE0 - ldr r1, _0801DD9C @ =0x06006000 - movs r2, #0x80 - lsls r2, r2, #6 - bl sub_08000E96 - pop {pc} - .align 2, 0 -_0801DD98: .4byte gUnk_0201AEE0 -_0801DD9C: .4byte 0x06006000 - - thumb_func_start sub_0801DDA0 -sub_0801DDA0: @ 0x0801DDA0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r4, r0, #0 - bl sub_08052690 - cmp r0, #0 - bne _0801DDB8 - b _0801DEEA -_0801DDB8: - ldr r1, _0801DDD8 @ =gUnk_080C9C50 - ldr r0, _0801DDDC @ =gUnk_02033A90 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r4, [r0] - ldr r0, _0801DDE0 @ =gUnk_02019EE0 - movs r1, #0x80 - lsls r1, r1, #8 - bl sub_0801D630 - b _0801DEE2 - .align 2, 0 -_0801DDD8: .4byte gUnk_080C9C50 -_0801DDDC: .4byte gUnk_02033A90 -_0801DDE0: .4byte gUnk_02019EE0 -_0801DDE4: - ldrb r0, [r4] - ldrb r1, [r4, #1] - movs r2, #3 - bl sub_0804B0FC - adds r6, r0, #0 - adds r0, r4, #0 - bl sub_0801DF10 - adds r5, r0, #0 - movs r0, #0 - str r0, [sp, #0xc] - ldrh r2, [r4] - ldr r0, _0801DE14 @ =gUnk_02032EC0 - ldrh r3, [r0, #0x20] - ldr r1, _0801DE18 @ =0x0000FFFF - ands r1, r2 - ldr r0, _0801DE18 @ =0x0000FFFF - ands r0, r3 - cmp r1, r0 - bne _0801DE1C - movs r3, #8 - b _0801DE36 - .align 2, 0 -_0801DE14: .4byte gUnk_02032EC0 -_0801DE18: .4byte 0x0000FFFF -_0801DE1C: - bl sub_080527CC - cmp r0, #0 - beq _0801DE28 - movs r0, #2 - str r0, [sp, #0xc] -_0801DE28: - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0801DF90 - cmp r0, #0 - beq _0801DE38 - movs r3, #3 -_0801DE36: - str r3, [sp, #0xc] -_0801DE38: - ldrb r1, [r4, #2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801DE46 - movs r0, #0 - str r0, [sp, #0xc] -_0801DE46: - adds r3, r4, #0 - adds r3, #8 - str r3, [sp, #0x10] - ldr r0, [sp, #0xc] - cmp r0, #0 - beq _0801DEE0 - ldr r2, _0801DEF8 @ =0x040000D4 - ldr r0, [r4, #4] - ldr r1, _0801DEFC @ =gUnk_08324AE4 - adds r0, r0, r1 - str r0, [r2] - ldr r0, _0801DF00 @ =gUnk_02019EE0 - str r0, [r2, #4] - ldr r0, _0801DF04 @ =0x84000100 - str r0, [r2, #8] - ldr r0, [r2, #8] - ldr r0, _0801DF08 @ =gUnk_0811E214 - ldrb r2, [r4] - lsls r2, r2, #2 - adds r2, r2, r0 - ldrb r1, [r4, #1] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r2, [r2] - adds r2, r2, r0 - ldrh r0, [r2] - lsrs r0, r0, #4 - str r0, [sp] - ldrh r0, [r2, #2] - ldr r1, _0801DF0C @ =0x000007FF - ands r0, r1 - lsrs r0, r0, #4 - str r0, [sp, #4] - ldrh r0, [r2, #4] - lsrs r7, r0, #4 - ldrh r0, [r2, #6] - lsrs r0, r0, #4 - mov sl, r0 - adds r0, r7, #3 - lsrs r0, r0, #2 - str r0, [sp, #8] - movs r6, #0 - cmp r6, sl - bhs _0801DEE0 -_0801DEA0: - ldr r3, [sp, #8] - adds r1, r6, #0 - muls r1, r3, r1 - ldr r0, _0801DF00 @ =gUnk_02019EE0 - adds r1, r1, r0 - mov r8, r1 - movs r5, #0 - adds r0, r6, #1 - mov sb, r0 - cmp r5, r7 - bhs _0801DEDA -_0801DEB6: - ldr r3, [sp] - adds r4, r3, r5 - adds r0, r5, #0 - mov r1, r8 - bl sub_0801DF60 - ldr r1, [sp, #0xc] - bl sub_0801DF78 - adds r2, r0, #0 - adds r0, r4, #0 - ldr r3, [sp, #4] - adds r1, r3, r6 - bl sub_0801DF28 - adds r5, #1 - cmp r5, r7 - blo _0801DEB6 -_0801DEDA: - mov r6, sb - cmp r6, sl - blo _0801DEA0 -_0801DEE0: - ldr r4, [sp, #0x10] -_0801DEE2: - ldrb r0, [r4] - cmp r0, #0 - beq _0801DEEA - b _0801DDE4 -_0801DEEA: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801DEF8: .4byte 0x040000D4 -_0801DEFC: .4byte gUnk_08324AE4 -_0801DF00: .4byte gUnk_02019EE0 -_0801DF04: .4byte 0x84000100 -_0801DF08: .4byte gUnk_0811E214 -_0801DF0C: .4byte 0x000007FF - - thumb_func_start sub_0801DF10 -sub_0801DF10: @ 0x0801DF10 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #3] - cmp r0, #1 - bne _0801DF20 - movs r0, #0xc0 - lsls r0, r0, #2 - b _0801DF26 -_0801DF20: - ldrb r0, [r1] - bl sub_08052D58 -_0801DF26: - pop {pc} - - thumb_func_start sub_0801DF28 -sub_0801DF28: @ 0x0801DF28 - push {r4, lr} - lsrs r4, r1, #3 - lsls r4, r4, #4 - lsrs r3, r0, #3 - adds r4, r4, r3 - lsls r4, r4, #5 - ldr r3, _0801DF58 @ =gUnk_0201AEE0 - adds r4, r4, r3 - movs r3, #7 - ands r1, r3 - lsls r1, r1, #2 - adds r4, r4, r1 - ands r0, r3 - lsls r0, r0, #2 - lsls r2, r0 - ldr r1, _0801DF5C @ =gUnk_080C9460 - adds r0, r0, r1 - ldr r1, [r4] - ldr r0, [r0] - ands r1, r0 - orrs r1, r2 - str r1, [r4] - pop {r4, pc} - .align 2, 0 -_0801DF58: .4byte gUnk_0201AEE0 -_0801DF5C: .4byte gUnk_080C9460 - - thumb_func_start sub_0801DF60 -sub_0801DF60: @ 0x0801DF60 - adds r3, r0, #0 - lsrs r0, r3, #2 - adds r0, r0, r1 - ldrb r0, [r0] - movs r2, #3 - adds r1, r2, #0 - bics r1, r3 - lsls r1, r1, #1 - asrs r0, r1 - ands r0, r2 - bx lr - .align 2, 0 - - thumb_func_start sub_0801DF78 -sub_0801DF78: @ 0x0801DF78 - push {lr} - cmp r0, #2 - beq _0801DF88 - cmp r0, #2 - blo _0801DF8E - cmp r0, #3 - beq _0801DF8C - b _0801DF8E -_0801DF88: - adds r0, r1, #0 - b _0801DF8E -_0801DF8C: - movs r0, #7 -_0801DF8E: - pop {pc} - - thumb_func_start sub_0801DF90 -sub_0801DF90: @ 0x0801DF90 - push {lr} - adds r2, r1, #0 - cmp r0, #0 - bne _0801DFAA - b _0801DFB0 -_0801DF9A: - ldrb r1, [r0, #1] - adds r0, r2, #0 - bl GetProgressFlagWithOffset - b _0801DFB2 -_0801DFA4: - cmp r1, #1 - beq _0801DF9A - adds r0, #8 -_0801DFAA: - ldrb r1, [r0] - cmp r1, #0 - bne _0801DFA4 -_0801DFB0: - movs r0, #0 -_0801DFB2: - pop {pc} - - thumb_func_start sub_0801DFB4 -sub_0801DFB4: @ 0x0801DFB4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r7, _0801E004 @ =gUnk_02022740 - adds r0, r7, #0 - movs r1, #0x10 - bl sub_0801D630 - strh r4, [r7, #6] - strh r5, [r7, #8] - strh r6, [r7, #0xa] - mov r0, r8 - str r0, [r7, #0xc] - ldr r0, _0801E008 @ =gUnk_03003DF0 - ldrb r0, [r0, #2] - strb r0, [r7, #3] - mov r1, r8 - cmp r1, #0 - beq _0801DFF8 - ldrb r1, [r1, #0x11] - lsls r0, r1, #0x1c - lsrs r0, r0, #0x1c - strb r0, [r7, #4] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - mov r1, r8 - strb r0, [r1, #0x11] -_0801DFF8: - movs r0, #0 - strb r0, [r7] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E004: .4byte gUnk_02022740 -_0801E008: .4byte gUnk_03003DF0 - - thumb_func_start sub_0801E00C -sub_0801E00C: @ 0x0801E00C - push {r4, lr} - ldr r1, _0801E024 @ =gUnk_080C9CAC - ldr r4, _0801E028 @ =gUnk_02022740 - ldrb r0, [r4, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0801E024: .4byte gUnk_080C9CAC -_0801E028: .4byte gUnk_02022740 - - thumb_func_start sub_0801E02C -sub_0801E02C: @ 0x0801E02C - push {r4, lr} - ldr r4, _0801E040 @ =gUnk_02022740 - ldrh r0, [r4, #6] - bl sub_0801E0E0 - movs r0, #3 - strb r0, [r4] - movs r0, #1 - strb r0, [r4, #1] - pop {r4, pc} - .align 2, 0 -_0801E040: .4byte gUnk_02022740 - - thumb_func_start sub_0801E044 -sub_0801E044: @ 0x0801E044 - push {lr} - ldr r0, _0801E06C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0801E06A - movs r0, #4 - movs r1, #0 - bl sub_080A7138 - ldr r0, _0801E070 @ =gUnk_02022740 - movs r1, #4 - strb r1, [r0] - movs r1, #2 - strb r1, [r0, #1] - movs r0, #0x6b - bl sub_080A3268 -_0801E06A: - pop {pc} - .align 2, 0 -_0801E06C: .4byte gUnk_02000050 -_0801E070: .4byte gUnk_02022740 - - thumb_func_start sub_0801E074 -sub_0801E074: @ 0x0801E074 - push {lr} - ldr r0, _0801E084 @ =gUnk_02022740 - ldrb r1, [r0] - cmp r1, #5 - beq _0801E088 - cmp r1, #6 - beq _0801E08C - b _0801E098 - .align 2, 0 -_0801E084: .4byte gUnk_02022740 -_0801E088: - ldrh r0, [r0, #8] - b _0801E08E -_0801E08C: - ldrh r0, [r0, #0xa] -_0801E08E: - bl sub_0801E0E0 - ldr r1, _0801E09C @ =gUnk_02022740 - movs r0, #3 - strb r0, [r1, #1] -_0801E098: - pop {pc} - .align 2, 0 -_0801E09C: .4byte gUnk_02022740 - - thumb_func_start sub_0801E0A0 -sub_0801E0A0: @ 0x0801E0A0 - push {r4, lr} - ldr r0, _0801E0D8 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0801E0D4 - ldr r4, _0801E0DC @ =gUnk_02022740 - ldr r3, [r4, #0xc] - cmp r3, #0 - beq _0801E0C8 - ldrb r0, [r4, #4] - movs r1, #0xf - ands r1, r0 - ldrb r2, [r3, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x11] -_0801E0C8: - ldrb r0, [r4] - movs r1, #1 - cmp r0, #6 - bne _0801E0D2 - movs r1, #2 -_0801E0D2: - strb r1, [r4] -_0801E0D4: - pop {r4, pc} - .align 2, 0 -_0801E0D8: .4byte gUnk_02000050 -_0801E0DC: .4byte gUnk_02022740 - - thumb_func_start sub_0801E0E0 -sub_0801E0E0: @ 0x0801E0E0 - push {lr} - adds r2, r0, #0 - cmp r2, #0 - beq _0801E102 - ldr r0, _0801E0F8 @ =gUnk_02022740 - ldr r1, [r0, #0xc] - cmp r1, #0 - beq _0801E0FC - adds r0, r2, #0 - bl sub_08056398 - b _0801E102 - .align 2, 0 -_0801E0F8: .4byte gUnk_02022740 -_0801E0FC: - adds r0, r2, #0 - bl sub_08056378 -_0801E102: - pop {pc} - - thumb_func_start sub_0801E104 -sub_0801E104: @ 0x0801E104 - ldr r1, _0801E118 @ =gUnk_03000F50 - ldrh r2, [r1] - ldr r0, _0801E11C @ =0x00009FFF - ands r0, r2 - movs r2, #0 - strh r0, [r1] - adds r1, #0x6c - strb r2, [r1] - bx lr - .align 2, 0 -_0801E118: .4byte gUnk_03000F50 -_0801E11C: .4byte 0x00009FFF - - thumb_func_start sub_0801E120 -sub_0801E120: @ 0x0801E120 - ldr r3, _0801E14C @ =gUnk_03000F50 - ldrh r1, [r3] - movs r2, #0x80 - lsls r2, r2, #6 - adds r0, r2, #0 - movs r2, #0 - orrs r0, r1 - strh r0, [r3] - adds r1, r3, #0 - adds r1, #0x60 - ldr r0, _0801E150 @ =0x00003F37 - strh r0, [r1] - adds r1, #2 - movs r0, #0x3f - strh r0, [r1] - adds r0, r3, #0 - adds r0, #0x58 - strh r2, [r0] - subs r1, #6 - movs r0, #0xa0 - strh r0, [r1] - bx lr - .align 2, 0 -_0801E14C: .4byte gUnk_03000F50 -_0801E150: .4byte 0x00003F37 - - thumb_func_start sub_0801E154 -sub_0801E154: @ 0x0801E154 - push {lr} - movs r1, #0 - bl sub_0801E24C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0801E160 -sub_0801E160: @ 0x0801E160 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - mov r8, r1 - mov sb, r2 - ldr r5, _0801E1A8 @ =gUnk_03003DE4 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r4, _0801E1AC @ =gUnk_02017AA0 - adds r0, r0, r4 - movs r1, #0xa0 - lsls r1, r1, #4 - bl sub_0801D630 - adds r0, r6, #0 - mov r1, r8 - mov r2, sb - bl sub_0801E290 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - adds r0, r0, r4 - ldr r1, _0801E1B0 @ =0x04000040 - ldr r2, _0801E1B4 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0801E1A8: .4byte gUnk_03003DE4 -_0801E1AC: .4byte gUnk_02017AA0 -_0801E1B0: .4byte 0x04000040 -_0801E1B4: .4byte 0xA2600001 - - thumb_func_start sub_0801E1B8 -sub_0801E1B8: @ 0x0801E1B8 - push {r4, lr} - ldr r2, _0801E1E8 @ =gUnk_03000F50 - mov ip, r2 - ldrh r3, [r2] - movs r4, #0x80 - lsls r4, r4, #6 - adds r2, r4, #0 - movs r4, #0 - orrs r2, r3 - mov r3, ip - strh r2, [r3] - mov r2, ip - adds r2, #0x60 - strh r0, [r2] - mov r0, ip - adds r0, #0x62 - strh r1, [r0] - subs r0, #0xa - strh r4, [r0] - mov r1, ip - adds r1, #0x5c - movs r0, #0xa0 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_0801E1E8: .4byte gUnk_03000F50 - - thumb_func_start sub_0801E1EC -sub_0801E1EC: @ 0x0801E1EC - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - mov r8, r0 - mov sb, r1 - adds r4, r2, #0 - ldr r6, _0801E23C @ =gUnk_03003DE4 - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r5, _0801E240 @ =gUnk_02017AA0 - adds r0, r0, r5 - movs r1, #0xa0 - lsls r1, r1, #4 - bl sub_0801D630 - adds r0, r4, #0 - movs r1, #0 - bl sub_0801E24C - mov r0, r8 - mov r1, sb - adds r2, r4, #0 - bl sub_0801E290 - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - adds r0, r0, r5 - ldr r1, _0801E244 @ =0x04000040 - ldr r2, _0801E248 @ =0xA2600001 - bl sub_0805622C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0801E23C: .4byte gUnk_03003DE4 -_0801E240: .4byte gUnk_02017AA0 -_0801E244: .4byte 0x04000040 -_0801E248: .4byte 0xA2600001 - - thumb_func_start sub_0801E24C -sub_0801E24C: @ 0x0801E24C - push {r4, r5, lr} - lsls r1, r1, #1 - ldr r2, _0801E278 @ =gUnk_02018EE0 - adds r5, r1, r2 - movs r3, #0 - adds r2, r0, #0 - lsls r4, r2, #1 - movs r0, #3 - subs r1, r0, r4 - cmp r3, r2 - bgt _0801E28E - adds r4, r4, r5 -_0801E264: - lsls r0, r3, #1 - adds r0, r0, r5 - strh r2, [r0] - strh r3, [r4] - cmp r1, #0 - bge _0801E27C - adds r1, #6 - lsls r0, r3, #2 - adds r1, r1, r0 - b _0801E288 - .align 2, 0 -_0801E278: .4byte gUnk_02018EE0 -_0801E27C: - adds r1, #0xa - subs r0, r3, r2 - lsls r0, r0, #2 - adds r1, r1, r0 - subs r4, #2 - subs r2, #1 -_0801E288: - adds r3, #1 - cmp r3, r2 - ble _0801E264 -_0801E28E: - pop {r4, r5, pc} - - thumb_func_start sub_0801E290 -sub_0801E290: @ 0x0801E290 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov ip, r0 - adds r6, r2, #0 - ldr r0, _0801E2BC @ =gUnk_03003DE4 - ldrb r0, [r0] - lsls r2, r0, #2 - adds r2, r2, r0 - lsls r2, r2, #9 - lsls r0, r1, #1 - ldr r3, _0801E2C0 @ =gUnk_02017AA0 - adds r0, r0, r3 - adds r2, r2, r0 - adds r4, r2, #0 - adds r5, r1, #0 - mov sb, r5 - ldr r0, _0801E2C4 @ =gUnk_02018EE0 - mov r8, r0 - b _0801E30A - .align 2, 0 -_0801E2BC: .4byte gUnk_03003DE4 -_0801E2C0: .4byte gUnk_02017AA0 -_0801E2C4: .4byte gUnk_02018EE0 -_0801E2C8: - mov r1, r8 - movs r3, #0 - ldrsh r0, [r1, r3] - movs r7, #2 - add r8, r7 - mov r3, ip - subs r1, r3, r0 - adds r3, r3, r0 - cmp r1, #0 - bge _0801E2DE - movs r1, #0 -_0801E2DE: - cmp r3, #0xef - ble _0801E2E4 - movs r3, #0xf0 -_0801E2E4: - mov r7, sb - lsls r0, r7, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x9f - bhi _0801E2F2 - strb r3, [r4] - strb r1, [r4, #1] -_0801E2F2: - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x9f - bhi _0801E2FE - strb r3, [r2] - strb r1, [r2, #1] -_0801E2FE: - subs r4, #2 - adds r2, #2 - movs r0, #1 - rsbs r0, r0, #0 - add sb, r0 - adds r5, #1 -_0801E30A: - adds r0, r6, #0 - subs r6, #1 - cmp r0, #0 - bne _0801E2C8 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0801E31C -sub_0801E31C: @ 0x0801E31C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x20 - str r0, [sp] - str r1, [sp, #4] - mov sl, r2 - mov sb, r3 - ldr r0, _0801E3AC @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0801E3B0 @ =gUnk_02017AA0 - adds r0, r0, r1 - movs r1, #0xa0 - lsls r1, r1, #4 - bl sub_0801D630 - cmp sl, sb - bge _0801E3DC - movs r6, #0 - mov r8, sl - mov r7, r8 - mov r0, r8 - lsls r1, r0, #1 - movs r0, #3 - subs r5, r0, r1 - cmp r6, r8 - ble _0801E35E - b _0801E45E -_0801E35E: - mov r1, r8 - lsls r0, r1, #2 - ldr r4, _0801E3B4 @ =gUnk_02018EE0 - adds r0, r0, r4 - str r0, [sp, #0x10] - mov r1, sb - mov r0, r8 - muls r0, r1, r0 - str r0, [sp, #0x14] - movs r3, #0 -_0801E372: - adds r0, r3, #0 - mov r1, sl - str r3, [sp, #0x18] - bl Div - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp, #0x1c] - ldr r0, [sp, #0x14] - mov r1, sl - bl Div - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r6, #2 - ldr r4, _0801E3B4 @ =gUnk_02018EE0 - adds r1, r2, r4 - str r0, [r1] - ldr r0, [sp, #0x1c] - ldr r1, [sp, #0x10] - str r0, [r1] - ldr r3, [sp, #0x18] - cmp r5, #0 - bge _0801E3B8 - adds r0, r5, #6 - adds r5, r0, r2 - b _0801E3D2 - .align 2, 0 -_0801E3AC: .4byte gUnk_03003DE4 -_0801E3B0: .4byte gUnk_02017AA0 -_0801E3B4: .4byte gUnk_02018EE0 -_0801E3B8: - adds r1, r5, #0 - adds r1, #0xa - subs r0, r6, r7 - lsls r0, r0, #2 - adds r5, r1, r0 - ldr r4, [sp, #0x10] - subs r4, #4 - str r4, [sp, #0x10] - ldr r0, [sp, #0x14] - mov r1, sb - subs r0, r0, r1 - str r0, [sp, #0x14] - subs r7, #1 -_0801E3D2: - add r3, sb - adds r6, #1 - cmp r6, r7 - ble _0801E372 - b _0801E45E -_0801E3DC: - movs r6, #0 - mov r8, sb - mov r7, r8 - mov r4, r8 - lsls r1, r4, #1 - movs r0, #3 - subs r5, r0, r1 - cmp r6, r8 - bgt _0801E45E - lsls r0, r4, #2 - ldr r1, _0801E438 @ =gUnk_02018EE0 - adds r0, r0, r1 - str r0, [sp, #8] - mov r0, sl - mov r4, r8 - muls r4, r0, r4 - str r4, [sp, #0xc] - movs r3, #0 -_0801E400: - adds r0, r3, #0 - mov r1, sb - str r3, [sp, #0x18] - bl Div - adds r4, r0, #0 - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - str r4, [sp, #0x1c] - ldr r0, [sp, #0xc] - mov r1, sb - bl Div - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r2, r6, #2 - ldr r4, _0801E438 @ =gUnk_02018EE0 - adds r1, r2, r4 - str r0, [r1] - ldr r0, [sp, #0x1c] - ldr r1, [sp, #8] - str r0, [r1] - ldr r3, [sp, #0x18] - cmp r5, #0 - bge _0801E43C - adds r0, r5, #6 - adds r5, r0, r2 - b _0801E456 - .align 2, 0 -_0801E438: .4byte gUnk_02018EE0 -_0801E43C: - adds r1, r5, #0 - adds r1, #0xa - subs r0, r6, r7 - lsls r0, r0, #2 - adds r5, r1, r0 - ldr r4, [sp, #8] - subs r4, #4 - str r4, [sp, #8] - ldr r0, [sp, #0xc] - mov r1, sl - subs r0, r0, r1 - str r0, [sp, #0xc] - subs r7, #1 -_0801E456: - add r3, sl - adds r6, #1 - cmp r6, r7 - ble _0801E400 -_0801E45E: - ldr r0, [sp] - ldr r1, [sp, #4] - mov r2, r8 - bl sub_0801E290 - ldr r0, _0801E48C @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0801E490 @ =gUnk_02017AA0 - adds r0, r0, r1 - ldr r1, _0801E494 @ =0x04000040 - ldr r2, _0801E498 @ =0xA2600001 - bl sub_0805622C - add sp, #0x20 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E48C: .4byte gUnk_03003DE4 -_0801E490: .4byte gUnk_02017AA0 -_0801E494: .4byte 0x04000040 -_0801E498: .4byte 0xA2600001 - - thumb_func_start sub_0801E49C -sub_0801E49C: @ 0x0801E49C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - mov r8, r0 - str r1, [sp, #4] - mov sb, r2 - adds r5, r3, #0 - ldr r0, _0801E5E4 @ =0x0000FFFF - movs r2, #0xf0 - lsls r2, r2, #3 - ldr r1, _0801E5E8 @ =gUnk_02018EE0 - bl sub_0801D5EC - adds r3, r5, #0 - subs r3, #0x40 - movs r2, #0xff - ands r3, r2 - ldr r1, _0801E5EC @ =gUnk_080C9160 - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r4, #0 - ldrsh r0, [r0, r4] - mov r4, sb - muls r4, r0, r4 - adds r0, r4, #0 - asrs r0, r0, #8 - mov r4, r8 - adds r7, r4, r0 - lsls r0, r3, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r4, sb - muls r4, r0, r4 - adds r0, r4, #0 - asrs r0, r0, #8 - ldr r3, [sp, #4] - adds r3, r3, r0 - mov sl, r3 - adds r3, r5, #0 - adds r3, #0x68 - ands r3, r2 - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r4, #0 - ldrsh r0, [r0, r4] - mov r4, sb - muls r4, r0, r4 - adds r0, r4, #0 - asrs r0, r0, #8 - mov r4, r8 - adds r6, r4, r0 - lsls r0, r3, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r4, sb - muls r4, r0, r4 - adds r0, r4, #0 - asrs r0, r0, #8 - ldr r3, [sp, #4] - adds r4, r3, r0 - adds r3, r5, #0 - subs r3, #0xe8 - ands r3, r2 - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r2, sb - muls r2, r0, r2 - adds r0, r2, #0 - asrs r0, r0, #8 - mov r2, r8 - adds r5, r2, r0 - lsls r0, r3, #1 - adds r0, r0, r1 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r1, sb - muls r1, r0, r1 - adds r0, r1, #0 - asrs r0, r0, #8 - ldr r2, [sp, #4] - adds r2, r2, r0 - mov r8, r2 - movs r0, #0 - str r0, [sp] - adds r0, r7, #0 - mov r1, sl - adds r2, r6, #0 - adds r3, r4, #0 - bl sub_0801E64C - movs r0, #1 - str r0, [sp] - adds r0, r7, #0 - mov r1, sl - adds r2, r5, #0 - mov r3, r8 - bl sub_0801E64C - movs r0, #2 - str r0, [sp] - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - mov r3, r8 - bl sub_0801E64C - ldr r5, _0801E5F0 @ =gUnk_03003DE4 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r6, _0801E5F4 @ =gUnk_02017AA0 - adds r0, r0, r6 - movs r1, #0xa0 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r2, _0801E5E8 @ =gUnk_02018EE0 - ldrb r1, [r5] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - adds r1, r0, r6 - movs r3, #0xa0 - mov sl, r3 -_0801E5B0: - ldr r7, [r2] - ldr r6, [r2, #4] - ldr r5, [r2, #8] - adds r2, #0xc - cmp r7, r6 - ble _0801E5C2 - adds r4, r7, #0 - adds r7, r6, #0 - adds r6, r4, #0 -_0801E5C2: - cmp r7, r5 - ble _0801E5CC - adds r4, r7, #0 - adds r7, r5, #0 - adds r5, r4, #0 -_0801E5CC: - cmp r6, r5 - ble _0801E5D6 - adds r4, r6, #0 - adds r6, r5, #0 - adds r5, r4, #0 -_0801E5D6: - movs r0, #1 - rsbs r0, r0, #0 - cmp r7, r0 - beq _0801E5F8 - strb r5, [r1] - strb r7, [r1, #1] - b _0801E60A - .align 2, 0 -_0801E5E4: .4byte 0x0000FFFF -_0801E5E8: .4byte gUnk_02018EE0 -_0801E5EC: .4byte gUnk_080C9160 -_0801E5F0: .4byte gUnk_03003DE4 -_0801E5F4: .4byte gUnk_02017AA0 -_0801E5F8: - cmp r6, r7 - beq _0801E602 - strb r5, [r1] - strb r6, [r1, #1] - b _0801E60A -_0801E602: - cmp r5, r7 - beq _0801E60A - strb r7, [r1, #1] - strb r7, [r1] -_0801E60A: - movs r4, #1 - rsbs r4, r4, #0 - add sl, r4 - adds r1, #2 - mov r0, sl - cmp r0, #0 - bgt _0801E5B0 - ldr r0, _0801E63C @ =gUnk_03003DE4 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #9 - ldr r1, _0801E640 @ =gUnk_02017AA0 - adds r0, r0, r1 - ldr r1, _0801E644 @ =0x04000040 - ldr r2, _0801E648 @ =0xA2600001 - bl sub_0805622C - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E63C: .4byte gUnk_03003DE4 -_0801E640: .4byte gUnk_02017AA0 -_0801E644: .4byte 0x04000040 -_0801E648: .4byte 0xA2600001 - - thumb_func_start sub_0801E64C -sub_0801E64C: @ 0x0801E64C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r3, #0 - ldr r7, _0801E6C4 @ =gUnk_02018EE0 - cmp r4, #0 - bge _0801E65E - cmp r6, #0 - blt _0801E6C2 -_0801E65E: - cmp r4, #0x9f - ble _0801E666 - cmp r6, #0x9f - bgt _0801E6C2 -_0801E666: - cmp r4, r6 - ble _0801E676 - adds r1, r4, #0 - adds r4, r6, #0 - adds r6, r1, #0 - adds r1, r5, #0 - adds r5, r2, #0 - adds r2, r1, #0 -_0801E676: - cmp r4, r6 - beq _0801E6C2 - subs r0, r2, r5 - lsls r0, r0, #0x10 - subs r1, r6, r4 - bl Div - adds r3, r0, #0 - cmp r4, #0 - bge _0801E694 - rsbs r0, r4, #0 - muls r0, r3, r0 - asrs r0, r0, #0x10 - adds r5, r5, r0 - movs r4, #0 -_0801E694: - cmp r6, #0x9f - ble _0801E69A - movs r6, #0x9f -_0801E69A: - lsls r2, r5, #0x10 - lsls r0, r4, #1 - adds r0, r0, r4 - ldr r1, [sp, #0x14] - adds r0, r0, r1 - lsls r0, r0, #2 - adds r7, r0, r7 -_0801E6A8: - cmp r5, #0 - bge _0801E6AE - movs r5, #0 -_0801E6AE: - cmp r5, #0xf0 - ble _0801E6B4 - movs r5, #0xf0 -_0801E6B4: - str r5, [r7] - adds r2, r2, r3 - asrs r5, r2, #0x10 - adds r4, #1 - adds r7, #0xc - cmp r4, r6 - ble _0801E6A8 -_0801E6C2: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E6C4: .4byte gUnk_02018EE0 - - thumb_func_start sub_0801E6C8 -sub_0801E6C8: @ 0x0801E6C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - subs r0, r4, #1 - cmp r0, #0x63 - bhi _0801E722 - movs r1, #0 - ldr r5, _0801E724 @ =gUnk_02022740 - ldr r3, _0801E728 @ =gUnk_02002C01 - movs r2, #0xf1 -_0801E6DA: - adds r0, r1, r3 - ldrb r6, [r0] - cmp r4, r6 - bne _0801E6E4 - strb r2, [r0] -_0801E6E4: - adds r1, #1 - cmp r1, #0x7f - bls _0801E6DA - ldr r0, [r5, #0xc] - bl sub_08002632 - adds r1, r0, #0 - subs r0, r1, #1 - cmp r0, #0x7e - bhi _0801E70A - ldr r0, _0801E72C @ =gUnk_02002A40 - ldr r2, _0801E730 @ =0x000001C1 - adds r0, r0, r2 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xf1 - bne _0801E70A - movs r0, #0xf2 - strb r0, [r1] -_0801E70A: - movs r1, #0 - ldr r0, _0801E734 @ =gUnk_03003DF0 - movs r2, #0xf1 - adds r0, #0xb -_0801E712: - ldrb r3, [r0] - cmp r4, r3 - bne _0801E71A - strb r2, [r0] -_0801E71A: - adds r0, #0xc - adds r1, #1 - cmp r1, #0x1f - bls _0801E712 -_0801E722: - pop {r4, r5, r6, pc} - .align 2, 0 -_0801E724: .4byte gUnk_02022740 -_0801E728: .4byte gUnk_02002C01 -_0801E72C: .4byte gUnk_02002A40 -_0801E730: .4byte 0x000001C1 -_0801E734: .4byte gUnk_03003DF0 - - thumb_func_start sub_0801E738 -sub_0801E738: @ 0x0801E738 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E82C - adds r0, r4, #0 - subs r0, #0x65 - cmp r0, #0x10 - bhi _0801E790 - adds r0, r4, #0 - bl sub_0801E8B0 - adds r1, r0, #0 - cmp r1, #0 - bge _0801E76E - movs r1, #0 - ldr r0, _0801E794 @ =gUnk_02002A40 - movs r3, #0x8c - lsls r3, r3, #1 - adds r2, r0, r3 - ldrb r0, [r2] - cmp r0, #0 - beq _0801E76E -_0801E764: - adds r1, #1 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - bne _0801E764 -_0801E76E: - cmp r1, #0x11 - bhi _0801E790 - ldr r2, _0801E794 @ =gUnk_02002A40 - movs r3, #0x8c - lsls r3, r3, #1 - adds r0, r2, r3 - adds r0, r1, r0 - strb r4, [r0] - adds r3, #0x13 - adds r0, r2, r3 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, #1 - cmp r0, #0x63 - ble _0801E78E - movs r0, #0x63 -_0801E78E: - strb r0, [r1] -_0801E790: - pop {r4, pc} - .align 2, 0 -_0801E794: .4byte gUnk_02002A40 - - thumb_func_start sub_0801E798 -sub_0801E798: @ 0x0801E798 - push {r4, lr} - bl sub_0801E8B0 - adds r1, r0, #0 - cmp r1, #0 - blt _0801E7C4 - ldr r2, _0801E7C8 @ =gUnk_02002A40 - ldr r3, _0801E7CC @ =0x0000012B - adds r0, r2, r3 - adds r3, r1, r0 - ldrb r0, [r3] - subs r0, #1 - cmp r0, #0 - bgt _0801E7C2 - movs r4, #0x8c - lsls r4, r4, #1 - adds r0, r2, r4 - adds r0, r1, r0 - movs r1, #0 - strb r1, [r0] - movs r0, #0 -_0801E7C2: - strb r0, [r3] -_0801E7C4: - pop {r4, pc} - .align 2, 0 -_0801E7C8: .4byte gUnk_02002A40 -_0801E7CC: .4byte 0x0000012B - - thumb_func_start sub_0801E7D0 -sub_0801E7D0: @ 0x0801E7D0 - push {lr} - bl sub_0801E8B0 - adds r1, r0, #0 - cmp r1, #0 - blt _0801E7F0 - ldr r0, _0801E7E8 @ =gUnk_02002A40 - ldr r2, _0801E7EC @ =0x0000012B - adds r0, r0, r2 - adds r0, r1, r0 - ldrb r0, [r0] - b _0801E7F2 - .align 2, 0 -_0801E7E8: .4byte gUnk_02002A40 -_0801E7EC: .4byte 0x0000012B -_0801E7F0: - movs r0, #0 -_0801E7F2: - pop {pc} - - thumb_func_start sub_0801E7F4 -sub_0801E7F4: @ 0x0801E7F4 - push {lr} - adds r1, r0, #0 - subs r0, r1, #1 - cmp r0, #0x63 - bhi _0801E80C - ldr r0, _0801E808 @ =gUnk_02002C81 - bl sub_0801D5A8 - b _0801E80E - .align 2, 0 -_0801E808: .4byte gUnk_02002C81 -_0801E80C: - movs r0, #0 -_0801E80E: - pop {pc} - - thumb_func_start sub_0801E810 -sub_0801E810: @ 0x0801E810 - push {lr} - adds r1, r0, #0 - subs r0, r1, #1 - cmp r0, #0x63 - bhi _0801E828 - ldr r0, _0801E824 @ =gUnk_02002C8E - bl sub_0801D5A8 - b _0801E82A - .align 2, 0 -_0801E824: .4byte gUnk_02002C8E -_0801E828: - movs r0, #0 -_0801E82A: - pop {pc} - - thumb_func_start sub_0801E82C -sub_0801E82C: @ 0x0801E82C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r1, _0801E8AC @ =gUnk_02002B54 - movs r5, #0 - adds r2, r1, #4 -_0801E83C: - ldrb r0, [r2, #0x13] - adds r3, r1, #4 - mov sl, r3 - cmp r0, #0 - bne _0801E848 - strb r0, [r2] -_0801E848: - adds r2, #1 - adds r5, #1 - cmp r5, #0x12 - bls _0801E83C - movs r0, #0 - strb r0, [r1, #0x16] - adds r2, r1, #0 - adds r2, #0x29 - strb r0, [r2] - movs r5, #0 - movs r0, #0x17 - adds r0, r0, r1 - mov sb, r0 - movs r3, #0x18 - adds r3, r3, r1 - mov r8, r3 - adds r7, r1, #4 - adds r6, r1, #5 -_0801E86C: - mov r1, sl - adds r0, r1, r5 - ldrb r0, [r0] - subs r0, #0x65 - cmp r0, #0x10 - bls _0801E890 - movs r4, #0x12 - subs r4, r4, r5 - adds r0, r6, #0 - adds r1, r7, #0 - adds r2, r4, #0 - bl sub_0801D66C - mov r0, r8 - mov r1, sb - adds r2, r4, #0 - bl sub_0801D66C -_0801E890: - movs r3, #1 - add sb, r3 - add r8, r3 - adds r7, #1 - adds r6, #1 - adds r5, #1 - cmp r5, #0x11 - bls _0801E86C - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0801E8AC: .4byte gUnk_02002B54 - - thumb_func_start sub_0801E8B0 -sub_0801E8B0: @ 0x0801E8B0 - push {lr} - adds r2, r0, #0 - movs r1, #0 - ldr r3, _0801E8C4 @ =gUnk_02002B58 -_0801E8B8: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bne _0801E8C8 - adds r0, r1, #0 - b _0801E8D2 - .align 2, 0 -_0801E8C4: .4byte gUnk_02002B58 -_0801E8C8: - adds r1, #1 - cmp r1, #0x11 - bls _0801E8B8 - movs r0, #1 - rsbs r0, r0, #0 -_0801E8D2: - pop {pc} - - thumb_func_start sub_0801E8D4 -sub_0801E8D4: @ 0x0801E8D4 - push {r4, r5, lr} - movs r5, #0xa -_0801E8D8: - adds r0, r5, #0 - bl sub_0801E7F4 - cmp r0, #0 - beq _0801E990 - adds r0, r5, #0 - bl sub_0801E810 - cmp r0, #0 - bne _0801E990 - ldr r1, _0801E910 @ =gUnk_080C9CBC - lsls r0, r5, #3 - adds r0, r0, r1 - ldrb r1, [r0, #4] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0801E914 @ =gUnk_080FE320 - adds r2, r0, r1 - ldrh r3, [r2, #0x12] - ldrb r0, [r2, #0x10] - cmp r0, #0xa - bhi _0801E97C - lsls r0, r0, #2 - ldr r1, _0801E918 @ =_0801E91C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801E910: .4byte gUnk_080C9CBC -_0801E914: .4byte gUnk_080FE320 -_0801E918: .4byte _0801E91C -_0801E91C: @ jump table - .4byte _0801E948 @ case 0 - .4byte _0801E94C @ case 1 - .4byte _0801E950 @ case 2 - .4byte _0801E954 @ case 3 - .4byte _0801E958 @ case 4 - .4byte _0801E95C @ case 5 - .4byte _0801E962 @ case 6 - .4byte _0801E968 @ case 7 - .4byte _0801E96E @ case 8 - .4byte _0801E972 @ case 9 - .4byte _0801E978 @ case 10 -_0801E948: - movs r4, #0 - b _0801E97C -_0801E94C: - ldrb r4, [r2, #0x11] - b _0801E97C -_0801E950: - movs r4, #0xf - b _0801E97C -_0801E954: - movs r4, #0x10 - b _0801E97C -_0801E958: - movs r4, #0x11 - b _0801E97C -_0801E95C: - movs r4, #4 - movs r3, #0x83 - b _0801E97C -_0801E962: - movs r4, #4 - movs r3, #0x84 - b _0801E97C -_0801E968: - movs r4, #4 - movs r3, #0x87 - b _0801E97C -_0801E96E: - movs r4, #4 - b _0801E97A -_0801E972: - movs r4, #4 - movs r3, #0x8b - b _0801E97C -_0801E978: - movs r4, #5 -_0801E97A: - movs r3, #0x88 -_0801E97C: - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0807CB24 - cmp r0, #0 - beq _0801E990 - ldr r0, _0801E998 @ =gUnk_02002C8E - adds r1, r5, #0 - bl sub_0801D5BC -_0801E990: - adds r5, #1 - cmp r5, #0x64 - bls _0801E8D8 - pop {r4, r5, pc} - .align 2, 0 -_0801E998: .4byte gUnk_02002C8E - - thumb_func_start sub_0801E99C -sub_0801E99C: @ 0x0801E99C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_08002632 - mov r8, r0 - ldr r1, _0801E9E4 @ =gUnk_08001DCC - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r7, [r0] - movs r0, #0x67 - bl GetInventoryValue - cmp r0, #0 - beq _0801EA56 - ldr r1, _0801E9E8 @ =gUnk_02002A40 - ldrb r0, [r7] - ldrb r2, [r1, #8] - cmp r0, r2 - bhi _0801EA56 - ldr r2, _0801E9EC @ =0x000001C1 - adds r0, r1, r2 - add r0, r8 - ldrb r5, [r0] - subs r2, #0x80 - adds r0, r1, r2 - add r0, r8 - ldrb r6, [r0] - adds r4, r6, r7 -_0801E9D6: - cmp r5, #0xf1 - beq _0801E9F6 - cmp r5, #0xf1 - bhi _0801E9F0 - cmp r5, #0 - beq _0801E9F6 - b _0801EA10 - .align 2, 0 -_0801E9E4: .4byte gUnk_08001DCC -_0801E9E8: .4byte gUnk_02002A40 -_0801E9EC: .4byte 0x000001C1 -_0801E9F0: - cmp r5, #0xf2 - beq _0801EA0A - b _0801EA10 -_0801E9F6: - ldrb r5, [r4, #5] - cmp r5, #0 - beq _0801EA10 - cmp r5, #0xff - beq _0801EA14 - adds r0, r5, #0 - bl sub_0801E7F4 - cmp r0, #0 - beq _0801EA10 -_0801EA0A: - adds r4, #1 - adds r6, #1 - ldrb r5, [r4, #5] -_0801EA10: - cmp r5, #0xff - bne _0801EA1C -_0801EA14: - adds r0, r7, #0 - bl sub_0801EA74 - adds r5, r0, #0 -_0801EA1C: - cmp r5, #0 - beq _0801EA32 - cmp r5, #0xf2 - beq _0801E9D6 - adds r0, r5, #0 - bl sub_0801E7F4 - cmp r0, #0 - beq _0801EA34 - movs r5, #0xf1 - b _0801E9D6 -_0801EA32: - movs r5, #0xf3 -_0801EA34: - ldr r1, _0801EA5C @ =gUnk_02002A40 - ldr r2, _0801EA60 @ =0x000001C1 - adds r0, r1, r2 - add r0, r8 - strb r5, [r0] - subs r2, #0x80 - adds r0, r1, r2 - add r0, r8 - strb r6, [r0] - bl sub_08000E50 - ldrb r4, [r7, #1] - movs r1, #0x64 - bl __modsi3 - cmp r4, r0 - bhi _0801EA64 -_0801EA56: - movs r0, #0 - b _0801EA6E - .align 2, 0 -_0801EA5C: .4byte gUnk_02002A40 -_0801EA60: .4byte 0x000001C1 -_0801EA64: - subs r0, r5, #1 - cmp r0, #0x63 - bls _0801EA6C - movs r5, #0 -_0801EA6C: - adds r0, r5, #0 -_0801EA6E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0801EA74 -sub_0801EA74: @ 0x0801EA74 - push {r4, r5, r6, lr} - bl sub_08000E50 - movs r1, #0x12 - bl __modsi3 - adds r5, r0, #0 - movs r6, #0 -_0801EA84: - ldr r0, _0801EA98 @ =gUnk_080CA11C - adds r0, r5, r0 - ldrb r4, [r0] - adds r0, r4, #0 - bl sub_0801E7F4 - cmp r0, #0 - bne _0801EA9C - adds r0, r4, #0 - b _0801EAAE - .align 2, 0 -_0801EA98: .4byte gUnk_080CA11C -_0801EA9C: - adds r0, r5, #1 - movs r1, #0x12 - bl __modsi3 - adds r5, r0, #0 - adds r6, #1 - cmp r6, #0x11 - bls _0801EA84 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08000E50 - b _0801EDD0 -_0801ED4C: - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0801ED78 - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - 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 sub_08000E50 - 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 sub_08000E50 - b _0801EDD0 -_0801ED9A: - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0801EDC4 - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - b _0801EFC4 -_0801EFB0: - adds r0, r4, #0 - bl sub_0804AA1C - str r6, [r4, #0x20] - adds r0, r4, #0 - movs r1, #9 - bl sub_08004260 -_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 sub_08004260 - 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 sub_08004260 -_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 sub_08000E50 - ands r0, r4 - adds r0, #0xc - strb r0, [r5, #0xe] - bl sub_08000E50 - 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 sub_08004260 -_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 sub_08000E50 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_08004260 - 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 sub_08004260 - 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 sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0xb4 - strb r0, [r4, #0xe] - bl sub_08000E50 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_08000E50 - 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 sub_08004260 -_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 sub_08004260 -_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 sub_08000E50 - 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 sub_08004260 -_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 sub_08004260 -_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 sub_08004260 -_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 sub_08004260 -_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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_08000E50 - 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 sub_08004260 -_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 sub_08004260 -_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 sub_08004260 -_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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08004260 - adds r0, r5, #0 - bl sub_08016A04 - b _0801FD28 - .align 2, 0 -_0801FD14: .4byte gUnk_020000B0 -_0801FD18: .4byte gUnk_080CA4C8 -_0801FD1C: - bl sub_08000E50 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_0806FA24 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_08000E50 - strb r0, [r4, #0xf] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x12 - strb r0, [r4, #0x1c] - bl sub_08000E50 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _0802020C - bl sub_08000E50 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08004260 -_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 sub_08000E50 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08004260 - 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 sub_08000E50 - movs r1, #0x10 - ands r0, r1 - adds r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08004260 -_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 sub_08004260 -_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 sub_08004260 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08004260 -_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 sub_08004260 - 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 sub_08004260 -_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 sub_08004260 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08004260 - 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 @ =gUnk_03000BF0 - 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 sub_08004260 - ldr r0, _08020B64 @ =0x00004034 - ldrb r2, [r6] - adds r1, r5, #0 - bl sub_0800015E - movs r0, #1 - b _08020B6A - .align 2, 0 -_08020B5C: .4byte gUnk_03000BF0 -_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 sub_080042AC -_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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08000E50 - 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 @ =gUnk_03003F80 - 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 gUnk_03003F80 -_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 sub_08004260 - 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 sub_08004260 -_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 sub_08004260 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08004260 -_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 sub_08004260 - adds r0, r4, #0 - bl sub_08016A04 -_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 sub_08000E50 - 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 sub_08004260 -_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 sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 -_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 @ =gUnk_03003F80 - 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 sub_08004260 - b _08021C4E - .align 2, 0 -_08021B88: .4byte gUnk_03003F80 -_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 sub_08004260 - 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 sub_08004260 -_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 sub_08004260 -_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 sub_08004260 - 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 sub_08000E50 - 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 sub_08016A04 - 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 sub_08000E50 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08004260 - b _08021FA4 - .align 2, 0 -_08021F7C: .4byte gLinkEntity -_08021F80: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _08021F94 - bl sub_08000E50 - 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 sub_08004260 -_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 sub_0800015E - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 -_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 @ =gUnk_03000BF0 - 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 sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08022220: .4byte gUnk_03000BF0 -_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 @ =gUnk_03003F80 - 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 gUnk_03003F80 -_08022344: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x94 - beq _08022356 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_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 sub_08000E50 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_08004260 - 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 sub_08004260 - movs r0, #0xca - lsls r0, r0, #1 - bl sub_08004488 - b _0802258E -_08022582: - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_080A3268 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_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 sub_08004260 - movs r0, #0x7d - bl sub_08004488 - adds r0, r4, #0 - bl sub_08016A04 -_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 sub_08004260 -_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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08004260 -_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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_08000E50 - 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 sub_08000E50 - 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 sub_0806FA24 - 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 sub_0806FA24 - 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 sub_0806FA24 - 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 sub_08000E50 - 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 sub_08000E50 - 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 sub_080042AC -_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 sub_0806FA24 - 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 @ =gUnk_03003F80 - 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 gUnk_03003F80 -_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 sub_08000E50 - 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 sub_08004260 -_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 sub_08000E50 - 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 sub_08000E50 - 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 sub_0806FA24 - 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 sub_08004260 -_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 sub_08000E50 - 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 sub_08004260 - ldrb r1, [r7, #0x14] - adds r0, r7, #0 - bl sub_08004260 -_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 @ =gUnk_03003F80 - 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 gUnk_03003F80 -_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 sub_08004260 - 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 sub_08004260 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_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 sub_08004260 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xb] - cmp r0, #0 - bne _08023900 - ldr r2, _08023904 @ =gUnk_03003F80 - 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 sub_080526A0 - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C -_08023900: - pop {r4, r5, pc} - .align 2, 0 -_08023904: .4byte gUnk_03003F80 -_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 sub_08016A04 - adds r0, r5, #0 - movs r1, #0x16 - bl sub_08004260 - ldr r4, [r5, #0x54] -_080239D4: - adds r0, r4, #0 - bl sub_080239F0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 - 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 sub_08004260 -_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 sub_08000E50 - movs r1, #0x30 - ands r0, r1 - adds r0, #0xb4 - strb r0, [r4, #0xe] - bl sub_08000E50 - 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 sub_08004260 - 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 sub_08000E50 - 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 sub_08004260 -_08023CDC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08023CE0 -sub_08023CE0: @ 0x08023CE0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08023D48 - cmp r0, #1 - bgt _08023CF4 - cmp r0, #0 - beq _08023CFA - b _08023DC0 -_08023CF4: - cmp r0, #2 - beq _08023D6E - b _08023DC0 -_08023CFA: - adds r0, r4, #0 - bl sub_0804A720 - ldrb r1, [r4, #0xb] - cmp r1, #1 - bne _08023D1C - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08023D12 - strb r1, [r4, #0xe] -_08023D12: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08023D20 -_08023D1C: - movs r0, #1 - strb r0, [r4, #0xc] -_08023D20: - ldr r0, _08023D44 @ =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] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _08023E0A - .align 2, 0 -_08023D44: .4byte 0x0000FF80 -_08023D48: - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x20 - bl sub_08049F64 - cmp r0, #0 - beq _08023E0A - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08023D64 - movs r0, #8 - strb r0, [r4, #0xe] -_08023D64: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - b _08023E0A -_08023D6E: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08023D94 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08023E0A - ldr r0, _08023D90 @ =0x0000012D - bl sub_08004488 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _08023E0A - .align 2, 0 -_08023D90: .4byte 0x0000012D -_08023D94: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08023E0A - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x84 - bl sub_08004488 - adds r0, r4, #0 - bl sub_08016A04 - b _08023E0A -_08023DC0: - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - cmp r1, #0 - beq _08023E0A - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08023DF2 - movs r0, #0x10 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _08023E0A - adds r0, r4, #0 - bl sub_0804A4E4 - bl sub_0805E780 - b _08023E0A -_08023DF2: - ldr r1, _08023E0C @ =gUnk_080CBDF4 - ldrb r0, [r2] - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r4, #0x32] - strb r1, [r2] -_08023E0A: - pop {r4, pc} - .align 2, 0 -_08023E0C: .4byte gUnk_080CBDF4 - - thumb_func_start sub_08023E10 -sub_08023E10: @ 0x08023E10 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08023E36 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #9 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 -_08023E36: - 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 _08023E50 - adds r0, r4, #0 - bl sub_0805E7BC -_08023E50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08023E54 -sub_08023E54: @ 0x08023E54 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1b - bls _08023E94 - movs r0, #0 - strb r0, [r4, #0xf] - movs r0, #0x10 - movs r1, #2 - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _08023E94 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - ldr r1, _08023E98 @ =gUnk_080CBDF7 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_08023E94: - pop {r4, r5, pc} - .align 2, 0 -_08023E98: .4byte gUnk_080CBDF7 - - thumb_func_start sub_08023E9C -sub_08023E9C: @ 0x08023E9C - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08000E50 - adds r6, r0, #0 - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08023EC2 - movs r0, #1 - ands r0, r6 - cmp r0, #0 - beq _08023EC2 - adds r0, r5, #0 - bl sub_08049EE4 - adds r0, #4 - b _08023F1C -_08023EC2: - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08023F0A - movs r0, #6 - ands r0, r6 - cmp r0, #0 - beq _08023F0A - ldr r0, _08023F00 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r5, #0 - bl sub_080045C4 - ldrb r2, [r5, #0x15] - subs r1, r0, r2 - cmp r1, #0 - beq _08023F22 - adds r0, r1, #4 - movs r3, #0x1f - ands r0, r3 - cmp r0, #8 - bls _08023F22 - ands r1, r3 - cmp r1, #0xf - bhi _08023F04 - adds r0, r2, #0 - adds r0, #8 - b _08023F1C - .align 2, 0 -_08023F00: .4byte gUnk_020000B0 -_08023F04: - adds r0, r2, #0 - subs r0, #8 - b _08023F1C -_08023F0A: - ldr r4, _08023F24 @ =gUnk_080CBDFF - lsrs r0, r6, #4 - movs r1, #3 - bl __modsi3 - adds r0, r0, r4 - ldrb r0, [r0] - ldrb r1, [r5, #0x15] - adds r0, r0, r1 -_08023F1C: - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] -_08023F22: - pop {r4, r5, r6, pc} - .align 2, 0 -_08023F24: .4byte gUnk_080CBDFF - - thumb_func_start sub_08023F28 -sub_08023F28: @ 0x08023F28 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08023F40 @ =gUnk_080CBEC4 - 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 -_08023F40: .4byte gUnk_080CBEC4 - - thumb_func_start sub_08023F44 -sub_08023F44: @ 0x08023F44 - push {lr} - ldr r2, _08023F58 @ =gUnk_080CBEDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08023F58: .4byte gUnk_080CBEDC - - thumb_func_start sub_08023F5C -sub_08023F5C: @ 0x08023F5C - push {r4, lr} - mov ip, r0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x6e - beq _08023FC8 - mov r0, ip - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _08023FD0 - mov r1, ip - adds r1, #0x86 - movs r0, #0x30 - strb r0, [r1] - mov r2, ip - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - adds r4, r2, #0 - cmp r0, #3 - bne _08023FD0 - mov r1, ip - ldrb r0, [r1, #0xc] - cmp r0, #6 - bne _08023FD0 - subs r2, #3 - ldrb r0, [r2] - cmp r0, #1 - beq _08023FA0 - cmp r0, #2 - beq _08023FB8 - b _08023FD0 -_08023FA0: - movs r0, #0 - ldr r1, _08023FC4 @ =0x0000FFF0 - mov r3, ip - strh r1, [r3, #0x36] - adds r3, #0x82 - strb r0, [r3] - mov r0, ip - adds r0, #0x78 - strh r1, [r0] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] -_08023FB8: - ldrb r1, [r4] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4] - b _08023FD0 - .align 2, 0 -_08023FC4: .4byte 0x0000FFF0 -_08023FC8: - mov r1, ip - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_08023FD0: - ldr r1, _08023FDC @ =gUnk_080CBEC4 - mov r0, ip - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08023FDC: .4byte gUnk_080CBEC4 - - thumb_func_start sub_08023FE0 -sub_08023FE0: @ 0x08023FE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001324 - - thumb_func_start sub_08023FE8 -sub_08023FE8: @ 0x08023FE8 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08023FF0 -sub_08023FF0: @ 0x08023FF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _08024022 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _08024022 - movs r2, #1 - strb r2, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x77 - strb r0, [r1] - strb r2, [r4, #0xe] - movs r0, #0x40 - strh r0, [r4, #0x24] - b _08024032 -_08024022: - ldr r0, _08024034 @ =gUnk_080CBEF8 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08024032: - pop {r4, pc} - .align 2, 0 -_08024034: .4byte gUnk_080CBEF8 - - thumb_func_start sub_08024038 -sub_08024038: @ 0x08024038 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bl sub_08004274 - pop {pc} - - thumb_func_start sub_08024048 -sub_08024048: @ 0x08024048 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F4E8 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08024058 -sub_08024058: @ 0x08024058 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_08024060 -sub_08024060: @ 0x08024060 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x3f - ldrb r0, [r2] - cmp r0, #0x6e - beq _0802408C - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - movs r0, #0x6e - strb r0, [r2] - ldr r0, _08024094 @ =gLinkEntity - ldrb r1, [r0, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] -_0802408C: - adds r0, r3, #0 - bl sub_08004274 - pop {pc} - .align 2, 0 -_08024094: .4byte gLinkEntity - - thumb_func_start nullsub_138 -nullsub_138: @ 0x08024098 - bx lr - .align 2, 0 - - thumb_func_start sub_0802409C -sub_0802409C: @ 0x0802409C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A29BC - pop {r4, pc} - - thumb_func_start sub_080240B8 -sub_080240B8: @ 0x080240B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0xc0 - ands r1, r0 - lsrs r7, r1, #3 - adds r0, r4, #0 - bl sub_0804A720 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #8 - ands r0, r7 - cmp r0, #0 - beq _080240FC - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r0, #0x10 - ands r0, r7 - cmp r0, #0 - beq _080240F4 - adds r0, r1, #0 - subs r0, #0x20 - b _080240F8 -_080240F4: - adds r0, r1, #0 - adds r0, #0x20 -_080240F8: - strh r0, [r4, #0x32] - b _08024114 -_080240FC: - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x10 - ands r0, r7 - cmp r0, #0 - beq _0802410E - adds r0, r1, #0 - subs r0, #0x20 - b _08024112 -_0802410E: - adds r0, r1, #0 - adds r0, #0x20 -_08024112: - strh r0, [r4, #0x2e] -_08024114: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08024120 - cmp r0, #1 - beq _0802412C - b _08024136 -_08024120: - adds r1, r4, #0 - adds r1, #0x78 - ldr r0, _08024128 @ =0x0000FFF0 - b _08024132 - .align 2, 0 -_08024128: .4byte 0x0000FFF0 -_0802412C: - adds r1, r4, #0 - adds r1, #0x78 - ldr r0, _080241BC @ =0x0000FFD0 -_08024132: - strh r0, [r1] - strh r0, [r4, #0x36] -_08024136: - adds r0, r4, #0 - bl sub_08016A04 - bl sub_08052660 - cmp r0, #0 - beq _08024150 - ldrb r0, [r4, #0x1b] - movs r1, #0x3f - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r4, #0x1b] -_08024150: - bl sub_08000E50 - movs r1, #0x40 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x81 - movs r6, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x82 - strb r6, [r0] - adds r5, r4, #0 - adds r5, #0x83 - movs r0, #0x80 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x86 - strb r6, [r0] - adds r0, #1 - strb r6, [r0] - strb r6, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0x1c] - strb r7, [r4, #0x15] - adds r0, r4, #0 - bl sub_080249DC - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _080241B8 - strb r6, [r5] - ldrb r2, [r5] - adds r0, r4, #0 - movs r1, #6 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _080241B8 - str r1, [r4, #0x54] - str r4, [r1, #0x50] - ldrh r0, [r1, #0x32] - adds r0, #0x10 - strh r0, [r1, #0x32] -_080241B8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080241BC: .4byte 0x0000FFD0 - - thumb_func_start sub_080241C0 -sub_080241C0: @ 0x080241C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08024940 - adds r6, r4, #0 - adds r6, #0x80 - ldrb r5, [r6] - cmp r5, #0 - beq _080241D8 - cmp r5, #1 - beq _08024238 - b _08024296 -_080241D8: - ldr r0, _08024218 @ =gUnk_03003F80 - ldrb r0, [r0, #0xf] - movs r2, #0x40 - cmp r0, #0 - beq _080241E4 - movs r2, #0xa0 -_080241E4: - adds r0, r4, #0 - movs r1, #3 - bl sub_08049F64 - cmp r0, #0 - beq _08024220 - adds r0, r4, #0 - movs r1, #3 - bl sub_08049FDC - cmp r0, #0 - beq _08024220 - ldr r0, _0802421C @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x1e - beq _08024220 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - strh r5, [r4, #0x24] - adds r0, r4, #0 - movs r1, #3 - movs r2, #0xa - bl sub_08024A14 - b _08024296 - .align 2, 0 -_08024218: .4byte gUnk_03003F80 -_0802421C: .4byte gLinkEntity -_08024220: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024296 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x20 - bl sub_08024A14 - b _08024296 -_08024238: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024296 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08024290 - adds r5, r4, #0 - adds r5, #0x83 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802426C - adds r0, r4, #0 - bl sub_08024C94 - ldrb r0, [r5] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r5] - b _08024296 -_0802426C: - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r6] - movs r0, #0xa - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_08024E00 - adds r0, r4, #0 - bl sub_08024E1C - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #3 - bl sub_08024A14 - b _08024296 -_08024290: - adds r0, r4, #0 - bl sub_08024C94 -_08024296: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08024298 -sub_08024298: @ 0x08024298 - push {lr} - bl sub_08024D00 - pop {pc} - - thumb_func_start sub_080242A0 -sub_080242A0: @ 0x080242A0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08024940 - adds r0, r4, #0 - bl sub_08024CC0 - cmp r0, #0 - beq _08024334 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080242F0 - ldr r0, _080242E4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #1 - bl sub_08024E00 - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _080242E8 - strh r5, [r4, #0x24] - b _08024306 - .align 2, 0 -_080242E4: .4byte gUnk_020000B0 -_080242E8: - adds r0, r4, #0 - bl sub_08024E1C - b _08024306 -_080242F0: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _08024306 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0xa - bl sub_08024A14 -_08024306: - ldr r0, _08024338 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x20 - bl sub_08049F1C - cmp r0, #0 - beq _08024334 - adds r0, r4, #0 - movs r1, #3 - bl sub_08049FDC - cmp r0, #0 - beq _08024334 - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - strh r1, [r4, #0x24] -_08024334: - pop {r4, r5, pc} - .align 2, 0 -_08024338: .4byte gUnk_020000B0 - - thumb_func_start sub_0802433C -sub_0802433C: @ 0x0802433C - push {r4, lr} - adds r4, r0, #0 - bl sub_08024940 - adds r2, r4, #0 - adds r2, #0x80 - ldrb r0, [r2] - cmp r0, #0 - beq _08024354 - cmp r0, #1 - beq _0802437A - b _080243B6 -_08024354: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080243B6 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #8 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08024E00 - b _080243B6 -_0802437A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080243A0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r2] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0xc0 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - b _080243B6 -_080243A0: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r3 - cmp r0, #0 - bne _080243B6 - adds r0, r4, #0 - movs r1, #2 - movs r2, #4 - bl sub_08024A14 -_080243B6: - pop {r4, pc} - - thumb_func_start sub_080243B8 -sub_080243B8: @ 0x080243B8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08024940 - adds r5, r4, #0 - adds r5, #0x80 - ldrb r0, [r5] - cmp r0, #1 - beq _0802446A - cmp r0, #1 - bgt _080243D4 - cmp r0, #0 - beq _080243DA - b _080244E4 -_080243D4: - cmp r0, #2 - beq _08024486 - b _080244E4 -_080243DA: - adds r0, r4, #0 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - beq _08024462 - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _080243F2 - ldr r0, [r0, #4] - cmp r0, #0 - bne _08024406 -_080243F2: - movs r0, #2 - strb r0, [r5] - movs r0, #0x20 - strb r0, [r4, #0xe] - movs r1, #0x80 - strh r1, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x83 - strb r1, [r0] - b _080244E4 -_08024406: - ldr r0, _08024434 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0xe - bl sub_08049F1C - cmp r0, #0 - beq _08024438 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, #0xe2 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0x80 - strb r0, [r1] - ldr r1, [r4, #0x54] - movs r0, #2 - strb r0, [r1, #0xc] - b _080244E4 - .align 2, 0 -_08024434: .4byte gUnk_020000B0 -_08024438: - ldrb r0, [r4, #0xe] - subs r2, r0, #1 - strb r2, [r4, #0xe] - movs r1, #0xff - lsls r0, r2, #0x18 - cmp r0, #0 - beq _08024462 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _080244E4 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x1e - adds r2, #1 - adds r0, r4, #0 - movs r1, #2 - bl sub_08024A14 - b _080244E4 -_08024462: - adds r0, r4, #0 - bl sub_08024C7C - b _080244E4 -_0802446A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080244E4 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - movs r0, #0x20 - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - b _080244E4 -_08024486: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080244E4 - movs r0, #6 - strb r0, [r4, #0xc] - strb r1, [r5] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08024B38 - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r2, #0x40 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080244D8 - movs r0, #0x3f - ands r0, r1 - cmp r0, #1 - beq _080244C4 - cmp r0, #3 - bne _080244C8 - movs r0, #4 - b _080244CA -_080244C4: - movs r0, #0x14 - b _080244CA -_080244C8: - movs r0, #0x30 -_080244CA: - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - movs r2, #8 - bl sub_08024A14 - b _080244E4 -_080244D8: - strb r2, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - movs r2, #8 - bl sub_08024A14 -_080244E4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080244E8 -sub_080244E8: @ 0x080244E8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - bl sub_08024940 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #7 - bls _08024502 - b _08024924 -_08024502: - lsls r0, r0, #2 - ldr r1, _0802450C @ =_08024510 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802450C: .4byte _08024510 -_08024510: @ jump table - .4byte _08024530 @ case 0 - .4byte _080245A6 @ case 1 - .4byte _080245E4 @ case 2 - .4byte _080247F4 @ case 3 - .4byte _08024818 @ case 4 - .4byte _08024836 @ case 5 - .4byte _080248AE @ case 6 - .4byte _0802490A @ case 7 -_08024530: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024592 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _08024584 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r4, #0x32 - ldrsh r1, [r5, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #1 - bl sub_080002E0 - adds r2, r0, #0 - cmp r2, #0 - bne _08024588 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - strb r2, [r5, #0xf] - strh r2, [r5, #0x24] - b _08024924 - .align 2, 0 -_08024584: .4byte gUnk_03000BF0 -_08024588: - movs r0, #0x30 - strb r0, [r5, #0xe] - movs r0, #4 - strb r0, [r5, #0xf] - b _08024924 -_08024592: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - beq _080245A0 - b _08024924 -_080245A0: - adds r0, r5, #0 - movs r1, #1 - b _08024902 -_080245A6: - ldrh r0, [r5, #0x36] - adds r0, #1 - strh r0, [r5, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r2, #0x10 - rsbs r2, r2, #0 - cmp r0, r2 - bge _080245BA - b _08024924 -_080245BA: - adds r1, r5, #0 - adds r1, #0x82 - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x78 - strh r2, [r0] - adds r0, r5, #0 - bl sub_08024AD8 - cmp r0, #0 - beq _080245D4 - b _0802482A -_080245D4: - adds r0, r5, #0 - bl sub_08024C94 - adds r2, r5, #0 - adds r2, #0x83 - ldrb r0, [r2] - movs r1, #0x40 - b _080247EE -_080245E4: - adds r0, r5, #0 - bl sub_08024AD8 - cmp r0, #0 - bne _080245F0 - b _080247E0 -_080245F0: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802462C - movs r7, #0x24 - ldrsh r0, [r5, r7] - cmp r0, #0 - beq _0802460C - strh r1, [r5, #0x24] - b _08024612 -_0802460C: - adds r0, r5, #0 - bl sub_08024E1C -_08024612: - ldr r1, [r5, #0x54] - adds r0, r5, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - movs r1, #0 - bl sub_08024E00 - adds r0, r5, #0 - bl sub_080249DC - b _08024642 -_0802462C: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r2 - cmp r0, #0 - bne _08024642 - adds r0, r5, #0 - movs r1, #1 - movs r2, #8 - bl sub_08024A14 -_08024642: - adds r6, r5, #0 - adds r6, #0x83 - ldrb r1, [r6] - movs r0, #0x3f - mov sb, r0 - ands r0, r1 - cmp r0, #2 - beq _0802474C - cmp r0, #2 - bgt _0802465C - cmp r0, #1 - beq _080246E4 - b _08024924 -_0802465C: - cmp r0, #3 - beq _08024662 - b _08024924 -_08024662: - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08024670 - b _08024924 -_08024670: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xc - strb r0, [r5, #0xe] - movs r0, #0x10 - strb r0, [r5, #0x15] - movs r4, #0 - strh r2, [r5, #0x24] - adds r0, r5, #0 - adds r0, #0x84 - strb r4, [r0] - adds r2, r5, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #0xfc - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_080249DC - ldr r2, _080246DC @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - adds r1, r5, #0 - adds r1, #0x85 - strb r0, [r1] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldr r2, _080246E0 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0xa] - adds r2, #0x26 - ldrb r0, [r2] - cmp r0, #0 - bne _080246D6 - b _08024924 -_080246D6: - strb r4, [r2] - b _08024924 - .align 2, 0 -_080246DC: .4byte gLinkEntity -_080246E0: .4byte gUnk_03003F80 -_080246E4: - ldr r1, [r5, #0x54] - adds r0, r5, #0 - movs r2, #6 - movs r3, #6 - bl sub_080041A0 - cmp r0, #0 - bne _080246F6 - b _08024924 -_080246F6: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xc - strb r0, [r5, #0xe] - ldrb r1, [r6] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6] - ldr r0, [r5, #0x54] - adds r1, r5, #0 - bl sub_0806FA24 - ldrh r0, [r5, #0x36] - subs r0, #0xe - strh r0, [r5, #0x36] - adds r1, r5, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #0xe - strh r0, [r1] - ldrb r2, [r6] - adds r0, r5, #0 - movs r1, #6 - bl sub_0804A98C - adds r4, r0, #0 - cmp r4, #0 - bne _08024736 - b _08024924 -_08024736: - str r5, [r4, #0x50] - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - ldr r1, [r5, #0x54] - str r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - str r4, [r5, #0x54] - b _08024924 -_0802474C: - ldr r1, [r5, #0x54] - adds r0, r5, #0 - movs r2, #6 - movs r3, #6 - bl sub_080041A0 - cmp r0, #0 - bne _0802475E - b _08024924 -_0802475E: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xc - strb r0, [r5, #0xe] - ldrb r1, [r6] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6] - ldr r4, [r5, #0x54] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _080247DC @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - mov r7, sb - ands r1, r7 - movs r7, #0x32 - ldrsh r2, [r4, r7] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - mov r3, sb - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r4, #0 - bl sub_0805E7BC - ldrh r0, [r5, #0x36] - subs r0, #0xe - strh r0, [r5, #0x36] - adds r1, r5, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #0xe - strh r0, [r1] - ldrb r2, [r6] - adds r0, r5, #0 - movs r1, #6 - bl sub_0804A98C - adds r4, r0, #0 - cmp r4, #0 - bne _080247D0 - b _08024924 -_080247D0: - str r5, [r4, #0x50] - ldrh r0, [r4, #0x36] - adds r0, #0xe - strh r0, [r4, #0x36] - str r4, [r5, #0x54] - b _08024924 - .align 2, 0 -_080247DC: .4byte gUnk_03000BF0 -_080247E0: - adds r0, r5, #0 - bl sub_08024C94 - adds r2, r5, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x40 -_080247EE: - orrs r0, r1 - strb r0, [r2] - b _08024924 -_080247F4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08024804 - b _08024924 -_08024804: - adds r0, r5, #0 - adds r0, #0x80 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - strb r2, [r5, #0xf] - strh r2, [r5, #0x24] - adds r1, r5, #0 - adds r1, #0x82 - b _0802482E -_08024818: - ldrh r0, [r5, #0x36] - subs r0, #2 - strh r0, [r5, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x3c - rsbs r1, r1, #0 - cmp r0, r1 - bge _08024924 -_0802482A: - adds r1, r5, #0 - adds r1, #0x80 -_0802482E: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _08024924 -_08024836: - ldrh r2, [r5, #0x36] - movs r4, #0x36 - ldrsh r1, [r5, r4] - movs r0, #0x30 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0802484A - adds r0, r2, #1 - strh r0, [r5, #0x36] - b _08024924 -_0802484A: - adds r1, r5, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - beq _0802485E - movs r0, #0 - strb r0, [r1] - subs r1, #0xa - ldr r0, _08024884 @ =0x0000FFD0 - strh r0, [r1] -_0802485E: - adds r0, r5, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #1 - blt _080248A6 - cmp r0, #2 - ble _08024888 - cmp r0, #3 - bne _080248A6 - adds r0, r5, #0 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0x2f - bls _08024924 - adds r0, r5, #0 - bl sub_08024F50 - b _08024924 - .align 2, 0 -_08024884: .4byte 0x0000FFD0 -_08024888: - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xc0 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - movs r0, #0x80 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_080249DC - b _08024924 -_080248A6: - adds r0, r5, #0 - bl sub_08024C7C - b _08024924 -_080248AE: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080248F2 - adds r2, r5, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080248E8 - movs r0, #0xc0 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x80 - strb r3, [r0] - movs r1, #0x40 - movs r0, #0x40 - strh r0, [r5, #0x24] - strb r1, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - adds r0, r5, #0 - movs r1, #0 - b _08024902 -_080248E8: - movs r0, #0x40 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - b _08024924 -_080248F2: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - bne _08024924 - adds r0, r5, #0 - movs r1, #2 -_08024902: - movs r2, #8 - bl sub_08024A14 - b _08024924 -_0802490A: - ldr r0, _0802493C @ =gLinkEntity - movs r7, #0x36 - ldrsh r1, [r0, r7] - cmp r1, #0 - bne _08024924 - adds r0, r5, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0x80 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08024B38 -_08024924: - adds r0, r5, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #3 - bne _08024934 - adds r0, r5, #0 - bl sub_08024E4C -_08024934: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802493C: .4byte gLinkEntity - - thumb_func_start sub_08024940 -sub_08024940: @ 0x08024940 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0x70 - ands r5, r0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08024962 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_080249F4 -_08024962: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _0802497C - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x36] - cmp r5, #0 - beq _0802497C - adds r0, #2 - strh r0, [r4, #0x36] -_0802497C: - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0802498A - bl sub_08052660 - cmp r0, #0 - beq _080249CE -_0802498A: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _080249A2 - adds r0, r4, #0 - bl sub_08049EE4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080249F4 -_080249A2: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080249BC - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - adds r0, #0x18 - ands r0, r1 - strb r0, [r2] - b _080249CE -_080249BC: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2] -_080249CE: - adds r0, r4, #0 - bl sub_080AEFB4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_080249DC -sub_080249DC: @ 0x080249DC - push {lr} - ldrb r1, [r0, #0x15] - adds r1, #2 - movs r2, #0x1c - ands r1, r2 - lsrs r1, r1, #2 - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080249F4 -sub_080249F4: @ 0x080249F4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x15] - adds r1, r0, #2 - movs r0, #0x1f - ands r1, r0 - lsrs r1, r1, #2 - ldrb r0, [r2, #0x14] - cmp r1, r0 - beq _08024A12 - strb r1, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r0, r2, #0 - bl sub_08004260 -_08024A12: - pop {pc} - - thumb_func_start sub_08024A14 -sub_08024A14: @ 0x08024A14 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r7, r2, #0 - movs r6, #0 - cmp r5, #1 - beq _08024A40 - cmp r5, #1 - blo _08024A30 - cmp r5, #2 - beq _08024A5E - cmp r5, #3 - beq _08024A84 - b _08024A9E -_08024A30: - adds r0, r4, #0 - bl sub_08049EE4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _08024A9C -_08024A40: - adds r0, r4, #0 - movs r1, #0 - bl sub_08024C48 - cmp r0, #0 - beq _08024A9E - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _08024A9C -_08024A5E: - adds r0, r4, #0 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - beq _08024A9E - ldr r0, _08024A80 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _08024A9C - .align 2, 0 -_08024A80: .4byte gUnk_020000B0 -_08024A84: - adds r0, r4, #0 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - beq _08024A9E - ldr r0, _08024AD4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_08024A9C: - movs r6, #1 -_08024A9E: - cmp r5, #0 - beq _08024ABA - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08024ABA - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _08024ABA - movs r6, #0 -_08024ABA: - cmp r6, #0 - bne _08024AC8 - adds r0, r4, #0 - movs r1, #0 - adds r2, r7, #0 - bl sub_08024A14 -_08024AC8: - adds r0, r4, #0 - bl sub_080249DC - strb r7, [r4, #0xf] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08024AD4: .4byte gUnk_020000B0 - - thumb_func_start sub_08024AD8 -sub_08024AD8: @ 0x08024AD8 - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x83 - ldrb r2, [r3] - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - bne _08024B2A - movs r1, #0 - movs r0, #0x3f - ands r0, r2 - cmp r0, #3 - bne _08024B12 - ldr r0, _08024B0C @ =gUnk_03003F80 - ldrb r0, [r0, #0xf] - cmp r0, #0 - bne _08024B10 - ldr r0, [r4, #0x54] - str r1, [r0, #0x50] - str r1, [r4, #0x54] - movs r0, #0xc0 - strb r0, [r3] - movs r0, #0 - b _08024B34 - .align 2, 0 -_08024B0C: .4byte gUnk_03003F80 -_08024B10: - movs r1, #1 -_08024B12: - adds r0, r4, #0 - bl sub_08024C48 - cmp r0, #0 - bne _08024B32 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] - movs r0, #0 - b _08024B34 -_08024B2A: - adds r0, r4, #0 - bl sub_08024B38 - b _08024B34 -_08024B32: - movs r0, #1 -_08024B34: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08024B38 -sub_08024B38: @ 0x08024B38 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r7, #0 - ldr r0, _08024B5C @ =gUnk_03003F80 - ldrb r3, [r0, #0xf] - adds r2, r3, #0 - adds r1, r0, #0 - cmp r2, #0 - beq _08024BA0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #1 - bne _08024B62 - cmp r2, #3 - bls _08024B60 - subs r0, r3, #3 - strb r0, [r1, #0xf] - b _08024B62 - .align 2, 0 -_08024B5C: .4byte gUnk_03003F80 -_08024B60: - strb r7, [r1, #0xf] -_08024B62: - ldrb r0, [r1, #0xf] - cmp r0, #0 - beq _08024BA0 - adds r0, r5, #0 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - beq _08024C3C - ldr r4, _08024B9C @ =gUnk_020000B0 - ldr r1, [r4] - adds r0, r5, #0 - movs r2, #0xa0 - bl sub_08049F1C - cmp r0, #0 - beq _08024C3C - movs r7, #1 - ldr r0, [r4] - str r0, [r5, #0x54] - adds r2, r5, #0 - adds r2, #0x83 - ldrb r1, [r2] - movs r0, #3 - orrs r0, r1 - movs r1, #0xbf - ands r0, r1 - strb r0, [r2] - b _08024C3C - .align 2, 0 -_08024B9C: .4byte gUnk_020000B0 -_08024BA0: - movs r0, #8 - movs r1, #2 - movs r2, #2 - bl sub_0805EB00 - adds r4, r0, #0 - cmp r4, #0 - beq _08024BF0 - adds r6, r5, #0 - adds r6, #0x83 - b _08024BC4 -_08024BB6: - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EB64 - adds r4, r0, #0 - cmp r4, #0 - beq _08024BF0 -_08024BC4: - ldrb r0, [r4, #0xc] - cmp r0, #2 - beq _08024BB6 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08024BB6 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0xa0 - bl sub_08049F1C - cmp r0, #0 - beq _08024BB6 - movs r7, #1 - str r4, [r5, #0x54] - ldrb r0, [r6] - movs r1, #1 - orrs r1, r0 - movs r0, #0xbf - ands r1, r0 - strb r1, [r6] -_08024BF0: - cmp r7, #0 - bne _08024C42 - movs r0, #6 - movs r1, #5 - movs r2, #6 - bl sub_0805EB00 - adds r4, r0, #0 - cmp r4, #0 - beq _08024C3C - adds r6, r5, #0 - adds r6, #0x83 - b _08024C18 -_08024C0A: - adds r0, r4, #0 - movs r1, #6 - bl sub_0805EB64 - adds r4, r0, #0 - cmp r4, #0 - beq _08024C3C -_08024C18: - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _08024C0A - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0xa0 - bl sub_08049F1C - cmp r0, #0 - beq _08024C0A - movs r7, #1 - str r4, [r5, #0x54] - ldrb r0, [r6] - movs r1, #2 - orrs r1, r0 - movs r0, #0xbf - ands r1, r0 - strb r1, [r6] -_08024C3C: - cmp r7, #0 - bne _08024C42 - str r7, [r5, #0x54] -_08024C42: - adds r0, r7, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08024C48 -sub_08024C48: @ 0x08024C48 - push {r4, r5, lr} - adds r3, r0, #0 - movs r4, #1 - cmp r1, #0 - beq _08024C60 - movs r0, #3 - bl sub_08049DF4 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - b _08024C78 -_08024C60: - ldr r2, [r3, #0x54] - cmp r2, #0 - beq _08024C74 - ldr r0, [r2, #4] - cmp r0, #0 - beq _08024C74 - movs r5, #0x36 - ldrsh r0, [r2, r5] - cmp r0, #0 - bge _08024C78 -_08024C74: - str r1, [r3, #0x54] - movs r4, #0 -_08024C78: - adds r0, r4, #0 - pop {r4, r5, pc} - - thumb_func_start sub_08024C7C -sub_08024C7C: @ 0x08024C7C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r2, #0 - movs r1, #0x40 - strh r1, [r0, #0x24] - strb r2, [r0, #0xe] - movs r1, #0 - movs r2, #0x20 - bl sub_08024A14 - pop {pc} - - thumb_func_start sub_08024C94 -sub_08024C94: @ 0x08024C94 - push {lr} - movs r2, #0 - movs r1, #2 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x80 - strb r2, [r1] - movs r1, #0x40 - strb r1, [r0, #0xe] - strb r2, [r0, #0xf] - movs r1, #0xc0 - strh r1, [r0, #0x24] - adds r2, r0, #0 - adds r2, #0x83 - movs r1, #0x80 - strb r1, [r2] - ldrb r2, [r0, #0xf] - movs r1, #3 - bl sub_08024A14 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08024CC0 -sub_08024CC0: @ 0x08024CC0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - movs r1, #1 - bl sub_08024C48 - cmp r0, #0 - bne _08024CD4 - movs r5, #0 - b _08024CF8 -_08024CD4: - ldr r0, _08024CFC @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x50 - bl sub_08049F1C - cmp r0, #0 - beq _08024CF0 - adds r0, r4, #0 - movs r1, #3 - bl sub_08049FDC - cmp r0, #0 - bne _08024CF8 -_08024CF0: - movs r5, #0 - adds r0, r4, #0 - bl sub_08024C7C -_08024CF8: - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 -_08024CFC: .4byte gUnk_020000B0 - - thumb_func_start sub_08024D00 -sub_08024D00: @ 0x08024D00 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x86 - ldrb r0, [r1] - cmp r0, #0 - beq _08024D1A - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08004274 - b _08024D20 -_08024D1A: - adds r0, r4, #0 - bl sub_08024940 -_08024D20: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08024D46 - adds r0, r4, #0 - bl sub_08024B38 - cmp r0, #0 - beq _08024D46 - movs r0, #6 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #2 - strb r0, [r1] - b _08024DFC -_08024D46: - adds r0, r4, #0 - bl sub_08024CC0 - cmp r0, #0 - beq _08024DFC - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - beq _08024D60 - cmp r0, #1 - beq _08024DAE - b _08024DFC -_08024D60: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08024DFC - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0x20 - strb r0, [r4, #0xe] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #0 - beq _08024D90 - adds r1, r2, #4 - b _08024D94 -_08024D90: - adds r1, r2, #0 - adds r1, #0x1c -_08024D94: - movs r0, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r3] - movs r1, #0x40 - eors r0, r1 - strb r0, [r3] - adds r0, r4, #0 - movs r1, #3 - movs r2, #0x10 - bl sub_08024A14 - b _08024DFC -_08024DAE: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08024DCE - strb r0, [r1] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x20 - strb r0, [r4, #0xe] - b _08024DFC -_08024DCE: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r2 - cmp r0, #0 - bne _08024DFC - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _08024DEA - adds r1, #1 - b _08024DEC -_08024DEA: - adds r1, #0x1f -_08024DEC: - movs r0, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080249DC -_08024DFC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08024E00 -sub_08024E00: @ 0x08024E00 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08024E34 - ldr r1, _08024E18 @ =gUnk_080CBF10 - lsls r0, r0, #1 - orrs r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - pop {r4, r5, pc} - .align 2, 0 -_08024E18: .4byte gUnk_080CBF10 - - thumb_func_start sub_08024E1C -sub_08024E1C: @ 0x08024E1C - push {r4, lr} - adds r4, r0, #0 - bl sub_08024E34 - ldr r1, _08024E30 @ =gUnk_080CBF18 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #0x24] - pop {r4, pc} - .align 2, 0 -_08024E30: .4byte gUnk_080CBF18 - - thumb_func_start sub_08024E34 -sub_08024E34: @ 0x08024E34 - push {lr} - bl sub_08000E50 - movs r1, #0x3c - ands r1, r0 - lsrs r1, r1, #2 - ldr r0, _08024E48 @ =gUnk_080CBF20 - adds r1, r1, r0 - ldrb r0, [r1] - pop {pc} - .align 2, 0 -_08024E48: .4byte gUnk_080CBF20 - - thumb_func_start sub_08024E4C -sub_08024E4C: @ 0x08024E4C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #3 - bne _08024F46 - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r7, #0 - movs r1, #0xff - ands r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0xf] - bl sub_0807953C - cmp r0, #0 - beq _08024E84 - bl sub_08000E50 - adds r3, r4, #0 - adds r3, #0x84 - ldrb r2, [r3] - adds r2, #1 - movs r1, #1 - ands r1, r0 - adds r2, r2, r1 - strb r2, [r3] -_08024E84: - ldr r0, _08024EC8 @ =gUnk_02002A40 - adds r0, #0xaa - ldrb r0, [r0] - adds r2, r4, #0 - adds r2, #0x87 - cmp r0, #0 - beq _08024E9A - adds r5, r2, #0 - ldrb r0, [r5] - cmp r0, #4 - bne _08024ECC -_08024E9A: - adds r1, r4, #0 - adds r1, #0x84 - movs r0, #0x30 - strb r0, [r1] - strb r7, [r2] - adds r0, r4, #0 - bl sub_08024F50 - adds r0, r4, #0 - adds r0, #0x80 - strb r7, [r0] - movs r1, #0x40 - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - movs r2, #8 - bl sub_08024A14 - b _08024F46 - .align 2, 0 -_08024EC8: .4byte gUnk_02002A40 -_08024ECC: - ldr r6, _08024F48 @ =gLinkEntity - bl sub_08077B2C - ldr r2, _08024F4C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldrb r0, [r2, #0xa] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0xa] - movs r0, #0xe - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #0x14 - strb r0, [r1] - adds r1, #1 - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3a - strb r7, [r0] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - bl PositionRelative - adds r1, r6, #0 - adds r1, #0x63 - movs r0, #0x1a - strb r0, [r1] - movs r0, #4 - strb r0, [r6, #0x14] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3d - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08024F46 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - adds r1, r6, #0 - adds r1, #0x3d - movs r0, #8 - strb r0, [r1] - subs r0, #0xa - bl sub_080526A0 - adds r0, r6, #0 - movs r1, #0x7a - bl sub_0800449C -_08024F46: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08024F48: .4byte gLinkEntity -_08024F4C: .4byte gUnk_03003F80 - - thumb_func_start sub_08024F50 -sub_08024F50: @ 0x08024F50 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r2, _08024FDC @ =gUnk_03003F80 - movs r4, #0 - strb r4, [r2, #0xa] - ldr r0, [r2, #0x30] - ldr r1, _08024FE0 @ =0xFFFFFEFF - ands r0, r1 - str r0, [r2, #0x30] - ldr r5, _08024FE4 @ =gLinkEntity - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0806FA24 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xc4 - strb r0, [r1] - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r3, #0 - strh r4, [r5, #0x24] - adds r0, r6, #0 - adds r0, #0x85 - ldrb r0, [r0] - adds r4, r5, #0 - adds r4, #0x29 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #0 - ldrsb r0, [r1, r0] - strh r0, [r5, #0x36] - strb r3, [r1] - adds r2, r6, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r6, #0 - adds r1, #0x83 - movs r0, #0xc0 - strb r0, [r1] - subs r1, #3 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x84 - strb r3, [r0] - movs r0, #0x80 - strh r0, [r6, #0x24] - pop {r4, r5, r6, pc} - .align 2, 0 -_08024FDC: .4byte gUnk_03003F80 -_08024FE0: .4byte 0xFFFFFEFF -_08024FE4: .4byte gLinkEntity - - thumb_func_start sub_08024FE8 -sub_08024FE8: @ 0x08024FE8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08025004 @ =gUnk_080CBF9C - 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 -_08025004: .4byte gUnk_080CBF9C - - thumb_func_start sub_08025008 -sub_08025008: @ 0x08025008 - push {lr} - ldr r2, _0802501C @ =gUnk_080CBFB4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802501C: .4byte gUnk_080CBFB4 - - thumb_func_start sub_08025020 -sub_08025020: @ 0x08025020 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - blt _080250C2 - cmp r1, #3 - ble _0802510C - cmp r1, #0x1b - bne _080250C2 - adds r0, r4, #0 - bl sub_0804AA1C - ldr r1, _08025058 @ =gUnk_080CBFE8 - ldr r0, [r4, #0x4c] - ldrb r0, [r0, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r3, r4, #0 - adds r3, #0x82 - ldrb r0, [r3] - cmp r1, r0 - bhs _0802505C - subs r0, r0, r1 - strb r0, [r3] - b _08025078 - .align 2, 0 -_08025058: .4byte gUnk_080CBFE8 -_0802505C: - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #0 - movs r0, #0xa5 - lsls r0, r0, #2 - strh r0, [r1] - subs r1, #0x45 - movs r0, #0x83 - strb r0, [r1] - strb r2, [r3] - adds r0, r4, #0 - movs r1, #0x7c - bl sub_0801D2B4 -_08025078: - movs r2, #0 - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, [r4, #0x20] - cmp r0, #0 - ble _0802508A - str r2, [r4, #0x20] -_0802508A: - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x42 - strb r2, [r0] - adds r5, r4, #0 - adds r5, #0x80 - ldrb r0, [r5] - cmp r0, #0 - bne _0802510C - ldr r0, [r4, #0x4c] - ldrb r0, [r0, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #6 - strb r0, [r1] - movs r0, #1 - strb r0, [r5] - b _0802510C -_080250C2: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x82 - bne _0802510C - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _0802510C - movs r0, #0x21 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08025104 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - orrs r1, r0 - strb r1, [r3] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0806FA24 -_08025104: - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_08004488 -_0802510C: - ldr r1, _08025118 @ =gUnk_080CBF9C - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08025118: .4byte gUnk_080CBF9C - - thumb_func_start sub_0802511C -sub_0802511C: @ 0x0802511C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08025142 - ldrb r0, [r4, #0xe] - cmp r0, #1 - bne _08025142 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _08025142 - adds r0, r4, #0 - bl sub_08025B18 -_08025142: - adds r0, r4, #0 - bl sub_0804A7D4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802514C -sub_0802514C: @ 0x0802514C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08025178 - ldr r0, _08025174 @ =gUnk_080CBFEC - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0802517E - .align 2, 0 -_08025174: .4byte gUnk_080CBFEC -_08025178: - adds r0, r4, #0 - bl sub_08025C2C -_0802517E: - pop {r4, pc} - - thumb_func_start sub_08025180 -sub_08025180: @ 0x08025180 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - strb r0, [r4, #0xe] - ldr r0, [r4, #0x4c] - ldrb r0, [r0, #0x15] - movs r1, #0x10 - eors r0, r1 - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0804AA1C - pop {r4, pc} - - thumb_func_start sub_080251AC -sub_080251AC: @ 0x080251AC - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x82 - ldrb r0, [r3] - cmp r0, #3 - bls _080251D8 - subs r0, #3 - strb r0, [r3] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _080251F4 - adds r0, r4, #0 - bl sub_08025BD4 - b _080251F4 -_080251D8: - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #0 - movs r0, #0xa5 - lsls r0, r0, #2 - strh r0, [r1] - subs r1, #0x45 - movs r0, #0x83 - strb r0, [r1] - strb r2, [r3] - adds r0, r4, #0 - movs r1, #0x7c - bl sub_0801D2B4 -_080251F4: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080251FC -sub_080251FC: @ 0x080251FC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r1, r4, #0 - adds r1, #0x82 - movs r5, #0 - movs r0, #0xf0 - strb r0, [r1] - bl sub_08000E50 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - strb r5, [r0] - adds r0, r4, #0 - bl sub_080256B4 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08025230 -sub_08025230: @ 0x08025230 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _08025242 - subs r0, #1 - strb r0, [r1] -_08025242: - adds r0, r4, #0 - bl sub_08025C44 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08025270 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #4 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08025C60 - strb r0, [r4, #0x15] -_08025270: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802528C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _08025290 - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - b _08025290 -_0802528C: - movs r0, #0x1e - strb r0, [r4, #0xf] -_08025290: - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - cmp r0, #0 - bne _080252D8 - adds r0, r4, #0 - bl sub_0802571C - cmp r0, #0 - beq _080252DC - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080252D4 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x86 - strh r1, [r0] - b _080252DC - .align 2, 0 -_080252D4: .4byte gUnk_03000BF0 -_080252D8: - subs r0, #1 - strh r0, [r1] -_080252DC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080252E0 -sub_080252E0: @ 0x080252E0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r4, #0 - adds r2, #0x7c - ldrh r2, [r2] - adds r3, r4, #0 - adds r3, #0x7e - ldrh r3, [r3] - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08025C44 - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r3, _08025348 @ =gUnk_03000BF0 - 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 r0, r4, #0 - adds r0, #0x86 - ldrh r2, [r0] - cmp r5, r2 - bne _0802534C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08025352 - adds r0, r4, #0 - bl sub_080256B4 - b _08025352 - .align 2, 0 -_08025348: .4byte gUnk_03000BF0 -_0802534C: - strh r5, [r0] - movs r0, #0xf0 - strb r0, [r4, #0xe] -_08025352: - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - cmp r1, r0 - bne _08025388 - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x7e - ldrh r1, [r1] - cmp r0, r1 - bne _08025388 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08025388: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802538C -sub_0802538C: @ 0x0802538C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802539C - subs r0, #1 - strb r0, [r4, #0xe] - b _080253CC -_0802539C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - bne _080253AE - adds r0, r4, #0 - bl sub_08004274 - b _080253CC -_080253AE: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r1, [r4, #0x20] - ldr r0, _080253D0 @ =0x00001FFF - cmp r1, r0 - bgt _080253CC - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_080253CC: - pop {r4, pc} - .align 2, 0 -_080253D0: .4byte 0x00001FFF - - thumb_func_start sub_080253D4 -sub_080253D4: @ 0x080253D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0802541A - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080253FE - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _0802541A -_080253FE: - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08025A54 - adds r0, r4, #0 - bl sub_08025AE8 -_0802541A: - pop {r4, pc} - - thumb_func_start sub_0802541C -sub_0802541C: @ 0x0802541C - 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 _08025448 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xf] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08025448: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802544C -sub_0802544C: @ 0x0802544C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - bne _08025460 - adds r0, r4, #0 - bl sub_08004274 - b _0802547A -_08025460: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802547A - adds r0, r4, #0 - bl sub_080256B4 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0802547A: - pop {r4, pc} - - thumb_func_start sub_0802547C -sub_0802547C: @ 0x0802547C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_08004274 - ldrb r1, [r4, #0xe] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0802549E - adds r0, r4, #0 - bl sub_08025BD4 -_0802549E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080254B0 - adds r0, r4, #0 - bl sub_08025C2C -_080254B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080254B4 -sub_080254B4: @ 0x080254B4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802550C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08025512 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - cmp r0, #0 - bne _080254F6 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x82 - strb r0, [r1] - adds r1, #0x43 - movs r0, #0xf0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080256B4 - b _08025502 -_080254F6: - movs r0, #0xc - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08025502: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _08025512 -_0802550C: - adds r0, r4, #0 - bl sub_08004274 -_08025512: - pop {r4, pc} - - thumb_func_start sub_08025514 -sub_08025514: @ 0x08025514 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_0802594C - cmp r0, #0 - beq _08025542 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf0 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x78 - strb r0, [r1] - b _08025550 -_08025542: - ldrb r0, [r4, #0xe] - cmp r0, #3 - bls _08025550 - movs r0, #0xa - strb r0, [r4, #0xc] - movs r0, #0x20 - strb r0, [r4, #0xe] -_08025550: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08025554 -sub_08025554: @ 0x08025554 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - bne _0802556C - adds r0, r4, #0 - bl sub_080256B4 - b _080255A8 -_0802556C: - ldrb r1, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08025580 - adds r0, r2, #0 - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_08025580: - adds r0, r4, #0 - bl sub_08025C44 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08025598 - subs r0, #1 - strb r0, [r4, #0xe] - b _080255A8 -_08025598: - adds r0, r4, #0 - bl sub_080258C4 - cmp r0, #0 - bne _080255A8 - adds r0, r4, #0 - bl sub_080256B4 -_080255A8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080255AC -sub_080255AC: @ 0x080255AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r6, r0, #0 - cmp r6, #0 - bne _080255C4 - adds r0, r5, #0 - bl sub_080256B4 - b _08025638 -_080255C4: - adds r1, r5, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _080255D2 - subs r0, #1 - strb r0, [r1] -_080255D2: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802560C - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #4 - strb r0, [r5, #0xe] - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #0xf - ands r4, r0 - cmp r4, #7 - bgt _080255FA - subs r4, #1 -_080255FA: - subs r4, #7 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080045C4 - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] -_0802560C: - adds r1, r5, #0 - adds r1, #0x78 - ldrh r0, [r1] - cmp r0, #0 - bne _08025628 - adds r0, r5, #0 - bl sub_080258C4 - cmp r0, #0 - bne _0802562C - adds r0, r5, #0 - bl sub_080256B4 - b _0802562C -_08025628: - subs r0, #1 - strh r0, [r1] -_0802562C: - adds r0, r5, #0 - bl sub_08025C44 - adds r0, r5, #0 - bl sub_08004274 -_08025638: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802563C -sub_0802563C: @ 0x0802563C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x84 - ldrh r0, [r2] - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _08025678 - adds r0, r4, #0 - movs r1, #0x28 - bl sub_0801D2B4 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x82 - strb r0, [r1] - adds r1, #0x43 - movs r0, #0xf0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080256B4 - adds r0, r4, #0 - bl sub_0804AA1C - b _080256B0 -_08025678: - lsls r1, r1, #0x10 - lsrs r0, r1, #0x10 - cmp r0, #0x77 - bhi _080256B0 - ldr r0, _080256A4 @ =gUnk_080CBFF8 - lsrs r1, r1, #0x14 - adds r1, r1, r0 - ldrb r1, [r1] - ldrh r2, [r2] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080256B0 - adds r0, r1, #1 - ands r2, r0 - cmp r2, #0 - beq _080256A8 - adds r0, r4, #0 - movs r1, #0x7c - bl sub_0801D2B4 - b _080256B0 - .align 2, 0 -_080256A4: .4byte gUnk_080CBFF8 -_080256A8: - adds r0, r4, #0 - movs r1, #0x28 - bl sub_0801D2B4 -_080256B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080256B4 -sub_080256B4: @ 0x080256B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #4 - strb r0, [r5, #0xe] - movs r0, #0x1e - strb r0, [r5, #0xf] - bl sub_08000E50 - ldrb r4, [r5, #0x15] - adds r4, #7 - movs r1, #7 - bl __modsi3 - lsls r0, r0, #2 - adds r4, r4, r0 - movs r0, #0x1c - ands r4, r0 - strb r4, [r5, #0x15] - bl sub_08000E50 - ldr r2, _08025718 @ =gUnk_080CC000 - movs r1, #0xf - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r5, #0 - adds r0, #0x78 - movs r4, #0 - strh r1, [r0] - bl sub_08000E50 - movs r1, #0x18 - bl __modsi3 - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0x7a - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7b - strb r4, [r0] - pop {r4, r5, pc} - .align 2, 0 -_08025718: .4byte gUnk_080CC000 - - thumb_func_start sub_0802571C -sub_0802571C: @ 0x0802571C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r7, r0, #0 - ldr r0, _080257B0 @ =gUnk_03000BF0 - mov sb, r0 - ldrh r0, [r7, #0x2e] - mov r2, sb - ldrh r1, [r2, #6] - subs r0, r0, r1 - adds r0, #8 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - ldrh r0, [r7, #0x32] - mov r3, sb - ldrh r1, [r3, #8] - subs r0, r0, r1 - adds r0, #8 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov sl, r0 - adds r0, r7, #0 - adds r0, #0x7a - ldrb r4, [r0] - movs r3, #0 - ldr r0, _080257B4 @ =gUnk_080CC020 - mov r8, r0 -_08025764: - mov r1, r8 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r2, [sp] - adds r0, r2, r0 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - adds r0, r4, #1 - add r0, r8 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - add r0, sl - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - str r3, [sp, #4] - bl sub_080257EC - ldr r3, [sp, #4] - cmp r0, #0 - beq _080257B8 - mov r3, sb - ldrh r0, [r3, #6] - adds r0, r6, r0 - adds r1, r7, #0 - adds r1, #0x7c - strh r0, [r1] - ldrh r0, [r3, #8] - adds r0, r5, r0 - adds r1, #2 - strh r0, [r1] - movs r0, #1 - b _080257E0 - .align 2, 0 -_080257B0: .4byte gUnk_03000BF0 -_080257B4: .4byte gUnk_080CC020 -_080257B8: - adds r0, r4, #2 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - cmp r4, #0x2f - bls _080257C4 - movs r4, #0 -_080257C4: - adds r0, r3, #1 - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #3 - bls _08025764 - adds r0, r7, #0 - adds r0, #0x7a - strb r4, [r0] - adds r1, r7, #0 - adds r1, #0x7b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0 -_080257E0: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080257EC -sub_080257EC: @ 0x080257EC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_080002A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080258B0 @ =0x00000312 - cmp r2, r0 - beq _08025822 - ldr r0, _080258B4 @ =gUnk_080B37A0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0x16 - beq _08025822 - ldr r0, _080258B8 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080258AA -_08025822: - adds r5, r7, #0 - subs r5, #0x10 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080002A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080258B0 @ =0x00000312 - mov r8, r4 - cmp r2, r0 - beq _08025852 - ldr r0, _080258B4 @ =gUnk_080B37A0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0x16 - beq _08025852 - ldr r0, _080258B8 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080258AA -_08025852: - adds r4, r6, #0 - subs r4, #0x10 - mov r0, r8 - ldrb r2, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_080002A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080258B0 @ =0x00000312 - adds r1, r4, #0 - cmp r2, r0 - beq _08025882 - ldr r0, _080258B4 @ =gUnk_080B37A0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0x16 - beq _08025882 - ldr r0, _080258B8 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - beq _080258AA -_08025882: - mov r0, r8 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_080002A8 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - ldr r0, _080258B0 @ =0x00000312 - cmp r2, r0 - beq _080258BC - ldr r0, _080258B4 @ =gUnk_080B37A0 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0x16 - beq _080258BC - ldr r0, _080258B8 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _080258BC -_080258AA: - movs r0, #1 - b _080258BE - .align 2, 0 -_080258B0: .4byte 0x00000312 -_080258B4: .4byte gUnk_080B37A0 -_080258B8: .4byte gUnk_080B3E80 -_080258BC: - movs r0, #0 -_080258BE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080258C4 -sub_080258C4: @ 0x080258C4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08025922 - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r3, r1, r0 - adds r0, r3, #0 - muls r0, r3, r0 - adds r3, r0, #0 - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r0, #0 - muls r1, r0, r1 - adds r0, r1, #0 - adds r3, r3, r0 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - cmp r0, #0 - bne _0802591A - adds r0, r4, #0 - adds r0, #0x81 - ldrb r1, [r0] - cmp r1, #0 - bne _0802591A - movs r0, #0x80 - lsls r0, r0, #3 - cmp r3, r0 - bgt _0802591A - movs r0, #9 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - b _08025942 -_0802591A: - movs r0, #0x90 - lsls r0, r0, #4 - cmp r3, r0 - ble _08025926 -_08025922: - movs r0, #0 - b _08025944 -_08025926: - movs r0, #0xb - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - bl sub_08000E50 - ldr r2, _08025948 @ =gUnk_080CC050 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] -_08025942: - movs r0, #1 -_08025944: - pop {r4, pc} - .align 2, 0 -_08025948: .4byte gUnk_080CC050 - - thumb_func_start sub_0802594C -sub_0802594C: @ 0x0802594C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - mov sl, r0 - ldr r0, _08025A20 @ =gUnk_080CC090 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r7, [r1] - mov r0, sl - adds r0, #0x38 - ldrb r0, [r0] - mov sb, r0 - ldr r3, _08025A24 @ =gUnk_03000BF0 - mov r1, sl - ldrh r0, [r1, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - adds r0, #8 - movs r1, #0x10 - rsbs r1, r1, #0 - adds r2, r1, #0 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp] - mov r1, sl - ldrh r0, [r1, #0x32] - ldrh r1, [r3, #8] - subs r0, r0, r1 - adds r0, #8 - ands r0, r2 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [sp, #4] -_08025996: - movs r0, #0 - ldrsb r0, [r7, r0] - ldr r1, [sp] - lsls r4, r1, #0x10 - asrs r4, r4, #0x10 - adds r4, r4, r0 - lsls r4, r4, #0x10 - movs r0, #1 - ldrsb r0, [r7, r0] - ldr r1, [sp, #4] - lsls r5, r1, #0x10 - asrs r5, r5, #0x10 - adds r5, r5, r0 - lsls r5, r5, #0x10 - lsrs r0, r4, #0x10 - str r0, [sp, #8] - asrs r4, r4, #0x10 - lsrs r1, r5, #0x10 - str r1, [sp, #0xc] - asrs r5, r5, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sb - bl sub_080002D4 - adds r6, r0, #0 - lsls r6, r6, #0x18 - lsrs r6, r6, #0x18 - movs r0, #0x10 - rsbs r0, r0, #0 - adds r0, r0, r4 - mov r8, r0 - adds r1, r5, #0 - mov r2, sb - bl sub_080002D4 - adds r3, r0, #0 - lsls r3, r3, #0x18 - lsrs r3, r3, #0x18 - subs r5, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - mov r2, sb - str r3, [sp, #0x10] - bl sub_080002D4 - adds r4, r0, #0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - mov r0, r8 - adds r1, r5, #0 - mov r2, sb - bl sub_080002D4 - ldr r3, [sp, #0x10] - orrs r6, r3 - orrs r4, r6 - orrs r4, r0 - lsls r4, r4, #0x18 - cmp r4, #0 - beq _08025A28 - adds r7, #2 - movs r0, #0 - ldrsb r0, [r7, r0] - cmp r0, #0x7f - bne _08025996 - movs r0, #0 - b _08025A44 - .align 2, 0 -_08025A20: .4byte gUnk_080CC090 -_08025A24: .4byte gUnk_03000BF0 -_08025A28: - ldr r2, _08025A50 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldr r1, [sp, #8] - adds r0, r0, r1 - mov r1, sl - adds r1, #0x7c - strh r0, [r1] - ldrh r0, [r2, #8] - ldr r1, [sp, #0xc] - adds r0, r0, r1 - mov r1, sl - adds r1, #0x7e - strh r0, [r1] - movs r0, #1 -_08025A44: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08025A50: .4byte gUnk_03000BF0 - - thumb_func_start sub_08025A54 -sub_08025A54: @ 0x08025A54 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r1, r0, #0 - adds r1, #0x38 - ldrb r1, [r1] - mov sb, r1 - ldr r3, _08025AB0 @ =gUnk_03000BF0 - ldrh r2, [r0, #0x2e] - ldrh r1, [r3, #6] - subs r2, r2, r1 - ldrh r1, [r0, #0x32] - ldrh r0, [r3, #8] - subs r1, r1, r0 - ldr r4, _08025AB4 @ =gUnk_080CC0A0 - movs r5, #0 - lsls r2, r2, #0x10 - asrs r2, r2, #0x10 - mov r8, r2 - movs r6, #0x3f - lsls r1, r1, #0x10 - asrs r7, r1, #0x10 -_08025A82: - movs r0, #0 - ldrsb r0, [r4, r0] - add r0, r8 - asrs r0, r0, #4 - ands r0, r6 - movs r1, #1 - ldrsb r1, [r4, r1] - adds r1, r7, r1 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - mov r1, sb - bl sub_08025AB8 - adds r5, #1 - adds r4, #2 - cmp r5, #3 - bls _08025A82 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08025AB0: .4byte gUnk_03000BF0 -_08025AB4: .4byte gUnk_080CC0A0 - - thumb_func_start sub_08025AB8 -sub_08025AB8: @ 0x08025AB8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_080002E0 - cmp r0, #0 - bne _08025AD6 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl sub_080002C8 - cmp r0, #0xa - beq _08025ADA -_08025AD6: - movs r0, #0 - b _08025AE6 -_08025ADA: - movs r0, #0x61 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0807B7D8 - movs r0, #1 -_08025AE6: - pop {r4, r5, pc} - - thumb_func_start sub_08025AE8 -sub_08025AE8: @ 0x08025AE8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x22 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08025B00 - ldr r0, [r1, #0x30] - subs r0, #1 - str r0, [r1, #0x30] -_08025B00: - adds r0, r4, #0 - movs r1, #0x23 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08025B16 - ldr r0, [r1, #0x30] - adds r0, #1 - str r0, [r1, #0x30] -_08025B16: - pop {r4, pc} - - thumb_func_start sub_08025B18 -sub_08025B18: @ 0x08025B18 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _08025BC8 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - str r1, [sp] - movs r0, #0x32 - ldrsh r1, [r6, r0] - ldrh r0, [r2, #8] - subs r1, r1, r0 - str r1, [sp, #4] - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - mov sl, r0 - ldr r5, _08025BCC @ =gUnk_080CC0A8 - movs r7, #0 - movs r1, #0x3f - mov r8, r1 - movs r2, #0x10 - rsbs r2, r2, #0 - mov sb, r2 -_08025B52: - movs r0, #0 - ldrsb r0, [r5, r0] - ldr r1, [sp] - adds r0, r1, r0 - asrs r0, r0, #4 - mov r2, r8 - ands r0, r2 - movs r1, #1 - ldrsb r1, [r5, r1] - ldr r2, [sp, #4] - adds r1, r2, r1 - asrs r1, r1, #4 - mov r2, r8 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - mov r1, sl - bl sub_08025AB8 - movs r0, #0x21 - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08025BB4 - movs r2, #0 - ldrsb r2, [r5, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r5, r3] - lsls r3, r3, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - bl PositionRelative - ldrh r1, [r4, #0x2e] - mov r0, sb - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x2e] - ldrh r1, [r4, #0x32] - mov r0, sb - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x32] - ldr r0, _08025BD0 @ =0x0000FFFF - strh r0, [r4, #0x36] -_08025BB4: - adds r7, #1 - adds r5, #2 - cmp r7, #8 - bls _08025B52 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08025BC8: .4byte gUnk_03000BF0 -_08025BCC: .4byte gUnk_080CC0A8 -_08025BD0: .4byte 0x0000FFFF - - thumb_func_start sub_08025BD4 -sub_08025BD4: @ 0x08025BD4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _08025C22 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08025C22 - movs r0, #0x21 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08025C22 - ldr r3, _08025C24 @ =gUnk_080CC0BA - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - adds r1, r0, r3 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - adds r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - ldr r0, _08025C28 @ =0x0000FFF6 - strh r0, [r4, #0x36] -_08025C22: - pop {r4, r5, pc} - .align 2, 0 -_08025C24: .4byte gUnk_080CC0BA -_08025C28: .4byte 0x0000FFF6 - - thumb_func_start sub_08025C2C -sub_08025C2C: @ 0x08025C2C - push {lr} - movs r2, #0 - movs r1, #8 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x80 - strb r2, [r1] - movs r1, #8 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08025C44 -sub_08025C44: @ 0x08025C44 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08025C58 - movs r0, #0 - b _08025C5E -_08025C58: - adds r0, r2, #0 - bl sub_080AEF88 -_08025C5E: - pop {pc} - - thumb_func_start sub_08025C60 -sub_08025C60: @ 0x08025C60 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08025C80 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08025C80 - adds r0, r4, #0 - bl sub_08049EE4 - b _08025C98 -_08025C80: - bl sub_08000E50 - ldr r2, _08025C9C @ =gUnk_080CC0C2 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrb r4, [r4, #0x15] - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 -_08025C98: - pop {r4, pc} - .align 2, 0 -_08025C9C: .4byte gUnk_080CC0C2 - - thumb_func_start sub_08025CA0 -sub_08025CA0: @ 0x08025CA0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08025CB8 @ =gUnk_080CC19C - 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 -_08025CB8: .4byte gUnk_080CC19C - - thumb_func_start sub_08025CBC -sub_08025CBC: @ 0x08025CBC - push {r4, lr} - adds r4, r0, #0 - bl sub_08001324 - - thumb_func_start sub_08025CC4 -sub_08025CC4: @ 0x08025CC4 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08025CD0 - adds r0, r4, #0 - bl sub_08027870 -_08025CD0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08025CD4 -sub_08025CD4: @ 0x08025CD4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r3, [r4, #0xa] - cmp r3, #0 - bne _08025DA4 - ldrb r0, [r4, #0xd] - cmp r0, #0xc - beq _08025CFE - movs r0, #0xc - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r3, [r0, #3] - ldr r0, [r4, #0x54] - movs r1, #9 - bl sub_080042AC - b _08025D9C -_08025CFE: - adds r5, r4, #0 - adds r5, #0x84 - ldr r0, [r5] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _08025D10 - cmp r0, #1 - beq _08025D28 - b _08025D9C -_08025D10: - adds r0, r4, #0 - movs r1, #0x3f - bl sub_08027C7C - ldr r0, [r5] - movs r1, #1 - strb r1, [r0, #3] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x78 - strb r0, [r1] - b _08025D9C -_08025D28: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08025D84 - ldr r1, [r4, #0x54] - adds r1, #0x6d - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r4, #0x68] - adds r1, #0x6d - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, [r4, #0x50] - adds r1, #0x6d - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r2, [r4, #0x54] - ldr r1, [r4, #0x50] - ldr r0, [r4, #0x68] - adds r0, #0x45 - strb r3, [r0] - adds r1, #0x45 - strb r3, [r1] - adds r2, #0x45 - strb r3, [r2] - ldr r0, _08025D80 @ =gUnk_02034490 - strb r3, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0804A7D4 - b _08025D9C - .align 2, 0 -_08025D80: .4byte gUnk_02034490 -_08025D84: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x3f - cmp r0, #0x50 - bhi _08025D96 - movs r1, #0xf - cmp r0, #0x1e - bls _08025D96 - movs r1, #0x1f -_08025D96: - adds r0, r4, #0 - bl sub_08027C7C -_08025D9C: - adds r0, r4, #0 - bl sub_08027870 - b _08025DBC -_08025DA4: - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08025DBC - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_08025DBC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08025DC0 -sub_08025DC0: @ 0x08025DC0 - push {lr} - ldr r2, _08025DD4 @ =gUnk_080CC1B0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08025DD4: .4byte gUnk_080CC1B0 - - thumb_func_start sub_08025DD8 -sub_08025DD8: @ 0x08025DD8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0xa] - cmp r1, #8 - bne _08025DF2 - movs r0, #4 - strb r0, [r5, #0xa] - ldr r0, [r5, #0x54] - ldr r0, [r0, #0x48] - str r0, [r5, #0x48] - b _0802605E -_08025DF2: - ldr r6, _08025E48 @ =gUnk_080CC1B8 - movs r4, #3 - movs r3, #3 - adds r0, r3, #0 - ands r0, r1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldrb r0, [r0, #1] - movs r1, #0x29 - adds r1, r1, r5 - mov ip, r1 - movs r1, #7 - ands r1, r0 - mov r0, ip - ldrb r2, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x76 - movs r0, #0xa0 - strh r0, [r1] - adds r1, #4 - strh r0, [r1] - adds r1, #4 - movs r0, #0 - strh r0, [r1] - ldrb r0, [r5, #0x19] - orrs r0, r4 - strb r0, [r5, #0x19] - ldrb r0, [r5, #0xa] - ands r3, r0 - cmp r3, #1 - bne _08025E4C - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - b _08025E58 - .align 2, 0 -_08025E48: .4byte gUnk_080CC1B8 -_08025E4C: - lsls r0, r3, #2 - adds r0, r0, r6 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 -_08025E58: - ldrb r0, [r5, #0xa] - movs r6, #3 - ands r6, r0 - cmp r6, #0 - beq _08025E86 - cmp r6, #0 - bge _08025E68 - b _08026050 -_08025E68: - cmp r6, #3 - ble _08025E6E - b _08026050 -_08025E6E: - ldr r4, [r5, #0x48] - adds r0, r5, #0 - bl sub_0806FBD8 - adds r1, r0, #0 - cmp r1, #0 - beq _08025E7E - b _08026020 -_08025E7E: - ldr r0, [r5, #0x68] - adds r0, #0x45 - strb r1, [r0] - b _0802605E -_08025E86: - strb r0, [r5, #0xb] - movs r0, #0x10 - bl sub_0801D8E0 - adds r4, r5, #0 - adds r4, #0x84 - str r0, [r4] - cmp r0, #0 - beq _08025EA2 - adds r0, r5, #0 - bl sub_0806FBD8 - cmp r0, #0 - bne _08025EAA -_08025EA2: - adds r0, r5, #0 - bl sub_0804A7D4 - b _0802605E -_08025EAA: - ldr r0, [r4] - str r0, [r5, #0x64] - ldr r2, [r5, #0x48] - ldr r1, _0802601C @ =gUnk_080FD238 - ldrb r0, [r1] - strb r0, [r2] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #1] - strb r0, [r2, #1] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #2] - strb r0, [r2, #2] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #3] - strb r0, [r2, #3] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #4] - strb r0, [r2, #4] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #5] - strb r0, [r2, #5] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #6] - strb r0, [r2, #6] - ldr r2, [r5, #0x48] - ldrb r0, [r1, #7] - strb r0, [r2, #7] - strb r6, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x6d - ldrb r0, [r1] - movs r7, #1 - orrs r0, r7 - strb r0, [r1] - ldr r0, [r4] - strb r6, [r0, #6] - ldr r0, [r4] - strb r6, [r0, #5] - ldr r1, [r4] - movs r0, #0xf - strb r0, [r1, #1] - ldr r0, [r4] - strb r6, [r0, #3] - ldr r0, [r4] - strb r6, [r0, #4] - ldr r1, [r4] - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0xe] - ldrb r0, [r5, #0xa] - movs r1, #3 - orrs r1, r0 - movs r0, #0x13 - bl CreateEnemy - adds r2, r0, #0 - str r2, [r5, #0x68] - cmp r2, #0 - beq _08025F46 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, [r5, #0x68] - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r5, #0x68] - ldrh r0, [r5, #0x32] - subs r0, #0xe - strh r0, [r1, #0x32] - ldr r1, [r5, #0x68] - movs r0, #0xe - strb r0, [r1, #0xe] - ldr r0, [r5, #0x68] - str r5, [r0, #0x50] - ldr r0, [r5, #0x68] - str r5, [r0, #0x68] -_08025F46: - ldrb r0, [r5, #0xa] - movs r1, #2 - orrs r1, r0 - movs r0, #0x13 - bl CreateEnemy - adds r2, r0, #0 - str r2, [r5, #0x50] - cmp r2, #0 - beq _08025F8C - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, [r5, #0x50] - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r5, #0x50] - ldr r0, [r5, #0x68] - ldrh r0, [r0, #0x32] - subs r0, #0x12 - strh r0, [r1, #0x32] - ldr r1, [r5, #0x50] - movs r0, #0x12 - strb r0, [r1, #0xe] - ldr r1, [r5, #0x50] - ldr r0, [r5, #0x68] - str r0, [r1, #0x50] - ldr r1, [r5, #0x68] - ldr r0, [r5, #0x50] - str r0, [r1, #0x54] - ldr r0, [r5, #0x50] - str r5, [r0, #0x68] -_08025F8C: - ldrb r0, [r5, #0xa] - adds r1, r7, #0 - orrs r1, r0 - movs r0, #0x13 - bl CreateEnemy - adds r2, r0, #0 - str r2, [r5, #0x54] - cmp r2, #0 - beq _08025FD6 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, [r5, #0x54] - ldrh r0, [r5, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r5, #0x54] - ldr r0, [r5, #0x50] - ldrh r0, [r0, #0x32] - subs r0, #0xe - strh r0, [r1, #0x32] - ldr r1, [r5, #0x54] - movs r0, #0xe - strb r0, [r1, #0xe] - ldr r1, [r5, #0x54] - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - ldr r0, [r5, #0x54] - str r5, [r0, #0x54] - ldr r1, [r5, #0x50] - ldr r0, [r5, #0x54] - str r0, [r1, #0x54] - ldr r0, [r5, #0x54] - str r5, [r0, #0x68] -_08025FD6: - movs r0, #0x13 - movs r1, #8 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _08025FE6 - str r5, [r1, #0x54] -_08025FE6: - adds r0, r5, #0 - movs r1, #0x49 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _08025FFC - ldr r0, [r5, #0x54] - str r0, [r1, #0x54] -_08025FFC: - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _08026050 - adds r0, r5, #0 - movs r1, #0x49 - movs r2, #3 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _08026050 - ldr r0, [r5, #0x54] - str r0, [r1, #0x54] - b _08026050 - .align 2, 0 -_0802601C: .4byte gUnk_080FD238 -_08026020: - ldr r1, [r5, #0x48] - ldrb r0, [r4] - strb r0, [r1] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #1] - strb r0, [r1, #1] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #2] - strb r0, [r1, #2] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #3] - strb r0, [r1, #3] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #4] - strb r0, [r1, #4] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #5] - strb r0, [r1, #5] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #6] - strb r0, [r1, #6] - ldr r1, [r5, #0x48] - ldrb r0, [r4, #7] - strb r0, [r1, #7] -_08026050: - ldrb r1, [r5, #0xa] - movs r0, #3 - ands r0, r1 - strb r0, [r5, #0xa] - adds r0, r5, #0 - bl sub_08026060 -_0802605E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08026060 -sub_08026060: @ 0x08026060 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802608C @ =gUnk_080CC1C8 - ldrb r0, [r4, #0xa] - 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, #0x76 - ldrh r1, [r0] - adds r0, #4 - ldrh r2, [r0] - adds r0, #4 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_0802608C: .4byte gUnk_080CC1C8 - - thumb_func_start sub_08026090 -sub_08026090: @ 0x08026090 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080260EA - ldr r0, [r4, #0x54] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080260B8 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xfa - strb r0, [r4, #0xe] - ldr r0, _080260D4 @ =gUnk_03000BF0 - str r4, [r0, #0x30] -_080260B8: - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x10] - strb r1, [r4, #0x10] - ldr r1, [r0, #0x48] - str r1, [r4, #0x48] - adds r0, #0x3f - ldrb r1, [r0] - cmp r1, #0x7e - bne _080260D8 - adds r0, r4, #0 - adds r0, #0x3f - strb r1, [r0] - b _080260E0 - .align 2, 0 -_080260D4: .4byte gUnk_03000BF0 -_080260D8: - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x7c - strb r0, [r1] -_080260E0: - ldr r0, [r4, #0x54] - adds r1, r4, #0 - bl sub_0806FA24 - b _08026106 -_080260EA: - bl sub_08078B48 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08026106 - ldr r1, _08026108 @ =gUnk_03000BF0 - ldr r0, _0802610C @ =gLinkEntity - str r0, [r1, #0x30] - bl sub_0805E780 -_08026106: - pop {r4, pc} - .align 2, 0 -_08026108: .4byte gUnk_03000BF0 -_0802610C: .4byte gLinkEntity - - thumb_func_start sub_08026110 -sub_08026110: @ 0x08026110 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r1, _08026144 @ =gUnk_080CC1DC - ldrb r0, [r6, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl _call_via_r1 - adds r0, r6, #0 - adds r0, #0x84 - ldr r2, [r0] - ldr r0, [r2, #8] - cmp r0, #0 - bne _08026160 - ldrb r1, [r2, #5] - cmp r1, #0 - beq _08026160 - ldrb r0, [r6, #0xd] - cmp r0, #8 - bne _08026148 - adds r0, r1, #0 - subs r0, #0x40 - b _0802614C - .align 2, 0 -_08026144: .4byte gUnk_080CC1DC -_08026148: - adds r0, r1, #0 - subs r0, #0x20 -_0802614C: - strb r0, [r2, #5] - adds r0, r6, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #5 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _08026160 - movs r0, #0 - strb r0, [r1, #5] -_08026160: - adds r2, r6, #0 - adds r2, #0x80 - ldrb r0, [r2] - movs r1, #0x76 - adds r1, r1, r6 - mov ip, r1 - adds r7, r6, #0 - adds r7, #0x7a - cmp r0, #0 - beq _08026230 - ldrb r0, [r6, #0xe] - cmp r0, #0 - bne _080261D2 - ldrb r1, [r2] - lsls r1, r1, #0xc - ldr r0, [r6, #0x74] - subs r0, r0, r1 - str r0, [r6, #0x74] - ldrb r1, [r2] - lsls r1, r1, #0xc - ldr r0, [r6, #0x78] - subs r0, r0, r1 - str r0, [r6, #0x78] - mov r0, ip - ldrh r2, [r0] - adds r4, r6, #0 - adds r4, #0x82 - ldrb r1, [r4] - adds r3, r6, #0 - adds r3, #0x84 - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - bgt _080261AA - mov r0, ip - strh r1, [r0] -_080261AA: - ldrh r2, [r7] - ldrb r1, [r4] - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - bgt _080261BA - strh r1, [r7] -_080261BA: - mov r1, ip - ldrh r2, [r1] - ldrb r1, [r4] - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - bgt _08026230 - ldrh r0, [r7] - cmp r0, r1 - bgt _08026230 - b _08026228 -_080261D2: - ldrb r1, [r2] - lsls r1, r1, #0xc - ldr r0, [r6, #0x74] - adds r0, r0, r1 - str r0, [r6, #0x74] - ldrb r1, [r2] - lsls r1, r1, #0xc - ldr r0, [r6, #0x78] - adds r0, r0, r1 - str r0, [r6, #0x78] - mov r0, ip - ldrh r2, [r0] - adds r4, r6, #0 - adds r4, #0x81 - ldrb r1, [r4] - adds r3, r6, #0 - adds r3, #0x84 - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - blt _08026202 - mov r0, ip - strh r1, [r0] -_08026202: - ldrh r2, [r7] - ldrb r1, [r4] - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - blt _08026212 - strh r1, [r7] -_08026212: - mov r1, ip - ldrh r2, [r1] - ldrb r1, [r4] - ldr r0, [r3] - ldrb r0, [r0, #5] - adds r1, r1, r0 - cmp r2, r1 - blt _08026230 - ldrh r0, [r7] - cmp r0, r1 - blt _08026230 -_08026228: - ldrb r0, [r6, #0xe] - movs r1, #1 - eors r0, r1 - strb r0, [r6, #0xe] -_08026230: - ldr r5, [r6, #0x48] - mov r0, ip - ldrh r1, [r0] - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #3 - subs r1, r1, r0 - lsrs r1, r1, #7 - strb r1, [r5, #6] - ldr r5, [r6, #0x48] - ldrh r1, [r7] - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #1 - adds r1, r1, r0 - lsrs r1, r1, #7 - strb r1, [r5, #7] - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _08026268 - adds r0, r6, #0 - bl sub_0800445C -_08026268: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802626C -sub_0802626C: @ 0x0802626C - push {lr} - ldr r2, _0802629C @ =gUnk_02034490 - movs r1, #1 - strb r1, [r2] - ldr r2, _080262A0 @ =gUnk_080CC20C - adds r1, r0, #0 - adds r1, #0x84 - ldr r1, [r1] - ldrb r1, [r1, #3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, _080262A4 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x17 - beq _08026298 - cmp r0, #0xf - beq _08026298 - bl sub_08078B48 -_08026298: - pop {pc} - .align 2, 0 -_0802629C: .4byte gUnk_02034490 -_080262A0: .4byte gUnk_080CC20C -_080262A4: .4byte gLinkEntity - - thumb_func_start sub_080262A8 -sub_080262A8: @ 0x080262A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x82 - movs r6, #0 - movs r0, #0x90 - strb r0, [r1] - subs r1, #1 - movs r0, #0xb0 - strb r0, [r1] - subs r1, #1 - movs r0, #8 - strb r0, [r1] - movs r5, #1 - strb r5, [r4, #0xe] - adds r0, r4, #0 - movs r1, #6 - movs r2, #1 - bl sub_080276F4 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080262EC - ldr r1, _080262E8 @ =gUnk_03003F80 - movs r0, #0x82 - lsls r0, r0, #1 - strh r0, [r1, #8] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r5, [r0, #3] - b _0802631A - .align 2, 0 -_080262E8: .4byte gUnk_03003F80 -_080262EC: - adds r0, r4, #0 - adds r0, #0x7c - strb r6, [r0] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x1e - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #3 - strb r0, [r1, #3] - ldr r0, _0802631C @ =gLinkEntity - strb r6, [r0, #0x14] - ldr r0, _08026320 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - strb r5, [r0, #0xe] - ldr r0, _08026324 @ =0x00004022 - movs r1, #0xb2 - lsls r1, r1, #2 - movs r2, #1 - bl sub_0800015E -_0802631A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0802631C: .4byte gLinkEntity -_08026320: .4byte gUnk_03000BF0 -_08026324: .4byte 0x00004022 - - thumb_func_start sub_08026328 -sub_08026328: @ 0x08026328 - push {lr} - adds r2, r0, #0 - ldr r0, _08026354 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x17 - beq _08026352 - adds r1, r2, #0 - adds r1, #0x7d - movs r0, #0x78 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - movs r0, #0xa - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 -_08026352: - pop {pc} - .align 2, 0 -_08026354: .4byte gLinkEntity - - thumb_func_start sub_08026358 -sub_08026358: @ 0x08026358 - push {r4, lr} - adds r3, r0, #0 - ldr r4, _08026398 @ =gLinkEntity - ldrb r0, [r4, #0xc] - cmp r0, #0xf - beq _080263B0 - adds r1, r3, #0 - adds r1, #0x7d - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _080263A0 - adds r0, r3, #0 - adds r0, #0x7c - strb r2, [r0] - movs r0, #0x1e - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - strb r2, [r4, #0x14] - ldr r1, _0802639C @ =gUnk_03000BF0 - str r3, [r1, #0x30] - movs r0, #1 - strb r0, [r1, #0xe] - b _080263B0 - .align 2, 0 -_08026398: .4byte gLinkEntity -_0802639C: .4byte gUnk_03000BF0 -_080263A0: - cmp r2, #0x60 - bhi _080263B0 - cmp r2, #0x5b - bhi _080263AC - movs r0, #4 - b _080263AE -_080263AC: - movs r0, #2 -_080263AE: - strb r0, [r4, #0x14] -_080263B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080263B4 -sub_080263B4: @ 0x080263B4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x7d - adds r0, r0, r4 - mov ip, r0 - ldrb r0, [r0] - subs r0, #1 - mov r1, ip - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0xff - bne _08026410 - ldr r2, _08026400 @ =gUnk_080CC234 - adds r3, r4, #0 - adds r3, #0x7c - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r0, r0, r2 - ldrb r1, [r0] - mov r0, ip - strb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0xff - bne _08026404 - movs r0, #0x78 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - b _08026410 - .align 2, 0 -_08026400: .4byte gUnk_080CC234 -_08026404: - ldrb r2, [r4, #0xb] - adds r0, r4, #0 - movs r1, #0x49 - movs r3, #0 - bl sub_080A2988 -_08026410: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08026414 -sub_08026414: @ 0x08026414 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r1, r7, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08026474 - ldr r0, _08026478 @ =0x0000FF40 - strh r0, [r7, #0x36] - ldr r6, [r7, #0x54] - ldr r5, [r7, #0x50] - ldr r4, [r7, #0x68] - ldrb r2, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r3, #1 - orrs r0, r3 - strb r0, [r4, #0x18] - ldrb r2, [r5, #0x18] - adds r0, r1, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r2, [r6, #0x18] - adds r0, r1, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r6, #0x18] - ldrb r0, [r7, #0x18] - ands r1, r0 - orrs r1, r3 - strb r1, [r7, #0x18] - adds r0, r7, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - movs r0, #0xd1 - lsls r0, r0, #1 - bl sub_080A3268 -_08026474: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08026478: .4byte 0x0000FF40 - - thumb_func_start sub_0802647C -sub_0802647C: @ 0x0802647C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #7 - bl sub_08003FC4 - cmp r0, #0 - bne _080264A6 - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - ldr r0, _080264A8 @ =0x000001A1 - bl sub_080A3268 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_080264A6: - pop {r4, pc} - .align 2, 0 -_080264A8: .4byte 0x000001A1 - - thumb_func_start sub_080264AC -sub_080264AC: @ 0x080264AC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xd0 - movs r2, #8 - bl sub_080277B8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #6 - beq _080264D2 - ldr r0, [r4, #0x54] - movs r1, #4 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08027D20 -_080264D2: - pop {r4, pc} - - thumb_func_start sub_080264D4 -sub_080264D4: @ 0x080264D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080279E8 - cmp r0, #0 - beq _08026504 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x3c - strb r0, [r1] - adds r0, r4, #0 - movs r1, #5 - movs r2, #0 - bl sub_080276F4 - movs r0, #0x2e - bl sub_080A3268 -_08026504: - adds r0, r4, #0 - bl sub_080277F8 - pop {r4, pc} - - thumb_func_start sub_0802650C -sub_0802650C: @ 0x0802650C - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x54] - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0802652C - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - ldr r1, _08026534 @ =gUnk_03000BF0 - ldr r0, _08026538 @ =gLinkEntity - str r0, [r1, #0x30] -_0802652C: - adds r0, r2, #0 - bl sub_08027870 - pop {pc} - .align 2, 0 -_08026534: .4byte gUnk_03000BF0 -_08026538: .4byte gLinkEntity - - thumb_func_start sub_0802653C -sub_0802653C: @ 0x0802653C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, _08026578 @ =gUnk_03000BF0 - ldrh r5, [r1] - cmp r5, #0 - bne _08026572 - movs r0, #4 - strb r0, [r1, #0xe] - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0xb0 - movs r3, #4 - bl sub_08027B98 - adds r0, r4, #0 - movs r1, #0 - bl sub_08027548 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC - ldr r0, _0802657C @ =gUnk_02034490 - strb r5, [r0] -_08026572: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_08026578: .4byte gUnk_03000BF0 -_0802657C: .4byte gUnk_02034490 - - thumb_func_start sub_08026580 -sub_08026580: @ 0x08026580 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08027AA4 - adds r7, r5, #0 - adds r7, #0x84 - ldr r0, [r7] - ldrb r0, [r0, #1] - cmp r0, #0x40 - bne _0802659C - adds r0, r5, #0 - bl sub_08027BBC - b _0802662C -_0802659C: - adds r1, r5, #0 - adds r1, #0x7d - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r1, #0 - cmp r0, #0xff - bne _08026626 - movs r0, #0 - strh r0, [r5, #0x24] - movs r0, #2 - strb r0, [r5, #0xd] - adds r4, r5, #0 - adds r4, #0x7c - movs r0, #0x3c - strb r0, [r4] - ldr r1, _080265E4 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - ldr r0, [r7] - ldrb r0, [r0, #4] - adds r2, r4, #0 - cmp r0, #2 - bne _080265E8 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #0x48 - strb r0, [r1] - adds r1, #1 - ldrb r0, [r1] - adds r0, #0x10 - b _080265EE - .align 2, 0 -_080265E4: .4byte gLinkEntity -_080265E8: - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #0x10 -_080265EE: - strb r0, [r1] - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldrb r1, [r0, #1] - movs r0, #0xa0 - ands r0, r1 - cmp r0, #0 - beq _08026608 - movs r0, #0 - strb r0, [r6] - strb r0, [r2] - b _08026626 -_08026608: - bl sub_08000E50 - ldr r2, _08026630 @ =gUnk_080CC24F - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r1, r0, #1 - strb r1, [r6] - ldr r0, [r4] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _08026626 - lsls r0, r1, #1 - strb r0, [r6] -_08026626: - adds r0, r5, #0 - bl sub_08027870 -_0802662C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08026630: .4byte gUnk_080CC24F - - thumb_func_start sub_08026634 -sub_08026634: @ 0x08026634 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - bl sub_08027AA4 - cmp r0, #0 - beq _08026644 - b _08026748 -_08026644: - adds r0, r4, #0 - adds r0, #0x7d - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0 - bne _080266D6 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08026748 - adds r1, #8 - ldr r2, [r1] - ldrb r3, [r2, #1] - movs r0, #0x40 - ands r0, r3 - adds r5, r1, #0 - cmp r0, #0 - bne _080266B0 - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _0802668C - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - ldr r1, [r5] - ldrb r0, [r1] - cmp r0, #0 - bne _080266B0 - movs r0, #1 - b _080266AE -_0802668C: - movs r0, #1 - strb r0, [r2, #1] - ldr r0, [r5] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _080266B0 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _080266B0 - ldr r1, [r5] - movs r0, #4 - strb r0, [r1] - ldr r1, [r5] - movs r0, #0x81 -_080266AE: - strb r0, [r1, #1] -_080266B0: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xd] - ldr r0, [r5] - strb r1, [r0, #3] - str r1, [sp] - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0x90 - movs r3, #0xc - bl sub_08027B98 - movs r0, #0xe0 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08026742 -_080266D6: - ldr r0, _08026700 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080266EC - ldr r1, _08026704 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_080266EC: - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _08026708 - movs r0, #0x80 - lsls r0, r0, #1 - b _0802670A - .align 2, 0 -_08026700: .4byte gUnk_030010A0 -_08026704: .4byte gLinkEntity -_08026708: - movs r0, #0xc0 -_0802670A: - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802672C - ldr r0, _0802674C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08026726 - movs r0, #0xcf - lsls r0, r0, #1 - bl sub_080A3268 -_08026726: - adds r0, r4, #0 - bl sub_080AEF88 -_0802672C: - adds r0, r4, #0 - adds r0, #0x76 - adds r1, r4, #0 - adds r1, #0x81 - ldrh r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _08026742 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] -_08026742: - adds r0, r4, #0 - bl sub_08027870 -_08026748: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0802674C: .4byte gUnk_030010A0 - - thumb_func_start sub_08026750 -sub_08026750: @ 0x08026750 - push {r4, lr} - adds r4, r0, #0 - bl sub_08027AA4 - ldr r1, _08026770 @ =gUnk_080CC258 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - 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 -_08026770: .4byte gUnk_080CC258 - - thumb_func_start sub_08026774 -sub_08026774: @ 0x08026774 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r1, [r4, #0x54] - adds r1, #0x83 - ldr r0, [r4, #0x50] - adds r0, #0x83 - ldrb r1, [r1] - ldrb r0, [r0] - orrs r1, r0 - ldr r0, [r4, #0x68] - adds r0, #0x83 - ldrb r0, [r0] - orrs r1, r0 - cmp r1, #0 - bne _080267C6 - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080267CC - str r1, [sp] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0x40 - bl sub_08027B98 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #3] - ldr r0, [r4, #0x54] - movs r1, #1 - bl sub_080042AC -_080267C6: - adds r0, r4, #0 - bl sub_080277F8 -_080267CC: - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_080267D0 -sub_080267D0: @ 0x080267D0 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0xf0 - movs r2, #8 - bl sub_080277B8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #1 - beq _08026802 - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0xe0 - movs r2, #0xc0 - movs r3, #0x20 - bl sub_08027B98 - ldr r0, [r4, #0x54] - movs r1, #2 - bl sub_080042AC -_08026802: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08026808 -sub_08026808: @ 0x08026808 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - ldr r7, [r4, #0x68] - ldr r6, [r4, #0x50] - adds r1, r2, #0 - adds r1, #0x76 - ldrh r0, [r1] - cmp r0, #0xbf - bhi _08026820 - adds r0, #4 - strh r0, [r1] -_08026820: - adds r5, r2, #0 - adds r5, #0x7a - ldrh r0, [r5] - cmp r0, #0xb0 - bls _08026830 - subs r0, #8 - strh r0, [r5] - b _08026860 -_08026830: - ldr r1, _08026868 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - movs r0, #4 - strb r0, [r4, #0xd] - movs r1, #0xa0 - strh r1, [r5] - adds r0, r6, #0 - adds r0, #0x7a - strh r1, [r0] - adds r0, r7, #0 - adds r0, #0x7a - strh r1, [r0] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_080276F4 - movs r0, #0xd1 - lsls r0, r0, #1 - bl sub_080A3268 -_08026860: - adds r0, r4, #0 - bl sub_080277F8 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08026868: .4byte gLinkEntity - - thumb_func_start sub_0802686C -sub_0802686C: @ 0x0802686C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #7 - bl sub_08003FC4 - adds r5, r0, #0 - cmp r5, #0 - beq _08026888 - adds r0, r4, #0 - bl sub_080AEF88 - b _080268BE -_08026888: - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - movs r0, #5 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r5, [r0, #3] - str r5, [sp] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0x80 - bl sub_08027B98 - adds r0, r4, #0 - bl sub_08027870 - ldr r0, [r4, #0x54] - movs r1, #3 - bl sub_080042AC - ldr r0, _080268C4 @ =0x000001A1 - bl sub_080A3268 -_080268BE: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_080268C4: .4byte 0x000001A1 - - thumb_func_start sub_080268C8 -sub_080268C8: @ 0x080268C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08027AA4 - ldr r1, _080268E8 @ =gUnk_080CC264 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - 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 -_080268E8: .4byte gUnk_080CC264 - - thumb_func_start sub_080268EC -sub_080268EC: @ 0x080268EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xd0 - movs r2, #8 - bl sub_080277B8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _08026912 - ldr r0, [r4, #0x54] - movs r1, #4 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08027D20 -_08026912: - pop {r4, pc} - - thumb_func_start sub_08026914 -sub_08026914: @ 0x08026914 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - bl sub_080279E8 - cmp r0, #0 - beq _08026942 - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0xb0 - movs r3, #4 - bl sub_08027B98 - adds r0, r4, #0 - movs r1, #0 - bl sub_08027548 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC -_08026942: - adds r0, r4, #0 - bl sub_080277F8 - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_0802694C -sub_0802694C: @ 0x0802694C - push {lr} - ldr r2, _08026964 @ =gUnk_080CC26C - adds r1, r0, #0 - adds r1, #0x84 - ldr r1, [r1] - ldrb r1, [r1, #3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08026964: .4byte gUnk_080CC26C - - thumb_func_start sub_08026968 -sub_08026968: @ 0x08026968 - push {r4, r5, r6, lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7d - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0802698C - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - b _080269C0 -_0802698C: - ldr r6, [r2, #0x54] - ldr r4, [r2, #0x68] - ldr r5, [r2, #0x50] - ldrb r1, [r2, #0x15] - movs r0, #0x10 - ands r0, r1 - ldr r3, _080269C8 @ =0xFFFFFF00 - cmp r0, #0 - beq _080269A2 - movs r3, #0x80 - lsls r3, r3, #1 -_080269A2: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, r0, r3 - strh r0, [r1] -_080269C0: - adds r0, r2, #0 - bl sub_08027870 - pop {r4, r5, r6, pc} - .align 2, 0 -_080269C8: .4byte 0xFFFFFF00 - - thumb_func_start sub_080269CC -sub_080269CC: @ 0x080269CC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - movs r7, #0 - ldr r5, [r6, #0x54] - ldr r0, [r6, #0x68] - mov sl, r0 - ldr r1, [r6, #0x50] - mov sb, r1 - ldrb r1, [r6, #0x15] - movs r0, #0x10 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #2 - mov r8, r1 - cmp r0, #0 - beq _080269F8 - ldr r0, _08026A18 @ =0xFFFFFD00 - mov r8, r0 -_080269F8: - mov r0, sl - adds r0, #0x83 - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x20 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3f - bhi _08026A1C - mov r1, sl - adds r1, #0x82 - ldrh r0, [r1] - add r0, r8 - strh r0, [r1] - b _08026A1E - .align 2, 0 -_08026A18: .4byte 0xFFFFFD00 -_08026A1C: - movs r7, #1 -_08026A1E: - mov r0, sb - adds r0, #0x83 - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x44 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x87 - bhi _08026A3C - mov r1, sb - adds r1, #0x82 - ldrh r0, [r1] - add r0, r8 - strh r0, [r1] - b _08026A3E -_08026A3C: - adds r7, #1 -_08026A3E: - adds r0, r5, #0 - adds r0, #0x83 - ldrb r0, [r0] - adds r4, r0, #0 - adds r4, #0x40 - adds r0, #0x20 - cmp r0, #0x40 - bls _08026A7E - ldrb r1, [r6, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08026A6C - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #6 - beq _08026A7E - adds r0, r5, #0 - movs r1, #6 - bl sub_080042AC - b _08026A7E -_08026A6C: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #5 - beq _08026A7E - adds r0, r5, #0 - movs r1, #5 - bl sub_080042AC -_08026A7E: - lsls r0, r4, #0x18 - cmp r0, #0 - blt _08026A90 - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - add r0, r8 - strh r0, [r1] - b _08026A92 -_08026A90: - adds r7, #1 -_08026A92: - cmp r7, #3 - beq _08026A98 - b _08026BB8 -_08026A98: - ldrb r1, [r6, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6, #0x10] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #3 - strh r0, [r1] - movs r0, #0x20 - movs r1, #0 - bl sub_08080964 - ldr r0, _08026B24 @ =0x0000010B - bl sub_080A3268 - adds r0, r6, #0 - movs r1, #0x15 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r4, r0, #0 - cmp r4, #0 - beq _08026B4E - movs r0, #0xc9 - strh r0, [r4, #0x12] - adds r1, r4, #0 - adds r1, #0x58 - movs r0, #1 - strb r0, [r1] - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - ldrb r1, [r6, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08026B28 - ldrh r0, [r4, #0x2e] - subs r0, #0x38 - b _08026B2C - .align 2, 0 -_08026B24: .4byte 0x0000010B -_08026B28: - ldrh r0, [r4, #0x2e] - adds r0, #0x38 -_08026B2C: - strh r0, [r4, #0x2e] - adds r0, r4, #0 - movs r1, #0x3e - bl sub_080ADF80 - ldrb r0, [r6, #0xb] - cmp r0, #0 - bne _08026B46 - adds r0, r4, #0 - movs r1, #0x2b - bl sub_0801D040 - b _08026B4E -_08026B46: - adds r0, r4, #0 - movs r1, #0x2c - bl sub_0801D040 -_08026B4E: - ldr r3, [r6, #0x50] - ldr r2, [r6, #0x54] - ldr r0, [r6, #0x68] - adds r0, #0x84 - movs r1, #1 - strb r1, [r0] - adds r2, #0x84 - strb r1, [r2] - adds r3, #0x84 - strb r1, [r3] - mov r0, sb - adds r0, #0x7a - movs r1, #0x98 - strh r1, [r0] - mov r0, sl - adds r0, #0x7a - strh r1, [r0] - adds r0, r5, #0 - adds r0, #0x7a - strh r1, [r0] - bl sub_08000E50 - ldr r2, _08026BB4 @ =gUnk_080CC278 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r7, r6, #0 - adds r7, #0x7c - strb r0, [r7] - adds r0, r6, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - adds r0, r5, #0 - movs r1, #0x49 - movs r2, #0xa - movs r3, #0 - bl sub_080A2988 - adds r4, r0, #0 - cmp r4, #0 - beq _08026BD4 - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r7] - str r0, [r1] - b _08026BD4 - .align 2, 0 -_08026BB4: .4byte gUnk_080CC278 -_08026BB8: - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - cmp r0, #0xef - bhi _08026BD4 - ldr r0, [r5, #0x74] - movs r1, #0x80 - lsls r1, r1, #0xb - adds r0, r0, r1 - str r0, [r5, #0x74] - ldr r0, [r5, #0x78] - ldr r1, _08026BE4 @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r5, #0x78] -_08026BD4: - adds r0, r6, #0 - bl sub_08027870 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08026BE4: .4byte 0xFFFF8000 - - thumb_func_start sub_08026BE8 -sub_08026BE8: @ 0x08026BE8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - adds r3, r5, #0 - adds r3, #0x3b - ldrb r1, [r3] - movs r0, #0xfe - ands r0, r1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - adds r2, r0, #0 - cmp r2, #0 - bne _08026C34 - movs r0, #7 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r2, [r0, #3] - adds r1, #1 - movs r0, #0x2d - strb r0, [r1] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - ldrb r0, [r3] - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - ldr r0, _08026C30 @ =0x00000155 - bl sub_080A3268 - b _08026C38 - .align 2, 0 -_08026C30: .4byte 0x00000155 -_08026C34: - subs r0, #1 - strb r0, [r1] -_08026C38: - adds r0, r4, #0 - bl sub_08027870 - pop {r4, r5, pc} - - thumb_func_start sub_08026C40 -sub_08026C40: @ 0x08026C40 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r5, r0, #0 - ldr r4, [r5, #0x54] - ldr r7, [r5, #0x68] - ldr r6, [r5, #0x50] - adds r2, r5, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0 - beq _08026CCC - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - cmp r0, #0 - beq _08026C9C - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _08026C82 - ldr r0, [r4, #0x74] - movs r1, #0x80 - lsls r1, r1, #0xa - adds r0, r0, r1 - str r0, [r4, #0x74] - ldr r0, [r4, #0x78] - movs r2, #0x80 - lsls r2, r2, #9 - adds r0, r0, r2 - str r0, [r4, #0x78] - b _08026E12 -_08026C82: - ldr r0, [r4, #0x74] - ldr r3, _08026C94 @ =0xFFFE0000 - adds r0, r0, r3 - str r0, [r4, #0x74] - ldr r0, [r4, #0x78] - ldr r1, _08026C98 @ =0xFFFF0000 - adds r0, r0, r1 - str r0, [r4, #0x78] - b _08026E12 - .align 2, 0 -_08026C94: .4byte 0xFFFE0000 -_08026C98: .4byte 0xFFFF0000 -_08026C9C: - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08026CBA - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #8 - beq _08026CCC - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - b _08026CCC -_08026CBA: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #7 - beq _08026CCC - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC -_08026CCC: - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - mov r8, r0 - cmp r1, #0 - bne _08026CF0 - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - ldr r2, _08026CEC @ =0xFFFFFD00 - cmp r0, #0 - beq _08026D00 - movs r2, #0xc0 - lsls r2, r2, #2 - b _08026D00 - .align 2, 0 -_08026CEC: .4byte 0xFFFFFD00 -_08026CF0: - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - ldr r2, _08026D30 @ =0xFFFFFB80 - cmp r0, #0 - beq _08026D00 - movs r2, #0x90 - lsls r2, r2, #3 -_08026D00: - adds r0, r7, #0 - adds r0, #0x83 - ldrb r0, [r0] - adds r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bls _08026D34 - adds r1, r7, #0 - adds r1, #0x82 - lsls r0, r2, #1 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x82 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - b _08026D7E - .align 2, 0 -_08026D30: .4byte 0xFFFFFB80 -_08026D34: - adds r0, r7, #0 - adds r0, #0x82 - movs r1, #0 - strh r1, [r0] - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - adds r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bls _08026D60 - adds r1, r6, #0 - adds r1, #0x82 - lsls r0, r2, #1 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - b _08026D7E -_08026D60: - adds r0, r6, #0 - adds r0, #0x82 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - adds r0, #6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bls _08026D84 - adds r1, r4, #0 - adds r1, #0x82 - lsls r0, r2, #1 - ldrh r2, [r1] -_08026D7E: - adds r0, r0, r2 - strh r0, [r1] - b _08026D8A -_08026D84: - adds r0, r4, #0 - adds r0, #0x82 - strh r1, [r0] -_08026D8A: - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - cmp r0, #0xa0 - bls _08026DA4 - ldr r0, [r4, #0x74] - ldr r3, _08026DA0 @ =0xFFFC0000 - adds r0, r0, r3 - str r0, [r4, #0x74] - b _08026DA8 - .align 2, 0 -_08026DA0: .4byte 0xFFFC0000 -_08026DA4: - movs r0, #0xa0 - strh r0, [r1] -_08026DA8: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0x9f - bhi _08026DBE - ldr r0, [r4, #0x78] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - str r0, [r4, #0x78] - b _08026E0C -_08026DBE: - adds r0, r5, #0 - movs r1, #3 - movs r2, #0 - bl sub_080276F4 - adds r0, r4, #0 - adds r0, #0x7d - movs r2, #0 - strb r2, [r0] - ldrb r1, [r5, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08026DEE - adds r1, r6, #0 - adds r1, #0x85 - movs r0, #1 - strb r0, [r1] - adds r1, r7, #0 - adds r1, #0x85 - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x85 - strb r0, [r1] -_08026DEE: - movs r0, #8 - strb r0, [r5, #0xd] - movs r0, #4 - mov r3, r8 - strb r0, [r3] - strb r2, [r6, #0xf] - strb r2, [r7, #0xf] - strb r2, [r4, #0xf] - str r2, [sp] - adds r0, r5, #0 - movs r1, #0x90 - movs r2, #0xb0 - movs r3, #0x10 - bl sub_08027B98 -_08026E0C: - adds r0, r5, #0 - bl sub_08027870 -_08026E12: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08026E1C -sub_08026E1C: @ 0x08026E1C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - adds r6, r0, #0 - cmp r6, #0 - bne _08026EE0 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xf] - ldr r1, [r4, #0x50] - ldrb r1, [r1, #0xf] - ldr r2, [r4, #0x68] - adds r0, r0, r1 - ldrb r2, [r2, #0xf] - adds r0, r0, r2 - cmp r0, #0xa - ble _08026EF2 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - mov r8, r1 - movs r7, #0 - mov r1, r8 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_08027C54 - adds r5, r4, #0 - adds r5, #0x84 - cmp r0, #0 - beq _08026E72 - ldr r1, [r5] - ldrb r0, [r1, #4] - adds r0, #1 - strb r0, [r1, #4] - ldr r0, [r4, #0x54] - adds r0, #0x45 - movs r1, #0xff - strb r1, [r0] -_08026E72: - ldr r1, [r5] - ldrb r0, [r1, #4] - cmp r0, #3 - bne _08026EA0 - adds r0, r4, #0 - adds r0, #0x45 - strb r6, [r0] - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - ldr r3, [r4, #0x54] - ldr r2, [r4, #0x50] - ldr r0, [r4, #0x68] - strb r1, [r0, #0x10] - ldrb r0, [r4, #0x10] - strb r0, [r2, #0x10] - strb r0, [r3, #0x10] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xc4 - strb r0, [r1] - b _08026F14 -_08026EA0: - movs r0, #4 - strb r0, [r1] - ldr r1, [r5] - movs r0, #0x81 - strb r0, [r1, #1] - ldrb r0, [r4, #0x10] - mov r1, r8 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x7d - strb r0, [r1] - movs r0, #0xb - strb r0, [r4, #0xd] - ldr r0, [r5] - strb r6, [r0, #3] - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC - str r6, [sp] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0x80 - bl sub_08027B98 - ldr r1, [r5] - movs r0, #0x21 - strb r0, [r1, #1] - b _08026EF2 -_08026EE0: - subs r0, #1 - movs r2, #0 - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, [r1] - str r2, [r0, #8] - ldr r0, [r1] - strb r2, [r0, #6] -_08026EF2: - adds r0, r4, #0 - bl sub_08027C54 - cmp r0, #0 - beq _08026F14 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #2 - bne _08026F14 - adds r0, r4, #0 - movs r1, #0x3f - bl sub_08027C7C - bl sub_08078B48 -_08026F14: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08026F1C -sub_08026F1C: @ 0x08026F1C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7c - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08026F70 - adds r0, r4, #0 - bl sub_080279E8 - cmp r0, #0 - beq _08026F68 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - movs r2, #0 - strb r2, [r0, #3] - ldrb r1, [r5] - movs r0, #0xf - ands r0, r1 - strb r0, [r5] - str r2, [sp] - adds r0, r4, #0 - movs r1, #0x80 - movs r2, #0x80 - movs r3, #0x80 - bl sub_08027B98 - ldrb r0, [r5] - cmp r0, #2 - bne _08026F68 - adds r0, r4, #0 - movs r1, #0 - bl sub_08027548 -_08026F68: - adds r0, r4, #0 - bl sub_080277F8 - b _08026FA0 -_08026F70: - adds r0, r4, #0 - movs r1, #0xf0 - movs r2, #0x10 - bl sub_080277B8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _08026FA0 - ldrb r0, [r5] - adds r0, #1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5] - movs r0, #1 - str r0, [sp] - adds r0, r4, #0 - movs r1, #0xc0 - movs r2, #0xc0 - movs r3, #0x20 - bl sub_08027B98 -_08026FA0: - add sp, #4 - pop {r4, r5, pc} - - thumb_func_start sub_08026FA4 -sub_08026FA4: @ 0x08026FA4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r0, [r4, #0x10] - movs r5, #0x7f - adds r1, r5, #0 - ands r1, r0 - strb r1, [r4, #0x10] - ldr r3, [r4, #0x54] - ldr r2, [r4, #0x50] - ldr r0, [r4, #0x68] - strb r1, [r0, #0x10] - ldrb r0, [r4, #0x10] - strb r0, [r2, #0x10] - strb r0, [r3, #0x10] - adds r3, r4, #0 - adds r3, #0x7c - ldrb r0, [r3] - cmp r0, #0 - beq _08026FD2 - movs r0, #1 - strb r0, [r3] -_08026FD2: - ldr r2, [r4, #0x54] - adds r0, r2, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0x97 - bhi _08026FFE - movs r1, #0x80 - lsls r1, r1, #9 - ldrb r0, [r3] - lsls r1, r0 - ldr r0, [r2, #0x78] - adds r0, r0, r1 - str r0, [r2, #0x78] - ldr r2, [r4, #0x54] - movs r1, #0x80 - lsls r1, r1, #0xa - ldrb r3, [r3] - lsls r1, r3 - ldr r0, [r2, #0x74] - subs r0, r0, r1 - str r0, [r2, #0x74] - b _0802705C -_08026FFE: - movs r0, #7 - strb r0, [r4, #0xd] - ldrb r1, [r2, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #0 - strb r0, [r1, #3] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x2d - strb r0, [r1] - ldr r0, _08027044 @ =0x00000155 - bl sub_080A3268 - ldrb r1, [r4, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08027048 - ldr r1, [r4, #0x54] - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #8 - beq _0802705C - adds r0, r1, #0 - movs r1, #8 - bl sub_080042AC - b _0802705C - .align 2, 0 -_08027044: .4byte 0x00000155 -_08027048: - ldr r1, [r4, #0x54] - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #7 - beq _0802705C - adds r0, r1, #0 - movs r1, #7 - bl sub_080042AC -_0802705C: - adds r0, r4, #0 - bl sub_08027870 - pop {r4, r5, pc} - - thumb_func_start sub_08027064 -sub_08027064: @ 0x08027064 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldr r6, [r5, #0x54] - ldr r0, [r5, #0x68] - mov sb, r0 - ldr r1, [r5, #0x50] - mov r8, r1 - movs r0, #0x60 - strh r0, [r5, #0x24] - adds r0, r6, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xa - beq _08027098 - ldr r0, _080270C8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08027098 - movs r0, #0x7c - bl sub_080A3268 -_08027098: - adds r0, r5, #0 - adds r0, #0x84 - ldr r3, [r0] - ldrb r1, [r3, #3] - adds r7, r0, #0 - cmp r1, #0 - beq _080270E0 - ldr r0, _080270CC @ =gLinkEntity - movs r2, #0x32 - ldrsh r4, [r5, r2] - movs r1, #0x32 - ldrsh r2, [r0, r1] - cmp r4, r2 - beq _080270E0 - ldr r0, _080270C8 @ =gUnk_030010A0 - ldr r1, [r0] - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _080270D4 - cmp r4, r2 - ble _080270D0 - strb r1, [r3, #0xc] - b _080270D4 - .align 2, 0 -_080270C8: .4byte gUnk_030010A0 -_080270CC: .4byte gLinkEntity -_080270D0: - movs r0, #0x10 - strb r0, [r3, #0xc] -_080270D4: - ldr r0, [r7] - ldrb r0, [r0, #0xc] - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_080AEF88 -_080270E0: - adds r0, r6, #0 - adds r0, #0x85 - ldrb r0, [r0] - cmp r0, #1 - bne _080270FC - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _0802710E - movs r0, #0x18 - b _08027110 -_080270FC: - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _0802710E - movs r0, #0x18 - b _08027110 -_0802710E: - movs r0, #8 -_08027110: - strb r0, [r5, #0x15] - ldr r1, [r7] - ldrb r0, [r1, #3] - cmp r0, #0 - bne _08027152 - movs r2, #0x2e - ldrsh r0, [r5, r2] - ldrh r1, [r1, #0xe] - cmp r0, r1 - bne _0802714A - mov r0, r8 - adds r0, #0x84 - movs r1, #1 - strb r1, [r0] - mov r0, sb - adds r0, #0x84 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x84 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x7c - movs r0, #0x1e - strb r0, [r1] - ldr r1, [r7] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] - b _080271FE -_0802714A: - adds r0, r5, #0 - bl sub_080AEF88 - b _080271FE -_08027152: - adds r0, r6, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - beq _080271E6 - mov r0, sb - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - beq _080271E6 - mov r0, r8 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #0 - beq _080271E6 - adds r1, r5, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080271FE - mov r0, r8 - adds r0, #0x84 - movs r1, #1 - strb r1, [r0] - mov r0, sb - adds r0, #0x84 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x84 - strb r1, [r0] - movs r3, #0 - ldr r0, [r7] - ldrb r0, [r0, #3] - cmp r0, #1 - bls _080271B2 - ldr r0, _080271DC @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - movs r3, #8 - cmp r1, r0 - ble _080271B2 - movs r3, #0x18 -_080271B2: - ldr r2, [r7] - ldrb r1, [r2, #3] - cmp r1, #5 - beq _080271C0 - ldrb r0, [r5, #0x15] - cmp r0, r3 - bne _080271E0 -_080271C0: - movs r4, #0 - movs r0, #6 - strb r0, [r5, #0xd] - adds r0, r5, #0 - movs r1, #7 - movs r2, #1 - bl sub_080276F4 - ldr r0, [r7] - strb r4, [r0, #3] - adds r1, r5, #0 - adds r1, #0x7d - movs r0, #0xf - b _080271FC - .align 2, 0 -_080271DC: .4byte gLinkEntity -_080271E0: - adds r0, r1, #1 - strb r0, [r2, #3] - b _080271FE -_080271E6: - ldr r0, [r7] - ldrb r0, [r0, #3] - cmp r0, #4 - beq _080271F6 - adds r1, r5, #0 - adds r1, #0x7c - movs r0, #0x1e - b _080271FC -_080271F6: - adds r1, r5, #0 - adds r1, #0x7c - movs r0, #0x3c -_080271FC: - strb r0, [r1] -_080271FE: - adds r0, r5, #0 - bl sub_08027870 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802720C -sub_0802720C: @ 0x0802720C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xd] - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xd] - cmp r0, #0xc - bhi _080272CA - lsls r0, r0, #2 - ldr r1, _08027228 @ =_0802722C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08027228: .4byte _0802722C -_0802722C: @ jump table - .4byte _080272C4 @ case 0 - .4byte _08027260 @ case 1 - .4byte _08027260 @ case 2 - .4byte _0802726E @ case 3 - .4byte _080272AA @ case 4 - .4byte _0802726E @ case 5 - .4byte _080272CA @ case 6 - .4byte _080272CA @ case 7 - .4byte _08027282 @ case 8 - .4byte _080272CA @ case 9 - .4byte _080272A0 @ case 10 - .4byte _080272CA @ case 11 - .4byte _08027260 @ case 12 -_08027260: - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0xa0 - strh r0, [r1] - subs r1, #4 - strh r0, [r1] - b _080272AA -_0802726E: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _080272CA - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0 - strb r0, [r1] - b _080272AA -_08027282: - ldrb r0, [r4, #0xf] - cmp r0, #3 - bhi _080272CA - adds r0, r4, #0 - bl sub_0802757C - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - bne _080272CA - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - b _080272CA -_080272A0: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0 - bne _080272B2 -_080272AA: - adds r0, r4, #0 - bl sub_0802757C - b _080272CA -_080272B2: - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r1] - cmp r0, #0 - beq _080272CA - movs r0, #0 - strb r0, [r2] - strb r0, [r1] - b _080272CA -_080272C4: - adds r0, r4, #0 - bl sub_0802757C -_080272CA: - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x34] - str r0, [r4, #0x34] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080272D4 -sub_080272D4: @ 0x080272D4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, [r6, #0x50] - ldrb r0, [r0, #0xd] - cmp r0, #0xc - bls _080272E2 - b _08027532 -_080272E2: - lsls r0, r0, #2 - ldr r1, _080272EC @ =_080272F0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080272EC: .4byte _080272F0 -_080272F0: @ jump table - .4byte _08027508 @ case 0 - .4byte _08027324 @ case 1 - .4byte _08027324 @ case 2 - .4byte _08027332 @ case 3 - .4byte _0802733E @ case 4 - .4byte _08027332 @ case 5 - .4byte _08027368 @ case 6 - .4byte _08027532 @ case 7 - .4byte _08027346 @ case 8 - .4byte _08027454 @ case 9 - .4byte _0802748C @ case 10 - .4byte _08027532 @ case 11 - .4byte _08027324 @ case 12 -_08027324: - adds r1, r6, #0 - adds r1, #0x7a - movs r0, #0xa0 - strh r0, [r1] - subs r1, #4 - strh r0, [r1] - b _0802733E -_08027332: - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - bne _0802733E - b _08027532 -_0802733E: - adds r0, r6, #0 - bl sub_0802757C - b _08027532 -_08027346: - ldrb r0, [r6, #0xf] - cmp r0, #2 - bls _0802734E - b _08027532 -_0802734E: - adds r0, r6, #0 - bl sub_0802757C - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - beq _08027360 - b _08027532 -_08027360: - ldrb r0, [r6, #0xf] - adds r0, #1 - strb r0, [r6, #0xf] - b _08027532 -_08027368: - ldr r5, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #3 - adds r1, r1, r0 - lsrs r1, r1, #7 - strb r1, [r5, #6] - ldr r5, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #2 - adds r1, r1, r0 - lsrs r1, r1, #6 - strb r1, [r5, #7] - adds r0, r6, #0 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #0 - bne _080273A4 - b _08027532 -_080273A4: - adds r0, r6, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08027444 - adds r2, r6, #0 - adds r2, #0x3d - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08027444 - ldr r0, [r6, #0x54] - ldr r0, [r0, #0x68] - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r6, #0x54] - ldr r0, [r0, #0x50] - ldrb r1, [r2] - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r6, #0x54] - ldrb r1, [r2] - adds r0, #0x3d - strb r1, [r0] - ldr r0, [r6, #0x54] - bl sub_08027D20 - adds r2, r0, #0 - cmp r2, #0 - beq _08027406 - ldrh r0, [r6, #0x2e] - adds r0, #1 - strh r0, [r2, #0x2e] - adds r0, r6, #0 - adds r0, #0x63 - ldrb r0, [r0] - adds r0, #0x20 - adds r1, r2, #0 - adds r1, #0x63 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x62 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x62 - strb r1, [r0] -_08027406: - ldr r0, [r6, #0x54] - bl sub_08027C54 - cmp r0, #0 - beq _0802741C - ldr r0, [r6, #0x54] - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #2 - beq _08027428 -_0802741C: - ldr r0, _08027424 @ =0x00000127 - bl sub_080A3268 - b _08027444 - .align 2, 0 -_08027424: .4byte 0x00000127 -_08027428: - bl sub_08078B48 - ldr r0, _0802744C @ =gUnk_03000BF0 - ldr r2, [r6, #0x54] - str r2, [r0, #0x30] - ldr r1, _08027450 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - movs r0, #9 - strb r0, [r2, #0xd] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 -_08027444: - adds r0, r6, #0 - bl sub_08027A60 - b _08027484 - .align 2, 0 -_0802744C: .4byte gUnk_03000BF0 -_08027450: .4byte gUnk_02034490 -_08027454: - ldr r5, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r4, #0x80 - lsls r4, r4, #9 - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #3 - adds r1, r1, r0 - lsrs r1, r1, #7 - strb r1, [r5, #6] - ldr r5, [r6, #0x48] - adds r0, r6, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r0, r4, #0 - bl __divsi3 - lsls r1, r0, #2 - adds r1, r1, r0 - lsrs r1, r1, #6 - strb r1, [r5, #7] -_08027484: - adds r0, r6, #0 - bl sub_0800445C - b _08027532 -_0802748C: - adds r2, r6, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0 - bne _0802749E - adds r0, r6, #0 - bl sub_0802757C - b _080274AE -_0802749E: - adds r1, r6, #0 - adds r1, #0x84 - ldrb r0, [r1] - cmp r0, #0 - beq _080274AE - movs r0, #0 - strb r0, [r2] - strb r0, [r1] -_080274AE: - adds r2, r6, #0 - adds r2, #0x83 - adds r0, r6, #0 - adds r0, #0x81 - ldrb r1, [r0] - lsrs r0, r1, #1 - ldrb r2, [r2] - adds r0, r2, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r1 - bls _080274F4 - lsls r0, r2, #0x18 - cmp r0, #0 - ble _080274E0 - adds r0, r6, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xc - beq _08027532 - adds r0, r6, #0 - movs r1, #0xc - bl sub_080042AC - b _08027532 -_080274E0: - adds r0, r6, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xb - beq _08027532 - adds r0, r6, #0 - movs r1, #0xb - bl sub_080042AC - b _08027532 -_080274F4: - adds r0, r6, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xa - beq _08027532 - adds r0, r6, #0 - movs r1, #0xa - bl sub_080042AC - b _08027532 -_08027508: - ldr r0, [r6, #0x54] - adds r0, #0x84 - ldr r0, [r0] - ldrb r0, [r0, #3] - cmp r0, #8 - bne _08027532 - adds r0, r6, #0 - bl sub_0802757C - adds r0, r6, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #1 - bne _08027532 - adds r1, r6, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _08027532 - subs r0, #4 - strb r0, [r1] -_08027532: - ldr r0, [r6, #0x50] - ldr r0, [r0, #0x34] - str r0, [r6, #0x34] - adds r1, r6, #0 - adds r1, #0x41 - movs r0, #0 - strb r0, [r1] - adds r0, r6, #0 - bl sub_080042B8 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08027548 -sub_08027548: @ 0x08027548 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - adds r6, r1, #0 - movs r5, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xff - str r0, [sp] - adds r0, r4, #0 - movs r1, #0x90 - movs r2, #0xb0 - movs r3, #8 - bl sub_08027B98 - adds r0, r4, #0 - adds r0, #0x7d - strb r5, [r0] - adds r0, r4, #0 - movs r1, #0 - adds r2, r6, #0 - bl sub_080276F4 - add sp, #4 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802757C -sub_0802757C: @ 0x0802757C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r6, r5, #0 - adds r6, #0x7d - ldrb r1, [r6] - cmp r1, #0 - beq _080275BA - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080275AE - ldr r0, [r5, #0x54] - adds r0, #0x7d - ldrb r0, [r0] - movs r1, #0x83 - adds r1, r1, r5 - mov sl, r1 - cmp r0, #0 - beq _08027676 - movs r0, #0 - strb r0, [r6] - b _08027676 -_080275AE: - subs r0, r1, #1 - strb r0, [r6] - movs r2, #0x83 - adds r2, r2, r5 - mov sl, r2 - b _08027676 -_080275BA: - movs r0, #0x85 - adds r0, r0, r5 - mov ip, r0 - ldrb r1, [r0] - mov sb, r1 - cmp r1, #1 - bne _0802761E - adds r1, r5, #0 - adds r1, #0x82 - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x83 - adds r2, r5, #0 - adds r2, #0x81 - movs r4, #0 - ldrsb r4, [r0, r4] - movs r3, #0 - ldrsb r3, [r2, r3] - mov r8, r1 - mov sl, r0 - adds r7, r2, #0 - cmp r4, r3 - blt _08027676 - movs r0, #0 - mov r1, ip - strb r0, [r1] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _08027616 - ldr r1, [r5, #0x50] - adds r0, r1, #0 - adds r0, #0x81 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, #0x86 - ldrh r1, [r1] - bl __divsi3 - adds r0, #1 - strb r0, [r6] - b _0802761A -_08027616: - mov r2, sb - strb r2, [r6] -_0802761A: - ldrb r0, [r7] - b _08027670 -_0802761E: - adds r2, r5, #0 - adds r2, #0x82 - adds r1, r5, #0 - adds r1, #0x86 - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - adds r1, r5, #0 - adds r1, #0x83 - movs r4, #0 - ldrsb r4, [r1, r4] - adds r0, r5, #0 - adds r0, #0x81 - ldrb r3, [r0] - mov r8, r2 - mov sl, r1 - adds r7, r0, #0 - cmn r4, r3 - bgt _08027676 - movs r1, #1 - mov r2, ip - strb r1, [r2] - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _0802766A - ldr r1, [r5, #0x50] - adds r0, r1, #0 - adds r0, #0x81 - ldrb r0, [r0] - lsls r0, r0, #8 - adds r1, #0x86 - ldrh r1, [r1] - bl __divsi3 - adds r0, #1 - strb r0, [r6] - b _0802766C -_0802766A: - strb r1, [r6] -_0802766C: - ldrb r0, [r7] - rsbs r0, r0, #0 -_08027670: - lsls r0, r0, #8 - mov r1, r8 - strh r0, [r1] -_08027676: - ldr r2, [r5, #0x50] - adds r0, r2, #0 - adds r0, #0x63 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #0x10 - ldr r0, [r2, #0x30] - adds r0, r0, r1 - str r0, [r5, #0x30] - adds r0, r2, #0 - adds r0, #0x62 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #0x10 - ldr r0, [r2, #0x2c] - adds r0, r0, r1 - str r0, [r5, #0x2c] - ldrb r1, [r5, #0xe] - lsls r1, r1, #8 - mov r0, sl - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0806F62C - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _080276D2 - ldr r1, [r5, #0x54] - ldr r0, [r5, #0x30] - str r0, [r1, #0x30] - ldr r1, [r5, #0x54] - ldr r0, [r5, #0x2c] - str r0, [r1, #0x2c] - ldr r0, [r5, #0x54] - ldrb r1, [r0, #0xe] - lsls r1, r1, #8 - adds r2, r0, #0 - adds r2, #0x83 - ldrb r2, [r2] - bl sub_0806F62C - ldr r0, [r5, #0x68] - ldr r1, [r5, #0x54] - ldrb r2, [r1, #0xa] - bl sub_080279AC -_080276D2: - ldr r0, [r5, #0x68] - ldrb r2, [r5, #0xa] - adds r1, r5, #0 - bl sub_080279AC - mov r1, sl - ldrb r0, [r1] - rsbs r0, r0, #0 - adds r1, r5, #0 - adds r1, #0x7f - strb r0, [r1] - 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_080276F4 -sub_080276F4: @ 0x080276F4 - push {r4, r5, r6, r7, lr} - adds r6, r2, #0 - ldr r5, [r0, #0x54] - ldr r4, [r0, #0x68] - ldr r0, [r0, #0x50] - mov ip, r0 - adds r0, #0x84 - movs r2, #0 - strb r2, [r0] - adds r0, r4, #0 - adds r0, #0x84 - strb r2, [r0] - adds r0, r5, #0 - adds r0, #0x84 - strb r2, [r0] - mov r0, ip - adds r0, #0x7e - movs r7, #0 - strh r2, [r0] - adds r0, r4, #0 - adds r0, #0x7e - strh r2, [r0] - adds r0, r5, #0 - adds r0, #0x7e - strh r2, [r0] - mov r0, ip - adds r0, #0x7d - strb r7, [r0] - adds r0, r4, #0 - adds r0, #0x7d - strb r7, [r0] - ldr r0, _080277AC @ =gUnk_080CC27C - lsls r1, r1, #2 - adds r0, r1, r0 - ldrh r2, [r0] - adds r3, r5, #0 - adds r3, #0x86 - strh r2, [r3] - ldrb r0, [r0, #2] - adds r2, r5, #0 - adds r2, #0x81 - strb r0, [r2] - ldr r0, _080277B0 @ =gUnk_080CC2BC - adds r0, r1, r0 - ldrh r2, [r0] - adds r3, r4, #0 - adds r3, #0x86 - strh r2, [r3] - ldrb r0, [r0, #2] - adds r2, r4, #0 - adds r2, #0x81 - strb r0, [r2] - ldr r0, _080277B4 @ =gUnk_080CC29C - adds r1, r1, r0 - ldrh r0, [r1] - mov r2, ip - adds r2, #0x86 - strh r0, [r2] - ldrb r0, [r1, #2] - mov r1, ip - adds r1, #0x81 - strb r0, [r1] - cmp r6, #0 - bne _080277AA - mov r0, ip - adds r0, #0x85 - strb r7, [r0] - adds r0, r4, #0 - adds r0, #0x85 - strb r7, [r0] - adds r0, r5, #0 - adds r0, #0x85 - strb r7, [r0] - mov r0, ip - adds r0, #0x82 - strh r6, [r0] - adds r0, r4, #0 - adds r0, #0x82 - strh r6, [r0] - adds r0, r5, #0 - adds r0, #0x82 - strh r6, [r0] - ldrb r0, [r1] - lsls r0, r0, #7 - ldrh r1, [r2] - bl __divsi3 - adds r0, #1 - adds r1, r5, #0 - adds r1, #0x7d - strb r0, [r1] -_080277AA: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080277AC: .4byte gUnk_080CC27C -_080277B0: .4byte gUnk_080CC2BC -_080277B4: .4byte gUnk_080CC29C - - thumb_func_start sub_080277B8 -sub_080277B8: @ 0x080277B8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r1, [r5, #0x54] - adds r3, r1, #0 - adds r3, #0x7a - ldrh r0, [r3] - cmp r4, r0 - bls _080277DC - adds r0, r0, r2 - strh r0, [r3] - ldr r0, [r1, #0x74] - ldr r2, _080277D8 @ =0xFFFE8000 - adds r0, r0, r2 - str r0, [r1, #0x74] - b _080277F0 - .align 2, 0 -_080277D8: .4byte 0xFFFE8000 -_080277DC: - strh r4, [r3] - adds r1, #0x7c - movs r0, #8 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #3] - adds r0, #1 - strb r0, [r1, #3] -_080277F0: - adds r0, r5, #0 - bl sub_080277F8 - pop {r4, r5, pc} - - thumb_func_start sub_080277F8 -sub_080277F8: @ 0x080277F8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r3, [r6, #0x54] - ldr r5, [r6, #0x68] - ldr r4, [r6, #0x50] - ldrh r2, [r6, #0x2e] - strh r2, [r5, #0x2e] - movs r7, #0xe - strb r7, [r5, #0xe] - ldrh r0, [r6, #0x32] - subs r0, #0xe - strh r0, [r5, #0x32] - strh r2, [r4, #0x2e] - movs r0, #0x7a - adds r0, r0, r3 - mov ip, r0 - ldrh r1, [r0] - subs r1, #0xa0 - asrs r1, r1, #4 - movs r0, #0x12 - subs r0, r0, r1 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xe] - ldrh r0, [r5, #0x32] - subs r0, r0, r1 - strh r0, [r4, #0x32] - strh r2, [r3, #0x2e] - mov r1, ip - ldrh r0, [r1] - cmp r0, #0xa0 - bls _0802784E - subs r0, #0xa0 - asrs r0, r0, #2 - movs r1, #0xe - subs r1, r1, r0 - strb r1, [r3, #0xe] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - beq _08027850 - movs r0, #0 - strb r0, [r3, #0xe] - b _08027850 -_0802784E: - strb r7, [r3, #0xe] -_08027850: - ldrb r1, [r3, #0xe] - ldrh r0, [r4, #0x32] - subs r0, r0, r1 - strh r0, [r3, #0x32] - ldr r0, [r3, #0x74] - str r0, [r4, #0x74] - ldr r0, [r3, #0x78] - str r0, [r4, #0x78] - ldr r0, [r3, #0x74] - str r0, [r5, #0x74] - ldr r0, [r3, #0x78] - str r0, [r5, #0x78] - adds r0, r6, #0 - bl sub_08027984 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08027870 -sub_08027870: @ 0x08027870 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r4, [r7, #0x54] - ldr r5, [r7, #0x68] - ldr r6, [r7, #0x50] - ldr r0, [r4, #0x74] - str r0, [r6, #0x74] - ldr r0, [r4, #0x78] - str r0, [r6, #0x78] - ldr r0, [r4, #0x74] - str r0, [r5, #0x74] - ldr r0, [r4, #0x78] - str r0, [r5, #0x78] - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x7f - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x83 - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r5, #0 - adds r1, #0x7f - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x83 - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r6, #0 - adds r1, #0x7f - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0xa0 - bls _080278C2 - movs r0, #0xe - b _080278CC -_080278C2: - ldrh r1, [r1] - movs r0, #0xa0 - subs r0, r0, r1 - asrs r0, r0, #3 - adds r0, #0xe -_080278CC: - strb r0, [r5, #0xe] - adds r1, r6, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0xa0 - bls _080278EA - adds r2, r4, #0 - adds r2, #0x7a - ldrh r1, [r2] - subs r1, #0xa0 - asrs r1, r1, #4 - movs r0, #0x12 - subs r0, r0, r1 - strb r0, [r6, #0xe] - b _080278FA -_080278EA: - ldrh r1, [r1] - movs r0, #0xa0 - subs r0, r0, r1 - asrs r0, r0, #2 - adds r0, #0x12 - strb r0, [r6, #0xe] - adds r2, r4, #0 - adds r2, #0x7a -_080278FA: - adds r0, r2, #0 - ldrh r1, [r0] - cmp r1, #0xa0 - bls _0802791A - adds r0, r1, #0 - subs r0, #0xa0 - asrs r0, r0, #2 - movs r1, #0xe - subs r1, r1, r0 - strb r1, [r4, #0xe] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - beq _08027934 - movs r0, #0 - b _08027932 -_0802791A: - cmp r1, #0x7f - bhi _08027928 - ldrh r1, [r0] - movs r0, #0xa0 - subs r0, r0, r1 - asrs r0, r0, #2 - b _08027930 -_08027928: - ldrh r1, [r2] - movs r0, #0xa0 - subs r0, r0, r1 - asrs r0, r0, #1 -_08027930: - adds r0, #0xe -_08027932: - strb r0, [r4, #0xe] -_08027934: - ldr r0, [r7, #0x2c] - str r0, [r5, #0x2c] - ldr r0, [r7, #0x30] - str r0, [r5, #0x30] - ldrb r1, [r5, #0xe] - lsls r1, r1, #8 - adds r0, r5, #0 - adds r0, #0x83 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0806F62C - ldr r0, [r5, #0x2c] - str r0, [r6, #0x2c] - ldr r0, [r5, #0x30] - str r0, [r6, #0x30] - ldrb r1, [r6, #0xe] - lsls r1, r1, #8 - adds r0, r6, #0 - adds r0, #0x83 - ldrb r2, [r0] - adds r0, r6, #0 - bl sub_0806F62C - ldr r0, [r6, #0x2c] - str r0, [r4, #0x2c] - ldr r0, [r6, #0x30] - str r0, [r4, #0x30] - ldrb r1, [r4, #0xe] - lsls r1, r1, #8 - adds r0, r4, #0 - adds r0, #0x83 - ldrb r2, [r0] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r7, #0 - bl sub_08027984 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08027984 -sub_08027984: @ 0x08027984 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - ldr r5, [r4, #0x68] - ldr r6, [r4, #0x50] - ldrb r2, [r1, #0xa] - bl sub_080279AC - ldrb r2, [r5, #0xa] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080279AC - ldrb r2, [r6, #0xa] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080279AC - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080279AC -sub_080279AC: @ 0x080279AC - push {r4, r5, r6, lr} - mov ip, r1 - movs r3, #4 - subs r3, r3, r2 - ldrh r1, [r1, #0x2e] - ldrh r4, [r0, #0x2e] - subs r1, r1, r4 - mov r6, ip - adds r6, #0x62 - strb r1, [r6] - mov r2, ip - ldrh r1, [r2, #0x32] - ldrh r2, [r0, #0x32] - adds r0, r2, r3 - subs r1, r1, r0 - mov r5, ip - adds r5, #0x63 - strb r1, [r5] - mov r0, ip - strh r4, [r0, #0x2e] - adds r2, r2, r3 - strh r2, [r0, #0x32] - ldr r1, [r0, #0x48] - ldrb r0, [r6] - strb r0, [r1] - mov r2, ip - ldr r1, [r2, #0x48] - ldrb r0, [r5] - strb r0, [r1, #1] - pop {r4, r5, r6, pc} - - thumb_func_start sub_080279E8 -sub_080279E8: @ 0x080279E8 - push {r4, lr} - sub sp, #4 - adds r2, r0, #0 - ldr r4, [r2, #0x54] - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0x80 - bne _08027A20 - adds r0, r2, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r0, #0xe - ldr r0, [r0] - ldrb r0, [r0, #5] - subs r1, r1, r0 - cmp r1, #0x80 - bne _08027A58 - adds r0, r2, #0 - adds r0, #0x82 - ldrb r1, [r0] - movs r0, #1 - str r0, [sp] - adds r0, r2, #0 - movs r2, #0xa0 - movs r3, #0x20 - bl sub_08027B98 - b _08027A58 -_08027A20: - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r3, r0, #0 - cmp r1, #0xa0 - bls _08027A30 - subs r0, r1, #4 - b _08027A32 -_08027A30: - movs r0, #0xa0 -_08027A32: - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r1, r0, #0 - cmp r2, #0xa0 - bls _08027A44 - subs r0, r2, #4 - b _08027A46 -_08027A44: - movs r0, #0xa0 -_08027A46: - strh r0, [r1] - ldrh r0, [r3] - cmp r0, #0xa0 - bne _08027A58 - ldrh r0, [r1] - cmp r0, #0xa0 - bne _08027A58 - movs r0, #1 - b _08027A5A -_08027A58: - movs r0, #0 -_08027A5A: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08027A60 -sub_08027A60: @ 0x08027A60 - push {lr} - adds r2, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08027A78 - ldr r0, [r2, #0x74] - movs r1, #0x80 - lsls r1, r1, #7 - b _08027A7C -_08027A78: - ldr r0, [r2, #0x74] - ldr r1, _08027AA0 @ =0xFFFFC000 -_08027A7C: - adds r0, r0, r1 - str r0, [r2, #0x74] - adds r3, r2, #0 - adds r3, #0x7c - ldrb r0, [r3] - adds r2, r0, #1 - strb r2, [r3] - movs r0, #0x7f - ands r0, r2 - cmp r0, #0x28 - bne _08027A9C - movs r1, #0x80 - movs r0, #0x80 - ands r2, r0 - eors r2, r1 - strb r2, [r3] -_08027A9C: - pop {pc} - .align 2, 0 -_08027AA0: .4byte 0xFFFFC000 - - thumb_func_start sub_08027AA4 -sub_08027AA4: @ 0x08027AA4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08027B94 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - beq _08027AC2 - cmp r0, #0x1b - beq _08027B44 - b _08027B94 -_08027AC2: - movs r0, #0x84 - bl sub_080A3268 - ldrb r3, [r5, #0xb] - adds r0, r5, #0 - movs r1, #0x49 - movs r2, #9 - bl sub_080A2988 - ldr r0, _08027B3C @ =0x00000155 - bl sub_080A3268 - adds r0, r5, #0 - adds r0, #0x84 - ldr r4, [r0] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #3 - strb r0, [r1] - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldrb r0, [r4, #6] - movs r1, #3 - bl __divsi3 - adds r1, r0, #0 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x15 - ldrb r2, [r4, #5] - cmp r0, r2 - beq _08027B06 - lsls r0, r1, #3 - strb r0, [r4, #5] -_08027B06: - movs r0, #0xb4 - str r0, [r4, #8] - movs r0, #5 - ldrsb r0, [r4, r0] - cmp r0, #0 - bge _08027B94 - movs r0, #0x40 - strb r0, [r4, #1] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0 - strb r0, [r1] - ldrb r0, [r5, #0xd] - cmp r0, #2 - bne _08027B2A - adds r0, r5, #0 - bl sub_08027BBC -_08027B2A: - adds r0, r5, #0 - bl sub_08027D20 - ldr r0, _08027B40 @ =0x00000127 - bl sub_080A3268 -_08027B36: - movs r0, #1 - b _08027B96 - .align 2, 0 -_08027B3C: .4byte 0x00000155 -_08027B40: .4byte 0x00000127 -_08027B44: - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] - ldr r0, [r5, #0x4c] - ldrb r0, [r0, #0xa] - adds r0, #1 - cmp r0, #2 - beq _08027B74 - cmp r0, #2 - bgt _08027B60 - cmp r0, #1 - beq _08027B84 - b _08027B36 -_08027B60: - cmp r0, #3 - bne _08027B36 - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0x1a - strb r0, [r1] - adds r1, #4 - movs r0, #0xe0 - lsls r0, r0, #1 - b _08027B90 -_08027B74: - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0x14 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - b _08027B90 -_08027B84: - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0x10 - strb r0, [r1] - adds r1, #4 - adds r0, #0xf0 -_08027B90: - strh r0, [r1] - b _08027B36 -_08027B94: - movs r0, #0 -_08027B96: - pop {r4, r5, pc} - - thumb_func_start sub_08027B98 -sub_08027B98: @ 0x08027B98 - push {r4, lr} - mov ip, r0 - ldr r4, [sp, #8] - adds r0, #0x82 - strb r1, [r0] - subs r0, #1 - strb r2, [r0] - subs r0, #1 - strb r3, [r0] - cmp r4, #0xff - beq _08027BB4 - mov r0, ip - strb r4, [r0, #0xe] - b _08027BBA -_08027BB4: - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xe] -_08027BBA: - pop {r4, pc} - - thumb_func_start sub_08027BBC -sub_08027BBC: @ 0x08027BBC - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r4, #0 - movs r0, #0xa - strb r0, [r6, #0xd] - adds r5, r6, #0 - adds r5, #0x84 - ldr r0, [r5] - strb r4, [r0, #1] - adds r0, r6, #0 - movs r1, #7 - movs r2, #1 - bl sub_080276F4 - ldr r0, [r6, #0x54] - adds r0, #0x7d - strb r4, [r0] - movs r3, #0 - strh r4, [r6, #0x24] - ldr r0, [r5] - strb r3, [r0, #3] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r0, [r5] - ldrh r0, [r0, #0xe] - cmp r1, r0 - ble _08027C0A - movs r0, #0x18 - strb r0, [r6, #0x15] - ldr r2, [r6, #0x54] - ldr r1, [r6, #0x50] - ldr r0, [r6, #0x68] - adds r0, #0x85 - strb r3, [r0] - adds r1, #0x85 - strb r3, [r1] - adds r2, #0x85 - strb r3, [r2] - b _08027C22 -_08027C0A: - movs r0, #8 - strb r0, [r6, #0x15] - ldr r3, [r6, #0x54] - ldr r2, [r6, #0x50] - ldr r0, [r6, #0x68] - adds r0, #0x85 - movs r1, #1 - strb r1, [r0] - adds r2, #0x85 - strb r1, [r2] - adds r3, #0x85 - strb r1, [r3] -_08027C22: - ldrb r0, [r6, #0x15] - lsrs r0, r0, #2 - strb r0, [r6, #0x14] - ldr r0, _08027C44 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r6, r2] - movs r2, #0x32 - ldrsh r0, [r0, r2] - cmp r1, r0 - beq _08027C52 - cmp r1, r0 - ble _08027C48 - adds r0, r6, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #0 - b _08027C50 - .align 2, 0 -_08027C44: .4byte gLinkEntity -_08027C48: - adds r0, r6, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #0x10 -_08027C50: - strb r0, [r1, #0xc] -_08027C52: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08027C54 -sub_08027C54: @ 0x08027C54 - push {lr} - ldr r2, _08027C74 @ =gUnk_080CC2DC - adds r1, r0, #0 - adds r1, #0x84 - ldr r1, [r1] - ldrb r1, [r1, #4] - adds r1, r1, r2 - ldr r0, [r0, #0x54] - adds r0, #0x45 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bhi _08027C78 - movs r0, #0 - b _08027C7A - .align 2, 0 -_08027C74: .4byte gUnk_080CC2DC -_08027C78: - movs r0, #1 -_08027C7A: - pop {pc} - - thumb_func_start sub_08027C7C -sub_08027C7C: @ 0x08027C7C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [r4, #0x54] - bl sub_08027C9C - ldr r0, [r4, #0x68] - adds r1, r5, #0 - bl sub_08027C9C - ldr r0, [r4, #0x50] - adds r1, r5, #0 - bl sub_08027C9C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08027C9C -sub_08027C9C: @ 0x08027C9C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - bne _08027D1E - adds r0, r5, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08027D1E - adds r0, r5, #0 - adds r0, #0x62 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, [r5, #0x48] - ldrb r1, [r1, #6] - subs r0, r0, r1 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - bl sub_08000E50 - ldr r1, [r5, #0x48] - ldrb r1, [r1, #6] - lsls r1, r1, #1 - bl __modsi3 - ldrh r1, [r4, #0x2e] - adds r1, r1, r0 - strh r1, [r4, #0x2e] - adds r0, r5, #0 - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldr r1, [r5, #0x48] - ldrb r1, [r1, #7] - subs r0, r0, r1 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - bl sub_08000E50 - ldr r1, [r5, #0x48] - ldrb r1, [r1, #7] - lsls r1, r1, #1 - bl __modsi3 - ldrh r1, [r4, #0x32] - adds r1, r1, r0 - strh r1, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_08027D1E: - pop {r4, r5, pc} - - thumb_func_start sub_08027D20 -sub_08027D20: @ 0x08027D20 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x15 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r4, r0, #0 - cmp r4, #0 - beq _08027D66 - movs r0, #0xc9 - strh r0, [r4, #0x12] - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #8 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x3e - bl sub_080ADF80 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08027D5E - adds r0, r4, #0 - movs r1, #0x2b - bl sub_0801D040 - b _08027D66 -_08027D5E: - adds r0, r4, #0 - movs r1, #0x2c - bl sub_0801D040 -_08027D66: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08027D6C -sub_08027D6C: @ 0x08027D6C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08027D88 @ =gUnk_080CC6FC - 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 -_08027D88: .4byte gUnk_080CC6FC - - thumb_func_start sub_08027D8C -sub_08027D8C: @ 0x08027D8C - push {lr} - ldr r2, _08027DA0 @ =gUnk_080CC714 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08027DA0: .4byte gUnk_080CC714 - - thumb_func_start sub_08027DA4 -sub_08027DA4: @ 0x08027DA4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x3f - ldrb r0, [r2] - cmp r0, #1 - bne _08027DC4 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x8c - strb r0, [r2] - b _08027E0E -_08027DC4: - ldrb r0, [r4, #0xc] - cmp r0, #7 - bne _08027DD2 - adds r0, r4, #0 - bl sub_0802810C - b _08027E0E -_08027DD2: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r2, [r0] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08027E0E - movs r1, #0x7f - ands r1, r2 - cmp r1, #0 - bne _08027E0E - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x5f - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #0xfc - ands r0, r1 - strb r0, [r2] - ldr r0, _08027E38 @ =gLinkEntity - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - adds r1, r4, #0 - adds r1, #0x83 - strb r0, [r1] -_08027E0E: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08027E1C - movs r0, #0x20 - strb r0, [r4, #0xe] -_08027E1C: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08027E2E - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08027E2E: - ldr r1, _08027E3C @ =gUnk_080CC6FC - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08027E38: .4byte gLinkEntity -_08027E3C: .4byte gUnk_080CC6FC - - thumb_func_start sub_08027E40 -sub_08027E40: @ 0x08027E40 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #2 - bne _08027E62 - adds r5, r4, #0 - adds r5, #0x80 - ldrb r0, [r5] - cmp r0, #0xff - beq _08027E62 - adds r0, r4, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r0, [r5] - bl sub_08028224 -_08027E62: - adds r0, r4, #0 - bl sub_0804A7D4 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_139 -nullsub_139: @ 0x08027E6C - bx lr - .align 2, 0 - - thumb_func_start sub_08027E70 -sub_08027E70: @ 0x08027E70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - ldrb r3, [r4, #0xa] - cmp r3, #1 - beq _08027EA6 - cmp r3, #1 - bgt _08027E88 - cmp r3, #0 - beq _08027E8E - b _08027EE4 -_08027E88: - cmp r3, #2 - beq _08027EC4 - b _08027EE4 -_08027E8E: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strb r3, [r4, #0xe] - b _08027EE4 -_08027EA6: - movs r2, #1 - strb r3, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _08027EE4 -_08027EC4: - movs r3, #0 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r3, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x3f - strb r2, [r0] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08027EE4: - movs r0, #0 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - strb r0, [r4, #0x14] - adds r1, #1 - strb r0, [r1] - subs r1, #3 - movs r0, #0xff - strb r0, [r1] - pop {r4, pc} - - thumb_func_start sub_08027EFC -sub_08027EFC: @ 0x08027EFC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #1 - beq _08027F7C - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08027F68 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08027F32 - bl sub_08000E50 - movs r1, #0x30 - ands r1, r0 - cmp r1, #0 - beq _08027F32 - adds r0, r4, #0 - bl sub_08049EE4 - b _08027F38 -_08027F32: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] -_08027F38: - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08027F5A - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - movs r0, #8 - strb r0, [r4, #0xe] -_08027F5A: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - b _08027F7C -_08027F68: - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08027F7C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_12 -nullsub_12: @ 0x08027F80 - bx lr - .align 2, 0 - - thumb_func_start sub_08027F84 -sub_08027F84: @ 0x08027F84 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08027FB0 - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #9 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A29BC -_08027FB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08027FB4 -sub_08027FB4: @ 0x08027FB4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08027FD6 - movs r1, #1 - movs r0, #1 - strb r0, [r2, #0xc] - strb r0, [r2, #0xe] - adds r3, r2, #0 - adds r3, #0x3b - ldrb r0, [r3] - orrs r0, r1 - strb r0, [r3] -_08027FD6: - adds r0, r2, #0 - bl sub_08004274 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08027FE0 -sub_08027FE0: @ 0x08027FE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08028028 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - movs r2, #8 - movs r0, #8 - strb r0, [r4, #0xe] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x41 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08028028: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802802C -sub_0802802C: @ 0x0802802C - 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 _0802805A - movs r2, #0 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - strb r0, [r4, #0x18] - strb r2, [r4, #0x15] - strb r2, [r4, #0xe] - adds r0, r4, #0 - bl sub_080A29BC -_0802805A: - pop {r4, pc} - - thumb_func_start sub_0802805C -sub_0802805C: @ 0x0802805C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #2 - bl sub_08004276 - bl sub_0807953C - cmp r0, #0 - beq _0802807E - bl sub_08000E50 - ldrb r2, [r5, #0xf] - adds r2, #1 - movs r1, #1 - ands r1, r0 - adds r2, r2, r1 - strb r2, [r5, #0xf] -_0802807E: - ldrb r0, [r5, #0xf] - cmp r0, #0x18 - bhi _0802808E - ldr r0, _08028098 @ =gUnk_02002A40 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #0 - bne _0802809C -_0802808E: - adds r0, r5, #0 - bl sub_0802810C - b _08028102 - .align 2, 0 -_08028098: .4byte gUnk_02002A40 -_0802809C: - bl sub_08077B2C - ldr r2, _08028104 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r4, _08028108 @ =gLinkEntity - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrh r0, [r5, #0x12] - ldrb r1, [r5, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r4, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r0, [r0, #1] - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080280F0 - adds r0, r5, #0 - bl sub_080281A0 -_080280F0: - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08028102 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_08028102: - pop {r4, r5, pc} - .align 2, 0 -_08028104: .4byte gUnk_03003F80 -_08028108: .4byte gLinkEntity - - thumb_func_start sub_0802810C -sub_0802810C: @ 0x0802810C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08028198 @ =gUnk_03003F80 - movs r1, #0 - movs r0, #0x41 - strb r0, [r2, #2] - strb r1, [r2, #0xa] - ldr r0, [r2, #0x30] - subs r1, #0x11 - ands r0, r1 - str r0, [r2, #0x30] - ldr r0, _0802819C @ =gLinkEntity - mov ip, r0 - ldrb r0, [r0, #0x10] - movs r1, #0x80 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x10] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] - adds r1, #0x3d - movs r0, #0xc4 - strb r0, [r1] - movs r3, #0 - mov r2, ip - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - strb r0, [r2, #0x15] - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - mov r5, ip - adds r5, #0x29 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r5] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - mov r1, ip - adds r1, #0x63 - movs r0, #0 - ldrsb r0, [r1, r0] - mov r2, ip - strh r0, [r2, #0x36] - strb r3, [r1] - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x50 - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08028196 - movs r0, #0xee - strb r0, [r1] -_08028196: - pop {r4, r5, pc} - .align 2, 0 -_08028198: .4byte gUnk_03003F80 -_0802819C: .4byte gLinkEntity - - thumb_func_start sub_080281A0 -sub_080281A0: @ 0x080281A0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x19 - strb r0, [r4, #0xf] - movs r0, #0xe - bl sub_080281E0 - cmp r0, #0 - beq _080281BA - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0xe - b _080281CA -_080281BA: - movs r0, #0xd - bl sub_080281E0 - cmp r0, #0 - beq _080281D6 - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0xd -_080281CA: - strb r1, [r0] - movs r0, #0xaf - lsls r0, r0, #3 - bl sub_08056378 - b _080281DE -_080281D6: - movs r0, #1 - rsbs r0, r0, #0 - bl sub_080526A0 -_080281DE: - pop {r4, pc} - - thumb_func_start sub_080281E0 -sub_080281E0: @ 0x080281E0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r4, #0 - bl GetInventoryValue - cmp r0, #1 - bne _0802821A - ldr r6, _08028220 @ =gUnk_02002A40 - adds r5, r6, #0 - adds r5, #0xb4 - ldrb r0, [r5] - bl sub_080544B4 - cmp r0, #0 - beq _08028200 - strb r4, [r5] -_08028200: - adds r5, r6, #0 - adds r5, #0xb5 - ldrb r0, [r5] - bl sub_080544B4 - cmp r0, #0 - beq _08028210 - strb r4, [r5] -_08028210: - adds r0, r7, #0 - movs r1, #0 - bl sub_0807CAA0 - movs r4, #1 -_0802821A: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08028220: .4byte gUnk_02002A40 - - thumb_func_start sub_08028224 -sub_08028224: @ 0x08028224 - push {lr} - movs r1, #0 - movs r2, #1 - bl sub_080A7C18 - ldr r0, _08028238 @ =0x00000579 - bl sub_08056378 - pop {pc} - .align 2, 0 -_08028238: .4byte 0x00000579 - - thumb_func_start sub_0802823C -sub_0802823C: @ 0x0802823C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08028268 @ =gUnk_080CC790 - bl sub_0800129E - movs r3, #0x20 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _08028266 - ldr r0, [r1, #4] - cmp r0, #0 - beq _08028266 - adds r0, r4, #0 - bl sub_0806FA24 -_08028266: - pop {r4, pc} - .align 2, 0 -_08028268: .4byte gUnk_080CC790 - - thumb_func_start sub_0802826C -sub_0802826C: @ 0x0802826C - push {lr} - ldr r2, _08028280 @ =gUnk_080CC7A8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08028280: .4byte gUnk_080CC7A8 - - thumb_func_start sub_08028284 -sub_08028284: @ 0x08028284 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08028298 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08028298: - ldr r1, _080282BC @ =gUnk_080CC790 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080282DE - ldrb r0, [r4, #0xc] - cmp r0, #4 - beq _080282C0 - adds r0, r4, #0 - bl sub_08028754 - b _080282DE - .align 2, 0 -_080282BC: .4byte gUnk_080CC790 -_080282C0: - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080282DE - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r1, #7 - movs r0, #0x16 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08028784 -_080282DE: - ldr r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x3d - ldrb r1, [r1] - adds r0, #0x3d - strb r1, [r0] - adds r0, r4, #0 - adds r0, #0x45 - ldrb r5, [r0] - cmp r5, #0 - bne _0802830C - movs r0, #0 - strh r5, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080287E0 - ldr r0, [r4, #0x54] - bl sub_0805E7BC - str r5, [r4, #0x54] -_0802830C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_13 -nullsub_13: @ 0x08028310 - bx lr - .align 2, 0 - - thumb_func_start sub_08028314 -sub_08028314: @ 0x08028314 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r1, #0 - movs r2, #1 - strb r2, [r4, #0xc] - strb r1, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x7b - strb r1, [r0] - adds r0, #5 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - subs r0, #7 - strb r1, [r0] - adds r0, #8 - strb r2, [r0] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802835E - ldrb r1, [r4, #0xb] - lsls r0, r1, #1 - strb r0, [r4, #0x14] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_080287E0 - b _08028368 -_0802835E: - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08028604 -_08028368: - movs r0, #3 - bl sub_080A7EE0 - cmp r0, #0 - beq _08028376 - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_08028376: - pop {r4, pc} - - thumb_func_start sub_08028378 -sub_08028378: @ 0x08028378 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _0802838A - subs r0, #1 - strb r0, [r1] -_0802838A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080283B8 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r2 - cmp r0, #0xf - bls _080283B0 - adds r0, r4, #0 - bl sub_08028728 - b _080283FC -_080283B0: - adds r0, r4, #0 - bl sub_08028604 - b _080283FC -_080283B8: - adds r0, r4, #0 - bl sub_080286CC - cmp r0, #0 - beq _080283CE - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_080283CE: - adds r0, r4, #0 - bl sub_080288A4 - cmp r0, #0 - beq _080283FC - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080287E0 -_080283FC: - ldrb r0, [r4, #0xf] - cmp r0, #0xb - bls _08028414 - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _08028418 - adds r0, r4, #0 - bl sub_08028754 - b _08028418 -_08028414: - adds r0, #1 - strb r0, [r4, #0xf] -_08028418: - adds r0, r4, #0 - bl sub_08028858 - pop {r4, pc} - - thumb_func_start sub_08028420 -sub_08028420: @ 0x08028420 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802844C - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x82 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08028604 - b _08028462 -_0802844C: - adds r0, r4, #0 - bl sub_080286CC - cmp r0, #0 - beq _08028462 - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_08028462: - ldrb r0, [r4, #0xf] - cmp r0, #0xb - bls _0802847A - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0802847E - adds r0, r4, #0 - bl sub_08028754 - b _0802847E -_0802847A: - adds r0, #1 - strb r0, [r4, #0xf] -_0802847E: - adds r0, r4, #0 - bl sub_08028858 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08028488 -sub_08028488: @ 0x08028488 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08028520 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #2 - beq _080284D2 - cmp r1, #2 - ble _080284F0 - cmp r1, #3 - beq _080284B4 - cmp r1, #4 - beq _080284E6 - b _080284F0 -_080284B4: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - movs r0, #0x8f - lsls r0, r0, #1 - bl sub_08004488 - b _0802850A -_080284D2: - strb r1, [r4, #0xc] - strh r2, [r4, #0x24] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x40 - b _08028508 -_080284E6: - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_080284F0: - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r3] - movs r0, #0x80 - strh r0, [r4, #0x24] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x22 -_08028508: - strb r1, [r4, #0xe] -_0802850A: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080287E0 -_08028520: - adds r0, r4, #0 - bl sub_08028858 - pop {r4, pc} - - thumb_func_start sub_08028528 -sub_08028528: @ 0x08028528 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r5, r0, #0 - cmp r5, #0 - bne _08028542 - strb r5, [r4, #0xf] - adds r0, r4, #0 - bl sub_08028728 - b _08028600 -_08028542: - adds r0, r4, #0 - bl sub_080288C0 - ldr r1, _08028590 @ =gUnk_080CC944 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #6] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #7] - strb r0, [r1, #7] - adds r0, r4, #0 - adds r0, #0x7a - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _08028594 - movs r0, #0 - strb r0, [r6] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x16 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08028784 - adds r1, r4, #0 - adds r1, #0x7b - b _080285EE - .align 2, 0 -_08028590: .4byte gUnk_080CC944 -_08028594: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x20 - bne _080285BC - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - adds r5, r0, #0 - ldrb r0, [r4, #0x15] - adds r1, r5, #0 - bl sub_08028828 - cmp r0, #0 - beq _080285BC - strb r5, [r4, #0x15] -_080285BC: - ldrb r1, [r4, #0xe] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _080285D6 - movs r0, #0xf0 - bl sub_08004488 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX -_080285D6: - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bne _080285EE - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] -_080285EE: - ldrb r0, [r1] - cmp r0, #0x20 - bls _080285FA - adds r0, r4, #0 - bl sub_080AEF88 -_080285FA: - adds r0, r4, #0 - bl sub_08004274 -_08028600: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08028604 -sub_08028604: @ 0x08028604 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #0 - strb r1, [r4, #0xf] - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #1 - bne _080286B0 - bl sub_08000E50 - ldr r2, _08028650 @ =gUnk_080CC7BC - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _08028658 - bl sub_08000E50 - ldr r2, _08028654 @ =gUnk_080CC7D0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r0, #0x18 - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - b _080286B8 - .align 2, 0 -_08028650: .4byte gUnk_080CC7BC -_08028654: .4byte gUnk_080CC7D0 -_08028658: - adds r0, r4, #0 - bl sub_08049EE4 - adds r5, r0, #0 - adds r6, r4, #0 - adds r6, #0x83 - ldrb r0, [r6] - cmp r0, #0 - bne _08028684 - bl sub_08000E50 - ldr r2, _08028680 @ =gUnk_080CC7C0 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r5, r5, r0 - b _080286A2 - .align 2, 0 -_08028680: .4byte gUnk_080CC7C0 -_08028684: - bl sub_08000E50 - ldr r2, _080286AC @ =gUnk_080CC7C0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r5, r5, r0 - ldrb r0, [r4, #0xe] - adds r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r6] - subs r0, #1 - strb r0, [r6] -_080286A2: - adds r0, r5, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - b _080286B8 - .align 2, 0 -_080286AC: .4byte gUnk_080CC7C0 -_080286B0: - movs r0, #0xc - strb r0, [r4, #0xe] - strh r1, [r4, #0x24] - ldrb r0, [r4, #0x15] -_080286B8: - lsrs r5, r0, #2 - ldrb r0, [r4, #0x14] - cmp r5, r0 - beq _080286C8 - strb r5, [r4, #0x14] - adds r0, r4, #0 - bl sub_080287E0 -_080286C8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080286CC -sub_080286CC: @ 0x080286CC - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _08028724 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _08028724 - adds r0, r5, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #2 - bne _080286FC - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x30 - bl sub_0806FC80 - cmp r0, #0 - bne _08028720 -_080286FC: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_0806FC80 - cmp r0, #0 - beq _08028724 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - ldrb r5, [r5, #0x14] - cmp r0, r5 - bne _08028724 -_08028720: - movs r0, #1 - b _08028726 -_08028724: - movs r0, #0 -_08028726: - pop {r4, r5, pc} - - thumb_func_start sub_08028728 -sub_08028728: @ 0x08028728 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080287B4 - adds r4, #0x82 - movs r0, #2 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08028754 -sub_08028754: @ 0x08028754 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - movs r2, #0 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - adds r0, r4, #0 - bl sub_080287B4 - adds r4, #0x82 - movs r0, #3 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08028784 -sub_08028784: @ 0x08028784 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - movs r1, #0 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x83 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080287B4 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - strb r0, [r4, #0xe] - adds r4, #0x82 - movs r0, #4 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_080287B4 -sub_080287B4: @ 0x080287B4 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x20 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - subs r0, #5 - strb r1, [r0] - movs r0, #0 - strh r1, [r2, #0x24] - adds r1, r2, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r2, #0 - bl sub_080287E0 - pop {pc} - - thumb_func_start sub_080287E0 -sub_080287E0: @ 0x080287E0 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0x14] - lsrs r2, r0, #1 - adds r0, r3, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #4 - bhi _0802881E - lsls r0, r0, #2 - ldr r1, _080287FC @ =_08028800 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080287FC: .4byte _08028800 -_08028800: @ jump table - .4byte _0802881E @ case 0 - .4byte _08028814 @ case 1 - .4byte _0802881C @ case 2 - .4byte _08028818 @ case 3 - .4byte _08028814 @ case 4 -_08028814: - adds r2, #4 - b _0802881E -_08028818: - adds r2, #8 - b _0802881E -_0802881C: - adds r2, #0xc -_0802881E: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_08028828 -sub_08028828: @ 0x08028828 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r0, r3, #4 - movs r2, #0x18 - ands r0, r2 - adds r1, r4, #4 - ands r1, r2 - cmp r0, r1 - bne _08028852 - adds r0, r3, #5 - movs r1, #7 - ands r0, r1 - adds r2, r4, #5 - ands r2, r1 - cmp r0, #2 - bhi _08028852 - cmp r2, #2 - bhi _08028852 - movs r0, #1 - b _08028854 -_08028852: - movs r0, #0 -_08028854: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08028858 -sub_08028858: @ 0x08028858 - push {r4, lr} - adds r4, r0, #0 - bl sub_080288C0 - ldr r1, _080288A0 @ =gUnk_080CC944 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldr r1, [r4, #0x48] - ldrb r0, [r2] - strb r0, [r1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #1] - strb r0, [r1, #1] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #6] - strb r0, [r1, #6] - ldr r1, [r4, #0x48] - ldrb r0, [r2, #7] - strb r0, [r1, #7] - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _08028890 - strh r0, [r4, #0x24] -_08028890: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_080288A0: .4byte gUnk_080CC944 - - thumb_func_start sub_080288A4 -sub_080288A4: @ 0x080288A4 - ldr r2, _080288BC @ =gUnk_080CC7D8 - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r0, #0x2a] - ldrh r1, [r1] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_080288BC: .4byte gUnk_080CC7D8 - - thumb_func_start sub_080288C0 -sub_080288C0: @ 0x080288C0 - push {lr} - mov ip, r0 - ldr r2, [r0, #0x54] - cmp r2, #0 - beq _08028908 - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028908 - adds r0, r2, #0 - adds r0, #0x3e - ldrb r0, [r0] - mov r1, ip - adds r1, #0x3e - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3d - ldrb r0, [r0] - rsbs r0, r0, #0 - subs r1, #1 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x46 - ldrh r0, [r0] - adds r1, #9 - movs r3, #0 - strh r0, [r1] - adds r2, #0x42 - ldrb r1, [r2] - mov r0, ip - adds r0, #0x42 - strb r1, [r0] - strb r3, [r2] -_08028908: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802890C -sub_0802890C: @ 0x0802890C - push {lr} - ldr r1, _08028918 @ =gUnk_080CC9C8 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08028918: .4byte gUnk_080CC9C8 - - thumb_func_start sub_0802891C -sub_0802891C: @ 0x0802891C - push {lr} - ldr r2, _08028930 @ =gUnk_080CC9E0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08028930: .4byte gUnk_080CC9E0 - - thumb_func_start sub_08028934 -sub_08028934: @ 0x08028934 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #1 - bne _08028988 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x42 - bne _08028988 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x28 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #4 - bl sub_080290E0 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08028982 - ldrh r0, [r1, #0x36] - subs r0, #8 - strh r0, [r1, #0x36] -_08028982: - ldr r0, _0802898C @ =0x000001BB - bl sub_08004488 -_08028988: - pop {r4, pc} - .align 2, 0 -_0802898C: .4byte 0x000001BB - - thumb_func_start nullsub_140 -nullsub_140: @ 0x08028990 - bx lr - .align 2, 0 - - thumb_func_start sub_08028994 -sub_08028994: @ 0x08028994 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0 - strb r0, [r4, #0xf] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x78 - movs r5, #0 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - strb r5, [r4, #0x14] - movs r0, #0x10 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08028E9C - ldr r0, [r4, #0x7c] - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080289D4 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CBE4 - cmp r0, #0 - beq _080289FC -_080289D4: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb1 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0802925C - adds r0, r4, #0 - movs r1, #0 - bl sub_080290E0 - b _08028A42 -_080289FC: - strb r5, [r4, #0xe] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08028A44 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x76 - strh r1, [r0] - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - subs r1, #0x34 - movs r0, #0x41 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08028FFC -_08028A42: - pop {r4, r5, pc} - .align 2, 0 -_08028A44: .4byte gUnk_03000BF0 - - thumb_func_start sub_08028A48 -sub_08028A48: @ 0x08028A48 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08028A5A - subs r0, #1 - strb r0, [r4, #0xe] - b _08028A72 -_08028A5A: - adds r0, r4, #0 - movs r1, #0 - bl sub_08028F98 - cmp r0, #0 - beq _08028A72 - adds r0, r4, #0 - bl sub_08029078 - strb r5, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xf] -_08028A72: - pop {r4, r5, pc} - - thumb_func_start sub_08028A74 -sub_08028A74: @ 0x08028A74 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xd] - cmp r0, #4 - bls _08028A84 - b _08028BA6 -_08028A84: - lsls r0, r0, #2 - ldr r1, _08028A90 @ =_08028A94 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08028A90: .4byte _08028A94 -_08028A94: @ jump table - .4byte _08028AA8 @ case 0 - .4byte _08028ACA @ case 1 - .4byte _08028B1A @ case 2 - .4byte _08028B54 @ case 3 - .4byte _08028B76 @ case 4 -_08028AA8: - movs r6, #1 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028BA6 - strb r6, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08028FDC - b _08028B6C -_08028ACA: - movs r6, #1 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08028AF6 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_08028FDC - adds r0, r4, #0 - movs r1, #2 - bl sub_080290E0 - b _08028BA6 -_08028AF6: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r2 - cmp r0, #0 - bne _08028BA6 - adds r0, r4, #0 - bl sub_08028FDC - cmp r0, #0 - beq _08028B14 - adds r0, r4, #0 - movs r1, #1 - bl sub_080290E0 -_08028B14: - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08028BA6 -_08028B1A: - movs r6, #1 - adds r0, r4, #0 - bl sub_080290FC - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08028BA6 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08028BA6 - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldrb r1, [r5] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5] - movs r0, #3 - strb r0, [r4, #0xd] - b _08028BA6 -_08028B54: - movs r6, #2 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028BA6 - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x50 - strb r0, [r4, #0xe] -_08028B6C: - adds r0, r4, #0 - movs r1, #1 - bl sub_080290E0 - b _08028BA6 -_08028B76: - movs r6, #2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08028BA6 - adds r0, r4, #0 - movs r1, #0 - bl sub_08028F98 - adds r5, r0, #0 - cmp r5, #0 - beq _08028BB4 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08028FDC - b _08028BC2 -_08028BA6: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08028F98 - adds r5, r0, #0 - cmp r5, #0 - bne _08028BC2 -_08028BB4: - adds r0, r4, #0 - bl sub_08028FFC - strb r5, [r4, #0xd] - movs r0, #0x50 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] -_08028BC2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08028BC4 -sub_08028BC4: @ 0x08028BC4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08028BD4 - cmp r0, #1 - beq _08028C14 - b _08028C76 -_08028BD4: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08028C0E - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028C76 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_08028FDC - adds r0, r4, #0 - movs r1, #5 - bl sub_080290E0 - 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] - b _08028C76 -_08028C0E: - subs r0, #1 - strb r0, [r4, #0xe] - b _08028C76 -_08028C14: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08028C76 - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #5 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080290E0 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC - adds r2, r0, #0 - cmp r2, #0 - beq _08028C66 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, #0x36] - subs r0, #0xc - strh r0, [r2, #0x36] - adds r0, r2, #0 - movs r1, #2 - bl sub_0805E3A0 -_08028C66: - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - bl sub_0807CCC8 - adds r0, r4, #0 - bl sub_0802925C -_08028C76: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0800445C - pop {r4, pc} - - thumb_func_start sub_08028C84 -sub_08028C84: @ 0x08028C84 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08028CD2 - movs r0, #0x30 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - adds r5, r0, #0 - cmp r5, #0 - beq _08028CB4 - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _08028CD2 - adds r0, r4, #0 - bl sub_0804AA1C - b _08028CD2 -_08028CB4: - adds r0, r4, #0 - bl sub_08028FDC - adds r1, r4, #0 - adds r1, #0x80 - cmp r0, #0 - bne _08028CC8 - ldrb r0, [r1] - cmp r0, #0 - beq _08028CD2 -_08028CC8: - strb r5, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080290E0 -_08028CD2: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_08028F0C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08028CE8 -sub_08028CE8: @ 0x08028CE8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x7c] - ldr r0, _08028D30 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08028DCC - adds r0, r5, #0 - bl sub_0802915C - cmp r0, #0 - beq _08028DCC - bl sub_08056338 - cmp r0, #0 - bne _08028DCC - ldr r0, _08028D34 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r1, [r6, #2] - ldrh r0, [r0] - cmp r1, r0 - bhi _08028DC0 - adds r0, r5, #0 - bl sub_080291DC - cmp r0, #0 - beq _08028D3C - ldr r0, _08028D38 @ =0x00002904 - bl sub_08056378 - movs r0, #0 - bl sub_08078A90 - b _08028DCC - .align 2, 0 -_08028D30: .4byte gUnk_02000050 -_08028D34: .4byte gUnk_02002A40 -_08028D38: .4byte 0x00002904 -_08028D3C: - ldrh r0, [r6, #2] - rsbs r0, r0, #0 - bl sub_080526CC - ldrb r0, [r6] - lsrs r7, r0, #2 - cmp r7, #1 - beq _08028D9C - cmp r7, #1 - bgt _08028D56 - cmp r7, #0 - beq _08028D5C - b _08028DCC -_08028D56: - cmp r7, #2 - beq _08028DAA - b _08028DCC -_08028D5C: - ldrb r1, [r6, #9] - cmp r1, #0xff - bne _08028D70 - ldr r4, _08028D98 @ =gUnk_080CC9C0 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] -_08028D70: - ldrb r0, [r6, #8] - movs r2, #0 - bl sub_080A7C00 - movs r0, #6 - strb r0, [r5, #0xc] - movs r0, #4 - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x81 - strb r7, [r0] - adds r0, r5, #0 - movs r1, #3 - bl sub_080290E0 - movs r0, #0x87 - bl sub_0807CCB4 - b _08028DE2 - .align 2, 0 -_08028D98: .4byte gUnk_080CC9C0 -_08028D9C: - ldrb r0, [r6, #8] - ldrb r1, [r6, #9] - movs r2, #0 - bl sub_080A7C00 - movs r0, #4 - b _08028DB6 -_08028DAA: - ldrb r0, [r6, #8] - ldrb r1, [r6, #9] - movs r2, #0 - bl sub_080A7C00 - movs r0, #8 -_08028DB6: - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_0802922C - b _08028DE2 -_08028DC0: - ldr r0, _08028DE4 @ =0x00002903 - bl sub_08056378 - movs r0, #0 - bl sub_08078A90 -_08028DCC: - adds r0, r5, #0 - bl sub_0800445C - movs r0, #4 - strb r0, [r5, #0xc] - movs r0, #0x30 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_080290E0 -_08028DE2: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08028DE4: .4byte 0x00002903 - - thumb_func_start sub_08028DE8 -sub_08028DE8: @ 0x08028DE8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08028E08 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - bne _08028E0C - adds r4, #0x81 - ldrb r0, [r4] - cmp r0, #0 - bne _08028E3A - movs r0, #1 - bl sub_08078A90 - movs r0, #1 - strb r0, [r4] - b _08028E3A - .align 2, 0 -_08028E08: .4byte gLinkEntity -_08028E0C: - ldr r0, _08028E3C @ =0x00002902 - bl sub_08056378 - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08028EDC - movs r0, #0 - bl sub_08078A90 - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_08004274 -_08028E3A: - pop {r4, pc} - .align 2, 0 -_08028E3C: .4byte 0x00002902 - - thumb_func_start sub_08028E40 -sub_08028E40: @ 0x08028E40 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08028E80 @ =gUnk_02000050 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08028E72 - ldr r5, [r4, #0x7c] - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xe] - ldrh r0, [r5, #0xa] - bl sub_0807CBD0 - cmp r0, #0 - bne _08028E6C - ldrh r0, [r5, #0xa] - bl sub_0807CCB4 -_08028E6C: - movs r0, #0 - bl sub_08078A90 -_08028E72: - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_08028E80: .4byte gUnk_02000050 - - thumb_func_start sub_08028E84 -sub_08028E84: @ 0x08028E84 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08028E98 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] -_08028E98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08028E9C -sub_08028E9C: @ 0x08028E9C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r6, _08028ED8 @ =gUnk_080CC954 - adds r4, r1, r6 - adds r0, r4, #0 - bl sub_08029198 - cmp r0, #0 - beq _08028ECA - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08028ECA - ldrh r1, [r4, #0xa] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r4, r0, r6 -_08028ECA: - str r4, [r5, #0x7c] - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #0 - strb r0, [r1] - pop {r4, r5, r6, pc} - .align 2, 0 -_08028ED8: .4byte gUnk_080CC954 - - thumb_func_start sub_08028EDC -sub_08028EDC: @ 0x08028EDC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x7c] - adds r0, r4, #0 - bl sub_08029198 - cmp r0, #0 - beq _08028F04 - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08028F04 - ldrh r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08028F08 @ =gUnk_080CC954 - adds r4, r1, r0 - str r4, [r5, #0x7c] -_08028F04: - pop {r4, r5, pc} - .align 2, 0 -_08028F08: .4byte gUnk_080CC954 - - thumb_func_start sub_08028F0C -sub_08028F0C: @ 0x08028F0C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _08028F2C - movs r1, #0 - movs r0, #8 - strb r0, [r5, #0xc] - strb r1, [r2] - adds r0, r5, #0 - bl sub_0806F118 - b _08028F90 -_08028F2C: - cmp r0, #0 - beq _08028F90 - ldr r6, [r5, #0x7c] - movs r4, #0 - strb r4, [r2] - adds r0, r5, #0 - bl sub_0804AA1C - adds r0, r5, #0 - bl sub_0806EDC4 - lsls r0, r0, #3 - strb r0, [r5, #0x15] - adds r0, r5, #0 - movs r1, #3 - bl sub_080290E0 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - movs r0, #0x20 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - adds r0, r6, #0 - bl sub_08029198 - cmp r0, #0 - beq _08028F6A - ldrh r4, [r6, #6] - b _08028F84 -_08028F6A: - ldrb r1, [r6] - movs r0, #0xfc - ands r0, r1 - cmp r0, #0xc - beq _08028F78 - movs r0, #5 - b _08028F7A -_08028F78: - movs r0, #7 -_08028F7A: - strb r0, [r5, #0xc] - ldrh r4, [r6, #4] - movs r0, #1 - bl sub_08078A90 -_08028F84: - adds r0, r4, #0 - bl sub_08056378 - ldr r1, _08028F94 @ =gUnk_02000050 - ldrh r0, [r6, #2] - str r0, [r1, #0x10] -_08028F90: - pop {r4, r5, r6, pc} - .align 2, 0 -_08028F94: .4byte gUnk_02000050 - - thumb_func_start sub_08028F98 -sub_08028F98: @ 0x08028F98 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _08028FD4 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x28 - movs r3, #0x28 - bl sub_080041A0 - cmp r0, #0 - bne _08028FD4 - cmp r5, #2 - beq _08028FD8 - movs r3, #0x50 - cmp r5, #0 - beq _08028FC6 - movs r3, #0x58 -_08028FC6: - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r3, #0 - bl sub_080041A0 - cmp r0, #0 - bne _08028FD8 -_08028FD4: - movs r0, #0 - b _08028FDA -_08028FD8: - movs r0, #1 -_08028FDA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08028FDC -sub_08028FDC: @ 0x08028FDC - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #4 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08028FF8 - strb r1, [r4, #0x15] - movs r0, #1 - b _08028FFA -_08028FF8: - movs r0, #0 -_08028FFA: - pop {r4, pc} - - thumb_func_start sub_08028FFC -sub_08028FFC: @ 0x08028FFC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - 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, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080AE068 - adds r0, r4, #0 - bl sub_0801D230 - adds r1, r4, #0 - adds r1, #0x60 - movs r0, #0xe8 - strh r0, [r1] - ldrb r1, [r4, #0x1a] - subs r0, #0xf8 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - movs r1, #0xf - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #0x1a] - movs r0, #0xa7 - strh r0, [r4, #0x12] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, _08029074 @ =0x00004022 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - pop {r4, pc} - .align 2, 0 -_08029074: .4byte 0x00004022 - - thumb_func_start sub_08029078 -sub_08029078: @ 0x08029078 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - 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, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x72 - bl sub_080ADF80 - cmp r0, #0 - bne _080290AE - adds r0, r4, #0 - bl sub_0805E7BC - b _080290DE -_080290AE: - adds r0, r4, #0 - movs r1, #0x6e - bl sub_0801D040 - movs r0, #0xd0 - strh r0, [r4, #0x12] - adds r0, r4, #0 - bl sub_08028FDC - adds r0, r4, #0 - movs r1, #1 - bl sub_080290E0 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x76 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_080290DE: - pop {r4, pc} - - thumb_func_start sub_080290E0 -sub_080290E0: @ 0x080290E0 - push {lr} - adds r3, r1, #0 - ldrb r1, [r0, #0x15] - lsrs r1, r1, #3 - ldr r2, _080290F8 @ =gUnk_080CCA04 - adds r3, r3, r2 - ldrb r2, [r3] - orrs r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 -_080290F8: .4byte gUnk_080CCA04 - - thumb_func_start sub_080290FC -sub_080290FC: @ 0x080290FC - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _08029158 - subs r1, r0, #1 - strb r1, [r2, #0xe] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bhi _08029158 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08029158 - ldrb r4, [r2, #0x15] - movs r0, #0x10 - ands r0, r4 - movs r5, #1 - cmp r0, #0 - beq _08029128 - subs r5, #2 -_08029128: - movs r3, #8 - adds r0, r3, #0 - ands r0, r4 - cmp r0, #0 - beq _08029146 - movs r4, #0x2e - ldrsh r0, [r2, r4] - ands r1, r3 - cmp r1, #0 - beq _08029140 - subs r0, r0, r5 - b _08029142 -_08029140: - adds r0, r0, r5 -_08029142: - strh r0, [r2, #0x2e] - b _08029158 -_08029146: - movs r4, #0x32 - ldrsh r0, [r2, r4] - ands r1, r3 - cmp r1, #0 - bne _08029154 - subs r0, r0, r5 - b _08029156 -_08029154: - adds r0, r0, r5 -_08029156: - strh r0, [r2, #0x32] -_08029158: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802915C -sub_0802915C: @ 0x0802915C - push {lr} - ldr r0, [r0, #0x7c] - ldrb r0, [r0, #8] - cmp r0, #0x5c - beq _08029190 - cmp r0, #0x5c - bgt _08029174 - cmp r0, #0x1c - beq _08029186 - cmp r0, #0x44 - beq _0802917E - b _08029194 -_08029174: - cmp r0, #0x6c - beq _08029190 - cmp r0, #0x6f - beq _08029190 - b _08029194 -_0802917E: - movs r0, #0x44 - bl GetInventoryValue - b _0802918C -_08029186: - movs r0, #0x5a - bl GetProgressFlag -_0802918C: - cmp r0, #0 - bne _08029194 -_08029190: - movs r0, #1 - b _08029196 -_08029194: - movs r0, #0 -_08029196: - pop {pc} - - thumb_func_start sub_08029198 -sub_08029198: @ 0x08029198 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2] - movs r0, #0xfc - ands r0, r1 - cmp r0, #0xc - beq _080291CA - ldrb r0, [r2, #8] - cmp r0, #0x1c - beq _080291BC - cmp r0, #0x1c - bgt _080291B6 - cmp r0, #9 - beq _080291C4 - b _080291D8 -_080291B6: - cmp r0, #0x44 - beq _080291C4 - b _080291D8 -_080291BC: - movs r0, #0x5a - bl GetProgressFlag - b _080291D0 -_080291C4: - bl GetInventoryValue - b _080291D0 -_080291CA: - ldrh r0, [r2, #0xa] - bl sub_0807CBD0 -_080291D0: - cmp r0, #0 - beq _080291D8 - movs r0, #1 - b _080291DA -_080291D8: - movs r0, #0 -_080291DA: - pop {pc} - - thumb_func_start sub_080291DC -sub_080291DC: @ 0x080291DC - push {lr} - ldr r0, [r0, #0x7c] - ldrb r0, [r0, #8] - cmp r0, #0x6c - beq _080291EC - cmp r0, #0x6f - beq _08029204 - b _08029228 -_080291EC: - ldr r2, _080291FC @ =gUnk_080FD5A0 - ldr r1, _08029200 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xae - ldrb r0, [r0] - adds r0, r0, r2 - adds r1, #0xac - b _08029212 - .align 2, 0 -_080291FC: .4byte gUnk_080FD5A0 -_08029200: .4byte gUnk_02002A40 -_08029204: - ldr r2, _08029220 @ =gUnk_080FD5A4 - ldr r1, _08029224 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xaf - ldrb r0, [r0] - adds r0, r0, r2 - adds r1, #0xad -_08029212: - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhi _08029228 - movs r0, #1 - b _0802922A - .align 2, 0 -_08029220: .4byte gUnk_080FD5A4 -_08029224: .4byte gUnk_02002A40 -_08029228: - movs r0, #0 -_0802922A: - pop {pc} - - thumb_func_start sub_0802922C -sub_0802922C: @ 0x0802922C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - movs r1, #6 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x81 - strb r0, [r1] - ldr r0, [r4, #0x7c] - ldrb r0, [r0, #8] - cmp r0, #0x6c - beq _08029252 - cmp r0, #0x6c - bgt _08029252 - cmp r0, #0x1c - bne _08029252 - movs r0, #0x5a - bl sub_0807CD04 -_08029252: - adds r0, r4, #0 - movs r1, #3 - bl sub_080290E0 - pop {r4, pc} - - thumb_func_start sub_0802925C -sub_0802925C: @ 0x0802925C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029270 -sub_08029270: @ 0x08029270 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08029296 - adds r0, #1 - strb r0, [r2, #0xc] - 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 - movs r1, #0xe - bl sub_08004260 - b _0802929C -_08029296: - adds r0, r2, #0 - bl sub_08004274 -_0802929C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080292A0 -sub_080292A0: @ 0x080292A0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _080292F8 - adds r0, r5, #0 - bl sub_080043E8 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _080292CE - ldrb r0, [r5, #0xc] - cmp r0, #4 - bne _080292C4 - adds r0, r5, #0 - bl sub_080296D8 -_080292C4: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08001290 - b _080292FE -_080292CE: - ldr r4, _080292F4 @ =gUnk_080CCC00 - 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 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - b _080292FE - .align 2, 0 -_080292F4: .4byte gUnk_080CCC00 -_080292F8: - adds r0, r5, #0 - bl sub_080293DC -_080292FE: - pop {r4, r5, pc} - - thumb_func_start sub_08029300 -sub_08029300: @ 0x08029300 - push {lr} - ldr r2, _08029314 @ =gUnk_080CCC18 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08029314: .4byte gUnk_080CCC18 - - thumb_func_start sub_08029318 -sub_08029318: @ 0x08029318 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x8e - bne _0802932C - adds r0, r4, #0 - bl sub_08029770 - b _080293A6 -_0802932C: - ldrb r0, [r4, #0xc] - cmp r0, #4 - bne _08029338 - adds r0, r4, #0 - bl sub_080296D8 -_08029338: - ldr r0, [r4, #0x4c] - ldrb r0, [r0, #8] - cmp r0, #1 - bne _08029394 - ldrb r0, [r4, #0xc] - cmp r0, #2 - bne _08029356 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #4 - bl sub_08004260 -_08029356: - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0x41 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #0xfc - ands r0, r1 - strb r0, [r2] - ldr r0, _08029390 @ =gLinkEntity - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1d - adds r1, r4, #0 - adds r1, #0x80 - strb r0, [r1] - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 - b _080293A6 - .align 2, 0 -_08029390: .4byte gLinkEntity -_08029394: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080293A6 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_080293A6: - ldr r1, _080293B0 @ =gUnk_080CCC00 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_080293B0: .4byte gUnk_080CCC00 - - thumb_func_start sub_080293B4 -sub_080293B4: @ 0x080293B4 - push {lr} - ldr r3, _080293D4 @ =gUnk_080CCC34 - adds r1, r0, #0 - adds r1, #0x84 - ldrb r2, [r1] - lsls r1, r2, #1 - adds r1, r1, r2 - ldrb r2, [r0, #0xa] - adds r1, r1, r2 - adds r1, r1, r3 - ldrb r2, [r1] - movs r1, #0xff - bl sub_0804A7E0 - pop {pc} - .align 2, 0 -_080293D4: .4byte gUnk_080CCC34 - - thumb_func_start nullsub_141 -nullsub_141: @ 0x080293D8 - bx lr - .align 2, 0 - - thumb_func_start sub_080293DC -sub_080293DC: @ 0x080293DC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldr r1, _08029408 @ =gUnk_080CCC3C - 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 -_08029408: .4byte gUnk_080CCC3C - - thumb_func_start sub_0802940C -sub_0802940C: @ 0x0802940C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - movs r0, #0x17 - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _0802944A - adds r0, r4, #0 - bl sub_0804A720 - str r4, [r5, #0x50] - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xb] - str r5, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - ldrb r0, [r4, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080297F0 -_0802944A: - pop {r4, r5, pc} - - thumb_func_start sub_0802944C -sub_0802944C: @ 0x0802944C - push {r4, lr} - adds r4, r0, #0 - bl sub_080296C8 - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _08029470 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08029470 - adds r0, r4, #0 - bl sub_08029770 -_08029470: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029474 -sub_08029474: @ 0x08029474 - push {r4, lr} - adds r4, r0, #0 - bl sub_080296C8 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r2, [r3] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _080294C0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - ldr r1, _080294BC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - ldr r0, [r4, #0x54] - ldrb r1, [r4, #0x14] - adds r1, #4 - bl sub_08004260 - b _080294D2 - .align 2, 0 -_080294BC: .4byte gLinkEntity -_080294C0: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080294D2 - strb r1, [r3] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_080294D2: - pop {r4, pc} - - thumb_func_start sub_080294D4 -sub_080294D4: @ 0x080294D4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802951C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029508 - movs r0, #8 - strb r0, [r4, #0xe] - ldr r1, _08029518 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - adds r0, r4, #0 - bl sub_0802969C -_08029508: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_080296C8 - b _08029538 - .align 2, 0 -_08029518: .4byte gLinkEntity -_0802951C: - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #7 - bl sub_08004260 -_08029538: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802953C -sub_0802953C: @ 0x0802953C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080296C8 - adds r0, r5, #0 - bl sub_080296C8 - bl sub_0807953C - cmp r0, #0 - beq _08029558 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] -_08029558: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08029562 - subs r0, #1 - strb r0, [r5, #0xe] -_08029562: - ldrb r0, [r5, #0xf] - cmp r0, #0x2d - bhi _08029572 - ldr r0, _08029580 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r0, #0 - bne _08029584 -_08029572: - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _08029584 - adds r0, r5, #0 - bl sub_080296D8 - b _080295FE - .align 2, 0 -_08029580: .4byte gUnk_02002A40 -_08029584: - bl sub_08077B2C - ldr r2, _08029600 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r4, _08029604 @ =gLinkEntity - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrh r0, [r5, #0x12] - ldrb r1, [r5, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r4, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r0, [r0, #1] - subs r0, #1 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - adds r1, r5, #0 - adds r1, #0x83 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080295FE - movs r0, #0x41 - strb r0, [r1] - ldr r0, _08029608 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r0, #0 - beq _080295FE - ldr r1, _0802960C @ =gUnk_080CCC44 - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - bl sub_080526CC - adds r1, r5, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] -_080295FE: - pop {r4, r5, pc} - .align 2, 0 -_08029600: .4byte gUnk_03003F80 -_08029604: .4byte gLinkEntity -_08029608: .4byte gUnk_02002A40 -_0802960C: .4byte gUnk_080CCC44 - - thumb_func_start sub_08029610 -sub_08029610: @ 0x08029610 - 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 _08029628 - movs r0, #3 - strb r0, [r1, #0xc] - movs r0, #1 - strb r0, [r1, #0xe] -_08029628: - adds r0, r1, #0 - bl sub_080296C8 - pop {pc} - - thumb_func_start sub_08029630 -sub_08029630: @ 0x08029630 - push {r4, lr} - adds r4, r0, #0 - bl sub_080296C8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802965E - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r2, #0x18] - adds r0, r4, #0 - bl sub_080297F0 -_0802965E: - pop {r4, pc} - - thumb_func_start sub_08029660 -sub_08029660: @ 0x08029660 - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0xd1 - strh r1, [r0, #0x12] - ldr r2, _08029684 @ =gUnk_080CCC47 - ldrb r1, [r0, #0xa] - adds r1, r1, r2 - ldrb r2, [r1] - movs r1, #0xf - ands r2, r1 - ldrb r3, [r0, #0x1a] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, #0x1a] - bx lr - .align 2, 0 -_08029684: .4byte gUnk_080CCC47 - - thumb_func_start sub_08029688 -sub_08029688: @ 0x08029688 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0802969A - adds r0, r1, #0 - bl sub_0805E7BC -_0802969A: - pop {pc} - - thumb_func_start sub_0802969C -sub_0802969C: @ 0x0802969C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080296C4 - lsrs r4, r1, #4 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _080296C4 - strb r4, [r5, #0x14] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004260 - ldr r0, [r5, #0x54] - adds r1, r4, #4 - bl sub_08004260 -_080296C4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080296C8 -sub_080296C8: @ 0x080296C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, [r4, #0x54] - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080296D8 -sub_080296D8: @ 0x080296D8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08029764 @ =gUnk_03003F80 - movs r0, #0x41 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - ldr r0, _08029768 @ =gLinkEntity - mov ip, r0 - ldrb r0, [r0, #0x10] - movs r1, #0x80 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x10] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] - adds r1, #0x3d - movs r0, #0xa6 - strb r0, [r1] - movs r3, #0 - ldr r0, _0802976C @ =0x0000FFFE - mov r1, ip - strh r0, [r1, #0x36] - ldrb r0, [r1, #0x14] - lsls r0, r0, #2 - strb r0, [r1, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - mov r5, ip - adds r5, #0x29 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #3 - ldrb r2, [r5] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - mov r0, ip - adds r0, #0x63 - strb r3, [r0] - movs r0, #0xa0 - lsls r0, r0, #1 - mov r1, ip - strh r0, [r1, #0x24] - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #3 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08029762 - movs r0, #0xf4 - strb r0, [r1] -_08029762: - pop {r4, r5, pc} - .align 2, 0 -_08029764: .4byte gUnk_03003F80 -_08029768: .4byte gLinkEntity -_0802976C: .4byte 0x0000FFFE - - thumb_func_start sub_08029770 -sub_08029770: @ 0x08029770 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x73 - bl sub_080ADF80 - cmp r0, #0 - beq _080297E8 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xd1 - strh r0, [r4, #0x12] - 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] - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - movs r0, #0xf - ands r1, r0 - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x8d - strb r0, [r1] - ldr r0, _080297EC @ =gUnk_080FD260 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080A29BC -_080297E8: - pop {r4, pc} - .align 2, 0 -_080297EC: .4byte gUnk_080FD260 - - thumb_func_start sub_080297F0 -sub_080297F0: @ 0x080297F0 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - 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 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x8e - strb r0, [r1] - adds r0, r4, #0 - bl sub_080AE068 - ldr r0, _08029850 @ =0x00000143 - strh r0, [r4, #0x12] - ldr r1, _08029854 @ =gUnk_080CCC47 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0xf - ands r1, r0 - ldrb r2, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - adds r1, r4, #0 - adds r1, #0x60 - movs r0, #9 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x54 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_08029850: .4byte 0x00000143 -_08029854: .4byte gUnk_080CCC47 - - thumb_func_start sub_08029858 -sub_08029858: @ 0x08029858 - push {lr} - ldr r2, _0802986C @ =gUnk_080CCD44 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802986C: .4byte gUnk_080CCD44 - - thumb_func_start sub_08029870 -sub_08029870: @ 0x08029870 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08029888 @ =gUnk_080CCD60 - 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 -_08029888: .4byte gUnk_080CCD60 - - thumb_func_start sub_0802988C -sub_0802988C: @ 0x0802988C - push {lr} - ldr r2, _080298A0 @ =gUnk_080CCD78 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080298A0: .4byte gUnk_080CCD78 - - thumb_func_start sub_080298A4 -sub_080298A4: @ 0x080298A4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - bne _08029970 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0x1e - bhi _08029948 - lsls r0, r1, #2 - ldr r1, _080298C8 @ =_080298CC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080298C8: .4byte _080298CC -_080298CC: @ jump table - .4byte _08029970 @ case 0 - .4byte _08029970 @ case 1 - .4byte _08029970 @ case 2 - .4byte _08029970 @ case 3 - .4byte _08029948 @ case 4 - .4byte _08029948 @ case 5 - .4byte _08029948 @ case 6 - .4byte _08029948 @ case 7 - .4byte _08029948 @ case 8 - .4byte _08029948 @ case 9 - .4byte _08029948 @ case 10 - .4byte _08029948 @ case 11 - .4byte _08029948 @ case 12 - .4byte _08029948 @ case 13 - .4byte _08029948 @ case 14 - .4byte _08029970 @ case 15 - .4byte _08029948 @ case 16 - .4byte _08029948 @ case 17 - .4byte _08029948 @ case 18 - .4byte _08029970 @ case 19 - .4byte _08029948 @ case 20 - .4byte _08029948 @ case 21 - .4byte _08029948 @ case 22 - .4byte _08029948 @ case 23 - .4byte _08029948 @ case 24 - .4byte _08029948 @ case 25 - .4byte _08029948 @ case 26 - .4byte _08029970 @ case 27 - .4byte _08029948 @ case 28 - .4byte _08029948 @ case 29 - .4byte _08029970 @ case 30 -_08029948: - movs r1, #0 - movs r4, #2 - strb r4, [r5, #0xc] - strb r1, [r5, #0xe] - adds r2, r5, #0 - adds r2, #0x3f - movs r0, #0x6b - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x77 - strb r1, [r0] - adds r0, r5, #0 - movs r1, #0x7f - bl sub_0801D2B4 - movs r0, #0xfe - bl sub_08004488 - ldr r0, [r5, #0x54] - strb r4, [r0, #0xc] -_08029970: - ldr r1, _0802997C @ =gUnk_080CCD60 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_0802997C: .4byte gUnk_080CCD60 - - thumb_func_start sub_08029980 -sub_08029980: @ 0x08029980 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xf] - cmp r0, #0 - beq _08029990 - subs r0, #1 - strb r0, [r1, #0xf] - b _08029996 -_08029990: - adds r0, r1, #0 - bl sub_0804A7D4 -_08029996: - pop {pc} - - thumb_func_start nullsub_14 -nullsub_14: @ 0x08029998 - bx lr - .align 2, 0 - - thumb_func_start sub_0802999C -sub_0802999C: @ 0x0802999C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _08029A90 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x43 - bhi _08029A8E - movs r0, #0x18 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r7, [r4, #0x50] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #5 - bl PositionRelative - str r4, [r7, #0x54] - movs r0, #0x18 - movs r1, #2 - bl CreateEnemy - adds r5, r0, #0 - str r7, [r5, #0x50] - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #4 - bl PositionRelative - str r5, [r4, #0x54] - movs r0, #0x18 - movs r1, #3 - bl CreateEnemy - adds r4, r0, #0 - str r7, [r4, #0x50] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #3 - bl PositionRelative - str r4, [r5, #0x54] - movs r0, #0x18 - movs r1, #4 - bl CreateEnemy - adds r5, r0, #0 - str r7, [r5, #0x50] - adds r0, r7, #0 - adds r1, r5, #0 - movs r2, #0 - movs r3, #2 - bl PositionRelative - str r5, [r4, #0x54] - movs r0, #0x18 - movs r1, #5 - bl CreateEnemy - adds r6, r0, #0 - str r7, [r6, #0x50] - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #0 - movs r3, #1 - bl PositionRelative - str r6, [r5, #0x54] - movs r0, #0x18 - movs r1, #6 - bl CreateEnemy - adds r4, r0, #0 - str r7, [r4, #0x54] - str r7, [r4, #0x50] - adds r0, r7, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #0 - bl PositionRelative - str r4, [r6, #0x54] - movs r4, #1 - strb r4, [r7, #0xc] - ldrb r1, [r7, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0x10] - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r7, #0x15] - movs r2, #0 - movs r0, #0xa0 - strh r0, [r7, #0x24] - movs r0, #0xff - strb r0, [r7, #0x14] - ldr r0, [r7, #0x30] - adds r0, #6 - str r0, [r7, #0x30] - str r7, [r7, #0x50] - adds r1, r7, #0 - adds r1, #0x74 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x75 - strb r2, [r0] - adds r0, #2 - strb r4, [r0] - adds r0, r7, #0 - bl sub_08029E0C - adds r0, r7, #0 - bl sub_08029EEC -_08029A8E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08029A90: .4byte gUnk_03003DBC - - thumb_func_start sub_08029A94 -sub_08029A94: @ 0x08029A94 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0802A098 - pop {r4, pc} - - thumb_func_start sub_08029AA4 -sub_08029AA4: @ 0x08029AA4 - push {lr} - adds r1, r0, #0 - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #0 - beq _08029ADA - movs r0, #3 - strb r0, [r1, #0xc] - movs r0, #0x84 - lsls r0, r0, #1 - strh r0, [r1, #0x24] - adds r2, r1, #0 - adds r2, #0x3f - movs r0, #0x6a - strb r0, [r2] - adds r2, #0x3b - adds r0, #0xfe - strh r0, [r2] - subs r2, #5 - movs r0, #4 - strb r0, [r2] - adds r0, r1, #0 - bl sub_08029EEC - ldr r0, _08029ADC @ =0x0000019D - bl sub_08004488 -_08029ADA: - pop {pc} - .align 2, 0 -_08029ADC: .4byte 0x0000019D - - thumb_func_start sub_08029AE0 -sub_08029AE0: @ 0x08029AE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0802A16C - adds r0, r4, #0 - bl sub_0802A098 - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08029B28 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xa0 - strh r0, [r4, #0x24] - subs r1, #5 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08029EEC - adds r0, r4, #0 - movs r1, #0x77 - bl sub_0801D2B4 - movs r0, #0xc1 - lsls r0, r0, #1 - bl sub_08004488 -_08029B28: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029B2C -sub_08029B2C: @ 0x08029B2C - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A14C - cmp r0, #0 - beq _08029B7A - adds r2, r4, #0 - adds r2, #0x86 - ldrb r0, [r2] - cmp r0, #0 - beq _08029B60 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029B8A - adds r0, r4, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r0, r4, #0 - bl sub_0805E7BC - b _08029B8A -_08029B60: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0xa] - lsls r1, r0, #4 - subs r1, r1, r0 - movs r0, #0x5a - subs r0, r0, r1 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r2] - b _08029B8A -_08029B7A: - ldr r0, _08029B8C @ =gUnk_080CCD88 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08029B8A: - pop {r4, pc} - .align 2, 0 -_08029B8C: .4byte gUnk_080CCD88 - - thumb_func_start sub_08029B90 -sub_08029B90: @ 0x08029B90 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0802A058 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bhi _08029BBA - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _08029BC2 -_08029BBA: - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_08029BC2: - pop {r4, pc} - - thumb_func_start sub_08029BC4 -sub_08029BC4: @ 0x08029BC4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0802A18C - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r0, #0x32 - ldrsh r6, [r4, r0] - adds r0, r4, #0 - bl sub_08029FE4 - cmp r0, #0 - beq _08029BF2 - ldrb r0, [r4, #0xa] - movs r2, #4 - cmp r0, #1 - bhi _08029BE8 - movs r2, #0 -_08029BE8: - ldrb r1, [r4, #0x14] - adds r1, r1, r2 - adds r0, r4, #0 - bl sub_08004260 -_08029BF2: - movs r0, #0x2e - ldrsh r1, [r4, r0] - subs r1, r1, r5 - movs r0, #0x32 - ldrsh r2, [r4, r0] - subs r2, r2, r6 - adds r0, r4, #0 - bl sub_08029FB4 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08029C08 -sub_08029C08: @ 0x08029C08 - movs r1, #3 - strb r1, [r0, #0xc] - ldr r2, _08029C28 @ =gUnk_080CCDA0 - ldrb r1, [r0, #0xa] - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r0, #0xe] - adds r2, r0, #0 - adds r2, #0x3f - movs r1, #0x6b - strb r1, [r2] - ldr r1, [r0, #0x54] - movs r0, #2 - strb r0, [r1, #0xc] - bx lr - .align 2, 0 -_08029C28: .4byte gUnk_080CCDA0 - - thumb_func_start sub_08029C2C -sub_08029C2C: @ 0x08029C2C - 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 _08029C4E - movs r0, #4 - strb r0, [r1, #0xc] - adds r0, r1, #0 - movs r1, #0x7f - bl sub_0801D2B4 - movs r0, #0x6c - bl sub_08004488 -_08029C4E: - pop {pc} - - thumb_func_start sub_08029C50 -sub_08029C50: @ 0x08029C50 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #0 - beq _08029C68 - movs r0, #5 - strb r0, [r1, #0xc] - adds r1, #0x3f - movs r0, #0x6a - strb r0, [r1] -_08029C68: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08029C6C -sub_08029C6C: @ 0x08029C6C - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A18C - adds r0, r4, #0 - bl sub_08029BC4 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #3 - beq _08029C90 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x77 - bl sub_0801D2B4 - b _08029C96 -_08029C90: - adds r0, r4, #0 - bl sub_0802A16C -_08029C96: - pop {r4, pc} - - thumb_func_start sub_08029C98 -sub_08029C98: @ 0x08029C98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A14C - cmp r0, #0 - beq _08029CB6 - adds r0, r4, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r0, r4, #0 - bl sub_0805E7BC - b _08029CC6 -_08029CB6: - ldr r0, _08029CC8 @ =gUnk_080CCDA8 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08029CC6: - pop {r4, pc} - .align 2, 0 -_08029CC8: .4byte gUnk_080CCDA8 - - thumb_func_start sub_08029CCC -sub_08029CCC: @ 0x08029CCC - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0802A058 - adds r0, r4, #0 - movs r1, #8 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08029CF0 -sub_08029CF0: @ 0x08029CF0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08029FE4 - cmp r0, #0 - beq _08029D06 - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 -_08029D06: - pop {r4, pc} - - thumb_func_start sub_08029D08 -sub_08029D08: @ 0x08029D08 - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0x47 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08029D14 -sub_08029D14: @ 0x08029D14 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08029D42 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029D70 - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x7f - bl sub_0801D2B4 - movs r0, #0x6c - bl sub_08004488 - b _08029D70 -_08029D42: - 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 _08029D70 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6c - strb r0, [r1] - ldr r0, _08029D74 @ =gUnk_080FD298 - str r0, [r4, #0x48] - movs r0, #0x6b - bl sub_08004488 -_08029D70: - pop {r4, pc} - .align 2, 0 -_08029D74: .4byte gUnk_080FD298 - - thumb_func_start sub_08029D78 -sub_08029D78: @ 0x08029D78 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A0F8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08029DA6 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6a - strb r0, [r1] - ldr r0, _08029DA8 @ =gUnk_080FD2A0 - str r0, [r4, #0x48] - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_08004260 -_08029DA6: - pop {r4, pc} - .align 2, 0 -_08029DA8: .4byte gUnk_080FD2A0 - - thumb_func_start sub_08029DAC -sub_08029DAC: @ 0x08029DAC - 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 _08029DD8 - movs r0, #6 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x50] - adds r0, #0x77 - movs r1, #1 - strb r1, [r0] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 -_08029DD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029DDC -sub_08029DDC: @ 0x08029DDC - movs r1, #7 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08029DE4 -sub_08029DE4: @ 0x08029DE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08029CF0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #3 - beq _08029E02 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x77 - bl sub_0801D2B4 - b _08029E08 -_08029E02: - adds r0, r4, #0 - bl sub_0802A16C -_08029E08: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08029E0C -sub_08029E0C: @ 0x08029E0C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r5, r0, #0 - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - lsls r1, r0, #1 - adds r1, r1, r0 - ldr r0, _08029EE0 @ =gUnk_080CCDC8 - adds r1, r1, r0 - str r1, [sp] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - subs r1, #1 - mov sl, r1 - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #0xf - ands r0, r1 - movs r1, #3 - bl __modsi3 - mov sb, r0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _08029EE4 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - mov r8, r0 - movs r2, #0x3f - ands r0, r2 - mov r8, r0 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - mov r1, r8 - orrs r1, r0 - mov r8, r1 - movs r7, #0 -_08029E72: - ldr r0, [sp] - add r0, sb - ldrb r4, [r0] - lsrs r0, r4, #3 - lsls r0, r0, #1 - ldr r1, _08029EE8 @ =gUnk_080B4488 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - add r0, r8 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - adds r6, r5, #0 - adds r6, #0x74 - cmp r0, #0 - bne _08029EA6 - str r4, [sp, #4] - ldrb r1, [r5, #0x15] - ldrb r0, [r6] - subs r0, r1, r0 - subs r1, r4, r1 - cmp r0, r1 - bne _08029EBA -_08029EA6: - mov r0, sb - add r0, sl - adds r0, #3 - movs r1, #3 - bl __modsi3 - mov sb, r0 - adds r7, #1 - cmp r7, #2 - bls _08029E72 -_08029EBA: - cmp r7, #3 - bne _08029EC0 - ldr r4, [sp, #4] -_08029EC0: - ldrb r1, [r5, #0x15] - ldrb r0, [r6] - cmp r0, r1 - beq _08029ECA - strb r1, [r6] -_08029ECA: - strb r4, [r5, #0x15] - adds r0, r5, #0 - bl sub_08029F0C - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08029EE0: .4byte gUnk_080CCDC8 -_08029EE4: .4byte gUnk_03000BF0 -_08029EE8: .4byte gUnk_080B4488 - - thumb_func_start sub_08029EEC -sub_08029EEC: @ 0x08029EEC - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0x15] - adds r2, r3, #0 - adds r2, #0x75 - lsrs r0, r0, #3 - ldrb r2, [r2] - adds r1, r0, r2 - ldrb r0, [r3, #0x14] - cmp r1, r0 - beq _08029F0A - strb r1, [r3, #0x14] - adds r0, r3, #0 - bl sub_080042AC -_08029F0A: - pop {pc} - - thumb_func_start sub_08029F0C -sub_08029F0C: @ 0x08029F0C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _08029F30 - cmp r0, #1 - bgt _08029F22 - cmp r0, #0 - beq _08029F2C - b _08029F44 -_08029F22: - cmp r0, #2 - beq _08029F36 - cmp r0, #3 - beq _08029F3C - b _08029F44 -_08029F2C: - ldrh r0, [r1, #0x32] - b _08029F3E -_08029F30: - ldrh r0, [r1, #0x2e] - adds r0, #0x10 - b _08029F40 -_08029F36: - ldrh r0, [r1, #0x32] - adds r0, #0x10 - b _08029F40 -_08029F3C: - ldrh r0, [r1, #0x2e] -_08029F3E: - subs r0, #0x10 -_08029F40: - adds r1, #0x78 - strh r0, [r1] -_08029F44: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08029F48 -sub_08029F48: @ 0x08029F48 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _08029F78 - cmp r0, #1 - bgt _08029F5E - cmp r0, #0 - beq _08029F68 - b _08029FB0 -_08029F5E: - cmp r0, #2 - beq _08029F88 - cmp r0, #3 - beq _08029F9C - b _08029FB0 -_08029F68: - movs r0, #0x32 - ldrsh r1, [r2, r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r1, r0 - bgt _08029FB0 - b _08029F96 -_08029F78: - movs r0, #0x2e - ldrsh r1, [r2, r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r1, r0 - blt _08029FB0 - b _08029FAA -_08029F88: - movs r0, #0x32 - ldrsh r1, [r2, r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r1, r0 - blt _08029FB0 -_08029F96: - strh r0, [r2, #0x32] - movs r0, #1 - b _08029FB2 -_08029F9C: - movs r0, #0x2e - ldrsh r1, [r2, r0] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r1, r0 - bgt _08029FB0 -_08029FAA: - strh r0, [r2, #0x2e] - movs r0, #1 - b _08029FB2 -_08029FB0: - movs r0, #0 -_08029FB2: - pop {pc} - - thumb_func_start sub_08029FB4 -sub_08029FB4: @ 0x08029FB4 - push {r4, r5, r6, lr} - adds r5, r1, #0 - adds r4, r2, #0 - ldr r6, [r0, #0x54] - adds r6, #0x78 - ldr r0, [r0, #0x50] - adds r0, #0x7e - ldrb r0, [r0] - movs r1, #0xe - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r6, r0 - adds r5, #8 - movs r0, #0xf - ands r5, r0 - adds r4, #8 - ands r4, r0 - lsls r4, r4, #4 - orrs r5, r4 - strb r5, [r6] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08029FE4 -sub_08029FE4: @ 0x08029FE4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x78 - ldr r0, [r5, #0x50] - adds r0, #0x7e - ldrb r0, [r0] - adds r0, #1 - movs r1, #0xe - bl __modsi3 - adds r4, r4, r0 - ldrb r1, [r4] - movs r0, #0xf - ands r0, r1 - subs r0, #8 - lsrs r1, r1, #4 - subs r1, #8 - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - asrs r4, r0, #0x18 - ldrh r0, [r5, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] - lsrs r6, r1, #0x18 - asrs r1, r1, #0x18 - ldrh r0, [r5, #0x32] - adds r1, r1, r0 - strh r1, [r5, #0x32] - adds r0, r5, #0 - bl sub_08004274 - movs r1, #0xff - cmp r4, #0 - beq _0802A032 - movs r1, #3 - cmp r4, #0 - ble _0802A032 - movs r1, #1 -_0802A032: - lsls r0, r6, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0802A042 - movs r1, #0 - cmp r0, #0 - ble _0802A042 - movs r1, #2 -_0802A042: - cmp r1, #0xff - beq _0802A052 - ldrb r0, [r5, #0x14] - cmp r1, r0 - beq _0802A052 - strb r1, [r5, #0x14] - movs r0, #1 - b _0802A054 -_0802A052: - movs r0, #0 -_0802A054: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802A058 -sub_0802A058: @ 0x0802A058 - adds r2, r0, #0 - adds r0, #0x78 - 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] - 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] - bx lr - .align 2, 0 - - thumb_func_start sub_0802A098 -sub_0802A098: @ 0x0802A098 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7e - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldrb r0, [r5] - movs r1, #0xe - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0802A0B8 - strb r0, [r5] -_0802A0B8: - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r0, #0x32 - ldrsh r6, [r4, r0] - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08029F48 - cmp r0, #0 - beq _0802A0E4 - adds r0, r4, #0 - bl sub_08029E0C - adds r0, r4, #0 - bl sub_08029EEC - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_0802A0E4: - movs r0, #0x2e - ldrsh r1, [r4, r0] - subs r1, r1, r5 - movs r0, #0x32 - ldrsh r2, [r4, r0] - subs r2, r2, r6 - adds r0, r4, #0 - bl sub_08029FB4 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802A0F8 -sub_0802A0F8: @ 0x0802A0F8 - push {r4, lr} - adds r3, r0, #0 - adds r0, #0x45 - ldrb r4, [r0] - cmp r4, #0 - beq _0802A134 - subs r0, #4 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802A14A - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0802A14A - adds r2, r3, #0 - movs r3, #0 - adds r4, r1, #0 -_0802A122: - ldr r2, [r2, #0x54] - ldrb r0, [r4] - adds r1, r2, #0 - adds r1, #0x3d - strb r0, [r1] - adds r3, #1 - cmp r3, #5 - bls _0802A122 - b _0802A14A -_0802A134: - ldr r2, [r3, #0x50] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldr r0, [r3, #0x50] - adds r0, #0x45 - strb r4, [r0] - ldr r1, [r3, #0x50] - movs r0, #0x69 - strb r0, [r1, #0xf] -_0802A14A: - pop {r4, pc} - - thumb_func_start sub_0802A14C -sub_0802A14C: @ 0x0802A14C - push {lr} - adds r1, r0, #0 - movs r2, #0 - ldr r0, [r1, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0802A166 - adds r0, r1, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #0 - beq _0802A168 -_0802A166: - movs r2, #1 -_0802A168: - adds r0, r2, #0 - pop {pc} - - thumb_func_start sub_0802A16C -sub_0802A16C: @ 0x0802A16C - push {lr} - ldr r3, _0802A188 @ =gUnk_080CCDD4 - ldr r1, [r0, #0x50] - adds r1, #0x7a - ldrh r1, [r1] - lsrs r1, r1, #2 - movs r2, #3 - ands r1, r2 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r1, [r1] - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0802A188: .4byte gUnk_080CCDD4 - - thumb_func_start sub_0802A18C -sub_0802A18C: @ 0x0802A18C - push {lr} - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802A234 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1e - bhi _0802A22C - lsls r0, r0, #2 - ldr r1, _0802A1AC @ =_0802A1B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802A1AC: .4byte _0802A1B0 -_0802A1B0: @ jump table - .4byte _0802A234 @ case 0 - .4byte _0802A234 @ case 1 - .4byte _0802A234 @ case 2 - .4byte _0802A234 @ case 3 - .4byte _0802A22C @ case 4 - .4byte _0802A22C @ case 5 - .4byte _0802A22C @ case 6 - .4byte _0802A22C @ case 7 - .4byte _0802A22C @ case 8 - .4byte _0802A22C @ case 9 - .4byte _0802A22C @ case 10 - .4byte _0802A22C @ case 11 - .4byte _0802A22C @ case 12 - .4byte _0802A22C @ case 13 - .4byte _0802A22C @ case 14 - .4byte _0802A234 @ case 15 - .4byte _0802A22C @ case 16 - .4byte _0802A22C @ case 17 - .4byte _0802A22C @ case 18 - .4byte _0802A234 @ case 19 - .4byte _0802A22C @ case 20 - .4byte _0802A22C @ case 21 - .4byte _0802A22C @ case 22 - .4byte _0802A22C @ case 23 - .4byte _0802A22C @ case 24 - .4byte _0802A22C @ case 25 - .4byte _0802A22C @ case 26 - .4byte _0802A234 @ case 27 - .4byte _0802A22C @ case 28 - .4byte _0802A22C @ case 29 - .4byte _0802A234 @ case 30 -_0802A22C: - movs r0, #0x97 - lsls r0, r0, #1 - bl sub_08004488 -_0802A234: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802A238 -sub_0802A238: @ 0x0802A238 - push {lr} - ldr r2, _0802A24C @ =gUnk_080CD030 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802A24C: .4byte gUnk_080CD030 - - thumb_func_start sub_0802A250 -sub_0802A250: @ 0x0802A250 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r1, [r5, #0xe] - ldr r0, _0802A2A8 @ =0xFFFD0000 - str r0, [r5, #0x20] - bl sub_08000E50 - ldr r1, _0802A2AC @ =gUnk_080CD03C - movs r4, #3 - ands r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - strh r0, [r5, #0x24] - bl sub_08000E50 - ldr r1, _0802A2B0 @ =gUnk_080CD040 - ands r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, #0x18 - strb r0, [r5, #0x15] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_08016A04 - movs r0, #0x66 - movs r1, #0 - movs r2, #0 - bl CreateObject - cmp r0, #0 - beq _0802A2A6 - str r5, [r0, #0x50] -_0802A2A6: - pop {r4, r5, pc} - .align 2, 0 -_0802A2A8: .4byte 0xFFFD0000 -_0802A2AC: .4byte gUnk_080CD03C -_0802A2B0: .4byte gUnk_080CD040 - - thumb_func_start sub_0802A2B4 -sub_0802A2B4: @ 0x0802A2B4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _0802A2DC - movs r0, #2 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x84 - bl sub_08004488 - b _0802A2E2 -_0802A2DC: - adds r0, r4, #0 - bl sub_0806F69C -_0802A2E2: - adds r0, r4, #0 - bl sub_0802A39C - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0802A2FA - adds r0, r4, #0 - bl sub_0802A334 -_0802A2FA: - pop {r4, pc} - - thumb_func_start sub_0802A2FC -sub_0802A2FC: @ 0x0802A2FC - 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 _0802A31A - adds r0, r4, #0 - bl sub_0805E7BC - b _0802A332 -_0802A31A: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802A32C - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _0802A332 -_0802A32C: - adds r0, r4, #0 - bl sub_0802A39C -_0802A332: - pop {r4, pc} - - thumb_func_start sub_0802A334 -sub_0802A334: @ 0x0802A334 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802A380 @ =gUnk_03000BF0 - movs r3, #0xa - ldrsh r0, [r2, r3] - ldr r3, _0802A384 @ =gUnk_03000F50 - subs r1, r1, r0 - ldrh r5, [r3, #0x16] - adds r1, r1, r5 - asrs r1, r1, #3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - movs r5, #0xc - ldrsh r2, [r2, r5] - subs r0, r0, r2 - ldrh r3, [r3, #0x18] - adds r0, r0, r3 - asrs r0, r0, #3 - ldr r3, _0802A388 @ =gUnk_02001A40 - movs r2, #0x1f - ands r1, r2 - ands r0, r2 - lsls r0, r0, #5 - adds r1, r1, r0 - movs r0, #0x80 - lsls r0, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - cmp r0, #0 - beq _0802A38C - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - b _0802A392 - .align 2, 0 -_0802A380: .4byte gUnk_03000BF0 -_0802A384: .4byte gUnk_03000F50 -_0802A388: .4byte gUnk_02001A40 -_0802A38C: - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 -_0802A392: - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - pop {r4, r5, pc} - - thumb_func_start sub_0802A39C -sub_0802A39C: @ 0x0802A39C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0802A3EC @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802A3F0 @ =gUnk_03000BF0 - movs r3, #0xa - ldrsh r0, [r2, r3] - ldr r3, _0802A3F4 @ =gUnk_03000F50 - subs r1, r1, r0 - ldrh r6, [r3, #0x16] - adds r1, r1, r6 - asrs r1, r1, #3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - movs r4, #0xc - ldrsh r2, [r2, r4] - subs r0, r0, r2 - ldrh r3, [r3, #0x18] - adds r0, r0, r3 - subs r0, #0xa - asrs r0, r0, #3 - ldr r3, _0802A3F8 @ =gUnk_02001A40 - movs r2, #0x1f - ands r1, r2 - ands r0, r2 - lsls r0, r0, #5 - adds r1, r1, r0 - movs r6, #0x80 - lsls r6, r6, #3 - adds r1, r1, r6 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r1] - cmp r0, #0 - beq _0802A3FC - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - b _0802A402 - .align 2, 0 -_0802A3EC: .4byte gLinkEntity -_0802A3F0: .4byte gUnk_03000BF0 -_0802A3F4: .4byte gUnk_03000F50 -_0802A3F8: .4byte gUnk_02001A40 -_0802A3FC: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 -_0802A402: - strb r0, [r5, #0x10] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802A408 -sub_0802A408: @ 0x0802A408 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802A430 @ =gUnk_080CD07C - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802A430: .4byte gUnk_080CD07C - - thumb_func_start sub_0802A434 -sub_0802A434: @ 0x0802A434 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A78C - ldr r1, _0802A450 @ =gUnk_080CD094 - 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 -_0802A450: .4byte gUnk_080CD094 - - thumb_func_start sub_0802A454 -sub_0802A454: @ 0x0802A454 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x75 - beq _0802A4A8 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r2, #0x7f - adds r1, r2, #0 - ands r1, r0 - cmp r1, #0 - beq _0802A474 - cmp r1, #0x1e - bne _0802A4A8 -_0802A474: - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - ldr r1, _0802A4D8 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - adds r2, r4, #0 - adds r2, #0x7e - strh r0, [r2] - ldrh r2, [r1, #0x32] - adds r0, r4, #0 - adds r0, #0x80 - strh r2, [r0] - ldrh r0, [r1, #0x36] - adds r1, r4, #0 - adds r1, #0x82 - strh r0, [r1] - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _0802A4A8 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0802A4A8: - adds r2, r4, #0 - adds r2, #0x42 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - beq _0802A4BC - cmp r1, #4 - bls _0802A4BC - subs r0, #4 - strb r0, [r2] -_0802A4BC: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802A4CE - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802A4CE: - ldr r1, _0802A4DC @ =gUnk_080CD07C - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0802A4D8: .4byte gLinkEntity -_0802A4DC: .4byte gUnk_080CD07C - - thumb_func_start nullsub_142 -nullsub_142: @ 0x0802A4E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0802A4E4 -sub_0802A4E4: @ 0x0802A4E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r1, [r4, #0xb] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x7c - strb r1, [r0] - ldrb r1, [r4, #0xe] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_0802A7D0 - pop {r4, pc} - - thumb_func_start sub_0802A534 -sub_0802A534: @ 0x0802A534 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - cmp r0, #0 - beq _0802A548 - subs r0, #1 - strh r0, [r1] - b _0802A5B0 -_0802A548: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - bne _0802A5B0 - movs r0, #1 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _0802A5B0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - 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] - ldrh r0, [r2, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r2, #0x32] - strh r0, [r4, #0x32] - ldr r0, _0802A5B4 @ =0x0000FF80 - strh r0, [r4, #0x36] - 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] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0802A7D0 -_0802A5B0: - pop {r4, pc} - .align 2, 0 -_0802A5B4: .4byte 0x0000FF80 - - thumb_func_start sub_0802A5B8 -sub_0802A5B8: @ 0x0802A5B8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A7D0 - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _0802A5E8 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A60E - ldr r0, _0802A5E4 @ =0x0000012D - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _0802A60E - .align 2, 0 -_0802A5E4: .4byte 0x0000012D -_0802A5E8: - ldrh r0, [r4, #0x36] - adds r0, #3 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0802A60E - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strh r2, [r4, #0x36] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0802A60E: - pop {r4, pc} - - thumb_func_start sub_0802A610 -sub_0802A610: @ 0x0802A610 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0802A7D0 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _0802A63A - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _0802A64C -_0802A63A: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802A64C - strb r2, [r3] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x75 - strb r0, [r1] -_0802A64C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802A650 -sub_0802A650: @ 0x0802A650 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A7D0 - ldrh r0, [r4, #0x36] - subs r0, #2 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0xa0 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0802A69A - movs r0, #1 - 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 r1, r4, #0 - adds r1, #0x3f - movs r0, #0x74 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] -_0802A69A: - pop {r4, pc} - - thumb_func_start sub_0802A69C -sub_0802A69C: @ 0x0802A69C - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A7D0 - ldr r2, _0802A6E4 @ =gUnk_03003F80 - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0xa] - ldrb r1, [r2, #0x1a] - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r1, _0802A6E8 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - strh r0, [r1, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r1, #0x32] - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r1, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0x36] - movs r3, #0x36 - ldrsh r1, [r4, r3] - cmp r0, r1 - beq _0802A6F0 - cmp r0, r1 - bge _0802A6EC - subs r0, r2, #1 - b _0802A6EE - .align 2, 0 -_0802A6E4: .4byte gUnk_03003F80 -_0802A6E8: .4byte gLinkEntity -_0802A6EC: - adds r0, r2, #1 -_0802A6EE: - strh r0, [r4, #0x36] -_0802A6F0: - adds r0, r4, #0 - bl sub_08004274 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _0802A712 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _0802A72E -_0802A712: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802A72E - strb r2, [r3] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #3 - strb r0, [r1] - ldr r2, _0802A730 @ =gLinkEntity - ldrb r1, [r2, #0x18] - subs r0, #7 - ands r0, r1 - strb r0, [r2, #0x18] -_0802A72E: - pop {r4, pc} - .align 2, 0 -_0802A730: .4byte gLinkEntity - - thumb_func_start sub_0802A734 -sub_0802A734: @ 0x0802A734 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802A7D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802A768 - bl sub_0805E5A8 - ldr r1, _0802A760 @ =gUnk_0813AB1C - ldr r0, _0802A764 @ =gUnk_02033A90 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_08080840 - b _0802A780 - .align 2, 0 -_0802A760: .4byte gUnk_0813AB1C -_0802A764: .4byte gUnk_02033A90 -_0802A768: - ldr r0, [r4, #0x34] - ldr r1, _0802A784 @ =0xFFFE0000 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldr r1, _0802A788 @ =gUnk_03003F80 - ldrb r0, [r1, #0xa] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1, #0xa] - ldrb r0, [r1, #0x1a] - orrs r0, r2 - strb r0, [r1, #0x1a] -_0802A780: - pop {r4, pc} - .align 2, 0 -_0802A784: .4byte 0xFFFE0000 -_0802A788: .4byte gUnk_03003F80 - - thumb_func_start sub_0802A78C -sub_0802A78C: @ 0x0802A78C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0802A7CC - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802A7BC - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - cmp r0, #0 - bne _0802A7CC - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0 - beq _0802A7CC - subs r0, #1 - strh r0, [r1] - b _0802A7CC -_0802A7BC: - ldrb r0, [r4, #0xb] - lsls r1, r0, #4 - subs r1, r1, r0 - lsls r1, r1, #2 - adds r1, #1 - adds r0, r4, #0 - adds r0, #0x7a - strh r1, [r0] -_0802A7CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802A7D0 -sub_0802A7D0: @ 0x0802A7D0 - push {r4, lr} - ldr r3, _0802A800 @ =gUnk_080CD0B0 - movs r1, #0x7d - adds r1, r1, r0 - mov ip, r1 - ldrb r1, [r1] - adds r2, r1, #1 - mov r4, ip - strb r2, [r4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #7 - ands r1, r2 - adds r1, r1, r3 - movs r2, #0 - ldrsb r2, [r1, r2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r2, r1 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_0802A800: .4byte gUnk_080CD0B0 - - thumb_func_start sub_0802A804 -sub_0802A804: @ 0x0802A804 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _0802A830 - adds r0, r5, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _0802A830 - ldr r0, _0802A82C @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _0802A844 - .align 2, 0 -_0802A82C: .4byte gUnk_080012C8 -_0802A830: - ldr r4, _0802A848 @ =gUnk_080CD0F0 - 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 -_0802A844: - pop {r4, r5, pc} - .align 2, 0 -_0802A848: .4byte gUnk_080CD0F0 - - thumb_func_start sub_0802A84C -sub_0802A84C: @ 0x0802A84C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _0802A878 - cmp r0, #3 - beq _0802A894 - ldr r0, _0802A874 @ =gUnk_080CD108 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0802AD54 - b _0802A8A4 - .align 2, 0 -_0802A874: .4byte gUnk_080CD108 -_0802A878: - ldr r0, _0802A890 @ =gUnk_080CD120 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_0802B048 - b _0802A8A4 - .align 2, 0 -_0802A890: .4byte gUnk_080CD120 -_0802A894: - ldr r0, _0802A8A8 @ =gUnk_080CD134 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0802A8A4: - pop {r4, pc} - .align 2, 0 -_0802A8A8: .4byte gUnk_080CD134 - - thumb_func_start sub_0802A8AC -sub_0802A8AC: @ 0x0802A8AC - push {lr} - adds r1, r0, #0 - adds r2, r1, #0 - adds r2, #0x81 - movs r0, #0 - strb r0, [r2] - ldrb r0, [r1, #0xa] - cmp r0, #1 - bhi _0802A8C6 - adds r0, r1, #0 - movs r1, #0 - bl sub_08004260 -_0802A8C6: - pop {pc} - - thumb_func_start sub_0802A8C8 -sub_0802A8C8: @ 0x0802A8C8 - push {lr} - ldr r2, _0802A8DC @ =gUnk_080CD140 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802A8DC: .4byte gUnk_080CD140 - - thumb_func_start sub_0802A8E0 -sub_0802A8E0: @ 0x0802A8E0 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0802A8EC -sub_0802A8EC: @ 0x0802A8EC - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0802A8F4 -sub_0802A8F4: @ 0x0802A8F4 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_0802A8FC -sub_0802A8FC: @ 0x0802A8FC - push {lr} - adds r2, r0, #0 - ldr r0, _0802A914 @ =gUnk_03003F80 - ldrb r0, [r0, #0x1c] - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - bne _0802A912 - adds r0, r2, #0 - adds r0, #0x45 - strb r1, [r0] -_0802A912: - pop {pc} - .align 2, 0 -_0802A914: .4byte gUnk_03003F80 - - thumb_func_start nullsub_143 -nullsub_143: @ 0x0802A918 - bx lr - .align 2, 0 - - thumb_func_start sub_0802A91C -sub_0802A91C: @ 0x0802A91C - adds r0, #0x45 - movs r1, #0 - strb r1, [r0] - bx lr - - thumb_func_start sub_0802A924 -sub_0802A924: @ 0x0802A924 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - movs r5, #0 - movs r6, #1 - movs r0, #1 - strb r0, [r7, #0xc] - strb r5, [r7, #0xd] - strb r5, [r7, #0xe] - strb r5, [r7, #0xf] - ldr r0, _0802A9A0 @ =gUnk_080CD16C - str r0, [r7, #0x48] - movs r4, #0 - ldr r0, _0802A9A4 @ =0x0000FFD0 - strh r0, [r7, #0x36] - bl sub_08000E50 - ands r0, r6 - adds r1, r7, #0 - adds r1, #0x80 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x82 - strh r5, [r0] - subs r0, #7 - strb r4, [r0] - adds r0, #6 - strb r4, [r0] - subs r0, #7 - strb r4, [r0] - subs r0, #2 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - subs r1, #0x48 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r7, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r7, #0x1b] - ldrb r0, [r7, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r7, #0x19] - adds r2, r7, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldrb r1, [r7, #0xa] - adds r1, #1 - adds r0, r7, #0 - bl sub_08004260 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802A9A0: .4byte gUnk_080CD16C -_0802A9A4: .4byte 0x0000FFD0 - - thumb_func_start sub_0802A9A8 -sub_0802A9A8: @ 0x0802A9A8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802A9B8 - subs r0, #1 - strb r0, [r4, #0xf] - b _0802AA3E -_0802A9B8: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802A9DE - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802AA38 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x40 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #8 - bl sub_0802ACDC - b _0802AA38 -_0802A9DE: - ldr r0, _0802AA14 @ =gUnk_03000BF0 - ldrh r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _0802AA3E - 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 r1, r4, #0 - adds r1, #0x82 - movs r0, #1 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AA18 - ldrh r0, [r2, #0xa] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #8 - b _0802AA26 - .align 2, 0 -_0802AA14: .4byte gUnk_03000BF0 -_0802AA18: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r2, #0xa] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - movs r0, #0x18 -_0802AA26: - strb r0, [r4, #0x15] - ldrh r0, [r2, #0xc] - adds r0, #0x40 - strh r0, [r4, #0x32] - movs r0, #0x80 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0802ADDC -_0802AA38: - adds r0, r4, #0 - bl sub_0802AC40 -_0802AA3E: - pop {r4, pc} - - thumb_func_start sub_0802AA40 -sub_0802AA40: @ 0x0802AA40 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802AC40 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AA66 - adds r0, r4, #0 - movs r1, #8 - bl sub_0802ACDC - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0802AA66: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802AA72 - subs r0, #1 - strb r0, [r4, #0xe] - b _0802AABE -_0802AA72: - ldr r2, [r4, #0x54] - cmp r2, #0 - beq _0802AABE - ldr r0, [r2, #4] - cmp r0, #0 - bne _0802AA82 - str r0, [r4, #0x54] - b _0802AABE -_0802AA82: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - lsls r0, r0, #4 - adds r1, r0, #0 - adds r1, #0x18 - movs r0, #0x18 - ands r1, r0 - adds r3, r4, #0 - adds r3, #0x7b - ldrb r0, [r3] - cmp r0, #0x20 - bls _0802AA9E - strb r1, [r4, #0x15] -_0802AA9E: - ldrb r0, [r4, #0x15] - cmp r0, r1 - bne _0802AABE - movs r0, #3 - strb r0, [r4, #0xc] - movs r1, #0 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - strb r1, [r3] - adds r1, r2, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - movs r0, #0x96 - strb r0, [r2, #0xe] -_0802AABE: - pop {r4, pc} - - thumb_func_start sub_0802AAC0 -sub_0802AAC0: @ 0x0802AAC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0802AC40 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r6, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AADE - adds r0, r4, #0 - movs r1, #4 - bl sub_0802AD1C -_0802AADE: - adds r2, r4, #0 - adds r2, #0x81 - ldrb r5, [r2] - cmp r5, #0 - beq _0802AB0E - ldr r1, [r4, #0x54] - cmp r1, #0 - bne _0802AAF2 - strb r1, [r2] - b _0802AB3C -_0802AAF2: - ldr r0, [r1, #4] - cmp r0, #0 - bne _0802AAFE - strb r0, [r2] - str r0, [r4, #0x54] - b _0802AB3C -_0802AAFE: - ldrb r3, [r1, #0xe] - cmp r3, #0 - bne _0802AB3C - ldrb r0, [r1, #0xf] - cmp r0, #0x50 - bhi _0802AB3C - strb r3, [r2] - b _0802AB3C -_0802AB0E: - movs r3, #4 - strb r3, [r4, #0xc] - movs r0, #0xc0 - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x80 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - strb r5, [r0] - adds r0, #1 - strb r3, [r0] - ldrb r0, [r4, #0x15] - orrs r0, r6 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0802AB3C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802AB40 -sub_0802AB40: @ 0x0802AB40 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802AC40 - adds r3, r4, #0 - adds r3, #0x78 - ldrb r0, [r3] - cmp r0, #1 - beq _0802AB94 - cmp r0, #1 - bgt _0802AB5C - cmp r0, #0 - beq _0802AB62 - b _0802AC04 -_0802AB5C: - cmp r0, #2 - beq _0802ABC2 - b _0802AC04 -_0802AB62: - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0802AB86 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AC04 - movs r0, #4 - strb r0, [r1] - ldrh r0, [r4, #0x36] - adds r0, #1 - strh r0, [r4, #0x36] - b _0802AC04 -_0802AB86: - movs r0, #1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x30 - strb r0, [r1] - b _0802ABB6 -_0802AB94: - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0802ABAE - movs r0, #2 - strb r0, [r3] - movs r0, #4 - strb r0, [r2] - b _0802AC04 -_0802ABAE: - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0802AC04 -_0802ABB6: - adds r0, r4, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _0802AC04 -_0802ABC2: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x30 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0802ABF2 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802AC04 - movs r0, #4 - strb r0, [r1] - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #4 - bl sub_0802ACDC - b _0802AC04 -_0802ABF2: - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strh r1, [r4, #0x24] - ldrb r1, [r4, #0xa] - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0802AC04: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802AC08 -sub_0802AC08: @ 0x0802AC08 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802AC36 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x40 - strb r0, [r4, #0xe] - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #8 - bl sub_0802ACDC - adds r0, r4, #0 - bl sub_0802ADDC -_0802AC36: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802AC40 -sub_0802AC40: @ 0x0802AC40 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - beq _0802ACA2 - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - bne _0802AC72 - strb r0, [r5] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - b _0802ACD8 -_0802AC72: - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0802AC92 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x38 - ands r0, r1 - cmp r0, #8 - beq _0802ACDA - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - b _0802ACD6 -_0802AC92: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x38 - ands r0, r1 - cmp r0, #0x18 - beq _0802ACDA - b _0802ACCE -_0802ACA2: - adds r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - beq _0802ACDA - movs r0, #1 - strb r0, [r5] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0802ACC8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - b _0802ACD6 -_0802ACC8: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] -_0802ACCE: - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 -_0802ACD6: - orrs r0, r1 -_0802ACD8: - strb r0, [r2] -_0802ACDA: - pop {r4, r5, pc} - - thumb_func_start sub_0802ACDC -sub_0802ACDC: @ 0x0802ACDC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0802ACF8 - ldr r0, _0802ACF4 @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r1, [r0, r2] - adds r1, #0x20 - b _0802AD00 - .align 2, 0 -_0802ACF4: .4byte gUnk_03000BF0 -_0802ACF8: - ldr r0, _0802AD18 @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r1, [r0, r2] - adds r1, #0xd0 -_0802AD00: - movs r3, #0xc - ldrsh r2, [r0, r3] - adds r2, #0x60 - adds r0, r4, #0 - bl sub_080045B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - strb r5, [r4, #0xf] - pop {r4, r5, pc} - .align 2, 0 -_0802AD18: .4byte gUnk_03000BF0 - - thumb_func_start sub_0802AD1C -sub_0802AD1C: @ 0x0802AD1C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0802AD48 - movs r1, #0x32 - ldrsh r2, [r0, r1] - subs r2, #0x18 - movs r3, #0x2e - ldrsh r1, [r0, r3] - adds r0, r4, #0 - bl sub_080045B4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - strb r5, [r4, #0xf] - b _0802AD50 -_0802AD48: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0802ACDC -_0802AD50: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802AD54 -sub_0802AD54: @ 0x0802AD54 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x82 - ldrh r0, [r0] - cmp r0, #0 - beq _0802ADAE - ldr r4, _0802AD7C @ =gUnk_03000BF0 - ldrh r0, [r4] - cmp r0, #0 - beq _0802AD80 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - adds r0, r2, #0 - bl sub_0805E7BC - b _0802ADD8 - .align 2, 0 -_0802AD7C: .4byte gUnk_03000BF0 -_0802AD80: - ldrh r1, [r4, #8] - movs r0, #0x32 - ldrsh r3, [r2, r0] - cmp r1, r3 - bgt _0802AD94 - ldrh r0, [r4, #0x20] - adds r0, r1, r0 - adds r0, #0x20 - cmp r0, r3 - bge _0802ADA0 -_0802AD94: - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - b _0802ADAE -_0802ADA0: - ldrb r0, [r2, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2, #0x18] -_0802ADAE: - adds r0, r2, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802ADD8 - ldr r0, [r2, #0x54] - cmp r0, #0 - beq _0802ADC4 - ldr r0, [r0, #4] - cmp r0, #0 - bne _0802ADD8 -_0802ADC4: - movs r1, #4 - strb r1, [r2, #0xc] - movs r0, #0xc0 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - adds r2, #0x80 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] -_0802ADD8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802ADDC -sub_0802ADDC: @ 0x0802ADDC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - adds r1, #2 - movs r0, #0x1b - bl CreateEnemy - adds r5, r0, #0 - cmp r5, #0 - beq _0802AE20 - adds r0, r4, #0 - bl sub_0802B234 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - strb r1, [r5, #0xb] - str r4, [r5, #0x50] - str r5, [r4, #0x54] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0802AE20 - subs r1, #7 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0802AE20: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802AE24 -sub_0802AE24: @ 0x0802AE24 - push {lr} - mov ip, r0 - movs r2, #0 - movs r3, #1 - strb r3, [r0, #0xc] - movs r0, #0xf0 - mov r1, ip - strb r0, [r1, #0xe] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r1, #0x20] - ldr r0, _0802AE64 @ =gUnk_080CD174 - str r0, [r1, #0x48] - adds r1, #0x3c - movs r0, #3 - strb r0, [r1] - mov r0, ip - strb r2, [r0, #0x16] - movs r0, #2 - mov r1, ip - strb r0, [r1, #0x1c] - mov r0, ip - adds r0, #0x81 - strb r2, [r0] - subs r0, #6 - strb r3, [r0] - mov r0, ip - movs r1, #3 - bl sub_08004260 - pop {pc} - .align 2, 0 -_0802AE64: .4byte gUnk_080CD174 - - thumb_func_start sub_0802AE68 -sub_0802AE68: @ 0x0802AE68 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802B250 - adds r1, r0, #0 - cmp r1, #0 - bne _0802AE8A - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802B264 - b _0802AEBA -_0802AE8A: - adds r0, r1, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AEA8 - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0802AEBA -_0802AEA8: - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802B264 -_0802AEBA: - pop {r4, pc} - - thumb_func_start sub_0802AEBC -sub_0802AEBC: @ 0x0802AEBC - push {lr} - ldr r2, _0802AED0 @ =gUnk_080CD158 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802AED0: .4byte gUnk_080CD158 - - thumb_func_start sub_0802AED4 -sub_0802AED4: @ 0x0802AED4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r5, r4, #0 - adds r5, #0x81 - ldrb r0, [r5] - cmp r0, #1 - bhi _0802AEFC - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _0802AF0C - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _0802AF0C -_0802AEFC: - adds r0, r4, #0 - bl sub_0800442E - cmp r0, #0 - bne _0802AF0C - adds r0, r4, #0 - bl sub_08078930 -_0802AF0C: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802AF24 - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802AF24 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] -_0802AF24: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802AF28 -sub_0802AF28: @ 0x0802AF28 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_08079BD8 - 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 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0802AF50 -sub_0802AF50: @ 0x0802AF50 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0802AF58 -sub_0802AF58: @ 0x0802AF58 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802AF74 -sub_0802AF74: @ 0x0802AF74 - push {lr} - adds r2, r0, #0 - movs r0, #0 - movs r1, #3 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - ldrb r0, [r2, #0xe] - cmp r0, #0x3c - bls _0802AF8A - movs r0, #0x3c - strb r0, [r2, #0xe] -_0802AF8A: - adds r0, r2, #0 - bl sub_08004274 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802AF94 -sub_0802AF94: @ 0x0802AF94 - push {lr} - bl sub_0805E7BC - pop {pc} - - thumb_func_start sub_0802AF9C -sub_0802AF9C: @ 0x0802AF9C - push {r4, 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 _0802AFC6 - ldr r0, [r4, #0x50] - adds r1, r0, #0 - adds r1, #0x7a - ldrb r0, [r1] - cmp r0, #0 - beq _0802AFC0 - subs r0, #1 - strb r0, [r1] -_0802AFC0: - adds r0, r4, #0 - bl sub_0805E7BC -_0802AFC6: - pop {r4, pc} - - thumb_func_start sub_0802AFC8 -sub_0802AFC8: @ 0x0802AFC8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - movs r7, #8 - cmp r0, #0x28 - bhi _0802B022 - movs r7, #4 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r2, [r1] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0802AFEC - adds r0, r2, #0 - subs r0, #0x10 - b _0802AFF0 -_0802AFEC: - adds r0, r2, #0 - adds r0, #0x10 -_0802AFF0: - strh r0, [r1] - adds r5, r1, #0 - ldrh r2, [r5] - movs r6, #0xf0 - adds r3, r6, #0 - ands r3, r2 - subs r0, r3, #1 - cmp r0, #0x7f - bls _0802B00C - movs r3, #0x80 - lsls r3, r3, #8 - adds r0, r3, #0 - eors r0, r2 - strh r0, [r5] -_0802B00C: - ldrh r0, [r1] - adds r3, r6, #0 - ands r3, r0 - movs r2, #0x98 - lsls r2, r2, #1 - subs r2, r2, r3 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C -_0802B022: - ldrb r0, [r4, #0xf] - ands r0, r7 - cmp r0, #0 - beq _0802B03A - ldrb r0, [r4, #0x1a] - lsrs r2, r0, #4 - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1a] - b _0802B044 -_0802B03A: - ldrb r1, [r4, #0x1a] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x1a] -_0802B044: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802B048 -sub_0802B048: @ 0x0802B048 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0802B080 - ldr r0, _0802B074 @ =gUnk_03000BF0 - ldrh r1, [r0, #8] - movs r3, #0x32 - ldrsh r2, [r4, r3] - cmp r1, r2 - bgt _0802B06A - ldrh r0, [r0, #0x20] - adds r0, r1, r0 - adds r0, #0x20 - cmp r0, r2 - bge _0802B078 -_0802B06A: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - b _0802B07E - .align 2, 0 -_0802B074: .4byte gUnk_03000BF0 -_0802B078: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 -_0802B07E: - strb r0, [r4, #0x10] -_0802B080: - ldr r5, [r4, #0x50] - cmp r5, #0 - beq _0802B0CA - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _0802B0CA - ldrb r1, [r5, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r4, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - lsrs r1, r1, #0x1d - ldrb r3, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r1, [r4, #0x1b] - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x1b] -_0802B0CA: - ldrb r2, [r4, #0xc] - cmp r2, #4 - beq _0802B19E - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B19E - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802B10E - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802B19E - movs r0, #0x50 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x82 - strh r1, [r0] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - b _0802B19E -_0802B10E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802B19E - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802B198 - cmp r2, #2 - bne _0802B12E - ldrb r0, [r4, #0xd] - cmp r0, #1 - bne _0802B12E - ldr r0, _0802B188 @ =gUnk_03003F80 - strb r1, [r0, #5] -_0802B12E: - adds r0, r4, #0 - bl sub_0805EC60 - movs r5, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldr r0, _0802B18C @ =gUnk_080CD17C - str r0, [r4, #0x48] - movs r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x13 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x7b - strb r5, [r0] - adds r0, r4, #0 - bl sub_08078954 - ldr r1, [r4, #0x50] - ldr r0, [r1, #4] - cmp r0, #0 - beq _0802B16C - adds r0, r1, #0 - adds r0, #0x81 - strb r5, [r0] -_0802B16C: - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r5, r0, #0 - cmp r5, #0 - beq _0802B190 - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - b _0802B19E - .align 2, 0 -_0802B188: .4byte gUnk_03003F80 -_0802B18C: .4byte gUnk_080CD17C -_0802B190: - adds r0, r4, #0 - bl sub_0805E7BC - b _0802B19E -_0802B198: - adds r0, r4, #0 - bl sub_0802AFC8 -_0802B19E: - pop {r4, r5, pc} - - thumb_func_start sub_0802B1A0 -sub_0802B1A0: @ 0x0802B1A0 - push {lr} - movs r1, #0 - movs r2, #1 - strb r2, [r0, #0xc] - strb r1, [r0, #0xe] - movs r1, #0x4f - strb r1, [r0, #0xf] - adds r1, r0, #0 - adds r1, #0x81 - strb r2, [r1] - movs r1, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0802B1BC -sub_0802B1BC: @ 0x0802B1BC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802B1CA - subs r0, #1 - strb r0, [r4, #0xe] -_0802B1CA: - adds r0, r4, #0 - bl sub_0802B250 - adds r1, r0, #0 - cmp r1, #0 - bne _0802B1E2 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0802B264 - b _0802B200 -_0802B1E2: - adds r0, r1, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B1F6 - adds r0, r1, #0 - adds r1, r4, #0 - bl sub_0806FA24 - b _0802B200 -_0802B1F6: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0802B264 -_0802B200: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B204 -sub_0802B204: @ 0x0802B204 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0xa0 - lsls r1, r1, #6 - bl sub_080044EC - cmp r0, #1 - bne _0802B232 - movs r0, #0x22 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0802B22E - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, [r5, #0x50] - str r0, [r4, #0x50] -_0802B22E: - bl sub_0805E780 -_0802B232: - pop {r4, r5, pc} - - thumb_func_start sub_0802B234 -sub_0802B234: @ 0x0802B234 - push {r4, lr} - movs r4, #0 - bl sub_080002A0 - ldr r1, _0802B24C @ =0xFFFFFE3C - adds r0, r0, r1 - cmp r0, #1 - bls _0802B246 - movs r4, #1 -_0802B246: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0802B24C: .4byte 0xFFFFFE3C - - thumb_func_start sub_0802B250 -sub_0802B250: @ 0x0802B250 - push {lr} - ldr r1, [r0, #0x50] - cmp r1, #0 - beq _0802B260 - ldr r0, [r1, #4] - cmp r0, #0 - bne _0802B260 - movs r1, #0 -_0802B260: - adds r0, r1, #0 - pop {pc} - - thumb_func_start sub_0802B264 -sub_0802B264: @ 0x0802B264 - push {r4, lr} - adds r4, r0, #0 - 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 r0, r4, #0 - bl sub_0802B234 - cmp r0, #0 - beq _0802B294 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x18 - orrs r1, r0 - strb r1, [r2] - b _0802B2A2 -_0802B294: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0802B2A2: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B2AC -sub_0802B2AC: @ 0x0802B2AC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0802B2C4 @ =gUnk_080CD234 - 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 -_0802B2C4: .4byte gUnk_080CD234 - - thumb_func_start sub_0802B2C8 -sub_0802B2C8: @ 0x0802B2C8 - push {lr} - ldr r2, _0802B2DC @ =gUnk_080CD24C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802B2DC: .4byte gUnk_080CD24C - - thumb_func_start sub_0802B2E0 -sub_0802B2E0: @ 0x0802B2E0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802B334 - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x14 - bne _0802B334 - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0802B334 - str r1, [r4, #0x54] - movs r0, #0xe - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806FA24 -_0802B334: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_15 -nullsub_15: @ 0x0802B338 - bx lr - .align 2, 0 - - thumb_func_start sub_0802B33C -sub_0802B33C: @ 0x0802B33C - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x15] - movs r0, #0x78 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B35C -sub_0802B35C: @ 0x0802B35C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AEF88 - movs r3, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0802B374 - movs r3, #1 -_0802B374: - ldrh r0, [r4, #0x2a] - adds r2, r0, #0 - cmp r2, #0 - bne _0802B3A4 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0802B38A - b _0802B4A6 -_0802B38A: - movs r0, #0x78 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - cmp r3, #0 - beq _0802B39A - adds r1, r0, #0 - adds r1, #8 - b _0802B39E -_0802B39A: - adds r1, r0, #0 - adds r1, #0x18 -_0802B39E: - movs r0, #0x18 - ands r0, r1 - b _0802B4A4 -_0802B3A4: - movs r0, #0x78 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - movs r1, #0x18 - ands r1, r0 - cmp r1, #8 - beq _0802B474 - cmp r1, #8 - bgt _0802B3BC - cmp r1, #0 - beq _0802B3C6 - b _0802B4A6 -_0802B3BC: - cmp r1, #0x10 - beq _0802B404 - cmp r1, #0x18 - beq _0802B442 - b _0802B4A6 -_0802B3C6: - movs r0, #0xe - ands r0, r2 - cmp r0, #0 - beq _0802B3D8 - movs r0, #8 - cmp r3, #0 - beq _0802B4A4 - movs r0, #0x18 - b _0802B4A4 -_0802B3D8: - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, r1 - bne _0802B3EE - cmp r3, #0 - beq _0802B3EE - movs r0, #8 - strb r0, [r4, #0x15] -_0802B3EE: - movs r0, #0xe0 - lsls r0, r0, #4 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #3 - cmp r0, r1 - bne _0802B4A6 - cmp r3, #0 - bne _0802B4A6 - movs r0, #0x18 - b _0802B4A4 -_0802B404: - movs r0, #0xe0 - ands r0, r2 - cmp r0, #0 - beq _0802B416 - movs r0, #0x18 - cmp r3, #0 - beq _0802B4A4 - movs r0, #8 - b _0802B4A4 -_0802B416: - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #6 - cmp r0, r1 - bne _0802B42C - cmp r3, #0 - bne _0802B42C - movs r0, #8 - strb r0, [r4, #0x15] -_0802B42C: - movs r0, #0xe0 - lsls r0, r0, #4 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #2 - cmp r0, r1 - bne _0802B4A6 - cmp r3, #0 - beq _0802B4A6 - movs r0, #0x18 - b _0802B4A4 -_0802B442: - movs r1, #0xe0 - lsls r1, r1, #4 - ands r1, r2 - cmp r1, #0 - beq _0802B458 - rsbs r0, r3, #0 - orrs r0, r3 - asrs r0, r0, #0x1f - movs r1, #0x10 - ands r0, r1 - b _0802B4A4 -_0802B458: - movs r0, #0xe - ands r0, r2 - cmp r0, #4 - bne _0802B466 - cmp r3, #0 - beq _0802B466 - strb r1, [r4, #0x15] -_0802B466: - movs r0, #0xe0 - ands r0, r2 - cmp r0, #0x40 - bne _0802B4A6 - cmp r3, #0 - bne _0802B4A6 - b _0802B4A2 -_0802B474: - movs r0, #0xe0 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0802B488 - movs r0, #0 - cmp r3, #0 - bne _0802B4A4 - movs r0, #0x10 - b _0802B4A4 -_0802B488: - movs r0, #0xe - ands r0, r2 - cmp r0, #2 - bne _0802B496 - cmp r3, #0 - bne _0802B496 - strb r3, [r4, #0x15] -_0802B496: - movs r0, #0xe0 - ands r0, r2 - cmp r0, #0x20 - bne _0802B4A6 - cmp r3, #0 - beq _0802B4A6 -_0802B4A2: - movs r0, #0x10 -_0802B4A4: - strb r0, [r4, #0x15] -_0802B4A6: - pop {r4, pc} - - thumb_func_start sub_0802B4A8 -sub_0802B4A8: @ 0x0802B4A8 - 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 _0802B4D6 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0x60 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _0802B4D0 - ldrh r0, [r1, #0x32] - subs r0, #4 - strh r0, [r1, #0x32] -_0802B4D0: - adds r0, r4, #0 - bl sub_0805E7BC -_0802B4D6: - pop {r4, pc} - - thumb_func_start sub_0802B4D8 -sub_0802B4D8: @ 0x0802B4D8 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _0802B4FC - ldr r0, _0802B4F8 @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _0802B510 - .align 2, 0 -_0802B4F8: .4byte gUnk_080012C8 -_0802B4FC: - ldr r4, _0802B514 @ =gUnk_080CD27C - 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 -_0802B510: - pop {r4, r5, pc} - .align 2, 0 -_0802B514: .4byte gUnk_080CD27C - - thumb_func_start sub_0802B518 -sub_0802B518: @ 0x0802B518 - push {lr} - ldr r2, _0802B52C @ =gUnk_080CD298 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802B52C: .4byte gUnk_080CD298 - - thumb_func_start sub_0802B530 -sub_0802B530: @ 0x0802B530 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802B540 -sub_0802B540: @ 0x0802B540 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802B550 - subs r0, #1 - strb r0, [r4, #0xe] - b _0802B56A -_0802B550: - adds r0, r4, #0 - movs r1, #1 - movs r2, #0xc - bl sub_0804A024 - adds r1, r0, #0 - cmp r1, #0xff - beq _0802B56A - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0x15] -_0802B56A: - pop {r4, pc} - - thumb_func_start sub_0802B56C -sub_0802B56C: @ 0x0802B56C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802B586 - movs r0, #0x40 - strh r0, [r4, #0x24] -_0802B586: - adds r0, r4, #0 - bl sub_080AF038 - cmp r0, #0 - beq _0802B5B8 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - beq _0802B5A2 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0802B5A2: - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _0802B5B4 @ =0x0000021F - cmp r1, r0 - bgt _0802B5C4 - adds r0, r2, #4 - strh r0, [r4, #0x24] - b _0802B5C4 - .align 2, 0 -_0802B5B4: .4byte 0x0000021F -_0802B5B8: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_0802B5C4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B5C8 -sub_0802B5C8: @ 0x0802B5C8 - 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 _0802B5EE - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0802B5EE: - pop {r4, pc} - - thumb_func_start sub_0802B5F0 -sub_0802B5F0: @ 0x0802B5F0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802B60C @ =gUnk_080CD2D8 - 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 -_0802B60C: .4byte gUnk_080CD2D8 - - thumb_func_start sub_0802B610 -sub_0802B610: @ 0x0802B610 - push {lr} - ldr r2, _0802B624 @ =gUnk_080CD2F0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802B624: .4byte gUnk_080CD2F0 - - thumb_func_start sub_0802B628 -sub_0802B628: @ 0x0802B628 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0x1d - bhi _0802B706 - lsls r0, r1, #2 - ldr r1, _0802B644 @ =_0802B648 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B644: .4byte _0802B648 -_0802B648: @ jump table - .4byte _0802B6C0 @ case 0 - .4byte _0802B706 @ case 1 - .4byte _0802B6CC @ case 2 - .4byte _0802B6CC @ case 3 - .4byte _0802B6C0 @ case 4 - .4byte _0802B6C0 @ case 5 - .4byte _0802B6C0 @ case 6 - .4byte _0802B706 @ case 7 - .4byte _0802B6C0 @ case 8 - .4byte _0802B6C0 @ case 9 - .4byte _0802B6C0 @ case 10 - .4byte _0802B6C0 @ case 11 - .4byte _0802B6C0 @ case 12 - .4byte _0802B706 @ case 13 - .4byte _0802B706 @ case 14 - .4byte _0802B706 @ case 15 - .4byte _0802B706 @ case 16 - .4byte _0802B706 @ case 17 - .4byte _0802B706 @ case 18 - .4byte _0802B706 @ case 19 - .4byte _0802B706 @ case 20 - .4byte _0802B706 @ case 21 - .4byte _0802B6CC @ case 22 - .4byte _0802B706 @ case 23 - .4byte _0802B6CC @ case 24 - .4byte _0802B6CC @ case 25 - .4byte _0802B6CC @ case 26 - .4byte _0802B706 @ case 27 - .4byte _0802B706 @ case 28 - .4byte _0802B6CC @ case 29 -_0802B6C0: - ldrb r0, [r4, #0xc] - cmp r0, #4 - bne _0802B706 - movs r0, #1 - strb r0, [r4, #0xe] - b _0802B706 -_0802B6CC: - ldrb r0, [r4, #0xc] - cmp r0, #5 - bhi _0802B706 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r1, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf8 - strb r0, [r1] - adds r1, #2 - movs r0, #0x64 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #9 - bl sub_08004260 -_0802B706: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802B718 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802B718: - ldr r1, _0802B724 @ =gUnk_080CD2D8 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0802B724: .4byte gUnk_080CD2D8 - - thumb_func_start nullsub_144 -nullsub_144: @ 0x0802B728 - bx lr - .align 2, 0 - - thumb_func_start sub_0802B72C -sub_0802B72C: @ 0x0802B72C - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0802B7A4 - pop {r4, pc} - - thumb_func_start sub_0802B744 -sub_0802B744: @ 0x0802B744 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802B780 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0xc - bl sub_0804A024 - adds r1, r0, #0 - cmp r1, #0xff - beq _0802B780 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x18 - ands r1, r0 - strb r1, [r4, #0x15] - adds r0, r4, #0 - movs r1, #8 - bl sub_08004260 - b _0802B7A2 -_0802B780: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802B794 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - b _0802B7A0 -_0802B794: - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0802B7A2 - movs r0, #1 -_0802B7A0: - strb r0, [r4, #0xe] -_0802B7A2: - pop {r4, pc} - - thumb_func_start sub_0802B7A4 -sub_0802B7A4: @ 0x0802B7A4 - 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 _0802B7F4 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _0802B7F8 @ =gUnk_080CD314 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x60 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0802B960 - ldrb r0, [r4, #0x15] - lsls r1, r0, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #0xff - beq _0802B7F4 - lsrs r2, r1, #0x1b - ldrb r0, [r4, #0x14] - cmp r2, r0 - beq _0802B7F4 - movs r1, #3 - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08004260 -_0802B7F4: - pop {r4, pc} - .align 2, 0 -_0802B7F8: .4byte gUnk_080CD314 - - thumb_func_start sub_0802B7FC -sub_0802B7FC: @ 0x0802B7FC - push {r4, 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 _0802B81E - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_0802B81E: - pop {r4, pc} - - thumb_func_start sub_0802B820 -sub_0802B820: @ 0x0802B820 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - cmp r0, #0 - bne _0802B830 - movs r0, #1 - strb r0, [r4, #0xe] -_0802B830: - 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 _0802B84A - adds r0, r4, #0 - bl sub_0802B9B4 - b _0802B87E -_0802B84A: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802B878 - ldrb r1, [r4, #0xe] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0802B87E - ldr r0, _0802B874 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - b _0802B87E - .align 2, 0 -_0802B874: .4byte gUnk_020000B0 -_0802B878: - adds r0, r4, #0 - bl sub_0802B9B4 -_0802B87E: - pop {r4, pc} - - thumb_func_start sub_0802B880 -sub_0802B880: @ 0x0802B880 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802B8AC - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #0x3c - strb r0, [r2, #0xe] - ldrb r0, [r2, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #3 - strb r0, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r0, r2, #0 - bl sub_08004260 -_0802B8AC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802B8B0 -sub_0802B8B0: @ 0x0802B8B0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - beq _0802B8CC - cmp r0, #1 - beq _0802B8D4 - b _0802B8DA -_0802B8CC: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x96 - strb r0, [r4, #0xe] -_0802B8D4: - ldr r0, _0802B8DC @ =0x0000012B - bl sub_08004488 -_0802B8DA: - pop {r4, pc} - .align 2, 0 -_0802B8DC: .4byte 0x0000012B - - thumb_func_start sub_0802B8E0 -sub_0802B8E0: @ 0x0802B8E0 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xe] - subs r1, r0, #1 - strb r1, [r3, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - beq _0802B91C - adds r4, r0, #0 - lsrs r0, r4, #0x18 - cmp r0, #0x3b - bhi _0802B940 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0802B940 - adds r3, #0x62 - ldr r2, _0802B918 @ =gUnk_080CD318 - lsrs r0, r4, #0x19 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - b _0802B940 - .align 2, 0 -_0802B918: .4byte gUnk_080CD318 -_0802B91C: - movs r0, #8 - strb r0, [r3, #0xc] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r3, #0x20] - movs r0, #0x60 - strh r0, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x3f - movs r0, #0x63 - strb r0, [r1] - ldrb r1, [r3, #0x14] - adds r0, r3, #0 - bl sub_08004260 - ldr r0, _0802B944 @ =0x0000012B - bl sub_08004488 -_0802B940: - pop {r4, pc} - .align 2, 0 -_0802B944: .4byte 0x0000012B - - thumb_func_start sub_0802B948 -sub_0802B948: @ 0x0802B948 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _0802B95E - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] -_0802B95E: - pop {r4, pc} - - thumb_func_start sub_0802B960 -sub_0802B960: @ 0x0802B960 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802B986 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - cmp r1, #0 - bne _0802B9A6 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #4 - b _0802B9AA -_0802B986: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0802B9A6 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _0802B9A6 - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 - b _0802B9AA -_0802B9A6: - bl sub_08000E50 -_0802B9AA: - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802B9B4 -sub_0802B9B4: @ 0x0802B9B4 - push {lr} - movs r1, #5 - strb r1, [r0, #0xc] - movs r1, #0x3c - strb r1, [r0, #0xe] - ldrb r1, [r0, #0x15] - lsrs r1, r1, #3 - movs r2, #3 - ands r1, r2 - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - adds r1, #4 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802B9D4 -sub_0802B9D4: @ 0x0802B9D4 - push {lr} - ldr r2, _0802B9E8 @ =gUnk_080CD3C4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802B9E8: .4byte gUnk_080CD3C4 - - thumb_func_start sub_0802B9EC -sub_0802B9EC: @ 0x0802B9EC - adds r2, r0, #0 - movs r0, #1 - strb r0, [r2, #0xc] - ldr r1, _0802BA14 @ =gUnk_080CD3D4 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x78 - strh r1, [r0] - adds r0, #0xc - ldrh r1, [r0] - subs r0, #8 - strh r1, [r0] - adds r0, #0xa - ldrh r1, [r0] - subs r0, #8 - strh r1, [r0] - bx lr - .align 2, 0 -_0802BA14: .4byte gUnk_080CD3D4 - - thumb_func_start sub_0802BA18 -sub_0802BA18: @ 0x0802BA18 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #1 - movs r2, #0xe - bl sub_0804A024 - adds r5, r0, #0 - cmp r5, #0xff - beq _0802BA88 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0802BB2C - cmp r0, #0 - bne _0802BA88 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x24] - strb r5, [r4, #0x15] - lsrs r0, r5, #3 - cmp r0, #1 - beq _0802BA60 - cmp r0, #1 - blo _0802BA58 - cmp r0, #2 - beq _0802BA6C - cmp r0, #3 - beq _0802BA78 - b _0802BA88 -_0802BA58: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r4, #0x32] - b _0802BA7E -_0802BA60: - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - b _0802BA82 -_0802BA6C: - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - b _0802BA82 -_0802BA78: - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r4, #0x2e] -_0802BA7E: - ldrh r1, [r1] - subs r0, r0, r1 -_0802BA82: - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] -_0802BA88: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802BA8C -sub_0802BA8C: @ 0x0802BA8C - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF038 - cmp r0, #0 - beq _0802BADE - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _0802BAC4 - cmp r0, #1 - bgt _0802BAAA - cmp r0, #0 - beq _0802BAB4 - b _0802BAFA -_0802BAAA: - cmp r0, #2 - beq _0802BAD0 - cmp r0, #3 - beq _0802BAE6 - b _0802BAFA -_0802BAB4: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _0802BAFA - b _0802BADE -_0802BAC4: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - b _0802BADA -_0802BAD0: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] -_0802BADA: - cmp r1, r0 - bgt _0802BAFA -_0802BADE: - adds r0, r4, #0 - bl sub_0802BB10 - b _0802BAFA -_0802BAE6: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - cmp r1, r0 - blt _0802BAFA - adds r0, r4, #0 - bl sub_0802BB10 -_0802BAFA: - pop {r4, pc} - - thumb_func_start sub_0802BAFC -sub_0802BAFC: @ 0x0802BAFC - push {r4, lr} - adds r4, r0, #0 - bl sub_080AF038 - cmp r0, #0 - bne _0802BB0C - movs r0, #1 - strb r0, [r4, #0xc] -_0802BB0C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802BB10 -sub_0802BB10: @ 0x0802BB10 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0xc0 - strh r1, [r0, #0x24] - ldrb r1, [r0, #0x15] - movs r2, #0x10 - eors r1, r2 - strb r1, [r0, #0x15] - movs r0, #0x74 - bl sub_08004488 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802BB2C -sub_0802BB2C: @ 0x0802BB2C - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x38 - ldrb r0, [r0] - ldr r4, _0802BB60 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0802BB3C - ldr r4, _0802BB64 @ =gUnk_0200D654 -_0802BB3C: - lsrs r3, r1, #2 - ldr r0, _0802BB68 @ =gUnk_080CD3DC - adds r3, r3, r0 - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r0, #0 - ldrsb r0, [r3, r0] - adds r1, r1, r0 - movs r0, #0x32 - ldrsh r2, [r2, r0] - movs r0, #1 - ldrsb r0, [r3, r0] - adds r2, r2, r0 - adds r0, r4, #0 - movs r3, #0 - bl sub_080AE4CC - pop {r4, pc} - .align 2, 0 -_0802BB60: .4byte gUnk_02027EB4 -_0802BB64: .4byte gUnk_0200D654 -_0802BB68: .4byte gUnk_080CD3DC - - thumb_func_start sub_0802BB6C -sub_0802BB6C: @ 0x0802BB6C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0802BB94 - ldr r1, _0802BB90 @ =gUnk_080CD3E4 - 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 _0802BBA4 - .align 2, 0 -_0802BB90: .4byte gUnk_080CD3E4 -_0802BB94: - ldr r0, _0802BBA8 @ =gUnk_080CD3FC - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0802BBA4: - pop {r4, pc} - .align 2, 0 -_0802BBA8: .4byte gUnk_080CD3FC - - thumb_func_start sub_0802BBAC -sub_0802BBAC: @ 0x0802BBAC - push {lr} - ldr r2, _0802BBC0 @ =gUnk_080CD408 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802BBC0: .4byte gUnk_080CD408 - - thumb_func_start sub_0802BBC4 -sub_0802BBC4: @ 0x0802BBC4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x19 - beq _0802BBFE - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - beq _0802BBEA - cmp r1, #0 - blt _0802BBFE - cmp r1, #3 - bgt _0802BBFE - cmp r1, #2 - blt _0802BBFE -_0802BBEA: - ldrb r0, [r4, #0xc] - cmp r0, #4 - bne _0802BBFE - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802C218 -_0802BBFE: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802BC10 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802BC10: - ldr r1, _0802BC1C @ =gUnk_080CD3E4 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0802BC1C: .4byte gUnk_080CD3E4 - - thumb_func_start sub_0802BC20 -sub_0802BC20: @ 0x0802BC20 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x19 - beq _0802BC4C - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0802BC6C - ldr r0, _0802BC48 @ =gUnk_080CD42C - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0802BC6C - .align 2, 0 -_0802BC48: .4byte gUnk_080CD42C -_0802BC4C: - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _0802BC5C - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0802BC6C -_0802BC5C: - ldr r0, _0802BC70 @ =gUnk_080CD438 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0802BC6C: - pop {r4, pc} - .align 2, 0 -_0802BC70: .4byte gUnk_080CD438 - - thumb_func_start sub_0802BC74 -sub_0802BC74: @ 0x0802BC74 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802C1C0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0x1d] - ldr r0, _0802BC9C @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - movs r1, #2 - eors r0, r1 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_0802BC9C: .4byte gLinkEntity - - thumb_func_start sub_0802BCA0 -sub_0802BCA0: @ 0x0802BCA0 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0802BCA8 -sub_0802BCA8: @ 0x0802BCA8 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x3f - ldrb r0, [r1] - cmp r0, #0x19 - beq _0802BCFA - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0x19 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3a - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - movs r0, #0x12 - strb r0, [r4, #0x1c] - movs r0, #0x20 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _0802BCF0 - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - adds r0, r4, #0 - bl sub_0806FA24 -_0802BCF0: - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0802BCFA: - pop {r4, pc} - - thumb_func_start sub_0802BCFC -sub_0802BCFC: @ 0x0802BCFC - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0802BD08 -sub_0802BD08: @ 0x0802BD08 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_0802BD10 -sub_0802BD10: @ 0x0802BD10 - 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_145 -nullsub_145: @ 0x0802BD24 - bx lr - .align 2, 0 - - thumb_func_start sub_0802BD28 -sub_0802BD28: @ 0x0802BD28 - 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 _0802BD4C - 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 _0802BD52 -_0802BD4C: - adds r0, r2, #0 - adds r0, #0x45 - strb r1, [r0] -_0802BD52: - pop {pc} - - thumb_func_start sub_0802BD54 -sub_0802BD54: @ 0x0802BD54 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - movs r0, #0x3c - strb r0, [r4, #0x1d] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - bl sub_08000E50 - 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 sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0802BD8C -sub_0802BD8C: @ 0x0802BD8C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802BD9C - subs r0, #1 - strb r0, [r4, #0xe] - b _0802BDDE -_0802BD9C: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802BDCA - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x10 - bl sub_0804A024 - adds r1, r0, #0 - cmp r1, #0xff - beq _0802BDCA - adds r0, r4, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r1, r0 - beq _0802BDCA - adds r0, r4, #0 - bl sub_0802C058 - b _0802BDDE -_0802BDCA: - adds r0, r4, #0 - bl sub_0802C020 - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0802BDDE - adds r0, r4, #0 - bl sub_0802C058 -_0802BDDE: - pop {r4, pc} - - thumb_func_start sub_0802BDE0 -sub_0802BDE0: @ 0x0802BDE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802C06C - cmp r0, #0 - beq _0802BDFE - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0xff - strb r0, [r1] - b _0802BE16 -_0802BDFE: - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] -_0802BE16: - pop {r4, pc} - - thumb_func_start sub_0802BE18 -sub_0802BE18: @ 0x0802BE18 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802BE3E - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0802BE44 -_0802BE3E: - adds r0, r4, #0 - bl sub_0802C18C -_0802BE44: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802BE48 -sub_0802BE48: @ 0x0802BE48 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - cmp r0, #0 - bne _0802BE64 - adds r0, r4, #0 - bl sub_0802C218 - movs r0, #8 - movs r1, #0 - bl sub_08080964 - b _0802BE7E -_0802BE64: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0802C1CC - adds r0, r4, #0 - bl sub_0802C0E8 - cmp r0, #0 - beq _0802BE7E - movs r0, #5 - strb r0, [r4, #0xc] -_0802BE7E: - pop {r4, pc} - - thumb_func_start sub_0802BE80 -sub_0802BE80: @ 0x0802BE80 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x24] - subs r0, #0x20 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0xff - ble _0802BE98 - adds r0, r4, #0 - bl sub_0802C1CC -_0802BE98: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - ble _0802BEAE - adds r0, r4, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_0802C18C - b _0802BEBA -_0802BEAE: - adds r0, r4, #0 - bl sub_0802C1C0 - ldrb r0, [r4, #0xe] - adds r0, #0x1e - strb r0, [r4, #0xe] -_0802BEBA: - pop {r4, pc} - - thumb_func_start sub_0802BEBC -sub_0802BEBC: @ 0x0802BEBC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0x15] - movs r4, #0x10 - eors r0, r4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_080AEFE0 - ldrb r0, [r5, #0x15] - eors r0, r4 - strb r0, [r5, #0x15] - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_080044EC - cmp r0, #0 - bne _0802BEE8 - adds r0, r5, #0 - bl sub_0802C1C0 -_0802BEE8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802BEEC -sub_0802BEEC: @ 0x0802BEEC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802BF1E - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0802BF3A - ldrb r0, [r4, #0x14] - movs r1, #2 - eors r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - b _0802BF3A -_0802BF1E: - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0802BF3A - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_0802BF3A: - pop {r4, pc} - - thumb_func_start sub_0802BF3C -sub_0802BF3C: @ 0x0802BF3C - push {r4, lr} - adds r4, r0, #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 _0802BF76 - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0802C020 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _0802BF76 - strb r0, [r4, #0x14] - adds r1, r0, #4 - adds r0, r4, #0 - bl sub_08004260 -_0802BF76: - pop {r4, pc} - - thumb_func_start sub_0802BF78 -sub_0802BF78: @ 0x0802BF78 - push {lr} - movs r2, #1 - strb r2, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x3b - movs r1, #4 - strb r1, [r3] - strb r2, [r0, #0x1c] - ldrb r1, [r0, #0x14] - lsls r1, r1, #3 - strb r1, [r0, #0x15] - ldrb r1, [r0, #0x14] - adds r1, #8 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0802BF98 -sub_0802BF98: @ 0x0802BF98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0802BFBC - ldr r0, _0802BFB8 @ =gUnk_080CD450 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0802BFCC - .align 2, 0 -_0802BFB8: .4byte gUnk_080CD450 -_0802BFBC: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_0802BFCC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802BFD0 -sub_0802BFD0: @ 0x0802BFD0 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0802BFD8 -sub_0802BFD8: @ 0x0802BFD8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0802BFE0 -sub_0802BFE0: @ 0x0802BFE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0802BFF2 - adds r0, r4, #0 - bl sub_0805E7BC -_0802BFF2: - pop {r4, pc} - - thumb_func_start sub_0802BFF4 -sub_0802BFF4: @ 0x0802BFF4 - push {lr} - adds r3, r0, #0 - ldrb r2, [r3, #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, [r3, #0x18] - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802C01C - adds r0, r3, #0 - bl sub_0805E7BC -_0802C01C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802C020 -sub_0802C020: @ 0x0802C020 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08000E50 - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0802C03E - movs r6, #1 - adds r0, r4, #0 - ands r0, r6 - cmp r0, #0 - beq _0802C044 -_0802C03E: - movs r0, #0x18 - ands r0, r4 - b _0802C056 -_0802C044: - adds r0, r5, #0 - bl sub_08049EE4 - lsrs r1, r4, #0x10 - ands r1, r6 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r1, #0x18 - ands r0, r1 -_0802C056: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802C058 -sub_0802C058: @ 0x0802C058 - push {lr} - movs r2, #2 - strb r2, [r0, #0xc] - strb r1, [r0, #0x15] - lsrs r1, r1, #3 - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0802C06C -sub_0802C06C: @ 0x0802C06C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r3, [r0, #0x48] - movs r1, #0 - ldrsb r1, [r3, r1] - adds r6, r2, r1 - movs r1, #0x32 - ldrsh r2, [r0, r1] - movs r1, #1 - ldrsb r1, [r3, r1] - adds r5, r2, r1 - ldr r3, _0802C0CC @ =gUnk_080CD45C - ldrb r1, [r0, #0x15] - lsrs r1, r1, #2 - adds r2, r1, r3 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - mov sb, r2 - adds r1, #1 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov r8, r1 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _0802C0D0 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0802C0B2 - ldr r7, _0802C0D4 @ =gUnk_0200D654 -_0802C0B2: - movs r4, #0 -_0802C0B4: - add r6, sb - add r5, r8 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #0 - bl sub_080AE4CC - cmp r0, #0 - beq _0802C0D8 - movs r0, #0 - b _0802C0E0 - .align 2, 0 -_0802C0CC: .4byte gUnk_080CD45C -_0802C0D0: .4byte gUnk_02027EB4 -_0802C0D4: .4byte gUnk_0200D654 -_0802C0D8: - adds r4, #1 - cmp r4, #7 - bls _0802C0B4 - movs r0, #1 -_0802C0E0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802C0E8 -sub_0802C0E8: @ 0x0802C0E8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802C0FC - movs r0, #1 - b _0802C178 -_0802C0FC: - ldrb r3, [r5, #0x15] - lsrs r3, r3, #2 - ldr r0, _0802C17C @ =gUnk_080CD45C - adds r3, r3, r0 - movs r0, #0x2e - ldrsh r2, [r5, r0] - ldr r4, [r5, #0x48] - movs r0, #0 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - movs r1, #0 - ldrsb r1, [r3, r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r6, r2, r0 - movs r0, #0x32 - ldrsh r2, [r5, r0] - movs r0, #1 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - movs r1, #1 - ldrsb r1, [r3, r1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - adds r4, r2, r0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _0802C180 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0802C140 - ldr r7, _0802C184 @ =gUnk_0200D654 -_0802C140: - movs r5, #0 - ldr r1, _0802C188 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r0, r6, r0 - asrs r0, r0, #4 - movs r2, #0x3f - ands r0, r2 - ldrh r1, [r1, #8] - subs r1, r4, r1 - asrs r1, r1, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #9 - bl sub_0806FC24 - cmp r0, #0 - bne _0802C176 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #0 - bl sub_080AE4CC - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r5, r1, #0x1f -_0802C176: - adds r0, r5, #0 -_0802C178: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802C17C: .4byte gUnk_080CD45C -_0802C180: .4byte gUnk_02027EB4 -_0802C184: .4byte gUnk_0200D654 -_0802C188: .4byte gUnk_03000BF0 - - thumb_func_start sub_0802C18C -sub_0802C18C: @ 0x0802C18C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x78 - ldrb r1, [r0] - subs r1, #1 - strb r1, [r0] - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0802C1BC - movs r0, #0xf - movs r1, #0x11 - movs r2, #0x40 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0802C1BC - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_0802C1BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802C1C0 -sub_0802C1C0: @ 0x0802C1C0 - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_0802C1CC -sub_0802C1CC: @ 0x0802C1CC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0x14] - lsls r4, r4, #2 - ldr r0, _0802C214 @ =gUnk_080CD464 - adds r4, r4, r0 - movs r0, #0x2e - ldrsh r2, [r5, r0] - movs r0, #0 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - movs r0, #0x32 - ldrsh r3, [r5, r0] - movs r0, #1 - ldrsb r0, [r4, r0] - adds r3, r3, r0 - adds r0, r5, #0 - movs r1, #9 - bl sub_08008796 - movs r0, #0x2e - ldrsh r2, [r5, r0] - movs r0, #2 - ldrsb r0, [r4, r0] - adds r2, r2, r0 - movs r0, #0x32 - ldrsh r3, [r5, r0] - movs r0, #3 - ldrsb r0, [r4, r0] - adds r3, r3, r0 - adds r0, r5, #0 - movs r1, #9 - bl sub_08008796 - pop {r4, r5, pc} - .align 2, 0 -_0802C214: .4byte gUnk_080CD464 - - thumb_func_start sub_0802C218 -sub_0802C218: @ 0x0802C218 - movs r1, #6 - strb r1, [r0, #0xc] - movs r1, #0xe0 - strh r1, [r0, #0x24] - movs r1, #0xc0 - lsls r1, r1, #9 - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_0802C228 -sub_0802C228: @ 0x0802C228 - push {lr} - ldr r1, _0802C234 @ =gUnk_080CD540 - bl sub_0800129E - pop {pc} - .align 2, 0 -_0802C234: .4byte gUnk_080CD540 - - thumb_func_start sub_0802C238 -sub_0802C238: @ 0x0802C238 - push {lr} - ldr r2, _0802C24C @ =gUnk_080CD558 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802C24C: .4byte gUnk_080CD558 - - thumb_func_start sub_0802C250 -sub_0802C250: @ 0x0802C250 - bx lr - .align 2, 0 - - thumb_func_start sub_0802C254 -sub_0802C254: @ 0x0802C254 - bx lr - .align 2, 0 - - thumb_func_start sub_0802C258 -sub_0802C258: @ 0x0802C258 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #2 - strb r0, [r4, #0xe] - bl sub_08000E50 - adds r2, r0, #0 - movs r0, #0x70 - ands r2, r0 - adds r3, r4, #0 - adds r3, #0x7a - movs r1, #0 - strh r2, [r3] - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0802C288 - cmp r0, #2 - beq _0802C290 - b _0802C29C -_0802C288: - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r0, #0 - b _0802C296 -_0802C290: - movs r5, #0x80 - lsls r5, r5, #2 - adds r1, r5, #0 -_0802C296: - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r3] -_0802C29C: - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - movs r2, #0 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x82 - strh r0, [r1] - ldr r0, _0802C310 @ =0x0000FFF0 - strh r0, [r4, #0x36] - subs r1, #0x4a - movs r0, #3 - strb r0, [r1] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x7c - strh r2, [r0] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802C314 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x7e - strh r1, [r0] - adds r0, r4, #0 - bl sub_0802C62C - adds r0, r4, #0 - bl sub_0802C4B0 - pop {r4, r5, pc} - .align 2, 0 -_0802C310: .4byte 0x0000FFF0 -_0802C314: .4byte gUnk_03000BF0 - - thumb_func_start sub_0802C318 -sub_0802C318: @ 0x0802C318 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802C330 - movs r0, #2 - strb r0, [r2, #0xc] -_0802C330: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0802C334 -sub_0802C334: @ 0x0802C334 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x7c - ldrh r0, [r3] - cmp r0, #0 - bne _0802C36A - ldr r0, _0802C3C4 @ =gUnk_03000BF0 - ldrh r1, [r0, #8] - ldr r2, _0802C3C8 @ =gLinkEntity - cmp r2, #0 - bne _0802C34E - b _0802C4AA -_0802C34E: - movs r5, #0x32 - ldrsh r0, [r2, r5] - subs r0, r0, r1 - cmp r0, #0x38 - bhi _0802C35A - b _0802C4AA -_0802C35A: - movs r0, #1 - strh r0, [r3] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_0802C36A: - adds r0, r4, #0 - bl sub_08004274 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802C3C4 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x7e - strh r1, [r0] - adds r0, #6 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _0802C3CC - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_08004488 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0xc - strh r0, [r1] - adds r0, r4, #0 - bl sub_0802C4B0 - b _0802C48C - .align 2, 0 -_0802C3C4: .4byte gUnk_03000BF0 -_0802C3C8: .4byte gLinkEntity -_0802C3CC: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r1, [r0] - adds r7, r0, #0 - cmp r1, #0 - beq _0802C442 - subs r0, r1, #1 - strh r0, [r7] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _0802C3EA - cmp r0, #8 - beq _0802C3F4 - b _0802C442 -_0802C3EA: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _0802C442 -_0802C3F4: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802C442 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0802C442 - movs r6, #0 - movs r5, #1 -_0802C408: - adds r0, r4, #0 - movs r1, #0x15 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0802C420 - ldrh r0, [r2, #0x2e] - adds r0, #0xc - subs r0, r0, r6 - strh r0, [r2, #0x2e] -_0802C420: - adds r6, #0x18 - subs r5, #1 - cmp r5, #0 - bge _0802C408 - adds r0, r4, #0 - bl sub_0802C62C - bl sub_08000E50 - movs r1, #0xff - ands r0, r1 - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r7] - b _0802C4AA -_0802C442: - ldr r0, _0802C45C @ =gUnk_03000BF0 - ldrh r1, [r0, #8] - ldrh r0, [r0, #0x20] - adds r1, r1, r0 - movs r5, #0x32 - ldrsh r0, [r4, r5] - subs r5, r1, r0 - cmp r5, #4 - ble _0802C460 - adds r0, r4, #0 - bl sub_080AEFB4 - b _0802C48C - .align 2, 0 -_0802C45C: .4byte gUnk_03000BF0 -_0802C460: - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x36 - ldrsh r0, [r4, r1] - subs r0, r0, r5 - cmp r0, #0x38 - ble _0802C48C - adds r0, r4, #0 - bl sub_0802C62C - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strh r0, [r7] - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _0802C48C - strb r0, [r4, #0xc] -_0802C48C: - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08016A04 -_0802C4AA: - pop {r4, r5, r6, r7, pc} - - thumb_func_start nullsub_148 -nullsub_148: @ 0x0802C4AC - bx lr - .align 2, 0 - - thumb_func_start sub_0802C4B0 -sub_0802C4B0: @ 0x0802C4B0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x7e - ldrh r0, [r0] - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080001DA - adds r1, r0, #0 - ldr r0, _0802C4D8 @ =0x000001AB - cmp r1, r0 - blo _0802C4E4 - adds r0, #4 - cmp r1, r0 - bls _0802C4DC - adds r0, #0x15 - cmp r1, r0 - beq _0802C4E0 - b _0802C4E4 - .align 2, 0 -_0802C4D8: .4byte 0x000001AB -_0802C4DC: - movs r6, #8 - b _0802C4E6 -_0802C4E0: - movs r6, #4 - b _0802C4E6 -_0802C4E4: - movs r6, #0 -_0802C4E6: - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #7 - ands r4, r0 - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0802C518 - movs r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0802C50C - ldr r0, _0802C508 @ =gUnk_080CD568 - movs r1, #2 - orrs r1, r6 - b _0802C532 - .align 2, 0 -_0802C508: .4byte gUnk_080CD568 -_0802C50C: - ldr r0, _0802C514 @ =gUnk_080CD568 - lsls r1, r6, #1 - b _0802C534 - .align 2, 0 -_0802C514: .4byte gUnk_080CD568 -_0802C518: - movs r2, #3 - ands r4, r2 - cmp r4, #0 - beq _0802C52C - ldr r0, _0802C528 @ =gUnk_080CD568 - movs r1, #1 - orrs r1, r6 - b _0802C532 - .align 2, 0 -_0802C528: .4byte gUnk_080CD568 -_0802C52C: - ldr r0, _0802C570 @ =gUnk_080CD568 - adds r1, r6, #0 - orrs r1, r2 -_0802C532: - lsls r1, r1, #1 -_0802C534: - adds r1, r1, r0 - ldrh r0, [r1] - strh r0, [r5, #0x24] - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #7 - ands r4, r0 - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0802C584 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0802C55E - movs r0, #0 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 -_0802C55E: - movs r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0802C578 - ldr r0, _0802C574 @ =gUnk_080CD580 - movs r1, #1 - orrs r1, r6 - b _0802C5B2 - .align 2, 0 -_0802C570: .4byte gUnk_080CD568 -_0802C574: .4byte gUnk_080CD580 -_0802C578: - ldr r0, _0802C580 @ =gUnk_080CD580 - adds r0, r6, r0 - ldrb r0, [r0] - b _0802C5B6 - .align 2, 0 -_0802C580: .4byte gUnk_080CD580 -_0802C584: - ldrb r0, [r5, #0xe] - cmp r0, #1 - beq _0802C596 - movs r0, #1 - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 -_0802C596: - movs r2, #3 - ands r4, r2 - cmp r4, #0 - beq _0802C5AC - ldr r0, _0802C5A8 @ =gUnk_080CD580 - movs r1, #2 - orrs r1, r6 - b _0802C5B2 - .align 2, 0 -_0802C5A8: .4byte gUnk_080CD580 -_0802C5AC: - ldr r0, _0802C5E4 @ =gUnk_080CD580 - adds r1, r6, #0 - orrs r1, r2 -_0802C5B2: - adds r1, r1, r0 - ldrb r0, [r1] -_0802C5B6: - strb r0, [r5, #0x15] - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #7 - ands r4, r0 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0802C5FC - movs r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0802C5EC - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _0802C5E8 @ =gUnk_080CD58C - movs r0, #1 - orrs r6, r0 - b _0802C61A - .align 2, 0 -_0802C5E4: .4byte gUnk_080CD580 -_0802C5E8: .4byte gUnk_080CD58C -_0802C5EC: - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _0802C5F8 @ =gUnk_080CD58C - orrs r6, r0 - b _0802C61A - .align 2, 0 -_0802C5F8: .4byte gUnk_080CD58C -_0802C5FC: - movs r0, #3 - ands r4, r0 - cmp r4, #0 - beq _0802C614 - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _0802C610 @ =gUnk_080CD58C - movs r0, #2 - orrs r6, r0 - b _0802C61A - .align 2, 0 -_0802C610: .4byte gUnk_080CD58C -_0802C614: - adds r2, r5, #0 - adds r2, #0x84 - ldr r1, _0802C628 @ =gUnk_080CD58C -_0802C61A: - lsls r0, r6, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r0, [r0, r1] - str r0, [r2] - pop {r4, r5, r6, pc} - .align 2, 0 -_0802C628: .4byte gUnk_080CD58C - - thumb_func_start sub_0802C62C -sub_0802C62C: @ 0x0802C62C - adds r3, r0, #0 - movs r2, #0 - movs r0, #1 - strb r0, [r3, #0xc] - adds r0, r3, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r3, #0x32] - adds r0, r3, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r3, #0x2e] - ldrb r1, [r3, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #0x18] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - adds r0, r3, #0 - adds r0, #0x7c - strh r2, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0802C660 -sub_0802C660: @ 0x0802C660 - push {lr} - ldr r1, _0802C66C @ =gUnk_080CD5D4 - bl sub_0800129E - pop {pc} - .align 2, 0 -_0802C66C: .4byte gUnk_080CD5D4 - - thumb_func_start sub_0802C670 -sub_0802C670: @ 0x0802C670 - push {lr} - ldr r2, _0802C684 @ =gUnk_080CD5EC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802C684: .4byte gUnk_080CD5EC - - thumb_func_start sub_0802C688 -sub_0802C688: @ 0x0802C688 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802C69A - b _0802C79E -_0802C69A: - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x16 - bhi _0802C740 - lsls r0, r0, #2 - ldr r1, _0802C6AC @ =_0802C6B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802C6AC: .4byte _0802C6B0 -_0802C6B0: @ jump table - .4byte _0802C70C @ case 0 - .4byte _0802C70C @ case 1 - .4byte _0802C740 @ case 2 - .4byte _0802C740 @ case 3 - .4byte _0802C740 @ case 4 - .4byte _0802C740 @ case 5 - .4byte _0802C740 @ case 6 - .4byte _0802C740 @ case 7 - .4byte _0802C740 @ case 8 - .4byte _0802C740 @ case 9 - .4byte _0802C740 @ case 10 - .4byte _0802C740 @ case 11 - .4byte _0802C740 @ case 12 - .4byte _0802C740 @ case 13 - .4byte _0802C72C @ case 14 - .4byte _0802C740 @ case 15 - .4byte _0802C740 @ case 16 - .4byte _0802C740 @ case 17 - .4byte _0802C740 @ case 18 - .4byte _0802C740 @ case 19 - .4byte _0802C72C @ case 20 - .4byte _0802C72C @ case 21 - .4byte _0802C72C @ case 22 -_0802C70C: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _0802C7A6 - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - ldr r0, _0802C728 @ =gLinkEntity - adds r0, #0x42 - movs r1, #4 - strb r1, [r0] - b _0802C7A6 - .align 2, 0 -_0802C728: .4byte gLinkEntity -_0802C72C: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802C7A6 -_0802C740: - adds r2, r4, #0 - adds r2, #0x82 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x1c - strb r0, [r1] - ldrb r0, [r2] - cmp r0, #1 - beq _0802C75E - cmp r0, #2 - beq _0802C770 - b _0802C79E -_0802C75E: - adds r0, r4, #0 - bl sub_0802CB68 - ldr r0, _0802C76C @ =0x0000014D - bl sub_08004488 - b _0802C79E - .align 2, 0 -_0802C76C: .4byte 0x0000014D -_0802C770: - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6e - strb r0, [r1] - movs r1, #1 - strb r1, [r4, #0xf] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #6 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_0802C79E: - ldr r1, _0802C7A8 @ =gUnk_080CD5D4 - adds r0, r4, #0 - bl sub_0804AA30 -_0802C7A6: - pop {r4, pc} - .align 2, 0 -_0802C7A8: .4byte gUnk_080CD5D4 - - thumb_func_start sub_0802C7AC -sub_0802C7AC: @ 0x0802C7AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bhi _0802C7F6 - adds r0, r4, #0 - bl sub_0806F520 - adds r1, r0, #0 - cmp r1, #0 - bne _0802C7F6 - strb r1, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xf] - strh r1, [r4, #0x36] - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #2 - beq _0802C7E2 - movs r1, #0x80 - cmp r0, #0 - beq _0802C7E0 - movs r0, #0x80 - lsls r0, r0, #2 - adds r1, r0, #0 -_0802C7E0: - strh r1, [r4, #0x24] -_0802C7E2: - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x83 - movs r1, #0 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - b _0802C816 -_0802C7F6: - ldr r0, _0802C818 @ =0x0000FFFF - strh r0, [r4, #0x36] - ldr r1, _0802C81C @ =gUnk_080CD600 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802C816 - adds r0, r4, #0 - bl sub_08004274 -_0802C816: - pop {r4, pc} - .align 2, 0 -_0802C818: .4byte 0x0000FFFF -_0802C81C: .4byte gUnk_080CD600 - - thumb_func_start sub_0802C820 -sub_0802C820: @ 0x0802C820 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0802C82C -sub_0802C82C: @ 0x0802C82C - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0802C834 -sub_0802C834: @ 0x0802C834 - push {lr} - bl sub_0806F3E4 - pop {pc} - - thumb_func_start sub_0802C83C -sub_0802C83C: @ 0x0802C83C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - beq _0802C88C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802C884 - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _0802C86C @ =gLinkEntity - ldrb r0, [r0, #0x14] - movs r1, #6 - ands r1, r0 - cmp r1, #2 - beq _0802C870 - cmp r1, #6 - beq _0802C876 - b _0802C87C - .align 2, 0 -_0802C86C: .4byte gLinkEntity -_0802C870: - ldrh r0, [r4, #0x2e] - subs r0, #6 - b _0802C87A -_0802C876: - ldrh r0, [r4, #0x2e] - adds r0, #6 -_0802C87A: - strh r0, [r4, #0x2e] -_0802C87C: - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802C8B2 -_0802C884: - adds r0, r4, #0 - bl sub_0802CC18 - b _0802C8A2 -_0802C88C: - movs r0, #2 - strb r0, [r1] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #6 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_0802C8A2: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6e - strb r0, [r1] -_0802C8B2: - pop {r4, pc} - - thumb_func_start nullsub_149 -nullsub_149: @ 0x0802C8B4 - bx lr - .align 2, 0 - - thumb_func_start sub_0802C8B8 -sub_0802C8B8: @ 0x0802C8B8 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - bl sub_0802CBC4 - pop {pc} - - thumb_func_start sub_0802C8C4 -sub_0802C8C4: @ 0x0802C8C4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A7D4 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - pop {r4, pc} - - thumb_func_start sub_0802C8D8 -sub_0802C8D8: @ 0x0802C8D8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #0x3c - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r5, #0x15] - strb r4, [r5, #0x16] - movs r0, #0x12 - strb r0, [r5, #0x1c] - adds r0, r5, #0 - adds r0, #0x82 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - subs r0, #3 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - ldrb r1, [r5, #0x15] - lsrs r1, r1, #4 - adds r0, r5, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802C91C -sub_0802C91C: @ 0x0802C91C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _0802C97A - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802C950 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #2 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_0802C950: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0802C964 - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802C9B4 -_0802C964: - movs r0, #0xf - ands r1, r0 - cmp r1, #8 - bne _0802C972 - adds r0, r4, #0 - bl sub_080A29FC -_0802C972: - adds r0, r4, #0 - bl sub_0802CC18 - b _0802C9B4 -_0802C97A: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802C992 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0802C992: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802C9B4 - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x15] - adds r1, #8 - movs r0, #0x1c - ands r1, r0 - strb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0802C9B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802C9B8 -sub_0802C9B8: @ 0x0802C9B8 - push {lr} - ldr r2, _0802C9CC @ =gUnk_080CD618 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802C9CC: .4byte gUnk_080CD618 - - thumb_func_start sub_0802C9D0 -sub_0802C9D0: @ 0x0802C9D0 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - strb r2, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - adds r0, r4, #0 - bl sub_0802CC18 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - movs r0, #6 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0802CA10 -sub_0802CA10: @ 0x0802CA10 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802CA30 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #5 - beq _0802CA42 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CA34 - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802CA66 - .align 2, 0 -_0802CA30: .4byte gUnk_03003F80 -_0802CA34: - adds r0, r4, #0 - bl sub_0802CC18 - adds r0, r4, #0 - bl sub_08004274 - b _0802CA66 -_0802CA42: - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #2 - strb r0, [r1] - ldr r0, _0802CA68 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsls r0, r0, #2 - movs r1, #4 - orrs r0, r1 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0802CC18 - adds r0, r4, #0 - bl sub_08004274 -_0802CA66: - pop {r4, pc} - .align 2, 0 -_0802CA68: .4byte gLinkEntity - - thumb_func_start sub_0802CA6C -sub_0802CA6C: @ 0x0802CA6C - 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 _0802CA84 - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802CA90 -_0802CA84: - adds r0, r4, #0 - bl sub_0802CC18 - adds r0, r4, #0 - bl sub_08004274 -_0802CA90: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802CA94 -sub_0802CA94: @ 0x0802CA94 - push {lr} - adds r3, r0, #0 - movs r2, #0 - movs r0, #3 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - movs r0, #1 - strb r0, [r3, #0xf] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r3, #0x20] - movs r0, #0 - strh r2, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x83 - strb r0, [r1] - subs r1, #2 - strb r0, [r1] - ldr r0, _0802CAF4 @ =gLinkEntity - ldrb r1, [r0, #0x14] - lsls r1, r1, #2 - movs r0, #4 - orrs r1, r0 - movs r0, #0x1c - ands r1, r0 - strb r1, [r3, #0x15] - lsrs r1, r1, #4 - movs r0, #6 - orrs r1, r0 - adds r0, r3, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 -_0802CAF4: .4byte gLinkEntity - - thumb_func_start sub_0802CAF8 -sub_0802CAF8: @ 0x0802CAF8 - 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 _0802CB10 - adds r0, r4, #0 - bl sub_0802CBC4 - b _0802CB62 -_0802CB10: - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0802CB30 - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _0802CB30 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 -_0802CB30: - adds r0, r4, #0 - bl sub_0802CC18 - adds r0, r4, #0 - bl sub_08078930 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802CB5C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0802CB5C - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x6e - strb r0, [r1] -_0802CB5C: - adds r0, r4, #0 - bl sub_08004274 -_0802CB62: - pop {r4, pc} - - thumb_func_start nullsub_150 -nullsub_150: @ 0x0802CB64 - bx lr - .align 2, 0 - - thumb_func_start sub_0802CB68 -sub_0802CB68: @ 0x0802CB68 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - bl sub_08000E50 - adds r2, r0, #0 - movs r0, #0x18 - ands r2, r0 - movs r0, #4 - orrs r2, r0 - orrs r2, r4 - strb r2, [r5, #0x15] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - beq _0802CBB2 - movs r0, #0xc8 - strb r0, [r5, #0xe] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - lsrs r1, r2, #4 - movs r0, #2 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 - b _0802CBC2 -_0802CBB2: - movs r0, #0x3c - strb r0, [r5, #0xe] - movs r0, #0x80 - strh r0, [r5, #0x24] - lsrs r1, r2, #4 - adds r0, r5, #0 - bl sub_08004260 -_0802CBC2: - pop {r4, r5, pc} - - thumb_func_start sub_0802CBC4 -sub_0802CBC4: @ 0x0802CBC4 - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x45 - strb r2, [r0] - adds r0, #0x3e - ldrb r0, [r0] - cmp r0, #0 - beq _0802CBF0 - bl sub_08079184 -_0802CBF0: - adds r0, r4, #0 - bl sub_08078954 - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _0802CC14 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] -_0802CC14: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802CC18 -sub_0802CC18: @ 0x0802CC18 - push {lr} - adds r1, r0, #0 - adds r1, #0x80 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CC34 - movs r0, #0x1c - strb r0, [r1] - ldr r0, _0802CC38 @ =0x0000014D - bl sub_08004488 -_0802CC34: - pop {pc} - .align 2, 0 -_0802CC38: .4byte 0x0000014D - - thumb_func_start sub_0802CC3C -sub_0802CC3C: @ 0x0802CC3C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802CC64 @ =gUnk_080CD6FC - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802CC64: .4byte gUnk_080CD6FC - - thumb_func_start sub_0802CC68 -sub_0802CC68: @ 0x0802CC68 - push {lr} - ldr r2, _0802CC7C @ =gUnk_080CD714 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802CC7C: .4byte gUnk_080CD714 - - thumb_func_start sub_0802CC80 -sub_0802CC80: @ 0x0802CC80 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r5, #0x7f - adds r1, r5, #0 - ands r1, r0 - cmp r1, #0 - blt _0802CCB8 - cmp r1, #1 - ble _0802CC9A - cmp r1, #0x1e - bne _0802CCB8 -_0802CC9A: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - ldr r2, _0802CCD4 @ =gLinkEntity - ldrb r1, [r2, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #0x10] -_0802CCB8: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802CCCA - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802CCCA: - ldr r1, _0802CCD8 @ =gUnk_080CD6FC - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_0802CCD4: .4byte gLinkEntity -_0802CCD8: .4byte gUnk_080CD6FC - - thumb_func_start nullsub_151 -nullsub_151: @ 0x0802CCDC - bx lr - .align 2, 0 - - thumb_func_start sub_0802CCE0 -sub_0802CCE0: @ 0x0802CCE0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r5, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - bl sub_08000E50 - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x20 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xff - strb r0, [r4, #0x14] - ldr r0, _0802CD50 @ =0x0000FFFE - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x7a - strb r0, [r1] - lsrs r0, r0, #8 - movs r1, #0x60 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - strh r5, [r0] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0802CF64 - adds r0, r4, #0 - bl sub_0802CFD8 - pop {r4, r5, pc} - .align 2, 0 -_0802CD50: .4byte 0x0000FFFE - - thumb_func_start sub_0802CD54 -sub_0802CD54: @ 0x0802CD54 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r0, r5, #0 - bl sub_0802CFD8 - adds r1, r5, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _0802CD76 - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802CDC8 -_0802CD76: - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802CDC8 - adds r6, r5, #0 - adds r6, #0x7b - ldrb r0, [r6] - cmp r0, #0 - bne _0802CDC4 - movs r0, #2 - strb r0, [r5, #0xc] - bl sub_08000E50 - adds r4, r0, #0 - lsrs r0, r4, #0x10 - strb r0, [r5, #0xe] - movs r0, #0xc0 - strh r0, [r5, #0x24] - bl sub_08000E50 - ldr r2, _0802CDC0 @ =gUnk_080CD728 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - lsrs r4, r4, #0x18 - movs r0, #0x60 - ands r4, r0 - strb r4, [r6] - b _0802CDE4 - .align 2, 0 -_0802CDC0: .4byte gUnk_080CD728 -_0802CDC4: - subs r0, #1 - strb r0, [r6] -_0802CDC8: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CDDE - movs r0, #0x3c - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_0802CF64 -_0802CDDE: - adds r0, r5, #0 - bl sub_0806F69C -_0802CDE4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802CDE8 -sub_0802CDE8: @ 0x0802CDE8 - 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 - beq _0802CE3C - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802CE3C - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0802CE2E - ldr r0, _0802CE38 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - adds r0, r4, #0 - bl sub_0802CF8C -_0802CE2E: - adds r0, r4, #0 - bl sub_0806F69C - b _0802CE58 - .align 2, 0 -_0802CE38: .4byte gUnk_020000B0 -_0802CE3C: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x60 - strh r0, [r4, #0x24] - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x96 - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] -_0802CE58: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0802CFD8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802CE68 -sub_0802CE68: @ 0x0802CE68 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0802CED4 @ =gUnk_03003F80 - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0xa] - ldrb r1, [r2, #0x1a] - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r5, _0802CED8 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - bne _0802CEAC - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_0802CEAC: - adds r0, r4, #0 - bl sub_0802CFD8 - adds r0, r4, #0 - bl sub_08004274 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _0802CEDC - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _0802CEF0 - .align 2, 0 -_0802CED4: .4byte gUnk_03003F80 -_0802CED8: .4byte gLinkEntity -_0802CEDC: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0802CEF0 - strb r2, [r3] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] -_0802CEF0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802CEF4 -sub_0802CEF4: @ 0x0802CEF4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802CFD8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802CF28 - bl sub_0805E5A8 - ldr r1, _0802CF20 @ =gUnk_0813AB1C - ldr r0, _0802CF24 @ =gUnk_02033A90 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_08080840 - b _0802CF5A - .align 2, 0 -_0802CF20: .4byte gUnk_0813AB1C -_0802CF24: .4byte gUnk_02033A90 -_0802CF28: - ldr r0, [r4, #0x34] - ldr r1, _0802CF5C @ =0xFFFE0000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x30 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0802CF4A - ldrb r0, [r4, #0x18] - movs r1, #0x31 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #0x10 - orrs r1, r0 - strb r1, [r4, #0x18] -_0802CF4A: - ldr r1, _0802CF60 @ =gUnk_03003F80 - ldrb r0, [r1, #0xa] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1, #0xa] - ldrb r0, [r1, #0x1a] - orrs r0, r2 - strb r0, [r1, #0x1a] -_0802CF5A: - pop {r4, pc} - .align 2, 0 -_0802CF5C: .4byte 0xFFFE0000 -_0802CF60: .4byte gUnk_03003F80 - - thumb_func_start sub_0802CF64 -sub_0802CF64: @ 0x0802CF64 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0802CF76 - bl sub_08000E50 - b _0802CF7E -_0802CF76: - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #2 -_0802CF7E: - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0802CF8C - pop {r4, pc} - - thumb_func_start sub_0802CF8C -sub_0802CF8C: @ 0x0802CF8C - push {r4, lr} - adds r3, r0, #0 - ldrb r1, [r3, #0x15] - adds r2, r1, #2 - movs r0, #0x1c - ands r2, r0 - ldrb r4, [r3, #0x14] - lsls r0, r4, #2 - subs r0, r2, r0 - adds r0, #6 - cmp r0, #0xc - bls _0802CFA8 - lsrs r0, r2, #2 - b _0802CFB8 -_0802CFA8: - adds r0, r1, #1 - movs r1, #7 - ands r0, r1 - cmp r0, #2 - ble _0802CFD0 - lsrs r0, r2, #2 - cmp r0, r4 - beq _0802CFD0 -_0802CFB8: - strb r0, [r3, #0x14] - lsrs r0, r2, #3 - lsls r0, r0, #2 - ldr r1, _0802CFD4 @ =gUnk_080CD730 - adds r2, r0, r1 - ldrh r1, [r2] - adds r0, r3, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r1, [r2, #2] - adds r0, #2 - strh r1, [r0] -_0802CFD0: - pop {r4, pc} - .align 2, 0 -_0802CFD4: .4byte gUnk_080CD730 - - thumb_func_start sub_0802CFD8 -sub_0802CFD8: @ 0x0802CFD8 - push {lr} - mov ip, r0 - ldr r2, _0802D014 @ =gUnk_080CD740 - mov r3, ip - adds r3, #0x7a - ldrb r0, [r3] - adds r1, r0, #1 - strb r1, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - movs r2, #0 - ldrsb r2, [r0, r2] - mov r0, ip - adds r0, #0x74 - movs r3, #0 - ldrsh r1, [r0, r3] - adds r1, r1, r2 - movs r0, #0x80 - lsls r0, r0, #1 - adds r2, r2, r0 - mov r0, ip - adds r0, #0x76 - ldrh r3, [r0] - mov r0, ip - bl sub_0805EC9C - pop {pc} - .align 2, 0 -_0802D014: .4byte gUnk_080CD740 - - thumb_func_start sub_0802D018 -sub_0802D018: @ 0x0802D018 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0802D030 @ =gUnk_080CD748 - 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 -_0802D030: .4byte gUnk_080CD748 - - thumb_func_start sub_0802D034 -sub_0802D034: @ 0x0802D034 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0802D0F4 - cmp r0, #1 - bgt _0802D04C - cmp r0, #0 - beq _0802D104 - b _0802D148 -_0802D04C: - cmp r0, #2 - bne _0802D148 - ldrb r1, [r4, #0xb] - cmp r1, #0 - bne _0802D090 - movs r0, #1 - strb r0, [r4, #0xb] - strb r1, [r4, #0xe] - movs r0, #0x3c - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x74 - movs r0, #0x10 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x75 - strb r1, [r0] - ldr r1, _0802D088 @ =gUnk_03000F50 - ldrb r2, [r2] - adds r0, r1, #0 - adds r0, #0x68 - strh r2, [r0] - adds r1, #0x66 - ldr r0, _0802D08C @ =0x00001442 - strh r0, [r1] - movs r0, #0xf6 - bl sub_080A3268 - b _0802D148 - .align 2, 0 -_0802D088: .4byte gUnk_03000F50 -_0802D08C: .4byte 0x00001442 -_0802D090: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0802D0D2 - adds r3, r4, #0 - adds r3, #0x75 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r2, _0802D0EC @ =gUnk_03000F50 - ldrb r1, [r1] - ldrb r0, [r3] - lsls r0, r0, #8 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] - movs r0, #0x80 - lsls r0, r0, #5 - cmp r1, r0 - bne _0802D0D2 - ldr r0, _0802D0F0 @ =gLinkEntity - bl sub_0807AABC - bl sub_0805E780 -_0802D0D2: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802D148 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D148 - movs r0, #0xf7 - bl sub_080A3268 - b _0802D148 - .align 2, 0 -_0802D0EC: .4byte gUnk_03000F50 -_0802D0F0: .4byte gLinkEntity -_0802D0F4: - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0804A7D4 - b _0802D148 -_0802D104: - ldr r5, _0802D14C @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r5, #0x14] - ldr r1, _0802D150 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r0, r4, #0 - bl sub_0806FC80 - cmp r0, #0 - beq _0802D128 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xfa - strb r0, [r1] -_0802D128: - ldr r1, _0802D154 @ =gUnk_080CD75C - 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 - bl sub_0802E518 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - bl sub_0802E7E4 -_0802D148: - pop {r4, r5, pc} - .align 2, 0 -_0802D14C: .4byte gUnk_03003F80 -_0802D150: .4byte gLinkEntity -_0802D154: .4byte gUnk_080CD75C - - thumb_func_start sub_0802D158 -sub_0802D158: @ 0x0802D158 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - ldr r0, _0802D16C @ =gUnk_02034490 - strb r1, [r0] - movs r0, #7 - movs r1, #8 - bl sub_08050054 - pop {pc} - .align 2, 0 -_0802D16C: .4byte gUnk_02034490 - - thumb_func_start sub_0802D170 -sub_0802D170: @ 0x0802D170 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _0802D1F0 @ =gUnk_03000FD0 - ldrb r3, [r0] - cmp r3, #0 - bne _0802D216 - ldrb r0, [r5, #0xc] - cmp r0, #1 - bne _0802D1FC - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - movs r1, #0x10 - strb r1, [r0, #1] - ldr r0, [r4] - strb r1, [r0, #0x19] - ldr r0, [r4] - movs r1, #0x40 - movs r2, #2 - bl sub_0802EB08 - cmp r0, #0 - bne _0802D216 - ldr r0, [r4] - bl sub_0802EA88 - cmp r0, #0 - bne _0802D216 - movs r0, #2 - strb r0, [r5, #0xc] - ldr r2, _0802D1F4 @ =gLinkEntity - ldr r4, _0802D1F8 @ =gUnk_03000BF0 - ldrh r0, [r4, #6] - adds r0, #0x98 - movs r1, #0 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #8] - adds r0, #0xd8 - strh r0, [r2, #0x32] - strb r1, [r2, #0x14] - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r2, r6] - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - bl sub_0807BA8C - str r5, [r4, #0x30] - movs r0, #6 - movs r1, #8 - bl sub_08050054 - b _0802D216 - .align 2, 0 -_0802D1F0: .4byte gUnk_03000FD0 -_0802D1F4: .4byte gLinkEntity -_0802D1F8: .4byte gUnk_03000BF0 -_0802D1FC: - movs r0, #3 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x80 - strb r3, [r0] - adds r2, r5, #0 - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] - ldr r0, [r2] - strb r3, [r0, #0x19] -_0802D216: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802D218 -sub_0802D218: @ 0x0802D218 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r0, [r5] - movs r1, #0x40 - movs r2, #2 - bl sub_0802EB08 - adds r1, r0, #0 - cmp r1, #0 - bne _0802D254 - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - strb r1, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x7c - movs r0, #0xb4 - strh r0, [r2] - ldr r0, [r5] - ldr r1, [r0, #0x50] - movs r0, #0xc - strb r0, [r1, #0xe] - ldrh r3, [r2] - adds r0, r4, #0 - movs r1, #0x67 - movs r2, #2 - bl sub_080A2988 -_0802D254: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802D258 -sub_0802D258: @ 0x0802D258 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - bne _0802D276 - adds r0, r5, #0 - bl sub_0802E1D0 - ldrb r0, [r5, #0xb] - cmp r0, #5 - bne _0802D288 - strb r0, [r5, #0xc] - b _0802D334 -_0802D276: - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802D288 - adds r0, r5, #0 - movs r1, #0x4e - bl sub_08004260 -_0802D288: - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0802D2B4 - ldr r1, _0802D2B0 @ =gUnk_080CD774 - ldrb r0, [r5, #0xf] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - ldrb r0, [r5, #0xf] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0x15] - ldrb r1, [r5, #0xf] - movs r0, #0x3f - ands r0, r1 - adds r0, #2 - strb r0, [r5, #0xf] - b _0802D2B8 - .align 2, 0 -_0802D2B0: .4byte gUnk_080CD774 -_0802D2B4: - subs r0, #1 - strb r0, [r5, #0xe] -_0802D2B8: - ldrb r0, [r5, #0x15] - cmp r0, #1 - bhi _0802D2D0 - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA48 - b _0802D2E4 -_0802D2D0: - adds r4, r5, #0 - adds r4, #0x84 - cmp r0, #0xff - beq _0802D2E4 - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA68 -_0802D2E4: - ldr r5, _0802D338 @ =gUnk_030010A0 - ldr r0, [r5] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0802D2F8 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 -_0802D2F8: - ldr r0, [r5] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0802D32E - bl sub_08000E50 - movs r1, #5 - ands r1, r0 - ldr r0, [r4] - lsls r1, r1, #2 - adds r0, #0x3c - adds r0, r0, r1 - ldr r0, [r0] - movs r1, #0x48 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _0802D32E - adds r2, r0, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0802D32E: - ldr r0, [r4] - bl sub_0802E768 -_0802D334: - pop {r4, r5, pc} - .align 2, 0 -_0802D338: .4byte gUnk_030010A0 - - thumb_func_start sub_0802D33C -sub_0802D33C: @ 0x0802D33C - push {r4, r5, r6, r7, lr} - adds r0, #0x84 - ldr r6, [r0] - movs r4, #0 - adds r7, r6, #0 - adds r7, #0x3c - adds r5, r7, #0 -_0802D34A: - ldm r5!, {r0} - bl sub_0805E7BC - adds r4, #1 - cmp r4, #3 - bls _0802D34A - lsls r1, r4, #2 - adds r1, r7, r1 - ldr r0, [r1] - adds r0, #0x45 - movs r3, #0 - strb r3, [r0] - ldr r1, [r1] - adds r1, #0x6d - ldrb r2, [r1] - movs r0, #1 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r6, #0x50] - adds r0, #0x45 - strb r3, [r0] - ldr r0, [r6, #0x50] - strb r3, [r0, #0xb] - ldr r3, [r6, #0x50] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - subs r0, #2 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - bl sub_0805E780 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802D394 -sub_0802D394: @ 0x0802D394 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802D3B4 @ =gUnk_080CD7B8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - pop {r4, pc} - .align 2, 0 -_0802D3B4: .4byte gUnk_080CD7B8 - - thumb_func_start sub_0802D3B8 -sub_0802D3B8: @ 0x0802D3B8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _0802D3DE - ldr r2, _0802D3F4 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0802D3F8 @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - ldr r0, _0802D3FC @ =gLinkEntity - bl sub_0807AABC - bl sub_0805E780 -_0802D3DE: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #6 - bls _0802D3EA - b _0802D63C -_0802D3EA: - lsls r0, r0, #2 - ldr r1, _0802D400 @ =_0802D404 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D3F4: .4byte gUnk_03000F50 -_0802D3F8: .4byte 0x0000FDFF -_0802D3FC: .4byte gLinkEntity -_0802D400: .4byte _0802D404 -_0802D404: @ jump table - .4byte _0802D420 @ case 0 - .4byte _0802D544 @ case 1 - .4byte _0802D58C @ case 2 - .4byte _0802D5A8 @ case 3 - .4byte _0802D5EC @ case 4 - .4byte _0802D5F6 @ case 5 - .4byte _0802D61A @ case 6 -_0802D420: - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x75 - strb r2, [r0] - adds r0, #0xb - strb r2, [r0] - subs r0, #7 - strb r2, [r0] - movs r0, #0x96 - str r0, [r4, #0x7c] - adds r0, r4, #0 - bl sub_0802EB9C - movs r0, #0x54 - bl sub_0801D8E0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - adds r5, r0, #0 - adds r7, r1, #0 - cmp r5, #0 - bne _0802D470 - adds r0, r4, #0 - bl sub_0804A7D4 - bl sub_0805E780 -_0802D470: - ldr r0, [r7] - str r0, [r4, #0x64] - movs r6, #0 - movs r0, #0 - mov r8, r0 -_0802D47A: - movs r0, #0x24 - movs r1, #1 - bl CreateEnemy - str r0, [r4, #0x54] - adds r3, r6, #1 - cmp r0, #0 - beq _0802D4D6 - strb r3, [r0, #0xb] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - adds r1, #0x38 - strb r0, [r1] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldr r1, [r4, #0x54] - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #2 - ldrh r2, [r4, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - lsls r2, r6, #2 - adds r0, r5, #0 - adds r0, #0x3c - adds r0, r0, r2 - ldr r1, [r4, #0x54] - str r1, [r0] - adds r2, r5, r2 - movs r0, #0x10 - strb r0, [r2, #1] - mov r0, r8 - strb r0, [r2, #0x19] - adds r0, r5, #0 - adds r0, #0x35 - mov r1, r8 - strb r1, [r0] -_0802D4D6: - adds r6, r3, #0 - cmp r6, #4 - bls _0802D47A - movs r0, #0x24 - movs r1, #2 - bl CreateEnemy - adds r2, r0, #0 - str r2, [r4, #0x54] - cmp r2, #0 - beq _0802D52E - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, [r4, #0x54] - ldrh r0, [r4, #0x2e] - movs r3, #0 - strh r0, [r1, #0x2e] - ldr r2, [r4, #0x54] - adds r1, r6, #1 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - ldr r0, [r4, #0x54] - str r0, [r5, #0x50] - movs r0, #0x10 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x2d - strb r3, [r0] - adds r0, #8 - strb r3, [r0] -_0802D52E: - ldr r0, _0802D540 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x4c - bl sub_08004260 - b _0802D63C - .align 2, 0 -_0802D540: .4byte gUnk_03003F80 -_0802D544: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0802D55C - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] -_0802D55C: - ldr r1, _0802D588 @ =gUnk_080CD7C4 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - adds r3, r4, #0 - adds r3, #0x29 - movs r1, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x24 - bl sub_08004260 - b _0802D63C - .align 2, 0 -_0802D588: .4byte gUnk_080CD7C4 -_0802D58C: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0802D63C -_0802D5A8: - ldr r0, _0802D5E8 @ =gUnk_080CD884 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x74 - movs r2, #0 - strb r1, [r0] - adds r0, #1 - strb r2, [r0] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - adds r2, #0x12 - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - movs r1, #0x4f - bl sub_08004260 - b _0802D63C - .align 2, 0 -_0802D5E8: .4byte gUnk_080CD884 -_0802D5EC: - adds r0, r4, #0 - movs r1, #0x2c - bl sub_080042AC - b _0802D63C -_0802D5F6: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - movs r1, #0x2d - bl sub_080042AC - b _0802D63C -_0802D61A: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - movs r1, #0x50 - bl sub_08004260 -_0802D63C: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0802D648 - adds r0, r4, #0 - bl sub_0802D86C -_0802D648: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802D650 -sub_0802D650: @ 0x0802D650 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802D670 @ =gUnk_080CD7E4 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x84 - ldr r0, [r4] - bl sub_0802E7E4 - pop {r4, pc} - .align 2, 0 -_0802D670: .4byte gUnk_080CD7E4 - - thumb_func_start sub_0802D674 -sub_0802D674: @ 0x0802D674 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r0, _0802D6B4 @ =gUnk_02034490 - movs r7, #1 - strb r7, [r0] - ldr r5, _0802D6B8 @ =gLinkEntity - ldr r6, [r5, #0x34] - cmp r6, #0 - bne _0802D6EC - ldr r0, [r4, #0x7c] - cmp r0, #0x96 - bne _0802D692 - ldr r0, _0802D6BC @ =0x00000127 - bl sub_080A3268 -_0802D692: - ldr r0, [r4, #0x7c] - subs r1, r0, #1 - str r1, [r4, #0x7c] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _0802D6C4 - strb r7, [r4, #0xd] - movs r0, #0x5a - str r0, [r4, #0x7c] - ldr r0, _0802D6C0 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - ldr r0, _0802D6BC @ =0x00000127 - bl sub_080A3268 - b _0802D6EC - .align 2, 0 -_0802D6B4: .4byte gUnk_02034490 -_0802D6B8: .4byte gLinkEntity -_0802D6BC: .4byte 0x00000127 -_0802D6C0: .4byte gUnk_03000BF0 -_0802D6C4: - cmp r1, #0x3c - bhi _0802D6DC - cmp r1, #0x3c - bne _0802D6D8 - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0xc - bl sub_080A2CFC -_0802D6D8: - strb r6, [r5, #0x14] - b _0802D6EC -_0802D6DC: - cmp r1, #0x59 - bhi _0802D6E4 - movs r0, #2 - b _0802D6EA -_0802D6E4: - cmp r1, #0x77 - bhi _0802D6EC - movs r0, #6 -_0802D6EA: - strb r0, [r5, #0x14] -_0802D6EC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802D6F0 -sub_0802D6F0: @ 0x0802D6F0 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x7c] - subs r0, #1 - str r0, [r2, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0802D712 - movs r0, #2 - strb r0, [r2, #0xd] - movs r0, #0x5a - str r0, [r2, #0x7c] - movs r0, #0x96 - movs r1, #0 - bl sub_08080964 -_0802D712: - pop {pc} - - thumb_func_start sub_0802D714 -sub_0802D714: @ 0x0802D714 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x7c] - subs r0, #1 - str r0, [r4, #0x7c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _0802D77A - adds r0, r4, #0 - adds r0, #0x84 - ldr r5, [r0] - movs r1, #0 - movs r3, #0 - movs r2, #0x10 - adds r0, r5, #0 -_0802D734: - strh r3, [r0, #0x18] - strb r2, [r0, #1] - adds r0, #4 - adds r1, #1 - cmp r1, #5 - bls _0802D734 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xd] - strb r1, [r4, #0xb] - ldrb r1, [r4, #0x18] - subs r0, #7 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x4d - bl sub_08004260 - movs r0, #0x24 - movs r1, #5 - bl CreateEnemy - str r0, [r4, #0x54] - cmp r0, #0 - beq _0802D774 - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - str r0, [r5, #0x38] - adds r0, #0x84 - str r5, [r0] -_0802D774: - ldr r1, [r5, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] -_0802D77A: - pop {r4, r5, pc} - - thumb_func_start sub_0802D77C -sub_0802D77C: @ 0x0802D77C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0802D7B0 @ =gUnk_030010A0 - ldr r4, [r0] - movs r0, #1 - ands r4, r0 - cmp r4, #0 - bne _0802D7AC - adds r0, r5, #0 - bl sub_0802E430 - ldrb r0, [r5, #0xb] - cmp r0, #2 - bne _0802D7AC - strb r4, [r5, #0xf] - strb r4, [r5, #0xe] - movs r0, #4 - strb r0, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #0x50] - movs r0, #0xc - strb r0, [r1, #0xe] -_0802D7AC: - pop {r4, r5, pc} - .align 2, 0 -_0802D7B0: .4byte gUnk_030010A0 - - thumb_func_start sub_0802D7B4 -sub_0802D7B4: @ 0x0802D7B4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - adds r3, r0, #0 - cmp r3, #0 - bne _0802D82C - ldr r4, _0802D7FC @ =gUnk_080CD7F8 - ldrb r2, [r5, #0xf] - adds r0, r2, r4 - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #0xff - bne _0802D810 - strb r3, [r5, #0xf] - strb r3, [r5, #0xe] - movs r2, #1 - strb r2, [r5, #0xc] - strb r3, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] - ldr r1, _0802D800 @ =gUnk_03000BF0 - ldr r0, _0802D804 @ =gLinkEntity - str r0, [r1, #0x30] - ldr r0, _0802D808 @ =gUnk_03003F80 - adds r0, #0x8b - strb r2, [r0] - ldr r0, _0802D80C @ =gUnk_02034490 - strb r3, [r0] - movs r0, #0x2e - bl sub_080A3268 - b _0802D868 - .align 2, 0 -_0802D7FC: .4byte gUnk_080CD7F8 -_0802D800: .4byte gUnk_03000BF0 -_0802D804: .4byte gLinkEntity -_0802D808: .4byte gUnk_03003F80 -_0802D80C: .4byte gUnk_02034490 -_0802D810: - strb r1, [r5, #0xe] - adds r0, r2, #1 - adds r0, r0, r4 - ldrb r0, [r0] - strb r0, [r5, #0x15] - ldrb r0, [r5, #0xf] - adds r0, #2 - strb r0, [r5, #0xf] - ldr r0, _0802D828 @ =0x00000127 - bl sub_080A3268 - b _0802D830 - .align 2, 0 -_0802D828: .4byte 0x00000127 -_0802D82C: - subs r0, #1 - strb r0, [r5, #0xe] -_0802D830: - ldrb r0, [r5, #0x15] - cmp r0, #1 - bhi _0802D848 - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA48 - b _0802D85C -_0802D848: - adds r4, r5, #0 - adds r4, #0x84 - cmp r0, #0xff - beq _0802D85C - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA68 -_0802D85C: - ldr r0, [r4] - bl sub_0802E768 - adds r0, r5, #0 - bl sub_0802E518 -_0802D868: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802D86C -sub_0802D86C: @ 0x0802D86C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #6 - bls _0802D878 - b _0802DB7E -_0802D878: - lsls r0, r0, #2 - ldr r1, _0802D884 @ =_0802D888 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802D884: .4byte _0802D888 -_0802D888: @ jump table - .4byte _0802DB64 @ case 0 - .4byte _0802D8A4 @ case 1 - .4byte _0802D8CE @ case 2 - .4byte _0802DA54 @ case 3 - .4byte _0802D94C @ case 4 - .4byte _0802D9A2 @ case 5 - .4byte _0802D9F8 @ case 6 -_0802D8A4: - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0802D8CE - ldr r0, [r4, #0x50] - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0802D8BE - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _0802D8C6 -_0802D8BE: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - b _0802D8CC -_0802D8C6: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 -_0802D8CC: - strb r0, [r4, #0x10] -_0802D8CE: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0802D8DE - b _0802DB7E -_0802D8DE: - ldr r0, [r4, #0x50] - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3d - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802D918 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0802D906 - adds r0, r4, #0 - bl sub_0801D230 - adds r0, r4, #0 - movs r1, #0xc9 - bl sub_0801D040 - b _0802D918 -_0802D906: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0801D230 - adds r0, r4, #0 - movs r1, #0xca - bl sub_0801D040 -_0802D918: - ldr r0, [r4, #0x50] - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0802D924 - b _0802DB7E -_0802D924: - ldr r1, _0802D944 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #8 - movs r3, #8 - bl sub_080041A0 - cmp r0, #0 - bne _0802D936 - b _0802DB7E -_0802D936: - ldr r0, _0802D948 @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - adds r0, #0x3f - movs r1, #0xfc - strb r1, [r0] - b _0802DB7E - .align 2, 0 -_0802D944: .4byte gLinkEntity -_0802D948: .4byte gUnk_03003F80 -_0802D94C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - bne _0802D95E - adds r0, r4, #0 - bl sub_080042B8 - b _0802DB7E -_0802D95E: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - adds r2, r0, #0 - cmp r2, #0 - beq _0802D970 - b _0802DB7E -_0802D970: - ldr r0, [r4, #0x50] - adds r0, #0x7b - movs r1, #1 - strb r1, [r0] - strb r2, [r4, #0xe] -_0802D97A: - ldrb r3, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x67 - movs r2, #0 - bl sub_080A2988 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0802D97A - movs r0, #0xa8 - lsls r0, r0, #1 - bl sub_080A3268 -_0802D99C: - bl sub_0805E780 - b _0802DB7E -_0802D9A2: - ldr r0, _0802D9F4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0802D9B8 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _0802D9B8 - b _0802DB7E -_0802D9B8: - 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 - bne _0802D9CE - b _0802DB7E -_0802D9CE: - movs r0, #0x24 - movs r1, #6 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0802D99C - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r2, r4, #0 - adds r2, #0x84 - ldr r1, [r2] - ldr r0, [r4, #0x54] - str r0, [r1, #0x38] - adds r0, #0x84 - ldr r1, [r2] - str r1, [r0] - b _0802D99C - .align 2, 0 -_0802D9F4: .4byte gUnk_030010A0 -_0802D9F8: - ldr r0, _0802DA50 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0802DA0E - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #2 - bne _0802DA0E - b _0802DB7E -_0802DA0E: - 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 - bne _0802DA24 - b _0802DB7E -_0802DA24: - movs r0, #0x24 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0802D99C - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r1, r4, #0 - adds r1, #0x84 - ldr r0, [r1] - ldrb r0, [r0, #1] - strb r0, [r4, #0xe] - ldr r2, [r1] - ldr r0, [r4, #0x54] - str r0, [r2, #0x38] - adds r0, #0x84 - ldr r1, [r1] - str r1, [r0] - b _0802D99C - .align 2, 0 -_0802DA50: .4byte gUnk_030010A0 -_0802DA54: - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _0802DA96 - subs r0, r1, #1 - strb r0, [r6] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802DA96 - adds r5, r4, #0 - adds r5, #0x75 - ldrb r0, [r5] - adds r0, #2 - strb r0, [r5] - ldr r7, _0802DAD4 @ =gUnk_080CD884 - ldrb r0, [r5] - adds r0, r0, r7 - ldrb r0, [r0] - strb r0, [r6] - cmp r0, #0 - beq _0802DA96 - adds r0, r4, #0 - bl sub_0801D230 - ldrb r0, [r5] - adds r0, #1 - adds r0, r0, r7 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_0801D040 -_0802DA96: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802DAD8 - ldrb r2, [r6] - cmp r2, #0 - bne _0802DAD8 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1d - bne _0802DB20 - movs r0, #0xc0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, [r4, #0x50] - movs r0, #4 - strb r0, [r1, #0xd] - ldr r0, [r4, #0x50] - strb r2, [r0, #0xb] - ldr r0, [r4, #0x50] - adds r0, #0x7b - strb r2, [r0] - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_080A3268 - b _0802DB20 - .align 2, 0 -_0802DAD4: .4byte gUnk_080CD884 -_0802DAD8: - adds r0, r4, #0 - adds r0, #0x84 - ldr r2, [r0] - ldrb r1, [r4, #0xe] - adds r3, r0, #0 - ldrb r0, [r2, #1] - cmp r1, r0 - beq _0802DB20 - adds r0, r1, #0 - ldrb r1, [r2, #1] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0x10 - ble _0802DB08 - ldrb r0, [r4, #0x1e] - adds r0, #1 - strb r0, [r4, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x30 - bls _0802DB1A - movs r0, #0x28 - b _0802DB18 -_0802DB08: - ldrb r0, [r4, #0x1e] - subs r0, #1 - strb r0, [r4, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x27 - bhi _0802DB1A - movs r0, #0x30 -_0802DB18: - strb r0, [r4, #0x1e] -_0802DB1A: - ldr r0, [r3] - ldrb r0, [r0, #1] - strb r0, [r4, #0xe] -_0802DB20: - ldr r0, [r4, #0x20] - cmp r0, #0 - ble _0802DB7E - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _0802DB7E - movs r0, #0x24 - movs r1, #4 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0802DB7E - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r2, r4, #0 - adds r2, #0x84 - ldr r1, [r2] - ldr r0, [r4, #0x54] - str r0, [r1, #0x38] - adds r0, #0x84 - ldr r1, [r2] - str r1, [r0] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - b _0802D99C -_0802DB64: - ldr r1, _0802DB80 @ =gUnk_080CD810 - ldrb r0, [r4, #0xd] - 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, #0x84 - ldr r0, [r0] - bl sub_0802E7E4 -_0802DB7E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802DB80: .4byte gUnk_080CD810 - - thumb_func_start sub_0802DB84 -sub_0802DB84: @ 0x0802DB84 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _0802DBB0 @ =gLinkEntity - bl sub_080045C4 - strb r0, [r5, #0x15] - adds r1, r5, #0 - adds r1, #0x84 - ldr r2, [r1] - ldrb r1, [r2, #1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _0802DBB4 - movs r0, #1 - strb r0, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0 - strb r0, [r1] - b _0802DC1A - .align 2, 0 -_0802DBB0: .4byte gLinkEntity -_0802DBB4: - ldrb r0, [r2, #1] - ldrb r1, [r5, #0x15] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0x10 - ble _0802DBCE - movs r3, #0 - ldrb r1, [r5, #0xe] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5, #0xe] - b _0802DBD2 -_0802DBCE: - movs r3, #1 - strb r3, [r5, #0xe] -_0802DBD2: - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #1 - beq _0802DBF0 - cmp r0, #1 - bgt _0802DBE6 - cmp r0, #0 - beq _0802DBEC - b _0802DBF8 -_0802DBE6: - cmp r0, #2 - beq _0802DBF4 - b _0802DBF8 -_0802DBEC: - movs r0, #0x30 - b _0802DBF6 -_0802DBF0: - movs r0, #0x40 - b _0802DBF6 -_0802DBF4: - movs r0, #0x50 -_0802DBF6: - strh r0, [r5, #0x24] -_0802DBF8: - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - movs r1, #0x24 - ldrsh r2, [r5, r1] - movs r1, #5 - bl sub_0802EA48 - ldr r0, [r4] - bl sub_0802E768 - adds r0, r5, #0 - bl sub_0802E518 - adds r0, r5, #0 - bl sub_0802EBC4 -_0802DC1A: - pop {r4, r5, pc} - - thumb_func_start sub_0802DC1C -sub_0802DC1C: @ 0x0802DC1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r1, _0802DC40 @ =gLinkEntity - bl sub_080045C4 - adds r3, r0, #0 - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - ldrb r0, [r0, #1] - subs r3, r0, r3 - movs r0, #0x1f - ands r3, r0 - cmp r3, #0x10 - bls _0802DC44 - cmp r3, #0x1d - bhi _0802DC54 - b _0802DC48 - .align 2, 0 -_0802DC40: .4byte gLinkEntity -_0802DC44: - cmp r3, #2 - bls _0802DC54 -_0802DC48: - movs r0, #0 - strb r0, [r5, #0xd] - ldr r1, [r1] - ldr r1, [r1, #0x50] - strb r0, [r1, #0xe] - b _0802DCDE -_0802DC54: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _0802DC6A - subs r0, r1, #1 - strb r0, [r6] - adds r4, r5, #0 - adds r4, #0x84 - b _0802DCC6 -_0802DC6A: - ldrb r0, [r5, #0xe] - movs r3, #0 - cmp r0, #1 - bne _0802DC74 - movs r3, #1 -_0802DC74: - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - movs r1, #5 - movs r2, #0x20 - bl sub_0802EA48 - ldr r1, [r4] - ldrh r0, [r1] - ldrh r1, [r1, #0x14] - movs r2, #4 - bl sub_0802EA18 - cmp r0, #0 - beq _0802DCC6 - ldrb r0, [r5, #0xe] - cmp r0, #1 - bne _0802DCAC - ldr r2, [r4] - ldrb r0, [r2, #1] - subs r0, #4 - movs r1, #0x1f - ands r0, r1 - lsls r0, r0, #8 - movs r1, #0xff - orrs r0, r1 - strh r0, [r2, #0x14] - b _0802DCBA -_0802DCAC: - ldr r0, [r4] - ldrb r1, [r0, #1] - adds r1, #4 - movs r2, #0x1f - ands r1, r2 - lsls r1, r1, #8 - strh r1, [r0, #0x14] -_0802DCBA: - ldrb r0, [r5, #0xe] - movs r1, #1 - eors r0, r1 - strb r0, [r5, #0xe] - movs r0, #0xc - strb r0, [r6] -_0802DCC6: - adds r0, r5, #0 - bl sub_0802E9B0 - ldr r0, [r4] - bl sub_0802E768 - adds r0, r5, #0 - bl sub_0802E518 - adds r0, r5, #0 - bl sub_0802EBC4 -_0802DCDE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802DCE0 -sub_0802DCE0: @ 0x0802DCE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r0, [r5] - ldr r1, [r0, #0x50] - ldrb r0, [r1, #0xe] - cmp r0, #0xc - beq _0802DD44 - ldr r1, _0802DD1C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - ldr r2, [r5] - ldrb r1, [r2, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - bne _0802DD20 - ldr r1, [r2, #0x50] - movs r0, #0xc - strb r0, [r1, #0xe] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #4 - strb r0, [r1] - movs r0, #0 - strb r0, [r4, #0xf] - b _0802DDD0 - .align 2, 0 -_0802DD1C: .4byte gLinkEntity -_0802DD20: - ldrb r0, [r2, #0x15] - ldrb r1, [r4, #0x15] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - movs r3, #1 - cmp r0, #0x10 - ble _0802DD32 - movs r3, #0 -_0802DD32: - adds r0, r2, #0 - movs r1, #5 - movs r2, #0x20 - bl sub_0802EA48 - ldr r0, [r5] - bl sub_0802E768 - b _0802DDD0 -_0802DD44: - ldrb r0, [r4, #0xf] - cmp r0, #5 - bhi _0802DD74 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - bne _0802DD6E - movs r2, #4 - strb r2, [r1] - ldr r1, [r5] - ldrb r0, [r4, #0xf] - lsls r0, r0, #2 - adds r1, #0x3c - adds r1, r1, r0 - ldr r0, [r1] - strb r2, [r0, #0xf] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - b _0802DDD0 -_0802DD6E: - subs r0, #1 - strb r0, [r1] - b _0802DDD0 -_0802DD74: - ldrb r6, [r1, #0xf] - cmp r6, #0 - bne _0802DDD0 - adds r0, r4, #0 - movs r1, #0xa - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0802DDB2 - ldr r0, [r5] - ldrb r0, [r0, #0x15] - strb r0, [r1, #0x15] - ldr r2, [r4, #0x54] - ldr r0, [r5] - ldr r0, [r0, #0x50] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - strb r0, [r2, #0xb] - ldr r1, [r4, #0x54] - ldr r0, [r5] - ldr r0, [r0, #0x50] - str r0, [r1, #0x50] - ldr r1, [r4, #0x54] - ldr r0, [r5] - ldr r0, [r0, #0x3c] - str r0, [r1, #0x54] -_0802DDB2: - ldr r0, [r5] - ldr r0, [r0, #0x50] - strb r6, [r0, #0xe] - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - bne _0802DDC8 - movs r0, #1 - strb r0, [r1] - b _0802DDD0 -_0802DDC8: - strb r6, [r4, #0xd] - adds r0, r4, #0 - bl sub_0802EB9C -_0802DDD0: - adds r0, r4, #0 - bl sub_0802E518 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802DDD8 -sub_0802DDD8: @ 0x0802DDD8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r0, #0x76 - ldrb r0, [r0] - movs r7, #4 - cmp r0, #0 - beq _0802DE06 - movs r7, #6 - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #2 - bne _0802DE06 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - bne _0802DE06 - movs r7, #0xc -_0802DE06: - ldrb r0, [r5, #0xb] - cmp r0, #0 - beq _0802DE2E - cmp r0, #0 - bge _0802DE12 - b _0802DF9A -_0802DE12: - cmp r0, #2 - ble _0802DE18 - b _0802DF9A -_0802DE18: - adds r6, r5, #0 - adds r6, #0x84 - cmp r0, #1 - beq _0802DEFE - adds r0, r5, #0 - adds r0, #0x76 - ldrb r1, [r0] - mov sb, r0 - cmp r1, #0 - bne _0802DE76 - b _0802DE6C -_0802DE2E: - adds r6, r5, #0 - adds r6, #0x84 - ldr r0, [r6] - bl sub_0802EA88 - cmp r0, #0 - beq _0802DE3E - b _0802DF9A -_0802DE3E: - movs r4, #1 - strb r4, [r5, #0xb] - strb r0, [r5, #0xf] - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - bne _0802DE58 - strb r0, [r5, #0x15] - ldr r0, [r6] - ldrb r0, [r0, #1] - adds r0, r0, r7 - b _0802DE60 -_0802DE58: - strb r4, [r5, #0x15] - ldr r0, [r6] - ldrb r0, [r0, #1] - subs r0, r0, r7 -_0802DE60: - movs r1, #0x1f - ands r0, r1 - adds r1, r5, #0 - adds r1, #0x7a - strb r0, [r1] - b _0802DF9A -_0802DE6C: - movs r2, #1 - movs r0, #2 - mov r8, r0 - movs r4, #1 - b _0802DE7E -_0802DE76: - movs r2, #2 - movs r1, #6 - mov r8, r1 - movs r4, #0 -_0802DE7E: - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - ldr r0, [r0, #0x50] - ldrb r0, [r0, #0xf] - adds r6, r1, #0 - cmp r0, #1 - bne _0802DEC4 - adds r0, r5, #0 - movs r1, #0xa - bl sub_0804A98C - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _0802DEC4 - ldr r0, [r6] - ldrb r0, [r0, #0x15] - strb r0, [r1, #0x15] - ldr r2, [r5, #0x54] - ldr r0, [r6] - ldr r0, [r0, #0x50] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - strb r0, [r2, #0xb] - ldr r1, [r5, #0x54] - ldr r0, [r6] - ldr r0, [r0, #0x50] - str r0, [r1, #0x50] - ldr r1, [r5, #0x54] - ldr r0, [r6] - ldr r0, [r0, #0x3c] - str r0, [r1, #0x54] -_0802DEC4: - adds r1, r5, #0 - adds r1, #0x74 - ldrb r0, [r1] - adds r2, r0, #0 - cmp r2, #0 - bne _0802DEF4 - strb r4, [r1] - ldr r1, [r6] - ldrb r0, [r5, #0xf] - lsls r0, r0, #2 - adds r1, #0x3c - adds r1, r1, r0 - ldr r0, [r1] - mov r1, r8 - strb r1, [r0, #0xf] - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _0802DEF8 - strb r2, [r5, #0xf] - b _0802DEF8 -_0802DEF4: - subs r0, #1 - strb r0, [r1] -_0802DEF8: - ldrb r0, [r5, #0xb] - cmp r0, #1 - bne _0802DF0C -_0802DEFE: - ldr r0, [r6] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x40 - bl sub_0802EA48 - b _0802DF2E -_0802DF0C: - mov r1, sb - ldrb r0, [r1] - cmp r0, #0 - bne _0802DF22 - ldr r0, [r6] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x20 - bl sub_0802EA48 - b _0802DF2E -_0802DF22: - ldr r0, [r6] - ldrb r3, [r5, #0x15] - movs r1, #5 - movs r2, #0x10 - bl sub_0802EA48 -_0802DF2E: - adds r4, r6, #0 - ldr r0, [r4] - bl sub_0802E768 - adds r2, r5, #0 - adds r2, #0x7a - ldr r1, [r4] - ldrb r0, [r2] - ldrb r1, [r1, #0x15] - cmp r0, r1 - bne _0802DF9A - ldrb r0, [r5, #0xb] - cmp r0, #1 - bne _0802DF8A - movs r0, #2 - strb r0, [r5, #0xb] - ldrb r0, [r5, #0x15] - movs r1, #1 - eors r0, r1 - strb r0, [r5, #0x15] - adds r3, r0, #0 - cmp r3, #1 - bne _0802DF6C - lsls r0, r7, #1 - ldrb r1, [r2] - subs r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r2] - strb r3, [r5, #0xe] - b _0802DF80 -_0802DF6C: - lsls r0, r7, #1 - ldrb r1, [r2] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r2] - ldrb r1, [r5, #0xe] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5, #0xe] -_0802DF80: - ldr r0, [r6] - ldr r1, [r0, #0x50] - movs r0, #0xc - strb r0, [r1, #0xe] - b _0802DF9A -_0802DF8A: - movs r0, #0 - strb r0, [r5, #0xd] - ldr r1, [r6] - ldr r1, [r1, #0x50] - strb r0, [r1, #0xe] - adds r0, r5, #0 - bl sub_0802EB9C -_0802DF9A: - adds r0, r5, #0 - bl sub_0802E518 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802DFA8 -sub_0802DFA8: @ 0x0802DFA8 - push {lr} - ldr r2, _0802DFBC @ =gUnk_080CD828 - ldrb r1, [r0, #0xb] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802DFBC: .4byte gUnk_080CD828 - - thumb_func_start sub_0802DFC0 -sub_0802DFC0: @ 0x0802DFC0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x84 - ldr r2, [r4] - ldrb r0, [r2, #1] - movs r1, #7 - ands r1, r0 - cmp r1, #0 - beq _0802DFF8 - cmp r1, #4 - bls _0802DFDC - movs r0, #0 - b _0802DFDE -_0802DFDC: - movs r0, #1 -_0802DFDE: - strb r0, [r5, #0x15] - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldrb r3, [r5, #0x15] - movs r1, #0 - movs r2, #0x20 - bl sub_0802EA48 - ldr r0, [r4] - bl sub_0802EA88 - b _0802E026 -_0802DFF8: - adds r0, r2, #0 - bl sub_0802EA88 - cmp r0, #0 - bne _0802E026 - adds r0, r5, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0802E026 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - movs r0, #1 - strb r0, [r5, #0xb] - ldr r0, [r4] - ldr r1, [r0, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] - ldr r0, _0802E030 @ =0x00000127 - bl sub_080A3268 -_0802E026: - adds r0, r5, #0 - bl sub_0802E518 - pop {r4, r5, pc} - .align 2, 0 -_0802E030: .4byte 0x00000127 - - thumb_func_start sub_0802E034 -sub_0802E034: @ 0x0802E034 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r5, [r0] - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0802E04A - movs r0, #2 - strb r0, [r4, #0x15] - movs r0, #0 - b _0802E058 -_0802E04A: - movs r0, #3 - strb r0, [r4, #0x15] - ldr r1, _0802E078 @ =gUnk_080CD840 - ldrb r0, [r5, #1] - lsrs r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0] -_0802E058: - ldrb r1, [r5, #0x19] - cmp r0, r1 - beq _0802E07C - ldrb r3, [r4, #0x15] - adds r0, r5, #0 - movs r1, #0 - movs r2, #0x40 - bl sub_0802EA68 - adds r0, r5, #0 - movs r1, #0x40 - movs r2, #2 - bl sub_0802EB08 - b _0802E0B0 - .align 2, 0 -_0802E078: .4byte gUnk_080CD840 -_0802E07C: - adds r0, r5, #0 - movs r1, #0x80 - movs r2, #2 - bl sub_0802EB08 - cmp r0, #0 - bne _0802E0B0 - ldrb r0, [r4, #0xb] - cmp r0, #2 - bne _0802E0A6 - adds r1, r4, #0 - adds r1, #0x7c - movs r2, #0 - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #4 - movs r0, #1 - strb r0, [r1] - ldr r0, [r5, #0x50] - strb r2, [r0, #0xe] -_0802E0A6: - ldrb r0, [r4, #0xb] - adds r0, #1 - strb r0, [r4, #0xb] - movs r0, #1 - strb r0, [r5, #0x19] -_0802E0B0: - adds r0, r4, #0 - bl sub_0802E518 - pop {r4, r5, pc} - - thumb_func_start sub_0802E0B8 -sub_0802E0B8: @ 0x0802E0B8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0800445C - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - cmp r2, #0 - beq _0802E0F4 - ldr r1, _0802E128 @ =gLinkEntity - adds r0, r4, #0 - bl sub_0806FC80 - cmp r0, #0 - beq _0802E0F4 - ldr r0, _0802E12C @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - adds r0, #0x3f - movs r1, #0xfa - strb r1, [r0] -_0802E0F4: - ldr r0, _0802E130 @ =gUnk_080CD844 - adds r3, r4, #0 - adds r3, #0x79 - ldrb r5, [r3] - movs r6, #0x7f - adds r1, r6, #0 - ands r1, r5 - adds r1, r1, r0 - adds r2, r4, #0 - adds r2, #0x45 - ldrb r0, [r1] - ldrb r1, [r2] - cmp r0, r1 - blo _0802E158 - cmp r5, #1 - bls _0802E134 - movs r0, #0 - strb r0, [r2] - strb r0, [r4, #0xc] - bl sub_08078B48 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - b _0802E1CA - .align 2, 0 -_0802E128: .4byte gLinkEntity -_0802E12C: .4byte gUnk_03003F80 -_0802E130: .4byte gUnk_080CD844 -_0802E134: - ldrb r1, [r4, #0x10] - adds r0, r6, #0 - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r3] - adds r0, #1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r3] - movs r0, #0xff - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0x78 - bls _0802E158 - movs r0, #0x78 - strh r0, [r1] -_0802E158: - adds r0, r4, #0 - adds r0, #0x7c - ldrh r1, [r0] - subs r1, #1 - strh r1, [r0] - lsls r1, r1, #0x10 - ldr r2, _0802E18C @ =0xFFFF0000 - adds r5, r0, #0 - cmp r1, r2 - bne _0802E190 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x62 - movs r0, #0 - strb r0, [r1] - movs r0, #4 - strb r0, [r4, #0xb] - adds r0, r4, #0 - movs r1, #0x4e - bl sub_08004260 - b _0802E1C4 - .align 2, 0 -_0802E18C: .4byte 0xFFFF0000 -_0802E190: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802E1B2 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0802E1B2 - ldr r0, _0802E1CC @ =0x00000127 - bl sub_080A3268 -_0802E1B2: - ldrh r0, [r5] - cmp r0, #0x77 - bhi _0802E1C4 - adds r2, r4, #0 - adds r2, #0x62 - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] -_0802E1C4: - adds r0, r4, #0 - bl sub_0802E518 -_0802E1CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0802E1CC: .4byte 0x00000127 - - thumb_func_start sub_0802E1D0 -sub_0802E1D0: @ 0x0802E1D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - mov r8, r0 - adds r4, r5, #0 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802E1F6 - adds r0, r5, #0 - bl sub_08004274 -_0802E1F6: - ldrb r0, [r4] - movs r2, #0x3f - ands r2, r0 - cmp r2, #0 - beq _0802E218 - ldr r1, _0802E280 @ =gLinkEntity - adds r0, r5, #0 - bl sub_0806FC80 - cmp r0, #0 - beq _0802E218 - ldr r0, _0802E284 @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - adds r0, #0x3f - movs r1, #0xfa - strb r1, [r0] -_0802E218: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0802E2F0 - movs r4, #0 - mov r2, r8 - adds r2, #0x30 - adds r7, r5, #0 - adds r7, #0x7c - ldr r0, _0802E288 @ =gUnk_03000F50 - mov sb, r0 - movs r1, #0x66 - add r1, sb - mov sl, r1 -_0802E23A: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, #0 - beq _0802E2EA - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - bne _0802E2F0 - mov r1, r8 - ldr r0, [r1, #0x3c] - movs r1, #0xc - movs r2, #0 - bl CreateFX - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 - cmp r4, #5 - bne _0802E2F0 - adds r0, r5, #0 - adds r0, #0x79 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802E28C - movs r0, #0xf0 - strh r0, [r7] - movs r1, #0 - bl sub_08080964 - b _0802E2E4 - .align 2, 0 -_0802E280: .4byte gLinkEntity -_0802E284: .4byte gUnk_03003F80 -_0802E288: .4byte gUnk_03000F50 -_0802E28C: - adds r4, r7, #0 - strh r6, [r4] - movs r0, #0x7c - adds r0, r0, r5 - mov r8, r0 - adds r6, r5, #0 - adds r6, #0x74 - adds r7, r5, #0 - adds r7, #0x75 -_0802E29E: - ldrh r3, [r4] - adds r0, r5, #0 - movs r1, #0x67 - movs r2, #1 - bl sub_080A2988 - ldrh r0, [r4] - adds r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #3 - bls _0802E29E - movs r0, #0 - strb r0, [r6] - movs r0, #0x10 - strb r0, [r7] - movs r0, #0xb - mov r1, r8 - strh r0, [r1] - ldrb r1, [r6] - ldrb r0, [r7] - lsls r0, r0, #8 - orrs r1, r0 - mov r0, sb - adds r0, #0x68 - strh r1, [r0] - movs r0, #0x90 - lsls r0, r0, #2 - mov r1, sl - strh r0, [r1] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 -_0802E2E4: - movs r0, #5 - strb r0, [r5, #0xb] - b _0802E2F0 -_0802E2EA: - adds r4, #1 - cmp r4, #5 - bls _0802E23A -_0802E2F0: - adds r0, r5, #0 - bl sub_0802E518 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802E300 -sub_0802E300: @ 0x0802E300 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x79 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0802E31E - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - adds r5, r1, #0 - b _0802E35E -_0802E31E: - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - adds r5, r4, #0 - adds r5, #0x7c - cmp r0, #0x10 - beq _0802E35E - ldrh r0, [r5] - cmp r0, #0 - beq _0802E364 - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0802E40C - movs r0, #0xb - strh r0, [r5] - adds r3, r4, #0 - adds r3, #0x75 - ldrb r0, [r3] - subs r0, #1 - strb r0, [r3] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r2, _0802E3A0 @ =gUnk_03000F50 - ldrb r1, [r1] - ldrb r0, [r3] - lsls r0, r0, #8 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] -_0802E35E: - ldrh r0, [r5] - cmp r0, #0 - bne _0802E40C -_0802E364: - adds r2, r4, #0 - adds r2, #0x79 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802E3A4 - adds r3, r4, #0 - adds r3, #0x75 - ldrb r0, [r3] - cmp r0, #0x10 - beq _0802E3A4 - movs r0, #0xb - strh r0, [r5] - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r2, _0802E3A0 @ =gUnk_03000F50 - ldrb r1, [r1] - ldrb r0, [r3] - lsls r0, r0, #8 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] - b _0802E428 - .align 2, 0 -_0802E3A0: .4byte gUnk_03000F50 -_0802E3A4: - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x84 - ldr r5, [r0] - ldr r1, _0802E408 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - lsls r0, r0, #3 - movs r2, #0 - adds r6, r4, #0 - adds r6, #0x80 - movs r3, #0 - adds r1, r5, #0 -_0802E3CA: - strh r3, [r1, #0x18] - strb r0, [r1, #1] - adds r1, #4 - adds r2, #1 - cmp r2, #5 - bls _0802E3CA - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xd] - strb r1, [r4, #0xb] - strb r1, [r6] - adds r0, r4, #0 - movs r1, #0x4d - bl sub_08004260 - movs r0, #0x24 - movs r1, #5 - bl CreateEnemy - str r0, [r4, #0x54] - cmp r0, #0 - beq _0802E400 - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - str r0, [r5, #0x38] - adds r0, #0x84 - str r5, [r0] -_0802E400: - ldr r1, [r5, #0x50] - movs r0, #0x18 - strb r0, [r1, #0xe] - b _0802E422 - .align 2, 0 -_0802E408: .4byte gLinkEntity -_0802E40C: - ldr r0, _0802E42C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0802E422 - adds r0, r4, #0 - movs r1, #0xa - movs r2, #3 - bl sub_0804A98C -_0802E422: - adds r0, r4, #0 - bl sub_0802E518 -_0802E428: - pop {r4, r5, r6, pc} - .align 2, 0 -_0802E42C: .4byte gUnk_030010A0 - - thumb_func_start sub_0802E430 -sub_0802E430: @ 0x0802E430 - push {lr} - ldr r2, _0802E444 @ =gUnk_080CD848 - ldrb r1, [r0, #0xb] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802E444: .4byte gUnk_080CD848 - - thumb_func_start sub_0802E448 -sub_0802E448: @ 0x0802E448 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x84 - ldr r6, [r0] - movs r5, #5 -_0802E452: - adds r0, r6, #0 - adds r0, #0x30 - adds r4, r0, r5 - ldrb r0, [r4] - cmp r0, #0 - bne _0802E46E - ldr r0, [r6, #0x3c] - movs r1, #0xc - movs r2, #0 - bl CreateFX - movs r0, #0x7d - bl sub_080A3268 -_0802E46E: - ldrb r0, [r4] - cmp r0, #0xa - beq _0802E48A - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _0802E490 - cmp r5, #0 - bne _0802E490 - movs r0, #1 - strb r0, [r7, #0xb] - b _0802E490 -_0802E48A: - subs r5, #1 - cmp r5, #0 - bge _0802E452 -_0802E490: - adds r0, r6, #0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r0, #9 - bhi _0802E4A6 - adds r0, r6, #0 - movs r1, #5 - movs r2, #0x40 - movs r3, #3 - bl sub_0802EA68 -_0802E4A6: - adds r0, r7, #0 - bl sub_08004274 - adds r0, r7, #0 - adds r0, #0x84 - ldr r0, [r0] - bl sub_0802E768 - adds r0, r7, #0 - bl sub_0802E518 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802E4C0 -sub_0802E4C0: @ 0x0802E4C0 - 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 _0802E510 - ldrb r0, [r4, #0xc] - cmp r0, #2 - beq _0802E50A - adds r0, r4, #0 - adds r0, #0x74 - movs r2, #0 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #8 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - beq _0802E502 - adds r0, r4, #0 - adds r0, #0x76 - strb r2, [r0] - adds r1, #2 - movs r0, #3 - strb r0, [r1] -_0802E502: - adds r0, r4, #0 - bl sub_0802EBC4 - b _0802E510 -_0802E50A: - ldrb r0, [r4, #0xb] - adds r0, #1 - strb r0, [r4, #0xb] -_0802E510: - adds r0, r4, #0 - bl sub_0802E518 - pop {r4, pc} - - thumb_func_start sub_0802E518 -sub_0802E518: @ 0x0802E518 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r0, [sp] - adds r0, #0x84 - ldr r0, [r0] - mov sb, r0 - ldr r1, [r0, #0x3c] - ldr r0, [r1, #0x50] - bl sub_0806FA24 - mov r0, sb - ldr r1, [r0, #0x3c] - ldrb r0, [r0, #1] - strb r0, [r1, #0x15] - mov r1, sb - ldrb r6, [r1, #1] - cmp r6, #0x10 - bls _0802E54C - movs r0, #0xf - eors r6, r0 - adds r6, #1 - ands r6, r0 -_0802E54C: - cmp r6, #0x10 - bne _0802E552 - movs r6, #0xf -_0802E552: - mov r2, sb - ldr r1, [r2, #0x3c] - movs r0, #0xf - eors r6, r0 - adds r0, r6, #0 - adds r0, #0x12 - lsls r0, r0, #8 - strh r0, [r1, #0x24] - ldr r0, [r2, #0x3c] - bl sub_0806F69C - movs r6, #0 - movs r0, #0x3c - add r0, sb - mov sl, r0 - mov r1, sb - adds r1, #0x30 - str r1, [sp, #4] - ldr r2, [sp] - adds r2, #0x80 - str r2, [sp, #8] - movs r7, #0x80 - lsls r7, r7, #1 -_0802E580: - lsls r0, r6, #2 - add r0, sl - ldr r0, [r0] - adds r1, r6, #1 - mov r8, r1 - lsls r4, r1, #2 - mov r2, sl - adds r5, r2, r4 - ldr r1, [r5] - bl sub_0806FA24 - add r4, sb - ldrb r0, [r4, #0x19] - lsls r0, r0, #4 - ldr r1, _0802E644 @ =gUnk_080C9160 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - ldr r1, [sp, #4] - adds r6, r1, r6 - ldrb r1, [r6] - lsls r1, r1, #0x18 - asrs r1, r1, #0x10 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - adds r1, r0, #0 - ldrb r0, [r4, #1] - lsls r0, r0, #4 - ldr r2, _0802E644 @ =gUnk_080C9160 - adds r0, r0, r2 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - ldr r2, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldrb r0, [r4, #0x19] - lsls r0, r0, #4 - adds r0, #0x80 - ldr r1, _0802E644 @ =gUnk_080C9160 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - ldrb r1, [r6] - lsls r1, r1, #0x18 - asrs r1, r1, #0x10 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - ldr r2, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x30] - subs r1, r1, r0 - str r1, [r2, #0x30] - mov r6, r8 - cmp r6, #4 - bls _0802E580 - mov r1, sb - ldr r0, [r1, #0x50] - ldrb r1, [r0, #0xe] - adds r2, r0, #0 - cmp r1, #0x18 - bne _0802E662 - mov r1, sb - ldrb r0, [r1, #0x15] - lsrs r0, r0, #3 - lsls r7, r0, #2 - mov r0, sb - adds r0, #0x2d - ldrb r0, [r0] - lsls r1, r0, #0x18 - lsrs r0, r1, #0x18 - cmp r0, #0xc - bls _0802E648 - adds r7, #3 - b _0802E64C - .align 2, 0 -_0802E644: .4byte gUnk_080C9160 -_0802E648: - lsrs r0, r1, #0x1a - adds r7, r7, r0 -_0802E64C: - adds r0, r2, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r7, #0 - adds r1, #0x18 - cmp r0, r1 - beq _0802E6E8 - adds r0, r2, #0 - bl sub_080042AC - b _0802E6E8 -_0802E662: - ldr r2, [sp, #8] - ldrb r0, [r2] - cmp r0, #0 - bne _0802E688 - mov r0, sb - movs r1, #5 - movs r2, #0 - movs r3, #0 - bl sub_0802E7CC - mov r0, sb - ldr r2, [r0, #0x50] - ldrb r1, [r2, #0x14] - lsrs r0, r1, #1 - adds r7, r1, r0 - lsrs r0, r7, #2 - ldrb r2, [r2, #0xe] - adds r7, r0, r2 - b _0802E6CA -_0802E688: - ldr r0, [sp] - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0802E6C0 - ldr r0, [sp] - adds r0, #0x58 - ldrb r3, [r0] - mov r1, sb - ldrb r0, [r1, #0x15] - lsrs r2, r0, #3 - adds r0, r2, #0 - adds r0, #0x2f - cmp r3, r0 - bne _0802E6BA - ldr r0, [sp] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - adds r7, r3, #0 - cmp r0, #0 - beq _0802E6CA -_0802E6BA: - adds r7, r2, #0 - adds r7, #0x28 - b _0802E6CA -_0802E6C0: - mov r2, sb - ldrb r0, [r2, #0x15] - lsrs r0, r0, #3 - adds r7, r0, #0 - adds r7, #0x2f -_0802E6CA: - mov r0, sb - ldr r1, [r0, #0x50] - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r7 - beq _0802E6E2 - adds r0, r1, #0 - adds r1, r7, #0 - bl sub_080042AC - b _0802E6E8 -_0802E6E2: - adds r0, r1, #0 - bl sub_080042B8 -_0802E6E8: - movs r6, #0 -_0802E6EA: - ldr r1, [sp, #8] - ldrb r0, [r1] - cmp r0, #0 - bne _0802E72E - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - mov r0, sb - movs r2, #0 - movs r3, #0 - bl sub_0802E7CC - lsls r5, r6, #2 - mov r2, sl - adds r0, r2, r5 - ldr r0, [r0] - ldrb r1, [r0, #0x14] - lsrs r0, r1, #1 - adds r7, r1, r0 - lsrs r7, r7, #2 - adds r4, r6, #1 - lsls r0, r4, #2 - add r0, sb - ldrb r0, [r0, #0x19] - movs r1, #3 - bl __divsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r7, r7, r1 - adds r1, r5, #0 - b _0802E73E -_0802E72E: - lsls r1, r6, #2 - mov r2, sb - adds r0, r2, r1 - ldrb r0, [r0, #1] - lsrs r0, r0, #3 - adds r7, r0, #0 - adds r7, #0x48 - adds r4, r6, #1 -_0802E73E: - mov r2, sl - adds r0, r2, r1 - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r7 - beq _0802E756 - adds r0, r1, #0 - adds r1, r7, #0 - bl sub_08004260 -_0802E756: - adds r6, r4, #0 - cmp r6, #4 - bls _0802E6EA - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0802E768 -sub_0802E768: @ 0x0802E768 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r2, #0 - movs r6, #0x1f -_0802E770: - lsls r3, r2, #2 - adds r0, r4, r3 - ldrb r1, [r0, #1] - adds r2, #1 - lsls r0, r2, #2 - adds r0, r4, r0 - ldrb r0, [r0, #1] - subs r0, r1, r0 - ands r0, r6 - adds r5, r2, #0 - cmp r0, #0x10 - ble _0802E790 - cmp r0, #0x1e - bgt _0802E798 - adds r1, #1 - b _0802E796 -_0802E790: - cmp r0, #1 - ble _0802E798 - subs r1, #1 -_0802E796: - ands r1, r6 -_0802E798: - adds r0, r4, r3 - strb r1, [r0, #1] - ldrb r1, [r0, #0x19] - lsls r0, r5, #2 - adds r0, r4, r0 - ldrb r0, [r0, #0x19] - subs r0, r1, r0 - movs r2, #0x1f - ands r0, r2 - cmp r0, #0x10 - ble _0802E7B6 - cmp r0, #0x1d - bgt _0802E7BE - adds r1, #1 - b _0802E7BC -_0802E7B6: - cmp r0, #2 - ble _0802E7BE - subs r1, #1 -_0802E7BC: - ands r1, r2 -_0802E7BE: - adds r0, r4, r3 - strb r1, [r0, #0x19] - adds r2, r5, #0 - cmp r2, #4 - bls _0802E770 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802E7CC -sub_0802E7CC: @ 0x0802E7CC - lsls r1, r1, #0x18 - lsrs r1, r1, #0x16 - adds r2, r0, #0 - adds r2, #0x3c - adds r2, r2, r1 - ldr r3, [r2] - adds r0, r0, r1 - ldrb r0, [r0, #1] - strb r0, [r3, #0x14] - ldr r0, [r2] - ldrb r0, [r0, #0x14] - bx lr - - thumb_func_start sub_0802E7E4 -sub_0802E7E4: @ 0x0802E7E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov ip, r0 - ldr r0, [r0, #0x50] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0802E8D0 - movs r6, #0 - movs r5, #0 - mov r7, ip - adds r7, #0x3c - movs r0, #0x30 - add r0, ip - mov r8, r0 - movs r1, #8 - rsbs r1, r1, #0 - mov sl, r1 - movs r2, #4 - rsbs r2, r2, #0 - mov sb, r2 -_0802E818: - lsls r0, r5, #2 - adds r4, r7, r0 - ldr r3, [r4] - adds r3, #0x29 - movs r1, #7 - ands r1, r6 - ldrb r2, [r3] - mov r0, sl - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r6, #1 - mov r1, r8 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _0802E852 - ldr r3, [r4] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - mov r0, sb - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - b _0802E860 -_0802E852: - ldr r2, [r4] - ldrb r1, [r2, #0x18] - mov r0, sb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] -_0802E860: - adds r5, #1 - cmp r5, #5 - bls _0802E818 - movs r5, #0 - movs r2, #7 - mov sb, r2 - movs r0, #8 - rsbs r0, r0, #0 - mov r8, r0 -_0802E872: - lsls r1, r5, #2 - mov r2, ip - adds r0, r2, r1 - ldrb r0, [r0, #1] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, #1 - cmp r0, #0x10 - bhi _0802E8BA - adds r0, r7, r1 - ldr r3, [r0] - adds r3, #0x29 - ldrb r4, [r3] - lsls r0, r4, #0x1d - lsrs r6, r0, #0x1d - lsls r2, r5, #2 - adds r2, r7, r2 - ldr r0, [r2] - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - mov r0, r8 - ands r0, r4 - orrs r0, r1 - strb r0, [r3] - ldr r1, [r2] - adds r1, #0x29 - mov r0, sb - ands r6, r0 - ldrb r2, [r1] - mov r0, r8 - ands r0, r2 - orrs r0, r6 - strb r0, [r1] -_0802E8BA: - cmp r5, #4 - bls _0802E872 - mov r1, ip - ldr r0, [r1, #0x38] - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - b _0802E9A4 -_0802E8D0: - movs r6, #5 - movs r5, #0 - mov r7, ip - adds r7, #0x3c - movs r2, #0x30 - add r2, ip - mov r8, r2 - movs r0, #8 - rsbs r0, r0, #0 - mov sl, r0 - movs r1, #4 - rsbs r1, r1, #0 - mov sb, r1 -_0802E8EA: - lsls r0, r5, #2 - adds r4, r7, r0 - ldr r3, [r4] - adds r3, #0x29 - movs r1, #7 - ands r1, r6 - ldrb r2, [r3] - mov r0, sl - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - subs r6, #1 - mov r2, r8 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, #0 - bne _0802E924 - ldr r3, [r4] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #2 - rsbs r0, r0, #0 - ands r1, r0 - mov r0, sb - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - b _0802E932 -_0802E924: - ldr r2, [r4] - ldrb r1, [r2, #0x18] - mov r0, sb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] -_0802E932: - adds r5, #1 - cmp r5, #5 - bls _0802E8EA - movs r5, #0 - movs r0, #7 - mov sb, r0 - movs r1, #8 - rsbs r1, r1, #0 - mov r8, r1 -_0802E944: - lsls r1, r5, #2 - mov r2, ip - adds r0, r2, r1 - ldrb r0, [r0, #1] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r5, #1 - cmp r0, #0x10 - bls _0802E98C - adds r0, r7, r1 - ldr r3, [r0] - adds r3, #0x29 - ldrb r4, [r3] - lsls r0, r4, #0x1d - lsrs r6, r0, #0x1d - lsls r2, r5, #2 - adds r2, r7, r2 - ldr r0, [r2] - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - mov r0, r8 - ands r0, r4 - orrs r0, r1 - strb r0, [r3] - ldr r1, [r2] - adds r1, #0x29 - mov r0, sb - ands r6, r0 - ldrb r2, [r1] - mov r0, r8 - ands r0, r2 - orrs r0, r6 - strb r0, [r1] -_0802E98C: - cmp r5, #4 - bls _0802E944 - mov r1, ip - ldr r2, [r1, #0x38] - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] -_0802E9A4: - 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_0802E9B0 -sub_0802E9B0: @ 0x0802E9B0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802E9D0 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - bl sub_080041DC - lsrs r2, r0, #4 - cmp r2, #0x5f - bgt _0802E9D4 - movs r2, #0xa - b _0802E9EA - .align 2, 0 -_0802E9D0: .4byte gLinkEntity -_0802E9D4: - adds r1, r2, #0 - subs r1, #0x60 - cmp r1, #0 - bge _0802E9DE - adds r1, #3 -_0802E9DE: - asrs r1, r1, #2 - movs r0, #0xa - subs r2, r0, r1 - cmp r2, #3 - bgt _0802E9EA - movs r2, #4 -_0802E9EA: - adds r0, r4, #0 - adds r0, #0x84 - ldr r3, [r0] - adds r0, r3, #0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r2, r0 - beq _0802EA10 - cmp r2, r0 - ble _0802EA04 - ldrh r0, [r3, #0x2c] - adds r0, #0x20 - b _0802EA08 -_0802EA04: - ldrh r0, [r3, #0x2c] - subs r0, #0x20 -_0802EA08: - ldr r2, _0802EA14 @ =0x00001FFF - adds r1, r2, #0 - ands r0, r1 - strh r0, [r3, #0x2c] -_0802EA10: - pop {r4, pc} - .align 2, 0 -_0802EA14: .4byte 0x00001FFF - - thumb_func_start sub_0802EA18 -sub_0802EA18: @ 0x0802EA18 - push {lr} - adds r3, r2, #0 - movs r2, #0x80 - lsls r2, r2, #5 - adds r1, r1, r2 - subs r1, r1, r0 - ldr r0, _0802EA40 @ =0x00001FFF - ands r1, r0 - lsls r3, r3, #8 - subs r2, r2, r3 - cmp r1, r2 - blo _0802EA44 - movs r2, #0x80 - lsls r2, r2, #5 - adds r0, r3, r2 - cmp r1, r0 - bhi _0802EA44 - movs r0, #0 - b _0802EA46 - .align 2, 0 -_0802EA40: .4byte 0x00001FFF -_0802EA44: - movs r0, #1 -_0802EA46: - pop {pc} - - thumb_func_start sub_0802EA48 -sub_0802EA48: @ 0x0802EA48 - push {r4, lr} - adds r4, r0, #0 - cmp r3, #1 - bne _0802EA52 - rsbs r2, r2, #0 -_0802EA52: - lsls r0, r1, #2 - adds r0, r4, r0 - ldrh r1, [r0] - adds r1, r1, r2 - ldr r3, _0802EA64 @ =0x00001FFF - adds r2, r3, #0 - ands r1, r2 - strh r1, [r0] - pop {r4, pc} - .align 2, 0 -_0802EA64: .4byte 0x00001FFF - - thumb_func_start sub_0802EA68 -sub_0802EA68: @ 0x0802EA68 - push {r4, lr} - adds r4, r0, #0 - cmp r3, #2 - bne _0802EA72 - rsbs r2, r2, #0 -_0802EA72: - lsls r0, r1, #2 - adds r0, r4, r0 - ldrh r1, [r0, #0x18] - adds r1, r1, r2 - ldr r3, _0802EA84 @ =0x00001FFF - adds r2, r3, #0 - ands r1, r2 - strh r1, [r0, #0x18] - pop {r4, pc} - .align 2, 0 -_0802EA84: .4byte 0x00001FFF - - thumb_func_start sub_0802EA88 -sub_0802EA88: @ 0x0802EA88 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 - movs r3, #0 -_0802EA90: - lsls r0, r3, #2 - adds r4, r5, r0 - adds r2, r3, #1 - lsls r0, r2, #2 - adds r1, r5, r0 - ldrb r0, [r4, #1] - ldrb r3, [r1, #1] - cmp r0, r3 - beq _0802EAC2 - movs r6, #1 - ldrb r0, [r1, #1] - ldrb r1, [r4, #1] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - movs r3, #1 - cmp r0, #0x10 - ble _0802EAB6 - movs r3, #0 -_0802EAB6: - adds r0, r5, #0 - adds r1, r2, #0 - movs r2, #0x20 - bl sub_0802EA48 - b _0802EAC8 -_0802EAC2: - adds r3, r2, #0 - cmp r3, #4 - bls _0802EA90 -_0802EAC8: - movs r3, #0 - movs r4, #0x1f -_0802EACC: - adds r2, r3, #1 - lsls r0, r2, #2 - adds r0, r5, r0 - ldrb r1, [r0, #1] - lsls r0, r3, #2 - adds r0, r5, r0 - ldrb r0, [r0, #1] - subs r0, r1, r0 - ands r0, r4 - adds r3, r1, #0 - adds r1, r2, #0 - cmp r0, #0x10 - ble _0802EAEE - cmp r0, #0x1e - bgt _0802EAF6 - adds r3, #1 - b _0802EAF4 -_0802EAEE: - cmp r0, #1 - ble _0802EAF6 - subs r3, #1 -_0802EAF4: - ands r3, r4 -_0802EAF6: - lsls r0, r1, #2 - adds r0, r5, r0 - strb r3, [r0, #1] - adds r3, r1, #0 - cmp r3, #4 - bls _0802EACC - adds r0, r6, #0 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802EB08 -sub_0802EB08: @ 0x0802EB08 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - movs r0, #0 - mov r8, r0 - movs r3, #0 -_0802EB1A: - lsls r0, r3, #2 - adds r4, r5, r0 - adds r2, r3, #1 - lsls r0, r2, #2 - adds r1, r5, r0 - ldrb r0, [r4, #0x19] - ldrb r3, [r1, #0x19] - cmp r0, r3 - beq _0802EB4E - movs r0, #1 - mov r8, r0 - ldrb r0, [r1, #0x19] - ldrb r1, [r4, #0x19] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - movs r3, #2 - cmp r0, #0x10 - ble _0802EB42 - movs r3, #3 -_0802EB42: - adds r0, r5, #0 - adds r1, r2, #0 - adds r2, r6, #0 - bl sub_0802EA68 - b _0802EB54 -_0802EB4E: - adds r3, r2, #0 - cmp r3, #4 - bls _0802EB1A -_0802EB54: - movs r3, #0 - movs r4, #0x1f - rsbs r6, r7, #0 - ands r6, r4 -_0802EB5C: - adds r2, r3, #1 - lsls r0, r2, #2 - adds r0, r5, r0 - ldrb r1, [r0, #0x19] - lsls r0, r3, #2 - adds r0, r5, r0 - ldrb r0, [r0, #0x19] - subs r0, r1, r0 - ands r0, r4 - adds r3, r1, #0 - adds r1, r2, #0 - cmp r0, #0x10 - ble _0802EB7E - cmp r6, r0 - ble _0802EB86 - adds r3, #1 - b _0802EB84 -_0802EB7E: - cmp r7, r0 - bge _0802EB86 - subs r3, #1 -_0802EB84: - ands r3, r4 -_0802EB86: - lsls r0, r1, #2 - adds r0, r5, r0 - strb r3, [r0, #0x19] - adds r3, r1, #0 - cmp r3, #4 - bls _0802EB5C - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802EB9C -sub_0802EB9C: @ 0x0802EB9C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802EBBC @ =gUnk_080CD850 - bl sub_080028F4 - ldr r1, _0802EBC0 @ =gUnk_080CD854 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - adds r4, #0x75 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0802EBBC: .4byte gUnk_080CD850 -_0802EBC0: .4byte gUnk_080CD854 - - thumb_func_start sub_0802EBC4 -sub_0802EBC4: @ 0x0802EBC4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - adds r6, r0, #0 - cmp r6, #0 - bne _0802EC66 - ldr r1, _0802EC18 @ =gUnk_080CD86C - adds r5, r4, #0 - adds r5, #0x79 - ldrb r0, [r5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_080028F4 - ldr r2, _0802EC1C @ =gUnk_080CD878 - ldrb r1, [r5] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - adds r1, r1, r0 - adds r2, r4, #0 - adds r2, #0x75 - ldrb r0, [r1] - ldrb r1, [r2] - cmp r0, r1 - bhs _0802EC60 - strb r6, [r2] - ldrb r1, [r5] - cmp r1, #0 - bne _0802EC20 - adds r0, r4, #0 - adds r0, #0x76 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #3 - strb r0, [r1] - b _0802EC56 - .align 2, 0 -_0802EC18: .4byte gUnk_080CD86C -_0802EC1C: .4byte gUnk_080CD878 -_0802EC20: - bl sub_08000E50 - adds r1, r0, #0 - movs r5, #1 - ands r1, r5 - adds r3, r4, #0 - adds r3, #0x76 - ldrb r0, [r3] - cmp r1, r0 - beq _0802EC3E - strb r1, [r3] - adds r0, r4, #0 - adds r0, #0x77 - strb r5, [r0] - b _0802EC56 -_0802EC3E: - adds r2, r4, #0 - adds r2, #0x77 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _0802EC54 - eors r1, r5 - strb r5, [r2] -_0802EC54: - strb r1, [r3] -_0802EC56: - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xd] - strb r1, [r4, #0xb] - b _0802EC6A -_0802EC60: - movs r0, #2 - strb r0, [r4, #0xd] - b _0802EC6A -_0802EC66: - subs r0, #1 - strb r0, [r1] -_0802EC6A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0802EC6C -sub_0802EC6C: @ 0x0802EC6C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802EC94 @ =gUnk_080CDE34 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802EC94: .4byte gUnk_080CDE34 - - thumb_func_start sub_0802EC98 -sub_0802EC98: @ 0x0802EC98 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802ECBC @ =gUnk_080CDE4C - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bhi _0802ECB8 - adds r0, r4, #0 - bl sub_0802EF90 -_0802ECB8: - pop {r4, pc} - .align 2, 0 -_0802ECBC: .4byte gUnk_080CDE4C - - thumb_func_start sub_0802ECC0 -sub_0802ECC0: @ 0x0802ECC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0802ED2A - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r5, r0, #0 - ldr r3, _0802ED00 @ =gUnk_030010A0 - cmp r1, #0 - bne _0802ECEE - adds r2, r3, #0 - adds r2, #0x39 - adds r0, r3, #0 - adds r0, #0x3c - ldrb r0, [r0] - adds r0, #2 - movs r1, #1 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] -_0802ECEE: - ldr r0, _0802ED04 @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _0802ED08 - ldrb r1, [r5] - adds r0, r3, #0 - adds r0, #0x3a - b _0802ED0E - .align 2, 0 -_0802ED00: .4byte gUnk_030010A0 -_0802ED04: .4byte gUnk_03000BF0 -_0802ED08: - ldrb r1, [r5] - adds r0, r3, #0 - adds r0, #0x3b -_0802ED0E: - strb r1, [r0] - adds r6, r4, #0 - adds r6, #0x79 - ldrb r0, [r6] - ldrb r1, [r5] - cmp r0, r1 - beq _0802ED24 - movs r0, #0xbd - lsls r0, r0, #1 - bl sub_08004488 -_0802ED24: - ldrb r0, [r5] - strb r0, [r6] - b _0802ED52 -_0802ED2A: - cmp r0, #1 - bne _0802ED52 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _0802ED3E - rsbs r0, r0, #0 - strb r0, [r1] -_0802ED3E: - adds r5, r4, #0 - adds r5, #0x45 - ldrb r0, [r5] - cmp r0, #0xff - beq _0802ED4E - movs r0, #0xe5 - bl sub_08004488 -_0802ED4E: - movs r0, #0xff - strb r0, [r5] -_0802ED52: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802ED64 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802ED64: - ldr r1, _0802ED70 @ =gUnk_080CDE34 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_0802ED70: .4byte gUnk_080CDE34 - - thumb_func_start sub_0802ED74 -sub_0802ED74: @ 0x0802ED74 - push {lr} - ldr r2, _0802ED88 @ =gUnk_080CDE5C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802ED88: .4byte gUnk_080CDE5C - - thumb_func_start sub_0802ED8C -sub_0802ED8C: @ 0x0802ED8C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0802EDD0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _0802EE0A - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _0802EE0A - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x34 - strb r0, [r1, #9] - str r4, [r1, #0x14] - adds r0, r1, #0 - movs r1, #8 - bl sub_0805EA2C - movs r0, #0x25 - movs r1, #2 - bl CreateEnemy - str r4, [r0, #0x50] - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0802EDD4 @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _0802EDDC - ldr r0, _0802EDD8 @ =gUnk_030010A0 - adds r0, #0x3a - b _0802EDE0 - .align 2, 0 -_0802EDD0: .4byte gUnk_03003DBC -_0802EDD4: .4byte gUnk_03000BF0 -_0802EDD8: .4byte gUnk_030010A0 -_0802EDDC: - ldr r0, _0802EE0C @ =gUnk_030010A0 - adds r0, #0x3b -_0802EDE0: - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] - adds r1, #0x34 - strb r0, [r1] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802EFB8 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0802EF58 -_0802EE0A: - pop {r4, pc} - .align 2, 0 -_0802EE0C: .4byte gUnk_030010A0 - - thumb_func_start sub_0802EE10 -sub_0802EE10: @ 0x0802EE10 - push {r4, lr} - adds r4, r0, #0 - bl sub_0802F04C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0802EE20 -sub_0802EE20: @ 0x0802EE20 - push {lr} - ldr r2, _0802EE34 @ =gUnk_080CDE64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802EE34: .4byte gUnk_080CDE64 - - thumb_func_start sub_0802EE38 -sub_0802EE38: @ 0x0802EE38 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0802EE84 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _0802EE82 - movs r0, #0x25 - movs r1, #3 - bl CreateEnemy - str r5, [r0, #0x50] - movs r0, #1 - strb r0, [r5, #0xc] - bl sub_08000E50 - adds r4, r0, #0 - movs r1, #3 - ands r0, r1 - adds r0, #1 - strb r0, [r5, #0xe] - bl sub_08000E50 - lsrs r0, r0, #8 - adds r1, r5, #0 - adds r1, #0x78 - strb r0, [r1] - ldr r1, _0802EE88 @ =gUnk_080CDE6C - lsrs r4, r4, #0x10 - movs r0, #3 - ands r4, r0 - adds r4, r4, r1 - ldrb r0, [r4] - strb r0, [r5, #0x15] - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 -_0802EE82: - pop {r4, r5, pc} - .align 2, 0 -_0802EE84: .4byte gUnk_03003DBC -_0802EE88: .4byte gUnk_080CDE6C - - thumb_func_start sub_0802EE8C -sub_0802EE8C: @ 0x0802EE8C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r2, [r0, #4] - cmp r2, #0 - bne _0802EEA8 - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x45 - strb r2, [r0] - b _0802EEB4 -_0802EEA8: - adds r0, r4, #0 - bl sub_0802F04C - adds r0, r4, #0 - bl sub_08004274 -_0802EEB4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802EEB8 -sub_0802EEB8: @ 0x0802EEB8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0802EEC8 - bl sub_0805E780 -_0802EEC8: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0802EED6 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x14] -_0802EED6: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - ldr r1, _0802EF14 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #1 - movs r1, #0x1e - ands r0, r1 - ldr r1, _0802EF18 @ =gUnk_080CDE70 - adds r0, r0, r1 - ldrb r2, [r0] - ldrb r1, [r4, #0x1e] - cmp r2, r1 - beq _0802EF00 - ldrb r0, [r0, #1] - cmp r0, r1 - beq _0802EF00 - strb r2, [r4, #0x1e] -_0802EF00: - ldrh r0, [r4, #0x32] - adds r0, #1 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_0802EF14: .4byte gLinkEntity -_0802EF18: .4byte gUnk_080CDE70 - - thumb_func_start sub_0802EF1C -sub_0802EF1C: @ 0x0802EF1C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0802EF2C - bl sub_0805E780 -_0802EF2C: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0802EF4A - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x11 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x19 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] -_0802EF4A: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - movs r0, #0 - strh r0, [r4, #0x36] - pop {r4, pc} - - thumb_func_start sub_0802EF58 -sub_0802EF58: @ 0x0802EF58 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r5, #0 -_0802EF5E: - movs r0, #0x25 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0802EF86 - strb r5, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - str r6, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0802EF86: - adds r5, #1 - cmp r5, #6 - bls _0802EF5E - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802EF90 -sub_0802EF90: @ 0x0802EF90 - push {r4, lr} - ldr r4, _0802EFB4 @ =gUnk_080CDE90 - adds r3, r0, #0 - adds r3, #0x78 - ldrb r1, [r3] - adds r2, r1, #1 - strb r2, [r3] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #7 - ands r1, r2 - adds r1, r1, r4 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x36] - pop {r4, pc} - .align 2, 0 -_0802EFB4: .4byte gUnk_080CDE90 - - thumb_func_start sub_0802EFB8 -sub_0802EFB8: @ 0x0802EFB8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r6, r0, #0 - lsrs r0, r6, #0x10 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - beq _0802EFD2 - movs r5, #0x18 - ands r5, r6 - b _0802EFE0 -_0802EFD2: - ldr r0, _0802F01C @ =gLinkEntity - adds r1, r4, #0 - bl sub_080045C4 - adds r5, r0, #4 - movs r0, #0x18 - ands r5, r0 -_0802EFE0: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0802F020 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r7, #0x32 - ldrsh r1, [r4, r7] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - ldr r2, _0802F024 @ =gUnk_080B4488 - lsrs r1, r5, #2 - adds r1, r1, r2 - movs r2, #0 - ldrsh r1, [r1, r2] - adds r0, r0, r1 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - beq _0802F028 - movs r0, #0xff - strb r0, [r4, #0x15] - b _0802F044 - .align 2, 0 -_0802F01C: .4byte gLinkEntity -_0802F020: .4byte gUnk_03000BF0 -_0802F024: .4byte gUnk_080B4488 -_0802F028: - movs r1, #3 - adds r0, r6, #0 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - strb r5, [r4, #0x15] - ldr r2, _0802F048 @ =gUnk_080CDE98 - lsrs r0, r6, #0x18 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] -_0802F044: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802F048: .4byte gUnk_080CDE98 - - thumb_func_start sub_0802F04C -sub_0802F04C: @ 0x0802F04C - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0802F06A - adds r0, r4, #0 - bl sub_0802EFB8 - b _0802F112 -_0802F06A: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - cmp r0, #1 - beq _0802F098 - cmp r0, #1 - bgt _0802F07C - cmp r0, #0 - beq _0802F082 - b _0802F0DC -_0802F07C: - cmp r0, #2 - beq _0802F0AE - b _0802F0DC -_0802F082: - movs r2, #0xf - adds r0, r6, #0 - ands r0, r2 - cmp r0, #8 - ble _0802F102 - ldrh r1, [r4, #0x32] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #8 - bgt _0802F102 - b _0802F0C2 -_0802F098: - movs r2, #0xf - adds r0, r5, #0 - ands r0, r2 - cmp r0, #7 - bgt _0802F102 - ldrh r1, [r4, #0x2e] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #7 - ble _0802F102 - b _0802F0F0 -_0802F0AE: - movs r2, #0xf - adds r0, r6, #0 - ands r0, r2 - cmp r0, #7 - bgt _0802F102 - ldrh r1, [r4, #0x32] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #7 - ble _0802F102 -_0802F0C2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _0802F0D8 @ =0x0000FFF0 - ands r0, r1 - adds r6, r0, #0 - adds r6, #8 - b _0802F102 - .align 2, 0 -_0802F0D8: .4byte 0x0000FFF0 -_0802F0DC: - movs r2, #0xf - adds r0, r5, #0 - ands r0, r2 - cmp r0, #8 - ble _0802F102 - ldrh r1, [r4, #0x2e] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #8 - bgt _0802F102 -_0802F0F0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r1, _0802F114 @ =0x0000FFF0 - ands r0, r1 - adds r5, r0, #0 - adds r5, #8 -_0802F102: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0802F112 - strh r5, [r4, #0x2e] - strh r6, [r4, #0x32] - adds r0, r4, #0 - bl sub_0802EFB8 -_0802F112: - pop {r4, r5, r6, pc} - .align 2, 0 -_0802F114: .4byte 0x0000FFF0 - - thumb_func_start sub_0802F118 -sub_0802F118: @ 0x0802F118 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0802F134 @ =gUnk_080CDED0 - 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 -_0802F134: .4byte gUnk_080CDED0 - - thumb_func_start sub_0802F138 -sub_0802F138: @ 0x0802F138 - push {lr} - ldr r2, _0802F14C @ =gUnk_080CDEE8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802F14C: .4byte gUnk_080CDEE8 - - thumb_func_start sub_0802F150 -sub_0802F150: @ 0x0802F150 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802F164 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802F164: - ldr r1, _0802F18C @ =gUnk_080CDED0 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802F1E8 - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x14 - beq _0802F196 - cmp r0, #0x14 - bgt _0802F190 - cmp r0, #0xe - beq _0802F1E0 - b _0802F1E8 - .align 2, 0 -_0802F18C: .4byte gUnk_080CDED0 -_0802F190: - cmp r0, #0x15 - beq _0802F1E0 - b _0802F1E8 -_0802F196: - movs r0, #0 - movs r1, #1 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0802F1A8 - movs r0, #0xc0 - b _0802F1B6 -_0802F1A8: - bl sub_08000E50 - ldr r2, _0802F1DC @ =gUnk_080CDEF8 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] -_0802F1B6: - strb r0, [r4, #0xe] - movs r1, #0 - strb r1, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x7c - strb r1, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0802F1CE - ldr r0, [r4, #0x20] - asrs r0, r0, #2 -_0802F1CE: - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _0802F1E8 - .align 2, 0 -_0802F1DC: .4byte gUnk_080CDEF8 -_0802F1E0: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_0802F1E8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_16 -nullsub_16: @ 0x0802F1EC - bx lr - .align 2, 0 - - thumb_func_start sub_0802F1F0 -sub_0802F1F0: @ 0x0802F1F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001242 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0802F20C - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_08003FC4 -_0802F20C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802F210 -sub_0802F210: @ 0x0802F210 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - bl sub_08000E50 - ldr r2, _0802F280 @ =gUnk_080CDEF8 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r5, #0xe] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - ldrb r1, [r5, #0xe] - adds r0, r0, r1 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - ldrb r0, [r5, #0xa] - movs r2, #0xa0 - lsls r2, r2, #6 - adds r1, r2, #0 - cmp r0, #0 - bne _0802F258 - movs r0, #0xc0 - lsls r0, r0, #5 - adds r1, r0, #0 -_0802F258: - adds r0, r5, #0 - adds r0, #0x80 - strh r1, [r0] - ldrb r0, [r5, #0xa] - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r2, #0 - cmp r0, #0 - bne _0802F270 - movs r0, #0xa0 - lsls r0, r0, #6 - adds r1, r0, #0 -_0802F270: - adds r0, r5, #0 - adds r0, #0x82 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 -_0802F280: .4byte gUnk_080CDEF8 - - thumb_func_start sub_0802F284 -sub_0802F284: @ 0x0802F284 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0x60 - bls _0802F298 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004276 - b _0802F29E -_0802F298: - adds r0, r4, #0 - bl sub_08004274 -_0802F29E: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0802F2AA - subs r0, #1 - strb r0, [r4, #0xe] - b _0802F2FE -_0802F2AA: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802F2E4 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802F2FE - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - lsls r0, r0, #4 - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_0802F45C - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0802F2FE -_0802F2E4: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0802F2FE - movs r0, #0x40 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_0802F2FE: - pop {r4, pc} - - thumb_func_start sub_0802F300 -sub_0802F300: @ 0x0802F300 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AEF88 - movs r0, #0x36 - ldrsh r6, [r4, r0] - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0xf - ands r5, r0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _0802F364 - movs r0, #0 - movs r2, #3 - strb r2, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0802F33C - movs r5, #0 -_0802F33C: - cmp r5, #0 - bne _0802F344 - movs r0, #0xc0 - b _0802F350 -_0802F344: - ldr r0, _0802F360 @ =gUnk_080CDEF8 - adds r1, r5, #0 - ands r1, r2 - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, r0, r5 -_0802F350: - strb r0, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _0802F3F0 - .align 2, 0 -_0802F360: .4byte gUnk_080CDEF8 -_0802F364: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802F374 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - b _0802F38C -_0802F374: - adds r0, r4, #0 - bl sub_080002B8 - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x50 - bne _0802F38C - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_0802F38C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802F3AC - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0802F3AC - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0802F45C -_0802F3AC: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0802F3C6 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r6, r0 - bge _0802F3C6 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - movs r0, #1 - strb r0, [r4, #0xd] -_0802F3C6: - movs r0, #0xc - rsbs r0, r0, #0 - cmp r6, r0 - bge _0802F3DA - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - b _0802F3E4 -_0802F3DA: - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 -_0802F3E4: - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] -_0802F3F0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802F3F4 -sub_0802F3F4: @ 0x0802F3F4 - 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 _0802F45A - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #1 - bhi _0802F44C - ldrb r0, [r4, #0xa] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0802F44C - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - lsls r0, r0, #4 - str r0, [r4, #0x20] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0802F45C - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0802F45A -_0802F44C: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_08004260 -_0802F45A: - pop {r4, pc} - - thumb_func_start sub_0802F45C -sub_0802F45C: @ 0x0802F45C - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0802F472 - adds r0, r4, #0 - bl sub_08049EE4 - strb r0, [r4, #0x15] - b _0802F49E -_0802F472: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0802F48A - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _0802F49E -_0802F48A: - bl sub_08000E50 - movs r1, #0xf - ands r1, r0 - adds r1, #0x18 - ldrb r0, [r4, #0x15] - adds r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r4, #0x15] -_0802F49E: - pop {r4, pc} - - thumb_func_start sub_0802F4A0 -sub_0802F4A0: @ 0x0802F4A0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802F4C8 @ =gUnk_080CDF50 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802F4C8: .4byte gUnk_080CDF50 - - thumb_func_start sub_0802F4CC -sub_0802F4CC: @ 0x0802F4CC - push {lr} - ldr r2, _0802F4E0 @ =gUnk_080CDF68 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802F4E0: .4byte gUnk_080CDF68 - - thumb_func_start sub_0802F4E4 -sub_0802F4E4: @ 0x0802F4E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802F4F8 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802F4F8: - ldr r1, _0802F558 @ =gUnk_080CDF50 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - bne _0802F536 - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0802F536 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - str r4, [r2, #0x50] -_0802F536: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0802F556 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0802F556: - pop {r4, pc} - .align 2, 0 -_0802F558: .4byte gUnk_080CDF50 - - thumb_func_start sub_0802F55C -sub_0802F55C: @ 0x0802F55C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802F594 - movs r0, #3 - strb r0, [r4, #0xc] - movs r2, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - ldrb r0, [r4, #0xe] - bl sub_0804B128 - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_0802FA48 - adds r0, r4, #0 - bl sub_0802FA88 - b _0802F5B8 -_0802F594: - adds r0, r4, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x60 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0802F888 -_0802F5B8: - adds r0, r4, #0 - movs r1, #7 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0802F5D0 - str r1, [r4, #0x50] - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] -_0802F5D0: - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0802F5DC -sub_0802F5DC: @ 0x0802F5DC - push {r4, r5, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x82 - ldrb r3, [r2] - cmp r3, #1 - beq _0802F62A - cmp r3, #1 - bgt _0802F5F4 - cmp r3, #0 - beq _0802F60A - b _0802F660 -_0802F5F4: - cmp r3, #0xff - bne _0802F660 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0802F660 - strb r0, [r2] - b _0802F660 -_0802F60A: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802F660 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x10 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _0802F660 -_0802F62A: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802F660 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r2] - movs r0, #0x28 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x15] - lsrs r1, r1, #3 - ldr r2, [r5, #0x50] - movs r4, #1 - strb r3, [r2, #0xe] - ldrb r3, [r2, #0x18] - subs r0, #0x2c - ands r0, r3 - orrs r0, r4 - strb r0, [r2, #0x18] - movs r0, #4 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0802F660: - adds r0, r5, #0 - bl sub_0802F9C8 - pop {r4, r5, pc} - - thumb_func_start sub_0802F668 -sub_0802F668: @ 0x0802F668 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x82 - ldrb r0, [r2] - cmp r0, #1 - beq _0802F6F0 - cmp r0, #1 - bgt _0802F680 - cmp r0, #0 - beq _0802F68A - b _0802F7A2 -_0802F680: - cmp r0, #2 - beq _0802F742 - cmp r0, #3 - beq _0802F76C - b _0802F7A2 -_0802F68A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802F69E - cmp r1, #8 - beq _0802F6B6 - b _0802F7A2 -_0802F69E: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x38 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x50] - ldrb r1, [r2, #0x18] - subs r0, #0x3c - ands r0, r1 - strb r0, [r2, #0x18] - b _0802F7A2 -_0802F6B6: - ldr r1, _0802F6EC @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xa0 - movs r3, #0xa0 - bl sub_080041A0 - cmp r0, #0 - beq _0802F7A2 - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - beq _0802F7A2 - adds r0, r4, #0 - movs r1, #7 - movs r2, #1 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0802F7A2 - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - b _0802F7A2 - .align 2, 0 -_0802F6EC: .4byte gLinkEntity -_0802F6F0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0802F7A2 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _0802F7A2 -_0802F742: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802F7A2 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0802F7A2 -_0802F76C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802F7A2 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0802F8E4 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 -_0802F7A2: - adds r0, r4, #0 - bl sub_0802F9C8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802F7AC -sub_0802F7AC: @ 0x0802F7AC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0802FA88 - adds r0, r4, #0 - bl sub_0802F9C8 - ldr r5, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0802F86E - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - cmp r1, #1 - beq _0802F7EA - cmp r1, #1 - bgt _0802F7DA - cmp r1, #0 - beq _0802F7E0 - b _0802F884 -_0802F7DA: - cmp r1, #2 - beq _0802F818 - b _0802F884 -_0802F7E0: - movs r0, #1 - strb r0, [r2] - movs r0, #0x40 - strb r0, [r4, #0xe] - b _0802F884 -_0802F7EA: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802F884 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x28 - strb r0, [r4, #0xe] - movs r2, #1 - strb r1, [r5, #0xe] - ldrb r1, [r5, #0x18] - subs r0, #0x2c - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - movs r0, #4 - orrs r1, r0 - b _0802F844 -_0802F818: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0802F84C - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x30 - strb r0, [r4, #0xe] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 -_0802F844: - adds r0, r4, #0 - bl sub_08004260 - b _0802F884 -_0802F84C: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bne _0802F884 - adds r0, r4, #0 - movs r1, #7 - movs r2, #1 - bl sub_0804A98C - adds r5, r0, #0 - cmp r5, #0 - beq _0802F884 - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _0802F884 -_0802F86E: - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - beq _0802F884 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r5, #0x18] - subs r0, #4 - ands r0, r1 - strb r0, [r5, #0x18] -_0802F884: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0802F888 -sub_0802F888: @ 0x0802F888 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #3 - bl sub_08049F84 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0802F8DC @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r5, r4, #0 - adds r5, #0x84 - strh r1, [r5] - ldrh r0, [r5] - adds r6, r4, #0 - adds r6, #0x38 - ldrb r1, [r6] - bl sub_080001DA - adds r4, #0x86 - strh r0, [r4] - ldr r0, _0802F8E0 @ =0x00004071 - ldrh r1, [r5] - ldrb r2, [r6] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0802F8DC: .4byte gUnk_03000BF0 -_0802F8E0: .4byte 0x00004071 - - thumb_func_start sub_0802F8E4 -sub_0802F8E4: @ 0x0802F8E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x14 - adds r7, r0, #0 - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _0802F9AE - movs r0, #1 - str r0, [sp] - adds r1, r7, #0 - adds r1, #0x70 - str r1, [sp, #0xc] - adds r2, r7, #0 - adds r2, #0x6e - str r2, [sp, #4] - adds r0, r7, #0 - adds r0, #0x72 - str r0, [sp, #0x10] - subs r1, #1 - str r1, [sp, #8] - movs r2, #0x38 - adds r2, r2, r7 - mov r8, r2 - movs r0, #8 - mov sl, r0 - ldr r1, _0802F9BC @ =gUnk_03000BF0 - mov sb, r1 -_0802F920: - bl sub_08000E50 - adds r4, r0, #0 - ldr r2, [sp, #0xc] - ldrh r5, [r2] - ldr r1, _0802F9C0 @ =0x00007FF0 - ands r0, r1 - ldr r2, [sp, #4] - ldrb r1, [r2] - lsls r1, r1, #3 - bl __modsi3 - adds r6, r5, r0 - mov r0, sl - orrs r6, r0 - lsrs r4, r4, #0x10 - ldr r1, [sp, #0x10] - ldrh r5, [r1] - ldr r2, _0802F9C0 @ =0x00007FF0 - ands r4, r2 - ldr r0, [sp, #8] - ldrb r1, [r0] - lsls r1, r1, #3 - adds r0, r4, #0 - bl __modsi3 - adds r5, r5, r0 - mov r1, sl - orrs r5, r1 - mov r2, sb - ldrh r0, [r2, #6] - subs r0, r6, r0 - lsrs r4, r0, #4 - movs r1, #0x3f - ands r4, r1 - ldrh r0, [r2, #8] - subs r0, r5, r0 - lsrs r0, r0, #4 - ands r0, r1 - lsls r0, r0, #6 - orrs r4, r0 - mov r0, r8 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002E0 - cmp r0, #0 - bne _0802F9A2 - mov r2, r8 - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080001DA - ldr r1, _0802F9C4 @ =0x00004071 - cmp r0, r1 - beq _0802F9A2 - strh r6, [r7, #0x2e] - strh r5, [r7, #0x32] - adds r0, r7, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0802F9A2 - movs r0, #0 - str r0, [sp] -_0802F9A2: - ldr r1, [sp] - cmp r1, #0 - bne _0802F920 - adds r0, r7, #0 - bl sub_0802F888 -_0802F9AE: - add sp, #0x14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0802F9BC: .4byte gUnk_03000BF0 -_0802F9C0: .4byte 0x00007FF0 -_0802F9C4: .4byte 0x00004071 - - thumb_func_start sub_0802F9C8 -sub_0802F9C8: @ 0x0802F9C8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0802FA44 - adds r5, r4, #0 - adds r5, #0x81 - ldrb r0, [r5] - adds r6, r5, #0 - cmp r0, #0 - beq _0802FA20 - subs r0, #1 - strb r0, [r5] - movs r1, #0xff - ands r0, r1 - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _0802F9F8 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - b _0802FA02 -_0802F9F8: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 -_0802FA02: - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802FA3E - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r6] - cmp r0, #0 - bne _0802FA3E - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _0802FA3E -_0802FA20: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0802FA3E - adds r0, r4, #0 - bl sub_080AEF88 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0802FA3E - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - movs r0, #0x28 - strb r0, [r5] -_0802FA3E: - adds r0, r4, #0 - bl sub_08004274 -_0802FA44: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0802FA48 -sub_0802FA48: @ 0x0802FA48 - push {r4, lr} - mov ip, r0 - ldr r4, [r0, #0x54] - mov r2, ip - adds r2, #0x80 - ldrb r0, [r2] - lsls r0, r0, #2 - adds r3, r4, r0 - ldrh r1, [r3] - ldr r0, _0802FA80 @ =0x0000FFFF - cmp r1, r0 - bne _0802FA66 - movs r0, #0 - strb r0, [r2] - adds r3, r4, #0 -_0802FA66: - ldr r2, _0802FA84 @ =gUnk_03000BF0 - ldrh r0, [r3] - ldrh r1, [r2, #6] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x78 - strh r0, [r1] - ldrh r0, [r3, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, #2 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_0802FA80: .4byte 0x0000FFFF -_0802FA84: .4byte gUnk_03000BF0 - - thumb_func_start sub_0802FA88 -sub_0802FA88: @ 0x0802FA88 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r7, #0 - adds r5, r4, #0 - adds r5, #0x78 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x7a - ldrh r2, [r6] - movs r3, #2 - bl sub_0806FCB8 - cmp r0, #0 - beq _0802FAF6 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0802FA48 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - ldrh r3, [r6] - bl sub_080045D4 - adds r2, r0, #0 - strb r2, [r4, #0x15] - adds r0, r2, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _0802FAEA - lsrs r1, r2, #3 - movs r0, #4 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 - b _0802FAF2 -_0802FAEA: - lsrs r1, r2, #3 - adds r0, r4, #0 - bl sub_08004260 -_0802FAF2: - movs r7, #1 - b _0802FB2A -_0802FAF6: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - ldrh r3, [r6] - bl sub_080045D4 - adds r2, r0, #0 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08004596 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r2, r0, #2 - ldrb r0, [r4, #0x14] - cmp r2, r0 - beq _0802FB2A - strb r2, [r4, #0x14] - lsrs r1, r2, #1 - adds r0, r4, #0 - bl sub_08004260 -_0802FB2A: - adds r0, r7, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0802FB30 -sub_0802FB30: @ 0x0802FB30 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802FB58 @ =gUnk_080CDFC4 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802FB58: .4byte gUnk_080CDFC4 - - thumb_func_start sub_0802FB5C -sub_0802FB5C: @ 0x0802FB5C - push {lr} - ldr r2, _0802FB70 @ =gUnk_080CDFDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802FB70: .4byte gUnk_080CDFDC - - thumb_func_start sub_0802FB74 -sub_0802FB74: @ 0x0802FB74 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802FB88 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802FB88: - ldr r1, _0802FBB4 @ =gUnk_080CDFC4 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0802FBB0 - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0802FBB0: - pop {r4, pc} - .align 2, 0 -_0802FBB4: .4byte gUnk_080CDFC4 - - thumb_func_start sub_0802FBB8 -sub_0802FBB8: @ 0x0802FBB8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x60 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0802F888 - adds r0, r4, #0 - movs r1, #8 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0802FBF6 - str r1, [r4, #0x54] - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] -_0802FBF6: - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802FC04 -sub_0802FC04: @ 0x0802FC04 - push {r4, r5, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x82 - ldrb r3, [r2] - cmp r3, #1 - beq _0802FC52 - cmp r3, #1 - bgt _0802FC1C - cmp r3, #0 - beq _0802FC32 - b _0802FC88 -_0802FC1C: - cmp r3, #0xff - bne _0802FC88 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0802FC88 - strb r0, [r2] - b _0802FC88 -_0802FC32: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802FC88 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0xe - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _0802FC88 -_0802FC52: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802FC88 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r2] - movs r0, #0x20 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x15] - lsrs r1, r1, #3 - ldr r2, [r5, #0x54] - movs r4, #1 - strb r3, [r2, #0xe] - ldrb r3, [r2, #0x18] - subs r0, #0x24 - ands r0, r3 - orrs r0, r4 - strb r0, [r2, #0x18] - movs r0, #4 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0802FC88: - adds r0, r5, #0 - bl sub_0802F9C8 - pop {r4, r5, pc} - - thumb_func_start sub_0802FC90 -sub_0802FC90: @ 0x0802FC90 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x82 - ldrb r0, [r2] - cmp r0, #1 - beq _0802FD18 - cmp r0, #1 - bgt _0802FCA8 - cmp r0, #0 - beq _0802FCB2 - b _0802FDCA -_0802FCA8: - cmp r0, #2 - beq _0802FD6A - cmp r0, #3 - beq _0802FD94 - b _0802FDCA -_0802FCB2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802FCC6 - cmp r1, #6 - beq _0802FCDE - b _0802FDCA -_0802FCC6: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x38 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #0x3c - ands r0, r1 - strb r0, [r2, #0x18] - b _0802FDCA -_0802FCDE: - ldr r1, _0802FD14 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xa0 - movs r3, #0xa0 - bl sub_080041A0 - cmp r0, #0 - beq _0802FDCA - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - beq _0802FDCA - adds r0, r4, #0 - movs r1, #8 - movs r2, #1 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0802FDCA - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - b _0802FDCA - .align 2, 0 -_0802FD14: .4byte gLinkEntity -_0802FD18: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0802FDCA - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _0802FDCA -_0802FD6A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802FDCA - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x1c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _0802FDCA -_0802FD94: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802FDCA - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0802F8E4 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 -_0802FDCA: - adds r0, r4, #0 - bl sub_0802F9C8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802FDD4 -sub_0802FDD4: @ 0x0802FDD4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0802FDFC @ =gUnk_080CE074 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0802FDFC: .4byte gUnk_080CE074 - - thumb_func_start sub_0802FE00 -sub_0802FE00: @ 0x0802FE00 - push {lr} - ldr r2, _0802FE14 @ =gUnk_080CE08C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0802FE14: .4byte gUnk_080CE08C - - thumb_func_start sub_0802FE18 -sub_0802FE18: @ 0x0802FE18 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0802FE2C - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0802FE2C: - ldr r1, _0802FE8C @ =gUnk_080CE074 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x87 - bne _0802FE6A - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0802FE6A - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - str r4, [r2, #0x50] -_0802FE6A: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0802FE8A - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0802FE8A: - pop {r4, pc} - .align 2, 0 -_0802FE8C: .4byte gUnk_080CE074 - - thumb_func_start sub_0802FE90 -sub_0802FE90: @ 0x0802FE90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xff - strb r0, [r1] - subs r1, #1 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0x60 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_0802F888 - adds r0, r4, #0 - movs r1, #9 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0802FECE - str r1, [r4, #0x54] - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] -_0802FECE: - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0802FEDC -sub_0802FEDC: @ 0x0802FEDC - push {r4, r5, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x82 - ldrb r3, [r2] - cmp r3, #1 - beq _0802FF2A - cmp r3, #1 - bgt _0802FEF4 - cmp r3, #0 - beq _0802FF0A - b _0802FF60 -_0802FEF4: - cmp r3, #0xff - bne _0802FF60 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0802FF60 - strb r0, [r2] - b _0802FF60 -_0802FF0A: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0802FF60 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0xc - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - b _0802FF60 -_0802FF2A: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0802FF60 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r2] - movs r0, #0x20 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x15] - lsrs r1, r1, #3 - ldr r2, [r5, #0x54] - movs r4, #1 - strb r3, [r2, #0xe] - ldrb r3, [r2, #0x18] - subs r0, #0x24 - ands r0, r3 - orrs r0, r4 - strb r0, [r2, #0x18] - movs r0, #4 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0802FF60: - adds r0, r5, #0 - bl sub_0802F9C8 - pop {r4, r5, pc} - - thumb_func_start sub_0802FF68 -sub_0802FF68: @ 0x0802FF68 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x82 - ldrb r0, [r2] - cmp r0, #1 - beq _0802FFF0 - cmp r0, #1 - bgt _0802FF80 - cmp r0, #0 - beq _0802FF8A - b _080300A2 -_0802FF80: - cmp r0, #2 - beq _08030042 - cmp r0, #3 - beq _0803006C - b _080300A2 -_0802FF8A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0802FF9E - cmp r1, #0xa - beq _0802FFB6 - b _080300A2 -_0802FF9E: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x38 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #0x3c - ands r0, r1 - strb r0, [r2, #0x18] - b _080300A2 -_0802FFB6: - ldr r1, _0802FFEC @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0xa0 - movs r3, #0xa0 - bl sub_080041A0 - cmp r0, #0 - beq _080300A2 - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - beq _080300A2 - adds r0, r4, #0 - movs r1, #9 - movs r2, #1 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _080300A2 - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - b _080300A2 - .align 2, 0 -_0802FFEC: .4byte gLinkEntity -_0802FFF0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _080300A2 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x84 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _080300A2 -_08030042: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080300A2 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x18 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _080300A2 -_0803006C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080300A2 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0x28 - strb r0, [r1] - strb r0, [r4, #0xe] - movs r0, #0xab - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - bl sub_0802F8E4 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 -_080300A2: - adds r0, r4, #0 - bl sub_0802F9C8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080300AC -sub_080300AC: @ 0x080300AC - push {r4, lr} - ldr r4, _080300C0 @ =gUnk_0300110C - adds r0, r4, #0 - movs r1, #0x44 - bl sub_0801D630 - adds r4, #0x42 - movs r0, #0xff - strh r0, [r4] - pop {r4, pc} - .align 2, 0 -_080300C0: .4byte gUnk_0300110C - - thumb_func_start sub_080300C4 -sub_080300C4: @ 0x080300C4 - push {lr} - ldr r2, _080300E4 @ =gUnk_030010A0 - adds r0, r2, #0 - adds r0, #0xae - ldrh r0, [r0] - cmp r0, #0xff - bne _080300E2 - adds r0, r2, #0 - adds r0, #0xac - movs r1, #0 - strh r1, [r0] - subs r0, #0x40 - movs r1, #0x40 - bl sub_0801D630 -_080300E2: - pop {pc} - .align 2, 0 -_080300E4: .4byte gUnk_030010A0 - - thumb_func_start sub_080300E8 -sub_080300E8: @ 0x080300E8 - push {lr} - ldr r1, _08030110 @ =gUnk_030010A0 - adds r3, r1, #0 - adds r3, #0xae - ldrh r0, [r3] - cmp r0, #0xff - beq _0803010C - lsls r0, r0, #2 - adds r1, #0x6c - adds r0, r0, r1 - ldr r2, _08030114 @ =gLinkEntity - ldrh r1, [r0] - strh r1, [r2, #0x2e] - ldrh r0, [r0, #2] - adds r0, #0xc - strh r0, [r2, #0x32] - movs r0, #0xff - strh r0, [r3] -_0803010C: - pop {pc} - .align 2, 0 -_08030110: .4byte gUnk_030010A0 -_08030114: .4byte gLinkEntity - - thumb_func_start sub_08030118 -sub_08030118: @ 0x08030118 - push {lr} - adds r2, r0, #0 - ldr r0, _0803013C @ =gUnk_030010A0 - adds r0, #0xac - ldrh r0, [r0] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08030140 - movs r0, #0xc0 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x67 - bl sub_0807CC9C - b _0803014C - .align 2, 0 -_0803013C: .4byte gUnk_030010A0 -_08030140: - movs r0, #0xc0 - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0x67 - bl sub_0807CD20 -_0803014C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08030150 -sub_08030150: @ 0x08030150 - push {r4, r5, lr} - mov ip, r0 - ldr r2, _08030194 @ =gUnk_030010A0 - adds r5, r2, #0 - adds r5, #0xac - mov r3, ip - adds r3, #0x80 - ldrb r4, [r3] - movs r0, #1 - lsls r0, r4 - ldrh r1, [r5] - bics r1, r0 - mov r0, ip - adds r0, #0x84 - ldr r0, [r0] - lsls r0, r4 - orrs r1, r0 - strh r1, [r5] - ldrb r0, [r3] - lsls r0, r0, #2 - adds r2, #0x6c - adds r0, r0, r2 - mov r4, ip - ldrh r1, [r4, #0x2e] - strh r1, [r0] - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, #1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r4, #0x32] - strh r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_08030194: .4byte gUnk_030010A0 - - thumb_func_start sub_08030198 -sub_08030198: @ 0x08030198 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080301B8 @ =gUnk_080CE124 - bl sub_0800129E - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - adds r0, r4, #0 - bl sub_08030150 - pop {r4, pc} - .align 2, 0 -_080301B8: .4byte gUnk_080CE124 - - thumb_func_start sub_080301BC -sub_080301BC: @ 0x080301BC - push {lr} - ldr r2, _080301D0 @ =gUnk_080CE13C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080301D0: .4byte gUnk_080CE13C - - thumb_func_start sub_080301D4 -sub_080301D4: @ 0x080301D4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _080301EE - ldr r1, [r4, #0x4c] - ldr r0, _08030238 @ =gLinkEntity - cmp r1, r0 - bne _080301EE - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] -_080301EE: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r6, r0, #0 - adds r5, r4, #0 - adds r5, #0x81 - cmp r1, #0 - beq _08030216 - ldrb r0, [r5] - cmp r1, r0 - beq _08030216 - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #6 - bl sub_080309C8 - adds r0, r4, #0 - bl sub_080309E8 -_08030216: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08030228 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08030228: - ldrb r0, [r6] - strb r0, [r5] - ldr r1, _0803023C @ =gUnk_080CE124 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08030238: .4byte gLinkEntity -_0803023C: .4byte gUnk_080CE124 - - thumb_func_start sub_08030240 -sub_08030240: @ 0x08030240 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #6 - bne _08030260 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08030260 - adds r0, r4, #0 - bl sub_08004274 -_08030260: - adds r0, r4, #0 - bl sub_08001242 - pop {r4, pc} - - thumb_func_start nullsub_17 -nullsub_17: @ 0x08030268 - bx lr - .align 2, 0 - - thumb_func_start sub_0803026C -sub_0803026C: @ 0x0803026C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - ldrb r0, [r4, #0xe] - adds r3, r4, #0 - adds r3, #0x80 - strb r0, [r3] - ldrb r2, [r3] - lsls r0, r2, #2 - ldr r5, _080302A8 @ =gUnk_0300110C - adds r0, r0, r5 - ldrh r1, [r0] - cmp r1, #0 - beq _080302AC - strh r1, [r4, #0x2e] - ldrh r0, [r0, #2] - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x84 - adds r0, r5, #0 - adds r0, #0x40 - ldrh r0, [r0] - ldrb r3, [r3] - asrs r0, r3 - movs r1, #1 - ands r0, r1 - str r0, [r2] - b _080302BA - .align 2, 0 -_080302A8: .4byte gUnk_0300110C -_080302AC: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, _08030304 @ =0x0000047D - asrs r1, r2 - movs r2, #1 - ands r1, r2 - str r1, [r0] -_080302BA: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080302C6 - bl sub_0804B128 - str r0, [r4, #0x7c] -_080302C6: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x81 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08030580 - adds r0, r4, #0 - bl sub_080307EC - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - bne _08030302 - ldr r0, _08030308 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r0, #0x80 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08030302 - movs r0, #7 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #7 - bl sub_080309C8 -_08030302: - pop {r4, r5, pc} - .align 2, 0 -_08030304: .4byte 0x0000047D -_08030308: .4byte gUnk_03000BF0 - - thumb_func_start sub_0803030C -sub_0803030C: @ 0x0803030C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0803086C - adds r5, r0, #0 - cmp r5, #0 - bne _08030334 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq _08030334 - adds r0, r4, #0 - bl sub_08030650 - cmp r0, #0 - beq _08030334 - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] -_08030334: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08030338 -sub_08030338: @ 0x08030338 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _0803034C - adds r0, r4, #0 - bl sub_080309A8 - b _08030368 -_0803034C: - adds r0, r4, #0 - movs r1, #3 - bl sub_08004276 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq _08030368 - ldrb r0, [r4, #0x1e] - cmp r0, #0x25 - bne _08030368 - movs r0, #0x19 - strb r0, [r4, #0x1e] -_08030368: - adds r3, r4, #0 - adds r3, #0x5a - ldrb r2, [r3] - adds r1, r2, #0 - cmp r1, #1 - bne _0803039C - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0803037C - strb r1, [r4, #0xd] -_0803037C: - ldrb r0, [r4, #0xe] - adds r2, r0, #1 - strb r2, [r4, #0xe] - ands r1, r2 - cmp r1, #0 - beq _0803042C - ldr r1, _08030398 @ =gUnk_080CE160 - movs r0, #6 - ands r2, r0 - lsrs r0, r2, #1 - adds r0, r0, r1 - ldrb r1, [r0] - b _08030426 - .align 2, 0 -_08030398: .4byte gUnk_080CE160 -_0803039C: - cmp r1, #2 - bne _080303D4 - movs r0, #0 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _080303C0 - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #0xb - strb r0, [r1] - adds r1, #4 - movs r0, #8 - strb r0, [r1] - ldr r0, _080303D0 @ =gUnk_080FD2F0 - str r0, [r4, #0x48] -_080303C0: - adds r0, r4, #0 - bl sub_08030834 - movs r0, #0x95 - lsls r0, r0, #1 - bl sub_08004488 - b _0803042C - .align 2, 0 -_080303D0: .4byte gUnk_080FD2F0 -_080303D4: - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _08030426 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _08030412 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x7a - movs r1, #0 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x82 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080306C4 - adds r0, r4, #0 - bl sub_080309E8 - b _0803042C -_08030412: - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x1a - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x10 - strb r0, [r4, #0x15] - b _0803042C -_08030426: - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] -_0803042C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030430 -sub_08030430: @ 0x08030430 - push {r4, lr} - adds r4, r0, #0 - bl sub_08030A04 - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _0803044A - adds r0, r4, #0 - bl sub_08004274 -_0803044A: - adds r0, r4, #0 - bl sub_080309A8 - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0 - beq _0803045E - subs r0, #1 - strh r0, [r1] -_0803045E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08030470 - adds r0, r4, #0 - bl sub_080306C4 -_08030470: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030474 -sub_08030474: @ 0x08030474 - 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 _0803049C - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - bl sub_080309E8 - b _080304BA -_0803049C: - adds r0, r4, #0 - bl sub_080305BC - cmp r0, #0 - beq _080304AE - adds r0, r4, #0 - bl sub_08030590 - b _080304BA -_080304AE: - adds r0, r4, #0 - bl sub_080307D4 - adds r0, r4, #0 - bl sub_080309A8 -_080304BA: - pop {r4, pc} - - thumb_func_start sub_080304BC -sub_080304BC: @ 0x080304BC - push {r4, lr} - adds r4, r0, #0 - bl sub_080309A8 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _080304DE - adds r0, r4, #0 - bl sub_08030580 - b _080304F0 -_080304DE: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _080304F0 - strb r2, [r3] - movs r0, #0x95 - lsls r0, r0, #1 - bl sub_08004488 -_080304F0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080304F4 -sub_080304F4: @ 0x080304F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080309A8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08030520 - movs r0, #7 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #5 - bl sub_080309C8 - adds r0, r4, #0 - bl sub_080307EC -_08030520: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030524 -sub_08030524: @ 0x08030524 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803053E - adds r0, r2, #0 - bl sub_080309A8 - b _08030552 -_0803053E: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bne _08030552 - movs r0, #0 - strb r0, [r3] - movs r0, #0x95 - lsls r0, r0, #1 - bl sub_08004488 -_08030552: - pop {pc} - - thumb_func_start sub_08030554 -sub_08030554: @ 0x08030554 - push {r4, lr} - adds r4, r0, #0 - bl sub_080309A8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803057C - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080309C8 - adds r0, r4, #0 - bl sub_080306C4 -_0803057C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030580 -sub_08030580: @ 0x08030580 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #4 - bl sub_080309C8 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08030590 -sub_08030590: @ 0x08030590 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #1 - strb r0, [r1] - adds r1, #4 - strb r0, [r1] - ldr r0, _080305B8 @ =gUnk_080FD2F8 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #5 - bl sub_080309C8 - adds r0, r4, #0 - bl sub_080307EC - pop {r4, pc} - .align 2, 0 -_080305B8: .4byte gUnk_080FD2F8 - - thumb_func_start sub_080305BC -sub_080305BC: @ 0x080305BC - push {r4, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - movs r2, #0xf - adds r0, r2, #0 - ands r0, r1 - movs r3, #0 - cmp r0, #8 - bne _080305D0 - movs r3, #1 -_080305D0: - ldrh r0, [r4, #0x32] - ands r2, r0 - cmp r2, #8 - bne _080305DC - movs r0, #2 - orrs r3, r0 -_080305DC: - cmp r3, #3 - bne _080305E4 - movs r0, #1 - b _0803064C -_080305E4: - ldrb r1, [r4, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0803061E - movs r0, #1 - ands r0, r3 - cmp r0, #0 - bne _08030608 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803064A - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - b _08030648 -_08030608: - cmp r2, #8 - ble _08030610 - movs r0, #0x10 - b _08030612 -_08030610: - movs r0, #0 -_08030612: - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _0803064A -_0803061E: - movs r0, #2 - ands r3, r0 - cmp r3, #0 - bne _08030638 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803064A - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - b _08030648 -_08030638: - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #8 - ble _08030646 - movs r0, #8 - b _08030648 -_08030646: - movs r0, #0x18 -_08030648: - strb r0, [r4, #0x15] -_0803064A: - movs r0, #0 -_0803064C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030650 -sub_08030650: @ 0x08030650 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08030668 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _080306B6 -_08030664: - movs r0, #1 - b _080306B8 -_08030668: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _08030698 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080306B6 - ldr r0, _08030694 @ =gUnk_020000B0 - ldr r0, [r0] - movs r1, #0x2e - ldrsh r0, [r0, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r0, #0x10 - cmp r0, #0x20 - bhi _080306B6 - b _08030664 - .align 2, 0 -_08030694: .4byte gUnk_020000B0 -_08030698: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080306B6 - ldr r0, _080306BC @ =gUnk_020000B0 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r0, _080306C0 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - adds r0, #0xa8 - cmp r1, r0 - blt _08030664 -_080306B6: - movs r0, #0 -_080306B8: - pop {r4, pc} - .align 2, 0 -_080306BC: .4byte gUnk_020000B0 -_080306C0: .4byte gUnk_03000BF0 - - thumb_func_start sub_080306C4 -sub_080306C4: @ 0x080306C4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080307C0 - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - beq _080307C0 - movs r0, #0x18 - strb r0, [r4, #0xe] - ldr r0, _080307B0 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0800132C - adds r5, r0, #0 - cmp r5, #0xff - beq _080307CC - movs r0, #0 - mov r8, r0 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - cmp r1, #0 - bne _0803070E - ldrb r0, [r4, #0x14] - adds r6, r4, #0 - adds r6, #0x82 - cmp r0, #0xff - bne _0803072A -_0803070E: - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #3 - beq _0803072A - adds r0, r5, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - movs r1, #1 - mov r8, r1 -_0803072A: - mov r7, r8 - cmp r7, #0 - bne _08030746 - bl sub_08000E50 - movs r1, #2 - ands r1, r0 - subs r1, #1 - lsls r1, r1, #3 - adds r1, #4 - adds r1, r5, r1 - movs r0, #0x18 - ands r1, r0 - strb r1, [r4, #0x15] -_08030746: - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - ldr r1, _080307B4 @ =gUnk_02027EB4 - mov ip, r1 - cmp r0, #2 - bne _08030758 - ldr r7, _080307B8 @ =gUnk_0200D654 - mov ip, r7 -_08030758: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r3, _080307BC @ =gUnk_080CE164 - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - adds r2, r0, r3 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - movs r7, #0x32 - ldrsh r2, [r4, r7] - adds r0, #1 - adds r0, r0, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r2, r2, r0 - mov r0, ip - movs r3, #0 - bl sub_080AE4CC - cmp r0, #0 - beq _0803079E - movs r0, #4 - adds r1, r5, #0 - ands r1, r0 - eors r1, r0 - lsls r1, r1, #1 - movs r0, #0x10 - ands r5, r0 - orrs r1, r5 - strb r1, [r4, #0x15] - movs r0, #0 - mov r8, r0 -_0803079E: - adds r0, r4, #0 - bl sub_080307D4 - ldrb r0, [r6] - lsls r0, r0, #1 - mov r1, r8 - orrs r0, r1 - strb r0, [r6] - b _080307CC - .align 2, 0 -_080307B0: .4byte gUnk_020000B0 -_080307B4: .4byte gUnk_02027EB4 -_080307B8: .4byte gUnk_0200D654 -_080307BC: .4byte gUnk_080CE164 -_080307C0: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0xa0 - strh r0, [r4, #0x24] -_080307CC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080307D4 -sub_080307D4: @ 0x080307D4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x15] - lsrs r1, r0, #3 - ldrb r0, [r2, #0x14] - cmp r1, r0 - beq _080307EA - strb r1, [r2, #0x14] - adds r0, r2, #0 - bl sub_080309C8 -_080307EA: - pop {pc} - - thumb_func_start sub_080307EC -sub_080307EC: @ 0x080307EC - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r1, _0803082C @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r5, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - adds r5, #0x78 - strh r0, [r5] - ldr r0, _08030830 @ =0x00004022 - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_0803082C: .4byte gUnk_03000BF0 -_08030830: .4byte 0x00004022 - - thumb_func_start sub_08030834 -sub_08030834: @ 0x08030834 - push {r4, r5, r6, lr} - adds r1, r0, #0 - adds r1, #0x78 - ldrh r5, [r1] - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _08030868 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r0, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08030868: .4byte gUnk_03000BF0 - - thumb_func_start sub_0803086C -sub_0803086C: @ 0x0803086C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - ldr r0, [r5, #0x7c] - cmp r0, #0 - bne _08030880 - b _0803099C -_08030880: - ldr r0, _08030928 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803088E - b _0803098A -_0803088E: - ldr r0, _0803092C @ =gUnk_03000BF0 - mov sb, r0 - ldrh r0, [r5, #0x2e] - mov r2, sb - ldrh r1, [r2, #6] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - ldrh r0, [r5, #0x32] - ldrh r1, [r2, #8] - subs r0, r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - movs r3, #0x2e - ldrsh r0, [r5, r3] - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - mov r3, sb - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - movs r0, #0x38 - adds r0, r0, r5 - mov r8, r0 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080002B0 - ldr r1, _08030930 @ =0x00004049 - mov sl, r1 - cmp r0, sl - bne _08030950 - adds r0, r7, #0 - adds r1, r6, #0 - movs r2, #2 - movs r3, #0xc - bl sub_0800293E - cmp r0, #0 - beq _0803093C - subs r1, r6, #4 - adds r0, r7, #0 - movs r2, #2 - movs r3, #4 - bl sub_0800293E - cmp r0, #0 - beq _0803098A - ldr r2, _08030934 @ =gLinkEntity - 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, [r5, #0x7c] - bl sub_08080840 - ldr r0, _08030938 @ =gUnk_030010A0 - adds r1, r5, #0 - adds r1, #0x80 - ldrb r1, [r1] - adds r0, #0xae - strh r1, [r0] - movs r0, #1 - b _0803099E - .align 2, 0 -_08030928: .4byte gUnk_03003F80 -_0803092C: .4byte gUnk_03000BF0 -_08030930: .4byte 0x00004049 -_08030934: .4byte gLinkEntity -_08030938: .4byte gUnk_030010A0 -_0803093C: - ldr r0, _0803094C @ =0x00004022 - mov r3, r8 - ldrb r2, [r3] - adds r1, r4, #0 - bl sub_0800015E - b _0803098A - .align 2, 0 -_0803094C: .4byte 0x00004022 -_08030950: - adds r1, r6, #6 - adds r0, r7, #0 - movs r2, #2 - movs r3, #5 - bl sub_0800293E - cmp r0, #0 - beq _0803098A - movs r4, #0x2e - ldrsh r1, [r5, r4] - mov r2, sb - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r5, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, r8 - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E -_0803098A: - 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 - strb r0, [r2] -_0803099C: - movs r0, #0 -_0803099E: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080309A8 -sub_080309A8: @ 0x080309A8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq _080309C4 - ldrb r0, [r4, #0x1e] - cmp r0, #0x25 - bne _080309C4 - movs r0, #0x19 - strb r0, [r4, #0x1e] -_080309C4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080309C8 -sub_080309C8: @ 0x080309C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - beq _080309E4 - ldrb r0, [r4, #0x1e] - cmp r0, #0x25 - bne _080309E4 - movs r0, #0x19 - strb r0, [r4, #0x1e] -_080309E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080309E8 -sub_080309E8: @ 0x080309E8 - push {lr} - adds r1, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #4 - bhi _080309FA - movs r0, #0x90 - lsls r0, r0, #1 - b _08030A00 -_080309FA: - cmp r0, #8 - bhi _08030A02 - movs r0, #0xe0 -_08030A00: - strh r0, [r1, #0x24] -_08030A02: - pop {pc} - - thumb_func_start sub_08030A04 -sub_08030A04: @ 0x08030A04 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08030A24 - movs r0, #0xfe - ands r0, r1 - strb r0, [r4] - ldr r0, _08030A28 @ =0x00000101 - bl sub_08004488 -_08030A24: - pop {r4, pc} - .align 2, 0 -_08030A28: .4byte 0x00000101 - - thumb_func_start sub_08030A2C -sub_08030A2C: @ 0x08030A2C - push {lr} - ldr r1, _08030A38 @ =gUnk_080CE288 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08030A38: .4byte gUnk_080CE288 - - thumb_func_start sub_08030A3C -sub_08030A3C: @ 0x08030A3C - push {lr} - ldr r2, _08030A50 @ =gUnk_080CE2A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08030A50: .4byte gUnk_080CE2A0 - - thumb_func_start sub_08030A54 -sub_08030A54: @ 0x08030A54 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r6, [r0] - cmp r6, #0x95 - beq _08030A68 - adds r5, r4, #0 - adds r5, #0x45 - cmp r6, #0x8e - bne _08030B0E -_08030A68: - ldr r2, [r4, #0x4c] - ldrb r0, [r2, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - movs r1, #0x10 - eors r0, r1 - asrs r0, r0, #3 - adds r5, r4, #0 - adds r5, #0x45 - ldrb r1, [r4, #0x14] - cmp r0, r1 - bne _08030B0E - movs r3, #1 - ands r3, r0 - cmp r3, #0 - beq _08030AC0 - movs r3, #0x32 - ldrsh r0, [r2, r3] - movs r3, #0x36 - ldrsh r1, [r2, r3] - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r3, #0x36 - ldrsh r2, [r4, r3] - adds r1, r1, r2 - subs r0, r0, r1 - adds r0, #0x14 - cmp r0, #0x10 - bhi _08030B0E - cmp r6, #0x8e - bne _08030AAE - movs r0, #0 - b _08030AB2 -_08030AAE: - ldrb r0, [r5] - subs r0, #1 -_08030AB2: - strb r0, [r5] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x10 - strb r0, [r1] - movs r0, #0xfe - b _08030AE0 -_08030AC0: - movs r1, #0x2e - ldrsh r0, [r2, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r0, #8 - cmp r0, #0x10 - bhi _08030B0E - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _08030AEC - adds r0, r4, #0 - bl sub_08031320 - movs r0, #0x86 - lsls r0, r0, #1 -_08030AE0: - bl sub_08004488 - adds r0, r4, #0 - bl sub_08031344 - b _08030B0E -_08030AEC: - cmp r6, #0x8e - bne _08030AF4 - strb r3, [r5] - b _08030AFA -_08030AF4: - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] -_08030AFA: - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf - strb r0, [r1] - movs r0, #0xfe - bl sub_08004488 - adds r0, r4, #0 - bl sub_08031344 -_08030B0E: - ldrb r0, [r5] - cmp r0, #0 - bne _08030B24 - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x78 - strb r0, [r1] -_08030B24: - ldr r1, _08030B30 @ =gUnk_080CE288 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08030B30: .4byte gUnk_080CE288 - - thumb_func_start sub_08030B34 -sub_08030B34: @ 0x08030B34 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0 - beq _08030B52 - subs r0, #1 - strb r0, [r1] - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - b _08030B70 -_08030B52: - adds r0, r4, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08030B6A - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX -_08030B6A: - adds r0, r4, #0 - bl sub_0804A7D4 -_08030B70: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_18 -nullsub_18: @ 0x08030B74 - bx lr - .align 2, 0 - - thumb_func_start sub_08030B78 -sub_08030B78: @ 0x08030B78 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - ldrh r2, [r4, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r4, #0x32] - ands r1, r0 - adds r1, #0xc - strh r1, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - 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] - adds r1, #8 - movs r0, #0x3c - strb r0, [r1] - adds r0, r4, #0 - bl sub_08030F00 - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - cmp r0, #0 - beq _08030BE0 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _08030BE8 -_08030BE0: - adds r0, r4, #0 - movs r1, #0xe - bl sub_08004260 -_08030BE8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030BEC -sub_08030BEC: @ 0x08030BEC - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _08030C08 - bl sub_0807CBE4 - cmp r0, #0 - beq _08030C08 - adds r0, r4, #0 - bl sub_08031320 -_08030C08: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030C0C -sub_08030C0C: @ 0x08030C0C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08030C1C - subs r0, #1 - strb r0, [r4, #0xe] - b _08030C68 -_08030C1C: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08030C68 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, [r4, #0x48] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r4, r3] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldr r2, _08030C6C @ =gUnk_020000B0 - ldr r3, [r2] - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r3, r5] - bl sub_080045D4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 -_08030C68: - pop {r4, r5, pc} - .align 2, 0 -_08030C6C: .4byte gUnk_020000B0 - - thumb_func_start sub_08030C70 -sub_08030C70: @ 0x08030C70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08030C98 - ldr r2, _08030C94 @ =gUnk_080CE2BC - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - b _08030CCC - .align 2, 0 -_08030C94: .4byte gUnk_080CE2BC -_08030C98: - 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 _08030CCC - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r4, #0x10] - movs r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08030E58 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08030FB4 -_08030CCC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030CD0 -sub_08030CD0: @ 0x08030CD0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #7 - ands r0, r1 - cmp r0, #1 - beq _08030D0C - cmp r0, #2 - beq _08030D1A - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08030D66 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x79 - ldrb r1, [r0] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08030D66 - b _08030D5A -_08030D0C: - adds r0, r4, #0 - bl sub_08031024 - adds r0, r4, #0 - bl sub_08030E3C - b _08030D66 -_08030D1A: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08030D34 - adds r0, r4, #0 - adds r0, #0x7f - ldrb r0, [r0] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_08030D34: - adds r0, r4, #0 - adds r0, #0x7a - ldrb r0, [r0] - cmp r0, #0 - beq _08030D44 - adds r0, r4, #0 - bl sub_08031250 -_08030D44: - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08030D66 - adds r0, r4, #0 - bl sub_08030E70 - b _08030D66 -_08030D5A: - movs r0, #0 - movs r1, #5 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x7a - strb r0, [r1] -_08030D66: - pop {r4, r5, pc} - - thumb_func_start sub_08030D68 -sub_08030D68: @ 0x08030D68 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #7 - ands r0, r1 - cmp r0, #1 - beq _08030DA0 - cmp r0, #2 - beq _08030DC4 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08030E1C - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08030DFC - b _08030DF4 -_08030DA0: - ldrb r0, [r4, #0x14] - adds r1, r0, #0 - cmp r1, #2 - beq _08030DBC - cmp r1, #2 - bls _08030DB0 - subs r0, #1 - b _08030DB2 -_08030DB0: - adds r0, #1 -_08030DB2: - movs r1, #3 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x7f - strb r0, [r1] -_08030DBC: - adds r0, r4, #0 - bl sub_08030E3C - b _08030E1C -_08030DC4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08030DDE - adds r0, r4, #0 - adds r0, #0x7f - ldrb r0, [r0] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_08030DDE: - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08030E1C - adds r0, r4, #0 - bl sub_08030E70 - b _08030E1C -_08030DF4: - adds r0, r4, #0 - bl sub_08030E58 - b _08030E1C -_08030DFC: - ldrb r0, [r4, #0x14] - cmp r0, #2 - bne _08030E1C - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #0xe - bl sub_08004260 - adds r0, r4, #0 - bl sub_08030F00 -_08030E1C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08030E20 -sub_08030E20: @ 0x08030E20 - 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 _08030E3A - movs r0, #2 - strb r0, [r4, #0xc] -_08030E3A: - pop {r4, pc} - - thumb_func_start sub_08030E3C -sub_08030E3C: @ 0x08030E3C - push {lr} - adds r2, r0, #0 - adds r2, #0x5a - movs r1, #0 - strb r1, [r2] - movs r1, #0x8c - lsls r1, r1, #9 - str r1, [r0, #0x20] - ldr r0, _08030E54 @ =0x00000157 - bl sub_08004488 - pop {pc} - .align 2, 0 -_08030E54: .4byte 0x00000157 - - thumb_func_start sub_08030E58 -sub_08030E58: @ 0x08030E58 - adds r2, r0, #0 - movs r0, #0 - movs r1, #4 - strb r1, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x7a - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - bx lr - - thumb_func_start sub_08030E70 -sub_08030E70: @ 0x08030E70 - push {lr} - bl sub_08030E80 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_08004488 - pop {pc} - - thumb_func_start sub_08030E80 -sub_08030E80: @ 0x08030E80 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0x14] - lsls r5, r0, #2 - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08030EC0 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, _08030EFC @ =gUnk_080CE2F4 - adds r0, r5, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - adds r0, r5, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_08030EC0: - movs r0, #0xf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08030EFA - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, _08030EFC @ =gUnk_080CE2F4 - adds r0, r5, #2 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r4, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - adds r0, r5, #3 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_08030EFA: - pop {r4, r5, r6, pc} - .align 2, 0 -_08030EFC: .4byte gUnk_080CE2F4 - - thumb_func_start sub_08030F00 -sub_08030F00: @ 0x08030F00 - push {r4, r5, r6, lr} - mov r6, sl - mov r5, sb - mov r4, r8 - push {r4, r5, r6} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r1, _08030FAC @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #8 - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r5, r3] - ldrh r1, [r1, #8] - adds r1, #0x14 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x80 - strh r0, [r1] - adds r0, r4, #1 - mov sl, r0 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x82 - strh r0, [r1] - movs r3, #0x40 - adds r3, r3, r4 - mov sb, r3 - ldrb r1, [r6] - mov r0, sb - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x84 - strh r0, [r1] - movs r0, #0x41 - adds r0, r0, r4 - mov r8, r0 - ldrb r1, [r6] - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x86 - strh r0, [r1] - ldr r5, _08030FB0 @ =0x00004022 - ldrb r2, [r6] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0800015E - ldrb r2, [r6] - adds r0, r5, #0 - mov r1, sl - bl sub_0800015E - ldrb r2, [r6] - adds r0, r5, #0 - mov r1, sb - bl sub_0800015E - ldrb r2, [r6] - adds r0, r5, #0 - mov r1, r8 - bl sub_0800015E - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, pc} - .align 2, 0 -_08030FAC: .4byte gUnk_03000BF0 -_08030FB0: .4byte 0x00004022 - - thumb_func_start sub_08030FB4 -sub_08030FB4: @ 0x08030FB4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r0, #0x2e - ldrsh r4, [r6, r0] - ldr r1, _08031020 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #8 - 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] - adds r1, #0x14 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r0, r6, #0 - adds r0, #0x80 - ldrh r0, [r0] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x82 - ldrh r0, [r0] - adds r1, r4, #1 - ldrb r2, [r5] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x84 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x40 - ldrb r2, [r5] - bl sub_0800015E - adds r0, r6, #0 - adds r0, #0x86 - ldrh r0, [r0] - adds r4, #0x41 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08031020: .4byte gUnk_03000BF0 - - thumb_func_start sub_08031024 -sub_08031024: @ 0x08031024 - 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 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - adds r2, r7, #0 - adds r2, #0x79 - ldrb r0, [r2] - cmp r0, #0 - bne _08031084 - cmp r1, #0 - beq _08031074 - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldr r2, [r7, #0x48] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r7, r3] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldr r2, _08031070 @ =gUnk_020000B0 - ldr r3, [r2] - movs r4, #0x2e - ldrsh r2, [r3, r4] - movs r4, #0x32 - ldrsh r3, [r3, r4] - b _080311E8 - .align 2, 0 -_08031070: .4byte gUnk_020000B0 -_08031074: - movs r0, #1 - strb r0, [r2] - adds r0, r7, #0 - adds r0, #0x78 - strb r1, [r0] - movs r1, #0x2e - ldrsh r0, [r7, r1] - b _080311D8 -_08031084: - cmp r1, #0 - beq _0803108E - movs r0, #0 - strb r0, [r2] - b _080311EE -_0803108E: - adds r0, r7, #0 - adds r0, #0x78 - ldrb r2, [r0] - adds r1, r2, #0 - mov sl, r0 - cmp r1, #0 - bne _0803109E - b _080311D4 -_0803109E: - cmp r1, #1 - bne _080310E2 - movs r0, #0x80 - orrs r0, r2 - mov r3, sl - strb r0, [r3] - movs r4, #0x2e - ldrsh r0, [r7, r4] - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r7, #0 - adds r2, #0x74 - ldrh r2, [r2] - adds r3, r7, #0 - adds r3, #0x76 - ldrh r3, [r3] - bl sub_080045D4 - strb r0, [r7, #0x15] - adds r0, #4 - movs r2, #0x18 - ands r0, r2 - adds r1, r7, #0 - adds r1, #0x7b - strb r0, [r1] - ldrb r3, [r7, #0x15] - cmp r0, r3 - bhs _080310DC - adds r0, #8 - ands r0, r2 - b _080310F0 -_080310DC: - subs r0, #8 - ands r0, r2 - b _080310F0 -_080310E2: - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _080310F2 - ldrb r0, [r7, #0x15] - movs r1, #0x10 - eors r0, r1 -_080310F0: - strb r0, [r7, #0x15] -_080310F2: - mov r4, sl - ldrb r2, [r4] - movs r0, #0x70 - ands r0, r2 - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08031120 - lsrs r0, r0, #0x19 - movs r1, #0x8f - ands r1, r2 - orrs r0, r1 - strb r0, [r4] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080311EE - adds r0, r7, #0 - adds r0, #0x7b - ldrb r0, [r0] - strb r0, [r7, #0x15] - movs r0, #0 - strb r0, [r4] - b _080311EE -_08031120: - movs r0, #0x7b - adds r0, r0, r7 - mov sb, r0 - ldrb r4, [r0] - lsrs r4, r4, #1 - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldr r5, _080311B4 @ =gUnk_080CE2C0 - adds r1, r4, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r4, #1 - adds r2, r2, r5 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - movs r3, #0x38 - adds r3, r3, r7 - mov r8, r3 - ldrb r2, [r3] - bl sub_080002A4 - adds r6, r0, #0 - movs r1, #0x2e - ldrsh r0, [r7, r1] - adds r1, r4, #2 - adds r1, r1, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r4, #3 - adds r4, r4, r5 - movs r2, #0 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - mov r3, r8 - ldrb r2, [r3] - bl sub_080002A4 - adds r1, r0, #0 - ldr r2, _080311B8 @ =gUnk_080B3E80 - adds r6, r6, r2 - ldrb r0, [r6] - mov r3, sb - cmp r0, #0 - bne _08031194 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0 - beq _080311C8 -_08031194: - movs r0, #1 - cmp r0, #0 - beq _080311C8 - ldrb r0, [r7, #0x15] - lsrs r0, r0, #3 - ldrb r4, [r7, #0x14] - cmp r0, r4 - bne _080311BC - mov r0, sl - ldrb r1, [r0] - movs r0, #0x20 - orrs r0, r1 - mov r1, sl - strb r0, [r1] - b _080311EE - .align 2, 0 -_080311B4: .4byte gUnk_080CE2C0 -_080311B8: .4byte gUnk_080B3E80 -_080311BC: - mov r2, sl - ldrb r1, [r2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2] - b _080311EE -_080311C8: - ldrb r0, [r3] - movs r1, #0 - strb r0, [r7, #0x15] - mov r3, sl - strb r1, [r3] - b _080311EE -_080311D4: - movs r4, #0x2e - ldrsh r0, [r7, r4] -_080311D8: - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r7, #0 - adds r2, #0x74 - ldrh r2, [r2] - adds r3, r7, #0 - adds r3, #0x76 - ldrh r3, [r3] -_080311E8: - bl sub_080045D4 - strb r0, [r7, #0x15] -_080311EE: - ldrb r0, [r7, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #3 - ldrb r3, [r7, #0x14] - cmp r0, r3 - bne _0803120C - adds r1, r7, #0 - adds r1, #0x7a - movs r0, #1 - strb r0, [r1] - ldrb r0, [r7, #0x14] - adds r1, #5 - b _08031232 -_0803120C: - adds r1, r7, #0 - adds r1, #0x7a - movs r0, #0 - strb r0, [r1] - ldrb r0, [r7, #0x15] - ldrb r2, [r7, #0x14] - lsls r1, r2, #3 - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0x10 - bls _08031228 - subs r0, r2, #1 - b _0803122A -_08031228: - adds r0, r2, #1 -_0803122A: - movs r1, #3 - ands r0, r1 - adds r1, r7, #0 - adds r1, #0x7f -_08031232: - strb r0, [r1] - ldrb r0, [r7, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - movs r1, #0 - strb r0, [r7, #0x15] - strh r1, [r7, #0x2c] - strh r1, [r7, #0x30] - 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_08031250 -sub_08031250: @ 0x08031250 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r4, [r6, #0x14] - lsls r4, r4, #2 - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r5, _0803130C @ =gUnk_080CE2C0 - adds r0, r4, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r2, r2, r0 - movs r1, #0x32 - ldrsh r3, [r6, r1] - adds r0, r4, #1 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r3, r3, r0 - adds r0, r6, #0 - movs r1, #9 - bl sub_08008796 - movs r0, #0x2e - ldrsh r2, [r6, r0] - adds r0, r4, #2 - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r2, r2, r0 - movs r1, #0x32 - ldrsh r3, [r6, r1] - adds r4, #3 - adds r4, r4, r5 - movs r0, #0 - ldrsb r0, [r4, r0] - adds r3, r3, r0 - adds r0, r6, #0 - movs r1, #9 - bl sub_08008796 - adds r2, r6, #0 - adds r2, #0x79 - ldrb r0, [r2] - cmp r0, #0 - beq _08031316 - movs r3, #0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - adds r1, r6, #0 - adds r1, #0x74 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #2 - cmp r0, #4 - bhi _080312C8 - strh r1, [r6, #0x2e] - movs r3, #0x80 -_080312C8: - movs r1, #0x32 - ldrsh r0, [r6, r1] - adds r1, r6, #0 - adds r1, #0x76 - ldrh r1, [r1] - subs r0, r0, r1 - adds r0, #2 - cmp r0, #4 - bhi _080312E2 - strh r1, [r6, #0x32] - ldrb r0, [r2] - orrs r3, r0 - strb r3, [r2] -_080312E2: - ldrb r1, [r2] - movs r4, #0x80 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _0803131C - adds r0, r6, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803131C - adds r2, r6, #0 - adds r2, #0x78 - ldrb r1, [r2] - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08031310 - movs r0, #0x82 - strb r0, [r2] - b _0803131C - .align 2, 0 -_0803130C: .4byte gUnk_080CE2C0 -_08031310: - movs r0, #1 - strb r0, [r2] - b _0803131C -_08031316: - adds r0, r6, #0 - bl sub_080AEF88 -_0803131C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08031320 -sub_08031320: @ 0x08031320 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x1e - strb r1, [r0, #0xe] - ldr r1, _08031340 @ =gUnk_080FD308 - str r1, [r0, #0x48] - movs r1, #0xa - bl sub_08004260 - pop {pc} - .align 2, 0 -_08031340: .4byte gUnk_080FD308 - - thumb_func_start sub_08031344 -sub_08031344: @ 0x08031344 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x4c] - bl sub_08017A90 - adds r3, r0, #0 - cmp r3, #0 - beq _0803136C - ldrb r0, [r3, #0x14] - lsls r0, r0, #1 - ldr r1, _08031370 @ =gUnk_080CE304 - adds r0, r0, r1 - ldrb r1, [r0] - adds r2, r3, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r1, [r0, #1] - adds r0, r3, #0 - adds r0, #0x63 - strb r1, [r0] -_0803136C: - pop {pc} - .align 2, 0 -_08031370: .4byte gUnk_080CE304 - - thumb_func_start sub_08031374 -sub_08031374: @ 0x08031374 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08031390 @ =gUnk_080CE448 - 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 -_08031390: .4byte gUnk_080CE448 - - thumb_func_start sub_08031394 -sub_08031394: @ 0x08031394 - push {lr} - ldr r2, _080313A8 @ =gUnk_080CE460 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080313A8: .4byte gUnk_080CE460 - - thumb_func_start sub_080313AC -sub_080313AC: @ 0x080313AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #3 - bne _080313C8 - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0x3c - strb r0, [r1] - adds r0, r4, #0 - bl sub_08031600 -_080313C8: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080313DA - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_080313DA: - ldr r1, _080313E4 @ =gUnk_080CE448 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_080313E4: .4byte gUnk_080CE448 - - thumb_func_start sub_080313E8 -sub_080313E8: @ 0x080313E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08031404 - ldr r0, _08031408 @ =gUnk_080CE470 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08031404: - pop {r4, pc} - .align 2, 0 -_08031408: .4byte gUnk_080CE470 - - thumb_func_start sub_0803140C -sub_0803140C: @ 0x0803140C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_08031418 -sub_08031418: @ 0x08031418 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08031420 -sub_08031420: @ 0x08031420 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08031432 - adds r0, r4, #0 - bl sub_0804A7D4 -_08031432: - pop {r4, pc} - - thumb_func_start sub_08031434 -sub_08031434: @ 0x08031434 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - rsbs r0, r0, #0 - adds r3, r0, #0 - movs r0, #0xff - strb r0, [r4, #0x14] - movs r2, #1 - strb r2, [r4, #0x1c] - ldrh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08031460 - adds r0, r4, #0 - bl sub_08031600 - b _0803147A -_08031460: - strb r2, [r4, #0xc] - movs r0, #0 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, _0803147C @ =0x0000FF80 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0x1e] - orrs r0, r3 - strb r0, [r4, #0x1e] -_0803147A: - pop {r4, pc} - .align 2, 0 -_0803147C: .4byte 0x0000FF80 - - thumb_func_start sub_08031480 -sub_08031480: @ 0x08031480 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080314CC - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08031496 - subs r0, #1 - strb r0, [r4, #0xe] - b _080314FA -_08031496: - adds r0, r4, #0 - bl sub_08031600 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xd] - 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, _080314C8 @ =0x0000012D - bl sub_080A3268 - b _080314FA - .align 2, 0 -_080314C8: .4byte 0x0000012D -_080314CC: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080314FA - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x13 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08016A04 - movs r0, #0x84 - bl sub_08004488 -_080314FA: - pop {r4, pc} - - thumb_func_start sub_080314FC -sub_080314FC: @ 0x080314FC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08031510 - subs r0, #1 - strb r0, [r4, #0xf] - b _080315BA -_08031510: - adds r5, r4, #0 - adds r5, #0x78 - ldrb r0, [r5] - cmp r0, #0 - beq _0803151E - subs r0, #1 - strb r0, [r5] -_0803151E: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _08031578 - ldrb r0, [r5] - cmp r0, #0 - bne _080315A2 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080315A2 - ldr r0, _08031574 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0xc - bl sub_0804A044 - adds r1, r0, #0 - cmp r1, #0xff - beq _080315A2 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0xd0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x7a - strh r0, [r2] - strb r1, [r4, #0x15] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - b _080315BA - .align 2, 0 -_08031574: .4byte gUnk_020000B0 -_08031578: - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080315A2 - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r1, r0, #3 - ldrb r0, [r4, #0x14] - cmp r1, r0 - beq _080315A2 - strb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_080315A2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080315B4 - adds r0, r4, #0 - bl sub_08031600 -_080315B4: - adds r0, r4, #0 - bl sub_0803163C -_080315BA: - pop {r4, r5, pc} - - thumb_func_start sub_080315BC -sub_080315BC: @ 0x080315BC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080315D4 - subs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004276 - b _080315FC -_080315D4: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _080315EE - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803163C - cmp r0, #0 - bne _080315FC -_080315EE: - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0x1e - strb r0, [r1] - adds r0, r4, #0 - bl sub_08031600 -_080315FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08031600 -sub_08031600: @ 0x08031600 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x30 - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r1, r0, #3 - ldrb r0, [r4, #0x14] - cmp r1, r0 - beq _08031638 - strb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08031638: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803163C -sub_0803163C: @ 0x0803163C - push {r4, lr} - adds r4, r0, #0 - bl sub_080002B8 - cmp r0, #0x13 - bne _08031652 - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - lsrs r0, r0, #1 - b _08031658 -_08031652: - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] -_08031658: - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_080AEF88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08031664 -sub_08031664: @ 0x08031664 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803167C @ =gUnk_080CE530 - 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 -_0803167C: .4byte gUnk_080CE530 - - thumb_func_start sub_08031680 -sub_08031680: @ 0x08031680 - push {lr} - ldr r2, _08031694 @ =gUnk_080CE548 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08031694: .4byte gUnk_080CE548 - - thumb_func_start nullsub_152 -nullsub_152: @ 0x08031698 - bx lr - .align 2, 0 - - thumb_func_start sub_0803169C -sub_0803169C: @ 0x0803169C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080316C4 - movs r2, #1 - strb r2, [r4, #0xc] - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r2, [r4, #0xf] - b _080316D4 -_080316C4: - ldr r0, _080316D8 @ =gUnk_080CE554 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080316D4: - pop {r4, pc} - .align 2, 0 -_080316D8: .4byte gUnk_080CE554 - - thumb_func_start sub_080316DC -sub_080316DC: @ 0x080316DC - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_080316E8 -sub_080316E8: @ 0x080316E8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080316F0 -sub_080316F0: @ 0x080316F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08031702 - adds r0, r4, #0 - bl sub_0804A7D4 -_08031702: - pop {r4, pc} - - thumb_func_start sub_08031704 -sub_08031704: @ 0x08031704 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - bl sub_080317F8 - pop {r4, pc} - - thumb_func_start sub_08031714 -sub_08031714: @ 0x08031714 - push {r4, lr} - adds r4, r0, #0 - bl sub_080317B4 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803176E - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08031750 - ldrb r1, [r4, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08031750 - adds r0, r4, #0 - bl sub_08049EE4 - b _08031766 -_08031750: - ldrb r0, [r4, #0x15] - adds r0, #0x18 - strb r0, [r4, #0x15] - bl sub_08000E50 - movs r1, #0xe - ands r0, r1 - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 -_08031766: - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080317E0 -_0803176E: - pop {r4, pc} - - thumb_func_start sub_08031770 -sub_08031770: @ 0x08031770 - push {r4, lr} - adds r1, r0, #0 - adds r4, r1, #0 - adds r4, #0x80 - ldrh r0, [r4] - cmp r0, #0 - beq _08031790 - subs r0, #1 - strh r0, [r4] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080317B2 - adds r0, r1, #0 - bl sub_08031840 - b _080317B2 -_08031790: - ldr r0, [r1, #0x54] - cmp r0, #0 - bne _080317AA - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r4] - b _080317B2 -_080317AA: - ldr r0, [r0, #4] - cmp r0, #0 - bne _080317B2 - str r0, [r1, #0x54] -_080317B2: - pop {r4, pc} - - thumb_func_start sub_080317B4 -sub_080317B4: @ 0x080317B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x30 - ands r1, r0 - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - cmp r1, #0 - beq _080317D0 - movs r1, #0xc - rsbs r1, r1, #0 - adds r0, r1, #0 -_080317D0: - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080317E0 -sub_080317E0: @ 0x080317E0 - push {lr} - ldrb r1, [r0, #0x15] - adds r1, #2 - movs r2, #0x1c - ands r1, r2 - lsrs r1, r1, #2 - strb r1, [r0, #0x14] - ldrb r1, [r0, #0x14] - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080317F8 -sub_080317F8: @ 0x080317F8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - movs r5, #1 - strb r5, [r4, #0xc] - movs r6, #0 - ldr r1, _08031838 @ =0x0000FFF4 - strh r1, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x38 - strb r5, [r1] - adds r3, r4, #0 - adds r3, #0x3c - ldrb r2, [r3] - movs r1, #0x10 - orrs r1, r2 - strb r1, [r3] - strb r5, [r4, #0x1c] - strb r0, [r4, #0x15] - ldr r0, _0803183C @ =gUnk_080CE560 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_080317E0 - strb r6, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - pop {r4, r5, r6, pc} - .align 2, 0 -_08031838: .4byte 0x0000FFF4 -_0803183C: .4byte gUnk_080CE560 - - thumb_func_start sub_08031840 -sub_08031840: @ 0x08031840 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r1, [r5, #0xa] - movs r0, #0x2d - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _08031862 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r5, [r4, #0x50] - str r4, [r5, #0x54] - movs r0, #1 - strb r0, [r4, #0xb] -_08031862: - pop {r4, r5, pc} - - thumb_func_start sub_08031864 -sub_08031864: @ 0x08031864 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r4, r0, #0 - cmp r4, #0 - beq _0803189C - adds r0, r5, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08031886 - adds r0, r5, #0 - bl sub_08032338 -_08031886: - ldr r0, _08031898 @ =gUnk_080012C8 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _080318BE - .align 2, 0 -_08031898: .4byte gUnk_080012C8 -_0803189C: - ldr r4, _080318C0 @ =gUnk_080CE56C - adds r0, r5, #0 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r4 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC -_080318BE: - pop {r4, r5, pc} - .align 2, 0 -_080318C0: .4byte gUnk_080CE56C - - thumb_func_start sub_080318C4 -sub_080318C4: @ 0x080318C4 - push {lr} - ldr r2, _080318D8 @ =gUnk_080CE584 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080318D8: .4byte gUnk_080CE584 - - thumb_func_start sub_080318DC -sub_080318DC: @ 0x080318DC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - adds r0, #0x80 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080318FA - b _08031A36 -_080318FA: - ldrb r0, [r4, #0xa] - adds r5, r4, #0 - adds r5, #0x42 - cmp r0, #1 - bne _080319DE - ldrb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x45 - str r1, [sp] - cmp r0, #6 - bhi _080319AC - ldrb r0, [r5] - cmp r0, #0 - beq _080319AC - ldr r3, [r4, #0x54] - movs r0, #0x29 - adds r0, r0, r4 - mov sb, r0 - movs r1, #0x3e - adds r1, r1, r4 - mov sl, r1 - cmp r3, #0 - beq _08031960 - ldr r0, [r4, #0x50] - str r0, [r3, #0x50] - movs r0, #5 - mov ip, r0 - movs r1, #0x39 - rsbs r1, r1, #0 - mov r8, r1 - movs r7, #8 - movs r6, #0xf4 -_0803193A: - mov r0, ip - strb r0, [r3, #0xc] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r0, [r2] - mov r1, r8 - ands r1, r0 - orrs r1, r7 - strb r1, [r2] - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _0803195A - strb r6, [r1] -_0803195A: - ldr r3, [r3, #0x54] - cmp r3, #0 - bne _0803193A -_08031960: - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _0803196C - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - b _08031974 -_0803196C: - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _08031974 - str r4, [r4, #0x50] -_08031974: - movs r0, #9 - strb r0, [r4, #0xc] - mov r0, sb - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, sb - strb r0, [r1] - mov r1, sl - ldrb r0, [r1] - cmp r0, #0xf - bhi _0803199C - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _080319A2 -_0803199C: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_080319A2: - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0xe - bl sub_08004260 -_080319AC: - ldr r1, [sp] - ldrb r0, [r1] - cmp r0, #0 - bne _080319DE - bl sub_08000E50 - adds r2, r4, #0 - adds r2, #0x3e - movs r1, #7 - ands r0, r1 - ldrb r1, [r2] - adds r0, r0, r1 - subs r0, #4 - movs r1, #0x1f - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0xb] - lsls r0, r1, #1 - adds r0, r0, r1 - ldrb r1, [r5] - adds r0, r0, r1 - strb r0, [r5] - adds r0, r4, #0 - bl sub_08032338 -_080319DE: - ldrb r0, [r5] - cmp r0, #0 - beq _08031A36 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08031A36 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080319FC - movs r0, #8 - b _080319FE -_080319FC: - movs r0, #9 -_080319FE: - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - cmp r0, #0xf - bhi _08031A14 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _08031A1A -_08031A14: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_08031A1A: - strb r0, [r4, #0x18] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r2] - adds r0, r4, #0 - movs r1, #0xe - bl sub_08004260 -_08031A36: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08031A48 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08031A48: - ldr r1, _08031A5C @ =gUnk_080CE56C - adds r0, r4, #0 - bl sub_0804AA30 - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08031A5C: .4byte gUnk_080CE56C - - thumb_func_start sub_08031A60 -sub_08031A60: @ 0x08031A60 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08031A7A - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 -_08031A7A: - adds r0, r4, #0 - bl sub_08001324 - - thumb_func_start nullsub_153 -nullsub_153: @ 0x08031A80 - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_154 -nullsub_154: @ 0x08031A84 - bx lr - .align 2, 0 - - thumb_func_start sub_08031A88 -sub_08031A88: @ 0x08031A88 - push {lr} - ldr r2, _08031A9C @ =gUnk_080CE58C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08031A9C: .4byte gUnk_080CE58C - - thumb_func_start sub_08031AA0 -sub_08031AA0: @ 0x08031AA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl sub_08000E50 - adds r4, #0x79 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08031AC8 -sub_08031AC8: @ 0x08031AC8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xe] - cmp r0, #0 - beq _08031AD8 - subs r0, #1 - strb r0, [r6, #0xe] - b _08031B44 -_08031AD8: - adds r0, r6, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08031B44 - bl sub_08000E50 - adds r5, r0, #0 - adds r0, r6, #0 - adds r0, #0x74 - ldrh r4, [r0] - adds r0, r5, #0 - movs r1, #5 - bl __modsi3 - lsls r0, r0, #4 - adds r4, r4, r0 - adds r7, r4, #0 - subs r7, #0x20 - adds r0, r6, #0 - adds r0, #0x76 - ldrh r4, [r0] - lsrs r5, r5, #4 - adds r0, r5, #0 - movs r1, #5 - bl __modsi3 - lsls r0, r0, #4 - adds r4, r4, r0 - subs r4, #0x20 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_080002D4 - cmp r0, #0 - bne _08031B44 - movs r0, #2 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r6, #0x18] - strh r7, [r6, #0x2e] - strh r4, [r6, #0x32] - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 -_08031B44: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08031B48 -sub_08031B48: @ 0x08031B48 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08031B6C - movs r0, #0 - strb r0, [r2] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _08031B90 -_08031B6C: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08031B90 - movs r0, #3 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08031B94 @ =gUnk_080CE5B0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08031B90: - pop {r4, pc} - .align 2, 0 -_08031B94: .4byte gUnk_080CE5B0 - - thumb_func_start sub_08031B98 -sub_08031B98: @ 0x08031B98 - push {r4, lr} - adds r4, r0, #0 - bl sub_08031E04 - cmp r0, #0 - beq _08031BDA - movs r0, #5 - strb r0, [r4, #0xc] - ldr r0, _08031BC4 @ =gUnk_020000B0 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r1, r0 - ble _08031BC8 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _08031BCE - .align 2, 0 -_08031BC4: .4byte gUnk_020000B0 -_08031BC8: - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_08031BCE: - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _08031C1A -_08031BDA: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08031BFA - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08031BFA - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] -_08031BFA: - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08031C1A - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08031C1A: - pop {r4, pc} - - thumb_func_start sub_08031C1C -sub_08031C1C: @ 0x08031C1C - 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 _08031C50 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08031C54 @ =gUnk_080CE5B8 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08031C50: - pop {r4, pc} - .align 2, 0 -_08031C54: .4byte gUnk_080CE5B8 - - thumb_func_start sub_08031C58 -sub_08031C58: @ 0x08031C58 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - bl sub_08004274 - adds r3, r7, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - beq _08031D54 - ldr r0, _08031D50 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x42 - bhi _08031D66 - bl sub_08000E50 - adds r6, r0, #0 - movs r0, #3 - mov sb, r0 - ands r6, r0 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - movs r0, #0 - mov r8, r0 - mov r0, r8 - strb r0, [r4, #0xb] - mov r0, r8 - str r0, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08031E48 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r5, r0, #0 - str r5, [r4, #0x54] - movs r0, #1 - strb r0, [r5, #0xb] - str r4, [r5, #0x50] - adds r0, r5, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_08031E48 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r4, [r5, #0x54] - movs r0, #2 - strb r0, [r4, #0xb] - str r5, [r4, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08031E48 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r5, r0, #0 - str r5, [r4, #0x54] - mov r0, sb - strb r0, [r5, #0xb] - str r4, [r5, #0x50] - adds r0, r5, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_08031E48 - movs r0, #0x2e - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r5, #0x54] - movs r0, #4 - strb r0, [r1, #0xb] - str r5, [r1, #0x50] - mov r0, r8 - str r0, [r1, #0x54] - adds r0, r1, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, r7, #0 - bl sub_08031E48 - movs r0, #6 - strb r0, [r7, #0xc] - movs r0, #0x14 - strb r0, [r7, #0xe] - adds r2, r7, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r7, #0 - movs r1, #7 - bl sub_08004260 - b _08031D66 - .align 2, 0 -_08031D50: .4byte gUnk_03003DBC -_08031D54: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08031D66 - strb r2, [r3] - ldrb r1, [r7, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r7, #0x10] -_08031D66: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08031D70 -sub_08031D70: @ 0x08031D70 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08031D9C - movs r0, #7 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #5 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #9 - ands r0, r1 - strb r0, [r4, #0x18] -_08031D9C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08031DA0 -sub_08031DA0: @ 0x08031DA0 - push {lr} - adds r1, r0, #0 - ldrb r2, [r1, #0xe] - movs r0, #0xf - ands r0, r2 - cmp r0, #0 - bne _08031DC2 - cmp r2, #0x50 - bne _08031DBA - adds r0, r1, #0 - bl sub_0805E7BC - b _08031DC2 -_08031DBA: - movs r0, #1 - strb r0, [r1, #0xc] - movs r0, #0xb4 - strb r0, [r1, #0xe] -_08031DC2: - pop {pc} - - thumb_func_start sub_08031DC4 -sub_08031DC4: @ 0x08031DC4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08031DE8 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0xb8 - ands r0, r1 - strb r0, [r4, #0x18] - b _08031E00 -_08031DE8: - adds r0, r4, #0 - bl sub_08004274 - ldrb r1, [r5] - movs r0, #0xf - ands r0, r1 - cmp r0, #2 - bne _08031E00 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_08031E00: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08031E04 -sub_08031E04: @ 0x08031E04 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08031E44 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r3, #6 - ands r3, r0 - ldr r0, _08031E40 @ =gUnk_080CE5C0 - adds r3, r3, r0 - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r0, #0 - ldrsb r0, [r3, r0] - adds r1, r1, r0 - movs r0, #0x32 - ldrsh r2, [r2, r0] - movs r0, #1 - ldrsb r0, [r3, r0] - adds r2, r2, r0 - adds r0, r4, #0 - movs r3, #0x50 - bl sub_0806FCB8 - b _08031E46 - .align 2, 0 -_08031E40: .4byte gUnk_080CE5C0 -_08031E44: - movs r0, #0 -_08031E46: - pop {r4, pc} - - thumb_func_start sub_08031E48 -sub_08031E48: @ 0x08031E48 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r0, #0x6c - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x6c - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x70 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x70 - strh r1, [r0] - adds r0, r5, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x6e - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x6f - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - str r5, [r4, #0x7c] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08031E90 -sub_08031E90: @ 0x08031E90 - push {lr} - ldr r2, _08031EA4 @ =gUnk_080CE5C8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08031EA4: .4byte gUnk_080CE5C8 - - thumb_func_start sub_08031EA8 -sub_08031EA8: @ 0x08031EA8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3a - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x80 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - ldrb r0, [r4, #0xb] - movs r1, #4 - subs r1, r1, r0 - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - strh r0, [r4, #0x36] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x79 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08031EE8 -sub_08031EE8: @ 0x08031EE8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x34] - ldr r1, [r4, #0x20] - subs r0, r0, r1 - str r0, [r4, #0x34] - ldr r0, _08031F4C @ =0xFFFFE800 - adds r1, r1, r0 - str r1, [r4, #0x20] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bgt _08031F1E - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _08031F10 - ldr r0, _08031F50 @ =0x0000012B - bl sub_08004488 -_08031F10: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_08031F1E: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08031F2E - adds r0, r4, #0 - bl sub_08004274 -_08031F2E: - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _08031F48 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 -_08031F48: - pop {r4, pc} - .align 2, 0 -_08031F4C: .4byte 0xFFFFE800 -_08031F50: .4byte 0x0000012B - - thumb_func_start sub_08031F54 -sub_08031F54: @ 0x08031F54 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08031FAC @ =gUnk_080CE5F0 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r4, #0 - bl sub_08003FC4 - ldrb r1, [r4, #0xb] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - rsbs r0, r0, #0 - movs r2, #0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _08031FAA - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x14 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0xb] - lsls r0, r1, #3 - subs r0, r0, r1 - lsls r0, r0, #1 - rsbs r0, r0, #0 - strh r0, [r4, #0x36] - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _08031FA2 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_08031FA2: - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 -_08031FAA: - pop {r4, pc} - .align 2, 0 -_08031FAC: .4byte gUnk_080CE5F0 - - thumb_func_start sub_08031FB0 -sub_08031FB0: @ 0x08031FB0 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032006 - ldr r0, [r5, #0x50] - cmp r0, #0 - bne _08031FD8 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032006 -_08031FD8: - movs r4, #0 - movs r0, #4 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x76 - strb r4, [r0] - ldr r0, [r5, #0x54] - cmp r0, #0 - beq _08031FFE - adds r0, r5, #0 - movs r1, #9 - bl sub_08004260 - b _08032006 -_08031FFE: - adds r0, r5, #0 - movs r1, #8 - bl sub_08004260 -_08032006: - pop {r4, r5, pc} - - thumb_func_start sub_08032008 -sub_08032008: @ 0x08032008 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_080322A4 - adds r7, r0, #0 - cmp r7, #0 - beq _08032018 - b _08032144 -_08032018: - ldr r5, [r4, #0x50] - cmp r5, #0 - bne _080320D4 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08032060 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r1, #0xff - ands r0, r1 - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08032052 - ldr r0, _0803205C @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_08032052: - adds r0, r4, #0 - adds r0, #0x76 - strb r7, [r0] - b _080320AC - .align 2, 0 -_0803205C: .4byte gUnk_020000B0 -_08032060: - adds r1, r4, #0 - adds r1, #0x76 - ldrb r0, [r1] - cmp r0, #0 - beq _0803207C - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7a - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004596 - b _080320AC -_0803207C: - movs r0, #0x10 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803209E - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803209E - adds r0, r4, #0 - bl sub_08049EE4 - b _080320A6 -_0803209E: - bl sub_08000E50 - movs r1, #0x1e - ands r0, r1 -_080320A6: - adds r1, r4, #0 - adds r1, #0x7a - strb r0, [r1] -_080320AC: - ldrb r1, [r4, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080320CC - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_080320CC: - adds r0, r4, #0 - bl sub_080AEF88 - b _0803213E -_080320D4: - adds r6, r4, #0 - adds r6, #0x77 - ldrb r0, [r6] - cmp r0, #0 - bne _0803210E - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803213E - movs r0, #1 - strb r0, [r6] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080322E8 - adds r0, r4, #0 - bl sub_0806F69C - b _0803213E -_0803210E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080322E8 - adds r0, r4, #0 - bl sub_0806F69C - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _0803213E - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _0803213E - strb r7, [r6] -_0803213E: - adds r0, r4, #0 - bl sub_08004274 -_08032144: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08032148 -sub_08032148: @ 0x08032148 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _0803215E - adds r0, r4, #0 - bl sub_08032290 -_0803215E: - pop {r4, pc} - - thumb_func_start sub_08032160 -sub_08032160: @ 0x08032160 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080321C2 - movs r0, #7 - strb r0, [r4, #0xc] - ldr r2, _08032190 @ =gUnk_080CE5FA - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - ldrb r1, [r4, #0xb] - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0x15] - cmp r0, #0xf - bls _08032194 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _0803219C - .align 2, 0 -_08032190: .4byte gUnk_080CE5FA -_08032194: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_0803219C: - strb r0, [r4, #0x18] - movs r0, #0xf0 - strh r0, [r4, #0x24] - movs r0, #0x90 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 -_080321C2: - ldr r0, [r4, #0x54] - cmp r0, #0 - bne _080321E6 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _080321E2 - movs r2, #0 -_080321D0: - adds r0, r1, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080321DC - strb r2, [r1, #0xe] -_080321DC: - ldr r1, [r1, #0x50] - cmp r1, #0 - bne _080321D0 -_080321E2: - movs r0, #0 - strb r0, [r4, #0xe] -_080321E6: - pop {r4, pc} - - thumb_func_start sub_080321E8 -sub_080321E8: @ 0x080321E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #0 - bne _08032202 - movs r0, #8 - strb r0, [r4, #0xc] -_08032202: - pop {r4, pc} - - thumb_func_start sub_08032204 -sub_08032204: @ 0x08032204 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08032230 - movs r0, #0 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x30 - ands r0, r1 - adds r0, #0x1e - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - b _08032244 -_08032230: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032244 - movs r0, #9 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0xd - bl sub_08004260 -_08032244: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08032248 -sub_08032248: @ 0x08032248 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _0803228E - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032276 - ldr r1, [r4, #0x7c] - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - adds r0, r4, #0 - bl sub_0805E7BC - b _0803228E -_08032276: - adds r0, r4, #0 - bl sub_08004274 - ldrb r1, [r5] - movs r0, #0xf - ands r0, r1 - cmp r0, #2 - bne _0803228E - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_0803228E: - pop {r4, r5, pc} - - thumb_func_start sub_08032290 -sub_08032290: @ 0x08032290 - push {lr} - movs r1, #6 - strb r1, [r0, #0xc] - movs r1, #0xc - strb r1, [r0, #0xe] - movs r1, #0xb - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080322A4 -sub_080322A4: @ 0x080322A4 - push {r4, lr} - adds r2, r0, #0 - ldr r3, [r2, #0x54] - cmp r3, #0 - beq _080322E2 - movs r1, #0x36 - ldrsh r0, [r3, r1] - adds r0, #8 - movs r4, #0x36 - ldrsh r1, [r2, r4] - cmp r0, r1 - blt _080322E2 - adds r0, r1, #0 - cmp r0, #0 - beq _080322D8 - movs r0, #5 - strb r0, [r2, #0xc] - ldrh r0, [r3, #0x36] - adds r0, #8 - strh r0, [r2, #0x36] - adds r0, r2, #0 - movs r1, #0xb - bl sub_08004260 - movs r0, #1 - b _080322E4 -_080322D8: - adds r0, r2, #0 - bl sub_08032290 - movs r0, #1 - b _080322E4 -_080322E2: - movs r0, #0 -_080322E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080322E8 -sub_080322E8: @ 0x080322E8 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x78 - ldrb r0, [r2] - cmp r0, #0 - beq _08032316 - subs r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032334 - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x19 - lsrs r1, r1, #0x1f - movs r0, #1 - eors r1, r0 - lsls r1, r1, #6 - subs r0, #0x42 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - b _08032334 -_08032316: - ldrb r1, [r3, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _08032334 - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - ldrb r0, [r3, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - cmp r1, r0 - beq _08032334 - movs r0, #6 - strb r0, [r2] -_08032334: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032338 -sub_08032338: @ 0x08032338 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x7c] - ldrb r0, [r1, #0xe] - adds r0, #0xf - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x50 - beq _08032354 - adds r1, r2, #0 - adds r1, #0x6c - movs r0, #0 - strb r0, [r1] -_08032354: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032358 -sub_08032358: @ 0x08032358 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0803237C - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - bl sub_0804B128 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x74 - adds r0, r4, #0 - bl sub_080A2CC0 -_0803237C: - ldrb r1, [r4, #0x15] - movs r6, #0x80 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _0803238E - adds r0, r4, #0 - bl sub_0806F69C -_0803238E: - adds r5, r4, #0 - adds r5, #0x74 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080323BA - ldrb r1, [r4, #0x15] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _080323AE - movs r0, #0x74 - bl sub_08004488 -_080323AE: - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_080A2CC0 -_080323BA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080323BC -sub_080323BC: @ 0x080323BC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080323D8 @ =gUnk_080CE7B0 - bl sub_0800129E - movs r3, #0x12 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_080323D8: .4byte gUnk_080CE7B0 - - thumb_func_start sub_080323DC -sub_080323DC: @ 0x080323DC - push {lr} - ldr r2, _080323F0 @ =gUnk_080CE7C8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080323F0: .4byte gUnk_080CE7C8 - - thumb_func_start sub_080323F4 -sub_080323F4: @ 0x080323F4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0803242C - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - adds r1, #4 - movs r0, #0x18 - ands r1, r0 - movs r0, #0x10 - eors r1, r0 - strb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_080042AC - adds r5, r4, #0 - adds r5, #0x43 - b _08032446 -_0803242C: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - adds r5, r4, #0 - adds r5, #0x43 - cmp r0, #0xcc - bne _08032446 - ldrb r0, [r5] - cmp r0, #0 - bne _0803244C - adds r0, r4, #0 - bl sub_0803275C -_08032446: - ldrb r0, [r5] - cmp r0, #0 - beq _08032454 -_0803244C: - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08032454: - ldr r1, _08032460 @ =gUnk_080CE7B0 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08032460: .4byte gUnk_080CE7B0 - - thumb_func_start nullsub_155 -nullsub_155: @ 0x08032464 - bx lr - .align 2, 0 - - thumb_func_start sub_08032468 -sub_08032468: @ 0x08032468 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_080326FC - adds r0, r4, #0 - bl sub_08032740 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803248C -sub_0803248C: @ 0x0803248C - push {r4, lr} - adds r4, r0, #0 - bl sub_080325E8 - cmp r0, #0 - bne _080324C8 - adds r0, r4, #0 - bl sub_0803271C - cmp r0, #0 - bne _080324C8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080324B4 - adds r0, r4, #0 - bl sub_08032650 -_080324B4: - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _080324C2 - movs r0, #1 - strb r0, [r4, #0xe] -_080324C2: - adds r0, r4, #0 - bl sub_080042B8 -_080324C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080324CC -sub_080324CC: @ 0x080324CC - push {r4, lr} - adds r4, r0, #0 - bl sub_080325E8 - cmp r0, #0 - bne _080324F8 - 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 _080324F8 - adds r0, r4, #0 - bl sub_080326FC - adds r0, r4, #0 - bl sub_08032740 -_080324F8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080324FC -sub_080324FC: @ 0x080324FC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08032524 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032572 - movs r0, #0x1e - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_08032524: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - subs r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r1, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _08032564 - movs r0, #4 - strb r0, [r4, #0xc] - movs r1, #0 - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x76 - movs r0, #0x46 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - strh r3, [r0] - adds r0, #3 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080327C8 - b _08032572 -_08032564: - movs r0, #3 - ands r1, r0 - cmp r1, #0 - bne _08032572 - adds r0, r4, #0 - bl sub_08032794 -_08032572: - pop {r4, pc} - - thumb_func_start sub_08032574 -sub_08032574: @ 0x08032574 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0803258A - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080325A4 -_0803258A: - adds r5, r4, #0 - adds r5, #0x76 - ldrh r0, [r5] - subs r0, #1 - strh r0, [r5] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _080325A4 - adds r0, r4, #0 - bl sub_080AEFE0 - cmp r0, #0 - bne _080325AC -_080325A4: - adds r0, r4, #0 - bl sub_0803275C - b _080325C2 -_080325AC: - adds r0, r4, #0 - bl sub_080042B8 - ldrh r1, [r5] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _080325C2 - adds r0, r4, #0 - bl sub_08032794 -_080325C2: - pop {r4, r5, pc} - - thumb_func_start sub_080325C4 -sub_080325C4: @ 0x080325C4 - 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 _080325E4 - adds r0, r4, #0 - bl sub_080325E8 - cmp r0, #0 - bne _080325E4 - adds r0, r4, #0 - bl sub_08032784 -_080325E4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080325E8 -sub_080325E8: @ 0x080325E8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0803264C - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803264C - ldr r5, _08032648 @ =gUnk_020000B0 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #0x68 - movs r3, #0x40 - bl sub_080041A0 - cmp r0, #0 - beq _0803264C - ldr r1, [r5] - adds r0, r4, #0 - bl sub_080045C4 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r2, [r3] - movs r5, #0x18 - adds r1, r5, #0 - ands r1, r2 - subs r0, r0, r1 - adds r0, #2 - movs r1, #0x1f - ands r0, r1 - cmp r0, #4 - bhi _0803264C - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xe] - ldrb r1, [r3] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #1 - b _0803264E - .align 2, 0 -_08032648: .4byte gUnk_020000B0 -_0803264C: - movs r0, #0 -_0803264E: - pop {r4, r5, pc} - - thumb_func_start sub_08032650 -sub_08032650: @ 0x08032650 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - ldr r1, _08032680 @ =gUnk_080CE7E0 - movs r0, #0xf - ands r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803267A - lsrs r0, r5, #8 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08032684 -_0803267A: - lsrs r0, r5, #0x10 - b _0803268C - .align 2, 0 -_08032680: .4byte gUnk_080CE7E0 -_08032684: - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 -_0803268C: - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803269C - pop {r4, r5, pc} - - thumb_func_start sub_0803269C -sub_0803269C: @ 0x0803269C - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - subs r0, r2, #3 - movs r1, #7 - ands r0, r1 - cmp r0, #2 - bhi _080326D6 - adds r0, r2, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r2, r0, #3 - ldrb r0, [r3, #0x14] - subs r0, r0, r2 - movs r1, #3 - ands r0, r1 - cmp r0, #1 - bls _080326F8 - strb r2, [r3, #0x14] - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - movs r1, #0xfc - ands r1, r0 - adds r1, r1, r2 - adds r0, r3, #0 - bl sub_080042AC - b _080326F8 -_080326D6: - adds r0, r2, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r2, r0, #3 - ldrb r0, [r3, #0x14] - cmp r2, r0 - beq _080326F8 - strb r2, [r3, #0x14] - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - movs r1, #0xfc - ands r1, r0 - adds r1, r1, r2 - adds r0, r3, #0 - bl sub_080042AC -_080326F8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080326FC -sub_080326FC: @ 0x080326FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08032718 @ =gUnk_080CE7F0 - movs r1, #0xf - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r4, #0x74 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 -_08032718: .4byte gUnk_080CE7F0 - - thumb_func_start sub_0803271C -sub_0803271C: @ 0x0803271C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08032734 - movs r0, #0 - b _0803273C -_08032734: - adds r0, r2, #0 - bl sub_08032784 - movs r0, #1 -_0803273C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032740 -sub_08032740: @ 0x08032740 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08032650 - pop {r4, pc} - - thumb_func_start sub_0803275C -sub_0803275C: @ 0x0803275C - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x2d - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803269C - adds r0, r4, #0 - bl sub_080327E0 - pop {r4, pc} - - thumb_func_start sub_08032784 -sub_08032784: @ 0x08032784 - push {lr} - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r1, [r0, #0x14] - adds r1, #8 - bl sub_080042AC - pop {pc} - - thumb_func_start sub_08032794 -sub_08032794: @ 0x08032794 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r5, r0, #0 - cmp r5, #0 - beq _080327C2 - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - ldr r1, _080327C4 @ =gUnk_080CE810 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_080327C2: - pop {r4, r5, pc} - .align 2, 0 -_080327C4: .4byte gUnk_080CE810 - - thumb_func_start sub_080327C8 -sub_080327C8: @ 0x080327C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xb - movs r2, #0 - bl sub_0804A98C - cmp r0, #0 - beq _080327DC - str r4, [r0, #0x50] - str r0, [r4, #0x54] -_080327DC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080327E0 -sub_080327E0: @ 0x080327E0 - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x54] - cmp r1, #0 - beq _080327F0 - movs r0, #0 - str r0, [r1, #0x50] - str r0, [r2, #0x54] -_080327F0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080327F4 -sub_080327F4: @ 0x080327F4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803280C @ =gUnk_080CE978 - 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 -_0803280C: .4byte gUnk_080CE978 - - thumb_func_start sub_08032810 -sub_08032810: @ 0x08032810 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08032840 @ =gUnk_080CE990 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803283C - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803283C - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_0803283C: - pop {r4, pc} - .align 2, 0 -_08032840: .4byte gUnk_080CE990 - - thumb_func_start sub_08032844 -sub_08032844: @ 0x08032844 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080328AE - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _08032896 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r3, #0x10 - strb r3, [r4, #0xf] - ldrb r2, [r4, #0x15] - adds r0, r2, #4 - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08032886 - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _08032882 - adds r0, r2, #2 - b _08032884 -_08032882: - subs r0, r2, #2 -_08032884: - strb r0, [r4, #0x15] -_08032886: - ldrb r1, [r4, #0x15] - movs r0, #0x20 - subs r0, r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08032AF4 - b _080328AE -_08032896: - adds r0, r4, #0 - adds r0, #0x3d - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080328AE - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080328AE: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080328B8 -sub_080328B8: @ 0x080328B8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080328FC @ =gUnk_080CE9A4 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _080328F8 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08032AF4 -_080328F8: - pop {r4, pc} - .align 2, 0 -_080328FC: .4byte gUnk_080CE9A4 - - thumb_func_start sub_08032900 -sub_08032900: @ 0x08032900 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0803290C -sub_0803290C: @ 0x0803290C - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08032914 -sub_08032914: @ 0x08032914 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08032926 - adds r0, r4, #0 - bl sub_0804A7D4 -_08032926: - pop {r4, pc} - - thumb_func_start sub_08032928 -sub_08032928: @ 0x08032928 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r5, #1 - strb r5, [r6, #0xc] - strb r4, [r6, #0xf] - adds r0, r6, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r6, #0x15] - adds r0, r6, #0 - adds r0, #0x80 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - strb r5, [r6, #0x1c] - adds r2, r6, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r1, [r6, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r6, #0x1b] - ldrh r1, [r6, #0x2e] - adds r0, r6, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r6, #0x32] - adds r1, r6, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r6, #0 - bl sub_08016A04 - adds r0, r6, #0 - bl sub_08032AF4 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803298C -sub_0803298C: @ 0x0803298C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08032AB0 - adds r0, r4, #0 - bl sub_08004274 - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _080329E2 - ldr r5, _080329E4 @ =gUnk_020000B0 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #0x88 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _080329E2 - ldr r0, [r5] - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r4, r2] - adds r0, #8 - cmp r1, r0 - ble _080329E2 - movs r1, #0 - movs r2, #2 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x81 - strb r2, [r0] - adds r0, r4, #0 - bl sub_08032AF4 -_080329E2: - pop {r4, r5, pc} - .align 2, 0 -_080329E4: .4byte gUnk_020000B0 - - thumb_func_start sub_080329E8 -sub_080329E8: @ 0x080329E8 - push {lr} - bl sub_08032B38 - pop {pc} - - thumb_func_start sub_080329F0 -sub_080329F0: @ 0x080329F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08032A3A - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldrh r0, [r4, #0x36] - adds r0, #8 - strh r0, [r4, #0x36] - 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] - b _08032A46 -_08032A3A: - adds r0, r4, #0 - bl sub_08032B10 - adds r0, r4, #0 - bl sub_08004274 -_08032A46: - pop {r4, pc} - - thumb_func_start sub_08032A48 -sub_08032A48: @ 0x08032A48 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080040A8 - adds r5, r0, #0 - cmp r5, #0 - bne _08032AAE - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - strb r5, [r0] - 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] - adds r0, r4, #0 - adds r0, #0x81 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_08032AF4 -_08032AAE: - pop {r4, r5, pc} - - thumb_func_start sub_08032AB0 -sub_08032AB0: @ 0x08032AB0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032AF0 - ldrb r0, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x80 - strb r0, [r5] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - cmp r0, #0xff - beq _08032AD6 - strb r0, [r4, #0x15] -_08032AD6: - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r2, [r5] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - ldrb r2, [r4, #0x15] - ands r0, r2 - cmp r1, r0 - beq _08032AF0 - adds r0, r4, #0 - bl sub_08032AF4 -_08032AF0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08032AF4 -sub_08032AF4: @ 0x08032AF4 - push {lr} - ldrb r2, [r0, #0x15] - movs r1, #0x10 - ands r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1c - adds r2, r0, #0 - adds r2, #0x81 - ldrb r2, [r2] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032B10 -sub_08032B10: @ 0x08032B10 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - pop {r4, pc} - - thumb_func_start sub_08032B38 -sub_08032B38: @ 0x08032B38 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x84 - ldrb r0, [r2] - cmp r0, #1 - beq _08032B88 - cmp r0, #1 - bgt _08032B50 - cmp r0, #0 - beq _08032B56 - b _08032C6A -_08032B50: - cmp r0, #2 - beq _08032BB2 - b _08032C6A -_08032B56: - ldrb r1, [r5, #0xe] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08032B68 - ldrh r0, [r5, #0x36] - subs r0, #1 - strh r0, [r5, #0x36] -_08032B68: - subs r0, r1, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032C6A - strb r3, [r2] - movs r0, #0x18 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #2 - b _08032BA8 -_08032B88: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032C6A - movs r0, #2 - strb r0, [r2] - movs r0, #8 - strb r0, [r5, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #4 -_08032BA8: - strb r0, [r1] - adds r0, r5, #0 - bl sub_08032AF4 - b _08032C6A -_08032BB2: - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - subs r0, #1 - movs r3, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - adds r6, r1, #0 - cmp r0, #0 - bne _08032BF4 - movs r0, #3 - strb r0, [r5, #0xc] - strb r3, [r2] - strb r3, [r5, #0xe] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - ldrb r2, [r5, #0x15] - adds r0, r2, #0 - adds r0, #0x18 - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08032BEC - movs r0, #0x10 - subs r0, r0, r2 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] -_08032BEC: - adds r0, r5, #0 - bl sub_08032AF4 - b _08032C64 -_08032BF4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032C64 - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x15] - adds r4, r5, #0 - adds r4, #0x80 - strb r0, [r4] - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004596 - ldrb r3, [r5, #0x15] - adds r0, r3, #0 - adds r0, #0x18 - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08032C46 - ldrb r0, [r4] - cmp r0, #0x10 - bne _08032C3E - ands r3, r0 - cmp r3, #0 - beq _08032C3A - movs r0, #0x12 - b _08032C3C -_08032C3A: - movs r0, #0xe -_08032C3C: - strb r0, [r4] -_08032C3E: - ldrb r0, [r4] - strb r0, [r5, #0x15] - movs r0, #1 - strh r0, [r6] -_08032C46: - ldrb r2, [r4] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - lsls r1, r1, #0x18 - ldrb r2, [r5, #0x15] - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x1c - cmp r1, r0 - beq _08032C64 - adds r1, r2, #4 - adds r0, r5, #0 - bl sub_08004260 -_08032C64: - adds r0, r5, #0 - bl sub_08032B10 -_08032C6A: - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08032C74 -sub_08032C74: @ 0x08032C74 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08032C90 @ =gUnk_080CEA1C - 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 -_08032C90: .4byte gUnk_080CEA1C - - thumb_func_start sub_08032C94 -sub_08032C94: @ 0x08032C94 - push {lr} - ldr r2, _08032CA8 @ =gUnk_080CEA34 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08032CA8: .4byte gUnk_080CEA34 - - thumb_func_start sub_08032CAC -sub_08032CAC: @ 0x08032CAC - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08032CC0 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08032CC0: - ldr r1, _08032D18 @ =gUnk_080CEA1C - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032D3A - movs r0, #0x3f - ands r0, r1 - cmp r0, #3 - bgt _08032D2C - cmp r0, #2 - blt _08032D2C - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - movs r1, #0xc8 - cmp r0, #0 - beq _08032CF0 - movs r1, #0x5a -_08032CF0: - strb r1, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] - ldrb r5, [r4, #0x15] - bl sub_08000E50 - movs r1, #0x40 - ands r1, r0 - cmp r1, #0 - beq _08032D1C - adds r2, r5, #4 - b _08032D20 - .align 2, 0 -_08032D18: .4byte gUnk_080CEA1C -_08032D1C: - adds r2, r5, #0 - adds r2, #0x1c -_08032D20: - movs r1, #0 - movs r0, #0x1f - ands r0, r2 - strb r0, [r4, #0x15] - strh r1, [r4, #0x24] - b _08032D3A -_08032D2C: - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08033174 -_08032D3A: - pop {r4, r5, pc} - - thumb_func_start sub_08032D3C -sub_08032D3C: @ 0x08032D3C - 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 _08032D66 - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 - adds r0, r4, #0 - bl sub_080331E8 -_08032D66: - adds r0, r4, #0 - bl sub_08001324 - - thumb_func_start nullsub_156 -nullsub_156: @ 0x08032D6C - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_157 -nullsub_157: @ 0x08032D70 - bx lr - .align 2, 0 - - thumb_func_start sub_08032D74 -sub_08032D74: @ 0x08032D74 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - bl sub_08033058 - pop {r4, pc} - - thumb_func_start sub_08032D84 -sub_08032D84: @ 0x08032D84 - 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 _08032D9C - adds r0, r4, #0 - bl sub_080330C0 - b _08032DAC -_08032D9C: - adds r0, r4, #0 - bl sub_08033364 - cmp r0, #0 - beq _08032DAC - adds r0, r4, #0 - bl sub_08033100 -_08032DAC: - adds r0, r4, #0 - bl sub_08032F64 - pop {r4, pc} - - thumb_func_start sub_08032DB4 -sub_08032DB4: @ 0x08032DB4 - 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 _08032DCA - adds r0, r4, #0 - bl sub_08033058 -_08032DCA: - adds r0, r4, #0 - bl sub_08032F48 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08032DD4 -sub_08032DD4: @ 0x08032DD4 - 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 _08032E3C - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xf] - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_080331B4 - adds r2, r4, #0 - adds r2, #0x82 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032E18 - ldrb r0, [r4, #0x15] - adds r0, #0x1c - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - b _08032E28 -_08032E18: - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - ldrb r0, [r2] - movs r1, #0x80 - orrs r0, r1 -_08032E28: - strb r0, [r2] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - b _08032E4E -_08032E3C: - adds r0, r4, #0 - bl sub_08032F90 - adds r0, r4, #0 - bl sub_080331E8 - adds r0, r4, #0 - bl sub_08032F64 -_08032E4E: - pop {r4, pc} - - thumb_func_start sub_08032E50 -sub_08032E50: @ 0x08032E50 - 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 _08032E70 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08033174 - b _08032E82 -_08032E70: - adds r0, r4, #0 - bl sub_08033000 - adds r0, r4, #0 - bl sub_080331E8 - adds r0, r4, #0 - bl sub_08032F64 -_08032E82: - pop {r4, pc} - - thumb_func_start sub_08032E84 -sub_08032E84: @ 0x08032E84 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032EA4 - adds r0, r4, #0 - bl sub_08033320 - adds r0, r4, #0 - bl sub_080330C0 - b _08032EC0 -_08032EA4: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08032EC0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _08032EC0 - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080332A8 -_08032EC0: - adds r0, r4, #0 - bl sub_080331E8 - adds r0, r4, #0 - bl sub_080AEF88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08032ED0 -sub_08032ED0: @ 0x08032ED0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08032F48 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032F06 - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 - adds r0, r4, #0 - bl sub_080331E8 -_08032F06: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - ands r0, r5 - cmp r0, #0 - bne _08032F20 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08033174 -_08032F20: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08032F24 -sub_08032F24: @ 0x08032F24 - push {lr} - adds r2, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08032F38 - movs r1, #0 - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - b _08032F3C -_08032F38: - movs r1, #4 - ldrb r0, [r2, #0x14] -_08032F3C: - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08032F48 -sub_08032F48: @ 0x08032F48 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - bne _08032F5A - adds r0, r4, #0 - bl sub_08004274 -_08032F5A: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08032F64 -sub_08032F64: @ 0x08032F64 - push {r4, lr} - adds r4, r0, #0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08032F82 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 -_08032F82: - adds r0, r4, #0 - bl sub_08032F48 - adds r0, r4, #0 - bl sub_080AEF88 - pop {r4, pc} - - thumb_func_start sub_08032F90 -sub_08032F90: @ 0x08032F90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08032FC0 - ldrb r0, [r2, #0xe] - cmp r0, #0x10 - bne _08032FA8 - adds r1, r2, #0 - adds r1, #0x80 - movs r0, #2 - strb r0, [r1] -_08032FA8: - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032FFE - movs r0, #8 - strb r0, [r2, #0xf] - adds r0, r2, #0 - bl sub_08033280 - b _08032FFE -_08032FC0: - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08032FFE - movs r0, #4 - strb r0, [r2, #0xf] - adds r0, r2, #0 - adds r0, #0x82 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08032FE4 - ldrb r0, [r2, #0x15] - adds r0, #0x1c - b _08032FE8 -_08032FE4: - ldrb r0, [r2, #0x15] - adds r0, #4 -_08032FE8: - movs r1, #0x1c - ands r0, r1 - strb r0, [r2, #0x15] - ldrb r0, [r2, #0x15] - lsrs r0, r0, #2 - strb r0, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_08032FFE: - pop {pc} - - thumb_func_start sub_08033000 -sub_08033000: @ 0x08033000 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08033056 - movs r0, #0x10 - strb r0, [r2, #0xf] - adds r3, r2, #0 - adds r3, #0x82 - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08033034 - ldrb r0, [r2, #0x15] - adds r0, #0x18 - movs r1, #0x1c - ands r0, r1 - strb r0, [r2, #0x15] - ldrb r1, [r3] - movs r0, #0x7f - ands r0, r1 - b _08033044 -_08033034: - ldrb r0, [r2, #0x15] - adds r0, #8 - movs r1, #0x1c - ands r0, r1 - strb r0, [r2, #0x15] - ldrb r0, [r3] - movs r1, #0x80 - orrs r0, r1 -_08033044: - strb r0, [r3] - ldrb r0, [r2, #0x15] - lsrs r0, r0, #2 - strb r0, [r2, #0x14] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_08033056: - pop {pc} - - thumb_func_start sub_08033058 -sub_08033058: @ 0x08033058 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #1 - strb r6, [r5, #0xc] - adds r0, #0x80 - strb r6, [r0] - bl sub_08000E50 - ldr r1, _080330A0 @ =gUnk_080CEA50 - movs r4, #3 - ands r0, r4 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _080330A8 - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - beq _080330A8 - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - ldr r1, _080330A4 @ =gUnk_080CEA54 - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r4 - b _080330AC - .align 2, 0 -_080330A0: .4byte gUnk_080CEA50 -_080330A4: .4byte gUnk_080CEA54 -_080330A8: - bl sub_08000E50 -_080330AC: - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x15] - lsrs r0, r0, #2 - strb r0, [r5, #0x14] - adds r0, r5, #0 - bl sub_08032F24 - pop {r4, r5, r6, pc} - - thumb_func_start sub_080330C0 -sub_080330C0: @ 0x080330C0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080330E2 - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x18 - b _080330E4 -_080330E2: - movs r0, #6 -_080330E4: - strb r0, [r4, #0xe] - movs r0, #0x60 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 - pop {r4, pc} - - thumb_func_start sub_08033100 -sub_08033100: @ 0x08033100 - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r2, [r4, #0xa] - cmp r2, #0 - bne _08033132 - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #1 - strb r0, [r1] - movs r0, #0x30 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - strh r2, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - b _08033150 -_08033132: - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080331B4 - ldrb r0, [r4, #0xe] - adds r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xf] - movs r0, #0xb0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_08033150: - adds r1, r4, #0 - adds r1, #0x83 - movs r0, #0 - strb r0, [r1] - bl sub_08000E50 - movs r1, #0x80 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - strb r0, [r1] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08032F24 - pop {r4, pc} - - thumb_func_start sub_08033174 -sub_08033174: @ 0x08033174 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x80 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0x15] - adds r1, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x82 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080331A4 - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - adds r0, #0x18 - b _080331A6 -_080331A4: - movs r0, #0xc -_080331A6: - strb r0, [r4, #0xe] - movs r0, #0xa0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08032F24 - pop {r4, pc} - - thumb_func_start sub_080331B4 -sub_080331B4: @ 0x080331B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #0xf0 - ands r1, r0 - movs r2, #0x1e - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080331D0 - movs r2, #0x3c - b _080331E4 -_080331D0: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080331DA - movs r2, #0x2d -_080331DA: - movs r0, #0x20 - ands r1, r0 - cmp r1, #0 - beq _080331E4 - movs r2, #0x4b -_080331E4: - strb r2, [r4, #0xe] - pop {r4, pc} - - thumb_func_start sub_080331E8 -sub_080331E8: @ 0x080331E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r3, #0 - ldrb r0, [r5, #0xc] - cmp r0, #5 - beq _08033220 - adds r1, r5, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r2, r0, #1 - strb r2, [r1] - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - beq _0803320C - movs r0, #0xf - b _0803320E -_0803320C: - movs r0, #7 -_0803320E: - ands r2, r0 - strb r2, [r1] - ldrb r0, [r1] - cmp r0, #0 - bne _08033238 - movs r3, #1 - ldrb r0, [r5, #0x14] - lsls r6, r0, #1 - b _08033238 -_08033220: - adds r2, r5, #0 - adds r2, #0x83 - ldrb r0, [r2] - adds r0, #1 - movs r1, #0xf - ands r0, r1 - strb r0, [r2] - cmp r0, #0 - bne _08033238 - movs r3, #1 - ldrb r0, [r5, #0x15] - lsrs r6, r0, #1 -_08033238: - cmp r3, #0 - beq _08033278 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08033278 - ldr r2, _0803327C @ =gUnk_080CEA56 - adds r2, r6, r2 - adds r3, r5, #0 - adds r3, #0x5a - ldrb r0, [r3] - movs r1, #0x20 - eors r0, r1 - strb r0, [r3] - movs r0, #0 - ldrsb r0, [r2, r0] - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r2, r0] - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - movs r0, #0x86 - lsls r0, r0, #1 - bl sub_08004488 -_08033278: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803327C: .4byte gUnk_080CEA56 - - thumb_func_start sub_08033280 -sub_08033280: @ 0x08033280 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _080332A4 - strb r0, [r4, #0x14] - adds r1, r0, #4 - adds r0, r4, #0 - bl sub_08004260 -_080332A4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080332A8 -sub_080332A8: @ 0x080332A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r6, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x81 - ldrb r0, [r5] - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - ldrb r0, [r4, #0x15] - strb r0, [r5] - strb r6, [r4, #0x15] - ldrb r0, [r5] - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - asrs r6, r0, #2 - ldrb r0, [r4, #0x14] - cmp r6, r0 - beq _080332E4 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080332E8 -_080332E4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080332E8 -sub_080332E8: @ 0x080332E8 - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x82 - movs r0, #0 - strb r0, [r3] - ldrb r0, [r4, #0x14] - subs r2, r1, r0 - cmp r2, #0 - ble _08033304 - cmp r2, #4 - bgt _08033310 - movs r0, #1 - b _08033312 -_08033304: - movs r0, #4 - rsbs r0, r0, #0 - cmp r2, r0 - bge _08033310 - movs r0, #1 - b _08033312 -_08033310: - movs r0, #2 -_08033312: - strb r0, [r3] - strb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08033320 -sub_08033320: @ 0x08033320 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x14] - lsls r5, r0, #2 - movs r0, #4 - ands r0, r5 - cmp r0, #0 - beq _08033360 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 - cmp r1, #1 - beq _08033350 - cmp r1, #2 - beq _08033354 - bl sub_08000E50 - movs r1, #0x10 - ands r1, r0 - movs r0, #0x1c - cmp r1, #0 - beq _08033356 -_08033350: - movs r0, #4 - b _08033356 -_08033354: - movs r0, #0x1c -_08033356: - adds r0, r0, r5 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - b _08033362 -_08033360: - strb r5, [r4, #0x15] -_08033362: - pop {r4, r5, pc} - - thumb_func_start sub_08033364 -sub_08033364: @ 0x08033364 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _080333B4 - ldrb r0, [r4, #0xa] - movs r3, #0x38 - cmp r0, #0 - beq _0803337E - movs r3, #0x48 -_0803337E: - adds r0, r4, #0 - adds r2, r3, #0 - bl sub_080041A0 - cmp r0, #0 - beq _080333B4 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080333AA - ldr r0, _080333B0 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r1, #2 - movs r0, #0x1c - ands r1, r0 - lsrs r1, r1, #2 - ldrb r0, [r4, #0x14] - cmp r0, r1 - bne _080333B4 -_080333AA: - movs r0, #1 - b _080333B6 - .align 2, 0 -_080333B0: .4byte gUnk_020000B0 -_080333B4: - movs r0, #0 -_080333B6: - pop {r4, pc} - - thumb_func_start sub_080333B8 -sub_080333B8: @ 0x080333B8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080333D0 @ =gUnk_080CEB38 - 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 -_080333D0: .4byte gUnk_080CEB38 - - thumb_func_start sub_080333D4 -sub_080333D4: @ 0x080333D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0803340E - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0803340E - bl sub_0804B128 - str r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x76 - adds r0, r4, #0 - bl sub_080A2CC0 -_0803340E: - ldr r2, _08033444 @ =gUnk_080CEB50 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - movs r1, #7 - ands r0, r1 - ldrb r1, [r4, #0xb] - lsls r1, r1, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08033440 - adds r0, r4, #0 - bl sub_0803350C -_08033440: - pop {r4, pc} - .align 2, 0 -_08033444: .4byte gUnk_080CEB50 - - thumb_func_start sub_08033448 -sub_08033448: @ 0x08033448 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #1 - cmp r0, #0x1d - bhi _080334E0 - lsls r0, r0, #2 - ldr r1, _08033464 @ =_08033468 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08033464: .4byte _08033468 -_08033468: @ jump table - .4byte _080334FA @ case 0 - .4byte _080334E0 @ case 1 - .4byte _080334E0 @ case 2 - .4byte _080334E0 @ case 3 - .4byte _080334E0 @ case 4 - .4byte _080334E0 @ case 5 - .4byte _080334E0 @ case 6 - .4byte _080334E0 @ case 7 - .4byte _080334E0 @ case 8 - .4byte _080334E0 @ case 9 - .4byte _080334E0 @ case 10 - .4byte _080334E0 @ case 11 - .4byte _080334E0 @ case 12 - .4byte _080334E0 @ case 13 - .4byte _080334FA @ case 14 - .4byte _080334E0 @ case 15 - .4byte _080334E0 @ case 16 - .4byte _080334E0 @ case 17 - .4byte _080334FA @ case 18 - .4byte _080334E0 @ case 19 - .4byte _080334E0 @ case 20 - .4byte _080334E0 @ case 21 - .4byte _080334E0 @ case 22 - .4byte _080334E0 @ case 23 - .4byte _080334E0 @ case 24 - .4byte _080334E0 @ case 25 - .4byte _080334FA @ case 26 - .4byte _080334E0 @ case 27 - .4byte _080334FA @ case 28 - .4byte _080334FA @ case 29 -_080334E0: - movs r0, #0x20 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080334F6 - adds r0, r4, #0 - bl sub_0806FA24 -_080334F6: - bl sub_0805E780 -_080334FA: - ldr r1, _08033504 @ =gUnk_080CEB38 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08033504: .4byte gUnk_080CEB38 - - thumb_func_start nullsub_158 -nullsub_158: @ 0x08033508 - bx lr - .align 2, 0 - - thumb_func_start sub_0803350C -sub_0803350C: @ 0x0803350C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08033520 - adds r0, r4, #0 - bl sub_0806F69C -_08033520: - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - subs r0, #1 - strh r0, [r2] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803353A - adds r1, r4, #0 - adds r1, #0x54 - adds r0, r4, #0 - bl sub_080A2CC0 -_0803353A: - pop {r4, pc} - - thumb_func_start sub_0803353C -sub_0803353C: @ 0x0803353C - push {lr} - ldr r1, _08033548 @ =gUnk_080CEB74 - bl sub_0800129E - pop {pc} - .align 2, 0 -_08033548: .4byte gUnk_080CEB74 - - thumb_func_start sub_0803354C -sub_0803354C: @ 0x0803354C - push {lr} - ldr r2, _08033560 @ =gUnk_080CEB8C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08033560: .4byte gUnk_080CEB8C - - thumb_func_start sub_08033564 -sub_08033564: @ 0x08033564 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08033628 - movs r0, #0x3f - ands r0, r1 - cmp r0, #0xe - beq _080335E4 - cmp r0, #0xe - bgt _08033586 - cmp r0, #0 - beq _08033590 - b _08033628 -_08033586: - cmp r0, #0x14 - beq _080335EE - cmp r0, #0x15 - beq _080335E4 - b _08033628 -_08033590: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x9f - lsls r0, r0, #2 - strh r0, [r1] - ldr r2, _080335DC @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #7 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r1, _080335E0 @ =gUnk_02002A40 - ldrb r2, [r4, #0xa] - adds r0, r2, #1 - adds r3, r1, #0 - adds r3, #0xba - strb r0, [r3] - adds r1, #0xc8 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] - lsls r2, r2, #0x18 - cmp r2, #0 - beq _08033628 - bl sub_0805E780 - b _08033628 - .align 2, 0 -_080335DC: .4byte gUnk_03003F80 -_080335E0: .4byte gUnk_02002A40 -_080335E4: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] - b _08033628 -_080335EE: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08033624 - str r1, [r4, #0x54] - movs r0, #0xe - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806FA24 -_08033624: - bl sub_0805E780 -_08033628: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803362C -sub_0803362C: @ 0x0803362C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08033648 - ldr r0, _0803364C @ =gUnk_080CEB98 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08033648: - pop {r4, pc} - .align 2, 0 -_0803364C: .4byte gUnk_080CEB98 - - thumb_func_start sub_08033650 -sub_08033650: @ 0x08033650 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_08033658 -sub_08033658: @ 0x08033658 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08033660 -sub_08033660: @ 0x08033660 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08033672 - adds r0, r4, #0 - bl sub_0804A7D4 -_08033672: - pop {r4, pc} - - thumb_func_start sub_08033674 -sub_08033674: @ 0x08033674 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0x1c] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08033744 - ldrb r1, [r4, #0xb] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080336A8 -sub_080336A8: @ 0x080336A8 - 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 _080336C0 - adds r0, r4, #0 - bl sub_08033744 - b _080336CE -_080336C0: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080336CE - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E -_080336CE: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080336DC -sub_080336DC: @ 0x080336DC - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7c - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xc - beq _0803371E - cmp r0, #0xc - bgt _080336FC - cmp r0, #0 - beq _0803372E - b _08033740 -_080336FC: - cmp r0, #0x18 - beq _08033716 - cmp r0, #0x24 - bne _08033740 - adds r0, r2, #0 - adds r0, #0x80 - ldrh r0, [r0] - strh r0, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x82 - ldrh r0, [r0] - strh r0, [r2, #0x32] - b _08033740 -_08033716: - adds r0, r2, #0 - bl sub_080A29BC - b _08033740 -_0803371E: - ldrb r0, [r2, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r2, #0x18] - b _08033740 -_0803372E: - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - bl sub_08033744 -_08033740: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08033744 -sub_08033744: @ 0x08033744 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0xff - ands r5, r0 - ldr r1, _0803378C @ =gUnk_080CEBA4 - movs r0, #0x70 - ands r0, r5 - lsrs r0, r0, #4 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r6, #0xe] - movs r0, #0xc - ands r0, r5 - lsls r4, r0, #1 - adds r0, r6, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08033796 - movs r0, #3 - ands r0, r5 - cmp r0, #0 - beq _08033796 - adds r0, r6, #0 - bl sub_08049EE4 - adds r4, r0, #0 - movs r0, #0x80 - ands r5, r0 - cmp r5, #0 - beq _08033790 - adds r4, #4 - b _08033792 - .align 2, 0 -_0803378C: .4byte gUnk_080CEBA4 -_08033790: - adds r4, #0x1c -_08033792: - movs r0, #0x18 - ands r4, r0 -_08033796: - strb r4, [r6, #0x15] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0803379C -sub_0803379C: @ 0x0803379C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080337B8 @ =gUnk_080CEBEC - 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 -_080337B8: .4byte gUnk_080CEBEC - - thumb_func_start sub_080337BC -sub_080337BC: @ 0x080337BC - push {lr} - ldr r2, _080337D0 @ =gUnk_080CEC04 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080337D0: .4byte gUnk_080CEC04 - - thumb_func_start sub_080337D4 -sub_080337D4: @ 0x080337D4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _080337E8 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_080337E8: - ldr r1, _08033868 @ =gUnk_080CEBEC - adds r0, r4, #0 - bl sub_0804AA30 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - beq _08033864 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0803381A - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0803381A - adds r0, r4, #0 - bl sub_08033E1C -_0803381A: - ldrb r1, [r5] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x14 - bne _08033864 - ldrb r0, [r4, #0xc] - cmp r0, #5 - beq _08033864 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x49 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08033D78 - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 -_08033864: - pop {r4, r5, pc} - .align 2, 0 -_08033868: .4byte gUnk_080CEBEC - - thumb_func_start nullsub_159 -nullsub_159: @ 0x0803386C - bx lr - .align 2, 0 - - thumb_func_start sub_08033870 -sub_08033870: @ 0x08033870 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001242 - ldrb r0, [r4, #0xc] - cmp r0, #5 - beq _0803388E - adds r0, r4, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _0803388E - adds r0, r4, #0 - bl sub_08033E1C -_0803388E: - pop {r4, pc} - - thumb_func_start sub_08033890 -sub_08033890: @ 0x08033890 - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xc] - strb r1, [r6, #0xe] - strb r1, [r6, #0xf] - ldr r0, [r6, #0x2c] - ldr r3, _0803394C @ =0xFFF00000 - ands r0, r3 - movs r2, #0x80 - lsls r2, r2, #0xc - orrs r0, r2 - str r0, [r6, #0x7c] - adds r4, r6, #0 - adds r4, #0x80 - ldr r0, [r6, #0x30] - ands r0, r3 - orrs r0, r2 - str r0, [r4] - ldr r0, [r6, #0x7c] - str r0, [r6, #0x2c] - ldr r0, [r4] - str r0, [r6, #0x30] - adds r0, r6, #0 - adds r0, #0x79 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _08033950 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r4, #0x32 - ldrsh r0, [r6, r4] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - adds r4, r6, #0 - adds r4, #0x74 - strh r1, [r4] - ldrh r0, [r4] - adds r5, r6, #0 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080001DA - adds r1, r6, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r0, _08033954 @ =0x00004022 - ldrh r1, [r4] - ldrb r2, [r5] - bl sub_0800015E - ldrb r1, [r6, #0xa] - movs r0, #0x7d - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - bne _08033928 - bl sub_0805E780 -_08033928: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r4, [r6, #0x54] - str r6, [r4, #0x50] - ldrb r0, [r6, #0xa] - cmp r0, #1 - bne _08033940 - adds r0, r6, #0 - bl sub_08033EA8 -_08033940: - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_0803394C: .4byte 0xFFF00000 -_08033950: .4byte gUnk_03000BF0 -_08033954: .4byte 0x00004022 - - thumb_func_start sub_08033958 -sub_08033958: @ 0x08033958 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _08033982 - adds r0, r4, #0 - bl sub_08033E1C - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B9B8 - b _08033A72 -_08033982: - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r1] - cmp r0, #0 - beq _08033992 - subs r0, #1 - strb r0, [r1] - b _08033A72 -_08033992: - ldr r0, [r4, #0x7c] - str r0, [r4, #0x2c] - adds r0, r4, #0 - adds r0, #0x80 - ldr r0, [r0] - str r0, [r4, #0x30] - adds r0, r4, #0 - movs r1, #1 - movs r2, #0x10 - bl sub_0804A024 - adds r5, r0, #0 - cmp r5, #0x10 - beq _080339E0 - cmp r5, #0x10 - bhi _080339BC - cmp r5, #0 - beq _080339C6 - cmp r5, #8 - beq _080339F0 - b _08033A10 -_080339BC: - cmp r5, #0x18 - beq _08033A00 - cmp r5, #0xff - bne _08033A10 - b _08033A72 -_080339C6: - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0 - beq _08033A72 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _080339DC @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r1, r2] - b _08033A0A - .align 2, 0 -_080339DC: .4byte gLinkEntity -_080339E0: - ldr r0, _080339EC @ =gLinkEntity - movs r1, #0x32 - ldrsh r0, [r0, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - b _08033A0A - .align 2, 0 -_080339EC: .4byte gLinkEntity -_080339F0: - ldr r0, _080339FC @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r0, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - b _08033A0A - .align 2, 0 -_080339FC: .4byte gLinkEntity -_08033A00: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r1, _08033A74 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r1, r2] -_08033A0A: - subs r0, r0, r1 - cmp r0, #0x30 - bgt _08033A72 -_08033A10: - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _08033A1E - bl sub_0806F520 - cmp r0, #0 - bne _08033A72 -_08033A1E: - adds r1, r4, #0 - adds r1, #0x78 - ldrb r0, [r1] - cmp r0, #0 - bne _08033A2C - movs r0, #1 - strb r0, [r1] -_08033A2C: - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0x15] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r0, [r4, #0x30] - ldr r1, _08033A78 @ =0xFFF00000 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r4, #0x30] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B9B8 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08033A72: - pop {r4, r5, pc} - .align 2, 0 -_08033A74: .4byte gLinkEntity -_08033A78: .4byte 0xFFF00000 - - thumb_func_start sub_08033A7C -sub_08033A7C: @ 0x08033A7C - push {r4, lr} - adds r4, r0, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _08033A90 - adds r0, r4, #0 - bl sub_08033E1C - b _08033AC8 -_08033A90: - 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 _08033AC8 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x59 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 -_08033AC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08033ACC -sub_08033ACC: @ 0x08033ACC - push {r4, lr} - adds r4, r0, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _08033AE0 - adds r0, r4, #0 - bl sub_08033E1C - b _08033B42 -_08033AE0: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08033AF8 - subs r0, #1 - strb r0, [r4, #0xf] - b _08033B42 -_08033AF8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08033B3C - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - ldr r2, [r4, #0x2c] - ldr r1, _08033B38 @ =0xFFF00000 - ands r2, r1 - movs r0, #0x80 - lsls r0, r0, #0xc - orrs r2, r0 - str r2, [r4, #0x2c] - ldr r0, [r4, #0x30] - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r4, #0x30] - str r2, [r4, #0x7c] - adds r1, r4, #0 - adds r1, #0x80 - str r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _08033B42 - .align 2, 0 -_08033B38: .4byte 0xFFF00000 -_08033B3C: - adds r0, r4, #0 - bl sub_08033D78 -_08033B42: - pop {r4, pc} - - thumb_func_start sub_08033B44 -sub_08033B44: @ 0x08033B44 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - adds r4, r0, #0 - bl sub_08033DF0 - cmp r0, #0 - beq _08033B62 - adds r0, r4, #0 - bl sub_08033E1C - b _08033C82 -_08033B62: - 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 - beq _08033B76 - b _08033C82 -_08033B76: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0 - mov r8, r0 - adds r1, r4, #0 - adds r1, #0x80 - str r1, [sp, #4] - adds r6, r4, #0 - adds r6, #0x29 - adds r2, r4, #0 - adds r2, #0x7b - str r2, [sp] - adds r5, r4, #0 - adds r5, #0x74 - adds r3, r4, #0 - adds r3, #0x38 - str r3, [sp, #8] - movs r7, #0x76 - adds r7, r7, r4 - mov sl, r7 - ldr r0, _08033C20 @ =gUnk_03000BF0 - mov sb, r0 -_08033BB2: - ldr r1, [r4, #0x2c] - ldr r3, _08033C24 @ =0xFFF00000 - ands r1, r3 - movs r2, #0x80 - lsls r2, r2, #0xc - orrs r1, r2 - str r1, [r4, #0x2c] - ldr r0, [r4, #0x30] - ands r0, r3 - orrs r0, r2 - str r0, [r4, #0x30] - str r1, [r4, #0x7c] - ldr r1, [sp, #4] - str r0, [r1] - ldrb r0, [r6] - movs r2, #0x39 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r6] - movs r0, #0x78 - ldr r3, [sp] - strb r0, [r3] - movs r7, #0x2e - ldrsh r2, [r4, r7] - mov r1, sb - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r7, #0x32 - ldrsh r0, [r4, r7] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r2, r0 - strh r2, [r5] - ldrh r0, [r5] - ldr r2, [sp, #8] - ldrb r1, [r2] - bl sub_080001DA - mov r3, sl - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r7, _08033C28 @ =0x00004022 - cmp r0, r7 - beq _08033C2C - movs r0, #1 - add r8, r0 - b _08033C68 - .align 2, 0 -_08033C20: .4byte gUnk_03000BF0 -_08033C24: .4byte 0xFFF00000 -_08033C28: .4byte 0x00004022 -_08033C2C: - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - cmp r0, #2 - beq _08033C54 - cmp r0, #2 - bgt _08033C42 - cmp r0, #0 - beq _08033C4C - b _08033C68 -_08033C42: - cmp r0, #4 - beq _08033C5A - cmp r0, #6 - beq _08033C62 - b _08033C68 -_08033C4C: - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] - b _08033C68 -_08033C54: - ldrh r0, [r4, #0x2e] - subs r0, #0x10 - b _08033C66 -_08033C5A: - ldrh r0, [r4, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - b _08033C68 -_08033C62: - ldrh r0, [r4, #0x2e] - adds r0, #0x10 -_08033C66: - strh r0, [r4, #0x2e] -_08033C68: - mov r1, r8 - cmp r1, #0 - beq _08033BB2 - ldr r0, _08033C90 @ =0x00004022 - ldrh r1, [r5] - ldr r3, [sp, #8] - ldrb r2, [r3] - bl sub_0800015E - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08033C82: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08033C90: .4byte 0x00004022 - - thumb_func_start sub_08033C94 -sub_08033C94: @ 0x08033C94 - push {r4, lr} - adds r4, r0, #0 - movs r1, #3 - bl sub_08004276 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #1 - beq _08033CD2 - cmp r0, #1 - bgt _08033CB2 - cmp r0, #0 - beq _08033CB8 - b _08033D76 -_08033CB2: - cmp r0, #2 - beq _08033D18 - b _08033D76 -_08033CB8: - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _08033CD2 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_08033CD2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08033D76 - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #2 - strb r0, [r1] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x63 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #0x14 - strb r0, [r4, #0x15] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #3 - ands r1, r0 - cmp r1, #0 - beq _08033D12 - cmp r1, #2 - beq _08033D68 - b _08033D6E -_08033D12: - ldrb r0, [r4, #0x15] - adds r0, #8 - b _08033D6C -_08033D18: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08033D24 - subs r0, #1 - strb r0, [r4, #0xf] - b _08033D2A -_08033D24: - adds r0, r4, #0 - bl sub_08033D78 -_08033D2A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08033D76 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - adds r0, #0x14 - strb r0, [r4, #0x15] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _08033D62 - cmp r1, #3 - beq _08033D68 - b _08033D6E -_08033D62: - ldrb r0, [r4, #0x15] - adds r0, #8 - b _08033D6C -_08033D68: - ldrb r0, [r4, #0x15] - adds r0, #0x18 -_08033D6C: - strb r0, [r4, #0x15] -_08033D6E: - ldrb r1, [r4, #0x15] - movs r0, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_08033D76: - pop {r4, pc} - - thumb_func_start sub_08033D78 -sub_08033D78: @ 0x08033D78 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0x15] - movs r2, #0x18 - ands r2, r0 - lsrs r2, r2, #2 - ldr r0, _08033DE4 @ =gUnk_080CEC1C - adds r2, r2, r0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r4, _08033DE8 @ =gUnk_03000BF0 - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r3, #0x3f - ands r5, r3 - movs r1, #0x32 - ldrsh r0, [r6, r1] - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r5, r0 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _08033DEC @ =0x000001C5 - cmp r1, r0 - bhi _08033DCE - subs r0, #1 - cmp r1, r0 - bhs _08033DE2 -_08033DCE: - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_080002E0 - subs r0, #1 - cmp r0, #0x3e - bls _08033DE2 - adds r0, r6, #0 - bl sub_080AEF88 -_08033DE2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08033DE4: .4byte gUnk_080CEC1C -_08033DE8: .4byte gUnk_03000BF0 -_08033DEC: .4byte 0x000001C5 - - thumb_func_start sub_08033DF0 -sub_08033DF0: @ 0x08033DF0 - push {lr} - movs r2, #0 - ldr r1, [r0, #0x54] - cmp r1, #0 - beq _08033E16 - ldrb r0, [r1, #0xc] - cmp r0, #3 - beq _08033E10 - cmp r0, #3 - bgt _08033E0A - cmp r0, #2 - beq _08033E16 - b _08033E18 -_08033E0A: - cmp r0, #4 - bne _08033E18 - b _08033E16 -_08033E10: - ldrb r0, [r1, #0xd] - cmp r0, #1 - bls _08033E18 -_08033E16: - movs r2, #1 -_08033E18: - adds r0, r2, #0 - pop {pc} - - thumb_func_start sub_08033E1C -sub_08033E1C: @ 0x08033E1C - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r3, #5 - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x79 - strb r2, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - mov r1, ip - strb r0, [r1] - ldr r0, [r4, #0x30] - ldr r1, _08033EA4 @ =0xFFF00000 - ands r0, r1 - movs r1, #0xc0 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r4, #0x30] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x19 - strb r0, [r1] - mov r0, ip - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - movs r0, #0x30 - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - adds r0, #0xd0 - strh r0, [r4, #0x24] - str r2, [r4, #0x54] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0xa - bl sub_080A2CFC - pop {r4, pc} - .align 2, 0 -_08033EA4: .4byte 0xFFF00000 - - thumb_func_start sub_08033EA8 -sub_08033EA8: @ 0x08033EA8 - push {lr} - adds r2, r0, #0 - ldr r0, _08033EC4 @ =gUnk_03003F80 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08033EC8 - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x95 - b _08033ECE - .align 2, 0 -_08033EC4: .4byte gUnk_03003F80 -_08033EC8: - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x63 -_08033ECE: - strb r0, [r1] - pop {pc} - .align 2, 0 - - thumb_func_start sub_08033ED4 -sub_08033ED4: @ 0x08033ED4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08033EEC @ =gUnk_080CEC88 - 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 -_08033EEC: .4byte gUnk_080CEC88 - - thumb_func_start sub_08033EF0 -sub_08033EF0: @ 0x08033EF0 - push {lr} - ldr r2, _08033F04 @ =gUnk_080CECA0 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08033F04: .4byte gUnk_080CECA0 - - thumb_func_start sub_08033F08 -sub_08033F08: @ 0x08033F08 - push {lr} - ldr r1, _08033F14 @ =gUnk_080CEC88 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08033F14: .4byte gUnk_080CEC88 - - thumb_func_start nullsub_160 -nullsub_160: @ 0x08033F18 - bx lr - .align 2, 0 - - thumb_func_start sub_08033F1C -sub_08033F1C: @ 0x08033F1C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08033F38 @ =gUnk_080CECB4 - 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 - bl sub_0803499C - pop {r4, pc} - .align 2, 0 -_08033F38: .4byte gUnk_080CECB4 - - thumb_func_start sub_08033F3C -sub_08033F3C: @ 0x08033F3C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08033F64 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x42 - bhi _08033FFA - ldr r0, _08033F68 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _08033F6C - adds r0, r4, #0 - bl sub_08034420 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - b _08033F70 - .align 2, 0 -_08033F64: .4byte gUnk_03003DBC -_08033F68: .4byte gUnk_030010A0 -_08033F6C: - movs r0, #1 - strb r0, [r4, #0xc] -_08033F70: - 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 r3, r4, #0 - adds r3, #0x6d - ldrb r0, [r3] - movs r2, #0 - orrs r1, r0 - strb r1, [r3] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - movs r0, #0x36 - movs r1, #1 - bl CreateEnemy - adds r5, r0, #0 - str r4, [r5, #0x50] - movs r0, #0x7e - movs r1, #0 - movs r2, #0 - bl CreateObject - str r4, [r0, #0x50] - ldr r0, _08033FD0 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r1, [r0] - cmp r1, #0 - bne _08033FD4 - movs r0, #0xd - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0xfc - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _08033FFA - .align 2, 0 -_08033FD0: .4byte gUnk_030010A0 -_08033FD4: - movs r0, #0x44 - movs r1, #0 - bl CreateEnemy - str r4, [r0, #0x50] - str r4, [r0, #0x78] - str r0, [r4, #0x74] - movs r0, #0x44 - movs r1, #1 - bl CreateEnemy - str r4, [r0, #0x50] - str r5, [r0, #0x78] - str r0, [r4, #0x78] - movs r0, #0x36 - movs r1, #4 - bl CreateEnemy - str r4, [r0, #0x50] -_08033FFA: - pop {r4, r5, pc} - - thumb_func_start sub_08033FFC -sub_08033FFC: @ 0x08033FFC - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xd] - cmp r0, #7 - bls _08034008 - b _08034114 -_08034008: - lsls r0, r0, #2 - ldr r1, _08034014 @ =_08034018 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08034014: .4byte _08034018 -_08034018: @ jump table - .4byte _0803413E @ case 0 - .4byte _08034038 @ case 1 - .4byte _0803413E @ case 2 - .4byte _08034056 @ case 3 - .4byte _08034068 @ case 4 - .4byte _0803413E @ case 5 - .4byte _08034090 @ case 6 - .4byte _080340C4 @ case 7 -_08034038: - movs r0, #2 - strb r0, [r3, #0xd] - movs r0, #0x1e - strb r0, [r3, #0xe] - ldr r0, [r3, #0x74] - ldr r2, [r0, #0x74] - movs r1, #1 - strb r1, [r2, #0xd] - ldr r0, [r3, #0x78] - ldr r2, [r0, #0x74] - strb r1, [r2, #0xd] - adds r0, r3, #0 - bl sub_0801D230 - b _0803413E -_08034056: - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803413E - movs r0, #4 - strb r0, [r3, #0xd] - b _0803413E -_08034068: - ldr r0, [r3, #0x34] - ldr r1, _0803408C @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r3, #0x34] - movs r0, #0x36 - ldrsh r1, [r3, r0] - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - bne _0803413E - movs r0, #5 - strb r0, [r3, #0xd] - adds r1, r3, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - b _0803413E - .align 2, 0 -_0803408C: .4byte 0xFFFF8000 -_08034090: - movs r1, #0 - movs r0, #7 - strb r0, [r3, #0xd] - strb r1, [r3, #0xe] - ldr r2, [r3, #0x74] - movs r1, #1 - strb r1, [r2, #0xd] - ldr r2, [r2, #0x74] - movs r0, #4 - strb r0, [r2, #0xd] - ldr r2, [r3, #0x78] - strb r1, [r2, #0xd] - ldr r2, [r2, #0x74] - strb r0, [r2, #0xd] - ldr r1, _080340C0 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xf4 - lsls r0, r0, #4 - strh r0, [r2] - adds r1, #0x68 - adds r0, #0xc0 - strh r0, [r1] - b _0803413E - .align 2, 0 -_080340C0: .4byte gUnk_03000F50 -_080340C4: - ldrb r1, [r3, #0xe] - adds r1, #1 - strb r1, [r3, #0xe] - lsls r2, r1, #0x18 - lsrs r2, r2, #0x19 - ldr r4, _08034110 @ =gUnk_03000F50 - movs r0, #0x10 - subs r0, r0, r2 - lsls r0, r0, #8 - orrs r2, r0 - adds r0, r4, #0 - adds r0, #0x68 - strh r2, [r0] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0x1f - bls _0803413E - movs r0, #8 - strb r0, [r3, #0xd] - ldr r2, [r3, #0x74] - movs r1, #3 - strb r1, [r2, #0xd] - ldr r2, [r2, #0x74] - movs r0, #6 - strb r0, [r2, #0xd] - ldr r2, [r3, #0x78] - strb r1, [r2, #0xd] - ldr r2, [r2, #0x74] - strb r0, [r2, #0xd] - ldrb r1, [r3, #0x19] - subs r0, #0x13 - ands r0, r1 - strb r0, [r3, #0x19] - adds r1, r4, #0 - adds r1, #0x66 - movs r0, #0 - strh r0, [r1] - b _0803413E - .align 2, 0 -_08034110: .4byte gUnk_03000F50 -_08034114: - ldr r0, [r3, #0x74] - ldrb r1, [r0, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803413E - ldr r1, _08034140 @ =gUnk_03000BF0 - ldr r0, _08034144 @ =gLinkEntity - str r0, [r1, #0x30] - adds r0, r3, #0 - bl sub_08034420 - ldr r0, _08034148 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bl sub_080791D0 - movs r0, #0x2e - bl sub_080A3268 -_0803413E: - pop {r4, pc} - .align 2, 0 -_08034140: .4byte gUnk_03000BF0 -_08034144: .4byte gLinkEntity -_08034148: .4byte gUnk_03003F80 - - thumb_func_start sub_0803414C -sub_0803414C: @ 0x0803414C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08034194 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r2, r0, #0 - adds r2, #0xb8 - ldrh r0, [r1, #8] - adds r3, r0, #0 - adds r3, #0x48 - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, r0, r2 - adds r0, #1 - cmp r0, #2 - bhi _080341A2 - movs r5, #0x32 - ldrsh r0, [r4, r5] - subs r0, r0, r3 - adds r0, #1 - cmp r0, #2 - bhi _080341A2 - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _080341B6 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08034198 - movs r0, #0 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x1e - bl sub_0803442C - b _080341B6 - .align 2, 0 -_08034194: .4byte gUnk_03000BF0 -_08034198: - adds r0, r4, #0 - movs r1, #0x5a - bl sub_0803442C - b _080341B6 -_080341A2: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r5, #0x32 - ldrsh r1, [r4, r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C -_080341B6: - pop {r4, r5, pc} - - thumb_func_start sub_080341B8 -sub_080341B8: @ 0x080341B8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080349D8 - cmp r0, #0 - beq _080341CC - adds r0, r4, #0 - movs r1, #0x2d - bl sub_0803442C -_080341CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080341D0 -sub_080341D0: @ 0x080341D0 - push {lr} - adds r2, r0, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - beq _080341F2 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080341F2 - adds r0, r2, #0 - bl sub_0803443C -_080341F2: - pop {pc} - - thumb_func_start sub_080341F4 -sub_080341F4: @ 0x080341F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080347B4 - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _0803420C - adds r0, r4, #0 - bl sub_08034420 -_0803420C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034210 -sub_08034210: @ 0x08034210 - push {r4, lr} - adds r4, r0, #0 - bl sub_080347B4 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08034238 - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _08034238 - adds r0, r4, #0 - bl sub_08034420 - b _0803423E -_08034238: - adds r0, r4, #0 - bl sub_08034830 -_0803423E: - pop {r4, pc} - - thumb_func_start sub_08034240 -sub_08034240: @ 0x08034240 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - cmp r0, #0 - beq _08034260 - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x95 - bhi _08034260 - adds r0, r4, #0 - bl sub_0803473C -_08034260: - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _08034270 - adds r0, r4, #0 - bl sub_08034420 -_08034270: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034274 -sub_08034274: @ 0x08034274 - push {r4, lr} - adds r4, r0, #0 - bl sub_080349D8 - cmp r0, #0 - beq _08034288 - adds r0, r4, #0 - bl sub_08034420 - b _0803429E -_08034288: - adds r0, r4, #0 - bl sub_0803473C - adds r0, r4, #0 - bl sub_08034A10 - cmp r0, #0 - beq _0803429E - adds r0, r4, #0 - bl sub_080347FC -_0803429E: - pop {r4, pc} - - thumb_func_start sub_080342A0 -sub_080342A0: @ 0x080342A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080349D8 - cmp r0, #0 - beq _080342B2 - adds r0, r4, #0 - bl sub_08034420 -_080342B2: - pop {r4, pc} - - thumb_func_start sub_080342B4 -sub_080342B4: @ 0x080342B4 - push {lr} - adds r1, r0, #0 - adds r0, #0x7e - ldrh r0, [r0] - cmp r0, #0xff - bne _080342C6 - adds r0, r1, #0 - bl sub_08034420 -_080342C6: - pop {pc} - - thumb_func_start sub_080342C8 -sub_080342C8: @ 0x080342C8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r1, r0, #0 - cmp r1, #0 - beq _08034304 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080342E4 - ldr r0, _080342FC @ =0x00000115 - bl sub_080A3268 -_080342E4: - ldr r2, _08034300 @ =gUnk_080CECEC - ldrb r0, [r4, #0xe] - lsrs r0, r0, #1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - b _08034340 - .align 2, 0 -_080342FC: .4byte 0x00000115 -_08034300: .4byte gUnk_080CECEC -_08034304: - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08034340 - movs r0, #0xc - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x7e - movs r1, #0 - movs r0, #0xe1 - lsls r0, r0, #3 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - adds r0, #4 - strb r1, [r0] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - ldr r0, _08034344 @ =0x000001A1 - bl sub_080A3268 -_08034340: - pop {r4, pc} - .align 2, 0 -_08034344: .4byte 0x000001A1 - - thumb_func_start sub_08034348 -sub_08034348: @ 0x08034348 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - cmp r0, #0 - beq _0803435C - subs r0, #1 - strh r0, [r1] - b _08034388 -_0803435C: - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - ble _08034370 - subs r0, r2, #1 - strh r0, [r4, #0x36] - b _08034388 -_08034370: - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _08034388 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08034420 -_08034388: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803438C -sub_0803438C: @ 0x0803438C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - adds r1, r0, #0 - cmp r1, #0 - bne _080343A0 - adds r0, r5, #0 - adds r0, #0x45 - strb r1, [r0] - b _08034414 -_080343A0: - subs r2, r0, #1 - strb r2, [r5, #0xe] - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc0 - bls _080343C4 - ldr r0, _080343C0 @ =gUnk_080CED06 - movs r1, #3 - ands r2, r1 - adds r0, r2, r0 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x62 - strb r1, [r0] - b _08034414 - .align 2, 0 -_080343C0: .4byte gUnk_080CED06 -_080343C4: - movs r0, #0x1f - ands r2, r0 - cmp r2, #0 - bne _08034414 - ldr r4, _08034418 @ =gUnk_080CED02 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - adds r0, r5, #0 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08034414 - ldrb r1, [r5, #0xe] - lsrs r1, r1, #4 - ldr r0, _0803441C @ =gUnk_080CECF4 - 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] - 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] -_08034414: - pop {r4, r5, pc} - .align 2, 0 -_08034418: .4byte gUnk_080CED02 -_0803441C: .4byte gUnk_080CECF4 - - thumb_func_start sub_08034420 -sub_08034420: @ 0x08034420 - movs r1, #2 - strb r1, [r0, #0xc] - adds r0, #0x7d - movs r1, #3 - strb r1, [r0] - bx lr - - thumb_func_start sub_0803442C -sub_0803442C: @ 0x0803442C - movs r2, #4 - strb r2, [r0, #0xc] - strb r1, [r0, #0xe] - adds r0, #0x7d - movs r1, #3 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0803443C -sub_0803443C: @ 0x0803443C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7d - movs r0, #0 - strb r0, [r1] - ldr r0, _0803445C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0x1e - bhi _08034460 - adds r0, r2, #0 - bl sub_080344BC - b _08034472 - .align 2, 0 -_0803445C: .4byte gUnk_030010A0 -_08034460: - cmp r0, #0x3c - bhi _0803446C - adds r0, r2, #0 - bl sub_08034498 - b _08034472 -_0803446C: - adds r0, r2, #0 - bl sub_08034474 -_08034472: - pop {pc} - - thumb_func_start sub_08034474 -sub_08034474: @ 0x08034474 - push {r4, lr} - ldr r2, _08034494 @ =gUnk_080CED0C - adds r4, r0, #0 - adds r4, #0x7c - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldrb r0, [r4] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08034494: .4byte gUnk_080CED0C - - thumb_func_start sub_08034498 -sub_08034498: @ 0x08034498 - push {r4, lr} - ldr r2, _080344B8 @ =gUnk_080CED2C - adds r4, r0, #0 - adds r4, #0x7c - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldrb r0, [r4] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_080344B8: .4byte gUnk_080CED2C - - thumb_func_start sub_080344BC -sub_080344BC: @ 0x080344BC - push {r4, lr} - ldr r2, _080344DC @ =gUnk_080CED4C - adds r4, r0, #0 - adds r4, #0x7c - ldrb r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldrb r0, [r4] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_080344DC: .4byte gUnk_080CED4C - - thumb_func_start sub_080344E0 -sub_080344E0: @ 0x080344E0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - beq _080344F8 - adds r0, r4, #0 - bl sub_080345A0 - b _0803451A -_080344F8: - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - bne _0803450C - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08034514 -_0803450C: - adds r0, r4, #0 - bl sub_080345B8 - b _0803451A -_08034514: - adds r0, r4, #0 - bl sub_080345A0 -_0803451A: - pop {r4, pc} - - thumb_func_start sub_0803451C -sub_0803451C: @ 0x0803451C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - bne _08034548 - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _0803453C - adds r0, r4, #0 - bl sub_08034638 - b _08034556 -_0803453C: - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08034550 -_08034548: - adds r0, r4, #0 - bl sub_08034618 - b _08034556 -_08034550: - adds r0, r4, #0 - bl sub_08034638 -_08034556: - pop {r4, pc} - - thumb_func_start sub_08034558 -sub_08034558: @ 0x08034558 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _08034570 - adds r0, r4, #0 - bl sub_08034658 - b _08034576 -_08034570: - adds r0, r4, #0 - bl sub_0803467C -_08034576: - pop {r4, pc} - - thumb_func_start sub_08034578 -sub_08034578: @ 0x08034578 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #0 - bl sub_080348A4 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #0 - bl sub_080348A4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080345A0 -sub_080345A0: @ 0x080345A0 - push {lr} - movs r1, #5 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - movs r1, #1 - strb r1, [r2] - ldr r1, [r0, #0x78] - movs r2, #1 - bl sub_080348A4 - pop {pc} - - thumb_func_start sub_080345B8 -sub_080345B8: @ 0x080345B8 - push {lr} - movs r1, #5 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - movs r1, #2 - strb r1, [r2] - ldr r1, [r0, #0x74] - movs r2, #1 - bl sub_080348A4 - pop {pc} - - thumb_func_start sub_080345D0 -sub_080345D0: @ 0x080345D0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #6 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080345FE - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 - cmp r0, #0 - bne _08034616 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 - b _08034616 -_080345FE: - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 - cmp r0, #0 - bne _08034616 - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 -_08034616: - pop {r4, pc} - - thumb_func_start sub_08034618 -sub_08034618: @ 0x08034618 - push {lr} - movs r1, #7 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - movs r1, #1 - strb r1, [r2] - adds r2, #1 - movs r1, #0xb4 - strh r1, [r2] - ldr r1, [r0, #0x78] - movs r2, #3 - bl sub_080348A4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08034638 -sub_08034638: @ 0x08034638 - push {lr} - movs r1, #7 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - movs r1, #2 - strb r1, [r2] - adds r2, #1 - movs r1, #0xb4 - strh r1, [r2] - ldr r1, [r0, #0x74] - movs r2, #3 - bl sub_080348A4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08034658 -sub_08034658: @ 0x08034658 - push {r4, lr} - movs r2, #0 - movs r1, #8 - strb r1, [r0, #0xc] - adds r4, r0, #0 - adds r4, #0x7d - strb r2, [r4] - ldr r1, [r0, #0x78] - movs r2, #4 - bl sub_080348A4 - cmp r0, #0 - bne _0803467A - ldrb r0, [r4] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4] -_0803467A: - pop {r4, pc} - - thumb_func_start sub_0803467C -sub_0803467C: @ 0x0803467C - push {r4, lr} - movs r2, #0 - movs r1, #8 - strb r1, [r0, #0xc] - adds r4, r0, #0 - adds r4, #0x7d - strb r2, [r4] - ldr r1, [r0, #0x74] - movs r2, #4 - bl sub_080348A4 - cmp r0, #0 - bne _0803469E - ldrb r0, [r4] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4] -_0803469E: - pop {r4, pc} - - thumb_func_start sub_080346A0 -sub_080346A0: @ 0x080346A0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #9 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #6 - bl sub_080348A4 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #6 - bl sub_080348A4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080346C8 -sub_080346C8: @ 0x080346C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #0xa - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7e - strh r1, [r0] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803470C - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #8 - bl sub_080348A4 - cmp r0, #0 - beq _080346F6 - ldr r1, [r4, #0x78] - b _0803471C -_080346F6: - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #7 - bl sub_080348A4 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #8 - bl sub_080348A4 - b _0803473A -_0803470C: - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #8 - bl sub_080348A4 - cmp r0, #0 - beq _08034726 - ldr r1, [r4, #0x74] -_0803471C: - adds r0, r4, #0 - movs r2, #7 - bl sub_080348A4 - b _0803473A -_08034726: - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #8 - bl sub_080348A4 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #7 - bl sub_080348A4 -_0803473A: - pop {r4, pc} - - thumb_func_start sub_0803473C -sub_0803473C: @ 0x0803473C - push {r4, r5, lr} - adds r3, r0, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08034764 - ldr r0, [r3, #0x74] - ldrb r0, [r0, #0xc] - cmp r0, #0x28 - bhi _080347B0 - ldr r0, _08034760 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r0, r1] - adds r2, r0, #0 - subs r2, #0x60 - b _08034776 - .align 2, 0 -_08034760: .4byte gLinkEntity -_08034764: - ldr r0, [r3, #0x78] - ldrb r0, [r0, #0xc] - cmp r0, #0x28 - bhi _080347B0 - ldr r0, _08034790 @ =gLinkEntity - movs r5, #0x2e - ldrsh r0, [r0, r5] - adds r2, r0, #0 - adds r2, #0x60 -_08034776: - ldr r0, _08034794 @ =gUnk_03000BF0 - ldrh r4, [r0, #6] - subs r0, r2, #4 - movs r5, #0x2e - ldrsh r1, [r3, r5] - cmp r0, r1 - bls _08034798 - adds r0, r4, #0 - adds r0, #0xe0 - cmp r0, r1 - blo _080347B0 - movs r0, #8 - b _080347A8 - .align 2, 0 -_08034790: .4byte gLinkEntity -_08034794: .4byte gUnk_03000BF0 -_08034798: - adds r0, r2, #4 - cmp r0, r1 - bhs _080347B0 - adds r0, r4, #0 - adds r0, #0x90 - cmp r0, r1 - bhi _080347B0 - movs r0, #0x18 -_080347A8: - strb r0, [r3, #0x15] - adds r0, r3, #0 - bl sub_0806F69C -_080347B0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080347B4 -sub_080347B4: @ 0x080347B4 - push {r4, r5, lr} - adds r2, r0, #0 - ldr r0, _080347D8 @ =gLinkEntity - movs r1, #0x2e - ldrsh r3, [r0, r1] - ldr r0, _080347DC @ =gUnk_03000BF0 - ldrh r4, [r0, #6] - subs r0, r3, #4 - movs r5, #0x2e - ldrsh r1, [r2, r5] - cmp r0, r1 - bls _080347E0 - adds r0, r4, #0 - adds r0, #0xe0 - cmp r0, r1 - blo _080347F8 - movs r0, #8 - b _080347F0 - .align 2, 0 -_080347D8: .4byte gLinkEntity -_080347DC: .4byte gUnk_03000BF0 -_080347E0: - adds r0, r3, #4 - cmp r0, r1 - bhs _080347F8 - adds r0, r4, #0 - adds r0, #0x90 - cmp r0, r1 - bhi _080347F8 - movs r0, #0x18 -_080347F0: - strb r0, [r2, #0x15] - adds r0, r2, #0 - bl sub_0806F69C -_080347F8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080347FC -sub_080347FC: @ 0x080347FC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08034818 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #5 - bl sub_080348A4 - b _08034822 -_08034818: - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #5 - bl sub_080348A4 -_08034822: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r1, [r2] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r2] - pop {r4, pc} - - thumb_func_start sub_08034830 -sub_08034830: @ 0x08034830 - push {r4, lr} - adds r4, r0, #0 - bl sub_080349D8 - cmp r0, #0 - beq _0803484C - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x80 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080345D0 - b _080348A0 -_0803484C: - adds r0, r4, #0 - bl sub_08034A10 - cmp r0, #0 - beq _080348A0 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _08034876 - adds r0, r4, #0 - bl sub_080349D8 - cmp r0, #0 - beq _080348A0 - adds r0, r4, #0 - bl sub_08034420 - b _080348A0 -_08034876: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - movs r1, #0x20 - orrs r1, r0 - strb r1, [r2] - movs r0, #0x10 - ands r1, r0 - cmp r1, #0 - beq _08034896 - ldr r1, [r4, #0x78] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 - b _080348A0 -_08034896: - ldr r1, [r4, #0x74] - adds r0, r4, #0 - movs r2, #2 - bl sub_080348A4 -_080348A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080348A4 -sub_080348A4: @ 0x080348A4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r5, r2, #0 - ldrb r0, [r3, #0xa] - cmp r0, #0 - bne _080348C6 - movs r2, #5 - movs r0, #0x7d - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x10 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - b _080348C8 -_080348C6: - movs r2, #0xa -_080348C8: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - ands r0, r2 - cmp r0, #0 - beq _080348F0 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r2, [r0] - ldrb r1, [r3, #0xa] - adds r3, r0, #0 - cmp r1, #0 - bne _080348E6 - movs r0, #1 - b _080348E8 -_080348E6: - movs r0, #2 -_080348E8: - orrs r0, r2 - strb r0, [r3] - movs r0, #0 - b _08034998 -_080348F0: - cmp r5, #8 - bhi _08034996 - lsls r0, r5, #2 - ldr r1, _08034900 @ =_08034904 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08034900: .4byte _08034904 -_08034904: @ jump table - .4byte _08034928 @ case 0 - .4byte _0803492E @ case 1 - .4byte _0803493C @ case 2 - .4byte _0803494A @ case 3 - .4byte _0803493C @ case 4 - .4byte _08034958 @ case 5 - .4byte _08034966 @ case 6 - .4byte _0803496C @ case 7 - .4byte _08034982 @ case 8 -_08034928: - movs r0, #3 - strb r0, [r3, #0xc] - b _08034996 -_0803492E: - movs r0, #4 - strb r0, [r3, #0xc] - adds r1, r3, #0 - adds r1, #0x7c - movs r0, #3 - strb r0, [r1] - b _08034996 -_0803493C: - movs r0, #4 - strb r0, [r3, #0xc] - adds r1, r3, #0 - adds r1, #0x7c - movs r0, #1 - strb r0, [r1] - b _08034996 -_0803494A: - movs r0, #0xf - strb r0, [r3, #0xc] - adds r1, r3, #0 - adds r1, #0x7e - movs r0, #0xb4 - strh r0, [r1] - b _08034996 -_08034958: - movs r0, #0xf - strb r0, [r3, #0xc] - adds r1, r3, #0 - adds r1, #0x7e - movs r0, #1 - strh r0, [r1] - b _08034996 -_08034966: - movs r0, #0x1e - strb r0, [r3, #0xc] - b _08034996 -_0803496C: - movs r0, #0x1b - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - adds r0, r3, #0 - movs r1, #5 - bl sub_08004260 - b _08034996 -_08034982: - ldrb r0, [r3, #0xa] - adds r2, r0, #2 - movs r0, #0x36 - adds r1, r2, #0 - bl CreateEnemy - adds r3, r0, #0 - cmp r3, #0 - beq _08034996 - str r4, [r3, #0x50] -_08034996: - movs r0, #1 -_08034998: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803499C -sub_0803499C: @ 0x0803499C - push {lr} - adds r3, r0, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #0xc - ands r0, r1 - cmp r0, #0xc - beq _080349D0 - adds r0, r3, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _080349D0 - ldr r2, _080349D4 @ =gUnk_080CED6C - ldrb r0, [r3, #0xf] - adds r0, #1 - strb r0, [r3, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r3, #0x36] -_080349D0: - pop {pc} - .align 2, 0 -_080349D4: .4byte gUnk_080CED6C - - thumb_func_start sub_080349D8 -sub_080349D8: @ 0x080349D8 - push {lr} - adds r2, r0, #0 - adds r0, #0x7d - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 - cmp r1, #3 - beq _08034A08 - cmp r1, #1 - bne _080349F6 - adds r0, r2, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #0xa - b _08034A02 -_080349F6: - cmp r1, #2 - bne _08034A0C - adds r0, r2, #0 - adds r0, #0x80 - ldrb r1, [r0] - movs r0, #5 -_08034A02: - ands r0, r1 - cmp r0, #0 - beq _08034A0C -_08034A08: - movs r0, #1 - b _08034A0E -_08034A0C: - movs r0, #0 -_08034A0E: - pop {pc} - - thumb_func_start sub_08034A10 -sub_08034A10: @ 0x08034A10 - push {r4, lr} - adds r1, r0, #0 - adds r3, r1, #0 - adds r3, #0x7d - ldrb r2, [r3] - movs r0, #0x60 - ands r0, r2 - cmp r0, #0x40 - beq _08034A52 - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _08034A56 - adds r4, r1, #0 - adds r4, #0x80 - ldrb r1, [r4] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - beq _08034A3E - movs r0, #0x40 - orrs r0, r2 - strb r0, [r3] -_08034A3E: - ldrb r1, [r4] - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _08034A7E - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, #1 - bne _08034A7E -_08034A52: - movs r0, #1 - b _08034A80 -_08034A56: - adds r4, r1, #0 - adds r4, #0x80 - ldrb r1, [r4] - movs r0, #0xa - ands r0, r1 - cmp r0, #0 - beq _08034A6A - movs r0, #0x40 - orrs r0, r2 - strb r0, [r3] -_08034A6A: - ldrb r1, [r4] - movs r0, #5 - ands r0, r1 - cmp r0, #0 - beq _08034A7E - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - beq _08034A52 -_08034A7E: - movs r0, #0 -_08034A80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034A84 -sub_08034A84: @ 0x08034A84 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08034A98 - adds r0, r4, #0 - bl sub_0805E7BC - b _08034AC2 -_08034A98: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08034ABA - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08034ABA: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C -_08034AC2: - pop {r4, pc} - - thumb_func_start sub_08034AC4 -sub_08034AC4: @ 0x08034AC4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldr r1, _08034AE8 @ =gUnk_080CED74 - 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 -_08034AE8: .4byte gUnk_080CED74 - - thumb_func_start sub_08034AEC -sub_08034AEC: @ 0x08034AEC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - ldrb r1, [r0, #0xa] - adds r1, #1 - bl sub_08004260 - ldr r0, _08034B08 @ =0x00000151 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08034B08: .4byte 0x00000151 - - thumb_func_start sub_08034B0C -sub_08034B0C: @ 0x08034B0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08034B1A - subs r0, #1 - b _08034B34 -_08034B1A: - 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 _08034B36 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x50 -_08034B34: - strb r0, [r4, #0xe] -_08034B36: - pop {r4, pc} - - thumb_func_start sub_08034B38 -sub_08034B38: @ 0x08034B38 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08034B58 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _08034B9A -_08034B58: - movs r0, #0xe - bl sub_080A7EE0 - adds r5, r0, #0 - cmp r5, #0 - beq _08034B9A - ldrb r0, [r4, #0xa] - subs r0, #2 - strb r0, [r5, #0xa] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08034B78 - ldrb r1, [r4, #0xe] - movs r0, #0xa8 - subs r0, r0, r1 - b _08034B7C -_08034B78: - ldrb r0, [r4, #0xe] - adds r0, #0x58 -_08034B7C: - strb r0, [r5, #0x15] - ldrb r0, [r5, #0xa] - lsls r0, r0, #1 - ldr r1, _08034B9C @ =gUnk_080CED84 - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative -_08034B9A: - pop {r4, r5, pc} - .align 2, 0 -_08034B9C: .4byte gUnk_080CED84 - - thumb_func_start sub_08034BA0 -sub_08034BA0: @ 0x08034BA0 - 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 _08034BC4 - ldr r0, [r4, #0x50] - adds r0, #0x7e - movs r1, #0xff - strh r1, [r0] - adds r0, r4, #0 - bl sub_0805E7BC -_08034BC4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034BC8 -sub_08034BC8: @ 0x08034BC8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08034BDE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08034BDE: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r0, r4, #0 - bl sub_0800445C - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08034BFE - adds r0, r4, #0 - bl sub_08034C00 -_08034BFE: - pop {r4, pc} - - thumb_func_start sub_08034C00 -sub_08034C00: @ 0x08034C00 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _08034C44 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08034C5A - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldr r2, _08034C48 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - movs r4, #0x32 - ldrsh r1, [r3, r4] - ldrh r2, [r2, #8] - subs r1, r1, r2 - adds r1, #0xd - movs r2, #3 - movs r3, #3 - bl sub_0800293E - cmp r0, #0 - beq _08034C5A - ldr r0, _08034C4C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0x3c - bls _08034C54 - ldr r0, _08034C50 @ =gUnk_080CED88 - bl sub_08080840 - b _08034C5A - .align 2, 0 -_08034C44: .4byte gUnk_03003F80 -_08034C48: .4byte gUnk_03000BF0 -_08034C4C: .4byte gUnk_030010A0 -_08034C50: .4byte gUnk_080CED88 -_08034C54: - ldr r0, _08034C5C @ =gUnk_080CED9C - bl sub_08080840 -_08034C5A: - pop {r4, pc} - .align 2, 0 -_08034C5C: .4byte gUnk_080CED9C - - thumb_func_start sub_08034C60 -sub_08034C60: @ 0x08034C60 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08034C78 @ =gUnk_080CEE90 - 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 -_08034C78: .4byte gUnk_080CEE90 - - thumb_func_start sub_08034C7C -sub_08034C7C: @ 0x08034C7C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #2 - beq _08034C9C - ldr r0, _08034C98 @ =gUnk_080CEEA4 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08034CA2 - .align 2, 0 -_08034C98: .4byte gUnk_080CEEA4 -_08034C9C: - adds r0, r2, #0 - bl sub_08034E18 -_08034CA2: - pop {pc} - - thumb_func_start sub_08034CA4 -sub_08034CA4: @ 0x08034CA4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08034FA0 - ldr r1, _08034CB8 @ =gUnk_080CEE90 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08034CB8: .4byte gUnk_080CEE90 - - thumb_func_start sub_08034CBC -sub_08034CBC: @ 0x08034CBC - push {lr} - bl sub_0804A7D4 - pop {pc} - - thumb_func_start sub_08034CC4 -sub_08034CC4: @ 0x08034CC4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08035084 - cmp r0, #0 - beq _08034D42 - ldrb r0, [r5, #0xa] - adds r0, #1 - movs r1, #0 - strb r0, [r5, #0xc] - strb r1, [r5, #0xf] - adds r2, r5, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #1 - orrs r0, r1 - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0x96 - lsls r0, r0, #3 - strh r0, [r1] - adds r0, r5, #0 - bl sub_08034F70 - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl sub_08004260 - ldr r0, _08034D44 @ =0x00004022 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08034D48 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - movs r0, #0x37 - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _08034D42 - str r1, [r5, #0x54] - str r5, [r1, #0x50] - adds r0, r5, #0 - bl sub_0806FA24 -_08034D42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08034D44: .4byte 0x00004022 -_08034D48: .4byte gUnk_03000BF0 - - thumb_func_start sub_08034D4C -sub_08034D4C: @ 0x08034D4C - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08004274 - adds r6, r5, #0 - adds r6, #0x78 - ldrh r0, [r6] - subs r0, #1 - strh r0, [r6] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08034DC4 - ldrb r0, [r5, #0xf] - cmp r0, #7 - bhi _08034DBC - movs r0, #0x4b - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _08034DBC - bl sub_08000E50 - movs r1, #5 - bl __modsi3 - adds r0, #0xc - strb r0, [r4, #0x15] - ldr r1, _08034DB8 @ =gUnk_03000BF0 - ldrh r0, [r1, #0x1e] - lsrs r0, r0, #1 - ldrh r2, [r1, #6] - adds r0, r0, r2 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #8] - adds r0, #8 - strh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - str r5, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A04 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r6] - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - b _08034DC4 - .align 2, 0 -_08034DB8: .4byte gUnk_03000BF0 -_08034DBC: - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0x78 - strh r0, [r1] -_08034DC4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08034DC8 -sub_08034DC8: @ 0x08034DC8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08034E10 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08034E0E - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08034E14 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r4, r5] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - bl sub_0805E780 -_08034E0E: - pop {r4, r5, pc} - .align 2, 0 -_08034E10: .4byte gUnk_030010A0 -_08034E14: .4byte gUnk_03000BF0 - - thumb_func_start sub_08034E18 -sub_08034E18: @ 0x08034E18 - push {lr} - ldr r2, _08034E2C @ =gUnk_080CEEB0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08034E2C: .4byte gUnk_080CEEB0 - - thumb_func_start sub_08034E30 -sub_08034E30: @ 0x08034E30 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xa] - adds r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - movs r1, #0x39 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034E68 -sub_08034E68: @ 0x08034E68 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08034EBC - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - cmp r0, #0 - beq _08034E8A - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08035120 -_08034E8A: - ldr r0, _08034EB0 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08034EB8 - bl sub_08079F8C - cmp r0, #0 - beq _08034EBC - movs r0, #3 - strb r0, [r4, #0xc] - ldr r1, _08034EB4 @ =gUnk_08012E20 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - b _08034EBC - .align 2, 0 -_08034EB0: .4byte gUnk_030010A0 -_08034EB4: .4byte gUnk_08012E20 -_08034EB8: - bl sub_0805E780 -_08034EBC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08034EC0 -sub_08034EC0: @ 0x08034EC0 - push {lr} - adds r1, r0, #0 - ldr r0, [r1, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08034ED6 - adds r0, r1, #0 - bl sub_08035120 - bl sub_0805E780 -_08034ED6: - pop {pc} - - thumb_func_start sub_08034ED8 -sub_08034ED8: @ 0x08034ED8 - push {lr} - movs r1, #0 - bl sub_0807DDAC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08034EE4 -sub_08034EE4: @ 0x08034EE4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08034F46 - bl sub_08000E50 - adds r4, r0, #0 - ldr r0, _08034F50 @ =gUnk_080CEEC8 - movs r1, #3 - ands r1, r4 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r5, #0 - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _08034F46 - lsrs r1, r4, #2 - movs r0, #0x77 - ands r1, r0 - lsls r1, r1, #1 - adds r1, #1 - ldr r2, _08034F54 @ =gUnk_03000BF0 - ldrh r0, [r2, #0xa] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - lsrs r1, r4, #9 - movs r0, #0x7e - ands r1, r0 - adds r1, #1 - ldrh r0, [r2, #0xc] - adds r0, r0, r1 - strh r0, [r3, #0x32] - adds r1, r3, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r3, #0 - bl sub_08016A04 -_08034F46: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - pop {r4, r5, pc} - .align 2, 0 -_08034F50: .4byte gUnk_080CEEC8 -_08034F54: .4byte gUnk_03000BF0 - - thumb_func_start sub_08034F58 -sub_08034F58: @ 0x08034F58 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08034F6C @ =gUnk_0813ABA8 - bl sub_08080840 - adds r0, r4, #0 - bl sub_0805E7BC - pop {r4, pc} - .align 2, 0 -_08034F6C: .4byte gUnk_0813ABA8 - - thumb_func_start sub_08034F70 -sub_08034F70: @ 0x08034F70 - push {lr} - adds r2, r0, #0 - ldr r0, _08034F8C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - adds r1, r2, #0 - adds r1, #0x45 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bls _08034F90 - movs r0, #0 - b _08034F9A - .align 2, 0 -_08034F8C: .4byte gUnk_030010A0 -_08034F90: - cmp r0, #0x1e - bls _08034F98 - movs r0, #1 - b _08034F9A -_08034F98: - movs r0, #2 -_08034F9A: - strb r0, [r2, #0xb] - pop {pc} - .align 2, 0 - - thumb_func_start sub_08034FA0 -sub_08034FA0: @ 0x08034FA0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x3d - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08034FC0 - ldr r0, [r4, #0x54] - adds r0, #0x3d - strb r1, [r0] - movs r0, #0xc - movs r1, #1 - bl sub_08080964 -_08034FC0: - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08035008 - cmp r0, #1 - beq _08035020 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0 - bne _08035040 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08035004 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_0807BA8C - b _08035040 - .align 2, 0 -_08035004: .4byte gUnk_03000BF0 -_08035008: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x3b - bhi _08035040 - ldr r0, _0803501C @ =gUnk_030010A0 - adds r0, #0x39 - movs r1, #0x3c - b _08035032 - .align 2, 0 -_0803501C: .4byte gUnk_030010A0 -_08035020: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x1d - bhi _08035040 - ldr r0, _0803503C @ =gUnk_030010A0 - adds r0, #0x39 - movs r1, #0x1e -_08035032: - strb r1, [r0] - adds r0, r4, #0 - bl sub_08035050 - b _08035048 - .align 2, 0 -_0803503C: .4byte gUnk_030010A0 -_08035040: - ldr r0, _0803504C @ =gUnk_030010A0 - ldrb r1, [r5] - adds r0, #0x39 - strb r1, [r0] -_08035048: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803504C: .4byte gUnk_030010A0 - - thumb_func_start sub_08035050 -sub_08035050: @ 0x08035050 - push {r4, lr} - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - movs r4, #0 - strb r1, [r0, #0x10] - adds r0, #0x45 - strb r4, [r0] - movs r0, #0x4b - movs r1, #0 - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _08035082 - movs r0, #1 - strb r0, [r2, #0xb] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl sub_08016A04 -_08035082: - pop {r4, pc} - - thumb_func_start sub_08035084 -sub_08035084: @ 0x08035084 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _08035118 - ldr r0, _080350A0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x42 - bls _080350A4 - movs r0, #0 - b _0803511A - .align 2, 0 -_080350A0: .4byte gUnk_03003DBC -_080350A4: - ldr r4, _080350D8 @ =gUnk_030010D8 -_080350A6: - bl sub_08000E50 - movs r1, #6 - bl __modsi3 - adds r6, r0, #0 - ldrb r0, [r4] - lsrs r0, r0, #4 - cmp r6, r0 - beq _080350A6 - ldr r2, _080350DC @ =gUnk_030010A0 - adds r2, #0x38 - ldrb r1, [r2] - movs r0, #0xf - ands r0, r1 - lsls r1, r6, #4 - orrs r0, r1 - strb r0, [r2] - movs r5, #0 - ldr r4, _080350E0 @ =gUnk_080CEECC - ldr r7, _080350E4 @ =gUnk_03000BF0 -_080350D0: - cmp r5, r6 - bne _080350E8 - mov r2, r8 - b _080350F2 - .align 2, 0 -_080350D8: .4byte gUnk_030010D8 -_080350DC: .4byte gUnk_030010A0 -_080350E0: .4byte gUnk_080CEECC -_080350E4: .4byte gUnk_03000BF0 -_080350E8: - movs r0, #0x37 - movs r1, #1 - bl CreateEnemy - adds r2, r0, #0 -_080350F2: - ldrh r0, [r7, #6] - ldrb r1, [r4] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r7, #8] - ldrb r1, [r4, #1] - adds r0, r0, r1 - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A04 - adds r5, #1 - adds r4, #2 - cmp r5, #5 - bls _080350D0 -_08035118: - movs r0, #1 -_0803511A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08035120 -sub_08035120: @ 0x08035120 - push {r4, r5, r6, lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _0803515C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r4, r1, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r0, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - movs r6, #0 - ldr r5, _08035160 @ =gUnk_080CEED8 -_08035146: - movs r2, #0 - ldrsh r0, [r5, r2] - adds r0, r4, r0 - bl sub_0807B600 - adds r5, #2 - adds r6, #1 - cmp r6, #0x17 - bls _08035146 - pop {r4, r5, r6, pc} - .align 2, 0 -_0803515C: .4byte gUnk_03000BF0 -_08035160: .4byte gUnk_080CEED8 - - thumb_func_start sub_08035164 -sub_08035164: @ 0x08035164 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0803518C - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - ands r1, r2 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - subs r0, #0x42 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_0803518C: - adds r0, r4, #0 - bl sub_08035194 - pop {r4, pc} - - thumb_func_start sub_08035194 -sub_08035194: @ 0x08035194 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _080351A8 - ldr r0, _080351A4 @ =gUnk_080CEF34 - b _080351AA - .align 2, 0 -_080351A4: .4byte gUnk_080CEF34 -_080351A8: - ldr r0, _080351B8 @ =gUnk_080CEF58 -_080351AA: - ldrb r1, [r2, #0x1e] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r2, #0x48] - pop {pc} - .align 2, 0 -_080351B8: .4byte gUnk_080CEF58 - - thumb_func_start sub_080351BC -sub_080351BC: @ 0x080351BC - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _080351D4 @ =gUnk_080CF040 - 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 -_080351D4: .4byte gUnk_080CF040 - - thumb_func_start sub_080351D8 -sub_080351D8: @ 0x080351D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - cmp r1, #0 - bne _08035204 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080368D8 - adds r0, r4, #0 - bl sub_0803520C - b _08035208 -_08035204: - bl sub_0805E780 -_08035208: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803520C -sub_0803520C: @ 0x0803520C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - bne _08035238 - ldrb r0, [r4, #0xd] - cmp r0, #3 - beq _0803524C - ldr r2, _08035234 @ =gUnk_03000BF0 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r0, [r1, #0xc] - str r0, [r2, #0x30] - movs r0, #0x5a - strb r0, [r1, #7] - bl sub_08078B48 - b _0803524C - .align 2, 0 -_08035234: .4byte gUnk_03000BF0 -_08035238: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #7] - cmp r0, #0 - beq _0803524C - subs r0, #1 - strb r0, [r1, #7] - bl sub_08078B48 -_0803524C: - ldr r1, _08035284 @ =gUnk_080CF054 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xd] - cmp r0, #3 - bls _08035266 - bl sub_08078B48 -_08035266: - adds r0, r4, #0 - bl sub_0800445C - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_08035284: .4byte gUnk_080CF054 - - thumb_func_start sub_08035288 -sub_08035288: @ 0x08035288 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x76 - movs r4, #0 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r3, r2, #0 - adds r3, #0x84 - ldr r0, [r3] - strb r4, [r0, #6] - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #4 - bne _080352C8 - strb r0, [r2, #0xd] - ldr r0, _080352C4 @ =gUnk_02034490 - movs r1, #1 - strb r1, [r0] - bl sub_08078B48 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - b _080352FA - .align 2, 0 -_080352C4: .4byte gUnk_02034490 -_080352C8: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080352DA - strb r4, [r2, #0xb] - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x3c - b _080352F4 -_080352DA: - ldr r1, [r3] - ldrb r0, [r1, #1] - cmp r0, #3 - bls _080352E6 - subs r0, #1 - strb r0, [r1, #1] -_080352E6: - ldr r0, [r3] - ldr r0, [r0, #0xc] - adds r0, #0x7d - strb r4, [r0] - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x78 -_080352F4: - strb r0, [r1] - movs r0, #1 - strb r0, [r2, #0xd] -_080352FA: - pop {r4, pc} - - thumb_func_start sub_080352FC -sub_080352FC: @ 0x080352FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r6, #1 - adds r4, r6, #0 - ands r4, r0 - cmp r4, #0 - bne _080353EC - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r1, [r1, #0xc] - adds r1, #0x7d - ldrb r2, [r1] - mov sb, r0 - cmp r2, #0 - beq _0803532C - subs r0, r2, #1 - strb r0, [r1] -_0803532C: - ldr r3, _0803538C @ =gUnk_03000BF0 - movs r0, #0x84 - lsls r0, r0, #1 - adds r1, r0, #0 - ldrh r2, [r3, #6] - adds r1, r1, r2 - ldrh r0, [r5, #0x2e] - subs r1, r1, r0 - adds r1, #4 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrh r0, [r3, #8] - ldrh r2, [r5, #0x32] - subs r0, r0, r2 - adds r0, #0x8c - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r1, #8 - bhi _08035356 - cmp r0, #8 - bls _08035394 -_08035356: - mov r1, sb - ldr r0, [r1] - strb r6, [r0, #2] - ldrh r0, [r3, #6] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r2, _08035390 @ =0xFFFFFEF8 - adds r1, r1, r2 - subs r0, r0, r1 - ldrh r1, [r3, #8] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r2, #0x88 - subs r1, r1, r2 - bl sub_080045DA - asrs r0, r0, #3 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_080AEF88 - adds r7, r5, #0 - adds r7, #0x79 - b _08035456 - .align 2, 0 -_0803538C: .4byte gUnk_03000BF0 -_08035390: .4byte 0xFFFFFEF8 -_08035394: - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _080353D8 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #0 - bl sub_080A2988 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #1 - bl sub_080A2988 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #2 - bl sub_080A2988 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #3 - bl sub_080A2988 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #5 - movs r3, #4 - bl sub_080A2988 - strb r6, [r5, #0xb] -_080353D8: - mov r1, sb - ldr r0, [r1] - strb r4, [r0, #2] - adds r1, r5, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r7, r1, #0 - b _08035456 -_080353EC: - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r1, [r1, #1] - subs r4, r1, #1 - mov sb, r0 - adds r7, r5, #0 - adds r7, #0x79 - cmp r4, #0 - beq _08035438 - mov ip, sb - movs r2, #1 - mov sl, r2 - lsls r0, r4, #2 - subs r6, r0, #4 - movs r3, #3 - mov r8, r3 -_0803540E: - mov r1, ip - ldr r0, [r1] - adds r0, #0xc - adds r0, r0, r6 - ldr r3, [r0] - ldrb r2, [r3, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - mov r0, sl - orrs r1, r0 - mov r0, r8 - ands r1, r0 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] - subs r6, #4 - subs r4, #1 - cmp r4, #0 - bne _0803540E -_08035438: - ldr r1, _080354AC @ =gUnk_030010A0 - ldr r0, [r1] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08035450 - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #6 - movs r3, #0 - bl sub_080A2988 -_08035450: - ldrb r0, [r7] - subs r0, #1 - strb r0, [r7] -_08035456: - ldrb r0, [r7] - cmp r0, #0 - bne _080354E8 - movs r0, #2 - strb r0, [r5, #0xd] - adds r4, r5, #0 - adds r4, #0x7c - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r0, r5, #0 - bl sub_080AE068 - ldrb r1, [r4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080354B0 - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x5f - strb r0, [r1] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r5, #0 - bl sub_080ADF80 - adds r0, r5, #0 - movs r1, #0xef - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xef - bl sub_08036F14 - mov r2, sb - ldr r0, [r2] - ldr r0, [r0, #0xc] - movs r1, #1 - bl sub_080042AC - b _080354DC - .align 2, 0 -_080354AC: .4byte gUnk_030010A0 -_080354B0: - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x61 - strb r0, [r1] - ldr r1, _080354F4 @ =0x00000109 - adds r0, r5, #0 - bl sub_080ADF80 - adds r0, r5, #0 - movs r1, #0xf0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xf3 - bl sub_08036F14 - mov r3, sb - ldr r0, [r3] - ldr r0, [r0, #0xc] - movs r1, #2 - bl sub_080042AC -_080354DC: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #8 - movs r3, #0 - bl sub_080A2988 -_080354E8: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080354F4: .4byte 0x00000109 - - thumb_func_start sub_080354F8 -sub_080354F8: @ 0x080354F8 - push {lr} - adds r1, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7d - ldrb r0, [r2] - cmp r0, #0x80 - beq _08035512 - adds r0, #1 - strb r0, [r2] - b _08035522 -_08035512: - movs r0, #3 - strb r0, [r1, #0xd] - adds r1, #0x79 - movs r0, #0x96 - strb r0, [r1] - ldr r1, _08035524 @ =gUnk_03000BF0 - ldr r0, _08035528 @ =gLinkEntity - str r0, [r1, #0x30] -_08035522: - pop {pc} - .align 2, 0 -_08035524: .4byte gUnk_03000BF0 -_08035528: .4byte gLinkEntity - - thumb_func_start sub_0803552C -sub_0803552C: @ 0x0803552C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - movs r3, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035570 - ldr r1, _08035574 @ =gUnk_080CF070 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r2, #0 - adds r1, #0x45 - strb r0, [r1] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - movs r0, #1 - strb r0, [r2, #0xc] - strb r3, [r2, #0xd] - adds r0, r2, #0 - adds r0, #0x7e - strb r3, [r0] - adds r0, r2, #0 - bl sub_08036DA0 -_08035570: - pop {pc} - .align 2, 0 -_08035574: .4byte gUnk_080CF070 - - thumb_func_start sub_08035578 -sub_08035578: @ 0x08035578 - push {lr} - movs r1, #5 - strb r1, [r0, #0xd] - movs r1, #0x87 - movs r2, #9 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _08035592 - ldr r0, _08035594 @ =gUnk_03000BF0 - str r1, [r0, #0x30] -_08035592: - pop {pc} - .align 2, 0 -_08035594: .4byte gUnk_03000BF0 - - thumb_func_start sub_08035598 -sub_08035598: @ 0x08035598 - adds r2, r0, #0 - movs r1, #0 - movs r0, #6 - strb r0, [r2, #0xd] - adds r3, r2, #0 - adds r3, #0x79 - movs r0, #0x78 - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #2 - strb r1, [r0] - bx lr - - thumb_func_start sub_080355B4 -sub_080355B4: @ 0x080355B4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r1, r7, #0 - adds r1, #0x7b - ldrb r0, [r1] - subs r0, #4 - strb r0, [r1] - adds r1, #6 - ldrb r0, [r1] - adds r0, #8 - strb r0, [r1] - adds r4, r7, #0 - adds r4, #0x80 - ldrb r1, [r4] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _080355FA - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - ldrb r1, [r4] - subs r1, r1, r0 - strb r1, [r4] - ands r1, r5 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - bne _08035616 - b _08035614 -_080355FA: - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - ldrb r2, [r4] - adds r1, r0, r2 - strb r1, [r4] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x18 - bls _08035616 - movs r0, #0x80 - orrs r1, r0 -_08035614: - strb r1, [r4] -_08035616: - ldr r0, _080356E4 @ =gUnk_080C9160 - mov r8, r0 - movs r1, #0x81 - adds r1, r1, r7 - mov sb, r1 - ldrb r0, [r1] - lsls r0, r0, #1 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r6, r7, #0 - adds r6, #0x80 - ldrb r2, [r6] - movs r4, #0x7f - adds r1, r4, #0 - ands r1, r2 - lsls r1, r1, #8 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r5, #0x80 - lsls r5, r5, #1 - adds r1, r5, #0 - bl sub_0806FA04 - lsrs r0, r0, #8 - adds r1, r7, #0 - adds r1, #0x62 - strb r0, [r1] - mov r1, sb - ldrb r0, [r1] - adds r0, #0x40 - lsls r0, r0, #1 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - ldrb r1, [r6] - ands r4, r1 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r5, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - rsbs r0, r0, #0 - asrs r0, r0, #0x10 - adds r1, r7, #0 - adds r1, #0x63 - strb r0, [r1] - adds r1, #0x16 - ldrb r0, [r1] - cmp r0, #0 - bne _080356EC - ldr r0, _080356E8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080356B2 - adds r0, r7, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r0, r7, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #0x20] - movs r1, #0x48 - movs r2, #0 - bl CreateFX -_080356B2: - adds r1, r7, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x79 - bne _080356F0 - adds r0, r7, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #8] - adds r0, #0x45 - movs r1, #1 - strb r1, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r7, #0 - bl sub_0804A7D4 - b _080356F0 - .align 2, 0 -_080356E4: .4byte gUnk_080C9160 -_080356E8: .4byte gUnk_030010A0 -_080356EC: - subs r0, #1 - strb r0, [r1] -_080356F0: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080356F8 -sub_080356F8: @ 0x080356F8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08035718 @ =gUnk_080CF078 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0x19] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x19] - pop {r4, pc} - .align 2, 0 -_08035718: .4byte gUnk_080CF078 - - thumb_func_start sub_0803571C -sub_0803571C: @ 0x0803571C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xa] - cmp r0, #6 - bls _0803573A - b _08035974 -_0803573A: - lsls r0, r0, #2 - ldr r1, _08035744 @ =_08035748 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08035744: .4byte _08035748 -_08035748: @ jump table - .4byte _08035764 @ case 0 - .4byte _080358D8 @ case 1 - .4byte _080358D8 @ case 2 - .4byte _080358D8 @ case 3 - .4byte _080358D8 @ case 4 - .4byte _08035920 @ case 5 - .4byte _08035940 @ case 6 -_08035764: - 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 r0, #0x7c - movs r5, #0 - strb r5, [r0] - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x30 - bl sub_0801D8E0 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x84 - str r2, [r0] - mov r8, r0 - cmp r2, #0 - bne _0803579E - adds r0, r4, #0 - bl sub_0804A7D4 - b _080359A6 -_0803579E: - str r2, [r4, #0x64] - mov r1, r8 - ldr r0, [r1] - strb r5, [r0, #6] - ldr r1, [r1] - movs r0, #2 - strb r0, [r1] - mov r2, r8 - ldr r0, [r2] - strb r5, [r0, #2] - ldr r1, [r2] - movs r0, #5 - strb r0, [r1, #1] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x6d - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r0, #6 - strh r5, [r0] - movs r5, #0 - movs r0, #0x79 - adds r0, r0, r4 - mov sb, r0 - mov r7, r8 -_080357E6: - adds r6, r5, #1 - movs r0, #0x39 - adds r1, r6, #0 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08035816 - adds r0, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r7] - lsls r0, r5, #2 - adds r1, #0x20 - adds r1, r1, r0 - ldr r0, [r4, #0x54] - str r0, [r1] -_08035816: - adds r5, r6, #0 - cmp r5, #3 - bls _080357E6 - movs r0, #0x39 - movs r1, #5 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08035840 - adds r0, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - mov r2, r8 - ldr r1, [r2] - str r1, [r0] -_08035840: - movs r0, #0x39 - movs r1, #6 - bl CreateEnemy - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _0803586A - adds r0, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - mov r2, r8 - ldr r1, [r2] - str r1, [r0] - ldr r1, [r2] - ldr r0, [r4, #0x54] - str r0, [r1, #0xc] -_0803586A: - movs r5, #0 - mov r7, r8 -_0803586E: - movs r0, #0x39 - movs r1, #7 - bl CreateEnemy - str r0, [r4, #0x54] - adds r6, r5, #1 - cmp r0, #0 - beq _080358A0 - strb r5, [r0, #0xb] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x54] - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r0, #0x84 - ldr r1, [r7] - str r1, [r0] - ldr r1, [r7] - lsls r0, r6, #2 - adds r1, #0xc - adds r1, r1, r0 - ldr r0, [r4, #0x54] - str r0, [r1] -_080358A0: - adds r5, r6, #0 - cmp r5, #3 - bls _0803586E - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x3c - mov r1, sb - strb r0, [r1] - ldr r1, _080358D0 @ =gLinkEntity - ldrb r2, [r1, #0x18] - subs r0, #0x40 - ands r0, r2 - strb r0, [r1, #0x18] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - subs r0, #0xa0 - strh r0, [r1, #0x32] - ldr r0, _080358D4 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - b _08035974 - .align 2, 0 -_080358D0: .4byte gLinkEntity -_080358D4: .4byte gUnk_03000BF0 -_080358D8: - movs r1, #0 - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] - ldrb r1, [r4, #0xa] - movs r2, #2 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080358F4 - strb r2, [r4, #0xf] - b _080358F8 -_080358F4: - movs r0, #0xfe - strb r0, [r4, #0xf] -_080358F8: - adds r0, r4, #0 - adds r0, #0x74 - movs r2, #0x80 - lsls r2, r2, #1 - strh r2, [r0] - ldrb r1, [r4, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08035918 - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xff - lsls r0, r0, #8 - strh r0, [r1] - b _08035974 -_08035918: - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _08035974 -_08035920: - adds r0, r4, #0 - adds r0, #0x76 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x1c - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - str r4, [r0, #8] - b _08035974 -_08035940: - adds r0, r4, #0 - adds r0, #0x76 - movs r2, #0 - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x79 - strb r2, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x80 - strb r0, [r1] -_08035974: - ldrb r0, [r4, #0xa] - cmp r0, #6 - beq _08035990 - ldr r0, _0803598C @ =gUnk_080CF08C - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08004260 - b _080359A0 - .align 2, 0 -_0803598C: .4byte gUnk_080CF08C -_08035990: - ldr r0, _080359B0 @ =gUnk_080CF08C - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080042AC -_080359A0: - adds r0, r4, #0 - bl sub_08035B94 -_080359A6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080359B0: .4byte gUnk_080CF08C - - thumb_func_start sub_080359B4 -sub_080359B4: @ 0x080359B4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldr r1, _080359F0 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036F60 - ldr r1, _080359F4 @ =gUnk_080CF0AC - ldrb r0, [r4, #0xd] - 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, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_080359F0: .4byte gUnk_02034490 -_080359F4: .4byte gUnk_080CF0AC - - thumb_func_start sub_080359F8 -sub_080359F8: @ 0x080359F8 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035A22 - movs r0, #1 - strb r0, [r2, #0xd] - adds r1, #9 - adds r0, #0xff - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #2 - strb r0, [r1] -_08035A22: - pop {pc} - - thumb_func_start sub_08035A24 -sub_08035A24: @ 0x08035A24 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0x80 - bne _08035A54 - adds r2, r4, #0 - adds r2, #0x79 - movs r1, #0 - movs r0, #0x3c - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0] - ldr r0, _08035A50 @ =0x00000159 - bl sub_080A3268 - b _08035A64 - .align 2, 0 -_08035A50: .4byte 0x00000159 -_08035A54: - adds r1, r4, #0 - adds r1, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_08035A64: - adds r0, r4, #0 - movs r1, #0xf - bl sub_08036FAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08035A70 -sub_08035A70: @ 0x08035A70 - push {r4, lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035AA8 - movs r0, #3 - strb r0, [r2, #0xd] - movs r0, #0x3c - strb r0, [r1] - ldr r2, _08035AAC @ =gLinkEntity - ldrb r3, [r2, #0x18] - lsls r1, r3, #0x1e - lsrs r1, r1, #0x1e - movs r4, #1 - orrs r1, r4 - subs r0, #0x40 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, #0x18] - ldr r0, _08035AB0 @ =gUnk_03000BF0 - str r2, [r0, #0x30] - strb r4, [r0, #0xe] -_08035AA8: - pop {r4, pc} - .align 2, 0 -_08035AAC: .4byte gLinkEntity -_08035AB0: .4byte gUnk_03000BF0 - - thumb_func_start sub_08035AB4 -sub_08035AB4: @ 0x08035AB4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r6, #0 - adds r5, #0x79 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035AE4 - ldr r1, _08035AE8 @ =gLinkEntity - movs r0, #0x10 - strb r0, [r1, #0x15] - movs r4, #4 - strb r4, [r1, #0x14] - movs r0, #0x1e - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - movs r0, #0x3c - strb r0, [r5] - strb r4, [r6, #0xd] -_08035AE4: - pop {r4, r5, r6, pc} - .align 2, 0 -_08035AE8: .4byte gLinkEntity - - thumb_func_start sub_08035AEC -sub_08035AEC: @ 0x08035AEC - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x79 - ldrb r0, [r2] - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035B18 - movs r0, #5 - strb r0, [r3, #0xd] - movs r0, #0x2d - strb r0, [r2] - ldr r1, _08035B14 @ =gLinkEntity - movs r0, #0 - strb r0, [r1, #0x14] - b _08035B2C - .align 2, 0 -_08035B14: .4byte gLinkEntity -_08035B18: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bne _08035B2C - ldr r0, _08035B30 @ =gLinkEntity - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #0xc - bl sub_080A2CFC -_08035B2C: - pop {pc} - .align 2, 0 -_08035B30: .4byte gLinkEntity - - thumb_func_start sub_08035B34 -sub_08035B34: @ 0x08035B34 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r2, _08035B70 @ =gLinkEntity - ldrb r5, [r2, #0x14] - cmp r5, #4 - bne _08035B7C - adds r2, r3, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bls _08035B92 - movs r4, #0 - movs r0, #1 - strb r0, [r3, #0xc] - strb r4, [r3, #0xd] - ldr r0, _08035B74 @ =gUnk_03000BF0 - strb r5, [r0, #0xe] - adds r0, r3, #0 - bl sub_08036C90 - ldr r0, _08035B78 @ =gUnk_02034490 - strb r4, [r0] - movs r0, #0x2e - bl sub_080A3268 - b _08035B92 - .align 2, 0 -_08035B70: .4byte gLinkEntity -_08035B74: .4byte gUnk_03000BF0 -_08035B78: .4byte gUnk_02034490 -_08035B7C: - adds r1, r3, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08035B92 - movs r0, #4 - strb r0, [r2, #0x14] -_08035B92: - pop {r4, r5, pc} - - thumb_func_start sub_08035B94 -sub_08035B94: @ 0x08035B94 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _08035BAE - ldr r0, [r5, #0x50] - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x3d - strb r0, [r1] -_08035BAE: - ldrb r0, [r5, #0xa] - cmp r0, #7 - bls _08035BB6 - b _08035F6C -_08035BB6: - lsls r0, r0, #2 - ldr r1, _08035BC0 @ =_08035BC4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08035BC0: .4byte _08035BC4 -_08035BC4: @ jump table - .4byte _08035F16 @ case 0 - .4byte _08035BE4 @ case 1 - .4byte _08035BE4 @ case 2 - .4byte _08035BE4 @ case 3 - .4byte _08035BE4 @ case 4 - .4byte _08035E78 @ case 5 - .4byte _08035DB0 @ case 6 - .4byte _08035D14 @ case 7 -_08035BE4: - ldr r0, [r5, #0x50] - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08035BF6 - bl sub_0805E780 -_08035BF6: - adds r1, r5, #0 - adds r1, #0x84 - ldr r0, [r1] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - adds r6, r1, #0 - adds r7, r5, #0 - adds r7, #0x76 - movs r1, #0x74 - adds r1, r1, r5 - mov r8, r1 - cmp r0, #1 - bne _08035C42 - ldrh r1, [r7] - movs r2, #0 - ldrsh r0, [r7, r2] - cmp r0, #0 - bge _08035C20 - subs r0, r1, #4 - b _08035C22 -_08035C20: - adds r0, r1, #4 -_08035C22: - strh r0, [r7] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r2, [r0] - movs r3, #0 - ldrsh r1, [r0, r3] - mov r8, r0 - cmp r1, #0 - bge _08035C3C - subs r0, r2, #4 - mov r1, r8 - strh r0, [r1] - b _08035C42 -_08035C3C: - adds r0, r2, #4 - mov r2, r8 - strh r0, [r2] -_08035C42: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r6] - ldrb r0, [r0, #2] - cmp r0, #0 - bne _08035C66 - ldr r1, [r5, #0x50] - ldrb r0, [r1, #0xc] - cmp r0, #3 - beq _08035C66 - ldrb r0, [r1, #0xd] - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08035C82 -_08035C66: - movs r0, #0xf - ldrsb r0, [r5, r0] - cmp r0, #0 - bge _08035C76 - ldr r0, [r6] - ldrb r0, [r0] - rsbs r0, r0, #0 - b _08035C7A -_08035C76: - ldr r0, [r6] - ldrb r0, [r0] -_08035C7A: - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08036998 -_08035C82: - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - lsls r0, r3, #0xd - lsrs r3, r0, #8 - ldr r0, _08035CB0 @ =0xFFFFE000 - adds r3, r3, r0 - ldr r0, [r6] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bne _08035CB4 - movs r1, #0x88 - lsls r1, r1, #6 - adds r3, r3, r1 - b _08035CBC - .align 2, 0 -_08035CB0: .4byte 0xFFFFE000 -_08035CB4: - lsrs r0, r3, #1 - movs r2, #0x88 - lsls r2, r2, #6 - adds r3, r0, r2 -_08035CBC: - adds r2, r4, #0 - adds r2, #0x7b - ldr r1, _08035D0C @ =gUnk_080CF0D8 - ldrb r0, [r5, #0xa] - subs r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r2, [r2] - adds r0, r0, r2 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_08036914 - ldr r2, [r5, #0x50] - adds r2, #0x7b - ldr r1, _08035D10 @ =gUnk_080CF0DC - ldrb r0, [r5, #0xa] - subs r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r2, [r2] - adds r1, r1, r2 - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - adds r0, r0, r1 - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] - ldrh r1, [r7] - mov r3, r8 - ldrh r2, [r3] - adds r0, r5, #0 - adds r0, #0x7a - ldrh r3, [r0] - b _08035E70 - .align 2, 0 -_08035D0C: .4byte gUnk_080CF0D8 -_08035D10: .4byte gUnk_080CF0DC -_08035D14: - adds r4, r5, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bhi _08035D28 - bl sub_0805E780 -_08035D28: - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #2 - ldrb r1, [r5, #0xb] - cmp r0, r1 - bge _08035D38 - bl sub_0805E780 -_08035D38: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAB0 - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r0, #2 - ldrb r2, [r5, #0xb] - cmp r0, r2 - bne _08035D8A - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAB0 - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - lsls r0, r3, #0xd - lsrs r3, r0, #8 - adds r4, #0x7b - ldrb r0, [r4] - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_08036914 - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] -_08035D8A: - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08035D9C - b _08035F6C -_08035D9C: - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - orrs r1, r3 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - b _08035F6C -_08035DB0: - adds r6, r5, #0 - adds r6, #0x84 - ldr r0, [r6] - ldr r0, [r0, #8] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #1 - bhi _08035DC4 - bl sub_0805E780 -_08035DC4: - adds r0, r5, #0 - bl sub_080042B8 - ldr r0, [r5, #0x50] - adds r0, #0x7c - ldrb r1, [r0] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08035E24 - adds r0, r5, #0 - adds r0, #0x7d - ldrb r1, [r0] - adds r0, r5, #0 - movs r2, #0x10 - bl sub_08036AF0 - adds r2, r5, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r3, #0x7f - adds r0, r3, #0 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #7 - bne _08035E56 - ldrb r1, [r5, #0x10] - adds r0, r3, #0 - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - str r1, [r5, #0x54] - cmp r1, #0 - beq _08035E56 - ldr r0, [r5, #0x50] - str r0, [r1, #0x50] - ldr r0, [r5, #0x54] - adds r0, #0x84 - ldr r1, [r6] - str r1, [r0] - b _08035E56 -_08035E24: - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r2, [r5, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - orrs r1, r3 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - bl sub_08036998 - adds r0, r5, #0 - adds r0, #0x7d - ldrb r1, [r0] - adds r0, r5, #0 - movs r2, #4 - bl sub_080369D0 - adds r4, r5, #0 - adds r4, #0x41 -_08035E56: - movs r0, #0 - strb r0, [r4] - adds r0, r5, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - rsbs r3, r3, #0 - movs r0, #0x80 - lsls r0, r0, #8 - eors r3, r0 -_08035E70: - adds r0, r5, #0 - bl sub_0805EC9C - b _08035F6C -_08035E78: - adds r4, r5, #0 - adds r4, #0x45 - ldrb r0, [r4] - cmp r0, #1 - bne _08035E88 - movs r0, #0 - strb r0, [r4] - b _08035F6C -_08035E88: - ldr r0, [r5, #0x50] - adds r1, r5, #0 - bl sub_0806FAD8 - ldr r0, [r5, #0x50] - ldrb r0, [r0, #0xd] - adds r7, r5, #0 - adds r7, #0x76 - adds r6, r5, #0 - adds r6, #0x79 - cmp r0, #4 - beq _08035EC2 - ldrb r0, [r4] - cmp r0, #1 - beq _08035EC2 - ldrb r0, [r6] - cmp r0, #0x1c - bls _08035EB0 - subs r0, #1 - strb r0, [r6] -_08035EB0: - ldrh r0, [r7] - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _08035EC0 - subs r0, #1 - strh r0, [r7] - b _08035EC2 -_08035EC0: - strh r1, [r7] -_08035EC2: - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r3, r0, #0 - ldrb r0, [r6] - lsls r0, r0, #8 - muls r0, r3, r0 - lsrs r3, r0, #8 - adds r4, #0x7b - ldrb r0, [r4] - adds r0, #0x80 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r0, r5, #0 - adds r2, r3, #0 - bl sub_08036914 - ldr r0, [r5, #0x50] - adds r0, #0x7b - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x7b - strb r0, [r1] - ldrh r1, [r7] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r5, #0 - bl sub_0805EC9C - adds r0, r5, #0 - bl sub_0800445C - b _08035F6C -_08035F16: - adds r0, r5, #0 - bl sub_0800445C - adds r0, r5, #0 - bl sub_08036F60 - adds r0, r5, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #0 - beq _08035F48 - subs r0, #1 - strb r0, [r1, #6] - ldr r0, _08035F74 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08035F48 - adds r0, r5, #0 - movs r1, #0xf - movs r2, #3 - bl sub_0804A98C -_08035F48: - ldr r1, _08035F78 @ =gUnk_080CF0C4 - ldrb r0, [r5, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - adds r0, r5, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r5, #0 - bl sub_0805EC9C -_08035F6C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08035F74: .4byte gUnk_030010A0 -_08035F78: .4byte gUnk_080CF0C4 - - thumb_func_start sub_08035F7C -sub_08035F7C: @ 0x08035F7C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _08035FD0 @ =gLinkEntity - ldr r0, [r2, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - rsbs r1, r1, #0 - movs r2, #0x80 - eors r1, r2 - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - movs r1, #0x20 - cmp r0, #0 - bne _08035FB6 - movs r1, #8 -_08035FB6: - cmn r2, r1 - ble _08035FEE - cmp r2, r1 - bge _08035FEE - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0xff - beq _08035FD4 - adds r0, r4, #0 - bl sub_08036C90 - b _08036074 - .align 2, 0 -_08035FD0: .4byte gLinkEntity -_08035FD4: - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0 - bne _08035FE6 - adds r0, r4, #0 - bl sub_08036E00 - b _08036028 -_08035FE6: - adds r0, r4, #0 - bl sub_08036D70 - b _08036028 -_08035FEE: - cmp r2, #0x80 - bls _0803600E - adds r2, r4, #0 - adds r2, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r0, r1 - movs r1, #0 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0, #4] - b _08036028 -_0803600E: - adds r2, r4, #0 - adds r2, #0x7a - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r2] - ldrh r1, [r1] - subs r0, r0, r1 - strh r0, [r2] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #1 - strb r0, [r1, #4] -_08036028: - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x7c - ldrb r1, [r5] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0803606C - adds r3, r4, #0 - adds r3, #0x82 - ldrh r2, [r3] - ldr r0, _08036060 @ =0x0000027F - cmp r2, r0 - bhi _0803606C - ldrb r1, [r5] - cmp r1, #1 - beq _08036064 - cmp r1, #3 - beq _08036068 - b _0803606C - .align 2, 0 -_08036060: .4byte 0x0000027F -_08036064: - adds r0, r2, #1 - b _0803606A -_08036068: - adds r0, r2, #2 -_0803606A: - strh r0, [r3] -_0803606C: - adds r0, r4, #0 - movs r1, #0x1f - bl sub_08036FAC -_08036074: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08036078 -sub_08036078: @ 0x08036078 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x79 - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080360A0 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - cmp r1, #0 - beq _080360A0 - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080360B2 -_080360A0: - adds r1, r4, #0 - adds r1, #0x78 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036D4C - b _080360BE -_080360B2: - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _080360BE - strb r0, [r5] -_080360BE: - adds r0, r4, #0 - movs r1, #0x1f - bl sub_08036FAC - pop {r4, r5, pc} - - thumb_func_start sub_080360C8 -sub_080360C8: @ 0x080360C8 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080360E4 - adds r0, r2, #0 - bl sub_08036DA0 -_080360E4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080360E8 -sub_080360E8: @ 0x080360E8 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #0 - bne _08036178 - adds r0, r4, #0 - bl sub_080AEF88 - movs r2, #0 - ldrb r0, [r4, #0x15] - cmp r0, #0 - beq _08036116 - cmp r0, #0x10 - beq _08036116 - ldrh r0, [r4, #0x2a] - movs r1, #0xee - lsls r1, r1, #8 - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r2, r0, #0x1f -_08036116: - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - beq _0803612C - cmp r0, #8 - beq _0803612C - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _0803612C - movs r2, #1 -_0803612C: - cmp r2, #0 - beq _0803617C - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0x20 - strb r0, [r1] - adds r1, #4 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - adds r0, #0x3c - strb r0, [r1, #6] - adds r0, r4, #0 - bl sub_08036C90 - movs r0, #0x3c - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - b _0803617C -_08036178: - subs r0, #1 - strb r0, [r1] -_0803617C: - adds r0, r4, #0 - movs r1, #0xf - bl sub_08036FAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08036188 -sub_08036188: @ 0x08036188 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r1, _080361EC @ =gUnk_080CF0E0 - ldrb r0, [r5, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - adds r0, r5, #0 - bl sub_08036FE4 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _080361EA - ldr r4, _080361F0 @ =gLinkEntity - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - bl sub_08078B48 - bl sub_08077B20 - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x7b - ldrb r1, [r0] - adds r1, #0x80 - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #0xe0 - lsls r2, r2, #6 - adds r0, r4, #0 - bl sub_08036914 -_080361EA: - pop {r4, r5, pc} - .align 2, 0 -_080361EC: .4byte gUnk_080CF0E0 -_080361F0: .4byte gLinkEntity - - thumb_func_start sub_080361F4 -sub_080361F4: @ 0x080361F4 - push {lr} - adds r2, r0, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #4 - bne _08036208 - adds r0, r2, #0 - bl sub_08036D4C - b _08036236 -_08036208: - adds r1, r2, #0 - adds r1, #0x82 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - movs r0, #1 - strb r0, [r2, #0xb] - subs r1, #6 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - bne _08036228 - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0x16 - b _0803622E -_08036228: - adds r1, r2, #0 - adds r1, #0x79 - movs r0, #0 -_0803622E: - strb r0, [r1] - ldr r0, _08036238 @ =0x00000155 - bl sub_080A3268 -_08036236: - pop {pc} - .align 2, 0 -_08036238: .4byte 0x00000155 - - thumb_func_start sub_0803623C -sub_0803623C: @ 0x0803623C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x74 - ldrh r0, [r1] - cmp r0, #0xbf - bhi _08036250 - adds r0, #1 - strh r0, [r1] - b _080362A0 -_08036250: - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r3] - subs r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080362A0 - adds r0, r2, #0 - adds r0, #0x7d - ldrb r1, [r0] - cmp r1, #1 - bne _08036292 - movs r0, #3 - strb r0, [r2, #0xb] - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08036280 - movs r0, #0x3c - b _08036282 -_08036280: - movs r0, #0x78 -_08036282: - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - subs r0, #9 - ldrb r0, [r0] - strb r0, [r1, #3] - b _0803629A -_08036292: - movs r0, #2 - strb r0, [r2, #0xb] - movs r0, #0x2d - strb r0, [r3] -_0803629A: - ldr r0, _080362A4 @ =0x00000155 - bl sub_080A3268 -_080362A0: - pop {pc} - .align 2, 0 -_080362A4: .4byte 0x00000155 - - thumb_func_start sub_080362A8 -sub_080362A8: @ 0x080362A8 - push {r4, lr} - adds r2, r0, #0 - movs r0, #0x79 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - cmp r0, #0 - bne _080362FA - adds r4, r2, #0 - adds r4, #0x76 - adds r1, r2, #0 - adds r1, #0x74 - ldrh r3, [r1] - ldrh r0, [r4] - cmp r0, r3 - bhs _080362D0 - adds r0, r3, #0 - subs r0, #8 - strh r0, [r1] - b _08036300 -_080362D0: - movs r0, #3 - strb r0, [r2, #0xb] - ldrh r0, [r4] - strh r0, [r1] - adds r0, r2, #0 - adds r0, #0x7d - ldrb r0, [r0] - cmp r0, #2 - beq _080362E6 - movs r0, #0x3c - b _080362FC -_080362E6: - movs r0, #0 - mov r1, ip - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x87 - movs r2, #4 - movs r3, #0 - bl sub_080A2988 - b _08036300 -_080362FA: - subs r0, #1 -_080362FC: - mov r1, ip - strb r0, [r1] -_08036300: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08036304 -sub_08036304: @ 0x08036304 - push {lr} - mov ip, r0 - ldr r0, _08036328 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0803632C - mov r2, ip - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #8 - strh r0, [r1] - b _08036350 - .align 2, 0 -_08036328: .4byte gUnk_030010A0 -_0803632C: - mov r2, ip - adds r2, #0x84 - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] - ldr r0, [r2] - ldr r0, [r0, #8] - adds r3, r0, #0 - adds r3, #0x76 - ldrh r0, [r3] - movs r1, #0xc0 - lsls r1, r1, #1 - cmp r0, r1 - bls _08036350 - strh r1, [r3] -_08036350: - mov r0, ip - adds r0, #0x7d - ldrb r1, [r0] - adds r3, r0, #0 - cmp r1, #1 - beq _0803637A - ldr r0, [r2] - ldr r0, [r0, #8] - adds r1, r0, #0 - adds r1, #0x79 - ldrb r0, [r1] - cmp r0, #0x1f - bhi _0803637A - adds r0, #1 - strb r0, [r1] - ldr r0, [r2] - ldr r1, [r0, #8] - adds r1, #0x76 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] -_0803637A: - ldr r0, _0803638C @ =gUnk_080CF0F0 - ldrb r1, [r3] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - mov r0, ip - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803638C: .4byte gUnk_080CF0F0 - - thumb_func_start sub_08036390 -sub_08036390: @ 0x08036390 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xf - movs r2, #0 - bl sub_0804A98C - str r0, [r4, #0x54] - cmp r0, #0 - beq _080363B4 - str r4, [r0, #0x50] - ldr r0, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - rsbs r1, r1, #0 - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #0x15] -_080363B4: - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, [r0, #8] - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08036C90 - pop {r4, pc} - - thumb_func_start sub_080363CC -sub_080363CC: @ 0x080363CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r7, r4, #0 - adds r7, #0x80 - ldrb r2, [r7] - cmp r2, #0 - bne _080364CC - ldr r5, _08036498 @ =gLinkEntity - ldr r0, [r5, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r5, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - adds r0, #0x80 - rsbs r0, r0, #0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r4, #0x15] - subs r3, r0, r1 - mov r8, r2 - cmp r3, #0 - bge _0803640C - rsbs r3, r3, #0 -_0803640C: - adds r6, r4, #0 - adds r6, #0x79 - cmp r3, #0xf - bgt _080364AA - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0xf0 - bl sub_0806FC80 - cmp r0, #0 - beq _080364AA - ldr r2, _0803649C @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - bne _080364A4 - ldrb r1, [r5, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080364AA - movs r1, #0xa0 - lsls r1, r1, #2 - mov r0, r8 - ldrb r2, [r0] - rsbs r2, r2, #0 - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x48 - bl sub_0806FC80 - cmp r0, #0 - beq _080364AA - movs r0, #1 - strb r0, [r7] - movs r0, #2 - strb r0, [r6] - ldr r2, _080364A0 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - movs r1, #0x84 - lsls r1, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0x10 - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldrh r1, [r2, #8] - adds r1, #0x88 - lsls r1, r1, #0x10 - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r2, r4, #0 - adds r2, #0x84 - ldr r1, [r2] - strb r0, [r1, #3] - ldr r1, [r2] - ldrb r0, [r1, #3] - adds r0, #0x80 - rsbs r0, r0, #0 - strb r0, [r1, #3] - movs r0, #0xed - bl sub_080A3268 - b _080364AA - .align 2, 0 -_08036498: .4byte gLinkEntity -_0803649C: .4byte gUnk_03003F80 -_080364A0: .4byte gUnk_03000BF0 -_080364A4: - ldr r0, _080364C4 @ =0xFFFFF7FF - ands r1, r0 - str r1, [r2, #0x30] -_080364AA: - ldr r0, _080364C8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0803657A - adds r0, r4, #0 - movs r1, #0x87 - movs r2, #2 - movs r3, #0 - bl sub_080A2988 - b _0803657A - .align 2, 0 -_080364C4: .4byte 0xFFFFF7FF -_080364C8: .4byte gUnk_030010A0 -_080364CC: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r5, #1 - adds r0, r5, #0 - ands r0, r1 - adds r3, r4, #0 - adds r3, #0x84 - cmp r0, #0 - bne _080364F0 - ldr r0, [r3] - adds r1, r4, #0 - adds r1, #0x7b - ldrb r0, [r0, #3] - mov r8, r1 - ldrb r6, [r1] - cmp r0, r6 - bne _08036570 -_080364F0: - cmp r2, #1 - bne _08036510 - movs r0, #2 - strb r0, [r7] - strb r0, [r4, #0xb] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x2d - strb r0, [r1] - adds r1, #9 - movs r2, #0 - adds r0, #0xd3 - strh r0, [r1] - ldr r0, [r3] - strb r2, [r0, #2] - b _08036652 -_08036510: - movs r0, #0 - strb r0, [r7] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - ldr r0, [r3] - ldr r1, [r0, #8] - adds r1, #0x79 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0803656C @ =gLinkEntity - ldrb r2, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - movs r2, #1 - orrs r0, r2 - strb r0, [r1, #0x18] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - adds r1, #0x38 - strb r5, [r1] - movs r0, #0x80 - lsls r0, r0, #3 - adds r1, r4, #0 - adds r1, #0x7b - ldrb r1, [r1] - adds r1, #0x80 - rsbs r1, r1, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #0x30 - bl sub_080792BC - adds r0, r4, #0 - bl sub_08036C90 - movs r0, #0xef - bl sub_080A3268 - b _08036652 - .align 2, 0 -_0803656C: .4byte gLinkEntity -_08036570: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #2 - strb r0, [r1] - adds r6, r1, #0 -_0803657A: - ldrb r0, [r6] - cmp r0, #0 - bne _08036598 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x74 - movs r2, #0 - strh r0, [r1] - strb r2, [r4, #0xb] - adds r0, r4, #0 - bl sub_08036C90 - b _08036652 -_08036598: - subs r2, r0, #1 - strb r2, [r6] - ldr r0, _080365E4 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - bne _080365F8 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bne _080365F8 - ldr r2, _080365E8 @ =gLinkEntity - ldr r0, [r2, #0x2c] - ldr r1, [r4, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r4, #0x30] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - mov r7, r8 - ldrb r2, [r7] - rsbs r0, r2, #0 - movs r1, #0x80 - eors r0, r1 - subs r0, r3, r0 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _080365EC - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - adds r0, #0x30 - b _080365F6 - .align 2, 0 -_080365E4: .4byte gUnk_03003F80 -_080365E8: .4byte gLinkEntity -_080365EC: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - subs r0, #0x30 -_080365F6: - strb r0, [r1, #3] -_080365F8: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r5, #1 - adds r2, r5, #0 - ands r2, r0 - cmp r2, #0 - bne _08036652 - adds r3, r4, #0 - adds r3, #0x84 - ldr r1, [r3] - ldrb r0, [r1, #3] - mov r6, r8 - ldrb r6, [r6] - cmp r0, r6 - beq _08036650 - strb r5, [r1, #2] - ldr r0, [r3] - ldrb r0, [r0, #3] - mov r7, r8 - ldrb r1, [r7] - subs r0, r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _0803663E - adds r2, r4, #0 - adds r2, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r2] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2] - b _08036652 -_0803663E: - adds r1, r4, #0 - adds r1, #0x7a - adds r0, r4, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - b _08036652 -_08036650: - strb r2, [r1, #2] -_08036652: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08036658 -sub_08036658: @ 0x08036658 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x79 - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #0xff - bne _08036678 - movs r0, #0 - strb r0, [r5, #0xb] - adds r0, r5, #0 - bl sub_08036C90 - movs r0, #0x78 - strb r0, [r4] - b _080366AC -_08036678: - adds r0, r1, #1 - strb r0, [r4] - movs r0, #1 - rsbs r0, r0, #0 - bl sub_0805308C - ldr r0, _080366B0 @ =gUnk_030010A0 - ldr r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080366AC - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _080366A0 - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 -_080366A0: - adds r0, r5, #0 - movs r1, #0x87 - movs r2, #3 - movs r3, #0 - bl sub_080A2988 -_080366AC: - pop {r4, r5, pc} - .align 2, 0 -_080366B0: .4byte gUnk_030010A0 - - thumb_func_start sub_080366B4 -sub_080366B4: @ 0x080366B4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - bne _080366D4 - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0, #2] - adds r0, r4, #0 - bl sub_08036C90 - b _08036706 -_080366D4: - subs r0, #1 - strb r0, [r2] - ldr r0, _08036708 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08036706 - adds r0, r4, #0 - movs r1, #0xf - movs r2, #2 - bl sub_0804A98C - str r0, [r4, #0x54] - cmp r0, #0 - beq _08036706 - str r4, [r0, #0x50] - ldr r2, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - strb r0, [r2, #0x15] -_08036706: - pop {r4, pc} - .align 2, 0 -_08036708: .4byte gUnk_030010A0 - - thumb_func_start sub_0803670C -sub_0803670C: @ 0x0803670C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803675C @ =gUnk_080CF100 - ldrb r0, [r4, #0xd] - 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, #0x84 - ldr r1, [r0] - ldrb r0, [r1, #6] - cmp r0, #0 - beq _08036746 - subs r0, #1 - strb r0, [r1, #6] - ldr r0, _08036760 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08036746 - adds r0, r4, #0 - movs r1, #0xf - movs r2, #3 - bl sub_0804A98C -_08036746: - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - subs r0, #2 - ldrh r2, [r0] - adds r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - bl sub_0805EC9C - pop {r4, pc} - .align 2, 0 -_0803675C: .4byte gUnk_080CF100 -_08036760: .4byte gUnk_030010A0 - - thumb_func_start sub_08036764 -sub_08036764: @ 0x08036764 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strh r1, [r4, #0x2a] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x78 - strb r0, [r1] - adds r1, #9 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080368D8 - adds r0, r4, #0 - bl sub_080367B0 - pop {r4, pc} - - thumb_func_start sub_080367B0 -sub_080367B0: @ 0x080367B0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080AEF88 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0803683A - movs r0, #2 - strb r0, [r4, #0xd] - adds r3, r4, #0 - adds r3, #0x84 - ldr r1, [r3] - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - strb r0, [r1, #3] - ldrh r1, [r4, #0x2a] - movs r0, #0xee - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080367E4 - ldr r1, [r3] - ldrb r0, [r1, #3] - rsbs r0, r0, #0 - strb r0, [r1, #3] -_080367E4: - ldrh r1, [r4, #0x2a] - movs r0, #0xee - ands r0, r1 - cmp r0, #0 - beq _080367FE - ldr r0, [r3] - ldrb r1, [r0, #3] - rsbs r1, r1, #0 - movs r5, #0x80 - rsbs r5, r5, #0 - adds r2, r5, #0 - eors r1, r2 - strb r1, [r0, #3] -_080367FE: - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0x18 - strb r0, [r1] - adds r1, #4 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1] - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - ldr r1, [r3] - ldrb r0, [r1, #6] - adds r0, #0x1e - strb r0, [r1, #6] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 -_0803683A: - adds r1, r4, #0 - adds r1, #0x79 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08036852 - subs r1, #0x34 - movs r0, #0 - strb r0, [r1] -_08036852: - ldr r0, _08036868 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08036864 - ldr r0, _0803686C @ =0x00000159 - bl sub_080A3268 -_08036864: - pop {r4, r5, pc} - .align 2, 0 -_08036868: .4byte gUnk_030010A0 -_0803686C: .4byte 0x00000159 - - thumb_func_start sub_08036870 -sub_08036870: @ 0x08036870 - push {lr} - adds r3, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - ldrb r1, [r0, #3] - movs r0, #0x7b - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - subs r1, r1, r0 - adds r0, r1, #7 - cmp r0, #0xe - bhi _080368AA - movs r2, #0 - movs r0, #1 - strb r0, [r3, #0xd] - mov r1, ip - ldrb r0, [r1] - rsbs r0, r0, #0 - movs r1, #0x80 - eors r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - strb r0, [r3, #0x15] - strh r2, [r3, #0x2a] - adds r0, r3, #0 - bl sub_080AEF88 - b _080368D4 -_080368AA: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x80 - bls _080368C4 - adds r2, r3, #0 - adds r2, #0x7a - adds r0, r3, #0 - adds r0, #0x82 - ldrh r1, [r2] - ldrh r0, [r0] - subs r1, r1, r0 - strh r1, [r2] - b _080368D4 -_080368C4: - adds r1, r3, #0 - adds r1, #0x7a - adds r0, r3, #0 - adds r0, #0x82 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_080368D4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080368D8 -sub_080368D8: @ 0x080368D8 - push {lr} - adds r3, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _08036902 - ldr r2, _08036910 @ =gLinkEntity - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r2, #0x38 - movs r0, #1 - strb r0, [r2] -_08036902: - adds r0, r3, #0 - adds r0, #0x76 - movs r1, #0xa0 - strh r1, [r0] - subs r0, #2 - strh r1, [r0] - pop {pc} - .align 2, 0 -_08036910: .4byte gLinkEntity - - thumb_func_start sub_08036914 -sub_08036914: @ 0x08036914 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - ldr r0, _08036994 @ =gUnk_080C9160 - mov sb, r0 - lsls r0, r4, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r6, r6, #0x10 - asrs r6, r6, #0x10 - adds r1, r6, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - mov r8, r1 - bl sub_0806FA04 - ldr r1, [r5, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r5, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r6, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - bl sub_0806FA04 - ldr r2, [r5, #0x50] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r2, #0x30] - subs r1, r1, r0 - str r1, [r5, #0x30] - adds r2, #0x62 - ldrb r0, [r2] - adds r1, r5, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r5, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - adds r5, #0x63 - strb r0, [r5] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_08036994: .4byte gUnk_080C9160 - - thumb_func_start sub_08036998 -sub_08036998: @ 0x08036998 - push {r4, lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x79 - ldrb r0, [r2, #0xf] - ldrb r4, [r3] - adds r1, r0, r4 - strb r1, [r3] - ldrb r4, [r2, #0xf] - movs r0, #0xf - ldrsb r0, [r2, r0] - cmp r0, #0 - bge _080369BE - ldrb r0, [r2, #0xe] - lsls r1, r1, #0x18 - lsls r0, r0, #0x18 - cmn r1, r0 - bge _080369CC - b _080369C8 -_080369BE: - movs r0, #0 - ldrsb r0, [r3, r0] - ldrb r1, [r2, #0xe] - cmp r0, r1 - ble _080369CC -_080369C8: - rsbs r0, r4, #0 - strb r0, [r2, #0xf] -_080369CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080369D0 -sub_080369D0: @ 0x080369D0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov ip, r1 - adds r6, r2, #0 - adds r1, r0, #0 - adds r1, #0x84 - ldr r4, [r1] - ldr r2, [r4, #0xc] - ldrb r1, [r4, #1] - subs r1, #1 - lsls r1, r1, #2 - adds r3, r4, #0 - adds r3, #0xc - adds r1, r3, r1 - ldr r1, [r1] - adds r1, #0x7b - adds r0, #0x79 - ldrb r0, [r0] - ldrb r1, [r1] - adds r0, r0, r1 - adds r2, #0x7b - strb r0, [r2] - ldrb r0, [r4, #1] - movs r2, #0 - cmp r0, #1 - beq _08036A58 - adds r5, r3, #0 - lsls r0, r6, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - rsbs r0, r6, #0 - lsls r0, r0, #0x18 - asrs r7, r0, #0x18 -_08036A16: - lsls r0, r2, #2 - adds r0, r5, r0 - ldr r1, [r0] - adds r1, #0x7b - adds r2, #1 - lsls r0, r2, #2 - adds r0, r5, r0 - ldr r0, [r0] - adds r3, r0, #0 - adds r3, #0x7b - ldrb r1, [r1] - ldrb r0, [r3] - cmp r1, r0 - beq _08036A4C - subs r0, r0, r1 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08036A44 - cmp r0, r8 - ble _08036A4C - adds r0, r1, r6 - b _08036A4A -_08036A44: - cmp r0, r7 - bge _08036A4C - subs r0, r1, r6 -_08036A4A: - strb r0, [r3] -_08036A4C: - ldrb r0, [r4, #1] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r2, r0 - blo _08036A16 -_08036A58: - ldrb r0, [r4, #1] - subs r2, r0, #1 - cmp r2, #0 - beq _08036AE4 - ldr r0, _08036AEC @ =gUnk_080C9160 - mov sb, r0 - movs r1, #0x80 - mov r8, r1 - mov r1, ip - lsls r0, r1, #0x14 - asrs r6, r0, #0x10 - lsls r0, r2, #2 - adds r0, #8 - adds r5, r0, r4 - movs r7, #0x80 - lsls r7, r7, #1 -_08036A78: - subs r4, r2, #1 - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - mov r1, r8 - eors r0, r1 - lsls r0, r0, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r6, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - ldr r2, [r5] - ldr r1, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - mov r1, r8 - eors r0, r1 - adds r0, #0x40 - lsls r0, r0, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - adds r1, r6, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r7, #0 - bl sub_0806FA04 - ldr r2, [r5] - ldr r1, [r5, #4] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r2, #0x30] - subs r5, #4 - adds r2, r4, #0 - cmp r2, #0 - bne _08036A78 -_08036AE4: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036AEC: .4byte gUnk_080C9160 - - thumb_func_start sub_08036AF0 -sub_08036AF0: @ 0x08036AF0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0xc - str r1, [sp] - mov r8, r2 - adds r0, #0x84 - ldr r0, [r0] - str r0, [sp, #4] - ldrb r0, [r0, #1] - subs r4, r0, #1 - cmp r4, #0 - bne _08036B10 - b _08036C80 -_08036B10: - ldr r0, [sp, #4] - adds r0, #0xc - str r0, [sp, #8] - lsls r0, r1, #0x14 - asrs r0, r0, #0x10 - mov sl, r0 -_08036B1C: - mov r1, r8 - cmp r1, #0 - bne _08036BC0 - lsls r0, r4, #2 - ldr r2, [sp, #8] - adds r6, r2, r0 - ldr r0, [r6] - subs r4, #1 - lsls r1, r4, #2 - adds r5, r2, r1 - ldr r2, [r5] - movs r3, #0x2e - ldrsh r1, [r2, r3] - movs r3, #0x32 - ldrsh r2, [r2, r3] - bl sub_080041DC - mov sb, r4 - ldr r1, [sp] - cmp r1, r0 - blo _08036B48 - b _08036C78 -_08036B48: - ldr r2, [r5] - ldr r3, [r6] - ldr r0, [r2, #0x2c] - ldr r1, [r3, #0x2c] - subs r0, r0, r1 - ldr r1, [r2, #0x30] - ldr r2, [r3, #0x30] - subs r1, r1, r2 - bl sub_080045DA - ldr r1, [r5] - adds r1, #0x7b - strb r0, [r1] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #1 - ldr r2, _08036BBC @ =gUnk_080C9160 - adds r0, r0, r2 - movs r3, #0 - ldrsh r0, [r0, r3] - mov r1, sl - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0806FA04 - ldr r2, [r5] - ldr r1, [r6] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r5] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x40 - lsls r0, r0, #1 - ldr r1, _08036BBC @ =gUnk_080C9160 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r1, sl - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0806FA04 - ldr r2, [r5] - ldr r1, [r6] - b _08036C6E - .align 2, 0 -_08036BBC: .4byte gUnk_080C9160 -_08036BC0: - subs r2, r4, #1 - lsls r0, r2, #2 - ldr r3, [sp, #8] - adds r0, r3, r0 - ldr r0, [r0] - adds r5, r0, #0 - adds r5, #0x7b - lsls r1, r4, #2 - adds r0, r3, r1 - ldr r0, [r0] - adds r0, #0x7b - ldrb r4, [r5] - ldrb r3, [r0] - adds r7, r1, #0 - ldr r6, [sp, #4] - adds r6, #0xc - mov sb, r2 - cmp r4, r3 - beq _08036C0E - subs r0, r3, r4 - lsls r0, r0, #0x18 - asrs r1, r0, #0x18 - cmp r1, #0 - ble _08036BFE - mov r2, r8 - lsls r0, r2, #0x18 - lsrs r0, r0, #0x18 - cmp r1, r0 - ble _08036C0E - subs r0, r3, r2 - b _08036C0C -_08036BFE: - mov r2, r8 - rsbs r0, r2, #0 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r1, r0 - bge _08036C0E - adds r0, r3, r2 -_08036C0C: - strb r0, [r5] -_08036C0E: - mov r3, sb - lsls r4, r3, #2 - adds r4, r6, r4 - ldr r0, [r4] - adds r0, #0x7b - ldrb r0, [r0] - lsls r0, r0, #1 - ldr r1, _08036C8C @ =gUnk_080C9160 - adds r0, r0, r1 - movs r2, #0 - ldrsh r0, [r0, r2] - mov r1, sl - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0806FA04 - ldr r2, [r4] - adds r5, r6, r7 - ldr r1, [r5] - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x2c] - adds r1, r1, r0 - str r1, [r2, #0x2c] - ldr r0, [r4] - adds r0, #0x7b - ldrb r0, [r0] - adds r0, #0x40 - lsls r0, r0, #1 - ldr r3, _08036C8C @ =gUnk_080C9160 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - mov r1, sl - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #1 - bl sub_0806FA04 - ldr r2, [r4] - ldr r1, [r5] -_08036C6E: - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r1, #0x30] - subs r1, r1, r0 - str r1, [r2, #0x30] -_08036C78: - mov r4, sb - cmp r4, #0 - beq _08036C80 - b _08036B1C -_08036C80: - add sp, #0xc - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036C8C: .4byte gUnk_080C9160 - - thumb_func_start sub_08036C90 -sub_08036C90: @ 0x08036C90 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r2, [r0] - cmp r2, #4 - bne _08036CDC - adds r3, r4, #0 - adds r3, #0x81 - ldrb r0, [r3] - cmp r0, #0xff - beq _08036CDC - movs r1, #0 - strb r2, [r4, #0xd] - strb r1, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - ldr r1, _08036CFC @ =gUnk_080CF124 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r2, r4, #0 - adds r2, #0x7e - ldrb r1, [r2] - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldrb r0, [r1] - cmp r0, #5 - bne _08036D42 - movs r0, #0xff - strb r0, [r3] -_08036CDC: - movs r0, #3 - strb r0, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x7c - ldrb r1, [r2] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08036D14 - ldrb r1, [r2] - cmp r1, #1 - beq _08036D00 - cmp r1, #3 - beq _08036D0A - b _08036D42 - .align 2, 0 -_08036CFC: .4byte gUnk_080CF124 -_08036D00: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x1e - strb r0, [r1] - b _08036D42 -_08036D0A: - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0xa - strb r0, [r1] - b _08036D42 -_08036D14: - ldr r0, _08036D2C @ =gUnk_02034350 - movs r2, #0xc - ldrsh r1, [r0, r2] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036D30 - adds r0, r4, #0 - adds r0, #0x79 - strb r3, [r0] - b _08036D42 - .align 2, 0 -_08036D2C: .4byte gUnk_02034350 -_08036D30: - ldr r0, _08036D44 @ =gUnk_080CF10C - bl sub_080028F4 - ldr r1, _08036D48 @ =gUnk_080CF110 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] -_08036D42: - pop {r4, pc} - .align 2, 0 -_08036D44: .4byte gUnk_080CF10C -_08036D48: .4byte gUnk_080CF110 - - thumb_func_start sub_08036D4C -sub_08036D4C: @ 0x08036D4C - mov ip, r0 - mov r1, ip - adds r1, #0x82 - movs r3, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1] - mov r2, ip - adds r2, #0x84 - ldr r1, [r2] - movs r0, #2 - strb r0, [r1] - ldr r1, [r2] - movs r0, #0xff - strb r0, [r1, #4] - mov r0, ip - strb r3, [r0, #0xd] - bx lr - - thumb_func_start sub_08036D70 -sub_08036D70: @ 0x08036D70 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - strb r1, [r4, #0xd] - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r1, [r0] - ldr r0, _08036D98 @ =gUnk_080CF134 - bl sub_080028F4 - ldr r1, _08036D9C @ =gUnk_080CF138 - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, #0x79 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08036D98: .4byte gUnk_080CF134 -_08036D9C: .4byte gUnk_080CF138 - - thumb_func_start sub_08036DA0 -sub_08036DA0: @ 0x08036DA0 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - movs r2, #1 - ands r2, r0 - cmp r2, #0 - bne _08036DF0 - ldr r0, _08036DD0 @ =gUnk_02034350 - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036DD4 - adds r0, r4, #0 - adds r0, #0x78 - strb r2, [r0] - b _08036DF8 - .align 2, 0 -_08036DD0: .4byte gUnk_02034350 -_08036DD4: - ldr r0, _08036DE8 @ =gUnk_080CF13C - bl sub_080028F4 - ldr r1, _08036DEC @ =gUnk_080CF13F - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x78 - strb r1, [r0] - b _08036DF8 - .align 2, 0 -_08036DE8: .4byte gUnk_080CF13C -_08036DEC: .4byte gUnk_080CF13F -_08036DF0: - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0 - strb r0, [r1] -_08036DF8: - adds r0, r4, #0 - bl sub_08036D4C - pop {r4, pc} - - thumb_func_start sub_08036E00 -sub_08036E00: @ 0x08036E00 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #4 - adds r4, r0, #0 - movs r2, #0 - movs r0, #4 - strb r0, [r4, #0xd] - strb r2, [r4, #0xb] - adds r7, r4, #0 - adds r7, #0x81 - movs r0, #0xff - strb r0, [r7] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r6, r4, #0 - adds r6, #0x84 - ldr r0, [r6] - strb r2, [r0, #2] - movs r0, #0x7c - adds r0, r0, r4 - mov r8, r0 - ldrb r5, [r0] - cmp r5, #0 - bne _08036E3E - adds r0, r4, #0 - adds r0, #0x7d - strb r2, [r0] - b _08036F00 -_08036E3E: - cmp r5, #4 - bne _08036ECC - str r2, [sp] - bl sub_08000E50 - movs r1, #3 - mov sb, r1 - ands r0, r1 - ldr r2, [sp] - cmp r0, #0 - beq _08036E62 - ldr r0, _08036E84 @ =gUnk_02034350 - movs r3, #0xc - ldrsh r1, [r0, r3] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _08036E8C -_08036E62: - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x79 - movs r0, #0x3c - strb r0, [r1] - strh r2, [r4, #0x2a] - ldr r0, [r6] - strb r5, [r0] - ldr r0, _08036E88 @ =0x00000159 - bl sub_080A3268 - b _08036F00 - .align 2, 0 -_08036E84: .4byte gUnk_02034350 -_08036E88: .4byte 0x00000159 -_08036E8C: - mov r1, r8 - ldrb r0, [r1] - cmp r0, #4 - bne _08036ECC - adds r0, r4, #0 - adds r0, #0x7e - strb r2, [r0] - bl sub_08000E50 - adds r1, r0, #0 - mov r3, sb - ands r1, r3 - ldr r0, [r6] - ldrb r0, [r0, #5] - cmp r0, r1 - beq _08036EB0 - strb r1, [r7] - b _08036EB8 -_08036EB0: - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r7] -_08036EB8: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - subs r0, #3 - ldrb r0, [r0] - strb r0, [r1, #5] - adds r0, r4, #0 - bl sub_08036C90 - b _08036F00 -_08036ECC: - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - ldr r1, _08036F0C @ =gUnk_080CF147 - cmp r0, #0 - bne _08036EDE - ldr r1, _08036F10 @ =gUnk_080CF142 -_08036EDE: - adds r2, r4, #0 - adds r2, #0x7e - ldrb r0, [r2] - adds r0, r1, r0 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x7d - strb r1, [r0] - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #4 - bls _08036F00 - movs r0, #0 - strb r0, [r2] -_08036F00: - add sp, #4 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08036F0C: .4byte gUnk_080CF147 -_08036F10: .4byte gUnk_080CF142 - - thumb_func_start sub_08036F14 -sub_08036F14: @ 0x08036F14 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r4, #0x84 - ldr r0, [r4] - ldr r0, [r0, #8] - bl sub_0801D2B4 - movs r5, #0 - adds r7, r4, #0 -_08036F28: - ldr r0, [r7] - lsls r1, r5, #2 - adds r0, #0x20 - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r6, #0 - bl sub_0801D2B4 - adds r5, #1 - cmp r5, #3 - bls _08036F28 - ldr r0, [r4] - ldrb r0, [r0, #1] - subs r5, r0, #1 - cmp r5, #0 - beq _08036F5E -_08036F48: - ldr r0, [r4] - lsls r1, r5, #2 - adds r0, #0xc - adds r0, r0, r1 - ldr r0, [r0] - adds r1, r6, #0 - bl sub_0801D2B4 - subs r5, #1 - cmp r5, #0 - bne _08036F48 -_08036F5E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08036F60 -sub_08036F60: @ 0x08036F60 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #4 - beq _08036FA8 - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r4, #1 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - bne _08036FA8 - adds r3, r2, #0 - adds r3, #0x76 - movs r0, #0xe - ldrsb r0, [r2, r0] - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - adds r1, r2, #0 - adds r1, #0x74 - movs r0, #0xe - ldrsb r0, [r2, r0] - ldrh r5, [r1] - adds r0, r0, r5 - strh r0, [r1] - ldrh r0, [r3] - cmp r0, #0x9b - bhi _08036FA0 - strb r4, [r2, #0xe] - b _08036FA8 -_08036FA0: - cmp r0, #0xa4 - bls _08036FA8 - movs r0, #0xff - strb r0, [r2, #0xe] -_08036FA8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08036FAC -sub_08036FAC: @ 0x08036FAC - push {lr} - adds r2, r0, #0 - ldr r0, _08036FD0 @ =gUnk_030010A0 - ldr r0, [r0] - ands r0, r1 - cmp r0, #0 - bne _08036FDE - adds r0, r2, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08036FD8 - ldr r0, _08036FD4 @ =0x00000163 - bl sub_080A3268 - b _08036FDE - .align 2, 0 -_08036FD0: .4byte gUnk_030010A0 -_08036FD4: .4byte 0x00000163 -_08036FD8: - ldr r0, _08036FE0 @ =0x000001B1 - bl sub_080A3268 -_08036FDE: - pop {pc} - .align 2, 0 -_08036FE0: .4byte 0x000001B1 - - thumb_func_start sub_08036FE4 -sub_08036FE4: @ 0x08036FE4 - push {r4, r5, lr} - adds r2, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08037048 - adds r0, r2, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08037048 - adds r0, r2, #0 - adds r0, #0x82 - ldrh r3, [r0] - adds r4, r0, #0 - cmp r3, #0 - beq _08037048 - adds r0, #2 - ldr r0, [r0] - ldrb r0, [r0, #4] - cmp r0, #0xff - beq _0803702C - cmp r0, #0 - bne _08037022 - adds r1, r2, #0 - adds r1, #0x7a - ldrh r5, [r1] - adds r0, r3, r5 - b _0803702A -_08037022: - adds r1, r2, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, r0, r3 -_0803702A: - strh r0, [r1] -_0803702C: - adds r0, r2, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #1 - beq _0803703C - cmp r0, #3 - beq _08037042 - b _08037048 -_0803703C: - ldrh r0, [r4] - subs r0, #1 - b _08037046 -_08037042: - ldrh r0, [r4] - subs r0, #2 -_08037046: - strh r0, [r4] -_08037048: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803704C -sub_0803704C: @ 0x0803704C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _08037070 - ldr r0, _0803706C @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08037084 - .align 2, 0 -_0803706C: .4byte gUnk_080012C8 -_08037070: - ldr r4, _08037088 @ =gUnk_080CF244 - 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 -_08037084: - pop {r4, r5, pc} - .align 2, 0 -_08037088: .4byte gUnk_080CF244 - - thumb_func_start sub_0803708C -sub_0803708C: @ 0x0803708C - push {lr} - ldr r2, _080370A0 @ =gUnk_080CF25C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080370A0: .4byte gUnk_080CF25C - - thumb_func_start sub_080370A4 -sub_080370A4: @ 0x080370A4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08037418 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _08037110 - movs r0, #6 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0803710C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _0803711E - .align 2, 0 -_0803710C: .4byte gUnk_03000BF0 -_08037110: - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _0803711E - adds r0, r5, #0 - bl sub_08037408 -_0803711E: - ldr r1, _08037128 @ =gUnk_080CF244 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08037128: .4byte gUnk_080CF244 - - thumb_func_start sub_0803712C -sub_0803712C: @ 0x0803712C - push {lr} - ldr r2, _08037140 @ =gUnk_080CF278 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08037140: .4byte gUnk_080CF278 - - thumb_func_start sub_08037144 -sub_08037144: @ 0x08037144 - push {r4, lr} - adds r4, r0, #0 - bl sub_08037418 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r1, [r4, #0xe] - movs r0, #0x30 - strb r0, [r4, #0x1d] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803715C -sub_0803715C: @ 0x0803715C - push {r4, lr} - adds r4, r0, #0 - bl sub_08037418 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08037176 - adds r0, r4, #0 - bl sub_0806F4E8 - b _0803718A -_08037176: - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _0803718A - adds r0, r4, #0 - bl sub_08037408 -_0803718A: - pop {r4, pc} - - thumb_func_start sub_0803718C -sub_0803718C: @ 0x0803718C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xe] - cmp r4, #0 - bne _080371DA - bl sub_08037418 - movs r0, #1 - strb r0, [r5, #0xe] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x62 - strb r4, [r0] - adds r0, #0x12 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080371EC @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_080371DA: - adds r0, r5, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080371F0 - adds r0, r5, #0 - bl sub_0806F3E4 - b _080371F6 - .align 2, 0 -_080371EC: .4byte gUnk_03000BF0 -_080371F0: - adds r0, r5, #0 - bl sub_08037408 -_080371F6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080371F8 -sub_080371F8: @ 0x080371F8 - push {lr} - adds r2, r0, #0 - ldr r0, _08037210 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0803720E - adds r0, r2, #0 - bl sub_08037408 -_0803720E: - pop {pc} - .align 2, 0 -_08037210: .4byte gUnk_03003F80 - - thumb_func_start nullsub_161 -nullsub_161: @ 0x08037214 - bx lr - .align 2, 0 - - thumb_func_start sub_08037218 -sub_08037218: @ 0x08037218 - push {lr} - bl sub_08037408 - pop {pc} - - thumb_func_start sub_08037220 -sub_08037220: @ 0x08037220 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #2 - strb r0, [r5, #0x1c] - ldrh r0, [r5, #0x32] - adds r0, #3 - strh r0, [r5, #0x32] - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r1, _0803727C @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r5, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x74 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #7 - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r5, #0 - movs r1, #5 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_0803727C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08037280 -sub_08037280: @ 0x08037280 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08037418 - adds r0, r5, #0 - bl sub_080002A0 - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, r1 - beq _080372CC - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _080372E4 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r5, #0 - bl sub_08037408 -_080372CC: - adds r0, r5, #0 - movs r1, #1 - movs r2, #0x40 - bl sub_08049F64 - cmp r0, #0 - beq _080372E2 - movs r0, #2 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xe] -_080372E2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080372E4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080372E8 -sub_080372E8: @ 0x080372E8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08037418 - adds r3, r5, #0 - adds r3, #0x62 - ldr r2, _08037370 @ =gUnk_080CF290 - ldrb r1, [r5, #0xe] - movs r6, #3 - adds r0, r6, #0 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0803736E - strb r6, [r5, #0xc] - adds r2, r5, #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] - strb r4, [r3] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xa0 - strb r0, [r1] - subs r1, #4 - movs r0, #0xf - strb r0, [r1] - ldr r0, _08037374 @ =gUnk_080FD34C - str r0, [r5, #0x48] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08037378 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0803736E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08037370: .4byte gUnk_080CF290 -_08037374: .4byte gUnk_080FD34C -_08037378: .4byte gUnk_03000BF0 - - thumb_func_start sub_0803737C -sub_0803737C: @ 0x0803737C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x34] - ldr r1, _080373A8 @ =0xFFFF0000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _080373A6 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r1, _080373AC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_080373A6: - pop {r4, pc} - .align 2, 0 -_080373A8: .4byte 0xFFFF0000 -_080373AC: .4byte gLinkEntity - - thumb_func_start sub_080373B0 -sub_080373B0: @ 0x080373B0 - 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 _080373C4 - movs r0, #5 - strb r0, [r1, #0xc] -_080373C4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080373C8 -sub_080373C8: @ 0x080373C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _080373DC - adds r0, r4, #0 - bl sub_08037408 -_080373DC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080373E0 -sub_080373E0: @ 0x080373E0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _080373F2 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_080373F2: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08037406 - adds r0, r4, #0 - bl sub_08037408 -_08037406: - pop {r4, pc} - - thumb_func_start sub_08037408 -sub_08037408: @ 0x08037408 - push {lr} - movs r1, #5 - movs r2, #0 - bl CreateFX - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_08037418 -sub_08037418: @ 0x08037418 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _08037464 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - ldr r1, _08037468 @ =0x00004067 - cmp r0, r1 - bne _08037460 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - bl sub_0805E780 -_08037460: - pop {r4, r5, r6, pc} - .align 2, 0 -_08037464: .4byte gUnk_03000BF0 -_08037468: .4byte 0x00004067 - - thumb_func_start sub_0803746C -sub_0803746C: @ 0x0803746C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08037488 @ =gUnk_080CF294 - bl sub_0800129E - movs r3, #0x15 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08037488: .4byte gUnk_080CF294 - - thumb_func_start sub_0803748C -sub_0803748C: @ 0x0803748C - push {lr} - ldr r2, _080374A0 @ =gUnk_080CF2AC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080374A0: .4byte gUnk_080CF2AC - - thumb_func_start sub_080374A4 -sub_080374A4: @ 0x080374A4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r2, [r0] - cmp r2, #0x87 - bne _080374D4 - ldrb r0, [r4, #0xc] - cmp r0, #6 - bne _080374BC - adds r0, r4, #0 - bl sub_08037ACC -_080374BC: - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_08037B48 - b _08037534 -_080374D4: - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #6 - beq _0803752E - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x27 - bne _080374F2 - cmp r2, #0x80 - bne _080374F2 - adds r0, r4, #0 - bl sub_08037A14 - b _08037534 -_080374F2: - subs r0, r1, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08037534 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - movs r1, #0x10 - eors r0, r1 - adds r0, #4 - 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 sub_080042AC - adds r0, r4, #0 - bl sub_08037810 - cmp r0, #0 - beq _08037534 - movs r0, #4 - strb r0, [r4, #0xe] - b _08037534 -_0803752E: - adds r0, r4, #0 - bl sub_08037A58 -_08037534: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08037546 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08037546: - ldr r1, _08037550 @ =gUnk_080CF294 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08037550: .4byte gUnk_080CF294 - - thumb_func_start nullsub_162 -nullsub_162: @ 0x08037554 - bx lr - .align 2, 0 - - thumb_func_start sub_08037558 -sub_08037558: @ 0x08037558 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x76 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, r4, #0 - bl sub_08037794 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037580 -sub_08037580: @ 0x08037580 - push {r4, lr} - adds r4, r0, #0 - bl sub_08037810 - cmp r0, #0 - bne _080375A2 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080375A2 - adds r0, r4, #0 - bl sub_080377B0 -_080375A2: - pop {r4, pc} - - thumb_func_start sub_080375A4 -sub_080375A4: @ 0x080375A4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080378B0 - cmp r0, #0 - bne _080375F4 - adds r0, r4, #0 - bl sub_08037810 - cmp r0, #0 - bne _080375F4 - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080375D2 - adds r0, r4, #0 - bl sub_08037794 - b _080375F4 -_080375D2: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _080375F4 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080375F4 - adds r0, r4, #0 - bl sub_080379BC -_080375F4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080375F8 -sub_080375F8: @ 0x080375F8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080378B0 - cmp r0, #0 - bne _08037622 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037622 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x18 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_08037622: - pop {r4, pc} - - thumb_func_start sub_08037624 -sub_08037624: @ 0x08037624 - push {r4, lr} - adds r4, r0, #0 - bl sub_080378B0 - cmp r0, #0 - bne _0803768E - adds r0, r4, #0 - bl sub_08037914 - cmp r0, #0 - bne _0803768E - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08037652 - adds r0, r4, #0 - bl sub_08037794 - b _0803768E -_08037652: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803767C - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803768E - adds r0, r4, #0 - bl sub_080379BC - b _0803768E -_0803767C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803768E - adds r0, r4, #0 - bl sub_0803797C -_0803768E: - pop {r4, pc} - - thumb_func_start sub_08037690 -sub_08037690: @ 0x08037690 - 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 _080376B6 - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #0x14 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08037794 - b _080376CC -_080376B6: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080376CC - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x27 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080AEF88 -_080376CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080376D0 -sub_080376D0: @ 0x080376D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080379EC - cmp r0, #0 - bne _0803773A - bl sub_08077B2C - ldr r2, _08037724 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r0, _08037728 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA6C - adds r0, r4, #0 - bl sub_080042B8 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0803773A - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803772C - adds r0, r4, #0 - bl sub_08037A58 - b _0803773A - .align 2, 0 -_08037724: .4byte gUnk_03003F80 -_08037728: .4byte gLinkEntity -_0803772C: - ldrb r0, [r2] - movs r1, #1 - eors r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08037B10 -_0803773A: - pop {r4, pc} - - thumb_func_start sub_0803773C -sub_0803773C: @ 0x0803773C - 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 _08037758 - adds r0, r4, #0 - bl sub_08037794 -_08037758: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803775C -sub_0803775C: @ 0x0803775C - 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 _08037790 - movs r0, #0x42 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0803778A - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0804A4E4 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08037C0C -_0803778A: - adds r0, r5, #0 - bl sub_0805E7BC -_08037790: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08037794 -sub_08037794: @ 0x08037794 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x74 - movs r1, #0x1e - strh r1, [r2] - subs r2, #0x35 - movs r1, #0x26 - strb r1, [r2] - ldrb r1, [r0, #0x14] - bl sub_080042AC - pop {pc} - - thumb_func_start sub_080377B0 -sub_080377B0: @ 0x080377B0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xf] - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x74 - strh r0, [r1] - movs r0, #0x40 - strh r0, [r4, #0x24] - bl sub_08000E50 - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _080377F8 - movs r0, #3 - ands r0, r5 - cmp r0, #0 - beq _080377F8 - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - b _080377FE -_080377F8: - movs r0, #0x18 - ands r5, r0 - strb r5, [r4, #0x15] -_080377FE: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, r5, pc} - - thumb_func_start sub_08037810 -sub_08037810: @ 0x08037810 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r1, r5, #0 - adds r1, #0x76 - ldrb r0, [r1] - cmp r0, #0 - bne _080378A8 - adds r0, r5, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080378AC - ldr r6, _080378A4 @ =gUnk_020000B0 - ldr r0, [r6] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r5, #0 - movs r3, #0x40 - bl sub_0806FCB8 - cmp r0, #0 - beq _080378AC - ldr r1, [r6] - adds r0, r5, #0 - bl sub_080045C4 - ldrb r1, [r5, #0x15] - subs r0, r0, r1 - adds r0, #6 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xc - bhi _080378AC - movs r0, #3 - strb r0, [r5, #0xc] - movs r4, #0x18 - movs r0, #0x18 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - movs r0, #0xc0 - strh r0, [r5, #0x24] - ldr r1, [r6] - adds r0, r5, #0 - bl sub_080045C4 - adds r0, #4 - ands r0, r4 - strb r0, [r5, #0x15] - lsrs r0, r0, #3 - strb r0, [r5, #0x14] - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - ldr r2, [r6] - ldrh r1, [r2, #0x2e] - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r2, #0x32] - adds r3, r5, #0 - adds r3, #0x7a - strh r0, [r3] - ldrb r1, [r5, #0x14] - adds r0, r5, #0 - bl sub_080042AC - movs r0, #1 - b _080378AE - .align 2, 0 -_080378A4: .4byte gUnk_020000B0 -_080378A8: - subs r0, #1 - strb r0, [r1] -_080378AC: - movs r0, #0 -_080378AE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080378B0 -sub_080378B0: @ 0x080378B0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - cmp r0, #0 - bne _0803790C - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _08037910 - ldr r5, _08037908 @ =gUnk_020000B0 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #0xa - bl sub_0804A044 - ldrb r1, [r4, #0x15] - cmp r0, r1 - bne _08037910 - ldr r0, [r5] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x18 - bl sub_0806FCB8 - cmp r0, #0 - beq _08037910 - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, #0xfb - strh r0, [r4, #0x24] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - movs r0, #1 - b _08037912 - .align 2, 0 -_08037908: .4byte gUnk_020000B0 -_0803790C: - subs r0, #1 - strb r0, [r1] -_08037910: - movs r0, #0 -_08037912: - pop {r4, r5, pc} - - thumb_func_start sub_08037914 -sub_08037914: @ 0x08037914 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08037970 - ldr r7, _08037950 @ =gUnk_020000B0 - ldr r0, [r7] - adds r5, r4, #0 - adds r5, #0x78 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x7a - ldrh r2, [r6] - movs r3, #0x28 - bl sub_0806FCB8 - cmp r0, #0 - bne _08037954 - ldr r0, [r7] - ldrh r1, [r0, #0x2e] - strh r1, [r5] - ldrh r0, [r0, #0x32] - strh r0, [r6] - adds r0, r4, #0 - bl sub_0803797C - movs r0, #0 - b _08037978 - .align 2, 0 -_08037950: .4byte gUnk_020000B0 -_08037954: - ldrh r1, [r5] - ldrh r2, [r6] - adds r0, r4, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - bne _08037968 - movs r0, #0 - b _08037978 -_08037968: - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x3c - strb r0, [r1] -_08037970: - adds r0, r4, #0 - bl sub_08037794 - movs r0, #1 -_08037978: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803797C -sub_0803797C: @ 0x0803797C - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0x18 - movs r0, #0x18 - strb r0, [r5, #0xe] - movs r0, #8 - strb r0, [r5, #0xf] - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r2, r5, #0 - adds r2, #0x78 - ldrh r2, [r2] - adds r3, r5, #0 - adds r3, #0x7a - ldrh r3, [r3] - bl sub_080045D4 - adds r0, #4 - ands r0, r4 - strb r0, [r5, #0x15] - lsrs r0, r0, #3 - ldrb r1, [r5, #0x14] - cmp r0, r1 - beq _080379BA - strb r0, [r5, #0x14] - adds r1, r0, #4 - adds r0, r5, #0 - bl sub_080042AC -_080379BA: - pop {r4, r5, pc} - - thumb_func_start sub_080379BC -sub_080379BC: @ 0x080379BC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x18 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - bl sub_08000E50 - movs r1, #2 - ands r0, r1 - ldrb r1, [r4, #0x14] - adds r1, r1, r0 - subs r1, #1 - movs r0, #3 - ands r1, r0 - strb r1, [r4, #0x14] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_080379EC -sub_080379EC: @ 0x080379EC - push {r4, lr} - adds r4, r0, #0 - bl sub_0807953C - cmp r0, #0 - beq _08037A0E - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037A0E - adds r0, r4, #0 - bl sub_08037A58 - movs r0, #1 - b _08037A10 -_08037A0E: - movs r0, #0 -_08037A10: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037A14 -sub_08037A14: @ 0x08037A14 - push {r4, lr} - adds r4, r0, #0 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x18 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x20 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r2] - adds r2, #0x12 - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #5 - strb r0, [r1] - ldr r1, [r4, #0x4c] - adds r0, r4, #0 - bl sub_0806FA24 - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037A58 -sub_08037A58: @ 0x08037A58 - push {r4, lr} - adds r4, r0, #0 - bl sub_08037ACC - movs r0, #7 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xf - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r3, r4, #0 - adds r3, #0x3d - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - bne _08037A84 - movs r0, #0xec - strb r0, [r3] -_08037A84: - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x26 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xf4 - strb r0, [r3] - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r1, #4 - movs r0, #8 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #0x30 - movs r0, #0x3c - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037ACC -sub_08037ACC: @ 0x08037ACC - ldr r3, _08037B04 @ =gUnk_03003F80 - ldr r1, [r3, #0x30] - ldr r2, _08037B08 @ =0xFFFFFEFF - ands r1, r2 - str r1, [r3, #0x30] - ldr r3, _08037B0C @ =gLinkEntity - ldrb r2, [r3, #0x10] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x3d - movs r1, #0x1e - strb r1, [r2] - ldrb r0, [r0, #0x14] - lsls r0, r0, #3 - adds r1, r3, #0 - adds r1, #0x3e - strb r0, [r1] - adds r1, #4 - movs r0, #4 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - bx lr - .align 2, 0 -_08037B04: .4byte gUnk_03003F80 -_08037B08: .4byte 0xFFFFFEFF -_08037B0C: .4byte gLinkEntity - - thumb_func_start sub_08037B10 -sub_08037B10: @ 0x08037B10 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r5, _08037B44 @ =gLinkEntity - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xc - strb r0, [r1] - subs r0, #0x14 - bl sub_080526A0 - adds r4, r0, #0 - adds r0, r5, #0 - movs r1, #0x7a - bl sub_0800449C - cmp r4, #0 - bne _08037B40 - adds r0, r6, #0 - bl sub_08037A58 - adds r1, r6, #0 - adds r1, #0x76 - movs r0, #0xf0 - strb r0, [r1] -_08037B40: - pop {r4, r5, r6, pc} - .align 2, 0 -_08037B44: .4byte gLinkEntity - - thumb_func_start sub_08037B48 -sub_08037B48: @ 0x08037B48 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _08037B88 - ldrb r0, [r4, #0xe] - movs r2, #0 - strb r0, [r3, #0xb] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x62 - strb r2, [r0] - adds r1, r3, #0 - adds r1, #0x63 - movs r0, #0xfc - strb r0, [r1] - str r4, [r3, #0x50] -_08037B88: - adds r0, r4, #0 - adds r0, #0x80 - str r3, [r0] - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _08037BCA - ldrb r0, [r4, #0xe] - strb r0, [r3, #0xb] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r2, #8 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r1, r3, #0 - adds r1, #0x62 - movs r0, #0xfd - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x63 - strb r2, [r0] - str r4, [r3, #0x50] -_08037BCA: - adds r0, r4, #0 - adds r0, #0x84 - str r3, [r0] - movs r0, #0x2a - movs r1, #3 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _08037C06 - ldrb r0, [r4, #0xe] - strb r0, [r3, #0xb] - adds r2, r3, #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] - adds r1, r3, #0 - adds r1, #0x62 - movs r0, #5 - strb r0, [r1] - adds r1, #1 - movs r0, #0xf5 - strb r0, [r1] - str r4, [r3, #0x50] -_08037C06: - str r3, [r4, #0x54] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037C0C -sub_08037C0C: @ 0x08037C0C - push {lr} - adds r3, r0, #0 - adds r0, #0x80 - ldr r2, [r0] - cmp r2, #0 - beq _08037C1E - movs r0, #0xf - strb r0, [r2, #0xe] - str r1, [r2, #0x50] -_08037C1E: - adds r0, r3, #0 - adds r0, #0x84 - ldr r2, [r0] - cmp r2, #0 - beq _08037C2E - movs r0, #0xf - strb r0, [r2, #0xe] - str r1, [r2, #0x50] -_08037C2E: - ldr r2, [r3, #0x54] - cmp r2, #0 - beq _08037C3A - movs r0, #0xf - strb r0, [r2, #0xe] - str r1, [r2, #0x50] -_08037C3A: - pop {pc} - - thumb_func_start sub_08037C3C -sub_08037C3C: @ 0x08037C3C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - cmp r0, #0 - beq _08037C5C - ldr r0, _08037C58 @ =gUnk_080012C8 - lsls r1, r4, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08037C7E - .align 2, 0 -_08037C58: .4byte gUnk_080012C8 -_08037C5C: - ldr r4, _08037C80 @ =gUnk_080CF46C - 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 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC -_08037C7E: - pop {r4, r5, pc} - .align 2, 0 -_08037C80: .4byte gUnk_080CF46C - - thumb_func_start sub_08037C84 -sub_08037C84: @ 0x08037C84 - push {lr} - ldr r2, _08037C98 @ =gUnk_080CF484 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08037C98: .4byte gUnk_080CF484 - - thumb_func_start sub_08037C9C -sub_08037C9C: @ 0x08037C9C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08037CB0 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08037CB0: - ldr r1, _08037CBC @ =gUnk_080CF46C - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08037CBC: .4byte gUnk_080CF46C - - thumb_func_start sub_08037CC0 -sub_08037CC0: @ 0x08037CC0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08037CD6 - ldrb r0, [r4, #0xb] - bl sub_0807CD04 -_08037CD6: - adds r0, r4, #0 - movs r1, #0xff - movs r2, #0x58 - bl sub_0804A7E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037CE4 -sub_08037CE4: @ 0x08037CE4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - bl GetProgressFlag - cmp r0, #0 - beq _08037CF6 - bl sub_0805E780 -_08037CF6: - adds r0, r4, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08037E14 - pop {r4, pc} - - thumb_func_start sub_08037D0C -sub_08037D0C: @ 0x08037D0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08037D1C - subs r0, #1 - strb r0, [r4, #0xf] - b _08037D26 -_08037D1C: - adds r0, r4, #0 - bl sub_08037E90 - cmp r0, #0 - bne _08037D52 -_08037D26: - adds r0, r4, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _08037D40 - adds r0, r4, #0 - bl sub_08037E14 - b _08037D52 -_08037D40: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037D52 - adds r0, r4, #0 - bl sub_08037E14 -_08037D52: - pop {r4, pc} - - thumb_func_start sub_08037D54 -sub_08037D54: @ 0x08037D54 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08037DC4 - movs r0, #2 - eors r0, r1 - strb r0, [r2] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _08037E0C - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _08037E0C - ldrb r0, [r4, #0x15] - strb r0, [r2, #0x15] - ldrb r1, [r4, #0x15] - lsrs r1, r1, #2 - ldr r0, _08037DBC @ =gUnk_080CF490 - 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, _08037DC0 @ =0x0000FFFD - strh r0, [r2, #0x36] - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 - b _08037E0C - .align 2, 0 -_08037DBC: .4byte gUnk_080CF490 -_08037DC0: .4byte 0x0000FFFD -_08037DC4: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08037E0C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08037DEE - strb r3, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x14] - orrs r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08037E14 - b _08037E0C -_08037DEE: - ldr r1, _08037E10 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_08037E0C: - pop {r4, pc} - .align 2, 0 -_08037E10: .4byte gLinkEntity - - thumb_func_start sub_08037E14 -sub_08037E14: @ 0x08037E14 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #8 - strb r0, [r5, #0xe] - ldr r1, _08037E6C @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - adds r4, r0, #4 - movs r0, #0x18 - ands r4, r0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_0808094C - ldr r1, _08037E70 @ =0x00002004 - adds r0, r0, r1 - lsrs r3, r4, #2 - ldr r1, _08037E74 @ =gUnk_080CF498 - adds r3, r3, r1 - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r2, #0 - ldrsb r2, [r3, r2] - adds r1, r1, r2 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r2, r2, r3 - movs r3, #0 - bl sub_080AE4CC - cmp r0, #0 - beq _08037E78 - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _08037E7A - .align 2, 0 -_08037E6C: .4byte gLinkEntity -_08037E70: .4byte 0x00002004 -_08037E74: .4byte gUnk_080CF498 -_08037E78: - strb r4, [r5, #0x15] -_08037E7A: - ldrb r0, [r5, #0x15] - lsrs r4, r0, #3 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _08037E8E - strb r4, [r5, #0x14] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004260 -_08037E8E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08037E90 -sub_08037E90: @ 0x08037E90 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08037EA8 @ =gLinkEntity - movs r2, #8 - bl sub_0804A044 - adds r1, r0, #0 - cmp r1, #0xff - bne _08037EAC - movs r0, #0 - b _08037EC6 - .align 2, 0 -_08037EA8: .4byte gLinkEntity -_08037EAC: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #3 - strb r0, [r4, #0xe] - strb r1, [r4, #0x15] - lsrs r0, r1, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - movs r0, #1 -_08037EC6: - pop {r4, pc} - - thumb_func_start sub_08037EC8 -sub_08037EC8: @ 0x08037EC8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08037EE4 @ =gUnk_080CF4A0 - 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 -_08037EE4: .4byte gUnk_080CF4A0 - - thumb_func_start sub_08037EE8 -sub_08037EE8: @ 0x08037EE8 - push {lr} - ldr r2, _08037EFC @ =gUnk_080CF4B8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08037EFC: .4byte gUnk_080CF4B8 - - thumb_func_start sub_08037F00 -sub_08037F00: @ 0x08037F00 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08037F14 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08037F14: - ldr r1, _08037F54 @ =gUnk_080CF4A0 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x94 - bne _08037F50 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x14 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08037F46 - ldr r0, [r4, #0x20] - asrs r0, r0, #2 -_08037F46: - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08037F50: - pop {r4, pc} - .align 2, 0 -_08037F54: .4byte gUnk_080CF4A0 - - thumb_func_start sub_08037F58 -sub_08037F58: @ 0x08037F58 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08037F6E - ldrb r0, [r4, #0xb] - bl sub_0807CD04 -_08037F6E: - ldrb r0, [r4, #0xa] - movs r2, #0x58 - cmp r0, #0 - beq _08037F78 - movs r2, #0x59 -_08037F78: - adds r0, r4, #0 - movs r1, #0xff - bl sub_0804A7E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08037F84 -sub_08037F84: @ 0x08037F84 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001242 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08037F9E - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 -_08037F9E: - pop {r4, pc} - - thumb_func_start sub_08037FA0 -sub_08037FA0: @ 0x08037FA0 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xb] - bl GetProgressFlag - cmp r0, #0 - beq _08037FB2 - bl sub_0805E780 -_08037FB2: - adds r0, r5, #0 - bl sub_0804A720 - movs r4, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x20 - strb r0, [r5, #0xe] - strb r4, [r5, #0xf] - adds r0, r5, #0 - adds r0, #0x80 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08037FE0 -sub_08037FE0: @ 0x08037FE0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _08037FF8 - subs r0, #1 - strb r0, [r4, #0xe] - b _08038046 -_08037FF8: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803802C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08038046 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #6 - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - movs r0, #0xe0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_08038168 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _08038046 -_0803802C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08038046 - movs r0, #0x40 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08038046: - pop {r4, pc} - - thumb_func_start sub_08038048 -sub_08038048: @ 0x08038048 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - bl sub_080AEF88 - movs r0, #0x36 - ldrsh r6, [r4, r0] - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #0xf - ands r5, r0 - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_080044EC - cmp r0, #1 - bne _08038088 - movs r0, #0 - movs r1, #3 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - movs r0, #0x14 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08004260 - b _0803810C -_08038088: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08038098 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E - b _080380B0 -_08038098: - adds r0, r4, #0 - bl sub_080002B8 - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x50 - bne _080380B0 - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080380B0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080380C8 - adds r0, r5, #0 - adds r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08038168 -_080380C8: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080380E2 - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r6, r0 - bge _080380E2 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - movs r0, #1 - strb r0, [r4, #0xd] -_080380E2: - movs r0, #0xc - rsbs r0, r0, #0 - cmp r6, r0 - bge _080380F6 - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - b _08038100 -_080380F6: - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 -_08038100: - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] -_0803810C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08038110 -sub_08038110: @ 0x08038110 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08038164 - adds r2, r4, #0 - adds r2, #0x80 - ldrb r0, [r2] - cmp r0, #4 - bhi _08038150 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0xe0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_08038168 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _08038164 -_08038150: - movs r0, #0 - movs r1, #1 - strb r1, [r4, #0xc] - strb r0, [r2] - movs r0, #0xc0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08038164: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038168 -sub_08038168: @ 0x08038168 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803817E - adds r0, r4, #0 - bl sub_08049EE4 - strb r0, [r4, #0x15] - b _080381AA -_0803817E: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08038196 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _080381AA -_08038196: - bl sub_08000E50 - movs r1, #0xf - ands r1, r0 - adds r1, #0x18 - ldrb r0, [r4, #0x15] - adds r1, r1, r0 - movs r0, #0x1f - ands r1, r0 - strb r1, [r4, #0x15] -_080381AA: - pop {r4, pc} - - thumb_func_start sub_080381AC -sub_080381AC: @ 0x080381AC - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _080381D0 - ldr r0, _080381CC @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _080381F2 - .align 2, 0 -_080381CC: .4byte gUnk_080012C8 -_080381D0: - ldr r4, _080381F4 @ =gUnk_080CF4C8 - 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 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC -_080381F2: - pop {r4, r5, pc} - .align 2, 0 -_080381F4: .4byte gUnk_080CF4C8 - - thumb_func_start sub_080381F8 -sub_080381F8: @ 0x080381F8 - push {lr} - ldr r2, _0803820C @ =gUnk_080CF4E0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803820C: .4byte gUnk_080CF4E0 - - thumb_func_start sub_08038210 -sub_08038210: @ 0x08038210 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08038224 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08038224: - ldr r1, _08038230 @ =gUnk_080CF4C8 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08038230: .4byte gUnk_080CF4C8 - - thumb_func_start sub_08038234 -sub_08038234: @ 0x08038234 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0803824A - ldrb r0, [r4, #0xb] - bl sub_0807CD04 -_0803824A: - adds r0, r4, #0 - movs r1, #0xff - movs r2, #0x58 - bl sub_0804A7E0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038258 -sub_08038258: @ 0x08038258 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - bl GetProgressFlag - cmp r0, #0 - beq _0803826A - bl sub_0805E780 -_0803826A: - adds r0, r4, #0 - bl sub_0804A720 - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080383AC - pop {r4, pc} - - thumb_func_start sub_0803827C -sub_0803827C: @ 0x0803827C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803828C - subs r0, #1 - strb r0, [r4, #0xf] - b _080382BC -_0803828C: - ldr r5, _080382B8 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #8 - bl sub_0804A044 - cmp r0, #0xff - bne _080382B0 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _080382BC -_080382B0: - adds r0, r4, #0 - bl sub_080383E4 - b _080382E8 - .align 2, 0 -_080382B8: .4byte gLinkEntity -_080382BC: - adds r0, r4, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _080382D6 - adds r0, r4, #0 - bl sub_080383AC - b _080382E8 -_080382D6: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080382E8 - adds r0, r4, #0 - bl sub_080383AC -_080382E8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080382EC -sub_080382EC: @ 0x080382EC - 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 _08038300 - movs r0, #3 - strb r0, [r1, #0xc] -_08038300: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08038304 -sub_08038304: @ 0x08038304 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_08004276 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _08038334 - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - ldrb r1, [r4, #0x15] - cmp r0, r1 - bne _08038330 - movs r0, #0x5a - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080383AC - b _080383AA -_08038330: - strb r0, [r4, #0x15] - b _080383AA -_08038334: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0xa - bl __modsi3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080383AA - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - ldrb r3, [r4, #0x15] - cmp r0, r3 - bne _08038398 - bl sub_08000E50 - movs r1, #2 - ands r1, r0 - subs r1, #1 - lsls r1, r1, #0x1b - lsrs r1, r1, #0x18 - adds r0, r4, #0 - adds r0, #0x79 - lsls r5, r1, #0x18 - lsrs r3, r5, #0x18 - adds r2, r0, #0 - movs r6, #0x7a - adds r6, r6, r4 - mov ip, r6 - ldrb r0, [r2] - cmp r3, r0 - bne _08038388 - ldrb r6, [r6] - cmp r3, r6 - bne _08038388 - rsbs r0, r5, #0 - lsrs r1, r0, #0x18 -_08038388: - ldrb r0, [r2] - mov r3, ip - strb r0, [r3] - strb r1, [r2] - ldrb r0, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x18 - ands r0, r1 -_08038398: - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_080383AA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080383AC -sub_080383AC: @ 0x080383AC - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, #0xf8 - strh r0, [r4, #0x24] - ldr r1, _080383E0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r1, r0, #3 - ldrb r0, [r4, #0x14] - cmp r1, r0 - beq _080383DC - strb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_080383DC: - pop {r4, pc} - .align 2, 0 -_080383E0: .4byte gLinkEntity - - thumb_func_start sub_080383E4 -sub_080383E4: @ 0x080383E4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldr r1, _0803842C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - adds r1, #1 - movs r0, #0xff - strb r0, [r1] - adds r1, #1 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_0803842C: .4byte gLinkEntity - - thumb_func_start sub_08038430 -sub_08038430: @ 0x08038430 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803844C @ =gUnk_080CF4F0 - 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 -_0803844C: .4byte gUnk_080CF4F0 - - thumb_func_start sub_08038450 -sub_08038450: @ 0x08038450 - push {lr} - ldr r2, _08038464 @ =gUnk_080CF508 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08038464: .4byte gUnk_080CF508 - - thumb_func_start sub_08038468 -sub_08038468: @ 0x08038468 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803847C - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803847C: - ldr r1, _080384B0 @ =gUnk_080CF4F0 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080384D8 - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x5a - bne _080384CA - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x14 - beq _080384BA - cmp r0, #0x14 - bgt _080384B4 - cmp r0, #0xe - beq _080384C0 - b _080384D8 - .align 2, 0 -_080384B0: .4byte gUnk_080CF4F0 -_080384B4: - cmp r0, #0x15 - beq _080384C0 - b _080384D8 -_080384BA: - movs r0, #5 - strb r0, [r4, #0xc] - b _080384D8 -_080384C0: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] - b _080384D8 -_080384CA: - movs r0, #0x3f - ands r0, r1 - cmp r0, #0x1d - bne _080384D8 - adds r0, r4, #0 - bl sub_08038754 -_080384D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_163 -nullsub_163: @ 0x080384DC - bx lr - .align 2, 0 - - thumb_func_start sub_080384E0 -sub_080384E0: @ 0x080384E0 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r5, #1 - movs r0, #1 - strb r0, [r6, #0xc] - bl sub_08000E50 - movs r1, #0x1c - ands r0, r1 - strb r0, [r6, #0x15] - lsrs r0, r0, #2 - strb r0, [r6, #0x14] - ldrb r1, [r6, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r6, #0x10] - strb r4, [r6, #0xe] - movs r0, #0x20 - strb r0, [r6, #0xf] - adds r0, r6, #0 - adds r0, #0x82 - strb r4, [r0] - bl sub_08000E50 - ands r0, r5 - adds r1, r6, #0 - adds r1, #0x80 - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x81 - strb r4, [r0] - subs r1, #0x41 - movs r0, #0x72 - strb r0, [r1] - ldrb r1, [r6, #0x14] - adds r0, r6, #0 - bl sub_08004260 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08038534 -sub_08038534: @ 0x08038534 - push {r4, lr} - adds r4, r0, #0 - bl sub_080387F0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08038594 - strb r0, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _08038578 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803856A - adds r1, #7 - b _0803856C -_0803856A: - adds r1, #1 -_0803856C: - movs r0, #7 - ands r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - b _0803858A -_08038578: - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] -_0803858A: - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - b _080385C8 -_08038594: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080385C8 - adds r0, r4, #0 - movs r1, #0x80 - bl sub_0803872C - cmp r0, #0 - beq _080385C8 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x10 - strb r0, [r4, #0xf] - movs r0, #0x40 - strh r0, [r4, #0x24] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FCAC - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_080385C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080385CC -sub_080385CC: @ 0x080385CC - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080387F0 - adds r0, r4, #0 - movs r1, #0x60 - bl sub_0803872C - cmp r0, #0 - beq _08038604 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xc - strb r0, [r4, #0xf] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldr r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FCAC - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - b _08038648 -_08038604: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038648 - movs r6, #0x10 - strb r6, [r4, #0xf] - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _08038622 - adds r0, r4, #0 - bl sub_0806FCAC - b _08038638 -_08038622: - ldrb r5, [r4, #0x14] - bl sub_08000E50 - ands r0, r6 - cmp r0, #0 - beq _08038632 - adds r1, r5, #2 - b _08038634 -_08038632: - adds r1, r5, #6 -_08038634: - movs r0, #7 - ands r0, r1 -_08038638: - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08038648: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0803864C -sub_0803864C: @ 0x0803864C - push {r4, lr} - adds r4, r0, #0 - bl sub_080387F0 - adds r0, r4, #0 - movs r1, #0x14 - bl sub_0803872C - cmp r0, #0 - beq _08038668 - adds r0, r4, #0 - bl sub_08038754 - b _080386B4 -_08038668: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080386B4 - movs r0, #0xa - strb r0, [r4, #0xf] - adds r2, r4, #0 - adds r2, #0x81 - ldrb r0, [r2] - cmp r0, #0 - bne _08038698 - ldrh r0, [r4, #0x24] - adds r0, #0x40 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #0x12 - cmp r0, r1 - ble _080386B4 - movs r0, #1 - strb r0, [r2] - b _080386B4 -_08038698: - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _080386AE - adds r0, r2, #0 - subs r0, #0x50 - strh r0, [r4, #0x24] - b _080386B4 -_080386AE: - adds r0, r4, #0 - bl sub_08038754 -_080386B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080386B8 -sub_080386B8: @ 0x080386B8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080387F0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - adds r1, r0, #0 - cmp r1, #1 - bne _08038720 - strb r1, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x3f - movs r0, #0x72 - strb r0, [r2] - strb r1, [r4, #0xe] - movs r0, #0x80 - strb r0, [r4, #0xf] - strh r0, [r4, #0x24] - subs r2, #0x16 - ldrb r1, [r2] - subs r0, #0xb9 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x70 - bl sub_0801D2B4 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #2 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08038720 - adds r0, r4, #0 - bl sub_0806FAB0 -_08038720: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038724 -sub_08038724: @ 0x08038724 - push {lr} - bl sub_08038754 - pop {pc} - - thumb_func_start sub_0803872C -sub_0803872C: @ 0x0803872C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_08049DF4 - adds r1, r0, #0 - str r1, [r4, #0x54] - cmp r1, #0 - beq _08038750 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_0806FC80 - cmp r0, #0 - beq _08038750 - movs r0, #1 - b _08038752 -_08038750: - movs r0, #0 -_08038752: - pop {r4, r5, pc} - - thumb_func_start sub_08038754 -sub_08038754: @ 0x08038754 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x5a - strb r0, [r1] - movs r1, #0 - movs r0, #0xc0 - strh r0, [r4, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x81 - strb r1, [r0] - 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] - ldr r0, _080387C0 @ =0x0000012B - bl sub_08004488 - adds r0, r4, #0 - movs r1, #0x71 - bl sub_0801D2B4 - ldrb r2, [r4, #0x15] - movs r0, #0xf - ands r0, r2 - cmp r0, #0 - beq _080387C4 - movs r1, #0x10 - ands r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, #9 - adds r0, r4, #0 - bl sub_08004260 - b _080387D8 - .align 2, 0 -_080387C0: .4byte 0x0000012B -_080387C4: - movs r1, #0x10 - ands r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 -_080387D8: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080387EE - adds r0, r4, #0 - bl sub_0806FAB0 -_080387EE: - pop {r4, pc} - - thumb_func_start sub_080387F0 -sub_080387F0: @ 0x080387F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #4 - beq _08038890 - adds r5, r4, #0 - adds r5, #0x82 - ldrb r0, [r5] - cmp r0, #0 - bne _08038890 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08038868 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r6, #0x32 - ldrsh r1, [r4, r6] - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - cmp r0, #0xf - beq _08038836 - cmp r0, #0x2a - bne _0803883A -_08038836: - movs r0, #0x20 - strb r0, [r5] -_0803883A: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #1 - ldr r1, _0803886C @ =gUnk_080CF520 - adds r0, r0, r1 - ldrb r5, [r4, #0x15] - movs r1, #0 - ldrsb r1, [r0, r1] - movs r2, #1 - ldrsb r2, [r0, r2] - adds r0, r4, #0 - bl sub_080002CC - cmp r0, #0xf - beq _0803885A - cmp r0, #0x2a - bne _08038870 -_0803885A: - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - b _0803887E - .align 2, 0 -_08038868: .4byte gUnk_03000BF0 -_0803886C: .4byte gUnk_080CF520 -_08038870: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0803887E - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_0800417E -_0803887E: - ldrb r0, [r4, #0x15] - cmp r5, r0 - beq _08038890 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 -_08038890: - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - bne _080388A8 - adds r0, r4, #0 - bl sub_080AEF88 - b _080388B2 -_080388A8: - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806F69C -_080388B2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080388B4 -sub_080388B4: @ 0x080388B4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080388D0 @ =gUnk_080CF600 - 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 -_080388D0: .4byte gUnk_080CF600 - - thumb_func_start sub_080388D4 -sub_080388D4: @ 0x080388D4 - push {lr} - ldr r2, _080388E8 @ =gUnk_080CF618 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080388E8: .4byte gUnk_080CF618 - - thumb_func_start sub_080388EC -sub_080388EC: @ 0x080388EC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x43 - ldrb r0, [r6] - cmp r0, #0 - beq _08038902 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08038902: - ldr r1, _08038948 @ =gUnk_080CF600 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803897E - ldrb r0, [r4, #0xc] - cmp r0, #4 - beq _0803897E - ldr r5, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x3d - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x3e - ldrb r1, [r2] - adds r0, r5, #0 - adds r0, #0x3e - strb r1, [r0] - ldrb r0, [r6] - cmp r0, #0 - beq _0803894C - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - b _0803897E - .align 2, 0 -_08038948: .4byte gUnk_080CF600 -_0803894C: - ldrb r0, [r4, #0xc] - cmp r0, #1 - bne _0803897E - adds r0, r1, #0 - adds r0, #0x12 - movs r1, #0x1c - ands r0, r1 - strb r0, [r5, #0x15] - lsrs r0, r0, #2 - strb r0, [r5, #0x14] - ldrb r0, [r2] - adds r0, #0x14 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #0 - bl sub_08038C84 - adds r0, r5, #0 - movs r1, #1 - bl sub_08038C84 -_0803897E: - pop {r4, r5, r6, pc} - - thumb_func_start nullsub_164 -nullsub_164: @ 0x08038980 - bx lr - .align 2, 0 - - thumb_func_start sub_08038984 -sub_08038984: @ 0x08038984 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x13 - bl sub_080A7EE0 - adds r6, r0, #0 - cmp r6, #0 - beq _080389E6 - adds r0, r5, #0 - bl sub_0804A720 - movs r4, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - str r6, [r5, #0x54] - bl sub_08000E50 - movs r1, #6 - ands r0, r1 - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x80 - movs r1, #0 - strh r4, [r0] - subs r0, #6 - strb r1, [r0] - str r5, [r6, #0x50] - strb r1, [r6, #0xa] - movs r0, #0xff - strb r0, [r6, #0x14] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r6, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r5, #0 - bl sub_08038BA8 -_080389E6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080389E8 -sub_080389E8: @ 0x080389E8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, [r4, #0x54] - adds r1, r4, #0 - adds r1, #0x80 - ldrh r0, [r1] - cmp r0, #0 - beq _08038A08 - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08038A68 - movs r0, #0x80 - strh r0, [r4, #0x24] - b _08038A68 -_08038A08: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038A22 - adds r0, r4, #0 - bl sub_08038BA8 - adds r0, r6, #0 - bl sub_08038C2C - b _08038A68 -_08038A22: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08038A2E - subs r0, #1 - strb r0, [r4, #0xe] - b _08038A68 -_08038A2E: - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _08038A68 - movs r0, #0xc - strb r0, [r4, #0xe] - ldrb r1, [r6, #0x14] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08038A5C - ldrb r5, [r6, #0x14] - bl sub_08000E50 - movs r1, #0x20 - ands r1, r0 - cmp r1, #0 - beq _08038A54 - adds r1, r5, #1 - b _08038A56 -_08038A54: - adds r1, r5, #7 -_08038A56: - movs r0, #7 - ands r0, r1 - strb r0, [r6, #0x14] -_08038A5C: - adds r0, r4, #0 - bl sub_08038BA8 - adds r0, r6, #0 - bl sub_08038C2C -_08038A68: - adds r0, r4, #0 - bl sub_08038B90 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08038A70 -sub_08038A70: @ 0x08038A70 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x54] - adds r1, r5, #0 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r7, r0, #0x10 - cmp r7, #0 - bne _08038AC0 - movs r1, #3 - strb r1, [r5, #0xc] - adds r2, r5, #0 - adds r2, #0x82 - movs r0, #4 - strb r0, [r2] - movs r0, #0x80 - strh r0, [r5, #0x24] - movs r4, #0x20 - strb r4, [r5, #0xf] - strb r1, [r6, #0xc] - adds r1, r6, #0 - adds r1, #0x82 - movs r0, #2 - strb r0, [r1] - movs r0, #0xff - strb r0, [r6, #0x14] - adds r0, r5, #0 - movs r1, #0 - bl sub_08038C84 - adds r0, r6, #0 - bl sub_08038C2C - strb r4, [r6, #0xf] - str r7, [r6, #0x50] - str r5, [r6, #0x54] - b _08038AFE -_08038AC0: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038AFE - movs r0, #0x10 - strb r0, [r5, #0xf] - adds r0, r5, #0 - movs r1, #0 - bl sub_08049F84 - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x15] - adds r0, #4 - movs r1, #0x1c - ands r0, r1 - lsrs r1, r0, #2 - strb r1, [r6, #0x14] - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r5, #0x14] - adds r0, r5, #0 - movs r1, #0 - bl sub_08038C84 - adds r0, r6, #0 - movs r1, #1 - bl sub_08038C84 -_08038AFE: - adds r0, r5, #0 - bl sub_08038B90 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08038B08 -sub_08038B08: @ 0x08038B08 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08038B18 - subs r0, #1 - strb r0, [r4, #0xf] - b _08038B5E -_08038B18: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08038B5E - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #3 - strb r0, [r1] - movs r0, #0x32 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - strh r2, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0 - bl sub_08038C84 - ldr r0, _08038B60 @ =0x0000015B - bl sub_08004488 -_08038B5E: - pop {r4, pc} - .align 2, 0 -_08038B60: .4byte 0x0000015B - - thumb_func_start sub_08038B64 -sub_08038B64: @ 0x08038B64 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038B8C - movs r0, #2 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - adds r0, #0x1f - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_08038B8C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038B90 -sub_08038B90: @ 0x08038B90 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_0800445C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038BA8 -sub_08038BA8: @ 0x08038BA8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r1, _08038BEC @ =gUnk_080CF62C - movs r5, #7 - ands r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x82 - movs r3, #1 - strb r3, [r0] - ldr r0, [r4, #0x54] - adds r0, #0x82 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - cmp r0, #0 - bne _08038BF0 - adds r0, #1 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_08038C84 - b _08038C2A - .align 2, 0 -_08038BEC: .4byte gUnk_080CF62C -_08038BF0: - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x14] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08038C14 - ldrb r2, [r2, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r1, #1 - ands r0, r5 - movs r3, #6 - cmp r2, r0 - bne _08038C0C - movs r3, #2 -_08038C0C: - adds r3, r3, r1 - movs r0, #6 - ands r3, r0 - b _08038C18 -_08038C14: - ldrb r3, [r2, #0x14] - ldrb r1, [r4, #0x14] -_08038C18: - cmp r3, r1 - beq _08038C2A - strb r3, [r4, #0x14] - lsls r0, r3, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_08038C84 -_08038C2A: - pop {r4, r5, pc} - - thumb_func_start sub_08038C2C -sub_08038C2C: @ 0x08038C2C - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08000E50 - ldr r1, _08038C58 @ =gUnk_080CF634 - movs r6, #7 - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xf] - ldr r0, [r5, #0x50] - ldrb r4, [r0, #0x14] - ldrb r0, [r5, #0x14] - cmp r0, #0xff - bne _08038C5C - strb r4, [r5, #0x14] - adds r0, r5, #0 - movs r1, #1 - bl sub_08038C84 - b _08038C7C - .align 2, 0 -_08038C58: .4byte gUnk_080CF634 -_08038C5C: - bl sub_08000E50 - ldr r1, _08038C80 @ =gUnk_080CF63C - ands r0, r6 - adds r0, r0, r1 - ldrb r0, [r0] - adds r4, r0, r4 - ands r4, r6 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _08038C7C - strb r4, [r5, #0x14] - adds r0, r5, #0 - movs r1, #1 - bl sub_08038C84 -_08038C7C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08038C80: .4byte gUnk_080CF63C - - thumb_func_start sub_08038C84 -sub_08038C84: @ 0x08038C84 - push {lr} - adds r3, r0, #0 - ldrb r2, [r3, #0x14] - adds r0, #0x82 - ldrb r0, [r0] - lsls r0, r0, #3 - orrs r2, r0 - cmp r1, #0 - bne _08038C98 - lsrs r2, r2, #1 -_08038C98: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08038CA4 -sub_08038CA4: @ 0x08038CA4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _08038CC8 - ldr r0, _08038CC4 @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08038CF0 - .align 2, 0 -_08038CC4: .4byte gUnk_080012C8 -_08038CC8: - ldr r4, _08038CF4 @ =gUnk_080CF778 - 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 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - adds r0, r5, #0 - bl sub_080391B4 -_08038CF0: - pop {r4, r5, pc} - .align 2, 0 -_08038CF4: .4byte gUnk_080CF778 - - thumb_func_start sub_08038CF8 -sub_08038CF8: @ 0x08038CF8 - push {lr} - ldr r2, _08038D0C @ =gUnk_080CF790 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08038D0C: .4byte gUnk_080CF790 - - thumb_func_start sub_08038D10 -sub_08038D10: @ 0x08038D10 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _08038D52 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - bne _08038D3E - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - bne _08038D3E - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0xbf - bhi _08038D46 - movs r0, #1 - strb r0, [r5] - b _08038D46 -_08038D3E: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] -_08038D46: - adds r0, r4, #0 - bl sub_08039218 - adds r0, r4, #0 - bl sub_08039260 -_08038D52: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08038D64 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08038D64: - ldr r1, _08038D70 @ =gUnk_080CF778 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08038D70: .4byte gUnk_080CF778 - - thumb_func_start nullsub_165 -nullsub_165: @ 0x08038D74 - bx lr - .align 2, 0 - - thumb_func_start sub_08038D78 -sub_08038D78: @ 0x08038D78 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - ldrb r0, [r4, #0xa] - cmp r0, #2 - beq _08038D96 - movs r0, #0 - strb r0, [r4, #0xb] - movs r0, #0x30 - strb r0, [r4, #0x16] - adds r0, r4, #0 - bl sub_08039120 - b _08038D9C -_08038D96: - adds r0, r4, #0 - bl sub_08039140 -_08038D9C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038DA0 -sub_08038DA0: @ 0x08038DA0 - 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 _08038DB6 - adds r0, r4, #0 - bl sub_0803901C -_08038DB6: - adds r0, r4, #0 - bl sub_08039298 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038DC0 -sub_08038DC0: @ 0x08038DC0 - push {lr} - ldr r2, _08038DD4 @ =gUnk_080CF7AC - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08038DD4: .4byte gUnk_080CF7AC - - thumb_func_start sub_08038DD8 -sub_08038DD8: @ 0x08038DD8 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x10 - strb r1, [r0, #0xe] - ldr r2, _08038E10 @ =gUnk_080CF7BC - ldrb r1, [r0, #0xa] - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r0, #0xf] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r3] - movs r1, #4 - bl sub_08004260 - ldr r0, _08038E14 @ =0x000001D9 - bl sub_08004488 - pop {pc} - .align 2, 0 -_08038E10: .4byte gUnk_080CF7BC -_08038E14: .4byte 0x000001D9 - - thumb_func_start sub_08038E18 -sub_08038E18: @ 0x08038E18 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08038E70 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038E70 - bl sub_08079184 - adds r0, r4, #0 - bl sub_08039218 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - 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 - movs r1, #8 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08016A04 -_08038E70: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038EA2 - movs r0, #0x10 - strb r0, [r4, #0xe] - bl sub_08000E50 - ldrb r3, [r4, #0x18] - lsls r2, r3, #0x19 - lsrs r2, r2, #0x1f - movs r1, #1 - ands r1, r0 - eors r2, r1 - lsls r2, r2, #6 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_08039260 -_08038EA2: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038EAC -sub_08038EAC: @ 0x08038EAC - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_080390F8 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08038ED0 -sub_08038ED0: @ 0x08038ED0 - push {lr} - ldrb r2, [r0, #0x10] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - bl sub_08039218 - pop {pc} - - thumb_func_start sub_08038EE0 -sub_08038EE0: @ 0x08038EE0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08039298 - movs r1, #0xe0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08038F1C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08038F16 - adds r0, r4, #0 - bl sub_0803901C - b _08038F1C -_08038F16: - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] -_08038F1C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08038F20 -sub_08038F20: @ 0x08038F20 - push {r4, lr} - adds r4, r0, #0 - bl sub_08039298 - 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 _08038F42 - adds r0, r4, #0 - bl sub_0803901C -_08038F42: - pop {r4, pc} - - thumb_func_start sub_08038F44 -sub_08038F44: @ 0x08038F44 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08038F8C @ =gLinkEntity - adds r1, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080390F8 - adds r0, r4, #0 - bl sub_080AEF88 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_080044EC - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08039298 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r2, r0, #1 - strh r2, [r1] - lsls r0, r2, #0x10 - cmp r0, #0 - bne _08038F90 - adds r0, r4, #0 - bl sub_08039120 - b _08038F9E - .align 2, 0 -_08038F8C: .4byte gLinkEntity -_08038F90: - movs r0, #0x1f - ands r2, r0 - cmp r2, #0 - bne _08038F9E - adds r0, r4, #0 - bl sub_08039260 -_08038F9E: - pop {r4, pc} - - thumb_func_start sub_08038FA0 -sub_08038FA0: @ 0x08038FA0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - adds r0, r1, #1 - strb r0, [r4, #0xe] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _08038FB8 - adds r0, r4, #0 - bl sub_08039260 -_08038FB8: - adds r2, r4, #0 - adds r2, #0x78 - ldrh r1, [r2] - cmp r1, #0 - beq _08038FFC - ldr r3, _08038FF4 @ =0x0000FFFF - adds r0, r1, r3 - strh r0, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08038FE0 - ldr r1, _08038FF8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_08038FE0: - adds r0, r4, #0 - bl sub_080390F8 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - b _08039018 - .align 2, 0 -_08038FF4: .4byte 0x0000FFFF -_08038FF8: .4byte gLinkEntity -_08038FFC: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803917C - cmp r0, #0 - beq _08039018 - adds r0, r4, #0 - bl sub_0805E7BC -_08039018: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803901C -sub_0803901C: @ 0x0803901C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r3, r0, #0 - movs r5, #3 - ands r5, r3 - cmp r3, #3 - bne _08039042 - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _0803903C - cmp r0, #4 - beq _08039040 - movs r5, #0 - b _08039042 -_0803903C: - movs r5, #1 - b _08039042 -_08039040: - movs r5, #2 -_08039042: - cmp r5, #1 - beq _0803906C - cmp r5, #2 - beq _080390AA - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _08039068 @ =gUnk_080CF7BE - lsrs r0, r3, #0x10 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - b _080390BC - .align 2, 0 -_08039068: .4byte gUnk_080CF7BE -_0803906C: - movs r1, #3 - movs r0, #3 - strb r0, [r4, #0xc] - lsrs r0, r3, #8 - ands r0, r1 - adds r0, #2 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_080390C0 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - bl sub_08000E50 - ands r0, r5 - cmp r0, #0 - beq _080390BC - bl sub_08000E50 - ands r5, r0 - movs r1, #0xeb - lsls r1, r1, #1 - adds r0, r5, r1 - bl sub_08004488 - b _080390BC -_080390AA: - movs r0, #4 - strb r0, [r4, #0xc] - lsrs r1, r3, #0x10 - movs r0, #1 - ands r1, r0 - adds r1, #2 - adds r0, r4, #0 - bl sub_08004260 -_080390BC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080390C0 -sub_080390C0: @ 0x080390C0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _080390E0 - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _080390E0 - lsrs r0, r5, #0x10 - b _080390E8 -_080390E0: - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #2 -_080390E8: - movs r1, #0x1c - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080390F8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080390F8 -sub_080390F8: @ 0x080390F8 - push {lr} - adds r3, r0, #0 - ldrb r1, [r3, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _0803911C - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x18] -_0803911C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08039120 -sub_08039120: @ 0x08039120 - push {lr} - ldr r2, _0803913C @ =gUnk_080CF7C2 - ldrb r1, [r0, #0xa] - adds r1, r1, r2 - ldrb r1, [r1] - movs r2, #0 - strh r1, [r0, #0x24] - adds r1, r0, #0 - adds r1, #0x7a - strb r2, [r1] - bl sub_0803901C - pop {pc} - .align 2, 0 -_0803913C: .4byte gUnk_080CF7C2 - - thumb_func_start sub_08039140 -sub_08039140: @ 0x08039140 - push {r4, lr} - adds r4, r0, #0 - movs r0, #6 - strb r0, [r4, #0xc] - bl sub_08000E50 - strb r0, [r4, #0xe] - ldr r1, _08039174 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - ldr r0, _08039178 @ =0x0000FFFC - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x78 - movs r0, #0xb4 - strh r0, [r1] - adds r0, r4, #0 - bl sub_080390F8 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 -_08039174: .4byte gLinkEntity -_08039178: .4byte 0x0000FFFC - - thumb_func_start sub_0803917C -sub_0803917C: @ 0x0803917C - push {r4, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r3, _080391AC @ =gUnk_03000BF0 - movs r4, #0xa - ldrsh r1, [r3, r4] - adds r1, #0xc - subs r0, r0, r1 - movs r1, #0x84 - lsls r1, r1, #1 - cmp r0, r1 - bhi _080391B0 - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r2, #0xc - ldrsh r0, [r3, r2] - adds r0, #0xc - subs r1, r1, r0 - cmp r1, #0xb8 - bhi _080391B0 - movs r0, #0 - b _080391B2 - .align 2, 0 -_080391AC: .4byte gUnk_03000BF0 -_080391B0: - movs r0, #1 -_080391B2: - pop {r4, pc} - - thumb_func_start sub_080391B4 -sub_080391B4: @ 0x080391B4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x7a - ldrb r0, [r0] - cmp r0, #0 - beq _0803920C - adds r2, r5, #0 - adds r2, #0x7b - ldrb r1, [r2] - adds r0, r1, #1 - strb r0, [r2] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0803920C - movs r0, #0x41 - movs r1, #2 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0803920C - bl sub_08000E50 - movs r1, #0x17 - ands r1, r0 - lsls r1, r1, #2 - ldr r0, _08039210 @ =gUnk_080CF7C4 - adds r1, r1, r0 - ldr r2, _08039214 @ =gUnk_03000BF0 - ldrh r0, [r1] - ldrh r3, [r2, #0xa] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #0xc] - adds r0, r0, r2 - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] -_0803920C: - pop {r4, r5, pc} - .align 2, 0 -_08039210: .4byte gUnk_080CF7C4 -_08039214: .4byte gUnk_03000BF0 - - thumb_func_start sub_08039218 -sub_08039218: @ 0x08039218 - push {lr} - adds r2, r0, #0 - movs r0, #5 - strb r0, [r2, #0xc] - ldr r1, _08039254 @ =gUnk_080CF824 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x24] - ldr r1, _08039258 @ =gUnk_080CF828 - ldrb r0, [r2, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x78 - strh r1, [r0] - subs r0, #0x20 - ldrb r0, [r0] - cmp r0, #4 - beq _0803924C - adds r0, r2, #0 - movs r1, #4 - bl sub_08004260 -_0803924C: - ldr r0, _0803925C @ =0x000001D9 - bl sub_08004488 - pop {pc} - .align 2, 0 -_08039254: .4byte gUnk_080CF824 -_08039258: .4byte gUnk_080CF828 -_0803925C: .4byte 0x000001D9 - - thumb_func_start sub_08039260 -sub_08039260: @ 0x08039260 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08039290 @ =gUnk_080CF82E - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - ldrb r1, [r1] - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0803928E - ldr r0, _08039294 @ =gUnk_080CF82C - ldrb r1, [r4, #0x18] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x1f - adds r1, r1, r0 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] -_0803928E: - pop {r4, pc} - .align 2, 0 -_08039290: .4byte gUnk_080CF82E -_08039294: .4byte gUnk_080CF82C - - thumb_func_start sub_08039298 -sub_08039298: @ 0x08039298 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xb] - cmp r0, #0 - bne _080392A8 - adds r0, r1, #0 - bl sub_08078930 -_080392A8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080392AC -sub_080392AC: @ 0x080392AC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080392C8 @ =gUnk_080CF8A4 - bl sub_0800129E - movs r3, #0x12 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_080392C8: .4byte gUnk_080CF8A4 - - thumb_func_start sub_080392CC -sub_080392CC: @ 0x080392CC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080392FC @ =gUnk_080CF8BC - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - cmp r0, #0 - beq _0803930C - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08039300 - subs r1, #0x3d - movs r0, #0x45 - b _0803930A - .align 2, 0 -_080392FC: .4byte gUnk_080CF8BC -_08039300: - adds r0, r4, #0 - adds r0, #0x7d - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x3f -_0803930A: - strb r0, [r1] -_0803930C: - movs r0, #0x36 - ldrsh r1, [r4, r0] - cmp r1, #0 - beq _0803933A - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08039334 - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - b _0803933A -_08039334: - adds r0, r4, #0 - bl sub_08016A04 -_0803933A: - pop {r4, pc} - - thumb_func_start sub_0803933C -sub_0803933C: @ 0x0803933C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x44 - bne _08039390 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #6 - bgt _08039390 - cmp r1, #4 - blt _08039390 - adds r0, r5, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _08039390 - movs r0, #4 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r5, #0x15] - ldrb r0, [r5, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - movs r1, #0x10 - eors r0, r1 - asrs r0, r0, #3 - strb r0, [r5, #0x14] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_0803981C -_08039390: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r2, [r0] - cmp r2, #0x9d - bne _080393F8 - ldr r1, [r5, #0x54] - cmp r1, #0 - bne _080393CA - ldrb r0, [r5, #0xc] - cmp r0, #8 - bhi _080393EC - adds r0, r5, #0 - movs r1, #0x10 - movs r2, #1 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _080393DC - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - strb r0, [r1, #0x1e] - movs r0, #2 - strb r0, [r1, #0xb] - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_08004488 - b _080393DC -_080393CA: - adds r0, r1, #0 - adds r0, #0x41 - movs r4, #0 - strb r2, [r0] - movs r0, #0xc3 - lsls r0, r0, #1 - bl sub_08004488 - str r4, [r5, #0x54] -_080393DC: - adds r0, r5, #0 - bl sub_08039A48 - adds r1, r5, #0 - adds r1, #0x78 - ldrh r0, [r1] - adds r0, #0x5a - strh r0, [r1] -_080393EC: - adds r2, r5, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_080393F8: - adds r0, r5, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803940A - adds r0, r5, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803940A: - ldr r1, _08039414 @ =gUnk_080CF8A4 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08039414: .4byte gUnk_080CF8A4 - - thumb_func_start sub_08039418 -sub_08039418: @ 0x08039418 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0803942E - adds r0, r1, #0 - movs r1, #0xf3 - movs r2, #0 - bl sub_0804A7E0 - b _08039434 -_0803942E: - adds r0, r1, #0 - bl sub_0804A7D4 -_08039434: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08039438 -sub_08039438: @ 0x08039438 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08039454 - ldr r0, _08039458 @ =gUnk_080CF8EC - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08039454: - pop {r4, pc} - .align 2, 0 -_08039458: .4byte gUnk_080CF8EC - - thumb_func_start sub_0803945C -sub_0803945C: @ 0x0803945C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x5a - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_08039468 -sub_08039468: @ 0x08039468 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_08039470 -sub_08039470: @ 0x08039470 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x54] - cmp r2, #0 - bne _08039494 - movs r1, #0x10 - movs r2, #1 - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0803949C - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - strb r0, [r2, #0x1e] - movs r0, #1 - strb r0, [r2, #0xb] - b _0803949C -_08039494: - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] -_0803949C: - movs r0, #0 - str r0, [r4, #0x54] - adds r3, r4, #0 - adds r3, #0x3a - ldrb r2, [r3] - movs r1, #0xfb - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3] - adds r2, r4, #0 - adds r2, #0x3b - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - adds r0, r4, #0 - bl sub_08039A48 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - adds r0, #0x5a - strh r0, [r1] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080394CC -sub_080394CC: @ 0x080394CC - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x7b - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - subs r0, #0x3d - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_08039A00 - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0803950A - adds r0, r4, #0 - bl sub_0803998C - b _0803952A -_0803950A: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x15] - ldr r1, _0803952C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #3 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803981C -_0803952A: - pop {r4, pc} - .align 2, 0 -_0803952C: .4byte gLinkEntity - - thumb_func_start sub_08039530 -sub_08039530: @ 0x08039530 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _08039568 - adds r0, r4, #0 - bl sub_08039758 - cmp r0, #0 - bne _08039568 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08039568 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08039858 -_08039568: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803956C -sub_0803956C: @ 0x0803956C - push {r4, lr} - adds r4, r0, #0 - bl sub_08039758 - cmp r0, #0 - bne _0803958A - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803958A - adds r0, r4, #0 - bl sub_0803992C -_0803958A: - pop {r4, pc} - - thumb_func_start sub_0803958C -sub_0803958C: @ 0x0803958C - push {r4, lr} - adds r4, r0, #0 - bl sub_08039758 - cmp r0, #0 - bne _080395D4 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - beq _080395C0 - adds r0, r4, #0 - bl sub_080042B8 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080395D4 - adds r0, r4, #0 - bl sub_0803998C - b _080395D4 -_080395C0: - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - lsls r0, r0, #1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0803998C -_080395D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080395D8 -sub_080395D8: @ 0x080395D8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08039602 - adds r0, r4, #0 - bl sub_0803998C - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x5a - strb r0, [r1] - movs r0, #0x7d - bl sub_08004488 -_08039602: - pop {r4, pc} - - thumb_func_start sub_08039604 -sub_08039604: @ 0x08039604 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08039624 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] -_08039624: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08039628 -sub_08039628: @ 0x08039628 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - adds r1, r0, #0 - cmp r1, #0 - beq _0803963A - subs r0, #1 - strb r0, [r2, #0xe] - b _0803966A -_0803963A: - ldrh r0, [r2, #0x36] - adds r0, #4 - strh r0, [r2, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0803966A - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #0xa - strb r0, [r2, #0xe] - strh r1, [r2, #0x36] - adds r1, r2, #0 - adds r1, #0x7a - movs r0, #0x78 - strb r0, [r1] - adds r1, #2 - movs r0, #0x3c - strb r0, [r1] - adds r0, r2, #0 - bl sub_080399C4 - ldr r0, _0803966C @ =0x0000014B - bl sub_08004488 -_0803966A: - pop {pc} - .align 2, 0 -_0803966C: .4byte 0x0000014B - - thumb_func_start sub_08039670 -sub_08039670: @ 0x08039670 - 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 _08039686 - adds r0, r1, #0 - bl sub_0803998C -_08039686: - pop {pc} - - thumb_func_start sub_08039688 -sub_08039688: @ 0x08039688 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080396AC - adds r0, r4, #0 - movs r1, #0x3c - bl sub_08039A00 - adds r0, r4, #0 - bl sub_0803998C - b _080396BA -_080396AC: - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - bne _080396BA - adds r0, r4, #0 - bl sub_08039A20 -_080396BA: - pop {r4, pc} - - thumb_func_start sub_080396BC -sub_080396BC: @ 0x080396BC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _080396E2 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080396E2 - adds r0, r4, #0 - bl sub_08039A70 -_080396E2: - pop {r4, pc} - - thumb_func_start sub_080396E4 -sub_080396E4: @ 0x080396E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_080042B8 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08039708 - adds r0, r4, #0 - bl sub_08039AD4 -_08039708: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803970C -sub_0803970C: @ 0x0803970C - 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 _08039756 - ldrb r0, [r4, #0xb] - cmp r0, #1 - bne _0803973A - adds r0, r4, #0 - bl sub_0803998C - ldr r0, [r4, #0x54] - bl sub_0805E7BC - movs r0, #0 - str r0, [r4, #0x54] - b _08039740 -_0803973A: - adds r0, r4, #0 - bl sub_08039A48 -_08039740: - adds r2, r4, #0 - adds r2, #0x3b - ldrb r1, [r2] - movs r0, #4 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - adds r0, #0x3c - strh r0, [r1] -_08039756: - pop {r4, pc} - - thumb_func_start sub_08039758 -sub_08039758: @ 0x08039758 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7a - ldrb r0, [r5] - cmp r0, #0 - beq _0803976A - subs r0, #1 - strb r0, [r5] -_0803976A: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08039818 - ldrb r0, [r5] - cmp r0, #0 - bne _08039818 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080397DC - ldr r5, _080397D8 @ =gUnk_020000B0 - ldr r0, [r5] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _08039818 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r1, [r5] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #3 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803981C - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x46 - strb r0, [r1] - adds r1, #0x3e - strb r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #1 - b _0803981A - .align 2, 0 -_080397D8: .4byte gUnk_020000B0 -_080397DC: - ldr r5, _08039814 @ =gUnk_020000B0 - ldr r0, [r5] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x48 - bl sub_0806FCB8 - cmp r0, #0 - beq _08039818 - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r1, [r5] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl sub_080042AC - movs r0, #1 - b _0803981A - .align 2, 0 -_08039814: .4byte gUnk_020000B0 -_08039818: - movs r0, #0 -_0803981A: - pop {r4, r5, pc} - - thumb_func_start sub_0803981C -sub_0803981C: @ 0x0803981C - push {lr} - adds r2, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - adds r1, r2, #0 - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08039836 - movs r0, #0xf4 - strb r0, [r1] -_08039836: - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x45 - strb r0, [r1] - adds r1, #0x3e - strb r0, [r1] - ldrb r1, [r2, #0x14] - adds r1, #8 - adds r0, r2, #0 - bl sub_080042AC - ldr r0, _08039854 @ =0x0000012B - bl sub_08004488 - pop {pc} - .align 2, 0 -_08039854: .4byte 0x0000012B - - thumb_func_start sub_08039858 -sub_08039858: @ 0x08039858 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080398C0 - adds r6, r0, #0 - ldrb r0, [r5, #0x14] - lsls r4, r0, #3 - adds r0, r6, #4 - movs r1, #0x18 - ands r0, r1 - cmp r0, r4 - bne _0803988C - adds r1, r5, #0 - adds r1, #0x7b - ldrb r0, [r1] - cmp r0, #3 - bne _080398B8 - movs r0, #0 - strb r0, [r1] - bl sub_08000E50 - movs r1, #2 - ands r1, r0 - subs r1, #1 - lsls r1, r1, #3 - adds r6, r6, r1 -_0803988C: - subs r0, r6, r4 - movs r1, #0x1f - ands r0, r1 - lsrs r4, r0, #4 - movs r0, #1 - eors r4, r0 - ldr r1, _080398BC @ =gUnk_080CF8F8 - ldrb r0, [r5, #0x14] - lsls r0, r0, #1 - adds r0, r0, r4 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_080042AC - lsls r0, r4, #1 - ldrb r1, [r5, #0x14] - adds r0, r0, r1 - subs r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x14] -_080398B8: - pop {r4, r5, r6, pc} - .align 2, 0 -_080398BC: .4byte gUnk_080CF8F8 - - thumb_func_start sub_080398C0 -sub_080398C0: @ 0x080398C0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08039908 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08039908 - ldr r0, _08039900 @ =gUnk_020000B0 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x58 - bl sub_0806FCB8 - cmp r0, #0 - beq _08039908 - ldr r1, _08039904 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - b _08039928 - .align 2, 0 -_08039900: .4byte gUnk_020000B0 -_08039904: .4byte gLinkEntity -_08039908: - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08039922 - movs r0, #7 - ands r0, r5 - cmp r0, #0 - beq _08039922 - adds r0, r4, #0 - bl sub_08049EE4 - b _08039928 -_08039922: - lsrs r0, r5, #0x10 - movs r1, #0x18 - ands r0, r1 -_08039928: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803992C -sub_0803992C: @ 0x0803992C - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0xe0 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - strb r0, [r4, #0x15] - bl sub_08000E50 - ldr r2, _08039978 @ =gUnk_080CF900 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - ldrb r1, [r4, #0x15] - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE58C - ldr r1, _0803997C @ =gUnk_080CF910 - ldrb r2, [r4, #0x14] - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r0, [r4, #0x2a] - ands r0, r1 - cmp r0, #0 - beq _08039980 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080042AC - b _08039988 - .align 2, 0 -_08039978: .4byte gUnk_080CF900 -_0803997C: .4byte gUnk_080CF910 -_08039980: - adds r1, r2, #4 - adds r0, r4, #0 - bl sub_080042AC -_08039988: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803998C -sub_0803998C: @ 0x0803998C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x44 - strb r0, [r1] - adds r1, #0x3e - strb r0, [r1] - bl sub_08000E50 - ldr r2, _080399C0 @ =gUnk_080CF918 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 -_080399C0: .4byte gUnk_080CF918 - - thumb_func_start sub_080399C4 -sub_080399C4: @ 0x080399C4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080399E2 - ldrh r0, [r1, #0x2e] - subs r0, #4 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #2 - strh r0, [r1, #0x32] -_080399E2: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080399FE - ldrh r0, [r1, #0x2e] - adds r0, #4 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #2 - strh r0, [r1, #0x32] -_080399FE: - pop {r4, pc} - - thumb_func_start sub_08039A00 -sub_08039A00: @ 0x08039A00 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08000E50 - ldr r2, _08039A1C @ =gUnk_080CF928 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r5 - adds r4, #0x7a - strb r0, [r4] - pop {r4, r5, pc} - .align 2, 0 -_08039A1C: .4byte gUnk_080CF928 - - thumb_func_start sub_08039A20 -sub_08039A20: @ 0x08039A20 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08039A44 - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x3c - strb r0, [r1] - movs r0, #0xfb - bl sub_08004488 -_08039A44: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08039A48 -sub_08039A48: @ 0x08039A48 - push {lr} - adds r2, r0, #0 - movs r0, #9 - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x47 - strb r0, [r1] - adds r1, #0x3e - strb r0, [r1] - subs r1, #5 - movs r0, #0xa - strh r0, [r1] - ldrb r1, [r2, #0x14] - adds r1, #0x10 - adds r0, r2, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08039A70 -sub_08039A70: @ 0x08039A70 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa - strb r0, [r5, #0xc] - movs r0, #0xe0 - strh r0, [r5, #0x24] - bl sub_08000E50 - adds r4, r0, #0 - ldr r1, _08039AB8 @ =gUnk_080CF92C - movs r0, #3 - ands r0, r4 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x78 - strh r1, [r0] - lsrs r4, r4, #0x10 - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08039ABC - movs r0, #7 - ands r0, r4 - cmp r0, #0 - beq _08039ABC - adds r0, r5, #0 - bl sub_08049EE4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _08039AC2 - .align 2, 0 -_08039AB8: .4byte gUnk_080CF92C -_08039ABC: - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] -_08039AC2: - ldrb r0, [r5, #0x15] - lsrs r0, r0, #3 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0x14] - adds r1, #0x14 - adds r0, r5, #0 - bl sub_080042AC - pop {r4, r5, pc} - - thumb_func_start sub_08039AD4 -sub_08039AD4: @ 0x08039AD4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08039B28 - adds r5, r0, #0 - ldr r0, _08039B18 @ =0x0000FFFF - cmp r5, r0 - beq _08039B20 - ldrb r2, [r4, #0xb] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08039B20 - str r4, [r1, #0x50] - movs r0, #0xb - strb r0, [r4, #0xc] - str r1, [r4, #0x54] - ldrb r1, [r4, #0x14] - adds r1, #0x18 - adds r0, r4, #0 - bl sub_080042AC - ldr r0, _08039B1C @ =0x00004067 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r5, #0 - bl sub_0800015E - b _08039B26 - .align 2, 0 -_08039B18: .4byte 0x0000FFFF -_08039B1C: .4byte 0x00004067 -_08039B20: - adds r0, r4, #0 - bl sub_08039A48 -_08039B26: - pop {r4, r5, pc} - - thumb_func_start sub_08039B28 -sub_08039B28: @ 0x08039B28 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, [r6, #0x54] - cmp r0, #0 - bne _08039B84 - ldrb r2, [r6, #0x14] - lsls r2, r2, #1 - ldr r0, _08039B88 @ =gUnk_080CF930 - adds r2, r2, r0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r4, _08039B8C @ =gUnk_03000BF0 - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r5, r0, #4 - movs r3, #0x3f - ands r5, r3 - movs r1, #0x32 - ldrsh r0, [r6, r1] - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r5, r0 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_080002B0 - adds r2, r0, #0 - ldr r1, _08039B90 @ =gUnk_080CF938 -_08039B76: - ldrh r0, [r1] - cmp r0, r2 - beq _08039B98 - adds r1, #4 - ldrh r0, [r1] - cmp r0, #0 - bne _08039B76 -_08039B84: - ldr r0, _08039B94 @ =0x0000FFFF - b _08039B9E - .align 2, 0 -_08039B88: .4byte gUnk_080CF930 -_08039B8C: .4byte gUnk_03000BF0 -_08039B90: .4byte gUnk_080CF938 -_08039B94: .4byte 0x0000FFFF -_08039B98: - ldrh r0, [r1, #2] - strb r0, [r6, #0xb] - adds r0, r5, #0 -_08039B9E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08039BA0 -sub_08039BA0: @ 0x08039BA0 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080012DC - adds r1, r0, #0 - cmp r1, #0 - beq _08039BC4 - ldr r0, _08039BC0 @ =gUnk_080012C8 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 - b _08039BD8 - .align 2, 0 -_08039BC0: .4byte gUnk_080012C8 -_08039BC4: - ldr r4, _08039BDC @ =gUnk_080CFB84 - 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 -_08039BD8: - pop {r4, r5, pc} - .align 2, 0 -_08039BDC: .4byte gUnk_080CFB84 - - thumb_func_start sub_08039BE0 -sub_08039BE0: @ 0x08039BE0 - push {lr} - ldr r2, _08039BF4 @ =gUnk_080CFB9C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08039BF4: .4byte gUnk_080CFB9C - - thumb_func_start sub_08039BF8 -sub_08039BF8: @ 0x08039BF8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_0803A100 - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _08039C64 - movs r0, #7 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - movs r0, #0xa8 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08039C60 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - b _08039C72 - .align 2, 0 -_08039C60: .4byte gUnk_03000BF0 -_08039C64: - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08039C72 - adds r0, r5, #0 - bl sub_0803A0E0 -_08039C72: - ldr r1, _08039C7C @ =gUnk_080CFB84 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08039C7C: .4byte gUnk_080CFB84 - - thumb_func_start sub_08039C80 -sub_08039C80: @ 0x08039C80 - push {lr} - ldr r2, _08039C94 @ =gUnk_080CFBBC - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08039C94: .4byte gUnk_080CFBBC - - thumb_func_start sub_08039C98 -sub_08039C98: @ 0x08039C98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803A100 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r1, [r4, #0xe] - movs r0, #0x30 - strb r0, [r4, #0x1d] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08039CB0 -sub_08039CB0: @ 0x08039CB0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803A100 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08039CCA - adds r0, r4, #0 - bl sub_0806F4E8 - b _08039CDE -_08039CCA: - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - beq _08039CDE - adds r0, r4, #0 - bl sub_0803A0E0 -_08039CDE: - pop {r4, pc} - - thumb_func_start sub_08039CE0 -sub_08039CE0: @ 0x08039CE0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xe] - cmp r4, #0 - bne _08039D2A - bl sub_0803A100 - movs r0, #1 - strb r0, [r5, #0xe] - ldr r0, _08039D3C @ =0x0000FFFF - strh r0, [r5, #0x36] - adds r0, r5, #0 - adds r0, #0x62 - strb r4, [r0] - adds r0, #0x12 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08039D40 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_08039D2A: - adds r0, r5, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08039D44 - adds r0, r5, #0 - bl sub_0806F3E4 - b _08039D4A - .align 2, 0 -_08039D3C: .4byte 0x0000FFFF -_08039D40: .4byte gUnk_03000BF0 -_08039D44: - adds r0, r5, #0 - bl sub_0803A0E0 -_08039D4A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08039D4C -sub_08039D4C: @ 0x08039D4C - push {lr} - adds r2, r0, #0 - ldr r0, _08039D64 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08039D62 - adds r0, r2, #0 - bl sub_0803A0E0 -_08039D62: - pop {pc} - .align 2, 0 -_08039D64: .4byte gUnk_03003F80 - - thumb_func_start nullsub_166 -nullsub_166: @ 0x08039D68 - bx lr - .align 2, 0 - - thumb_func_start sub_08039D6C -sub_08039D6C: @ 0x08039D6C - push {lr} - bl sub_0803A0E0 - pop {pc} - - thumb_func_start sub_08039D74 -sub_08039D74: @ 0x08039D74 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xc] - movs r0, #2 - strb r0, [r5, #0x1c] - strb r1, [r5, #0x16] - ldrh r0, [r5, #0x32] - adds r0, #3 - strh r0, [r5, #0x32] - movs r0, #0x2e - ldrsh r4, [r5, r0] - ldr r1, _08039DD0 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r4, r4, r0 - asrs r4, r4, #4 - movs r2, #0x3f - ands r4, r2 - movs r3, #0x32 - ldrsh r0, [r5, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - adds r1, r5, #0 - adds r1, #0x74 - strh r0, [r1] - ldr r0, _08039DD4 @ =0x00004060 - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - pop {r4, r5, r6, pc} - .align 2, 0 -_08039DD0: .4byte gUnk_03000BF0 -_08039DD4: .4byte 0x00004060 - - thumb_func_start sub_08039DD8 -sub_08039DD8: @ 0x08039DD8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_0803A100 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08039E38 - adds r0, r5, #0 - bl sub_080002A0 - ldr r1, _08039E30 @ =0x00004073 - cmp r0, r1 - bne _08039E28 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08039E34 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r5, #0 - bl sub_0803A0E0 -_08039E28: - adds r0, r5, #0 - bl sub_08078930 - b _08039EC6 - .align 2, 0 -_08039E30: .4byte 0x00004073 -_08039E34: .4byte gUnk_03000BF0 -_08039E38: - ldr r0, _08039E6C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08039EC6 - ldr r2, _08039E70 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r6, #0x32 - ldrsh r2, [r2, r6] - adds r0, r5, #0 - movs r3, #0x30 - bl sub_0806FCB8 - cmp r0, #0 - beq _08039EC6 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _08039E74 - movs r0, #3 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xe] - b _08039EC6 - .align 2, 0 -_08039E6C: .4byte gUnk_03003F80 -_08039E70: .4byte gLinkEntity -_08039E74: - ldrb r1, [r5, #0xa] - subs r1, #2 - movs r0, #0x42 - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _08039EC6 - movs r0, #1 - strb r0, [r2, #0xb] - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08039EC8 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - adds r0, r5, #0 - bl sub_0805E7BC -_08039EC6: - pop {r4, r5, r6, pc} - .align 2, 0 -_08039EC8: .4byte gUnk_03000BF0 - - thumb_func_start sub_08039ECC -sub_08039ECC: @ 0x08039ECC - push {lr} - ldr r2, _08039EE0 @ =gUnk_080CFBD4 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08039EE0: .4byte gUnk_080CFBD4 - - thumb_func_start sub_08039EE4 -sub_08039EE4: @ 0x08039EE4 - push {r4, r5, r6, lr} - mov ip, r0 - movs r2, #0 - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xd] - ldrb r1, [r1, #0x10] - movs r0, #0x7f - ands r0, r1 - mov r3, ip - strb r0, [r3, #0x10] - strh r2, [r3, #0x2a] - ldr r0, _08039F40 @ =gUnk_080FD340 - str r0, [r3, #0x48] - ldr r0, _08039F44 @ =gLinkEntity - ldrb r0, [r0, #0x14] - mov r1, ip - adds r1, #0x76 - strb r0, [r1] - mov r0, ip - adds r0, #0x74 - ldrh r0, [r0] - movs r5, #0x2e - ldrsh r1, [r3, r5] - ldr r3, _08039F48 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - mov r6, ip - movs r5, #0x32 - ldrsh r2, [r6, r5] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - mov r2, ip - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E - pop {r4, r5, r6, pc} - .align 2, 0 -_08039F40: .4byte gUnk_080FD340 -_08039F44: .4byte gLinkEntity -_08039F48: .4byte gUnk_03000BF0 - - thumb_func_start sub_08039F4C -sub_08039F4C: @ 0x08039F4C - push {lr} - adds r3, r0, #0 - ldr r0, _08039F74 @ =gLinkEntity - movs r1, #0x76 - adds r1, r1, r3 - mov ip, r1 - ldrb r2, [r0, #0x14] - ldrb r0, [r1] - cmp r2, r0 - beq _08039F70 - subs r0, r2, r0 - ldrb r1, [r3, #0x1e] - adds r0, r0, r1 - movs r1, #6 - ands r0, r1 - strb r0, [r3, #0x1e] - mov r0, ip - strb r2, [r0] -_08039F70: - pop {pc} - .align 2, 0 -_08039F74: .4byte gLinkEntity - - thumb_func_start sub_08039F78 -sub_08039F78: @ 0x08039F78 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r3] - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r0, #0 - beq _08039F9C - ldrh r0, [r2, #0x2a] - cmp r0, #0 - beq _08039FA2 -_08039F9C: - adds r0, r2, #0 - bl sub_0803A0E0 -_08039FA2: - pop {pc} - - thumb_func_start sub_08039FA4 -sub_08039FA4: @ 0x08039FA4 - push {lr} - bl sub_0803A0E0 - pop {pc} - - thumb_func_start sub_08039FAC -sub_08039FAC: @ 0x08039FAC - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_0803A100 - adds r3, r5, #0 - adds r3, #0x62 - ldr r2, _0803A03C @ =gUnk_080CFBE4 - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0803A03A - movs r0, #4 - strb r0, [r5, #0xc] - 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, #8 - orrs r0, r1 - strb r0, [r2] - strb r4, [r3] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0xa0 - strb r0, [r1] - subs r1, #4 - movs r0, #0xf - strb r0, [r1] - ldr r0, _0803A040 @ =gUnk_080FD34C - str r0, [r5, #0x48] - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _0803A044 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r6, #0x32 - ldrsh r2, [r5, r6] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r5, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0803A03A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803A03C: .4byte gUnk_080CFBE4 -_0803A040: .4byte gUnk_080FD34C -_0803A044: .4byte gUnk_03000BF0 - - thumb_func_start sub_0803A048 -sub_0803A048: @ 0x0803A048 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, [r4, #0x34] - ldr r1, _0803A078 @ =0xFFFF0000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _0803A076 - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r1, _0803A07C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_0803A076: - pop {r4, pc} - .align 2, 0 -_0803A078: .4byte 0xFFFF0000 -_0803A07C: .4byte gLinkEntity - - thumb_func_start sub_0803A080 -sub_0803A080: @ 0x0803A080 - push {r4, 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 _0803A098 - movs r0, #6 - strb r0, [r4, #0xc] -_0803A098: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803A09C -sub_0803A09C: @ 0x0803A09C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_080AEFE0 - ldrh r0, [r4, #0x2a] - cmp r0, #0 - beq _0803A0B6 - adds r0, r4, #0 - bl sub_0803A0E0 -_0803A0B6: - pop {r4, pc} - - thumb_func_start sub_0803A0B8 -sub_0803A0B8: @ 0x0803A0B8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _0803A0CA - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_0803A0CA: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0803A0DE - adds r0, r4, #0 - bl sub_0803A0E0 -_0803A0DE: - pop {r4, pc} - - thumb_func_start sub_0803A0E0 -sub_0803A0E0: @ 0x0803A0E0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xb] - movs r2, #0 - movs r3, #0 - bl sub_0808288C - adds r2, r0, #0 - adds r0, r4, #0 - movs r1, #0x3c - bl CreateFX - bl sub_0805E780 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803A100 -sub_0803A100: @ 0x0803A100 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r3, _0803A14C @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - adds r6, r5, #0 - adds r6, #0x38 - ldrb r1, [r6] - adds r0, r4, #0 - bl sub_080001DA - ldr r1, _0803A150 @ =0x00004067 - cmp r0, r1 - bne _0803A148 - adds r0, r5, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrb r2, [r6] - adds r1, r4, #0 - bl sub_0800015E - bl sub_0805E780 -_0803A148: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803A14C: .4byte gUnk_03000BF0 -_0803A150: .4byte 0x00004067 - - thumb_func_start sub_0803A154 -sub_0803A154: @ 0x0803A154 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803A16C @ =gUnk_080CFC14 - 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 -_0803A16C: .4byte gUnk_080CFC14 - - thumb_func_start sub_0803A170 -sub_0803A170: @ 0x0803A170 - push {lr} - ldr r2, _0803A184 @ =gUnk_080CFC2C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803A184: .4byte gUnk_080CFC2C - - thumb_func_start sub_0803A188 -sub_0803A188: @ 0x0803A188 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xa] - cmp r3, #1 - bhi _0803A23E - ldrb r0, [r4, #0xc] - cmp r0, #0x2b - beq _0803A210 - adds r0, r4, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r1, #0 - ble _0803A23E - adds r0, #4 - ldrb r0, [r0] - cmp r0, #0x95 - beq _0803A1B2 - cmp r0, #0x8e - bne _0803A23E -_0803A1B2: - movs r0, #0x28 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r2, [r4, #0x50] - adds r0, r2, #0 - adds r0, #0x7d - ldrb r1, [r0] - cmp r3, #0 - bne _0803A1CE - movs r0, #1 - b _0803A1D0 -_0803A1CE: - movs r0, #2 -_0803A1D0: - orrs r1, r0 - adds r0, r2, #0 - adds r0, #0x7d - strb r1, [r0] - adds r0, #3 - ldrb r2, [r0] - ldrb r1, [r4, #0xa] - adds r3, r0, #0 - cmp r1, #0 - bne _0803A1E8 - movs r0, #1 - b _0803A1EA -_0803A1E8: - movs r0, #2 -_0803A1EA: - orrs r0, r2 - strb r0, [r3] - ldr r2, [r4, #0x54] - ldrb r1, [r5] - adds r0, r2, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r2, [r4, #0x74] - ldrb r1, [r5] - adds r0, r2, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r0, _0803A20C @ =0x00000127 - bl sub_080A3268 - b _0803A23E - .align 2, 0 -_0803A20C: .4byte 0x00000127 -_0803A210: - ldr r2, [r4, #0x54] - adds r3, r4, #0 - adds r3, #0x3d - ldrb r1, [r3] - adds r0, r2, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r2, [r4, #0x74] - ldrb r1, [r3] - adds r0, r2, #0 - adds r0, #0x3d - strb r1, [r0] - adds r0, r4, #0 - movs r1, #0x18 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #9 - bl sub_080042AC - ldr r0, _0803A248 @ =0x00000127 - bl sub_080A3268 -_0803A23E: - ldr r1, _0803A24C @ =gUnk_080CFC14 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_0803A248: .4byte 0x00000127 -_0803A24C: .4byte gUnk_080CFC14 - - thumb_func_start nullsub_167 -nullsub_167: @ 0x0803A250 - bx lr - .align 2, 0 - - thumb_func_start sub_0803A254 -sub_0803A254: @ 0x0803A254 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803A270 @ =gUnk_080CFC3C - 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 - bl sub_0803B538 - pop {r4, pc} - .align 2, 0 -_0803A270: .4byte gUnk_080CFC3C - - thumb_func_start sub_0803A274 -sub_0803A274: @ 0x0803A274 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0803A2C8 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x44 - bhi _0803A360 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0803A2CC - movs r0, #0x38 - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - movs r0, #0x44 - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - str r1, [r4, #0x74] - movs r0, #0x7e - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - ldr r0, [r4, #0x50] - movs r2, #0x80 - lsls r2, r2, #0xd - movs r3, #0x80 - lsls r3, r3, #0xe - adds r1, r4, #0 - bl PositionRelative - b _0803A310 - .align 2, 0 -_0803A2C8: .4byte gUnk_03003DBC -_0803A2CC: - movs r0, #0x38 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - movs r0, #0x44 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - str r1, [r4, #0x74] - movs r0, #0x7e - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x50] - ldr r2, _0803A34C @ =0xFFF00000 - movs r3, #0x80 - lsls r3, r3, #0xe - adds r1, r4, #0 - bl PositionRelative -_0803A310: - ldr r0, _0803A350 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _0803A354 - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r2, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r3, #1 - orrs r0, r3 - strb r0, [r4, #0x18] - ldr r2, [r4, #0x54] - ldrb r0, [r2, #0x18] - ands r1, r0 - orrs r1, r3 - strb r1, [r2, #0x18] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004260 - b _0803A360 - .align 2, 0 -_0803A34C: .4byte 0xFFF00000 -_0803A350: .4byte gUnk_030010A0 -_0803A354: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_0803A360: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803A364 -sub_0803A364: @ 0x0803A364 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A3A0 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xd] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0xb - bls _0803A394 - b _0803A52C -_0803A394: - lsls r0, r1, #2 - ldr r1, _0803A3A4 @ =_0803A3A8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803A3A0: .4byte gUnk_080CED6C -_0803A3A4: .4byte _0803A3A8 -_0803A3A8: @ jump table - .4byte _0803A546 @ case 0 - .4byte _0803A3D8 @ case 1 - .4byte _0803A546 @ case 2 - .4byte _0803A3FA @ case 3 - .4byte _0803A418 @ case 4 - .4byte _0803A434 @ case 5 - .4byte _0803A44E @ case 6 - .4byte _0803A468 @ case 7 - .4byte _0803A49A @ case 8 - .4byte _0803A4B2 @ case 9 - .4byte _0803A4CC @ case 10 - .4byte _0803A4FA @ case 11 -_0803A3D8: - movs r0, #2 - strb r0, [r4, #0xd] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x18] - subs r0, #6 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2, #0x19] - b _0803A546 -_0803A3FA: - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r2, [r4, #0x54] - ldrb r1, [r2, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x19] - b _0803A546 -_0803A418: - 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 - bne _0803A42E - b _0803A546 -_0803A42E: - movs r0, #5 - strb r0, [r4, #0xd] - b _0803A546 -_0803A434: - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - bne _0803A446 - adds r0, r4, #0 - bl sub_0806F69C - b _0803A546 -_0803A446: - movs r0, #0 - strb r0, [r4, #0xb] - movs r0, #6 - b _0803A516 -_0803A44E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A546 - movs r0, #7 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - b _0803A546 -_0803A468: - 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 _0803A546 - movs r0, #8 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #0xc - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - movs r1, #8 - bl sub_080042AC - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 - b _0803A546 -_0803A49A: - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803A546 - movs r0, #9 - b _0803A516 -_0803A4B2: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A546 - movs r0, #0xa - strb r0, [r4, #0xd] - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_080042AC - b _0803A546 -_0803A4CC: - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803A546 - movs r0, #0xb - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #0xf - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _0803A546 -_0803A4FA: - 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 _0803A546 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _0803A51E - movs r0, #0xc -_0803A516: - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _0803A546 -_0803A51E: - movs r0, #1 - strb r0, [r4, #0xb] - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0xa - strb r0, [r4, #0xe] - b _0803A546 -_0803A52C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A546 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0803B4D4 -_0803A546: - pop {r4, pc} - - thumb_func_start sub_0803A548 -sub_0803A548: @ 0x0803A548 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803B5C0 - adds r0, r4, #0 - bl sub_080042B8 - ldr r2, _0803A588 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - bne _0803A586 - adds r0, r4, #0 - bl sub_0806F69C -_0803A586: - pop {r4, pc} - .align 2, 0 -_0803A588: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A58C -sub_0803A58C: @ 0x0803A58C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A5C4 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803A5C8 - adds r0, r4, #0 - bl sub_0803B59C - b _0803A5CE - .align 2, 0 -_0803A5C4: .4byte gUnk_080CED6C -_0803A5C8: - adds r0, r4, #0 - bl sub_0806F69C -_0803A5CE: - pop {r4, pc} - - thumb_func_start sub_0803A5D0 -sub_0803A5D0: @ 0x0803A5D0 - push {lr} - movs r1, #5 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - ldr r3, _0803A608 @ =gUnk_080CED6C - ldr r1, [r0, #0x50] - ldrb r1, [r1, #0xf] - lsrs r1, r1, #4 - adds r1, #3 - ldrb r2, [r0, #0xa] - lsls r2, r2, #1 - adds r1, r1, r2 - movs r2, #7 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, #4 - strh r1, [r0, #0x36] - movs r1, #5 - bl sub_08004260 - pop {pc} - .align 2, 0 -_0803A608: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A60C -sub_0803A60C: @ 0x0803A60C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A65C @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - 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 _0803A658 - movs r0, #6 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0xa - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - movs r1, #8 - bl sub_080042AC -_0803A658: - pop {r4, pc} - .align 2, 0 -_0803A65C: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A660 -sub_0803A660: @ 0x0803A660 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - adds r5, r0, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r6, #0x80 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0803A6A8 - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x50 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803A688 - subs r0, r2, #2 - b _0803A6DC -_0803A688: - movs r1, #0 - movs r0, #7 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldr r1, _0803A6A4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0803A6DE - .align 2, 0 -_0803A6A4: .4byte gLinkEntity -_0803A6A8: - adds r0, r4, #0 - bl sub_0803B55C - ldrb r1, [r5] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0803A6BE - ldr r0, _0803A6E0 @ =0x00000157 - bl sub_080A3268 -_0803A6BE: - ldr r2, _0803A6E4 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 -_0803A6DC: - strh r0, [r4, #0x36] -_0803A6DE: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803A6E0: .4byte 0x00000157 -_0803A6E4: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A6E8 -sub_0803A6E8: @ 0x0803A6E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803B610 - cmp r0, #0 - beq _0803A6FE - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - b _0803A71E -_0803A6FE: - adds r0, r4, #0 - bl sub_0803B63C - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x50] - movs r1, #0x32 - ldrsh r0, [r0, r1] - adds r1, r0, #0 - adds r1, #8 - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0803A71E - strh r1, [r4, #0x32] -_0803A71E: - pop {r4, pc} - - thumb_func_start sub_0803A720 -sub_0803A720: @ 0x0803A720 - 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 _0803A73C - movs r0, #9 - strb r0, [r1, #0xc] - adds r0, r1, #0 - movs r1, #0x16 - bl sub_0803B8E8 -_0803A73C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803A740 -sub_0803A740: @ 0x0803A740 - push {lr} - adds r3, r0, #0 - ldrh r0, [r3, #0x36] - adds r0, #4 - strh r0, [r3, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0803A77E - movs r0, #0 - strh r0, [r3, #0x36] - movs r0, #0xa - strb r0, [r3, #0xc] - strb r0, [r3, #0xe] - ldr r1, [r3, #0x50] - adds r1, #0x7d - ldrb r2, [r1] - movs r0, #0x40 - orrs r0, r2 - strb r0, [r1] - adds r0, r3, #0 - movs r1, #0x13 - bl sub_0803B8E8 - movs r0, #0xa - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 -_0803A77E: - pop {pc} - - thumb_func_start sub_0803A780 -sub_0803A780: @ 0x0803A780 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A7AA - adds r1, r2, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ands r0, r3 - cmp r0, #0 - beq _0803A7A6 - movs r0, #6 - b _0803A7A8 -_0803A7A6: - movs r0, #0xb -_0803A7A8: - strb r0, [r2, #0xc] -_0803A7AA: - pop {pc} - - thumb_func_start sub_0803A7AC -sub_0803A7AC: @ 0x0803A7AC - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803A7C4 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _0803A7C8 -_0803A7C4: - movs r0, #0xc - strb r0, [r2, #0xc] -_0803A7C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803A7CC -sub_0803A7CC: @ 0x0803A7CC - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A808 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803A80C - movs r0, #0xd - strb r0, [r4, #0xc] - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_080042AC - b _0803A812 - .align 2, 0 -_0803A808: .4byte gUnk_080CED6C -_0803A80C: - adds r0, r4, #0 - bl sub_0806F69C -_0803A812: - pop {r4, pc} - - thumb_func_start sub_0803A814 -sub_0803A814: @ 0x0803A814 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A868 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803A864 - movs r0, #0xe - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x12 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_0803A864: - pop {r4, pc} - .align 2, 0 -_0803A868: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A86C -sub_0803A86C: @ 0x0803A86C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A8B4 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - 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 _0803A8B2 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0803B59C -_0803A8B2: - pop {r4, pc} - .align 2, 0 -_0803A8B4: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A8B8 -sub_0803A8B8: @ 0x0803A8B8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #0x10 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - ldr r2, _0803A904 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #1 - bl sub_080042AC - ldr r0, _0803A908 @ =0x00000153 - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_0803A904: .4byte gUnk_080CED6C -_0803A908: .4byte 0x00000153 - - thumb_func_start sub_0803A90C -sub_0803A90C: @ 0x0803A90C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A974 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803B55C - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803A970 - movs r0, #0x11 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - lsls r0, r0, #4 - adds r0, #8 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #7 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #2 - bl sub_080042AC -_0803A970: - pop {r4, pc} - .align 2, 0 -_0803A974: .4byte gUnk_080CED6C - - thumb_func_start sub_0803A978 -sub_0803A978: @ 0x0803A978 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803A9FC @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803B55C - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0803A9C2 - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004596 -_0803A9C2: - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0x15] - cmp r0, #0x10 - bne _0803A9F8 - movs r0, #0x12 - strb r0, [r4, #0xc] - movs r0, #3 - strb r0, [r4, #0xe] - ldrb r2, [r4, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x10] - ldr r2, [r4, #0x74] - ldrb r0, [r2, #0x10] - ands r1, r0 - strb r1, [r2, #0x10] - adds r0, r4, #0 - movs r1, #8 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #3 - bl sub_080042AC -_0803A9F8: - pop {r4, pc} - .align 2, 0 -_0803A9FC: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AA00 -sub_0803AA00: @ 0x0803AA00 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0803AA90 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B870 - cmp r0, #0 - bne _0803AA8E - ldrb r1, [r4, #0xa] - movs r0, #1 - eors r0, r1 - lsls r0, r0, #4 - adds r5, r0, #0 - adds r5, #8 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0803AA54 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08004596 -_0803AA54: - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0x15] - cmp r0, r5 - beq _0803AA6E - ldr r0, _0803AA94 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x32 - ldrsh r0, [r0, r2] - cmp r1, r0 - blt _0803AA8E -_0803AA6E: - movs r0, #0x13 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x17 - ands r0, r1 - strb r0, [r4, #0x18] - strb r5, [r4, #0x15] - ldr r0, _0803AA94 @ =gLinkEntity - ldrh r1, [r0, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldr r0, [r4, #0x54] - movs r1, #4 - bl sub_080042AC -_0803AA8E: - pop {r4, r5, pc} - .align 2, 0 -_0803AA90: .4byte gUnk_080CED6C -_0803AA94: .4byte gLinkEntity - - thumb_func_start sub_0803AA98 -sub_0803AA98: @ 0x0803AA98 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AB0C @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B870 - cmp r0, #0 - bne _0803AB0A - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0803B6F4 - cmp r0, #0 - beq _0803AB0A - movs r0, #0x14 - strb r0, [r4, #0xc] - movs r0, #0x40 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - ldr r2, [r4, #0x74] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldr r2, [r4, #0x54] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x13 - strb r0, [r1] - adds r0, r2, #0 - movs r1, #5 - bl sub_080042AC - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 -_0803AB0A: - pop {r4, pc} - .align 2, 0 -_0803AB0C: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AB10 -sub_0803AB10: @ 0x0803AB10 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AB58 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803AB56 - movs r0, #0x15 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] -_0803AB56: - pop {r4, pc} - .align 2, 0 -_0803AB58: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AB5C -sub_0803AB5C: @ 0x0803AB5C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803ABB0 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803ABAC - movs r0, #0x16 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x1a - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0xb - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_080042AC -_0803ABAC: - pop {r4, pc} - .align 2, 0 -_0803ABB0: .4byte gUnk_080CED6C - - thumb_func_start sub_0803ABB4 -sub_0803ABB4: @ 0x0803ABB4 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AC18 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803AC14 - movs r0, #0x17 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC -_0803AC14: - pop {r4, pc} - .align 2, 0 -_0803AC18: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AC1C -sub_0803AC1C: @ 0x0803AC1C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AC54 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803AC58 - adds r0, r4, #0 - bl sub_0803B59C - b _0803AC5E - .align 2, 0 -_0803AC54: .4byte gUnk_080CED6C -_0803AC58: - adds r0, r4, #0 - bl sub_0806F69C -_0803AC5E: - pop {r4, pc} - - thumb_func_start sub_0803AC60 -sub_0803AC60: @ 0x0803AC60 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803ACA8 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0803ACB4 - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803ACAC - movs r0, #0x19 - strb r0, [r4, #0xc] - movs r0, #0 - strb r0, [r4, #0xd] - movs r0, #0x1e - b _0803ACB6 - .align 2, 0 -_0803ACA8: .4byte gUnk_080CED6C -_0803ACAC: - adds r0, r4, #0 - bl sub_0806F69C - b _0803ACB8 -_0803ACB4: - subs r0, #1 -_0803ACB6: - strb r0, [r4, #0xe] -_0803ACB8: - adds r0, r4, #0 - bl sub_0803B824 - pop {r4, pc} - - thumb_func_start sub_0803ACC0 -sub_0803ACC0: @ 0x0803ACC0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - subs r0, #1 - cmp r0, #4 - bhi _0803ACF0 - lsls r0, r0, #2 - ldr r1, _0803ACD8 @ =_0803ACDC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803ACD8: .4byte _0803ACDC -_0803ACDC: @ jump table - .4byte _0803AD02 @ case 0 - .4byte _0803AD1A @ case 1 - .4byte _0803AD4A @ case 2 - .4byte _0803AD5C @ case 3 - .4byte _0803AD74 @ case 4 -_0803ACF0: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803ADA4 - movs r0, #1 - strb r0, [r4, #0xd] - b _0803ADA4 -_0803AD02: - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x20 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0803ADA4 - movs r0, #2 - strb r0, [r4, #0xd] - b _0803ADA4 -_0803AD1A: - ldrh r0, [r4, #0x36] - adds r0, #4 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0803ADA4 - movs r0, #0 - strh r0, [r4, #0x36] - movs r0, #0xc - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #8 - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0803B804 - b _0803ADA4 -_0803AD4A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803ADA4 - movs r0, #4 - strb r0, [r4, #0xd] - b _0803ADA4 -_0803AD5C: - ldrh r0, [r4, #0x36] - subs r0, #2 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x28 - rsbs r1, r1, #0 - cmp r0, r1 - bge _0803ADA4 - movs r0, #5 - strb r0, [r4, #0xd] - b _0803ADA4 -_0803AD74: - ldrh r0, [r4, #0x36] - adds r0, #4 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - blt _0803ADA4 - movs r0, #0 - strh r0, [r4, #0x36] - movs r0, #0x1a - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x1e - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_0803B804 - b _0803ADAA -_0803ADA4: - adds r0, r4, #0 - bl sub_0803B824 -_0803ADAA: - pop {r4, pc} - - thumb_func_start sub_0803ADAC -sub_0803ADAC: @ 0x0803ADAC - 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 _0803ADEC - movs r0, #0x16 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x1a - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r2, [r4, #0x74] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r4, #0 - movs r1, #0xb - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #6 - bl sub_080042AC - bl sub_0803B798 - b _0803ADF2 -_0803ADEC: - adds r0, r4, #0 - bl sub_0803B824 -_0803ADF2: - pop {r4, pc} - - thumb_func_start sub_0803ADF4 -sub_0803ADF4: @ 0x0803ADF4 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AE44 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_080042B8 - 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 _0803AE42 - movs r0, #0x1c - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - strb r0, [r4, #0x18] -_0803AE42: - pop {r4, pc} - .align 2, 0 -_0803AE44: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AE48 -sub_0803AE48: @ 0x0803AE48 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AEAC @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803AE82 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803AEB0 -_0803AE82: - ldr r0, [r4, #0x50] - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0803AEB0 - movs r0, #0x1d - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x21 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - b _0803AEC0 - .align 2, 0 -_0803AEAC: .4byte gUnk_080CED6C -_0803AEB0: - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - bne _0803AEC0 - adds r0, r4, #0 - bl sub_0806F69C -_0803AEC0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803AEC4 -sub_0803AEC4: @ 0x0803AEC4 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803AF14 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_080042B8 - 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 _0803AF10 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0803B59C -_0803AF10: - pop {r4, pc} - .align 2, 0 -_0803AF14: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AF18 -sub_0803AF18: @ 0x0803AF18 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x1f - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - ldr r2, _0803AF4C @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - pop {r4, pc} - .align 2, 0 -_0803AF4C: .4byte gUnk_080CED6C - - thumb_func_start sub_0803AF50 -sub_0803AF50: @ 0x0803AF50 - 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 _0803AF7A - movs r0, #0x20 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x24 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x54] - movs r1, #8 - bl sub_080042AC -_0803AF7A: - pop {r4, pc} - - thumb_func_start sub_0803AF7C -sub_0803AF7C: @ 0x0803AF7C - push {r4, lr} - adds r4, r0, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803AF9A - movs r0, #0x21 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] -_0803AF9A: - pop {r4, pc} - - thumb_func_start sub_0803AF9C -sub_0803AF9C: @ 0x0803AF9C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0803AFAA - subs r0, #1 - b _0803AFC4 -_0803AFAA: - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803AFBE - subs r0, r3, #2 - strh r0, [r2, #0x36] - b _0803AFC6 -_0803AFBE: - movs r0, #0x22 - strb r0, [r2, #0xc] - movs r0, #0xa -_0803AFC4: - strb r0, [r2, #0xe] -_0803AFC6: - pop {pc} - - thumb_func_start sub_0803AFC8 -sub_0803AFC8: @ 0x0803AFC8 - 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 _0803AFDC - movs r0, #0x23 - strb r0, [r1, #0xc] -_0803AFDC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803AFE0 -sub_0803AFE0: @ 0x0803AFE0 - push {lr} - adds r3, r0, #0 - ldrh r1, [r3, #0x36] - movs r2, #0x36 - ldrsh r0, [r3, r2] - cmp r0, #0 - bge _0803AFF4 - adds r0, r1, #4 - strh r0, [r3, #0x36] - b _0803B018 -_0803AFF4: - movs r2, #0 - movs r0, #0x24 - strb r0, [r3, #0xc] - movs r0, #0xf0 - strb r0, [r3, #0xe] - adds r1, r3, #0 - adds r1, #0x84 - movs r0, #3 - strb r0, [r1] - strh r2, [r3, #0x36] - movs r0, #0xa0 - movs r1, #0 - bl sub_08080964 - movs r0, #0xac - lsls r0, r0, #1 - bl sub_080A3268 -_0803B018: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B01C -sub_0803B01C: @ 0x0803B01C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r1, r0, #1 - strb r1, [r2, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803B032 - movs r0, #0x25 - strb r0, [r2, #0xc] - b _0803B048 -_0803B032: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x46 - bls _0803B048 - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _0803B048 - adds r0, r2, #0 - bl sub_0803B724 -_0803B048: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B04C -sub_0803B04C: @ 0x0803B04C - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803B064 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _0803B070 -_0803B064: - movs r0, #0x26 - strb r0, [r2, #0xc] - ldr r0, [r2, #0x54] - movs r1, #6 - bl sub_080042AC -_0803B070: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B074 -sub_0803B074: @ 0x0803B074 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803B0D0 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B55C - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803B0CC - movs r0, #0x27 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x2b - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC -_0803B0CC: - pop {r4, pc} - .align 2, 0 -_0803B0D0: .4byte gUnk_080CED6C - - thumb_func_start sub_0803B0D4 -sub_0803B0D4: @ 0x0803B0D4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - 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 _0803B0FE - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0803B59C -_0803B0FE: - pop {r4, pc} - - thumb_func_start sub_0803B100 -sub_0803B100: @ 0x0803B100 - push {lr} - adds r2, r0, #0 - movs r0, #0x29 - strb r0, [r2, #0xc] - movs r0, #0xa0 - lsls r0, r0, #9 - str r0, [r2, #0x20] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0803B11C - ldr r0, _0803B118 @ =gUnk_080FD364 - b _0803B11E - .align 2, 0 -_0803B118: .4byte gUnk_080FD364 -_0803B11C: - ldr r0, _0803B13C @ =gUnk_080FD374 -_0803B11E: - str r0, [r2, #0x48] - ldr r0, [r2, #0x74] - movs r1, #3 - strb r1, [r0, #0xc] - adds r0, #0x74 - movs r1, #0x20 - strb r1, [r0] - ldr r0, [r2, #0x54] - movs r1, #9 - bl sub_080042AC - ldr r0, _0803B140 @ =0x0000014F - bl sub_080A3268 - pop {pc} - .align 2, 0 -_0803B13C: .4byte gUnk_080FD374 -_0803B140: .4byte 0x0000014F - - thumb_func_start sub_0803B144 -sub_0803B144: @ 0x0803B144 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0803B178 - movs r0, #0x2a - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x16 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x14 - bl sub_0803B8E8 - movs r0, #8 - movs r1, #0 - bl sub_08080964 -_0803B178: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803B17C -sub_0803B17C: @ 0x0803B17C - 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 _0803B1B4 - movs r0, #0x2b - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x18 - strb r0, [r1] - adds r1, #6 - movs r0, #0xff - strb r0, [r1] - adds r1, #0x39 - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r1] -_0803B1B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803B1B8 -sub_0803B1B8: @ 0x0803B1B8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803B1D4 - adds r0, r5, #0 - bl sub_08004274 - ldr r0, [r5, #0x54] - bl sub_080042B8 -_0803B1D4: - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0xf4 - bhi _0803B2B8 - movs r0, #0x32 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x7e - ldr r0, _0803B284 @ =0x000005DC - strh r0, [r1] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] - adds r1, r5, #0 - adds r1, #0x3f - movs r0, #0x14 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _0803B23A - ldr r0, [r5, #0x48] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r0, [r5, #0x48] - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - 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] -_0803B23A: - movs r0, #0 - movs r1, #0x5e - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0803B268 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #0x90 - strb r0, [r4, #0x15] - ldr r0, [r5, #0x48] - movs r2, #0 - ldrsb r2, [r0, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r0, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative -_0803B268: - ldr r4, [r5, #0x74] - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #0x40 - strb r0, [r1] - ldr r4, [r5, #0x50] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r1, [r0] - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0803B288 - movs r0, #4 - b _0803B28A - .align 2, 0 -_0803B284: .4byte 0x000005DC -_0803B288: - movs r0, #8 -_0803B28A: - orrs r1, r0 - adds r0, r4, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0xc - ands r0, r1 - cmp r0, #0xc - bne _0803B2CE - movs r0, #0xb - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0 - str r0, [r4, #0x20] - ldr r0, [r4, #0x74] - adds r0, #0x7e - movs r1, #0xe1 - lsls r1, r1, #3 - strh r1, [r0] - ldr r0, [r4, #0x78] - adds r0, #0x7e - strh r1, [r0] - b _0803B2CE -_0803B2B8: - adds r1, r5, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803B2CE - adds r0, r5, #0 - bl sub_0803B6A4 -_0803B2CE: - pop {r4, r5, pc} - - thumb_func_start sub_0803B2D0 -sub_0803B2D0: @ 0x0803B2D0 - 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 _0803B30A - movs r2, #0 - movs r0, #0x2d - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x31 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x74] - movs r1, #2 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x74 - strb r2, [r1] - adds r1, #4 - strh r2, [r1] - movs r1, #3 - bl sub_08004260 -_0803B30A: - pop {r4, pc} - - thumb_func_start sub_0803B30C -sub_0803B30C: @ 0x0803B30C - push {r4, lr} - adds r2, r0, #0 - ldr r4, [r2, #0x74] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803B334 - movs r0, #0x2e - strb r0, [r2, #0xc] - adds r0, r2, #0 - movs r1, #0x13 - bl sub_0803B8E8 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0803B334: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803B338 -sub_0803B338: @ 0x0803B338 - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0xa - rsbs r0, r0, #0 - cmp r1, r0 - ble _0803B350 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _0803B358 -_0803B350: - movs r0, #0x2f - strb r0, [r2, #0xc] - movs r0, #0xf - strb r0, [r2, #0xe] -_0803B358: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B35C -sub_0803B35C: @ 0x0803B35C - push {lr} - adds r3, r0, #0 - ldr r2, _0803B394 @ =gUnk_080CED6C - ldr r0, [r3, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r3, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r3, #0x36] - ldrb r0, [r3, #0xe] - subs r0, #1 - strb r0, [r3, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803B390 - movs r0, #0x30 - strb r0, [r3, #0xc] -_0803B390: - pop {pc} - .align 2, 0 -_0803B394: .4byte gUnk_080CED6C - - thumb_func_start sub_0803B398 -sub_0803B398: @ 0x0803B398 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0803B3E8 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - adds r0, r4, #0 - bl sub_0803B4E4 - cmp r0, #0 - beq _0803B3EC - movs r0, #0x31 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #0x35 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - ldr r0, [r4, #0x54] - movs r1, #0 - bl sub_080042AC - b _0803B3F2 - .align 2, 0 -_0803B3E8: .4byte gUnk_080CED6C -_0803B3EC: - adds r0, r4, #0 - bl sub_0806F69C -_0803B3F2: - pop {r4, pc} - - thumb_func_start sub_0803B3F4 -sub_0803B3F4: @ 0x0803B3F4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0803B440 @ =gUnk_080CED6C - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xf] - lsrs r0, r0, #4 - adds r0, #3 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - adds r0, r0, r1 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - strh r0, [r4, #0x36] - 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 _0803B47C - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x17 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0803B448 - ldr r0, _0803B444 @ =gUnk_080FD35C - b _0803B44A - .align 2, 0 -_0803B440: .4byte gUnk_080CED6C -_0803B444: .4byte gUnk_080FD35C -_0803B448: - ldr r0, _0803B468 @ =gUnk_080FD36C -_0803B44A: - str r0, [r4, #0x48] - ldr r0, [r4, #0x50] - ldrb r2, [r4, #0xa] - movs r1, #2 - cmp r2, #0 - bne _0803B458 - movs r1, #1 -_0803B458: - adds r0, #0x80 - ldrb r3, [r0] - adds r5, r0, #0 - cmp r2, #0 - bne _0803B46C - movs r0, #0x10 - b _0803B46E - .align 2, 0 -_0803B468: .4byte gUnk_080FD36C -_0803B46C: - movs r0, #0x20 -_0803B46E: - orrs r1, r0 - adds r0, r3, #0 - bics r0, r1 - strb r0, [r5] - adds r0, r4, #0 - bl sub_0803B59C -_0803B47C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803B480 -sub_0803B480: @ 0x0803B480 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7e - ldrh r1, [r0] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0803B4B6 - movs r0, #0x2d - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _0803B4B6 - ldr r0, _0803B4D0 @ =gUnk_080CFD08 - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - adds r0, r4, #0 - adds r1, r3, #0 - movs r3, #0 - bl PositionRelative -_0803B4B6: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803B4CC - adds r0, r4, #0 - bl sub_0803B6A4 -_0803B4CC: - pop {r4, pc} - .align 2, 0 -_0803B4D0: .4byte gUnk_080CFD08 - - thumb_func_start sub_0803B4D4 -sub_0803B4D4: @ 0x0803B4D4 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0x10 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B4E4 -sub_0803B4E4: @ 0x0803B4E4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x50] - movs r0, #0x2e - ldrsh r3, [r2, r0] - ldr r1, _0803B52C @ =gUnk_080CFD0A - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r3, r0 - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r6, r0, #0 - adds r6, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - movs r3, #2 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803B530 - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r5, #0 - adds r3, r6, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - movs r0, #0 - b _0803B536 - .align 2, 0 -_0803B52C: .4byte gUnk_080CFD0A -_0803B530: - strh r5, [r4, #0x2e] - strh r6, [r4, #0x32] - movs r0, #1 -_0803B536: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803B538 -sub_0803B538: @ 0x0803B538 - push {r4, lr} - adds r4, r0, #0 - ldr r1, [r4, #0x54] - ldr r3, _0803B554 @ =0xFFFF0000 - movs r2, #0 - bl PositionRelative - ldr r1, [r4, #0x74] - ldr r3, _0803B558 @ =0xFFFE0000 - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative - pop {r4, pc} - .align 2, 0 -_0803B554: .4byte 0xFFFF0000 -_0803B558: .4byte 0xFFFE0000 - - thumb_func_start sub_0803B55C -sub_0803B55C: @ 0x0803B55C - push {r4, r5, lr} - ldr r5, [r0, #0x74] - ldr r4, [r0, #0x54] - adds r0, r4, #0 - bl sub_080042B8 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803B588 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - beq _0803B59A - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 - b _0803B59A -_0803B588: - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0803B59A - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 -_0803B59A: - pop {r4, r5, pc} - - thumb_func_start sub_0803B59C -sub_0803B59C: @ 0x0803B59C - push {lr} - movs r3, #2 - strb r3, [r0, #0xc] - ldr r2, [r0, #0x50] - adds r1, r2, #0 - adds r1, #0x7d - ldrb r1, [r1] - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _0803B5B6 - movs r0, #1 - orrs r1, r0 - b _0803B5B8 -_0803B5B6: - orrs r1, r3 -_0803B5B8: - adds r0, r2, #0 - adds r0, #0x7d - strb r1, [r0] - pop {pc} - - thumb_func_start sub_0803B5C0 -sub_0803B5C0: @ 0x0803B5C0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803B5E8 @ =gLinkEntity - bl sub_080045C4 - adds r2, r0, #0 - cmp r2, #9 - bhi _0803B5D2 - movs r2, #0xa -_0803B5D2: - cmp r2, #0x16 - bls _0803B5D8 - movs r2, #0x16 -_0803B5D8: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0803B5F0 - ldr r1, _0803B5EC @ =gUnk_080CFD0C - adds r0, r2, #0 - subs r0, #0xa - b _0803B5F6 - .align 2, 0 -_0803B5E8: .4byte gLinkEntity -_0803B5EC: .4byte gUnk_080CFD0C -_0803B5F0: - ldr r1, _0803B60C @ =gUnk_080CFD0C - movs r0, #0x16 - subs r0, r0, r2 -_0803B5F6: - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, r1 - beq _0803B60A - adds r0, r4, #0 - bl sub_08004260 -_0803B60A: - pop {r4, pc} - .align 2, 0 -_0803B60C: .4byte gUnk_080CFD0C - - thumb_func_start sub_0803B610 -sub_0803B610: @ 0x0803B610 - push {r4, lr} - ldr r4, _0803B634 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r4, r2] - ldr r3, _0803B638 @ =gUnk_080CFD19 - ldrb r2, [r0, #0xa] - adds r2, r2, r3 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r2, #0xc - movs r3, #8 - bl sub_0806FCB8 - pop {r4, pc} - .align 2, 0 -_0803B634: .4byte gLinkEntity -_0803B638: .4byte gUnk_080CFD19 - - thumb_func_start sub_0803B63C -sub_0803B63C: @ 0x0803B63C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0803B680 @ =gLinkEntity - movs r0, #0x2e - ldrsh r3, [r2, r0] - ldr r1, _0803B684 @ =gUnk_080CFD19 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r3, r3, r0 - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r5, r0, #0 - subs r5, #0xc - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb4 - bls _0803B688 - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r3, #0 - adds r3, r5, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - b _0803B6A0 - .align 2, 0 -_0803B680: .4byte gLinkEntity -_0803B684: .4byte gUnk_080CFD19 -_0803B688: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r3, #0 - adds r3, r5, #0 - bl sub_080045D4 - - thumb_func_start sub_0803B698 -sub_0803B698: @ 0x0803B698 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_0803B6A0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803B6A4 -sub_0803B6A4: @ 0x0803B6A4 - push {r4, lr} - adds r2, r0, #0 - movs r0, #0x2c - strb r0, [r2, #0xc] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x14 - strb r0, [r1] - ldr r3, [r2, #0x50] - adds r0, r3, #0 - adds r0, #0x80 - ldrb r1, [r0] - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0803B6C6 - movs r0, #0x10 - b _0803B6C8 -_0803B6C6: - movs r0, #0x20 -_0803B6C8: - orrs r1, r0 - adds r0, r3, #0 - adds r0, #0x80 - strb r1, [r0] - ldrb r3, [r0] - ldrb r1, [r2, #0xa] - adds r4, r0, #0 - cmp r1, #0 - bne _0803B6E0 - movs r0, #5 - rsbs r0, r0, #0 - b _0803B6E4 -_0803B6E0: - movs r0, #9 - rsbs r0, r0, #0 -_0803B6E4: - ands r0, r3 - strb r0, [r4] - adds r0, r2, #0 - movs r1, #0x17 - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803B6F4 -sub_0803B6F4: @ 0x0803B6F4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _0803B710 - adds r0, r2, #0 - adds r0, #0x80 - ldrh r1, [r0] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r1, r0 - ble _0803B71E -_0803B70C: - movs r0, #1 - b _0803B720 -_0803B710: - adds r0, r2, #0 - adds r0, #0x80 - ldrh r1, [r0] - movs r3, #0x2e - ldrsh r0, [r2, r3] - cmp r1, r0 - blt _0803B70C -_0803B71E: - movs r0, #0 -_0803B720: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803B724 -sub_0803B724: @ 0x0803B724 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xf] - cmp r0, #2 - bhi _0803B78E - adds r6, r5, #0 - adds r6, #0x84 - ldrb r0, [r6] - cmp r0, #0 - beq _0803B78E - movs r0, #7 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - cmp r4, #0 - beq _0803B78E - movs r0, #1 - strb r0, [r4, #0xb] - bl sub_08000E50 - ldr r2, _0803B790 @ =gUnk_080CFD1B - ldrb r1, [r5, #0xa] - adds r1, r1, r2 - movs r3, #0x70 - adds r2, r0, #0 - ands r2, r3 - ldrb r1, [r1] - adds r2, r2, r1 - ldr r3, _0803B794 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - adds r1, r1, r2 - strh r1, [r4, #0x2e] - lsrs r0, r0, #0x10 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, #0x5c - ldrh r3, [r3, #8] - adds r1, r1, r3 - strh r1, [r4, #0x32] - str r5, [r4, #0x50] - adds r0, r4, #0 - bl sub_08016A30 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - ldrb r0, [r6] - subs r0, #1 - strb r0, [r6] -_0803B78E: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803B790: .4byte gUnk_080CFD1B -_0803B794: .4byte gUnk_03000BF0 - - thumb_func_start sub_0803B798 -sub_0803B798: @ 0x0803B798 - ldr r2, _0803B7F4 @ =gUnk_03003F80 - movs r1, #0 - movs r0, #0x41 - strb r0, [r2, #2] - strb r1, [r2, #0xa] - ldr r0, [r2, #0x30] - ldr r1, _0803B7F8 @ =0x0000FFEF - ands r0, r1 - str r0, [r2, #0x30] - ldr r3, _0803B7FC @ =gLinkEntity - ldrb r1, [r3, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r3, #0x10] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r3, #0x20] - movs r2, #0 - ldr r0, _0803B800 @ =0x0000FFF6 - strh r0, [r3, #0x36] - movs r0, #0x10 - strb r0, [r3, #0x15] - movs r0, #4 - strb r0, [r3, #0x14] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x63 - strb r2, [r0] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] - bx lr - .align 2, 0 -_0803B7F4: .4byte gUnk_03003F80 -_0803B7F8: .4byte 0x0000FFEF -_0803B7FC: .4byte gLinkEntity -_0803B800: .4byte 0x0000FFF6 - - thumb_func_start sub_0803B804 -sub_0803B804: @ 0x0803B804 - push {r4, lr} - ldr r4, _0803B820 @ =gLinkEntity - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x1e - strb r0, [r1] - subs r0, #0x22 - bl sub_080526A0 - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C - pop {r4, pc} - .align 2, 0 -_0803B820: .4byte gLinkEntity - - thumb_func_start sub_0803B824 -sub_0803B824: @ 0x0803B824 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08077B2C - ldr r2, _0803B864 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - ldr r4, _0803B868 @ =gLinkEntity - ldr r1, _0803B86C @ =gUnk_080CFD1D - ldrb r0, [r5, #0xa] - adds r0, r0, r1 - movs r2, #0 - ldrsb r2, [r0, r2] - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #1 - bl sub_0806FA90 - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfa - strb r0, [r1] - adds r4, #0x29 - ldrb r1, [r4] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4] - pop {r4, r5, pc} - .align 2, 0 -_0803B864: .4byte gUnk_03003F80 -_0803B868: .4byte gLinkEntity -_0803B86C: .4byte gUnk_080CFD1D - - thumb_func_start sub_0803B870 -sub_0803B870: @ 0x0803B870 - push {r4, lr} - adds r3, r0, #0 - ldr r4, [r3, #0x54] - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803B8DC - ldr r0, _0803B8D4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803B8DC - movs r0, #0x18 - strb r0, [r3, #0xc] - movs r0, #0x44 - strb r0, [r3, #0xe] - ldrb r1, [r3, #0x18] - subs r0, #0x48 - ands r0, r1 - strb r0, [r3, #0x18] - ldr r1, _0803B8D8 @ =gLinkEntity - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - adds r1, #0x3d - movs r0, #0xf0 - strb r0, [r1] - adds r0, r3, #0 - bl sub_0803B824 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x13 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #1 - b _0803B8E6 - .align 2, 0 -_0803B8D4: .4byte gUnk_03003F80 -_0803B8D8: .4byte gLinkEntity -_0803B8DC: - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x15 - strb r0, [r1] - movs r0, #0 -_0803B8E6: - pop {r4, pc} - - thumb_func_start sub_0803B8E8 -sub_0803B8E8: @ 0x0803B8E8 - ldr r2, [r0, #0x54] - adds r2, #0x3f - strb r1, [r2] - ldr r2, [r0, #0x74] - adds r0, r2, #0 - adds r0, #0x3f - strb r1, [r0] - bx lr - - thumb_func_start sub_0803B8F8 -sub_0803B8F8: @ 0x0803B8F8 - push {lr} - ldr r2, _0803B90C @ =gUnk_080CFD20 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803B90C: .4byte gUnk_080CFD20 - - thumb_func_start sub_0803B910 -sub_0803B910: @ 0x0803B910 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0803B940 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _0803B944 - movs r2, #0 - 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] - adds r0, r4, #0 - adds r0, #0x74 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #0xa - bl sub_0803BA8C - b _0803B950 - .align 2, 0 -_0803B940: .4byte gUnk_030010A0 -_0803B944: - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - movs r0, #0x80 - strb r0, [r1] -_0803B950: - ldrb r1, [r4, #0xa] - subs r1, #2 - movs r0, #1 - 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] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA6C - pop {r4, pc} - - thumb_func_start sub_0803B978 -sub_0803B978: @ 0x0803B978 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #5 - bhi _0803BA34 - lsls r0, r0, #2 - ldr r1, _0803B98C @ =_0803B990 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803B98C: .4byte _0803B990 -_0803B990: @ jump table - .4byte _0803BA66 @ case 0 - .4byte _0803B9A8 @ case 1 - .4byte _0803B9C0 @ case 2 - .4byte _0803BA46 @ case 3 - .4byte _0803BA14 @ case 4 - .4byte _0803BA40 @ case 5 -_0803B9A8: - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - movs r0, #0x1e - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - ldr r0, _0803BA10 @ =0x000001A9 - bl sub_080A3268 -_0803B9C0: - ldrb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_0803BA8C - adds r0, r4, #0 - adds r0, #0x75 - adds r5, r4, #0 - adds r5, #0x74 - ldrb r1, [r0] - ldrb r0, [r5] - orrs r0, r1 - cmp r0, #0 - bne _0803B9E0 - ldr r0, _0803BA10 @ =0x000001A9 - bl sub_080A3268 -_0803B9E0: - ldrb r0, [r5] - cmp r0, #0 - bne _0803BA66 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803BA66 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xf] - subs r0, #4 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _0803BA66 - ldr r0, [r4, #0x50] - ldr r1, [r0, #0x50] - movs r0, #3 - strb r0, [r1, #0xd] - strb r0, [r4, #0xd] - b _0803BA66 - .align 2, 0 -_0803BA10: .4byte 0x000001A9 -_0803BA14: - movs r0, #5 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #9 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - b _0803BA46 -_0803BA34: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - subs r0, #0xf - ands r0, r1 - strb r0, [r4, #0x19] -_0803BA40: - adds r0, r4, #0 - bl sub_08004274 -_0803BA46: - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0803BA8C - adds r1, r4, #0 - adds r1, #0x75 - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r1] - ldrb r0, [r0] - orrs r0, r1 - cmp r0, #0 - bne _0803BA66 - ldr r0, _0803BA68 @ =0x000001A9 - bl sub_080A3268 -_0803BA66: - pop {r4, r5, pc} - .align 2, 0 -_0803BA68: .4byte 0x000001A9 - - thumb_func_start sub_0803BA6C -sub_0803BA6C: @ 0x0803BA6C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xa - bl sub_0803BA8C - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803BA80 -sub_0803BA80: @ 0x0803BA80 - push {lr} - movs r1, #0xa - bl sub_0803BA8C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803BA8C -sub_0803BA8C: @ 0x0803BA8C - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r1, #0 - adds r4, r6, #0 - adds r4, #0x74 - ldrb r3, [r4] - movs r2, #0xe0 - ands r2, r3 - cmp r2, #0 - bne _0803BAEC - cmp r3, #0 - bne _0803BAD2 - adds r2, r6, #0 - adds r2, #0x75 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #9 - bls _0803BABA - strb r1, [r2] -_0803BABA: - ldrb r0, [r6, #0xa] - cmp r0, #2 - bne _0803BAC8 - ldr r1, _0803BAC4 @ =gUnk_080CFD30 - b _0803BACA - .align 2, 0 -_0803BAC4: .4byte gUnk_080CFD30 -_0803BAC8: - ldr r1, _0803BAE8 @ =gUnk_080CFD44 -_0803BACA: - ldrb r0, [r2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] -_0803BAD2: - adds r2, r6, #0 - adds r2, #0x74 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - cmp r5, r0 - bhi _0803BB18 - movs r0, #0 - strb r0, [r2] - b _0803BB18 - .align 2, 0 -_0803BAE8: .4byte gUnk_080CFD44 -_0803BAEC: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _0803BB18 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r4] - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _0803BB0C - ldr r1, _0803BB08 @ =gUnk_080CFD58 - b _0803BB0E - .align 2, 0 -_0803BB08: .4byte gUnk_080CFD58 -_0803BB0C: - ldr r1, _0803BB78 @ =gUnk_080CFD5C -_0803BB0E: - ldrb r0, [r6, #0xa] - subs r0, #2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] -_0803BB18: - cmp r1, #0 - beq _0803BB74 - adds r0, r6, #0 - bl sub_0801D2B4 - ldr r0, [r6, #0x50] - ldr r4, [r0, #0x78] - ldrb r1, [r6, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1c - ldrb r2, [r4, #0x1a] - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1a] - ldr r0, [r6, #0x50] - ldr r5, [r0, #0x78] - ldrb r1, [r6, #0x1a] - lsls r1, r1, #0x1c - lsrs r1, r1, #0x18 - ldrb r4, [r5, #0x1a] - movs r2, #0xf - adds r0, r2, #0 - ands r0, r4 - orrs r0, r1 - strb r0, [r5, #0x1a] - ldr r0, [r6, #0x50] - ldr r4, [r0, #0x54] - ldrb r0, [r6, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1c - ldrb r1, [r4, #0x1a] - ands r3, r1 - orrs r3, r0 - strb r3, [r4, #0x1a] - ldr r0, [r6, #0x50] - ldr r3, [r0, #0x54] - ldrb r0, [r6, #0x1a] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x18 - ldrb r1, [r3, #0x1a] - ands r2, r1 - orrs r2, r0 - strb r2, [r3, #0x1a] -_0803BB74: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803BB78: .4byte gUnk_080CFD5C - - thumb_func_start sub_0803BB7C -sub_0803BB7C: @ 0x0803BB7C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803BB94 @ =gUnk_080CFF3C - 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 -_0803BB94: .4byte gUnk_080CFF3C - - thumb_func_start sub_0803BB98 -sub_0803BB98: @ 0x0803BB98 - push {lr} - ldr r2, _0803BBAC @ =gUnk_080CFF54 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803BBAC: .4byte gUnk_080CFF54 - - thumb_func_start sub_0803BBB0 -sub_0803BBB0: @ 0x0803BBB0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0803BC2C - movs r5, #0x7f - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - bne _0803BC06 - adds r0, r4, #0 - bl sub_0803C0AC - ldrb r1, [r4, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r2, [r4, #0x15] - adds r0, r2, #4 - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0803BBF6 - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _0803BBF2 - adds r0, r2, #2 - b _0803BBF4 -_0803BBF2: - subs r0, r2, #2 -_0803BBF4: - strb r0, [r4, #0x15] -_0803BBF6: - ldrb r1, [r4, #0x15] - movs r0, #0x20 - subs r0, r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803BF2C - b _0803BC1E -_0803BC06: - adds r0, r4, #0 - adds r0, #0x3d - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0803BC1E - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_0803BC1E: - adds r1, r4, #0 - adds r1, #0x82 - ldrh r0, [r1] - cmp r0, #0x10 - bls _0803BC2C - subs r0, #0xc - strh r0, [r1] -_0803BC2C: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, r5, pc} - - thumb_func_start sub_0803BC34 -sub_0803BC34: @ 0x0803BC34 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0803BC78 @ =gUnk_080CFF6C - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - bne _0803BC74 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0803BF2C -_0803BC74: - pop {r4, pc} - .align 2, 0 -_0803BC78: .4byte gUnk_080CFF6C - - thumb_func_start sub_0803BC7C -sub_0803BC7C: @ 0x0803BC7C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0803BC88 -sub_0803BC88: @ 0x0803BC88 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0803BC90 -sub_0803BC90: @ 0x0803BC90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0803BCA2 - adds r0, r4, #0 - bl sub_0804A7D4 -_0803BCA2: - pop {r4, pc} - - thumb_func_start sub_0803BCA4 -sub_0803BCA4: @ 0x0803BCA4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - bl sub_0804A720 - movs r4, #0 - movs r5, #1 - strb r5, [r6, #0xc] - strb r4, [r6, #0xf] - adds r0, r6, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r6, #0x15] - adds r0, r6, #0 - adds r0, #0x80 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - strb r5, [r6, #0x1c] - adds r2, r6, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r1, [r6, #0x1b] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x40 - orrs r0, r1 - strb r0, [r6, #0x1b] - ldrh r1, [r6, #0x2e] - adds r0, r6, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r6, #0x32] - adds r1, r6, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r6, #0 - bl sub_08016A04 - adds r0, r6, #0 - bl sub_0803BF2C - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803BD08 -sub_0803BD08: @ 0x0803BD08 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803BD2C - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0803BD80 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_0803BD2C: - adds r0, r4, #0 - bl sub_0803BEE8 - adds r0, r4, #0 - bl sub_08004274 - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0803BD80 - ldr r5, _0803BD84 @ =gUnk_020000B0 - ldr r1, [r5] - adds r0, r4, #0 - movs r2, #0x88 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _0803BD80 - ldr r0, [r5] - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r4, r2] - adds r0, #8 - cmp r1, r0 - ble _0803BD80 - movs r1, #0 - movs r2, #2 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x84 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x81 - strb r2, [r0] - adds r0, r4, #0 - bl sub_0803BF2C -_0803BD80: - pop {r4, r5, pc} - .align 2, 0 -_0803BD84: .4byte gUnk_020000B0 - - thumb_func_start sub_0803BD88 -sub_0803BD88: @ 0x0803BD88 - push {lr} - bl sub_0803BF70 - pop {pc} - - thumb_func_start sub_0803BD90 -sub_0803BD90: @ 0x0803BD90 - push {r4, lr} - adds r4, r0, #0 - bl sub_080040A8 - cmp r0, #0 - bne _0803BDC8 - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #8 - ands r0, r1 - strb r0, [r4, #0x18] - 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, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - movs r0, #8 - strb r0, [r4, #0xe] - b _0803BDD4 -_0803BDC8: - adds r0, r4, #0 - bl sub_0803BF48 - adds r0, r4, #0 - bl sub_08004274 -_0803BDD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803BDD8 -sub_0803BDD8: @ 0x0803BDD8 - 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 _0803BE76 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803BDFE - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803BE06 -_0803BDFE: - adds r0, r4, #0 - bl sub_0803C120 - b _0803BE70 -_0803BE06: - ldrb r1, [r4, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803BE20 - movs r0, #8 - strb r0, [r4, #0x15] - ldr r1, _0803BE1C @ =gUnk_03000BF0 - ldrh r0, [r1, #0xa] - subs r0, #0x20 - b _0803BE30 - .align 2, 0 -_0803BE1C: .4byte gUnk_03000BF0 -_0803BE20: - movs r0, #0x18 - strb r0, [r4, #0x15] - ldr r1, _0803BE78 @ =gUnk_03000BF0 - movs r2, #0x88 - lsls r2, r2, #1 - adds r0, r2, #0 - ldrh r2, [r1, #0xa] - adds r0, r0, r2 -_0803BE30: - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0xc] - adds r0, #8 - strh r0, [r4, #0x32] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #2 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x84 - movs r0, #1 - strb r0, [r1] - movs r0, #0x18 - strb r0, [r4, #0xe] - subs r1, #2 - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, #0x94 - strh r0, [r4, #0x24] - subs r1, #1 - movs r0, #4 - strb r0, [r1] -_0803BE70: - adds r0, r4, #0 - bl sub_0803BF2C -_0803BE76: - pop {r4, pc} - .align 2, 0 -_0803BE78: .4byte gUnk_03000BF0 - - thumb_func_start sub_0803BE7C -sub_0803BE7C: @ 0x0803BE7C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080040A8 - adds r5, r0, #0 - cmp r5, #0 - bne _0803BEE6 - movs r2, #1 - movs r3, #1 - strb r3, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - strb r5, [r0] - 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] - adds r0, r4, #0 - adds r0, #0x81 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_0803BF2C -_0803BEE6: - pop {r4, r5, pc} - - thumb_func_start sub_0803BEE8 -sub_0803BEE8: @ 0x0803BEE8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803BF28 - ldrb r0, [r4, #0x15] - adds r5, r4, #0 - adds r5, #0x80 - strb r0, [r5] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - cmp r0, #0xff - beq _0803BF0E - strb r0, [r4, #0x15] -_0803BF0E: - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r2, [r5] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - ldrb r2, [r4, #0x15] - ands r0, r2 - cmp r1, r0 - beq _0803BF28 - adds r0, r4, #0 - bl sub_0803BF2C -_0803BF28: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803BF2C -sub_0803BF2C: @ 0x0803BF2C - push {lr} - ldrb r2, [r0, #0x15] - movs r1, #0x10 - ands r1, r2 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1c - adds r2, r0, #0 - adds r2, #0x81 - ldrb r2, [r2] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803BF48 -sub_0803BF48: @ 0x0803BF48 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - pop {r4, pc} - - thumb_func_start sub_0803BF70 -sub_0803BF70: @ 0x0803BF70 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x84 - ldrb r0, [r2] - cmp r0, #1 - beq _0803BFC0 - cmp r0, #1 - bgt _0803BF88 - cmp r0, #0 - beq _0803BF8E - b _0803C0A2 -_0803BF88: - cmp r0, #2 - beq _0803BFEA - b _0803C0A2 -_0803BF8E: - ldrb r1, [r5, #0xe] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0803BFA0 - ldrh r0, [r5, #0x36] - subs r0, #1 - strh r0, [r5, #0x36] -_0803BFA0: - subs r0, r1, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C0A2 - strb r3, [r2] - movs r0, #0x18 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #2 - b _0803BFE0 -_0803BFC0: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C0A2 - movs r0, #2 - strb r0, [r2] - movs r0, #8 - strb r0, [r5, #0xe] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r1, r5, #0 - adds r1, #0x81 - movs r0, #4 -_0803BFE0: - strb r0, [r1] - adds r0, r5, #0 - bl sub_0803BF2C - b _0803C0A2 -_0803BFEA: - adds r1, r5, #0 - adds r1, #0x82 - ldrh r0, [r1] - subs r0, #1 - movs r3, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - adds r6, r1, #0 - cmp r0, #0 - bne _0803C02C - movs r0, #3 - strb r0, [r5, #0xc] - strb r3, [r2] - strb r3, [r5, #0xe] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - ldrb r2, [r5, #0x15] - adds r0, r2, #0 - adds r0, #0x18 - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803C024 - movs r0, #0x10 - subs r0, r0, r2 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] -_0803C024: - adds r0, r5, #0 - bl sub_0803BF2C - b _0803C09C -_0803C02C: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C09C - movs r0, #8 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x15] - adds r4, r5, #0 - adds r4, #0x80 - strb r0, [r4] - adds r0, r5, #0 - movs r1, #1 - bl sub_08049F84 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004596 - ldrb r3, [r5, #0x15] - adds r0, r3, #0 - adds r0, #0x18 - movs r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803C07E - ldrb r0, [r4] - cmp r0, #0x10 - bne _0803C076 - ands r3, r0 - cmp r3, #0 - beq _0803C072 - movs r0, #0x12 - b _0803C074 -_0803C072: - movs r0, #0xe -_0803C074: - strb r0, [r4] -_0803C076: - ldrb r0, [r4] - strb r0, [r5, #0x15] - movs r0, #1 - strh r0, [r6] -_0803C07E: - ldrb r2, [r4] - movs r0, #0x10 - adds r1, r0, #0 - ands r1, r2 - lsls r1, r1, #0x18 - ldrb r2, [r5, #0x15] - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r2, r0, #0x1c - cmp r1, r0 - beq _0803C09C - adds r1, r2, #4 - adds r0, r5, #0 - bl sub_08004260 -_0803C09C: - adds r0, r5, #0 - bl sub_0803BF48 -_0803C0A2: - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0803C0AC -sub_0803C0AC: @ 0x0803C0AC - push {r4, r5, r6, lr} - movs r0, #1 - bl sub_08049DF4 - adds r5, r0, #0 - cmp r5, #0 - beq _0803C11C - ldr r0, _0803C0D4 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r1, [r0] - ldr r0, _0803C0D8 @ =0x000001F3 - cmp r1, r0 - bls _0803C0DC - movs r6, #0x56 - movs r4, #5 - movs r0, #0x64 - rsbs r0, r0, #0 - bl sub_080526CC - b _0803C118 - .align 2, 0 -_0803C0D4: .4byte gUnk_02002A40 -_0803C0D8: .4byte 0x000001F3 -_0803C0DC: - cmp r1, #0x63 - bls _0803C0EE - movs r6, #0x55 - movs r4, #5 - movs r0, #0x19 - rsbs r0, r0, #0 - bl sub_080526CC - b _0803C118 -_0803C0EE: - movs r6, #0x54 - adds r4, r1, #0 - cmp r4, #4 - bls _0803C0F8 - movs r4, #5 -_0803C0F8: - rsbs r0, r4, #0 - bl sub_080526CC - b _0803C118 -_0803C100: - movs r0, #0x1a - adds r1, r6, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0803C116 - adds r0, r5, #0 - bl sub_0806FA24 -_0803C116: - subs r4, #1 -_0803C118: - cmp r4, #0 - bne _0803C100 -_0803C11C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0803C120 -sub_0803C120: @ 0x0803C120 - adds r2, r0, #0 - movs r0, #5 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #9 - ands r0, r1 - strb r0, [r2, #0x18] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r2, #0x32] - ldrh r0, [r2, #0x36] - adds r0, #8 - strh r0, [r2, #0x36] - 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] - bx lr - .align 2, 0 - - thumb_func_start sub_0803C160 -sub_0803C160: @ 0x0803C160 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803C17C @ =gUnk_080CFF78 - bl sub_0800129E - movs r3, #0x18 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0803C17C: .4byte gUnk_080CFF78 - - thumb_func_start sub_0803C180 -sub_0803C180: @ 0x0803C180 - push {lr} - ldr r2, _0803C194 @ =gUnk_080CFF90 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803C194: .4byte gUnk_080CFF90 - - thumb_func_start sub_0803C198 -sub_0803C198: @ 0x0803C198 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803C1AC - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803C1AC: - ldr r1, _0803C1D8 @ =gUnk_080CFF78 - adds r0, r4, #0 - bl sub_0804AA30 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803C1D4 - adds r0, r4, #0 - bl sub_0803C5F0 - ldr r1, [r4, #0x54] - cmp r1, #0 - beq _0803C1D4 - ldrb r0, [r1, #0xf] - adds r0, #1 - strb r0, [r1, #0xf] -_0803C1D4: - pop {r4, pc} - .align 2, 0 -_0803C1D8: .4byte gUnk_080CFF78 - - thumb_func_start nullsub_168 -nullsub_168: @ 0x0803C1DC - bx lr - .align 2, 0 - - thumb_func_start sub_0803C1E0 -sub_0803C1E0: @ 0x0803C1E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - movs r1, #0 - movs r2, #1 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7b - strb r1, [r0] - adds r0, #5 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - subs r0, #7 - strb r1, [r0] - adds r0, #8 - strb r2, [r0] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803C228 - ldrb r1, [r4, #0xb] - lsls r0, r1, #1 - strb r0, [r4, #0x14] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x80 - strh r0, [r4, #0x24] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_0803C690 - b _0803C232 -_0803C228: - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C4B0 -_0803C232: - pop {r4, pc} - - thumb_func_start sub_0803C234 -sub_0803C234: @ 0x0803C234 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - beq _0803C246 - subs r0, #1 - strb r0, [r1] -_0803C246: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803C292 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - adds r2, r0, #1 - strb r2, [r1] - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0xf - bls _0803C26E - adds r0, r4, #0 - bl sub_0803C5C4 - b _0803C2D2 -_0803C26E: - movs r0, #3 - ands r2, r0 - cmp r2, #0 - bne _0803C28A - bl sub_08000E50 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _0803C28A - adds r0, r4, #0 - bl sub_0803C624 - b _0803C2D2 -_0803C28A: - adds r0, r4, #0 - bl sub_0803C4B0 - b _0803C2D2 -_0803C292: - adds r0, r4, #0 - bl sub_0803C6F8 - cmp r0, #0 - beq _0803C2C2 - ldrh r1, [r4, #0x2a] - adds r0, r4, #0 - bl sub_0800417E - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803C690 - b _0803C2D2 -_0803C2C2: - adds r0, r4, #0 - bl sub_0803C568 - cmp r0, #0 - beq _0803C2D2 - adds r0, r4, #0 - bl sub_0803C5F0 -_0803C2D2: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C2DC -sub_0803C2DC: @ 0x0803C2DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803C308 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x82 - strb r1, [r0] - subs r0, #2 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C4B0 - b _0803C31E -_0803C308: - adds r0, r4, #0 - bl sub_0803C568 - cmp r0, #0 - beq _0803C31E - adds r2, r4, #0 - adds r2, #0x7b - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0803C31E: - ldrb r0, [r4, #0xf] - cmp r0, #0xb - bls _0803C336 - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0 - beq _0803C33A - adds r0, r4, #0 - bl sub_0803C5F0 - b _0803C33A -_0803C336: - adds r0, #1 - strb r0, [r4, #0xf] -_0803C33A: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C344 -sub_0803C344: @ 0x0803C344 - 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 _0803C3F8 - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #5 - bhi _0803C3C8 - lsls r0, r1, #2 - ldr r1, _0803C36C @ =_0803C370 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803C36C: .4byte _0803C370 -_0803C370: @ jump table - .4byte _0803C3C8 @ case 0 - .4byte _0803C3C8 @ case 1 - .4byte _0803C3A6 @ case 2 - .4byte _0803C388 @ case 3 - .4byte _0803C3BE @ case 4 - .4byte _0803C39C @ case 5 -_0803C388: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - b _0803C3E2 -_0803C39C: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0x80 - strh r0, [r4, #0x24] - b _0803C3E2 -_0803C3A6: - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strh r1, [r4, #0x24] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x40 - b _0803C3E0 -_0803C3BE: - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_0803C3C8: - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r2] - movs r0, #0x80 - strh r0, [r4, #0x24] - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - lsls r1, r0, #1 - adds r1, r1, r0 - adds r1, #0x22 -_0803C3E0: - strb r1, [r4, #0xe] -_0803C3E2: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803C690 -_0803C3F8: - adds r0, r4, #0 - bl sub_0803C6DC - pop {r4, pc} - - thumb_func_start sub_0803C400 -sub_0803C400: @ 0x0803C400 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r1, r0, #0 - cmp r1, #0 - beq _0803C458 - subs r0, #1 - strb r0, [r4, #0xf] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0803C4AC - adds r0, r4, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #3 - bne _0803C450 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r2 - cmp r0, #2 - bhi _0803C450 - bl sub_08000E50 - movs r1, #0xc0 - ands r1, r0 - cmp r1, #0 - beq _0803C450 - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0803C690 - adds r0, r4, #0 - bl sub_0803C6DC - b _0803C4AC -_0803C450: - adds r0, r4, #0 - bl sub_0803C634 - b _0803C4AC -_0803C458: - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0803C46C - cmp r0, #0x18 - beq _0803C494 - b _0803C49A -_0803C46C: - ldrb r2, [r4, #0x14] - lsls r0, r2, #2 - strb r0, [r4, #0x15] - lsls r2, r2, #0x18 - lsrs r2, r2, #0x19 - adds r0, r4, #0 - movs r1, #0xd - bl sub_0804A98C - adds r2, r0, #0 - cmp r2, #0 - beq _0803C49A - str r2, [r4, #0x54] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r2, #0x15] - str r4, [r2, #0x50] - b _0803C49A -_0803C494: - strb r1, [r4, #0xe] - movs r0, #0x20 - strb r0, [r4, #0xf] -_0803C49A: - adds r0, r4, #0 - bl sub_0803C6DC - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0803C4AC - adds r0, r4, #0 - bl sub_0803C714 -_0803C4AC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803C4B0 -sub_0803C4B0: @ 0x0803C4B0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r1, #0 - strb r1, [r5, #0xf] - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #1 - bne _0803C54C - bl sub_08000E50 - ldr r1, _0803C4F0 @ =gUnk_080CFFA4 - movs r7, #7 - ands r0, r7 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0xe] - movs r0, #0x80 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0803C4F4 - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #6 - ands r4, r0 - lsls r0, r4, #2 - strb r0, [r5, #0x15] - b _0803C556 - .align 2, 0 -_0803C4F0: .4byte gUnk_080CFFA4 -_0803C4F4: - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - adds r6, r5, #0 - adds r6, #0x83 - ldrb r0, [r6] - cmp r0, #0 - bne _0803C520 - bl sub_08000E50 - ldr r2, _0803C51C @ =gUnk_080CFFAC - movs r1, #0xf - ands r1, r0 - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r4, r4, r0 - b _0803C53E - .align 2, 0 -_0803C51C: .4byte gUnk_080CFFAC -_0803C520: - bl sub_08000E50 - ldr r1, _0803C548 @ =gUnk_080CFFAC - ands r0, r7 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r4, r0 - ldrb r0, [r5, #0xe] - adds r0, #0x10 - strb r0, [r5, #0xe] - ldrb r0, [r6] - subs r0, #1 - strb r0, [r6] -_0803C53E: - adds r0, r4, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - b _0803C554 - .align 2, 0 -_0803C548: .4byte gUnk_080CFFAC -_0803C54C: - movs r0, #0xc - strb r0, [r5, #0xe] - strh r1, [r5, #0x24] - ldrb r0, [r5, #0x15] -_0803C554: - lsrs r4, r0, #2 -_0803C556: - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _0803C564 - strb r4, [r5, #0x14] - adds r0, r5, #0 - bl sub_0803C690 -_0803C564: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803C568 -sub_0803C568: @ 0x0803C568 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - bne _0803C5C0 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _0803C5C0 - adds r0, r5, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #2 - bne _0803C598 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x30 - bl sub_0806FC80 - cmp r0, #0 - bne _0803C5BC -_0803C598: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_0806FC80 - cmp r0, #0 - beq _0803C5C0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - ldrb r5, [r5, #0x14] - cmp r0, r5 - bne _0803C5C0 -_0803C5BC: - movs r0, #1 - b _0803C5C2 -_0803C5C0: - movs r0, #0 -_0803C5C2: - pop {r4, r5, pc} - - thumb_func_start sub_0803C5C4 -sub_0803C5C4: @ 0x0803C5C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - lsrs r0, r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #2 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C5F0 -sub_0803C5F0: @ 0x0803C5F0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049F84 - movs r2, #0 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - subs r0, #9 - strb r2, [r0] - adds r0, r4, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #3 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C624 -sub_0803C624: @ 0x0803C624 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803C664 - adds r4, #0x82 - movs r0, #5 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C634 -sub_0803C634: @ 0x0803C634 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - movs r1, #0 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x83 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803C664 - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - strb r0, [r4, #0xe] - adds r4, #0x82 - movs r0, #4 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_0803C664 -sub_0803C664: @ 0x0803C664 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0x20 - strb r0, [r2, #0xe] - strb r1, [r2, #0xf] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - subs r0, #5 - strb r1, [r0] - movs r0, #0 - strh r1, [r2, #0x24] - adds r1, r2, #0 - adds r1, #0x82 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0803C690 - pop {pc} - - thumb_func_start sub_0803C690 -sub_0803C690: @ 0x0803C690 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #0x14] - lsrs r2, r0, #1 - adds r0, r3, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #5 - bhi _0803C6D2 - lsls r0, r0, #2 - ldr r1, _0803C6AC @ =_0803C6B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803C6AC: .4byte _0803C6B0 -_0803C6B0: @ jump table - .4byte _0803C6D2 @ case 0 - .4byte _0803C6C8 @ case 1 - .4byte _0803C6D0 @ case 2 - .4byte _0803C6CC @ case 3 - .4byte _0803C6C8 @ case 4 - .4byte _0803C6CC @ case 5 -_0803C6C8: - adds r2, #4 - b _0803C6D2 -_0803C6CC: - adds r2, #8 - b _0803C6D2 -_0803C6D0: - adds r2, #0xc -_0803C6D2: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0803C6DC -sub_0803C6DC: @ 0x0803C6DC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _0803C6EA - strh r0, [r4, #0x24] -_0803C6EA: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0803C6F8 -sub_0803C6F8: @ 0x0803C6F8 - ldr r2, _0803C710 @ =gUnk_080CFFBC - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r0, #0x2a] - ldrh r1, [r1] - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - bx lr - .align 2, 0 -_0803C710: .4byte gUnk_080CFFBC - - thumb_func_start sub_0803C714 -sub_0803C714: @ 0x0803C714 - push {lr} - ldr r1, [r0, #0x54] - ldrb r3, [r0, #0x14] - ldr r2, _0803C734 @ =gUnk_080CFFC4 - adds r3, r3, r2 - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - lsls r3, r3, #0x10 - bl PositionRelative - pop {pc} - .align 2, 0 -_0803C734: .4byte gUnk_080CFFC4 - - thumb_func_start sub_0803C738 -sub_0803C738: @ 0x0803C738 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803C754 @ =gUnk_080D0110 - 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 -_0803C754: .4byte gUnk_080D0110 - - thumb_func_start sub_0803C758 -sub_0803C758: @ 0x0803C758 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0803C76C - cmp r0, #7 - beq _0803C76C - adds r0, r4, #0 - bl sub_0803CAD0 -_0803C76C: - ldr r0, _0803C780 @ =gUnk_080D0128 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0803C780: .4byte gUnk_080D0128 - - thumb_func_start sub_0803C784 -sub_0803C784: @ 0x0803C784 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x1d - bne _0803C7A2 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - adds r0, r4, #0 - bl sub_0803CBAC - b _0803C7FA -_0803C7A2: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x43 - bne _0803C7FA - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0803C7FA - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - movs r0, #0x10 - eors r0, r1 - lsls r1, r0, #3 - ldr r3, _0803C818 @ =gUnk_080C9160 - lsls r0, r0, #4 - adds r0, r0, r3 - movs r5, #0 - ldrsh r0, [r0, r5] - cmp r0, #0 - bge _0803C7D8 - adds r0, #0x1f -_0803C7D8: - asrs r0, r0, #5 - ldrh r5, [r2, #0x2e] - adds r0, r0, r5 - strh r0, [r2, #0x2e] - adds r0, r1, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r1, #0 - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _0803C7F2 - adds r0, #0x1f -_0803C7F2: - asrs r1, r0, #5 - ldrh r0, [r2, #0x32] - subs r0, r0, r1 - strh r0, [r2, #0x32] -_0803C7FA: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803C80C - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803C80C: - ldr r1, _0803C81C @ =gUnk_080D0110 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_0803C818: .4byte gUnk_080C9160 -_0803C81C: .4byte gUnk_080D0110 - - thumb_func_start sub_0803C820 -sub_0803C820: @ 0x0803C820 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0803C83C - ldr r0, _0803C840 @ =gUnk_080D0148 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0803C83C: - pop {r4, pc} - .align 2, 0 -_0803C840: .4byte gUnk_080D0148 - - thumb_func_start sub_0803C844 -sub_0803C844: @ 0x0803C844 - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0803C850 -sub_0803C850: @ 0x0803C850 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x54] - cmp r0, #0 - beq _0803C864 - adds r1, r2, #0 - adds r1, #0x62 - ldrb r1, [r1] - adds r0, #0x62 - strb r1, [r0] -_0803C864: - adds r0, r2, #0 - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0803C86C -sub_0803C86C: @ 0x0803C86C - push {r4, lr} - adds r4, r0, #0 - bl sub_0803CBAC - movs r0, #0 - str r0, [r4, #0x54] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C87C -sub_0803C87C: @ 0x0803C87C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x11 - movs r2, #0 - bl sub_0804A98C - cmp r0, #0 - beq _0803C8B4 - str r4, [r0, #0x50] - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0803C8B8 @ =0x0000FFFE - strh r0, [r4, #0x36] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrh r1, [r4, #0x32] - adds r0, #2 - strh r1, [r0] -_0803C8B4: - pop {r4, pc} - .align 2, 0 -_0803C8B8: .4byte 0x0000FFFE - - thumb_func_start sub_0803C8BC -sub_0803C8BC: @ 0x0803C8BC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0803CA84 - adds r0, r4, #0 - bl sub_0803CA4C - cmp r0, #0 - beq _0803C8E0 - 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] -_0803C8E0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C8E4 -sub_0803C8E4: @ 0x0803C8E4 - 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 _0803C914 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x42 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_0803C914: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803C918 -sub_0803C918: @ 0x0803C918 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803CB04 - cmp r0, #0 - bne _0803C94E - adds r0, r4, #0 - bl sub_0803CA4C - cmp r0, #0 - bne _0803C946 - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x43 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #0xc - adds r0, r4, #0 - bl sub_080042AC - b _0803C94E -_0803C946: - adds r0, r4, #0 - movs r1, #4 - bl sub_0803CA84 -_0803C94E: - pop {r4, pc} - - thumb_func_start sub_0803C950 -sub_0803C950: @ 0x0803C950 - 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 _0803C97A - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_0803C97A: - pop {r4, pc} - - thumb_func_start sub_0803C97C -sub_0803C97C: @ 0x0803C97C - 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 _0803C9D2 - adds r0, r4, #0 - bl sub_0803CB64 - movs r0, #6 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x42 - strb r0, [r1] - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r2, r4, #0 - adds r2, #0x79 - cmp r0, #0 - beq _0803C9C2 - ldrb r0, [r2] - cmp r0, #0 - bne _0803C9C2 - movs r0, #0xf - strb r0, [r4, #0xe] - strb r1, [r2] - b _0803C9D2 -_0803C9C2: - movs r1, #0 - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r2] - ldr r0, [r4, #0x54] - ldrb r1, [r4, #0x14] - bl sub_080042AC -_0803C9D2: - pop {r4, pc} - - thumb_func_start sub_0803C9D4 -sub_0803C9D4: @ 0x0803C9D4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803CA08 - adds r0, r2, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #1 - bne _0803C9F6 - adds r0, r2, #0 - bl sub_0803CB34 - b _0803CA08 -_0803C9F6: - movs r0, #3 - strb r0, [r2, #0xc] - movs r0, #0xb4 - strb r0, [r2, #0xe] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_080042AC -_0803CA08: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803CA0C -sub_0803CA0C: @ 0x0803CA0C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - cmp r0, #0 - bne _0803CA3E - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x13 - bhi _0803CA3E - ldrb r1, [r4, #0x14] - adds r1, #0x14 - adds r0, r4, #0 - bl sub_080042AC - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0803CA3E: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0803CC08 - pop {r4, pc} - - thumb_func_start sub_0803CA4C -sub_0803CA4C: @ 0x0803CA4C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803CA7C @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r5, #0 - movs r3, #0x28 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803CA80 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x70 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _0803CA80 - movs r0, #1 - b _0803CA82 - .align 2, 0 -_0803CA7C: .4byte gLinkEntity -_0803CA80: - movs r0, #0 -_0803CA82: - pop {r4, r5, pc} - - thumb_func_start sub_0803CA84 -sub_0803CA84: @ 0x0803CA84 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r1, _0803CACC @ =gLinkEntity - bl sub_080045C4 - adds r4, r0, #0 - subs r0, r4, #3 - movs r1, #7 - ands r0, r1 - cmp r0, #2 - bhi _0803CAAA - ldrb r0, [r5, #0x14] - lsrs r1, r4, #3 - subs r0, r0, r1 - movs r1, #3 - ands r0, r1 - cmp r0, #1 - bls _0803CACA -_0803CAAA: - adds r0, r4, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r4, r0, #3 - ldrb r0, [r5, #0x14] - cmp r4, r0 - beq _0803CACA - strb r4, [r5, #0x14] - adds r1, r4, r6 - adds r0, r5, #0 - bl sub_080042AC - ldr r0, [r5, #0x54] - adds r1, r4, #0 - bl sub_080042AC -_0803CACA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803CACC: .4byte gLinkEntity - - thumb_func_start sub_0803CAD0 -sub_0803CAD0: @ 0x0803CAD0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x74 - ldrh r1, [r6] - adds r5, r4, #0 - adds r5, #0x76 - ldrh r2, [r5] - movs r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803CB02 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r6] - ldrh r3, [r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_080AEFE0 -_0803CB02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803CB04 -sub_0803CB04: @ 0x0803CB04 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - beq _0803CB1A - movs r0, #0 - b _0803CB32 -_0803CB1A: - adds r0, r4, #0 - bl sub_0803CB34 - adds r0, r4, #0 - adds r0, #0x79 - strb r5, [r0] - ldr r0, [r4, #0x54] - ldrb r1, [r4, #0x14] - adds r1, #4 - bl sub_080042AC - movs r0, #1 -_0803CB32: - pop {r4, r5, pc} - - thumb_func_start sub_0803CB34 -sub_0803CB34: @ 0x0803CB34 - push {r4, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0xa6 - strb r0, [r1] - ldr r1, _0803CB60 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 -_0803CB60: .4byte gLinkEntity - - thumb_func_start sub_0803CB64 -sub_0803CB64: @ 0x0803CB64 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x12 - movs r2, #0 - bl sub_0804A98C - adds r5, r0, #0 - cmp r5, #0 - beq _0803CBA0 - ldrb r1, [r4, #0x14] - lsls r1, r1, #1 - ldr r0, _0803CBA4 @ =gUnk_080D0154 - adds r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - strb r0, [r5, #0x15] - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl PositionRelative - ldr r0, _0803CBA8 @ =0x00000193 - bl sub_08004488 -_0803CBA0: - pop {r4, r5, pc} - .align 2, 0 -_0803CBA4: .4byte gUnk_080D0154 -_0803CBA8: .4byte 0x00000193 - - thumb_func_start sub_0803CBAC -sub_0803CBAC: @ 0x0803CBAC - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x54] - cmp r2, #0 - beq _0803CBC6 - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x43 - strb r0, [r1] -_0803CBC6: - movs r0, #7 - strb r0, [r3, #0xc] - ldrb r1, [r3, #0x18] - subs r0, #0xb - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3, #0x18] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - adds r2, #0x12 - ldrb r1, [r2] - movs r0, #0x7b - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - movs r0, #0x42 - strb r0, [r1] - ldrb r1, [r3, #0x14] - adds r1, #0x10 - adds r0, r3, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803CC08 -sub_0803CC08: @ 0x0803CC08 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x54] - cmp r5, #0 - beq _0803CCB4 - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r2, #0x36 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #2 - bhi _0803CCB4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _0803CCB4 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #6 - bl sub_0806FCB8 - cmp r0, #0 - beq _0803CCB4 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0803CC56 - ldrh r0, [r1, #0x2e] - adds r0, #6 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #6 - strh r0, [r1, #0x32] -_0803CC56: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0803CC72 - ldrh r0, [r1, #0x2e] - subs r0, #6 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #6 - strh r0, [r1, #0x32] -_0803CC72: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0803CC8E - ldrh r0, [r1, #0x2e] - adds r0, #6 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #6 - strh r0, [r1, #0x32] -_0803CC8E: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0803CCAA - ldrh r0, [r1, #0x2e] - subs r0, #6 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #6 - strh r0, [r1, #0x32] -_0803CCAA: - movs r0, #0 - str r0, [r4, #0x54] - adds r0, r5, #0 - bl sub_0805E7BC -_0803CCB4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803CCB8 -sub_0803CCB8: @ 0x0803CCB8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0803CCD0 @ =gUnk_080D0418 - 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 -_0803CCD0: .4byte gUnk_080D0418 - - thumb_func_start sub_0803CCD4 -sub_0803CCD4: @ 0x0803CCD4 - push {lr} - ldr r2, _0803CCE8 @ =gUnk_080D0430 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803CCE8: .4byte gUnk_080D0430 - - thumb_func_start sub_0803CCEC -sub_0803CCEC: @ 0x0803CCEC - push {lr} - adds r2, r0, #0 - adds r2, #0x42 - movs r1, #0 - strb r1, [r2] - bl sub_0803CCD4 - pop {pc} - - thumb_func_start sub_0803CCFC -sub_0803CCFC: @ 0x0803CCFC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - bne _0803CD16 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bne _0803CD26 - adds r0, r4, #0 - bl sub_0803CE3C - b _0803CD26 -_0803CD16: - ldr r0, _0803CD28 @ =gUnk_080D043C - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0803CD26: - pop {r4, pc} - .align 2, 0 -_0803CD28: .4byte gUnk_080D043C - - thumb_func_start sub_0803CD2C -sub_0803CD2C: @ 0x0803CD2C - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - bx lr - .align 2, 0 - - thumb_func_start sub_0803CD38 -sub_0803CD38: @ 0x0803CD38 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_0803CD40 -sub_0803CD40: @ 0x0803CD40 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0803CD66 - movs r0, #2 - rsbs r0, r0, #0 - bl sub_080526A0 - ldr r0, _0803CD68 @ =gLinkEntity - movs r1, #0x7a - bl sub_0800449C - bl sub_08079D84 - adds r0, r4, #0 - bl sub_0803CE3C -_0803CD66: - pop {r4, pc} - .align 2, 0 -_0803CD68: .4byte gLinkEntity - - thumb_func_start sub_0803CD6C -sub_0803CD6C: @ 0x0803CD6C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0803CDA4 @ =0x0000FFFE - strh r0, [r4, #0x36] - ldrb r0, [r4, #0xa] - bl sub_0804B128 - str r0, [r4, #0x54] - str r0, [r4, #0x50] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0803CE14 - pop {r4, pc} - .align 2, 0 -_0803CDA4: .4byte 0x0000FFFE - - thumb_func_start sub_0803CDA8 -sub_0803CDA8: @ 0x0803CDA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803CDC0 - adds r0, r4, #0 - bl sub_0806F69C -_0803CDC0: - adds r1, r4, #0 - adds r1, #0x74 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803CDD6 - adds r0, r4, #0 - bl sub_0803CE14 -_0803CDD6: - pop {r4, pc} - - thumb_func_start sub_0803CDD8 -sub_0803CDD8: @ 0x0803CDD8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - lsrs r0, r0, #0x1e - movs r2, #1 - eors r0, r2 - movs r5, #4 - rsbs r5, r5, #0 - adds r3, r5, #0 - ands r3, r1 - orrs r3, r0 - strb r3, [r4, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803CE10 - movs r0, #1 - strb r2, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r4, #0x10] - ands r3, r5 - orrs r3, r0 - strb r3, [r4, #0x18] -_0803CE10: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803CE14 -sub_0803CE14: @ 0x0803CE14 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x54 - adds r2, r4, #0 - adds r2, #0x74 - bl sub_080A2CC0 - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803CE38 - lsrs r1, r1, #3 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_0803CE38: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803CE3C -sub_0803CE3C: @ 0x0803CE3C - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3a - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x32] - ldr r0, [r4, #0x50] - str r0, [r4, #0x54] - adds r0, r4, #0 - bl sub_0803CE14 - pop {r4, pc} - - thumb_func_start sub_0803CE80 -sub_0803CE80: @ 0x0803CE80 - push {lr} - ldr r2, _0803CE94 @ =gUnk_080D0448 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803CE94: .4byte gUnk_080D0448 - - thumb_func_start sub_0803CE98 -sub_0803CE98: @ 0x0803CE98 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r1, r6, #0 - adds r1, #0x84 - ldrh r2, [r1] - movs r5, #0xf0 - lsls r5, r5, #8 - adds r0, r5, #0 - ands r0, r2 - lsrs r0, r0, #5 - strh r0, [r6, #0x24] - ldrh r2, [r1] - ldr r4, _0803CF1C @ =0x00000FFF - adds r0, r4, #0 - ands r0, r2 - strh r0, [r1] - adds r0, r6, #0 - bl sub_0804A720 - movs r0, #1 - strb r0, [r6, #0xc] - adds r3, r6, #0 - adds r3, #0x82 - ldrh r0, [r3] - ands r4, r0 - adds r0, r6, #0 - adds r0, #0x74 - strh r4, [r0] - ldrh r0, [r3] - movs r1, #0x3f - ands r1, r0 - lsls r1, r1, #4 - ldr r2, _0803CF20 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - adds r0, #8 - adds r1, r1, r0 - strh r1, [r6, #0x2e] - ldrh r1, [r3] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #2 - ldrh r1, [r2, #8] - adds r1, #8 - adds r0, r0, r1 - strh r0, [r6, #0x32] - movs r1, #0 - ldrsh r0, [r3, r1] - ands r0, r5 - asrs r0, r0, #0xa - strb r0, [r6, #0x15] - ldrb r0, [r6, #0xa] - lsls r0, r0, #2 - adds r1, r6, #0 - adds r1, #0x78 - strh r0, [r1] - adds r0, r6, #0 - bl sub_0803CFF0 - cmp r0, #0 - beq _0803CF18 - adds r0, r6, #0 - bl sub_0803D0B0 -_0803CF18: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803CF1C: .4byte 0x00000FFF -_0803CF20: .4byte gUnk_03000BF0 - - thumb_func_start sub_0803CF24 -sub_0803CF24: @ 0x0803CF24 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803CFD8 - cmp r0, #0 - beq _0803CF36 - adds r0, r4, #0 - bl sub_0803D024 -_0803CF36: - pop {r4, pc} - - thumb_func_start sub_0803CF38 -sub_0803CF38: @ 0x0803CF38 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803CFF0 - cmp r0, #0 - beq _0803CF4C - adds r0, r4, #0 - bl sub_0803D0B0 - b _0803CF8C -_0803CF4C: - adds r0, r4, #0 - movs r1, #0 - bl sub_08049FDC - cmp r0, #0 - beq _0803CF8C - ldr r0, _0803CF90 @ =gUnk_020000B0 - ldr r0, [r0] - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x20 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803CF8C - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803CF8C - adds r0, r4, #0 - bl sub_0803D058 - adds r0, r4, #0 - bl sub_0803D024 -_0803CF8C: - pop {r4, pc} - .align 2, 0 -_0803CF90: .4byte gUnk_020000B0 - - thumb_func_start sub_0803CF94 -sub_0803CF94: @ 0x0803CF94 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x74 - ldrh r0, [r0] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - cmp r0, #0x76 - bne _0803CFBA - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_0803D024 - b _0803CFD4 -_0803CFBA: - adds r0, r4, #0 - adds r0, #0x7c - ldrh r0, [r0] - cmp r0, #0 - beq _0803CFD4 - adds r0, r4, #0 - bl sub_0803CFD8 - cmp r0, #0 - beq _0803CFD4 - adds r0, r4, #0 - bl sub_0803D024 -_0803CFD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803CFD8 -sub_0803CFD8: @ 0x0803CFD8 - push {lr} - adds r1, r0, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - bne _0803CFE8 - movs r0, #1 - b _0803CFEE -_0803CFE8: - ldrh r0, [r1] - bl sub_0807CBE4 -_0803CFEE: - pop {pc} - - thumb_func_start sub_0803CFF0 -sub_0803CFF0: @ 0x0803CFF0 - push {lr} - adds r1, r0, #0 - adds r1, #0x80 - ldrh r2, [r1] - cmp r2, #0 - beq _0803D01E - adds r0, #0x7c - ldrh r0, [r0] - cmp r2, r0 - bne _0803D016 - adds r0, r2, #0 - bl sub_0807CBE4 - movs r1, #0 - cmp r0, #0 - bne _0803D012 - movs r1, #1 -_0803D012: - adds r0, r1, #0 - b _0803D020 -_0803D016: - ldrh r0, [r1] - bl sub_0807CBE4 - b _0803D020 -_0803D01E: - movs r0, #0 -_0803D020: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803D024 -sub_0803D024: @ 0x0803D024 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r1, [r0] - cmp r1, #0 - beq _0803D03A - adds r0, #2 - b _0803D04E -_0803D03A: - bl sub_08000E50 - ldr r2, _0803D054 @ =gUnk_080D0458 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x7a -_0803D04E: - strh r1, [r0] - pop {r4, pc} - .align 2, 0 -_0803D054: .4byte gUnk_080D0458 - - thumb_func_start sub_0803D058 -sub_0803D058: @ 0x0803D058 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x16 - movs r2, #0 - bl sub_0804A98C - adds r5, r0, #0 - cmp r5, #0 - beq _0803D0AE - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - beq _0803D078 - strh r1, [r5, #0x24] - b _0803D08A -_0803D078: - bl sub_08000E50 - ldr r2, _0803D0A4 @ =gUnk_080D0468 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - strh r0, [r5, #0x24] -_0803D08A: - ldrb r1, [r4, #0x15] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0803D0AC - ldr r0, _0803D0A8 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r5, #0x15] - b _0803D0AE - .align 2, 0 -_0803D0A4: .4byte gUnk_080D0468 -_0803D0A8: .4byte gUnk_020000B0 -_0803D0AC: - strb r1, [r5, #0x15] -_0803D0AE: - pop {r4, r5, pc} - - thumb_func_start sub_0803D0B0 -sub_0803D0B0: @ 0x0803D0B0 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x74 - ldrh r1, [r1] - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x75 - bl sub_0807B7D8 - pop {pc} - - thumb_func_start sub_0803D0C8 -sub_0803D0C8: @ 0x0803D0C8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - beq _0803D0F4 - cmp r0, #1 - bgt _0803D0DC - cmp r0, #0 - beq _0803D0E6 - b _0803D12C -_0803D0DC: - cmp r0, #2 - beq _0803D104 - cmp r0, #3 - beq _0803D11C - b _0803D12C -_0803D0E6: - adds r0, r4, #0 - bl sub_0803DFBC - ldr r0, _0803D0F0 @ =gUnk_080D0470 - b _0803D106 - .align 2, 0 -_0803D0F0: .4byte gUnk_080D0470 -_0803D0F4: - adds r0, r4, #0 - bl sub_0803DC58 - ldr r0, _0803D100 @ =gUnk_080D0490 - b _0803D106 - .align 2, 0 -_0803D100: .4byte gUnk_080D0490 -_0803D104: - ldr r0, _0803D118 @ =gUnk_080D0498 -_0803D106: - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0803D12C - .align 2, 0 -_0803D118: .4byte gUnk_080D0498 -_0803D11C: - ldr r0, _0803D130 @ =gUnk_080D04A0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0803D12C: - pop {r4, pc} - .align 2, 0 -_0803D130: .4byte gUnk_080D04A0 - - thumb_func_start sub_0803D134 -sub_0803D134: @ 0x0803D134 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - beq _0803D146 - bl sub_0805E780 -_0803D146: - adds r0, r5, #0 - bl sub_0804A720 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - bne _0803D158 - b _0803D25A -_0803D158: - ldr r0, _0803D25C @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x41 - bhi _0803D25A - movs r0, #0 - bl sub_0807CD8C - movs r2, #0 - movs r0, #3 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0xff - strb r0, [r1] - strb r2, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x76 - strb r2, [r0] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r5, #0x15] - adds r3, r5, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #7 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - str r2, [r5, #0x34] - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x86 - strb r2, [r0] - adds r1, #5 - movs r0, #0x30 - strb r0, [r1] - subs r1, #1 - subs r0, #0x31 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x87 - strb r2, [r0] - subs r0, #5 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - ldr r0, [r5, #0x2c] - str r0, [r5, #0x78] - ldr r0, [r5, #0x30] - str r0, [r5, #0x7c] - movs r0, #0x4a - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r5, [r4, #0x50] - str r4, [r5, #0x54] - movs r6, #0 -_0803D1E2: - movs r0, #0x54 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - str r5, [r4, #0x50] - adds r0, #0x79 - strb r6, [r0] - adds r6, #1 - cmp r6, #5 - ble _0803D1E2 - movs r6, #0 -_0803D1FA: - movs r0, #0x4a - movs r1, #3 - bl CreateEnemy - adds r4, r0, #0 - str r5, [r4, #0x50] - strb r6, [r4, #0xe] - adds r6, #1 - cmp r6, #3 - ble _0803D1FA - movs r6, #0 -_0803D210: - movs r0, #0x54 - movs r1, #1 - bl CreateEnemy - adds r4, r0, #0 - str r5, [r4, #0x50] - movs r0, #1 - adds r2, r6, #0 - ands r2, r0 - lsls r2, r2, #6 - ldrb r0, [r4, #0x18] - movs r3, #0x41 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - lsls r1, r6, #1 - ldr r0, _0803D260 @ =gUnk_080D04A8 - adds r1, r1, r0 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionRelative - adds r6, #1 - cmp r6, #1 - ble _0803D210 - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0803D25A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0803D25C: .4byte gUnk_03003DBC -_0803D260: .4byte gUnk_080D04A8 - - thumb_func_start sub_0803D264 -sub_0803D264: @ 0x0803D264 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803D318 - subs r0, #1 - strb r0, [r4, #0xe] - movs r7, #0xff - lsls r0, r0, #0x18 - lsrs r6, r0, #0x18 - cmp r6, #0 - beq _0803D27E - b _0803D400 -_0803D27E: - adds r5, r4, #0 - adds r5, #0x74 - ldrb r1, [r5] - movs r0, #0x70 - ands r0, r1 - cmp r0, #0 - bne _0803D2E4 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xe] - cmp r0, #0 - bne _0803D2DE - adds r0, r4, #0 - bl sub_0803DD78 - adds r0, r4, #0 - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #0 - beq _0803D2B0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r6, [r5] - movs r0, #0x10 - strb r0, [r4, #0xe] - b _0803D2D6 -_0803D2B0: - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #0 - bne _0803D2C4 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803D2D6 -_0803D2C4: - bl sub_08000E50 - movs r1, #0x80 - ands r1, r0 - lsrs r1, r1, #3 - movs r0, #8 - orrs r1, r0 - strb r1, [r4, #0x15] - b _0803D400 -_0803D2D6: - ldrb r0, [r4, #0x15] - orrs r0, r7 - strb r0, [r4, #0x15] - b _0803D400 -_0803D2DE: - movs r0, #2 - strb r0, [r4, #0xe] - b _0803D400 -_0803D2E4: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - adds r1, r4, #0 - adds r1, #0x75 - strb r0, [r1] - strb r6, [r5] - movs r0, #0xc0 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - orrs r0, r7 - strb r0, [r4, #0x15] - 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 r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803D400 -_0803D318: - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - movs r6, #0xff - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0803D3BA - adds r0, r4, #0 - bl sub_0803DEE0 - cmp r0, #1 - beq _0803D366 - cmp r0, #1 - blo _0803D344 - cmp r0, #2 - beq _0803D384 - cmp r0, #3 - beq _0803D374 - b _0803D3BA -_0803D344: - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #0xa0 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - orrs r0, r6 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _0803D3BA -_0803D366: - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r5, [r0] - strb r5, [r4, #0xe] - b _0803D3B4 -_0803D374: - movs r0, #5 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r5, [r0] - movs r0, #0x20 - strb r0, [r4, #0xf] - b _0803D3B4 -_0803D384: - adds r0, r4, #0 - adds r0, #0x74 - strb r5, [r0] - movs r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #0 - bne _0803D3A2 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803D3B4 -_0803D3A2: - bl sub_08000E50 - movs r1, #0x80 - ands r1, r0 - lsrs r1, r1, #3 - movs r0, #8 - orrs r1, r0 - strb r1, [r4, #0x15] - b _0803D3BA -_0803D3B4: - ldrb r0, [r4, #0x15] - orrs r0, r6 - strb r0, [r4, #0x15] -_0803D3BA: - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xe] - cmp r0, #0 - bne _0803D400 - adds r2, r4, #0 - adds r2, #0x85 - ldrb r0, [r2] - adds r1, r0, #1 - strb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0803D3FA - movs r0, #0x30 - ands r0, r1 - cmp r0, #0x10 - beq _0803D3F4 - cmp r0, #0x10 - bgt _0803D3E6 - cmp r0, #0 - beq _0803D3EE - b _0803D3FA -_0803D3E6: - cmp r0, #0x20 - beq _0803D3F4 - cmp r0, #0x30 - bne _0803D3FA -_0803D3EE: - ldrh r0, [r4, #0x32] - adds r0, #1 - b _0803D3F8 -_0803D3F4: - ldrh r0, [r4, #0x32] - subs r0, #1 -_0803D3F8: - strh r0, [r4, #0x32] -_0803D3FA: - adds r0, r4, #0 - bl sub_080AEFB4 -_0803D400: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0803D408 -sub_0803D408: @ 0x0803D408 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x74 - ldrb r0, [r2] - cmp r0, #1 - beq _0803D458 - cmp r0, #1 - bgt _0803D420 - cmp r0, #0 - beq _0803D42A - b _0803D558 -_0803D420: - cmp r0, #2 - beq _0803D478 - cmp r0, #3 - beq _0803D4FC - b _0803D558 -_0803D42A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803D438 - b _0803D558 -_0803D438: - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - ldr r0, _0803D454 @ =0x0000019B - bl sub_080A3268 - b _0803D558 - .align 2, 0 -_0803D454: .4byte 0x0000019B -_0803D458: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803D558 - movs r0, #2 - strb r0, [r2] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x10 - strb r0, [r4, #0xe] - b _0803D558 -_0803D478: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D558 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0803E028 - cmp r0, #0 - bne _0803D4D0 - bl sub_08000E50 - adds r5, r4, #0 - adds r5, #0x81 - ldrb r1, [r5] - adds r1, #1 - movs r2, #3 - ands r0, r2 - adds r1, r1, r0 - strb r1, [r5] - ldrb r0, [r5] - movs r1, #5 - bl __modsi3 - strb r0, [r5] - ldrb r1, [r5] - lsls r1, r1, #2 - ldr r0, _0803D4F4 @ =gUnk_080D04AC - adds r1, r1, r0 - ldr r2, _0803D4F8 @ =gUnk_03000BF0 - ldrh r0, [r1] - ldrh r3, [r2, #6] - adds r0, r0, r3 - adds r0, #0x10 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r0, #0x10 - strh r0, [r4, #0x32] -_0803D4D0: - 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, #0x20 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - movs r0, #0xf5 - bl sub_080A3268 - b _0803D558 - .align 2, 0 -_0803D4F4: .4byte gUnk_080D04AC -_0803D4F8: .4byte gUnk_03000BF0 -_0803D4FC: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803D558 - 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 r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #4 - bls _0803D52E - ldr r1, _0803D544 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] -_0803D52E: - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D548 - movs r0, #1 - strb r0, [r4, #0xc] - b _0803D54E - .align 2, 0 -_0803D544: .4byte gLinkEntity -_0803D548: - movs r0, #0 - strb r0, [r2] - movs r0, #0x10 -_0803D54E: - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_0803D558: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0803D560 -sub_0803D560: @ 0x0803D560 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x74 - ldrb r0, [r2] - cmp r0, #2 - beq _0803D62A - cmp r0, #2 - bgt _0803D57C - cmp r0, #0 - beq _0803D5BC - cmp r0, #1 - beq _0803D5F8 - b _0803D650 -_0803D57C: - cmp r0, #0xfe - beq _0803D590 - cmp r0, #0xfe - bgt _0803D58A - cmp r0, #3 - beq _0803D646 - b _0803D650 -_0803D58A: - cmp r0, #0xff - beq _0803D598 - b _0803D650 -_0803D590: - movs r0, #0 - strb r0, [r2] - movs r0, #1 - b _0803D64E -_0803D598: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #4 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0803D5AC - ldr r0, [r4, #0x34] - ldr r1, _0803D5B8 @ =0xFFFFE000 - adds r0, r0, r1 - str r0, [r4, #0x34] -_0803D5AC: - ldrb r0, [r4, #0xe] - cmp r0, #2 - bne _0803D650 - movs r0, #0xfe - strb r0, [r2] - b _0803D650 - .align 2, 0 -_0803D5B8: .4byte 0xFFFFE000 -_0803D5BC: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D650 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x75 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - movs r1, #0x20 - cmp r0, #0 - beq _0803D5E0 - movs r1, #0x14 -_0803D5E0: - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - adds r0, #1 - asrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, #2 - adds r1, r4, #0 - adds r1, #0x80 - strb r0, [r1] - b _0803D650 -_0803D5F8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D650 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x75 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803D620 - movs r0, #0xd8 - lsls r0, r0, #1 - bl sub_080A3268 -_0803D620: - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _0803D650 -_0803D62A: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803D650 - movs r0, #3 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803D650 -_0803D646: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] -_0803D64E: - strb r0, [r4, #0xe] -_0803D650: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_0803D658 -sub_0803D658: @ 0x0803D658 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803D68E - movs r2, #1 - strb r2, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - strb r2, [r4, #0xe] - ldrb r0, [r4, #0x15] - adds r0, #0x10 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803D6EE -_0803D68E: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0803D6EE - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - adds r5, r4, #0 - adds r5, #0x84 - ldrb r0, [r5] - cmp r0, #0xff - bne _0803D6C8 - ldr r1, _0803D6F8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - ldr r1, _0803D6FC @ =gUnk_080D04C0 - lsrs r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5] - movs r0, #0 - strb r0, [r4, #0xf] -_0803D6C8: - ldrb r0, [r4, #0xf] - cmp r0, #0xf - bhi _0803D6EE - ldrb r2, [r5] - adds r0, r4, #0 - movs r1, #0x1a - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0803D6EE - ldrb r0, [r4, #0xf] - strb r0, [r1, #0xf] - str r4, [r1, #0x50] - ldrh r0, [r4, #0x36] - strh r0, [r1, #0x36] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] -_0803D6EE: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0803D6F8: .4byte gLinkEntity -_0803D6FC: .4byte gUnk_080D04C0 - - thumb_func_start sub_0803D700 -sub_0803D700: @ 0x0803D700 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0803D720 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803D82E -_0803D720: - adds r2, r4, #0 - adds r2, #0x74 - ldrb r0, [r2] - adds r6, r2, #0 - cmp r0, #1 - beq _0803D764 - cmp r0, #1 - bgt _0803D736 - cmp r0, #0 - beq _0803D744 - b _0803D73E -_0803D736: - cmp r0, #2 - beq _0803D78E - cmp r0, #3 - beq _0803D7FA -_0803D73E: - adds r5, r4, #0 - adds r5, #0x87 - b _0803D81C -_0803D744: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - adds r5, r4, #0 - adds r5, #0x87 - cmp r0, #0 - bne _0803D81C - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _0803D81C -_0803D764: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - adds r5, r4, #0 - adds r5, #0x87 - cmp r0, #0 - beq _0803D81C - movs r0, #2 - strb r0, [r2] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x40 - strb r0, [r4, #0xf] - movs r0, #0xf4 - bl sub_080A3268 - b _0803D81C -_0803D78E: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - adds r5, r4, #0 - adds r5, #0x87 - cmp r0, #0 - bne _0803D81C - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #1 - bls _0803D7E4 - ldrb r0, [r5] - cmp r0, #3 - bhi _0803D7E4 - bl sub_08000E50 - movs r1, #0x10 - ands r1, r0 - cmp r1, #0 - beq _0803D7E4 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x40 - strb r0, [r4, #0xf] - ldr r1, _0803D7E0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - movs r1, #0x10 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - b _0803D81A - .align 2, 0 -_0803D7E0: .4byte gLinkEntity -_0803D7E4: - ldrb r0, [r6] - adds r0, #1 - movs r1, #0 - strb r0, [r6] - strb r1, [r5] - movs r0, #0x30 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_080042AC - b _0803D81C -_0803D7FA: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r5, r4, #0 - adds r5, #0x87 - cmp r1, #0 - bne _0803D81C - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - orrs r0, r3 -_0803D81A: - strb r0, [r4, #0x15] -_0803D81C: - ldrb r0, [r5] - cmp r0, #0 - beq _0803D828 - adds r0, r4, #0 - bl sub_080AEFB4 -_0803D828: - adds r0, r4, #0 - bl sub_080042B8 -_0803D82E: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803D830 -sub_0803D830: @ 0x0803D830 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0803D844 - movs r0, #1 - strb r0, [r5, #0xc] - strb r0, [r5, #0xe] - b _0803D8F4 -_0803D844: - adds r4, r5, #0 - adds r4, #0x74 - ldrb r0, [r4] - cmp r0, #1 - beq _0803D870 - cmp r0, #1 - bgt _0803D858 - cmp r0, #0 - beq _0803D862 - b _0803D8EE -_0803D858: - cmp r0, #2 - beq _0803D8C2 - cmp r0, #3 - beq _0803D8CE - b _0803D8EE -_0803D862: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0803D8EE - movs r0, #1 - strb r0, [r4] - movs r0, #0x70 - b _0803D8EC -_0803D870: - ldrb r0, [r5, #0xe] - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803D8B0 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - movs r0, #0xa8 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r5, #0 - movs r1, #0x18 - movs r2, #0 - bl sub_0804A98C - adds r4, r0, #0 - cmp r4, #0 - beq _0803D8EE - ldr r3, _0803D8AC @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - str r5, [r4, #0x50] - b _0803D8EE - .align 2, 0 -_0803D8AC: .4byte 0xFFF00000 -_0803D8B0: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x40 - bne _0803D8EE - movs r0, #0xcb - lsls r0, r0, #1 - bl sub_080A3268 - b _0803D8EE -_0803D8C2: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _0803D8EE - movs r0, #0 - strb r0, [r5, #0xf] - b _0803D8EE -_0803D8CE: - ldrb r0, [r5, #0xf] - cmp r0, #0 - bne _0803D8DE - movs r0, #1 - strb r0, [r5, #0xf] - ldr r0, _0803D8F8 @ =0x0000014F - bl sub_080A3268 -_0803D8DE: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0803D8EE - movs r1, #0 - movs r0, #1 - strb r0, [r5, #0xc] - strb r1, [r4] -_0803D8EC: - strb r0, [r5, #0xe] -_0803D8EE: - adds r0, r5, #0 - bl sub_080042B8 -_0803D8F4: - pop {r4, r5, pc} - .align 2, 0 -_0803D8F8: .4byte 0x0000014F - - thumb_func_start sub_0803D8FC -sub_0803D8FC: @ 0x0803D8FC - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _0803D968 - subs r1, r0, #1 - strb r1, [r2, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803D918 - movs r0, #1 - bl sub_0807CD10 - b _0803D968 -_0803D918: - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803D968 - adds r0, r2, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _0803D968 - bl sub_08000E50 - ldr r1, _0803D96C @ =0x00003F3F - ands r0, r1 - movs r3, #0xff - adds r1, r0, #0 - ands r1, r3 - ldr r5, _0803D970 @ =0x0000FFE0 - adds r2, r5, #0 - adds r1, r2, r1 - ldrh r5, [r4, #0x2e] - adds r1, r1, r5 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] -_0803D968: - pop {r4, r5, pc} - .align 2, 0 -_0803D96C: .4byte 0x00003F3F -_0803D970: .4byte 0x0000FFE0 - - thumb_func_start sub_0803D974 -sub_0803D974: @ 0x0803D974 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r5, r4, #0 - adds r5, #0x74 - strb r1, [r5] - adds r2, r4, #0 - adds r2, #0x75 - strb r0, [r2] - strb r1, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - ldr r0, [r4, #0x50] - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - movs r0, #0x4a - movs r1, #2 - bl CreateEnemy - str r4, [r0, #0x50] - ldr r1, [r4, #0x50] - str r1, [r0, #0x54] - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080042AC - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803D9BC -sub_0803D9BC: @ 0x0803D9BC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r2, r4, #0 - adds r2, #0x74 - ldrb r0, [r2] - cmp r0, #0 - bne _0803D9E2 - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0803DA44 - movs r0, #1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x30 - b _0803D9F6 -_0803D9E2: - adds r0, r5, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803DA02 - movs r0, #0 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x2f -_0803D9F6: - strb r0, [r1] - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080042AC - b _0803DA44 -_0803DA02: - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803DA2E - adds r0, r4, #0 - adds r0, #0x3d - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0803DA2E - adds r0, r5, #0 - adds r0, #0x3d - strb r1, [r0] - ldrb r0, [r2] - adds r2, r5, #0 - adds r2, #0x41 - strb r0, [r2] -_0803DA2E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0803DA44 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_0803DA44: - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #0 - bne _0803DA60 - ldrb r0, [r5, #0xc] - cmp r0, #2 - beq _0803DA72 - movs r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _0803DA70 -_0803DA60: - ldrb r0, [r5, #0xc] - cmp r0, #2 - bne _0803DA72 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_0803DA70: - strb r0, [r4, #0x10] -_0803DA72: - ldrb r1, [r5, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r5, #0 - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r4, #0x50] - movs r3, #0x80 - lsls r3, r3, #9 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803DAA8 -sub_0803DAA8: @ 0x0803DAA8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x50] - movs r3, #0 - movs r2, #1 - strb r2, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - strb r2, [r1] - adds r1, #1 - strb r3, [r1] - adds r2, r4, #0 - adds r2, #0x63 - movs r1, #0xfe - strb r1, [r2] - movs r1, #0xff - strb r1, [r4, #0x15] - movs r3, #0x80 - lsls r3, r3, #0xa - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803DAE4 -sub_0803DAE4: @ 0x0803DAE4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x74 - ldrb r2, [r0] - cmp r2, #0 - bne _0803DB3E - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - beq _0803DB00 - strb r2, [r1] -_0803DB00: - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0x15] - cmp r1, #0xff - beq _0803DB28 - adds r2, r4, #0 - adds r2, #0x75 - ldrb r0, [r2] - cmp r0, #0 - bne _0803DB16 - movs r0, #1 - strb r0, [r2] -_0803DB16: - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0803DB54 - strb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r0, r4, #0 - bl sub_080042AC - b _0803DB54 -_0803DB28: - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #0 - beq _0803DB54 - strb r2, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0803DB54 -_0803DB3E: - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - bne _0803DB54 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_0803DB54: - ldrb r1, [r5, #0x18] - lsls r1, r1, #0x1e - lsrs r1, r1, #0x1e - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - adds r0, r5, #0 - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r5, #0x50] - movs r3, #0x80 - lsls r3, r3, #0xa - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0803DB88 -sub_0803DB88: @ 0x0803DB88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x74 - strb r1, [r2] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0803DC0C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803DBB8 -sub_0803DBB8: @ 0x0803DBB8 - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x50] - ldrb r0, [r2, #0x15] - cmp r0, #0xff - beq _0803DBE8 - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - bne _0803DBD2 - movs r0, #1 - strb r0, [r1] -_0803DBD2: - ldrb r0, [r2, #0x15] - lsls r1, r0, #0x18 - ldrb r2, [r4, #0x15] - cmp r0, r2 - beq _0803DC02 - strb r0, [r4, #0x15] - lsrs r1, r1, #0x1b - adds r0, r4, #0 - bl sub_080042AC - b _0803DC02 -_0803DBE8: - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - beq _0803DC02 - movs r0, #0 - strb r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_0803DC02: - adds r0, r4, #0 - bl sub_0803DC0C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803DC0C -sub_0803DC0C: @ 0x0803DC0C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r5, [r4, #0xe] - lsls r5, r5, #1 - ldr r1, _0803DC54 @ =gUnk_080D04C8 - adds r5, r5, r1 - ldrb r2, [r0, #0x18] - lsls r2, r2, #0x1e - lsrs r2, r2, #0x1e - ldrb r3, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r4, #0x18] - adds r1, r0, #0 - adds r1, #0x62 - ldrb r1, [r1] - adds r2, r4, #0 - adds r2, #0x62 - strb r1, [r2] - movs r2, #0 - ldrsb r2, [r5, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r5, r3] - adds r3, #1 - lsls r3, r3, #0x10 - adds r1, r4, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0803DC54: .4byte gUnk_080D04C8 - - thumb_func_start sub_0803DC58 -sub_0803DC58: @ 0x0803DC58 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x30 - beq _0803DC66 - b _0803DD74 -_0803DC66: - ldr r5, [r4, #0x50] - adds r2, r4, #0 - adds r2, #0x77 - movs r7, #0 - strb r7, [r2] - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - mov ip, r0 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - beq _0803DD20 - ldr r0, _0803DCE4 @ =gUnk_080D04D0 - adds r3, r5, #0 - adds r3, #0x86 - ldrb r2, [r3] - adds r0, r2, r0 - adds r1, r4, #0 - adds r1, #0x45 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _0803DCFA - adds r0, r2, #1 - strb r0, [r3] - movs r3, #0xff - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _0803DCF0 - ldrb r2, [r4, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x10] - movs r0, #7 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0x10] - ands r1, r0 - strb r1, [r5, #0x10] - mov r2, ip - strb r2, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x62 - strb r7, [r0] - ldrb r0, [r5, #0x15] - orrs r0, r3 - strb r0, [r5, #0x15] - strb r7, [r4, #0xe] - ldr r0, _0803DCE8 @ =0x80100000 - bl sub_080A3268 - ldr r0, _0803DCEC @ =gUnk_02033A90 - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - b _0803DD74 - .align 2, 0 -_0803DCE4: .4byte gUnk_080D04D0 -_0803DCE8: .4byte 0x80100000 -_0803DCEC: .4byte gUnk_02033A90 -_0803DCF0: - movs r0, #1 - strb r0, [r4, #0xe] - ldrb r0, [r6] - orrs r0, r3 - strb r0, [r6] -_0803DCFA: - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0803DD20 - ldr r0, _0803DD50 @ =0x00000127 - bl sub_080A3268 - movs r0, #0xc - movs r1, #1 - bl sub_08080964 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0803DD26 - movs r0, #0x48 - strb r0, [r4, #0xe] -_0803DD20: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803DD74 -_0803DD26: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803DD74 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x2f - strb r0, [r1] - adds r1, #0x35 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r6] - cmp r0, #0 - bne _0803DD54 - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0xf0 - b _0803DD64 - .align 2, 0 -_0803DD50: .4byte 0x00000127 -_0803DD54: - adds r1, r5, #0 - adds r1, #0x74 - movs r0, #0x70 - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x45 - ldrb r0, [r1] - orrs r0, r2 -_0803DD64: - strb r0, [r1] - movs r0, #1 - strb r0, [r5, #0xc] - strb r0, [r5, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_0803DD74: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803DD78 -sub_0803DD78: @ 0x0803DD78 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x7c - ands r1, r0 - lsrs r2, r1, #2 - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #1 - beq _0803DDFE - cmp r0, #1 - bgt _0803DD9A - cmp r0, #0 - beq _0803DDA0 - b _0803DDB6 -_0803DD9A: - cmp r0, #2 - beq _0803DE5C - b _0803DDB6 -_0803DDA0: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r1, [r0] - cmp r1, #0 - bne _0803DDBC - subs r0, #0xb - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #0x50 - strb r0, [r1] -_0803DDB6: - adds r5, r4, #0 - adds r5, #0x83 - b _0803DED0 -_0803DDBC: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #5 - bls _0803DDCA - b _0803DED0 -_0803DDCA: - lsls r0, r1, #2 - ldr r1, _0803DDD4 @ =_0803DDD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DDD4: .4byte _0803DDD8 -_0803DDD8: @ jump table - .4byte _0803DDF0 @ case 0 - .4byte _0803DEC2 @ case 1 - .4byte _0803DDF0 @ case 2 - .4byte _0803DEC2 @ case 3 - .4byte _0803DDF0 @ case 4 - .4byte _0803DEC2 @ case 5 -_0803DDF0: - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0 - strb r0, [r1] - adds r1, #2 - movs r0, #0x50 - b _0803DECE -_0803DDFE: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #5 - bhi _0803DED0 - lsls r0, r1, #2 - ldr r1, _0803DE14 @ =_0803DE18 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DE14: .4byte _0803DE18 -_0803DE18: @ jump table - .4byte _0803DE98 @ case 0 - .4byte _0803DEC2 @ case 1 - .4byte _0803DE30 @ case 2 - .4byte _0803DEC2 @ case 3 - .4byte _0803DE46 @ case 4 - .4byte _0803DEC2 @ case 5 -_0803DE30: - movs r1, #8 - ands r1, r2 - cmp r1, #0 - bne _0803DEC2 - adds r0, r4, #0 - adds r0, #0x75 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #0x50 - b _0803DECE -_0803DE46: - movs r0, #8 - ands r2, r0 - cmp r2, #0 - beq _0803DE98 - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0 - strb r0, [r1] - adds r1, #2 - movs r0, #0x50 - b _0803DECE -_0803DE5C: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #5 - bhi _0803DED0 - lsls r0, r1, #2 - ldr r1, _0803DE74 @ =_0803DE78 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DE74: .4byte _0803DE78 -_0803DE78: @ jump table - .4byte _0803DE98 @ case 0 - .4byte _0803DEC2 @ case 1 - .4byte _0803DE90 @ case 2 - .4byte _0803DEC2 @ case 3 - .4byte _0803DEA6 @ case 4 - .4byte _0803DEC2 @ case 5 -_0803DE90: - movs r0, #0xf - ands r2, r0 - cmp r2, #2 - bls _0803DEC2 -_0803DE98: - adds r0, r4, #0 - adds r0, #0x75 - movs r1, #1 - strb r1, [r0] - adds r0, #2 - strb r1, [r0] - b _0803DED0 -_0803DEA6: - cmp r2, #9 - bls _0803DEC2 - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #2 - strb r0, [r1] - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r0, #2 - adds r1, r4, #0 - adds r1, #0x77 - b _0803DECE -_0803DEC2: - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0 - strb r0, [r1] - adds r1, #2 - movs r0, #1 -_0803DECE: - strb r0, [r1] -_0803DED0: - ldrb r0, [r5] - adds r0, #1 - movs r1, #6 - bl __modsi3 - strb r0, [r5] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803DEE0 -sub_0803DEE0: @ 0x0803DEE0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #2 - bl sub_08000E50 - movs r1, #0xf8 - ands r1, r0 - lsrs r2, r1, #3 - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - beq _0803DFB8 - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #1 - beq _0803DF28 - cmp r0, #1 - bgt _0803DF0E - cmp r0, #0 - beq _0803DF14 - b _0803DFB8 -_0803DF0E: - cmp r0, #2 - beq _0803DF68 - b _0803DFB8 -_0803DF14: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - movs r5, #1 - ands r5, r1 - adds r1, #1 - movs r2, #3 - ands r1, r2 - strb r1, [r0] - b _0803DFB8 -_0803DF28: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #4 - bhi _0803DFAC - lsls r0, r1, #2 - ldr r1, _0803DF40 @ =_0803DF44 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DF40: .4byte _0803DF44 -_0803DF44: @ jump table - .4byte _0803DF9E @ case 0 - .4byte _0803DF58 @ case 1 - .4byte _0803DF9E @ case 2 - .4byte _0803DF58 @ case 3 - .4byte _0803DF5C @ case 4 -_0803DF58: - movs r5, #1 - b _0803DFAC -_0803DF5C: - movs r0, #8 - ands r2, r0 - movs r5, #0 - cmp r2, #0 - beq _0803DFAC - b _0803DF9E -_0803DF68: - adds r0, r4, #0 - adds r0, #0x82 - ldrb r1, [r0] - adds r4, r0, #0 - cmp r1, #4 - bhi _0803DFAC - lsls r0, r1, #2 - ldr r1, _0803DF80 @ =_0803DF84 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803DF80: .4byte _0803DF84 -_0803DF84: @ jump table - .4byte _0803DF9E @ case 0 - .4byte _0803DF98 @ case 1 - .4byte _0803DFA2 @ case 2 - .4byte _0803DF9E @ case 3 - .4byte _0803DFAA @ case 4 -_0803DF98: - movs r5, #0 - cmp r2, #5 - bls _0803DFAC -_0803DF9E: - movs r5, #3 - b _0803DFAC -_0803DFA2: - movs r5, #0 - cmp r2, #9 - bhi _0803DFAC - b _0803DF9E -_0803DFAA: - movs r5, #0 -_0803DFAC: - ldrb r0, [r4] - adds r0, #1 - movs r1, #5 - bl __modsi3 - strb r0, [r4] -_0803DFB8: - adds r0, r5, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0803DFBC -sub_0803DFBC: @ 0x0803DFBC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0803DFCE - ldr r0, [r4, #0x2c] - str r0, [r4, #0x78] - ldr r0, [r4, #0x30] - str r0, [r4, #0x7c] -_0803DFCE: - adds r5, r4, #0 - adds r5, #0x76 - ldrb r0, [r5] - cmp r0, #0 - bne _0803DFFC - ldrb r0, [r4, #0x15] - cmp r0, #0xff - beq _0803E000 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803E000 - adds r0, r4, #0 - bl sub_08049EE4 - movs r1, #0x10 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x10 - b _0803DFFE -_0803DFFC: - subs r0, #1 -_0803DFFE: - strb r0, [r5] -_0803E000: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _0803E022 - ldrb r0, [r4, #0x14] - adds r0, #1 - movs r1, #3 - ands r0, r1 - strb r0, [r4, #0x14] - ldr r1, _0803E024 @ =gUnk_080D04D3 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x62 - strb r1, [r0] -_0803E022: - pop {r4, r5, pc} - .align 2, 0 -_0803E024: .4byte gUnk_080D04D3 - - thumb_func_start sub_0803E028 -sub_0803E028: @ 0x0803E028 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #2 - beq _0803E046 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803E046 - movs r0, #0 - b _0803E082 -_0803E046: - adds r0, r4, #0 - adds r0, #0x77 - ldrb r0, [r0] - cmp r0, #1 - bne _0803E080 - ldr r2, _0803E084 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - adds r1, r0, #0 - adds r1, #0x58 - ldr r0, _0803E088 @ =gLinkEntity - movs r3, #0x2e - ldrsh r0, [r0, r3] - cmp r1, r0 - bgt _0803E080 - ldrh r2, [r2, #8] - adds r1, r2, #0 - adds r1, #0x58 - cmp r1, r0 - bgt _0803E080 - adds r1, r2, #0 - adds r1, #0xf8 - cmp r1, r0 - blt _0803E080 - adds r1, r4, #0 - adds r1, #0x81 - ldrb r0, [r1] - adds r0, #5 - strb r0, [r1] - movs r5, #1 -_0803E080: - adds r0, r5, #0 -_0803E082: - pop {r4, r5, pc} - .align 2, 0 -_0803E084: .4byte gUnk_03000BF0 -_0803E088: .4byte gLinkEntity - - thumb_func_start sub_0803E08C -sub_0803E08C: @ 0x0803E08C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0803E4A0 - cmp r0, #0 - beq _0803E0AA - ldrb r0, [r5, #0x10] - movs r1, #0x7f - ands r1, r0 - movs r0, #0 - strb r1, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x45 - strb r0, [r1] - str r0, [r5, #0x50] -_0803E0AA: - ldr r4, _0803E0C0 @ =gUnk_080D0648 - 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 - pop {r4, r5, pc} - .align 2, 0 -_0803E0C0: .4byte gUnk_080D0648 - - thumb_func_start sub_0803E0C4 -sub_0803E0C4: @ 0x0803E0C4 - push {lr} - ldr r2, _0803E0D8 @ =gUnk_080D0660 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803E0D8: .4byte gUnk_080D0660 - - thumb_func_start sub_0803E0DC -sub_0803E0DC: @ 0x0803E0DC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _0803E16C - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0803E158 - movs r0, #5 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r6, #0x7f - adds r0, r6, #0 - ands 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 - strb r0, [r2] - ldr r3, _0803E154 @ =gLinkEntity - ldrb r1, [r3, #0x10] - adds r0, r6, #0 - ands r0, r1 - strb r0, [r3, #0x10] - ldrb r2, [r5, #0x1b] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r4, [r3, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r4 - orrs r0, r2 - strb r0, [r3, #0x1b] - ldrb r0, [r5, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r3, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r3, #0x19] - adds r0, r5, #0 - bl sub_0803E444 - movs r0, #2 - bl sub_08078A90 - ldr r2, [r5, #0x50] - cmp r2, #0 - beq _0803E16C - ldrb r1, [r2, #0x10] - adds r0, r6, #0 - ands r0, r1 - b _0803E16A - .align 2, 0 -_0803E154: .4byte gLinkEntity -_0803E158: - ldr r2, _0803E178 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _0803E17C @ =0xFFFFFEFF - ands r0, r1 - str r0, [r2, #0x30] - ldr r2, _0803E180 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 -_0803E16A: - strb r0, [r2, #0x10] -_0803E16C: - ldr r1, _0803E184 @ =gUnk_080D0648 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_0803E178: .4byte gUnk_03003F80 -_0803E17C: .4byte 0xFFFFFEFF -_0803E180: .4byte gLinkEntity -_0803E184: .4byte gUnk_080D0648 - - thumb_func_start sub_0803E188 -sub_0803E188: @ 0x0803E188 - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x50] - cmp r2, #0 - beq _0803E19C - ldrb r0, [r2, #0xf] - subs r0, #1 - movs r1, #0 - strb r0, [r2, #0xf] - str r1, [r3, #0x50] -_0803E19C: - adds r0, r3, #0 - bl sub_0804A7D4 - pop {pc} - - thumb_func_start nullsub_19 -nullsub_19: @ 0x0803E1A4 - bx lr - .align 2, 0 - - thumb_func_start sub_0803E1A8 -sub_0803E1A8: @ 0x0803E1A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _0803E1F8 - movs r0, #0x4b - movs r1, #1 - bl CreateEnemy - cmp r0, #0 - beq _0803E250 - str r5, [r0, #0x50] - str r0, [r5, #0x54] - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _0803E1D8 - movs r0, #1 - strb r0, [r5, #0xc] - ldr r0, _0803E1D4 @ =0x0000FFE8 - strh r0, [r5, #0x36] - b _0803E1E8 - .align 2, 0 -_0803E1D4: .4byte 0x0000FFE8 -_0803E1D8: - movs r0, #9 - strb r0, [r5, #0xc] - ldr r0, _0803E1F4 @ =0x0000FF80 - strh r0, [r5, #0x36] - adds r1, r5, #0 - adds r1, #0x3b - movs r0, #1 - strb r0, [r1] -_0803E1E8: - adds r0, r5, #0 - movs r1, #0 - bl sub_08004260 - b _0803E250 - .align 2, 0 -_0803E1F4: .4byte 0x0000FF80 -_0803E1F8: - movs r0, #8 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r1, r5, #0 - adds r1, #0x63 - movs r0, #1 - strb r0, [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 r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r5, #0x50] - ldr r3, _0803E254 @ =0xFFFF0000 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r0, r5, #0 - movs r1, #1 - bl sub_08004260 -_0803E250: - pop {r4, r5, pc} - .align 2, 0 -_0803E254: .4byte 0xFFFF0000 - - thumb_func_start sub_0803E258 -sub_0803E258: @ 0x0803E258 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803E480 - adds r0, r4, #0 - movs r1, #0 - movs r2, #8 - bl sub_08049F64 - cmp r0, #0 - beq _0803E280 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r0, [r4, #0x54] - movs r1, #2 - bl sub_08004260 - b _0803E29C -_0803E280: - ldr r0, _0803E2A4 @ =gUnk_020000B0 - ldr r1, [r0] - cmp r1, #0 - beq _0803E29C - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - adds r0, r4, #0 - bl sub_0806F69C -_0803E29C: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0803E2A4: .4byte gUnk_020000B0 - - thumb_func_start sub_0803E2A8 -sub_0803E2A8: @ 0x0803E2A8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _0803E2B8 - subs r0, #1 - strb r0, [r1, #0xe] - b _0803E2C8 -_0803E2B8: - ldrh r0, [r1, #0x36] - adds r0, #1 - strh r0, [r1, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803E2C8 - movs r0, #3 - strb r0, [r1, #0xc] -_0803E2C8: - adds r0, r1, #0 - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0803E2D0 -sub_0803E2D0: @ 0x0803E2D0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0803E312 - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x18 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _0803E30C - movs r0, #4 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0xf - ands r0, r1 - adds r0, #0xf - strb r0, [r4, #0xe] - ldr r0, [r4, #0x54] - movs r1, #1 - bl sub_08004260 -_0803E30C: - adds r0, r4, #0 - bl sub_08004274 -_0803E312: - pop {r4, pc} - - thumb_func_start sub_0803E314 -sub_0803E314: @ 0x0803E314 - 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 _0803E332 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _0803E33C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - strb r0, [r4, #0x15] -_0803E332: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0803E33C: .4byte gLinkEntity - - thumb_func_start sub_0803E340 -sub_0803E340: @ 0x0803E340 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803E444 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803E352 - subs r0, #1 - b _0803E36A -_0803E352: - ldrh r0, [r4, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x18 - rsbs r1, r1, #0 - cmp r0, r1 - bgt _0803E36C - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x14 -_0803E36A: - strb r0, [r4, #0xe] -_0803E36C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803E370 -sub_0803E370: @ 0x0803E370 - 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 _0803E38E - movs r0, #7 - strb r0, [r1, #0xc] - movs r0, #0x10 - strb r0, [r1, #0x15] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r1, #0x24] -_0803E38E: - adds r0, r1, #0 - bl sub_0803E444 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803E398 -sub_0803E398: @ 0x0803E398 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803E444 - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_0803E4D8 - ldr r1, _0803E3CC @ =gUnk_03000BF0 - ldrh r0, [r1, #8] - ldrh r1, [r1, #0x20] - adds r0, r0, r1 - subs r0, #0x10 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bgt _0803E3C8 - bl sub_0805E5A8 - ldr r0, _0803E3D0 @ =gUnk_0813AB94 - bl sub_08080840 -_0803E3C8: - pop {r4, pc} - .align 2, 0 -_0803E3CC: .4byte gUnk_03000BF0 -_0803E3D0: .4byte gUnk_0813AB94 - - thumb_func_start sub_0803E3D4 -sub_0803E3D4: @ 0x0803E3D4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0803E3E4 - bl sub_0805E780 -_0803E3E4: - ldr r0, [r4, #0x50] - ldr r3, _0803E3F8 @ =0xFFFF0000 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0803E3F8: .4byte 0xFFFF0000 - - thumb_func_start sub_0803E3FC -sub_0803E3FC: @ 0x0803E3FC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803E438 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x32] - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bge _0803E43C - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #2 - beq _0803E42E - movs r0, #0 - strb r0, [r4, #0xe] - ldr r0, [r4, #0x54] - movs r1, #2 - bl sub_08004260 -_0803E42E: - adds r0, r4, #0 - bl sub_0803E2A8 - b _0803E442 - .align 2, 0 -_0803E438: .4byte gLinkEntity -_0803E43C: - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x36] -_0803E442: - pop {r4, pc} - - thumb_func_start sub_0803E444 -sub_0803E444: @ 0x0803E444 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077B2C - ldr r2, _0803E478 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r1, [r4, #0x4c] - movs r3, #2 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r2, #0 - bl sub_0806FA90 - ldr r1, _0803E47C @ =gLinkEntity - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #0xe - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_0803E478: .4byte gUnk_03003F80 -_0803E47C: .4byte gLinkEntity - - thumb_func_start sub_0803E480 -sub_0803E480: @ 0x0803E480 - push {lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x78 - ldrh r1, [r2] - movs r0, #0x96 - lsls r0, r0, #3 - cmp r1, r0 - bls _0803E49A - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - b _0803E49E -_0803E49A: - adds r0, r1, #1 - strh r0, [r2] -_0803E49E: - pop {pc} - - thumb_func_start sub_0803E4A0 -sub_0803E4A0: @ 0x0803E4A0 - push {lr} - adds r1, r0, #0 - ldr r0, _0803E4B8 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - beq _0803E4C6 - ldr r1, [r1, #0x50] - cmp r1, #0 - bne _0803E4BC - movs r0, #0 - b _0803E4D6 - .align 2, 0 -_0803E4B8: .4byte gUnk_030010A0 -_0803E4BC: - adds r0, r1, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0803E4CA -_0803E4C6: - movs r0, #1 - b _0803E4D6 -_0803E4CA: - movs r2, #0 - ldr r0, [r1, #4] - cmp r0, #0 - bne _0803E4D4 - movs r2, #1 -_0803E4D4: - adds r0, r2, #0 -_0803E4D6: - pop {pc} - - thumb_func_start sub_0803E4D8 -sub_0803E4D8: @ 0x0803E4D8 - push {r4, r5, lr} - movs r2, #0x2e - ldrsh r1, [r0, r2] - ldr r3, _0803E51C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r4, r1, #4 - movs r2, #0x3f - ands r4, r2 - movs r1, #0x32 - ldrsh r0, [r0, r1] - ldrh r1, [r3, #8] - subs r1, #8 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r0, _0803E520 @ =gLinkEntity - adds r5, r0, #0 - adds r5, #0x38 - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080002E0 - cmp r0, #0xff - beq _0803E518 - ldr r0, _0803E524 @ =0x00004074 - ldrb r2, [r5] - adds r1, r4, #0 - bl sub_0800015E -_0803E518: - pop {r4, r5, pc} - .align 2, 0 -_0803E51C: .4byte gUnk_03000BF0 -_0803E520: .4byte gLinkEntity -_0803E524: .4byte 0x00004074 - - thumb_func_start sub_0803E528 -sub_0803E528: @ 0x0803E528 - push {lr} - ldr r1, _0803E534 @ =gUnk_080D06E0 - bl sub_0800129E - pop {pc} - .align 2, 0 -_0803E534: .4byte gUnk_080D06E0 - - thumb_func_start sub_0803E538 -sub_0803E538: @ 0x0803E538 - push {lr} - ldr r2, _0803E54C @ =gUnk_080D06F8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803E54C: .4byte gUnk_080D06F8 - - thumb_func_start sub_0803E550 -sub_0803E550: @ 0x0803E550 - push {lr} - ldr r1, _0803E55C @ =gUnk_080D06E0 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_0803E55C: .4byte gUnk_080D06E0 - - thumb_func_start sub_0803E560 -sub_0803E560: @ 0x0803E560 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001324 - - thumb_func_start sub_0803E568 -sub_0803E568: @ 0x0803E568 - adds r0, r4, #0 - bl sub_0803E538 - pop {r4, pc} - - thumb_func_start sub_0803E570 -sub_0803E570: @ 0x0803E570 - push {lr} - movs r1, #0xff - movs r2, #0x57 - bl sub_0804A7E0 - pop {pc} - - thumb_func_start nullsub_20 -nullsub_20: @ 0x0803E57C - bx lr - .align 2, 0 - - thumb_func_start sub_0803E580 -sub_0803E580: @ 0x0803E580 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0804A720 - adds r0, r5, #0 - movs r1, #0x19 - movs r2, #0 - bl sub_0804A98C - cmp r0, #0 - beq _0803E5E4 - str r5, [r0, #0x50] - str r0, [r5, #0x54] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - movs r4, #0 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x7b - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r1, r5, #0 - adds r1, #0x7e - movs r0, #0x20 - strb r0, [r1] - adds r1, #1 - movs r0, #0xfe - strb r0, [r1] - ldrb r1, [r5, #0x14] - lsls r1, r1, #2 - adds r0, r5, #0 - bl sub_080042AC - adds r0, r5, #0 - bl sub_0803E86C -_0803E5E4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803E5E8 -sub_0803E5E8: @ 0x0803E5E8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xa - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r0, r4, #0 - bl sub_0803E9D4 - cmp r0, #0 - bne _0803E61A - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803E61A - adds r0, r4, #0 - bl sub_0803E8CC -_0803E61A: - pop {r4, pc} - - thumb_func_start sub_0803E61C -sub_0803E61C: @ 0x0803E61C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xa - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r0, r4, #0 - bl sub_0803E9D4 - cmp r0, #0 - bne _0803E66A - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0803E654 - adds r0, r4, #0 - bl sub_080AEF88 - cmp r0, #0 - bne _0803E654 - adds r0, r4, #0 - bl sub_0803E86C - b _0803E66A -_0803E654: - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803E66A - adds r0, r4, #0 - bl sub_0803E92C -_0803E66A: - pop {r4, pc} - - thumb_func_start sub_0803E66C -sub_0803E66C: @ 0x0803E66C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0x10 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0x21 - bhi _0803E68E - adds r0, #1 - strb r0, [r1] -_0803E68E: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803E6A4 - adds r0, r4, #0 - bl sub_0803EA64 - cmp r0, #0 - bne _0803E6B0 -_0803E6A4: - movs r0, #4 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x7b - movs r0, #0 - strb r0, [r1] -_0803E6B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803E6B4 -sub_0803E6B4: @ 0x0803E6B4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0x20 - bls _0803E6D8 - subs r0, #1 - strb r0, [r1] - b _0803E6DE -_0803E6D8: - adds r0, r4, #0 - bl sub_0803E86C -_0803E6DE: - pop {r4, pc} - - thumb_func_start sub_0803E6E0 -sub_0803E6E0: @ 0x0803E6E0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xc - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - subs r0, #4 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _0803E718 - movs r0, #0 - strb r0, [r1] - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x14] - adds r1, #0x20 - adds r0, r4, #0 - bl sub_080042AC -_0803E718: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803E71C -sub_0803E71C: @ 0x0803E71C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - bne _0803E756 - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #1 - strb r0, [r2, #0xe] - ldr r1, _0803E758 @ =gUnk_080D0724 - ldrb r0, [r2, #0x14] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x7c - strb r1, [r0] - subs r0, #1 - strb r3, [r0] - adds r1, r2, #0 - adds r1, #0x7f - movs r0, #0xf6 - strb r0, [r1] - adds r0, #0x65 - bl sub_08004488 -_0803E756: - pop {pc} - .align 2, 0 -_0803E758: .4byte gUnk_080D0724 - - thumb_func_start sub_0803E75C -sub_0803E75C: @ 0x0803E75C - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803E774 - adds r0, r2, #0 - bl sub_080042B8 - b _0803E7B0 -_0803E774: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - adds r1, r2, #0 - adds r1, #0x7f - cmp r0, #0 - bne _0803E78E - movs r0, #2 - strb r0, [r2, #0xe] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0803E78E: - ldrb r0, [r1] - cmp r0, #0 - beq _0803E7A0 - adds r1, r2, #0 - adds r1, #0x7e - ldrb r0, [r1] - adds r0, #5 - strb r0, [r1] - b _0803E7B0 -_0803E7A0: - movs r0, #8 - strb r0, [r2, #0xc] - movs r0, #0x1e - strb r0, [r2, #0xe] - movs r0, #8 - movs r1, #0 - bl sub_08080964 -_0803E7B0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803E7B4 -sub_0803E7B4: @ 0x0803E7B4 - 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 _0803E7C8 - movs r0, #9 - strb r0, [r1, #0xc] -_0803E7C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803E7CC -sub_0803E7CC: @ 0x0803E7CC - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7e - ldrb r0, [r1] - subs r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _0803E806 - movs r0, #0xa - strb r0, [r2, #0xc] - movs r0, #0x5a - strb r0, [r2, #0xe] - ldrb r0, [r2, #0x14] - lsls r0, r0, #3 - strb r0, [r2, #0x15] - subs r1, #2 - movs r0, #0 - strb r0, [r1] - adds r1, #3 - movs r0, #0xfe - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x10 - bl sub_0803E94C - b _0803E814 -_0803E806: - cmp r0, #0x12 - bhi _0803E814 - ldr r2, [r2, #0x54] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_0803E814: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803E818 -sub_0803E818: @ 0x0803E818 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803E840 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803E868 - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x10] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - b _0803E868 -_0803E840: - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1f - bls _0803E868 - adds r0, r4, #0 - bl sub_0803E86C -_0803E868: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803E86C -sub_0803E86C: @ 0x0803E86C - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803E898 - adds r0, r4, #0 - movs r1, #0x50 - bl sub_0803EAD0 - cmp r0, #0 - beq _0803E898 - ldr r0, _0803E8C4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] -_0803E898: - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _0803E8C8 @ =gUnk_080D0728 - movs r1, #3 - 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, #4 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - pop {r4, pc} - .align 2, 0 -_0803E8C4: .4byte gUnk_020000B0 -_0803E8C8: .4byte gUnk_080D0728 - - thumb_func_start sub_0803E8CC -sub_0803E8CC: @ 0x0803E8CC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0803E8F4 - movs r0, #3 - ands r0, r5 - cmp r0, #0 - beq _0803E8F4 - adds r0, r4, #0 - bl sub_08049EE4 - adds r0, #4 - movs r1, #0x18 - b _0803E8F8 -_0803E8F4: - movs r1, #0x18 - adds r0, r5, #0 -_0803E8F8: - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #2 - strb r0, [r4, #0xc] - ldr r2, _0803E928 @ =gUnk_080D0730 - lsrs r0, r5, #0x10 - movs r1, #3 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x78 - strh r1, [r0] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0803E94C - pop {r4, r5, pc} - .align 2, 0 -_0803E928: .4byte gUnk_080D0730 - - thumb_func_start sub_0803E92C -sub_0803E92C: @ 0x0803E92C - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0803E944 - adds r0, r4, #0 - bl sub_0803E86C - b _0803E94A -_0803E944: - adds r0, r4, #0 - bl sub_0803E8CC -_0803E94A: - pop {r4, pc} - - thumb_func_start sub_0803E94C -sub_0803E94C: @ 0x0803E94C - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r6, r1, #0 - ldrb r2, [r3, #0x15] - adds r0, r2, #4 - movs r1, #0x18 - ands r0, r1 - asrs r4, r0, #3 - adds r0, r3, #0 - adds r0, #0x58 - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r6 - bne _0803E988 - movs r0, #7 - ands r0, r2 - ldrb r5, [r3, #0x14] - cmp r0, #4 - bne _0803E984 - lsrs r0, r2, #3 - subs r0, r5, r0 - movs r1, #3 - ands r0, r1 - cmp r0, #1 - ble _0803E9A2 -_0803E984: - cmp r4, r5 - beq _0803E9A2 -_0803E988: - strb r4, [r3, #0x14] - adds r0, r3, #0 - adds r0, #0x58 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - adds r0, r6, r0 - lsls r1, r4, #2 - adds r4, r0, r1 - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_080042AC -_0803E9A2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803E9A4 -sub_0803E9A4: @ 0x0803E9A4 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x7c - ldrb r0, [r0] - adds r0, #0x20 - movs r1, #0xff - ands r0, r1 - asrs r4, r0, #6 - adds r3, r2, #0 - adds r3, #0x58 - ldrb r1, [r3] - movs r0, #3 - ands r0, r1 - cmp r0, r4 - beq _0803E9D2 - ldrb r1, [r3] - movs r0, #4 - rsbs r0, r0, #0 - ands r1, r0 - adds r1, r4, r1 - adds r0, r2, #0 - bl sub_080042AC -_0803E9D2: - pop {r4, pc} - - thumb_func_start sub_0803E9D4 -sub_0803E9D4: @ 0x0803E9D4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803EA58 - adds r0, r4, #0 - movs r1, #0x38 - bl sub_0803EAD0 - cmp r0, #0 - beq _0803EA10 - movs r0, #3 - strb r0, [r4, #0xc] - ldr r0, _0803EA0C @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x7b - movs r0, #1 - b _0803EA46 - .align 2, 0 -_0803EA0C: .4byte gUnk_020000B0 -_0803EA10: - adds r0, r4, #0 - movs r1, #0x4e - bl sub_0803EAD0 - cmp r0, #0 - beq _0803EA58 - ldr r0, _0803EA54 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x12 - bl sub_0804A044 - adds r2, r0, #0 - cmp r2, #0xff - beq _0803EA58 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EA60 - movs r0, #5 - strb r0, [r4, #0xc] - strb r2, [r4, #0x15] - movs r0, #4 -_0803EA46: - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - movs r0, #1 - b _0803EA62 - .align 2, 0 -_0803EA54: .4byte gUnk_020000B0 -_0803EA58: - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #4 - strb r0, [r1] -_0803EA60: - movs r0, #0 -_0803EA62: - pop {r4, pc} - - thumb_func_start sub_0803EA64 -sub_0803EA64: @ 0x0803EA64 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803EAC4 - adds r0, r4, #0 - movs r1, #0x4e - bl sub_0803EAD0 - cmp r0, #0 - beq _0803EAB8 - ldr r0, _0803EAB4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x12 - bl sub_0804A044 - adds r2, r0, #0 - cmp r2, #0xff - beq _0803EAB8 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EAAE - movs r0, #5 - strb r0, [r4, #0xc] - strb r2, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C -_0803EAAE: - movs r0, #1 - b _0803EACE - .align 2, 0 -_0803EAB4: .4byte gUnk_020000B0 -_0803EAB8: - adds r0, r4, #0 - movs r1, #0x38 - bl sub_0803EAD0 - cmp r0, #0 - bne _0803EAAE -_0803EAC4: - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #4 - strb r0, [r1] - movs r0, #0 -_0803EACE: - pop {r4, pc} - - thumb_func_start sub_0803EAD0 -sub_0803EAD0: @ 0x0803EAD0 - push {r4, lr} - adds r3, r1, #0 - ldr r1, _0803EAE8 @ =gUnk_020000B0 - ldr r2, [r1] - movs r4, #0x2e - ldrsh r1, [r2, r4] - movs r4, #0x32 - ldrsh r2, [r2, r4] - subs r2, #4 - bl sub_0806FCB8 - pop {r4, pc} - .align 2, 0 -_0803EAE8: .4byte gUnk_020000B0 - - thumb_func_start sub_0803EAEC -sub_0803EAEC: @ 0x0803EAEC - push {lr} - ldr r1, _0803EAF8 @ =gUnk_080D0880 - bl sub_0800129E - pop {pc} - .align 2, 0 -_0803EAF8: .4byte gUnk_080D0880 - - thumb_func_start sub_0803EAFC -sub_0803EAFC: @ 0x0803EAFC - push {lr} - ldr r2, _0803EB10 @ =gUnk_080D0898 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0803EB10: .4byte gUnk_080D0898 - - thumb_func_start sub_0803EB14 -sub_0803EB14: @ 0x0803EB14 - push {lr} - ldr r1, _0803EB20 @ =gUnk_080D0880 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_0803EB20: .4byte gUnk_080D0880 - - thumb_func_start sub_0803EB24 -sub_0803EB24: @ 0x0803EB24 - push {r4, lr} - adds r4, r0, #0 - bl sub_08001324 - - thumb_func_start sub_0803EB2C -sub_0803EB2C: @ 0x0803EB2C - adds r0, r4, #0 - bl sub_0803EAFC - pop {r4, pc} - - thumb_func_start sub_0803EB34 -sub_0803EB34: @ 0x0803EB34 - push {lr} - movs r1, #0xff - movs r2, #0x57 - bl sub_0804A7E0 - pop {pc} - - thumb_func_start nullsub_21 -nullsub_21: @ 0x0803EB40 - bx lr - .align 2, 0 - - thumb_func_start sub_0803EB44 -sub_0803EB44: @ 0x0803EB44 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl sub_0804A98C - cmp r0, #0 - beq _0803EBB2 - str r4, [r0, #0x50] - str r0, [r4, #0x54] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r2, #0 - 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, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x7b - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #0x28 - strb r0, [r1] - adds r1, #1 - movs r0, #0xfe - strb r0, [r1] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x82 - strh r0, [r1] - ldrb r1, [r4, #0x14] - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0803EE8C -_0803EBB2: - pop {r4, pc} - - thumb_func_start sub_0803EBB4 -sub_0803EBB4: @ 0x0803EBB4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xa - strb r1, [r0] - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0803EBE4 - ldr r0, _0803EC10 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C -_0803EBE4: - adds r0, r4, #0 - bl sub_0803E9A4 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #2 - bl sub_0806FCB8 - cmp r0, #0 - bne _0803EC14 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0803E94C - b _0803EC24 - .align 2, 0 -_0803EC10: .4byte gUnk_020000B0 -_0803EC14: - adds r0, r4, #0 - bl sub_0803EF20 - cmp r0, #0 - bne _0803EC24 - adds r0, r4, #0 - bl sub_0803EEA4 -_0803EC24: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803EC28 -sub_0803EC28: @ 0x0803EC28 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0x10 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0x1c - bls _0803EC4A - subs r0, #1 - strb r0, [r1] -_0803EC4A: - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803EC64 - movs r0, #3 - strb r0, [r4, #0xc] - adds r1, #3 - movs r0, #0 - strb r0, [r1] -_0803EC64: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803EC68 -sub_0803EC68: @ 0x0803EC68 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0x27 - bhi _0803EC8C - adds r0, #1 - strb r0, [r1] - b _0803EC92 -_0803EC8C: - adds r0, r4, #0 - bl sub_0803EE8C -_0803EC92: - pop {r4, pc} - - thumb_func_start sub_0803EC94 -sub_0803EC94: @ 0x0803EC94 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - adds r0, r4, #0 - movs r3, #1 - bl sub_0806FCB8 - cmp r0, #0 - beq _0803ECD8 - ldrh r0, [r5] - strh r0, [r4, #0x2e] - ldrh r0, [r6] - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_0803EE8C - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - b _0803ED02 -_0803ECD8: - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0803ED02 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r5] - ldrh r3, [r6] - bl sub_080045D4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_0803E94C - adds r0, r4, #0 - bl sub_080AEF88 -_0803ED02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0803ED04 -sub_0803ED04: @ 0x0803ED04 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r1, [r0] - subs r1, #0xc - strb r1, [r0] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - subs r0, #4 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _0803ED3C - movs r0, #0 - strb r0, [r1] - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x14] - adds r1, #0x20 - adds r0, r4, #0 - bl sub_080042AC -_0803ED3C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803ED40 -sub_0803ED40: @ 0x0803ED40 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803ED74 - movs r0, #7 - strb r0, [r2, #0xc] - movs r0, #1 - strb r0, [r2, #0xe] - ldr r1, _0803ED78 @ =gUnk_080D08C4 - ldrb r0, [r2, #0x14] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x7c - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x7f - movs r0, #0xf6 - strb r0, [r1] - adds r0, #0x65 - bl sub_08004488 -_0803ED74: - pop {pc} - .align 2, 0 -_0803ED78: .4byte gUnk_080D08C4 - - thumb_func_start sub_0803ED7C -sub_0803ED7C: @ 0x0803ED7C - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0803ED94 - adds r0, r2, #0 - bl sub_080042B8 - b _0803EDD0 -_0803ED94: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - adds r1, r2, #0 - adds r1, #0x7f - cmp r0, #0 - bne _0803EDAE - movs r0, #2 - strb r0, [r2, #0xe] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] -_0803EDAE: - ldrb r0, [r1] - cmp r0, #0 - beq _0803EDC0 - adds r1, r2, #0 - adds r1, #0x7e - ldrb r0, [r1] - adds r0, #5 - strb r0, [r1] - b _0803EDD0 -_0803EDC0: - movs r0, #8 - strb r0, [r2, #0xc] - movs r0, #0x1e - strb r0, [r2, #0xe] - movs r0, #8 - movs r1, #0 - bl sub_08080964 -_0803EDD0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803EDD4 -sub_0803EDD4: @ 0x0803EDD4 - 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 _0803EDE8 - movs r0, #9 - strb r0, [r1, #0xc] -_0803EDE8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803EDEC -sub_0803EDEC: @ 0x0803EDEC - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x7e - ldrb r0, [r1] - subs r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bhi _0803EE26 - movs r0, #0xa - strb r0, [r2, #0xc] - movs r0, #0x3c - strb r0, [r2, #0xe] - ldrb r0, [r2, #0x14] - lsls r0, r0, #3 - strb r0, [r2, #0x15] - subs r1, #2 - movs r0, #0 - strb r0, [r1] - adds r1, #3 - movs r0, #0xfe - strb r0, [r1] - adds r0, r2, #0 - movs r1, #0x10 - bl sub_0803E94C - b _0803EE34 -_0803EE26: - cmp r0, #0x12 - bhi _0803EE34 - ldr r2, [r2, #0x54] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_0803EE34: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803EE38 -sub_0803EE38: @ 0x0803EE38 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0803EE60 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EE88 - ldr r0, [r4, #0x54] - ldrb r1, [r0, #0x10] - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - b _0803EE88 -_0803EE60: - adds r1, r4, #0 - adds r1, #0x7c - ldrb r0, [r1] - subs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803E9A4 - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x27 - bls _0803EE88 - adds r0, r4, #0 - bl sub_0803EE8C -_0803EE88: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803EE8C -sub_0803EE8C: @ 0x0803EE8C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r2, r0, #0 - adds r2, #0x7a - movs r1, #0x1e - strb r1, [r2] - movs r1, #0 - bl sub_0803E94C - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803EEA4 -sub_0803EEA4: @ 0x0803EEA4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803EEF8 - adds r0, r4, #0 - movs r1, #0x4e - bl sub_0803EF04 - cmp r0, #0 - beq _0803EEF8 - ldr r0, _0803EEF4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x12 - bl sub_0804A044 - adds r2, r0, #0 - cmp r2, #0xff - beq _0803EEF8 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803EF00 - movs r0, #5 - strb r0, [r4, #0xc] - strb r2, [r4, #0x15] - adds r0, r4, #0 - movs r1, #0 - bl sub_0803E94C - movs r0, #1 - b _0803EF02 - .align 2, 0 -_0803EEF4: .4byte gUnk_020000B0 -_0803EEF8: - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0x1e - strb r0, [r1] -_0803EF00: - movs r0, #0 -_0803EF02: - pop {r4, pc} - - thumb_func_start sub_0803EF04 -sub_0803EF04: @ 0x0803EF04 - push {r4, lr} - adds r3, r1, #0 - ldr r1, _0803EF1C @ =gUnk_020000B0 - ldr r2, [r1] - movs r4, #0x2e - ldrsh r1, [r2, r4] - movs r4, #0x32 - ldrsh r2, [r2, r4] - subs r2, #4 - bl sub_0806FCB8 - pop {r4, pc} - .align 2, 0 -_0803EF1C: .4byte gUnk_020000B0 - - thumb_func_start sub_0803EF20 -sub_0803EF20: @ 0x0803EF20 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, _0803EF5C @ =gUnk_03003D80 - ldr r4, [r6, #4] - cmp r4, r6 - beq _0803EF6A - ldr r7, _0803EF60 @ =gUnk_080D08C8 -_0803EF2E: - ldrb r0, [r4, #8] - cmp r0, #8 - bne _0803EF64 - ldrb r0, [r4, #9] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r2, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl _call_via_r2 - cmp r0, #0 - beq _0803EF64 - movs r0, #2 - strb r0, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x78 - movs r0, #0xb4 - strh r0, [r1] - adds r1, #3 - movs r0, #1 - strb r0, [r1] - b _0803EF6C - .align 2, 0 -_0803EF5C: .4byte gUnk_03003D80 -_0803EF60: .4byte gUnk_080D08C8 -_0803EF64: - ldr r4, [r4, #4] - cmp r4, r6 - bne _0803EF2E -_0803EF6A: - movs r0, #0 -_0803EF6C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803EF70 -sub_0803EF70: @ 0x0803EF70 - movs r0, #0 - bx lr - - thumb_func_start sub_0803EF74 -sub_0803EF74: @ 0x0803EF74 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r5, #0 - movs r3, #0x50 - bl sub_0806FCB8 - cmp r0, #0 - beq _0803EFA8 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080045C4 - ldrb r1, [r4, #0x15] - subs r1, r1, r0 - adds r1, #2 - movs r0, #0x1f - ands r1, r0 - cmp r1, #4 - bhi _0803EFA8 - movs r0, #1 - b _0803EFAA -_0803EFA8: - movs r0, #0 -_0803EFAA: - pop {r4, r5, pc} - - thumb_func_start sub_0803EFAC -sub_0803EFAC: @ 0x0803EFAC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r2, #0x50 - movs r3, #0x50 - bl sub_080041A0 - cmp r0, #0 - beq _0803EFD6 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x1c - bl sub_0804A044 - cmp r0, #0xff - beq _0803EFD6 - ldrb r4, [r4, #0x15] - cmp r0, r4 - bne _0803EFD6 - movs r0, #1 - b _0803EFD8 -_0803EFD6: - movs r0, #0 -_0803EFD8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803EFDC -sub_0803EFDC: @ 0x0803EFDC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0803F004 @ =gUnk_080D0924 - bl sub_0800279C - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_0803F004: .4byte gUnk_080D0924 - - thumb_func_start sub_0803F008 -sub_0803F008: @ 0x0803F008 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0803F024 @ =gUnk_080D093C - 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 - bl sub_0803F694 - pop {r4, pc} - .align 2, 0 -_0803F024: .4byte gUnk_080D093C - - thumb_func_start sub_0803F028 -sub_0803F028: @ 0x0803F028 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0803F05C - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0803F630 - adds r0, r4, #0 - bl sub_0803F6EC -_0803F05C: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x41 - cmp r0, #0x25 - bne _0803F07E - ldrb r0, [r1] - cmp r0, #0x80 - bne _0803F07E - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _0803F0E4 -_0803F07E: - ldrb r0, [r1] - cmp r0, #0x9d - bne _0803F08A - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0803F08A: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0803F0B0 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsrs r0, r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0803F0B0: - adds r0, r4, #0 - adds r0, #0x45 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r0, [r0] - ldrb r2, [r1] - cmp r0, r2 - beq _0803F0E4 - strb r0, [r1] - ldrb r0, [r4, #0xc] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0803F0D4 - adds r0, r4, #0 - bl sub_0803F51C -_0803F0D4: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - lsrs r1, r1, #4 - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 -_0803F0E4: - ldr r1, _0803F0F0 @ =gUnk_080D0924 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_0803F0F0: .4byte gUnk_080D0924 - - thumb_func_start sub_0803F0F4 -sub_0803F0F4: @ 0x0803F0F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08001328 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0803F144 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0803F144 - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _0803F144 - movs r0, #0xff - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x58 - ldrb r0, [r1] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0803F144 - ldrb r1, [r1] - subs r1, #7 - movs r0, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0803F144: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F148 -sub_0803F148: @ 0x0803F148 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _0803F164 - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 -_0803F164: - adds r0, r4, #0 - bl sub_08001242 - ldrh r1, [r4, #0x36] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _0803F178 - ldr r0, _0803F1A4 @ =0x0000FFFF - strh r0, [r4, #0x36] -_0803F178: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _0803F1A0 - ldrb r0, [r4, #0x14] - movs r1, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0xff - strb r0, [r4, #0x15] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0803F630 -_0803F1A0: - pop {r4, pc} - .align 2, 0 -_0803F1A4: .4byte 0x0000FFFF - - thumb_func_start sub_0803F1A8 -sub_0803F1A8: @ 0x0803F1A8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _0803F1CC - ldr r0, _0803F1C8 @ =gUnk_080D0964 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0803F1DE - .align 2, 0 -_0803F1C8: .4byte gUnk_080D0964 -_0803F1CC: - adds r0, r4, #0 - bl sub_0803F51C - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0803F1DE: - pop {r4, pc} - - thumb_func_start sub_0803F1E0 -sub_0803F1E0: @ 0x0803F1E0 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - ldr r1, _0803F1F8 @ =gLinkEntity - ldrb r1, [r1, #0x14] - lsrs r1, r1, #2 - adds r1, #5 - bl sub_08004260 - pop {pc} - .align 2, 0 -_0803F1F8: .4byte gLinkEntity - - thumb_func_start sub_0803F1FC -sub_0803F1FC: @ 0x0803F1FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F4E8 - pop {r4, pc} - - thumb_func_start sub_0803F20C -sub_0803F20C: @ 0x0803F20C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _0803F244 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _0803F23E - adds r2, r0, #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] -_0803F23E: - adds r0, r4, #0 - bl sub_0804A7D4 -_0803F244: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F248 -sub_0803F248: @ 0x0803F248 - push {r4, lr} - adds r4, r0, #0 - bl sub_0804A720 - bl sub_08000E50 - movs r2, #0x1e - adds r1, r0, #0 - ands r1, r2 - movs r2, #0 - strb r1, [r4, #0x15] - movs r1, #0xff - strb r1, [r4, #0x14] - movs r1, #1 - strb r1, [r4, #0x1c] - adds r1, r4, #0 - adds r1, #0x45 - ldrb r1, [r1] - adds r3, r4, #0 - adds r3, #0x7a - strb r1, [r3] - lsrs r0, r0, #4 - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - strh r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0803F28E - adds r0, r4, #0 - bl sub_0803F50C - b _0803F2A0 -_0803F28E: - adds r0, r4, #0 - bl sub_0803F51C - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0803F2A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F2A4 -sub_0803F2A4: @ 0x0803F2A4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F5A8 - cmp r0, #0 - beq _0803F2C0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x60 - ands r0, r1 - adds r0, #0xa - strb r0, [r4, #0xe] -_0803F2C0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F2C4 -sub_0803F2C4: @ 0x0803F2C4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F5A8 - cmp r0, #0 - bne _0803F2D8 - adds r0, r4, #0 - bl sub_0803F50C - b _0803F322 -_0803F2D8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803F322 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0803F308 - ldr r0, _0803F304 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - b _0803F310 - .align 2, 0 -_0803F304: .4byte gUnk_020000B0 -_0803F308: - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 -_0803F310: - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_0803F322: - pop {r4, pc} - - thumb_func_start sub_0803F324 -sub_0803F324: @ 0x0803F324 - push {r4, 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 _0803F33E - adds r0, r4, #0 - bl sub_0803F51C -_0803F33E: - pop {r4, pc} - - thumb_func_start sub_0803F340 -sub_0803F340: @ 0x0803F340 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F5D4 - cmp r0, #0 - bne _0803F36A - adds r0, r4, #0 - bl sub_0803F58C - 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 _0803F36A - adds r0, r4, #0 - bl sub_0803F51C -_0803F36A: - pop {r4, pc} - - thumb_func_start sub_0803F36C -sub_0803F36C: @ 0x0803F36C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0803F3A6 - adds r0, r4, #0 - bl sub_0803F66C - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0803F3AC - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, #0xfa - strh r0, [r4, #0x24] - b _0803F3AC -_0803F3A6: - adds r0, r4, #0 - bl sub_0803F51C -_0803F3AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F3B0 -sub_0803F3B0: @ 0x0803F3B0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F5A8 - cmp r0, #0 - bne _0803F3C4 - adds r0, r4, #0 - bl sub_0803F51C - b _0803F41C -_0803F3C4: - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0803F414 - ldrb r1, [r4, #0xe] - adds r1, #1 - strb r1, [r4, #0xe] - ldr r2, _0803F40C @ =gUnk_080D0970 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x1e - adds r0, r0, r2 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _0803F3F6 - ldr r0, _0803F410 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_0803F3F6: - adds r0, r4, #0 - bl sub_0803F66C - adds r0, r4, #0 - bl sub_080AEFB4 - adds r0, r4, #0 - bl sub_08004274 - b _0803F41C - .align 2, 0 -_0803F40C: .4byte gUnk_080D0970 -_0803F410: .4byte gUnk_020000B0 -_0803F414: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] -_0803F41C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F420 -sub_0803F420: @ 0x0803F420 - push {r4, 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 _0803F43A - adds r0, r4, #0 - bl sub_0803F51C -_0803F43A: - pop {r4, pc} - - thumb_func_start sub_0803F43C -sub_0803F43C: @ 0x0803F43C - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F738 - 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 _0803F474 - movs r2, #0 - movs r0, #9 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x78 - strh r2, [r0] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_0803F474: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0803F478 -sub_0803F478: @ 0x0803F478 - 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 _0803F494 - adds r0, r4, #0 - bl sub_0803F6C0 -_0803F494: - bl sub_0807953C - adds r1, r4, #0 - adds r1, #0x78 - cmp r0, #0 - beq _0803F4A6 - ldrh r0, [r1] - adds r0, #0xc - strh r0, [r1] -_0803F4A6: - ldr r2, _0803F500 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0803F4B6 - movs r0, #0xe0 - strh r0, [r1] -_0803F4B6: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xdf - bls _0803F504 - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x78 - strh r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] - subs r1, #0x3f - movs r0, #0xf4 - strb r0, [r1] - adds r1, #5 - movs r0, #0x14 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803F51C - adds r0, r4, #0 - bl sub_0803F6EC - b _0803F50A - .align 2, 0 -_0803F500: .4byte gLinkEntity -_0803F504: - adds r0, r4, #0 - bl sub_0803F738 -_0803F50A: - pop {r4, pc} - - thumb_func_start sub_0803F50C -sub_0803F50C: @ 0x0803F50C - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #9 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0803F51C -sub_0803F51C: @ 0x0803F51C - push {lr} - movs r1, #4 - strb r1, [r0, #0xc] - bl sub_0803F528 - pop {pc} - - thumb_func_start sub_0803F528 -sub_0803F528: @ 0x0803F528 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08000E50 - adds r5, r0, #0 - movs r0, #8 - adds r1, r5, #0 - ands r1, r0 - adds r1, #8 - strb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_08049FA0 - cmp r0, #0 - beq _0803F55C - ldr r1, _0803F558 @ =gUnk_080D0978 - movs r0, #7 - ands r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - b _0803F562 - .align 2, 0 -_0803F558: .4byte gUnk_080D0978 -_0803F55C: - adds r0, r4, #0 - bl sub_08049EE4 -_0803F562: - movs r1, #0x1e - ands r0, r1 - strb r0, [r4, #0x15] - ldr r2, _0803F588 @ =gUnk_080D0974 - lsrs r0, r5, #4 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x24 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0803F66C - pop {r4, r5, pc} - .align 2, 0 -_0803F588: .4byte gUnk_080D0974 - - thumb_func_start sub_0803F58C -sub_0803F58C: @ 0x0803F58C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x30] - bl sub_080AEFB4 - ldr r1, [r5, #0x30] - subs r4, r1, r4 - lsrs r0, r4, #0x1f - adds r4, r4, r0 - asrs r4, r4, #1 - subs r1, r1, r4 - str r1, [r5, #0x30] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803F5A8 -sub_0803F5A8: @ 0x0803F5A8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - bne _0803F5BA - movs r0, #0 - b _0803F5D2 -_0803F5BA: - ldr r0, _0803F5CC @ =gUnk_02033A90 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0xf - bgt _0803F5D0 - adds r0, r4, #0 - bl sub_0806FD54 - b _0803F5D2 - .align 2, 0 -_0803F5CC: .4byte gUnk_02033A90 -_0803F5D0: - movs r0, #1 -_0803F5D2: - pop {r4, pc} - - thumb_func_start sub_0803F5D4 -sub_0803F5D4: @ 0x0803F5D4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _0803F5E8 - subs r0, #1 - strh r0, [r1] - b _0803F62C -_0803F5E8: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _0803F62C - adds r0, r4, #0 - bl sub_0806FD54 - cmp r0, #0 - bne _0803F61A - ldr r0, _0803F624 @ =gUnk_02033A90 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0xf - ble _0803F62C - ldr r0, _0803F628 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x70 - movs r3, #0x48 - bl sub_080041A0 - cmp r0, #0 - beq _0803F62C -_0803F61A: - adds r0, r4, #0 - bl sub_0803F630 - movs r0, #1 - b _0803F62E - .align 2, 0 -_0803F624: .4byte gUnk_02033A90 -_0803F628: .4byte gUnk_020000B0 -_0803F62C: - movs r0, #0 -_0803F62E: - pop {r4, pc} - - thumb_func_start sub_0803F630 -sub_0803F630: @ 0x0803F630 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x25 - strb r0, [r1] - movs r5, #0 - ldr r0, _0803F664 @ =gUnk_03004040 - ldr r0, [r0] - cmp r0, #0 - beq _0803F64C - movs r5, #0x3c -_0803F64C: - bl sub_08000E50 - ldr r2, _0803F668 @ =gUnk_080D0980 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r5 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_0803F664: .4byte gUnk_03004040 -_0803F668: .4byte gUnk_080D0980 - - thumb_func_start sub_0803F66C -sub_0803F66C: @ 0x0803F66C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x15] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0803F680 - ldrb r0, [r2, #0x14] - cmp r0, #0xff - bne _0803F692 -_0803F680: - lsrs r0, r1, #4 - ldrb r1, [r2, #0x14] - cmp r0, r1 - beq _0803F692 - strb r0, [r2, #0x14] - adds r1, r0, #1 - adds r0, r2, #0 - bl sub_08004260 -_0803F692: - pop {pc} - - thumb_func_start sub_0803F694 -sub_0803F694: @ 0x0803F694 - push {r4, lr} - ldr r3, _0803F6BC @ =gUnk_080D0984 - movs r1, #0x7b - adds r1, r1, r0 - mov ip, r1 - ldrb r1, [r1] - adds r2, r1, #1 - mov r4, ip - strb r2, [r4] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1b - movs r2, #3 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x36] - pop {r4, pc} - .align 2, 0 -_0803F6BC: .4byte gUnk_080D0984 - - thumb_func_start sub_0803F6C0 -sub_0803F6C0: @ 0x0803F6C0 - push {r4, lr} - adds r0, #0x5a - ldrb r2, [r0] - movs r1, #0xfe - ands r1, r2 - strb r1, [r0] - ldr r4, _0803F6E8 @ =gLinkEntity - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xc - strb r0, [r1] - subs r0, #0x10 - bl sub_080526A0 - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C - pop {r4, pc} - .align 2, 0 -_0803F6E8: .4byte gLinkEntity - - thumb_func_start sub_0803F6EC -sub_0803F6EC: @ 0x0803F6EC - push {lr} - ldr r2, _0803F72C @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - ldr r3, _0803F730 @ =gUnk_03003F80 - cmp r0, #0 - beq _0803F720 - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r2, #0x20] - ldr r0, _0803F734 @ =0x0000FFFE - strh r0, [r2, #0x36] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - strb r0, [r2, #0x15] - adds r1, r2, #0 - adds r1, #0x3d - movs r0, #0xc4 - strb r0, [r1] - movs r0, #0x41 - strb r0, [r3, #2] -_0803F720: - ldr r0, [r3, #0x30] - movs r1, #0x11 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r3, #0x30] - pop {pc} - .align 2, 0 -_0803F72C: .4byte gLinkEntity -_0803F730: .4byte gUnk_03003F80 -_0803F734: .4byte 0x0000FFFE - - thumb_func_start sub_0803F738 -sub_0803F738: @ 0x0803F738 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077B2C - ldr r2, _0803F768 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x1a] - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - ldr r0, _0803F76C @ =gLinkEntity - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r4, #0x63 - ldrb r0, [r4] - subs r0, #2 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_0803F768: .4byte gUnk_03003F80 -_0803F76C: .4byte gLinkEntity - - thumb_func_start sub_0803F770 -sub_0803F770: @ 0x0803F770 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #5 - bhi _0803F810 - lsls r0, r0, #2 - ldr r1, _0803F784 @ =_0803F788 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803F784: .4byte _0803F788 -_0803F788: @ jump table - .4byte _0803F7A0 @ case 0 - .4byte _0803F7D0 @ case 1 - .4byte _0803F7D8 @ case 2 - .4byte _0803F7E0 @ case 3 - .4byte _0803F7E8 @ case 4 - .4byte _0803F800 @ case 5 -_0803F7A0: - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _0803F7C8 - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - adds r2, r4, #0 - adds r2, #0x7a - strh r0, [r2] - ldrh r0, [r4, #0x2e] - strh r0, [r1] - adds r1, #4 - ldrh r0, [r1] - adds r2, #4 - strh r0, [r2] - ldrh r0, [r4, #0x32] - strh r0, [r1] - adds r0, r4, #0 - bl sub_080409B0 -_0803F7C8: - ldr r0, _0803F7CC @ =gUnk_080D0AC8 - b _0803F7EA - .align 2, 0 -_0803F7CC: .4byte gUnk_080D0AC8 -_0803F7D0: - ldr r0, _0803F7D4 @ =gUnk_080D0AE8 - b _0803F7EA - .align 2, 0 -_0803F7D4: .4byte gUnk_080D0AE8 -_0803F7D8: - ldr r0, _0803F7DC @ =gUnk_080D0AF0 - b _0803F7EA - .align 2, 0 -_0803F7DC: .4byte gUnk_080D0AF0 -_0803F7E0: - ldr r0, _0803F7E4 @ =gUnk_080D0AFC - b _0803F7EA - .align 2, 0 -_0803F7E4: .4byte gUnk_080D0AFC -_0803F7E8: - ldr r0, _0803F7FC @ =gUnk_080D0B04 -_0803F7EA: - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0803F810 - .align 2, 0 -_0803F7FC: .4byte gUnk_080D0B04 -_0803F800: - ldr r0, _0803F814 @ =gUnk_080D0B0C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_0803F810: - pop {r4, pc} - .align 2, 0 -_0803F814: .4byte gUnk_080D0B0C - - thumb_func_start sub_0803F818 -sub_0803F818: @ 0x0803F818 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_0804A720 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _0803F910 - ldr r0, _0803F8FC @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x50 - bhi _0803F910 - movs r4, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - adds r3, r5, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #5 - orrs r0, r1 - strb r0, [r3] - adds r1, r5, #0 - adds r1, #0x6d - ldrb r0, [r1] - orrs r2, r0 - strb r2, [r1] - bl sub_08000E50 - movs r1, #0x17 - ands r0, r1 - adds r0, #4 - strb r0, [r5, #0x15] - movs r0, #0x30 - strb r0, [r5, #0xe] - movs r0, #0xc - strb r0, [r5, #0xf] - adds r1, r5, #0 - adds r1, #0x82 - movs r0, #4 - strb r0, [r1] - subs r1, #2 - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x74 - strb r4, [r0] - adds r0, #3 - strb r4, [r0] - adds r1, #4 - movs r0, #9 - strb r0, [r1] - strb r4, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x86 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - ldrh r1, [r5, #0x2e] - subs r0, #0xf - strh r1, [r0] - ldrh r0, [r5, #0x2e] - adds r1, r5, #0 - adds r1, #0x7a - strh r0, [r1] - ldrh r1, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x7c - strh r1, [r0] - ldrh r0, [r5, #0x32] - adds r1, r5, #0 - adds r1, #0x7e - strh r0, [r1] - movs r4, #1 - adds r7, r5, #0 - adds r7, #0x75 -_0803F8C2: - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_08040648 - adds r4, #1 - cmp r4, #5 - bls _0803F8C2 - bl sub_08000E50 - adds r0, r5, #0 - bl sub_080408EC - movs r4, #0 - movs r6, #1 -_0803F8E0: - movs r0, #0x5a - movs r1, #0 - bl CreateEnemy - str r5, [r0, #0x50] - strb r4, [r0, #0xb] - ldrb r1, [r7] - asrs r1, r4 - ands r1, r6 - cmp r1, #0 - beq _0803F900 - strb r6, [r0, #0xe] - b _0803F902 - .align 2, 0 -_0803F8FC: .4byte gUnk_03003DBC -_0803F900: - strb r1, [r0, #0xe] -_0803F902: - adds r4, #1 - cmp r4, #7 - bls _0803F8E0 - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0803F910: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0803F914 -sub_0803F914: @ 0x0803F914 - push {r4, r5, r6, r7, lr} - sub sp, #4 - adds r7, r0, #0 - adds r4, r7, #0 - adds r4, #0x80 - ldrb r0, [r4] - cmp r0, #2 - beq _0803F998 - cmp r0, #2 - bgt _0803F932 - cmp r0, #0 - beq _0803F95A - cmp r0, #1 - beq _0803F97A - b _0803FA40 -_0803F932: - cmp r0, #4 - bne _0803F938 - b _0803FA3A -_0803F938: - cmp r0, #4 - blt _0803F9CE - adds r3, r4, #0 - cmp r0, #0xff - beq _0803F944 - b _0803FA42 -_0803F944: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _0803FA42 - strb r0, [r3] - movs r0, #0xb - strb r0, [r7, #0xe] - b _0803FA42 -_0803F95A: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - adds r3, r4, #0 - cmp r0, #0 - bne _0803FA42 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r7, #0x24] - movs r0, #0x14 - strb r0, [r7, #0xe] - b _0803FA42 -_0803F97A: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - adds r3, r4, #0 - cmp r0, #0 - bne _0803FA42 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r0, #0xc0 - strh r0, [r7, #0x24] - movs r0, #0xc - strb r0, [r7, #0xe] - b _0803FA42 -_0803F998: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - adds r3, r4, #0 - cmp r1, #0 - bne _0803FA42 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - strh r1, [r7, #0x24] - ldrb r0, [r7, #0x14] - cmp r0, #1 - bhi _0803F9C8 - str r3, [sp] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x40 - strb r0, [r7, #0xe] - ldr r3, [sp] - b _0803FA42 -_0803F9C8: - movs r0, #8 - strb r0, [r7, #0xe] - b _0803FA42 -_0803F9CE: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803FA32 - movs r0, #0 - strh r1, [r7, #0x36] - strb r0, [r4] - ldr r1, _0803FA04 @ =gUnk_080D0ABF - ldrb r0, [r7, #0x14] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r7, #0xe] - adds r0, r7, #0 - bl sub_08040934 - adds r1, r0, #0 - cmp r1, #2 - beq _0803FA1A - cmp r1, #2 - bhi _0803FA08 - cmp r1, #1 - beq _0803FA0E - b _0803FA26 - .align 2, 0 -_0803FA04: .4byte gUnk_080D0ABF -_0803FA08: - cmp r1, #3 - beq _0803FA20 - b _0803FA26 -_0803FA0E: - movs r0, #4 - strb r0, [r7, #0xc] - adds r0, r7, #0 - adds r0, #0x74 - strb r1, [r0] - b _0803FA40 -_0803FA1A: - movs r0, #5 - strb r0, [r7, #0xc] - b _0803FA40 -_0803FA20: - movs r0, #6 - strb r0, [r7, #0xc] - b _0803FA40 -_0803FA26: - adds r1, r7, #0 - adds r1, #0x80 - movs r0, #4 - strb r0, [r1] - adds r3, r1, #0 - b _0803FA42 -_0803FA32: - adds r0, r7, #0 - bl sub_08040AD4 - b _0803FA40 -_0803FA3A: - adds r0, r7, #0 - bl sub_08040670 -_0803FA40: - adds r3, r4, #0 -_0803FA42: - adds r1, r7, #0 - adds r1, #0x82 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803FAAC - movs r0, #4 - strb r0, [r1] - ldrb r2, [r7, #0x15] - adds r2, #0x12 - movs r0, #0x1c - ands r2, r0 - asrs r2, r2, #2 - movs r0, #0x9b - movs r1, #0 - str r3, [sp] - bl CreateObject - adds r6, r0, #0 - ldr r3, [sp] - cmp r6, #0 - beq _0803FAAC - str r7, [r6, #0x50] - str r3, [sp] - bl sub_08000E50 - movs r5, #0xf - ands r0, r5 - ldr r1, _0803FAC4 @ =0x0000FFF9 - adds r4, r1, #0 - adds r0, r4, r0 - ldrh r1, [r6, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - bl sub_08000E50 - ands r0, r5 - adds r4, r4, r0 - ldrh r0, [r6, #0x32] - adds r4, r4, r0 - strh r4, [r6, #0x32] - adds r2, r6, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldr r3, [sp] -_0803FAAC: - ldrb r0, [r3] - cmp r0, #0xff - beq _0803FAB8 - adds r0, r7, #0 - bl sub_080AEF88 -_0803FAB8: - adds r0, r7, #0 - bl sub_080042B8 - add sp, #4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0803FAC4: .4byte 0x0000FFF9 - - thumb_func_start sub_0803FAC8 -sub_0803FAC8: @ 0x0803FAC8 - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_0803FAD0 -sub_0803FAD0: @ 0x0803FAD0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #5 - bls _0803FADE - b _0803FD32 -_0803FADE: - lsls r0, r0, #2 - ldr r1, _0803FAE8 @ =_0803FAEC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803FAE8: .4byte _0803FAEC -_0803FAEC: @ jump table - .4byte _0803FB04 @ case 0 - .4byte _0803FB34 @ case 1 - .4byte _0803FBB8 @ case 2 - .4byte _0803FBE2 @ case 3 - .4byte _0803FC80 @ case 4 - .4byte _0803FD0C @ case 5 -_0803FB04: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r7, #0 - bl sub_080044EC - adds r1, r0, #0 - cmp r1, #1 - beq _0803FB16 - b _0803FD32 -_0803FB16: - adds r0, r7, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0xc0 - strb r0, [r7, #0xe] - ldrb r1, [r7, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0x10] - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x14 - b _0803FC4A -_0803FB34: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - adds r3, r7, #0 - adds r3, #0x80 - cmp r2, #0 - bne _0803FB58 - movs r0, #2 - strb r0, [r3] - adds r1, r7, #0 - adds r1, #0x3f - movs r0, #0x35 - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x62 - strb r2, [r0] -_0803FB58: - adds r2, r7, #0 - adds r2, #0x45 - ldr r0, _0803FB70 @ =gUnk_080D0ABC - ldrb r1, [r7, #0x14] - adds r1, r1, r0 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bhs _0803FB74 - movs r0, #1 - strb r0, [r7, #0xe] - b _0803FB76 - .align 2, 0 -_0803FB70: .4byte gUnk_080D0ABC -_0803FB74: - movs r0, #0 -_0803FB76: - cmp r0, #0 - bne _0803FB7C - b _0803FD32 -_0803FB7C: - movs r1, #0 - movs r0, #2 - strb r0, [r3] - adds r2, r7, #0 - adds r2, #0x3f - movs r0, #0x35 - strb r0, [r2] - adds r0, r7, #0 - adds r0, #0x62 - strb r1, [r0] - ldrb r0, [r7, #0x14] - adds r0, #1 - strb r0, [r7, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _0803FBA0 - b _0803FD32 -_0803FBA0: - movs r0, #7 - strb r0, [r7, #0xc] - movs r0, #0xe0 - strb r0, [r7, #0xe] - bl sub_0807A108 - ldr r0, _0803FBB4 @ =0x00000127 - bl sub_080A3268 - b _0803FD4E - .align 2, 0 -_0803FBB4: .4byte 0x00000127 -_0803FBB8: - ldr r0, [r7, #0x54] - adds r0, #0x74 - movs r1, #0x10 - strb r1, [r0] - ldrb r0, [r7, #0xe] - cmp r0, #0 - beq _0803FBD4 - adds r0, r7, #0 - adds r0, #0x80 - movs r1, #3 - strb r1, [r0] - movs r0, #0x40 - strb r0, [r7, #0xe] - b _0803FD32 -_0803FBD4: - adds r0, r7, #0 - adds r0, #0x80 - movs r1, #4 - strb r1, [r0] - movs r0, #0x50 - strb r0, [r7, #0xe] - b _0803FD32 -_0803FBE2: - ldrb r0, [r7, #0xe] - cmp r0, #0 - beq _0803FC08 - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0803FBF4 - b _0803FD32 -_0803FBF4: - ldrb r1, [r7, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r7, #0x10] - movs r0, #0xe0 - lsls r0, r0, #0xa - str r0, [r7, #0x20] - movs r0, #0x10 - strb r0, [r7, #0xf] - b _0803FD32 -_0803FC08: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r7, #0 - bl sub_08003FC4 - adds r2, r0, #0 - cmp r2, #0 - bne _0803FC52 - adds r1, r7, #0 - adds r1, #0x80 - movs r0, #5 - strb r0, [r1] - movs r0, #0x10 - strb r0, [r7, #0xe] - ldrb r1, [r7, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r7, #0x10] - adds r1, r7, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] - adds r0, r7, #0 - adds r0, #0x86 - strb r2, [r0] - adds r0, r7, #0 - bl sub_080408EC - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x1e -_0803FC4A: - movs r1, #4 - bl sub_08080964 - b _0803FD32 -_0803FC52: - ldrb r0, [r7, #0xf] - cmp r0, #0 - beq _0803FD32 - subs r1, r0, #1 - strb r1, [r7, #0xf] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803FC6C - movs r0, #0xd8 - lsls r0, r0, #1 - bl sub_080A3268 - b _0803FD32 -_0803FC6C: - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803FD32 - ldr r0, _0803FC7C @ =0x00000149 - bl sub_080A3268 - b _0803FD32 - .align 2, 0 -_0803FC7C: .4byte 0x00000149 -_0803FC80: - ldrb r0, [r7, #0xe] - subs r1, r0, #1 - strb r1, [r7, #0xe] - lsls r0, r1, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0803FCA8 - adds r0, r7, #0 - adds r0, #0x80 - movs r1, #5 - strb r1, [r0] - movs r0, #0x10 - strb r0, [r7, #0xe] - adds r0, r7, #0 - adds r0, #0x86 - strb r2, [r0] - adds r0, r7, #0 - bl sub_080408EC - b _0803FD32 -_0803FCA8: - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _0803FD32 - movs r0, #0x9b - movs r1, #1 - movs r2, #0xff - bl CreateObject - adds r6, r0, #0 - cmp r6, #0 - beq _0803FD32 - str r7, [r6, #0x50] - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_0806FA24 - bl sub_08000E50 - movs r5, #0xf - ands r0, r5 - ldr r1, _0803FD08 @ =0x0000FFF9 - adds r4, r1, #0 - adds r0, r4, r0 - ldrh r1, [r6, #0x2e] - adds r0, r0, r1 - strh r0, [r6, #0x2e] - bl sub_08000E50 - ands r0, r5 - adds r4, r4, r0 - ldrh r0, [r6, #0x32] - adds r4, r4, r0 - strh r4, [r6, #0x32] - adds r2, r6, #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] - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 - b _0803FD32 - .align 2, 0 -_0803FD08: .4byte 0x0000FFF9 -_0803FD0C: - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803FD32 - movs r0, #1 - strb r0, [r7, #0xc] - adds r0, r7, #0 - adds r0, #0x80 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - subs r0, #0xb - strb r1, [r0] - adds r0, r7, #0 - bl sub_08040670 -_0803FD32: - adds r0, r7, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #2 - bls _0803FD48 - ldrb r1, [r7, #0xe] - movs r0, #1 - ands r0, r1 - adds r1, r7, #0 - adds r1, #0x62 - strb r0, [r1] -_0803FD48: - adds r0, r7, #0 - bl sub_080042B8 -_0803FD4E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0803FD50 -sub_0803FD50: @ 0x0803FD50 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrb r0, [r5] - cmp r0, #1 - beq _0803FDA8 - cmp r0, #1 - bgt _0803FD68 - cmp r0, #0 - beq _0803FD72 - b _0803FE86 -_0803FD68: - cmp r0, #2 - beq _0803FE0C - cmp r0, #3 - beq _0803FE62 - b _0803FE86 -_0803FD72: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0803FD82 - b _0803FE86 -_0803FD82: - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - movs r0, #0x80 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - movs r0, #0x90 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r0, _0803FDA4 @ =0x0000012B - bl sub_080A3268 - b _0803FE86 - .align 2, 0 -_0803FDA4: .4byte 0x0000012B -_0803FDA8: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0803FE86 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x84 - ldrb r0, [r0] - cmp r0, #1 - beq _0803FDD8 - cmp r0, #1 - bgt _0803FDD0 - cmp r0, #0 - beq _0803FDDE - b _0803FDE4 -_0803FDD0: - cmp r0, #2 - beq _0803FDDE - cmp r0, #3 - bne _0803FDE4 -_0803FDD8: - movs r0, #1 - strb r0, [r4, #0xf] - b _0803FDF0 -_0803FDDE: - movs r0, #0 - strb r0, [r4, #0xf] - b _0803FDF0 -_0803FDE4: - bl sub_08000E50 - movs r1, #0x20 - ands r1, r0 - lsrs r1, r1, #5 - strb r1, [r4, #0xf] -_0803FDF0: - ldrb r0, [r4, #0x14] - cmp r0, #1 - bls _0803FDFA - movs r0, #1 - strb r0, [r4, #0xf] -_0803FDFA: - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x1e - movs r1, #4 - bl sub_08080964 - b _0803FE86 -_0803FE0C: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803FE34 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - ldr r2, _0803FE30 @ =gUnk_080D0ABF - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - movs r1, #1 - orrs r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r4, #0xe] - b _0803FE86 - .align 2, 0 -_0803FE30: .4byte gUnk_080D0ABF -_0803FE34: - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803FE46 - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x1f - bl sub_0804A98C -_0803FE46: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803FE86 - ldrb r0, [r4, #0x14] - cmp r0, #1 - bls _0803FE86 - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _0803FE86 - movs r0, #0x80 - strb r0, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - b _0803FE86 -_0803FE62: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803FE80 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r5] - strh r1, [r4, #0x36] - adds r0, r4, #0 - bl sub_08040670 - b _0803FE86 -_0803FE80: - adds r0, r4, #0 - bl sub_08040AD4 -_0803FE86: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0803FE90 -sub_0803FE90: @ 0x0803FE90 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x80 - ldrb r2, [r3] - cmp r2, #1 - beq _0803FED4 - cmp r2, #1 - bgt _0803FEA8 - cmp r2, #0 - beq _0803FEAE - b _0803FF74 -_0803FEA8: - cmp r2, #2 - beq _0803FF52 - b _0803FF74 -_0803FEAE: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0803FF74 - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - movs r0, #0x40 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x14] - cmp r0, #1 - bls _0803FF74 - movs r0, #0x80 - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xf] - b _0803FF74 -_0803FED4: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803FEFC - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - ldr r1, _0803FEF8 @ =gUnk_080D0ABF - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - orrs r0, r2 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - b _0803FF74 - .align 2, 0 -_0803FEF8: .4byte gUnk_080D0ABF -_0803FEFC: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0803FF24 - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803FF14 - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x1f - bl sub_0804A98C -_0803FF14: - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _0803FF74 - movs r0, #0x40 - strb r0, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - b _0803FF74 -_0803FF24: - movs r5, #0xf - ands r5, r1 - cmp r5, #0 - bne _0803FF74 - adds r0, r4, #0 - movs r1, #0x1f - movs r2, #2 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _0803FF74 - strb r5, [r1, #0xb] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0803FF74 - ldrh r0, [r1, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r1, #0x24] - b _0803FF74 -_0803FF52: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0803FF6E - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r3] - adds r0, r4, #0 - bl sub_08040670 - b _0803FF74 -_0803FF6E: - adds r0, r4, #0 - bl sub_08040AD4 -_0803FF74: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_0803FF7C -sub_0803FF7C: @ 0x0803FF7C - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x80 - ldrb r5, [r2] - cmp r5, #1 - beq _0803FFBC - cmp r5, #1 - bgt _0803FF94 - cmp r5, #0 - beq _0803FF9A - b _08040062 -_0803FF94: - cmp r5, #2 - beq _08040040 - b _08040062 -_0803FF9A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040062 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #0x80 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x14] - cmp r0, #1 - bls _08040062 - movs r0, #1 - strb r0, [r4, #0xf] - b _08040062 -_0803FFBC: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0803FFE4 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _0803FFE0 @ =gUnk_080D0ABF - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - orrs r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - b _08040062 - .align 2, 0 -_0803FFE0: .4byte gUnk_080D0ABF -_0803FFE4: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0804000C - movs r0, #7 - ands r1, r0 - cmp r1, #0 - bne _0803FFFC - ldrb r2, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x1f - bl sub_0804A98C -_0803FFFC: - ldrb r0, [r4, #0xe] - cmp r0, #5 - bhi _08040062 - movs r0, #0x80 - strb r0, [r4, #0xe] - movs r0, #0 - strb r0, [r4, #0xf] - b _08040062 -_0804000C: - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - bne _08040062 - adds r0, r4, #0 - movs r1, #0x1f - movs r2, #2 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08040062 - strb r5, [r1, #0xb] - ldrh r0, [r1, #0x32] - subs r0, #0x20 - strh r0, [r1, #0x32] - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _08040062 - ldrh r0, [r1, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - strh r0, [r1, #0x24] - b _08040062 -_08040040: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0804005C - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_08040670 - b _08040062 -_0804005C: - adds r0, r4, #0 - bl sub_08040AD4 -_08040062: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804006C -sub_0804006C: @ 0x0804006C - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08040090 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080400C2 - movs r0, #2 - bl sub_0807CD10 - movs r0, #8 - strb r0, [r4, #0xf] - b _080400BA -_08040090: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080400B4 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _080400BA - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _080400BA -_080400B4: - adds r0, r4, #0 - bl sub_0804A7D4 -_080400BA: - adds r0, r4, #0 - bl sub_080042B8 - b _08040126 -_080400C2: - ldrb r0, [r4, #0xf] - adds r0, #1 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xf] - cmp r0, #0 - bne _08040120 - adds r0, r4, #0 - movs r1, #0x55 - movs r2, #0 - bl CreateFX - adds r5, r0, #0 - cmp r5, #0 - beq _08040120 - bl sub_08000E50 - ldr r1, _08040128 @ =0x00003F3F - ands r0, r1 - movs r3, #0xff - adds r1, r0, #0 - ands r1, r3 - ldr r6, _0804012C @ =0x0000FFE0 - adds r2, r6, #0 - adds r1, r2, r1 - ldrh r6, [r5, #0x2e] - adds r1, r1, r6 - strh r1, [r5, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r5, #0x32] - adds r2, r2, r0 - strh r2, [r5, #0x32] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2] - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_080A3268 -_08040120: - adds r0, r4, #0 - bl sub_080042B8 -_08040126: - pop {r4, r5, r6, pc} - .align 2, 0 -_08040128: .4byte 0x00003F3F -_0804012C: .4byte 0x0000FFE0 - - thumb_func_start sub_08040130 -sub_08040130: @ 0x08040130 - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0xe] - adds r1, r0, #0 - adds r1, #0x80 - strb r2, [r1] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #6 - orrs r1, r2 - strb r1, [r3] - ldrb r1, [r0, #0xe] - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804015C -sub_0804015C: @ 0x0804015C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0804017C - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_0804017C: - adds r0, r5, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r4, #0x2e] - adds r0, r5, #0 - adds r0, #0x7e - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #0 - bne _0804019E - adds r0, r4, #0 - bl sub_080042B8 - b _080401A6 -_0804019E: - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA -_080401A6: - ldrb r0, [r5, #0xc] - cmp r0, #4 - bls _080401C0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080401D2 - movs r0, #1 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _080401D2 -_080401C0: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080401D2 - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_080401D2: - ldrb r0, [r5, #0xc] - cmp r0, #3 - beq _080401DC - ldrh r0, [r5, #0x36] - strh r0, [r4, #0x36] -_080401DC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080401E0 -sub_080401E0: @ 0x080401E0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xb] - adds r5, r1, #0 - cmp r5, #0 - beq _08040212 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, #1 - adds r3, r4, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0xb] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - b _08040260 -_08040212: - 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] - ldr r0, _08040264 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _08040260 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_08040648 - adds r0, r4, #0 - movs r1, #2 - movs r2, #2 - bl sub_08040648 - movs r0, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x17 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x74 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08040260: - pop {r4, r5, pc} - .align 2, 0 -_08040264: .4byte gUnk_03003DBC - - thumb_func_start sub_08040268 -sub_08040268: @ 0x08040268 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08040286 - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_08040286: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r2, [r4, #0xb] - cmp r2, #1 - beq _080402C6 - cmp r2, #1 - bgt _0804029E - cmp r2, #0 - beq _080402E4 - b _08040382 -_0804029E: - cmp r2, #2 - bne _08040382 - ldr r1, _080402DC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - lsls r0, r0, #1 - ldr r1, _080402E0 @ =gUnk_080D0B18 - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - ldrh r2, [r4, #0x2e] - adds r1, r1, r2 - strh r1, [r4, #0x2e] - ldrb r0, [r0, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] -_080402C6: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x1e] - cmp r0, #2 - beq _08040382 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - b _08040382 - .align 2, 0 -_080402DC: .4byte gLinkEntity -_080402E0: .4byte gUnk_080D0B18 -_080402E4: - adds r5, r4, #0 - adds r5, #0x74 - ldrb r0, [r5] - cmp r0, #1 - beq _0804032E - cmp r0, #1 - bgt _080402F8 - cmp r0, #0 - beq _08040302 - b _08040382 -_080402F8: - cmp r0, #0x10 - beq _08040354 - cmp r0, #0x11 - beq _08040366 - b _08040382 -_08040302: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040382 - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x27 - strb r0, [r4, #0xf] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08040382 - strb r1, [r5] - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - b _08040382 -_0804032E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08040382 - strb r2, [r5] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x17 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _08040382 -_08040354: - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - movs r0, #0x11 - strb r0, [r5] - movs r0, #0x50 - strb r0, [r4, #0xf] - b _08040382 -_08040366: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08040382 - movs r0, #1 - strb r0, [r5] - movs r0, #0x30 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC -_08040382: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804038C -sub_0804038C: @ 0x0804038C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080403AA - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_080403AA: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x1e] - cmp r0, #2 - bne _080403CA - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] -_080403CA: - pop {r4, pc} - - thumb_func_start sub_080403CC -sub_080403CC: @ 0x080403CC - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - subs r1, #9 - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r3] - movs r1, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_080403EC -sub_080403EC: @ 0x080403EC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0804040A - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_0804040A: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804041C -sub_0804041C: @ 0x0804041C - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - adds r1, r0, #0 - adds r1, #0x80 - strb r2, [r1] - movs r1, #0xa - strb r1, [r0, #0xe] - ldrb r2, [r0, #0x18] - subs r1, #0xe - ands r1, r2 - strb r1, [r0, #0x18] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804044C -sub_0804044C: @ 0x0804044C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0804046A - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_0804046A: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #5 - beq _0804048A - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - beq _080404BC - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x18] - subs r0, #4 - ands r0, r1 - strb r0, [r4, #0x18] - b _080404BC -_0804048A: - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - bne _080404A6 - adds r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_080404A6: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080404BC - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r0, _080404CC @ =0x00000149 - bl sub_080A3268 -_080404BC: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_080404CC: .4byte 0x00000149 - - thumb_func_start sub_080404D0 -sub_080404D0: @ 0x080404D0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xb] - cmp r0, #0 - beq _080404FC - movs r0, #2 - strb r0, [r2, #0xc] - movs r0, #0xa - strb r0, [r2, #0xe] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - subs r0, #0x12 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, #0 - movs r1, #2 - bl sub_08004260 - b _08040518 -_080404FC: - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r2, #0x18] - 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] -_08040518: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804051C -sub_0804051C: @ 0x0804051C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _0804053A - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_0804053A: - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - beq _0804054A - cmp r0, #1 - beq _0804056C - b _080405C4 -_0804054A: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #6 - bne _080405CC - movs r0, #1 - movs r2, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _080405C4 -_0804056C: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #6 - beq _08040582 - movs r0, #0 - strb r0, [r1] - ldrb r1, [r4, #0x18] - subs r0, #4 - ands r0, r1 - strb r0, [r4, #0x18] - b _080405C4 -_08040582: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080405A8 - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r0, _080405D0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _080405A8 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - movs r2, #1 - bl sub_08040648 -_080405A8: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080405BE - movs r0, #0xa - strb r0, [r4, #0xe] - ldr r0, _080405D4 @ =0x00000149 - bl sub_080A3268 -_080405BE: - adds r0, r4, #0 - bl sub_08004274 -_080405C4: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 -_080405CC: - pop {r4, pc} - .align 2, 0 -_080405D0: .4byte gUnk_03003DBC -_080405D4: .4byte 0x00000149 - - thumb_func_start sub_080405D8 -sub_080405D8: @ 0x080405D8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080405F6 - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl sub_0805E780 -_080405F6: - adds r3, r4, #0 - adds r3, #0x80 - ldrb r2, [r3] - cmp r2, #0 - bne _08040626 - ldr r0, [r4, #0x50] - ldr r0, [r0, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #6 - beq _08040638 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08040638 - adds r0, r2, #1 - strb r0, [r3] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _08040638 -_08040626: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08040638 - bl sub_0805E780 -_08040638: - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08040648 -sub_08040648: @ 0x08040648 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r7, r2, #0 - movs r0, #0x4f - bl CreateEnemy - adds r5, r0, #0 - strb r7, [r5, #0xb] - str r6, [r5, #0x50] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0806FA24 - cmp r4, #2 - bne _0804066E - cmp r7, #0 - bne _0804066E - str r5, [r6, #0x54] -_0804066E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08040670 -sub_08040670: @ 0x08040670 - push {lr} - adds r2, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x80 - strb r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] - movs r0, #0xc - strb r0, [r2, #0xe] - ldrb r0, [r2, #0x14] - cmp r0, #0 - bne _08040698 - adds r0, r2, #0 - bl sub_080406A0 - b _0804069E -_08040698: - adds r0, r2, #0 - bl sub_08040770 -_0804069E: - pop {pc} - - thumb_func_start sub_080406A0 -sub_080406A0: @ 0x080406A0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - bl sub_08000E50 - mov r8, r0 - movs r0, #0x30 - mov r1, r8 - ands r1, r0 - mov r8, r1 - adds r0, r5, #0 - adds r0, #0x86 - ldrb r6, [r0] - ldr r2, _080406F0 @ =gUnk_03000BF0 - ldrh r3, [r2, #6] - ldr r4, _080406F4 @ =gUnk_080D0B58 - lsls r1, r6, #1 - lsls r0, r6, #2 - adds r0, r0, r4 - ldrh r0, [r0] - adds r7, r3, r0 - ldrh r2, [r2, #8] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - adds r4, r2, r0 - adds r0, r5, #0 - adds r1, r7, #0 - adds r2, r4, #0 - movs r3, #0x1c - bl sub_0806FCB8 - cmp r0, #0 - beq _0804071E - cmp r6, #0 - beq _080406F8 - movs r6, #0 - b _08040702 - .align 2, 0 -_080406F0: .4byte gUnk_03000BF0 -_080406F4: .4byte gUnk_080D0B58 -_080406F8: - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - adds r6, r1, #1 -_08040702: - ldr r2, _0804074C @ =gUnk_03000BF0 - ldrh r3, [r2, #6] - ldr r4, _08040750 @ =gUnk_080D0B58 - lsls r1, r6, #1 - lsls r0, r6, #2 - adds r0, r0, r4 - ldrh r0, [r0] - adds r7, r3, r0 - ldrh r2, [r2, #8] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - adds r4, r2, r0 -_0804071E: - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r2, r7, #0 - adds r3, r4, #0 - bl sub_080045D4 - strb r0, [r5, #0x15] - movs r0, #0x20 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _0804075A - ldrb r1, [r5, #0x15] - movs r0, #0x10 - mov r2, r8 - ands r2, r0 - cmp r2, #0 - beq _08040754 - adds r0, r1, #1 - b _08040758 - .align 2, 0 -_0804074C: .4byte gUnk_03000BF0 -_08040750: .4byte gUnk_080D0B58 -_08040754: - adds r0, r1, #0 - adds r0, #0x1f -_08040758: - strb r0, [r5, #0x15] -_0804075A: - ldrb r0, [r5, #0x15] - movs r1, #0x1f - ands r1, r0 - strb r1, [r5, #0x15] - adds r0, r5, #0 - adds r0, #0x86 - strb r6, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08040770 -sub_08040770: @ 0x08040770 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - bl sub_08000E50 - mov r8, r0 - movs r0, #0x38 - mov r1, r8 - ands r1, r0 - mov r8, r1 - adds r0, r7, #0 - adds r0, #0x86 - ldrb r5, [r0] - ldr r2, _080407CC @ =gUnk_03000BF0 - ldrh r3, [r2, #6] - ldr r4, _080407D0 @ =gUnk_080D0B64 - lsls r1, r5, #1 - lsls r0, r5, #2 - adds r0, r0, r4 - ldrh r0, [r0] - adds r6, r3, r0 - ldrh r2, [r2, #8] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - adds r4, r2, r0 - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #0x1c - bl sub_0806FCB8 - cmp r0, #0 - beq _0804089A - ldrb r0, [r7, #0x14] - cmp r0, #2 - beq _08040822 - movs r0, #8 - mov r2, r8 - ands r0, r2 - cmp r0, #0 - beq _080407D4 - adds r5, #1 - b _080407D6 - .align 2, 0 -_080407CC: .4byte gUnk_03000BF0 -_080407D0: .4byte gUnk_080D0B64 -_080407D4: - adds r5, #3 -_080407D6: - movs r0, #3 - ands r5, r0 - adds r0, r7, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _0804087E - adds r0, r7, #0 - adds r0, #0x75 - ldrb r0, [r0] - cmp r0, #0x3c - beq _0804080A - cmp r0, #0x3c - bgt _080407F8 - cmp r0, #0xf - beq _08040802 - b _0804087E -_080407F8: - cmp r0, #0xc3 - beq _0804081A - cmp r0, #0xf0 - beq _08040812 - b _0804087E -_08040802: - cmp r5, #0 - bne _0804087E - movs r5, #2 - b _0804087E -_0804080A: - cmp r5, #1 - bne _0804087E - movs r5, #3 - b _0804087E -_08040812: - cmp r5, #2 - bne _0804087E - movs r5, #0 - b _0804087E -_0804081A: - cmp r5, #3 - bne _0804087E - movs r5, #1 - b _0804087E -_08040822: - adds r1, r7, #0 - adds r1, #0x87 - ldrb r2, [r1] - movs r0, #0x7f - ands r0, r2 - adds r4, r1, #0 - cmp r0, #0 - beq _08040848 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _0804083E - adds r5, #1 - b _08040840 -_0804083E: - adds r5, #3 -_08040840: - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] - b _0804087A -_08040848: - bl sub_08000E50 - movs r1, #7 - ands r0, r1 - adds r0, #4 - strb r0, [r4] - ldrb r6, [r4] - bl sub_08000E50 - movs r1, #0x20 - ands r1, r0 - cmp r1, #0 - bne _08040868 - movs r1, #0x80 - orrs r1, r6 - b _0804086A -_08040868: - adds r1, r6, #0 -_0804086A: - strb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08040878 - adds r5, #1 - b _0804087A -_08040878: - adds r5, #3 -_0804087A: - movs r0, #3 - ands r5, r0 -_0804087E: - ldr r2, _080408C8 @ =gUnk_03000BF0 - ldrh r3, [r2, #6] - ldr r4, _080408CC @ =gUnk_080D0B64 - lsls r1, r5, #1 - lsls r0, r5, #2 - adds r0, r0, r4 - ldrh r0, [r0] - adds r6, r3, r0 - ldrh r2, [r2, #8] - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - adds r4, r2, r0 -_0804089A: - movs r1, #0x2e - ldrsh r0, [r7, r1] - movs r2, #0x32 - ldrsh r1, [r7, r2] - adds r2, r6, #0 - adds r3, r4, #0 - bl sub_080045D4 - strb r0, [r7, #0x15] - movs r0, #0x20 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _080408D6 - ldrb r1, [r7, #0x15] - movs r0, #0x10 - mov r2, r8 - ands r2, r0 - cmp r2, #0 - beq _080408D0 - adds r0, r1, #1 - b _080408D4 - .align 2, 0 -_080408C8: .4byte gUnk_03000BF0 -_080408CC: .4byte gUnk_080D0B64 -_080408D0: - adds r0, r1, #0 - adds r0, #0x1f -_080408D4: - strb r0, [r7, #0x15] -_080408D6: - ldrb r0, [r7, #0x15] - movs r1, #0x1f - ands r1, r0 - strb r1, [r7, #0x15] - adds r0, r7, #0 - adds r0, #0x86 - strb r5, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080408EC -sub_080408EC: @ 0x080408EC - push {r4, r5, r6, r7, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x14] - cmp r0, #0 - bne _08040902 - movs r1, #0xf0 - adds r4, r2, #0 - adds r4, #0x75 - adds r5, r2, #0 - adds r5, #0x76 - b _08040926 -_08040902: - adds r4, r2, #0 - adds r4, #0x75 - adds r5, r2, #0 - adds r5, #0x76 - ldr r7, _08040930 @ =gUnk_080D0B74 - movs r6, #0x3c -_0804090E: - bl sub_08000E50 - ands r0, r6 - lsrs r0, r0, #2 - adds r0, r0, r7 - ldrb r1, [r0] - ldrb r0, [r4] - cmp r1, r0 - bne _08040922 - movs r1, #0xff -_08040922: - cmp r1, #0xff - beq _0804090E -_08040926: - movs r0, #0 - strb r1, [r4] - strb r0, [r5] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08040930: .4byte gUnk_080D0B74 - - thumb_func_start sub_08040934 -sub_08040934: @ 0x08040934 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x3e - ands r1, r0 - movs r2, #0 - cmp r1, #0x2e - bhi _08040948 - movs r2, #1 -_08040948: - adds r0, r4, #0 - adds r0, #0x87 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08040958 - movs r2, #0 -_08040958: - adds r4, #0x84 - ldrb r0, [r4] - cmp r0, #9 - beq _080409A4 - cmp r2, #0 - beq _080409AA - adds r0, #1 - movs r1, #5 - bl __modsi3 - strb r0, [r4] - bl sub_08000E50 - movs r1, #0xf8 - ands r1, r0 - lsrs r1, r1, #3 - ldr r0, _08040998 @ =gUnk_080D0B84 - adds r0, r1, r0 - ldrb r2, [r0] - ldrb r0, [r4] - cmp r0, #1 - beq _0804099C - cmp r0, #1 - blt _080409AA - cmp r0, #4 - bgt _080409AA - cmp r0, #3 - blt _080409AA - cmp r2, #0 - bne _080409AA - b _080409A8 - .align 2, 0 -_08040998: .4byte gUnk_080D0B84 -_0804099C: - cmp r2, #0 - beq _080409A8 - movs r2, #3 - b _080409AA -_080409A4: - movs r0, #0 - strb r0, [r4] -_080409A8: - movs r2, #1 -_080409AA: - adds r0, r2, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080409B0 -sub_080409B0: @ 0x080409B0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x81 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r0] - cmp r1, #1 - beq _080409EA - cmp r1, #1 - bgt _080409CA - cmp r1, #0 - beq _080409D0 - b _08040A68 -_080409CA: - cmp r1, #2 - beq _08040A04 - b _08040A68 -_080409D0: - adds r0, r4, #0 - adds r0, #0x75 - adds r2, r4, #0 - adds r2, #0x76 - ldrb r0, [r0] - ldrb r3, [r2] - cmp r0, r3 - bne _08040A68 - movs r0, #1 - mov r3, ip - strb r0, [r3] - strb r1, [r2] - b _08040A68 -_080409EA: - adds r0, r4, #0 - adds r0, #0x76 - ldrb r0, [r0] - cmp r0, #0 - beq _08040A68 - movs r0, #2 - mov r1, ip - strb r0, [r1] - adds r1, r4, #0 - adds r1, #0x77 - movs r0, #0x10 - strb r0, [r1] - b _08040A68 -_08040A04: - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _08040A68 - adds r0, r4, #0 - adds r0, #0x75 - adds r3, r4, #0 - adds r3, #0x76 - ldrb r1, [r0] - ldrb r0, [r3] - ands r0, r1 - cmp r1, r0 - beq _08040A3C - movs r0, #1 - mov r1, ip - strb r0, [r1] - strb r2, [r3] - ldr r0, _08040A38 @ =0x00000155 - bl sub_080A3268 - b _08040A68 - .align 2, 0 -_08040A38: .4byte 0x00000155 -_08040A3C: - movs r1, #3 - strb r1, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - mov r3, ip - strb r1, [r3] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x36 - strb r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0xb2 - lsls r0, r0, #1 - bl sub_080A3268 -_08040A68: - adds r0, r4, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #2 - bhi _08040A84 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _08040AC8 - adds r0, r4, #0 - bl sub_080AF18C - b _08040AC8 -_08040A84: - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x80 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - beq _08040AB0 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _08040AB0 - movs r0, #0xc - movs r1, #1 - bl sub_08080964 - ldr r0, _08040ACC @ =0x00000127 - bl sub_080A3268 -_08040AB0: - ldrb r0, [r5] - cmp r0, #0x8a - bne _08040AC8 - ldr r0, _08040AD0 @ =gUnk_03003F80 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #5 - bne _08040AC8 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0xc0 - strb r0, [r1] -_08040AC8: - pop {r4, r5, pc} - .align 2, 0 -_08040ACC: .4byte 0x00000127 -_08040AD0: .4byte gUnk_03003F80 - - thumb_func_start sub_08040AD4 -sub_08040AD4: @ 0x08040AD4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - movs r1, #0x3f - ands r1, r0 - lsls r6, r1, #0x18 - lsrs r4, r6, #0x18 - movs r0, #0x1f - ands r0, r4 - cmp r0, #0 - bne _08040AF0 - ldr r0, _08040B0C @ =0x000001A9 - bl sub_080A3268 -_08040AF0: - movs r0, #3 - ands r4, r0 - cmp r4, #0 - bne _08040B2A - lsrs r4, r6, #0x1a - movs r0, #0x2e - ldrsh r2, [r5, r0] - adds r0, r4, #4 - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08040B10 - subs r0, r2, #1 - b _08040B12 - .align 2, 0 -_08040B0C: .4byte 0x000001A9 -_08040B10: - adds r0, r2, #1 -_08040B12: - strh r0, [r5, #0x2e] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #2 - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _08040B26 - subs r0, r2, #1 - b _08040B28 -_08040B26: - adds r0, r2, #1 -_08040B28: - strh r0, [r5, #0x32] -_08040B2A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08040B2C -sub_08040B2C: @ 0x08040B2C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #1 - bne _08040B5C - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08040B5C - adds r0, r5, #0 - bl sub_08041300 - cmp r0, #0 - beq _08040B4E - adds r0, r5, #0 - bl sub_0803F6EC -_08040B4E: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_08040B5C: - ldr r4, _08040B80 @ =gUnk_080D0DC4 - 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 - movs r3, #0x10 - rsbs r3, r3, #0 - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, r5, pc} - .align 2, 0 -_08040B80: .4byte gUnk_080D0DC4 - - thumb_func_start sub_08040B84 -sub_08040B84: @ 0x08040B84 - push {lr} - ldr r2, _08040B98 @ =gUnk_080D0DDC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08040B98: .4byte gUnk_080D0DDC - - thumb_func_start sub_08040B9C -sub_08040B9C: @ 0x08040B9C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08040BD0 - movs r0, #0xff - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - lsrs r1, r1, #4 - movs r0, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08041134 - adds r0, r4, #0 - bl sub_0803F6EC -_08040BD0: - adds r0, r4, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x25 - bne _08040BF4 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x80 - bne _08040C0E - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _08040C9C -_08040BF4: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0x80 - bne _08040C0E - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x78 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08041128 -_08040C0E: - ldrb r0, [r5] - cmp r0, #0x9d - bne _08040C1A - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_08040C1A: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08040C40 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsrs r0, r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08040C40: - adds r0, r4, #0 - adds r0, #0x45 - adds r1, r4, #0 - adds r1, #0x7a - ldrb r2, [r0] - adds r6, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5] - cmp r2, r0 - beq _08040C9C - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08040C70 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - lsrs r0, r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 - b _08040C98 -_08040C70: - adds r1, r4, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _08040C84 - movs r0, #0x80 - orrs r0, r2 - strb r0, [r1] -_08040C84: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r6] - movs r0, #0xa - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] -_08040C98: - ldrb r0, [r6] - strb r0, [r5] -_08040C9C: - ldr r1, _08040CA8 @ =gUnk_080D0DC4 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08040CA8: .4byte gUnk_080D0DC4 - - thumb_func_start sub_08040CAC -sub_08040CAC: @ 0x08040CAC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08001328 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08040D04 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _08040D2C - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08040D2C - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _08040D2C - movs r0, #0xff - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x58 - ldrb r0, [r1] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08040D2C - ldrb r1, [r1] - subs r1, #7 - movs r0, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - b _08040D2C -_08040D04: - ldrb r2, [r4, #0x18] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - movs r0, #1 - eors r1, r0 - movs r5, #4 - rsbs r5, r5, #0 - adds r3, r5, #0 - ands r3, r2 - orrs r3, r1 - strb r3, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _08040D2C - ands r3, r5 - movs r0, #1 - orrs r3, r0 - strb r3, [r4, #0x18] -_08040D2C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08040D30 -sub_08040D30: @ 0x08040D30 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #7 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08040D4C - ldrb r1, [r4, #0x14] - adds r1, #7 - adds r0, r4, #0 - bl sub_08004260 -_08040D4C: - adds r0, r4, #0 - bl sub_08001242 - ldrh r1, [r4, #0x36] - movs r2, #0x36 - ldrsh r0, [r4, r2] - cmp r0, #0 - bne _08040D60 - ldr r0, _08040D8C @ =0x0000FFFF - strh r0, [r4, #0x36] -_08040D60: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _08040D88 - ldrb r0, [r4, #0x14] - movs r1, #1 - eors r1, r0 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0xff - strb r0, [r4, #0x15] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08041134 -_08040D88: - pop {r4, pc} - .align 2, 0 -_08040D8C: .4byte 0x0000FFFF - - thumb_func_start sub_08040D90 -sub_08040D90: @ 0x08040D90 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08040DB4 - ldr r0, _08040DB0 @ =gUnk_080D0E08 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _08040DC6 - .align 2, 0 -_08040DB0: .4byte gUnk_080D0E08 -_08040DB4: - adds r0, r4, #0 - bl sub_08041128 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #4 - adds r1, #1 - adds r0, r4, #0 - bl sub_08004260 -_08040DC6: - pop {r4, pc} - - thumb_func_start sub_08040DC8 -sub_08040DC8: @ 0x08040DC8 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x3c - strb r1, [r0, #0x1d] - ldr r1, _08040DE0 @ =gLinkEntity - ldrb r1, [r1, #0x14] - lsrs r1, r1, #2 - adds r1, #5 - bl sub_08004260 - pop {pc} - .align 2, 0 -_08040DE0: .4byte gLinkEntity - - thumb_func_start sub_08040DE4 -sub_08040DE4: @ 0x08040DE4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F4E8 - pop {r4, pc} - - thumb_func_start sub_08040DF4 -sub_08040DF4: @ 0x08040DF4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _08040E38 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _08040E26 - adds r2, r0, #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] -_08040E26: - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08040E34 - adds r0, r4, #0 - bl sub_0804A7D4 - b _08040E38 -_08040E34: - bl sub_0805E780 -_08040E38: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040E3C -sub_08040E3C: @ 0x08040E3C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0804A720 - bl sub_08000E50 - movs r2, #0x1e - adds r1, r0, #0 - ands r1, r2 - movs r2, #0 - strb r1, [r4, #0x15] - movs r1, #0xff - strb r1, [r4, #0x14] - movs r5, #1 - strb r5, [r4, #0x1c] - adds r1, r4, #0 - adds r1, #0x45 - ldrb r1, [r1] - adds r3, r4, #0 - adds r3, #0x7a - strb r1, [r3] - lsrs r0, r0, #4 - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x7c - strh r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08040E86 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0xe] - bl sub_0804B128 - str r0, [r4, #0x54] - b _08040E8C -_08040E86: - adds r0, r4, #0 - bl sub_080411CC -_08040E8C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08040E90 -sub_08040E90: @ 0x08040E90 - push {r4, lr} - adds r4, r0, #0 - bl sub_080411E8 - cmp r0, #0 - beq _08040EA4 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0xf - strb r0, [r4, #0xe] -_08040EA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040EA8 -sub_08040EA8: @ 0x08040EA8 - 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 _08040EC4 - adds r0, r4, #0 - bl sub_080411CC - adds r0, r4, #0 - bl sub_0804122C -_08040EC4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040EC8 -sub_08040EC8: @ 0x08040EC8 - 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 _08040F08 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - bl sub_08000E50 - adds r1, r4, #0 - adds r1, #0x80 - ldrb r2, [r1] - movs r1, #0x30 - ands r1, r0 - adds r1, #0x3c - adds r0, r2, #0 - muls r0, r1, r0 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - adds r0, r4, #0 - bl sub_08041128 -_08040F08: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040F0C -sub_08040F0C: @ 0x08040F0C - push {r4, lr} - adds r4, r0, #0 - bl sub_08041170 - cmp r0, #0 - bne _08040F36 - adds r0, r4, #0 - bl sub_0803F58C - 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 _08040F36 - adds r0, r4, #0 - bl sub_08041128 -_08040F36: - pop {r4, pc} - - thumb_func_start sub_08040F38 -sub_08040F38: @ 0x08040F38 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - movs r1, #1 - bl sub_08049F84 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08040F8E - adds r0, r4, #0 - bl sub_0803F66C - adds r1, r4, #0 - adds r1, #0x78 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08040F94 - movs r0, #6 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r2, #0xe0 - adds r1, r0, #0 - ands r1, r2 - strb r1, [r4, #0xe] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r4, #0x24] - lsrs r0, r0, #8 - movs r1, #0x78 - ands r0, r1 - adds r0, #0x3c - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - b _08040F94 -_08040F8E: - adds r0, r4, #0 - bl sub_08041128 -_08040F94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08040F98 -sub_08040F98: @ 0x08040F98 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0803F5A8 - cmp r0, #0 - bne _08040FB2 - adds r0, r4, #0 - bl sub_08041128 - b _08041014 -_08040FB2: - movs r0, #1 - bl sub_08049DF4 - cmp r0, #0 - beq _0804100C - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0804100C - ldrb r1, [r4, #0xe] - adds r1, #1 - strb r1, [r4, #0xe] - ldr r2, _08041004 @ =gUnk_080D0E14 - lsls r0, r1, #0x18 - lsrs r0, r0, #0x1e - adds r0, r0, r2 - ldrb r0, [r0] - ands r1, r0 - cmp r1, #0 - bne _08040FF4 - ldr r0, _08041008 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080045C4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_08040FF4: - adds r0, r4, #0 - bl sub_0803F66C - adds r0, r4, #0 - bl sub_080AEFB4 - b _08041014 - .align 2, 0 -_08041004: .4byte gUnk_080D0E14 -_08041008: .4byte gUnk_020000B0 -_0804100C: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] -_08041014: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08041018 -sub_08041018: @ 0x08041018 - push {r4, 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 _08041042 - bl sub_08000E50 - movs r1, #0xf8 - ands r0, r1 - adds r0, #0xb4 - adds r1, r4, #0 - adds r1, #0x7c - strh r0, [r1] - adds r0, r4, #0 - bl sub_08041128 -_08041042: - pop {r4, pc} - - thumb_func_start sub_08041044 -sub_08041044: @ 0x08041044 - push {r4, lr} - adds r4, r0, #0 - bl sub_0803F738 - 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 _08041074 - movs r0, #0 - movs r1, #9 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_08041074: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08041078 -sub_08041078: @ 0x08041078 - 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 _08041094 - adds r0, r4, #0 - bl sub_0803F6C0 -_08041094: - bl sub_0807953C - adds r1, r4, #0 - adds r1, #0x78 - cmp r0, #0 - beq _080410A6 - ldrh r0, [r1] - adds r0, #8 - strh r0, [r1] -_080410A6: - ldr r2, _08041100 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _080410B6 - movs r0, #0xe0 - strh r0, [r1] -_080410B6: - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xdf - bls _08041104 - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x78 - strh r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] - subs r1, #0x3f - movs r0, #0xf4 - strb r0, [r1] - adds r1, #5 - movs r0, #0x14 - strb r0, [r1] - adds r1, #4 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - adds r0, r4, #0 - bl sub_08041128 - adds r0, r4, #0 - bl sub_0803F6EC - b _0804110A - .align 2, 0 -_08041100: .4byte gLinkEntity -_08041104: - adds r0, r4, #0 - bl sub_0803F738 -_0804110A: - pop {r4, pc} - - thumb_func_start sub_0804110C -sub_0804110C: @ 0x0804110C - push {r4, 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 _08041126 - adds r0, r4, #0 - bl sub_08041128 -_08041126: - pop {r4, pc} - - thumb_func_start sub_08041128 -sub_08041128: @ 0x08041128 - push {lr} - movs r1, #4 - strb r1, [r0, #0xc] - bl sub_0803F528 - pop {pc} - - thumb_func_start sub_08041134 -sub_08041134: @ 0x08041134 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #5 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x25 - strb r0, [r1] - movs r5, #0 - ldr r0, _08041168 @ =gUnk_03004040 - ldr r0, [r0] - cmp r0, #0 - beq _08041150 - movs r5, #0x3c -_08041150: - bl sub_08000E50 - ldr r2, _0804116C @ =gUnk_080D0E18 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r5 - adds r1, r4, #0 - adds r1, #0x78 - strh r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_08041168: .4byte gUnk_03004040 -_0804116C: .4byte gUnk_080D0E18 - - thumb_func_start sub_08041170 -sub_08041170: @ 0x08041170 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _08041184 - subs r0, #1 - strh r0, [r1] - b _080411C8 -_08041184: - adds r0, r4, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _080411C8 - adds r0, r4, #0 - bl sub_0806FD54 - cmp r0, #0 - bne _080411B6 - ldr r0, _080411C0 @ =gUnk_02033A90 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0xf - ble _080411C8 - ldr r0, _080411C4 @ =gUnk_020000B0 - ldr r1, [r0] - adds r0, r4, #0 - movs r2, #0x70 - movs r3, #0x48 - bl sub_080041A0 - cmp r0, #0 - beq _080411C8 -_080411B6: - adds r0, r4, #0 - bl sub_08041134 - movs r0, #1 - b _080411CA - .align 2, 0 -_080411C0: .4byte gUnk_02033A90 -_080411C4: .4byte gUnk_020000B0 -_080411C8: - movs r0, #0 -_080411CA: - pop {r4, pc} - - thumb_func_start sub_080411CC -sub_080411CC: @ 0x080411CC - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - subs r1, #7 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080411E8 -sub_080411E8: @ 0x080411E8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_08049FDC - cmp r0, #0 - beq _08041222 - ldrb r0, [r4, #0xb] - cmp r0, #1 - beq _08041204 - cmp r0, #2 - beq _08041218 -_08041200: - movs r0, #1 - b _08041224 -_08041204: - ldr r0, _08041214 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08041222 - b _08041200 - .align 2, 0 -_08041214: .4byte gUnk_03003F80 -_08041218: - ldr r0, _08041228 @ =gUnk_02033A90 - movs r1, #0xa - ldrsh r0, [r0, r1] - cmp r0, #0xf - bgt _08041200 -_08041222: - movs r0, #0 -_08041224: - pop {r4, pc} - .align 2, 0 -_08041228: .4byte gUnk_02033A90 - - thumb_func_start sub_0804122C -sub_0804122C: @ 0x0804122C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - ldr r0, [r4, #0x54] - mov r8, r0 - bl sub_08000E50 - movs r6, #6 - ands r6, r0 - lsrs r5, r0, #8 - movs r0, #3 - ands r5, r0 - movs r7, #0 - ldr r3, _080412FC @ =gUnk_03000BF0 - mov sb, r3 -_08041250: - movs r0, #0x50 - movs r1, #1 - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _080412C8 - lsls r1, r6, #1 - add r1, r8 - mov r3, sb - ldrh r0, [r3, #6] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - mov r3, sb - ldrh r0, [r3, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - strh r0, [r2, #0x32] - str r4, [r2, #0x50] - adds r0, r2, #0 - adds r0, #0x80 - strb r5, [r0] - adds r3, r2, #0 - adds r3, #0x6d - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x70 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x6e - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x6f - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A30 - adds r6, #2 - movs r0, #6 - ands r6, r0 - adds r5, #1 - movs r0, #3 - ands r5, r0 -_080412C8: - adds r7, #1 - cmp r7, #2 - bls _08041250 - lsls r1, r6, #1 - add r1, r8 - ldr r2, _080412FC @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldrh r3, [r1] - adds r0, r0, r3 - movs r3, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x38 - strb r3, [r0] - adds r0, r4, #0 - bl sub_08016A30 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080412FC: .4byte gUnk_03000BF0 - - thumb_func_start sub_08041300 -sub_08041300: @ 0x08041300 - push {lr} - adds r1, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #0x25 - bne _0804131A - adds r0, r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x80 - bne _0804131A - movs r0, #1 - b _0804132C -_0804131A: - movs r2, #0 - ldrb r0, [r1, #0xc] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0804132A - movs r2, #1 -_0804132A: - adds r0, r2, #0 -_0804132C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08041330 -sub_08041330: @ 0x08041330 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08041384 - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08041384 - adds r2, r4, #0 - adds r2, #0x45 - ldrb r0, [r2] - cmp r0, #0 - bne _08041384 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08041384 - movs r0, #0xd - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldr r0, _08041398 @ =0x80010000 - bl sub_080A3268 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 -_08041384: - ldr r0, _0804139C @ =gUnk_080D0E1C - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_08041398: .4byte 0x80010000 -_0804139C: .4byte gUnk_080D0E1C - - thumb_func_start sub_080413A0 -sub_080413A0: @ 0x080413A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080423A4 - ldr r1, _080413BC @ =gUnk_080D0E2C - 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 -_080413BC: .4byte gUnk_080D0E2C - - thumb_func_start sub_080413C0 -sub_080413C0: @ 0x080413C0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r7, _080413F8 @ =gUnk_030010A0 - adds r0, r7, #0 - adds r0, #0x38 - ldrb r0, [r0] - movs r6, #1 - adds r5, r6, #0 - ands r5, r0 - cmp r5, #0 - beq _08041420 - adds r0, r4, #0 - bl sub_08041FCC - cmp r0, #0 - beq _08041486 - adds r0, r7, #0 - adds r0, #0x39 - ldrb r1, [r0] - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - bne _080413FC - movs r0, #5 - strb r0, [r4, #0xc] - strb r6, [r4, #0xd] - b _08041404 - .align 2, 0 -_080413F8: .4byte gUnk_030010A0 -_080413FC: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] -_08041404: - ldr r0, _0804141C @ =gUnk_030010A0 - adds r1, r0, #0 - adds r1, #0x40 - ldrh r1, [r1] - strh r1, [r4, #0x2e] - adds r0, #0x42 - ldrh r0, [r0] - strh r0, [r4, #0x32] - adds r0, r4, #0 - bl sub_08042004 - b _0804144A - .align 2, 0 -_0804141C: .4byte gUnk_030010A0 -_08041420: - adds r0, r4, #0 - bl sub_08041ED4 - cmp r0, #0 - beq _08041486 - strb r6, [r4, #0xc] - strb r5, [r4, #0xd] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb1 - ands r0, r1 - strb r0, [r2] - ldr r0, _08041488 @ =0x0000FFB0 - strh r0, [r4, #0x36] - ldr r0, _0804148C @ =gUnk_03000BF0 - str r4, [r0, #0x30] - bl sub_080809D4 -_0804144A: - 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 r3, r4, #0 - adds r3, #0x6d - ldrb r0, [r3] - movs r2, #0 - orrs r1, r0 - strb r1, [r3] - adds r0, r4, #0 - adds r0, #0x79 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x3c - strh r0, [r1] - adds r1, #2 - movs r0, #0x78 - strh r0, [r1] - adds r1, #6 - movs r0, #3 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08041486: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08041488: .4byte 0x0000FFB0 -_0804148C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08041490 -sub_08041490: @ 0x08041490 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xd] - cmp r0, #5 - bls _080414A0 - b _080415CC -_080414A0: - lsls r0, r0, #2 - ldr r1, _080414AC @ =_080414B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080414AC: .4byte _080414B0 -_080414B0: @ jump table - .4byte _080415E6 @ case 0 - .4byte _080414C8 @ case 1 - .4byte _08041510 @ case 2 - .4byte _08041532 @ case 3 - .4byte _0804155C @ case 4 - .4byte _08041592 @ case 5 -_080414C8: - 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, [r4, #0x34] - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrh r1, [r4, #0x36] - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _080414F4 - ldr r0, _0804150C @ =0x000001A9 - bl sub_080A3268 -_080414F4: - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - ble _080415E6 - movs r0, #2 - strb r0, [r4, #0xd] - ldr r0, _0804150C @ =0x000001A9 - bl sub_080A3268 - b _080415E6 - .align 2, 0 -_0804150C: .4byte 0x000001A9 -_08041510: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08041520 - subs r0, #1 - b _080415E4 -_08041520: - adds r0, r4, #0 - movs r1, #0 - bl sub_08041F74 - cmp r0, #0 - beq _080415E6 - movs r0, #3 - strb r0, [r4, #0xd] - b _080415E2 -_08041532: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08041544 - subs r0, #1 - b _080415E4 -_08041544: - adds r0, r4, #0 - movs r1, #1 - bl sub_08041F74 - cmp r0, #0 - beq _080415E6 - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - b _080415E6 -_0804155C: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08041574 - movs r0, #5 - strb r0, [r4, #0xd] - b _080415E6 -_08041574: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3c - bhi _080415E6 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080415E6 - adds r0, r4, #0 - bl sub_08041F1C - cmp r0, #0 - beq _080415E6 - movs r0, #1 - strb r0, [r4, #0xf] - b _080415E6 -_08041592: - adds r0, r4, #0 - bl sub_08042004 - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldr r1, _080415BC @ =gUnk_030010A0 - adds r1, #0x38 - ldrb r2, [r1] - movs r0, #1 - orrs r0, r2 - strb r0, [r1] - ldr r1, _080415C0 @ =gUnk_03000BF0 - ldr r0, _080415C4 @ =gLinkEntity - str r0, [r1, #0x30] - ldr r0, _080415C8 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - b _080415E6 - .align 2, 0 -_080415BC: .4byte gUnk_030010A0 -_080415C0: .4byte gUnk_03000BF0 -_080415C4: .4byte gLinkEntity -_080415C8: .4byte gUnk_03003F80 -_080415CC: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080415E6 - movs r0, #2 - strb r0, [r4, #0xc] -_080415E2: - movs r0, #0x3c -_080415E4: - strb r0, [r4, #0xe] -_080415E6: - pop {r4, r5, pc} - - thumb_func_start sub_080415E8 -sub_080415E8: @ 0x080415E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08041614 - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08042028 -_08041614: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08041618 -sub_08041618: @ 0x08041618 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - ldr r0, _0804165C @ =gUnk_03000BF0 - ldrh r2, [r0, #8] - adds r0, r2, #0 - adds r0, #0x90 - movs r3, #0x32 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _08041644 - adds r0, r2, #0 - adds r0, #0x40 - cmp r0, r1 - ble _08041646 -_08041644: - strh r0, [r4, #0x32] -_08041646: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08041660 - movs r0, #4 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] - b _08041694 - .align 2, 0 -_0804165C: .4byte gUnk_03000BF0 -_08041660: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1d - bhi _0804166E - ldrh r0, [r4, #0x24] - subs r0, #8 - b _0804167A -_0804166E: - ldrh r1, [r4, #0x24] - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0xff - bgt _0804167C - adds r0, r1, #6 -_0804167A: - strh r0, [r4, #0x24] -_0804167C: - ldrb r1, [r4, #0xe] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _08041694 - adds r0, r4, #0 - bl sub_0804207C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 -_08041694: - adds r0, r4, #0 - bl sub_0804212C - adds r0, r4, #0 - bl sub_080421AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080416A4 -sub_080416A4: @ 0x080416A4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080416DA - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0 - bne _080416D4 - adds r0, r4, #0 - bl sub_08042120 - b _080416DA -_080416D4: - adds r0, r4, #0 - bl sub_08042028 -_080416DA: - pop {r4, pc} - - thumb_func_start sub_080416DC -sub_080416DC: @ 0x080416DC - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08042004 - adds r0, r5, #0 - bl sub_080042B8 - adds r0, r5, #0 - bl sub_0804212C - adds r0, r5, #0 - bl sub_080421AC - ldrb r1, [r5, #0xd] - cmp r1, #0 - bne _08041748 - movs r4, #1 - strb r4, [r5, #0xd] - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - beq _08041716 - ldr r0, [r5, #0x64] - ldr r2, [r0, #0x14] - cmp r2, #0 - bne _08041724 - ldr r2, [r0, #0x18] - b _08041720 -_08041716: - ldr r0, [r5, #0x64] - ldr r2, [r0, #0x18] - cmp r2, #0 - bne _08041724 - ldr r2, [r0, #0x14] -_08041720: - cmp r2, #0 - beq _08041734 -_08041724: - ldrb r0, [r2, #0xc] - cmp r0, #2 - bne _08041734 - movs r1, #0 - movs r0, #4 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - b _080417AA -_08041734: - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r0, #1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08042028 - b _080417AA -_08041748: - adds r0, r5, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - bne _080417AA - adds r2, r1, #0 - cmp r2, #2 - bne _080417AA - ldr r0, _0804179C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _080417A4 - movs r0, #0xb5 - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _080417AA - str r5, [r2, #0x50] - ldr r1, [r5, #0x64] - str r2, [r1, #0x10] - ldr r0, _080417A0 @ =gUnk_03000BF0 - str r2, [r0, #0x30] - movs r0, #6 - strb r0, [r5, #0xc] - movs r0, #0x1e - strb r0, [r5, #0xe] - ldr r1, [r1, #4] - movs r0, #1 - strb r0, [r1, #0xd] - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - movs r1, #0xe - bl sub_08004260 - b _080417AA - .align 2, 0 -_0804179C: .4byte gUnk_030010A0 -_080417A0: .4byte gUnk_03000BF0 -_080417A4: - strb r2, [r5, #0xc] - movs r0, #0x3c - strb r0, [r5, #0xe] -_080417AA: - pop {r4, r5, pc} - - thumb_func_start sub_080417AC -sub_080417AC: @ 0x080417AC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _08041816 - ldr r0, [r5, #0x64] - ldr r4, [r0, #4] - adds r0, r4, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - adds r0, r1, #0 - cmp r0, #1 - bne _080417DA - movs r0, #0xfe - ands r0, r1 - strb r0, [r4] - adds r0, r5, #0 - movs r1, #4 - bl sub_080042AC - b _0804181A -_080417DA: - cmp r0, #2 - bne _08041806 - movs r0, #0x51 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _0804181A - ldr r0, [r5, #0x64] - str r0, [r1, #0x64] - ldr r0, [r5, #0x64] - str r1, [r0, #0xc] - ldr r0, [r0, #8] - movs r1, #0x14 - bl sub_08004260 - ldrb r1, [r4] - movs r0, #0xfd - ands r0, r1 - strb r0, [r4] - b _0804181A -_08041806: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804181A - adds r0, r5, #0 - bl sub_0804235C - b _0804181A -_08041816: - subs r0, #1 - strb r0, [r5, #0xe] -_0804181A: - adds r0, r5, #0 - bl sub_08042004 - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - - thumb_func_start sub_08041828 -sub_08041828: @ 0x08041828 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042214 - adds r0, r4, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - ldr r2, _08041868 @ =gUnk_03000BF0 - ldrh r0, [r2, #8] - adds r0, #0x48 - movs r3, #0x32 - ldrsh r1, [r4, r3] - cmp r0, r1 - beq _0804186C - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldrh r0, [r2, #8] - adds r0, #0x48 - movs r2, #0 - cmp r0, r1 - blt _0804185C - movs r2, #0x10 -_0804185C: - strb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C - b _0804187E - .align 2, 0 -_08041868: .4byte gUnk_03000BF0 -_0804186C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804187E - adds r0, r4, #0 - bl sub_08042050 -_0804187E: - pop {r4, pc} - - thumb_func_start sub_08041880 -sub_08041880: @ 0x08041880 - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, _080418D4 @ =gUnk_03000BF0 - ldrh r2, [r0, #6] - adds r0, r2, #0 - adds r0, #0x20 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bgt _080418AE - movs r3, #0xa0 - lsls r3, r3, #1 - adds r0, r2, r3 - cmp r0, r1 - bge _080418BE -_080418AE: - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0x3f - ble _080418BE - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r0, r1 - strb r0, [r4, #0x15] -_080418BE: - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080418D8 - movs r0, #9 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - b _080418F8 - .align 2, 0 -_080418D4: .4byte gUnk_03000BF0 -_080418D8: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1d - bhi _080418E6 - ldrh r0, [r4, #0x24] - subs r0, #0xc - b _080418F6 -_080418E6: - ldrh r2, [r4, #0x24] - movs r3, #0x24 - ldrsh r1, [r4, r3] - ldr r0, _08041900 @ =0x000001FF - cmp r1, r0 - bgt _080418F8 - adds r0, r2, #0 - adds r0, #0x10 -_080418F6: - strh r0, [r4, #0x24] -_080418F8: - adds r0, r4, #0 - bl sub_08042214 - pop {r4, pc} - .align 2, 0 -_08041900: .4byte 0x000001FF - - thumb_func_start sub_08041904 -sub_08041904: @ 0x08041904 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - adds r3, r4, #0 - adds r3, #0x79 - ldrb r0, [r3] - cmp r0, #0 - beq _08041924 - adds r0, r4, #0 - bl sub_08042214 - b _0804197A -_08041924: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r2, r0, #0x18 - cmp r2, #0 - bne _0804197A - ldr r0, _0804196C @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r0, r1] - movs r5, #0x2e - ldrsh r1, [r4, r5] - subs r0, r0, r1 - adds r0, #0x40 - cmp r0, #0x80 - bhi _08041970 - movs r0, #0xa - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x7b - strb r2, [r0] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x1c] - movs r1, #1 - strb r1, [r0, #0xe] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x20] - strb r1, [r0, #0xe] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x24] - strb r1, [r0, #0xe] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x28] - strb r1, [r0, #0xe] - b _0804197A - .align 2, 0 -_0804196C: .4byte gLinkEntity -_08041970: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r2, [r3] -_0804197A: - pop {r4, r5, pc} - - thumb_func_start sub_0804197C -sub_0804197C: @ 0x0804197C - push {r4, lr} - adds r4, r0, #0 - bl sub_08042004 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - cmp r0, #0xf - bne _080419A6 - movs r1, #0 - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] - b _080419F6 -_080419A6: - cmp r0, #0xf0 - bne _080419F6 - movs r1, #0 - movs r0, #0xb - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - strb r1, [r4, #0x15] - adds r0, #0xf5 - strh r0, [r4, #0x24] - movs r0, #0x90 - lsls r0, r0, #9 - str r0, [r4, #0x20] - ldr r1, _080419F8 @ =0x0000016B - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #5 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0xf - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x15 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1e - bl sub_08004260 - ldr r0, _080419FC @ =0x00000127 - bl sub_080A3268 -_080419F6: - pop {r4, pc} - .align 2, 0 -_080419F8: .4byte 0x0000016B -_080419FC: .4byte 0x00000127 - - thumb_func_start sub_08041A00 -sub_08041A00: @ 0x08041A00 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08041A60 - cmp r0, #1 - beq _08041ABC - ldr r2, _08041A5C @ =gUnk_080D0E64 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldrb r1, [r4, #0xe] - cmp r1, #0 - bne _08041AF0 - movs r0, #0xc - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r1, #0xa0 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_0801D2B4 - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0x10 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x18 - bl sub_08004260 - b _08041AF0 - .align 2, 0 -_08041A5C: .4byte gUnk_080D0E64 -_08041A60: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_08004274 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08041AF0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xf0 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #8 - strb r0, [r1] - subs r1, #6 - movs r0, #0x38 - strb r0, [r1] - movs r0, #0x14 - movs r1, #0 - bl sub_08080964 - adds r0, r4, #0 - movs r1, #6 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x16 - bl sub_08004260 - b _08041AF0 -_08041ABC: - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r2, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08041AF0 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x39 - strb r0, [r1] - adds r1, #6 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] -_08041AF0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08041AF4 -sub_08041AF4: @ 0x08041AF4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08041B12 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_08004274 -_08041B12: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08041B44 - cmp r0, #1 - beq _08041B70 - adds r0, r4, #0 - bl sub_08042004 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r2, r0, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08041BC0 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #9 - bl sub_080042AC - b _08041BCE -_08041B44: - ldr r0, [r4, #0x34] - ldr r1, _08041B6C @ =0xFFFF8000 - adds r0, r0, r1 - str r0, [r4, #0x34] - movs r2, #0x36 - ldrsh r1, [r4, r2] - movs r0, #4 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08041BCE - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - b _08041BCE - .align 2, 0 -_08041B6C: .4byte 0xFFFF8000 -_08041B70: - adds r0, r4, #0 - bl sub_08042004 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08041B82 - subs r0, #1 - strb r0, [r4, #0xe] - b _08041BCE -_08041B82: - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, _08041BBC @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r0, #0x48 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08041BCE - movs r0, #2 - strb r0, [r4, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0x11 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x19 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1f - bl sub_08004260 - b _08041BCE - .align 2, 0 -_08041BBC: .4byte gUnk_03000BF0 -_08041BC0: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08041BCE - adds r0, r4, #0 - bl sub_0804235C -_08041BCE: - pop {r4, pc} - - thumb_func_start sub_08041BD0 -sub_08041BD0: @ 0x08041BD0 - push {lr} - ldr r2, _08041BE4 @ =gUnk_080D0E68 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08041BE4: .4byte gUnk_080D0E68 - - thumb_func_start sub_08041BE8 -sub_08041BE8: @ 0x08041BE8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - bl sub_08079F8C - cmp r0, #0 - beq _08041CBA - movs r5, #0 - movs r0, #1 - strb r0, [r6, #0xd] - movs r0, #0x78 - strb r0, [r6, #0xe] - ldrb r1, [r6, #0x11] - movs r4, #0x10 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r1, #3 - mov r8, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r6, #0x11] - adds r0, r6, #0 - movs r1, #0xa - bl sub_080042AC - ldr r0, [r6, #0x64] - ldr r7, [r0, #4] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #4] - ldr r7, [r0, #8] - ldrb r0, [r7, #0x11] - ands r4, r0 - mov r0, r8 - orrs r4, r0 - strb r4, [r7, #0x11] - adds r0, r7, #0 - bl sub_080AE068 - ldr r1, _08041CC0 @ =0x000001F5 - adds r0, r7, #0 - bl sub_080ADF80 - ldr r1, _08041CC4 @ =0x0000016B - adds r0, r7, #0 - bl sub_0801D2B4 - adds r0, r7, #0 - movs r1, #0x1a - bl sub_08004260 - ldr r0, [r6, #0x64] - ldr r7, [r0, #0xc] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0xc] - ldr r7, [r0, #0x10] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r2, [r6, #0x64] - str r5, [r2, #0x10] - ldr r1, _08041CC8 @ =gUnk_03000BF0 - ldr r0, _08041CCC @ =gLinkEntity - str r0, [r1, #0x30] - ldr r7, [r2, #0x1c] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0x1c] - ldr r7, [r0, #0x20] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0x20] - ldr r7, [r0, #0x24] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0x24] - ldr r7, [r0, #0x28] - str r5, [r7, #0x64] - adds r0, r7, #0 - bl sub_0805E7BC - ldr r0, [r6, #0x64] - str r5, [r0, #0x28] - movs r0, #2 - bl sub_08078A90 -_08041CBA: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08041CC0: .4byte 0x000001F5 -_08041CC4: .4byte 0x0000016B -_08041CC8: .4byte gUnk_03000BF0 -_08041CCC: .4byte gLinkEntity - - thumb_func_start sub_08041CD0 -sub_08041CD0: @ 0x08041CD0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08041D0C - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08041CF6 - subs r0, #1 - strb r0, [r4, #0xe] - b _08041D12 -_08041CF6: - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, _08041D08 @ =0x00001651 - bl sub_08056378 - b _08041D12 - .align 2, 0 -_08041D08: .4byte 0x00001651 -_08041D0C: - adds r0, r4, #0 - bl sub_080042B8 -_08041D12: - pop {r4, pc} - - thumb_func_start sub_08041D14 -sub_08041D14: @ 0x08041D14 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldr r0, _08041D3C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08041D7C - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08041D40 - subs r0, #1 - strb r0, [r4, #0xe] - b _08041D7C - .align 2, 0 -_08041D3C: .4byte gUnk_02000050 -_08041D40: - ldr r0, _08041D80 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _08041D7C - movs r0, #0xb6 - movs r1, #0 - movs r2, #0 - bl CreateObject - str r4, [r0, #0x50] - str r0, [r4, #0x54] - movs r0, #0xb6 - movs r1, #1 - movs r2, #0 - bl CreateObject - str r4, [r0, #0x50] - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x96 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x9a - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xe2 - lsls r0, r0, #1 - bl sub_080A3268 -_08041D7C: - pop {r4, r5, pc} - .align 2, 0 -_08041D80: .4byte gUnk_03003DBC - - thumb_func_start sub_08041D84 -sub_08041D84: @ 0x08041D84 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08041D9C - subs r0, #1 - strb r0, [r5, #0xe] - b _08041E18 -_08041D9C: - ldrb r1, [r5, #0xf] - adds r0, r1, #0 - cmp r0, #0xef - bhi _08041DEC - cmp r0, #0xb7 - bls _08041DD8 - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _08041DD8 - ldr r0, [r5, #0x64] - ldr r0, [r0, #8] - ldr r4, _08041DE8 @ =gUnk_080D0E80 - ldrb r1, [r5, #0xf] - subs r1, #0xb8 - asrs r1, r1, #3 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - bl sub_0801D2B4 - ldr r0, [r5, #0x54] - ldrb r1, [r5, #0xf] - subs r1, #0xb8 - asrs r1, r1, #3 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r1, [r1] - bl sub_0801D2B4 -_08041DD8: - ldrb r0, [r5, #0xf] - cmp r0, #0xe6 - bne _08041E0C - movs r0, #7 - movs r1, #4 - bl sub_08050054 - b _08041E0C - .align 2, 0 -_08041DE8: .4byte gUnk_080D0E80 -_08041DEC: - movs r0, #4 - strb r0, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #8 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r5, #0x18] - ldr r1, _08041E1C @ =0x00000173 - adds r0, r5, #0 - bl sub_0801D2B4 - adds r0, r5, #0 - movs r1, #0xb - bl sub_080042AC -_08041E0C: - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - adds r0, r5, #0 - bl sub_08041E78 -_08041E18: - pop {r4, r5, pc} - .align 2, 0 -_08041E1C: .4byte 0x00000173 - - thumb_func_start sub_08041E20 -sub_08041E20: @ 0x08041E20 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08041E78 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldr r0, _08041E4C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08041E48 - movs r0, #5 - strb r0, [r4, #0xd] - movs r0, #0x5a - strb r0, [r4, #0xe] -_08041E48: - pop {r4, pc} - .align 2, 0 -_08041E4C: .4byte gUnk_03000FD0 - - thumb_func_start sub_08041E50 -sub_08041E50: @ 0x08041E50 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08041E76 - movs r0, #0x51 - bl sub_0807CD04 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - str r5, [r0, #0x64] - bl sub_0805E7BC - bl sub_0805E780 -_08041E76: - pop {r4, r5, pc} - - thumb_func_start sub_08041E78 -sub_08041E78: @ 0x08041E78 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xf] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08041ECE - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08041ECE - ldrb r1, [r4, #0xf] - lsrs r1, r1, #3 - movs r0, #0xe - ands r1, r0 - ldr r0, _08041ED0 @ =gUnk_080D0E90 - 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] - 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] - movs r0, #4 - movs r1, #0 - bl sub_08080964 -_08041ECE: - pop {r4, pc} - .align 2, 0 -_08041ED0: .4byte gUnk_080D0E90 - - thumb_func_start sub_08041ED4 -sub_08041ED4: @ 0x08041ED4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08041F14 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x45 - bhi _08041F18 - movs r0, #0x2c - bl sub_0801D8E0 - adds r4, r0, #0 - cmp r4, #0 - beq _08041F18 - str r4, [r5, #0x64] - str r5, [r4] - movs r0, #0 - str r0, [r4, #0xc] - str r0, [r4, #0x14] - str r0, [r4, #0x18] - movs r0, #0x51 - movs r1, #1 - bl CreateEnemy - str r4, [r0, #0x64] - str r0, [r4, #4] - movs r0, #0x51 - movs r1, #2 - bl CreateEnemy - str r4, [r0, #0x64] - str r0, [r4, #8] - movs r0, #1 - b _08041F1A - .align 2, 0 -_08041F14: .4byte gUnk_03003DBC -_08041F18: - movs r0, #0 -_08041F1A: - pop {r4, r5, pc} - - thumb_func_start sub_08041F1C -sub_08041F1C: @ 0x08041F1C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08041F6C @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x43 - bhi _08041F70 - movs r0, #0x5f - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x64] - str r1, [r0, #0x1c] - movs r0, #0x5f - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x64] - str r1, [r0, #0x20] - movs r0, #0x5f - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x64] - str r1, [r0, #0x24] - movs r0, #0x5f - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r4, [r1, #0x50] - ldr r0, [r4, #0x64] - str r1, [r0, #0x28] - movs r0, #1 - b _08041F72 - .align 2, 0 -_08041F6C: .4byte gUnk_03003DBC -_08041F70: - movs r0, #0 -_08041F72: - pop {r4, pc} - - thumb_func_start sub_08041F74 -sub_08041F74: @ 0x08041F74 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, _08041F88 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bls _08041F8C - movs r0, #0 - b _08041FC8 - .align 2, 0 -_08041F88: .4byte gUnk_03003DBC -_08041F8C: - ldr r7, [r5, #0x64] - movs r4, #0 - ldr r0, _08041FC0 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - asrs r0, r6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08041FB6 - movs r0, #0x52 - movs r1, #0 - bl CreateEnemy - adds r4, r0, #0 - strb r6, [r4, #0xb] - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_08041FB6: - cmp r6, #0 - bne _08041FC4 - str r4, [r7, #0x14] - b _08041FC6 - .align 2, 0 -_08041FC0: .4byte gUnk_030010A0 -_08041FC4: - str r4, [r7, #0x18] -_08041FC6: - movs r0, #1 -_08041FC8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08041FCC -sub_08041FCC: @ 0x08041FCC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08041FFC @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x4c - bhi _08042000 - adds r0, r4, #0 - bl sub_08041ED4 - cmp r0, #0 - beq _08042000 - adds r0, r4, #0 - movs r1, #0 - bl sub_08041F74 - adds r0, r4, #0 - movs r1, #1 - bl sub_08041F74 - adds r0, r4, #0 - bl sub_08041F1C - movs r0, #1 - b _08042002 - .align 2, 0 -_08041FFC: .4byte gUnk_03003DBC -_08042000: - movs r0, #0 -_08042002: - pop {r4, pc} - - thumb_func_start sub_08042004 -sub_08042004: @ 0x08042004 - ldr r3, _08042024 @ =gUnk_080D0EA0 - adds r2, r0, #0 - adds r2, #0x78 - ldrb r1, [r2] - adds r1, #1 - strb r1, [r2] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x1c - movs r2, #7 - ands r1, r2 - adds r1, r1, r3 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - strh r1, [r0, #0x36] - bx lr - .align 2, 0 -_08042024: .4byte gUnk_080D0EA0 - - thumb_func_start sub_08042028 -sub_08042028: @ 0x08042028 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #3 - strb r5, [r4, #0xc] - bl sub_08000E50 - ldr r1, _0804204C @ =gUnk_080D0EA8 - ands r0, r5 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r4, #0xe] - movs r0, #0x40 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0804207C - strb r0, [r4, #0x15] - pop {r4, r5, pc} - .align 2, 0 -_0804204C: .4byte gUnk_080D0EA8 - - thumb_func_start sub_08042050 -sub_08042050: @ 0x08042050 - push {r4, lr} - adds r4, r0, #0 - movs r0, #8 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08042078 @ =gUnk_080D0EAC - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r4, #0xe] - movs r1, #0x20 - strh r1, [r4, #0x24] - lsrs r0, r0, #8 - movs r1, #0x10 - ands r0, r1 - adds r0, #8 - strb r0, [r4, #0x15] - pop {r4, pc} - .align 2, 0 -_08042078: .4byte gUnk_080D0EAC - - thumb_func_start sub_0804207C -sub_0804207C: @ 0x0804207C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r6, [r5, r0] - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r7, r0, #0 - subs r7, #0x10 - ldr r0, [r5, #0x64] - ldr r4, [r0, #0x14] - cmp r4, #0 - beq _080420B8 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bls _080420B8 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #0x30 - bl sub_0806FCB8 - cmp r0, #0 - beq _080420B8 - movs r2, #0x2e - ldrsh r0, [r4, r2] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r6, #0 - adds r3, r7, #0 - b _08042118 -_080420B8: - ldr r0, [r5, #0x64] - ldr r4, [r0, #0x18] - cmp r4, #0 - beq _080420E4 - ldrb r0, [r4, #0xc] - cmp r0, #4 - bls _080420E4 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - movs r3, #0x30 - bl sub_0806FCB8 - cmp r0, #0 - beq _080420E4 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r6, #0 - adds r3, r7, #0 - b _08042118 -_080420E4: - ldr r0, _080420FC @ =gLinkEntity - movs r4, #0x32 - ldrsh r1, [r0, r4] - adds r2, r0, #0 - cmp r1, #0x3f - bgt _08042104 - ldr r0, _08042100 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r3, r0, #0 - adds r3, #0x18 - b _0804210C - .align 2, 0 -_080420FC: .4byte gLinkEntity -_08042100: .4byte gUnk_03000BF0 -_08042104: - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r3, r0, #0 - subs r3, #0x28 -_0804210C: - movs r4, #0x2e - ldrsh r0, [r5, r4] - movs r4, #0x32 - ldrsh r1, [r5, r4] - movs r4, #0x2e - ldrsh r2, [r2, r4] -_08042118: - bl sub_080045D4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08042120 -sub_08042120: @ 0x08042120 - movs r2, #0 - movs r1, #5 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0804212C -sub_0804212C: @ 0x0804212C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - ldrh r0, [r1] - cmp r0, #0 - beq _0804213E - subs r0, #1 - b _080421A8 -_0804213E: - movs r5, #0 - movs r0, #0x32 - ldrsh r1, [r4, r0] - subs r1, #0x44 - ldr r3, _0804216C @ =gLinkEntity - movs r2, #0x32 - ldrsh r0, [r3, r2] - subs r0, r0, r1 - cmp r0, #0x60 - bhi _0804217A - movs r6, #0x2e - ldrsh r2, [r4, r6] - adds r0, r2, #0 - subs r0, #0x38 - movs r6, #0x2e - ldrsh r1, [r3, r6] - subs r0, r1, r0 - cmp r0, #0x38 - bhi _08042170 - ldr r0, [r4, #0x64] - ldr r5, [r0, #0x18] - b _0804217A - .align 2, 0 -_0804216C: .4byte gLinkEntity -_08042170: - subs r0, r1, r2 - cmp r0, #0x38 - bhi _0804217A - ldr r0, [r4, #0x64] - ldr r5, [r0, #0x14] -_0804217A: - cmp r5, #0 - beq _080421A2 - ldrb r0, [r5, #0xc] - cmp r0, #2 - bne _080421AA - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080421AA - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0xb4 - lsls r0, r0, #2 - b _080421A8 -_080421A2: - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0x3c -_080421A8: - strh r0, [r1] -_080421AA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080421AC -sub_080421AC: @ 0x080421AC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x7e - ldrh r0, [r5] - adds r7, r0, #0 - cmp r7, #0 - beq _080421C0 - subs r0, #1 - b _08042210 -_080421C0: - adds r6, r4, #0 - adds r6, #0x79 - ldrb r0, [r6] - cmp r0, #0 - bne _080421FE - bl sub_08000E50 - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _080421F4 - ldr r0, _080421F0 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r1, [r0] - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - beq _080421F4 - adds r0, r4, #0 - bl sub_08042264 - strb r5, [r6] - b _08042212 - .align 2, 0 -_080421F0: .4byte gUnk_030010A0 -_080421F4: - adds r1, r4, #0 - adds r1, #0x7e - movs r0, #0x1e - strh r0, [r1] - b _08042212 -_080421FE: - adds r0, r4, #0 - movs r1, #0 - bl sub_080422C0 - cmp r0, #0 - beq _08042212 - strb r7, [r6] - movs r0, #0xb4 - lsls r0, r0, #1 -_08042210: - strh r0, [r5] -_08042212: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08042214 -sub_08042214: @ 0x08042214 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x7e - ldrh r0, [r6] - adds r7, r0, #0 - cmp r7, #0 - beq _08042228 - subs r0, #1 - b _0804225E -_08042228: - adds r5, r4, #0 - adds r5, #0x79 - ldrb r0, [r5] - cmp r0, #0 - bne _0804224E - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0804224A - adds r0, r4, #0 - bl sub_0804228C - movs r0, #1 - strb r0, [r5] - b _08042260 -_0804224A: - movs r0, #0x1e - b _0804225E -_0804224E: - adds r0, r4, #0 - movs r1, #1 - bl sub_080422C0 - cmp r0, #0 - beq _08042260 - strb r7, [r5] - movs r0, #0xb4 -_0804225E: - strh r0, [r6] -_08042260: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08042264 -sub_08042264: @ 0x08042264 - push {r4, lr} - adds r4, r0, #0 - movs r1, #1 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r1, [r0, #4] - movs r0, #1 - strb r0, [r1, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0xd - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x13 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_0804228C -sub_0804228C: @ 0x0804228C - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r1, [r0, #4] - movs r0, #1 - strb r0, [r1, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0xd - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x13 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1d - bl sub_08004260 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080422C0 -sub_080422C0: @ 0x080422C0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - mov r8, r1 - bl sub_080042B8 - ldr r0, [r5, #0x64] - ldr r0, [r0, #8] - bl sub_08004274 - ldr r0, [r5, #0x64] - ldr r7, [r0, #4] - adds r0, r7, #0 - bl sub_08004274 - mov r0, r8 - adds r0, #1 - adds r6, r7, #0 - adds r6, #0x5a - ldrb r4, [r6] - cmp r0, r4 - bne _08042306 - movs r0, #0x21 - bl sub_080A7EE0 - cmp r0, #0 - beq _08042354 - mov r1, r8 - strb r1, [r0, #0xa] - str r5, [r0, #0x50] - ldrb r0, [r6] - bics r0, r4 - strb r0, [r6] - b _08042354 -_08042306: - cmp r4, #4 - bne _0804231A - movs r0, #0xfb - ands r4, r0 - strb r4, [r6] - adds r0, r5, #0 - movs r1, #3 - bl sub_080042AC - b _08042354 -_0804231A: - movs r0, #0x80 - ands r4, r0 - cmp r4, #0 - beq _08042354 - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - movs r0, #0 - strb r0, [r7, #0xd] - adds r0, r7, #0 - movs r1, #0xc - bl sub_08004260 - ldr r0, [r5, #0x64] - ldr r0, [r0, #8] - movs r1, #0x12 - bl sub_08004260 - mov r0, r8 - cmp r0, #1 - bne _08042350 - ldr r0, [r5, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1b - bl sub_08004260 -_08042350: - movs r0, #1 - b _08042356 -_08042354: - movs r0, #0 -_08042356: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804235C -sub_0804235C: @ 0x0804235C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x79 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x7e - movs r5, #0 - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - strb r5, [r0, #0xd] - movs r1, #0xc - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x12 - bl sub_08004260 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x1b - bl sub_08004260 - pop {r4, r5, pc} - - thumb_func_start sub_080423A4 -sub_080423A4: @ 0x080423A4 - push {r4, lr} - ldr r0, _080423CC @ =gUnk_030010A0 - adds r4, r0, #0 - adds r4, #0x38 - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0804241C - ldr r0, _080423D0 @ =gUnk_02002A40 - movs r2, #0x93 - lsls r2, r2, #3 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, #0 - beq _080423D4 - subs r0, #1 - str r0, [r1] - b _0804241C - .align 2, 0 -_080423CC: .4byte gUnk_030010A0 -_080423D0: .4byte gUnk_02002A40 -_080423D4: - ldr r2, _08042420 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0xa9 - ldrb r0, [r0] - cmp r0, #1 - bgt _0804241C - cmp r0, #0 - blt _0804241C - ldr r0, [r2, #0x2c] - cmp r0, #0 - bne _0804241C - ldr r1, _08042424 @ =gLinkEntity - adds r0, r1, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - bne _0804241C - movs r3, #0x36 - ldrsh r0, [r1, r3] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0804240A - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _0804241C -_0804240A: - movs r0, #0xb7 - lsls r0, r0, #4 - movs r1, #0 - bl sub_08078AA8 - ldrb r0, [r4] - movs r1, #2 - orrs r0, r1 - strb r0, [r4] -_0804241C: - pop {r4, pc} - .align 2, 0 -_08042420: .4byte gUnk_03003F80 -_08042424: .4byte gLinkEntity - - thumb_func_start sub_08042428 -sub_08042428: @ 0x08042428 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - bne _0804243C - str r0, [r4, #0x64] - bl sub_0805E780 -_0804243C: - ldrb r1, [r4, #0xc] - cmp r1, #0 - bne _08042450 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 -_08042450: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0804245C - adds r0, r4, #0 - bl sub_08004274 -_0804245C: - ldr r0, [r4, #0x58] - ldr r1, _0804249C @ =0x008000FF - ands r0, r1 - subs r1, #0xf3 - cmp r0, r1 - bne _08042480 - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 - bl sub_08000E50 - movs r1, #0x78 - ands r0, r1 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] -_08042480: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl sub_0806FA90 - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_0804249C: .4byte 0x008000FF - - thumb_func_start sub_080424A0 -sub_080424A0: @ 0x080424A0 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080424B4 - str r0, [r4, #0x64] - bl sub_0805E780 -_080424B4: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080424C6 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08004260 -_080424C6: - ldr r0, [r4, #0x64] - ldr r0, [r0] - movs r3, #1 - rsbs r3, r3, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x12 - bne _08042502 - ldr r1, _08042504 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - ldr r1, _08042508 @ =gUnk_080D0EB0 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r4, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] -_08042502: - pop {r4, pc} - .align 2, 0 -_08042504: .4byte gLinkEntity -_08042508: .4byte gUnk_080D0EB0 - - thumb_func_start sub_0804250C -sub_0804250C: @ 0x0804250C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08042520 - str r0, [r4, #0x64] - bl sub_0805E780 -_08042520: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08042532 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x1c - bl sub_08004260 -_08042532: - ldr r0, [r4, #0x64] - ldr r0, [r0] - movs r3, #1 - rsbs r3, r3, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA90 - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08042554 -sub_08042554: @ 0x08042554 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0804256C @ =gUnk_080D1230 - 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 -_0804256C: .4byte gUnk_080D1230 - - thumb_func_start sub_08042570 -sub_08042570: @ 0x08042570 - push {lr} - ldr r2, _08042584 @ =gUnk_080D1248 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08042584: .4byte gUnk_080D1248 - - thumb_func_start sub_08042588 -sub_08042588: @ 0x08042588 - push {lr} - ldr r1, _08042594 @ =gUnk_080D1230 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08042594: .4byte gUnk_080D1230 - - thumb_func_start nullsub_170 -nullsub_170: @ 0x08042598 - bx lr - .align 2, 0 - - thumb_func_start sub_0804259C -sub_0804259C: @ 0x0804259C - push {lr} - ldr r2, _080425B0 @ =gUnk_080D125C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080425B0: .4byte gUnk_080D125C - - thumb_func_start sub_080425B4 -sub_080425B4: @ 0x080425B4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080437DC - cmp r0, #0 - beq _0804264C - adds r0, r4, #0 - adds r0, #0x7c - movs r1, #0 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - ldr r5, _08042614 @ =gUnk_030010A0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - movs r6, #1 - adds r1, r6, #0 - ands r1, r0 - cmp r1, #0 - beq _08042634 - adds r0, r5, #0 - adds r0, #0x3c - ldrb r0, [r0] - ldrb r1, [r4, #0xb] - cmp r0, r1 - bne _08042620 - adds r0, r4, #0 - bl sub_08043EB8 - adds r0, r4, #0 - bl sub_08043ABC - adds r0, r5, #0 - adds r0, #0x39 - ldrb r1, [r0] - ldrb r0, [r4, #0xb] - adds r0, #2 - asrs r1, r0 - ands r1, r6 - cmp r1, #0 - beq _08042618 - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xd] - b _0804264C - .align 2, 0 -_08042614: .4byte gUnk_030010A0 -_08042618: - movs r0, #8 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0804264C -_08042620: - adds r0, r4, #0 - bl sub_08044000 - adds r0, r4, #0 - bl sub_08043BC8 - adds r0, r4, #0 - bl sub_08043A10 - b _0804264C -_08042634: - strb r6, [r4, #0xc] - strb r1, [r4, #0xd] - ldr r2, [r4, #0x64] - ldr r1, _08042650 @ =gUnk_080D1280 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x20] - adds r0, r4, #0 - bl sub_08042654 -_0804264C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08042650: .4byte gUnk_080D1280 - - thumb_func_start sub_08042654 -sub_08042654: @ 0x08042654 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xb] - lsls r3, r0, #2 - ldr r0, [r6, #0x64] - adds r2, r0, #0 - adds r2, #0x18 - ldrb r0, [r6, #0xd] - cmp r0, #4 - bls _0804266A - b _080427FC -_0804266A: - lsls r0, r0, #2 - ldr r1, _08042674 @ =_08042678 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08042674: .4byte _08042678 -_08042678: @ jump table - .4byte _0804268C @ case 0 - .4byte _080426B0 @ case 1 - .4byte _080426E0 @ case 2 - .4byte _08042710 @ case 3 - .4byte _08042740 @ case 4 -_0804268C: - movs r0, #1 - strb r0, [r6, #0xd] - ldr r1, _080426A8 @ =gUnk_080D1284 - ldrb r0, [r6, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2, #1] - ldr r1, _080426AC @ =gUnk_080D1286 - ldrb r0, [r6, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - b _080427EE - .align 2, 0 -_080426A8: .4byte gUnk_080D1284 -_080426AC: .4byte gUnk_080D1286 -_080426B0: - ldrh r0, [r2, #8] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, [r6, #0x64] - adds r1, #0x34 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xb - bhi _080426CC - b _0804280E -_080426CC: - movs r0, #2 - strb r0, [r6, #0xd] - ldr r1, _080426DC @ =gUnk_080D1286 - adds r0, r3, #1 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - b _080427EE - .align 2, 0 -_080426DC: .4byte gUnk_080D1286 -_080426E0: - ldrh r0, [r2, #8] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, [r6, #0x64] - adds r1, #0x44 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xd - bhi _080426FC - b _0804280E -_080426FC: - movs r0, #3 - strb r0, [r6, #0xd] - ldr r1, _0804270C @ =gUnk_080D1286 - adds r0, r3, #2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - b _080427EE - .align 2, 0 -_0804270C: .4byte gUnk_080D1286 -_08042710: - ldrh r0, [r2, #8] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, [r6, #0x64] - adds r1, #0x54 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _0804280E - movs r0, #4 - strb r0, [r6, #0xd] - ldr r1, _0804273C @ =gUnk_080D1286 - adds r0, r3, #3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r6, #0 - b _080427EE - .align 2, 0 -_0804273C: .4byte gUnk_080D1286 -_08042740: - ldrh r0, [r2, #8] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - ldr r1, [r6, #0x64] - adds r1, #0x64 - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1b - bls _0804280E - movs r0, #5 - strb r0, [r6, #0xd] - movs r0, #0x5a - strb r0, [r6, #0xe] - ldr r0, [r6, #0x64] - ldr r1, [r0] - ldrb r0, [r1, #0x10] - movs r5, #0x80 - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r1, [r0] - adds r1, #0x29 - ldrb r2, [r1] - movs r3, #8 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r2 - movs r4, #4 - orrs r0, r4 - strb r0, [r1] - ldr r0, [r6, #0x64] - ldr r1, [r0, #4] - ldrb r0, [r1, #0x10] - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r1, [r0, #4] - adds r1, #0x29 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - ldr r0, [r6, #0x64] - ldr r1, [r0, #8] - ldrb r0, [r1, #0x10] - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r1, [r0, #8] - adds r1, #0x29 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - ldr r0, [r6, #0x64] - ldr r1, [r0, #0xc] - ldrb r0, [r1, #0x10] - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r1, [r0, #0xc] - adds r1, #0x29 - ldrb r2, [r1] - adds r0, r3, #0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - ldr r0, [r6, #0x64] - ldr r1, [r0, #0x10] - ldrb r0, [r1, #0x10] - orrs r0, r5 - strb r0, [r1, #0x10] - ldr r0, [r6, #0x64] - ldr r0, [r0, #0x10] - adds r0, #0x29 - ldrb r1, [r0] - ands r3, r1 - orrs r3, r4 - strb r3, [r0] - adds r0, r6, #0 - movs r1, #7 -_080427EE: - bl sub_080042AC - movs r0, #0xaf - lsls r0, r0, #1 - bl sub_080A3268 - b _0804280E -_080427FC: - ldrb r0, [r6, #0xe] - subs r0, #1 - strb r0, [r6, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804280E - adds r0, r6, #0 - bl sub_08043BC8 -_0804280E: - adds r0, r6, #0 - bl sub_08043A10 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08042818 -sub_08042818: @ 0x08042818 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043CD4 - ldr r0, [r4, #0x64] - adds r2, r0, #0 - adds r2, #0x18 - ldrh r1, [r2, #8] - ldrh r3, [r0, #0x18] - adds r1, r1, r3 - strh r1, [r0, #0x18] - ldrb r0, [r2, #0xd] - subs r0, #1 - strb r0, [r2, #0xd] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042848 - movs r0, #0x78 - strb r0, [r2, #0xd] - movs r3, #8 - ldrsh r0, [r2, r3] - rsbs r0, r0, #0 - strh r0, [r2, #8] -_08042848: - ldrh r0, [r2, #0xa] - ldrh r3, [r2, #4] - adds r0, r0, r3 - strh r0, [r2, #4] - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - ands r0, r1 - cmp r0, #0 - bne _08042868 - movs r0, #0x50 - strb r0, [r2, #0xe] - movs r1, #0xa - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - strh r0, [r2, #0xa] -_08042868: - adds r0, r4, #0 - bl sub_08043A10 - pop {r4, pc} - - thumb_func_start sub_08042870 -sub_08042870: @ 0x08042870 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043CD4 - ldr r1, _08042890 @ =gUnk_080D1290 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08043A10 - pop {r4, pc} - .align 2, 0 -_08042890: .4byte gUnk_080D1290 - - thumb_func_start sub_08042894 -sub_08042894: @ 0x08042894 - movs r1, #1 - strb r1, [r0, #0xd] - ldr r2, [r0, #0x64] - ldr r1, _080428A8 @ =gUnk_080D12AC - ldrb r0, [r0, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x20] - bx lr - .align 2, 0 -_080428A8: .4byte gUnk_080D12AC - - thumb_func_start sub_080428AC -sub_080428AC: @ 0x080428AC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - adds r3, r0, #0 - adds r3, #0x18 - ldrb r0, [r3, #5] - cmp r0, #0x40 - beq _080428CC - cmp r0, #0x40 - bls _080428C6 - ldrh r0, [r3, #4] - subs r0, #0x80 - b _080428CA -_080428C6: - ldrh r0, [r3, #4] - adds r0, #0x80 -_080428CA: - strh r0, [r3, #4] -_080428CC: - ldrb r1, [r3, #1] - ldr r2, _080428E8 @ =gUnk_080D12B0 - ldrb r0, [r4, #0xb] - adds r0, r0, r2 - ldrb r0, [r0] - subs r1, r1, r0 - adds r1, #1 - cmp r1, #2 - bls _080428EC - ldrh r0, [r3, #8] - ldrh r1, [r3] - adds r0, r0, r1 - strh r0, [r3] - b _080428F4 - .align 2, 0 -_080428E8: .4byte gUnk_080D12B0 -_080428EC: - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] -_080428F4: - adds r0, r4, #0 - bl sub_08043BF0 - pop {r4, pc} - - thumb_func_start sub_080428FC -sub_080428FC: @ 0x080428FC - 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 _0804293C - movs r0, #3 - strb r0, [r4, #0xd] - ldr r1, [r4, #0x64] - adds r1, #0x18 - movs r0, #8 - ldrsh r2, [r1, r0] - lsls r0, r2, #1 - adds r0, r0, r2 - rsbs r0, r0, #0 - strh r0, [r1, #8] - ldr r0, _08042940 @ =0x00000153 - bl sub_080A3268 - movs r2, #0 - movs r3, #0x3b -_0804292A: - ldr r0, [r4, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r3, [r0] - adds r2, #1 - cmp r2, #4 - bls _0804292A -_0804293C: - pop {r4, pc} - .align 2, 0 -_08042940: .4byte 0x00000153 - - thumb_func_start sub_08042944 -sub_08042944: @ 0x08042944 - push {lr} - adds r3, r0, #0 - ldr r2, [r3, #0x64] - adds r1, r2, #0 - adds r1, #0x18 - ldrb r0, [r1, #1] - subs r0, #0x7c - cmp r0, #8 - bls _08042960 - ldrh r0, [r1, #8] - ldrh r1, [r2, #0x18] - adds r0, r0, r1 - strh r0, [r2, #0x18] - b _08042968 -_08042960: - movs r0, #4 - strb r0, [r3, #0xd] - ldrh r0, [r1, #8] - strh r0, [r3, #0x24] -_08042968: - adds r0, r3, #0 - bl sub_08043BF0 - pop {pc} - - thumb_func_start sub_08042970 -sub_08042970: @ 0x08042970 - push {r4, r5, lr} - adds r3, r0, #0 - ldr r4, [r3, #0x64] - adds r2, r4, #0 - adds r2, #0x18 - ldrb r0, [r2, #1] - ldr r1, _080429A4 @ =gUnk_080D12B2 - ldrb r5, [r3, #0xb] - adds r1, r5, r1 - ldrb r1, [r1] - subs r0, r0, r1 - adds r0, #2 - cmp r0, #4 - bls _080429AC - ldr r0, _080429A8 @ =gUnk_080D12B4 - adds r0, r5, r0 - movs r1, #0 - ldrsb r1, [r0, r1] - ldrh r0, [r2, #8] - adds r1, r1, r0 - strh r1, [r2, #8] - ldrh r0, [r4, #0x18] - adds r0, r0, r1 - strh r0, [r4, #0x18] - b _080429CA - .align 2, 0 -_080429A4: .4byte gUnk_080D12B2 -_080429A8: .4byte gUnk_080D12B4 -_080429AC: - movs r0, #5 - strb r0, [r3, #0xd] - movs r0, #0x3c - strb r0, [r3, #0xe] - movs r2, #0 - movs r4, #0x39 -_080429B8: - ldr r0, [r3, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r4, [r0] - adds r2, #1 - cmp r2, #4 - bls _080429B8 -_080429CA: - adds r0, r3, #0 - bl sub_08043BF0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080429D4 -sub_080429D4: @ 0x080429D4 - push {r4, lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080429FA - movs r0, #6 - strb r0, [r1, #0xd] - ldr r4, [r1, #0x64] - adds r4, #0x18 - movs r2, #0x24 - ldrsh r0, [r1, r2] - rsbs r0, r0, #0 - movs r1, #6 - bl __divsi3 - strh r0, [r4, #8] -_080429FA: - pop {r4, pc} - - thumb_func_start sub_080429FC -sub_080429FC: @ 0x080429FC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x64] - adds r5, r3, #0 - adds r5, #0x18 - ldrb r1, [r5, #1] - ldr r2, _08042A28 @ =gUnk_080D12B6 - ldrb r0, [r4, #0xb] - adds r0, r0, r2 - ldrb r0, [r0] - subs r1, r1, r0 - adds r1, #1 - cmp r1, #2 - bls _08042A2C - ldrh r0, [r5, #8] - ldrh r1, [r3, #0x18] - adds r0, r0, r1 - strh r0, [r3, #0x18] - adds r0, r4, #0 - bl sub_08043BF0 - b _08042A3A - .align 2, 0 -_08042A28: .4byte gUnk_080D12B6 -_08042A2C: - adds r0, r4, #0 - bl sub_08043BC8 - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC -_08042A3A: - pop {r4, r5, pc} - - thumb_func_start sub_08042A3C -sub_08042A3C: @ 0x08042A3C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08042A68 @ =gUnk_080D12B8 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08043A10 - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - adds r4, #0x78 - ldrh r0, [r1, #0x36] - ldrb r4, [r4] - adds r0, r0, r4 - strh r0, [r1, #0x36] - pop {r4, pc} - .align 2, 0 -_08042A68: .4byte gUnk_080D12B8 - - thumb_func_start sub_08042A6C -sub_08042A6C: @ 0x08042A6C - adds r3, r0, #0 - movs r2, #0 - movs r1, #1 - strb r1, [r3, #0xd] - adds r0, #0x78 - strb r2, [r0] - adds r0, #6 - strb r1, [r0] - ldr r1, [r3, #0x64] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #0x22] - bx lr - .align 2, 0 - - thumb_func_start sub_08042A88 -sub_08042A88: @ 0x08042A88 - push {r4, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x64] - adds r2, r3, #0 - adds r2, #0x18 - ldr r1, _08042AA8 @ =gUnk_080D12C8 - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, #1] - cmp r1, r0 - beq _08042ABC - cmp r1, r0 - bhs _08042AB0 - ldr r1, _08042AAC @ =0xFFFFFF00 - b _08042AB4 - .align 2, 0 -_08042AA8: .4byte gUnk_080D12C8 -_08042AAC: .4byte 0xFFFFFF00 -_08042AB0: - movs r1, #0x80 - lsls r1, r1, #1 -_08042AB4: - adds r0, r1, #0 - ldrh r1, [r3, #0x18] - adds r0, r0, r1 - strh r0, [r3, #0x18] -_08042ABC: - movs r1, #0xa - ldrsh r0, [r2, r1] - ldrh r1, [r2, #4] - cmp r0, r1 - bge _08042ACE - ldrh r0, [r2, #0xa] - subs r0, r1, r0 - strh r0, [r2, #4] - b _08042AE6 -_08042ACE: - movs r0, #0 - strh r0, [r2, #4] - ldr r1, _08042AE8 @ =gUnk_080D12CA - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #8] - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] -_08042AE6: - pop {r4, pc} - .align 2, 0 -_08042AE8: .4byte gUnk_080D12CA - - thumb_func_start sub_08042AEC -sub_08042AEC: @ 0x08042AEC - 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 _08042B1C - movs r0, #3 - strb r0, [r5, #0xd] - movs r0, #4 - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x3f - movs r4, #0x3d - strb r4, [r0] - adds r0, r5, #0 - movs r1, #0xe - bl sub_080042AC - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - adds r0, #0x3f - strb r4, [r0] -_08042B1C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08042B20 -sub_08042B20: @ 0x08042B20 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - adds r1, r0, #0 - adds r1, #0x18 - ldrb r0, [r1, #5] - cmp r0, #0x7a - bhi _08042B3E - movs r2, #0xa0 - lsls r2, r2, #3 - adds r0, r2, #0 - ldrh r2, [r1, #4] - adds r0, r0, r2 - strh r0, [r1, #4] - b _08042B42 -_08042B3E: - movs r0, #0x80 - strb r0, [r1, #5] -_08042B42: - ldrb r0, [r1, #5] - cmp r0, #0x30 - bls _08042B50 - ldrh r0, [r1, #8] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] -_08042B50: - ldr r0, [r5, #0x64] - ldr r0, [r0, #0xc] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08042BE0 - adds r0, r5, #0 - bl sub_08043C40 - movs r6, #0 - movs r7, #0xa - rsbs r7, r7, #0 -_08042B68: - ldr r0, [r5, #0x64] - lsls r1, r6, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, r7 - blt _08042BD4 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08042BD4 - cmp r6, #0 - bne _08042BBA - movs r0, #0xaf - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08042B9C - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x10] - str r0, [r1, #0x50] -_08042B9C: - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x10] - str r1, [r0, #0x68] - movs r0, #0xaf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08042BBA - ldr r0, [r5, #0x64] - ldr r0, [r0, #0x10] - bl sub_0806FA24 -_08042BBA: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, _08042BDC @ =0x00000161 - bl sub_080A3268 -_08042BD4: - adds r6, #1 - cmp r6, #3 - bls _08042B68 - b _08042C12 - .align 2, 0 -_08042BDC: .4byte 0x00000161 -_08042BE0: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r1, [r0] - adds r1, #2 - strb r1, [r0] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08042C12 - movs r0, #5 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - movs r0, #0x1e - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x3f - movs r1, #0x39 - strb r1, [r0] - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - adds r0, #0x3f - strb r1, [r0] -_08042C12: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08042C14 -sub_08042C14: @ 0x08042C14 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08042C30 @ =gUnk_080D12D0 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08043A78 - pop {r4, pc} - .align 2, 0 -_08042C30: .4byte gUnk_080D12D0 - - thumb_func_start sub_08042C34 -sub_08042C34: @ 0x08042C34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - adds r7, r0, #0 - ldrb r0, [r7, #0xe] - subs r0, #1 - strb r0, [r7, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042D0C - movs r0, #0x3c - strb r0, [r7, #0xe] - movs r0, #3 - strb r0, [r7, #0xf] - movs r0, #1 - strb r0, [r7, #0xd] - bl sub_08000E50 - movs r1, #6 - ands r1, r0 - ldr r0, _08042D14 @ =gUnk_080D12F8 - adds r1, r1, r0 - ldr r3, _08042D18 @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r3, r0] - movs r0, #0 - ldrsb r0, [r1, r0] - adds r6, r2, r0 - movs r0, #0x32 - ldrsh r2, [r3, r0] - movs r0, #1 - ldrsb r0, [r1, r0] - adds r5, r2, r0 - ldr r3, _08042D1C @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - adds r0, r2, #0 - adds r0, #0x20 - cmp r0, r6 - ble _08042C86 - adds r6, r0, #0 -_08042C86: - ldrh r0, [r3, #0x1e] - adds r0, r2, r0 - subs r0, #0x20 - cmp r0, r6 - bge _08042C92 - adds r6, r0, #0 -_08042C92: - ldrh r1, [r3, #8] - adds r0, r1, #0 - adds r0, #0x20 - cmp r0, r5 - ble _08042C9E - adds r5, r0, #0 -_08042C9E: - ldrh r0, [r3, #0x20] - adds r0, r1, r0 - subs r0, #0x40 - cmp r0, r5 - bge _08042CAA - adds r5, r0, #0 -_08042CAA: - subs r0, r6, r2 - subs r0, #0x90 - cmp r0, #0x40 - bhi _08042CC2 - subs r0, r5, r1 - subs r0, #8 - cmp r0, #0x40 - bhi _08042CC2 - adds r6, r2, #0 - adds r6, #0xb0 - adds r5, r1, #0 - adds r5, #0x40 -_08042CC2: - movs r4, #0 - mov r8, r4 - movs r3, #0x18 -_08042CC8: - ldr r0, [r7, #0x64] - lsls r1, r4, #2 - adds r0, r0, r1 - ldr r2, [r0] - strh r6, [r2, #0x2e] - strh r5, [r2, #0x32] - movs r0, #0x32 - strh r0, [r2, #0x36] - adds r1, r2, #0 - adds r1, #0x3f - movs r0, #0x39 - strb r0, [r1] - ldr r1, [r7, #0x64] - adds r1, r1, r3 - movs r0, #0x80 - strh r0, [r1] - mov r0, r8 - strh r0, [r1, #4] - ldr r0, _08042D20 @ =gUnk_080D1419 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1, #0xc] - cmp r4, #0 - beq _08042D04 - adds r0, r2, #0 - movs r1, #0x12 - str r3, [sp] - bl sub_08004260 - ldr r3, [sp] -_08042D04: - adds r3, #0x10 - adds r4, #1 - cmp r4, #3 - bls _08042CC8 -_08042D0C: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08042D14: .4byte gUnk_080D12F8 -_08042D18: .4byte gLinkEntity -_08042D1C: .4byte gUnk_03000BF0 -_08042D20: .4byte gUnk_080D1419 - - thumb_func_start sub_08042D24 -sub_08042D24: @ 0x08042D24 - 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 _08042D68 - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x3f - movs r1, #0x3d - strb r1, [r0] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - adds r0, #0x3f - strb r1, [r0] - movs r0, #0xaf - movs r1, #1 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08042D5E - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - str r0, [r1, #0x50] -_08042D5E: - str r1, [r4, #0x68] - adds r0, r4, #0 - movs r1, #0xd - bl sub_080042AC -_08042D68: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08042D6C -sub_08042D6C: @ 0x08042D6C - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r6, #0 -_08042D72: - ldr r0, [r5, #0x64] - lsls r1, r6, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #3 - bgt _08042DC4 - cmp r6, #2 - beq _08042D8E - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08042D8E: - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _08042DB4 - movs r0, #0xaf - movs r1, #2 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _08042DB4 - adds r0, r4, #0 - bl sub_0806FA24 - movs r0, #0xb3 - lsls r0, r0, #1 - bl sub_080A3268 -_08042DB4: - ldrb r0, [r4, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r1, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_08042DC4: - adds r6, #1 - cmp r6, #3 - bls _08042D72 - ldr r0, [r5, #0x64] - ldr r4, [r0, #0xc] - ldrh r2, [r4, #0x36] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #3 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _08042E28 - ldr r0, _08042E20 @ =0x0000FFFB - strh r0, [r4, #0x36] - ldr r2, [r5, #0x64] - ldr r1, _08042E24 @ =gUnk_080D1300 - ldrb r0, [r5, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x20] - ldr r1, [r5, #0x64] - movs r0, #0xc0 - strh r0, [r1, #0x22] - movs r0, #3 - strb r0, [r5, #0xd] - movs r0, #0x1e - strb r0, [r5, #0xe] - adds r0, r5, #0 - adds r0, #0x3f - movs r4, #0x39 - strb r4, [r0] - adds r1, r5, #0 - adds r1, #0x7f - movs r0, #0x2d - strb r0, [r1] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - adds r0, #0x3f - strb r4, [r0] - b _08042E2C - .align 2, 0 -_08042E20: .4byte 0x0000FFFB -_08042E24: .4byte gUnk_080D1300 -_08042E28: - subs r0, r2, #2 - strh r0, [r4, #0x36] -_08042E2C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08042E30 -sub_08042E30: @ 0x08042E30 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r1, r6, #0 - adds r1, #0x7f - ldrb r0, [r1] - cmp r0, #0 - bne _08042E4A - adds r0, r6, #0 - bl sub_08043C98 - cmp r0, #0 - bne _08042EF0 - b _08042E4E -_08042E4A: - subs r0, #1 - strb r0, [r1] -_08042E4E: - ldr r7, [r6, #0x64] - adds r5, r7, #0 - adds r5, #0x18 - ldrb r0, [r6, #0xe] - subs r0, #1 - strb r0, [r6, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042EB2 - movs r0, #4 - strb r0, [r6, #0xd] - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x28 - strb r0, [r6, #0xe] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r6, #0x24] - ldrb r0, [r5, #1] - lsrs r0, r0, #3 - strb r0, [r6, #0x15] - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x32 - ldrsh r1, [r6, r2] - ldr r3, _08042ED4 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - movs r4, #0x88 - lsls r4, r4, #1 - adds r2, r2, r4 - ldrh r3, [r3, #8] - adds r3, #0x60 - bl sub_080045D4 - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08042ED8 @ =gUnk_080D1304 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - adds r0, r0, r4 - movs r1, #0x1f - ands r0, r1 - adds r1, r6, #0 - adds r1, #0x79 - strb r0, [r1] -_08042EB2: - ldrh r0, [r5, #8] - ldrh r1, [r7, #0x18] - adds r0, r0, r1 - strh r0, [r7, #0x18] - ldrh r0, [r5, #0xa] - ldrh r2, [r5, #4] - adds r1, r0, r2 - strh r1, [r5, #4] - lsls r0, r0, #0x10 - cmp r0, #0 - ble _08042EDC - ldrb r0, [r5, #5] - cmp r0, #0x18 - bls _08042EEA - movs r4, #0xa - ldrsh r0, [r5, r4] - b _08042EE6 - .align 2, 0 -_08042ED4: .4byte gUnk_03000BF0 -_08042ED8: .4byte gUnk_080D1304 -_08042EDC: - ldrb r0, [r5, #5] - cmp r0, #3 - bhi _08042EEA - movs r1, #0xa - ldrsh r0, [r5, r1] -_08042EE6: - rsbs r0, r0, #0 - strh r0, [r5, #0xa] -_08042EEA: - adds r0, r6, #0 - bl sub_080042B8 -_08042EF0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08042EF4 -sub_08042EF4: @ 0x08042EF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08043C98 - cmp r0, #0 - bne _08042FCE - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08042F4E - ldr r0, _08042F38 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x50 - bl sub_0806FCB8 - cmp r0, #0 - beq _08042F3C - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x28 - strb r0, [r4, #0xe] - b _08042F4E - .align 2, 0 -_08042F38: .4byte gLinkEntity -_08042F3C: - movs r0, #5 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xf - bl sub_080042AC - ldr r0, _08042FD4 @ =0x0000019B - bl sub_080A3268 -_08042F4E: - ldr r0, [r4, #0x64] - adds r7, r0, #0 - adds r7, #0x18 - ldrb r0, [r7, #5] - cmp r0, #0x1f - bhi _08042F66 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r7, #4] - adds r0, r0, r2 - strh r0, [r7, #4] -_08042F66: - ldr r0, [r4, #0x50] - movs r1, #0x2e - ldrsh r3, [r0, r1] - mov r8, r3 - movs r2, #0x32 - ldrsh r0, [r0, r2] - adds r6, r0, #0 - subs r6, #0x10 - adds r0, r4, #0 - mov r1, r8 - adds r2, r6, #0 - movs r3, #0x30 - bl sub_0806FCB8 - adds r5, r4, #0 - adds r5, #0x79 - cmp r0, #0 - beq _08042FAC - movs r3, #0x2e - ldrsh r0, [r4, r3] - movs r2, #0x32 - ldrsh r1, [r4, r2] - mov r2, r8 - adds r3, r6, #0 - bl sub_080045D4 - adds r1, r0, #0 - ldrb r0, [r5] - subs r0, r0, r1 - adds r0, #4 - cmp r0, #8 - bhi _08042FAC - movs r0, #0x10 - eors r1, r0 - strb r1, [r5] -_08042FAC: - ldrb r0, [r5] - ldrb r3, [r4, #0x15] - cmp r0, r3 - beq _08042FC2 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004596 - ldrb r0, [r4, #0x15] - lsls r0, r0, #3 - strb r0, [r7, #1] -_08042FC2: - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - ldrb r1, [r4, #0x15] - strb r1, [r0, #0x15] - bl sub_080AEF88 -_08042FCE: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08042FD4: .4byte 0x0000019B - - thumb_func_start sub_08042FD8 -sub_08042FD8: @ 0x08042FD8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_080042B8 - adds r0, r5, #0 - bl sub_08043C98 - cmp r0, #0 - bne _08043046 - adds r6, r5, #0 - adds r6, #0x5a - ldrb r1, [r6] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08043018 - movs r0, #0x20 - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r4, #0 - beq _08043046 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x36] - subs r0, #0x18 - movs r1, #0 - strh r0, [r4, #0x36] - strb r1, [r6] - b _08043046 -_08043018: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08043046 - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08043036 - movs r0, #8 - strb r0, [r5, #0xd] - movs r0, #0x3c - strb r0, [r5, #0xe] - b _08043046 -_08043036: - movs r0, #3 - strb r0, [r5, #0xd] - movs r0, #0x3c - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_08043046: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08043048 -sub_08043048: @ 0x08043048 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043C98 - cmp r0, #0 - bne _080430CC - ldr r2, [r4, #0x64] - adds r1, r2, #0 - adds r1, #0x18 - ldrb r0, [r1, #5] - cmp r0, #0x4f - bhi _08043094 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r1, #4] - adds r0, r0, r3 - strh r0, [r1, #4] - ldrb r0, [r1, #5] - cmp r0, #0x4f - bls _080430C6 - movs r2, #0 - movs r3, #0x3b -_08043076: - ldr r0, [r4, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r3, [r0] - adds r2, #1 - cmp r2, #4 - bls _08043076 - ldr r0, _08043090 @ =0x00000153 - bl sub_080A3268 - b _080430C6 - .align 2, 0 -_08043090: .4byte 0x00000153 -_08043094: - movs r3, #8 - ldrsh r0, [r1, r3] - lsls r0, r0, #3 - ldrh r1, [r2, #0x18] - adds r0, r0, r1 - strh r0, [r2, #0x18] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080430C6 - movs r0, #7 - strb r0, [r4, #0xd] - movs r2, #0 - movs r3, #0x39 -_080430B4: - ldr r0, [r4, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r3, [r0] - adds r2, #1 - cmp r2, #4 - bls _080430B4 -_080430C6: - adds r0, r4, #0 - bl sub_08043B9C -_080430CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080430D0 -sub_080430D0: @ 0x080430D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043C98 - cmp r0, #0 - bne _08043128 - ldr r1, [r4, #0x64] - adds r2, r1, #0 - adds r2, #0x18 - ldrh r0, [r2, #8] - ldrh r3, [r1, #0x18] - adds r0, r0, r3 - strh r0, [r1, #0x18] - ldr r1, _08043110 @ =0xFFFFFF00 - adds r0, r1, #0 - ldrh r3, [r2, #4] - adds r0, r0, r3 - strh r0, [r2, #4] - ldrb r0, [r2, #5] - cmp r0, #0x17 - bhi _08043128 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08043114 - movs r0, #8 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - b _08043128 - .align 2, 0 -_08043110: .4byte 0xFFFFFF00 -_08043114: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, _0804312C @ =0x0000FF40 - strh r0, [r2, #0xa] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08043128: - pop {r4, pc} - .align 2, 0 -_0804312C: .4byte 0x0000FF40 - - thumb_func_start sub_08043130 -sub_08043130: @ 0x08043130 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r1, [r6, #0x64] - adds r4, r1, #0 - adds r4, #0x18 - ldrb r0, [r4, #5] - cmp r0, #0 - beq _08043160 - adds r0, r6, #0 - bl sub_08043C98 - cmp r0, #0 - bne _080431E0 - ldrb r0, [r4, #5] - subs r0, #1 - strb r0, [r4, #5] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080431E0 - adds r0, r6, #0 - movs r1, #0xd - bl sub_080042AC - b _080431E0 -_08043160: - ldrb r0, [r6, #0xe] - cmp r0, #0 - beq _08043186 - subs r0, #1 - strb r0, [r6, #0xe] - movs r5, #1 - movs r1, #0x28 -_0804316E: - ldr r0, [r6, #0x64] - adds r4, r0, r1 - ldrb r0, [r4, #5] - cmp r0, #0 - beq _0804317C - subs r0, #1 - strb r0, [r4, #5] -_0804317C: - adds r1, #0x10 - adds r5, #1 - cmp r5, #3 - bls _0804316E - b _080431E0 -_08043186: - ldr r1, [r1, #0xc] - ldrh r0, [r1, #0x36] - adds r0, #3 - strh r0, [r1, #0x36] - movs r5, #0 - movs r7, #4 - rsbs r7, r7, #0 -_08043194: - ldr r0, [r6, #0x64] - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r4, [r0] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, r7 - ble _080431C4 - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080431BC - ldr r0, _080431E4 @ =0x00000161 - bl sub_080A3268 -_080431BC: - ldrb r1, [r4, #0x18] - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080431C4: - adds r5, #1 - cmp r5, #3 - bls _08043194 - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080431E0 - movs r0, #9 - strb r0, [r6, #0xd] - movs r0, #0x3c - strb r0, [r6, #0xe] - adds r0, r6, #0 - bl sub_0804AA1C -_080431E0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080431E4: .4byte 0x00000161 - - thumb_func_start sub_080431E8 -sub_080431E8: @ 0x080431E8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0804324E - movs r0, #6 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r5, #0 - ldr r7, _08043250 @ =gUnk_080D130C - movs r6, #0x18 -_08043206: - ldr r1, [r4, #0x64] - adds r1, r1, r6 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #8 - strh r0, [r1, #4] - ldr r0, _08043254 @ =gUnk_080D1414 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r1, #0xc] - cmp r5, #3 - bne _08043230 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x11 - bl sub_08004260 -_08043230: - adds r6, #0x10 - adds r5, #1 - cmp r5, #3 - bls _08043206 - ldr r2, [r4, #0x64] - ldr r1, _08043258 @ =gUnk_080D1310 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #0x20] - adds r0, r4, #0 - movs r1, #0xe - bl sub_080042AC -_0804324E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08043250: .4byte gUnk_080D130C -_08043254: .4byte gUnk_080D1414 -_08043258: .4byte gUnk_080D1310 - - thumb_func_start sub_0804325C -sub_0804325C: @ 0x0804325C - push {r4, lr} - adds r4, r0, #0 - bl sub_08043CD4 - ldr r0, _0804329C @ =gUnk_080D1314 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08043A10 - adds r2, r4, #0 - adds r2, #0x78 - ldrb r0, [r2] - adds r1, r0, #0 - cmp r1, #0 - beq _080432A4 - cmp r1, #2 - bls _080432A0 - subs r0, #2 - strb r0, [r2] - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - ldrh r0, [r1, #0x36] - ldrb r2, [r2] - adds r0, r0, r2 - strh r0, [r1, #0x36] - b _080432A4 - .align 2, 0 -_0804329C: .4byte gUnk_080D1314 -_080432A0: - movs r0, #0 - strb r0, [r2] -_080432A4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080432A8 -sub_080432A8: @ 0x080432A8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r3, #3 - movs r2, #0 - ldr r0, [r4, #0x64] - adds r1, r0, #0 - adds r1, #0x48 - ldrb r0, [r1, #0xc] - cmp r0, #2 - bls _080432C2 - subs r0, #1 - strb r0, [r1, #0xc] - movs r2, #1 -_080432C2: - subs r3, #1 - cmp r3, #0 - blt _080432E0 - lsls r0, r3, #4 - adds r0, #0x18 - ldr r1, [r4, #0x64] - adds r1, r1, r0 - ldrb r0, [r1, #0xc] - cmp r0, #2 - bls _080432C2 - subs r0, #1 - strb r0, [r1, #0xc] - adds r2, #1 - cmp r2, #1 - ble _080432C2 -_080432E0: - ldr r0, [r4, #0x64] - adds r1, r0, #0 - adds r1, #0x18 - ldrb r0, [r1, #5] - subs r0, #2 - strb r0, [r1, #5] - movs r3, #0 - movs r6, #0x80 - movs r7, #4 - rsbs r7, r7, #0 - movs r5, #1 -_080432F6: - ldr r0, [r4, #0x64] - lsls r1, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - movs r1, #0x36 - ldrsh r0, [r2, r1] - cmp r0, #3 - bgt _08043316 - ldrb r0, [r2, #0x10] - orrs r0, r6 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - adds r0, r7, #0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2, #0x18] -_08043316: - adds r3, #1 - cmp r3, #3 - ble _080432F6 - ldr r1, [r4, #0x64] - ldr r0, [r1] - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - lsrs r2, r0, #0x1e - cmp r2, #1 - bne _08043348 - adds r0, r1, #0 - adds r0, #0x34 - ldrb r0, [r0] - cmp r0, #2 - bhi _08043348 - strb r2, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1, #0x1c] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x10] - bl sub_0804AA1C -_08043348: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804334C -sub_0804334C: @ 0x0804334C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08043388 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804341C - movs r5, #0 - movs r7, #0x80 - movs r6, #4 - rsbs r6, r6, #0 - movs r3, #1 -_0804336A: - ldr r0, [r4, #0x64] - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r0, [r2, #0x10] - orrs r0, r7 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, #0x18] - adds r5, #1 - cmp r5, #4 - bls _0804336A -_08043388: - ldr r3, [r4, #0x64] - adds r2, r3, #0 - adds r2, #0x18 - ldr r1, _080433AC @ =gUnk_080D131C - ldrb r0, [r4, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - ldrb r1, [r2, #1] - subs r0, r0, r1 - adds r0, #1 - cmp r0, #2 - bls _080433B0 - ldrh r0, [r2, #8] - ldrh r1, [r3, #0x18] - adds r0, r0, r1 - strh r0, [r3, #0x18] - movs r7, #0 - b _080433B2 - .align 2, 0 -_080433AC: .4byte gUnk_080D131C -_080433B0: - movs r7, #1 -_080433B2: - adds r0, r4, #0 - bl sub_08043B9C - movs r5, #0 - movs r6, #0x18 -_080433BC: - ldr r0, [r4, #0x64] - adds r2, r0, r6 - ldr r0, _080433E4 @ =gUnk_080D1414 - adds r0, r5, r0 - ldrb r1, [r2, #0xc] - ldrb r3, [r0] - cmp r3, r1 - bls _080433E8 - adds r0, r1, #1 - strb r0, [r2, #0xc] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r3, r0 - bne _0804341C - movs r0, #0xaf - lsls r0, r0, #1 - bl sub_080A3268 - b _0804341C - .align 2, 0 -_080433E4: .4byte gUnk_080D1414 -_080433E8: - cmp r7, #0 - beq _08043414 - cmp r5, #4 - bne _08043414 - adds r0, r4, #0 - bl sub_08043BC8 - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - adds r1, r4, #0 - adds r1, #0x7e - ldrb r0, [r1] - cmp r0, #0 - beq _08043414 - movs r0, #0 - strb r0, [r1] - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x14] - movs r0, #2 - strb r0, [r1, #0xd] -_08043414: - adds r6, #0x10 - adds r5, #1 - cmp r5, #4 - bls _080433BC -_0804341C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08043420 -sub_08043420: @ 0x08043420 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0804343C @ =gUnk_080D1320 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_08043ABC - pop {r4, pc} - .align 2, 0 -_0804343C: .4byte gUnk_080D1320 - - thumb_func_start sub_08043440 -sub_08043440: @ 0x08043440 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r2, #0 - movs r5, #0 - movs r6, #0 - movs r4, #0x18 -_0804344C: - ldr r0, [r3, #0x64] - adds r1, r0, r4 - ldrb r0, [r1, #5] - cmp r0, #0x10 - bls _0804345E - subs r0, #0x10 - strb r0, [r1, #5] - adds r5, #1 - b _08043460 -_0804345E: - strh r6, [r1, #4] -_08043460: - adds r4, #0x10 - adds r2, #1 - cmp r2, #4 - bls _0804344C - cmp r5, #0 - bne _0804348C - movs r2, #0 - movs r4, #0x80 - lsls r4, r4, #8 -_08043472: - ldr r0, [r3, #0x64] - lsls r1, r2, #4 - adds r0, r0, r1 - strh r4, [r0, #0x18] - adds r2, #1 - cmp r2, #4 - bls _08043472 - movs r0, #1 - strb r0, [r3, #0xd] - adds r0, r3, #0 - movs r1, #0x10 - bl sub_080042AC -_0804348C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08043490 -sub_08043490: @ 0x08043490 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x10] - mov ip, r0 - ldrh r1, [r0, #0x36] - movs r2, #0x36 - ldrsh r0, [r0, r2] - movs r2, #4 - rsbs r2, r2, #0 - cmp r0, r2 - bge _080434C4 - movs r0, #0xc0 - lsls r0, r0, #9 - mov r3, ip - str r0, [r3, #0x20] - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x7e - strb r0, [r2] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x14] - strb r1, [r0, #0xd] - b _08043514 -_080434C4: - subs r0, r1, #2 - mov r1, ip - strh r0, [r1, #0x36] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08043514 - ldrb r0, [r1, #0x10] - movs r3, #0x80 - orrs r0, r3 - strb r0, [r1, #0x10] - ldrb r1, [r1, #0x18] - adds r0, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - mov r2, ip - strb r0, [r2, #0x18] - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - mov r1, ip - adds r1, #0x3f - movs r0, #0x3a - strb r0, [r1] - ldr r0, _0804351C @ =gUnk_080FD450 - mov r1, ip - str r0, [r1, #0x48] - ldr r0, [r4, #0x64] - ldr r1, [r0, #8] - ldrb r0, [r1, #0x10] - orrs r3, r0 - strb r3, [r1, #0x10] - ldr r0, [r4, #0x64] - ldr r2, [r0, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_08043514: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_0804351C: .4byte gUnk_080FD450 - - thumb_func_start sub_08043520 -sub_08043520: @ 0x08043520 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r4, [r0, #0x10] - movs r1, #0xd0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08043556 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #6 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08043556 - ldr r0, _08043558 @ =0x0000FFFA - strh r0, [r4, #0x36] - movs r0, #3 - strb r0, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x7a - movs r0, #0xe1 - lsls r0, r0, #2 - strh r0, [r1] -_08043556: - pop {r4, r5, pc} - .align 2, 0 -_08043558: .4byte 0x0000FFFA - - thumb_func_start sub_0804355C -sub_0804355C: @ 0x0804355C - push {r4, lr} - adds r4, r0, #0 - bl sub_08043DB0 - adds r1, r4, #0 - adds r1, #0x7a - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08043578 - movs r0, #4 - strb r0, [r4, #0xd] -_08043578: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_08043580 -sub_08043580: @ 0x08043580 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - ldrh r0, [r1, #0x36] - adds r0, #3 - strh r0, [r1, #0x36] - movs r2, #0 - movs r5, #4 - rsbs r5, r5, #0 - movs r6, #0x7f -_08043596: - ldr r0, [r4, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r3, [r0] - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, r5 - ble _080435B6 - ldrb r1, [r3, #0x10] - adds r0, r6, #0 - ands r0, r1 - strb r0, [r3, #0x10] - ldrb r1, [r3, #0x18] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r3, #0x18] -_080435B6: - adds r2, #1 - cmp r2, #4 - bls _08043596 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _080435EE - movs r0, #5 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, [r4, #0x64] - ldr r3, [r0, #0x10] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - movs r0, #0x39 - strb r0, [r1] - ldr r0, _080435F0 @ =gUnk_080FD538 - str r0, [r3, #0x48] - adds r0, r4, #0 - bl sub_0804AA1C -_080435EE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080435F0: .4byte gUnk_080FD538 - - thumb_func_start sub_080435F4 -sub_080435F4: @ 0x080435F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08043674 - movs r0, #6 - strb r0, [r4, #0xc] - movs r0, #1 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - movs r5, #0 - ldr r0, _08043658 @ =gUnk_080D1338 - mov sb, r0 - movs r0, #0 - mov r8, r0 - movs r6, #0x18 - ldr r7, _0804365C @ =gUnk_080D133C -_08043622: - ldr r1, [r4, #0x64] - adds r1, r1, r6 - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1, #4] - mov r0, r8 - strb r0, [r1, #0xc] - ldrb r0, [r4, #0xb] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - strh r0, [r1, #8] - ldr r0, [r4, #0x64] - lsls r1, r5, #2 - adds r0, r0, r1 - ldr r2, [r0] - cmp r5, #0 - bne _08043660 - adds r0, r2, #0 - bl sub_08043B9C - b _0804366C - .align 2, 0 -_08043658: .4byte gUnk_080D1338 -_0804365C: .4byte gUnk_080D133C -_08043660: - ldr r0, _0804367C @ =gUnk_080D1340 - adds r0, r5, r0 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_08004260 -_0804366C: - adds r6, #0x10 - adds r5, #1 - cmp r5, #4 - bls _08043622 -_08043674: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804367C: .4byte gUnk_080D1340 - - thumb_func_start sub_08043680 -sub_08043680: @ 0x08043680 - push {lr} - ldr r2, _08043694 @ =gUnk_080D1348 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08043694: .4byte gUnk_080D1348 - - thumb_func_start sub_08043698 -sub_08043698: @ 0x08043698 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r3, #0 - movs r5, #0x7f -_080436A8: - ldr r0, [r4, #0x64] - lsls r1, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r1, [r2, #0x10] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r2, #0x10] - adds r3, #1 - cmp r3, #4 - bls _080436A8 - pop {r4, r5, pc} - - thumb_func_start sub_080436C0 -sub_080436C0: @ 0x080436C0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080436FC - movs r0, #0x14 - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - movs r1, #0x51 - movs r2, #0 - bl CreateFX - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - str r5, [r0, #0x64] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_0805E7BC -_080436FC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08043700 -sub_08043700: @ 0x08043700 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _08043734 - movs r0, #0x14 - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - movs r1, #0x51 - movs r2, #0 - bl CreateFX - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - str r5, [r0, #0x64] - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_0805E7BC -_08043734: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08043738 -sub_08043738: @ 0x08043738 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _0804376C - movs r0, #0x14 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xd] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - movs r1, #0x51 - movs r2, #0 - bl CreateFX - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - str r5, [r0, #0x64] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - bl sub_0805E7BC -_0804376C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08043770 -sub_08043770: @ 0x08043770 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _080437D8 - ldr r0, [r2, #0x64] - ldr r3, [r0, #0x14] - ldr r0, _080437AC @ =gUnk_030010A0 - adds r5, r0, #0 - adds r5, #0x39 - ldrb r1, [r5] - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - bne _0804379A - movs r0, #2 - strb r0, [r3, #0xd] -_0804379A: - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _080437B0 - ldr r0, [r3, #0x64] - str r4, [r0, #0x14] - ldrb r1, [r5] - movs r0, #0xfe - b _080437B8 - .align 2, 0 -_080437AC: .4byte gUnk_030010A0 -_080437B0: - ldr r0, [r3, #0x64] - str r4, [r0, #0x18] - ldrb r1, [r5] - movs r0, #0xfd -_080437B8: - ands r0, r1 - strb r0, [r5] - ldr r0, [r2, #0x64] - ldr r0, [r0, #0x10] - movs r1, #0 - str r1, [r0, #0x64] - ldr r0, [r2, #0x64] - ldr r0, [r0, #0x10] - adds r0, #0x45 - strb r1, [r0] - ldr r1, [r2, #0x68] - ldr r0, [r2, #0x64] - ldr r0, [r0, #0x10] - str r0, [r1, #0x50] - bl sub_0805E780 -_080437D8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080437DC -sub_080437DC: @ 0x080437DC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _0804392C @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x43 - bls _080437EE - b _08043934 -_080437EE: - movs r0, #0x68 - bl sub_0801D8E0 - adds r7, r0, #0 - cmp r7, #0 - bne _080437FC - b _08043934 -_080437FC: - adds r2, r6, #0 - 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] - adds r1, r6, #0 - adds r1, #0x3c - ldrb r0, [r1] - movs r5, #0x10 - orrs r0, r5 - strb r0, [r1] - str r7, [r6, #0x64] - str r6, [r7] - movs r0, #0x52 - movs r1, #1 - bl CreateEnemy - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - adds r0, r4, #0 - ands r0, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x3c - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - str r7, [r2, #0x64] - str r2, [r7, #4] - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - movs r0, #0x52 - movs r1, #2 - bl CreateEnemy - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - adds r0, r4, #0 - ands r0, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x3c - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - str r7, [r2, #0x64] - str r2, [r7, #8] - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - movs r0, #0x52 - movs r1, #3 - bl CreateEnemy - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - adds r0, r4, #0 - ands r0, r1 - mov r1, r8 - orrs r0, r1 - strb r0, [r3] - adds r1, r2, #0 - adds r1, #0x3c - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - str r7, [r2, #0x64] - str r2, [r7, #0xc] - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - movs r0, #0x52 - movs r1, #4 - bl CreateEnemy - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x29 - ldrb r0, [r1] - ands r4, r0 - mov r0, r8 - orrs r4, r0 - strb r4, [r1] - adds r1, #0x13 - ldrb r0, [r1] - orrs r5, r0 - strb r5, [r1] - str r7, [r2, #0x64] - str r2, [r7, #0x10] - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - ldr r0, [r6, #0x50] - str r0, [r7, #0x14] - ldr r1, _08043930 @ =gUnk_080D135C - ldrb r0, [r6, #0xb] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r2, [r0] - movs r3, #0 - strh r2, [r7, #0x18] - movs r1, #0x80 - lsls r1, r1, #7 - strh r1, [r7, #0x1c] - adds r0, r7, #0 - adds r0, #0x24 - strb r3, [r0] - strh r2, [r7, #0x28] - strh r1, [r7, #0x2c] - adds r0, #0x10 - strb r3, [r0] - strh r2, [r7, #0x38] - strh r1, [r7, #0x3c] - adds r0, #0x10 - strb r3, [r0] - adds r0, #4 - strh r2, [r0] - adds r0, #4 - strh r1, [r0] - adds r0, #8 - strb r3, [r0] - adds r0, #4 - strh r2, [r0] - adds r0, #4 - strh r1, [r0] - adds r0, #8 - strb r3, [r0] - movs r0, #1 - b _08043936 - .align 2, 0 -_0804392C: .4byte gUnk_03003DBC -_08043930: .4byte gUnk_080D135C -_08043934: - movs r0, #0 -_08043936: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804393C -sub_0804393C: @ 0x0804393C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r1, [r0] - adds r0, r1, #0 - adds r0, #0x7c - ldrb r0, [r0] - lsls r2, r0, #0x18 - cmp r2, #0 - beq _0804397C - adds r0, r1, #0 - adds r0, #0x7d - ldrb r0, [r0] - ldrb r1, [r5, #0xa] - cmp r0, r1 - bhi _0804397C - ldr r4, _08043978 @ =gUnk_080D1362 - ldrb r3, [r5, #0xa] - lsls r1, r3, #4 - lsrs r0, r2, #0x1b - movs r2, #0xf - ands r0, r2 - adds r1, r1, r0 - adds r1, r1, r4 - ldrb r4, [r1] - adds r6, r3, #0 - b _08043980 - .align 2, 0 -_08043978: .4byte gUnk_080D1362 -_0804397C: - movs r4, #0 - ldrb r6, [r5, #0xa] -_08043980: - lsls r0, r6, #4 - adds r0, #0x18 - ldr r2, [r5, #0x64] - mov ip, r2 - adds r2, r2, r0 - ldrb r0, [r2, #0xc] - adds r0, r4, r0 - lsls r4, r0, #8 - ldr r3, _08043A0C @ =gUnk_080C9160 - ldrb r1, [r2, #5] - adds r0, r1, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r7, #0 - ldrsh r0, [r0, r7] - rsbs r0, r0, #0 - adds r7, r0, #0 - muls r7, r4, r7 - mov r8, r7 - movs r0, #0x7f - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r3 - movs r7, #0 - ldrsh r0, [r1, r7] - muls r0, r4, r0 - cmp r0, #0 - bge _080439BC - adds r0, #0xff -_080439BC: - asrs r4, r0, #8 - ldrb r1, [r2, #1] - lsls r0, r1, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r0, [r0, r2] - adds r2, r0, #0 - muls r2, r4, r2 - adds r1, #0x40 - lsls r1, r1, #1 - adds r1, r1, r3 - movs r3, #0 - ldrsh r0, [r1, r3] - rsbs r0, r0, #0 - adds r3, r0, #0 - muls r3, r4, r3 - adds r0, r6, #1 - lsls r0, r0, #2 - add r0, ip - ldr r0, [r0] - adds r1, r5, #0 - bl PositionRelative - ldr r0, [r5, #0x34] - add r0, r8 - str r0, [r5, #0x34] - ldr r1, [r5, #0x64] - ldrb r0, [r5, #0xa] - adds r0, #1 - lsls r0, r0, #2 - adds r1, r1, r0 - ldr r0, [r1] - adds r0, #0x63 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08043A0C: .4byte gUnk_080C9160 - - thumb_func_start sub_08043A10 -sub_08043A10: @ 0x08043A10 - push {r4, lr} - adds r4, r0, #0 - bl sub_08043B7C - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x10] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - ldrh r0, [r1, #0x32] - subs r0, #8 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x64] - ldr r1, [r0, #0x10] - ldrh r0, [r1, #0x36] - subs r0, #8 - strh r0, [r1, #0x36] - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r1, [r0] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x64] - ldr r1, [r0] - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r4, #0x7c - ldrb r0, [r4] - cmp r0, #0 - beq _08043A76 - subs r0, #1 - strb r0, [r4] -_08043A76: - pop {r4, pc} - - thumb_func_start sub_08043A78 -sub_08043A78: @ 0x08043A78 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08043B7C - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r1, [r0] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x64] - ldr r1, [r0] - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08043ABC -sub_08043ABC: @ 0x08043ABC - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08043B7C - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r0, [r0] - bl sub_0804393C - ldr r0, [r4, #0x64] - ldr r1, [r0] - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - ldr r0, [r4, #0x64] - ldr r1, [r0] - adds r1, #0x63 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08043B08 -sub_08043B08: @ 0x08043B08 - push {r4, r5, r6, lr} - ldrb r3, [r0, #0xa] - lsls r1, r3, #4 - adds r4, r1, #0 - adds r4, #8 - ldr r2, [r0, #0x64] - adds r6, r2, r4 - adds r1, #0x18 - adds r4, r2, r1 - ldr r0, _08043B40 @ =gUnk_080D13B2 - adds r3, r3, r0 - ldrb r5, [r3] - ldr r0, [r2] - ldrb r0, [r0, #0xb] - cmp r0, #0 - bne _08043B44 - ldrb r1, [r6, #1] - ldrb r0, [r4, #1] - subs r0, r1, r0 - lsls r0, r0, #0x18 - asrs r3, r0, #0x18 - cmp r5, r3 - bhs _08043B5E - cmp r3, #0 - ble _08043B56 - subs r0, r1, r5 - b _08043B5C - .align 2, 0 -_08043B40: .4byte gUnk_080D13B2 -_08043B44: - ldrb r0, [r4, #1] - ldrb r1, [r6, #1] - subs r0, r0, r1 - lsls r0, r0, #0x18 - asrs r3, r0, #0x18 - cmp r5, r3 - bhs _08043B5E - cmp r3, #0 - bge _08043B5A -_08043B56: - strb r1, [r4, #1] - b _08043B5E -_08043B5A: - adds r0, r1, r5 -_08043B5C: - strb r0, [r4, #1] -_08043B5E: - ldrb r2, [r6, #5] - ldrb r0, [r4, #5] - subs r3, r2, r0 - lsls r1, r5, #1 - adds r0, r3, r5 - cmp r1, r0 - bhs _08043B78 - cmp r3, #0 - ble _08043B74 - subs r0, r2, r5 - b _08043B76 -_08043B74: - adds r0, r2, r5 -_08043B76: - strb r0, [r4, #5] -_08043B78: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08043B7C -sub_08043B7C: @ 0x08043B7C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - bl sub_08043B08 - ldr r0, [r4, #0x64] - ldr r0, [r0, #8] - bl sub_08043B08 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0xc] - bl sub_08043B08 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08043B9C -sub_08043B9C: @ 0x08043B9C - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x64] - ldrb r0, [r0, #0x19] - adds r0, #4 - movs r1, #0xff - ands r0, r1 - asrs r0, r0, #3 - ldr r1, _08043BC4 @ =gUnk_080D13B7 - adds r0, r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, #0x1e] - subs r0, #1 - cmp r1, r0 - beq _08043BC0 - adds r0, r2, #0 - bl sub_080042AC -_08043BC0: - pop {pc} - .align 2, 0 -_08043BC4: .4byte gUnk_080D13B7 - - thumb_func_start sub_08043BC8 -sub_08043BC8: @ 0x08043BC8 - movs r1, #2 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0xb] - lsls r2, r2, #2 - ldr r1, _08043BEC @ =gUnk_080D13D8 - adds r2, r2, r1 - ldr r1, [r0, #0x64] - adds r1, #0x18 - ldrh r0, [r2] - strh r0, [r1, #8] - ldrh r0, [r2, #2] - strh r0, [r1, #0xa] - movs r0, #0x5a - strb r0, [r1, #0xd] - movs r0, #0x28 - strb r0, [r1, #0xe] - bx lr - .align 2, 0 -_08043BEC: .4byte gUnk_080D13D8 - - thumb_func_start sub_08043BF0 -sub_08043BF0: @ 0x08043BF0 - push {lr} - adds r2, r0, #0 - ldr r0, [r2, #0x64] - adds r1, r0, #0 - adds r1, #0x18 - ldrb r0, [r2, #0xb] - cmp r0, #0 - bne _08043C18 - ldrb r0, [r1, #1] - movs r1, #6 - cmp r0, #0x2f - bls _08043C2E - movs r1, #7 - cmp r0, #0x5f - bls _08043C2E - movs r1, #9 - cmp r0, #0x8f - bhi _08043C2E - movs r1, #8 - b _08043C2E -_08043C18: - ldrb r0, [r1, #1] - movs r1, #8 - cmp r0, #0xd0 - bhi _08043C2E - movs r1, #7 - cmp r0, #0xa0 - bhi _08043C2E - movs r1, #5 - cmp r0, #0x70 - bls _08043C2E - movs r1, #6 -_08043C2E: - adds r0, r2, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _08043C3E - adds r0, r2, #0 - bl sub_080042AC -_08043C3E: - pop {pc} - - thumb_func_start sub_08043C40 -sub_08043C40: @ 0x08043C40 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldrb r0, [r1, #5] - cmp r0, #0x1f - bhi _08043C54 - ldr r6, _08043C50 @ =gUnk_080D13E0 - b _08043C68 - .align 2, 0 -_08043C50: .4byte gUnk_080D13E0 -_08043C54: - cmp r0, #0x2f - bhi _08043C60 - ldr r6, _08043C5C @ =gUnk_080D13E3 - b _08043C68 - .align 2, 0 -_08043C5C: .4byte gUnk_080D13E3 -_08043C60: - ldr r6, _08043C84 @ =gUnk_080D13E0 - cmp r0, #0x77 - bhi _08043C68 - adds r6, #6 -_08043C68: - movs r4, #0 - movs r5, #0x28 -_08043C6C: - ldr r0, [r7, #0x64] - adds r3, r0, r5 - adds r0, r6, r4 - ldrb r1, [r3, #0xc] - ldrb r2, [r0] - adds r0, r1, #0 - cmp r2, r0 - beq _08043C8C - cmp r2, r0 - bhs _08043C88 - subs r0, r1, #1 - b _08043C8A - .align 2, 0 -_08043C84: .4byte gUnk_080D13E0 -_08043C88: - adds r0, r1, #1 -_08043C8A: - strb r0, [r3, #0xc] -_08043C8C: - adds r5, #0x10 - adds r4, #1 - cmp r4, #2 - bls _08043C6C - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08043C98 -sub_08043C98: @ 0x08043C98 - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x64] - ldr r1, [r0, #8] - ldr r2, [r0, #0xc] - adds r1, #0x41 - ldrb r0, [r1] - cmp r0, #0x9d - beq _08043CB4 - adds r0, r2, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _08043CD0 -_08043CB4: - adds r0, r3, #0 - bl sub_08043D08 - ldr r0, _08043CCC @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r2, [r0] - movs r1, #2 - orrs r1, r2 - strb r1, [r0] - movs r0, #1 - b _08043CD2 - .align 2, 0 -_08043CCC: .4byte gUnk_030010A0 -_08043CD0: - movs r0, #0 -_08043CD2: - pop {pc} - - thumb_func_start sub_08043CD4 -sub_08043CD4: @ 0x08043CD4 - push {r4, r5, lr} - adds r3, r0, #0 - movs r2, #0 - adds r4, r3, #0 - adds r4, #0x7c - movs r5, #0x78 - movs r0, #0x7d - adds r0, r0, r3 - mov ip, r0 -_08043CE6: - ldr r0, [r3, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x9d - bne _08043CFE - strb r5, [r4] - mov r0, ip - strb r2, [r0] - b _08043D04 -_08043CFE: - adds r2, #1 - cmp r2, #4 - bls _08043CE6 -_08043D04: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08043D08 -sub_08043D08: @ 0x08043D08 - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0 - movs r0, #7 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - adds r0, r5, #0 - movs r1, #0xd - bl sub_080042AC - ldr r0, [r5, #0x64] - ldr r4, [r0, #0x10] - 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 - movs r1, #0x13 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0804AA1C - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08043D78 - ldr r1, _08043DAC @ =gUnk_080D13E9 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - ldrh r0, [r2, #0x32] - subs r0, #6 - strh r0, [r2, #0x32] - 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] -_08043D78: - ldr r0, [r5, #0x64] - ldr r0, [r0, #0xc] - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, [r5, #0x64] - adds r1, #0x54 - ldrh r0, [r4, #0x36] - ldrb r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x36] - movs r2, #0 - movs r3, #0x39 -_08043D92: - ldr r0, [r5, #0x64] - lsls r1, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0x3f - strb r3, [r0] - adds r2, #1 - cmp r2, #4 - bls _08043D92 - movs r0, #0xfe - bl sub_08004488 - pop {r4, r5, pc} - .align 2, 0 -_08043DAC: .4byte gUnk_080D13E9 - - thumb_func_start sub_08043DB0 -sub_08043DB0: @ 0x08043DB0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, _08043E48 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08043EAC - ldr r0, [r5, #0x64] - ldr r2, [r0, #0xc] - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r6, _08043E4C @ =gUnk_03000BF0 - ldrh r1, [r6, #6] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r2, r3] - ldrh r2, [r6, #8] - subs r1, r1, r2 - adds r1, #2 - movs r2, #3 - movs r3, #3 - bl sub_0800293E - cmp r0, #0 - beq _08043EAC - ldr r0, _08043E50 @ =gUnk_080D13EC - bl sub_08080840 - ldr r4, _08043E54 @ =gUnk_030010A0 - adds r0, r4, #0 - adds r0, #0x39 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - cmp r0, #3 - beq _08043DFE - movs r0, #1 - strb r0, [r4, #0xd] -_08043DFE: - adds r0, r5, #0 - adds r0, #0x7a - ldrh r0, [r0] - movs r1, #0x3c - bl __divsi3 - movs r1, #0x1e - subs r1, r1, r0 - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldrb r1, [r5, #0xb] - subs r0, #1 - strb r1, [r0] - ldr r0, [r5, #0x64] - ldr r2, [r0, #0x14] - ldrh r1, [r2, #0x2e] - adds r0, r4, #0 - adds r0, #0x40 - strh r1, [r0] - ldrh r0, [r2, #0x32] - adds r1, r4, #0 - adds r1, #0x42 - strh r0, [r1] - ldr r0, [r2, #0x64] - ldr r3, [r0, #0x14] - cmp r3, #0 - beq _08043E58 - ldrh r1, [r3, #0x2e] - adds r0, r4, #0 - adds r0, #0x44 - strh r1, [r0] - ldrh r1, [r3, #0x32] - adds r0, #2 - strh r1, [r0] - b _08043E70 - .align 2, 0 -_08043E48: .4byte gUnk_03003F80 -_08043E4C: .4byte gUnk_03000BF0 -_08043E50: .4byte gUnk_080D13EC -_08043E54: .4byte gUnk_030010A0 -_08043E58: - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r3, [r6, #6] - adds r0, r0, r3 - adds r1, r4, #0 - adds r1, #0x44 - strh r0, [r1] - ldrh r0, [r6, #8] - adds r0, #0x60 - adds r1, #2 - strh r0, [r1] -_08043E70: - ldr r0, [r2, #0x64] - ldr r3, [r0, #0x18] - cmp r3, #0 - beq _08043E90 - ldr r1, _08043E8C @ =gUnk_030010A0 - ldrh r2, [r3, #0x2e] - adds r0, r1, #0 - adds r0, #0x48 - strh r2, [r0] - ldrh r0, [r3, #0x32] - adds r1, #0x4a - strh r0, [r1] - b _08043EAC - .align 2, 0 -_08043E8C: .4byte gUnk_030010A0 -_08043E90: - ldr r2, _08043EB0 @ =gUnk_030010A0 - ldr r3, _08043EB4 @ =gUnk_03000BF0 - movs r1, #0x88 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r1, [r3, #6] - adds r0, r0, r1 - adds r1, r2, #0 - adds r1, #0x48 - strh r0, [r1] - ldrh r0, [r3, #8] - adds r0, #0x60 - adds r2, #0x4a - strh r0, [r2] -_08043EAC: - pop {r4, r5, r6, pc} - .align 2, 0 -_08043EB0: .4byte gUnk_030010A0 -_08043EB4: .4byte gUnk_03000BF0 - - thumb_func_start sub_08043EB8 -sub_08043EB8: @ 0x08043EB8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - ldrb r0, [r7, #0x10] - movs r5, #0x80 - orrs r0, r5 - strb r0, [r7, #0x10] - adds r2, r7, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r4, #8 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r6, #4 - orrs r0, r6 - strb r0, [r2] - adds r0, r7, #0 - movs r1, #0xd - bl sub_080042AC - ldr r0, [r7, #0x64] - ldr r3, [r0, #4] - ldrb r0, [r3, #0x10] - orrs r0, r5 - strb r0, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - adds r0, r4, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r0, [r7, #0x64] - ldr r3, [r0, #8] - ldrb r0, [r3, #0x10] - orrs r0, r5 - strb r0, [r3, #0x10] - adds r2, r3, #0 - adds r2, #0x29 - ldrb r1, [r2] - adds r0, r4, #0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2] - ldr r0, [r7, #0x64] - ldr r3, [r0, #0xc] - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - ldrb r2, [r3, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #1 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r3, #0x18] - adds r3, #0x29 - ldrb r2, [r3] - adds r0, r4, #0 - ands r0, r2 - orrs r0, r6 - strb r0, [r3] - ldr r0, [r7, #0x64] - ldr r3, [r0, #0x10] - ldrb r0, [r3, #0x10] - orrs r5, r0 - strb r5, [r3, #0x10] - ldrb r0, [r3, #0x18] - ands r1, r0 - mov r0, r8 - orrs r1, r0 - strb r1, [r3, #0x18] - adds r1, r3, #0 - adds r1, #0x29 - ldrb r0, [r1] - ands r4, r0 - orrs r4, r6 - strb r4, [r1] - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _08043F74 - ldr r1, _08043F70 @ =gUnk_030010A0 - adds r0, r1, #0 - adds r0, #0x44 - b _08043F7A - .align 2, 0 -_08043F70: .4byte gUnk_030010A0 -_08043F74: - ldr r1, _08043F8C @ =gUnk_030010A0 - adds r0, r1, #0 - adds r0, #0x48 -_08043F7A: - ldrh r0, [r0] - strh r0, [r3, #0x2e] - ldrb r0, [r7, #0xb] - cmp r0, #0 - bne _08043F90 - adds r0, r1, #0 - adds r0, #0x46 - b _08043F94 - .align 2, 0 -_08043F8C: .4byte gUnk_030010A0 -_08043F90: - adds r0, r1, #0 - adds r0, #0x4a -_08043F94: - ldrh r1, [r0] - movs r0, #0 - strh r1, [r3, #0x32] - strh r0, [r3, #0x36] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - movs r0, #0x3a - strb r0, [r1] - ldr r0, _08043FF8 @ =gUnk_080FD450 - str r0, [r3, #0x48] - movs r0, #0xaf - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r3, r0, #0 - cmp r3, #0 - beq _08043FCA - ldr r0, [r7, #0x64] - ldr r0, [r0, #0xc] - str r0, [r3, #0x50] -_08043FCA: - ldr r0, [r7, #0x64] - ldr r0, [r0] - str r3, [r0, #0x68] - movs r2, #0 - movs r6, #0 - movs r5, #0x80 - lsls r5, r5, #8 - ldr r4, _08043FFC @ =gUnk_080D1419 - movs r3, #0x18 -_08043FDC: - ldr r0, [r7, #0x64] - adds r0, r0, r3 - strh r5, [r0] - strh r6, [r0, #4] - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0, #0xc] - adds r3, #0x10 - adds r2, #1 - cmp r2, #4 - bls _08043FDC - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08043FF8: .4byte gUnk_080FD450 -_08043FFC: .4byte gUnk_080D1419 - - thumb_func_start sub_08044000 -sub_08044000: @ 0x08044000 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xb] - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #1 - ldr r0, _08044070 @ =gUnk_080D1400 - movs r3, #0 - ldr r2, _08044074 @ =gUnk_080D1414 - mov ip, r2 - movs r7, #8 - rsbs r7, r7, #0 - adds r5, r1, r0 - movs r6, #0x18 -_0804401C: - ldr r0, [r4, #0x64] - lsls r1, r3, #2 - adds r0, r0, r1 - ldr r2, [r0] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r2, #0x29 - ldrb r1, [r2] - adds r0, r7, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x64] - adds r1, r1, r6 - ldrh r0, [r5] - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1, #4] - mov r2, ip - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1, #0xc] - adds r5, #2 - adds r6, #0x10 - adds r3, #1 - cmp r3, #4 - bls _0804401C - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - ldr r1, [r4, #0x64] - ldr r0, [r1, #0x14] - ldr r1, [r1, #0x10] - bl sub_0806FA24 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08044070: .4byte gUnk_080D1400 -_08044074: .4byte gUnk_080D1414 - - thumb_func_start sub_08044078 -sub_08044078: @ 0x08044078 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080440C4 - movs r2, #1 - strb r2, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _080440AC - ldr r3, _080440B8 @ =gUnk_030010A0 - adds r0, r3, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080440BC - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r1, r3, #0 - adds r1, #0x3c - ldrb r0, [r0, #0xb] - ldrb r1, [r1] - cmp r0, r1 - bne _080440BC -_080440AC: - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08004260 - b _080440C4 - .align 2, 0 -_080440B8: .4byte gUnk_030010A0 -_080440BC: - adds r0, r4, #0 - movs r1, #0x11 - bl sub_08004260 -_080440C4: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_080440CC -sub_080440CC: @ 0x080440CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08044110 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, _08044104 @ =gUnk_030010A0 - adds r1, r2, #0 - adds r1, #0x38 - ldrb r1, [r1] - ands r0, r1 - cmp r0, #0 - beq _08044108 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r1, r2, #0 - adds r1, #0x3c - ldrb r0, [r0, #0xb] - ldrb r1, [r1] - cmp r0, r1 - bne _08044108 - adds r0, r4, #0 - movs r1, #0x13 - bl sub_08004260 - b _08044110 - .align 2, 0 -_08044104: .4byte gUnk_030010A0 -_08044108: - adds r0, r4, #0 - movs r1, #0x11 - bl sub_08004260 -_08044110: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08044118 -sub_08044118: @ 0x08044118 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08044130 @ =gUnk_080D1588 - 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 -_08044130: .4byte gUnk_080D1588 - - thumb_func_start sub_08044134 -sub_08044134: @ 0x08044134 - push {lr} - ldr r2, _08044148 @ =gUnk_080D15A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08044148: .4byte gUnk_080D15A0 - - thumb_func_start sub_0804414C -sub_0804414C: @ 0x0804414C - push {lr} - ldr r1, _08044158 @ =gUnk_080D1588 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_08044158: .4byte gUnk_080D1588 - - thumb_func_start sub_0804415C -sub_0804415C: @ 0x0804415C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0804418E - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _08044188 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080441BA - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_08044310 - b _080441BA -_08044188: - movs r0, #8 - strb r0, [r4, #0xe] - b _080441BA -_0804418E: - adds r0, r4, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080441B0 - ldr r0, _080441AC @ =gUnk_080D15A8 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080441BA - .align 2, 0 -_080441AC: .4byte gUnk_080D15A8 -_080441B0: - adds r0, r4, #0 - bl sub_080445C0 - bl sub_0805E780 -_080441BA: - pop {r4, pc} - - thumb_func_start sub_080441BC -sub_080441BC: @ 0x080441BC - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_080441C4 -sub_080441C4: @ 0x080441C4 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080441CC -sub_080441CC: @ 0x080441CC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080441DE - adds r0, r4, #0 - bl sub_0804A7D4 -_080441DE: - pop {r4, pc} - - thumb_func_start sub_080441E0 -sub_080441E0: @ 0x080441E0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - movs r0, #0x12 - bl GetProgressFlag - cmp r0, #0 - beq _080441F2 - bl sub_0805E780 -_080441F2: - ldrb r7, [r4, #0xa] - cmp r7, #0 - bne _08044284 - ldr r0, _08044244 @ =0x000001EB - movs r1, #1 - bl sub_080AD8F0 - adds r6, r0, #0 - ldrb r1, [r6] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r5, r0, #1 - adds r0, r5, #0 - bl sub_0801D8E0 - adds r1, r0, #0 - str r1, [r4, #0x64] - cmp r1, #0 - beq _0804429A - adds r0, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - adds r1, r4, #0 - adds r1, #0x28 - movs r0, #0xff - strb r0, [r1] - ldr r0, [r4, #0x64] - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, #0xc - bl sub_0801D8E0 - adds r2, r0, #0 - cmp r2, #0 - bne _08044248 - ldr r0, [r4, #0x64] - bl sub_0801DA0C - b _0804429A - .align 2, 0 -_08044244: .4byte 0x000001EB -_08044248: - str r2, [r4, #0x48] - ldr r0, _0804427C @ =gUnk_080FD188 - ldr r1, [r0, #4] - ldr r0, [r0] - str r0, [r2] - str r1, [r2, #4] - adds r0, r4, #0 - bl sub_080442BC - movs r0, #1 - strb r0, [r4, #0x1e] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x75 - strb r7, [r0] - adds r1, r4, #0 - adds r1, #0x76 - ldr r0, _08044280 @ =0x0000FFFF - strh r0, [r1] - b _08044292 - .align 2, 0 -_0804427C: .4byte gUnk_080FD188 -_08044280: .4byte 0x0000FFFF -_08044284: - movs r0, #0 - strb r0, [r4, #0x1e] - strh r0, [r4, #0x24] - ldr r0, _0804429C @ =gUnk_080FD168 - str r0, [r4, #0x48] - movs r0, #1 - strb r0, [r4, #0x1c] -_08044292: - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #8 - strb r0, [r4, #0xe] -_0804429A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804429C: .4byte gUnk_080FD168 - - thumb_func_start sub_080442A0 -sub_080442A0: @ 0x080442A0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _080442B2 - adds r0, r1, #0 - bl sub_08044498 - b _080442B8 -_080442B2: - adds r0, r1, #0 - bl sub_08044550 -_080442B8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080442BC -sub_080442BC: @ 0x080442BC - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldr r5, _0804430C @ =gUnk_080D15B4 - ldr r0, [r3, #0x64] - ldrb r6, [r0] - movs r4, #0 - cmp r4, r6 - bhs _08044304 - movs r7, #0 -_080442CE: - ldr r1, [r3, #0x48] - lsls r2, r4, #3 - adds r1, r2, r1 - ldrb r0, [r5] - strb r0, [r1, #0xc] - ldr r0, [r3, #0x48] - adds r0, r2, r0 - ldrb r1, [r5, #1] - strb r1, [r0, #0xd] - ldr r0, [r3, #0x48] - adds r0, r2, r0 - ldrb r1, [r5, #2] - strb r1, [r0, #0xe] - ldr r0, [r3, #0x48] - adds r0, r2, r0 - ldrb r1, [r5, #3] - strb r1, [r0, #0xf] - ldr r0, [r3, #0x48] - adds r0, r2, r0 - adds r0, #0xc - strb r7, [r0, #4] - ldr r0, [r3, #0x48] - adds r2, r2, r0 - strb r4, [r2, #0x11] - adds r4, #1 - cmp r4, r6 - blo _080442CE -_08044304: - adds r0, r3, #0 - adds r0, #0x74 - strb r6, [r0] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804430C: .4byte gUnk_080D15B4 - - thumb_func_start sub_08044310 -sub_08044310: @ 0x08044310 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - movs r4, #0xff - movs r6, #0xff - ldr r0, _08044334 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r1, r0, #1 - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _0804436A - cmp r1, #1 - bgt _08044338 - cmp r1, #0 - beq _08044342 - b _080443EA - .align 2, 0 -_08044334: .4byte gLinkEntity -_08044338: - cmp r1, #2 - beq _08044392 - cmp r1, #3 - beq _080443C4 - b _080443EA -_08044342: - movs r2, #0 - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r2, r0 - bhs _080443EA - adds r3, r0, #0 - ldr r1, [r5, #0x48] -_08044352: - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _08044360 - ldrb r0, [r1, #0xd] - cmp r6, r0 - bls _08044360 - adds r4, r2, #0 -_08044360: - adds r1, #8 - adds r2, #1 - cmp r2, r3 - blo _08044352 - b _080443EA -_0804436A: - movs r2, #0 - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r2, r0 - bhs _080443EA - adds r3, r0, #0 - ldr r1, [r5, #0x48] -_0804437A: - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _08044388 - ldrb r0, [r1, #0xe] - cmp r6, r0 - bls _08044388 - adds r4, r2, #0 -_08044388: - adds r1, #8 - adds r2, #1 - cmp r2, r3 - blo _0804437A - b _080443EA -_08044392: - movs r2, #0 - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r2, r0 - bhs _080443EA - adds r3, r0, #0 - ldr r1, [r5, #0x48] -_080443A2: - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _080443B0 - ldrb r0, [r1, #0xc] - cmp r6, r0 - bls _080443B0 - adds r4, r2, #0 -_080443B0: - adds r1, #8 - adds r2, #1 - cmp r2, r3 - blo _080443A2 - b _080443EA -_080443BA: - mov r1, r8 - adds r0, r1, r4 - ldrb r0, [r0, #0x11] - strb r0, [r3, #5] - b _08044492 -_080443C4: - movs r2, #0 - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r2, r0 - bhs _080443EA - adds r3, r0, #0 - ldr r1, [r5, #0x48] -_080443D4: - ldrb r0, [r1, #0x10] - cmp r0, #0 - bne _080443E2 - ldrb r0, [r1, #0xf] - cmp r6, r0 - bls _080443E2 - adds r4, r2, #0 -_080443E2: - adds r1, #8 - adds r2, #1 - cmp r2, r3 - blo _080443D4 -_080443EA: - cmp r4, #0xff - beq _08044492 - ldr r0, [r5, #0x48] - lsls r4, r4, #3 - adds r0, r4, r0 - movs r1, #1 - strb r1, [r0, #0x10] - ldr r1, [r5, #0x64] - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, #1 - adds r7, r2, r0 - ldr r0, [r5, #0x48] - adds r0, r4, r0 - ldrb r1, [r0, #0x11] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, #1 - adds r6, r2, r0 - movs r0, #0x53 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - mov r8, r4 - cmp r1, #0 - beq _08044440 - movs r2, #0 - ldrsb r2, [r6, r2] - adds r2, #8 - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r6, r3] - adds r3, #8 - lsls r3, r3, #0x10 - adds r0, r5, #0 - bl PositionRelative -_08044440: - ldr r0, [r5, #0x64] - ldrb r0, [r0] - cmp r0, #0 - bne _08044458 - movs r0, #0x12 - bl sub_0807CD04 - movs r0, #0x72 - bl sub_080A3268 - bl sub_0805E780 -_08044458: - movs r2, #0 - adds r3, r5, #0 - adds r3, #0x74 -_0804445E: - adds r0, r6, r2 - adds r1, r7, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, #1 - cmp r2, #4 - bls _0804445E - movs r2, #0 - ldrb r1, [r3] - cmp r2, r1 - bhs _08044492 - ldr r4, [r5, #0x48] - ldr r0, [r5, #0x64] - ldrb r6, [r0] - adds r5, r1, #0 - adds r3, r4, #0 - adds r3, #0xc - adds r1, r4, #0 -_08044482: - ldrb r0, [r1, #0x11] - cmp r0, r6 - beq _080443BA - adds r3, #8 - adds r1, #8 - adds r2, #1 - cmp r2, r5 - blo _08044482 -_08044492: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08044498 -sub_08044498: @ 0x08044498 - push {r4, r5, r6, lr} - mov ip, r0 - ldr r6, _08044538 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r3, _0804453C @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - asrs r4, r0, #4 - movs r2, #0x3f - ands r4, r2 - movs r5, #0x32 - ldrsh r0, [r6, r5] - ldrh r1, [r3, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r4, r0 - ldr r0, _08044540 @ =gUnk_03003F80 - adds r0, #0x92 - ldrh r0, [r0] - movs r1, #0xf0 - lsls r1, r1, #4 - ands r1, r0 - mov r2, ip - adds r2, #0x75 - ldrb r0, [r2] - cmp r1, r0 - bne _080444DE - mov r0, ip - adds r0, #0x76 - ldrh r0, [r0] - cmp r4, r0 - beq _0804454C -_080444DE: - strb r1, [r2] - mov r0, ip - adds r0, #0x76 - strh r4, [r0] - mov r1, ip - ldr r0, [r1, #0x64] - adds r2, r0, #1 - ldrb r4, [r0] - movs r3, #0x2e - ldrsh r1, [r6, r3] - mov r5, ip - movs r3, #0x2e - ldrsh r0, [r5, r3] - subs r5, r1, r0 - movs r0, #0x32 - ldrsh r1, [r6, r0] - mov r3, ip - movs r6, #0x32 - ldrsh r0, [r3, r6] - subs r1, r1, r0 - movs r3, #0 - cmp r3, r4 - bhs _0804454C -_0804450C: - movs r0, #0 - ldrsb r0, [r2, r0] - subs r0, r5, r0 - cmp r0, #0xf - bhi _08044544 - movs r0, #1 - ldrsb r0, [r2, r0] - subs r0, r1, r0 - cmp r0, #0xf - bhi _08044544 - movs r0, #0xf - movs r1, #0x11 - movs r2, #0 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _0804454C - ldr r0, _08044538 @ =gLinkEntity - bl sub_0806FA24 - b _0804454C - .align 2, 0 -_08044538: .4byte gLinkEntity -_0804453C: .4byte gUnk_03000BF0 -_08044540: .4byte gUnk_03003F80 -_08044544: - adds r2, #5 - adds r3, #1 - cmp r3, r4 - blo _0804450C -_0804454C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08044550 -sub_08044550: @ 0x08044550 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r0, _080445A8 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _080445B4 - ldrh r1, [r6, #0x24] - movs r2, #0x24 - ldrsh r0, [r6, r2] - cmp r0, #0xff - bgt _08044570 - adds r0, r1, #0 - adds r0, #0x10 - strh r0, [r6, #0x24] -_08044570: - ldr r5, _080445AC @ =gLinkEntity - ldrb r0, [r5, #0x14] - movs r4, #0xe - ands r4, r0 - ldr r0, _080445B0 @ =gUnk_08126EE4 - adds r4, r4, r0 - movs r3, #0x2e - ldrsh r0, [r6, r3] - movs r7, #0x32 - ldrsh r1, [r6, r7] - movs r3, #0x2e - ldrsh r2, [r5, r3] - movs r3, #0 - ldrsb r3, [r4, r3] - adds r2, r2, r3 - movs r7, #0x32 - ldrsh r3, [r5, r7] - ldrb r4, [r4, #1] - lsls r4, r4, #0x18 - asrs r4, r4, #0x18 - adds r3, r3, r4 - bl sub_080045D4 - strb r0, [r6, #0x15] - adds r0, r6, #0 - bl sub_0806F69C - b _080445BE - .align 2, 0 -_080445A8: .4byte gUnk_03003F80 -_080445AC: .4byte gLinkEntity -_080445B0: .4byte gUnk_08126EE4 -_080445B4: - adds r0, r6, #0 - bl sub_080445C0 - bl sub_0805E780 -_080445BE: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080445C0 -sub_080445C0: @ 0x080445C0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x21 - movs r1, #1 - movs r2, #1 - bl CreateObject - adds r1, r0, #0 - cmp r1, #0 - beq _080445DA - adds r0, r4, #0 - bl sub_0806FA24 -_080445DA: - pop {r4, pc} - - thumb_func_start sub_080445DC -sub_080445DC: @ 0x080445DC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08044604 - cmp r0, #3 - beq _08044604 - ldr r1, [r5, #0x2c] - ldr r0, [r5, #0x78] - subs r1, r1, r0 - ldr r0, [r4, #0x2c] - adds r0, r0, r1 - str r0, [r4, #0x2c] - ldr r1, [r5, #0x30] - ldr r0, [r5, #0x7c] - subs r1, r1, r0 - ldr r0, [r4, #0x30] - adds r0, r0, r1 - str r0, [r4, #0x30] -_08044604: - ldr r1, _08044684 @ =gUnk_080D1604 - 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, #0x84 - ldrb r0, [r0] - cmp r0, #0 - beq _08044626 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] -_08044626: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08044680 - movs r0, #0x3f - ands r0, r1 - cmp r0, #0 - bne _0804464A - ldrb r0, [r4, #0xc] - cmp r0, #6 - bne _0804464A - movs r0, #2 - rsbs r0, r0, #0 - bl sub_080526A0 -_0804464A: - adds r2, r4, #0 - adds r2, #0x45 - ldrb r0, [r2] - cmp r0, #0xfc - bhi _08044680 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0xff - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x80 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080A29BC - ldr r0, _08044688 @ =0x000001C3 - bl sub_080A3268 -_08044680: - pop {r4, r5, pc} - .align 2, 0 -_08044684: .4byte gUnk_080D1604 -_08044688: .4byte 0x000001C3 - - thumb_func_start sub_0804468C -sub_0804468C: @ 0x0804468C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - movs r6, #0 - movs r5, #3 - strb r5, [r0] - ldrb r1, [r4, #0x19] - movs r0, #0x3f - ands r0, r1 - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x19] - 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] - adds r0, r4, #0 - adds r0, #0x84 - strb r6, [r0] - ldrb r3, [r4, #0xa] - cmp r3, #0 - beq _080446C8 - cmp r3, #1 - beq _08044728 - b _0804474A -_080446C8: - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x79 - ldrb r0, [r2] - lsls r0, r0, #3 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x78 - strb r3, [r0] - adds r0, #0xb - strb r3, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r2] - adds r1, r5, #0 - ands r1, r0 - lsls r1, r1, #1 - ldr r0, _08044724 @ =gUnk_080D1620 - adds r1, r1, r0 - ldr r0, [r4, #0x50] - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - subs r3, #0x10 - lsls r3, r3, #0x10 - adds r1, r4, #0 - bl PositionRelative - ldr r0, [r4, #0x50] - ldrh r0, [r0, #0x36] - strh r0, [r4, #0x36] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - b _0804474A - .align 2, 0 -_08044724: .4byte gUnk_080D1620 -_08044728: - strb r5, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r6, [r0] - adds r0, #0xf - movs r2, #1 - strb r3, [r0] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_0804474A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0804474C -sub_0804474C: @ 0x0804474C - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r2, [r0, #0xc] - cmp r2, #3 - beq _0804476C - cmp r2, #3 - bgt _08044762 - cmp r2, #2 - beq _0804479A - b _080447A8 -_08044762: - cmp r2, #5 - beq _0804477A - cmp r2, #6 - beq _0804478A - b _080447A8 -_0804476C: - movs r1, #0 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - strb r1, [r4, #0xe] - b _080447A8 -_0804477A: - movs r0, #0 - strb r2, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - strb r0, [r1] - movs r0, #1 - strb r0, [r4, #0xf] - b _080447A8 -_0804478A: - movs r0, #0 - strb r2, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x74 - strb r0, [r1] - movs r0, #0x20 - strb r0, [r4, #0xf] - b _080447A8 -_0804479A: - movs r1, #0 - strb r2, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x74 - strb r1, [r0] - subs r0, #0x35 - strb r1, [r0] -_080447A8: - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080447B6 - adds r0, r4, #0 - bl sub_080042B8 - b _080447DC -_080447B6: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080447D0 - movs r0, #2 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080447D0: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080042B8 -_080447DC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080447E0 -sub_080447E0: @ 0x080447E0 - push {r4, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - ldrb r0, [r3, #0xc] - cmp r0, #1 - bne _08044818 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x2b - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_08044E74 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08044864 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _08044864 -_08044818: - adds r1, r4, #0 - adds r1, #0x77 - ldrb r0, [r1] - adds r2, r0, #1 - movs r0, #7 - ands r2, r0 - strb r2, [r1] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08044852 - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _08044848 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _08044852 -_08044848: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08044852: - adds r0, r3, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #2 - bne _08044864 - adds r0, r4, #0 - movs r1, #2 - bl sub_08044E74 -_08044864: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08044868 -sub_08044868: @ 0x08044868 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #3 - bne _0804487E - b _080449C8 -_0804487E: - cmp r0, #3 - bgt _0804488E - cmp r0, #1 - beq _08044948 - cmp r0, #2 - bne _0804488C - b _080449AE -_0804488C: - b _080449EA -_0804488E: - cmp r0, #0xfe - beq _08044898 - cmp r0, #0xff - beq _080448B6 - b _080449EA -_08044898: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - bne _080448A4 - b _080449EA -_080448A4: - adds r0, r4, #0 - adds r0, #0x74 - ldrb r0, [r0] - cmp r0, #2 - beq _080448B0 - b _080449EA -_080448B0: - bl sub_0805E780 - b _080449EA -_080448B6: - adds r0, r4, #0 - adds r0, #0x83 - ldrb r0, [r0] - cmp r0, #0 - bne _080448C2 - b _080449EA -_080448C2: - adds r6, r4, #0 - adds r6, #0x74 - ldrb r0, [r6] - cmp r0, #0 - beq _080448D2 - cmp r0, #1 - beq _08044900 - b _080449EA -_080448D2: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080448E2 - b _080449EA -_080448E2: - movs r0, #1 - strb r0, [r6] - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _080449EA -_08044900: - adds r0, r4, #0 - bl sub_0806F69C - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - subs r2, #0x10 - adds r0, r4, #0 - movs r3, #0xc - bl sub_0806FCB8 - cmp r0, #0 - beq _08044934 - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - ldrh r0, [r5, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - b _080449EA -_08044934: - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - b _080449EA -_08044948: - adds r1, r4, #0 - adds r1, #0x83 - ldrb r0, [r1] - cmp r0, #0 - bne _08044964 - adds r0, #1 - strb r0, [r1] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_08044964: - adds r0, r4, #0 - bl sub_08044DEC - adds r0, r5, #0 - adds r0, #0x86 - ldrb r0, [r0] - cmp r0, #1 - bls _080449A8 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r6, r0, #0x1e - cmp r6, #1 - bne _080449A8 - movs r0, #0x84 - adds r0, r0, r4 - mov r8, r0 - ldrb r7, [r0] - cmp r7, #0 - bne _080449A8 - adds r0, r4, #0 - movs r1, #0x18 - movs r2, #0 - bl sub_0804A98C - adds r5, r0, #0 - cmp r5, #0 - beq _080449A8 - strb r6, [r5, #0xb] - str r4, [r5, #0x50] - mov r0, r8 - strb r6, [r0] - adds r0, r4, #0 - adds r0, #0x3f - strb r7, [r0] -_080449A8: - movs r0, #0x20 - strb r0, [r4, #0xe] - b _080449EA -_080449AE: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080449EA - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bhi _080449EA - adds r0, r4, #0 - bl sub_0806F69C - b _080449EA -_080449C8: - adds r0, r4, #0 - movs r1, #1 - bl sub_08044E74 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080449E2 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _080449E8 -_080449E2: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_080449E8: - strb r0, [r4, #0x10] -_080449EA: - adds r0, r4, #0 - bl sub_080042B8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080449F8 -sub_080449F8: @ 0x080449F8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x50] - bl sub_080042B8 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08044A90 - adds r6, r4, #0 - adds r6, #0x74 - ldrb r0, [r6] - cmp r0, #1 - beq _08044A6A - cmp r0, #1 - bgt _08044A1C - cmp r0, #0 - beq _08044A26 - b _08044B02 -_08044A1C: - cmp r0, #2 - beq _08044AC6 - cmp r0, #3 - beq _08044AF8 - b _08044B02 -_08044A26: - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044B02 - adds r1, r5, #0 - adds r1, #0x78 - ldrb r0, [r1] - cmp r0, #0 - bne _08044A4C - adds r0, #1 - strb r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] -_08044A4C: - movs r0, #4 - strb r0, [r5, #0xe] - ldrb r0, [r5, #0x15] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08044B02 - movs r0, #1 - strb r0, [r6] - b _08044B02 -_08044A6A: - ldrb r0, [r5, #0xe] - cmp r0, #2 - beq _08044A84 - cmp r0, #2 - bgt _08044A7A - cmp r0, #1 - beq _08044A9A - b _08044B02 -_08044A7A: - cmp r0, #3 - beq _08044ABA - cmp r0, #4 - beq _08044AB4 - b _08044B02 -_08044A84: - adds r0, r4, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #0 - bne _08044B02 - strb r0, [r5, #0xf] -_08044A90: - adds r0, r5, #0 - movs r1, #0 - bl sub_08044E74 - b _08044B02 -_08044A9A: - ldrb r0, [r5, #0x15] - adds r0, #0x10 - movs r4, #0x1f - ands r0, r4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0x15] - adds r0, #0x10 - ands r0, r4 - strb r0, [r5, #0x15] - b _08044AC0 -_08044AB4: - adds r0, r5, #0 - bl sub_0806F69C -_08044ABA: - adds r0, r5, #0 - bl sub_0806F69C -_08044AC0: - movs r0, #2 - strb r0, [r5, #0xe] - b _08044B02 -_08044AC6: - adds r1, r5, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - bne _08044B02 - adds r0, #1 - strb r0, [r1] - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08044B02 - adds r0, r5, #0 - movs r1, #0x1c - movs r2, #0 - bl sub_0804A98C - adds r4, r0, #0 - cmp r4, #0 - beq _08044B02 - ldrh r0, [r4, #0x32] - adds r0, #4 - strh r0, [r4, #0x32] - str r5, [r4, #0x50] - str r4, [r5, #0x54] - b _08044B02 -_08044AF8: - ldrb r0, [r5, #0xf] - cmp r0, #0 - beq _08044B02 - movs r0, #0 - strb r0, [r5, #0xf] -_08044B02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08044B04 -sub_08044B04: @ 0x08044B04 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r6, [r4, #0x50] - bl sub_080042B8 - ldrb r0, [r6, #0xc] - cmp r0, #1 - bne _08044B26 - adds r0, r4, #0 - movs r1, #0 - bl sub_08044E74 - movs r0, #0x20 - strb r0, [r4, #0xe] - b _08044DE6 -_08044B26: - adds r0, r6, #0 - adds r0, #0x74 - ldrb r5, [r0] - cmp r5, #1 - bne _08044B32 - b _08044D10 -_08044B32: - cmp r5, #1 - bgt _08044B3C - cmp r5, #0 - beq _08044B4A - b _08044DE6 -_08044B3C: - cmp r5, #2 - bne _08044B42 - b _08044DE6 -_08044B42: - cmp r5, #3 - bne _08044B48 - b _08044D6A -_08044B48: - b _08044DE6 -_08044B4A: - adds r0, r4, #0 - bl sub_0806F69C - adds r7, r4, #0 - adds r7, #0x74 - ldrb r0, [r7] - mov r8, r7 - cmp r0, #1 - beq _08044BF4 - cmp r0, #1 - bgt _08044B66 - cmp r0, #0 - beq _08044B72 - b _08044DE6 -_08044B66: - cmp r0, #2 - beq _08044C4C - cmp r0, #3 - bne _08044B70 - b _08044C9C -_08044B70: - b _08044DE6 -_08044B72: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044B98 - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - movs r1, #2 - cmp r0, #0 - beq _08044B8C - movs r1, #4 -_08044B8C: - strb r1, [r4, #0xe] - ldrb r0, [r4, #0x15] - adds r0, #1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_08044B98: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - movs r2, #0xff - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08044BAA - b _08044DE6 -_08044BAA: - ldrb r0, [r4, #0xe] - cmp r0, #2 - beq _08044BB6 - movs r0, #1 - strb r0, [r4, #0xf] - b _08044DE6 -_08044BB6: - adds r1, r4, #0 - adds r1, #0x78 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r2 - cmp r0, #2 - bls _08044BDA - mov r2, r8 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - movs r0, #1 - strb r0, [r1] - movs r0, #4 - strb r0, [r4, #0xe] - strb r3, [r4, #0xf] - b _08044BDE -_08044BDA: - movs r0, #0x20 - strb r0, [r4, #0xf] -_08044BDE: - ldrb r0, [r1] - movs r2, #0xa0 - lsls r2, r2, #3 - adds r1, r2, #0 - cmp r0, #0 - beq _08044BF0 - movs r0, #0xa0 - lsls r0, r0, #2 - adds r1, r0, #0 -_08044BF0: - strh r1, [r4, #0x24] - b _08044DE6 -_08044BF4: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08044C04 - b _08044DE6 -_08044C04: - movs r0, #6 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - adds r0, #1 - movs r2, #0x1f - mov r8, r2 - mov r2, r8 - ands r0, r2 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - ands r0, r1 - cmp r0, #0x30 - beq _08044C24 - b _08044DE6 -_08044C24: - movs r0, #0x2e - ldrsh r1, [r6, r0] - movs r0, #0x32 - ldrsh r2, [r6, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strh r5, [r4, #0x24] - adds r0, #0x10 - mov r1, r8 - ands r0, r1 - strb r0, [r4, #0x15] - movs r0, #0x10 - strb r0, [r4, #0xe] - strb r0, [r4, #0xf] - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - b _08044DE6 -_08044C4C: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08044CA2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #4 - beq _08044CAE - cmp r5, #4 - bgt _08044C6A - cmp r5, #0 - beq _08044C78 - b _08044DE6 -_08044C6A: - cmp r5, #0xc - beq _08044C70 - b _08044DE6 -_08044C70: - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - b _08044DE6 -_08044C78: - ldrb r0, [r7] - adds r0, #1 - strb r0, [r7] - movs r2, #0x2e - ldrsh r1, [r6, r2] - movs r0, #0x32 - ldrsh r2, [r6, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - strh r5, [r4, #0x24] - movs r0, #4 - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08044DE6 -_08044C9C: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08044CB6 -_08044CA2: - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08044CAE - b _08044DE6 -_08044CAE: - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _08044DE6 -_08044CB6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08044CD2 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044CD2 - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - ldr r0, _08044D0C @ =0x0000014F - bl sub_080A3268 -_08044CD2: - adds r0, r4, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #3 - bne _08044CF8 - movs r2, #0x2e - ldrsh r1, [r6, r2] - movs r0, #0x32 - ldrsh r2, [r6, r0] - subs r2, #0x10 - adds r0, r4, #0 - movs r3, #0xc - bl sub_0806FCB8 - cmp r0, #0 - beq _08044CF8 - ldrb r0, [r6, #0xe] - adds r0, #1 - strb r0, [r6, #0xe] -_08044CF8: - movs r2, #0x2e - ldrsh r1, [r6, r2] - movs r0, #0x32 - ldrsh r2, [r6, r0] - subs r2, #0x10 - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - b _08044DE6 - .align 2, 0 -_08044D0C: .4byte 0x0000014F -_08044D10: - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #1 - beq _08044D50 - cmp r0, #3 - bne _08044DE6 - strb r5, [r1] - movs r0, #0x50 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r3, _08044D4C @ =0xFFF00000 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08044DE6 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _08044DE6 - .align 2, 0 -_08044D4C: .4byte 0xFFF00000 -_08044D50: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08044DE6 - strb r0, [r1] - movs r0, #0x20 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xf] - b _08044DE6 -_08044D6A: - adds r5, r4, #0 - adds r5, #0x74 - ldrb r0, [r5] - cmp r0, #1 - beq _08044DA4 - cmp r0, #1 - bgt _08044D7E - cmp r0, #0 - beq _08044D84 - b _08044DE6 -_08044D7E: - cmp r0, #2 - beq _08044DBE - b _08044DE6 -_08044D84: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08044DE6 - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044DE6 - adds r0, r4, #0 - bl sub_08044DEC - movs r0, #1 - strb r0, [r5] - movs r0, #0x10 - strb r0, [r4, #0xe] - b _08044DE6 -_08044DA4: - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08044DE6 - ldrb r0, [r5] - adds r0, #1 - strb r0, [r5] - b _08044DE6 -_08044DBE: - adds r0, r4, #0 - movs r1, #1 - bl sub_08044E74 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08044DD8 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - b _08044DDE -_08044DD8: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 -_08044DDE: - strb r0, [r4, #0x10] - ldrb r0, [r6, #0xe] - adds r0, #1 - strb r0, [r6, #0xe] -_08044DE6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08044DEC -sub_08044DEC: @ 0x08044DEC - push {lr} - mov ip, r0 - ldr r0, [r0, #0x50] - adds r0, #0x80 - mov r1, ip - adds r1, #0x79 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _08044E1A - mov r0, ip - ldrb r1, [r0, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x18] - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] - b _08044E26 -_08044E1A: - mov r2, ip - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] -_08044E26: - mov r0, ip - ldrb r1, [r0, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r1, #0 - mov r2, ip - strb r0, [r2, #0x10] - mov r0, ip - adds r0, #0x78 - strb r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - ldr r0, [r2, #0x50] - adds r1, r0, #0 - adds r1, #0x80 - ldrb r1, [r1] - subs r1, #1 - ldr r2, _08044E6C @ =gUnk_080D1628 - mov r3, ip - adds r3, #0x79 - lsls r1, r1, #2 - ldrb r3, [r3] - adds r1, r1, r3 - adds r1, r1, r2 - ldrb r1, [r1] - mov r2, ip - strb r1, [r2, #0x15] - ldr r3, _08044E70 @ =0xFFF00000 - mov r1, ip - movs r2, #0 - bl PositionRelative - pop {pc} - .align 2, 0 -_08044E6C: .4byte gUnk_080D1628 -_08044E70: .4byte 0xFFF00000 - - thumb_func_start sub_08044E74 -sub_08044E74: @ 0x08044E74 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r1, #0 - movs r0, #0 - movs r1, #1 - strb r1, [r5, #0xc] - adds r1, r5, #0 - adds r1, #0x74 - strb r0, [r1] - cmp r2, #1 - beq _08044ED4 - cmp r2, #1 - blo _08044EE4 - adds r6, r5, #0 - adds r6, #0x78 - cmp r2, #2 - bne _08044F3E - strb r2, [r5, #0xc] - ldrb r0, [r5, #0x15] - adds r0, #0x18 - movs r4, #0x1f - ands r0, r4 - strb r0, [r5, #0x15] - ldr r0, [r5, #0x50] - ldr r3, _08044ED0 @ =0xFFF00000 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - movs r0, #0xc0 - lsls r0, r0, #6 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0x15] - adds r0, #8 - ands r0, r4 - strb r0, [r5, #0x15] - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_0806F69C - b _08044F3E - .align 2, 0 -_08044ED0: .4byte 0xFFF00000 -_08044ED4: - ldrb r0, [r5, #0x15] - adds r0, #8 - movs r1, #0x1f - ands r0, r1 - strb r0, [r5, #0x15] - adds r6, r5, #0 - adds r6, #0x78 - b _08044F3E -_08044EE4: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - beq _08044F32 - ldrb r0, [r5, #0xe] - cmp r0, #1 - beq _08044F18 - cmp r0, #1 - blt _08044F3E - cmp r0, #4 - bgt _08044F3E - cmp r0, #3 - blt _08044F3E - movs r4, #0xff -_08044F04: - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - ands r0, r4 - cmp r0, #2 - bne _08044F04 - b _08044F3E -_08044F18: - ldrb r0, [r5, #0x15] - adds r0, #0x10 - movs r4, #0x1f - ands r0, r4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0x15] - adds r0, #0x10 - ands r0, r4 - strb r0, [r5, #0x15] - b _08044F3E -_08044F32: - ldrb r0, [r5, #0xe] - cmp r0, #2 - bne _08044F3E - adds r0, r5, #0 - bl sub_0806F69C -_08044F3E: - movs r0, #0 - movs r1, #1 - strb r1, [r5, #0xe] - strb r0, [r6] - movs r0, #0xa0 - lsls r0, r0, #3 - strh r0, [r5, #0x24] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08044F50 -sub_08044F50: @ 0x08044F50 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08044F6C @ =gUnk_080D16A4 - bl sub_0800129E - movs r3, #0xc - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_08044F6C: .4byte gUnk_080D16A4 - - thumb_func_start sub_08044F70 -sub_08044F70: @ 0x08044F70 - push {lr} - ldr r2, _08044F84 @ =gUnk_080D16BC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08044F84: .4byte gUnk_080D16BC - - thumb_func_start sub_08044F88 -sub_08044F88: @ 0x08044F88 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - beq _08044FA2 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, r1 - beq _08044FA2 - movs r0, #4 - strb r0, [r4, #0xc] - b _08044FAA -_08044FA2: - ldr r1, _08044FC0 @ =gUnk_080D16A4 - adds r0, r4, #0 - bl sub_0804AA30 -_08044FAA: - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08044FBC - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_08044FBC: - pop {r4, pc} - .align 2, 0 -_08044FC0: .4byte gUnk_080D16A4 - - thumb_func_start nullsub_171 -nullsub_171: @ 0x08044FC4 - bx lr - .align 2, 0 - - thumb_func_start sub_08044FC8 -sub_08044FC8: @ 0x08044FC8 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0804A720 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08044FF8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08044FF8 -sub_08044FF8: @ 0x08044FF8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - adds r4, #0x84 - strb r0, [r4] - pop {r4, pc} - - thumb_func_start sub_08045018 -sub_08045018: @ 0x08045018 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08045086 - movs r4, #3 - strb r4, [r5, #0xc] - movs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0x24 - ldrsh r0, [r5, r1] - cmp r0, #0 - ble _0804504C - movs r0, #0x80 - lsls r0, r0, #5 - movs r2, #0x24 - ldrsh r1, [r5, r2] - bl sub_0806FA04 - lsrs r0, r0, #8 - strb r0, [r5, #0xe] -_0804504C: - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0804507C - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - beq _0804507C - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #8 - ands r0, r1 - adds r0, #0xfc - adds r4, r4, r0 - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] - b _08045086 -_0804507C: - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] -_08045086: - pop {r4, r5, pc} - - thumb_func_start sub_08045088 -sub_08045088: @ 0x08045088 - push {r4, lr} - adds r4, r0, #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 _080450A6 - movs r0, #1 - strb r0, [r4, #0xc] -_080450A6: - pop {r4, pc} - - thumb_func_start sub_080450A8 -sub_080450A8: @ 0x080450A8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov r8, r0 - ldr r1, _0804516C @ =gUnk_080D16D0 - ldrb r0, [r0, #0xa] - adds r0, r0, r1 - ldrb r7, [r0] - movs r0, #0x48 - subs r0, r0, r7 - ldr r1, _08045170 @ =gUnk_03003DBC - ldrb r1, [r1] - cmp r0, r1 - ble _08045160 - cmp r7, #0 - beq _080450E2 - mov r4, sp - adds r5, r7, #0 -_080450D0: - mov r0, r8 - ldrb r1, [r0, #0xa] - movs r0, #0x57 - bl CreateEnemy - stm r4!, {r0} - subs r5, #1 - cmp r5, #0 - bne _080450D0 -_080450E2: - ldr r2, _08045174 @ =gUnk_080D16D4 - mov sb, r2 - movs r5, #0 - cmp r5, r7 - bge _08045142 -_080450EC: - lsls r0, r5, #2 - add r0, sp - ldr r6, [r0] - adds r4, r5, #1 - adds r0, r4, #0 - adds r1, r7, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - str r0, [r6, #0x54] - adds r0, r5, r7 - subs r0, #1 - adds r1, r7, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - str r0, [r6, #0x50] - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xb] - strh r1, [r6, #0x36] - adds r1, r6, #0 - adds r1, #0x3d - movs r0, #0xf0 - strb r0, [r1] - mov r0, sb - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - mov r0, r8 - adds r1, r6, #0 - bl sub_08045178 - movs r2, #2 - add sb, r2 - adds r5, r4, #0 - cmp r5, r7 - blt _080450EC -_08045142: - mov r0, r8 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r6, r0, #0 - cmp r6, #0 - beq _0804515A - mov r0, r8 - adds r1, r6, #0 - bl sub_0806FA24 -_0804515A: - mov r0, r8 - bl sub_0805E7BC -_08045160: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804516C: .4byte gUnk_080D16D0 -_08045170: .4byte gUnk_03003DBC -_08045174: .4byte gUnk_080D16D4 - - thumb_func_start sub_08045178 -sub_08045178: @ 0x08045178 - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - cmp r4, #0 - beq _080451C6 - bl sub_0804A4E4 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_080002CC - cmp r0, #0 - bne _080451C6 - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r2, r0, r5 - cmp r2, #0 - blt _080451AE - ldr r0, _080451C8 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - ldrh r0, [r0, #0x1e] - adds r1, r1, r0 - cmp r2, r1 - bge _080451AE - strh r2, [r4, #0x2e] -_080451AE: - movs r1, #0x32 - ldrsh r0, [r4, r1] - adds r2, r0, r6 - cmp r2, #0 - blt _080451C6 - ldr r0, _080451C8 @ =gUnk_03000BF0 - ldrh r1, [r0, #8] - ldrh r0, [r0, #0x20] - adds r1, r1, r0 - cmp r2, r1 - bge _080451C6 - strh r2, [r4, #0x32] -_080451C6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080451C8: .4byte gUnk_03000BF0 - - thumb_func_start sub_080451CC -sub_080451CC: @ 0x080451CC - ldrb r3, [r0, #0x10] - movs r2, #0xfe - ands r2, r3 - strb r2, [r1, #0x10] - ldr r2, [r0, #0x2c] - str r2, [r1, #0x2c] - ldr r2, [r0, #0x30] - str r2, [r1, #0x30] - ldr r2, [r0, #0x34] - str r2, [r1, #0x34] - adds r0, #0x68 - adds r1, #0x68 - ldrb r2, [r0, #4] - strb r2, [r1, #4] - ldrb r2, [r0, #5] - strb r2, [r1, #5] - ldrb r2, [r0, #6] - strb r2, [r1, #6] - ldrb r2, [r0, #7] - strb r2, [r1, #7] - ldrh r2, [r0, #8] - strh r2, [r1, #8] - ldrh r0, [r0, #0xa] - strh r0, [r1, #0xa] - bx lr - .align 2, 0 - - thumb_func_start sub_08045200 -sub_08045200: @ 0x08045200 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0804521C @ =gUnk_080D17C0 - bl sub_0800129E - movs r3, #8 - rsbs r3, r3, #0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - bl sub_0804A9AC - pop {r4, pc} - .align 2, 0 -_0804521C: .4byte gUnk_080D17C0 - - thumb_func_start sub_08045220 -sub_08045220: @ 0x08045220 - push {lr} - ldr r2, _08045234 @ =gUnk_080D17D8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08045234: .4byte gUnk_080D17D8 - - thumb_func_start sub_08045238 -sub_08045238: @ 0x08045238 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _0804524C - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC -_0804524C: - ldr r1, _08045258 @ =gUnk_080D17C0 - adds r0, r4, #0 - bl sub_0804AA30 - pop {r4, pc} - .align 2, 0 -_08045258: .4byte gUnk_080D17C0 - - thumb_func_start sub_0804525C -sub_0804525C: @ 0x0804525C - push {r4, lr} - adds r4, r0, #0 - ldr r3, [r4, #0x50] - cmp r4, r3 - beq _08045298 - cmp r3, #0 - beq _08045298 - adds r2, r4, #0 - adds r2, #0x6c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x50] - ldr r0, [r4, #0x54] - str r0, [r1, #0x54] - ldr r1, [r4, #0x54] - ldr r0, [r4, #0x50] - str r0, [r1, #0x50] - adds r0, r4, #0 - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08045298 - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08058800 -_08045298: - adds r0, r4, #0 - bl sub_0804A7D4 - pop {r4, pc} - - thumb_func_start nullsub_22 -nullsub_22: @ 0x080452A0 - bx lr - .align 2, 0 - - thumb_func_start sub_080452A4 -sub_080452A4: @ 0x080452A4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r2, #1 - movs r5, #1 - strb r5, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0804A720 - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _080452DC - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - b _080452E2 -_080452DC: - adds r0, r4, #0 - bl sub_080452E4 -_080452E2: - pop {r4, r5, pc} - - thumb_func_start sub_080452E4 -sub_080452E4: @ 0x080452E4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080452FC -sub_080452FC: @ 0x080452FC - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08004274 - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08045370 - movs r4, #3 - strb r4, [r5, #0xc] - movs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0x24 - ldrsh r0, [r5, r1] - cmp r0, #0 - ble _08045330 - movs r0, #0x80 - lsls r0, r0, #5 - movs r2, #0x24 - ldrsh r1, [r5, r2] - bl sub_0806FA04 - lsrs r0, r0, #8 - strb r0, [r5, #0xe] -_08045330: - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _08045360 - bl sub_08000E50 - ands r0, r4 - cmp r0, #0 - beq _08045360 - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #8 - ands r0, r1 - adds r0, #0xfc - adds r4, r4, r0 - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] - b _08045370 -_08045360: - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08045374 -_08045370: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08045374 -sub_08045374: @ 0x08045374 - push {r4, lr} - adds r4, r0, #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 _08045392 - movs r0, #1 - strb r0, [r4, #0xc] -_08045392: - pop {r4, pc} - - thumb_func_start sub_08045394 -sub_08045394: @ 0x08045394 - push {lr} - ldr r1, _080453A0 @ =gUnk_080D17E8 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080453A0: .4byte gUnk_080D17E8 - - thumb_func_start sub_080453A4 -sub_080453A4: @ 0x080453A4 - push {lr} - ldr r2, _080453B8 @ =gUnk_080D1800 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080453B8: .4byte gUnk_080D1800 - - thumb_func_start sub_080453BC -sub_080453BC: @ 0x080453BC - push {lr} - adds r2, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - beq _080453D6 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, r1 - beq _080453D6 - movs r0, #2 - strb r0, [r2, #0xc] - b _080453DE -_080453D6: - ldr r1, _080453E0 @ =gUnk_080D17E8 - adds r0, r2, #0 - bl sub_0804AA30 -_080453DE: - pop {pc} - .align 2, 0 -_080453E0: .4byte gUnk_080D17E8 - - thumb_func_start nullsub_172 -nullsub_172: @ 0x080453E4 - bx lr - .align 2, 0 - - thumb_func_start sub_080453E8 -sub_080453E8: @ 0x080453E8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - adds r0, #0x3f - strb r1, [r0] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0804A720 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08045524 - pop {r4, pc} - - thumb_func_start sub_08045430 -sub_08045430: @ 0x08045430 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08045452 - adds r0, r4, #0 - bl sub_08045524 -_08045452: - pop {r4, pc} - - thumb_func_start sub_08045454 -sub_08045454: @ 0x08045454 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x10 - mov r8, r0 - ldr r1, _08045518 @ =gUnk_080D180C - ldrb r0, [r0, #0xa] - adds r0, r0, r1 - ldrb r7, [r0] - movs r0, #0x48 - subs r0, r0, r7 - ldr r1, _0804551C @ =gUnk_03003DBC - ldrb r1, [r1] - cmp r0, r1 - ble _0804550C - cmp r7, #0 - beq _0804548E - mov r4, sp - adds r5, r7, #0 -_0804547C: - mov r0, r8 - ldrb r1, [r0, #0xa] - movs r0, #0x59 - bl CreateEnemy - stm r4!, {r0} - subs r5, #1 - cmp r5, #0 - bne _0804547C -_0804548E: - ldr r2, _08045520 @ =gUnk_080D1810 - mov sb, r2 - movs r5, #0 - cmp r5, r7 - bge _080454EE -_08045498: - lsls r0, r5, #2 - add r0, sp - ldr r6, [r0] - adds r4, r5, #1 - adds r0, r4, #0 - adds r1, r7, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - str r0, [r6, #0x54] - adds r0, r5, r7 - subs r0, #1 - adds r1, r7, #0 - bl __modsi3 - lsls r0, r0, #2 - add r0, sp - ldr r0, [r0] - str r0, [r6, #0x50] - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xb] - strh r1, [r6, #0x36] - adds r1, r6, #0 - adds r1, #0x3d - movs r0, #0xf0 - strb r0, [r1] - mov r0, sb - movs r2, #0 - ldrsb r2, [r0, r2] - movs r3, #1 - ldrsb r3, [r0, r3] - mov r0, r8 - adds r1, r6, #0 - bl sub_08045178 - movs r2, #2 - add sb, r2 - adds r5, r4, #0 - cmp r5, r7 - blt _08045498 -_080454EE: - mov r0, r8 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r6, r0, #0 - cmp r6, #0 - beq _08045506 - mov r0, r8 - adds r1, r6, #0 - bl sub_0806FA24 -_08045506: - mov r0, r8 - bl sub_0805E7BC -_0804550C: - add sp, #0x10 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08045518: .4byte gUnk_080D180C -_0804551C: .4byte gUnk_03003DBC -_08045520: .4byte gUnk_080D1810 - - thumb_func_start sub_08045524 -sub_08045524: @ 0x08045524 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xe0 - lsls r0, r0, #9 - str r0, [r5, #0x20] - adds r0, r5, #0 - movs r1, #1 - movs r2, #8 - bl sub_0804A024 - adds r4, r0, #0 - cmp r4, #0xff - beq _08045556 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - bne _08045556 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xe] - b _08045596 -_08045556: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08045562 - subs r0, #1 - strb r0, [r5, #0xe] - b _080455A8 -_08045562: - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _0804559E - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _0804559E - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #8 - ands r0, r1 - adds r0, #0xfc - adds r4, r4, r0 -_08045596: - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] - b _080455A8 -_0804559E: - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] -_080455A8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080455AC -sub_080455AC: @ 0x080455AC - push {lr} - ldr r1, _080455B8 @ =gUnk_080D1868 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080455B8: .4byte gUnk_080D1868 - - thumb_func_start sub_080455BC -sub_080455BC: @ 0x080455BC - push {lr} - ldr r2, _080455D0 @ =gUnk_080D1880 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080455D0: .4byte gUnk_080D1880 - - thumb_func_start sub_080455D4 -sub_080455D4: @ 0x080455D4 - push {lr} - ldr r1, _080455E0 @ =gUnk_080D1868 - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_080455E0: .4byte gUnk_080D1868 - - thumb_func_start sub_080455E4 -sub_080455E4: @ 0x080455E4 - push {lr} - adds r3, r0, #0 - ldr r0, [r3, #0x50] - cmp r3, r0 - beq _0804560A - cmp r0, #0 - beq _0804560A - adds r2, r3, #0 - adds r2, #0x6c - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - ldr r1, [r3, #0x50] - ldr r0, [r3, #0x54] - str r0, [r1, #0x54] - ldr r1, [r3, #0x54] - ldr r0, [r3, #0x50] - str r0, [r1, #0x50] -_0804560A: - adds r0, r3, #0 - bl sub_0804A7D4 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_23 -nullsub_23: @ 0x08045614 - bx lr - .align 2, 0 - - thumb_func_start sub_08045618 -sub_08045618: @ 0x08045618 - push {r4, lr} - adds r4, r0, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0804A720 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08045678 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08045654 -sub_08045654: @ 0x08045654 - push {r4, lr} - adds r4, r0, #0 - bl sub_080AEFE0 - adds r0, r4, #0 - bl sub_08004274 - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08045676 - adds r0, r4, #0 - bl sub_08045678 -_08045676: - pop {r4, pc} - - thumb_func_start sub_08045678 -sub_08045678: @ 0x08045678 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xe0 - lsls r0, r0, #9 - str r0, [r5, #0x20] - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0804568E - subs r0, #1 - strb r0, [r5, #0xe] - b _080456D4 -_0804568E: - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - strb r0, [r5, #0xe] - adds r0, r5, #0 - bl sub_08049FA0 - cmp r0, #0 - bne _080456CA - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - cmp r1, #0 - beq _080456CA - adds r0, r5, #0 - bl sub_08049EE4 - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #8 - ands r0, r1 - adds r0, #0xfc - adds r4, r4, r0 - movs r0, #0x18 - ands r4, r0 - strb r4, [r5, #0x15] - b _080456D4 -_080456CA: - bl sub_08000E50 - movs r1, #0x18 - ands r0, r1 - strb r0, [r5, #0x15] -_080456D4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080456D8 -sub_080456D8: @ 0x080456D8 - push {lr} - ldr r1, _080456E4 @ =gUnk_080D1888 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080456E4: .4byte gUnk_080D1888 - - thumb_func_start sub_080456E8 -sub_080456E8: @ 0x080456E8 - push {lr} - ldr r2, _080456FC @ =gUnk_080D18A0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080456FC: .4byte gUnk_080D18A0 - - thumb_func_start sub_08045700 -sub_08045700: @ 0x08045700 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xa] - cmp r0, #0 - beq _080457D0 - ldr r0, [r5, #0x50] - ldr r3, [r0, #0x50] - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080457D0 - movs r0, #0x3f - ands r0, r1 - cmp r0, #0xe - beq _08045728 - cmp r0, #0x15 - bne _08045778 -_08045728: - adds r1, r5, #0 - adds r1, #0x81 - ldrb r0, [r1] - cmp r0, #0 - bne _0804575C - movs r0, #3 - strb r0, [r5, #0xc] - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldrb r1, [r5, #0xa] - lsls r1, r1, #3 - ldrb r0, [r5, #0xe] - adds r0, #2 - orrs r1, r0 - adds r0, r5, #0 - bl sub_08004260 - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldrb r2, [r5, #0xe] - adds r2, #2 - orrs r1, r2 - bl sub_08004260 -_0804575C: - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0804576C - movs r0, #0xbd - lsls r0, r0, #1 - bl sub_080A3268 - b _080457D0 -_0804576C: - ldr r0, _08045774 @ =0x00000119 - bl sub_080A3268 - b _080457D0 - .align 2, 0 -_08045774: .4byte 0x00000119 -_08045778: - adds r2, r5, #0 - adds r2, #0x45 - ldrb r1, [r2] - adds r0, r1, #0 - cmp r0, #0xff - beq _080457D0 - movs r0, #0xff - strb r0, [r2] - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _080457D0 - adds r0, r3, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _080457D0 - adds r0, r3, #0 - adds r0, #0x76 - movs r1, #1 - ldrb r2, [r5, #0xb] - lsls r1, r2 - ldrb r2, [r0] - orrs r1, r2 - strb r1, [r0] - adds r1, r5, #0 - adds r1, #0x85 - ldrb r0, [r1] - cmp r0, #0 - bne _080457D0 - adds r0, #1 - strb r0, [r1] - ldrb r1, [r5, #0xa] - lsls r1, r1, #3 - movs r4, #6 - orrs r1, r4 - adds r0, r5, #0 - bl sub_08004260 - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - orrs r1, r4 - bl sub_08004260 -_080457D0: - ldr r1, _080457DC @ =gUnk_080D1888 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_080457DC: .4byte gUnk_080D1888 - - thumb_func_start nullsub_173 -nullsub_173: @ 0x080457E0 - bx lr - .align 2, 0 - - thumb_func_start sub_080457E4 -sub_080457E4: @ 0x080457E4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08045850 @ =gUnk_02000050 - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - cmp r2, #0 - bne _08045868 - movs r3, #1 - strb r3, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, #4 - strb r2, [r0] - strb r2, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0x30 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x83 - strb r2, [r0] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08045854 - adds r0, r4, #0 - bl sub_08045A00 - movs r0, #0x5a - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - cmp r1, #0 - beq _0804585A - str r4, [r1, #0x50] - str r1, [r4, #0x54] - ldrb r0, [r4, #0xe] - strb r0, [r1, #0xe] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xb] - adds r0, r4, #0 - bl sub_0806FA24 - b _0804585A - .align 2, 0 -_08045850: .4byte gUnk_02000050 -_08045854: - adds r0, r4, #0 - adds r0, #0x63 - strb r3, [r0] -_0804585A: - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - movs r0, #1 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_08045868: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804586C -sub_0804586C: @ 0x0804586C - push {r4, lr} - adds r4, r0, #0 - bl sub_08045A28 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - cmp r0, #0 - bne _080458AA - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080458C2 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0804589A - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_0804589A: - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08004260 - b _080458C2 -_080458AA: - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080458C2 - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] -_080458C2: - pop {r4, pc} - - thumb_func_start sub_080458C4 -sub_080458C4: @ 0x080458C4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_08045A28 - ldr r1, [r5, #0x50] - ldrb r2, [r5, #0xa] - cmp r2, #0 - beq _080458D6 - ldr r1, [r1, #0x50] -_080458D6: - ldrb r0, [r1, #0xc] - cmp r0, #3 - bne _08045934 - adds r0, r1, #0 - adds r0, #0x80 - ldrb r0, [r0] - cmp r0, #1 - bne _08045934 - movs r0, #0 - movs r4, #4 - strb r4, [r5, #0xc] - strb r0, [r5, #0xf] - cmp r2, #0 - beq _08045934 - ldrb r0, [r5, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r5, #0x10] - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _0804591C - ldrb r1, [r5, #0xa] - lsls r1, r1, #3 - movs r4, #5 - orrs r1, r4 - adds r0, r5, #0 - bl sub_08004260 - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - orrs r1, r4 - bl sub_08004260 - b _08045934 -_0804591C: - ldrb r1, [r5, #0xa] - lsls r1, r1, #3 - orrs r1, r4 - adds r0, r5, #0 - bl sub_08004260 - ldr r0, [r5, #0x50] - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - orrs r1, r4 - bl sub_08004260 -_08045934: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08045938 -sub_08045938: @ 0x08045938 - push {r4, lr} - adds r4, r0, #0 - bl sub_08045A28 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045980 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08045980 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08045966 - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x32 - b _0804597E -_08045966: - ldr r0, [r4, #0x50] - ldr r2, [r0, #0x50] - adds r2, #0x76 - movs r0, #1 - ldrb r1, [r4, #0xb] - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x31 -_0804597E: - strb r0, [r1] -_08045980: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08045984 -sub_08045984: @ 0x08045984 - push {r4, lr} - adds r4, r0, #0 - bl sub_08045A28 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080459A6 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080459FE - movs r0, #0x20 - strb r0, [r4, #0xf] - b _080459FE -_080459A6: - ldr r2, [r4, #0x50] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080459B0 - ldr r2, [r2, #0x50] -_080459B0: - ldrb r0, [r2, #0x14] - cmp r0, #2 - bhi _080459FE - ldrb r0, [r2, #0xc] - cmp r0, #3 - beq _080459FE - movs r0, #0 - movs r3, #1 - strb r3, [r4, #0xc] - strb r0, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x81 - strb r0, [r1] - adds r1, #4 - strb r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _080459DA - subs r1, #0x46 - movs r0, #0x33 - strb r0, [r1] -_080459DA: - adds r0, r2, #0 - adds r0, #0x75 - ldrb r0, [r0] - ldrb r1, [r4, #0xb] - asrs r0, r1 - ands r0, r3 - cmp r0, #0 - beq _080459EE - strb r3, [r4, #0xe] - b _080459F0 -_080459EE: - strb r0, [r4, #0xe] -_080459F0: - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - movs r0, #1 - orrs r1, r0 - adds r0, r4, #0 - bl sub_08004260 -_080459FE: - pop {r4, pc} - - thumb_func_start sub_08045A00 -sub_08045A00: @ 0x08045A00 - push {lr} - adds r1, r0, #0 - ldrb r3, [r1, #0xb] - lsls r3, r3, #1 - ldr r0, _08045A24 @ =gUnk_080D18B4 - adds r3, r3, r0 - ldr r0, [r1, #0x50] - movs r2, #0 - ldrsb r2, [r3, r2] - lsls r2, r2, #0x10 - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r3, #3 - lsls r3, r3, #0x10 - bl PositionRelative - pop {pc} - .align 2, 0 -_08045A24: .4byte gUnk_080D18B4 - - thumb_func_start sub_08045A28 -sub_08045A28: @ 0x08045A28 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r0, #0x82 - ldrb r0, [r0] - cmp r0, #0 - bne _08045A3E - adds r0, r5, #0 - bl sub_08004274 -_08045A3E: - adds r6, r5, #0 - adds r6, #0x5a - ldrb r0, [r6] - movs r1, #0x70 - mov r8, r1 - mov r4, r8 - ands r4, r0 - ldrb r7, [r5, #0xa] - cmp r7, #0 - bne _08045AF8 - adds r0, r5, #0 - bl sub_08045A00 - adds r1, r5, #0 - adds r1, #0x83 - ldrb r0, [r1] - adds r2, r1, #0 - cmp r0, #1 - beq _08045AA4 - cmp r0, #1 - bgt _08045A6E - cmp r0, #0 - beq _08045A78 - b _08045B7C -_08045A6E: - cmp r0, #2 - beq _08045ABC - cmp r0, #3 - beq _08045AE8 - b _08045B7C -_08045A78: - cmp r4, #0x20 - beq _08045A8C - cmp r4, #0x20 - bhi _08045A86 - cmp r4, #0 - beq _08045A96 - b _08045B7C -_08045A86: - cmp r4, #0x40 - beq _08045A96 - b _08045B7C -_08045A8C: - movs r0, #1 - strb r0, [r1] - movs r1, #0x9f - lsls r1, r1, #1 - b _08045B5A -_08045A96: - movs r0, #2 - strb r0, [r2] - ldr r1, _08045AA0 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045AA0: .4byte 0x0000013F -_08045AA4: - cmp r4, #0 - beq _08045AB0 - cmp r4, #0x10 - bne _08045B7C - strb r7, [r1] - b _08045B58 -_08045AB0: - movs r0, #2 - strb r0, [r1] - ldr r1, _08045AB8 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045AB8: .4byte 0x0000013F -_08045ABC: - cmp r4, #0x20 - beq _08045AD0 - cmp r4, #0x20 - bhi _08045ACA - cmp r4, #0x10 - beq _08045ADA - b _08045B7C -_08045ACA: - cmp r4, #0x40 - beq _08045ADE - b _08045B7C -_08045AD0: - movs r0, #1 - strb r0, [r1] - movs r1, #0x9f - lsls r1, r1, #1 - b _08045B5A -_08045ADA: - strb r7, [r1] - b _08045B58 -_08045ADE: - strb r0, [r1] - ldr r1, _08045AE4 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045AE4: .4byte 0x0000013F -_08045AE8: - cmp r4, #0 - bne _08045B7C - movs r0, #2 - strb r0, [r1] - ldr r1, _08045AF4 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045AF4: .4byte 0x0000013F -_08045AF8: - ldr r0, [r5, #0x50] - ldr r3, _08045B18 @ =0xFFFF0000 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r2, r5, #0 - adds r2, #0x83 - ldrb r0, [r2] - cmp r0, #1 - beq _08045B3A - cmp r0, #1 - bgt _08045B1C - cmp r0, #0 - beq _08045B22 - b _08045B7C - .align 2, 0 -_08045B18: .4byte 0xFFFF0000 -_08045B1C: - cmp r0, #2 - beq _08045B68 - b _08045B7C -_08045B22: - ldrb r0, [r6] - mov r1, r8 - ands r1, r0 - cmp r1, #0x10 - beq _08045B54 - cmp r1, #0x20 - bne _08045B7C - movs r0, #1 - strb r0, [r2] - movs r1, #0x9f - lsls r1, r1, #1 - b _08045B5A -_08045B3A: - ldrb r0, [r6] - mov r1, r8 - ands r1, r0 - cmp r1, #0 - beq _08045B4A - cmp r1, #0x10 - beq _08045B54 - b _08045B7C -_08045B4A: - strb r1, [r2] - ldr r1, _08045B50 @ =0x0000013F - b _08045B5A - .align 2, 0 -_08045B50: .4byte 0x0000013F -_08045B54: - movs r0, #2 - strb r0, [r2] -_08045B58: - ldr r1, _08045B64 @ =0x0000013B -_08045B5A: - adds r0, r5, #0 - bl sub_0801D2B4 - b _08045B7C - .align 2, 0 -_08045B64: .4byte 0x0000013B -_08045B68: - ldrb r0, [r6] - mov r1, r8 - ands r1, r0 - cmp r1, #0 - bne _08045B7C - strb r1, [r2] - ldr r1, _08045B84 @ =0x0000013F - adds r0, r5, #0 - bl sub_0801D2B4 -_08045B7C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08045B84: .4byte 0x0000013F - - thumb_func_start sub_08045B88 -sub_08045B88: @ 0x08045B88 - push {lr} - ldr r1, _08045B94 @ =gUnk_080D19FC - bl sub_0800129E - pop {pc} - .align 2, 0 -_08045B94: .4byte gUnk_080D19FC - - thumb_func_start sub_08045B98 -sub_08045B98: @ 0x08045B98 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r1, _08045BC4 @ =gUnk_080D1A14 - 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 - bl sub_0800445C - pop {r4, pc} - .align 2, 0 -_08045BC4: .4byte gUnk_080D1A14 - - thumb_func_start sub_08045BC8 -sub_08045BC8: @ 0x08045BC8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x3f - ldrb r0, [r0] - cmp r0, #1 - bne _08045C2C - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r2, #0x7f - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0x42 - bne _08045C2C - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - movs r0, #0x28 - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x10] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - movs r1, #4 - bl sub_08046030 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08045C16 - ldrh r0, [r1, #0x36] - subs r0, #8 - strh r0, [r1, #0x36] -_08045C16: - ldr r0, _08045C30 @ =gUnk_03003F80 - adds r0, #0x27 - movs r1, #0xff - strb r1, [r0] - ldr r0, _08045C34 @ =0x000001BB - bl sub_08004488 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_08045C2C: - pop {r4, pc} - .align 2, 0 -_08045C30: .4byte gUnk_03003F80 -_08045C34: .4byte 0x000001BB - - thumb_func_start nullsub_174 -nullsub_174: @ 0x08045C38 - bx lr - .align 2, 0 - - thumb_func_start sub_08045C3C -sub_08045C3C: @ 0x08045C3C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - strb r0, [r4, #0xf] - ldrh r1, [r4, #0x2e] - adds r0, r4, #0 - adds r0, #0x78 - movs r2, #0 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7a - strh r0, [r1] - strb r2, [r4, #0x14] - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #5 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb1 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - 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 r0, r4, #0 - movs r1, #0 - bl sub_08046030 - adds r0, r4, #0 - bl sub_08095C48 - ldr r1, _08045CA0 @ =gUnk_08015AC4 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - .align 2, 0 -_08045CA0: .4byte gUnk_08015AC4 - - thumb_func_start sub_08045CA4 -sub_08045CA4: @ 0x08045CA4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _08045CC0 - subs r0, #1 - strb r0, [r4, #0xe] - b _08045CD8 -_08045CC0: - adds r0, r4, #0 - movs r1, #0 - bl sub_08045F54 - cmp r0, #0 - beq _08045CD8 - adds r0, r4, #0 - bl sub_08045FF0 - strb r5, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xf] -_08045CD8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_24 -nullsub_24: @ 0x08045CDC - bx lr - .align 2, 0 - - thumb_func_start sub_08045CE0 -sub_08045CE0: @ 0x08045CE0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08004274 - ldrb r0, [r4, #0xd] - cmp r0, #4 - bls _08045CF0 - b _08045DF8 -_08045CF0: - lsls r0, r0, #2 - ldr r1, _08045CFC @ =_08045D00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08045CFC: .4byte _08045D00 -_08045D00: @ jump table - .4byte _08045D14 @ case 0 - .4byte _08045D36 @ case 1 - .4byte _08045D60 @ case 2 - .4byte _08045D9A @ case 3 - .4byte _08045DBC @ case 4 -_08045D14: - movs r6, #1 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045DF8 - strb r6, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08045F98 - b _08045DB2 -_08045D36: - movs r6, #1 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08045DF8 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_08045F98 - adds r0, r4, #0 - movs r1, #2 - bl sub_08046030 - b _08045DF8 -_08045D60: - movs r6, #1 - adds r0, r4, #0 - bl sub_0804604C - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _08045DF8 - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl sub_0804A98C - adds r1, r0, #0 - cmp r1, #0 - beq _08045DF8 - str r4, [r1, #0x50] - ldrb r0, [r4, #0x15] - strb r0, [r1, #0x15] - ldrb r1, [r5] - movs r0, #0xfe - ands r0, r1 - strb r0, [r5] - movs r0, #3 - strb r0, [r4, #0xd] - b _08045DF8 -_08045D9A: - movs r6, #2 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045DF8 - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x50 - strb r0, [r4, #0xe] -_08045DB2: - adds r0, r4, #0 - movs r1, #1 - bl sub_08046030 - b _08045DF8 -_08045DBC: - movs r6, #2 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08045DF8 - adds r0, r4, #0 - movs r1, #0 - bl sub_08045F54 - adds r5, r0, #0 - cmp r5, #0 - beq _08045DEC - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08045F98 - b _08045DF8 -_08045DEC: - adds r0, r4, #0 - bl sub_08045FA0 - movs r0, #0x50 - strb r0, [r4, #0xe] - strb r5, [r4, #0xf] -_08045DF8: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08045F54 - adds r5, r0, #0 - cmp r5, #0 - bne _08045E12 - adds r0, r4, #0 - bl sub_08045FA0 - strb r5, [r4, #0xd] - strb r5, [r4, #0xe] - strb r5, [r4, #0xf] -_08045E12: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08045E14 -sub_08045E14: @ 0x08045E14 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08045E2C @ =gUnk_03003F80 - adds r0, #0x27 - movs r1, #0xff - strb r1, [r0] - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _08045E30 - cmp r0, #1 - beq _08045E70 - b _08045EBA - .align 2, 0 -_08045E2C: .4byte gUnk_03003F80 -_08045E30: - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08045E6A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045EBA - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_08045F98 - adds r0, r4, #0 - movs r1, #5 - bl sub_08046030 - 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] - b _08045EBA -_08045E6A: - subs r0, #1 - strb r0, [r4, #0xe] - b _08045EBA -_08045E70: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045EBA - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - bl sub_08046030 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0804A9FC - adds r2, r0, #0 - cmp r2, #0 - beq _08045EBA - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #3 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, #0x36] - subs r0, #0xc - strh r0, [r2, #0x36] - adds r0, r2, #0 - movs r1, #2 - bl sub_0805E3A0 -_08045EBA: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0800445C - pop {r4, pc} - - thumb_func_start sub_08045EC8 -sub_08045EC8: @ 0x08045EC8 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08045ED4 -sub_08045ED4: @ 0x08045ED4 - push {lr} - bl sub_08045FA0 - pop {pc} - - thumb_func_start sub_08045EDC -sub_08045EDC: @ 0x08045EDC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - adds r1, r0, #0 - cmp r1, #0 - bne _08045F00 - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_08045F98 - adds r0, r4, #0 - movs r1, #2 - bl sub_08046030 -_08045F00: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0804604C - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r2, #1 - ands r2, r1 - cmp r2, #0 - beq _08045F38 - movs r0, #0xfe - ands r0, r1 - strb r0, [r3] - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_080954AC - ldr r0, _08045F34 @ =0x0000018D - bl sub_08004488 - b _08045F4E - .align 2, 0 -_08045F34: .4byte 0x0000018D -_08045F38: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08045F4E - movs r0, #5 - strb r0, [r4, #0xc] - strb r2, [r4, #0xd] - adds r0, r4, #0 - movs r1, #1 - bl sub_08046030 -_08045F4E: - pop {r4, pc} - - thumb_func_start nullsub_25 -nullsub_25: @ 0x08045F50 - bx lr - .align 2, 0 - - thumb_func_start sub_08045F54 -sub_08045F54: @ 0x08045F54 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #1 - bl sub_08049DF4 - adds r4, r0, #0 - cmp r4, #0 - beq _08045F90 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0x20 - movs r3, #0x20 - bl sub_080041A0 - cmp r0, #0 - bne _08045F90 - cmp r5, #2 - beq _08045F94 - movs r3, #0x50 - cmp r5, #0 - beq _08045F82 - movs r3, #0x58 -_08045F82: - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r3, #0 - bl sub_080041A0 - cmp r0, #0 - bne _08045F94 -_08045F90: - movs r0, #0 - b _08045F96 -_08045F94: - movs r0, #1 -_08045F96: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08045F98 -sub_08045F98: @ 0x08045F98 - movs r1, #0x10 - strb r1, [r0, #0x15] - movs r0, #1 - bx lr - - thumb_func_start sub_08045FA0 -sub_08045FA0: @ 0x08045FA0 - push {lr} - adds r2, r0, #0 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x78 - ldrh r0, [r0] - movs r1, #0 - strh r0, [r2, #0x2e] - adds r0, r2, #0 - adds r0, #0x7a - ldrh r0, [r0] - strh r0, [r2, #0x32] - adds r0, r2, #0 - adds r0, #0x62 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, r2, #0 - movs r1, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08045FF0 -sub_08045FF0: @ 0x08045FF0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #3 - 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, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_08045F98 - adds r0, r4, #0 - movs r1, #1 - bl sub_08046030 - pop {r4, pc} - - thumb_func_start sub_08046030 -sub_08046030: @ 0x08046030 - push {lr} - adds r3, r1, #0 - ldrb r1, [r0, #0x15] - lsrs r1, r1, #3 - ldr r2, _08046048 @ =gUnk_080D1A38 - adds r3, r3, r2 - ldrb r2, [r3] - orrs r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 -_08046048: .4byte gUnk_080D1A38 - - thumb_func_start sub_0804604C -sub_0804604C: @ 0x0804604C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _08046070 - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bhi _08046070 - ldr r1, _08046074 @ =gUnk_080D1A3E - ldrb r0, [r2, #0xe] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x63 - strb r1, [r0] -_08046070: - pop {pc} - .align 2, 0 -_08046074: .4byte gUnk_080D1A3E - - thumb_func_start sub_08046078 -sub_08046078: @ 0x08046078 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _08046114 @ =gUnk_03003F80 - adds r0, #0x27 - movs r1, #0 - strb r1, [r0] - ldr r4, _08046118 @ =gUnk_080D1A4E - ldr r6, _0804611C @ =gUnk_03000BF0 - movs r5, #4 -_0804608A: - adds r0, r7, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080460AE - ldrh r0, [r4] - ldrh r2, [r6, #6] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - adds r4, #2 - ldrh r0, [r4] - ldrh r2, [r6, #8] - adds r0, r0, r2 - strh r0, [r1, #0x32] - adds r4, #2 -_080460AE: - subs r5, #1 - cmp r5, #0 - bge _0804608A - movs r0, #0xb7 - lsls r0, r0, #1 - bl sub_08004488 - ldr r0, _08046120 @ =0x000007A2 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08046124 @ =0x000007A3 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08046128 @ =0x000007A5 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804612C @ =0x000007A6 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08046130 @ =0x000007A7 - movs r1, #1 - bl sub_0807BA8C - adds r0, r7, #0 - movs r1, #0x43 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08046102 - adds r0, r7, #0 - bl sub_0806FA24 - movs r0, #0xc2 - lsls r0, r0, #1 - bl sub_08004488 -_08046102: - ldr r1, [r7, #0x54] - cmp r1, #0 - beq _0804610C - movs r0, #0xff - strb r0, [r1, #0xc] -_0804610C: - adds r0, r7, #0 - bl sub_0804AA1C - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08046114: .4byte gUnk_03003F80 -_08046118: .4byte gUnk_080D1A4E -_0804611C: .4byte gUnk_03000BF0 -_08046120: .4byte 0x000007A2 -_08046124: .4byte 0x000007A3 -_08046128: .4byte 0x000007A5 -_0804612C: .4byte 0x000007A6 -_08046130: .4byte 0x000007A7 - - thumb_func_start sub_08046134 -sub_08046134: @ 0x08046134 - push {lr} - ldr r2, _08046148 @ =gUnk_080D1A64 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08046148: .4byte gUnk_080D1A64 - - thumb_func_start sub_0804614C -sub_0804614C: @ 0x0804614C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _08046248 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x3d - bhi _08046244 - movs r0, #0x22 - bl sub_080A7EE0 - adds r1, r0, #0 - movs r4, #0 - strb r4, [r1, #0xa] - str r6, [r1, #0x50] - ldr r0, [r6, #0x64] - str r1, [r0, #0x14] - movs r0, #0x63 - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - ldr r0, [r6, #0x64] - str r1, [r0, #0x10] - movs r0, #0x61 - movs r1, #0 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #1 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #2 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #3 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #4 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #5 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #6 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #0x61 - movs r1, #7 - bl CreateEnemy - adds r1, r0, #0 - str r6, [r1, #0x50] - movs r0, #1 - strb r0, [r6, #0xc] - ldrb r2, [r6, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r6, #0x1b] - ldrb r0, [r6, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, #0x19] - adds r0, r6, #0 - adds r0, #0x38 - movs r5, #2 - strb r5, [r0] - adds r0, #0x40 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - adds r1, r6, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - ldr r0, _0804624C @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _08046250 @ =gUnk_02002F00 - adds r1, r4, #0 - bl sub_0801D630 - adds r0, r6, #0 - movs r1, #0 - bl sub_0804660C - adds r0, r6, #0 - bl sub_080464C0 - ldr r0, _08046254 @ =gLinkEntity - adds r1, r0, #0 - adds r1, #0x38 - strb r5, [r1] - bl sub_08016A04 - ldr r1, _08046258 @ =sub_08046498 - adds r0, r6, #0 - movs r2, #0 - bl sub_08052D74 -_08046244: - pop {r4, r5, r6, pc} - .align 2, 0 -_08046248: .4byte gUnk_03003DBC -_0804624C: .4byte gUnk_02019EE0 -_08046250: .4byte gUnk_02002F00 -_08046254: .4byte gLinkEntity -_08046258: .4byte sub_08046498 - - thumb_func_start sub_0804625C -sub_0804625C: @ 0x0804625C - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x79 - ldrb r2, [r3] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08046286 - movs r1, #0x7f - ands r1, r2 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r3] - movs r0, #3 - ands r1, r0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_0804660C - b _0804629A -_08046286: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _0804629A - movs r0, #0xbf - ands r0, r2 - strb r0, [r3] - adds r0, r4, #0 - bl sub_080464C0 -_0804629A: - bl sub_080465C8 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r3, #0x38 - ands r3, r1 - cmp r3, #0 - beq _080462D6 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x7a - movs r2, #0 - strh r1, [r0] - adds r0, #2 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x80 - strb r2, [r0] - b _0804632A -_080462D6: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08046302 - movs r0, #3 - strb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x70 - movs r1, #0 - movs r0, #0x3c - strh r0, [r2] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x7a - strh r3, [r0] - adds r0, #2 - strb r1, [r0] - adds r0, #1 - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - b _0804632A -_08046302: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804632A - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0804632A - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_08046634 -_0804632A: - pop {r4, pc} - - thumb_func_start sub_0804632C -sub_0804632C: @ 0x0804632C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080465C8 - adds r0, r4, #0 - bl sub_080466A8 - adds r3, r4, #0 - adds r3, #0x7a - ldrh r0, [r3] - adds r2, r0, #1 - movs r5, #0 - strh r2, [r3] - lsls r1, r2, #0x10 - ldr r0, _08046360 @ =0x059F0000 - cmp r1, r0 - bls _08046364 - movs r0, #0 - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7c - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #3 - b _08046388 - .align 2, 0 -_08046360: .4byte 0x059F0000 -_08046364: - lsls r0, r2, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x78 - bne _08046374 - adds r0, r4, #0 - bl sub_08046668 - b _0804638A -_08046374: - movs r0, #0xa5 - lsls r0, r0, #3 - cmp r1, r0 - bne _0804638A - adds r0, r4, #0 - adds r0, #0x78 - strb r5, [r0] - adds r0, #5 - strb r5, [r0] - adds r0, #2 -_08046388: - strb r5, [r0] -_0804638A: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080463B8 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080463B8 - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_08046634 -_080463B8: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x38 - ands r0, r1 - cmp r0, #0 - bne _080463E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strb r2, [r0] - adds r0, #8 - strb r2, [r0] -_080463E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080463E4 -sub_080463E4: @ 0x080463E4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080465C8 - adds r1, r4, #0 - adds r1, #0x70 - ldrh r0, [r1] - subs r0, #1 - movs r5, #0 - strh r0, [r1] - ldr r2, _0804643C @ =0x0000FFFF - adds r6, r2, #0 - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08046410 - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_08046634 -_08046410: - adds r0, r4, #0 - bl sub_080466A8 - adds r3, r4, #0 - adds r3, #0x7a - ldrh r0, [r3] - adds r2, r0, #1 - strh r2, [r3] - adds r0, r2, #0 - ands r0, r6 - ldr r1, _08046440 @ =0x0000059F - cmp r0, r1 - bls _08046444 - movs r0, #0 - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7c - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #3 - b _08046468 - .align 2, 0 -_0804643C: .4byte 0x0000FFFF -_08046440: .4byte 0x0000059F -_08046444: - lsls r0, r2, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0x78 - bne _08046454 - adds r0, r4, #0 - bl sub_08046668 - b _0804646A -_08046454: - movs r0, #0xa5 - lsls r0, r0, #3 - cmp r1, r0 - bne _0804646A - adds r0, r4, #0 - adds r0, #0x78 - strb r5, [r0] - adds r0, #5 - strb r5, [r0] - adds r0, #2 -_08046468: - strb r5, [r0] -_0804646A: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08046494 - movs r0, #1 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x70 - movs r2, #0 - movs r0, #0x3c - strh r0, [r1] - adds r0, r4, #0 - adds r0, #0x78 - strb r2, [r0] - adds r0, #8 - strb r2, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 -_08046494: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08046498 -sub_08046498: @ 0x08046498 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080464B8 @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _080464BC @ =gUnk_02002F00 - adds r1, r4, #0 - bl sub_0801D630 - adds r0, r5, #0 - bl sub_080464C0 - pop {r4, r5, pc} - .align 2, 0 -_080464B8: .4byte gUnk_02019EE0 -_080464BC: .4byte gUnk_02002F00 - - thumb_func_start sub_080464C0 -sub_080464C0: @ 0x080464C0 - push {r4, r5, r6, lr} - ldr r1, _08046508 @ =gUnk_080D1A74 - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_080197D4 - bl sub_08046518 - movs r6, #0x20 - ldr r4, _0804650C @ =gUnk_02019EE0 - ldr r0, _08046510 @ =0x00003260 - adds r5, r4, r0 -_080464DE: - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0x40 - bl sub_0801D66C - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r5, r0 - adds r4, #0x40 - subs r6, #1 - cmp r6, #0 - bne _080464DE - ldr r0, _0804650C @ =gUnk_02019EE0 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r1, _08046514 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - pop {r4, r5, r6, pc} - .align 2, 0 -_08046508: .4byte gUnk_080D1A74 -_0804650C: .4byte gUnk_02019EE0 -_08046510: .4byte 0x00003260 -_08046514: .4byte gUnk_02000070 - - thumb_func_start sub_08046518 -sub_08046518: @ 0x08046518 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r1, _080465AC @ =gUnk_02010654 - ldr r2, _080465B0 @ =0xFFFFBCB0 - adds r0, r1, r2 - ldr r3, _080465B4 @ =0xFFFFECB0 - adds r2, r1, r3 - ldr r7, _080465B8 @ =0x00006658 - adds r7, r1, r7 - str r7, [sp, #4] - ldr r3, _080465BC @ =0xFFFFD658 - adds r6, r1, r3 - movs r1, #0x10 -_0804653A: - movs r5, #0x10 - movs r7, #0x80 - adds r7, r7, r0 - mov sl, r7 - adds r3, r2, #0 - adds r3, #0x80 - str r3, [sp] - ldr r7, [sp, #4] - adds r7, #0x40 - mov r8, r7 - movs r3, #0x40 - adds r3, r3, r6 - mov sb, r3 - subs r1, #1 - mov ip, r1 - adds r3, r0, #0 - adds r3, #0x20 - adds r4, r2, #0 - adds r4, #0x20 -_08046560: - ldrh r0, [r3] - strh r0, [r4] - ldrh r0, [r3] - lsls r0, r0, #1 - ldr r7, _080465AC @ =gUnk_02010654 - adds r0, r0, r7 - ldrh r1, [r0] - ldr r0, [sp, #4] - adds r2, r0, r5 - ldr r7, _080465C0 @ =gUnk_080B37A0 - adds r0, r1, r7 - ldrb r0, [r0] - strb r0, [r2] - adds r2, r6, r5 - ldr r0, _080465C4 @ =gUnk_080B3E80 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r2] - subs r3, #2 - subs r4, #2 - subs r5, #1 - cmp r5, #0 - bne _08046560 - mov r0, sl - ldr r2, [sp] - mov r1, r8 - str r1, [sp, #4] - mov r6, sb - mov r1, ip - cmp r1, #0 - bne _0804653A - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080465AC: .4byte gUnk_02010654 -_080465B0: .4byte 0xFFFFBCB0 -_080465B4: .4byte 0xFFFFECB0 -_080465B8: .4byte 0x00006658 -_080465BC: .4byte 0xFFFFD658 -_080465C0: .4byte gUnk_080B37A0 -_080465C4: .4byte gUnk_080B3E80 - - thumb_func_start sub_080465C8 -sub_080465C8: @ 0x080465C8 - push {r4, lr} - ldr r3, _080465FC @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r3, r0] - ldr r1, _08046600 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #3 - movs r4, #0x32 - ldrsh r0, [r3, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #3 - ldr r1, _08046604 @ =gUnk_02019EE0 - lsls r0, r0, #7 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080465F8 - ldr r1, _08046608 @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r1, #0x14] -_080465F8: - pop {r4, pc} - .align 2, 0 -_080465FC: .4byte gLinkEntity -_08046600: .4byte gUnk_03000BF0 -_08046604: .4byte gUnk_02019EE0 -_08046608: .4byte gUnk_03003F80 - - thumb_func_start sub_0804660C -sub_0804660C: @ 0x0804660C - push {r4, lr} - strb r1, [r0, #0x14] - lsrs r1, r1, #5 - lsls r1, r1, #1 - ldr r2, _0804662C @ =gUnk_080D1A84 - adds r1, r1, r2 - ldr r3, _08046630 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - ldrh r4, [r1] - adds r2, r2, r4 - strh r2, [r0, #0x2e] - ldrh r2, [r3, #8] - ldrh r1, [r1, #2] - adds r2, r2, r1 - strh r2, [r0, #0x32] - pop {r4, pc} - .align 2, 0 -_0804662C: .4byte gUnk_080D1A84 -_08046630: .4byte gUnk_03000BF0 - - thumb_func_start sub_08046634 -sub_08046634: @ 0x08046634 - push {r4, r5, lr} - adds r5, r0, #0 - cmp r1, #0 - bne _08046650 - ldr r4, _0804664C @ =gUnk_080D1AF4 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - b _0804665A - .align 2, 0 -_0804664C: .4byte gUnk_080D1AF4 -_08046650: - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #7 - ands r1, r0 -_0804665A: - ldrb r2, [r5, #0x14] - lsrs r2, r2, #3 - adds r0, r1, #0 - movs r1, #0 - bl sub_080A1ED0 - pop {r4, r5, pc} - - thumb_func_start sub_08046668 -sub_08046668: @ 0x08046668 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080466A0 - adds r5, r4, #0 - adds r5, #0x78 - ldrb r0, [r5] - cmp r0, #0xff - beq _080466A0 - bl sub_08000E50 - ldr r2, _080466A4 @ =gUnk_080D1AF8 - movs r1, #3 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - movs r1, #0 - strb r0, [r5] - adds r0, r4, #0 - adds r0, #0x7f - strb r1, [r0] - adds r0, #3 - strb r1, [r0] - adds r0, r4, #0 - bl sub_080467DC -_080466A0: - pop {r4, r5, pc} - .align 2, 0 -_080466A4: .4byte gUnk_080D1AF8 - - thumb_func_start sub_080466A8 -sub_080466A8: @ 0x080466A8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x7c - ldrb r2, [r0] - cmp r2, #0 - beq _0804674C - adds r0, #1 - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4, #0xe] - adds r5, r0, #0 - cmp r1, #0 - bne _080466D0 - subs r0, #5 - ldrb r0, [r0] - cmp r0, #0xff - beq _080466D0 - movs r0, #4 - strb r0, [r4, #0xe] -_080466D0: - ldrb r0, [r5] - bl sub_08000E62 - cmp r0, #2 - bls _0804674C - movs r0, #0 - strb r0, [r4, #0xe] - strb r0, [r5] - adds r7, r4, #0 - adds r7, #0x78 - subs r0, #1 - adds r6, r0, #0 - movs r0, #0xff - strb r0, [r7] - adds r0, #0x28 - bl sub_080A3268 - adds r5, r4, #0 - adds r5, #0x45 - ldrb r0, [r5] - cmp r0, #0 - beq _08046746 - movs r0, #8 - movs r1, #0 - bl sub_08080964 - adds r1, r4, #0 - adds r1, #0x82 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ands r0, r6 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xc - bhi _0804671E - ldrb r0, [r5] - subs r0, #1 - strb r0, [r5] -_0804671E: - ldrb r0, [r5] - cmp r0, #0 - bne _08046730 - strb r0, [r7] - adds r1, r4, #0 - adds r1, #0x7a - movs r0, #0xa5 - lsls r0, r0, #3 - b _08046744 -_08046730: - adds r1, r4, #0 - adds r1, #0x7f - ldrb r0, [r1] - cmp r0, #0 - bne _08046746 - movs r0, #1 - strb r0, [r1] - subs r1, #5 - movs r0, #0x87 - lsls r0, r0, #3 -_08046744: - strh r0, [r1] -_08046746: - adds r0, r4, #0 - bl sub_080467DC -_0804674C: - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _080467CC - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - cmp r0, #0xff - beq _080467CC - subs r0, r1, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - cmp r5, #0 - bne _080467CC - adds r2, r4, #0 - adds r2, #0x80 - adds r3, r4, #0 - adds r3, #0x7d - ldrb r0, [r2] - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r2] - strb r5, [r3] - adds r0, r4, #0 - bl sub_080467DC - ldr r0, [r4, #0x64] - adds r0, #0x3c - ldrb r1, [r0] - adds r0, r1, #0 - cmp r0, #0xff - beq _080467CC - ldr r2, _080467D8 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x3e - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r1, #5 - movs r0, #0xa - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _080467CC - ldr r0, [r4, #0x64] - ldrh r0, [r0, #0x38] - strh r0, [r2, #0x2e] - ldr r0, [r4, #0x64] - ldrh r0, [r0, #0x3a] - strh r0, [r2, #0x32] - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_08016A04 -_080467CC: - adds r1, r4, #0 - adds r1, #0x7c - movs r0, #0 - strb r0, [r1] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080467D8: .4byte gLinkEntity - - thumb_func_start sub_080467DC -sub_080467DC: @ 0x080467DC - push {lr} - movs r1, #0 - ldr r0, [r0, #0x64] - movs r2, #0 - adds r0, #0x18 -_080467E6: - stm r0!, {r2} - adds r1, #1 - cmp r1, #7 - bls _080467E6 - pop {pc} - - thumb_func_start sub_080467F0 -sub_080467F0: @ 0x080467F0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08046810 - adds r0, r4, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #3 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_08046810: - ldr r1, _0804688C @ =gUnk_080D1AFC - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r0, [r4, #0xc] - adds r5, r4, #0 - adds r5, #0x78 - cmp r0, #7 - beq _08046836 - ldrh r3, [r5] - adds r0, r4, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C -_08046836: - ldrh r0, [r5] - lsrs r0, r0, #8 - rsbs r0, r0, #0 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08048004 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r1, r4, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _08046878 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldr r1, _08046890 @ =gUnk_03000BF0 - movs r3, #0xc - ldrsh r1, [r1, r3] - subs r0, r0, r1 - adds r0, #0x30 - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _08046878 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r4, #0x18] -_08046878: - ldr r2, _08046894 @ =gLinkEntity - ldrh r1, [r2, #0x2e] - adds r0, r4, #0 - adds r0, #0x84 - strh r1, [r0] - ldrh r1, [r2, #0x32] - adds r0, #2 - strh r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_0804688C: .4byte gUnk_080D1AFC -_08046890: .4byte gUnk_03000BF0 -_08046894: .4byte gLinkEntity - - thumb_func_start sub_08046898 -sub_08046898: @ 0x08046898 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x22 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _0804690C - movs r4, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r1, #0xa] - str r5, [r1, #0x50] - str r1, [r5, #0x54] - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - ldrb r1, [r5, #0x19] - movs r0, #3 - orrs r1, r0 - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ands r1, r3 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r2, r5, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0x10 - orrs r0, r1 - strb r0, [r2] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - subs r0, #4 - strh r4, [r0] - adds r0, #2 - strh r4, [r0] - subs r0, #8 - strh r4, [r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0804690C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08046910 -sub_08046910: @ 0x08046910 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0804692C @ =gUnk_080D1B1C - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_0804692C: .4byte gUnk_080D1B1C - - thumb_func_start sub_08046930 -sub_08046930: @ 0x08046930 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08046948 - movs r0, #5 - strb r0, [r4, #0xd] - movs r0, #0x20 - strb r0, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_08046948: - adds r0, r4, #0 - bl sub_08047D88 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _0804696A - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r0, [r4, #0xe] - strb r1, [r4, #0x14] - strb r1, [r4, #0x15] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_0804696A: - pop {r4, pc} - - thumb_func_start sub_0804696C -sub_0804696C: @ 0x0804696C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r5, _080469C8 @ =gUnk_03000BF0 - ldrh r0, [r5, #8] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080469A6 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x80 - strb r0, [r4, #0x15] - adds r0, #0x80 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - movs r0, #0x2e - bl sub_080A3268 -_080469A6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080469C6 - ldrh r0, [r5, #8] - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080469C6 - movs r0, #0 - strb r0, [r4, #0xe] - movs r0, #0xf7 - bl sub_080A3268 -_080469C6: - pop {r4, r5, pc} - .align 2, 0 -_080469C8: .4byte gUnk_03000BF0 - - thumb_func_start sub_080469CC -sub_080469CC: @ 0x080469CC - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _080469F0 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080469EE - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x90 - strb r0, [r4, #0x15] -_080469EE: - pop {r4, pc} - .align 2, 0 -_080469F0: .4byte gUnk_03000BF0 - - thumb_func_start sub_080469F4 -sub_080469F4: @ 0x080469F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _08046A2C @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - movs r1, #0xa4 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08046A28 - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] -_08046A28: - pop {r4, pc} - .align 2, 0 -_08046A2C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08046A30 -sub_08046A30: @ 0x08046A30 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08046A50 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046A50: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046A54 -sub_08046A54: @ 0x08046A54 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047E48 - ldr r0, _08046A74 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - movs r1, #0xe0 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08046A72 - movs r0, #6 - strb r0, [r4, #0xd] -_08046A72: - pop {r4, pc} - .align 2, 0 -_08046A74: .4byte gUnk_03000BF0 - - thumb_func_start sub_08046A78 -sub_08046A78: @ 0x08046A78 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08046A98 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046A98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046A9C -sub_08046A9C: @ 0x08046A9C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _08046ABA - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046ABA - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_08046ABA: - ldr r1, _08046AE4 @ =gUnk_080D1B38 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x7c - ldrb r0, [r0] - cmp r0, #0 - beq _08046AE2 - movs r1, #0 - movs r0, #6 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046AE2: - pop {r4, pc} - .align 2, 0 -_08046AE4: .4byte gUnk_080D1B38 - - thumb_func_start sub_08046AE8 -sub_08046AE8: @ 0x08046AE8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #5 - adds r0, r4, #0 - bl sub_08048178 - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08046B18 -sub_08046B18: @ 0x08046B18 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046B6C - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046B54 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046B50 @ =0xFFFFFF00 - b _08046B5C - .align 2, 0 -_08046B50: .4byte 0xFFFFFF00 -_08046B54: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046B5C: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046B70 -_08046B6C: - movs r0, #2 - strb r0, [r4, #0xd] -_08046B70: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046B8C -sub_08046B8C: @ 0x08046B8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046BD8 - movs r0, #3 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r1, _08046BD4 @ =gUnk_03000BF0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r0, r2, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r5] - adds r2, #0x10 - adds r0, r2, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r6] - adds r0, r4, #0 - bl sub_08047D88 - b _08046C02 - .align 2, 0 -_08046BD4: .4byte gUnk_03000BF0 -_08046BD8: - ldrh r0, [r5] - movs r3, #0x2e - ldrsh r1, [r4, r3] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046C02: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046C04 -sub_08046C04: @ 0x08046C04 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046C58 - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046C40 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046C3C @ =0xFFFFFF00 - b _08046C48 - .align 2, 0 -_08046C3C: .4byte 0xFFFFFF00 -_08046C40: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046C48: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046C6C -_08046C58: - movs r0, #4 - strb r0, [r4, #0xd] - adds r0, r1, #0 - adds r0, #0x20 - movs r1, #0xc0 - ands r0, r1 - lsrs r0, r0, #6 - adds r1, r4, #0 - adds r1, #0x70 - strh r0, [r1] -_08046C6C: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046C88 -sub_08046C88: @ 0x08046C88 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046CC0 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - bl sub_08048158 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08048178 - adds r0, r4, #0 - bl sub_08047D88 - b _08046CEA -_08046CC0: - ldrh r0, [r5] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046CEA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046CEC -sub_08046CEC: @ 0x08046CEC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08046D0A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046D0A - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_08046D0A: - ldr r1, _08046D40 @ =gUnk_080D1B4C - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08046D3C - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x24] - strb r0, [r4, #0x14] -_08046D3C: - pop {r4, pc} - .align 2, 0 -_08046D40: .4byte gUnk_080D1B4C - - thumb_func_start sub_08046D44 -sub_08046D44: @ 0x08046D44 - push {lr} - mov ip, r0 - movs r0, #1 - mov r1, ip - strb r0, [r1, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r1, #0x24] - ldr r0, [r1, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - lsrs r1, r1, #5 - lsls r1, r1, #1 - ldr r0, _08046D90 @ =gUnk_080D1B60 - adds r1, r1, r0 - ldr r3, _08046D94 @ =gUnk_03000BF0 - ldrh r0, [r3, #6] - ldrh r2, [r1] - adds r0, r0, r2 - mov r2, ip - adds r2, #0x80 - strh r0, [r2] - ldrh r0, [r3, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - mov r1, ip - adds r1, #0x82 - strh r0, [r1] - mov r1, ip - ldrb r0, [r1, #0x15] - lsls r0, r0, #8 - adds r1, #0x76 - strh r0, [r1] - mov r0, ip - bl sub_08047D88 - pop {pc} - .align 2, 0 -_08046D90: .4byte gUnk_080D1B60 -_08046D94: .4byte gUnk_03000BF0 - - thumb_func_start sub_08046D98 -sub_08046D98: @ 0x08046D98 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r1, r0, #0 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _08046DEC - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046DD4 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _08046DD0 @ =0xFFFFFF00 - b _08046DDC - .align 2, 0 -_08046DD0: .4byte 0xFFFFFF00 -_08046DD4: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046DDC: - adds r0, r2, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - b _08046DF0 -_08046DEC: - movs r0, #2 - strb r0, [r4, #0xd] -_08046DF0: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_08046E0C -sub_08046E0C: @ 0x08046E0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x80 - ldrh r1, [r5] - adds r6, r4, #0 - adds r6, #0x82 - ldrh r2, [r6] - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08046E3C - movs r0, #3 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 - b _08046E66 -_08046E3C: - ldrh r0, [r5] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 -_08046E66: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08046E68 -sub_08046E68: @ 0x08046E68 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x64] - ldr r0, [r0, #4] - ldrb r1, [r0, #0x14] - movs r0, #0x80 - adds r6, r0, #0 - eors r6, r1 - ldrb r0, [r5, #0x15] - cmp r6, r0 - beq _08046EC6 - subs r0, r6, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _08046E94 - adds r1, r5, #0 - adds r1, #0x76 - ldr r2, _08046E90 @ =0xFFFFFF00 - b _08046E9C - .align 2, 0 -_08046E90: .4byte 0xFFFFFF00 -_08046E94: - adds r1, r5, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_08046E9C: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08047D88 - ldrb r0, [r5, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r5, #0 - bl sub_08047EA4 - b _08046EEE -_08046EC6: - movs r0, #4 - strb r0, [r5, #0xd] - movs r0, #0x3f - strb r0, [r5, #0xe] - movs r4, #1 - strb r4, [r5, #0xf] - bl sub_08000E50 - ldr r1, _08046EF0 @ =gUnk_080D1B70 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r6 - movs r1, #0xc0 - ands r0, r1 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_08047D88 -_08046EEE: - pop {r4, r5, r6, pc} - .align 2, 0 -_08046EF0: .4byte gUnk_080D1B70 - - thumb_func_start sub_08046EF4 -sub_08046EF4: @ 0x08046EF4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r3, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08046F12 - movs r0, #0x7f - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] -_08046F12: - ldr r2, _08046F60 @ =gUnk_080D1B74 - ldrb r0, [r4, #0xe] - lsrs r0, r0, #3 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r3 - cmp r0, #0 - bne _08046F58 - bl sub_08000E50 - movs r1, #0x38 - ands r0, r1 - adds r0, #0x78 - strb r0, [r4, #0xf] - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _08046F58 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl sub_08016A04 -_08046F58: - adds r0, r4, #0 - bl sub_08047E48 - pop {r4, pc} - .align 2, 0 -_08046F60: .4byte gUnk_080D1B74 - - thumb_func_start sub_08046F64 -sub_08046F64: @ 0x08046F64 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - bne _08046F82 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _08046F82 - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_08046F82: - ldr r1, _08046FE4 @ =gUnk_080D1B94 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08046FC8 - movs r0, #0x78 - strh r0, [r1] - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _08046FC8 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl sub_08016A04 -_08046FC8: - ldr r0, [r4, #0x64] - ldr r0, [r0] - adds r0, #0x6c - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08046FE0 - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08046FE0: - pop {r4, pc} - .align 2, 0 -_08046FE4: .4byte gUnk_080D1B94 - - thumb_func_start sub_08046FE8 -sub_08046FE8: @ 0x08046FE8 - push {lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0xe0 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - adds r1, r3, #0 - adds r1, #0x7e - movs r0, #0x1e - strh r0, [r1] - ldr r2, _08047028 @ =gUnk_03000BF0 - movs r1, #0xa4 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x80 - strh r0, [r1] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08047D88 - pop {pc} - .align 2, 0 -_08047028: .4byte gUnk_03000BF0 - - thumb_func_start sub_0804702C -sub_0804702C: @ 0x0804702C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _0804706C - subs r0, r3, r2 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08047068 - subs r0, r2, #1 - b _0804706A -_08047068: - adds r0, r2, #1 -_0804706A: - strb r0, [r4, #0x15] -_0804706C: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - movs r0, #0x24 - ldrsh r3, [r4, r0] - asrs r3, r3, #0x10 - adds r3, #0x10 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - beq _080470B0 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] -_080470B0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080470B4 -sub_080470B4: @ 0x080470B4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x40 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _0804710A - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _080470D8 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _080470D4 @ =0xFFFFFF00 - b _080470E0 - .align 2, 0 -_080470D4: .4byte 0xFFFFFF00 -_080470D8: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080470E0: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _0804713A -_0804710A: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl sub_08000E50 - ldr r2, _0804713C @ =gUnk_080D1BBC - movs r1, #1 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r1, [r1] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r4, #0 - bl sub_08047D88 -_0804713A: - pop {r4, pc} - .align 2, 0 -_0804713C: .4byte gUnk_080D1BBC - - thumb_func_start sub_08047140 -sub_08047140: @ 0x08047140 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0xbf - bls _08047164 - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #4 - strb r0, [r2, #0xd] -_08047164: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804717C -sub_0804717C: @ 0x0804717C - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _080471C0 @ =0x0000027F - cmp r1, r0 - bgt _08047192 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_08047192: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _080471C4 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080471BC - movs r0, #5 - strb r0, [r4, #0xd] -_080471BC: - pop {r4, pc} - .align 2, 0 -_080471C0: .4byte 0x0000027F -_080471C4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080471C8 -sub_080471C8: @ 0x080471C8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - movs r0, #0xc0 - lsls r0, r0, #1 - cmp r1, r0 - ble _080471E0 - adds r0, r2, #0 - subs r0, #0x10 - strh r0, [r4, #0x24] -_080471E0: - ldrb r0, [r4, #0x15] - cmp r0, #0xdf - bhi _080471EA - adds r0, #1 - strb r0, [r4, #0x15] -_080471EA: - ldrb r1, [r4, #0x15] - movs r5, #0x80 - lsls r5, r5, #1 - subs r1, r5, r1 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _0804722C @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - movs r1, #0xc8 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08047238 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - cmp r0, r5 - bls _08047234 - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08047230 - movs r0, #6 - b _08047236 - .align 2, 0 -_0804722C: .4byte gUnk_03000BF0 -_08047230: - strb r1, [r4, #0xd] - b _08047238 -_08047234: - movs r0, #0 -_08047236: - strb r0, [r4, #0xd] -_08047238: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804723C -sub_0804723C: @ 0x0804723C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - subs r0, #2 - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xbf - bhi _08047266 - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0xc0 - strb r0, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0xc0 - lsls r0, r0, #8 - strh r0, [r1] -_08047266: - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047284 -sub_08047284: @ 0x08047284 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - ldrh r0, [r1] - subs r0, #0xe0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0x3f - bhi _080472A4 - movs r0, #0x40 - strb r0, [r2, #0x15] - movs r0, #8 - strb r0, [r2, #0xd] -_080472A4: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080472BC -sub_080472BC: @ 0x080472BC - push {r4, lr} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _08047308 @ =0x000002FF - cmp r1, r0 - bgt _080472D2 - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_080472D2: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - ldr r0, _0804730C @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - movs r1, #0xac - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08047306 - movs r0, #9 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_08047306: - pop {r4, pc} - .align 2, 0 -_08047308: .4byte 0x000002FF -_0804730C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08047310 -sub_08047310: @ 0x08047310 - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x24] - movs r0, #0x24 - ldrsh r1, [r2, r0] - ldr r0, _08047364 @ =0x0000017F - cmp r1, r0 - bgt _08047326 - adds r0, r3, #0 - subs r0, #0x10 - strh r0, [r2, #0x24] -_08047326: - adds r1, r2, #0 - adds r1, #0x76 - ldr r3, _08047368 @ =0xFFFFFE30 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - adds r0, #0x7f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x3f - bhi _0804734C - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #4 - strb r0, [r2, #0xd] -_0804734C: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 -_08047364: .4byte 0x0000017F -_08047368: .4byte 0xFFFFFE30 - - thumb_func_start sub_0804736C -sub_0804736C: @ 0x0804736C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - bne _0804738A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #1 - bne _0804738A - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_0804738A: - ldr r0, _080473B4 @ =gUnk_080D1BC0 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - bne _080473B0 - movs r0, #7 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080473B0: - pop {r4, pc} - .align 2, 0 -_080473B4: .4byte gUnk_080D1BC0 - - thumb_func_start sub_080473B8 -sub_080473B8: @ 0x080473B8 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - movs r1, #0x90 - lsls r1, r1, #1 - strh r1, [r0, #0x24] - ldr r3, _080473EC @ =gUnk_03000BF0 - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - ldrh r2, [r3, #6] - adds r1, r1, r2 - adds r2, r0, #0 - adds r2, #0x80 - strh r1, [r2] - movs r2, #0xe8 - lsls r2, r2, #1 - adds r1, r2, #0 - ldrh r3, [r3, #8] - adds r1, r1, r3 - adds r2, r0, #0 - adds r2, #0x82 - strh r1, [r2] - bl sub_08047D88 - pop {pc} - .align 2, 0 -_080473EC: .4byte gUnk_03000BF0 - - thumb_func_start sub_080473F0 -sub_080473F0: @ 0x080473F0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _08047444 - subs r1, r3, r2 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08047438 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08047434 - subs r0, r2, #2 - b _08047442 -_08047434: - subs r0, r2, #1 - b _08047442 -_08047438: - cmp r1, #1 - ble _08047440 - adds r0, r2, #2 - b _08047442 -_08047440: - adds r0, r2, #1 -_08047442: - strb r0, [r4, #0x15] -_08047444: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047DF0 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - adds r0, r4, #0 - movs r3, #8 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047482 - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_08047482: - pop {r4, pc} - - thumb_func_start sub_08047484 -sub_08047484: @ 0x08047484 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x40 - ldrb r0, [r4, #0x15] - cmp r1, r0 - beq _080474DA - subs r0, r1, r0 - movs r1, #0xff - ands r0, r1 - cmp r0, #0x80 - bls _080474A8 - adds r1, r4, #0 - adds r1, #0x76 - ldr r2, _080474A4 @ =0xFFFFFF00 - b _080474B0 - .align 2, 0 -_080474A4: .4byte 0xFFFFFF00 -_080474A8: - adds r1, r4, #0 - adds r1, #0x76 - movs r2, #0x80 - lsls r2, r2, #1 -_080474B0: - adds r0, r2, #0 - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047D88 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _08047504 -_080474DA: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - strb r1, [r4, #0x15] - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x80 - lsls r0, r0, #7 - strh r0, [r1] - subs r1, #2 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, #0xa - movs r0, #0xf0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08047D88 -_08047504: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047508 -sub_08047508: @ 0x08047508 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _0804754C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - movs r1, #0xd0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0804759A - ldrb r1, [r4, #0x15] - cmp r1, #0 - bne _08047550 - ldrh r0, [r2, #8] - movs r1, #0x82 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0804759A - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsrs r0, r0, #8 - b _08047598 - .align 2, 0 -_0804754C: .4byte gUnk_03000BF0 -_08047550: - adds r0, r4, #0 - adds r0, #0x74 - movs r3, #0 - ldrsh r2, [r0, r3] - cmp r2, #0 - bge _0804757E - adds r3, r4, #0 - adds r3, #0x76 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0804759A - movs r0, #0 - strb r0, [r4, #0x15] - movs r0, #0 - strh r0, [r3] - b _0804759A -_0804757E: - cmp r1, #0x3f - bhi _0804759A - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - cmp r0, #0x3f - bls _0804759A - movs r0, #0x40 -_08047598: - strb r0, [r4, #0x15] -_0804759A: - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _080475F0 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - movs r1, #0xa0 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080475CA - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_080475CA: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080475EE - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _080475EE - str r4, [r0, #0x50] -_080475EE: - pop {r4, pc} - .align 2, 0 -_080475F0: .4byte gUnk_03000BF0 - - thumb_func_start sub_080475F4 -sub_080475F4: @ 0x080475F4 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - movs r3, #0xc0 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0xbf - bls _08047626 - movs r0, #0xc0 - strb r0, [r2, #0x15] - movs r0, #5 - strb r0, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - adds r1, #8 - movs r0, #0x3c - strh r0, [r1] -_08047626: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - - thumb_func_start sub_0804763C -sub_0804763C: @ 0x0804763C - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08047680 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - movs r1, #0xf8 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _080476D0 - ldrb r1, [r4, #0x15] - cmp r1, #0 - bne _08047684 - ldrh r0, [r2, #8] - movs r1, #0x82 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080476D0 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r1, [r0] - rsbs r1, r1, #0 - strh r1, [r0] - adds r2, r4, #0 - adds r2, #0x76 - ldrh r0, [r2] - adds r0, r0, r1 - strh r0, [r2] - lsrs r0, r0, #8 - b _080476CE - .align 2, 0 -_08047680: .4byte gUnk_03000BF0 -_08047684: - adds r0, r4, #0 - adds r0, #0x74 - movs r3, #0 - ldrsh r2, [r0, r3] - cmp r2, #0 - ble _080476B4 - adds r3, r4, #0 - adds r3, #0x76 - ldrh r0, [r3] - adds r0, r0, r2 - strh r0, [r3] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080476D0 - movs r0, #0 - strb r0, [r4, #0x15] - strh r1, [r3] - b _080476D0 -_080476B4: - cmp r1, #0xc0 - bls _080476D0 - adds r1, r4, #0 - adds r1, #0x76 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - cmp r0, #0xc0 - bhi _080476D0 - movs r0, #0xc0 -_080476CE: - strb r0, [r4, #0x15] -_080476D0: - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _08047728 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - movs r1, #0xc0 - lsls r1, r1, #1 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _08047700 - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x15] - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_08047700: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08047724 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _08047724 - str r4, [r0, #0x50] -_08047724: - pop {r4, pc} - .align 2, 0 -_08047728: .4byte gUnk_03000BF0 - - thumb_func_start sub_0804772C -sub_0804772C: @ 0x0804772C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x76 - ldr r3, _08047774 @ =0xFFFFFE80 - adds r0, r3, #0 - ldrh r3, [r1] - adds r0, r0, r3 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r2, #0x15] - cmp r0, #0x40 - bhi _0804775C - movs r0, #0x40 - strb r0, [r2, #0x15] - movs r0, #3 - strb r0, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r2, #0x24] - adds r1, #8 - movs r0, #0x1e - strh r0, [r1] -_0804775C: - ldrb r0, [r2, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r2, #0 - bl sub_08047DF0 - pop {pc} - .align 2, 0 -_08047774: .4byte 0xFFFFFE80 - - thumb_func_start sub_08047778 -sub_08047778: @ 0x08047778 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08047794 @ =gUnk_080D1BDC - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08047794: .4byte gUnk_080D1BDC - - thumb_func_start sub_08047798 -sub_08047798: @ 0x08047798 - push {r4, lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0x80 - strh r0, [r3, #0x24] - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r2, _080477BC @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - ldr r0, _080477C0 @ =0x000001F7 - cmp r1, r0 - bgt _080477C4 - adds r1, r3, #0 - adds r1, #0x80 - movs r0, #0xa8 - b _080477CC - .align 2, 0 -_080477BC: .4byte gUnk_03000BF0 -_080477C0: .4byte 0x000001F7 -_080477C4: - adds r1, r3, #0 - adds r1, #0x80 - movs r0, #0xd2 - lsls r0, r0, #2 -_080477CC: - strh r0, [r1] - ldrh r0, [r2, #6] - ldrh r4, [r1] - adds r0, r0, r4 - strh r0, [r1] - movs r1, #0xd2 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r3, #0 - adds r1, #0x82 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08047D88 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080477F0 -sub_080477F0: @ 0x080477F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldrh r2, [r4, #0x24] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldr r0, _08047868 @ =0x000002FF - cmp r1, r0 - bgt _0804780A - adds r0, r2, #0 - adds r0, #8 - strh r0, [r4, #0x24] -_0804780A: - adds r7, r4, #0 - adds r7, #0x80 - ldrh r0, [r7] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r6, r4, #0 - adds r6, #0x82 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08047E48 - ldr r0, _0804786C @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x80 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _08047870 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0x15] - b _0804790C - .align 2, 0 -_08047868: .4byte 0x000002FF -_0804786C: .4byte gLinkEntity -_08047870: - ldr r5, _080478FC @ =gUnk_03000BF0 - ldrh r1, [r5, #6] - movs r0, #0x80 - lsls r0, r0, #2 - mov r8, r0 - add r1, r8 - ldrh r2, [r5, #8] - movs r3, #0x84 - lsls r3, r3, #2 - adds r2, r2, r3 - movs r3, #0x80 - lsls r3, r3, #1 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - bne _080478A0 - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] -_080478A0: - ldrh r1, [r7] - ldrh r2, [r6] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _0804790C - movs r0, #2 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x14] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - bl sub_08000E50 - ldr r2, _08047900 @ =gUnk_080D1BF0 - movs r1, #1 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - adds r0, r4, #0 - adds r0, #0x74 - strh r2, [r0] - ldr r2, [r4, #0x64] - ldr r0, [r2] - adds r0, #0x6c - ldrh r0, [r0] - ands r1, r0 - cmp r1, #0 - beq _08047904 - ldr r3, [r2, #4] - ldrh r0, [r5, #6] - add r0, r8 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x83 - cmp r0, r1 - ble _080478F4 - movs r2, #0x81 -_080478F4: - adds r0, r3, #0 - adds r0, #0x79 - strb r2, [r0] - b _0804790C - .align 2, 0 -_080478FC: .4byte gUnk_03000BF0 -_08047900: .4byte gUnk_080D1BF0 -_08047904: - ldr r0, [r2, #4] - adds r0, #0x79 - movs r1, #0x80 - strb r1, [r0] -_0804790C: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08047914 -sub_08047914: @ 0x08047914 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - ldrb r1, [r4, #0x14] - movs r0, #0x1f - ands r0, r1 - cmp r0, #0 - beq _08047950 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - b _08047976 -_08047950: - movs r0, #3 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #0x3c - strh r0, [r1] - ldrb r1, [r4, #0xa] - lsls r0, r1, #4 - subs r0, r0, r1 - lsls r0, r0, #2 - adds r0, #0x78 - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - ldr r0, [r4, #0x64] - ldr r0, [r0] - ldrb r1, [r4, #0x14] - bl sub_080A1D70 -_08047976: - pop {r4, pc} - - thumb_func_start sub_08047978 -sub_08047978: @ 0x08047978 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - cmp r1, #0 - beq _080479C6 - adds r2, r4, #0 - adds r2, #0x70 - ldrh r0, [r2] - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _080479B6 - adds r1, r4, #0 - adds r1, #0x72 - movs r0, #1 - strh r0, [r1] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _080479AE - movs r0, #0xb4 - strh r0, [r2] - b _080479CC -_080479AE: - movs r0, #0xb4 - lsls r0, r0, #1 - strh r0, [r2] - b _080479CC -_080479B6: - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0xf0 - bne _080479CC - adds r0, r4, #0 - bl sub_0804813C - b _080479CC -_080479C6: - adds r0, r4, #0 - adds r0, #0x72 - strh r1, [r0] -_080479CC: - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080479F4 - movs r0, #0xf0 - strh r0, [r1] - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _080479F4 - str r4, [r0, #0x50] -_080479F4: - ldr r0, _08047A78 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r3, #0x32 - ldrsh r2, [r0, r3] - adds r0, r4, #0 - movs r3, #0x80 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _08047A2C - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0x15] -_08047A2C: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08047B06 - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0xc] - cmp r0, #1 - bne _08047B06 - movs r0, #4 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08047AA4 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - cmp r0, #1 - bne _08047A80 - ldr r2, _08047A7C @ =gUnk_03000BF0 - movs r1, #0xe0 - lsls r1, r1, #1 - adds r0, r1, #0 - ldrh r3, [r2, #6] - adds r0, r0, r3 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - movs r1, #0x94 - lsls r1, r1, #2 - adds r0, r1, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, r4, #0 - adds r1, #0x82 - b _08047B04 - .align 2, 0 -_08047A78: .4byte gLinkEntity -_08047A7C: .4byte gUnk_03000BF0 -_08047A80: - ldr r2, _08047AA0 @ =gUnk_03000BF0 - movs r3, #0x90 - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r1, [r2, #6] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - adds r3, #0x10 - adds r0, r3, #0 - ldrh r2, [r2, #8] - adds r0, r0, r2 - adds r1, #2 - b _08047B04 - .align 2, 0 -_08047AA0: .4byte gUnk_03000BF0 -_08047AA4: - ldr r0, _08047AC4 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r1, r2 - movs r3, #0x2e - ldrsh r2, [r4, r3] - adds r3, r0, #0 - cmp r1, r2 - bge _08047AC8 - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0xc8 - lsls r0, r0, #1 - b _08047AD0 - .align 2, 0 -_08047AC4: .4byte gUnk_03000BF0 -_08047AC8: - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x9c - lsls r0, r0, #2 -_08047AD0: - strh r0, [r1] - ldrh r0, [r3, #6] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - ldrh r0, [r3, #8] - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _08047AF4 - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xd0 - lsls r0, r0, #1 - b _08047AFC -_08047AF4: - adds r1, r4, #0 - adds r1, #0x82 - movs r0, #0xa0 - lsls r0, r0, #2 -_08047AFC: - strh r0, [r1] - ldrh r0, [r3, #8] - ldrh r3, [r1] - adds r0, r0, r3 -_08047B04: - strh r0, [r1] -_08047B06: - pop {r4, pc} - - thumb_func_start sub_08047B08 -sub_08047B08: @ 0x08047B08 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08047D88 - adds r4, r5, #0 - adds r4, #0x80 - ldrh r0, [r4] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - adds r6, r5, #0 - adds r6, #0x82 - ldrh r1, [r6] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - movs r7, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E58 - ldrh r1, [r4] - ldrh r2, [r6] - adds r0, r5, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047B80 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08047B60 - movs r0, #7 - strb r0, [r5, #0xc] - strb r7, [r5, #0xd] - ldrb r0, [r5, #0x15] - movs r1, #0x80 - eors r0, r1 - b _08047B7E -_08047B60: - movs r0, #4 - strb r0, [r5, #0xc] - strb r7, [r5, #0xd] - ldrb r2, [r5, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ldrb r0, [r5, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r5, #0x19] - ldrb r0, [r5, #0x14] -_08047B7E: - strb r0, [r5, #0x15] -_08047B80: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08047B84 -sub_08047B84: @ 0x08047B84 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08047BA0 @ =gUnk_080D1BF4 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08047BA0: .4byte gUnk_080D1BF4 - - thumb_func_start sub_08047BA4 -sub_08047BA4: @ 0x08047BA4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - movs r2, #0x78 - strb r2, [r4, #0xe] - strb r1, [r4, #0xf] - ldr r0, _08047BD0 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _08047BD4 - adds r0, r4, #0 - adds r0, #0x76 - strh r2, [r0] - b _08047BDC - .align 2, 0 -_08047BD0: .4byte gUnk_03000BF0 -_08047BD4: - adds r1, r4, #0 - adds r1, #0x76 - movs r0, #0x88 - strh r0, [r1] -_08047BDC: - ldr r0, _08047BEC @ =0x000001B5 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_08047BF0 - pop {r4, pc} - .align 2, 0 -_08047BEC: .4byte 0x000001B5 - - thumb_func_start sub_08047BF0 -sub_08047BF0: @ 0x08047BF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r2, _08047CB8 @ =gUnk_080D1C00 - ldrb r1, [r5, #0xe] - movs r0, #3 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E48 - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _08047CC4 - ldrb r1, [r5, #0xf] - adds r0, r1, #1 - strb r0, [r5, #0xf] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08047C74 - adds r0, r5, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08047C74 - bl sub_08000E50 - movs r3, #0x1e - adds r1, r0, #0 - ands r1, r3 - ldr r6, _08047CBC @ =0x0000FFF1 - adds r2, r6, #0 - adds r1, r2, r1 - ldrh r6, [r4, #0x2e] - adds r1, r1, r6 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - 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] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_08047C74: - adds r0, r5, #0 - adds r0, #0x76 - ldrh r0, [r0] - strb r0, [r5, #0x15] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08047E48 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldr r0, _08047CC0 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - movs r6, #0x9c - lsls r6, r6, #2 - adds r0, r0, r6 - cmp r1, r0 - ble _08047D10 - movs r0, #2 - strb r0, [r5, #0xd] - adds r1, r5, #0 - adds r1, #0x7e - movs r0, #0xaa - strh r0, [r1] - adds r0, #0x83 - bl sub_080A3268 - adds r0, r5, #0 - movs r1, #1 - bl sub_080042AC - b _08047D10 - .align 2, 0 -_08047CB8: .4byte gUnk_080D1C00 -_08047CBC: .4byte 0x0000FFF1 -_08047CC0: .4byte gUnk_03000BF0 -_08047CC4: - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x5a - bne _08047CD4 - ldr r4, [r5, #0x54] - b _08047CDC -_08047CD4: - cmp r0, #0x3c - bne _08047CF2 - ldr r0, [r5, #0x54] - ldr r4, [r0, #0x54] -_08047CDC: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX - b _08047D10 -_08047CF2: - cmp r0, #0x1e - bne _08047D10 - ldr r0, [r5, #0x54] - ldr r0, [r0, #0x54] - ldr r4, [r0, #0x54] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - movs r1, #0x51 - movs r2, #0 - bl CreateFX -_08047D10: - adds r0, r5, #0 - adds r0, #0x78 - ldrh r3, [r0] - adds r0, r5, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08047D24 -sub_08047D24: @ 0x08047D24 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x7e - ldrh r0, [r1] - adds r0, #8 - movs r2, #0 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - movs r0, #0x80 - lsls r0, r0, #4 - cmp r1, r0 - bls _08047D5A - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _08047D4C - ldr r0, [r4, #0x64] - str r2, [r0, #8] - b _08047D50 -_08047D4C: - ldr r0, [r4, #0x64] - str r2, [r0, #0xc] -_08047D50: - movs r0, #0 - str r0, [r4, #0x64] - bl sub_0805E780 - b _08047D84 -_08047D5A: - ldr r0, _08047D68 @ =0x000001FF - cmp r1, r0 - bhi _08047D6C - adds r0, r4, #0 - bl sub_08047E48 - b _08047D72 - .align 2, 0 -_08047D68: .4byte 0x000001FF -_08047D6C: - adds r0, r4, #0 - bl sub_08047E58 -_08047D72: - adds r0, r4, #0 - adds r0, #0x7e - ldrh r2, [r0] - subs r0, #6 - ldrh r3, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0805EC9C -_08047D84: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08047D88 -sub_08047D88: @ 0x08047D88 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r3, #0 - adds r5, #0x7c - ldrb r2, [r5] - lsls r1, r2, #1 - movs r0, #0x7f - ands r1, r0 - movs r0, #0x80 - ands r0, r2 - orrs r1, r0 - strb r1, [r5] - ldrb r0, [r3, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _08047DB0 - ldr r0, _08047DE8 @ =gUnk_03003F80 - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _08047DE6 -_08047DB0: - adds r0, r3, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #1 - beq _08047DE6 - ldr r4, _08047DEC @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r3, #0 - movs r3, #0x20 - bl sub_0806FCB8 - cmp r0, #0 - beq _08047DE6 - ldr r0, _08047DE8 @ =gUnk_03003F80 - movs r1, #1 - strb r1, [r0, #0x14] - movs r1, #0x36 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08047DE6 - ldrb r0, [r5] - movs r1, #1 - orrs r0, r1 - strb r0, [r5] -_08047DE6: - pop {r4, r5, pc} - .align 2, 0 -_08047DE8: .4byte gUnk_03003F80 -_08047DEC: .4byte gLinkEntity - - thumb_func_start sub_08047DF0 -sub_08047DF0: @ 0x08047DF0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08047D88 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08047EA4 - movs r0, #0x2e - ldrsh r4, [r5, r0] - movs r2, #0x32 - ldrsh r6, [r5, r2] - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047E42 - bl sub_08079F8C - cmp r0, #0 - beq _08047E42 - ldr r0, _08047E44 @ =gLinkEntity - ldrh r1, [r5, #0x2e] - subs r1, r1, r4 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r5, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08047E42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08047E44: .4byte gLinkEntity - - thumb_func_start sub_08047E48 -sub_08047E48: @ 0x08047E48 - push {r4, lr} - adds r4, r0, #0 - bl sub_08047D88 - adds r0, r4, #0 - bl sub_08047E58 - pop {r4, pc} - - thumb_func_start sub_08047E58 -sub_08047E58: @ 0x08047E58 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r2, #0x32 - ldrsh r6, [r4, r2] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047E9C - bl sub_08079F8C - cmp r0, #0 - beq _08047E9C - ldr r0, _08047EA0 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - subs r1, r1, r5 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r4, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08047E9C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08047EA0: .4byte gLinkEntity - - thumb_func_start sub_08047EA4 -sub_08047EA4: @ 0x08047EA4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r0, #0x78 - strh r1, [r0] - ldrh r1, [r0] - adds r0, #2 - ldrh r0, [r0] - subs r4, r1, r0 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r4, r0 - adds r0, #0xff - cmp r1, r0 - bls _08047F58 - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08047F4E - adds r0, r5, #0 - bl sub_08047F68 - lsls r0, r0, #8 - mov r8, r0 - ldr r6, _08047F60 @ =gLinkEntity - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r6, r3] - movs r7, #0x32 - ldrsh r2, [r5, r7] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - adds r0, r4, #0 - cmp r4, #0 - bge _08047F00 - adds r0, #0xff -_08047F00: - asrs r0, r0, #8 - subs r4, r3, r0 - movs r0, #0xff - ands r4, r0 - ldr r2, _08047F64 @ =gUnk_080C9160 - lsls r0, r4, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r1, [r0, r7] - lsls r0, r3, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r0, [r0, r7] - subs r1, r1, r0 - mov r0, r8 - muls r0, r1, r0 - adds r1, r0, #0 - ldr r0, [r6, #0x2c] - adds r0, r0, r1 - str r0, [r6, #0x2c] - adds r0, r4, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r4, #0 - ldrsh r1, [r0, r4] - adds r0, r3, #0 - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r2 - movs r7, #0 - ldrsh r0, [r0, r7] - subs r1, r1, r0 - mov r0, r8 - muls r0, r1, r0 - adds r1, r0, #0 - ldr r0, [r6, #0x30] - subs r0, r0, r1 - str r0, [r6, #0x30] -_08047F4E: - adds r0, r5, #0 - adds r0, #0x78 - ldrh r1, [r0] - adds r0, #2 - strh r1, [r0] -_08047F58: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08047F60: .4byte gLinkEntity -_08047F64: .4byte gUnk_080C9160 - - thumb_func_start sub_08047F68 -sub_08047F68: @ 0x08047F68 - push {r4, r5, lr} - ldr r3, _08047F98 @ =gLinkEntity - movs r1, #0x2e - ldrsh r2, [r3, r1] - movs r4, #0x2e - ldrsh r1, [r0, r4] - subs r2, r2, r1 - movs r4, #0x32 - ldrsh r1, [r3, r4] - movs r3, #0x32 - ldrsh r0, [r0, r3] - subs r1, r1, r0 - adds r4, r2, #0 - muls r4, r2, r4 - adds r2, r4, #0 - adds r0, r1, #0 - muls r0, r1, r0 - adds r4, r2, r0 - movs r0, #0x80 - lsls r0, r0, #3 - cmp r4, r0 - bne _08047F9C - movs r0, #0x20 - b _08048002 - .align 2, 0 -_08047F98: .4byte gLinkEntity -_08047F9C: - ldr r0, _08047FB8 @ =gUnk_080D1C04 - movs r3, #0x18 - adds r2, r0, #0 - ldrh r0, [r2, #0x20] - cmp r4, r0 - bge _08047FAA - movs r3, #8 -_08047FAA: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FBC - subs r3, #4 - b _08047FBE - .align 2, 0 -_08047FB8: .4byte gUnk_080D1C04 -_08047FBC: - adds r3, #4 -_08047FBE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FCC - subs r3, #2 - b _08047FCE -_08047FCC: - adds r3, #2 -_08047FCE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r0, [r0] - cmp r4, r0 - bge _08047FDC - subs r3, #1 - b _08047FDE -_08047FDC: - adds r3, #1 -_08047FDE: - lsls r0, r3, #1 - adds r0, r0, r2 - ldrh r1, [r0] - cmp r4, r1 - bge _08048000 - subs r5, r3, #1 - lsls r0, r5, #1 - adds r0, r0, r2 - ldrh r2, [r0] - subs r0, r1, r2 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - adds r2, r2, r0 - cmp r4, r2 - bgt _08048000 - adds r3, r5, #0 -_08048000: - adds r0, r3, #0 -_08048002: - pop {r4, r5, pc} - - thumb_func_start sub_08048004 -sub_08048004: @ 0x08048004 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08048010 - b _08048138 -_08048010: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _0804801C - b _08048130 -_0804801C: - ldrb r0, [r4, #0x10] - movs r1, #0x7f - ands r1, r0 - strb r1, [r4, #0x10] - ldr r6, _080480A4 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - beq _08048030 - b _08048138 -_08048030: - bl sub_08079F8C - cmp r0, #0 - bne _0804803A - b _08048138 -_0804803A: - adds r1, r4, #0 - adds r1, #0x7c - ldrb r3, [r1] - movs r0, #1 - ands r0, r3 - adds r5, r1, #0 - cmp r0, #0 - beq _080480BA - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - bne _080480B0 - movs r7, #0x2e - ldrsh r2, [r6, r7] - ldr r1, _080480A8 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - subs r2, r2, r0 - asrs r2, r2, #3 - movs r7, #0x32 - ldrsh r0, [r6, r7] - ldrh r1, [r1, #8] - subs r0, r0, r1 - asrs r0, r0, #3 - ldr r1, _080480AC @ =gUnk_02019EE0 - lsls r0, r0, #7 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r0, #0 - beq _080480B0 - movs r0, #2 - ands r0, r3 - cmp r0, #0 - bne _08048086 - movs r0, #0x80 - orrs r0, r3 - strb r0, [r5] -_08048086: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08048138 - adds r0, r4, #0 - adds r0, #0x84 - ldrh r0, [r0] - strh r0, [r6, #0x2e] - adds r0, r4, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r6, #0x32] - b _08048138 - .align 2, 0 -_080480A4: .4byte gLinkEntity -_080480A8: .4byte gUnk_03000BF0 -_080480AC: .4byte gUnk_02019EE0 -_080480B0: - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] - b _08048138 -_080480BA: - ldrb r0, [r4, #0x19] - lsrs r0, r0, #6 - cmp r0, #3 - beq _08048124 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r3, #0x32 - ldrsh r2, [r4, r3] - adds r0, r6, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _08048124 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08048124 - movs r7, #0x2e - ldrsh r0, [r6, r7] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r6, r3] - movs r7, #0x32 - ldrsh r2, [r4, r7] - subs r1, r1, r2 - bl sub_080045DA - ldr r3, _0804812C @ =gUnk_080C9160 - lsls r1, r0, #1 - adds r1, r1, r3 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #3 - adds r2, r2, r1 - lsls r2, r2, #0xa - ldr r1, [r4, #0x2c] - adds r1, r1, r2 - str r1, [r6, #0x2c] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #0xa - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r6, #0x30] -_08048124: - movs r0, #0 - strb r0, [r5] - b _08048138 - .align 2, 0 -_0804812C: .4byte gUnk_080C9160 -_08048130: - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08048138: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804813C -sub_0804813C: @ 0x0804813C - push {lr} - bl sub_08000E50 - adds r2, r0, #0 - movs r0, #7 - ands r0, r2 - lsrs r2, r2, #8 - movs r1, #3 - ands r2, r1 - movs r1, #1 - bl sub_080A1ED0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048158 -sub_08048158: @ 0x08048158 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _08048174 @ =gUnk_080D1C44 - bl sub_08000E50 - lsls r4, r5, #1 - adds r4, r4, r5 - movs r1, #3 - bl __modsi3 - adds r4, r4, r0 - adds r4, r4, r6 - ldrb r0, [r4] - pop {r4, r5, r6, pc} - .align 2, 0 -_08048174: .4byte gUnk_080D1C44 - - thumb_func_start sub_08048178 -sub_08048178: @ 0x08048178 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldr r0, [r4, #0x64] - ldr r0, [r0, #4] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08048198 - lsls r1, r2, #1 - ldr r0, _08048194 @ =gUnk_080D1C60 - b _0804819C - .align 2, 0 -_08048194: .4byte gUnk_080D1C60 -_08048198: - lsls r1, r2, #1 - ldr r0, _080481B8 @ =gUnk_080D1C50 -_0804819C: - adds r3, r1, r0 - ldr r2, _080481BC @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldrh r1, [r3] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - ldrh r0, [r2, #8] - ldrh r3, [r3, #2] - adds r0, r0, r3 - adds r1, #2 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_080481B8: .4byte gUnk_080D1C50 -_080481BC: .4byte gUnk_03000BF0 - - thumb_func_start sub_080481C0 -sub_080481C0: @ 0x080481C0 - push {lr} - ldr r1, _080481CC @ =gUnk_080D1CC8 - bl sub_0800129E - pop {pc} - .align 2, 0 -_080481CC: .4byte gUnk_080D1CC8 - - thumb_func_start sub_080481D0 -sub_080481D0: @ 0x080481D0 - push {lr} - ldr r2, _080481E4 @ =gUnk_080D1CE0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080481E4: .4byte gUnk_080D1CE0 - - thumb_func_start sub_080481E8 -sub_080481E8: @ 0x080481E8 - push {lr} - adds r2, r0, #0 - adds r0, #0x46 - ldrh r0, [r0] - cmp r0, #0 - beq _08048210 - movs r0, #2 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r0, [r3] - movs r1, #7 - orrs r0, r1 - strb r0, [r3] - movs r0, #3 - b _08048212 -_08048210: - movs r0, #2 -_08048212: - strb r0, [r2, #0xe] - ldrb r1, [r2, #0xe] - adds r0, r2, #0 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_26 -nullsub_26: @ 0x08048220 - bx lr - .align 2, 0 - - thumb_func_start sub_08048224 -sub_08048224: @ 0x08048224 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #4 - orrs r1, r0 - strb r1, [r2] - movs r0, #0x72 - bl sub_0807CBD0 - adds r1, r0, #0 - cmp r1, #0 - bne _0804824E - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - b _0804825E -_0804824E: - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xe] -_0804825E: - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08048268 -sub_08048268: @ 0x08048268 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08048292 - 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 _08048292 - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_08048292: - pop {r4, pc} - - thumb_func_start sub_08048294 -sub_08048294: @ 0x08048294 - 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 _080482BC - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0x72 - bl sub_0807CCB4 - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_080482BC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_27 -nullsub_27: @ 0x080482C0 - bx lr - .align 2, 0 - - thumb_func_start sub_080482C4 -sub_080482C4: @ 0x080482C4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _080482D4 - bl sub_0805E780 -_080482D4: - ldr r0, _080482E8 @ =gUnk_080D1D48 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080482E8: .4byte gUnk_080D1D48 - - thumb_func_start sub_080482EC -sub_080482EC: @ 0x080482EC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08048310 @ =gUnk_030010A0 - adds r0, #0x38 - ldrb r1, [r0] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08048314 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - b _08048326 - .align 2, 0 -_08048310: .4byte gUnk_030010A0 -_08048314: - strb r2, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - movs r0, #0xb3 - lsls r0, r0, #1 - bl sub_080A3268 -_08048326: - adds r0, r4, #0 - bl sub_080485D8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08048330 -sub_08048330: @ 0x08048330 - push {r4, lr} - adds r4, r0, #0 - bl sub_080485D8 - 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 _08048358 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 -_08048358: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804835C -sub_0804835C: @ 0x0804835C - push {r4, lr} - adds r4, r0, #0 - bl sub_080485D8 - ldr r0, _08048384 @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r1, [r0] - movs r2, #3 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08048382 - strb r2, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r4, #0x10] - movs r0, #0x80 - strh r0, [r4, #0x24] -_08048382: - pop {r4, pc} - .align 2, 0 -_08048384: .4byte gUnk_030010A0 - - thumb_func_start sub_08048388 -sub_08048388: @ 0x08048388 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r2, [r5, #0x50] - adds r0, r2, #0 - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - beq _080483A0 - adds r0, r5, #0 - bl sub_080485D8 - b _080483F2 -_080483A0: - ldrb r1, [r5, #0xa] - lsls r1, r1, #1 - ldr r0, _080483F4 @ =gUnk_080D1D98 - adds r1, r1, r0 - movs r0, #0x2e - ldrsh r4, [r2, r0] - movs r0, #0 - ldrsb r0, [r1, r0] - adds r4, r4, r0 - movs r0, #0x32 - ldrsh r2, [r2, r0] - movs r0, #1 - ldrsb r0, [r1, r0] - adds r6, r2, r0 - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r2, r4, #0 - adds r3, r6, #0 - bl sub_080045D4 - strb r0, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F69C - ldr r0, [r5, #0x50] - ldrh r0, [r0, #0x36] - strh r0, [r5, #0x36] - movs r1, #0x2e - ldrsh r0, [r5, r1] - cmp r0, r4 - bne _080483F2 - movs r2, #0x32 - ldrsh r0, [r5, r2] - cmp r0, r6 - bne _080483F2 - movs r0, #4 - strb r0, [r5, #0xc] - movs r0, #0x3c - strb r0, [r5, #0xe] -_080483F2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080483F4: .4byte gUnk_080D1D98 - - thumb_func_start sub_080483F8 -sub_080483F8: @ 0x080483F8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080485FC - ldrb r0, [r4, #0xe] - adds r5, r0, #0 - cmp r5, #0 - beq _0804841C - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08048436 - adds r0, r4, #0 - movs r1, #3 - bl sub_08004260 - b _08048436 -_0804841C: - 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 _08048436 - movs r0, #5 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] -_08048436: - pop {r4, r5, pc} - - thumb_func_start sub_08048438 -sub_08048438: @ 0x08048438 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0804846A - movs r0, #6 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x50] - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0x14 - bls _08048454 - movs r0, #0x78 - b _08048456 -_08048454: - movs r0, #0x3c -_08048456: - strb r0, [r4, #0xe] - movs r0, #0 - str r0, [r4, #0x54] - adds r0, r4, #0 - movs r1, #5 - bl sub_08004260 - ldr r0, _08048474 @ =0x0000019B - bl sub_080A3268 -_0804846A: - adds r0, r4, #0 - bl sub_080485FC - pop {r4, pc} - .align 2, 0 -_08048474: .4byte 0x0000019B - - thumb_func_start sub_08048478 -sub_08048478: @ 0x08048478 - push {r4, lr} - adds r4, r0, #0 - bl sub_080485FC - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xe] - adds r2, r0, #0 - cmp r2, #0 - beq _080484A2 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080484E6 - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _080484E6 -_080484A2: - adds r3, r4, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080484BC - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r2, [r4, #0xf] - b _080484E6 -_080484BC: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080484E6 - movs r0, #0xfe - ands r0, r1 - strb r0, [r3] - movs r0, #0x24 - bl sub_080A7EE0 - adds r1, r0, #0 - cmp r1, #0 - beq _080484E6 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - movs r3, #0xc0 - lsls r3, r3, #0xc - adds r0, r4, #0 - movs r2, #0 - bl PositionRelative -_080484E6: - pop {r4, pc} - - thumb_func_start sub_080484E8 -sub_080484E8: @ 0x080484E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080485FC - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08048528 - movs r0, #8 - strb r0, [r4, #0xc] - movs r0, #0x3c - strb r0, [r4, #0xe] - 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 - movs r1, #0x1f - movs r2, #0x40 - bl CreateFX - ldr r2, [r4, #0x50] - adds r2, #0x7b - movs r0, #0x10 - b _08048542 -_08048528: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0804854C - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xe] - ldr r2, [r4, #0x50] - adds r2, #0x7b - movs r0, #1 -_08048542: - ldrb r4, [r4, #0xa] - lsls r0, r4 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] -_0804854C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08048550 -sub_08048550: @ 0x08048550 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0xc] - cmp r0, #0xb - bne _08048562 - movs r0, #0x3c - strb r0, [r4, #0xe] - b _0804859E -_08048562: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804859E - movs r0, #9 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #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 r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_080485FC - movs r0, #0xb3 - lsls r0, r0, #1 - bl sub_080A3268 -_0804859E: - pop {r4, pc} - - thumb_func_start sub_080485A0 -sub_080485A0: @ 0x080485A0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080485FC - 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 _080485D6 - movs r0, #4 - strb r0, [r4, #0xc] - movs r1, #1 - strb r1, [r4, #0xe] - ldr r2, [r4, #0x50] - adds r2, #0x7b - ldrb r3, [r2] - movs r0, #0xf - ands r0, r3 - ldrb r4, [r4, #0xa] - lsls r1, r4 - orrs r0, r1 - strb r0, [r2] -_080485D6: - pop {r4, pc} - - thumb_func_start sub_080485D8 -sub_080485D8: @ 0x080485D8 - push {lr} - adds r1, r0, #0 - ldrb r3, [r1, #0xa] - lsls r3, r3, #1 - ldr r0, _080485F8 @ =gUnk_080D1D70 - adds r3, r3, r0 - ldr r0, [r1, #0x50] - movs r2, #0 - ldrsb r2, [r3, r2] - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - bl sub_0806FA90 - pop {pc} - .align 2, 0 -_080485F8: .4byte gUnk_080D1D70 - - thumb_func_start sub_080485FC -sub_080485FC: @ 0x080485FC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #1 - ldr r0, _08048638 @ =gUnk_080D1D98 - adds r1, r1, r0 - ldr r0, [r4, #0x50] - movs r2, #0 - ldrsb r2, [r1, r2] - movs r3, #1 - ldrsb r3, [r1, r3] - adds r1, r4, #0 - bl sub_0806FA90 - ldr r3, _0804863C @ =gUnk_080D1D78 - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - ldr r0, [r4, #0x50] - adds r0, #0x78 - ldrb r0, [r0] - lsrs r0, r0, #4 - movs r2, #7 - ands r0, r2 - adds r1, r1, r0 - adds r1, r1, r3 - movs r0, #0 - ldrsb r0, [r1, r0] - strh r0, [r4, #0x36] - pop {r4, pc} - .align 2, 0 -_08048638: .4byte gUnk_080D1D98 -_0804863C: .4byte gUnk_080D1D78 - - thumb_func_start sub_08048640 -sub_08048640: @ 0x08048640 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0804867C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r2, [r0] - cmp r2, #0 - bne _08048664 - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r5, #0 - adds r0, #0x45 - strb r2, [r0] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] -_08048664: - ldr r4, _08048680 @ =gUnk_080D1E6C - 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 - pop {r4, r5, pc} - .align 2, 0 -_0804867C: .4byte gUnk_030010A0 -_08048680: .4byte gUnk_080D1E6C - - thumb_func_start sub_08048684 -sub_08048684: @ 0x08048684 - push {lr} - ldr r2, _08048698 @ =gUnk_080D1E84 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08048698: .4byte gUnk_080D1E84 - - thumb_func_start sub_0804869C -sub_0804869C: @ 0x0804869C - push {lr} - ldr r1, _080486A8 @ =gUnk_080D1E6C - bl sub_0804AA30 - pop {pc} - .align 2, 0 -_080486A8: .4byte gUnk_080D1E6C - - thumb_func_start sub_080486AC -sub_080486AC: @ 0x080486AC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F520 - cmp r0, #0 - beq _080486C8 - ldr r0, _080486CC @ =gUnk_080D1E94 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080486C8: - pop {r4, pc} - .align 2, 0 -_080486CC: .4byte gUnk_080D1E94 - - thumb_func_start sub_080486D0 -sub_080486D0: @ 0x080486D0 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_080486D8 -sub_080486D8: @ 0x080486D8 - push {lr} - bl sub_0806F4E8 - pop {pc} - - thumb_func_start sub_080486E0 -sub_080486E0: @ 0x080486E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F3E4 - cmp r0, #0 - beq _080486F2 - adds r0, r4, #0 - bl sub_0804A7D4 -_080486F2: - pop {r4, pc} - - thumb_func_start sub_080486F4 -sub_080486F4: @ 0x080486F4 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - strb r5, [r4, #0x1c] - ldrb r0, [r4, #0x1b] - movs r1, #0xc0 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - orrs r0, r1 - strb r0, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0x15] - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0804876C - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - strb r5, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - bl sub_08000E50 - movs r1, #0xb - bl __modsi3 - ldrb r1, [r4, #0x15] - adds r1, r1, r0 - subs r1, #5 - movs r2, #0x1f - ands r1, r2 - strb r1, [r4, #0x15] - lsls r0, r0, #1 - ldr r2, _08048768 @ =gUnk_080D1EA0 - adds r1, r0, r2 - ldrb r1, [r1] - strb r1, [r4, #0xe] - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x7b - strb r0, [r1] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0804877A - .align 2, 0 -_08048768: .4byte gUnk_080D1EA0 -_0804876C: - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #6 - ands r0, r1 - strb r0, [r4, #0x18] -_0804877A: - pop {r4, r5, pc} - - thumb_func_start sub_0804877C -sub_0804877C: @ 0x0804877C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080487AA - subs r0, #1 - strb r0, [r4, #0xe] - movs r1, #0xff - ands r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _080487AA - adds r0, r4, #0 - adds r0, #0x7b - ldrb r0, [r0] - ldrb r1, [r4, #0x15] - adds r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] -_080487AA: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _080487D4 - cmp r0, #1 - bgt _080487BC - cmp r0, #0 - beq _080487C2 - b _08048804 -_080487BC: - cmp r0, #2 - beq _080487EC - b _08048804 -_080487C2: - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldr r0, _080487D0 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r0, [r0, r2] - b _0804880E - .align 2, 0 -_080487D0: .4byte gUnk_03000BF0 -_080487D4: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _080487E8 @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r0, [r0, r2] - movs r2, #0x84 - lsls r2, r2, #1 - adds r0, r0, r2 - b _080487F8 - .align 2, 0 -_080487E8: .4byte gUnk_03000BF0 -_080487EC: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048800 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r0, [r0, r2] - adds r0, #0xb8 -_080487F8: - cmp r1, r0 - blt _08048824 - b _08048814 - .align 2, 0 -_08048800: .4byte gUnk_03000BF0 -_08048804: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048828 @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r0, [r0, r2] -_0804880E: - subs r0, #0x18 - cmp r1, r0 - bgt _08048824 -_08048814: - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x5a - strb r0, [r4, #0xe] - ldrb r1, [r4, #0x18] - subs r0, #0x5e - ands r0, r1 - strb r0, [r4, #0x18] -_08048824: - pop {r4, pc} - .align 2, 0 -_08048828: .4byte gUnk_03000BF0 - - thumb_func_start sub_0804882C -sub_0804882C: @ 0x0804882C - 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 _080488FA - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - bl sub_08000E50 - 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, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x78 - ldrh r0, [r0] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - adds r0, #0x7a - ldrb r0, [r0] - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1a - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _080488D0 - cmp r0, #1 - bgt _080488AA - cmp r0, #0 - beq _080488AE - b _080488D0 -_080488AA: - cmp r0, #2 - bne _080488D0 -_080488AE: - ldr r1, _080488C8 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r1, [r1, #0x2e] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r1, _080488CC @ =gUnk_03000BF0 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - ldrh r1, [r1, #0xc] - b _080488E8 - .align 2, 0 -_080488C8: .4byte gLinkEntity -_080488CC: .4byte gUnk_03000BF0 -_080488D0: - ldr r1, _080488FC @ =gUnk_03000BF0 - adds r0, r4, #0 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r1, [r1, #0xa] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - ldr r1, _08048900 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x76 - ldrh r0, [r0] - ldrh r1, [r1, #0x32] -_080488E8: - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _080488FA - movs r0, #0xcc - lsls r0, r0, #1 - bl sub_080A3268 -_080488FA: - pop {r4, pc} - .align 2, 0 -_080488FC: .4byte gUnk_03000BF0 -_08048900: .4byte gLinkEntity - - thumb_func_start sub_08048904 -sub_08048904: @ 0x08048904 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08004274 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _0804893C - cmp r0, #1 - bgt _08048924 - cmp r0, #0 - beq _0804892A - b _0804896C -_08048924: - cmp r0, #2 - beq _08048954 - b _0804896C -_0804892A: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048938 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r0, [r0, r2] - b _08048976 - .align 2, 0 -_08048938: .4byte gUnk_03000BF0 -_0804893C: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048950 @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r0, [r0, r2] - movs r2, #0x8c - lsls r2, r2, #1 - adds r0, r0, r2 - b _08048960 - .align 2, 0 -_08048950: .4byte gUnk_03000BF0 -_08048954: - movs r0, #0x32 - ldrsh r1, [r4, r0] - ldr r0, _08048968 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r0, [r0, r2] - adds r0, #0xc8 -_08048960: - cmp r1, r0 - blt _08048980 - b _0804897C - .align 2, 0 -_08048968: .4byte gUnk_03000BF0 -_0804896C: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r0, _08048984 @ =gUnk_03000BF0 - movs r2, #0xa - ldrsh r0, [r0, r2] -_08048976: - subs r0, #0x28 - cmp r1, r0 - bgt _08048980 -_0804897C: - bl sub_0805E780 -_08048980: - pop {r4, pc} - .align 2, 0 -_08048984: .4byte gUnk_03000BF0 - - thumb_func_start sub_08048988 -sub_08048988: @ 0x08048988 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, [r5, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08048998 - bl sub_0805E780 -_08048998: - ldr r4, _080489B0 @ =gUnk_080D1F64 - 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 - pop {r4, r5, pc} - .align 2, 0 -_080489B0: .4byte gUnk_080D1F64 - - thumb_func_start sub_080489B4 -sub_080489B4: @ 0x080489B4 - push {lr} - ldr r2, _080489C8 @ =gUnk_080D1F7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080489C8: .4byte gUnk_080D1F7C - - thumb_func_start sub_080489CC -sub_080489CC: @ 0x080489CC - push {r4, r5, r6, lr} - mov ip, r0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0xff - bne _080489DA - b _08048AD8 -_080489DA: - mov r0, ip - ldr r4, [r0, #0x50] - adds r0, r4, #0 - adds r0, #0x78 - ldrb r0, [r0] - mov r2, ip - ldrb r1, [r2, #0xa] - asrs r0, r1 - movs r3, #1 - ands r0, r3 - cmp r0, #0 - beq _08048AD8 - adds r2, r4, #0 - adds r2, #0x7c - adds r0, r3, #0 - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - mov r0, ip - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - subs r0, #4 - cmp r0, #0x16 - bhi _08048AD0 - lsls r0, r0, #2 - ldr r1, _08048A1C @ =_08048A20 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08048A1C: .4byte _08048A20 -_08048A20: @ jump table - .4byte _08048A7C @ case 0 - .4byte _08048A7C @ case 1 - .4byte _08048A7C @ case 2 - .4byte _08048AD0 @ case 3 - .4byte _08048A7C @ case 4 - .4byte _08048A7C @ case 5 - .4byte _08048A7C @ case 6 - .4byte _08048A7C @ case 7 - .4byte _08048A7C @ case 8 - .4byte _08048A7C @ case 9 - .4byte _08048AD0 @ case 10 - .4byte _08048AD0 @ case 11 - .4byte _08048A7C @ case 12 - .4byte _08048A7C @ case 13 - .4byte _08048A7C @ case 14 - .4byte _08048AD0 @ case 15 - .4byte _08048AD0 @ case 16 - .4byte _08048AD0 @ case 17 - .4byte _08048AD0 @ case 18 - .4byte _08048AD0 @ case 19 - .4byte _08048A7C @ case 20 - .4byte _08048A7C @ case 21 - .4byte _08048A7C @ case 22 -_08048A7C: - ldr r3, [r4, #0x64] - mov r5, ip - ldrb r0, [r5, #0xa] - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x18 - adds r1, r1, r0 - ldr r0, [r5, #0x4c] - str r0, [r1] - ldr r2, _08048ACC @ =gLinkEntity - movs r6, #0x2e - ldrsh r0, [r2, r6] - movs r6, #0x2e - ldrsh r1, [r5, r6] - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r3, #0x38] - ldr r3, [r4, #0x64] - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r5, r2] - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r3, #0x3a] - ldr r2, [r4, #0x64] - mov r3, ip - adds r3, #0x3e - ldrb r0, [r3] - movs r1, #0x10 - eors r0, r1 - strb r0, [r3] - adds r2, #0x3c - strb r0, [r2] - b _08048AD8 - .align 2, 0 -_08048ACC: .4byte gLinkEntity -_08048AD0: - ldr r0, [r4, #0x64] - adds r0, #0x3c - movs r1, #0xff - strb r1, [r0] -_08048AD8: - mov r1, ip - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] - ldr r1, _08048AEC @ =gUnk_080D1F64 - mov r0, ip - bl sub_0804AA30 - pop {r4, r5, r6, pc} - .align 2, 0 -_08048AEC: .4byte gUnk_080D1F64 - - thumb_func_start sub_08048AF0 -sub_08048AF0: @ 0x08048AF0 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0xff - strb r1, [r0, #0x14] - ldrb r3, [r0, #0x1b] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r3 - movs r3, #0x80 - orrs r1, r3 - strb r1, [r0, #0x1b] - ldrb r1, [r0, #0x19] - ands r2, r1 - orrs r2, r3 - strb r2, [r0, #0x19] - adds r3, r0, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r2, #7 - orrs r1, r2 - strb r1, [r3] - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #2 - strb r1, [r2] - bl sub_08048D20 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048B2C -sub_08048B2C: @ 0x08048B2C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08048D20 - ldr r5, [r4, #0x50] - adds r0, r5, #0 - bl sub_08048D70 - cmp r0, #0 - beq _08048B62 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - bne _08048B52 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX -_08048B52: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _08048B6C -_08048B62: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08048B6C: - adds r0, r5, #0 - adds r0, #0x78 - ldrb r0, [r0] - ldrb r1, [r4, #0xa] - asrs r0, r1 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08048B82 - movs r0, #2 - strb r0, [r4, #0xc] -_08048B82: - pop {r4, r5, pc} - - thumb_func_start sub_08048B84 -sub_08048B84: @ 0x08048B84 - 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 _08048BAE - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1e - strb r0, [r1] -_08048BAE: - pop {r4, pc} - - thumb_func_start sub_08048BB0 -sub_08048BB0: @ 0x08048BB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, [r4, #0x50] - adds r0, r2, #0 - adds r0, #0x78 - ldrb r3, [r0] - ldrb r1, [r4, #0xa] - adds r0, r3, #0 - asrs r0, r1 - movs r6, #1 - ands r0, r6 - cmp r0, #0 - bne _08048C34 - adds r0, r2, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08048BFC - movs r0, #4 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08048BF8 @ =gUnk_080D2030 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - b _08048CEA - .align 2, 0 -_08048BF8: .4byte gUnk_080D2030 -_08048BFC: - strb r6, [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 r1, _08048C30 @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0x40 - bl CreateFX - b _08048CEA - .align 2, 0 -_08048C30: .4byte gUnk_080D2010 -_08048C34: - adds r5, r2, #0 - adds r5, #0x80 - ldrb r0, [r5] - asrs r0, r1 - ands r0, r6 - cmp r0, #0 - beq _08048CBC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0x13 - bhi _08048C6C - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r1, #2 - movs r0, #0x89 - strb r0, [r1] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #6 - adds r1, #0x14 - adds r0, r4, #0 - bl sub_08004260 - ldr r0, _08048CB4 @ =0x00000119 - bl sub_080A3268 -_08048C6C: - 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 _08048CEA - adds r1, r4, #0 - adds r1, #0x3f - movs r0, #0x1e - strb r0, [r1] - ldr r1, _08048CB8 @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #7 - bl sub_08004276 - adds r1, r6, #0 - ldrb r4, [r4, #0xa] - lsls r1, r4 - ldrb r0, [r5] - bics r0, r1 - strb r0, [r5] - b _08048CEA - .align 2, 0 -_08048CB4: .4byte 0x00000119 -_08048CB8: .4byte gUnk_080D2010 -_08048CBC: - cmp r3, #0xff - bne _08048CEA - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x10 - cmp r0, #3 - bls _08048CE4 - ldrb r1, [r4, #0x14] - adds r1, #0x10 - adds r0, r4, #0 - bl sub_08004260 - bl sub_08000E50 - movs r1, #0x1c - ands r1, r0 - adds r0, r4, #0 - bl sub_08004276 -_08048CE4: - adds r0, r4, #0 - bl sub_08004274 -_08048CEA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08048CEC -sub_08048CEC: @ 0x08048CEC - 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 _08048D1A - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _08048D1C @ =gUnk_080D2010 - ldrb r0, [r4, #0x14] - lsls r0, r0, #3 - ldrb r2, [r4, #0xa] - adds r0, r0, r2 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08048D1A: - pop {r4, pc} - .align 2, 0 -_08048D1C: .4byte gUnk_080D2010 - - thumb_func_start sub_08048D20 -sub_08048D20: @ 0x08048D20 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #6 - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _08048D60 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0xa] - lsls r3, r0, #3 - adds r1, r1, r3 - lsls r1, r1, #2 - ldr r0, _08048D64 @ =gUnk_080D1F90 - adds r1, r1, r0 - ldr r2, _08048D68 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldrh r5, [r1] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #8] - ldrh r1, [r1, #2] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r1, _08048D6C @ =gUnk_080D2010 - ldrb r0, [r4, #0xa] - adds r0, r0, r3 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08048D60: - pop {r4, r5, pc} - .align 2, 0 -_08048D64: .4byte gUnk_080D1F90 -_08048D68: .4byte gUnk_03000BF0 -_08048D6C: .4byte gUnk_080D2010 - - thumb_func_start sub_08048D70 -sub_08048D70: @ 0x08048D70 - push {lr} - adds r1, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08048D8E - ldr r1, [r1, #0x64] - ldr r0, [r1, #8] - cmp r0, #0 - bne _08048D86 - ldr r0, [r1, #0xc] -_08048D86: - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - bne _08048D92 -_08048D8E: - movs r0, #1 - b _08048D94 -_08048D92: - movs r0, #0 -_08048D94: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08048D98 -sub_08048D98: @ 0x08048D98 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, [r5, #0x50] - ldr r0, [r6, #4] - cmp r0, #0 - bne _08048DA8 - bl sub_0805E780 -_08048DA8: - ldr r4, _08048E00 @ =gUnk_080D22D8 - 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 - ldrb r2, [r6, #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, [r6, #0x19] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r5, #0x19] - ands r1, r2 - orrs r1, r0 - strb r1, [r5, #0x19] - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - adds r3, r5, #0 - adds r3, #0x29 - movs r0, #7 - ands r1, r0 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - pop {r4, r5, r6, pc} - .align 2, 0 -_08048E00: .4byte gUnk_080D22D8 - - thumb_func_start sub_08048E04 -sub_08048E04: @ 0x08048E04 - push {lr} - ldr r2, _08048E18 @ =gUnk_080D22F0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08048E18: .4byte gUnk_080D22F0 - - thumb_func_start sub_08048E1C -sub_08048E1C: @ 0x08048E1C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0xff - subs r0, r0, r1 - cmp r0, #0 - beq _08048E96 - ldr r4, [r5, #0x50] - adds r1, r4, #0 - adds r1, #0x45 - ldrb r2, [r1] - cmp r2, r0 - bls _08048E48 - subs r0, r2, r0 - strb r0, [r1] - ldr r0, _08048E44 @ =0x00000127 - bl sub_080A3268 - b _08048E5C - .align 2, 0 -_08048E44: .4byte 0x00000127 -_08048E48: - movs r0, #0 - strb r0, [r1] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x28 - movs r1, #0 - bl sub_08080964 -_08048E5C: - adds r2, r5, #0 - adds r2, #0x3d - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - ble _08048E8E - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r4, [r4, #0x54] - ldrb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - strb r0, [r1] - ldr r4, [r4, #0x54] - ldrb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - strb r0, [r1] - ldr r4, [r4, #0x54] - ldrb r1, [r2] - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] -_08048E8E: - adds r1, r5, #0 - adds r1, #0x45 - movs r0, #0xff - strb r0, [r1] -_08048E96: - ldr r1, _08048EA0 @ =gUnk_080D22D8 - adds r0, r5, #0 - bl sub_0804AA30 - pop {r4, r5, pc} - .align 2, 0 -_08048EA0: .4byte gUnk_080D22D8 - - thumb_func_start sub_08048EA4 -sub_08048EA4: @ 0x08048EA4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x14] - movs r0, #0xe0 - ands r0, r1 - lsrs r0, r0, #3 - ldrb r1, [r4, #0xa] - adds r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x78 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08048F50 - adds r0, r4, #0 - bl sub_08048F74 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08048ED0 -sub_08048ED0: @ 0x08048ED0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08048F50 - 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 _08048EFC - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x2d - strb r0, [r4, #0xe] -_08048EFC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08048F00 -sub_08048F00: @ 0x08048F00 - push {r4, lr} - adds r4, r0, #0 - bl sub_08048F50 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08048F2E - movs r0, #3 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_08048F2E: - pop {r4, pc} - - thumb_func_start sub_08048F30 -sub_08048F30: @ 0x08048F30 - push {r4, lr} - adds r4, r0, #0 - bl sub_08048F50 - adds r0, r4, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08048F4E - bl sub_0805E780 -_08048F4E: - pop {r4, pc} - - thumb_func_start sub_08048F50 -sub_08048F50: @ 0x08048F50 - push {lr} - adds r1, r0, #0 - adds r0, #0x78 - ldrb r3, [r0] - lsls r3, r3, #1 - ldr r0, _08048F70 @ =gUnk_080D2300 - adds r3, r3, r0 - ldr r0, [r1, #0x50] - movs r2, #0 - ldrsb r2, [r3, r2] - ldrb r3, [r3, #1] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - bl sub_0806FA90 - pop {pc} - .align 2, 0 -_08048F70: .4byte gUnk_080D2300 - - thumb_func_start sub_08048F74 -sub_08048F74: @ 0x08048F74 - push {lr} - ldr r2, _08048F88 @ =gUnk_080D2348 - adds r1, r0, #0 - adds r1, #0x78 - ldrb r1, [r1] - adds r1, r1, r2 - ldrb r1, [r1] - bl sub_08004260 - pop {pc} - .align 2, 0 -_08048F88: .4byte gUnk_080D2348 - - thumb_func_start sub_08048F8C -sub_08048F8C: @ 0x08048F8C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x50] - ldr r0, [r0, #4] - cmp r0, #0 - bne _08048F9C - bl sub_0805E780 -_08048F9C: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08048FD4 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r2, [r4, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x19] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - movs r0, #0xff - strb r0, [r4, #0x14] -_08048FD4: - ldr r0, [r4, #0x50] - ldrb r0, [r0, #0x14] - lsrs r0, r0, #5 - lsls r6, r0, #0x18 - lsrs r5, r6, #0x18 - ldrb r0, [r4, #0x14] - cmp r5, r0 - beq _08049018 - strb r5, [r4, #0x14] - ldr r3, _08049010 @ =gUnk_080D28CC - lsls r1, r5, #1 - adds r1, r1, r3 - ldr r2, _08049014 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x2e] - adds r1, r5, #1 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r0, [r2, #8] - ldrh r1, [r1] - adds r0, r0, r1 - strh r0, [r4, #0x32] - lsrs r1, r6, #0x19 - adds r0, r4, #0 - bl sub_08004260 - b _0804901E - .align 2, 0 -_08049010: .4byte gUnk_080D28CC -_08049014: .4byte gUnk_03000BF0 -_08049018: - adds r0, r4, #0 - bl sub_08004274 -_0804901E: - movs r0, #2 - ands r0, r5 - cmp r0, #0 - beq _08049038 - ldr r0, _08049034 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x32 - ldrsh r0, [r0, r2] - b _08049042 - .align 2, 0 -_08049034: .4byte gLinkEntity -_08049038: - ldr r0, _08049054 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] -_08049042: - cmp r1, r0 - bge _08049048 - adds r5, #1 -_08049048: - ldr r0, _08049058 @ =gUnk_080D28AC - lsls r1, r5, #2 - adds r1, r1, r0 - ldr r0, [r1] - str r0, [r4, #0x48] - pop {r4, r5, r6, pc} - .align 2, 0 -_08049054: .4byte gLinkEntity -_08049058: .4byte gUnk_080D28AC - - thumb_func_start sub_0804905C -sub_0804905C: @ 0x0804905C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _0804907C - adds r0, r5, #0 - adds r0, #0x7d - ldrb r1, [r0] - movs r0, #3 - ands r1, r0 - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] -_0804907C: - adds r1, r5, #0 - adds r1, #0x45 - ldrb r0, [r1] - adds r2, r0, #0 - cmp r2, #0 - bne _08049092 - movs r0, #0xff - strb r0, [r1] - movs r0, #4 - strb r0, [r5, #0xc] - strb r2, [r5, #0xd] -_08049092: - ldr r1, _080490F8 @ =gUnk_080D2974 - ldrb r0, [r5, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r5, #0 - bl _call_via_r1 - adds r4, r5, #0 - adds r4, #0x78 - ldrh r3, [r4] - adds r0, r5, #0 - movs r1, #0xaa - movs r2, #0xaa - bl sub_0805EC9C - ldrh r0, [r4] - lsrs r0, r0, #8 - rsbs r0, r0, #0 - strb r0, [r5, #0x14] - adds r0, r5, #0 - bl sub_080499F0 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - adds r1, r5, #0 - adds r1, #0x7d - strb r0, [r1] - ldrb r2, [r5, #0x18] - lsls r0, r2, #0x1e - lsrs r0, r0, #0x1e - cmp r0, #1 - bne _080490F4 - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldr r1, _080490FC @ =gUnk_03000BF0 - movs r3, #0xc - ldrsh r1, [r1, r3] - subs r0, r0, r1 - adds r0, #0x30 - movs r1, #0x80 - lsls r1, r1, #1 - cmp r0, r1 - bls _080490F4 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r5, #0x18] -_080490F4: - pop {r4, r5, pc} - .align 2, 0 -_080490F8: .4byte gUnk_080D2974 -_080490FC: .4byte gUnk_03000BF0 - - thumb_func_start sub_08049100 -sub_08049100: @ 0x08049100 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x7c - bl sub_0807CBE4 - cmp r0, #0 - beq _08049144 - ldr r4, _08049140 @ =0x00004081 - adds r0, r4, #0 - movs r1, #0xa - movs r2, #2 - bl sub_0800015E - adds r0, r4, #0 - movs r1, #0x4a - movs r2, #2 - bl sub_0800015E - adds r0, r4, #0 - movs r1, #0x8a - movs r2, #2 - bl sub_0800015E - adds r0, r4, #0 - movs r1, #0xca - movs r2, #2 - bl sub_0800015E - bl sub_0805E780 - b _0804916E - .align 2, 0 -_08049140: .4byte 0x00004081 -_08049144: - ldr r4, _080491E8 @ =0x00000323 - adds r0, r4, #0 - movs r1, #0xa - movs r2, #1 - bl sub_0807B7D8 - adds r0, r4, #0 - movs r1, #0x4a - movs r2, #1 - bl sub_0807B7D8 - adds r0, r4, #0 - movs r1, #0x8a - movs r2, #1 - bl sub_0807B7D8 - adds r0, r4, #0 - movs r1, #0xca - movs r2, #1 - bl sub_0807B7D8 -_0804916E: - movs r0, #0x22 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _080491E4 - movs r1, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r2, #0xa] - str r5, [r2, #0x50] - str r2, [r5, #0x54] - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - movs r0, #0x3c - strb r0, [r5, #0xe] - movs r0, #0xc0 - strb r0, [r5, #0x15] - strb r0, [r5, #0x14] - movs r4, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - ldrb r1, [r5, #0x19] - movs r0, #3 - orrs r1, r0 - ldrb r2, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r3 - strb r0, [r5, #0x18] - ldrb r2, [r5, #0x1b] - movs r3, #0x3f - adds r0, r3, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r5, #0x1b] - ands r1, r3 - orrs r1, r2 - strb r1, [r5, #0x19] - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x7c - strb r4, [r0] - subs r0, #4 - movs r1, #0x80 - lsls r1, r1, #7 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_080491E4: - pop {r4, r5, pc} - .align 2, 0 -_080491E8: .4byte 0x00000323 - - thumb_func_start sub_080491EC -sub_080491EC: @ 0x080491EC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08049208 @ =gUnk_080D2988 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08049208: .4byte gUnk_080D2988 - - thumb_func_start sub_0804920C -sub_0804920C: @ 0x0804920C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0804921C - subs r0, #1 - strb r0, [r4, #0xe] - b _08049268 -_0804921C: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldr r2, _0804926C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - ldr r1, _08049270 @ =0xFFFFFF00 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - cmp r0, r1 - ble _08049268 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - strb r0, [r4, #0x15] - strb r0, [r4, #0x14] - movs r0, #0xc0 - strh r0, [r4, #0x24] - ldrh r0, [r2, #6] - adds r0, #0xa8 - strh r0, [r4, #0x2e] - ldrh r0, [r2, #8] - subs r0, #0x40 - strh r0, [r4, #0x32] - adds r0, r4, #0 - adds r0, #0x78 - movs r1, #0x80 - lsls r1, r1, #8 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] -_08049268: - pop {r4, pc} - .align 2, 0 -_0804926C: .4byte gUnk_03000BF0 -_08049270: .4byte 0xFFFFFF00 - - thumb_func_start sub_08049274 -sub_08049274: @ 0x08049274 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldr r0, _080492A4 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r0, #0x40 - movs r2, #0x32 - ldrsh r1, [r4, r2] - cmp r0, r1 - bge _080492A2 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080492A2: - pop {r4, pc} - .align 2, 0 -_080492A4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080492A8 -sub_080492A8: @ 0x080492A8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080492C4 @ =gUnk_080D2990 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_080492C4: .4byte gUnk_080D2990 - - thumb_func_start sub_080492C8 -sub_080492C8: @ 0x080492C8 - push {r4, r5, lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r1, #0 - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r3, #0x24] - adds r0, r3, #0 - adds r0, #0x6e - strb r1, [r0] - movs r0, #0x2e - ldrsh r1, [r3, r0] - ldr r2, _08049300 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - adds r5, r2, #0 - cmp r1, #0xa7 - bgt _08049304 - adds r2, r3, #0 - adds r2, #0x80 - movs r0, #0xd8 - strh r0, [r2] - adds r1, r3, #0 - adds r1, #0x74 - adds r0, #0x28 - b _08049314 - .align 2, 0 -_08049300: .4byte gUnk_03000BF0 -_08049304: - adds r2, r3, #0 - adds r2, #0x80 - movs r0, #0x78 - strh r0, [r2] - adds r1, r3, #0 - adds r1, #0x74 - movs r0, #0xff - lsls r0, r0, #8 -_08049314: - strh r0, [r1] - adds r4, r1, #0 - ldrh r0, [r5, #6] - ldrh r1, [r2] - adds r0, r0, r1 - strh r0, [r2] - movs r2, #0x32 - ldrsh r0, [r3, r2] - ldrh r1, [r5, #8] - subs r0, r0, r1 - cmp r0, #0x7f - bgt _08049336 - adds r1, r3, #0 - adds r1, #0x82 - movs r0, #0xb0 - strh r0, [r1] - b _08049346 -_08049336: - adds r1, r3, #0 - adds r1, #0x82 - movs r0, #0x50 - strh r0, [r1] - movs r2, #0 - ldrsh r0, [r4, r2] - rsbs r0, r0, #0 - strh r0, [r4] -_08049346: - ldrh r0, [r5, #8] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - adds r0, r3, #0 - bl sub_08049358 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08049358 -sub_08049358: @ 0x08049358 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - adds r1, r4, #0 - adds r1, #0x82 - ldrh r1, [r1] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - adds r3, r0, #0 - ldrb r2, [r4, #0x15] - subs r0, r2, r3 - adds r0, #2 - movs r1, #0xff - ands r0, r1 - cmp r0, #4 - bls _08049398 - subs r0, r3, r2 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08049394 - subs r0, r2, #1 - b _08049396 -_08049394: - adds r0, r2, #1 -_08049396: - strb r0, [r4, #0x15] -_08049398: - ldrb r1, [r4, #0x15] - movs r5, #0x80 - lsls r5, r5, #1 - subs r1, r5, r1 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - adds r0, r4, #0 - adds r0, #0x80 - ldrh r1, [r0] - adds r0, #2 - ldrh r2, [r0] - movs r0, #0x24 - ldrsh r3, [r4, r0] - asrs r3, r3, #0x10 - adds r3, #0x10 - adds r0, r4, #0 - bl sub_0806FCB8 - cmp r0, #0 - beq _080493E0 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0xc0 - strh r0, [r4, #0x24] - adds r0, r4, #0 - adds r0, #0x7e - strh r5, [r0] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_080493E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080493E4 -sub_080493E4: @ 0x080493E4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x18 - strb r0, [r4, #0x15] - movs r1, #0x1f - ands r0, r1 - cmp r0, #0 - bne _0804943A - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldr r3, _08049458 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - adds r2, #0xa8 - ldrh r3, [r3, #8] - adds r3, #0x80 - bl sub_080045D4 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - subs r0, r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #8 - bne _0804943A - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #7 - strb r0, [r4, #0xf] -_0804943A: - adds r0, r4, #0 - bl sub_08049944 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - .align 2, 0 -_08049458: .4byte gUnk_03000BF0 - - thumb_func_start sub_0804945C -sub_0804945C: @ 0x0804945C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r1, r0, #0x18 - strb r1, [r4, #0x15] - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _0804948C - movs r0, #0x1f - ands r1, r0 - cmp r1, #0 - bne _080494B2 - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x5a - strb r0, [r4, #0xe] - b _080494B2 -_0804948C: - adds r0, r4, #0 - bl sub_08049A8C - cmp r0, #0 - beq _080494B2 - movs r0, #0x23 - bl sub_080A7EE0 - adds r2, r0, #0 - cmp r2, #0 - beq _080494B2 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - str r4, [r2, #0x50] - adds r0, r2, #0 - bl sub_08016A04 -_080494B2: - adds r0, r4, #0 - bl sub_08049944 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080494D0 -sub_080494D0: @ 0x080494D0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldrb r0, [r4, #0xe] - subs r1, r0, #1 - strb r1, [r4, #0xe] - movs r2, #0xff - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08049518 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r2 - cmp r0, #0 - bne _0804950E - movs r0, #5 - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x24] - adds r0, #0x40 - strh r0, [r4, #0x24] - b _08049534 -_0804950E: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0xa - strb r0, [r4, #0xe] - b _08049534 -_08049518: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x50 - bne _08049534 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - movs r0, #0x62 - bl CreateEnemy - cmp r0, #0 - beq _08049534 - str r4, [r0, #0x50] -_08049534: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08049538 -sub_08049538: @ 0x08049538 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldr r0, _08049570 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - adds r1, #0xa8 - ldrh r2, [r0, #8] - adds r2, #0x80 - adds r0, r4, #0 - movs r3, #0x70 - bl sub_0806FCB8 - adds r1, r0, #0 - cmp r1, #0 - bne _0804956E - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0804956E: - pop {r4, pc} - .align 2, 0 -_08049570: .4byte gUnk_03000BF0 - - thumb_func_start sub_08049574 -sub_08049574: @ 0x08049574 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08049590 @ =gUnk_080D29A8 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08049590: .4byte gUnk_080D29A8 - - thumb_func_start sub_08049594 -sub_08049594: @ 0x08049594 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _080495C8 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - movs r3, #0x2e - ldrsh r1, [r4, r3] - subs r1, #0xa8 - subs r0, r0, r1 - ldrh r1, [r2, #8] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r2, #0x80 - subs r1, r1, r2 - bl sub_080045DA - ldrb r2, [r4, #0x15] - cmp r0, r2 - beq _080495D2 - subs r0, r0, r2 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080495CC - subs r0, r2, #1 - strb r0, [r4, #0x15] - b _080495DC - .align 2, 0 -_080495C8: .4byte gUnk_03000BF0 -_080495CC: - adds r0, r2, #1 - strb r0, [r4, #0x15] - b _080495DC -_080495D2: - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] -_080495DC: - adds r0, r4, #0 - bl sub_08049944 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08047EA4 - pop {r4, pc} - - thumb_func_start sub_080495F8 -sub_080495F8: @ 0x080495F8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08049654 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - adds r1, #0xa8 - ldrh r2, [r0, #8] - adds r2, #0x80 - adds r0, r4, #0 - movs r3, #0x28 - bl sub_0806FCB8 - cmp r0, #0 - beq _0804963C - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x2d - strb r0, [r4, #0xe] - bl sub_08000E50 - ldr r2, _08049658 @ =gUnk_080D29B8 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] -_0804963C: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - pop {r4, pc} - .align 2, 0 -_08049654: .4byte gUnk_03000BF0 -_08049658: .4byte gUnk_080D29B8 - - thumb_func_start sub_0804965C -sub_0804965C: @ 0x0804965C - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x76 - adds r0, #0x74 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r0, r2 - strh r0, [r1] - lsrs r0, r0, #8 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0804969A - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] -_0804969A: - pop {r4, pc} - - thumb_func_start sub_0804969C -sub_0804969C: @ 0x0804969C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080496C8 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080496C8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080496CC -sub_080496CC: @ 0x080496CC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080496E8 @ =gUnk_080D29C0 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_080496E8: .4byte gUnk_080D29C0 - - thumb_func_start sub_080496EC -sub_080496EC: @ 0x080496EC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - bl sub_08079F8C - cmp r0, #0 - beq _08049720 - ldr r0, _0804971C @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08049720 - movs r0, #2 - bl sub_08078A90 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - b _08049724 - .align 2, 0 -_0804971C: .4byte gLinkEntity -_08049720: - movs r0, #1 - strb r0, [r4, #0xd] -_08049724: - adds r0, r4, #0 - bl sub_08049944 - pop {r4, pc} - - thumb_func_start sub_0804972C -sub_0804972C: @ 0x0804972C - push {r4, lr} - adds r4, r0, #0 - bl sub_08079F8C - cmp r0, #0 - beq _08049750 - ldr r0, _08049758 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r0, r1] - cmp r0, #0 - bne _08049750 - movs r0, #2 - bl sub_08078A90 - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #1 - strb r0, [r4, #0xe] -_08049750: - adds r0, r4, #0 - bl sub_08049944 - pop {r4, pc} - .align 2, 0 -_08049758: .4byte gLinkEntity - - thumb_func_start sub_0804975C -sub_0804975C: @ 0x0804975C - 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 _0804977E - movs r0, #3 - strb r0, [r1, #0xd] - movs r0, #0xb4 - strb r0, [r1, #0xe] - adds r0, #0x4c - strh r0, [r1, #0x24] - ldrb r0, [r1, #0x15] - subs r0, #0x40 - strb r0, [r1, #0x15] -_0804977E: - adds r0, r1, #0 - bl sub_08049944 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08049788 -sub_08049788: @ 0x08049788 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049AB0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080497B8 - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0x15] - movs r0, #0x94 - lsls r0, r0, #1 - bl sub_080A3268 - b _080497C6 -_080497B8: - ldrb r0, [r4, #0x15] - movs r1, #0x80 - eors r0, r1 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08049B20 -_080497C6: - adds r0, r4, #0 - bl sub_08049944 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080497D0 -sub_080497D0: @ 0x080497D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049AB0 - ldrb r0, [r4, #0x15] - movs r1, #0x80 - lsls r1, r1, #1 - subs r1, r1, r0 - movs r0, #0xff - ands r1, r0 - lsls r1, r1, #8 - adds r0, r4, #0 - bl sub_08049998 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08049802 - movs r0, #5 - strb r0, [r4, #0xd] - movs r1, #0x10 - bl sub_08050054 -_08049802: - pop {r4, pc} - - thumb_func_start sub_08049804 -sub_08049804: @ 0x08049804 - push {r4, lr} - adds r4, r0, #0 - bl sub_08049944 - ldr r0, _0804987C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08049878 - movs r0, #6 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r0, r3, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r4, [r4, #0x54] - ldrb r2, [r4, #0x10] - movs r1, #0x7f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x10] - ldrb r2, [r4, #0x18] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r4, #0x18] - ldr r4, [r4, #0x54] - ldrb r2, [r4, #0x10] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r4, #0x10] - ldrb r2, [r4, #0x18] - adds r0, r3, #0 - ands r0, r2 - strb r0, [r4, #0x18] - ldr r4, [r4, #0x54] - ldrb r0, [r4, #0x10] - ands r1, r0 - strb r1, [r4, #0x10] - ldrb r0, [r4, #0x18] - ands r3, r0 - strb r3, [r4, #0x18] - ldr r4, _08049880 @ =gLinkEntity - ldr r1, _08049884 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0xa8 - movs r2, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x80 - strh r0, [r4, #0x32] - strb r2, [r4, #0x14] - bl sub_080809D4 - movs r0, #4 - movs r1, #4 - bl sub_08050054 -_08049878: - pop {r4, pc} - .align 2, 0 -_0804987C: .4byte gUnk_03000FD0 -_08049880: .4byte gLinkEntity -_08049884: .4byte gUnk_03000BF0 - - thumb_func_start sub_08049888 -sub_08049888: @ 0x08049888 - push {lr} - adds r1, r0, #0 - ldr r0, _080498B0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080498AE - movs r0, #7 - strb r0, [r1, #0xd] - movs r0, #0xa0 - strb r0, [r1, #0xe] - movs r0, #0x72 - bl sub_080A3268 - movs r0, #0x7c - bl sub_0807CCC8 - movs r0, #1 - bl sub_08078A90 -_080498AE: - pop {pc} - .align 2, 0 -_080498B0: .4byte gUnk_03000FD0 - - thumb_func_start sub_080498B4 -sub_080498B4: @ 0x080498B4 - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080498C8 - bl sub_0805E780 - b _0804993E -_080498C8: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bne _080498E4 - movs r0, #0x36 - movs r1, #0xca - movs r2, #1 - bl sub_0807B7D8 - ldr r0, _080498E0 @ =0x00004081 - movs r1, #0xca - b _0804990E - .align 2, 0 -_080498E0: .4byte 0x00004081 -_080498E4: - cmp r0, #0x18 - bne _080498FC - movs r0, #0x36 - movs r1, #0x8a - movs r2, #1 - bl sub_0807B7D8 - ldr r0, _080498F8 @ =0x00004081 - movs r1, #0x8a - b _0804990E - .align 2, 0 -_080498F8: .4byte 0x00004081 -_080498FC: - cmp r0, #0x20 - bne _08049920 - movs r0, #0x36 - movs r1, #0x4a - movs r2, #1 - bl sub_0807B7D8 - ldr r0, _0804991C @ =0x00004081 - movs r1, #0x4a -_0804990E: - movs r2, #2 - bl sub_0800015E - movs r0, #0x71 - bl sub_080A3268 - b _0804993E - .align 2, 0 -_0804991C: .4byte 0x00004081 -_08049920: - cmp r0, #0x28 - bne _0804993E - movs r0, #0x36 - movs r1, #0xa - movs r2, #1 - bl sub_0807B7D8 - ldr r0, _08049940 @ =0x00004081 - movs r1, #0xa - movs r2, #2 - bl sub_0800015E - movs r0, #0x71 - bl sub_080A3268 -_0804993E: - pop {pc} - .align 2, 0 -_08049940: .4byte 0x00004081 - - thumb_func_start sub_08049944 -sub_08049944: @ 0x08049944 - push {r4, r5, lr} - adds r4, r0, #0 - adds r4, #0x7c - ldrb r3, [r4] - lsls r2, r3, #1 - movs r1, #0x7f - ands r2, r1 - movs r1, #0x80 - ands r1, r3 - orrs r2, r1 - strb r2, [r4] - ldr r5, _08049990 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r3, #0x32 - ldrsh r2, [r5, r3] - movs r3, #0x20 - bl sub_0806FCB8 - cmp r0, #0 - beq _0804998C - ldr r2, _08049994 @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r2, #0x14] - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _0804998C - ldr r0, [r2, #0x30] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #0x30] - ldrb r0, [r4] - movs r1, #1 - orrs r0, r1 - strb r0, [r4] -_0804998C: - pop {r4, r5, pc} - .align 2, 0 -_08049990: .4byte gLinkEntity -_08049994: .4byte gUnk_03003F80 - - thumb_func_start sub_08049998 -sub_08049998: @ 0x08049998 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08049944 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08047EA4 - movs r0, #0x2e - ldrsh r4, [r5, r0] - movs r2, #0x32 - ldrsh r6, [r5, r2] - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - adds r0, r5, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080499EA - bl sub_08079F8C - cmp r0, #0 - beq _080499EA - ldr r0, _080499EC @ =gLinkEntity - ldrh r1, [r5, #0x2e] - subs r1, r1, r4 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r5, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_080499EA: - pop {r4, r5, r6, pc} - .align 2, 0 -_080499EC: .4byte gLinkEntity - - thumb_func_start sub_080499F0 -sub_080499F0: @ 0x080499F0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - beq _08049A82 - ldr r5, _08049A84 @ =gLinkEntity - movs r1, #0x36 - ldrsh r0, [r5, r1] - cmp r0, #0 - bne _08049A82 - bl sub_08079F8C - cmp r0, #0 - beq _08049A82 - adds r2, r4, #0 - adds r2, #0x7c - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _08049A82 - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r3, #0x32 - ldrsh r2, [r4, r3] - adds r0, r5, #0 - movs r3, #0x24 - bl sub_0806FCB8 - cmp r0, #0 - beq _08049A7E - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08049A7E - movs r1, #0x2e - ldrsh r0, [r5, r1] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r5, r3] - movs r3, #0x32 - ldrsh r2, [r4, r3] - subs r1, r1, r2 - bl sub_080045DA - ldr r3, _08049A88 @ =gUnk_080C9160 - lsls r1, r0, #1 - adds r1, r1, r3 - movs r2, #0 - ldrsh r1, [r1, r2] - lsls r2, r1, #3 - adds r2, r2, r1 - lsls r2, r2, #0xa - ldr r1, [r4, #0x2c] - adds r1, r1, r2 - str r1, [r5, #0x2c] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r3, #0 - ldrsh r0, [r0, r3] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #0xa - ldr r0, [r4, #0x30] - subs r0, r0, r1 - str r0, [r5, #0x30] -_08049A7E: - movs r0, #0 - strb r0, [r6] -_08049A82: - pop {r4, r5, r6, pc} - .align 2, 0 -_08049A84: .4byte gLinkEntity -_08049A88: .4byte gUnk_080C9160 - - thumb_func_start sub_08049A8C -sub_08049A8C: @ 0x08049A8C - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _08049AAA - bl sub_08000E50 - movs r1, #0xf - ands r1, r0 - cmp r1, #0 - beq _08049AAA - movs r0, #1 - b _08049AAC -_08049AAA: - movs r0, #0 -_08049AAC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08049AB0 -sub_08049AB0: @ 0x08049AB0 - push {r4, r5, lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xf] - adds r0, #1 - strb r0, [r2, #0xf] - movs r1, #0xff - ands r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08049B18 - adds r0, r2, #0 - movs r1, #0x48 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08049B18 - bl sub_08000E50 - movs r3, #0x30 - adds r1, r0, #0 - ands r1, r3 - ldr r5, _08049B1C @ =0x0000FFE8 - adds r2, r5, #0 - adds r1, r2, r1 - ldrh r5, [r4, #0x2e] - adds r1, r1, r5 - strh r1, [r4, #0x2e] - lsrs r0, r0, #8 - ands r0, r3 - adds r2, r2, r0 - ldrh r0, [r4, #0x32] - adds r2, r2, r0 - strh r2, [r4, #0x32] - 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] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 -_08049B18: - pop {r4, r5, pc} - .align 2, 0 -_08049B1C: .4byte 0x0000FFE8 - - thumb_func_start sub_08049B20 -sub_08049B20: @ 0x08049B20 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08049944 - movs r0, #0x2e - ldrsh r5, [r4, r0] - movs r2, #0x32 - ldrsh r6, [r4, r2] - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - adds r0, #0x7c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08049B68 - bl sub_08079F8C - cmp r0, #0 - beq _08049B68 - ldr r0, _08049B6C @ =gLinkEntity - ldrh r1, [r4, #0x2e] - subs r1, r1, r5 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrh r1, [r4, #0x32] - subs r1, r1, r6 - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] -_08049B68: - pop {r4, r5, r6, pc} - .align 2, 0 -_08049B6C: .4byte gLinkEntity - - thumb_func_start sub_08049B70 -sub_08049B70: @ 0x08049B70 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _08049BB0 - adds r0, #1 - strb r0, [r5, #0xc] - ldrb r0, [r5, #0xa] - lsls r0, r0, #4 - ldr r1, _08049BEC @ =gUnk_080D29E0 - adds r0, r0, r1 - bl sub_080028F4 - adds r4, r5, #0 - adds r4, #0x68 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _08049B9C - bl sub_0805E780 -_08049B9C: - ldrb r0, [r4] - cmp r0, #7 - bhi _08049BB0 - movs r0, #0x67 - bl GetInventoryValue - cmp r0, #0 - bne _08049BB0 - movs r0, #8 - strb r0, [r4] -_08049BB0: - adds r0, r5, #0 - bl sub_08049C2C - cmp r0, #0 - beq _08049C20 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r1, [r0] - cmp r1, #0 - blt _08049C16 - cmp r1, #7 - ble _08049BF0 - cmp r1, #8 - bne _08049C16 - movs r0, #0x40 - movs r1, #0x60 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08049C16 - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - b _08049C16 - .align 2, 0 -_08049BEC: .4byte gUnk_080D29E0 -_08049BF0: - ldr r0, _08049C24 @ =gUnk_080D2AB0 - adds r0, r1, r0 - ldrb r2, [r0] - movs r0, #0x96 - movs r1, #7 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _08049C16 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x32] - adds r0, #0x10 - strh r0, [r4, #0x32] - ldr r0, _08049C28 @ =0x0000FFE0 - strh r0, [r4, #0x36] -_08049C16: - adds r0, r5, #0 - bl sub_08049CF4 - bl sub_0805E780 -_08049C20: - pop {r4, r5, pc} - .align 2, 0 -_08049C24: .4byte gUnk_080D2AB0 -_08049C28: .4byte 0x0000FFE0 - - thumb_func_start sub_08049C2C -sub_08049C2C: @ 0x08049C2C - push {r4, r5, r6, lr} - adds r2, r0, #0 - ldr r3, _08049CA4 @ =gLinkEntity - ldrb r0, [r3, #0xc] - cmp r0, #6 - bne _08049CA8 - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r4, #0x2e - ldrsh r0, [r2, r4] - subs r1, r1, r0 - movs r5, #6 - movs r4, #0x80 - lsls r4, r4, #8 - adds r0, r1, #0 - ands r0, r4 - cmp r0, #0 - beq _08049C52 - movs r5, #2 -_08049C52: - adds r1, #0x28 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x4f - bhi _08049CA8 - movs r6, #0x32 - ldrsh r1, [r3, r6] - movs r6, #0x32 - ldrsh r0, [r2, r6] - subs r1, r1, r0 - adds r0, r1, #0 - ands r0, r4 - rsbs r0, r0, #0 - asrs r2, r0, #0x1f - movs r0, #4 - ands r2, r0 - adds r1, #0x28 - lsls r0, r1, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x4f - bhi _08049CA8 - ldrb r0, [r3, #0x14] - cmp r0, #0 - bne _08049C86 - cmp r2, #0 - beq _08049C9E -_08049C86: - cmp r0, #4 - bne _08049C8E - cmp r2, #4 - beq _08049C9E -_08049C8E: - cmp r0, #6 - bne _08049C96 - cmp r5, #6 - beq _08049C9E -_08049C96: - cmp r0, #2 - bne _08049CA8 - cmp r5, #2 - bne _08049CA8 -_08049C9E: - movs r0, #1 - b _08049CAA - .align 2, 0 -_08049CA4: .4byte gLinkEntity -_08049CA8: - movs r0, #0 -_08049CAA: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08049CAC -sub_08049CAC: @ 0x08049CAC - push {lr} - adds r2, r0, #0 - ldr r1, _08049CC8 @ =gUnk_080D2ABC - ldrb r0, [r2, #0xf] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - cmp r1, #0 - beq _08049CCC - adds r0, r2, #0 - bl _call_via_r1 - b _08049CD0 - .align 2, 0 -_08049CC8: .4byte gUnk_080D2ABC -_08049CCC: - bl sub_0805E780 -_08049CD0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08049CD4 -sub_08049CD4: @ 0x08049CD4 - push {r4, lr} - movs r0, #1 - rsbs r0, r0, #0 - ldr r4, _08049CEC @ =gUnk_02024050 - adds r1, r4, #0 - movs r2, #0x40 - bl sub_0801D610 - ldr r0, _08049CF0 @ =gUnk_020354B0 - str r4, [r0] - pop {r4, pc} - .align 2, 0 -_08049CEC: .4byte gUnk_02024050 -_08049CF0: .4byte gUnk_020354B0 - - thumb_func_start sub_08049CF4 -sub_08049CF4: @ 0x08049CF4 - push {lr} - adds r0, #0x6c - ldrb r3, [r0] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08049D14 - ldr r0, _08049D18 @ =gUnk_020354B0 - ldr r2, [r0] - movs r0, #0x1f - ands r3, r0 - movs r1, #1 - lsls r1, r3 - ldr r0, [r2, #4] - orrs r0, r1 - str r0, [r2, #4] -_08049D14: - pop {pc} - .align 2, 0 -_08049D18: .4byte gUnk_020354B0 - - thumb_func_start sub_08049D1C -sub_08049D1C: @ 0x08049D1C - ldr r1, _08049D2C @ =gUnk_020354B0 - ldr r1, [r1] - ldr r1, [r1, #4] - lsrs r1, r0 - movs r0, #1 - bics r0, r1 - bx lr - .align 2, 0 -_08049D2C: .4byte gUnk_020354B0 - - thumb_func_start sub_08049D30 -sub_08049D30: @ 0x08049D30 - push {r4, r5, r6, lr} - ldr r1, _08049D58 @ =gUnk_020354B0 - ldr r0, _08049D5C @ =gUnk_02024050 - str r0, [r1] - adds r5, r1, #0 - ldr r6, _08049D60 @ =gUnk_03000BF0 - ldr r4, _08049D64 @ =0x0000FFFF -_08049D3E: - ldr r3, [r5] - ldrh r0, [r3] - ldrh r2, [r6, #4] - adds r1, r4, #0 - ands r1, r0 - adds r0, r4, #0 - ands r0, r2 - cmp r1, r0 - bne _08049D68 - adds r0, r3, #0 - bl sub_08049DCC - b _08049D7C - .align 2, 0 -_08049D58: .4byte gUnk_020354B0 -_08049D5C: .4byte gUnk_02024050 -_08049D60: .4byte gUnk_03000BF0 -_08049D64: .4byte 0x0000FFFF -_08049D68: - adds r1, r3, #0 - adds r1, #8 - str r1, [r5] - ldr r0, _08049D80 @ =gUnk_02024090 - cmp r1, r0 - blo _08049D3E - bl sub_08049D88 - ldr r1, _08049D84 @ =gUnk_020354B0 - str r0, [r1] -_08049D7C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08049D80: .4byte gUnk_02024090 -_08049D84: .4byte gUnk_020354B0 - - thumb_func_start sub_08049D88 -sub_08049D88: @ 0x08049D88 - push {r4, r5, lr} - ldr r4, _08049DC0 @ =gUnk_02024050 - adds r1, r4, #0 - adds r1, #8 - ldr r3, _08049DC4 @ =gUnk_03000BF0 - adds r2, r4, #0 - adds r2, #0x40 -_08049D96: - ldrh r0, [r1, #2] - ldrh r5, [r4, #2] - cmp r0, r5 - bls _08049DA0 - adds r4, r1, #0 -_08049DA0: - adds r1, #8 - cmp r1, r2 - blo _08049D96 - ldrb r0, [r3, #4] - movs r1, #0 - strb r0, [r4] - ldrb r0, [r3, #5] - strb r0, [r4, #1] - ldr r0, _08049DC8 @ =0x0000FFFF - strh r0, [r4, #2] - str r1, [r4, #4] - adds r0, r4, #0 - bl sub_08049DCC - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_08049DC0: .4byte gUnk_02024050 -_08049DC4: .4byte gUnk_03000BF0 -_08049DC8: .4byte 0x0000FFFF - - thumb_func_start sub_08049DCC -sub_08049DCC: @ 0x08049DCC - push {r4, lr} - adds r2, r0, #0 - ldr r1, _08049DF0 @ =gUnk_02024050 - adds r3, r1, #0 - adds r3, #0x40 -_08049DD6: - ldrh r0, [r1, #2] - ldrh r4, [r2, #2] - cmp r0, r4 - bhs _08049DE2 - adds r0, #1 - strh r0, [r1, #2] -_08049DE2: - adds r1, #8 - cmp r1, r3 - blo _08049DD6 - movs r0, #0 - strh r0, [r2, #2] - pop {r4, pc} - .align 2, 0 -_08049DF0: .4byte gUnk_02024050 - - thumb_func_start sub_08049DF4 -sub_08049DF4: @ 0x08049DF4 - push {lr} - adds r2, r0, #0 - ldr r0, _08049E10 @ =gUnk_020000B0 - ldr r0, [r0] - cmp r0, #0 - bne _08049E0C - ldr r1, _08049E14 @ =gUnk_080D3BE8 - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08049E0C: - pop {pc} - .align 2, 0 -_08049E10: .4byte gUnk_020000B0 -_08049E14: .4byte gUnk_080D3BE8 - - thumb_func_start sub_08049E18 -sub_08049E18: @ 0x08049E18 - push {lr} - ldr r1, _08049E38 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08049E48 - ldr r0, [r1, #0x30] - ldr r1, _08049E3C @ =0x22189B75 - ands r0, r1 - cmp r0, #0 - bne _08049E48 - ldr r1, _08049E40 @ =gUnk_020000B0 - ldr r0, _08049E44 @ =gLinkEntity - str r0, [r1] - b _08049E4A - .align 2, 0 -_08049E38: .4byte gUnk_03003F80 -_08049E3C: .4byte 0x22189B75 -_08049E40: .4byte gUnk_020000B0 -_08049E44: .4byte gLinkEntity -_08049E48: - movs r0, #0 -_08049E4A: - pop {pc} - - thumb_func_start sub_08049E4C -sub_08049E4C: @ 0x08049E4C - push {lr} - ldr r1, _08049E6C @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08049E7C - ldr r0, [r1, #0x30] - ldr r1, _08049E70 @ =0x22189BF5 - ands r0, r1 - cmp r0, #0 - bne _08049E7C - ldr r1, _08049E74 @ =gUnk_020000B0 - ldr r0, _08049E78 @ =gLinkEntity - str r0, [r1] - b _08049E7E - .align 2, 0 -_08049E6C: .4byte gUnk_03003F80 -_08049E70: .4byte 0x22189BF5 -_08049E74: .4byte gUnk_020000B0 -_08049E78: .4byte gLinkEntity -_08049E7C: - movs r0, #0 -_08049E7E: - pop {pc} - - thumb_func_start sub_08049E80 -sub_08049E80: @ 0x08049E80 - push {lr} - ldr r1, _08049E9C @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08049E98 - ldr r0, [r1, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08049EA0 -_08049E98: - movs r0, #0 - b _08049EA6 - .align 2, 0 -_08049E9C: .4byte gUnk_03003F80 -_08049EA0: - ldr r1, _08049EA8 @ =gUnk_020000B0 - ldr r0, _08049EAC @ =gLinkEntity - str r0, [r1] -_08049EA6: - pop {pc} - .align 2, 0 -_08049EA8: .4byte gUnk_020000B0 -_08049EAC: .4byte gLinkEntity - - thumb_func_start sub_08049EB0 -sub_08049EB0: @ 0x08049EB0 - push {lr} - ldr r1, _08049ED0 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08049EE0 - ldr r0, [r1, #0x30] - ldr r1, _08049ED4 @ =0x00080190 - ands r0, r1 - cmp r0, #0 - bne _08049EE0 - ldr r1, _08049ED8 @ =gUnk_020000B0 - ldr r0, _08049EDC @ =gLinkEntity - str r0, [r1] - b _08049EE2 - .align 2, 0 -_08049ED0: .4byte gUnk_03003F80 -_08049ED4: .4byte 0x00080190 -_08049ED8: .4byte gUnk_020000B0 -_08049EDC: .4byte gLinkEntity -_08049EE0: - movs r0, #0 -_08049EE2: - pop {pc} - - thumb_func_start sub_08049EE4 -sub_08049EE4: @ 0x08049EE4 - push {r4, r5, lr} - mov ip, r0 - adds r0, #0x70 - mov r1, ip - adds r1, #0x6e - ldrb r2, [r1] - lsls r2, r2, #2 - ldrh r0, [r0] - adds r2, r2, r0 - lsls r2, r2, #0x10 - lsrs r2, r2, #0x10 - adds r1, #4 - mov r0, ip - adds r0, #0x6f - ldrb r3, [r0] - lsls r3, r3, #2 - ldrh r1, [r1] - adds r3, r3, r1 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x10 - mov r1, ip - movs r4, #0x2e - ldrsh r0, [r1, r4] - movs r5, #0x32 - ldrsh r1, [r1, r5] - bl sub_080045D4 - pop {r4, r5, pc} - - thumb_func_start sub_08049F1C -sub_08049F1C: @ 0x08049F1C - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r5, r2, #0 - adds r0, #0x38 - adds r1, #0x38 - ldrb r2, [r0] - ldrb r0, [r1] - ands r0, r2 - cmp r0, #0 - beq _08049F5E - movs r0, #0x2e - ldrsh r2, [r3, r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r2, r2, r0 - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r3, #0x32 - ldrsh r0, [r4, r3] - subs r1, r1, r0 - adds r3, r5, #0 - muls r3, r5, r3 - adds r0, r2, #0 - muls r0, r2, r0 - adds r2, r1, #0 - muls r2, r1, r2 - adds r1, r2, #0 - adds r0, r0, r1 - cmp r3, r0 - blt _08049F5E - movs r0, #1 - b _08049F60 -_08049F5E: - movs r0, #0 -_08049F60: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08049F64 -sub_08049F64: @ 0x08049F64 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _08049F80 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_08049F1C - b _08049F82 -_08049F80: - movs r0, #0 -_08049F82: - pop {r4, r5, pc} - - thumb_func_start sub_08049F84 -sub_08049F84: @ 0x08049F84 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _08049F9C - adds r0, r4, #0 - bl sub_080045C4 - b _08049F9E -_08049F9C: - movs r0, #0xff -_08049F9E: - pop {r4, pc} - - thumb_func_start sub_08049FA0 -sub_08049FA0: @ 0x08049FA0 - push {lr} - adds r3, r0, #0 - adds r0, #0x6e - ldrb r2, [r0] - lsls r2, r2, #3 - movs r1, #0x2e - ldrsh r0, [r3, r1] - adds r1, r3, #0 - adds r1, #0x70 - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _08049FD6 - adds r0, r3, #0 - adds r0, #0x6f - ldrb r2, [r0] - lsls r2, r2, #3 - movs r1, #0x32 - ldrsh r0, [r3, r1] - adds r1, r3, #0 - adds r1, #0x72 - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _08049FD6 - movs r0, #1 - b _08049FD8 -_08049FD6: - movs r0, #0 -_08049FD8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08049FDC -sub_08049FDC: @ 0x08049FDC - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - bl sub_08049DF4 - adds r3, r0, #0 - cmp r3, #0 - beq _0804A020 - adds r0, r4, #0 - adds r0, #0x6e - ldrb r2, [r0] - lsls r2, r2, #3 - movs r1, #0x2e - ldrsh r0, [r3, r1] - adds r1, r4, #0 - adds r1, #0x70 - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _0804A020 - adds r0, r4, #0 - adds r0, #0x6f - ldrb r2, [r0] - lsls r2, r2, #3 - movs r1, #0x32 - ldrsh r0, [r3, r1] - adds r1, r4, #0 - adds r1, #0x72 - ldrh r1, [r1] - subs r0, r0, r1 - cmp r2, r0 - blo _0804A020 - movs r0, #1 - b _0804A022 -_0804A020: - movs r0, #0 -_0804A022: - pop {r4, pc} - - thumb_func_start sub_0804A024 -sub_0804A024: @ 0x0804A024 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - bl sub_08049DF4 - adds r1, r0, #0 - cmp r1, #0 - beq _0804A040 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_0804A044 - b _0804A042 -_0804A040: - movs r0, #0xff -_0804A042: - pop {r4, r5, pc} - - thumb_func_start sub_0804A044 -sub_0804A044: @ 0x0804A044 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r7, r0, #0 - mov r8, r1 - mov r0, r8 - adds r0, #0x38 - movs r1, #0x38 - adds r1, r1, r7 - mov sl, r1 - ldrb r1, [r0] - mov r3, sl - ldrb r0, [r3] - ands r0, r1 - cmp r0, #0 - beq _0804A15A - movs r5, #0 - mov r0, r8 - movs r3, #0x2e - ldrsh r1, [r0, r3] - ldr r0, [r0, #0x48] - mov ip, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - movs r3, #0x2e - ldrsh r0, [r7, r3] - subs r1, r1, r0 - ldr r4, [r7, #0x48] - movs r0, #0 - ldrsb r0, [r4, r0] - subs r6, r1, r0 - lsrs r3, r2, #1 - adds r0, r6, r3 - cmp r2, r0 - blo _0804A096 - movs r5, #1 -_0804A096: - lsls r0, r2, #1 - mov sb, r0 - adds r0, r6, r2 - cmp sb, r0 - blo _0804A0A4 - movs r0, #2 - orrs r5, r0 -_0804A0A4: - mov r1, r8 - movs r0, #0x32 - ldrsh r1, [r1, r0] - str r1, [sp] - mov r1, ip - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - mov ip, r1 - ldr r0, [sp] - add r0, ip - str r0, [sp] - movs r0, #0x32 - ldrsh r1, [r7, r0] - ldr r0, [sp] - subs r0, r0, r1 - movs r1, #1 - ldrsb r1, [r4, r1] - subs r4, r0, r1 - adds r0, r4, r3 - cmp r2, r0 - blo _0804A0D4 - movs r0, #4 - orrs r5, r0 -_0804A0D4: - adds r0, r4, r2 - cmp sb, r0 - blo _0804A0DE - movs r0, #8 - orrs r5, r0 -_0804A0DE: - cmp r5, #0 - beq _0804A15A - movs r0, #5 - ands r0, r5 - cmp r0, #0xa - beq _0804A15A - mov r1, sl - ldrb r0, [r1] - bl sub_0808094C - mov sb, r0 - cmp r6, #0 - bge _0804A0FA - rsbs r6, r6, #0 -_0804A0FA: - cmp r4, #0 - bge _0804A100 - rsbs r4, r4, #0 -_0804A100: - cmp r6, r4 - bge _0804A12E - movs r0, #1 - ands r0, r5 - cmp r0, #0 - beq _0804A11A - adds r0, r7, #0 - mov r1, r8 - mov r2, sb - bl sub_0804A168 - cmp r0, #0xff - bne _0804A15C -_0804A11A: - movs r0, #4 - ands r5, r0 - cmp r5, #0 - beq _0804A15A - adds r0, r7, #0 - mov r1, r8 - mov r2, sb - bl sub_0804A318 - b _0804A156 -_0804A12E: - movs r0, #4 - ands r0, r5 - cmp r0, #0 - beq _0804A144 - adds r0, r7, #0 - mov r1, r8 - mov r2, sb - bl sub_0804A318 - cmp r0, #0xff - bne _0804A15C -_0804A144: - movs r0, #1 - ands r5, r0 - cmp r5, #0 - beq _0804A15A - adds r0, r7, #0 - mov r1, r8 - mov r2, sb - bl sub_0804A168 -_0804A156: - cmp r0, #0xff - bne _0804A15C -_0804A15A: - movs r0, #0xff -_0804A15C: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804A168 -sub_0804A168: @ 0x0804A168 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - adds r4, r0, #0 - mov sb, r1 - adds r5, r2, #0 - movs r0, #0x32 - ldrsh r1, [r1, r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0804A248 - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r2, r0, #4 - movs r0, #0xf - mov sl, r0 - adds r0, r2, #0 - mov r1, sl - ands r0, r1 - movs r7, #5 - cmp r0, #7 - bhi _0804A19E - movs r7, #0xa -_0804A19E: - ldr r3, _0804A240 @ =gUnk_03000BF0 - mov r8, r3 - ldrh r1, [r3, #6] - subs r1, r2, r1 - lsrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r3, [r3, #8] - mov ip, r3 - mov r2, ip - subs r2, #0xa - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r0, r1 - mov r2, sb - movs r3, #0x32 - ldrsh r2, [r2, r3] - mov r3, ip - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldr r2, _0804A244 @ =0x00002004 - adds r0, r0, r2 - adds r0, r5, r0 - adds r1, r1, r2 - adds r1, r5, r1 - movs r2, #0x40 - adds r3, r7, #0 - bl sub_0804A4BC - cmp r0, #0 - bne _0804A1EC - b _0804A308 -_0804A1EC: - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r2, r0, #4 - mov r3, sl - eors r7, r3 - mov r0, r8 - ldrh r1, [r0, #6] - subs r1, r2, r1 - lsrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - mov r4, r8 - ldrh r3, [r4, #8] - adds r2, r3, #0 - subs r2, #0xa - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r0, r1 - mov r2, sb - movs r4, #0x32 - ldrsh r2, [r2, r4] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldr r2, _0804A244 @ =0x00002004 - adds r0, r0, r2 - adds r0, r5, r0 - adds r1, r1, r2 - adds r1, r5, r1 - movs r2, #0x40 - adds r3, r7, #0 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A308 - movs r0, #0x10 - b _0804A30A - .align 2, 0 -_0804A240: .4byte gUnk_03000BF0 -_0804A244: .4byte 0x00002004 -_0804A248: - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r2, r0, #4 - adds r0, r2, #0 - movs r1, #0xf - ands r0, r1 - movs r7, #5 - cmp r0, #7 - bhi _0804A25C - movs r7, #0xa -_0804A25C: - ldr r3, _0804A300 @ =gUnk_03000BF0 - mov r8, r3 - ldrh r1, [r3, #6] - subs r1, r2, r1 - lsrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r3, [r3, #8] - mov sl, r3 - mov r2, sl - adds r2, #0xa - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r0, r1 - mov r2, sb - movs r3, #0x32 - ldrsh r2, [r2, r3] - mov r3, sl - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldr r2, _0804A304 @ =0x00002004 - adds r0, r0, r2 - adds r0, r5, r0 - adds r1, r1, r2 - adds r1, r5, r1 - movs r2, #0x40 - rsbs r2, r2, #0 - mov sl, r2 - adds r3, r7, #0 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A308 - movs r3, #0x2e - ldrsh r0, [r4, r3] - adds r2, r0, #4 - movs r0, #0xf - eors r7, r0 - mov r3, r8 - ldrh r1, [r3, #6] - subs r1, r2, r1 - lsrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r4, r2] - ldrh r3, [r3, #8] - adds r2, r3, #0 - adds r2, #0xa - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r0, r1 - mov r4, sb - movs r2, #0x32 - ldrsh r4, [r4, r2] - subs r2, r4, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldr r3, _0804A304 @ =0x00002004 - adds r0, r0, r3 - adds r0, r5, r0 - adds r1, r1, r3 - adds r1, r5, r1 - mov r2, sl - adds r3, r7, #0 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A308 - movs r0, #0 - b _0804A30A - .align 2, 0 -_0804A300: .4byte gUnk_03000BF0 -_0804A304: .4byte 0x00002004 -_0804A308: - movs r0, #0xff -_0804A30A: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804A318 -sub_0804A318: @ 0x0804A318 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - mov sl, r1 - adds r6, r2, #0 - movs r0, #0x2e - ldrsh r1, [r1, r0] - movs r2, #0x2e - ldrsh r0, [r5, r2] - cmp r1, r0 - ble _0804A3F0 - movs r4, #0x32 - ldrsh r0, [r5, r4] - subs r4, r0, #4 - adds r0, r4, #0 - movs r1, #0xf - ands r0, r1 - movs r2, #3 - mov r8, r2 - cmp r0, #7 - bhi _0804A34C - movs r0, #0xc - mov r8, r0 -_0804A34C: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _0804A3E8 @ =gUnk_03000BF0 - mov sb, r2 - ldrh r3, [r2, #6] - adds r1, r3, #0 - subs r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - movs r7, #0x3f - ands r0, r7 - ldrh r2, [r2, #8] - subs r2, r4, r2 - lsrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r0, r2 - mov r4, sl - movs r1, #0x2e - ldrsh r4, [r4, r1] - subs r1, r4, r3 - asrs r1, r1, #4 - ands r1, r7 - orrs r1, r2 - ldr r2, _0804A3EC @ =0x00002004 - adds r0, r0, r2 - adds r0, r6, r0 - adds r1, r1, r2 - adds r1, r6, r1 - movs r2, #1 - mov r3, r8 - bl sub_0804A4BC - cmp r0, #0 - bne _0804A394 - b _0804A4B0 -_0804A394: - movs r2, #0x32 - ldrsh r0, [r5, r2] - adds r4, r0, #4 - mov r0, r8 - movs r1, #0xf - eors r0, r1 - mov r8, r0 - movs r2, #0x2e - ldrsh r0, [r5, r2] - mov r5, sb - ldrh r3, [r5, #6] - adds r1, r3, #0 - subs r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r7 - ldrh r2, [r5, #8] - subs r2, r4, r2 - lsrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r0, r2 - mov r4, sl - movs r5, #0x2e - ldrsh r1, [r4, r5] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r7 - orrs r1, r2 - ldr r2, _0804A3EC @ =0x00002004 - adds r0, r0, r2 - adds r0, r6, r0 - adds r1, r1, r2 - adds r1, r6, r1 - movs r2, #1 - mov r3, r8 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A4B0 - movs r0, #8 - b _0804A4B2 - .align 2, 0 -_0804A3E8: .4byte gUnk_03000BF0 -_0804A3EC: .4byte 0x00002004 -_0804A3F0: - movs r4, #0x32 - ldrsh r0, [r5, r4] - subs r4, r0, #4 - adds r0, r4, #0 - movs r1, #0xf - ands r0, r1 - movs r2, #3 - mov r8, r2 - cmp r0, #7 - bhi _0804A408 - movs r0, #0xc - mov r8, r0 -_0804A408: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _0804A4A8 @ =gUnk_03000BF0 - mov sb, r2 - ldrh r3, [r2, #6] - adds r1, r3, #0 - adds r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - movs r7, #0x3f - ands r0, r7 - ldrh r2, [r2, #8] - subs r2, r4, r2 - lsrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r0, r2 - mov r4, sl - movs r1, #0x2e - ldrsh r4, [r4, r1] - subs r1, r4, r3 - asrs r1, r1, #4 - ands r1, r7 - orrs r1, r2 - ldr r2, _0804A4AC @ =0x00002004 - adds r0, r0, r2 - adds r0, r6, r0 - adds r1, r1, r2 - adds r1, r6, r1 - movs r2, #1 - rsbs r2, r2, #0 - mov r3, r8 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A4B0 - movs r2, #0x32 - ldrsh r0, [r5, r2] - adds r4, r0, #4 - mov r0, r8 - movs r1, #0xf - eors r0, r1 - mov r8, r0 - movs r2, #0x2e - ldrsh r0, [r5, r2] - mov r5, sb - ldrh r3, [r5, #6] - adds r1, r3, #0 - adds r1, #0xa - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r7 - ldrh r2, [r5, #8] - subs r2, r4, r2 - lsrs r2, r2, #4 - ands r2, r7 - lsls r2, r2, #6 - orrs r0, r2 - mov r4, sl - movs r5, #0x2e - ldrsh r1, [r4, r5] - subs r1, r1, r3 - asrs r1, r1, #4 - ands r1, r7 - orrs r1, r2 - ldr r2, _0804A4AC @ =0x00002004 - adds r0, r0, r2 - adds r0, r6, r0 - adds r1, r1, r2 - adds r1, r6, r1 - movs r2, #1 - rsbs r2, r2, #0 - mov r3, r8 - bl sub_0804A4BC - cmp r0, #0 - beq _0804A4B0 - movs r0, #0x18 - b _0804A4B2 - .align 2, 0 -_0804A4A8: .4byte gUnk_03000BF0 -_0804A4AC: .4byte 0x00002004 -_0804A4B0: - movs r0, #0xff -_0804A4B2: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804A4BC -sub_0804A4BC: @ 0x0804A4BC - push {r4, lr} - adds r4, r0, #0 - cmp r4, r1 - beq _0804A4DE -_0804A4C4: - ldrb r0, [r4] - cmp r0, #0 - beq _0804A4D8 - cmp r0, #0xf - bhi _0804A4D4 - ands r0, r3 - cmp r0, #0 - beq _0804A4D8 -_0804A4D4: - movs r0, #0 - b _0804A4E0 -_0804A4D8: - adds r4, r4, r2 - cmp r4, r1 - bne _0804A4C4 -_0804A4DE: - movs r0, #1 -_0804A4E0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804A4E4 -sub_0804A4E4: @ 0x0804A4E4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r5, #0 - adds r7, #0x6d - ldrb r1, [r7] - movs r4, #0x40 - adds r0, r4, #0 - ands r0, r1 - movs r1, #4 - adds r2, r6, #0 - adds r2, #0x6d - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6c - ldrb r1, [r0] - adds r0, r6, #0 - adds r0, #0x6c - strb r1, [r0] - adds r0, r5, #0 - adds r0, #0x70 - ldrh r1, [r0] - adds r0, r6, #0 - adds r0, #0x70 - strh r1, [r0] - adds r0, r5, #0 - adds r0, #0x72 - ldrh r0, [r0] - adds r1, r6, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r5, #0 - adds r0, #0x6e - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x6f - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0806FA6C - ldrb r0, [r7] - ands r4, r0 - cmp r4, #0 - beq _0804A550 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08058800 -_0804A550: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804A554 -sub_0804A554: @ 0x0804A554 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - lsls r0, r0, #4 - ldr r1, _0804A574 @ =gUnk_080D2C58 - adds r2, r0, r1 - ldrh r1, [r2] - ldr r0, _0804A578 @ =0x0000FFFF - cmp r1, r0 - bne _0804A570 - ldrb r0, [r3, #0xa] - lsls r0, r0, #4 - ldr r1, [r2, #4] - adds r2, r1, r0 -_0804A570: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0804A574: .4byte gUnk_080D2C58 -_0804A578: .4byte 0x0000FFFF - - thumb_func_start sub_0804A57C -sub_0804A57C: @ 0x0804A57C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804A58C - b _0804A6B6 -_0804A58C: - adds r0, r4, #0 - bl sub_0804A554 - adds r5, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0804A6C0 - cmp r0, #0 - bne _0804A5A4 - movs r0, #0 - b _0804A6B8 -_0804A5A4: - ldrb r1, [r4, #0x10] - movs r0, #1 - adds r2, r1, #0 - orrs r2, r0 - strb r2, [r4, #0x10] - ldrb r1, [r5, #0xa] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0804A5BE - movs r0, #0x80 - orrs r2, r0 - strb r2, [r4, #0x10] -_0804A5BE: - ldrh r0, [r5, #8] - strh r0, [r4, #0x12] - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x1e - cmp r0, #0 - bne _0804A5DA - ldrb r1, [r5, #0xa] - lsls r1, r1, #0x1a - lsrs r1, r1, #0x1e - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] -_0804A5DA: - ldrb r1, [r5, #0xa] - lsls r1, r1, #0x1d - adds r3, r4, #0 - adds r3, #0x29 - movs r6, #7 - lsrs r1, r1, #0x1a - ldrb r2, [r3] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, #0xa] - movs r7, #3 - lsrs r1, r1, #6 - lsls r1, r1, #4 - ldrb r2, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r1, #0x24 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _0804A612 - ldrh r0, [r5, #0xc] - strh r0, [r4, #0x24] -_0804A612: - ldrb r0, [r5, #0xf] - adds r1, r4, #0 - adds r1, #0x3b - strb r0, [r1] - ldrb r0, [r5, #0xe] - adds r1, #4 - strb r0, [r1] - ldr r0, [r5, #4] - str r0, [r4, #0x48] - ldrb r0, [r5, #0xb] - adds r2, r4, #0 - adds r2, #0x45 - strb r0, [r2] - adds r1, #1 - ldrb r0, [r1] - cmp r0, #0 - bne _0804A638 - movs r0, #0x41 - strb r0, [r1] -_0804A638: - adds r0, r4, #0 - bl sub_08016A04 - adds r5, r4, #0 - adds r5, #0x6d - ldrb r1, [r5] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0804A6B6 - ldr r2, _0804A6BC @ =gUnk_080D3E74 - ldrb r1, [r4, #9] - lsrs r0, r1, #3 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - ands r6, r1 - lsls r0, r6, #1 - asrs r2, r0 - movs r0, #3 - ands r2, r0 - cmp r2, #0 - beq _0804A6B6 - subs r1, r2, #1 - movs r0, #0xa9 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0804A6B6 - ldrb r0, [r4, #0x10] - strb r0, [r2, #0xe] - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x1e - lsrs r0, r0, #0x1e - strb r0, [r2, #0xf] - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r7 - strb r0, [r3] - str r4, [r2, #0x50] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0806FA24 - 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] - ldrb r0, [r5] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r5] -_0804A6B6: - movs r0, #1 -_0804A6B8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804A6BC: .4byte gUnk_080D3E74 - - thumb_func_start sub_0804A6C0 -sub_0804A6C0: @ 0x0804A6C0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrh r2, [r5] - lsls r1, r2, #0x10 - cmp r1, #0 - beq _0804A712 - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0804A6E8 - ldr r0, _0804A6E4 @ =0x000003FF - ands r0, r2 - adds r1, r4, #0 - adds r1, #0x60 - strh r0, [r1] - b _0804A712 - .align 2, 0 -_0804A6E4: .4byte 0x000003FF -_0804A6E8: - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r2 - cmp r0, #0 - beq _0804A702 - lsrs r1, r1, #0x14 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE008 - b _0804A70A -_0804A702: - ldrh r1, [r5] - adds r0, r4, #0 - bl sub_080ADF80 -_0804A70A: - cmp r0, #0 - bne _0804A712 - movs r0, #0 - b _0804A71C -_0804A712: - ldrh r1, [r5, #2] - adds r0, r4, #0 - bl sub_0801D040 - movs r0, #1 -_0804A71C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804A720 -sub_0804A720: @ 0x0804A720 - push {r4, r5, r6, lr} - adds r2, r0, #0 - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0804A7D0 - ldrb r0, [r2, #9] - lsls r0, r0, #1 - ldr r1, _0804A76C @ =gUnk_080D3D94 - adds r3, r0, r1 - adds r4, r2, #0 - adds r4, #0x68 - ldrb r1, [r4, #0x16] - cmp r1, #0 - bne _0804A744 - ldrb r1, [r3] -_0804A744: - adds r0, r2, #0 - adds r0, #0x6e - strb r1, [r0] - adds r5, r0, #0 - ldrb r1, [r4, #0x17] - cmp r1, #0 - bne _0804A754 - ldrb r1, [r3, #1] -_0804A754: - adds r0, r2, #0 - adds r0, #0x6f - strb r1, [r0] - adds r6, r0, #0 - ldrh r1, [r4, #0x1c] - adds r3, r1, #0 - cmp r3, #0 - beq _0804A774 - ldr r0, _0804A770 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - adds r0, r1, r0 - b _0804A784 - .align 2, 0 -_0804A76C: .4byte gUnk_080D3D94 -_0804A770: .4byte gUnk_03000BF0 -_0804A774: - ldrb r0, [r5] - lsls r1, r0, #2 - movs r5, #0x2e - ldrsh r0, [r2, r5] - cmp r0, r1 - blt _0804A78C - ldrh r0, [r2, #0x2e] - subs r0, r0, r1 -_0804A784: - adds r1, r2, #0 - adds r1, #0x70 - strh r0, [r1] - b _0804A792 -_0804A78C: - adds r0, r2, #0 - adds r0, #0x70 - strh r3, [r0] -_0804A792: - ldrh r1, [r4, #0x1e] - adds r3, r1, #0 - cmp r3, #0 - beq _0804A7A8 - ldr r0, _0804A7A4 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r0, r1, r0 - b _0804A7B8 - .align 2, 0 -_0804A7A4: .4byte gUnk_03000BF0 -_0804A7A8: - ldrb r0, [r6] - lsls r1, r0, #2 - movs r4, #0x32 - ldrsh r0, [r2, r4] - cmp r0, r1 - blt _0804A7C0 - ldrh r0, [r2, #0x32] - subs r0, r0, r1 -_0804A7B8: - adds r1, r2, #0 - adds r1, #0x72 - strh r0, [r1] - b _0804A7C6 -_0804A7C0: - adds r0, r2, #0 - adds r0, #0x72 - strh r3, [r0] -_0804A7C6: - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #4 - orrs r0, r1 - strb r0, [r2] -_0804A7D0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0804A7D4 -sub_0804A7D4: @ 0x0804A7D4 - push {lr} - ldrb r1, [r0, #9] - movs r2, #0 - bl sub_0804A7E0 - pop {pc} - - thumb_func_start sub_0804A7E0 -sub_0804A7E0: @ 0x0804A7E0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r5, r0, #0 - mov sb, r1 - mov sl, r2 - adds r6, r5, #0 - adds r6, #0x6d - ldrb r1, [r6] - movs r7, #1 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0 - beq _0804A864 - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0804A80A - b _0804A982 -_0804A80A: - ldrb r1, [r5, #9] - movs r0, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - bne _0804A81C - b _0804A982 -_0804A81C: - adds r0, #0x6c - strb r7, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - movs r3, #1 - bl PositionRelative - str r5, [r4, #0x50] - ldrb r1, [r6] - movs r0, #2 - orrs r0, r1 - strb r0, [r6] - ldrb r0, [r5, #9] - cmp r0, #0x37 - bne _0804A84A - ldr r0, _0804A85C @ =gUnk_030010A0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - beq _0804A84A - bl sub_0805E780 -_0804A84A: - bl sub_0807CD9C - ldr r0, _0804A860 @ =0x80100000 - bl sub_080A3268 - bl sub_0805E780 - b _0804A982 - .align 2, 0 -_0804A85C: .4byte gUnk_030010A0 -_0804A860: .4byte 0x80100000 -_0804A864: - adds r4, r5, #0 - adds r4, #0x3a - ldrb r1, [r4] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - mov r8, r0 - cmp r0, #0 - bne _0804A934 - adds r0, r5, #0 - bl sub_08049CF4 - ldr r1, _0804A8E8 @ =gUnk_02002A40 - ldr r0, [r1, #0x50] - adds r0, #1 - str r0, [r1, #0x50] - ldrb r0, [r4] - movs r7, #0 - movs r1, #2 - orrs r0, r1 - strb r0, [r4] - movs r0, #0xff - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #3 - bl sub_0805E3A0 - ldrb r1, [r5, #9] - movs r0, #1 - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0804A8CA - adds r0, #0x6c - mov r2, r8 - strb r2, [r0] - adds r0, #1 - mov r1, sb - strb r1, [r0] - adds r0, #1 - mov r2, sl - strb r2, [r0] - str r5, [r4, #0x50] - str r5, [r4, #0x54] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0804A8CA: - ldrb r1, [r6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0804A8EC - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, #0 - bl sub_0805E7BC - b _0804A982 - .align 2, 0 -_0804A8E8: .4byte gUnk_02002A40 -_0804A8EC: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0x13 - bne _0804A934 - ldrb r0, [r5, #0x1c] - movs r1, #0xf - ands r1, r0 - cmp r1, #1 - beq _0804A91A - cmp r1, #2 - bne _0804A92A - cmp r4, #0 - beq _0804A92A - adds r1, r4, #0 - adds r1, #0x6c - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - b _0804A92A -_0804A91A: - cmp r4, #0 - beq _0804A92A - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] -_0804A92A: - movs r0, #0 - str r0, [r4, #0x50] - bl sub_0805E780 - b _0804A982 -_0804A934: - ldrb r0, [r5, #0xe] - cmp r0, #0 - bne _0804A940 - bl sub_0805E780 - b _0804A982 -_0804A940: - subs r1, r0, #1 - strb r1, [r5, #0xe] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _0804A95E - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r5, #0x18] - adds r0, r5, #0 - movs r1, #0 - bl sub_0805E3A0 - b _0804A982 -_0804A95E: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bhi _0804A982 - ldrb r1, [r5, #0x18] - lsls r0, r1, #0x1e - cmp r0, #0 - beq _0804A976 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - b _0804A980 -_0804A976: - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 -_0804A980: - strb r0, [r5, #0x18] -_0804A982: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804A98C -sub_0804A98C: @ 0x0804A98C - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, r1, #0 - adds r5, r2, #0 - bl sub_080A7EE0 - adds r4, r0, #0 - cmp r4, #0 - beq _0804A9A8 - strb r5, [r4, #0xa] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_0804A9A8: - adds r0, r4, #0 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0804A9AC -sub_0804A9AC: @ 0x0804A9AC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - mov ip, r3 - ldr r4, [r5, #0x68] - cmp r4, #0 - beq _0804A9FA - ldrb r2, [r5, #0x19] - lsrs r2, r2, #6 - lsls r2, r2, #6 - ldrb r3, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - ldrh r0, [r5, #0x2e] - adds r0, r0, r6 - strh r0, [r4, #0x2e] - ldrh r0, [r5, #0x32] - adds r0, r0, r7 - strh r0, [r4, #0x32] - ldrh r0, [r5, #0x36] - add r0, ip - strh r0, [r4, #0x36] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] -_0804A9FA: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0804A9FC -sub_0804A9FC: @ 0x0804A9FC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x68] - cmp r0, #0 - bne _0804AA16 - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - cmp r0, #0 - beq _0804AA16 - str r0, [r4, #0x68] - b _0804AA18 -_0804AA16: - movs r0, #0 -_0804AA18: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804AA1C -sub_0804AA1C: @ 0x0804AA1C - push {lr} - adds r2, r0, #0 - ldr r1, [r2, #0x68] - cmp r1, #0 - beq _0804AA2C - movs r0, #0 - str r0, [r1, #0x50] - str r0, [r2, #0x68] -_0804AA2C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804AA30 -sub_0804AA30: @ 0x0804AA30 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r4, #0 - adds r6, #0x41 - ldrb r1, [r6] - movs r0, #0x7f - ands r0, r1 - strb r0, [r6] - adds r0, r4, #0 - bl sub_0800279C - ldrb r2, [r6] - movs r1, #0x80 - orrs r1, r2 - strb r1, [r6] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, r5, r6, pc} - .align 2, 0 \ No newline at end of file +_0801D798: .4byte 0x040000D4 \ No newline at end of file diff --git a/asm/code_0801D79C.s b/asm/code_0801D79C.s new file mode 100644 index 00000000..84296342 --- /dev/null +++ b/asm/code_0801D79C.s @@ -0,0 +1,96392 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0801D79C +sub_0801D79C: @ 0x0801D79C + ldr r3, _0801D7B4 @ =gUnk_020176A0 + lsls r2, r0, #1 + adds r2, r2, r3 + strh r1, [r2] + ldr r2, _0801D7B8 @ =gUnk_0200B644 + lsrs r0, r0, #4 + movs r1, #1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_0801D7B4: .4byte gUnk_020176A0 +_0801D7B8: .4byte gUnk_0200B644 + + thumb_func_start sub_0801D7BC +sub_0801D7BC: @ 0x0801D7BC + push {lr} + adds r2, r0, #0 + cmp r1, #0 + beq _0801D7D4 + ldr r1, _0801D7CC @ =gUnk_03000F50 + ldr r0, _0801D7D0 @ =0x0000E0FF + b _0801D7D8 + .align 2, 0 +_0801D7CC: .4byte gUnk_03000F50 +_0801D7D0: .4byte 0x0000E0FF +_0801D7D4: + ldr r1, _0801D7E4 @ =gUnk_03000F50 + ldr r0, _0801D7E8 @ =0x0000FFFF +_0801D7D8: + strh r0, [r1, #6] + movs r0, #0 + adds r1, r2, #0 + bl sub_0801D79C + pop {pc} + .align 2, 0 +_0801D7E4: .4byte gUnk_03000F50 +_0801D7E8: .4byte 0x0000FFFF + + thumb_func_start sub_0801D7EC +sub_0801D7EC: @ 0x0801D7EC + push {r4, r5, r6, lr} + ldr r1, _0801D814 @ =gUnk_08100AA8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r6, #0x80 + lsls r6, r6, #0x12 + ldr r5, _0801D818 @ =0x040000D4 +_0801D7FC: + movs r2, #0 + ldrb r1, [r4, #3] + movs r0, #0xf + ands r1, r0 + cmp r1, #0xd + beq _0801D894 + cmp r1, #0xd + bhi _0801D81C + cmp r1, #7 + beq _0801D842 + b _0801D836 + .align 2, 0 +_0801D814: .4byte gUnk_08100AA8 +_0801D818: .4byte 0x040000D4 +_0801D81C: + cmp r1, #0xe + beq _0801D826 + cmp r1, #0xf + beq _0801D82E + b _0801D836 +_0801D826: + ldrb r0, [r6, #7] + cmp r0, #1 + bls _0801D83E + b _0801D842 +_0801D82E: + ldrb r0, [r6, #7] + cmp r0, #0 + beq _0801D83E + b _0801D842 +_0801D836: + ldrb r0, [r6, #7] + cmp r1, r0 + bne _0801D83E + movs r2, #1 +_0801D83E: + cmp r2, #0 + beq _0801D888 +_0801D842: + ldr r0, [r4] + ldr r1, _0801D868 @ =0x00FFFFFF + ands r0, r1 + ldr r1, _0801D86C @ =gUnk_085A2E80 + adds r2, r0, r1 + ldr r1, [r4, #4] + ldr r0, [r4, #8] + movs r3, #0x80 + lsls r3, r3, #0x18 + cmp r0, #0 + bge _0801D87C + ldr r0, _0801D870 @ =0x05FFFFFF + cmp r1, r0 + bls _0801D874 + adds r0, r2, #0 + bl LZ77UnCompVram + b _0801D888 + .align 2, 0 +_0801D868: .4byte 0x00FFFFFF +_0801D86C: .4byte gUnk_085A2E80 +_0801D870: .4byte 0x05FFFFFF +_0801D874: + adds r0, r2, #0 + bl LZ77UnCompWram + b _0801D888 +_0801D87C: + str r2, [r5] + str r1, [r5, #4] + lsrs r0, r0, #1 + orrs r0, r3 + str r0, [r5, #8] + ldr r0, [r5, #8] +_0801D888: + ldrb r1, [r4, #3] + movs r0, #0x80 + ands r1, r0 + adds r4, #0xc + cmp r1, #0 + bne _0801D7FC +_0801D894: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0801D898 +sub_0801D898: @ 0x0801D898 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r3 + movs r1, #0x20 + mov ip, r1 + cmp r0, #0 + beq _0801D8B2 + movs r0, #0x40 + mov ip, r0 +_0801D8B2: + ldr r0, _0801D8D8 @ =0x00007FFF + ands r3, r0 + ldr r1, _0801D8DC @ =0x040000D4 + movs r2, #0x80 + lsls r2, r2, #0x18 + orrs r2, r6 + lsls r7, r6, #1 + mov r0, ip + lsls r6, r0, #1 +_0801D8C4: + str r4, [r1] + str r5, [r1, #4] + str r2, [r1, #8] + ldr r0, [r1, #8] + adds r4, r4, r7 + adds r5, r5, r6 + subs r3, #1 + cmp r3, #0 + bne _0801D8C4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801D8D8: .4byte 0x00007FFF +_0801D8DC: .4byte 0x040000D4 + + thumb_func_start sub_0801D8E0 +sub_0801D8E0: @ 0x0801D8E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov ip, r0 + movs r0, #3 + add ip, r0 + subs r0, #7 + mov r1, ip + ands r1, r0 + mov ip, r1 + ldr r6, _0801D90C @ =gUnk_02035540 + mov sb, r6 + ldrh r7, [r6] + movs r5, #1 + movs r3, #0x80 + lsls r3, r3, #5 + add r3, sb + subs r4, r3, r1 + movs r2, #0 + b _0801D926 + .align 2, 0 +_0801D90C: .4byte gUnk_02035540 +_0801D910: + cmp r1, r4 + bhi _0801D918 + cmp r3, r0 + bls _0801D952 +_0801D918: + cmp r4, r1 + bhi _0801D920 + cmp r0, r3 + bls _0801D952 +_0801D920: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_0801D926: + cmp r2, r7 + bhs _0801D94A + lsls r0, r2, #2 + add r0, sb + ldrh r1, [r0, #2] + ldr r6, _0801D95C @ =gUnk_02035540 + adds r1, r1, r6 + ldrh r0, [r0, #4] + adds r0, r0, r6 + cmp r1, r4 + bhi _0801D940 + cmp r4, r0 + bls _0801D952 +_0801D940: + cmp r1, r3 + bhi _0801D910 + cmp r3, r0 + bhi _0801D910 + movs r5, #0 +_0801D94A: + lsls r0, r7, #2 + mov sl, r0 + cmp r5, #0 + bne _0801D9D8 +_0801D952: + movs r1, #0 + mov r8, r1 + lsls r6, r7, #2 + mov sl, r6 + b _0801D970 + .align 2, 0 +_0801D95C: .4byte gUnk_02035540 +_0801D960: + movs r5, #0 +_0801D962: + mov r0, r8 + adds r0, #1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r8, r0 + cmp r8, r7 + bhs _0801D9D4 +_0801D970: + mov r1, r8 + lsls r0, r1, #2 + add r0, sb + ldrh r0, [r0, #2] + ldr r6, _0801D994 @ =gUnk_02035540 + adds r3, r0, r6 + mov r0, ip + subs r4, r3, r0 + movs r5, #0 + mov r0, sl + adds r0, #2 + add r0, sb + adds r0, #4 + cmp r4, r0 + blo _0801D962 + movs r5, #1 + movs r2, #0 + b _0801D9AE + .align 2, 0 +_0801D994: .4byte gUnk_02035540 +_0801D998: + cmp r1, r4 + bhi _0801D9A0 + cmp r3, r0 + bls _0801D960 +_0801D9A0: + cmp r4, r1 + bhi _0801D9A8 + cmp r0, r3 + bls _0801D960 +_0801D9A8: + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 +_0801D9AE: + cmp r2, r7 + bhs _0801D9D0 + lsls r0, r2, #2 + add r0, sb + ldrh r1, [r0, #2] + adds r1, r1, r6 + ldrh r0, [r0, #4] + adds r0, r0, r6 + cmp r1, r4 + bhi _0801D9C6 + cmp r4, r0 + blo _0801D960 +_0801D9C6: + cmp r1, r3 + bhs _0801D998 + cmp r3, r0 + bhi _0801D998 + movs r5, #0 +_0801D9D0: + cmp r5, #0 + beq _0801D962 +_0801D9D4: + cmp r5, #0 + beq _0801DA00 +_0801D9D8: + ldr r0, _0801D9FC @ =gUnk_02035542 + mov r1, sl + adds r2, r1, r0 + subs r3, r0, #2 + subs r1, r4, r3 + strh r1, [r2] + adds r0, #2 + add r0, sl + add r1, ip + strh r1, [r0] + adds r0, r7, #1 + strh r0, [r3] + adds r0, r4, #0 + mov r1, ip + bl sub_0801D630 + adds r0, r4, #0 + b _0801DA02 + .align 2, 0 +_0801D9FC: .4byte gUnk_02035542 +_0801DA00: + movs r0, #0 +_0801DA02: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801DA0C +sub_0801DA0C: @ 0x0801DA0C + push {r4, r5, lr} + ldr r3, _0801DA44 @ =gUnk_02035540 + subs r1, r0, r3 + ldr r0, _0801DA48 @ =0x00000FFF + cmp r1, r0 + bhi _0801DA74 + adds r4, r3, #0 + ldrh r5, [r4] + adds r4, #2 + movs r2, #0 + cmp r2, r5 + bhs _0801DA74 + ldrh r0, [r4] + cmp r0, r1 + bne _0801DA4C + lsls r0, r5, #2 + subs r1, r3, #2 + adds r0, r0, r1 + ldrh r1, [r0] + strh r1, [r4] + strh r2, [r0] + adds r0, #2 + ldrh r1, [r0] + strh r1, [r4, #2] + strh r2, [r0] + subs r0, r5, #1 + strh r0, [r3] + b _0801DA74 + .align 2, 0 +_0801DA44: .4byte gUnk_02035540 +_0801DA48: .4byte 0x00000FFF +_0801DA4C: + adds r4, #4 + adds r2, #1 + cmp r2, r5 + bhs _0801DA74 + ldrh r0, [r4] + cmp r0, r1 + bne _0801DA4C + lsls r1, r5, #2 + ldr r3, _0801DA78 @ =gUnk_0203553E + adds r1, r1, r3 + ldrh r0, [r1] + strh r0, [r4] + movs r2, #0 + strh r2, [r1] + adds r1, #2 + ldrh r0, [r1] + strh r0, [r4, #2] + strh r2, [r1] + subs r0, r5, #1 + strh r0, [r3, #2] +_0801DA74: + pop {r4, r5, pc} + .align 2, 0 +_0801DA78: .4byte gUnk_0203553E + + thumb_func_start sub_0801DA7C +sub_0801DA7C: @ 0x0801DA7C + push {lr} + ldr r0, _0801DA8C @ =gUnk_02035540 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_0801DA8C: .4byte gUnk_02035540 + + thumb_func_start sub_0801DA90 +sub_0801DA90: @ 0x0801DA90 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0801DAEC @ =gUnk_03001000 + ldrb r0, [r1] + movs r3, #0 + movs r0, #1 + strb r0, [r1] + ldr r0, _0801DAF0 @ =gUnk_03003DE0 + strb r3, [r0] + ldr r0, _0801DAF4 @ =gUnk_03000FD0 + strb r3, [r0] + ldr r5, _0801DAF8 @ =gUnk_03000F50 + adds r0, r5, #0 + adds r0, #0x6d + strb r3, [r0] + subs r0, #1 + strb r3, [r0] + ldr r1, _0801DAFC @ =0x040000B0 + ldrh r2, [r1, #0xa] + ldr r0, _0801DB00 @ =0x0000C5FF + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r2, [r1, #0xa] + ldr r0, _0801DB04 @ =0x00007FFF + ands r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r1, #0xa] + movs r0, #0x80 + lsls r0, r0, #0x13 + strh r3, [r0] + bl sub_0801DB10 + bl sub_0801DB34 + ldr r0, _0801DB08 @ =0x0600C000 + movs r1, #0x20 + bl sub_0801D630 + ldr r0, _0801DB0C @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + strh r4, [r5, #0xe] + pop {r4, r5, pc} + .align 2, 0 +_0801DAEC: .4byte gUnk_03001000 +_0801DAF0: .4byte gUnk_03003DE0 +_0801DAF4: .4byte gUnk_03000FD0 +_0801DAF8: .4byte gUnk_03000F50 +_0801DAFC: .4byte 0x040000B0 +_0801DB00: .4byte 0x0000C5FF +_0801DB04: .4byte 0x00007FFF +_0801DB08: .4byte 0x0600C000 +_0801DB0C: .4byte gUnk_02034CB0 + + thumb_func_start sub_0801DB10 +sub_0801DB10: @ 0x0801DB10 + push {r4, lr} + ldr r3, _0801DB30 @ =gUnk_03000020 + movs r1, #0xe0 + lsls r1, r1, #0x13 + movs r0, #0x80 + movs r4, #0xa8 + lsls r4, r4, #2 + adds r2, r4, #0 +_0801DB20: + strh r2, [r3] + adds r3, #8 + strh r2, [r1] + adds r1, #8 + subs r0, #1 + cmp r0, #0 + bne _0801DB20 + pop {r4, pc} + .align 2, 0 +_0801DB30: .4byte gUnk_03000020 + + thumb_func_start sub_0801DB34 +sub_0801DB34: @ 0x0801DB34 + push {r4, lr} + ldr r4, _0801DB6C @ =gUnk_03000F50 + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D630 + ldr r0, _0801DB70 @ =gUnk_02034CB0 + str r0, [r4, #0x10] + ldr r0, _0801DB74 @ =0x00001F0C + strh r0, [r4, #8] + ldr r0, _0801DB78 @ =gUnk_02021F30 + str r0, [r4, #0x1c] + ldr r0, _0801DB7C @ =0x00001C01 + strh r0, [r4, #0x14] + ldr r0, _0801DB80 @ =gUnk_020344B0 + str r0, [r4, #0x28] + ldr r0, _0801DB84 @ =0x00001D02 + strh r0, [r4, #0x20] + ldr r0, _0801DB88 @ =gUnk_02001A40 + str r0, [r4, #0x34] + ldr r0, _0801DB8C @ =0x00001E03 + strh r0, [r4, #0x2c] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4] + ldr r0, _0801DB90 @ =0x0000FFFF + strh r0, [r4, #6] + pop {r4, pc} + .align 2, 0 +_0801DB6C: .4byte gUnk_03000F50 +_0801DB70: .4byte gUnk_02034CB0 +_0801DB74: .4byte 0x00001F0C +_0801DB78: .4byte gUnk_02021F30 +_0801DB7C: .4byte 0x00001C01 +_0801DB80: .4byte gUnk_020344B0 +_0801DB84: .4byte 0x00001D02 +_0801DB88: .4byte gUnk_02001A40 +_0801DB8C: .4byte 0x00001E03 +_0801DB90: .4byte 0x0000FFFF + + thumb_func_start sub_0801DB94 +sub_0801DB94: @ 0x0801DB94 + ldr r0, _0801DB9C @ =gUnk_030010A0 + ldrh r0, [r0, #0x1e] + lsrs r0, r0, #0xb + bx lr + .align 2, 0 +_0801DB9C: .4byte gUnk_030010A0 + + thumb_func_start sub_0801DBA0 +sub_0801DBA0: @ 0x0801DBA0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + adds r1, r2, #0 + adds r0, r5, #0 + bl sub_0801D630 + movs r0, #1 + strb r0, [r5] + ldr r2, _0801DBE4 @ =gUnk_030010A0 + ldrh r0, [r2, #0x1c] + lsrs r0, r0, #4 + movs r1, #0x7f + ands r0, r1 + strb r0, [r5, #1] + ldrh r0, [r2, #0x1e] + lsrs r0, r0, #4 + ands r0, r1 + strb r0, [r5, #2] + adds r5, #3 + ldr r1, _0801DBE8 @ =gUnk_080C9C50 + ldr r0, _0801DBEC @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r6, [r4] + b _0801DD3A + .align 2, 0 +_0801DBE4: .4byte gUnk_030010A0 +_0801DBE8: .4byte gUnk_080C9C50 +_0801DBEC: .4byte gUnk_02033A90 +_0801DBF0: + ldrb r0, [r6] + ldrb r1, [r6, #1] + movs r2, #3 + bl sub_0804B0FC + adds r4, r0, #0 + cmp r4, #0 + bne _0801DC04 + adds r6, #8 + b _0801DD3A +_0801DC04: + adds r0, r6, #0 + bl sub_0801DF10 + mov r8, r0 + bl sub_0805279C + movs r1, #8 + adds r1, r1, r6 + mov sb, r1 + cmp r0, #0 + beq _0801DCAE + ldrb r0, [r4] + cmp r0, #0 + beq _0801DCAE + movs r3, #0xfc + lsls r3, r3, #2 + ldr r7, _0801DC84 @ =0x000007FF +_0801DC26: + ldrb r0, [r4] + cmp r0, #3 + bgt _0801DCA6 + cmp r0, #2 + blt _0801DCA6 + ldrb r1, [r4, #1] + mov r0, r8 + str r3, [sp] + bl GetProgressFlagWithOffset + ldr r3, [sp] + cmp r0, #0 + bne _0801DCA6 + ldr r0, _0801DC88 @ =gUnk_0811E214 + ldrb r2, [r6] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r6, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r2] + adds r2, r1, r0 + movs r0, #2 + strb r0, [r5] + ldrb r0, [r4] + cmp r0, #2 + bne _0801DC8C + ldrh r0, [r4, #4] + lsls r0, r0, #4 + ands r0, r3 + movs r1, #8 + orrs r0, r1 + ldrh r1, [r2] + ands r1, r7 + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #1] + ldrh r0, [r4, #4] + lsrs r0, r0, #2 + ands r0, r3 + movs r1, #8 + orrs r0, r1 + ldrh r1, [r2, #2] + ands r1, r7 + b _0801DC9E + .align 2, 0 +_0801DC84: .4byte 0x000007FF +_0801DC88: .4byte gUnk_0811E214 +_0801DC8C: + ldrh r0, [r2] + ands r0, r7 + ldrh r1, [r4, #4] + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #1] + ldrh r0, [r2, #2] + ands r0, r7 + ldrh r1, [r4, #6] +_0801DC9E: + adds r0, r0, r1 + asrs r0, r0, #4 + strb r0, [r5, #2] + adds r5, #3 +_0801DCA6: + adds r4, #8 + ldrb r0, [r4] + cmp r0, #0 + bne _0801DC26 +_0801DCAE: + bl sub_0805279C + cmp r0, #0 + beq _0801DD16 + ldrb r1, [r6, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0801DD16 + ldr r0, _0801DD4C @ =gUnk_02033A90 + ldrb r0, [r0, #3] + adds r0, #1 + bl GetProgressFlag + cmp r0, #0 + bne _0801DD16 + ldr r0, _0801DD50 @ =gUnk_0811E214 + ldrb r2, [r6] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r6, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r2] + adds r2, r1, r0 + movs r0, #4 + strb r0, [r5] + ldrh r0, [r2, #4] + lsrs r0, r0, #1 + ldrh r1, [r2] + adds r0, r0, r1 + asrs r1, r0, #4 + adds r0, r1, #0 + cmp r1, #0 + bge _0801DCF8 + adds r0, #0x7f +_0801DCF8: + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + strb r0, [r5, #1] + ldrh r0, [r2, #6] + lsrs r0, r0, #1 + ldrh r2, [r2, #2] + adds r0, r0, r2 + asrs r1, r0, #4 + adds r0, r1, #0 + asrs r0, r0, #7 + lsls r0, r0, #7 + subs r0, r1, r0 + strb r0, [r5, #2] + adds r5, #3 +_0801DD16: + ldr r2, _0801DD54 @ =gUnk_030010A0 + ldrh r0, [r6] + ldrh r1, [r2, #0x16] + cmp r0, r1 + bne _0801DD38 + movs r0, #3 + strb r0, [r5] + ldrh r0, [r2, #0x18] + lsrs r0, r0, #4 + movs r1, #0x7f + ands r0, r1 + strb r0, [r5, #1] + ldrh r0, [r2, #0x1a] + lsrs r0, r0, #4 + ands r0, r1 + strb r0, [r5, #2] + adds r5, #3 +_0801DD38: + mov r6, sb +_0801DD3A: + ldrb r0, [r6] + cmp r0, #0 + beq _0801DD42 + b _0801DBF0 +_0801DD42: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801DD4C: .4byte gUnk_02033A90 +_0801DD50: .4byte gUnk_0811E214 +_0801DD54: .4byte gUnk_030010A0 + + thumb_func_start sub_0801DD58 +sub_0801DD58: @ 0x0801DD58 + ldr r2, _0801DD7C @ =gUnk_0811E214 + lsls r0, r0, #2 + adds r0, r0, r2 + lsls r2, r1, #2 + adds r2, r2, r1 + lsls r2, r2, #1 + ldr r3, [r0] + adds r3, r3, r2 + ldr r0, _0801DD80 @ =gUnk_02033A90 + ldr r1, _0801DD84 @ =0x0000085C + adds r0, r0, r1 + ldr r2, [r0] + ldrh r1, [r3] + strh r1, [r2, #4] + ldr r1, [r0] + ldrh r0, [r3, #2] + strh r0, [r1, #6] + bx lr + .align 2, 0 +_0801DD7C: .4byte gUnk_0811E214 +_0801DD80: .4byte gUnk_02033A90 +_0801DD84: .4byte 0x0000085C + + thumb_func_start sub_0801DD88 +sub_0801DD88: @ 0x0801DD88 + push {lr} + ldr r0, _0801DD98 @ =gUnk_0201AEE0 + ldr r1, _0801DD9C @ =0x06006000 + movs r2, #0x80 + lsls r2, r2, #6 + bl sub_08000E96 + pop {pc} + .align 2, 0 +_0801DD98: .4byte gUnk_0201AEE0 +_0801DD9C: .4byte 0x06006000 + + thumb_func_start sub_0801DDA0 +sub_0801DDA0: @ 0x0801DDA0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r4, r0, #0 + bl sub_08052690 + cmp r0, #0 + bne _0801DDB8 + b _0801DEEA +_0801DDB8: + ldr r1, _0801DDD8 @ =gUnk_080C9C50 + ldr r0, _0801DDDC @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r0, _0801DDE0 @ =gUnk_02019EE0 + movs r1, #0x80 + lsls r1, r1, #8 + bl sub_0801D630 + b _0801DEE2 + .align 2, 0 +_0801DDD8: .4byte gUnk_080C9C50 +_0801DDDC: .4byte gUnk_02033A90 +_0801DDE0: .4byte gUnk_02019EE0 +_0801DDE4: + ldrb r0, [r4] + ldrb r1, [r4, #1] + movs r2, #3 + bl sub_0804B0FC + adds r6, r0, #0 + adds r0, r4, #0 + bl sub_0801DF10 + adds r5, r0, #0 + movs r0, #0 + str r0, [sp, #0xc] + ldrh r2, [r4] + ldr r0, _0801DE14 @ =gUnk_02032EC0 + ldrh r3, [r0, #0x20] + ldr r1, _0801DE18 @ =0x0000FFFF + ands r1, r2 + ldr r0, _0801DE18 @ =0x0000FFFF + ands r0, r3 + cmp r1, r0 + bne _0801DE1C + movs r3, #8 + b _0801DE36 + .align 2, 0 +_0801DE14: .4byte gUnk_02032EC0 +_0801DE18: .4byte 0x0000FFFF +_0801DE1C: + bl sub_080527CC + cmp r0, #0 + beq _0801DE28 + movs r0, #2 + str r0, [sp, #0xc] +_0801DE28: + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0801DF90 + cmp r0, #0 + beq _0801DE38 + movs r3, #3 +_0801DE36: + str r3, [sp, #0xc] +_0801DE38: + ldrb r1, [r4, #2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801DE46 + movs r0, #0 + str r0, [sp, #0xc] +_0801DE46: + adds r3, r4, #0 + adds r3, #8 + str r3, [sp, #0x10] + ldr r0, [sp, #0xc] + cmp r0, #0 + beq _0801DEE0 + ldr r2, _0801DEF8 @ =0x040000D4 + ldr r0, [r4, #4] + ldr r1, _0801DEFC @ =gUnk_08324AE4 + adds r0, r0, r1 + str r0, [r2] + ldr r0, _0801DF00 @ =gUnk_02019EE0 + str r0, [r2, #4] + ldr r0, _0801DF04 @ =0x84000100 + str r0, [r2, #8] + ldr r0, [r2, #8] + ldr r0, _0801DF08 @ =gUnk_0811E214 + ldrb r2, [r4] + lsls r2, r2, #2 + adds r2, r2, r0 + ldrb r1, [r4, #1] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r2, [r2] + adds r2, r2, r0 + ldrh r0, [r2] + lsrs r0, r0, #4 + str r0, [sp] + ldrh r0, [r2, #2] + ldr r1, _0801DF0C @ =0x000007FF + ands r0, r1 + lsrs r0, r0, #4 + str r0, [sp, #4] + ldrh r0, [r2, #4] + lsrs r7, r0, #4 + ldrh r0, [r2, #6] + lsrs r0, r0, #4 + mov sl, r0 + adds r0, r7, #3 + lsrs r0, r0, #2 + str r0, [sp, #8] + movs r6, #0 + cmp r6, sl + bhs _0801DEE0 +_0801DEA0: + ldr r3, [sp, #8] + adds r1, r6, #0 + muls r1, r3, r1 + ldr r0, _0801DF00 @ =gUnk_02019EE0 + adds r1, r1, r0 + mov r8, r1 + movs r5, #0 + adds r0, r6, #1 + mov sb, r0 + cmp r5, r7 + bhs _0801DEDA +_0801DEB6: + ldr r3, [sp] + adds r4, r3, r5 + adds r0, r5, #0 + mov r1, r8 + bl sub_0801DF60 + ldr r1, [sp, #0xc] + bl sub_0801DF78 + adds r2, r0, #0 + adds r0, r4, #0 + ldr r3, [sp, #4] + adds r1, r3, r6 + bl sub_0801DF28 + adds r5, #1 + cmp r5, r7 + blo _0801DEB6 +_0801DEDA: + mov r6, sb + cmp r6, sl + blo _0801DEA0 +_0801DEE0: + ldr r4, [sp, #0x10] +_0801DEE2: + ldrb r0, [r4] + cmp r0, #0 + beq _0801DEEA + b _0801DDE4 +_0801DEEA: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801DEF8: .4byte 0x040000D4 +_0801DEFC: .4byte gUnk_08324AE4 +_0801DF00: .4byte gUnk_02019EE0 +_0801DF04: .4byte 0x84000100 +_0801DF08: .4byte gUnk_0811E214 +_0801DF0C: .4byte 0x000007FF + + thumb_func_start sub_0801DF10 +sub_0801DF10: @ 0x0801DF10 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #3] + cmp r0, #1 + bne _0801DF20 + movs r0, #0xc0 + lsls r0, r0, #2 + b _0801DF26 +_0801DF20: + ldrb r0, [r1] + bl sub_08052D58 +_0801DF26: + pop {pc} + + thumb_func_start sub_0801DF28 +sub_0801DF28: @ 0x0801DF28 + push {r4, lr} + lsrs r4, r1, #3 + lsls r4, r4, #4 + lsrs r3, r0, #3 + adds r4, r4, r3 + lsls r4, r4, #5 + ldr r3, _0801DF58 @ =gUnk_0201AEE0 + adds r4, r4, r3 + movs r3, #7 + ands r1, r3 + lsls r1, r1, #2 + adds r4, r4, r1 + ands r0, r3 + lsls r0, r0, #2 + lsls r2, r0 + ldr r1, _0801DF5C @ =gUnk_080C9460 + adds r0, r0, r1 + ldr r1, [r4] + ldr r0, [r0] + ands r1, r0 + orrs r1, r2 + str r1, [r4] + pop {r4, pc} + .align 2, 0 +_0801DF58: .4byte gUnk_0201AEE0 +_0801DF5C: .4byte gUnk_080C9460 + + thumb_func_start sub_0801DF60 +sub_0801DF60: @ 0x0801DF60 + adds r3, r0, #0 + lsrs r0, r3, #2 + adds r0, r0, r1 + ldrb r0, [r0] + movs r2, #3 + adds r1, r2, #0 + bics r1, r3 + lsls r1, r1, #1 + asrs r0, r1 + ands r0, r2 + bx lr + .align 2, 0 + + thumb_func_start sub_0801DF78 +sub_0801DF78: @ 0x0801DF78 + push {lr} + cmp r0, #2 + beq _0801DF88 + cmp r0, #2 + blo _0801DF8E + cmp r0, #3 + beq _0801DF8C + b _0801DF8E +_0801DF88: + adds r0, r1, #0 + b _0801DF8E +_0801DF8C: + movs r0, #7 +_0801DF8E: + pop {pc} + + thumb_func_start sub_0801DF90 +sub_0801DF90: @ 0x0801DF90 + push {lr} + adds r2, r1, #0 + cmp r0, #0 + bne _0801DFAA + b _0801DFB0 +_0801DF9A: + ldrb r1, [r0, #1] + adds r0, r2, #0 + bl GetProgressFlagWithOffset + b _0801DFB2 +_0801DFA4: + cmp r1, #1 + beq _0801DF9A + adds r0, #8 +_0801DFAA: + ldrb r1, [r0] + cmp r1, #0 + bne _0801DFA4 +_0801DFB0: + movs r0, #0 +_0801DFB2: + pop {pc} + + thumb_func_start sub_0801DFB4 +sub_0801DFB4: @ 0x0801DFB4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r7, _0801E004 @ =gUnk_02022740 + adds r0, r7, #0 + movs r1, #0x10 + bl sub_0801D630 + strh r4, [r7, #6] + strh r5, [r7, #8] + strh r6, [r7, #0xa] + mov r0, r8 + str r0, [r7, #0xc] + ldr r0, _0801E008 @ =gUnk_03003DF0 + ldrb r0, [r0, #2] + strb r0, [r7, #3] + mov r1, r8 + cmp r1, #0 + beq _0801DFF8 + ldrb r1, [r1, #0x11] + lsls r0, r1, #0x1c + lsrs r0, r0, #0x1c + strb r0, [r7, #4] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + mov r1, r8 + strb r0, [r1, #0x11] +_0801DFF8: + movs r0, #0 + strb r0, [r7] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E004: .4byte gUnk_02022740 +_0801E008: .4byte gUnk_03003DF0 + + thumb_func_start sub_0801E00C +sub_0801E00C: @ 0x0801E00C + push {r4, lr} + ldr r1, _0801E024 @ =gUnk_080C9CAC + ldr r4, _0801E028 @ =gUnk_02022740 + ldrb r0, [r4, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0801E024: .4byte gUnk_080C9CAC +_0801E028: .4byte gUnk_02022740 + + thumb_func_start sub_0801E02C +sub_0801E02C: @ 0x0801E02C + push {r4, lr} + ldr r4, _0801E040 @ =gUnk_02022740 + ldrh r0, [r4, #6] + bl sub_0801E0E0 + movs r0, #3 + strb r0, [r4] + movs r0, #1 + strb r0, [r4, #1] + pop {r4, pc} + .align 2, 0 +_0801E040: .4byte gUnk_02022740 + + thumb_func_start sub_0801E044 +sub_0801E044: @ 0x0801E044 + push {lr} + ldr r0, _0801E06C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0801E06A + movs r0, #4 + movs r1, #0 + bl sub_080A7138 + ldr r0, _0801E070 @ =gUnk_02022740 + movs r1, #4 + strb r1, [r0] + movs r1, #2 + strb r1, [r0, #1] + movs r0, #0x6b + bl sub_080A3268 +_0801E06A: + pop {pc} + .align 2, 0 +_0801E06C: .4byte gUnk_02000050 +_0801E070: .4byte gUnk_02022740 + + thumb_func_start sub_0801E074 +sub_0801E074: @ 0x0801E074 + push {lr} + ldr r0, _0801E084 @ =gUnk_02022740 + ldrb r1, [r0] + cmp r1, #5 + beq _0801E088 + cmp r1, #6 + beq _0801E08C + b _0801E098 + .align 2, 0 +_0801E084: .4byte gUnk_02022740 +_0801E088: + ldrh r0, [r0, #8] + b _0801E08E +_0801E08C: + ldrh r0, [r0, #0xa] +_0801E08E: + bl sub_0801E0E0 + ldr r1, _0801E09C @ =gUnk_02022740 + movs r0, #3 + strb r0, [r1, #1] +_0801E098: + pop {pc} + .align 2, 0 +_0801E09C: .4byte gUnk_02022740 + + thumb_func_start sub_0801E0A0 +sub_0801E0A0: @ 0x0801E0A0 + push {r4, lr} + ldr r0, _0801E0D8 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0801E0D4 + ldr r4, _0801E0DC @ =gUnk_02022740 + ldr r3, [r4, #0xc] + cmp r3, #0 + beq _0801E0C8 + ldrb r0, [r4, #4] + movs r1, #0xf + ands r1, r0 + ldrb r2, [r3, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x11] +_0801E0C8: + ldrb r0, [r4] + movs r1, #1 + cmp r0, #6 + bne _0801E0D2 + movs r1, #2 +_0801E0D2: + strb r1, [r4] +_0801E0D4: + pop {r4, pc} + .align 2, 0 +_0801E0D8: .4byte gUnk_02000050 +_0801E0DC: .4byte gUnk_02022740 + + thumb_func_start sub_0801E0E0 +sub_0801E0E0: @ 0x0801E0E0 + push {lr} + adds r2, r0, #0 + cmp r2, #0 + beq _0801E102 + ldr r0, _0801E0F8 @ =gUnk_02022740 + ldr r1, [r0, #0xc] + cmp r1, #0 + beq _0801E0FC + adds r0, r2, #0 + bl sub_08056398 + b _0801E102 + .align 2, 0 +_0801E0F8: .4byte gUnk_02022740 +_0801E0FC: + adds r0, r2, #0 + bl sub_08056378 +_0801E102: + pop {pc} + + thumb_func_start sub_0801E104 +sub_0801E104: @ 0x0801E104 + ldr r1, _0801E118 @ =gUnk_03000F50 + ldrh r2, [r1] + ldr r0, _0801E11C @ =0x00009FFF + ands r0, r2 + movs r2, #0 + strh r0, [r1] + adds r1, #0x6c + strb r2, [r1] + bx lr + .align 2, 0 +_0801E118: .4byte gUnk_03000F50 +_0801E11C: .4byte 0x00009FFF + + thumb_func_start sub_0801E120 +sub_0801E120: @ 0x0801E120 + ldr r3, _0801E14C @ =gUnk_03000F50 + ldrh r1, [r3] + movs r2, #0x80 + lsls r2, r2, #6 + adds r0, r2, #0 + movs r2, #0 + orrs r0, r1 + strh r0, [r3] + adds r1, r3, #0 + adds r1, #0x60 + ldr r0, _0801E150 @ =0x00003F37 + strh r0, [r1] + adds r1, #2 + movs r0, #0x3f + strh r0, [r1] + adds r0, r3, #0 + adds r0, #0x58 + strh r2, [r0] + subs r1, #6 + movs r0, #0xa0 + strh r0, [r1] + bx lr + .align 2, 0 +_0801E14C: .4byte gUnk_03000F50 +_0801E150: .4byte 0x00003F37 + + thumb_func_start sub_0801E154 +sub_0801E154: @ 0x0801E154 + push {lr} + movs r1, #0 + bl sub_0801E24C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0801E160 +sub_0801E160: @ 0x0801E160 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + mov r8, r1 + mov sb, r2 + ldr r5, _0801E1A8 @ =gUnk_03003DE4 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r4, _0801E1AC @ =gUnk_02017AA0 + adds r0, r0, r4 + movs r1, #0xa0 + lsls r1, r1, #4 + bl sub_0801D630 + adds r0, r6, #0 + mov r1, r8 + mov r2, sb + bl sub_0801E290 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r0, r0, r4 + ldr r1, _0801E1B0 @ =0x04000040 + ldr r2, _0801E1B4 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0801E1A8: .4byte gUnk_03003DE4 +_0801E1AC: .4byte gUnk_02017AA0 +_0801E1B0: .4byte 0x04000040 +_0801E1B4: .4byte 0xA2600001 + + thumb_func_start sub_0801E1B8 +sub_0801E1B8: @ 0x0801E1B8 + push {r4, lr} + ldr r2, _0801E1E8 @ =gUnk_03000F50 + mov ip, r2 + ldrh r3, [r2] + movs r4, #0x80 + lsls r4, r4, #6 + adds r2, r4, #0 + movs r4, #0 + orrs r2, r3 + mov r3, ip + strh r2, [r3] + mov r2, ip + adds r2, #0x60 + strh r0, [r2] + mov r0, ip + adds r0, #0x62 + strh r1, [r0] + subs r0, #0xa + strh r4, [r0] + mov r1, ip + adds r1, #0x5c + movs r0, #0xa0 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0801E1E8: .4byte gUnk_03000F50 + + thumb_func_start sub_0801E1EC +sub_0801E1EC: @ 0x0801E1EC + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + mov r8, r0 + mov sb, r1 + adds r4, r2, #0 + ldr r6, _0801E23C @ =gUnk_03003DE4 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r5, _0801E240 @ =gUnk_02017AA0 + adds r0, r0, r5 + movs r1, #0xa0 + lsls r1, r1, #4 + bl sub_0801D630 + adds r0, r4, #0 + movs r1, #0 + bl sub_0801E24C + mov r0, r8 + mov r1, sb + adds r2, r4, #0 + bl sub_0801E290 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r0, r0, r5 + ldr r1, _0801E244 @ =0x04000040 + ldr r2, _0801E248 @ =0xA2600001 + bl sub_0805622C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0801E23C: .4byte gUnk_03003DE4 +_0801E240: .4byte gUnk_02017AA0 +_0801E244: .4byte 0x04000040 +_0801E248: .4byte 0xA2600001 + + thumb_func_start sub_0801E24C +sub_0801E24C: @ 0x0801E24C + push {r4, r5, lr} + lsls r1, r1, #1 + ldr r2, _0801E278 @ =gUnk_02018EE0 + adds r5, r1, r2 + movs r3, #0 + adds r2, r0, #0 + lsls r4, r2, #1 + movs r0, #3 + subs r1, r0, r4 + cmp r3, r2 + bgt _0801E28E + adds r4, r4, r5 +_0801E264: + lsls r0, r3, #1 + adds r0, r0, r5 + strh r2, [r0] + strh r3, [r4] + cmp r1, #0 + bge _0801E27C + adds r1, #6 + lsls r0, r3, #2 + adds r1, r1, r0 + b _0801E288 + .align 2, 0 +_0801E278: .4byte gUnk_02018EE0 +_0801E27C: + adds r1, #0xa + subs r0, r3, r2 + lsls r0, r0, #2 + adds r1, r1, r0 + subs r4, #2 + subs r2, #1 +_0801E288: + adds r3, #1 + cmp r3, r2 + ble _0801E264 +_0801E28E: + pop {r4, r5, pc} + + thumb_func_start sub_0801E290 +sub_0801E290: @ 0x0801E290 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov ip, r0 + adds r6, r2, #0 + ldr r0, _0801E2BC @ =gUnk_03003DE4 + ldrb r0, [r0] + lsls r2, r0, #2 + adds r2, r2, r0 + lsls r2, r2, #9 + lsls r0, r1, #1 + ldr r3, _0801E2C0 @ =gUnk_02017AA0 + adds r0, r0, r3 + adds r2, r2, r0 + adds r4, r2, #0 + adds r5, r1, #0 + mov sb, r5 + ldr r0, _0801E2C4 @ =gUnk_02018EE0 + mov r8, r0 + b _0801E30A + .align 2, 0 +_0801E2BC: .4byte gUnk_03003DE4 +_0801E2C0: .4byte gUnk_02017AA0 +_0801E2C4: .4byte gUnk_02018EE0 +_0801E2C8: + mov r1, r8 + movs r3, #0 + ldrsh r0, [r1, r3] + movs r7, #2 + add r8, r7 + mov r3, ip + subs r1, r3, r0 + adds r3, r3, r0 + cmp r1, #0 + bge _0801E2DE + movs r1, #0 +_0801E2DE: + cmp r3, #0xef + ble _0801E2E4 + movs r3, #0xf0 +_0801E2E4: + mov r7, sb + lsls r0, r7, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x9f + bhi _0801E2F2 + strb r3, [r4] + strb r1, [r4, #1] +_0801E2F2: + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x9f + bhi _0801E2FE + strb r3, [r2] + strb r1, [r2, #1] +_0801E2FE: + subs r4, #2 + adds r2, #2 + movs r0, #1 + rsbs r0, r0, #0 + add sb, r0 + adds r5, #1 +_0801E30A: + adds r0, r6, #0 + subs r6, #1 + cmp r0, #0 + bne _0801E2C8 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0801E31C +sub_0801E31C: @ 0x0801E31C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x20 + str r0, [sp] + str r1, [sp, #4] + mov sl, r2 + mov sb, r3 + ldr r0, _0801E3AC @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E3B0 @ =gUnk_02017AA0 + adds r0, r0, r1 + movs r1, #0xa0 + lsls r1, r1, #4 + bl sub_0801D630 + cmp sl, sb + bge _0801E3DC + movs r6, #0 + mov r8, sl + mov r7, r8 + mov r0, r8 + lsls r1, r0, #1 + movs r0, #3 + subs r5, r0, r1 + cmp r6, r8 + ble _0801E35E + b _0801E45E +_0801E35E: + mov r1, r8 + lsls r0, r1, #2 + ldr r4, _0801E3B4 @ =gUnk_02018EE0 + adds r0, r0, r4 + str r0, [sp, #0x10] + mov r1, sb + mov r0, r8 + muls r0, r1, r0 + str r0, [sp, #0x14] + movs r3, #0 +_0801E372: + adds r0, r3, #0 + mov r1, sl + str r3, [sp, #0x18] + bl Div + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #0x1c] + ldr r0, [sp, #0x14] + mov r1, sl + bl Div + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r6, #2 + ldr r4, _0801E3B4 @ =gUnk_02018EE0 + adds r1, r2, r4 + str r0, [r1] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x10] + str r0, [r1] + ldr r3, [sp, #0x18] + cmp r5, #0 + bge _0801E3B8 + adds r0, r5, #6 + adds r5, r0, r2 + b _0801E3D2 + .align 2, 0 +_0801E3AC: .4byte gUnk_03003DE4 +_0801E3B0: .4byte gUnk_02017AA0 +_0801E3B4: .4byte gUnk_02018EE0 +_0801E3B8: + adds r1, r5, #0 + adds r1, #0xa + subs r0, r6, r7 + lsls r0, r0, #2 + adds r5, r1, r0 + ldr r4, [sp, #0x10] + subs r4, #4 + str r4, [sp, #0x10] + ldr r0, [sp, #0x14] + mov r1, sb + subs r0, r0, r1 + str r0, [sp, #0x14] + subs r7, #1 +_0801E3D2: + add r3, sb + adds r6, #1 + cmp r6, r7 + ble _0801E372 + b _0801E45E +_0801E3DC: + movs r6, #0 + mov r8, sb + mov r7, r8 + mov r4, r8 + lsls r1, r4, #1 + movs r0, #3 + subs r5, r0, r1 + cmp r6, r8 + bgt _0801E45E + lsls r0, r4, #2 + ldr r1, _0801E438 @ =gUnk_02018EE0 + adds r0, r0, r1 + str r0, [sp, #8] + mov r0, sl + mov r4, r8 + muls r4, r0, r4 + str r4, [sp, #0xc] + movs r3, #0 +_0801E400: + adds r0, r3, #0 + mov r1, sb + str r3, [sp, #0x18] + bl Div + adds r4, r0, #0 + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + str r4, [sp, #0x1c] + ldr r0, [sp, #0xc] + mov r1, sb + bl Div + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r2, r6, #2 + ldr r4, _0801E438 @ =gUnk_02018EE0 + adds r1, r2, r4 + str r0, [r1] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #8] + str r0, [r1] + ldr r3, [sp, #0x18] + cmp r5, #0 + bge _0801E43C + adds r0, r5, #6 + adds r5, r0, r2 + b _0801E456 + .align 2, 0 +_0801E438: .4byte gUnk_02018EE0 +_0801E43C: + adds r1, r5, #0 + adds r1, #0xa + subs r0, r6, r7 + lsls r0, r0, #2 + adds r5, r1, r0 + ldr r4, [sp, #8] + subs r4, #4 + str r4, [sp, #8] + ldr r0, [sp, #0xc] + mov r1, sl + subs r0, r0, r1 + str r0, [sp, #0xc] + subs r7, #1 +_0801E456: + add r3, sl + adds r6, #1 + cmp r6, r7 + ble _0801E400 +_0801E45E: + ldr r0, [sp] + ldr r1, [sp, #4] + mov r2, r8 + bl sub_0801E290 + ldr r0, _0801E48C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E490 @ =gUnk_02017AA0 + adds r0, r0, r1 + ldr r1, _0801E494 @ =0x04000040 + ldr r2, _0801E498 @ =0xA2600001 + bl sub_0805622C + add sp, #0x20 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E48C: .4byte gUnk_03003DE4 +_0801E490: .4byte gUnk_02017AA0 +_0801E494: .4byte 0x04000040 +_0801E498: .4byte 0xA2600001 + + thumb_func_start sub_0801E49C +sub_0801E49C: @ 0x0801E49C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + mov r8, r0 + str r1, [sp, #4] + mov sb, r2 + adds r5, r3, #0 + ldr r0, _0801E5E4 @ =0x0000FFFF + movs r2, #0xf0 + lsls r2, r2, #3 + ldr r1, _0801E5E8 @ =gUnk_02018EE0 + bl sub_0801D5EC + adds r3, r5, #0 + subs r3, #0x40 + movs r2, #0xff + ands r3, r2 + ldr r1, _0801E5EC @ =gUnk_080C9160 + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r4, #0 + ldrsh r0, [r0, r4] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + mov r4, r8 + adds r7, r4, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + ldr r3, [sp, #4] + adds r3, r3, r0 + mov sl, r3 + adds r3, r5, #0 + adds r3, #0x68 + ands r3, r2 + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r4, #0 + ldrsh r0, [r0, r4] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + mov r4, r8 + adds r6, r4, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r4, sb + muls r4, r0, r4 + adds r0, r4, #0 + asrs r0, r0, #8 + ldr r3, [sp, #4] + adds r4, r3, r0 + adds r3, r5, #0 + subs r3, #0xe8 + ands r3, r2 + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r2, sb + muls r2, r0, r2 + adds r0, r2, #0 + asrs r0, r0, #8 + mov r2, r8 + adds r5, r2, r0 + lsls r0, r3, #1 + adds r0, r0, r1 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r1, sb + muls r1, r0, r1 + adds r0, r1, #0 + asrs r0, r0, #8 + ldr r2, [sp, #4] + adds r2, r2, r0 + mov r8, r2 + movs r0, #0 + str r0, [sp] + adds r0, r7, #0 + mov r1, sl + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_0801E64C + movs r0, #1 + str r0, [sp] + adds r0, r7, #0 + mov r1, sl + adds r2, r5, #0 + mov r3, r8 + bl sub_0801E64C + movs r0, #2 + str r0, [sp] + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + mov r3, r8 + bl sub_0801E64C + ldr r5, _0801E5F0 @ =gUnk_03003DE4 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r6, _0801E5F4 @ =gUnk_02017AA0 + adds r0, r0, r6 + movs r1, #0xa0 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r2, _0801E5E8 @ =gUnk_02018EE0 + ldrb r1, [r5] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + adds r1, r0, r6 + movs r3, #0xa0 + mov sl, r3 +_0801E5B0: + ldr r7, [r2] + ldr r6, [r2, #4] + ldr r5, [r2, #8] + adds r2, #0xc + cmp r7, r6 + ble _0801E5C2 + adds r4, r7, #0 + adds r7, r6, #0 + adds r6, r4, #0 +_0801E5C2: + cmp r7, r5 + ble _0801E5CC + adds r4, r7, #0 + adds r7, r5, #0 + adds r5, r4, #0 +_0801E5CC: + cmp r6, r5 + ble _0801E5D6 + adds r4, r6, #0 + adds r6, r5, #0 + adds r5, r4, #0 +_0801E5D6: + movs r0, #1 + rsbs r0, r0, #0 + cmp r7, r0 + beq _0801E5F8 + strb r5, [r1] + strb r7, [r1, #1] + b _0801E60A + .align 2, 0 +_0801E5E4: .4byte 0x0000FFFF +_0801E5E8: .4byte gUnk_02018EE0 +_0801E5EC: .4byte gUnk_080C9160 +_0801E5F0: .4byte gUnk_03003DE4 +_0801E5F4: .4byte gUnk_02017AA0 +_0801E5F8: + cmp r6, r7 + beq _0801E602 + strb r5, [r1] + strb r6, [r1, #1] + b _0801E60A +_0801E602: + cmp r5, r7 + beq _0801E60A + strb r7, [r1, #1] + strb r7, [r1] +_0801E60A: + movs r4, #1 + rsbs r4, r4, #0 + add sl, r4 + adds r1, #2 + mov r0, sl + cmp r0, #0 + bgt _0801E5B0 + ldr r0, _0801E63C @ =gUnk_03003DE4 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #9 + ldr r1, _0801E640 @ =gUnk_02017AA0 + adds r0, r0, r1 + ldr r1, _0801E644 @ =0x04000040 + ldr r2, _0801E648 @ =0xA2600001 + bl sub_0805622C + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E63C: .4byte gUnk_03003DE4 +_0801E640: .4byte gUnk_02017AA0 +_0801E644: .4byte 0x04000040 +_0801E648: .4byte 0xA2600001 + + thumb_func_start sub_0801E64C +sub_0801E64C: @ 0x0801E64C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r3, #0 + ldr r7, _0801E6C4 @ =gUnk_02018EE0 + cmp r4, #0 + bge _0801E65E + cmp r6, #0 + blt _0801E6C2 +_0801E65E: + cmp r4, #0x9f + ble _0801E666 + cmp r6, #0x9f + bgt _0801E6C2 +_0801E666: + cmp r4, r6 + ble _0801E676 + adds r1, r4, #0 + adds r4, r6, #0 + adds r6, r1, #0 + adds r1, r5, #0 + adds r5, r2, #0 + adds r2, r1, #0 +_0801E676: + cmp r4, r6 + beq _0801E6C2 + subs r0, r2, r5 + lsls r0, r0, #0x10 + subs r1, r6, r4 + bl Div + adds r3, r0, #0 + cmp r4, #0 + bge _0801E694 + rsbs r0, r4, #0 + muls r0, r3, r0 + asrs r0, r0, #0x10 + adds r5, r5, r0 + movs r4, #0 +_0801E694: + cmp r6, #0x9f + ble _0801E69A + movs r6, #0x9f +_0801E69A: + lsls r2, r5, #0x10 + lsls r0, r4, #1 + adds r0, r0, r4 + ldr r1, [sp, #0x14] + adds r0, r0, r1 + lsls r0, r0, #2 + adds r7, r0, r7 +_0801E6A8: + cmp r5, #0 + bge _0801E6AE + movs r5, #0 +_0801E6AE: + cmp r5, #0xf0 + ble _0801E6B4 + movs r5, #0xf0 +_0801E6B4: + str r5, [r7] + adds r2, r2, r3 + asrs r5, r2, #0x10 + adds r4, #1 + adds r7, #0xc + cmp r4, r6 + ble _0801E6A8 +_0801E6C2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E6C4: .4byte gUnk_02018EE0 + + thumb_func_start sub_0801E6C8 +sub_0801E6C8: @ 0x0801E6C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + subs r0, r4, #1 + cmp r0, #0x63 + bhi _0801E722 + movs r1, #0 + ldr r5, _0801E724 @ =gUnk_02022740 + ldr r3, _0801E728 @ =gUnk_02002C01 + movs r2, #0xf1 +_0801E6DA: + adds r0, r1, r3 + ldrb r6, [r0] + cmp r4, r6 + bne _0801E6E4 + strb r2, [r0] +_0801E6E4: + adds r1, #1 + cmp r1, #0x7f + bls _0801E6DA + ldr r0, [r5, #0xc] + bl sub_08002632 + adds r1, r0, #0 + subs r0, r1, #1 + cmp r0, #0x7e + bhi _0801E70A + ldr r0, _0801E72C @ =gUnk_02002A40 + ldr r2, _0801E730 @ =0x000001C1 + adds r0, r0, r2 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xf1 + bne _0801E70A + movs r0, #0xf2 + strb r0, [r1] +_0801E70A: + movs r1, #0 + ldr r0, _0801E734 @ =gUnk_03003DF0 + movs r2, #0xf1 + adds r0, #0xb +_0801E712: + ldrb r3, [r0] + cmp r4, r3 + bne _0801E71A + strb r2, [r0] +_0801E71A: + adds r0, #0xc + adds r1, #1 + cmp r1, #0x1f + bls _0801E712 +_0801E722: + pop {r4, r5, r6, pc} + .align 2, 0 +_0801E724: .4byte gUnk_02022740 +_0801E728: .4byte gUnk_02002C01 +_0801E72C: .4byte gUnk_02002A40 +_0801E730: .4byte 0x000001C1 +_0801E734: .4byte gUnk_03003DF0 + + thumb_func_start sub_0801E738 +sub_0801E738: @ 0x0801E738 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E82C + adds r0, r4, #0 + subs r0, #0x65 + cmp r0, #0x10 + bhi _0801E790 + adds r0, r4, #0 + bl sub_0801E8B0 + adds r1, r0, #0 + cmp r1, #0 + bge _0801E76E + movs r1, #0 + ldr r0, _0801E794 @ =gUnk_02002A40 + movs r3, #0x8c + lsls r3, r3, #1 + adds r2, r0, r3 + ldrb r0, [r2] + cmp r0, #0 + beq _0801E76E +_0801E764: + adds r1, #1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + bne _0801E764 +_0801E76E: + cmp r1, #0x11 + bhi _0801E790 + ldr r2, _0801E794 @ =gUnk_02002A40 + movs r3, #0x8c + lsls r3, r3, #1 + adds r0, r2, r3 + adds r0, r1, r0 + strb r4, [r0] + adds r3, #0x13 + adds r0, r2, r3 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, #1 + cmp r0, #0x63 + ble _0801E78E + movs r0, #0x63 +_0801E78E: + strb r0, [r1] +_0801E790: + pop {r4, pc} + .align 2, 0 +_0801E794: .4byte gUnk_02002A40 + + thumb_func_start sub_0801E798 +sub_0801E798: @ 0x0801E798 + push {r4, lr} + bl sub_0801E8B0 + adds r1, r0, #0 + cmp r1, #0 + blt _0801E7C4 + ldr r2, _0801E7C8 @ =gUnk_02002A40 + ldr r3, _0801E7CC @ =0x0000012B + adds r0, r2, r3 + adds r3, r1, r0 + ldrb r0, [r3] + subs r0, #1 + cmp r0, #0 + bgt _0801E7C2 + movs r4, #0x8c + lsls r4, r4, #1 + adds r0, r2, r4 + adds r0, r1, r0 + movs r1, #0 + strb r1, [r0] + movs r0, #0 +_0801E7C2: + strb r0, [r3] +_0801E7C4: + pop {r4, pc} + .align 2, 0 +_0801E7C8: .4byte gUnk_02002A40 +_0801E7CC: .4byte 0x0000012B + + thumb_func_start sub_0801E7D0 +sub_0801E7D0: @ 0x0801E7D0 + push {lr} + bl sub_0801E8B0 + adds r1, r0, #0 + cmp r1, #0 + blt _0801E7F0 + ldr r0, _0801E7E8 @ =gUnk_02002A40 + ldr r2, _0801E7EC @ =0x0000012B + adds r0, r0, r2 + adds r0, r1, r0 + ldrb r0, [r0] + b _0801E7F2 + .align 2, 0 +_0801E7E8: .4byte gUnk_02002A40 +_0801E7EC: .4byte 0x0000012B +_0801E7F0: + movs r0, #0 +_0801E7F2: + pop {pc} + + thumb_func_start sub_0801E7F4 +sub_0801E7F4: @ 0x0801E7F4 + push {lr} + adds r1, r0, #0 + subs r0, r1, #1 + cmp r0, #0x63 + bhi _0801E80C + ldr r0, _0801E808 @ =gUnk_02002C81 + bl sub_0801D5A8 + b _0801E80E + .align 2, 0 +_0801E808: .4byte gUnk_02002C81 +_0801E80C: + movs r0, #0 +_0801E80E: + pop {pc} + + thumb_func_start sub_0801E810 +sub_0801E810: @ 0x0801E810 + push {lr} + adds r1, r0, #0 + subs r0, r1, #1 + cmp r0, #0x63 + bhi _0801E828 + ldr r0, _0801E824 @ =gUnk_02002C8E + bl sub_0801D5A8 + b _0801E82A + .align 2, 0 +_0801E824: .4byte gUnk_02002C8E +_0801E828: + movs r0, #0 +_0801E82A: + pop {pc} + + thumb_func_start sub_0801E82C +sub_0801E82C: @ 0x0801E82C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r1, _0801E8AC @ =gUnk_02002B54 + movs r5, #0 + adds r2, r1, #4 +_0801E83C: + ldrb r0, [r2, #0x13] + adds r3, r1, #4 + mov sl, r3 + cmp r0, #0 + bne _0801E848 + strb r0, [r2] +_0801E848: + adds r2, #1 + adds r5, #1 + cmp r5, #0x12 + bls _0801E83C + movs r0, #0 + strb r0, [r1, #0x16] + adds r2, r1, #0 + adds r2, #0x29 + strb r0, [r2] + movs r5, #0 + movs r0, #0x17 + adds r0, r0, r1 + mov sb, r0 + movs r3, #0x18 + adds r3, r3, r1 + mov r8, r3 + adds r7, r1, #4 + adds r6, r1, #5 +_0801E86C: + mov r1, sl + adds r0, r1, r5 + ldrb r0, [r0] + subs r0, #0x65 + cmp r0, #0x10 + bls _0801E890 + movs r4, #0x12 + subs r4, r4, r5 + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r4, #0 + bl sub_0801D66C + mov r0, r8 + mov r1, sb + adds r2, r4, #0 + bl sub_0801D66C +_0801E890: + movs r3, #1 + add sb, r3 + add r8, r3 + adds r7, #1 + adds r6, #1 + adds r5, #1 + cmp r5, #0x11 + bls _0801E86C + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0801E8AC: .4byte gUnk_02002B54 + + thumb_func_start sub_0801E8B0 +sub_0801E8B0: @ 0x0801E8B0 + push {lr} + adds r2, r0, #0 + movs r1, #0 + ldr r3, _0801E8C4 @ =gUnk_02002B58 +_0801E8B8: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r2, r0 + bne _0801E8C8 + adds r0, r1, #0 + b _0801E8D2 + .align 2, 0 +_0801E8C4: .4byte gUnk_02002B58 +_0801E8C8: + adds r1, #1 + cmp r1, #0x11 + bls _0801E8B8 + movs r0, #1 + rsbs r0, r0, #0 +_0801E8D2: + pop {pc} + + thumb_func_start sub_0801E8D4 +sub_0801E8D4: @ 0x0801E8D4 + push {r4, r5, lr} + movs r5, #0xa +_0801E8D8: + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _0801E990 + adds r0, r5, #0 + bl sub_0801E810 + cmp r0, #0 + bne _0801E990 + ldr r1, _0801E910 @ =gUnk_080C9CBC + lsls r0, r5, #3 + adds r0, r0, r1 + ldrb r1, [r0, #4] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0801E914 @ =gUnk_080FE320 + adds r2, r0, r1 + ldrh r3, [r2, #0x12] + ldrb r0, [r2, #0x10] + cmp r0, #0xa + bhi _0801E97C + lsls r0, r0, #2 + ldr r1, _0801E918 @ =_0801E91C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801E910: .4byte gUnk_080C9CBC +_0801E914: .4byte gUnk_080FE320 +_0801E918: .4byte _0801E91C +_0801E91C: @ jump table + .4byte _0801E948 @ case 0 + .4byte _0801E94C @ case 1 + .4byte _0801E950 @ case 2 + .4byte _0801E954 @ case 3 + .4byte _0801E958 @ case 4 + .4byte _0801E95C @ case 5 + .4byte _0801E962 @ case 6 + .4byte _0801E968 @ case 7 + .4byte _0801E96E @ case 8 + .4byte _0801E972 @ case 9 + .4byte _0801E978 @ case 10 +_0801E948: + movs r4, #0 + b _0801E97C +_0801E94C: + ldrb r4, [r2, #0x11] + b _0801E97C +_0801E950: + movs r4, #0xf + b _0801E97C +_0801E954: + movs r4, #0x10 + b _0801E97C +_0801E958: + movs r4, #0x11 + b _0801E97C +_0801E95C: + movs r4, #4 + movs r3, #0x83 + b _0801E97C +_0801E962: + movs r4, #4 + movs r3, #0x84 + b _0801E97C +_0801E968: + movs r4, #4 + movs r3, #0x87 + b _0801E97C +_0801E96E: + movs r4, #4 + b _0801E97A +_0801E972: + movs r4, #4 + movs r3, #0x8b + b _0801E97C +_0801E978: + movs r4, #5 +_0801E97A: + movs r3, #0x88 +_0801E97C: + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0807CB24 + cmp r0, #0 + beq _0801E990 + ldr r0, _0801E998 @ =gUnk_02002C8E + adds r1, r5, #0 + bl sub_0801D5BC +_0801E990: + adds r5, #1 + cmp r5, #0x64 + bls _0801E8D8 + pop {r4, r5, pc} + .align 2, 0 +_0801E998: .4byte gUnk_02002C8E + + thumb_func_start sub_0801E99C +sub_0801E99C: @ 0x0801E99C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_08002632 + mov r8, r0 + ldr r1, _0801E9E4 @ =gUnk_08001DCC + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r7, [r0] + movs r0, #0x67 + bl GetInventoryValue + cmp r0, #0 + beq _0801EA56 + ldr r1, _0801E9E8 @ =gUnk_02002A40 + ldrb r0, [r7] + ldrb r2, [r1, #8] + cmp r0, r2 + bhi _0801EA56 + ldr r2, _0801E9EC @ =0x000001C1 + adds r0, r1, r2 + add r0, r8 + ldrb r5, [r0] + subs r2, #0x80 + adds r0, r1, r2 + add r0, r8 + ldrb r6, [r0] + adds r4, r6, r7 +_0801E9D6: + cmp r5, #0xf1 + beq _0801E9F6 + cmp r5, #0xf1 + bhi _0801E9F0 + cmp r5, #0 + beq _0801E9F6 + b _0801EA10 + .align 2, 0 +_0801E9E4: .4byte gUnk_08001DCC +_0801E9E8: .4byte gUnk_02002A40 +_0801E9EC: .4byte 0x000001C1 +_0801E9F0: + cmp r5, #0xf2 + beq _0801EA0A + b _0801EA10 +_0801E9F6: + ldrb r5, [r4, #5] + cmp r5, #0 + beq _0801EA10 + cmp r5, #0xff + beq _0801EA14 + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _0801EA10 +_0801EA0A: + adds r4, #1 + adds r6, #1 + ldrb r5, [r4, #5] +_0801EA10: + cmp r5, #0xff + bne _0801EA1C +_0801EA14: + adds r0, r7, #0 + bl sub_0801EA74 + adds r5, r0, #0 +_0801EA1C: + cmp r5, #0 + beq _0801EA32 + cmp r5, #0xf2 + beq _0801E9D6 + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _0801EA34 + movs r5, #0xf1 + b _0801E9D6 +_0801EA32: + movs r5, #0xf3 +_0801EA34: + ldr r1, _0801EA5C @ =gUnk_02002A40 + ldr r2, _0801EA60 @ =0x000001C1 + adds r0, r1, r2 + add r0, r8 + strb r5, [r0] + subs r2, #0x80 + adds r0, r1, r2 + add r0, r8 + strb r6, [r0] + bl sub_08000E50 + ldrb r4, [r7, #1] + movs r1, #0x64 + bl __modsi3 + cmp r4, r0 + bhi _0801EA64 +_0801EA56: + movs r0, #0 + b _0801EA6E + .align 2, 0 +_0801EA5C: .4byte gUnk_02002A40 +_0801EA60: .4byte 0x000001C1 +_0801EA64: + subs r0, r5, #1 + cmp r0, #0x63 + bls _0801EA6C + movs r5, #0 +_0801EA6C: + adds r0, r5, #0 +_0801EA6E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0801EA74 +sub_0801EA74: @ 0x0801EA74 + push {r4, r5, r6, lr} + bl sub_08000E50 + movs r1, #0x12 + bl __modsi3 + adds r5, r0, #0 + movs r6, #0 +_0801EA84: + ldr r0, _0801EA98 @ =gUnk_080CA11C + adds r0, r5, r0 + ldrb r4, [r0] + adds r0, r4, #0 + bl sub_0801E7F4 + cmp r0, #0 + bne _0801EA9C + adds r0, r4, #0 + b _0801EAAE + .align 2, 0 +_0801EA98: .4byte gUnk_080CA11C +_0801EA9C: + adds r0, r5, #1 + movs r1, #0x12 + bl __modsi3 + adds r5, r0, #0 + adds r6, #1 + cmp r6, #0x11 + bls _0801EA84 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08000E50 + b _0801EDD0 +_0801ED4C: + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801ED78 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + 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 sub_08000E50 + 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 sub_08000E50 + b _0801EDD0 +_0801ED9A: + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0801EDC4 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + b _0801EFC4 +_0801EFB0: + adds r0, r4, #0 + bl sub_0804AA1C + str r6, [r4, #0x20] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 +_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 sub_08004260 + 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 sub_08004260 +_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 sub_08000E50 + ands r0, r4 + adds r0, #0xc + strb r0, [r5, #0xe] + bl sub_08000E50 + 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 sub_08004260 +_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 sub_08000E50 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_08004260 + 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 sub_08004260 + 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 sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0xb4 + strb r0, [r4, #0xe] + bl sub_08000E50 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_08000E50 + 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 sub_08004260 +_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 sub_08004260 +_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 sub_08000E50 + 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 sub_08004260 +_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 sub_08004260 +_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 sub_08004260 +_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 sub_08004260 +_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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_08000E50 + 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 sub_08004260 +_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 sub_08004260 +_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 sub_08004260 +_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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08004260 + adds r0, r5, #0 + bl sub_08016A04 + b _0801FD28 + .align 2, 0 +_0801FD14: .4byte gUnk_020000B0 +_0801FD18: .4byte gUnk_080CA4C8 +_0801FD1C: + bl sub_08000E50 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_0806FA24 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_08000E50 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x12 + strb r0, [r4, #0x1c] + bl sub_08000E50 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0802020C + bl sub_08000E50 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08004260 +_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 sub_08000E50 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08004260 + 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 sub_08000E50 + movs r1, #0x10 + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08004260 +_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 sub_08004260 +_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 sub_08004260 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08004260 +_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 sub_08004260 + 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 sub_08004260 +_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 sub_08004260 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08004260 + 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 @ =gUnk_03000BF0 + 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 sub_08004260 + ldr r0, _08020B64 @ =0x00004034 + ldrb r2, [r6] + adds r1, r5, #0 + bl sub_0800015E + movs r0, #1 + b _08020B6A + .align 2, 0 +_08020B5C: .4byte gUnk_03000BF0 +_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 sub_080042AC +_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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08000E50 + 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 @ =gUnk_03003F80 + 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 gUnk_03003F80 +_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 sub_08004260 + 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 sub_08004260 +_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 sub_08004260 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08004260 +_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 sub_08004260 + adds r0, r4, #0 + bl sub_08016A04 +_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 sub_08000E50 + 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 sub_08004260 +_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 sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 +_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 @ =gUnk_03003F80 + 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 sub_08004260 + b _08021C4E + .align 2, 0 +_08021B88: .4byte gUnk_03003F80 +_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 sub_08004260 + 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 sub_08004260 +_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 sub_08004260 +_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 sub_08004260 + 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 sub_08000E50 + 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 sub_08016A04 + 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 sub_08000E50 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08004260 + b _08021FA4 + .align 2, 0 +_08021F7C: .4byte gLinkEntity +_08021F80: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08021F94 + bl sub_08000E50 + 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 sub_08004260 +_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 sub_0800015E + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 +_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 @ =gUnk_03000BF0 + 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 sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08022220: .4byte gUnk_03000BF0 +_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 @ =gUnk_03003F80 + 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 gUnk_03003F80 +_08022344: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x94 + beq _08022356 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_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 sub_08000E50 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_08004260 + 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 sub_08004260 + movs r0, #0xca + lsls r0, r0, #1 + bl sub_08004488 + b _0802258E +_08022582: + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_080A3268 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_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 sub_08004260 + movs r0, #0x7d + bl sub_08004488 + adds r0, r4, #0 + bl sub_08016A04 +_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 sub_08004260 +_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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08004260 +_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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_08000E50 + 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 sub_08000E50 + 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 sub_0806FA24 + 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 sub_0806FA24 + 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 sub_0806FA24 + 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 sub_08000E50 + 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 sub_08000E50 + 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 sub_080042AC +_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 sub_0806FA24 + 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 @ =gUnk_03003F80 + 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 gUnk_03003F80 +_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 sub_08000E50 + 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 sub_08004260 +_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 sub_08000E50 + 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 sub_08000E50 + 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 sub_0806FA24 + 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 sub_08004260 +_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 sub_08000E50 + 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 sub_08004260 + ldrb r1, [r7, #0x14] + adds r0, r7, #0 + bl sub_08004260 +_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 @ =gUnk_03003F80 + 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 gUnk_03003F80 +_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 sub_08004260 + 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 sub_08004260 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_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 sub_08004260 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _08023900 + ldr r2, _08023904 @ =gUnk_03003F80 + 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 gUnk_03003F80 +_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 sub_08016A04 + adds r0, r5, #0 + movs r1, #0x16 + bl sub_08004260 + ldr r4, [r5, #0x54] +_080239D4: + adds r0, r4, #0 + bl sub_080239F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 + 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 sub_08004260 +_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 sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + strb r0, [r4, #0xe] + bl sub_08000E50 + 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 sub_08004260 + 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 sub_08000E50 + 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 sub_08004260 +_08023CDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08023CE0 +sub_08023CE0: @ 0x08023CE0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08023D48 + cmp r0, #1 + bgt _08023CF4 + cmp r0, #0 + beq _08023CFA + b _08023DC0 +_08023CF4: + cmp r0, #2 + beq _08023D6E + b _08023DC0 +_08023CFA: + adds r0, r4, #0 + bl sub_0804A720 + ldrb r1, [r4, #0xb] + cmp r1, #1 + bne _08023D1C + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08023D12 + strb r1, [r4, #0xe] +_08023D12: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08023D20 +_08023D1C: + movs r0, #1 + strb r0, [r4, #0xc] +_08023D20: + ldr r0, _08023D44 @ =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] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _08023E0A + .align 2, 0 +_08023D44: .4byte 0x0000FF80 +_08023D48: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x20 + bl sub_08049F64 + cmp r0, #0 + beq _08023E0A + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08023D64 + movs r0, #8 + strb r0, [r4, #0xe] +_08023D64: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + b _08023E0A +_08023D6E: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08023D94 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08023E0A + ldr r0, _08023D90 @ =0x0000012D + bl sub_08004488 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _08023E0A + .align 2, 0 +_08023D90: .4byte 0x0000012D +_08023D94: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08023E0A + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x84 + bl sub_08004488 + adds r0, r4, #0 + bl sub_08016A04 + b _08023E0A +_08023DC0: + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + cmp r1, #0 + beq _08023E0A + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08023DF2 + movs r0, #0x10 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _08023E0A + adds r0, r4, #0 + bl sub_0804A4E4 + bl sub_0805E780 + b _08023E0A +_08023DF2: + ldr r1, _08023E0C @ =gUnk_080CBDF4 + ldrb r0, [r2] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r4, #0x32] + strb r1, [r2] +_08023E0A: + pop {r4, pc} + .align 2, 0 +_08023E0C: .4byte gUnk_080CBDF4 + + thumb_func_start sub_08023E10 +sub_08023E10: @ 0x08023E10 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08023E36 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #9 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_08023E36: + 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 _08023E50 + adds r0, r4, #0 + bl sub_0805E7BC +_08023E50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08023E54 +sub_08023E54: @ 0x08023E54 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1b + bls _08023E94 + movs r0, #0 + strb r0, [r4, #0xf] + movs r0, #0x10 + movs r1, #2 + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _08023E94 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + ldr r1, _08023E98 @ =gUnk_080CBDF7 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative +_08023E94: + pop {r4, r5, pc} + .align 2, 0 +_08023E98: .4byte gUnk_080CBDF7 + + thumb_func_start sub_08023E9C +sub_08023E9C: @ 0x08023E9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + adds r6, r0, #0 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08023EC2 + movs r0, #1 + ands r0, r6 + cmp r0, #0 + beq _08023EC2 + adds r0, r5, #0 + bl sub_08049EE4 + adds r0, #4 + b _08023F1C +_08023EC2: + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08023F0A + movs r0, #6 + ands r0, r6 + cmp r0, #0 + beq _08023F0A + ldr r0, _08023F00 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r5, #0 + bl sub_080045C4 + ldrb r2, [r5, #0x15] + subs r1, r0, r2 + cmp r1, #0 + beq _08023F22 + adds r0, r1, #4 + movs r3, #0x1f + ands r0, r3 + cmp r0, #8 + bls _08023F22 + ands r1, r3 + cmp r1, #0xf + bhi _08023F04 + adds r0, r2, #0 + adds r0, #8 + b _08023F1C + .align 2, 0 +_08023F00: .4byte gUnk_020000B0 +_08023F04: + adds r0, r2, #0 + subs r0, #8 + b _08023F1C +_08023F0A: + ldr r4, _08023F24 @ =gUnk_080CBDFF + lsrs r0, r6, #4 + movs r1, #3 + bl __modsi3 + adds r0, r0, r4 + ldrb r0, [r0] + ldrb r1, [r5, #0x15] + adds r0, r0, r1 +_08023F1C: + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_08023F22: + pop {r4, r5, r6, pc} + .align 2, 0 +_08023F24: .4byte gUnk_080CBDFF + + thumb_func_start sub_08023F28 +sub_08023F28: @ 0x08023F28 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08023F40 @ =gUnk_080CBEC4 + 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 +_08023F40: .4byte gUnk_080CBEC4 + + thumb_func_start sub_08023F44 +sub_08023F44: @ 0x08023F44 + push {lr} + ldr r2, _08023F58 @ =gUnk_080CBEDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08023F58: .4byte gUnk_080CBEDC + + thumb_func_start sub_08023F5C +sub_08023F5C: @ 0x08023F5C + push {r4, lr} + mov ip, r0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x6e + beq _08023FC8 + mov r0, ip + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _08023FD0 + mov r1, ip + adds r1, #0x86 + movs r0, #0x30 + strb r0, [r1] + mov r2, ip + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + adds r4, r2, #0 + cmp r0, #3 + bne _08023FD0 + mov r1, ip + ldrb r0, [r1, #0xc] + cmp r0, #6 + bne _08023FD0 + subs r2, #3 + ldrb r0, [r2] + cmp r0, #1 + beq _08023FA0 + cmp r0, #2 + beq _08023FB8 + b _08023FD0 +_08023FA0: + movs r0, #0 + ldr r1, _08023FC4 @ =0x0000FFF0 + mov r3, ip + strh r1, [r3, #0x36] + adds r3, #0x82 + strb r0, [r3] + mov r0, ip + adds r0, #0x78 + strh r1, [r0] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] +_08023FB8: + ldrb r1, [r4] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4] + b _08023FD0 + .align 2, 0 +_08023FC4: .4byte 0x0000FFF0 +_08023FC8: + mov r1, ip + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_08023FD0: + ldr r1, _08023FDC @ =gUnk_080CBEC4 + mov r0, ip + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08023FDC: .4byte gUnk_080CBEC4 + + thumb_func_start sub_08023FE0 +sub_08023FE0: @ 0x08023FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_08023FE8 +sub_08023FE8: @ 0x08023FE8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08023FF0 +sub_08023FF0: @ 0x08023FF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _08024022 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _08024022 + movs r2, #1 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x77 + strb r0, [r1] + strb r2, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + b _08024032 +_08024022: + ldr r0, _08024034 @ =gUnk_080CBEF8 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08024032: + pop {r4, pc} + .align 2, 0 +_08024034: .4byte gUnk_080CBEF8 + + thumb_func_start sub_08024038 +sub_08024038: @ 0x08024038 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08024048 +sub_08024048: @ 0x08024048 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F4E8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08024058 +sub_08024058: @ 0x08024058 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_08024060 +sub_08024060: @ 0x08024060 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x3f + ldrb r0, [r2] + cmp r0, #0x6e + beq _0802408C + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + movs r0, #0x6e + strb r0, [r2] + ldr r0, _08024094 @ =gLinkEntity + ldrb r1, [r0, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] +_0802408C: + adds r0, r3, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 +_08024094: .4byte gLinkEntity + + thumb_func_start nullsub_138 +nullsub_138: @ 0x08024098 + bx lr + .align 2, 0 + + thumb_func_start sub_0802409C +sub_0802409C: @ 0x0802409C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC + pop {r4, pc} + + thumb_func_start sub_080240B8 +sub_080240B8: @ 0x080240B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0xc0 + ands r1, r0 + lsrs r7, r1, #3 + adds r0, r4, #0 + bl sub_0804A720 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #8 + ands r0, r7 + cmp r0, #0 + beq _080240FC + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r7 + cmp r0, #0 + beq _080240F4 + adds r0, r1, #0 + subs r0, #0x20 + b _080240F8 +_080240F4: + adds r0, r1, #0 + adds r0, #0x20 +_080240F8: + strh r0, [r4, #0x32] + b _08024114 +_080240FC: + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x10 + ands r0, r7 + cmp r0, #0 + beq _0802410E + adds r0, r1, #0 + subs r0, #0x20 + b _08024112 +_0802410E: + adds r0, r1, #0 + adds r0, #0x20 +_08024112: + strh r0, [r4, #0x2e] +_08024114: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08024120 + cmp r0, #1 + beq _0802412C + b _08024136 +_08024120: + adds r1, r4, #0 + adds r1, #0x78 + ldr r0, _08024128 @ =0x0000FFF0 + b _08024132 + .align 2, 0 +_08024128: .4byte 0x0000FFF0 +_0802412C: + adds r1, r4, #0 + adds r1, #0x78 + ldr r0, _080241BC @ =0x0000FFD0 +_08024132: + strh r0, [r1] + strh r0, [r4, #0x36] +_08024136: + adds r0, r4, #0 + bl sub_08016A04 + bl sub_08052660 + cmp r0, #0 + beq _08024150 + ldrb r0, [r4, #0x1b] + movs r1, #0x3f + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r4, #0x1b] +_08024150: + bl sub_08000E50 + movs r1, #0x40 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x81 + movs r6, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x82 + strb r6, [r0] + adds r5, r4, #0 + adds r5, #0x83 + movs r0, #0x80 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x86 + strb r6, [r0] + adds r0, #1 + strb r6, [r0] + strb r6, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0x1c] + strb r7, [r4, #0x15] + adds r0, r4, #0 + bl sub_080249DC + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _080241B8 + strb r6, [r5] + ldrb r2, [r5] + adds r0, r4, #0 + movs r1, #6 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _080241B8 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrh r0, [r1, #0x32] + adds r0, #0x10 + strh r0, [r1, #0x32] +_080241B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080241BC: .4byte 0x0000FFD0 + + thumb_func_start sub_080241C0 +sub_080241C0: @ 0x080241C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r6, r4, #0 + adds r6, #0x80 + ldrb r5, [r6] + cmp r5, #0 + beq _080241D8 + cmp r5, #1 + beq _08024238 + b _08024296 +_080241D8: + ldr r0, _08024218 @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + movs r2, #0x40 + cmp r0, #0 + beq _080241E4 + movs r2, #0xa0 +_080241E4: + adds r0, r4, #0 + movs r1, #3 + bl sub_08049F64 + cmp r0, #0 + beq _08024220 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + beq _08024220 + ldr r0, _0802421C @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x1e + beq _08024220 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + strh r5, [r4, #0x24] + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_08024A14 + b _08024296 + .align 2, 0 +_08024218: .4byte gUnk_03003F80 +_0802421C: .4byte gLinkEntity +_08024220: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024296 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x20 + bl sub_08024A14 + b _08024296 +_08024238: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024296 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08024290 + adds r5, r4, #0 + adds r5, #0x83 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802426C + adds r0, r4, #0 + bl sub_08024C94 + ldrb r0, [r5] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r5] + b _08024296 +_0802426C: + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r6] + movs r0, #0xa + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_08024E00 + adds r0, r4, #0 + bl sub_08024E1C + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #3 + bl sub_08024A14 + b _08024296 +_08024290: + adds r0, r4, #0 + bl sub_08024C94 +_08024296: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08024298 +sub_08024298: @ 0x08024298 + push {lr} + bl sub_08024D00 + pop {pc} + + thumb_func_start sub_080242A0 +sub_080242A0: @ 0x080242A0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r0, r4, #0 + bl sub_08024CC0 + cmp r0, #0 + beq _08024334 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080242F0 + ldr r0, _080242E4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_08024E00 + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _080242E8 + strh r5, [r4, #0x24] + b _08024306 + .align 2, 0 +_080242E4: .4byte gUnk_020000B0 +_080242E8: + adds r0, r4, #0 + bl sub_08024E1C + b _08024306 +_080242F0: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08024306 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_08024A14 +_08024306: + ldr r0, _08024338 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x20 + bl sub_08049F1C + cmp r0, #0 + beq _08024334 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + beq _08024334 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + strh r1, [r4, #0x24] +_08024334: + pop {r4, r5, pc} + .align 2, 0 +_08024338: .4byte gUnk_020000B0 + + thumb_func_start sub_0802433C +sub_0802433C: @ 0x0802433C + push {r4, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + cmp r0, #0 + beq _08024354 + cmp r0, #1 + beq _0802437A + b _080243B6 +_08024354: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080243B6 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08024E00 + b _080243B6 +_0802437A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080243A0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r2] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0xc0 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + b _080243B6 +_080243A0: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r3 + cmp r0, #0 + bne _080243B6 + adds r0, r4, #0 + movs r1, #2 + movs r2, #4 + bl sub_08024A14 +_080243B6: + pop {r4, pc} + + thumb_func_start sub_080243B8 +sub_080243B8: @ 0x080243B8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08024940 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #1 + beq _0802446A + cmp r0, #1 + bgt _080243D4 + cmp r0, #0 + beq _080243DA + b _080244E4 +_080243D4: + cmp r0, #2 + beq _08024486 + b _080244E4 +_080243DA: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024462 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _080243F2 + ldr r0, [r0, #4] + cmp r0, #0 + bne _08024406 +_080243F2: + movs r0, #2 + strb r0, [r5] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r1, #0x80 + strh r1, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + b _080244E4 +_08024406: + ldr r0, _08024434 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0xe + bl sub_08049F1C + cmp r0, #0 + beq _08024438 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, #0xe2 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x80 + strb r0, [r1] + ldr r1, [r4, #0x54] + movs r0, #2 + strb r0, [r1, #0xc] + b _080244E4 + .align 2, 0 +_08024434: .4byte gUnk_020000B0 +_08024438: + ldrb r0, [r4, #0xe] + subs r2, r0, #1 + strb r2, [r4, #0xe] + movs r1, #0xff + lsls r0, r2, #0x18 + cmp r0, #0 + beq _08024462 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080244E4 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x1e + adds r2, #1 + adds r0, r4, #0 + movs r1, #2 + bl sub_08024A14 + b _080244E4 +_08024462: + adds r0, r4, #0 + bl sub_08024C7C + b _080244E4 +_0802446A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080244E4 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _080244E4 +_08024486: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080244E4 + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r5] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08024B38 + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r2, #0x40 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080244D8 + movs r0, #0x3f + ands r0, r1 + cmp r0, #1 + beq _080244C4 + cmp r0, #3 + bne _080244C8 + movs r0, #4 + b _080244CA +_080244C4: + movs r0, #0x14 + b _080244CA +_080244C8: + movs r0, #0x30 +_080244CA: + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + movs r2, #8 + bl sub_08024A14 + b _080244E4 +_080244D8: + strb r2, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08024A14 +_080244E4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080244E8 +sub_080244E8: @ 0x080244E8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + bl sub_08024940 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #7 + bls _08024502 + b _08024924 +_08024502: + lsls r0, r0, #2 + ldr r1, _0802450C @ =_08024510 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802450C: .4byte _08024510 +_08024510: @ jump table + .4byte _08024530 @ case 0 + .4byte _080245A6 @ case 1 + .4byte _080245E4 @ case 2 + .4byte _080247F4 @ case 3 + .4byte _08024818 @ case 4 + .4byte _08024836 @ case 5 + .4byte _080248AE @ case 6 + .4byte _0802490A @ case 7 +_08024530: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024592 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _08024584 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r4, #0x32 + ldrsh r1, [r5, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #1 + bl sub_080002E0 + adds r2, r0, #0 + cmp r2, #0 + bne _08024588 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + strb r2, [r5, #0xf] + strh r2, [r5, #0x24] + b _08024924 + .align 2, 0 +_08024584: .4byte gUnk_03000BF0 +_08024588: + movs r0, #0x30 + strb r0, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xf] + b _08024924 +_08024592: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + beq _080245A0 + b _08024924 +_080245A0: + adds r0, r5, #0 + movs r1, #1 + b _08024902 +_080245A6: + ldrh r0, [r5, #0x36] + adds r0, #1 + strh r0, [r5, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r2, #0x10 + rsbs r2, r2, #0 + cmp r0, r2 + bge _080245BA + b _08024924 +_080245BA: + adds r1, r5, #0 + adds r1, #0x82 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x78 + strh r2, [r0] + adds r0, r5, #0 + bl sub_08024AD8 + cmp r0, #0 + beq _080245D4 + b _0802482A +_080245D4: + adds r0, r5, #0 + bl sub_08024C94 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + movs r1, #0x40 + b _080247EE +_080245E4: + adds r0, r5, #0 + bl sub_08024AD8 + cmp r0, #0 + bne _080245F0 + b _080247E0 +_080245F0: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802462C + movs r7, #0x24 + ldrsh r0, [r5, r7] + cmp r0, #0 + beq _0802460C + strh r1, [r5, #0x24] + b _08024612 +_0802460C: + adds r0, r5, #0 + bl sub_08024E1C +_08024612: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #0 + bl sub_08024E00 + adds r0, r5, #0 + bl sub_080249DC + b _08024642 +_0802462C: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08024642 + adds r0, r5, #0 + movs r1, #1 + movs r2, #8 + bl sub_08024A14 +_08024642: + adds r6, r5, #0 + adds r6, #0x83 + ldrb r1, [r6] + movs r0, #0x3f + mov sb, r0 + ands r0, r1 + cmp r0, #2 + beq _0802474C + cmp r0, #2 + bgt _0802465C + cmp r0, #1 + beq _080246E4 + b _08024924 +_0802465C: + cmp r0, #3 + beq _08024662 + b _08024924 +_08024662: + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08024670 + b _08024924 +_08024670: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + movs r0, #0x10 + strb r0, [r5, #0x15] + movs r4, #0 + strh r2, [r5, #0x24] + adds r0, r5, #0 + adds r0, #0x84 + strb r4, [r0] + adds r2, r5, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080249DC + ldr r2, _080246DC @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r5, #0 + adds r1, #0x85 + strb r0, [r1] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r2, _080246E0 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + adds r2, #0x26 + ldrb r0, [r2] + cmp r0, #0 + bne _080246D6 + b _08024924 +_080246D6: + strb r4, [r2] + b _08024924 + .align 2, 0 +_080246DC: .4byte gLinkEntity +_080246E0: .4byte gUnk_03003F80 +_080246E4: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + movs r2, #6 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + bne _080246F6 + b _08024924 +_080246F6: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6] + ldr r0, [r5, #0x54] + adds r1, r5, #0 + bl sub_0806FA24 + ldrh r0, [r5, #0x36] + subs r0, #0xe + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #0xe + strh r0, [r1] + ldrb r2, [r6] + adds r0, r5, #0 + movs r1, #6 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + bne _08024736 + b _08024924 +_08024736: + str r5, [r4, #0x50] + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + ldr r1, [r5, #0x54] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + str r4, [r5, #0x54] + b _08024924 +_0802474C: + ldr r1, [r5, #0x54] + adds r0, r5, #0 + movs r2, #6 + movs r3, #6 + bl sub_080041A0 + cmp r0, #0 + bne _0802475E + b _08024924 +_0802475E: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6] + ldr r4, [r5, #0x54] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _080247DC @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r7, sb + ands r1, r7 + movs r7, #0x32 + ldrsh r2, [r4, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sb + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r4, #0 + bl sub_0805E7BC + ldrh r0, [r5, #0x36] + subs r0, #0xe + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #0xe + strh r0, [r1] + ldrb r2, [r6] + adds r0, r5, #0 + movs r1, #6 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + bne _080247D0 + b _08024924 +_080247D0: + str r5, [r4, #0x50] + ldrh r0, [r4, #0x36] + adds r0, #0xe + strh r0, [r4, #0x36] + str r4, [r5, #0x54] + b _08024924 + .align 2, 0 +_080247DC: .4byte gUnk_03000BF0 +_080247E0: + adds r0, r5, #0 + bl sub_08024C94 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x40 +_080247EE: + orrs r0, r1 + strb r0, [r2] + b _08024924 +_080247F4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08024804 + b _08024924 +_08024804: + adds r0, r5, #0 + adds r0, #0x80 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + strb r2, [r5, #0xf] + strh r2, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x82 + b _0802482E +_08024818: + ldrh r0, [r5, #0x36] + subs r0, #2 + strh r0, [r5, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x3c + rsbs r1, r1, #0 + cmp r0, r1 + bge _08024924 +_0802482A: + adds r1, r5, #0 + adds r1, #0x80 +_0802482E: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _08024924 +_08024836: + ldrh r2, [r5, #0x36] + movs r4, #0x36 + ldrsh r1, [r5, r4] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0802484A + adds r0, r2, #1 + strh r0, [r5, #0x36] + b _08024924 +_0802484A: + adds r1, r5, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802485E + movs r0, #0 + strb r0, [r1] + subs r1, #0xa + ldr r0, _08024884 @ =0x0000FFD0 + strh r0, [r1] +_0802485E: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #1 + blt _080248A6 + cmp r0, #2 + ble _08024888 + cmp r0, #3 + bne _080248A6 + adds r0, r5, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0x2f + bls _08024924 + adds r0, r5, #0 + bl sub_08024F50 + b _08024924 + .align 2, 0 +_08024884: .4byte 0x0000FFD0 +_08024888: + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xc0 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_080249DC + b _08024924 +_080248A6: + adds r0, r5, #0 + bl sub_08024C7C + b _08024924 +_080248AE: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080248F2 + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080248E8 + movs r0, #0xc0 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x80 + strb r3, [r0] + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r5, #0x24] + strb r1, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #0 + b _08024902 +_080248E8: + movs r0, #0x40 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + b _08024924 +_080248F2: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08024924 + adds r0, r5, #0 + movs r1, #2 +_08024902: + movs r2, #8 + bl sub_08024A14 + b _08024924 +_0802490A: + ldr r0, _0802493C @ =gLinkEntity + movs r7, #0x36 + ldrsh r1, [r0, r7] + cmp r1, #0 + bne _08024924 + adds r0, r5, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08024B38 +_08024924: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #3 + bne _08024934 + adds r0, r5, #0 + bl sub_08024E4C +_08024934: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802493C: .4byte gLinkEntity + + thumb_func_start sub_08024940 +sub_08024940: @ 0x08024940 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0x70 + ands r5, r0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08024962 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_080249F4 +_08024962: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _0802497C + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x36] + cmp r5, #0 + beq _0802497C + adds r0, #2 + strh r0, [r4, #0x36] +_0802497C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0802498A + bl sub_08052660 + cmp r0, #0 + beq _080249CE +_0802498A: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080249A2 + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080249F4 +_080249A2: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080249BC + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, #0x18 + ands r0, r1 + strb r0, [r2] + b _080249CE +_080249BC: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2] +_080249CE: + adds r0, r4, #0 + bl sub_080AEFB4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_080249DC +sub_080249DC: @ 0x080249DC + push {lr} + ldrb r1, [r0, #0x15] + adds r1, #2 + movs r2, #0x1c + ands r1, r2 + lsrs r1, r1, #2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080249F4 +sub_080249F4: @ 0x080249F4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + adds r1, r0, #2 + movs r0, #0x1f + ands r1, r0 + lsrs r1, r1, #2 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _08024A12 + strb r1, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 +_08024A12: + pop {pc} + + thumb_func_start sub_08024A14 +sub_08024A14: @ 0x08024A14 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r7, r2, #0 + movs r6, #0 + cmp r5, #1 + beq _08024A40 + cmp r5, #1 + blo _08024A30 + cmp r5, #2 + beq _08024A5E + cmp r5, #3 + beq _08024A84 + b _08024A9E +_08024A30: + adds r0, r4, #0 + bl sub_08049EE4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C +_08024A40: + adds r0, r4, #0 + movs r1, #0 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C +_08024A5E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r0, _08024A80 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _08024A9C + .align 2, 0 +_08024A80: .4byte gUnk_020000B0 +_08024A84: + adds r0, r4, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024A9E + ldr r0, _08024AD4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_08024A9C: + movs r6, #1 +_08024A9E: + cmp r5, #0 + beq _08024ABA + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08024ABA + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _08024ABA + movs r6, #0 +_08024ABA: + cmp r6, #0 + bne _08024AC8 + adds r0, r4, #0 + movs r1, #0 + adds r2, r7, #0 + bl sub_08024A14 +_08024AC8: + adds r0, r4, #0 + bl sub_080249DC + strb r7, [r4, #0xf] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08024AD4: .4byte gUnk_020000B0 + + thumb_func_start sub_08024AD8 +sub_08024AD8: @ 0x08024AD8 + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x83 + ldrb r2, [r3] + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + bne _08024B2A + movs r1, #0 + movs r0, #0x3f + ands r0, r2 + cmp r0, #3 + bne _08024B12 + ldr r0, _08024B0C @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + cmp r0, #0 + bne _08024B10 + ldr r0, [r4, #0x54] + str r1, [r0, #0x50] + str r1, [r4, #0x54] + movs r0, #0xc0 + strb r0, [r3] + movs r0, #0 + b _08024B34 + .align 2, 0 +_08024B0C: .4byte gUnk_03003F80 +_08024B10: + movs r1, #1 +_08024B12: + adds r0, r4, #0 + bl sub_08024C48 + cmp r0, #0 + bne _08024B32 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + movs r0, #0 + b _08024B34 +_08024B2A: + adds r0, r4, #0 + bl sub_08024B38 + b _08024B34 +_08024B32: + movs r0, #1 +_08024B34: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08024B38 +sub_08024B38: @ 0x08024B38 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r7, #0 + ldr r0, _08024B5C @ =gUnk_03003F80 + ldrb r3, [r0, #0xf] + adds r2, r3, #0 + adds r1, r0, #0 + cmp r2, #0 + beq _08024BA0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #1 + bne _08024B62 + cmp r2, #3 + bls _08024B60 + subs r0, r3, #3 + strb r0, [r1, #0xf] + b _08024B62 + .align 2, 0 +_08024B5C: .4byte gUnk_03003F80 +_08024B60: + strb r7, [r1, #0xf] +_08024B62: + ldrb r0, [r1, #0xf] + cmp r0, #0 + beq _08024BA0 + adds r0, r5, #0 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + beq _08024C3C + ldr r4, _08024B9C @ =gUnk_020000B0 + ldr r1, [r4] + adds r0, r5, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024C3C + movs r7, #1 + ldr r0, [r4] + str r0, [r5, #0x54] + adds r2, r5, #0 + adds r2, #0x83 + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + movs r1, #0xbf + ands r0, r1 + strb r0, [r2] + b _08024C3C + .align 2, 0 +_08024B9C: .4byte gUnk_020000B0 +_08024BA0: + movs r0, #8 + movs r1, #2 + movs r2, #2 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08024BF0 + adds r6, r5, #0 + adds r6, #0x83 + b _08024BC4 +_08024BB6: + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + beq _08024BF0 +_08024BC4: + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _08024BB6 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08024BB6 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024BB6 + movs r7, #1 + str r4, [r5, #0x54] + ldrb r0, [r6] + movs r1, #1 + orrs r1, r0 + movs r0, #0xbf + ands r1, r0 + strb r1, [r6] +_08024BF0: + cmp r7, #0 + bne _08024C42 + movs r0, #6 + movs r1, #5 + movs r2, #6 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08024C3C + adds r6, r5, #0 + adds r6, #0x83 + b _08024C18 +_08024C0A: + adds r0, r4, #0 + movs r1, #6 + bl sub_0805EB64 + adds r4, r0, #0 + cmp r4, #0 + beq _08024C3C +_08024C18: + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08024C0A + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0xa0 + bl sub_08049F1C + cmp r0, #0 + beq _08024C0A + movs r7, #1 + str r4, [r5, #0x54] + ldrb r0, [r6] + movs r1, #2 + orrs r1, r0 + movs r0, #0xbf + ands r1, r0 + strb r1, [r6] +_08024C3C: + cmp r7, #0 + bne _08024C42 + str r7, [r5, #0x54] +_08024C42: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08024C48 +sub_08024C48: @ 0x08024C48 + push {r4, r5, lr} + adds r3, r0, #0 + movs r4, #1 + cmp r1, #0 + beq _08024C60 + movs r0, #3 + bl sub_08049DF4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + b _08024C78 +_08024C60: + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _08024C74 + ldr r0, [r2, #4] + cmp r0, #0 + beq _08024C74 + movs r5, #0x36 + ldrsh r0, [r2, r5] + cmp r0, #0 + bge _08024C78 +_08024C74: + str r1, [r3, #0x54] + movs r4, #0 +_08024C78: + adds r0, r4, #0 + pop {r4, r5, pc} + + thumb_func_start sub_08024C7C +sub_08024C7C: @ 0x08024C7C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r2, #0 + movs r1, #0x40 + strh r1, [r0, #0x24] + strb r2, [r0, #0xe] + movs r1, #0 + movs r2, #0x20 + bl sub_08024A14 + pop {pc} + + thumb_func_start sub_08024C94 +sub_08024C94: @ 0x08024C94 + push {lr} + movs r2, #0 + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #0x40 + strb r1, [r0, #0xe] + strb r2, [r0, #0xf] + movs r1, #0xc0 + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x83 + movs r1, #0x80 + strb r1, [r2] + ldrb r2, [r0, #0xf] + movs r1, #3 + bl sub_08024A14 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08024CC0 +sub_08024CC0: @ 0x08024CC0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + movs r1, #1 + bl sub_08024C48 + cmp r0, #0 + bne _08024CD4 + movs r5, #0 + b _08024CF8 +_08024CD4: + ldr r0, _08024CFC @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x50 + bl sub_08049F1C + cmp r0, #0 + beq _08024CF0 + adds r0, r4, #0 + movs r1, #3 + bl sub_08049FDC + cmp r0, #0 + bne _08024CF8 +_08024CF0: + movs r5, #0 + adds r0, r4, #0 + bl sub_08024C7C +_08024CF8: + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_08024CFC: .4byte gUnk_020000B0 + + thumb_func_start sub_08024D00 +sub_08024D00: @ 0x08024D00 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x86 + ldrb r0, [r1] + cmp r0, #0 + beq _08024D1A + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 + b _08024D20 +_08024D1A: + adds r0, r4, #0 + bl sub_08024940 +_08024D20: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08024D46 + adds r0, r4, #0 + bl sub_08024B38 + cmp r0, #0 + beq _08024D46 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + b _08024DFC +_08024D46: + adds r0, r4, #0 + bl sub_08024CC0 + cmp r0, #0 + beq _08024DFC + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _08024D60 + cmp r0, #1 + beq _08024DAE + b _08024DFC +_08024D60: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08024DFC + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #0 + beq _08024D90 + adds r1, r2, #4 + b _08024D94 +_08024D90: + adds r1, r2, #0 + adds r1, #0x1c +_08024D94: + movs r0, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r3] + movs r1, #0x40 + eors r0, r1 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #3 + movs r2, #0x10 + bl sub_08024A14 + b _08024DFC +_08024DAE: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08024DCE + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + b _08024DFC +_08024DCE: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08024DFC + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08024DEA + adds r1, #1 + b _08024DEC +_08024DEA: + adds r1, #0x1f +_08024DEC: + movs r0, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080249DC +_08024DFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08024E00 +sub_08024E00: @ 0x08024E00 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08024E34 + ldr r1, _08024E18 @ =gUnk_080CBF10 + lsls r0, r0, #1 + orrs r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + pop {r4, r5, pc} + .align 2, 0 +_08024E18: .4byte gUnk_080CBF10 + + thumb_func_start sub_08024E1C +sub_08024E1C: @ 0x08024E1C + push {r4, lr} + adds r4, r0, #0 + bl sub_08024E34 + ldr r1, _08024E30 @ =gUnk_080CBF18 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] + pop {r4, pc} + .align 2, 0 +_08024E30: .4byte gUnk_080CBF18 + + thumb_func_start sub_08024E34 +sub_08024E34: @ 0x08024E34 + push {lr} + bl sub_08000E50 + movs r1, #0x3c + ands r1, r0 + lsrs r1, r1, #2 + ldr r0, _08024E48 @ =gUnk_080CBF20 + adds r1, r1, r0 + ldrb r0, [r1] + pop {pc} + .align 2, 0 +_08024E48: .4byte gUnk_080CBF20 + + thumb_func_start sub_08024E4C +sub_08024E4C: @ 0x08024E4C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #3 + bne _08024F46 + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r7, #0 + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0xf] + bl sub_0807953C + cmp r0, #0 + beq _08024E84 + bl sub_08000E50 + adds r3, r4, #0 + adds r3, #0x84 + ldrb r2, [r3] + adds r2, #1 + movs r1, #1 + ands r1, r0 + adds r2, r2, r1 + strb r2, [r3] +_08024E84: + ldr r0, _08024EC8 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + adds r2, r4, #0 + adds r2, #0x87 + cmp r0, #0 + beq _08024E9A + adds r5, r2, #0 + ldrb r0, [r5] + cmp r0, #4 + bne _08024ECC +_08024E9A: + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #0x30 + strb r0, [r1] + strb r7, [r2] + adds r0, r4, #0 + bl sub_08024F50 + adds r0, r4, #0 + adds r0, #0x80 + strb r7, [r0] + movs r1, #0x40 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08024A14 + b _08024F46 + .align 2, 0 +_08024EC8: .4byte gUnk_02002A40 +_08024ECC: + ldr r6, _08024F48 @ =gLinkEntity + bl sub_08077B2C + ldr r2, _08024F4C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r2, #0xa] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + movs r0, #0xe + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x14 + strb r0, [r1] + adds r1, #1 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3a + strb r7, [r0] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #0 + bl PositionRelative + adds r1, r6, #0 + adds r1, #0x63 + movs r0, #0x1a + strb r0, [r1] + movs r0, #4 + strb r0, [r6, #0x14] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3d + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08024F46 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #8 + strb r0, [r1] + subs r0, #0xa + bl ModHealth + adds r0, r6, #0 + movs r1, #0x7a + bl sub_0800449C +_08024F46: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08024F48: .4byte gLinkEntity +_08024F4C: .4byte gUnk_03003F80 + + thumb_func_start sub_08024F50 +sub_08024F50: @ 0x08024F50 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r2, _08024FDC @ =gUnk_03003F80 + movs r4, #0 + strb r4, [r2, #0xa] + ldr r0, [r2, #0x30] + ldr r1, _08024FE0 @ =0xFFFFFEFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r5, _08024FE4 @ =gLinkEntity + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806FA24 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r3, #0 + strh r4, [r5, #0x24] + adds r0, r6, #0 + adds r0, #0x85 + ldrb r0, [r0] + adds r4, r5, #0 + adds r4, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #0 + ldrsb r0, [r1, r0] + strh r0, [r5, #0x36] + strb r3, [r1] + adds r2, r6, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x83 + movs r0, #0xc0 + strb r0, [r1] + subs r1, #3 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x84 + strb r3, [r0] + movs r0, #0x80 + strh r0, [r6, #0x24] + pop {r4, r5, r6, pc} + .align 2, 0 +_08024FDC: .4byte gUnk_03003F80 +_08024FE0: .4byte 0xFFFFFEFF +_08024FE4: .4byte gLinkEntity + + thumb_func_start sub_08024FE8 +sub_08024FE8: @ 0x08024FE8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08025004 @ =gUnk_080CBF9C + 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 +_08025004: .4byte gUnk_080CBF9C + + thumb_func_start sub_08025008 +sub_08025008: @ 0x08025008 + push {lr} + ldr r2, _0802501C @ =gUnk_080CBFB4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802501C: .4byte gUnk_080CBFB4 + + thumb_func_start sub_08025020 +sub_08025020: @ 0x08025020 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + blt _080250C2 + cmp r1, #3 + ble _0802510C + cmp r1, #0x1b + bne _080250C2 + adds r0, r4, #0 + bl sub_0804AA1C + ldr r1, _08025058 @ =gUnk_080CBFE8 + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r3, r4, #0 + adds r3, #0x82 + ldrb r0, [r3] + cmp r1, r0 + bhs _0802505C + subs r0, r0, r1 + strb r0, [r3] + b _08025078 + .align 2, 0 +_08025058: .4byte gUnk_080CBFE8 +_0802505C: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r1] + subs r1, #0x45 + movs r0, #0x83 + strb r0, [r1] + strb r2, [r3] + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 +_08025078: + movs r2, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, [r4, #0x20] + cmp r0, #0 + ble _0802508A + str r2, [r4, #0x20] +_0802508A: + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #0 + bne _0802510C + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #6 + strb r0, [r1] + movs r0, #1 + strb r0, [r5] + b _0802510C +_080250C2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x82 + bne _0802510C + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0802510C + movs r0, #0x21 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08025104 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0806FA24 +_08025104: + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 +_0802510C: + ldr r1, _08025118 @ =gUnk_080CBF9C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08025118: .4byte gUnk_080CBF9C + + thumb_func_start sub_0802511C +sub_0802511C: @ 0x0802511C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08025142 + ldrb r0, [r4, #0xe] + cmp r0, #1 + bne _08025142 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _08025142 + adds r0, r4, #0 + bl sub_08025B18 +_08025142: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802514C +sub_0802514C: @ 0x0802514C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08025178 + ldr r0, _08025174 @ =gUnk_080CBFEC + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802517E + .align 2, 0 +_08025174: .4byte gUnk_080CBFEC +_08025178: + adds r0, r4, #0 + bl sub_08025C2C +_0802517E: + pop {r4, pc} + + thumb_func_start sub_08025180 +sub_08025180: @ 0x08025180 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + strb r0, [r4, #0xe] + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #0x15] + movs r1, #0x10 + eors r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0804AA1C + pop {r4, pc} + + thumb_func_start sub_080251AC +sub_080251AC: @ 0x080251AC + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x82 + ldrb r0, [r3] + cmp r0, #3 + bls _080251D8 + subs r0, #3 + strb r0, [r3] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080251F4 + adds r0, r4, #0 + bl sub_08025BD4 + b _080251F4 +_080251D8: + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #0 + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r1] + subs r1, #0x45 + movs r0, #0x83 + strb r0, [r1] + strb r2, [r3] + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 +_080251F4: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080251FC +sub_080251FC: @ 0x080251FC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r1, r4, #0 + adds r1, #0x82 + movs r5, #0 + movs r0, #0xf0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08025230 +sub_08025230: @ 0x08025230 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _08025242 + subs r0, #1 + strb r0, [r1] +_08025242: + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08025270 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08025C60 + strb r0, [r4, #0x15] +_08025270: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802528C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _08025290 + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + b _08025290 +_0802528C: + movs r0, #0x1e + strb r0, [r4, #0xf] +_08025290: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + bne _080252D8 + adds r0, r4, #0 + bl sub_0802571C + cmp r0, #0 + beq _080252DC + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080252D4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x86 + strh r1, [r0] + b _080252DC + .align 2, 0 +_080252D4: .4byte gUnk_03000BF0 +_080252D8: + subs r0, #1 + strh r0, [r1] +_080252DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080252E0 +sub_080252E0: @ 0x080252E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r4, #0 + adds r2, #0x7c + ldrh r2, [r2] + adds r3, r4, #0 + adds r3, #0x7e + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r3, _08025348 @ =gUnk_03000BF0 + 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 r0, r4, #0 + adds r0, #0x86 + ldrh r2, [r0] + cmp r5, r2 + bne _0802534C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08025352 + adds r0, r4, #0 + bl sub_080256B4 + b _08025352 + .align 2, 0 +_08025348: .4byte gUnk_03000BF0 +_0802534C: + strh r5, [r0] + movs r0, #0xf0 + strb r0, [r4, #0xe] +_08025352: + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r1, r0 + bne _08025388 + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x7e + ldrh r1, [r1] + cmp r0, r1 + bne _08025388 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08025388: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802538C +sub_0802538C: @ 0x0802538C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802539C + subs r0, #1 + strb r0, [r4, #0xe] + b _080253CC +_0802539C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _080253AE + adds r0, r4, #0 + bl sub_08004274 + b _080253CC +_080253AE: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r1, [r4, #0x20] + ldr r0, _080253D0 @ =0x00001FFF + cmp r1, r0 + bgt _080253CC + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_080253CC: + pop {r4, pc} + .align 2, 0 +_080253D0: .4byte 0x00001FFF + + thumb_func_start sub_080253D4 +sub_080253D4: @ 0x080253D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0802541A + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080253FE + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0802541A +_080253FE: + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08025A54 + adds r0, r4, #0 + bl sub_08025AE8 +_0802541A: + pop {r4, pc} + + thumb_func_start sub_0802541C +sub_0802541C: @ 0x0802541C + 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 _08025448 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xf] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08025448: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802544C +sub_0802544C: @ 0x0802544C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _08025460 + adds r0, r4, #0 + bl sub_08004274 + b _0802547A +_08025460: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802547A + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802547A: + pop {r4, pc} + + thumb_func_start sub_0802547C +sub_0802547C: @ 0x0802547C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r4, #0xe] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0802549E + adds r0, r4, #0 + bl sub_08025BD4 +_0802549E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080254B0 + adds r0, r4, #0 + bl sub_08025C2C +_080254B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080254B4 +sub_080254B4: @ 0x080254B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802550C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08025512 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + cmp r0, #0 + bne _080254F6 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x82 + strb r0, [r1] + adds r1, #0x43 + movs r0, #0xf0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080256B4 + b _08025502 +_080254F6: + movs r0, #0xc + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08025502: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08025512 +_0802550C: + adds r0, r4, #0 + bl sub_08004274 +_08025512: + pop {r4, pc} + + thumb_func_start sub_08025514 +sub_08025514: @ 0x08025514 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_0802594C + cmp r0, #0 + beq _08025542 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf0 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x78 + strb r0, [r1] + b _08025550 +_08025542: + ldrb r0, [r4, #0xe] + cmp r0, #3 + bls _08025550 + movs r0, #0xa + strb r0, [r4, #0xc] + movs r0, #0x20 + strb r0, [r4, #0xe] +_08025550: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08025554 +sub_08025554: @ 0x08025554 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + bne _0802556C + adds r0, r4, #0 + bl sub_080256B4 + b _080255A8 +_0802556C: + ldrb r1, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08025580 + adds r0, r2, #0 + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_08025580: + adds r0, r4, #0 + bl sub_08025C44 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08025598 + subs r0, #1 + strb r0, [r4, #0xe] + b _080255A8 +_08025598: + adds r0, r4, #0 + bl sub_080258C4 + cmp r0, #0 + bne _080255A8 + adds r0, r4, #0 + bl sub_080256B4 +_080255A8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080255AC +sub_080255AC: @ 0x080255AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r6, r0, #0 + cmp r6, #0 + bne _080255C4 + adds r0, r5, #0 + bl sub_080256B4 + b _08025638 +_080255C4: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _080255D2 + subs r0, #1 + strb r0, [r1] +_080255D2: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802560C + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0xe] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #0xf + ands r4, r0 + cmp r4, #7 + bgt _080255FA + subs r4, #1 +_080255FA: + subs r4, #7 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080045C4 + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_0802560C: + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + bne _08025628 + adds r0, r5, #0 + bl sub_080258C4 + cmp r0, #0 + bne _0802562C + adds r0, r5, #0 + bl sub_080256B4 + b _0802562C +_08025628: + subs r0, #1 + strh r0, [r1] +_0802562C: + adds r0, r5, #0 + bl sub_08025C44 + adds r0, r5, #0 + bl sub_08004274 +_08025638: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802563C +sub_0802563C: @ 0x0802563C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x84 + ldrh r0, [r2] + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _08025678 + adds r0, r4, #0 + movs r1, #0x28 + bl sub_0801D2B4 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x82 + strb r0, [r1] + adds r1, #0x43 + movs r0, #0xf0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080256B4 + adds r0, r4, #0 + bl sub_0804AA1C + b _080256B0 +_08025678: + lsls r1, r1, #0x10 + lsrs r0, r1, #0x10 + cmp r0, #0x77 + bhi _080256B0 + ldr r0, _080256A4 @ =gUnk_080CBFF8 + lsrs r1, r1, #0x14 + adds r1, r1, r0 + ldrb r1, [r1] + ldrh r2, [r2] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080256B0 + adds r0, r1, #1 + ands r2, r0 + cmp r2, #0 + beq _080256A8 + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0801D2B4 + b _080256B0 + .align 2, 0 +_080256A4: .4byte gUnk_080CBFF8 +_080256A8: + adds r0, r4, #0 + movs r1, #0x28 + bl sub_0801D2B4 +_080256B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080256B4 +sub_080256B4: @ 0x080256B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0xe] + movs r0, #0x1e + strb r0, [r5, #0xf] + bl sub_08000E50 + ldrb r4, [r5, #0x15] + adds r4, #7 + movs r1, #7 + bl __modsi3 + lsls r0, r0, #2 + adds r4, r4, r0 + movs r0, #0x1c + ands r4, r0 + strb r4, [r5, #0x15] + bl sub_08000E50 + ldr r2, _08025718 @ =gUnk_080CC000 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r5, #0 + adds r0, #0x78 + movs r4, #0 + strh r1, [r0] + bl sub_08000E50 + movs r1, #0x18 + bl __modsi3 + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x7a + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7b + strb r4, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08025718: .4byte gUnk_080CC000 + + thumb_func_start sub_0802571C +sub_0802571C: @ 0x0802571C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r7, r0, #0 + ldr r0, _080257B0 @ =gUnk_03000BF0 + mov sb, r0 + ldrh r0, [r7, #0x2e] + mov r2, sb + ldrh r1, [r2, #6] + subs r0, r0, r1 + adds r0, #8 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + ldrh r0, [r7, #0x32] + mov r3, sb + ldrh r1, [r3, #8] + subs r0, r0, r1 + adds r0, #8 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov sl, r0 + adds r0, r7, #0 + adds r0, #0x7a + ldrb r4, [r0] + movs r3, #0 + ldr r0, _080257B4 @ =gUnk_080CC020 + mov r8, r0 +_08025764: + mov r1, r8 + adds r0, r4, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r2, [sp] + adds r0, r2, r0 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + adds r0, r4, #1 + add r0, r8 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + add r0, sl + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + str r3, [sp, #4] + bl sub_080257EC + ldr r3, [sp, #4] + cmp r0, #0 + beq _080257B8 + mov r3, sb + ldrh r0, [r3, #6] + adds r0, r6, r0 + adds r1, r7, #0 + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r3, #8] + adds r0, r5, r0 + adds r1, #2 + strh r0, [r1] + movs r0, #1 + b _080257E0 + .align 2, 0 +_080257B0: .4byte gUnk_03000BF0 +_080257B4: .4byte gUnk_080CC020 +_080257B8: + adds r0, r4, #2 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + cmp r4, #0x2f + bls _080257C4 + movs r4, #0 +_080257C4: + adds r0, r3, #1 + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #3 + bls _08025764 + adds r0, r7, #0 + adds r0, #0x7a + strb r4, [r0] + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0 +_080257E0: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080257EC +sub_080257EC: @ 0x080257EC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + cmp r2, r0 + beq _08025822 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025822 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025822: + adds r5, r7, #0 + subs r5, #0x10 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + mov r8, r4 + cmp r2, r0 + beq _08025852 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025852 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025852: + adds r4, r6, #0 + subs r4, #0x10 + mov r0, r8 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + adds r1, r4, #0 + cmp r2, r0 + beq _08025882 + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _08025882 + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + beq _080258AA +_08025882: + mov r0, r8 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_080002A8 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + ldr r0, _080258B0 @ =0x00000312 + cmp r2, r0 + beq _080258BC + ldr r0, _080258B4 @ =gUnk_080B37A0 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0x16 + beq _080258BC + ldr r0, _080258B8 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _080258BC +_080258AA: + movs r0, #1 + b _080258BE + .align 2, 0 +_080258B0: .4byte 0x00000312 +_080258B4: .4byte gUnk_080B37A0 +_080258B8: .4byte gUnk_080B3E80 +_080258BC: + movs r0, #0 +_080258BE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080258C4 +sub_080258C4: @ 0x080258C4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08025922 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r3, r1, r0 + adds r0, r3, #0 + muls r0, r3, r0 + adds r3, r0, #0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r0, #0 + muls r1, r0, r1 + adds r0, r1, #0 + adds r3, r3, r0 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + cmp r0, #0 + bne _0802591A + adds r0, r4, #0 + adds r0, #0x81 + ldrb r1, [r0] + cmp r1, #0 + bne _0802591A + movs r0, #0x80 + lsls r0, r0, #3 + cmp r3, r0 + bgt _0802591A + movs r0, #9 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _08025942 +_0802591A: + movs r0, #0x90 + lsls r0, r0, #4 + cmp r3, r0 + ble _08025926 +_08025922: + movs r0, #0 + b _08025944 +_08025926: + movs r0, #0xb + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08025948 @ =gUnk_080CC050 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] +_08025942: + movs r0, #1 +_08025944: + pop {r4, pc} + .align 2, 0 +_08025948: .4byte gUnk_080CC050 + + thumb_func_start sub_0802594C +sub_0802594C: @ 0x0802594C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + mov sl, r0 + ldr r0, _08025A20 @ =gUnk_080CC090 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r7, [r1] + mov r0, sl + adds r0, #0x38 + ldrb r0, [r0] + mov sb, r0 + ldr r3, _08025A24 @ =gUnk_03000BF0 + mov r1, sl + ldrh r0, [r1, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + adds r0, #8 + movs r1, #0x10 + rsbs r1, r1, #0 + adds r2, r1, #0 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp] + mov r1, sl + ldrh r0, [r1, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + adds r0, #8 + ands r0, r2 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [sp, #4] +_08025996: + movs r0, #0 + ldrsb r0, [r7, r0] + ldr r1, [sp] + lsls r4, r1, #0x10 + asrs r4, r4, #0x10 + adds r4, r4, r0 + lsls r4, r4, #0x10 + movs r0, #1 + ldrsb r0, [r7, r0] + ldr r1, [sp, #4] + lsls r5, r1, #0x10 + asrs r5, r5, #0x10 + adds r5, r5, r0 + lsls r5, r5, #0x10 + lsrs r0, r4, #0x10 + str r0, [sp, #8] + asrs r4, r4, #0x10 + lsrs r1, r5, #0x10 + str r1, [sp, #0xc] + asrs r5, r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + adds r6, r0, #0 + lsls r6, r6, #0x18 + lsrs r6, r6, #0x18 + movs r0, #0x10 + rsbs r0, r0, #0 + adds r0, r0, r4 + mov r8, r0 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + adds r3, r0, #0 + lsls r3, r3, #0x18 + lsrs r3, r3, #0x18 + subs r5, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + mov r2, sb + str r3, [sp, #0x10] + bl sub_080002D4 + adds r4, r0, #0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + mov r0, r8 + adds r1, r5, #0 + mov r2, sb + bl sub_080002D4 + ldr r3, [sp, #0x10] + orrs r6, r3 + orrs r4, r6 + orrs r4, r0 + lsls r4, r4, #0x18 + cmp r4, #0 + beq _08025A28 + adds r7, #2 + movs r0, #0 + ldrsb r0, [r7, r0] + cmp r0, #0x7f + bne _08025996 + movs r0, #0 + b _08025A44 + .align 2, 0 +_08025A20: .4byte gUnk_080CC090 +_08025A24: .4byte gUnk_03000BF0 +_08025A28: + ldr r2, _08025A50 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldr r1, [sp, #8] + adds r0, r0, r1 + mov r1, sl + adds r1, #0x7c + strh r0, [r1] + ldrh r0, [r2, #8] + ldr r1, [sp, #0xc] + adds r0, r0, r1 + mov r1, sl + adds r1, #0x7e + strh r0, [r1] + movs r0, #1 +_08025A44: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08025A50: .4byte gUnk_03000BF0 + + thumb_func_start sub_08025A54 +sub_08025A54: @ 0x08025A54 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r1, r0, #0 + adds r1, #0x38 + ldrb r1, [r1] + mov sb, r1 + ldr r3, _08025AB0 @ =gUnk_03000BF0 + ldrh r2, [r0, #0x2e] + ldrh r1, [r3, #6] + subs r2, r2, r1 + ldrh r1, [r0, #0x32] + ldrh r0, [r3, #8] + subs r1, r1, r0 + ldr r4, _08025AB4 @ =gUnk_080CC0A0 + movs r5, #0 + lsls r2, r2, #0x10 + asrs r2, r2, #0x10 + mov r8, r2 + movs r6, #0x3f + lsls r1, r1, #0x10 + asrs r7, r1, #0x10 +_08025A82: + movs r0, #0 + ldrsb r0, [r4, r0] + add r0, r8 + asrs r0, r0, #4 + ands r0, r6 + movs r1, #1 + ldrsb r1, [r4, r1] + adds r1, r7, r1 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, sb + bl sub_08025AB8 + adds r5, #1 + adds r4, #2 + cmp r5, #3 + bls _08025A82 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08025AB0: .4byte gUnk_03000BF0 +_08025AB4: .4byte gUnk_080CC0A0 + + thumb_func_start sub_08025AB8 +sub_08025AB8: @ 0x08025AB8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080002E0 + cmp r0, #0 + bne _08025AD6 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + cmp r0, #0xa + beq _08025ADA +_08025AD6: + movs r0, #0 + b _08025AE6 +_08025ADA: + movs r0, #0x61 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0807B7D8 + movs r0, #1 +_08025AE6: + pop {r4, r5, pc} + + thumb_func_start sub_08025AE8 +sub_08025AE8: @ 0x08025AE8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x22 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08025B00 + ldr r0, [r1, #0x30] + subs r0, #1 + str r0, [r1, #0x30] +_08025B00: + adds r0, r4, #0 + movs r1, #0x23 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08025B16 + ldr r0, [r1, #0x30] + adds r0, #1 + str r0, [r1, #0x30] +_08025B16: + pop {r4, pc} + + thumb_func_start sub_08025B18 +sub_08025B18: @ 0x08025B18 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08025BC8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + str r1, [sp] + movs r0, #0x32 + ldrsh r1, [r6, r0] + ldrh r0, [r2, #8] + subs r1, r1, r0 + str r1, [sp, #4] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + mov sl, r0 + ldr r5, _08025BCC @ =gUnk_080CC0A8 + movs r7, #0 + movs r1, #0x3f + mov r8, r1 + movs r2, #0x10 + rsbs r2, r2, #0 + mov sb, r2 +_08025B52: + movs r0, #0 + ldrsb r0, [r5, r0] + ldr r1, [sp] + adds r0, r1, r0 + asrs r0, r0, #4 + mov r2, r8 + ands r0, r2 + movs r1, #1 + ldrsb r1, [r5, r1] + ldr r2, [sp, #4] + adds r1, r2, r1 + asrs r1, r1, #4 + mov r2, r8 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + mov r1, sl + bl sub_08025AB8 + movs r0, #0x21 + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08025BB4 + movs r2, #0 + ldrsb r2, [r5, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r5, r3] + lsls r3, r3, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl PositionRelative + ldrh r1, [r4, #0x2e] + mov r0, sb + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x2e] + ldrh r1, [r4, #0x32] + mov r0, sb + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + ldr r0, _08025BD0 @ =0x0000FFFF + strh r0, [r4, #0x36] +_08025BB4: + adds r7, #1 + adds r5, #2 + cmp r7, #8 + bls _08025B52 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08025BC8: .4byte gUnk_03000BF0 +_08025BCC: .4byte gUnk_080CC0A8 +_08025BD0: .4byte 0x0000FFFF + + thumb_func_start sub_08025BD4 +sub_08025BD4: @ 0x08025BD4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _08025C22 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08025C22 + movs r0, #0x21 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08025C22 + ldr r3, _08025C24 @ =gUnk_080CC0BA + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r1, r0, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + adds r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + ldr r0, _08025C28 @ =0x0000FFF6 + strh r0, [r4, #0x36] +_08025C22: + pop {r4, r5, pc} + .align 2, 0 +_08025C24: .4byte gUnk_080CC0BA +_08025C28: .4byte 0x0000FFF6 + + thumb_func_start sub_08025C2C +sub_08025C2C: @ 0x08025C2C + push {lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #8 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08025C44 +sub_08025C44: @ 0x08025C44 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08025C58 + movs r0, #0 + b _08025C5E +_08025C58: + adds r0, r2, #0 + bl sub_080AEF88 +_08025C5E: + pop {pc} + + thumb_func_start sub_08025C60 +sub_08025C60: @ 0x08025C60 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08025C80 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08025C80 + adds r0, r4, #0 + bl sub_08049EE4 + b _08025C98 +_08025C80: + bl sub_08000E50 + ldr r2, _08025C9C @ =gUnk_080CC0C2 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrb r4, [r4, #0x15] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 +_08025C98: + pop {r4, pc} + .align 2, 0 +_08025C9C: .4byte gUnk_080CC0C2 + + thumb_func_start sub_08025CA0 +sub_08025CA0: @ 0x08025CA0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08025CB8 @ =gUnk_080CC19C + 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 +_08025CB8: .4byte gUnk_080CC19C + + thumb_func_start sub_08025CBC +sub_08025CBC: @ 0x08025CBC + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_08025CC4 +sub_08025CC4: @ 0x08025CC4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08025CD0 + adds r0, r4, #0 + bl sub_08027870 +_08025CD0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08025CD4 +sub_08025CD4: @ 0x08025CD4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r3, [r4, #0xa] + cmp r3, #0 + bne _08025DA4 + ldrb r0, [r4, #0xd] + cmp r0, #0xc + beq _08025CFE + movs r0, #0xc + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r3, [r0, #3] + ldr r0, [r4, #0x54] + movs r1, #9 + bl sub_080042AC + b _08025D9C +_08025CFE: + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08025D10 + cmp r0, #1 + beq _08025D28 + b _08025D9C +_08025D10: + adds r0, r4, #0 + movs r1, #0x3f + bl sub_08027C7C + ldr r0, [r5] + movs r1, #1 + strb r1, [r0, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x78 + strb r0, [r1] + b _08025D9C +_08025D28: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08025D84 + ldr r1, [r4, #0x54] + adds r1, #0x6d + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + ldr r1, [r4, #0x68] + adds r1, #0x6d + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r1, [r4, #0x50] + adds r1, #0x6d + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r2, [r4, #0x54] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x68] + adds r0, #0x45 + strb r3, [r0] + adds r1, #0x45 + strb r3, [r1] + adds r2, #0x45 + strb r3, [r2] + ldr r0, _08025D80 @ =gUnk_02034490 + strb r3, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0804A7D4 + b _08025D9C + .align 2, 0 +_08025D80: .4byte gUnk_02034490 +_08025D84: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0x3f + cmp r0, #0x50 + bhi _08025D96 + movs r1, #0xf + cmp r0, #0x1e + bls _08025D96 + movs r1, #0x1f +_08025D96: + adds r0, r4, #0 + bl sub_08027C7C +_08025D9C: + adds r0, r4, #0 + bl sub_08027870 + b _08025DBC +_08025DA4: + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08025DBC + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_08025DBC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08025DC0 +sub_08025DC0: @ 0x08025DC0 + push {lr} + ldr r2, _08025DD4 @ =gUnk_080CC1B0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08025DD4: .4byte gUnk_080CC1B0 + + thumb_func_start sub_08025DD8 +sub_08025DD8: @ 0x08025DD8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0xa] + cmp r1, #8 + bne _08025DF2 + movs r0, #4 + strb r0, [r5, #0xa] + ldr r0, [r5, #0x54] + ldr r0, [r0, #0x48] + str r0, [r5, #0x48] + b _0802605E +_08025DF2: + ldr r6, _08025E48 @ =gUnk_080CC1B8 + movs r4, #3 + movs r3, #3 + adds r0, r3, #0 + ands r0, r1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldrb r0, [r0, #1] + movs r1, #0x29 + adds r1, r1, r5 + mov ip, r1 + movs r1, #7 + ands r1, r0 + mov r0, ip + ldrb r2, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x76 + movs r0, #0xa0 + strh r0, [r1] + adds r1, #4 + strh r0, [r1] + adds r1, #4 + movs r0, #0 + strh r0, [r1] + ldrb r0, [r5, #0x19] + orrs r0, r4 + strb r0, [r5, #0x19] + ldrb r0, [r5, #0xa] + ands r3, r0 + cmp r3, #1 + bne _08025E4C + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + b _08025E58 + .align 2, 0 +_08025E48: .4byte gUnk_080CC1B8 +_08025E4C: + lsls r0, r3, #2 + adds r0, r0, r6 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_08025E58: + ldrb r0, [r5, #0xa] + movs r6, #3 + ands r6, r0 + cmp r6, #0 + beq _08025E86 + cmp r6, #0 + bge _08025E68 + b _08026050 +_08025E68: + cmp r6, #3 + ble _08025E6E + b _08026050 +_08025E6E: + ldr r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_0806FBD8 + adds r1, r0, #0 + cmp r1, #0 + beq _08025E7E + b _08026020 +_08025E7E: + ldr r0, [r5, #0x68] + adds r0, #0x45 + strb r1, [r0] + b _0802605E +_08025E86: + strb r0, [r5, #0xb] + movs r0, #0x10 + bl sub_0801D8E0 + adds r4, r5, #0 + adds r4, #0x84 + str r0, [r4] + cmp r0, #0 + beq _08025EA2 + adds r0, r5, #0 + bl sub_0806FBD8 + cmp r0, #0 + bne _08025EAA +_08025EA2: + adds r0, r5, #0 + bl sub_0804A7D4 + b _0802605E +_08025EAA: + ldr r0, [r4] + str r0, [r5, #0x64] + ldr r2, [r5, #0x48] + ldr r1, _0802601C @ =gUnk_080FD238 + ldrb r0, [r1] + strb r0, [r2] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #1] + strb r0, [r2, #1] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #2] + strb r0, [r2, #2] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #3] + strb r0, [r2, #3] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #4] + strb r0, [r2, #4] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #5] + strb r0, [r2, #5] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #6] + strb r0, [r2, #6] + ldr r2, [r5, #0x48] + ldrb r0, [r1, #7] + strb r0, [r2, #7] + strb r6, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x6d + ldrb r0, [r1] + movs r7, #1 + orrs r0, r7 + strb r0, [r1] + ldr r0, [r4] + strb r6, [r0, #6] + ldr r0, [r4] + strb r6, [r0, #5] + ldr r1, [r4] + movs r0, #0xf + strb r0, [r1, #1] + ldr r0, [r4] + strb r6, [r0, #3] + ldr r0, [r4] + strb r6, [r0, #4] + ldr r1, [r4] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0xe] + ldrb r0, [r5, #0xa] + movs r1, #3 + orrs r1, r0 + movs r0, #0x13 + bl CreateEnemy + adds r2, r0, #0 + str r2, [r5, #0x68] + cmp r2, #0 + beq _08025F46 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x68] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x68] + ldrh r0, [r5, #0x32] + subs r0, #0xe + strh r0, [r1, #0x32] + ldr r1, [r5, #0x68] + movs r0, #0xe + strb r0, [r1, #0xe] + ldr r0, [r5, #0x68] + str r5, [r0, #0x50] + ldr r0, [r5, #0x68] + str r5, [r0, #0x68] +_08025F46: + ldrb r0, [r5, #0xa] + movs r1, #2 + orrs r1, r0 + movs r0, #0x13 + bl CreateEnemy + adds r2, r0, #0 + str r2, [r5, #0x50] + cmp r2, #0 + beq _08025F8C + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x50] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x68] + ldrh r0, [r0, #0x32] + subs r0, #0x12 + strh r0, [r1, #0x32] + ldr r1, [r5, #0x50] + movs r0, #0x12 + strb r0, [r1, #0xe] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x68] + str r0, [r1, #0x50] + ldr r1, [r5, #0x68] + ldr r0, [r5, #0x50] + str r0, [r1, #0x54] + ldr r0, [r5, #0x50] + str r5, [r0, #0x68] +_08025F8C: + ldrb r0, [r5, #0xa] + adds r1, r7, #0 + orrs r1, r0 + movs r0, #0x13 + bl CreateEnemy + adds r2, r0, #0 + str r2, [r5, #0x54] + cmp r2, #0 + beq _08025FD6 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r5, #0x54] + ldrh r0, [r5, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x32] + subs r0, #0xe + strh r0, [r1, #0x32] + ldr r1, [r5, #0x54] + movs r0, #0xe + strb r0, [r1, #0xe] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + ldr r0, [r5, #0x54] + str r5, [r0, #0x54] + ldr r1, [r5, #0x50] + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] + ldr r0, [r5, #0x54] + str r5, [r0, #0x68] +_08025FD6: + movs r0, #0x13 + movs r1, #8 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _08025FE6 + str r5, [r1, #0x54] +_08025FE6: + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08025FFC + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] +_08025FFC: + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _08026050 + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #3 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08026050 + ldr r0, [r5, #0x54] + str r0, [r1, #0x54] + b _08026050 + .align 2, 0 +_0802601C: .4byte gUnk_080FD238 +_08026020: + ldr r1, [r5, #0x48] + ldrb r0, [r4] + strb r0, [r1] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #1] + strb r0, [r1, #1] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #2] + strb r0, [r1, #2] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #3] + strb r0, [r1, #3] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #4] + strb r0, [r1, #4] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #5] + strb r0, [r1, #5] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #6] + strb r0, [r1, #6] + ldr r1, [r5, #0x48] + ldrb r0, [r4, #7] + strb r0, [r1, #7] +_08026050: + ldrb r1, [r5, #0xa] + movs r0, #3 + ands r0, r1 + strb r0, [r5, #0xa] + adds r0, r5, #0 + bl sub_08026060 +_0802605E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08026060 +sub_08026060: @ 0x08026060 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802608C @ =gUnk_080CC1C8 + ldrb r0, [r4, #0xa] + 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, #0x76 + ldrh r1, [r0] + adds r0, #4 + ldrh r2, [r0] + adds r0, #4 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0802608C: .4byte gUnk_080CC1C8 + + thumb_func_start sub_08026090 +sub_08026090: @ 0x08026090 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080260EA + ldr r0, [r4, #0x54] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080260B8 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xfa + strb r0, [r4, #0xe] + ldr r0, _080260D4 @ =gUnk_03000BF0 + str r4, [r0, #0x30] +_080260B8: + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + strb r1, [r4, #0x10] + ldr r1, [r0, #0x48] + str r1, [r4, #0x48] + adds r0, #0x3f + ldrb r1, [r0] + cmp r1, #0x7e + bne _080260D8 + adds r0, r4, #0 + adds r0, #0x3f + strb r1, [r0] + b _080260E0 + .align 2, 0 +_080260D4: .4byte gUnk_03000BF0 +_080260D8: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x7c + strb r0, [r1] +_080260E0: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + bl sub_0806FA24 + b _08026106 +_080260EA: + bl sub_08078B48 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026106 + ldr r1, _08026108 @ =gUnk_03000BF0 + ldr r0, _0802610C @ =gLinkEntity + str r0, [r1, #0x30] + bl sub_0805E780 +_08026106: + pop {r4, pc} + .align 2, 0 +_08026108: .4byte gUnk_03000BF0 +_0802610C: .4byte gLinkEntity + + thumb_func_start sub_08026110 +sub_08026110: @ 0x08026110 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r1, _08026144 @ =gUnk_080CC1DC + ldrb r0, [r6, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl _call_via_r1 + adds r0, r6, #0 + adds r0, #0x84 + ldr r2, [r0] + ldr r0, [r2, #8] + cmp r0, #0 + bne _08026160 + ldrb r1, [r2, #5] + cmp r1, #0 + beq _08026160 + ldrb r0, [r6, #0xd] + cmp r0, #8 + bne _08026148 + adds r0, r1, #0 + subs r0, #0x40 + b _0802614C + .align 2, 0 +_08026144: .4byte gUnk_080CC1DC +_08026148: + adds r0, r1, #0 + subs r0, #0x20 +_0802614C: + strb r0, [r2, #5] + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #5 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _08026160 + movs r0, #0 + strb r0, [r1, #5] +_08026160: + adds r2, r6, #0 + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #0x76 + adds r1, r1, r6 + mov ip, r1 + adds r7, r6, #0 + adds r7, #0x7a + cmp r0, #0 + beq _08026230 + ldrb r0, [r6, #0xe] + cmp r0, #0 + bne _080261D2 + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x74] + subs r0, r0, r1 + str r0, [r6, #0x74] + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x78] + subs r0, r0, r1 + str r0, [r6, #0x78] + mov r0, ip + ldrh r2, [r0] + adds r4, r6, #0 + adds r4, #0x82 + ldrb r1, [r4] + adds r3, r6, #0 + adds r3, #0x84 + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _080261AA + mov r0, ip + strh r1, [r0] +_080261AA: + ldrh r2, [r7] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _080261BA + strh r1, [r7] +_080261BA: + mov r1, ip + ldrh r2, [r1] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + bgt _08026230 + ldrh r0, [r7] + cmp r0, r1 + bgt _08026230 + b _08026228 +_080261D2: + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x74] + adds r0, r0, r1 + str r0, [r6, #0x74] + ldrb r1, [r2] + lsls r1, r1, #0xc + ldr r0, [r6, #0x78] + adds r0, r0, r1 + str r0, [r6, #0x78] + mov r0, ip + ldrh r2, [r0] + adds r4, r6, #0 + adds r4, #0x81 + ldrb r1, [r4] + adds r3, r6, #0 + adds r3, #0x84 + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026202 + mov r0, ip + strh r1, [r0] +_08026202: + ldrh r2, [r7] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026212 + strh r1, [r7] +_08026212: + mov r1, ip + ldrh r2, [r1] + ldrb r1, [r4] + ldr r0, [r3] + ldrb r0, [r0, #5] + adds r1, r1, r0 + cmp r2, r1 + blt _08026230 + ldrh r0, [r7] + cmp r0, r1 + blt _08026230 +_08026228: + ldrb r0, [r6, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r6, #0xe] +_08026230: + ldr r5, [r6, #0x48] + mov r0, ip + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + subs r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + ldrh r1, [r7] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #1 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #7] + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _08026268 + adds r0, r6, #0 + bl sub_0800445C +_08026268: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802626C +sub_0802626C: @ 0x0802626C + push {lr} + ldr r2, _0802629C @ =gUnk_02034490 + movs r1, #1 + strb r1, [r2] + ldr r2, _080262A0 @ =gUnk_080CC20C + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _080262A4 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + beq _08026298 + cmp r0, #0xf + beq _08026298 + bl sub_08078B48 +_08026298: + pop {pc} + .align 2, 0 +_0802629C: .4byte gUnk_02034490 +_080262A0: .4byte gUnk_080CC20C +_080262A4: .4byte gLinkEntity + + thumb_func_start sub_080262A8 +sub_080262A8: @ 0x080262A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x82 + movs r6, #0 + movs r0, #0x90 + strb r0, [r1] + subs r1, #1 + movs r0, #0xb0 + strb r0, [r1] + subs r1, #1 + movs r0, #8 + strb r0, [r1] + movs r5, #1 + strb r5, [r4, #0xe] + adds r0, r4, #0 + movs r1, #6 + movs r2, #1 + bl sub_080276F4 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080262EC + ldr r1, _080262E8 @ =gUnk_03003F80 + movs r0, #0x82 + lsls r0, r0, #1 + strh r0, [r1, #8] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r5, [r0, #3] + b _0802631A + .align 2, 0 +_080262E8: .4byte gUnk_03003F80 +_080262EC: + adds r0, r4, #0 + adds r0, #0x7c + strb r6, [r0] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x1e + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #3 + strb r0, [r1, #3] + ldr r0, _0802631C @ =gLinkEntity + strb r6, [r0, #0x14] + ldr r0, _08026320 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + strb r5, [r0, #0xe] + ldr r0, _08026324 @ =0x00004022 + movs r1, #0xb2 + lsls r1, r1, #2 + movs r2, #1 + bl sub_0800015E +_0802631A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802631C: .4byte gLinkEntity +_08026320: .4byte gUnk_03000BF0 +_08026324: .4byte 0x00004022 + + thumb_func_start sub_08026328 +sub_08026328: @ 0x08026328 + push {lr} + adds r2, r0, #0 + ldr r0, _08026354 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + beq _08026352 + adds r1, r2, #0 + adds r1, #0x7d + movs r0, #0x78 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + movs r0, #0xa + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 +_08026352: + pop {pc} + .align 2, 0 +_08026354: .4byte gLinkEntity + + thumb_func_start sub_08026358 +sub_08026358: @ 0x08026358 + push {r4, lr} + adds r3, r0, #0 + ldr r4, _08026398 @ =gLinkEntity + ldrb r0, [r4, #0xc] + cmp r0, #0xf + beq _080263B0 + adds r1, r3, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _080263A0 + adds r0, r3, #0 + adds r0, #0x7c + strb r2, [r0] + movs r0, #0x1e + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + strb r2, [r4, #0x14] + ldr r1, _0802639C @ =gUnk_03000BF0 + str r3, [r1, #0x30] + movs r0, #1 + strb r0, [r1, #0xe] + b _080263B0 + .align 2, 0 +_08026398: .4byte gLinkEntity +_0802639C: .4byte gUnk_03000BF0 +_080263A0: + cmp r2, #0x60 + bhi _080263B0 + cmp r2, #0x5b + bhi _080263AC + movs r0, #4 + b _080263AE +_080263AC: + movs r0, #2 +_080263AE: + strb r0, [r4, #0x14] +_080263B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080263B4 +sub_080263B4: @ 0x080263B4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x7d + adds r0, r0, r4 + mov ip, r0 + ldrb r0, [r0] + subs r0, #1 + mov r1, ip + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0xff + bne _08026410 + ldr r2, _08026400 @ =gUnk_080CC234 + adds r3, r4, #0 + adds r3, #0x7c + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r0, r0, r2 + ldrb r1, [r0] + mov r0, ip + strb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0xff + bne _08026404 + movs r0, #0x78 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _08026410 + .align 2, 0 +_08026400: .4byte gUnk_080CC234 +_08026404: + ldrb r2, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x49 + movs r3, #0 + bl sub_080A2988 +_08026410: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08026414 +sub_08026414: @ 0x08026414 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r1, r7, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026474 + ldr r0, _08026478 @ =0x0000FF40 + strh r0, [r7, #0x36] + ldr r6, [r7, #0x54] + ldr r5, [r7, #0x50] + ldr r4, [r7, #0x68] + ldrb r2, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r3, #1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldrb r2, [r5, #0x18] + adds r0, r1, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r6, #0x18] + adds r0, r1, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r6, #0x18] + ldrb r0, [r7, #0x18] + ands r1, r0 + orrs r1, r3 + strb r1, [r7, #0x18] + adds r0, r7, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + movs r0, #0xd1 + lsls r0, r0, #1 + bl sub_080A3268 +_08026474: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026478: .4byte 0x0000FF40 + + thumb_func_start sub_0802647C +sub_0802647C: @ 0x0802647C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + bl sub_08003FC4 + cmp r0, #0 + bne _080264A6 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + ldr r0, _080264A8 @ =0x000001A1 + bl sub_080A3268 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] +_080264A6: + pop {r4, pc} + .align 2, 0 +_080264A8: .4byte 0x000001A1 + + thumb_func_start sub_080264AC +sub_080264AC: @ 0x080264AC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xd0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #6 + beq _080264D2 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08027D20 +_080264D2: + pop {r4, pc} + + thumb_func_start sub_080264D4 +sub_080264D4: @ 0x080264D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026504 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + movs r1, #5 + movs r2, #0 + bl sub_080276F4 + movs r0, #0x2e + bl sub_080A3268 +_08026504: + adds r0, r4, #0 + bl sub_080277F8 + pop {r4, pc} + + thumb_func_start sub_0802650C +sub_0802650C: @ 0x0802650C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0802652C + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + ldr r1, _08026534 @ =gUnk_03000BF0 + ldr r0, _08026538 @ =gLinkEntity + str r0, [r1, #0x30] +_0802652C: + adds r0, r2, #0 + bl sub_08027870 + pop {pc} + .align 2, 0 +_08026534: .4byte gUnk_03000BF0 +_08026538: .4byte gLinkEntity + + thumb_func_start sub_0802653C +sub_0802653C: @ 0x0802653C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, _08026578 @ =gUnk_03000BF0 + ldrh r5, [r1] + cmp r5, #0 + bne _08026572 + movs r0, #4 + strb r0, [r1, #0xe] + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #4 + bl sub_08027B98 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + ldr r0, _0802657C @ =gUnk_02034490 + strb r5, [r0] +_08026572: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_08026578: .4byte gUnk_03000BF0 +_0802657C: .4byte gUnk_02034490 + + thumb_func_start sub_08026580 +sub_08026580: @ 0x08026580 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08027AA4 + adds r7, r5, #0 + adds r7, #0x84 + ldr r0, [r7] + ldrb r0, [r0, #1] + cmp r0, #0x40 + bne _0802659C + adds r0, r5, #0 + bl sub_08027BBC + b _0802662C +_0802659C: + adds r1, r5, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r1, #0 + cmp r0, #0xff + bne _08026626 + movs r0, #0 + strh r0, [r5, #0x24] + movs r0, #2 + strb r0, [r5, #0xd] + adds r4, r5, #0 + adds r4, #0x7c + movs r0, #0x3c + strb r0, [r4] + ldr r1, _080265E4 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + ldr r0, [r7] + ldrb r0, [r0, #4] + adds r2, r4, #0 + cmp r0, #2 + bne _080265E8 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0x48 + strb r0, [r1] + adds r1, #1 + ldrb r0, [r1] + adds r0, #0x10 + b _080265EE + .align 2, 0 +_080265E4: .4byte gLinkEntity +_080265E8: + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0x10 +_080265EE: + strb r0, [r1] + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r1, [r0, #1] + movs r0, #0xa0 + ands r0, r1 + cmp r0, #0 + beq _08026608 + movs r0, #0 + strb r0, [r6] + strb r0, [r2] + b _08026626 +_08026608: + bl sub_08000E50 + ldr r2, _08026630 @ =gUnk_080CC24F + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r1, r0, #1 + strb r1, [r6] + ldr r0, [r4] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026626 + lsls r0, r1, #1 + strb r0, [r6] +_08026626: + adds r0, r5, #0 + bl sub_08027870 +_0802662C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026630: .4byte gUnk_080CC24F + + thumb_func_start sub_08026634 +sub_08026634: @ 0x08026634 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + bl sub_08027AA4 + cmp r0, #0 + beq _08026644 + b _08026748 +_08026644: + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + bne _080266D6 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08026748 + adds r1, #8 + ldr r2, [r1] + ldrb r3, [r2, #1] + movs r0, #0x40 + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + bne _080266B0 + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _0802668C + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ldr r1, [r5] + ldrb r0, [r1] + cmp r0, #0 + bne _080266B0 + movs r0, #1 + b _080266AE +_0802668C: + movs r0, #1 + strb r0, [r2, #1] + ldr r0, [r5] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _080266B0 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _080266B0 + ldr r1, [r5] + movs r0, #4 + strb r0, [r1] + ldr r1, [r5] + movs r0, #0x81 +_080266AE: + strb r0, [r1, #1] +_080266B0: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + ldr r0, [r5] + strb r1, [r0, #3] + str r1, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0x90 + movs r3, #0xc + bl sub_08027B98 + movs r0, #0xe0 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08026742 +_080266D6: + ldr r0, _08026700 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080266EC + ldr r1, _08026704 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_080266EC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026708 + movs r0, #0x80 + lsls r0, r0, #1 + b _0802670A + .align 2, 0 +_08026700: .4byte gUnk_030010A0 +_08026704: .4byte gLinkEntity +_08026708: + movs r0, #0xc0 +_0802670A: + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802672C + ldr r0, _0802674C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08026726 + movs r0, #0xcf + lsls r0, r0, #1 + bl sub_080A3268 +_08026726: + adds r0, r4, #0 + bl sub_080AEF88 +_0802672C: + adds r0, r4, #0 + adds r0, #0x76 + adds r1, r4, #0 + adds r1, #0x81 + ldrh r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _08026742 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_08026742: + adds r0, r4, #0 + bl sub_08027870 +_08026748: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0802674C: .4byte gUnk_030010A0 + + thumb_func_start sub_08026750 +sub_08026750: @ 0x08026750 + push {r4, lr} + adds r4, r0, #0 + bl sub_08027AA4 + ldr r1, _08026770 @ =gUnk_080CC258 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + 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 +_08026770: .4byte gUnk_080CC258 + + thumb_func_start sub_08026774 +sub_08026774: @ 0x08026774 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r1, [r4, #0x54] + adds r1, #0x83 + ldr r0, [r4, #0x50] + adds r0, #0x83 + ldrb r1, [r1] + ldrb r0, [r0] + orrs r1, r0 + ldr r0, [r4, #0x68] + adds r0, #0x83 + ldrb r0, [r0] + orrs r1, r0 + cmp r1, #0 + bne _080267C6 + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080267CC + str r1, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x40 + bl sub_08027B98 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #3] + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_080042AC +_080267C6: + adds r0, r4, #0 + bl sub_080277F8 +_080267CC: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_080267D0 +sub_080267D0: @ 0x080267D0 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0xf0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #1 + beq _08026802 + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0xe0 + movs r2, #0xc0 + movs r3, #0x20 + bl sub_08027B98 + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_080042AC +_08026802: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08026808 +sub_08026808: @ 0x08026808 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + ldr r7, [r4, #0x68] + ldr r6, [r4, #0x50] + adds r1, r2, #0 + adds r1, #0x76 + ldrh r0, [r1] + cmp r0, #0xbf + bhi _08026820 + adds r0, #4 + strh r0, [r1] +_08026820: + adds r5, r2, #0 + adds r5, #0x7a + ldrh r0, [r5] + cmp r0, #0xb0 + bls _08026830 + subs r0, #8 + strh r0, [r5] + b _08026860 +_08026830: + ldr r1, _08026868 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0xd] + movs r1, #0xa0 + strh r1, [r5] + adds r0, r6, #0 + adds r0, #0x7a + strh r1, [r0] + adds r0, r7, #0 + adds r0, #0x7a + strh r1, [r0] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_080276F4 + movs r0, #0xd1 + lsls r0, r0, #1 + bl sub_080A3268 +_08026860: + adds r0, r4, #0 + bl sub_080277F8 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026868: .4byte gLinkEntity + + thumb_func_start sub_0802686C +sub_0802686C: @ 0x0802686C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #7 + bl sub_08003FC4 + adds r5, r0, #0 + cmp r5, #0 + beq _08026888 + adds r0, r4, #0 + bl sub_080AEF88 + b _080268BE +_08026888: + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r0, #5 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r5, [r0, #3] + str r5, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + adds r0, r4, #0 + bl sub_08027870 + ldr r0, [r4, #0x54] + movs r1, #3 + bl sub_080042AC + ldr r0, _080268C4 @ =0x000001A1 + bl sub_080A3268 +_080268BE: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_080268C4: .4byte 0x000001A1 + + thumb_func_start sub_080268C8 +sub_080268C8: @ 0x080268C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08027AA4 + ldr r1, _080268E8 @ =gUnk_080CC264 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + 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 +_080268E8: .4byte gUnk_080CC264 + + thumb_func_start sub_080268EC +sub_080268EC: @ 0x080268EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xd0 + movs r2, #8 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08026912 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08027D20 +_08026912: + pop {r4, pc} + + thumb_func_start sub_08026914 +sub_08026914: @ 0x08026914 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026942 + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #4 + bl sub_08027B98 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_08026942: + adds r0, r4, #0 + bl sub_080277F8 + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0802694C +sub_0802694C: @ 0x0802694C + push {lr} + ldr r2, _08026964 @ =gUnk_080CC26C + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08026964: .4byte gUnk_080CC26C + + thumb_func_start sub_08026968 +sub_08026968: @ 0x08026968 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7d + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0802698C + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _080269C0 +_0802698C: + ldr r6, [r2, #0x54] + ldr r4, [r2, #0x68] + ldr r5, [r2, #0x50] + ldrb r1, [r2, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r3, _080269C8 @ =0xFFFFFF00 + cmp r0, #0 + beq _080269A2 + movs r3, #0x80 + lsls r3, r3, #1 +_080269A2: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r3 + strh r0, [r1] +_080269C0: + adds r0, r2, #0 + bl sub_08027870 + pop {r4, r5, r6, pc} + .align 2, 0 +_080269C8: .4byte 0xFFFFFF00 + + thumb_func_start sub_080269CC +sub_080269CC: @ 0x080269CC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + movs r7, #0 + ldr r5, [r6, #0x54] + ldr r0, [r6, #0x68] + mov sl, r0 + ldr r1, [r6, #0x50] + mov sb, r1 + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #2 + mov r8, r1 + cmp r0, #0 + beq _080269F8 + ldr r0, _08026A18 @ =0xFFFFFD00 + mov r8, r0 +_080269F8: + mov r0, sl + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x20 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3f + bhi _08026A1C + mov r1, sl + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A1E + .align 2, 0 +_08026A18: .4byte 0xFFFFFD00 +_08026A1C: + movs r7, #1 +_08026A1E: + mov r0, sb + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x44 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x87 + bhi _08026A3C + mov r1, sb + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A3E +_08026A3C: + adds r7, #1 +_08026A3E: + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r4, r0, #0 + adds r4, #0x40 + adds r0, #0x20 + cmp r0, #0x40 + bls _08026A7E + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026A6C + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #6 + beq _08026A7E + adds r0, r5, #0 + movs r1, #6 + bl sub_080042AC + b _08026A7E +_08026A6C: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #5 + beq _08026A7E + adds r0, r5, #0 + movs r1, #5 + bl sub_080042AC +_08026A7E: + lsls r0, r4, #0x18 + cmp r0, #0 + blt _08026A90 + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + add r0, r8 + strh r0, [r1] + b _08026A92 +_08026A90: + adds r7, #1 +_08026A92: + cmp r7, #3 + beq _08026A98 + b _08026BB8 +_08026A98: + ldrb r1, [r6, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6, #0x10] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #3 + strh r0, [r1] + movs r0, #0x20 + movs r1, #0 + bl sub_08080964 + ldr r0, _08026B24 @ =0x0000010B + bl sub_080A3268 + adds r0, r6, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08026B4E + movs r0, #0xc9 + strh r0, [r4, #0x12] + adds r1, r4, #0 + adds r1, #0x58 + movs r0, #1 + strb r0, [r1] + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrb r1, [r6, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026B28 + ldrh r0, [r4, #0x2e] + subs r0, #0x38 + b _08026B2C + .align 2, 0 +_08026B24: .4byte 0x0000010B +_08026B28: + ldrh r0, [r4, #0x2e] + adds r0, #0x38 +_08026B2C: + strh r0, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #0x3e + bl sub_080ADF80 + ldrb r0, [r6, #0xb] + cmp r0, #0 + bne _08026B46 + adds r0, r4, #0 + movs r1, #0x2b + bl sub_0801D040 + b _08026B4E +_08026B46: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_0801D040 +_08026B4E: + ldr r3, [r6, #0x50] + ldr r2, [r6, #0x54] + ldr r0, [r6, #0x68] + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + adds r2, #0x84 + strb r1, [r2] + adds r3, #0x84 + strb r1, [r3] + mov r0, sb + adds r0, #0x7a + movs r1, #0x98 + strh r1, [r0] + mov r0, sl + adds r0, #0x7a + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x7a + strh r1, [r0] + bl sub_08000E50 + ldr r2, _08026BB4 @ =gUnk_080CC278 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r7, r6, #0 + adds r7, #0x7c + strb r0, [r7] + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #0xa + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08026BD4 + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r7] + str r0, [r1] + b _08026BD4 + .align 2, 0 +_08026BB4: .4byte gUnk_080CC278 +_08026BB8: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + cmp r0, #0xef + bhi _08026BD4 + ldr r0, [r5, #0x74] + movs r1, #0x80 + lsls r1, r1, #0xb + adds r0, r0, r1 + str r0, [r5, #0x74] + ldr r0, [r5, #0x78] + ldr r1, _08026BE4 @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r5, #0x78] +_08026BD4: + adds r0, r6, #0 + bl sub_08027870 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08026BE4: .4byte 0xFFFF8000 + + thumb_func_start sub_08026BE8 +sub_08026BE8: @ 0x08026BE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + adds r3, r5, #0 + adds r3, #0x3b + ldrb r1, [r3] + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _08026C34 + movs r0, #7 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r2, [r0, #3] + adds r1, #1 + movs r0, #0x2d + strb r0, [r1] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r0, _08026C30 @ =0x00000155 + bl sub_080A3268 + b _08026C38 + .align 2, 0 +_08026C30: .4byte 0x00000155 +_08026C34: + subs r0, #1 + strb r0, [r1] +_08026C38: + adds r0, r4, #0 + bl sub_08027870 + pop {r4, r5, pc} + + thumb_func_start sub_08026C40 +sub_08026C40: @ 0x08026C40 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r5, r0, #0 + ldr r4, [r5, #0x54] + ldr r7, [r5, #0x68] + ldr r6, [r5, #0x50] + adds r2, r5, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + beq _08026CCC + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + cmp r0, #0 + beq _08026C9C + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08026C82 + ldr r0, [r4, #0x74] + movs r1, #0x80 + lsls r1, r1, #0xa + adds r0, r0, r1 + str r0, [r4, #0x74] + ldr r0, [r4, #0x78] + movs r2, #0x80 + lsls r2, r2, #9 + adds r0, r0, r2 + str r0, [r4, #0x78] + b _08026E12 +_08026C82: + ldr r0, [r4, #0x74] + ldr r3, _08026C94 @ =0xFFFE0000 + adds r0, r0, r3 + str r0, [r4, #0x74] + ldr r0, [r4, #0x78] + ldr r1, _08026C98 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x78] + b _08026E12 + .align 2, 0 +_08026C94: .4byte 0xFFFE0000 +_08026C98: .4byte 0xFFFF0000 +_08026C9C: + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026CBA + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + beq _08026CCC + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + b _08026CCC +_08026CBA: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #7 + beq _08026CCC + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC +_08026CCC: + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + mov r8, r0 + cmp r1, #0 + bne _08026CF0 + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r2, _08026CEC @ =0xFFFFFD00 + cmp r0, #0 + beq _08026D00 + movs r2, #0xc0 + lsls r2, r2, #2 + b _08026D00 + .align 2, 0 +_08026CEC: .4byte 0xFFFFFD00 +_08026CF0: + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + ldr r2, _08026D30 @ =0xFFFFFB80 + cmp r0, #0 + beq _08026D00 + movs r2, #0x90 + lsls r2, r2, #3 +_08026D00: + adds r0, r7, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D34 + adds r1, r7, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x82 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + b _08026D7E + .align 2, 0 +_08026D30: .4byte 0xFFFFFB80 +_08026D34: + adds r0, r7, #0 + adds r0, #0x82 + movs r1, #0 + strh r1, [r0] + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D60 + adds r1, r6, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + b _08026D7E +_08026D60: + adds r0, r6, #0 + adds r0, #0x82 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + adds r0, #6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bls _08026D84 + adds r1, r4, #0 + adds r1, #0x82 + lsls r0, r2, #1 + ldrh r2, [r1] +_08026D7E: + adds r0, r0, r2 + strh r0, [r1] + b _08026D8A +_08026D84: + adds r0, r4, #0 + adds r0, #0x82 + strh r1, [r0] +_08026D8A: + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + cmp r0, #0xa0 + bls _08026DA4 + ldr r0, [r4, #0x74] + ldr r3, _08026DA0 @ =0xFFFC0000 + adds r0, r0, r3 + str r0, [r4, #0x74] + b _08026DA8 + .align 2, 0 +_08026DA0: .4byte 0xFFFC0000 +_08026DA4: + movs r0, #0xa0 + strh r0, [r1] +_08026DA8: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0x9f + bhi _08026DBE + ldr r0, [r4, #0x78] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r4, #0x78] + b _08026E0C +_08026DBE: + adds r0, r5, #0 + movs r1, #3 + movs r2, #0 + bl sub_080276F4 + adds r0, r4, #0 + adds r0, #0x7d + movs r2, #0 + strb r2, [r0] + ldrb r1, [r5, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08026DEE + adds r1, r6, #0 + adds r1, #0x85 + movs r0, #1 + strb r0, [r1] + adds r1, r7, #0 + adds r1, #0x85 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x85 + strb r0, [r1] +_08026DEE: + movs r0, #8 + strb r0, [r5, #0xd] + movs r0, #4 + mov r3, r8 + strb r0, [r3] + strb r2, [r6, #0xf] + strb r2, [r7, #0xf] + strb r2, [r4, #0xf] + str r2, [sp] + adds r0, r5, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #0x10 + bl sub_08027B98 +_08026E0C: + adds r0, r5, #0 + bl sub_08027870 +_08026E12: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08026E1C +sub_08026E1C: @ 0x08026E1C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + adds r6, r0, #0 + cmp r6, #0 + bne _08026EE0 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xf] + ldr r1, [r4, #0x50] + ldrb r1, [r1, #0xf] + ldr r2, [r4, #0x68] + adds r0, r0, r1 + ldrb r2, [r2, #0xf] + adds r0, r0, r2 + cmp r0, #0xa + ble _08026EF2 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + mov r8, r1 + movs r7, #0 + mov r1, r8 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08027C54 + adds r5, r4, #0 + adds r5, #0x84 + cmp r0, #0 + beq _08026E72 + ldr r1, [r5] + ldrb r0, [r1, #4] + adds r0, #1 + strb r0, [r1, #4] + ldr r0, [r4, #0x54] + adds r0, #0x45 + movs r1, #0xff + strb r1, [r0] +_08026E72: + ldr r1, [r5] + ldrb r0, [r1, #4] + cmp r0, #3 + bne _08026EA0 + adds r0, r4, #0 + adds r0, #0x45 + strb r6, [r0] + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldr r3, [r4, #0x54] + ldr r2, [r4, #0x50] + ldr r0, [r4, #0x68] + strb r1, [r0, #0x10] + ldrb r0, [r4, #0x10] + strb r0, [r2, #0x10] + strb r0, [r3, #0x10] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + b _08026F14 +_08026EA0: + movs r0, #4 + strb r0, [r1] + ldr r1, [r5] + movs r0, #0x81 + strb r0, [r1, #1] + ldrb r0, [r4, #0x10] + mov r1, r8 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x7d + strb r0, [r1] + movs r0, #0xb + strb r0, [r4, #0xd] + ldr r0, [r5] + strb r6, [r0, #3] + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + str r6, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + ldr r1, [r5] + movs r0, #0x21 + strb r0, [r1, #1] + b _08026EF2 +_08026EE0: + subs r0, #1 + movs r2, #0 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, [r1] + str r2, [r0, #8] + ldr r0, [r1] + strb r2, [r0, #6] +_08026EF2: + adds r0, r4, #0 + bl sub_08027C54 + cmp r0, #0 + beq _08026F14 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08026F14 + adds r0, r4, #0 + movs r1, #0x3f + bl sub_08027C7C + bl sub_08078B48 +_08026F14: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08026F1C +sub_08026F1C: @ 0x08026F1C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7c + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08026F70 + adds r0, r4, #0 + bl sub_080279E8 + cmp r0, #0 + beq _08026F68 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + movs r2, #0 + strb r2, [r0, #3] + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + strb r0, [r5] + str r2, [sp] + adds r0, r4, #0 + movs r1, #0x80 + movs r2, #0x80 + movs r3, #0x80 + bl sub_08027B98 + ldrb r0, [r5] + cmp r0, #2 + bne _08026F68 + adds r0, r4, #0 + movs r1, #0 + bl sub_08027548 +_08026F68: + adds r0, r4, #0 + bl sub_080277F8 + b _08026FA0 +_08026F70: + adds r0, r4, #0 + movs r1, #0xf0 + movs r2, #0x10 + bl sub_080277B8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #0 + beq _08026FA0 + ldrb r0, [r5] + adds r0, #1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5] + movs r0, #1 + str r0, [sp] + adds r0, r4, #0 + movs r1, #0xc0 + movs r2, #0xc0 + movs r3, #0x20 + bl sub_08027B98 +_08026FA0: + add sp, #4 + pop {r4, r5, pc} + + thumb_func_start sub_08026FA4 +sub_08026FA4: @ 0x08026FA4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0x10] + movs r5, #0x7f + adds r1, r5, #0 + ands r1, r0 + strb r1, [r4, #0x10] + ldr r3, [r4, #0x54] + ldr r2, [r4, #0x50] + ldr r0, [r4, #0x68] + strb r1, [r0, #0x10] + ldrb r0, [r4, #0x10] + strb r0, [r2, #0x10] + strb r0, [r3, #0x10] + adds r3, r4, #0 + adds r3, #0x7c + ldrb r0, [r3] + cmp r0, #0 + beq _08026FD2 + movs r0, #1 + strb r0, [r3] +_08026FD2: + ldr r2, [r4, #0x54] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0x97 + bhi _08026FFE + movs r1, #0x80 + lsls r1, r1, #9 + ldrb r0, [r3] + lsls r1, r0 + ldr r0, [r2, #0x78] + adds r0, r0, r1 + str r0, [r2, #0x78] + ldr r2, [r4, #0x54] + movs r1, #0x80 + lsls r1, r1, #0xa + ldrb r3, [r3] + lsls r1, r3 + ldr r0, [r2, #0x74] + subs r0, r0, r1 + str r0, [r2, #0x74] + b _0802705C +_08026FFE: + movs r0, #7 + strb r0, [r4, #0xd] + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0 + strb r0, [r1, #3] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x2d + strb r0, [r1] + ldr r0, _08027044 @ =0x00000155 + bl sub_080A3268 + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08027048 + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + beq _0802705C + adds r0, r1, #0 + movs r1, #8 + bl sub_080042AC + b _0802705C + .align 2, 0 +_08027044: .4byte 0x00000155 +_08027048: + ldr r1, [r4, #0x54] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #7 + beq _0802705C + adds r0, r1, #0 + movs r1, #7 + bl sub_080042AC +_0802705C: + adds r0, r4, #0 + bl sub_08027870 + pop {r4, r5, pc} + + thumb_func_start sub_08027064 +sub_08027064: @ 0x08027064 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + ldr r0, [r5, #0x68] + mov sb, r0 + ldr r1, [r5, #0x50] + mov r8, r1 + movs r0, #0x60 + strh r0, [r5, #0x24] + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + beq _08027098 + ldr r0, _080270C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08027098 + movs r0, #0x7c + bl sub_080A3268 +_08027098: + adds r0, r5, #0 + adds r0, #0x84 + ldr r3, [r0] + ldrb r1, [r3, #3] + adds r7, r0, #0 + cmp r1, #0 + beq _080270E0 + ldr r0, _080270CC @ =gLinkEntity + movs r2, #0x32 + ldrsh r4, [r5, r2] + movs r1, #0x32 + ldrsh r2, [r0, r1] + cmp r4, r2 + beq _080270E0 + ldr r0, _080270C8 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _080270D4 + cmp r4, r2 + ble _080270D0 + strb r1, [r3, #0xc] + b _080270D4 + .align 2, 0 +_080270C8: .4byte gUnk_030010A0 +_080270CC: .4byte gLinkEntity +_080270D0: + movs r0, #0x10 + strb r0, [r3, #0xc] +_080270D4: + ldr r0, [r7] + ldrb r0, [r0, #0xc] + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AEF88 +_080270E0: + adds r0, r6, #0 + adds r0, #0x85 + ldrb r0, [r0] + cmp r0, #1 + bne _080270FC + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _0802710E + movs r0, #0x18 + b _08027110 +_080270FC: + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _0802710E + movs r0, #0x18 + b _08027110 +_0802710E: + movs r0, #8 +_08027110: + strb r0, [r5, #0x15] + ldr r1, [r7] + ldrb r0, [r1, #3] + cmp r0, #0 + bne _08027152 + movs r2, #0x2e + ldrsh r0, [r5, r2] + ldrh r1, [r1, #0xe] + cmp r0, r1 + bne _0802714A + mov r0, r8 + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + mov r0, sb + adds r0, #0x84 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x84 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x1e + strb r0, [r1] + ldr r1, [r7] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] + b _080271FE +_0802714A: + adds r0, r5, #0 + bl sub_080AEF88 + b _080271FE +_08027152: + adds r0, r6, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + mov r0, sb + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + mov r0, r8 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #0 + beq _080271E6 + adds r1, r5, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080271FE + mov r0, r8 + adds r0, #0x84 + movs r1, #1 + strb r1, [r0] + mov r0, sb + adds r0, #0x84 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x84 + strb r1, [r0] + movs r3, #0 + ldr r0, [r7] + ldrb r0, [r0, #3] + cmp r0, #1 + bls _080271B2 + ldr r0, _080271DC @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + movs r3, #8 + cmp r1, r0 + ble _080271B2 + movs r3, #0x18 +_080271B2: + ldr r2, [r7] + ldrb r1, [r2, #3] + cmp r1, #5 + beq _080271C0 + ldrb r0, [r5, #0x15] + cmp r0, r3 + bne _080271E0 +_080271C0: + movs r4, #0 + movs r0, #6 + strb r0, [r5, #0xd] + adds r0, r5, #0 + movs r1, #7 + movs r2, #1 + bl sub_080276F4 + ldr r0, [r7] + strb r4, [r0, #3] + adds r1, r5, #0 + adds r1, #0x7d + movs r0, #0xf + b _080271FC + .align 2, 0 +_080271DC: .4byte gLinkEntity +_080271E0: + adds r0, r1, #1 + strb r0, [r2, #3] + b _080271FE +_080271E6: + ldr r0, [r7] + ldrb r0, [r0, #3] + cmp r0, #4 + beq _080271F6 + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x1e + b _080271FC +_080271F6: + adds r1, r5, #0 + adds r1, #0x7c + movs r0, #0x3c +_080271FC: + strb r0, [r1] +_080271FE: + adds r0, r5, #0 + bl sub_08027870 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802720C +sub_0802720C: @ 0x0802720C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xd] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xd] + cmp r0, #0xc + bhi _080272CA + lsls r0, r0, #2 + ldr r1, _08027228 @ =_0802722C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08027228: .4byte _0802722C +_0802722C: @ jump table + .4byte _080272C4 @ case 0 + .4byte _08027260 @ case 1 + .4byte _08027260 @ case 2 + .4byte _0802726E @ case 3 + .4byte _080272AA @ case 4 + .4byte _0802726E @ case 5 + .4byte _080272CA @ case 6 + .4byte _080272CA @ case 7 + .4byte _08027282 @ case 8 + .4byte _080272CA @ case 9 + .4byte _080272A0 @ case 10 + .4byte _080272CA @ case 11 + .4byte _08027260 @ case 12 +_08027260: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xa0 + strh r0, [r1] + subs r1, #4 + strh r0, [r1] + b _080272AA +_0802726E: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _080272CA + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0 + strb r0, [r1] + b _080272AA +_08027282: + ldrb r0, [r4, #0xf] + cmp r0, #3 + bhi _080272CA + adds r0, r4, #0 + bl sub_0802757C + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080272CA + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + b _080272CA +_080272A0: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + bne _080272B2 +_080272AA: + adds r0, r4, #0 + bl sub_0802757C + b _080272CA +_080272B2: + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + cmp r0, #0 + beq _080272CA + movs r0, #0 + strb r0, [r2] + strb r0, [r1] + b _080272CA +_080272C4: + adds r0, r4, #0 + bl sub_0802757C +_080272CA: + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x34] + str r0, [r4, #0x34] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080272D4 +sub_080272D4: @ 0x080272D4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x50] + ldrb r0, [r0, #0xd] + cmp r0, #0xc + bls _080272E2 + b _08027532 +_080272E2: + lsls r0, r0, #2 + ldr r1, _080272EC @ =_080272F0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080272EC: .4byte _080272F0 +_080272F0: @ jump table + .4byte _08027508 @ case 0 + .4byte _08027324 @ case 1 + .4byte _08027324 @ case 2 + .4byte _08027332 @ case 3 + .4byte _0802733E @ case 4 + .4byte _08027332 @ case 5 + .4byte _08027368 @ case 6 + .4byte _08027532 @ case 7 + .4byte _08027346 @ case 8 + .4byte _08027454 @ case 9 + .4byte _0802748C @ case 10 + .4byte _08027532 @ case 11 + .4byte _08027324 @ case 12 +_08027324: + adds r1, r6, #0 + adds r1, #0x7a + movs r0, #0xa0 + strh r0, [r1] + subs r1, #4 + strh r0, [r1] + b _0802733E +_08027332: + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _0802733E + b _08027532 +_0802733E: + adds r0, r6, #0 + bl sub_0802757C + b _08027532 +_08027346: + ldrb r0, [r6, #0xf] + cmp r0, #2 + bls _0802734E + b _08027532 +_0802734E: + adds r0, r6, #0 + bl sub_0802757C + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + beq _08027360 + b _08027532 +_08027360: + ldrb r0, [r6, #0xf] + adds r0, #1 + strb r0, [r6, #0xf] + b _08027532 +_08027368: + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #2 + adds r1, r1, r0 + lsrs r1, r1, #6 + strb r1, [r5, #7] + adds r0, r6, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #0 + bne _080273A4 + b _08027532 +_080273A4: + adds r0, r6, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027444 + adds r2, r6, #0 + adds r2, #0x3d + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08027444 + ldr r0, [r6, #0x54] + ldr r0, [r0, #0x68] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + ldr r0, [r0, #0x50] + ldrb r1, [r2] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + ldrb r1, [r2] + adds r0, #0x3d + strb r1, [r0] + ldr r0, [r6, #0x54] + bl sub_08027D20 + adds r2, r0, #0 + cmp r2, #0 + beq _08027406 + ldrh r0, [r6, #0x2e] + adds r0, #1 + strh r0, [r2, #0x2e] + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + adds r0, #0x20 + adds r1, r2, #0 + adds r1, #0x63 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x62 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x62 + strb r1, [r0] +_08027406: + ldr r0, [r6, #0x54] + bl sub_08027C54 + cmp r0, #0 + beq _0802741C + ldr r0, [r6, #0x54] + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #2 + beq _08027428 +_0802741C: + ldr r0, _08027424 @ =0x00000127 + bl sub_080A3268 + b _08027444 + .align 2, 0 +_08027424: .4byte 0x00000127 +_08027428: + bl sub_08078B48 + ldr r0, _0802744C @ =gUnk_03000BF0 + ldr r2, [r6, #0x54] + str r2, [r0, #0x30] + ldr r1, _08027450 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + movs r0, #9 + strb r0, [r2, #0xd] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 +_08027444: + adds r0, r6, #0 + bl sub_08027A60 + b _08027484 + .align 2, 0 +_0802744C: .4byte gUnk_03000BF0 +_08027450: .4byte gUnk_02034490 +_08027454: + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r4, #0x80 + lsls r4, r4, #9 + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #3 + adds r1, r1, r0 + lsrs r1, r1, #7 + strb r1, [r5, #6] + ldr r5, [r6, #0x48] + adds r0, r6, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, r4, #0 + bl __divsi3 + lsls r1, r0, #2 + adds r1, r1, r0 + lsrs r1, r1, #6 + strb r1, [r5, #7] +_08027484: + adds r0, r6, #0 + bl sub_0800445C + b _08027532 +_0802748C: + adds r2, r6, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0 + bne _0802749E + adds r0, r6, #0 + bl sub_0802757C + b _080274AE +_0802749E: + adds r1, r6, #0 + adds r1, #0x84 + ldrb r0, [r1] + cmp r0, #0 + beq _080274AE + movs r0, #0 + strb r0, [r2] + strb r0, [r1] +_080274AE: + adds r2, r6, #0 + adds r2, #0x83 + adds r0, r6, #0 + adds r0, #0x81 + ldrb r1, [r0] + lsrs r0, r1, #1 + ldrb r2, [r2] + adds r0, r2, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r1 + bls _080274F4 + lsls r0, r2, #0x18 + cmp r0, #0 + ble _080274E0 + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xc + beq _08027532 + adds r0, r6, #0 + movs r1, #0xc + bl sub_080042AC + b _08027532 +_080274E0: + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xb + beq _08027532 + adds r0, r6, #0 + movs r1, #0xb + bl sub_080042AC + b _08027532 +_080274F4: + adds r0, r6, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xa + beq _08027532 + adds r0, r6, #0 + movs r1, #0xa + bl sub_080042AC + b _08027532 +_08027508: + ldr r0, [r6, #0x54] + adds r0, #0x84 + ldr r0, [r0] + ldrb r0, [r0, #3] + cmp r0, #8 + bne _08027532 + adds r0, r6, #0 + bl sub_0802757C + adds r0, r6, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #1 + bne _08027532 + adds r1, r6, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _08027532 + subs r0, #4 + strb r0, [r1] +_08027532: + ldr r0, [r6, #0x50] + ldr r0, [r0, #0x34] + str r0, [r6, #0x34] + adds r1, r6, #0 + adds r1, #0x41 + movs r0, #0 + strb r0, [r1] + adds r0, r6, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08027548 +sub_08027548: @ 0x08027548 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + adds r6, r1, #0 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xff + str r0, [sp] + adds r0, r4, #0 + movs r1, #0x90 + movs r2, #0xb0 + movs r3, #8 + bl sub_08027B98 + adds r0, r4, #0 + adds r0, #0x7d + strb r5, [r0] + adds r0, r4, #0 + movs r1, #0 + adds r2, r6, #0 + bl sub_080276F4 + add sp, #4 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802757C +sub_0802757C: @ 0x0802757C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r6, r5, #0 + adds r6, #0x7d + ldrb r1, [r6] + cmp r1, #0 + beq _080275BA + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080275AE + ldr r0, [r5, #0x54] + adds r0, #0x7d + ldrb r0, [r0] + movs r1, #0x83 + adds r1, r1, r5 + mov sl, r1 + cmp r0, #0 + beq _08027676 + movs r0, #0 + strb r0, [r6] + b _08027676 +_080275AE: + subs r0, r1, #1 + strb r0, [r6] + movs r2, #0x83 + adds r2, r2, r5 + mov sl, r2 + b _08027676 +_080275BA: + movs r0, #0x85 + adds r0, r0, r5 + mov ip, r0 + ldrb r1, [r0] + mov sb, r1 + cmp r1, #1 + bne _0802761E + adds r1, r5, #0 + adds r1, #0x82 + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x83 + adds r2, r5, #0 + adds r2, #0x81 + movs r4, #0 + ldrsb r4, [r0, r4] + movs r3, #0 + ldrsb r3, [r2, r3] + mov r8, r1 + mov sl, r0 + adds r7, r2, #0 + cmp r4, r3 + blt _08027676 + movs r0, #0 + mov r1, ip + strb r0, [r1] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08027616 + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, #0x86 + ldrh r1, [r1] + bl __divsi3 + adds r0, #1 + strb r0, [r6] + b _0802761A +_08027616: + mov r2, sb + strb r2, [r6] +_0802761A: + ldrb r0, [r7] + b _08027670 +_0802761E: + adds r2, r5, #0 + adds r2, #0x82 + adds r1, r5, #0 + adds r1, #0x86 + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + adds r1, r5, #0 + adds r1, #0x83 + movs r4, #0 + ldrsb r4, [r1, r4] + adds r0, r5, #0 + adds r0, #0x81 + ldrb r3, [r0] + mov r8, r2 + mov sl, r1 + adds r7, r0, #0 + cmn r4, r3 + bgt _08027676 + movs r1, #1 + mov r2, ip + strb r1, [r2] + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _0802766A + ldr r1, [r5, #0x50] + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + lsls r0, r0, #8 + adds r1, #0x86 + ldrh r1, [r1] + bl __divsi3 + adds r0, #1 + strb r0, [r6] + b _0802766C +_0802766A: + strb r1, [r6] +_0802766C: + ldrb r0, [r7] + rsbs r0, r0, #0 +_08027670: + lsls r0, r0, #8 + mov r1, r8 + strh r0, [r1] +_08027676: + ldr r2, [r5, #0x50] + adds r0, r2, #0 + adds r0, #0x63 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #0x10 + ldr r0, [r2, #0x30] + adds r0, r0, r1 + str r0, [r5, #0x30] + adds r0, r2, #0 + adds r0, #0x62 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #0x10 + ldr r0, [r2, #0x2c] + adds r0, r0, r1 + str r0, [r5, #0x2c] + ldrb r1, [r5, #0xe] + lsls r1, r1, #8 + mov r0, sl + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0806F62C + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _080276D2 + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x30] + str r0, [r1, #0x30] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x2c] + str r0, [r1, #0x2c] + ldr r0, [r5, #0x54] + ldrb r1, [r0, #0xe] + lsls r1, r1, #8 + adds r2, r0, #0 + adds r2, #0x83 + ldrb r2, [r2] + bl sub_0806F62C + ldr r0, [r5, #0x68] + ldr r1, [r5, #0x54] + ldrb r2, [r1, #0xa] + bl sub_080279AC +_080276D2: + ldr r0, [r5, #0x68] + ldrb r2, [r5, #0xa] + adds r1, r5, #0 + bl sub_080279AC + mov r1, sl + ldrb r0, [r1] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7f + strb r0, [r1] + 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_080276F4 +sub_080276F4: @ 0x080276F4 + push {r4, r5, r6, r7, lr} + adds r6, r2, #0 + ldr r5, [r0, #0x54] + ldr r4, [r0, #0x68] + ldr r0, [r0, #0x50] + mov ip, r0 + adds r0, #0x84 + movs r2, #0 + strb r2, [r0] + adds r0, r4, #0 + adds r0, #0x84 + strb r2, [r0] + adds r0, r5, #0 + adds r0, #0x84 + strb r2, [r0] + mov r0, ip + adds r0, #0x7e + movs r7, #0 + strh r2, [r0] + adds r0, r4, #0 + adds r0, #0x7e + strh r2, [r0] + adds r0, r5, #0 + adds r0, #0x7e + strh r2, [r0] + mov r0, ip + adds r0, #0x7d + strb r7, [r0] + adds r0, r4, #0 + adds r0, #0x7d + strb r7, [r0] + ldr r0, _080277AC @ =gUnk_080CC27C + lsls r1, r1, #2 + adds r0, r1, r0 + ldrh r2, [r0] + adds r3, r5, #0 + adds r3, #0x86 + strh r2, [r3] + ldrb r0, [r0, #2] + adds r2, r5, #0 + adds r2, #0x81 + strb r0, [r2] + ldr r0, _080277B0 @ =gUnk_080CC2BC + adds r0, r1, r0 + ldrh r2, [r0] + adds r3, r4, #0 + adds r3, #0x86 + strh r2, [r3] + ldrb r0, [r0, #2] + adds r2, r4, #0 + adds r2, #0x81 + strb r0, [r2] + ldr r0, _080277B4 @ =gUnk_080CC29C + adds r1, r1, r0 + ldrh r0, [r1] + mov r2, ip + adds r2, #0x86 + strh r0, [r2] + ldrb r0, [r1, #2] + mov r1, ip + adds r1, #0x81 + strb r0, [r1] + cmp r6, #0 + bne _080277AA + mov r0, ip + adds r0, #0x85 + strb r7, [r0] + adds r0, r4, #0 + adds r0, #0x85 + strb r7, [r0] + adds r0, r5, #0 + adds r0, #0x85 + strb r7, [r0] + mov r0, ip + adds r0, #0x82 + strh r6, [r0] + adds r0, r4, #0 + adds r0, #0x82 + strh r6, [r0] + adds r0, r5, #0 + adds r0, #0x82 + strh r6, [r0] + ldrb r0, [r1] + lsls r0, r0, #7 + ldrh r1, [r2] + bl __divsi3 + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x7d + strb r0, [r1] +_080277AA: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080277AC: .4byte gUnk_080CC27C +_080277B0: .4byte gUnk_080CC2BC +_080277B4: .4byte gUnk_080CC29C + + thumb_func_start sub_080277B8 +sub_080277B8: @ 0x080277B8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r1, [r5, #0x54] + adds r3, r1, #0 + adds r3, #0x7a + ldrh r0, [r3] + cmp r4, r0 + bls _080277DC + adds r0, r0, r2 + strh r0, [r3] + ldr r0, [r1, #0x74] + ldr r2, _080277D8 @ =0xFFFE8000 + adds r0, r0, r2 + str r0, [r1, #0x74] + b _080277F0 + .align 2, 0 +_080277D8: .4byte 0xFFFE8000 +_080277DC: + strh r4, [r3] + adds r1, #0x7c + movs r0, #8 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #3] + adds r0, #1 + strb r0, [r1, #3] +_080277F0: + adds r0, r5, #0 + bl sub_080277F8 + pop {r4, r5, pc} + + thumb_func_start sub_080277F8 +sub_080277F8: @ 0x080277F8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r3, [r6, #0x54] + ldr r5, [r6, #0x68] + ldr r4, [r6, #0x50] + ldrh r2, [r6, #0x2e] + strh r2, [r5, #0x2e] + movs r7, #0xe + strb r7, [r5, #0xe] + ldrh r0, [r6, #0x32] + subs r0, #0xe + strh r0, [r5, #0x32] + strh r2, [r4, #0x2e] + movs r0, #0x7a + adds r0, r0, r3 + mov ip, r0 + ldrh r1, [r0] + subs r1, #0xa0 + asrs r1, r1, #4 + movs r0, #0x12 + subs r0, r0, r1 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xe] + ldrh r0, [r5, #0x32] + subs r0, r0, r1 + strh r0, [r4, #0x32] + strh r2, [r3, #0x2e] + mov r1, ip + ldrh r0, [r1] + cmp r0, #0xa0 + bls _0802784E + subs r0, #0xa0 + asrs r0, r0, #2 + movs r1, #0xe + subs r1, r1, r0 + strb r1, [r3, #0xe] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + beq _08027850 + movs r0, #0 + strb r0, [r3, #0xe] + b _08027850 +_0802784E: + strb r7, [r3, #0xe] +_08027850: + ldrb r1, [r3, #0xe] + ldrh r0, [r4, #0x32] + subs r0, r0, r1 + strh r0, [r3, #0x32] + ldr r0, [r3, #0x74] + str r0, [r4, #0x74] + ldr r0, [r3, #0x78] + str r0, [r4, #0x78] + ldr r0, [r3, #0x74] + str r0, [r5, #0x74] + ldr r0, [r3, #0x78] + str r0, [r5, #0x78] + adds r0, r6, #0 + bl sub_08027984 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08027870 +sub_08027870: @ 0x08027870 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r4, [r7, #0x54] + ldr r5, [r7, #0x68] + ldr r6, [r7, #0x50] + ldr r0, [r4, #0x74] + str r0, [r6, #0x74] + ldr r0, [r4, #0x78] + str r0, [r6, #0x78] + ldr r0, [r4, #0x74] + str r0, [r5, #0x74] + ldr r0, [r4, #0x78] + str r0, [r5, #0x78] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x7f + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7f + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x83 + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r6, #0 + adds r1, #0x7f + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xa0 + bls _080278C2 + movs r0, #0xe + b _080278CC +_080278C2: + ldrh r1, [r1] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #3 + adds r0, #0xe +_080278CC: + strb r0, [r5, #0xe] + adds r1, r6, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xa0 + bls _080278EA + adds r2, r4, #0 + adds r2, #0x7a + ldrh r1, [r2] + subs r1, #0xa0 + asrs r1, r1, #4 + movs r0, #0x12 + subs r0, r0, r1 + strb r0, [r6, #0xe] + b _080278FA +_080278EA: + ldrh r1, [r1] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #2 + adds r0, #0x12 + strb r0, [r6, #0xe] + adds r2, r4, #0 + adds r2, #0x7a +_080278FA: + adds r0, r2, #0 + ldrh r1, [r0] + cmp r1, #0xa0 + bls _0802791A + adds r0, r1, #0 + subs r0, #0xa0 + asrs r0, r0, #2 + movs r1, #0xe + subs r1, r1, r0 + strb r1, [r4, #0xe] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + beq _08027934 + movs r0, #0 + b _08027932 +_0802791A: + cmp r1, #0x7f + bhi _08027928 + ldrh r1, [r0] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #2 + b _08027930 +_08027928: + ldrh r1, [r2] + movs r0, #0xa0 + subs r0, r0, r1 + asrs r0, r0, #1 +_08027930: + adds r0, #0xe +_08027932: + strb r0, [r4, #0xe] +_08027934: + ldr r0, [r7, #0x2c] + str r0, [r5, #0x2c] + ldr r0, [r7, #0x30] + str r0, [r5, #0x30] + ldrb r1, [r5, #0xe] + lsls r1, r1, #8 + adds r0, r5, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0806F62C + ldr r0, [r5, #0x2c] + str r0, [r6, #0x2c] + ldr r0, [r5, #0x30] + str r0, [r6, #0x30] + ldrb r1, [r6, #0xe] + lsls r1, r1, #8 + adds r0, r6, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r6, #0 + bl sub_0806F62C + ldr r0, [r6, #0x2c] + str r0, [r4, #0x2c] + ldr r0, [r6, #0x30] + str r0, [r4, #0x30] + ldrb r1, [r4, #0xe] + lsls r1, r1, #8 + adds r0, r4, #0 + adds r0, #0x83 + ldrb r2, [r0] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r7, #0 + bl sub_08027984 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08027984 +sub_08027984: @ 0x08027984 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + ldr r5, [r4, #0x68] + ldr r6, [r4, #0x50] + ldrb r2, [r1, #0xa] + bl sub_080279AC + ldrb r2, [r5, #0xa] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080279AC + ldrb r2, [r6, #0xa] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080279AC + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080279AC +sub_080279AC: @ 0x080279AC + push {r4, r5, r6, lr} + mov ip, r1 + movs r3, #4 + subs r3, r3, r2 + ldrh r1, [r1, #0x2e] + ldrh r4, [r0, #0x2e] + subs r1, r1, r4 + mov r6, ip + adds r6, #0x62 + strb r1, [r6] + mov r2, ip + ldrh r1, [r2, #0x32] + ldrh r2, [r0, #0x32] + adds r0, r2, r3 + subs r1, r1, r0 + mov r5, ip + adds r5, #0x63 + strb r1, [r5] + mov r0, ip + strh r4, [r0, #0x2e] + adds r2, r2, r3 + strh r2, [r0, #0x32] + ldr r1, [r0, #0x48] + ldrb r0, [r6] + strb r0, [r1] + mov r2, ip + ldr r1, [r2, #0x48] + ldrb r0, [r5] + strb r0, [r1, #1] + pop {r4, r5, r6, pc} + + thumb_func_start sub_080279E8 +sub_080279E8: @ 0x080279E8 + push {r4, lr} + sub sp, #4 + adds r2, r0, #0 + ldr r4, [r2, #0x54] + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0x80 + bne _08027A20 + adds r0, r2, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r0, #0xe + ldr r0, [r0] + ldrb r0, [r0, #5] + subs r1, r1, r0 + cmp r1, #0x80 + bne _08027A58 + adds r0, r2, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r0, #1 + str r0, [sp] + adds r0, r2, #0 + movs r2, #0xa0 + movs r3, #0x20 + bl sub_08027B98 + b _08027A58 +_08027A20: + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + adds r3, r0, #0 + cmp r1, #0xa0 + bls _08027A30 + subs r0, r1, #4 + b _08027A32 +_08027A30: + movs r0, #0xa0 +_08027A32: + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r2, [r0] + adds r1, r0, #0 + cmp r2, #0xa0 + bls _08027A44 + subs r0, r2, #4 + b _08027A46 +_08027A44: + movs r0, #0xa0 +_08027A46: + strh r0, [r1] + ldrh r0, [r3] + cmp r0, #0xa0 + bne _08027A58 + ldrh r0, [r1] + cmp r0, #0xa0 + bne _08027A58 + movs r0, #1 + b _08027A5A +_08027A58: + movs r0, #0 +_08027A5A: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08027A60 +sub_08027A60: @ 0x08027A60 + push {lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027A78 + ldr r0, [r2, #0x74] + movs r1, #0x80 + lsls r1, r1, #7 + b _08027A7C +_08027A78: + ldr r0, [r2, #0x74] + ldr r1, _08027AA0 @ =0xFFFFC000 +_08027A7C: + adds r0, r0, r1 + str r0, [r2, #0x74] + adds r3, r2, #0 + adds r3, #0x7c + ldrb r0, [r3] + adds r2, r0, #1 + strb r2, [r3] + movs r0, #0x7f + ands r0, r2 + cmp r0, #0x28 + bne _08027A9C + movs r1, #0x80 + movs r0, #0x80 + ands r2, r0 + eors r2, r1 + strb r2, [r3] +_08027A9C: + pop {pc} + .align 2, 0 +_08027AA0: .4byte 0xFFFFC000 + + thumb_func_start sub_08027AA4 +sub_08027AA4: @ 0x08027AA4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08027B94 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + beq _08027AC2 + cmp r0, #0x1b + beq _08027B44 + b _08027B94 +_08027AC2: + movs r0, #0x84 + bl sub_080A3268 + ldrb r3, [r5, #0xb] + adds r0, r5, #0 + movs r1, #0x49 + movs r2, #9 + bl sub_080A2988 + ldr r0, _08027B3C @ =0x00000155 + bl sub_080A3268 + adds r0, r5, #0 + adds r0, #0x84 + ldr r4, [r0] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #3 + strb r0, [r1] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldrb r0, [r4, #6] + movs r1, #3 + bl __divsi3 + adds r1, r0, #0 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x15 + ldrb r2, [r4, #5] + cmp r0, r2 + beq _08027B06 + lsls r0, r1, #3 + strb r0, [r4, #5] +_08027B06: + movs r0, #0xb4 + str r0, [r4, #8] + movs r0, #5 + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _08027B94 + movs r0, #0x40 + strb r0, [r4, #1] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0 + strb r0, [r1] + ldrb r0, [r5, #0xd] + cmp r0, #2 + bne _08027B2A + adds r0, r5, #0 + bl sub_08027BBC +_08027B2A: + adds r0, r5, #0 + bl sub_08027D20 + ldr r0, _08027B40 @ =0x00000127 + bl sub_080A3268 +_08027B36: + movs r0, #1 + b _08027B96 + .align 2, 0 +_08027B3C: .4byte 0x00000155 +_08027B40: .4byte 0x00000127 +_08027B44: + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + ldr r0, [r5, #0x4c] + ldrb r0, [r0, #0xa] + adds r0, #1 + cmp r0, #2 + beq _08027B74 + cmp r0, #2 + bgt _08027B60 + cmp r0, #1 + beq _08027B84 + b _08027B36 +_08027B60: + cmp r0, #3 + bne _08027B36 + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x1a + strb r0, [r1] + adds r1, #4 + movs r0, #0xe0 + lsls r0, r0, #1 + b _08027B90 +_08027B74: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + b _08027B90 +_08027B84: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0x10 + strb r0, [r1] + adds r1, #4 + adds r0, #0xf0 +_08027B90: + strh r0, [r1] + b _08027B36 +_08027B94: + movs r0, #0 +_08027B96: + pop {r4, r5, pc} + + thumb_func_start sub_08027B98 +sub_08027B98: @ 0x08027B98 + push {r4, lr} + mov ip, r0 + ldr r4, [sp, #8] + adds r0, #0x82 + strb r1, [r0] + subs r0, #1 + strb r2, [r0] + subs r0, #1 + strb r3, [r0] + cmp r4, #0xff + beq _08027BB4 + mov r0, ip + strb r4, [r0, #0xe] + b _08027BBA +_08027BB4: + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xe] +_08027BBA: + pop {r4, pc} + + thumb_func_start sub_08027BBC +sub_08027BBC: @ 0x08027BBC + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r4, #0 + movs r0, #0xa + strb r0, [r6, #0xd] + adds r5, r6, #0 + adds r5, #0x84 + ldr r0, [r5] + strb r4, [r0, #1] + adds r0, r6, #0 + movs r1, #7 + movs r2, #1 + bl sub_080276F4 + ldr r0, [r6, #0x54] + adds r0, #0x7d + strb r4, [r0] + movs r3, #0 + strh r4, [r6, #0x24] + ldr r0, [r5] + strb r3, [r0, #3] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r0, [r5] + ldrh r0, [r0, #0xe] + cmp r1, r0 + ble _08027C0A + movs r0, #0x18 + strb r0, [r6, #0x15] + ldr r2, [r6, #0x54] + ldr r1, [r6, #0x50] + ldr r0, [r6, #0x68] + adds r0, #0x85 + strb r3, [r0] + adds r1, #0x85 + strb r3, [r1] + adds r2, #0x85 + strb r3, [r2] + b _08027C22 +_08027C0A: + movs r0, #8 + strb r0, [r6, #0x15] + ldr r3, [r6, #0x54] + ldr r2, [r6, #0x50] + ldr r0, [r6, #0x68] + adds r0, #0x85 + movs r1, #1 + strb r1, [r0] + adds r2, #0x85 + strb r1, [r2] + adds r3, #0x85 + strb r1, [r3] +_08027C22: + ldrb r0, [r6, #0x15] + lsrs r0, r0, #2 + strb r0, [r6, #0x14] + ldr r0, _08027C44 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r6, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + cmp r1, r0 + beq _08027C52 + cmp r1, r0 + ble _08027C48 + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0 + b _08027C50 + .align 2, 0 +_08027C44: .4byte gLinkEntity +_08027C48: + adds r0, r6, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #0x10 +_08027C50: + strb r0, [r1, #0xc] +_08027C52: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08027C54 +sub_08027C54: @ 0x08027C54 + push {lr} + ldr r2, _08027C74 @ =gUnk_080CC2DC + adds r1, r0, #0 + adds r1, #0x84 + ldr r1, [r1] + ldrb r1, [r1, #4] + adds r1, r1, r2 + ldr r0, [r0, #0x54] + adds r0, #0x45 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bhi _08027C78 + movs r0, #0 + b _08027C7A + .align 2, 0 +_08027C74: .4byte gUnk_080CC2DC +_08027C78: + movs r0, #1 +_08027C7A: + pop {pc} + + thumb_func_start sub_08027C7C +sub_08027C7C: @ 0x08027C7C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r4, #0x54] + bl sub_08027C9C + ldr r0, [r4, #0x68] + adds r1, r5, #0 + bl sub_08027C9C + ldr r0, [r4, #0x50] + adds r1, r5, #0 + bl sub_08027C9C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08027C9C +sub_08027C9C: @ 0x08027C9C + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + bne _08027D1E + adds r0, r5, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08027D1E + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #6] + subs r0, r0, r1 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + bl sub_08000E50 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #6] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r4, #0x2e] + adds r1, r1, r0 + strh r1, [r4, #0x2e] + adds r0, r5, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #7] + subs r0, r0, r1 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + bl sub_08000E50 + ldr r1, [r5, #0x48] + ldrb r1, [r1, #7] + lsls r1, r1, #1 + bl __modsi3 + ldrh r1, [r4, #0x32] + adds r1, r1, r0 + strh r1, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08027D1E: + pop {r4, r5, pc} + + thumb_func_start sub_08027D20 +sub_08027D20: @ 0x08027D20 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x15 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r4, r0, #0 + cmp r4, #0 + beq _08027D66 + movs r0, #0xc9 + strh r0, [r4, #0x12] + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x3e + bl sub_080ADF80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08027D5E + adds r0, r4, #0 + movs r1, #0x2b + bl sub_0801D040 + b _08027D66 +_08027D5E: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_0801D040 +_08027D66: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08027D6C +sub_08027D6C: @ 0x08027D6C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08027D88 @ =gUnk_080CC6FC + 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 +_08027D88: .4byte gUnk_080CC6FC + + thumb_func_start sub_08027D8C +sub_08027D8C: @ 0x08027D8C + push {lr} + ldr r2, _08027DA0 @ =gUnk_080CC714 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08027DA0: .4byte gUnk_080CC714 + + thumb_func_start sub_08027DA4 +sub_08027DA4: @ 0x08027DA4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + cmp r0, #1 + bne _08027DC4 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x8c + strb r0, [r2] + b _08027E0E +_08027DC4: + ldrb r0, [r4, #0xc] + cmp r0, #7 + bne _08027DD2 + adds r0, r4, #0 + bl sub_0802810C + b _08027E0E +_08027DD2: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r2, [r0] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08027E0E + movs r1, #0x7f + ands r1, r2 + cmp r1, #0 + bne _08027E0E + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x5f + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + ldr r0, _08027E38 @ =gLinkEntity + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r4, #0 + adds r1, #0x83 + strb r0, [r1] +_08027E0E: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08027E1C + movs r0, #0x20 + strb r0, [r4, #0xe] +_08027E1C: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08027E2E + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08027E2E: + ldr r1, _08027E3C @ =gUnk_080CC6FC + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08027E38: .4byte gLinkEntity +_08027E3C: .4byte gUnk_080CC6FC + + thumb_func_start sub_08027E40 +sub_08027E40: @ 0x08027E40 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #2 + bne _08027E62 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #0xff + beq _08027E62 + adds r0, r4, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r0, [r5] + bl sub_08028224 +_08027E62: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_139 +nullsub_139: @ 0x08027E6C + bx lr + .align 2, 0 + + thumb_func_start sub_08027E70 +sub_08027E70: @ 0x08027E70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r3, [r4, #0xa] + cmp r3, #1 + beq _08027EA6 + cmp r3, #1 + bgt _08027E88 + cmp r3, #0 + beq _08027E8E + b _08027EE4 +_08027E88: + cmp r3, #2 + beq _08027EC4 + b _08027EE4 +_08027E8E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strb r3, [r4, #0xe] + b _08027EE4 +_08027EA6: + movs r2, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08027EE4 +_08027EC4: + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r3, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x3f + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08027EE4: + movs r0, #0 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + strb r0, [r4, #0x14] + adds r1, #1 + strb r0, [r1] + subs r1, #3 + movs r0, #0xff + strb r0, [r1] + pop {r4, pc} + + thumb_func_start sub_08027EFC +sub_08027EFC: @ 0x08027EFC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + beq _08027F7C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08027F68 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08027F32 + bl sub_08000E50 + movs r1, #0x30 + ands r1, r0 + cmp r1, #0 + beq _08027F32 + adds r0, r4, #0 + bl sub_08049EE4 + b _08027F38 +_08027F32: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] +_08027F38: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08027F5A + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + movs r0, #8 + strb r0, [r4, #0xe] +_08027F5A: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + b _08027F7C +_08027F68: + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08027F7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_12 +nullsub_12: @ 0x08027F80 + bx lr + .align 2, 0 + + thumb_func_start sub_08027F84 +sub_08027F84: @ 0x08027F84 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08027FB0 + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #9 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC +_08027FB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08027FB4 +sub_08027FB4: @ 0x08027FB4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08027FD6 + movs r1, #1 + movs r0, #1 + strb r0, [r2, #0xc] + strb r0, [r2, #0xe] + adds r3, r2, #0 + adds r3, #0x3b + ldrb r0, [r3] + orrs r0, r1 + strb r0, [r3] +_08027FD6: + adds r0, r2, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08027FE0 +sub_08027FE0: @ 0x08027FE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08028028 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + movs r2, #8 + movs r0, #8 + strb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x41 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08028028: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802802C +sub_0802802C: @ 0x0802802C + 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 _0802805A + movs r2, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0x15] + strb r2, [r4, #0xe] + adds r0, r4, #0 + bl sub_080A29BC +_0802805A: + pop {r4, pc} + + thumb_func_start sub_0802805C +sub_0802805C: @ 0x0802805C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #2 + bl sub_08004276 + bl sub_0807953C + cmp r0, #0 + beq _0802807E + bl sub_08000E50 + ldrb r2, [r5, #0xf] + adds r2, #1 + movs r1, #1 + ands r1, r0 + adds r2, r2, r1 + strb r2, [r5, #0xf] +_0802807E: + ldrb r0, [r5, #0xf] + cmp r0, #0x18 + bhi _0802808E + ldr r0, _08028098 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + bne _0802809C +_0802808E: + adds r0, r5, #0 + bl sub_0802810C + b _08028102 + .align 2, 0 +_08028098: .4byte gUnk_02002A40 +_0802809C: + bl sub_08077B2C + ldr r2, _08028104 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _08028108 @ =gLinkEntity + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080280F0 + adds r0, r5, #0 + bl sub_080281A0 +_080280F0: + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08028102 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_08028102: + pop {r4, r5, pc} + .align 2, 0 +_08028104: .4byte gUnk_03003F80 +_08028108: .4byte gLinkEntity + + thumb_func_start sub_0802810C +sub_0802810C: @ 0x0802810C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08028198 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x41 + strb r0, [r2, #2] + strb r1, [r2, #0xa] + ldr r0, [r2, #0x30] + subs r1, #0x11 + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _0802819C @ =gLinkEntity + mov ip, r0 + ldrb r0, [r0, #0x10] + movs r1, #0x80 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + movs r3, #0 + mov r2, ip + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + mov r5, ip + adds r5, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + mov r1, ip + adds r1, #0x63 + movs r0, #0 + ldrsb r0, [r1, r0] + mov r2, ip + strh r0, [r2, #0x36] + strb r3, [r1] + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08028196 + movs r0, #0xee + strb r0, [r1] +_08028196: + pop {r4, r5, pc} + .align 2, 0 +_08028198: .4byte gUnk_03003F80 +_0802819C: .4byte gLinkEntity + + thumb_func_start sub_080281A0 +sub_080281A0: @ 0x080281A0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x19 + strb r0, [r4, #0xf] + movs r0, #0xe + bl sub_080281E0 + cmp r0, #0 + beq _080281BA + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0xe + b _080281CA +_080281BA: + movs r0, #0xd + bl sub_080281E0 + cmp r0, #0 + beq _080281D6 + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0xd +_080281CA: + strb r1, [r0] + movs r0, #0xaf + lsls r0, r0, #3 + bl sub_08056378 + b _080281DE +_080281D6: + movs r0, #1 + rsbs r0, r0, #0 + bl ModHealth +_080281DE: + pop {r4, pc} + + thumb_func_start sub_080281E0 +sub_080281E0: @ 0x080281E0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r4, #0 + bl GetInventoryValue + cmp r0, #1 + bne _0802821A + ldr r6, _08028220 @ =gUnk_02002A40 + adds r5, r6, #0 + adds r5, #0xb4 + ldrb r0, [r5] + bl sub_080544B4 + cmp r0, #0 + beq _08028200 + strb r4, [r5] +_08028200: + adds r5, r6, #0 + adds r5, #0xb5 + ldrb r0, [r5] + bl sub_080544B4 + cmp r0, #0 + beq _08028210 + strb r4, [r5] +_08028210: + adds r0, r7, #0 + movs r1, #0 + bl sub_0807CAA0 + movs r4, #1 +_0802821A: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08028220: .4byte gUnk_02002A40 + + thumb_func_start sub_08028224 +sub_08028224: @ 0x08028224 + push {lr} + movs r1, #0 + movs r2, #1 + bl sub_080A7C18 + ldr r0, _08028238 @ =0x00000579 + bl sub_08056378 + pop {pc} + .align 2, 0 +_08028238: .4byte 0x00000579 + + thumb_func_start sub_0802823C +sub_0802823C: @ 0x0802823C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08028268 @ =gUnk_080CC790 + bl sub_0800129E + movs r3, #0x20 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _08028266 + ldr r0, [r1, #4] + cmp r0, #0 + beq _08028266 + adds r0, r4, #0 + bl sub_0806FA24 +_08028266: + pop {r4, pc} + .align 2, 0 +_08028268: .4byte gUnk_080CC790 + + thumb_func_start sub_0802826C +sub_0802826C: @ 0x0802826C + push {lr} + ldr r2, _08028280 @ =gUnk_080CC7A8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08028280: .4byte gUnk_080CC7A8 + + thumb_func_start sub_08028284 +sub_08028284: @ 0x08028284 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08028298 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08028298: + ldr r1, _080282BC @ =gUnk_080CC790 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080282DE + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _080282C0 + adds r0, r4, #0 + bl sub_08028754 + b _080282DE + .align 2, 0 +_080282BC: .4byte gUnk_080CC790 +_080282C0: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080282DE + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r1, #7 + movs r0, #0x16 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028784 +_080282DE: + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r1, [r1] + adds r0, #0x3d + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r5, [r0] + cmp r5, #0 + bne _0802830C + movs r0, #0 + strh r5, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287E0 + ldr r0, [r4, #0x54] + bl sub_0805E7BC + str r5, [r4, #0x54] +_0802830C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_13 +nullsub_13: @ 0x08028310 + bx lr + .align 2, 0 + + thumb_func_start sub_08028314 +sub_08028314: @ 0x08028314 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r2, #1 + strb r2, [r4, #0xc] + strb r1, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #5 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + subs r0, #7 + strb r1, [r0] + adds r0, #8 + strb r2, [r0] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802835E + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_080287E0 + b _08028368 +_0802835E: + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08028604 +_08028368: + movs r0, #3 + bl sub_080A7EE0 + cmp r0, #0 + beq _08028376 + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_08028376: + pop {r4, pc} + + thumb_func_start sub_08028378 +sub_08028378: @ 0x08028378 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _0802838A + subs r0, #1 + strb r0, [r1] +_0802838A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080283B8 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #0xf + bls _080283B0 + adds r0, r4, #0 + bl sub_08028728 + b _080283FC +_080283B0: + adds r0, r4, #0 + bl sub_08028604 + b _080283FC +_080283B8: + adds r0, r4, #0 + bl sub_080286CC + cmp r0, #0 + beq _080283CE + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_080283CE: + adds r0, r4, #0 + bl sub_080288A4 + cmp r0, #0 + beq _080283FC + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287E0 +_080283FC: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _08028414 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _08028418 + adds r0, r4, #0 + bl sub_08028754 + b _08028418 +_08028414: + adds r0, #1 + strb r0, [r4, #0xf] +_08028418: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + + thumb_func_start sub_08028420 +sub_08028420: @ 0x08028420 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802844C + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08028604 + b _08028462 +_0802844C: + adds r0, r4, #0 + bl sub_080286CC + cmp r0, #0 + beq _08028462 + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_08028462: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _0802847A + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802847E + adds r0, r4, #0 + bl sub_08028754 + b _0802847E +_0802847A: + adds r0, #1 + strb r0, [r4, #0xf] +_0802847E: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028488 +sub_08028488: @ 0x08028488 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08028520 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #2 + beq _080284D2 + cmp r1, #2 + ble _080284F0 + cmp r1, #3 + beq _080284B4 + cmp r1, #4 + beq _080284E6 + b _080284F0 +_080284B4: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + movs r0, #0x8f + lsls r0, r0, #1 + bl sub_08004488 + b _0802850A +_080284D2: + strb r1, [r4, #0xc] + strh r2, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x40 + b _08028508 +_080284E6: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_080284F0: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r3] + movs r0, #0x80 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x22 +_08028508: + strb r1, [r4, #0xe] +_0802850A: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080287E0 +_08028520: + adds r0, r4, #0 + bl sub_08028858 + pop {r4, pc} + + thumb_func_start sub_08028528 +sub_08028528: @ 0x08028528 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r5, r0, #0 + cmp r5, #0 + bne _08028542 + strb r5, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028728 + b _08028600 +_08028542: + adds r0, r4, #0 + bl sub_080288C0 + ldr r1, _08028590 @ =gUnk_080CC944 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #6] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #7] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x7a + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _08028594 + movs r0, #0 + strb r0, [r6] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x16 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028784 + adds r1, r4, #0 + adds r1, #0x7b + b _080285EE + .align 2, 0 +_08028590: .4byte gUnk_080CC944 +_08028594: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x20 + bne _080285BC + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + adds r5, r0, #0 + ldrb r0, [r4, #0x15] + adds r1, r5, #0 + bl sub_08028828 + cmp r0, #0 + beq _080285BC + strb r5, [r4, #0x15] +_080285BC: + ldrb r1, [r4, #0xe] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080285D6 + movs r0, #0xf0 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX +_080285D6: + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bne _080285EE + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] +_080285EE: + ldrb r0, [r1] + cmp r0, #0x20 + bls _080285FA + adds r0, r4, #0 + bl sub_080AEF88 +_080285FA: + adds r0, r4, #0 + bl sub_08004274 +_08028600: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08028604 +sub_08028604: @ 0x08028604 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #0 + strb r1, [r4, #0xf] + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #1 + bne _080286B0 + bl sub_08000E50 + ldr r2, _08028650 @ =gUnk_080CC7BC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08028658 + bl sub_08000E50 + ldr r2, _08028654 @ =gUnk_080CC7D0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r0, #0x18 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080286B8 + .align 2, 0 +_08028650: .4byte gUnk_080CC7BC +_08028654: .4byte gUnk_080CC7D0 +_08028658: + adds r0, r4, #0 + bl sub_08049EE4 + adds r5, r0, #0 + adds r6, r4, #0 + adds r6, #0x83 + ldrb r0, [r6] + cmp r0, #0 + bne _08028684 + bl sub_08000E50 + ldr r2, _08028680 @ =gUnk_080CC7C0 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r5, r5, r0 + b _080286A2 + .align 2, 0 +_08028680: .4byte gUnk_080CC7C0 +_08028684: + bl sub_08000E50 + ldr r2, _080286AC @ =gUnk_080CC7C0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r5, r5, r0 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_080286A2: + adds r0, r5, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080286B8 + .align 2, 0 +_080286AC: .4byte gUnk_080CC7C0 +_080286B0: + movs r0, #0xc + strb r0, [r4, #0xe] + strh r1, [r4, #0x24] + ldrb r0, [r4, #0x15] +_080286B8: + lsrs r5, r0, #2 + ldrb r0, [r4, #0x14] + cmp r5, r0 + beq _080286C8 + strb r5, [r4, #0x14] + adds r0, r4, #0 + bl sub_080287E0 +_080286C8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080286CC +sub_080286CC: @ 0x080286CC + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _08028724 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08028724 + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + bne _080286FC + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x30 + bl sub_0806FC80 + cmp r0, #0 + bne _08028720 +_080286FC: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _08028724 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + ldrb r5, [r5, #0x14] + cmp r0, r5 + bne _08028724 +_08028720: + movs r0, #1 + b _08028726 +_08028724: + movs r0, #0 +_08028726: + pop {r4, r5, pc} + + thumb_func_start sub_08028728 +sub_08028728: @ 0x08028728 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080287B4 + adds r4, #0x82 + movs r0, #2 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08028754 +sub_08028754: @ 0x08028754 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + movs r2, #0 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080287B4 + adds r4, #0x82 + movs r0, #3 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028784 +sub_08028784: @ 0x08028784 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + movs r1, #0 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080287B4 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0xe] + adds r4, #0x82 + movs r0, #4 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_080287B4 +sub_080287B4: @ 0x080287B4 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + movs r0, #0 + strh r1, [r2, #0x24] + adds r1, r2, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r2, #0 + bl sub_080287E0 + pop {pc} + + thumb_func_start sub_080287E0 +sub_080287E0: @ 0x080287E0 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x14] + lsrs r2, r0, #1 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #4 + bhi _0802881E + lsls r0, r0, #2 + ldr r1, _080287FC @ =_08028800 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080287FC: .4byte _08028800 +_08028800: @ jump table + .4byte _0802881E @ case 0 + .4byte _08028814 @ case 1 + .4byte _0802881C @ case 2 + .4byte _08028818 @ case 3 + .4byte _08028814 @ case 4 +_08028814: + adds r2, #4 + b _0802881E +_08028818: + adds r2, #8 + b _0802881E +_0802881C: + adds r2, #0xc +_0802881E: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_08028828 +sub_08028828: @ 0x08028828 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r0, r3, #4 + movs r2, #0x18 + ands r0, r2 + adds r1, r4, #4 + ands r1, r2 + cmp r0, r1 + bne _08028852 + adds r0, r3, #5 + movs r1, #7 + ands r0, r1 + adds r2, r4, #5 + ands r2, r1 + cmp r0, #2 + bhi _08028852 + cmp r2, #2 + bhi _08028852 + movs r0, #1 + b _08028854 +_08028852: + movs r0, #0 +_08028854: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028858 +sub_08028858: @ 0x08028858 + push {r4, lr} + adds r4, r0, #0 + bl sub_080288C0 + ldr r1, _080288A0 @ =gUnk_080CC944 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldr r1, [r4, #0x48] + ldrb r0, [r2] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #1] + strb r0, [r1, #1] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #6] + strb r0, [r1, #6] + ldr r1, [r4, #0x48] + ldrb r0, [r2, #7] + strb r0, [r1, #7] + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _08028890 + strh r0, [r4, #0x24] +_08028890: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080288A0: .4byte gUnk_080CC944 + + thumb_func_start sub_080288A4 +sub_080288A4: @ 0x080288A4 + ldr r2, _080288BC @ =gUnk_080CC7D8 + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r0, #0x2a] + ldrh r1, [r1] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_080288BC: .4byte gUnk_080CC7D8 + + thumb_func_start sub_080288C0 +sub_080288C0: @ 0x080288C0 + push {lr} + mov ip, r0 + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _08028908 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028908 + adds r0, r2, #0 + adds r0, #0x3e + ldrb r0, [r0] + mov r1, ip + adds r1, #0x3e + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3d + ldrb r0, [r0] + rsbs r0, r0, #0 + subs r1, #1 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x46 + ldrh r0, [r0] + adds r1, #9 + movs r3, #0 + strh r0, [r1] + adds r2, #0x42 + ldrb r1, [r2] + mov r0, ip + adds r0, #0x42 + strb r1, [r0] + strb r3, [r2] +_08028908: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802890C +sub_0802890C: @ 0x0802890C + push {lr} + ldr r1, _08028918 @ =gUnk_080CC9C8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08028918: .4byte gUnk_080CC9C8 + + thumb_func_start sub_0802891C +sub_0802891C: @ 0x0802891C + push {lr} + ldr r2, _08028930 @ =gUnk_080CC9E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08028930: .4byte gUnk_080CC9E0 + + thumb_func_start sub_08028934 +sub_08028934: @ 0x08028934 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + bne _08028988 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x42 + bne _08028988 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #4 + bl sub_080290E0 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08028982 + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] +_08028982: + ldr r0, _0802898C @ =0x000001BB + bl sub_08004488 +_08028988: + pop {r4, pc} + .align 2, 0 +_0802898C: .4byte 0x000001BB + + thumb_func_start nullsub_140 +nullsub_140: @ 0x08028990 + bx lr + .align 2, 0 + + thumb_func_start sub_08028994 +sub_08028994: @ 0x08028994 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + movs r5, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + strb r5, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08028E9C + ldr r0, [r4, #0x7c] + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080289D4 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CBE4 + cmp r0, #0 + beq _080289FC +_080289D4: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0802925C + adds r0, r4, #0 + movs r1, #0 + bl sub_080290E0 + b _08028A42 +_080289FC: + strb r5, [r4, #0xe] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08028A44 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x76 + strh r1, [r0] + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + subs r1, #0x34 + movs r0, #0x41 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08028FFC +_08028A42: + pop {r4, r5, pc} + .align 2, 0 +_08028A44: .4byte gUnk_03000BF0 + + thumb_func_start sub_08028A48 +sub_08028A48: @ 0x08028A48 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08028A5A + subs r0, #1 + strb r0, [r4, #0xe] + b _08028A72 +_08028A5A: + adds r0, r4, #0 + movs r1, #0 + bl sub_08028F98 + cmp r0, #0 + beq _08028A72 + adds r0, r4, #0 + bl sub_08029078 + strb r5, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] +_08028A72: + pop {r4, r5, pc} + + thumb_func_start sub_08028A74 +sub_08028A74: @ 0x08028A74 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bls _08028A84 + b _08028BA6 +_08028A84: + lsls r0, r0, #2 + ldr r1, _08028A90 @ =_08028A94 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08028A90: .4byte _08028A94 +_08028A94: @ jump table + .4byte _08028AA8 @ case 0 + .4byte _08028ACA @ case 1 + .4byte _08028B1A @ case 2 + .4byte _08028B54 @ case 3 + .4byte _08028B76 @ case 4 +_08028AA8: + movs r6, #1 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + strb r6, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + b _08028B6C +_08028ACA: + movs r6, #1 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08028AF6 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #2 + bl sub_080290E0 + b _08028BA6 +_08028AF6: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _08028BA6 + adds r0, r4, #0 + bl sub_08028FDC + cmp r0, #0 + beq _08028B14 + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 +_08028B14: + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08028BA6 +_08028B1A: + movs r6, #1 + adds r0, r4, #0 + bl sub_080290FC + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08028BA6 + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldrb r1, [r5] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5] + movs r0, #3 + strb r0, [r4, #0xd] + b _08028BA6 +_08028B54: + movs r6, #2 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028BA6 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] +_08028B6C: + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 + b _08028BA6 +_08028B76: + movs r6, #2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08028BA6 + adds r0, r4, #0 + movs r1, #0 + bl sub_08028F98 + adds r5, r0, #0 + cmp r5, #0 + beq _08028BB4 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08028FDC + b _08028BC2 +_08028BA6: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08028F98 + adds r5, r0, #0 + cmp r5, #0 + bne _08028BC2 +_08028BB4: + adds r0, r4, #0 + bl sub_08028FFC + strb r5, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08028BC2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08028BC4 +sub_08028BC4: @ 0x08028BC4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08028BD4 + cmp r0, #1 + beq _08028C14 + b _08028C76 +_08028BD4: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08028C0E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028C76 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #5 + bl sub_080290E0 + 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] + b _08028C76 +_08028C0E: + subs r0, #1 + strb r0, [r4, #0xe] + b _08028C76 +_08028C14: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08028C76 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #5 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080290E0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + adds r2, r0, #0 + cmp r2, #0 + beq _08028C66 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x36] + subs r0, #0xc + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #2 + bl sub_0805E3A0 +_08028C66: + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + bl sub_0807CCC8 + adds r0, r4, #0 + bl sub_0802925C +_08028C76: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + + thumb_func_start sub_08028C84 +sub_08028C84: @ 0x08028C84 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08028CD2 + movs r0, #0x30 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + adds r5, r0, #0 + cmp r5, #0 + beq _08028CB4 + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08028CD2 + adds r0, r4, #0 + bl sub_0804AA1C + b _08028CD2 +_08028CB4: + adds r0, r4, #0 + bl sub_08028FDC + adds r1, r4, #0 + adds r1, #0x80 + cmp r0, #0 + bne _08028CC8 + ldrb r0, [r1] + cmp r0, #0 + beq _08028CD2 +_08028CC8: + strb r5, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080290E0 +_08028CD2: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08028F0C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08028CE8 +sub_08028CE8: @ 0x08028CE8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x7c] + ldr r0, _08028D30 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08028DCC + adds r0, r5, #0 + bl sub_0802915C + cmp r0, #0 + beq _08028DCC + bl sub_08056338 + cmp r0, #0 + bne _08028DCC + ldr r0, _08028D34 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r1, [r6, #2] + ldrh r0, [r0] + cmp r1, r0 + bhi _08028DC0 + adds r0, r5, #0 + bl sub_080291DC + cmp r0, #0 + beq _08028D3C + ldr r0, _08028D38 @ =0x00002904 + bl sub_08056378 + movs r0, #0 + bl sub_08078A90 + b _08028DCC + .align 2, 0 +_08028D30: .4byte gUnk_02000050 +_08028D34: .4byte gUnk_02002A40 +_08028D38: .4byte 0x00002904 +_08028D3C: + ldrh r0, [r6, #2] + rsbs r0, r0, #0 + bl sub_080526CC + ldrb r0, [r6] + lsrs r7, r0, #2 + cmp r7, #1 + beq _08028D9C + cmp r7, #1 + bgt _08028D56 + cmp r7, #0 + beq _08028D5C + b _08028DCC +_08028D56: + cmp r7, #2 + beq _08028DAA + b _08028DCC +_08028D5C: + ldrb r1, [r6, #9] + cmp r1, #0xff + bne _08028D70 + ldr r4, _08028D98 @ =gUnk_080CC9C0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] +_08028D70: + ldrb r0, [r6, #8] + movs r2, #0 + bl sub_080A7C00 + movs r0, #6 + strb r0, [r5, #0xc] + movs r0, #4 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x81 + strb r7, [r0] + adds r0, r5, #0 + movs r1, #3 + bl sub_080290E0 + movs r0, #0x87 + bl sub_0807CCB4 + b _08028DE2 + .align 2, 0 +_08028D98: .4byte gUnk_080CC9C0 +_08028D9C: + ldrb r0, [r6, #8] + ldrb r1, [r6, #9] + movs r2, #0 + bl sub_080A7C00 + movs r0, #4 + b _08028DB6 +_08028DAA: + ldrb r0, [r6, #8] + ldrb r1, [r6, #9] + movs r2, #0 + bl sub_080A7C00 + movs r0, #8 +_08028DB6: + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0802922C + b _08028DE2 +_08028DC0: + ldr r0, _08028DE4 @ =0x00002903 + bl sub_08056378 + movs r0, #0 + bl sub_08078A90 +_08028DCC: + adds r0, r5, #0 + bl sub_0800445C + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x30 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080290E0 +_08028DE2: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08028DE4: .4byte 0x00002903 + + thumb_func_start sub_08028DE8 +sub_08028DE8: @ 0x08028DE8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08028E08 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #8 + bne _08028E0C + adds r4, #0x81 + ldrb r0, [r4] + cmp r0, #0 + bne _08028E3A + movs r0, #1 + bl sub_08078A90 + movs r0, #1 + strb r0, [r4] + b _08028E3A + .align 2, 0 +_08028E08: .4byte gLinkEntity +_08028E0C: + ldr r0, _08028E3C @ =0x00002902 + bl sub_08056378 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08028EDC + movs r0, #0 + bl sub_08078A90 + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 +_08028E3A: + pop {r4, pc} + .align 2, 0 +_08028E3C: .4byte 0x00002902 + + thumb_func_start sub_08028E40 +sub_08028E40: @ 0x08028E40 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08028E80 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08028E72 + ldr r5, [r4, #0x7c] + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] + ldrh r0, [r5, #0xa] + bl sub_0807CBD0 + cmp r0, #0 + bne _08028E6C + ldrh r0, [r5, #0xa] + bl sub_0807CCB4 +_08028E6C: + movs r0, #0 + bl sub_08078A90 +_08028E72: + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_08028E80: .4byte gUnk_02000050 + + thumb_func_start sub_08028E84 +sub_08028E84: @ 0x08028E84 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08028E98 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] +_08028E98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08028E9C +sub_08028E9C: @ 0x08028E9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r6, _08028ED8 @ =gUnk_080CC954 + adds r4, r1, r6 + adds r0, r4, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028ECA + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08028ECA + ldrh r1, [r4, #0xa] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r4, r0, r6 +_08028ECA: + str r4, [r5, #0x7c] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0 + strb r0, [r1] + pop {r4, r5, r6, pc} + .align 2, 0 +_08028ED8: .4byte gUnk_080CC954 + + thumb_func_start sub_08028EDC +sub_08028EDC: @ 0x08028EDC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x7c] + adds r0, r4, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028F04 + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08028F04 + ldrh r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08028F08 @ =gUnk_080CC954 + adds r4, r1, r0 + str r4, [r5, #0x7c] +_08028F04: + pop {r4, r5, pc} + .align 2, 0 +_08028F08: .4byte gUnk_080CC954 + + thumb_func_start sub_08028F0C +sub_08028F0C: @ 0x08028F0C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _08028F2C + movs r1, #0 + movs r0, #8 + strb r0, [r5, #0xc] + strb r1, [r2] + adds r0, r5, #0 + bl sub_0806F118 + b _08028F90 +_08028F2C: + cmp r0, #0 + beq _08028F90 + ldr r6, [r5, #0x7c] + movs r4, #0 + strb r4, [r2] + adds r0, r5, #0 + bl sub_0804AA1C + adds r0, r5, #0 + bl sub_0806EDC4 + lsls r0, r0, #3 + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #3 + bl sub_080290E0 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r6, #0 + bl sub_08029198 + cmp r0, #0 + beq _08028F6A + ldrh r4, [r6, #6] + b _08028F84 +_08028F6A: + ldrb r1, [r6] + movs r0, #0xfc + ands r0, r1 + cmp r0, #0xc + beq _08028F78 + movs r0, #5 + b _08028F7A +_08028F78: + movs r0, #7 +_08028F7A: + strb r0, [r5, #0xc] + ldrh r4, [r6, #4] + movs r0, #1 + bl sub_08078A90 +_08028F84: + adds r0, r4, #0 + bl sub_08056378 + ldr r1, _08028F94 @ =gUnk_02000050 + ldrh r0, [r6, #2] + str r0, [r1, #0x10] +_08028F90: + pop {r4, r5, r6, pc} + .align 2, 0 +_08028F94: .4byte gUnk_02000050 + + thumb_func_start sub_08028F98 +sub_08028F98: @ 0x08028F98 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08028FD4 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x28 + movs r3, #0x28 + bl sub_080041A0 + cmp r0, #0 + bne _08028FD4 + cmp r5, #2 + beq _08028FD8 + movs r3, #0x50 + cmp r5, #0 + beq _08028FC6 + movs r3, #0x58 +_08028FC6: + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + bne _08028FD8 +_08028FD4: + movs r0, #0 + b _08028FDA +_08028FD8: + movs r0, #1 +_08028FDA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08028FDC +sub_08028FDC: @ 0x08028FDC + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #4 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08028FF8 + strb r1, [r4, #0x15] + movs r0, #1 + b _08028FFA +_08028FF8: + movs r0, #0 +_08028FFA: + pop {r4, pc} + + thumb_func_start sub_08028FFC +sub_08028FFC: @ 0x08028FFC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + 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, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080AE068 + adds r0, r4, #0 + bl sub_0801D230 + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #0xe8 + strh r0, [r1] + ldrb r1, [r4, #0x1a] + subs r0, #0xf8 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + movs r1, #0xf + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x1a] + movs r0, #0xa7 + strh r0, [r4, #0x12] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, _08029074 @ =0x00004022 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, pc} + .align 2, 0 +_08029074: .4byte 0x00004022 + + thumb_func_start sub_08029078 +sub_08029078: @ 0x08029078 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + 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, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x72 + bl sub_080ADF80 + cmp r0, #0 + bne _080290AE + adds r0, r4, #0 + bl sub_0805E7BC + b _080290DE +_080290AE: + adds r0, r4, #0 + movs r1, #0x6e + bl sub_0801D040 + movs r0, #0xd0 + strh r0, [r4, #0x12] + adds r0, r4, #0 + bl sub_08028FDC + adds r0, r4, #0 + movs r1, #1 + bl sub_080290E0 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080290DE: + pop {r4, pc} + + thumb_func_start sub_080290E0 +sub_080290E0: @ 0x080290E0 + push {lr} + adds r3, r1, #0 + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + ldr r2, _080290F8 @ =gUnk_080CCA04 + adds r3, r3, r2 + ldrb r2, [r3] + orrs r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 +_080290F8: .4byte gUnk_080CCA04 + + thumb_func_start sub_080290FC +sub_080290FC: @ 0x080290FC + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08029158 + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _08029158 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08029158 + ldrb r4, [r2, #0x15] + movs r0, #0x10 + ands r0, r4 + movs r5, #1 + cmp r0, #0 + beq _08029128 + subs r5, #2 +_08029128: + movs r3, #8 + adds r0, r3, #0 + ands r0, r4 + cmp r0, #0 + beq _08029146 + movs r4, #0x2e + ldrsh r0, [r2, r4] + ands r1, r3 + cmp r1, #0 + beq _08029140 + subs r0, r0, r5 + b _08029142 +_08029140: + adds r0, r0, r5 +_08029142: + strh r0, [r2, #0x2e] + b _08029158 +_08029146: + movs r4, #0x32 + ldrsh r0, [r2, r4] + ands r1, r3 + cmp r1, #0 + bne _08029154 + subs r0, r0, r5 + b _08029156 +_08029154: + adds r0, r0, r5 +_08029156: + strh r0, [r2, #0x32] +_08029158: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802915C +sub_0802915C: @ 0x0802915C + push {lr} + ldr r0, [r0, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x5c + beq _08029190 + cmp r0, #0x5c + bgt _08029174 + cmp r0, #0x1c + beq _08029186 + cmp r0, #0x44 + beq _0802917E + b _08029194 +_08029174: + cmp r0, #0x6c + beq _08029190 + cmp r0, #0x6f + beq _08029190 + b _08029194 +_0802917E: + movs r0, #0x44 + bl GetInventoryValue + b _0802918C +_08029186: + movs r0, #0x5a + bl GetProgressFlag +_0802918C: + cmp r0, #0 + bne _08029194 +_08029190: + movs r0, #1 + b _08029196 +_08029194: + movs r0, #0 +_08029196: + pop {pc} + + thumb_func_start sub_08029198 +sub_08029198: @ 0x08029198 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + cmp r0, #0xc + beq _080291CA + ldrb r0, [r2, #8] + cmp r0, #0x1c + beq _080291BC + cmp r0, #0x1c + bgt _080291B6 + cmp r0, #9 + beq _080291C4 + b _080291D8 +_080291B6: + cmp r0, #0x44 + beq _080291C4 + b _080291D8 +_080291BC: + movs r0, #0x5a + bl GetProgressFlag + b _080291D0 +_080291C4: + bl GetInventoryValue + b _080291D0 +_080291CA: + ldrh r0, [r2, #0xa] + bl sub_0807CBD0 +_080291D0: + cmp r0, #0 + beq _080291D8 + movs r0, #1 + b _080291DA +_080291D8: + movs r0, #0 +_080291DA: + pop {pc} + + thumb_func_start sub_080291DC +sub_080291DC: @ 0x080291DC + push {lr} + ldr r0, [r0, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x6c + beq _080291EC + cmp r0, #0x6f + beq _08029204 + b _08029228 +_080291EC: + ldr r2, _080291FC @ =gUnk_080FD5A0 + ldr r1, _08029200 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xac + b _08029212 + .align 2, 0 +_080291FC: .4byte gUnk_080FD5A0 +_08029200: .4byte gUnk_02002A40 +_08029204: + ldr r2, _08029220 @ =gUnk_080FD5A4 + ldr r1, _08029224 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaf + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xad +_08029212: + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _08029228 + movs r0, #1 + b _0802922A + .align 2, 0 +_08029220: .4byte gUnk_080FD5A4 +_08029224: .4byte gUnk_02002A40 +_08029228: + movs r0, #0 +_0802922A: + pop {pc} + + thumb_func_start sub_0802922C +sub_0802922C: @ 0x0802922C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + movs r1, #6 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + ldr r0, [r4, #0x7c] + ldrb r0, [r0, #8] + cmp r0, #0x6c + beq _08029252 + cmp r0, #0x6c + bgt _08029252 + cmp r0, #0x1c + bne _08029252 + movs r0, #0x5a + bl sub_0807CD04 +_08029252: + adds r0, r4, #0 + movs r1, #3 + bl sub_080290E0 + pop {r4, pc} + + thumb_func_start sub_0802925C +sub_0802925C: @ 0x0802925C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029270 +sub_08029270: @ 0x08029270 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08029296 + adds r0, #1 + strb r0, [r2, #0xc] + 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 + movs r1, #0xe + bl sub_08004260 + b _0802929C +_08029296: + adds r0, r2, #0 + bl sub_08004274 +_0802929C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080292A0 +sub_080292A0: @ 0x080292A0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080292F8 + adds r0, r5, #0 + bl sub_080043E8 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _080292CE + ldrb r0, [r5, #0xc] + cmp r0, #4 + bne _080292C4 + adds r0, r5, #0 + bl sub_080296D8 +_080292C4: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08001290 + b _080292FE +_080292CE: + ldr r4, _080292F4 @ =gUnk_080CCC00 + 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 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + b _080292FE + .align 2, 0 +_080292F4: .4byte gUnk_080CCC00 +_080292F8: + adds r0, r5, #0 + bl sub_080293DC +_080292FE: + pop {r4, r5, pc} + + thumb_func_start sub_08029300 +sub_08029300: @ 0x08029300 + push {lr} + ldr r2, _08029314 @ =gUnk_080CCC18 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08029314: .4byte gUnk_080CCC18 + + thumb_func_start sub_08029318 +sub_08029318: @ 0x08029318 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x8e + bne _0802932C + adds r0, r4, #0 + bl sub_08029770 + b _080293A6 +_0802932C: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _08029338 + adds r0, r4, #0 + bl sub_080296D8 +_08029338: + ldr r0, [r4, #0x4c] + ldrb r0, [r0, #8] + cmp r0, #1 + bne _08029394 + ldrb r0, [r4, #0xc] + cmp r0, #2 + bne _08029356 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_08004260 +_08029356: + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0x41 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfc + ands r0, r1 + strb r0, [r2] + ldr r0, _08029390 @ =gLinkEntity + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1d + adds r1, r4, #0 + adds r1, #0x80 + strb r0, [r1] + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + b _080293A6 + .align 2, 0 +_08029390: .4byte gLinkEntity +_08029394: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080293A6 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080293A6: + ldr r1, _080293B0 @ =gUnk_080CCC00 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_080293B0: .4byte gUnk_080CCC00 + + thumb_func_start sub_080293B4 +sub_080293B4: @ 0x080293B4 + push {lr} + ldr r3, _080293D4 @ =gUnk_080CCC34 + adds r1, r0, #0 + adds r1, #0x84 + ldrb r2, [r1] + lsls r1, r2, #1 + adds r1, r1, r2 + ldrb r2, [r0, #0xa] + adds r1, r1, r2 + adds r1, r1, r3 + ldrb r2, [r1] + movs r1, #0xff + bl sub_0804A7E0 + pop {pc} + .align 2, 0 +_080293D4: .4byte gUnk_080CCC34 + + thumb_func_start nullsub_141 +nullsub_141: @ 0x080293D8 + bx lr + .align 2, 0 + + thumb_func_start sub_080293DC +sub_080293DC: @ 0x080293DC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldr r1, _08029408 @ =gUnk_080CCC3C + 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 +_08029408: .4byte gUnk_080CCC3C + + thumb_func_start sub_0802940C +sub_0802940C: @ 0x0802940C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + movs r0, #0x17 + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _0802944A + adds r0, r4, #0 + bl sub_0804A720 + str r4, [r5, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xb] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + ldrb r0, [r4, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080297F0 +_0802944A: + pop {r4, r5, pc} + + thumb_func_start sub_0802944C +sub_0802944C: @ 0x0802944C + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08029470 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08029470 + adds r0, r4, #0 + bl sub_08029770 +_08029470: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029474 +sub_08029474: @ 0x08029474 + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _080294C0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + ldr r1, _080294BC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #4 + bl sub_08004260 + b _080294D2 + .align 2, 0 +_080294BC: .4byte gLinkEntity +_080294C0: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080294D2 + strb r1, [r3] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_080294D2: + pop {r4, pc} + + thumb_func_start sub_080294D4 +sub_080294D4: @ 0x080294D4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802951C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029508 + movs r0, #8 + strb r0, [r4, #0xe] + ldr r1, _08029518 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0802969C +_08029508: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080296C8 + b _08029538 + .align 2, 0 +_08029518: .4byte gLinkEntity +_0802951C: + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #7 + bl sub_08004260 +_08029538: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802953C +sub_0802953C: @ 0x0802953C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080296C8 + adds r0, r5, #0 + bl sub_080296C8 + bl sub_0807953C + cmp r0, #0 + beq _08029558 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] +_08029558: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08029562 + subs r0, #1 + strb r0, [r5, #0xe] +_08029562: + ldrb r0, [r5, #0xf] + cmp r0, #0x2d + bhi _08029572 + ldr r0, _08029580 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r0, #0 + bne _08029584 +_08029572: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08029584 + adds r0, r5, #0 + bl sub_080296D8 + b _080295FE + .align 2, 0 +_08029580: .4byte gUnk_02002A40 +_08029584: + bl sub_08077B2C + ldr r2, _08029600 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _08029604 @ =gLinkEntity + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrh r0, [r5, #0x12] + ldrb r1, [r5, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r0, [r0, #1] + subs r0, #1 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080295FE + movs r0, #0x41 + strb r0, [r1] + ldr r0, _08029608 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r0, #0 + beq _080295FE + ldr r1, _0802960C @ =gUnk_080CCC44 + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + bl sub_080526CC + adds r1, r5, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] +_080295FE: + pop {r4, r5, pc} + .align 2, 0 +_08029600: .4byte gUnk_03003F80 +_08029604: .4byte gLinkEntity +_08029608: .4byte gUnk_02002A40 +_0802960C: .4byte gUnk_080CCC44 + + thumb_func_start sub_08029610 +sub_08029610: @ 0x08029610 + 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 _08029628 + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #1 + strb r0, [r1, #0xe] +_08029628: + adds r0, r1, #0 + bl sub_080296C8 + pop {pc} + + thumb_func_start sub_08029630 +sub_08029630: @ 0x08029630 + push {r4, lr} + adds r4, r0, #0 + bl sub_080296C8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802965E + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + adds r0, r4, #0 + bl sub_080297F0 +_0802965E: + pop {r4, pc} + + thumb_func_start sub_08029660 +sub_08029660: @ 0x08029660 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xd1 + strh r1, [r0, #0x12] + ldr r2, _08029684 @ =gUnk_080CCC47 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r2, [r1] + movs r1, #0xf + ands r2, r1 + ldrb r3, [r0, #0x1a] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, #0x1a] + bx lr + .align 2, 0 +_08029684: .4byte gUnk_080CCC47 + + thumb_func_start sub_08029688 +sub_08029688: @ 0x08029688 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802969A + adds r0, r1, #0 + bl sub_0805E7BC +_0802969A: + pop {pc} + + thumb_func_start sub_0802969C +sub_0802969C: @ 0x0802969C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080296C4 + lsrs r4, r1, #4 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _080296C4 + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 + ldr r0, [r5, #0x54] + adds r1, r4, #4 + bl sub_08004260 +_080296C4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080296C8 +sub_080296C8: @ 0x080296C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x54] + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080296D8 +sub_080296D8: @ 0x080296D8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08029764 @ =gUnk_03003F80 + movs r0, #0x41 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _08029768 @ =gLinkEntity + mov ip, r0 + ldrb r0, [r0, #0x10] + movs r1, #0x80 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + adds r1, #0x3d + movs r0, #0xa6 + strb r0, [r1] + movs r3, #0 + ldr r0, _0802976C @ =0x0000FFFE + mov r1, ip + strh r0, [r1, #0x36] + ldrb r0, [r1, #0x14] + lsls r0, r0, #2 + strb r0, [r1, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + mov r5, ip + adds r5, #0x29 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #3 + ldrb r2, [r5] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + mov r0, ip + adds r0, #0x63 + strb r3, [r0] + movs r0, #0xa0 + lsls r0, r0, #1 + mov r1, ip + strh r0, [r1, #0x24] + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #3 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08029762 + movs r0, #0xf4 + strb r0, [r1] +_08029762: + pop {r4, r5, pc} + .align 2, 0 +_08029764: .4byte gUnk_03003F80 +_08029768: .4byte gLinkEntity +_0802976C: .4byte 0x0000FFFE + + thumb_func_start sub_08029770 +sub_08029770: @ 0x08029770 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x73 + bl sub_080ADF80 + cmp r0, #0 + beq _080297E8 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xd1 + strh r0, [r4, #0x12] + 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] + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x8d + strb r0, [r1] + ldr r0, _080297EC @ =gUnk_080FD260 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080A29BC +_080297E8: + pop {r4, pc} + .align 2, 0 +_080297EC: .4byte gUnk_080FD260 + + thumb_func_start sub_080297F0 +sub_080297F0: @ 0x080297F0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + 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 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x8e + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AE068 + ldr r0, _08029850 @ =0x00000143 + strh r0, [r4, #0x12] + ldr r1, _08029854 @ =gUnk_080CCC47 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0xf + ands r1, r0 + ldrb r2, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + adds r1, r4, #0 + adds r1, #0x60 + movs r0, #9 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x54 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08029850: .4byte 0x00000143 +_08029854: .4byte gUnk_080CCC47 + + thumb_func_start sub_08029858 +sub_08029858: @ 0x08029858 + push {lr} + ldr r2, _0802986C @ =gUnk_080CCD44 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802986C: .4byte gUnk_080CCD44 + + thumb_func_start sub_08029870 +sub_08029870: @ 0x08029870 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08029888 @ =gUnk_080CCD60 + 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 +_08029888: .4byte gUnk_080CCD60 + + thumb_func_start sub_0802988C +sub_0802988C: @ 0x0802988C + push {lr} + ldr r2, _080298A0 @ =gUnk_080CCD78 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080298A0: .4byte gUnk_080CCD78 + + thumb_func_start sub_080298A4 +sub_080298A4: @ 0x080298A4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _08029970 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x1e + bhi _08029948 + lsls r0, r1, #2 + ldr r1, _080298C8 @ =_080298CC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080298C8: .4byte _080298CC +_080298CC: @ jump table + .4byte _08029970 @ case 0 + .4byte _08029970 @ case 1 + .4byte _08029970 @ case 2 + .4byte _08029970 @ case 3 + .4byte _08029948 @ case 4 + .4byte _08029948 @ case 5 + .4byte _08029948 @ case 6 + .4byte _08029948 @ case 7 + .4byte _08029948 @ case 8 + .4byte _08029948 @ case 9 + .4byte _08029948 @ case 10 + .4byte _08029948 @ case 11 + .4byte _08029948 @ case 12 + .4byte _08029948 @ case 13 + .4byte _08029948 @ case 14 + .4byte _08029970 @ case 15 + .4byte _08029948 @ case 16 + .4byte _08029948 @ case 17 + .4byte _08029948 @ case 18 + .4byte _08029970 @ case 19 + .4byte _08029948 @ case 20 + .4byte _08029948 @ case 21 + .4byte _08029948 @ case 22 + .4byte _08029948 @ case 23 + .4byte _08029948 @ case 24 + .4byte _08029948 @ case 25 + .4byte _08029948 @ case 26 + .4byte _08029970 @ case 27 + .4byte _08029948 @ case 28 + .4byte _08029948 @ case 29 + .4byte _08029970 @ case 30 +_08029948: + movs r1, #0 + movs r4, #2 + strb r4, [r5, #0xc] + strb r1, [r5, #0xe] + adds r2, r5, #0 + adds r2, #0x3f + movs r0, #0x6b + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x77 + strb r1, [r0] + adds r0, r5, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0xfe + bl sub_08004488 + ldr r0, [r5, #0x54] + strb r4, [r0, #0xc] +_08029970: + ldr r1, _0802997C @ =gUnk_080CCD60 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0802997C: .4byte gUnk_080CCD60 + + thumb_func_start sub_08029980 +sub_08029980: @ 0x08029980 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xf] + cmp r0, #0 + beq _08029990 + subs r0, #1 + strb r0, [r1, #0xf] + b _08029996 +_08029990: + adds r0, r1, #0 + bl sub_0804A7D4 +_08029996: + pop {pc} + + thumb_func_start nullsub_14 +nullsub_14: @ 0x08029998 + bx lr + .align 2, 0 + + thumb_func_start sub_0802999C +sub_0802999C: @ 0x0802999C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08029A90 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _08029A8E + movs r0, #0x18 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #5 + bl PositionRelative + str r4, [r7, #0x54] + movs r0, #0x18 + movs r1, #2 + bl CreateEnemy + adds r5, r0, #0 + str r7, [r5, #0x50] + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #4 + bl PositionRelative + str r5, [r4, #0x54] + movs r0, #0x18 + movs r1, #3 + bl CreateEnemy + adds r4, r0, #0 + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #3 + bl PositionRelative + str r4, [r5, #0x54] + movs r0, #0x18 + movs r1, #4 + bl CreateEnemy + adds r5, r0, #0 + str r7, [r5, #0x50] + adds r0, r7, #0 + adds r1, r5, #0 + movs r2, #0 + movs r3, #2 + bl PositionRelative + str r5, [r4, #0x54] + movs r0, #0x18 + movs r1, #5 + bl CreateEnemy + adds r6, r0, #0 + str r7, [r6, #0x50] + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #0 + movs r3, #1 + bl PositionRelative + str r6, [r5, #0x54] + movs r0, #0x18 + movs r1, #6 + bl CreateEnemy + adds r4, r0, #0 + str r7, [r4, #0x54] + str r7, [r4, #0x50] + adds r0, r7, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #0 + bl PositionRelative + str r4, [r6, #0x54] + movs r4, #1 + strb r4, [r7, #0xc] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r7, #0x15] + movs r2, #0 + movs r0, #0xa0 + strh r0, [r7, #0x24] + movs r0, #0xff + strb r0, [r7, #0x14] + ldr r0, [r7, #0x30] + adds r0, #6 + str r0, [r7, #0x30] + str r7, [r7, #0x50] + adds r1, r7, #0 + adds r1, #0x74 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x75 + strb r2, [r0] + adds r0, #2 + strb r4, [r0] + adds r0, r7, #0 + bl sub_08029E0C + adds r0, r7, #0 + bl sub_08029EEC +_08029A8E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08029A90: .4byte gUnk_03003DBC + + thumb_func_start sub_08029A94 +sub_08029A94: @ 0x08029A94 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0802A098 + pop {r4, pc} + + thumb_func_start sub_08029AA4 +sub_08029AA4: @ 0x08029AA4 + push {lr} + adds r1, r0, #0 + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + beq _08029ADA + movs r0, #3 + strb r0, [r1, #0xc] + movs r0, #0x84 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + adds r2, r1, #0 + adds r2, #0x3f + movs r0, #0x6a + strb r0, [r2] + adds r2, #0x3b + adds r0, #0xfe + strh r0, [r2] + subs r2, #5 + movs r0, #4 + strb r0, [r2] + adds r0, r1, #0 + bl sub_08029EEC + ldr r0, _08029ADC @ =0x0000019D + bl sub_08004488 +_08029ADA: + pop {pc} + .align 2, 0 +_08029ADC: .4byte 0x0000019D + + thumb_func_start sub_08029AE0 +sub_08029AE0: @ 0x08029AE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0802A16C + adds r0, r4, #0 + bl sub_0802A098 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08029B28 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xa0 + strh r0, [r4, #0x24] + subs r1, #5 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08029EEC + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + movs r0, #0xc1 + lsls r0, r0, #1 + bl sub_08004488 +_08029B28: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029B2C +sub_08029B2C: @ 0x08029B2C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A14C + cmp r0, #0 + beq _08029B7A + adds r2, r4, #0 + adds r2, #0x86 + ldrb r0, [r2] + cmp r0, #0 + beq _08029B60 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029B8A + adds r0, r4, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r0, r4, #0 + bl sub_0805E7BC + b _08029B8A +_08029B60: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xa] + lsls r1, r0, #4 + subs r1, r1, r0 + movs r0, #0x5a + subs r0, r0, r1 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r2] + b _08029B8A +_08029B7A: + ldr r0, _08029B8C @ =gUnk_080CCD88 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08029B8A: + pop {r4, pc} + .align 2, 0 +_08029B8C: .4byte gUnk_080CCD88 + + thumb_func_start sub_08029B90 +sub_08029B90: @ 0x08029B90 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0802A058 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _08029BBA + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _08029BC2 +_08029BBA: + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_08029BC2: + pop {r4, pc} + + thumb_func_start sub_08029BC4 +sub_08029BC4: @ 0x08029BC4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0802A18C + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + adds r0, r4, #0 + bl sub_08029FE4 + cmp r0, #0 + beq _08029BF2 + ldrb r0, [r4, #0xa] + movs r2, #4 + cmp r0, #1 + bhi _08029BE8 + movs r2, #0 +_08029BE8: + ldrb r1, [r4, #0x14] + adds r1, r1, r2 + adds r0, r4, #0 + bl sub_08004260 +_08029BF2: + movs r0, #0x2e + ldrsh r1, [r4, r0] + subs r1, r1, r5 + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, r2, r6 + adds r0, r4, #0 + bl sub_08029FB4 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08029C08 +sub_08029C08: @ 0x08029C08 + movs r1, #3 + strb r1, [r0, #0xc] + ldr r2, _08029C28 @ =gUnk_080CCDA0 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0, #0xe] + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0x6b + strb r1, [r2] + ldr r1, [r0, #0x54] + movs r0, #2 + strb r0, [r1, #0xc] + bx lr + .align 2, 0 +_08029C28: .4byte gUnk_080CCDA0 + + thumb_func_start sub_08029C2C +sub_08029C2C: @ 0x08029C2C + 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 _08029C4E + movs r0, #4 + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0x6c + bl sub_08004488 +_08029C4E: + pop {pc} + + thumb_func_start sub_08029C50 +sub_08029C50: @ 0x08029C50 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #0 + beq _08029C68 + movs r0, #5 + strb r0, [r1, #0xc] + adds r1, #0x3f + movs r0, #0x6a + strb r0, [r1] +_08029C68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08029C6C +sub_08029C6C: @ 0x08029C6C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A18C + adds r0, r4, #0 + bl sub_08029BC4 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08029C90 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + b _08029C96 +_08029C90: + adds r0, r4, #0 + bl sub_0802A16C +_08029C96: + pop {r4, pc} + + thumb_func_start sub_08029C98 +sub_08029C98: @ 0x08029C98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A14C + cmp r0, #0 + beq _08029CB6 + adds r0, r4, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r0, r4, #0 + bl sub_0805E7BC + b _08029CC6 +_08029CB6: + ldr r0, _08029CC8 @ =gUnk_080CCDA8 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08029CC6: + pop {r4, pc} + .align 2, 0 +_08029CC8: .4byte gUnk_080CCDA8 + + thumb_func_start sub_08029CCC +sub_08029CCC: @ 0x08029CCC + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0802A058 + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08029CF0 +sub_08029CF0: @ 0x08029CF0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08029FE4 + cmp r0, #0 + beq _08029D06 + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_08029D06: + pop {r4, pc} + + thumb_func_start sub_08029D08 +sub_08029D08: @ 0x08029D08 + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x47 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08029D14 +sub_08029D14: @ 0x08029D14 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08029D42 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029D70 + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x7f + bl sub_0801D2B4 + movs r0, #0x6c + bl sub_08004488 + b _08029D70 +_08029D42: + 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 _08029D70 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6c + strb r0, [r1] + ldr r0, _08029D74 @ =gUnk_080FD298 + str r0, [r4, #0x48] + movs r0, #0x6b + bl sub_08004488 +_08029D70: + pop {r4, pc} + .align 2, 0 +_08029D74: .4byte gUnk_080FD298 + + thumb_func_start sub_08029D78 +sub_08029D78: @ 0x08029D78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A0F8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08029DA6 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6a + strb r0, [r1] + ldr r0, _08029DA8 @ =gUnk_080FD2A0 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_08004260 +_08029DA6: + pop {r4, pc} + .align 2, 0 +_08029DA8: .4byte gUnk_080FD2A0 + + thumb_func_start sub_08029DAC +sub_08029DAC: @ 0x08029DAC + 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 _08029DD8 + movs r0, #6 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + adds r0, #0x77 + movs r1, #1 + strb r1, [r0] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_08029DD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029DDC +sub_08029DDC: @ 0x08029DDC + movs r1, #7 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08029DE4 +sub_08029DE4: @ 0x08029DE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08029CF0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08029E02 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x77 + bl sub_0801D2B4 + b _08029E08 +_08029E02: + adds r0, r4, #0 + bl sub_0802A16C +_08029E08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08029E0C +sub_08029E0C: @ 0x08029E0C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r5, r0, #0 + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + lsls r1, r0, #1 + adds r1, r1, r0 + ldr r0, _08029EE0 @ =gUnk_080CCDC8 + adds r1, r1, r0 + str r1, [sp] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + subs r1, #1 + mov sl, r1 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0xf + ands r0, r1 + movs r1, #3 + bl __modsi3 + mov sb, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08029EE4 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + mov r8, r0 + movs r2, #0x3f + ands r0, r2 + mov r8, r0 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + mov r1, r8 + orrs r1, r0 + mov r8, r1 + movs r7, #0 +_08029E72: + ldr r0, [sp] + add r0, sb + ldrb r4, [r0] + lsrs r0, r4, #3 + lsls r0, r0, #1 + ldr r1, _08029EE8 @ =gUnk_080B4488 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + add r0, r8 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + adds r6, r5, #0 + adds r6, #0x74 + cmp r0, #0 + bne _08029EA6 + str r4, [sp, #4] + ldrb r1, [r5, #0x15] + ldrb r0, [r6] + subs r0, r1, r0 + subs r1, r4, r1 + cmp r0, r1 + bne _08029EBA +_08029EA6: + mov r0, sb + add r0, sl + adds r0, #3 + movs r1, #3 + bl __modsi3 + mov sb, r0 + adds r7, #1 + cmp r7, #2 + bls _08029E72 +_08029EBA: + cmp r7, #3 + bne _08029EC0 + ldr r4, [sp, #4] +_08029EC0: + ldrb r1, [r5, #0x15] + ldrb r0, [r6] + cmp r0, r1 + beq _08029ECA + strb r1, [r6] +_08029ECA: + strb r4, [r5, #0x15] + adds r0, r5, #0 + bl sub_08029F0C + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08029EE0: .4byte gUnk_080CCDC8 +_08029EE4: .4byte gUnk_03000BF0 +_08029EE8: .4byte gUnk_080B4488 + + thumb_func_start sub_08029EEC +sub_08029EEC: @ 0x08029EEC + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x15] + adds r2, r3, #0 + adds r2, #0x75 + lsrs r0, r0, #3 + ldrb r2, [r2] + adds r1, r0, r2 + ldrb r0, [r3, #0x14] + cmp r1, r0 + beq _08029F0A + strb r1, [r3, #0x14] + adds r0, r3, #0 + bl sub_080042AC +_08029F0A: + pop {pc} + + thumb_func_start sub_08029F0C +sub_08029F0C: @ 0x08029F0C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _08029F30 + cmp r0, #1 + bgt _08029F22 + cmp r0, #0 + beq _08029F2C + b _08029F44 +_08029F22: + cmp r0, #2 + beq _08029F36 + cmp r0, #3 + beq _08029F3C + b _08029F44 +_08029F2C: + ldrh r0, [r1, #0x32] + b _08029F3E +_08029F30: + ldrh r0, [r1, #0x2e] + adds r0, #0x10 + b _08029F40 +_08029F36: + ldrh r0, [r1, #0x32] + adds r0, #0x10 + b _08029F40 +_08029F3C: + ldrh r0, [r1, #0x2e] +_08029F3E: + subs r0, #0x10 +_08029F40: + adds r1, #0x78 + strh r0, [r1] +_08029F44: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08029F48 +sub_08029F48: @ 0x08029F48 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _08029F78 + cmp r0, #1 + bgt _08029F5E + cmp r0, #0 + beq _08029F68 + b _08029FB0 +_08029F5E: + cmp r0, #2 + beq _08029F88 + cmp r0, #3 + beq _08029F9C + b _08029FB0 +_08029F68: + movs r0, #0x32 + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + bgt _08029FB0 + b _08029F96 +_08029F78: + movs r0, #0x2e + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + blt _08029FB0 + b _08029FAA +_08029F88: + movs r0, #0x32 + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + blt _08029FB0 +_08029F96: + strh r0, [r2, #0x32] + movs r0, #1 + b _08029FB2 +_08029F9C: + movs r0, #0x2e + ldrsh r1, [r2, r0] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r1, r0 + bgt _08029FB0 +_08029FAA: + strh r0, [r2, #0x2e] + movs r0, #1 + b _08029FB2 +_08029FB0: + movs r0, #0 +_08029FB2: + pop {pc} + + thumb_func_start sub_08029FB4 +sub_08029FB4: @ 0x08029FB4 + push {r4, r5, r6, lr} + adds r5, r1, #0 + adds r4, r2, #0 + ldr r6, [r0, #0x54] + adds r6, #0x78 + ldr r0, [r0, #0x50] + adds r0, #0x7e + ldrb r0, [r0] + movs r1, #0xe + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r6, r0 + adds r5, #8 + movs r0, #0xf + ands r5, r0 + adds r4, #8 + ands r4, r0 + lsls r4, r4, #4 + orrs r5, r4 + strb r5, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08029FE4 +sub_08029FE4: @ 0x08029FE4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x78 + ldr r0, [r5, #0x50] + adds r0, #0x7e + ldrb r0, [r0] + adds r0, #1 + movs r1, #0xe + bl __modsi3 + adds r4, r4, r0 + ldrb r1, [r4] + movs r0, #0xf + ands r0, r1 + subs r0, #8 + lsrs r1, r1, #4 + subs r1, #8 + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + asrs r4, r0, #0x18 + ldrh r0, [r5, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + lsrs r6, r1, #0x18 + asrs r1, r1, #0x18 + ldrh r0, [r5, #0x32] + adds r1, r1, r0 + strh r1, [r5, #0x32] + adds r0, r5, #0 + bl sub_08004274 + movs r1, #0xff + cmp r4, #0 + beq _0802A032 + movs r1, #3 + cmp r4, #0 + ble _0802A032 + movs r1, #1 +_0802A032: + lsls r0, r6, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0802A042 + movs r1, #0 + cmp r0, #0 + ble _0802A042 + movs r1, #2 +_0802A042: + cmp r1, #0xff + beq _0802A052 + ldrb r0, [r5, #0x14] + cmp r1, r0 + beq _0802A052 + strb r1, [r5, #0x14] + movs r0, #1 + b _0802A054 +_0802A052: + movs r0, #0 +_0802A054: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802A058 +sub_0802A058: @ 0x0802A058 + adds r2, r0, #0 + adds r0, #0x78 + 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] + 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] + bx lr + .align 2, 0 + + thumb_func_start sub_0802A098 +sub_0802A098: @ 0x0802A098 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7e + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldrb r0, [r5] + movs r1, #0xe + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802A0B8 + strb r0, [r5] +_0802A0B8: + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r0, #0x32 + ldrsh r6, [r4, r0] + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08029F48 + cmp r0, #0 + beq _0802A0E4 + adds r0, r4, #0 + bl sub_08029E0C + adds r0, r4, #0 + bl sub_08029EEC + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_0802A0E4: + movs r0, #0x2e + ldrsh r1, [r4, r0] + subs r1, r1, r5 + movs r0, #0x32 + ldrsh r2, [r4, r0] + subs r2, r2, r6 + adds r0, r4, #0 + bl sub_08029FB4 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802A0F8 +sub_0802A0F8: @ 0x0802A0F8 + push {r4, lr} + adds r3, r0, #0 + adds r0, #0x45 + ldrb r4, [r0] + cmp r4, #0 + beq _0802A134 + subs r0, #4 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802A14A + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0802A14A + adds r2, r3, #0 + movs r3, #0 + adds r4, r1, #0 +_0802A122: + ldr r2, [r2, #0x54] + ldrb r0, [r4] + adds r1, r2, #0 + adds r1, #0x3d + strb r0, [r1] + adds r3, #1 + cmp r3, #5 + bls _0802A122 + b _0802A14A +_0802A134: + ldr r2, [r3, #0x50] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldr r0, [r3, #0x50] + adds r0, #0x45 + strb r4, [r0] + ldr r1, [r3, #0x50] + movs r0, #0x69 + strb r0, [r1, #0xf] +_0802A14A: + pop {r4, pc} + + thumb_func_start sub_0802A14C +sub_0802A14C: @ 0x0802A14C + push {lr} + adds r1, r0, #0 + movs r2, #0 + ldr r0, [r1, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A166 + adds r0, r1, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A168 +_0802A166: + movs r2, #1 +_0802A168: + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_0802A16C +sub_0802A16C: @ 0x0802A16C + push {lr} + ldr r3, _0802A188 @ =gUnk_080CCDD4 + ldr r1, [r0, #0x50] + adds r1, #0x7a + ldrh r1, [r1] + lsrs r1, r1, #2 + movs r2, #3 + ands r1, r2 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r1, [r1] + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0802A188: .4byte gUnk_080CCDD4 + + thumb_func_start sub_0802A18C +sub_0802A18C: @ 0x0802A18C + push {lr} + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802A234 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1e + bhi _0802A22C + lsls r0, r0, #2 + ldr r1, _0802A1AC @ =_0802A1B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802A1AC: .4byte _0802A1B0 +_0802A1B0: @ jump table + .4byte _0802A234 @ case 0 + .4byte _0802A234 @ case 1 + .4byte _0802A234 @ case 2 + .4byte _0802A234 @ case 3 + .4byte _0802A22C @ case 4 + .4byte _0802A22C @ case 5 + .4byte _0802A22C @ case 6 + .4byte _0802A22C @ case 7 + .4byte _0802A22C @ case 8 + .4byte _0802A22C @ case 9 + .4byte _0802A22C @ case 10 + .4byte _0802A22C @ case 11 + .4byte _0802A22C @ case 12 + .4byte _0802A22C @ case 13 + .4byte _0802A22C @ case 14 + .4byte _0802A234 @ case 15 + .4byte _0802A22C @ case 16 + .4byte _0802A22C @ case 17 + .4byte _0802A22C @ case 18 + .4byte _0802A234 @ case 19 + .4byte _0802A22C @ case 20 + .4byte _0802A22C @ case 21 + .4byte _0802A22C @ case 22 + .4byte _0802A22C @ case 23 + .4byte _0802A22C @ case 24 + .4byte _0802A22C @ case 25 + .4byte _0802A22C @ case 26 + .4byte _0802A234 @ case 27 + .4byte _0802A22C @ case 28 + .4byte _0802A22C @ case 29 + .4byte _0802A234 @ case 30 +_0802A22C: + movs r0, #0x97 + lsls r0, r0, #1 + bl sub_08004488 +_0802A234: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802A238 +sub_0802A238: @ 0x0802A238 + push {lr} + ldr r2, _0802A24C @ =gUnk_080CD030 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802A24C: .4byte gUnk_080CD030 + + thumb_func_start sub_0802A250 +sub_0802A250: @ 0x0802A250 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xe] + ldr r0, _0802A2A8 @ =0xFFFD0000 + str r0, [r5, #0x20] + bl sub_08000E50 + ldr r1, _0802A2AC @ =gUnk_080CD03C + movs r4, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strh r0, [r5, #0x24] + bl sub_08000E50 + ldr r1, _0802A2B0 @ =gUnk_080CD040 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, #0x18 + strb r0, [r5, #0x15] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_08016A04 + movs r0, #0x66 + movs r1, #0 + movs r2, #0 + bl CreateObject + cmp r0, #0 + beq _0802A2A6 + str r5, [r0, #0x50] +_0802A2A6: + pop {r4, r5, pc} + .align 2, 0 +_0802A2A8: .4byte 0xFFFD0000 +_0802A2AC: .4byte gUnk_080CD03C +_0802A2B0: .4byte gUnk_080CD040 + + thumb_func_start sub_0802A2B4 +sub_0802A2B4: @ 0x0802A2B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _0802A2DC + movs r0, #2 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x84 + bl sub_08004488 + b _0802A2E2 +_0802A2DC: + adds r0, r4, #0 + bl sub_0806F69C +_0802A2E2: + adds r0, r4, #0 + bl sub_0802A39C + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0802A2FA + adds r0, r4, #0 + bl sub_0802A334 +_0802A2FA: + pop {r4, pc} + + thumb_func_start sub_0802A2FC +sub_0802A2FC: @ 0x0802A2FC + 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 _0802A31A + adds r0, r4, #0 + bl sub_0805E7BC + b _0802A332 +_0802A31A: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A32C + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _0802A332 +_0802A32C: + adds r0, r4, #0 + bl sub_0802A39C +_0802A332: + pop {r4, pc} + + thumb_func_start sub_0802A334 +sub_0802A334: @ 0x0802A334 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802A380 @ =gUnk_03000BF0 + movs r3, #0xa + ldrsh r0, [r2, r3] + ldr r3, _0802A384 @ =gUnk_03000F50 + subs r1, r1, r0 + ldrh r5, [r3, #0x16] + adds r1, r1, r5 + asrs r1, r1, #3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + movs r5, #0xc + ldrsh r2, [r2, r5] + subs r0, r0, r2 + ldrh r3, [r3, #0x18] + adds r0, r0, r3 + asrs r0, r0, #3 + ldr r3, _0802A388 @ =gUnk_02001A40 + movs r2, #0x1f + ands r1, r2 + ands r0, r2 + lsls r0, r0, #5 + adds r1, r1, r0 + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A38C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + b _0802A392 + .align 2, 0 +_0802A380: .4byte gUnk_03000BF0 +_0802A384: .4byte gUnk_03000F50 +_0802A388: .4byte gUnk_02001A40 +_0802A38C: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 +_0802A392: + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + pop {r4, r5, pc} + + thumb_func_start sub_0802A39C +sub_0802A39C: @ 0x0802A39C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0802A3EC @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802A3F0 @ =gUnk_03000BF0 + movs r3, #0xa + ldrsh r0, [r2, r3] + ldr r3, _0802A3F4 @ =gUnk_03000F50 + subs r1, r1, r0 + ldrh r6, [r3, #0x16] + adds r1, r1, r6 + asrs r1, r1, #3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + movs r4, #0xc + ldrsh r2, [r2, r4] + subs r0, r0, r2 + ldrh r3, [r3, #0x18] + adds r0, r0, r3 + subs r0, #0xa + asrs r0, r0, #3 + ldr r3, _0802A3F8 @ =gUnk_02001A40 + movs r2, #0x1f + ands r1, r2 + ands r0, r2 + lsls r0, r0, #5 + adds r1, r1, r0 + movs r6, #0x80 + lsls r6, r6, #3 + adds r1, r1, r6 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A3FC + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802A402 + .align 2, 0 +_0802A3EC: .4byte gLinkEntity +_0802A3F0: .4byte gUnk_03000BF0 +_0802A3F4: .4byte gUnk_03000F50 +_0802A3F8: .4byte gUnk_02001A40 +_0802A3FC: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802A402: + strb r0, [r5, #0x10] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802A408 +sub_0802A408: @ 0x0802A408 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802A430 @ =gUnk_080CD07C + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802A430: .4byte gUnk_080CD07C + + thumb_func_start sub_0802A434 +sub_0802A434: @ 0x0802A434 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A78C + ldr r1, _0802A450 @ =gUnk_080CD094 + 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 +_0802A450: .4byte gUnk_080CD094 + + thumb_func_start sub_0802A454 +sub_0802A454: @ 0x0802A454 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x75 + beq _0802A4A8 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r2, #0x7f + adds r1, r2, #0 + ands r1, r0 + cmp r1, #0 + beq _0802A474 + cmp r1, #0x1e + bne _0802A4A8 +_0802A474: + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _0802A4D8 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + adds r2, r4, #0 + adds r2, #0x7e + strh r0, [r2] + ldrh r2, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x80 + strh r2, [r0] + ldrh r0, [r1, #0x36] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _0802A4A8 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802A4A8: + adds r2, r4, #0 + adds r2, #0x42 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _0802A4BC + cmp r1, #4 + bls _0802A4BC + subs r0, #4 + strb r0, [r2] +_0802A4BC: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802A4CE + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802A4CE: + ldr r1, _0802A4DC @ =gUnk_080CD07C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802A4D8: .4byte gLinkEntity +_0802A4DC: .4byte gUnk_080CD07C + + thumb_func_start nullsub_142 +nullsub_142: @ 0x0802A4E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0802A4E4 +sub_0802A4E4: @ 0x0802A4E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r1, [r4, #0xb] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7c + strb r1, [r0] + ldrb r1, [r4, #0xe] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_0802A7D0 + pop {r4, pc} + + thumb_func_start sub_0802A534 +sub_0802A534: @ 0x0802A534 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + cmp r0, #0 + beq _0802A548 + subs r0, #1 + strh r0, [r1] + b _0802A5B0 +_0802A548: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _0802A5B0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _0802A5B0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + 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] + ldrh r0, [r2, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r2, #0x32] + strh r0, [r4, #0x32] + ldr r0, _0802A5B4 @ =0x0000FF80 + strh r0, [r4, #0x36] + 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] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802A7D0 +_0802A5B0: + pop {r4, pc} + .align 2, 0 +_0802A5B4: .4byte 0x0000FF80 + + thumb_func_start sub_0802A5B8 +sub_0802A5B8: @ 0x0802A5B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _0802A5E8 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A60E + ldr r0, _0802A5E4 @ =0x0000012D + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0802A60E + .align 2, 0 +_0802A5E4: .4byte 0x0000012D +_0802A5E8: + ldrh r0, [r4, #0x36] + adds r0, #3 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0802A60E + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strh r2, [r4, #0x36] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802A60E: + pop {r4, pc} + + thumb_func_start sub_0802A610 +sub_0802A610: @ 0x0802A610 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802A7D0 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0802A63A + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802A64C +_0802A63A: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A64C + strb r2, [r3] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x75 + strb r0, [r1] +_0802A64C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802A650 +sub_0802A650: @ 0x0802A650 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrh r0, [r4, #0x36] + subs r0, #2 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0xa0 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0802A69A + movs r0, #1 + 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 r1, r4, #0 + adds r1, #0x3f + movs r0, #0x74 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] +_0802A69A: + pop {r4, pc} + + thumb_func_start sub_0802A69C +sub_0802A69C: @ 0x0802A69C + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldr r2, _0802A6E4 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0xa] + ldrb r1, [r2, #0x1a] + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r1, _0802A6E8 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + strh r0, [r1, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0x36] + movs r3, #0x36 + ldrsh r1, [r4, r3] + cmp r0, r1 + beq _0802A6F0 + cmp r0, r1 + bge _0802A6EC + subs r0, r2, #1 + b _0802A6EE + .align 2, 0 +_0802A6E4: .4byte gUnk_03003F80 +_0802A6E8: .4byte gLinkEntity +_0802A6EC: + adds r0, r2, #1 +_0802A6EE: + strh r0, [r4, #0x36] +_0802A6F0: + adds r0, r4, #0 + bl sub_08004274 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0802A712 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802A72E +_0802A712: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802A72E + strb r2, [r3] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #3 + strb r0, [r1] + ldr r2, _0802A730 @ =gLinkEntity + ldrb r1, [r2, #0x18] + subs r0, #7 + ands r0, r1 + strb r0, [r2, #0x18] +_0802A72E: + pop {r4, pc} + .align 2, 0 +_0802A730: .4byte gLinkEntity + + thumb_func_start sub_0802A734 +sub_0802A734: @ 0x0802A734 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802A7D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802A768 + bl sub_0805E5A8 + ldr r1, _0802A760 @ =gUnk_0813AB1C + ldr r0, _0802A764 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_08080840 + b _0802A780 + .align 2, 0 +_0802A760: .4byte gUnk_0813AB1C +_0802A764: .4byte gUnk_02033A90 +_0802A768: + ldr r0, [r4, #0x34] + ldr r1, _0802A784 @ =0xFFFE0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldr r1, _0802A788 @ =gUnk_03003F80 + ldrb r0, [r1, #0xa] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #0xa] + ldrb r0, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] +_0802A780: + pop {r4, pc} + .align 2, 0 +_0802A784: .4byte 0xFFFE0000 +_0802A788: .4byte gUnk_03003F80 + + thumb_func_start sub_0802A78C +sub_0802A78C: @ 0x0802A78C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0802A7CC + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802A7BC + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + cmp r0, #0 + bne _0802A7CC + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _0802A7CC + subs r0, #1 + strh r0, [r1] + b _0802A7CC +_0802A7BC: + ldrb r0, [r4, #0xb] + lsls r1, r0, #4 + subs r1, r1, r0 + lsls r1, r1, #2 + adds r1, #1 + adds r0, r4, #0 + adds r0, #0x7a + strh r1, [r0] +_0802A7CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802A7D0 +sub_0802A7D0: @ 0x0802A7D0 + push {r4, lr} + ldr r3, _0802A800 @ =gUnk_080CD0B0 + movs r1, #0x7d + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + adds r2, r1, #1 + mov r4, ip + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + movs r2, #0 + ldrsb r2, [r1, r2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r2, r1 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0802A800: .4byte gUnk_080CD0B0 + + thumb_func_start sub_0802A804 +sub_0802A804: @ 0x0802A804 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _0802A830 + adds r0, r5, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _0802A830 + ldr r0, _0802A82C @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _0802A844 + .align 2, 0 +_0802A82C: .4byte gUnk_080012C8 +_0802A830: + ldr r4, _0802A848 @ =gUnk_080CD0F0 + 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 +_0802A844: + pop {r4, r5, pc} + .align 2, 0 +_0802A848: .4byte gUnk_080CD0F0 + + thumb_func_start sub_0802A84C +sub_0802A84C: @ 0x0802A84C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _0802A878 + cmp r0, #3 + beq _0802A894 + ldr r0, _0802A874 @ =gUnk_080CD108 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0802AD54 + b _0802A8A4 + .align 2, 0 +_0802A874: .4byte gUnk_080CD108 +_0802A878: + ldr r0, _0802A890 @ =gUnk_080CD120 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_0802B048 + b _0802A8A4 + .align 2, 0 +_0802A890: .4byte gUnk_080CD120 +_0802A894: + ldr r0, _0802A8A8 @ =gUnk_080CD134 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802A8A4: + pop {r4, pc} + .align 2, 0 +_0802A8A8: .4byte gUnk_080CD134 + + thumb_func_start sub_0802A8AC +sub_0802A8AC: @ 0x0802A8AC + push {lr} + adds r1, r0, #0 + adds r2, r1, #0 + adds r2, #0x81 + movs r0, #0 + strb r0, [r2] + ldrb r0, [r1, #0xa] + cmp r0, #1 + bhi _0802A8C6 + adds r0, r1, #0 + movs r1, #0 + bl sub_08004260 +_0802A8C6: + pop {pc} + + thumb_func_start sub_0802A8C8 +sub_0802A8C8: @ 0x0802A8C8 + push {lr} + ldr r2, _0802A8DC @ =gUnk_080CD140 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802A8DC: .4byte gUnk_080CD140 + + thumb_func_start sub_0802A8E0 +sub_0802A8E0: @ 0x0802A8E0 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802A8EC +sub_0802A8EC: @ 0x0802A8EC + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802A8F4 +sub_0802A8F4: @ 0x0802A8F4 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802A8FC +sub_0802A8FC: @ 0x0802A8FC + push {lr} + adds r2, r0, #0 + ldr r0, _0802A914 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + bne _0802A912 + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0802A912: + pop {pc} + .align 2, 0 +_0802A914: .4byte gUnk_03003F80 + + thumb_func_start nullsub_143 +nullsub_143: @ 0x0802A918 + bx lr + .align 2, 0 + + thumb_func_start sub_0802A91C +sub_0802A91C: @ 0x0802A91C + adds r0, #0x45 + movs r1, #0 + strb r1, [r0] + bx lr + + thumb_func_start sub_0802A924 +sub_0802A924: @ 0x0802A924 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + movs r5, #0 + movs r6, #1 + movs r0, #1 + strb r0, [r7, #0xc] + strb r5, [r7, #0xd] + strb r5, [r7, #0xe] + strb r5, [r7, #0xf] + ldr r0, _0802A9A0 @ =gUnk_080CD16C + str r0, [r7, #0x48] + movs r4, #0 + ldr r0, _0802A9A4 @ =0x0000FFD0 + strh r0, [r7, #0x36] + bl sub_08000E50 + ands r0, r6 + adds r1, r7, #0 + adds r1, #0x80 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x82 + strh r5, [r0] + subs r0, #7 + strb r4, [r0] + adds r0, #6 + strb r4, [r0] + subs r0, #7 + strb r4, [r0] + subs r0, #2 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + subs r1, #0x48 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r7, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r7, #0x1b] + ldrb r0, [r7, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r7, #0x19] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldrb r1, [r7, #0xa] + adds r1, #1 + adds r0, r7, #0 + bl sub_08004260 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802A9A0: .4byte gUnk_080CD16C +_0802A9A4: .4byte 0x0000FFD0 + + thumb_func_start sub_0802A9A8 +sub_0802A9A8: @ 0x0802A9A8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802A9B8 + subs r0, #1 + strb r0, [r4, #0xf] + b _0802AA3E +_0802A9B8: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802A9DE + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802AA38 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x40 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + b _0802AA38 +_0802A9DE: + ldr r0, _0802AA14 @ =gUnk_03000BF0 + ldrh r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _0802AA3E + 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 r1, r4, #0 + adds r1, #0x82 + movs r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AA18 + ldrh r0, [r2, #0xa] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #8 + b _0802AA26 + .align 2, 0 +_0802AA14: .4byte gUnk_03000BF0 +_0802AA18: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #0x18 +_0802AA26: + strb r0, [r4, #0x15] + ldrh r0, [r2, #0xc] + adds r0, #0x40 + strh r0, [r4, #0x32] + movs r0, #0x80 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0802ADDC +_0802AA38: + adds r0, r4, #0 + bl sub_0802AC40 +_0802AA3E: + pop {r4, pc} + + thumb_func_start sub_0802AA40 +sub_0802AA40: @ 0x0802AA40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802AC40 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AA66 + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0802AA66: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802AA72 + subs r0, #1 + strb r0, [r4, #0xe] + b _0802AABE +_0802AA72: + ldr r2, [r4, #0x54] + cmp r2, #0 + beq _0802AABE + ldr r0, [r2, #4] + cmp r0, #0 + bne _0802AA82 + str r0, [r4, #0x54] + b _0802AABE +_0802AA82: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + lsls r0, r0, #4 + adds r1, r0, #0 + adds r1, #0x18 + movs r0, #0x18 + ands r1, r0 + adds r3, r4, #0 + adds r3, #0x7b + ldrb r0, [r3] + cmp r0, #0x20 + bls _0802AA9E + strb r1, [r4, #0x15] +_0802AA9E: + ldrb r0, [r4, #0x15] + cmp r0, r1 + bne _0802AABE + movs r0, #3 + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + strb r1, [r3] + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x96 + strb r0, [r2, #0xe] +_0802AABE: + pop {r4, pc} + + thumb_func_start sub_0802AAC0 +sub_0802AAC0: @ 0x0802AAC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0802AC40 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r6, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AADE + adds r0, r4, #0 + movs r1, #4 + bl sub_0802AD1C +_0802AADE: + adds r2, r4, #0 + adds r2, #0x81 + ldrb r5, [r2] + cmp r5, #0 + beq _0802AB0E + ldr r1, [r4, #0x54] + cmp r1, #0 + bne _0802AAF2 + strb r1, [r2] + b _0802AB3C +_0802AAF2: + ldr r0, [r1, #4] + cmp r0, #0 + bne _0802AAFE + strb r0, [r2] + str r0, [r4, #0x54] + b _0802AB3C +_0802AAFE: + ldrb r3, [r1, #0xe] + cmp r3, #0 + bne _0802AB3C + ldrb r0, [r1, #0xf] + cmp r0, #0x50 + bhi _0802AB3C + strb r3, [r2] + b _0802AB3C +_0802AB0E: + movs r3, #4 + strb r3, [r4, #0xc] + movs r0, #0xc0 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #1 + strb r3, [r0] + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802AB3C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802AB40 +sub_0802AB40: @ 0x0802AB40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802AC40 + adds r3, r4, #0 + adds r3, #0x78 + ldrb r0, [r3] + cmp r0, #1 + beq _0802AB94 + cmp r0, #1 + bgt _0802AB5C + cmp r0, #0 + beq _0802AB62 + b _0802AC04 +_0802AB5C: + cmp r0, #2 + beq _0802ABC2 + b _0802AC04 +_0802AB62: + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802AB86 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AC04 + movs r0, #4 + strb r0, [r1] + ldrh r0, [r4, #0x36] + adds r0, #1 + strh r0, [r4, #0x36] + b _0802AC04 +_0802AB86: + movs r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x30 + strb r0, [r1] + b _0802ABB6 +_0802AB94: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802ABAE + movs r0, #2 + strb r0, [r3] + movs r0, #4 + strb r0, [r2] + b _0802AC04 +_0802ABAE: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0802AC04 +_0802ABB6: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0802AC04 +_0802ABC2: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0802ABF2 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802AC04 + movs r0, #4 + strb r0, [r1] + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #4 + bl sub_0802ACDC + b _0802AC04 +_0802ABF2: + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strh r1, [r4, #0x24] + ldrb r1, [r4, #0xa] + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0802AC04: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AC08 +sub_0802AC08: @ 0x0802AC08 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802AC36 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x40 + strb r0, [r4, #0xe] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #8 + bl sub_0802ACDC + adds r0, r4, #0 + bl sub_0802ADDC +_0802AC36: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AC40 +sub_0802AC40: @ 0x0802AC40 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _0802ACA2 + adds r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + bne _0802AC72 + strb r0, [r5] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + b _0802ACD8 +_0802AC72: + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802AC92 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x38 + ands r0, r1 + cmp r0, #8 + beq _0802ACDA + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + b _0802ACD6 +_0802AC92: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x38 + ands r0, r1 + cmp r0, #0x18 + beq _0802ACDA + b _0802ACCE +_0802ACA2: + adds r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + beq _0802ACDA + movs r0, #1 + strb r0, [r5] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802ACC8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + b _0802ACD6 +_0802ACC8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] +_0802ACCE: + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 +_0802ACD6: + orrs r0, r1 +_0802ACD8: + strb r0, [r2] +_0802ACDA: + pop {r4, r5, pc} + + thumb_func_start sub_0802ACDC +sub_0802ACDC: @ 0x0802ACDC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ACF8 + ldr r0, _0802ACF4 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r1, [r0, r2] + adds r1, #0x20 + b _0802AD00 + .align 2, 0 +_0802ACF4: .4byte gUnk_03000BF0 +_0802ACF8: + ldr r0, _0802AD18 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r1, [r0, r2] + adds r1, #0xd0 +_0802AD00: + movs r3, #0xc + ldrsh r2, [r0, r3] + adds r2, #0x60 + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + strb r5, [r4, #0xf] + pop {r4, r5, pc} + .align 2, 0 +_0802AD18: .4byte gUnk_03000BF0 + + thumb_func_start sub_0802AD1C +sub_0802AD1C: @ 0x0802AD1C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0802AD48 + movs r1, #0x32 + ldrsh r2, [r0, r1] + subs r2, #0x18 + movs r3, #0x2e + ldrsh r1, [r0, r3] + adds r0, r4, #0 + bl sub_080045B4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + strb r5, [r4, #0xf] + b _0802AD50 +_0802AD48: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0802ACDC +_0802AD50: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802AD54 +sub_0802AD54: @ 0x0802AD54 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x82 + ldrh r0, [r0] + cmp r0, #0 + beq _0802ADAE + ldr r4, _0802AD7C @ =gUnk_03000BF0 + ldrh r0, [r4] + cmp r0, #0 + beq _0802AD80 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + adds r0, r2, #0 + bl sub_0805E7BC + b _0802ADD8 + .align 2, 0 +_0802AD7C: .4byte gUnk_03000BF0 +_0802AD80: + ldrh r1, [r4, #8] + movs r0, #0x32 + ldrsh r3, [r2, r0] + cmp r1, r3 + bgt _0802AD94 + ldrh r0, [r4, #0x20] + adds r0, r1, r0 + adds r0, #0x20 + cmp r0, r3 + bge _0802ADA0 +_0802AD94: + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + b _0802ADAE +_0802ADA0: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] +_0802ADAE: + adds r0, r2, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ADD8 + ldr r0, [r2, #0x54] + cmp r0, #0 + beq _0802ADC4 + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802ADD8 +_0802ADC4: + movs r1, #4 + strb r1, [r2, #0xc] + movs r0, #0xc0 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r2, #0x80 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] +_0802ADD8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802ADDC +sub_0802ADDC: @ 0x0802ADDC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + adds r1, #2 + movs r0, #0x1b + bl CreateEnemy + adds r5, r0, #0 + cmp r5, #0 + beq _0802AE20 + adds r0, r4, #0 + bl sub_0802B234 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + strb r1, [r5, #0xb] + str r4, [r5, #0x50] + str r5, [r4, #0x54] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802AE20 + subs r1, #7 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0802AE20: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802AE24 +sub_0802AE24: @ 0x0802AE24 + push {lr} + mov ip, r0 + movs r2, #0 + movs r3, #1 + strb r3, [r0, #0xc] + movs r0, #0xf0 + mov r1, ip + strb r0, [r1, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r1, #0x20] + ldr r0, _0802AE64 @ =gUnk_080CD174 + str r0, [r1, #0x48] + adds r1, #0x3c + movs r0, #3 + strb r0, [r1] + mov r0, ip + strb r2, [r0, #0x16] + movs r0, #2 + mov r1, ip + strb r0, [r1, #0x1c] + mov r0, ip + adds r0, #0x81 + strb r2, [r0] + subs r0, #6 + strb r3, [r0] + mov r0, ip + movs r1, #3 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0802AE64: .4byte gUnk_080CD174 + + thumb_func_start sub_0802AE68 +sub_0802AE68: @ 0x0802AE68 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802B250 + adds r1, r0, #0 + cmp r1, #0 + bne _0802AE8A + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802B264 + b _0802AEBA +_0802AE8A: + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AEA8 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802AEBA +_0802AEA8: + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802B264 +_0802AEBA: + pop {r4, pc} + + thumb_func_start sub_0802AEBC +sub_0802AEBC: @ 0x0802AEBC + push {lr} + ldr r2, _0802AED0 @ =gUnk_080CD158 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802AED0: .4byte gUnk_080CD158 + + thumb_func_start sub_0802AED4 +sub_0802AED4: @ 0x0802AED4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + cmp r0, #1 + bhi _0802AEFC + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802AF0C + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _0802AF0C +_0802AEFC: + adds r0, r4, #0 + bl sub_0800442E + cmp r0, #0 + bne _0802AF0C + adds r0, r4, #0 + bl sub_08078930 +_0802AF0C: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802AF24 + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802AF24 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] +_0802AF24: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802AF28 +sub_0802AF28: @ 0x0802AF28 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08079BD8 + 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 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802AF50 +sub_0802AF50: @ 0x0802AF50 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0802AF58 +sub_0802AF58: @ 0x0802AF58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802AF74 +sub_0802AF74: @ 0x0802AF74 + push {lr} + adds r2, r0, #0 + movs r0, #0 + movs r1, #3 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + ldrb r0, [r2, #0xe] + cmp r0, #0x3c + bls _0802AF8A + movs r0, #0x3c + strb r0, [r2, #0xe] +_0802AF8A: + adds r0, r2, #0 + bl sub_08004274 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802AF94 +sub_0802AF94: @ 0x0802AF94 + push {lr} + bl sub_0805E7BC + pop {pc} + + thumb_func_start sub_0802AF9C +sub_0802AF9C: @ 0x0802AF9C + push {r4, 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 _0802AFC6 + ldr r0, [r4, #0x50] + adds r1, r0, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #0 + beq _0802AFC0 + subs r0, #1 + strb r0, [r1] +_0802AFC0: + adds r0, r4, #0 + bl sub_0805E7BC +_0802AFC6: + pop {r4, pc} + + thumb_func_start sub_0802AFC8 +sub_0802AFC8: @ 0x0802AFC8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + movs r7, #8 + cmp r0, #0x28 + bhi _0802B022 + movs r7, #4 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r2, [r1] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0802AFEC + adds r0, r2, #0 + subs r0, #0x10 + b _0802AFF0 +_0802AFEC: + adds r0, r2, #0 + adds r0, #0x10 +_0802AFF0: + strh r0, [r1] + adds r5, r1, #0 + ldrh r2, [r5] + movs r6, #0xf0 + adds r3, r6, #0 + ands r3, r2 + subs r0, r3, #1 + cmp r0, #0x7f + bls _0802B00C + movs r3, #0x80 + lsls r3, r3, #8 + adds r0, r3, #0 + eors r0, r2 + strh r0, [r5] +_0802B00C: + ldrh r0, [r1] + adds r3, r6, #0 + ands r3, r0 + movs r2, #0x98 + lsls r2, r2, #1 + subs r2, r2, r3 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C +_0802B022: + ldrb r0, [r4, #0xf] + ands r0, r7 + cmp r0, #0 + beq _0802B03A + ldrb r0, [r4, #0x1a] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1a] + b _0802B044 +_0802B03A: + ldrb r1, [r4, #0x1a] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x1a] +_0802B044: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802B048 +sub_0802B048: @ 0x0802B048 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802B080 + ldr r0, _0802B074 @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + movs r3, #0x32 + ldrsh r2, [r4, r3] + cmp r1, r2 + bgt _0802B06A + ldrh r0, [r0, #0x20] + adds r0, r1, r0 + adds r0, #0x20 + cmp r0, r2 + bge _0802B078 +_0802B06A: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802B07E + .align 2, 0 +_0802B074: .4byte gUnk_03000BF0 +_0802B078: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802B07E: + strb r0, [r4, #0x10] +_0802B080: + ldr r5, [r4, #0x50] + cmp r5, #0 + beq _0802B0CA + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0802B0CA + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r4, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + lsrs r1, r1, #0x1d + ldrb r3, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r1, [r4, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x1b] +_0802B0CA: + ldrb r2, [r4, #0xc] + cmp r2, #4 + beq _0802B19E + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B19E + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B10E + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802B19E + movs r0, #0x50 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + strh r1, [r0] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + b _0802B19E +_0802B10E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802B19E + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802B198 + cmp r2, #2 + bne _0802B12E + ldrb r0, [r4, #0xd] + cmp r0, #1 + bne _0802B12E + ldr r0, _0802B188 @ =gUnk_03003F80 + strb r1, [r0, #5] +_0802B12E: + adds r0, r4, #0 + bl sub_0805EC60 + movs r5, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldr r0, _0802B18C @ =gUnk_080CD17C + str r0, [r4, #0x48] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x7b + strb r5, [r0] + adds r0, r4, #0 + bl sub_08078954 + ldr r1, [r4, #0x50] + ldr r0, [r1, #4] + cmp r0, #0 + beq _0802B16C + adds r0, r1, #0 + adds r0, #0x81 + strb r5, [r0] +_0802B16C: + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r5, r0, #0 + cmp r5, #0 + beq _0802B190 + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + b _0802B19E + .align 2, 0 +_0802B188: .4byte gUnk_03003F80 +_0802B18C: .4byte gUnk_080CD17C +_0802B190: + adds r0, r4, #0 + bl sub_0805E7BC + b _0802B19E +_0802B198: + adds r0, r4, #0 + bl sub_0802AFC8 +_0802B19E: + pop {r4, r5, pc} + + thumb_func_start sub_0802B1A0 +sub_0802B1A0: @ 0x0802B1A0 + push {lr} + movs r1, #0 + movs r2, #1 + strb r2, [r0, #0xc] + strb r1, [r0, #0xe] + movs r1, #0x4f + strb r1, [r0, #0xf] + adds r1, r0, #0 + adds r1, #0x81 + strb r2, [r1] + movs r1, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802B1BC +sub_0802B1BC: @ 0x0802B1BC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B1CA + subs r0, #1 + strb r0, [r4, #0xe] +_0802B1CA: + adds r0, r4, #0 + bl sub_0802B250 + adds r1, r0, #0 + cmp r1, #0 + bne _0802B1E2 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0802B264 + b _0802B200 +_0802B1E2: + adds r0, r1, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B1F6 + adds r0, r1, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _0802B200 +_0802B1F6: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0802B264 +_0802B200: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B204 +sub_0802B204: @ 0x0802B204 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0xa0 + lsls r1, r1, #6 + bl sub_080044EC + cmp r0, #1 + bne _0802B232 + movs r0, #0x22 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0802B22E + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, [r5, #0x50] + str r0, [r4, #0x50] +_0802B22E: + bl sub_0805E780 +_0802B232: + pop {r4, r5, pc} + + thumb_func_start sub_0802B234 +sub_0802B234: @ 0x0802B234 + push {r4, lr} + movs r4, #0 + bl sub_080002A0 + ldr r1, _0802B24C @ =0xFFFFFE3C + adds r0, r0, r1 + cmp r0, #1 + bls _0802B246 + movs r4, #1 +_0802B246: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0802B24C: .4byte 0xFFFFFE3C + + thumb_func_start sub_0802B250 +sub_0802B250: @ 0x0802B250 + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _0802B260 + ldr r0, [r1, #4] + cmp r0, #0 + bne _0802B260 + movs r1, #0 +_0802B260: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_0802B264 +sub_0802B264: @ 0x0802B264 + push {r4, lr} + adds r4, r0, #0 + 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 r0, r4, #0 + bl sub_0802B234 + cmp r0, #0 + beq _0802B294 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x18 + orrs r1, r0 + strb r1, [r2] + b _0802B2A2 +_0802B294: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0802B2A2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B2AC +sub_0802B2AC: @ 0x0802B2AC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0802B2C4 @ =gUnk_080CD234 + 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 +_0802B2C4: .4byte gUnk_080CD234 + + thumb_func_start sub_0802B2C8 +sub_0802B2C8: @ 0x0802B2C8 + push {lr} + ldr r2, _0802B2DC @ =gUnk_080CD24C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B2DC: .4byte gUnk_080CD24C + + thumb_func_start sub_0802B2E0 +sub_0802B2E0: @ 0x0802B2E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802B334 + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x14 + bne _0802B334 + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0802B334 + str r1, [r4, #0x54] + movs r0, #0xe + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806FA24 +_0802B334: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_15 +nullsub_15: @ 0x0802B338 + bx lr + .align 2, 0 + + thumb_func_start sub_0802B33C +sub_0802B33C: @ 0x0802B33C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x15] + movs r0, #0x78 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B35C +sub_0802B35C: @ 0x0802B35C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + movs r3, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802B374 + movs r3, #1 +_0802B374: + ldrh r0, [r4, #0x2a] + adds r2, r0, #0 + cmp r2, #0 + bne _0802B3A4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0802B38A + b _0802B4A6 +_0802B38A: + movs r0, #0x78 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + cmp r3, #0 + beq _0802B39A + adds r1, r0, #0 + adds r1, #8 + b _0802B39E +_0802B39A: + adds r1, r0, #0 + adds r1, #0x18 +_0802B39E: + movs r0, #0x18 + ands r0, r1 + b _0802B4A4 +_0802B3A4: + movs r0, #0x78 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + movs r1, #0x18 + ands r1, r0 + cmp r1, #8 + beq _0802B474 + cmp r1, #8 + bgt _0802B3BC + cmp r1, #0 + beq _0802B3C6 + b _0802B4A6 +_0802B3BC: + cmp r1, #0x10 + beq _0802B404 + cmp r1, #0x18 + beq _0802B442 + b _0802B4A6 +_0802B3C6: + movs r0, #0xe + ands r0, r2 + cmp r0, #0 + beq _0802B3D8 + movs r0, #8 + cmp r3, #0 + beq _0802B4A4 + movs r0, #0x18 + b _0802B4A4 +_0802B3D8: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + bne _0802B3EE + cmp r3, #0 + beq _0802B3EE + movs r0, #8 + strb r0, [r4, #0x15] +_0802B3EE: + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #3 + cmp r0, r1 + bne _0802B4A6 + cmp r3, #0 + bne _0802B4A6 + movs r0, #0x18 + b _0802B4A4 +_0802B404: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0 + beq _0802B416 + movs r0, #0x18 + cmp r3, #0 + beq _0802B4A4 + movs r0, #8 + b _0802B4A4 +_0802B416: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #6 + cmp r0, r1 + bne _0802B42C + cmp r3, #0 + bne _0802B42C + movs r0, #8 + strb r0, [r4, #0x15] +_0802B42C: + movs r0, #0xe0 + lsls r0, r0, #4 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #2 + cmp r0, r1 + bne _0802B4A6 + cmp r3, #0 + beq _0802B4A6 + movs r0, #0x18 + b _0802B4A4 +_0802B442: + movs r1, #0xe0 + lsls r1, r1, #4 + ands r1, r2 + cmp r1, #0 + beq _0802B458 + rsbs r0, r3, #0 + orrs r0, r3 + asrs r0, r0, #0x1f + movs r1, #0x10 + ands r0, r1 + b _0802B4A4 +_0802B458: + movs r0, #0xe + ands r0, r2 + cmp r0, #4 + bne _0802B466 + cmp r3, #0 + beq _0802B466 + strb r1, [r4, #0x15] +_0802B466: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0x40 + bne _0802B4A6 + cmp r3, #0 + bne _0802B4A6 + b _0802B4A2 +_0802B474: + movs r0, #0xe0 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0802B488 + movs r0, #0 + cmp r3, #0 + bne _0802B4A4 + movs r0, #0x10 + b _0802B4A4 +_0802B488: + movs r0, #0xe + ands r0, r2 + cmp r0, #2 + bne _0802B496 + cmp r3, #0 + bne _0802B496 + strb r3, [r4, #0x15] +_0802B496: + movs r0, #0xe0 + ands r0, r2 + cmp r0, #0x20 + bne _0802B4A6 + cmp r3, #0 + beq _0802B4A6 +_0802B4A2: + movs r0, #0x10 +_0802B4A4: + strb r0, [r4, #0x15] +_0802B4A6: + pop {r4, pc} + + thumb_func_start sub_0802B4A8 +sub_0802B4A8: @ 0x0802B4A8 + 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 _0802B4D6 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0x60 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _0802B4D0 + ldrh r0, [r1, #0x32] + subs r0, #4 + strh r0, [r1, #0x32] +_0802B4D0: + adds r0, r4, #0 + bl sub_0805E7BC +_0802B4D6: + pop {r4, pc} + + thumb_func_start sub_0802B4D8 +sub_0802B4D8: @ 0x0802B4D8 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _0802B4FC + ldr r0, _0802B4F8 @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _0802B510 + .align 2, 0 +_0802B4F8: .4byte gUnk_080012C8 +_0802B4FC: + ldr r4, _0802B514 @ =gUnk_080CD27C + 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 +_0802B510: + pop {r4, r5, pc} + .align 2, 0 +_0802B514: .4byte gUnk_080CD27C + + thumb_func_start sub_0802B518 +sub_0802B518: @ 0x0802B518 + push {lr} + ldr r2, _0802B52C @ =gUnk_080CD298 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B52C: .4byte gUnk_080CD298 + + thumb_func_start sub_0802B530 +sub_0802B530: @ 0x0802B530 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B540 +sub_0802B540: @ 0x0802B540 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802B550 + subs r0, #1 + strb r0, [r4, #0xe] + b _0802B56A +_0802B550: + adds r0, r4, #0 + movs r1, #1 + movs r2, #0xc + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802B56A + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0x15] +_0802B56A: + pop {r4, pc} + + thumb_func_start sub_0802B56C +sub_0802B56C: @ 0x0802B56C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802B586 + movs r0, #0x40 + strh r0, [r4, #0x24] +_0802B586: + adds r0, r4, #0 + bl sub_080AF038 + cmp r0, #0 + beq _0802B5B8 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _0802B5A2 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802B5A2: + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _0802B5B4 @ =0x0000021F + cmp r1, r0 + bgt _0802B5C4 + adds r0, r2, #4 + strh r0, [r4, #0x24] + b _0802B5C4 + .align 2, 0 +_0802B5B4: .4byte 0x0000021F +_0802B5B8: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_0802B5C4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B5C8 +sub_0802B5C8: @ 0x0802B5C8 + 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 _0802B5EE + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0802B5EE: + pop {r4, pc} + + thumb_func_start sub_0802B5F0 +sub_0802B5F0: @ 0x0802B5F0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802B60C @ =gUnk_080CD2D8 + 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 +_0802B60C: .4byte gUnk_080CD2D8 + + thumb_func_start sub_0802B610 +sub_0802B610: @ 0x0802B610 + push {lr} + ldr r2, _0802B624 @ =gUnk_080CD2F0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B624: .4byte gUnk_080CD2F0 + + thumb_func_start sub_0802B628 +sub_0802B628: @ 0x0802B628 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0x1d + bhi _0802B706 + lsls r0, r1, #2 + ldr r1, _0802B644 @ =_0802B648 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B644: .4byte _0802B648 +_0802B648: @ jump table + .4byte _0802B6C0 @ case 0 + .4byte _0802B706 @ case 1 + .4byte _0802B6CC @ case 2 + .4byte _0802B6CC @ case 3 + .4byte _0802B6C0 @ case 4 + .4byte _0802B6C0 @ case 5 + .4byte _0802B6C0 @ case 6 + .4byte _0802B706 @ case 7 + .4byte _0802B6C0 @ case 8 + .4byte _0802B6C0 @ case 9 + .4byte _0802B6C0 @ case 10 + .4byte _0802B6C0 @ case 11 + .4byte _0802B6C0 @ case 12 + .4byte _0802B706 @ case 13 + .4byte _0802B706 @ case 14 + .4byte _0802B706 @ case 15 + .4byte _0802B706 @ case 16 + .4byte _0802B706 @ case 17 + .4byte _0802B706 @ case 18 + .4byte _0802B706 @ case 19 + .4byte _0802B706 @ case 20 + .4byte _0802B706 @ case 21 + .4byte _0802B6CC @ case 22 + .4byte _0802B706 @ case 23 + .4byte _0802B6CC @ case 24 + .4byte _0802B6CC @ case 25 + .4byte _0802B6CC @ case 26 + .4byte _0802B706 @ case 27 + .4byte _0802B706 @ case 28 + .4byte _0802B6CC @ case 29 +_0802B6C0: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _0802B706 + movs r0, #1 + strb r0, [r4, #0xe] + b _0802B706 +_0802B6CC: + ldrb r0, [r4, #0xc] + cmp r0, #5 + bhi _0802B706 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + adds r1, #2 + movs r0, #0x64 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 +_0802B706: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802B718 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802B718: + ldr r1, _0802B724 @ =gUnk_080CD2D8 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802B724: .4byte gUnk_080CD2D8 + + thumb_func_start nullsub_144 +nullsub_144: @ 0x0802B728 + bx lr + .align 2, 0 + + thumb_func_start sub_0802B72C +sub_0802B72C: @ 0x0802B72C + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0802B7A4 + pop {r4, pc} + + thumb_func_start sub_0802B744 +sub_0802B744: @ 0x0802B744 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B780 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0xc + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802B780 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x18 + ands r1, r0 + strb r1, [r4, #0x15] + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + b _0802B7A2 +_0802B780: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B794 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + b _0802B7A0 +_0802B794: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0802B7A2 + movs r0, #1 +_0802B7A0: + strb r0, [r4, #0xe] +_0802B7A2: + pop {r4, pc} + + thumb_func_start sub_0802B7A4 +sub_0802B7A4: @ 0x0802B7A4 + 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 _0802B7F4 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0802B7F8 @ =gUnk_080CD314 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0802B960 + ldrb r0, [r4, #0x15] + lsls r1, r0, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #0xff + beq _0802B7F4 + lsrs r2, r1, #0x1b + ldrb r0, [r4, #0x14] + cmp r2, r0 + beq _0802B7F4 + movs r1, #3 + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08004260 +_0802B7F4: + pop {r4, pc} + .align 2, 0 +_0802B7F8: .4byte gUnk_080CD314 + + thumb_func_start sub_0802B7FC +sub_0802B7FC: @ 0x0802B7FC + push {r4, 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 _0802B81E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0802B81E: + pop {r4, pc} + + thumb_func_start sub_0802B820 +sub_0802B820: @ 0x0802B820 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _0802B830 + movs r0, #1 + strb r0, [r4, #0xe] +_0802B830: + 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 _0802B84A + adds r0, r4, #0 + bl sub_0802B9B4 + b _0802B87E +_0802B84A: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B878 + ldrb r1, [r4, #0xe] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802B87E + ldr r0, _0802B874 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + b _0802B87E + .align 2, 0 +_0802B874: .4byte gUnk_020000B0 +_0802B878: + adds r0, r4, #0 + bl sub_0802B9B4 +_0802B87E: + pop {r4, pc} + + thumb_func_start sub_0802B880 +sub_0802B880: @ 0x0802B880 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802B8AC + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0x3c + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_08004260 +_0802B8AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B8B0 +sub_0802B8B0: @ 0x0802B8B0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + beq _0802B8CC + cmp r0, #1 + beq _0802B8D4 + b _0802B8DA +_0802B8CC: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x96 + strb r0, [r4, #0xe] +_0802B8D4: + ldr r0, _0802B8DC @ =0x0000012B + bl sub_08004488 +_0802B8DA: + pop {r4, pc} + .align 2, 0 +_0802B8DC: .4byte 0x0000012B + + thumb_func_start sub_0802B8E0 +sub_0802B8E0: @ 0x0802B8E0 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xe] + subs r1, r0, #1 + strb r1, [r3, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + beq _0802B91C + adds r4, r0, #0 + lsrs r0, r4, #0x18 + cmp r0, #0x3b + bhi _0802B940 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0802B940 + adds r3, #0x62 + ldr r2, _0802B918 @ =gUnk_080CD318 + lsrs r0, r4, #0x19 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + b _0802B940 + .align 2, 0 +_0802B918: .4byte gUnk_080CD318 +_0802B91C: + movs r0, #8 + strb r0, [r3, #0xc] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r0, #0x60 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x63 + strb r0, [r1] + ldrb r1, [r3, #0x14] + adds r0, r3, #0 + bl sub_08004260 + ldr r0, _0802B944 @ =0x0000012B + bl sub_08004488 +_0802B940: + pop {r4, pc} + .align 2, 0 +_0802B944: .4byte 0x0000012B + + thumb_func_start sub_0802B948 +sub_0802B948: @ 0x0802B948 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0802B95E + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] +_0802B95E: + pop {r4, pc} + + thumb_func_start sub_0802B960 +sub_0802B960: @ 0x0802B960 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802B986 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + cmp r1, #0 + bne _0802B9A6 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #4 + b _0802B9AA +_0802B986: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802B9A6 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _0802B9A6 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + b _0802B9AA +_0802B9A6: + bl sub_08000E50 +_0802B9AA: + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802B9B4 +sub_0802B9B4: @ 0x0802B9B4 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + movs r1, #0x3c + strb r1, [r0, #0xe] + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + movs r2, #3 + ands r1, r2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + adds r1, #4 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802B9D4 +sub_0802B9D4: @ 0x0802B9D4 + push {lr} + ldr r2, _0802B9E8 @ =gUnk_080CD3C4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802B9E8: .4byte gUnk_080CD3C4 + + thumb_func_start sub_0802B9EC +sub_0802B9EC: @ 0x0802B9EC + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldr r1, _0802BA14 @ =gUnk_080CD3D4 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x78 + strh r1, [r0] + adds r0, #0xc + ldrh r1, [r0] + subs r0, #8 + strh r1, [r0] + adds r0, #0xa + ldrh r1, [r0] + subs r0, #8 + strh r1, [r0] + bx lr + .align 2, 0 +_0802BA14: .4byte gUnk_080CD3D4 + + thumb_func_start sub_0802BA18 +sub_0802BA18: @ 0x0802BA18 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #1 + movs r2, #0xe + bl sub_0804A024 + adds r5, r0, #0 + cmp r5, #0xff + beq _0802BA88 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0802BB2C + cmp r0, #0 + bne _0802BA88 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x24] + strb r5, [r4, #0x15] + lsrs r0, r5, #3 + cmp r0, #1 + beq _0802BA60 + cmp r0, #1 + blo _0802BA58 + cmp r0, #2 + beq _0802BA6C + cmp r0, #3 + beq _0802BA78 + b _0802BA88 +_0802BA58: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r4, #0x32] + b _0802BA7E +_0802BA60: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + b _0802BA82 +_0802BA6C: + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + b _0802BA82 +_0802BA78: + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r4, #0x2e] +_0802BA7E: + ldrh r1, [r1] + subs r0, r0, r1 +_0802BA82: + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] +_0802BA88: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802BA8C +sub_0802BA8C: @ 0x0802BA8C + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF038 + cmp r0, #0 + beq _0802BADE + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _0802BAC4 + cmp r0, #1 + bgt _0802BAAA + cmp r0, #0 + beq _0802BAB4 + b _0802BAFA +_0802BAAA: + cmp r0, #2 + beq _0802BAD0 + cmp r0, #3 + beq _0802BAE6 + b _0802BAFA +_0802BAB4: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _0802BAFA + b _0802BADE +_0802BAC4: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + b _0802BADA +_0802BAD0: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] +_0802BADA: + cmp r1, r0 + bgt _0802BAFA +_0802BADE: + adds r0, r4, #0 + bl sub_0802BB10 + b _0802BAFA +_0802BAE6: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + cmp r1, r0 + blt _0802BAFA + adds r0, r4, #0 + bl sub_0802BB10 +_0802BAFA: + pop {r4, pc} + + thumb_func_start sub_0802BAFC +sub_0802BAFC: @ 0x0802BAFC + push {r4, lr} + adds r4, r0, #0 + bl sub_080AF038 + cmp r0, #0 + bne _0802BB0C + movs r0, #1 + strb r0, [r4, #0xc] +_0802BB0C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BB10 +sub_0802BB10: @ 0x0802BB10 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0xc0 + strh r1, [r0, #0x24] + ldrb r1, [r0, #0x15] + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + movs r0, #0x74 + bl sub_08004488 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802BB2C +sub_0802BB2C: @ 0x0802BB2C + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r4, _0802BB60 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802BB3C + ldr r4, _0802BB64 @ =gUnk_0200D654 +_0802BB3C: + lsrs r3, r1, #2 + ldr r0, _0802BB68 @ =gUnk_080CD3DC + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r0, #0 + ldrsb r0, [r3, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0 + bl sub_080AE4CC + pop {r4, pc} + .align 2, 0 +_0802BB60: .4byte gUnk_02027EB4 +_0802BB64: .4byte gUnk_0200D654 +_0802BB68: .4byte gUnk_080CD3DC + + thumb_func_start sub_0802BB6C +sub_0802BB6C: @ 0x0802BB6C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802BB94 + ldr r1, _0802BB90 @ =gUnk_080CD3E4 + 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 _0802BBA4 + .align 2, 0 +_0802BB90: .4byte gUnk_080CD3E4 +_0802BB94: + ldr r0, _0802BBA8 @ =gUnk_080CD3FC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802BBA4: + pop {r4, pc} + .align 2, 0 +_0802BBA8: .4byte gUnk_080CD3FC + + thumb_func_start sub_0802BBAC +sub_0802BBAC: @ 0x0802BBAC + push {lr} + ldr r2, _0802BBC0 @ =gUnk_080CD408 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802BBC0: .4byte gUnk_080CD408 + + thumb_func_start sub_0802BBC4 +sub_0802BBC4: @ 0x0802BBC4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x19 + beq _0802BBFE + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + beq _0802BBEA + cmp r1, #0 + blt _0802BBFE + cmp r1, #3 + bgt _0802BBFE + cmp r1, #2 + blt _0802BBFE +_0802BBEA: + ldrb r0, [r4, #0xc] + cmp r0, #4 + bne _0802BBFE + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802C218 +_0802BBFE: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802BC10 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802BC10: + ldr r1, _0802BC1C @ =gUnk_080CD3E4 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0802BC1C: .4byte gUnk_080CD3E4 + + thumb_func_start sub_0802BC20 +sub_0802BC20: @ 0x0802BC20 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x19 + beq _0802BC4C + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BC6C + ldr r0, _0802BC48 @ =gUnk_080CD42C + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802BC6C + .align 2, 0 +_0802BC48: .4byte gUnk_080CD42C +_0802BC4C: + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0802BC5C + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BC6C +_0802BC5C: + ldr r0, _0802BC70 @ =gUnk_080CD438 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0802BC6C: + pop {r4, pc} + .align 2, 0 +_0802BC70: .4byte gUnk_080CD438 + + thumb_func_start sub_0802BC74 +sub_0802BC74: @ 0x0802BC74 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802C1C0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0x1d] + ldr r0, _0802BC9C @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_0802BC9C: .4byte gLinkEntity + + thumb_func_start sub_0802BCA0 +sub_0802BCA0: @ 0x0802BCA0 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802BCA8 +sub_0802BCA8: @ 0x0802BCA8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x3f + ldrb r0, [r1] + cmp r0, #0x19 + beq _0802BCFA + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0x19 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r0, #0x12 + strb r0, [r4, #0x1c] + movs r0, #0x20 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _0802BCF0 + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + adds r0, r4, #0 + bl sub_0806FA24 +_0802BCF0: + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802BCFA: + pop {r4, pc} + + thumb_func_start sub_0802BCFC +sub_0802BCFC: @ 0x0802BCFC + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802BD08 +sub_0802BD08: @ 0x0802BD08 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802BD10 +sub_0802BD10: @ 0x0802BD10 + 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_145 +nullsub_145: @ 0x0802BD24 + bx lr + .align 2, 0 + + thumb_func_start sub_0802BD28 +sub_0802BD28: @ 0x0802BD28 + 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 _0802BD4C + 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 _0802BD52 +_0802BD4C: + adds r0, r2, #0 + adds r0, #0x45 + strb r1, [r0] +_0802BD52: + pop {pc} + + thumb_func_start sub_0802BD54 +sub_0802BD54: @ 0x0802BD54 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + movs r0, #0x3c + strb r0, [r4, #0x1d] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + bl sub_08000E50 + 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 sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0802BD8C +sub_0802BD8C: @ 0x0802BD8C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802BD9C + subs r0, #1 + strb r0, [r4, #0xe] + b _0802BDDE +_0802BD9C: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802BDCA + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x10 + bl sub_0804A024 + adds r1, r0, #0 + cmp r1, #0xff + beq _0802BDCA + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r1, r0 + beq _0802BDCA + adds r0, r4, #0 + bl sub_0802C058 + b _0802BDDE +_0802BDCA: + adds r0, r4, #0 + bl sub_0802C020 + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0802BDDE + adds r0, r4, #0 + bl sub_0802C058 +_0802BDDE: + pop {r4, pc} + + thumb_func_start sub_0802BDE0 +sub_0802BDE0: @ 0x0802BDE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802C06C + cmp r0, #0 + beq _0802BDFE + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xff + strb r0, [r1] + b _0802BE16 +_0802BDFE: + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] +_0802BE16: + pop {r4, pc} + + thumb_func_start sub_0802BE18 +sub_0802BE18: @ 0x0802BE18 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802BE3E + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0802BE44 +_0802BE3E: + adds r0, r4, #0 + bl sub_0802C18C +_0802BE44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BE48 +sub_0802BE48: @ 0x0802BE48 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _0802BE64 + adds r0, r4, #0 + bl sub_0802C218 + movs r0, #8 + movs r1, #0 + bl sub_08080964 + b _0802BE7E +_0802BE64: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802C1CC + adds r0, r4, #0 + bl sub_0802C0E8 + cmp r0, #0 + beq _0802BE7E + movs r0, #5 + strb r0, [r4, #0xc] +_0802BE7E: + pop {r4, pc} + + thumb_func_start sub_0802BE80 +sub_0802BE80: @ 0x0802BE80 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x24] + subs r0, #0x20 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0xff + ble _0802BE98 + adds r0, r4, #0 + bl sub_0802C1CC +_0802BE98: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + ble _0802BEAE + adds r0, r4, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_0802C18C + b _0802BEBA +_0802BEAE: + adds r0, r4, #0 + bl sub_0802C1C0 + ldrb r0, [r4, #0xe] + adds r0, #0x1e + strb r0, [r4, #0xe] +_0802BEBA: + pop {r4, pc} + + thumb_func_start sub_0802BEBC +sub_0802BEBC: @ 0x0802BEBC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0x15] + movs r4, #0x10 + eors r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_080AEFE0 + ldrb r0, [r5, #0x15] + eors r0, r4 + strb r0, [r5, #0x15] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_080044EC + cmp r0, #0 + bne _0802BEE8 + adds r0, r5, #0 + bl sub_0802C1C0 +_0802BEE8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802BEEC +sub_0802BEEC: @ 0x0802BEEC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802BF1E + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0802BF3A + ldrb r0, [r4, #0x14] + movs r1, #2 + eors r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _0802BF3A +_0802BF1E: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0802BF3A + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_0802BF3A: + pop {r4, pc} + + thumb_func_start sub_0802BF3C +sub_0802BF3C: @ 0x0802BF3C + push {r4, lr} + adds r4, r0, #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 _0802BF76 + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0802C020 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _0802BF76 + strb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802BF76: + pop {r4, pc} + + thumb_func_start sub_0802BF78 +sub_0802BF78: @ 0x0802BF78 + push {lr} + movs r2, #1 + strb r2, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x3b + movs r1, #4 + strb r1, [r3] + strb r2, [r0, #0x1c] + ldrb r1, [r0, #0x14] + lsls r1, r1, #3 + strb r1, [r0, #0x15] + ldrb r1, [r0, #0x14] + adds r1, #8 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802BF98 +sub_0802BF98: @ 0x0802BF98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0802BFBC + ldr r0, _0802BFB8 @ =gUnk_080CD450 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0802BFCC + .align 2, 0 +_0802BFB8: .4byte gUnk_080CD450 +_0802BFBC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0802BFCC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802BFD0 +sub_0802BFD0: @ 0x0802BFD0 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0802BFD8 +sub_0802BFD8: @ 0x0802BFD8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802BFE0 +sub_0802BFE0: @ 0x0802BFE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0802BFF2 + adds r0, r4, #0 + bl sub_0805E7BC +_0802BFF2: + pop {r4, pc} + + thumb_func_start sub_0802BFF4 +sub_0802BFF4: @ 0x0802BFF4 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #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, [r3, #0x18] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C01C + adds r0, r3, #0 + bl sub_0805E7BC +_0802C01C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802C020 +sub_0802C020: @ 0x0802C020 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802C03E + movs r6, #1 + adds r0, r4, #0 + ands r0, r6 + cmp r0, #0 + beq _0802C044 +_0802C03E: + movs r0, #0x18 + ands r0, r4 + b _0802C056 +_0802C044: + adds r0, r5, #0 + bl sub_08049EE4 + lsrs r1, r4, #0x10 + ands r1, r6 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 +_0802C056: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802C058 +sub_0802C058: @ 0x0802C058 + push {lr} + movs r2, #2 + strb r2, [r0, #0xc] + strb r1, [r0, #0x15] + lsrs r1, r1, #3 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0802C06C +sub_0802C06C: @ 0x0802C06C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r3, [r0, #0x48] + movs r1, #0 + ldrsb r1, [r3, r1] + adds r6, r2, r1 + movs r1, #0x32 + ldrsh r2, [r0, r1] + movs r1, #1 + ldrsb r1, [r3, r1] + adds r5, r2, r1 + ldr r3, _0802C0CC @ =gUnk_080CD45C + ldrb r1, [r0, #0x15] + lsrs r1, r1, #2 + adds r2, r1, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + mov sb, r2 + adds r1, #1 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov r8, r1 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _0802C0D0 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802C0B2 + ldr r7, _0802C0D4 @ =gUnk_0200D654 +_0802C0B2: + movs r4, #0 +_0802C0B4: + add r6, sb + add r5, r8 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _0802C0D8 + movs r0, #0 + b _0802C0E0 + .align 2, 0 +_0802C0CC: .4byte gUnk_080CD45C +_0802C0D0: .4byte gUnk_02027EB4 +_0802C0D4: .4byte gUnk_0200D654 +_0802C0D8: + adds r4, #1 + cmp r4, #7 + bls _0802C0B4 + movs r0, #1 +_0802C0E0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802C0E8 +sub_0802C0E8: @ 0x0802C0E8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C0FC + movs r0, #1 + b _0802C178 +_0802C0FC: + ldrb r3, [r5, #0x15] + lsrs r3, r3, #2 + ldr r0, _0802C17C @ =gUnk_080CD45C + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + ldr r4, [r5, #0x48] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r1, #0 + ldrsb r1, [r3, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r6, r2, r0 + movs r0, #0x32 + ldrsh r2, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r1, #1 + ldrsb r1, [r3, r1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + adds r4, r2, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _0802C180 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0802C140 + ldr r7, _0802C184 @ =gUnk_0200D654 +_0802C140: + movs r5, #0 + ldr r1, _0802C188 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r0, r6, r0 + asrs r0, r0, #4 + movs r2, #0x3f + ands r0, r2 + ldrh r1, [r1, #8] + subs r1, r4, r1 + asrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #9 + bl sub_0806FC24 + cmp r0, #0 + bne _0802C176 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #0 + bl sub_080AE4CC + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r5, r1, #0x1f +_0802C176: + adds r0, r5, #0 +_0802C178: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802C17C: .4byte gUnk_080CD45C +_0802C180: .4byte gUnk_02027EB4 +_0802C184: .4byte gUnk_0200D654 +_0802C188: .4byte gUnk_03000BF0 + + thumb_func_start sub_0802C18C +sub_0802C18C: @ 0x0802C18C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x78 + ldrb r1, [r0] + subs r1, #1 + strb r1, [r0] + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0802C1BC + movs r0, #0xf + movs r1, #0x11 + movs r2, #0x40 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0802C1BC + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative +_0802C1BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802C1C0 +sub_0802C1C0: @ 0x0802C1C0 + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C1CC +sub_0802C1CC: @ 0x0802C1CC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0x14] + lsls r4, r4, #2 + ldr r0, _0802C214 @ =gUnk_080CD464 + adds r4, r4, r0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r3, [r5, r0] + movs r0, #1 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r5, #0 + movs r1, #9 + bl sub_08008796 + movs r0, #0x2e + ldrsh r2, [r5, r0] + movs r0, #2 + ldrsb r0, [r4, r0] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r3, [r5, r0] + movs r0, #3 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r5, #0 + movs r1, #9 + bl sub_08008796 + pop {r4, r5, pc} + .align 2, 0 +_0802C214: .4byte gUnk_080CD464 + + thumb_func_start sub_0802C218 +sub_0802C218: @ 0x0802C218 + movs r1, #6 + strb r1, [r0, #0xc] + movs r1, #0xe0 + strh r1, [r0, #0x24] + movs r1, #0xc0 + lsls r1, r1, #9 + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0802C228 +sub_0802C228: @ 0x0802C228 + push {lr} + ldr r1, _0802C234 @ =gUnk_080CD540 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0802C234: .4byte gUnk_080CD540 + + thumb_func_start sub_0802C238 +sub_0802C238: @ 0x0802C238 + push {lr} + ldr r2, _0802C24C @ =gUnk_080CD558 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C24C: .4byte gUnk_080CD558 + + thumb_func_start sub_0802C250 +sub_0802C250: @ 0x0802C250 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C254 +sub_0802C254: @ 0x0802C254 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C258 +sub_0802C258: @ 0x0802C258 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #2 + strb r0, [r4, #0xe] + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #0x70 + ands r2, r0 + adds r3, r4, #0 + adds r3, #0x7a + movs r1, #0 + strh r2, [r3] + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0802C288 + cmp r0, #2 + beq _0802C290 + b _0802C29C +_0802C288: + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r0, #0 + b _0802C296 +_0802C290: + movs r5, #0x80 + lsls r5, r5, #2 + adds r1, r5, #0 +_0802C296: + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3] +_0802C29C: + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + movs r2, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldr r0, _0802C310 @ =0x0000FFF0 + strh r0, [r4, #0x36] + subs r1, #0x4a + movs r0, #3 + strb r0, [r1] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802C314 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + adds r0, r4, #0 + bl sub_0802C62C + adds r0, r4, #0 + bl sub_0802C4B0 + pop {r4, r5, pc} + .align 2, 0 +_0802C310: .4byte 0x0000FFF0 +_0802C314: .4byte gUnk_03000BF0 + + thumb_func_start sub_0802C318 +sub_0802C318: @ 0x0802C318 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802C330 + movs r0, #2 + strb r0, [r2, #0xc] +_0802C330: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0802C334 +sub_0802C334: @ 0x0802C334 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x7c + ldrh r0, [r3] + cmp r0, #0 + bne _0802C36A + ldr r0, _0802C3C4 @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + ldr r2, _0802C3C8 @ =gLinkEntity + cmp r2, #0 + bne _0802C34E + b _0802C4AA +_0802C34E: + movs r5, #0x32 + ldrsh r0, [r2, r5] + subs r0, r0, r1 + cmp r0, #0x38 + bhi _0802C35A + b _0802C4AA +_0802C35A: + movs r0, #1 + strh r0, [r3] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_0802C36A: + adds r0, r4, #0 + bl sub_08004274 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802C3C4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + adds r0, #6 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802C3CC + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xc + strh r0, [r1] + adds r0, r4, #0 + bl sub_0802C4B0 + b _0802C48C + .align 2, 0 +_0802C3C4: .4byte gUnk_03000BF0 +_0802C3C8: .4byte gLinkEntity +_0802C3CC: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r1, [r0] + adds r7, r0, #0 + cmp r1, #0 + beq _0802C442 + subs r0, r1, #1 + strh r0, [r7] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _0802C3EA + cmp r0, #8 + beq _0802C3F4 + b _0802C442 +_0802C3EA: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _0802C442 +_0802C3F4: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802C442 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802C442 + movs r6, #0 + movs r5, #1 +_0802C408: + adds r0, r4, #0 + movs r1, #0x15 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0802C420 + ldrh r0, [r2, #0x2e] + adds r0, #0xc + subs r0, r0, r6 + strh r0, [r2, #0x2e] +_0802C420: + adds r6, #0x18 + subs r5, #1 + cmp r5, #0 + bge _0802C408 + adds r0, r4, #0 + bl sub_0802C62C + bl sub_08000E50 + movs r1, #0xff + ands r0, r1 + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7] + b _0802C4AA +_0802C442: + ldr r0, _0802C45C @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r5, r1, r0 + cmp r5, #4 + ble _0802C460 + adds r0, r4, #0 + bl sub_080AEFB4 + b _0802C48C + .align 2, 0 +_0802C45C: .4byte gUnk_03000BF0 +_0802C460: + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x36 + ldrsh r0, [r4, r1] + subs r0, r0, r5 + cmp r0, #0x38 + ble _0802C48C + adds r0, r4, #0 + bl sub_0802C62C + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strh r0, [r7] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _0802C48C + strb r0, [r4, #0xc] +_0802C48C: + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08016A04 +_0802C4AA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start nullsub_148 +nullsub_148: @ 0x0802C4AC + bx lr + .align 2, 0 + + thumb_func_start sub_0802C4B0 +sub_0802C4B0: @ 0x0802C4B0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x7e + ldrh r0, [r0] + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080001DA + adds r1, r0, #0 + ldr r0, _0802C4D8 @ =0x000001AB + cmp r1, r0 + blo _0802C4E4 + adds r0, #4 + cmp r1, r0 + bls _0802C4DC + adds r0, #0x15 + cmp r1, r0 + beq _0802C4E0 + b _0802C4E4 + .align 2, 0 +_0802C4D8: .4byte 0x000001AB +_0802C4DC: + movs r6, #8 + b _0802C4E6 +_0802C4E0: + movs r6, #4 + b _0802C4E6 +_0802C4E4: + movs r6, #0 +_0802C4E6: + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C518 + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C50C + ldr r0, _0802C508 @ =gUnk_080CD568 + movs r1, #2 + orrs r1, r6 + b _0802C532 + .align 2, 0 +_0802C508: .4byte gUnk_080CD568 +_0802C50C: + ldr r0, _0802C514 @ =gUnk_080CD568 + lsls r1, r6, #1 + b _0802C534 + .align 2, 0 +_0802C514: .4byte gUnk_080CD568 +_0802C518: + movs r2, #3 + ands r4, r2 + cmp r4, #0 + beq _0802C52C + ldr r0, _0802C528 @ =gUnk_080CD568 + movs r1, #1 + orrs r1, r6 + b _0802C532 + .align 2, 0 +_0802C528: .4byte gUnk_080CD568 +_0802C52C: + ldr r0, _0802C570 @ =gUnk_080CD568 + adds r1, r6, #0 + orrs r1, r2 +_0802C532: + lsls r1, r1, #1 +_0802C534: + adds r1, r1, r0 + ldrh r0, [r1] + strh r0, [r5, #0x24] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C584 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0802C55E + movs r0, #0 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0802C55E: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C578 + ldr r0, _0802C574 @ =gUnk_080CD580 + movs r1, #1 + orrs r1, r6 + b _0802C5B2 + .align 2, 0 +_0802C570: .4byte gUnk_080CD568 +_0802C574: .4byte gUnk_080CD580 +_0802C578: + ldr r0, _0802C580 @ =gUnk_080CD580 + adds r0, r6, r0 + ldrb r0, [r0] + b _0802C5B6 + .align 2, 0 +_0802C580: .4byte gUnk_080CD580 +_0802C584: + ldrb r0, [r5, #0xe] + cmp r0, #1 + beq _0802C596 + movs r0, #1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0802C596: + movs r2, #3 + ands r4, r2 + cmp r4, #0 + beq _0802C5AC + ldr r0, _0802C5A8 @ =gUnk_080CD580 + movs r1, #2 + orrs r1, r6 + b _0802C5B2 + .align 2, 0 +_0802C5A8: .4byte gUnk_080CD580 +_0802C5AC: + ldr r0, _0802C5E4 @ =gUnk_080CD580 + adds r1, r6, #0 + orrs r1, r2 +_0802C5B2: + adds r1, r1, r0 + ldrb r0, [r1] +_0802C5B6: + strb r0, [r5, #0x15] + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #7 + ands r4, r0 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0802C5FC + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C5EC + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C5E8 @ =gUnk_080CD58C + movs r0, #1 + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C5E4: .4byte gUnk_080CD580 +_0802C5E8: .4byte gUnk_080CD58C +_0802C5EC: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C5F8 @ =gUnk_080CD58C + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C5F8: .4byte gUnk_080CD58C +_0802C5FC: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + beq _0802C614 + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C610 @ =gUnk_080CD58C + movs r0, #2 + orrs r6, r0 + b _0802C61A + .align 2, 0 +_0802C610: .4byte gUnk_080CD58C +_0802C614: + adds r2, r5, #0 + adds r2, #0x84 + ldr r1, _0802C628 @ =gUnk_080CD58C +_0802C61A: + lsls r0, r6, #1 + adds r0, r0, r1 + movs r1, #0 + ldrsh r0, [r0, r1] + str r0, [r2] + pop {r4, r5, r6, pc} + .align 2, 0 +_0802C628: .4byte gUnk_080CD58C + + thumb_func_start sub_0802C62C +sub_0802C62C: @ 0x0802C62C + adds r3, r0, #0 + movs r2, #0 + movs r0, #1 + strb r0, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r3, #0x32] + adds r0, r3, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r3, #0x2e] + ldrb r1, [r3, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #0x18] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + adds r0, #0x7c + strh r2, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C660 +sub_0802C660: @ 0x0802C660 + push {lr} + ldr r1, _0802C66C @ =gUnk_080CD5D4 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0802C66C: .4byte gUnk_080CD5D4 + + thumb_func_start sub_0802C670 +sub_0802C670: @ 0x0802C670 + push {lr} + ldr r2, _0802C684 @ =gUnk_080CD5EC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C684: .4byte gUnk_080CD5EC + + thumb_func_start sub_0802C688 +sub_0802C688: @ 0x0802C688 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802C69A + b _0802C79E +_0802C69A: + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x16 + bhi _0802C740 + lsls r0, r0, #2 + ldr r1, _0802C6AC @ =_0802C6B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802C6AC: .4byte _0802C6B0 +_0802C6B0: @ jump table + .4byte _0802C70C @ case 0 + .4byte _0802C70C @ case 1 + .4byte _0802C740 @ case 2 + .4byte _0802C740 @ case 3 + .4byte _0802C740 @ case 4 + .4byte _0802C740 @ case 5 + .4byte _0802C740 @ case 6 + .4byte _0802C740 @ case 7 + .4byte _0802C740 @ case 8 + .4byte _0802C740 @ case 9 + .4byte _0802C740 @ case 10 + .4byte _0802C740 @ case 11 + .4byte _0802C740 @ case 12 + .4byte _0802C740 @ case 13 + .4byte _0802C72C @ case 14 + .4byte _0802C740 @ case 15 + .4byte _0802C740 @ case 16 + .4byte _0802C740 @ case 17 + .4byte _0802C740 @ case 18 + .4byte _0802C740 @ case 19 + .4byte _0802C72C @ case 20 + .4byte _0802C72C @ case 21 + .4byte _0802C72C @ case 22 +_0802C70C: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802C7A6 + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + ldr r0, _0802C728 @ =gLinkEntity + adds r0, #0x42 + movs r1, #4 + strb r1, [r0] + b _0802C7A6 + .align 2, 0 +_0802C728: .4byte gLinkEntity +_0802C72C: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C7A6 +_0802C740: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x1c + strb r0, [r1] + ldrb r0, [r2] + cmp r0, #1 + beq _0802C75E + cmp r0, #2 + beq _0802C770 + b _0802C79E +_0802C75E: + adds r0, r4, #0 + bl sub_0802CB68 + ldr r0, _0802C76C @ =0x0000014D + bl sub_08004488 + b _0802C79E + .align 2, 0 +_0802C76C: .4byte 0x0000014D +_0802C770: + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] + movs r1, #1 + strb r1, [r4, #0xf] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C79E: + ldr r1, _0802C7A8 @ =gUnk_080CD5D4 + adds r0, r4, #0 + bl sub_0804AA30 +_0802C7A6: + pop {r4, pc} + .align 2, 0 +_0802C7A8: .4byte gUnk_080CD5D4 + + thumb_func_start sub_0802C7AC +sub_0802C7AC: @ 0x0802C7AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bhi _0802C7F6 + adds r0, r4, #0 + bl sub_0806F520 + adds r1, r0, #0 + cmp r1, #0 + bne _0802C7F6 + strb r1, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] + strh r1, [r4, #0x36] + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + beq _0802C7E2 + movs r1, #0x80 + cmp r0, #0 + beq _0802C7E0 + movs r0, #0x80 + lsls r0, r0, #2 + adds r1, r0, #0 +_0802C7E0: + strh r1, [r4, #0x24] +_0802C7E2: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x83 + movs r1, #0 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + b _0802C816 +_0802C7F6: + ldr r0, _0802C818 @ =0x0000FFFF + strh r0, [r4, #0x36] + ldr r1, _0802C81C @ =gUnk_080CD600 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802C816 + adds r0, r4, #0 + bl sub_08004274 +_0802C816: + pop {r4, pc} + .align 2, 0 +_0802C818: .4byte 0x0000FFFF +_0802C81C: .4byte gUnk_080CD600 + + thumb_func_start sub_0802C820 +sub_0802C820: @ 0x0802C820 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0802C82C +sub_0802C82C: @ 0x0802C82C + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0802C834 +sub_0802C834: @ 0x0802C834 + push {lr} + bl sub_0806F3E4 + pop {pc} + + thumb_func_start sub_0802C83C +sub_0802C83C: @ 0x0802C83C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802C88C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C884 + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0802C86C @ =gLinkEntity + ldrb r0, [r0, #0x14] + movs r1, #6 + ands r1, r0 + cmp r1, #2 + beq _0802C870 + cmp r1, #6 + beq _0802C876 + b _0802C87C + .align 2, 0 +_0802C86C: .4byte gLinkEntity +_0802C870: + ldrh r0, [r4, #0x2e] + subs r0, #6 + b _0802C87A +_0802C876: + ldrh r0, [r4, #0x2e] + adds r0, #6 +_0802C87A: + strh r0, [r4, #0x2e] +_0802C87C: + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C8B2 +_0802C884: + adds r0, r4, #0 + bl sub_0802CC18 + b _0802C8A2 +_0802C88C: + movs r0, #2 + strb r0, [r1] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C8A2: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] +_0802C8B2: + pop {r4, pc} + + thumb_func_start nullsub_149 +nullsub_149: @ 0x0802C8B4 + bx lr + .align 2, 0 + + thumb_func_start sub_0802C8B8 +sub_0802C8B8: @ 0x0802C8B8 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + bl sub_0802CBC4 + pop {pc} + + thumb_func_start sub_0802C8C4 +sub_0802C8C4: @ 0x0802C8C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A7D4 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + pop {r4, pc} + + thumb_func_start sub_0802C8D8 +sub_0802C8D8: @ 0x0802C8D8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r5, #0x15] + strb r4, [r5, #0x16] + movs r0, #0x12 + strb r0, [r5, #0x1c] + adds r0, r5, #0 + adds r0, #0x82 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + subs r0, #3 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #4 + adds r0, r5, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802C91C +sub_0802C91C: @ 0x0802C91C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802C97A + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802C950 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #2 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_0802C950: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802C964 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802C9B4 +_0802C964: + movs r0, #0xf + ands r1, r0 + cmp r1, #8 + bne _0802C972 + adds r0, r4, #0 + bl sub_080A29FC +_0802C972: + adds r0, r4, #0 + bl sub_0802CC18 + b _0802C9B4 +_0802C97A: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802C992 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802C992: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802C9B4 + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x15] + adds r1, #8 + movs r0, #0x1c + ands r1, r0 + strb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0802C9B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802C9B8 +sub_0802C9B8: @ 0x0802C9B8 + push {lr} + ldr r2, _0802C9CC @ =gUnk_080CD618 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802C9CC: .4byte gUnk_080CD618 + + thumb_func_start sub_0802C9D0 +sub_0802C9D0: @ 0x0802C9D0 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + strb r2, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0802CC18 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802CA10 +sub_0802CA10: @ 0x0802CA10 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802CA30 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #5 + beq _0802CA42 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CA34 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CA66 + .align 2, 0 +_0802CA30: .4byte gUnk_03003F80 +_0802CA34: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 + b _0802CA66 +_0802CA42: + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #2 + strb r0, [r1] + ldr r0, _0802CA68 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsls r0, r0, #2 + movs r1, #4 + orrs r0, r1 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 +_0802CA66: + pop {r4, pc} + .align 2, 0 +_0802CA68: .4byte gLinkEntity + + thumb_func_start sub_0802CA6C +sub_0802CA6C: @ 0x0802CA6C + 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 _0802CA84 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CA90 +_0802CA84: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08004274 +_0802CA90: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CA94 +sub_0802CA94: @ 0x0802CA94 + push {lr} + adds r3, r0, #0 + movs r2, #0 + movs r0, #3 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + movs r0, #1 + strb r0, [r3, #0xf] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r0, #0 + strh r2, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x83 + strb r0, [r1] + subs r1, #2 + strb r0, [r1] + ldr r0, _0802CAF4 @ =gLinkEntity + ldrb r1, [r0, #0x14] + lsls r1, r1, #2 + movs r0, #4 + orrs r1, r0 + movs r0, #0x1c + ands r1, r0 + strb r1, [r3, #0x15] + lsrs r1, r1, #4 + movs r0, #6 + orrs r1, r0 + adds r0, r3, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0802CAF4: .4byte gLinkEntity + + thumb_func_start sub_0802CAF8 +sub_0802CAF8: @ 0x0802CAF8 + 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 _0802CB10 + adds r0, r4, #0 + bl sub_0802CBC4 + b _0802CB62 +_0802CB10: + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CB30 + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802CB30 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 +_0802CB30: + adds r0, r4, #0 + bl sub_0802CC18 + adds r0, r4, #0 + bl sub_08078930 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802CB5C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0802CB5C + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x6e + strb r0, [r1] +_0802CB5C: + adds r0, r4, #0 + bl sub_08004274 +_0802CB62: + pop {r4, pc} + + thumb_func_start nullsub_150 +nullsub_150: @ 0x0802CB64 + bx lr + .align 2, 0 + + thumb_func_start sub_0802CB68 +sub_0802CB68: @ 0x0802CB68 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #0x18 + ands r2, r0 + movs r0, #4 + orrs r2, r0 + orrs r2, r4 + strb r2, [r5, #0x15] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CBB2 + movs r0, #0xc8 + strb r0, [r5, #0xe] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + lsrs r1, r2, #4 + movs r0, #2 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 + b _0802CBC2 +_0802CBB2: + movs r0, #0x3c + strb r0, [r5, #0xe] + movs r0, #0x80 + strh r0, [r5, #0x24] + lsrs r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_0802CBC2: + pop {r4, r5, pc} + + thumb_func_start sub_0802CBC4 +sub_0802CBC4: @ 0x0802CBC4 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x45 + strb r2, [r0] + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0 + beq _0802CBF0 + bl sub_08079184 +_0802CBF0: + adds r0, r4, #0 + bl sub_08078954 + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _0802CC14 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] +_0802CC14: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CC18 +sub_0802CC18: @ 0x0802CC18 + push {lr} + adds r1, r0, #0 + adds r1, #0x80 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CC34 + movs r0, #0x1c + strb r0, [r1] + ldr r0, _0802CC38 @ =0x0000014D + bl sub_08004488 +_0802CC34: + pop {pc} + .align 2, 0 +_0802CC38: .4byte 0x0000014D + + thumb_func_start sub_0802CC3C +sub_0802CC3C: @ 0x0802CC3C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802CC64 @ =gUnk_080CD6FC + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802CC64: .4byte gUnk_080CD6FC + + thumb_func_start sub_0802CC68 +sub_0802CC68: @ 0x0802CC68 + push {lr} + ldr r2, _0802CC7C @ =gUnk_080CD714 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802CC7C: .4byte gUnk_080CD714 + + thumb_func_start sub_0802CC80 +sub_0802CC80: @ 0x0802CC80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r5, #0x7f + adds r1, r5, #0 + ands r1, r0 + cmp r1, #0 + blt _0802CCB8 + cmp r1, #1 + ble _0802CC9A + cmp r1, #0x1e + bne _0802CCB8 +_0802CC9A: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + ldr r2, _0802CCD4 @ =gLinkEntity + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] +_0802CCB8: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802CCCA + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802CCCA: + ldr r1, _0802CCD8 @ =gUnk_080CD6FC + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0802CCD4: .4byte gLinkEntity +_0802CCD8: .4byte gUnk_080CD6FC + + thumb_func_start nullsub_151 +nullsub_151: @ 0x0802CCDC + bx lr + .align 2, 0 + + thumb_func_start sub_0802CCE0 +sub_0802CCE0: @ 0x0802CCE0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r5, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + bl sub_08000E50 + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x20 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xff + strb r0, [r4, #0x14] + ldr r0, _0802CD50 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] + lsrs r0, r0, #8 + movs r1, #0x60 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r5, [r0] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802CF64 + adds r0, r4, #0 + bl sub_0802CFD8 + pop {r4, r5, pc} + .align 2, 0 +_0802CD50: .4byte 0x0000FFFE + + thumb_func_start sub_0802CD54 +sub_0802CD54: @ 0x0802CD54 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + bl sub_0802CFD8 + adds r1, r5, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0802CD76 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802CDC8 +_0802CD76: + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802CDC8 + adds r6, r5, #0 + adds r6, #0x7b + ldrb r0, [r6] + cmp r0, #0 + bne _0802CDC4 + movs r0, #2 + strb r0, [r5, #0xc] + bl sub_08000E50 + adds r4, r0, #0 + lsrs r0, r4, #0x10 + strb r0, [r5, #0xe] + movs r0, #0xc0 + strh r0, [r5, #0x24] + bl sub_08000E50 + ldr r2, _0802CDC0 @ =gUnk_080CD728 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + lsrs r4, r4, #0x18 + movs r0, #0x60 + ands r4, r0 + strb r4, [r6] + b _0802CDE4 + .align 2, 0 +_0802CDC0: .4byte gUnk_080CD728 +_0802CDC4: + subs r0, #1 + strb r0, [r6] +_0802CDC8: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CDDE + movs r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_0802CF64 +_0802CDDE: + adds r0, r5, #0 + bl sub_0806F69C +_0802CDE4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802CDE8 +sub_0802CDE8: @ 0x0802CDE8 + 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 + beq _0802CE3C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802CE3C + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0802CE2E + ldr r0, _0802CE38 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0802CF8C +_0802CE2E: + adds r0, r4, #0 + bl sub_0806F69C + b _0802CE58 + .align 2, 0 +_0802CE38: .4byte gUnk_020000B0 +_0802CE3C: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x96 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] +_0802CE58: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0802CFD8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802CE68 +sub_0802CE68: @ 0x0802CE68 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0802CED4 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0xa] + ldrb r1, [r2, #0x1a] + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r5, _0802CED8 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + bne _0802CEAC + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_0802CEAC: + adds r0, r4, #0 + bl sub_0802CFD8 + adds r0, r4, #0 + bl sub_08004274 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _0802CEDC + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0802CEF0 + .align 2, 0 +_0802CED4: .4byte gUnk_03003F80 +_0802CED8: .4byte gLinkEntity +_0802CEDC: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0802CEF0 + strb r2, [r3] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] +_0802CEF0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802CEF4 +sub_0802CEF4: @ 0x0802CEF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802CFD8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802CF28 + bl sub_0805E5A8 + ldr r1, _0802CF20 @ =gUnk_0813AB1C + ldr r0, _0802CF24 @ =gUnk_02033A90 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_08080840 + b _0802CF5A + .align 2, 0 +_0802CF20: .4byte gUnk_0813AB1C +_0802CF24: .4byte gUnk_02033A90 +_0802CF28: + ldr r0, [r4, #0x34] + ldr r1, _0802CF5C @ =0xFFFE0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x30 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0802CF4A + ldrb r0, [r4, #0x18] + movs r1, #0x31 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #0x10 + orrs r1, r0 + strb r1, [r4, #0x18] +_0802CF4A: + ldr r1, _0802CF60 @ =gUnk_03003F80 + ldrb r0, [r1, #0xa] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #0xa] + ldrb r0, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] +_0802CF5A: + pop {r4, pc} + .align 2, 0 +_0802CF5C: .4byte 0xFFFE0000 +_0802CF60: .4byte gUnk_03003F80 + + thumb_func_start sub_0802CF64 +sub_0802CF64: @ 0x0802CF64 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0802CF76 + bl sub_08000E50 + b _0802CF7E +_0802CF76: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 +_0802CF7E: + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0802CF8C + pop {r4, pc} + + thumb_func_start sub_0802CF8C +sub_0802CF8C: @ 0x0802CF8C + push {r4, lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x15] + adds r2, r1, #2 + movs r0, #0x1c + ands r2, r0 + ldrb r4, [r3, #0x14] + lsls r0, r4, #2 + subs r0, r2, r0 + adds r0, #6 + cmp r0, #0xc + bls _0802CFA8 + lsrs r0, r2, #2 + b _0802CFB8 +_0802CFA8: + adds r0, r1, #1 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + ble _0802CFD0 + lsrs r0, r2, #2 + cmp r0, r4 + beq _0802CFD0 +_0802CFB8: + strb r0, [r3, #0x14] + lsrs r0, r2, #3 + lsls r0, r0, #2 + ldr r1, _0802CFD4 @ =gUnk_080CD730 + adds r2, r0, r1 + ldrh r1, [r2] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r1, [r2, #2] + adds r0, #2 + strh r1, [r0] +_0802CFD0: + pop {r4, pc} + .align 2, 0 +_0802CFD4: .4byte gUnk_080CD730 + + thumb_func_start sub_0802CFD8 +sub_0802CFD8: @ 0x0802CFD8 + push {lr} + mov ip, r0 + ldr r2, _0802D014 @ =gUnk_080CD740 + mov r3, ip + adds r3, #0x7a + ldrb r0, [r3] + adds r1, r0, #1 + strb r1, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + movs r2, #0 + ldrsb r2, [r0, r2] + mov r0, ip + adds r0, #0x74 + movs r3, #0 + ldrsh r1, [r0, r3] + adds r1, r1, r2 + movs r0, #0x80 + lsls r0, r0, #1 + adds r2, r2, r0 + mov r0, ip + adds r0, #0x76 + ldrh r3, [r0] + mov r0, ip + bl sub_0805EC9C + pop {pc} + .align 2, 0 +_0802D014: .4byte gUnk_080CD740 + + thumb_func_start sub_0802D018 +sub_0802D018: @ 0x0802D018 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0802D030 @ =gUnk_080CD748 + 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 +_0802D030: .4byte gUnk_080CD748 + + thumb_func_start sub_0802D034 +sub_0802D034: @ 0x0802D034 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0802D0F4 + cmp r0, #1 + bgt _0802D04C + cmp r0, #0 + beq _0802D104 + b _0802D148 +_0802D04C: + cmp r0, #2 + bne _0802D148 + ldrb r1, [r4, #0xb] + cmp r1, #0 + bne _0802D090 + movs r0, #1 + strb r0, [r4, #0xb] + strb r1, [r4, #0xe] + movs r0, #0x3c + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x74 + movs r0, #0x10 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + ldr r1, _0802D088 @ =gUnk_03000F50 + ldrb r2, [r2] + adds r0, r1, #0 + adds r0, #0x68 + strh r2, [r0] + adds r1, #0x66 + ldr r0, _0802D08C @ =0x00001442 + strh r0, [r1] + movs r0, #0xf6 + bl sub_080A3268 + b _0802D148 + .align 2, 0 +_0802D088: .4byte gUnk_03000F50 +_0802D08C: .4byte 0x00001442 +_0802D090: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802D0D2 + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, _0802D0EC @ =gUnk_03000F50 + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + movs r0, #0x80 + lsls r0, r0, #5 + cmp r1, r0 + bne _0802D0D2 + ldr r0, _0802D0F0 @ =gLinkEntity + bl sub_0807AABC + bl sub_0805E780 +_0802D0D2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802D148 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D148 + movs r0, #0xf7 + bl sub_080A3268 + b _0802D148 + .align 2, 0 +_0802D0EC: .4byte gUnk_03000F50 +_0802D0F0: .4byte gLinkEntity +_0802D0F4: + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0804A7D4 + b _0802D148 +_0802D104: + ldr r5, _0802D14C @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r5, #0x14] + ldr r1, _0802D150 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802D128 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xfa + strb r0, [r1] +_0802D128: + ldr r1, _0802D154 @ =gUnk_080CD75C + 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 + bl sub_0802E518 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + bl sub_0802E7E4 +_0802D148: + pop {r4, r5, pc} + .align 2, 0 +_0802D14C: .4byte gUnk_03003F80 +_0802D150: .4byte gLinkEntity +_0802D154: .4byte gUnk_080CD75C + + thumb_func_start sub_0802D158 +sub_0802D158: @ 0x0802D158 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + ldr r0, _0802D16C @ =gUnk_02034490 + strb r1, [r0] + movs r0, #7 + movs r1, #8 + bl sub_08050054 + pop {pc} + .align 2, 0 +_0802D16C: .4byte gUnk_02034490 + + thumb_func_start sub_0802D170 +sub_0802D170: @ 0x0802D170 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _0802D1F0 @ =gUnk_03000FD0 + ldrb r3, [r0] + cmp r3, #0 + bne _0802D216 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _0802D1FC + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #0x10 + strb r1, [r0, #1] + ldr r0, [r4] + strb r1, [r0, #0x19] + ldr r0, [r4] + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + cmp r0, #0 + bne _0802D216 + ldr r0, [r4] + bl sub_0802EA88 + cmp r0, #0 + bne _0802D216 + movs r0, #2 + strb r0, [r5, #0xc] + ldr r2, _0802D1F4 @ =gLinkEntity + ldr r4, _0802D1F8 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + adds r0, #0x98 + movs r1, #0 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #8] + adds r0, #0xd8 + strh r0, [r2, #0x32] + strb r1, [r2, #0x14] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r2, r6] + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + bl sub_0807BA8C + str r5, [r4, #0x30] + movs r0, #6 + movs r1, #8 + bl sub_08050054 + b _0802D216 + .align 2, 0 +_0802D1F0: .4byte gUnk_03000FD0 +_0802D1F4: .4byte gLinkEntity +_0802D1F8: .4byte gUnk_03000BF0 +_0802D1FC: + movs r0, #3 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x80 + strb r3, [r0] + adds r2, r5, #0 + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r0, [r2] + strb r3, [r0, #0x19] +_0802D216: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802D218 +sub_0802D218: @ 0x0802D218 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + adds r1, r0, #0 + cmp r1, #0 + bne _0802D254 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + strb r1, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x7c + movs r0, #0xb4 + strh r0, [r2] + ldr r0, [r5] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + ldrh r3, [r2] + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #2 + bl sub_080A2988 +_0802D254: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802D258 +sub_0802D258: @ 0x0802D258 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + bne _0802D276 + adds r0, r5, #0 + bl sub_0802E1D0 + ldrb r0, [r5, #0xb] + cmp r0, #5 + bne _0802D288 + strb r0, [r5, #0xc] + b _0802D334 +_0802D276: + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802D288 + adds r0, r5, #0 + movs r1, #0x4e + bl sub_08004260 +_0802D288: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0802D2B4 + ldr r1, _0802D2B0 @ =gUnk_080CD774 + ldrb r0, [r5, #0xf] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + ldrb r0, [r5, #0xf] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r1, [r5, #0xf] + movs r0, #0x3f + ands r0, r1 + adds r0, #2 + strb r0, [r5, #0xf] + b _0802D2B8 + .align 2, 0 +_0802D2B0: .4byte gUnk_080CD774 +_0802D2B4: + subs r0, #1 + strb r0, [r5, #0xe] +_0802D2B8: + ldrb r0, [r5, #0x15] + cmp r0, #1 + bhi _0802D2D0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802D2E4 +_0802D2D0: + adds r4, r5, #0 + adds r4, #0x84 + cmp r0, #0xff + beq _0802D2E4 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA68 +_0802D2E4: + ldr r5, _0802D338 @ =gUnk_030010A0 + ldr r0, [r5] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0802D2F8 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 +_0802D2F8: + ldr r0, [r5] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802D32E + bl sub_08000E50 + movs r1, #5 + ands r1, r0 + ldr r0, [r4] + lsls r1, r1, #2 + adds r0, #0x3c + adds r0, r0, r1 + ldr r0, [r0] + movs r1, #0x48 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _0802D32E + adds r2, r0, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0802D32E: + ldr r0, [r4] + bl sub_0802E768 +_0802D334: + pop {r4, r5, pc} + .align 2, 0 +_0802D338: .4byte gUnk_030010A0 + + thumb_func_start sub_0802D33C +sub_0802D33C: @ 0x0802D33C + push {r4, r5, r6, r7, lr} + adds r0, #0x84 + ldr r6, [r0] + movs r4, #0 + adds r7, r6, #0 + adds r7, #0x3c + adds r5, r7, #0 +_0802D34A: + ldm r5!, {r0} + bl sub_0805E7BC + adds r4, #1 + cmp r4, #3 + bls _0802D34A + lsls r1, r4, #2 + adds r1, r7, r1 + ldr r0, [r1] + adds r0, #0x45 + movs r3, #0 + strb r3, [r0] + ldr r1, [r1] + adds r1, #0x6d + ldrb r2, [r1] + movs r0, #1 + orrs r0, r2 + strb r0, [r1] + ldr r0, [r6, #0x50] + adds r0, #0x45 + strb r3, [r0] + ldr r0, [r6, #0x50] + strb r3, [r0, #0xb] + ldr r3, [r6, #0x50] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + subs r0, #2 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + bl sub_0805E780 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802D394 +sub_0802D394: @ 0x0802D394 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802D3B4 @ =gUnk_080CD7B8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_0802D3B4: .4byte gUnk_080CD7B8 + + thumb_func_start sub_0802D3B8 +sub_0802D3B8: @ 0x0802D3B8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _0802D3DE + ldr r2, _0802D3F4 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0802D3F8 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + ldr r0, _0802D3FC @ =gLinkEntity + bl sub_0807AABC + bl sub_0805E780 +_0802D3DE: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0802D3EA + b _0802D63C +_0802D3EA: + lsls r0, r0, #2 + ldr r1, _0802D400 @ =_0802D404 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D3F4: .4byte gUnk_03000F50 +_0802D3F8: .4byte 0x0000FDFF +_0802D3FC: .4byte gLinkEntity +_0802D400: .4byte _0802D404 +_0802D404: @ jump table + .4byte _0802D420 @ case 0 + .4byte _0802D544 @ case 1 + .4byte _0802D58C @ case 2 + .4byte _0802D5A8 @ case 3 + .4byte _0802D5EC @ case 4 + .4byte _0802D5F6 @ case 5 + .4byte _0802D61A @ case 6 +_0802D420: + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x75 + strb r2, [r0] + adds r0, #0xb + strb r2, [r0] + subs r0, #7 + strb r2, [r0] + movs r0, #0x96 + str r0, [r4, #0x7c] + adds r0, r4, #0 + bl sub_0802EB9C + movs r0, #0x54 + bl sub_0801D8E0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r5, r0, #0 + adds r7, r1, #0 + cmp r5, #0 + bne _0802D470 + adds r0, r4, #0 + bl sub_0804A7D4 + bl sub_0805E780 +_0802D470: + ldr r0, [r7] + str r0, [r4, #0x64] + movs r6, #0 + movs r0, #0 + mov r8, r0 +_0802D47A: + movs r0, #0x24 + movs r1, #1 + bl CreateEnemy + str r0, [r4, #0x54] + adds r3, r6, #1 + cmp r0, #0 + beq _0802D4D6 + strb r3, [r0, #0xb] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + adds r1, #0x38 + strb r0, [r1] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldr r1, [r4, #0x54] + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #2 + ldrh r2, [r4, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + lsls r2, r6, #2 + adds r0, r5, #0 + adds r0, #0x3c + adds r0, r0, r2 + ldr r1, [r4, #0x54] + str r1, [r0] + adds r2, r5, r2 + movs r0, #0x10 + strb r0, [r2, #1] + mov r0, r8 + strb r0, [r2, #0x19] + adds r0, r5, #0 + adds r0, #0x35 + mov r1, r8 + strb r1, [r0] +_0802D4D6: + adds r6, r3, #0 + cmp r6, #4 + bls _0802D47A + movs r0, #0x24 + movs r1, #2 + bl CreateEnemy + adds r2, r0, #0 + str r2, [r4, #0x54] + cmp r2, #0 + beq _0802D52E + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, [r4, #0x54] + ldrh r0, [r4, #0x2e] + movs r3, #0 + strh r0, [r1, #0x2e] + ldr r2, [r4, #0x54] + adds r1, r6, #1 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r0, [r4, #0x54] + str r0, [r5, #0x50] + movs r0, #0x10 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x2d + strb r3, [r0] + adds r0, #8 + strb r3, [r0] +_0802D52E: + ldr r0, _0802D540 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x4c + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D540: .4byte gUnk_03003F80 +_0802D544: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802D55C + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] +_0802D55C: + ldr r1, _0802D588 @ =gUnk_080CD7C4 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + adds r3, r4, #0 + adds r3, #0x29 + movs r1, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x24 + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D588: .4byte gUnk_080CD7C4 +_0802D58C: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0802D63C +_0802D5A8: + ldr r0, _0802D5E8 @ =gUnk_080CD884 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0 + strb r1, [r0] + adds r0, #1 + strb r2, [r0] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x4f + bl sub_08004260 + b _0802D63C + .align 2, 0 +_0802D5E8: .4byte gUnk_080CD884 +_0802D5EC: + adds r0, r4, #0 + movs r1, #0x2c + bl sub_080042AC + b _0802D63C +_0802D5F6: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x2d + bl sub_080042AC + b _0802D63C +_0802D61A: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + movs r1, #0x50 + bl sub_08004260 +_0802D63C: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802D648 + adds r0, r4, #0 + bl sub_0802D86C +_0802D648: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802D650 +sub_0802D650: @ 0x0802D650 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802D670 @ =gUnk_080CD7E4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x84 + ldr r0, [r4] + bl sub_0802E7E4 + pop {r4, pc} + .align 2, 0 +_0802D670: .4byte gUnk_080CD7E4 + + thumb_func_start sub_0802D674 +sub_0802D674: @ 0x0802D674 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r0, _0802D6B4 @ =gUnk_02034490 + movs r7, #1 + strb r7, [r0] + ldr r5, _0802D6B8 @ =gLinkEntity + ldr r6, [r5, #0x34] + cmp r6, #0 + bne _0802D6EC + ldr r0, [r4, #0x7c] + cmp r0, #0x96 + bne _0802D692 + ldr r0, _0802D6BC @ =0x00000127 + bl sub_080A3268 +_0802D692: + ldr r0, [r4, #0x7c] + subs r1, r0, #1 + str r1, [r4, #0x7c] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _0802D6C4 + strb r7, [r4, #0xd] + movs r0, #0x5a + str r0, [r4, #0x7c] + ldr r0, _0802D6C0 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + ldr r0, _0802D6BC @ =0x00000127 + bl sub_080A3268 + b _0802D6EC + .align 2, 0 +_0802D6B4: .4byte gUnk_02034490 +_0802D6B8: .4byte gLinkEntity +_0802D6BC: .4byte 0x00000127 +_0802D6C0: .4byte gUnk_03000BF0 +_0802D6C4: + cmp r1, #0x3c + bhi _0802D6DC + cmp r1, #0x3c + bne _0802D6D8 + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0xc + bl sub_080A2CFC +_0802D6D8: + strb r6, [r5, #0x14] + b _0802D6EC +_0802D6DC: + cmp r1, #0x59 + bhi _0802D6E4 + movs r0, #2 + b _0802D6EA +_0802D6E4: + cmp r1, #0x77 + bhi _0802D6EC + movs r0, #6 +_0802D6EA: + strb r0, [r5, #0x14] +_0802D6EC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802D6F0 +sub_0802D6F0: @ 0x0802D6F0 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x7c] + subs r0, #1 + str r0, [r2, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0802D712 + movs r0, #2 + strb r0, [r2, #0xd] + movs r0, #0x5a + str r0, [r2, #0x7c] + movs r0, #0x96 + movs r1, #0 + bl sub_08080964 +_0802D712: + pop {pc} + + thumb_func_start sub_0802D714 +sub_0802D714: @ 0x0802D714 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x7c] + subs r0, #1 + str r0, [r4, #0x7c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _0802D77A + adds r0, r4, #0 + adds r0, #0x84 + ldr r5, [r0] + movs r1, #0 + movs r3, #0 + movs r2, #0x10 + adds r0, r5, #0 +_0802D734: + strh r3, [r0, #0x18] + strb r2, [r0, #1] + adds r0, #4 + adds r1, #1 + cmp r1, #5 + bls _0802D734 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + ldrb r1, [r4, #0x18] + subs r0, #7 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x4d + bl sub_08004260 + movs r0, #0x24 + movs r1, #5 + bl CreateEnemy + str r0, [r4, #0x54] + cmp r0, #0 + beq _0802D774 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + str r0, [r5, #0x38] + adds r0, #0x84 + str r5, [r0] +_0802D774: + ldr r1, [r5, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] +_0802D77A: + pop {r4, r5, pc} + + thumb_func_start sub_0802D77C +sub_0802D77C: @ 0x0802D77C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0802D7B0 @ =gUnk_030010A0 + ldr r4, [r0] + movs r0, #1 + ands r4, r0 + cmp r4, #0 + bne _0802D7AC + adds r0, r5, #0 + bl sub_0802E430 + ldrb r0, [r5, #0xb] + cmp r0, #2 + bne _0802D7AC + strb r4, [r5, #0xf] + strb r4, [r5, #0xe] + movs r0, #4 + strb r0, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] +_0802D7AC: + pop {r4, r5, pc} + .align 2, 0 +_0802D7B0: .4byte gUnk_030010A0 + + thumb_func_start sub_0802D7B4 +sub_0802D7B4: @ 0x0802D7B4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r3, r0, #0 + cmp r3, #0 + bne _0802D82C + ldr r4, _0802D7FC @ =gUnk_080CD7F8 + ldrb r2, [r5, #0xf] + adds r0, r2, r4 + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0xff + bne _0802D810 + strb r3, [r5, #0xf] + strb r3, [r5, #0xe] + movs r2, #1 + strb r2, [r5, #0xc] + strb r3, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r1, _0802D800 @ =gUnk_03000BF0 + ldr r0, _0802D804 @ =gLinkEntity + str r0, [r1, #0x30] + ldr r0, _0802D808 @ =gUnk_03003F80 + adds r0, #0x8b + strb r2, [r0] + ldr r0, _0802D80C @ =gUnk_02034490 + strb r3, [r0] + movs r0, #0x2e + bl sub_080A3268 + b _0802D868 + .align 2, 0 +_0802D7FC: .4byte gUnk_080CD7F8 +_0802D800: .4byte gUnk_03000BF0 +_0802D804: .4byte gLinkEntity +_0802D808: .4byte gUnk_03003F80 +_0802D80C: .4byte gUnk_02034490 +_0802D810: + strb r1, [r5, #0xe] + adds r0, r2, #1 + adds r0, r0, r4 + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r0, [r5, #0xf] + adds r0, #2 + strb r0, [r5, #0xf] + ldr r0, _0802D828 @ =0x00000127 + bl sub_080A3268 + b _0802D830 + .align 2, 0 +_0802D828: .4byte 0x00000127 +_0802D82C: + subs r0, #1 + strb r0, [r5, #0xe] +_0802D830: + ldrb r0, [r5, #0x15] + cmp r0, #1 + bhi _0802D848 + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802D85C +_0802D848: + adds r4, r5, #0 + adds r4, #0x84 + cmp r0, #0xff + beq _0802D85C + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA68 +_0802D85C: + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 +_0802D868: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802D86C +sub_0802D86C: @ 0x0802D86C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0802D878 + b _0802DB7E +_0802D878: + lsls r0, r0, #2 + ldr r1, _0802D884 @ =_0802D888 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802D884: .4byte _0802D888 +_0802D888: @ jump table + .4byte _0802DB64 @ case 0 + .4byte _0802D8A4 @ case 1 + .4byte _0802D8CE @ case 2 + .4byte _0802DA54 @ case 3 + .4byte _0802D94C @ case 4 + .4byte _0802D9A2 @ case 5 + .4byte _0802D9F8 @ case 6 +_0802D8A4: + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802D8CE + ldr r0, [r4, #0x50] + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0802D8BE + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _0802D8C6 +_0802D8BE: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + b _0802D8CC +_0802D8C6: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0802D8CC: + strb r0, [r4, #0x10] +_0802D8CE: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0802D8DE + b _0802DB7E +_0802D8DE: + ldr r0, [r4, #0x50] + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802D918 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0802D906 + adds r0, r4, #0 + bl sub_0801D230 + adds r0, r4, #0 + movs r1, #0xc9 + bl sub_0801D040 + b _0802D918 +_0802D906: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0801D230 + adds r0, r4, #0 + movs r1, #0xca + bl sub_0801D040 +_0802D918: + ldr r0, [r4, #0x50] + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0802D924 + b _0802DB7E +_0802D924: + ldr r1, _0802D944 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #8 + movs r3, #8 + bl sub_080041A0 + cmp r0, #0 + bne _0802D936 + b _0802DB7E +_0802D936: + ldr r0, _0802D948 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfc + strb r1, [r0] + b _0802DB7E + .align 2, 0 +_0802D944: .4byte gLinkEntity +_0802D948: .4byte gUnk_03003F80 +_0802D94C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _0802D95E + adds r0, r4, #0 + bl sub_080042B8 + b _0802DB7E +_0802D95E: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + beq _0802D970 + b _0802DB7E +_0802D970: + ldr r0, [r4, #0x50] + adds r0, #0x7b + movs r1, #1 + strb r1, [r0] + strb r2, [r4, #0xe] +_0802D97A: + ldrb r3, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x67 + movs r2, #0 + bl sub_080A2988 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0802D97A + movs r0, #0xa8 + lsls r0, r0, #1 + bl sub_080A3268 +_0802D99C: + bl sub_0805E780 + b _0802DB7E +_0802D9A2: + ldr r0, _0802D9F4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802D9B8 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _0802D9B8 + b _0802DB7E +_0802D9B8: + 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 + bne _0802D9CE + b _0802DB7E +_0802D9CE: + movs r0, #0x24 + movs r1, #6 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802D99C + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0x38] + adds r0, #0x84 + ldr r1, [r2] + str r1, [r0] + b _0802D99C + .align 2, 0 +_0802D9F4: .4byte gUnk_030010A0 +_0802D9F8: + ldr r0, _0802DA50 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802DA0E + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #2 + bne _0802DA0E + b _0802DB7E +_0802DA0E: + 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 + bne _0802DA24 + b _0802DB7E +_0802DA24: + movs r0, #0x24 + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802D99C + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r1, r4, #0 + adds r1, #0x84 + ldr r0, [r1] + ldrb r0, [r0, #1] + strb r0, [r4, #0xe] + ldr r2, [r1] + ldr r0, [r4, #0x54] + str r0, [r2, #0x38] + adds r0, #0x84 + ldr r1, [r1] + str r1, [r0] + b _0802D99C + .align 2, 0 +_0802DA50: .4byte gUnk_030010A0 +_0802DA54: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _0802DA96 + subs r0, r1, #1 + strb r0, [r6] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802DA96 + adds r5, r4, #0 + adds r5, #0x75 + ldrb r0, [r5] + adds r0, #2 + strb r0, [r5] + ldr r7, _0802DAD4 @ =gUnk_080CD884 + ldrb r0, [r5] + adds r0, r0, r7 + ldrb r0, [r0] + strb r0, [r6] + cmp r0, #0 + beq _0802DA96 + adds r0, r4, #0 + bl sub_0801D230 + ldrb r0, [r5] + adds r0, #1 + adds r0, r0, r7 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_0801D040 +_0802DA96: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802DAD8 + ldrb r2, [r6] + cmp r2, #0 + bne _0802DAD8 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _0802DB20 + movs r0, #0xc0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, [r4, #0x50] + movs r0, #4 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x50] + strb r2, [r0, #0xb] + ldr r0, [r4, #0x50] + adds r0, #0x7b + strb r2, [r0] + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_080A3268 + b _0802DB20 + .align 2, 0 +_0802DAD4: .4byte gUnk_080CD884 +_0802DAD8: + adds r0, r4, #0 + adds r0, #0x84 + ldr r2, [r0] + ldrb r1, [r4, #0xe] + adds r3, r0, #0 + ldrb r0, [r2, #1] + cmp r1, r0 + beq _0802DB20 + adds r0, r1, #0 + ldrb r1, [r2, #1] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + ble _0802DB08 + ldrb r0, [r4, #0x1e] + adds r0, #1 + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x30 + bls _0802DB1A + movs r0, #0x28 + b _0802DB18 +_0802DB08: + ldrb r0, [r4, #0x1e] + subs r0, #1 + strb r0, [r4, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + bhi _0802DB1A + movs r0, #0x30 +_0802DB18: + strb r0, [r4, #0x1e] +_0802DB1A: + ldr r0, [r3] + ldrb r0, [r0, #1] + strb r0, [r4, #0xe] +_0802DB20: + ldr r0, [r4, #0x20] + cmp r0, #0 + ble _0802DB7E + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _0802DB7E + movs r0, #0x24 + movs r1, #4 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802DB7E + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0x38] + adds r0, #0x84 + ldr r1, [r2] + str r1, [r0] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + b _0802D99C +_0802DB64: + ldr r1, _0802DB80 @ =gUnk_080CD810 + ldrb r0, [r4, #0xd] + 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, #0x84 + ldr r0, [r0] + bl sub_0802E7E4 +_0802DB7E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802DB80: .4byte gUnk_080CD810 + + thumb_func_start sub_0802DB84 +sub_0802DB84: @ 0x0802DB84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _0802DBB0 @ =gLinkEntity + bl sub_080045C4 + strb r0, [r5, #0x15] + adds r1, r5, #0 + adds r1, #0x84 + ldr r2, [r1] + ldrb r1, [r2, #1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0802DBB4 + movs r0, #1 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0 + strb r0, [r1] + b _0802DC1A + .align 2, 0 +_0802DBB0: .4byte gLinkEntity +_0802DBB4: + ldrb r0, [r2, #1] + ldrb r1, [r5, #0x15] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + ble _0802DBCE + movs r3, #0 + ldrb r1, [r5, #0xe] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5, #0xe] + b _0802DBD2 +_0802DBCE: + movs r3, #1 + strb r3, [r5, #0xe] +_0802DBD2: + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #1 + beq _0802DBF0 + cmp r0, #1 + bgt _0802DBE6 + cmp r0, #0 + beq _0802DBEC + b _0802DBF8 +_0802DBE6: + cmp r0, #2 + beq _0802DBF4 + b _0802DBF8 +_0802DBEC: + movs r0, #0x30 + b _0802DBF6 +_0802DBF0: + movs r0, #0x40 + b _0802DBF6 +_0802DBF4: + movs r0, #0x50 +_0802DBF6: + strh r0, [r5, #0x24] +_0802DBF8: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #0x24 + ldrsh r2, [r5, r1] + movs r1, #5 + bl sub_0802EA48 + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 + adds r0, r5, #0 + bl sub_0802EBC4 +_0802DC1A: + pop {r4, r5, pc} + + thumb_func_start sub_0802DC1C +sub_0802DC1C: @ 0x0802DC1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r1, _0802DC40 @ =gLinkEntity + bl sub_080045C4 + adds r3, r0, #0 + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldrb r0, [r0, #1] + subs r3, r0, r3 + movs r0, #0x1f + ands r3, r0 + cmp r3, #0x10 + bls _0802DC44 + cmp r3, #0x1d + bhi _0802DC54 + b _0802DC48 + .align 2, 0 +_0802DC40: .4byte gLinkEntity +_0802DC44: + cmp r3, #2 + bls _0802DC54 +_0802DC48: + movs r0, #0 + strb r0, [r5, #0xd] + ldr r1, [r1] + ldr r1, [r1, #0x50] + strb r0, [r1, #0xe] + b _0802DCDE +_0802DC54: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _0802DC6A + subs r0, r1, #1 + strb r0, [r6] + adds r4, r5, #0 + adds r4, #0x84 + b _0802DCC6 +_0802DC6A: + ldrb r0, [r5, #0xe] + movs r3, #0 + cmp r0, #1 + bne _0802DC74 + movs r3, #1 +_0802DC74: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + ldr r1, [r4] + ldrh r0, [r1] + ldrh r1, [r1, #0x14] + movs r2, #4 + bl sub_0802EA18 + cmp r0, #0 + beq _0802DCC6 + ldrb r0, [r5, #0xe] + cmp r0, #1 + bne _0802DCAC + ldr r2, [r4] + ldrb r0, [r2, #1] + subs r0, #4 + movs r1, #0x1f + ands r0, r1 + lsls r0, r0, #8 + movs r1, #0xff + orrs r0, r1 + strh r0, [r2, #0x14] + b _0802DCBA +_0802DCAC: + ldr r0, [r4] + ldrb r1, [r0, #1] + adds r1, #4 + movs r2, #0x1f + ands r1, r2 + lsls r1, r1, #8 + strh r1, [r0, #0x14] +_0802DCBA: + ldrb r0, [r5, #0xe] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0xe] + movs r0, #0xc + strb r0, [r6] +_0802DCC6: + adds r0, r5, #0 + bl sub_0802E9B0 + ldr r0, [r4] + bl sub_0802E768 + adds r0, r5, #0 + bl sub_0802E518 + adds r0, r5, #0 + bl sub_0802EBC4 +_0802DCDE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802DCE0 +sub_0802DCE0: @ 0x0802DCE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r0, [r5] + ldr r1, [r0, #0x50] + ldrb r0, [r1, #0xe] + cmp r0, #0xc + beq _0802DD44 + ldr r1, _0802DD1C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldr r2, [r5] + ldrb r1, [r2, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + bne _0802DD20 + ldr r1, [r2, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #4 + strb r0, [r1] + movs r0, #0 + strb r0, [r4, #0xf] + b _0802DDD0 + .align 2, 0 +_0802DD1C: .4byte gLinkEntity +_0802DD20: + ldrb r0, [r2, #0x15] + ldrb r1, [r4, #0x15] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #1 + cmp r0, #0x10 + ble _0802DD32 + movs r3, #0 +_0802DD32: + adds r0, r2, #0 + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + ldr r0, [r5] + bl sub_0802E768 + b _0802DDD0 +_0802DD44: + ldrb r0, [r4, #0xf] + cmp r0, #5 + bhi _0802DD74 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _0802DD6E + movs r2, #4 + strb r2, [r1] + ldr r1, [r5] + ldrb r0, [r4, #0xf] + lsls r0, r0, #2 + adds r1, #0x3c + adds r1, r1, r0 + ldr r0, [r1] + strb r2, [r0, #0xf] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + b _0802DDD0 +_0802DD6E: + subs r0, #1 + strb r0, [r1] + b _0802DDD0 +_0802DD74: + ldrb r6, [r1, #0xf] + cmp r6, #0 + bne _0802DDD0 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0802DDB2 + ldr r0, [r5] + ldrb r0, [r0, #0x15] + strb r0, [r1, #0x15] + ldr r2, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #0xb] + ldr r1, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x50] + str r0, [r1, #0x50] + ldr r1, [r4, #0x54] + ldr r0, [r5] + ldr r0, [r0, #0x3c] + str r0, [r1, #0x54] +_0802DDB2: + ldr r0, [r5] + ldr r0, [r0, #0x50] + strb r6, [r0, #0xe] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0802DDC8 + movs r0, #1 + strb r0, [r1] + b _0802DDD0 +_0802DDC8: + strb r6, [r4, #0xd] + adds r0, r4, #0 + bl sub_0802EB9C +_0802DDD0: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802DDD8 +sub_0802DDD8: @ 0x0802DDD8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r0, #0x76 + ldrb r0, [r0] + movs r7, #4 + cmp r0, #0 + beq _0802DE06 + movs r7, #6 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #2 + bne _0802DE06 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + bne _0802DE06 + movs r7, #0xc +_0802DE06: + ldrb r0, [r5, #0xb] + cmp r0, #0 + beq _0802DE2E + cmp r0, #0 + bge _0802DE12 + b _0802DF9A +_0802DE12: + cmp r0, #2 + ble _0802DE18 + b _0802DF9A +_0802DE18: + adds r6, r5, #0 + adds r6, #0x84 + cmp r0, #1 + beq _0802DEFE + adds r0, r5, #0 + adds r0, #0x76 + ldrb r1, [r0] + mov sb, r0 + cmp r1, #0 + bne _0802DE76 + b _0802DE6C +_0802DE2E: + adds r6, r5, #0 + adds r6, #0x84 + ldr r0, [r6] + bl sub_0802EA88 + cmp r0, #0 + beq _0802DE3E + b _0802DF9A +_0802DE3E: + movs r4, #1 + strb r4, [r5, #0xb] + strb r0, [r5, #0xf] + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + bne _0802DE58 + strb r0, [r5, #0x15] + ldr r0, [r6] + ldrb r0, [r0, #1] + adds r0, r0, r7 + b _0802DE60 +_0802DE58: + strb r4, [r5, #0x15] + ldr r0, [r6] + ldrb r0, [r0, #1] + subs r0, r0, r7 +_0802DE60: + movs r1, #0x1f + ands r0, r1 + adds r1, r5, #0 + adds r1, #0x7a + strb r0, [r1] + b _0802DF9A +_0802DE6C: + movs r2, #1 + movs r0, #2 + mov r8, r0 + movs r4, #1 + b _0802DE7E +_0802DE76: + movs r2, #2 + movs r1, #6 + mov r8, r1 + movs r4, #0 +_0802DE7E: + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldr r0, [r0, #0x50] + ldrb r0, [r0, #0xf] + adds r6, r1, #0 + cmp r0, #1 + bne _0802DEC4 + adds r0, r5, #0 + movs r1, #0xa + bl sub_0804A98C + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _0802DEC4 + ldr r0, [r6] + ldrb r0, [r0, #0x15] + strb r0, [r1, #0x15] + ldr r2, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #0xb] + ldr r1, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x50] + str r0, [r1, #0x50] + ldr r1, [r5, #0x54] + ldr r0, [r6] + ldr r0, [r0, #0x3c] + str r0, [r1, #0x54] +_0802DEC4: + adds r1, r5, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _0802DEF4 + strb r4, [r1] + ldr r1, [r6] + ldrb r0, [r5, #0xf] + lsls r0, r0, #2 + adds r1, #0x3c + adds r1, r1, r0 + ldr r0, [r1] + mov r1, r8 + strb r1, [r0, #0xf] + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _0802DEF8 + strb r2, [r5, #0xf] + b _0802DEF8 +_0802DEF4: + subs r0, #1 + strb r0, [r1] +_0802DEF8: + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0802DF0C +_0802DEFE: + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x40 + bl sub_0802EA48 + b _0802DF2E +_0802DF0C: + mov r1, sb + ldrb r0, [r1] + cmp r0, #0 + bne _0802DF22 + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x20 + bl sub_0802EA48 + b _0802DF2E +_0802DF22: + ldr r0, [r6] + ldrb r3, [r5, #0x15] + movs r1, #5 + movs r2, #0x10 + bl sub_0802EA48 +_0802DF2E: + adds r4, r6, #0 + ldr r0, [r4] + bl sub_0802E768 + adds r2, r5, #0 + adds r2, #0x7a + ldr r1, [r4] + ldrb r0, [r2] + ldrb r1, [r1, #0x15] + cmp r0, r1 + bne _0802DF9A + ldrb r0, [r5, #0xb] + cmp r0, #1 + bne _0802DF8A + movs r0, #2 + strb r0, [r5, #0xb] + ldrb r0, [r5, #0x15] + movs r1, #1 + eors r0, r1 + strb r0, [r5, #0x15] + adds r3, r0, #0 + cmp r3, #1 + bne _0802DF6C + lsls r0, r7, #1 + ldrb r1, [r2] + subs r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r2] + strb r3, [r5, #0xe] + b _0802DF80 +_0802DF6C: + lsls r0, r7, #1 + ldrb r1, [r2] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r2] + ldrb r1, [r5, #0xe] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5, #0xe] +_0802DF80: + ldr r0, [r6] + ldr r1, [r0, #0x50] + movs r0, #0xc + strb r0, [r1, #0xe] + b _0802DF9A +_0802DF8A: + movs r0, #0 + strb r0, [r5, #0xd] + ldr r1, [r6] + ldr r1, [r1, #0x50] + strb r0, [r1, #0xe] + adds r0, r5, #0 + bl sub_0802EB9C +_0802DF9A: + adds r0, r5, #0 + bl sub_0802E518 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802DFA8 +sub_0802DFA8: @ 0x0802DFA8 + push {lr} + ldr r2, _0802DFBC @ =gUnk_080CD828 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802DFBC: .4byte gUnk_080CD828 + + thumb_func_start sub_0802DFC0 +sub_0802DFC0: @ 0x0802DFC0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x84 + ldr r2, [r4] + ldrb r0, [r2, #1] + movs r1, #7 + ands r1, r0 + cmp r1, #0 + beq _0802DFF8 + cmp r1, #4 + bls _0802DFDC + movs r0, #0 + b _0802DFDE +_0802DFDC: + movs r0, #1 +_0802DFDE: + strb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldrb r3, [r5, #0x15] + movs r1, #0 + movs r2, #0x20 + bl sub_0802EA48 + ldr r0, [r4] + bl sub_0802EA88 + b _0802E026 +_0802DFF8: + adds r0, r2, #0 + bl sub_0802EA88 + cmp r0, #0 + bne _0802E026 + adds r0, r5, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0802E026 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + movs r0, #1 + strb r0, [r5, #0xb] + ldr r0, [r4] + ldr r1, [r0, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + ldr r0, _0802E030 @ =0x00000127 + bl sub_080A3268 +_0802E026: + adds r0, r5, #0 + bl sub_0802E518 + pop {r4, r5, pc} + .align 2, 0 +_0802E030: .4byte 0x00000127 + + thumb_func_start sub_0802E034 +sub_0802E034: @ 0x0802E034 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r5, [r0] + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0802E04A + movs r0, #2 + strb r0, [r4, #0x15] + movs r0, #0 + b _0802E058 +_0802E04A: + movs r0, #3 + strb r0, [r4, #0x15] + ldr r1, _0802E078 @ =gUnk_080CD840 + ldrb r0, [r5, #1] + lsrs r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0] +_0802E058: + ldrb r1, [r5, #0x19] + cmp r0, r1 + beq _0802E07C + ldrb r3, [r4, #0x15] + adds r0, r5, #0 + movs r1, #0 + movs r2, #0x40 + bl sub_0802EA68 + adds r0, r5, #0 + movs r1, #0x40 + movs r2, #2 + bl sub_0802EB08 + b _0802E0B0 + .align 2, 0 +_0802E078: .4byte gUnk_080CD840 +_0802E07C: + adds r0, r5, #0 + movs r1, #0x80 + movs r2, #2 + bl sub_0802EB08 + cmp r0, #0 + bne _0802E0B0 + ldrb r0, [r4, #0xb] + cmp r0, #2 + bne _0802E0A6 + adds r1, r4, #0 + adds r1, #0x7c + movs r2, #0 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #4 + movs r0, #1 + strb r0, [r1] + ldr r0, [r5, #0x50] + strb r2, [r0, #0xe] +_0802E0A6: + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r5, #0x19] +_0802E0B0: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, r5, pc} + + thumb_func_start sub_0802E0B8 +sub_0802E0B8: @ 0x0802E0B8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0800445C + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0802E0F4 + ldr r1, _0802E128 @ =gLinkEntity + adds r0, r4, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802E0F4 + ldr r0, _0802E12C @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfa + strb r1, [r0] +_0802E0F4: + ldr r0, _0802E130 @ =gUnk_080CD844 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r5, [r3] + movs r6, #0x7f + adds r1, r6, #0 + ands r1, r5 + adds r1, r1, r0 + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r1] + ldrb r1, [r2] + cmp r0, r1 + blo _0802E158 + cmp r5, #1 + bls _0802E134 + movs r0, #0 + strb r0, [r2] + strb r0, [r4, #0xc] + bl sub_08078B48 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + b _0802E1CA + .align 2, 0 +_0802E128: .4byte gLinkEntity +_0802E12C: .4byte gUnk_03003F80 +_0802E130: .4byte gUnk_080CD844 +_0802E134: + ldrb r1, [r4, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r3] + adds r0, #1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r3] + movs r0, #0xff + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0x78 + bls _0802E158 + movs r0, #0x78 + strh r0, [r1] +_0802E158: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r1, [r0] + subs r1, #1 + strh r1, [r0] + lsls r1, r1, #0x10 + ldr r2, _0802E18C @ =0xFFFF0000 + adds r5, r0, #0 + cmp r1, r2 + bne _0802E190 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #0 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x4e + bl sub_08004260 + b _0802E1C4 + .align 2, 0 +_0802E18C: .4byte 0xFFFF0000 +_0802E190: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802E1B2 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0802E1B2 + ldr r0, _0802E1CC @ =0x00000127 + bl sub_080A3268 +_0802E1B2: + ldrh r0, [r5] + cmp r0, #0x77 + bhi _0802E1C4 + adds r2, r4, #0 + adds r2, #0x62 + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] +_0802E1C4: + adds r0, r4, #0 + bl sub_0802E518 +_0802E1CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802E1CC: .4byte 0x00000127 + + thumb_func_start sub_0802E1D0 +sub_0802E1D0: @ 0x0802E1D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + mov r8, r0 + adds r4, r5, #0 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E1F6 + adds r0, r5, #0 + bl sub_08004274 +_0802E1F6: + ldrb r0, [r4] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0802E218 + ldr r1, _0802E280 @ =gLinkEntity + adds r0, r5, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _0802E218 + ldr r0, _0802E284 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + adds r0, #0x3f + movs r1, #0xfa + strb r1, [r0] +_0802E218: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0802E2F0 + movs r4, #0 + mov r2, r8 + adds r2, #0x30 + adds r7, r5, #0 + adds r7, #0x7c + ldr r0, _0802E288 @ =gUnk_03000F50 + mov sb, r0 + movs r1, #0x66 + add r1, sb + mov sl, r1 +_0802E23A: + adds r1, r2, r4 + ldrb r0, [r1] + cmp r0, #0 + beq _0802E2EA + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + bne _0802E2F0 + mov r1, r8 + ldr r0, [r1, #0x3c] + movs r1, #0xc + movs r2, #0 + bl CreateFX + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 + cmp r4, #5 + bne _0802E2F0 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E28C + movs r0, #0xf0 + strh r0, [r7] + movs r1, #0 + bl sub_08080964 + b _0802E2E4 + .align 2, 0 +_0802E280: .4byte gLinkEntity +_0802E284: .4byte gUnk_03003F80 +_0802E288: .4byte gUnk_03000F50 +_0802E28C: + adds r4, r7, #0 + strh r6, [r4] + movs r0, #0x7c + adds r0, r0, r5 + mov r8, r0 + adds r6, r5, #0 + adds r6, #0x74 + adds r7, r5, #0 + adds r7, #0x75 +_0802E29E: + ldrh r3, [r4] + adds r0, r5, #0 + movs r1, #0x67 + movs r2, #1 + bl sub_080A2988 + ldrh r0, [r4] + adds r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #3 + bls _0802E29E + movs r0, #0 + strb r0, [r6] + movs r0, #0x10 + strb r0, [r7] + movs r0, #0xb + mov r1, r8 + strh r0, [r1] + ldrb r1, [r6] + ldrb r0, [r7] + lsls r0, r0, #8 + orrs r1, r0 + mov r0, sb + adds r0, #0x68 + strh r1, [r0] + movs r0, #0x90 + lsls r0, r0, #2 + mov r1, sl + strh r0, [r1] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 +_0802E2E4: + movs r0, #5 + strb r0, [r5, #0xb] + b _0802E2F0 +_0802E2EA: + adds r4, #1 + cmp r4, #5 + bls _0802E23A +_0802E2F0: + adds r0, r5, #0 + bl sub_0802E518 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802E300 +sub_0802E300: @ 0x0802E300 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x79 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0802E31E + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + adds r5, r1, #0 + b _0802E35E +_0802E31E: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r5, r4, #0 + adds r5, #0x7c + cmp r0, #0x10 + beq _0802E35E + ldrh r0, [r5] + cmp r0, #0 + beq _0802E364 + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0802E40C + movs r0, #0xb + strh r0, [r5] + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r2, _0802E3A0 @ =gUnk_03000F50 + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] +_0802E35E: + ldrh r0, [r5] + cmp r0, #0 + bne _0802E40C +_0802E364: + adds r2, r4, #0 + adds r2, #0x79 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802E3A4 + adds r3, r4, #0 + adds r3, #0x75 + ldrb r0, [r3] + cmp r0, #0x10 + beq _0802E3A4 + movs r0, #0xb + strh r0, [r5] + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, _0802E3A0 @ =gUnk_03000F50 + ldrb r1, [r1] + ldrb r0, [r3] + lsls r0, r0, #8 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + b _0802E428 + .align 2, 0 +_0802E3A0: .4byte gUnk_03000F50 +_0802E3A4: + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r5, [r0] + ldr r1, _0802E408 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + lsls r0, r0, #3 + movs r2, #0 + adds r6, r4, #0 + adds r6, #0x80 + movs r3, #0 + adds r1, r5, #0 +_0802E3CA: + strh r3, [r1, #0x18] + strb r0, [r1, #1] + adds r1, #4 + adds r2, #1 + cmp r2, #5 + bls _0802E3CA + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + strb r1, [r6] + adds r0, r4, #0 + movs r1, #0x4d + bl sub_08004260 + movs r0, #0x24 + movs r1, #5 + bl CreateEnemy + str r0, [r4, #0x54] + cmp r0, #0 + beq _0802E400 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + str r0, [r5, #0x38] + adds r0, #0x84 + str r5, [r0] +_0802E400: + ldr r1, [r5, #0x50] + movs r0, #0x18 + strb r0, [r1, #0xe] + b _0802E422 + .align 2, 0 +_0802E408: .4byte gLinkEntity +_0802E40C: + ldr r0, _0802E42C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0802E422 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #3 + bl sub_0804A98C +_0802E422: + adds r0, r4, #0 + bl sub_0802E518 +_0802E428: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802E42C: .4byte gUnk_030010A0 + + thumb_func_start sub_0802E430 +sub_0802E430: @ 0x0802E430 + push {lr} + ldr r2, _0802E444 @ =gUnk_080CD848 + ldrb r1, [r0, #0xb] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802E444: .4byte gUnk_080CD848 + + thumb_func_start sub_0802E448 +sub_0802E448: @ 0x0802E448 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x84 + ldr r6, [r0] + movs r5, #5 +_0802E452: + adds r0, r6, #0 + adds r0, #0x30 + adds r4, r0, r5 + ldrb r0, [r4] + cmp r0, #0 + bne _0802E46E + ldr r0, [r6, #0x3c] + movs r1, #0xc + movs r2, #0 + bl CreateFX + movs r0, #0x7d + bl sub_080A3268 +_0802E46E: + ldrb r0, [r4] + cmp r0, #0xa + beq _0802E48A + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _0802E490 + cmp r5, #0 + bne _0802E490 + movs r0, #1 + strb r0, [r7, #0xb] + b _0802E490 +_0802E48A: + subs r5, #1 + cmp r5, #0 + bge _0802E452 +_0802E490: + adds r0, r6, #0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #9 + bhi _0802E4A6 + adds r0, r6, #0 + movs r1, #5 + movs r2, #0x40 + movs r3, #3 + bl sub_0802EA68 +_0802E4A6: + adds r0, r7, #0 + bl sub_08004274 + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + bl sub_0802E768 + adds r0, r7, #0 + bl sub_0802E518 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802E4C0 +sub_0802E4C0: @ 0x0802E4C0 + 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 _0802E510 + ldrb r0, [r4, #0xc] + cmp r0, #2 + beq _0802E50A + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #8 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + beq _0802E502 + adds r0, r4, #0 + adds r0, #0x76 + strb r2, [r0] + adds r1, #2 + movs r0, #3 + strb r0, [r1] +_0802E502: + adds r0, r4, #0 + bl sub_0802EBC4 + b _0802E510 +_0802E50A: + ldrb r0, [r4, #0xb] + adds r0, #1 + strb r0, [r4, #0xb] +_0802E510: + adds r0, r4, #0 + bl sub_0802E518 + pop {r4, pc} + + thumb_func_start sub_0802E518 +sub_0802E518: @ 0x0802E518 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r0, [sp] + adds r0, #0x84 + ldr r0, [r0] + mov sb, r0 + ldr r1, [r0, #0x3c] + ldr r0, [r1, #0x50] + bl sub_0806FA24 + mov r0, sb + ldr r1, [r0, #0x3c] + ldrb r0, [r0, #1] + strb r0, [r1, #0x15] + mov r1, sb + ldrb r6, [r1, #1] + cmp r6, #0x10 + bls _0802E54C + movs r0, #0xf + eors r6, r0 + adds r6, #1 + ands r6, r0 +_0802E54C: + cmp r6, #0x10 + bne _0802E552 + movs r6, #0xf +_0802E552: + mov r2, sb + ldr r1, [r2, #0x3c] + movs r0, #0xf + eors r6, r0 + adds r0, r6, #0 + adds r0, #0x12 + lsls r0, r0, #8 + strh r0, [r1, #0x24] + ldr r0, [r2, #0x3c] + bl sub_0806F69C + movs r6, #0 + movs r0, #0x3c + add r0, sb + mov sl, r0 + mov r1, sb + adds r1, #0x30 + str r1, [sp, #4] + ldr r2, [sp] + adds r2, #0x80 + str r2, [sp, #8] + movs r7, #0x80 + lsls r7, r7, #1 +_0802E580: + lsls r0, r6, #2 + add r0, sl + ldr r0, [r0] + adds r1, r6, #1 + mov r8, r1 + lsls r4, r1, #2 + mov r2, sl + adds r5, r2, r4 + ldr r1, [r5] + bl sub_0806FA24 + add r4, sb + ldrb r0, [r4, #0x19] + lsls r0, r0, #4 + ldr r1, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + ldr r1, [sp, #4] + adds r6, r1, r6 + ldrb r1, [r6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + adds r1, r0, #0 + ldrb r0, [r4, #1] + lsls r0, r0, #4 + ldr r2, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r2 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r1, r1, #0x10 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldrb r0, [r4, #0x19] + lsls r0, r0, #4 + adds r0, #0x80 + ldr r1, _0802E644 @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + ldrb r1, [r6] + lsls r1, r1, #0x18 + asrs r1, r1, #0x10 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] + mov r6, r8 + cmp r6, #4 + bls _0802E580 + mov r1, sb + ldr r0, [r1, #0x50] + ldrb r1, [r0, #0xe] + adds r2, r0, #0 + cmp r1, #0x18 + bne _0802E662 + mov r1, sb + ldrb r0, [r1, #0x15] + lsrs r0, r0, #3 + lsls r7, r0, #2 + mov r0, sb + adds r0, #0x2d + ldrb r0, [r0] + lsls r1, r0, #0x18 + lsrs r0, r1, #0x18 + cmp r0, #0xc + bls _0802E648 + adds r7, #3 + b _0802E64C + .align 2, 0 +_0802E644: .4byte gUnk_080C9160 +_0802E648: + lsrs r0, r1, #0x1a + adds r7, r7, r0 +_0802E64C: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r7, #0 + adds r1, #0x18 + cmp r0, r1 + beq _0802E6E8 + adds r0, r2, #0 + bl sub_080042AC + b _0802E6E8 +_0802E662: + ldr r2, [sp, #8] + ldrb r0, [r2] + cmp r0, #0 + bne _0802E688 + mov r0, sb + movs r1, #5 + movs r2, #0 + movs r3, #0 + bl sub_0802E7CC + mov r0, sb + ldr r2, [r0, #0x50] + ldrb r1, [r2, #0x14] + lsrs r0, r1, #1 + adds r7, r1, r0 + lsrs r0, r7, #2 + ldrb r2, [r2, #0xe] + adds r7, r0, r2 + b _0802E6CA +_0802E688: + ldr r0, [sp] + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0802E6C0 + ldr r0, [sp] + adds r0, #0x58 + ldrb r3, [r0] + mov r1, sb + ldrb r0, [r1, #0x15] + lsrs r2, r0, #3 + adds r0, r2, #0 + adds r0, #0x2f + cmp r3, r0 + bne _0802E6BA + ldr r0, [sp] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + adds r7, r3, #0 + cmp r0, #0 + beq _0802E6CA +_0802E6BA: + adds r7, r2, #0 + adds r7, #0x28 + b _0802E6CA +_0802E6C0: + mov r2, sb + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + adds r7, r0, #0 + adds r7, #0x2f +_0802E6CA: + mov r0, sb + ldr r1, [r0, #0x50] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r7 + beq _0802E6E2 + adds r0, r1, #0 + adds r1, r7, #0 + bl sub_080042AC + b _0802E6E8 +_0802E6E2: + adds r0, r1, #0 + bl sub_080042B8 +_0802E6E8: + movs r6, #0 +_0802E6EA: + ldr r1, [sp, #8] + ldrb r0, [r1] + cmp r0, #0 + bne _0802E72E + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + mov r0, sb + movs r2, #0 + movs r3, #0 + bl sub_0802E7CC + lsls r5, r6, #2 + mov r2, sl + adds r0, r2, r5 + ldr r0, [r0] + ldrb r1, [r0, #0x14] + lsrs r0, r1, #1 + adds r7, r1, r0 + lsrs r7, r7, #2 + adds r4, r6, #1 + lsls r0, r4, #2 + add r0, sb + ldrb r0, [r0, #0x19] + movs r1, #3 + bl __divsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r7, r7, r1 + adds r1, r5, #0 + b _0802E73E +_0802E72E: + lsls r1, r6, #2 + mov r2, sb + adds r0, r2, r1 + ldrb r0, [r0, #1] + lsrs r0, r0, #3 + adds r7, r0, #0 + adds r7, #0x48 + adds r4, r6, #1 +_0802E73E: + mov r2, sl + adds r0, r2, r1 + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r7 + beq _0802E756 + adds r0, r1, #0 + adds r1, r7, #0 + bl sub_08004260 +_0802E756: + adds r6, r4, #0 + cmp r6, #4 + bls _0802E6EA + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0802E768 +sub_0802E768: @ 0x0802E768 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #0 + movs r6, #0x1f +_0802E770: + lsls r3, r2, #2 + adds r0, r4, r3 + ldrb r1, [r0, #1] + adds r2, #1 + lsls r0, r2, #2 + adds r0, r4, r0 + ldrb r0, [r0, #1] + subs r0, r1, r0 + ands r0, r6 + adds r5, r2, #0 + cmp r0, #0x10 + ble _0802E790 + cmp r0, #0x1e + bgt _0802E798 + adds r1, #1 + b _0802E796 +_0802E790: + cmp r0, #1 + ble _0802E798 + subs r1, #1 +_0802E796: + ands r1, r6 +_0802E798: + adds r0, r4, r3 + strb r1, [r0, #1] + ldrb r1, [r0, #0x19] + lsls r0, r5, #2 + adds r0, r4, r0 + ldrb r0, [r0, #0x19] + subs r0, r1, r0 + movs r2, #0x1f + ands r0, r2 + cmp r0, #0x10 + ble _0802E7B6 + cmp r0, #0x1d + bgt _0802E7BE + adds r1, #1 + b _0802E7BC +_0802E7B6: + cmp r0, #2 + ble _0802E7BE + subs r1, #1 +_0802E7BC: + ands r1, r2 +_0802E7BE: + adds r0, r4, r3 + strb r1, [r0, #0x19] + adds r2, r5, #0 + cmp r2, #4 + bls _0802E770 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802E7CC +sub_0802E7CC: @ 0x0802E7CC + lsls r1, r1, #0x18 + lsrs r1, r1, #0x16 + adds r2, r0, #0 + adds r2, #0x3c + adds r2, r2, r1 + ldr r3, [r2] + adds r0, r0, r1 + ldrb r0, [r0, #1] + strb r0, [r3, #0x14] + ldr r0, [r2] + ldrb r0, [r0, #0x14] + bx lr + + thumb_func_start sub_0802E7E4 +sub_0802E7E4: @ 0x0802E7E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov ip, r0 + ldr r0, [r0, #0x50] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0802E8D0 + movs r6, #0 + movs r5, #0 + mov r7, ip + adds r7, #0x3c + movs r0, #0x30 + add r0, ip + mov r8, r0 + movs r1, #8 + rsbs r1, r1, #0 + mov sl, r1 + movs r2, #4 + rsbs r2, r2, #0 + mov sb, r2 +_0802E818: + lsls r0, r5, #2 + adds r4, r7, r0 + ldr r3, [r4] + adds r3, #0x29 + movs r1, #7 + ands r1, r6 + ldrb r2, [r3] + mov r0, sl + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r6, #1 + mov r1, r8 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _0802E852 + ldr r3, [r4] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _0802E860 +_0802E852: + ldr r2, [r4] + ldrb r1, [r2, #0x18] + mov r0, sb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0802E860: + adds r5, #1 + cmp r5, #5 + bls _0802E818 + movs r5, #0 + movs r2, #7 + mov sb, r2 + movs r0, #8 + rsbs r0, r0, #0 + mov r8, r0 +_0802E872: + lsls r1, r5, #2 + mov r2, ip + adds r0, r2, r1 + ldrb r0, [r0, #1] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, #1 + cmp r0, #0x10 + bhi _0802E8BA + adds r0, r7, r1 + ldr r3, [r0] + adds r3, #0x29 + ldrb r4, [r3] + lsls r0, r4, #0x1d + lsrs r6, r0, #0x1d + lsls r2, r5, #2 + adds r2, r7, r2 + ldr r0, [r2] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + mov r0, r8 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldr r1, [r2] + adds r1, #0x29 + mov r0, sb + ands r6, r0 + ldrb r2, [r1] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + strb r0, [r1] +_0802E8BA: + cmp r5, #4 + bls _0802E872 + mov r1, ip + ldr r0, [r1, #0x38] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + b _0802E9A4 +_0802E8D0: + movs r6, #5 + movs r5, #0 + mov r7, ip + adds r7, #0x3c + movs r2, #0x30 + add r2, ip + mov r8, r2 + movs r0, #8 + rsbs r0, r0, #0 + mov sl, r0 + movs r1, #4 + rsbs r1, r1, #0 + mov sb, r1 +_0802E8EA: + lsls r0, r5, #2 + adds r4, r7, r0 + ldr r3, [r4] + adds r3, #0x29 + movs r1, #7 + ands r1, r6 + ldrb r2, [r3] + mov r0, sl + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + subs r6, #1 + mov r2, r8 + adds r0, r2, r5 + ldrb r0, [r0] + cmp r0, #0 + bne _0802E924 + ldr r3, [r4] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #2 + rsbs r0, r0, #0 + ands r1, r0 + mov r0, sb + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _0802E932 +_0802E924: + ldr r2, [r4] + ldrb r1, [r2, #0x18] + mov r0, sb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] +_0802E932: + adds r5, #1 + cmp r5, #5 + bls _0802E8EA + movs r5, #0 + movs r0, #7 + mov sb, r0 + movs r1, #8 + rsbs r1, r1, #0 + mov r8, r1 +_0802E944: + lsls r1, r5, #2 + mov r2, ip + adds r0, r2, r1 + ldrb r0, [r0, #1] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r5, #1 + cmp r0, #0x10 + bls _0802E98C + adds r0, r7, r1 + ldr r3, [r0] + adds r3, #0x29 + ldrb r4, [r3] + lsls r0, r4, #0x1d + lsrs r6, r0, #0x1d + lsls r2, r5, #2 + adds r2, r7, r2 + ldr r0, [r2] + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + mov r0, r8 + ands r0, r4 + orrs r0, r1 + strb r0, [r3] + ldr r1, [r2] + adds r1, #0x29 + mov r0, sb + ands r6, r0 + ldrb r2, [r1] + mov r0, r8 + ands r0, r2 + orrs r0, r6 + strb r0, [r1] +_0802E98C: + cmp r5, #4 + bls _0802E944 + mov r1, ip + ldr r2, [r1, #0x38] + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] +_0802E9A4: + 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_0802E9B0 +sub_0802E9B0: @ 0x0802E9B0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802E9D0 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + bl sub_080041DC + lsrs r2, r0, #4 + cmp r2, #0x5f + bgt _0802E9D4 + movs r2, #0xa + b _0802E9EA + .align 2, 0 +_0802E9D0: .4byte gLinkEntity +_0802E9D4: + adds r1, r2, #0 + subs r1, #0x60 + cmp r1, #0 + bge _0802E9DE + adds r1, #3 +_0802E9DE: + asrs r1, r1, #2 + movs r0, #0xa + subs r2, r0, r1 + cmp r2, #3 + bgt _0802E9EA + movs r2, #4 +_0802E9EA: + adds r0, r4, #0 + adds r0, #0x84 + ldr r3, [r0] + adds r0, r3, #0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r2, r0 + beq _0802EA10 + cmp r2, r0 + ble _0802EA04 + ldrh r0, [r3, #0x2c] + adds r0, #0x20 + b _0802EA08 +_0802EA04: + ldrh r0, [r3, #0x2c] + subs r0, #0x20 +_0802EA08: + ldr r2, _0802EA14 @ =0x00001FFF + adds r1, r2, #0 + ands r0, r1 + strh r0, [r3, #0x2c] +_0802EA10: + pop {r4, pc} + .align 2, 0 +_0802EA14: .4byte 0x00001FFF + + thumb_func_start sub_0802EA18 +sub_0802EA18: @ 0x0802EA18 + push {lr} + adds r3, r2, #0 + movs r2, #0x80 + lsls r2, r2, #5 + adds r1, r1, r2 + subs r1, r1, r0 + ldr r0, _0802EA40 @ =0x00001FFF + ands r1, r0 + lsls r3, r3, #8 + subs r2, r2, r3 + cmp r1, r2 + blo _0802EA44 + movs r2, #0x80 + lsls r2, r2, #5 + adds r0, r3, r2 + cmp r1, r0 + bhi _0802EA44 + movs r0, #0 + b _0802EA46 + .align 2, 0 +_0802EA40: .4byte 0x00001FFF +_0802EA44: + movs r0, #1 +_0802EA46: + pop {pc} + + thumb_func_start sub_0802EA48 +sub_0802EA48: @ 0x0802EA48 + push {r4, lr} + adds r4, r0, #0 + cmp r3, #1 + bne _0802EA52 + rsbs r2, r2, #0 +_0802EA52: + lsls r0, r1, #2 + adds r0, r4, r0 + ldrh r1, [r0] + adds r1, r1, r2 + ldr r3, _0802EA64 @ =0x00001FFF + adds r2, r3, #0 + ands r1, r2 + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_0802EA64: .4byte 0x00001FFF + + thumb_func_start sub_0802EA68 +sub_0802EA68: @ 0x0802EA68 + push {r4, lr} + adds r4, r0, #0 + cmp r3, #2 + bne _0802EA72 + rsbs r2, r2, #0 +_0802EA72: + lsls r0, r1, #2 + adds r0, r4, r0 + ldrh r1, [r0, #0x18] + adds r1, r1, r2 + ldr r3, _0802EA84 @ =0x00001FFF + adds r2, r3, #0 + ands r1, r2 + strh r1, [r0, #0x18] + pop {r4, pc} + .align 2, 0 +_0802EA84: .4byte 0x00001FFF + + thumb_func_start sub_0802EA88 +sub_0802EA88: @ 0x0802EA88 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 + movs r3, #0 +_0802EA90: + lsls r0, r3, #2 + adds r4, r5, r0 + adds r2, r3, #1 + lsls r0, r2, #2 + adds r1, r5, r0 + ldrb r0, [r4, #1] + ldrb r3, [r1, #1] + cmp r0, r3 + beq _0802EAC2 + movs r6, #1 + ldrb r0, [r1, #1] + ldrb r1, [r4, #1] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #1 + cmp r0, #0x10 + ble _0802EAB6 + movs r3, #0 +_0802EAB6: + adds r0, r5, #0 + adds r1, r2, #0 + movs r2, #0x20 + bl sub_0802EA48 + b _0802EAC8 +_0802EAC2: + adds r3, r2, #0 + cmp r3, #4 + bls _0802EA90 +_0802EAC8: + movs r3, #0 + movs r4, #0x1f +_0802EACC: + adds r2, r3, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldrb r1, [r0, #1] + lsls r0, r3, #2 + adds r0, r5, r0 + ldrb r0, [r0, #1] + subs r0, r1, r0 + ands r0, r4 + adds r3, r1, #0 + adds r1, r2, #0 + cmp r0, #0x10 + ble _0802EAEE + cmp r0, #0x1e + bgt _0802EAF6 + adds r3, #1 + b _0802EAF4 +_0802EAEE: + cmp r0, #1 + ble _0802EAF6 + subs r3, #1 +_0802EAF4: + ands r3, r4 +_0802EAF6: + lsls r0, r1, #2 + adds r0, r5, r0 + strb r3, [r0, #1] + adds r3, r1, #0 + cmp r3, #4 + bls _0802EACC + adds r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802EB08 +sub_0802EB08: @ 0x0802EB08 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + movs r0, #0 + mov r8, r0 + movs r3, #0 +_0802EB1A: + lsls r0, r3, #2 + adds r4, r5, r0 + adds r2, r3, #1 + lsls r0, r2, #2 + adds r1, r5, r0 + ldrb r0, [r4, #0x19] + ldrb r3, [r1, #0x19] + cmp r0, r3 + beq _0802EB4E + movs r0, #1 + mov r8, r0 + ldrb r0, [r1, #0x19] + ldrb r1, [r4, #0x19] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + movs r3, #2 + cmp r0, #0x10 + ble _0802EB42 + movs r3, #3 +_0802EB42: + adds r0, r5, #0 + adds r1, r2, #0 + adds r2, r6, #0 + bl sub_0802EA68 + b _0802EB54 +_0802EB4E: + adds r3, r2, #0 + cmp r3, #4 + bls _0802EB1A +_0802EB54: + movs r3, #0 + movs r4, #0x1f + rsbs r6, r7, #0 + ands r6, r4 +_0802EB5C: + adds r2, r3, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldrb r1, [r0, #0x19] + lsls r0, r3, #2 + adds r0, r5, r0 + ldrb r0, [r0, #0x19] + subs r0, r1, r0 + ands r0, r4 + adds r3, r1, #0 + adds r1, r2, #0 + cmp r0, #0x10 + ble _0802EB7E + cmp r6, r0 + ble _0802EB86 + adds r3, #1 + b _0802EB84 +_0802EB7E: + cmp r7, r0 + bge _0802EB86 + subs r3, #1 +_0802EB84: + ands r3, r4 +_0802EB86: + lsls r0, r1, #2 + adds r0, r5, r0 + strb r3, [r0, #0x19] + adds r3, r1, #0 + cmp r3, #4 + bls _0802EB5C + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802EB9C +sub_0802EB9C: @ 0x0802EB9C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802EBBC @ =gUnk_080CD850 + bl sub_080028F4 + ldr r1, _0802EBC0 @ =gUnk_080CD854 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + adds r4, #0x75 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0802EBBC: .4byte gUnk_080CD850 +_0802EBC0: .4byte gUnk_080CD854 + + thumb_func_start sub_0802EBC4 +sub_0802EBC4: @ 0x0802EBC4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + adds r6, r0, #0 + cmp r6, #0 + bne _0802EC66 + ldr r1, _0802EC18 @ =gUnk_080CD86C + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_080028F4 + ldr r2, _0802EC1C @ =gUnk_080CD878 + ldrb r1, [r5] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + adds r1, r1, r0 + adds r2, r4, #0 + adds r2, #0x75 + ldrb r0, [r1] + ldrb r1, [r2] + cmp r0, r1 + bhs _0802EC60 + strb r6, [r2] + ldrb r1, [r5] + cmp r1, #0 + bne _0802EC20 + adds r0, r4, #0 + adds r0, #0x76 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #3 + strb r0, [r1] + b _0802EC56 + .align 2, 0 +_0802EC18: .4byte gUnk_080CD86C +_0802EC1C: .4byte gUnk_080CD878 +_0802EC20: + bl sub_08000E50 + adds r1, r0, #0 + movs r5, #1 + ands r1, r5 + adds r3, r4, #0 + adds r3, #0x76 + ldrb r0, [r3] + cmp r1, r0 + beq _0802EC3E + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x77 + strb r5, [r0] + b _0802EC56 +_0802EC3E: + adds r2, r4, #0 + adds r2, #0x77 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _0802EC54 + eors r1, r5 + strb r5, [r2] +_0802EC54: + strb r1, [r3] +_0802EC56: + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xd] + strb r1, [r4, #0xb] + b _0802EC6A +_0802EC60: + movs r0, #2 + strb r0, [r4, #0xd] + b _0802EC6A +_0802EC66: + subs r0, #1 + strb r0, [r1] +_0802EC6A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0802EC6C +sub_0802EC6C: @ 0x0802EC6C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802EC94 @ =gUnk_080CDE34 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802EC94: .4byte gUnk_080CDE34 + + thumb_func_start sub_0802EC98 +sub_0802EC98: @ 0x0802EC98 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802ECBC @ =gUnk_080CDE4C + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _0802ECB8 + adds r0, r4, #0 + bl sub_0802EF90 +_0802ECB8: + pop {r4, pc} + .align 2, 0 +_0802ECBC: .4byte gUnk_080CDE4C + + thumb_func_start sub_0802ECC0 +sub_0802ECC0: @ 0x0802ECC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0802ED2A + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + ldr r3, _0802ED00 @ =gUnk_030010A0 + cmp r1, #0 + bne _0802ECEE + adds r2, r3, #0 + adds r2, #0x39 + adds r0, r3, #0 + adds r0, #0x3c + ldrb r0, [r0] + adds r0, #2 + movs r1, #1 + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] +_0802ECEE: + ldr r0, _0802ED04 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0802ED08 + ldrb r1, [r5] + adds r0, r3, #0 + adds r0, #0x3a + b _0802ED0E + .align 2, 0 +_0802ED00: .4byte gUnk_030010A0 +_0802ED04: .4byte gUnk_03000BF0 +_0802ED08: + ldrb r1, [r5] + adds r0, r3, #0 + adds r0, #0x3b +_0802ED0E: + strb r1, [r0] + adds r6, r4, #0 + adds r6, #0x79 + ldrb r0, [r6] + ldrb r1, [r5] + cmp r0, r1 + beq _0802ED24 + movs r0, #0xbd + lsls r0, r0, #1 + bl sub_08004488 +_0802ED24: + ldrb r0, [r5] + strb r0, [r6] + b _0802ED52 +_0802ED2A: + cmp r0, #1 + bne _0802ED52 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _0802ED3E + rsbs r0, r0, #0 + strb r0, [r1] +_0802ED3E: + adds r5, r4, #0 + adds r5, #0x45 + ldrb r0, [r5] + cmp r0, #0xff + beq _0802ED4E + movs r0, #0xe5 + bl sub_08004488 +_0802ED4E: + movs r0, #0xff + strb r0, [r5] +_0802ED52: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802ED64 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802ED64: + ldr r1, _0802ED70 @ =gUnk_080CDE34 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_0802ED70: .4byte gUnk_080CDE34 + + thumb_func_start sub_0802ED74 +sub_0802ED74: @ 0x0802ED74 + push {lr} + ldr r2, _0802ED88 @ =gUnk_080CDE5C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802ED88: .4byte gUnk_080CDE5C + + thumb_func_start sub_0802ED8C +sub_0802ED8C: @ 0x0802ED8C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0802EDD0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0802EE0A + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _0802EE0A + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x34 + strb r0, [r1, #9] + str r4, [r1, #0x14] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C + movs r0, #0x25 + movs r1, #2 + bl CreateEnemy + str r4, [r0, #0x50] + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0802EDD4 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0802EDDC + ldr r0, _0802EDD8 @ =gUnk_030010A0 + adds r0, #0x3a + b _0802EDE0 + .align 2, 0 +_0802EDD0: .4byte gUnk_03003DBC +_0802EDD4: .4byte gUnk_03000BF0 +_0802EDD8: .4byte gUnk_030010A0 +_0802EDDC: + ldr r0, _0802EE0C @ =gUnk_030010A0 + adds r0, #0x3b +_0802EDE0: + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + adds r1, #0x34 + strb r0, [r1] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802EFB8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0802EF58 +_0802EE0A: + pop {r4, pc} + .align 2, 0 +_0802EE0C: .4byte gUnk_030010A0 + + thumb_func_start sub_0802EE10 +sub_0802EE10: @ 0x0802EE10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0802F04C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0802EE20 +sub_0802EE20: @ 0x0802EE20 + push {lr} + ldr r2, _0802EE34 @ =gUnk_080CDE64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802EE34: .4byte gUnk_080CDE64 + + thumb_func_start sub_0802EE38 +sub_0802EE38: @ 0x0802EE38 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0802EE84 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0802EE82 + movs r0, #0x25 + movs r1, #3 + bl CreateEnemy + str r5, [r0, #0x50] + movs r0, #1 + strb r0, [r5, #0xc] + bl sub_08000E50 + adds r4, r0, #0 + movs r1, #3 + ands r0, r1 + adds r0, #1 + strb r0, [r5, #0xe] + bl sub_08000E50 + lsrs r0, r0, #8 + adds r1, r5, #0 + adds r1, #0x78 + strb r0, [r1] + ldr r1, _0802EE88 @ =gUnk_080CDE6C + lsrs r4, r4, #0x10 + movs r0, #3 + ands r4, r0 + adds r4, r4, r1 + ldrb r0, [r4] + strb r0, [r5, #0x15] + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0802EE82: + pop {r4, r5, pc} + .align 2, 0 +_0802EE84: .4byte gUnk_03003DBC +_0802EE88: .4byte gUnk_080CDE6C + + thumb_func_start sub_0802EE8C +sub_0802EE8C: @ 0x0802EE8C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r2, [r0, #4] + cmp r2, #0 + bne _0802EEA8 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x45 + strb r2, [r0] + b _0802EEB4 +_0802EEA8: + adds r0, r4, #0 + bl sub_0802F04C + adds r0, r4, #0 + bl sub_08004274 +_0802EEB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802EEB8 +sub_0802EEB8: @ 0x0802EEB8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802EEC8 + bl sub_0805E780 +_0802EEC8: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0802EED6 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] +_0802EED6: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + ldr r1, _0802EF14 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #1 + movs r1, #0x1e + ands r0, r1 + ldr r1, _0802EF18 @ =gUnk_080CDE70 + adds r0, r0, r1 + ldrb r2, [r0] + ldrb r1, [r4, #0x1e] + cmp r2, r1 + beq _0802EF00 + ldrb r0, [r0, #1] + cmp r0, r1 + beq _0802EF00 + strb r2, [r4, #0x1e] +_0802EF00: + ldrh r0, [r4, #0x32] + adds r0, #1 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_0802EF14: .4byte gLinkEntity +_0802EF18: .4byte gUnk_080CDE70 + + thumb_func_start sub_0802EF1C +sub_0802EF1C: @ 0x0802EF1C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0802EF2C + bl sub_0805E780 +_0802EF2C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0802EF4A + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x11 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x19 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] +_0802EF4A: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + movs r0, #0 + strh r0, [r4, #0x36] + pop {r4, pc} + + thumb_func_start sub_0802EF58 +sub_0802EF58: @ 0x0802EF58 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r5, #0 +_0802EF5E: + movs r0, #0x25 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0802EF86 + strb r5, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + str r6, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0802EF86: + adds r5, #1 + cmp r5, #6 + bls _0802EF5E + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802EF90 +sub_0802EF90: @ 0x0802EF90 + push {r4, lr} + ldr r4, _0802EFB4 @ =gUnk_080CDE90 + adds r3, r0, #0 + adds r3, #0x78 + ldrb r1, [r3] + adds r2, r1, #1 + strb r2, [r3] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #7 + ands r1, r2 + adds r1, r1, r4 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + pop {r4, pc} + .align 2, 0 +_0802EFB4: .4byte gUnk_080CDE90 + + thumb_func_start sub_0802EFB8 +sub_0802EFB8: @ 0x0802EFB8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r6, r0, #0 + lsrs r0, r6, #0x10 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + beq _0802EFD2 + movs r5, #0x18 + ands r5, r6 + b _0802EFE0 +_0802EFD2: + ldr r0, _0802F01C @ =gLinkEntity + adds r1, r4, #0 + bl sub_080045C4 + adds r5, r0, #4 + movs r0, #0x18 + ands r5, r0 +_0802EFE0: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0802F020 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r7, #0x32 + ldrsh r1, [r4, r7] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + ldr r2, _0802F024 @ =gUnk_080B4488 + lsrs r1, r5, #2 + adds r1, r1, r2 + movs r2, #0 + ldrsh r1, [r1, r2] + adds r0, r0, r1 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0802F028 + movs r0, #0xff + strb r0, [r4, #0x15] + b _0802F044 + .align 2, 0 +_0802F01C: .4byte gLinkEntity +_0802F020: .4byte gUnk_03000BF0 +_0802F024: .4byte gUnk_080B4488 +_0802F028: + movs r1, #3 + adds r0, r6, #0 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + strb r5, [r4, #0x15] + ldr r2, _0802F048 @ =gUnk_080CDE98 + lsrs r0, r6, #0x18 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] +_0802F044: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802F048: .4byte gUnk_080CDE98 + + thumb_func_start sub_0802F04C +sub_0802F04C: @ 0x0802F04C + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0802F06A + adds r0, r4, #0 + bl sub_0802EFB8 + b _0802F112 +_0802F06A: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + cmp r0, #1 + beq _0802F098 + cmp r0, #1 + bgt _0802F07C + cmp r0, #0 + beq _0802F082 + b _0802F0DC +_0802F07C: + cmp r0, #2 + beq _0802F0AE + b _0802F0DC +_0802F082: + movs r2, #0xf + adds r0, r6, #0 + ands r0, r2 + cmp r0, #8 + ble _0802F102 + ldrh r1, [r4, #0x32] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #8 + bgt _0802F102 + b _0802F0C2 +_0802F098: + movs r2, #0xf + adds r0, r5, #0 + ands r0, r2 + cmp r0, #7 + bgt _0802F102 + ldrh r1, [r4, #0x2e] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #7 + ble _0802F102 + b _0802F0F0 +_0802F0AE: + movs r2, #0xf + adds r0, r6, #0 + ands r0, r2 + cmp r0, #7 + bgt _0802F102 + ldrh r1, [r4, #0x32] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #7 + ble _0802F102 +_0802F0C2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _0802F0D8 @ =0x0000FFF0 + ands r0, r1 + adds r6, r0, #0 + adds r6, #8 + b _0802F102 + .align 2, 0 +_0802F0D8: .4byte 0x0000FFF0 +_0802F0DC: + movs r2, #0xf + adds r0, r5, #0 + ands r0, r2 + cmp r0, #8 + ble _0802F102 + ldrh r1, [r4, #0x2e] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #8 + bgt _0802F102 +_0802F0F0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r1, _0802F114 @ =0x0000FFF0 + ands r0, r1 + adds r5, r0, #0 + adds r5, #8 +_0802F102: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0802F112 + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + adds r0, r4, #0 + bl sub_0802EFB8 +_0802F112: + pop {r4, r5, r6, pc} + .align 2, 0 +_0802F114: .4byte 0x0000FFF0 + + thumb_func_start sub_0802F118 +sub_0802F118: @ 0x0802F118 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0802F134 @ =gUnk_080CDED0 + 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 +_0802F134: .4byte gUnk_080CDED0 + + thumb_func_start sub_0802F138 +sub_0802F138: @ 0x0802F138 + push {lr} + ldr r2, _0802F14C @ =gUnk_080CDEE8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802F14C: .4byte gUnk_080CDEE8 + + thumb_func_start sub_0802F150 +sub_0802F150: @ 0x0802F150 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802F164 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802F164: + ldr r1, _0802F18C @ =gUnk_080CDED0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F1E8 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + beq _0802F196 + cmp r0, #0x14 + bgt _0802F190 + cmp r0, #0xe + beq _0802F1E0 + b _0802F1E8 + .align 2, 0 +_0802F18C: .4byte gUnk_080CDED0 +_0802F190: + cmp r0, #0x15 + beq _0802F1E0 + b _0802F1E8 +_0802F196: + movs r0, #0 + movs r1, #1 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802F1A8 + movs r0, #0xc0 + b _0802F1B6 +_0802F1A8: + bl sub_08000E50 + ldr r2, _0802F1DC @ =gUnk_080CDEF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] +_0802F1B6: + strb r0, [r4, #0xe] + movs r1, #0 + strb r1, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x7c + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802F1CE + ldr r0, [r4, #0x20] + asrs r0, r0, #2 +_0802F1CE: + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _0802F1E8 + .align 2, 0 +_0802F1DC: .4byte gUnk_080CDEF8 +_0802F1E0: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_0802F1E8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_16 +nullsub_16: @ 0x0802F1EC + bx lr + .align 2, 0 + + thumb_func_start sub_0802F1F0 +sub_0802F1F0: @ 0x0802F1F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0802F20C + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_08003FC4 +_0802F20C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802F210 +sub_0802F210: @ 0x0802F210 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + bl sub_08000E50 + ldr r2, _0802F280 @ =gUnk_080CDEF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r5, #0xe] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r5, #0xe] + adds r0, r0, r1 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + ldrb r0, [r5, #0xa] + movs r2, #0xa0 + lsls r2, r2, #6 + adds r1, r2, #0 + cmp r0, #0 + bne _0802F258 + movs r0, #0xc0 + lsls r0, r0, #5 + adds r1, r0, #0 +_0802F258: + adds r0, r5, #0 + adds r0, #0x80 + strh r1, [r0] + ldrb r0, [r5, #0xa] + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r2, #0 + cmp r0, #0 + bne _0802F270 + movs r0, #0xa0 + lsls r0, r0, #6 + adds r1, r0, #0 +_0802F270: + adds r0, r5, #0 + adds r0, #0x82 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 +_0802F280: .4byte gUnk_080CDEF8 + + thumb_func_start sub_0802F284 +sub_0802F284: @ 0x0802F284 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0x60 + bls _0802F298 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + b _0802F29E +_0802F298: + adds r0, r4, #0 + bl sub_08004274 +_0802F29E: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0802F2AA + subs r0, #1 + strb r0, [r4, #0xe] + b _0802F2FE +_0802F2AA: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802F2E4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F2FE + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + lsls r0, r0, #4 + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_0802F45C + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0802F2FE +_0802F2E4: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0802F2FE + movs r0, #0x40 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_0802F2FE: + pop {r4, pc} + + thumb_func_start sub_0802F300 +sub_0802F300: @ 0x0802F300 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x36 + ldrsh r6, [r4, r0] + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xf + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _0802F364 + movs r0, #0 + movs r2, #3 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0802F33C + movs r5, #0 +_0802F33C: + cmp r5, #0 + bne _0802F344 + movs r0, #0xc0 + b _0802F350 +_0802F344: + ldr r0, _0802F360 @ =gUnk_080CDEF8 + adds r1, r5, #0 + ands r1, r2 + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, r0, r5 +_0802F350: + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0802F3F0 + .align 2, 0 +_0802F360: .4byte gUnk_080CDEF8 +_0802F364: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802F374 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + b _0802F38C +_0802F374: + adds r0, r4, #0 + bl sub_080002B8 + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x50 + bne _0802F38C + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_0802F38C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F3AC + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0802F3AC + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F45C +_0802F3AC: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0802F3C6 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r6, r0 + bge _0802F3C6 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + movs r0, #1 + strb r0, [r4, #0xd] +_0802F3C6: + movs r0, #0xc + rsbs r0, r0, #0 + cmp r6, r0 + bge _0802F3DA + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + b _0802F3E4 +_0802F3DA: + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 +_0802F3E4: + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] +_0802F3F0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802F3F4 +sub_0802F3F4: @ 0x0802F3F4 + 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 _0802F45A + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #1 + bhi _0802F44C + ldrb r0, [r4, #0xa] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0802F44C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + lsls r0, r0, #4 + str r0, [r4, #0x20] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0802F45C + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0802F45A +_0802F44C: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_08004260 +_0802F45A: + pop {r4, pc} + + thumb_func_start sub_0802F45C +sub_0802F45C: @ 0x0802F45C + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0802F472 + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + b _0802F49E +_0802F472: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0802F48A + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0802F49E +_0802F48A: + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + adds r1, #0x18 + ldrb r0, [r4, #0x15] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_0802F49E: + pop {r4, pc} + + thumb_func_start sub_0802F4A0 +sub_0802F4A0: @ 0x0802F4A0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802F4C8 @ =gUnk_080CDF50 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802F4C8: .4byte gUnk_080CDF50 + + thumb_func_start sub_0802F4CC +sub_0802F4CC: @ 0x0802F4CC + push {lr} + ldr r2, _0802F4E0 @ =gUnk_080CDF68 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802F4E0: .4byte gUnk_080CDF68 + + thumb_func_start sub_0802F4E4 +sub_0802F4E4: @ 0x0802F4E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802F4F8 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802F4F8: + ldr r1, _0802F558 @ =gUnk_080CDF50 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _0802F536 + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0802F536 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r2, #0x50] +_0802F536: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802F556 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802F556: + pop {r4, pc} + .align 2, 0 +_0802F558: .4byte gUnk_080CDF50 + + thumb_func_start sub_0802F55C +sub_0802F55C: @ 0x0802F55C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802F594 + movs r0, #3 + strb r0, [r4, #0xc] + movs r2, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + ldrb r0, [r4, #0xe] + bl sub_0804B128 + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0802FA48 + adds r0, r4, #0 + bl sub_0802FA88 + b _0802F5B8 +_0802F594: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 +_0802F5B8: + adds r0, r4, #0 + movs r1, #7 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802F5D0 + str r1, [r4, #0x50] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802F5D0: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0802F5DC +sub_0802F5DC: @ 0x0802F5DC + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802F62A + cmp r3, #1 + bgt _0802F5F4 + cmp r3, #0 + beq _0802F60A + b _0802F660 +_0802F5F4: + cmp r3, #0xff + bne _0802F660 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802F660 + strb r0, [r2] + b _0802F660 +_0802F60A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F660 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x10 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802F660 +_0802F62A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802F660 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x28 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x50] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x2c + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802F660: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802F668 +sub_0802F668: @ 0x0802F668 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802F6F0 + cmp r0, #1 + bgt _0802F680 + cmp r0, #0 + beq _0802F68A + b _0802F7A2 +_0802F680: + cmp r0, #2 + beq _0802F742 + cmp r0, #3 + beq _0802F76C + b _0802F7A2 +_0802F68A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802F69E + cmp r1, #8 + beq _0802F6B6 + b _0802F7A2 +_0802F69E: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x50] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _0802F7A2 +_0802F6B6: + ldr r1, _0802F6EC @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _0802F7A2 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0802F7A2 + adds r0, r4, #0 + movs r1, #7 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0802F7A2 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _0802F7A2 + .align 2, 0 +_0802F6EC: .4byte gLinkEntity +_0802F6F0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0802F7A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _0802F7A2 +_0802F742: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F7A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802F7A2 +_0802F76C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802F7A2 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802F7A2: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802F7AC +sub_0802F7AC: @ 0x0802F7AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0802FA88 + adds r0, r4, #0 + bl sub_0802F9C8 + ldr r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0802F86E + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + cmp r1, #1 + beq _0802F7EA + cmp r1, #1 + bgt _0802F7DA + cmp r1, #0 + beq _0802F7E0 + b _0802F884 +_0802F7DA: + cmp r1, #2 + beq _0802F818 + b _0802F884 +_0802F7E0: + movs r0, #1 + strb r0, [r2] + movs r0, #0x40 + strb r0, [r4, #0xe] + b _0802F884 +_0802F7EA: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802F884 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x28 + strb r0, [r4, #0xe] + movs r2, #1 + strb r1, [r5, #0xe] + ldrb r1, [r5, #0x18] + subs r0, #0x2c + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + movs r0, #4 + orrs r1, r0 + b _0802F844 +_0802F818: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0802F84C + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x30 + strb r0, [r4, #0xe] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 +_0802F844: + adds r0, r4, #0 + bl sub_08004260 + b _0802F884 +_0802F84C: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bne _0802F884 + adds r0, r4, #0 + movs r1, #7 + movs r2, #1 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0802F884 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _0802F884 +_0802F86E: + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + beq _0802F884 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r5, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r5, #0x18] +_0802F884: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0802F888 +sub_0802F888: @ 0x0802F888 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #3 + bl sub_08049F84 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0802F8DC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r5, r4, #0 + adds r5, #0x84 + strh r1, [r5] + ldrh r0, [r5] + adds r6, r4, #0 + adds r6, #0x38 + ldrb r1, [r6] + bl sub_080001DA + adds r4, #0x86 + strh r0, [r4] + ldr r0, _0802F8E0 @ =0x00004071 + ldrh r1, [r5] + ldrb r2, [r6] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0802F8DC: .4byte gUnk_03000BF0 +_0802F8E0: .4byte 0x00004071 + + thumb_func_start sub_0802F8E4 +sub_0802F8E4: @ 0x0802F8E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x14 + adds r7, r0, #0 + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _0802F9AE + movs r0, #1 + str r0, [sp] + adds r1, r7, #0 + adds r1, #0x70 + str r1, [sp, #0xc] + adds r2, r7, #0 + adds r2, #0x6e + str r2, [sp, #4] + adds r0, r7, #0 + adds r0, #0x72 + str r0, [sp, #0x10] + subs r1, #1 + str r1, [sp, #8] + movs r2, #0x38 + adds r2, r2, r7 + mov r8, r2 + movs r0, #8 + mov sl, r0 + ldr r1, _0802F9BC @ =gUnk_03000BF0 + mov sb, r1 +_0802F920: + bl sub_08000E50 + adds r4, r0, #0 + ldr r2, [sp, #0xc] + ldrh r5, [r2] + ldr r1, _0802F9C0 @ =0x00007FF0 + ands r0, r1 + ldr r2, [sp, #4] + ldrb r1, [r2] + lsls r1, r1, #3 + bl __modsi3 + adds r6, r5, r0 + mov r0, sl + orrs r6, r0 + lsrs r4, r4, #0x10 + ldr r1, [sp, #0x10] + ldrh r5, [r1] + ldr r2, _0802F9C0 @ =0x00007FF0 + ands r4, r2 + ldr r0, [sp, #8] + ldrb r1, [r0] + lsls r1, r1, #3 + adds r0, r4, #0 + bl __modsi3 + adds r5, r5, r0 + mov r1, sl + orrs r5, r1 + mov r2, sb + ldrh r0, [r2, #6] + subs r0, r6, r0 + lsrs r4, r0, #4 + movs r1, #0x3f + ands r4, r1 + ldrh r0, [r2, #8] + subs r0, r5, r0 + lsrs r0, r0, #4 + ands r0, r1 + lsls r0, r0, #6 + orrs r4, r0 + mov r0, r8 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002E0 + cmp r0, #0 + bne _0802F9A2 + mov r2, r8 + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _0802F9C4 @ =0x00004071 + cmp r0, r1 + beq _0802F9A2 + strh r6, [r7, #0x2e] + strh r5, [r7, #0x32] + adds r0, r7, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0802F9A2 + movs r0, #0 + str r0, [sp] +_0802F9A2: + ldr r1, [sp] + cmp r1, #0 + bne _0802F920 + adds r0, r7, #0 + bl sub_0802F888 +_0802F9AE: + add sp, #0x14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0802F9BC: .4byte gUnk_03000BF0 +_0802F9C0: .4byte 0x00007FF0 +_0802F9C4: .4byte 0x00004071 + + thumb_func_start sub_0802F9C8 +sub_0802F9C8: @ 0x0802F9C8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0802FA44 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + adds r6, r5, #0 + cmp r0, #0 + beq _0802FA20 + subs r0, #1 + strb r0, [r5] + movs r1, #0xff + ands r0, r1 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _0802F9F8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + b _0802FA02 +_0802F9F8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 +_0802FA02: + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802FA3E + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r6] + cmp r0, #0 + bne _0802FA3E + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0802FA3E +_0802FA20: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0802FA3E + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0802FA3E + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x28 + strb r0, [r5] +_0802FA3E: + adds r0, r4, #0 + bl sub_08004274 +_0802FA44: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0802FA48 +sub_0802FA48: @ 0x0802FA48 + push {r4, lr} + mov ip, r0 + ldr r4, [r0, #0x54] + mov r2, ip + adds r2, #0x80 + ldrb r0, [r2] + lsls r0, r0, #2 + adds r3, r4, r0 + ldrh r1, [r3] + ldr r0, _0802FA80 @ =0x0000FFFF + cmp r1, r0 + bne _0802FA66 + movs r0, #0 + strb r0, [r2] + adds r3, r4, #0 +_0802FA66: + ldr r2, _0802FA84 @ =gUnk_03000BF0 + ldrh r0, [r3] + ldrh r1, [r2, #6] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x78 + strh r0, [r1] + ldrh r0, [r3, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, #2 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_0802FA80: .4byte 0x0000FFFF +_0802FA84: .4byte gUnk_03000BF0 + + thumb_func_start sub_0802FA88 +sub_0802FA88: @ 0x0802FA88 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r7, #0 + adds r5, r4, #0 + adds r5, #0x78 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x7a + ldrh r2, [r6] + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + beq _0802FAF6 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0802FA48 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + adds r2, r0, #0 + strb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _0802FAEA + lsrs r1, r2, #3 + movs r0, #4 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 + b _0802FAF2 +_0802FAEA: + lsrs r1, r2, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802FAF2: + movs r7, #1 + b _0802FB2A +_0802FAF6: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + adds r2, r0, #0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r2, r0, #2 + ldrb r0, [r4, #0x14] + cmp r2, r0 + beq _0802FB2A + strb r2, [r4, #0x14] + lsrs r1, r2, #1 + adds r0, r4, #0 + bl sub_08004260 +_0802FB2A: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0802FB30 +sub_0802FB30: @ 0x0802FB30 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802FB58 @ =gUnk_080CDFC4 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802FB58: .4byte gUnk_080CDFC4 + + thumb_func_start sub_0802FB5C +sub_0802FB5C: @ 0x0802FB5C + push {lr} + ldr r2, _0802FB70 @ =gUnk_080CDFDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802FB70: .4byte gUnk_080CDFDC + + thumb_func_start sub_0802FB74 +sub_0802FB74: @ 0x0802FB74 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802FB88 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802FB88: + ldr r1, _0802FBB4 @ =gUnk_080CDFC4 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802FBB0 + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802FBB0: + pop {r4, pc} + .align 2, 0 +_0802FBB4: .4byte gUnk_080CDFC4 + + thumb_func_start sub_0802FBB8 +sub_0802FBB8: @ 0x0802FBB8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 + adds r0, r4, #0 + movs r1, #8 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802FBF6 + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802FBF6: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FC04 +sub_0802FC04: @ 0x0802FC04 + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802FC52 + cmp r3, #1 + bgt _0802FC1C + cmp r3, #0 + beq _0802FC32 + b _0802FC88 +_0802FC1C: + cmp r3, #0xff + bne _0802FC88 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802FC88 + strb r0, [r2] + b _0802FC88 +_0802FC32: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FC88 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0xe + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802FC88 +_0802FC52: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FC88 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x20 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x54] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x24 + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802FC88: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802FC90 +sub_0802FC90: @ 0x0802FC90 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802FD18 + cmp r0, #1 + bgt _0802FCA8 + cmp r0, #0 + beq _0802FCB2 + b _0802FDCA +_0802FCA8: + cmp r0, #2 + beq _0802FD6A + cmp r0, #3 + beq _0802FD94 + b _0802FDCA +_0802FCB2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802FCC6 + cmp r1, #6 + beq _0802FCDE + b _0802FDCA +_0802FCC6: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _0802FDCA +_0802FCDE: + ldr r1, _0802FD14 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _0802FDCA + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0802FDCA + adds r0, r4, #0 + movs r1, #8 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0802FDCA + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _0802FDCA + .align 2, 0 +_0802FD14: .4byte gLinkEntity +_0802FD18: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0802FDCA + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _0802FDCA +_0802FD6A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FDCA + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x1c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _0802FDCA +_0802FD94: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FDCA + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_0802FDCA: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FDD4 +sub_0802FDD4: @ 0x0802FDD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0802FDFC @ =gUnk_080CE074 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0802FDFC: .4byte gUnk_080CE074 + + thumb_func_start sub_0802FE00 +sub_0802FE00: @ 0x0802FE00 + push {lr} + ldr r2, _0802FE14 @ =gUnk_080CE08C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0802FE14: .4byte gUnk_080CE08C + + thumb_func_start sub_0802FE18 +sub_0802FE18: @ 0x0802FE18 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0802FE2C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0802FE2C: + ldr r1, _0802FE8C @ =gUnk_080CE074 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x87 + bne _0802FE6A + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0802FE6A + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r2, #0x50] +_0802FE6A: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0802FE8A + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0802FE8A: + pop {r4, pc} + .align 2, 0 +_0802FE8C: .4byte gUnk_080CE074 + + thumb_func_start sub_0802FE90 +sub_0802FE90: @ 0x0802FE90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xff + strb r0, [r1] + subs r1, #1 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0x60 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_0802F888 + adds r0, r4, #0 + movs r1, #9 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0802FECE + str r1, [r4, #0x54] + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] +_0802FECE: + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0802FEDC +sub_0802FEDC: @ 0x0802FEDC + push {r4, r5, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x82 + ldrb r3, [r2] + cmp r3, #1 + beq _0802FF2A + cmp r3, #1 + bgt _0802FEF4 + cmp r3, #0 + beq _0802FF0A + b _0802FF60 +_0802FEF4: + cmp r3, #0xff + bne _0802FF60 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0802FF60 + strb r0, [r2] + b _0802FF60 +_0802FF0A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0802FF60 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0xc + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + b _0802FF60 +_0802FF2A: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0802FF60 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r2] + movs r0, #0x20 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x15] + lsrs r1, r1, #3 + ldr r2, [r5, #0x54] + movs r4, #1 + strb r3, [r2, #0xe] + ldrb r3, [r2, #0x18] + subs r0, #0x24 + ands r0, r3 + orrs r0, r4 + strb r0, [r2, #0x18] + movs r0, #4 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0802FF60: + adds r0, r5, #0 + bl sub_0802F9C8 + pop {r4, r5, pc} + + thumb_func_start sub_0802FF68 +sub_0802FF68: @ 0x0802FF68 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r0, [r2] + cmp r0, #1 + beq _0802FFF0 + cmp r0, #1 + bgt _0802FF80 + cmp r0, #0 + beq _0802FF8A + b _080300A2 +_0802FF80: + cmp r0, #2 + beq _08030042 + cmp r0, #3 + beq _0803006C + b _080300A2 +_0802FF8A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0802FF9E + cmp r1, #0xa + beq _0802FFB6 + b _080300A2 +_0802FF9E: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x38 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #0x3c + ands r0, r1 + strb r0, [r2, #0x18] + b _080300A2 +_0802FFB6: + ldr r1, _0802FFEC @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0xa0 + movs r3, #0xa0 + bl sub_080041A0 + cmp r0, #0 + beq _080300A2 + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _080300A2 + adds r0, r4, #0 + movs r1, #9 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _080300A2 + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + b _080300A2 + .align 2, 0 +_0802FFEC: .4byte gLinkEntity +_0802FFF0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _080300A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x84 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _080300A2 +_08030042: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080300A2 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x18 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080300A2 +_0803006C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080300A2 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0x28 + strb r0, [r1] + strb r0, [r4, #0xe] + movs r0, #0xab + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + bl sub_0802F8E4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 +_080300A2: + adds r0, r4, #0 + bl sub_0802F9C8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080300AC +sub_080300AC: @ 0x080300AC + push {r4, lr} + ldr r4, _080300C0 @ =gUnk_0300110C + adds r0, r4, #0 + movs r1, #0x44 + bl sub_0801D630 + adds r4, #0x42 + movs r0, #0xff + strh r0, [r4] + pop {r4, pc} + .align 2, 0 +_080300C0: .4byte gUnk_0300110C + + thumb_func_start sub_080300C4 +sub_080300C4: @ 0x080300C4 + push {lr} + ldr r2, _080300E4 @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0xae + ldrh r0, [r0] + cmp r0, #0xff + bne _080300E2 + adds r0, r2, #0 + adds r0, #0xac + movs r1, #0 + strh r1, [r0] + subs r0, #0x40 + movs r1, #0x40 + bl sub_0801D630 +_080300E2: + pop {pc} + .align 2, 0 +_080300E4: .4byte gUnk_030010A0 + + thumb_func_start sub_080300E8 +sub_080300E8: @ 0x080300E8 + push {lr} + ldr r1, _08030110 @ =gUnk_030010A0 + adds r3, r1, #0 + adds r3, #0xae + ldrh r0, [r3] + cmp r0, #0xff + beq _0803010C + lsls r0, r0, #2 + adds r1, #0x6c + adds r0, r0, r1 + ldr r2, _08030114 @ =gLinkEntity + ldrh r1, [r0] + strh r1, [r2, #0x2e] + ldrh r0, [r0, #2] + adds r0, #0xc + strh r0, [r2, #0x32] + movs r0, #0xff + strh r0, [r3] +_0803010C: + pop {pc} + .align 2, 0 +_08030110: .4byte gUnk_030010A0 +_08030114: .4byte gLinkEntity + + thumb_func_start sub_08030118 +sub_08030118: @ 0x08030118 + push {lr} + adds r2, r0, #0 + ldr r0, _0803013C @ =gUnk_030010A0 + adds r0, #0xac + ldrh r0, [r0] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08030140 + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x67 + bl sub_0807CC9C + b _0803014C + .align 2, 0 +_0803013C: .4byte gUnk_030010A0 +_08030140: + movs r0, #0xc0 + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0x67 + bl sub_0807CD20 +_0803014C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08030150 +sub_08030150: @ 0x08030150 + push {r4, r5, lr} + mov ip, r0 + ldr r2, _08030194 @ =gUnk_030010A0 + adds r5, r2, #0 + adds r5, #0xac + mov r3, ip + adds r3, #0x80 + ldrb r4, [r3] + movs r0, #1 + lsls r0, r4 + ldrh r1, [r5] + bics r1, r0 + mov r0, ip + adds r0, #0x84 + ldr r0, [r0] + lsls r0, r4 + orrs r1, r0 + strh r1, [r5] + ldrb r0, [r3] + lsls r0, r0, #2 + adds r2, #0x6c + adds r0, r0, r2 + mov r4, ip + ldrh r1, [r4, #0x2e] + strh r1, [r0] + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, #1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r4, #0x32] + strh r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08030194: .4byte gUnk_030010A0 + + thumb_func_start sub_08030198 +sub_08030198: @ 0x08030198 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080301B8 @ =gUnk_080CE124 + bl sub_0800129E + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + adds r0, r4, #0 + bl sub_08030150 + pop {r4, pc} + .align 2, 0 +_080301B8: .4byte gUnk_080CE124 + + thumb_func_start sub_080301BC +sub_080301BC: @ 0x080301BC + push {lr} + ldr r2, _080301D0 @ =gUnk_080CE13C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080301D0: .4byte gUnk_080CE13C + + thumb_func_start sub_080301D4 +sub_080301D4: @ 0x080301D4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _080301EE + ldr r1, [r4, #0x4c] + ldr r0, _08030238 @ =gLinkEntity + cmp r1, r0 + bne _080301EE + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] +_080301EE: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r6, r0, #0 + adds r5, r4, #0 + adds r5, #0x81 + cmp r1, #0 + beq _08030216 + ldrb r0, [r5] + cmp r1, r0 + beq _08030216 + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #6 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080309E8 +_08030216: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08030228 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08030228: + ldrb r0, [r6] + strb r0, [r5] + ldr r1, _0803023C @ =gUnk_080CE124 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030238: .4byte gLinkEntity +_0803023C: .4byte gUnk_080CE124 + + thumb_func_start sub_08030240 +sub_08030240: @ 0x08030240 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #6 + bne _08030260 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08030260 + adds r0, r4, #0 + bl sub_08004274 +_08030260: + adds r0, r4, #0 + bl sub_08001242 + pop {r4, pc} + + thumb_func_start nullsub_17 +nullsub_17: @ 0x08030268 + bx lr + .align 2, 0 + + thumb_func_start sub_0803026C +sub_0803026C: @ 0x0803026C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xe] + adds r3, r4, #0 + adds r3, #0x80 + strb r0, [r3] + ldrb r2, [r3] + lsls r0, r2, #2 + ldr r5, _080302A8 @ =gUnk_0300110C + adds r0, r0, r5 + ldrh r1, [r0] + cmp r1, #0 + beq _080302AC + strh r1, [r4, #0x2e] + ldrh r0, [r0, #2] + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x84 + adds r0, r5, #0 + adds r0, #0x40 + ldrh r0, [r0] + ldrb r3, [r3] + asrs r0, r3 + movs r1, #1 + ands r0, r1 + str r0, [r2] + b _080302BA + .align 2, 0 +_080302A8: .4byte gUnk_0300110C +_080302AC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, _08030304 @ =0x0000047D + asrs r1, r2 + movs r2, #1 + ands r1, r2 + str r1, [r0] +_080302BA: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080302C6 + bl sub_0804B128 + str r0, [r4, #0x7c] +_080302C6: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08030580 + adds r0, r4, #0 + bl sub_080307EC + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bne _08030302 + ldr r0, _08030308 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, #0x80 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08030302 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #7 + bl sub_080309C8 +_08030302: + pop {r4, r5, pc} + .align 2, 0 +_08030304: .4byte 0x0000047D +_08030308: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803030C +sub_0803030C: @ 0x0803030C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0803086C + adds r5, r0, #0 + cmp r5, #0 + bne _08030334 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _08030334 + adds r0, r4, #0 + bl sub_08030650 + cmp r0, #0 + beq _08030334 + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] +_08030334: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08030338 +sub_08030338: @ 0x08030338 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _0803034C + adds r0, r4, #0 + bl sub_080309A8 + b _08030368 +_0803034C: + adds r0, r4, #0 + movs r1, #3 + bl sub_08004276 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _08030368 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _08030368 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_08030368: + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + adds r1, r2, #0 + cmp r1, #1 + bne _0803039C + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0803037C + strb r1, [r4, #0xd] +_0803037C: + ldrb r0, [r4, #0xe] + adds r2, r0, #1 + strb r2, [r4, #0xe] + ands r1, r2 + cmp r1, #0 + beq _0803042C + ldr r1, _08030398 @ =gUnk_080CE160 + movs r0, #6 + ands r2, r0 + lsrs r0, r2, #1 + adds r0, r0, r1 + ldrb r1, [r0] + b _08030426 + .align 2, 0 +_08030398: .4byte gUnk_080CE160 +_0803039C: + cmp r1, #2 + bne _080303D4 + movs r0, #0 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _080303C0 + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #0xb + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + ldr r0, _080303D0 @ =gUnk_080FD2F0 + str r0, [r4, #0x48] +_080303C0: + adds r0, r4, #0 + bl sub_08030834 + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 + b _0803042C + .align 2, 0 +_080303D0: .4byte gUnk_080FD2F0 +_080303D4: + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _08030426 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _08030412 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x7a + movs r1, #0 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080306C4 + adds r0, r4, #0 + bl sub_080309E8 + b _0803042C +_08030412: + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1a + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x10 + strb r0, [r4, #0x15] + b _0803042C +_08030426: + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] +_0803042C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030430 +sub_08030430: @ 0x08030430 + push {r4, lr} + adds r4, r0, #0 + bl sub_08030A04 + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _0803044A + adds r0, r4, #0 + bl sub_08004274 +_0803044A: + adds r0, r4, #0 + bl sub_080309A8 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _0803045E + subs r0, #1 + strh r0, [r1] +_0803045E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08030470 + adds r0, r4, #0 + bl sub_080306C4 +_08030470: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030474 +sub_08030474: @ 0x08030474 + 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 _0803049C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + bl sub_080309E8 + b _080304BA +_0803049C: + adds r0, r4, #0 + bl sub_080305BC + cmp r0, #0 + beq _080304AE + adds r0, r4, #0 + bl sub_08030590 + b _080304BA +_080304AE: + adds r0, r4, #0 + bl sub_080307D4 + adds r0, r4, #0 + bl sub_080309A8 +_080304BA: + pop {r4, pc} + + thumb_func_start sub_080304BC +sub_080304BC: @ 0x080304BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080309A8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _080304DE + adds r0, r4, #0 + bl sub_08030580 + b _080304F0 +_080304DE: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _080304F0 + strb r2, [r3] + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 +_080304F0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080304F4 +sub_080304F4: @ 0x080304F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080309A8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08030520 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #5 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080307EC +_08030520: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030524 +sub_08030524: @ 0x08030524 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803053E + adds r0, r2, #0 + bl sub_080309A8 + b _08030552 +_0803053E: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bne _08030552 + movs r0, #0 + strb r0, [r3] + movs r0, #0x95 + lsls r0, r0, #1 + bl sub_08004488 +_08030552: + pop {pc} + + thumb_func_start sub_08030554 +sub_08030554: @ 0x08030554 + push {r4, lr} + adds r4, r0, #0 + bl sub_080309A8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803057C + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080306C4 +_0803057C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030580 +sub_08030580: @ 0x08030580 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #4 + bl sub_080309C8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08030590 +sub_08030590: @ 0x08030590 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #1 + strb r0, [r1] + adds r1, #4 + strb r0, [r1] + ldr r0, _080305B8 @ =gUnk_080FD2F8 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #5 + bl sub_080309C8 + adds r0, r4, #0 + bl sub_080307EC + pop {r4, pc} + .align 2, 0 +_080305B8: .4byte gUnk_080FD2F8 + + thumb_func_start sub_080305BC +sub_080305BC: @ 0x080305BC + push {r4, lr} + adds r4, r0, #0 + ldrh r1, [r4, #0x2e] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r1 + movs r3, #0 + cmp r0, #8 + bne _080305D0 + movs r3, #1 +_080305D0: + ldrh r0, [r4, #0x32] + ands r2, r0 + cmp r2, #8 + bne _080305DC + movs r0, #2 + orrs r3, r0 +_080305DC: + cmp r3, #3 + bne _080305E4 + movs r0, #1 + b _0803064C +_080305E4: + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0803061E + movs r0, #1 + ands r0, r3 + cmp r0, #0 + bne _08030608 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803064A + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + b _08030648 +_08030608: + cmp r2, #8 + ble _08030610 + movs r0, #0x10 + b _08030612 +_08030610: + movs r0, #0 +_08030612: + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _0803064A +_0803061E: + movs r0, #2 + ands r3, r0 + cmp r3, #0 + bne _08030638 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803064A + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + b _08030648 +_08030638: + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + ble _08030646 + movs r0, #8 + b _08030648 +_08030646: + movs r0, #0x18 +_08030648: + strb r0, [r4, #0x15] +_0803064A: + movs r0, #0 +_0803064C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030650 +sub_08030650: @ 0x08030650 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08030668 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _080306B6 +_08030664: + movs r0, #1 + b _080306B8 +_08030668: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _08030698 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080306B6 + ldr r0, _08030694 @ =gUnk_020000B0 + ldr r0, [r0] + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r0, #0x10 + cmp r0, #0x20 + bhi _080306B6 + b _08030664 + .align 2, 0 +_08030694: .4byte gUnk_020000B0 +_08030698: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080306B6 + ldr r0, _080306BC @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r0, _080306C0 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + adds r0, #0xa8 + cmp r1, r0 + blt _08030664 +_080306B6: + movs r0, #0 +_080306B8: + pop {r4, pc} + .align 2, 0 +_080306BC: .4byte gUnk_020000B0 +_080306C0: .4byte gUnk_03000BF0 + + thumb_func_start sub_080306C4 +sub_080306C4: @ 0x080306C4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080307C0 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + beq _080307C0 + movs r0, #0x18 + strb r0, [r4, #0xe] + ldr r0, _080307B0 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0800132C + adds r5, r0, #0 + cmp r5, #0xff + beq _080307CC + movs r0, #0 + mov r8, r0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + cmp r1, #0 + bne _0803070E + ldrb r0, [r4, #0x14] + adds r6, r4, #0 + adds r6, #0x82 + cmp r0, #0xff + bne _0803072A +_0803070E: + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #3 + beq _0803072A + adds r0, r5, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + movs r1, #1 + mov r8, r1 +_0803072A: + mov r7, r8 + cmp r7, #0 + bne _08030746 + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #3 + adds r1, #4 + adds r1, r5, r1 + movs r0, #0x18 + ands r1, r0 + strb r1, [r4, #0x15] +_08030746: + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + ldr r1, _080307B4 @ =gUnk_02027EB4 + mov ip, r1 + cmp r0, #2 + bne _08030758 + ldr r7, _080307B8 @ =gUnk_0200D654 + mov ip, r7 +_08030758: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r3, _080307BC @ =gUnk_080CE164 + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + adds r2, r0, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r7, #0x32 + ldrsh r2, [r4, r7] + adds r0, #1 + adds r0, r0, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + mov r0, ip + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _0803079E + movs r0, #4 + adds r1, r5, #0 + ands r1, r0 + eors r1, r0 + lsls r1, r1, #1 + movs r0, #0x10 + ands r5, r0 + orrs r1, r5 + strb r1, [r4, #0x15] + movs r0, #0 + mov r8, r0 +_0803079E: + adds r0, r4, #0 + bl sub_080307D4 + ldrb r0, [r6] + lsls r0, r0, #1 + mov r1, r8 + orrs r0, r1 + strb r0, [r6] + b _080307CC + .align 2, 0 +_080307B0: .4byte gUnk_020000B0 +_080307B4: .4byte gUnk_02027EB4 +_080307B8: .4byte gUnk_0200D654 +_080307BC: .4byte gUnk_080CE164 +_080307C0: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xa0 + strh r0, [r4, #0x24] +_080307CC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080307D4 +sub_080307D4: @ 0x080307D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r2, #0x14] + cmp r1, r0 + beq _080307EA + strb r1, [r2, #0x14] + adds r0, r2, #0 + bl sub_080309C8 +_080307EA: + pop {pc} + + thumb_func_start sub_080307EC +sub_080307EC: @ 0x080307EC + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _0803082C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r5, #0x78 + strh r0, [r5] + ldr r0, _08030830 @ =0x00004022 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_0803082C: .4byte gUnk_03000BF0 +_08030830: .4byte 0x00004022 + + thumb_func_start sub_08030834 +sub_08030834: @ 0x08030834 + push {r4, r5, r6, lr} + adds r1, r0, #0 + adds r1, #0x78 + ldrh r5, [r1] + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _08030868 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r0, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08030868: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803086C +sub_0803086C: @ 0x0803086C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + ldr r0, [r5, #0x7c] + cmp r0, #0 + bne _08030880 + b _0803099C +_08030880: + ldr r0, _08030928 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803088E + b _0803098A +_0803088E: + ldr r0, _0803092C @ =gUnk_03000BF0 + mov sb, r0 + ldrh r0, [r5, #0x2e] + mov r2, sb + ldrh r1, [r2, #6] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + ldrh r0, [r5, #0x32] + ldrh r1, [r2, #8] + subs r0, r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + movs r3, #0x2e + ldrsh r0, [r5, r3] + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + mov r3, sb + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + movs r0, #0x38 + adds r0, r0, r5 + mov r8, r0 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080002B0 + ldr r1, _08030930 @ =0x00004049 + mov sl, r1 + cmp r0, sl + bne _08030950 + adds r0, r7, #0 + adds r1, r6, #0 + movs r2, #2 + movs r3, #0xc + bl sub_0800293E + cmp r0, #0 + beq _0803093C + subs r1, r6, #4 + adds r0, r7, #0 + movs r2, #2 + movs r3, #4 + bl sub_0800293E + cmp r0, #0 + beq _0803098A + ldr r2, _08030934 @ =gLinkEntity + 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, [r5, #0x7c] + bl sub_08080840 + ldr r0, _08030938 @ =gUnk_030010A0 + adds r1, r5, #0 + adds r1, #0x80 + ldrb r1, [r1] + adds r0, #0xae + strh r1, [r0] + movs r0, #1 + b _0803099E + .align 2, 0 +_08030928: .4byte gUnk_03003F80 +_0803092C: .4byte gUnk_03000BF0 +_08030930: .4byte 0x00004049 +_08030934: .4byte gLinkEntity +_08030938: .4byte gUnk_030010A0 +_0803093C: + ldr r0, _0803094C @ =0x00004022 + mov r3, r8 + ldrb r2, [r3] + adds r1, r4, #0 + bl sub_0800015E + b _0803098A + .align 2, 0 +_0803094C: .4byte 0x00004022 +_08030950: + adds r1, r6, #6 + adds r0, r7, #0 + movs r2, #2 + movs r3, #5 + bl sub_0800293E + cmp r0, #0 + beq _0803098A + movs r4, #0x2e + ldrsh r1, [r5, r4] + mov r2, sb + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r5, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, r8 + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E +_0803098A: + 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 + strb r0, [r2] +_0803099C: + movs r0, #0 +_0803099E: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080309A8 +sub_080309A8: @ 0x080309A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _080309C4 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _080309C4 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_080309C4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080309C8 +sub_080309C8: @ 0x080309C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _080309E4 + ldrb r0, [r4, #0x1e] + cmp r0, #0x25 + bne _080309E4 + movs r0, #0x19 + strb r0, [r4, #0x1e] +_080309E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080309E8 +sub_080309E8: @ 0x080309E8 + push {lr} + adds r1, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #4 + bhi _080309FA + movs r0, #0x90 + lsls r0, r0, #1 + b _08030A00 +_080309FA: + cmp r0, #8 + bhi _08030A02 + movs r0, #0xe0 +_08030A00: + strh r0, [r1, #0x24] +_08030A02: + pop {pc} + + thumb_func_start sub_08030A04 +sub_08030A04: @ 0x08030A04 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08030A24 + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + ldr r0, _08030A28 @ =0x00000101 + bl sub_08004488 +_08030A24: + pop {r4, pc} + .align 2, 0 +_08030A28: .4byte 0x00000101 + + thumb_func_start sub_08030A2C +sub_08030A2C: @ 0x08030A2C + push {lr} + ldr r1, _08030A38 @ =gUnk_080CE288 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08030A38: .4byte gUnk_080CE288 + + thumb_func_start sub_08030A3C +sub_08030A3C: @ 0x08030A3C + push {lr} + ldr r2, _08030A50 @ =gUnk_080CE2A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08030A50: .4byte gUnk_080CE2A0 + + thumb_func_start sub_08030A54 +sub_08030A54: @ 0x08030A54 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r6, [r0] + cmp r6, #0x95 + beq _08030A68 + adds r5, r4, #0 + adds r5, #0x45 + cmp r6, #0x8e + bne _08030B0E +_08030A68: + ldr r2, [r4, #0x4c] + ldrb r0, [r2, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0x10 + eors r0, r1 + asrs r0, r0, #3 + adds r5, r4, #0 + adds r5, #0x45 + ldrb r1, [r4, #0x14] + cmp r0, r1 + bne _08030B0E + movs r3, #1 + ands r3, r0 + cmp r3, #0 + beq _08030AC0 + movs r3, #0x32 + ldrsh r0, [r2, r3] + movs r3, #0x36 + ldrsh r1, [r2, r3] + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r3, #0x36 + ldrsh r2, [r4, r3] + adds r1, r1, r2 + subs r0, r0, r1 + adds r0, #0x14 + cmp r0, #0x10 + bhi _08030B0E + cmp r6, #0x8e + bne _08030AAE + movs r0, #0 + b _08030AB2 +_08030AAE: + ldrb r0, [r5] + subs r0, #1 +_08030AB2: + strb r0, [r5] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x10 + strb r0, [r1] + movs r0, #0xfe + b _08030AE0 +_08030AC0: + movs r1, #0x2e + ldrsh r0, [r2, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r0, #8 + cmp r0, #0x10 + bhi _08030B0E + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _08030AEC + adds r0, r4, #0 + bl sub_08031320 + movs r0, #0x86 + lsls r0, r0, #1 +_08030AE0: + bl sub_08004488 + adds r0, r4, #0 + bl sub_08031344 + b _08030B0E +_08030AEC: + cmp r6, #0x8e + bne _08030AF4 + strb r3, [r5] + b _08030AFA +_08030AF4: + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_08030AFA: + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf + strb r0, [r1] + movs r0, #0xfe + bl sub_08004488 + adds r0, r4, #0 + bl sub_08031344 +_08030B0E: + ldrb r0, [r5] + cmp r0, #0 + bne _08030B24 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x78 + strb r0, [r1] +_08030B24: + ldr r1, _08030B30 @ =gUnk_080CE288 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030B30: .4byte gUnk_080CE288 + + thumb_func_start sub_08030B34 +sub_08030B34: @ 0x08030B34 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0 + beq _08030B52 + subs r0, #1 + strb r0, [r1] + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + b _08030B70 +_08030B52: + adds r0, r4, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08030B6A + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX +_08030B6A: + adds r0, r4, #0 + bl sub_0804A7D4 +_08030B70: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_18 +nullsub_18: @ 0x08030B74 + bx lr + .align 2, 0 + + thumb_func_start sub_08030B78 +sub_08030B78: @ 0x08030B78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + ldrh r2, [r4, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r4, #0x32] + ands r1, r0 + adds r1, #0xc + strh r1, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + 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] + adds r1, #8 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + bl sub_08030F00 + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r0, #0 + beq _08030BE0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _08030BE8 +_08030BE0: + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_08030BE8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030BEC +sub_08030BEC: @ 0x08030BEC + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _08030C08 + bl sub_0807CBE4 + cmp r0, #0 + beq _08030C08 + adds r0, r4, #0 + bl sub_08031320 +_08030C08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030C0C +sub_08030C0C: @ 0x08030C0C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08030C1C + subs r0, #1 + strb r0, [r4, #0xe] + b _08030C68 +_08030C1C: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08030C68 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, [r4, #0x48] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r4, r3] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldr r2, _08030C6C @ =gUnk_020000B0 + ldr r3, [r2] + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + bl sub_080045D4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 +_08030C68: + pop {r4, r5, pc} + .align 2, 0 +_08030C6C: .4byte gUnk_020000B0 + + thumb_func_start sub_08030C70 +sub_08030C70: @ 0x08030C70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08030C98 + ldr r2, _08030C94 @ =gUnk_080CE2BC + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + b _08030CCC + .align 2, 0 +_08030C94: .4byte gUnk_080CE2BC +_08030C98: + 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 _08030CCC + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08030E58 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08030FB4 +_08030CCC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030CD0 +sub_08030CD0: @ 0x08030CD0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #1 + beq _08030D0C + cmp r0, #2 + beq _08030D1A + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08030D66 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x79 + ldrb r1, [r0] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08030D66 + b _08030D5A +_08030D0C: + adds r0, r4, #0 + bl sub_08031024 + adds r0, r4, #0 + bl sub_08030E3C + b _08030D66 +_08030D1A: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030D34 + adds r0, r4, #0 + adds r0, #0x7f + ldrb r0, [r0] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08030D34: + adds r0, r4, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _08030D44 + adds r0, r4, #0 + bl sub_08031250 +_08030D44: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08030D66 + adds r0, r4, #0 + bl sub_08030E70 + b _08030D66 +_08030D5A: + movs r0, #0 + movs r1, #5 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] +_08030D66: + pop {r4, r5, pc} + + thumb_func_start sub_08030D68 +sub_08030D68: @ 0x08030D68 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #7 + ands r0, r1 + cmp r0, #1 + beq _08030DA0 + cmp r0, #2 + beq _08030DC4 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030E1C + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08030DFC + b _08030DF4 +_08030DA0: + ldrb r0, [r4, #0x14] + adds r1, r0, #0 + cmp r1, #2 + beq _08030DBC + cmp r1, #2 + bls _08030DB0 + subs r0, #1 + b _08030DB2 +_08030DB0: + adds r0, #1 +_08030DB2: + movs r1, #3 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x7f + strb r0, [r1] +_08030DBC: + adds r0, r4, #0 + bl sub_08030E3C + b _08030E1C +_08030DC4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08030DDE + adds r0, r4, #0 + adds r0, #0x7f + ldrb r0, [r0] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08030DDE: + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08030E1C + adds r0, r4, #0 + bl sub_08030E70 + b _08030E1C +_08030DF4: + adds r0, r4, #0 + bl sub_08030E58 + b _08030E1C +_08030DFC: + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _08030E1C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 + adds r0, r4, #0 + bl sub_08030F00 +_08030E1C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08030E20 +sub_08030E20: @ 0x08030E20 + 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 _08030E3A + movs r0, #2 + strb r0, [r4, #0xc] +_08030E3A: + pop {r4, pc} + + thumb_func_start sub_08030E3C +sub_08030E3C: @ 0x08030E3C + push {lr} + adds r2, r0, #0 + adds r2, #0x5a + movs r1, #0 + strb r1, [r2] + movs r1, #0x8c + lsls r1, r1, #9 + str r1, [r0, #0x20] + ldr r0, _08030E54 @ =0x00000157 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08030E54: .4byte 0x00000157 + + thumb_func_start sub_08030E58 +sub_08030E58: @ 0x08030E58 + adds r2, r0, #0 + movs r0, #0 + movs r1, #4 + strb r1, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x7a + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + bx lr + + thumb_func_start sub_08030E70 +sub_08030E70: @ 0x08030E70 + push {lr} + bl sub_08030E80 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_08004488 + pop {pc} + + thumb_func_start sub_08030E80 +sub_08030E80: @ 0x08030E80 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0x14] + lsls r5, r0, #2 + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08030EC0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08030EFC @ =gUnk_080CE2F4 + adds r0, r5, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + adds r0, r5, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08030EC0: + movs r0, #0xf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08030EFA + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, _08030EFC @ =gUnk_080CE2F4 + adds r0, r5, #2 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r4, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + adds r0, r5, #3 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_08030EFA: + pop {r4, r5, r6, pc} + .align 2, 0 +_08030EFC: .4byte gUnk_080CE2F4 + + thumb_func_start sub_08030F00 +sub_08030F00: @ 0x08030F00 + push {r4, r5, r6, lr} + mov r6, sl + mov r5, sb + mov r4, r8 + push {r4, r5, r6} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _08030FAC @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #8 + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + adds r1, #0x14 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x80 + strh r0, [r1] + adds r0, r4, #1 + mov sl, r0 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x82 + strh r0, [r1] + movs r3, #0x40 + adds r3, r3, r4 + mov sb, r3 + ldrb r1, [r6] + mov r0, sb + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x84 + strh r0, [r1] + movs r0, #0x41 + adds r0, r0, r4 + mov r8, r0 + ldrb r1, [r6] + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x86 + strh r0, [r1] + ldr r5, _08030FB0 @ =0x00004022 + ldrb r2, [r6] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, sl + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, sb + bl sub_0800015E + ldrb r2, [r6] + adds r0, r5, #0 + mov r1, r8 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, pc} + .align 2, 0 +_08030FAC: .4byte gUnk_03000BF0 +_08030FB0: .4byte 0x00004022 + + thumb_func_start sub_08030FB4 +sub_08030FB4: @ 0x08030FB4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r0, #0x2e + ldrsh r4, [r6, r0] + ldr r1, _08031020 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #8 + 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] + adds r1, #0x14 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r0, r6, #0 + adds r0, #0x80 + ldrh r0, [r0] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x82 + ldrh r0, [r0] + adds r1, r4, #1 + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x84 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x40 + ldrb r2, [r5] + bl sub_0800015E + adds r0, r6, #0 + adds r0, #0x86 + ldrh r0, [r0] + adds r4, #0x41 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08031020: .4byte gUnk_03000BF0 + + thumb_func_start sub_08031024 +sub_08031024: @ 0x08031024 + 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 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + adds r2, r7, #0 + adds r2, #0x79 + ldrb r0, [r2] + cmp r0, #0 + bne _08031084 + cmp r1, #0 + beq _08031074 + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r2, [r7, #0x48] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r7, r3] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldr r2, _08031070 @ =gUnk_020000B0 + ldr r3, [r2] + movs r4, #0x2e + ldrsh r2, [r3, r4] + movs r4, #0x32 + ldrsh r3, [r3, r4] + b _080311E8 + .align 2, 0 +_08031070: .4byte gUnk_020000B0 +_08031074: + movs r0, #1 + strb r0, [r2] + adds r0, r7, #0 + adds r0, #0x78 + strb r1, [r0] + movs r1, #0x2e + ldrsh r0, [r7, r1] + b _080311D8 +_08031084: + cmp r1, #0 + beq _0803108E + movs r0, #0 + strb r0, [r2] + b _080311EE +_0803108E: + adds r0, r7, #0 + adds r0, #0x78 + ldrb r2, [r0] + adds r1, r2, #0 + mov sl, r0 + cmp r1, #0 + bne _0803109E + b _080311D4 +_0803109E: + cmp r1, #1 + bne _080310E2 + movs r0, #0x80 + orrs r0, r2 + mov r3, sl + strb r0, [r3] + movs r4, #0x2e + ldrsh r0, [r7, r4] + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r7, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r7, #0 + adds r3, #0x76 + ldrh r3, [r3] + bl sub_080045D4 + strb r0, [r7, #0x15] + adds r0, #4 + movs r2, #0x18 + ands r0, r2 + adds r1, r7, #0 + adds r1, #0x7b + strb r0, [r1] + ldrb r3, [r7, #0x15] + cmp r0, r3 + bhs _080310DC + adds r0, #8 + ands r0, r2 + b _080310F0 +_080310DC: + subs r0, #8 + ands r0, r2 + b _080310F0 +_080310E2: + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _080310F2 + ldrb r0, [r7, #0x15] + movs r1, #0x10 + eors r0, r1 +_080310F0: + strb r0, [r7, #0x15] +_080310F2: + mov r4, sl + ldrb r2, [r4] + movs r0, #0x70 + ands r0, r2 + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08031120 + lsrs r0, r0, #0x19 + movs r1, #0x8f + ands r1, r2 + orrs r0, r1 + strb r0, [r4] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080311EE + adds r0, r7, #0 + adds r0, #0x7b + ldrb r0, [r0] + strb r0, [r7, #0x15] + movs r0, #0 + strb r0, [r4] + b _080311EE +_08031120: + movs r0, #0x7b + adds r0, r0, r7 + mov sb, r0 + ldrb r4, [r0] + lsrs r4, r4, #1 + movs r1, #0x2e + ldrsh r0, [r7, r1] + ldr r5, _080311B4 @ =gUnk_080CE2C0 + adds r1, r4, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r4, #1 + adds r2, r2, r5 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r3, #0x38 + adds r3, r3, r7 + mov r8, r3 + ldrb r2, [r3] + bl sub_080002A4 + adds r6, r0, #0 + movs r1, #0x2e + ldrsh r0, [r7, r1] + adds r1, r4, #2 + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r4, #3 + adds r4, r4, r5 + movs r2, #0 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + mov r3, r8 + ldrb r2, [r3] + bl sub_080002A4 + adds r1, r0, #0 + ldr r2, _080311B8 @ =gUnk_080B3E80 + adds r6, r6, r2 + ldrb r0, [r6] + mov r3, sb + cmp r0, #0 + bne _08031194 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0 + beq _080311C8 +_08031194: + movs r0, #1 + cmp r0, #0 + beq _080311C8 + ldrb r0, [r7, #0x15] + lsrs r0, r0, #3 + ldrb r4, [r7, #0x14] + cmp r0, r4 + bne _080311BC + mov r0, sl + ldrb r1, [r0] + movs r0, #0x20 + orrs r0, r1 + mov r1, sl + strb r0, [r1] + b _080311EE + .align 2, 0 +_080311B4: .4byte gUnk_080CE2C0 +_080311B8: .4byte gUnk_080B3E80 +_080311BC: + mov r2, sl + ldrb r1, [r2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2] + b _080311EE +_080311C8: + ldrb r0, [r3] + movs r1, #0 + strb r0, [r7, #0x15] + mov r3, sl + strb r1, [r3] + b _080311EE +_080311D4: + movs r4, #0x2e + ldrsh r0, [r7, r4] +_080311D8: + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r7, #0 + adds r2, #0x74 + ldrh r2, [r2] + adds r3, r7, #0 + adds r3, #0x76 + ldrh r3, [r3] +_080311E8: + bl sub_080045D4 + strb r0, [r7, #0x15] +_080311EE: + ldrb r0, [r7, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + ldrb r3, [r7, #0x14] + cmp r0, r3 + bne _0803120C + adds r1, r7, #0 + adds r1, #0x7a + movs r0, #1 + strb r0, [r1] + ldrb r0, [r7, #0x14] + adds r1, #5 + b _08031232 +_0803120C: + adds r1, r7, #0 + adds r1, #0x7a + movs r0, #0 + strb r0, [r1] + ldrb r0, [r7, #0x15] + ldrb r2, [r7, #0x14] + lsls r1, r2, #3 + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0x10 + bls _08031228 + subs r0, r2, #1 + b _0803122A +_08031228: + adds r0, r2, #1 +_0803122A: + movs r1, #3 + ands r0, r1 + adds r1, r7, #0 + adds r1, #0x7f +_08031232: + strb r0, [r1] + ldrb r0, [r7, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0 + strb r0, [r7, #0x15] + strh r1, [r7, #0x2c] + strh r1, [r7, #0x30] + 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_08031250 +sub_08031250: @ 0x08031250 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r4, [r6, #0x14] + lsls r4, r4, #2 + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r5, _0803130C @ =gUnk_080CE2C0 + adds r0, r4, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r0, r4, #1 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r3, r0 + adds r0, r6, #0 + movs r1, #9 + bl sub_08008796 + movs r0, #0x2e + ldrsh r2, [r6, r0] + adds r0, r4, #2 + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r4, #3 + adds r4, r4, r5 + movs r0, #0 + ldrsb r0, [r4, r0] + adds r3, r3, r0 + adds r0, r6, #0 + movs r1, #9 + bl sub_08008796 + adds r2, r6, #0 + adds r2, #0x79 + ldrb r0, [r2] + cmp r0, #0 + beq _08031316 + movs r3, #0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r1, r6, #0 + adds r1, #0x74 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bhi _080312C8 + strh r1, [r6, #0x2e] + movs r3, #0x80 +_080312C8: + movs r1, #0x32 + ldrsh r0, [r6, r1] + adds r1, r6, #0 + adds r1, #0x76 + ldrh r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bhi _080312E2 + strh r1, [r6, #0x32] + ldrb r0, [r2] + orrs r3, r0 + strb r3, [r2] +_080312E2: + ldrb r1, [r2] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _0803131C + adds r0, r6, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803131C + adds r2, r6, #0 + adds r2, #0x78 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08031310 + movs r0, #0x82 + strb r0, [r2] + b _0803131C + .align 2, 0 +_0803130C: .4byte gUnk_080CE2C0 +_08031310: + movs r0, #1 + strb r0, [r2] + b _0803131C +_08031316: + adds r0, r6, #0 + bl sub_080AEF88 +_0803131C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08031320 +sub_08031320: @ 0x08031320 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldr r1, _08031340 @ =gUnk_080FD308 + str r1, [r0, #0x48] + movs r1, #0xa + bl sub_08004260 + pop {pc} + .align 2, 0 +_08031340: .4byte gUnk_080FD308 + + thumb_func_start sub_08031344 +sub_08031344: @ 0x08031344 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x4c] + bl sub_08017A90 + adds r3, r0, #0 + cmp r3, #0 + beq _0803136C + ldrb r0, [r3, #0x14] + lsls r0, r0, #1 + ldr r1, _08031370 @ =gUnk_080CE304 + adds r0, r0, r1 + ldrb r1, [r0] + adds r2, r3, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r1, [r0, #1] + adds r0, r3, #0 + adds r0, #0x63 + strb r1, [r0] +_0803136C: + pop {pc} + .align 2, 0 +_08031370: .4byte gUnk_080CE304 + + thumb_func_start sub_08031374 +sub_08031374: @ 0x08031374 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08031390 @ =gUnk_080CE448 + 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 +_08031390: .4byte gUnk_080CE448 + + thumb_func_start sub_08031394 +sub_08031394: @ 0x08031394 + push {lr} + ldr r2, _080313A8 @ =gUnk_080CE460 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080313A8: .4byte gUnk_080CE460 + + thumb_func_start sub_080313AC +sub_080313AC: @ 0x080313AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #3 + bne _080313C8 + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x3c + strb r0, [r1] + adds r0, r4, #0 + bl sub_08031600 +_080313C8: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080313DA + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080313DA: + ldr r1, _080313E4 @ =gUnk_080CE448 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_080313E4: .4byte gUnk_080CE448 + + thumb_func_start sub_080313E8 +sub_080313E8: @ 0x080313E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08031404 + ldr r0, _08031408 @ =gUnk_080CE470 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08031404: + pop {r4, pc} + .align 2, 0 +_08031408: .4byte gUnk_080CE470 + + thumb_func_start sub_0803140C +sub_0803140C: @ 0x0803140C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08031418 +sub_08031418: @ 0x08031418 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08031420 +sub_08031420: @ 0x08031420 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08031432 + adds r0, r4, #0 + bl sub_0804A7D4 +_08031432: + pop {r4, pc} + + thumb_func_start sub_08031434 +sub_08031434: @ 0x08031434 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + rsbs r0, r0, #0 + adds r3, r0, #0 + movs r0, #0xff + strb r0, [r4, #0x14] + movs r2, #1 + strb r2, [r4, #0x1c] + ldrh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08031460 + adds r0, r4, #0 + bl sub_08031600 + b _0803147A +_08031460: + strb r2, [r4, #0xc] + movs r0, #0 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0803147C @ =0x0000FF80 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0x1e] + orrs r0, r3 + strb r0, [r4, #0x1e] +_0803147A: + pop {r4, pc} + .align 2, 0 +_0803147C: .4byte 0x0000FF80 + + thumb_func_start sub_08031480 +sub_08031480: @ 0x08031480 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080314CC + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08031496 + subs r0, #1 + strb r0, [r4, #0xe] + b _080314FA +_08031496: + adds r0, r4, #0 + bl sub_08031600 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xd] + 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, _080314C8 @ =0x0000012D + bl sub_080A3268 + b _080314FA + .align 2, 0 +_080314C8: .4byte 0x0000012D +_080314CC: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080314FA + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x13 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08016A04 + movs r0, #0x84 + bl sub_08004488 +_080314FA: + pop {r4, pc} + + thumb_func_start sub_080314FC +sub_080314FC: @ 0x080314FC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08031510 + subs r0, #1 + strb r0, [r4, #0xf] + b _080315BA +_08031510: + adds r5, r4, #0 + adds r5, #0x78 + ldrb r0, [r5] + cmp r0, #0 + beq _0803151E + subs r0, #1 + strb r0, [r5] +_0803151E: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08031578 + ldrb r0, [r5] + cmp r0, #0 + bne _080315A2 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080315A2 + ldr r0, _08031574 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0xc + bl sub_0804A044 + adds r1, r0, #0 + cmp r1, #0xff + beq _080315A2 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xd0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x7a + strh r0, [r2] + strb r1, [r4, #0x15] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _080315BA + .align 2, 0 +_08031574: .4byte gUnk_020000B0 +_08031578: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080315A2 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _080315A2 + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080315A2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080315B4 + adds r0, r4, #0 + bl sub_08031600 +_080315B4: + adds r0, r4, #0 + bl sub_0803163C +_080315BA: + pop {r4, r5, pc} + + thumb_func_start sub_080315BC +sub_080315BC: @ 0x080315BC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080315D4 + subs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + b _080315FC +_080315D4: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _080315EE + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803163C + cmp r0, #0 + bne _080315FC +_080315EE: + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0x1e + strb r0, [r1] + adds r0, r4, #0 + bl sub_08031600 +_080315FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031600 +sub_08031600: @ 0x08031600 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _08031638 + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08031638: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803163C +sub_0803163C: @ 0x0803163C + push {r4, lr} + adds r4, r0, #0 + bl sub_080002B8 + cmp r0, #0x13 + bne _08031652 + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + lsrs r0, r0, #1 + b _08031658 +_08031652: + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] +_08031658: + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031664 +sub_08031664: @ 0x08031664 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803167C @ =gUnk_080CE530 + 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 +_0803167C: .4byte gUnk_080CE530 + + thumb_func_start sub_08031680 +sub_08031680: @ 0x08031680 + push {lr} + ldr r2, _08031694 @ =gUnk_080CE548 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031694: .4byte gUnk_080CE548 + + thumb_func_start nullsub_152 +nullsub_152: @ 0x08031698 + bx lr + .align 2, 0 + + thumb_func_start sub_0803169C +sub_0803169C: @ 0x0803169C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080316C4 + movs r2, #1 + strb r2, [r4, #0xc] + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r2, [r4, #0xf] + b _080316D4 +_080316C4: + ldr r0, _080316D8 @ =gUnk_080CE554 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080316D4: + pop {r4, pc} + .align 2, 0 +_080316D8: .4byte gUnk_080CE554 + + thumb_func_start sub_080316DC +sub_080316DC: @ 0x080316DC + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_080316E8 +sub_080316E8: @ 0x080316E8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080316F0 +sub_080316F0: @ 0x080316F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08031702 + adds r0, r4, #0 + bl sub_0804A7D4 +_08031702: + pop {r4, pc} + + thumb_func_start sub_08031704 +sub_08031704: @ 0x08031704 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + bl sub_080317F8 + pop {r4, pc} + + thumb_func_start sub_08031714 +sub_08031714: @ 0x08031714 + push {r4, lr} + adds r4, r0, #0 + bl sub_080317B4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803176E + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08031750 + ldrb r1, [r4, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031750 + adds r0, r4, #0 + bl sub_08049EE4 + b _08031766 +_08031750: + ldrb r0, [r4, #0x15] + adds r0, #0x18 + strb r0, [r4, #0x15] + bl sub_08000E50 + movs r1, #0xe + ands r0, r1 + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 +_08031766: + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080317E0 +_0803176E: + pop {r4, pc} + + thumb_func_start sub_08031770 +sub_08031770: @ 0x08031770 + push {r4, lr} + adds r1, r0, #0 + adds r4, r1, #0 + adds r4, #0x80 + ldrh r0, [r4] + cmp r0, #0 + beq _08031790 + subs r0, #1 + strh r0, [r4] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080317B2 + adds r0, r1, #0 + bl sub_08031840 + b _080317B2 +_08031790: + ldr r0, [r1, #0x54] + cmp r0, #0 + bne _080317AA + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r4] + b _080317B2 +_080317AA: + ldr r0, [r0, #4] + cmp r0, #0 + bne _080317B2 + str r0, [r1, #0x54] +_080317B2: + pop {r4, pc} + + thumb_func_start sub_080317B4 +sub_080317B4: @ 0x080317B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x30 + ands r1, r0 + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + cmp r1, #0 + beq _080317D0 + movs r1, #0xc + rsbs r1, r1, #0 + adds r0, r1, #0 +_080317D0: + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080317E0 +sub_080317E0: @ 0x080317E0 + push {lr} + ldrb r1, [r0, #0x15] + adds r1, #2 + movs r2, #0x1c + ands r1, r2 + lsrs r1, r1, #2 + strb r1, [r0, #0x14] + ldrb r1, [r0, #0x14] + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080317F8 +sub_080317F8: @ 0x080317F8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + movs r5, #1 + strb r5, [r4, #0xc] + movs r6, #0 + ldr r1, _08031838 @ =0x0000FFF4 + strh r1, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x38 + strb r5, [r1] + adds r3, r4, #0 + adds r3, #0x3c + ldrb r2, [r3] + movs r1, #0x10 + orrs r1, r2 + strb r1, [r3] + strb r5, [r4, #0x1c] + strb r0, [r4, #0x15] + ldr r0, _0803183C @ =gUnk_080CE560 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_080317E0 + strb r6, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + pop {r4, r5, r6, pc} + .align 2, 0 +_08031838: .4byte 0x0000FFF4 +_0803183C: .4byte gUnk_080CE560 + + thumb_func_start sub_08031840 +sub_08031840: @ 0x08031840 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r1, [r5, #0xa] + movs r0, #0x2d + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _08031862 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r0, #1 + strb r0, [r4, #0xb] +_08031862: + pop {r4, r5, pc} + + thumb_func_start sub_08031864 +sub_08031864: @ 0x08031864 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r4, r0, #0 + cmp r4, #0 + beq _0803189C + adds r0, r5, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08031886 + adds r0, r5, #0 + bl sub_08032338 +_08031886: + ldr r0, _08031898 @ =gUnk_080012C8 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _080318BE + .align 2, 0 +_08031898: .4byte gUnk_080012C8 +_0803189C: + ldr r4, _080318C0 @ =gUnk_080CE56C + adds r0, r5, #0 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r4 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_080318BE: + pop {r4, r5, pc} + .align 2, 0 +_080318C0: .4byte gUnk_080CE56C + + thumb_func_start sub_080318C4 +sub_080318C4: @ 0x080318C4 + push {lr} + ldr r2, _080318D8 @ =gUnk_080CE584 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080318D8: .4byte gUnk_080CE584 + + thumb_func_start sub_080318DC +sub_080318DC: @ 0x080318DC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + adds r0, #0x80 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080318FA + b _08031A36 +_080318FA: + ldrb r0, [r4, #0xa] + adds r5, r4, #0 + adds r5, #0x42 + cmp r0, #1 + bne _080319DE + ldrb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x45 + str r1, [sp] + cmp r0, #6 + bhi _080319AC + ldrb r0, [r5] + cmp r0, #0 + beq _080319AC + ldr r3, [r4, #0x54] + movs r0, #0x29 + adds r0, r0, r4 + mov sb, r0 + movs r1, #0x3e + adds r1, r1, r4 + mov sl, r1 + cmp r3, #0 + beq _08031960 + ldr r0, [r4, #0x50] + str r0, [r3, #0x50] + movs r0, #5 + mov ip, r0 + movs r1, #0x39 + rsbs r1, r1, #0 + mov r8, r1 + movs r7, #8 + movs r6, #0xf4 +_0803193A: + mov r0, ip + strb r0, [r3, #0xc] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r0, [r2] + mov r1, r8 + ands r1, r0 + orrs r1, r7 + strb r1, [r2] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _0803195A + strb r6, [r1] +_0803195A: + ldr r3, [r3, #0x54] + cmp r3, #0 + bne _0803193A +_08031960: + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0803196C + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + b _08031974 +_0803196C: + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08031974 + str r4, [r4, #0x50] +_08031974: + movs r0, #9 + strb r0, [r4, #0xc] + mov r0, sb + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, sb + strb r0, [r1] + mov r1, sl + ldrb r0, [r1] + cmp r0, #0xf + bhi _0803199C + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _080319A2 +_0803199C: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_080319A2: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_080319AC: + ldr r1, [sp] + ldrb r0, [r1] + cmp r0, #0 + bne _080319DE + bl sub_08000E50 + adds r2, r4, #0 + adds r2, #0x3e + movs r1, #7 + ands r0, r1 + ldrb r1, [r2] + adds r0, r0, r1 + subs r0, #4 + movs r1, #0x1f + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + adds r0, r0, r1 + ldrb r1, [r5] + adds r0, r0, r1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_08032338 +_080319DE: + ldrb r0, [r5] + cmp r0, #0 + beq _08031A36 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08031A36 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080319FC + movs r0, #8 + b _080319FE +_080319FC: + movs r0, #9 +_080319FE: + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0xf + bhi _08031A14 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08031A1A +_08031A14: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08031A1A: + strb r0, [r4, #0x18] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r2] + adds r0, r4, #0 + movs r1, #0xe + bl sub_08004260 +_08031A36: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08031A48 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08031A48: + ldr r1, _08031A5C @ =gUnk_080CE56C + adds r0, r4, #0 + bl sub_0804AA30 + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08031A5C: .4byte gUnk_080CE56C + + thumb_func_start sub_08031A60 +sub_08031A60: @ 0x08031A60 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08031A7A + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 +_08031A7A: + adds r0, r4, #0 + bl sub_08001324 + + thumb_func_start nullsub_153 +nullsub_153: @ 0x08031A80 + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_154 +nullsub_154: @ 0x08031A84 + bx lr + .align 2, 0 + + thumb_func_start sub_08031A88 +sub_08031A88: @ 0x08031A88 + push {lr} + ldr r2, _08031A9C @ =gUnk_080CE58C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031A9C: .4byte gUnk_080CE58C + + thumb_func_start sub_08031AA0 +sub_08031AA0: @ 0x08031AA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + bl sub_08000E50 + adds r4, #0x79 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031AC8 +sub_08031AC8: @ 0x08031AC8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xe] + cmp r0, #0 + beq _08031AD8 + subs r0, #1 + strb r0, [r6, #0xe] + b _08031B44 +_08031AD8: + adds r0, r6, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08031B44 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r6, #0 + adds r0, #0x74 + ldrh r4, [r0] + adds r0, r5, #0 + movs r1, #5 + bl __modsi3 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r7, r4, #0 + subs r7, #0x20 + adds r0, r6, #0 + adds r0, #0x76 + ldrh r4, [r0] + lsrs r5, r5, #4 + adds r0, r5, #0 + movs r1, #5 + bl __modsi3 + lsls r0, r0, #4 + adds r4, r4, r0 + subs r4, #0x20 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_080002D4 + cmp r0, #0 + bne _08031B44 + movs r0, #2 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r6, #0x18] + strh r7, [r6, #0x2e] + strh r4, [r6, #0x32] + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_08031B44: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08031B48 +sub_08031B48: @ 0x08031B48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031B6C + movs r0, #0 + strb r0, [r2] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _08031B90 +_08031B6C: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08031B90 + movs r0, #3 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08031B94 @ =gUnk_080CE5B0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08031B90: + pop {r4, pc} + .align 2, 0 +_08031B94: .4byte gUnk_080CE5B0 + + thumb_func_start sub_08031B98 +sub_08031B98: @ 0x08031B98 + push {r4, lr} + adds r4, r0, #0 + bl sub_08031E04 + cmp r0, #0 + beq _08031BDA + movs r0, #5 + strb r0, [r4, #0xc] + ldr r0, _08031BC4 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + ble _08031BC8 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _08031BCE + .align 2, 0 +_08031BC4: .4byte gUnk_020000B0 +_08031BC8: + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_08031BCE: + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08031C1A +_08031BDA: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031BFA + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08031BFA + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] +_08031BFA: + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08031C1A + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08031C1A: + pop {r4, pc} + + thumb_func_start sub_08031C1C +sub_08031C1C: @ 0x08031C1C + 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 _08031C50 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08031C54 @ =gUnk_080CE5B8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08031C50: + pop {r4, pc} + .align 2, 0 +_08031C54: .4byte gUnk_080CE5B8 + + thumb_func_start sub_08031C58 +sub_08031C58: @ 0x08031C58 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + bl sub_08004274 + adds r3, r7, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + beq _08031D54 + ldr r0, _08031D50 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _08031D66 + bl sub_08000E50 + adds r6, r0, #0 + movs r0, #3 + mov sb, r0 + ands r6, r0 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + movs r0, #0 + mov r8, r0 + mov r0, r8 + strb r0, [r4, #0xb] + mov r0, r8 + str r0, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r5, r0, #0 + str r5, [r4, #0x54] + movs r0, #1 + strb r0, [r5, #0xb] + str r4, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r4, [r5, #0x54] + movs r0, #2 + strb r0, [r4, #0xb] + str r5, [r4, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r5, r0, #0 + str r5, [r4, #0x54] + mov r0, sb + strb r0, [r5, #0xb] + str r4, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08031E48 + movs r0, #0x2e + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r5, #0x54] + movs r0, #4 + strb r0, [r1, #0xb] + str r5, [r1, #0x50] + mov r0, r8 + str r0, [r1, #0x54] + adds r0, r1, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, r7, #0 + bl sub_08031E48 + movs r0, #6 + strb r0, [r7, #0xc] + movs r0, #0x14 + strb r0, [r7, #0xe] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r7, #0 + movs r1, #7 + bl sub_08004260 + b _08031D66 + .align 2, 0 +_08031D50: .4byte gUnk_03003DBC +_08031D54: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08031D66 + strb r2, [r3] + ldrb r1, [r7, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7, #0x10] +_08031D66: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08031D70 +sub_08031D70: @ 0x08031D70 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08031D9C + movs r0, #7 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #5 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #9 + ands r0, r1 + strb r0, [r4, #0x18] +_08031D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08031DA0 +sub_08031DA0: @ 0x08031DA0 + push {lr} + adds r1, r0, #0 + ldrb r2, [r1, #0xe] + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + bne _08031DC2 + cmp r2, #0x50 + bne _08031DBA + adds r0, r1, #0 + bl sub_0805E7BC + b _08031DC2 +_08031DBA: + movs r0, #1 + strb r0, [r1, #0xc] + movs r0, #0xb4 + strb r0, [r1, #0xe] +_08031DC2: + pop {pc} + + thumb_func_start sub_08031DC4 +sub_08031DC4: @ 0x08031DC4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08031DE8 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0xb8 + ands r0, r1 + strb r0, [r4, #0x18] + b _08031E00 +_08031DE8: + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _08031E00 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_08031E00: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08031E04 +sub_08031E04: @ 0x08031E04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08031E44 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r3, #6 + ands r3, r0 + ldr r0, _08031E40 @ =gUnk_080CE5C0 + adds r3, r3, r0 + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r0, #0 + ldrsb r0, [r3, r0] + adds r1, r1, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r3, r0] + adds r2, r2, r0 + adds r0, r4, #0 + movs r3, #0x50 + bl sub_0806FCB8 + b _08031E46 + .align 2, 0 +_08031E40: .4byte gUnk_080CE5C0 +_08031E44: + movs r0, #0 +_08031E46: + pop {r4, pc} + + thumb_func_start sub_08031E48 +sub_08031E48: @ 0x08031E48 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x6c + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + str r5, [r4, #0x7c] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08031E90 +sub_08031E90: @ 0x08031E90 + push {lr} + ldr r2, _08031EA4 @ =gUnk_080CE5C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08031EA4: .4byte gUnk_080CE5C8 + + thumb_func_start sub_08031EA8 +sub_08031EA8: @ 0x08031EA8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3a + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x80 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + ldrb r0, [r4, #0xb] + movs r1, #4 + subs r1, r1, r0 + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + strh r0, [r4, #0x36] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x79 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08031EE8 +sub_08031EE8: @ 0x08031EE8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x20] + subs r0, r0, r1 + str r0, [r4, #0x34] + ldr r0, _08031F4C @ =0xFFFFE800 + adds r1, r1, r0 + str r1, [r4, #0x20] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _08031F1E + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08031F10 + ldr r0, _08031F50 @ =0x0000012B + bl sub_08004488 +_08031F10: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_08031F1E: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08031F2E + adds r0, r4, #0 + bl sub_08004274 +_08031F2E: + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _08031F48 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 +_08031F48: + pop {r4, pc} + .align 2, 0 +_08031F4C: .4byte 0xFFFFE800 +_08031F50: .4byte 0x0000012B + + thumb_func_start sub_08031F54 +sub_08031F54: @ 0x08031F54 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08031FAC @ =gUnk_080CE5F0 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + rsbs r0, r0, #0 + movs r2, #0x36 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _08031FAA + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x14 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xb] + lsls r0, r1, #3 + subs r0, r0, r1 + lsls r0, r0, #1 + rsbs r0, r0, #0 + strh r0, [r4, #0x36] + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _08031FA2 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_08031FA2: + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 +_08031FAA: + pop {r4, pc} + .align 2, 0 +_08031FAC: .4byte gUnk_080CE5F0 + + thumb_func_start sub_08031FB0 +sub_08031FB0: @ 0x08031FB0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032006 + ldr r0, [r5, #0x50] + cmp r0, #0 + bne _08031FD8 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032006 +_08031FD8: + movs r4, #0 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x76 + strb r4, [r0] + ldr r0, [r5, #0x54] + cmp r0, #0 + beq _08031FFE + adds r0, r5, #0 + movs r1, #9 + bl sub_08004260 + b _08032006 +_08031FFE: + adds r0, r5, #0 + movs r1, #8 + bl sub_08004260 +_08032006: + pop {r4, r5, pc} + + thumb_func_start sub_08032008 +sub_08032008: @ 0x08032008 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_080322A4 + adds r7, r0, #0 + cmp r7, #0 + beq _08032018 + b _08032144 +_08032018: + ldr r5, [r4, #0x50] + cmp r5, #0 + bne _080320D4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08032060 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r1, #0xff + ands r0, r1 + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08032052 + ldr r0, _0803205C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08032052: + adds r0, r4, #0 + adds r0, #0x76 + strb r7, [r0] + b _080320AC + .align 2, 0 +_0803205C: .4byte gUnk_020000B0 +_08032060: + adds r1, r4, #0 + adds r1, #0x76 + ldrb r0, [r1] + cmp r0, #0 + beq _0803207C + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7a + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004596 + b _080320AC +_0803207C: + movs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803209E + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803209E + adds r0, r4, #0 + bl sub_08049EE4 + b _080320A6 +_0803209E: + bl sub_08000E50 + movs r1, #0x1e + ands r0, r1 +_080320A6: + adds r1, r4, #0 + adds r1, #0x7a + strb r0, [r1] +_080320AC: + ldrb r1, [r4, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080320CC + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_080320CC: + adds r0, r4, #0 + bl sub_080AEF88 + b _0803213E +_080320D4: + adds r6, r4, #0 + adds r6, #0x77 + ldrb r0, [r6] + cmp r0, #0 + bne _0803210E + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803213E + movs r0, #1 + strb r0, [r6] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080322E8 + adds r0, r4, #0 + bl sub_0806F69C + b _0803213E +_0803210E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080322E8 + adds r0, r4, #0 + bl sub_0806F69C + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0803213E + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r1, r0 + bne _0803213E + strb r7, [r6] +_0803213E: + adds r0, r4, #0 + bl sub_08004274 +_08032144: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08032148 +sub_08032148: @ 0x08032148 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _0803215E + adds r0, r4, #0 + bl sub_08032290 +_0803215E: + pop {r4, pc} + + thumb_func_start sub_08032160 +sub_08032160: @ 0x08032160 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080321C2 + movs r0, #7 + strb r0, [r4, #0xc] + ldr r2, _08032190 @ =gUnk_080CE5FA + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + ldrb r1, [r4, #0xb] + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0x15] + cmp r0, #0xf + bls _08032194 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _0803219C + .align 2, 0 +_08032190: .4byte gUnk_080CE5FA +_08032194: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_0803219C: + strb r0, [r4, #0x18] + movs r0, #0xf0 + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 +_080321C2: + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _080321E6 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _080321E2 + movs r2, #0 +_080321D0: + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080321DC + strb r2, [r1, #0xe] +_080321DC: + ldr r1, [r1, #0x50] + cmp r1, #0 + bne _080321D0 +_080321E2: + movs r0, #0 + strb r0, [r4, #0xe] +_080321E6: + pop {r4, pc} + + thumb_func_start sub_080321E8 +sub_080321E8: @ 0x080321E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #0 + bne _08032202 + movs r0, #8 + strb r0, [r4, #0xc] +_08032202: + pop {r4, pc} + + thumb_func_start sub_08032204 +sub_08032204: @ 0x08032204 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08032230 + movs r0, #0 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0x1e + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + b _08032244 +_08032230: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032244 + movs r0, #9 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0xd + bl sub_08004260 +_08032244: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032248 +sub_08032248: @ 0x08032248 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0803228E + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032276 + ldr r1, [r4, #0x7c] + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + adds r0, r4, #0 + bl sub_0805E7BC + b _0803228E +_08032276: + adds r0, r4, #0 + bl sub_08004274 + ldrb r1, [r5] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _0803228E + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_0803228E: + pop {r4, r5, pc} + + thumb_func_start sub_08032290 +sub_08032290: @ 0x08032290 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + movs r1, #0xc + strb r1, [r0, #0xe] + movs r1, #0xb + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080322A4 +sub_080322A4: @ 0x080322A4 + push {r4, lr} + adds r2, r0, #0 + ldr r3, [r2, #0x54] + cmp r3, #0 + beq _080322E2 + movs r1, #0x36 + ldrsh r0, [r3, r1] + adds r0, #8 + movs r4, #0x36 + ldrsh r1, [r2, r4] + cmp r0, r1 + blt _080322E2 + adds r0, r1, #0 + cmp r0, #0 + beq _080322D8 + movs r0, #5 + strb r0, [r2, #0xc] + ldrh r0, [r3, #0x36] + adds r0, #8 + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #0xb + bl sub_08004260 + movs r0, #1 + b _080322E4 +_080322D8: + adds r0, r2, #0 + bl sub_08032290 + movs r0, #1 + b _080322E4 +_080322E2: + movs r0, #0 +_080322E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080322E8 +sub_080322E8: @ 0x080322E8 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x78 + ldrb r0, [r2] + cmp r0, #0 + beq _08032316 + subs r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032334 + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x19 + lsrs r1, r1, #0x1f + movs r0, #1 + eors r1, r0 + lsls r1, r1, #6 + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + b _08032334 +_08032316: + ldrb r1, [r3, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08032334 + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ldrb r0, [r3, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + cmp r1, r0 + beq _08032334 + movs r0, #6 + strb r0, [r2] +_08032334: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032338 +sub_08032338: @ 0x08032338 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x7c] + ldrb r0, [r1, #0xe] + adds r0, #0xf + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x50 + beq _08032354 + adds r1, r2, #0 + adds r1, #0x6c + movs r0, #0 + strb r0, [r1] +_08032354: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032358 +sub_08032358: @ 0x08032358 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803237C + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803237C: + ldrb r1, [r4, #0x15] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _0803238E + adds r0, r4, #0 + bl sub_0806F69C +_0803238E: + adds r5, r4, #0 + adds r5, #0x74 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080323BA + ldrb r1, [r4, #0x15] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _080323AE + movs r0, #0x74 + bl sub_08004488 +_080323AE: + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_080A2CC0 +_080323BA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080323BC +sub_080323BC: @ 0x080323BC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080323D8 @ =gUnk_080CE7B0 + bl sub_0800129E + movs r3, #0x12 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080323D8: .4byte gUnk_080CE7B0 + + thumb_func_start sub_080323DC +sub_080323DC: @ 0x080323DC + push {lr} + ldr r2, _080323F0 @ =gUnk_080CE7C8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080323F0: .4byte gUnk_080CE7C8 + + thumb_func_start sub_080323F4 +sub_080323F4: @ 0x080323F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0803242C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + adds r1, #4 + movs r0, #0x18 + ands r1, r0 + movs r0, #0x10 + eors r1, r0 + strb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_080042AC + adds r5, r4, #0 + adds r5, #0x43 + b _08032446 +_0803242C: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + adds r5, r4, #0 + adds r5, #0x43 + cmp r0, #0xcc + bne _08032446 + ldrb r0, [r5] + cmp r0, #0 + bne _0803244C + adds r0, r4, #0 + bl sub_0803275C +_08032446: + ldrb r0, [r5] + cmp r0, #0 + beq _08032454 +_0803244C: + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08032454: + ldr r1, _08032460 @ =gUnk_080CE7B0 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08032460: .4byte gUnk_080CE7B0 + + thumb_func_start nullsub_155 +nullsub_155: @ 0x08032464 + bx lr + .align 2, 0 + + thumb_func_start sub_08032468 +sub_08032468: @ 0x08032468 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_080326FC + adds r0, r4, #0 + bl sub_08032740 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803248C +sub_0803248C: @ 0x0803248C + push {r4, lr} + adds r4, r0, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080324C8 + adds r0, r4, #0 + bl sub_0803271C + cmp r0, #0 + bne _080324C8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080324B4 + adds r0, r4, #0 + bl sub_08032650 +_080324B4: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080324C2 + movs r0, #1 + strb r0, [r4, #0xe] +_080324C2: + adds r0, r4, #0 + bl sub_080042B8 +_080324C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080324CC +sub_080324CC: @ 0x080324CC + push {r4, lr} + adds r4, r0, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080324F8 + 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 _080324F8 + adds r0, r4, #0 + bl sub_080326FC + adds r0, r4, #0 + bl sub_08032740 +_080324F8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080324FC +sub_080324FC: @ 0x080324FC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08032524 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032572 + movs r0, #0x1e + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_08032524: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r1, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _08032564 + movs r0, #4 + strb r0, [r4, #0xc] + movs r1, #0 + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x76 + movs r0, #0x46 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + strh r3, [r0] + adds r0, #3 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080327C8 + b _08032572 +_08032564: + movs r0, #3 + ands r1, r0 + cmp r1, #0 + bne _08032572 + adds r0, r4, #0 + bl sub_08032794 +_08032572: + pop {r4, pc} + + thumb_func_start sub_08032574 +sub_08032574: @ 0x08032574 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803258A + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080325A4 +_0803258A: + adds r5, r4, #0 + adds r5, #0x76 + ldrh r0, [r5] + subs r0, #1 + strh r0, [r5] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _080325A4 + adds r0, r4, #0 + bl sub_080AEFE0 + cmp r0, #0 + bne _080325AC +_080325A4: + adds r0, r4, #0 + bl sub_0803275C + b _080325C2 +_080325AC: + adds r0, r4, #0 + bl sub_080042B8 + ldrh r1, [r5] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _080325C2 + adds r0, r4, #0 + bl sub_08032794 +_080325C2: + pop {r4, r5, pc} + + thumb_func_start sub_080325C4 +sub_080325C4: @ 0x080325C4 + 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 _080325E4 + adds r0, r4, #0 + bl sub_080325E8 + cmp r0, #0 + bne _080325E4 + adds r0, r4, #0 + bl sub_08032784 +_080325E4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080325E8 +sub_080325E8: @ 0x080325E8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803264C + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803264C + ldr r5, _08032648 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x68 + movs r3, #0x40 + bl sub_080041A0 + cmp r0, #0 + beq _0803264C + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r5, #0x18 + adds r1, r5, #0 + ands r1, r2 + subs r0, r0, r1 + adds r0, #2 + movs r1, #0x1f + ands r0, r1 + cmp r0, #4 + bhi _0803264C + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r3] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #1 + b _0803264E + .align 2, 0 +_08032648: .4byte gUnk_020000B0 +_0803264C: + movs r0, #0 +_0803264E: + pop {r4, r5, pc} + + thumb_func_start sub_08032650 +sub_08032650: @ 0x08032650 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldr r1, _08032680 @ =gUnk_080CE7E0 + movs r0, #0xf + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803267A + lsrs r0, r5, #8 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08032684 +_0803267A: + lsrs r0, r5, #0x10 + b _0803268C + .align 2, 0 +_08032680: .4byte gUnk_080CE7E0 +_08032684: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 +_0803268C: + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803269C + pop {r4, r5, pc} + + thumb_func_start sub_0803269C +sub_0803269C: @ 0x0803269C + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + subs r0, r2, #3 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + bhi _080326D6 + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r2, r0, #3 + ldrb r0, [r3, #0x14] + subs r0, r0, r2 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + bls _080326F8 + strb r2, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + movs r1, #0xfc + ands r1, r0 + adds r1, r1, r2 + adds r0, r3, #0 + bl sub_080042AC + b _080326F8 +_080326D6: + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r2, r0, #3 + ldrb r0, [r3, #0x14] + cmp r2, r0 + beq _080326F8 + strb r2, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + movs r1, #0xfc + ands r1, r0 + adds r1, r1, r2 + adds r0, r3, #0 + bl sub_080042AC +_080326F8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080326FC +sub_080326FC: @ 0x080326FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08032718 @ =gUnk_080CE7F0 + movs r1, #0xf + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r4, #0x74 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 +_08032718: .4byte gUnk_080CE7F0 + + thumb_func_start sub_0803271C +sub_0803271C: @ 0x0803271C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08032734 + movs r0, #0 + b _0803273C +_08032734: + adds r0, r2, #0 + bl sub_08032784 + movs r0, #1 +_0803273C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032740 +sub_08032740: @ 0x08032740 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08032650 + pop {r4, pc} + + thumb_func_start sub_0803275C +sub_0803275C: @ 0x0803275C + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x2d + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803269C + adds r0, r4, #0 + bl sub_080327E0 + pop {r4, pc} + + thumb_func_start sub_08032784 +sub_08032784: @ 0x08032784 + push {lr} + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r1, [r0, #0x14] + adds r1, #8 + bl sub_080042AC + pop {pc} + + thumb_func_start sub_08032794 +sub_08032794: @ 0x08032794 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r5, r0, #0 + cmp r5, #0 + beq _080327C2 + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + ldr r1, _080327C4 @ =gUnk_080CE810 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative +_080327C2: + pop {r4, r5, pc} + .align 2, 0 +_080327C4: .4byte gUnk_080CE810 + + thumb_func_start sub_080327C8 +sub_080327C8: @ 0x080327C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xb + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _080327DC + str r4, [r0, #0x50] + str r0, [r4, #0x54] +_080327DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080327E0 +sub_080327E0: @ 0x080327E0 + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x54] + cmp r1, #0 + beq _080327F0 + movs r0, #0 + str r0, [r1, #0x50] + str r0, [r2, #0x54] +_080327F0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080327F4 +sub_080327F4: @ 0x080327F4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803280C @ =gUnk_080CE978 + 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 +_0803280C: .4byte gUnk_080CE978 + + thumb_func_start sub_08032810 +sub_08032810: @ 0x08032810 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08032840 @ =gUnk_080CE990 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803283C + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803283C + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_0803283C: + pop {r4, pc} + .align 2, 0 +_08032840: .4byte gUnk_080CE990 + + thumb_func_start sub_08032844 +sub_08032844: @ 0x08032844 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080328AE + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _08032896 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r3, #0x10 + strb r3, [r4, #0xf] + ldrb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08032886 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _08032882 + adds r0, r2, #2 + b _08032884 +_08032882: + subs r0, r2, #2 +_08032884: + strb r0, [r4, #0x15] +_08032886: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + subs r0, r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08032AF4 + b _080328AE +_08032896: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080328AE + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080328AE: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080328B8 +sub_080328B8: @ 0x080328B8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080328FC @ =gUnk_080CE9A4 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _080328F8 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08032AF4 +_080328F8: + pop {r4, pc} + .align 2, 0 +_080328FC: .4byte gUnk_080CE9A4 + + thumb_func_start sub_08032900 +sub_08032900: @ 0x08032900 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803290C +sub_0803290C: @ 0x0803290C + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08032914 +sub_08032914: @ 0x08032914 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08032926 + adds r0, r4, #0 + bl sub_0804A7D4 +_08032926: + pop {r4, pc} + + thumb_func_start sub_08032928 +sub_08032928: @ 0x08032928 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + strb r5, [r6, #0xc] + strb r4, [r6, #0xf] + adds r0, r6, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r6, #0x15] + adds r0, r6, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + strb r5, [r6, #0x1c] + adds r2, r6, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldrh r1, [r6, #0x2e] + adds r0, r6, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r6, #0 + bl sub_08016A04 + adds r0, r6, #0 + bl sub_08032AF4 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803298C +sub_0803298C: @ 0x0803298C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08032AB0 + adds r0, r4, #0 + bl sub_08004274 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _080329E2 + ldr r5, _080329E4 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x88 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _080329E2 + ldr r0, [r5] + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r4, r2] + adds r0, #8 + cmp r1, r0 + ble _080329E2 + movs r1, #0 + movs r2, #2 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x81 + strb r2, [r0] + adds r0, r4, #0 + bl sub_08032AF4 +_080329E2: + pop {r4, r5, pc} + .align 2, 0 +_080329E4: .4byte gUnk_020000B0 + + thumb_func_start sub_080329E8 +sub_080329E8: @ 0x080329E8 + push {lr} + bl sub_08032B38 + pop {pc} + + thumb_func_start sub_080329F0 +sub_080329F0: @ 0x080329F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08032A3A + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldrh r0, [r4, #0x36] + adds r0, #8 + strh r0, [r4, #0x36] + 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] + b _08032A46 +_08032A3A: + adds r0, r4, #0 + bl sub_08032B10 + adds r0, r4, #0 + bl sub_08004274 +_08032A46: + pop {r4, pc} + + thumb_func_start sub_08032A48 +sub_08032A48: @ 0x08032A48 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _08032AAE + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + 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] + adds r0, r4, #0 + adds r0, #0x81 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_08032AF4 +_08032AAE: + pop {r4, r5, pc} + + thumb_func_start sub_08032AB0 +sub_08032AB0: @ 0x08032AB0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032AF0 + ldrb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x80 + strb r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + beq _08032AD6 + strb r0, [r4, #0x15] +_08032AD6: + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r5] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + ldrb r2, [r4, #0x15] + ands r0, r2 + cmp r1, r0 + beq _08032AF0 + adds r0, r4, #0 + bl sub_08032AF4 +_08032AF0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08032AF4 +sub_08032AF4: @ 0x08032AF4 + push {lr} + ldrb r2, [r0, #0x15] + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + adds r2, r0, #0 + adds r2, #0x81 + ldrb r2, [r2] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032B10 +sub_08032B10: @ 0x08032B10 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + pop {r4, pc} + + thumb_func_start sub_08032B38 +sub_08032B38: @ 0x08032B38 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _08032B88 + cmp r0, #1 + bgt _08032B50 + cmp r0, #0 + beq _08032B56 + b _08032C6A +_08032B50: + cmp r0, #2 + beq _08032BB2 + b _08032C6A +_08032B56: + ldrb r1, [r5, #0xe] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08032B68 + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r5, #0x36] +_08032B68: + subs r0, r1, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C6A + strb r3, [r2] + movs r0, #0x18 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #2 + b _08032BA8 +_08032B88: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C6A + movs r0, #2 + strb r0, [r2] + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #4 +_08032BA8: + strb r0, [r1] + adds r0, r5, #0 + bl sub_08032AF4 + b _08032C6A +_08032BB2: + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #1 + movs r3, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #0 + bne _08032BF4 + movs r0, #3 + strb r0, [r5, #0xc] + strb r3, [r2] + strb r3, [r5, #0xe] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldrb r2, [r5, #0x15] + adds r0, r2, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08032BEC + movs r0, #0x10 + subs r0, r0, r2 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_08032BEC: + adds r0, r5, #0 + bl sub_08032AF4 + b _08032C64 +_08032BF4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032C64 + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x80 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004596 + ldrb r3, [r5, #0x15] + adds r0, r3, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08032C46 + ldrb r0, [r4] + cmp r0, #0x10 + bne _08032C3E + ands r3, r0 + cmp r3, #0 + beq _08032C3A + movs r0, #0x12 + b _08032C3C +_08032C3A: + movs r0, #0xe +_08032C3C: + strb r0, [r4] +_08032C3E: + ldrb r0, [r4] + strb r0, [r5, #0x15] + movs r0, #1 + strh r0, [r6] +_08032C46: + ldrb r2, [r4] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x18 + ldrb r2, [r5, #0x15] + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x1c + cmp r1, r0 + beq _08032C64 + adds r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_08032C64: + adds r0, r5, #0 + bl sub_08032B10 +_08032C6A: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08032C74 +sub_08032C74: @ 0x08032C74 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08032C90 @ =gUnk_080CEA1C + 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 +_08032C90: .4byte gUnk_080CEA1C + + thumb_func_start sub_08032C94 +sub_08032C94: @ 0x08032C94 + push {lr} + ldr r2, _08032CA8 @ =gUnk_080CEA34 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08032CA8: .4byte gUnk_080CEA34 + + thumb_func_start sub_08032CAC +sub_08032CAC: @ 0x08032CAC + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08032CC0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08032CC0: + ldr r1, _08032D18 @ =gUnk_080CEA1C + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032D3A + movs r0, #0x3f + ands r0, r1 + cmp r0, #3 + bgt _08032D2C + cmp r0, #2 + blt _08032D2C + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + movs r1, #0xc8 + cmp r0, #0 + beq _08032CF0 + movs r1, #0x5a +_08032CF0: + strb r1, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + ldrb r5, [r4, #0x15] + bl sub_08000E50 + movs r1, #0x40 + ands r1, r0 + cmp r1, #0 + beq _08032D1C + adds r2, r5, #4 + b _08032D20 + .align 2, 0 +_08032D18: .4byte gUnk_080CEA1C +_08032D1C: + adds r2, r5, #0 + adds r2, #0x1c +_08032D20: + movs r1, #0 + movs r0, #0x1f + ands r0, r2 + strb r0, [r4, #0x15] + strh r1, [r4, #0x24] + b _08032D3A +_08032D2C: + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 +_08032D3A: + pop {r4, r5, pc} + + thumb_func_start sub_08032D3C +sub_08032D3C: @ 0x08032D3C + 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 _08032D66 + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + adds r0, r4, #0 + bl sub_080331E8 +_08032D66: + adds r0, r4, #0 + bl sub_08001324 + + thumb_func_start nullsub_156 +nullsub_156: @ 0x08032D6C + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_157 +nullsub_157: @ 0x08032D70 + bx lr + .align 2, 0 + + thumb_func_start sub_08032D74 +sub_08032D74: @ 0x08032D74 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + bl sub_08033058 + pop {r4, pc} + + thumb_func_start sub_08032D84 +sub_08032D84: @ 0x08032D84 + 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 _08032D9C + adds r0, r4, #0 + bl sub_080330C0 + b _08032DAC +_08032D9C: + adds r0, r4, #0 + bl sub_08033364 + cmp r0, #0 + beq _08032DAC + adds r0, r4, #0 + bl sub_08033100 +_08032DAC: + adds r0, r4, #0 + bl sub_08032F64 + pop {r4, pc} + + thumb_func_start sub_08032DB4 +sub_08032DB4: @ 0x08032DB4 + 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 _08032DCA + adds r0, r4, #0 + bl sub_08033058 +_08032DCA: + adds r0, r4, #0 + bl sub_08032F48 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032DD4 +sub_08032DD4: @ 0x08032DD4 + 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 _08032E3C + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_080331B4 + adds r2, r4, #0 + adds r2, #0x82 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032E18 + ldrb r0, [r4, #0x15] + adds r0, #0x1c + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + b _08032E28 +_08032E18: + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + ldrb r0, [r2] + movs r1, #0x80 + orrs r0, r1 +_08032E28: + strb r0, [r2] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _08032E4E +_08032E3C: + adds r0, r4, #0 + bl sub_08032F90 + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_08032F64 +_08032E4E: + pop {r4, pc} + + thumb_func_start sub_08032E50 +sub_08032E50: @ 0x08032E50 + 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 _08032E70 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 + b _08032E82 +_08032E70: + adds r0, r4, #0 + bl sub_08033000 + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_08032F64 +_08032E82: + pop {r4, pc} + + thumb_func_start sub_08032E84 +sub_08032E84: @ 0x08032E84 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032EA4 + adds r0, r4, #0 + bl sub_08033320 + adds r0, r4, #0 + bl sub_080330C0 + b _08032EC0 +_08032EA4: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08032EC0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _08032EC0 + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080332A8 +_08032EC0: + adds r0, r4, #0 + bl sub_080331E8 + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032ED0 +sub_08032ED0: @ 0x08032ED0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08032F48 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032F06 + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + adds r0, r4, #0 + bl sub_080331E8 +_08032F06: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + ands r0, r5 + cmp r0, #0 + bne _08032F20 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08033174 +_08032F20: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08032F24 +sub_08032F24: @ 0x08032F24 + push {lr} + adds r2, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08032F38 + movs r1, #0 + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + b _08032F3C +_08032F38: + movs r1, #4 + ldrb r0, [r2, #0x14] +_08032F3C: + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08032F48 +sub_08032F48: @ 0x08032F48 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bne _08032F5A + adds r0, r4, #0 + bl sub_08004274 +_08032F5A: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08032F64 +sub_08032F64: @ 0x08032F64 + push {r4, lr} + adds r4, r0, #0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08032F82 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 +_08032F82: + adds r0, r4, #0 + bl sub_08032F48 + adds r0, r4, #0 + bl sub_080AEF88 + pop {r4, pc} + + thumb_func_start sub_08032F90 +sub_08032F90: @ 0x08032F90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08032FC0 + ldrb r0, [r2, #0xe] + cmp r0, #0x10 + bne _08032FA8 + adds r1, r2, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] +_08032FA8: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032FFE + movs r0, #8 + strb r0, [r2, #0xf] + adds r0, r2, #0 + bl sub_08033280 + b _08032FFE +_08032FC0: + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08032FFE + movs r0, #4 + strb r0, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08032FE4 + ldrb r0, [r2, #0x15] + adds r0, #0x1c + b _08032FE8 +_08032FE4: + ldrb r0, [r2, #0x15] + adds r0, #4 +_08032FE8: + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_08032FFE: + pop {pc} + + thumb_func_start sub_08033000 +sub_08033000: @ 0x08033000 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033056 + movs r0, #0x10 + strb r0, [r2, #0xf] + adds r3, r2, #0 + adds r3, #0x82 + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08033034 + ldrb r0, [r2, #0x15] + adds r0, #0x18 + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r1, [r3] + movs r0, #0x7f + ands r0, r1 + b _08033044 +_08033034: + ldrb r0, [r2, #0x15] + adds r0, #8 + movs r1, #0x1c + ands r0, r1 + strb r0, [r2, #0x15] + ldrb r0, [r3] + movs r1, #0x80 + orrs r0, r1 +_08033044: + strb r0, [r3] + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + strb r0, [r2, #0x14] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_08033056: + pop {pc} + + thumb_func_start sub_08033058 +sub_08033058: @ 0x08033058 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #1 + strb r6, [r5, #0xc] + adds r0, #0x80 + strb r6, [r0] + bl sub_08000E50 + ldr r1, _080330A0 @ =gUnk_080CEA50 + movs r4, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080330A8 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _080330A8 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r1, _080330A4 @ =gUnk_080CEA54 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r4 + b _080330AC + .align 2, 0 +_080330A0: .4byte gUnk_080CEA50 +_080330A4: .4byte gUnk_080CEA54 +_080330A8: + bl sub_08000E50 +_080330AC: + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + adds r0, r5, #0 + bl sub_08032F24 + pop {r4, r5, r6, pc} + + thumb_func_start sub_080330C0 +sub_080330C0: @ 0x080330C0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080330E2 + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x18 + b _080330E4 +_080330E2: + movs r0, #6 +_080330E4: + strb r0, [r4, #0xe] + movs r0, #0x60 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_08033100 +sub_08033100: @ 0x08033100 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0xa] + cmp r2, #0 + bne _08033132 + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #1 + strb r0, [r1] + movs r0, #0x30 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + b _08033150 +_08033132: + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080331B4 + ldrb r0, [r4, #0xe] + adds r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + movs r0, #0xb0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_08033150: + adds r1, r4, #0 + adds r1, #0x83 + movs r0, #0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #0x80 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + strb r0, [r1] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_08033174 +sub_08033174: @ 0x08033174 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x15] + adds r1, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x82 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080331A4 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + adds r0, #0x18 + b _080331A6 +_080331A4: + movs r0, #0xc +_080331A6: + strb r0, [r4, #0xe] + movs r0, #0xa0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08032F24 + pop {r4, pc} + + thumb_func_start sub_080331B4 +sub_080331B4: @ 0x080331B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0xf0 + ands r1, r0 + movs r2, #0x1e + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080331D0 + movs r2, #0x3c + b _080331E4 +_080331D0: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080331DA + movs r2, #0x2d +_080331DA: + movs r0, #0x20 + ands r1, r0 + cmp r1, #0 + beq _080331E4 + movs r2, #0x4b +_080331E4: + strb r2, [r4, #0xe] + pop {r4, pc} + + thumb_func_start sub_080331E8 +sub_080331E8: @ 0x080331E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r3, #0 + ldrb r0, [r5, #0xc] + cmp r0, #5 + beq _08033220 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + beq _0803320C + movs r0, #0xf + b _0803320E +_0803320C: + movs r0, #7 +_0803320E: + ands r2, r0 + strb r2, [r1] + ldrb r0, [r1] + cmp r0, #0 + bne _08033238 + movs r3, #1 + ldrb r0, [r5, #0x14] + lsls r6, r0, #1 + b _08033238 +_08033220: + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + adds r0, #1 + movs r1, #0xf + ands r0, r1 + strb r0, [r2] + cmp r0, #0 + bne _08033238 + movs r3, #1 + ldrb r0, [r5, #0x15] + lsrs r6, r0, #1 +_08033238: + cmp r3, #0 + beq _08033278 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08033278 + ldr r2, _0803327C @ =gUnk_080CEA56 + adds r2, r6, r2 + adds r3, r5, #0 + adds r3, #0x5a + ldrb r0, [r3] + movs r1, #0x20 + eors r0, r1 + strb r0, [r3] + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r2, r0] + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + movs r0, #0x86 + lsls r0, r0, #1 + bl sub_08004488 +_08033278: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803327C: .4byte gUnk_080CEA56 + + thumb_func_start sub_08033280 +sub_08033280: @ 0x08033280 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080332A4 + strb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + bl sub_08004260 +_080332A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080332A8 +sub_080332A8: @ 0x080332A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r6, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x81 + ldrb r0, [r5] + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + strb r0, [r5] + strb r6, [r4, #0x15] + ldrb r0, [r5] + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + asrs r6, r0, #2 + ldrb r0, [r4, #0x14] + cmp r6, r0 + beq _080332E4 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080332E8 +_080332E4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080332E8 +sub_080332E8: @ 0x080332E8 + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x82 + movs r0, #0 + strb r0, [r3] + ldrb r0, [r4, #0x14] + subs r2, r1, r0 + cmp r2, #0 + ble _08033304 + cmp r2, #4 + bgt _08033310 + movs r0, #1 + b _08033312 +_08033304: + movs r0, #4 + rsbs r0, r0, #0 + cmp r2, r0 + bge _08033310 + movs r0, #1 + b _08033312 +_08033310: + movs r0, #2 +_08033312: + strb r0, [r3] + strb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08033320 +sub_08033320: @ 0x08033320 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + lsls r5, r0, #2 + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _08033360 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #1 + beq _08033350 + cmp r1, #2 + beq _08033354 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + movs r0, #0x1c + cmp r1, #0 + beq _08033356 +_08033350: + movs r0, #4 + b _08033356 +_08033354: + movs r0, #0x1c +_08033356: + adds r0, r0, r5 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _08033362 +_08033360: + strb r5, [r4, #0x15] +_08033362: + pop {r4, r5, pc} + + thumb_func_start sub_08033364 +sub_08033364: @ 0x08033364 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _080333B4 + ldrb r0, [r4, #0xa] + movs r3, #0x38 + cmp r0, #0 + beq _0803337E + movs r3, #0x48 +_0803337E: + adds r0, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + beq _080333B4 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080333AA + ldr r0, _080333B0 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r1, #2 + movs r0, #0x1c + ands r1, r0 + lsrs r1, r1, #2 + ldrb r0, [r4, #0x14] + cmp r0, r1 + bne _080333B4 +_080333AA: + movs r0, #1 + b _080333B6 + .align 2, 0 +_080333B0: .4byte gUnk_020000B0 +_080333B4: + movs r0, #0 +_080333B6: + pop {r4, pc} + + thumb_func_start sub_080333B8 +sub_080333B8: @ 0x080333B8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080333D0 @ =gUnk_080CEB38 + 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 +_080333D0: .4byte gUnk_080CEB38 + + thumb_func_start sub_080333D4 +sub_080333D4: @ 0x080333D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803340E + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0803340E + bl sub_0804B128 + str r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x76 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803340E: + ldr r2, _08033444 @ =gUnk_080CEB50 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + movs r1, #7 + ands r0, r1 + ldrb r1, [r4, #0xb] + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08033440 + adds r0, r4, #0 + bl sub_0803350C +_08033440: + pop {r4, pc} + .align 2, 0 +_08033444: .4byte gUnk_080CEB50 + + thumb_func_start sub_08033448 +sub_08033448: @ 0x08033448 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #1 + cmp r0, #0x1d + bhi _080334E0 + lsls r0, r0, #2 + ldr r1, _08033464 @ =_08033468 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08033464: .4byte _08033468 +_08033468: @ jump table + .4byte _080334FA @ case 0 + .4byte _080334E0 @ case 1 + .4byte _080334E0 @ case 2 + .4byte _080334E0 @ case 3 + .4byte _080334E0 @ case 4 + .4byte _080334E0 @ case 5 + .4byte _080334E0 @ case 6 + .4byte _080334E0 @ case 7 + .4byte _080334E0 @ case 8 + .4byte _080334E0 @ case 9 + .4byte _080334E0 @ case 10 + .4byte _080334E0 @ case 11 + .4byte _080334E0 @ case 12 + .4byte _080334E0 @ case 13 + .4byte _080334FA @ case 14 + .4byte _080334E0 @ case 15 + .4byte _080334E0 @ case 16 + .4byte _080334E0 @ case 17 + .4byte _080334FA @ case 18 + .4byte _080334E0 @ case 19 + .4byte _080334E0 @ case 20 + .4byte _080334E0 @ case 21 + .4byte _080334E0 @ case 22 + .4byte _080334E0 @ case 23 + .4byte _080334E0 @ case 24 + .4byte _080334E0 @ case 25 + .4byte _080334FA @ case 26 + .4byte _080334E0 @ case 27 + .4byte _080334FA @ case 28 + .4byte _080334FA @ case 29 +_080334E0: + movs r0, #0x20 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080334F6 + adds r0, r4, #0 + bl sub_0806FA24 +_080334F6: + bl sub_0805E780 +_080334FA: + ldr r1, _08033504 @ =gUnk_080CEB38 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08033504: .4byte gUnk_080CEB38 + + thumb_func_start nullsub_158 +nullsub_158: @ 0x08033508 + bx lr + .align 2, 0 + + thumb_func_start sub_0803350C +sub_0803350C: @ 0x0803350C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08033520 + adds r0, r4, #0 + bl sub_0806F69C +_08033520: + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + subs r0, #1 + strh r0, [r2] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803353A + adds r1, r4, #0 + adds r1, #0x54 + adds r0, r4, #0 + bl sub_080A2CC0 +_0803353A: + pop {r4, pc} + + thumb_func_start sub_0803353C +sub_0803353C: @ 0x0803353C + push {lr} + ldr r1, _08033548 @ =gUnk_080CEB74 + bl sub_0800129E + pop {pc} + .align 2, 0 +_08033548: .4byte gUnk_080CEB74 + + thumb_func_start sub_0803354C +sub_0803354C: @ 0x0803354C + push {lr} + ldr r2, _08033560 @ =gUnk_080CEB8C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08033560: .4byte gUnk_080CEB8C + + thumb_func_start sub_08033564 +sub_08033564: @ 0x08033564 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08033628 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0xe + beq _080335E4 + cmp r0, #0xe + bgt _08033586 + cmp r0, #0 + beq _08033590 + b _08033628 +_08033586: + cmp r0, #0x14 + beq _080335EE + cmp r0, #0x15 + beq _080335E4 + b _08033628 +_08033590: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x9f + lsls r0, r0, #2 + strh r0, [r1] + ldr r2, _080335DC @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r1, _080335E0 @ =gUnk_02002A40 + ldrb r2, [r4, #0xa] + adds r0, r2, #1 + adds r3, r1, #0 + adds r3, #0xba + strb r0, [r3] + adds r1, #0xc8 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] + lsls r2, r2, #0x18 + cmp r2, #0 + beq _08033628 + bl sub_0805E780 + b _08033628 + .align 2, 0 +_080335DC: .4byte gUnk_03003F80 +_080335E0: .4byte gUnk_02002A40 +_080335E4: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + b _08033628 +_080335EE: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08033624 + str r1, [r4, #0x54] + movs r0, #0xe + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806FA24 +_08033624: + bl sub_0805E780 +_08033628: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803362C +sub_0803362C: @ 0x0803362C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08033648 + ldr r0, _0803364C @ =gUnk_080CEB98 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08033648: + pop {r4, pc} + .align 2, 0 +_0803364C: .4byte gUnk_080CEB98 + + thumb_func_start sub_08033650 +sub_08033650: @ 0x08033650 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_08033658 +sub_08033658: @ 0x08033658 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08033660 +sub_08033660: @ 0x08033660 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08033672 + adds r0, r4, #0 + bl sub_0804A7D4 +_08033672: + pop {r4, pc} + + thumb_func_start sub_08033674 +sub_08033674: @ 0x08033674 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0x1c] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08033744 + ldrb r1, [r4, #0xb] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080336A8 +sub_080336A8: @ 0x080336A8 + 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 _080336C0 + adds r0, r4, #0 + bl sub_08033744 + b _080336CE +_080336C0: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080336CE + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E +_080336CE: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080336DC +sub_080336DC: @ 0x080336DC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7c + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xc + beq _0803371E + cmp r0, #0xc + bgt _080336FC + cmp r0, #0 + beq _0803372E + b _08033740 +_080336FC: + cmp r0, #0x18 + beq _08033716 + cmp r0, #0x24 + bne _08033740 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x82 + ldrh r0, [r0] + strh r0, [r2, #0x32] + b _08033740 +_08033716: + adds r0, r2, #0 + bl sub_080A29BC + b _08033740 +_0803371E: + ldrb r0, [r2, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r2, #0x18] + b _08033740 +_0803372E: + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + bl sub_08033744 +_08033740: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08033744 +sub_08033744: @ 0x08033744 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xff + ands r5, r0 + ldr r1, _0803378C @ =gUnk_080CEBA4 + movs r0, #0x70 + ands r0, r5 + lsrs r0, r0, #4 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r6, #0xe] + movs r0, #0xc + ands r0, r5 + lsls r4, r0, #1 + adds r0, r6, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08033796 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _08033796 + adds r0, r6, #0 + bl sub_08049EE4 + adds r4, r0, #0 + movs r0, #0x80 + ands r5, r0 + cmp r5, #0 + beq _08033790 + adds r4, #4 + b _08033792 + .align 2, 0 +_0803378C: .4byte gUnk_080CEBA4 +_08033790: + adds r4, #0x1c +_08033792: + movs r0, #0x18 + ands r4, r0 +_08033796: + strb r4, [r6, #0x15] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803379C +sub_0803379C: @ 0x0803379C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080337B8 @ =gUnk_080CEBEC + 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 +_080337B8: .4byte gUnk_080CEBEC + + thumb_func_start sub_080337BC +sub_080337BC: @ 0x080337BC + push {lr} + ldr r2, _080337D0 @ =gUnk_080CEC04 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080337D0: .4byte gUnk_080CEC04 + + thumb_func_start sub_080337D4 +sub_080337D4: @ 0x080337D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _080337E8 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_080337E8: + ldr r1, _08033868 @ =gUnk_080CEBEC + adds r0, r4, #0 + bl sub_0804AA30 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _08033864 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803381A + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803381A + adds r0, r4, #0 + bl sub_08033E1C +_0803381A: + ldrb r1, [r5] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + bne _08033864 + ldrb r0, [r4, #0xc] + cmp r0, #5 + beq _08033864 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x49 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08033D78 + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_08033864: + pop {r4, r5, pc} + .align 2, 0 +_08033868: .4byte gUnk_080CEBEC + + thumb_func_start nullsub_159 +nullsub_159: @ 0x0803386C + bx lr + .align 2, 0 + + thumb_func_start sub_08033870 +sub_08033870: @ 0x08033870 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + ldrb r0, [r4, #0xc] + cmp r0, #5 + beq _0803388E + adds r0, r4, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _0803388E + adds r0, r4, #0 + bl sub_08033E1C +_0803388E: + pop {r4, pc} + + thumb_func_start sub_08033890 +sub_08033890: @ 0x08033890 + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xc] + strb r1, [r6, #0xe] + strb r1, [r6, #0xf] + ldr r0, [r6, #0x2c] + ldr r3, _0803394C @ =0xFFF00000 + ands r0, r3 + movs r2, #0x80 + lsls r2, r2, #0xc + orrs r0, r2 + str r0, [r6, #0x7c] + adds r4, r6, #0 + adds r4, #0x80 + ldr r0, [r6, #0x30] + ands r0, r3 + orrs r0, r2 + str r0, [r4] + ldr r0, [r6, #0x7c] + str r0, [r6, #0x2c] + ldr r0, [r4] + str r0, [r6, #0x30] + adds r0, r6, #0 + adds r0, #0x79 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08033950 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r4, #0x32 + ldrsh r0, [r6, r4] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + adds r4, r6, #0 + adds r4, #0x74 + strh r1, [r4] + ldrh r0, [r4] + adds r5, r6, #0 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080001DA + adds r1, r6, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r0, _08033954 @ =0x00004022 + ldrh r1, [r4] + ldrb r2, [r5] + bl sub_0800015E + ldrb r1, [r6, #0xa] + movs r0, #0x7d + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + bne _08033928 + bl sub_0805E780 +_08033928: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r4, [r6, #0x54] + str r6, [r4, #0x50] + ldrb r0, [r6, #0xa] + cmp r0, #1 + bne _08033940 + adds r0, r6, #0 + bl sub_08033EA8 +_08033940: + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803394C: .4byte 0xFFF00000 +_08033950: .4byte gUnk_03000BF0 +_08033954: .4byte 0x00004022 + + thumb_func_start sub_08033958 +sub_08033958: @ 0x08033958 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033982 + adds r0, r4, #0 + bl sub_08033E1C + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B9B8 + b _08033A72 +_08033982: + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r1] + cmp r0, #0 + beq _08033992 + subs r0, #1 + strb r0, [r1] + b _08033A72 +_08033992: + ldr r0, [r4, #0x7c] + str r0, [r4, #0x2c] + adds r0, r4, #0 + adds r0, #0x80 + ldr r0, [r0] + str r0, [r4, #0x30] + adds r0, r4, #0 + movs r1, #1 + movs r2, #0x10 + bl sub_0804A024 + adds r5, r0, #0 + cmp r5, #0x10 + beq _080339E0 + cmp r5, #0x10 + bhi _080339BC + cmp r5, #0 + beq _080339C6 + cmp r5, #8 + beq _080339F0 + b _08033A10 +_080339BC: + cmp r5, #0x18 + beq _08033A00 + cmp r5, #0xff + bne _08033A10 + b _08033A72 +_080339C6: + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + beq _08033A72 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _080339DC @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r1, r2] + b _08033A0A + .align 2, 0 +_080339DC: .4byte gLinkEntity +_080339E0: + ldr r0, _080339EC @ =gLinkEntity + movs r1, #0x32 + ldrsh r0, [r0, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + b _08033A0A + .align 2, 0 +_080339EC: .4byte gLinkEntity +_080339F0: + ldr r0, _080339FC @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + b _08033A0A + .align 2, 0 +_080339FC: .4byte gLinkEntity +_08033A00: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r1, _08033A74 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r1, r2] +_08033A0A: + subs r0, r0, r1 + cmp r0, #0x30 + bgt _08033A72 +_08033A10: + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _08033A1E + bl sub_0806F520 + cmp r0, #0 + bne _08033A72 +_08033A1E: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + cmp r0, #0 + bne _08033A2C + movs r0, #1 + strb r0, [r1] +_08033A2C: + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0x15] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x30] + ldr r1, _08033A78 @ =0xFFF00000 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B9B8 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08033A72: + pop {r4, r5, pc} + .align 2, 0 +_08033A74: .4byte gLinkEntity +_08033A78: .4byte 0xFFF00000 + + thumb_func_start sub_08033A7C +sub_08033A7C: @ 0x08033A7C + push {r4, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033A90 + adds r0, r4, #0 + bl sub_08033E1C + b _08033AC8 +_08033A90: + 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 _08033AC8 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x59 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 +_08033AC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08033ACC +sub_08033ACC: @ 0x08033ACC + push {r4, lr} + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033AE0 + adds r0, r4, #0 + bl sub_08033E1C + b _08033B42 +_08033AE0: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08033AF8 + subs r0, #1 + strb r0, [r4, #0xf] + b _08033B42 +_08033AF8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033B3C + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + ldr r2, [r4, #0x2c] + ldr r1, _08033B38 @ =0xFFF00000 + ands r2, r1 + movs r0, #0x80 + lsls r0, r0, #0xc + orrs r2, r0 + str r2, [r4, #0x2c] + ldr r0, [r4, #0x30] + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + str r2, [r4, #0x7c] + adds r1, r4, #0 + adds r1, #0x80 + str r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _08033B42 + .align 2, 0 +_08033B38: .4byte 0xFFF00000 +_08033B3C: + adds r0, r4, #0 + bl sub_08033D78 +_08033B42: + pop {r4, pc} + + thumb_func_start sub_08033B44 +sub_08033B44: @ 0x08033B44 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + adds r4, r0, #0 + bl sub_08033DF0 + cmp r0, #0 + beq _08033B62 + adds r0, r4, #0 + bl sub_08033E1C + b _08033C82 +_08033B62: + 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 + beq _08033B76 + b _08033C82 +_08033B76: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0 + mov r8, r0 + adds r1, r4, #0 + adds r1, #0x80 + str r1, [sp, #4] + adds r6, r4, #0 + adds r6, #0x29 + adds r2, r4, #0 + adds r2, #0x7b + str r2, [sp] + adds r5, r4, #0 + adds r5, #0x74 + adds r3, r4, #0 + adds r3, #0x38 + str r3, [sp, #8] + movs r7, #0x76 + adds r7, r7, r4 + mov sl, r7 + ldr r0, _08033C20 @ =gUnk_03000BF0 + mov sb, r0 +_08033BB2: + ldr r1, [r4, #0x2c] + ldr r3, _08033C24 @ =0xFFF00000 + ands r1, r3 + movs r2, #0x80 + lsls r2, r2, #0xc + orrs r1, r2 + str r1, [r4, #0x2c] + ldr r0, [r4, #0x30] + ands r0, r3 + orrs r0, r2 + str r0, [r4, #0x30] + str r1, [r4, #0x7c] + ldr r1, [sp, #4] + str r0, [r1] + ldrb r0, [r6] + movs r2, #0x39 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r6] + movs r0, #0x78 + ldr r3, [sp] + strb r0, [r3] + movs r7, #0x2e + ldrsh r2, [r4, r7] + mov r1, sb + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r7, #0x32 + ldrsh r0, [r4, r7] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r2, r0 + strh r2, [r5] + ldrh r0, [r5] + ldr r2, [sp, #8] + ldrb r1, [r2] + bl sub_080001DA + mov r3, sl + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r7, _08033C28 @ =0x00004022 + cmp r0, r7 + beq _08033C2C + movs r0, #1 + add r8, r0 + b _08033C68 + .align 2, 0 +_08033C20: .4byte gUnk_03000BF0 +_08033C24: .4byte 0xFFF00000 +_08033C28: .4byte 0x00004022 +_08033C2C: + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + cmp r0, #2 + beq _08033C54 + cmp r0, #2 + bgt _08033C42 + cmp r0, #0 + beq _08033C4C + b _08033C68 +_08033C42: + cmp r0, #4 + beq _08033C5A + cmp r0, #6 + beq _08033C62 + b _08033C68 +_08033C4C: + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + b _08033C68 +_08033C54: + ldrh r0, [r4, #0x2e] + subs r0, #0x10 + b _08033C66 +_08033C5A: + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + b _08033C68 +_08033C62: + ldrh r0, [r4, #0x2e] + adds r0, #0x10 +_08033C66: + strh r0, [r4, #0x2e] +_08033C68: + mov r1, r8 + cmp r1, #0 + beq _08033BB2 + ldr r0, _08033C90 @ =0x00004022 + ldrh r1, [r5] + ldr r3, [sp, #8] + ldrb r2, [r3] + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08033C82: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08033C90: .4byte 0x00004022 + + thumb_func_start sub_08033C94 +sub_08033C94: @ 0x08033C94 + push {r4, lr} + adds r4, r0, #0 + movs r1, #3 + bl sub_08004276 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #1 + beq _08033CD2 + cmp r0, #1 + bgt _08033CB2 + cmp r0, #0 + beq _08033CB8 + b _08033D76 +_08033CB2: + cmp r0, #2 + beq _08033D18 + b _08033D76 +_08033CB8: + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _08033CD2 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08033CD2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08033D76 + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #2 + strb r0, [r1] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x63 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #0x14 + strb r0, [r4, #0x15] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #0 + beq _08033D12 + cmp r1, #2 + beq _08033D68 + b _08033D6E +_08033D12: + ldrb r0, [r4, #0x15] + adds r0, #8 + b _08033D6C +_08033D18: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08033D24 + subs r0, #1 + strb r0, [r4, #0xf] + b _08033D2A +_08033D24: + adds r0, r4, #0 + bl sub_08033D78 +_08033D2A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08033D76 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + adds r0, #0x14 + strb r0, [r4, #0x15] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08033D62 + cmp r1, #3 + beq _08033D68 + b _08033D6E +_08033D62: + ldrb r0, [r4, #0x15] + adds r0, #8 + b _08033D6C +_08033D68: + ldrb r0, [r4, #0x15] + adds r0, #0x18 +_08033D6C: + strb r0, [r4, #0x15] +_08033D6E: + ldrb r1, [r4, #0x15] + movs r0, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_08033D76: + pop {r4, pc} + + thumb_func_start sub_08033D78 +sub_08033D78: @ 0x08033D78 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0x15] + movs r2, #0x18 + ands r2, r0 + lsrs r2, r2, #2 + ldr r0, _08033DE4 @ =gUnk_080CEC1C + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r4, _08033DE8 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _08033DEC @ =0x000001C5 + cmp r1, r0 + bhi _08033DCE + subs r0, #1 + cmp r1, r0 + bhs _08033DE2 +_08033DCE: + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_080002E0 + subs r0, #1 + cmp r0, #0x3e + bls _08033DE2 + adds r0, r6, #0 + bl sub_080AEF88 +_08033DE2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08033DE4: .4byte gUnk_080CEC1C +_08033DE8: .4byte gUnk_03000BF0 +_08033DEC: .4byte 0x000001C5 + + thumb_func_start sub_08033DF0 +sub_08033DF0: @ 0x08033DF0 + push {lr} + movs r2, #0 + ldr r1, [r0, #0x54] + cmp r1, #0 + beq _08033E16 + ldrb r0, [r1, #0xc] + cmp r0, #3 + beq _08033E10 + cmp r0, #3 + bgt _08033E0A + cmp r0, #2 + beq _08033E16 + b _08033E18 +_08033E0A: + cmp r0, #4 + bne _08033E18 + b _08033E16 +_08033E10: + ldrb r0, [r1, #0xd] + cmp r0, #1 + bls _08033E18 +_08033E16: + movs r2, #1 +_08033E18: + adds r0, r2, #0 + pop {pc} + + thumb_func_start sub_08033E1C +sub_08033E1C: @ 0x08033E1C + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r3, #5 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + mov r1, ip + strb r0, [r1] + ldr r0, [r4, #0x30] + ldr r1, _08033EA4 @ =0xFFF00000 + ands r0, r1 + movs r1, #0xc0 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r4, #0x30] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x19 + strb r0, [r1] + mov r0, ip + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + movs r0, #0x30 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + adds r0, #0xd0 + strh r0, [r4, #0x24] + str r2, [r4, #0x54] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0xa + bl sub_080A2CFC + pop {r4, pc} + .align 2, 0 +_08033EA4: .4byte 0xFFF00000 + + thumb_func_start sub_08033EA8 +sub_08033EA8: @ 0x08033EA8 + push {lr} + adds r2, r0, #0 + ldr r0, _08033EC4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08033EC8 + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x95 + b _08033ECE + .align 2, 0 +_08033EC4: .4byte gUnk_03003F80 +_08033EC8: + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x63 +_08033ECE: + strb r0, [r1] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08033ED4 +sub_08033ED4: @ 0x08033ED4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08033EEC @ =gUnk_080CEC88 + 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 +_08033EEC: .4byte gUnk_080CEC88 + + thumb_func_start sub_08033EF0 +sub_08033EF0: @ 0x08033EF0 + push {lr} + ldr r2, _08033F04 @ =gUnk_080CECA0 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08033F04: .4byte gUnk_080CECA0 + + thumb_func_start sub_08033F08 +sub_08033F08: @ 0x08033F08 + push {lr} + ldr r1, _08033F14 @ =gUnk_080CEC88 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08033F14: .4byte gUnk_080CEC88 + + thumb_func_start nullsub_160 +nullsub_160: @ 0x08033F18 + bx lr + .align 2, 0 + + thumb_func_start sub_08033F1C +sub_08033F1C: @ 0x08033F1C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08033F38 @ =gUnk_080CECB4 + 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 + bl sub_0803499C + pop {r4, pc} + .align 2, 0 +_08033F38: .4byte gUnk_080CECB4 + + thumb_func_start sub_08033F3C +sub_08033F3C: @ 0x08033F3C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08033F64 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bhi _08033FFA + ldr r0, _08033F68 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _08033F6C + adds r0, r4, #0 + bl sub_08034420 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + b _08033F70 + .align 2, 0 +_08033F64: .4byte gUnk_03003DBC +_08033F68: .4byte gUnk_030010A0 +_08033F6C: + movs r0, #1 + strb r0, [r4, #0xc] +_08033F70: + 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 r3, r4, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r2, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0x36 + movs r1, #1 + bl CreateEnemy + adds r5, r0, #0 + str r4, [r5, #0x50] + movs r0, #0x7e + movs r1, #0 + movs r2, #0 + bl CreateObject + str r4, [r0, #0x50] + ldr r0, _08033FD0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + cmp r1, #0 + bne _08033FD4 + movs r0, #0xd + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0xfc + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08033FFA + .align 2, 0 +_08033FD0: .4byte gUnk_030010A0 +_08033FD4: + movs r0, #0x44 + movs r1, #0 + bl CreateEnemy + str r4, [r0, #0x50] + str r4, [r0, #0x78] + str r0, [r4, #0x74] + movs r0, #0x44 + movs r1, #1 + bl CreateEnemy + str r4, [r0, #0x50] + str r5, [r0, #0x78] + str r0, [r4, #0x78] + movs r0, #0x36 + movs r1, #4 + bl CreateEnemy + str r4, [r0, #0x50] +_08033FFA: + pop {r4, r5, pc} + + thumb_func_start sub_08033FFC +sub_08033FFC: @ 0x08033FFC + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xd] + cmp r0, #7 + bls _08034008 + b _08034114 +_08034008: + lsls r0, r0, #2 + ldr r1, _08034014 @ =_08034018 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08034014: .4byte _08034018 +_08034018: @ jump table + .4byte _0803413E @ case 0 + .4byte _08034038 @ case 1 + .4byte _0803413E @ case 2 + .4byte _08034056 @ case 3 + .4byte _08034068 @ case 4 + .4byte _0803413E @ case 5 + .4byte _08034090 @ case 6 + .4byte _080340C4 @ case 7 +_08034038: + movs r0, #2 + strb r0, [r3, #0xd] + movs r0, #0x1e + strb r0, [r3, #0xe] + ldr r0, [r3, #0x74] + ldr r2, [r0, #0x74] + movs r1, #1 + strb r1, [r2, #0xd] + ldr r0, [r3, #0x78] + ldr r2, [r0, #0x74] + strb r1, [r2, #0xd] + adds r0, r3, #0 + bl sub_0801D230 + b _0803413E +_08034056: + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803413E + movs r0, #4 + strb r0, [r3, #0xd] + b _0803413E +_08034068: + ldr r0, [r3, #0x34] + ldr r1, _0803408C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r3, #0x34] + movs r0, #0x36 + ldrsh r1, [r3, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + bne _0803413E + movs r0, #5 + strb r0, [r3, #0xd] + adds r1, r3, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + b _0803413E + .align 2, 0 +_0803408C: .4byte 0xFFFF8000 +_08034090: + movs r1, #0 + movs r0, #7 + strb r0, [r3, #0xd] + strb r1, [r3, #0xe] + ldr r2, [r3, #0x74] + movs r1, #1 + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + movs r0, #4 + strb r0, [r2, #0xd] + ldr r2, [r3, #0x78] + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + strb r0, [r2, #0xd] + ldr r1, _080340C0 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xf4 + lsls r0, r0, #4 + strh r0, [r2] + adds r1, #0x68 + adds r0, #0xc0 + strh r0, [r1] + b _0803413E + .align 2, 0 +_080340C0: .4byte gUnk_03000F50 +_080340C4: + ldrb r1, [r3, #0xe] + adds r1, #1 + strb r1, [r3, #0xe] + lsls r2, r1, #0x18 + lsrs r2, r2, #0x19 + ldr r4, _08034110 @ =gUnk_03000F50 + movs r0, #0x10 + subs r0, r0, r2 + lsls r0, r0, #8 + orrs r2, r0 + adds r0, r4, #0 + adds r0, #0x68 + strh r2, [r0] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0x1f + bls _0803413E + movs r0, #8 + strb r0, [r3, #0xd] + ldr r2, [r3, #0x74] + movs r1, #3 + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + movs r0, #6 + strb r0, [r2, #0xd] + ldr r2, [r3, #0x78] + strb r1, [r2, #0xd] + ldr r2, [r2, #0x74] + strb r0, [r2, #0xd] + ldrb r1, [r3, #0x19] + subs r0, #0x13 + ands r0, r1 + strb r0, [r3, #0x19] + adds r1, r4, #0 + adds r1, #0x66 + movs r0, #0 + strh r0, [r1] + b _0803413E + .align 2, 0 +_08034110: .4byte gUnk_03000F50 +_08034114: + ldr r0, [r3, #0x74] + ldrb r1, [r0, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803413E + ldr r1, _08034140 @ =gUnk_03000BF0 + ldr r0, _08034144 @ =gLinkEntity + str r0, [r1, #0x30] + adds r0, r3, #0 + bl sub_08034420 + ldr r0, _08034148 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + bl sub_080791D0 + movs r0, #0x2e + bl sub_080A3268 +_0803413E: + pop {r4, pc} + .align 2, 0 +_08034140: .4byte gUnk_03000BF0 +_08034144: .4byte gLinkEntity +_08034148: .4byte gUnk_03003F80 + + thumb_func_start sub_0803414C +sub_0803414C: @ 0x0803414C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08034194 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r2, r0, #0 + adds r2, #0xb8 + ldrh r0, [r1, #8] + adds r3, r0, #0 + adds r3, #0x48 + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, r0, r2 + adds r0, #1 + cmp r0, #2 + bhi _080341A2 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r0, r0, r3 + adds r0, #1 + cmp r0, #2 + bhi _080341A2 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080341B6 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08034198 + movs r0, #0 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_0803442C + b _080341B6 + .align 2, 0 +_08034194: .4byte gUnk_03000BF0 +_08034198: + adds r0, r4, #0 + movs r1, #0x5a + bl sub_0803442C + b _080341B6 +_080341A2: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r5, #0x32 + ldrsh r1, [r4, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C +_080341B6: + pop {r4, r5, pc} + + thumb_func_start sub_080341B8 +sub_080341B8: @ 0x080341B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080341CC + adds r0, r4, #0 + movs r1, #0x2d + bl sub_0803442C +_080341CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080341D0 +sub_080341D0: @ 0x080341D0 + push {lr} + adds r2, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + beq _080341F2 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080341F2 + adds r0, r2, #0 + bl sub_0803443C +_080341F2: + pop {pc} + + thumb_func_start sub_080341F4 +sub_080341F4: @ 0x080341F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080347B4 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _0803420C + adds r0, r4, #0 + bl sub_08034420 +_0803420C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034210 +sub_08034210: @ 0x08034210 + push {r4, lr} + adds r4, r0, #0 + bl sub_080347B4 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08034238 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034238 + adds r0, r4, #0 + bl sub_08034420 + b _0803423E +_08034238: + adds r0, r4, #0 + bl sub_08034830 +_0803423E: + pop {r4, pc} + + thumb_func_start sub_08034240 +sub_08034240: @ 0x08034240 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + cmp r0, #0 + beq _08034260 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x95 + bhi _08034260 + adds r0, r4, #0 + bl sub_0803473C +_08034260: + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034270 + adds r0, r4, #0 + bl sub_08034420 +_08034270: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034274 +sub_08034274: @ 0x08034274 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034288 + adds r0, r4, #0 + bl sub_08034420 + b _0803429E +_08034288: + adds r0, r4, #0 + bl sub_0803473C + adds r0, r4, #0 + bl sub_08034A10 + cmp r0, #0 + beq _0803429E + adds r0, r4, #0 + bl sub_080347FC +_0803429E: + pop {r4, pc} + + thumb_func_start sub_080342A0 +sub_080342A0: @ 0x080342A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080342B2 + adds r0, r4, #0 + bl sub_08034420 +_080342B2: + pop {r4, pc} + + thumb_func_start sub_080342B4 +sub_080342B4: @ 0x080342B4 + push {lr} + adds r1, r0, #0 + adds r0, #0x7e + ldrh r0, [r0] + cmp r0, #0xff + bne _080342C6 + adds r0, r1, #0 + bl sub_08034420 +_080342C6: + pop {pc} + + thumb_func_start sub_080342C8 +sub_080342C8: @ 0x080342C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r1, r0, #0 + cmp r1, #0 + beq _08034304 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080342E4 + ldr r0, _080342FC @ =0x00000115 + bl sub_080A3268 +_080342E4: + ldr r2, _08034300 @ =gUnk_080CECEC + ldrb r0, [r4, #0xe] + lsrs r0, r0, #1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + b _08034340 + .align 2, 0 +_080342FC: .4byte 0x00000115 +_08034300: .4byte gUnk_080CECEC +_08034304: + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08034340 + movs r0, #0xc + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x7e + movs r1, #0 + movs r0, #0xe1 + lsls r0, r0, #3 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + adds r0, #4 + strb r1, [r0] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + ldr r0, _08034344 @ =0x000001A1 + bl sub_080A3268 +_08034340: + pop {r4, pc} + .align 2, 0 +_08034344: .4byte 0x000001A1 + + thumb_func_start sub_08034348 +sub_08034348: @ 0x08034348 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + cmp r0, #0 + beq _0803435C + subs r0, #1 + strh r0, [r1] + b _08034388 +_0803435C: + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + ble _08034370 + subs r0, r2, #1 + strh r0, [r4, #0x36] + b _08034388 +_08034370: + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _08034388 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08034420 +_08034388: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803438C +sub_0803438C: @ 0x0803438C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r1, r0, #0 + cmp r1, #0 + bne _080343A0 + adds r0, r5, #0 + adds r0, #0x45 + strb r1, [r0] + b _08034414 +_080343A0: + subs r2, r0, #1 + strb r2, [r5, #0xe] + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc0 + bls _080343C4 + ldr r0, _080343C0 @ =gUnk_080CED06 + movs r1, #3 + ands r2, r1 + adds r0, r2, r0 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x62 + strb r1, [r0] + b _08034414 + .align 2, 0 +_080343C0: .4byte gUnk_080CED06 +_080343C4: + movs r0, #0x1f + ands r2, r0 + cmp r2, #0 + bne _08034414 + ldr r4, _08034418 @ =gUnk_080CED02 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + adds r0, r5, #0 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08034414 + ldrb r1, [r5, #0xe] + lsrs r1, r1, #4 + ldr r0, _0803441C @ =gUnk_080CECF4 + 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] + 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] +_08034414: + pop {r4, r5, pc} + .align 2, 0 +_08034418: .4byte gUnk_080CED02 +_0803441C: .4byte gUnk_080CECF4 + + thumb_func_start sub_08034420 +sub_08034420: @ 0x08034420 + movs r1, #2 + strb r1, [r0, #0xc] + adds r0, #0x7d + movs r1, #3 + strb r1, [r0] + bx lr + + thumb_func_start sub_0803442C +sub_0803442C: @ 0x0803442C + movs r2, #4 + strb r2, [r0, #0xc] + strb r1, [r0, #0xe] + adds r0, #0x7d + movs r1, #3 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0803443C +sub_0803443C: @ 0x0803443C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7d + movs r0, #0 + strb r0, [r1] + ldr r0, _0803445C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0x1e + bhi _08034460 + adds r0, r2, #0 + bl sub_080344BC + b _08034472 + .align 2, 0 +_0803445C: .4byte gUnk_030010A0 +_08034460: + cmp r0, #0x3c + bhi _0803446C + adds r0, r2, #0 + bl sub_08034498 + b _08034472 +_0803446C: + adds r0, r2, #0 + bl sub_08034474 +_08034472: + pop {pc} + + thumb_func_start sub_08034474 +sub_08034474: @ 0x08034474 + push {r4, lr} + ldr r2, _08034494 @ =gUnk_080CED0C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08034494: .4byte gUnk_080CED0C + + thumb_func_start sub_08034498 +sub_08034498: @ 0x08034498 + push {r4, lr} + ldr r2, _080344B8 @ =gUnk_080CED2C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080344B8: .4byte gUnk_080CED2C + + thumb_func_start sub_080344BC +sub_080344BC: @ 0x080344BC + push {r4, lr} + ldr r2, _080344DC @ =gUnk_080CED4C + adds r4, r0, #0 + adds r4, #0x7c + ldrb r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldrb r0, [r4] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_080344DC: .4byte gUnk_080CED4C + + thumb_func_start sub_080344E0 +sub_080344E0: @ 0x080344E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _080344F8 + adds r0, r4, #0 + bl sub_080345A0 + b _0803451A +_080344F8: + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _0803450C + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034514 +_0803450C: + adds r0, r4, #0 + bl sub_080345B8 + b _0803451A +_08034514: + adds r0, r4, #0 + bl sub_080345A0 +_0803451A: + pop {r4, pc} + + thumb_func_start sub_0803451C +sub_0803451C: @ 0x0803451C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + bne _08034548 + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _0803453C + adds r0, r4, #0 + bl sub_08034638 + b _08034556 +_0803453C: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034550 +_08034548: + adds r0, r4, #0 + bl sub_08034618 + b _08034556 +_08034550: + adds r0, r4, #0 + bl sub_08034638 +_08034556: + pop {r4, pc} + + thumb_func_start sub_08034558 +sub_08034558: @ 0x08034558 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _08034570 + adds r0, r4, #0 + bl sub_08034658 + b _08034576 +_08034570: + adds r0, r4, #0 + bl sub_0803467C +_08034576: + pop {r4, pc} + + thumb_func_start sub_08034578 +sub_08034578: @ 0x08034578 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #0 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #0 + bl sub_080348A4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080345A0 +sub_080345A0: @ 0x080345A0 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #1 + strb r1, [r2] + ldr r1, [r0, #0x78] + movs r2, #1 + bl sub_080348A4 + pop {pc} + + thumb_func_start sub_080345B8 +sub_080345B8: @ 0x080345B8 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #2 + strb r1, [r2] + ldr r1, [r0, #0x74] + movs r2, #1 + bl sub_080348A4 + pop {pc} + + thumb_func_start sub_080345D0 +sub_080345D0: @ 0x080345D0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080345FE + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + cmp r0, #0 + bne _08034616 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + b _08034616 +_080345FE: + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + cmp r0, #0 + bne _08034616 + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 +_08034616: + pop {r4, pc} + + thumb_func_start sub_08034618 +sub_08034618: @ 0x08034618 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #1 + strb r1, [r2] + adds r2, #1 + movs r1, #0xb4 + strh r1, [r2] + ldr r1, [r0, #0x78] + movs r2, #3 + bl sub_080348A4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034638 +sub_08034638: @ 0x08034638 + push {lr} + movs r1, #7 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + movs r1, #2 + strb r1, [r2] + adds r2, #1 + movs r1, #0xb4 + strh r1, [r2] + ldr r1, [r0, #0x74] + movs r2, #3 + bl sub_080348A4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034658 +sub_08034658: @ 0x08034658 + push {r4, lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r4, r0, #0 + adds r4, #0x7d + strb r2, [r4] + ldr r1, [r0, #0x78] + movs r2, #4 + bl sub_080348A4 + cmp r0, #0 + bne _0803467A + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] +_0803467A: + pop {r4, pc} + + thumb_func_start sub_0803467C +sub_0803467C: @ 0x0803467C + push {r4, lr} + movs r2, #0 + movs r1, #8 + strb r1, [r0, #0xc] + adds r4, r0, #0 + adds r4, #0x7d + strb r2, [r4] + ldr r1, [r0, #0x74] + movs r2, #4 + bl sub_080348A4 + cmp r0, #0 + bne _0803469E + ldrb r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4] +_0803469E: + pop {r4, pc} + + thumb_func_start sub_080346A0 +sub_080346A0: @ 0x080346A0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #9 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #6 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #6 + bl sub_080348A4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080346C8 +sub_080346C8: @ 0x080346C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #0xa + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7e + strh r1, [r0] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803470C + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + cmp r0, #0 + beq _080346F6 + ldr r1, [r4, #0x78] + b _0803471C +_080346F6: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + b _0803473A +_0803470C: + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + cmp r0, #0 + beq _08034726 + ldr r1, [r4, #0x74] +_0803471C: + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 + b _0803473A +_08034726: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #8 + bl sub_080348A4 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #7 + bl sub_080348A4 +_0803473A: + pop {r4, pc} + + thumb_func_start sub_0803473C +sub_0803473C: @ 0x0803473C + push {r4, r5, lr} + adds r3, r0, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08034764 + ldr r0, [r3, #0x74] + ldrb r0, [r0, #0xc] + cmp r0, #0x28 + bhi _080347B0 + ldr r0, _08034760 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r0, r1] + adds r2, r0, #0 + subs r2, #0x60 + b _08034776 + .align 2, 0 +_08034760: .4byte gLinkEntity +_08034764: + ldr r0, [r3, #0x78] + ldrb r0, [r0, #0xc] + cmp r0, #0x28 + bhi _080347B0 + ldr r0, _08034790 @ =gLinkEntity + movs r5, #0x2e + ldrsh r0, [r0, r5] + adds r2, r0, #0 + adds r2, #0x60 +_08034776: + ldr r0, _08034794 @ =gUnk_03000BF0 + ldrh r4, [r0, #6] + subs r0, r2, #4 + movs r5, #0x2e + ldrsh r1, [r3, r5] + cmp r0, r1 + bls _08034798 + adds r0, r4, #0 + adds r0, #0xe0 + cmp r0, r1 + blo _080347B0 + movs r0, #8 + b _080347A8 + .align 2, 0 +_08034790: .4byte gLinkEntity +_08034794: .4byte gUnk_03000BF0 +_08034798: + adds r0, r2, #4 + cmp r0, r1 + bhs _080347B0 + adds r0, r4, #0 + adds r0, #0x90 + cmp r0, r1 + bhi _080347B0 + movs r0, #0x18 +_080347A8: + strb r0, [r3, #0x15] + adds r0, r3, #0 + bl sub_0806F69C +_080347B0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080347B4 +sub_080347B4: @ 0x080347B4 + push {r4, r5, lr} + adds r2, r0, #0 + ldr r0, _080347D8 @ =gLinkEntity + movs r1, #0x2e + ldrsh r3, [r0, r1] + ldr r0, _080347DC @ =gUnk_03000BF0 + ldrh r4, [r0, #6] + subs r0, r3, #4 + movs r5, #0x2e + ldrsh r1, [r2, r5] + cmp r0, r1 + bls _080347E0 + adds r0, r4, #0 + adds r0, #0xe0 + cmp r0, r1 + blo _080347F8 + movs r0, #8 + b _080347F0 + .align 2, 0 +_080347D8: .4byte gLinkEntity +_080347DC: .4byte gUnk_03000BF0 +_080347E0: + adds r0, r3, #4 + cmp r0, r1 + bhs _080347F8 + adds r0, r4, #0 + adds r0, #0x90 + cmp r0, r1 + bhi _080347F8 + movs r0, #0x18 +_080347F0: + strb r0, [r2, #0x15] + adds r0, r2, #0 + bl sub_0806F69C +_080347F8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080347FC +sub_080347FC: @ 0x080347FC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08034818 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #5 + bl sub_080348A4 + b _08034822 +_08034818: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #5 + bl sub_080348A4 +_08034822: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r1, [r2] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r2] + pop {r4, pc} + + thumb_func_start sub_08034830 +sub_08034830: @ 0x08034830 + push {r4, lr} + adds r4, r0, #0 + bl sub_080349D8 + cmp r0, #0 + beq _0803484C + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x80 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080345D0 + b _080348A0 +_0803484C: + adds r0, r4, #0 + bl sub_08034A10 + cmp r0, #0 + beq _080348A0 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _08034876 + adds r0, r4, #0 + bl sub_080349D8 + cmp r0, #0 + beq _080348A0 + adds r0, r4, #0 + bl sub_08034420 + b _080348A0 +_08034876: + adds r2, r4, #0 + adds r2, #0x7d + ldrb r0, [r2] + movs r1, #0x20 + orrs r1, r0 + strb r1, [r2] + movs r0, #0x10 + ands r1, r0 + cmp r1, #0 + beq _08034896 + ldr r1, [r4, #0x78] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 + b _080348A0 +_08034896: + ldr r1, [r4, #0x74] + adds r0, r4, #0 + movs r2, #2 + bl sub_080348A4 +_080348A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080348A4 +sub_080348A4: @ 0x080348A4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + ldrb r0, [r3, #0xa] + cmp r0, #0 + bne _080348C6 + movs r2, #5 + movs r0, #0x7d + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x10 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + b _080348C8 +_080348C6: + movs r2, #0xa +_080348C8: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + ands r0, r2 + cmp r0, #0 + beq _080348F0 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r2, [r0] + ldrb r1, [r3, #0xa] + adds r3, r0, #0 + cmp r1, #0 + bne _080348E6 + movs r0, #1 + b _080348E8 +_080348E6: + movs r0, #2 +_080348E8: + orrs r0, r2 + strb r0, [r3] + movs r0, #0 + b _08034998 +_080348F0: + cmp r5, #8 + bhi _08034996 + lsls r0, r5, #2 + ldr r1, _08034900 @ =_08034904 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08034900: .4byte _08034904 +_08034904: @ jump table + .4byte _08034928 @ case 0 + .4byte _0803492E @ case 1 + .4byte _0803493C @ case 2 + .4byte _0803494A @ case 3 + .4byte _0803493C @ case 4 + .4byte _08034958 @ case 5 + .4byte _08034966 @ case 6 + .4byte _0803496C @ case 7 + .4byte _08034982 @ case 8 +_08034928: + movs r0, #3 + strb r0, [r3, #0xc] + b _08034996 +_0803492E: + movs r0, #4 + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7c + movs r0, #3 + strb r0, [r1] + b _08034996 +_0803493C: + movs r0, #4 + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7c + movs r0, #1 + strb r0, [r1] + b _08034996 +_0803494A: + movs r0, #0xf + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #0xb4 + strh r0, [r1] + b _08034996 +_08034958: + movs r0, #0xf + strb r0, [r3, #0xc] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #1 + strh r0, [r1] + b _08034996 +_08034966: + movs r0, #0x1e + strb r0, [r3, #0xc] + b _08034996 +_0803496C: + movs r0, #0x1b + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + movs r1, #5 + bl sub_08004260 + b _08034996 +_08034982: + ldrb r0, [r3, #0xa] + adds r2, r0, #2 + movs r0, #0x36 + adds r1, r2, #0 + bl CreateEnemy + adds r3, r0, #0 + cmp r3, #0 + beq _08034996 + str r4, [r3, #0x50] +_08034996: + movs r0, #1 +_08034998: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803499C +sub_0803499C: @ 0x0803499C + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0xc + beq _080349D0 + adds r0, r3, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _080349D0 + ldr r2, _080349D4 @ =gUnk_080CED6C + ldrb r0, [r3, #0xf] + adds r0, #1 + strb r0, [r3, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r3, #0x36] +_080349D0: + pop {pc} + .align 2, 0 +_080349D4: .4byte gUnk_080CED6C + + thumb_func_start sub_080349D8 +sub_080349D8: @ 0x080349D8 + push {lr} + adds r2, r0, #0 + adds r0, #0x7d + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #3 + beq _08034A08 + cmp r1, #1 + bne _080349F6 + adds r0, r2, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #0xa + b _08034A02 +_080349F6: + cmp r1, #2 + bne _08034A0C + adds r0, r2, #0 + adds r0, #0x80 + ldrb r1, [r0] + movs r0, #5 +_08034A02: + ands r0, r1 + cmp r0, #0 + beq _08034A0C +_08034A08: + movs r0, #1 + b _08034A0E +_08034A0C: + movs r0, #0 +_08034A0E: + pop {pc} + + thumb_func_start sub_08034A10 +sub_08034A10: @ 0x08034A10 + push {r4, lr} + adds r1, r0, #0 + adds r3, r1, #0 + adds r3, #0x7d + ldrb r2, [r3] + movs r0, #0x60 + ands r0, r2 + cmp r0, #0x40 + beq _08034A52 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08034A56 + adds r4, r1, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08034A3E + movs r0, #0x40 + orrs r0, r2 + strb r0, [r3] +_08034A3E: + ldrb r1, [r4] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _08034A7E + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #1 + bne _08034A7E +_08034A52: + movs r0, #1 + b _08034A80 +_08034A56: + adds r4, r1, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r0, #0xa + ands r0, r1 + cmp r0, #0 + beq _08034A6A + movs r0, #0x40 + orrs r0, r2 + strb r0, [r3] +_08034A6A: + ldrb r1, [r4] + movs r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08034A7E + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + beq _08034A52 +_08034A7E: + movs r0, #0 +_08034A80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034A84 +sub_08034A84: @ 0x08034A84 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034A98 + adds r0, r4, #0 + bl sub_0805E7BC + b _08034AC2 +_08034A98: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08034ABA + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08034ABA: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C +_08034AC2: + pop {r4, pc} + + thumb_func_start sub_08034AC4 +sub_08034AC4: @ 0x08034AC4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldr r1, _08034AE8 @ =gUnk_080CED74 + 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 +_08034AE8: .4byte gUnk_080CED74 + + thumb_func_start sub_08034AEC +sub_08034AEC: @ 0x08034AEC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldrb r1, [r0, #0xa] + adds r1, #1 + bl sub_08004260 + ldr r0, _08034B08 @ =0x00000151 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08034B08: .4byte 0x00000151 + + thumb_func_start sub_08034B0C +sub_08034B0C: @ 0x08034B0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08034B1A + subs r0, #1 + b _08034B34 +_08034B1A: + 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 _08034B36 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x50 +_08034B34: + strb r0, [r4, #0xe] +_08034B36: + pop {r4, pc} + + thumb_func_start sub_08034B38 +sub_08034B38: @ 0x08034B38 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08034B58 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _08034B9A +_08034B58: + movs r0, #0xe + bl sub_080A7EE0 + adds r5, r0, #0 + cmp r5, #0 + beq _08034B9A + ldrb r0, [r4, #0xa] + subs r0, #2 + strb r0, [r5, #0xa] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08034B78 + ldrb r1, [r4, #0xe] + movs r0, #0xa8 + subs r0, r0, r1 + b _08034B7C +_08034B78: + ldrb r0, [r4, #0xe] + adds r0, #0x58 +_08034B7C: + strb r0, [r5, #0x15] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + ldr r1, _08034B9C @ =gUnk_080CED84 + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative +_08034B9A: + pop {r4, r5, pc} + .align 2, 0 +_08034B9C: .4byte gUnk_080CED84 + + thumb_func_start sub_08034BA0 +sub_08034BA0: @ 0x08034BA0 + 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 _08034BC4 + ldr r0, [r4, #0x50] + adds r0, #0x7e + movs r1, #0xff + strh r1, [r0] + adds r0, r4, #0 + bl sub_0805E7BC +_08034BC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034BC8 +sub_08034BC8: @ 0x08034BC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08034BDE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08034BDE: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r0, r4, #0 + bl sub_0800445C + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08034BFE + adds r0, r4, #0 + bl sub_08034C00 +_08034BFE: + pop {r4, pc} + + thumb_func_start sub_08034C00 +sub_08034C00: @ 0x08034C00 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _08034C44 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08034C5A + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r2, _08034C48 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + movs r4, #0x32 + ldrsh r1, [r3, r4] + ldrh r2, [r2, #8] + subs r1, r1, r2 + adds r1, #0xd + movs r2, #3 + movs r3, #3 + bl sub_0800293E + cmp r0, #0 + beq _08034C5A + ldr r0, _08034C4C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0x3c + bls _08034C54 + ldr r0, _08034C50 @ =gUnk_080CED88 + bl sub_08080840 + b _08034C5A + .align 2, 0 +_08034C44: .4byte gUnk_03003F80 +_08034C48: .4byte gUnk_03000BF0 +_08034C4C: .4byte gUnk_030010A0 +_08034C50: .4byte gUnk_080CED88 +_08034C54: + ldr r0, _08034C5C @ =gUnk_080CED9C + bl sub_08080840 +_08034C5A: + pop {r4, pc} + .align 2, 0 +_08034C5C: .4byte gUnk_080CED9C + + thumb_func_start sub_08034C60 +sub_08034C60: @ 0x08034C60 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08034C78 @ =gUnk_080CEE90 + 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 +_08034C78: .4byte gUnk_080CEE90 + + thumb_func_start sub_08034C7C +sub_08034C7C: @ 0x08034C7C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #2 + beq _08034C9C + ldr r0, _08034C98 @ =gUnk_080CEEA4 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08034CA2 + .align 2, 0 +_08034C98: .4byte gUnk_080CEEA4 +_08034C9C: + adds r0, r2, #0 + bl sub_08034E18 +_08034CA2: + pop {pc} + + thumb_func_start sub_08034CA4 +sub_08034CA4: @ 0x08034CA4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08034FA0 + ldr r1, _08034CB8 @ =gUnk_080CEE90 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08034CB8: .4byte gUnk_080CEE90 + + thumb_func_start sub_08034CBC +sub_08034CBC: @ 0x08034CBC + push {lr} + bl sub_0804A7D4 + pop {pc} + + thumb_func_start sub_08034CC4 +sub_08034CC4: @ 0x08034CC4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08035084 + cmp r0, #0 + beq _08034D42 + ldrb r0, [r5, #0xa] + adds r0, #1 + movs r1, #0 + strb r0, [r5, #0xc] + strb r1, [r5, #0xf] + adds r2, r5, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #1 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0x96 + lsls r0, r0, #3 + strh r0, [r1] + adds r0, r5, #0 + bl sub_08034F70 + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + ldr r0, _08034D44 @ =0x00004022 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08034D48 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + movs r0, #0x37 + movs r1, #2 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _08034D42 + str r1, [r5, #0x54] + str r5, [r1, #0x50] + adds r0, r5, #0 + bl sub_0806FA24 +_08034D42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08034D44: .4byte 0x00004022 +_08034D48: .4byte gUnk_03000BF0 + + thumb_func_start sub_08034D4C +sub_08034D4C: @ 0x08034D4C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08004274 + adds r6, r5, #0 + adds r6, #0x78 + ldrh r0, [r6] + subs r0, #1 + strh r0, [r6] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08034DC4 + ldrb r0, [r5, #0xf] + cmp r0, #7 + bhi _08034DBC + movs r0, #0x4b + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _08034DBC + bl sub_08000E50 + movs r1, #5 + bl __modsi3 + adds r0, #0xc + strb r0, [r4, #0x15] + ldr r1, _08034DB8 @ =gUnk_03000BF0 + ldrh r0, [r1, #0x1e] + lsrs r0, r0, #1 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + adds r0, #8 + strh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + str r5, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A04 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r6] + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + b _08034DC4 + .align 2, 0 +_08034DB8: .4byte gUnk_03000BF0 +_08034DBC: + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0x78 + strh r0, [r1] +_08034DC4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08034DC8 +sub_08034DC8: @ 0x08034DC8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08034E10 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08034E0E + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08034E14 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r4, r5] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + bl sub_0805E780 +_08034E0E: + pop {r4, r5, pc} + .align 2, 0 +_08034E10: .4byte gUnk_030010A0 +_08034E14: .4byte gUnk_03000BF0 + + thumb_func_start sub_08034E18 +sub_08034E18: @ 0x08034E18 + push {lr} + ldr r2, _08034E2C @ =gUnk_080CEEB0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08034E2C: .4byte gUnk_080CEEB0 + + thumb_func_start sub_08034E30 +sub_08034E30: @ 0x08034E30 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xa] + adds r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034E68 +sub_08034E68: @ 0x08034E68 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034EBC + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + beq _08034E8A + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08035120 +_08034E8A: + ldr r0, _08034EB0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08034EB8 + bl sub_08079F8C + cmp r0, #0 + beq _08034EBC + movs r0, #3 + strb r0, [r4, #0xc] + ldr r1, _08034EB4 @ =gUnk_08012E20 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + b _08034EBC + .align 2, 0 +_08034EB0: .4byte gUnk_030010A0 +_08034EB4: .4byte gUnk_08012E20 +_08034EB8: + bl sub_0805E780 +_08034EBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08034EC0 +sub_08034EC0: @ 0x08034EC0 + push {lr} + adds r1, r0, #0 + ldr r0, [r1, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08034ED6 + adds r0, r1, #0 + bl sub_08035120 + bl sub_0805E780 +_08034ED6: + pop {pc} + + thumb_func_start sub_08034ED8 +sub_08034ED8: @ 0x08034ED8 + push {lr} + movs r1, #0 + bl sub_0807DDAC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034EE4 +sub_08034EE4: @ 0x08034EE4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08034F46 + bl sub_08000E50 + adds r4, r0, #0 + ldr r0, _08034F50 @ =gUnk_080CEEC8 + movs r1, #3 + ands r1, r4 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r5, #0 + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _08034F46 + lsrs r1, r4, #2 + movs r0, #0x77 + ands r1, r0 + lsls r1, r1, #1 + adds r1, #1 + ldr r2, _08034F54 @ =gUnk_03000BF0 + ldrh r0, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + lsrs r1, r4, #9 + movs r0, #0x7e + ands r1, r0 + adds r1, #1 + ldrh r0, [r2, #0xc] + adds r0, r0, r1 + strh r0, [r3, #0x32] + adds r1, r3, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r3, #0 + bl sub_08016A04 +_08034F46: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + pop {r4, r5, pc} + .align 2, 0 +_08034F50: .4byte gUnk_080CEEC8 +_08034F54: .4byte gUnk_03000BF0 + + thumb_func_start sub_08034F58 +sub_08034F58: @ 0x08034F58 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08034F6C @ =gUnk_0813ABA8 + bl sub_08080840 + adds r0, r4, #0 + bl sub_0805E7BC + pop {r4, pc} + .align 2, 0 +_08034F6C: .4byte gUnk_0813ABA8 + + thumb_func_start sub_08034F70 +sub_08034F70: @ 0x08034F70 + push {lr} + adds r2, r0, #0 + ldr r0, _08034F8C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x45 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bls _08034F90 + movs r0, #0 + b _08034F9A + .align 2, 0 +_08034F8C: .4byte gUnk_030010A0 +_08034F90: + cmp r0, #0x1e + bls _08034F98 + movs r0, #1 + b _08034F9A +_08034F98: + movs r0, #2 +_08034F9A: + strb r0, [r2, #0xb] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08034FA0 +sub_08034FA0: @ 0x08034FA0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x3d + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08034FC0 + ldr r0, [r4, #0x54] + adds r0, #0x3d + strb r1, [r0] + movs r0, #0xc + movs r1, #1 + bl sub_08080964 +_08034FC0: + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08035008 + cmp r0, #1 + beq _08035020 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + bne _08035040 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08035004 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_0807BA8C + b _08035040 + .align 2, 0 +_08035004: .4byte gUnk_03000BF0 +_08035008: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x3b + bhi _08035040 + ldr r0, _0803501C @ =gUnk_030010A0 + adds r0, #0x39 + movs r1, #0x3c + b _08035032 + .align 2, 0 +_0803501C: .4byte gUnk_030010A0 +_08035020: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x1d + bhi _08035040 + ldr r0, _0803503C @ =gUnk_030010A0 + adds r0, #0x39 + movs r1, #0x1e +_08035032: + strb r1, [r0] + adds r0, r4, #0 + bl sub_08035050 + b _08035048 + .align 2, 0 +_0803503C: .4byte gUnk_030010A0 +_08035040: + ldr r0, _0803504C @ =gUnk_030010A0 + ldrb r1, [r5] + adds r0, #0x39 + strb r1, [r0] +_08035048: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803504C: .4byte gUnk_030010A0 + + thumb_func_start sub_08035050 +sub_08035050: @ 0x08035050 + push {r4, lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + movs r4, #0 + strb r1, [r0, #0x10] + adds r0, #0x45 + strb r4, [r0] + movs r0, #0x4b + movs r1, #0 + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _08035082 + movs r0, #1 + strb r0, [r2, #0xb] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl sub_08016A04 +_08035082: + pop {r4, pc} + + thumb_func_start sub_08035084 +sub_08035084: @ 0x08035084 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _08035118 + ldr r0, _080350A0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x42 + bls _080350A4 + movs r0, #0 + b _0803511A + .align 2, 0 +_080350A0: .4byte gUnk_03003DBC +_080350A4: + ldr r4, _080350D8 @ =gUnk_030010D8 +_080350A6: + bl sub_08000E50 + movs r1, #6 + bl __modsi3 + adds r6, r0, #0 + ldrb r0, [r4] + lsrs r0, r0, #4 + cmp r6, r0 + beq _080350A6 + ldr r2, _080350DC @ =gUnk_030010A0 + adds r2, #0x38 + ldrb r1, [r2] + movs r0, #0xf + ands r0, r1 + lsls r1, r6, #4 + orrs r0, r1 + strb r0, [r2] + movs r5, #0 + ldr r4, _080350E0 @ =gUnk_080CEECC + ldr r7, _080350E4 @ =gUnk_03000BF0 +_080350D0: + cmp r5, r6 + bne _080350E8 + mov r2, r8 + b _080350F2 + .align 2, 0 +_080350D8: .4byte gUnk_030010D8 +_080350DC: .4byte gUnk_030010A0 +_080350E0: .4byte gUnk_080CEECC +_080350E4: .4byte gUnk_03000BF0 +_080350E8: + movs r0, #0x37 + movs r1, #1 + bl CreateEnemy + adds r2, r0, #0 +_080350F2: + ldrh r0, [r7, #6] + ldrb r1, [r4] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r7, #8] + ldrb r1, [r4, #1] + adds r0, r0, r1 + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A04 + adds r5, #1 + adds r4, #2 + cmp r5, #5 + bls _080350D0 +_08035118: + movs r0, #1 +_0803511A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08035120 +sub_08035120: @ 0x08035120 + push {r4, r5, r6, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0803515C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + movs r6, #0 + ldr r5, _08035160 @ =gUnk_080CEED8 +_08035146: + movs r2, #0 + ldrsh r0, [r5, r2] + adds r0, r4, r0 + bl sub_0807B600 + adds r5, #2 + adds r6, #1 + cmp r6, #0x17 + bls _08035146 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803515C: .4byte gUnk_03000BF0 +_08035160: .4byte gUnk_080CEED8 + + thumb_func_start sub_08035164 +sub_08035164: @ 0x08035164 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0803518C + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + ands r1, r2 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803518C: + adds r0, r4, #0 + bl sub_08035194 + pop {r4, pc} + + thumb_func_start sub_08035194 +sub_08035194: @ 0x08035194 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _080351A8 + ldr r0, _080351A4 @ =gUnk_080CEF34 + b _080351AA + .align 2, 0 +_080351A4: .4byte gUnk_080CEF34 +_080351A8: + ldr r0, _080351B8 @ =gUnk_080CEF58 +_080351AA: + ldrb r1, [r2, #0x1e] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r2, #0x48] + pop {pc} + .align 2, 0 +_080351B8: .4byte gUnk_080CEF58 + + thumb_func_start sub_080351BC +sub_080351BC: @ 0x080351BC + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _080351D4 @ =gUnk_080CF040 + 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 +_080351D4: .4byte gUnk_080CF040 + + thumb_func_start sub_080351D8 +sub_080351D8: @ 0x080351D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + cmp r1, #0 + bne _08035204 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080368D8 + adds r0, r4, #0 + bl sub_0803520C + b _08035208 +_08035204: + bl sub_0805E780 +_08035208: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803520C +sub_0803520C: @ 0x0803520C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + bne _08035238 + ldrb r0, [r4, #0xd] + cmp r0, #3 + beq _0803524C + ldr r2, _08035234 @ =gUnk_03000BF0 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r0, [r1, #0xc] + str r0, [r2, #0x30] + movs r0, #0x5a + strb r0, [r1, #7] + bl sub_08078B48 + b _0803524C + .align 2, 0 +_08035234: .4byte gUnk_03000BF0 +_08035238: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #7] + cmp r0, #0 + beq _0803524C + subs r0, #1 + strb r0, [r1, #7] + bl sub_08078B48 +_0803524C: + ldr r1, _08035284 @ =gUnk_080CF054 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xd] + cmp r0, #3 + bls _08035266 + bl sub_08078B48 +_08035266: + adds r0, r4, #0 + bl sub_0800445C + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_08035284: .4byte gUnk_080CF054 + + thumb_func_start sub_08035288 +sub_08035288: @ 0x08035288 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x76 + movs r4, #0 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r3, r2, #0 + adds r3, #0x84 + ldr r0, [r3] + strb r4, [r0, #6] + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #4 + bne _080352C8 + strb r0, [r2, #0xd] + ldr r0, _080352C4 @ =gUnk_02034490 + movs r1, #1 + strb r1, [r0] + bl sub_08078B48 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + b _080352FA + .align 2, 0 +_080352C4: .4byte gUnk_02034490 +_080352C8: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080352DA + strb r4, [r2, #0xb] + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x3c + b _080352F4 +_080352DA: + ldr r1, [r3] + ldrb r0, [r1, #1] + cmp r0, #3 + bls _080352E6 + subs r0, #1 + strb r0, [r1, #1] +_080352E6: + ldr r0, [r3] + ldr r0, [r0, #0xc] + adds r0, #0x7d + strb r4, [r0] + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x78 +_080352F4: + strb r0, [r1] + movs r0, #1 + strb r0, [r2, #0xd] +_080352FA: + pop {r4, pc} + + thumb_func_start sub_080352FC +sub_080352FC: @ 0x080352FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r6, #1 + adds r4, r6, #0 + ands r4, r0 + cmp r4, #0 + bne _080353EC + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r1, [r1, #0xc] + adds r1, #0x7d + ldrb r2, [r1] + mov sb, r0 + cmp r2, #0 + beq _0803532C + subs r0, r2, #1 + strb r0, [r1] +_0803532C: + ldr r3, _0803538C @ =gUnk_03000BF0 + movs r0, #0x84 + lsls r0, r0, #1 + adds r1, r0, #0 + ldrh r2, [r3, #6] + adds r1, r1, r2 + ldrh r0, [r5, #0x2e] + subs r1, r1, r0 + adds r1, #4 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrh r0, [r3, #8] + ldrh r2, [r5, #0x32] + subs r0, r0, r2 + adds r0, #0x8c + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r1, #8 + bhi _08035356 + cmp r0, #8 + bls _08035394 +_08035356: + mov r1, sb + ldr r0, [r1] + strb r6, [r0, #2] + ldrh r0, [r3, #6] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r2, _08035390 @ =0xFFFFFEF8 + adds r1, r1, r2 + subs r0, r0, r1 + ldrh r1, [r3, #8] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r2, #0x88 + subs r1, r1, r2 + bl sub_080045DA + asrs r0, r0, #3 + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_080AEF88 + adds r7, r5, #0 + adds r7, #0x79 + b _08035456 + .align 2, 0 +_0803538C: .4byte gUnk_03000BF0 +_08035390: .4byte 0xFFFFFEF8 +_08035394: + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _080353D8 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #0 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #1 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #2 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #3 + bl sub_080A2988 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #5 + movs r3, #4 + bl sub_080A2988 + strb r6, [r5, #0xb] +_080353D8: + mov r1, sb + ldr r0, [r1] + strb r4, [r0, #2] + adds r1, r5, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r7, r1, #0 + b _08035456 +_080353EC: + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r1, [r1, #1] + subs r4, r1, #1 + mov sb, r0 + adds r7, r5, #0 + adds r7, #0x79 + cmp r4, #0 + beq _08035438 + mov ip, sb + movs r2, #1 + mov sl, r2 + lsls r0, r4, #2 + subs r6, r0, #4 + movs r3, #3 + mov r8, r3 +_0803540E: + mov r1, ip + ldr r0, [r1] + adds r0, #0xc + adds r0, r0, r6 + ldr r3, [r0] + ldrb r2, [r3, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + mov r0, sl + orrs r1, r0 + mov r0, r8 + ands r1, r0 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] + subs r6, #4 + subs r4, #1 + cmp r4, #0 + bne _0803540E +_08035438: + ldr r1, _080354AC @ =gUnk_030010A0 + ldr r0, [r1] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08035450 + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #6 + movs r3, #0 + bl sub_080A2988 +_08035450: + ldrb r0, [r7] + subs r0, #1 + strb r0, [r7] +_08035456: + ldrb r0, [r7] + cmp r0, #0 + bne _080354E8 + movs r0, #2 + strb r0, [r5, #0xd] + adds r4, r5, #0 + adds r4, #0x7c + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r0, r5, #0 + bl sub_080AE068 + ldrb r1, [r4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080354B0 + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x5f + strb r0, [r1] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r5, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xef + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xef + bl sub_08036F14 + mov r2, sb + ldr r0, [r2] + ldr r0, [r0, #0xc] + movs r1, #1 + bl sub_080042AC + b _080354DC + .align 2, 0 +_080354AC: .4byte gUnk_030010A0 +_080354B0: + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x61 + strb r0, [r1] + ldr r1, _080354F4 @ =0x00000109 + adds r0, r5, #0 + bl sub_080ADF80 + adds r0, r5, #0 + movs r1, #0xf0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xf3 + bl sub_08036F14 + mov r3, sb + ldr r0, [r3] + ldr r0, [r0, #0xc] + movs r1, #2 + bl sub_080042AC +_080354DC: + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #8 + movs r3, #0 + bl sub_080A2988 +_080354E8: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080354F4: .4byte 0x00000109 + + thumb_func_start sub_080354F8 +sub_080354F8: @ 0x080354F8 + push {lr} + adds r1, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7d + ldrb r0, [r2] + cmp r0, #0x80 + beq _08035512 + adds r0, #1 + strb r0, [r2] + b _08035522 +_08035512: + movs r0, #3 + strb r0, [r1, #0xd] + adds r1, #0x79 + movs r0, #0x96 + strb r0, [r1] + ldr r1, _08035524 @ =gUnk_03000BF0 + ldr r0, _08035528 @ =gLinkEntity + str r0, [r1, #0x30] +_08035522: + pop {pc} + .align 2, 0 +_08035524: .4byte gUnk_03000BF0 +_08035528: .4byte gLinkEntity + + thumb_func_start sub_0803552C +sub_0803552C: @ 0x0803552C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + movs r3, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035570 + ldr r1, _08035574 @ =gUnk_080CF070 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x45 + strb r0, [r1] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + movs r0, #1 + strb r0, [r2, #0xc] + strb r3, [r2, #0xd] + adds r0, r2, #0 + adds r0, #0x7e + strb r3, [r0] + adds r0, r2, #0 + bl sub_08036DA0 +_08035570: + pop {pc} + .align 2, 0 +_08035574: .4byte gUnk_080CF070 + + thumb_func_start sub_08035578 +sub_08035578: @ 0x08035578 + push {lr} + movs r1, #5 + strb r1, [r0, #0xd] + movs r1, #0x87 + movs r2, #9 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08035592 + ldr r0, _08035594 @ =gUnk_03000BF0 + str r1, [r0, #0x30] +_08035592: + pop {pc} + .align 2, 0 +_08035594: .4byte gUnk_03000BF0 + + thumb_func_start sub_08035598 +sub_08035598: @ 0x08035598 + adds r2, r0, #0 + movs r1, #0 + movs r0, #6 + strb r0, [r2, #0xd] + adds r3, r2, #0 + adds r3, #0x79 + movs r0, #0x78 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #2 + strb r1, [r0] + bx lr + + thumb_func_start sub_080355B4 +sub_080355B4: @ 0x080355B4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r1, r7, #0 + adds r1, #0x7b + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + adds r1, #6 + ldrb r0, [r1] + adds r0, #8 + strb r0, [r1] + adds r4, r7, #0 + adds r4, #0x80 + ldrb r1, [r4] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _080355FA + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + ldrb r1, [r4] + subs r1, r1, r0 + strb r1, [r4] + ands r1, r5 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + bne _08035616 + b _08035614 +_080355FA: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + ldrb r2, [r4] + adds r1, r0, r2 + strb r1, [r4] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x18 + bls _08035616 + movs r0, #0x80 + orrs r1, r0 +_08035614: + strb r1, [r4] +_08035616: + ldr r0, _080356E4 @ =gUnk_080C9160 + mov r8, r0 + movs r1, #0x81 + adds r1, r1, r7 + mov sb, r1 + ldrb r0, [r1] + lsls r0, r0, #1 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r6, r7, #0 + adds r6, #0x80 + ldrb r2, [r6] + movs r4, #0x7f + adds r1, r4, #0 + ands r1, r2 + lsls r1, r1, #8 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r5, #0x80 + lsls r5, r5, #1 + adds r1, r5, #0 + bl sub_0806FA04 + lsrs r0, r0, #8 + adds r1, r7, #0 + adds r1, #0x62 + strb r0, [r1] + mov r1, sb + ldrb r0, [r1] + adds r0, #0x40 + lsls r0, r0, #1 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + ldrb r1, [r6] + ands r4, r1 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r5, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + rsbs r0, r0, #0 + asrs r0, r0, #0x10 + adds r1, r7, #0 + adds r1, #0x63 + strb r0, [r1] + adds r1, #0x16 + ldrb r0, [r1] + cmp r0, #0 + bne _080356EC + ldr r0, _080356E8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080356B2 + adds r0, r7, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #0x20] + movs r1, #0x48 + movs r2, #0 + bl CreateFX +_080356B2: + adds r1, r7, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x79 + bne _080356F0 + adds r0, r7, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #8] + adds r0, #0x45 + movs r1, #1 + strb r1, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r7, #0 + bl sub_0804A7D4 + b _080356F0 + .align 2, 0 +_080356E4: .4byte gUnk_080C9160 +_080356E8: .4byte gUnk_030010A0 +_080356EC: + subs r0, #1 + strb r0, [r1] +_080356F0: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080356F8 +sub_080356F8: @ 0x080356F8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08035718 @ =gUnk_080CF078 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0x19] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x19] + pop {r4, pc} + .align 2, 0 +_08035718: .4byte gUnk_080CF078 + + thumb_func_start sub_0803571C +sub_0803571C: @ 0x0803571C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bls _0803573A + b _08035974 +_0803573A: + lsls r0, r0, #2 + ldr r1, _08035744 @ =_08035748 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08035744: .4byte _08035748 +_08035748: @ jump table + .4byte _08035764 @ case 0 + .4byte _080358D8 @ case 1 + .4byte _080358D8 @ case 2 + .4byte _080358D8 @ case 3 + .4byte _080358D8 @ case 4 + .4byte _08035920 @ case 5 + .4byte _08035940 @ case 6 +_08035764: + 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 r0, #0x7c + movs r5, #0 + strb r5, [r0] + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x30 + bl sub_0801D8E0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x84 + str r2, [r0] + mov r8, r0 + cmp r2, #0 + bne _0803579E + adds r0, r4, #0 + bl sub_0804A7D4 + b _080359A6 +_0803579E: + str r2, [r4, #0x64] + mov r1, r8 + ldr r0, [r1] + strb r5, [r0, #6] + ldr r1, [r1] + movs r0, #2 + strb r0, [r1] + mov r2, r8 + ldr r0, [r2] + strb r5, [r0, #2] + ldr r1, [r2] + movs r0, #5 + strb r0, [r1, #1] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x6d + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r0, #6 + strh r5, [r0] + movs r5, #0 + movs r0, #0x79 + adds r0, r0, r4 + mov sb, r0 + mov r7, r8 +_080357E6: + adds r6, r5, #1 + movs r0, #0x39 + adds r1, r6, #0 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08035816 + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r7] + lsls r0, r5, #2 + adds r1, #0x20 + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_08035816: + adds r5, r6, #0 + cmp r5, #3 + bls _080357E6 + movs r0, #0x39 + movs r1, #5 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08035840 + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + mov r2, r8 + ldr r1, [r2] + str r1, [r0] +_08035840: + movs r0, #0x39 + movs r1, #6 + bl CreateEnemy + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _0803586A + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + mov r2, r8 + ldr r1, [r2] + str r1, [r0] + ldr r1, [r2] + ldr r0, [r4, #0x54] + str r0, [r1, #0xc] +_0803586A: + movs r5, #0 + mov r7, r8 +_0803586E: + movs r0, #0x39 + movs r1, #7 + bl CreateEnemy + str r0, [r4, #0x54] + adds r6, r5, #1 + cmp r0, #0 + beq _080358A0 + strb r5, [r0, #0xb] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x54] + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r0, #0x84 + ldr r1, [r7] + str r1, [r0] + ldr r1, [r7] + lsls r0, r6, #2 + adds r1, #0xc + adds r1, r1, r0 + ldr r0, [r4, #0x54] + str r0, [r1] +_080358A0: + adds r5, r6, #0 + cmp r5, #3 + bls _0803586E + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x3c + mov r1, sb + strb r0, [r1] + ldr r1, _080358D0 @ =gLinkEntity + ldrb r2, [r1, #0x18] + subs r0, #0x40 + ands r0, r2 + strb r0, [r1, #0x18] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + subs r0, #0xa0 + strh r0, [r1, #0x32] + ldr r0, _080358D4 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + b _08035974 + .align 2, 0 +_080358D0: .4byte gLinkEntity +_080358D4: .4byte gUnk_03000BF0 +_080358D8: + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + ldrb r1, [r4, #0xa] + movs r2, #2 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080358F4 + strb r2, [r4, #0xf] + b _080358F8 +_080358F4: + movs r0, #0xfe + strb r0, [r4, #0xf] +_080358F8: + adds r0, r4, #0 + adds r0, #0x74 + movs r2, #0x80 + lsls r2, r2, #1 + strh r2, [r0] + ldrb r1, [r4, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08035918 + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xff + lsls r0, r0, #8 + strh r0, [r1] + b _08035974 +_08035918: + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _08035974 +_08035920: + adds r0, r4, #0 + adds r0, #0x76 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1c + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + str r4, [r0, #8] + b _08035974 +_08035940: + adds r0, r4, #0 + adds r0, #0x76 + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x7d + movs r0, #0x80 + strb r0, [r1] +_08035974: + ldrb r0, [r4, #0xa] + cmp r0, #6 + beq _08035990 + ldr r0, _0803598C @ =gUnk_080CF08C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08004260 + b _080359A0 + .align 2, 0 +_0803598C: .4byte gUnk_080CF08C +_08035990: + ldr r0, _080359B0 @ =gUnk_080CF08C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080042AC +_080359A0: + adds r0, r4, #0 + bl sub_08035B94 +_080359A6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080359B0: .4byte gUnk_080CF08C + + thumb_func_start sub_080359B4 +sub_080359B4: @ 0x080359B4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldr r1, _080359F0 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036F60 + ldr r1, _080359F4 @ =gUnk_080CF0AC + ldrb r0, [r4, #0xd] + 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, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_080359F0: .4byte gUnk_02034490 +_080359F4: .4byte gUnk_080CF0AC + + thumb_func_start sub_080359F8 +sub_080359F8: @ 0x080359F8 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035A22 + movs r0, #1 + strb r0, [r2, #0xd] + adds r1, #9 + adds r0, #0xff + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #2 + strb r0, [r1] +_08035A22: + pop {pc} + + thumb_func_start sub_08035A24 +sub_08035A24: @ 0x08035A24 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0x80 + bne _08035A54 + adds r2, r4, #0 + adds r2, #0x79 + movs r1, #0 + movs r0, #0x3c + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0] + ldr r0, _08035A50 @ =0x00000159 + bl sub_080A3268 + b _08035A64 + .align 2, 0 +_08035A50: .4byte 0x00000159 +_08035A54: + adds r1, r4, #0 + adds r1, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_08035A64: + adds r0, r4, #0 + movs r1, #0xf + bl sub_08036FAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08035A70 +sub_08035A70: @ 0x08035A70 + push {r4, lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035AA8 + movs r0, #3 + strb r0, [r2, #0xd] + movs r0, #0x3c + strb r0, [r1] + ldr r2, _08035AAC @ =gLinkEntity + ldrb r3, [r2, #0x18] + lsls r1, r3, #0x1e + lsrs r1, r1, #0x1e + movs r4, #1 + orrs r1, r4 + subs r0, #0x40 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, #0x18] + ldr r0, _08035AB0 @ =gUnk_03000BF0 + str r2, [r0, #0x30] + strb r4, [r0, #0xe] +_08035AA8: + pop {r4, pc} + .align 2, 0 +_08035AAC: .4byte gLinkEntity +_08035AB0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08035AB4 +sub_08035AB4: @ 0x08035AB4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r6, #0 + adds r5, #0x79 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035AE4 + ldr r1, _08035AE8 @ =gLinkEntity + movs r0, #0x10 + strb r0, [r1, #0x15] + movs r4, #4 + strb r4, [r1, #0x14] + movs r0, #0x1e + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + movs r0, #0x3c + strb r0, [r5] + strb r4, [r6, #0xd] +_08035AE4: + pop {r4, r5, r6, pc} + .align 2, 0 +_08035AE8: .4byte gLinkEntity + + thumb_func_start sub_08035AEC +sub_08035AEC: @ 0x08035AEC + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x79 + ldrb r0, [r2] + subs r1, r0, #1 + strb r1, [r2] + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035B18 + movs r0, #5 + strb r0, [r3, #0xd] + movs r0, #0x2d + strb r0, [r2] + ldr r1, _08035B14 @ =gLinkEntity + movs r0, #0 + strb r0, [r1, #0x14] + b _08035B2C + .align 2, 0 +_08035B14: .4byte gLinkEntity +_08035B18: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bne _08035B2C + ldr r0, _08035B30 @ =gLinkEntity + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #0xc + bl sub_080A2CFC +_08035B2C: + pop {pc} + .align 2, 0 +_08035B30: .4byte gLinkEntity + + thumb_func_start sub_08035B34 +sub_08035B34: @ 0x08035B34 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r2, _08035B70 @ =gLinkEntity + ldrb r5, [r2, #0x14] + cmp r5, #4 + bne _08035B7C + adds r2, r3, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bls _08035B92 + movs r4, #0 + movs r0, #1 + strb r0, [r3, #0xc] + strb r4, [r3, #0xd] + ldr r0, _08035B74 @ =gUnk_03000BF0 + strb r5, [r0, #0xe] + adds r0, r3, #0 + bl sub_08036C90 + ldr r0, _08035B78 @ =gUnk_02034490 + strb r4, [r0] + movs r0, #0x2e + bl sub_080A3268 + b _08035B92 + .align 2, 0 +_08035B70: .4byte gLinkEntity +_08035B74: .4byte gUnk_03000BF0 +_08035B78: .4byte gUnk_02034490 +_08035B7C: + adds r1, r3, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08035B92 + movs r0, #4 + strb r0, [r2, #0x14] +_08035B92: + pop {r4, r5, pc} + + thumb_func_start sub_08035B94 +sub_08035B94: @ 0x08035B94 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _08035BAE + ldr r0, [r5, #0x50] + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x3d + strb r0, [r1] +_08035BAE: + ldrb r0, [r5, #0xa] + cmp r0, #7 + bls _08035BB6 + b _08035F6C +_08035BB6: + lsls r0, r0, #2 + ldr r1, _08035BC0 @ =_08035BC4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08035BC0: .4byte _08035BC4 +_08035BC4: @ jump table + .4byte _08035F16 @ case 0 + .4byte _08035BE4 @ case 1 + .4byte _08035BE4 @ case 2 + .4byte _08035BE4 @ case 3 + .4byte _08035BE4 @ case 4 + .4byte _08035E78 @ case 5 + .4byte _08035DB0 @ case 6 + .4byte _08035D14 @ case 7 +_08035BE4: + ldr r0, [r5, #0x50] + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08035BF6 + bl sub_0805E780 +_08035BF6: + adds r1, r5, #0 + adds r1, #0x84 + ldr r0, [r1] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + adds r6, r1, #0 + adds r7, r5, #0 + adds r7, #0x76 + movs r1, #0x74 + adds r1, r1, r5 + mov r8, r1 + cmp r0, #1 + bne _08035C42 + ldrh r1, [r7] + movs r2, #0 + ldrsh r0, [r7, r2] + cmp r0, #0 + bge _08035C20 + subs r0, r1, #4 + b _08035C22 +_08035C20: + adds r0, r1, #4 +_08035C22: + strh r0, [r7] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r2, [r0] + movs r3, #0 + ldrsh r1, [r0, r3] + mov r8, r0 + cmp r1, #0 + bge _08035C3C + subs r0, r2, #4 + mov r1, r8 + strh r0, [r1] + b _08035C42 +_08035C3C: + adds r0, r2, #4 + mov r2, r8 + strh r0, [r2] +_08035C42: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r6] + ldrb r0, [r0, #2] + cmp r0, #0 + bne _08035C66 + ldr r1, [r5, #0x50] + ldrb r0, [r1, #0xc] + cmp r0, #3 + beq _08035C66 + ldrb r0, [r1, #0xd] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08035C82 +_08035C66: + movs r0, #0xf + ldrsb r0, [r5, r0] + cmp r0, #0 + bge _08035C76 + ldr r0, [r6] + ldrb r0, [r0] + rsbs r0, r0, #0 + b _08035C7A +_08035C76: + ldr r0, [r6] + ldrb r0, [r0] +_08035C7A: + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08036998 +_08035C82: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + lsls r0, r3, #0xd + lsrs r3, r0, #8 + ldr r0, _08035CB0 @ =0xFFFFE000 + adds r3, r3, r0 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bne _08035CB4 + movs r1, #0x88 + lsls r1, r1, #6 + adds r3, r3, r1 + b _08035CBC + .align 2, 0 +_08035CB0: .4byte 0xFFFFE000 +_08035CB4: + lsrs r0, r3, #1 + movs r2, #0x88 + lsls r2, r2, #6 + adds r3, r0, r2 +_08035CBC: + adds r2, r4, #0 + adds r2, #0x7b + ldr r1, _08035D0C @ =gUnk_080CF0D8 + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r2, [r2] + adds r0, r0, r2 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_08036914 + ldr r2, [r5, #0x50] + adds r2, #0x7b + ldr r1, _08035D10 @ =gUnk_080CF0DC + ldrb r0, [r5, #0xa] + subs r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r2, [r2] + adds r1, r1, r2 + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + adds r0, r0, r1 + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + ldrh r1, [r7] + mov r3, r8 + ldrh r2, [r3] + adds r0, r5, #0 + adds r0, #0x7a + ldrh r3, [r0] + b _08035E70 + .align 2, 0 +_08035D0C: .4byte gUnk_080CF0D8 +_08035D10: .4byte gUnk_080CF0DC +_08035D14: + adds r4, r5, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bhi _08035D28 + bl sub_0805E780 +_08035D28: + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #2 + ldrb r1, [r5, #0xb] + cmp r0, r1 + bge _08035D38 + bl sub_0805E780 +_08035D38: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r0, #2 + ldrb r2, [r5, #0xb] + cmp r0, r2 + bne _08035D8A + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAB0 + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + lsls r0, r3, #0xd + lsrs r3, r0, #8 + adds r4, #0x7b + ldrb r0, [r4] + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_08036914 + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] +_08035D8A: + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08035D9C + b _08035F6C +_08035D9C: + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + orrs r1, r3 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + b _08035F6C +_08035DB0: + adds r6, r5, #0 + adds r6, #0x84 + ldr r0, [r6] + ldr r0, [r0, #8] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #1 + bhi _08035DC4 + bl sub_0805E780 +_08035DC4: + adds r0, r5, #0 + bl sub_080042B8 + ldr r0, [r5, #0x50] + adds r0, #0x7c + ldrb r1, [r0] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08035E24 + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r0, r5, #0 + movs r2, #0x10 + bl sub_08036AF0 + adds r2, r5, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r3, #0x7f + adds r0, r3, #0 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #7 + bne _08035E56 + ldrb r1, [r5, #0x10] + adds r0, r3, #0 + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + str r1, [r5, #0x54] + cmp r1, #0 + beq _08035E56 + ldr r0, [r5, #0x50] + str r0, [r1, #0x50] + ldr r0, [r5, #0x54] + adds r0, #0x84 + ldr r1, [r6] + str r1, [r0] + b _08035E56 +_08035E24: + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r2, [r5, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + orrs r1, r3 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + bl sub_08036998 + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + adds r0, r5, #0 + movs r2, #4 + bl sub_080369D0 + adds r4, r5, #0 + adds r4, #0x41 +_08035E56: + movs r0, #0 + strb r0, [r4] + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + rsbs r3, r3, #0 + movs r0, #0x80 + lsls r0, r0, #8 + eors r3, r0 +_08035E70: + adds r0, r5, #0 + bl sub_0805EC9C + b _08035F6C +_08035E78: + adds r4, r5, #0 + adds r4, #0x45 + ldrb r0, [r4] + cmp r0, #1 + bne _08035E88 + movs r0, #0 + strb r0, [r4] + b _08035F6C +_08035E88: + ldr r0, [r5, #0x50] + adds r1, r5, #0 + bl sub_0806FAD8 + ldr r0, [r5, #0x50] + ldrb r0, [r0, #0xd] + adds r7, r5, #0 + adds r7, #0x76 + adds r6, r5, #0 + adds r6, #0x79 + cmp r0, #4 + beq _08035EC2 + ldrb r0, [r4] + cmp r0, #1 + beq _08035EC2 + ldrb r0, [r6] + cmp r0, #0x1c + bls _08035EB0 + subs r0, #1 + strb r0, [r6] +_08035EB0: + ldrh r0, [r7] + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _08035EC0 + subs r0, #1 + strh r0, [r7] + b _08035EC2 +_08035EC0: + strh r1, [r7] +_08035EC2: + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r3, r0, #0 + ldrb r0, [r6] + lsls r0, r0, #8 + muls r0, r3, r0 + lsrs r3, r0, #8 + adds r4, #0x7b + ldrb r0, [r4] + adds r0, #0x80 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r0, r5, #0 + adds r2, r3, #0 + bl sub_08036914 + ldr r0, [r5, #0x50] + adds r0, #0x7b + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x7b + strb r0, [r1] + ldrh r1, [r7] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C + adds r0, r5, #0 + bl sub_0800445C + b _08035F6C +_08035F16: + adds r0, r5, #0 + bl sub_0800445C + adds r0, r5, #0 + bl sub_08036F60 + adds r0, r5, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #0 + beq _08035F48 + subs r0, #1 + strb r0, [r1, #6] + ldr r0, _08035F74 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08035F48 + adds r0, r5, #0 + movs r1, #0xf + movs r2, #3 + bl sub_0804A98C +_08035F48: + ldr r1, _08035F78 @ =gUnk_080CF0C4 + ldrb r0, [r5, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r0, r5, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r5, #0 + bl sub_0805EC9C +_08035F6C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08035F74: .4byte gUnk_030010A0 +_08035F78: .4byte gUnk_080CF0C4 + + thumb_func_start sub_08035F7C +sub_08035F7C: @ 0x08035F7C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _08035FD0 @ =gLinkEntity + ldr r0, [r2, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + rsbs r1, r1, #0 + movs r2, #0x80 + eors r1, r2 + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + bne _08035FB6 + movs r1, #8 +_08035FB6: + cmn r2, r1 + ble _08035FEE + cmp r2, r1 + bge _08035FEE + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0xff + beq _08035FD4 + adds r0, r4, #0 + bl sub_08036C90 + b _08036074 + .align 2, 0 +_08035FD0: .4byte gLinkEntity +_08035FD4: + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0 + bne _08035FE6 + adds r0, r4, #0 + bl sub_08036E00 + b _08036028 +_08035FE6: + adds r0, r4, #0 + bl sub_08036D70 + b _08036028 +_08035FEE: + cmp r2, #0x80 + bls _0803600E + adds r2, r4, #0 + adds r2, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r1, [r2] + adds r0, r0, r1 + movs r1, #0 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #4] + b _08036028 +_0803600E: + adds r2, r4, #0 + adds r2, #0x7a + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r2] + ldrh r1, [r1] + subs r0, r0, r1 + strh r0, [r2] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + strb r0, [r1, #4] +_08036028: + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x7c + ldrb r1, [r5] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803606C + adds r3, r4, #0 + adds r3, #0x82 + ldrh r2, [r3] + ldr r0, _08036060 @ =0x0000027F + cmp r2, r0 + bhi _0803606C + ldrb r1, [r5] + cmp r1, #1 + beq _08036064 + cmp r1, #3 + beq _08036068 + b _0803606C + .align 2, 0 +_08036060: .4byte 0x0000027F +_08036064: + adds r0, r2, #1 + b _0803606A +_08036068: + adds r0, r2, #2 +_0803606A: + strh r0, [r3] +_0803606C: + adds r0, r4, #0 + movs r1, #0x1f + bl sub_08036FAC +_08036074: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08036078 +sub_08036078: @ 0x08036078 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080360A0 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + cmp r1, #0 + beq _080360A0 + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080360B2 +_080360A0: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036D4C + b _080360BE +_080360B2: + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080360BE + strb r0, [r5] +_080360BE: + adds r0, r4, #0 + movs r1, #0x1f + bl sub_08036FAC + pop {r4, r5, pc} + + thumb_func_start sub_080360C8 +sub_080360C8: @ 0x080360C8 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080360E4 + adds r0, r2, #0 + bl sub_08036DA0 +_080360E4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080360E8 +sub_080360E8: @ 0x080360E8 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0 + bne _08036178 + adds r0, r4, #0 + bl sub_080AEF88 + movs r2, #0 + ldrb r0, [r4, #0x15] + cmp r0, #0 + beq _08036116 + cmp r0, #0x10 + beq _08036116 + ldrh r0, [r4, #0x2a] + movs r1, #0xee + lsls r1, r1, #8 + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r2, r0, #0x1f +_08036116: + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + beq _0803612C + cmp r0, #8 + beq _0803612C + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _0803612C + movs r2, #1 +_0803612C: + cmp r2, #0 + beq _0803617C + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0x20 + strb r0, [r1] + adds r1, #4 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + adds r0, #0x3c + strb r0, [r1, #6] + adds r0, r4, #0 + bl sub_08036C90 + movs r0, #0x3c + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + b _0803617C +_08036178: + subs r0, #1 + strb r0, [r1] +_0803617C: + adds r0, r4, #0 + movs r1, #0xf + bl sub_08036FAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08036188 +sub_08036188: @ 0x08036188 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r1, _080361EC @ =gUnk_080CF0E0 + ldrb r0, [r5, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r0, r5, #0 + bl sub_08036FE4 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _080361EA + ldr r4, _080361F0 @ =gLinkEntity + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + bl sub_08078B48 + bl sub_08077B20 + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x7b + ldrb r1, [r0] + adds r1, #0x80 + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #0xe0 + lsls r2, r2, #6 + adds r0, r4, #0 + bl sub_08036914 +_080361EA: + pop {r4, r5, pc} + .align 2, 0 +_080361EC: .4byte gUnk_080CF0E0 +_080361F0: .4byte gLinkEntity + + thumb_func_start sub_080361F4 +sub_080361F4: @ 0x080361F4 + push {lr} + adds r2, r0, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #4 + bne _08036208 + adds r0, r2, #0 + bl sub_08036D4C + b _08036236 +_08036208: + adds r1, r2, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + movs r0, #1 + strb r0, [r2, #0xb] + subs r1, #6 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + bne _08036228 + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0x16 + b _0803622E +_08036228: + adds r1, r2, #0 + adds r1, #0x79 + movs r0, #0 +_0803622E: + strb r0, [r1] + ldr r0, _08036238 @ =0x00000155 + bl sub_080A3268 +_08036236: + pop {pc} + .align 2, 0 +_08036238: .4byte 0x00000155 + + thumb_func_start sub_0803623C +sub_0803623C: @ 0x0803623C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r0, [r1] + cmp r0, #0xbf + bhi _08036250 + adds r0, #1 + strh r0, [r1] + b _080362A0 +_08036250: + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r3] + subs r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080362A0 + adds r0, r2, #0 + adds r0, #0x7d + ldrb r1, [r0] + cmp r1, #1 + bne _08036292 + movs r0, #3 + strb r0, [r2, #0xb] + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08036280 + movs r0, #0x3c + b _08036282 +_08036280: + movs r0, #0x78 +_08036282: + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + subs r0, #9 + ldrb r0, [r0] + strb r0, [r1, #3] + b _0803629A +_08036292: + movs r0, #2 + strb r0, [r2, #0xb] + movs r0, #0x2d + strb r0, [r3] +_0803629A: + ldr r0, _080362A4 @ =0x00000155 + bl sub_080A3268 +_080362A0: + pop {pc} + .align 2, 0 +_080362A4: .4byte 0x00000155 + + thumb_func_start sub_080362A8 +sub_080362A8: @ 0x080362A8 + push {r4, lr} + adds r2, r0, #0 + movs r0, #0x79 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + cmp r0, #0 + bne _080362FA + adds r4, r2, #0 + adds r4, #0x76 + adds r1, r2, #0 + adds r1, #0x74 + ldrh r3, [r1] + ldrh r0, [r4] + cmp r0, r3 + bhs _080362D0 + adds r0, r3, #0 + subs r0, #8 + strh r0, [r1] + b _08036300 +_080362D0: + movs r0, #3 + strb r0, [r2, #0xb] + ldrh r0, [r4] + strh r0, [r1] + adds r0, r2, #0 + adds r0, #0x7d + ldrb r0, [r0] + cmp r0, #2 + beq _080362E6 + movs r0, #0x3c + b _080362FC +_080362E6: + movs r0, #0 + mov r1, ip + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x87 + movs r2, #4 + movs r3, #0 + bl sub_080A2988 + b _08036300 +_080362FA: + subs r0, #1 +_080362FC: + mov r1, ip + strb r0, [r1] +_08036300: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08036304 +sub_08036304: @ 0x08036304 + push {lr} + mov ip, r0 + ldr r0, _08036328 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0803632C + mov r2, ip + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #8 + strh r0, [r1] + b _08036350 + .align 2, 0 +_08036328: .4byte gUnk_030010A0 +_0803632C: + mov r2, ip + adds r2, #0x84 + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] + ldr r0, [r2] + ldr r0, [r0, #8] + adds r3, r0, #0 + adds r3, #0x76 + ldrh r0, [r3] + movs r1, #0xc0 + lsls r1, r1, #1 + cmp r0, r1 + bls _08036350 + strh r1, [r3] +_08036350: + mov r0, ip + adds r0, #0x7d + ldrb r1, [r0] + adds r3, r0, #0 + cmp r1, #1 + beq _0803637A + ldr r0, [r2] + ldr r0, [r0, #8] + adds r1, r0, #0 + adds r1, #0x79 + ldrb r0, [r1] + cmp r0, #0x1f + bhi _0803637A + adds r0, #1 + strb r0, [r1] + ldr r0, [r2] + ldr r1, [r0, #8] + adds r1, #0x76 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] +_0803637A: + ldr r0, _0803638C @ =gUnk_080CF0F0 + ldrb r1, [r3] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + mov r0, ip + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803638C: .4byte gUnk_080CF0F0 + + thumb_func_start sub_08036390 +sub_08036390: @ 0x08036390 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0 + bl sub_0804A98C + str r0, [r4, #0x54] + cmp r0, #0 + beq _080363B4 + str r4, [r0, #0x50] + ldr r0, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + rsbs r1, r1, #0 + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #0x15] +_080363B4: + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, [r0, #8] + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08036C90 + pop {r4, pc} + + thumb_func_start sub_080363CC +sub_080363CC: @ 0x080363CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r4, #0 + adds r7, #0x80 + ldrb r2, [r7] + cmp r2, #0 + bne _080364CC + ldr r5, _08036498 @ =gLinkEntity + ldr r0, [r5, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r5, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + adds r0, #0x80 + rsbs r0, r0, #0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r4, #0x15] + subs r3, r0, r1 + mov r8, r2 + cmp r3, #0 + bge _0803640C + rsbs r3, r3, #0 +_0803640C: + adds r6, r4, #0 + adds r6, #0x79 + cmp r3, #0xf + bgt _080364AA + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0xf0 + bl sub_0806FC80 + cmp r0, #0 + beq _080364AA + ldr r2, _0803649C @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _080364A4 + ldrb r1, [r5, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080364AA + movs r1, #0xa0 + lsls r1, r1, #2 + mov r0, r8 + ldrb r2, [r0] + rsbs r2, r2, #0 + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x48 + bl sub_0806FC80 + cmp r0, #0 + beq _080364AA + movs r0, #1 + strb r0, [r7] + movs r0, #2 + strb r0, [r6] + ldr r2, _080364A0 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + movs r1, #0x84 + lsls r1, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0x10 + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldrh r1, [r2, #8] + adds r1, #0x88 + lsls r1, r1, #0x10 + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r2, r4, #0 + adds r2, #0x84 + ldr r1, [r2] + strb r0, [r1, #3] + ldr r1, [r2] + ldrb r0, [r1, #3] + adds r0, #0x80 + rsbs r0, r0, #0 + strb r0, [r1, #3] + movs r0, #0xed + bl sub_080A3268 + b _080364AA + .align 2, 0 +_08036498: .4byte gLinkEntity +_0803649C: .4byte gUnk_03003F80 +_080364A0: .4byte gUnk_03000BF0 +_080364A4: + ldr r0, _080364C4 @ =0xFFFFF7FF + ands r1, r0 + str r1, [r2, #0x30] +_080364AA: + ldr r0, _080364C8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803657A + adds r0, r4, #0 + movs r1, #0x87 + movs r2, #2 + movs r3, #0 + bl sub_080A2988 + b _0803657A + .align 2, 0 +_080364C4: .4byte 0xFFFFF7FF +_080364C8: .4byte gUnk_030010A0 +_080364CC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r5, #1 + adds r0, r5, #0 + ands r0, r1 + adds r3, r4, #0 + adds r3, #0x84 + cmp r0, #0 + bne _080364F0 + ldr r0, [r3] + adds r1, r4, #0 + adds r1, #0x7b + ldrb r0, [r0, #3] + mov r8, r1 + ldrb r6, [r1] + cmp r0, r6 + bne _08036570 +_080364F0: + cmp r2, #1 + bne _08036510 + movs r0, #2 + strb r0, [r7] + strb r0, [r4, #0xb] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x2d + strb r0, [r1] + adds r1, #9 + movs r2, #0 + adds r0, #0xd3 + strh r0, [r1] + ldr r0, [r3] + strb r2, [r0, #2] + b _08036652 +_08036510: + movs r0, #0 + strb r0, [r7] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + ldr r0, [r3] + ldr r1, [r0, #8] + adds r1, #0x79 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0803656C @ =gLinkEntity + ldrb r2, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + movs r2, #1 + orrs r0, r2 + strb r0, [r1, #0x18] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x38 + strb r5, [r1] + movs r0, #0x80 + lsls r0, r0, #3 + adds r1, r4, #0 + adds r1, #0x7b + ldrb r1, [r1] + adds r1, #0x80 + rsbs r1, r1, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #0x30 + bl sub_080792BC + adds r0, r4, #0 + bl sub_08036C90 + movs r0, #0xef + bl sub_080A3268 + b _08036652 + .align 2, 0 +_0803656C: .4byte gLinkEntity +_08036570: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #2 + strb r0, [r1] + adds r6, r1, #0 +_0803657A: + ldrb r0, [r6] + cmp r0, #0 + bne _08036598 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x74 + movs r2, #0 + strh r0, [r1] + strb r2, [r4, #0xb] + adds r0, r4, #0 + bl sub_08036C90 + b _08036652 +_08036598: + subs r2, r0, #1 + strb r2, [r6] + ldr r0, _080365E4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + bne _080365F8 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bne _080365F8 + ldr r2, _080365E8 @ =gLinkEntity + ldr r0, [r2, #0x2c] + ldr r1, [r4, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r4, #0x30] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + mov r7, r8 + ldrb r2, [r7] + rsbs r0, r2, #0 + movs r1, #0x80 + eors r0, r1 + subs r0, r3, r0 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _080365EC + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + adds r0, #0x30 + b _080365F6 + .align 2, 0 +_080365E4: .4byte gUnk_03003F80 +_080365E8: .4byte gLinkEntity +_080365EC: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + subs r0, #0x30 +_080365F6: + strb r0, [r1, #3] +_080365F8: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r5, #1 + adds r2, r5, #0 + ands r2, r0 + cmp r2, #0 + bne _08036652 + adds r3, r4, #0 + adds r3, #0x84 + ldr r1, [r3] + ldrb r0, [r1, #3] + mov r6, r8 + ldrb r6, [r6] + cmp r0, r6 + beq _08036650 + strb r5, [r1, #2] + ldr r0, [r3] + ldrb r0, [r0, #3] + mov r7, r8 + ldrb r1, [r7] + subs r0, r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _0803663E + adds r2, r4, #0 + adds r2, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r2] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2] + b _08036652 +_0803663E: + adds r1, r4, #0 + adds r1, #0x7a + adds r0, r4, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + b _08036652 +_08036650: + strb r2, [r1, #2] +_08036652: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08036658 +sub_08036658: @ 0x08036658 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x79 + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #0xff + bne _08036678 + movs r0, #0 + strb r0, [r5, #0xb] + adds r0, r5, #0 + bl sub_08036C90 + movs r0, #0x78 + strb r0, [r4] + b _080366AC +_08036678: + adds r0, r1, #1 + strb r0, [r4] + movs r0, #1 + rsbs r0, r0, #0 + bl sub_0805308C + ldr r0, _080366B0 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080366AC + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _080366A0 + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 +_080366A0: + adds r0, r5, #0 + movs r1, #0x87 + movs r2, #3 + movs r3, #0 + bl sub_080A2988 +_080366AC: + pop {r4, r5, pc} + .align 2, 0 +_080366B0: .4byte gUnk_030010A0 + + thumb_func_start sub_080366B4 +sub_080366B4: @ 0x080366B4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + bne _080366D4 + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0, #2] + adds r0, r4, #0 + bl sub_08036C90 + b _08036706 +_080366D4: + subs r0, #1 + strb r0, [r2] + ldr r0, _08036708 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08036706 + adds r0, r4, #0 + movs r1, #0xf + movs r2, #2 + bl sub_0804A98C + str r0, [r4, #0x54] + cmp r0, #0 + beq _08036706 + str r4, [r0, #0x50] + ldr r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + strb r0, [r2, #0x15] +_08036706: + pop {r4, pc} + .align 2, 0 +_08036708: .4byte gUnk_030010A0 + + thumb_func_start sub_0803670C +sub_0803670C: @ 0x0803670C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803675C @ =gUnk_080CF100 + ldrb r0, [r4, #0xd] + 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, #0x84 + ldr r1, [r0] + ldrb r0, [r1, #6] + cmp r0, #0 + beq _08036746 + subs r0, #1 + strb r0, [r1, #6] + ldr r0, _08036760 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08036746 + adds r0, r4, #0 + movs r1, #0xf + movs r2, #3 + bl sub_0804A98C +_08036746: + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + subs r0, #2 + ldrh r2, [r0] + adds r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + bl sub_0805EC9C + pop {r4, pc} + .align 2, 0 +_0803675C: .4byte gUnk_080CF100 +_08036760: .4byte gUnk_030010A0 + + thumb_func_start sub_08036764 +sub_08036764: @ 0x08036764 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strh r1, [r4, #0x2a] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x78 + strb r0, [r1] + adds r1, #9 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080368D8 + adds r0, r4, #0 + bl sub_080367B0 + pop {r4, pc} + + thumb_func_start sub_080367B0 +sub_080367B0: @ 0x080367B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080AEF88 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803683A + movs r0, #2 + strb r0, [r4, #0xd] + adds r3, r4, #0 + adds r3, #0x84 + ldr r1, [r3] + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + strb r0, [r1, #3] + ldrh r1, [r4, #0x2a] + movs r0, #0xee + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080367E4 + ldr r1, [r3] + ldrb r0, [r1, #3] + rsbs r0, r0, #0 + strb r0, [r1, #3] +_080367E4: + ldrh r1, [r4, #0x2a] + movs r0, #0xee + ands r0, r1 + cmp r0, #0 + beq _080367FE + ldr r0, [r3] + ldrb r1, [r0, #3] + rsbs r1, r1, #0 + movs r5, #0x80 + rsbs r5, r5, #0 + adds r2, r5, #0 + eors r1, r2 + strb r1, [r0, #3] +_080367FE: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0x18 + strb r0, [r1] + adds r1, #4 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1] + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + ldr r1, [r3] + ldrb r0, [r1, #6] + adds r0, #0x1e + strb r0, [r1, #6] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 +_0803683A: + adds r1, r4, #0 + adds r1, #0x79 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08036852 + subs r1, #0x34 + movs r0, #0 + strb r0, [r1] +_08036852: + ldr r0, _08036868 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08036864 + ldr r0, _0803686C @ =0x00000159 + bl sub_080A3268 +_08036864: + pop {r4, r5, pc} + .align 2, 0 +_08036868: .4byte gUnk_030010A0 +_0803686C: .4byte 0x00000159 + + thumb_func_start sub_08036870 +sub_08036870: @ 0x08036870 + push {lr} + adds r3, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + ldrb r1, [r0, #3] + movs r0, #0x7b + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + subs r1, r1, r0 + adds r0, r1, #7 + cmp r0, #0xe + bhi _080368AA + movs r2, #0 + movs r0, #1 + strb r0, [r3, #0xd] + mov r1, ip + ldrb r0, [r1] + rsbs r0, r0, #0 + movs r1, #0x80 + eors r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + strb r0, [r3, #0x15] + strh r2, [r3, #0x2a] + adds r0, r3, #0 + bl sub_080AEF88 + b _080368D4 +_080368AA: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x80 + bls _080368C4 + adds r2, r3, #0 + adds r2, #0x7a + adds r0, r3, #0 + adds r0, #0x82 + ldrh r1, [r2] + ldrh r0, [r0] + subs r1, r1, r0 + strh r1, [r2] + b _080368D4 +_080368C4: + adds r1, r3, #0 + adds r1, #0x7a + adds r0, r3, #0 + adds r0, #0x82 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_080368D4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080368D8 +sub_080368D8: @ 0x080368D8 + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _08036902 + ldr r2, _08036910 @ =gLinkEntity + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r2, #0x38 + movs r0, #1 + strb r0, [r2] +_08036902: + adds r0, r3, #0 + adds r0, #0x76 + movs r1, #0xa0 + strh r1, [r0] + subs r0, #2 + strh r1, [r0] + pop {pc} + .align 2, 0 +_08036910: .4byte gLinkEntity + + thumb_func_start sub_08036914 +sub_08036914: @ 0x08036914 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r0, _08036994 @ =gUnk_080C9160 + mov sb, r0 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r6, r6, #0x10 + asrs r6, r6, #0x10 + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + mov r8, r1 + bl sub_0806FA04 + ldr r1, [r5, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r5, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + ldr r2, [r5, #0x50] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r2, #0x30] + subs r1, r1, r0 + str r1, [r5, #0x30] + adds r2, #0x62 + ldrb r0, [r2] + adds r1, r5, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r5, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + adds r5, #0x63 + strb r0, [r5] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_08036994: .4byte gUnk_080C9160 + + thumb_func_start sub_08036998 +sub_08036998: @ 0x08036998 + push {r4, lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x79 + ldrb r0, [r2, #0xf] + ldrb r4, [r3] + adds r1, r0, r4 + strb r1, [r3] + ldrb r4, [r2, #0xf] + movs r0, #0xf + ldrsb r0, [r2, r0] + cmp r0, #0 + bge _080369BE + ldrb r0, [r2, #0xe] + lsls r1, r1, #0x18 + lsls r0, r0, #0x18 + cmn r1, r0 + bge _080369CC + b _080369C8 +_080369BE: + movs r0, #0 + ldrsb r0, [r3, r0] + ldrb r1, [r2, #0xe] + cmp r0, r1 + ble _080369CC +_080369C8: + rsbs r0, r4, #0 + strb r0, [r2, #0xf] +_080369CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080369D0 +sub_080369D0: @ 0x080369D0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov ip, r1 + adds r6, r2, #0 + adds r1, r0, #0 + adds r1, #0x84 + ldr r4, [r1] + ldr r2, [r4, #0xc] + ldrb r1, [r4, #1] + subs r1, #1 + lsls r1, r1, #2 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r3, r1 + ldr r1, [r1] + adds r1, #0x7b + adds r0, #0x79 + ldrb r0, [r0] + ldrb r1, [r1] + adds r0, r0, r1 + adds r2, #0x7b + strb r0, [r2] + ldrb r0, [r4, #1] + movs r2, #0 + cmp r0, #1 + beq _08036A58 + adds r5, r3, #0 + lsls r0, r6, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + rsbs r0, r6, #0 + lsls r0, r0, #0x18 + asrs r7, r0, #0x18 +_08036A16: + lsls r0, r2, #2 + adds r0, r5, r0 + ldr r1, [r0] + adds r1, #0x7b + adds r2, #1 + lsls r0, r2, #2 + adds r0, r5, r0 + ldr r0, [r0] + adds r3, r0, #0 + adds r3, #0x7b + ldrb r1, [r1] + ldrb r0, [r3] + cmp r1, r0 + beq _08036A4C + subs r0, r0, r1 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08036A44 + cmp r0, r8 + ble _08036A4C + adds r0, r1, r6 + b _08036A4A +_08036A44: + cmp r0, r7 + bge _08036A4C + subs r0, r1, r6 +_08036A4A: + strb r0, [r3] +_08036A4C: + ldrb r0, [r4, #1] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r2, r0 + blo _08036A16 +_08036A58: + ldrb r0, [r4, #1] + subs r2, r0, #1 + cmp r2, #0 + beq _08036AE4 + ldr r0, _08036AEC @ =gUnk_080C9160 + mov sb, r0 + movs r1, #0x80 + mov r8, r1 + mov r1, ip + lsls r0, r1, #0x14 + asrs r6, r0, #0x10 + lsls r0, r2, #2 + adds r0, #8 + adds r5, r0, r4 + movs r7, #0x80 + lsls r7, r7, #1 +_08036A78: + subs r4, r2, #1 + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + mov r1, r8 + eors r0, r1 + lsls r0, r0, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + mov r1, r8 + eors r0, r1 + adds r0, #0x40 + lsls r0, r0, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + adds r1, r6, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r7, #0 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r5, #4] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] + subs r5, #4 + adds r2, r4, #0 + cmp r2, #0 + bne _08036A78 +_08036AE4: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036AEC: .4byte gUnk_080C9160 + + thumb_func_start sub_08036AF0 +sub_08036AF0: @ 0x08036AF0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0xc + str r1, [sp] + mov r8, r2 + adds r0, #0x84 + ldr r0, [r0] + str r0, [sp, #4] + ldrb r0, [r0, #1] + subs r4, r0, #1 + cmp r4, #0 + bne _08036B10 + b _08036C80 +_08036B10: + ldr r0, [sp, #4] + adds r0, #0xc + str r0, [sp, #8] + lsls r0, r1, #0x14 + asrs r0, r0, #0x10 + mov sl, r0 +_08036B1C: + mov r1, r8 + cmp r1, #0 + bne _08036BC0 + lsls r0, r4, #2 + ldr r2, [sp, #8] + adds r6, r2, r0 + ldr r0, [r6] + subs r4, #1 + lsls r1, r4, #2 + adds r5, r2, r1 + ldr r2, [r5] + movs r3, #0x2e + ldrsh r1, [r2, r3] + movs r3, #0x32 + ldrsh r2, [r2, r3] + bl sub_080041DC + mov sb, r4 + ldr r1, [sp] + cmp r1, r0 + blo _08036B48 + b _08036C78 +_08036B48: + ldr r2, [r5] + ldr r3, [r6] + ldr r0, [r2, #0x2c] + ldr r1, [r3, #0x2c] + subs r0, r0, r1 + ldr r1, [r2, #0x30] + ldr r2, [r3, #0x30] + subs r1, r1, r2 + bl sub_080045DA + ldr r1, [r5] + adds r1, #0x7b + strb r0, [r1] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r2, _08036BBC @ =gUnk_080C9160 + adds r0, r0, r2 + movs r3, #0 + ldrsh r0, [r0, r3] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r6] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r5] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #1 + ldr r1, _08036BBC @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r5] + ldr r1, [r6] + b _08036C6E + .align 2, 0 +_08036BBC: .4byte gUnk_080C9160 +_08036BC0: + subs r2, r4, #1 + lsls r0, r2, #2 + ldr r3, [sp, #8] + adds r0, r3, r0 + ldr r0, [r0] + adds r5, r0, #0 + adds r5, #0x7b + lsls r1, r4, #2 + adds r0, r3, r1 + ldr r0, [r0] + adds r0, #0x7b + ldrb r4, [r5] + ldrb r3, [r0] + adds r7, r1, #0 + ldr r6, [sp, #4] + adds r6, #0xc + mov sb, r2 + cmp r4, r3 + beq _08036C0E + subs r0, r3, r4 + lsls r0, r0, #0x18 + asrs r1, r0, #0x18 + cmp r1, #0 + ble _08036BFE + mov r2, r8 + lsls r0, r2, #0x18 + lsrs r0, r0, #0x18 + cmp r1, r0 + ble _08036C0E + subs r0, r3, r2 + b _08036C0C +_08036BFE: + mov r2, r8 + rsbs r0, r2, #0 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bge _08036C0E + adds r0, r3, r2 +_08036C0C: + strb r0, [r5] +_08036C0E: + mov r3, sb + lsls r4, r3, #2 + adds r4, r6, r4 + ldr r0, [r4] + adds r0, #0x7b + ldrb r0, [r0] + lsls r0, r0, #1 + ldr r1, _08036C8C @ =gUnk_080C9160 + adds r0, r0, r1 + movs r2, #0 + ldrsh r0, [r0, r2] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r4] + adds r5, r6, r7 + ldr r1, [r5] + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x2c] + adds r1, r1, r0 + str r1, [r2, #0x2c] + ldr r0, [r4] + adds r0, #0x7b + ldrb r0, [r0] + adds r0, #0x40 + lsls r0, r0, #1 + ldr r3, _08036C8C @ =gUnk_080C9160 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + mov r1, sl + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #1 + bl sub_0806FA04 + ldr r2, [r4] + ldr r1, [r5] +_08036C6E: + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r1, #0x30] + subs r1, r1, r0 + str r1, [r2, #0x30] +_08036C78: + mov r4, sb + cmp r4, #0 + beq _08036C80 + b _08036B1C +_08036C80: + add sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036C8C: .4byte gUnk_080C9160 + + thumb_func_start sub_08036C90 +sub_08036C90: @ 0x08036C90 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r2, [r0] + cmp r2, #4 + bne _08036CDC + adds r3, r4, #0 + adds r3, #0x81 + ldrb r0, [r3] + cmp r0, #0xff + beq _08036CDC + movs r1, #0 + strb r2, [r4, #0xd] + strb r1, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + ldr r1, _08036CFC @ =gUnk_080CF124 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r2, r4, #0 + adds r2, #0x7e + ldrb r1, [r2] + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldrb r0, [r1] + cmp r0, #5 + bne _08036D42 + movs r0, #0xff + strb r0, [r3] +_08036CDC: + movs r0, #3 + strb r0, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x7c + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08036D14 + ldrb r1, [r2] + cmp r1, #1 + beq _08036D00 + cmp r1, #3 + beq _08036D0A + b _08036D42 + .align 2, 0 +_08036CFC: .4byte gUnk_080CF124 +_08036D00: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x1e + strb r0, [r1] + b _08036D42 +_08036D0A: + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0xa + strb r0, [r1] + b _08036D42 +_08036D14: + ldr r0, _08036D2C @ =gUnk_02034350 + movs r2, #0xc + ldrsh r1, [r0, r2] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036D30 + adds r0, r4, #0 + adds r0, #0x79 + strb r3, [r0] + b _08036D42 + .align 2, 0 +_08036D2C: .4byte gUnk_02034350 +_08036D30: + ldr r0, _08036D44 @ =gUnk_080CF10C + bl sub_080028F4 + ldr r1, _08036D48 @ =gUnk_080CF110 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] +_08036D42: + pop {r4, pc} + .align 2, 0 +_08036D44: .4byte gUnk_080CF10C +_08036D48: .4byte gUnk_080CF110 + + thumb_func_start sub_08036D4C +sub_08036D4C: @ 0x08036D4C + mov ip, r0 + mov r1, ip + adds r1, #0x82 + movs r3, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1] + mov r2, ip + adds r2, #0x84 + ldr r1, [r2] + movs r0, #2 + strb r0, [r1] + ldr r1, [r2] + movs r0, #0xff + strb r0, [r1, #4] + mov r0, ip + strb r3, [r0, #0xd] + bx lr + + thumb_func_start sub_08036D70 +sub_08036D70: @ 0x08036D70 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + strb r1, [r4, #0xd] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + strb r1, [r0] + ldr r0, _08036D98 @ =gUnk_080CF134 + bl sub_080028F4 + ldr r1, _08036D9C @ =gUnk_080CF138 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, #0x79 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08036D98: .4byte gUnk_080CF134 +_08036D9C: .4byte gUnk_080CF138 + + thumb_func_start sub_08036DA0 +sub_08036DA0: @ 0x08036DA0 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + movs r2, #1 + ands r2, r0 + cmp r2, #0 + bne _08036DF0 + ldr r0, _08036DD0 @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036DD4 + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + b _08036DF8 + .align 2, 0 +_08036DD0: .4byte gUnk_02034350 +_08036DD4: + ldr r0, _08036DE8 @ =gUnk_080CF13C + bl sub_080028F4 + ldr r1, _08036DEC @ =gUnk_080CF13F + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x78 + strb r1, [r0] + b _08036DF8 + .align 2, 0 +_08036DE8: .4byte gUnk_080CF13C +_08036DEC: .4byte gUnk_080CF13F +_08036DF0: + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0 + strb r0, [r1] +_08036DF8: + adds r0, r4, #0 + bl sub_08036D4C + pop {r4, pc} + + thumb_func_start sub_08036E00 +sub_08036E00: @ 0x08036E00 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #4 + adds r4, r0, #0 + movs r2, #0 + movs r0, #4 + strb r0, [r4, #0xd] + strb r2, [r4, #0xb] + adds r7, r4, #0 + adds r7, #0x81 + movs r0, #0xff + strb r0, [r7] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r6, r4, #0 + adds r6, #0x84 + ldr r0, [r6] + strb r2, [r0, #2] + movs r0, #0x7c + adds r0, r0, r4 + mov r8, r0 + ldrb r5, [r0] + cmp r5, #0 + bne _08036E3E + adds r0, r4, #0 + adds r0, #0x7d + strb r2, [r0] + b _08036F00 +_08036E3E: + cmp r5, #4 + bne _08036ECC + str r2, [sp] + bl sub_08000E50 + movs r1, #3 + mov sb, r1 + ands r0, r1 + ldr r2, [sp] + cmp r0, #0 + beq _08036E62 + ldr r0, _08036E84 @ =gUnk_02034350 + movs r3, #0xc + ldrsh r1, [r0, r3] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _08036E8C +_08036E62: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x79 + movs r0, #0x3c + strb r0, [r1] + strh r2, [r4, #0x2a] + ldr r0, [r6] + strb r5, [r0] + ldr r0, _08036E88 @ =0x00000159 + bl sub_080A3268 + b _08036F00 + .align 2, 0 +_08036E84: .4byte gUnk_02034350 +_08036E88: .4byte 0x00000159 +_08036E8C: + mov r1, r8 + ldrb r0, [r1] + cmp r0, #4 + bne _08036ECC + adds r0, r4, #0 + adds r0, #0x7e + strb r2, [r0] + bl sub_08000E50 + adds r1, r0, #0 + mov r3, sb + ands r1, r3 + ldr r0, [r6] + ldrb r0, [r0, #5] + cmp r0, r1 + beq _08036EB0 + strb r1, [r7] + b _08036EB8 +_08036EB0: + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r7] +_08036EB8: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + subs r0, #3 + ldrb r0, [r0] + strb r0, [r1, #5] + adds r0, r4, #0 + bl sub_08036C90 + b _08036F00 +_08036ECC: + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + ldr r1, _08036F0C @ =gUnk_080CF147 + cmp r0, #0 + bne _08036EDE + ldr r1, _08036F10 @ =gUnk_080CF142 +_08036EDE: + adds r2, r4, #0 + adds r2, #0x7e + ldrb r0, [r2] + adds r0, r1, r0 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x7d + strb r1, [r0] + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #4 + bls _08036F00 + movs r0, #0 + strb r0, [r2] +_08036F00: + add sp, #4 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08036F0C: .4byte gUnk_080CF147 +_08036F10: .4byte gUnk_080CF142 + + thumb_func_start sub_08036F14 +sub_08036F14: @ 0x08036F14 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r4, #0x84 + ldr r0, [r4] + ldr r0, [r0, #8] + bl sub_0801D2B4 + movs r5, #0 + adds r7, r4, #0 +_08036F28: + ldr r0, [r7] + lsls r1, r5, #2 + adds r0, #0x20 + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r6, #0 + bl sub_0801D2B4 + adds r5, #1 + cmp r5, #3 + bls _08036F28 + ldr r0, [r4] + ldrb r0, [r0, #1] + subs r5, r0, #1 + cmp r5, #0 + beq _08036F5E +_08036F48: + ldr r0, [r4] + lsls r1, r5, #2 + adds r0, #0xc + adds r0, r0, r1 + ldr r0, [r0] + adds r1, r6, #0 + bl sub_0801D2B4 + subs r5, #1 + cmp r5, #0 + bne _08036F48 +_08036F5E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08036F60 +sub_08036F60: @ 0x08036F60 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #4 + beq _08036FA8 + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r4, #1 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + bne _08036FA8 + adds r3, r2, #0 + adds r3, #0x76 + movs r0, #0xe + ldrsb r0, [r2, r0] + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + adds r1, r2, #0 + adds r1, #0x74 + movs r0, #0xe + ldrsb r0, [r2, r0] + ldrh r5, [r1] + adds r0, r0, r5 + strh r0, [r1] + ldrh r0, [r3] + cmp r0, #0x9b + bhi _08036FA0 + strb r4, [r2, #0xe] + b _08036FA8 +_08036FA0: + cmp r0, #0xa4 + bls _08036FA8 + movs r0, #0xff + strb r0, [r2, #0xe] +_08036FA8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08036FAC +sub_08036FAC: @ 0x08036FAC + push {lr} + adds r2, r0, #0 + ldr r0, _08036FD0 @ =gUnk_030010A0 + ldr r0, [r0] + ands r0, r1 + cmp r0, #0 + bne _08036FDE + adds r0, r2, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08036FD8 + ldr r0, _08036FD4 @ =0x00000163 + bl sub_080A3268 + b _08036FDE + .align 2, 0 +_08036FD0: .4byte gUnk_030010A0 +_08036FD4: .4byte 0x00000163 +_08036FD8: + ldr r0, _08036FE0 @ =0x000001B1 + bl sub_080A3268 +_08036FDE: + pop {pc} + .align 2, 0 +_08036FE0: .4byte 0x000001B1 + + thumb_func_start sub_08036FE4 +sub_08036FE4: @ 0x08036FE4 + push {r4, r5, lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08037048 + adds r0, r2, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08037048 + adds r0, r2, #0 + adds r0, #0x82 + ldrh r3, [r0] + adds r4, r0, #0 + cmp r3, #0 + beq _08037048 + adds r0, #2 + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0xff + beq _0803702C + cmp r0, #0 + bne _08037022 + adds r1, r2, #0 + adds r1, #0x7a + ldrh r5, [r1] + adds r0, r3, r5 + b _0803702A +_08037022: + adds r1, r2, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, r0, r3 +_0803702A: + strh r0, [r1] +_0803702C: + adds r0, r2, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #1 + beq _0803703C + cmp r0, #3 + beq _08037042 + b _08037048 +_0803703C: + ldrh r0, [r4] + subs r0, #1 + b _08037046 +_08037042: + ldrh r0, [r4] + subs r0, #2 +_08037046: + strh r0, [r4] +_08037048: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803704C +sub_0803704C: @ 0x0803704C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08037070 + ldr r0, _0803706C @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08037084 + .align 2, 0 +_0803706C: .4byte gUnk_080012C8 +_08037070: + ldr r4, _08037088 @ =gUnk_080CF244 + 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 +_08037084: + pop {r4, r5, pc} + .align 2, 0 +_08037088: .4byte gUnk_080CF244 + + thumb_func_start sub_0803708C +sub_0803708C: @ 0x0803708C + push {lr} + ldr r2, _080370A0 @ =gUnk_080CF25C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080370A0: .4byte gUnk_080CF25C + + thumb_func_start sub_080370A4 +sub_080370A4: @ 0x080370A4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08037110 + movs r0, #6 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0803710C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _0803711E + .align 2, 0 +_0803710C: .4byte gUnk_03000BF0 +_08037110: + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _0803711E + adds r0, r5, #0 + bl sub_08037408 +_0803711E: + ldr r1, _08037128 @ =gUnk_080CF244 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08037128: .4byte gUnk_080CF244 + + thumb_func_start sub_0803712C +sub_0803712C: @ 0x0803712C + push {lr} + ldr r2, _08037140 @ =gUnk_080CF278 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037140: .4byte gUnk_080CF278 + + thumb_func_start sub_08037144 +sub_08037144: @ 0x08037144 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037418 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r1, [r4, #0xe] + movs r0, #0x30 + strb r0, [r4, #0x1d] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803715C +sub_0803715C: @ 0x0803715C + push {r4, lr} + adds r4, r0, #0 + bl sub_08037418 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08037176 + adds r0, r4, #0 + bl sub_0806F4E8 + b _0803718A +_08037176: + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _0803718A + adds r0, r4, #0 + bl sub_08037408 +_0803718A: + pop {r4, pc} + + thumb_func_start sub_0803718C +sub_0803718C: @ 0x0803718C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xe] + cmp r4, #0 + bne _080371DA + bl sub_08037418 + movs r0, #1 + strb r0, [r5, #0xe] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x62 + strb r4, [r0] + adds r0, #0x12 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080371EC @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_080371DA: + adds r0, r5, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080371F0 + adds r0, r5, #0 + bl sub_0806F3E4 + b _080371F6 + .align 2, 0 +_080371EC: .4byte gUnk_03000BF0 +_080371F0: + adds r0, r5, #0 + bl sub_08037408 +_080371F6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080371F8 +sub_080371F8: @ 0x080371F8 + push {lr} + adds r2, r0, #0 + ldr r0, _08037210 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0803720E + adds r0, r2, #0 + bl sub_08037408 +_0803720E: + pop {pc} + .align 2, 0 +_08037210: .4byte gUnk_03003F80 + + thumb_func_start nullsub_161 +nullsub_161: @ 0x08037214 + bx lr + .align 2, 0 + + thumb_func_start sub_08037218 +sub_08037218: @ 0x08037218 + push {lr} + bl sub_08037408 + pop {pc} + + thumb_func_start sub_08037220 +sub_08037220: @ 0x08037220 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #2 + strb r0, [r5, #0x1c] + ldrh r0, [r5, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _0803727C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x74 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r5, #0 + movs r1, #5 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803727C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08037280 +sub_08037280: @ 0x08037280 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r0, r5, #0 + bl sub_080002A0 + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, r1 + beq _080372CC + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _080372E4 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r5, #0 + bl sub_08037408 +_080372CC: + adds r0, r5, #0 + movs r1, #1 + movs r2, #0x40 + bl sub_08049F64 + cmp r0, #0 + beq _080372E2 + movs r0, #2 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] +_080372E2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080372E4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080372E8 +sub_080372E8: @ 0x080372E8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08037418 + adds r3, r5, #0 + adds r3, #0x62 + ldr r2, _08037370 @ =gUnk_080CF290 + ldrb r1, [r5, #0xe] + movs r6, #3 + adds r0, r6, #0 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0803736E + strb r6, [r5, #0xc] + adds r2, r5, #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] + strb r4, [r3] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xa0 + strb r0, [r1] + subs r1, #4 + movs r0, #0xf + strb r0, [r1] + ldr r0, _08037374 @ =gUnk_080FD34C + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08037378 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0803736E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037370: .4byte gUnk_080CF290 +_08037374: .4byte gUnk_080FD34C +_08037378: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803737C +sub_0803737C: @ 0x0803737C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x34] + ldr r1, _080373A8 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _080373A6 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r1, _080373AC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_080373A6: + pop {r4, pc} + .align 2, 0 +_080373A8: .4byte 0xFFFF0000 +_080373AC: .4byte gLinkEntity + + thumb_func_start sub_080373B0 +sub_080373B0: @ 0x080373B0 + 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 _080373C4 + movs r0, #5 + strb r0, [r1, #0xc] +_080373C4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080373C8 +sub_080373C8: @ 0x080373C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _080373DC + adds r0, r4, #0 + bl sub_08037408 +_080373DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080373E0 +sub_080373E0: @ 0x080373E0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _080373F2 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_080373F2: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08037406 + adds r0, r4, #0 + bl sub_08037408 +_08037406: + pop {r4, pc} + + thumb_func_start sub_08037408 +sub_08037408: @ 0x08037408 + push {lr} + movs r1, #5 + movs r2, #0 + bl CreateFX + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08037418 +sub_08037418: @ 0x08037418 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _08037464 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _08037468 @ =0x00004067 + cmp r0, r1 + bne _08037460 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + bl sub_0805E780 +_08037460: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037464: .4byte gUnk_03000BF0 +_08037468: .4byte 0x00004067 + + thumb_func_start sub_0803746C +sub_0803746C: @ 0x0803746C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037488 @ =gUnk_080CF294 + bl sub_0800129E + movs r3, #0x15 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08037488: .4byte gUnk_080CF294 + + thumb_func_start sub_0803748C +sub_0803748C: @ 0x0803748C + push {lr} + ldr r2, _080374A0 @ =gUnk_080CF2AC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080374A0: .4byte gUnk_080CF2AC + + thumb_func_start sub_080374A4 +sub_080374A4: @ 0x080374A4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r2, [r0] + cmp r2, #0x87 + bne _080374D4 + ldrb r0, [r4, #0xc] + cmp r0, #6 + bne _080374BC + adds r0, r4, #0 + bl sub_08037ACC +_080374BC: + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08037B48 + b _08037534 +_080374D4: + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #6 + beq _0803752E + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x27 + bne _080374F2 + cmp r2, #0x80 + bne _080374F2 + adds r0, r4, #0 + bl sub_08037A14 + b _08037534 +_080374F2: + subs r0, r1, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08037534 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + movs r1, #0x10 + eors r0, r1 + adds r0, #4 + 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 sub_080042AC + adds r0, r4, #0 + bl sub_08037810 + cmp r0, #0 + beq _08037534 + movs r0, #4 + strb r0, [r4, #0xe] + b _08037534 +_0803752E: + adds r0, r4, #0 + bl sub_08037A58 +_08037534: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037546 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037546: + ldr r1, _08037550 @ =gUnk_080CF294 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08037550: .4byte gUnk_080CF294 + + thumb_func_start nullsub_162 +nullsub_162: @ 0x08037554 + bx lr + .align 2, 0 + + thumb_func_start sub_08037558 +sub_08037558: @ 0x08037558 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x76 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, r4, #0 + bl sub_08037794 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037580 +sub_08037580: @ 0x08037580 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037810 + cmp r0, #0 + bne _080375A2 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080375A2 + adds r0, r4, #0 + bl sub_080377B0 +_080375A2: + pop {r4, pc} + + thumb_func_start sub_080375A4 +sub_080375A4: @ 0x080375A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _080375F4 + adds r0, r4, #0 + bl sub_08037810 + cmp r0, #0 + bne _080375F4 + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080375D2 + adds r0, r4, #0 + bl sub_08037794 + b _080375F4 +_080375D2: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080375F4 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080375F4 + adds r0, r4, #0 + bl sub_080379BC +_080375F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080375F8 +sub_080375F8: @ 0x080375F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _08037622 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037622 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x18 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_08037622: + pop {r4, pc} + + thumb_func_start sub_08037624 +sub_08037624: @ 0x08037624 + push {r4, lr} + adds r4, r0, #0 + bl sub_080378B0 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_08037914 + cmp r0, #0 + bne _0803768E + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08037652 + adds r0, r4, #0 + bl sub_08037794 + b _0803768E +_08037652: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803767C + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_080379BC + b _0803768E +_0803767C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803768E + adds r0, r4, #0 + bl sub_0803797C +_0803768E: + pop {r4, pc} + + thumb_func_start sub_08037690 +sub_08037690: @ 0x08037690 + 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 _080376B6 + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x14 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08037794 + b _080376CC +_080376B6: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080376CC + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x27 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080AEF88 +_080376CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080376D0 +sub_080376D0: @ 0x080376D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080379EC + cmp r0, #0 + bne _0803773A + bl sub_08077B2C + ldr r2, _08037724 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r0, _08037728 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA6C + adds r0, r4, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0803773A + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803772C + adds r0, r4, #0 + bl sub_08037A58 + b _0803773A + .align 2, 0 +_08037724: .4byte gUnk_03003F80 +_08037728: .4byte gLinkEntity +_0803772C: + ldrb r0, [r2] + movs r1, #1 + eors r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08037B10 +_0803773A: + pop {r4, pc} + + thumb_func_start sub_0803773C +sub_0803773C: @ 0x0803773C + 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 _08037758 + adds r0, r4, #0 + bl sub_08037794 +_08037758: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803775C +sub_0803775C: @ 0x0803775C + 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 _08037790 + movs r0, #0x42 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0803778A + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0804A4E4 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08037C0C +_0803778A: + adds r0, r5, #0 + bl sub_0805E7BC +_08037790: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08037794 +sub_08037794: @ 0x08037794 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x74 + movs r1, #0x1e + strh r1, [r2] + subs r2, #0x35 + movs r1, #0x26 + strb r1, [r2] + ldrb r1, [r0, #0x14] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_080377B0 +sub_080377B0: @ 0x080377B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x74 + strh r0, [r1] + movs r0, #0x40 + strh r0, [r4, #0x24] + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080377F8 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _080377F8 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + b _080377FE +_080377F8: + movs r0, #0x18 + ands r5, r0 + strb r5, [r4, #0x15] +_080377FE: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, r5, pc} + + thumb_func_start sub_08037810 +sub_08037810: @ 0x08037810 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r1, r5, #0 + adds r1, #0x76 + ldrb r0, [r1] + cmp r0, #0 + bne _080378A8 + adds r0, r5, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080378AC + ldr r6, _080378A4 @ =gUnk_020000B0 + ldr r0, [r6] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r5, #0 + movs r3, #0x40 + bl sub_0806FCB8 + cmp r0, #0 + beq _080378AC + ldr r1, [r6] + adds r0, r5, #0 + bl sub_080045C4 + ldrb r1, [r5, #0x15] + subs r0, r0, r1 + adds r0, #6 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xc + bhi _080378AC + movs r0, #3 + strb r0, [r5, #0xc] + movs r4, #0x18 + movs r0, #0x18 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r0, #0xc0 + strh r0, [r5, #0x24] + ldr r1, [r6] + adds r0, r5, #0 + bl sub_080045C4 + adds r0, #4 + ands r0, r4 + strb r0, [r5, #0x15] + lsrs r0, r0, #3 + strb r0, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + ldr r2, [r6] + ldrh r1, [r2, #0x2e] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r3, r5, #0 + adds r3, #0x7a + strh r0, [r3] + ldrb r1, [r5, #0x14] + adds r0, r5, #0 + bl sub_080042AC + movs r0, #1 + b _080378AE + .align 2, 0 +_080378A4: .4byte gUnk_020000B0 +_080378A8: + subs r0, #1 + strb r0, [r1] +_080378AC: + movs r0, #0 +_080378AE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080378B0 +sub_080378B0: @ 0x080378B0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + cmp r0, #0 + bne _0803790C + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _08037910 + ldr r5, _08037908 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0xa + bl sub_0804A044 + ldrb r1, [r4, #0x15] + cmp r0, r1 + bne _08037910 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x18 + bl sub_0806FCB8 + cmp r0, #0 + beq _08037910 + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, #0xfb + strh r0, [r4, #0x24] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 + b _08037912 + .align 2, 0 +_08037908: .4byte gUnk_020000B0 +_0803790C: + subs r0, #1 + strb r0, [r1] +_08037910: + movs r0, #0 +_08037912: + pop {r4, r5, pc} + + thumb_func_start sub_08037914 +sub_08037914: @ 0x08037914 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08037970 + ldr r7, _08037950 @ =gUnk_020000B0 + ldr r0, [r7] + adds r5, r4, #0 + adds r5, #0x78 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x7a + ldrh r2, [r6] + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + bne _08037954 + ldr r0, [r7] + ldrh r1, [r0, #0x2e] + strh r1, [r5] + ldrh r0, [r0, #0x32] + strh r0, [r6] + adds r0, r4, #0 + bl sub_0803797C + movs r0, #0 + b _08037978 + .align 2, 0 +_08037950: .4byte gUnk_020000B0 +_08037954: + ldrh r1, [r5] + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + bne _08037968 + movs r0, #0 + b _08037978 +_08037968: + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x3c + strb r0, [r1] +_08037970: + adds r0, r4, #0 + bl sub_08037794 + movs r0, #1 +_08037978: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803797C +sub_0803797C: @ 0x0803797C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0x18 + movs r0, #0x18 + strb r0, [r5, #0xe] + movs r0, #8 + strb r0, [r5, #0xf] + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r5, #0 + adds r2, #0x78 + ldrh r2, [r2] + adds r3, r5, #0 + adds r3, #0x7a + ldrh r3, [r3] + bl sub_080045D4 + adds r0, #4 + ands r0, r4 + strb r0, [r5, #0x15] + lsrs r0, r0, #3 + ldrb r1, [r5, #0x14] + cmp r0, r1 + beq _080379BA + strb r0, [r5, #0x14] + adds r1, r0, #4 + adds r0, r5, #0 + bl sub_080042AC +_080379BA: + pop {r4, r5, pc} + + thumb_func_start sub_080379BC +sub_080379BC: @ 0x080379BC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x18 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + bl sub_08000E50 + movs r1, #2 + ands r0, r1 + ldrb r1, [r4, #0x14] + adds r1, r1, r0 + subs r1, #1 + movs r0, #3 + ands r1, r0 + strb r1, [r4, #0x14] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_080379EC +sub_080379EC: @ 0x080379EC + push {r4, lr} + adds r4, r0, #0 + bl sub_0807953C + cmp r0, #0 + beq _08037A0E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037A0E + adds r0, r4, #0 + bl sub_08037A58 + movs r0, #1 + b _08037A10 +_08037A0E: + movs r0, #0 +_08037A10: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037A14 +sub_08037A14: @ 0x08037A14 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x18 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x20 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #5 + strb r0, [r1] + ldr r1, [r4, #0x4c] + adds r0, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037A58 +sub_08037A58: @ 0x08037A58 + push {r4, lr} + adds r4, r0, #0 + bl sub_08037ACC + movs r0, #7 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xf + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r3, r4, #0 + adds r3, #0x3d + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + bne _08037A84 + movs r0, #0xec + strb r0, [r3] +_08037A84: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x26 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xf4 + strb r0, [r3] + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #4 + movs r0, #8 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #0x30 + movs r0, #0x3c + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037ACC +sub_08037ACC: @ 0x08037ACC + ldr r3, _08037B04 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + ldr r2, _08037B08 @ =0xFFFFFEFF + ands r1, r2 + str r1, [r3, #0x30] + ldr r3, _08037B0C @ =gLinkEntity + ldrb r2, [r3, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x3d + movs r1, #0x1e + strb r1, [r2] + ldrb r0, [r0, #0x14] + lsls r0, r0, #3 + adds r1, r3, #0 + adds r1, #0x3e + strb r0, [r1] + adds r1, #4 + movs r0, #4 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + bx lr + .align 2, 0 +_08037B04: .4byte gUnk_03003F80 +_08037B08: .4byte 0xFFFFFEFF +_08037B0C: .4byte gLinkEntity + + thumb_func_start sub_08037B10 +sub_08037B10: @ 0x08037B10 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r5, _08037B44 @ =gLinkEntity + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xc + strb r0, [r1] + subs r0, #0x14 + bl ModHealth + adds r4, r0, #0 + adds r0, r5, #0 + movs r1, #0x7a + bl sub_0800449C + cmp r4, #0 + bne _08037B40 + adds r0, r6, #0 + bl sub_08037A58 + adds r1, r6, #0 + adds r1, #0x76 + movs r0, #0xf0 + strb r0, [r1] +_08037B40: + pop {r4, r5, r6, pc} + .align 2, 0 +_08037B44: .4byte gLinkEntity + + thumb_func_start sub_08037B48 +sub_08037B48: @ 0x08037B48 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _08037B88 + ldrb r0, [r4, #0xe] + movs r2, #0 + strb r0, [r3, #0xb] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x62 + strb r2, [r0] + adds r1, r3, #0 + adds r1, #0x63 + movs r0, #0xfc + strb r0, [r1] + str r4, [r3, #0x50] +_08037B88: + adds r0, r4, #0 + adds r0, #0x80 + str r3, [r0] + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _08037BCA + ldrb r0, [r4, #0xe] + strb r0, [r3, #0xb] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r2, #8 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r1, r3, #0 + adds r1, #0x62 + movs r0, #0xfd + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + str r4, [r3, #0x50] +_08037BCA: + adds r0, r4, #0 + adds r0, #0x84 + str r3, [r0] + movs r0, #0x2a + movs r1, #3 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _08037C06 + ldrb r0, [r4, #0xe] + strb r0, [r3, #0xb] + adds r2, r3, #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] + adds r1, r3, #0 + adds r1, #0x62 + movs r0, #5 + strb r0, [r1] + adds r1, #1 + movs r0, #0xf5 + strb r0, [r1] + str r4, [r3, #0x50] +_08037C06: + str r3, [r4, #0x54] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037C0C +sub_08037C0C: @ 0x08037C0C + push {lr} + adds r3, r0, #0 + adds r0, #0x80 + ldr r2, [r0] + cmp r2, #0 + beq _08037C1E + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C1E: + adds r0, r3, #0 + adds r0, #0x84 + ldr r2, [r0] + cmp r2, #0 + beq _08037C2E + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C2E: + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _08037C3A + movs r0, #0xf + strb r0, [r2, #0xe] + str r1, [r2, #0x50] +_08037C3A: + pop {pc} + + thumb_func_start sub_08037C3C +sub_08037C3C: @ 0x08037C3C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + cmp r0, #0 + beq _08037C5C + ldr r0, _08037C58 @ =gUnk_080012C8 + lsls r1, r4, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08037C7E + .align 2, 0 +_08037C58: .4byte gUnk_080012C8 +_08037C5C: + ldr r4, _08037C80 @ =gUnk_080CF46C + 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 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_08037C7E: + pop {r4, r5, pc} + .align 2, 0 +_08037C80: .4byte gUnk_080CF46C + + thumb_func_start sub_08037C84 +sub_08037C84: @ 0x08037C84 + push {lr} + ldr r2, _08037C98 @ =gUnk_080CF484 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037C98: .4byte gUnk_080CF484 + + thumb_func_start sub_08037C9C +sub_08037C9C: @ 0x08037C9C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037CB0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037CB0: + ldr r1, _08037CBC @ =gUnk_080CF46C + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08037CBC: .4byte gUnk_080CF46C + + thumb_func_start sub_08037CC0 +sub_08037CC0: @ 0x08037CC0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08037CD6 + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_08037CD6: + adds r0, r4, #0 + movs r1, #0xff + movs r2, #0x58 + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037CE4 +sub_08037CE4: @ 0x08037CE4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + bl GetProgressFlag + cmp r0, #0 + beq _08037CF6 + bl sub_0805E780 +_08037CF6: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08037E14 + pop {r4, pc} + + thumb_func_start sub_08037D0C +sub_08037D0C: @ 0x08037D0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08037D1C + subs r0, #1 + strb r0, [r4, #0xf] + b _08037D26 +_08037D1C: + adds r0, r4, #0 + bl sub_08037E90 + cmp r0, #0 + bne _08037D52 +_08037D26: + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _08037D40 + adds r0, r4, #0 + bl sub_08037E14 + b _08037D52 +_08037D40: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037D52 + adds r0, r4, #0 + bl sub_08037E14 +_08037D52: + pop {r4, pc} + + thumb_func_start sub_08037D54 +sub_08037D54: @ 0x08037D54 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08037DC4 + movs r0, #2 + eors r0, r1 + strb r0, [r2] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _08037E0C + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _08037E0C + ldrb r0, [r4, #0x15] + strb r0, [r2, #0x15] + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + ldr r0, _08037DBC @ =gUnk_080CF490 + 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, _08037DC0 @ =0x0000FFFD + strh r0, [r2, #0x36] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + b _08037E0C + .align 2, 0 +_08037DBC: .4byte gUnk_080CF490 +_08037DC0: .4byte 0x0000FFFD +_08037DC4: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08037E0C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08037DEE + strb r3, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + orrs r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08037E14 + b _08037E0C +_08037DEE: + ldr r1, _08037E10 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08037E0C: + pop {r4, pc} + .align 2, 0 +_08037E10: .4byte gLinkEntity + + thumb_func_start sub_08037E14 +sub_08037E14: @ 0x08037E14 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #8 + strb r0, [r5, #0xe] + ldr r1, _08037E6C @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + adds r4, r0, #4 + movs r0, #0x18 + ands r4, r0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_0808094C + ldr r1, _08037E70 @ =0x00002004 + adds r0, r0, r1 + lsrs r3, r4, #2 + ldr r1, _08037E74 @ =gUnk_080CF498 + adds r3, r3, r1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0 + ldrsb r2, [r3, r2] + adds r1, r1, r2 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r2, r2, r3 + movs r3, #0 + bl sub_080AE4CC + cmp r0, #0 + beq _08037E78 + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _08037E7A + .align 2, 0 +_08037E6C: .4byte gLinkEntity +_08037E70: .4byte 0x00002004 +_08037E74: .4byte gUnk_080CF498 +_08037E78: + strb r4, [r5, #0x15] +_08037E7A: + ldrb r0, [r5, #0x15] + lsrs r4, r0, #3 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _08037E8E + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004260 +_08037E8E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08037E90 +sub_08037E90: @ 0x08037E90 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037EA8 @ =gLinkEntity + movs r2, #8 + bl sub_0804A044 + adds r1, r0, #0 + cmp r1, #0xff + bne _08037EAC + movs r0, #0 + b _08037EC6 + .align 2, 0 +_08037EA8: .4byte gLinkEntity +_08037EAC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + lsrs r0, r1, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #1 +_08037EC6: + pop {r4, pc} + + thumb_func_start sub_08037EC8 +sub_08037EC8: @ 0x08037EC8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08037EE4 @ =gUnk_080CF4A0 + 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 +_08037EE4: .4byte gUnk_080CF4A0 + + thumb_func_start sub_08037EE8 +sub_08037EE8: @ 0x08037EE8 + push {lr} + ldr r2, _08037EFC @ =gUnk_080CF4B8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08037EFC: .4byte gUnk_080CF4B8 + + thumb_func_start sub_08037F00 +sub_08037F00: @ 0x08037F00 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08037F14 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08037F14: + ldr r1, _08037F54 @ =gUnk_080CF4A0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x94 + bne _08037F50 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x14 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08037F46 + ldr r0, [r4, #0x20] + asrs r0, r0, #2 +_08037F46: + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08037F50: + pop {r4, pc} + .align 2, 0 +_08037F54: .4byte gUnk_080CF4A0 + + thumb_func_start sub_08037F58 +sub_08037F58: @ 0x08037F58 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08037F6E + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_08037F6E: + ldrb r0, [r4, #0xa] + movs r2, #0x58 + cmp r0, #0 + beq _08037F78 + movs r2, #0x59 +_08037F78: + adds r0, r4, #0 + movs r1, #0xff + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08037F84 +sub_08037F84: @ 0x08037F84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001242 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08037F9E + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 +_08037F9E: + pop {r4, pc} + + thumb_func_start sub_08037FA0 +sub_08037FA0: @ 0x08037FA0 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xb] + bl GetProgressFlag + cmp r0, #0 + beq _08037FB2 + bl sub_0805E780 +_08037FB2: + adds r0, r5, #0 + bl sub_0804A720 + movs r4, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x20 + strb r0, [r5, #0xe] + strb r4, [r5, #0xf] + adds r0, r5, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08037FE0 +sub_08037FE0: @ 0x08037FE0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _08037FF8 + subs r0, #1 + strb r0, [r4, #0xe] + b _08038046 +_08037FF8: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803802C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038046 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_08038168 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08038046 +_0803802C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038046 + movs r0, #0x40 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08038046: + pop {r4, pc} + + thumb_func_start sub_08038048 +sub_08038048: @ 0x08038048 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x36 + ldrsh r6, [r4, r0] + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #0xf + ands r5, r0 + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_080044EC + cmp r0, #1 + bne _08038088 + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + movs r0, #0x14 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004260 + b _0803810C +_08038088: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08038098 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E + b _080380B0 +_08038098: + adds r0, r4, #0 + bl sub_080002B8 + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x50 + bne _080380B0 + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080380B0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080380C8 + adds r0, r5, #0 + adds r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08038168 +_080380C8: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080380E2 + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r6, r0 + bge _080380E2 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + movs r0, #1 + strb r0, [r4, #0xd] +_080380E2: + movs r0, #0xc + rsbs r0, r0, #0 + cmp r6, r0 + bge _080380F6 + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + b _08038100 +_080380F6: + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 +_08038100: + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] +_0803810C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08038110 +sub_08038110: @ 0x08038110 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08038164 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r0, [r2] + cmp r0, #4 + bhi _08038150 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_08038168 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _08038164 +_08038150: + movs r0, #0 + movs r1, #1 + strb r1, [r4, #0xc] + strb r0, [r2] + movs r0, #0xc0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08038164: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038168 +sub_08038168: @ 0x08038168 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803817E + adds r0, r4, #0 + bl sub_08049EE4 + strb r0, [r4, #0x15] + b _080381AA +_0803817E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08038196 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _080381AA +_08038196: + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + adds r1, #0x18 + ldrb r0, [r4, #0x15] + adds r1, r1, r0 + movs r0, #0x1f + ands r1, r0 + strb r1, [r4, #0x15] +_080381AA: + pop {r4, pc} + + thumb_func_start sub_080381AC +sub_080381AC: @ 0x080381AC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _080381D0 + ldr r0, _080381CC @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _080381F2 + .align 2, 0 +_080381CC: .4byte gUnk_080012C8 +_080381D0: + ldr r4, _080381F4 @ =gUnk_080CF4C8 + 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 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC +_080381F2: + pop {r4, r5, pc} + .align 2, 0 +_080381F4: .4byte gUnk_080CF4C8 + + thumb_func_start sub_080381F8 +sub_080381F8: @ 0x080381F8 + push {lr} + ldr r2, _0803820C @ =gUnk_080CF4E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803820C: .4byte gUnk_080CF4E0 + + thumb_func_start sub_08038210 +sub_08038210: @ 0x08038210 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08038224 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038224: + ldr r1, _08038230 @ =gUnk_080CF4C8 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08038230: .4byte gUnk_080CF4C8 + + thumb_func_start sub_08038234 +sub_08038234: @ 0x08038234 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0803824A + ldrb r0, [r4, #0xb] + bl sub_0807CD04 +_0803824A: + adds r0, r4, #0 + movs r1, #0xff + movs r2, #0x58 + bl sub_0804A7E0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038258 +sub_08038258: @ 0x08038258 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + bl GetProgressFlag + cmp r0, #0 + beq _0803826A + bl sub_0805E780 +_0803826A: + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080383AC + pop {r4, pc} + + thumb_func_start sub_0803827C +sub_0803827C: @ 0x0803827C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803828C + subs r0, #1 + strb r0, [r4, #0xf] + b _080382BC +_0803828C: + ldr r5, _080382B8 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #8 + bl sub_0804A044 + cmp r0, #0xff + bne _080382B0 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _080382BC +_080382B0: + adds r0, r4, #0 + bl sub_080383E4 + b _080382E8 + .align 2, 0 +_080382B8: .4byte gLinkEntity +_080382BC: + adds r0, r4, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _080382D6 + adds r0, r4, #0 + bl sub_080383AC + b _080382E8 +_080382D6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080382E8 + adds r0, r4, #0 + bl sub_080383AC +_080382E8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080382EC +sub_080382EC: @ 0x080382EC + 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 _08038300 + movs r0, #3 + strb r0, [r1, #0xc] +_08038300: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08038304 +sub_08038304: @ 0x08038304 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_08004276 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _08038334 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + cmp r0, r1 + bne _08038330 + movs r0, #0x5a + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080383AC + b _080383AA +_08038330: + strb r0, [r4, #0x15] + b _080383AA +_08038334: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + movs r1, #0xa + bl __modsi3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080383AA + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r3, [r4, #0x15] + cmp r0, r3 + bne _08038398 + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #0x1b + lsrs r1, r1, #0x18 + adds r0, r4, #0 + adds r0, #0x79 + lsls r5, r1, #0x18 + lsrs r3, r5, #0x18 + adds r2, r0, #0 + movs r6, #0x7a + adds r6, r6, r4 + mov ip, r6 + ldrb r0, [r2] + cmp r3, r0 + bne _08038388 + ldrb r6, [r6] + cmp r3, r6 + bne _08038388 + rsbs r0, r5, #0 + lsrs r1, r0, #0x18 +_08038388: + ldrb r0, [r2] + mov r3, ip + strb r0, [r3] + strb r1, [r2] + ldrb r0, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x18 + ands r0, r1 +_08038398: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_080383AA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080383AC +sub_080383AC: @ 0x080383AC + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, #0xf8 + strh r0, [r4, #0x24] + ldr r1, _080383E0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r1, r0, #3 + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _080383DC + strb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080383DC: + pop {r4, pc} + .align 2, 0 +_080383E0: .4byte gLinkEntity + + thumb_func_start sub_080383E4 +sub_080383E4: @ 0x080383E4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldr r1, _0803842C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r1, #1 + movs r0, #0xff + strb r0, [r1] + adds r1, #1 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_0803842C: .4byte gLinkEntity + + thumb_func_start sub_08038430 +sub_08038430: @ 0x08038430 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803844C @ =gUnk_080CF4F0 + 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 +_0803844C: .4byte gUnk_080CF4F0 + + thumb_func_start sub_08038450 +sub_08038450: @ 0x08038450 + push {lr} + ldr r2, _08038464 @ =gUnk_080CF508 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038464: .4byte gUnk_080CF508 + + thumb_func_start sub_08038468 +sub_08038468: @ 0x08038468 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803847C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803847C: + ldr r1, _080384B0 @ =gUnk_080CF4F0 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080384D8 + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x5a + bne _080384CA + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x14 + beq _080384BA + cmp r0, #0x14 + bgt _080384B4 + cmp r0, #0xe + beq _080384C0 + b _080384D8 + .align 2, 0 +_080384B0: .4byte gUnk_080CF4F0 +_080384B4: + cmp r0, #0x15 + beq _080384C0 + b _080384D8 +_080384BA: + movs r0, #5 + strb r0, [r4, #0xc] + b _080384D8 +_080384C0: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + b _080384D8 +_080384CA: + movs r0, #0x3f + ands r0, r1 + cmp r0, #0x1d + bne _080384D8 + adds r0, r4, #0 + bl sub_08038754 +_080384D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_163 +nullsub_163: @ 0x080384DC + bx lr + .align 2, 0 + + thumb_func_start sub_080384E0 +sub_080384E0: @ 0x080384E0 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + movs r0, #1 + strb r0, [r6, #0xc] + bl sub_08000E50 + movs r1, #0x1c + ands r0, r1 + strb r0, [r6, #0x15] + lsrs r0, r0, #2 + strb r0, [r6, #0x14] + ldrb r1, [r6, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r6, #0x10] + strb r4, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + adds r0, r6, #0 + adds r0, #0x82 + strb r4, [r0] + bl sub_08000E50 + ands r0, r5 + adds r1, r6, #0 + adds r1, #0x80 + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x81 + strb r4, [r0] + subs r1, #0x41 + movs r0, #0x72 + strb r0, [r1] + ldrb r1, [r6, #0x14] + adds r0, r6, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08038534 +sub_08038534: @ 0x08038534 + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08038594 + strb r0, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _08038578 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803856A + adds r1, #7 + b _0803856C +_0803856A: + adds r1, #1 +_0803856C: + movs r0, #7 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + b _0803858A +_08038578: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] +_0803858A: + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _080385C8 +_08038594: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080385C8 + adds r0, r4, #0 + movs r1, #0x80 + bl sub_0803872C + cmp r0, #0 + beq _080385C8 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x10 + strb r0, [r4, #0xf] + movs r0, #0x40 + strh r0, [r4, #0x24] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FCAC + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_080385C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080385CC +sub_080385CC: @ 0x080385CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080387F0 + adds r0, r4, #0 + movs r1, #0x60 + bl sub_0803872C + cmp r0, #0 + beq _08038604 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xc + strb r0, [r4, #0xf] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldr r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FCAC + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + b _08038648 +_08038604: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038648 + movs r6, #0x10 + strb r6, [r4, #0xf] + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _08038622 + adds r0, r4, #0 + bl sub_0806FCAC + b _08038638 +_08038622: + ldrb r5, [r4, #0x14] + bl sub_08000E50 + ands r0, r6 + cmp r0, #0 + beq _08038632 + adds r1, r5, #2 + b _08038634 +_08038632: + adds r1, r5, #6 +_08038634: + movs r0, #7 + ands r0, r1 +_08038638: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08038648: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803864C +sub_0803864C: @ 0x0803864C + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_0803872C + cmp r0, #0 + beq _08038668 + adds r0, r4, #0 + bl sub_08038754 + b _080386B4 +_08038668: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080386B4 + movs r0, #0xa + strb r0, [r4, #0xf] + adds r2, r4, #0 + adds r2, #0x81 + ldrb r0, [r2] + cmp r0, #0 + bne _08038698 + ldrh r0, [r4, #0x24] + adds r0, #0x40 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #0x12 + cmp r0, r1 + ble _080386B4 + movs r0, #1 + strb r0, [r2] + b _080386B4 +_08038698: + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _080386AE + adds r0, r2, #0 + subs r0, #0x50 + strh r0, [r4, #0x24] + b _080386B4 +_080386AE: + adds r0, r4, #0 + bl sub_08038754 +_080386B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080386B8 +sub_080386B8: @ 0x080386B8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080387F0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + adds r1, r0, #0 + cmp r1, #1 + bne _08038720 + strb r1, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x3f + movs r0, #0x72 + strb r0, [r2] + strb r1, [r4, #0xe] + movs r0, #0x80 + strb r0, [r4, #0xf] + strh r0, [r4, #0x24] + subs r2, #0x16 + ldrb r1, [r2] + subs r0, #0xb9 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x70 + bl sub_0801D2B4 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #2 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08038720 + adds r0, r4, #0 + bl sub_0806FAB0 +_08038720: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038724 +sub_08038724: @ 0x08038724 + push {lr} + bl sub_08038754 + pop {pc} + + thumb_func_start sub_0803872C +sub_0803872C: @ 0x0803872C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r1, r0, #0 + str r1, [r4, #0x54] + cmp r1, #0 + beq _08038750 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0806FC80 + cmp r0, #0 + beq _08038750 + movs r0, #1 + b _08038752 +_08038750: + movs r0, #0 +_08038752: + pop {r4, r5, pc} + + thumb_func_start sub_08038754 +sub_08038754: @ 0x08038754 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x5a + strb r0, [r1] + movs r1, #0 + movs r0, #0xc0 + strh r0, [r4, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x81 + strb r1, [r0] + 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] + ldr r0, _080387C0 @ =0x0000012B + bl sub_08004488 + adds r0, r4, #0 + movs r1, #0x71 + bl sub_0801D2B4 + ldrb r2, [r4, #0x15] + movs r0, #0xf + ands r0, r2 + cmp r0, #0 + beq _080387C4 + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, #9 + adds r0, r4, #0 + bl sub_08004260 + b _080387D8 + .align 2, 0 +_080387C0: .4byte 0x0000012B +_080387C4: + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 +_080387D8: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080387EE + adds r0, r4, #0 + bl sub_0806FAB0 +_080387EE: + pop {r4, pc} + + thumb_func_start sub_080387F0 +sub_080387F0: @ 0x080387F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _08038890 + adds r5, r4, #0 + adds r5, #0x82 + ldrb r0, [r5] + cmp r0, #0 + bne _08038890 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08038868 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r6, #0x32 + ldrsh r1, [r4, r6] + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xf + beq _08038836 + cmp r0, #0x2a + bne _0803883A +_08038836: + movs r0, #0x20 + strb r0, [r5] +_0803883A: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #1 + ldr r1, _0803886C @ =gUnk_080CF520 + adds r0, r0, r1 + ldrb r5, [r4, #0x15] + movs r1, #0 + ldrsb r1, [r0, r1] + movs r2, #1 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002CC + cmp r0, #0xf + beq _0803885A + cmp r0, #0x2a + bne _08038870 +_0803885A: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + b _0803887E + .align 2, 0 +_08038868: .4byte gUnk_03000BF0 +_0803886C: .4byte gUnk_080CF520 +_08038870: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803887E + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_0800417E +_0803887E: + ldrb r0, [r4, #0x15] + cmp r5, r0 + beq _08038890 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 +_08038890: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _080388A8 + adds r0, r4, #0 + bl sub_080AEF88 + b _080388B2 +_080388A8: + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806F69C +_080388B2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080388B4 +sub_080388B4: @ 0x080388B4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080388D0 @ =gUnk_080CF600 + 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 +_080388D0: .4byte gUnk_080CF600 + + thumb_func_start sub_080388D4 +sub_080388D4: @ 0x080388D4 + push {lr} + ldr r2, _080388E8 @ =gUnk_080CF618 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080388E8: .4byte gUnk_080CF618 + + thumb_func_start sub_080388EC +sub_080388EC: @ 0x080388EC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x43 + ldrb r0, [r6] + cmp r0, #0 + beq _08038902 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038902: + ldr r1, _08038948 @ =gUnk_080CF600 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803897E + ldrb r0, [r4, #0xc] + cmp r0, #4 + beq _0803897E + ldr r5, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x3d + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x3e + ldrb r1, [r2] + adds r0, r5, #0 + adds r0, #0x3e + strb r1, [r0] + ldrb r0, [r6] + cmp r0, #0 + beq _0803894C + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + b _0803897E + .align 2, 0 +_08038948: .4byte gUnk_080CF600 +_0803894C: + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _0803897E + adds r0, r1, #0 + adds r0, #0x12 + movs r1, #0x1c + ands r0, r1 + strb r0, [r5, #0x15] + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + ldrb r0, [r2] + adds r0, #0x14 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 +_0803897E: + pop {r4, r5, r6, pc} + + thumb_func_start nullsub_164 +nullsub_164: @ 0x08038980 + bx lr + .align 2, 0 + + thumb_func_start sub_08038984 +sub_08038984: @ 0x08038984 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x13 + bl sub_080A7EE0 + adds r6, r0, #0 + cmp r6, #0 + beq _080389E6 + adds r0, r5, #0 + bl sub_0804A720 + movs r4, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + str r6, [r5, #0x54] + bl sub_08000E50 + movs r1, #6 + ands r0, r1 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x80 + movs r1, #0 + strh r4, [r0] + subs r0, #6 + strb r1, [r0] + str r5, [r6, #0x50] + strb r1, [r6, #0xa] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r5, #0 + bl sub_08038BA8 +_080389E6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080389E8 +sub_080389E8: @ 0x080389E8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, [r4, #0x54] + adds r1, r4, #0 + adds r1, #0x80 + ldrh r0, [r1] + cmp r0, #0 + beq _08038A08 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08038A68 + movs r0, #0x80 + strh r0, [r4, #0x24] + b _08038A68 +_08038A08: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038A22 + adds r0, r4, #0 + bl sub_08038BA8 + adds r0, r6, #0 + bl sub_08038C2C + b _08038A68 +_08038A22: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08038A2E + subs r0, #1 + strb r0, [r4, #0xe] + b _08038A68 +_08038A2E: + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _08038A68 + movs r0, #0xc + strb r0, [r4, #0xe] + ldrb r1, [r6, #0x14] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08038A5C + ldrb r5, [r6, #0x14] + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + cmp r1, #0 + beq _08038A54 + adds r1, r5, #1 + b _08038A56 +_08038A54: + adds r1, r5, #7 +_08038A56: + movs r0, #7 + ands r0, r1 + strb r0, [r6, #0x14] +_08038A5C: + adds r0, r4, #0 + bl sub_08038BA8 + adds r0, r6, #0 + bl sub_08038C2C +_08038A68: + adds r0, r4, #0 + bl sub_08038B90 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08038A70 +sub_08038A70: @ 0x08038A70 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x54] + adds r1, r5, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r7, r0, #0x10 + cmp r7, #0 + bne _08038AC0 + movs r1, #3 + strb r1, [r5, #0xc] + adds r2, r5, #0 + adds r2, #0x82 + movs r0, #4 + strb r0, [r2] + movs r0, #0x80 + strh r0, [r5, #0x24] + movs r4, #0x20 + strb r4, [r5, #0xf] + strb r1, [r6, #0xc] + adds r1, r6, #0 + adds r1, #0x82 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r6, #0x14] + adds r0, r5, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r6, #0 + bl sub_08038C2C + strb r4, [r6, #0xf] + str r7, [r6, #0x50] + str r5, [r6, #0x54] + b _08038AFE +_08038AC0: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038AFE + movs r0, #0x10 + strb r0, [r5, #0xf] + adds r0, r5, #0 + movs r1, #0 + bl sub_08049F84 + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + adds r0, #4 + movs r1, #0x1c + ands r0, r1 + lsrs r1, r0, #2 + strb r1, [r6, #0x14] + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r5, #0x14] + adds r0, r5, #0 + movs r1, #0 + bl sub_08038C84 + adds r0, r6, #0 + movs r1, #1 + bl sub_08038C84 +_08038AFE: + adds r0, r5, #0 + bl sub_08038B90 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08038B08 +sub_08038B08: @ 0x08038B08 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08038B18 + subs r0, #1 + strb r0, [r4, #0xf] + b _08038B5E +_08038B18: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08038B5E + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #3 + strb r0, [r1] + movs r0, #0x32 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + strh r2, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + ldr r0, _08038B60 @ =0x0000015B + bl sub_08004488 +_08038B5E: + pop {r4, pc} + .align 2, 0 +_08038B60: .4byte 0x0000015B + + thumb_func_start sub_08038B64 +sub_08038B64: @ 0x08038B64 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038B8C + movs r0, #2 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #0x1f + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_08038B8C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038B90 +sub_08038B90: @ 0x08038B90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038BA8 +sub_08038BA8: @ 0x08038BA8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r1, _08038BEC @ =gUnk_080CF62C + movs r5, #7 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x82 + movs r3, #1 + strb r3, [r0] + ldr r0, [r4, #0x54] + adds r0, #0x82 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + cmp r0, #0 + bne _08038BF0 + adds r0, #1 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 + b _08038C2A + .align 2, 0 +_08038BEC: .4byte gUnk_080CF62C +_08038BF0: + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x14] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08038C14 + ldrb r2, [r2, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r1, #1 + ands r0, r5 + movs r3, #6 + cmp r2, r0 + bne _08038C0C + movs r3, #2 +_08038C0C: + adds r3, r3, r1 + movs r0, #6 + ands r3, r0 + b _08038C18 +_08038C14: + ldrb r3, [r2, #0x14] + ldrb r1, [r4, #0x14] +_08038C18: + cmp r3, r1 + beq _08038C2A + strb r3, [r4, #0x14] + lsls r0, r3, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_08038C84 +_08038C2A: + pop {r4, r5, pc} + + thumb_func_start sub_08038C2C +sub_08038C2C: @ 0x08038C2C + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08000E50 + ldr r1, _08038C58 @ =gUnk_080CF634 + movs r6, #7 + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xf] + ldr r0, [r5, #0x50] + ldrb r4, [r0, #0x14] + ldrb r0, [r5, #0x14] + cmp r0, #0xff + bne _08038C5C + strb r4, [r5, #0x14] + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 + b _08038C7C + .align 2, 0 +_08038C58: .4byte gUnk_080CF634 +_08038C5C: + bl sub_08000E50 + ldr r1, _08038C80 @ =gUnk_080CF63C + ands r0, r6 + adds r0, r0, r1 + ldrb r0, [r0] + adds r4, r0, r4 + ands r4, r6 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _08038C7C + strb r4, [r5, #0x14] + adds r0, r5, #0 + movs r1, #1 + bl sub_08038C84 +_08038C7C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08038C80: .4byte gUnk_080CF63C + + thumb_func_start sub_08038C84 +sub_08038C84: @ 0x08038C84 + push {lr} + adds r3, r0, #0 + ldrb r2, [r3, #0x14] + adds r0, #0x82 + ldrb r0, [r0] + lsls r0, r0, #3 + orrs r2, r0 + cmp r1, #0 + bne _08038C98 + lsrs r2, r2, #1 +_08038C98: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08038CA4 +sub_08038CA4: @ 0x08038CA4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08038CC8 + ldr r0, _08038CC4 @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08038CF0 + .align 2, 0 +_08038CC4: .4byte gUnk_080012C8 +_08038CC8: + ldr r4, _08038CF4 @ =gUnk_080CF778 + 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 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + adds r0, r5, #0 + bl sub_080391B4 +_08038CF0: + pop {r4, r5, pc} + .align 2, 0 +_08038CF4: .4byte gUnk_080CF778 + + thumb_func_start sub_08038CF8 +sub_08038CF8: @ 0x08038CF8 + push {lr} + ldr r2, _08038D0C @ =gUnk_080CF790 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038D0C: .4byte gUnk_080CF790 + + thumb_func_start sub_08038D10 +sub_08038D10: @ 0x08038D10 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08038D52 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + bne _08038D3E + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + bne _08038D3E + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xbf + bhi _08038D46 + movs r0, #1 + strb r0, [r5] + b _08038D46 +_08038D3E: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08038D46: + adds r0, r4, #0 + bl sub_08039218 + adds r0, r4, #0 + bl sub_08039260 +_08038D52: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08038D64 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08038D64: + ldr r1, _08038D70 @ =gUnk_080CF778 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08038D70: .4byte gUnk_080CF778 + + thumb_func_start nullsub_165 +nullsub_165: @ 0x08038D74 + bx lr + .align 2, 0 + + thumb_func_start sub_08038D78 +sub_08038D78: @ 0x08038D78 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + ldrb r0, [r4, #0xa] + cmp r0, #2 + beq _08038D96 + movs r0, #0 + strb r0, [r4, #0xb] + movs r0, #0x30 + strb r0, [r4, #0x16] + adds r0, r4, #0 + bl sub_08039120 + b _08038D9C +_08038D96: + adds r0, r4, #0 + bl sub_08039140 +_08038D9C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038DA0 +sub_08038DA0: @ 0x08038DA0 + 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 _08038DB6 + adds r0, r4, #0 + bl sub_0803901C +_08038DB6: + adds r0, r4, #0 + bl sub_08039298 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038DC0 +sub_08038DC0: @ 0x08038DC0 + push {lr} + ldr r2, _08038DD4 @ =gUnk_080CF7AC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08038DD4: .4byte gUnk_080CF7AC + + thumb_func_start sub_08038DD8 +sub_08038DD8: @ 0x08038DD8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x10 + strb r1, [r0, #0xe] + ldr r2, _08038E10 @ =gUnk_080CF7BC + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r0, #0xf] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r3] + movs r1, #4 + bl sub_08004260 + ldr r0, _08038E14 @ =0x000001D9 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08038E10: .4byte gUnk_080CF7BC +_08038E14: .4byte 0x000001D9 + + thumb_func_start sub_08038E18 +sub_08038E18: @ 0x08038E18 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08038E70 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038E70 + bl sub_08079184 + adds r0, r4, #0 + bl sub_08039218 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + 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 + movs r1, #8 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08016A04 +_08038E70: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038EA2 + movs r0, #0x10 + strb r0, [r4, #0xe] + bl sub_08000E50 + ldrb r3, [r4, #0x18] + lsls r2, r3, #0x19 + lsrs r2, r2, #0x1f + movs r1, #1 + ands r1, r0 + eors r2, r1 + lsls r2, r2, #6 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_08039260 +_08038EA2: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038EAC +sub_08038EAC: @ 0x08038EAC + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08038ED0 +sub_08038ED0: @ 0x08038ED0 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + bl sub_08039218 + pop {pc} + + thumb_func_start sub_08038EE0 +sub_08038EE0: @ 0x08038EE0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08039298 + movs r1, #0xe0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08038F1C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08038F16 + adds r0, r4, #0 + bl sub_0803901C + b _08038F1C +_08038F16: + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] +_08038F1C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08038F20 +sub_08038F20: @ 0x08038F20 + push {r4, lr} + adds r4, r0, #0 + bl sub_08039298 + 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 _08038F42 + adds r0, r4, #0 + bl sub_0803901C +_08038F42: + pop {r4, pc} + + thumb_func_start sub_08038F44 +sub_08038F44: @ 0x08038F44 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08038F8C @ =gLinkEntity + adds r1, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_080AEF88 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_080044EC + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08039298 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r2, r0, #1 + strh r2, [r1] + lsls r0, r2, #0x10 + cmp r0, #0 + bne _08038F90 + adds r0, r4, #0 + bl sub_08039120 + b _08038F9E + .align 2, 0 +_08038F8C: .4byte gLinkEntity +_08038F90: + movs r0, #0x1f + ands r2, r0 + cmp r2, #0 + bne _08038F9E + adds r0, r4, #0 + bl sub_08039260 +_08038F9E: + pop {r4, pc} + + thumb_func_start sub_08038FA0 +sub_08038FA0: @ 0x08038FA0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + adds r0, r1, #1 + strb r0, [r4, #0xe] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _08038FB8 + adds r0, r4, #0 + bl sub_08039260 +_08038FB8: + adds r2, r4, #0 + adds r2, #0x78 + ldrh r1, [r2] + cmp r1, #0 + beq _08038FFC + ldr r3, _08038FF4 @ =0x0000FFFF + adds r0, r1, r3 + strh r0, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08038FE0 + ldr r1, _08038FF8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08038FE0: + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + b _08039018 + .align 2, 0 +_08038FF4: .4byte 0x0000FFFF +_08038FF8: .4byte gLinkEntity +_08038FFC: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803917C + cmp r0, #0 + beq _08039018 + adds r0, r4, #0 + bl sub_0805E7BC +_08039018: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803901C +sub_0803901C: @ 0x0803901C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r3, r0, #0 + movs r5, #3 + ands r5, r3 + cmp r3, #3 + bne _08039042 + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _0803903C + cmp r0, #4 + beq _08039040 + movs r5, #0 + b _08039042 +_0803903C: + movs r5, #1 + b _08039042 +_08039040: + movs r5, #2 +_08039042: + cmp r5, #1 + beq _0803906C + cmp r5, #2 + beq _080390AA + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08039068 @ =gUnk_080CF7BE + lsrs r0, r3, #0x10 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + b _080390BC + .align 2, 0 +_08039068: .4byte gUnk_080CF7BE +_0803906C: + movs r1, #3 + movs r0, #3 + strb r0, [r4, #0xc] + lsrs r0, r3, #8 + ands r0, r1 + adds r0, #2 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_080390C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + bl sub_08000E50 + ands r0, r5 + cmp r0, #0 + beq _080390BC + bl sub_08000E50 + ands r5, r0 + movs r1, #0xeb + lsls r1, r1, #1 + adds r0, r5, r1 + bl sub_08004488 + b _080390BC +_080390AA: + movs r0, #4 + strb r0, [r4, #0xc] + lsrs r1, r3, #0x10 + movs r0, #1 + ands r1, r0 + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 +_080390BC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080390C0 +sub_080390C0: @ 0x080390C0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _080390E0 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _080390E0 + lsrs r0, r5, #0x10 + b _080390E8 +_080390E0: + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #2 +_080390E8: + movs r1, #0x1c + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080390F8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080390F8 +sub_080390F8: @ 0x080390F8 + push {lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _0803911C + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x18] +_0803911C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039120 +sub_08039120: @ 0x08039120 + push {lr} + ldr r2, _0803913C @ =gUnk_080CF7C2 + ldrb r1, [r0, #0xa] + adds r1, r1, r2 + ldrb r1, [r1] + movs r2, #0 + strh r1, [r0, #0x24] + adds r1, r0, #0 + adds r1, #0x7a + strb r2, [r1] + bl sub_0803901C + pop {pc} + .align 2, 0 +_0803913C: .4byte gUnk_080CF7C2 + + thumb_func_start sub_08039140 +sub_08039140: @ 0x08039140 + push {r4, lr} + adds r4, r0, #0 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + strb r0, [r4, #0xe] + ldr r1, _08039174 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldr r0, _08039178 @ =0x0000FFFC + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x78 + movs r0, #0xb4 + strh r0, [r1] + adds r0, r4, #0 + bl sub_080390F8 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 +_08039174: .4byte gLinkEntity +_08039178: .4byte 0x0000FFFC + + thumb_func_start sub_0803917C +sub_0803917C: @ 0x0803917C + push {r4, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _080391AC @ =gUnk_03000BF0 + movs r4, #0xa + ldrsh r1, [r3, r4] + adds r1, #0xc + subs r0, r0, r1 + movs r1, #0x84 + lsls r1, r1, #1 + cmp r0, r1 + bhi _080391B0 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0xc + ldrsh r0, [r3, r2] + adds r0, #0xc + subs r1, r1, r0 + cmp r1, #0xb8 + bhi _080391B0 + movs r0, #0 + b _080391B2 + .align 2, 0 +_080391AC: .4byte gUnk_03000BF0 +_080391B0: + movs r0, #1 +_080391B2: + pop {r4, pc} + + thumb_func_start sub_080391B4 +sub_080391B4: @ 0x080391B4 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x7a + ldrb r0, [r0] + cmp r0, #0 + beq _0803920C + adds r2, r5, #0 + adds r2, #0x7b + ldrb r1, [r2] + adds r0, r1, #1 + strb r0, [r2] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0803920C + movs r0, #0x41 + movs r1, #2 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0803920C + bl sub_08000E50 + movs r1, #0x17 + ands r1, r0 + lsls r1, r1, #2 + ldr r0, _08039210 @ =gUnk_080CF7C4 + adds r1, r1, r0 + ldr r2, _08039214 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r3, [r2, #0xa] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #0xc] + adds r0, r0, r2 + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_0803920C: + pop {r4, r5, pc} + .align 2, 0 +_08039210: .4byte gUnk_080CF7C4 +_08039214: .4byte gUnk_03000BF0 + + thumb_func_start sub_08039218 +sub_08039218: @ 0x08039218 + push {lr} + adds r2, r0, #0 + movs r0, #5 + strb r0, [r2, #0xc] + ldr r1, _08039254 @ =gUnk_080CF824 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x24] + ldr r1, _08039258 @ =gUnk_080CF828 + ldrb r0, [r2, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x78 + strh r1, [r0] + subs r0, #0x20 + ldrb r0, [r0] + cmp r0, #4 + beq _0803924C + adds r0, r2, #0 + movs r1, #4 + bl sub_08004260 +_0803924C: + ldr r0, _0803925C @ =0x000001D9 + bl sub_08004488 + pop {pc} + .align 2, 0 +_08039254: .4byte gUnk_080CF824 +_08039258: .4byte gUnk_080CF828 +_0803925C: .4byte 0x000001D9 + + thumb_func_start sub_08039260 +sub_08039260: @ 0x08039260 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08039290 @ =gUnk_080CF82E + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r1, [r1] + adds r0, r4, #0 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0803928E + ldr r0, _08039294 @ =gUnk_080CF82C + ldrb r1, [r4, #0x18] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x1f + adds r1, r1, r0 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] +_0803928E: + pop {r4, pc} + .align 2, 0 +_08039290: .4byte gUnk_080CF82E +_08039294: .4byte gUnk_080CF82C + + thumb_func_start sub_08039298 +sub_08039298: @ 0x08039298 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xb] + cmp r0, #0 + bne _080392A8 + adds r0, r1, #0 + bl sub_08078930 +_080392A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080392AC +sub_080392AC: @ 0x080392AC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080392C8 @ =gUnk_080CF8A4 + bl sub_0800129E + movs r3, #0x12 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_080392C8: .4byte gUnk_080CF8A4 + + thumb_func_start sub_080392CC +sub_080392CC: @ 0x080392CC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080392FC @ =gUnk_080CF8BC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + cmp r0, #0 + beq _0803930C + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08039300 + subs r1, #0x3d + movs r0, #0x45 + b _0803930A + .align 2, 0 +_080392FC: .4byte gUnk_080CF8BC +_08039300: + adds r0, r4, #0 + adds r0, #0x7d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x3f +_0803930A: + strb r0, [r1] +_0803930C: + movs r0, #0x36 + ldrsh r1, [r4, r0] + cmp r1, #0 + beq _0803933A + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08039334 + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + b _0803933A +_08039334: + adds r0, r4, #0 + bl sub_08016A04 +_0803933A: + pop {r4, pc} + + thumb_func_start sub_0803933C +sub_0803933C: @ 0x0803933C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x44 + bne _08039390 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #6 + bgt _08039390 + cmp r1, #4 + blt _08039390 + adds r0, r5, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _08039390 + movs r0, #4 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r5, #0x15] + ldrb r0, [r5, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + movs r1, #0x10 + eors r0, r1 + asrs r0, r0, #3 + strb r0, [r5, #0x14] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0803981C +_08039390: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r2, [r0] + cmp r2, #0x9d + bne _080393F8 + ldr r1, [r5, #0x54] + cmp r1, #0 + bne _080393CA + ldrb r0, [r5, #0xc] + cmp r0, #8 + bhi _080393EC + adds r0, r5, #0 + movs r1, #0x10 + movs r2, #1 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _080393DC + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + strb r0, [r1, #0x1e] + movs r0, #2 + strb r0, [r1, #0xb] + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 + b _080393DC +_080393CA: + adds r0, r1, #0 + adds r0, #0x41 + movs r4, #0 + strb r2, [r0] + movs r0, #0xc3 + lsls r0, r0, #1 + bl sub_08004488 + str r4, [r5, #0x54] +_080393DC: + adds r0, r5, #0 + bl sub_08039A48 + adds r1, r5, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x5a + strh r0, [r1] +_080393EC: + adds r2, r5, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_080393F8: + adds r0, r5, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803940A + adds r0, r5, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803940A: + ldr r1, _08039414 @ =gUnk_080CF8A4 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08039414: .4byte gUnk_080CF8A4 + + thumb_func_start sub_08039418 +sub_08039418: @ 0x08039418 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0803942E + adds r0, r1, #0 + movs r1, #0xf3 + movs r2, #0 + bl sub_0804A7E0 + b _08039434 +_0803942E: + adds r0, r1, #0 + bl sub_0804A7D4 +_08039434: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039438 +sub_08039438: @ 0x08039438 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039454 + ldr r0, _08039458 @ =gUnk_080CF8EC + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08039454: + pop {r4, pc} + .align 2, 0 +_08039458: .4byte gUnk_080CF8EC + + thumb_func_start sub_0803945C +sub_0803945C: @ 0x0803945C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x5a + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_08039468 +sub_08039468: @ 0x08039468 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_08039470 +sub_08039470: @ 0x08039470 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x54] + cmp r2, #0 + bne _08039494 + movs r1, #0x10 + movs r2, #1 + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0803949C + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + strb r0, [r2, #0x1e] + movs r0, #1 + strb r0, [r2, #0xb] + b _0803949C +_08039494: + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] +_0803949C: + movs r0, #0 + str r0, [r4, #0x54] + adds r3, r4, #0 + adds r3, #0x3a + ldrb r2, [r3] + movs r1, #0xfb + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3] + adds r2, r4, #0 + adds r2, #0x3b + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + adds r0, r4, #0 + bl sub_08039A48 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x5a + strh r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080394CC +sub_080394CC: @ 0x080394CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #0x3d + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08039A00 + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0803950A + adds r0, r4, #0 + bl sub_0803998C + b _0803952A +_0803950A: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x15] + ldr r1, _0803952C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803981C +_0803952A: + pop {r4, pc} + .align 2, 0 +_0803952C: .4byte gLinkEntity + + thumb_func_start sub_08039530 +sub_08039530: @ 0x08039530 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _08039568 + adds r0, r4, #0 + bl sub_08039758 + cmp r0, #0 + bne _08039568 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039568 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08039858 +_08039568: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803956C +sub_0803956C: @ 0x0803956C + push {r4, lr} + adds r4, r0, #0 + bl sub_08039758 + cmp r0, #0 + bne _0803958A + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803958A + adds r0, r4, #0 + bl sub_0803992C +_0803958A: + pop {r4, pc} + + thumb_func_start sub_0803958C +sub_0803958C: @ 0x0803958C + push {r4, lr} + adds r4, r0, #0 + bl sub_08039758 + cmp r0, #0 + bne _080395D4 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + beq _080395C0 + adds r0, r4, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080395D4 + adds r0, r4, #0 + bl sub_0803998C + b _080395D4 +_080395C0: + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + lsls r0, r0, #1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0803998C +_080395D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080395D8 +sub_080395D8: @ 0x080395D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08039602 + adds r0, r4, #0 + bl sub_0803998C + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x5a + strb r0, [r1] + movs r0, #0x7d + bl sub_08004488 +_08039602: + pop {r4, pc} + + thumb_func_start sub_08039604 +sub_08039604: @ 0x08039604 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08039624 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_08039624: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039628 +sub_08039628: @ 0x08039628 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + adds r1, r0, #0 + cmp r1, #0 + beq _0803963A + subs r0, #1 + strb r0, [r2, #0xe] + b _0803966A +_0803963A: + ldrh r0, [r2, #0x36] + adds r0, #4 + strh r0, [r2, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803966A + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #0xa + strb r0, [r2, #0xe] + strh r1, [r2, #0x36] + adds r1, r2, #0 + adds r1, #0x7a + movs r0, #0x78 + strb r0, [r1] + adds r1, #2 + movs r0, #0x3c + strb r0, [r1] + adds r0, r2, #0 + bl sub_080399C4 + ldr r0, _0803966C @ =0x0000014B + bl sub_08004488 +_0803966A: + pop {pc} + .align 2, 0 +_0803966C: .4byte 0x0000014B + + thumb_func_start sub_08039670 +sub_08039670: @ 0x08039670 + 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 _08039686 + adds r0, r1, #0 + bl sub_0803998C +_08039686: + pop {pc} + + thumb_func_start sub_08039688 +sub_08039688: @ 0x08039688 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080396AC + adds r0, r4, #0 + movs r1, #0x3c + bl sub_08039A00 + adds r0, r4, #0 + bl sub_0803998C + b _080396BA +_080396AC: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _080396BA + adds r0, r4, #0 + bl sub_08039A20 +_080396BA: + pop {r4, pc} + + thumb_func_start sub_080396BC +sub_080396BC: @ 0x080396BC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _080396E2 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080396E2 + adds r0, r4, #0 + bl sub_08039A70 +_080396E2: + pop {r4, pc} + + thumb_func_start sub_080396E4 +sub_080396E4: @ 0x080396E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08039708 + adds r0, r4, #0 + bl sub_08039AD4 +_08039708: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803970C +sub_0803970C: @ 0x0803970C + 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 _08039756 + ldrb r0, [r4, #0xb] + cmp r0, #1 + bne _0803973A + adds r0, r4, #0 + bl sub_0803998C + ldr r0, [r4, #0x54] + bl sub_0805E7BC + movs r0, #0 + str r0, [r4, #0x54] + b _08039740 +_0803973A: + adds r0, r4, #0 + bl sub_08039A48 +_08039740: + adds r2, r4, #0 + adds r2, #0x3b + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r0, #0x3c + strh r0, [r1] +_08039756: + pop {r4, pc} + + thumb_func_start sub_08039758 +sub_08039758: @ 0x08039758 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7a + ldrb r0, [r5] + cmp r0, #0 + beq _0803976A + subs r0, #1 + strb r0, [r5] +_0803976A: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08039818 + ldrb r0, [r5] + cmp r0, #0 + bne _08039818 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080397DC + ldr r5, _080397D8 @ =gUnk_020000B0 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039818 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #3 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803981C + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x46 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #1 + b _0803981A + .align 2, 0 +_080397D8: .4byte gUnk_020000B0 +_080397DC: + ldr r5, _08039814 @ =gUnk_020000B0 + ldr r0, [r5] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x48 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039818 + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r1, [r5] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 + b _0803981A + .align 2, 0 +_08039814: .4byte gUnk_020000B0 +_08039818: + movs r0, #0 +_0803981A: + pop {r4, r5, pc} + + thumb_func_start sub_0803981C +sub_0803981C: @ 0x0803981C + push {lr} + adds r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08039836 + movs r0, #0xf4 + strb r0, [r1] +_08039836: + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x45 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + ldrb r1, [r2, #0x14] + adds r1, #8 + adds r0, r2, #0 + bl sub_080042AC + ldr r0, _08039854 @ =0x0000012B + bl sub_08004488 + pop {pc} + .align 2, 0 +_08039854: .4byte 0x0000012B + + thumb_func_start sub_08039858 +sub_08039858: @ 0x08039858 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080398C0 + adds r6, r0, #0 + ldrb r0, [r5, #0x14] + lsls r4, r0, #3 + adds r0, r6, #4 + movs r1, #0x18 + ands r0, r1 + cmp r0, r4 + bne _0803988C + adds r1, r5, #0 + adds r1, #0x7b + ldrb r0, [r1] + cmp r0, #3 + bne _080398B8 + movs r0, #0 + strb r0, [r1] + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + lsls r1, r1, #3 + adds r6, r6, r1 +_0803988C: + subs r0, r6, r4 + movs r1, #0x1f + ands r0, r1 + lsrs r4, r0, #4 + movs r0, #1 + eors r4, r0 + ldr r1, _080398BC @ =gUnk_080CF8F8 + ldrb r0, [r5, #0x14] + lsls r0, r0, #1 + adds r0, r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_080042AC + lsls r0, r4, #1 + ldrb r1, [r5, #0x14] + adds r0, r0, r1 + subs r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] +_080398B8: + pop {r4, r5, r6, pc} + .align 2, 0 +_080398BC: .4byte gUnk_080CF8F8 + + thumb_func_start sub_080398C0 +sub_080398C0: @ 0x080398C0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08039908 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08039908 + ldr r0, _08039900 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x58 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039908 + ldr r1, _08039904 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + b _08039928 + .align 2, 0 +_08039900: .4byte gUnk_020000B0 +_08039904: .4byte gLinkEntity +_08039908: + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08039922 + movs r0, #7 + ands r0, r5 + cmp r0, #0 + beq _08039922 + adds r0, r4, #0 + bl sub_08049EE4 + b _08039928 +_08039922: + lsrs r0, r5, #0x10 + movs r1, #0x18 + ands r0, r1 +_08039928: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803992C +sub_0803992C: @ 0x0803992C + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0xe0 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + strb r0, [r4, #0x15] + bl sub_08000E50 + ldr r2, _08039978 @ =gUnk_080CF900 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r1, [r4, #0x15] + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE58C + ldr r1, _0803997C @ =gUnk_080CF910 + ldrb r2, [r4, #0x14] + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r4, #0x2a] + ands r0, r1 + cmp r0, #0 + beq _08039980 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080042AC + b _08039988 + .align 2, 0 +_08039978: .4byte gUnk_080CF900 +_0803997C: .4byte gUnk_080CF910 +_08039980: + adds r1, r2, #4 + adds r0, r4, #0 + bl sub_080042AC +_08039988: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803998C +sub_0803998C: @ 0x0803998C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x44 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + bl sub_08000E50 + ldr r2, _080399C0 @ =gUnk_080CF918 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_080399C0: .4byte gUnk_080CF918 + + thumb_func_start sub_080399C4 +sub_080399C4: @ 0x080399C4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080399E2 + ldrh r0, [r1, #0x2e] + subs r0, #4 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #2 + strh r0, [r1, #0x32] +_080399E2: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080399FE + ldrh r0, [r1, #0x2e] + adds r0, #4 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #2 + strh r0, [r1, #0x32] +_080399FE: + pop {r4, pc} + + thumb_func_start sub_08039A00 +sub_08039A00: @ 0x08039A00 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08000E50 + ldr r2, _08039A1C @ =gUnk_080CF928 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r4, #0x7a + strb r0, [r4] + pop {r4, r5, pc} + .align 2, 0 +_08039A1C: .4byte gUnk_080CF928 + + thumb_func_start sub_08039A20 +sub_08039A20: @ 0x08039A20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08039A44 + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c + strb r0, [r1] + movs r0, #0xfb + bl sub_08004488 +_08039A44: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039A48 +sub_08039A48: @ 0x08039A48 + push {lr} + adds r2, r0, #0 + movs r0, #9 + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x47 + strb r0, [r1] + adds r1, #0x3e + strb r0, [r1] + subs r1, #5 + movs r0, #0xa + strh r0, [r1] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08039A70 +sub_08039A70: @ 0x08039A70 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa + strb r0, [r5, #0xc] + movs r0, #0xe0 + strh r0, [r5, #0x24] + bl sub_08000E50 + adds r4, r0, #0 + ldr r1, _08039AB8 @ =gUnk_080CF92C + movs r0, #3 + ands r0, r4 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x78 + strh r1, [r0] + lsrs r4, r4, #0x10 + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08039ABC + movs r0, #7 + ands r0, r4 + cmp r0, #0 + beq _08039ABC + adds r0, r5, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _08039AC2 + .align 2, 0 +_08039AB8: .4byte gUnk_080CF92C +_08039ABC: + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] +_08039AC2: + ldrb r0, [r5, #0x15] + lsrs r0, r0, #3 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + adds r1, #0x14 + adds r0, r5, #0 + bl sub_080042AC + pop {r4, r5, pc} + + thumb_func_start sub_08039AD4 +sub_08039AD4: @ 0x08039AD4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08039B28 + adds r5, r0, #0 + ldr r0, _08039B18 @ =0x0000FFFF + cmp r5, r0 + beq _08039B20 + ldrb r2, [r4, #0xb] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08039B20 + str r4, [r1, #0x50] + movs r0, #0xb + strb r0, [r4, #0xc] + str r1, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #0x18 + adds r0, r4, #0 + bl sub_080042AC + ldr r0, _08039B1C @ =0x00004067 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r5, #0 + bl sub_0800015E + b _08039B26 + .align 2, 0 +_08039B18: .4byte 0x0000FFFF +_08039B1C: .4byte 0x00004067 +_08039B20: + adds r0, r4, #0 + bl sub_08039A48 +_08039B26: + pop {r4, r5, pc} + + thumb_func_start sub_08039B28 +sub_08039B28: @ 0x08039B28 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, [r6, #0x54] + cmp r0, #0 + bne _08039B84 + ldrb r2, [r6, #0x14] + lsls r2, r2, #1 + ldr r0, _08039B88 @ =gUnk_080CF930 + adds r2, r2, r0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r4, _08039B8C @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r5, r0, #4 + movs r3, #0x3f + ands r5, r3 + movs r1, #0x32 + ldrsh r0, [r6, r1] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_080002B0 + adds r2, r0, #0 + ldr r1, _08039B90 @ =gUnk_080CF938 +_08039B76: + ldrh r0, [r1] + cmp r0, r2 + beq _08039B98 + adds r1, #4 + ldrh r0, [r1] + cmp r0, #0 + bne _08039B76 +_08039B84: + ldr r0, _08039B94 @ =0x0000FFFF + b _08039B9E + .align 2, 0 +_08039B88: .4byte gUnk_080CF930 +_08039B8C: .4byte gUnk_03000BF0 +_08039B90: .4byte gUnk_080CF938 +_08039B94: .4byte 0x0000FFFF +_08039B98: + ldrh r0, [r1, #2] + strb r0, [r6, #0xb] + adds r0, r5, #0 +_08039B9E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08039BA0 +sub_08039BA0: @ 0x08039BA0 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080012DC + adds r1, r0, #0 + cmp r1, #0 + beq _08039BC4 + ldr r0, _08039BC0 @ =gUnk_080012C8 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 + b _08039BD8 + .align 2, 0 +_08039BC0: .4byte gUnk_080012C8 +_08039BC4: + ldr r4, _08039BDC @ =gUnk_080CFB84 + 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 +_08039BD8: + pop {r4, r5, pc} + .align 2, 0 +_08039BDC: .4byte gUnk_080CFB84 + + thumb_func_start sub_08039BE0 +sub_08039BE0: @ 0x08039BE0 + push {lr} + ldr r2, _08039BF4 @ =gUnk_080CFB9C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039BF4: .4byte gUnk_080CFB9C + + thumb_func_start sub_08039BF8 +sub_08039BF8: @ 0x08039BF8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08039C64 + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + movs r0, #0xa8 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039C60 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + b _08039C72 + .align 2, 0 +_08039C60: .4byte gUnk_03000BF0 +_08039C64: + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08039C72 + adds r0, r5, #0 + bl sub_0803A0E0 +_08039C72: + ldr r1, _08039C7C @ =gUnk_080CFB84 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08039C7C: .4byte gUnk_080CFB84 + + thumb_func_start sub_08039C80 +sub_08039C80: @ 0x08039C80 + push {lr} + ldr r2, _08039C94 @ =gUnk_080CFBBC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039C94: .4byte gUnk_080CFBBC + + thumb_func_start sub_08039C98 +sub_08039C98: @ 0x08039C98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803A100 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r1, [r4, #0xe] + movs r0, #0x30 + strb r0, [r4, #0x1d] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08039CB0 +sub_08039CB0: @ 0x08039CB0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803A100 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039CCA + adds r0, r4, #0 + bl sub_0806F4E8 + b _08039CDE +_08039CCA: + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + beq _08039CDE + adds r0, r4, #0 + bl sub_0803A0E0 +_08039CDE: + pop {r4, pc} + + thumb_func_start sub_08039CE0 +sub_08039CE0: @ 0x08039CE0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xe] + cmp r4, #0 + bne _08039D2A + bl sub_0803A100 + movs r0, #1 + strb r0, [r5, #0xe] + ldr r0, _08039D3C @ =0x0000FFFF + strh r0, [r5, #0x36] + adds r0, r5, #0 + adds r0, #0x62 + strb r4, [r0] + adds r0, #0x12 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039D40 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_08039D2A: + adds r0, r5, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08039D44 + adds r0, r5, #0 + bl sub_0806F3E4 + b _08039D4A + .align 2, 0 +_08039D3C: .4byte 0x0000FFFF +_08039D40: .4byte gUnk_03000BF0 +_08039D44: + adds r0, r5, #0 + bl sub_0803A0E0 +_08039D4A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08039D4C +sub_08039D4C: @ 0x08039D4C + push {lr} + adds r2, r0, #0 + ldr r0, _08039D64 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08039D62 + adds r0, r2, #0 + bl sub_0803A0E0 +_08039D62: + pop {pc} + .align 2, 0 +_08039D64: .4byte gUnk_03003F80 + + thumb_func_start nullsub_166 +nullsub_166: @ 0x08039D68 + bx lr + .align 2, 0 + + thumb_func_start sub_08039D6C +sub_08039D6C: @ 0x08039D6C + push {lr} + bl sub_0803A0E0 + pop {pc} + + thumb_func_start sub_08039D74 +sub_08039D74: @ 0x08039D74 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + movs r0, #2 + strb r0, [r5, #0x1c] + strb r1, [r5, #0x16] + ldrh r0, [r5, #0x32] + adds r0, #3 + strh r0, [r5, #0x32] + movs r0, #0x2e + ldrsh r4, [r5, r0] + ldr r1, _08039DD0 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r4, r4, r0 + asrs r4, r4, #4 + movs r2, #0x3f + ands r4, r2 + movs r3, #0x32 + ldrsh r0, [r5, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + adds r1, r5, #0 + adds r1, #0x74 + strh r0, [r1] + ldr r0, _08039DD4 @ =0x00004060 + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + pop {r4, r5, r6, pc} + .align 2, 0 +_08039DD0: .4byte gUnk_03000BF0 +_08039DD4: .4byte 0x00004060 + + thumb_func_start sub_08039DD8 +sub_08039DD8: @ 0x08039DD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08039E38 + adds r0, r5, #0 + bl sub_080002A0 + ldr r1, _08039E30 @ =0x00004073 + cmp r0, r1 + bne _08039E28 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039E34 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r5, #0 + bl sub_0803A0E0 +_08039E28: + adds r0, r5, #0 + bl sub_08078930 + b _08039EC6 + .align 2, 0 +_08039E30: .4byte 0x00004073 +_08039E34: .4byte gUnk_03000BF0 +_08039E38: + ldr r0, _08039E6C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08039EC6 + ldr r2, _08039E70 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r6, #0x32 + ldrsh r2, [r2, r6] + adds r0, r5, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _08039EC6 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08039E74 + movs r0, #3 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + b _08039EC6 + .align 2, 0 +_08039E6C: .4byte gUnk_03003F80 +_08039E70: .4byte gLinkEntity +_08039E74: + ldrb r1, [r5, #0xa] + subs r1, #2 + movs r0, #0x42 + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _08039EC6 + movs r0, #1 + strb r0, [r2, #0xb] + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08039EC8 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + adds r0, r5, #0 + bl sub_0805E7BC +_08039EC6: + pop {r4, r5, r6, pc} + .align 2, 0 +_08039EC8: .4byte gUnk_03000BF0 + + thumb_func_start sub_08039ECC +sub_08039ECC: @ 0x08039ECC + push {lr} + ldr r2, _08039EE0 @ =gUnk_080CFBD4 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08039EE0: .4byte gUnk_080CFBD4 + + thumb_func_start sub_08039EE4 +sub_08039EE4: @ 0x08039EE4 + push {r4, r5, r6, lr} + mov ip, r0 + movs r2, #0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xd] + ldrb r1, [r1, #0x10] + movs r0, #0x7f + ands r0, r1 + mov r3, ip + strb r0, [r3, #0x10] + strh r2, [r3, #0x2a] + ldr r0, _08039F40 @ =gUnk_080FD340 + str r0, [r3, #0x48] + ldr r0, _08039F44 @ =gLinkEntity + ldrb r0, [r0, #0x14] + mov r1, ip + adds r1, #0x76 + strb r0, [r1] + mov r0, ip + adds r0, #0x74 + ldrh r0, [r0] + movs r5, #0x2e + ldrsh r1, [r3, r5] + ldr r3, _08039F48 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + mov r6, ip + movs r5, #0x32 + ldrsh r2, [r6, r5] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + mov r2, ip + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E + pop {r4, r5, r6, pc} + .align 2, 0 +_08039F40: .4byte gUnk_080FD340 +_08039F44: .4byte gLinkEntity +_08039F48: .4byte gUnk_03000BF0 + + thumb_func_start sub_08039F4C +sub_08039F4C: @ 0x08039F4C + push {lr} + adds r3, r0, #0 + ldr r0, _08039F74 @ =gLinkEntity + movs r1, #0x76 + adds r1, r1, r3 + mov ip, r1 + ldrb r2, [r0, #0x14] + ldrb r0, [r1] + cmp r2, r0 + beq _08039F70 + subs r0, r2, r0 + ldrb r1, [r3, #0x1e] + adds r0, r0, r1 + movs r1, #6 + ands r0, r1 + strb r0, [r3, #0x1e] + mov r0, ip + strb r2, [r0] +_08039F70: + pop {pc} + .align 2, 0 +_08039F74: .4byte gLinkEntity + + thumb_func_start sub_08039F78 +sub_08039F78: @ 0x08039F78 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r3] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #0 + beq _08039F9C + ldrh r0, [r2, #0x2a] + cmp r0, #0 + beq _08039FA2 +_08039F9C: + adds r0, r2, #0 + bl sub_0803A0E0 +_08039FA2: + pop {pc} + + thumb_func_start sub_08039FA4 +sub_08039FA4: @ 0x08039FA4 + push {lr} + bl sub_0803A0E0 + pop {pc} + + thumb_func_start sub_08039FAC +sub_08039FAC: @ 0x08039FAC + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_0803A100 + adds r3, r5, #0 + adds r3, #0x62 + ldr r2, _0803A03C @ =gUnk_080CFBE4 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0803A03A + movs r0, #4 + strb r0, [r5, #0xc] + 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, #8 + orrs r0, r1 + strb r0, [r2] + strb r4, [r3] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0xa0 + strb r0, [r1] + subs r1, #4 + movs r0, #0xf + strb r0, [r1] + ldr r0, _0803A040 @ =gUnk_080FD34C + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _0803A044 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r6, #0x32 + ldrsh r2, [r5, r6] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r5, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0803A03A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A03C: .4byte gUnk_080CFBE4 +_0803A040: .4byte gUnk_080FD34C +_0803A044: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803A048 +sub_0803A048: @ 0x0803A048 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, [r4, #0x34] + ldr r1, _0803A078 @ =0xFFFF0000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0803A076 + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r1, _0803A07C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_0803A076: + pop {r4, pc} + .align 2, 0 +_0803A078: .4byte 0xFFFF0000 +_0803A07C: .4byte gLinkEntity + + thumb_func_start sub_0803A080 +sub_0803A080: @ 0x0803A080 + push {r4, 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 _0803A098 + movs r0, #6 + strb r0, [r4, #0xc] +_0803A098: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A09C +sub_0803A09C: @ 0x0803A09C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_080AEFE0 + ldrh r0, [r4, #0x2a] + cmp r0, #0 + beq _0803A0B6 + adds r0, r4, #0 + bl sub_0803A0E0 +_0803A0B6: + pop {r4, pc} + + thumb_func_start sub_0803A0B8 +sub_0803A0B8: @ 0x0803A0B8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0803A0CA + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_0803A0CA: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803A0DE + adds r0, r4, #0 + bl sub_0803A0E0 +_0803A0DE: + pop {r4, pc} + + thumb_func_start sub_0803A0E0 +sub_0803A0E0: @ 0x0803A0E0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + movs r2, #0 + movs r3, #0 + bl sub_0808288C + adds r2, r0, #0 + adds r0, r4, #0 + movs r1, #0x3c + bl CreateFX + bl sub_0805E780 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A100 +sub_0803A100: @ 0x0803A100 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r3, _0803A14C @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + adds r6, r5, #0 + adds r6, #0x38 + ldrb r1, [r6] + adds r0, r4, #0 + bl sub_080001DA + ldr r1, _0803A150 @ =0x00004067 + cmp r0, r1 + bne _0803A148 + adds r0, r5, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrb r2, [r6] + adds r1, r4, #0 + bl sub_0800015E + bl sub_0805E780 +_0803A148: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A14C: .4byte gUnk_03000BF0 +_0803A150: .4byte 0x00004067 + + thumb_func_start sub_0803A154 +sub_0803A154: @ 0x0803A154 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803A16C @ =gUnk_080CFC14 + 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 +_0803A16C: .4byte gUnk_080CFC14 + + thumb_func_start sub_0803A170 +sub_0803A170: @ 0x0803A170 + push {lr} + ldr r2, _0803A184 @ =gUnk_080CFC2C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803A184: .4byte gUnk_080CFC2C + + thumb_func_start sub_0803A188 +sub_0803A188: @ 0x0803A188 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xa] + cmp r3, #1 + bhi _0803A23E + ldrb r0, [r4, #0xc] + cmp r0, #0x2b + beq _0803A210 + adds r0, r4, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0 + ble _0803A23E + adds r0, #4 + ldrb r0, [r0] + cmp r0, #0x95 + beq _0803A1B2 + cmp r0, #0x8e + bne _0803A23E +_0803A1B2: + movs r0, #0x28 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r2, [r4, #0x50] + adds r0, r2, #0 + adds r0, #0x7d + ldrb r1, [r0] + cmp r3, #0 + bne _0803A1CE + movs r0, #1 + b _0803A1D0 +_0803A1CE: + movs r0, #2 +_0803A1D0: + orrs r1, r0 + adds r0, r2, #0 + adds r0, #0x7d + strb r1, [r0] + adds r0, #3 + ldrb r2, [r0] + ldrb r1, [r4, #0xa] + adds r3, r0, #0 + cmp r1, #0 + bne _0803A1E8 + movs r0, #1 + b _0803A1EA +_0803A1E8: + movs r0, #2 +_0803A1EA: + orrs r0, r2 + strb r0, [r3] + ldr r2, [r4, #0x54] + ldrb r1, [r5] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r2, [r4, #0x74] + ldrb r1, [r5] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r0, _0803A20C @ =0x00000127 + bl sub_080A3268 + b _0803A23E + .align 2, 0 +_0803A20C: .4byte 0x00000127 +_0803A210: + ldr r2, [r4, #0x54] + adds r3, r4, #0 + adds r3, #0x3d + ldrb r1, [r3] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r2, [r4, #0x74] + ldrb r1, [r3] + adds r0, r2, #0 + adds r0, #0x3d + strb r1, [r0] + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #9 + bl sub_080042AC + ldr r0, _0803A248 @ =0x00000127 + bl sub_080A3268 +_0803A23E: + ldr r1, _0803A24C @ =gUnk_080CFC14 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0803A248: .4byte 0x00000127 +_0803A24C: .4byte gUnk_080CFC14 + + thumb_func_start nullsub_167 +nullsub_167: @ 0x0803A250 + bx lr + .align 2, 0 + + thumb_func_start sub_0803A254 +sub_0803A254: @ 0x0803A254 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803A270 @ =gUnk_080CFC3C + 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 + bl sub_0803B538 + pop {r4, pc} + .align 2, 0 +_0803A270: .4byte gUnk_080CFC3C + + thumb_func_start sub_0803A274 +sub_0803A274: @ 0x0803A274 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803A2C8 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x44 + bhi _0803A360 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803A2CC + movs r0, #0x38 + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r0, #0x44 + movs r1, #2 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x74] + movs r0, #0x7e + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldr r0, [r4, #0x50] + movs r2, #0x80 + lsls r2, r2, #0xd + movs r3, #0x80 + lsls r3, r3, #0xe + adds r1, r4, #0 + bl PositionRelative + b _0803A310 + .align 2, 0 +_0803A2C8: .4byte gUnk_03003DBC +_0803A2CC: + movs r0, #0x38 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r0, #0x44 + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + str r1, [r4, #0x74] + movs r0, #0x7e + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x50] + ldr r2, _0803A34C @ =0xFFF00000 + movs r3, #0x80 + lsls r3, r3, #0xe + adds r1, r4, #0 + bl PositionRelative +_0803A310: + ldr r0, _0803A350 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _0803A354 + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r3, #1 + orrs r0, r3 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x54] + ldrb r0, [r2, #0x18] + ands r1, r0 + orrs r1, r3 + strb r1, [r2, #0x18] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + b _0803A360 + .align 2, 0 +_0803A34C: .4byte 0xFFF00000 +_0803A350: .4byte gUnk_030010A0 +_0803A354: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803A360: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803A364 +sub_0803A364: @ 0x0803A364 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A3A0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xd] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0xb + bls _0803A394 + b _0803A52C +_0803A394: + lsls r0, r1, #2 + ldr r1, _0803A3A4 @ =_0803A3A8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803A3A0: .4byte gUnk_080CED6C +_0803A3A4: .4byte _0803A3A8 +_0803A3A8: @ jump table + .4byte _0803A546 @ case 0 + .4byte _0803A3D8 @ case 1 + .4byte _0803A546 @ case 2 + .4byte _0803A3FA @ case 3 + .4byte _0803A418 @ case 4 + .4byte _0803A434 @ case 5 + .4byte _0803A44E @ case 6 + .4byte _0803A468 @ case 7 + .4byte _0803A49A @ case 8 + .4byte _0803A4B2 @ case 9 + .4byte _0803A4CC @ case 10 + .4byte _0803A4FA @ case 11 +_0803A3D8: + movs r0, #2 + strb r0, [r4, #0xd] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x18] + subs r0, #6 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2, #0x19] + b _0803A546 +_0803A3FA: + movs r0, #4 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x54] + ldrb r1, [r2, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x19] + b _0803A546 +_0803A418: + 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 + bne _0803A42E + b _0803A546 +_0803A42E: + movs r0, #5 + strb r0, [r4, #0xd] + b _0803A546 +_0803A434: + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803A446 + adds r0, r4, #0 + bl sub_0806F69C + b _0803A546 +_0803A446: + movs r0, #0 + strb r0, [r4, #0xb] + movs r0, #6 + b _0803A516 +_0803A44E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + movs r0, #7 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + b _0803A546 +_0803A468: + 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 _0803A546 + movs r0, #8 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #0xc + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 + b _0803A546 +_0803A49A: + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A546 + movs r0, #9 + b _0803A516 +_0803A4B2: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + movs r0, #0xa + strb r0, [r4, #0xd] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + b _0803A546 +_0803A4CC: + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A546 + movs r0, #0xb + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #0xf + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _0803A546 +_0803A4FA: + 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 _0803A546 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _0803A51E + movs r0, #0xc +_0803A516: + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _0803A546 +_0803A51E: + movs r0, #1 + strb r0, [r4, #0xb] + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0xa + strb r0, [r4, #0xe] + b _0803A546 +_0803A52C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A546 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B4D4 +_0803A546: + pop {r4, pc} + + thumb_func_start sub_0803A548 +sub_0803A548: @ 0x0803A548 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B5C0 + adds r0, r4, #0 + bl sub_080042B8 + ldr r2, _0803A588 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803A586 + adds r0, r4, #0 + bl sub_0806F69C +_0803A586: + pop {r4, pc} + .align 2, 0 +_0803A588: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A58C +sub_0803A58C: @ 0x0803A58C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A5C4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803A5C8 + adds r0, r4, #0 + bl sub_0803B59C + b _0803A5CE + .align 2, 0 +_0803A5C4: .4byte gUnk_080CED6C +_0803A5C8: + adds r0, r4, #0 + bl sub_0806F69C +_0803A5CE: + pop {r4, pc} + + thumb_func_start sub_0803A5D0 +sub_0803A5D0: @ 0x0803A5D0 + push {lr} + movs r1, #5 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r3, _0803A608 @ =gUnk_080CED6C + ldr r1, [r0, #0x50] + ldrb r1, [r1, #0xf] + lsrs r1, r1, #4 + adds r1, #3 + ldrb r2, [r0, #0xa] + lsls r2, r2, #1 + adds r1, r1, r2 + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + strh r1, [r0, #0x36] + movs r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0803A608: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A60C +sub_0803A60C: @ 0x0803A60C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A65C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + 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 _0803A658 + movs r0, #6 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0xa + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC +_0803A658: + pop {r4, pc} + .align 2, 0 +_0803A65C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A660 +sub_0803A660: @ 0x0803A660 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + adds r5, r0, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0803A6A8 + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x50 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803A688 + subs r0, r2, #2 + b _0803A6DC +_0803A688: + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r1, _0803A6A4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0803A6DE + .align 2, 0 +_0803A6A4: .4byte gLinkEntity +_0803A6A8: + adds r0, r4, #0 + bl sub_0803B55C + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0803A6BE + ldr r0, _0803A6E0 @ =0x00000157 + bl sub_080A3268 +_0803A6BE: + ldr r2, _0803A6E4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 +_0803A6DC: + strh r0, [r4, #0x36] +_0803A6DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803A6E0: .4byte 0x00000157 +_0803A6E4: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A6E8 +sub_0803A6E8: @ 0x0803A6E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B610 + cmp r0, #0 + beq _0803A6FE + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + b _0803A71E +_0803A6FE: + adds r0, r4, #0 + bl sub_0803B63C + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x50] + movs r1, #0x32 + ldrsh r0, [r0, r1] + adds r1, r0, #0 + adds r1, #8 + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0803A71E + strh r1, [r4, #0x32] +_0803A71E: + pop {r4, pc} + + thumb_func_start sub_0803A720 +sub_0803A720: @ 0x0803A720 + 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 _0803A73C + movs r0, #9 + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #0x16 + bl sub_0803B8E8 +_0803A73C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803A740 +sub_0803A740: @ 0x0803A740 + push {lr} + adds r3, r0, #0 + ldrh r0, [r3, #0x36] + adds r0, #4 + strh r0, [r3, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803A77E + movs r0, #0 + strh r0, [r3, #0x36] + movs r0, #0xa + strb r0, [r3, #0xc] + strb r0, [r3, #0xe] + ldr r1, [r3, #0x50] + adds r1, #0x7d + ldrb r2, [r1] + movs r0, #0x40 + orrs r0, r2 + strb r0, [r1] + adds r0, r3, #0 + movs r1, #0x13 + bl sub_0803B8E8 + movs r0, #0xa + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 +_0803A77E: + pop {pc} + + thumb_func_start sub_0803A780 +sub_0803A780: @ 0x0803A780 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A7AA + adds r1, r2, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ands r0, r3 + cmp r0, #0 + beq _0803A7A6 + movs r0, #6 + b _0803A7A8 +_0803A7A6: + movs r0, #0xb +_0803A7A8: + strb r0, [r2, #0xc] +_0803A7AA: + pop {pc} + + thumb_func_start sub_0803A7AC +sub_0803A7AC: @ 0x0803A7AC + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803A7C4 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803A7C8 +_0803A7C4: + movs r0, #0xc + strb r0, [r2, #0xc] +_0803A7C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803A7CC +sub_0803A7CC: @ 0x0803A7CC + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A808 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803A80C + movs r0, #0xd + strb r0, [r4, #0xc] + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + b _0803A812 + .align 2, 0 +_0803A808: .4byte gUnk_080CED6C +_0803A80C: + adds r0, r4, #0 + bl sub_0806F69C +_0803A812: + pop {r4, pc} + + thumb_func_start sub_0803A814 +sub_0803A814: @ 0x0803A814 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A868 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803A864 + movs r0, #0xe + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x12 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803A864: + pop {r4, pc} + .align 2, 0 +_0803A868: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A86C +sub_0803A86C: @ 0x0803A86C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A8B4 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + 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 _0803A8B2 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803A8B2: + pop {r4, pc} + .align 2, 0 +_0803A8B4: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A8B8 +sub_0803A8B8: @ 0x0803A8B8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #0x10 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + ldr r2, _0803A904 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_080042AC + ldr r0, _0803A908 @ =0x00000153 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_0803A904: .4byte gUnk_080CED6C +_0803A908: .4byte 0x00000153 + + thumb_func_start sub_0803A90C +sub_0803A90C: @ 0x0803A90C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A974 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803A970 + movs r0, #0x11 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + lsls r0, r0, #4 + adds r0, #8 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #7 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_080042AC +_0803A970: + pop {r4, pc} + .align 2, 0 +_0803A974: .4byte gUnk_080CED6C + + thumb_func_start sub_0803A978 +sub_0803A978: @ 0x0803A978 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803A9FC @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803A9C2 + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004596 +_0803A9C2: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x15] + cmp r0, #0x10 + bne _0803A9F8 + movs r0, #0x12 + strb r0, [r4, #0xc] + movs r0, #3 + strb r0, [r4, #0xe] + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldr r2, [r4, #0x74] + ldrb r0, [r2, #0x10] + ands r1, r0 + strb r1, [r2, #0x10] + adds r0, r4, #0 + movs r1, #8 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #3 + bl sub_080042AC +_0803A9F8: + pop {r4, pc} + .align 2, 0 +_0803A9FC: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AA00 +sub_0803AA00: @ 0x0803AA00 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803AA90 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B870 + cmp r0, #0 + bne _0803AA8E + ldrb r1, [r4, #0xa] + movs r0, #1 + eors r0, r1 + lsls r0, r0, #4 + adds r5, r0, #0 + adds r5, #8 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0803AA54 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08004596 +_0803AA54: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x15] + cmp r0, r5 + beq _0803AA6E + ldr r0, _0803AA94 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + cmp r1, r0 + blt _0803AA8E +_0803AA6E: + movs r0, #0x13 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x17 + ands r0, r1 + strb r0, [r4, #0x18] + strb r5, [r4, #0x15] + ldr r0, _0803AA94 @ =gLinkEntity + ldrh r1, [r0, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldr r0, [r4, #0x54] + movs r1, #4 + bl sub_080042AC +_0803AA8E: + pop {r4, r5, pc} + .align 2, 0 +_0803AA90: .4byte gUnk_080CED6C +_0803AA94: .4byte gLinkEntity + + thumb_func_start sub_0803AA98 +sub_0803AA98: @ 0x0803AA98 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AB0C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B870 + cmp r0, #0 + bne _0803AB0A + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803B6F4 + cmp r0, #0 + beq _0803AB0A + movs r0, #0x14 + strb r0, [r4, #0xc] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + ldr r2, [r4, #0x74] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r2, [r4, #0x54] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x13 + strb r0, [r1] + adds r0, r2, #0 + movs r1, #5 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 +_0803AB0A: + pop {r4, pc} + .align 2, 0 +_0803AB0C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AB10 +sub_0803AB10: @ 0x0803AB10 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AB58 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AB56 + movs r0, #0x15 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_0803AB56: + pop {r4, pc} + .align 2, 0 +_0803AB58: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AB5C +sub_0803AB5C: @ 0x0803AB5C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803ABB0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ABAC + movs r0, #0x16 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x1a + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0xb + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC +_0803ABAC: + pop {r4, pc} + .align 2, 0 +_0803ABB0: .4byte gUnk_080CED6C + + thumb_func_start sub_0803ABB4 +sub_0803ABB4: @ 0x0803ABB4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AC18 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AC14 + movs r0, #0x17 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_0803AC14: + pop {r4, pc} + .align 2, 0 +_0803AC18: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AC1C +sub_0803AC1C: @ 0x0803AC1C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AC54 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803AC58 + adds r0, r4, #0 + bl sub_0803B59C + b _0803AC5E + .align 2, 0 +_0803AC54: .4byte gUnk_080CED6C +_0803AC58: + adds r0, r4, #0 + bl sub_0806F69C +_0803AC5E: + pop {r4, pc} + + thumb_func_start sub_0803AC60 +sub_0803AC60: @ 0x0803AC60 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803ACA8 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0803ACB4 + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803ACAC + movs r0, #0x19 + strb r0, [r4, #0xc] + movs r0, #0 + strb r0, [r4, #0xd] + movs r0, #0x1e + b _0803ACB6 + .align 2, 0 +_0803ACA8: .4byte gUnk_080CED6C +_0803ACAC: + adds r0, r4, #0 + bl sub_0806F69C + b _0803ACB8 +_0803ACB4: + subs r0, #1 +_0803ACB6: + strb r0, [r4, #0xe] +_0803ACB8: + adds r0, r4, #0 + bl sub_0803B824 + pop {r4, pc} + + thumb_func_start sub_0803ACC0 +sub_0803ACC0: @ 0x0803ACC0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + subs r0, #1 + cmp r0, #4 + bhi _0803ACF0 + lsls r0, r0, #2 + ldr r1, _0803ACD8 @ =_0803ACDC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803ACD8: .4byte _0803ACDC +_0803ACDC: @ jump table + .4byte _0803AD02 @ case 0 + .4byte _0803AD1A @ case 1 + .4byte _0803AD4A @ case 2 + .4byte _0803AD5C @ case 3 + .4byte _0803AD74 @ case 4 +_0803ACF0: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ADA4 + movs r0, #1 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD02: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x20 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0803ADA4 + movs r0, #2 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD1A: + ldrh r0, [r4, #0x36] + adds r0, #4 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803ADA4 + movs r0, #0 + strh r0, [r4, #0x36] + movs r0, #0xc + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #8 + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0803B804 + b _0803ADA4 +_0803AD4A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ADA4 + movs r0, #4 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD5C: + ldrh r0, [r4, #0x36] + subs r0, #2 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x28 + rsbs r1, r1, #0 + cmp r0, r1 + bge _0803ADA4 + movs r0, #5 + strb r0, [r4, #0xd] + b _0803ADA4 +_0803AD74: + ldrh r0, [r4, #0x36] + adds r0, #4 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + blt _0803ADA4 + movs r0, #0 + strh r0, [r4, #0x36] + movs r0, #0x1a + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x1e + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_0803B804 + b _0803ADAA +_0803ADA4: + adds r0, r4, #0 + bl sub_0803B824 +_0803ADAA: + pop {r4, pc} + + thumb_func_start sub_0803ADAC +sub_0803ADAC: @ 0x0803ADAC + 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 _0803ADEC + movs r0, #0x16 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x1a + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r2, [r4, #0x74] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + movs r1, #0xb + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #6 + bl sub_080042AC + bl sub_0803B798 + b _0803ADF2 +_0803ADEC: + adds r0, r4, #0 + bl sub_0803B824 +_0803ADF2: + pop {r4, pc} + + thumb_func_start sub_0803ADF4 +sub_0803ADF4: @ 0x0803ADF4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AE44 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + 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 _0803AE42 + movs r0, #0x1c + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + strb r0, [r4, #0x18] +_0803AE42: + pop {r4, pc} + .align 2, 0 +_0803AE44: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AE48 +sub_0803AE48: @ 0x0803AE48 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AEAC @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803AE82 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803AEB0 +_0803AE82: + ldr r0, [r4, #0x50] + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0803AEB0 + movs r0, #0x1d + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x21 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + b _0803AEC0 + .align 2, 0 +_0803AEAC: .4byte gUnk_080CED6C +_0803AEB0: + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + bne _0803AEC0 + adds r0, r4, #0 + bl sub_0806F69C +_0803AEC0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803AEC4 +sub_0803AEC4: @ 0x0803AEC4 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803AF14 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_080042B8 + 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 _0803AF10 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803AF10: + pop {r4, pc} + .align 2, 0 +_0803AF14: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AF18 +sub_0803AF18: @ 0x0803AF18 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x1f + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + ldr r2, _0803AF4C @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + pop {r4, pc} + .align 2, 0 +_0803AF4C: .4byte gUnk_080CED6C + + thumb_func_start sub_0803AF50 +sub_0803AF50: @ 0x0803AF50 + 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 _0803AF7A + movs r0, #0x20 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x24 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x54] + movs r1, #8 + bl sub_080042AC +_0803AF7A: + pop {r4, pc} + + thumb_func_start sub_0803AF7C +sub_0803AF7C: @ 0x0803AF7C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803AF9A + movs r0, #0x21 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_0803AF9A: + pop {r4, pc} + + thumb_func_start sub_0803AF9C +sub_0803AF9C: @ 0x0803AF9C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0803AFAA + subs r0, #1 + b _0803AFC4 +_0803AFAA: + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803AFBE + subs r0, r3, #2 + strh r0, [r2, #0x36] + b _0803AFC6 +_0803AFBE: + movs r0, #0x22 + strb r0, [r2, #0xc] + movs r0, #0xa +_0803AFC4: + strb r0, [r2, #0xe] +_0803AFC6: + pop {pc} + + thumb_func_start sub_0803AFC8 +sub_0803AFC8: @ 0x0803AFC8 + 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 _0803AFDC + movs r0, #0x23 + strb r0, [r1, #0xc] +_0803AFDC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803AFE0 +sub_0803AFE0: @ 0x0803AFE0 + push {lr} + adds r3, r0, #0 + ldrh r1, [r3, #0x36] + movs r2, #0x36 + ldrsh r0, [r3, r2] + cmp r0, #0 + bge _0803AFF4 + adds r0, r1, #4 + strh r0, [r3, #0x36] + b _0803B018 +_0803AFF4: + movs r2, #0 + movs r0, #0x24 + strb r0, [r3, #0xc] + movs r0, #0xf0 + strb r0, [r3, #0xe] + adds r1, r3, #0 + adds r1, #0x84 + movs r0, #3 + strb r0, [r1] + strh r2, [r3, #0x36] + movs r0, #0xa0 + movs r1, #0 + bl sub_08080964 + movs r0, #0xac + lsls r0, r0, #1 + bl sub_080A3268 +_0803B018: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B01C +sub_0803B01C: @ 0x0803B01C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803B032 + movs r0, #0x25 + strb r0, [r2, #0xc] + b _0803B048 +_0803B032: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x46 + bls _0803B048 + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _0803B048 + adds r0, r2, #0 + bl sub_0803B724 +_0803B048: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B04C +sub_0803B04C: @ 0x0803B04C + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803B064 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803B070 +_0803B064: + movs r0, #0x26 + strb r0, [r2, #0xc] + ldr r0, [r2, #0x54] + movs r1, #6 + bl sub_080042AC +_0803B070: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B074 +sub_0803B074: @ 0x0803B074 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803B0D0 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B55C + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B0CC + movs r0, #0x27 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x2b + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC +_0803B0CC: + pop {r4, pc} + .align 2, 0 +_0803B0D0: .4byte gUnk_080CED6C + + thumb_func_start sub_0803B0D4 +sub_0803B0D4: @ 0x0803B0D4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + 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 _0803B0FE + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0803B59C +_0803B0FE: + pop {r4, pc} + + thumb_func_start sub_0803B100 +sub_0803B100: @ 0x0803B100 + push {lr} + adds r2, r0, #0 + movs r0, #0x29 + strb r0, [r2, #0xc] + movs r0, #0xa0 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B11C + ldr r0, _0803B118 @ =gUnk_080FD364 + b _0803B11E + .align 2, 0 +_0803B118: .4byte gUnk_080FD364 +_0803B11C: + ldr r0, _0803B13C @ =gUnk_080FD374 +_0803B11E: + str r0, [r2, #0x48] + ldr r0, [r2, #0x74] + movs r1, #3 + strb r1, [r0, #0xc] + adds r0, #0x74 + movs r1, #0x20 + strb r1, [r0] + ldr r0, [r2, #0x54] + movs r1, #9 + bl sub_080042AC + ldr r0, _0803B140 @ =0x0000014F + bl sub_080A3268 + pop {pc} + .align 2, 0 +_0803B13C: .4byte gUnk_080FD374 +_0803B140: .4byte 0x0000014F + + thumb_func_start sub_0803B144 +sub_0803B144: @ 0x0803B144 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803B178 + movs r0, #0x2a + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x16 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_0803B8E8 + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803B178: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B17C +sub_0803B17C: @ 0x0803B17C + 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 _0803B1B4 + movs r0, #0x2b + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x18 + strb r0, [r1] + adds r1, #6 + movs r0, #0xff + strb r0, [r1] + adds r1, #0x39 + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r1] +_0803B1B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B1B8 +sub_0803B1B8: @ 0x0803B1B8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803B1D4 + adds r0, r5, #0 + bl sub_08004274 + ldr r0, [r5, #0x54] + bl sub_080042B8 +_0803B1D4: + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xf4 + bhi _0803B2B8 + movs r0, #0x32 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x7e + ldr r0, _0803B284 @ =0x000005DC + strh r0, [r1] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + adds r1, r5, #0 + adds r1, #0x3f + movs r0, #0x14 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _0803B23A + ldr r0, [r5, #0x48] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r0, [r5, #0x48] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + 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] +_0803B23A: + movs r0, #0 + movs r1, #0x5e + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0803B268 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #0x90 + strb r0, [r4, #0x15] + ldr r0, [r5, #0x48] + movs r2, #0 + ldrsb r2, [r0, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r0, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative +_0803B268: + ldr r4, [r5, #0x74] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0x40 + strb r0, [r1] + ldr r4, [r5, #0x50] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0803B288 + movs r0, #4 + b _0803B28A + .align 2, 0 +_0803B284: .4byte 0x000005DC +_0803B288: + movs r0, #8 +_0803B28A: + orrs r1, r0 + adds r0, r4, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0xc + bne _0803B2CE + movs r0, #0xb + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0 + str r0, [r4, #0x20] + ldr r0, [r4, #0x74] + adds r0, #0x7e + movs r1, #0xe1 + lsls r1, r1, #3 + strh r1, [r0] + ldr r0, [r4, #0x78] + adds r0, #0x7e + strh r1, [r0] + b _0803B2CE +_0803B2B8: + adds r1, r5, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803B2CE + adds r0, r5, #0 + bl sub_0803B6A4 +_0803B2CE: + pop {r4, r5, pc} + + thumb_func_start sub_0803B2D0 +sub_0803B2D0: @ 0x0803B2D0 + 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 _0803B30A + movs r2, #0 + movs r0, #0x2d + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x31 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x74] + movs r1, #2 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x74 + strb r2, [r1] + adds r1, #4 + strh r2, [r1] + movs r1, #3 + bl sub_08004260 +_0803B30A: + pop {r4, pc} + + thumb_func_start sub_0803B30C +sub_0803B30C: @ 0x0803B30C + push {r4, lr} + adds r2, r0, #0 + ldr r4, [r2, #0x74] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B334 + movs r0, #0x2e + strb r0, [r2, #0xc] + adds r0, r2, #0 + movs r1, #0x13 + bl sub_0803B8E8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0803B334: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B338 +sub_0803B338: @ 0x0803B338 + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0xa + rsbs r0, r0, #0 + cmp r1, r0 + ble _0803B350 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _0803B358 +_0803B350: + movs r0, #0x2f + strb r0, [r2, #0xc] + movs r0, #0xf + strb r0, [r2, #0xe] +_0803B358: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B35C +sub_0803B35C: @ 0x0803B35C + push {lr} + adds r3, r0, #0 + ldr r2, _0803B394 @ =gUnk_080CED6C + ldr r0, [r3, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r3, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r3, #0x36] + ldrb r0, [r3, #0xe] + subs r0, #1 + strb r0, [r3, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803B390 + movs r0, #0x30 + strb r0, [r3, #0xc] +_0803B390: + pop {pc} + .align 2, 0 +_0803B394: .4byte gUnk_080CED6C + + thumb_func_start sub_0803B398 +sub_0803B398: @ 0x0803B398 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0803B3E8 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + adds r0, r4, #0 + bl sub_0803B4E4 + cmp r0, #0 + beq _0803B3EC + movs r0, #0x31 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #0x35 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, [r4, #0x54] + movs r1, #0 + bl sub_080042AC + b _0803B3F2 + .align 2, 0 +_0803B3E8: .4byte gUnk_080CED6C +_0803B3EC: + adds r0, r4, #0 + bl sub_0806F69C +_0803B3F2: + pop {r4, pc} + + thumb_func_start sub_0803B3F4 +sub_0803B3F4: @ 0x0803B3F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803B440 @ =gUnk_080CED6C + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xf] + lsrs r0, r0, #4 + adds r0, #3 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + adds r0, r0, r1 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + strh r0, [r4, #0x36] + 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 _0803B47C + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x17 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803B448 + ldr r0, _0803B444 @ =gUnk_080FD35C + b _0803B44A + .align 2, 0 +_0803B440: .4byte gUnk_080CED6C +_0803B444: .4byte gUnk_080FD35C +_0803B448: + ldr r0, _0803B468 @ =gUnk_080FD36C +_0803B44A: + str r0, [r4, #0x48] + ldr r0, [r4, #0x50] + ldrb r2, [r4, #0xa] + movs r1, #2 + cmp r2, #0 + bne _0803B458 + movs r1, #1 +_0803B458: + adds r0, #0x80 + ldrb r3, [r0] + adds r5, r0, #0 + cmp r2, #0 + bne _0803B46C + movs r0, #0x10 + b _0803B46E + .align 2, 0 +_0803B468: .4byte gUnk_080FD36C +_0803B46C: + movs r0, #0x20 +_0803B46E: + orrs r1, r0 + adds r0, r3, #0 + bics r0, r1 + strb r0, [r5] + adds r0, r4, #0 + bl sub_0803B59C +_0803B47C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803B480 +sub_0803B480: @ 0x0803B480 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7e + ldrh r1, [r0] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0803B4B6 + movs r0, #0x2d + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _0803B4B6 + ldr r0, _0803B4D0 @ =gUnk_080CFD08 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + adds r0, r4, #0 + adds r1, r3, #0 + movs r3, #0 + bl PositionRelative +_0803B4B6: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803B4CC + adds r0, r4, #0 + bl sub_0803B6A4 +_0803B4CC: + pop {r4, pc} + .align 2, 0 +_0803B4D0: .4byte gUnk_080CFD08 + + thumb_func_start sub_0803B4D4 +sub_0803B4D4: @ 0x0803B4D4 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x10 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B4E4 +sub_0803B4E4: @ 0x0803B4E4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldr r1, _0803B52C @ =gUnk_080CFD0A + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r3, r0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r6, r0, #0 + adds r6, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803B530 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r5, #0 + adds r3, r6, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + movs r0, #0 + b _0803B536 + .align 2, 0 +_0803B52C: .4byte gUnk_080CFD0A +_0803B530: + strh r5, [r4, #0x2e] + strh r6, [r4, #0x32] + movs r0, #1 +_0803B536: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803B538 +sub_0803B538: @ 0x0803B538 + push {r4, lr} + adds r4, r0, #0 + ldr r1, [r4, #0x54] + ldr r3, _0803B554 @ =0xFFFF0000 + movs r2, #0 + bl PositionRelative + ldr r1, [r4, #0x74] + ldr r3, _0803B558 @ =0xFFFE0000 + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative + pop {r4, pc} + .align 2, 0 +_0803B554: .4byte 0xFFFF0000 +_0803B558: .4byte 0xFFFE0000 + + thumb_func_start sub_0803B55C +sub_0803B55C: @ 0x0803B55C + push {r4, r5, lr} + ldr r5, [r0, #0x74] + ldr r4, [r0, #0x54] + adds r0, r4, #0 + bl sub_080042B8 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803B588 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _0803B59A + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 + b _0803B59A +_0803B588: + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0803B59A + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 +_0803B59A: + pop {r4, r5, pc} + + thumb_func_start sub_0803B59C +sub_0803B59C: @ 0x0803B59C + push {lr} + movs r3, #2 + strb r3, [r0, #0xc] + ldr r2, [r0, #0x50] + adds r1, r2, #0 + adds r1, #0x7d + ldrb r1, [r1] + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _0803B5B6 + movs r0, #1 + orrs r1, r0 + b _0803B5B8 +_0803B5B6: + orrs r1, r3 +_0803B5B8: + adds r0, r2, #0 + adds r0, #0x7d + strb r1, [r0] + pop {pc} + + thumb_func_start sub_0803B5C0 +sub_0803B5C0: @ 0x0803B5C0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803B5E8 @ =gLinkEntity + bl sub_080045C4 + adds r2, r0, #0 + cmp r2, #9 + bhi _0803B5D2 + movs r2, #0xa +_0803B5D2: + cmp r2, #0x16 + bls _0803B5D8 + movs r2, #0x16 +_0803B5D8: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0803B5F0 + ldr r1, _0803B5EC @ =gUnk_080CFD0C + adds r0, r2, #0 + subs r0, #0xa + b _0803B5F6 + .align 2, 0 +_0803B5E8: .4byte gLinkEntity +_0803B5EC: .4byte gUnk_080CFD0C +_0803B5F0: + ldr r1, _0803B60C @ =gUnk_080CFD0C + movs r0, #0x16 + subs r0, r0, r2 +_0803B5F6: + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, r1 + beq _0803B60A + adds r0, r4, #0 + bl sub_08004260 +_0803B60A: + pop {r4, pc} + .align 2, 0 +_0803B60C: .4byte gUnk_080CFD0C + + thumb_func_start sub_0803B610 +sub_0803B610: @ 0x0803B610 + push {r4, lr} + ldr r4, _0803B634 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r4, r2] + ldr r3, _0803B638 @ =gUnk_080CFD19 + ldrb r2, [r0, #0xa] + adds r2, r2, r3 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r2, #0xc + movs r3, #8 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803B634: .4byte gLinkEntity +_0803B638: .4byte gUnk_080CFD19 + + thumb_func_start sub_0803B63C +sub_0803B63C: @ 0x0803B63C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0803B680 @ =gLinkEntity + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldr r1, _0803B684 @ =gUnk_080CFD19 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r3, r3, r0 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r5, r0, #0 + subs r5, #0xc + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb4 + bls _0803B688 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + b _0803B6A0 + .align 2, 0 +_0803B680: .4byte gLinkEntity +_0803B684: .4byte gUnk_080CFD19 +_0803B688: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + + thumb_func_start sub_0803B698 +sub_0803B698: @ 0x0803B698 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_0803B6A0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803B6A4 +sub_0803B6A4: @ 0x0803B6A4 + push {r4, lr} + adds r2, r0, #0 + movs r0, #0x2c + strb r0, [r2, #0xc] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x14 + strb r0, [r1] + ldr r3, [r2, #0x50] + adds r0, r3, #0 + adds r0, #0x80 + ldrb r1, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B6C6 + movs r0, #0x10 + b _0803B6C8 +_0803B6C6: + movs r0, #0x20 +_0803B6C8: + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x80 + strb r1, [r0] + ldrb r3, [r0] + ldrb r1, [r2, #0xa] + adds r4, r0, #0 + cmp r1, #0 + bne _0803B6E0 + movs r0, #5 + rsbs r0, r0, #0 + b _0803B6E4 +_0803B6E0: + movs r0, #9 + rsbs r0, r0, #0 +_0803B6E4: + ands r0, r3 + strb r0, [r4] + adds r0, r2, #0 + movs r1, #0x17 + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803B6F4 +sub_0803B6F4: @ 0x0803B6F4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _0803B710 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r1, r0 + ble _0803B71E +_0803B70C: + movs r0, #1 + b _0803B720 +_0803B710: + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + movs r3, #0x2e + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _0803B70C +_0803B71E: + movs r0, #0 +_0803B720: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803B724 +sub_0803B724: @ 0x0803B724 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xf] + cmp r0, #2 + bhi _0803B78E + adds r6, r5, #0 + adds r6, #0x84 + ldrb r0, [r6] + cmp r0, #0 + beq _0803B78E + movs r0, #7 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + cmp r4, #0 + beq _0803B78E + movs r0, #1 + strb r0, [r4, #0xb] + bl sub_08000E50 + ldr r2, _0803B790 @ =gUnk_080CFD1B + ldrb r1, [r5, #0xa] + adds r1, r1, r2 + movs r3, #0x70 + adds r2, r0, #0 + ands r2, r3 + ldrb r1, [r1] + adds r2, r2, r1 + ldr r3, _0803B794 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + lsrs r0, r0, #0x10 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, #0x5c + ldrh r3, [r3, #8] + adds r1, r1, r3 + strh r1, [r4, #0x32] + str r5, [r4, #0x50] + adds r0, r4, #0 + bl sub_08016A30 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_0803B78E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803B790: .4byte gUnk_080CFD1B +_0803B794: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803B798 +sub_0803B798: @ 0x0803B798 + ldr r2, _0803B7F4 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x41 + strb r0, [r2, #2] + strb r1, [r2, #0xa] + ldr r0, [r2, #0x30] + ldr r1, _0803B7F8 @ =0x0000FFEF + ands r0, r1 + str r0, [r2, #0x30] + ldr r3, _0803B7FC @ =gLinkEntity + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r3, #0x20] + movs r2, #0 + ldr r0, _0803B800 @ =0x0000FFF6 + strh r0, [r3, #0x36] + movs r0, #0x10 + strb r0, [r3, #0x15] + movs r0, #4 + strb r0, [r3, #0x14] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x63 + strb r2, [r0] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + bx lr + .align 2, 0 +_0803B7F4: .4byte gUnk_03003F80 +_0803B7F8: .4byte 0x0000FFEF +_0803B7FC: .4byte gLinkEntity +_0803B800: .4byte 0x0000FFF6 + + thumb_func_start sub_0803B804 +sub_0803B804: @ 0x0803B804 + push {r4, lr} + ldr r4, _0803B820 @ =gLinkEntity + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x1e + strb r0, [r1] + subs r0, #0x22 + bl ModHealth + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + pop {r4, pc} + .align 2, 0 +_0803B820: .4byte gLinkEntity + + thumb_func_start sub_0803B824 +sub_0803B824: @ 0x0803B824 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08077B2C + ldr r2, _0803B864 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + ldr r4, _0803B868 @ =gLinkEntity + ldr r1, _0803B86C @ =gUnk_080CFD1D + ldrb r0, [r5, #0xa] + adds r0, r0, r1 + movs r2, #0 + ldrsb r2, [r0, r2] + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #1 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfa + strb r0, [r1] + adds r4, #0x29 + ldrb r1, [r4] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4] + pop {r4, r5, pc} + .align 2, 0 +_0803B864: .4byte gUnk_03003F80 +_0803B868: .4byte gLinkEntity +_0803B86C: .4byte gUnk_080CFD1D + + thumb_func_start sub_0803B870 +sub_0803B870: @ 0x0803B870 + push {r4, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x54] + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803B8DC + ldr r0, _0803B8D4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803B8DC + movs r0, #0x18 + strb r0, [r3, #0xc] + movs r0, #0x44 + strb r0, [r3, #0xe] + ldrb r1, [r3, #0x18] + subs r0, #0x48 + ands r0, r1 + strb r0, [r3, #0x18] + ldr r1, _0803B8D8 @ =gLinkEntity + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0803B824 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x13 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #1 + b _0803B8E6 + .align 2, 0 +_0803B8D4: .4byte gUnk_03003F80 +_0803B8D8: .4byte gLinkEntity +_0803B8DC: + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x15 + strb r0, [r1] + movs r0, #0 +_0803B8E6: + pop {r4, pc} + + thumb_func_start sub_0803B8E8 +sub_0803B8E8: @ 0x0803B8E8 + ldr r2, [r0, #0x54] + adds r2, #0x3f + strb r1, [r2] + ldr r2, [r0, #0x74] + adds r0, r2, #0 + adds r0, #0x3f + strb r1, [r0] + bx lr + + thumb_func_start sub_0803B8F8 +sub_0803B8F8: @ 0x0803B8F8 + push {lr} + ldr r2, _0803B90C @ =gUnk_080CFD20 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803B90C: .4byte gUnk_080CFD20 + + thumb_func_start sub_0803B910 +sub_0803B910: @ 0x0803B910 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803B940 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _0803B944 + movs r2, #0 + 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] + adds r0, r4, #0 + adds r0, #0x74 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #0xa + bl sub_0803BA8C + b _0803B950 + .align 2, 0 +_0803B940: .4byte gUnk_030010A0 +_0803B944: + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + movs r0, #0x80 + strb r0, [r1] +_0803B950: + ldrb r1, [r4, #0xa] + subs r1, #2 + movs r0, #1 + 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] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA6C + pop {r4, pc} + + thumb_func_start sub_0803B978 +sub_0803B978: @ 0x0803B978 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #5 + bhi _0803BA34 + lsls r0, r0, #2 + ldr r1, _0803B98C @ =_0803B990 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803B98C: .4byte _0803B990 +_0803B990: @ jump table + .4byte _0803BA66 @ case 0 + .4byte _0803B9A8 @ case 1 + .4byte _0803B9C0 @ case 2 + .4byte _0803BA46 @ case 3 + .4byte _0803BA14 @ case 4 + .4byte _0803BA40 @ case 5 +_0803B9A8: + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + movs r0, #0x1e + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + ldr r0, _0803BA10 @ =0x000001A9 + bl sub_080A3268 +_0803B9C0: + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_0803BA8C + adds r0, r4, #0 + adds r0, #0x75 + adds r5, r4, #0 + adds r5, #0x74 + ldrb r1, [r0] + ldrb r0, [r5] + orrs r0, r1 + cmp r0, #0 + bne _0803B9E0 + ldr r0, _0803BA10 @ =0x000001A9 + bl sub_080A3268 +_0803B9E0: + ldrb r0, [r5] + cmp r0, #0 + bne _0803BA66 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803BA66 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xf] + subs r0, #4 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _0803BA66 + ldr r0, [r4, #0x50] + ldr r1, [r0, #0x50] + movs r0, #3 + strb r0, [r1, #0xd] + strb r0, [r4, #0xd] + b _0803BA66 + .align 2, 0 +_0803BA10: .4byte 0x000001A9 +_0803BA14: + movs r0, #5 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #9 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + b _0803BA46 +_0803BA34: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + subs r0, #0xf + ands r0, r1 + strb r0, [r4, #0x19] +_0803BA40: + adds r0, r4, #0 + bl sub_08004274 +_0803BA46: + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803BA8C + adds r1, r4, #0 + adds r1, #0x75 + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r1] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + bne _0803BA66 + ldr r0, _0803BA68 @ =0x000001A9 + bl sub_080A3268 +_0803BA66: + pop {r4, r5, pc} + .align 2, 0 +_0803BA68: .4byte 0x000001A9 + + thumb_func_start sub_0803BA6C +sub_0803BA6C: @ 0x0803BA6C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xa + bl sub_0803BA8C + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803BA80 +sub_0803BA80: @ 0x0803BA80 + push {lr} + movs r1, #0xa + bl sub_0803BA8C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803BA8C +sub_0803BA8C: @ 0x0803BA8C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r1, #0 + adds r4, r6, #0 + adds r4, #0x74 + ldrb r3, [r4] + movs r2, #0xe0 + ands r2, r3 + cmp r2, #0 + bne _0803BAEC + cmp r3, #0 + bne _0803BAD2 + adds r2, r6, #0 + adds r2, #0x75 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #9 + bls _0803BABA + strb r1, [r2] +_0803BABA: + ldrb r0, [r6, #0xa] + cmp r0, #2 + bne _0803BAC8 + ldr r1, _0803BAC4 @ =gUnk_080CFD30 + b _0803BACA + .align 2, 0 +_0803BAC4: .4byte gUnk_080CFD30 +_0803BAC8: + ldr r1, _0803BAE8 @ =gUnk_080CFD44 +_0803BACA: + ldrb r0, [r2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] +_0803BAD2: + adds r2, r6, #0 + adds r2, #0x74 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + cmp r5, r0 + bhi _0803BB18 + movs r0, #0 + strb r0, [r2] + b _0803BB18 + .align 2, 0 +_0803BAE8: .4byte gUnk_080CFD44 +_0803BAEC: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _0803BB18 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r4] + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _0803BB0C + ldr r1, _0803BB08 @ =gUnk_080CFD58 + b _0803BB0E + .align 2, 0 +_0803BB08: .4byte gUnk_080CFD58 +_0803BB0C: + ldr r1, _0803BB78 @ =gUnk_080CFD5C +_0803BB0E: + ldrb r0, [r6, #0xa] + subs r0, #2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] +_0803BB18: + cmp r1, #0 + beq _0803BB74 + adds r0, r6, #0 + bl sub_0801D2B4 + ldr r0, [r6, #0x50] + ldr r4, [r0, #0x78] + ldrb r1, [r6, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1c + ldrb r2, [r4, #0x1a] + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1a] + ldr r0, [r6, #0x50] + ldr r5, [r0, #0x78] + ldrb r1, [r6, #0x1a] + lsls r1, r1, #0x1c + lsrs r1, r1, #0x18 + ldrb r4, [r5, #0x1a] + movs r2, #0xf + adds r0, r2, #0 + ands r0, r4 + orrs r0, r1 + strb r0, [r5, #0x1a] + ldr r0, [r6, #0x50] + ldr r4, [r0, #0x54] + ldrb r0, [r6, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1c + ldrb r1, [r4, #0x1a] + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #0x1a] + ldr r0, [r6, #0x50] + ldr r3, [r0, #0x54] + ldrb r0, [r6, #0x1a] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x18 + ldrb r1, [r3, #0x1a] + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x1a] +_0803BB74: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803BB78: .4byte gUnk_080CFD5C + + thumb_func_start sub_0803BB7C +sub_0803BB7C: @ 0x0803BB7C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803BB94 @ =gUnk_080CFF3C + 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 +_0803BB94: .4byte gUnk_080CFF3C + + thumb_func_start sub_0803BB98 +sub_0803BB98: @ 0x0803BB98 + push {lr} + ldr r2, _0803BBAC @ =gUnk_080CFF54 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803BBAC: .4byte gUnk_080CFF54 + + thumb_func_start sub_0803BBB0 +sub_0803BBB0: @ 0x0803BBB0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0803BC2C + movs r5, #0x7f + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + bne _0803BC06 + adds r0, r4, #0 + bl sub_0803C0AC + ldrb r1, [r4, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x15] + adds r0, r2, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0803BBF6 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _0803BBF2 + adds r0, r2, #2 + b _0803BBF4 +_0803BBF2: + subs r0, r2, #2 +_0803BBF4: + strb r0, [r4, #0x15] +_0803BBF6: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + subs r0, r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803BF2C + b _0803BC1E +_0803BC06: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0803BC1E + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_0803BC1E: + adds r1, r4, #0 + adds r1, #0x82 + ldrh r0, [r1] + cmp r0, #0x10 + bls _0803BC2C + subs r0, #0xc + strh r0, [r1] +_0803BC2C: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, r5, pc} + + thumb_func_start sub_0803BC34 +sub_0803BC34: @ 0x0803BC34 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0803BC78 @ =gUnk_080CFF6C + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + bne _0803BC74 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0803BF2C +_0803BC74: + pop {r4, pc} + .align 2, 0 +_0803BC78: .4byte gUnk_080CFF6C + + thumb_func_start sub_0803BC7C +sub_0803BC7C: @ 0x0803BC7C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803BC88 +sub_0803BC88: @ 0x0803BC88 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803BC90 +sub_0803BC90: @ 0x0803BC90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803BCA2 + adds r0, r4, #0 + bl sub_0804A7D4 +_0803BCA2: + pop {r4, pc} + + thumb_func_start sub_0803BCA4 +sub_0803BCA4: @ 0x0803BCA4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + bl sub_0804A720 + movs r4, #0 + movs r5, #1 + strb r5, [r6, #0xc] + strb r4, [r6, #0xf] + adds r0, r6, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r6, #0x15] + adds r0, r6, #0 + adds r0, #0x80 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + strb r5, [r6, #0x1c] + adds r2, r6, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r1, [r6, #0x1b] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x1b] + ldrh r1, [r6, #0x2e] + adds r0, r6, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r6, #0x32] + adds r1, r6, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r6, #0 + bl sub_08016A04 + adds r0, r6, #0 + bl sub_0803BF2C + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803BD08 +sub_0803BD08: @ 0x0803BD08 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803BD2C + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0803BD80 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_0803BD2C: + adds r0, r4, #0 + bl sub_0803BEE8 + adds r0, r4, #0 + bl sub_08004274 + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803BD80 + ldr r5, _0803BD84 @ =gUnk_020000B0 + ldr r1, [r5] + adds r0, r4, #0 + movs r2, #0x88 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803BD80 + ldr r0, [r5] + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r4, r2] + adds r0, #8 + cmp r1, r0 + ble _0803BD80 + movs r1, #0 + movs r2, #2 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x84 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x81 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0803BF2C +_0803BD80: + pop {r4, r5, pc} + .align 2, 0 +_0803BD84: .4byte gUnk_020000B0 + + thumb_func_start sub_0803BD88 +sub_0803BD88: @ 0x0803BD88 + push {lr} + bl sub_0803BF70 + pop {pc} + + thumb_func_start sub_0803BD90 +sub_0803BD90: @ 0x0803BD90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080040A8 + cmp r0, #0 + bne _0803BDC8 + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #8 + ands r0, r1 + strb r0, [r4, #0x18] + 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, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + movs r0, #8 + strb r0, [r4, #0xe] + b _0803BDD4 +_0803BDC8: + adds r0, r4, #0 + bl sub_0803BF48 + adds r0, r4, #0 + bl sub_08004274 +_0803BDD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803BDD8 +sub_0803BDD8: @ 0x0803BDD8 + 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 _0803BE76 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803BDFE + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803BE06 +_0803BDFE: + adds r0, r4, #0 + bl sub_0803C120 + b _0803BE70 +_0803BE06: + ldrb r1, [r4, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803BE20 + movs r0, #8 + strb r0, [r4, #0x15] + ldr r1, _0803BE1C @ =gUnk_03000BF0 + ldrh r0, [r1, #0xa] + subs r0, #0x20 + b _0803BE30 + .align 2, 0 +_0803BE1C: .4byte gUnk_03000BF0 +_0803BE20: + movs r0, #0x18 + strb r0, [r4, #0x15] + ldr r1, _0803BE78 @ =gUnk_03000BF0 + movs r2, #0x88 + lsls r2, r2, #1 + adds r0, r2, #0 + ldrh r2, [r1, #0xa] + adds r0, r0, r2 +_0803BE30: + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0xc] + adds r0, #8 + strh r0, [r4, #0x32] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #2 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x84 + movs r0, #1 + strb r0, [r1] + movs r0, #0x18 + strb r0, [r4, #0xe] + subs r1, #2 + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, #0x94 + strh r0, [r4, #0x24] + subs r1, #1 + movs r0, #4 + strb r0, [r1] +_0803BE70: + adds r0, r4, #0 + bl sub_0803BF2C +_0803BE76: + pop {r4, pc} + .align 2, 0 +_0803BE78: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803BE7C +sub_0803BE7C: @ 0x0803BE7C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080040A8 + adds r5, r0, #0 + cmp r5, #0 + bne _0803BEE6 + movs r2, #1 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + strb r5, [r0] + 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] + adds r0, r4, #0 + adds r0, #0x81 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_0803BF2C +_0803BEE6: + pop {r4, r5, pc} + + thumb_func_start sub_0803BEE8 +sub_0803BEE8: @ 0x0803BEE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803BF28 + ldrb r0, [r4, #0x15] + adds r5, r4, #0 + adds r5, #0x80 + strb r0, [r5] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + cmp r0, #0xff + beq _0803BF0E + strb r0, [r4, #0x15] +_0803BF0E: + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r2, [r5] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + ldrb r2, [r4, #0x15] + ands r0, r2 + cmp r1, r0 + beq _0803BF28 + adds r0, r4, #0 + bl sub_0803BF2C +_0803BF28: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803BF2C +sub_0803BF2C: @ 0x0803BF2C + push {lr} + ldrb r2, [r0, #0x15] + movs r1, #0x10 + ands r1, r2 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + adds r2, r0, #0 + adds r2, #0x81 + ldrb r2, [r2] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803BF48 +sub_0803BF48: @ 0x0803BF48 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + pop {r4, pc} + + thumb_func_start sub_0803BF70 +sub_0803BF70: @ 0x0803BF70 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x84 + ldrb r0, [r2] + cmp r0, #1 + beq _0803BFC0 + cmp r0, #1 + bgt _0803BF88 + cmp r0, #0 + beq _0803BF8E + b _0803C0A2 +_0803BF88: + cmp r0, #2 + beq _0803BFEA + b _0803C0A2 +_0803BF8E: + ldrb r1, [r5, #0xe] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0803BFA0 + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r5, #0x36] +_0803BFA0: + subs r0, r1, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C0A2 + strb r3, [r2] + movs r0, #0x18 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #2 + b _0803BFE0 +_0803BFC0: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C0A2 + movs r0, #2 + strb r0, [r2] + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r1, r5, #0 + adds r1, #0x81 + movs r0, #4 +_0803BFE0: + strb r0, [r1] + adds r0, r5, #0 + bl sub_0803BF2C + b _0803C0A2 +_0803BFEA: + adds r1, r5, #0 + adds r1, #0x82 + ldrh r0, [r1] + subs r0, #1 + movs r3, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + adds r6, r1, #0 + cmp r0, #0 + bne _0803C02C + movs r0, #3 + strb r0, [r5, #0xc] + strb r3, [r2] + strb r3, [r5, #0xe] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldrb r2, [r5, #0x15] + adds r0, r2, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803C024 + movs r0, #0x10 + subs r0, r0, r2 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] +_0803C024: + adds r0, r5, #0 + bl sub_0803BF2C + b _0803C09C +_0803C02C: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C09C + movs r0, #8 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r4, r5, #0 + adds r4, #0x80 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08049F84 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004596 + ldrb r3, [r5, #0x15] + adds r0, r3, #0 + adds r0, #0x18 + movs r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803C07E + ldrb r0, [r4] + cmp r0, #0x10 + bne _0803C076 + ands r3, r0 + cmp r3, #0 + beq _0803C072 + movs r0, #0x12 + b _0803C074 +_0803C072: + movs r0, #0xe +_0803C074: + strb r0, [r4] +_0803C076: + ldrb r0, [r4] + strb r0, [r5, #0x15] + movs r0, #1 + strh r0, [r6] +_0803C07E: + ldrb r2, [r4] + movs r0, #0x10 + adds r1, r0, #0 + ands r1, r2 + lsls r1, r1, #0x18 + ldrb r2, [r5, #0x15] + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r2, r0, #0x1c + cmp r1, r0 + beq _0803C09C + adds r1, r2, #4 + adds r0, r5, #0 + bl sub_08004260 +_0803C09C: + adds r0, r5, #0 + bl sub_0803BF48 +_0803C0A2: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803C0AC +sub_0803C0AC: @ 0x0803C0AC + push {r4, r5, r6, lr} + movs r0, #1 + bl sub_08049DF4 + adds r5, r0, #0 + cmp r5, #0 + beq _0803C11C + ldr r0, _0803C0D4 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r1, [r0] + ldr r0, _0803C0D8 @ =0x000001F3 + cmp r1, r0 + bls _0803C0DC + movs r6, #0x56 + movs r4, #5 + movs r0, #0x64 + rsbs r0, r0, #0 + bl sub_080526CC + b _0803C118 + .align 2, 0 +_0803C0D4: .4byte gUnk_02002A40 +_0803C0D8: .4byte 0x000001F3 +_0803C0DC: + cmp r1, #0x63 + bls _0803C0EE + movs r6, #0x55 + movs r4, #5 + movs r0, #0x19 + rsbs r0, r0, #0 + bl sub_080526CC + b _0803C118 +_0803C0EE: + movs r6, #0x54 + adds r4, r1, #0 + cmp r4, #4 + bls _0803C0F8 + movs r4, #5 +_0803C0F8: + rsbs r0, r4, #0 + bl sub_080526CC + b _0803C118 +_0803C100: + movs r0, #0x1a + adds r1, r6, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0803C116 + adds r0, r5, #0 + bl sub_0806FA24 +_0803C116: + subs r4, #1 +_0803C118: + cmp r4, #0 + bne _0803C100 +_0803C11C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0803C120 +sub_0803C120: @ 0x0803C120 + adds r2, r0, #0 + movs r0, #5 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #9 + ands r0, r1 + strb r0, [r2, #0x18] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r2, #0x32] + ldrh r0, [r2, #0x36] + adds r0, #8 + strh r0, [r2, #0x36] + 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] + bx lr + .align 2, 0 + + thumb_func_start sub_0803C160 +sub_0803C160: @ 0x0803C160 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803C17C @ =gUnk_080CFF78 + bl sub_0800129E + movs r3, #0x18 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0803C17C: .4byte gUnk_080CFF78 + + thumb_func_start sub_0803C180 +sub_0803C180: @ 0x0803C180 + push {lr} + ldr r2, _0803C194 @ =gUnk_080CFF90 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803C194: .4byte gUnk_080CFF90 + + thumb_func_start sub_0803C198 +sub_0803C198: @ 0x0803C198 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803C1AC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803C1AC: + ldr r1, _0803C1D8 @ =gUnk_080CFF78 + adds r0, r4, #0 + bl sub_0804AA30 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803C1D4 + adds r0, r4, #0 + bl sub_0803C5F0 + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _0803C1D4 + ldrb r0, [r1, #0xf] + adds r0, #1 + strb r0, [r1, #0xf] +_0803C1D4: + pop {r4, pc} + .align 2, 0 +_0803C1D8: .4byte gUnk_080CFF78 + + thumb_func_start nullsub_168 +nullsub_168: @ 0x0803C1DC + bx lr + .align 2, 0 + + thumb_func_start sub_0803C1E0 +sub_0803C1E0: @ 0x0803C1E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + movs r1, #0 + movs r2, #1 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7b + strb r1, [r0] + adds r0, #5 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + subs r0, #7 + strb r1, [r0] + adds r0, #8 + strb r2, [r0] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803C228 + ldrb r1, [r4, #0xb] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + strh r0, [r4, #0x24] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_0803C690 + b _0803C232 +_0803C228: + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C4B0 +_0803C232: + pop {r4, pc} + + thumb_func_start sub_0803C234 +sub_0803C234: @ 0x0803C234 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + beq _0803C246 + subs r0, #1 + strb r0, [r1] +_0803C246: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803C292 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + adds r2, r0, #1 + strb r2, [r1] + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0xf + bls _0803C26E + adds r0, r4, #0 + bl sub_0803C5C4 + b _0803C2D2 +_0803C26E: + movs r0, #3 + ands r2, r0 + cmp r2, #0 + bne _0803C28A + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0803C28A + adds r0, r4, #0 + bl sub_0803C624 + b _0803C2D2 +_0803C28A: + adds r0, r4, #0 + bl sub_0803C4B0 + b _0803C2D2 +_0803C292: + adds r0, r4, #0 + bl sub_0803C6F8 + cmp r0, #0 + beq _0803C2C2 + ldrh r1, [r4, #0x2a] + adds r0, r4, #0 + bl sub_0800417E + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803C690 + b _0803C2D2 +_0803C2C2: + adds r0, r4, #0 + bl sub_0803C568 + cmp r0, #0 + beq _0803C2D2 + adds r0, r4, #0 + bl sub_0803C5F0 +_0803C2D2: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C2DC +sub_0803C2DC: @ 0x0803C2DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803C308 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x82 + strb r1, [r0] + subs r0, #2 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C4B0 + b _0803C31E +_0803C308: + adds r0, r4, #0 + bl sub_0803C568 + cmp r0, #0 + beq _0803C31E + adds r2, r4, #0 + adds r2, #0x7b + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] +_0803C31E: + ldrb r0, [r4, #0xf] + cmp r0, #0xb + bls _0803C336 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0 + beq _0803C33A + adds r0, r4, #0 + bl sub_0803C5F0 + b _0803C33A +_0803C336: + adds r0, #1 + strb r0, [r4, #0xf] +_0803C33A: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C344 +sub_0803C344: @ 0x0803C344 + 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 _0803C3F8 + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #5 + bhi _0803C3C8 + lsls r0, r1, #2 + ldr r1, _0803C36C @ =_0803C370 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C36C: .4byte _0803C370 +_0803C370: @ jump table + .4byte _0803C3C8 @ case 0 + .4byte _0803C3C8 @ case 1 + .4byte _0803C3A6 @ case 2 + .4byte _0803C388 @ case 3 + .4byte _0803C3BE @ case 4 + .4byte _0803C39C @ case 5 +_0803C388: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + b _0803C3E2 +_0803C39C: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _0803C3E2 +_0803C3A6: + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strh r1, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x40 + b _0803C3E0 +_0803C3BE: + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_0803C3C8: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r2] + movs r0, #0x80 + strh r0, [r4, #0x24] + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + lsls r1, r0, #1 + adds r1, r1, r0 + adds r1, #0x22 +_0803C3E0: + strb r1, [r4, #0xe] +_0803C3E2: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803C690 +_0803C3F8: + adds r0, r4, #0 + bl sub_0803C6DC + pop {r4, pc} + + thumb_func_start sub_0803C400 +sub_0803C400: @ 0x0803C400 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r1, r0, #0 + cmp r1, #0 + beq _0803C458 + subs r0, #1 + strb r0, [r4, #0xf] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0803C4AC + adds r0, r4, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #3 + bne _0803C450 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #2 + bhi _0803C450 + bl sub_08000E50 + movs r1, #0xc0 + ands r1, r0 + cmp r1, #0 + beq _0803C450 + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0803C690 + adds r0, r4, #0 + bl sub_0803C6DC + b _0803C4AC +_0803C450: + adds r0, r4, #0 + bl sub_0803C634 + b _0803C4AC +_0803C458: + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0803C46C + cmp r0, #0x18 + beq _0803C494 + b _0803C49A +_0803C46C: + ldrb r2, [r4, #0x14] + lsls r0, r2, #2 + strb r0, [r4, #0x15] + lsls r2, r2, #0x18 + lsrs r2, r2, #0x19 + adds r0, r4, #0 + movs r1, #0xd + bl sub_0804A98C + adds r2, r0, #0 + cmp r2, #0 + beq _0803C49A + str r2, [r4, #0x54] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r2, #0x15] + str r4, [r2, #0x50] + b _0803C49A +_0803C494: + strb r1, [r4, #0xe] + movs r0, #0x20 + strb r0, [r4, #0xf] +_0803C49A: + adds r0, r4, #0 + bl sub_0803C6DC + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0803C4AC + adds r0, r4, #0 + bl sub_0803C714 +_0803C4AC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803C4B0 +sub_0803C4B0: @ 0x0803C4B0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r1, #0 + strb r1, [r5, #0xf] + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #1 + bne _0803C54C + bl sub_08000E50 + ldr r1, _0803C4F0 @ =gUnk_080CFFA4 + movs r7, #7 + ands r0, r7 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0xe] + movs r0, #0x80 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803C4F4 + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #6 + ands r4, r0 + lsls r0, r4, #2 + strb r0, [r5, #0x15] + b _0803C556 + .align 2, 0 +_0803C4F0: .4byte gUnk_080CFFA4 +_0803C4F4: + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + adds r6, r5, #0 + adds r6, #0x83 + ldrb r0, [r6] + cmp r0, #0 + bne _0803C520 + bl sub_08000E50 + ldr r2, _0803C51C @ =gUnk_080CFFAC + movs r1, #0xf + ands r1, r0 + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + b _0803C53E + .align 2, 0 +_0803C51C: .4byte gUnk_080CFFAC +_0803C520: + bl sub_08000E50 + ldr r1, _0803C548 @ =gUnk_080CFFAC + ands r0, r7 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r4, r0 + ldrb r0, [r5, #0xe] + adds r0, #0x10 + strb r0, [r5, #0xe] + ldrb r0, [r6] + subs r0, #1 + strb r0, [r6] +_0803C53E: + adds r0, r4, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + b _0803C554 + .align 2, 0 +_0803C548: .4byte gUnk_080CFFAC +_0803C54C: + movs r0, #0xc + strb r0, [r5, #0xe] + strh r1, [r5, #0x24] + ldrb r0, [r5, #0x15] +_0803C554: + lsrs r4, r0, #2 +_0803C556: + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _0803C564 + strb r4, [r5, #0x14] + adds r0, r5, #0 + bl sub_0803C690 +_0803C564: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803C568 +sub_0803C568: @ 0x0803C568 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + bne _0803C5C0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _0803C5C0 + adds r0, r5, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #2 + bne _0803C598 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x30 + bl sub_0806FC80 + cmp r0, #0 + bne _0803C5BC +_0803C598: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x40 + bl sub_0806FC80 + cmp r0, #0 + beq _0803C5C0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + ldrb r5, [r5, #0x14] + cmp r0, r5 + bne _0803C5C0 +_0803C5BC: + movs r0, #1 + b _0803C5C2 +_0803C5C0: + movs r0, #0 +_0803C5C2: + pop {r4, r5, pc} + + thumb_func_start sub_0803C5C4 +sub_0803C5C4: @ 0x0803C5C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + lsrs r0, r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #2 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C5F0 +sub_0803C5F0: @ 0x0803C5F0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049F84 + movs r2, #0 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + subs r0, #9 + strb r2, [r0] + adds r0, r4, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #3 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C624 +sub_0803C624: @ 0x0803C624 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803C664 + adds r4, #0x82 + movs r0, #5 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C634 +sub_0803C634: @ 0x0803C634 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + movs r1, #0 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x83 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803C664 + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0xe] + adds r4, #0x82 + movs r0, #4 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_0803C664 +sub_0803C664: @ 0x0803C664 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0x20 + strb r0, [r2, #0xe] + strb r1, [r2, #0xf] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + subs r0, #5 + strb r1, [r0] + movs r0, #0 + strh r1, [r2, #0x24] + adds r1, r2, #0 + adds r1, #0x82 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0803C690 + pop {pc} + + thumb_func_start sub_0803C690 +sub_0803C690: @ 0x0803C690 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #0x14] + lsrs r2, r0, #1 + adds r0, r3, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #5 + bhi _0803C6D2 + lsls r0, r0, #2 + ldr r1, _0803C6AC @ =_0803C6B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C6AC: .4byte _0803C6B0 +_0803C6B0: @ jump table + .4byte _0803C6D2 @ case 0 + .4byte _0803C6C8 @ case 1 + .4byte _0803C6D0 @ case 2 + .4byte _0803C6CC @ case 3 + .4byte _0803C6C8 @ case 4 + .4byte _0803C6CC @ case 5 +_0803C6C8: + adds r2, #4 + b _0803C6D2 +_0803C6CC: + adds r2, #8 + b _0803C6D2 +_0803C6D0: + adds r2, #0xc +_0803C6D2: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0803C6DC +sub_0803C6DC: @ 0x0803C6DC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _0803C6EA + strh r0, [r4, #0x24] +_0803C6EA: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0803C6F8 +sub_0803C6F8: @ 0x0803C6F8 + ldr r2, _0803C710 @ =gUnk_080CFFBC + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r0, #0x2a] + ldrh r1, [r1] + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + bx lr + .align 2, 0 +_0803C710: .4byte gUnk_080CFFBC + + thumb_func_start sub_0803C714 +sub_0803C714: @ 0x0803C714 + push {lr} + ldr r1, [r0, #0x54] + ldrb r3, [r0, #0x14] + ldr r2, _0803C734 @ =gUnk_080CFFC4 + adds r3, r3, r2 + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + lsls r3, r3, #0x10 + bl PositionRelative + pop {pc} + .align 2, 0 +_0803C734: .4byte gUnk_080CFFC4 + + thumb_func_start sub_0803C738 +sub_0803C738: @ 0x0803C738 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803C754 @ =gUnk_080D0110 + 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 +_0803C754: .4byte gUnk_080D0110 + + thumb_func_start sub_0803C758 +sub_0803C758: @ 0x0803C758 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803C76C + cmp r0, #7 + beq _0803C76C + adds r0, r4, #0 + bl sub_0803CAD0 +_0803C76C: + ldr r0, _0803C780 @ =gUnk_080D0128 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0803C780: .4byte gUnk_080D0128 + + thumb_func_start sub_0803C784 +sub_0803C784: @ 0x0803C784 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x1d + bne _0803C7A2 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + adds r0, r4, #0 + bl sub_0803CBAC + b _0803C7FA +_0803C7A2: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x43 + bne _0803C7FA + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0803C7FA + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + movs r0, #0x10 + eors r0, r1 + lsls r1, r0, #3 + ldr r3, _0803C818 @ =gUnk_080C9160 + lsls r0, r0, #4 + adds r0, r0, r3 + movs r5, #0 + ldrsh r0, [r0, r5] + cmp r0, #0 + bge _0803C7D8 + adds r0, #0x1f +_0803C7D8: + asrs r0, r0, #5 + ldrh r5, [r2, #0x2e] + adds r0, r0, r5 + strh r0, [r2, #0x2e] + adds r0, r1, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r1, #0 + ldrsh r0, [r0, r1] + cmp r0, #0 + bge _0803C7F2 + adds r0, #0x1f +_0803C7F2: + asrs r1, r0, #5 + ldrh r0, [r2, #0x32] + subs r0, r0, r1 + strh r0, [r2, #0x32] +_0803C7FA: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803C80C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803C80C: + ldr r1, _0803C81C @ =gUnk_080D0110 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_0803C818: .4byte gUnk_080C9160 +_0803C81C: .4byte gUnk_080D0110 + + thumb_func_start sub_0803C820 +sub_0803C820: @ 0x0803C820 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0803C83C + ldr r0, _0803C840 @ =gUnk_080D0148 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803C83C: + pop {r4, pc} + .align 2, 0 +_0803C840: .4byte gUnk_080D0148 + + thumb_func_start sub_0803C844 +sub_0803C844: @ 0x0803C844 + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803C850 +sub_0803C850: @ 0x0803C850 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x54] + cmp r0, #0 + beq _0803C864 + adds r1, r2, #0 + adds r1, #0x62 + ldrb r1, [r1] + adds r0, #0x62 + strb r1, [r0] +_0803C864: + adds r0, r2, #0 + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803C86C +sub_0803C86C: @ 0x0803C86C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CBAC + movs r0, #0 + str r0, [r4, #0x54] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C87C +sub_0803C87C: @ 0x0803C87C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x11 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803C8B4 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0803C8B8 @ =0x0000FFFE + strh r0, [r4, #0x36] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrh r1, [r4, #0x32] + adds r0, #2 + strh r1, [r0] +_0803C8B4: + pop {r4, pc} + .align 2, 0 +_0803C8B8: .4byte 0x0000FFFE + + thumb_func_start sub_0803C8BC +sub_0803C8BC: @ 0x0803C8BC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0803CA84 + adds r0, r4, #0 + bl sub_0803CA4C + cmp r0, #0 + beq _0803C8E0 + 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] +_0803C8E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C8E4 +sub_0803C8E4: @ 0x0803C8E4 + 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 _0803C914 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_0803C914: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803C918 +sub_0803C918: @ 0x0803C918 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CB04 + cmp r0, #0 + bne _0803C94E + adds r0, r4, #0 + bl sub_0803CA4C + cmp r0, #0 + bne _0803C946 + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x43 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #0xc + adds r0, r4, #0 + bl sub_080042AC + b _0803C94E +_0803C946: + adds r0, r4, #0 + movs r1, #4 + bl sub_0803CA84 +_0803C94E: + pop {r4, pc} + + thumb_func_start sub_0803C950 +sub_0803C950: @ 0x0803C950 + 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 _0803C97A + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_0803C97A: + pop {r4, pc} + + thumb_func_start sub_0803C97C +sub_0803C97C: @ 0x0803C97C + 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 _0803C9D2 + adds r0, r4, #0 + bl sub_0803CB64 + movs r0, #6 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r2, r4, #0 + adds r2, #0x79 + cmp r0, #0 + beq _0803C9C2 + ldrb r0, [r2] + cmp r0, #0 + bne _0803C9C2 + movs r0, #0xf + strb r0, [r4, #0xe] + strb r1, [r2] + b _0803C9D2 +_0803C9C2: + movs r1, #0 + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r2] + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + bl sub_080042AC +_0803C9D2: + pop {r4, pc} + + thumb_func_start sub_0803C9D4 +sub_0803C9D4: @ 0x0803C9D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CA08 + adds r0, r2, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #1 + bne _0803C9F6 + adds r0, r2, #0 + bl sub_0803CB34 + b _0803CA08 +_0803C9F6: + movs r0, #3 + strb r0, [r2, #0xc] + movs r0, #0xb4 + strb r0, [r2, #0xe] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_080042AC +_0803CA08: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803CA0C +sub_0803CA0C: @ 0x0803CA0C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + cmp r0, #0 + bne _0803CA3E + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x13 + bhi _0803CA3E + ldrb r1, [r4, #0x14] + adds r1, #0x14 + adds r0, r4, #0 + bl sub_080042AC + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0803CA3E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0803CC08 + pop {r4, pc} + + thumb_func_start sub_0803CA4C +sub_0803CA4C: @ 0x0803CA4C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803CA7C @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CA80 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x70 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803CA80 + movs r0, #1 + b _0803CA82 + .align 2, 0 +_0803CA7C: .4byte gLinkEntity +_0803CA80: + movs r0, #0 +_0803CA82: + pop {r4, r5, pc} + + thumb_func_start sub_0803CA84 +sub_0803CA84: @ 0x0803CA84 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r1, _0803CACC @ =gLinkEntity + bl sub_080045C4 + adds r4, r0, #0 + subs r0, r4, #3 + movs r1, #7 + ands r0, r1 + cmp r0, #2 + bhi _0803CAAA + ldrb r0, [r5, #0x14] + lsrs r1, r4, #3 + subs r0, r0, r1 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + bls _0803CACA +_0803CAAA: + adds r0, r4, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r4, r0, #3 + ldrb r0, [r5, #0x14] + cmp r4, r0 + beq _0803CACA + strb r4, [r5, #0x14] + adds r1, r4, r6 + adds r0, r5, #0 + bl sub_080042AC + ldr r0, [r5, #0x54] + adds r1, r4, #0 + bl sub_080042AC +_0803CACA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803CACC: .4byte gLinkEntity + + thumb_func_start sub_0803CAD0 +sub_0803CAD0: @ 0x0803CAD0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x74 + ldrh r1, [r6] + adds r5, r4, #0 + adds r5, #0x76 + ldrh r2, [r5] + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CB02 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r6] + ldrh r3, [r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_080AEFE0 +_0803CB02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803CB04 +sub_0803CB04: @ 0x0803CB04 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + beq _0803CB1A + movs r0, #0 + b _0803CB32 +_0803CB1A: + adds r0, r4, #0 + bl sub_0803CB34 + adds r0, r4, #0 + adds r0, #0x79 + strb r5, [r0] + ldr r0, [r4, #0x54] + ldrb r1, [r4, #0x14] + adds r1, #4 + bl sub_080042AC + movs r0, #1 +_0803CB32: + pop {r4, r5, pc} + + thumb_func_start sub_0803CB34 +sub_0803CB34: @ 0x0803CB34 + push {r4, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0xa6 + strb r0, [r1] + ldr r1, _0803CB60 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 +_0803CB60: .4byte gLinkEntity + + thumb_func_start sub_0803CB64 +sub_0803CB64: @ 0x0803CB64 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x12 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0803CBA0 + ldrb r1, [r4, #0x14] + lsls r1, r1, #1 + ldr r0, _0803CBA4 @ =gUnk_080D0154 + adds r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + strb r0, [r5, #0x15] + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl PositionRelative + ldr r0, _0803CBA8 @ =0x00000193 + bl sub_08004488 +_0803CBA0: + pop {r4, r5, pc} + .align 2, 0 +_0803CBA4: .4byte gUnk_080D0154 +_0803CBA8: .4byte 0x00000193 + + thumb_func_start sub_0803CBAC +sub_0803CBAC: @ 0x0803CBAC + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x54] + cmp r2, #0 + beq _0803CBC6 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x43 + strb r0, [r1] +_0803CBC6: + movs r0, #7 + strb r0, [r3, #0xc] + ldrb r1, [r3, #0x18] + subs r0, #0xb + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3, #0x18] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x12 + ldrb r1, [r2] + movs r0, #0x7b + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x42 + strb r0, [r1] + ldrb r1, [r3, #0x14] + adds r1, #0x10 + adds r0, r3, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803CC08 +sub_0803CC08: @ 0x0803CC08 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x54] + cmp r5, #0 + beq _0803CCB4 + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r2, #0x36 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #2 + bhi _0803CCB4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0803CCB4 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #6 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803CCB4 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC56 + ldrh r0, [r1, #0x2e] + adds r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #6 + strh r0, [r1, #0x32] +_0803CC56: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC72 + ldrh r0, [r1, #0x2e] + subs r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #6 + strh r0, [r1, #0x32] +_0803CC72: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0803CC8E + ldrh r0, [r1, #0x2e] + adds r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #6 + strh r0, [r1, #0x32] +_0803CC8E: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0803CCAA + ldrh r0, [r1, #0x2e] + subs r0, #6 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #6 + strh r0, [r1, #0x32] +_0803CCAA: + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r5, #0 + bl sub_0805E7BC +_0803CCB4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803CCB8 +sub_0803CCB8: @ 0x0803CCB8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0803CCD0 @ =gUnk_080D0418 + 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 +_0803CCD0: .4byte gUnk_080D0418 + + thumb_func_start sub_0803CCD4 +sub_0803CCD4: @ 0x0803CCD4 + push {lr} + ldr r2, _0803CCE8 @ =gUnk_080D0430 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803CCE8: .4byte gUnk_080D0430 + + thumb_func_start sub_0803CCEC +sub_0803CCEC: @ 0x0803CCEC + push {lr} + adds r2, r0, #0 + adds r2, #0x42 + movs r1, #0 + strb r1, [r2] + bl sub_0803CCD4 + pop {pc} + + thumb_func_start sub_0803CCFC +sub_0803CCFC: @ 0x0803CCFC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + bne _0803CD16 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bne _0803CD26 + adds r0, r4, #0 + bl sub_0803CE3C + b _0803CD26 +_0803CD16: + ldr r0, _0803CD28 @ =gUnk_080D043C + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803CD26: + pop {r4, pc} + .align 2, 0 +_0803CD28: .4byte gUnk_080D043C + + thumb_func_start sub_0803CD2C +sub_0803CD2C: @ 0x0803CD2C + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + bx lr + .align 2, 0 + + thumb_func_start sub_0803CD38 +sub_0803CD38: @ 0x0803CD38 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_0803CD40 +sub_0803CD40: @ 0x0803CD40 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803CD66 + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth + ldr r0, _0803CD68 @ =gLinkEntity + movs r1, #0x7a + bl sub_0800449C + bl sub_08079D84 + adds r0, r4, #0 + bl sub_0803CE3C +_0803CD66: + pop {r4, pc} + .align 2, 0 +_0803CD68: .4byte gLinkEntity + + thumb_func_start sub_0803CD6C +sub_0803CD6C: @ 0x0803CD6C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0803CDA4 @ =0x0000FFFE + strh r0, [r4, #0x36] + ldrb r0, [r4, #0xa] + bl sub_0804B128 + str r0, [r4, #0x54] + str r0, [r4, #0x50] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803CE14 + pop {r4, pc} + .align 2, 0 +_0803CDA4: .4byte 0x0000FFFE + + thumb_func_start sub_0803CDA8 +sub_0803CDA8: @ 0x0803CDA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803CDC0 + adds r0, r4, #0 + bl sub_0806F69C +_0803CDC0: + adds r1, r4, #0 + adds r1, #0x74 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803CDD6 + adds r0, r4, #0 + bl sub_0803CE14 +_0803CDD6: + pop {r4, pc} + + thumb_func_start sub_0803CDD8 +sub_0803CDD8: @ 0x0803CDD8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + lsrs r0, r0, #0x1e + movs r2, #1 + eors r0, r2 + movs r5, #4 + rsbs r5, r5, #0 + adds r3, r5, #0 + ands r3, r1 + orrs r3, r0 + strb r3, [r4, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803CE10 + movs r0, #1 + strb r2, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r4, #0x10] + ands r3, r5 + orrs r3, r0 + strb r3, [r4, #0x18] +_0803CE10: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803CE14 +sub_0803CE14: @ 0x0803CE14 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x54 + adds r2, r4, #0 + adds r2, #0x74 + bl sub_080A2CC0 + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803CE38 + lsrs r1, r1, #3 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_0803CE38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803CE3C +sub_0803CE3C: @ 0x0803CE3C + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3a + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x32] + ldr r0, [r4, #0x50] + str r0, [r4, #0x54] + adds r0, r4, #0 + bl sub_0803CE14 + pop {r4, pc} + + thumb_func_start sub_0803CE80 +sub_0803CE80: @ 0x0803CE80 + push {lr} + ldr r2, _0803CE94 @ =gUnk_080D0448 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803CE94: .4byte gUnk_080D0448 + + thumb_func_start sub_0803CE98 +sub_0803CE98: @ 0x0803CE98 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x84 + ldrh r2, [r1] + movs r5, #0xf0 + lsls r5, r5, #8 + adds r0, r5, #0 + ands r0, r2 + lsrs r0, r0, #5 + strh r0, [r6, #0x24] + ldrh r2, [r1] + ldr r4, _0803CF1C @ =0x00000FFF + adds r0, r4, #0 + ands r0, r2 + strh r0, [r1] + adds r0, r6, #0 + bl sub_0804A720 + movs r0, #1 + strb r0, [r6, #0xc] + adds r3, r6, #0 + adds r3, #0x82 + ldrh r0, [r3] + ands r4, r0 + adds r0, r6, #0 + adds r0, #0x74 + strh r4, [r0] + ldrh r0, [r3] + movs r1, #0x3f + ands r1, r0 + lsls r1, r1, #4 + ldr r2, _0803CF20 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + adds r0, #8 + adds r1, r1, r0 + strh r1, [r6, #0x2e] + ldrh r1, [r3] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r1, [r2, #8] + adds r1, #8 + adds r0, r0, r1 + strh r0, [r6, #0x32] + movs r1, #0 + ldrsh r0, [r3, r1] + ands r0, r5 + asrs r0, r0, #0xa + strb r0, [r6, #0x15] + ldrb r0, [r6, #0xa] + lsls r0, r0, #2 + adds r1, r6, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r6, #0 + bl sub_0803CFF0 + cmp r0, #0 + beq _0803CF18 + adds r0, r6, #0 + bl sub_0803D0B0 +_0803CF18: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803CF1C: .4byte 0x00000FFF +_0803CF20: .4byte gUnk_03000BF0 + + thumb_func_start sub_0803CF24 +sub_0803CF24: @ 0x0803CF24 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CFD8 + cmp r0, #0 + beq _0803CF36 + adds r0, r4, #0 + bl sub_0803D024 +_0803CF36: + pop {r4, pc} + + thumb_func_start sub_0803CF38 +sub_0803CF38: @ 0x0803CF38 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803CFF0 + cmp r0, #0 + beq _0803CF4C + adds r0, r4, #0 + bl sub_0803D0B0 + b _0803CF8C +_0803CF4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_08049FDC + cmp r0, #0 + beq _0803CF8C + ldr r0, _0803CF90 @ =gUnk_020000B0 + ldr r0, [r0] + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803CF8C + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803CF8C + adds r0, r4, #0 + bl sub_0803D058 + adds r0, r4, #0 + bl sub_0803D024 +_0803CF8C: + pop {r4, pc} + .align 2, 0 +_0803CF90: .4byte gUnk_020000B0 + + thumb_func_start sub_0803CF94 +sub_0803CF94: @ 0x0803CF94 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x74 + ldrh r0, [r0] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + cmp r0, #0x76 + bne _0803CFBA + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_0803D024 + b _0803CFD4 +_0803CFBA: + adds r0, r4, #0 + adds r0, #0x7c + ldrh r0, [r0] + cmp r0, #0 + beq _0803CFD4 + adds r0, r4, #0 + bl sub_0803CFD8 + cmp r0, #0 + beq _0803CFD4 + adds r0, r4, #0 + bl sub_0803D024 +_0803CFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803CFD8 +sub_0803CFD8: @ 0x0803CFD8 + push {lr} + adds r1, r0, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + bne _0803CFE8 + movs r0, #1 + b _0803CFEE +_0803CFE8: + ldrh r0, [r1] + bl sub_0807CBE4 +_0803CFEE: + pop {pc} + + thumb_func_start sub_0803CFF0 +sub_0803CFF0: @ 0x0803CFF0 + push {lr} + adds r1, r0, #0 + adds r1, #0x80 + ldrh r2, [r1] + cmp r2, #0 + beq _0803D01E + adds r0, #0x7c + ldrh r0, [r0] + cmp r2, r0 + bne _0803D016 + adds r0, r2, #0 + bl sub_0807CBE4 + movs r1, #0 + cmp r0, #0 + bne _0803D012 + movs r1, #1 +_0803D012: + adds r0, r1, #0 + b _0803D020 +_0803D016: + ldrh r0, [r1] + bl sub_0807CBE4 + b _0803D020 +_0803D01E: + movs r0, #0 +_0803D020: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803D024 +sub_0803D024: @ 0x0803D024 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r1, [r0] + cmp r1, #0 + beq _0803D03A + adds r0, #2 + b _0803D04E +_0803D03A: + bl sub_08000E50 + ldr r2, _0803D054 @ =gUnk_080D0458 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x7a +_0803D04E: + strh r1, [r0] + pop {r4, pc} + .align 2, 0 +_0803D054: .4byte gUnk_080D0458 + + thumb_func_start sub_0803D058 +sub_0803D058: @ 0x0803D058 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x16 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _0803D0AE + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + beq _0803D078 + strh r1, [r5, #0x24] + b _0803D08A +_0803D078: + bl sub_08000E50 + ldr r2, _0803D0A4 @ =gUnk_080D0468 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + strh r0, [r5, #0x24] +_0803D08A: + ldrb r1, [r4, #0x15] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0803D0AC + ldr r0, _0803D0A8 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r5, #0x15] + b _0803D0AE + .align 2, 0 +_0803D0A4: .4byte gUnk_080D0468 +_0803D0A8: .4byte gUnk_020000B0 +_0803D0AC: + strb r1, [r5, #0x15] +_0803D0AE: + pop {r4, r5, pc} + + thumb_func_start sub_0803D0B0 +sub_0803D0B0: @ 0x0803D0B0 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x74 + ldrh r1, [r1] + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x75 + bl sub_0807B7D8 + pop {pc} + + thumb_func_start sub_0803D0C8 +sub_0803D0C8: @ 0x0803D0C8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + beq _0803D0F4 + cmp r0, #1 + bgt _0803D0DC + cmp r0, #0 + beq _0803D0E6 + b _0803D12C +_0803D0DC: + cmp r0, #2 + beq _0803D104 + cmp r0, #3 + beq _0803D11C + b _0803D12C +_0803D0E6: + adds r0, r4, #0 + bl sub_0803DFBC + ldr r0, _0803D0F0 @ =gUnk_080D0470 + b _0803D106 + .align 2, 0 +_0803D0F0: .4byte gUnk_080D0470 +_0803D0F4: + adds r0, r4, #0 + bl sub_0803DC58 + ldr r0, _0803D100 @ =gUnk_080D0490 + b _0803D106 + .align 2, 0 +_0803D100: .4byte gUnk_080D0490 +_0803D104: + ldr r0, _0803D118 @ =gUnk_080D0498 +_0803D106: + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803D12C + .align 2, 0 +_0803D118: .4byte gUnk_080D0498 +_0803D11C: + ldr r0, _0803D130 @ =gUnk_080D04A0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803D12C: + pop {r4, pc} + .align 2, 0 +_0803D130: .4byte gUnk_080D04A0 + + thumb_func_start sub_0803D134 +sub_0803D134: @ 0x0803D134 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + beq _0803D146 + bl sub_0805E780 +_0803D146: + adds r0, r5, #0 + bl sub_0804A720 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _0803D158 + b _0803D25A +_0803D158: + ldr r0, _0803D25C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x41 + bhi _0803D25A + movs r0, #0 + bl sub_0807CD8C + movs r2, #0 + movs r0, #3 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0xff + strb r0, [r1] + strb r2, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x76 + strb r2, [r0] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r5, #0x15] + adds r3, r5, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #7 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + str r2, [r5, #0x34] + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x86 + strb r2, [r0] + adds r1, #5 + movs r0, #0x30 + strb r0, [r1] + subs r1, #1 + subs r0, #0x31 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x87 + strb r2, [r0] + subs r0, #5 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + ldr r0, [r5, #0x2c] + str r0, [r5, #0x78] + ldr r0, [r5, #0x30] + str r0, [r5, #0x7c] + movs r0, #0x4a + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r5, [r4, #0x50] + str r4, [r5, #0x54] + movs r6, #0 +_0803D1E2: + movs r0, #0x54 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + str r5, [r4, #0x50] + adds r0, #0x79 + strb r6, [r0] + adds r6, #1 + cmp r6, #5 + ble _0803D1E2 + movs r6, #0 +_0803D1FA: + movs r0, #0x4a + movs r1, #3 + bl CreateEnemy + adds r4, r0, #0 + str r5, [r4, #0x50] + strb r6, [r4, #0xe] + adds r6, #1 + cmp r6, #3 + ble _0803D1FA + movs r6, #0 +_0803D210: + movs r0, #0x54 + movs r1, #1 + bl CreateEnemy + adds r4, r0, #0 + str r5, [r4, #0x50] + movs r0, #1 + adds r2, r6, #0 + ands r2, r0 + lsls r2, r2, #6 + ldrb r0, [r4, #0x18] + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + lsls r1, r6, #1 + ldr r0, _0803D260 @ =gUnk_080D04A8 + adds r1, r1, r0 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl PositionRelative + adds r6, #1 + cmp r6, #1 + ble _0803D210 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0803D25A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0803D25C: .4byte gUnk_03003DBC +_0803D260: .4byte gUnk_080D04A8 + + thumb_func_start sub_0803D264 +sub_0803D264: @ 0x0803D264 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803D318 + subs r0, #1 + strb r0, [r4, #0xe] + movs r7, #0xff + lsls r0, r0, #0x18 + lsrs r6, r0, #0x18 + cmp r6, #0 + beq _0803D27E + b _0803D400 +_0803D27E: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r1, [r5] + movs r0, #0x70 + ands r0, r1 + cmp r0, #0 + bne _0803D2E4 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #0 + bne _0803D2DE + adds r0, r4, #0 + bl sub_0803DD78 + adds r0, r4, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D2B0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r6, [r5] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _0803D2D6 +_0803D2B0: + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D2C4 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D2D6 +_0803D2C4: + bl sub_08000E50 + movs r1, #0x80 + ands r1, r0 + lsrs r1, r1, #3 + movs r0, #8 + orrs r1, r0 + strb r1, [r4, #0x15] + b _0803D400 +_0803D2D6: + ldrb r0, [r4, #0x15] + orrs r0, r7 + strb r0, [r4, #0x15] + b _0803D400 +_0803D2DE: + movs r0, #2 + strb r0, [r4, #0xe] + b _0803D400 +_0803D2E4: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + adds r1, r4, #0 + adds r1, #0x75 + strb r0, [r1] + strb r6, [r5] + movs r0, #0xc0 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r7 + strb r0, [r4, #0x15] + 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 r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D400 +_0803D318: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + movs r6, #0xff + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0803D3BA + adds r0, r4, #0 + bl sub_0803DEE0 + cmp r0, #1 + beq _0803D366 + cmp r0, #1 + blo _0803D344 + cmp r0, #2 + beq _0803D384 + cmp r0, #3 + beq _0803D374 + b _0803D3BA +_0803D344: + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #0xa0 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D3BA +_0803D366: + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + strb r5, [r4, #0xe] + b _0803D3B4 +_0803D374: + movs r0, #5 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + movs r0, #0x20 + strb r0, [r4, #0xf] + b _0803D3B4 +_0803D384: + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D3A2 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803D3B4 +_0803D3A2: + bl sub_08000E50 + movs r1, #0x80 + ands r1, r0 + lsrs r1, r1, #3 + movs r0, #8 + orrs r1, r0 + strb r1, [r4, #0x15] + b _0803D3BA +_0803D3B4: + ldrb r0, [r4, #0x15] + orrs r0, r6 + strb r0, [r4, #0x15] +_0803D3BA: + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #0 + bne _0803D400 + adds r2, r4, #0 + adds r2, #0x85 + ldrb r0, [r2] + adds r1, r0, #1 + strb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0803D3FA + movs r0, #0x30 + ands r0, r1 + cmp r0, #0x10 + beq _0803D3F4 + cmp r0, #0x10 + bgt _0803D3E6 + cmp r0, #0 + beq _0803D3EE + b _0803D3FA +_0803D3E6: + cmp r0, #0x20 + beq _0803D3F4 + cmp r0, #0x30 + bne _0803D3FA +_0803D3EE: + ldrh r0, [r4, #0x32] + adds r0, #1 + b _0803D3F8 +_0803D3F4: + ldrh r0, [r4, #0x32] + subs r0, #1 +_0803D3F8: + strh r0, [r4, #0x32] +_0803D3FA: + adds r0, r4, #0 + bl sub_080AEFB4 +_0803D400: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0803D408 +sub_0803D408: @ 0x0803D408 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #1 + beq _0803D458 + cmp r0, #1 + bgt _0803D420 + cmp r0, #0 + beq _0803D42A + b _0803D558 +_0803D420: + cmp r0, #2 + beq _0803D478 + cmp r0, #3 + beq _0803D4FC + b _0803D558 +_0803D42A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803D438 + b _0803D558 +_0803D438: + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + ldr r0, _0803D454 @ =0x0000019B + bl sub_080A3268 + b _0803D558 + .align 2, 0 +_0803D454: .4byte 0x0000019B +_0803D458: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D558 + movs r0, #2 + strb r0, [r2] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _0803D558 +_0803D478: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D558 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0803E028 + cmp r0, #0 + bne _0803D4D0 + bl sub_08000E50 + adds r5, r4, #0 + adds r5, #0x81 + ldrb r1, [r5] + adds r1, #1 + movs r2, #3 + ands r0, r2 + adds r1, r1, r0 + strb r1, [r5] + ldrb r0, [r5] + movs r1, #5 + bl __modsi3 + strb r0, [r5] + ldrb r1, [r5] + lsls r1, r1, #2 + ldr r0, _0803D4F4 @ =gUnk_080D04AC + adds r1, r1, r0 + ldr r2, _0803D4F8 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r3, [r2, #6] + adds r0, r0, r3 + adds r0, #0x10 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r0, #0x10 + strh r0, [r4, #0x32] +_0803D4D0: + 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, #0x20 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + movs r0, #0xf5 + bl sub_080A3268 + b _0803D558 + .align 2, 0 +_0803D4F4: .4byte gUnk_080D04AC +_0803D4F8: .4byte gUnk_03000BF0 +_0803D4FC: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D558 + 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 r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #4 + bls _0803D52E + ldr r1, _0803D544 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] +_0803D52E: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D548 + movs r0, #1 + strb r0, [r4, #0xc] + b _0803D54E + .align 2, 0 +_0803D544: .4byte gLinkEntity +_0803D548: + movs r0, #0 + strb r0, [r2] + movs r0, #0x10 +_0803D54E: + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803D558: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803D560 +sub_0803D560: @ 0x0803D560 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #2 + beq _0803D62A + cmp r0, #2 + bgt _0803D57C + cmp r0, #0 + beq _0803D5BC + cmp r0, #1 + beq _0803D5F8 + b _0803D650 +_0803D57C: + cmp r0, #0xfe + beq _0803D590 + cmp r0, #0xfe + bgt _0803D58A + cmp r0, #3 + beq _0803D646 + b _0803D650 +_0803D58A: + cmp r0, #0xff + beq _0803D598 + b _0803D650 +_0803D590: + movs r0, #0 + strb r0, [r2] + movs r0, #1 + b _0803D64E +_0803D598: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0803D5AC + ldr r0, [r4, #0x34] + ldr r1, _0803D5B8 @ =0xFFFFE000 + adds r0, r0, r1 + str r0, [r4, #0x34] +_0803D5AC: + ldrb r0, [r4, #0xe] + cmp r0, #2 + bne _0803D650 + movs r0, #0xfe + strb r0, [r2] + b _0803D650 + .align 2, 0 +_0803D5B8: .4byte 0xFFFFE000 +_0803D5BC: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D650 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + beq _0803D5E0 + movs r1, #0x14 +_0803D5E0: + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + adds r0, #1 + asrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, #2 + adds r1, r4, #0 + adds r1, #0x80 + strb r0, [r1] + b _0803D650 +_0803D5F8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D650 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803D620 + movs r0, #0xd8 + lsls r0, r0, #1 + bl sub_080A3268 +_0803D620: + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D650 +_0803D62A: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803D650 + movs r0, #3 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D650 +_0803D646: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] +_0803D64E: + strb r0, [r4, #0xe] +_0803D650: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_0803D658 +sub_0803D658: @ 0x0803D658 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803D68E + movs r2, #1 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + orrs r0, r3 + strb r0, [r1] + strb r2, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #0x10 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D6EE +_0803D68E: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0803D6EE + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + adds r5, r4, #0 + adds r5, #0x84 + ldrb r0, [r5] + cmp r0, #0xff + bne _0803D6C8 + ldr r1, _0803D6F8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + ldr r1, _0803D6FC @ =gUnk_080D04C0 + lsrs r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5] + movs r0, #0 + strb r0, [r4, #0xf] +_0803D6C8: + ldrb r0, [r4, #0xf] + cmp r0, #0xf + bhi _0803D6EE + ldrb r2, [r5] + adds r0, r4, #0 + movs r1, #0x1a + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0803D6EE + ldrb r0, [r4, #0xf] + strb r0, [r1, #0xf] + str r4, [r1, #0x50] + ldrh r0, [r4, #0x36] + strh r0, [r1, #0x36] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] +_0803D6EE: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0803D6F8: .4byte gLinkEntity +_0803D6FC: .4byte gUnk_080D04C0 + + thumb_func_start sub_0803D700 +sub_0803D700: @ 0x0803D700 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D720 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803D82E +_0803D720: + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + adds r6, r2, #0 + cmp r0, #1 + beq _0803D764 + cmp r0, #1 + bgt _0803D736 + cmp r0, #0 + beq _0803D744 + b _0803D73E +_0803D736: + cmp r0, #2 + beq _0803D78E + cmp r0, #3 + beq _0803D7FA +_0803D73E: + adds r5, r4, #0 + adds r5, #0x87 + b _0803D81C +_0803D744: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + bne _0803D81C + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _0803D81C +_0803D764: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + beq _0803D81C + movs r0, #2 + strb r0, [r2] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r4, #0xf] + movs r0, #0xf4 + bl sub_080A3268 + b _0803D81C +_0803D78E: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r0, #0 + bne _0803D81C + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + bls _0803D7E4 + ldrb r0, [r5] + cmp r0, #3 + bhi _0803D7E4 + bl sub_08000E50 + movs r1, #0x10 + ands r1, r0 + cmp r1, #0 + beq _0803D7E4 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x40 + strb r0, [r4, #0xf] + ldr r1, _0803D7E0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + movs r1, #0x10 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + b _0803D81A + .align 2, 0 +_0803D7E0: .4byte gLinkEntity +_0803D7E4: + ldrb r0, [r6] + adds r0, #1 + movs r1, #0 + strb r0, [r6] + strb r1, [r5] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_080042AC + b _0803D81C +_0803D7FA: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r5, r4, #0 + adds r5, #0x87 + cmp r1, #0 + bne _0803D81C + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + orrs r0, r3 +_0803D81A: + strb r0, [r4, #0x15] +_0803D81C: + ldrb r0, [r5] + cmp r0, #0 + beq _0803D828 + adds r0, r4, #0 + bl sub_080AEFB4 +_0803D828: + adds r0, r4, #0 + bl sub_080042B8 +_0803D82E: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803D830 +sub_0803D830: @ 0x0803D830 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803D844 + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xe] + b _0803D8F4 +_0803D844: + adds r4, r5, #0 + adds r4, #0x74 + ldrb r0, [r4] + cmp r0, #1 + beq _0803D870 + cmp r0, #1 + bgt _0803D858 + cmp r0, #0 + beq _0803D862 + b _0803D8EE +_0803D858: + cmp r0, #2 + beq _0803D8C2 + cmp r0, #3 + beq _0803D8CE + b _0803D8EE +_0803D862: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0803D8EE + movs r0, #1 + strb r0, [r4] + movs r0, #0x70 + b _0803D8EC +_0803D870: + ldrb r0, [r5, #0xe] + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803D8B0 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + movs r0, #0xa8 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r5, #0 + movs r1, #0x18 + movs r2, #0 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + beq _0803D8EE + ldr r3, _0803D8AC @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + str r5, [r4, #0x50] + b _0803D8EE + .align 2, 0 +_0803D8AC: .4byte 0xFFF00000 +_0803D8B0: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x40 + bne _0803D8EE + movs r0, #0xcb + lsls r0, r0, #1 + bl sub_080A3268 + b _0803D8EE +_0803D8C2: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _0803D8EE + movs r0, #0 + strb r0, [r5, #0xf] + b _0803D8EE +_0803D8CE: + ldrb r0, [r5, #0xf] + cmp r0, #0 + bne _0803D8DE + movs r0, #1 + strb r0, [r5, #0xf] + ldr r0, _0803D8F8 @ =0x0000014F + bl sub_080A3268 +_0803D8DE: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0803D8EE + movs r1, #0 + movs r0, #1 + strb r0, [r5, #0xc] + strb r1, [r4] +_0803D8EC: + strb r0, [r5, #0xe] +_0803D8EE: + adds r0, r5, #0 + bl sub_080042B8 +_0803D8F4: + pop {r4, r5, pc} + .align 2, 0 +_0803D8F8: .4byte 0x0000014F + + thumb_func_start sub_0803D8FC +sub_0803D8FC: @ 0x0803D8FC + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _0803D968 + subs r1, r0, #1 + strb r1, [r2, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803D918 + movs r0, #1 + bl sub_0807CD10 + b _0803D968 +_0803D918: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803D968 + adds r0, r2, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _0803D968 + bl sub_08000E50 + ldr r1, _0803D96C @ =0x00003F3F + ands r0, r1 + movs r3, #0xff + adds r1, r0, #0 + ands r1, r3 + ldr r5, _0803D970 @ =0x0000FFE0 + adds r2, r5, #0 + adds r1, r2, r1 + ldrh r5, [r4, #0x2e] + adds r1, r1, r5 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] +_0803D968: + pop {r4, r5, pc} + .align 2, 0 +_0803D96C: .4byte 0x00003F3F +_0803D970: .4byte 0x0000FFE0 + + thumb_func_start sub_0803D974 +sub_0803D974: @ 0x0803D974 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r5, r4, #0 + adds r5, #0x74 + strb r1, [r5] + adds r2, r4, #0 + adds r2, #0x75 + strb r0, [r2] + strb r1, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + movs r0, #0x4a + movs r1, #2 + bl CreateEnemy + str r4, [r0, #0x50] + ldr r1, [r4, #0x50] + str r1, [r0, #0x54] + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080042AC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803D9BC +sub_0803D9BC: @ 0x0803D9BC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r2, r4, #0 + adds r2, #0x74 + ldrb r0, [r2] + cmp r0, #0 + bne _0803D9E2 + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803DA44 + movs r0, #1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x30 + b _0803D9F6 +_0803D9E2: + adds r0, r5, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803DA02 + movs r0, #0 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2f +_0803D9F6: + strb r0, [r1] + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC + b _0803DA44 +_0803DA02: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803DA2E + adds r0, r4, #0 + adds r0, #0x3d + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803DA2E + adds r0, r5, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r0, [r2] + adds r2, r5, #0 + adds r2, #0x41 + strb r0, [r2] +_0803DA2E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0803DA44 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DA44: + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DA60 + ldrb r0, [r5, #0xc] + cmp r0, #2 + beq _0803DA72 + movs r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _0803DA70 +_0803DA60: + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _0803DA72 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_0803DA70: + strb r0, [r4, #0x10] +_0803DA72: + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r4, #0x50] + movs r3, #0x80 + lsls r3, r3, #9 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803DAA8 +sub_0803DAA8: @ 0x0803DAA8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + movs r3, #0 + movs r2, #1 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r2, [r1] + adds r1, #1 + strb r3, [r1] + adds r2, r4, #0 + adds r2, #0x63 + movs r1, #0xfe + strb r1, [r2] + movs r1, #0xff + strb r1, [r4, #0x15] + movs r3, #0x80 + lsls r3, r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DAE4 +sub_0803DAE4: @ 0x0803DAE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r2, [r0] + cmp r2, #0 + bne _0803DB3E + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DB00 + strb r2, [r1] +_0803DB00: + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0x15] + cmp r1, #0xff + beq _0803DB28 + adds r2, r4, #0 + adds r2, #0x75 + ldrb r0, [r2] + cmp r0, #0 + bne _0803DB16 + movs r0, #1 + strb r0, [r2] +_0803DB16: + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0803DB54 + strb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r0, r4, #0 + bl sub_080042AC + b _0803DB54 +_0803DB28: + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DB54 + strb r2, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0803DB54 +_0803DB3E: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DB54 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DB54: + ldrb r1, [r5, #0x18] + lsls r1, r1, #0x1e + lsrs r1, r1, #0x1e + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + adds r0, r5, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r5, #0x50] + movs r3, #0x80 + lsls r3, r3, #0xa + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803DB88 +sub_0803DB88: @ 0x0803DB88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x74 + strb r1, [r2] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803DC0C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DBB8 +sub_0803DBB8: @ 0x0803DBB8 + push {r4, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + ldrb r0, [r2, #0x15] + cmp r0, #0xff + beq _0803DBE8 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _0803DBD2 + movs r0, #1 + strb r0, [r1] +_0803DBD2: + ldrb r0, [r2, #0x15] + lsls r1, r0, #0x18 + ldrb r2, [r4, #0x15] + cmp r0, r2 + beq _0803DC02 + strb r0, [r4, #0x15] + lsrs r1, r1, #0x1b + adds r0, r4, #0 + bl sub_080042AC + b _0803DC02 +_0803DBE8: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _0803DC02 + movs r0, #0 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_0803DC02: + adds r0, r4, #0 + bl sub_0803DC0C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803DC0C +sub_0803DC0C: @ 0x0803DC0C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r5, [r4, #0xe] + lsls r5, r5, #1 + ldr r1, _0803DC54 @ =gUnk_080D04C8 + adds r5, r5, r1 + ldrb r2, [r0, #0x18] + lsls r2, r2, #0x1e + lsrs r2, r2, #0x1e + ldrb r3, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r4, #0x18] + adds r1, r0, #0 + adds r1, #0x62 + ldrb r1, [r1] + adds r2, r4, #0 + adds r2, #0x62 + strb r1, [r2] + movs r2, #0 + ldrsb r2, [r5, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r5, r3] + adds r3, #1 + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0803DC54: .4byte gUnk_080D04C8 + + thumb_func_start sub_0803DC58 +sub_0803DC58: @ 0x0803DC58 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x30 + beq _0803DC66 + b _0803DD74 +_0803DC66: + ldr r5, [r4, #0x50] + adds r2, r4, #0 + adds r2, #0x77 + movs r7, #0 + strb r7, [r2] + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + mov ip, r0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + beq _0803DD20 + ldr r0, _0803DCE4 @ =gUnk_080D04D0 + adds r3, r5, #0 + adds r3, #0x86 + ldrb r2, [r3] + adds r0, r2, r0 + adds r1, r4, #0 + adds r1, #0x45 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _0803DCFA + adds r0, r2, #1 + strb r0, [r3] + movs r3, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _0803DCF0 + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + movs r0, #7 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0x10] + ands r1, r0 + strb r1, [r5, #0x10] + mov r2, ip + strb r2, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x62 + strb r7, [r0] + ldrb r0, [r5, #0x15] + orrs r0, r3 + strb r0, [r5, #0x15] + strb r7, [r4, #0xe] + ldr r0, _0803DCE8 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0803DCEC @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + b _0803DD74 + .align 2, 0 +_0803DCE4: .4byte gUnk_080D04D0 +_0803DCE8: .4byte 0x80100000 +_0803DCEC: .4byte gUnk_02033A90 +_0803DCF0: + movs r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r6] + orrs r0, r3 + strb r0, [r6] +_0803DCFA: + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0803DD20 + ldr r0, _0803DD50 @ =0x00000127 + bl sub_080A3268 + movs r0, #0xc + movs r1, #1 + bl sub_08080964 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0803DD26 + movs r0, #0x48 + strb r0, [r4, #0xe] +_0803DD20: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803DD74 +_0803DD26: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803DD74 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2f + strb r0, [r1] + adds r1, #0x35 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r6] + cmp r0, #0 + bne _0803DD54 + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0xf0 + b _0803DD64 + .align 2, 0 +_0803DD50: .4byte 0x00000127 +_0803DD54: + adds r1, r5, #0 + adds r1, #0x74 + movs r0, #0x70 + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r0, [r1] + orrs r0, r2 +_0803DD64: + strb r0, [r1] + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0803DD74: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803DD78 +sub_0803DD78: @ 0x0803DD78 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x7c + ands r1, r0 + lsrs r2, r1, #2 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + beq _0803DDFE + cmp r0, #1 + bgt _0803DD9A + cmp r0, #0 + beq _0803DDA0 + b _0803DDB6 +_0803DD9A: + cmp r0, #2 + beq _0803DE5C + b _0803DDB6 +_0803DDA0: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r1, [r0] + cmp r1, #0 + bne _0803DDBC + subs r0, #0xb + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x50 + strb r0, [r1] +_0803DDB6: + adds r5, r4, #0 + adds r5, #0x83 + b _0803DED0 +_0803DDBC: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bls _0803DDCA + b _0803DED0 +_0803DDCA: + lsls r0, r1, #2 + ldr r1, _0803DDD4 @ =_0803DDD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DDD4: .4byte _0803DDD8 +_0803DDD8: @ jump table + .4byte _0803DDF0 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DDF0 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DDF0 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DDF0: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #0x50 + b _0803DECE +_0803DDFE: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bhi _0803DED0 + lsls r0, r1, #2 + ldr r1, _0803DE14 @ =_0803DE18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DE14: .4byte _0803DE18 +_0803DE18: @ jump table + .4byte _0803DE98 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DE30 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DE46 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DE30: + movs r1, #8 + ands r1, r2 + cmp r1, #0 + bne _0803DEC2 + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x50 + b _0803DECE +_0803DE46: + movs r0, #8 + ands r2, r0 + cmp r2, #0 + beq _0803DE98 + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #0x50 + b _0803DECE +_0803DE5C: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #5 + bhi _0803DED0 + lsls r0, r1, #2 + ldr r1, _0803DE74 @ =_0803DE78 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DE74: .4byte _0803DE78 +_0803DE78: @ jump table + .4byte _0803DE98 @ case 0 + .4byte _0803DEC2 @ case 1 + .4byte _0803DE90 @ case 2 + .4byte _0803DEC2 @ case 3 + .4byte _0803DEA6 @ case 4 + .4byte _0803DEC2 @ case 5 +_0803DE90: + movs r0, #0xf + ands r2, r0 + cmp r2, #2 + bls _0803DEC2 +_0803DE98: + adds r0, r4, #0 + adds r0, #0x75 + movs r1, #1 + strb r1, [r0] + adds r0, #2 + strb r1, [r0] + b _0803DED0 +_0803DEA6: + cmp r2, #9 + bls _0803DEC2 + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #2 + strb r0, [r1] + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #2 + adds r1, r4, #0 + adds r1, #0x77 + b _0803DECE +_0803DEC2: + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0 + strb r0, [r1] + adds r1, #2 + movs r0, #1 +_0803DECE: + strb r0, [r1] +_0803DED0: + ldrb r0, [r5] + adds r0, #1 + movs r1, #6 + bl __modsi3 + strb r0, [r5] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803DEE0 +sub_0803DEE0: @ 0x0803DEE0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #2 + bl sub_08000E50 + movs r1, #0xf8 + ands r1, r0 + lsrs r2, r1, #3 + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + beq _0803DFB8 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + beq _0803DF28 + cmp r0, #1 + bgt _0803DF0E + cmp r0, #0 + beq _0803DF14 + b _0803DFB8 +_0803DF0E: + cmp r0, #2 + beq _0803DF68 + b _0803DFB8 +_0803DF14: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + movs r5, #1 + ands r5, r1 + adds r1, #1 + movs r2, #3 + ands r1, r2 + strb r1, [r0] + b _0803DFB8 +_0803DF28: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #4 + bhi _0803DFAC + lsls r0, r1, #2 + ldr r1, _0803DF40 @ =_0803DF44 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DF40: .4byte _0803DF44 +_0803DF44: @ jump table + .4byte _0803DF9E @ case 0 + .4byte _0803DF58 @ case 1 + .4byte _0803DF9E @ case 2 + .4byte _0803DF58 @ case 3 + .4byte _0803DF5C @ case 4 +_0803DF58: + movs r5, #1 + b _0803DFAC +_0803DF5C: + movs r0, #8 + ands r2, r0 + movs r5, #0 + cmp r2, #0 + beq _0803DFAC + b _0803DF9E +_0803DF68: + adds r0, r4, #0 + adds r0, #0x82 + ldrb r1, [r0] + adds r4, r0, #0 + cmp r1, #4 + bhi _0803DFAC + lsls r0, r1, #2 + ldr r1, _0803DF80 @ =_0803DF84 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803DF80: .4byte _0803DF84 +_0803DF84: @ jump table + .4byte _0803DF9E @ case 0 + .4byte _0803DF98 @ case 1 + .4byte _0803DFA2 @ case 2 + .4byte _0803DF9E @ case 3 + .4byte _0803DFAA @ case 4 +_0803DF98: + movs r5, #0 + cmp r2, #5 + bls _0803DFAC +_0803DF9E: + movs r5, #3 + b _0803DFAC +_0803DFA2: + movs r5, #0 + cmp r2, #9 + bhi _0803DFAC + b _0803DF9E +_0803DFAA: + movs r5, #0 +_0803DFAC: + ldrb r0, [r4] + adds r0, #1 + movs r1, #5 + bl __modsi3 + strb r0, [r4] +_0803DFB8: + adds r0, r5, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0803DFBC +sub_0803DFBC: @ 0x0803DFBC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803DFCE + ldr r0, [r4, #0x2c] + str r0, [r4, #0x78] + ldr r0, [r4, #0x30] + str r0, [r4, #0x7c] +_0803DFCE: + adds r5, r4, #0 + adds r5, #0x76 + ldrb r0, [r5] + cmp r0, #0 + bne _0803DFFC + ldrb r0, [r4, #0x15] + cmp r0, #0xff + beq _0803E000 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803E000 + adds r0, r4, #0 + bl sub_08049EE4 + movs r1, #0x10 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + b _0803DFFE +_0803DFFC: + subs r0, #1 +_0803DFFE: + strb r0, [r5] +_0803E000: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E022 + ldrb r0, [r4, #0x14] + adds r0, #1 + movs r1, #3 + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, _0803E024 @ =gUnk_080D04D3 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x62 + strb r1, [r0] +_0803E022: + pop {r4, r5, pc} + .align 2, 0 +_0803E024: .4byte gUnk_080D04D3 + + thumb_func_start sub_0803E028 +sub_0803E028: @ 0x0803E028 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #2 + beq _0803E046 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E046 + movs r0, #0 + b _0803E082 +_0803E046: + adds r0, r4, #0 + adds r0, #0x77 + ldrb r0, [r0] + cmp r0, #1 + bne _0803E080 + ldr r2, _0803E084 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + adds r1, r0, #0 + adds r1, #0x58 + ldr r0, _0803E088 @ =gLinkEntity + movs r3, #0x2e + ldrsh r0, [r0, r3] + cmp r1, r0 + bgt _0803E080 + ldrh r2, [r2, #8] + adds r1, r2, #0 + adds r1, #0x58 + cmp r1, r0 + bgt _0803E080 + adds r1, r2, #0 + adds r1, #0xf8 + cmp r1, r0 + blt _0803E080 + adds r1, r4, #0 + adds r1, #0x81 + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + movs r5, #1 +_0803E080: + adds r0, r5, #0 +_0803E082: + pop {r4, r5, pc} + .align 2, 0 +_0803E084: .4byte gUnk_03000BF0 +_0803E088: .4byte gLinkEntity + + thumb_func_start sub_0803E08C +sub_0803E08C: @ 0x0803E08C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0803E4A0 + cmp r0, #0 + beq _0803E0AA + ldrb r0, [r5, #0x10] + movs r1, #0x7f + ands r1, r0 + movs r0, #0 + strb r1, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x45 + strb r0, [r1] + str r0, [r5, #0x50] +_0803E0AA: + ldr r4, _0803E0C0 @ =gUnk_080D0648 + 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 + pop {r4, r5, pc} + .align 2, 0 +_0803E0C0: .4byte gUnk_080D0648 + + thumb_func_start sub_0803E0C4 +sub_0803E0C4: @ 0x0803E0C4 + push {lr} + ldr r2, _0803E0D8 @ =gUnk_080D0660 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803E0D8: .4byte gUnk_080D0660 + + thumb_func_start sub_0803E0DC +sub_0803E0DC: @ 0x0803E0DC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _0803E16C + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0803E158 + movs r0, #5 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r6, #0x7f + adds r0, r6, #0 + ands 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 + strb r0, [r2] + ldr r3, _0803E154 @ =gLinkEntity + ldrb r1, [r3, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r2, [r5, #0x1b] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r4, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r4 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r5, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r3, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r3, #0x19] + adds r0, r5, #0 + bl sub_0803E444 + movs r0, #2 + bl sub_08078A90 + ldr r2, [r5, #0x50] + cmp r2, #0 + beq _0803E16C + ldrb r1, [r2, #0x10] + adds r0, r6, #0 + ands r0, r1 + b _0803E16A + .align 2, 0 +_0803E154: .4byte gLinkEntity +_0803E158: + ldr r2, _0803E178 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _0803E17C @ =0xFFFFFEFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r2, _0803E180 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 +_0803E16A: + strb r0, [r2, #0x10] +_0803E16C: + ldr r1, _0803E184 @ =gUnk_080D0648 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_0803E178: .4byte gUnk_03003F80 +_0803E17C: .4byte 0xFFFFFEFF +_0803E180: .4byte gLinkEntity +_0803E184: .4byte gUnk_080D0648 + + thumb_func_start sub_0803E188 +sub_0803E188: @ 0x0803E188 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x50] + cmp r2, #0 + beq _0803E19C + ldrb r0, [r2, #0xf] + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0xf] + str r1, [r3, #0x50] +_0803E19C: + adds r0, r3, #0 + bl sub_0804A7D4 + pop {pc} + + thumb_func_start nullsub_19 +nullsub_19: @ 0x0803E1A4 + bx lr + .align 2, 0 + + thumb_func_start sub_0803E1A8 +sub_0803E1A8: @ 0x0803E1A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _0803E1F8 + movs r0, #0x4b + movs r1, #1 + bl CreateEnemy + cmp r0, #0 + beq _0803E250 + str r5, [r0, #0x50] + str r0, [r5, #0x54] + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _0803E1D8 + movs r0, #1 + strb r0, [r5, #0xc] + ldr r0, _0803E1D4 @ =0x0000FFE8 + strh r0, [r5, #0x36] + b _0803E1E8 + .align 2, 0 +_0803E1D4: .4byte 0x0000FFE8 +_0803E1D8: + movs r0, #9 + strb r0, [r5, #0xc] + ldr r0, _0803E1F4 @ =0x0000FF80 + strh r0, [r5, #0x36] + adds r1, r5, #0 + adds r1, #0x3b + movs r0, #1 + strb r0, [r1] +_0803E1E8: + adds r0, r5, #0 + movs r1, #0 + bl sub_08004260 + b _0803E250 + .align 2, 0 +_0803E1F4: .4byte 0x0000FF80 +_0803E1F8: + movs r0, #8 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r1, r5, #0 + adds r1, #0x63 + movs r0, #1 + strb r0, [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 r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r5, #0x50] + ldr r3, _0803E254 @ =0xFFFF0000 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r0, r5, #0 + movs r1, #1 + bl sub_08004260 +_0803E250: + pop {r4, r5, pc} + .align 2, 0 +_0803E254: .4byte 0xFFFF0000 + + thumb_func_start sub_0803E258 +sub_0803E258: @ 0x0803E258 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E480 + adds r0, r4, #0 + movs r1, #0 + movs r2, #8 + bl sub_08049F64 + cmp r0, #0 + beq _0803E280 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_08004260 + b _0803E29C +_0803E280: + ldr r0, _0803E2A4 @ =gUnk_020000B0 + ldr r1, [r0] + cmp r1, #0 + beq _0803E29C + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + adds r0, r4, #0 + bl sub_0806F69C +_0803E29C: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E2A4: .4byte gUnk_020000B0 + + thumb_func_start sub_0803E2A8 +sub_0803E2A8: @ 0x0803E2A8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _0803E2B8 + subs r0, #1 + strb r0, [r1, #0xe] + b _0803E2C8 +_0803E2B8: + ldrh r0, [r1, #0x36] + adds r0, #1 + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E2C8 + movs r0, #3 + strb r0, [r1, #0xc] +_0803E2C8: + adds r0, r1, #0 + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0803E2D0 +sub_0803E2D0: @ 0x0803E2D0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0803E312 + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x18 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0803E30C + movs r0, #4 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0xf + ands r0, r1 + adds r0, #0xf + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #1 + bl sub_08004260 +_0803E30C: + adds r0, r4, #0 + bl sub_08004274 +_0803E312: + pop {r4, pc} + + thumb_func_start sub_0803E314 +sub_0803E314: @ 0x0803E314 + 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 _0803E332 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _0803E33C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + strb r0, [r4, #0x15] +_0803E332: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E33C: .4byte gLinkEntity + + thumb_func_start sub_0803E340 +sub_0803E340: @ 0x0803E340 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E444 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803E352 + subs r0, #1 + b _0803E36A +_0803E352: + ldrh r0, [r4, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x18 + rsbs r1, r1, #0 + cmp r0, r1 + bgt _0803E36C + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x14 +_0803E36A: + strb r0, [r4, #0xe] +_0803E36C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E370 +sub_0803E370: @ 0x0803E370 + 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 _0803E38E + movs r0, #7 + strb r0, [r1, #0xc] + movs r0, #0x10 + strb r0, [r1, #0x15] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r1, #0x24] +_0803E38E: + adds r0, r1, #0 + bl sub_0803E444 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E398 +sub_0803E398: @ 0x0803E398 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803E444 + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_0803E4D8 + ldr r1, _0803E3CC @ =gUnk_03000BF0 + ldrh r0, [r1, #8] + ldrh r1, [r1, #0x20] + adds r0, r0, r1 + subs r0, #0x10 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bgt _0803E3C8 + bl sub_0805E5A8 + ldr r0, _0803E3D0 @ =gUnk_0813AB94 + bl sub_08080840 +_0803E3C8: + pop {r4, pc} + .align 2, 0 +_0803E3CC: .4byte gUnk_03000BF0 +_0803E3D0: .4byte gUnk_0813AB94 + + thumb_func_start sub_0803E3D4 +sub_0803E3D4: @ 0x0803E3D4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0803E3E4 + bl sub_0805E780 +_0803E3E4: + ldr r0, [r4, #0x50] + ldr r3, _0803E3F8 @ =0xFFFF0000 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0803E3F8: .4byte 0xFFFF0000 + + thumb_func_start sub_0803E3FC +sub_0803E3FC: @ 0x0803E3FC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803E438 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bge _0803E43C + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #2 + beq _0803E42E + movs r0, #0 + strb r0, [r4, #0xe] + ldr r0, [r4, #0x54] + movs r1, #2 + bl sub_08004260 +_0803E42E: + adds r0, r4, #0 + bl sub_0803E2A8 + b _0803E442 + .align 2, 0 +_0803E438: .4byte gLinkEntity +_0803E43C: + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x36] +_0803E442: + pop {r4, pc} + + thumb_func_start sub_0803E444 +sub_0803E444: @ 0x0803E444 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + ldr r2, _0803E478 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r1, [r4, #0x4c] + movs r3, #2 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r2, #0 + bl sub_0806FA90 + ldr r1, _0803E47C @ =gLinkEntity + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #0xe + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_0803E478: .4byte gUnk_03003F80 +_0803E47C: .4byte gLinkEntity + + thumb_func_start sub_0803E480 +sub_0803E480: @ 0x0803E480 + push {lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x78 + ldrh r1, [r2] + movs r0, #0x96 + lsls r0, r0, #3 + cmp r1, r0 + bls _0803E49A + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + b _0803E49E +_0803E49A: + adds r0, r1, #1 + strh r0, [r2] +_0803E49E: + pop {pc} + + thumb_func_start sub_0803E4A0 +sub_0803E4A0: @ 0x0803E4A0 + push {lr} + adds r1, r0, #0 + ldr r0, _0803E4B8 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0803E4C6 + ldr r1, [r1, #0x50] + cmp r1, #0 + bne _0803E4BC + movs r0, #0 + b _0803E4D6 + .align 2, 0 +_0803E4B8: .4byte gUnk_030010A0 +_0803E4BC: + adds r0, r1, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E4CA +_0803E4C6: + movs r0, #1 + b _0803E4D6 +_0803E4CA: + movs r2, #0 + ldr r0, [r1, #4] + cmp r0, #0 + bne _0803E4D4 + movs r2, #1 +_0803E4D4: + adds r0, r2, #0 +_0803E4D6: + pop {pc} + + thumb_func_start sub_0803E4D8 +sub_0803E4D8: @ 0x0803E4D8 + push {r4, r5, lr} + movs r2, #0x2e + ldrsh r1, [r0, r2] + ldr r3, _0803E51C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r4, r1, #4 + movs r2, #0x3f + ands r4, r2 + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldrh r1, [r3, #8] + subs r1, #8 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _0803E520 @ =gLinkEntity + adds r5, r0, #0 + adds r5, #0x38 + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080002E0 + cmp r0, #0xff + beq _0803E518 + ldr r0, _0803E524 @ =0x00004074 + ldrb r2, [r5] + adds r1, r4, #0 + bl sub_0800015E +_0803E518: + pop {r4, r5, pc} + .align 2, 0 +_0803E51C: .4byte gUnk_03000BF0 +_0803E520: .4byte gLinkEntity +_0803E524: .4byte 0x00004074 + + thumb_func_start sub_0803E528 +sub_0803E528: @ 0x0803E528 + push {lr} + ldr r1, _0803E534 @ =gUnk_080D06E0 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0803E534: .4byte gUnk_080D06E0 + + thumb_func_start sub_0803E538 +sub_0803E538: @ 0x0803E538 + push {lr} + ldr r2, _0803E54C @ =gUnk_080D06F8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803E54C: .4byte gUnk_080D06F8 + + thumb_func_start sub_0803E550 +sub_0803E550: @ 0x0803E550 + push {lr} + ldr r1, _0803E55C @ =gUnk_080D06E0 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_0803E55C: .4byte gUnk_080D06E0 + + thumb_func_start sub_0803E560 +sub_0803E560: @ 0x0803E560 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_0803E568 +sub_0803E568: @ 0x0803E568 + adds r0, r4, #0 + bl sub_0803E538 + pop {r4, pc} + + thumb_func_start sub_0803E570 +sub_0803E570: @ 0x0803E570 + push {lr} + movs r1, #0xff + movs r2, #0x57 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start nullsub_20 +nullsub_20: @ 0x0803E57C + bx lr + .align 2, 0 + + thumb_func_start sub_0803E580 +sub_0803E580: @ 0x0803E580 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0804A720 + adds r0, r5, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803E5E4 + str r5, [r0, #0x50] + str r0, [r5, #0x54] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + movs r4, #0 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x7b + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x7e + movs r0, #0x20 + strb r0, [r1] + adds r1, #1 + movs r0, #0xfe + strb r0, [r1] + ldrb r1, [r5, #0x14] + lsls r1, r1, #2 + adds r0, r5, #0 + bl sub_080042AC + adds r0, r5, #0 + bl sub_0803E86C +_0803E5E4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803E5E8 +sub_0803E5E8: @ 0x0803E5E8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + bl sub_0803E9D4 + cmp r0, #0 + bne _0803E61A + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E61A + adds r0, r4, #0 + bl sub_0803E8CC +_0803E61A: + pop {r4, pc} + + thumb_func_start sub_0803E61C +sub_0803E61C: @ 0x0803E61C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + bl sub_0803E9D4 + cmp r0, #0 + bne _0803E66A + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803E654 + adds r0, r4, #0 + bl sub_080AEF88 + cmp r0, #0 + bne _0803E654 + adds r0, r4, #0 + bl sub_0803E86C + b _0803E66A +_0803E654: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803E66A + adds r0, r4, #0 + bl sub_0803E92C +_0803E66A: + pop {r4, pc} + + thumb_func_start sub_0803E66C +sub_0803E66C: @ 0x0803E66C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x21 + bhi _0803E68E + adds r0, #1 + strb r0, [r1] +_0803E68E: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803E6A4 + adds r0, r4, #0 + bl sub_0803EA64 + cmp r0, #0 + bne _0803E6B0 +_0803E6A4: + movs r0, #4 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #0 + strb r0, [r1] +_0803E6B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E6B4 +sub_0803E6B4: @ 0x0803E6B4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x20 + bls _0803E6D8 + subs r0, #1 + strb r0, [r1] + b _0803E6DE +_0803E6D8: + adds r0, r4, #0 + bl sub_0803E86C +_0803E6DE: + pop {r4, pc} + + thumb_func_start sub_0803E6E0 +sub_0803E6E0: @ 0x0803E6E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xc + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _0803E718 + movs r0, #0 + strb r0, [r1] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #0x20 + adds r0, r4, #0 + bl sub_080042AC +_0803E718: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E71C +sub_0803E71C: @ 0x0803E71C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + bne _0803E756 + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xe] + ldr r1, _0803E758 @ =gUnk_080D0724 + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x7c + strb r1, [r0] + subs r0, #1 + strb r3, [r0] + adds r1, r2, #0 + adds r1, #0x7f + movs r0, #0xf6 + strb r0, [r1] + adds r0, #0x65 + bl sub_08004488 +_0803E756: + pop {pc} + .align 2, 0 +_0803E758: .4byte gUnk_080D0724 + + thumb_func_start sub_0803E75C +sub_0803E75C: @ 0x0803E75C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803E774 + adds r0, r2, #0 + bl sub_080042B8 + b _0803E7B0 +_0803E774: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + adds r1, r2, #0 + adds r1, #0x7f + cmp r0, #0 + bne _0803E78E + movs r0, #2 + strb r0, [r2, #0xe] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0803E78E: + ldrb r0, [r1] + cmp r0, #0 + beq _0803E7A0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + b _0803E7B0 +_0803E7A0: + movs r0, #8 + strb r0, [r2, #0xc] + movs r0, #0x1e + strb r0, [r2, #0xe] + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803E7B0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E7B4 +sub_0803E7B4: @ 0x0803E7B4 + 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 _0803E7C8 + movs r0, #9 + strb r0, [r1, #0xc] +_0803E7C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E7CC +sub_0803E7CC: @ 0x0803E7CC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0803E806 + movs r0, #0xa + strb r0, [r2, #0xc] + movs r0, #0x5a + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + lsls r0, r0, #3 + strb r0, [r2, #0x15] + subs r1, #2 + movs r0, #0 + strb r0, [r1] + adds r1, #3 + movs r0, #0xfe + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803E814 +_0803E806: + cmp r0, #0x12 + bhi _0803E814 + ldr r2, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0803E814: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803E818 +sub_0803E818: @ 0x0803E818 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803E840 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803E868 + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803E868 +_0803E840: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1f + bls _0803E868 + adds r0, r4, #0 + bl sub_0803E86C +_0803E868: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803E86C +sub_0803E86C: @ 0x0803E86C + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803E898 + adds r0, r4, #0 + movs r1, #0x50 + bl sub_0803EAD0 + cmp r0, #0 + beq _0803E898 + ldr r0, _0803E8C4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] +_0803E898: + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _0803E8C8 @ =gUnk_080D0728 + movs r1, #3 + 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, #4 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + pop {r4, pc} + .align 2, 0 +_0803E8C4: .4byte gUnk_020000B0 +_0803E8C8: .4byte gUnk_080D0728 + + thumb_func_start sub_0803E8CC +sub_0803E8CC: @ 0x0803E8CC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0803E8F4 + movs r0, #3 + ands r0, r5 + cmp r0, #0 + beq _0803E8F4 + adds r0, r4, #0 + bl sub_08049EE4 + adds r0, #4 + movs r1, #0x18 + b _0803E8F8 +_0803E8F4: + movs r1, #0x18 + adds r0, r5, #0 +_0803E8F8: + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0xc] + ldr r2, _0803E928 @ =gUnk_080D0730 + lsrs r0, r5, #0x10 + movs r1, #3 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x78 + strh r1, [r0] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + pop {r4, r5, pc} + .align 2, 0 +_0803E928: .4byte gUnk_080D0730 + + thumb_func_start sub_0803E92C +sub_0803E92C: @ 0x0803E92C + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0803E944 + adds r0, r4, #0 + bl sub_0803E86C + b _0803E94A +_0803E944: + adds r0, r4, #0 + bl sub_0803E8CC +_0803E94A: + pop {r4, pc} + + thumb_func_start sub_0803E94C +sub_0803E94C: @ 0x0803E94C + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r6, r1, #0 + ldrb r2, [r3, #0x15] + adds r0, r2, #4 + movs r1, #0x18 + ands r0, r1 + asrs r4, r0, #3 + adds r0, r3, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + bne _0803E988 + movs r0, #7 + ands r0, r2 + ldrb r5, [r3, #0x14] + cmp r0, #4 + bne _0803E984 + lsrs r0, r2, #3 + subs r0, r5, r0 + movs r1, #3 + ands r0, r1 + cmp r0, #1 + ble _0803E9A2 +_0803E984: + cmp r4, r5 + beq _0803E9A2 +_0803E988: + strb r4, [r3, #0x14] + adds r0, r3, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r0, r6, r0 + lsls r1, r4, #2 + adds r4, r0, r1 + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_080042AC +_0803E9A2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803E9A4 +sub_0803E9A4: @ 0x0803E9A4 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x7c + ldrb r0, [r0] + adds r0, #0x20 + movs r1, #0xff + ands r0, r1 + asrs r4, r0, #6 + adds r3, r2, #0 + adds r3, #0x58 + ldrb r1, [r3] + movs r0, #3 + ands r0, r1 + cmp r0, r4 + beq _0803E9D2 + ldrb r1, [r3] + movs r0, #4 + rsbs r0, r0, #0 + ands r1, r0 + adds r1, r4, r1 + adds r0, r2, #0 + bl sub_080042AC +_0803E9D2: + pop {r4, pc} + + thumb_func_start sub_0803E9D4 +sub_0803E9D4: @ 0x0803E9D4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EA58 + adds r0, r4, #0 + movs r1, #0x38 + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EA10 + movs r0, #3 + strb r0, [r4, #0xc] + ldr r0, _0803EA0C @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x7b + movs r0, #1 + b _0803EA46 + .align 2, 0 +_0803EA0C: .4byte gUnk_020000B0 +_0803EA10: + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EA58 + ldr r0, _0803EA54 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EA58 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EA60 + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + movs r0, #4 +_0803EA46: + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + movs r0, #1 + b _0803EA62 + .align 2, 0 +_0803EA54: .4byte gUnk_020000B0 +_0803EA58: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] +_0803EA60: + movs r0, #0 +_0803EA62: + pop {r4, pc} + + thumb_func_start sub_0803EA64 +sub_0803EA64: @ 0x0803EA64 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EAC4 + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EAD0 + cmp r0, #0 + beq _0803EAB8 + ldr r0, _0803EAB4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EAB8 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EAAE + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C +_0803EAAE: + movs r0, #1 + b _0803EACE + .align 2, 0 +_0803EAB4: .4byte gUnk_020000B0 +_0803EAB8: + adds r0, r4, #0 + movs r1, #0x38 + bl sub_0803EAD0 + cmp r0, #0 + bne _0803EAAE +_0803EAC4: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #4 + strb r0, [r1] + movs r0, #0 +_0803EACE: + pop {r4, pc} + + thumb_func_start sub_0803EAD0 +sub_0803EAD0: @ 0x0803EAD0 + push {r4, lr} + adds r3, r1, #0 + ldr r1, _0803EAE8 @ =gUnk_020000B0 + ldr r2, [r1] + movs r4, #0x2e + ldrsh r1, [r2, r4] + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, #4 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803EAE8: .4byte gUnk_020000B0 + + thumb_func_start sub_0803EAEC +sub_0803EAEC: @ 0x0803EAEC + push {lr} + ldr r1, _0803EAF8 @ =gUnk_080D0880 + bl sub_0800129E + pop {pc} + .align 2, 0 +_0803EAF8: .4byte gUnk_080D0880 + + thumb_func_start sub_0803EAFC +sub_0803EAFC: @ 0x0803EAFC + push {lr} + ldr r2, _0803EB10 @ =gUnk_080D0898 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0803EB10: .4byte gUnk_080D0898 + + thumb_func_start sub_0803EB14 +sub_0803EB14: @ 0x0803EB14 + push {lr} + ldr r1, _0803EB20 @ =gUnk_080D0880 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_0803EB20: .4byte gUnk_080D0880 + + thumb_func_start sub_0803EB24 +sub_0803EB24: @ 0x0803EB24 + push {r4, lr} + adds r4, r0, #0 + bl sub_08001324 + + thumb_func_start sub_0803EB2C +sub_0803EB2C: @ 0x0803EB2C + adds r0, r4, #0 + bl sub_0803EAFC + pop {r4, pc} + + thumb_func_start sub_0803EB34 +sub_0803EB34: @ 0x0803EB34 + push {lr} + movs r1, #0xff + movs r2, #0x57 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start nullsub_21 +nullsub_21: @ 0x0803EB40 + bx lr + .align 2, 0 + + thumb_func_start sub_0803EB44 +sub_0803EB44: @ 0x0803EB44 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl sub_0804A98C + cmp r0, #0 + beq _0803EBB2 + str r4, [r0, #0x50] + str r0, [r4, #0x54] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r2, #0 + 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, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x28 + strb r0, [r1] + adds r1, #1 + movs r0, #0xfe + strb r0, [r1] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x82 + strh r0, [r1] + ldrb r1, [r4, #0x14] + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0803EE8C +_0803EBB2: + pop {r4, pc} + + thumb_func_start sub_0803EBB4 +sub_0803EBB4: @ 0x0803EBB4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xa + strb r1, [r0] + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803EBE4 + ldr r0, _0803EC10 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C +_0803EBE4: + adds r0, r4, #0 + bl sub_0803E9A4 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #2 + bl sub_0806FCB8 + cmp r0, #0 + bne _0803EC14 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803EC24 + .align 2, 0 +_0803EC10: .4byte gUnk_020000B0 +_0803EC14: + adds r0, r4, #0 + bl sub_0803EF20 + cmp r0, #0 + bne _0803EC24 + adds r0, r4, #0 + bl sub_0803EEA4 +_0803EC24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EC28 +sub_0803EC28: @ 0x0803EC28 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0x10 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x1c + bls _0803EC4A + subs r0, #1 + strb r0, [r1] +_0803EC4A: + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803EC64 + movs r0, #3 + strb r0, [r4, #0xc] + adds r1, #3 + movs r0, #0 + strb r0, [r1] +_0803EC64: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EC68 +sub_0803EC68: @ 0x0803EC68 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0x27 + bhi _0803EC8C + adds r0, #1 + strb r0, [r1] + b _0803EC92 +_0803EC8C: + adds r0, r4, #0 + bl sub_0803EE8C +_0803EC92: + pop {r4, pc} + + thumb_func_start sub_0803EC94 +sub_0803EC94: @ 0x0803EC94 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #1 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803ECD8 + ldrh r0, [r5] + strh r0, [r4, #0x2e] + ldrh r0, [r6] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_0803EE8C + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803ED02 +_0803ECD8: + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803ED02 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldrh r2, [r5] + ldrh r3, [r6] + bl sub_080045D4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_0803E94C + adds r0, r4, #0 + bl sub_080AEF88 +_0803ED02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0803ED04 +sub_0803ED04: @ 0x0803ED04 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r1, [r0] + subs r1, #0xc + strb r1, [r0] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #4 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _0803ED3C + movs r0, #0 + strb r0, [r1] + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x14] + adds r1, #0x20 + adds r0, r4, #0 + bl sub_080042AC +_0803ED3C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803ED40 +sub_0803ED40: @ 0x0803ED40 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803ED74 + movs r0, #7 + strb r0, [r2, #0xc] + movs r0, #1 + strb r0, [r2, #0xe] + ldr r1, _0803ED78 @ =gUnk_080D08C4 + ldrb r0, [r2, #0x14] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x7c + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x7f + movs r0, #0xf6 + strb r0, [r1] + adds r0, #0x65 + bl sub_08004488 +_0803ED74: + pop {pc} + .align 2, 0 +_0803ED78: .4byte gUnk_080D08C4 + + thumb_func_start sub_0803ED7C +sub_0803ED7C: @ 0x0803ED7C + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0803ED94 + adds r0, r2, #0 + bl sub_080042B8 + b _0803EDD0 +_0803ED94: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + adds r1, r2, #0 + adds r1, #0x7f + cmp r0, #0 + bne _0803EDAE + movs r0, #2 + strb r0, [r2, #0xe] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] +_0803EDAE: + ldrb r0, [r1] + cmp r0, #0 + beq _0803EDC0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #5 + strb r0, [r1] + b _0803EDD0 +_0803EDC0: + movs r0, #8 + strb r0, [r2, #0xc] + movs r0, #0x1e + strb r0, [r2, #0xe] + movs r0, #8 + movs r1, #0 + bl sub_08080964 +_0803EDD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EDD4 +sub_0803EDD4: @ 0x0803EDD4 + 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 _0803EDE8 + movs r0, #9 + strb r0, [r1, #0xc] +_0803EDE8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EDEC +sub_0803EDEC: @ 0x0803EDEC + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x7e + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bhi _0803EE26 + movs r0, #0xa + strb r0, [r2, #0xc] + movs r0, #0x3c + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + lsls r0, r0, #3 + strb r0, [r2, #0x15] + subs r1, #2 + movs r0, #0 + strb r0, [r1] + adds r1, #3 + movs r0, #0xfe + strb r0, [r1] + adds r0, r2, #0 + movs r1, #0x10 + bl sub_0803E94C + b _0803EE34 +_0803EE26: + cmp r0, #0x12 + bhi _0803EE34 + ldr r2, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_0803EE34: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EE38 +sub_0803EE38: @ 0x0803EE38 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0803EE60 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EE88 + ldr r0, [r4, #0x54] + ldrb r1, [r0, #0x10] + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + b _0803EE88 +_0803EE60: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r0, [r1] + subs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803E9A4 + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x27 + bls _0803EE88 + adds r0, r4, #0 + bl sub_0803EE8C +_0803EE88: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803EE8C +sub_0803EE8C: @ 0x0803EE8C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r2, r0, #0 + adds r2, #0x7a + movs r1, #0x1e + strb r1, [r2] + movs r1, #0 + bl sub_0803E94C + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803EEA4 +sub_0803EEA4: @ 0x0803EEA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803EEF8 + adds r0, r4, #0 + movs r1, #0x4e + bl sub_0803EF04 + cmp r0, #0 + beq _0803EEF8 + ldr r0, _0803EEF4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x12 + bl sub_0804A044 + adds r2, r0, #0 + cmp r2, #0xff + beq _0803EEF8 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803EF00 + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0x15] + adds r0, r4, #0 + movs r1, #0 + bl sub_0803E94C + movs r0, #1 + b _0803EF02 + .align 2, 0 +_0803EEF4: .4byte gUnk_020000B0 +_0803EEF8: + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0x1e + strb r0, [r1] +_0803EF00: + movs r0, #0 +_0803EF02: + pop {r4, pc} + + thumb_func_start sub_0803EF04 +sub_0803EF04: @ 0x0803EF04 + push {r4, lr} + adds r3, r1, #0 + ldr r1, _0803EF1C @ =gUnk_020000B0 + ldr r2, [r1] + movs r4, #0x2e + ldrsh r1, [r2, r4] + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, #4 + bl sub_0806FCB8 + pop {r4, pc} + .align 2, 0 +_0803EF1C: .4byte gUnk_020000B0 + + thumb_func_start sub_0803EF20 +sub_0803EF20: @ 0x0803EF20 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _0803EF5C @ =gUnk_03003D80 + ldr r4, [r6, #4] + cmp r4, r6 + beq _0803EF6A + ldr r7, _0803EF60 @ =gUnk_080D08C8 +_0803EF2E: + ldrb r0, [r4, #8] + cmp r0, #8 + bne _0803EF64 + ldrb r0, [r4, #9] + lsls r0, r0, #2 + adds r0, r0, r7 + ldr r2, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl _call_via_r2 + cmp r0, #0 + beq _0803EF64 + movs r0, #2 + strb r0, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x78 + movs r0, #0xb4 + strh r0, [r1] + adds r1, #3 + movs r0, #1 + strb r0, [r1] + b _0803EF6C + .align 2, 0 +_0803EF5C: .4byte gUnk_03003D80 +_0803EF60: .4byte gUnk_080D08C8 +_0803EF64: + ldr r4, [r4, #4] + cmp r4, r6 + bne _0803EF2E +_0803EF6A: + movs r0, #0 +_0803EF6C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803EF70 +sub_0803EF70: @ 0x0803EF70 + movs r0, #0 + bx lr + + thumb_func_start sub_0803EF74 +sub_0803EF74: @ 0x0803EF74 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r5, #0 + movs r3, #0x50 + bl sub_0806FCB8 + cmp r0, #0 + beq _0803EFA8 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080045C4 + ldrb r1, [r4, #0x15] + subs r1, r1, r0 + adds r1, #2 + movs r0, #0x1f + ands r1, r0 + cmp r1, #4 + bhi _0803EFA8 + movs r0, #1 + b _0803EFAA +_0803EFA8: + movs r0, #0 +_0803EFAA: + pop {r4, r5, pc} + + thumb_func_start sub_0803EFAC +sub_0803EFAC: @ 0x0803EFAC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r2, #0x50 + movs r3, #0x50 + bl sub_080041A0 + cmp r0, #0 + beq _0803EFD6 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x1c + bl sub_0804A044 + cmp r0, #0xff + beq _0803EFD6 + ldrb r4, [r4, #0x15] + cmp r0, r4 + bne _0803EFD6 + movs r0, #1 + b _0803EFD8 +_0803EFD6: + movs r0, #0 +_0803EFD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803EFDC +sub_0803EFDC: @ 0x0803EFDC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0803F004 @ =gUnk_080D0924 + bl sub_0800279C + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_0803F004: .4byte gUnk_080D0924 + + thumb_func_start sub_0803F008 +sub_0803F008: @ 0x0803F008 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0803F024 @ =gUnk_080D093C + 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 + bl sub_0803F694 + pop {r4, pc} + .align 2, 0 +_0803F024: .4byte gUnk_080D093C + + thumb_func_start sub_0803F028 +sub_0803F028: @ 0x0803F028 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F05C + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0803F630 + adds r0, r4, #0 + bl sub_0803F6EC +_0803F05C: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x41 + cmp r0, #0x25 + bne _0803F07E + ldrb r0, [r1] + cmp r0, #0x80 + bne _0803F07E + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _0803F0E4 +_0803F07E: + ldrb r0, [r1] + cmp r0, #0x9d + bne _0803F08A + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0803F08A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0803F0B0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0803F0B0: + adds r0, r4, #0 + adds r0, #0x45 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r0, [r0] + ldrb r2, [r1] + cmp r0, r2 + beq _0803F0E4 + strb r0, [r1] + ldrb r0, [r4, #0xc] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F0D4 + adds r0, r4, #0 + bl sub_0803F51C +_0803F0D4: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_0803F0E4: + ldr r1, _0803F0F0 @ =gUnk_080D0924 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_0803F0F0: .4byte gUnk_080D0924 + + thumb_func_start sub_0803F0F4 +sub_0803F0F4: @ 0x0803F0F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08001328 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F144 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0803F144 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F144 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x58 + ldrb r0, [r1] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0803F144 + ldrb r1, [r1] + subs r1, #7 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F144: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F148 +sub_0803F148: @ 0x0803F148 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _0803F164 + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_0803F164: + adds r0, r4, #0 + bl sub_08001242 + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _0803F178 + ldr r0, _0803F1A4 @ =0x0000FFFF + strh r0, [r4, #0x36] +_0803F178: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F1A0 + ldrb r0, [r4, #0x14] + movs r1, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0803F630 +_0803F1A0: + pop {r4, pc} + .align 2, 0 +_0803F1A4: .4byte 0x0000FFFF + + thumb_func_start sub_0803F1A8 +sub_0803F1A8: @ 0x0803F1A8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _0803F1CC + ldr r0, _0803F1C8 @ =gUnk_080D0964 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803F1DE + .align 2, 0 +_0803F1C8: .4byte gUnk_080D0964 +_0803F1CC: + adds r0, r4, #0 + bl sub_0803F51C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F1DE: + pop {r4, pc} + + thumb_func_start sub_0803F1E0 +sub_0803F1E0: @ 0x0803F1E0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + ldr r1, _0803F1F8 @ =gLinkEntity + ldrb r1, [r1, #0x14] + lsrs r1, r1, #2 + adds r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_0803F1F8: .4byte gLinkEntity + + thumb_func_start sub_0803F1FC +sub_0803F1FC: @ 0x0803F1FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F4E8 + pop {r4, pc} + + thumb_func_start sub_0803F20C +sub_0803F20C: @ 0x0803F20C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _0803F244 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _0803F23E + adds r2, r0, #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] +_0803F23E: + adds r0, r4, #0 + bl sub_0804A7D4 +_0803F244: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F248 +sub_0803F248: @ 0x0803F248 + push {r4, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r2, #0x1e + adds r1, r0, #0 + ands r1, r2 + movs r2, #0 + strb r1, [r4, #0x15] + movs r1, #0xff + strb r1, [r4, #0x14] + movs r1, #1 + strb r1, [r4, #0x1c] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r1, [r1] + adds r3, r4, #0 + adds r3, #0x7a + strb r1, [r3] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0803F28E + adds r0, r4, #0 + bl sub_0803F50C + b _0803F2A0 +_0803F28E: + adds r0, r4, #0 + bl sub_0803F51C + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F2A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F2A4 +sub_0803F2A4: @ 0x0803F2A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + beq _0803F2C0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x60 + ands r0, r1 + adds r0, #0xa + strb r0, [r4, #0xe] +_0803F2C0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F2C4 +sub_0803F2C4: @ 0x0803F2C4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _0803F2D8 + adds r0, r4, #0 + bl sub_0803F50C + b _0803F322 +_0803F2D8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803F322 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803F308 + ldr r0, _0803F304 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + b _0803F310 + .align 2, 0 +_0803F304: .4byte gUnk_020000B0 +_0803F308: + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 +_0803F310: + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_0803F322: + pop {r4, pc} + + thumb_func_start sub_0803F324 +sub_0803F324: @ 0x0803F324 + push {r4, 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 _0803F33E + adds r0, r4, #0 + bl sub_0803F51C +_0803F33E: + pop {r4, pc} + + thumb_func_start sub_0803F340 +sub_0803F340: @ 0x0803F340 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5D4 + cmp r0, #0 + bne _0803F36A + adds r0, r4, #0 + bl sub_0803F58C + 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 _0803F36A + adds r0, r4, #0 + bl sub_0803F51C +_0803F36A: + pop {r4, pc} + + thumb_func_start sub_0803F36C +sub_0803F36C: @ 0x0803F36C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0803F3A6 + adds r0, r4, #0 + bl sub_0803F66C + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0803F3AC + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, #0xfa + strh r0, [r4, #0x24] + b _0803F3AC +_0803F3A6: + adds r0, r4, #0 + bl sub_0803F51C +_0803F3AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F3B0 +sub_0803F3B0: @ 0x0803F3B0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _0803F3C4 + adds r0, r4, #0 + bl sub_0803F51C + b _0803F41C +_0803F3C4: + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0803F414 + ldrb r1, [r4, #0xe] + adds r1, #1 + strb r1, [r4, #0xe] + ldr r2, _0803F40C @ =gUnk_080D0970 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1e + adds r0, r0, r2 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _0803F3F6 + ldr r0, _0803F410 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_0803F3F6: + adds r0, r4, #0 + bl sub_0803F66C + adds r0, r4, #0 + bl sub_080AEFB4 + adds r0, r4, #0 + bl sub_08004274 + b _0803F41C + .align 2, 0 +_0803F40C: .4byte gUnk_080D0970 +_0803F410: .4byte gUnk_020000B0 +_0803F414: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] +_0803F41C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F420 +sub_0803F420: @ 0x0803F420 + push {r4, 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 _0803F43A + adds r0, r4, #0 + bl sub_0803F51C +_0803F43A: + pop {r4, pc} + + thumb_func_start sub_0803F43C +sub_0803F43C: @ 0x0803F43C + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F738 + 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 _0803F474 + movs r2, #0 + movs r0, #9 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x78 + strh r2, [r0] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_0803F474: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0803F478 +sub_0803F478: @ 0x0803F478 + 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 _0803F494 + adds r0, r4, #0 + bl sub_0803F6C0 +_0803F494: + bl sub_0807953C + adds r1, r4, #0 + adds r1, #0x78 + cmp r0, #0 + beq _0803F4A6 + ldrh r0, [r1] + adds r0, #0xc + strh r0, [r1] +_0803F4A6: + ldr r2, _0803F500 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0803F4B6 + movs r0, #0xe0 + strh r0, [r1] +_0803F4B6: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xdf + bls _0803F504 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + subs r1, #0x3f + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803F51C + adds r0, r4, #0 + bl sub_0803F6EC + b _0803F50A + .align 2, 0 +_0803F500: .4byte gLinkEntity +_0803F504: + adds r0, r4, #0 + bl sub_0803F738 +_0803F50A: + pop {r4, pc} + + thumb_func_start sub_0803F50C +sub_0803F50C: @ 0x0803F50C + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #9 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0803F51C +sub_0803F51C: @ 0x0803F51C + push {lr} + movs r1, #4 + strb r1, [r0, #0xc] + bl sub_0803F528 + pop {pc} + + thumb_func_start sub_0803F528 +sub_0803F528: @ 0x0803F528 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08000E50 + adds r5, r0, #0 + movs r0, #8 + adds r1, r5, #0 + ands r1, r0 + adds r1, #8 + strb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_08049FA0 + cmp r0, #0 + beq _0803F55C + ldr r1, _0803F558 @ =gUnk_080D0978 + movs r0, #7 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + b _0803F562 + .align 2, 0 +_0803F558: .4byte gUnk_080D0978 +_0803F55C: + adds r0, r4, #0 + bl sub_08049EE4 +_0803F562: + movs r1, #0x1e + ands r0, r1 + strb r0, [r4, #0x15] + ldr r2, _0803F588 @ =gUnk_080D0974 + lsrs r0, r5, #4 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x24 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0803F66C + pop {r4, r5, pc} + .align 2, 0 +_0803F588: .4byte gUnk_080D0974 + + thumb_func_start sub_0803F58C +sub_0803F58C: @ 0x0803F58C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x30] + bl sub_080AEFB4 + ldr r1, [r5, #0x30] + subs r4, r1, r4 + lsrs r0, r4, #0x1f + adds r4, r4, r0 + asrs r4, r4, #1 + subs r1, r1, r4 + str r1, [r5, #0x30] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803F5A8 +sub_0803F5A8: @ 0x0803F5A8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + bne _0803F5BA + movs r0, #0 + b _0803F5D2 +_0803F5BA: + ldr r0, _0803F5CC @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + bgt _0803F5D0 + adds r0, r4, #0 + bl sub_0806FD54 + b _0803F5D2 + .align 2, 0 +_0803F5CC: .4byte gUnk_02033A90 +_0803F5D0: + movs r0, #1 +_0803F5D2: + pop {r4, pc} + + thumb_func_start sub_0803F5D4 +sub_0803F5D4: @ 0x0803F5D4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0803F5E8 + subs r0, #1 + strh r0, [r1] + b _0803F62C +_0803F5E8: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _0803F62C + adds r0, r4, #0 + bl sub_0806FD54 + cmp r0, #0 + bne _0803F61A + ldr r0, _0803F624 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + ble _0803F62C + ldr r0, _0803F628 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x70 + movs r3, #0x48 + bl sub_080041A0 + cmp r0, #0 + beq _0803F62C +_0803F61A: + adds r0, r4, #0 + bl sub_0803F630 + movs r0, #1 + b _0803F62E + .align 2, 0 +_0803F624: .4byte gUnk_02033A90 +_0803F628: .4byte gUnk_020000B0 +_0803F62C: + movs r0, #0 +_0803F62E: + pop {r4, pc} + + thumb_func_start sub_0803F630 +sub_0803F630: @ 0x0803F630 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x25 + strb r0, [r1] + movs r5, #0 + ldr r0, _0803F664 @ =gUnk_03004040 + ldr r0, [r0] + cmp r0, #0 + beq _0803F64C + movs r5, #0x3c +_0803F64C: + bl sub_08000E50 + ldr r2, _0803F668 @ =gUnk_080D0980 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_0803F664: .4byte gUnk_03004040 +_0803F668: .4byte gUnk_080D0980 + + thumb_func_start sub_0803F66C +sub_0803F66C: @ 0x0803F66C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x15] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _0803F680 + ldrb r0, [r2, #0x14] + cmp r0, #0xff + bne _0803F692 +_0803F680: + lsrs r0, r1, #4 + ldrb r1, [r2, #0x14] + cmp r0, r1 + beq _0803F692 + strb r0, [r2, #0x14] + adds r1, r0, #1 + adds r0, r2, #0 + bl sub_08004260 +_0803F692: + pop {pc} + + thumb_func_start sub_0803F694 +sub_0803F694: @ 0x0803F694 + push {r4, lr} + ldr r3, _0803F6BC @ =gUnk_080D0984 + movs r1, #0x7b + adds r1, r1, r0 + mov ip, r1 + ldrb r1, [r1] + adds r2, r1, #1 + mov r4, ip + strb r2, [r4] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1b + movs r2, #3 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + pop {r4, pc} + .align 2, 0 +_0803F6BC: .4byte gUnk_080D0984 + + thumb_func_start sub_0803F6C0 +sub_0803F6C0: @ 0x0803F6C0 + push {r4, lr} + adds r0, #0x5a + ldrb r2, [r0] + movs r1, #0xfe + ands r1, r2 + strb r1, [r0] + ldr r4, _0803F6E8 @ =gLinkEntity + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xc + strb r0, [r1] + subs r0, #0x10 + bl ModHealth + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + pop {r4, pc} + .align 2, 0 +_0803F6E8: .4byte gLinkEntity + + thumb_func_start sub_0803F6EC +sub_0803F6EC: @ 0x0803F6EC + push {lr} + ldr r2, _0803F72C @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + ldr r3, _0803F730 @ =gUnk_03003F80 + cmp r0, #0 + beq _0803F720 + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldr r0, _0803F734 @ =0x0000FFFE + strh r0, [r2, #0x36] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0xc4 + strb r0, [r1] + movs r0, #0x41 + strb r0, [r3, #2] +_0803F720: + ldr r0, [r3, #0x30] + movs r1, #0x11 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r3, #0x30] + pop {pc} + .align 2, 0 +_0803F72C: .4byte gLinkEntity +_0803F730: .4byte gUnk_03003F80 +_0803F734: .4byte 0x0000FFFE + + thumb_func_start sub_0803F738 +sub_0803F738: @ 0x0803F738 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + ldr r2, _0803F768 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x1a] + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + ldr r0, _0803F76C @ =gLinkEntity + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r4, #0x63 + ldrb r0, [r4] + subs r0, #2 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_0803F768: .4byte gUnk_03003F80 +_0803F76C: .4byte gLinkEntity + + thumb_func_start sub_0803F770 +sub_0803F770: @ 0x0803F770 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #5 + bhi _0803F810 + lsls r0, r0, #2 + ldr r1, _0803F784 @ =_0803F788 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803F784: .4byte _0803F788 +_0803F788: @ jump table + .4byte _0803F7A0 @ case 0 + .4byte _0803F7D0 @ case 1 + .4byte _0803F7D8 @ case 2 + .4byte _0803F7E0 @ case 3 + .4byte _0803F7E8 @ case 4 + .4byte _0803F800 @ case 5 +_0803F7A0: + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _0803F7C8 + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + adds r2, r4, #0 + adds r2, #0x7a + strh r0, [r2] + ldrh r0, [r4, #0x2e] + strh r0, [r1] + adds r1, #4 + ldrh r0, [r1] + adds r2, #4 + strh r0, [r2] + ldrh r0, [r4, #0x32] + strh r0, [r1] + adds r0, r4, #0 + bl sub_080409B0 +_0803F7C8: + ldr r0, _0803F7CC @ =gUnk_080D0AC8 + b _0803F7EA + .align 2, 0 +_0803F7CC: .4byte gUnk_080D0AC8 +_0803F7D0: + ldr r0, _0803F7D4 @ =gUnk_080D0AE8 + b _0803F7EA + .align 2, 0 +_0803F7D4: .4byte gUnk_080D0AE8 +_0803F7D8: + ldr r0, _0803F7DC @ =gUnk_080D0AF0 + b _0803F7EA + .align 2, 0 +_0803F7DC: .4byte gUnk_080D0AF0 +_0803F7E0: + ldr r0, _0803F7E4 @ =gUnk_080D0AFC + b _0803F7EA + .align 2, 0 +_0803F7E4: .4byte gUnk_080D0AFC +_0803F7E8: + ldr r0, _0803F7FC @ =gUnk_080D0B04 +_0803F7EA: + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0803F810 + .align 2, 0 +_0803F7FC: .4byte gUnk_080D0B04 +_0803F800: + ldr r0, _0803F814 @ =gUnk_080D0B0C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_0803F810: + pop {r4, pc} + .align 2, 0 +_0803F814: .4byte gUnk_080D0B0C + + thumb_func_start sub_0803F818 +sub_0803F818: @ 0x0803F818 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_0804A720 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0803F910 + ldr r0, _0803F8FC @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x50 + bhi _0803F910 + movs r4, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + adds r3, r5, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #5 + orrs r0, r1 + strb r0, [r3] + adds r1, r5, #0 + adds r1, #0x6d + ldrb r0, [r1] + orrs r2, r0 + strb r2, [r1] + bl sub_08000E50 + movs r1, #0x17 + ands r0, r1 + adds r0, #4 + strb r0, [r5, #0x15] + movs r0, #0x30 + strb r0, [r5, #0xe] + movs r0, #0xc + strb r0, [r5, #0xf] + adds r1, r5, #0 + adds r1, #0x82 + movs r0, #4 + strb r0, [r1] + subs r1, #2 + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x74 + strb r4, [r0] + adds r0, #3 + strb r4, [r0] + adds r1, #4 + movs r0, #9 + strb r0, [r1] + strb r4, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x86 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + ldrh r1, [r5, #0x2e] + subs r0, #0xf + strh r1, [r0] + ldrh r0, [r5, #0x2e] + adds r1, r5, #0 + adds r1, #0x7a + strh r0, [r1] + ldrh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x7c + strh r1, [r0] + ldrh r0, [r5, #0x32] + adds r1, r5, #0 + adds r1, #0x7e + strh r0, [r1] + movs r4, #1 + adds r7, r5, #0 + adds r7, #0x75 +_0803F8C2: + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_08040648 + adds r4, #1 + cmp r4, #5 + bls _0803F8C2 + bl sub_08000E50 + adds r0, r5, #0 + bl sub_080408EC + movs r4, #0 + movs r6, #1 +_0803F8E0: + movs r0, #0x5a + movs r1, #0 + bl CreateEnemy + str r5, [r0, #0x50] + strb r4, [r0, #0xb] + ldrb r1, [r7] + asrs r1, r4 + ands r1, r6 + cmp r1, #0 + beq _0803F900 + strb r6, [r0, #0xe] + b _0803F902 + .align 2, 0 +_0803F8FC: .4byte gUnk_03003DBC +_0803F900: + strb r1, [r0, #0xe] +_0803F902: + adds r4, #1 + cmp r4, #7 + bls _0803F8E0 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0803F910: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0803F914 +sub_0803F914: @ 0x0803F914 + push {r4, r5, r6, r7, lr} + sub sp, #4 + adds r7, r0, #0 + adds r4, r7, #0 + adds r4, #0x80 + ldrb r0, [r4] + cmp r0, #2 + beq _0803F998 + cmp r0, #2 + bgt _0803F932 + cmp r0, #0 + beq _0803F95A + cmp r0, #1 + beq _0803F97A + b _0803FA40 +_0803F932: + cmp r0, #4 + bne _0803F938 + b _0803FA3A +_0803F938: + cmp r0, #4 + blt _0803F9CE + adds r3, r4, #0 + cmp r0, #0xff + beq _0803F944 + b _0803FA42 +_0803F944: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _0803FA42 + strb r0, [r3] + movs r0, #0xb + strb r0, [r7, #0xe] + b _0803FA42 +_0803F95A: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + adds r3, r4, #0 + cmp r0, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r7, #0x24] + movs r0, #0x14 + strb r0, [r7, #0xe] + b _0803FA42 +_0803F97A: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + adds r3, r4, #0 + cmp r0, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0xc0 + strh r0, [r7, #0x24] + movs r0, #0xc + strb r0, [r7, #0xe] + b _0803FA42 +_0803F998: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + adds r3, r4, #0 + cmp r1, #0 + bne _0803FA42 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + strh r1, [r7, #0x24] + ldrb r0, [r7, #0x14] + cmp r0, #1 + bhi _0803F9C8 + str r3, [sp] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x40 + strb r0, [r7, #0xe] + ldr r3, [sp] + b _0803FA42 +_0803F9C8: + movs r0, #8 + strb r0, [r7, #0xe] + b _0803FA42 +_0803F9CE: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FA32 + movs r0, #0 + strh r1, [r7, #0x36] + strb r0, [r4] + ldr r1, _0803FA04 @ =gUnk_080D0ABF + ldrb r0, [r7, #0x14] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r7, #0xe] + adds r0, r7, #0 + bl sub_08040934 + adds r1, r0, #0 + cmp r1, #2 + beq _0803FA1A + cmp r1, #2 + bhi _0803FA08 + cmp r1, #1 + beq _0803FA0E + b _0803FA26 + .align 2, 0 +_0803FA04: .4byte gUnk_080D0ABF +_0803FA08: + cmp r1, #3 + beq _0803FA20 + b _0803FA26 +_0803FA0E: + movs r0, #4 + strb r0, [r7, #0xc] + adds r0, r7, #0 + adds r0, #0x74 + strb r1, [r0] + b _0803FA40 +_0803FA1A: + movs r0, #5 + strb r0, [r7, #0xc] + b _0803FA40 +_0803FA20: + movs r0, #6 + strb r0, [r7, #0xc] + b _0803FA40 +_0803FA26: + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #4 + strb r0, [r1] + adds r3, r1, #0 + b _0803FA42 +_0803FA32: + adds r0, r7, #0 + bl sub_08040AD4 + b _0803FA40 +_0803FA3A: + adds r0, r7, #0 + bl sub_08040670 +_0803FA40: + adds r3, r4, #0 +_0803FA42: + adds r1, r7, #0 + adds r1, #0x82 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803FAAC + movs r0, #4 + strb r0, [r1] + ldrb r2, [r7, #0x15] + adds r2, #0x12 + movs r0, #0x1c + ands r2, r0 + asrs r2, r2, #2 + movs r0, #0x9b + movs r1, #0 + str r3, [sp] + bl CreateObject + adds r6, r0, #0 + ldr r3, [sp] + cmp r6, #0 + beq _0803FAAC + str r7, [r6, #0x50] + str r3, [sp] + bl sub_08000E50 + movs r5, #0xf + ands r0, r5 + ldr r1, _0803FAC4 @ =0x0000FFF9 + adds r4, r1, #0 + adds r0, r4, r0 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + bl sub_08000E50 + ands r0, r5 + adds r4, r4, r0 + ldrh r0, [r6, #0x32] + adds r4, r4, r0 + strh r4, [r6, #0x32] + adds r2, r6, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldr r3, [sp] +_0803FAAC: + ldrb r0, [r3] + cmp r0, #0xff + beq _0803FAB8 + adds r0, r7, #0 + bl sub_080AEF88 +_0803FAB8: + adds r0, r7, #0 + bl sub_080042B8 + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0803FAC4: .4byte 0x0000FFF9 + + thumb_func_start sub_0803FAC8 +sub_0803FAC8: @ 0x0803FAC8 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_0803FAD0 +sub_0803FAD0: @ 0x0803FAD0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #5 + bls _0803FADE + b _0803FD32 +_0803FADE: + lsls r0, r0, #2 + ldr r1, _0803FAE8 @ =_0803FAEC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803FAE8: .4byte _0803FAEC +_0803FAEC: @ jump table + .4byte _0803FB04 @ case 0 + .4byte _0803FB34 @ case 1 + .4byte _0803FBB8 @ case 2 + .4byte _0803FBE2 @ case 3 + .4byte _0803FC80 @ case 4 + .4byte _0803FD0C @ case 5 +_0803FB04: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r7, #0 + bl sub_080044EC + adds r1, r0, #0 + cmp r1, #1 + beq _0803FB16 + b _0803FD32 +_0803FB16: + adds r0, r7, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0xc0 + strb r0, [r7, #0xe] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x14 + b _0803FC4A +_0803FB34: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + adds r3, r7, #0 + adds r3, #0x80 + cmp r2, #0 + bne _0803FB58 + movs r0, #2 + strb r0, [r3] + adds r1, r7, #0 + adds r1, #0x3f + movs r0, #0x35 + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x62 + strb r2, [r0] +_0803FB58: + adds r2, r7, #0 + adds r2, #0x45 + ldr r0, _0803FB70 @ =gUnk_080D0ABC + ldrb r1, [r7, #0x14] + adds r1, r1, r0 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bhs _0803FB74 + movs r0, #1 + strb r0, [r7, #0xe] + b _0803FB76 + .align 2, 0 +_0803FB70: .4byte gUnk_080D0ABC +_0803FB74: + movs r0, #0 +_0803FB76: + cmp r0, #0 + bne _0803FB7C + b _0803FD32 +_0803FB7C: + movs r1, #0 + movs r0, #2 + strb r0, [r3] + adds r2, r7, #0 + adds r2, #0x3f + movs r0, #0x35 + strb r0, [r2] + adds r0, r7, #0 + adds r0, #0x62 + strb r1, [r0] + ldrb r0, [r7, #0x14] + adds r0, #1 + strb r0, [r7, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _0803FBA0 + b _0803FD32 +_0803FBA0: + movs r0, #7 + strb r0, [r7, #0xc] + movs r0, #0xe0 + strb r0, [r7, #0xe] + bl sub_0807A108 + ldr r0, _0803FBB4 @ =0x00000127 + bl sub_080A3268 + b _0803FD4E + .align 2, 0 +_0803FBB4: .4byte 0x00000127 +_0803FBB8: + ldr r0, [r7, #0x54] + adds r0, #0x74 + movs r1, #0x10 + strb r1, [r0] + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0803FBD4 + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #3 + strb r1, [r0] + movs r0, #0x40 + strb r0, [r7, #0xe] + b _0803FD32 +_0803FBD4: + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #4 + strb r1, [r0] + movs r0, #0x50 + strb r0, [r7, #0xe] + b _0803FD32 +_0803FBE2: + ldrb r0, [r7, #0xe] + cmp r0, #0 + beq _0803FC08 + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0803FBF4 + b _0803FD32 +_0803FBF4: + ldrb r1, [r7, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r7, #0x10] + movs r0, #0xe0 + lsls r0, r0, #0xa + str r0, [r7, #0x20] + movs r0, #0x10 + strb r0, [r7, #0xf] + b _0803FD32 +_0803FC08: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r7, #0 + bl sub_08003FC4 + adds r2, r0, #0 + cmp r2, #0 + bne _0803FC52 + adds r1, r7, #0 + adds r1, #0x80 + movs r0, #5 + strb r0, [r1] + movs r0, #0x10 + strb r0, [r7, #0xe] + ldrb r1, [r7, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r7, #0x10] + adds r1, r7, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + adds r0, r7, #0 + adds r0, #0x86 + strb r2, [r0] + adds r0, r7, #0 + bl sub_080408EC + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x1e +_0803FC4A: + movs r1, #4 + bl sub_08080964 + b _0803FD32 +_0803FC52: + ldrb r0, [r7, #0xf] + cmp r0, #0 + beq _0803FD32 + subs r1, r0, #1 + strb r1, [r7, #0xf] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FC6C + movs r0, #0xd8 + lsls r0, r0, #1 + bl sub_080A3268 + b _0803FD32 +_0803FC6C: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FD32 + ldr r0, _0803FC7C @ =0x00000149 + bl sub_080A3268 + b _0803FD32 + .align 2, 0 +_0803FC7C: .4byte 0x00000149 +_0803FC80: + ldrb r0, [r7, #0xe] + subs r1, r0, #1 + strb r1, [r7, #0xe] + lsls r0, r1, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0803FCA8 + adds r0, r7, #0 + adds r0, #0x80 + movs r1, #5 + strb r1, [r0] + movs r0, #0x10 + strb r0, [r7, #0xe] + adds r0, r7, #0 + adds r0, #0x86 + strb r2, [r0] + adds r0, r7, #0 + bl sub_080408EC + b _0803FD32 +_0803FCA8: + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _0803FD32 + movs r0, #0x9b + movs r1, #1 + movs r2, #0xff + bl CreateObject + adds r6, r0, #0 + cmp r6, #0 + beq _0803FD32 + str r7, [r6, #0x50] + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_0806FA24 + bl sub_08000E50 + movs r5, #0xf + ands r0, r5 + ldr r1, _0803FD08 @ =0x0000FFF9 + adds r4, r1, #0 + adds r0, r4, r0 + ldrh r1, [r6, #0x2e] + adds r0, r0, r1 + strh r0, [r6, #0x2e] + bl sub_08000E50 + ands r0, r5 + adds r4, r4, r0 + ldrh r0, [r6, #0x32] + adds r4, r4, r0 + strh r4, [r6, #0x32] + adds r2, r6, #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] + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 + b _0803FD32 + .align 2, 0 +_0803FD08: .4byte 0x0000FFF9 +_0803FD0C: + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FD32 + movs r0, #1 + strb r0, [r7, #0xc] + adds r0, r7, #0 + adds r0, #0x80 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + subs r0, #0xb + strb r1, [r0] + adds r0, r7, #0 + bl sub_08040670 +_0803FD32: + adds r0, r7, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #2 + bls _0803FD48 + ldrb r1, [r7, #0xe] + movs r0, #1 + ands r0, r1 + adds r1, r7, #0 + adds r1, #0x62 + strb r0, [r1] +_0803FD48: + adds r0, r7, #0 + bl sub_080042B8 +_0803FD4E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0803FD50 +sub_0803FD50: @ 0x0803FD50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrb r0, [r5] + cmp r0, #1 + beq _0803FDA8 + cmp r0, #1 + bgt _0803FD68 + cmp r0, #0 + beq _0803FD72 + b _0803FE86 +_0803FD68: + cmp r0, #2 + beq _0803FE0C + cmp r0, #3 + beq _0803FE62 + b _0803FE86 +_0803FD72: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0803FD82 + b _0803FE86 +_0803FD82: + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + movs r0, #0x80 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r0, #0x90 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r0, _0803FDA4 @ =0x0000012B + bl sub_080A3268 + b _0803FE86 + .align 2, 0 +_0803FDA4: .4byte 0x0000012B +_0803FDA8: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0803FE86 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x84 + ldrb r0, [r0] + cmp r0, #1 + beq _0803FDD8 + cmp r0, #1 + bgt _0803FDD0 + cmp r0, #0 + beq _0803FDDE + b _0803FDE4 +_0803FDD0: + cmp r0, #2 + beq _0803FDDE + cmp r0, #3 + bne _0803FDE4 +_0803FDD8: + movs r0, #1 + strb r0, [r4, #0xf] + b _0803FDF0 +_0803FDDE: + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FDF0 +_0803FDE4: + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + lsrs r1, r1, #5 + strb r1, [r4, #0xf] +_0803FDF0: + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FDFA + movs r0, #1 + strb r0, [r4, #0xf] +_0803FDFA: + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x1e + movs r1, #4 + bl sub_08080964 + b _0803FE86 +_0803FE0C: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FE34 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + ldr r2, _0803FE30 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + movs r1, #1 + orrs r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _0803FE86 + .align 2, 0 +_0803FE30: .4byte gUnk_080D0ABF +_0803FE34: + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FE46 + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FE46: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803FE86 + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FE86 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _0803FE86 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FE86 +_0803FE62: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FE80 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r5] + strh r1, [r4, #0x36] + adds r0, r4, #0 + bl sub_08040670 + b _0803FE86 +_0803FE80: + adds r0, r4, #0 + bl sub_08040AD4 +_0803FE86: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0803FE90 +sub_0803FE90: @ 0x0803FE90 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x80 + ldrb r2, [r3] + cmp r2, #1 + beq _0803FED4 + cmp r2, #1 + bgt _0803FEA8 + cmp r2, #0 + beq _0803FEAE + b _0803FF74 +_0803FEA8: + cmp r2, #2 + beq _0803FF52 + b _0803FF74 +_0803FEAE: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0803FF74 + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + movs r0, #0x40 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _0803FF74 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xf] + b _0803FF74 +_0803FED4: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FEFC + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + ldr r1, _0803FEF8 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + orrs r0, r2 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _0803FF74 + .align 2, 0 +_0803FEF8: .4byte gUnk_080D0ABF +_0803FEFC: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0803FF24 + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FF14 + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FF14: + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _0803FF74 + movs r0, #0x40 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _0803FF74 +_0803FF24: + movs r5, #0xf + ands r5, r1 + cmp r5, #0 + bne _0803FF74 + adds r0, r4, #0 + movs r1, #0x1f + movs r2, #2 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _0803FF74 + strb r5, [r1, #0xb] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0803FF74 + ldrh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r1, #0x24] + b _0803FF74 +_0803FF52: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0803FF6E + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r3] + adds r0, r4, #0 + bl sub_08040670 + b _0803FF74 +_0803FF6E: + adds r0, r4, #0 + bl sub_08040AD4 +_0803FF74: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_0803FF7C +sub_0803FF7C: @ 0x0803FF7C + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x80 + ldrb r5, [r2] + cmp r5, #1 + beq _0803FFBC + cmp r5, #1 + bgt _0803FF94 + cmp r5, #0 + beq _0803FF9A + b _08040062 +_0803FF94: + cmp r5, #2 + beq _08040040 + b _08040062 +_0803FF9A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040062 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #0x80 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x14] + cmp r0, #1 + bls _08040062 + movs r0, #1 + strb r0, [r4, #0xf] + b _08040062 +_0803FFBC: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0803FFE4 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0803FFE0 @ =gUnk_080D0ABF + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + orrs r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + b _08040062 + .align 2, 0 +_0803FFE0: .4byte gUnk_080D0ABF +_0803FFE4: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0804000C + movs r0, #7 + ands r1, r0 + cmp r1, #0 + bne _0803FFFC + ldrb r2, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x1f + bl sub_0804A98C +_0803FFFC: + ldrb r0, [r4, #0xe] + cmp r0, #5 + bhi _08040062 + movs r0, #0x80 + strb r0, [r4, #0xe] + movs r0, #0 + strb r0, [r4, #0xf] + b _08040062 +_0804000C: + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _08040062 + adds r0, r4, #0 + movs r1, #0x1f + movs r2, #2 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08040062 + strb r5, [r1, #0xb] + ldrh r0, [r1, #0x32] + subs r0, #0x20 + strh r0, [r1, #0x32] + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08040062 + ldrh r0, [r1, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + strh r0, [r1, #0x24] + b _08040062 +_08040040: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804005C + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_08040670 + b _08040062 +_0804005C: + adds r0, r4, #0 + bl sub_08040AD4 +_08040062: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804006C +sub_0804006C: @ 0x0804006C + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08078B48 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08040090 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080400C2 + movs r0, #2 + bl sub_0807CD10 + movs r0, #8 + strb r0, [r4, #0xf] + b _080400BA +_08040090: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080400B4 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _080400BA + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _080400BA +_080400B4: + adds r0, r4, #0 + bl sub_0804A7D4 +_080400BA: + adds r0, r4, #0 + bl sub_080042B8 + b _08040126 +_080400C2: + ldrb r0, [r4, #0xf] + adds r0, #1 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xf] + cmp r0, #0 + bne _08040120 + adds r0, r4, #0 + movs r1, #0x55 + movs r2, #0 + bl CreateFX + adds r5, r0, #0 + cmp r5, #0 + beq _08040120 + bl sub_08000E50 + ldr r1, _08040128 @ =0x00003F3F + ands r0, r1 + movs r3, #0xff + adds r1, r0, #0 + ands r1, r3 + ldr r6, _0804012C @ =0x0000FFE0 + adds r2, r6, #0 + adds r1, r2, r1 + ldrh r6, [r5, #0x2e] + adds r1, r1, r6 + strh r1, [r5, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r5, #0x32] + adds r2, r2, r0 + strh r2, [r5, #0x32] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2] + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_080A3268 +_08040120: + adds r0, r4, #0 + bl sub_080042B8 +_08040126: + pop {r4, r5, r6, pc} + .align 2, 0 +_08040128: .4byte 0x00003F3F +_0804012C: .4byte 0x0000FFE0 + + thumb_func_start sub_08040130 +sub_08040130: @ 0x08040130 + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xe] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #6 + orrs r1, r2 + strb r1, [r3] + ldrb r1, [r0, #0xe] + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804015C +sub_0804015C: @ 0x0804015C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804017C + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804017C: + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r4, #0x2e] + adds r0, r5, #0 + adds r0, #0x7e + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #0 + bne _0804019E + adds r0, r4, #0 + bl sub_080042B8 + b _080401A6 +_0804019E: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA +_080401A6: + ldrb r0, [r5, #0xc] + cmp r0, #4 + bls _080401C0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080401D2 + movs r0, #1 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _080401D2 +_080401C0: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080401D2 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080401D2: + ldrb r0, [r5, #0xc] + cmp r0, #3 + beq _080401DC + ldrh r0, [r5, #0x36] + strh r0, [r4, #0x36] +_080401DC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080401E0 +sub_080401E0: @ 0x080401E0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xb] + adds r5, r1, #0 + cmp r5, #0 + beq _08040212 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, #1 + adds r3, r4, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0xb] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + b _08040260 +_08040212: + 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] + ldr r0, _08040264 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08040260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_08040648 + adds r0, r4, #0 + movs r1, #2 + movs r2, #2 + bl sub_08040648 + movs r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x17 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x74 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08040260: + pop {r4, r5, pc} + .align 2, 0 +_08040264: .4byte gUnk_03003DBC + + thumb_func_start sub_08040268 +sub_08040268: @ 0x08040268 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08040286 + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_08040286: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r2, [r4, #0xb] + cmp r2, #1 + beq _080402C6 + cmp r2, #1 + bgt _0804029E + cmp r2, #0 + beq _080402E4 + b _08040382 +_0804029E: + cmp r2, #2 + bne _08040382 + ldr r1, _080402DC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + lsls r0, r0, #1 + ldr r1, _080402E0 @ =gUnk_080D0B18 + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r2, [r4, #0x2e] + adds r1, r1, r2 + strh r1, [r4, #0x2e] + ldrb r0, [r0, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] +_080402C6: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x1e] + cmp r0, #2 + beq _08040382 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + b _08040382 + .align 2, 0 +_080402DC: .4byte gLinkEntity +_080402E0: .4byte gUnk_080D0B18 +_080402E4: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r0, [r5] + cmp r0, #1 + beq _0804032E + cmp r0, #1 + bgt _080402F8 + cmp r0, #0 + beq _08040302 + b _08040382 +_080402F8: + cmp r0, #0x10 + beq _08040354 + cmp r0, #0x11 + beq _08040366 + b _08040382 +_08040302: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040382 + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x27 + strb r0, [r4, #0xf] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08040382 + strb r1, [r5] + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + b _08040382 +_0804032E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040382 + strb r2, [r5] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x17 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _08040382 +_08040354: + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + movs r0, #0x11 + strb r0, [r5] + movs r0, #0x50 + strb r0, [r4, #0xf] + b _08040382 +_08040366: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08040382 + movs r0, #1 + strb r0, [r5] + movs r0, #0x30 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC +_08040382: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804038C +sub_0804038C: @ 0x0804038C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080403AA + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_080403AA: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x1e] + cmp r0, #2 + bne _080403CA + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] +_080403CA: + pop {r4, pc} + + thumb_func_start sub_080403CC +sub_080403CC: @ 0x080403CC + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + subs r1, #9 + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r3] + movs r1, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080403EC +sub_080403EC: @ 0x080403EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804040A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804040A: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804041C +sub_0804041C: @ 0x0804041C + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + adds r1, r0, #0 + adds r1, #0x80 + strb r2, [r1] + movs r1, #0xa + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x18] + subs r1, #0xe + ands r1, r2 + strb r1, [r0, #0x18] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804044C +sub_0804044C: @ 0x0804044C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804046A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804046A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #5 + beq _0804048A + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _080404BC + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r4, #0x18] + b _080404BC +_0804048A: + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + bne _080404A6 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_080404A6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080404BC + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, _080404CC @ =0x00000149 + bl sub_080A3268 +_080404BC: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_080404CC: .4byte 0x00000149 + + thumb_func_start sub_080404D0 +sub_080404D0: @ 0x080404D0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xb] + cmp r0, #0 + beq _080404FC + movs r0, #2 + strb r0, [r2, #0xc] + movs r0, #0xa + strb r0, [r2, #0xe] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + subs r0, #0x12 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 + b _08040518 +_080404FC: + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + 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] +_08040518: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804051C +sub_0804051C: @ 0x0804051C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _0804053A + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_0804053A: + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + beq _0804054A + cmp r0, #1 + beq _0804056C + b _080405C4 +_0804054A: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + bne _080405CC + movs r0, #1 + movs r2, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _080405C4 +_0804056C: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + beq _08040582 + movs r0, #0 + strb r0, [r1] + ldrb r1, [r4, #0x18] + subs r0, #4 + ands r0, r1 + strb r0, [r4, #0x18] + b _080405C4 +_08040582: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080405A8 + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r0, _080405D0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _080405A8 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + movs r2, #1 + bl sub_08040648 +_080405A8: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080405BE + movs r0, #0xa + strb r0, [r4, #0xe] + ldr r0, _080405D4 @ =0x00000149 + bl sub_080A3268 +_080405BE: + adds r0, r4, #0 + bl sub_08004274 +_080405C4: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 +_080405CC: + pop {r4, pc} + .align 2, 0 +_080405D0: .4byte gUnk_03003DBC +_080405D4: .4byte 0x00000149 + + thumb_func_start sub_080405D8 +sub_080405D8: @ 0x080405D8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080405F6 + adds r2, r4, #0 + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + bl sub_0805E780 +_080405F6: + adds r3, r4, #0 + adds r3, #0x80 + ldrb r2, [r3] + cmp r2, #0 + bne _08040626 + ldr r0, [r4, #0x50] + ldr r0, [r0, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #6 + beq _08040638 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040638 + adds r0, r2, #1 + strb r0, [r3] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08040638 +_08040626: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040638 + bl sub_0805E780 +_08040638: + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08040648 +sub_08040648: @ 0x08040648 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r7, r2, #0 + movs r0, #0x4f + bl CreateEnemy + adds r5, r0, #0 + strb r7, [r5, #0xb] + str r6, [r5, #0x50] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0806FA24 + cmp r4, #2 + bne _0804066E + cmp r7, #0 + bne _0804066E + str r5, [r6, #0x54] +_0804066E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08040670 +sub_08040670: @ 0x08040670 + push {lr} + adds r2, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x80 + strb r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + movs r0, #0xc + strb r0, [r2, #0xe] + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08040698 + adds r0, r2, #0 + bl sub_080406A0 + b _0804069E +_08040698: + adds r0, r2, #0 + bl sub_08040770 +_0804069E: + pop {pc} + + thumb_func_start sub_080406A0 +sub_080406A0: @ 0x080406A0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + bl sub_08000E50 + mov r8, r0 + movs r0, #0x30 + mov r1, r8 + ands r1, r0 + mov r8, r1 + adds r0, r5, #0 + adds r0, #0x86 + ldrb r6, [r0] + ldr r2, _080406F0 @ =gUnk_03000BF0 + ldrh r3, [r2, #6] + ldr r4, _080406F4 @ =gUnk_080D0B58 + lsls r1, r6, #1 + lsls r0, r6, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r7, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 + adds r0, r5, #0 + adds r1, r7, #0 + adds r2, r4, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0804071E + cmp r6, #0 + beq _080406F8 + movs r6, #0 + b _08040702 + .align 2, 0 +_080406F0: .4byte gUnk_03000BF0 +_080406F4: .4byte gUnk_080D0B58 +_080406F8: + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + adds r6, r1, #1 +_08040702: + ldr r2, _0804074C @ =gUnk_03000BF0 + ldrh r3, [r2, #6] + ldr r4, _08040750 @ =gUnk_080D0B58 + lsls r1, r6, #1 + lsls r0, r6, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r7, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 +_0804071E: + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r7, #0 + adds r3, r4, #0 + bl sub_080045D4 + strb r0, [r5, #0x15] + movs r0, #0x20 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _0804075A + ldrb r1, [r5, #0x15] + movs r0, #0x10 + mov r2, r8 + ands r2, r0 + cmp r2, #0 + beq _08040754 + adds r0, r1, #1 + b _08040758 + .align 2, 0 +_0804074C: .4byte gUnk_03000BF0 +_08040750: .4byte gUnk_080D0B58 +_08040754: + adds r0, r1, #0 + adds r0, #0x1f +_08040758: + strb r0, [r5, #0x15] +_0804075A: + ldrb r0, [r5, #0x15] + movs r1, #0x1f + ands r1, r0 + strb r1, [r5, #0x15] + adds r0, r5, #0 + adds r0, #0x86 + strb r6, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08040770 +sub_08040770: @ 0x08040770 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + bl sub_08000E50 + mov r8, r0 + movs r0, #0x38 + mov r1, r8 + ands r1, r0 + mov r8, r1 + adds r0, r7, #0 + adds r0, #0x86 + ldrb r5, [r0] + ldr r2, _080407CC @ =gUnk_03000BF0 + ldrh r3, [r2, #6] + ldr r4, _080407D0 @ =gUnk_080D0B64 + lsls r1, r5, #1 + lsls r0, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r6, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #0x1c + bl sub_0806FCB8 + cmp r0, #0 + beq _0804089A + ldrb r0, [r7, #0x14] + cmp r0, #2 + beq _08040822 + movs r0, #8 + mov r2, r8 + ands r0, r2 + cmp r0, #0 + beq _080407D4 + adds r5, #1 + b _080407D6 + .align 2, 0 +_080407CC: .4byte gUnk_03000BF0 +_080407D0: .4byte gUnk_080D0B64 +_080407D4: + adds r5, #3 +_080407D6: + movs r0, #3 + ands r5, r0 + adds r0, r7, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _0804087E + adds r0, r7, #0 + adds r0, #0x75 + ldrb r0, [r0] + cmp r0, #0x3c + beq _0804080A + cmp r0, #0x3c + bgt _080407F8 + cmp r0, #0xf + beq _08040802 + b _0804087E +_080407F8: + cmp r0, #0xc3 + beq _0804081A + cmp r0, #0xf0 + beq _08040812 + b _0804087E +_08040802: + cmp r5, #0 + bne _0804087E + movs r5, #2 + b _0804087E +_0804080A: + cmp r5, #1 + bne _0804087E + movs r5, #3 + b _0804087E +_08040812: + cmp r5, #2 + bne _0804087E + movs r5, #0 + b _0804087E +_0804081A: + cmp r5, #3 + bne _0804087E + movs r5, #1 + b _0804087E +_08040822: + adds r1, r7, #0 + adds r1, #0x87 + ldrb r2, [r1] + movs r0, #0x7f + ands r0, r2 + adds r4, r1, #0 + cmp r0, #0 + beq _08040848 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _0804083E + adds r5, #1 + b _08040840 +_0804083E: + adds r5, #3 +_08040840: + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] + b _0804087A +_08040848: + bl sub_08000E50 + movs r1, #7 + ands r0, r1 + adds r0, #4 + strb r0, [r4] + ldrb r6, [r4] + bl sub_08000E50 + movs r1, #0x20 + ands r1, r0 + cmp r1, #0 + bne _08040868 + movs r1, #0x80 + orrs r1, r6 + b _0804086A +_08040868: + adds r1, r6, #0 +_0804086A: + strb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08040878 + adds r5, #1 + b _0804087A +_08040878: + adds r5, #3 +_0804087A: + movs r0, #3 + ands r5, r0 +_0804087E: + ldr r2, _080408C8 @ =gUnk_03000BF0 + ldrh r3, [r2, #6] + ldr r4, _080408CC @ =gUnk_080D0B64 + lsls r1, r5, #1 + lsls r0, r5, #2 + adds r0, r0, r4 + ldrh r0, [r0] + adds r6, r3, r0 + ldrh r2, [r2, #8] + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + adds r4, r2, r0 +_0804089A: + movs r1, #0x2e + ldrsh r0, [r7, r1] + movs r2, #0x32 + ldrsh r1, [r7, r2] + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_080045D4 + strb r0, [r7, #0x15] + movs r0, #0x20 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _080408D6 + ldrb r1, [r7, #0x15] + movs r0, #0x10 + mov r2, r8 + ands r2, r0 + cmp r2, #0 + beq _080408D0 + adds r0, r1, #1 + b _080408D4 + .align 2, 0 +_080408C8: .4byte gUnk_03000BF0 +_080408CC: .4byte gUnk_080D0B64 +_080408D0: + adds r0, r1, #0 + adds r0, #0x1f +_080408D4: + strb r0, [r7, #0x15] +_080408D6: + ldrb r0, [r7, #0x15] + movs r1, #0x1f + ands r1, r0 + strb r1, [r7, #0x15] + adds r0, r7, #0 + adds r0, #0x86 + strb r5, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080408EC +sub_080408EC: @ 0x080408EC + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x14] + cmp r0, #0 + bne _08040902 + movs r1, #0xf0 + adds r4, r2, #0 + adds r4, #0x75 + adds r5, r2, #0 + adds r5, #0x76 + b _08040926 +_08040902: + adds r4, r2, #0 + adds r4, #0x75 + adds r5, r2, #0 + adds r5, #0x76 + ldr r7, _08040930 @ =gUnk_080D0B74 + movs r6, #0x3c +_0804090E: + bl sub_08000E50 + ands r0, r6 + lsrs r0, r0, #2 + adds r0, r0, r7 + ldrb r1, [r0] + ldrb r0, [r4] + cmp r1, r0 + bne _08040922 + movs r1, #0xff +_08040922: + cmp r1, #0xff + beq _0804090E +_08040926: + movs r0, #0 + strb r1, [r4] + strb r0, [r5] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08040930: .4byte gUnk_080D0B74 + + thumb_func_start sub_08040934 +sub_08040934: @ 0x08040934 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x3e + ands r1, r0 + movs r2, #0 + cmp r1, #0x2e + bhi _08040948 + movs r2, #1 +_08040948: + adds r0, r4, #0 + adds r0, #0x87 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08040958 + movs r2, #0 +_08040958: + adds r4, #0x84 + ldrb r0, [r4] + cmp r0, #9 + beq _080409A4 + cmp r2, #0 + beq _080409AA + adds r0, #1 + movs r1, #5 + bl __modsi3 + strb r0, [r4] + bl sub_08000E50 + movs r1, #0xf8 + ands r1, r0 + lsrs r1, r1, #3 + ldr r0, _08040998 @ =gUnk_080D0B84 + adds r0, r1, r0 + ldrb r2, [r0] + ldrb r0, [r4] + cmp r0, #1 + beq _0804099C + cmp r0, #1 + blt _080409AA + cmp r0, #4 + bgt _080409AA + cmp r0, #3 + blt _080409AA + cmp r2, #0 + bne _080409AA + b _080409A8 + .align 2, 0 +_08040998: .4byte gUnk_080D0B84 +_0804099C: + cmp r2, #0 + beq _080409A8 + movs r2, #3 + b _080409AA +_080409A4: + movs r0, #0 + strb r0, [r4] +_080409A8: + movs r2, #1 +_080409AA: + adds r0, r2, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080409B0 +sub_080409B0: @ 0x080409B0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x81 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r0] + cmp r1, #1 + beq _080409EA + cmp r1, #1 + bgt _080409CA + cmp r1, #0 + beq _080409D0 + b _08040A68 +_080409CA: + cmp r1, #2 + beq _08040A04 + b _08040A68 +_080409D0: + adds r0, r4, #0 + adds r0, #0x75 + adds r2, r4, #0 + adds r2, #0x76 + ldrb r0, [r0] + ldrb r3, [r2] + cmp r0, r3 + bne _08040A68 + movs r0, #1 + mov r3, ip + strb r0, [r3] + strb r1, [r2] + b _08040A68 +_080409EA: + adds r0, r4, #0 + adds r0, #0x76 + ldrb r0, [r0] + cmp r0, #0 + beq _08040A68 + movs r0, #2 + mov r1, ip + strb r0, [r1] + adds r1, r4, #0 + adds r1, #0x77 + movs r0, #0x10 + strb r0, [r1] + b _08040A68 +_08040A04: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _08040A68 + adds r0, r4, #0 + adds r0, #0x75 + adds r3, r4, #0 + adds r3, #0x76 + ldrb r1, [r0] + ldrb r0, [r3] + ands r0, r1 + cmp r1, r0 + beq _08040A3C + movs r0, #1 + mov r1, ip + strb r0, [r1] + strb r2, [r3] + ldr r0, _08040A38 @ =0x00000155 + bl sub_080A3268 + b _08040A68 + .align 2, 0 +_08040A38: .4byte 0x00000155 +_08040A3C: + movs r1, #3 + strb r1, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + mov r3, ip + strb r1, [r3] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x36 + strb r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0xb2 + lsls r0, r0, #1 + bl sub_080A3268 +_08040A68: + adds r0, r4, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #2 + bhi _08040A84 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08040AC8 + adds r0, r4, #0 + bl sub_080AF18C + b _08040AC8 +_08040A84: + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + beq _08040AB0 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _08040AB0 + movs r0, #0xc + movs r1, #1 + bl sub_08080964 + ldr r0, _08040ACC @ =0x00000127 + bl sub_080A3268 +_08040AB0: + ldrb r0, [r5] + cmp r0, #0x8a + bne _08040AC8 + ldr r0, _08040AD0 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #5 + bne _08040AC8 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xc0 + strb r0, [r1] +_08040AC8: + pop {r4, r5, pc} + .align 2, 0 +_08040ACC: .4byte 0x00000127 +_08040AD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08040AD4 +sub_08040AD4: @ 0x08040AD4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + movs r1, #0x3f + ands r1, r0 + lsls r6, r1, #0x18 + lsrs r4, r6, #0x18 + movs r0, #0x1f + ands r0, r4 + cmp r0, #0 + bne _08040AF0 + ldr r0, _08040B0C @ =0x000001A9 + bl sub_080A3268 +_08040AF0: + movs r0, #3 + ands r4, r0 + cmp r4, #0 + bne _08040B2A + lsrs r4, r6, #0x1a + movs r0, #0x2e + ldrsh r2, [r5, r0] + adds r0, r4, #4 + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08040B10 + subs r0, r2, #1 + b _08040B12 + .align 2, 0 +_08040B0C: .4byte 0x000001A9 +_08040B10: + adds r0, r2, #1 +_08040B12: + strh r0, [r5, #0x2e] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #2 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _08040B26 + subs r0, r2, #1 + b _08040B28 +_08040B26: + adds r0, r2, #1 +_08040B28: + strh r0, [r5, #0x32] +_08040B2A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08040B2C +sub_08040B2C: @ 0x08040B2C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #1 + bne _08040B5C + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08040B5C + adds r0, r5, #0 + bl sub_08041300 + cmp r0, #0 + beq _08040B4E + adds r0, r5, #0 + bl sub_0803F6EC +_08040B4E: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_08040B5C: + ldr r4, _08040B80 @ =gUnk_080D0DC4 + 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 + movs r3, #0x10 + rsbs r3, r3, #0 + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, r5, pc} + .align 2, 0 +_08040B80: .4byte gUnk_080D0DC4 + + thumb_func_start sub_08040B84 +sub_08040B84: @ 0x08040B84 + push {lr} + ldr r2, _08040B98 @ =gUnk_080D0DDC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08040B98: .4byte gUnk_080D0DDC + + thumb_func_start sub_08040B9C +sub_08040B9C: @ 0x08040B9C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08040BD0 + movs r0, #0xff + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + lsrs r1, r1, #4 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08041134 + adds r0, r4, #0 + bl sub_0803F6EC +_08040BD0: + adds r0, r4, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x25 + bne _08040BF4 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x80 + bne _08040C0E + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08040C9C +_08040BF4: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0x80 + bne _08040C0E + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08040C0E: + ldrb r0, [r5] + cmp r0, #0x9d + bne _08040C1A + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_08040C1A: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08040C40 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08040C40: + adds r0, r4, #0 + adds r0, #0x45 + adds r1, r4, #0 + adds r1, #0x7a + ldrb r2, [r0] + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5] + cmp r2, r0 + beq _08040C9C + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040C70 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + lsrs r0, r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 + b _08040C98 +_08040C70: + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _08040C84 + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1] +_08040C84: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r6] + movs r0, #0xa + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_08040C98: + ldrb r0, [r6] + strb r0, [r5] +_08040C9C: + ldr r1, _08040CA8 @ =gUnk_080D0DC4 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08040CA8: .4byte gUnk_080D0DC4 + + thumb_func_start sub_08040CAC +sub_08040CAC: @ 0x08040CAC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08001328 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040D04 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08040D2C + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + movs r0, #0xff + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x58 + ldrb r0, [r1] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08040D2C + ldrb r1, [r1] + subs r1, #7 + movs r0, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + b _08040D2C +_08040D04: + ldrb r2, [r4, #0x18] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + movs r0, #1 + eors r1, r0 + movs r5, #4 + rsbs r5, r5, #0 + adds r3, r5, #0 + ands r3, r2 + orrs r3, r1 + strb r3, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D2C + ands r3, r5 + movs r0, #1 + orrs r3, r0 + strb r3, [r4, #0x18] +_08040D2C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08040D30 +sub_08040D30: @ 0x08040D30 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #7 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08040D4C + ldrb r1, [r4, #0x14] + adds r1, #7 + adds r0, r4, #0 + bl sub_08004260 +_08040D4C: + adds r0, r4, #0 + bl sub_08001242 + ldrh r1, [r4, #0x36] + movs r2, #0x36 + ldrsh r0, [r4, r2] + cmp r0, #0 + bne _08040D60 + ldr r0, _08040D8C @ =0x0000FFFF + strh r0, [r4, #0x36] +_08040D60: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _08040D88 + ldrb r0, [r4, #0x14] + movs r1, #1 + eors r1, r0 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0xff + strb r0, [r4, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08041134 +_08040D88: + pop {r4, pc} + .align 2, 0 +_08040D8C: .4byte 0x0000FFFF + + thumb_func_start sub_08040D90 +sub_08040D90: @ 0x08040D90 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08040DB4 + ldr r0, _08040DB0 @ =gUnk_080D0E08 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08040DC6 + .align 2, 0 +_08040DB0: .4byte gUnk_080D0E08 +_08040DB4: + adds r0, r4, #0 + bl sub_08041128 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #4 + adds r1, #1 + adds r0, r4, #0 + bl sub_08004260 +_08040DC6: + pop {r4, pc} + + thumb_func_start sub_08040DC8 +sub_08040DC8: @ 0x08040DC8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x3c + strb r1, [r0, #0x1d] + ldr r1, _08040DE0 @ =gLinkEntity + ldrb r1, [r1, #0x14] + lsrs r1, r1, #2 + adds r1, #5 + bl sub_08004260 + pop {pc} + .align 2, 0 +_08040DE0: .4byte gLinkEntity + + thumb_func_start sub_08040DE4 +sub_08040DE4: @ 0x08040DE4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F4E8 + pop {r4, pc} + + thumb_func_start sub_08040DF4 +sub_08040DF4: @ 0x08040DF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _08040E38 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _08040E26 + adds r2, r0, #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] +_08040E26: + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040E34 + adds r0, r4, #0 + bl sub_0804A7D4 + b _08040E38 +_08040E34: + bl sub_0805E780 +_08040E38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040E3C +sub_08040E3C: @ 0x08040E3C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0804A720 + bl sub_08000E50 + movs r2, #0x1e + adds r1, r0, #0 + ands r1, r2 + movs r2, #0 + strb r1, [r4, #0x15] + movs r1, #0xff + strb r1, [r4, #0x14] + movs r5, #1 + strb r5, [r4, #0x1c] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r1, [r1] + adds r3, r4, #0 + adds r3, #0x7a + strb r1, [r3] + lsrs r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x7c + strh r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08040E86 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0xe] + bl sub_0804B128 + str r0, [r4, #0x54] + b _08040E8C +_08040E86: + adds r0, r4, #0 + bl sub_080411CC +_08040E8C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08040E90 +sub_08040E90: @ 0x08040E90 + push {r4, lr} + adds r4, r0, #0 + bl sub_080411E8 + cmp r0, #0 + beq _08040EA4 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0xf + strb r0, [r4, #0xe] +_08040EA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040EA8 +sub_08040EA8: @ 0x08040EA8 + 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 _08040EC4 + adds r0, r4, #0 + bl sub_080411CC + adds r0, r4, #0 + bl sub_0804122C +_08040EC4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040EC8 +sub_08040EC8: @ 0x08040EC8 + 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 _08040F08 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + adds r1, r4, #0 + adds r1, #0x80 + ldrb r2, [r1] + movs r1, #0x30 + ands r1, r0 + adds r1, #0x3c + adds r0, r2, #0 + muls r0, r1, r0 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08040F08: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040F0C +sub_08040F0C: @ 0x08040F0C + push {r4, lr} + adds r4, r0, #0 + bl sub_08041170 + cmp r0, #0 + bne _08040F36 + adds r0, r4, #0 + bl sub_0803F58C + 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 _08040F36 + adds r0, r4, #0 + bl sub_08041128 +_08040F36: + pop {r4, pc} + + thumb_func_start sub_08040F38 +sub_08040F38: @ 0x08040F38 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + movs r1, #1 + bl sub_08049F84 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08040F8E + adds r0, r4, #0 + bl sub_0803F66C + adds r1, r4, #0 + adds r1, #0x78 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08040F94 + movs r0, #6 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r2, #0xe0 + adds r1, r0, #0 + ands r1, r2 + strb r1, [r4, #0xe] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x3c + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + b _08040F94 +_08040F8E: + adds r0, r4, #0 + bl sub_08041128 +_08040F94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08040F98 +sub_08040F98: @ 0x08040F98 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0803F5A8 + cmp r0, #0 + bne _08040FB2 + adds r0, r4, #0 + bl sub_08041128 + b _08041014 +_08040FB2: + movs r0, #1 + bl sub_08049DF4 + cmp r0, #0 + beq _0804100C + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0804100C + ldrb r1, [r4, #0xe] + adds r1, #1 + strb r1, [r4, #0xe] + ldr r2, _08041004 @ =gUnk_080D0E14 + lsls r0, r1, #0x18 + lsrs r0, r0, #0x1e + adds r0, r0, r2 + ldrb r0, [r0] + ands r1, r0 + cmp r1, #0 + bne _08040FF4 + ldr r0, _08041008 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080045C4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08040FF4: + adds r0, r4, #0 + bl sub_0803F66C + adds r0, r4, #0 + bl sub_080AEFB4 + b _08041014 + .align 2, 0 +_08041004: .4byte gUnk_080D0E14 +_08041008: .4byte gUnk_020000B0 +_0804100C: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] +_08041014: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041018 +sub_08041018: @ 0x08041018 + push {r4, 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 _08041042 + bl sub_08000E50 + movs r1, #0xf8 + ands r0, r1 + adds r0, #0xb4 + adds r1, r4, #0 + adds r1, #0x7c + strh r0, [r1] + adds r0, r4, #0 + bl sub_08041128 +_08041042: + pop {r4, pc} + + thumb_func_start sub_08041044 +sub_08041044: @ 0x08041044 + push {r4, lr} + adds r4, r0, #0 + bl sub_0803F738 + 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 _08041074 + movs r0, #0 + movs r1, #9 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_08041074: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041078 +sub_08041078: @ 0x08041078 + 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 _08041094 + adds r0, r4, #0 + bl sub_0803F6C0 +_08041094: + bl sub_0807953C + adds r1, r4, #0 + adds r1, #0x78 + cmp r0, #0 + beq _080410A6 + ldrh r0, [r1] + adds r0, #8 + strh r0, [r1] +_080410A6: + ldr r2, _08041100 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _080410B6 + movs r0, #0xe0 + strh r0, [r1] +_080410B6: + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xdf + bls _08041104 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x78 + strh r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] + subs r1, #0x3f + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0x14 + strb r0, [r1] + adds r1, #4 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + adds r0, r4, #0 + bl sub_08041128 + adds r0, r4, #0 + bl sub_0803F6EC + b _0804110A + .align 2, 0 +_08041100: .4byte gLinkEntity +_08041104: + adds r0, r4, #0 + bl sub_0803F738 +_0804110A: + pop {r4, pc} + + thumb_func_start sub_0804110C +sub_0804110C: @ 0x0804110C + push {r4, 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 _08041126 + adds r0, r4, #0 + bl sub_08041128 +_08041126: + pop {r4, pc} + + thumb_func_start sub_08041128 +sub_08041128: @ 0x08041128 + push {lr} + movs r1, #4 + strb r1, [r0, #0xc] + bl sub_0803F528 + pop {pc} + + thumb_func_start sub_08041134 +sub_08041134: @ 0x08041134 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #5 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x25 + strb r0, [r1] + movs r5, #0 + ldr r0, _08041168 @ =gUnk_03004040 + ldr r0, [r0] + cmp r0, #0 + beq _08041150 + movs r5, #0x3c +_08041150: + bl sub_08000E50 + ldr r2, _0804116C @ =gUnk_080D0E18 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r5 + adds r1, r4, #0 + adds r1, #0x78 + strh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08041168: .4byte gUnk_03004040 +_0804116C: .4byte gUnk_080D0E18 + + thumb_func_start sub_08041170 +sub_08041170: @ 0x08041170 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _08041184 + subs r0, #1 + strh r0, [r1] + b _080411C8 +_08041184: + adds r0, r4, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _080411C8 + adds r0, r4, #0 + bl sub_0806FD54 + cmp r0, #0 + bne _080411B6 + ldr r0, _080411C0 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + ble _080411C8 + ldr r0, _080411C4 @ =gUnk_020000B0 + ldr r1, [r0] + adds r0, r4, #0 + movs r2, #0x70 + movs r3, #0x48 + bl sub_080041A0 + cmp r0, #0 + beq _080411C8 +_080411B6: + adds r0, r4, #0 + bl sub_08041134 + movs r0, #1 + b _080411CA + .align 2, 0 +_080411C0: .4byte gUnk_02033A90 +_080411C4: .4byte gUnk_020000B0 +_080411C8: + movs r0, #0 +_080411CA: + pop {r4, pc} + + thumb_func_start sub_080411CC +sub_080411CC: @ 0x080411CC + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + subs r1, #7 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080411E8 +sub_080411E8: @ 0x080411E8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_08049FDC + cmp r0, #0 + beq _08041222 + ldrb r0, [r4, #0xb] + cmp r0, #1 + beq _08041204 + cmp r0, #2 + beq _08041218 +_08041200: + movs r0, #1 + b _08041224 +_08041204: + ldr r0, _08041214 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08041222 + b _08041200 + .align 2, 0 +_08041214: .4byte gUnk_03003F80 +_08041218: + ldr r0, _08041228 @ =gUnk_02033A90 + movs r1, #0xa + ldrsh r0, [r0, r1] + cmp r0, #0xf + bgt _08041200 +_08041222: + movs r0, #0 +_08041224: + pop {r4, pc} + .align 2, 0 +_08041228: .4byte gUnk_02033A90 + + thumb_func_start sub_0804122C +sub_0804122C: @ 0x0804122C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + ldr r0, [r4, #0x54] + mov r8, r0 + bl sub_08000E50 + movs r6, #6 + ands r6, r0 + lsrs r5, r0, #8 + movs r0, #3 + ands r5, r0 + movs r7, #0 + ldr r3, _080412FC @ =gUnk_03000BF0 + mov sb, r3 +_08041250: + movs r0, #0x50 + movs r1, #1 + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _080412C8 + lsls r1, r6, #1 + add r1, r8 + mov r3, sb + ldrh r0, [r3, #6] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + mov r3, sb + ldrh r0, [r3, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r2, #0x32] + str r4, [r2, #0x50] + adds r0, r2, #0 + adds r0, #0x80 + strb r5, [r0] + adds r3, r2, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r2, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A30 + adds r6, #2 + movs r0, #6 + ands r6, r0 + adds r5, #1 + movs r0, #3 + ands r5, r0 +_080412C8: + adds r7, #1 + cmp r7, #2 + bls _08041250 + lsls r1, r6, #1 + add r1, r8 + ldr r2, _080412FC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r3, [r1] + adds r0, r0, r3 + movs r3, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x38 + strb r3, [r0] + adds r0, r4, #0 + bl sub_08016A30 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080412FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08041300 +sub_08041300: @ 0x08041300 + push {lr} + adds r1, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x25 + bne _0804131A + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x80 + bne _0804131A + movs r0, #1 + b _0804132C +_0804131A: + movs r2, #0 + ldrb r0, [r1, #0xc] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0804132A + movs r2, #1 +_0804132A: + adds r0, r2, #0 +_0804132C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08041330 +sub_08041330: @ 0x08041330 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08041384 + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041384 + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r2] + cmp r0, #0 + bne _08041384 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x84 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08041384 + movs r0, #0xd + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldr r0, _08041398 @ =0x80010000 + bl sub_080A3268 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 +_08041384: + ldr r0, _0804139C @ =gUnk_080D0E1C + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_08041398: .4byte 0x80010000 +_0804139C: .4byte gUnk_080D0E1C + + thumb_func_start sub_080413A0 +sub_080413A0: @ 0x080413A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080423A4 + ldr r1, _080413BC @ =gUnk_080D0E2C + 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 +_080413BC: .4byte gUnk_080D0E2C + + thumb_func_start sub_080413C0 +sub_080413C0: @ 0x080413C0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r7, _080413F8 @ =gUnk_030010A0 + adds r0, r7, #0 + adds r0, #0x38 + ldrb r0, [r0] + movs r6, #1 + adds r5, r6, #0 + ands r5, r0 + cmp r5, #0 + beq _08041420 + adds r0, r4, #0 + bl sub_08041FCC + cmp r0, #0 + beq _08041486 + adds r0, r7, #0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _080413FC + movs r0, #5 + strb r0, [r4, #0xc] + strb r6, [r4, #0xd] + b _08041404 + .align 2, 0 +_080413F8: .4byte gUnk_030010A0 +_080413FC: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] +_08041404: + ldr r0, _0804141C @ =gUnk_030010A0 + adds r1, r0, #0 + adds r1, #0x40 + ldrh r1, [r1] + strh r1, [r4, #0x2e] + adds r0, #0x42 + ldrh r0, [r0] + strh r0, [r4, #0x32] + adds r0, r4, #0 + bl sub_08042004 + b _0804144A + .align 2, 0 +_0804141C: .4byte gUnk_030010A0 +_08041420: + adds r0, r4, #0 + bl sub_08041ED4 + cmp r0, #0 + beq _08041486 + strb r6, [r4, #0xc] + strb r5, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + strb r0, [r2] + ldr r0, _08041488 @ =0x0000FFB0 + strh r0, [r4, #0x36] + ldr r0, _0804148C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + bl sub_080809D4 +_0804144A: + 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 r3, r4, #0 + adds r3, #0x6d + ldrb r0, [r3] + movs r2, #0 + orrs r1, r0 + strb r1, [r3] + adds r0, r4, #0 + adds r0, #0x79 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c + strh r0, [r1] + adds r1, #2 + movs r0, #0x78 + strh r0, [r1] + adds r1, #6 + movs r0, #3 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08041486: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08041488: .4byte 0x0000FFB0 +_0804148C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08041490 +sub_08041490: @ 0x08041490 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xd] + cmp r0, #5 + bls _080414A0 + b _080415CC +_080414A0: + lsls r0, r0, #2 + ldr r1, _080414AC @ =_080414B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080414AC: .4byte _080414B0 +_080414B0: @ jump table + .4byte _080415E6 @ case 0 + .4byte _080414C8 @ case 1 + .4byte _08041510 @ case 2 + .4byte _08041532 @ case 3 + .4byte _0804155C @ case 4 + .4byte _08041592 @ case 5 +_080414C8: + 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, [r4, #0x34] + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrh r1, [r4, #0x36] + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _080414F4 + ldr r0, _0804150C @ =0x000001A9 + bl sub_080A3268 +_080414F4: + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080415E6 + movs r0, #2 + strb r0, [r4, #0xd] + ldr r0, _0804150C @ =0x000001A9 + bl sub_080A3268 + b _080415E6 + .align 2, 0 +_0804150C: .4byte 0x000001A9 +_08041510: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041520 + subs r0, #1 + b _080415E4 +_08041520: + adds r0, r4, #0 + movs r1, #0 + bl sub_08041F74 + cmp r0, #0 + beq _080415E6 + movs r0, #3 + strb r0, [r4, #0xd] + b _080415E2 +_08041532: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08041544 + subs r0, #1 + b _080415E4 +_08041544: + adds r0, r4, #0 + movs r1, #1 + bl sub_08041F74 + cmp r0, #0 + beq _080415E6 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + b _080415E6 +_0804155C: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08041574 + movs r0, #5 + strb r0, [r4, #0xd] + b _080415E6 +_08041574: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3c + bhi _080415E6 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080415E6 + adds r0, r4, #0 + bl sub_08041F1C + cmp r0, #0 + beq _080415E6 + movs r0, #1 + strb r0, [r4, #0xf] + b _080415E6 +_08041592: + adds r0, r4, #0 + bl sub_08042004 + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r1, _080415BC @ =gUnk_030010A0 + adds r1, #0x38 + ldrb r2, [r1] + movs r0, #1 + orrs r0, r2 + strb r0, [r1] + ldr r1, _080415C0 @ =gUnk_03000BF0 + ldr r0, _080415C4 @ =gLinkEntity + str r0, [r1, #0x30] + ldr r0, _080415C8 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] + b _080415E6 + .align 2, 0 +_080415BC: .4byte gUnk_030010A0 +_080415C0: .4byte gUnk_03000BF0 +_080415C4: .4byte gLinkEntity +_080415C8: .4byte gUnk_03003F80 +_080415CC: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080415E6 + movs r0, #2 + strb r0, [r4, #0xc] +_080415E2: + movs r0, #0x3c +_080415E4: + strb r0, [r4, #0xe] +_080415E6: + pop {r4, r5, pc} + + thumb_func_start sub_080415E8 +sub_080415E8: @ 0x080415E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08041614 + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08042028 +_08041614: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041618 +sub_08041618: @ 0x08041618 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + ldr r0, _0804165C @ =gUnk_03000BF0 + ldrh r2, [r0, #8] + adds r0, r2, #0 + adds r0, #0x90 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + blt _08041644 + adds r0, r2, #0 + adds r0, #0x40 + cmp r0, r1 + ble _08041646 +_08041644: + strh r0, [r4, #0x32] +_08041646: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08041660 + movs r0, #4 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] + b _08041694 + .align 2, 0 +_0804165C: .4byte gUnk_03000BF0 +_08041660: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1d + bhi _0804166E + ldrh r0, [r4, #0x24] + subs r0, #8 + b _0804167A +_0804166E: + ldrh r1, [r4, #0x24] + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0xff + bgt _0804167C + adds r0, r1, #6 +_0804167A: + strh r0, [r4, #0x24] +_0804167C: + ldrb r1, [r4, #0xe] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _08041694 + adds r0, r4, #0 + bl sub_0804207C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 +_08041694: + adds r0, r4, #0 + bl sub_0804212C + adds r0, r4, #0 + bl sub_080421AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080416A4 +sub_080416A4: @ 0x080416A4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080416DA + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0 + bne _080416D4 + adds r0, r4, #0 + bl sub_08042120 + b _080416DA +_080416D4: + adds r0, r4, #0 + bl sub_08042028 +_080416DA: + pop {r4, pc} + + thumb_func_start sub_080416DC +sub_080416DC: @ 0x080416DC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08042004 + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_0804212C + adds r0, r5, #0 + bl sub_080421AC + ldrb r1, [r5, #0xd] + cmp r1, #0 + bne _08041748 + movs r4, #1 + strb r4, [r5, #0xd] + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _08041716 + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x14] + cmp r2, #0 + bne _08041724 + ldr r2, [r0, #0x18] + b _08041720 +_08041716: + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x18] + cmp r2, #0 + bne _08041724 + ldr r2, [r0, #0x14] +_08041720: + cmp r2, #0 + beq _08041734 +_08041724: + ldrb r0, [r2, #0xc] + cmp r0, #2 + bne _08041734 + movs r1, #0 + movs r0, #4 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + b _080417AA +_08041734: + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08042028 + b _080417AA +_08041748: + adds r0, r5, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + bne _080417AA + adds r2, r1, #0 + cmp r2, #2 + bne _080417AA + ldr r0, _0804179C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _080417A4 + movs r0, #0xb5 + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _080417AA + str r5, [r2, #0x50] + ldr r1, [r5, #0x64] + str r2, [r1, #0x10] + ldr r0, _080417A0 @ =gUnk_03000BF0 + str r2, [r0, #0x30] + movs r0, #6 + strb r0, [r5, #0xc] + movs r0, #0x1e + strb r0, [r5, #0xe] + ldr r1, [r1, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + movs r1, #0xe + bl sub_08004260 + b _080417AA + .align 2, 0 +_0804179C: .4byte gUnk_030010A0 +_080417A0: .4byte gUnk_03000BF0 +_080417A4: + strb r2, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] +_080417AA: + pop {r4, r5, pc} + + thumb_func_start sub_080417AC +sub_080417AC: @ 0x080417AC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08041816 + ldr r0, [r5, #0x64] + ldr r4, [r0, #4] + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + adds r0, r1, #0 + cmp r0, #1 + bne _080417DA + movs r0, #0xfe + ands r0, r1 + strb r0, [r4] + adds r0, r5, #0 + movs r1, #4 + bl sub_080042AC + b _0804181A +_080417DA: + cmp r0, #2 + bne _08041806 + movs r0, #0x51 + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _0804181A + ldr r0, [r5, #0x64] + str r0, [r1, #0x64] + ldr r0, [r5, #0x64] + str r1, [r0, #0xc] + ldr r0, [r0, #8] + movs r1, #0x14 + bl sub_08004260 + ldrb r1, [r4] + movs r0, #0xfd + ands r0, r1 + strb r0, [r4] + b _0804181A +_08041806: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804181A + adds r0, r5, #0 + bl sub_0804235C + b _0804181A +_08041816: + subs r0, #1 + strb r0, [r5, #0xe] +_0804181A: + adds r0, r5, #0 + bl sub_08042004 + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + + thumb_func_start sub_08041828 +sub_08041828: @ 0x08041828 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042214 + adds r0, r4, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + ldr r2, _08041868 @ =gUnk_03000BF0 + ldrh r0, [r2, #8] + adds r0, #0x48 + movs r3, #0x32 + ldrsh r1, [r4, r3] + cmp r0, r1 + beq _0804186C + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrh r0, [r2, #8] + adds r0, #0x48 + movs r2, #0 + cmp r0, r1 + blt _0804185C + movs r2, #0x10 +_0804185C: + strb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + b _0804187E + .align 2, 0 +_08041868: .4byte gUnk_03000BF0 +_0804186C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804187E + adds r0, r4, #0 + bl sub_08042050 +_0804187E: + pop {r4, pc} + + thumb_func_start sub_08041880 +sub_08041880: @ 0x08041880 + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _080418D4 @ =gUnk_03000BF0 + ldrh r2, [r0, #6] + adds r0, r2, #0 + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bgt _080418AE + movs r3, #0xa0 + lsls r3, r3, #1 + adds r0, r2, r3 + cmp r0, r1 + bge _080418BE +_080418AE: + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0x3f + ble _080418BE + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r0, r1 + strb r0, [r4, #0x15] +_080418BE: + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080418D8 + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + b _080418F8 + .align 2, 0 +_080418D4: .4byte gUnk_03000BF0 +_080418D8: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1d + bhi _080418E6 + ldrh r0, [r4, #0x24] + subs r0, #0xc + b _080418F6 +_080418E6: + ldrh r2, [r4, #0x24] + movs r3, #0x24 + ldrsh r1, [r4, r3] + ldr r0, _08041900 @ =0x000001FF + cmp r1, r0 + bgt _080418F8 + adds r0, r2, #0 + adds r0, #0x10 +_080418F6: + strh r0, [r4, #0x24] +_080418F8: + adds r0, r4, #0 + bl sub_08042214 + pop {r4, pc} + .align 2, 0 +_08041900: .4byte 0x000001FF + + thumb_func_start sub_08041904 +sub_08041904: @ 0x08041904 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r0, [r3] + cmp r0, #0 + beq _08041924 + adds r0, r4, #0 + bl sub_08042214 + b _0804197A +_08041924: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r2, r0, #0x18 + cmp r2, #0 + bne _0804197A + ldr r0, _0804196C @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r0, r1] + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r0, r0, r1 + adds r0, #0x40 + cmp r0, #0x80 + bhi _08041970 + movs r0, #0xa + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x7b + strb r2, [r0] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x1c] + movs r1, #1 + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x20] + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x24] + strb r1, [r0, #0xe] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x28] + strb r1, [r0, #0xe] + b _0804197A + .align 2, 0 +_0804196C: .4byte gLinkEntity +_08041970: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r2, [r3] +_0804197A: + pop {r4, r5, pc} + + thumb_func_start sub_0804197C +sub_0804197C: @ 0x0804197C + push {r4, lr} + adds r4, r0, #0 + bl sub_08042004 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + cmp r0, #0xf + bne _080419A6 + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + b _080419F6 +_080419A6: + cmp r0, #0xf0 + bne _080419F6 + movs r1, #0 + movs r0, #0xb + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + strb r1, [r4, #0x15] + adds r0, #0xf5 + strh r0, [r4, #0x24] + movs r0, #0x90 + lsls r0, r0, #9 + str r0, [r4, #0x20] + ldr r1, _080419F8 @ =0x0000016B + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #5 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0xf + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x15 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1e + bl sub_08004260 + ldr r0, _080419FC @ =0x00000127 + bl sub_080A3268 +_080419F6: + pop {r4, pc} + .align 2, 0 +_080419F8: .4byte 0x0000016B +_080419FC: .4byte 0x00000127 + + thumb_func_start sub_08041A00 +sub_08041A00: @ 0x08041A00 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041A60 + cmp r0, #1 + beq _08041ABC + ldr r2, _08041A5C @ =gUnk_080D0E64 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldrb r1, [r4, #0xe] + cmp r1, #0 + bne _08041AF0 + movs r0, #0xc + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r1, #0xa0 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0801D2B4 + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x10 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x18 + bl sub_08004260 + b _08041AF0 + .align 2, 0 +_08041A5C: .4byte gUnk_080D0E64 +_08041A60: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08004274 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08041AF0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf0 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #8 + strb r0, [r1] + subs r1, #6 + movs r0, #0x38 + strb r0, [r1] + movs r0, #0x14 + movs r1, #0 + bl sub_08080964 + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x16 + bl sub_08004260 + b _08041AF0 +_08041ABC: + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r2, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08041AF0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + adds r1, #6 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] +_08041AF0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08041AF4 +sub_08041AF4: @ 0x08041AF4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041B12 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08004274 +_08041B12: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08041B44 + cmp r0, #1 + beq _08041B70 + adds r0, r4, #0 + bl sub_08042004 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r2, r0, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08041BC0 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #9 + bl sub_080042AC + b _08041BCE +_08041B44: + ldr r0, [r4, #0x34] + ldr r1, _08041B6C @ =0xFFFF8000 + adds r0, r0, r1 + str r0, [r4, #0x34] + movs r2, #0x36 + ldrsh r1, [r4, r2] + movs r0, #4 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08041BCE + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + b _08041BCE + .align 2, 0 +_08041B6C: .4byte 0xFFFF8000 +_08041B70: + adds r0, r4, #0 + bl sub_08042004 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041B82 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041BCE +_08041B82: + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, _08041BBC @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, #0x48 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _08041BCE + movs r0, #2 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x11 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x19 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1f + bl sub_08004260 + b _08041BCE + .align 2, 0 +_08041BBC: .4byte gUnk_03000BF0 +_08041BC0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041BCE + adds r0, r4, #0 + bl sub_0804235C +_08041BCE: + pop {r4, pc} + + thumb_func_start sub_08041BD0 +sub_08041BD0: @ 0x08041BD0 + push {lr} + ldr r2, _08041BE4 @ =gUnk_080D0E68 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08041BE4: .4byte gUnk_080D0E68 + + thumb_func_start sub_08041BE8 +sub_08041BE8: @ 0x08041BE8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + bl sub_08079F8C + cmp r0, #0 + beq _08041CBA + movs r5, #0 + movs r0, #1 + strb r0, [r6, #0xd] + movs r0, #0x78 + strb r0, [r6, #0xe] + ldrb r1, [r6, #0x11] + movs r4, #0x10 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r1, #3 + mov r8, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r6, #0x11] + adds r0, r6, #0 + movs r1, #0xa + bl sub_080042AC + ldr r0, [r6, #0x64] + ldr r7, [r0, #4] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #4] + ldr r7, [r0, #8] + ldrb r0, [r7, #0x11] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r7, #0x11] + adds r0, r7, #0 + bl sub_080AE068 + ldr r1, _08041CC0 @ =0x000001F5 + adds r0, r7, #0 + bl sub_080ADF80 + ldr r1, _08041CC4 @ =0x0000016B + adds r0, r7, #0 + bl sub_0801D2B4 + adds r0, r7, #0 + movs r1, #0x1a + bl sub_08004260 + ldr r0, [r6, #0x64] + ldr r7, [r0, #0xc] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0xc] + ldr r7, [r0, #0x10] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r2, [r6, #0x64] + str r5, [r2, #0x10] + ldr r1, _08041CC8 @ =gUnk_03000BF0 + ldr r0, _08041CCC @ =gLinkEntity + str r0, [r1, #0x30] + ldr r7, [r2, #0x1c] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x1c] + ldr r7, [r0, #0x20] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x20] + ldr r7, [r0, #0x24] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x24] + ldr r7, [r0, #0x28] + str r5, [r7, #0x64] + adds r0, r7, #0 + bl sub_0805E7BC + ldr r0, [r6, #0x64] + str r5, [r0, #0x28] + movs r0, #2 + bl sub_08078A90 +_08041CBA: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08041CC0: .4byte 0x000001F5 +_08041CC4: .4byte 0x0000016B +_08041CC8: .4byte gUnk_03000BF0 +_08041CCC: .4byte gLinkEntity + + thumb_func_start sub_08041CD0 +sub_08041CD0: @ 0x08041CD0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08041D0C + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08041CF6 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041D12 +_08041CF6: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, _08041D08 @ =0x00001651 + bl sub_08056378 + b _08041D12 + .align 2, 0 +_08041D08: .4byte 0x00001651 +_08041D0C: + adds r0, r4, #0 + bl sub_080042B8 +_08041D12: + pop {r4, pc} + + thumb_func_start sub_08041D14 +sub_08041D14: @ 0x08041D14 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, _08041D3C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08041D7C + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08041D40 + subs r0, #1 + strb r0, [r4, #0xe] + b _08041D7C + .align 2, 0 +_08041D3C: .4byte gUnk_02000050 +_08041D40: + ldr r0, _08041D80 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08041D7C + movs r0, #0xb6 + movs r1, #0 + movs r2, #0 + bl CreateObject + str r4, [r0, #0x50] + str r0, [r4, #0x54] + movs r0, #0xb6 + movs r1, #1 + movs r2, #0 + bl CreateObject + str r4, [r0, #0x50] + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x96 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x9a + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xe2 + lsls r0, r0, #1 + bl sub_080A3268 +_08041D7C: + pop {r4, r5, pc} + .align 2, 0 +_08041D80: .4byte gUnk_03003DBC + + thumb_func_start sub_08041D84 +sub_08041D84: @ 0x08041D84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08041D9C + subs r0, #1 + strb r0, [r5, #0xe] + b _08041E18 +_08041D9C: + ldrb r1, [r5, #0xf] + adds r0, r1, #0 + cmp r0, #0xef + bhi _08041DEC + cmp r0, #0xb7 + bls _08041DD8 + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _08041DD8 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + ldr r4, _08041DE8 @ =gUnk_080D0E80 + ldrb r1, [r5, #0xf] + subs r1, #0xb8 + asrs r1, r1, #3 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + bl sub_0801D2B4 + ldr r0, [r5, #0x54] + ldrb r1, [r5, #0xf] + subs r1, #0xb8 + asrs r1, r1, #3 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r1, [r1] + bl sub_0801D2B4 +_08041DD8: + ldrb r0, [r5, #0xf] + cmp r0, #0xe6 + bne _08041E0C + movs r0, #7 + movs r1, #4 + bl sub_08050054 + b _08041E0C + .align 2, 0 +_08041DE8: .4byte gUnk_080D0E80 +_08041DEC: + movs r0, #4 + strb r0, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #8 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r5, #0x18] + ldr r1, _08041E1C @ =0x00000173 + adds r0, r5, #0 + bl sub_0801D2B4 + adds r0, r5, #0 + movs r1, #0xb + bl sub_080042AC +_08041E0C: + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + adds r0, r5, #0 + bl sub_08041E78 +_08041E18: + pop {r4, r5, pc} + .align 2, 0 +_08041E1C: .4byte 0x00000173 + + thumb_func_start sub_08041E20 +sub_08041E20: @ 0x08041E20 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08041E78 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, _08041E4C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08041E48 + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x5a + strb r0, [r4, #0xe] +_08041E48: + pop {r4, pc} + .align 2, 0 +_08041E4C: .4byte gUnk_03000FD0 + + thumb_func_start sub_08041E50 +sub_08041E50: @ 0x08041E50 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08041E76 + movs r0, #0x51 + bl sub_0807CD04 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + str r5, [r0, #0x64] + bl sub_0805E7BC + bl sub_0805E780 +_08041E76: + pop {r4, r5, pc} + + thumb_func_start sub_08041E78 +sub_08041E78: @ 0x08041E78 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xf] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08041ECE + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08041ECE + ldrb r1, [r4, #0xf] + lsrs r1, r1, #3 + movs r0, #0xe + ands r1, r0 + ldr r0, _08041ED0 @ =gUnk_080D0E90 + 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] + 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] + movs r0, #4 + movs r1, #0 + bl sub_08080964 +_08041ECE: + pop {r4, pc} + .align 2, 0 +_08041ED0: .4byte gUnk_080D0E90 + + thumb_func_start sub_08041ED4 +sub_08041ED4: @ 0x08041ED4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08041F14 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x45 + bhi _08041F18 + movs r0, #0x2c + bl sub_0801D8E0 + adds r4, r0, #0 + cmp r4, #0 + beq _08041F18 + str r4, [r5, #0x64] + str r5, [r4] + movs r0, #0 + str r0, [r4, #0xc] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + movs r0, #0x51 + movs r1, #1 + bl CreateEnemy + str r4, [r0, #0x64] + str r0, [r4, #4] + movs r0, #0x51 + movs r1, #2 + bl CreateEnemy + str r4, [r0, #0x64] + str r0, [r4, #8] + movs r0, #1 + b _08041F1A + .align 2, 0 +_08041F14: .4byte gUnk_03003DBC +_08041F18: + movs r0, #0 +_08041F1A: + pop {r4, r5, pc} + + thumb_func_start sub_08041F1C +sub_08041F1C: @ 0x08041F1C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08041F6C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bhi _08041F70 + movs r0, #0x5f + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x1c] + movs r0, #0x5f + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x20] + movs r0, #0x5f + movs r1, #2 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x24] + movs r0, #0x5f + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + str r4, [r1, #0x50] + ldr r0, [r4, #0x64] + str r1, [r0, #0x28] + movs r0, #1 + b _08041F72 + .align 2, 0 +_08041F6C: .4byte gUnk_03003DBC +_08041F70: + movs r0, #0 +_08041F72: + pop {r4, pc} + + thumb_func_start sub_08041F74 +sub_08041F74: @ 0x08041F74 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r0, _08041F88 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bls _08041F8C + movs r0, #0 + b _08041FC8 + .align 2, 0 +_08041F88: .4byte gUnk_03003DBC +_08041F8C: + ldr r7, [r5, #0x64] + movs r4, #0 + ldr r0, _08041FC0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + asrs r0, r6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08041FB6 + movs r0, #0x52 + movs r1, #0 + bl CreateEnemy + adds r4, r0, #0 + strb r6, [r4, #0xb] + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_08041FB6: + cmp r6, #0 + bne _08041FC4 + str r4, [r7, #0x14] + b _08041FC6 + .align 2, 0 +_08041FC0: .4byte gUnk_030010A0 +_08041FC4: + str r4, [r7, #0x18] +_08041FC6: + movs r0, #1 +_08041FC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08041FCC +sub_08041FCC: @ 0x08041FCC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08041FFC @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x4c + bhi _08042000 + adds r0, r4, #0 + bl sub_08041ED4 + cmp r0, #0 + beq _08042000 + adds r0, r4, #0 + movs r1, #0 + bl sub_08041F74 + adds r0, r4, #0 + movs r1, #1 + bl sub_08041F74 + adds r0, r4, #0 + bl sub_08041F1C + movs r0, #1 + b _08042002 + .align 2, 0 +_08041FFC: .4byte gUnk_03003DBC +_08042000: + movs r0, #0 +_08042002: + pop {r4, pc} + + thumb_func_start sub_08042004 +sub_08042004: @ 0x08042004 + ldr r3, _08042024 @ =gUnk_080D0EA0 + adds r2, r0, #0 + adds r2, #0x78 + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x1c + movs r2, #7 + ands r1, r2 + adds r1, r1, r3 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + strh r1, [r0, #0x36] + bx lr + .align 2, 0 +_08042024: .4byte gUnk_080D0EA0 + + thumb_func_start sub_08042028 +sub_08042028: @ 0x08042028 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #3 + strb r5, [r4, #0xc] + bl sub_08000E50 + ldr r1, _0804204C @ =gUnk_080D0EA8 + ands r0, r5 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r4, #0xe] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804207C + strb r0, [r4, #0x15] + pop {r4, r5, pc} + .align 2, 0 +_0804204C: .4byte gUnk_080D0EA8 + + thumb_func_start sub_08042050 +sub_08042050: @ 0x08042050 + push {r4, lr} + adds r4, r0, #0 + movs r0, #8 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08042078 @ =gUnk_080D0EAC + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + movs r1, #0x20 + strh r1, [r4, #0x24] + lsrs r0, r0, #8 + movs r1, #0x10 + ands r0, r1 + adds r0, #8 + strb r0, [r4, #0x15] + pop {r4, pc} + .align 2, 0 +_08042078: .4byte gUnk_080D0EAC + + thumb_func_start sub_0804207C +sub_0804207C: @ 0x0804207C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r6, [r5, r0] + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r7, r0, #0 + subs r7, #0x10 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x14] + cmp r4, #0 + beq _080420B8 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _080420B8 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _080420B8 + movs r2, #0x2e + ldrsh r0, [r4, r2] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r6, #0 + adds r3, r7, #0 + b _08042118 +_080420B8: + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x18] + cmp r4, #0 + beq _080420E4 + ldrb r0, [r4, #0xc] + cmp r0, #4 + bls _080420E4 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + movs r3, #0x30 + bl sub_0806FCB8 + cmp r0, #0 + beq _080420E4 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r6, #0 + adds r3, r7, #0 + b _08042118 +_080420E4: + ldr r0, _080420FC @ =gLinkEntity + movs r4, #0x32 + ldrsh r1, [r0, r4] + adds r2, r0, #0 + cmp r1, #0x3f + bgt _08042104 + ldr r0, _08042100 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r3, r0, #0 + adds r3, #0x18 + b _0804210C + .align 2, 0 +_080420FC: .4byte gLinkEntity +_08042100: .4byte gUnk_03000BF0 +_08042104: + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r3, r0, #0 + subs r3, #0x28 +_0804210C: + movs r4, #0x2e + ldrsh r0, [r5, r4] + movs r4, #0x32 + ldrsh r1, [r5, r4] + movs r4, #0x2e + ldrsh r2, [r2, r4] +_08042118: + bl sub_080045D4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042120 +sub_08042120: @ 0x08042120 + movs r2, #0 + movs r1, #5 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0804212C +sub_0804212C: @ 0x0804212C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + ldrh r0, [r1] + cmp r0, #0 + beq _0804213E + subs r0, #1 + b _080421A8 +_0804213E: + movs r5, #0 + movs r0, #0x32 + ldrsh r1, [r4, r0] + subs r1, #0x44 + ldr r3, _0804216C @ =gLinkEntity + movs r2, #0x32 + ldrsh r0, [r3, r2] + subs r0, r0, r1 + cmp r0, #0x60 + bhi _0804217A + movs r6, #0x2e + ldrsh r2, [r4, r6] + adds r0, r2, #0 + subs r0, #0x38 + movs r6, #0x2e + ldrsh r1, [r3, r6] + subs r0, r1, r0 + cmp r0, #0x38 + bhi _08042170 + ldr r0, [r4, #0x64] + ldr r5, [r0, #0x18] + b _0804217A + .align 2, 0 +_0804216C: .4byte gLinkEntity +_08042170: + subs r0, r1, r2 + cmp r0, #0x38 + bhi _0804217A + ldr r0, [r4, #0x64] + ldr r5, [r0, #0x14] +_0804217A: + cmp r5, #0 + beq _080421A2 + ldrb r0, [r5, #0xc] + cmp r0, #2 + bne _080421AA + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080421AA + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0xb4 + lsls r0, r0, #2 + b _080421A8 +_080421A2: + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0x3c +_080421A8: + strh r0, [r1] +_080421AA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080421AC +sub_080421AC: @ 0x080421AC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x7e + ldrh r0, [r5] + adds r7, r0, #0 + cmp r7, #0 + beq _080421C0 + subs r0, #1 + b _08042210 +_080421C0: + adds r6, r4, #0 + adds r6, #0x79 + ldrb r0, [r6] + cmp r0, #0 + bne _080421FE + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _080421F4 + ldr r0, _080421F0 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _080421F4 + adds r0, r4, #0 + bl sub_08042264 + strb r5, [r6] + b _08042212 + .align 2, 0 +_080421F0: .4byte gUnk_030010A0 +_080421F4: + adds r1, r4, #0 + adds r1, #0x7e + movs r0, #0x1e + strh r0, [r1] + b _08042212 +_080421FE: + adds r0, r4, #0 + movs r1, #0 + bl sub_080422C0 + cmp r0, #0 + beq _08042212 + strb r7, [r6] + movs r0, #0xb4 + lsls r0, r0, #1 +_08042210: + strh r0, [r5] +_08042212: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08042214 +sub_08042214: @ 0x08042214 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x7e + ldrh r0, [r6] + adds r7, r0, #0 + cmp r7, #0 + beq _08042228 + subs r0, #1 + b _0804225E +_08042228: + adds r5, r4, #0 + adds r5, #0x79 + ldrb r0, [r5] + cmp r0, #0 + bne _0804224E + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0804224A + adds r0, r4, #0 + bl sub_0804228C + movs r0, #1 + strb r0, [r5] + b _08042260 +_0804224A: + movs r0, #0x1e + b _0804225E +_0804224E: + adds r0, r4, #0 + movs r1, #1 + bl sub_080422C0 + cmp r0, #0 + beq _08042260 + strb r7, [r5] + movs r0, #0xb4 +_0804225E: + strh r0, [r6] +_08042260: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042264 +sub_08042264: @ 0x08042264 + push {r4, lr} + adds r4, r0, #0 + movs r1, #1 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r1, [r0, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0xd + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x13 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_0804228C +sub_0804228C: @ 0x0804228C + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r1, [r0, #4] + movs r0, #1 + strb r0, [r1, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0xd + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x13 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1d + bl sub_08004260 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080422C0 +sub_080422C0: @ 0x080422C0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + mov r8, r1 + bl sub_080042B8 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + bl sub_08004274 + ldr r0, [r5, #0x64] + ldr r7, [r0, #4] + adds r0, r7, #0 + bl sub_08004274 + mov r0, r8 + adds r0, #1 + adds r6, r7, #0 + adds r6, #0x5a + ldrb r4, [r6] + cmp r0, r4 + bne _08042306 + movs r0, #0x21 + bl sub_080A7EE0 + cmp r0, #0 + beq _08042354 + mov r1, r8 + strb r1, [r0, #0xa] + str r5, [r0, #0x50] + ldrb r0, [r6] + bics r0, r4 + strb r0, [r6] + b _08042354 +_08042306: + cmp r4, #4 + bne _0804231A + movs r0, #0xfb + ands r4, r0 + strb r4, [r6] + adds r0, r5, #0 + movs r1, #3 + bl sub_080042AC + b _08042354 +_0804231A: + movs r0, #0x80 + ands r4, r0 + cmp r4, #0 + beq _08042354 + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + movs r0, #0 + strb r0, [r7, #0xd] + adds r0, r7, #0 + movs r1, #0xc + bl sub_08004260 + ldr r0, [r5, #0x64] + ldr r0, [r0, #8] + movs r1, #0x12 + bl sub_08004260 + mov r0, r8 + cmp r0, #1 + bne _08042350 + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1b + bl sub_08004260 +_08042350: + movs r0, #1 + b _08042356 +_08042354: + movs r0, #0 +_08042356: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804235C +sub_0804235C: @ 0x0804235C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x79 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x7e + movs r5, #0 + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + strb r5, [r0, #0xd] + movs r1, #0xc + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x12 + bl sub_08004260 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x1b + bl sub_08004260 + pop {r4, r5, pc} + + thumb_func_start sub_080423A4 +sub_080423A4: @ 0x080423A4 + push {r4, lr} + ldr r0, _080423CC @ =gUnk_030010A0 + adds r4, r0, #0 + adds r4, #0x38 + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0804241C + ldr r0, _080423D0 @ =gUnk_02002A40 + movs r2, #0x93 + lsls r2, r2, #3 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, #0 + beq _080423D4 + subs r0, #1 + str r0, [r1] + b _0804241C + .align 2, 0 +_080423CC: .4byte gUnk_030010A0 +_080423D0: .4byte gUnk_02002A40 +_080423D4: + ldr r2, _08042420 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0xa9 + ldrb r0, [r0] + cmp r0, #1 + bgt _0804241C + cmp r0, #0 + blt _0804241C + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _0804241C + ldr r1, _08042424 @ =gLinkEntity + adds r0, r1, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _0804241C + movs r3, #0x36 + ldrsh r0, [r1, r3] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0804240A + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _0804241C +_0804240A: + movs r0, #0xb7 + lsls r0, r0, #4 + movs r1, #0 + bl sub_08078AA8 + ldrb r0, [r4] + movs r1, #2 + orrs r0, r1 + strb r0, [r4] +_0804241C: + pop {r4, pc} + .align 2, 0 +_08042420: .4byte gUnk_03003F80 +_08042424: .4byte gLinkEntity + + thumb_func_start sub_08042428 +sub_08042428: @ 0x08042428 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _0804243C + str r0, [r4, #0x64] + bl sub_0805E780 +_0804243C: + ldrb r1, [r4, #0xc] + cmp r1, #0 + bne _08042450 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 +_08042450: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0804245C + adds r0, r4, #0 + bl sub_08004274 +_0804245C: + ldr r0, [r4, #0x58] + ldr r1, _0804249C @ =0x008000FF + ands r0, r1 + subs r1, #0xf3 + cmp r0, r1 + bne _08042480 + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x78 + ands r0, r1 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] +_08042480: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_0804249C: .4byte 0x008000FF + + thumb_func_start sub_080424A0 +sub_080424A0: @ 0x080424A0 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080424B4 + str r0, [r4, #0x64] + bl sub_0805E780 +_080424B4: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080424C6 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 +_080424C6: + ldr r0, [r4, #0x64] + ldr r0, [r0] + movs r3, #1 + rsbs r3, r3, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x12 + bne _08042502 + ldr r1, _08042504 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + ldr r1, _08042508 @ =gUnk_080D0EB0 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r4, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] +_08042502: + pop {r4, pc} + .align 2, 0 +_08042504: .4byte gLinkEntity +_08042508: .4byte gUnk_080D0EB0 + + thumb_func_start sub_0804250C +sub_0804250C: @ 0x0804250C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08042520 + str r0, [r4, #0x64] + bl sub_0805E780 +_08042520: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08042532 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x1c + bl sub_08004260 +_08042532: + ldr r0, [r4, #0x64] + ldr r0, [r0] + movs r3, #1 + rsbs r3, r3, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA90 + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08042554 +sub_08042554: @ 0x08042554 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0804256C @ =gUnk_080D1230 + 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 +_0804256C: .4byte gUnk_080D1230 + + thumb_func_start sub_08042570 +sub_08042570: @ 0x08042570 + push {lr} + ldr r2, _08042584 @ =gUnk_080D1248 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08042584: .4byte gUnk_080D1248 + + thumb_func_start sub_08042588 +sub_08042588: @ 0x08042588 + push {lr} + ldr r1, _08042594 @ =gUnk_080D1230 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08042594: .4byte gUnk_080D1230 + + thumb_func_start nullsub_170 +nullsub_170: @ 0x08042598 + bx lr + .align 2, 0 + + thumb_func_start sub_0804259C +sub_0804259C: @ 0x0804259C + push {lr} + ldr r2, _080425B0 @ =gUnk_080D125C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080425B0: .4byte gUnk_080D125C + + thumb_func_start sub_080425B4 +sub_080425B4: @ 0x080425B4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080437DC + cmp r0, #0 + beq _0804264C + adds r0, r4, #0 + adds r0, #0x7c + movs r1, #0 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + ldr r5, _08042614 @ =gUnk_030010A0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + movs r6, #1 + adds r1, r6, #0 + ands r1, r0 + cmp r1, #0 + beq _08042634 + adds r0, r5, #0 + adds r0, #0x3c + ldrb r0, [r0] + ldrb r1, [r4, #0xb] + cmp r0, r1 + bne _08042620 + adds r0, r4, #0 + bl sub_08043EB8 + adds r0, r4, #0 + bl sub_08043ABC + adds r0, r5, #0 + adds r0, #0x39 + ldrb r1, [r0] + ldrb r0, [r4, #0xb] + adds r0, #2 + asrs r1, r0 + ands r1, r6 + cmp r1, #0 + beq _08042618 + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xd] + b _0804264C + .align 2, 0 +_08042614: .4byte gUnk_030010A0 +_08042618: + movs r0, #8 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0804264C +_08042620: + adds r0, r4, #0 + bl sub_08044000 + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + bl sub_08043A10 + b _0804264C +_08042634: + strb r6, [r4, #0xc] + strb r1, [r4, #0xd] + ldr r2, [r4, #0x64] + ldr r1, _08042650 @ =gUnk_080D1280 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + adds r0, r4, #0 + bl sub_08042654 +_0804264C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08042650: .4byte gUnk_080D1280 + + thumb_func_start sub_08042654 +sub_08042654: @ 0x08042654 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xb] + lsls r3, r0, #2 + ldr r0, [r6, #0x64] + adds r2, r0, #0 + adds r2, #0x18 + ldrb r0, [r6, #0xd] + cmp r0, #4 + bls _0804266A + b _080427FC +_0804266A: + lsls r0, r0, #2 + ldr r1, _08042674 @ =_08042678 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08042674: .4byte _08042678 +_08042678: @ jump table + .4byte _0804268C @ case 0 + .4byte _080426B0 @ case 1 + .4byte _080426E0 @ case 2 + .4byte _08042710 @ case 3 + .4byte _08042740 @ case 4 +_0804268C: + movs r0, #1 + strb r0, [r6, #0xd] + ldr r1, _080426A8 @ =gUnk_080D1284 + ldrb r0, [r6, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2, #1] + ldr r1, _080426AC @ =gUnk_080D1286 + ldrb r0, [r6, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_080426A8: .4byte gUnk_080D1284 +_080426AC: .4byte gUnk_080D1286 +_080426B0: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x34 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xb + bhi _080426CC + b _0804280E +_080426CC: + movs r0, #2 + strb r0, [r6, #0xd] + ldr r1, _080426DC @ =gUnk_080D1286 + adds r0, r3, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_080426DC: .4byte gUnk_080D1286 +_080426E0: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x44 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xd + bhi _080426FC + b _0804280E +_080426FC: + movs r0, #3 + strb r0, [r6, #0xd] + ldr r1, _0804270C @ =gUnk_080D1286 + adds r0, r3, #2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_0804270C: .4byte gUnk_080D1286 +_08042710: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x54 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _0804280E + movs r0, #4 + strb r0, [r6, #0xd] + ldr r1, _0804273C @ =gUnk_080D1286 + adds r0, r3, #3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r6, #0 + b _080427EE + .align 2, 0 +_0804273C: .4byte gUnk_080D1286 +_08042740: + ldrh r0, [r2, #8] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + ldr r1, [r6, #0x64] + adds r1, #0x64 + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1b + bls _0804280E + movs r0, #5 + strb r0, [r6, #0xd] + movs r0, #0x5a + strb r0, [r6, #0xe] + ldr r0, [r6, #0x64] + ldr r1, [r0] + ldrb r0, [r1, #0x10] + movs r5, #0x80 + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0] + adds r1, #0x29 + ldrb r2, [r1] + movs r3, #8 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r2 + movs r4, #4 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #4] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #4] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #8] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #8] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0xc] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0xc] + adds r1, #0x29 + ldrb r2, [r1] + adds r0, r3, #0 + ands r0, r2 + orrs r0, r4 + strb r0, [r1] + ldr r0, [r6, #0x64] + ldr r1, [r0, #0x10] + ldrb r0, [r1, #0x10] + orrs r0, r5 + strb r0, [r1, #0x10] + ldr r0, [r6, #0x64] + ldr r0, [r0, #0x10] + adds r0, #0x29 + ldrb r1, [r0] + ands r3, r1 + orrs r3, r4 + strb r3, [r0] + adds r0, r6, #0 + movs r1, #7 +_080427EE: + bl sub_080042AC + movs r0, #0xaf + lsls r0, r0, #1 + bl sub_080A3268 + b _0804280E +_080427FC: + ldrb r0, [r6, #0xe] + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804280E + adds r0, r6, #0 + bl sub_08043BC8 +_0804280E: + adds r0, r6, #0 + bl sub_08043A10 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08042818 +sub_08042818: @ 0x08042818 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r0, [r4, #0x64] + adds r2, r0, #0 + adds r2, #0x18 + ldrh r1, [r2, #8] + ldrh r3, [r0, #0x18] + adds r1, r1, r3 + strh r1, [r0, #0x18] + ldrb r0, [r2, #0xd] + subs r0, #1 + strb r0, [r2, #0xd] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042848 + movs r0, #0x78 + strb r0, [r2, #0xd] + movs r3, #8 + ldrsh r0, [r2, r3] + rsbs r0, r0, #0 + strh r0, [r2, #8] +_08042848: + ldrh r0, [r2, #0xa] + ldrh r3, [r2, #4] + adds r0, r0, r3 + strh r0, [r2, #4] + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + ands r0, r1 + cmp r0, #0 + bne _08042868 + movs r0, #0x50 + strb r0, [r2, #0xe] + movs r1, #0xa + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + strh r0, [r2, #0xa] +_08042868: + adds r0, r4, #0 + bl sub_08043A10 + pop {r4, pc} + + thumb_func_start sub_08042870 +sub_08042870: @ 0x08042870 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r1, _08042890 @ =gUnk_080D1290 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043A10 + pop {r4, pc} + .align 2, 0 +_08042890: .4byte gUnk_080D1290 + + thumb_func_start sub_08042894 +sub_08042894: @ 0x08042894 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r2, [r0, #0x64] + ldr r1, _080428A8 @ =gUnk_080D12AC + ldrb r0, [r0, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + bx lr + .align 2, 0 +_080428A8: .4byte gUnk_080D12AC + + thumb_func_start sub_080428AC +sub_080428AC: @ 0x080428AC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + adds r3, r0, #0 + adds r3, #0x18 + ldrb r0, [r3, #5] + cmp r0, #0x40 + beq _080428CC + cmp r0, #0x40 + bls _080428C6 + ldrh r0, [r3, #4] + subs r0, #0x80 + b _080428CA +_080428C6: + ldrh r0, [r3, #4] + adds r0, #0x80 +_080428CA: + strh r0, [r3, #4] +_080428CC: + ldrb r1, [r3, #1] + ldr r2, _080428E8 @ =gUnk_080D12B0 + ldrb r0, [r4, #0xb] + adds r0, r0, r2 + ldrb r0, [r0] + subs r1, r1, r0 + adds r1, #1 + cmp r1, #2 + bls _080428EC + ldrh r0, [r3, #8] + ldrh r1, [r3] + adds r0, r0, r1 + strh r0, [r3] + b _080428F4 + .align 2, 0 +_080428E8: .4byte gUnk_080D12B0 +_080428EC: + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_080428F4: + adds r0, r4, #0 + bl sub_08043BF0 + pop {r4, pc} + + thumb_func_start sub_080428FC +sub_080428FC: @ 0x080428FC + 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 _0804293C + movs r0, #3 + strb r0, [r4, #0xd] + ldr r1, [r4, #0x64] + adds r1, #0x18 + movs r0, #8 + ldrsh r2, [r1, r0] + lsls r0, r2, #1 + adds r0, r0, r2 + rsbs r0, r0, #0 + strh r0, [r1, #8] + ldr r0, _08042940 @ =0x00000153 + bl sub_080A3268 + movs r2, #0 + movs r3, #0x3b +_0804292A: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _0804292A +_0804293C: + pop {r4, pc} + .align 2, 0 +_08042940: .4byte 0x00000153 + + thumb_func_start sub_08042944 +sub_08042944: @ 0x08042944 + push {lr} + adds r3, r0, #0 + ldr r2, [r3, #0x64] + adds r1, r2, #0 + adds r1, #0x18 + ldrb r0, [r1, #1] + subs r0, #0x7c + cmp r0, #8 + bls _08042960 + ldrh r0, [r1, #8] + ldrh r1, [r2, #0x18] + adds r0, r0, r1 + strh r0, [r2, #0x18] + b _08042968 +_08042960: + movs r0, #4 + strb r0, [r3, #0xd] + ldrh r0, [r1, #8] + strh r0, [r3, #0x24] +_08042968: + adds r0, r3, #0 + bl sub_08043BF0 + pop {pc} + + thumb_func_start sub_08042970 +sub_08042970: @ 0x08042970 + push {r4, r5, lr} + adds r3, r0, #0 + ldr r4, [r3, #0x64] + adds r2, r4, #0 + adds r2, #0x18 + ldrb r0, [r2, #1] + ldr r1, _080429A4 @ =gUnk_080D12B2 + ldrb r5, [r3, #0xb] + adds r1, r5, r1 + ldrb r1, [r1] + subs r0, r0, r1 + adds r0, #2 + cmp r0, #4 + bls _080429AC + ldr r0, _080429A8 @ =gUnk_080D12B4 + adds r0, r5, r0 + movs r1, #0 + ldrsb r1, [r0, r1] + ldrh r0, [r2, #8] + adds r1, r1, r0 + strh r1, [r2, #8] + ldrh r0, [r4, #0x18] + adds r0, r0, r1 + strh r0, [r4, #0x18] + b _080429CA + .align 2, 0 +_080429A4: .4byte gUnk_080D12B2 +_080429A8: .4byte gUnk_080D12B4 +_080429AC: + movs r0, #5 + strb r0, [r3, #0xd] + movs r0, #0x3c + strb r0, [r3, #0xe] + movs r2, #0 + movs r4, #0x39 +_080429B8: + ldr r0, [r3, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r4, [r0] + adds r2, #1 + cmp r2, #4 + bls _080429B8 +_080429CA: + adds r0, r3, #0 + bl sub_08043BF0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080429D4 +sub_080429D4: @ 0x080429D4 + push {r4, lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080429FA + movs r0, #6 + strb r0, [r1, #0xd] + ldr r4, [r1, #0x64] + adds r4, #0x18 + movs r2, #0x24 + ldrsh r0, [r1, r2] + rsbs r0, r0, #0 + movs r1, #6 + bl __divsi3 + strh r0, [r4, #8] +_080429FA: + pop {r4, pc} + + thumb_func_start sub_080429FC +sub_080429FC: @ 0x080429FC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x64] + adds r5, r3, #0 + adds r5, #0x18 + ldrb r1, [r5, #1] + ldr r2, _08042A28 @ =gUnk_080D12B6 + ldrb r0, [r4, #0xb] + adds r0, r0, r2 + ldrb r0, [r0] + subs r1, r1, r0 + adds r1, #1 + cmp r1, #2 + bls _08042A2C + ldrh r0, [r5, #8] + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] + adds r0, r4, #0 + bl sub_08043BF0 + b _08042A3A + .align 2, 0 +_08042A28: .4byte gUnk_080D12B6 +_08042A2C: + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC +_08042A3A: + pop {r4, r5, pc} + + thumb_func_start sub_08042A3C +sub_08042A3C: @ 0x08042A3C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08042A68 @ =gUnk_080D12B8 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043A10 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + adds r4, #0x78 + ldrh r0, [r1, #0x36] + ldrb r4, [r4] + adds r0, r0, r4 + strh r0, [r1, #0x36] + pop {r4, pc} + .align 2, 0 +_08042A68: .4byte gUnk_080D12B8 + + thumb_func_start sub_08042A6C +sub_08042A6C: @ 0x08042A6C + adds r3, r0, #0 + movs r2, #0 + movs r1, #1 + strb r1, [r3, #0xd] + adds r0, #0x78 + strb r2, [r0] + adds r0, #6 + strb r1, [r0] + ldr r1, [r3, #0x64] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x22] + bx lr + .align 2, 0 + + thumb_func_start sub_08042A88 +sub_08042A88: @ 0x08042A88 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x64] + adds r2, r3, #0 + adds r2, #0x18 + ldr r1, _08042AA8 @ =gUnk_080D12C8 + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, #1] + cmp r1, r0 + beq _08042ABC + cmp r1, r0 + bhs _08042AB0 + ldr r1, _08042AAC @ =0xFFFFFF00 + b _08042AB4 + .align 2, 0 +_08042AA8: .4byte gUnk_080D12C8 +_08042AAC: .4byte 0xFFFFFF00 +_08042AB0: + movs r1, #0x80 + lsls r1, r1, #1 +_08042AB4: + adds r0, r1, #0 + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] +_08042ABC: + movs r1, #0xa + ldrsh r0, [r2, r1] + ldrh r1, [r2, #4] + cmp r0, r1 + bge _08042ACE + ldrh r0, [r2, #0xa] + subs r0, r1, r0 + strh r0, [r2, #4] + b _08042AE6 +_08042ACE: + movs r0, #0 + strh r0, [r2, #4] + ldr r1, _08042AE8 @ =gUnk_080D12CA + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_08042AE6: + pop {r4, pc} + .align 2, 0 +_08042AE8: .4byte gUnk_080D12CA + + thumb_func_start sub_08042AEC +sub_08042AEC: @ 0x08042AEC + 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 _08042B1C + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #4 + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r4, #0x3d + strb r4, [r0] + adds r0, r5, #0 + movs r1, #0xe + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r4, [r0] +_08042B1C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08042B20 +sub_08042B20: @ 0x08042B20 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + cmp r0, #0x7a + bhi _08042B3E + movs r2, #0xa0 + lsls r2, r2, #3 + adds r0, r2, #0 + ldrh r2, [r1, #4] + adds r0, r0, r2 + strh r0, [r1, #4] + b _08042B42 +_08042B3E: + movs r0, #0x80 + strb r0, [r1, #5] +_08042B42: + ldrb r0, [r1, #5] + cmp r0, #0x30 + bls _08042B50 + ldrh r0, [r1, #8] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] +_08042B50: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08042BE0 + adds r0, r5, #0 + bl sub_08043C40 + movs r6, #0 + movs r7, #0xa + rsbs r7, r7, #0 +_08042B68: + ldr r0, [r5, #0x64] + lsls r1, r6, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, r7 + blt _08042BD4 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08042BD4 + cmp r6, #0 + bne _08042BBA + movs r0, #0xaf + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08042B9C + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + str r0, [r1, #0x50] +_08042B9C: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + str r1, [r0, #0x68] + movs r0, #0xaf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08042BBA + ldr r0, [r5, #0x64] + ldr r0, [r0, #0x10] + bl sub_0806FA24 +_08042BBA: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _08042BDC @ =0x00000161 + bl sub_080A3268 +_08042BD4: + adds r6, #1 + cmp r6, #3 + bls _08042B68 + b _08042C12 + .align 2, 0 +_08042BDC: .4byte 0x00000161 +_08042BE0: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r1, #2 + strb r1, [r0] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08042C12 + movs r0, #5 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + movs r0, #0x1e + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r1, #0x39 + strb r1, [r0] + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r1, [r0] +_08042C12: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08042C14 +sub_08042C14: @ 0x08042C14 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08042C30 @ =gUnk_080D12D0 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043A78 + pop {r4, pc} + .align 2, 0 +_08042C30: .4byte gUnk_080D12D0 + + thumb_func_start sub_08042C34 +sub_08042C34: @ 0x08042C34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + adds r7, r0, #0 + ldrb r0, [r7, #0xe] + subs r0, #1 + strb r0, [r7, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042D0C + movs r0, #0x3c + strb r0, [r7, #0xe] + movs r0, #3 + strb r0, [r7, #0xf] + movs r0, #1 + strb r0, [r7, #0xd] + bl sub_08000E50 + movs r1, #6 + ands r1, r0 + ldr r0, _08042D14 @ =gUnk_080D12F8 + adds r1, r1, r0 + ldr r3, _08042D18 @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r3, r0] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r6, r2, r0 + movs r0, #0x32 + ldrsh r2, [r3, r0] + movs r0, #1 + ldrsb r0, [r1, r0] + adds r5, r2, r0 + ldr r3, _08042D1C @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + adds r0, r2, #0 + adds r0, #0x20 + cmp r0, r6 + ble _08042C86 + adds r6, r0, #0 +_08042C86: + ldrh r0, [r3, #0x1e] + adds r0, r2, r0 + subs r0, #0x20 + cmp r0, r6 + bge _08042C92 + adds r6, r0, #0 +_08042C92: + ldrh r1, [r3, #8] + adds r0, r1, #0 + adds r0, #0x20 + cmp r0, r5 + ble _08042C9E + adds r5, r0, #0 +_08042C9E: + ldrh r0, [r3, #0x20] + adds r0, r1, r0 + subs r0, #0x40 + cmp r0, r5 + bge _08042CAA + adds r5, r0, #0 +_08042CAA: + subs r0, r6, r2 + subs r0, #0x90 + cmp r0, #0x40 + bhi _08042CC2 + subs r0, r5, r1 + subs r0, #8 + cmp r0, #0x40 + bhi _08042CC2 + adds r6, r2, #0 + adds r6, #0xb0 + adds r5, r1, #0 + adds r5, #0x40 +_08042CC2: + movs r4, #0 + mov r8, r4 + movs r3, #0x18 +_08042CC8: + ldr r0, [r7, #0x64] + lsls r1, r4, #2 + adds r0, r0, r1 + ldr r2, [r0] + strh r6, [r2, #0x2e] + strh r5, [r2, #0x32] + movs r0, #0x32 + strh r0, [r2, #0x36] + adds r1, r2, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + ldr r1, [r7, #0x64] + adds r1, r1, r3 + movs r0, #0x80 + strh r0, [r1] + mov r0, r8 + strh r0, [r1, #4] + ldr r0, _08042D20 @ =gUnk_080D1419 + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1, #0xc] + cmp r4, #0 + beq _08042D04 + adds r0, r2, #0 + movs r1, #0x12 + str r3, [sp] + bl sub_08004260 + ldr r3, [sp] +_08042D04: + adds r3, #0x10 + adds r4, #1 + cmp r4, #3 + bls _08042CC8 +_08042D0C: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08042D14: .4byte gUnk_080D12F8 +_08042D18: .4byte gLinkEntity +_08042D1C: .4byte gUnk_03000BF0 +_08042D20: .4byte gUnk_080D1419 + + thumb_func_start sub_08042D24 +sub_08042D24: @ 0x08042D24 + 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 _08042D68 + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x3f + movs r1, #0x3d + strb r1, [r0] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r1, [r0] + movs r0, #0xaf + movs r1, #1 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08042D5E + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + str r0, [r1, #0x50] +_08042D5E: + str r1, [r4, #0x68] + adds r0, r4, #0 + movs r1, #0xd + bl sub_080042AC +_08042D68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08042D6C +sub_08042D6C: @ 0x08042D6C + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r6, #0 +_08042D72: + ldr r0, [r5, #0x64] + lsls r1, r6, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #3 + bgt _08042DC4 + cmp r6, #2 + beq _08042D8E + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08042D8E: + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08042DB4 + movs r0, #0xaf + movs r1, #2 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _08042DB4 + adds r0, r4, #0 + bl sub_0806FA24 + movs r0, #0xb3 + lsls r0, r0, #1 + bl sub_080A3268 +_08042DB4: + ldrb r0, [r4, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r1, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08042DC4: + adds r6, #1 + cmp r6, #3 + bls _08042D72 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0xc] + ldrh r2, [r4, #0x36] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #3 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _08042E28 + ldr r0, _08042E20 @ =0x0000FFFB + strh r0, [r4, #0x36] + ldr r2, [r5, #0x64] + ldr r1, _08042E24 @ =gUnk_080D1300 + ldrb r0, [r5, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + ldr r1, [r5, #0x64] + movs r0, #0xc0 + strh r0, [r1, #0x22] + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #0x1e + strb r0, [r5, #0xe] + adds r0, r5, #0 + adds r0, #0x3f + movs r4, #0x39 + strb r4, [r0] + adds r1, r5, #0 + adds r1, #0x7f + movs r0, #0x2d + strb r0, [r1] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + adds r0, #0x3f + strb r4, [r0] + b _08042E2C + .align 2, 0 +_08042E20: .4byte 0x0000FFFB +_08042E24: .4byte gUnk_080D1300 +_08042E28: + subs r0, r2, #2 + strh r0, [r4, #0x36] +_08042E2C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08042E30 +sub_08042E30: @ 0x08042E30 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r1, r6, #0 + adds r1, #0x7f + ldrb r0, [r1] + cmp r0, #0 + bne _08042E4A + adds r0, r6, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08042EF0 + b _08042E4E +_08042E4A: + subs r0, #1 + strb r0, [r1] +_08042E4E: + ldr r7, [r6, #0x64] + adds r5, r7, #0 + adds r5, #0x18 + ldrb r0, [r6, #0xe] + subs r0, #1 + strb r0, [r6, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042EB2 + movs r0, #4 + strb r0, [r6, #0xd] + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x28 + strb r0, [r6, #0xe] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r6, #0x24] + ldrb r0, [r5, #1] + lsrs r0, r0, #3 + strb r0, [r6, #0x15] + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldr r3, _08042ED4 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + movs r4, #0x88 + lsls r4, r4, #1 + adds r2, r2, r4 + ldrh r3, [r3, #8] + adds r3, #0x60 + bl sub_080045D4 + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08042ED8 @ =gUnk_080D1304 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + adds r0, r0, r4 + movs r1, #0x1f + ands r0, r1 + adds r1, r6, #0 + adds r1, #0x79 + strb r0, [r1] +_08042EB2: + ldrh r0, [r5, #8] + ldrh r1, [r7, #0x18] + adds r0, r0, r1 + strh r0, [r7, #0x18] + ldrh r0, [r5, #0xa] + ldrh r2, [r5, #4] + adds r1, r0, r2 + strh r1, [r5, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + ble _08042EDC + ldrb r0, [r5, #5] + cmp r0, #0x18 + bls _08042EEA + movs r4, #0xa + ldrsh r0, [r5, r4] + b _08042EE6 + .align 2, 0 +_08042ED4: .4byte gUnk_03000BF0 +_08042ED8: .4byte gUnk_080D1304 +_08042EDC: + ldrb r0, [r5, #5] + cmp r0, #3 + bhi _08042EEA + movs r1, #0xa + ldrsh r0, [r5, r1] +_08042EE6: + rsbs r0, r0, #0 + strh r0, [r5, #0xa] +_08042EEA: + adds r0, r6, #0 + bl sub_080042B8 +_08042EF0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08042EF4 +sub_08042EF4: @ 0x08042EF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08042FCE + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08042F4E + ldr r0, _08042F38 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x50 + bl sub_0806FCB8 + cmp r0, #0 + beq _08042F3C + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + b _08042F4E + .align 2, 0 +_08042F38: .4byte gLinkEntity +_08042F3C: + movs r0, #5 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xf + bl sub_080042AC + ldr r0, _08042FD4 @ =0x0000019B + bl sub_080A3268 +_08042F4E: + ldr r0, [r4, #0x64] + adds r7, r0, #0 + adds r7, #0x18 + ldrb r0, [r7, #5] + cmp r0, #0x1f + bhi _08042F66 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r2, [r7, #4] + adds r0, r0, r2 + strh r0, [r7, #4] +_08042F66: + ldr r0, [r4, #0x50] + movs r1, #0x2e + ldrsh r3, [r0, r1] + mov r8, r3 + movs r2, #0x32 + ldrsh r0, [r0, r2] + adds r6, r0, #0 + subs r6, #0x10 + adds r0, r4, #0 + mov r1, r8 + adds r2, r6, #0 + movs r3, #0x30 + bl sub_0806FCB8 + adds r5, r4, #0 + adds r5, #0x79 + cmp r0, #0 + beq _08042FAC + movs r3, #0x2e + ldrsh r0, [r4, r3] + movs r2, #0x32 + ldrsh r1, [r4, r2] + mov r2, r8 + adds r3, r6, #0 + bl sub_080045D4 + adds r1, r0, #0 + ldrb r0, [r5] + subs r0, r0, r1 + adds r0, #4 + cmp r0, #8 + bhi _08042FAC + movs r0, #0x10 + eors r1, r0 + strb r1, [r5] +_08042FAC: + ldrb r0, [r5] + ldrb r3, [r4, #0x15] + cmp r0, r3 + beq _08042FC2 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004596 + ldrb r0, [r4, #0x15] + lsls r0, r0, #3 + strb r0, [r7, #1] +_08042FC2: + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + ldrb r1, [r4, #0x15] + strb r1, [r0, #0x15] + bl sub_080AEF88 +_08042FCE: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08042FD4: .4byte 0x0000019B + + thumb_func_start sub_08042FD8 +sub_08042FD8: @ 0x08042FD8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r0, r5, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08043046 + adds r6, r5, #0 + adds r6, #0x5a + ldrb r1, [r6] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08043018 + movs r0, #0x20 + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _08043046 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x36] + subs r0, #0x18 + movs r1, #0 + strh r0, [r4, #0x36] + strb r1, [r6] + b _08043046 +_08043018: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08043046 + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043036 + movs r0, #8 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + b _08043046 +_08043036: + movs r0, #3 + strb r0, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_08043046: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08043048 +sub_08043048: @ 0x08043048 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043C98 + cmp r0, #0 + bne _080430CC + ldr r2, [r4, #0x64] + adds r1, r2, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + cmp r0, #0x4f + bhi _08043094 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r1, #4] + adds r0, r0, r3 + strh r0, [r1, #4] + ldrb r0, [r1, #5] + cmp r0, #0x4f + bls _080430C6 + movs r2, #0 + movs r3, #0x3b +_08043076: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _08043076 + ldr r0, _08043090 @ =0x00000153 + bl sub_080A3268 + b _080430C6 + .align 2, 0 +_08043090: .4byte 0x00000153 +_08043094: + movs r3, #8 + ldrsh r0, [r1, r3] + lsls r0, r0, #3 + ldrh r1, [r2, #0x18] + adds r0, r0, r1 + strh r0, [r2, #0x18] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080430C6 + movs r0, #7 + strb r0, [r4, #0xd] + movs r2, #0 + movs r3, #0x39 +_080430B4: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _080430B4 +_080430C6: + adds r0, r4, #0 + bl sub_08043B9C +_080430CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080430D0 +sub_080430D0: @ 0x080430D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043C98 + cmp r0, #0 + bne _08043128 + ldr r1, [r4, #0x64] + adds r2, r1, #0 + adds r2, #0x18 + ldrh r0, [r2, #8] + ldrh r3, [r1, #0x18] + adds r0, r0, r3 + strh r0, [r1, #0x18] + ldr r1, _08043110 @ =0xFFFFFF00 + adds r0, r1, #0 + ldrh r3, [r2, #4] + adds r0, r0, r3 + strh r0, [r2, #4] + ldrb r0, [r2, #5] + cmp r0, #0x17 + bhi _08043128 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043114 + movs r0, #8 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + b _08043128 + .align 2, 0 +_08043110: .4byte 0xFFFFFF00 +_08043114: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, _0804312C @ =0x0000FF40 + strh r0, [r2, #0xa] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08043128: + pop {r4, pc} + .align 2, 0 +_0804312C: .4byte 0x0000FF40 + + thumb_func_start sub_08043130 +sub_08043130: @ 0x08043130 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r1, [r6, #0x64] + adds r4, r1, #0 + adds r4, #0x18 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _08043160 + adds r0, r6, #0 + bl sub_08043C98 + cmp r0, #0 + bne _080431E0 + ldrb r0, [r4, #5] + subs r0, #1 + strb r0, [r4, #5] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080431E0 + adds r0, r6, #0 + movs r1, #0xd + bl sub_080042AC + b _080431E0 +_08043160: + ldrb r0, [r6, #0xe] + cmp r0, #0 + beq _08043186 + subs r0, #1 + strb r0, [r6, #0xe] + movs r5, #1 + movs r1, #0x28 +_0804316E: + ldr r0, [r6, #0x64] + adds r4, r0, r1 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0804317C + subs r0, #1 + strb r0, [r4, #5] +_0804317C: + adds r1, #0x10 + adds r5, #1 + cmp r5, #3 + bls _0804316E + b _080431E0 +_08043186: + ldr r1, [r1, #0xc] + ldrh r0, [r1, #0x36] + adds r0, #3 + strh r0, [r1, #0x36] + movs r5, #0 + movs r7, #4 + rsbs r7, r7, #0 +_08043194: + ldr r0, [r6, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r4, [r0] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, r7 + ble _080431C4 + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080431BC + ldr r0, _080431E4 @ =0x00000161 + bl sub_080A3268 +_080431BC: + ldrb r1, [r4, #0x18] + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080431C4: + adds r5, #1 + cmp r5, #3 + bls _08043194 + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080431E0 + movs r0, #9 + strb r0, [r6, #0xd] + movs r0, #0x3c + strb r0, [r6, #0xe] + adds r0, r6, #0 + bl sub_0804AA1C +_080431E0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080431E4: .4byte 0x00000161 + + thumb_func_start sub_080431E8 +sub_080431E8: @ 0x080431E8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804324E + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r5, #0 + ldr r7, _08043250 @ =gUnk_080D130C + movs r6, #0x18 +_08043206: + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #8 + strh r0, [r1, #4] + ldr r0, _08043254 @ =gUnk_080D1414 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r1, #0xc] + cmp r5, #3 + bne _08043230 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x11 + bl sub_08004260 +_08043230: + adds r6, #0x10 + adds r5, #1 + cmp r5, #3 + bls _08043206 + ldr r2, [r4, #0x64] + ldr r1, _08043258 @ =gUnk_080D1310 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #0x20] + adds r0, r4, #0 + movs r1, #0xe + bl sub_080042AC +_0804324E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043250: .4byte gUnk_080D130C +_08043254: .4byte gUnk_080D1414 +_08043258: .4byte gUnk_080D1310 + + thumb_func_start sub_0804325C +sub_0804325C: @ 0x0804325C + push {r4, lr} + adds r4, r0, #0 + bl sub_08043CD4 + ldr r0, _0804329C @ =gUnk_080D1314 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043A10 + adds r2, r4, #0 + adds r2, #0x78 + ldrb r0, [r2] + adds r1, r0, #0 + cmp r1, #0 + beq _080432A4 + cmp r1, #2 + bls _080432A0 + subs r0, #2 + strb r0, [r2] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + ldrb r2, [r2] + adds r0, r0, r2 + strh r0, [r1, #0x36] + b _080432A4 + .align 2, 0 +_0804329C: .4byte gUnk_080D1314 +_080432A0: + movs r0, #0 + strb r0, [r2] +_080432A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080432A8 +sub_080432A8: @ 0x080432A8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r3, #3 + movs r2, #0 + ldr r0, [r4, #0x64] + adds r1, r0, #0 + adds r1, #0x48 + ldrb r0, [r1, #0xc] + cmp r0, #2 + bls _080432C2 + subs r0, #1 + strb r0, [r1, #0xc] + movs r2, #1 +_080432C2: + subs r3, #1 + cmp r3, #0 + blt _080432E0 + lsls r0, r3, #4 + adds r0, #0x18 + ldr r1, [r4, #0x64] + adds r1, r1, r0 + ldrb r0, [r1, #0xc] + cmp r0, #2 + bls _080432C2 + subs r0, #1 + strb r0, [r1, #0xc] + adds r2, #1 + cmp r2, #1 + ble _080432C2 +_080432E0: + ldr r0, [r4, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r1, #5] + subs r0, #2 + strb r0, [r1, #5] + movs r3, #0 + movs r6, #0x80 + movs r7, #4 + rsbs r7, r7, #0 + movs r5, #1 +_080432F6: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + movs r1, #0x36 + ldrsh r0, [r2, r1] + cmp r0, #3 + bgt _08043316 + ldrb r0, [r2, #0x10] + orrs r0, r6 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r5 + strb r0, [r2, #0x18] +_08043316: + adds r3, #1 + cmp r3, #3 + ble _080432F6 + ldr r1, [r4, #0x64] + ldr r0, [r1] + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + lsrs r2, r0, #0x1e + cmp r2, #1 + bne _08043348 + adds r0, r1, #0 + adds r0, #0x34 + ldrb r0, [r0] + cmp r0, #2 + bhi _08043348 + strb r2, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #0x1c] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + bl sub_0804AA1C +_08043348: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804334C +sub_0804334C: @ 0x0804334C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08043388 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804341C + movs r5, #0 + movs r7, #0x80 + movs r6, #4 + rsbs r6, r6, #0 + movs r3, #1 +_0804336A: + ldr r0, [r4, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r0, [r2, #0x10] + orrs r0, r7 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2, #0x18] + adds r5, #1 + cmp r5, #4 + bls _0804336A +_08043388: + ldr r3, [r4, #0x64] + adds r2, r3, #0 + adds r2, #0x18 + ldr r1, _080433AC @ =gUnk_080D131C + ldrb r0, [r4, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + ldrb r1, [r2, #1] + subs r0, r0, r1 + adds r0, #1 + cmp r0, #2 + bls _080433B0 + ldrh r0, [r2, #8] + ldrh r1, [r3, #0x18] + adds r0, r0, r1 + strh r0, [r3, #0x18] + movs r7, #0 + b _080433B2 + .align 2, 0 +_080433AC: .4byte gUnk_080D131C +_080433B0: + movs r7, #1 +_080433B2: + adds r0, r4, #0 + bl sub_08043B9C + movs r5, #0 + movs r6, #0x18 +_080433BC: + ldr r0, [r4, #0x64] + adds r2, r0, r6 + ldr r0, _080433E4 @ =gUnk_080D1414 + adds r0, r5, r0 + ldrb r1, [r2, #0xc] + ldrb r3, [r0] + cmp r3, r1 + bls _080433E8 + adds r0, r1, #1 + strb r0, [r2, #0xc] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r3, r0 + bne _0804341C + movs r0, #0xaf + lsls r0, r0, #1 + bl sub_080A3268 + b _0804341C + .align 2, 0 +_080433E4: .4byte gUnk_080D1414 +_080433E8: + cmp r7, #0 + beq _08043414 + cmp r5, #4 + bne _08043414 + adds r0, r4, #0 + bl sub_08043BC8 + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + adds r1, r4, #0 + adds r1, #0x7e + ldrb r0, [r1] + cmp r0, #0 + beq _08043414 + movs r0, #0 + strb r0, [r1] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x14] + movs r0, #2 + strb r0, [r1, #0xd] +_08043414: + adds r6, #0x10 + adds r5, #1 + cmp r5, #4 + bls _080433BC +_0804341C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08043420 +sub_08043420: @ 0x08043420 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804343C @ =gUnk_080D1320 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_08043ABC + pop {r4, pc} + .align 2, 0 +_0804343C: .4byte gUnk_080D1320 + + thumb_func_start sub_08043440 +sub_08043440: @ 0x08043440 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r2, #0 + movs r5, #0 + movs r6, #0 + movs r4, #0x18 +_0804344C: + ldr r0, [r3, #0x64] + adds r1, r0, r4 + ldrb r0, [r1, #5] + cmp r0, #0x10 + bls _0804345E + subs r0, #0x10 + strb r0, [r1, #5] + adds r5, #1 + b _08043460 +_0804345E: + strh r6, [r1, #4] +_08043460: + adds r4, #0x10 + adds r2, #1 + cmp r2, #4 + bls _0804344C + cmp r5, #0 + bne _0804348C + movs r2, #0 + movs r4, #0x80 + lsls r4, r4, #8 +_08043472: + ldr r0, [r3, #0x64] + lsls r1, r2, #4 + adds r0, r0, r1 + strh r4, [r0, #0x18] + adds r2, #1 + cmp r2, #4 + bls _08043472 + movs r0, #1 + strb r0, [r3, #0xd] + adds r0, r3, #0 + movs r1, #0x10 + bl sub_080042AC +_0804348C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08043490 +sub_08043490: @ 0x08043490 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + mov ip, r0 + ldrh r1, [r0, #0x36] + movs r2, #0x36 + ldrsh r0, [r0, r2] + movs r2, #4 + rsbs r2, r2, #0 + cmp r0, r2 + bge _080434C4 + movs r0, #0xc0 + lsls r0, r0, #9 + mov r3, ip + str r0, [r3, #0x20] + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x7e + strb r0, [r2] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x14] + strb r1, [r0, #0xd] + b _08043514 +_080434C4: + subs r0, r1, #2 + mov r1, ip + strh r0, [r1, #0x36] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08043514 + ldrb r0, [r1, #0x10] + movs r3, #0x80 + orrs r0, r3 + strb r0, [r1, #0x10] + ldrb r1, [r1, #0x18] + adds r0, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r2, ip + strb r0, [r2, #0x18] + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + mov r1, ip + adds r1, #0x3f + movs r0, #0x3a + strb r0, [r1] + ldr r0, _0804351C @ =gUnk_080FD450 + mov r1, ip + str r0, [r1, #0x48] + ldr r0, [r4, #0x64] + ldr r1, [r0, #8] + ldrb r0, [r1, #0x10] + orrs r3, r0 + strb r3, [r1, #0x10] + ldr r0, [r4, #0x64] + ldr r2, [r0, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_08043514: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_0804351C: .4byte gUnk_080FD450 + + thumb_func_start sub_08043520 +sub_08043520: @ 0x08043520 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x10] + movs r1, #0xd0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08043556 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #6 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08043556 + ldr r0, _08043558 @ =0x0000FFFA + strh r0, [r4, #0x36] + movs r0, #3 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #0xe1 + lsls r0, r0, #2 + strh r0, [r1] +_08043556: + pop {r4, r5, pc} + .align 2, 0 +_08043558: .4byte 0x0000FFFA + + thumb_func_start sub_0804355C +sub_0804355C: @ 0x0804355C + push {r4, lr} + adds r4, r0, #0 + bl sub_08043DB0 + adds r1, r4, #0 + adds r1, #0x7a + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08043578 + movs r0, #4 + strb r0, [r4, #0xd] +_08043578: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08043580 +sub_08043580: @ 0x08043580 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + adds r0, #3 + strh r0, [r1, #0x36] + movs r2, #0 + movs r5, #4 + rsbs r5, r5, #0 + movs r6, #0x7f +_08043596: + ldr r0, [r4, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r3, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, r5 + ble _080435B6 + ldrb r1, [r3, #0x10] + adds r0, r6, #0 + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r1, [r3, #0x18] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r3, #0x18] +_080435B6: + adds r2, #1 + cmp r2, #4 + bls _08043596 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _080435EE + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, [r4, #0x64] + ldr r3, [r0, #0x10] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x39 + strb r0, [r1] + ldr r0, _080435F0 @ =gUnk_080FD538 + str r0, [r3, #0x48] + adds r0, r4, #0 + bl sub_0804AA1C +_080435EE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080435F0: .4byte gUnk_080FD538 + + thumb_func_start sub_080435F4 +sub_080435F4: @ 0x080435F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08043674 + movs r0, #6 + strb r0, [r4, #0xc] + movs r0, #1 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + movs r5, #0 + ldr r0, _08043658 @ =gUnk_080D1338 + mov sb, r0 + movs r0, #0 + mov r8, r0 + movs r6, #0x18 + ldr r7, _0804365C @ =gUnk_080D133C +_08043622: + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #4] + mov r0, r8 + strb r0, [r1, #0xc] + ldrb r0, [r4, #0xb] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + strh r0, [r1, #8] + ldr r0, [r4, #0x64] + lsls r1, r5, #2 + adds r0, r0, r1 + ldr r2, [r0] + cmp r5, #0 + bne _08043660 + adds r0, r2, #0 + bl sub_08043B9C + b _0804366C + .align 2, 0 +_08043658: .4byte gUnk_080D1338 +_0804365C: .4byte gUnk_080D133C +_08043660: + ldr r0, _0804367C @ =gUnk_080D1340 + adds r0, r5, r0 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_08004260 +_0804366C: + adds r6, #0x10 + adds r5, #1 + cmp r5, #4 + bls _08043622 +_08043674: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804367C: .4byte gUnk_080D1340 + + thumb_func_start sub_08043680 +sub_08043680: @ 0x08043680 + push {lr} + ldr r2, _08043694 @ =gUnk_080D1348 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08043694: .4byte gUnk_080D1348 + + thumb_func_start sub_08043698 +sub_08043698: @ 0x08043698 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r3, #0 + movs r5, #0x7f +_080436A8: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r1, [r2, #0x10] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r2, #0x10] + adds r3, #1 + cmp r3, #4 + bls _080436A8 + pop {r4, r5, pc} + + thumb_func_start sub_080436C0 +sub_080436C0: @ 0x080436C0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080436FC + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + movs r1, #0x51 + movs r2, #0 + bl CreateFX + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0805E7BC +_080436FC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043700 +sub_08043700: @ 0x08043700 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _08043734 + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + movs r1, #0x51 + movs r2, #0 + bl CreateFX + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0805E7BC +_08043734: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043738 +sub_08043738: @ 0x08043738 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _0804376C + movs r0, #0x14 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xd] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + movs r1, #0x51 + movs r2, #0 + bl CreateFX + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + str r5, [r0, #0x64] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0805E7BC +_0804376C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043770 +sub_08043770: @ 0x08043770 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _080437D8 + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x14] + ldr r0, _080437AC @ =gUnk_030010A0 + adds r5, r0, #0 + adds r5, #0x39 + ldrb r1, [r5] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + bne _0804379A + movs r0, #2 + strb r0, [r3, #0xd] +_0804379A: + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _080437B0 + ldr r0, [r3, #0x64] + str r4, [r0, #0x14] + ldrb r1, [r5] + movs r0, #0xfe + b _080437B8 + .align 2, 0 +_080437AC: .4byte gUnk_030010A0 +_080437B0: + ldr r0, [r3, #0x64] + str r4, [r0, #0x18] + ldrb r1, [r5] + movs r0, #0xfd +_080437B8: + ands r0, r1 + strb r0, [r5] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + movs r1, #0 + str r1, [r0, #0x64] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + adds r0, #0x45 + strb r1, [r0] + ldr r1, [r2, #0x68] + ldr r0, [r2, #0x64] + ldr r0, [r0, #0x10] + str r0, [r1, #0x50] + bl sub_0805E780 +_080437D8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080437DC +sub_080437DC: @ 0x080437DC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _0804392C @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x43 + bls _080437EE + b _08043934 +_080437EE: + movs r0, #0x68 + bl sub_0801D8E0 + adds r7, r0, #0 + cmp r7, #0 + bne _080437FC + b _08043934 +_080437FC: + adds r2, r6, #0 + 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] + adds r1, r6, #0 + adds r1, #0x3c + ldrb r0, [r1] + movs r5, #0x10 + orrs r0, r5 + strb r0, [r1] + str r7, [r6, #0x64] + str r6, [r7] + movs r0, #0x52 + movs r1, #1 + bl CreateEnemy + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #4] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #2 + bl CreateEnemy + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #8] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #3 + bl CreateEnemy + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + adds r0, r4, #0 + ands r0, r1 + mov r1, r8 + orrs r0, r1 + strb r0, [r3] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r1] + orrs r0, r5 + strb r0, [r1] + str r7, [r2, #0x64] + str r2, [r7, #0xc] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + movs r0, #0x52 + movs r1, #4 + bl CreateEnemy + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x29 + ldrb r0, [r1] + ands r4, r0 + mov r0, r8 + orrs r4, r0 + strb r4, [r1] + adds r1, #0x13 + ldrb r0, [r1] + orrs r5, r0 + strb r5, [r1] + str r7, [r2, #0x64] + str r2, [r7, #0x10] + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + ldr r0, [r6, #0x50] + str r0, [r7, #0x14] + ldr r1, _08043930 @ =gUnk_080D135C + ldrb r0, [r6, #0xb] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r2, [r0] + movs r3, #0 + strh r2, [r7, #0x18] + movs r1, #0x80 + lsls r1, r1, #7 + strh r1, [r7, #0x1c] + adds r0, r7, #0 + adds r0, #0x24 + strb r3, [r0] + strh r2, [r7, #0x28] + strh r1, [r7, #0x2c] + adds r0, #0x10 + strb r3, [r0] + strh r2, [r7, #0x38] + strh r1, [r7, #0x3c] + adds r0, #0x10 + strb r3, [r0] + adds r0, #4 + strh r2, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #8 + strb r3, [r0] + adds r0, #4 + strh r2, [r0] + adds r0, #4 + strh r1, [r0] + adds r0, #8 + strb r3, [r0] + movs r0, #1 + b _08043936 + .align 2, 0 +_0804392C: .4byte gUnk_03003DBC +_08043930: .4byte gUnk_080D135C +_08043934: + movs r0, #0 +_08043936: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804393C +sub_0804393C: @ 0x0804393C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r1, [r0] + adds r0, r1, #0 + adds r0, #0x7c + ldrb r0, [r0] + lsls r2, r0, #0x18 + cmp r2, #0 + beq _0804397C + adds r0, r1, #0 + adds r0, #0x7d + ldrb r0, [r0] + ldrb r1, [r5, #0xa] + cmp r0, r1 + bhi _0804397C + ldr r4, _08043978 @ =gUnk_080D1362 + ldrb r3, [r5, #0xa] + lsls r1, r3, #4 + lsrs r0, r2, #0x1b + movs r2, #0xf + ands r0, r2 + adds r1, r1, r0 + adds r1, r1, r4 + ldrb r4, [r1] + adds r6, r3, #0 + b _08043980 + .align 2, 0 +_08043978: .4byte gUnk_080D1362 +_0804397C: + movs r4, #0 + ldrb r6, [r5, #0xa] +_08043980: + lsls r0, r6, #4 + adds r0, #0x18 + ldr r2, [r5, #0x64] + mov ip, r2 + adds r2, r2, r0 + ldrb r0, [r2, #0xc] + adds r0, r4, r0 + lsls r4, r0, #8 + ldr r3, _08043A0C @ =gUnk_080C9160 + ldrb r1, [r2, #5] + adds r0, r1, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r7, #0 + ldrsh r0, [r0, r7] + rsbs r0, r0, #0 + adds r7, r0, #0 + muls r7, r4, r7 + mov r8, r7 + movs r0, #0x7f + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r7, #0 + ldrsh r0, [r1, r7] + muls r0, r4, r0 + cmp r0, #0 + bge _080439BC + adds r0, #0xff +_080439BC: + asrs r4, r0, #8 + ldrb r1, [r2, #1] + lsls r0, r1, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r0, [r0, r2] + adds r2, r0, #0 + muls r2, r4, r2 + adds r1, #0x40 + lsls r1, r1, #1 + adds r1, r1, r3 + movs r3, #0 + ldrsh r0, [r1, r3] + rsbs r0, r0, #0 + adds r3, r0, #0 + muls r3, r4, r3 + adds r0, r6, #1 + lsls r0, r0, #2 + add r0, ip + ldr r0, [r0] + adds r1, r5, #0 + bl PositionRelative + ldr r0, [r5, #0x34] + add r0, r8 + str r0, [r5, #0x34] + ldr r1, [r5, #0x64] + ldrb r0, [r5, #0xa] + adds r0, #1 + lsls r0, r0, #2 + adds r1, r1, r0 + ldr r0, [r1] + adds r0, #0x63 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043A0C: .4byte gUnk_080C9160 + + thumb_func_start sub_08043A10 +sub_08043A10: @ 0x08043A10 + push {r4, lr} + adds r4, r0, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x10] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x32] + subs r0, #8 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0, #0x10] + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r4, #0x7c + ldrb r0, [r4] + cmp r0, #0 + beq _08043A76 + subs r0, #1 + strb r0, [r4] +_08043A76: + pop {r4, pc} + + thumb_func_start sub_08043A78 +sub_08043A78: @ 0x08043A78 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043ABC +sub_08043ABC: @ 0x08043ABC + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08043B7C + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r0, [r0] + bl sub_0804393C + ldr r0, [r4, #0x64] + ldr r1, [r0] + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + ldr r0, [r4, #0x64] + ldr r1, [r0] + adds r1, #0x63 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043B08 +sub_08043B08: @ 0x08043B08 + push {r4, r5, r6, lr} + ldrb r3, [r0, #0xa] + lsls r1, r3, #4 + adds r4, r1, #0 + adds r4, #8 + ldr r2, [r0, #0x64] + adds r6, r2, r4 + adds r1, #0x18 + adds r4, r2, r1 + ldr r0, _08043B40 @ =gUnk_080D13B2 + adds r3, r3, r0 + ldrb r5, [r3] + ldr r0, [r2] + ldrb r0, [r0, #0xb] + cmp r0, #0 + bne _08043B44 + ldrb r1, [r6, #1] + ldrb r0, [r4, #1] + subs r0, r1, r0 + lsls r0, r0, #0x18 + asrs r3, r0, #0x18 + cmp r5, r3 + bhs _08043B5E + cmp r3, #0 + ble _08043B56 + subs r0, r1, r5 + b _08043B5C + .align 2, 0 +_08043B40: .4byte gUnk_080D13B2 +_08043B44: + ldrb r0, [r4, #1] + ldrb r1, [r6, #1] + subs r0, r0, r1 + lsls r0, r0, #0x18 + asrs r3, r0, #0x18 + cmp r5, r3 + bhs _08043B5E + cmp r3, #0 + bge _08043B5A +_08043B56: + strb r1, [r4, #1] + b _08043B5E +_08043B5A: + adds r0, r1, r5 +_08043B5C: + strb r0, [r4, #1] +_08043B5E: + ldrb r2, [r6, #5] + ldrb r0, [r4, #5] + subs r3, r2, r0 + lsls r1, r5, #1 + adds r0, r3, r5 + cmp r1, r0 + bhs _08043B78 + cmp r3, #0 + ble _08043B74 + subs r0, r2, r5 + b _08043B76 +_08043B74: + adds r0, r2, r5 +_08043B76: + strb r0, [r4, #5] +_08043B78: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08043B7C +sub_08043B7C: @ 0x08043B7C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + bl sub_08043B08 + ldr r0, [r4, #0x64] + ldr r0, [r0, #8] + bl sub_08043B08 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0xc] + bl sub_08043B08 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08043B9C +sub_08043B9C: @ 0x08043B9C + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x64] + ldrb r0, [r0, #0x19] + adds r0, #4 + movs r1, #0xff + ands r0, r1 + asrs r0, r0, #3 + ldr r1, _08043BC4 @ =gUnk_080D13B7 + adds r0, r0, r1 + ldrb r1, [r0] + ldrb r0, [r2, #0x1e] + subs r0, #1 + cmp r1, r0 + beq _08043BC0 + adds r0, r2, #0 + bl sub_080042AC +_08043BC0: + pop {pc} + .align 2, 0 +_08043BC4: .4byte gUnk_080D13B7 + + thumb_func_start sub_08043BC8 +sub_08043BC8: @ 0x08043BC8 + movs r1, #2 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + ldr r1, _08043BEC @ =gUnk_080D13D8 + adds r2, r2, r1 + ldr r1, [r0, #0x64] + adds r1, #0x18 + ldrh r0, [r2] + strh r0, [r1, #8] + ldrh r0, [r2, #2] + strh r0, [r1, #0xa] + movs r0, #0x5a + strb r0, [r1, #0xd] + movs r0, #0x28 + strb r0, [r1, #0xe] + bx lr + .align 2, 0 +_08043BEC: .4byte gUnk_080D13D8 + + thumb_func_start sub_08043BF0 +sub_08043BF0: @ 0x08043BF0 + push {lr} + adds r2, r0, #0 + ldr r0, [r2, #0x64] + adds r1, r0, #0 + adds r1, #0x18 + ldrb r0, [r2, #0xb] + cmp r0, #0 + bne _08043C18 + ldrb r0, [r1, #1] + movs r1, #6 + cmp r0, #0x2f + bls _08043C2E + movs r1, #7 + cmp r0, #0x5f + bls _08043C2E + movs r1, #9 + cmp r0, #0x8f + bhi _08043C2E + movs r1, #8 + b _08043C2E +_08043C18: + ldrb r0, [r1, #1] + movs r1, #8 + cmp r0, #0xd0 + bhi _08043C2E + movs r1, #7 + cmp r0, #0xa0 + bhi _08043C2E + movs r1, #5 + cmp r0, #0x70 + bls _08043C2E + movs r1, #6 +_08043C2E: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08043C3E + adds r0, r2, #0 + bl sub_080042AC +_08043C3E: + pop {pc} + + thumb_func_start sub_08043C40 +sub_08043C40: @ 0x08043C40 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldrb r0, [r1, #5] + cmp r0, #0x1f + bhi _08043C54 + ldr r6, _08043C50 @ =gUnk_080D13E0 + b _08043C68 + .align 2, 0 +_08043C50: .4byte gUnk_080D13E0 +_08043C54: + cmp r0, #0x2f + bhi _08043C60 + ldr r6, _08043C5C @ =gUnk_080D13E3 + b _08043C68 + .align 2, 0 +_08043C5C: .4byte gUnk_080D13E3 +_08043C60: + ldr r6, _08043C84 @ =gUnk_080D13E0 + cmp r0, #0x77 + bhi _08043C68 + adds r6, #6 +_08043C68: + movs r4, #0 + movs r5, #0x28 +_08043C6C: + ldr r0, [r7, #0x64] + adds r3, r0, r5 + adds r0, r6, r4 + ldrb r1, [r3, #0xc] + ldrb r2, [r0] + adds r0, r1, #0 + cmp r2, r0 + beq _08043C8C + cmp r2, r0 + bhs _08043C88 + subs r0, r1, #1 + b _08043C8A + .align 2, 0 +_08043C84: .4byte gUnk_080D13E0 +_08043C88: + adds r0, r1, #1 +_08043C8A: + strb r0, [r3, #0xc] +_08043C8C: + adds r5, #0x10 + adds r4, #1 + cmp r4, #2 + bls _08043C6C + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08043C98 +sub_08043C98: @ 0x08043C98 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x64] + ldr r1, [r0, #8] + ldr r2, [r0, #0xc] + adds r1, #0x41 + ldrb r0, [r1] + cmp r0, #0x9d + beq _08043CB4 + adds r0, r2, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08043CD0 +_08043CB4: + adds r0, r3, #0 + bl sub_08043D08 + ldr r0, _08043CCC @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r2, [r0] + movs r1, #2 + orrs r1, r2 + strb r1, [r0] + movs r0, #1 + b _08043CD2 + .align 2, 0 +_08043CCC: .4byte gUnk_030010A0 +_08043CD0: + movs r0, #0 +_08043CD2: + pop {pc} + + thumb_func_start sub_08043CD4 +sub_08043CD4: @ 0x08043CD4 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #0 + adds r4, r3, #0 + adds r4, #0x7c + movs r5, #0x78 + movs r0, #0x7d + adds r0, r0, r3 + mov ip, r0 +_08043CE6: + ldr r0, [r3, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x9d + bne _08043CFE + strb r5, [r4] + mov r0, ip + strb r2, [r0] + b _08043D04 +_08043CFE: + adds r2, #1 + cmp r2, #4 + bls _08043CE6 +_08043D04: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08043D08 +sub_08043D08: @ 0x08043D08 + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0 + movs r0, #7 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + movs r1, #0xd + bl sub_080042AC + ldr r0, [r5, #0x64] + ldr r4, [r0, #0x10] + 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 + movs r1, #0x13 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0804AA1C + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08043D78 + ldr r1, _08043DAC @ =gUnk_080D13E9 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + ldrh r0, [r2, #0x32] + subs r0, #6 + strh r0, [r2, #0x32] + 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] +_08043D78: + ldr r0, [r5, #0x64] + ldr r0, [r0, #0xc] + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r5, #0x64] + adds r1, #0x54 + ldrh r0, [r4, #0x36] + ldrb r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x36] + movs r2, #0 + movs r3, #0x39 +_08043D92: + ldr r0, [r5, #0x64] + lsls r1, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0x3f + strb r3, [r0] + adds r2, #1 + cmp r2, #4 + bls _08043D92 + movs r0, #0xfe + bl sub_08004488 + pop {r4, r5, pc} + .align 2, 0 +_08043DAC: .4byte gUnk_080D13E9 + + thumb_func_start sub_08043DB0 +sub_08043DB0: @ 0x08043DB0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, _08043E48 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08043EAC + ldr r0, [r5, #0x64] + ldr r2, [r0, #0xc] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r6, _08043E4C @ =gUnk_03000BF0 + ldrh r1, [r6, #6] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r2, r3] + ldrh r2, [r6, #8] + subs r1, r1, r2 + adds r1, #2 + movs r2, #3 + movs r3, #3 + bl sub_0800293E + cmp r0, #0 + beq _08043EAC + ldr r0, _08043E50 @ =gUnk_080D13EC + bl sub_08080840 + ldr r4, _08043E54 @ =gUnk_030010A0 + adds r0, r4, #0 + adds r0, #0x39 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + cmp r0, #3 + beq _08043DFE + movs r0, #1 + strb r0, [r4, #0xd] +_08043DFE: + adds r0, r5, #0 + adds r0, #0x7a + ldrh r0, [r0] + movs r1, #0x3c + bl __divsi3 + movs r1, #0x1e + subs r1, r1, r0 + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldrb r1, [r5, #0xb] + subs r0, #1 + strb r1, [r0] + ldr r0, [r5, #0x64] + ldr r2, [r0, #0x14] + ldrh r1, [r2, #0x2e] + adds r0, r4, #0 + adds r0, #0x40 + strh r1, [r0] + ldrh r0, [r2, #0x32] + adds r1, r4, #0 + adds r1, #0x42 + strh r0, [r1] + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x14] + cmp r3, #0 + beq _08043E58 + ldrh r1, [r3, #0x2e] + adds r0, r4, #0 + adds r0, #0x44 + strh r1, [r0] + ldrh r1, [r3, #0x32] + adds r0, #2 + strh r1, [r0] + b _08043E70 + .align 2, 0 +_08043E48: .4byte gUnk_03003F80 +_08043E4C: .4byte gUnk_03000BF0 +_08043E50: .4byte gUnk_080D13EC +_08043E54: .4byte gUnk_030010A0 +_08043E58: + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r3, [r6, #6] + adds r0, r0, r3 + adds r1, r4, #0 + adds r1, #0x44 + strh r0, [r1] + ldrh r0, [r6, #8] + adds r0, #0x60 + adds r1, #2 + strh r0, [r1] +_08043E70: + ldr r0, [r2, #0x64] + ldr r3, [r0, #0x18] + cmp r3, #0 + beq _08043E90 + ldr r1, _08043E8C @ =gUnk_030010A0 + ldrh r2, [r3, #0x2e] + adds r0, r1, #0 + adds r0, #0x48 + strh r2, [r0] + ldrh r0, [r3, #0x32] + adds r1, #0x4a + strh r0, [r1] + b _08043EAC + .align 2, 0 +_08043E8C: .4byte gUnk_030010A0 +_08043E90: + ldr r2, _08043EB0 @ =gUnk_030010A0 + ldr r3, _08043EB4 @ =gUnk_03000BF0 + movs r1, #0x88 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r1, [r3, #6] + adds r0, r0, r1 + adds r1, r2, #0 + adds r1, #0x48 + strh r0, [r1] + ldrh r0, [r3, #8] + adds r0, #0x60 + adds r2, #0x4a + strh r0, [r2] +_08043EAC: + pop {r4, r5, r6, pc} + .align 2, 0 +_08043EB0: .4byte gUnk_030010A0 +_08043EB4: .4byte gUnk_03000BF0 + + thumb_func_start sub_08043EB8 +sub_08043EB8: @ 0x08043EB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + ldrb r0, [r7, #0x10] + movs r5, #0x80 + orrs r0, r5 + strb r0, [r7, #0x10] + adds r2, r7, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r4, #8 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r6, #4 + orrs r0, r6 + strb r0, [r2] + adds r0, r7, #0 + movs r1, #0xd + bl sub_080042AC + ldr r0, [r7, #0x64] + ldr r3, [r0, #4] + ldrb r0, [r3, #0x10] + orrs r0, r5 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r0, [r7, #0x64] + ldr r3, [r0, #8] + ldrb r0, [r3, #0x10] + orrs r0, r5 + strb r0, [r3, #0x10] + adds r2, r3, #0 + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r4, #0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2] + ldr r0, [r7, #0x64] + ldr r3, [r0, #0xc] + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + ldrb r2, [r3, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #1 + mov r8, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r3, #0x18] + adds r3, #0x29 + ldrb r2, [r3] + adds r0, r4, #0 + ands r0, r2 + orrs r0, r6 + strb r0, [r3] + ldr r0, [r7, #0x64] + ldr r3, [r0, #0x10] + ldrb r0, [r3, #0x10] + orrs r5, r0 + strb r5, [r3, #0x10] + ldrb r0, [r3, #0x18] + ands r1, r0 + mov r0, r8 + orrs r1, r0 + strb r1, [r3, #0x18] + adds r1, r3, #0 + adds r1, #0x29 + ldrb r0, [r1] + ands r4, r0 + orrs r4, r6 + strb r4, [r1] + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _08043F74 + ldr r1, _08043F70 @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x44 + b _08043F7A + .align 2, 0 +_08043F70: .4byte gUnk_030010A0 +_08043F74: + ldr r1, _08043F8C @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x48 +_08043F7A: + ldrh r0, [r0] + strh r0, [r3, #0x2e] + ldrb r0, [r7, #0xb] + cmp r0, #0 + bne _08043F90 + adds r0, r1, #0 + adds r0, #0x46 + b _08043F94 + .align 2, 0 +_08043F8C: .4byte gUnk_030010A0 +_08043F90: + adds r0, r1, #0 + adds r0, #0x4a +_08043F94: + ldrh r1, [r0] + movs r0, #0 + strh r1, [r3, #0x32] + strh r0, [r3, #0x36] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + movs r0, #0x3a + strb r0, [r1] + ldr r0, _08043FF8 @ =gUnk_080FD450 + str r0, [r3, #0x48] + movs r0, #0xaf + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r3, r0, #0 + cmp r3, #0 + beq _08043FCA + ldr r0, [r7, #0x64] + ldr r0, [r0, #0xc] + str r0, [r3, #0x50] +_08043FCA: + ldr r0, [r7, #0x64] + ldr r0, [r0] + str r3, [r0, #0x68] + movs r2, #0 + movs r6, #0 + movs r5, #0x80 + lsls r5, r5, #8 + ldr r4, _08043FFC @ =gUnk_080D1419 + movs r3, #0x18 +_08043FDC: + ldr r0, [r7, #0x64] + adds r0, r0, r3 + strh r5, [r0] + strh r6, [r0, #4] + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0, #0xc] + adds r3, #0x10 + adds r2, #1 + cmp r2, #4 + bls _08043FDC + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08043FF8: .4byte gUnk_080FD450 +_08043FFC: .4byte gUnk_080D1419 + + thumb_func_start sub_08044000 +sub_08044000: @ 0x08044000 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xb] + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #1 + ldr r0, _08044070 @ =gUnk_080D1400 + movs r3, #0 + ldr r2, _08044074 @ =gUnk_080D1414 + mov ip, r2 + movs r7, #8 + rsbs r7, r7, #0 + adds r5, r1, r0 + movs r6, #0x18 +_0804401C: + ldr r0, [r4, #0x64] + lsls r1, r3, #2 + adds r0, r0, r1 + ldr r2, [r0] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r2, #0x29 + ldrb r1, [r2] + adds r0, r7, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x64] + adds r1, r1, r6 + ldrh r0, [r5] + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1, #4] + mov r2, ip + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1, #0xc] + adds r5, #2 + adds r6, #0x10 + adds r3, #1 + cmp r3, #4 + bls _0804401C + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + ldr r1, [r4, #0x64] + ldr r0, [r1, #0x14] + ldr r1, [r1, #0x10] + bl sub_0806FA24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08044070: .4byte gUnk_080D1400 +_08044074: .4byte gUnk_080D1414 + + thumb_func_start sub_08044078 +sub_08044078: @ 0x08044078 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080440C4 + movs r2, #1 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #3 + bne _080440AC + ldr r3, _080440B8 @ =gUnk_030010A0 + adds r0, r3, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080440BC + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r3, #0 + adds r1, #0x3c + ldrb r0, [r0, #0xb] + ldrb r1, [r1] + cmp r0, r1 + bne _080440BC +_080440AC: + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 + b _080440C4 + .align 2, 0 +_080440B8: .4byte gUnk_030010A0 +_080440BC: + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_080440C4: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_080440CC +sub_080440CC: @ 0x080440CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08044110 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, _08044104 @ =gUnk_030010A0 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r1, [r1] + ands r0, r1 + cmp r0, #0 + beq _08044108 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r1, r2, #0 + adds r1, #0x3c + ldrb r0, [r0, #0xb] + ldrb r1, [r1] + cmp r0, r1 + bne _08044108 + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + b _08044110 + .align 2, 0 +_08044104: .4byte gUnk_030010A0 +_08044108: + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_08044110: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08044118 +sub_08044118: @ 0x08044118 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08044130 @ =gUnk_080D1588 + 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 +_08044130: .4byte gUnk_080D1588 + + thumb_func_start sub_08044134 +sub_08044134: @ 0x08044134 + push {lr} + ldr r2, _08044148 @ =gUnk_080D15A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08044148: .4byte gUnk_080D15A0 + + thumb_func_start sub_0804414C +sub_0804414C: @ 0x0804414C + push {lr} + ldr r1, _08044158 @ =gUnk_080D1588 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_08044158: .4byte gUnk_080D1588 + + thumb_func_start sub_0804415C +sub_0804415C: @ 0x0804415C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0804418E + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _08044188 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080441BA + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_08044310 + b _080441BA +_08044188: + movs r0, #8 + strb r0, [r4, #0xe] + b _080441BA +_0804418E: + adds r0, r4, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080441B0 + ldr r0, _080441AC @ =gUnk_080D15A8 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080441BA + .align 2, 0 +_080441AC: .4byte gUnk_080D15A8 +_080441B0: + adds r0, r4, #0 + bl sub_080445C0 + bl sub_0805E780 +_080441BA: + pop {r4, pc} + + thumb_func_start sub_080441BC +sub_080441BC: @ 0x080441BC + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080441C4 +sub_080441C4: @ 0x080441C4 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080441CC +sub_080441CC: @ 0x080441CC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080441DE + adds r0, r4, #0 + bl sub_0804A7D4 +_080441DE: + pop {r4, pc} + + thumb_func_start sub_080441E0 +sub_080441E0: @ 0x080441E0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + movs r0, #0x12 + bl GetProgressFlag + cmp r0, #0 + beq _080441F2 + bl sub_0805E780 +_080441F2: + ldrb r7, [r4, #0xa] + cmp r7, #0 + bne _08044284 + ldr r0, _08044244 @ =0x000001EB + movs r1, #1 + bl sub_080AD8F0 + adds r6, r0, #0 + ldrb r1, [r6] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r5, r0, #1 + adds r0, r5, #0 + bl sub_0801D8E0 + adds r1, r0, #0 + str r1, [r4, #0x64] + cmp r1, #0 + beq _0804429A + adds r0, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r1, r4, #0 + adds r1, #0x28 + movs r0, #0xff + strb r0, [r1] + ldr r0, [r4, #0x64] + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, #0xc + bl sub_0801D8E0 + adds r2, r0, #0 + cmp r2, #0 + bne _08044248 + ldr r0, [r4, #0x64] + bl sub_0801DA0C + b _0804429A + .align 2, 0 +_08044244: .4byte 0x000001EB +_08044248: + str r2, [r4, #0x48] + ldr r0, _0804427C @ =gUnk_080FD188 + ldr r1, [r0, #4] + ldr r0, [r0] + str r0, [r2] + str r1, [r2, #4] + adds r0, r4, #0 + bl sub_080442BC + movs r0, #1 + strb r0, [r4, #0x1e] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x75 + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x76 + ldr r0, _08044280 @ =0x0000FFFF + strh r0, [r1] + b _08044292 + .align 2, 0 +_0804427C: .4byte gUnk_080FD188 +_08044280: .4byte 0x0000FFFF +_08044284: + movs r0, #0 + strb r0, [r4, #0x1e] + strh r0, [r4, #0x24] + ldr r0, _0804429C @ =gUnk_080FD168 + str r0, [r4, #0x48] + movs r0, #1 + strb r0, [r4, #0x1c] +_08044292: + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #8 + strb r0, [r4, #0xe] +_0804429A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804429C: .4byte gUnk_080FD168 + + thumb_func_start sub_080442A0 +sub_080442A0: @ 0x080442A0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _080442B2 + adds r0, r1, #0 + bl sub_08044498 + b _080442B8 +_080442B2: + adds r0, r1, #0 + bl sub_08044550 +_080442B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080442BC +sub_080442BC: @ 0x080442BC + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldr r5, _0804430C @ =gUnk_080D15B4 + ldr r0, [r3, #0x64] + ldrb r6, [r0] + movs r4, #0 + cmp r4, r6 + bhs _08044304 + movs r7, #0 +_080442CE: + ldr r1, [r3, #0x48] + lsls r2, r4, #3 + adds r1, r2, r1 + ldrb r0, [r5] + strb r0, [r1, #0xc] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #1] + strb r1, [r0, #0xd] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #2] + strb r1, [r0, #0xe] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + ldrb r1, [r5, #3] + strb r1, [r0, #0xf] + ldr r0, [r3, #0x48] + adds r0, r2, r0 + adds r0, #0xc + strb r7, [r0, #4] + ldr r0, [r3, #0x48] + adds r2, r2, r0 + strb r4, [r2, #0x11] + adds r4, #1 + cmp r4, r6 + blo _080442CE +_08044304: + adds r0, r3, #0 + adds r0, #0x74 + strb r6, [r0] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804430C: .4byte gUnk_080D15B4 + + thumb_func_start sub_08044310 +sub_08044310: @ 0x08044310 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + movs r4, #0xff + movs r6, #0xff + ldr r0, _08044334 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r1, r0, #1 + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _0804436A + cmp r1, #1 + bgt _08044338 + cmp r1, #0 + beq _08044342 + b _080443EA + .align 2, 0 +_08044334: .4byte gLinkEntity +_08044338: + cmp r1, #2 + beq _08044392 + cmp r1, #3 + beq _080443C4 + b _080443EA +_08044342: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_08044352: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _08044360 + ldrb r0, [r1, #0xd] + cmp r6, r0 + bls _08044360 + adds r4, r2, #0 +_08044360: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _08044352 + b _080443EA +_0804436A: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_0804437A: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _08044388 + ldrb r0, [r1, #0xe] + cmp r6, r0 + bls _08044388 + adds r4, r2, #0 +_08044388: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _0804437A + b _080443EA +_08044392: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_080443A2: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _080443B0 + ldrb r0, [r1, #0xc] + cmp r6, r0 + bls _080443B0 + adds r4, r2, #0 +_080443B0: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _080443A2 + b _080443EA +_080443BA: + mov r1, r8 + adds r0, r1, r4 + ldrb r0, [r0, #0x11] + strb r0, [r3, #5] + b _08044492 +_080443C4: + movs r2, #0 + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r2, r0 + bhs _080443EA + adds r3, r0, #0 + ldr r1, [r5, #0x48] +_080443D4: + ldrb r0, [r1, #0x10] + cmp r0, #0 + bne _080443E2 + ldrb r0, [r1, #0xf] + cmp r6, r0 + bls _080443E2 + adds r4, r2, #0 +_080443E2: + adds r1, #8 + adds r2, #1 + cmp r2, r3 + blo _080443D4 +_080443EA: + cmp r4, #0xff + beq _08044492 + ldr r0, [r5, #0x48] + lsls r4, r4, #3 + adds r0, r4, r0 + movs r1, #1 + strb r1, [r0, #0x10] + ldr r1, [r5, #0x64] + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #1 + adds r7, r2, r0 + ldr r0, [r5, #0x48] + adds r0, r4, r0 + ldrb r1, [r0, #0x11] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, #1 + adds r6, r2, r0 + movs r0, #0x53 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + mov r8, r4 + cmp r1, #0 + beq _08044440 + movs r2, #0 + ldrsb r2, [r6, r2] + adds r2, #8 + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r6, r3] + adds r3, #8 + lsls r3, r3, #0x10 + adds r0, r5, #0 + bl PositionRelative +_08044440: + ldr r0, [r5, #0x64] + ldrb r0, [r0] + cmp r0, #0 + bne _08044458 + movs r0, #0x12 + bl sub_0807CD04 + movs r0, #0x72 + bl sub_080A3268 + bl sub_0805E780 +_08044458: + movs r2, #0 + adds r3, r5, #0 + adds r3, #0x74 +_0804445E: + adds r0, r6, r2 + adds r1, r7, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, #1 + cmp r2, #4 + bls _0804445E + movs r2, #0 + ldrb r1, [r3] + cmp r2, r1 + bhs _08044492 + ldr r4, [r5, #0x48] + ldr r0, [r5, #0x64] + ldrb r6, [r0] + adds r5, r1, #0 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r4, #0 +_08044482: + ldrb r0, [r1, #0x11] + cmp r0, r6 + beq _080443BA + adds r3, #8 + adds r1, #8 + adds r2, #1 + cmp r2, r5 + blo _08044482 +_08044492: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08044498 +sub_08044498: @ 0x08044498 + push {r4, r5, r6, lr} + mov ip, r0 + ldr r6, _08044538 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r3, _0804453C @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + asrs r4, r0, #4 + movs r2, #0x3f + ands r4, r2 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrh r1, [r3, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r4, r0 + ldr r0, _08044540 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r0, [r0] + movs r1, #0xf0 + lsls r1, r1, #4 + ands r1, r0 + mov r2, ip + adds r2, #0x75 + ldrb r0, [r2] + cmp r1, r0 + bne _080444DE + mov r0, ip + adds r0, #0x76 + ldrh r0, [r0] + cmp r4, r0 + beq _0804454C +_080444DE: + strb r1, [r2] + mov r0, ip + adds r0, #0x76 + strh r4, [r0] + mov r1, ip + ldr r0, [r1, #0x64] + adds r2, r0, #1 + ldrb r4, [r0] + movs r3, #0x2e + ldrsh r1, [r6, r3] + mov r5, ip + movs r3, #0x2e + ldrsh r0, [r5, r3] + subs r5, r1, r0 + movs r0, #0x32 + ldrsh r1, [r6, r0] + mov r3, ip + movs r6, #0x32 + ldrsh r0, [r3, r6] + subs r1, r1, r0 + movs r3, #0 + cmp r3, r4 + bhs _0804454C +_0804450C: + movs r0, #0 + ldrsb r0, [r2, r0] + subs r0, r5, r0 + cmp r0, #0xf + bhi _08044544 + movs r0, #1 + ldrsb r0, [r2, r0] + subs r0, r1, r0 + cmp r0, #0xf + bhi _08044544 + movs r0, #0xf + movs r1, #0x11 + movs r2, #0 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _0804454C + ldr r0, _08044538 @ =gLinkEntity + bl sub_0806FA24 + b _0804454C + .align 2, 0 +_08044538: .4byte gLinkEntity +_0804453C: .4byte gUnk_03000BF0 +_08044540: .4byte gUnk_03003F80 +_08044544: + adds r2, #5 + adds r3, #1 + cmp r3, r4 + blo _0804450C +_0804454C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08044550 +sub_08044550: @ 0x08044550 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r0, _080445A8 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _080445B4 + ldrh r1, [r6, #0x24] + movs r2, #0x24 + ldrsh r0, [r6, r2] + cmp r0, #0xff + bgt _08044570 + adds r0, r1, #0 + adds r0, #0x10 + strh r0, [r6, #0x24] +_08044570: + ldr r5, _080445AC @ =gLinkEntity + ldrb r0, [r5, #0x14] + movs r4, #0xe + ands r4, r0 + ldr r0, _080445B0 @ =gUnk_08126EE4 + adds r4, r4, r0 + movs r3, #0x2e + ldrsh r0, [r6, r3] + movs r7, #0x32 + ldrsh r1, [r6, r7] + movs r3, #0x2e + ldrsh r2, [r5, r3] + movs r3, #0 + ldrsb r3, [r4, r3] + adds r2, r2, r3 + movs r7, #0x32 + ldrsh r3, [r5, r7] + ldrb r4, [r4, #1] + lsls r4, r4, #0x18 + asrs r4, r4, #0x18 + adds r3, r3, r4 + bl sub_080045D4 + strb r0, [r6, #0x15] + adds r0, r6, #0 + bl sub_0806F69C + b _080445BE + .align 2, 0 +_080445A8: .4byte gUnk_03003F80 +_080445AC: .4byte gLinkEntity +_080445B0: .4byte gUnk_08126EE4 +_080445B4: + adds r0, r6, #0 + bl sub_080445C0 + bl sub_0805E780 +_080445BE: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080445C0 +sub_080445C0: @ 0x080445C0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x21 + movs r1, #1 + movs r2, #1 + bl CreateObject + adds r1, r0, #0 + cmp r1, #0 + beq _080445DA + adds r0, r4, #0 + bl sub_0806FA24 +_080445DA: + pop {r4, pc} + + thumb_func_start sub_080445DC +sub_080445DC: @ 0x080445DC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08044604 + cmp r0, #3 + beq _08044604 + ldr r1, [r5, #0x2c] + ldr r0, [r5, #0x78] + subs r1, r1, r0 + ldr r0, [r4, #0x2c] + adds r0, r0, r1 + str r0, [r4, #0x2c] + ldr r1, [r5, #0x30] + ldr r0, [r5, #0x7c] + subs r1, r1, r0 + ldr r0, [r4, #0x30] + adds r0, r0, r1 + str r0, [r4, #0x30] +_08044604: + ldr r1, _08044684 @ =gUnk_080D1604 + 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, #0x84 + ldrb r0, [r0] + cmp r0, #0 + beq _08044626 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08044626: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044680 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0 + bne _0804464A + ldrb r0, [r4, #0xc] + cmp r0, #6 + bne _0804464A + movs r0, #2 + rsbs r0, r0, #0 + bl ModHealth +_0804464A: + adds r2, r4, #0 + adds r2, #0x45 + ldrb r0, [r2] + cmp r0, #0xfc + bhi _08044680 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0xff + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x80 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080A29BC + ldr r0, _08044688 @ =0x000001C3 + bl sub_080A3268 +_08044680: + pop {r4, r5, pc} + .align 2, 0 +_08044684: .4byte gUnk_080D1604 +_08044688: .4byte 0x000001C3 + + thumb_func_start sub_0804468C +sub_0804468C: @ 0x0804468C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + movs r6, #0 + movs r5, #3 + strb r5, [r0] + ldrb r1, [r4, #0x19] + movs r0, #0x3f + ands r0, r1 + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x19] + 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] + adds r0, r4, #0 + adds r0, #0x84 + strb r6, [r0] + ldrb r3, [r4, #0xa] + cmp r3, #0 + beq _080446C8 + cmp r3, #1 + beq _08044728 + b _0804474A +_080446C8: + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x79 + ldrb r0, [r2] + lsls r0, r0, #3 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x78 + strb r3, [r0] + adds r0, #0xb + strb r3, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r2] + adds r1, r5, #0 + ands r1, r0 + lsls r1, r1, #1 + ldr r0, _08044724 @ =gUnk_080D1620 + adds r1, r1, r0 + ldr r0, [r4, #0x50] + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + subs r3, #0x10 + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl PositionRelative + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x36] + strh r0, [r4, #0x36] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + b _0804474A + .align 2, 0 +_08044724: .4byte gUnk_080D1620 +_08044728: + strb r5, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r6, [r0] + adds r0, #0xf + movs r2, #1 + strb r3, [r0] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_0804474A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804474C +sub_0804474C: @ 0x0804474C + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r2, [r0, #0xc] + cmp r2, #3 + beq _0804476C + cmp r2, #3 + bgt _08044762 + cmp r2, #2 + beq _0804479A + b _080447A8 +_08044762: + cmp r2, #5 + beq _0804477A + cmp r2, #6 + beq _0804478A + b _080447A8 +_0804476C: + movs r1, #0 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + strb r1, [r4, #0xe] + b _080447A8 +_0804477A: + movs r0, #0 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + movs r0, #1 + strb r0, [r4, #0xf] + b _080447A8 +_0804478A: + movs r0, #0 + strb r2, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080447A8 +_0804479A: + movs r1, #0 + strb r2, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x74 + strb r1, [r0] + subs r0, #0x35 + strb r1, [r0] +_080447A8: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080447B6 + adds r0, r4, #0 + bl sub_080042B8 + b _080447DC +_080447B6: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080447D0 + movs r0, #2 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080447D0: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 +_080447DC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080447E0 +sub_080447E0: @ 0x080447E0 + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + ldrb r0, [r3, #0xc] + cmp r0, #1 + bne _08044818 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x2b + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08044E74 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044864 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08044864 +_08044818: + adds r1, r4, #0 + adds r1, #0x77 + ldrb r0, [r1] + adds r2, r0, #1 + movs r0, #7 + ands r2, r0 + strb r2, [r1] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08044852 + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _08044848 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08044852 +_08044848: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08044852: + adds r0, r3, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #2 + bne _08044864 + adds r0, r4, #0 + movs r1, #2 + bl sub_08044E74 +_08044864: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08044868 +sub_08044868: @ 0x08044868 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #3 + bne _0804487E + b _080449C8 +_0804487E: + cmp r0, #3 + bgt _0804488E + cmp r0, #1 + beq _08044948 + cmp r0, #2 + bne _0804488C + b _080449AE +_0804488C: + b _080449EA +_0804488E: + cmp r0, #0xfe + beq _08044898 + cmp r0, #0xff + beq _080448B6 + b _080449EA +_08044898: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080448A4 + b _080449EA +_080448A4: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r0, [r0] + cmp r0, #2 + beq _080448B0 + b _080449EA +_080448B0: + bl sub_0805E780 + b _080449EA +_080448B6: + adds r0, r4, #0 + adds r0, #0x83 + ldrb r0, [r0] + cmp r0, #0 + bne _080448C2 + b _080449EA +_080448C2: + adds r6, r4, #0 + adds r6, #0x74 + ldrb r0, [r6] + cmp r0, #0 + beq _080448D2 + cmp r0, #1 + beq _08044900 + b _080449EA +_080448D2: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080448E2 + b _080449EA +_080448E2: + movs r0, #1 + strb r0, [r6] + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _080449EA +_08044900: + adds r0, r4, #0 + bl sub_0806F69C + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + movs r3, #0xc + bl sub_0806FCB8 + cmp r0, #0 + beq _08044934 + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + ldrh r0, [r5, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + b _080449EA +_08044934: + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + b _080449EA +_08044948: + adds r1, r4, #0 + adds r1, #0x83 + ldrb r0, [r1] + cmp r0, #0 + bne _08044964 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_08044964: + adds r0, r4, #0 + bl sub_08044DEC + adds r0, r5, #0 + adds r0, #0x86 + ldrb r0, [r0] + cmp r0, #1 + bls _080449A8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r6, r0, #0x1e + cmp r6, #1 + bne _080449A8 + movs r0, #0x84 + adds r0, r0, r4 + mov r8, r0 + ldrb r7, [r0] + cmp r7, #0 + bne _080449A8 + adds r0, r4, #0 + movs r1, #0x18 + movs r2, #0 + bl sub_0804A98C + adds r5, r0, #0 + cmp r5, #0 + beq _080449A8 + strb r6, [r5, #0xb] + str r4, [r5, #0x50] + mov r0, r8 + strb r6, [r0] + adds r0, r4, #0 + adds r0, #0x3f + strb r7, [r0] +_080449A8: + movs r0, #0x20 + strb r0, [r4, #0xe] + b _080449EA +_080449AE: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080449EA + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bhi _080449EA + adds r0, r4, #0 + bl sub_0806F69C + b _080449EA +_080449C8: + adds r0, r4, #0 + movs r1, #1 + bl sub_08044E74 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080449E2 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _080449E8 +_080449E2: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_080449E8: + strb r0, [r4, #0x10] +_080449EA: + adds r0, r4, #0 + bl sub_080042B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080449F8 +sub_080449F8: @ 0x080449F8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x50] + bl sub_080042B8 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08044A90 + adds r6, r4, #0 + adds r6, #0x74 + ldrb r0, [r6] + cmp r0, #1 + beq _08044A6A + cmp r0, #1 + bgt _08044A1C + cmp r0, #0 + beq _08044A26 + b _08044B02 +_08044A1C: + cmp r0, #2 + beq _08044AC6 + cmp r0, #3 + beq _08044AF8 + b _08044B02 +_08044A26: + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044B02 + adds r1, r5, #0 + adds r1, #0x78 + ldrb r0, [r1] + cmp r0, #0 + bne _08044A4C + adds r0, #1 + strb r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] +_08044A4C: + movs r0, #4 + strb r0, [r5, #0xe] + ldrb r0, [r5, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08044B02 + movs r0, #1 + strb r0, [r6] + b _08044B02 +_08044A6A: + ldrb r0, [r5, #0xe] + cmp r0, #2 + beq _08044A84 + cmp r0, #2 + bgt _08044A7A + cmp r0, #1 + beq _08044A9A + b _08044B02 +_08044A7A: + cmp r0, #3 + beq _08044ABA + cmp r0, #4 + beq _08044AB4 + b _08044B02 +_08044A84: + adds r0, r4, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #0 + bne _08044B02 + strb r0, [r5, #0xf] +_08044A90: + adds r0, r5, #0 + movs r1, #0 + bl sub_08044E74 + b _08044B02 +_08044A9A: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #0x10 + ands r0, r4 + strb r0, [r5, #0x15] + b _08044AC0 +_08044AB4: + adds r0, r5, #0 + bl sub_0806F69C +_08044ABA: + adds r0, r5, #0 + bl sub_0806F69C +_08044AC0: + movs r0, #2 + strb r0, [r5, #0xe] + b _08044B02 +_08044AC6: + adds r1, r5, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + bne _08044B02 + adds r0, #1 + strb r0, [r1] + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08044B02 + adds r0, r5, #0 + movs r1, #0x1c + movs r2, #0 + bl sub_0804A98C + adds r4, r0, #0 + cmp r4, #0 + beq _08044B02 + ldrh r0, [r4, #0x32] + adds r0, #4 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] + str r4, [r5, #0x54] + b _08044B02 +_08044AF8: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _08044B02 + movs r0, #0 + strb r0, [r5, #0xf] +_08044B02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08044B04 +sub_08044B04: @ 0x08044B04 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r6, [r4, #0x50] + bl sub_080042B8 + ldrb r0, [r6, #0xc] + cmp r0, #1 + bne _08044B26 + adds r0, r4, #0 + movs r1, #0 + bl sub_08044E74 + movs r0, #0x20 + strb r0, [r4, #0xe] + b _08044DE6 +_08044B26: + adds r0, r6, #0 + adds r0, #0x74 + ldrb r5, [r0] + cmp r5, #1 + bne _08044B32 + b _08044D10 +_08044B32: + cmp r5, #1 + bgt _08044B3C + cmp r5, #0 + beq _08044B4A + b _08044DE6 +_08044B3C: + cmp r5, #2 + bne _08044B42 + b _08044DE6 +_08044B42: + cmp r5, #3 + bne _08044B48 + b _08044D6A +_08044B48: + b _08044DE6 +_08044B4A: + adds r0, r4, #0 + bl sub_0806F69C + adds r7, r4, #0 + adds r7, #0x74 + ldrb r0, [r7] + mov r8, r7 + cmp r0, #1 + beq _08044BF4 + cmp r0, #1 + bgt _08044B66 + cmp r0, #0 + beq _08044B72 + b _08044DE6 +_08044B66: + cmp r0, #2 + beq _08044C4C + cmp r0, #3 + bne _08044B70 + b _08044C9C +_08044B70: + b _08044DE6 +_08044B72: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044B98 + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + movs r1, #2 + cmp r0, #0 + beq _08044B8C + movs r1, #4 +_08044B8C: + strb r1, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_08044B98: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + movs r2, #0xff + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08044BAA + b _08044DE6 +_08044BAA: + ldrb r0, [r4, #0xe] + cmp r0, #2 + beq _08044BB6 + movs r0, #1 + strb r0, [r4, #0xf] + b _08044DE6 +_08044BB6: + adds r1, r4, #0 + adds r1, #0x78 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r2 + cmp r0, #2 + bls _08044BDA + mov r2, r8 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + movs r0, #1 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xe] + strb r3, [r4, #0xf] + b _08044BDE +_08044BDA: + movs r0, #0x20 + strb r0, [r4, #0xf] +_08044BDE: + ldrb r0, [r1] + movs r2, #0xa0 + lsls r2, r2, #3 + adds r1, r2, #0 + cmp r0, #0 + beq _08044BF0 + movs r0, #0xa0 + lsls r0, r0, #2 + adds r1, r0, #0 +_08044BF0: + strh r1, [r4, #0x24] + b _08044DE6 +_08044BF4: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08044C04 + b _08044DE6 +_08044C04: + movs r0, #6 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + adds r0, #1 + movs r2, #0x1f + mov r8, r2 + mov r2, r8 + ands r0, r2 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + ands r0, r1 + cmp r0, #0x30 + beq _08044C24 + b _08044DE6 +_08044C24: + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strh r5, [r4, #0x24] + adds r0, #0x10 + mov r1, r8 + ands r0, r1 + strb r0, [r4, #0x15] + movs r0, #0x10 + strb r0, [r4, #0xe] + strb r0, [r4, #0xf] + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + b _08044DE6 +_08044C4C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08044CA2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #4 + beq _08044CAE + cmp r5, #4 + bgt _08044C6A + cmp r5, #0 + beq _08044C78 + b _08044DE6 +_08044C6A: + cmp r5, #0xc + beq _08044C70 + b _08044DE6 +_08044C70: + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + b _08044DE6 +_08044C78: + ldrb r0, [r7] + adds r0, #1 + strb r0, [r7] + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + strh r5, [r4, #0x24] + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08044DE6 +_08044C9C: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044CB6 +_08044CA2: + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08044CAE + b _08044DE6 +_08044CAE: + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _08044DE6 +_08044CB6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08044CD2 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044CD2 + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldr r0, _08044D0C @ =0x0000014F + bl sub_080A3268 +_08044CD2: + adds r0, r4, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #3 + bne _08044CF8 + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + movs r3, #0xc + bl sub_0806FCB8 + cmp r0, #0 + beq _08044CF8 + ldrb r0, [r6, #0xe] + adds r0, #1 + strb r0, [r6, #0xe] +_08044CF8: + movs r2, #0x2e + ldrsh r1, [r6, r2] + movs r0, #0x32 + ldrsh r2, [r6, r0] + subs r2, #0x10 + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + b _08044DE6 + .align 2, 0 +_08044D0C: .4byte 0x0000014F +_08044D10: + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #1 + beq _08044D50 + cmp r0, #3 + bne _08044DE6 + strb r5, [r1] + movs r0, #0x50 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r3, _08044D4C @ =0xFFF00000 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044DE6 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _08044DE6 + .align 2, 0 +_08044D4C: .4byte 0xFFF00000 +_08044D50: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08044DE6 + strb r0, [r1] + movs r0, #0x20 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xf] + b _08044DE6 +_08044D6A: + adds r5, r4, #0 + adds r5, #0x74 + ldrb r0, [r5] + cmp r0, #1 + beq _08044DA4 + cmp r0, #1 + bgt _08044D7E + cmp r0, #0 + beq _08044D84 + b _08044DE6 +_08044D7E: + cmp r0, #2 + beq _08044DBE + b _08044DE6 +_08044D84: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08044DE6 + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044DE6 + adds r0, r4, #0 + bl sub_08044DEC + movs r0, #1 + strb r0, [r5] + movs r0, #0x10 + strb r0, [r4, #0xe] + b _08044DE6 +_08044DA4: + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08044DE6 + ldrb r0, [r5] + adds r0, #1 + strb r0, [r5] + b _08044DE6 +_08044DBE: + adds r0, r4, #0 + movs r1, #1 + bl sub_08044E74 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08044DD8 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + b _08044DDE +_08044DD8: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 +_08044DDE: + strb r0, [r4, #0x10] + ldrb r0, [r6, #0xe] + adds r0, #1 + strb r0, [r6, #0xe] +_08044DE6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08044DEC +sub_08044DEC: @ 0x08044DEC + push {lr} + mov ip, r0 + ldr r0, [r0, #0x50] + adds r0, #0x80 + mov r1, ip + adds r1, #0x79 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bls _08044E1A + mov r0, ip + ldrb r1, [r0, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x18] + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + b _08044E26 +_08044E1A: + mov r2, ip + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_08044E26: + mov r0, ip + ldrb r1, [r0, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + mov r2, ip + strb r0, [r2, #0x10] + mov r0, ip + adds r0, #0x78 + strb r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + ldr r0, [r2, #0x50] + adds r1, r0, #0 + adds r1, #0x80 + ldrb r1, [r1] + subs r1, #1 + ldr r2, _08044E6C @ =gUnk_080D1628 + mov r3, ip + adds r3, #0x79 + lsls r1, r1, #2 + ldrb r3, [r3] + adds r1, r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + mov r2, ip + strb r1, [r2, #0x15] + ldr r3, _08044E70 @ =0xFFF00000 + mov r1, ip + movs r2, #0 + bl PositionRelative + pop {pc} + .align 2, 0 +_08044E6C: .4byte gUnk_080D1628 +_08044E70: .4byte 0xFFF00000 + + thumb_func_start sub_08044E74 +sub_08044E74: @ 0x08044E74 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r1, #0 + movs r0, #0 + movs r1, #1 + strb r1, [r5, #0xc] + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + cmp r2, #1 + beq _08044ED4 + cmp r2, #1 + blo _08044EE4 + adds r6, r5, #0 + adds r6, #0x78 + cmp r2, #2 + bne _08044F3E + strb r2, [r5, #0xc] + ldrb r0, [r5, #0x15] + adds r0, #0x18 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + ldr r0, [r5, #0x50] + ldr r3, _08044ED0 @ =0xFFF00000 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + movs r0, #0xc0 + lsls r0, r0, #6 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #8 + ands r0, r4 + strb r0, [r5, #0x15] + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_0806F69C + b _08044F3E + .align 2, 0 +_08044ED0: .4byte 0xFFF00000 +_08044ED4: + ldrb r0, [r5, #0x15] + adds r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r5, #0x15] + adds r6, r5, #0 + adds r6, #0x78 + b _08044F3E +_08044EE4: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + beq _08044F32 + ldrb r0, [r5, #0xe] + cmp r0, #1 + beq _08044F18 + cmp r0, #1 + blt _08044F3E + cmp r0, #4 + bgt _08044F3E + cmp r0, #3 + blt _08044F3E + movs r4, #0xff +_08044F04: + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + ands r0, r4 + cmp r0, #2 + bne _08044F04 + b _08044F3E +_08044F18: + ldrb r0, [r5, #0x15] + adds r0, #0x10 + movs r4, #0x1f + ands r0, r4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0x15] + adds r0, #0x10 + ands r0, r4 + strb r0, [r5, #0x15] + b _08044F3E +_08044F32: + ldrb r0, [r5, #0xe] + cmp r0, #2 + bne _08044F3E + adds r0, r5, #0 + bl sub_0806F69C +_08044F3E: + movs r0, #0 + movs r1, #1 + strb r1, [r5, #0xe] + strb r0, [r6] + movs r0, #0xa0 + lsls r0, r0, #3 + strh r0, [r5, #0x24] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08044F50 +sub_08044F50: @ 0x08044F50 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08044F6C @ =gUnk_080D16A4 + bl sub_0800129E + movs r3, #0xc + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_08044F6C: .4byte gUnk_080D16A4 + + thumb_func_start sub_08044F70 +sub_08044F70: @ 0x08044F70 + push {lr} + ldr r2, _08044F84 @ =gUnk_080D16BC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08044F84: .4byte gUnk_080D16BC + + thumb_func_start sub_08044F88 +sub_08044F88: @ 0x08044F88 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _08044FA2 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, r1 + beq _08044FA2 + movs r0, #4 + strb r0, [r4, #0xc] + b _08044FAA +_08044FA2: + ldr r1, _08044FC0 @ =gUnk_080D16A4 + adds r0, r4, #0 + bl sub_0804AA30 +_08044FAA: + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08044FBC + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_08044FBC: + pop {r4, pc} + .align 2, 0 +_08044FC0: .4byte gUnk_080D16A4 + + thumb_func_start nullsub_171 +nullsub_171: @ 0x08044FC4 + bx lr + .align 2, 0 + + thumb_func_start sub_08044FC8 +sub_08044FC8: @ 0x08044FC8 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08044FF8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08044FF8 +sub_08044FF8: @ 0x08044FF8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + adds r4, #0x84 + strb r0, [r4] + pop {r4, pc} + + thumb_func_start sub_08045018 +sub_08045018: @ 0x08045018 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045086 + movs r4, #3 + strb r4, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + ble _0804504C + movs r0, #0x80 + lsls r0, r0, #5 + movs r2, #0x24 + ldrsh r1, [r5, r2] + bl sub_0806FA04 + lsrs r0, r0, #8 + strb r0, [r5, #0xe] +_0804504C: + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0804507C + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _0804507C + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _08045086 +_0804507C: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_08045086: + pop {r4, r5, pc} + + thumb_func_start sub_08045088 +sub_08045088: @ 0x08045088 + push {r4, lr} + adds r4, r0, #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 _080450A6 + movs r0, #1 + strb r0, [r4, #0xc] +_080450A6: + pop {r4, pc} + + thumb_func_start sub_080450A8 +sub_080450A8: @ 0x080450A8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r8, r0 + ldr r1, _0804516C @ =gUnk_080D16D0 + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0x48 + subs r0, r0, r7 + ldr r1, _08045170 @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _08045160 + cmp r7, #0 + beq _080450E2 + mov r4, sp + adds r5, r7, #0 +_080450D0: + mov r0, r8 + ldrb r1, [r0, #0xa] + movs r0, #0x57 + bl CreateEnemy + stm r4!, {r0} + subs r5, #1 + cmp r5, #0 + bne _080450D0 +_080450E2: + ldr r2, _08045174 @ =gUnk_080D16D4 + mov sb, r2 + movs r5, #0 + cmp r5, r7 + bge _08045142 +_080450EC: + lsls r0, r5, #2 + add r0, sp + ldr r6, [r0] + adds r4, r5, #1 + adds r0, r4, #0 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x54] + adds r0, r5, r7 + subs r0, #1 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xb] + strh r1, [r6, #0x36] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + mov r0, sb + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + mov r0, r8 + adds r1, r6, #0 + bl sub_08045178 + movs r2, #2 + add sb, r2 + adds r5, r4, #0 + cmp r5, r7 + blt _080450EC +_08045142: + mov r0, r8 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r6, r0, #0 + cmp r6, #0 + beq _0804515A + mov r0, r8 + adds r1, r6, #0 + bl sub_0806FA24 +_0804515A: + mov r0, r8 + bl sub_0805E7BC +_08045160: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804516C: .4byte gUnk_080D16D0 +_08045170: .4byte gUnk_03003DBC +_08045174: .4byte gUnk_080D16D4 + + thumb_func_start sub_08045178 +sub_08045178: @ 0x08045178 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + cmp r4, #0 + beq _080451C6 + bl sub_0804A4E4 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_080002CC + cmp r0, #0 + bne _080451C6 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r2, r0, r5 + cmp r2, #0 + blt _080451AE + ldr r0, _080451C8 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r0, [r0, #0x1e] + adds r1, r1, r0 + cmp r2, r1 + bge _080451AE + strh r2, [r4, #0x2e] +_080451AE: + movs r1, #0x32 + ldrsh r0, [r4, r1] + adds r2, r0, r6 + cmp r2, #0 + blt _080451C6 + ldr r0, _080451C8 @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + cmp r2, r1 + bge _080451C6 + strh r2, [r4, #0x32] +_080451C6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080451C8: .4byte gUnk_03000BF0 + + thumb_func_start sub_080451CC +sub_080451CC: @ 0x080451CC + ldrb r3, [r0, #0x10] + movs r2, #0xfe + ands r2, r3 + strb r2, [r1, #0x10] + ldr r2, [r0, #0x2c] + str r2, [r1, #0x2c] + ldr r2, [r0, #0x30] + str r2, [r1, #0x30] + ldr r2, [r0, #0x34] + str r2, [r1, #0x34] + adds r0, #0x68 + adds r1, #0x68 + ldrb r2, [r0, #4] + strb r2, [r1, #4] + ldrb r2, [r0, #5] + strb r2, [r1, #5] + ldrb r2, [r0, #6] + strb r2, [r1, #6] + ldrb r2, [r0, #7] + strb r2, [r1, #7] + ldrh r2, [r0, #8] + strh r2, [r1, #8] + ldrh r0, [r0, #0xa] + strh r0, [r1, #0xa] + bx lr + .align 2, 0 + + thumb_func_start sub_08045200 +sub_08045200: @ 0x08045200 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804521C @ =gUnk_080D17C0 + bl sub_0800129E + movs r3, #8 + rsbs r3, r3, #0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + bl sub_0804A9AC + pop {r4, pc} + .align 2, 0 +_0804521C: .4byte gUnk_080D17C0 + + thumb_func_start sub_08045220 +sub_08045220: @ 0x08045220 + push {lr} + ldr r2, _08045234 @ =gUnk_080D17D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08045234: .4byte gUnk_080D17D8 + + thumb_func_start sub_08045238 +sub_08045238: @ 0x08045238 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _0804524C + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC +_0804524C: + ldr r1, _08045258 @ =gUnk_080D17C0 + adds r0, r4, #0 + bl sub_0804AA30 + pop {r4, pc} + .align 2, 0 +_08045258: .4byte gUnk_080D17C0 + + thumb_func_start sub_0804525C +sub_0804525C: @ 0x0804525C + push {r4, lr} + adds r4, r0, #0 + ldr r3, [r4, #0x50] + cmp r4, r3 + beq _08045298 + cmp r3, #0 + beq _08045298 + adds r2, r4, #0 + adds r2, #0x6c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x50] + ldr r0, [r4, #0x54] + str r0, [r1, #0x54] + ldr r1, [r4, #0x54] + ldr r0, [r4, #0x50] + str r0, [r1, #0x50] + adds r0, r4, #0 + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08045298 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08058800 +_08045298: + adds r0, r4, #0 + bl sub_0804A7D4 + pop {r4, pc} + + thumb_func_start nullsub_22 +nullsub_22: @ 0x080452A0 + bx lr + .align 2, 0 + + thumb_func_start sub_080452A4 +sub_080452A4: @ 0x080452A4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r2, #1 + movs r5, #1 + strb r5, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _080452DC + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + b _080452E2 +_080452DC: + adds r0, r4, #0 + bl sub_080452E4 +_080452E2: + pop {r4, r5, pc} + + thumb_func_start sub_080452E4 +sub_080452E4: @ 0x080452E4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080452FC +sub_080452FC: @ 0x080452FC + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08004274 + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045370 + movs r4, #3 + strb r4, [r5, #0xc] + movs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + ble _08045330 + movs r0, #0x80 + lsls r0, r0, #5 + movs r2, #0x24 + ldrsh r1, [r5, r2] + bl sub_0806FA04 + lsrs r0, r0, #8 + strb r0, [r5, #0xe] +_08045330: + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _08045360 + bl sub_08000E50 + ands r0, r4 + cmp r0, #0 + beq _08045360 + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _08045370 +_08045360: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08045374 +_08045370: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08045374 +sub_08045374: @ 0x08045374 + push {r4, lr} + adds r4, r0, #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 _08045392 + movs r0, #1 + strb r0, [r4, #0xc] +_08045392: + pop {r4, pc} + + thumb_func_start sub_08045394 +sub_08045394: @ 0x08045394 + push {lr} + ldr r1, _080453A0 @ =gUnk_080D17E8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080453A0: .4byte gUnk_080D17E8 + + thumb_func_start sub_080453A4 +sub_080453A4: @ 0x080453A4 + push {lr} + ldr r2, _080453B8 @ =gUnk_080D1800 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080453B8: .4byte gUnk_080D1800 + + thumb_func_start sub_080453BC +sub_080453BC: @ 0x080453BC + push {lr} + adds r2, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _080453D6 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, r1 + beq _080453D6 + movs r0, #2 + strb r0, [r2, #0xc] + b _080453DE +_080453D6: + ldr r1, _080453E0 @ =gUnk_080D17E8 + adds r0, r2, #0 + bl sub_0804AA30 +_080453DE: + pop {pc} + .align 2, 0 +_080453E0: .4byte gUnk_080D17E8 + + thumb_func_start nullsub_172 +nullsub_172: @ 0x080453E4 + bx lr + .align 2, 0 + + thumb_func_start sub_080453E8 +sub_080453E8: @ 0x080453E8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + adds r0, #0x3f + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08045524 + pop {r4, pc} + + thumb_func_start sub_08045430 +sub_08045430: @ 0x08045430 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08045452 + adds r0, r4, #0 + bl sub_08045524 +_08045452: + pop {r4, pc} + + thumb_func_start sub_08045454 +sub_08045454: @ 0x08045454 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x10 + mov r8, r0 + ldr r1, _08045518 @ =gUnk_080D180C + ldrb r0, [r0, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + movs r0, #0x48 + subs r0, r0, r7 + ldr r1, _0804551C @ =gUnk_03003DBC + ldrb r1, [r1] + cmp r0, r1 + ble _0804550C + cmp r7, #0 + beq _0804548E + mov r4, sp + adds r5, r7, #0 +_0804547C: + mov r0, r8 + ldrb r1, [r0, #0xa] + movs r0, #0x59 + bl CreateEnemy + stm r4!, {r0} + subs r5, #1 + cmp r5, #0 + bne _0804547C +_0804548E: + ldr r2, _08045520 @ =gUnk_080D1810 + mov sb, r2 + movs r5, #0 + cmp r5, r7 + bge _080454EE +_08045498: + lsls r0, r5, #2 + add r0, sp + ldr r6, [r0] + adds r4, r5, #1 + adds r0, r4, #0 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x54] + adds r0, r5, r7 + subs r0, #1 + adds r1, r7, #0 + bl __modsi3 + lsls r0, r0, #2 + add r0, sp + ldr r0, [r0] + str r0, [r6, #0x50] + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xb] + strh r1, [r6, #0x36] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0xf0 + strb r0, [r1] + mov r0, sb + movs r2, #0 + ldrsb r2, [r0, r2] + movs r3, #1 + ldrsb r3, [r0, r3] + mov r0, r8 + adds r1, r6, #0 + bl sub_08045178 + movs r2, #2 + add sb, r2 + adds r5, r4, #0 + cmp r5, r7 + blt _08045498 +_080454EE: + mov r0, r8 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r6, r0, #0 + cmp r6, #0 + beq _08045506 + mov r0, r8 + adds r1, r6, #0 + bl sub_0806FA24 +_08045506: + mov r0, r8 + bl sub_0805E7BC +_0804550C: + add sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08045518: .4byte gUnk_080D180C +_0804551C: .4byte gUnk_03003DBC +_08045520: .4byte gUnk_080D1810 + + thumb_func_start sub_08045524 +sub_08045524: @ 0x08045524 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + adds r0, r5, #0 + movs r1, #1 + movs r2, #8 + bl sub_0804A024 + adds r4, r0, #0 + cmp r4, #0xff + beq _08045556 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + bne _08045556 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + b _08045596 +_08045556: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08045562 + subs r0, #1 + strb r0, [r5, #0xe] + b _080455A8 +_08045562: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _0804559E + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _0804559E + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 +_08045596: + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _080455A8 +_0804559E: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_080455A8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080455AC +sub_080455AC: @ 0x080455AC + push {lr} + ldr r1, _080455B8 @ =gUnk_080D1868 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080455B8: .4byte gUnk_080D1868 + + thumb_func_start sub_080455BC +sub_080455BC: @ 0x080455BC + push {lr} + ldr r2, _080455D0 @ =gUnk_080D1880 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080455D0: .4byte gUnk_080D1880 + + thumb_func_start sub_080455D4 +sub_080455D4: @ 0x080455D4 + push {lr} + ldr r1, _080455E0 @ =gUnk_080D1868 + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_080455E0: .4byte gUnk_080D1868 + + thumb_func_start sub_080455E4 +sub_080455E4: @ 0x080455E4 + push {lr} + adds r3, r0, #0 + ldr r0, [r3, #0x50] + cmp r3, r0 + beq _0804560A + cmp r0, #0 + beq _0804560A + adds r2, r3, #0 + adds r2, #0x6c + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + ldr r1, [r3, #0x50] + ldr r0, [r3, #0x54] + str r0, [r1, #0x54] + ldr r1, [r3, #0x54] + ldr r0, [r3, #0x50] + str r0, [r1, #0x50] +_0804560A: + adds r0, r3, #0 + bl sub_0804A7D4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_23 +nullsub_23: @ 0x08045614 + bx lr + .align 2, 0 + + thumb_func_start sub_08045618 +sub_08045618: @ 0x08045618 + push {r4, lr} + adds r4, r0, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0804A720 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08045678 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08045654 +sub_08045654: @ 0x08045654 + push {r4, lr} + adds r4, r0, #0 + bl sub_080AEFE0 + adds r0, r4, #0 + bl sub_08004274 + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08045676 + adds r0, r4, #0 + bl sub_08045678 +_08045676: + pop {r4, pc} + + thumb_func_start sub_08045678 +sub_08045678: @ 0x08045678 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804568E + subs r0, #1 + strb r0, [r5, #0xe] + b _080456D4 +_0804568E: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + strb r0, [r5, #0xe] + adds r0, r5, #0 + bl sub_08049FA0 + cmp r0, #0 + bne _080456CA + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + cmp r1, #0 + beq _080456CA + adds r0, r5, #0 + bl sub_08049EE4 + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #8 + ands r0, r1 + adds r0, #0xfc + adds r4, r4, r0 + movs r0, #0x18 + ands r4, r0 + strb r4, [r5, #0x15] + b _080456D4 +_080456CA: + bl sub_08000E50 + movs r1, #0x18 + ands r0, r1 + strb r0, [r5, #0x15] +_080456D4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080456D8 +sub_080456D8: @ 0x080456D8 + push {lr} + ldr r1, _080456E4 @ =gUnk_080D1888 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080456E4: .4byte gUnk_080D1888 + + thumb_func_start sub_080456E8 +sub_080456E8: @ 0x080456E8 + push {lr} + ldr r2, _080456FC @ =gUnk_080D18A0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080456FC: .4byte gUnk_080D18A0 + + thumb_func_start sub_08045700 +sub_08045700: @ 0x08045700 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xa] + cmp r0, #0 + beq _080457D0 + ldr r0, [r5, #0x50] + ldr r3, [r0, #0x50] + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080457D0 + movs r0, #0x3f + ands r0, r1 + cmp r0, #0xe + beq _08045728 + cmp r0, #0x15 + bne _08045778 +_08045728: + adds r1, r5, #0 + adds r1, #0x81 + ldrb r0, [r1] + cmp r0, #0 + bne _0804575C + movs r0, #3 + strb r0, [r5, #0xc] + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + ldrb r0, [r5, #0xe] + adds r0, #2 + orrs r1, r0 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldrb r2, [r5, #0xe] + adds r2, #2 + orrs r1, r2 + bl sub_08004260 +_0804575C: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804576C + movs r0, #0xbd + lsls r0, r0, #1 + bl sub_080A3268 + b _080457D0 +_0804576C: + ldr r0, _08045774 @ =0x00000119 + bl sub_080A3268 + b _080457D0 + .align 2, 0 +_08045774: .4byte 0x00000119 +_08045778: + adds r2, r5, #0 + adds r2, #0x45 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + beq _080457D0 + movs r0, #0xff + strb r0, [r2] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _080457D0 + adds r0, r3, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _080457D0 + adds r0, r3, #0 + adds r0, #0x76 + movs r1, #1 + ldrb r2, [r5, #0xb] + lsls r1, r2 + ldrb r2, [r0] + orrs r1, r2 + strb r1, [r0] + adds r1, r5, #0 + adds r1, #0x85 + ldrb r0, [r1] + cmp r0, #0 + bne _080457D0 + adds r0, #1 + strb r0, [r1] + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + movs r4, #6 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 +_080457D0: + ldr r1, _080457DC @ =gUnk_080D1888 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_080457DC: .4byte gUnk_080D1888 + + thumb_func_start nullsub_173 +nullsub_173: @ 0x080457E0 + bx lr + .align 2, 0 + + thumb_func_start sub_080457E4 +sub_080457E4: @ 0x080457E4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08045850 @ =gUnk_02000050 + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + cmp r2, #0 + bne _08045868 + movs r3, #1 + strb r3, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, #4 + strb r2, [r0] + strb r2, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0x30 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x83 + strb r2, [r0] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08045854 + adds r0, r4, #0 + bl sub_08045A00 + movs r0, #0x5a + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + cmp r1, #0 + beq _0804585A + str r4, [r1, #0x50] + str r1, [r4, #0x54] + ldrb r0, [r4, #0xe] + strb r0, [r1, #0xe] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xb] + adds r0, r4, #0 + bl sub_0806FA24 + b _0804585A + .align 2, 0 +_08045850: .4byte gUnk_02000050 +_08045854: + adds r0, r4, #0 + adds r0, #0x63 + strb r3, [r0] +_0804585A: + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + movs r0, #1 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_08045868: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804586C +sub_0804586C: @ 0x0804586C + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + cmp r0, #0 + bne _080458AA + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080458C2 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0804589A + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_0804589A: + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08004260 + b _080458C2 +_080458AA: + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080458C2 + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] +_080458C2: + pop {r4, pc} + + thumb_func_start sub_080458C4 +sub_080458C4: @ 0x080458C4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_08045A28 + ldr r1, [r5, #0x50] + ldrb r2, [r5, #0xa] + cmp r2, #0 + beq _080458D6 + ldr r1, [r1, #0x50] +_080458D6: + ldrb r0, [r1, #0xc] + cmp r0, #3 + bne _08045934 + adds r0, r1, #0 + adds r0, #0x80 + ldrb r0, [r0] + cmp r0, #1 + bne _08045934 + movs r0, #0 + movs r4, #4 + strb r4, [r5, #0xc] + strb r0, [r5, #0xf] + cmp r2, #0 + beq _08045934 + ldrb r0, [r5, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r5, #0x10] + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _0804591C + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + movs r4, #5 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 + b _08045934 +_0804591C: + ldrb r1, [r5, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + adds r0, r5, #0 + bl sub_08004260 + ldr r0, [r5, #0x50] + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + orrs r1, r4 + bl sub_08004260 +_08045934: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08045938 +sub_08045938: @ 0x08045938 + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045980 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08045980 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08045966 + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x32 + b _0804597E +_08045966: + ldr r0, [r4, #0x50] + ldr r2, [r0, #0x50] + adds r2, #0x76 + movs r0, #1 + ldrb r1, [r4, #0xb] + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x31 +_0804597E: + strb r0, [r1] +_08045980: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08045984 +sub_08045984: @ 0x08045984 + push {r4, lr} + adds r4, r0, #0 + bl sub_08045A28 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080459A6 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080459FE + movs r0, #0x20 + strb r0, [r4, #0xf] + b _080459FE +_080459A6: + ldr r2, [r4, #0x50] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080459B0 + ldr r2, [r2, #0x50] +_080459B0: + ldrb r0, [r2, #0x14] + cmp r0, #2 + bhi _080459FE + ldrb r0, [r2, #0xc] + cmp r0, #3 + beq _080459FE + movs r0, #0 + movs r3, #1 + strb r3, [r4, #0xc] + strb r0, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x81 + strb r0, [r1] + adds r1, #4 + strb r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _080459DA + subs r1, #0x46 + movs r0, #0x33 + strb r0, [r1] +_080459DA: + adds r0, r2, #0 + adds r0, #0x75 + ldrb r0, [r0] + ldrb r1, [r4, #0xb] + asrs r0, r1 + ands r0, r3 + cmp r0, #0 + beq _080459EE + strb r3, [r4, #0xe] + b _080459F0 +_080459EE: + strb r0, [r4, #0xe] +_080459F0: + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + movs r0, #1 + orrs r1, r0 + adds r0, r4, #0 + bl sub_08004260 +_080459FE: + pop {r4, pc} + + thumb_func_start sub_08045A00 +sub_08045A00: @ 0x08045A00 + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xb] + lsls r3, r3, #1 + ldr r0, _08045A24 @ =gUnk_080D18B4 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + lsls r2, r2, #0x10 + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r3, #3 + lsls r3, r3, #0x10 + bl PositionRelative + pop {pc} + .align 2, 0 +_08045A24: .4byte gUnk_080D18B4 + + thumb_func_start sub_08045A28 +sub_08045A28: @ 0x08045A28 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r0, #0x82 + ldrb r0, [r0] + cmp r0, #0 + bne _08045A3E + adds r0, r5, #0 + bl sub_08004274 +_08045A3E: + adds r6, r5, #0 + adds r6, #0x5a + ldrb r0, [r6] + movs r1, #0x70 + mov r8, r1 + mov r4, r8 + ands r4, r0 + ldrb r7, [r5, #0xa] + cmp r7, #0 + bne _08045AF8 + adds r0, r5, #0 + bl sub_08045A00 + adds r1, r5, #0 + adds r1, #0x83 + ldrb r0, [r1] + adds r2, r1, #0 + cmp r0, #1 + beq _08045AA4 + cmp r0, #1 + bgt _08045A6E + cmp r0, #0 + beq _08045A78 + b _08045B7C +_08045A6E: + cmp r0, #2 + beq _08045ABC + cmp r0, #3 + beq _08045AE8 + b _08045B7C +_08045A78: + cmp r4, #0x20 + beq _08045A8C + cmp r4, #0x20 + bhi _08045A86 + cmp r4, #0 + beq _08045A96 + b _08045B7C +_08045A86: + cmp r4, #0x40 + beq _08045A96 + b _08045B7C +_08045A8C: + movs r0, #1 + strb r0, [r1] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045A96: + movs r0, #2 + strb r0, [r2] + ldr r1, _08045AA0 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AA0: .4byte 0x0000013F +_08045AA4: + cmp r4, #0 + beq _08045AB0 + cmp r4, #0x10 + bne _08045B7C + strb r7, [r1] + b _08045B58 +_08045AB0: + movs r0, #2 + strb r0, [r1] + ldr r1, _08045AB8 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AB8: .4byte 0x0000013F +_08045ABC: + cmp r4, #0x20 + beq _08045AD0 + cmp r4, #0x20 + bhi _08045ACA + cmp r4, #0x10 + beq _08045ADA + b _08045B7C +_08045ACA: + cmp r4, #0x40 + beq _08045ADE + b _08045B7C +_08045AD0: + movs r0, #1 + strb r0, [r1] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045ADA: + strb r7, [r1] + b _08045B58 +_08045ADE: + strb r0, [r1] + ldr r1, _08045AE4 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AE4: .4byte 0x0000013F +_08045AE8: + cmp r4, #0 + bne _08045B7C + movs r0, #2 + strb r0, [r1] + ldr r1, _08045AF4 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045AF4: .4byte 0x0000013F +_08045AF8: + ldr r0, [r5, #0x50] + ldr r3, _08045B18 @ =0xFFFF0000 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r2, r5, #0 + adds r2, #0x83 + ldrb r0, [r2] + cmp r0, #1 + beq _08045B3A + cmp r0, #1 + bgt _08045B1C + cmp r0, #0 + beq _08045B22 + b _08045B7C + .align 2, 0 +_08045B18: .4byte 0xFFFF0000 +_08045B1C: + cmp r0, #2 + beq _08045B68 + b _08045B7C +_08045B22: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0x10 + beq _08045B54 + cmp r1, #0x20 + bne _08045B7C + movs r0, #1 + strb r0, [r2] + movs r1, #0x9f + lsls r1, r1, #1 + b _08045B5A +_08045B3A: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0 + beq _08045B4A + cmp r1, #0x10 + beq _08045B54 + b _08045B7C +_08045B4A: + strb r1, [r2] + ldr r1, _08045B50 @ =0x0000013F + b _08045B5A + .align 2, 0 +_08045B50: .4byte 0x0000013F +_08045B54: + movs r0, #2 + strb r0, [r2] +_08045B58: + ldr r1, _08045B64 @ =0x0000013B +_08045B5A: + adds r0, r5, #0 + bl sub_0801D2B4 + b _08045B7C + .align 2, 0 +_08045B64: .4byte 0x0000013B +_08045B68: + ldrb r0, [r6] + mov r1, r8 + ands r1, r0 + cmp r1, #0 + bne _08045B7C + strb r1, [r2] + ldr r1, _08045B84 @ =0x0000013F + adds r0, r5, #0 + bl sub_0801D2B4 +_08045B7C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08045B84: .4byte 0x0000013F + + thumb_func_start sub_08045B88 +sub_08045B88: @ 0x08045B88 + push {lr} + ldr r1, _08045B94 @ =gUnk_080D19FC + bl sub_0800129E + pop {pc} + .align 2, 0 +_08045B94: .4byte gUnk_080D19FC + + thumb_func_start sub_08045B98 +sub_08045B98: @ 0x08045B98 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _08045BC4 @ =gUnk_080D1A14 + 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 + bl sub_0800445C + pop {r4, pc} + .align 2, 0 +_08045BC4: .4byte gUnk_080D1A14 + + thumb_func_start sub_08045BC8 +sub_08045BC8: @ 0x08045BC8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x3f + ldrb r0, [r0] + cmp r0, #1 + bne _08045C2C + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r2, #0x7f + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0x42 + bne _08045C2C + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + movs r0, #0x28 + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x10] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + movs r1, #4 + bl sub_08046030 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08045C16 + ldrh r0, [r1, #0x36] + subs r0, #8 + strh r0, [r1, #0x36] +_08045C16: + ldr r0, _08045C30 @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + ldr r0, _08045C34 @ =0x000001BB + bl sub_08004488 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_08045C2C: + pop {r4, pc} + .align 2, 0 +_08045C30: .4byte gUnk_03003F80 +_08045C34: .4byte 0x000001BB + + thumb_func_start nullsub_174 +nullsub_174: @ 0x08045C38 + bx lr + .align 2, 0 + + thumb_func_start sub_08045C3C +sub_08045C3C: @ 0x08045C3C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + strb r0, [r4, #0xf] + ldrh r1, [r4, #0x2e] + adds r0, r4, #0 + adds r0, #0x78 + movs r2, #0 + strh r1, [r0] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7a + strh r0, [r1] + strb r2, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #5 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb1 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + 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 r0, r4, #0 + movs r1, #0 + bl sub_08046030 + adds r0, r4, #0 + bl sub_08095C48 + ldr r1, _08045CA0 @ =gUnk_08015AC4 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + .align 2, 0 +_08045CA0: .4byte gUnk_08015AC4 + + thumb_func_start sub_08045CA4 +sub_08045CA4: @ 0x08045CA4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _08045CC0 + subs r0, #1 + strb r0, [r4, #0xe] + b _08045CD8 +_08045CC0: + adds r0, r4, #0 + movs r1, #0 + bl sub_08045F54 + cmp r0, #0 + beq _08045CD8 + adds r0, r4, #0 + bl sub_08045FF0 + strb r5, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xf] +_08045CD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_24 +nullsub_24: @ 0x08045CDC + bx lr + .align 2, 0 + + thumb_func_start sub_08045CE0 +sub_08045CE0: @ 0x08045CE0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08004274 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bls _08045CF0 + b _08045DF8 +_08045CF0: + lsls r0, r0, #2 + ldr r1, _08045CFC @ =_08045D00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08045CFC: .4byte _08045D00 +_08045D00: @ jump table + .4byte _08045D14 @ case 0 + .4byte _08045D36 @ case 1 + .4byte _08045D60 @ case 2 + .4byte _08045D9A @ case 3 + .4byte _08045DBC @ case 4 +_08045D14: + movs r6, #1 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + strb r6, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + b _08045DB2 +_08045D36: + movs r6, #1 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08045DF8 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #2 + bl sub_08046030 + b _08045DF8 +_08045D60: + movs r6, #1 + adds r0, r4, #0 + bl sub_0804604C + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl sub_0804A98C + adds r1, r0, #0 + cmp r1, #0 + beq _08045DF8 + str r4, [r1, #0x50] + ldrb r0, [r4, #0x15] + strb r0, [r1, #0x15] + ldrb r1, [r5] + movs r0, #0xfe + ands r0, r1 + strb r0, [r5] + movs r0, #3 + strb r0, [r4, #0xd] + b _08045DF8 +_08045D9A: + movs r6, #2 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045DF8 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x50 + strb r0, [r4, #0xe] +_08045DB2: + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 + b _08045DF8 +_08045DBC: + movs r6, #2 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08045DF8 + adds r0, r4, #0 + movs r1, #0 + bl sub_08045F54 + adds r5, r0, #0 + cmp r5, #0 + beq _08045DEC + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + b _08045DF8 +_08045DEC: + adds r0, r4, #0 + bl sub_08045FA0 + movs r0, #0x50 + strb r0, [r4, #0xe] + strb r5, [r4, #0xf] +_08045DF8: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08045F54 + adds r5, r0, #0 + cmp r5, #0 + bne _08045E12 + adds r0, r4, #0 + bl sub_08045FA0 + strb r5, [r4, #0xd] + strb r5, [r4, #0xe] + strb r5, [r4, #0xf] +_08045E12: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08045E14 +sub_08045E14: @ 0x08045E14 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08045E2C @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0xff + strb r1, [r0] + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _08045E30 + cmp r0, #1 + beq _08045E70 + b _08045EBA + .align 2, 0 +_08045E2C: .4byte gUnk_03003F80 +_08045E30: + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08045E6A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045EBA + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #5 + bl sub_08046030 + 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] + b _08045EBA +_08045E6A: + subs r0, #1 + strb r0, [r4, #0xe] + b _08045EBA +_08045E70: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045EBA + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + bl sub_08046030 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0804A9FC + adds r2, r0, #0 + cmp r2, #0 + beq _08045EBA + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #3 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r2, #0x36] + subs r0, #0xc + strh r0, [r2, #0x36] + adds r0, r2, #0 + movs r1, #2 + bl sub_0805E3A0 +_08045EBA: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0800445C + pop {r4, pc} + + thumb_func_start sub_08045EC8 +sub_08045EC8: @ 0x08045EC8 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08045ED4 +sub_08045ED4: @ 0x08045ED4 + push {lr} + bl sub_08045FA0 + pop {pc} + + thumb_func_start sub_08045EDC +sub_08045EDC: @ 0x08045EDC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r1, r0, #0 + cmp r1, #0 + bne _08045F00 + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #2 + bl sub_08046030 +_08045F00: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0804604C + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r2, #1 + ands r2, r1 + cmp r2, #0 + beq _08045F38 + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_080954AC + ldr r0, _08045F34 @ =0x0000018D + bl sub_08004488 + b _08045F4E + .align 2, 0 +_08045F34: .4byte 0x0000018D +_08045F38: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08045F4E + movs r0, #5 + strb r0, [r4, #0xc] + strb r2, [r4, #0xd] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 +_08045F4E: + pop {r4, pc} + + thumb_func_start nullsub_25 +nullsub_25: @ 0x08045F50 + bx lr + .align 2, 0 + + thumb_func_start sub_08045F54 +sub_08045F54: @ 0x08045F54 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #1 + bl sub_08049DF4 + adds r4, r0, #0 + cmp r4, #0 + beq _08045F90 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0x20 + movs r3, #0x20 + bl sub_080041A0 + cmp r0, #0 + bne _08045F90 + cmp r5, #2 + beq _08045F94 + movs r3, #0x50 + cmp r5, #0 + beq _08045F82 + movs r3, #0x58 +_08045F82: + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r3, #0 + bl sub_080041A0 + cmp r0, #0 + bne _08045F94 +_08045F90: + movs r0, #0 + b _08045F96 +_08045F94: + movs r0, #1 +_08045F96: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08045F98 +sub_08045F98: @ 0x08045F98 + movs r1, #0x10 + strb r1, [r0, #0x15] + movs r0, #1 + bx lr + + thumb_func_start sub_08045FA0 +sub_08045FA0: @ 0x08045FA0 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x78 + ldrh r0, [r0] + movs r1, #0 + strh r0, [r2, #0x2e] + adds r0, r2, #0 + adds r0, #0x7a + ldrh r0, [r0] + strh r0, [r2, #0x32] + adds r0, r2, #0 + adds r0, #0x62 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, r2, #0 + movs r1, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08045FF0 +sub_08045FF0: @ 0x08045FF0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #3 + 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, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_08045F98 + adds r0, r4, #0 + movs r1, #1 + bl sub_08046030 + pop {r4, pc} + + thumb_func_start sub_08046030 +sub_08046030: @ 0x08046030 + push {lr} + adds r3, r1, #0 + ldrb r1, [r0, #0x15] + lsrs r1, r1, #3 + ldr r2, _08046048 @ =gUnk_080D1A38 + adds r3, r3, r2 + ldrb r2, [r3] + orrs r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 +_08046048: .4byte gUnk_080D1A38 + + thumb_func_start sub_0804604C +sub_0804604C: @ 0x0804604C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08046070 + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bhi _08046070 + ldr r1, _08046074 @ =gUnk_080D1A3E + ldrb r0, [r2, #0xe] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] +_08046070: + pop {pc} + .align 2, 0 +_08046074: .4byte gUnk_080D1A3E + + thumb_func_start sub_08046078 +sub_08046078: @ 0x08046078 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08046114 @ =gUnk_03003F80 + adds r0, #0x27 + movs r1, #0 + strb r1, [r0] + ldr r4, _08046118 @ =gUnk_080D1A4E + ldr r6, _0804611C @ =gUnk_03000BF0 + movs r5, #4 +_0804608A: + adds r0, r7, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080460AE + ldrh r0, [r4] + ldrh r2, [r6, #6] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + adds r4, #2 + ldrh r0, [r4] + ldrh r2, [r6, #8] + adds r0, r0, r2 + strh r0, [r1, #0x32] + adds r4, #2 +_080460AE: + subs r5, #1 + cmp r5, #0 + bge _0804608A + movs r0, #0xb7 + lsls r0, r0, #1 + bl sub_08004488 + ldr r0, _08046120 @ =0x000007A2 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046124 @ =0x000007A3 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046128 @ =0x000007A5 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804612C @ =0x000007A6 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08046130 @ =0x000007A7 + movs r1, #1 + bl sub_0807BA8C + adds r0, r7, #0 + movs r1, #0x43 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08046102 + adds r0, r7, #0 + bl sub_0806FA24 + movs r0, #0xc2 + lsls r0, r0, #1 + bl sub_08004488 +_08046102: + ldr r1, [r7, #0x54] + cmp r1, #0 + beq _0804610C + movs r0, #0xff + strb r0, [r1, #0xc] +_0804610C: + adds r0, r7, #0 + bl sub_0804AA1C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08046114: .4byte gUnk_03003F80 +_08046118: .4byte gUnk_080D1A4E +_0804611C: .4byte gUnk_03000BF0 +_08046120: .4byte 0x000007A2 +_08046124: .4byte 0x000007A3 +_08046128: .4byte 0x000007A5 +_0804612C: .4byte 0x000007A6 +_08046130: .4byte 0x000007A7 + + thumb_func_start sub_08046134 +sub_08046134: @ 0x08046134 + push {lr} + ldr r2, _08046148 @ =gUnk_080D1A64 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08046148: .4byte gUnk_080D1A64 + + thumb_func_start sub_0804614C +sub_0804614C: @ 0x0804614C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _08046248 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x3d + bhi _08046244 + movs r0, #0x22 + bl sub_080A7EE0 + adds r1, r0, #0 + movs r4, #0 + strb r4, [r1, #0xa] + str r6, [r1, #0x50] + ldr r0, [r6, #0x64] + str r1, [r0, #0x14] + movs r0, #0x63 + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + ldr r0, [r6, #0x64] + str r1, [r0, #0x10] + movs r0, #0x61 + movs r1, #0 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #1 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #2 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #3 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #4 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #5 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #6 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #0x61 + movs r1, #7 + bl CreateEnemy + adds r1, r0, #0 + str r6, [r1, #0x50] + movs r0, #1 + strb r0, [r6, #0xc] + ldrb r2, [r6, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r6, #0x1b] + ldrb r0, [r6, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, #0x19] + adds r0, r6, #0 + adds r0, #0x38 + movs r5, #2 + strb r5, [r0] + adds r0, #0x40 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + adds r1, r6, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + ldr r0, _0804624C @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08046250 @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + adds r0, r6, #0 + movs r1, #0 + bl sub_0804660C + adds r0, r6, #0 + bl sub_080464C0 + ldr r0, _08046254 @ =gLinkEntity + adds r1, r0, #0 + adds r1, #0x38 + strb r5, [r1] + bl sub_08016A04 + ldr r1, _08046258 @ =sub_08046498 + adds r0, r6, #0 + movs r2, #0 + bl sub_08052D74 +_08046244: + pop {r4, r5, r6, pc} + .align 2, 0 +_08046248: .4byte gUnk_03003DBC +_0804624C: .4byte gUnk_02019EE0 +_08046250: .4byte gUnk_02002F00 +_08046254: .4byte gLinkEntity +_08046258: .4byte sub_08046498 + + thumb_func_start sub_0804625C +sub_0804625C: @ 0x0804625C + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x79 + ldrb r2, [r3] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08046286 + movs r1, #0x7f + ands r1, r2 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r3] + movs r0, #3 + ands r1, r0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_0804660C + b _0804629A +_08046286: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0804629A + movs r0, #0xbf + ands r0, r2 + strb r0, [r3] + adds r0, r4, #0 + bl sub_080464C0 +_0804629A: + bl sub_080465C8 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r3, #0x38 + ands r3, r1 + cmp r3, #0 + beq _080462D6 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7a + movs r2, #0 + strh r1, [r0] + adds r0, #2 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x80 + strb r2, [r0] + b _0804632A +_080462D6: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08046302 + movs r0, #3 + strb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x70 + movs r1, #0 + movs r0, #0x3c + strh r0, [r2] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x7a + strh r3, [r0] + adds r0, #2 + strb r1, [r0] + adds r0, #1 + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + b _0804632A +_08046302: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804632A + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0804632A + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046634 +_0804632A: + pop {r4, pc} + + thumb_func_start sub_0804632C +sub_0804632C: @ 0x0804632C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080465C8 + adds r0, r4, #0 + bl sub_080466A8 + adds r3, r4, #0 + adds r3, #0x7a + ldrh r0, [r3] + adds r2, r0, #1 + movs r5, #0 + strh r2, [r3] + lsls r1, r2, #0x10 + ldr r0, _08046360 @ =0x059F0000 + cmp r1, r0 + bls _08046364 + movs r0, #0 + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #3 + b _08046388 + .align 2, 0 +_08046360: .4byte 0x059F0000 +_08046364: + lsls r0, r2, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x78 + bne _08046374 + adds r0, r4, #0 + bl sub_08046668 + b _0804638A +_08046374: + movs r0, #0xa5 + lsls r0, r0, #3 + cmp r1, r0 + bne _0804638A + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, #2 +_08046388: + strb r5, [r0] +_0804638A: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080463B8 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080463B8 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_08046634 +_080463B8: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x38 + ands r0, r1 + cmp r0, #0 + bne _080463E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x70 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + adds r0, #8 + strb r2, [r0] +_080463E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080463E4 +sub_080463E4: @ 0x080463E4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080465C8 + adds r1, r4, #0 + adds r1, #0x70 + ldrh r0, [r1] + subs r0, #1 + movs r5, #0 + strh r0, [r1] + ldr r2, _0804643C @ =0x0000FFFF + adds r6, r2, #0 + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08046410 + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_08046634 +_08046410: + adds r0, r4, #0 + bl sub_080466A8 + adds r3, r4, #0 + adds r3, #0x7a + ldrh r0, [r3] + adds r2, r0, #1 + strh r2, [r3] + adds r0, r2, #0 + ands r0, r6 + ldr r1, _08046440 @ =0x0000059F + cmp r0, r1 + bls _08046444 + movs r0, #0 + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x7c + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #3 + b _08046468 + .align 2, 0 +_0804643C: .4byte 0x0000FFFF +_08046440: .4byte 0x0000059F +_08046444: + lsls r0, r2, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0x78 + bne _08046454 + adds r0, r4, #0 + bl sub_08046668 + b _0804646A +_08046454: + movs r0, #0xa5 + lsls r0, r0, #3 + cmp r1, r0 + bne _0804646A + adds r0, r4, #0 + adds r0, #0x78 + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, #2 +_08046468: + strb r5, [r0] +_0804646A: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08046494 + movs r0, #1 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x70 + movs r2, #0 + movs r0, #0x3c + strh r0, [r1] + adds r0, r4, #0 + adds r0, #0x78 + strb r2, [r0] + adds r0, #8 + strb r2, [r0] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 +_08046494: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08046498 +sub_08046498: @ 0x08046498 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080464B8 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080464BC @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + adds r0, r5, #0 + bl sub_080464C0 + pop {r4, r5, pc} + .align 2, 0 +_080464B8: .4byte gUnk_02019EE0 +_080464BC: .4byte gUnk_02002F00 + + thumb_func_start sub_080464C0 +sub_080464C0: @ 0x080464C0 + push {r4, r5, r6, lr} + ldr r1, _08046508 @ =gUnk_080D1A74 + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl sub_080197D4 + bl sub_08046518 + movs r6, #0x20 + ldr r4, _0804650C @ =gUnk_02019EE0 + ldr r0, _08046510 @ =0x00003260 + adds r5, r4, r0 +_080464DE: + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0x40 + bl sub_0801D66C + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 + adds r4, #0x40 + subs r6, #1 + cmp r6, #0 + bne _080464DE + ldr r0, _0804650C @ =gUnk_02019EE0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _08046514 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + pop {r4, r5, r6, pc} + .align 2, 0 +_08046508: .4byte gUnk_080D1A74 +_0804650C: .4byte gUnk_02019EE0 +_08046510: .4byte 0x00003260 +_08046514: .4byte gUnk_02000070 + + thumb_func_start sub_08046518 +sub_08046518: @ 0x08046518 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r1, _080465AC @ =gUnk_02010654 + ldr r2, _080465B0 @ =0xFFFFBCB0 + adds r0, r1, r2 + ldr r3, _080465B4 @ =0xFFFFECB0 + adds r2, r1, r3 + ldr r7, _080465B8 @ =0x00006658 + adds r7, r1, r7 + str r7, [sp, #4] + ldr r3, _080465BC @ =0xFFFFD658 + adds r6, r1, r3 + movs r1, #0x10 +_0804653A: + movs r5, #0x10 + movs r7, #0x80 + adds r7, r7, r0 + mov sl, r7 + adds r3, r2, #0 + adds r3, #0x80 + str r3, [sp] + ldr r7, [sp, #4] + adds r7, #0x40 + mov r8, r7 + movs r3, #0x40 + adds r3, r3, r6 + mov sb, r3 + subs r1, #1 + mov ip, r1 + adds r3, r0, #0 + adds r3, #0x20 + adds r4, r2, #0 + adds r4, #0x20 +_08046560: + ldrh r0, [r3] + strh r0, [r4] + ldrh r0, [r3] + lsls r0, r0, #1 + ldr r7, _080465AC @ =gUnk_02010654 + adds r0, r0, r7 + ldrh r1, [r0] + ldr r0, [sp, #4] + adds r2, r0, r5 + ldr r7, _080465C0 @ =gUnk_080B37A0 + adds r0, r1, r7 + ldrb r0, [r0] + strb r0, [r2] + adds r2, r6, r5 + ldr r0, _080465C4 @ =gUnk_080B3E80 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r2] + subs r3, #2 + subs r4, #2 + subs r5, #1 + cmp r5, #0 + bne _08046560 + mov r0, sl + ldr r2, [sp] + mov r1, r8 + str r1, [sp, #4] + mov r6, sb + mov r1, ip + cmp r1, #0 + bne _0804653A + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080465AC: .4byte gUnk_02010654 +_080465B0: .4byte 0xFFFFBCB0 +_080465B4: .4byte 0xFFFFECB0 +_080465B8: .4byte 0x00006658 +_080465BC: .4byte 0xFFFFD658 +_080465C0: .4byte gUnk_080B37A0 +_080465C4: .4byte gUnk_080B3E80 + + thumb_func_start sub_080465C8 +sub_080465C8: @ 0x080465C8 + push {r4, lr} + ldr r3, _080465FC @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r3, r0] + ldr r1, _08046600 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #3 + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #3 + ldr r1, _08046604 @ =gUnk_02019EE0 + lsls r0, r0, #7 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080465F8 + ldr r1, _08046608 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r1, #0x14] +_080465F8: + pop {r4, pc} + .align 2, 0 +_080465FC: .4byte gLinkEntity +_08046600: .4byte gUnk_03000BF0 +_08046604: .4byte gUnk_02019EE0 +_08046608: .4byte gUnk_03003F80 + + thumb_func_start sub_0804660C +sub_0804660C: @ 0x0804660C + push {r4, lr} + strb r1, [r0, #0x14] + lsrs r1, r1, #5 + lsls r1, r1, #1 + ldr r2, _0804662C @ =gUnk_080D1A84 + adds r1, r1, r2 + ldr r3, _08046630 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + ldrh r4, [r1] + adds r2, r2, r4 + strh r2, [r0, #0x2e] + ldrh r2, [r3, #8] + ldrh r1, [r1, #2] + adds r2, r2, r1 + strh r2, [r0, #0x32] + pop {r4, pc} + .align 2, 0 +_0804662C: .4byte gUnk_080D1A84 +_08046630: .4byte gUnk_03000BF0 + + thumb_func_start sub_08046634 +sub_08046634: @ 0x08046634 + push {r4, r5, lr} + adds r5, r0, #0 + cmp r1, #0 + bne _08046650 + ldr r4, _0804664C @ =gUnk_080D1AF4 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + b _0804665A + .align 2, 0 +_0804664C: .4byte gUnk_080D1AF4 +_08046650: + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #7 + ands r1, r0 +_0804665A: + ldrb r2, [r5, #0x14] + lsrs r2, r2, #3 + adds r0, r1, #0 + movs r1, #0 + bl sub_080A1ED0 + pop {r4, r5, pc} + + thumb_func_start sub_08046668 +sub_08046668: @ 0x08046668 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080466A0 + adds r5, r4, #0 + adds r5, #0x78 + ldrb r0, [r5] + cmp r0, #0xff + beq _080466A0 + bl sub_08000E50 + ldr r2, _080466A4 @ =gUnk_080D1AF8 + movs r1, #3 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + movs r1, #0 + strb r0, [r5] + adds r0, r4, #0 + adds r0, #0x7f + strb r1, [r0] + adds r0, #3 + strb r1, [r0] + adds r0, r4, #0 + bl sub_080467DC +_080466A0: + pop {r4, r5, pc} + .align 2, 0 +_080466A4: .4byte gUnk_080D1AF8 + + thumb_func_start sub_080466A8 +sub_080466A8: @ 0x080466A8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x7c + ldrb r2, [r0] + cmp r2, #0 + beq _0804674C + adds r0, #1 + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4, #0xe] + adds r5, r0, #0 + cmp r1, #0 + bne _080466D0 + subs r0, #5 + ldrb r0, [r0] + cmp r0, #0xff + beq _080466D0 + movs r0, #4 + strb r0, [r4, #0xe] +_080466D0: + ldrb r0, [r5] + bl sub_08000E62 + cmp r0, #2 + bls _0804674C + movs r0, #0 + strb r0, [r4, #0xe] + strb r0, [r5] + adds r7, r4, #0 + adds r7, #0x78 + subs r0, #1 + adds r6, r0, #0 + movs r0, #0xff + strb r0, [r7] + adds r0, #0x28 + bl sub_080A3268 + adds r5, r4, #0 + adds r5, #0x45 + ldrb r0, [r5] + cmp r0, #0 + beq _08046746 + movs r0, #8 + movs r1, #0 + bl sub_08080964 + adds r1, r4, #0 + adds r1, #0x82 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ands r0, r6 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xc + bhi _0804671E + ldrb r0, [r5] + subs r0, #1 + strb r0, [r5] +_0804671E: + ldrb r0, [r5] + cmp r0, #0 + bne _08046730 + strb r0, [r7] + adds r1, r4, #0 + adds r1, #0x7a + movs r0, #0xa5 + lsls r0, r0, #3 + b _08046744 +_08046730: + adds r1, r4, #0 + adds r1, #0x7f + ldrb r0, [r1] + cmp r0, #0 + bne _08046746 + movs r0, #1 + strb r0, [r1] + subs r1, #5 + movs r0, #0x87 + lsls r0, r0, #3 +_08046744: + strh r0, [r1] +_08046746: + adds r0, r4, #0 + bl sub_080467DC +_0804674C: + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _080467CC + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + cmp r0, #0xff + beq _080467CC + subs r0, r1, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + cmp r5, #0 + bne _080467CC + adds r2, r4, #0 + adds r2, #0x80 + adds r3, r4, #0 + adds r3, #0x7d + ldrb r0, [r2] + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r2] + strb r5, [r3] + adds r0, r4, #0 + bl sub_080467DC + ldr r0, [r4, #0x64] + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r1, #0 + cmp r0, #0xff + beq _080467CC + ldr r2, _080467D8 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x3e + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r1, #5 + movs r0, #0xa + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _080467CC + ldr r0, [r4, #0x64] + ldrh r0, [r0, #0x38] + strh r0, [r2, #0x2e] + ldr r0, [r4, #0x64] + ldrh r0, [r0, #0x3a] + strh r0, [r2, #0x32] + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_08016A04 +_080467CC: + adds r1, r4, #0 + adds r1, #0x7c + movs r0, #0 + strb r0, [r1] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080467D8: .4byte gLinkEntity + + thumb_func_start sub_080467DC +sub_080467DC: @ 0x080467DC + push {lr} + movs r1, #0 + ldr r0, [r0, #0x64] + movs r2, #0 + adds r0, #0x18 +_080467E6: + stm r0!, {r2} + adds r1, #1 + cmp r1, #7 + bls _080467E6 + pop {pc} + + thumb_func_start sub_080467F0 +sub_080467F0: @ 0x080467F0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08046810 + adds r0, r4, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_08046810: + ldr r1, _0804688C @ =gUnk_080D1AFC + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r0, [r4, #0xc] + adds r5, r4, #0 + adds r5, #0x78 + cmp r0, #7 + beq _08046836 + ldrh r3, [r5] + adds r0, r4, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C +_08046836: + ldrh r0, [r5] + lsrs r0, r0, #8 + rsbs r0, r0, #0 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08048004 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r1, r4, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _08046878 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldr r1, _08046890 @ =gUnk_03000BF0 + movs r3, #0xc + ldrsh r1, [r1, r3] + subs r0, r0, r1 + adds r0, #0x30 + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _08046878 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r4, #0x18] +_08046878: + ldr r2, _08046894 @ =gLinkEntity + ldrh r1, [r2, #0x2e] + adds r0, r4, #0 + adds r0, #0x84 + strh r1, [r0] + ldrh r1, [r2, #0x32] + adds r0, #2 + strh r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0804688C: .4byte gUnk_080D1AFC +_08046890: .4byte gUnk_03000BF0 +_08046894: .4byte gLinkEntity + + thumb_func_start sub_08046898 +sub_08046898: @ 0x08046898 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x22 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _0804690C + movs r4, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r1, #0xa] + str r5, [r1, #0x50] + str r1, [r5, #0x54] + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + ldrb r1, [r5, #0x19] + movs r0, #3 + orrs r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ands r1, r3 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r2, r5, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0x10 + orrs r0, r1 + strb r0, [r2] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + subs r0, #4 + strh r4, [r0] + adds r0, #2 + strh r4, [r0] + subs r0, #8 + strh r4, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0804690C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08046910 +sub_08046910: @ 0x08046910 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0804692C @ =gUnk_080D1B1C + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_0804692C: .4byte gUnk_080D1B1C + + thumb_func_start sub_08046930 +sub_08046930: @ 0x08046930 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08046948 + movs r0, #5 + strb r0, [r4, #0xd] + movs r0, #0x20 + strb r0, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_08046948: + adds r0, r4, #0 + bl sub_08047D88 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _0804696A + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r0, [r4, #0xe] + strb r1, [r4, #0x14] + strb r1, [r4, #0x15] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_0804696A: + pop {r4, pc} + + thumb_func_start sub_0804696C +sub_0804696C: @ 0x0804696C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r5, _080469C8 @ =gUnk_03000BF0 + ldrh r0, [r5, #8] + movs r1, #0x98 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080469A6 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x80 + strb r0, [r4, #0x15] + adds r0, #0x80 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + movs r0, #0x2e + bl sub_080A3268 +_080469A6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080469C6 + ldrh r0, [r5, #8] + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080469C6 + movs r0, #0 + strb r0, [r4, #0xe] + movs r0, #0xf7 + bl sub_080A3268 +_080469C6: + pop {r4, r5, pc} + .align 2, 0 +_080469C8: .4byte gUnk_03000BF0 + + thumb_func_start sub_080469CC +sub_080469CC: @ 0x080469CC + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _080469F0 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080469EE + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x90 + strb r0, [r4, #0x15] +_080469EE: + pop {r4, pc} + .align 2, 0 +_080469F0: .4byte gUnk_03000BF0 + + thumb_func_start sub_080469F4 +sub_080469F4: @ 0x080469F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _08046A2C @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + movs r1, #0xa4 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08046A28 + movs r0, #4 + strb r0, [r4, #0xd] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] +_08046A28: + pop {r4, pc} + .align 2, 0 +_08046A2C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08046A30 +sub_08046A30: @ 0x08046A30 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08046A50 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046A50: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046A54 +sub_08046A54: @ 0x08046A54 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047E48 + ldr r0, _08046A74 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0xe0 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08046A72 + movs r0, #6 + strb r0, [r4, #0xd] +_08046A72: + pop {r4, pc} + .align 2, 0 +_08046A74: .4byte gUnk_03000BF0 + + thumb_func_start sub_08046A78 +sub_08046A78: @ 0x08046A78 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08046A98 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046A98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046A9C +sub_08046A9C: @ 0x08046A9C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + bne _08046ABA + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046ABA + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_08046ABA: + ldr r1, _08046AE4 @ =gUnk_080D1B38 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x7c + ldrb r0, [r0] + cmp r0, #0 + beq _08046AE2 + movs r1, #0 + movs r0, #6 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046AE2: + pop {r4, pc} + .align 2, 0 +_08046AE4: .4byte gUnk_080D1B38 + + thumb_func_start sub_08046AE8 +sub_08046AE8: @ 0x08046AE8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + lsrs r1, r1, #5 + adds r0, r4, #0 + bl sub_08048178 + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08046B18 +sub_08046B18: @ 0x08046B18 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046B6C + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046B54 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046B50 @ =0xFFFFFF00 + b _08046B5C + .align 2, 0 +_08046B50: .4byte 0xFFFFFF00 +_08046B54: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046B5C: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046B70 +_08046B6C: + movs r0, #2 + strb r0, [r4, #0xd] +_08046B70: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046B8C +sub_08046B8C: @ 0x08046B8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046BD8 + movs r0, #3 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + ldr r1, _08046BD4 @ =gUnk_03000BF0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r0, r2, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r5] + adds r2, #0x10 + adds r0, r2, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r6] + adds r0, r4, #0 + bl sub_08047D88 + b _08046C02 + .align 2, 0 +_08046BD4: .4byte gUnk_03000BF0 +_08046BD8: + ldrh r0, [r5] + movs r3, #0x2e + ldrsh r1, [r4, r3] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046C02: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046C04 +sub_08046C04: @ 0x08046C04 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046C58 + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046C40 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046C3C @ =0xFFFFFF00 + b _08046C48 + .align 2, 0 +_08046C3C: .4byte 0xFFFFFF00 +_08046C40: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046C48: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046C6C +_08046C58: + movs r0, #4 + strb r0, [r4, #0xd] + adds r0, r1, #0 + adds r0, #0x20 + movs r1, #0xc0 + ands r0, r1 + lsrs r0, r0, #6 + adds r1, r4, #0 + adds r1, #0x70 + strh r0, [r1] +_08046C6C: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046C88 +sub_08046C88: @ 0x08046C88 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046CC0 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + bl sub_08048158 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08048178 + adds r0, r4, #0 + bl sub_08047D88 + b _08046CEA +_08046CC0: + ldrh r0, [r5] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046CEA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046CEC +sub_08046CEC: @ 0x08046CEC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + bne _08046D0A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046D0A + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08046D0A: + ldr r1, _08046D40 @ =gUnk_080D1B4C + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08046D3C + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x24] + strb r0, [r4, #0x14] +_08046D3C: + pop {r4, pc} + .align 2, 0 +_08046D40: .4byte gUnk_080D1B4C + + thumb_func_start sub_08046D44 +sub_08046D44: @ 0x08046D44 + push {lr} + mov ip, r0 + movs r0, #1 + mov r1, ip + strb r0, [r1, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r1, #0x24] + ldr r0, [r1, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + lsrs r1, r1, #5 + lsls r1, r1, #1 + ldr r0, _08046D90 @ =gUnk_080D1B60 + adds r1, r1, r0 + ldr r3, _08046D94 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + ldrh r2, [r1] + adds r0, r0, r2 + mov r2, ip + adds r2, #0x80 + strh r0, [r2] + ldrh r0, [r3, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + mov r1, ip + adds r1, #0x82 + strh r0, [r1] + mov r1, ip + ldrb r0, [r1, #0x15] + lsls r0, r0, #8 + adds r1, #0x76 + strh r0, [r1] + mov r0, ip + bl sub_08047D88 + pop {pc} + .align 2, 0 +_08046D90: .4byte gUnk_080D1B60 +_08046D94: .4byte gUnk_03000BF0 + + thumb_func_start sub_08046D98 +sub_08046D98: @ 0x08046D98 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r1, r0, #0 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _08046DEC + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046DD4 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _08046DD0 @ =0xFFFFFF00 + b _08046DDC + .align 2, 0 +_08046DD0: .4byte 0xFFFFFF00 +_08046DD4: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046DDC: + adds r0, r2, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + b _08046DF0 +_08046DEC: + movs r0, #2 + strb r0, [r4, #0xd] +_08046DF0: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_08046E0C +sub_08046E0C: @ 0x08046E0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x80 + ldrh r1, [r5] + adds r6, r4, #0 + adds r6, #0x82 + ldrh r2, [r6] + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08046E3C + movs r0, #3 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 + b _08046E66 +_08046E3C: + ldrh r0, [r5] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 +_08046E66: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08046E68 +sub_08046E68: @ 0x08046E68 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x64] + ldr r0, [r0, #4] + ldrb r1, [r0, #0x14] + movs r0, #0x80 + adds r6, r0, #0 + eors r6, r1 + ldrb r0, [r5, #0x15] + cmp r6, r0 + beq _08046EC6 + subs r0, r6, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _08046E94 + adds r1, r5, #0 + adds r1, #0x76 + ldr r2, _08046E90 @ =0xFFFFFF00 + b _08046E9C + .align 2, 0 +_08046E90: .4byte 0xFFFFFF00 +_08046E94: + adds r1, r5, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_08046E9C: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08047D88 + ldrb r0, [r5, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r5, #0 + bl sub_08047EA4 + b _08046EEE +_08046EC6: + movs r0, #4 + strb r0, [r5, #0xd] + movs r0, #0x3f + strb r0, [r5, #0xe] + movs r4, #1 + strb r4, [r5, #0xf] + bl sub_08000E50 + ldr r1, _08046EF0 @ =gUnk_080D1B70 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r6 + movs r1, #0xc0 + ands r0, r1 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_08047D88 +_08046EEE: + pop {r4, r5, r6, pc} + .align 2, 0 +_08046EF0: .4byte gUnk_080D1B70 + + thumb_func_start sub_08046EF4 +sub_08046EF4: @ 0x08046EF4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r3, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08046F12 + movs r0, #0x7f + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] +_08046F12: + ldr r2, _08046F60 @ =gUnk_080D1B74 + ldrb r0, [r4, #0xe] + lsrs r0, r0, #3 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r3 + cmp r0, #0 + bne _08046F58 + bl sub_08000E50 + movs r1, #0x38 + ands r0, r1 + adds r0, #0x78 + strb r0, [r4, #0xf] + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _08046F58 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl sub_08016A04 +_08046F58: + adds r0, r4, #0 + bl sub_08047E48 + pop {r4, pc} + .align 2, 0 +_08046F60: .4byte gUnk_080D1B74 + + thumb_func_start sub_08046F64 +sub_08046F64: @ 0x08046F64 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + bne _08046F82 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _08046F82 + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_08046F82: + ldr r1, _08046FE4 @ =gUnk_080D1B94 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08046FC8 + movs r0, #0x78 + strh r0, [r1] + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _08046FC8 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl sub_08016A04 +_08046FC8: + ldr r0, [r4, #0x64] + ldr r0, [r0] + adds r0, #0x6c + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08046FE0 + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08046FE0: + pop {r4, pc} + .align 2, 0 +_08046FE4: .4byte gUnk_080D1B94 + + thumb_func_start sub_08046FE8 +sub_08046FE8: @ 0x08046FE8 + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r0, #0xe0 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r1, r3, #0 + adds r1, #0x7e + movs r0, #0x1e + strh r0, [r1] + ldr r2, _08047028 @ =gUnk_03000BF0 + movs r1, #0xa4 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x80 + strh r0, [r1] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r3, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08047D88 + pop {pc} + .align 2, 0 +_08047028: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804702C +sub_0804702C: @ 0x0804702C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _0804706C + subs r0, r3, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08047068 + subs r0, r2, #1 + b _0804706A +_08047068: + adds r0, r2, #1 +_0804706A: + strb r0, [r4, #0x15] +_0804706C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + movs r0, #0x24 + ldrsh r3, [r4, r0] + asrs r3, r3, #0x10 + adds r3, #0x10 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + beq _080470B0 + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] +_080470B0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080470B4 +sub_080470B4: @ 0x080470B4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x40 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _0804710A + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _080470D8 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _080470D4 @ =0xFFFFFF00 + b _080470E0 + .align 2, 0 +_080470D4: .4byte 0xFFFFFF00 +_080470D8: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_080470E0: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _0804713A +_0804710A: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + bl sub_08000E50 + ldr r2, _0804713C @ =gUnk_080D1BBC + movs r1, #1 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r1, [r1] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r4, #0 + bl sub_08047D88 +_0804713A: + pop {r4, pc} + .align 2, 0 +_0804713C: .4byte gUnk_080D1BBC + + thumb_func_start sub_08047140 +sub_08047140: @ 0x08047140 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0xbf + bls _08047164 + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #4 + strb r0, [r2, #0xd] +_08047164: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804717C +sub_0804717C: @ 0x0804717C + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _080471C0 @ =0x0000027F + cmp r1, r0 + bgt _08047192 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_08047192: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _080471C4 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _080471BC + movs r0, #5 + strb r0, [r4, #0xd] +_080471BC: + pop {r4, pc} + .align 2, 0 +_080471C0: .4byte 0x0000027F +_080471C4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080471C8 +sub_080471C8: @ 0x080471C8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + movs r0, #0xc0 + lsls r0, r0, #1 + cmp r1, r0 + ble _080471E0 + adds r0, r2, #0 + subs r0, #0x10 + strh r0, [r4, #0x24] +_080471E0: + ldrb r0, [r4, #0x15] + cmp r0, #0xdf + bhi _080471EA + adds r0, #1 + strb r0, [r4, #0x15] +_080471EA: + ldrb r1, [r4, #0x15] + movs r5, #0x80 + lsls r5, r5, #1 + subs r1, r5, r1 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _0804722C @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + movs r1, #0xc8 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _08047238 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + cmp r0, r5 + bls _08047234 + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08047230 + movs r0, #6 + b _08047236 + .align 2, 0 +_0804722C: .4byte gUnk_03000BF0 +_08047230: + strb r1, [r4, #0xd] + b _08047238 +_08047234: + movs r0, #0 +_08047236: + strb r0, [r4, #0xd] +_08047238: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804723C +sub_0804723C: @ 0x0804723C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + subs r0, #2 + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xbf + bhi _08047266 + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0xc0 + strb r0, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0xc0 + lsls r0, r0, #8 + strh r0, [r1] +_08047266: + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047284 +sub_08047284: @ 0x08047284 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + ldrh r0, [r1] + subs r0, #0xe0 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0x3f + bhi _080472A4 + movs r0, #0x40 + strb r0, [r2, #0x15] + movs r0, #8 + strb r0, [r2, #0xd] +_080472A4: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080472BC +sub_080472BC: @ 0x080472BC + push {r4, lr} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _08047308 @ =0x000002FF + cmp r1, r0 + bgt _080472D2 + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_080472D2: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + ldr r0, _0804730C @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0xac + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08047306 + movs r0, #9 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_08047306: + pop {r4, pc} + .align 2, 0 +_08047308: .4byte 0x000002FF +_0804730C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08047310 +sub_08047310: @ 0x08047310 + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x24] + movs r0, #0x24 + ldrsh r1, [r2, r0] + ldr r0, _08047364 @ =0x0000017F + cmp r1, r0 + bgt _08047326 + adds r0, r3, #0 + subs r0, #0x10 + strh r0, [r2, #0x24] +_08047326: + adds r1, r2, #0 + adds r1, #0x76 + ldr r3, _08047368 @ =0xFFFFFE30 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + adds r0, #0x7f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x3f + bhi _0804734C + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #4 + strb r0, [r2, #0xd] +_0804734C: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 +_08047364: .4byte 0x0000017F +_08047368: .4byte 0xFFFFFE30 + + thumb_func_start sub_0804736C +sub_0804736C: @ 0x0804736C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + bne _0804738A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #1 + bne _0804738A + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_0804738A: + ldr r0, _080473B4 @ =gUnk_080D1BC0 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + bne _080473B0 + movs r0, #7 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080473B0: + pop {r4, pc} + .align 2, 0 +_080473B4: .4byte gUnk_080D1BC0 + + thumb_func_start sub_080473B8 +sub_080473B8: @ 0x080473B8 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + movs r1, #0x90 + lsls r1, r1, #1 + strh r1, [r0, #0x24] + ldr r3, _080473EC @ =gUnk_03000BF0 + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + ldrh r2, [r3, #6] + adds r1, r1, r2 + adds r2, r0, #0 + adds r2, #0x80 + strh r1, [r2] + movs r2, #0xe8 + lsls r2, r2, #1 + adds r1, r2, #0 + ldrh r3, [r3, #8] + adds r1, r1, r3 + adds r2, r0, #0 + adds r2, #0x82 + strh r1, [r2] + bl sub_08047D88 + pop {pc} + .align 2, 0 +_080473EC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080473F0 +sub_080473F0: @ 0x080473F0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _08047444 + subs r1, r3, r2 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08047438 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08047434 + subs r0, r2, #2 + b _08047442 +_08047434: + subs r0, r2, #1 + b _08047442 +_08047438: + cmp r1, #1 + ble _08047440 + adds r0, r2, #2 + b _08047442 +_08047440: + adds r0, r2, #1 +_08047442: + strb r0, [r4, #0x15] +_08047444: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047DF0 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + adds r0, r4, #0 + movs r3, #8 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047482 + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_08047482: + pop {r4, pc} + + thumb_func_start sub_08047484 +sub_08047484: @ 0x08047484 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x40 + ldrb r0, [r4, #0x15] + cmp r1, r0 + beq _080474DA + subs r0, r1, r0 + movs r1, #0xff + ands r0, r1 + cmp r0, #0x80 + bls _080474A8 + adds r1, r4, #0 + adds r1, #0x76 + ldr r2, _080474A4 @ =0xFFFFFF00 + b _080474B0 + .align 2, 0 +_080474A4: .4byte 0xFFFFFF00 +_080474A8: + adds r1, r4, #0 + adds r1, #0x76 + movs r2, #0x80 + lsls r2, r2, #1 +_080474B0: + adds r0, r2, #0 + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047D88 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _08047504 +_080474DA: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + strb r1, [r4, #0x15] + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x80 + lsls r0, r0, #7 + strh r0, [r1] + subs r1, #2 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, #0xa + movs r0, #0xf0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08047D88 +_08047504: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047508 +sub_08047508: @ 0x08047508 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _0804754C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + movs r1, #0xd0 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0804759A + ldrb r1, [r4, #0x15] + cmp r1, #0 + bne _08047550 + ldrh r0, [r2, #8] + movs r1, #0x82 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0804759A + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + rsbs r1, r1, #0 + strh r1, [r0] + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + lsrs r0, r0, #8 + b _08047598 + .align 2, 0 +_0804754C: .4byte gUnk_03000BF0 +_08047550: + adds r0, r4, #0 + adds r0, #0x74 + movs r3, #0 + ldrsh r2, [r0, r3] + cmp r2, #0 + bge _0804757E + adds r3, r4, #0 + adds r3, #0x76 + ldrh r0, [r3] + adds r0, r0, r2 + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0804759A + movs r0, #0 + strb r0, [r4, #0x15] + movs r0, #0 + strh r0, [r3] + b _0804759A +_0804757E: + cmp r1, #0x3f + bhi _0804759A + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + cmp r0, #0x3f + bls _0804759A + movs r0, #0x40 +_08047598: + strb r0, [r4, #0x15] +_0804759A: + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _080475F0 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0xa0 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080475CA + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_080475CA: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080475EE + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl CreateEnemy + cmp r0, #0 + beq _080475EE + str r4, [r0, #0x50] +_080475EE: + pop {r4, pc} + .align 2, 0 +_080475F0: .4byte gUnk_03000BF0 + + thumb_func_start sub_080475F4 +sub_080475F4: @ 0x080475F4 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + movs r3, #0xc0 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0xbf + bls _08047626 + movs r0, #0xc0 + strb r0, [r2, #0x15] + movs r0, #5 + strb r0, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + adds r1, #8 + movs r0, #0x3c + strh r0, [r1] +_08047626: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + + thumb_func_start sub_0804763C +sub_0804763C: @ 0x0804763C + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08047680 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + movs r1, #0xf8 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _080476D0 + ldrb r1, [r4, #0x15] + cmp r1, #0 + bne _08047684 + ldrh r0, [r2, #8] + movs r1, #0x82 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _080476D0 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r1, [r0] + rsbs r1, r1, #0 + strh r1, [r0] + adds r2, r4, #0 + adds r2, #0x76 + ldrh r0, [r2] + adds r0, r0, r1 + strh r0, [r2] + lsrs r0, r0, #8 + b _080476CE + .align 2, 0 +_08047680: .4byte gUnk_03000BF0 +_08047684: + adds r0, r4, #0 + adds r0, #0x74 + movs r3, #0 + ldrsh r2, [r0, r3] + cmp r2, #0 + ble _080476B4 + adds r3, r4, #0 + adds r3, #0x76 + ldrh r0, [r3] + adds r0, r0, r2 + strh r0, [r3] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080476D0 + movs r0, #0 + strb r0, [r4, #0x15] + strh r1, [r3] + b _080476D0 +_080476B4: + cmp r1, #0xc0 + bls _080476D0 + adds r1, r4, #0 + adds r1, #0x76 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + cmp r0, #0xc0 + bhi _080476D0 + movs r0, #0xc0 +_080476CE: + strb r0, [r4, #0x15] +_080476D0: + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _08047728 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0xc0 + lsls r1, r1, #1 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r4, r2] + cmp r0, r1 + ble _08047700 + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x15] + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_08047700: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08047724 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl CreateEnemy + cmp r0, #0 + beq _08047724 + str r4, [r0, #0x50] +_08047724: + pop {r4, pc} + .align 2, 0 +_08047728: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804772C +sub_0804772C: @ 0x0804772C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x76 + ldr r3, _08047774 @ =0xFFFFFE80 + adds r0, r3, #0 + ldrh r3, [r1] + adds r0, r0, r3 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r2, #0x15] + cmp r0, #0x40 + bhi _0804775C + movs r0, #0x40 + strb r0, [r2, #0x15] + movs r0, #3 + strb r0, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r2, #0x24] + adds r1, #8 + movs r0, #0x1e + strh r0, [r1] +_0804775C: + ldrb r0, [r2, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r2, #0 + bl sub_08047DF0 + pop {pc} + .align 2, 0 +_08047774: .4byte 0xFFFFFE80 + + thumb_func_start sub_08047778 +sub_08047778: @ 0x08047778 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08047794 @ =gUnk_080D1BDC + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08047794: .4byte gUnk_080D1BDC + + thumb_func_start sub_08047798 +sub_08047798: @ 0x08047798 + push {r4, lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r0, #0x80 + strh r0, [r3, #0x24] + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r2, _080477BC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + ldr r0, _080477C0 @ =0x000001F7 + cmp r1, r0 + bgt _080477C4 + adds r1, r3, #0 + adds r1, #0x80 + movs r0, #0xa8 + b _080477CC + .align 2, 0 +_080477BC: .4byte gUnk_03000BF0 +_080477C0: .4byte 0x000001F7 +_080477C4: + adds r1, r3, #0 + adds r1, #0x80 + movs r0, #0xd2 + lsls r0, r0, #2 +_080477CC: + strh r0, [r1] + ldrh r0, [r2, #6] + ldrh r4, [r1] + adds r0, r0, r4 + strh r0, [r1] + movs r1, #0xd2 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r3, #0 + adds r1, #0x82 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08047D88 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080477F0 +sub_080477F0: @ 0x080477F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldrh r2, [r4, #0x24] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _08047868 @ =0x000002FF + cmp r1, r0 + bgt _0804780A + adds r0, r2, #0 + adds r0, #8 + strh r0, [r4, #0x24] +_0804780A: + adds r7, r4, #0 + adds r7, #0x80 + ldrh r0, [r7] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r6, r4, #0 + adds r6, #0x82 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08047E48 + ldr r0, _0804786C @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x80 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _08047870 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0x15] + b _0804790C + .align 2, 0 +_08047868: .4byte 0x000002FF +_0804786C: .4byte gLinkEntity +_08047870: + ldr r5, _080478FC @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + movs r0, #0x80 + lsls r0, r0, #2 + mov r8, r0 + add r1, r8 + ldrh r2, [r5, #8] + movs r3, #0x84 + lsls r3, r3, #2 + adds r2, r2, r3 + movs r3, #0x80 + lsls r3, r3, #1 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + bne _080478A0 + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] +_080478A0: + ldrh r1, [r7] + ldrh r2, [r6] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804790C + movs r0, #2 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x14] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] + bl sub_08000E50 + ldr r2, _08047900 @ =gUnk_080D1BF0 + movs r1, #1 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + adds r0, r4, #0 + adds r0, #0x74 + strh r2, [r0] + ldr r2, [r4, #0x64] + ldr r0, [r2] + adds r0, #0x6c + ldrh r0, [r0] + ands r1, r0 + cmp r1, #0 + beq _08047904 + ldr r3, [r2, #4] + ldrh r0, [r5, #6] + add r0, r8 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x83 + cmp r0, r1 + ble _080478F4 + movs r2, #0x81 +_080478F4: + adds r0, r3, #0 + adds r0, #0x79 + strb r2, [r0] + b _0804790C + .align 2, 0 +_080478FC: .4byte gUnk_03000BF0 +_08047900: .4byte gUnk_080D1BF0 +_08047904: + ldr r0, [r2, #4] + adds r0, #0x79 + movs r1, #0x80 + strb r1, [r0] +_0804790C: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08047914 +sub_08047914: @ 0x08047914 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + ldrb r1, [r4, #0x14] + movs r0, #0x1f + ands r0, r1 + cmp r0, #0 + beq _08047950 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + b _08047976 +_08047950: + movs r0, #3 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #0x3c + strh r0, [r1] + ldrb r1, [r4, #0xa] + lsls r0, r1, #4 + subs r0, r0, r1 + lsls r0, r0, #2 + adds r0, #0x78 + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + ldr r0, [r4, #0x64] + ldr r0, [r0] + ldrb r1, [r4, #0x14] + bl sub_080A1D70 +_08047976: + pop {r4, pc} + + thumb_func_start sub_08047978 +sub_08047978: @ 0x08047978 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + cmp r1, #0 + beq _080479C6 + adds r2, r4, #0 + adds r2, #0x70 + ldrh r0, [r2] + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _080479B6 + adds r1, r4, #0 + adds r1, #0x72 + movs r0, #1 + strh r0, [r1] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _080479AE + movs r0, #0xb4 + strh r0, [r2] + b _080479CC +_080479AE: + movs r0, #0xb4 + lsls r0, r0, #1 + strh r0, [r2] + b _080479CC +_080479B6: + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0xf0 + bne _080479CC + adds r0, r4, #0 + bl sub_0804813C + b _080479CC +_080479C6: + adds r0, r4, #0 + adds r0, #0x72 + strh r1, [r0] +_080479CC: + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080479F4 + movs r0, #0xf0 + strh r0, [r1] + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl CreateEnemy + cmp r0, #0 + beq _080479F4 + str r4, [r0, #0x50] +_080479F4: + ldr r0, _08047A78 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r3, #0x32 + ldrsh r2, [r0, r3] + adds r0, r4, #0 + movs r3, #0x80 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _08047A2C + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0x15] +_08047A2C: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08047B06 + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08047B06 + movs r0, #4 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08047AA4 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + cmp r0, #1 + bne _08047A80 + ldr r2, _08047A7C @ =gUnk_03000BF0 + movs r1, #0xe0 + lsls r1, r1, #1 + adds r0, r1, #0 + ldrh r3, [r2, #6] + adds r0, r0, r3 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + movs r1, #0x94 + lsls r1, r1, #2 + adds r0, r1, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, r4, #0 + adds r1, #0x82 + b _08047B04 + .align 2, 0 +_08047A78: .4byte gLinkEntity +_08047A7C: .4byte gUnk_03000BF0 +_08047A80: + ldr r2, _08047AA0 @ =gUnk_03000BF0 + movs r3, #0x90 + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r1, [r2, #6] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + adds r3, #0x10 + adds r0, r3, #0 + ldrh r2, [r2, #8] + adds r0, r0, r2 + adds r1, #2 + b _08047B04 + .align 2, 0 +_08047AA0: .4byte gUnk_03000BF0 +_08047AA4: + ldr r0, _08047AC4 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r1, r2 + movs r3, #0x2e + ldrsh r2, [r4, r3] + adds r3, r0, #0 + cmp r1, r2 + bge _08047AC8 + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0xc8 + lsls r0, r0, #1 + b _08047AD0 + .align 2, 0 +_08047AC4: .4byte gUnk_03000BF0 +_08047AC8: + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x9c + lsls r0, r0, #2 +_08047AD0: + strh r0, [r1] + ldrh r0, [r3, #6] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + ldrh r0, [r3, #8] + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _08047AF4 + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xd0 + lsls r0, r0, #1 + b _08047AFC +_08047AF4: + adds r1, r4, #0 + adds r1, #0x82 + movs r0, #0xa0 + lsls r0, r0, #2 +_08047AFC: + strh r0, [r1] + ldrh r0, [r3, #8] + ldrh r3, [r1] + adds r0, r0, r3 +_08047B04: + strh r0, [r1] +_08047B06: + pop {r4, pc} + + thumb_func_start sub_08047B08 +sub_08047B08: @ 0x08047B08 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08047D88 + adds r4, r5, #0 + adds r4, #0x80 + ldrh r0, [r4] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + adds r6, r5, #0 + adds r6, #0x82 + ldrh r1, [r6] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + movs r7, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E58 + ldrh r1, [r4] + ldrh r2, [r6] + adds r0, r5, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047B80 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08047B60 + movs r0, #7 + strb r0, [r5, #0xc] + strb r7, [r5, #0xd] + ldrb r0, [r5, #0x15] + movs r1, #0x80 + eors r0, r1 + b _08047B7E +_08047B60: + movs r0, #4 + strb r0, [r5, #0xc] + strb r7, [r5, #0xd] + ldrb r2, [r5, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ldrb r0, [r5, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r5, #0x19] + ldrb r0, [r5, #0x14] +_08047B7E: + strb r0, [r5, #0x15] +_08047B80: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08047B84 +sub_08047B84: @ 0x08047B84 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08047BA0 @ =gUnk_080D1BF4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08047BA0: .4byte gUnk_080D1BF4 + + thumb_func_start sub_08047BA4 +sub_08047BA4: @ 0x08047BA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + movs r2, #0x78 + strb r2, [r4, #0xe] + strb r1, [r4, #0xf] + ldr r0, _08047BD0 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _08047BD4 + adds r0, r4, #0 + adds r0, #0x76 + strh r2, [r0] + b _08047BDC + .align 2, 0 +_08047BD0: .4byte gUnk_03000BF0 +_08047BD4: + adds r1, r4, #0 + adds r1, #0x76 + movs r0, #0x88 + strh r0, [r1] +_08047BDC: + ldr r0, _08047BEC @ =0x000001B5 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_08047BF0 + pop {r4, pc} + .align 2, 0 +_08047BEC: .4byte 0x000001B5 + + thumb_func_start sub_08047BF0 +sub_08047BF0: @ 0x08047BF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, _08047CB8 @ =gUnk_080D1C00 + ldrb r1, [r5, #0xe] + movs r0, #3 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E48 + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _08047CC4 + ldrb r1, [r5, #0xf] + adds r0, r1, #1 + strb r0, [r5, #0xf] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08047C74 + adds r0, r5, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08047C74 + bl sub_08000E50 + movs r3, #0x1e + adds r1, r0, #0 + ands r1, r3 + ldr r6, _08047CBC @ =0x0000FFF1 + adds r2, r6, #0 + adds r1, r2, r1 + ldrh r6, [r4, #0x2e] + adds r1, r1, r6 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + 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] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_08047C74: + adds r0, r5, #0 + adds r0, #0x76 + ldrh r0, [r0] + strb r0, [r5, #0x15] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08047E48 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldr r0, _08047CC0 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + movs r6, #0x9c + lsls r6, r6, #2 + adds r0, r0, r6 + cmp r1, r0 + ble _08047D10 + movs r0, #2 + strb r0, [r5, #0xd] + adds r1, r5, #0 + adds r1, #0x7e + movs r0, #0xaa + strh r0, [r1] + adds r0, #0x83 + bl sub_080A3268 + adds r0, r5, #0 + movs r1, #1 + bl sub_080042AC + b _08047D10 + .align 2, 0 +_08047CB8: .4byte gUnk_080D1C00 +_08047CBC: .4byte 0x0000FFF1 +_08047CC0: .4byte gUnk_03000BF0 +_08047CC4: + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x5a + bne _08047CD4 + ldr r4, [r5, #0x54] + b _08047CDC +_08047CD4: + cmp r0, #0x3c + bne _08047CF2 + ldr r0, [r5, #0x54] + ldr r4, [r0, #0x54] +_08047CDC: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX + b _08047D10 +_08047CF2: + cmp r0, #0x1e + bne _08047D10 + ldr r0, [r5, #0x54] + ldr r0, [r0, #0x54] + ldr r4, [r0, #0x54] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + movs r1, #0x51 + movs r2, #0 + bl CreateFX +_08047D10: + adds r0, r5, #0 + adds r0, #0x78 + ldrh r3, [r0] + adds r0, r5, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08047D24 +sub_08047D24: @ 0x08047D24 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x7e + ldrh r0, [r1] + adds r0, #8 + movs r2, #0 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + movs r0, #0x80 + lsls r0, r0, #4 + cmp r1, r0 + bls _08047D5A + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _08047D4C + ldr r0, [r4, #0x64] + str r2, [r0, #8] + b _08047D50 +_08047D4C: + ldr r0, [r4, #0x64] + str r2, [r0, #0xc] +_08047D50: + movs r0, #0 + str r0, [r4, #0x64] + bl sub_0805E780 + b _08047D84 +_08047D5A: + ldr r0, _08047D68 @ =0x000001FF + cmp r1, r0 + bhi _08047D6C + adds r0, r4, #0 + bl sub_08047E48 + b _08047D72 + .align 2, 0 +_08047D68: .4byte 0x000001FF +_08047D6C: + adds r0, r4, #0 + bl sub_08047E58 +_08047D72: + adds r0, r4, #0 + adds r0, #0x7e + ldrh r2, [r0] + subs r0, #6 + ldrh r3, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0805EC9C +_08047D84: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08047D88 +sub_08047D88: @ 0x08047D88 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r3, #0 + adds r5, #0x7c + ldrb r2, [r5] + lsls r1, r2, #1 + movs r0, #0x7f + ands r1, r0 + movs r0, #0x80 + ands r0, r2 + orrs r1, r0 + strb r1, [r5] + ldrb r0, [r3, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _08047DB0 + ldr r0, _08047DE8 @ =gUnk_03003F80 + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _08047DE6 +_08047DB0: + adds r0, r3, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #1 + beq _08047DE6 + ldr r4, _08047DEC @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r3, #0 + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + beq _08047DE6 + ldr r0, _08047DE8 @ =gUnk_03003F80 + movs r1, #1 + strb r1, [r0, #0x14] + movs r1, #0x36 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08047DE6 + ldrb r0, [r5] + movs r1, #1 + orrs r0, r1 + strb r0, [r5] +_08047DE6: + pop {r4, r5, pc} + .align 2, 0 +_08047DE8: .4byte gUnk_03003F80 +_08047DEC: .4byte gLinkEntity + + thumb_func_start sub_08047DF0 +sub_08047DF0: @ 0x08047DF0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08047D88 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08047EA4 + movs r0, #0x2e + ldrsh r4, [r5, r0] + movs r2, #0x32 + ldrsh r6, [r5, r2] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047E42 + bl sub_08079F8C + cmp r0, #0 + beq _08047E42 + ldr r0, _08047E44 @ =gLinkEntity + ldrh r1, [r5, #0x2e] + subs r1, r1, r4 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r5, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08047E42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08047E44: .4byte gLinkEntity + + thumb_func_start sub_08047E48 +sub_08047E48: @ 0x08047E48 + push {r4, lr} + adds r4, r0, #0 + bl sub_08047D88 + adds r0, r4, #0 + bl sub_08047E58 + pop {r4, pc} + + thumb_func_start sub_08047E58 +sub_08047E58: @ 0x08047E58 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r2, #0x32 + ldrsh r6, [r4, r2] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047E9C + bl sub_08079F8C + cmp r0, #0 + beq _08047E9C + ldr r0, _08047EA0 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + subs r1, r1, r5 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r4, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08047E9C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08047EA0: .4byte gLinkEntity + + thumb_func_start sub_08047EA4 +sub_08047EA4: @ 0x08047EA4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r0, #0x78 + strh r1, [r0] + ldrh r1, [r0] + adds r0, #2 + ldrh r0, [r0] + subs r4, r1, r0 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r4, r0 + adds r0, #0xff + cmp r1, r0 + bls _08047F58 + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08047F4E + adds r0, r5, #0 + bl sub_08047F68 + lsls r0, r0, #8 + mov r8, r0 + ldr r6, _08047F60 @ =gLinkEntity + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r6, r3] + movs r7, #0x32 + ldrsh r2, [r5, r7] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + adds r0, r4, #0 + cmp r4, #0 + bge _08047F00 + adds r0, #0xff +_08047F00: + asrs r0, r0, #8 + subs r4, r3, r0 + movs r0, #0xff + ands r4, r0 + ldr r2, _08047F64 @ =gUnk_080C9160 + lsls r0, r4, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r1, [r0, r7] + lsls r0, r3, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r0, [r0, r7] + subs r1, r1, r0 + mov r0, r8 + muls r0, r1, r0 + adds r1, r0, #0 + ldr r0, [r6, #0x2c] + adds r0, r0, r1 + str r0, [r6, #0x2c] + adds r0, r4, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r4, #0 + ldrsh r1, [r0, r4] + adds r0, r3, #0 + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r2 + movs r7, #0 + ldrsh r0, [r0, r7] + subs r1, r1, r0 + mov r0, r8 + muls r0, r1, r0 + adds r1, r0, #0 + ldr r0, [r6, #0x30] + subs r0, r0, r1 + str r0, [r6, #0x30] +_08047F4E: + adds r0, r5, #0 + adds r0, #0x78 + ldrh r1, [r0] + adds r0, #2 + strh r1, [r0] +_08047F58: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08047F60: .4byte gLinkEntity +_08047F64: .4byte gUnk_080C9160 + + thumb_func_start sub_08047F68 +sub_08047F68: @ 0x08047F68 + push {r4, r5, lr} + ldr r3, _08047F98 @ =gLinkEntity + movs r1, #0x2e + ldrsh r2, [r3, r1] + movs r4, #0x2e + ldrsh r1, [r0, r4] + subs r2, r2, r1 + movs r4, #0x32 + ldrsh r1, [r3, r4] + movs r3, #0x32 + ldrsh r0, [r0, r3] + subs r1, r1, r0 + adds r4, r2, #0 + muls r4, r2, r4 + adds r2, r4, #0 + adds r0, r1, #0 + muls r0, r1, r0 + adds r4, r2, r0 + movs r0, #0x80 + lsls r0, r0, #3 + cmp r4, r0 + bne _08047F9C + movs r0, #0x20 + b _08048002 + .align 2, 0 +_08047F98: .4byte gLinkEntity +_08047F9C: + ldr r0, _08047FB8 @ =gUnk_080D1C04 + movs r3, #0x18 + adds r2, r0, #0 + ldrh r0, [r2, #0x20] + cmp r4, r0 + bge _08047FAA + movs r3, #8 +_08047FAA: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FBC + subs r3, #4 + b _08047FBE + .align 2, 0 +_08047FB8: .4byte gUnk_080D1C04 +_08047FBC: + adds r3, #4 +_08047FBE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FCC + subs r3, #2 + b _08047FCE +_08047FCC: + adds r3, #2 +_08047FCE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r0, [r0] + cmp r4, r0 + bge _08047FDC + subs r3, #1 + b _08047FDE +_08047FDC: + adds r3, #1 +_08047FDE: + lsls r0, r3, #1 + adds r0, r0, r2 + ldrh r1, [r0] + cmp r4, r1 + bge _08048000 + subs r5, r3, #1 + lsls r0, r5, #1 + adds r0, r0, r2 + ldrh r2, [r0] + subs r0, r1, r2 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + adds r2, r2, r0 + cmp r4, r2 + bgt _08048000 + adds r3, r5, #0 +_08048000: + adds r0, r3, #0 +_08048002: + pop {r4, r5, pc} + + thumb_func_start sub_08048004 +sub_08048004: @ 0x08048004 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08048010 + b _08048138 +_08048010: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _0804801C + b _08048130 +_0804801C: + ldrb r0, [r4, #0x10] + movs r1, #0x7f + ands r1, r0 + strb r1, [r4, #0x10] + ldr r6, _080480A4 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + beq _08048030 + b _08048138 +_08048030: + bl sub_08079F8C + cmp r0, #0 + bne _0804803A + b _08048138 +_0804803A: + adds r1, r4, #0 + adds r1, #0x7c + ldrb r3, [r1] + movs r0, #1 + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + beq _080480BA + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + bne _080480B0 + movs r7, #0x2e + ldrsh r2, [r6, r7] + ldr r1, _080480A8 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + subs r2, r2, r0 + asrs r2, r2, #3 + movs r7, #0x32 + ldrsh r0, [r6, r7] + ldrh r1, [r1, #8] + subs r0, r0, r1 + asrs r0, r0, #3 + ldr r1, _080480AC @ =gUnk_02019EE0 + lsls r0, r0, #7 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r0, #0 + beq _080480B0 + movs r0, #2 + ands r0, r3 + cmp r0, #0 + bne _08048086 + movs r0, #0x80 + orrs r0, r3 + strb r0, [r5] +_08048086: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08048138 + adds r0, r4, #0 + adds r0, #0x84 + ldrh r0, [r0] + strh r0, [r6, #0x2e] + adds r0, r4, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r6, #0x32] + b _08048138 + .align 2, 0 +_080480A4: .4byte gLinkEntity +_080480A8: .4byte gUnk_03000BF0 +_080480AC: .4byte gUnk_02019EE0 +_080480B0: + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] + b _08048138 +_080480BA: + ldrb r0, [r4, #0x19] + lsrs r0, r0, #6 + cmp r0, #3 + beq _08048124 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r3, #0x32 + ldrsh r2, [r4, r3] + adds r0, r6, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08048124 + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08048124 + movs r7, #0x2e + ldrsh r0, [r6, r7] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r6, r3] + movs r7, #0x32 + ldrsh r2, [r4, r7] + subs r1, r1, r2 + bl sub_080045DA + ldr r3, _0804812C @ =gUnk_080C9160 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #3 + adds r2, r2, r1 + lsls r2, r2, #0xa + ldr r1, [r4, #0x2c] + adds r1, r1, r2 + str r1, [r6, #0x2c] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #0xa + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r6, #0x30] +_08048124: + movs r0, #0 + strb r0, [r5] + b _08048138 + .align 2, 0 +_0804812C: .4byte gUnk_080C9160 +_08048130: + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08048138: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804813C +sub_0804813C: @ 0x0804813C + push {lr} + bl sub_08000E50 + adds r2, r0, #0 + movs r0, #7 + ands r0, r2 + lsrs r2, r2, #8 + movs r1, #3 + ands r2, r1 + movs r1, #1 + bl sub_080A1ED0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048158 +sub_08048158: @ 0x08048158 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _08048174 @ =gUnk_080D1C44 + bl sub_08000E50 + lsls r4, r5, #1 + adds r4, r4, r5 + movs r1, #3 + bl __modsi3 + adds r4, r4, r0 + adds r4, r4, r6 + ldrb r0, [r4] + pop {r4, r5, r6, pc} + .align 2, 0 +_08048174: .4byte gUnk_080D1C44 + + thumb_func_start sub_08048178 +sub_08048178: @ 0x08048178 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldr r0, [r4, #0x64] + ldr r0, [r0, #4] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08048198 + lsls r1, r2, #1 + ldr r0, _08048194 @ =gUnk_080D1C60 + b _0804819C + .align 2, 0 +_08048194: .4byte gUnk_080D1C60 +_08048198: + lsls r1, r2, #1 + ldr r0, _080481B8 @ =gUnk_080D1C50 +_0804819C: + adds r3, r1, r0 + ldr r2, _080481BC @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r1, [r3] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + ldrh r0, [r2, #8] + ldrh r3, [r3, #2] + adds r0, r0, r3 + adds r1, #2 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_080481B8: .4byte gUnk_080D1C50 +_080481BC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080481C0 +sub_080481C0: @ 0x080481C0 + push {lr} + ldr r1, _080481CC @ =gUnk_080D1CC8 + bl sub_0800129E + pop {pc} + .align 2, 0 +_080481CC: .4byte gUnk_080D1CC8 + + thumb_func_start sub_080481D0 +sub_080481D0: @ 0x080481D0 + push {lr} + ldr r2, _080481E4 @ =gUnk_080D1CE0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080481E4: .4byte gUnk_080D1CE0 + + thumb_func_start sub_080481E8 +sub_080481E8: @ 0x080481E8 + push {lr} + adds r2, r0, #0 + adds r0, #0x46 + ldrh r0, [r0] + cmp r0, #0 + beq _08048210 + movs r0, #2 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r0, [r3] + movs r1, #7 + orrs r0, r1 + strb r0, [r3] + movs r0, #3 + b _08048212 +_08048210: + movs r0, #2 +_08048212: + strb r0, [r2, #0xe] + ldrb r1, [r2, #0xe] + adds r0, r2, #0 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_26 +nullsub_26: @ 0x08048220 + bx lr + .align 2, 0 + + thumb_func_start sub_08048224 +sub_08048224: @ 0x08048224 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #4 + orrs r1, r0 + strb r1, [r2] + movs r0, #0x72 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0804824E + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + b _0804825E +_0804824E: + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xe] +_0804825E: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08048268 +sub_08048268: @ 0x08048268 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08048292 + 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 _08048292 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_08048292: + pop {r4, pc} + + thumb_func_start sub_08048294 +sub_08048294: @ 0x08048294 + 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 _080482BC + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0x72 + bl sub_0807CCB4 + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_080482BC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_27 +nullsub_27: @ 0x080482C0 + bx lr + .align 2, 0 + + thumb_func_start sub_080482C4 +sub_080482C4: @ 0x080482C4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _080482D4 + bl sub_0805E780 +_080482D4: + ldr r0, _080482E8 @ =gUnk_080D1D48 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080482E8: .4byte gUnk_080D1D48 + + thumb_func_start sub_080482EC +sub_080482EC: @ 0x080482EC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08048310 @ =gUnk_030010A0 + adds r0, #0x38 + ldrb r1, [r0] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08048314 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + b _08048326 + .align 2, 0 +_08048310: .4byte gUnk_030010A0 +_08048314: + strb r2, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + movs r0, #0xb3 + lsls r0, r0, #1 + bl sub_080A3268 +_08048326: + adds r0, r4, #0 + bl sub_080485D8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048330 +sub_08048330: @ 0x08048330 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485D8 + 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 _08048358 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 +_08048358: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804835C +sub_0804835C: @ 0x0804835C + push {r4, lr} + adds r4, r0, #0 + bl sub_080485D8 + ldr r0, _08048384 @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r1, [r0] + movs r2, #3 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08048382 + strb r2, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #0x10] + movs r0, #0x80 + strh r0, [r4, #0x24] +_08048382: + pop {r4, pc} + .align 2, 0 +_08048384: .4byte gUnk_030010A0 + + thumb_func_start sub_08048388 +sub_08048388: @ 0x08048388 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r2, [r5, #0x50] + adds r0, r2, #0 + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + beq _080483A0 + adds r0, r5, #0 + bl sub_080485D8 + b _080483F2 +_080483A0: + ldrb r1, [r5, #0xa] + lsls r1, r1, #1 + ldr r0, _080483F4 @ =gUnk_080D1D98 + adds r1, r1, r0 + movs r0, #0x2e + ldrsh r4, [r2, r0] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + movs r0, #0x32 + ldrsh r2, [r2, r0] + movs r0, #1 + ldrsb r0, [r1, r0] + adds r6, r2, r0 + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r2, r4, #0 + adds r3, r6, #0 + bl sub_080045D4 + strb r0, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F69C + ldr r0, [r5, #0x50] + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + movs r1, #0x2e + ldrsh r0, [r5, r1] + cmp r0, r4 + bne _080483F2 + movs r2, #0x32 + ldrsh r0, [r5, r2] + cmp r0, r6 + bne _080483F2 + movs r0, #4 + strb r0, [r5, #0xc] + movs r0, #0x3c + strb r0, [r5, #0xe] +_080483F2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080483F4: .4byte gUnk_080D1D98 + + thumb_func_start sub_080483F8 +sub_080483F8: @ 0x080483F8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080485FC + ldrb r0, [r4, #0xe] + adds r5, r0, #0 + cmp r5, #0 + beq _0804841C + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08048436 + adds r0, r4, #0 + movs r1, #3 + bl sub_08004260 + b _08048436 +_0804841C: + 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 _08048436 + movs r0, #5 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] +_08048436: + pop {r4, r5, pc} + + thumb_func_start sub_08048438 +sub_08048438: @ 0x08048438 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0804846A + movs r0, #6 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0x14 + bls _08048454 + movs r0, #0x78 + b _08048456 +_08048454: + movs r0, #0x3c +_08048456: + strb r0, [r4, #0xe] + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r4, #0 + movs r1, #5 + bl sub_08004260 + ldr r0, _08048474 @ =0x0000019B + bl sub_080A3268 +_0804846A: + adds r0, r4, #0 + bl sub_080485FC + pop {r4, pc} + .align 2, 0 +_08048474: .4byte 0x0000019B + + thumb_func_start sub_08048478 +sub_08048478: @ 0x08048478 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xe] + adds r2, r0, #0 + cmp r2, #0 + beq _080484A2 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080484E6 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080484E6 +_080484A2: + adds r3, r4, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080484BC + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r2, [r4, #0xf] + b _080484E6 +_080484BC: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080484E6 + movs r0, #0xfe + ands r0, r1 + strb r0, [r3] + movs r0, #0x24 + bl sub_080A7EE0 + adds r1, r0, #0 + cmp r1, #0 + beq _080484E6 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + movs r3, #0xc0 + lsls r3, r3, #0xc + adds r0, r4, #0 + movs r2, #0 + bl PositionRelative +_080484E6: + pop {r4, pc} + + thumb_func_start sub_080484E8 +sub_080484E8: @ 0x080484E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08048528 + movs r0, #8 + strb r0, [r4, #0xc] + movs r0, #0x3c + strb r0, [r4, #0xe] + 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 + movs r1, #0x1f + movs r2, #0x40 + bl CreateFX + ldr r2, [r4, #0x50] + adds r2, #0x7b + movs r0, #0x10 + b _08048542 +_08048528: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0804854C + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xe] + ldr r2, [r4, #0x50] + adds r2, #0x7b + movs r0, #1 +_08048542: + ldrb r4, [r4, #0xa] + lsls r0, r4 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] +_0804854C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048550 +sub_08048550: @ 0x08048550 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0xc] + cmp r0, #0xb + bne _08048562 + movs r0, #0x3c + strb r0, [r4, #0xe] + b _0804859E +_08048562: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804859E + movs r0, #9 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #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 r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_080485FC + movs r0, #0xb3 + lsls r0, r0, #1 + bl sub_080A3268 +_0804859E: + pop {r4, pc} + + thumb_func_start sub_080485A0 +sub_080485A0: @ 0x080485A0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080485FC + 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 _080485D6 + movs r0, #4 + strb r0, [r4, #0xc] + movs r1, #1 + strb r1, [r4, #0xe] + ldr r2, [r4, #0x50] + adds r2, #0x7b + ldrb r3, [r2] + movs r0, #0xf + ands r0, r3 + ldrb r4, [r4, #0xa] + lsls r1, r4 + orrs r0, r1 + strb r0, [r2] +_080485D6: + pop {r4, pc} + + thumb_func_start sub_080485D8 +sub_080485D8: @ 0x080485D8 + push {lr} + adds r1, r0, #0 + ldrb r3, [r1, #0xa] + lsls r3, r3, #1 + ldr r0, _080485F8 @ =gUnk_080D1D70 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + bl sub_0806FA90 + pop {pc} + .align 2, 0 +_080485F8: .4byte gUnk_080D1D70 + + thumb_func_start sub_080485FC +sub_080485FC: @ 0x080485FC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #1 + ldr r0, _08048638 @ =gUnk_080D1D98 + adds r1, r1, r0 + ldr r0, [r4, #0x50] + movs r2, #0 + ldrsb r2, [r1, r2] + movs r3, #1 + ldrsb r3, [r1, r3] + adds r1, r4, #0 + bl sub_0806FA90 + ldr r3, _0804863C @ =gUnk_080D1D78 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + ldr r0, [r4, #0x50] + adds r0, #0x78 + ldrb r0, [r0] + lsrs r0, r0, #4 + movs r2, #7 + ands r0, r2 + adds r1, r1, r0 + adds r1, r1, r3 + movs r0, #0 + ldrsb r0, [r1, r0] + strh r0, [r4, #0x36] + pop {r4, pc} + .align 2, 0 +_08048638: .4byte gUnk_080D1D98 +_0804863C: .4byte gUnk_080D1D78 + + thumb_func_start sub_08048640 +sub_08048640: @ 0x08048640 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0804867C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r2, [r0] + cmp r2, #0 + bne _08048664 + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r5, #0 + adds r0, #0x45 + strb r2, [r0] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] +_08048664: + ldr r4, _08048680 @ =gUnk_080D1E6C + 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 + pop {r4, r5, pc} + .align 2, 0 +_0804867C: .4byte gUnk_030010A0 +_08048680: .4byte gUnk_080D1E6C + + thumb_func_start sub_08048684 +sub_08048684: @ 0x08048684 + push {lr} + ldr r2, _08048698 @ =gUnk_080D1E84 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08048698: .4byte gUnk_080D1E84 + + thumb_func_start sub_0804869C +sub_0804869C: @ 0x0804869C + push {lr} + ldr r1, _080486A8 @ =gUnk_080D1E6C + bl sub_0804AA30 + pop {pc} + .align 2, 0 +_080486A8: .4byte gUnk_080D1E6C + + thumb_func_start sub_080486AC +sub_080486AC: @ 0x080486AC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F520 + cmp r0, #0 + beq _080486C8 + ldr r0, _080486CC @ =gUnk_080D1E94 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080486C8: + pop {r4, pc} + .align 2, 0 +_080486CC: .4byte gUnk_080D1E94 + + thumb_func_start sub_080486D0 +sub_080486D0: @ 0x080486D0 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_080486D8 +sub_080486D8: @ 0x080486D8 + push {lr} + bl sub_0806F4E8 + pop {pc} + + thumb_func_start sub_080486E0 +sub_080486E0: @ 0x080486E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F3E4 + cmp r0, #0 + beq _080486F2 + adds r0, r4, #0 + bl sub_0804A7D4 +_080486F2: + pop {r4, pc} + + thumb_func_start sub_080486F4 +sub_080486F4: @ 0x080486F4 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + strb r5, [r4, #0x1c] + ldrb r0, [r4, #0x1b] + movs r1, #0xc0 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + orrs r0, r1 + strb r0, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0x15] + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0804876C + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + strb r5, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + movs r1, #0xb + bl __modsi3 + ldrb r1, [r4, #0x15] + adds r1, r1, r0 + subs r1, #5 + movs r2, #0x1f + ands r1, r2 + strb r1, [r4, #0x15] + lsls r0, r0, #1 + ldr r2, _08048768 @ =gUnk_080D1EA0 + adds r1, r0, r2 + ldrb r1, [r1] + strb r1, [r4, #0xe] + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x7b + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0804877A + .align 2, 0 +_08048768: .4byte gUnk_080D1EA0 +_0804876C: + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #6 + ands r0, r1 + strb r0, [r4, #0x18] +_0804877A: + pop {r4, r5, pc} + + thumb_func_start sub_0804877C +sub_0804877C: @ 0x0804877C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080487AA + subs r0, #1 + strb r0, [r4, #0xe] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _080487AA + adds r0, r4, #0 + adds r0, #0x7b + ldrb r0, [r0] + ldrb r1, [r4, #0x15] + adds r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] +_080487AA: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080487D4 + cmp r0, #1 + bgt _080487BC + cmp r0, #0 + beq _080487C2 + b _08048804 +_080487BC: + cmp r0, #2 + beq _080487EC + b _08048804 +_080487C2: + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r0, _080487D0 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + b _0804880E + .align 2, 0 +_080487D0: .4byte gUnk_03000BF0 +_080487D4: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _080487E8 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r0, r2] + movs r2, #0x84 + lsls r2, r2, #1 + adds r0, r0, r2 + b _080487F8 + .align 2, 0 +_080487E8: .4byte gUnk_03000BF0 +_080487EC: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048800 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + adds r0, #0xb8 +_080487F8: + cmp r1, r0 + blt _08048824 + b _08048814 + .align 2, 0 +_08048800: .4byte gUnk_03000BF0 +_08048804: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048828 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r0, r2] +_0804880E: + subs r0, #0x18 + cmp r1, r0 + bgt _08048824 +_08048814: + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x5a + strb r0, [r4, #0xe] + ldrb r1, [r4, #0x18] + subs r0, #0x5e + ands r0, r1 + strb r0, [r4, #0x18] +_08048824: + pop {r4, pc} + .align 2, 0 +_08048828: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804882C +sub_0804882C: @ 0x0804882C + 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 _080488FA + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + bl sub_08000E50 + 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, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x78 + ldrh r0, [r0] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + adds r0, #0x7a + ldrb r0, [r0] + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1a + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _080488D0 + cmp r0, #1 + bgt _080488AA + cmp r0, #0 + beq _080488AE + b _080488D0 +_080488AA: + cmp r0, #2 + bne _080488D0 +_080488AE: + ldr r1, _080488C8 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r1, [r1, #0x2e] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r1, _080488CC @ =gUnk_03000BF0 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + ldrh r1, [r1, #0xc] + b _080488E8 + .align 2, 0 +_080488C8: .4byte gLinkEntity +_080488CC: .4byte gUnk_03000BF0 +_080488D0: + ldr r1, _080488FC @ =gUnk_03000BF0 + adds r0, r4, #0 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r1, [r1, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + ldr r1, _08048900 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x76 + ldrh r0, [r0] + ldrh r1, [r1, #0x32] +_080488E8: + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _080488FA + movs r0, #0xcc + lsls r0, r0, #1 + bl sub_080A3268 +_080488FA: + pop {r4, pc} + .align 2, 0 +_080488FC: .4byte gUnk_03000BF0 +_08048900: .4byte gLinkEntity + + thumb_func_start sub_08048904 +sub_08048904: @ 0x08048904 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08004274 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _0804893C + cmp r0, #1 + bgt _08048924 + cmp r0, #0 + beq _0804892A + b _0804896C +_08048924: + cmp r0, #2 + beq _08048954 + b _0804896C +_0804892A: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048938 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + b _08048976 + .align 2, 0 +_08048938: .4byte gUnk_03000BF0 +_0804893C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048950 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r0, r2] + movs r2, #0x8c + lsls r2, r2, #1 + adds r0, r0, r2 + b _08048960 + .align 2, 0 +_08048950: .4byte gUnk_03000BF0 +_08048954: + movs r0, #0x32 + ldrsh r1, [r4, r0] + ldr r0, _08048968 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + adds r0, #0xc8 +_08048960: + cmp r1, r0 + blt _08048980 + b _0804897C + .align 2, 0 +_08048968: .4byte gUnk_03000BF0 +_0804896C: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r0, _08048984 @ =gUnk_03000BF0 + movs r2, #0xa + ldrsh r0, [r0, r2] +_08048976: + subs r0, #0x28 + cmp r1, r0 + bgt _08048980 +_0804897C: + bl sub_0805E780 +_08048980: + pop {r4, pc} + .align 2, 0 +_08048984: .4byte gUnk_03000BF0 + + thumb_func_start sub_08048988 +sub_08048988: @ 0x08048988 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, [r5, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08048998 + bl sub_0805E780 +_08048998: + ldr r4, _080489B0 @ =gUnk_080D1F64 + 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 + pop {r4, r5, pc} + .align 2, 0 +_080489B0: .4byte gUnk_080D1F64 + + thumb_func_start sub_080489B4 +sub_080489B4: @ 0x080489B4 + push {lr} + ldr r2, _080489C8 @ =gUnk_080D1F7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080489C8: .4byte gUnk_080D1F7C + + thumb_func_start sub_080489CC +sub_080489CC: @ 0x080489CC + push {r4, r5, r6, lr} + mov ip, r0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0xff + bne _080489DA + b _08048AD8 +_080489DA: + mov r0, ip + ldr r4, [r0, #0x50] + adds r0, r4, #0 + adds r0, #0x78 + ldrb r0, [r0] + mov r2, ip + ldrb r1, [r2, #0xa] + asrs r0, r1 + movs r3, #1 + ands r0, r3 + cmp r0, #0 + beq _08048AD8 + adds r2, r4, #0 + adds r2, #0x7c + adds r0, r3, #0 + lsls r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + mov r0, ip + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + subs r0, #4 + cmp r0, #0x16 + bhi _08048AD0 + lsls r0, r0, #2 + ldr r1, _08048A1C @ =_08048A20 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08048A1C: .4byte _08048A20 +_08048A20: @ jump table + .4byte _08048A7C @ case 0 + .4byte _08048A7C @ case 1 + .4byte _08048A7C @ case 2 + .4byte _08048AD0 @ case 3 + .4byte _08048A7C @ case 4 + .4byte _08048A7C @ case 5 + .4byte _08048A7C @ case 6 + .4byte _08048A7C @ case 7 + .4byte _08048A7C @ case 8 + .4byte _08048A7C @ case 9 + .4byte _08048AD0 @ case 10 + .4byte _08048AD0 @ case 11 + .4byte _08048A7C @ case 12 + .4byte _08048A7C @ case 13 + .4byte _08048A7C @ case 14 + .4byte _08048AD0 @ case 15 + .4byte _08048AD0 @ case 16 + .4byte _08048AD0 @ case 17 + .4byte _08048AD0 @ case 18 + .4byte _08048AD0 @ case 19 + .4byte _08048A7C @ case 20 + .4byte _08048A7C @ case 21 + .4byte _08048A7C @ case 22 +_08048A7C: + ldr r3, [r4, #0x64] + mov r5, ip + ldrb r0, [r5, #0xa] + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x18 + adds r1, r1, r0 + ldr r0, [r5, #0x4c] + str r0, [r1] + ldr r2, _08048ACC @ =gLinkEntity + movs r6, #0x2e + ldrsh r0, [r2, r6] + movs r6, #0x2e + ldrsh r1, [r5, r6] + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r3, #0x38] + ldr r3, [r4, #0x64] + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r5, r2] + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r3, #0x3a] + ldr r2, [r4, #0x64] + mov r3, ip + adds r3, #0x3e + ldrb r0, [r3] + movs r1, #0x10 + eors r0, r1 + strb r0, [r3] + adds r2, #0x3c + strb r0, [r2] + b _08048AD8 + .align 2, 0 +_08048ACC: .4byte gLinkEntity +_08048AD0: + ldr r0, [r4, #0x64] + adds r0, #0x3c + movs r1, #0xff + strb r1, [r0] +_08048AD8: + mov r1, ip + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] + ldr r1, _08048AEC @ =gUnk_080D1F64 + mov r0, ip + bl sub_0804AA30 + pop {r4, r5, r6, pc} + .align 2, 0 +_08048AEC: .4byte gUnk_080D1F64 + + thumb_func_start sub_08048AF0 +sub_08048AF0: @ 0x08048AF0 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0xff + strb r1, [r0, #0x14] + ldrb r3, [r0, #0x1b] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r3 + movs r3, #0x80 + orrs r1, r3 + strb r1, [r0, #0x1b] + ldrb r1, [r0, #0x19] + ands r2, r1 + orrs r2, r3 + strb r2, [r0, #0x19] + adds r3, r0, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r2, #7 + orrs r1, r2 + strb r1, [r3] + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + bl sub_08048D20 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048B2C +sub_08048B2C: @ 0x08048B2C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08048D20 + ldr r5, [r4, #0x50] + adds r0, r5, #0 + bl sub_08048D70 + cmp r0, #0 + beq _08048B62 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + bne _08048B52 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX +_08048B52: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _08048B6C +_08048B62: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08048B6C: + adds r0, r5, #0 + adds r0, #0x78 + ldrb r0, [r0] + ldrb r1, [r4, #0xa] + asrs r0, r1 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08048B82 + movs r0, #2 + strb r0, [r4, #0xc] +_08048B82: + pop {r4, r5, pc} + + thumb_func_start sub_08048B84 +sub_08048B84: @ 0x08048B84 + 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 _08048BAE + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1e + strb r0, [r1] +_08048BAE: + pop {r4, pc} + + thumb_func_start sub_08048BB0 +sub_08048BB0: @ 0x08048BB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, [r4, #0x50] + adds r0, r2, #0 + adds r0, #0x78 + ldrb r3, [r0] + ldrb r1, [r4, #0xa] + adds r0, r3, #0 + asrs r0, r1 + movs r6, #1 + ands r0, r6 + cmp r0, #0 + bne _08048C34 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08048BFC + movs r0, #4 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08048BF8 @ =gUnk_080D2030 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + b _08048CEA + .align 2, 0 +_08048BF8: .4byte gUnk_080D2030 +_08048BFC: + strb r6, [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 r1, _08048C30 @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0x40 + bl CreateFX + b _08048CEA + .align 2, 0 +_08048C30: .4byte gUnk_080D2010 +_08048C34: + adds r5, r2, #0 + adds r5, #0x80 + ldrb r0, [r5] + asrs r0, r1 + ands r0, r6 + cmp r0, #0 + beq _08048CBC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0x13 + bhi _08048C6C + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r1, #2 + movs r0, #0x89 + strb r0, [r1] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #6 + adds r1, #0x14 + adds r0, r4, #0 + bl sub_08004260 + ldr r0, _08048CB4 @ =0x00000119 + bl sub_080A3268 +_08048C6C: + 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 _08048CEA + adds r1, r4, #0 + adds r1, #0x3f + movs r0, #0x1e + strb r0, [r1] + ldr r1, _08048CB8 @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #7 + bl sub_08004276 + adds r1, r6, #0 + ldrb r4, [r4, #0xa] + lsls r1, r4 + ldrb r0, [r5] + bics r0, r1 + strb r0, [r5] + b _08048CEA + .align 2, 0 +_08048CB4: .4byte 0x00000119 +_08048CB8: .4byte gUnk_080D2010 +_08048CBC: + cmp r3, #0xff + bne _08048CEA + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x10 + cmp r0, #3 + bls _08048CE4 + ldrb r1, [r4, #0x14] + adds r1, #0x10 + adds r0, r4, #0 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x1c + ands r1, r0 + adds r0, r4, #0 + bl sub_08004276 +_08048CE4: + adds r0, r4, #0 + bl sub_08004274 +_08048CEA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08048CEC +sub_08048CEC: @ 0x08048CEC + 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 _08048D1A + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _08048D1C @ =gUnk_080D2010 + ldrb r0, [r4, #0x14] + lsls r0, r0, #3 + ldrb r2, [r4, #0xa] + adds r0, r0, r2 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08048D1A: + pop {r4, pc} + .align 2, 0 +_08048D1C: .4byte gUnk_080D2010 + + thumb_func_start sub_08048D20 +sub_08048D20: @ 0x08048D20 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #6 + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08048D60 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0xa] + lsls r3, r0, #3 + adds r1, r1, r3 + lsls r1, r1, #2 + ldr r0, _08048D64 @ =gUnk_080D1F90 + adds r1, r1, r0 + ldr r2, _08048D68 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r5, [r1] + adds r0, r0, r5 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + ldrh r1, [r1, #2] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r1, _08048D6C @ =gUnk_080D2010 + ldrb r0, [r4, #0xa] + adds r0, r0, r3 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08048D60: + pop {r4, r5, pc} + .align 2, 0 +_08048D64: .4byte gUnk_080D1F90 +_08048D68: .4byte gUnk_03000BF0 +_08048D6C: .4byte gUnk_080D2010 + + thumb_func_start sub_08048D70 +sub_08048D70: @ 0x08048D70 + push {lr} + adds r1, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08048D8E + ldr r1, [r1, #0x64] + ldr r0, [r1, #8] + cmp r0, #0 + bne _08048D86 + ldr r0, [r1, #0xc] +_08048D86: + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + bne _08048D92 +_08048D8E: + movs r0, #1 + b _08048D94 +_08048D92: + movs r0, #0 +_08048D94: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08048D98 +sub_08048D98: @ 0x08048D98 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, [r5, #0x50] + ldr r0, [r6, #4] + cmp r0, #0 + bne _08048DA8 + bl sub_0805E780 +_08048DA8: + ldr r4, _08048E00 @ =gUnk_080D22D8 + 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 + ldrb r2, [r6, #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, [r6, #0x19] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r5, #0x19] + ands r1, r2 + orrs r1, r0 + strb r1, [r5, #0x19] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + adds r3, r5, #0 + adds r3, #0x29 + movs r0, #7 + ands r1, r0 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + pop {r4, r5, r6, pc} + .align 2, 0 +_08048E00: .4byte gUnk_080D22D8 + + thumb_func_start sub_08048E04 +sub_08048E04: @ 0x08048E04 + push {lr} + ldr r2, _08048E18 @ =gUnk_080D22F0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08048E18: .4byte gUnk_080D22F0 + + thumb_func_start sub_08048E1C +sub_08048E1C: @ 0x08048E1C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0xff + subs r0, r0, r1 + cmp r0, #0 + beq _08048E96 + ldr r4, [r5, #0x50] + adds r1, r4, #0 + adds r1, #0x45 + ldrb r2, [r1] + cmp r2, r0 + bls _08048E48 + subs r0, r2, r0 + strb r0, [r1] + ldr r0, _08048E44 @ =0x00000127 + bl sub_080A3268 + b _08048E5C + .align 2, 0 +_08048E44: .4byte 0x00000127 +_08048E48: + movs r0, #0 + strb r0, [r1] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x28 + movs r1, #0 + bl sub_08080964 +_08048E5C: + adds r2, r5, #0 + adds r2, #0x3d + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + ble _08048E8E + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r4, [r4, #0x54] + ldrb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + ldr r4, [r4, #0x54] + ldrb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + strb r0, [r1] + ldr r4, [r4, #0x54] + ldrb r1, [r2] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] +_08048E8E: + adds r1, r5, #0 + adds r1, #0x45 + movs r0, #0xff + strb r0, [r1] +_08048E96: + ldr r1, _08048EA0 @ =gUnk_080D22D8 + adds r0, r5, #0 + bl sub_0804AA30 + pop {r4, r5, pc} + .align 2, 0 +_08048EA0: .4byte gUnk_080D22D8 + + thumb_func_start sub_08048EA4 +sub_08048EA4: @ 0x08048EA4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x14] + movs r0, #0xe0 + ands r0, r1 + lsrs r0, r0, #3 + ldrb r1, [r4, #0xa] + adds r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x78 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08048F50 + adds r0, r4, #0 + bl sub_08048F74 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048ED0 +sub_08048ED0: @ 0x08048ED0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + 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 _08048EFC + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x2d + strb r0, [r4, #0xe] +_08048EFC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08048F00 +sub_08048F00: @ 0x08048F00 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08048F2E + movs r0, #3 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_08048F2E: + pop {r4, pc} + + thumb_func_start sub_08048F30 +sub_08048F30: @ 0x08048F30 + push {r4, lr} + adds r4, r0, #0 + bl sub_08048F50 + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08048F4E + bl sub_0805E780 +_08048F4E: + pop {r4, pc} + + thumb_func_start sub_08048F50 +sub_08048F50: @ 0x08048F50 + push {lr} + adds r1, r0, #0 + adds r0, #0x78 + ldrb r3, [r0] + lsls r3, r3, #1 + ldr r0, _08048F70 @ =gUnk_080D2300 + adds r3, r3, r0 + ldr r0, [r1, #0x50] + movs r2, #0 + ldrsb r2, [r3, r2] + ldrb r3, [r3, #1] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + bl sub_0806FA90 + pop {pc} + .align 2, 0 +_08048F70: .4byte gUnk_080D2300 + + thumb_func_start sub_08048F74 +sub_08048F74: @ 0x08048F74 + push {lr} + ldr r2, _08048F88 @ =gUnk_080D2348 + adds r1, r0, #0 + adds r1, #0x78 + ldrb r1, [r1] + adds r1, r1, r2 + ldrb r1, [r1] + bl sub_08004260 + pop {pc} + .align 2, 0 +_08048F88: .4byte gUnk_080D2348 + + thumb_func_start sub_08048F8C +sub_08048F8C: @ 0x08048F8C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x50] + ldr r0, [r0, #4] + cmp r0, #0 + bne _08048F9C + bl sub_0805E780 +_08048F9C: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08048FD4 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r2, [r4, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x19] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + movs r0, #0xff + strb r0, [r4, #0x14] +_08048FD4: + ldr r0, [r4, #0x50] + ldrb r0, [r0, #0x14] + lsrs r0, r0, #5 + lsls r6, r0, #0x18 + lsrs r5, r6, #0x18 + ldrb r0, [r4, #0x14] + cmp r5, r0 + beq _08049018 + strb r5, [r4, #0x14] + ldr r3, _08049010 @ =gUnk_080D28CC + lsls r1, r5, #1 + adds r1, r1, r3 + ldr r2, _08049014 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x2e] + adds r1, r5, #1 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r0, [r2, #8] + ldrh r1, [r1] + adds r0, r0, r1 + strh r0, [r4, #0x32] + lsrs r1, r6, #0x19 + adds r0, r4, #0 + bl sub_08004260 + b _0804901E + .align 2, 0 +_08049010: .4byte gUnk_080D28CC +_08049014: .4byte gUnk_03000BF0 +_08049018: + adds r0, r4, #0 + bl sub_08004274 +_0804901E: + movs r0, #2 + ands r0, r5 + cmp r0, #0 + beq _08049038 + ldr r0, _08049034 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x32 + ldrsh r0, [r0, r2] + b _08049042 + .align 2, 0 +_08049034: .4byte gLinkEntity +_08049038: + ldr r0, _08049054 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] +_08049042: + cmp r1, r0 + bge _08049048 + adds r5, #1 +_08049048: + ldr r0, _08049058 @ =gUnk_080D28AC + lsls r1, r5, #2 + adds r1, r1, r0 + ldr r0, [r1] + str r0, [r4, #0x48] + pop {r4, r5, r6, pc} + .align 2, 0 +_08049054: .4byte gLinkEntity +_08049058: .4byte gUnk_080D28AC + + thumb_func_start sub_0804905C +sub_0804905C: @ 0x0804905C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _0804907C + adds r0, r5, #0 + adds r0, #0x7d + ldrb r1, [r0] + movs r0, #3 + ands r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] +_0804907C: + adds r1, r5, #0 + adds r1, #0x45 + ldrb r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _08049092 + movs r0, #0xff + strb r0, [r1] + movs r0, #4 + strb r0, [r5, #0xc] + strb r2, [r5, #0xd] +_08049092: + ldr r1, _080490F8 @ =gUnk_080D2974 + ldrb r0, [r5, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r5, #0 + bl _call_via_r1 + adds r4, r5, #0 + adds r4, #0x78 + ldrh r3, [r4] + adds r0, r5, #0 + movs r1, #0xaa + movs r2, #0xaa + bl sub_0805EC9C + ldrh r0, [r4] + lsrs r0, r0, #8 + rsbs r0, r0, #0 + strb r0, [r5, #0x14] + adds r0, r5, #0 + bl sub_080499F0 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + adds r1, r5, #0 + adds r1, #0x7d + strb r0, [r1] + ldrb r2, [r5, #0x18] + lsls r0, r2, #0x1e + lsrs r0, r0, #0x1e + cmp r0, #1 + bne _080490F4 + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldr r1, _080490FC @ =gUnk_03000BF0 + movs r3, #0xc + ldrsh r1, [r1, r3] + subs r0, r0, r1 + adds r0, #0x30 + movs r1, #0x80 + lsls r1, r1, #1 + cmp r0, r1 + bls _080490F4 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r5, #0x18] +_080490F4: + pop {r4, r5, pc} + .align 2, 0 +_080490F8: .4byte gUnk_080D2974 +_080490FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08049100 +sub_08049100: @ 0x08049100 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x7c + bl sub_0807CBE4 + cmp r0, #0 + beq _08049144 + ldr r4, _08049140 @ =0x00004081 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0x4a + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0x8a + movs r2, #2 + bl sub_0800015E + adds r0, r4, #0 + movs r1, #0xca + movs r2, #2 + bl sub_0800015E + bl sub_0805E780 + b _0804916E + .align 2, 0 +_08049140: .4byte 0x00004081 +_08049144: + ldr r4, _080491E8 @ =0x00000323 + adds r0, r4, #0 + movs r1, #0xa + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0x4a + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0x8a + movs r2, #1 + bl sub_0807B7D8 + adds r0, r4, #0 + movs r1, #0xca + movs r2, #1 + bl sub_0807B7D8 +_0804916E: + movs r0, #0x22 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _080491E4 + movs r1, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r2, #0xa] + str r5, [r2, #0x50] + str r2, [r5, #0x54] + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + movs r0, #0x3c + strb r0, [r5, #0xe] + movs r0, #0xc0 + strb r0, [r5, #0x15] + strb r0, [r5, #0x14] + movs r4, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + ldrb r1, [r5, #0x19] + movs r0, #3 + orrs r1, r0 + ldrb r2, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r3 + strb r0, [r5, #0x18] + ldrb r2, [r5, #0x1b] + movs r3, #0x3f + adds r0, r3, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r5, #0x1b] + ands r1, r3 + orrs r1, r2 + strb r1, [r5, #0x19] + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x7c + strb r4, [r0] + subs r0, #4 + movs r1, #0x80 + lsls r1, r1, #7 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_080491E4: + pop {r4, r5, pc} + .align 2, 0 +_080491E8: .4byte 0x00000323 + + thumb_func_start sub_080491EC +sub_080491EC: @ 0x080491EC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08049208 @ =gUnk_080D2988 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08049208: .4byte gUnk_080D2988 + + thumb_func_start sub_0804920C +sub_0804920C: @ 0x0804920C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0804921C + subs r0, #1 + strb r0, [r4, #0xe] + b _08049268 +_0804921C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r2, _0804926C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + ldr r1, _08049270 @ =0xFFFFFF00 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + cmp r0, r1 + ble _08049268 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + strb r0, [r4, #0x15] + strb r0, [r4, #0x14] + movs r0, #0xc0 + strh r0, [r4, #0x24] + ldrh r0, [r2, #6] + adds r0, #0xa8 + strh r0, [r4, #0x2e] + ldrh r0, [r2, #8] + subs r0, #0x40 + strh r0, [r4, #0x32] + adds r0, r4, #0 + adds r0, #0x78 + movs r1, #0x80 + lsls r1, r1, #8 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] +_08049268: + pop {r4, pc} + .align 2, 0 +_0804926C: .4byte gUnk_03000BF0 +_08049270: .4byte 0xFFFFFF00 + + thumb_func_start sub_08049274 +sub_08049274: @ 0x08049274 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r0, _080492A4 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, #0x40 + movs r2, #0x32 + ldrsh r1, [r4, r2] + cmp r0, r1 + bge _080492A2 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080492A2: + pop {r4, pc} + .align 2, 0 +_080492A4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080492A8 +sub_080492A8: @ 0x080492A8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080492C4 @ =gUnk_080D2990 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_080492C4: .4byte gUnk_080D2990 + + thumb_func_start sub_080492C8 +sub_080492C8: @ 0x080492C8 + push {r4, r5, lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r1, #0 + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r3, #0x24] + adds r0, r3, #0 + adds r0, #0x6e + strb r1, [r0] + movs r0, #0x2e + ldrsh r1, [r3, r0] + ldr r2, _08049300 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + adds r5, r2, #0 + cmp r1, #0xa7 + bgt _08049304 + adds r2, r3, #0 + adds r2, #0x80 + movs r0, #0xd8 + strh r0, [r2] + adds r1, r3, #0 + adds r1, #0x74 + adds r0, #0x28 + b _08049314 + .align 2, 0 +_08049300: .4byte gUnk_03000BF0 +_08049304: + adds r2, r3, #0 + adds r2, #0x80 + movs r0, #0x78 + strh r0, [r2] + adds r1, r3, #0 + adds r1, #0x74 + movs r0, #0xff + lsls r0, r0, #8 +_08049314: + strh r0, [r1] + adds r4, r1, #0 + ldrh r0, [r5, #6] + ldrh r1, [r2] + adds r0, r0, r1 + strh r0, [r2] + movs r2, #0x32 + ldrsh r0, [r3, r2] + ldrh r1, [r5, #8] + subs r0, r0, r1 + cmp r0, #0x7f + bgt _08049336 + adds r1, r3, #0 + adds r1, #0x82 + movs r0, #0xb0 + strh r0, [r1] + b _08049346 +_08049336: + adds r1, r3, #0 + adds r1, #0x82 + movs r0, #0x50 + strh r0, [r1] + movs r2, #0 + ldrsh r0, [r4, r2] + rsbs r0, r0, #0 + strh r0, [r4] +_08049346: + ldrh r0, [r5, #8] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + adds r0, r3, #0 + bl sub_08049358 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08049358 +sub_08049358: @ 0x08049358 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + adds r1, r4, #0 + adds r1, #0x82 + ldrh r1, [r1] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + adds r3, r0, #0 + ldrb r2, [r4, #0x15] + subs r0, r2, r3 + adds r0, #2 + movs r1, #0xff + ands r0, r1 + cmp r0, #4 + bls _08049398 + subs r0, r3, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08049394 + subs r0, r2, #1 + b _08049396 +_08049394: + adds r0, r2, #1 +_08049396: + strb r0, [r4, #0x15] +_08049398: + ldrb r1, [r4, #0x15] + movs r5, #0x80 + lsls r5, r5, #1 + subs r1, r5, r1 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + adds r0, r4, #0 + adds r0, #0x80 + ldrh r1, [r0] + adds r0, #2 + ldrh r2, [r0] + movs r0, #0x24 + ldrsh r3, [r4, r0] + asrs r3, r3, #0x10 + adds r3, #0x10 + adds r0, r4, #0 + bl sub_0806FCB8 + cmp r0, #0 + beq _080493E0 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0xc0 + strh r0, [r4, #0x24] + adds r0, r4, #0 + adds r0, #0x7e + strh r5, [r0] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_080493E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080493E4 +sub_080493E4: @ 0x080493E4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x18 + strb r0, [r4, #0x15] + movs r1, #0x1f + ands r0, r1 + cmp r0, #0 + bne _0804943A + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r3, _08049458 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + adds r2, #0xa8 + ldrh r3, [r3, #8] + adds r3, #0x80 + bl sub_080045D4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + subs r0, r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #8 + bne _0804943A + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #7 + strb r0, [r4, #0xf] +_0804943A: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 +_08049458: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804945C +sub_0804945C: @ 0x0804945C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r1, r0, #0x18 + strb r1, [r4, #0x15] + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _0804948C + movs r0, #0x1f + ands r1, r0 + cmp r1, #0 + bne _080494B2 + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x5a + strb r0, [r4, #0xe] + b _080494B2 +_0804948C: + adds r0, r4, #0 + bl sub_08049A8C + cmp r0, #0 + beq _080494B2 + movs r0, #0x23 + bl sub_080A7EE0 + adds r2, r0, #0 + cmp r2, #0 + beq _080494B2 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + str r4, [r2, #0x50] + adds r0, r2, #0 + bl sub_08016A04 +_080494B2: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080494D0 +sub_080494D0: @ 0x080494D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r1, r0, #1 + strb r1, [r4, #0xe] + movs r2, #0xff + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08049518 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r2 + cmp r0, #0 + bne _0804950E + movs r0, #5 + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x24] + adds r0, #0x40 + strh r0, [r4, #0x24] + b _08049534 +_0804950E: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0xa + strb r0, [r4, #0xe] + b _08049534 +_08049518: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x50 + bne _08049534 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + movs r0, #0x62 + bl CreateEnemy + cmp r0, #0 + beq _08049534 + str r4, [r0, #0x50] +_08049534: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08049538 +sub_08049538: @ 0x08049538 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldr r0, _08049570 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, #0xa8 + ldrh r2, [r0, #8] + adds r2, #0x80 + adds r0, r4, #0 + movs r3, #0x70 + bl sub_0806FCB8 + adds r1, r0, #0 + cmp r1, #0 + bne _0804956E + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0804956E: + pop {r4, pc} + .align 2, 0 +_08049570: .4byte gUnk_03000BF0 + + thumb_func_start sub_08049574 +sub_08049574: @ 0x08049574 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08049590 @ =gUnk_080D29A8 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08049590: .4byte gUnk_080D29A8 + + thumb_func_start sub_08049594 +sub_08049594: @ 0x08049594 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _080495C8 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + movs r3, #0x2e + ldrsh r1, [r4, r3] + subs r1, #0xa8 + subs r0, r0, r1 + ldrh r1, [r2, #8] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r2, #0x80 + subs r1, r1, r2 + bl sub_080045DA + ldrb r2, [r4, #0x15] + cmp r0, r2 + beq _080495D2 + subs r0, r0, r2 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080495CC + subs r0, r2, #1 + strb r0, [r4, #0x15] + b _080495DC + .align 2, 0 +_080495C8: .4byte gUnk_03000BF0 +_080495CC: + adds r0, r2, #1 + strb r0, [r4, #0x15] + b _080495DC +_080495D2: + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] +_080495DC: + adds r0, r4, #0 + bl sub_08049944 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08047EA4 + pop {r4, pc} + + thumb_func_start sub_080495F8 +sub_080495F8: @ 0x080495F8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08049654 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, #0xa8 + ldrh r2, [r0, #8] + adds r2, #0x80 + adds r0, r4, #0 + movs r3, #0x28 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804963C + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x2d + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08049658 @ =gUnk_080D29B8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x76 + strh r0, [r1] +_0804963C: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + pop {r4, pc} + .align 2, 0 +_08049654: .4byte gUnk_03000BF0 +_08049658: .4byte gUnk_080D29B8 + + thumb_func_start sub_0804965C +sub_0804965C: @ 0x0804965C + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x76 + adds r0, #0x74 + ldrh r0, [r0] + ldrh r2, [r1] + adds r0, r0, r2 + strh r0, [r1] + lsrs r0, r0, #8 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0804969A + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] +_0804969A: + pop {r4, pc} + + thumb_func_start sub_0804969C +sub_0804969C: @ 0x0804969C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080496C8 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080496C8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080496CC +sub_080496CC: @ 0x080496CC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080496E8 @ =gUnk_080D29C0 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_080496E8: .4byte gUnk_080D29C0 + + thumb_func_start sub_080496EC +sub_080496EC: @ 0x080496EC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_08079F8C + cmp r0, #0 + beq _08049720 + ldr r0, _0804971C @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08049720 + movs r0, #2 + bl sub_08078A90 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08049724 + .align 2, 0 +_0804971C: .4byte gLinkEntity +_08049720: + movs r0, #1 + strb r0, [r4, #0xd] +_08049724: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + + thumb_func_start sub_0804972C +sub_0804972C: @ 0x0804972C + push {r4, lr} + adds r4, r0, #0 + bl sub_08079F8C + cmp r0, #0 + beq _08049750 + ldr r0, _08049758 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r0, r1] + cmp r0, #0 + bne _08049750 + movs r0, #2 + bl sub_08078A90 + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #1 + strb r0, [r4, #0xe] +_08049750: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + .align 2, 0 +_08049758: .4byte gLinkEntity + + thumb_func_start sub_0804975C +sub_0804975C: @ 0x0804975C + 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 _0804977E + movs r0, #3 + strb r0, [r1, #0xd] + movs r0, #0xb4 + strb r0, [r1, #0xe] + adds r0, #0x4c + strh r0, [r1, #0x24] + ldrb r0, [r1, #0x15] + subs r0, #0x40 + strb r0, [r1, #0x15] +_0804977E: + adds r0, r1, #0 + bl sub_08049944 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049788 +sub_08049788: @ 0x08049788 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049AB0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080497B8 + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0x15] + movs r0, #0x94 + lsls r0, r0, #1 + bl sub_080A3268 + b _080497C6 +_080497B8: + ldrb r0, [r4, #0x15] + movs r1, #0x80 + eors r0, r1 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08049B20 +_080497C6: + adds r0, r4, #0 + bl sub_08049944 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080497D0 +sub_080497D0: @ 0x080497D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049AB0 + ldrb r0, [r4, #0x15] + movs r1, #0x80 + lsls r1, r1, #1 + subs r1, r1, r0 + movs r0, #0xff + ands r1, r0 + lsls r1, r1, #8 + adds r0, r4, #0 + bl sub_08049998 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08049802 + movs r0, #5 + strb r0, [r4, #0xd] + movs r1, #0x10 + bl sub_08050054 +_08049802: + pop {r4, pc} + + thumb_func_start sub_08049804 +sub_08049804: @ 0x08049804 + push {r4, lr} + adds r4, r0, #0 + bl sub_08049944 + ldr r0, _0804987C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08049878 + movs r0, #6 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r0, r3, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r2, [r4, #0x10] + movs r1, #0x7f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r2, [r4, #0x10] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r4, #0x10] + ldrb r2, [r4, #0x18] + adds r0, r3, #0 + ands r0, r2 + strb r0, [r4, #0x18] + ldr r4, [r4, #0x54] + ldrb r0, [r4, #0x10] + ands r1, r0 + strb r1, [r4, #0x10] + ldrb r0, [r4, #0x18] + ands r3, r0 + strb r3, [r4, #0x18] + ldr r4, _08049880 @ =gLinkEntity + ldr r1, _08049884 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xa8 + movs r2, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x80 + strh r0, [r4, #0x32] + strb r2, [r4, #0x14] + bl sub_080809D4 + movs r0, #4 + movs r1, #4 + bl sub_08050054 +_08049878: + pop {r4, pc} + .align 2, 0 +_0804987C: .4byte gUnk_03000FD0 +_08049880: .4byte gLinkEntity +_08049884: .4byte gUnk_03000BF0 + + thumb_func_start sub_08049888 +sub_08049888: @ 0x08049888 + push {lr} + adds r1, r0, #0 + ldr r0, _080498B0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080498AE + movs r0, #7 + strb r0, [r1, #0xd] + movs r0, #0xa0 + strb r0, [r1, #0xe] + movs r0, #0x72 + bl sub_080A3268 + movs r0, #0x7c + bl sub_0807CCC8 + movs r0, #1 + bl sub_08078A90 +_080498AE: + pop {pc} + .align 2, 0 +_080498B0: .4byte gUnk_03000FD0 + + thumb_func_start sub_080498B4 +sub_080498B4: @ 0x080498B4 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080498C8 + bl sub_0805E780 + b _0804993E +_080498C8: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bne _080498E4 + movs r0, #0x36 + movs r1, #0xca + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _080498E0 @ =0x00004081 + movs r1, #0xca + b _0804990E + .align 2, 0 +_080498E0: .4byte 0x00004081 +_080498E4: + cmp r0, #0x18 + bne _080498FC + movs r0, #0x36 + movs r1, #0x8a + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _080498F8 @ =0x00004081 + movs r1, #0x8a + b _0804990E + .align 2, 0 +_080498F8: .4byte 0x00004081 +_080498FC: + cmp r0, #0x20 + bne _08049920 + movs r0, #0x36 + movs r1, #0x4a + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _0804991C @ =0x00004081 + movs r1, #0x4a +_0804990E: + movs r2, #2 + bl sub_0800015E + movs r0, #0x71 + bl sub_080A3268 + b _0804993E + .align 2, 0 +_0804991C: .4byte 0x00004081 +_08049920: + cmp r0, #0x28 + bne _0804993E + movs r0, #0x36 + movs r1, #0xa + movs r2, #1 + bl sub_0807B7D8 + ldr r0, _08049940 @ =0x00004081 + movs r1, #0xa + movs r2, #2 + bl sub_0800015E + movs r0, #0x71 + bl sub_080A3268 +_0804993E: + pop {pc} + .align 2, 0 +_08049940: .4byte 0x00004081 + + thumb_func_start sub_08049944 +sub_08049944: @ 0x08049944 + push {r4, r5, lr} + adds r4, r0, #0 + adds r4, #0x7c + ldrb r3, [r4] + lsls r2, r3, #1 + movs r1, #0x7f + ands r2, r1 + movs r1, #0x80 + ands r1, r3 + orrs r2, r1 + strb r2, [r4] + ldr r5, _08049990 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r3, #0x32 + ldrsh r2, [r5, r3] + movs r3, #0x20 + bl sub_0806FCB8 + cmp r0, #0 + beq _0804998C + ldr r2, _08049994 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r2, #0x14] + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _0804998C + ldr r0, [r2, #0x30] + movs r1, #2 + orrs r0, r1 + str r0, [r2, #0x30] + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + strb r0, [r4] +_0804998C: + pop {r4, r5, pc} + .align 2, 0 +_08049990: .4byte gLinkEntity +_08049994: .4byte gUnk_03003F80 + + thumb_func_start sub_08049998 +sub_08049998: @ 0x08049998 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08049944 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08047EA4 + movs r0, #0x2e + ldrsh r4, [r5, r0] + movs r2, #0x32 + ldrsh r6, [r5, r2] + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + adds r0, r5, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080499EA + bl sub_08079F8C + cmp r0, #0 + beq _080499EA + ldr r0, _080499EC @ =gLinkEntity + ldrh r1, [r5, #0x2e] + subs r1, r1, r4 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r5, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_080499EA: + pop {r4, r5, r6, pc} + .align 2, 0 +_080499EC: .4byte gLinkEntity + + thumb_func_start sub_080499F0 +sub_080499F0: @ 0x080499F0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + beq _08049A82 + ldr r5, _08049A84 @ =gLinkEntity + movs r1, #0x36 + ldrsh r0, [r5, r1] + cmp r0, #0 + bne _08049A82 + bl sub_08079F8C + cmp r0, #0 + beq _08049A82 + adds r2, r4, #0 + adds r2, #0x7c + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _08049A82 + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r3, #0x32 + ldrsh r2, [r4, r3] + adds r0, r5, #0 + movs r3, #0x24 + bl sub_0806FCB8 + cmp r0, #0 + beq _08049A7E + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08049A7E + movs r1, #0x2e + ldrsh r0, [r5, r1] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r5, r3] + movs r3, #0x32 + ldrsh r2, [r4, r3] + subs r1, r1, r2 + bl sub_080045DA + ldr r3, _08049A88 @ =gUnk_080C9160 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r2, #0 + ldrsh r1, [r1, r2] + lsls r2, r1, #3 + adds r2, r2, r1 + lsls r2, r2, #0xa + ldr r1, [r4, #0x2c] + adds r1, r1, r2 + str r1, [r5, #0x2c] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r3, #0 + ldrsh r0, [r0, r3] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #0xa + ldr r0, [r4, #0x30] + subs r0, r0, r1 + str r0, [r5, #0x30] +_08049A7E: + movs r0, #0 + strb r0, [r6] +_08049A82: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049A84: .4byte gLinkEntity +_08049A88: .4byte gUnk_080C9160 + + thumb_func_start sub_08049A8C +sub_08049A8C: @ 0x08049A8C + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08049AAA + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + cmp r1, #0 + beq _08049AAA + movs r0, #1 + b _08049AAC +_08049AAA: + movs r0, #0 +_08049AAC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049AB0 +sub_08049AB0: @ 0x08049AB0 + push {r4, r5, lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xf] + adds r0, #1 + strb r0, [r2, #0xf] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08049B18 + adds r0, r2, #0 + movs r1, #0x48 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08049B18 + bl sub_08000E50 + movs r3, #0x30 + adds r1, r0, #0 + ands r1, r3 + ldr r5, _08049B1C @ =0x0000FFE8 + adds r2, r5, #0 + adds r1, r2, r1 + ldrh r5, [r4, #0x2e] + adds r1, r1, r5 + strh r1, [r4, #0x2e] + lsrs r0, r0, #8 + ands r0, r3 + adds r2, r2, r0 + ldrh r0, [r4, #0x32] + adds r2, r2, r0 + strh r2, [r4, #0x32] + 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] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 +_08049B18: + pop {r4, r5, pc} + .align 2, 0 +_08049B1C: .4byte 0x0000FFE8 + + thumb_func_start sub_08049B20 +sub_08049B20: @ 0x08049B20 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08049944 + movs r0, #0x2e + ldrsh r5, [r4, r0] + movs r2, #0x32 + ldrsh r6, [r4, r2] + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + adds r0, #0x7c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08049B68 + bl sub_08079F8C + cmp r0, #0 + beq _08049B68 + ldr r0, _08049B6C @ =gLinkEntity + ldrh r1, [r4, #0x2e] + subs r1, r1, r5 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrh r1, [r4, #0x32] + subs r1, r1, r6 + ldrh r2, [r0, #0x32] + adds r1, r1, r2 + strh r1, [r0, #0x32] +_08049B68: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049B6C: .4byte gLinkEntity + + thumb_func_start sub_08049B70 +sub_08049B70: @ 0x08049B70 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _08049BB0 + adds r0, #1 + strb r0, [r5, #0xc] + ldrb r0, [r5, #0xa] + lsls r0, r0, #4 + ldr r1, _08049BEC @ =gUnk_080D29E0 + adds r0, r0, r1 + bl sub_080028F4 + adds r4, r5, #0 + adds r4, #0x68 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _08049B9C + bl sub_0805E780 +_08049B9C: + ldrb r0, [r4] + cmp r0, #7 + bhi _08049BB0 + movs r0, #0x67 + bl GetInventoryValue + cmp r0, #0 + bne _08049BB0 + movs r0, #8 + strb r0, [r4] +_08049BB0: + adds r0, r5, #0 + bl sub_08049C2C + cmp r0, #0 + beq _08049C20 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r1, [r0] + cmp r1, #0 + blt _08049C16 + cmp r1, #7 + ble _08049BF0 + cmp r1, #8 + bne _08049C16 + movs r0, #0x40 + movs r1, #0x60 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08049C16 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + b _08049C16 + .align 2, 0 +_08049BEC: .4byte gUnk_080D29E0 +_08049BF0: + ldr r0, _08049C24 @ =gUnk_080D2AB0 + adds r0, r1, r0 + ldrb r2, [r0] + movs r0, #0x96 + movs r1, #7 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _08049C16 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x32] + adds r0, #0x10 + strh r0, [r4, #0x32] + ldr r0, _08049C28 @ =0x0000FFE0 + strh r0, [r4, #0x36] +_08049C16: + adds r0, r5, #0 + bl sub_08049CF4 + bl sub_0805E780 +_08049C20: + pop {r4, r5, pc} + .align 2, 0 +_08049C24: .4byte gUnk_080D2AB0 +_08049C28: .4byte 0x0000FFE0 + + thumb_func_start sub_08049C2C +sub_08049C2C: @ 0x08049C2C + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r3, _08049CA4 @ =gLinkEntity + ldrb r0, [r3, #0xc] + cmp r0, #6 + bne _08049CA8 + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r4, #0x2e + ldrsh r0, [r2, r4] + subs r1, r1, r0 + movs r5, #6 + movs r4, #0x80 + lsls r4, r4, #8 + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + beq _08049C52 + movs r5, #2 +_08049C52: + adds r1, #0x28 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4f + bhi _08049CA8 + movs r6, #0x32 + ldrsh r1, [r3, r6] + movs r6, #0x32 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + adds r0, r1, #0 + ands r0, r4 + rsbs r0, r0, #0 + asrs r2, r0, #0x1f + movs r0, #4 + ands r2, r0 + adds r1, #0x28 + lsls r0, r1, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x4f + bhi _08049CA8 + ldrb r0, [r3, #0x14] + cmp r0, #0 + bne _08049C86 + cmp r2, #0 + beq _08049C9E +_08049C86: + cmp r0, #4 + bne _08049C8E + cmp r2, #4 + beq _08049C9E +_08049C8E: + cmp r0, #6 + bne _08049C96 + cmp r5, #6 + beq _08049C9E +_08049C96: + cmp r0, #2 + bne _08049CA8 + cmp r5, #2 + bne _08049CA8 +_08049C9E: + movs r0, #1 + b _08049CAA + .align 2, 0 +_08049CA4: .4byte gLinkEntity +_08049CA8: + movs r0, #0 +_08049CAA: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08049CAC +sub_08049CAC: @ 0x08049CAC + push {lr} + adds r2, r0, #0 + ldr r1, _08049CC8 @ =gUnk_080D2ABC + ldrb r0, [r2, #0xf] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + cmp r1, #0 + beq _08049CCC + adds r0, r2, #0 + bl _call_via_r1 + b _08049CD0 + .align 2, 0 +_08049CC8: .4byte gUnk_080D2ABC +_08049CCC: + bl sub_0805E780 +_08049CD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049CD4 +sub_08049CD4: @ 0x08049CD4 + push {r4, lr} + movs r0, #1 + rsbs r0, r0, #0 + ldr r4, _08049CEC @ =gUnk_02024050 + adds r1, r4, #0 + movs r2, #0x40 + bl _DmaFill32 + ldr r0, _08049CF0 @ =gUnk_020354B0 + str r4, [r0] + pop {r4, pc} + .align 2, 0 +_08049CEC: .4byte gUnk_02024050 +_08049CF0: .4byte gUnk_020354B0 + + thumb_func_start sub_08049CF4 +sub_08049CF4: @ 0x08049CF4 + push {lr} + adds r0, #0x6c + ldrb r3, [r0] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08049D14 + ldr r0, _08049D18 @ =gUnk_020354B0 + ldr r2, [r0] + movs r0, #0x1f + ands r3, r0 + movs r1, #1 + lsls r1, r3 + ldr r0, [r2, #4] + orrs r0, r1 + str r0, [r2, #4] +_08049D14: + pop {pc} + .align 2, 0 +_08049D18: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D1C +sub_08049D1C: @ 0x08049D1C + ldr r1, _08049D2C @ =gUnk_020354B0 + ldr r1, [r1] + ldr r1, [r1, #4] + lsrs r1, r0 + movs r0, #1 + bics r0, r1 + bx lr + .align 2, 0 +_08049D2C: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D30 +sub_08049D30: @ 0x08049D30 + push {r4, r5, r6, lr} + ldr r1, _08049D58 @ =gUnk_020354B0 + ldr r0, _08049D5C @ =gUnk_02024050 + str r0, [r1] + adds r5, r1, #0 + ldr r6, _08049D60 @ =gUnk_03000BF0 + ldr r4, _08049D64 @ =0x0000FFFF +_08049D3E: + ldr r3, [r5] + ldrh r0, [r3] + ldrh r2, [r6, #4] + adds r1, r4, #0 + ands r1, r0 + adds r0, r4, #0 + ands r0, r2 + cmp r1, r0 + bne _08049D68 + adds r0, r3, #0 + bl sub_08049DCC + b _08049D7C + .align 2, 0 +_08049D58: .4byte gUnk_020354B0 +_08049D5C: .4byte gUnk_02024050 +_08049D60: .4byte gUnk_03000BF0 +_08049D64: .4byte 0x0000FFFF +_08049D68: + adds r1, r3, #0 + adds r1, #8 + str r1, [r5] + ldr r0, _08049D80 @ =gUnk_02024090 + cmp r1, r0 + blo _08049D3E + bl sub_08049D88 + ldr r1, _08049D84 @ =gUnk_020354B0 + str r0, [r1] +_08049D7C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08049D80: .4byte gUnk_02024090 +_08049D84: .4byte gUnk_020354B0 + + thumb_func_start sub_08049D88 +sub_08049D88: @ 0x08049D88 + push {r4, r5, lr} + ldr r4, _08049DC0 @ =gUnk_02024050 + adds r1, r4, #0 + adds r1, #8 + ldr r3, _08049DC4 @ =gUnk_03000BF0 + adds r2, r4, #0 + adds r2, #0x40 +_08049D96: + ldrh r0, [r1, #2] + ldrh r5, [r4, #2] + cmp r0, r5 + bls _08049DA0 + adds r4, r1, #0 +_08049DA0: + adds r1, #8 + cmp r1, r2 + blo _08049D96 + ldrb r0, [r3, #4] + movs r1, #0 + strb r0, [r4] + ldrb r0, [r3, #5] + strb r0, [r4, #1] + ldr r0, _08049DC8 @ =0x0000FFFF + strh r0, [r4, #2] + str r1, [r4, #4] + adds r0, r4, #0 + bl sub_08049DCC + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_08049DC0: .4byte gUnk_02024050 +_08049DC4: .4byte gUnk_03000BF0 +_08049DC8: .4byte 0x0000FFFF + + thumb_func_start sub_08049DCC +sub_08049DCC: @ 0x08049DCC + push {r4, lr} + adds r2, r0, #0 + ldr r1, _08049DF0 @ =gUnk_02024050 + adds r3, r1, #0 + adds r3, #0x40 +_08049DD6: + ldrh r0, [r1, #2] + ldrh r4, [r2, #2] + cmp r0, r4 + bhs _08049DE2 + adds r0, #1 + strh r0, [r1, #2] +_08049DE2: + adds r1, #8 + cmp r1, r3 + blo _08049DD6 + movs r0, #0 + strh r0, [r2, #2] + pop {r4, pc} + .align 2, 0 +_08049DF0: .4byte gUnk_02024050 + + thumb_func_start sub_08049DF4 +sub_08049DF4: @ 0x08049DF4 + push {lr} + adds r2, r0, #0 + ldr r0, _08049E10 @ =gUnk_020000B0 + ldr r0, [r0] + cmp r0, #0 + bne _08049E0C + ldr r1, _08049E14 @ =gUnk_080D3BE8 + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08049E0C: + pop {pc} + .align 2, 0 +_08049E10: .4byte gUnk_020000B0 +_08049E14: .4byte gUnk_080D3BE8 + + thumb_func_start sub_08049E18 +sub_08049E18: @ 0x08049E18 + push {lr} + ldr r1, _08049E38 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E48 + ldr r0, [r1, #0x30] + ldr r1, _08049E3C @ =0x22189B75 + ands r0, r1 + cmp r0, #0 + bne _08049E48 + ldr r1, _08049E40 @ =gUnk_020000B0 + ldr r0, _08049E44 @ =gLinkEntity + str r0, [r1] + b _08049E4A + .align 2, 0 +_08049E38: .4byte gUnk_03003F80 +_08049E3C: .4byte 0x22189B75 +_08049E40: .4byte gUnk_020000B0 +_08049E44: .4byte gLinkEntity +_08049E48: + movs r0, #0 +_08049E4A: + pop {pc} + + thumb_func_start sub_08049E4C +sub_08049E4C: @ 0x08049E4C + push {lr} + ldr r1, _08049E6C @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E7C + ldr r0, [r1, #0x30] + ldr r1, _08049E70 @ =0x22189BF5 + ands r0, r1 + cmp r0, #0 + bne _08049E7C + ldr r1, _08049E74 @ =gUnk_020000B0 + ldr r0, _08049E78 @ =gLinkEntity + str r0, [r1] + b _08049E7E + .align 2, 0 +_08049E6C: .4byte gUnk_03003F80 +_08049E70: .4byte 0x22189BF5 +_08049E74: .4byte gUnk_020000B0 +_08049E78: .4byte gLinkEntity +_08049E7C: + movs r0, #0 +_08049E7E: + pop {pc} + + thumb_func_start sub_08049E80 +sub_08049E80: @ 0x08049E80 + push {lr} + ldr r1, _08049E9C @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049E98 + ldr r0, [r1, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08049EA0 +_08049E98: + movs r0, #0 + b _08049EA6 + .align 2, 0 +_08049E9C: .4byte gUnk_03003F80 +_08049EA0: + ldr r1, _08049EA8 @ =gUnk_020000B0 + ldr r0, _08049EAC @ =gLinkEntity + str r0, [r1] +_08049EA6: + pop {pc} + .align 2, 0 +_08049EA8: .4byte gUnk_020000B0 +_08049EAC: .4byte gLinkEntity + + thumb_func_start sub_08049EB0 +sub_08049EB0: @ 0x08049EB0 + push {lr} + ldr r1, _08049ED0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08049EE0 + ldr r0, [r1, #0x30] + ldr r1, _08049ED4 @ =0x00080190 + ands r0, r1 + cmp r0, #0 + bne _08049EE0 + ldr r1, _08049ED8 @ =gUnk_020000B0 + ldr r0, _08049EDC @ =gLinkEntity + str r0, [r1] + b _08049EE2 + .align 2, 0 +_08049ED0: .4byte gUnk_03003F80 +_08049ED4: .4byte 0x00080190 +_08049ED8: .4byte gUnk_020000B0 +_08049EDC: .4byte gLinkEntity +_08049EE0: + movs r0, #0 +_08049EE2: + pop {pc} + + thumb_func_start sub_08049EE4 +sub_08049EE4: @ 0x08049EE4 + push {r4, r5, lr} + mov ip, r0 + adds r0, #0x70 + mov r1, ip + adds r1, #0x6e + ldrb r2, [r1] + lsls r2, r2, #2 + ldrh r0, [r0] + adds r2, r2, r0 + lsls r2, r2, #0x10 + lsrs r2, r2, #0x10 + adds r1, #4 + mov r0, ip + adds r0, #0x6f + ldrb r3, [r0] + lsls r3, r3, #2 + ldrh r1, [r1] + adds r3, r3, r1 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x10 + mov r1, ip + movs r4, #0x2e + ldrsh r0, [r1, r4] + movs r5, #0x32 + ldrsh r1, [r1, r5] + bl sub_080045D4 + pop {r4, r5, pc} + + thumb_func_start sub_08049F1C +sub_08049F1C: @ 0x08049F1C + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + adds r0, #0x38 + adds r1, #0x38 + ldrb r2, [r0] + ldrb r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _08049F5E + movs r0, #0x2e + ldrsh r2, [r3, r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r3, #0x32 + ldrsh r0, [r4, r3] + subs r1, r1, r0 + adds r3, r5, #0 + muls r3, r5, r3 + adds r0, r2, #0 + muls r0, r2, r0 + adds r2, r1, #0 + muls r2, r1, r2 + adds r1, r2, #0 + adds r0, r0, r1 + cmp r3, r0 + blt _08049F5E + movs r0, #1 + b _08049F60 +_08049F5E: + movs r0, #0 +_08049F60: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08049F64 +sub_08049F64: @ 0x08049F64 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _08049F80 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08049F1C + b _08049F82 +_08049F80: + movs r0, #0 +_08049F82: + pop {r4, r5, pc} + + thumb_func_start sub_08049F84 +sub_08049F84: @ 0x08049F84 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _08049F9C + adds r0, r4, #0 + bl sub_080045C4 + b _08049F9E +_08049F9C: + movs r0, #0xff +_08049F9E: + pop {r4, pc} + + thumb_func_start sub_08049FA0 +sub_08049FA0: @ 0x08049FA0 + push {lr} + adds r3, r0, #0 + adds r0, #0x6e + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x2e + ldrsh r0, [r3, r1] + adds r1, r3, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _08049FD6 + adds r0, r3, #0 + adds r0, #0x6f + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r1, r3, #0 + adds r1, #0x72 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _08049FD6 + movs r0, #1 + b _08049FD8 +_08049FD6: + movs r0, #0 +_08049FD8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08049FDC +sub_08049FDC: @ 0x08049FDC + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + bl sub_08049DF4 + adds r3, r0, #0 + cmp r3, #0 + beq _0804A020 + adds r0, r4, #0 + adds r0, #0x6e + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x2e + ldrsh r0, [r3, r1] + adds r1, r4, #0 + adds r1, #0x70 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0804A020 + adds r0, r4, #0 + adds r0, #0x6f + ldrb r2, [r0] + lsls r2, r2, #3 + movs r1, #0x32 + ldrsh r0, [r3, r1] + adds r1, r4, #0 + adds r1, #0x72 + ldrh r1, [r1] + subs r0, r0, r1 + cmp r2, r0 + blo _0804A020 + movs r0, #1 + b _0804A022 +_0804A020: + movs r0, #0 +_0804A022: + pop {r4, pc} + + thumb_func_start sub_0804A024 +sub_0804A024: @ 0x0804A024 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_08049DF4 + adds r1, r0, #0 + cmp r1, #0 + beq _0804A040 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0804A044 + b _0804A042 +_0804A040: + movs r0, #0xff +_0804A042: + pop {r4, r5, pc} + + thumb_func_start sub_0804A044 +sub_0804A044: @ 0x0804A044 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r7, r0, #0 + mov r8, r1 + mov r0, r8 + adds r0, #0x38 + movs r1, #0x38 + adds r1, r1, r7 + mov sl, r1 + ldrb r1, [r0] + mov r3, sl + ldrb r0, [r3] + ands r0, r1 + cmp r0, #0 + beq _0804A15A + movs r5, #0 + mov r0, r8 + movs r3, #0x2e + ldrsh r1, [r0, r3] + ldr r0, [r0, #0x48] + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + movs r3, #0x2e + ldrsh r0, [r7, r3] + subs r1, r1, r0 + ldr r4, [r7, #0x48] + movs r0, #0 + ldrsb r0, [r4, r0] + subs r6, r1, r0 + lsrs r3, r2, #1 + adds r0, r6, r3 + cmp r2, r0 + blo _0804A096 + movs r5, #1 +_0804A096: + lsls r0, r2, #1 + mov sb, r0 + adds r0, r6, r2 + cmp sb, r0 + blo _0804A0A4 + movs r0, #2 + orrs r5, r0 +_0804A0A4: + mov r1, r8 + movs r0, #0x32 + ldrsh r1, [r1, r0] + str r1, [sp] + mov r1, ip + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + mov ip, r1 + ldr r0, [sp] + add r0, ip + str r0, [sp] + movs r0, #0x32 + ldrsh r1, [r7, r0] + ldr r0, [sp] + subs r0, r0, r1 + movs r1, #1 + ldrsb r1, [r4, r1] + subs r4, r0, r1 + adds r0, r4, r3 + cmp r2, r0 + blo _0804A0D4 + movs r0, #4 + orrs r5, r0 +_0804A0D4: + adds r0, r4, r2 + cmp sb, r0 + blo _0804A0DE + movs r0, #8 + orrs r5, r0 +_0804A0DE: + cmp r5, #0 + beq _0804A15A + movs r0, #5 + ands r0, r5 + cmp r0, #0xa + beq _0804A15A + mov r1, sl + ldrb r0, [r1] + bl sub_0808094C + mov sb, r0 + cmp r6, #0 + bge _0804A0FA + rsbs r6, r6, #0 +_0804A0FA: + cmp r4, #0 + bge _0804A100 + rsbs r4, r4, #0 +_0804A100: + cmp r6, r4 + bge _0804A12E + movs r0, #1 + ands r0, r5 + cmp r0, #0 + beq _0804A11A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A168 + cmp r0, #0xff + bne _0804A15C +_0804A11A: + movs r0, #4 + ands r5, r0 + cmp r5, #0 + beq _0804A15A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A318 + b _0804A156 +_0804A12E: + movs r0, #4 + ands r0, r5 + cmp r0, #0 + beq _0804A144 + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A318 + cmp r0, #0xff + bne _0804A15C +_0804A144: + movs r0, #1 + ands r5, r0 + cmp r5, #0 + beq _0804A15A + adds r0, r7, #0 + mov r1, r8 + mov r2, sb + bl sub_0804A168 +_0804A156: + cmp r0, #0xff + bne _0804A15C +_0804A15A: + movs r0, #0xff +_0804A15C: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A168 +sub_0804A168: @ 0x0804A168 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + adds r4, r0, #0 + mov sb, r1 + adds r5, r2, #0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0804A248 + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r0, #4 + movs r0, #0xf + mov sl, r0 + adds r0, r2, #0 + mov r1, sl + ands r0, r1 + movs r7, #5 + cmp r0, #7 + bhi _0804A19E + movs r7, #0xa +_0804A19E: + ldr r3, _0804A240 @ =gUnk_03000BF0 + mov r8, r3 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + mov ip, r3 + mov r2, ip + subs r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r3, #0x32 + ldrsh r2, [r2, r3] + mov r3, ip + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A244 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + bne _0804A1EC + b _0804A308 +_0804A1EC: + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r2, r0, #4 + mov r3, sl + eors r7, r3 + mov r0, r8 + ldrh r1, [r0, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + mov r4, r8 + ldrh r3, [r4, #8] + adds r2, r3, #0 + subs r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r4, #0x32 + ldrsh r2, [r2, r4] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A244 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r0, #0x10 + b _0804A30A + .align 2, 0 +_0804A240: .4byte gUnk_03000BF0 +_0804A244: .4byte 0x00002004 +_0804A248: + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r0, #4 + adds r0, r2, #0 + movs r1, #0xf + ands r0, r1 + movs r7, #5 + cmp r0, #7 + bhi _0804A25C + movs r7, #0xa +_0804A25C: + ldr r3, _0804A300 @ =gUnk_03000BF0 + mov r8, r3 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + mov sl, r3 + mov r2, sl + adds r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r2, sb + movs r3, #0x32 + ldrsh r2, [r2, r3] + mov r3, sl + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r2, _0804A304 @ =0x00002004 + adds r0, r0, r2 + adds r0, r5, r0 + adds r1, r1, r2 + adds r1, r5, r1 + movs r2, #0x40 + rsbs r2, r2, #0 + mov sl, r2 + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r3, #0x2e + ldrsh r0, [r4, r3] + adds r2, r0, #4 + movs r0, #0xf + eors r7, r0 + mov r3, r8 + ldrh r1, [r3, #6] + subs r1, r2, r1 + lsrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r4, r2] + ldrh r3, [r3, #8] + adds r2, r3, #0 + adds r2, #0xa + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r0, r1 + mov r4, sb + movs r2, #0x32 + ldrsh r4, [r4, r2] + subs r2, r4, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldr r3, _0804A304 @ =0x00002004 + adds r0, r0, r3 + adds r0, r5, r0 + adds r1, r1, r3 + adds r1, r5, r1 + mov r2, sl + adds r3, r7, #0 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A308 + movs r0, #0 + b _0804A30A + .align 2, 0 +_0804A300: .4byte gUnk_03000BF0 +_0804A304: .4byte 0x00002004 +_0804A308: + movs r0, #0xff +_0804A30A: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804A318 +sub_0804A318: @ 0x0804A318 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + mov sl, r1 + adds r6, r2, #0 + movs r0, #0x2e + ldrsh r1, [r1, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + cmp r1, r0 + ble _0804A3F0 + movs r4, #0x32 + ldrsh r0, [r5, r4] + subs r4, r0, #4 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + movs r2, #3 + mov r8, r2 + cmp r0, #7 + bhi _0804A34C + movs r0, #0xc + mov r8, r0 +_0804A34C: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _0804A3E8 @ =gUnk_03000BF0 + mov sb, r2 + ldrh r3, [r2, #6] + adds r1, r3, #0 + subs r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + movs r7, #0x3f + ands r0, r7 + ldrh r2, [r2, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r1, #0x2e + ldrsh r4, [r4, r1] + subs r1, r4, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A3EC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + bne _0804A394 + b _0804A4B0 +_0804A394: + movs r2, #0x32 + ldrsh r0, [r5, r2] + adds r4, r0, #4 + mov r0, r8 + movs r1, #0xf + eors r0, r1 + mov r8, r0 + movs r2, #0x2e + ldrsh r0, [r5, r2] + mov r5, sb + ldrh r3, [r5, #6] + adds r1, r3, #0 + subs r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + ldrh r2, [r5, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A3EC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r0, #8 + b _0804A4B2 + .align 2, 0 +_0804A3E8: .4byte gUnk_03000BF0 +_0804A3EC: .4byte 0x00002004 +_0804A3F0: + movs r4, #0x32 + ldrsh r0, [r5, r4] + subs r4, r0, #4 + adds r0, r4, #0 + movs r1, #0xf + ands r0, r1 + movs r2, #3 + mov r8, r2 + cmp r0, #7 + bhi _0804A408 + movs r0, #0xc + mov r8, r0 +_0804A408: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _0804A4A8 @ =gUnk_03000BF0 + mov sb, r2 + ldrh r3, [r2, #6] + adds r1, r3, #0 + adds r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + movs r7, #0x3f + ands r0, r7 + ldrh r2, [r2, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r1, #0x2e + ldrsh r4, [r4, r1] + subs r1, r4, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A4AC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + rsbs r2, r2, #0 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r2, #0x32 + ldrsh r0, [r5, r2] + adds r4, r0, #4 + mov r0, r8 + movs r1, #0xf + eors r0, r1 + mov r8, r0 + movs r2, #0x2e + ldrsh r0, [r5, r2] + mov r5, sb + ldrh r3, [r5, #6] + adds r1, r3, #0 + adds r1, #0xa + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r7 + ldrh r2, [r5, #8] + subs r2, r4, r2 + lsrs r2, r2, #4 + ands r2, r7 + lsls r2, r2, #6 + orrs r0, r2 + mov r4, sl + movs r5, #0x2e + ldrsh r1, [r4, r5] + subs r1, r1, r3 + asrs r1, r1, #4 + ands r1, r7 + orrs r1, r2 + ldr r2, _0804A4AC @ =0x00002004 + adds r0, r0, r2 + adds r0, r6, r0 + adds r1, r1, r2 + adds r1, r6, r1 + movs r2, #1 + rsbs r2, r2, #0 + mov r3, r8 + bl sub_0804A4BC + cmp r0, #0 + beq _0804A4B0 + movs r0, #0x18 + b _0804A4B2 + .align 2, 0 +_0804A4A8: .4byte gUnk_03000BF0 +_0804A4AC: .4byte 0x00002004 +_0804A4B0: + movs r0, #0xff +_0804A4B2: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A4BC +sub_0804A4BC: @ 0x0804A4BC + push {r4, lr} + adds r4, r0, #0 + cmp r4, r1 + beq _0804A4DE +_0804A4C4: + ldrb r0, [r4] + cmp r0, #0 + beq _0804A4D8 + cmp r0, #0xf + bhi _0804A4D4 + ands r0, r3 + cmp r0, #0 + beq _0804A4D8 +_0804A4D4: + movs r0, #0 + b _0804A4E0 +_0804A4D8: + adds r4, r4, r2 + cmp r4, r1 + bne _0804A4C4 +_0804A4DE: + movs r0, #1 +_0804A4E0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804A4E4 +sub_0804A4E4: @ 0x0804A4E4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r5, #0 + adds r7, #0x6d + ldrb r1, [r7] + movs r4, #0x40 + adds r0, r4, #0 + ands r0, r1 + movs r1, #4 + adds r2, r6, #0 + adds r2, #0x6d + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r6, #0 + adds r0, #0x6c + strb r1, [r0] + adds r0, r5, #0 + adds r0, #0x70 + ldrh r1, [r0] + adds r0, r6, #0 + adds r0, #0x70 + strh r1, [r0] + adds r0, r5, #0 + adds r0, #0x72 + ldrh r0, [r0] + adds r1, r6, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r5, #0 + adds r0, #0x6e + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x6f + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FA6C + ldrb r0, [r7] + ands r4, r0 + cmp r4, #0 + beq _0804A550 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08058800 +_0804A550: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0804A554 +sub_0804A554: @ 0x0804A554 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #4 + ldr r1, _0804A574 @ =gUnk_080D2C58 + adds r2, r0, r1 + ldrh r1, [r2] + ldr r0, _0804A578 @ =0x0000FFFF + cmp r1, r0 + bne _0804A570 + ldrb r0, [r3, #0xa] + lsls r0, r0, #4 + ldr r1, [r2, #4] + adds r2, r1, r0 +_0804A570: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0804A574: .4byte gUnk_080D2C58 +_0804A578: .4byte 0x0000FFFF + + thumb_func_start sub_0804A57C +sub_0804A57C: @ 0x0804A57C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804A58C + b _0804A6B6 +_0804A58C: + adds r0, r4, #0 + bl sub_0804A554 + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0804A6C0 + cmp r0, #0 + bne _0804A5A4 + movs r0, #0 + b _0804A6B8 +_0804A5A4: + ldrb r1, [r4, #0x10] + movs r0, #1 + adds r2, r1, #0 + orrs r2, r0 + strb r2, [r4, #0x10] + ldrb r1, [r5, #0xa] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0804A5BE + movs r0, #0x80 + orrs r2, r0 + strb r2, [r4, #0x10] +_0804A5BE: + ldrh r0, [r5, #8] + strh r0, [r4, #0x12] + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x1e + cmp r0, #0 + bne _0804A5DA + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1a + lsrs r1, r1, #0x1e + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] +_0804A5DA: + ldrb r1, [r5, #0xa] + lsls r1, r1, #0x1d + adds r3, r4, #0 + adds r3, #0x29 + movs r6, #7 + lsrs r1, r1, #0x1a + ldrb r2, [r3] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r5, #0xa] + movs r7, #3 + lsrs r1, r1, #6 + lsls r1, r1, #4 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r1, #0x24 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _0804A612 + ldrh r0, [r5, #0xc] + strh r0, [r4, #0x24] +_0804A612: + ldrb r0, [r5, #0xf] + adds r1, r4, #0 + adds r1, #0x3b + strb r0, [r1] + ldrb r0, [r5, #0xe] + adds r1, #4 + strb r0, [r1] + ldr r0, [r5, #4] + str r0, [r4, #0x48] + ldrb r0, [r5, #0xb] + adds r2, r4, #0 + adds r2, #0x45 + strb r0, [r2] + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0 + bne _0804A638 + movs r0, #0x41 + strb r0, [r1] +_0804A638: + adds r0, r4, #0 + bl sub_08016A04 + adds r5, r4, #0 + adds r5, #0x6d + ldrb r1, [r5] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0804A6B6 + ldr r2, _0804A6BC @ =gUnk_080D3E74 + ldrb r1, [r4, #9] + lsrs r0, r1, #3 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + ands r6, r1 + lsls r0, r6, #1 + asrs r2, r0 + movs r0, #3 + ands r2, r0 + cmp r2, #0 + beq _0804A6B6 + subs r1, r2, #1 + movs r0, #0xa9 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0804A6B6 + ldrb r0, [r4, #0x10] + strb r0, [r2, #0xe] + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x1e + lsrs r0, r0, #0x1e + strb r0, [r2, #0xf] + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r7 + strb r0, [r3] + str r4, [r2, #0x50] + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_0806FA24 + 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] + ldrb r0, [r5] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r5] +_0804A6B6: + movs r0, #1 +_0804A6B8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804A6BC: .4byte gUnk_080D3E74 + + thumb_func_start sub_0804A6C0 +sub_0804A6C0: @ 0x0804A6C0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrh r2, [r5] + lsls r1, r2, #0x10 + cmp r1, #0 + beq _0804A712 + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0804A6E8 + ldr r0, _0804A6E4 @ =0x000003FF + ands r0, r2 + adds r1, r4, #0 + adds r1, #0x60 + strh r0, [r1] + b _0804A712 + .align 2, 0 +_0804A6E4: .4byte 0x000003FF +_0804A6E8: + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r2 + cmp r0, #0 + beq _0804A702 + lsrs r1, r1, #0x14 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _0804A70A +_0804A702: + ldrh r1, [r5] + adds r0, r4, #0 + bl sub_080ADF80 +_0804A70A: + cmp r0, #0 + bne _0804A712 + movs r0, #0 + b _0804A71C +_0804A712: + ldrh r1, [r5, #2] + adds r0, r4, #0 + bl sub_0801D040 + movs r0, #1 +_0804A71C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804A720 +sub_0804A720: @ 0x0804A720 + push {r4, r5, r6, lr} + adds r2, r0, #0 + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0804A7D0 + ldrb r0, [r2, #9] + lsls r0, r0, #1 + ldr r1, _0804A76C @ =gUnk_080D3D94 + adds r3, r0, r1 + adds r4, r2, #0 + adds r4, #0x68 + ldrb r1, [r4, #0x16] + cmp r1, #0 + bne _0804A744 + ldrb r1, [r3] +_0804A744: + adds r0, r2, #0 + adds r0, #0x6e + strb r1, [r0] + adds r5, r0, #0 + ldrb r1, [r4, #0x17] + cmp r1, #0 + bne _0804A754 + ldrb r1, [r3, #1] +_0804A754: + adds r0, r2, #0 + adds r0, #0x6f + strb r1, [r0] + adds r6, r0, #0 + ldrh r1, [r4, #0x1c] + adds r3, r1, #0 + cmp r3, #0 + beq _0804A774 + ldr r0, _0804A770 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + adds r0, r1, r0 + b _0804A784 + .align 2, 0 +_0804A76C: .4byte gUnk_080D3D94 +_0804A770: .4byte gUnk_03000BF0 +_0804A774: + ldrb r0, [r5] + lsls r1, r0, #2 + movs r5, #0x2e + ldrsh r0, [r2, r5] + cmp r0, r1 + blt _0804A78C + ldrh r0, [r2, #0x2e] + subs r0, r0, r1 +_0804A784: + adds r1, r2, #0 + adds r1, #0x70 + strh r0, [r1] + b _0804A792 +_0804A78C: + adds r0, r2, #0 + adds r0, #0x70 + strh r3, [r0] +_0804A792: + ldrh r1, [r4, #0x1e] + adds r3, r1, #0 + cmp r3, #0 + beq _0804A7A8 + ldr r0, _0804A7A4 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r0, r1, r0 + b _0804A7B8 + .align 2, 0 +_0804A7A4: .4byte gUnk_03000BF0 +_0804A7A8: + ldrb r0, [r6] + lsls r1, r0, #2 + movs r4, #0x32 + ldrsh r0, [r2, r4] + cmp r0, r1 + blt _0804A7C0 + ldrh r0, [r2, #0x32] + subs r0, r0, r1 +_0804A7B8: + adds r1, r2, #0 + adds r1, #0x72 + strh r0, [r1] + b _0804A7C6 +_0804A7C0: + adds r0, r2, #0 + adds r0, #0x72 + strh r3, [r0] +_0804A7C6: + adds r2, #0x6d + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] +_0804A7D0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0804A7D4 +sub_0804A7D4: @ 0x0804A7D4 + push {lr} + ldrb r1, [r0, #9] + movs r2, #0 + bl sub_0804A7E0 + pop {pc} + + thumb_func_start sub_0804A7E0 +sub_0804A7E0: @ 0x0804A7E0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r5, r0, #0 + mov sb, r1 + mov sl, r2 + adds r6, r5, #0 + adds r6, #0x6d + ldrb r1, [r6] + movs r7, #1 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0 + beq _0804A864 + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804A80A + b _0804A982 +_0804A80A: + ldrb r1, [r5, #9] + movs r0, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + bne _0804A81C + b _0804A982 +_0804A81C: + adds r0, #0x6c + strb r7, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + movs r3, #1 + bl PositionRelative + str r5, [r4, #0x50] + ldrb r1, [r6] + movs r0, #2 + orrs r0, r1 + strb r0, [r6] + ldrb r0, [r5, #9] + cmp r0, #0x37 + bne _0804A84A + ldr r0, _0804A85C @ =gUnk_030010A0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0804A84A + bl sub_0805E780 +_0804A84A: + bl sub_0807CD9C + ldr r0, _0804A860 @ =0x80100000 + bl sub_080A3268 + bl sub_0805E780 + b _0804A982 + .align 2, 0 +_0804A85C: .4byte gUnk_030010A0 +_0804A860: .4byte 0x80100000 +_0804A864: + adds r4, r5, #0 + adds r4, #0x3a + ldrb r1, [r4] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + mov r8, r0 + cmp r0, #0 + bne _0804A934 + adds r0, r5, #0 + bl sub_08049CF4 + ldr r1, _0804A8E8 @ =gUnk_02002A40 + ldr r0, [r1, #0x50] + adds r0, #1 + str r0, [r1, #0x50] + ldrb r0, [r4] + movs r7, #0 + movs r1, #2 + orrs r0, r1 + strb r0, [r4] + movs r0, #0xff + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #3 + bl sub_0805E3A0 + ldrb r1, [r5, #9] + movs r0, #1 + movs r2, #0 + bl CreateObject + adds r4, r0, #0 + cmp r4, #0 + beq _0804A8CA + adds r0, #0x6c + mov r2, r8 + strb r2, [r0] + adds r0, #1 + mov r1, sb + strb r1, [r0] + adds r0, #1 + mov r2, sl + strb r2, [r0] + str r5, [r4, #0x50] + str r5, [r4, #0x54] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0804A8CA: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0804A8EC + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, #0 + bl sub_0805E7BC + b _0804A982 + .align 2, 0 +_0804A8E8: .4byte gUnk_02002A40 +_0804A8EC: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0x13 + bne _0804A934 + ldrb r0, [r5, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #1 + beq _0804A91A + cmp r1, #2 + bne _0804A92A + cmp r4, #0 + beq _0804A92A + adds r1, r4, #0 + adds r1, #0x6c + ldrb r0, [r1] + movs r2, #2 + orrs r0, r2 + strb r0, [r1] + b _0804A92A +_0804A91A: + cmp r4, #0 + beq _0804A92A + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] +_0804A92A: + movs r0, #0 + str r0, [r4, #0x50] + bl sub_0805E780 + b _0804A982 +_0804A934: + ldrb r0, [r5, #0xe] + cmp r0, #0 + bne _0804A940 + bl sub_0805E780 + b _0804A982 +_0804A940: + subs r1, r0, #1 + strb r1, [r5, #0xe] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _0804A95E + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r5, #0x18] + adds r0, r5, #0 + movs r1, #0 + bl sub_0805E3A0 + b _0804A982 +_0804A95E: + lsls r0, r1, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bhi _0804A982 + ldrb r1, [r5, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + beq _0804A976 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + b _0804A980 +_0804A976: + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 +_0804A980: + strb r0, [r5, #0x18] +_0804A982: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A98C +sub_0804A98C: @ 0x0804A98C + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, r1, #0 + adds r5, r2, #0 + bl sub_080A7EE0 + adds r4, r0, #0 + cmp r4, #0 + beq _0804A9A8 + strb r5, [r4, #0xa] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_0804A9A8: + adds r0, r4, #0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804A9AC +sub_0804A9AC: @ 0x0804A9AC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov ip, r3 + ldr r4, [r5, #0x68] + cmp r4, #0 + beq _0804A9FA + ldrb r2, [r5, #0x19] + lsrs r2, r2, #6 + lsls r2, r2, #6 + ldrb r3, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + ldrh r0, [r5, #0x2e] + adds r0, r0, r6 + strh r0, [r4, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r7 + strh r0, [r4, #0x32] + ldrh r0, [r5, #0x36] + add r0, ip + strh r0, [r4, #0x36] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] +_0804A9FA: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0804A9FC +sub_0804A9FC: @ 0x0804A9FC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x68] + cmp r0, #0 + bne _0804AA16 + adds r0, r4, #0 + movs r2, #0 + bl CreateFX + cmp r0, #0 + beq _0804AA16 + str r0, [r4, #0x68] + b _0804AA18 +_0804AA16: + movs r0, #0 +_0804AA18: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804AA1C +sub_0804AA1C: @ 0x0804AA1C + push {lr} + adds r2, r0, #0 + ldr r1, [r2, #0x68] + cmp r1, #0 + beq _0804AA2C + movs r0, #0 + str r0, [r1, #0x50] + str r0, [r2, #0x68] +_0804AA2C: + pop {pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/code_0804B9F8.s b/asm/code_0804B9F8.s index d2629221..3d43e24a 100644 --- a/asm/code_0804B9F8.s +++ b/asm/code_0804B9F8.s @@ -7841,7 +7841,7 @@ sub_0804E864: @ 0x0804E864 movs r1, #6 bl sub_080751E8 movs r0, #0xa0 - bl sub_080526A0 + bl ModHealth pop {pc} .align 2, 0 _0804E888: .4byte gLinkEntity diff --git a/asm/code_08052620.s b/asm/code_08052620.s index 58ab56f0..908a5884 100644 --- a/asm/code_08052620.s +++ b/asm/code_08052620.s @@ -33,7222 +33,3 @@ _0805264A: pop {pc} .align 2, 0 _08052650: .4byte gUnk_08127D30 - - thumb_func_start sub_08052654 -sub_08052654: @ 0x08052654 - ldr r0, _0805265C @ =gUnk_02033A90 - ldrb r0, [r0] - lsrs r0, r0, #7 - bx lr - .align 2, 0 -_0805265C: .4byte gUnk_02033A90 - - thumb_func_start sub_08052660 -sub_08052660: @ 0x08052660 - ldr r0, _0805266C @ =gUnk_02033A90 - ldrb r0, [r0] - lsrs r0, r0, #2 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0805266C: .4byte gUnk_02033A90 - - thumb_func_start sub_08052670 -sub_08052670: @ 0x08052670 - ldr r0, _0805267C @ =gUnk_02033A90 - ldrb r0, [r0] - lsrs r0, r0, #4 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0805267C: .4byte gUnk_02033A90 - - thumb_func_start sub_08052680 -sub_08052680: @ 0x08052680 - ldr r0, _0805268C @ =gUnk_02033A90 - ldrb r0, [r0] - lsrs r0, r0, #6 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0805268C: .4byte gUnk_02033A90 - - thumb_func_start sub_08052690 -sub_08052690: @ 0x08052690 - ldr r0, _0805269C @ =gUnk_02033A90 - ldrb r0, [r0] - lsrs r0, r0, #3 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0805269C: .4byte gUnk_02033A90 - - thumb_func_start sub_080526A0 -sub_080526A0: @ 0x080526A0 - push {lr} - ldr r2, _080526C4 @ =gUnk_02002AE8 - ldrb r1, [r2, #2] - adds r1, r1, r0 - cmp r1, #0 - bge _080526AE - movs r1, #0 -_080526AE: - ldrb r0, [r2, #3] - cmp r0, r1 - bge _080526B6 - adds r1, r0, #0 -_080526B6: - strb r1, [r2, #2] - ldr r0, _080526C8 @ =gLinkEntity - adds r0, #0x45 - strb r1, [r0] - adds r0, r1, #0 - pop {pc} - .align 2, 0 -_080526C4: .4byte gUnk_02002AE8 -_080526C8: .4byte gLinkEntity - - thumb_func_start sub_080526CC -sub_080526CC: @ 0x080526CC - push {lr} - ldr r3, _080526DC @ =gUnk_02002AE8 - ldrh r1, [r3, #0x18] - adds r2, r1, r0 - cmp r2, #0 - bge _080526E0 - movs r2, #0 - b _080526F0 - .align 2, 0 -_080526DC: .4byte gUnk_02002AE8 -_080526E0: - ldr r1, _080526F4 @ =gUnk_080FD590 - ldrb r0, [r3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrh r0, [r0] - cmp r2, r0 - ble _080526F0 - adds r2, r0, #0 -_080526F0: - strh r2, [r3, #0x18] - pop {pc} - .align 2, 0 -_080526F4: .4byte gUnk_080FD590 - - thumb_func_start sub_080526F8 -sub_080526F8: @ 0x080526F8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08052724 - cmp r0, #0 - beq _08052718 - ldr r0, _0805271C @ =gUnk_02033A90 - ldrb r1, [r0, #3] - ldr r0, _08052720 @ =gUnk_02002E9C - adds r1, r1, r0 - ldrb r0, [r1] - adds r0, r0, r4 - cmp r0, #0 - bge _08052716 - movs r0, #0 -_08052716: - strb r0, [r1] -_08052718: - pop {r4, pc} - .align 2, 0 -_0805271C: .4byte gUnk_02033A90 -_08052720: .4byte gUnk_02002E9C - - thumb_func_start sub_08052724 -sub_08052724: @ 0x08052724 - ldr r0, _08052730 @ =gUnk_02033A90 - ldrb r0, [r0] - lsrs r0, r0, #1 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_08052730: .4byte gUnk_02033A90 - - thumb_func_start sub_08052734 -sub_08052734: @ 0x08052734 - push {r4, lr} - bl sub_08052724 - cmp r0, #0 - beq _0805274C - ldr r0, _08052758 @ =gUnk_02002A40 - ldr r1, _0805275C @ =gUnk_02033A90 - ldr r2, _08052760 @ =0x0000045C - adds r0, r0, r2 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r4, [r0] -_0805274C: - adds r0, r4, #0 - cmp r0, #0 - beq _08052754 - movs r0, #1 -_08052754: - pop {r4, pc} - .align 2, 0 -_08052758: .4byte gUnk_02002A40 -_0805275C: .4byte gUnk_02033A90 -_08052760: .4byte 0x0000045C - - thumb_func_start sub_08052764 -sub_08052764: @ 0x08052764 - push {r4, lr} - bl sub_08052724 - cmp r0, #0 - beq _08052784 - ldr r0, _08052790 @ =gUnk_02002A40 - ldr r1, _08052794 @ =gUnk_02033A90 - ldr r2, _08052798 @ =0x0000046C - adds r0, r0, r2 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 -_08052784: - adds r0, r4, #0 - cmp r0, #0 - beq _0805278C - movs r0, #1 -_0805278C: - pop {r4, pc} - .align 2, 0 -_08052790: .4byte gUnk_02002A40 -_08052794: .4byte gUnk_02033A90 -_08052798: .4byte 0x0000046C - - thumb_func_start sub_0805279C -sub_0805279C: @ 0x0805279C - push {lr} - bl sub_08052724 - cmp r0, #0 - beq _080527C8 - ldr r0, _080527BC @ =gUnk_02002A40 - ldr r1, _080527C0 @ =gUnk_02033A90 - ldr r2, _080527C4 @ =0x0000046C - adds r0, r0, r2 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r0, [r0] - lsrs r0, r0, #1 - movs r1, #1 - ands r0, r1 - b _080527CA - .align 2, 0 -_080527BC: .4byte gUnk_02002A40 -_080527C0: .4byte gUnk_02033A90 -_080527C4: .4byte 0x0000046C -_080527C8: - movs r0, #0 -_080527CA: - pop {pc} - - thumb_func_start sub_080527CC -sub_080527CC: @ 0x080527CC - push {lr} - bl sub_08052724 - cmp r0, #0 - beq _080527F8 - ldr r0, _080527EC @ =gUnk_02002A40 - ldr r1, _080527F0 @ =gUnk_02033A90 - ldr r2, _080527F4 @ =0x0000046C - adds r0, r0, r2 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - b _080527FA - .align 2, 0 -_080527EC: .4byte gUnk_02002A40 -_080527F0: .4byte gUnk_02033A90 -_080527F4: .4byte 0x0000046C -_080527F8: - movs r0, #0 -_080527FA: - pop {pc} - - thumb_func_start sub_080527FC -sub_080527FC: @ 0x080527FC - push {r4, lr} - adds r4, r0, #0 - bl sub_08053320 - bl sub_080AE1D8 - bl sub_080ADE24 - movs r0, #1 - bl sub_0801C370 - adds r0, r4, #0 - bl sub_0801AE44 - ldr r0, _08052830 @ =gUnk_02024090 - ldr r1, _08052834 @ =gUnk_020176A0 - movs r2, #0x80 - lsls r2, r2, #3 - bl sub_0801D66C - ldr r1, _08052838 @ =gUnk_0200B644 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1] - pop {r4, pc} - .align 2, 0 -_08052830: .4byte gUnk_02024090 -_08052834: .4byte gUnk_020176A0 -_08052838: .4byte gUnk_0200B644 - - thumb_func_start sub_0805283C -sub_0805283C: @ 0x0805283C - push {r4, lr} - ldr r0, _08052868 @ =gUnk_02033A90 - ldr r1, _0805286C @ =0x00000864 - adds r4, r0, r1 - ldr r1, _08052870 @ =gUnk_08127D30 - ldr r0, _08052874 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #3] - str r0, [r4] - movs r0, #0x8c - lsls r0, r0, #4 - movs r1, #0x7c - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08052864 - movs r0, #0x33 - str r0, [r4] -_08052864: - pop {r4, pc} - .align 2, 0 -_08052868: .4byte gUnk_02033A90 -_0805286C: .4byte 0x00000864 -_08052870: .4byte gUnk_08127D30 -_08052874: .4byte gUnk_03000BF0 - - thumb_func_start sub_08052878 -sub_08052878: @ 0x08052878 - push {lr} - ldr r0, _08052894 @ =gUnk_02033A90 - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r0, r2 - adds r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - ldr r0, _08052898 @ =0x80010000 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08052894: .4byte gUnk_02033A90 -_08052898: .4byte 0x80010000 - - thumb_func_start sub_0805289C -sub_0805289C: @ 0x0805289C - ldr r0, _080528AC @ =gUnk_02033A90 - ldr r2, _080528B0 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - bx lr - .align 2, 0 -_080528AC: .4byte gUnk_02033A90 -_080528B0: .4byte 0x00000864 - - thumb_func_start sub_080528B4 -sub_080528B4: @ 0x080528B4 - push {lr} - ldr r0, _080528C4 @ =gUnk_030010A0 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _080528C8 - movs r0, #0 - b _080528E6 - .align 2, 0 -_080528C4: .4byte gUnk_030010A0 -_080528C8: - bl sub_0804FFE4 - ldr r1, _080528E8 @ =gUnk_03001000 - movs r2, #0 - movs r0, #3 - strb r0, [r1, #3] - strb r2, [r1, #4] - movs r0, #5 - movs r1, #8 - bl sub_08050054 - ldr r0, _080528EC @ =0x80100000 - bl sub_080A3268 - movs r0, #1 -_080528E6: - pop {pc} - .align 2, 0 -_080528E8: .4byte gUnk_03001000 -_080528EC: .4byte 0x80100000 - - thumb_func_start sub_080528F0 -sub_080528F0: @ 0x080528F0 - push {lr} - ldr r1, _08052914 @ =gUnk_02033A90 - ldr r2, _08052918 @ =0x00000888 - adds r0, r1, r2 - ldr r2, [r0] - cmp r2, #0 - beq _08052910 - movs r3, #0x89 - lsls r3, r3, #4 - adds r0, r1, r3 - ldr r1, [r0] - cmp r1, #0 - beq _08052910 - adds r0, r2, #0 - bl _call_via_r1 -_08052910: - pop {pc} - .align 2, 0 -_08052914: .4byte gUnk_02033A90 -_08052918: .4byte 0x00000888 - - thumb_func_start sub_0805291C -sub_0805291C: @ 0x0805291C - push {r4, lr} - ldr r4, _08052948 @ =gUnk_030010A0 - ldrb r0, [r4, #8] - cmp r0, #0 - beq _080529F4 - ldr r0, _0805294C @ =gUnk_02002A40 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #0 - beq _080529F4 - ldr r0, _08052950 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0x12 - beq _080529F4 - bl sub_080529F8 - cmp r0, #0 - beq _08052954 - movs r0, #0 - strb r0, [r4, #8] - b _080529F6 - .align 2, 0 -_08052948: .4byte gUnk_030010A0 -_0805294C: .4byte gUnk_02002A40 -_08052950: .4byte gUnk_03003F80 -_08052954: - ldrb r0, [r4, #9] - subs r0, #1 - cmp r0, #8 - bhi _080529D4 - lsls r0, r0, #2 - ldr r1, _08052968 @ =_0805296C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08052968: .4byte _0805296C -_0805296C: @ jump table - .4byte _08052990 @ case 0 - .4byte _080529A4 @ case 1 - .4byte _080529D4 @ case 2 - .4byte _080529A8 @ case 3 - .4byte _080529B2 @ case 4 - .4byte _080529BC @ case 5 - .4byte _080529C8 @ case 6 - .4byte _080529C8 @ case 7 - .4byte _0805299A @ case 8 -_08052990: - movs r0, #0xd - movs r1, #8 - bl sub_08050054 - b _080529DC -_0805299A: - movs r0, #0xd - movs r1, #3 - bl sub_08050054 - b _080529DC -_080529A4: - movs r0, #7 - b _080529AA -_080529A8: - movs r0, #5 -_080529AA: - movs r1, #4 - bl sub_08050054 - b _080529DC -_080529B2: - movs r0, #5 - movs r1, #0x10 - bl sub_08050054 - b _080529DC -_080529BC: - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - b _080529DC -_080529C8: - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl sub_08050054 - b _080529DC -_080529D4: - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 -_080529DC: - bl sub_080528F0 - ldr r0, _080529F0 @ =gUnk_03001000 - movs r1, #3 - strb r1, [r0, #4] - movs r1, #1 - strb r1, [r0, #0xb] - movs r0, #1 - b _080529F6 - .align 2, 0 -_080529F0: .4byte gUnk_03001000 -_080529F4: - movs r0, #0 -_080529F6: - pop {r4, pc} - - thumb_func_start sub_080529F8 -sub_080529F8: @ 0x080529F8 - push {r4, r5, r6, lr} - ldr r1, _08052A34 @ =gUnk_030010A0 - ldrh r4, [r1, #0xa] - ldr r2, _08052A38 @ =gUnk_080FCAD6 - ldrh r0, [r2] - cmp r0, #0 - beq _08052A48 - ldr r3, _08052A3C @ =gUnk_03003F80 - movs r6, #0 - movs r0, #0x39 - adds r0, r0, r3 - mov ip, r0 - movs r5, #0x1e -_08052A12: - ldrh r0, [r2] - cmp r4, r0 - bne _08052A40 - strb r5, [r3, #0xc] - adds r0, r3, #0 - adds r0, #0x38 - strb r6, [r0] - ldrh r0, [r2, #2] - mov r3, ip - strb r0, [r3] - ldrb r0, [r1, #0xf] - cmp r0, #0 - bne _08052A30 - ldrh r0, [r2, #2] - strb r0, [r1, #0xf] -_08052A30: - movs r0, #1 - b _08052A4A - .align 2, 0 -_08052A34: .4byte gUnk_030010A0 -_08052A38: .4byte gUnk_080FCAD6 -_08052A3C: .4byte gUnk_03003F80 -_08052A40: - adds r2, #4 - ldrh r0, [r2] - cmp r0, #0 - bne _08052A12 -_08052A48: - movs r0, #0 -_08052A4A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08052A4C -sub_08052A4C: @ 0x08052A4C - push {r4, r5, lr} - ldr r2, _08052A88 @ =gUnk_030010A0 - movs r0, #1 - strb r0, [r2, #8] - ldr r5, _08052A8C @ =gLinkEntity - ldr r3, _08052A90 @ =gUnk_03000BF0 - ldrh r0, [r5, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r1, #0xfe - lsls r1, r1, #2 - adds r4, r1, #0 - ands r0, r4 - strh r0, [r2, #0x10] - ldrh r0, [r5, #0x32] - ldrh r1, [r3, #8] - subs r0, r0, r1 - ands r0, r4 - strh r0, [r2, #0x12] - movs r0, #4 - strb r0, [r2, #0xe] - movs r0, #0xa - strb r0, [r2, #0xf] - ldrb r0, [r3, #4] - strb r0, [r2, #0xc] - ldrb r0, [r3, #5] - subs r0, #1 - strb r0, [r2, #0xd] - pop {r4, r5, pc} - .align 2, 0 -_08052A88: .4byte gUnk_030010A0 -_08052A8C: .4byte gLinkEntity -_08052A90: .4byte gUnk_03000BF0 - - thumb_func_start sub_08052A94 -sub_08052A94: @ 0x08052A94 - push {lr} - ldr r0, _08052AAC @ =gUnk_030010A0 - ldrb r0, [r0, #9] - subs r0, #1 - cmp r0, #8 - bhi _08052B1C - lsls r0, r0, #2 - ldr r1, _08052AB0 @ =_08052AB4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08052AAC: .4byte gUnk_030010A0 -_08052AB0: .4byte _08052AB4 -_08052AB4: @ jump table - .4byte _08052AD8 @ case 0 - .4byte _08052AE6 @ case 1 - .4byte _08052B22 @ case 2 - .4byte _08052B1C @ case 3 - .4byte _08052B08 @ case 4 - .4byte _08052AF0 @ case 5 - .4byte _08052AFC @ case 6 - .4byte _08052B12 @ case 7 - .4byte _08052ADC @ case 8 -_08052AD8: - movs r0, #0xc - b _08052B14 -_08052ADC: - movs r0, #0xc - movs r1, #3 - bl sub_08050054 - b _08052B22 -_08052AE6: - movs r0, #6 - movs r1, #4 - bl sub_08050054 - b _08052B22 -_08052AF0: - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - b _08052B22 -_08052AFC: - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl sub_08050054 - b _08052B22 -_08052B08: - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - b _08052B22 -_08052B12: - movs r0, #6 -_08052B14: - movs r1, #8 - bl sub_08050054 - b _08052B22 -_08052B1C: - movs r0, #0x10 - bl sub_080500F4 -_08052B22: - pop {pc} - - thumb_func_start sub_08052B24 -sub_08052B24: @ 0x08052B24 - push {lr} - ldr r0, _08052B90 @ =gUnk_03000FF0 - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08052B8A - ldr r2, _08052B94 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x8b - ldrb r0, [r0] - cmp r0, #0 - bne _08052B8A - ldr r0, _08052B98 @ =gUnk_02034490 - ldrb r0, [r0] - cmp r0, #0 - bne _08052B8A - ldr r0, _08052B9C @ =gUnk_0200AF00 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08052B8A - ldr r0, [r2, #0x30] - movs r1, #0x8c - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08052B8A - adds r0, r2, #0 - adds r0, #0xa9 - ldrb r0, [r0] - cmp r0, #1 - bgt _08052B8A - ldr r0, [r2, #0x2c] - cmp r0, #0 - bne _08052B8A - ldr r1, _08052BA0 @ =gLinkEntity - adds r0, r1, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - bne _08052B8A - movs r3, #0x36 - ldrsh r0, [r1, r3] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08052BA4 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08052BA4 -_08052B8A: - movs r0, #0 - b _08052BB4 - .align 2, 0 -_08052B90: .4byte gUnk_03000FF0 -_08052B94: .4byte gUnk_03003F80 -_08052B98: .4byte gUnk_02034490 -_08052B9C: .4byte gUnk_0200AF00 -_08052BA0: .4byte gLinkEntity -_08052BA4: - bl sub_0801862C - movs r0, #0x13 - bl sub_08078160 - bl sub_0805E544 - movs r0, #1 -_08052BB4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08052BB8 -sub_08052BB8: @ 0x08052BB8 - push {lr} - ldr r0, _08052BE0 @ =gUnk_030010A0 - adds r2, r0, #0 - adds r2, #0x35 - ldrb r1, [r2] - adds r3, r0, #0 - cmp r1, #0 - bne _08052BEC - ldr r0, _08052BE4 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - ldr r0, _08052BE8 @ =gUnk_03000BF0 - movs r2, #0xc - ldrsh r0, [r0, r2] - subs r1, r1, r0 - movs r2, #0xd - cmp r1, #0x60 - ble _08052BEE - movs r2, #1 - b _08052BEE - .align 2, 0 -_08052BE0: .4byte gUnk_030010A0 -_08052BE4: .4byte gLinkEntity -_08052BE8: .4byte gUnk_03000BF0 -_08052BEC: - ldrb r2, [r2] -_08052BEE: - ldrh r0, [r3, #0x36] - adds r1, r2, #0 - bl sub_080563C8 - pop {pc} - - thumb_func_start sub_08052BF8 -sub_08052BF8: @ 0x08052BF8 - push {lr} - ldr r2, _08052C34 @ =gUnk_030010A0 - adds r1, r2, #0 - adds r1, #0x31 - ldrb r0, [r1] - cmp r0, #0 - bne _08052C30 - movs r0, #1 - strb r0, [r1] - ldr r0, _08052C38 @ =gUnk_02033A90 - ldrb r1, [r0, #1] - adds r0, r2, #0 - adds r0, #0x2e - strb r1, [r0] - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _08052C30 - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0xf - strb r0, [r1, #9] - strb r0, [r1, #0xa] - adds r0, r1, #0 - movs r1, #0 - bl sub_0805EA2C -_08052C30: - pop {pc} - .align 2, 0 -_08052C34: .4byte gUnk_030010A0 -_08052C38: .4byte gUnk_02033A90 - - thumb_func_start sub_08052C3C -sub_08052C3C: @ 0x08052C3C - push {lr} - ldr r2, _08052C58 @ =gUnk_02033A90 - ldrb r0, [r2, #0x18] - cmp r0, #0 - bne _08052C48 - strb r0, [r2, #0x1a] -_08052C48: - ldrb r0, [r2, #0x1a] - cmp r0, #0 - beq _08052C56 - subs r0, #1 - movs r1, #0 - strb r0, [r2, #0x1a] - strb r1, [r2, #0x18] -_08052C56: - pop {pc} - .align 2, 0 -_08052C58: .4byte gUnk_02033A90 - - thumb_func_start sub_08052C5C -sub_08052C5C: @ 0x08052C5C - push {lr} - bl sub_08052680 - cmp r0, #0 - bne _08052C98 - bl sub_08052620 - cmp r0, #0 - beq _08052C84 - ldr r2, _08052C7C @ =gUnk_030010A0 - ldr r1, _08052C80 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r2, #0x20] - ldrh r0, [r1, #0x32] - strh r0, [r2, #0x22] - b _08052C98 - .align 2, 0 -_08052C7C: .4byte gUnk_030010A0 -_08052C80: .4byte gLinkEntity -_08052C84: - bl sub_08052660 - cmp r0, #0 - beq _08052C98 - ldr r2, _08052C9C @ =gUnk_030010A0 - ldr r1, _08052CA0 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r2, #0x1c] - ldrh r0, [r1, #0x32] - strh r0, [r2, #0x1e] -_08052C98: - pop {pc} - .align 2, 0 -_08052C9C: .4byte gUnk_030010A0 -_08052CA0: .4byte gLinkEntity - - thumb_func_start sub_08052CA4 -sub_08052CA4: @ 0x08052CA4 - push {r4, lr} - ldr r4, _08052CC8 @ =gUnk_0811E214 - lsls r0, r0, #2 - adds r0, r0, r4 - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #1 - ldr r1, [r0] - adds r1, r1, r4 - ldr r4, _08052CCC @ =gUnk_030010A0 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r4, #0x20] - ldrh r0, [r1, #2] - adds r0, r0, r3 - strh r0, [r4, #0x22] - pop {r4, pc} - .align 2, 0 -_08052CC8: .4byte gUnk_0811E214 -_08052CCC: .4byte gUnk_030010A0 - - thumb_func_start sub_08052CD0 -sub_08052CD0: @ 0x08052CD0 - push {r4, lr} - ldr r4, _08052CF4 @ =gUnk_0811E214 - lsls r0, r0, #2 - adds r0, r0, r4 - lsls r4, r1, #2 - adds r4, r4, r1 - lsls r4, r4, #1 - ldr r1, [r0] - adds r1, r1, r4 - ldr r4, _08052CF8 @ =gUnk_030010A0 - ldrh r0, [r1] - adds r0, r0, r2 - strh r0, [r4, #0x1c] - ldrh r0, [r1, #2] - adds r0, r0, r3 - strh r0, [r4, #0x1e] - pop {r4, pc} - .align 2, 0 -_08052CF4: .4byte gUnk_0811E214 -_08052CF8: .4byte gUnk_030010A0 - - thumb_func_start sub_08052CFC -sub_08052CFC: @ 0x08052CFC - push {r4, lr} - ldr r4, _08052D44 @ =gUnk_02033A90 - ldr r1, _08052D48 @ =0x00000894 - adds r0, r4, #0 - bl sub_0801D630 - ldr r0, _08052D4C @ =gUnk_03000BF0 - ldrb r1, [r0, #4] - lsls r1, r1, #2 - ldr r0, _08052D50 @ =gUnk_08127D30 - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r4] - ldrb r0, [r1, #1] - strb r0, [r4, #1] - ldrb r0, [r1, #1] - subs r0, #0x17 - strb r0, [r4, #3] - ldr r2, _08052D54 @ =gUnk_0811E454 - ldrb r0, [r1, #2] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #4] - ldrb r0, [r1, #2] - strb r0, [r4, #6] - movs r0, #0xb4 - strb r0, [r4, #0x1a] - adds r0, #0x4c - strh r0, [r4, #0xa] - bl sub_08052A94 - bl sub_08052DA8 - pop {r4, pc} - .align 2, 0 -_08052D44: .4byte gUnk_02033A90 -_08052D48: .4byte 0x00000894 -_08052D4C: .4byte gUnk_03000BF0 -_08052D50: .4byte gUnk_08127D30 -_08052D54: .4byte gUnk_0811E454 - - thumb_func_start sub_08052D58 -sub_08052D58: @ 0x08052D58 - lsls r0, r0, #2 - ldr r1, _08052D6C @ =gUnk_08127D30 - adds r0, r0, r1 - ldr r1, _08052D70 @ =gUnk_0811E454 - ldrb r0, [r0, #2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_08052D6C: .4byte gUnk_08127D30 -_08052D70: .4byte gUnk_0811E454 - - thumb_func_start sub_08052D74 -sub_08052D74: @ 0x08052D74 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldr r0, _08052D98 @ =gUnk_03001000 - ldrb r0, [r0, #4] - cmp r0, #7 - beq _08052D96 - ldr r0, _08052D9C @ =gUnk_02033A90 - ldr r5, _08052DA0 @ =0x00000888 - adds r1, r0, r5 - str r3, [r1] - ldr r3, _08052DA4 @ =0x0000088C - adds r1, r0, r3 - str r4, [r1] - adds r5, #8 - adds r0, r0, r5 - str r2, [r0] -_08052D96: - pop {r4, r5, pc} - .align 2, 0 -_08052D98: .4byte gUnk_03001000 -_08052D9C: .4byte gUnk_02033A90 -_08052DA0: .4byte 0x00000888 -_08052DA4: .4byte 0x0000088C - - thumb_func_start sub_08052DA8 -sub_08052DA8: @ 0x08052DA8 - push {r4, r5, r6, r7, lr} - ldr r1, _08052DF8 @ =gUnk_0811E214 - ldr r0, _08052DFC @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r4, [r0] - ldr r7, _08052E00 @ =gUnk_02033ACC - movs r5, #0 - ldrh r0, [r4] - ldr r1, _08052E04 @ =0x0000FFFF - cmp r0, r1 - beq _08052DE8 - adds r6, r1, #0 -_08052DC4: - ldrh r0, [r4, #8] - cmp r0, r6 - beq _08052DD8 - ldr r0, _08052DFC @ =gUnk_03000BF0 - ldrb r2, [r0, #4] - adds r0, r7, #0 - adds r1, r4, #0 - adds r3, r5, #0 - bl sub_08052E10 -_08052DD8: - adds r7, #0x20 - adds r5, #1 - adds r4, #0xa - cmp r5, #0x3f - bhi _08052DE8 - ldrh r0, [r4] - cmp r0, r6 - bne _08052DC4 -_08052DE8: - bl sub_08052E8C - ldr r1, _08052E08 @ =gUnk_02033A90 - ldr r2, _08052E0C @ =0x0000085C - adds r1, r1, r2 - str r0, [r1] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08052DF8: .4byte gUnk_0811E214 -_08052DFC: .4byte gUnk_03000BF0 -_08052E00: .4byte gUnk_02033ACC -_08052E04: .4byte 0x0000FFFF -_08052E08: .4byte gUnk_02033A90 -_08052E0C: .4byte 0x0000085C - - thumb_func_start sub_08052E10 -sub_08052E10: @ 0x08052E10 - push {r4, r5, lr} - adds r5, r0, #0 - ldrh r0, [r1] - strh r0, [r5, #4] - ldrh r0, [r1, #2] - strh r0, [r5, #6] - ldrh r0, [r1, #4] - strh r0, [r5] - ldrh r0, [r1, #6] - strh r0, [r5, #2] - ldr r4, _08052E74 @ =gUnk_0810246C - lsls r2, r2, #2 - adds r4, r2, r4 - ldrh r0, [r1, #8] - ldr r1, [r4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5, #8] - ldr r0, _08052E78 @ =gUnk_08107988 - adds r0, r2, r0 - ldr r0, [r0] - lsls r3, r3, #2 - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r5, #0xc] - ldr r0, _08052E7C @ =gUnk_0810309C - adds r0, r2, r0 - ldr r0, [r0] - str r0, [r5, #0x10] - ldr r0, _08052E80 @ =gUnk_080B755C - adds r0, r2, r0 - ldr r0, [r0] - str r0, [r5, #0x14] - ldr r0, _08052E84 @ =gUnk_0813A7F0 - adds r0, r2, r0 - ldr r0, [r0] - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r5, #0x18] - ldr r0, _08052E88 @ =gUnk_080D50FC - adds r2, r2, r0 - ldr r0, [r2] - cmp r0, #0 - beq _08052E70 - adds r0, r3, r0 - ldr r0, [r0] - str r0, [r5, #0x1c] -_08052E70: - pop {r4, r5, pc} - .align 2, 0 -_08052E74: .4byte gUnk_0810246C -_08052E78: .4byte gUnk_08107988 -_08052E7C: .4byte gUnk_0810309C -_08052E80: .4byte gUnk_080B755C -_08052E84: .4byte gUnk_0813A7F0 -_08052E88: .4byte gUnk_080D50FC - - thumb_func_start sub_08052E8C -sub_08052E8C: @ 0x08052E8C - ldr r0, _08052E98 @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - lsls r0, r0, #5 - ldr r1, _08052E9C @ =gUnk_02033ACC - adds r0, r0, r1 - bx lr - .align 2, 0 -_08052E98: .4byte gUnk_03000BF0 -_08052E9C: .4byte gUnk_02033ACC - - thumb_func_start sub_08052EA0 -sub_08052EA0: @ 0x08052EA0 - push {r4, lr} - ldr r4, _08052EE4 @ =gUnk_02034350 - adds r0, r4, #0 - movs r1, #0xcc - bl sub_0801D630 - movs r0, #0xff - strb r0, [r4, #0x10] - strb r0, [r4, #0x11] - strb r0, [r4, #0x12] - strb r0, [r4, #0x13] - adds r0, #1 - strh r0, [r4, #0xc] - ldr r2, _08052EE8 @ =gUnk_02033A90 - ldr r1, _08052EEC @ =gUnk_08127D30 - ldr r0, _08052EF0 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #1] - strb r0, [r2, #1] - bl sub_08049D30 - bl sub_0807DA70 - bl sub_08054524 - bl sub_080186D4 - bl sub_0806F364 - bl sub_080530C8 - pop {r4, pc} - .align 2, 0 -_08052EE4: .4byte gUnk_02034350 -_08052EE8: .4byte gUnk_02033A90 -_08052EEC: .4byte gUnk_08127D30 -_08052EF0: .4byte gUnk_03000BF0 - - thumb_func_start sub_08052EF4 -sub_08052EF4: @ 0x08052EF4 - push {lr} - cmp r0, #0 - bge _08052EFE - ldr r0, _08052F10 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] -_08052EFE: - lsls r0, r0, #2 - ldr r1, _08052F14 @ =gUnk_08127D30 - adds r0, r0, r1 - ldr r1, _08052F18 @ =gUnk_0811E454 - ldrb r0, [r0, #2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - pop {pc} - .align 2, 0 -_08052F10: .4byte gUnk_03000BF0 -_08052F14: .4byte gUnk_08127D30 -_08052F18: .4byte gUnk_0811E454 - - thumb_func_start sub_08052F1C -sub_08052F1C: @ 0x08052F1C - push {r4, r5, r6, lr} - ldr r2, _08052F4C @ =gUnk_02033A90 - ldrb r1, [r2, #0xd] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08052FCC - ldr r0, _08052F50 @ =gUnk_02034350 - ldrb r0, [r0] - cmp r0, #0 - beq _08052FCC - movs r5, #0 - movs r4, #0 - ldr r0, _08052F54 @ =gUnk_03000BF0 - ldrb r1, [r0, #0x10] - adds r3, r0, #0 - cmp r1, #1 - beq _08052F62 - cmp r1, #1 - bgt _08052F58 - cmp r1, #0 - beq _08052F62 - b _08052F72 - .align 2, 0 -_08052F4C: .4byte gUnk_02033A90 -_08052F50: .4byte gUnk_02034350 -_08052F54: .4byte gUnk_03000BF0 -_08052F58: - cmp r1, #2 - beq _08052F62 - cmp r1, #3 - beq _08052F6A - b _08052F72 -_08052F62: - ldr r1, _08052FD0 @ =0x0000085C - adds r0, r2, r1 - ldr r0, [r0] - ldrh r5, [r0, #2] -_08052F6A: - ldr r1, _08052FD0 @ =0x0000085C - adds r0, r2, r1 - ldr r0, [r0] - ldrh r4, [r0] -_08052F72: - ldr r0, _08052FD0 @ =0x0000085C - adds r2, r2, r0 - ldr r1, [r2] - ldrh r0, [r1, #4] - adds r0, r0, r4 - strh r0, [r1, #4] - ldr r1, [r2] - ldrh r0, [r1, #6] - adds r0, r0, r5 - strh r0, [r1, #6] - ldrh r0, [r3, #6] - adds r0, r0, r4 - strh r0, [r3, #6] - ldrh r0, [r3, #8] - adds r0, r0, r5 - strh r0, [r3, #8] - ldrh r0, [r3, #0xa] - adds r0, r0, r4 - strh r0, [r3, #0xa] - ldrh r0, [r3, #0xc] - adds r0, r0, r5 - strh r0, [r3, #0xc] - ldr r2, _08052FD4 @ =gUnk_03003D70 - adds r6, r2, #0 - adds r6, #0x48 -_08052FA4: - ldr r1, [r2, #4] - adds r3, r2, #0 - adds r3, #8 - cmp r1, r2 - beq _08052FC6 -_08052FAE: - ldrb r0, [r1, #8] - cmp r0, #9 - beq _08052FC0 - ldrh r0, [r1, #0x2e] - adds r0, r0, r4 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, r0, r5 - strh r0, [r1, #0x32] -_08052FC0: - ldr r1, [r1, #4] - cmp r1, r2 - bne _08052FAE -_08052FC6: - adds r2, r3, #0 - cmp r2, r6 - blo _08052FA4 -_08052FCC: - pop {r4, r5, r6, pc} - .align 2, 0 -_08052FD0: .4byte 0x0000085C -_08052FD4: .4byte gUnk_03003D70 - - thumb_func_start sub_08052FD8 -sub_08052FD8: @ 0x08052FD8 - push {lr} - bl sub_08052FF4 - ldr r1, _08052FF0 @ =gUnk_03000BF0 - movs r0, #0 - str r0, [r1, #0x30] - bl sub_0807C860 - bl sub_0807C740 - pop {pc} - .align 2, 0 -_08052FF0: .4byte gUnk_03000BF0 - - thumb_func_start sub_08052FF4 -sub_08052FF4: @ 0x08052FF4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - bl sub_08080668 - bl sub_080197AC - ldr r0, _0805306C @ =gUnk_03000BF0 - strb r6, [r0, #4] - strb r4, [r0, #5] - ldr r1, _08053070 @ =gUnk_03000F50 - movs r0, #0xba - lsls r0, r0, #5 - strh r0, [r1] - ldr r5, _08053074 @ =gUnk_020342CC - adds r0, r5, #0 - movs r1, #0x20 - bl sub_0801D630 - str r5, [r5, #0x20] - ldr r0, _08053078 @ =gUnk_0811E214 - lsls r6, r6, #2 - adds r0, r6, r0 - lsls r2, r4, #2 - adds r4, r2, r4 - lsls r4, r4, #1 - ldr r0, [r0] - adds r0, r0, r4 - ldrh r1, [r0] - strh r1, [r5, #4] - ldrh r1, [r0, #2] - strh r1, [r5, #6] - ldrh r1, [r0, #4] - strh r1, [r5] - ldrh r1, [r0, #6] - strh r1, [r5, #2] - ldr r1, _0805307C @ =gUnk_0810246C - adds r1, r6, r1 - ldrh r0, [r0, #8] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r5, #8] - ldr r0, _08053080 @ =gUnk_08107988 - adds r0, r6, r0 - ldr r0, [r0] - adds r2, r2, r0 - ldr r0, [r2] - str r0, [r5, #0xc] - ldr r0, _08053084 @ =gUnk_0810309C - adds r0, r6, r0 - ldr r0, [r0] - str r0, [r5, #0x10] - ldr r0, _08053088 @ =gUnk_080B755C - adds r6, r6, r0 - ldr r0, [r6] - str r0, [r5, #0x14] - pop {r4, r5, r6, pc} - .align 2, 0 -_0805306C: .4byte gUnk_03000BF0 -_08053070: .4byte gUnk_03000F50 -_08053074: .4byte gUnk_020342CC -_08053078: .4byte gUnk_0811E214 -_0805307C: .4byte gUnk_0810246C -_08053080: .4byte gUnk_08107988 -_08053084: .4byte gUnk_0810309C -_08053088: .4byte gUnk_080B755C - - thumb_func_start sub_0805308C -sub_0805308C: @ 0x0805308C - push {lr} - adds r1, r0, #0 - ldr r2, _080530AC @ =gUnk_02034350 - movs r3, #0xc - ldrsh r0, [r2, r3] - adds r1, r1, r0 - cmp r1, #0 - bge _0805309E - movs r1, #0 -_0805309E: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - ble _080530A8 - adds r1, r0, #0 -_080530A8: - strh r1, [r2, #0xc] - pop {pc} - .align 2, 0 -_080530AC: .4byte gUnk_02034350 - - thumb_func_start sub_080530B0 -sub_080530B0: @ 0x080530B0 - push {lr} - ldr r0, _080530C0 @ =gUnk_080FCAF8 - ldr r1, _080530C4 @ =gUnk_030010EC - movs r2, #0x20 - bl sub_0801D66C - pop {pc} - .align 2, 0 -_080530C0: .4byte gUnk_080FCAF8 -_080530C4: .4byte gUnk_030010EC - - thumb_func_start sub_080530C8 -sub_080530C8: @ 0x080530C8 - push {r4, r5, lr} - movs r4, #1 - movs r5, #0xc0 - lsls r5, r5, #2 - adds r0, r5, #0 - movs r1, #0x78 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _080530E0 - movs r4, #9 - b _08053138 -_080530E0: - movs r0, #6 - bl GetProgressFlag - cmp r0, #0 - beq _080530EE - movs r4, #8 - b _08053138 -_080530EE: - adds r0, r5, #0 - movs r1, #0x32 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _080530FE - movs r4, #7 - b _08053138 -_080530FE: - movs r0, #5 - bl GetProgressFlag - cmp r0, #0 - beq _0805310C - movs r4, #6 - b _08053138 -_0805310C: - movs r0, #4 - bl GetProgressFlag - cmp r0, #0 - beq _0805311A - movs r4, #5 - b _08053138 -_0805311A: - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #0x9c - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _0805312C - movs r4, #4 - b _08053138 -_0805312C: - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - beq _08053138 - movs r4, #2 -_08053138: - ldr r0, _08053140 @ =gUnk_02002A40 - strb r4, [r0, #8] - pop {r4, r5, pc} - .align 2, 0 -_08053140: .4byte gUnk_02002A40 - - thumb_func_start sub_08053144 -sub_08053144: @ 0x08053144 - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _08053154 - movs r0, #0 - b _0805316E -_08053154: - movs r1, #0 - ldr r0, _08053170 @ =gUnk_02033A90 - ldrb r2, [r0, #1] - cmp r2, #0 - beq _0805316C - ldr r0, _08053174 @ =gUnk_030010A0 - adds r0, #0x2e - ldrb r1, [r0] - eors r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r1, r0, #0x1f -_0805316C: - adds r0, r1, #0 -_0805316E: - pop {pc} - .align 2, 0 -_08053170: .4byte gUnk_02033A90 -_08053174: .4byte gUnk_030010A0 - - thumb_func_start sub_08053178 -sub_08053178: @ 0x08053178 - push {r4, r5, lr} - bl sub_08053144 - cmp r0, #0 - beq _080531E6 - ldr r0, _080531E8 @ =gUnk_030010A0 - ldr r5, _080531EC @ =gUnk_02033A90 - ldrb r1, [r5, #1] - adds r0, #0x2e - strb r1, [r0] - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - beq _080531E6 - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - bne _080531DC - bl sub_0805E8D4 - adds r4, r0, #0 - cmp r4, #0 - beq _080531DC - movs r0, #9 - strb r0, [r4, #8] - movs r0, #0x39 - strb r0, [r4, #9] - adds r0, r4, #0 - movs r1, #8 - bl sub_0805EA2C - ldr r0, _080531F0 @ =gUnk_02034350 - ldrb r0, [r0] - cmp r0, #0 - bne _080531DC - ldr r0, _080531F4 @ =gUnk_02002AA0 - ldrb r1, [r5, #1] - bl sub_0801D5A8 - cmp r0, #0 - bne _080531DC - movs r0, #1 - strb r0, [r4, #0xb] - movs r0, #3 - bl sub_08078A90 - bl sub_0805E5A8 -_080531DC: - ldr r0, _080531F4 @ =gUnk_02002AA0 - ldr r1, _080531EC @ =gUnk_02033A90 - ldrb r1, [r1, #1] - bl sub_0801D5BC -_080531E6: - pop {r4, r5, pc} - .align 2, 0 -_080531E8: .4byte gUnk_030010A0 -_080531EC: .4byte gUnk_02033A90 -_080531F0: .4byte gUnk_02034350 -_080531F4: .4byte gUnk_02002AA0 - - thumb_func_start sub_080531F8 -sub_080531F8: @ 0x080531F8 - push {r4, r5, lr} - ldr r1, _0805323C @ =gUnk_03003F80 - ldr r4, _08053240 @ =gLinkEntity - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x16] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x18] - bl sub_08053144 - cmp r0, #0 - beq _08053238 - ldr r5, _08053244 @ =gUnk_030010AC - ldr r1, _08053248 @ =gUnk_02002AC8 - adds r0, r5, #0 - movs r2, #0x20 - bl sub_0801D66C - bl sub_08052660 - cmp r0, #0 - beq _08053238 - adds r1, r5, #0 - subs r1, #0xc - ldr r2, _0805324C @ =gUnk_03000BF0 - ldrb r0, [r2, #4] - strb r0, [r1, #0x16] - ldrb r0, [r2, #5] - strb r0, [r1, #0x17] - ldrh r0, [r4, #0x2e] - strh r0, [r1, #0x18] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x1a] -_08053238: - pop {r4, r5, pc} - .align 2, 0 -_0805323C: .4byte gUnk_03003F80 -_08053240: .4byte gLinkEntity -_08053244: .4byte gUnk_030010AC -_08053248: .4byte gUnk_02002AC8 -_0805324C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08053250 -sub_08053250: @ 0x08053250 - push {r4, lr} - ldr r0, _0805328C @ =gUnk_030010A0 - movs r1, #0 - strb r1, [r0, #0xf] - ldr r3, _08053290 @ =gLinkEntity - ldr r4, _08053294 @ =gUnk_03000BF0 - ldrh r1, [r3, #0x2e] - ldrh r2, [r4, #6] - subs r1, r1, r2 - strh r1, [r0, #0x10] - ldrh r1, [r3, #0x32] - ldrh r2, [r4, #8] - subs r1, r1, r2 - strh r1, [r0, #0x12] - ldrb r1, [r3, #0x14] - strb r1, [r0, #0xe] - adds r3, #0x38 - ldrb r1, [r3] - strb r1, [r0, #0x14] - ldrb r1, [r4, #4] - strb r1, [r0, #0xc] - ldrb r1, [r4, #5] - strb r1, [r0, #0xd] - adds r0, #0xc - ldr r1, _08053298 @ =gUnk_02002AC8 - movs r2, #0x20 - bl sub_0801D66C - pop {r4, pc} - .align 2, 0 -_0805328C: .4byte gUnk_030010A0 -_08053290: .4byte gLinkEntity -_08053294: .4byte gUnk_03000BF0 -_08053298: .4byte gUnk_02002AC8 - - thumb_func_start sub_0805329C -sub_0805329C: @ 0x0805329C - push {lr} - bl sub_08053144 - cmp r0, #0 - beq _080532E0 - ldr r0, _080532B8 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0x48 - beq _080532C2 - cmp r0, #0x48 - bgt _080532BC - cmp r0, #0x18 - beq _080532D6 - b _080532DC - .align 2, 0 -_080532B8: .4byte gUnk_03000BF0 -_080532BC: - cmp r0, #0x50 - beq _080532D0 - b _080532DC -_080532C2: - ldr r1, _080532CC @ =gUnk_02002A40 - movs r0, #0 - strb r0, [r1, #7] - b _080532E0 - .align 2, 0 -_080532CC: .4byte gUnk_02002A40 -_080532D0: - bl sub_080530B0 - b _080532E0 -_080532D6: - bl sub_080532E4 - b _080532E0 -_080532DC: - bl sub_08053460 -_080532E0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080532E4 -sub_080532E4: @ 0x080532E4 - ldr r0, _08053318 @ =gUnk_0811E214 - movs r1, #0xb0 - lsls r1, r1, #1 - adds r0, r0, r1 - ldr r0, [r0] - movs r3, #0xa5 - lsls r3, r3, #1 - adds r2, r0, r3 - ldr r1, _0805331C @ =gUnk_030010A0 - movs r0, #0x58 - strb r0, [r1, #0x16] - movs r0, #0x21 - strb r0, [r1, #0x17] - ldrh r0, [r2, #4] - lsrs r0, r0, #1 - ldrh r3, [r2] - adds r0, r0, r3 - strh r0, [r1, #0x18] - strh r0, [r1, #0x1c] - ldrh r0, [r2, #6] - ldrh r2, [r2, #2] - adds r0, r0, r2 - adds r0, #0xa0 - strh r0, [r1, #0x1a] - strh r0, [r1, #0x1e] - bx lr - .align 2, 0 -_08053318: .4byte gUnk_0811E214 -_0805331C: .4byte gUnk_030010A0 - - thumb_func_start sub_08053320 -sub_08053320: @ 0x08053320 - push {r4, lr} - ldr r0, _0805337C @ =gUnk_02034CB0 - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _08053380 @ =gUnk_02021F30 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _08053384 @ =gUnk_020344B0 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _08053388 @ =gUnk_02001A40 - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_0801D630 - movs r0, #0x10 - bl sub_0801D7EC - movs r0, #0x17 - bl sub_0801D7EC - ldr r0, _0805338C @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #4 - bne _08053362 - movs r0, #0x1a - bl sub_0801D7EC -_08053362: - bl sub_08053390 - movs r0, #0xb - bl sub_0801D714 - movs r0, #0xc - bl sub_0801D714 - movs r0, #0 - movs r1, #0 - bl sub_0801D79C - pop {r4, pc} - .align 2, 0 -_0805337C: .4byte gUnk_02034CB0 -_08053380: .4byte gUnk_02021F30 -_08053384: .4byte gUnk_020344B0 -_08053388: .4byte gUnk_02001A40 -_0805338C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08053390 -sub_08053390: @ 0x08053390 - push {lr} - movs r0, #8 - bl GetInventoryValue - movs r1, #0x19 - cmp r0, #0 - beq _080533A0 - movs r1, #0x18 -_080533A0: - adds r0, r1, #0 - bl sub_0801D7EC - movs r0, #0xa - bl GetInventoryValue - cmp r0, #0 - beq _080533B6 - movs r0, #0x1d - bl sub_0801D7EC -_080533B6: - movs r0, #0xc - bl GetInventoryValue - movs r1, #0x1b - cmp r0, #0 - beq _080533C4 - movs r1, #0x1c -_080533C4: - adds r0, r1, #0 - bl sub_0801D7EC - pop {pc} - - thumb_func_start sub_080533CC -sub_080533CC: @ 0x080533CC - ldr r0, _08053400 @ =gUnk_020178E0 - ldr r2, _08053404 @ =0xFFFFFE00 - adds r1, r0, r2 - ldrh r2, [r0] - strh r2, [r1] - adds r0, #2 - adds r1, #2 - ldrh r2, [r0] - strh r2, [r1] - adds r0, #2 - adds r1, #2 - ldrh r2, [r0] - strh r2, [r1] - adds r0, #2 - adds r1, #2 - ldrh r2, [r0] - strh r2, [r1] - ldrh r0, [r0, #2] - strh r0, [r1, #2] - ldr r2, _08053408 @ =gUnk_0200B644 - ldr r0, [r2] - movs r1, #8 - orrs r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08053400: .4byte gUnk_020178E0 -_08053404: .4byte 0xFFFFFE00 -_08053408: .4byte gUnk_0200B644 - - thumb_func_start sub_0805340C -sub_0805340C: @ 0x0805340C - push {r4, r5, r6, lr} - ldr r5, _08053428 @ =gUnk_02002ECC - movs r4, #0 - ldr r6, _0805342C @ =gUnk_080FCB18 -_08053414: - ldm r6!, {r1} - adds r0, r5, #0 - bl _call_via_r1 - adds r4, #1 - adds r5, #4 - cmp r4, #7 - bls _08053414 - pop {r4, r5, r6, pc} - .align 2, 0 -_08053428: .4byte gUnk_02002ECC -_0805342C: .4byte gUnk_080FCB18 - - thumb_func_start nullsub_480 -nullsub_480: @ 0x08053430 - bx lr - .align 2, 0 - - thumb_func_start sub_08053434 -sub_08053434: @ 0x08053434 - push {lr} - adds r1, r0, #0 - ldr r0, _0805345C @ =gUnk_02033A90 - ldrb r0, [r0, #1] - cmp r0, #0x1d - bne _0805345A - ldr r0, [r1] - cmp r0, #0 - beq _0805345A - subs r0, #1 - str r0, [r1] - cmp r0, #0 - bne _0805345A - bl sub_08053460 - movs r0, #5 - movs r1, #6 - bl sub_080A7138 -_0805345A: - pop {pc} - .align 2, 0 -_0805345C: .4byte gUnk_02033A90 - - thumb_func_start sub_08053460 -sub_08053460: @ 0x08053460 - push {lr} - ldr r0, _08053488 @ =gUnk_02002A40 - ldr r1, _0805348C @ =0x0000048C - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - movs r0, #0x8c - lsls r0, r0, #4 - movs r1, #0x79 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08053480 - movs r0, #0x1c - bl sub_0807CD80 -_08053480: - ldr r0, _08053490 @ =gUnk_080FCB38 - bl sub_0805356C - pop {pc} - .align 2, 0 -_08053488: .4byte gUnk_02002A40 -_0805348C: .4byte 0x0000048C -_08053490: .4byte gUnk_080FCB38 - - thumb_func_start sub_08053494 -sub_08053494: @ 0x08053494 - ldr r0, _080534A0 @ =gUnk_02002A40 - ldr r1, _080534A4 @ =0x0000048C - adds r0, r0, r1 - ldr r1, _080534A8 @ =0x00002A30 - str r1, [r0] - bx lr - .align 2, 0 -_080534A0: .4byte gUnk_02002A40 -_080534A4: .4byte 0x0000048C -_080534A8: .4byte 0x00002A30 - - thumb_func_start sub_080534AC -sub_080534AC: @ 0x080534AC - push {r4, lr} - movs r4, #0x8c - lsls r4, r4, #4 - adds r0, r4, #0 - movs r1, #0x7c - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _080534D6 - adds r0, r4, #0 - movs r1, #0x7c - bl sub_0807CD20 - ldr r0, _080534D8 @ =gUnk_02002A40 - ldr r1, _080534DC @ =0x0000048C - adds r0, r0, r1 - movs r1, #0 - str r1, [r0] - ldr r0, _080534E0 @ =0x80100000 - bl sub_080A3268 -_080534D6: - pop {r4, pc} - .align 2, 0 -_080534D8: .4byte gUnk_02002A40 -_080534DC: .4byte 0x0000048C -_080534E0: .4byte 0x80100000 - - thumb_func_start sub_080534E4 -sub_080534E4: @ 0x080534E4 - push {lr} - adds r1, r0, #0 - ldr r0, _080534FC @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0x1a - beq _080534FA - ldr r0, [r1] - cmp r0, #0 - beq _080534FA - subs r0, #1 - str r0, [r1] -_080534FA: - pop {pc} - .align 2, 0 -_080534FC: .4byte gUnk_03000BF0 - - thumb_func_start sub_08053500 -sub_08053500: @ 0x08053500 - ldr r0, _0805350C @ =gUnk_02002A40 - ldr r1, _08053510 @ =0x00000494 - adds r0, r0, r1 - ldr r1, _08053514 @ =0x00008CA0 - str r1, [r0] - bx lr - .align 2, 0 -_0805350C: .4byte gUnk_02002A40 -_08053510: .4byte 0x00000494 -_08053514: .4byte 0x00008CA0 - - thumb_func_start sub_08053518 -sub_08053518: @ 0x08053518 - push {lr} - bl sub_08053460 - ldr r0, _08053568 @ =gUnk_080FCB62 - bl sub_0805356C - movs r0, #0x1b - bl GetProgressFlag - cmp r0, #0 - bne _08053534 - movs r0, #0x1a - bl sub_0807CD80 -_08053534: - movs r0, #0x40 - bl GetInventoryValue - cmp r0, #0 - bne _08053544 - movs r0, #2 - bl sub_0807CD80 -_08053544: - movs r0, #0x41 - bl GetInventoryValue - cmp r0, #0 - bne _08053554 - movs r0, #3 - bl sub_0807CD80 -_08053554: - movs r0, #0x42 - bl GetInventoryValue - cmp r0, #0 - bne _08053564 - movs r0, #5 - bl sub_0807CD80 -_08053564: - pop {pc} - .align 2, 0 -_08053568: .4byte gUnk_080FCB62 - - thumb_func_start sub_0805356C -sub_0805356C: @ 0x0805356C - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r0, [r4] - ldr r1, _0805358C @ =0x0000FFFF - cmp r0, r1 - beq _0805358A - adds r5, r1, #0 -_0805357A: - ldrh r0, [r4] - ldrh r1, [r4, #2] - bl sub_0807CD20 - adds r4, #4 - ldrh r0, [r4] - cmp r0, r5 - bne _0805357A -_0805358A: - pop {r4, r5, pc} - .align 2, 0 -_0805358C: .4byte 0x0000FFFF - - thumb_func_start sub_08053590 -sub_08053590: @ 0x08053590 - push {lr} - ldr r1, _080535A4 @ =gUnk_080FCBB4 - ldr r0, _080535A8 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080535A4: .4byte gUnk_080FCBB4 -_080535A8: .4byte gUnk_02000080 - - thumb_func_start sub_080535AC -sub_080535AC: @ 0x080535AC - push {lr} - ldr r2, _080535DC @ =gUnk_02000080 - movs r1, #1 - strb r1, [r2, #6] - movs r0, #0x78 - strh r0, [r2, #8] - ldr r0, _080535E0 @ =gUnk_02032EC0 - strb r1, [r0, #6] - ldr r0, _080535E4 @ =gUnk_02000070 - strb r1, [r0] - ldr r2, _080535E8 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _080535EC @ =0x0000FEFF - ands r0, r1 - strh r0, [r2] - ldr r0, _080535F0 @ =gUnk_080FCB94 - bl LoadRoomEntityList - movs r0, #6 - movs r1, #8 - bl sub_08050054 - pop {pc} - .align 2, 0 -_080535DC: .4byte gUnk_02000080 -_080535E0: .4byte gUnk_02032EC0 -_080535E4: .4byte gUnk_02000070 -_080535E8: .4byte gUnk_03000F50 -_080535EC: .4byte 0x0000FEFF -_080535F0: .4byte gUnk_080FCB94 - - thumb_func_start sub_080535F4 -sub_080535F4: @ 0x080535F4 - push {lr} - ldr r0, _0805360C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053608 - bl sub_0805E5B4 - ldr r1, _08053610 @ =gUnk_02000080 - movs r0, #2 - strb r0, [r1, #6] -_08053608: - pop {pc} - .align 2, 0 -_0805360C: .4byte gUnk_03000FD0 -_08053610: .4byte gUnk_02000080 - - thumb_func_start nullsub_481 -nullsub_481: @ 0x08053614 - bx lr - .align 2, 0 - - thumb_func_start sub_08053618 -sub_08053618: @ 0x08053618 - push {lr} - ldr r1, _08053630 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805362C - bl sub_08052004 -_0805362C: - pop {pc} - .align 2, 0 -_08053630: .4byte gUnk_02000080 - - thumb_func_start sub_08053634 -sub_08053634: @ 0x08053634 - push {lr} - ldr r1, _08053644 @ =gUnk_02032EC0 - movs r0, #3 - strb r0, [r1] - bl sub_08056418 - pop {pc} - .align 2, 0 -_08053644: .4byte gUnk_02032EC0 - - thumb_func_start sub_08053648 -sub_08053648: @ 0x08053648 - push {lr} - movs r0, #0x2d - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08053674 - ldr r0, _08053678 @ =gUnk_03000BF0 - movs r3, #0xb4 - lsls r3, r3, #2 - adds r1, r3, #0 - ldrh r3, [r0, #6] - adds r1, r1, r3 - strh r1, [r2, #0x2e] - movs r3, #0xa4 - lsls r3, r3, #1 - adds r1, r3, #0 - ldrh r0, [r0, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] -_08053674: - pop {pc} - .align 2, 0 -_08053678: .4byte gUnk_03000BF0 - - thumb_func_start sub_0805367C -sub_0805367C: @ 0x0805367C - ldr r1, _08053688 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - bx lr - .align 2, 0 -_08053688: .4byte gUnk_02000080 - - thumb_func_start sub_0805368C -sub_0805368C: @ 0x0805368C - push {lr} - movs r0, #6 - movs r1, #0x5d - movs r2, #6 - bl sub_0805EB00 - cmp r0, #0 - beq _080536A6 - bl sub_0805E7BC - movs r0, #0xf0 - bl sub_080A3268 -_080536A6: - pop {pc} - - thumb_func_start sub_080536A8 -sub_080536A8: @ 0x080536A8 - push {lr} - movs r0, #5 - movs r1, #5 - movs r2, #4 - movs r3, #0x10 - bl sub_080A71C4 - pop {pc} - - thumb_func_start sub_080536B8 -sub_080536B8: @ 0x080536B8 - push {lr} - movs r0, #5 - movs r1, #3 - movs r2, #4 - movs r3, #4 - bl sub_080A71C4 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080536D4 -sub_080536D4: @ 0x080536D4 - push {lr} - ldr r1, _080536E8 @ =gUnk_080FCCFC - ldr r0, _080536EC @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080536E8: .4byte gUnk_080FCCFC -_080536EC: .4byte gUnk_02000080 - - thumb_func_start sub_080536F0 -sub_080536F0: @ 0x080536F0 - push {lr} - ldr r1, _08053704 @ =gUnk_080FCD38 - ldr r0, _08053708 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053704: .4byte gUnk_080FCD38 -_08053708: .4byte gUnk_02000080 - - thumb_func_start sub_0805370C -sub_0805370C: @ 0x0805370C - push {lr} - ldr r1, _08053730 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - ldr r1, _08053734 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - bl sub_08051FF0 - ldr r0, _08053738 @ =gUnk_080FCC54 - bl LoadRoomEntityList - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {pc} - .align 2, 0 -_08053730: .4byte gUnk_02000080 -_08053734: .4byte gUnk_02000070 -_08053738: .4byte gUnk_080FCC54 - - thumb_func_start sub_0805373C -sub_0805373C: @ 0x0805373C - push {lr} - ldr r1, _08053750 @ =gUnk_080FCD40 - ldr r0, _08053754 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053750: .4byte gUnk_080FCD40 -_08053754: .4byte gUnk_02000080 - - thumb_func_start sub_08053758 -sub_08053758: @ 0x08053758 - push {r4, lr} - ldr r1, _080537DC @ =gUnk_02000080 - movs r2, #0 - movs r3, #1 - strb r3, [r1, #6] - movs r4, #0 - movs r0, #0x78 - strh r0, [r1, #8] - movs r0, #0x1e - strh r0, [r1, #0xa] - strb r4, [r1, #0x10] - ldr r0, _080537E0 @ =gUnk_02032EC0 - strb r3, [r0, #6] - ldr r0, _080537E4 @ =gUnk_02025EB0 - str r2, [r0] - ldr r0, _080537E8 @ =gUnk_0200B650 - str r2, [r0] - ldr r0, _080537EC @ =gUnk_03000BF0 - str r2, [r0, #0x30] - strh r2, [r0, #0xc] - strh r2, [r0, #0xa] - bl sub_0801B170 - movs r0, #0 - bl sub_0801DA90 - ldr r2, _080537F0 @ =gUnk_03000F50 - movs r0, #0x99 - lsls r0, r0, #6 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _080537F4 @ =0x00002244 - strh r0, [r1] - adds r1, #2 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - subs r1, #8 - movs r0, #0x1f - strh r0, [r1] - adds r1, #2 - movs r0, #0x3f - strh r0, [r1] - subs r1, #0xa - movs r0, #0xf0 - strh r0, [r1] - adds r1, #4 - movs r0, #0x60 - strh r0, [r1] - ldr r0, _080537F8 @ =0x00001C4E - strh r0, [r2, #0x14] - ldr r0, _080537FC @ =0x00001DC1 - strh r0, [r2, #0x20] - movs r0, #0xf - bl sub_080A3268 - bl sub_0805E5B4 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_080537DC: .4byte gUnk_02000080 -_080537E0: .4byte gUnk_02032EC0 -_080537E4: .4byte gUnk_02025EB0 -_080537E8: .4byte gUnk_0200B650 -_080537EC: .4byte gUnk_03000BF0 -_080537F0: .4byte gUnk_03000F50 -_080537F4: .4byte 0x00002244 -_080537F8: .4byte 0x00001C4E -_080537FC: .4byte 0x00001DC1 - - thumb_func_start sub_08053800 -sub_08053800: @ 0x08053800 - push {r4, r5, lr} - ldr r0, _0805387C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805387A - ldr r1, _08053880 @ =gUnk_02000080 - ldrb r5, [r1, #0x10] - lsls r4, r5, #1 - adds r4, r4, r5 - lsls r4, r4, #2 - ldr r0, _08053884 @ =gUnk_080FCCB4 - adds r4, r4, r0 - ldrh r0, [r4, #8] - movs r2, #0 - strh r0, [r1, #8] - movs r0, #0x1e - strh r0, [r1, #0xa] - ldrb r0, [r1, #0x10] - adds r0, #1 - strb r0, [r1, #0x10] - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - strb r2, [r1, #7] - adds r0, r5, #0 - adds r0, #0x8a - bl sub_0801D714 - adds r0, r5, #0 - adds r0, #0x3a - bl sub_0801D7EC - ldr r0, _08053888 @ =gUnk_02021F30 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r0, _0805388C @ =0x00000F01 - adds r5, r5, r0 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_0805F46C - ldr r2, _08053890 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r2, #0x1a] - adds r1, r2, #0 - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] - ldrh r1, [r4, #4] - adds r0, r2, #0 - adds r0, #0x58 - strh r1, [r0] - ldrh r1, [r4, #6] - adds r0, #4 - strh r1, [r0] - ldrh r1, [r4, #0xa] - movs r0, #4 - bl sub_08050054 -_0805387A: - pop {r4, r5, pc} - .align 2, 0 -_0805387C: .4byte gUnk_03000FD0 -_08053880: .4byte gUnk_02000080 -_08053884: .4byte gUnk_080FCCB4 -_08053888: .4byte gUnk_02021F30 -_0805388C: .4byte 0x00000F01 -_08053890: .4byte gUnk_03000F50 - - thumb_func_start sub_08053894 -sub_08053894: @ 0x08053894 - push {r4, lr} - ldr r0, _080538B4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080538F8 - ldr r1, _080538B8 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - ldrh r0, [r1, #0xa] - adds r4, r1, #0 - cmp r0, #0 - beq _080538BC - subs r0, #1 - strh r0, [r4, #0xa] - b _080538E4 - .align 2, 0 -_080538B4: .4byte gUnk_03000FD0 -_080538B8: .4byte gUnk_02000080 -_080538BC: - ldr r0, _080538FC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080538E4 - ldrb r1, [r4, #7] - cmp r1, #0xf - bhi _080538E4 - adds r1, #1 - strb r1, [r4, #7] - lsls r1, r1, #0x18 - ldr r3, _08053900 @ =gUnk_03000F50 - lsrs r2, r1, #0x10 - lsrs r1, r1, #0x19 - movs r0, #0x10 - subs r0, r0, r1 - orrs r2, r0 - adds r3, #0x68 - strh r2, [r3] -_080538E4: - ldrh r0, [r4, #8] - cmp r0, #0 - bne _080538F8 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #5 - movs r1, #8 - bl sub_08050054 -_080538F8: - pop {r4, pc} - .align 2, 0 -_080538FC: .4byte gUnk_030010A0 -_08053900: .4byte gUnk_03000F50 - - thumb_func_start sub_08053904 -sub_08053904: @ 0x08053904 - push {r4, lr} - ldr r0, _08053924 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053968 - ldr r1, _08053928 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - ldrh r0, [r1, #0xa] - adds r4, r1, #0 - cmp r0, #0 - beq _0805392C - subs r0, #1 - strh r0, [r4, #0xa] - b _08053954 - .align 2, 0 -_08053924: .4byte gUnk_03000FD0 -_08053928: .4byte gUnk_02000080 -_0805392C: - ldr r0, _0805396C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08053954 - ldrb r1, [r4, #7] - cmp r1, #0xf - bhi _08053954 - adds r1, #1 - strb r1, [r4, #7] - lsls r1, r1, #0x18 - ldr r3, _08053970 @ =gUnk_03000F50 - lsrs r2, r1, #0x10 - lsrs r1, r1, #0x19 - movs r0, #0x10 - subs r0, r0, r1 - orrs r2, r0 - adds r3, #0x68 - strh r2, [r3] -_08053954: - ldrh r0, [r4, #8] - cmp r0, #0 - bne _08053968 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #5 - movs r1, #1 - bl sub_08050054 -_08053968: - pop {r4, pc} - .align 2, 0 -_0805396C: .4byte gUnk_030010A0 -_08053970: .4byte gUnk_03000F50 - - thumb_func_start sub_08053974 -sub_08053974: @ 0x08053974 - push {lr} - ldr r0, _080539AC @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080539A8 - bl sub_0804FFE4 - movs r0, #1 - bl sub_0801DA90 - bl sub_080197AC - bl sub_08051F78 - ldr r0, _080539B0 @ =gUnk_080FCBC4 - bl LoadRoomEntityList - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - ldr r1, _080539B4 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_080539A8: - pop {pc} - .align 2, 0 -_080539AC: .4byte gUnk_03000FD0 -_080539B0: .4byte gUnk_080FCBC4 -_080539B4: .4byte gUnk_02000080 - - thumb_func_start nullsub_482 -nullsub_482: @ 0x080539B8 - bx lr - .align 2, 0 - - thumb_func_start sub_080539BC -sub_080539BC: @ 0x080539BC - push {lr} - bl sub_080197AC - bl sub_0805E89C - movs r0, #0x22 - movs r1, #0x11 - movs r2, #0 - movs r3, #0 - bl sub_08051F9C - movs r0, #0x22 - movs r1, #0x11 - bl sub_0804B0B0 - ldr r0, _080539EC @ =gUnk_080FCC14 - bl LoadRoomEntityList - ldr r1, _080539F0 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - pop {pc} - .align 2, 0 -_080539EC: .4byte gUnk_080FCC14 -_080539F0: .4byte gUnk_02000080 - - thumb_func_start sub_080539F4 -sub_080539F4: @ 0x080539F4 - push {lr} - ldr r0, _08053A14 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053A10 - movs r0, #1 - bl sub_0801DA90 - ldr r0, _08053A18 @ =gUnk_02000080 - ldrb r1, [r0, #6] - adds r1, #1 - strb r1, [r0, #6] - movs r1, #0x3c - strh r1, [r0, #8] -_08053A10: - pop {pc} - .align 2, 0 -_08053A14: .4byte gUnk_03000FD0 -_08053A18: .4byte gUnk_02000080 - - thumb_func_start sub_08053A1C -sub_08053A1C: @ 0x08053A1C - push {r4, lr} - ldr r1, _08053A50 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08053A4E - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r4, #8 - movs r0, #8 - strh r0, [r1, #8] - ldr r0, _08053A54 @ =0x00000F07 - bl sub_08056378 - ldr r1, _08053A58 @ =gUnk_02000050 - movs r0, #1 - strb r0, [r1, #6] - strb r4, [r1, #7] - movs r0, #4 - movs r1, #8 - bl sub_08050054 -_08053A4E: - pop {r4, pc} - .align 2, 0 -_08053A50: .4byte gUnk_02000080 -_08053A54: .4byte 0x00000F07 -_08053A58: .4byte gUnk_02000050 - - thumb_func_start sub_08053A5C -sub_08053A5C: @ 0x08053A5C - push {lr} - ldr r0, _08053A88 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08053A86 - ldr r1, _08053A8C @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08053A86 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r0, #5 - movs r1, #8 - bl sub_08050054 -_08053A86: - pop {pc} - .align 2, 0 -_08053A88: .4byte gUnk_02000050 -_08053A8C: .4byte gUnk_02000080 - - thumb_func_start sub_08053A90 -sub_08053A90: @ 0x08053A90 - push {lr} - ldr r0, _08053AA8 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053AA4 - ldr r1, _08053AAC @ =gUnk_02032EC0 - movs r0, #3 - strb r0, [r1] - bl sub_080197AC -_08053AA4: - pop {pc} - .align 2, 0 -_08053AA8: .4byte gUnk_03000FD0 -_08053AAC: .4byte gUnk_02032EC0 - - thumb_func_start sub_08053AB0 -sub_08053AB0: @ 0x08053AB0 - push {lr} - ldr r1, _08053AC4 @ =gUnk_080FCDD4 - ldr r0, _08053AC8 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053AC4: .4byte gUnk_080FCDD4 -_08053AC8: .4byte gUnk_02000080 - - thumb_func_start sub_08053ACC -sub_08053ACC: @ 0x08053ACC - push {lr} - ldr r1, _08053AF4 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - ldr r1, _08053AF8 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - bl sub_08051FF0 - ldr r0, _08053AFC @ =gUnk_080FCD84 - bl LoadRoomEntityList - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - pop {pc} - .align 2, 0 -_08053AF4: .4byte gUnk_02000080 -_08053AF8: .4byte gUnk_02000070 -_08053AFC: .4byte gUnk_080FCD84 - - thumb_func_start sub_08053B00 -sub_08053B00: @ 0x08053B00 - ldr r1, _08053B0C @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - bx lr - .align 2, 0 -_08053B0C: .4byte gUnk_02000080 - - thumb_func_start sub_08053B10 -sub_08053B10: @ 0x08053B10 - push {lr} - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - beq _08053B34 - ldr r0, _08053B38 @ =gUnk_02000080 - ldrb r1, [r0, #5] - adds r1, #1 - strb r1, [r0, #5] - movs r0, #1 - bl sub_0801DA90 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #4 - bl sub_08050054 -_08053B34: - pop {pc} - .align 2, 0 -_08053B38: .4byte gUnk_02000080 - - thumb_func_start sub_08053B3C -sub_08053B3C: @ 0x08053B3C - push {r4, lr} - movs r4, #0x80 - lsls r4, r4, #1 - movs r0, #5 - movs r1, #4 - movs r2, #5 - adds r3, r4, #0 - bl sub_080A71C4 - movs r0, #5 - adds r1, r4, #0 - bl sub_08050054 - pop {r4, pc} - - thumb_func_start sub_08053B58 -sub_08053B58: @ 0x08053B58 - push {lr} - ldr r1, _08053B6C @ =gUnk_080FCEB0 - ldr r0, _08053B70 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053B6C: .4byte gUnk_080FCEB0 -_08053B70: .4byte gUnk_02000080 - - thumb_func_start sub_08053B74 -sub_08053B74: @ 0x08053B74 - push {lr} - ldr r1, _08053BA0 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - ldr r1, _08053BA4 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - ldr r0, _08053BA8 @ =gUnk_080FCDE0 - bl LoadRoomEntityList - bl sub_0805E5B4 - bl sub_0805E470 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - pop {pc} - .align 2, 0 -_08053BA0: .4byte gUnk_02000080 -_08053BA4: .4byte gUnk_02000070 -_08053BA8: .4byte gUnk_080FCDE0 - - thumb_func_start sub_08053BAC -sub_08053BAC: @ 0x08053BAC - ldr r1, _08053BB8 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - bx lr - .align 2, 0 -_08053BB8: .4byte gUnk_02000080 - - thumb_func_start sub_08053BBC -sub_08053BBC: @ 0x08053BBC - push {lr} - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _08053BE0 - ldr r0, _08053BE4 @ =gUnk_02000080 - ldrb r1, [r0, #5] - adds r1, #1 - strb r1, [r0, #5] - movs r0, #1 - bl sub_0801DA90 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #4 - bl sub_08050054 -_08053BE0: - pop {pc} - .align 2, 0 -_08053BE4: .4byte gUnk_02000080 - - thumb_func_start sub_08053BE8 -sub_08053BE8: @ 0x08053BE8 - push {r4, lr} - movs r4, #0x80 - lsls r4, r4, #1 - movs r0, #5 - movs r1, #2 - movs r2, #5 - adds r3, r4, #0 - bl sub_080A71C4 - movs r0, #5 - adds r1, r4, #0 - bl sub_08050054 - pop {r4, pc} - - thumb_func_start sub_08053C04 -sub_08053C04: @ 0x08053C04 - push {lr} - ldr r1, _08053C18 @ =gUnk_080FCEEC - ldr r0, _08053C1C @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053C18: .4byte gUnk_080FCEEC -_08053C1C: .4byte gUnk_02000080 - - thumb_func_start sub_08053C20 -sub_08053C20: @ 0x08053C20 - push {lr} - ldr r1, _08053C50 @ =gUnk_02000080 - movs r2, #1 - strb r2, [r1, #6] - movs r0, #0x78 - strh r0, [r1, #8] - ldr r0, _08053C54 @ =gUnk_02000070 - strb r2, [r0] - bl sub_08051FF0 - movs r0, #4 - bl sub_0805B4D0 - ldr r0, _08053C58 @ =gUnk_080FCEBC - bl LoadRoomEntityList - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0x33 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08053C50: .4byte gUnk_02000080 -_08053C54: .4byte gUnk_02000070 -_08053C58: .4byte gUnk_080FCEBC - - thumb_func_start nullsub_483 -nullsub_483: @ 0x08053C5C - bx lr - .align 2, 0 - - thumb_func_start sub_08053C60 -sub_08053C60: @ 0x08053C60 - push {lr} - movs r0, #5 - movs r1, #2 - bl sub_08050054 - movs r0, #0xf4 - bl sub_080A3268 - ldr r0, _08053C80 @ =0x80100000 - bl sub_080A3268 - movs r0, #3 - bl sub_08056010 - pop {pc} - .align 2, 0 -_08053C80: .4byte 0x80100000 - - thumb_func_start sub_08053C84 -sub_08053C84: @ 0x08053C84 - ldr r1, _08053C8C @ =gUnk_02000080 - movs r0, #2 - strb r0, [r1, #6] - bx lr - .align 2, 0 -_08053C8C: .4byte gUnk_02000080 - - thumb_func_start sub_08053C90 -sub_08053C90: @ 0x08053C90 - push {lr} - ldr r1, _08053CA4 @ =gUnk_080FCEF8 - ldr r0, _08053CA8 @ =gUnk_02000080 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053CA4: .4byte gUnk_080FCEF8 -_08053CA8: .4byte gUnk_02000080 - - thumb_func_start sub_08053CAC -sub_08053CAC: @ 0x08053CAC - push {lr} - ldr r1, _08053CC0 @ =gUnk_080FCFA4 - ldr r0, _08053CC4 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053CC0: .4byte gUnk_080FCFA4 -_08053CC4: .4byte gUnk_02000080 - - thumb_func_start sub_08053CC8 -sub_08053CC8: @ 0x08053CC8 - push {r4, r5, r6, lr} - ldr r6, _08053D20 @ =gUnk_02000080 - ldrb r4, [r6, #3] - lsls r4, r4, #4 - ldr r0, _08053D24 @ =gUnk_080FCF04 - adds r4, r4, r0 - adds r0, r4, #0 - adds r0, #8 - str r0, [r6, #0xc] - ldr r0, [r4] - bl LoadRoomEntityList - ldrb r0, [r4, #4] - ldrb r1, [r4, #5] - movs r2, #1 - bl sub_0804B0FC - bl LoadRoomEntityList - ldrb r0, [r4, #4] - ldrb r1, [r4, #5] - movs r2, #2 - bl sub_0804B0FC - bl LoadRoomEntityList - movs r5, #1 - strb r5, [r6, #6] - ldr r2, _08053D28 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _08053D2C @ =0x0000FEFF - ands r0, r1 - strh r0, [r2] - ldr r0, _08053D30 @ =gUnk_02000070 - strb r5, [r0] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - ldrb r0, [r4, #5] - cmp r0, #0x1d - bne _08053D1E - strh r5, [r6, #0xa] -_08053D1E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08053D20: .4byte gUnk_02000080 -_08053D24: .4byte gUnk_080FCF04 -_08053D28: .4byte gUnk_03000F50 -_08053D2C: .4byte 0x0000FEFF -_08053D30: .4byte gUnk_02000070 - - thumb_func_start sub_08053D34 -sub_08053D34: @ 0x08053D34 - push {r4, lr} - ldr r1, _08053D88 @ =gUnk_02000080 - ldrh r0, [r1, #0xa] - cmp r0, #0 - beq _08053D72 - movs r0, #0 - strh r0, [r1, #0xa] - movs r4, #0xd0 - lsls r4, r4, #3 - adds r0, r4, #0 - movs r1, #0x3d - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08053D5C - movs r0, #0x74 - movs r1, #0xc4 - movs r2, #1 - bl sub_0807B314 -_08053D5C: - adds r0, r4, #0 - movs r1, #0x3e - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08053D72 - movs r0, #0x74 - movs r1, #0xcc - movs r2, #1 - bl sub_0807B314 -_08053D72: - ldr r0, _08053D8C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053D86 - ldr r1, _08053D88 @ =gUnk_02000080 - movs r0, #0x78 - strh r0, [r1, #8] - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_08053D86: - pop {r4, pc} - .align 2, 0 -_08053D88: .4byte gUnk_02000080 -_08053D8C: .4byte gUnk_03000FD0 - - thumb_func_start sub_08053D90 -sub_08053D90: @ 0x08053D90 - push {lr} - ldr r1, _08053DB0 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08053DAC - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r0, #0x10 - bl sub_080500F4 -_08053DAC: - pop {pc} - .align 2, 0 -_08053DB0: .4byte gUnk_02000080 - - thumb_func_start sub_08053DB4 -sub_08053DB4: @ 0x08053DB4 - push {r4, r5, lr} - ldr r0, _08053E20 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053E1C - ldr r5, _08053E24 @ =gUnk_02000080 - ldr r4, [r5, #0xc] - ldrb r0, [r4, #4] - ldrb r1, [r4, #5] - bl sub_08052FF4 - bl sub_0807C740 - ldr r1, _08053E28 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - ldr r1, _08053E2C @ =gUnk_03000BF0 - movs r0, #6 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0xa] - adds r0, r0, r2 - strh r0, [r1, #0xa] - movs r0, #7 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0xc] - adds r0, r0, r2 - strh r0, [r1, #0xc] - ldr r0, [r4] - bl LoadRoomEntityList - ldrb r0, [r4, #4] - ldrb r1, [r4, #5] - movs r2, #1 - bl sub_0804B0FC - bl LoadRoomEntityList - ldrb r0, [r4, #4] - ldrb r1, [r4, #5] - movs r2, #2 - bl sub_0804B0FC - bl LoadRoomEntityList - movs r0, #0x78 - strh r0, [r5, #8] - ldrb r0, [r5, #6] - adds r0, #1 - strb r0, [r5, #6] - movs r0, #0x10 - bl sub_080500F4 -_08053E1C: - pop {r4, r5, pc} - .align 2, 0 -_08053E20: .4byte gUnk_03000FD0 -_08053E24: .4byte gUnk_02000080 -_08053E28: .4byte gUnk_02000070 -_08053E2C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08053E30 -sub_08053E30: @ 0x08053E30 - push {lr} - ldr r0, _08053E50 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053E4E - ldr r1, _08053E54 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08053E4E - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08053E4E: - pop {pc} - .align 2, 0 -_08053E50: .4byte gUnk_03000FD0 -_08053E54: .4byte gUnk_02000080 - - thumb_func_start sub_08053E58 -sub_08053E58: @ 0x08053E58 - push {lr} - ldr r1, _08053E6C @ =gUnk_080FD108 - ldr r0, _08053E70 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053E6C: .4byte gUnk_080FD108 -_08053E70: .4byte gUnk_02000080 - - thumb_func_start sub_08053E74 -sub_08053E74: @ 0x08053E74 - push {r4, lr} - ldr r0, _08053EB0 @ =gUnk_080FCFB8 - ldr r4, _08053EB4 @ =gUnk_02000080 - str r0, [r4, #0xc] - ldr r0, [r0] - bl LoadRoomEntityList - movs r0, #0x78 - strh r0, [r4, #8] - movs r0, #0x3c - strh r0, [r4, #0xa] - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r2, _08053EB8 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _08053EBC @ =0x0000FEFF - ands r0, r1 - strh r0, [r2] - ldr r1, _08053EC0 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #1 - bl sub_0805E450 - movs r0, #4 - movs r1, #8 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08053EB0: .4byte gUnk_080FCFB8 -_08053EB4: .4byte gUnk_02000080 -_08053EB8: .4byte gUnk_03000F50 -_08053EBC: .4byte 0x0000FEFF -_08053EC0: .4byte gUnk_02000070 - - thumb_func_start sub_08053EC4 -sub_08053EC4: @ 0x08053EC4 - push {r4, lr} - ldr r0, _08053EF4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053EF0 - ldr r4, _08053EF8 @ =gUnk_02000080 - ldrh r0, [r4, #0xa] - subs r0, #1 - strh r0, [r4, #0xa] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08053EF0 - ldr r1, [r4, #0xc] - adds r0, r1, #0 - adds r0, #0xc - str r0, [r4, #0xc] - ldr r0, [r1, #4] - bl LoadRoomEntityList - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] -_08053EF0: - pop {r4, pc} - .align 2, 0 -_08053EF4: .4byte gUnk_03000FD0 -_08053EF8: .4byte gUnk_02000080 - - thumb_func_start sub_08053EFC -sub_08053EFC: @ 0x08053EFC - push {lr} - ldr r1, _08053F1C @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08053F18 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r0, #8 - bl sub_080500F4 -_08053F18: - pop {pc} - .align 2, 0 -_08053F1C: .4byte gUnk_02000080 - - thumb_func_start sub_08053F20 -sub_08053F20: @ 0x08053F20 - push {r4, r5, lr} - ldr r0, _08053F78 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053F74 - bl sub_0805E89C - ldr r5, _08053F7C @ =gUnk_02000080 - ldr r4, [r5, #0xc] - ldrb r0, [r4, #8] - ldrb r1, [r4, #9] - bl sub_08052FF4 - bl sub_0807C740 - ldr r1, _08053F80 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - ldr r1, _08053F84 @ =gUnk_03000BF0 - movs r0, #0xa - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0xa] - adds r0, r0, r2 - strh r0, [r1, #0xa] - movs r0, #0xb - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0xc] - adds r0, r0, r2 - strh r0, [r1, #0xc] - ldr r0, [r4] - bl LoadRoomEntityList - movs r0, #0x78 - strh r0, [r5, #8] - movs r0, #0x3c - strh r0, [r5, #0xa] - ldrb r0, [r5, #6] - adds r0, #1 - strb r0, [r5, #6] - movs r0, #8 - bl sub_080500F4 -_08053F74: - pop {r4, r5, pc} - .align 2, 0 -_08053F78: .4byte gUnk_03000FD0 -_08053F7C: .4byte gUnk_02000080 -_08053F80: .4byte gUnk_02000070 -_08053F84: .4byte gUnk_03000BF0 - - thumb_func_start sub_08053F88 -sub_08053F88: @ 0x08053F88 - push {lr} - ldr r0, _08053FAC @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08053FAA - ldr r1, _08053FB0 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08053FAA - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] - bl sub_0805E470 -_08053FAA: - pop {pc} - .align 2, 0 -_08053FAC: .4byte gUnk_03000FD0 -_08053FB0: .4byte gUnk_02000080 - - thumb_func_start sub_08053FB4 -sub_08053FB4: @ 0x08053FB4 - push {lr} - ldr r1, _08053FC8 @ =gUnk_080FD138 - ldr r0, _08053FCC @ =gUnk_02000080 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08053FC8: .4byte gUnk_080FD138 -_08053FCC: .4byte gUnk_02000080 - - thumb_func_start sub_08053FD0 -sub_08053FD0: @ 0x08053FD0 - lsls r0, r0, #3 - ldr r1, _08053FDC @ =gUnk_080FD964 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bx lr - .align 2, 0 -_08053FDC: .4byte gUnk_080FD964 - - thumb_func_start sub_08053FE0 -sub_08053FE0: @ 0x08053FE0 - lsls r0, r0, #3 - ldr r1, _08053FEC @ =gUnk_080FD964 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_08053FEC: .4byte gUnk_080FD964 - - thumb_func_start sub_08053FF0 -sub_08053FF0: @ 0x08053FF0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r7, r1, #0 - bl GetInventoryValue - adds r5, r0, #0 - lsls r1, r6, #3 - ldr r0, _08054010 @ =gUnk_080FD5B4 - adds r4, r1, r0 - cmp r5, #0 - bne _08054014 - ldrh r0, [r4, #4] - mov r8, r0 - b _08054018 - .align 2, 0 -_08054010: .4byte gUnk_080FD5B4 -_08054014: - ldrh r2, [r4, #6] - mov r8, r2 -_08054018: - adds r0, r6, #0 - bl sub_080544C8 - cmp r0, #0 - bne _08054034 - adds r0, r6, #0 - bl sub_08054398 - cmp r5, #0 - bne _08054034 - adds r0, r6, #0 - movs r1, #1 - bl sub_0807CAA0 -_08054034: - ldrb r0, [r4, #1] - cmp r0, #0x12 - bls _0805403C - b _0805427C -_0805403C: - lsls r0, r0, #2 - ldr r1, _08054048 @ =_0805404C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08054048: .4byte _0805404C -_0805404C: @ jump table - .4byte _0805427C @ case 0 - .4byte _08054098 @ case 1 - .4byte _080540A6 @ case 2 - .4byte _080540C0 @ case 3 - .4byte _08054104 @ case 4 - .4byte _0805414C @ case 5 - .4byte _08054154 @ case 6 - .4byte _08054194 @ case 7 - .4byte _080541B6 @ case 8 - .4byte _080541F0 @ case 9 - .4byte _08054212 @ case 10 - .4byte _080541F8 @ case 11 - .4byte _08054238 @ case 12 - .4byte _08054174 @ case 13 - .4byte _08054240 @ case 14 - .4byte _0805425C @ case 15 - .4byte _08054264 @ case 16 - .4byte _080541B0 @ case 17 - .4byte _0805417C @ case 18 -_08054098: - ldrb r0, [r4, #2] - bl sub_080526A0 - movs r0, #0x71 - bl sub_080A3268 - b _0805427C -_080540A6: - ldr r0, _080540BC @ =gUnk_080FD5A8 - ldrb r1, [r4, #2] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - bl sub_080526CC - movs r0, #0x6f - bl sub_080A3268 - b _0805427C - .align 2, 0 -_080540BC: .4byte gUnk_080FD5A8 -_080540C0: - movs r5, #0 - movs r4, #0x1c - b _080540CA -_080540C6: - adds r4, r1, #1 - adds r5, #1 -_080540CA: - cmp r5, #3 - bls _080540D0 - b _0805427C -_080540D0: - adds r0, r4, #0 - bl GetInventoryValue - adds r1, r4, #0 - cmp r0, #0 - bne _080540C6 - adds r6, r4, #0 - ldr r0, _08054100 @ =gUnk_02002A40 - adds r0, #0xb6 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _080540EE - movs r0, #0x20 - strb r0, [r1] -_080540EE: - adds r0, r6, #0 - movs r1, #1 - bl sub_0807CAA0 - adds r0, r6, #0 - bl sub_08054398 - b _0805427C - .align 2, 0 -_08054100: .4byte gUnk_02002A40 -_08054104: - movs r5, #0 - ldr r0, _08054144 @ =gUnk_02002A40 - adds r2, r0, #0 - adds r2, #0xb6 - ldrb r1, [r2] - adds r3, r0, #0 - cmp r1, #0x20 - beq _08054126 - adds r1, r2, #0 -_08054116: - adds r5, #1 - cmp r5, #3 - bls _0805411E - b _0805427C -_0805411E: - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, #0x20 - bne _08054116 -_08054126: - cmp r5, #3 - bls _0805412C - b _0805427C -_0805412C: - adds r0, r3, #0 - adds r0, #0xb6 - adds r0, r5, r0 - strb r6, [r0] - adds r0, r6, #0 - movs r1, #1 - bl sub_0807CAA0 - ldr r0, _08054148 @ =0x00000109 - bl sub_080A3268 - b _0805427C - .align 2, 0 -_08054144: .4byte gUnk_02002A40 -_08054148: .4byte 0x00000109 -_0805414C: - movs r0, #1 - bl sub_080526F8 - b _0805424E -_08054154: - ldr r1, _08054168 @ =gUnk_02002A40 - ldr r0, _0805416C @ =gUnk_02033A90 - ldr r2, _08054170 @ =0x0000046C - adds r1, r1, r2 - ldrb r0, [r0, #3] - adds r1, r1, r0 - ldrb r0, [r1] - ldrb r2, [r4, #2] - orrs r0, r2 - b _0805427A - .align 2, 0 -_08054168: .4byte gUnk_02002A40 -_0805416C: .4byte gUnk_02033A90 -_08054170: .4byte 0x0000046C -_08054174: - movs r0, #0x72 - bl sub_0801E738 - b _0805427C -_0805417C: - cmp r6, #0xb - bne _0805418A - movs r0, #0xc - movs r1, #0 - bl sub_0807CAA0 - b _080541B0 -_0805418A: - movs r0, #0xb - movs r1, #0 - bl sub_0807CAA0 - b _080541B0 -_08054194: - cmp r6, #7 - bne _080541A2 - movs r0, #8 - movs r1, #0 - bl sub_0807CAA0 - b _080541AA -_080541A2: - movs r0, #7 - movs r1, #0 - bl sub_0807CAA0 -_080541AA: - movs r0, #0x63 - bl sub_080542F4 -_080541B0: - bl sub_08053390 - b _0805427C -_080541B6: - cmp r5, #0 - bne _080541CA - movs r0, #7 - movs r1, #1 - bl sub_0807CAA0 - movs r0, #7 - bl sub_08054398 - b _080541E2 -_080541CA: - ldr r0, _080541EC @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xae - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _080541E2 - movs r0, #3 - strb r0, [r1] -_080541E2: - movs r0, #0x63 - bl sub_080542F4 - b _0805427C - .align 2, 0 -_080541EC: .4byte gUnk_02002A40 -_080541F0: - ldrb r0, [r4, #2] - bl sub_080542F4 - b _0805424E -_080541F8: - movs r0, #0x66 - bl GetInventoryValue - cmp r0, #0 - bne _0805420A - movs r0, #0x66 - movs r1, #1 - bl sub_0807CAA0 -_0805420A: - movs r0, #0x63 - bl sub_08054330 - b _080541B0 -_08054212: - ldr r0, _08054234 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xaf - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0805422A - movs r0, #3 - strb r0, [r1] -_0805422A: - movs r0, #0x63 - bl sub_08054330 - b _0805427C - .align 2, 0 -_08054234: .4byte gUnk_02002A40 -_08054238: - ldrb r0, [r4, #2] - bl sub_08054330 - b _0805424E -_08054240: - movs r0, #0x3f - movs r1, #1 - bl sub_0807CAA0 - adds r0, r7, #0 - bl sub_080542C0 -_0805424E: - ldr r0, _08054258 @ =0x00000103 - bl sub_080A3268 - b _0805427C - .align 2, 0 -_08054258: .4byte 0x00000103 -_0805425C: - adds r0, r7, #0 - bl sub_0801E738 - b _0805427C -_08054264: - ldr r0, _08054284 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xa8 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0805427C - movs r0, #3 -_0805427A: - strb r0, [r1] -_0805427C: - mov r0, r8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08054284: .4byte gUnk_02002A40 - - thumb_func_start sub_08054288 -sub_08054288: @ 0x08054288 - push {lr} - ldr r1, _08054298 @ =gUnk_080FD5B4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #6] - bl sub_08056378 - pop {pc} - .align 2, 0 -_08054298: .4byte gUnk_080FD5B4 - - thumb_func_start sub_0805429C -sub_0805429C: @ 0x0805429C - ldr r1, _080542A8 @ =gUnk_080FD5B4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r0, [r0, #4] - bx lr - .align 2, 0 -_080542A8: .4byte gUnk_080FD5B4 - - thumb_func_start sub_080542AC -sub_080542AC: @ 0x080542AC - ldr r1, _080542BC @ =gUnk_080FD5B4 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r1, [r0, #3] - movs r0, #1 - ands r0, r1 - bx lr - .align 2, 0 -_080542BC: .4byte gUnk_080FD5B4 - - thumb_func_start sub_080542C0 -sub_080542C0: @ 0x080542C0 - push {lr} - adds r2, r0, #0 - cmp r2, #0 - bne _080542CA - movs r2, #1 -_080542CA: - ldr r1, _080542DC @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xc2 - ldrh r0, [r0] - adds r2, r2, r0 - cmp r2, #0 - bge _080542E0 - movs r2, #0 - b _080542E8 - .align 2, 0 -_080542DC: .4byte gUnk_02002A40 -_080542E0: - ldr r3, _080542F0 @ =0x000003E7 - cmp r2, r3 - ble _080542E8 - adds r2, r3, #0 -_080542E8: - adds r0, r1, #0 - adds r0, #0xc2 - strh r2, [r0] - pop {pc} - .align 2, 0 -_080542F0: .4byte 0x000003E7 - - thumb_func_start sub_080542F4 -sub_080542F4: @ 0x080542F4 - push {lr} - adds r3, r0, #0 - ldr r1, _08054318 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xac - ldrb r0, [r0] - adds r3, r3, r0 - ldr r2, _0805431C @ =gUnk_080FD5A0 - adds r0, r1, #0 - adds r0, #0xae - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - cmp r3, #0 - bge _08054320 - movs r3, #0 - b _08054326 - .align 2, 0 -_08054318: .4byte gUnk_02002A40 -_0805431C: .4byte gUnk_080FD5A0 -_08054320: - cmp r2, r3 - bge _08054326 - adds r3, r2, #0 -_08054326: - adds r0, r1, #0 - adds r0, #0xac - strb r3, [r0] - pop {pc} - .align 2, 0 - - thumb_func_start sub_08054330 -sub_08054330: @ 0x08054330 - push {lr} - adds r3, r0, #0 - ldr r1, _08054354 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xad - ldrb r0, [r0] - adds r3, r3, r0 - ldr r2, _08054358 @ =gUnk_080FD5A4 - adds r0, r1, #0 - adds r0, #0xaf - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r2, [r0] - cmp r3, #0 - bge _0805435C - movs r3, #0 - b _08054362 - .align 2, 0 -_08054354: .4byte gUnk_02002A40 -_08054358: .4byte gUnk_080FD5A4 -_0805435C: - cmp r2, r3 - bge _08054362 - adds r3, r2, #0 -_08054362: - adds r0, r1, #0 - adds r0, #0xad - strb r3, [r0] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805436C -sub_0805436C: @ 0x0805436C - push {lr} - adds r2, r0, #0 - ldr r1, _08054380 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xb4 - ldrb r0, [r0] - cmp r2, r0 - bne _08054384 - movs r1, #0 - b _08054392 - .align 2, 0 -_08054380: .4byte gUnk_02002A40 -_08054384: - adds r0, r1, #0 - adds r0, #0xb5 - movs r1, #2 - ldrb r0, [r0] - cmp r2, r0 - bne _08054392 - movs r1, #1 -_08054392: - adds r0, r1, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08054398 -sub_08054398: @ 0x08054398 - push {r4, r5, lr} - adds r5, r0, #0 - cmp r5, #0x46 - bhi _080543A8 - movs r0, #0 - movs r1, #1 - bl sub_0807CAA0 -_080543A8: - subs r0, r5, #1 - cmp r0, #0x1e - bhi _08054410 - movs r1, #2 - ldr r2, _080543C0 @ =gUnk_02002A40 - adds r0, r2, #0 - adds r0, #0xb4 - ldrb r0, [r0] - cmp r0, #0 - bne _080543C4 - movs r1, #0 - b _080543D0 - .align 2, 0 -_080543C0: .4byte gUnk_02002A40 -_080543C4: - adds r0, r2, #0 - adds r0, #0xb5 - ldrb r0, [r0] - cmp r0, #0 - bne _080543D0 - movs r1, #1 -_080543D0: - cmp r1, #2 - bne _0805440A - ldr r3, _080543F0 @ =gUnk_080FD5B4 - lsls r0, r5, #3 - adds r0, r0, r3 - ldrb r4, [r0] - adds r0, r2, #0 - adds r0, #0xb4 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r4, r0 - bne _080543F4 - movs r1, #0 - b _08054406 - .align 2, 0 -_080543F0: .4byte gUnk_080FD5B4 -_080543F4: - adds r0, r2, #0 - adds r0, #0xb5 - ldrb r0, [r0] - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r4, r0 - bne _08054406 - movs r1, #1 -_08054406: - cmp r1, #2 - beq _08054410 -_0805440A: - adds r0, r5, #0 - bl sub_08054414 -_08054410: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08054414 -sub_08054414: @ 0x08054414 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - subs r0, r4, #1 - cmp r0, #0x1e - bhi _08054456 - cmp r1, #1 - bhi _08054456 - movs r2, #0 - cmp r1, #0 - bne _0805442A - movs r2, #1 -_0805442A: - ldr r0, _08054458 @ =gUnk_02002A40 - adds r0, #0xb4 - adds r6, r1, r0 - ldrb r7, [r6] - adds r5, r2, r0 - ldrb r3, [r5] - ldr r2, _0805445C @ =gUnk_080FD5B4 - lsls r1, r3, #3 - adds r1, r1, r2 - lsls r0, r4, #3 - adds r0, r0, r2 - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _0805444A - adds r3, r7, #0 -_0805444A: - strb r4, [r6] - strb r3, [r5] - ldr r1, _08054460 @ =gUnk_0200AF00 - movs r0, #0x7f - strb r0, [r1, #0x13] - strb r0, [r1, #0x14] -_08054456: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08054458: .4byte gUnk_02002A40 -_0805445C: .4byte gUnk_080FD5B4 -_08054460: .4byte gUnk_0200AF00 - - thumb_func_start sub_08054464 -sub_08054464: @ 0x08054464 - push {r4, lr} - adds r4, r0, #0 - ldr r3, _08054498 @ =gUnk_02002A40 - cmp r1, #3 - bls _0805448C - movs r1, #0 - adds r2, r3, #0 - adds r2, #0xb6 - ldrb r0, [r2] - cmp r0, #0x20 - beq _08054488 -_0805447A: - adds r1, #1 - cmp r1, #3 - bhi _08054494 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, #0x20 - bne _0805447A -_08054488: - cmp r1, #3 - bhi _08054494 -_0805448C: - adds r0, r3, #0 - adds r0, #0xb6 - adds r0, r1, r0 - strb r4, [r0] -_08054494: - adds r0, r1, #0 - pop {r4, pc} - .align 2, 0 -_08054498: .4byte gUnk_02002A40 - - thumb_func_start sub_0805449C -sub_0805449C: @ 0x0805449C - push {lr} - cmp r0, #1 - blo _080544AE - cmp r0, #4 - bls _080544AA - cmp r0, #6 - bne _080544AE -_080544AA: - movs r0, #1 - b _080544B0 -_080544AE: - movs r0, #0 -_080544B0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080544B4 -sub_080544B4: @ 0x080544B4 - push {lr} - cmp r0, #0xe - bhi _080544C2 - cmp r0, #0xd - blo _080544C2 - movs r0, #1 - b _080544C4 -_080544C2: - movs r0, #0 -_080544C4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080544C8 -sub_080544C8: @ 0x080544C8 - push {lr} - cmp r0, #0x1f - bhi _080544D6 - cmp r0, #0x1c - blo _080544D6 - movs r0, #1 - b _080544D8 -_080544D6: - movs r0, #0 -_080544D8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080544DC -sub_080544DC: @ 0x080544DC - push {lr} - adds r2, r0, #0 - ldr r1, _080544F0 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xb6 - ldrb r0, [r0] - cmp r2, r0 - bne _080544F4 - movs r0, #1 - b _08054520 - .align 2, 0 -_080544F0: .4byte gUnk_02002A40 -_080544F4: - adds r0, r1, #0 - adds r0, #0xb7 - ldrb r0, [r0] - cmp r2, r0 - bne _08054502 - movs r0, #2 - b _08054520 -_08054502: - adds r0, r1, #0 - adds r0, #0xb8 - ldrb r0, [r0] - cmp r2, r0 - bne _08054510 - movs r0, #3 - b _08054520 -_08054510: - adds r0, r1, #0 - adds r0, #0xb9 - ldrb r0, [r0] - cmp r2, r0 - beq _0805451E - movs r0, #0 - b _08054520 -_0805451E: - movs r0, #4 -_08054520: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08054524 -sub_08054524: @ 0x08054524 - push {lr} - ldr r0, _08054550 @ =gUnk_02033A90 - ldrb r1, [r0, #1] - cmp r1, #0 - bne _08054534 - ldr r0, _08054554 @ =gUnk_030010A0 - adds r0, #0x2e - ldrb r1, [r0] -_08054534: - cmp r1, #0x16 - bls _0805453A - movs r1, #0 -_0805453A: - ldr r0, _08054558 @ =gUnk_080FE1C6 - adds r0, r1, r0 - ldrb r1, [r0] - lsls r0, r1, #5 - ldr r1, _0805455C @ =gUnk_080015BC - adds r0, r0, r1 - ldr r1, _08054560 @ =gUnk_02034398 - movs r2, #0x20 - bl sub_0801D66C - pop {pc} - .align 2, 0 -_08054550: .4byte gUnk_02033A90 -_08054554: .4byte gUnk_030010A0 -_08054558: .4byte gUnk_080FE1C6 -_0805455C: .4byte gUnk_080015BC -_08054560: .4byte gUnk_02034398 - - thumb_func_start sub_08054564 -sub_08054564: @ 0x08054564 - ldr r1, _0805456C @ =gUnk_02034350 - movs r0, #1 - strb r0, [r1, #2] - bx lr - .align 2, 0 -_0805456C: .4byte gUnk_02034350 - - thumb_func_start sub_08054570 -sub_08054570: @ 0x08054570 - ldr r1, _08054578 @ =gUnk_02034350 - movs r0, #0 - strb r0, [r1, #2] - bx lr - .align 2, 0 -_08054578: .4byte gUnk_02034350 - - thumb_func_start sub_0805457C -sub_0805457C: @ 0x0805457C - push {r4, r5, r6, r7, lr} - sub sp, #0x20 - adds r6, r0, #0 - adds r3, r1, #0 - ldr r0, _080545A4 @ =gUnk_02034350 - ldrb r1, [r0, #2] - adds r5, r0, #0 - cmp r1, #1 - bne _08054590 - b _0805474C -_08054590: - ldr r2, _080545A8 @ =gUnk_08001A1C - movs r4, #0 - cmp r3, #0x19 - bhi _0805463C - lsls r0, r3, #2 - ldr r1, _080545AC @ =_080545B0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080545A4: .4byte gUnk_02034350 -_080545A8: .4byte gUnk_08001A1C -_080545AC: .4byte _080545B0 -_080545B0: @ jump table - .4byte _0805463C @ case 0 - .4byte _08054618 @ case 1 - .4byte _08054618 @ case 2 - .4byte _08054618 @ case 3 - .4byte _08054618 @ case 4 - .4byte _08054618 @ case 5 - .4byte _08054618 @ case 6 - .4byte _08054618 @ case 7 - .4byte _08054618 @ case 8 - .4byte _08054618 @ case 9 - .4byte _08054618 @ case 10 - .4byte _08054618 @ case 11 - .4byte _08054618 @ case 12 - .4byte _0805463C @ case 13 - .4byte _0805463C @ case 14 - .4byte _0805463A @ case 15 - .4byte _08054634 @ case 16 - .4byte _08054634 @ case 17 - .4byte _08054634 @ case 18 - .4byte _08054634 @ case 19 - .4byte _08054634 @ case 20 - .4byte _08054634 @ case 21 - .4byte _08054634 @ case 22 - .4byte _08054634 @ case 23 - .4byte _08054624 @ case 24 - .4byte _08054624 @ case 25 -_08054618: - lsls r1, r3, #5 - ldr r0, _08054620 @ =gUnk_0800137C - adds r4, r1, r0 - b _0805463C - .align 2, 0 -_08054620: .4byte gUnk_0800137C -_08054624: - ldrb r0, [r5, #0xa] - ldr r4, _08054630 @ =gUnk_0800191C - cmp r0, #0 - beq _0805463C - adds r4, #0x20 - b _0805463C - .align 2, 0 -_08054630: .4byte gUnk_0800191C -_08054634: - lsls r1, r3, #5 - ldr r0, _08054650 @ =gUnk_0800161C - adds r2, r1, r0 -_0805463A: - ldr r4, _08054654 @ =gUnk_02034398 -_0805463C: - cmp r4, #0 - bne _08054642 - b _0805474C -_08054642: - ldr r0, _08054658 @ =gUnk_02002A40 - adds r0, #0xb3 - ldrb r1, [r0] - cmp r1, #0 - bne _08054660 - ldr r3, _0805465C @ =gUnk_08001A1C - b _08054666 - .align 2, 0 -_08054650: .4byte gUnk_0800161C -_08054654: .4byte gUnk_02034398 -_08054658: .4byte gUnk_02002A40 -_0805465C: .4byte gUnk_08001A1C -_08054660: - lsls r1, r1, #5 - ldr r0, _0805473C @ =gUnk_0800143C - adds r3, r1, r0 -_08054666: - mov r0, sp - adds r1, r4, #0 - bl sub_08000F14 - ldr r4, _08054740 @ =gUnk_02002A40 - adds r0, r4, #0 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #8 - bhi _08054684 - mov r1, sp - mov r0, sp - ldrh r0, [r0, #8] - adds r0, #5 - strh r0, [r1, #8] -_08054684: - adds r0, r4, #0 - adds r0, #0xac - ldrb r0, [r0] - cmp r0, #0 - bne _08054698 - mov r1, sp - mov r0, sp - ldrh r0, [r0, #0xc] - adds r0, #3 - strh r0, [r1, #0xc] -_08054698: - adds r0, r4, #0 - adds r0, #0xad - ldrb r0, [r0] - cmp r0, #0 - bne _080546AC - mov r1, sp - mov r0, sp - ldrh r0, [r0, #0xe] - adds r0, #3 - strh r0, [r1, #0xe] -_080546AC: - adds r0, r4, #0 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r0, #0xa - bhi _080546C0 - mov r1, sp - mov r0, sp - ldrh r0, [r0, #4] - adds r0, #1 - strh r0, [r1, #4] -_080546C0: - ldr r2, _08054744 @ =gUnk_08001A1C - adds r0, r4, #0 - adds r0, #0xbb - ldrb r0, [r0] - adds r3, r2, #0 - cmp r0, #0 - beq _080546D0 - adds r2, #0x20 -_080546D0: - movs r1, #0x8b - lsls r1, r1, #1 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _080546DE - adds r3, #0x40 -_080546DE: - mov r0, sp - mov r1, sp - bl sub_08000F2C - adds r4, r0, #0 - bl sub_08000E50 - adds r2, r0, #0 - asrs r5, r2, #0x18 - movs r0, #0xf - ands r5, r0 - adds r0, r2, #0 - adds r1, r4, #0 - bl __modsi3 - adds r2, r0, #0 - movs r3, #0 - lsls r0, r5, #1 - add r0, sp - movs r4, #0 - ldrsh r1, [r0, r4] - cmp r1, r2 - bgt _08054726 - movs r4, #0xf -_0805470E: - adds r3, #1 - adds r5, #1 - ands r5, r4 - cmp r3, #0xf - bhi _08054726 - lsls r0, r5, #1 - add r0, sp - movs r7, #0 - ldrsh r0, [r0, r7] - adds r1, r1, r0 - cmp r1, r2 - ble _0805470E -_08054726: - ldr r0, _08054748 @ =gUnk_080FE1B4 - adds r0, r5, r0 - ldrb r1, [r0] - cmp r1, #0 - beq _0805474C - adds r0, r6, #0 - movs r2, #0 - bl sub_08054754 - b _0805474E - .align 2, 0 -_0805473C: .4byte gUnk_0800143C -_08054740: .4byte gUnk_02002A40 -_08054744: .4byte gUnk_08001A1C -_08054748: .4byte gUnk_080FE1B4 -_0805474C: - movs r0, #0 -_0805474E: - add sp, #0x20 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08054754 -sub_08054754: @ 0x08054754 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - cmp r4, #0x5e - beq _08054786 - cmp r4, #0x5e - bhi _08054772 - cmp r4, #0x5c - beq _080547A6 - cmp r4, #0x5c - bhi _08054782 - cmp r4, #0x3f - beq _08054794 - b _080547DA -_08054772: - cmp r4, #0xfc - blo _080547DA - cmp r4, #0xfe - bls _080547A6 - cmp r4, #0xff - bne _080547DA - movs r0, #1 - b _08054788 -_08054782: - movs r0, #0x65 - b _08054788 -_08054786: - movs r0, #9 -_08054788: - bl GetInventoryValue - cmp r0, #0 - bne _080547DA -_08054790: - movs r0, #0 - b _0805486C -_08054794: - movs r0, #0x40 - bl GetInventoryValue - cmp r0, #0 - beq _08054790 - cmp r5, #0 - bne _080547DA - movs r5, #1 - b _080547DA -_080547A6: - movs r0, #0x67 - bl GetInventoryValue - cmp r0, #0 - beq _08054790 - ldr r0, _080547FC @ =gUnk_02034350 - ldrb r0, [r0, #5] - cmp r0, #3 - bhi _08054790 - cmp r4, #0x5c - beq _080547DA - adds r5, r4, #0 - subs r5, #0xfc - bl sub_08000E50 - movs r1, #0x3f - ands r1, r0 - ldr r2, _08054800 @ =gUnk_080FE1DD - lsls r0, r5, #6 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r5, [r1] - movs r4, #0x5c - cmp r5, #0 - bne _080547DA - movs r4, #0 -_080547DA: - cmp r4, #0 - beq _0805486A - cmp r4, #0xff - beq _08054842 - movs r0, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805486A - ldr r0, _08054804 @ =gLinkEntity - cmp r6, r0 - bne _08054808 - movs r0, #1 - b _0805480A - .align 2, 0 -_080547FC: .4byte gUnk_02034350 -_08054800: .4byte gUnk_080FE1DD -_08054804: .4byte gLinkEntity -_08054808: - movs r0, #0 -_0805480A: - strb r0, [r2, #0xe] - ldrb r0, [r6, #8] - cmp r0, #6 - bne _08054838 - ldrb r0, [r6, #9] - cmp r0, #0x63 - bne _0805481C - str r2, [r6, #0x54] - b _08054838 -_0805481C: - cmp r0, #0x1e - bne _08054838 - ldrb r0, [r6, #0x14] - lsls r0, r0, #3 - movs r3, #0x80 - rsbs r3, r3, #0 - adds r1, r3, #0 - orrs r0, r1 - strb r0, [r2, #0x15] - movs r0, #0xc0 - strh r0, [r2, #0x24] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r2, #0x20] -_08054838: - adds r0, r6, #0 - adds r1, r2, #0 - bl sub_0806FA24 - b _0805486A -_08054842: - movs r0, #7 - movs r1, #0 - bl CreateEnemy - adds r2, r0, #0 - cmp r2, #0 - beq _0805486A - ldrh r0, [r6, #0x2e] - strh r0, [r2, #0x2e] - ldrh r0, [r6, #0x32] - strh r0, [r2, #0x32] - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r2, #0 - bl sub_08016A04 -_0805486A: - adds r0, r4, #0 -_0805486C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08054870 -sub_08054870: @ 0x08054870 - push {lr} - ldr r1, _08054884 @ =gUnk_080FE2A0 - ldr r0, _08054888 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08054884: .4byte gUnk_080FE2A0 -_08054888: .4byte gUnk_02000080 - - thumb_func_start sub_0805488C -sub_0805488C: @ 0x0805488C - push {r4, lr} - ldr r4, _080548DC @ =gUnk_02032EC0 - ldrb r1, [r4, #3] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080548E0 @ =gUnk_080FE320 - adds r0, r0, r1 - ldr r2, _080548E4 @ =gUnk_02000080 - ldrb r1, [r0] - movs r3, #0 - strb r1, [r2] - ldrb r1, [r0, #1] - strb r1, [r2, #3] - ldrb r1, [r4, #3] - strb r1, [r2, #4] - str r0, [r2, #0xc] - ldrb r0, [r2, #5] - adds r0, #1 - strb r0, [r2, #5] - strb r3, [r2, #6] - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r2, #8] - movs r0, #0 - bl sub_0801DA90 - ldrb r0, [r4, #3] - movs r1, #1 - bl sub_08054974 - bl sub_0806F364 - movs r0, #0xff - bl sub_0807CD8C - bl sub_080548E8 - pop {r4, pc} - .align 2, 0 -_080548DC: .4byte gUnk_02032EC0 -_080548E0: .4byte gUnk_080FE320 -_080548E4: .4byte gUnk_02000080 - - thumb_func_start sub_080548E8 -sub_080548E8: @ 0x080548E8 - push {lr} - ldr r1, _08054918 @ =gUnk_080FE2AC - ldr r0, _0805491C @ =gUnk_02000080 - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - bl sub_080AD90C - bl sub_0805E5C0 - bl sub_080AD9B0 - bl sub_080AD918 - bl sub_0807FC40 - bl sub_0801B060 - bl sub_08000108 - pop {pc} - .align 2, 0 -_08054918: .4byte gUnk_080FE2AC -_0805491C: .4byte gUnk_02000080 - - thumb_func_start sub_08054920 -sub_08054920: @ 0x08054920 - push {lr} - bl sub_08056418 - bl sub_0806F38C - ldr r1, _08054948 @ =gUnk_080C9CBC - ldr r0, _0805494C @ =gUnk_02022740 - ldrb r0, [r0, #3] - lsls r0, r0, #3 - adds r0, r0, r1 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _08054954 - ldr r0, _08054950 @ =gUnk_02032EC0 - ldrb r1, [r0, #3] - movs r0, #0xa - bl sub_080A7138 - b _08054962 - .align 2, 0 -_08054948: .4byte gUnk_080C9CBC -_0805494C: .4byte gUnk_02022740 -_08054950: .4byte gUnk_02032EC0 -_08054954: - ldr r1, _08054964 @ =gUnk_02032EC0 - movs r0, #3 - strb r0, [r1] - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 -_08054962: - pop {pc} - .align 2, 0 -_08054964: .4byte gUnk_02032EC0 - - thumb_func_start sub_08054968 -sub_08054968: @ 0x08054968 - ldr r1, _08054970 @ =gUnk_02000080 - movs r0, #2 - strb r0, [r1, #5] - bx lr - .align 2, 0 -_08054970: .4byte gUnk_02000080 - - thumb_func_start sub_08054974 -sub_08054974: @ 0x08054974 - push {r4, r5, r6, lr} - adds r5, r1, #0 - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080549B0 @ =gUnk_080FE320 - adds r6, r1, r0 - ldrb r0, [r6, #2] - ldrb r1, [r6, #3] - bl sub_0804B0C0 - ldr r4, _080549B4 @ =gUnk_03000BF0 - ldrb r0, [r6, #2] - strb r0, [r4, #4] - ldrb r0, [r6, #3] - strb r0, [r4, #5] - bl sub_08053320 - ldrb r0, [r4, #4] - bl sub_08052D58 - ldr r1, _080549B8 @ =gUnk_02033A90 - strh r0, [r1, #4] - cmp r5, #0 - beq _080549BC - ldrb r0, [r6, #2] - ldrb r1, [r6, #3] - bl sub_08052FD8 - b _080549CE - .align 2, 0 -_080549B0: .4byte gUnk_080FE320 -_080549B4: .4byte gUnk_03000BF0 -_080549B8: .4byte gUnk_02033A90 -_080549BC: - ldrb r0, [r6, #2] - ldrb r1, [r6, #3] - bl sub_08052FF4 - bl sub_0807C740 - ldr r1, _08054A00 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_080549CE: - ldr r2, _08054A04 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _08054A08 @ =0x00001FFF - ands r0, r1 - strh r0, [r2] - ldr r1, _08054A0C @ =gUnk_03000BF0 - ldrh r0, [r6, #4] - ldrh r2, [r1, #6] - adds r0, r0, r2 - strh r0, [r1, #0xa] - ldrh r0, [r6, #6] - ldrh r2, [r1, #8] - adds r0, r0, r2 - strh r0, [r1, #0xc] - ldrb r0, [r6, #2] - cmp r0, #2 - bne _080549F4 - bl sub_08059D18 -_080549F4: - ldr r0, _08054A10 @ =gUnk_02032EC0 - ldrb r0, [r0, #3] - bl sub_08018710 - pop {r4, r5, r6, pc} - .align 2, 0 -_08054A00: .4byte gUnk_02000070 -_08054A04: .4byte gUnk_03000F50 -_08054A08: .4byte 0x00001FFF -_08054A0C: .4byte gUnk_03000BF0 -_08054A10: .4byte gUnk_02032EC0 - - thumb_func_start sub_08054A14 -sub_08054A14: @ 0x08054A14 - push {lr} - lsls r1, r0, #2 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08054A38 @ =gUnk_080FE320 - adds r2, r1, r0 - ldrb r0, [r2, #0x11] - cmp r0, #0xd - bhi _08054A34 - ldr r1, _08054A3C @ =gUnk_0811E454 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r2, #0x12] - bl sub_0807CC9C -_08054A34: - pop {pc} - .align 2, 0 -_08054A38: .4byte gUnk_080FE320 -_08054A3C: .4byte gUnk_0811E454 - - thumb_func_start sub_08054A40 -sub_08054A40: @ 0x08054A40 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08054A5C @ =gUnk_080FEEA8 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r4, #0x41 - movs r0, #0 - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08054A5C: .4byte gUnk_080FEEA8 - - thumb_func_start sub_08054A60 -sub_08054A60: @ 0x08054A60 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0xa0 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #4 - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r4, #0x11] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - subs r1, #1 - movs r0, #0x80 - strb r0, [r1] - ldr r0, _08054AC4 @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r0, #0xe - ands r0, r1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0806FBD8 - cmp r0, #0 - bne _08054AAC - bl sub_0805E780 -_08054AAC: - adds r0, r4, #0 - bl sub_0801766C - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - adds r0, r4, #0 - bl sub_08054AC8 - pop {r4, pc} - .align 2, 0 -_08054AC4: .4byte gLinkEntity - - thumb_func_start sub_08054AC8 -sub_08054AC8: @ 0x08054AC8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r5, _08054B14 @ =gLinkEntity - ldrb r1, [r5, #0x14] - movs r0, #0xe - ands r0, r1 - strb r0, [r4, #0x14] - ldr r1, [r4, #0x48] - ldr r2, _08054B18 @ =gUnk_080FEEB0 - ldrb r0, [r4, #0x14] - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, [r4, #0x48] - ldrb r0, [r4, #0x14] - adds r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1, #1] - ldr r0, [r4, #0x48] - movs r1, #4 - strb r1, [r0, #6] - ldr r0, [r4, #0x48] - strb r1, [r0, #7] - ldrb r7, [r5, #0x1e] - adds r6, r7, #0 - cmp r6, #0x36 - bhi _08054B06 - ldrh r0, [r5, #0x12] - cmp r0, #6 - beq _08054B1C -_08054B06: - movs r0, #0xff - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _08054B68 - .align 2, 0 -_08054B14: .4byte gLinkEntity -_08054B18: .4byte gUnk_080FEEB0 -_08054B1C: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r2, [r5, #0x18] - movs r1, #0x40 - ands r1, r2 - ldrb r3, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - lsrs r2, r2, #7 - lsls r2, r2, #7 - movs r1, #0x7f - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - ldrb r0, [r4, #0x1e] - cmp r6, r0 - beq _08054B52 - strb r7, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08054B52: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x5a - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x5b - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] -_08054B68: - movs r0, #0x10 - bl sub_0805436C - cmp r0, #1 - bhi _08054BFC - ldrb r0, [r4, #0x1e] - cmp r0, #0xff - beq _08054BE8 - ldr r0, _08054BF4 @ =gLinkEntity - ldrb r0, [r0, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08054BE8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08054BE8 - movs r0, #4 - strb r0, [r4, #0xe] - movs r0, #0x45 - movs r1, #0 - movs r2, #0x10 - bl CreateObject - adds r5, r0, #0 - cmp r5, #0 - beq _08054BE8 - movs r3, #0x80 - lsls r3, r3, #0xa - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl PositionRelative - adds r0, r4, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - adds r3, r5, #0 - adds r3, #0x29 - lsrs r1, r1, #0x1d - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldr r1, _08054BF8 @ =gUnk_080FEEB0 - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - adds r2, r5, #0 - adds r2, #0x62 - strb r0, [r2] - ldrb r0, [r4, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] -_08054BE8: - ldr r1, _08054BF4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_08078E84 - b _08054C00 - .align 2, 0 -_08054BF4: .4byte gLinkEntity -_08054BF8: .4byte gUnk_080FEEB0 -_08054BFC: - bl sub_0805E780 -_08054C00: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08054C04 -sub_08054C04: @ 0x08054C04 - push {lr} - ldr r1, _08054C18 @ =gUnk_080FEEB8 - ldr r0, _08054C1C @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08054C18: .4byte gUnk_080FEEB8 -_08054C1C: .4byte gUnk_02000080 - - thumb_func_start sub_08054C20 -sub_08054C20: @ 0x08054C20 - push {r4, lr} - ldr r4, _08054C50 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #4] - movs r1, #0 - bl sub_0801876C - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08054C54 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08054C50: .4byte gUnk_02000080 -_08054C54: .4byte gUnk_02000070 - - thumb_func_start sub_08054C58 -sub_08054C58: @ 0x08054C58 - push {lr} - ldr r0, _08054C80 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08054C7C - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08054C7C - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 - ldr r1, _08054C84 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_08054C7C: - pop {pc} - .align 2, 0 -_08054C80: .4byte gUnk_03000FD0 -_08054C84: .4byte gUnk_02000080 - - thumb_func_start sub_08054C88 -sub_08054C88: @ 0x08054C88 - push {r4, lr} - ldr r0, _08054CB8 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08054CB4 - ldr r4, _08054CBC @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #0 - bl sub_08054974 - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0x73 - bl sub_080A3268 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0x78 - strh r0, [r4, #8] -_08054CB4: - pop {r4, pc} - .align 2, 0 -_08054CB8: .4byte gUnk_03000FD0 -_08054CBC: .4byte gUnk_02000080 - - thumb_func_start sub_08054CC0 -sub_08054CC0: @ 0x08054CC0 - push {lr} - ldr r0, _08054CE0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08054CDE - ldr r1, _08054CE4 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08054CDE - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08054CDE: - pop {pc} - .align 2, 0 -_08054CE0: .4byte gUnk_03000FD0 -_08054CE4: .4byte gUnk_02000080 - - thumb_func_start sub_08054CE8 -sub_08054CE8: @ 0x08054CE8 - push {lr} - ldr r1, _08054CFC @ =gUnk_080FEEC8 - ldr r0, _08054D00 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08054CFC: .4byte gUnk_080FEEC8 -_08054D00: .4byte gUnk_02000080 - - thumb_func_start sub_08054D04 -sub_08054D04: @ 0x08054D04 - push {r4, lr} - ldr r4, _08054D34 @ =gUnk_02000080 - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0B0 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08054D38 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08054D34: .4byte gUnk_02000080 -_08054D38: .4byte gUnk_02000070 - - thumb_func_start sub_08054D3C -sub_08054D3C: @ 0x08054D3C - push {r4, lr} - ldr r0, _08054D6C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08054D6A - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08054D6A - ldr r4, _08054D70 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #1 - bl sub_0801876C - ldrb r0, [r4, #4] - bl sub_080553E0 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0x78 - strh r0, [r4, #8] -_08054D6A: - pop {r4, pc} - .align 2, 0 -_08054D6C: .4byte gUnk_03000FD0 -_08054D70: .4byte gUnk_02000080 - - thumb_func_start sub_08054D74 -sub_08054D74: @ 0x08054D74 - push {lr} - ldr r1, _08054D8C @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08054D8A - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08054D8A: - pop {pc} - .align 2, 0 -_08054D8C: .4byte gUnk_02000080 - - thumb_func_start sub_08054D90 -sub_08054D90: @ 0x08054D90 - push {lr} - ldr r1, _08054DA4 @ =gUnk_080FEF34 - ldr r0, _08054DA8 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08054DA4: .4byte gUnk_080FEF34 -_08054DA8: .4byte gUnk_02000080 - - thumb_func_start sub_08054DAC -sub_08054DAC: @ 0x08054DAC - push {r4, lr} - ldr r4, _08054DF0 @ =gUnk_02000080 - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0B0 - ldr r0, _08054DF4 @ =gUnk_080FEED4 - bl LoadRoomEntityList - movs r0, #2 - bl sub_0805B4D0 - movs r0, #0 - bl sub_0806D0B0 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08054DF8 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08054DF0: .4byte gUnk_02000080 -_08054DF4: .4byte gUnk_080FEED4 -_08054DF8: .4byte gUnk_02000070 - - thumb_func_start nullsub_484 -nullsub_484: @ 0x08054DFC - bx lr - .align 2, 0 - - thumb_func_start sub_08054E00 -sub_08054E00: @ 0x08054E00 - push {lr} - ldr r1, _08054E14 @ =gUnk_080FEF3C - ldr r0, _08054E18 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08054E14: .4byte gUnk_080FEF3C -_08054E18: .4byte gUnk_02000080 - - thumb_func_start sub_08054E1C -sub_08054E1C: @ 0x08054E1C - push {r4, r5, lr} - ldr r5, _08054E54 @ =gUnk_02000080 - ldr r4, [r5, #0xc] - ldrb r0, [r4, #2] - ldrb r1, [r4, #3] - bl sub_0804B0B0 - ldrb r0, [r4, #2] - ldrb r1, [r4, #3] - bl sub_0804B0E8 - ldrb r0, [r5, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r5, #6] - adds r0, #1 - strb r0, [r5, #6] - ldr r1, _08054E58 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, r5, pc} - .align 2, 0 -_08054E54: .4byte gUnk_02000080 -_08054E58: .4byte gUnk_02000070 - - thumb_func_start sub_08054E5C -sub_08054E5C: @ 0x08054E5C - push {r4, lr} - ldr r0, _08054E94 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08054E92 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08054E92 - ldr r4, _08054E98 @ =gUnk_02000080 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0xb4 - strh r0, [r4, #8] - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 - ldrb r0, [r4, #4] - bl sub_080553E0 - ldrb r0, [r4, #4] - movs r1, #1 - bl sub_0801876C -_08054E92: - pop {r4, pc} - .align 2, 0 -_08054E94: .4byte gUnk_03000FD0 -_08054E98: .4byte gUnk_02000080 - - thumb_func_start sub_08054E9C -sub_08054E9C: @ 0x08054E9C - push {lr} - ldr r1, _08054EB4 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08054EB2 - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08054EB2: - pop {pc} - .align 2, 0 -_08054EB4: .4byte gUnk_02000080 - - thumb_func_start sub_08054EB8 -sub_08054EB8: @ 0x08054EB8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805E8D4 - adds r3, r0, #0 - cmp r3, #0 - beq _08054EF6 - movs r0, #9 - strb r0, [r3, #8] - movs r0, #0x24 - strb r0, [r3, #9] - ldr r2, _08054EF8 @ =gUnk_03000BF0 - ldrh r0, [r4, #0x2e] - ldrh r1, [r2, #6] - subs r0, r0, r1 - strh r0, [r3, #0x38] - ldrh r0, [r4, #0x32] - ldrh r1, [r2, #8] - subs r0, r0, r1 - subs r0, #0x10 - strh r0, [r3, #0x3a] - adds r1, r3, #0 - adds r1, #0x35 - movs r0, #1 - strb r0, [r1] - movs r0, #0x79 - strh r0, [r3, #0x3e] - adds r0, r3, #0 - movs r1, #6 - bl sub_0805EA2C -_08054EF6: - pop {r4, pc} - .align 2, 0 -_08054EF8: .4byte gUnk_03000BF0 - - thumb_func_start sub_08054EFC -sub_08054EFC: @ 0x08054EFC - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _08054F5C @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r5, #0x32 - ldrsh r0, [r4, r5] - ldrh r2, [r2, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r1, r0 - subs r1, #0x40 - ldr r0, _08054F60 @ =0x00004074 - movs r2, #1 - bl sub_0800015E - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0x35 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08054F54 - ldrh r0, [r1, #0x32] - subs r0, #0x10 - strh r0, [r1, #0x32] - adds r0, r4, #0 - bl sub_0806FAD8 -_08054F54: - movs r0, #0xfd - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_08054F5C: .4byte gUnk_03000BF0 -_08054F60: .4byte 0x00004074 - - thumb_func_start sub_08054F64 -sub_08054F64: @ 0x08054F64 - push {lr} - ldrb r0, [r0, #0xb] - ldr r3, _08054F7C @ =gUnk_02033280 - ldr r2, [r3] - adds r1, r2, #0 - ands r1, r0 - cmp r1, r0 - beq _08054F80 - movs r0, #0 - strb r0, [r3, #6] - b _08054F8C - .align 2, 0 -_08054F7C: .4byte gUnk_02033280 -_08054F80: - bics r2, r1 - str r2, [r3] - ldrb r1, [r3, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r3, #7] -_08054F8C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08054F90 -sub_08054F90: @ 0x08054F90 - push {lr} - ldr r1, _08054FA4 @ =gUnk_080FF120 - ldr r0, _08054FA8 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08054FA4: .4byte gUnk_080FF120 -_08054FA8: .4byte gUnk_02000080 - - thumb_func_start sub_08054FAC -sub_08054FAC: @ 0x08054FAC - push {r4, r5, r6, lr} - ldr r6, _08055008 @ =gUnk_02000080 - ldr r5, [r6, #0xc] - ldr r1, _0805500C @ =gUnk_080FF108 - ldrb r0, [r5, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl LoadRoomEntityList - ldrb r0, [r5, #1] - movs r1, #0 - cmp r0, #0 - beq _08054FCA - movs r1, #3 -_08054FCA: - ldrb r0, [r6, #4] - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r6, #6] - adds r0, #1 - movs r4, #0 - strb r0, [r6, #6] - ldr r1, _08055010 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - strh r4, [r6, #0xa] - movs r0, #0x80 - lsls r0, r0, #3 - movs r1, #0x77 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _08055004 - ldrb r0, [r5, #2] - cmp r0, #0x2f - bne _08055004 - movs r0, #1 - strh r0, [r6, #0xa] -_08055004: - pop {r4, r5, r6, pc} - .align 2, 0 -_08055008: .4byte gUnk_02000080 -_0805500C: .4byte gUnk_080FF108 -_08055010: .4byte gUnk_02000070 - - thumb_func_start sub_08055014 -sub_08055014: @ 0x08055014 - push {lr} - ldr r1, _08055030 @ =gUnk_02000080 - ldrh r0, [r1, #0xa] - cmp r0, #0 - beq _0805502C - movs r0, #0 - strh r0, [r1, #0xa] - ldr r1, _08055034 @ =0x00000407 - movs r0, #0x74 - movs r2, #1 - bl sub_0807B314 -_0805502C: - pop {pc} - .align 2, 0 -_08055030: .4byte gUnk_02000080 -_08055034: .4byte 0x00000407 - - thumb_func_start sub_08055038 -sub_08055038: @ 0x08055038 - push {lr} - ldr r1, _0805504C @ =gUnk_080FF148 - ldr r0, _08055050 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0805504C: .4byte gUnk_080FF148 -_08055050: .4byte gUnk_02000080 - - thumb_func_start sub_08055054 -sub_08055054: @ 0x08055054 - push {r4, lr} - ldr r0, _08055080 @ =gUnk_080FF128 - bl LoadRoomEntityList - ldr r4, _08055084 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #2 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055088 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055080: .4byte gUnk_080FF128 -_08055084: .4byte gUnk_02000080 -_08055088: .4byte gUnk_02000070 - - thumb_func_start sub_0805508C -sub_0805508C: @ 0x0805508C - bx lr - .align 2, 0 - - thumb_func_start sub_08055090 -sub_08055090: @ 0x08055090 - bx lr - .align 2, 0 - - thumb_func_start sub_08055094 -sub_08055094: @ 0x08055094 - push {lr} - ldr r1, _080550A8 @ =gUnk_080FF174 - ldr r0, _080550AC @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080550A8: .4byte gUnk_080FF174 -_080550AC: .4byte gUnk_02000080 - - thumb_func_start sub_080550B0 -sub_080550B0: @ 0x080550B0 - push {r4, lr} - ldr r4, _080550E8 @ =gUnk_02000080 - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0B0 - ldr r0, _080550EC @ =gUnk_080FF154 - bl LoadRoomEntityList - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _080550F0 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_080550E8: .4byte gUnk_02000080 -_080550EC: .4byte gUnk_080FF154 -_080550F0: .4byte gUnk_02000070 - - thumb_func_start nullsub_487 -nullsub_487: @ 0x080550F4 - bx lr - .align 2, 0 - - thumb_func_start sub_080550F8 -sub_080550F8: @ 0x080550F8 - push {lr} - ldr r1, _0805510C @ =gUnk_080FF1CC - ldr r0, _08055110 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0805510C: .4byte gUnk_080FF1CC -_08055110: .4byte gUnk_02000080 - - thumb_func_start sub_08055114 -sub_08055114: @ 0x08055114 - push {r4, lr} - ldr r0, _08055150 @ =gUnk_080FF17C - bl LoadRoomEntityList - ldr r0, _08055154 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #9 - beq _0805512A - ldr r0, _08055158 @ =0x00000DB4 - bl sub_08018C58 -_0805512A: - ldr r4, _0805515C @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055160 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055150: .4byte gUnk_080FF17C -_08055154: .4byte gUnk_02002A40 -_08055158: .4byte 0x00000DB4 -_0805515C: .4byte gUnk_02000080 -_08055160: .4byte gUnk_02000070 - - thumb_func_start nullsub_488 -nullsub_488: @ 0x08055164 - bx lr - .align 2, 0 - - thumb_func_start sub_08055168 -sub_08055168: @ 0x08055168 - push {lr} - ldr r1, _0805517C @ =gUnk_080FF1F4 - ldr r0, _08055180 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0805517C: .4byte gUnk_080FF1F4 -_08055180: .4byte gUnk_02000080 - - thumb_func_start sub_08055184 -sub_08055184: @ 0x08055184 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r5, _0805520C @ =gUnk_02000080 - ldr r0, [r5, #0xc] - ldrb r1, [r0, #1] - movs r0, #0xf - ands r0, r1 - lsls r4, r0, #1 - adds r4, r4, r0 - lsls r4, r4, #1 - ldr r0, _08055210 @ =gUnk_080FF1D4 - adds r4, r4, r0 - movs r1, #0 - ldrsh r0, [r4, r1] - bl sub_0801D7EC - ldr r2, _08055214 @ =gUnk_03000F50 - ldrh r0, [r4, #2] - movs r6, #0 - movs r3, #0 - mov r8, r3 - strh r0, [r2, #0x2e] - ldrh r0, [r4, #4] - strh r0, [r2, #0x30] - ldr r0, _08055218 @ =0x00001E05 - strh r0, [r2, #0x2c] - adds r1, r2, #0 - adds r1, #0x66 - ldr r0, _0805521C @ =0x00003648 - strh r0, [r1] - adds r1, #2 - movs r0, #0x10 - strh r0, [r1] - ldrh r0, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldrb r0, [r5, #4] - movs r1, #1 - bl sub_0801876C - ldrb r0, [r5, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r5, #6] - adds r0, #1 - strb r0, [r5, #6] - strb r6, [r5, #7] - movs r0, #0x3c - strh r0, [r5, #8] - mov r0, r8 - strh r0, [r5, #0xa] - ldr r1, _08055220 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_0805520C: .4byte gUnk_02000080 -_08055210: .4byte gUnk_080FF1D4 -_08055214: .4byte gUnk_03000F50 -_08055218: .4byte 0x00001E05 -_0805521C: .4byte 0x00003648 -_08055220: .4byte gUnk_02000070 - - thumb_func_start sub_08055224 -sub_08055224: @ 0x08055224 - push {lr} - ldr r0, _08055244 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055240 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08055240 - ldr r1, _08055248 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_08055240: - pop {pc} - .align 2, 0 -_08055244: .4byte gUnk_03000FD0 -_08055248: .4byte gUnk_02000080 - - thumb_func_start sub_0805524C -sub_0805524C: @ 0x0805524C - push {r4, lr} - ldr r3, _08055270 @ =gUnk_02000080 - ldrb r0, [r3, #7] - cmp r0, #0 - bne _08055274 - ldrh r0, [r3, #8] - subs r0, #1 - strh r0, [r3, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080552D6 - ldrb r0, [r3, #7] - adds r0, #1 - strb r0, [r3, #7] - movs r0, #0xf6 - bl sub_080A3268 - b _080552D6 - .align 2, 0 -_08055270: .4byte gUnk_02000080 -_08055274: - ldr r0, _080552A4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _080552D6 - ldr r4, _080552A8 @ =gUnk_080FF204 - ldrh r2, [r3, #0xa] - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r1, [r0] - ldr r0, _080552AC @ =0x0000FFFF - cmp r1, r0 - beq _080552B4 - ldr r1, _080552B0 @ =gUnk_03000F50 - adds r0, r2, #1 - strh r0, [r3, #0xa] - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r0, [r0] - adds r1, #0x68 - strh r0, [r1] - b _080552D6 - .align 2, 0 -_080552A4: .4byte gUnk_030010A0 -_080552A8: .4byte gUnk_080FF204 -_080552AC: .4byte 0x0000FFFF -_080552B0: .4byte gUnk_03000F50 -_080552B4: - ldr r1, _080552D8 @ =gUnk_03000F50 - ldrh r2, [r1] - ldr r0, _080552DC @ =0x0000F7FF - ands r0, r2 - strh r0, [r1] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - movs r0, #0x78 - strh r0, [r3, #8] - ldrb r0, [r3, #6] - adds r0, #1 - strb r0, [r3, #6] - movs r0, #0x73 - bl sub_080A3268 -_080552D6: - pop {r4, pc} - .align 2, 0 -_080552D8: .4byte gUnk_03000F50 -_080552DC: .4byte 0x0000F7FF - - thumb_func_start sub_080552E0 -sub_080552E0: @ 0x080552E0 - push {lr} - ldr r1, _080552F8 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080552F6 - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_080552F6: - pop {pc} - .align 2, 0 -_080552F8: .4byte gUnk_02000080 - - thumb_func_start sub_080552FC -sub_080552FC: @ 0x080552FC - push {lr} - ldr r1, _08055310 @ =gUnk_080FF228 - ldr r0, _08055314 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055310: .4byte gUnk_080FF228 -_08055314: .4byte gUnk_02000080 - - thumb_func_start sub_08055318 -sub_08055318: @ 0x08055318 - push {r4, lr} - ldr r4, _08055348 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #4] - movs r1, #0 - bl sub_0801876C - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _0805534C @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055348: .4byte gUnk_02000080 -_0805534C: .4byte gUnk_02000070 - - thumb_func_start sub_08055350 -sub_08055350: @ 0x08055350 - push {lr} - ldr r0, _08055378 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055374 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08055374 - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 - ldr r1, _0805537C @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_08055374: - pop {pc} - .align 2, 0 -_08055378: .4byte gUnk_03000FD0 -_0805537C: .4byte gUnk_02000080 - - thumb_func_start sub_08055380 -sub_08055380: @ 0x08055380 - push {r4, lr} - ldr r0, _080553B0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080553AC - ldr r4, _080553B4 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #0 - bl sub_08054974 - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0x73 - bl sub_080A3268 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0x78 - strh r0, [r4, #8] -_080553AC: - pop {r4, pc} - .align 2, 0 -_080553B0: .4byte gUnk_03000FD0 -_080553B4: .4byte gUnk_02000080 - - thumb_func_start sub_080553B8 -sub_080553B8: @ 0x080553B8 - push {lr} - ldr r0, _080553D8 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080553D6 - ldr r1, _080553DC @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080553D6 - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_080553D6: - pop {pc} - .align 2, 0 -_080553D8: .4byte gUnk_03000FD0 -_080553DC: .4byte gUnk_02000080 - - thumb_func_start sub_080553E0 -sub_080553E0: @ 0x080553E0 - push {r4, lr} - ldr r0, _0805540C @ =gUnk_02000080 - ldr r4, [r0, #0xc] - movs r0, #0xf - movs r1, #0x43 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _08055408 - ldr r0, _08055410 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - ldrh r3, [r4, #8] - adds r1, r1, r3 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - ldrh r4, [r4, #0xa] - adds r0, r0, r4 - strh r0, [r2, #0x32] -_08055408: - pop {r4, pc} - .align 2, 0 -_0805540C: .4byte gUnk_02000080 -_08055410: .4byte gUnk_03000BF0 - - thumb_func_start sub_08055414 -sub_08055414: @ 0x08055414 - push {lr} - ldr r1, _08055428 @ =gUnk_080FF238 - ldr r0, _0805542C @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055428: .4byte gUnk_080FF238 -_0805542C: .4byte gUnk_02000080 - - thumb_func_start sub_08055430 -sub_08055430: @ 0x08055430 - push {r4, lr} - ldr r4, _08055460 @ =gUnk_02000080 - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0E8 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055464 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055460: .4byte gUnk_02000080 -_08055464: .4byte gUnk_02000070 - - thumb_func_start sub_08055468 -sub_08055468: @ 0x08055468 - push {lr} - ldr r0, _08055490 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805548C - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _0805548C - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 - ldr r1, _08055494 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_0805548C: - pop {pc} - .align 2, 0 -_08055490: .4byte gUnk_03000FD0 -_08055494: .4byte gUnk_02000080 - - thumb_func_start sub_08055498 -sub_08055498: @ 0x08055498 - push {r4, lr} - ldr r0, _080554CC @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080554CA - ldr r4, _080554D0 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #1 - bl sub_0801876C - ldrb r0, [r4, #4] - bl sub_080553E0 - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0x73 - bl sub_080A3268 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0x78 - strh r0, [r4, #8] -_080554CA: - pop {r4, pc} - .align 2, 0 -_080554CC: .4byte gUnk_03000FD0 -_080554D0: .4byte gUnk_02000080 - - thumb_func_start sub_080554D4 -sub_080554D4: @ 0x080554D4 - push {lr} - ldr r0, _080554F4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080554F2 - ldr r1, _080554F8 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080554F2 - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_080554F2: - pop {pc} - .align 2, 0 -_080554F4: .4byte gUnk_03000FD0 -_080554F8: .4byte gUnk_02000080 - - thumb_func_start sub_080554FC -sub_080554FC: @ 0x080554FC - push {lr} - ldr r1, _08055510 @ =gUnk_080FF248 - ldr r0, _08055514 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055510: .4byte gUnk_080FF248 -_08055514: .4byte gUnk_02000080 - - thumb_func_start sub_08055518 -sub_08055518: @ 0x08055518 - push {r4, lr} - ldr r4, _08055540 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055544 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055540: .4byte gUnk_02000080 -_08055544: .4byte gUnk_02000070 - - thumb_func_start sub_08055548 -sub_08055548: @ 0x08055548 - push {r4, lr} - ldr r0, _08055578 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055576 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08055576 - ldr r4, _0805557C @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #1 - bl sub_0801876C - ldrb r0, [r4, #4] - bl sub_080553E0 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0xb4 - strh r0, [r4, #8] -_08055576: - pop {r4, pc} - .align 2, 0 -_08055578: .4byte gUnk_03000FD0 -_0805557C: .4byte gUnk_02000080 - - thumb_func_start sub_08055580 -sub_08055580: @ 0x08055580 - push {lr} - ldr r1, _08055598 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08055596 - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08055596: - pop {pc} - .align 2, 0 -_08055598: .4byte gUnk_02000080 - - thumb_func_start sub_0805559C -sub_0805559C: @ 0x0805559C - push {lr} - ldr r1, _080555B0 @ =gUnk_080FF254 - ldr r0, _080555B4 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080555B0: .4byte gUnk_080FF254 -_080555B4: .4byte gUnk_02000080 - - thumb_func_start sub_080555B8 -sub_080555B8: @ 0x080555B8 - push {r4, r5, lr} - ldr r5, _08055600 @ =gUnk_02000080 - ldr r4, [r5, #0xc] - ldr r1, _08055604 @ =gUnk_0811E454 - ldrb r0, [r4, #0x11] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r4, #0x12] - bl sub_0807CC9C - ldrb r0, [r4, #2] - ldrb r1, [r4, #3] - bl sub_0804B0E8 - movs r0, #0x11 - bl sub_0801D7EC - ldrb r0, [r5, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r5, #6] - adds r0, #1 - strb r0, [r5, #6] - ldr r1, _08055608 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, r5, pc} - .align 2, 0 -_08055600: .4byte gUnk_02000080 -_08055604: .4byte gUnk_0811E454 -_08055608: .4byte gUnk_02000070 - - thumb_func_start sub_0805560C -sub_0805560C: @ 0x0805560C - push {lr} - ldr r0, _0805562C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055628 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08055628 - ldr r1, _08055630 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_08055628: - pop {pc} - .align 2, 0 -_0805562C: .4byte gUnk_03000FD0 -_08055630: .4byte gUnk_02000080 - - thumb_func_start sub_08055634 -sub_08055634: @ 0x08055634 - push {r4, r5, lr} - ldr r4, _0805566C @ =gUnk_02000080 - ldr r5, [r4, #0xc] - movs r0, #0x2c - movs r1, #0 - movs r2, #0 - bl CreateObject - adds r2, r0, #0 - cmp r2, #0 - beq _0805565C - ldr r0, _08055670 @ =gUnk_03000BF0 - ldrh r1, [r5, #8] - ldrh r3, [r0, #6] - adds r1, r1, r3 - strh r1, [r2, #0x2e] - ldrh r1, [r5, #0xa] - ldrh r0, [r0, #8] - adds r1, r1, r0 - strh r1, [r2, #0x32] -_0805565C: - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0xc3 - lsls r0, r0, #1 - strh r0, [r4, #8] - pop {r4, r5, pc} - .align 2, 0 -_0805566C: .4byte gUnk_02000080 -_08055670: .4byte gUnk_03000BF0 - - thumb_func_start sub_08055674 -sub_08055674: @ 0x08055674 - push {lr} - ldr r1, _0805568C @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805568A - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_0805568A: - pop {pc} - .align 2, 0 -_0805568C: .4byte gUnk_02000080 - - thumb_func_start sub_08055690 -sub_08055690: @ 0x08055690 - push {lr} - ldr r1, _080556A4 @ =gUnk_080FF284 - ldr r0, _080556A8 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080556A4: .4byte gUnk_080FF284 -_080556A8: .4byte gUnk_02000080 - - thumb_func_start sub_080556AC -sub_080556AC: @ 0x080556AC - push {r4, lr} - ldr r4, _080556E4 @ =gUnk_02000080 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _080556E8 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0B0 - ldr r0, _080556EC @ =gUnk_080FF264 - bl LoadRoomEntityList - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_080556E4: .4byte gUnk_02000080 -_080556E8: .4byte gUnk_02000070 -_080556EC: .4byte gUnk_080FF264 - - thumb_func_start nullsub_489 -nullsub_489: @ 0x080556F0 - bx lr - .align 2, 0 - - thumb_func_start sub_080556F4 -sub_080556F4: @ 0x080556F4 - push {lr} - ldr r1, _08055708 @ =gUnk_080FF28C - ldr r0, _0805570C @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055708: .4byte gUnk_080FF28C -_0805570C: .4byte gUnk_02000080 - - thumb_func_start sub_08055710 -sub_08055710: @ 0x08055710 - push {r4, lr} - ldr r4, _0805575C @ =gUnk_02000080 - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0B0 - ldr r0, _08055760 @ =gUnk_080FEE48 - bl CreateEntity - adds r1, r0, #0 - cmp r1, #0 - beq _08055734 - movs r0, #2 - strb r0, [r1, #0xb] - adds r1, #0x86 - ldr r0, _08055764 @ =0x000080FF - strh r0, [r1] -_08055734: - ldrb r0, [r4, #4] - bl sub_08054A14 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055768 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_0805575C: .4byte gUnk_02000080 -_08055760: .4byte gUnk_080FEE48 -_08055764: .4byte 0x000080FF -_08055768: .4byte gUnk_02000070 - - thumb_func_start sub_0805576C -sub_0805576C: @ 0x0805576C - push {lr} - ldr r0, _08055790 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805578C - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _0805578C - ldr r0, _08055794 @ =gUnk_02000080 - ldrb r1, [r0, #6] - adds r1, #1 - strb r1, [r0, #6] - movs r1, #0x78 - strh r1, [r0, #8] -_0805578C: - pop {pc} - .align 2, 0 -_08055790: .4byte gUnk_03000FD0 -_08055794: .4byte gUnk_02000080 - - thumb_func_start sub_08055798 -sub_08055798: @ 0x08055798 - push {lr} - ldr r1, _080557B0 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080557AE - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_080557AE: - pop {pc} - .align 2, 0 -_080557B0: .4byte gUnk_02000080 - - thumb_func_start sub_080557B4 -sub_080557B4: @ 0x080557B4 - push {lr} - ldr r1, _080557C8 @ =gUnk_080FF2B8 - ldr r0, _080557CC @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080557C8: .4byte gUnk_080FF2B8 -_080557CC: .4byte gUnk_02000080 - - thumb_func_start sub_080557D0 -sub_080557D0: @ 0x080557D0 - push {r4, lr} - ldr r4, _08055808 @ =gUnk_02000080 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _0805580C @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0B0 - ldr r0, _08055810 @ =gUnk_080FF298 - bl LoadRoomEntityList - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055808: .4byte gUnk_02000080 -_0805580C: .4byte gUnk_02000070 -_08055810: .4byte gUnk_080FF298 - - thumb_func_start nullsub_490 -nullsub_490: @ 0x08055814 - bx lr - .align 2, 0 - - thumb_func_start sub_08055818 -sub_08055818: @ 0x08055818 - push {lr} - ldr r1, _0805582C @ =gUnk_080FF300 - ldr r0, _08055830 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0805582C: .4byte gUnk_080FF300 -_08055830: .4byte gUnk_02000080 - - thumb_func_start sub_08055834 -sub_08055834: @ 0x08055834 - push {r4, lr} - ldr r0, _08055870 @ =gUnk_080FF2C0 - bl LoadRoomEntityList - ldr r0, _08055874 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #9 - beq _0805584A - ldr r0, _08055878 @ =0x00000DB4 - bl sub_08018C58 -_0805584A: - ldr r4, _0805587C @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #1 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055880 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055870: .4byte gUnk_080FF2C0 -_08055874: .4byte gUnk_02002A40 -_08055878: .4byte 0x00000DB4 -_0805587C: .4byte gUnk_02000080 -_08055880: .4byte gUnk_02000070 - - thumb_func_start nullsub_491 -nullsub_491: @ 0x08055884 - bx lr - .align 2, 0 - - thumb_func_start sub_08055888 -sub_08055888: @ 0x08055888 - push {lr} - ldr r1, _0805589C @ =gUnk_080FF328 - ldr r0, _080558A0 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0805589C: .4byte gUnk_080FF328 -_080558A0: .4byte gUnk_02000080 - - thumb_func_start sub_080558A4 -sub_080558A4: @ 0x080558A4 - push {r4, lr} - ldr r4, _080558DC @ =gUnk_02000080 - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0B0 - ldr r0, _080558E0 @ =gUnk_080FF308 - bl LoadRoomEntityList - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _080558E4 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_080558DC: .4byte gUnk_02000080 -_080558E0: .4byte gUnk_080FF308 -_080558E4: .4byte gUnk_02000070 - - thumb_func_start nullsub_492 -nullsub_492: @ 0x080558E8 - bx lr - .align 2, 0 - - thumb_func_start sub_080558EC -sub_080558EC: @ 0x080558EC - push {lr} - ldr r1, _08055900 @ =gUnk_080FF330 - ldr r0, _08055904 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055900: .4byte gUnk_080FF330 -_08055904: .4byte gUnk_02000080 - - thumb_func_start sub_08055908 -sub_08055908: @ 0x08055908 - push {r4, r5, lr} - ldr r5, _08055940 @ =gUnk_02000080 - ldr r4, [r5, #0xc] - ldrb r0, [r4, #2] - ldrb r1, [r4, #3] - bl sub_0804B0B0 - ldrb r0, [r4, #2] - ldrb r1, [r4, #3] - bl sub_0804B0E8 - ldrb r0, [r5, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r5, #6] - adds r0, #1 - strb r0, [r5, #6] - ldr r1, _08055944 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, r5, pc} - .align 2, 0 -_08055940: .4byte gUnk_02000080 -_08055944: .4byte gUnk_02000070 - - thumb_func_start sub_08055948 -sub_08055948: @ 0x08055948 - push {lr} - ldr r0, _08055970 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805596C - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _0805596C - bl sub_08055994 - ldr r0, _08055974 @ =gUnk_02000080 - ldrb r1, [r0, #6] - adds r1, #1 - strb r1, [r0, #6] - movs r1, #0x78 - strh r1, [r0, #8] -_0805596C: - pop {pc} - .align 2, 0 -_08055970: .4byte gUnk_03000FD0 -_08055974: .4byte gUnk_02000080 - - thumb_func_start sub_08055978 -sub_08055978: @ 0x08055978 - push {lr} - ldr r1, _08055990 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805598E - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_0805598E: - pop {pc} - .align 2, 0 -_08055990: .4byte gUnk_02000080 - - thumb_func_start sub_08055994 -sub_08055994: @ 0x08055994 - push {r4, lr} - ldr r4, _080559D8 @ =gUnk_02000080 - ldrb r0, [r4, #4] - lsls r0, r0, #3 - ldr r1, _080559DC @ =gUnk_080FEAC8 - adds r0, r0, r1 - ldrb r1, [r0, #6] - movs r0, #1 - ands r0, r1 - movs r3, #1 - cmp r0, #0 - beq _080559AE - movs r3, #2 -_080559AE: - ldr r0, [r4, #0xc] - ldrh r1, [r0, #8] - lsrs r1, r1, #4 - movs r2, #0x3f - ands r1, r2 - ldrh r0, [r0, #0xa] - lsrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r1, r0 - movs r0, #0x73 - adds r2, r3, #0 - bl sub_0807B314 - ldrb r0, [r4, #4] - bl sub_080553E0 - movs r0, #0x73 - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_080559D8: .4byte gUnk_02000080 -_080559DC: .4byte gUnk_080FEAC8 - - thumb_func_start sub_080559E0 -sub_080559E0: @ 0x080559E0 - push {lr} - ldr r1, _080559F4 @ =gUnk_080FF35C - ldr r0, _080559F8 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080559F4: .4byte gUnk_080FF35C -_080559F8: .4byte gUnk_02000080 - - thumb_func_start sub_080559FC -sub_080559FC: @ 0x080559FC - push {r4, lr} - ldr r4, _08055A30 @ =gUnk_02000080 - ldr r0, [r4, #0xc] - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08055A0E - ldr r0, _08055A34 @ =gUnk_080FF33C - bl LoadRoomEntityList -_08055A0E: - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055A38 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055A30: .4byte gUnk_02000080 -_08055A34: .4byte gUnk_080FF33C -_08055A38: .4byte gUnk_02000070 - - thumb_func_start sub_08055A3C -sub_08055A3C: @ 0x08055A3C - push {lr} - ldr r0, _08055A64 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055A60 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08055A60 - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 - ldr r1, _08055A68 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_08055A60: - pop {pc} - .align 2, 0 -_08055A64: .4byte gUnk_03000FD0 -_08055A68: .4byte gUnk_02000080 - - thumb_func_start sub_08055A6C -sub_08055A6C: @ 0x08055A6C - push {r4, lr} - ldr r0, _08055AA0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055A9E - ldr r4, _08055AA4 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #1 - bl sub_0801876C - ldrb r0, [r4, #4] - bl sub_080553E0 - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0x73 - bl sub_080A3268 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0x78 - strh r0, [r4, #8] -_08055A9E: - pop {r4, pc} - .align 2, 0 -_08055AA0: .4byte gUnk_03000FD0 -_08055AA4: .4byte gUnk_02000080 - - thumb_func_start sub_08055AA8 -sub_08055AA8: @ 0x08055AA8 - push {lr} - ldr r0, _08055AC8 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055AC6 - ldr r1, _08055ACC @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08055AC6 - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08055AC6: - pop {pc} - .align 2, 0 -_08055AC8: .4byte gUnk_03000FD0 -_08055ACC: .4byte gUnk_02000080 - - thumb_func_start sub_08055AD0 -sub_08055AD0: @ 0x08055AD0 - push {lr} - ldr r1, _08055AE4 @ =gUnk_080FF36C - ldr r0, _08055AE8 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055AE4: .4byte gUnk_080FF36C -_08055AE8: .4byte gUnk_02000080 - - thumb_func_start sub_08055AEC -sub_08055AEC: @ 0x08055AEC - push {r4, lr} - ldr r4, _08055B2C @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldr r0, [r4, #0xc] - ldrb r0, [r0, #1] - lsls r0, r0, #4 - ldr r1, _08055B30 @ =gUnk_080FED18 - adds r0, r0, r1 - bl CreateEntity - adds r1, r0, #0 - cmp r1, #0 - beq _08055B14 - movs r0, #1 - strb r0, [r1, #0xb] -_08055B14: - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055B34 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055B2C: .4byte gUnk_02000080 -_08055B30: .4byte gUnk_080FED18 -_08055B34: .4byte gUnk_02000070 - - thumb_func_start sub_08055B38 -sub_08055B38: @ 0x08055B38 - push {lr} - ldr r0, _08055B4C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055B48 - ldr r1, _08055B50 @ =gUnk_02000080 - movs r0, #0x78 - strh r0, [r1, #8] -_08055B48: - pop {pc} - .align 2, 0 -_08055B4C: .4byte gUnk_03000FD0 -_08055B50: .4byte gUnk_02000080 - - thumb_func_start sub_08055B54 -sub_08055B54: @ 0x08055B54 - push {lr} - ldr r1, _08055B6C @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08055B6A - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08055B6A: - pop {pc} - .align 2, 0 -_08055B6C: .4byte gUnk_02000080 - - thumb_func_start sub_08055B70 -sub_08055B70: @ 0x08055B70 - push {r4, r5, r6, lr} - adds r0, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - ldr r1, _08055BA4 @ =gUnk_02000080 - ldr r4, [r1, #0xc] - lsls r0, r0, #4 - ldr r1, _08055BA8 @ =gUnk_080FF378 - adds r0, r0, r1 - bl CreateEntity - adds r3, r0, #0 - cmp r3, #0 - beq _08055BA2 - ldrh r0, [r4, #8] - ldr r1, _08055BAC @ =gUnk_03000BF0 - adds r0, r0, r5 - ldrh r2, [r1, #6] - adds r0, r0, r2 - strh r0, [r3, #0x2e] - ldrh r0, [r4, #0xa] - adds r0, r0, r6 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r3, #0x32] -_08055BA2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08055BA4: .4byte gUnk_02000080 -_08055BA8: .4byte gUnk_080FF378 -_08055BAC: .4byte gUnk_03000BF0 - - thumb_func_start sub_08055BB0 -sub_08055BB0: @ 0x08055BB0 - push {lr} - ldr r1, _08055BC4 @ =gUnk_080FF3C8 - ldr r0, _08055BC8 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055BC4: .4byte gUnk_080FF3C8 -_08055BC8: .4byte gUnk_02000080 - - thumb_func_start sub_08055BCC -sub_08055BCC: @ 0x08055BCC - push {r4, lr} - ldr r4, _08055BFC @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #4] - movs r1, #0 - bl sub_0801876C - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055C00 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055BFC: .4byte gUnk_02000080 -_08055C00: .4byte gUnk_02000070 - - thumb_func_start sub_08055C04 -sub_08055C04: @ 0x08055C04 - push {lr} - ldr r0, _08055C2C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055C28 - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08055C28 - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 - ldr r1, _08055C30 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] -_08055C28: - pop {pc} - .align 2, 0 -_08055C2C: .4byte gUnk_03000FD0 -_08055C30: .4byte gUnk_02000080 - - thumb_func_start sub_08055C34 -sub_08055C34: @ 0x08055C34 - push {r4, r5, lr} - sub sp, #4 - ldr r0, _08055C64 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055CA6 - ldr r5, _08055C68 @ =gUnk_02000080 - ldr r4, [r5, #0xc] - ldrb r0, [r5, #4] - bl sub_080553E0 - ldrb r1, [r4, #1] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08055C6C - ldrb r0, [r5, #4] - movs r1, #0 - bl sub_08054974 - b _08055C8C - .align 2, 0 -_08055C64: .4byte gUnk_03000FD0 -_08055C68: .4byte gUnk_02000080 -_08055C6C: - str r0, [sp] - movs r0, #6 - movs r1, #0x9e - movs r2, #6 - movs r3, #0 - bl sub_0805EB2C - adds r4, r0, #0 - cmp r4, #0 - beq _08055C8C - ldr r0, [r4, #0x54] - bl sub_0805E7BC - adds r0, r4, #0 - bl sub_0805E7BC -_08055C8C: - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0x73 - bl sub_080A3268 - ldr r0, _08055CAC @ =gUnk_02000080 - ldrb r1, [r0, #6] - adds r1, #1 - strb r1, [r0, #6] - movs r1, #0x78 - strh r1, [r0, #8] -_08055CA6: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_08055CAC: .4byte gUnk_02000080 - - thumb_func_start sub_08055CB0 -sub_08055CB0: @ 0x08055CB0 - push {lr} - ldr r0, _08055CD0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055CCE - ldr r1, _08055CD4 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08055CCE - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08055CCE: - pop {pc} - .align 2, 0 -_08055CD0: .4byte gUnk_03000FD0 -_08055CD4: .4byte gUnk_02000080 - - thumb_func_start sub_08055CD8 -sub_08055CD8: @ 0x08055CD8 - push {lr} - ldr r1, _08055CEC @ =gUnk_080FF3E8 - ldr r0, _08055CF0 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055CEC: .4byte gUnk_080FF3E8 -_08055CF0: .4byte gUnk_02000080 - - thumb_func_start sub_08055CF4 -sub_08055CF4: @ 0x08055CF4 - push {r4, lr} - ldr r4, _08055D24 @ =gUnk_02000080 - ldr r1, [r4, #0xc] - ldrb r0, [r1, #2] - ldrb r1, [r1, #3] - bl sub_0804B0B0 - ldrb r0, [r4, #4] - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08055B70 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - ldr r1, _08055D28 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_08055D24: .4byte gUnk_02000080 -_08055D28: .4byte gUnk_02000070 - - thumb_func_start sub_08055D2C -sub_08055D2C: @ 0x08055D2C - push {r4, lr} - ldr r0, _08055D5C @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055D5A - movs r0, #0xff - bl sub_0807CC3C - cmp r0, #0 - beq _08055D5A - ldr r4, _08055D60 @ =gUnk_02000080 - ldrb r0, [r4, #4] - movs r1, #1 - bl sub_0801876C - ldrb r0, [r4, #4] - bl sub_080553E0 - ldrb r0, [r4, #6] - adds r0, #1 - strb r0, [r4, #6] - movs r0, #0x78 - strh r0, [r4, #8] -_08055D5A: - pop {r4, pc} - .align 2, 0 -_08055D5C: .4byte gUnk_03000FD0 -_08055D60: .4byte gUnk_02000080 - - thumb_func_start sub_08055D64 -sub_08055D64: @ 0x08055D64 - push {lr} - ldr r1, _08055D7C @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08055D7A - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08055D7A: - pop {pc} - .align 2, 0 -_08055D7C: .4byte gUnk_02000080 - - thumb_func_start sub_08055D80 -sub_08055D80: @ 0x08055D80 - push {lr} - ldr r1, _08055D94 @ =gUnk_080FF3F4 - ldr r0, _08055D98 @ =gUnk_02000080 - ldrb r0, [r0, #6] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08055D94: .4byte gUnk_080FF3F4 -_08055D98: .4byte gUnk_02000080 - - thumb_func_start sub_08055D9C -sub_08055D9C: @ 0x08055D9C - push {lr} - ldr r1, _08055DB8 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - ldr r1, _08055DBC @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - pop {pc} - .align 2, 0 -_08055DB8: .4byte gUnk_02000080 -_08055DBC: .4byte gUnk_02000070 - - thumb_func_start sub_08055DC0 -sub_08055DC0: @ 0x08055DC0 - push {lr} - ldr r0, _08055DE0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08055DDC - ldr r0, _08055DE4 @ =0x00000A01 - bl sub_08056378 - ldr r1, _08055DE8 @ =gUnk_02000080 - ldrb r0, [r1, #6] - adds r0, #1 - strb r0, [r1, #6] - movs r0, #0x78 - strh r0, [r1, #8] -_08055DDC: - pop {pc} - .align 2, 0 -_08055DE0: .4byte gUnk_03000FD0 -_08055DE4: .4byte 0x00000A01 -_08055DE8: .4byte gUnk_02000080 - - thumb_func_start sub_08055DEC -sub_08055DEC: @ 0x08055DEC - push {lr} - ldr r1, _08055E04 @ =gUnk_02000080 - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08055E02 - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] -_08055E02: - pop {pc} - .align 2, 0 -_08055E04: .4byte gUnk_02000080 diff --git a/asm/code_080526CC.s b/asm/code_080526CC.s new file mode 100644 index 00000000..01eb3e6c --- /dev/null +++ b/asm/code_080526CC.s @@ -0,0 +1,7148 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + +thumb_func_start sub_080526CC +sub_080526CC: @ 0x080526CC + push {lr} + ldr r3, _080526DC @ =gStats + ldrh r1, [r3, #0x18] + adds r2, r1, r0 + cmp r2, #0 + bge _080526E0 + movs r2, #0 + b _080526F0 + .align 2, 0 +_080526DC: .4byte gStats +_080526E0: + ldr r1, _080526F4 @ =gUnk_080FD590 + ldrb r0, [r3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrh r0, [r0] + cmp r2, r0 + ble _080526F0 + adds r2, r0, #0 +_080526F0: + strh r2, [r3, #0x18] + pop {pc} + .align 2, 0 +_080526F4: .4byte gUnk_080FD590 + + thumb_func_start sub_080526F8 +sub_080526F8: @ 0x080526F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08052724 + cmp r0, #0 + beq _08052718 + ldr r0, _0805271C @ =gUnk_02033A90 + ldrb r1, [r0, #3] + ldr r0, _08052720 @ =gUnk_02002E9C + adds r1, r1, r0 + ldrb r0, [r1] + adds r0, r0, r4 + cmp r0, #0 + bge _08052716 + movs r0, #0 +_08052716: + strb r0, [r1] +_08052718: + pop {r4, pc} + .align 2, 0 +_0805271C: .4byte gUnk_02033A90 +_08052720: .4byte gUnk_02002E9C + + thumb_func_start sub_08052724 +sub_08052724: @ 0x08052724 + ldr r0, _08052730 @ =gUnk_02033A90 + ldrb r0, [r0] + lsrs r0, r0, #1 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_08052730: .4byte gUnk_02033A90 + + thumb_func_start sub_08052734 +sub_08052734: @ 0x08052734 + push {r4, lr} + bl sub_08052724 + cmp r0, #0 + beq _0805274C + ldr r0, _08052758 @ =gUnk_02002A40 + ldr r1, _0805275C @ =gUnk_02033A90 + ldr r2, _08052760 @ =0x0000045C + adds r0, r0, r2 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r4, [r0] +_0805274C: + adds r0, r4, #0 + cmp r0, #0 + beq _08052754 + movs r0, #1 +_08052754: + pop {r4, pc} + .align 2, 0 +_08052758: .4byte gUnk_02002A40 +_0805275C: .4byte gUnk_02033A90 +_08052760: .4byte 0x0000045C + + thumb_func_start sub_08052764 +sub_08052764: @ 0x08052764 + push {r4, lr} + bl sub_08052724 + cmp r0, #0 + beq _08052784 + ldr r0, _08052790 @ =gUnk_02002A40 + ldr r1, _08052794 @ =gUnk_02033A90 + ldr r2, _08052798 @ =0x0000046C + adds r0, r0, r2 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 +_08052784: + adds r0, r4, #0 + cmp r0, #0 + beq _0805278C + movs r0, #1 +_0805278C: + pop {r4, pc} + .align 2, 0 +_08052790: .4byte gUnk_02002A40 +_08052794: .4byte gUnk_02033A90 +_08052798: .4byte 0x0000046C + + thumb_func_start sub_0805279C +sub_0805279C: @ 0x0805279C + push {lr} + bl sub_08052724 + cmp r0, #0 + beq _080527C8 + ldr r0, _080527BC @ =gUnk_02002A40 + ldr r1, _080527C0 @ =gUnk_02033A90 + ldr r2, _080527C4 @ =0x0000046C + adds r0, r0, r2 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r0, [r0] + lsrs r0, r0, #1 + movs r1, #1 + ands r0, r1 + b _080527CA + .align 2, 0 +_080527BC: .4byte gUnk_02002A40 +_080527C0: .4byte gUnk_02033A90 +_080527C4: .4byte 0x0000046C +_080527C8: + movs r0, #0 +_080527CA: + pop {pc} + + thumb_func_start sub_080527CC +sub_080527CC: @ 0x080527CC + push {lr} + bl sub_08052724 + cmp r0, #0 + beq _080527F8 + ldr r0, _080527EC @ =gUnk_02002A40 + ldr r1, _080527F0 @ =gUnk_02033A90 + ldr r2, _080527F4 @ =0x0000046C + adds r0, r0, r2 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + b _080527FA + .align 2, 0 +_080527EC: .4byte gUnk_02002A40 +_080527F0: .4byte gUnk_02033A90 +_080527F4: .4byte 0x0000046C +_080527F8: + movs r0, #0 +_080527FA: + pop {pc} + + thumb_func_start sub_080527FC +sub_080527FC: @ 0x080527FC + push {r4, lr} + adds r4, r0, #0 + bl sub_08053320 + bl sub_080AE1D8 + bl sub_080ADE24 + movs r0, #1 + bl sub_0801C370 + adds r0, r4, #0 + bl sub_0801AE44 + ldr r0, _08052830 @ =gUnk_02024090 + ldr r1, _08052834 @ =gUnk_020176A0 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_0801D66C + ldr r1, _08052838 @ =gUnk_0200B644 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] + pop {r4, pc} + .align 2, 0 +_08052830: .4byte gUnk_02024090 +_08052834: .4byte gUnk_020176A0 +_08052838: .4byte gUnk_0200B644 + + thumb_func_start sub_0805283C +sub_0805283C: @ 0x0805283C + push {r4, lr} + ldr r0, _08052868 @ =gUnk_02033A90 + ldr r1, _0805286C @ =0x00000864 + adds r4, r0, r1 + ldr r1, _08052870 @ =gUnk_08127D30 + ldr r0, _08052874 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #3] + str r0, [r4] + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x7c + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08052864 + movs r0, #0x33 + str r0, [r4] +_08052864: + pop {r4, pc} + .align 2, 0 +_08052868: .4byte gUnk_02033A90 +_0805286C: .4byte 0x00000864 +_08052870: .4byte gUnk_08127D30 +_08052874: .4byte gUnk_03000BF0 + + thumb_func_start sub_08052878 +sub_08052878: @ 0x08052878 + push {lr} + ldr r0, _08052894 @ =gUnk_02033A90 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r0, r2 + adds r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + ldr r0, _08052898 @ =0x80010000 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08052894: .4byte gUnk_02033A90 +_08052898: .4byte 0x80010000 + + thumb_func_start sub_0805289C +sub_0805289C: @ 0x0805289C + ldr r0, _080528AC @ =gUnk_02033A90 + ldr r2, _080528B0 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + bx lr + .align 2, 0 +_080528AC: .4byte gUnk_02033A90 +_080528B0: .4byte 0x00000864 + + thumb_func_start sub_080528B4 +sub_080528B4: @ 0x080528B4 + push {lr} + ldr r0, _080528C4 @ =gUnk_030010A0 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _080528C8 + movs r0, #0 + b _080528E6 + .align 2, 0 +_080528C4: .4byte gUnk_030010A0 +_080528C8: + bl sub_0804FFE4 + ldr r1, _080528E8 @ =gUnk_03001000 + movs r2, #0 + movs r0, #3 + strb r0, [r1, #3] + strb r2, [r1, #4] + movs r0, #5 + movs r1, #8 + bl sub_08050054 + ldr r0, _080528EC @ =0x80100000 + bl sub_080A3268 + movs r0, #1 +_080528E6: + pop {pc} + .align 2, 0 +_080528E8: .4byte gUnk_03001000 +_080528EC: .4byte 0x80100000 + + thumb_func_start sub_080528F0 +sub_080528F0: @ 0x080528F0 + push {lr} + ldr r1, _08052914 @ =gUnk_02033A90 + ldr r2, _08052918 @ =0x00000888 + adds r0, r1, r2 + ldr r2, [r0] + cmp r2, #0 + beq _08052910 + movs r3, #0x89 + lsls r3, r3, #4 + adds r0, r1, r3 + ldr r1, [r0] + cmp r1, #0 + beq _08052910 + adds r0, r2, #0 + bl _call_via_r1 +_08052910: + pop {pc} + .align 2, 0 +_08052914: .4byte gUnk_02033A90 +_08052918: .4byte 0x00000888 + + thumb_func_start sub_0805291C +sub_0805291C: @ 0x0805291C + push {r4, lr} + ldr r4, _08052948 @ =gUnk_030010A0 + ldrb r0, [r4, #8] + cmp r0, #0 + beq _080529F4 + ldr r0, _0805294C @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + beq _080529F4 + ldr r0, _08052950 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0x12 + beq _080529F4 + bl sub_080529F8 + cmp r0, #0 + beq _08052954 + movs r0, #0 + strb r0, [r4, #8] + b _080529F6 + .align 2, 0 +_08052948: .4byte gUnk_030010A0 +_0805294C: .4byte gUnk_02002A40 +_08052950: .4byte gUnk_03003F80 +_08052954: + ldrb r0, [r4, #9] + subs r0, #1 + cmp r0, #8 + bhi _080529D4 + lsls r0, r0, #2 + ldr r1, _08052968 @ =_0805296C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08052968: .4byte _0805296C +_0805296C: @ jump table + .4byte _08052990 @ case 0 + .4byte _080529A4 @ case 1 + .4byte _080529D4 @ case 2 + .4byte _080529A8 @ case 3 + .4byte _080529B2 @ case 4 + .4byte _080529BC @ case 5 + .4byte _080529C8 @ case 6 + .4byte _080529C8 @ case 7 + .4byte _0805299A @ case 8 +_08052990: + movs r0, #0xd + movs r1, #8 + bl sub_08050054 + b _080529DC +_0805299A: + movs r0, #0xd + movs r1, #3 + bl sub_08050054 + b _080529DC +_080529A4: + movs r0, #7 + b _080529AA +_080529A8: + movs r0, #5 +_080529AA: + movs r1, #4 + bl sub_08050054 + b _080529DC +_080529B2: + movs r0, #5 + movs r1, #0x10 + bl sub_08050054 + b _080529DC +_080529BC: + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + b _080529DC +_080529C8: + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 + b _080529DC +_080529D4: + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 +_080529DC: + bl sub_080528F0 + ldr r0, _080529F0 @ =gUnk_03001000 + movs r1, #3 + strb r1, [r0, #4] + movs r1, #1 + strb r1, [r0, #0xb] + movs r0, #1 + b _080529F6 + .align 2, 0 +_080529F0: .4byte gUnk_03001000 +_080529F4: + movs r0, #0 +_080529F6: + pop {r4, pc} + + thumb_func_start sub_080529F8 +sub_080529F8: @ 0x080529F8 + push {r4, r5, r6, lr} + ldr r1, _08052A34 @ =gUnk_030010A0 + ldrh r4, [r1, #0xa] + ldr r2, _08052A38 @ =gUnk_080FCAD6 + ldrh r0, [r2] + cmp r0, #0 + beq _08052A48 + ldr r3, _08052A3C @ =gUnk_03003F80 + movs r6, #0 + movs r0, #0x39 + adds r0, r0, r3 + mov ip, r0 + movs r5, #0x1e +_08052A12: + ldrh r0, [r2] + cmp r4, r0 + bne _08052A40 + strb r5, [r3, #0xc] + adds r0, r3, #0 + adds r0, #0x38 + strb r6, [r0] + ldrh r0, [r2, #2] + mov r3, ip + strb r0, [r3] + ldrb r0, [r1, #0xf] + cmp r0, #0 + bne _08052A30 + ldrh r0, [r2, #2] + strb r0, [r1, #0xf] +_08052A30: + movs r0, #1 + b _08052A4A + .align 2, 0 +_08052A34: .4byte gUnk_030010A0 +_08052A38: .4byte gUnk_080FCAD6 +_08052A3C: .4byte gUnk_03003F80 +_08052A40: + adds r2, #4 + ldrh r0, [r2] + cmp r0, #0 + bne _08052A12 +_08052A48: + movs r0, #0 +_08052A4A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08052A4C +sub_08052A4C: @ 0x08052A4C + push {r4, r5, lr} + ldr r2, _08052A88 @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r2, #8] + ldr r5, _08052A8C @ =gLinkEntity + ldr r3, _08052A90 @ =gUnk_03000BF0 + ldrh r0, [r5, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r1, #0xfe + lsls r1, r1, #2 + adds r4, r1, #0 + ands r0, r4 + strh r0, [r2, #0x10] + ldrh r0, [r5, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + ands r0, r4 + strh r0, [r2, #0x12] + movs r0, #4 + strb r0, [r2, #0xe] + movs r0, #0xa + strb r0, [r2, #0xf] + ldrb r0, [r3, #4] + strb r0, [r2, #0xc] + ldrb r0, [r3, #5] + subs r0, #1 + strb r0, [r2, #0xd] + pop {r4, r5, pc} + .align 2, 0 +_08052A88: .4byte gUnk_030010A0 +_08052A8C: .4byte gLinkEntity +_08052A90: .4byte gUnk_03000BF0 + + thumb_func_start sub_08052A94 +sub_08052A94: @ 0x08052A94 + push {lr} + ldr r0, _08052AAC @ =gUnk_030010A0 + ldrb r0, [r0, #9] + subs r0, #1 + cmp r0, #8 + bhi _08052B1C + lsls r0, r0, #2 + ldr r1, _08052AB0 @ =_08052AB4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08052AAC: .4byte gUnk_030010A0 +_08052AB0: .4byte _08052AB4 +_08052AB4: @ jump table + .4byte _08052AD8 @ case 0 + .4byte _08052AE6 @ case 1 + .4byte _08052B22 @ case 2 + .4byte _08052B1C @ case 3 + .4byte _08052B08 @ case 4 + .4byte _08052AF0 @ case 5 + .4byte _08052AFC @ case 6 + .4byte _08052B12 @ case 7 + .4byte _08052ADC @ case 8 +_08052AD8: + movs r0, #0xc + b _08052B14 +_08052ADC: + movs r0, #0xc + movs r1, #3 + bl sub_08050054 + b _08052B22 +_08052AE6: + movs r0, #6 + movs r1, #4 + bl sub_08050054 + b _08052B22 +_08052AF0: + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + b _08052B22 +_08052AFC: + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 + b _08052B22 +_08052B08: + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + b _08052B22 +_08052B12: + movs r0, #6 +_08052B14: + movs r1, #8 + bl sub_08050054 + b _08052B22 +_08052B1C: + movs r0, #0x10 + bl sub_080500F4 +_08052B22: + pop {pc} + + thumb_func_start sub_08052B24 +sub_08052B24: @ 0x08052B24 + push {lr} + ldr r0, _08052B90 @ =gUnk_03000FF0 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08052B8A + ldr r2, _08052B94 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #0 + bne _08052B8A + ldr r0, _08052B98 @ =gUnk_02034490 + ldrb r0, [r0] + cmp r0, #0 + bne _08052B8A + ldr r0, _08052B9C @ =gUnk_0200AF00 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08052B8A + ldr r0, [r2, #0x30] + movs r1, #0x8c + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08052B8A + adds r0, r2, #0 + adds r0, #0xa9 + ldrb r0, [r0] + cmp r0, #1 + bgt _08052B8A + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _08052B8A + ldr r1, _08052BA0 @ =gLinkEntity + adds r0, r1, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + bne _08052B8A + movs r3, #0x36 + ldrsh r0, [r1, r3] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08052BA4 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08052BA4 +_08052B8A: + movs r0, #0 + b _08052BB4 + .align 2, 0 +_08052B90: .4byte gUnk_03000FF0 +_08052B94: .4byte gUnk_03003F80 +_08052B98: .4byte gUnk_02034490 +_08052B9C: .4byte gUnk_0200AF00 +_08052BA0: .4byte gLinkEntity +_08052BA4: + bl sub_0801862C + movs r0, #0x13 + bl sub_08078160 + bl sub_0805E544 + movs r0, #1 +_08052BB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08052BB8 +sub_08052BB8: @ 0x08052BB8 + push {lr} + ldr r0, _08052BE0 @ =gUnk_030010A0 + adds r2, r0, #0 + adds r2, #0x35 + ldrb r1, [r2] + adds r3, r0, #0 + cmp r1, #0 + bne _08052BEC + ldr r0, _08052BE4 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldr r0, _08052BE8 @ =gUnk_03000BF0 + movs r2, #0xc + ldrsh r0, [r0, r2] + subs r1, r1, r0 + movs r2, #0xd + cmp r1, #0x60 + ble _08052BEE + movs r2, #1 + b _08052BEE + .align 2, 0 +_08052BE0: .4byte gUnk_030010A0 +_08052BE4: .4byte gLinkEntity +_08052BE8: .4byte gUnk_03000BF0 +_08052BEC: + ldrb r2, [r2] +_08052BEE: + ldrh r0, [r3, #0x36] + adds r1, r2, #0 + bl sub_080563C8 + pop {pc} + + thumb_func_start sub_08052BF8 +sub_08052BF8: @ 0x08052BF8 + push {lr} + ldr r2, _08052C34 @ =gUnk_030010A0 + adds r1, r2, #0 + adds r1, #0x31 + ldrb r0, [r1] + cmp r0, #0 + bne _08052C30 + movs r0, #1 + strb r0, [r1] + ldr r0, _08052C38 @ =gUnk_02033A90 + ldrb r1, [r0, #1] + adds r0, r2, #0 + adds r0, #0x2e + strb r1, [r0] + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _08052C30 + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0xf + strb r0, [r1, #9] + strb r0, [r1, #0xa] + adds r0, r1, #0 + movs r1, #0 + bl sub_0805EA2C +_08052C30: + pop {pc} + .align 2, 0 +_08052C34: .4byte gUnk_030010A0 +_08052C38: .4byte gUnk_02033A90 + + thumb_func_start sub_08052C3C +sub_08052C3C: @ 0x08052C3C + push {lr} + ldr r2, _08052C58 @ =gUnk_02033A90 + ldrb r0, [r2, #0x18] + cmp r0, #0 + bne _08052C48 + strb r0, [r2, #0x1a] +_08052C48: + ldrb r0, [r2, #0x1a] + cmp r0, #0 + beq _08052C56 + subs r0, #1 + movs r1, #0 + strb r0, [r2, #0x1a] + strb r1, [r2, #0x18] +_08052C56: + pop {pc} + .align 2, 0 +_08052C58: .4byte gUnk_02033A90 + + thumb_func_start sub_08052C5C +sub_08052C5C: @ 0x08052C5C + push {lr} + bl sub_08052680 + cmp r0, #0 + bne _08052C98 + bl sub_08052620 + cmp r0, #0 + beq _08052C84 + ldr r2, _08052C7C @ =gUnk_030010A0 + ldr r1, _08052C80 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r2, #0x20] + ldrh r0, [r1, #0x32] + strh r0, [r2, #0x22] + b _08052C98 + .align 2, 0 +_08052C7C: .4byte gUnk_030010A0 +_08052C80: .4byte gLinkEntity +_08052C84: + bl sub_08052660 + cmp r0, #0 + beq _08052C98 + ldr r2, _08052C9C @ =gUnk_030010A0 + ldr r1, _08052CA0 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r2, #0x1c] + ldrh r0, [r1, #0x32] + strh r0, [r2, #0x1e] +_08052C98: + pop {pc} + .align 2, 0 +_08052C9C: .4byte gUnk_030010A0 +_08052CA0: .4byte gLinkEntity + + thumb_func_start sub_08052CA4 +sub_08052CA4: @ 0x08052CA4 + push {r4, lr} + ldr r4, _08052CC8 @ =gUnk_0811E214 + lsls r0, r0, #2 + adds r0, r0, r4 + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #1 + ldr r1, [r0] + adds r1, r1, r4 + ldr r4, _08052CCC @ =gUnk_030010A0 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r4, #0x20] + ldrh r0, [r1, #2] + adds r0, r0, r3 + strh r0, [r4, #0x22] + pop {r4, pc} + .align 2, 0 +_08052CC8: .4byte gUnk_0811E214 +_08052CCC: .4byte gUnk_030010A0 + + thumb_func_start sub_08052CD0 +sub_08052CD0: @ 0x08052CD0 + push {r4, lr} + ldr r4, _08052CF4 @ =gUnk_0811E214 + lsls r0, r0, #2 + adds r0, r0, r4 + lsls r4, r1, #2 + adds r4, r4, r1 + lsls r4, r4, #1 + ldr r1, [r0] + adds r1, r1, r4 + ldr r4, _08052CF8 @ =gUnk_030010A0 + ldrh r0, [r1] + adds r0, r0, r2 + strh r0, [r4, #0x1c] + ldrh r0, [r1, #2] + adds r0, r0, r3 + strh r0, [r4, #0x1e] + pop {r4, pc} + .align 2, 0 +_08052CF4: .4byte gUnk_0811E214 +_08052CF8: .4byte gUnk_030010A0 + + thumb_func_start sub_08052CFC +sub_08052CFC: @ 0x08052CFC + push {r4, lr} + ldr r4, _08052D44 @ =gUnk_02033A90 + ldr r1, _08052D48 @ =0x00000894 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _08052D4C @ =gUnk_03000BF0 + ldrb r1, [r0, #4] + lsls r1, r1, #2 + ldr r0, _08052D50 @ =gUnk_08127D30 + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r4] + ldrb r0, [r1, #1] + strb r0, [r4, #1] + ldrb r0, [r1, #1] + subs r0, #0x17 + strb r0, [r4, #3] + ldr r2, _08052D54 @ =gUnk_0811E454 + ldrb r0, [r1, #2] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #4] + ldrb r0, [r1, #2] + strb r0, [r4, #6] + movs r0, #0xb4 + strb r0, [r4, #0x1a] + adds r0, #0x4c + strh r0, [r4, #0xa] + bl sub_08052A94 + bl sub_08052DA8 + pop {r4, pc} + .align 2, 0 +_08052D44: .4byte gUnk_02033A90 +_08052D48: .4byte 0x00000894 +_08052D4C: .4byte gUnk_03000BF0 +_08052D50: .4byte gUnk_08127D30 +_08052D54: .4byte gUnk_0811E454 + + thumb_func_start sub_08052D58 +sub_08052D58: @ 0x08052D58 + lsls r0, r0, #2 + ldr r1, _08052D6C @ =gUnk_08127D30 + adds r0, r0, r1 + ldr r1, _08052D70 @ =gUnk_0811E454 + ldrb r0, [r0, #2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_08052D6C: .4byte gUnk_08127D30 +_08052D70: .4byte gUnk_0811E454 + + thumb_func_start sub_08052D74 +sub_08052D74: @ 0x08052D74 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r0, _08052D98 @ =gUnk_03001000 + ldrb r0, [r0, #4] + cmp r0, #7 + beq _08052D96 + ldr r0, _08052D9C @ =gUnk_02033A90 + ldr r5, _08052DA0 @ =0x00000888 + adds r1, r0, r5 + str r3, [r1] + ldr r3, _08052DA4 @ =0x0000088C + adds r1, r0, r3 + str r4, [r1] + adds r5, #8 + adds r0, r0, r5 + str r2, [r0] +_08052D96: + pop {r4, r5, pc} + .align 2, 0 +_08052D98: .4byte gUnk_03001000 +_08052D9C: .4byte gUnk_02033A90 +_08052DA0: .4byte 0x00000888 +_08052DA4: .4byte 0x0000088C + + thumb_func_start sub_08052DA8 +sub_08052DA8: @ 0x08052DA8 + push {r4, r5, r6, r7, lr} + ldr r1, _08052DF8 @ =gUnk_0811E214 + ldr r0, _08052DFC @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r4, [r0] + ldr r7, _08052E00 @ =gUnk_02033ACC + movs r5, #0 + ldrh r0, [r4] + ldr r1, _08052E04 @ =0x0000FFFF + cmp r0, r1 + beq _08052DE8 + adds r6, r1, #0 +_08052DC4: + ldrh r0, [r4, #8] + cmp r0, r6 + beq _08052DD8 + ldr r0, _08052DFC @ =gUnk_03000BF0 + ldrb r2, [r0, #4] + adds r0, r7, #0 + adds r1, r4, #0 + adds r3, r5, #0 + bl sub_08052E10 +_08052DD8: + adds r7, #0x20 + adds r5, #1 + adds r4, #0xa + cmp r5, #0x3f + bhi _08052DE8 + ldrh r0, [r4] + cmp r0, r6 + bne _08052DC4 +_08052DE8: + bl sub_08052E8C + ldr r1, _08052E08 @ =gUnk_02033A90 + ldr r2, _08052E0C @ =0x0000085C + adds r1, r1, r2 + str r0, [r1] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08052DF8: .4byte gUnk_0811E214 +_08052DFC: .4byte gUnk_03000BF0 +_08052E00: .4byte gUnk_02033ACC +_08052E04: .4byte 0x0000FFFF +_08052E08: .4byte gUnk_02033A90 +_08052E0C: .4byte 0x0000085C + + thumb_func_start sub_08052E10 +sub_08052E10: @ 0x08052E10 + push {r4, r5, lr} + adds r5, r0, #0 + ldrh r0, [r1] + strh r0, [r5, #4] + ldrh r0, [r1, #2] + strh r0, [r5, #6] + ldrh r0, [r1, #4] + strh r0, [r5] + ldrh r0, [r1, #6] + strh r0, [r5, #2] + ldr r4, _08052E74 @ =gUnk_0810246C + lsls r2, r2, #2 + adds r4, r2, r4 + ldrh r0, [r1, #8] + ldr r1, [r4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #8] + ldr r0, _08052E78 @ =gUnk_08107988 + adds r0, r2, r0 + ldr r0, [r0] + lsls r3, r3, #2 + adds r0, r3, r0 + ldr r0, [r0] + str r0, [r5, #0xc] + ldr r0, _08052E7C @ =gUnk_0810309C + adds r0, r2, r0 + ldr r0, [r0] + str r0, [r5, #0x10] + ldr r0, _08052E80 @ =gUnk_080B755C + adds r0, r2, r0 + ldr r0, [r0] + str r0, [r5, #0x14] + ldr r0, _08052E84 @ =gUnk_0813A7F0 + adds r0, r2, r0 + ldr r0, [r0] + adds r0, r3, r0 + ldr r0, [r0] + str r0, [r5, #0x18] + ldr r0, _08052E88 @ =gUnk_080D50FC + adds r2, r2, r0 + ldr r0, [r2] + cmp r0, #0 + beq _08052E70 + adds r0, r3, r0 + ldr r0, [r0] + str r0, [r5, #0x1c] +_08052E70: + pop {r4, r5, pc} + .align 2, 0 +_08052E74: .4byte gUnk_0810246C +_08052E78: .4byte gUnk_08107988 +_08052E7C: .4byte gUnk_0810309C +_08052E80: .4byte gUnk_080B755C +_08052E84: .4byte gUnk_0813A7F0 +_08052E88: .4byte gUnk_080D50FC + + thumb_func_start sub_08052E8C +sub_08052E8C: @ 0x08052E8C + ldr r0, _08052E98 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + lsls r0, r0, #5 + ldr r1, _08052E9C @ =gUnk_02033ACC + adds r0, r0, r1 + bx lr + .align 2, 0 +_08052E98: .4byte gUnk_03000BF0 +_08052E9C: .4byte gUnk_02033ACC + + thumb_func_start sub_08052EA0 +sub_08052EA0: @ 0x08052EA0 + push {r4, lr} + ldr r4, _08052EE4 @ =gUnk_02034350 + adds r0, r4, #0 + movs r1, #0xcc + bl sub_0801D630 + movs r0, #0xff + strb r0, [r4, #0x10] + strb r0, [r4, #0x11] + strb r0, [r4, #0x12] + strb r0, [r4, #0x13] + adds r0, #1 + strh r0, [r4, #0xc] + ldr r2, _08052EE8 @ =gUnk_02033A90 + ldr r1, _08052EEC @ =gUnk_08127D30 + ldr r0, _08052EF0 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #1] + strb r0, [r2, #1] + bl sub_08049D30 + bl sub_0807DA70 + bl sub_08054524 + bl sub_080186D4 + bl sub_0806F364 + bl sub_080530C8 + pop {r4, pc} + .align 2, 0 +_08052EE4: .4byte gUnk_02034350 +_08052EE8: .4byte gUnk_02033A90 +_08052EEC: .4byte gUnk_08127D30 +_08052EF0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08052EF4 +sub_08052EF4: @ 0x08052EF4 + push {lr} + cmp r0, #0 + bge _08052EFE + ldr r0, _08052F10 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] +_08052EFE: + lsls r0, r0, #2 + ldr r1, _08052F14 @ =gUnk_08127D30 + adds r0, r0, r1 + ldr r1, _08052F18 @ =gUnk_0811E454 + ldrb r0, [r0, #2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + pop {pc} + .align 2, 0 +_08052F10: .4byte gUnk_03000BF0 +_08052F14: .4byte gUnk_08127D30 +_08052F18: .4byte gUnk_0811E454 + + thumb_func_start sub_08052F1C +sub_08052F1C: @ 0x08052F1C + push {r4, r5, r6, lr} + ldr r2, _08052F4C @ =gUnk_02033A90 + ldrb r1, [r2, #0xd] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08052FCC + ldr r0, _08052F50 @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + beq _08052FCC + movs r5, #0 + movs r4, #0 + ldr r0, _08052F54 @ =gUnk_03000BF0 + ldrb r1, [r0, #0x10] + adds r3, r0, #0 + cmp r1, #1 + beq _08052F62 + cmp r1, #1 + bgt _08052F58 + cmp r1, #0 + beq _08052F62 + b _08052F72 + .align 2, 0 +_08052F4C: .4byte gUnk_02033A90 +_08052F50: .4byte gUnk_02034350 +_08052F54: .4byte gUnk_03000BF0 +_08052F58: + cmp r1, #2 + beq _08052F62 + cmp r1, #3 + beq _08052F6A + b _08052F72 +_08052F62: + ldr r1, _08052FD0 @ =0x0000085C + adds r0, r2, r1 + ldr r0, [r0] + ldrh r5, [r0, #2] +_08052F6A: + ldr r1, _08052FD0 @ =0x0000085C + adds r0, r2, r1 + ldr r0, [r0] + ldrh r4, [r0] +_08052F72: + ldr r0, _08052FD0 @ =0x0000085C + adds r2, r2, r0 + ldr r1, [r2] + ldrh r0, [r1, #4] + adds r0, r0, r4 + strh r0, [r1, #4] + ldr r1, [r2] + ldrh r0, [r1, #6] + adds r0, r0, r5 + strh r0, [r1, #6] + ldrh r0, [r3, #6] + adds r0, r0, r4 + strh r0, [r3, #6] + ldrh r0, [r3, #8] + adds r0, r0, r5 + strh r0, [r3, #8] + ldrh r0, [r3, #0xa] + adds r0, r0, r4 + strh r0, [r3, #0xa] + ldrh r0, [r3, #0xc] + adds r0, r0, r5 + strh r0, [r3, #0xc] + ldr r2, _08052FD4 @ =gUnk_03003D70 + adds r6, r2, #0 + adds r6, #0x48 +_08052FA4: + ldr r1, [r2, #4] + adds r3, r2, #0 + adds r3, #8 + cmp r1, r2 + beq _08052FC6 +_08052FAE: + ldrb r0, [r1, #8] + cmp r0, #9 + beq _08052FC0 + ldrh r0, [r1, #0x2e] + adds r0, r0, r4 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, r0, r5 + strh r0, [r1, #0x32] +_08052FC0: + ldr r1, [r1, #4] + cmp r1, r2 + bne _08052FAE +_08052FC6: + adds r2, r3, #0 + cmp r2, r6 + blo _08052FA4 +_08052FCC: + pop {r4, r5, r6, pc} + .align 2, 0 +_08052FD0: .4byte 0x0000085C +_08052FD4: .4byte gUnk_03003D70 + + thumb_func_start sub_08052FD8 +sub_08052FD8: @ 0x08052FD8 + push {lr} + bl sub_08052FF4 + ldr r1, _08052FF0 @ =gUnk_03000BF0 + movs r0, #0 + str r0, [r1, #0x30] + bl sub_0807C860 + bl sub_0807C740 + pop {pc} + .align 2, 0 +_08052FF0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08052FF4 +sub_08052FF4: @ 0x08052FF4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + bl sub_08080668 + bl sub_080197AC + ldr r0, _0805306C @ =gUnk_03000BF0 + strb r6, [r0, #4] + strb r4, [r0, #5] + ldr r1, _08053070 @ =gUnk_03000F50 + movs r0, #0xba + lsls r0, r0, #5 + strh r0, [r1] + ldr r5, _08053074 @ =gUnk_020342CC + adds r0, r5, #0 + movs r1, #0x20 + bl sub_0801D630 + str r5, [r5, #0x20] + ldr r0, _08053078 @ =gUnk_0811E214 + lsls r6, r6, #2 + adds r0, r6, r0 + lsls r2, r4, #2 + adds r4, r2, r4 + lsls r4, r4, #1 + ldr r0, [r0] + adds r0, r0, r4 + ldrh r1, [r0] + strh r1, [r5, #4] + ldrh r1, [r0, #2] + strh r1, [r5, #6] + ldrh r1, [r0, #4] + strh r1, [r5] + ldrh r1, [r0, #6] + strh r1, [r5, #2] + ldr r1, _0805307C @ =gUnk_0810246C + adds r1, r6, r1 + ldrh r0, [r0, #8] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r5, #8] + ldr r0, _08053080 @ =gUnk_08107988 + adds r0, r6, r0 + ldr r0, [r0] + adds r2, r2, r0 + ldr r0, [r2] + str r0, [r5, #0xc] + ldr r0, _08053084 @ =gUnk_0810309C + adds r0, r6, r0 + ldr r0, [r0] + str r0, [r5, #0x10] + ldr r0, _08053088 @ =gUnk_080B755C + adds r6, r6, r0 + ldr r0, [r6] + str r0, [r5, #0x14] + pop {r4, r5, r6, pc} + .align 2, 0 +_0805306C: .4byte gUnk_03000BF0 +_08053070: .4byte gUnk_03000F50 +_08053074: .4byte gUnk_020342CC +_08053078: .4byte gUnk_0811E214 +_0805307C: .4byte gUnk_0810246C +_08053080: .4byte gUnk_08107988 +_08053084: .4byte gUnk_0810309C +_08053088: .4byte gUnk_080B755C + + thumb_func_start sub_0805308C +sub_0805308C: @ 0x0805308C + push {lr} + adds r1, r0, #0 + ldr r2, _080530AC @ =gUnk_02034350 + movs r3, #0xc + ldrsh r0, [r2, r3] + adds r1, r1, r0 + cmp r1, #0 + bge _0805309E + movs r1, #0 +_0805309E: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + ble _080530A8 + adds r1, r0, #0 +_080530A8: + strh r1, [r2, #0xc] + pop {pc} + .align 2, 0 +_080530AC: .4byte gUnk_02034350 + + thumb_func_start sub_080530B0 +sub_080530B0: @ 0x080530B0 + push {lr} + ldr r0, _080530C0 @ =gUnk_080FCAF8 + ldr r1, _080530C4 @ =gUnk_030010EC + movs r2, #0x20 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_080530C0: .4byte gUnk_080FCAF8 +_080530C4: .4byte gUnk_030010EC + + thumb_func_start sub_080530C8 +sub_080530C8: @ 0x080530C8 + push {r4, r5, lr} + movs r4, #1 + movs r5, #0xc0 + lsls r5, r5, #2 + adds r0, r5, #0 + movs r1, #0x78 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _080530E0 + movs r4, #9 + b _08053138 +_080530E0: + movs r0, #6 + bl GetProgressFlag + cmp r0, #0 + beq _080530EE + movs r4, #8 + b _08053138 +_080530EE: + adds r0, r5, #0 + movs r1, #0x32 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _080530FE + movs r4, #7 + b _08053138 +_080530FE: + movs r0, #5 + bl GetProgressFlag + cmp r0, #0 + beq _0805310C + movs r4, #6 + b _08053138 +_0805310C: + movs r0, #4 + bl GetProgressFlag + cmp r0, #0 + beq _0805311A + movs r4, #5 + b _08053138 +_0805311A: + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0x9c + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _0805312C + movs r4, #4 + b _08053138 +_0805312C: + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + beq _08053138 + movs r4, #2 +_08053138: + ldr r0, _08053140 @ =gUnk_02002A40 + strb r4, [r0, #8] + pop {r4, r5, pc} + .align 2, 0 +_08053140: .4byte gUnk_02002A40 + + thumb_func_start sub_08053144 +sub_08053144: @ 0x08053144 + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _08053154 + movs r0, #0 + b _0805316E +_08053154: + movs r1, #0 + ldr r0, _08053170 @ =gUnk_02033A90 + ldrb r2, [r0, #1] + cmp r2, #0 + beq _0805316C + ldr r0, _08053174 @ =gUnk_030010A0 + adds r0, #0x2e + ldrb r1, [r0] + eors r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r1, r0, #0x1f +_0805316C: + adds r0, r1, #0 +_0805316E: + pop {pc} + .align 2, 0 +_08053170: .4byte gUnk_02033A90 +_08053174: .4byte gUnk_030010A0 + + thumb_func_start sub_08053178 +sub_08053178: @ 0x08053178 + push {r4, r5, lr} + bl sub_08053144 + cmp r0, #0 + beq _080531E6 + ldr r0, _080531E8 @ =gUnk_030010A0 + ldr r5, _080531EC @ =gUnk_02033A90 + ldrb r1, [r5, #1] + adds r0, #0x2e + strb r1, [r0] + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + beq _080531E6 + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + bne _080531DC + bl sub_0805E8D4 + adds r4, r0, #0 + cmp r4, #0 + beq _080531DC + movs r0, #9 + strb r0, [r4, #8] + movs r0, #0x39 + strb r0, [r4, #9] + adds r0, r4, #0 + movs r1, #8 + bl sub_0805EA2C + ldr r0, _080531F0 @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _080531DC + ldr r0, _080531F4 @ =gUnk_02002AA0 + ldrb r1, [r5, #1] + bl sub_0801D5A8 + cmp r0, #0 + bne _080531DC + movs r0, #1 + strb r0, [r4, #0xb] + movs r0, #3 + bl sub_08078A90 + bl sub_0805E5A8 +_080531DC: + ldr r0, _080531F4 @ =gUnk_02002AA0 + ldr r1, _080531EC @ =gUnk_02033A90 + ldrb r1, [r1, #1] + bl sub_0801D5BC +_080531E6: + pop {r4, r5, pc} + .align 2, 0 +_080531E8: .4byte gUnk_030010A0 +_080531EC: .4byte gUnk_02033A90 +_080531F0: .4byte gUnk_02034350 +_080531F4: .4byte gUnk_02002AA0 + + thumb_func_start sub_080531F8 +sub_080531F8: @ 0x080531F8 + push {r4, r5, lr} + ldr r1, _0805323C @ =gUnk_03003F80 + ldr r4, _08053240 @ =gLinkEntity + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x16] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x18] + bl sub_08053144 + cmp r0, #0 + beq _08053238 + ldr r5, _08053244 @ =gUnk_030010AC + ldr r1, _08053248 @ =gUnk_02002AC8 + adds r0, r5, #0 + movs r2, #0x20 + bl sub_0801D66C + bl sub_08052660 + cmp r0, #0 + beq _08053238 + adds r1, r5, #0 + subs r1, #0xc + ldr r2, _0805324C @ =gUnk_03000BF0 + ldrb r0, [r2, #4] + strb r0, [r1, #0x16] + ldrb r0, [r2, #5] + strb r0, [r1, #0x17] + ldrh r0, [r4, #0x2e] + strh r0, [r1, #0x18] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x1a] +_08053238: + pop {r4, r5, pc} + .align 2, 0 +_0805323C: .4byte gUnk_03003F80 +_08053240: .4byte gLinkEntity +_08053244: .4byte gUnk_030010AC +_08053248: .4byte gUnk_02002AC8 +_0805324C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053250 +sub_08053250: @ 0x08053250 + push {r4, lr} + ldr r0, _0805328C @ =gUnk_030010A0 + movs r1, #0 + strb r1, [r0, #0xf] + ldr r3, _08053290 @ =gLinkEntity + ldr r4, _08053294 @ =gUnk_03000BF0 + ldrh r1, [r3, #0x2e] + ldrh r2, [r4, #6] + subs r1, r1, r2 + strh r1, [r0, #0x10] + ldrh r1, [r3, #0x32] + ldrh r2, [r4, #8] + subs r1, r1, r2 + strh r1, [r0, #0x12] + ldrb r1, [r3, #0x14] + strb r1, [r0, #0xe] + adds r3, #0x38 + ldrb r1, [r3] + strb r1, [r0, #0x14] + ldrb r1, [r4, #4] + strb r1, [r0, #0xc] + ldrb r1, [r4, #5] + strb r1, [r0, #0xd] + adds r0, #0xc + ldr r1, _08053298 @ =gUnk_02002AC8 + movs r2, #0x20 + bl sub_0801D66C + pop {r4, pc} + .align 2, 0 +_0805328C: .4byte gUnk_030010A0 +_08053290: .4byte gLinkEntity +_08053294: .4byte gUnk_03000BF0 +_08053298: .4byte gUnk_02002AC8 + + thumb_func_start sub_0805329C +sub_0805329C: @ 0x0805329C + push {lr} + bl sub_08053144 + cmp r0, #0 + beq _080532E0 + ldr r0, _080532B8 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x48 + beq _080532C2 + cmp r0, #0x48 + bgt _080532BC + cmp r0, #0x18 + beq _080532D6 + b _080532DC + .align 2, 0 +_080532B8: .4byte gUnk_03000BF0 +_080532BC: + cmp r0, #0x50 + beq _080532D0 + b _080532DC +_080532C2: + ldr r1, _080532CC @ =gUnk_02002A40 + movs r0, #0 + strb r0, [r1, #7] + b _080532E0 + .align 2, 0 +_080532CC: .4byte gUnk_02002A40 +_080532D0: + bl sub_080530B0 + b _080532E0 +_080532D6: + bl sub_080532E4 + b _080532E0 +_080532DC: + bl sub_08053460 +_080532E0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080532E4 +sub_080532E4: @ 0x080532E4 + ldr r0, _08053318 @ =gUnk_0811E214 + movs r1, #0xb0 + lsls r1, r1, #1 + adds r0, r0, r1 + ldr r0, [r0] + movs r3, #0xa5 + lsls r3, r3, #1 + adds r2, r0, r3 + ldr r1, _0805331C @ =gUnk_030010A0 + movs r0, #0x58 + strb r0, [r1, #0x16] + movs r0, #0x21 + strb r0, [r1, #0x17] + ldrh r0, [r2, #4] + lsrs r0, r0, #1 + ldrh r3, [r2] + adds r0, r0, r3 + strh r0, [r1, #0x18] + strh r0, [r1, #0x1c] + ldrh r0, [r2, #6] + ldrh r2, [r2, #2] + adds r0, r0, r2 + adds r0, #0xa0 + strh r0, [r1, #0x1a] + strh r0, [r1, #0x1e] + bx lr + .align 2, 0 +_08053318: .4byte gUnk_0811E214 +_0805331C: .4byte gUnk_030010A0 + + thumb_func_start sub_08053320 +sub_08053320: @ 0x08053320 + push {r4, lr} + ldr r0, _0805337C @ =gUnk_02034CB0 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08053380 @ =gUnk_02021F30 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08053384 @ =gUnk_020344B0 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08053388 @ =gUnk_02001A40 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + movs r0, #0x10 + bl sub_0801D7EC + movs r0, #0x17 + bl sub_0801D7EC + ldr r0, _0805338C @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #4 + bne _08053362 + movs r0, #0x1a + bl sub_0801D7EC +_08053362: + bl sub_08053390 + movs r0, #0xb + bl sub_0801D714 + movs r0, #0xc + bl sub_0801D714 + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + pop {r4, pc} + .align 2, 0 +_0805337C: .4byte gUnk_02034CB0 +_08053380: .4byte gUnk_02021F30 +_08053384: .4byte gUnk_020344B0 +_08053388: .4byte gUnk_02001A40 +_0805338C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053390 +sub_08053390: @ 0x08053390 + push {lr} + movs r0, #8 + bl GetInventoryValue + movs r1, #0x19 + cmp r0, #0 + beq _080533A0 + movs r1, #0x18 +_080533A0: + adds r0, r1, #0 + bl sub_0801D7EC + movs r0, #0xa + bl GetInventoryValue + cmp r0, #0 + beq _080533B6 + movs r0, #0x1d + bl sub_0801D7EC +_080533B6: + movs r0, #0xc + bl GetInventoryValue + movs r1, #0x1b + cmp r0, #0 + beq _080533C4 + movs r1, #0x1c +_080533C4: + adds r0, r1, #0 + bl sub_0801D7EC + pop {pc} + + thumb_func_start sub_080533CC +sub_080533CC: @ 0x080533CC + ldr r0, _08053400 @ =gUnk_020178E0 + ldr r2, _08053404 @ =0xFFFFFE00 + adds r1, r0, r2 + ldrh r2, [r0] + strh r2, [r1] + adds r0, #2 + adds r1, #2 + ldrh r2, [r0] + strh r2, [r1] + adds r0, #2 + adds r1, #2 + ldrh r2, [r0] + strh r2, [r1] + adds r0, #2 + adds r1, #2 + ldrh r2, [r0] + strh r2, [r1] + ldrh r0, [r0, #2] + strh r0, [r1, #2] + ldr r2, _08053408 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #8 + orrs r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_08053400: .4byte gUnk_020178E0 +_08053404: .4byte 0xFFFFFE00 +_08053408: .4byte gUnk_0200B644 + + thumb_func_start sub_0805340C +sub_0805340C: @ 0x0805340C + push {r4, r5, r6, lr} + ldr r5, _08053428 @ =gUnk_02002ECC + movs r4, #0 + ldr r6, _0805342C @ =gUnk_080FCB18 +_08053414: + ldm r6!, {r1} + adds r0, r5, #0 + bl _call_via_r1 + adds r4, #1 + adds r5, #4 + cmp r4, #7 + bls _08053414 + pop {r4, r5, r6, pc} + .align 2, 0 +_08053428: .4byte gUnk_02002ECC +_0805342C: .4byte gUnk_080FCB18 + + thumb_func_start nullsub_480 +nullsub_480: @ 0x08053430 + bx lr + .align 2, 0 + + thumb_func_start sub_08053434 +sub_08053434: @ 0x08053434 + push {lr} + adds r1, r0, #0 + ldr r0, _0805345C @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x1d + bne _0805345A + ldr r0, [r1] + cmp r0, #0 + beq _0805345A + subs r0, #1 + str r0, [r1] + cmp r0, #0 + bne _0805345A + bl sub_08053460 + movs r0, #5 + movs r1, #6 + bl sub_080A7138 +_0805345A: + pop {pc} + .align 2, 0 +_0805345C: .4byte gUnk_02033A90 + + thumb_func_start sub_08053460 +sub_08053460: @ 0x08053460 + push {lr} + ldr r0, _08053488 @ =gUnk_02002A40 + ldr r1, _0805348C @ =0x0000048C + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + movs r0, #0x8c + lsls r0, r0, #4 + movs r1, #0x79 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08053480 + movs r0, #0x1c + bl sub_0807CD80 +_08053480: + ldr r0, _08053490 @ =gUnk_080FCB38 + bl sub_0805356C + pop {pc} + .align 2, 0 +_08053488: .4byte gUnk_02002A40 +_0805348C: .4byte 0x0000048C +_08053490: .4byte gUnk_080FCB38 + + thumb_func_start sub_08053494 +sub_08053494: @ 0x08053494 + ldr r0, _080534A0 @ =gUnk_02002A40 + ldr r1, _080534A4 @ =0x0000048C + adds r0, r0, r1 + ldr r1, _080534A8 @ =0x00002A30 + str r1, [r0] + bx lr + .align 2, 0 +_080534A0: .4byte gUnk_02002A40 +_080534A4: .4byte 0x0000048C +_080534A8: .4byte 0x00002A30 + + thumb_func_start sub_080534AC +sub_080534AC: @ 0x080534AC + push {r4, lr} + movs r4, #0x8c + lsls r4, r4, #4 + adds r0, r4, #0 + movs r1, #0x7c + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _080534D6 + adds r0, r4, #0 + movs r1, #0x7c + bl sub_0807CD20 + ldr r0, _080534D8 @ =gUnk_02002A40 + ldr r1, _080534DC @ =0x0000048C + adds r0, r0, r1 + movs r1, #0 + str r1, [r0] + ldr r0, _080534E0 @ =0x80100000 + bl sub_080A3268 +_080534D6: + pop {r4, pc} + .align 2, 0 +_080534D8: .4byte gUnk_02002A40 +_080534DC: .4byte 0x0000048C +_080534E0: .4byte 0x80100000 + + thumb_func_start sub_080534E4 +sub_080534E4: @ 0x080534E4 + push {lr} + adds r1, r0, #0 + ldr r0, _080534FC @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x1a + beq _080534FA + ldr r0, [r1] + cmp r0, #0 + beq _080534FA + subs r0, #1 + str r0, [r1] +_080534FA: + pop {pc} + .align 2, 0 +_080534FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053500 +sub_08053500: @ 0x08053500 + ldr r0, _0805350C @ =gUnk_02002A40 + ldr r1, _08053510 @ =0x00000494 + adds r0, r0, r1 + ldr r1, _08053514 @ =0x00008CA0 + str r1, [r0] + bx lr + .align 2, 0 +_0805350C: .4byte gUnk_02002A40 +_08053510: .4byte 0x00000494 +_08053514: .4byte 0x00008CA0 + + thumb_func_start sub_08053518 +sub_08053518: @ 0x08053518 + push {lr} + bl sub_08053460 + ldr r0, _08053568 @ =gUnk_080FCB62 + bl sub_0805356C + movs r0, #0x1b + bl GetProgressFlag + cmp r0, #0 + bne _08053534 + movs r0, #0x1a + bl sub_0807CD80 +_08053534: + movs r0, #0x40 + bl GetInventoryValue + cmp r0, #0 + bne _08053544 + movs r0, #2 + bl sub_0807CD80 +_08053544: + movs r0, #0x41 + bl GetInventoryValue + cmp r0, #0 + bne _08053554 + movs r0, #3 + bl sub_0807CD80 +_08053554: + movs r0, #0x42 + bl GetInventoryValue + cmp r0, #0 + bne _08053564 + movs r0, #5 + bl sub_0807CD80 +_08053564: + pop {pc} + .align 2, 0 +_08053568: .4byte gUnk_080FCB62 + + thumb_func_start sub_0805356C +sub_0805356C: @ 0x0805356C + push {r4, r5, lr} + adds r4, r0, #0 + ldrh r0, [r4] + ldr r1, _0805358C @ =0x0000FFFF + cmp r0, r1 + beq _0805358A + adds r5, r1, #0 +_0805357A: + ldrh r0, [r4] + ldrh r1, [r4, #2] + bl sub_0807CD20 + adds r4, #4 + ldrh r0, [r4] + cmp r0, r5 + bne _0805357A +_0805358A: + pop {r4, r5, pc} + .align 2, 0 +_0805358C: .4byte 0x0000FFFF + + thumb_func_start sub_08053590 +sub_08053590: @ 0x08053590 + push {lr} + ldr r1, _080535A4 @ =gUnk_080FCBB4 + ldr r0, _080535A8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080535A4: .4byte gUnk_080FCBB4 +_080535A8: .4byte gUnk_02000080 + + thumb_func_start sub_080535AC +sub_080535AC: @ 0x080535AC + push {lr} + ldr r2, _080535DC @ =gUnk_02000080 + movs r1, #1 + strb r1, [r2, #6] + movs r0, #0x78 + strh r0, [r2, #8] + ldr r0, _080535E0 @ =gUnk_02032EC0 + strb r1, [r0, #6] + ldr r0, _080535E4 @ =gUnk_02000070 + strb r1, [r0] + ldr r2, _080535E8 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080535EC @ =0x0000FEFF + ands r0, r1 + strh r0, [r2] + ldr r0, _080535F0 @ =gUnk_080FCB94 + bl LoadRoomEntityList + movs r0, #6 + movs r1, #8 + bl sub_08050054 + pop {pc} + .align 2, 0 +_080535DC: .4byte gUnk_02000080 +_080535E0: .4byte gUnk_02032EC0 +_080535E4: .4byte gUnk_02000070 +_080535E8: .4byte gUnk_03000F50 +_080535EC: .4byte 0x0000FEFF +_080535F0: .4byte gUnk_080FCB94 + + thumb_func_start sub_080535F4 +sub_080535F4: @ 0x080535F4 + push {lr} + ldr r0, _0805360C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053608 + bl sub_0805E5B4 + ldr r1, _08053610 @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1, #6] +_08053608: + pop {pc} + .align 2, 0 +_0805360C: .4byte gUnk_03000FD0 +_08053610: .4byte gUnk_02000080 + + thumb_func_start nullsub_481 +nullsub_481: @ 0x08053614 + bx lr + .align 2, 0 + + thumb_func_start sub_08053618 +sub_08053618: @ 0x08053618 + push {lr} + ldr r1, _08053630 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805362C + bl sub_08052004 +_0805362C: + pop {pc} + .align 2, 0 +_08053630: .4byte gUnk_02000080 + + thumb_func_start sub_08053634 +sub_08053634: @ 0x08053634 + push {lr} + ldr r1, _08053644 @ =gUnk_02032EC0 + movs r0, #3 + strb r0, [r1] + bl sub_08056418 + pop {pc} + .align 2, 0 +_08053644: .4byte gUnk_02032EC0 + + thumb_func_start sub_08053648 +sub_08053648: @ 0x08053648 + push {lr} + movs r0, #0x2d + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08053674 + ldr r0, _08053678 @ =gUnk_03000BF0 + movs r3, #0xb4 + lsls r3, r3, #2 + adds r1, r3, #0 + ldrh r3, [r0, #6] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + movs r3, #0xa4 + lsls r3, r3, #1 + adds r1, r3, #0 + ldrh r0, [r0, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] +_08053674: + pop {pc} + .align 2, 0 +_08053678: .4byte gUnk_03000BF0 + + thumb_func_start sub_0805367C +sub_0805367C: @ 0x0805367C + ldr r1, _08053688 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_08053688: .4byte gUnk_02000080 + + thumb_func_start sub_0805368C +sub_0805368C: @ 0x0805368C + push {lr} + movs r0, #6 + movs r1, #0x5d + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + beq _080536A6 + bl sub_0805E7BC + movs r0, #0xf0 + bl sub_080A3268 +_080536A6: + pop {pc} + + thumb_func_start sub_080536A8 +sub_080536A8: @ 0x080536A8 + push {lr} + movs r0, #5 + movs r1, #5 + movs r2, #4 + movs r3, #0x10 + bl sub_080A71C4 + pop {pc} + + thumb_func_start sub_080536B8 +sub_080536B8: @ 0x080536B8 + push {lr} + movs r0, #5 + movs r1, #3 + movs r2, #4 + movs r3, #4 + bl sub_080A71C4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080536D4 +sub_080536D4: @ 0x080536D4 + push {lr} + ldr r1, _080536E8 @ =gUnk_080FCCFC + ldr r0, _080536EC @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080536E8: .4byte gUnk_080FCCFC +_080536EC: .4byte gUnk_02000080 + + thumb_func_start sub_080536F0 +sub_080536F0: @ 0x080536F0 + push {lr} + ldr r1, _08053704 @ =gUnk_080FCD38 + ldr r0, _08053708 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053704: .4byte gUnk_080FCD38 +_08053708: .4byte gUnk_02000080 + + thumb_func_start sub_0805370C +sub_0805370C: @ 0x0805370C + push {lr} + ldr r1, _08053730 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + ldr r1, _08053734 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + bl sub_08051FF0 + ldr r0, _08053738 @ =gUnk_080FCC54 + bl LoadRoomEntityList + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {pc} + .align 2, 0 +_08053730: .4byte gUnk_02000080 +_08053734: .4byte gUnk_02000070 +_08053738: .4byte gUnk_080FCC54 + + thumb_func_start sub_0805373C +sub_0805373C: @ 0x0805373C + push {lr} + ldr r1, _08053750 @ =gUnk_080FCD40 + ldr r0, _08053754 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053750: .4byte gUnk_080FCD40 +_08053754: .4byte gUnk_02000080 + + thumb_func_start sub_08053758 +sub_08053758: @ 0x08053758 + push {r4, lr} + ldr r1, _080537DC @ =gUnk_02000080 + movs r2, #0 + movs r3, #1 + strb r3, [r1, #6] + movs r4, #0 + movs r0, #0x78 + strh r0, [r1, #8] + movs r0, #0x1e + strh r0, [r1, #0xa] + strb r4, [r1, #0x10] + ldr r0, _080537E0 @ =gUnk_02032EC0 + strb r3, [r0, #6] + ldr r0, _080537E4 @ =gUnk_02025EB0 + str r2, [r0] + ldr r0, _080537E8 @ =gUnk_0200B650 + str r2, [r0] + ldr r0, _080537EC @ =gUnk_03000BF0 + str r2, [r0, #0x30] + strh r2, [r0, #0xc] + strh r2, [r0, #0xa] + bl sub_0801B170 + movs r0, #0 + bl sub_0801DA90 + ldr r2, _080537F0 @ =gUnk_03000F50 + movs r0, #0x99 + lsls r0, r0, #6 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _080537F4 @ =0x00002244 + strh r0, [r1] + adds r1, #2 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + subs r1, #8 + movs r0, #0x1f + strh r0, [r1] + adds r1, #2 + movs r0, #0x3f + strh r0, [r1] + subs r1, #0xa + movs r0, #0xf0 + strh r0, [r1] + adds r1, #4 + movs r0, #0x60 + strh r0, [r1] + ldr r0, _080537F8 @ =0x00001C4E + strh r0, [r2, #0x14] + ldr r0, _080537FC @ =0x00001DC1 + strh r0, [r2, #0x20] + movs r0, #0xf + bl sub_080A3268 + bl sub_0805E5B4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080537DC: .4byte gUnk_02000080 +_080537E0: .4byte gUnk_02032EC0 +_080537E4: .4byte gUnk_02025EB0 +_080537E8: .4byte gUnk_0200B650 +_080537EC: .4byte gUnk_03000BF0 +_080537F0: .4byte gUnk_03000F50 +_080537F4: .4byte 0x00002244 +_080537F8: .4byte 0x00001C4E +_080537FC: .4byte 0x00001DC1 + + thumb_func_start sub_08053800 +sub_08053800: @ 0x08053800 + push {r4, r5, lr} + ldr r0, _0805387C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805387A + ldr r1, _08053880 @ =gUnk_02000080 + ldrb r5, [r1, #0x10] + lsls r4, r5, #1 + adds r4, r4, r5 + lsls r4, r4, #2 + ldr r0, _08053884 @ =gUnk_080FCCB4 + adds r4, r4, r0 + ldrh r0, [r4, #8] + movs r2, #0 + strh r0, [r1, #8] + movs r0, #0x1e + strh r0, [r1, #0xa] + ldrb r0, [r1, #0x10] + adds r0, #1 + strb r0, [r1, #0x10] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + strb r2, [r1, #7] + adds r0, r5, #0 + adds r0, #0x8a + bl sub_0801D714 + adds r0, r5, #0 + adds r0, #0x3a + bl sub_0801D7EC + ldr r0, _08053888 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _0805388C @ =0x00000F01 + adds r5, r5, r0 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0805F46C + ldr r2, _08053890 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r2, #0x1a] + adds r1, r2, #0 + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + ldrh r1, [r4, #4] + adds r0, r2, #0 + adds r0, #0x58 + strh r1, [r0] + ldrh r1, [r4, #6] + adds r0, #4 + strh r1, [r0] + ldrh r1, [r4, #0xa] + movs r0, #4 + bl sub_08050054 +_0805387A: + pop {r4, r5, pc} + .align 2, 0 +_0805387C: .4byte gUnk_03000FD0 +_08053880: .4byte gUnk_02000080 +_08053884: .4byte gUnk_080FCCB4 +_08053888: .4byte gUnk_02021F30 +_0805388C: .4byte 0x00000F01 +_08053890: .4byte gUnk_03000F50 + + thumb_func_start sub_08053894 +sub_08053894: @ 0x08053894 + push {r4, lr} + ldr r0, _080538B4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080538F8 + ldr r1, _080538B8 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + ldrh r0, [r1, #0xa] + adds r4, r1, #0 + cmp r0, #0 + beq _080538BC + subs r0, #1 + strh r0, [r4, #0xa] + b _080538E4 + .align 2, 0 +_080538B4: .4byte gUnk_03000FD0 +_080538B8: .4byte gUnk_02000080 +_080538BC: + ldr r0, _080538FC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080538E4 + ldrb r1, [r4, #7] + cmp r1, #0xf + bhi _080538E4 + adds r1, #1 + strb r1, [r4, #7] + lsls r1, r1, #0x18 + ldr r3, _08053900 @ =gUnk_03000F50 + lsrs r2, r1, #0x10 + lsrs r1, r1, #0x19 + movs r0, #0x10 + subs r0, r0, r1 + orrs r2, r0 + adds r3, #0x68 + strh r2, [r3] +_080538E4: + ldrh r0, [r4, #8] + cmp r0, #0 + bne _080538F8 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_080538F8: + pop {r4, pc} + .align 2, 0 +_080538FC: .4byte gUnk_030010A0 +_08053900: .4byte gUnk_03000F50 + + thumb_func_start sub_08053904 +sub_08053904: @ 0x08053904 + push {r4, lr} + ldr r0, _08053924 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053968 + ldr r1, _08053928 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + ldrh r0, [r1, #0xa] + adds r4, r1, #0 + cmp r0, #0 + beq _0805392C + subs r0, #1 + strh r0, [r4, #0xa] + b _08053954 + .align 2, 0 +_08053924: .4byte gUnk_03000FD0 +_08053928: .4byte gUnk_02000080 +_0805392C: + ldr r0, _0805396C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08053954 + ldrb r1, [r4, #7] + cmp r1, #0xf + bhi _08053954 + adds r1, #1 + strb r1, [r4, #7] + lsls r1, r1, #0x18 + ldr r3, _08053970 @ =gUnk_03000F50 + lsrs r2, r1, #0x10 + lsrs r1, r1, #0x19 + movs r0, #0x10 + subs r0, r0, r1 + orrs r2, r0 + adds r3, #0x68 + strh r2, [r3] +_08053954: + ldrh r0, [r4, #8] + cmp r0, #0 + bne _08053968 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #5 + movs r1, #1 + bl sub_08050054 +_08053968: + pop {r4, pc} + .align 2, 0 +_0805396C: .4byte gUnk_030010A0 +_08053970: .4byte gUnk_03000F50 + + thumb_func_start sub_08053974 +sub_08053974: @ 0x08053974 + push {lr} + ldr r0, _080539AC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080539A8 + bl sub_0804FFE4 + movs r0, #1 + bl sub_0801DA90 + bl sub_080197AC + bl sub_08051F78 + ldr r0, _080539B0 @ =gUnk_080FCBC4 + bl LoadRoomEntityList + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r1, _080539B4 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_080539A8: + pop {pc} + .align 2, 0 +_080539AC: .4byte gUnk_03000FD0 +_080539B0: .4byte gUnk_080FCBC4 +_080539B4: .4byte gUnk_02000080 + + thumb_func_start nullsub_482 +nullsub_482: @ 0x080539B8 + bx lr + .align 2, 0 + + thumb_func_start sub_080539BC +sub_080539BC: @ 0x080539BC + push {lr} + bl sub_080197AC + bl sub_0805E89C + movs r0, #0x22 + movs r1, #0x11 + movs r2, #0 + movs r3, #0 + bl sub_08051F9C + movs r0, #0x22 + movs r1, #0x11 + bl sub_0804B0B0 + ldr r0, _080539EC @ =gUnk_080FCC14 + bl LoadRoomEntityList + ldr r1, _080539F0 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + pop {pc} + .align 2, 0 +_080539EC: .4byte gUnk_080FCC14 +_080539F0: .4byte gUnk_02000080 + + thumb_func_start sub_080539F4 +sub_080539F4: @ 0x080539F4 + push {lr} + ldr r0, _08053A14 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053A10 + movs r0, #1 + bl sub_0801DA90 + ldr r0, _08053A18 @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r1, #1 + strb r1, [r0, #6] + movs r1, #0x3c + strh r1, [r0, #8] +_08053A10: + pop {pc} + .align 2, 0 +_08053A14: .4byte gUnk_03000FD0 +_08053A18: .4byte gUnk_02000080 + + thumb_func_start sub_08053A1C +sub_08053A1C: @ 0x08053A1C + push {r4, lr} + ldr r1, _08053A50 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053A4E + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r4, #8 + movs r0, #8 + strh r0, [r1, #8] + ldr r0, _08053A54 @ =0x00000F07 + bl sub_08056378 + ldr r1, _08053A58 @ =gUnk_02000050 + movs r0, #1 + strb r0, [r1, #6] + strb r4, [r1, #7] + movs r0, #4 + movs r1, #8 + bl sub_08050054 +_08053A4E: + pop {r4, pc} + .align 2, 0 +_08053A50: .4byte gUnk_02000080 +_08053A54: .4byte 0x00000F07 +_08053A58: .4byte gUnk_02000050 + + thumb_func_start sub_08053A5C +sub_08053A5C: @ 0x08053A5C + push {lr} + ldr r0, _08053A88 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08053A86 + ldr r1, _08053A8C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053A86 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_08053A86: + pop {pc} + .align 2, 0 +_08053A88: .4byte gUnk_02000050 +_08053A8C: .4byte gUnk_02000080 + + thumb_func_start sub_08053A90 +sub_08053A90: @ 0x08053A90 + push {lr} + ldr r0, _08053AA8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053AA4 + ldr r1, _08053AAC @ =gUnk_02032EC0 + movs r0, #3 + strb r0, [r1] + bl sub_080197AC +_08053AA4: + pop {pc} + .align 2, 0 +_08053AA8: .4byte gUnk_03000FD0 +_08053AAC: .4byte gUnk_02032EC0 + + thumb_func_start sub_08053AB0 +sub_08053AB0: @ 0x08053AB0 + push {lr} + ldr r1, _08053AC4 @ =gUnk_080FCDD4 + ldr r0, _08053AC8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053AC4: .4byte gUnk_080FCDD4 +_08053AC8: .4byte gUnk_02000080 + + thumb_func_start sub_08053ACC +sub_08053ACC: @ 0x08053ACC + push {lr} + ldr r1, _08053AF4 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + ldr r1, _08053AF8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + bl sub_08051FF0 + ldr r0, _08053AFC @ =gUnk_080FCD84 + bl LoadRoomEntityList + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 +_08053AF4: .4byte gUnk_02000080 +_08053AF8: .4byte gUnk_02000070 +_08053AFC: .4byte gUnk_080FCD84 + + thumb_func_start sub_08053B00 +sub_08053B00: @ 0x08053B00 + ldr r1, _08053B0C @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_08053B0C: .4byte gUnk_02000080 + + thumb_func_start sub_08053B10 +sub_08053B10: @ 0x08053B10 + push {lr} + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + beq _08053B34 + ldr r0, _08053B38 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r1, #1 + strb r1, [r0, #5] + movs r0, #1 + bl sub_0801DA90 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #4 + bl sub_08050054 +_08053B34: + pop {pc} + .align 2, 0 +_08053B38: .4byte gUnk_02000080 + + thumb_func_start sub_08053B3C +sub_08053B3C: @ 0x08053B3C + push {r4, lr} + movs r4, #0x80 + lsls r4, r4, #1 + movs r0, #5 + movs r1, #4 + movs r2, #5 + adds r3, r4, #0 + bl sub_080A71C4 + movs r0, #5 + adds r1, r4, #0 + bl sub_08050054 + pop {r4, pc} + + thumb_func_start sub_08053B58 +sub_08053B58: @ 0x08053B58 + push {lr} + ldr r1, _08053B6C @ =gUnk_080FCEB0 + ldr r0, _08053B70 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053B6C: .4byte gUnk_080FCEB0 +_08053B70: .4byte gUnk_02000080 + + thumb_func_start sub_08053B74 +sub_08053B74: @ 0x08053B74 + push {lr} + ldr r1, _08053BA0 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + ldr r1, _08053BA4 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r0, _08053BA8 @ =gUnk_080FCDE0 + bl LoadRoomEntityList + bl sub_0805E5B4 + bl sub_0805E470 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 +_08053BA0: .4byte gUnk_02000080 +_08053BA4: .4byte gUnk_02000070 +_08053BA8: .4byte gUnk_080FCDE0 + + thumb_func_start sub_08053BAC +sub_08053BAC: @ 0x08053BAC + ldr r1, _08053BB8 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_08053BB8: .4byte gUnk_02000080 + + thumb_func_start sub_08053BBC +sub_08053BBC: @ 0x08053BBC + push {lr} + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _08053BE0 + ldr r0, _08053BE4 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r1, #1 + strb r1, [r0, #5] + movs r0, #1 + bl sub_0801DA90 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #4 + bl sub_08050054 +_08053BE0: + pop {pc} + .align 2, 0 +_08053BE4: .4byte gUnk_02000080 + + thumb_func_start sub_08053BE8 +sub_08053BE8: @ 0x08053BE8 + push {r4, lr} + movs r4, #0x80 + lsls r4, r4, #1 + movs r0, #5 + movs r1, #2 + movs r2, #5 + adds r3, r4, #0 + bl sub_080A71C4 + movs r0, #5 + adds r1, r4, #0 + bl sub_08050054 + pop {r4, pc} + + thumb_func_start sub_08053C04 +sub_08053C04: @ 0x08053C04 + push {lr} + ldr r1, _08053C18 @ =gUnk_080FCEEC + ldr r0, _08053C1C @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053C18: .4byte gUnk_080FCEEC +_08053C1C: .4byte gUnk_02000080 + + thumb_func_start sub_08053C20 +sub_08053C20: @ 0x08053C20 + push {lr} + ldr r1, _08053C50 @ =gUnk_02000080 + movs r2, #1 + strb r2, [r1, #6] + movs r0, #0x78 + strh r0, [r1, #8] + ldr r0, _08053C54 @ =gUnk_02000070 + strb r2, [r0] + bl sub_08051FF0 + movs r0, #4 + bl sub_0805B4D0 + ldr r0, _08053C58 @ =gUnk_080FCEBC + bl LoadRoomEntityList + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x33 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08053C50: .4byte gUnk_02000080 +_08053C54: .4byte gUnk_02000070 +_08053C58: .4byte gUnk_080FCEBC + + thumb_func_start nullsub_483 +nullsub_483: @ 0x08053C5C + bx lr + .align 2, 0 + + thumb_func_start sub_08053C60 +sub_08053C60: @ 0x08053C60 + push {lr} + movs r0, #5 + movs r1, #2 + bl sub_08050054 + movs r0, #0xf4 + bl sub_080A3268 + ldr r0, _08053C80 @ =0x80100000 + bl sub_080A3268 + movs r0, #3 + bl sub_08056010 + pop {pc} + .align 2, 0 +_08053C80: .4byte 0x80100000 + + thumb_func_start sub_08053C84 +sub_08053C84: @ 0x08053C84 + ldr r1, _08053C8C @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_08053C8C: .4byte gUnk_02000080 + + thumb_func_start sub_08053C90 +sub_08053C90: @ 0x08053C90 + push {lr} + ldr r1, _08053CA4 @ =gUnk_080FCEF8 + ldr r0, _08053CA8 @ =gUnk_02000080 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053CA4: .4byte gUnk_080FCEF8 +_08053CA8: .4byte gUnk_02000080 + + thumb_func_start sub_08053CAC +sub_08053CAC: @ 0x08053CAC + push {lr} + ldr r1, _08053CC0 @ =gUnk_080FCFA4 + ldr r0, _08053CC4 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053CC0: .4byte gUnk_080FCFA4 +_08053CC4: .4byte gUnk_02000080 + + thumb_func_start sub_08053CC8 +sub_08053CC8: @ 0x08053CC8 + push {r4, r5, r6, lr} + ldr r6, _08053D20 @ =gUnk_02000080 + ldrb r4, [r6, #3] + lsls r4, r4, #4 + ldr r0, _08053D24 @ =gUnk_080FCF04 + adds r4, r4, r0 + adds r0, r4, #0 + adds r0, #8 + str r0, [r6, #0xc] + ldr r0, [r4] + bl LoadRoomEntityList + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + movs r2, #1 + bl sub_0804B0FC + bl LoadRoomEntityList + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + movs r2, #2 + bl sub_0804B0FC + bl LoadRoomEntityList + movs r5, #1 + strb r5, [r6, #6] + ldr r2, _08053D28 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _08053D2C @ =0x0000FEFF + ands r0, r1 + strh r0, [r2] + ldr r0, _08053D30 @ =gUnk_02000070 + strb r5, [r0] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + ldrb r0, [r4, #5] + cmp r0, #0x1d + bne _08053D1E + strh r5, [r6, #0xa] +_08053D1E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08053D20: .4byte gUnk_02000080 +_08053D24: .4byte gUnk_080FCF04 +_08053D28: .4byte gUnk_03000F50 +_08053D2C: .4byte 0x0000FEFF +_08053D30: .4byte gUnk_02000070 + + thumb_func_start sub_08053D34 +sub_08053D34: @ 0x08053D34 + push {r4, lr} + ldr r1, _08053D88 @ =gUnk_02000080 + ldrh r0, [r1, #0xa] + cmp r0, #0 + beq _08053D72 + movs r0, #0 + strh r0, [r1, #0xa] + movs r4, #0xd0 + lsls r4, r4, #3 + adds r0, r4, #0 + movs r1, #0x3d + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08053D5C + movs r0, #0x74 + movs r1, #0xc4 + movs r2, #1 + bl sub_0807B314 +_08053D5C: + adds r0, r4, #0 + movs r1, #0x3e + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08053D72 + movs r0, #0x74 + movs r1, #0xcc + movs r2, #1 + bl sub_0807B314 +_08053D72: + ldr r0, _08053D8C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053D86 + ldr r1, _08053D88 @ =gUnk_02000080 + movs r0, #0x78 + strh r0, [r1, #8] + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08053D86: + pop {r4, pc} + .align 2, 0 +_08053D88: .4byte gUnk_02000080 +_08053D8C: .4byte gUnk_03000FD0 + + thumb_func_start sub_08053D90 +sub_08053D90: @ 0x08053D90 + push {lr} + ldr r1, _08053DB0 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053DAC + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0x10 + bl sub_080500F4 +_08053DAC: + pop {pc} + .align 2, 0 +_08053DB0: .4byte gUnk_02000080 + + thumb_func_start sub_08053DB4 +sub_08053DB4: @ 0x08053DB4 + push {r4, r5, lr} + ldr r0, _08053E20 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053E1C + ldr r5, _08053E24 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + bl sub_08052FF4 + bl sub_0807C740 + ldr r1, _08053E28 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, _08053E2C @ =gUnk_03000BF0 + movs r0, #6 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r1, #0xa] + movs r0, #7 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0xc] + adds r0, r0, r2 + strh r0, [r1, #0xc] + ldr r0, [r4] + bl LoadRoomEntityList + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + movs r2, #1 + bl sub_0804B0FC + bl LoadRoomEntityList + ldrb r0, [r4, #4] + ldrb r1, [r4, #5] + movs r2, #2 + bl sub_0804B0FC + bl LoadRoomEntityList + movs r0, #0x78 + strh r0, [r5, #8] + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + movs r0, #0x10 + bl sub_080500F4 +_08053E1C: + pop {r4, r5, pc} + .align 2, 0 +_08053E20: .4byte gUnk_03000FD0 +_08053E24: .4byte gUnk_02000080 +_08053E28: .4byte gUnk_02000070 +_08053E2C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053E30 +sub_08053E30: @ 0x08053E30 + push {lr} + ldr r0, _08053E50 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053E4E + ldr r1, _08053E54 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053E4E + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08053E4E: + pop {pc} + .align 2, 0 +_08053E50: .4byte gUnk_03000FD0 +_08053E54: .4byte gUnk_02000080 + + thumb_func_start sub_08053E58 +sub_08053E58: @ 0x08053E58 + push {lr} + ldr r1, _08053E6C @ =gUnk_080FD108 + ldr r0, _08053E70 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053E6C: .4byte gUnk_080FD108 +_08053E70: .4byte gUnk_02000080 + + thumb_func_start sub_08053E74 +sub_08053E74: @ 0x08053E74 + push {r4, lr} + ldr r0, _08053EB0 @ =gUnk_080FCFB8 + ldr r4, _08053EB4 @ =gUnk_02000080 + str r0, [r4, #0xc] + ldr r0, [r0] + bl LoadRoomEntityList + movs r0, #0x78 + strh r0, [r4, #8] + movs r0, #0x3c + strh r0, [r4, #0xa] + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r2, _08053EB8 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _08053EBC @ =0x0000FEFF + ands r0, r1 + strh r0, [r2] + ldr r1, _08053EC0 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #1 + bl sub_0805E450 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08053EB0: .4byte gUnk_080FCFB8 +_08053EB4: .4byte gUnk_02000080 +_08053EB8: .4byte gUnk_03000F50 +_08053EBC: .4byte 0x0000FEFF +_08053EC0: .4byte gUnk_02000070 + + thumb_func_start sub_08053EC4 +sub_08053EC4: @ 0x08053EC4 + push {r4, lr} + ldr r0, _08053EF4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053EF0 + ldr r4, _08053EF8 @ =gUnk_02000080 + ldrh r0, [r4, #0xa] + subs r0, #1 + strh r0, [r4, #0xa] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053EF0 + ldr r1, [r4, #0xc] + adds r0, r1, #0 + adds r0, #0xc + str r0, [r4, #0xc] + ldr r0, [r1, #4] + bl LoadRoomEntityList + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] +_08053EF0: + pop {r4, pc} + .align 2, 0 +_08053EF4: .4byte gUnk_03000FD0 +_08053EF8: .4byte gUnk_02000080 + + thumb_func_start sub_08053EFC +sub_08053EFC: @ 0x08053EFC + push {lr} + ldr r1, _08053F1C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053F18 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #8 + bl sub_080500F4 +_08053F18: + pop {pc} + .align 2, 0 +_08053F1C: .4byte gUnk_02000080 + + thumb_func_start sub_08053F20 +sub_08053F20: @ 0x08053F20 + push {r4, r5, lr} + ldr r0, _08053F78 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053F74 + bl sub_0805E89C + ldr r5, _08053F7C @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #8] + ldrb r1, [r4, #9] + bl sub_08052FF4 + bl sub_0807C740 + ldr r1, _08053F80 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, _08053F84 @ =gUnk_03000BF0 + movs r0, #0xa + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0xa] + adds r0, r0, r2 + strh r0, [r1, #0xa] + movs r0, #0xb + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0xc] + adds r0, r0, r2 + strh r0, [r1, #0xc] + ldr r0, [r4] + bl LoadRoomEntityList + movs r0, #0x78 + strh r0, [r5, #8] + movs r0, #0x3c + strh r0, [r5, #0xa] + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + movs r0, #8 + bl sub_080500F4 +_08053F74: + pop {r4, r5, pc} + .align 2, 0 +_08053F78: .4byte gUnk_03000FD0 +_08053F7C: .4byte gUnk_02000080 +_08053F80: .4byte gUnk_02000070 +_08053F84: .4byte gUnk_03000BF0 + + thumb_func_start sub_08053F88 +sub_08053F88: @ 0x08053F88 + push {lr} + ldr r0, _08053FAC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08053FAA + ldr r1, _08053FB0 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08053FAA + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + bl sub_0805E470 +_08053FAA: + pop {pc} + .align 2, 0 +_08053FAC: .4byte gUnk_03000FD0 +_08053FB0: .4byte gUnk_02000080 + + thumb_func_start sub_08053FB4 +sub_08053FB4: @ 0x08053FB4 + push {lr} + ldr r1, _08053FC8 @ =gUnk_080FD138 + ldr r0, _08053FCC @ =gUnk_02000080 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08053FC8: .4byte gUnk_080FD138 +_08053FCC: .4byte gUnk_02000080 + + thumb_func_start sub_08053FD0 +sub_08053FD0: @ 0x08053FD0 + lsls r0, r0, #3 + ldr r1, _08053FDC @ =gUnk_080FD964 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bx lr + .align 2, 0 +_08053FDC: .4byte gUnk_080FD964 + + thumb_func_start sub_08053FE0 +sub_08053FE0: @ 0x08053FE0 + lsls r0, r0, #3 + ldr r1, _08053FEC @ =gUnk_080FD964 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_08053FEC: .4byte gUnk_080FD964 + + thumb_func_start sub_08053FF0 +sub_08053FF0: @ 0x08053FF0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r7, r1, #0 + bl GetInventoryValue + adds r5, r0, #0 + lsls r1, r6, #3 + ldr r0, _08054010 @ =gUnk_080FD5B4 + adds r4, r1, r0 + cmp r5, #0 + bne _08054014 + ldrh r0, [r4, #4] + mov r8, r0 + b _08054018 + .align 2, 0 +_08054010: .4byte gUnk_080FD5B4 +_08054014: + ldrh r2, [r4, #6] + mov r8, r2 +_08054018: + adds r0, r6, #0 + bl sub_080544C8 + cmp r0, #0 + bne _08054034 + adds r0, r6, #0 + bl sub_08054398 + cmp r5, #0 + bne _08054034 + adds r0, r6, #0 + movs r1, #1 + bl sub_0807CAA0 +_08054034: + ldrb r0, [r4, #1] + cmp r0, #0x12 + bls _0805403C + b _0805427C +_0805403C: + lsls r0, r0, #2 + ldr r1, _08054048 @ =_0805404C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08054048: .4byte _0805404C +_0805404C: @ jump table + .4byte _0805427C @ case 0 + .4byte _08054098 @ case 1 + .4byte _080540A6 @ case 2 + .4byte _080540C0 @ case 3 + .4byte _08054104 @ case 4 + .4byte _0805414C @ case 5 + .4byte _08054154 @ case 6 + .4byte _08054194 @ case 7 + .4byte _080541B6 @ case 8 + .4byte _080541F0 @ case 9 + .4byte _08054212 @ case 10 + .4byte _080541F8 @ case 11 + .4byte _08054238 @ case 12 + .4byte _08054174 @ case 13 + .4byte _08054240 @ case 14 + .4byte _0805425C @ case 15 + .4byte _08054264 @ case 16 + .4byte _080541B0 @ case 17 + .4byte _0805417C @ case 18 +_08054098: + ldrb r0, [r4, #2] + bl ModHealth + movs r0, #0x71 + bl sub_080A3268 + b _0805427C +_080540A6: + ldr r0, _080540BC @ =gUnk_080FD5A8 + ldrb r1, [r4, #2] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + bl sub_080526CC + movs r0, #0x6f + bl sub_080A3268 + b _0805427C + .align 2, 0 +_080540BC: .4byte gUnk_080FD5A8 +_080540C0: + movs r5, #0 + movs r4, #0x1c + b _080540CA +_080540C6: + adds r4, r1, #1 + adds r5, #1 +_080540CA: + cmp r5, #3 + bls _080540D0 + b _0805427C +_080540D0: + adds r0, r4, #0 + bl GetInventoryValue + adds r1, r4, #0 + cmp r0, #0 + bne _080540C6 + adds r6, r4, #0 + ldr r0, _08054100 @ =gUnk_02002A40 + adds r0, #0xb6 + adds r1, r5, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _080540EE + movs r0, #0x20 + strb r0, [r1] +_080540EE: + adds r0, r6, #0 + movs r1, #1 + bl sub_0807CAA0 + adds r0, r6, #0 + bl sub_08054398 + b _0805427C + .align 2, 0 +_08054100: .4byte gUnk_02002A40 +_08054104: + movs r5, #0 + ldr r0, _08054144 @ =gUnk_02002A40 + adds r2, r0, #0 + adds r2, #0xb6 + ldrb r1, [r2] + adds r3, r0, #0 + cmp r1, #0x20 + beq _08054126 + adds r1, r2, #0 +_08054116: + adds r5, #1 + cmp r5, #3 + bls _0805411E + b _0805427C +_0805411E: + adds r0, r5, r1 + ldrb r0, [r0] + cmp r0, #0x20 + bne _08054116 +_08054126: + cmp r5, #3 + bls _0805412C + b _0805427C +_0805412C: + adds r0, r3, #0 + adds r0, #0xb6 + adds r0, r5, r0 + strb r6, [r0] + adds r0, r6, #0 + movs r1, #1 + bl sub_0807CAA0 + ldr r0, _08054148 @ =0x00000109 + bl sub_080A3268 + b _0805427C + .align 2, 0 +_08054144: .4byte gUnk_02002A40 +_08054148: .4byte 0x00000109 +_0805414C: + movs r0, #1 + bl sub_080526F8 + b _0805424E +_08054154: + ldr r1, _08054168 @ =gUnk_02002A40 + ldr r0, _0805416C @ =gUnk_02033A90 + ldr r2, _08054170 @ =0x0000046C + adds r1, r1, r2 + ldrb r0, [r0, #3] + adds r1, r1, r0 + ldrb r0, [r1] + ldrb r2, [r4, #2] + orrs r0, r2 + b _0805427A + .align 2, 0 +_08054168: .4byte gUnk_02002A40 +_0805416C: .4byte gUnk_02033A90 +_08054170: .4byte 0x0000046C +_08054174: + movs r0, #0x72 + bl sub_0801E738 + b _0805427C +_0805417C: + cmp r6, #0xb + bne _0805418A + movs r0, #0xc + movs r1, #0 + bl sub_0807CAA0 + b _080541B0 +_0805418A: + movs r0, #0xb + movs r1, #0 + bl sub_0807CAA0 + b _080541B0 +_08054194: + cmp r6, #7 + bne _080541A2 + movs r0, #8 + movs r1, #0 + bl sub_0807CAA0 + b _080541AA +_080541A2: + movs r0, #7 + movs r1, #0 + bl sub_0807CAA0 +_080541AA: + movs r0, #0x63 + bl sub_080542F4 +_080541B0: + bl sub_08053390 + b _0805427C +_080541B6: + cmp r5, #0 + bne _080541CA + movs r0, #7 + movs r1, #1 + bl sub_0807CAA0 + movs r0, #7 + bl sub_08054398 + b _080541E2 +_080541CA: + ldr r0, _080541EC @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xae + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _080541E2 + movs r0, #3 + strb r0, [r1] +_080541E2: + movs r0, #0x63 + bl sub_080542F4 + b _0805427C + .align 2, 0 +_080541EC: .4byte gUnk_02002A40 +_080541F0: + ldrb r0, [r4, #2] + bl sub_080542F4 + b _0805424E +_080541F8: + movs r0, #0x66 + bl GetInventoryValue + cmp r0, #0 + bne _0805420A + movs r0, #0x66 + movs r1, #1 + bl sub_0807CAA0 +_0805420A: + movs r0, #0x63 + bl sub_08054330 + b _080541B0 +_08054212: + ldr r0, _08054234 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xaf + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0805422A + movs r0, #3 + strb r0, [r1] +_0805422A: + movs r0, #0x63 + bl sub_08054330 + b _0805427C + .align 2, 0 +_08054234: .4byte gUnk_02002A40 +_08054238: + ldrb r0, [r4, #2] + bl sub_08054330 + b _0805424E +_08054240: + movs r0, #0x3f + movs r1, #1 + bl sub_0807CAA0 + adds r0, r7, #0 + bl sub_080542C0 +_0805424E: + ldr r0, _08054258 @ =0x00000103 + bl sub_080A3268 + b _0805427C + .align 2, 0 +_08054258: .4byte 0x00000103 +_0805425C: + adds r0, r7, #0 + bl sub_0801E738 + b _0805427C +_08054264: + ldr r0, _08054284 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xa8 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0805427C + movs r0, #3 +_0805427A: + strb r0, [r1] +_0805427C: + mov r0, r8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08054284: .4byte gUnk_02002A40 + + thumb_func_start sub_08054288 +sub_08054288: @ 0x08054288 + push {lr} + ldr r1, _08054298 @ =gUnk_080FD5B4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #6] + bl sub_08056378 + pop {pc} + .align 2, 0 +_08054298: .4byte gUnk_080FD5B4 + + thumb_func_start sub_0805429C +sub_0805429C: @ 0x0805429C + ldr r1, _080542A8 @ =gUnk_080FD5B4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r0, [r0, #4] + bx lr + .align 2, 0 +_080542A8: .4byte gUnk_080FD5B4 + + thumb_func_start sub_080542AC +sub_080542AC: @ 0x080542AC + ldr r1, _080542BC @ =gUnk_080FD5B4 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r1, [r0, #3] + movs r0, #1 + ands r0, r1 + bx lr + .align 2, 0 +_080542BC: .4byte gUnk_080FD5B4 + + thumb_func_start sub_080542C0 +sub_080542C0: @ 0x080542C0 + push {lr} + adds r2, r0, #0 + cmp r2, #0 + bne _080542CA + movs r2, #1 +_080542CA: + ldr r1, _080542DC @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xc2 + ldrh r0, [r0] + adds r2, r2, r0 + cmp r2, #0 + bge _080542E0 + movs r2, #0 + b _080542E8 + .align 2, 0 +_080542DC: .4byte gUnk_02002A40 +_080542E0: + ldr r3, _080542F0 @ =0x000003E7 + cmp r2, r3 + ble _080542E8 + adds r2, r3, #0 +_080542E8: + adds r0, r1, #0 + adds r0, #0xc2 + strh r2, [r0] + pop {pc} + .align 2, 0 +_080542F0: .4byte 0x000003E7 + + thumb_func_start sub_080542F4 +sub_080542F4: @ 0x080542F4 + push {lr} + adds r3, r0, #0 + ldr r1, _08054318 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xac + ldrb r0, [r0] + adds r3, r3, r0 + ldr r2, _0805431C @ =gUnk_080FD5A0 + adds r0, r1, #0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + cmp r3, #0 + bge _08054320 + movs r3, #0 + b _08054326 + .align 2, 0 +_08054318: .4byte gUnk_02002A40 +_0805431C: .4byte gUnk_080FD5A0 +_08054320: + cmp r2, r3 + bge _08054326 + adds r3, r2, #0 +_08054326: + adds r0, r1, #0 + adds r0, #0xac + strb r3, [r0] + pop {pc} + .align 2, 0 + + thumb_func_start sub_08054330 +sub_08054330: @ 0x08054330 + push {lr} + adds r3, r0, #0 + ldr r1, _08054354 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xad + ldrb r0, [r0] + adds r3, r3, r0 + ldr r2, _08054358 @ =gUnk_080FD5A4 + adds r0, r1, #0 + adds r0, #0xaf + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r2, [r0] + cmp r3, #0 + bge _0805435C + movs r3, #0 + b _08054362 + .align 2, 0 +_08054354: .4byte gUnk_02002A40 +_08054358: .4byte gUnk_080FD5A4 +_0805435C: + cmp r2, r3 + bge _08054362 + adds r3, r2, #0 +_08054362: + adds r0, r1, #0 + adds r0, #0xad + strb r3, [r0] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805436C +sub_0805436C: @ 0x0805436C + push {lr} + adds r2, r0, #0 + ldr r1, _08054380 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb4 + ldrb r0, [r0] + cmp r2, r0 + bne _08054384 + movs r1, #0 + b _08054392 + .align 2, 0 +_08054380: .4byte gUnk_02002A40 +_08054384: + adds r0, r1, #0 + adds r0, #0xb5 + movs r1, #2 + ldrb r0, [r0] + cmp r2, r0 + bne _08054392 + movs r1, #1 +_08054392: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08054398 +sub_08054398: @ 0x08054398 + push {r4, r5, lr} + adds r5, r0, #0 + cmp r5, #0x46 + bhi _080543A8 + movs r0, #0 + movs r1, #1 + bl sub_0807CAA0 +_080543A8: + subs r0, r5, #1 + cmp r0, #0x1e + bhi _08054410 + movs r1, #2 + ldr r2, _080543C0 @ =gUnk_02002A40 + adds r0, r2, #0 + adds r0, #0xb4 + ldrb r0, [r0] + cmp r0, #0 + bne _080543C4 + movs r1, #0 + b _080543D0 + .align 2, 0 +_080543C0: .4byte gUnk_02002A40 +_080543C4: + adds r0, r2, #0 + adds r0, #0xb5 + ldrb r0, [r0] + cmp r0, #0 + bne _080543D0 + movs r1, #1 +_080543D0: + cmp r1, #2 + bne _0805440A + ldr r3, _080543F0 @ =gUnk_080FD5B4 + lsls r0, r5, #3 + adds r0, r0, r3 + ldrb r4, [r0] + adds r0, r2, #0 + adds r0, #0xb4 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r4, r0 + bne _080543F4 + movs r1, #0 + b _08054406 + .align 2, 0 +_080543F0: .4byte gUnk_080FD5B4 +_080543F4: + adds r0, r2, #0 + adds r0, #0xb5 + ldrb r0, [r0] + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r4, r0 + bne _08054406 + movs r1, #1 +_08054406: + cmp r1, #2 + beq _08054410 +_0805440A: + adds r0, r5, #0 + bl sub_08054414 +_08054410: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08054414 +sub_08054414: @ 0x08054414 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + subs r0, r4, #1 + cmp r0, #0x1e + bhi _08054456 + cmp r1, #1 + bhi _08054456 + movs r2, #0 + cmp r1, #0 + bne _0805442A + movs r2, #1 +_0805442A: + ldr r0, _08054458 @ =gUnk_02002A40 + adds r0, #0xb4 + adds r6, r1, r0 + ldrb r7, [r6] + adds r5, r2, r0 + ldrb r3, [r5] + ldr r2, _0805445C @ =gUnk_080FD5B4 + lsls r1, r3, #3 + adds r1, r1, r2 + lsls r0, r4, #3 + adds r0, r0, r2 + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _0805444A + adds r3, r7, #0 +_0805444A: + strb r4, [r6] + strb r3, [r5] + ldr r1, _08054460 @ =gUnk_0200AF00 + movs r0, #0x7f + strb r0, [r1, #0x13] + strb r0, [r1, #0x14] +_08054456: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08054458: .4byte gUnk_02002A40 +_0805445C: .4byte gUnk_080FD5B4 +_08054460: .4byte gUnk_0200AF00 + + thumb_func_start sub_08054464 +sub_08054464: @ 0x08054464 + push {r4, lr} + adds r4, r0, #0 + ldr r3, _08054498 @ =gUnk_02002A40 + cmp r1, #3 + bls _0805448C + movs r1, #0 + adds r2, r3, #0 + adds r2, #0xb6 + ldrb r0, [r2] + cmp r0, #0x20 + beq _08054488 +_0805447A: + adds r1, #1 + cmp r1, #3 + bhi _08054494 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0x20 + bne _0805447A +_08054488: + cmp r1, #3 + bhi _08054494 +_0805448C: + adds r0, r3, #0 + adds r0, #0xb6 + adds r0, r1, r0 + strb r4, [r0] +_08054494: + adds r0, r1, #0 + pop {r4, pc} + .align 2, 0 +_08054498: .4byte gUnk_02002A40 + + thumb_func_start sub_0805449C +sub_0805449C: @ 0x0805449C + push {lr} + cmp r0, #1 + blo _080544AE + cmp r0, #4 + bls _080544AA + cmp r0, #6 + bne _080544AE +_080544AA: + movs r0, #1 + b _080544B0 +_080544AE: + movs r0, #0 +_080544B0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080544B4 +sub_080544B4: @ 0x080544B4 + push {lr} + cmp r0, #0xe + bhi _080544C2 + cmp r0, #0xd + blo _080544C2 + movs r0, #1 + b _080544C4 +_080544C2: + movs r0, #0 +_080544C4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080544C8 +sub_080544C8: @ 0x080544C8 + push {lr} + cmp r0, #0x1f + bhi _080544D6 + cmp r0, #0x1c + blo _080544D6 + movs r0, #1 + b _080544D8 +_080544D6: + movs r0, #0 +_080544D8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080544DC +sub_080544DC: @ 0x080544DC + push {lr} + adds r2, r0, #0 + ldr r1, _080544F0 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xb6 + ldrb r0, [r0] + cmp r2, r0 + bne _080544F4 + movs r0, #1 + b _08054520 + .align 2, 0 +_080544F0: .4byte gUnk_02002A40 +_080544F4: + adds r0, r1, #0 + adds r0, #0xb7 + ldrb r0, [r0] + cmp r2, r0 + bne _08054502 + movs r0, #2 + b _08054520 +_08054502: + adds r0, r1, #0 + adds r0, #0xb8 + ldrb r0, [r0] + cmp r2, r0 + bne _08054510 + movs r0, #3 + b _08054520 +_08054510: + adds r0, r1, #0 + adds r0, #0xb9 + ldrb r0, [r0] + cmp r2, r0 + beq _0805451E + movs r0, #0 + b _08054520 +_0805451E: + movs r0, #4 +_08054520: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08054524 +sub_08054524: @ 0x08054524 + push {lr} + ldr r0, _08054550 @ =gUnk_02033A90 + ldrb r1, [r0, #1] + cmp r1, #0 + bne _08054534 + ldr r0, _08054554 @ =gUnk_030010A0 + adds r0, #0x2e + ldrb r1, [r0] +_08054534: + cmp r1, #0x16 + bls _0805453A + movs r1, #0 +_0805453A: + ldr r0, _08054558 @ =gUnk_080FE1C6 + adds r0, r1, r0 + ldrb r1, [r0] + lsls r0, r1, #5 + ldr r1, _0805455C @ =gUnk_080015BC + adds r0, r0, r1 + ldr r1, _08054560 @ =gUnk_02034398 + movs r2, #0x20 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_08054550: .4byte gUnk_02033A90 +_08054554: .4byte gUnk_030010A0 +_08054558: .4byte gUnk_080FE1C6 +_0805455C: .4byte gUnk_080015BC +_08054560: .4byte gUnk_02034398 + + thumb_func_start sub_08054564 +sub_08054564: @ 0x08054564 + ldr r1, _0805456C @ =gUnk_02034350 + movs r0, #1 + strb r0, [r1, #2] + bx lr + .align 2, 0 +_0805456C: .4byte gUnk_02034350 + + thumb_func_start sub_08054570 +sub_08054570: @ 0x08054570 + ldr r1, _08054578 @ =gUnk_02034350 + movs r0, #0 + strb r0, [r1, #2] + bx lr + .align 2, 0 +_08054578: .4byte gUnk_02034350 + + thumb_func_start sub_0805457C +sub_0805457C: @ 0x0805457C + push {r4, r5, r6, r7, lr} + sub sp, #0x20 + adds r6, r0, #0 + adds r3, r1, #0 + ldr r0, _080545A4 @ =gUnk_02034350 + ldrb r1, [r0, #2] + adds r5, r0, #0 + cmp r1, #1 + bne _08054590 + b _0805474C +_08054590: + ldr r2, _080545A8 @ =gUnk_08001A1C + movs r4, #0 + cmp r3, #0x19 + bhi _0805463C + lsls r0, r3, #2 + ldr r1, _080545AC @ =_080545B0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080545A4: .4byte gUnk_02034350 +_080545A8: .4byte gUnk_08001A1C +_080545AC: .4byte _080545B0 +_080545B0: @ jump table + .4byte _0805463C @ case 0 + .4byte _08054618 @ case 1 + .4byte _08054618 @ case 2 + .4byte _08054618 @ case 3 + .4byte _08054618 @ case 4 + .4byte _08054618 @ case 5 + .4byte _08054618 @ case 6 + .4byte _08054618 @ case 7 + .4byte _08054618 @ case 8 + .4byte _08054618 @ case 9 + .4byte _08054618 @ case 10 + .4byte _08054618 @ case 11 + .4byte _08054618 @ case 12 + .4byte _0805463C @ case 13 + .4byte _0805463C @ case 14 + .4byte _0805463A @ case 15 + .4byte _08054634 @ case 16 + .4byte _08054634 @ case 17 + .4byte _08054634 @ case 18 + .4byte _08054634 @ case 19 + .4byte _08054634 @ case 20 + .4byte _08054634 @ case 21 + .4byte _08054634 @ case 22 + .4byte _08054634 @ case 23 + .4byte _08054624 @ case 24 + .4byte _08054624 @ case 25 +_08054618: + lsls r1, r3, #5 + ldr r0, _08054620 @ =gUnk_0800137C + adds r4, r1, r0 + b _0805463C + .align 2, 0 +_08054620: .4byte gUnk_0800137C +_08054624: + ldrb r0, [r5, #0xa] + ldr r4, _08054630 @ =gUnk_0800191C + cmp r0, #0 + beq _0805463C + adds r4, #0x20 + b _0805463C + .align 2, 0 +_08054630: .4byte gUnk_0800191C +_08054634: + lsls r1, r3, #5 + ldr r0, _08054650 @ =gUnk_0800161C + adds r2, r1, r0 +_0805463A: + ldr r4, _08054654 @ =gUnk_02034398 +_0805463C: + cmp r4, #0 + bne _08054642 + b _0805474C +_08054642: + ldr r0, _08054658 @ =gUnk_02002A40 + adds r0, #0xb3 + ldrb r1, [r0] + cmp r1, #0 + bne _08054660 + ldr r3, _0805465C @ =gUnk_08001A1C + b _08054666 + .align 2, 0 +_08054650: .4byte gUnk_0800161C +_08054654: .4byte gUnk_02034398 +_08054658: .4byte gUnk_02002A40 +_0805465C: .4byte gUnk_08001A1C +_08054660: + lsls r1, r1, #5 + ldr r0, _0805473C @ =gUnk_0800143C + adds r3, r1, r0 +_08054666: + mov r0, sp + adds r1, r4, #0 + bl sub_08000F14 + ldr r4, _08054740 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #8 + bhi _08054684 + mov r1, sp + mov r0, sp + ldrh r0, [r0, #8] + adds r0, #5 + strh r0, [r1, #8] +_08054684: + adds r0, r4, #0 + adds r0, #0xac + ldrb r0, [r0] + cmp r0, #0 + bne _08054698 + mov r1, sp + mov r0, sp + ldrh r0, [r0, #0xc] + adds r0, #3 + strh r0, [r1, #0xc] +_08054698: + adds r0, r4, #0 + adds r0, #0xad + ldrb r0, [r0] + cmp r0, #0 + bne _080546AC + mov r1, sp + mov r0, sp + ldrh r0, [r0, #0xe] + adds r0, #3 + strh r0, [r1, #0xe] +_080546AC: + adds r0, r4, #0 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r0, #0xa + bhi _080546C0 + mov r1, sp + mov r0, sp + ldrh r0, [r0, #4] + adds r0, #1 + strh r0, [r1, #4] +_080546C0: + ldr r2, _08054744 @ =gUnk_08001A1C + adds r0, r4, #0 + adds r0, #0xbb + ldrb r0, [r0] + adds r3, r2, #0 + cmp r0, #0 + beq _080546D0 + adds r2, #0x20 +_080546D0: + movs r1, #0x8b + lsls r1, r1, #1 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _080546DE + adds r3, #0x40 +_080546DE: + mov r0, sp + mov r1, sp + bl sub_08000F2C + adds r4, r0, #0 + bl sub_08000E50 + adds r2, r0, #0 + asrs r5, r2, #0x18 + movs r0, #0xf + ands r5, r0 + adds r0, r2, #0 + adds r1, r4, #0 + bl __modsi3 + adds r2, r0, #0 + movs r3, #0 + lsls r0, r5, #1 + add r0, sp + movs r4, #0 + ldrsh r1, [r0, r4] + cmp r1, r2 + bgt _08054726 + movs r4, #0xf +_0805470E: + adds r3, #1 + adds r5, #1 + ands r5, r4 + cmp r3, #0xf + bhi _08054726 + lsls r0, r5, #1 + add r0, sp + movs r7, #0 + ldrsh r0, [r0, r7] + adds r1, r1, r0 + cmp r1, r2 + ble _0805470E +_08054726: + ldr r0, _08054748 @ =gUnk_080FE1B4 + adds r0, r5, r0 + ldrb r1, [r0] + cmp r1, #0 + beq _0805474C + adds r0, r6, #0 + movs r2, #0 + bl sub_08054754 + b _0805474E + .align 2, 0 +_0805473C: .4byte gUnk_0800143C +_08054740: .4byte gUnk_02002A40 +_08054744: .4byte gUnk_08001A1C +_08054748: .4byte gUnk_080FE1B4 +_0805474C: + movs r0, #0 +_0805474E: + add sp, #0x20 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08054754 +sub_08054754: @ 0x08054754 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + cmp r4, #0x5e + beq _08054786 + cmp r4, #0x5e + bhi _08054772 + cmp r4, #0x5c + beq _080547A6 + cmp r4, #0x5c + bhi _08054782 + cmp r4, #0x3f + beq _08054794 + b _080547DA +_08054772: + cmp r4, #0xfc + blo _080547DA + cmp r4, #0xfe + bls _080547A6 + cmp r4, #0xff + bne _080547DA + movs r0, #1 + b _08054788 +_08054782: + movs r0, #0x65 + b _08054788 +_08054786: + movs r0, #9 +_08054788: + bl GetInventoryValue + cmp r0, #0 + bne _080547DA +_08054790: + movs r0, #0 + b _0805486C +_08054794: + movs r0, #0x40 + bl GetInventoryValue + cmp r0, #0 + beq _08054790 + cmp r5, #0 + bne _080547DA + movs r5, #1 + b _080547DA +_080547A6: + movs r0, #0x67 + bl GetInventoryValue + cmp r0, #0 + beq _08054790 + ldr r0, _080547FC @ =gUnk_02034350 + ldrb r0, [r0, #5] + cmp r0, #3 + bhi _08054790 + cmp r4, #0x5c + beq _080547DA + adds r5, r4, #0 + subs r5, #0xfc + bl sub_08000E50 + movs r1, #0x3f + ands r1, r0 + ldr r2, _08054800 @ =gUnk_080FE1DD + lsls r0, r5, #6 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r5, [r1] + movs r4, #0x5c + cmp r5, #0 + bne _080547DA + movs r4, #0 +_080547DA: + cmp r4, #0 + beq _0805486A + cmp r4, #0xff + beq _08054842 + movs r0, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805486A + ldr r0, _08054804 @ =gLinkEntity + cmp r6, r0 + bne _08054808 + movs r0, #1 + b _0805480A + .align 2, 0 +_080547FC: .4byte gUnk_02034350 +_08054800: .4byte gUnk_080FE1DD +_08054804: .4byte gLinkEntity +_08054808: + movs r0, #0 +_0805480A: + strb r0, [r2, #0xe] + ldrb r0, [r6, #8] + cmp r0, #6 + bne _08054838 + ldrb r0, [r6, #9] + cmp r0, #0x63 + bne _0805481C + str r2, [r6, #0x54] + b _08054838 +_0805481C: + cmp r0, #0x1e + bne _08054838 + ldrb r0, [r6, #0x14] + lsls r0, r0, #3 + movs r3, #0x80 + rsbs r3, r3, #0 + adds r1, r3, #0 + orrs r0, r1 + strb r0, [r2, #0x15] + movs r0, #0xc0 + strh r0, [r2, #0x24] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r2, #0x20] +_08054838: + adds r0, r6, #0 + adds r1, r2, #0 + bl sub_0806FA24 + b _0805486A +_08054842: + movs r0, #7 + movs r1, #0 + bl CreateEnemy + adds r2, r0, #0 + cmp r2, #0 + beq _0805486A + ldrh r0, [r6, #0x2e] + strh r0, [r2, #0x2e] + ldrh r0, [r6, #0x32] + strh r0, [r2, #0x32] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r2, #0 + bl sub_08016A04 +_0805486A: + adds r0, r4, #0 +_0805486C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08054870 +sub_08054870: @ 0x08054870 + push {lr} + ldr r1, _08054884 @ =gUnk_080FE2A0 + ldr r0, _08054888 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054884: .4byte gUnk_080FE2A0 +_08054888: .4byte gUnk_02000080 + + thumb_func_start sub_0805488C +sub_0805488C: @ 0x0805488C + push {r4, lr} + ldr r4, _080548DC @ =gUnk_02032EC0 + ldrb r1, [r4, #3] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080548E0 @ =gUnk_080FE320 + adds r0, r0, r1 + ldr r2, _080548E4 @ =gUnk_02000080 + ldrb r1, [r0] + movs r3, #0 + strb r1, [r2] + ldrb r1, [r0, #1] + strb r1, [r2, #3] + ldrb r1, [r4, #3] + strb r1, [r2, #4] + str r0, [r2, #0xc] + ldrb r0, [r2, #5] + adds r0, #1 + strb r0, [r2, #5] + strb r3, [r2, #6] + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r2, #8] + movs r0, #0 + bl sub_0801DA90 + ldrb r0, [r4, #3] + movs r1, #1 + bl sub_08054974 + bl sub_0806F364 + movs r0, #0xff + bl sub_0807CD8C + bl sub_080548E8 + pop {r4, pc} + .align 2, 0 +_080548DC: .4byte gUnk_02032EC0 +_080548E0: .4byte gUnk_080FE320 +_080548E4: .4byte gUnk_02000080 + + thumb_func_start sub_080548E8 +sub_080548E8: @ 0x080548E8 + push {lr} + ldr r1, _08054918 @ =gUnk_080FE2AC + ldr r0, _0805491C @ =gUnk_02000080 + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_080AD9B0 + bl sub_080AD918 + bl sub_0807FC40 + bl sub_0801B060 + bl sub_08000108 + pop {pc} + .align 2, 0 +_08054918: .4byte gUnk_080FE2AC +_0805491C: .4byte gUnk_02000080 + + thumb_func_start sub_08054920 +sub_08054920: @ 0x08054920 + push {lr} + bl sub_08056418 + bl sub_0806F38C + ldr r1, _08054948 @ =gUnk_080C9CBC + ldr r0, _0805494C @ =gUnk_02022740 + ldrb r0, [r0, #3] + lsls r0, r0, #3 + adds r0, r0, r1 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _08054954 + ldr r0, _08054950 @ =gUnk_02032EC0 + ldrb r1, [r0, #3] + movs r0, #0xa + bl sub_080A7138 + b _08054962 + .align 2, 0 +_08054948: .4byte gUnk_080C9CBC +_0805494C: .4byte gUnk_02022740 +_08054950: .4byte gUnk_02032EC0 +_08054954: + ldr r1, _08054964 @ =gUnk_02032EC0 + movs r0, #3 + strb r0, [r1] + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 +_08054962: + pop {pc} + .align 2, 0 +_08054964: .4byte gUnk_02032EC0 + + thumb_func_start sub_08054968 +sub_08054968: @ 0x08054968 + ldr r1, _08054970 @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1, #5] + bx lr + .align 2, 0 +_08054970: .4byte gUnk_02000080 + + thumb_func_start sub_08054974 +sub_08054974: @ 0x08054974 + push {r4, r5, r6, lr} + adds r5, r1, #0 + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080549B0 @ =gUnk_080FE320 + adds r6, r1, r0 + ldrb r0, [r6, #2] + ldrb r1, [r6, #3] + bl sub_0804B0C0 + ldr r4, _080549B4 @ =gUnk_03000BF0 + ldrb r0, [r6, #2] + strb r0, [r4, #4] + ldrb r0, [r6, #3] + strb r0, [r4, #5] + bl sub_08053320 + ldrb r0, [r4, #4] + bl sub_08052D58 + ldr r1, _080549B8 @ =gUnk_02033A90 + strh r0, [r1, #4] + cmp r5, #0 + beq _080549BC + ldrb r0, [r6, #2] + ldrb r1, [r6, #3] + bl sub_08052FD8 + b _080549CE + .align 2, 0 +_080549B0: .4byte gUnk_080FE320 +_080549B4: .4byte gUnk_03000BF0 +_080549B8: .4byte gUnk_02033A90 +_080549BC: + ldrb r0, [r6, #2] + ldrb r1, [r6, #3] + bl sub_08052FF4 + bl sub_0807C740 + ldr r1, _08054A00 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_080549CE: + ldr r2, _08054A04 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _08054A08 @ =0x00001FFF + ands r0, r1 + strh r0, [r2] + ldr r1, _08054A0C @ =gUnk_03000BF0 + ldrh r0, [r6, #4] + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r1, #0xa] + ldrh r0, [r6, #6] + ldrh r2, [r1, #8] + adds r0, r0, r2 + strh r0, [r1, #0xc] + ldrb r0, [r6, #2] + cmp r0, #2 + bne _080549F4 + bl sub_08059D18 +_080549F4: + ldr r0, _08054A10 @ =gUnk_02032EC0 + ldrb r0, [r0, #3] + bl sub_08018710 + pop {r4, r5, r6, pc} + .align 2, 0 +_08054A00: .4byte gUnk_02000070 +_08054A04: .4byte gUnk_03000F50 +_08054A08: .4byte 0x00001FFF +_08054A0C: .4byte gUnk_03000BF0 +_08054A10: .4byte gUnk_02032EC0 + + thumb_func_start sub_08054A14 +sub_08054A14: @ 0x08054A14 + push {lr} + lsls r1, r0, #2 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08054A38 @ =gUnk_080FE320 + adds r2, r1, r0 + ldrb r0, [r2, #0x11] + cmp r0, #0xd + bhi _08054A34 + ldr r1, _08054A3C @ =gUnk_0811E454 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r2, #0x12] + bl sub_0807CC9C +_08054A34: + pop {pc} + .align 2, 0 +_08054A38: .4byte gUnk_080FE320 +_08054A3C: .4byte gUnk_0811E454 + + thumb_func_start sub_08054A40 +sub_08054A40: @ 0x08054A40 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08054A5C @ =gUnk_080FEEA8 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r4, #0x41 + movs r0, #0 + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08054A5C: .4byte gUnk_080FEEA8 + + thumb_func_start sub_08054A60 +sub_08054A60: @ 0x08054A60 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0xa0 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r4, #0x11] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x80 + strb r0, [r1] + ldr r0, _08054AC4 @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0806FBD8 + cmp r0, #0 + bne _08054AAC + bl sub_0805E780 +_08054AAC: + adds r0, r4, #0 + bl sub_0801766C + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + adds r0, r4, #0 + bl sub_08054AC8 + pop {r4, pc} + .align 2, 0 +_08054AC4: .4byte gLinkEntity + + thumb_func_start sub_08054AC8 +sub_08054AC8: @ 0x08054AC8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r5, _08054B14 @ =gLinkEntity + ldrb r1, [r5, #0x14] + movs r0, #0xe + ands r0, r1 + strb r0, [r4, #0x14] + ldr r1, [r4, #0x48] + ldr r2, _08054B18 @ =gUnk_080FEEB0 + ldrb r0, [r4, #0x14] + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, [r4, #0x48] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1, #1] + ldr r0, [r4, #0x48] + movs r1, #4 + strb r1, [r0, #6] + ldr r0, [r4, #0x48] + strb r1, [r0, #7] + ldrb r7, [r5, #0x1e] + adds r6, r7, #0 + cmp r6, #0x36 + bhi _08054B06 + ldrh r0, [r5, #0x12] + cmp r0, #6 + beq _08054B1C +_08054B06: + movs r0, #0xff + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08054B68 + .align 2, 0 +_08054B14: .4byte gLinkEntity +_08054B18: .4byte gUnk_080FEEB0 +_08054B1C: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r5, #0x18] + movs r1, #0x40 + ands r1, r2 + ldrb r3, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + lsrs r2, r2, #7 + lsls r2, r2, #7 + movs r1, #0x7f + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + ldrb r0, [r4, #0x1e] + cmp r6, r0 + beq _08054B52 + strb r7, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08054B52: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x5a + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] +_08054B68: + movs r0, #0x10 + bl sub_0805436C + cmp r0, #1 + bhi _08054BFC + ldrb r0, [r4, #0x1e] + cmp r0, #0xff + beq _08054BE8 + ldr r0, _08054BF4 @ =gLinkEntity + ldrb r0, [r0, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08054BE8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08054BE8 + movs r0, #4 + strb r0, [r4, #0xe] + movs r0, #0x45 + movs r1, #0 + movs r2, #0x10 + bl CreateObject + adds r5, r0, #0 + cmp r5, #0 + beq _08054BE8 + movs r3, #0x80 + lsls r3, r3, #0xa + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl PositionRelative + adds r0, r4, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + adds r3, r5, #0 + adds r3, #0x29 + lsrs r1, r1, #0x1d + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldr r1, _08054BF8 @ =gUnk_080FEEB0 + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r0, [r2] + ldrb r0, [r4, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] +_08054BE8: + ldr r1, _08054BF4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_08078E84 + b _08054C00 + .align 2, 0 +_08054BF4: .4byte gLinkEntity +_08054BF8: .4byte gUnk_080FEEB0 +_08054BFC: + bl sub_0805E780 +_08054C00: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08054C04 +sub_08054C04: @ 0x08054C04 + push {lr} + ldr r1, _08054C18 @ =gUnk_080FEEB8 + ldr r0, _08054C1C @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054C18: .4byte gUnk_080FEEB8 +_08054C1C: .4byte gUnk_02000080 + + thumb_func_start sub_08054C20 +sub_08054C20: @ 0x08054C20 + push {r4, lr} + ldr r4, _08054C50 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_0801876C + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08054C54 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08054C50: .4byte gUnk_02000080 +_08054C54: .4byte gUnk_02000070 + + thumb_func_start sub_08054C58 +sub_08054C58: @ 0x08054C58 + push {lr} + ldr r0, _08054C80 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054C7C + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08054C7C + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _08054C84 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08054C7C: + pop {pc} + .align 2, 0 +_08054C80: .4byte gUnk_03000FD0 +_08054C84: .4byte gUnk_02000080 + + thumb_func_start sub_08054C88 +sub_08054C88: @ 0x08054C88 + push {r4, lr} + ldr r0, _08054CB8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054CB4 + ldr r4, _08054CBC @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_08054974 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_08054CB4: + pop {r4, pc} + .align 2, 0 +_08054CB8: .4byte gUnk_03000FD0 +_08054CBC: .4byte gUnk_02000080 + + thumb_func_start sub_08054CC0 +sub_08054CC0: @ 0x08054CC0 + push {lr} + ldr r0, _08054CE0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054CDE + ldr r1, _08054CE4 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08054CDE + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08054CDE: + pop {pc} + .align 2, 0 +_08054CE0: .4byte gUnk_03000FD0 +_08054CE4: .4byte gUnk_02000080 + + thumb_func_start sub_08054CE8 +sub_08054CE8: @ 0x08054CE8 + push {lr} + ldr r1, _08054CFC @ =gUnk_080FEEC8 + ldr r0, _08054D00 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054CFC: .4byte gUnk_080FEEC8 +_08054D00: .4byte gUnk_02000080 + + thumb_func_start sub_08054D04 +sub_08054D04: @ 0x08054D04 + push {r4, lr} + ldr r4, _08054D34 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08054D38 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08054D34: .4byte gUnk_02000080 +_08054D38: .4byte gUnk_02000070 + + thumb_func_start sub_08054D3C +sub_08054D3C: @ 0x08054D3C + push {r4, lr} + ldr r0, _08054D6C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054D6A + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08054D6A + ldr r4, _08054D70 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_08054D6A: + pop {r4, pc} + .align 2, 0 +_08054D6C: .4byte gUnk_03000FD0 +_08054D70: .4byte gUnk_02000080 + + thumb_func_start sub_08054D74 +sub_08054D74: @ 0x08054D74 + push {lr} + ldr r1, _08054D8C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08054D8A + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08054D8A: + pop {pc} + .align 2, 0 +_08054D8C: .4byte gUnk_02000080 + + thumb_func_start sub_08054D90 +sub_08054D90: @ 0x08054D90 + push {lr} + ldr r1, _08054DA4 @ =gUnk_080FEF34 + ldr r0, _08054DA8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054DA4: .4byte gUnk_080FEF34 +_08054DA8: .4byte gUnk_02000080 + + thumb_func_start sub_08054DAC +sub_08054DAC: @ 0x08054DAC + push {r4, lr} + ldr r4, _08054DF0 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _08054DF4 @ =gUnk_080FEED4 + bl LoadRoomEntityList + movs r0, #2 + bl sub_0805B4D0 + movs r0, #0 + bl sub_0806D0B0 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08054DF8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08054DF0: .4byte gUnk_02000080 +_08054DF4: .4byte gUnk_080FEED4 +_08054DF8: .4byte gUnk_02000070 + + thumb_func_start nullsub_484 +nullsub_484: @ 0x08054DFC + bx lr + .align 2, 0 + + thumb_func_start sub_08054E00 +sub_08054E00: @ 0x08054E00 + push {lr} + ldr r1, _08054E14 @ =gUnk_080FEF3C + ldr r0, _08054E18 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054E14: .4byte gUnk_080FEF3C +_08054E18: .4byte gUnk_02000080 + + thumb_func_start sub_08054E1C +sub_08054E1C: @ 0x08054E1C + push {r4, r5, lr} + ldr r5, _08054E54 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0B0 + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0E8 + ldrb r0, [r5, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + ldr r1, _08054E58 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_08054E54: .4byte gUnk_02000080 +_08054E58: .4byte gUnk_02000070 + + thumb_func_start sub_08054E5C +sub_08054E5C: @ 0x08054E5C + push {r4, lr} + ldr r0, _08054E94 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08054E92 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08054E92 + ldr r4, _08054E98 @ =gUnk_02000080 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0xb4 + strh r0, [r4, #8] + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + ldrb r0, [r4, #4] + bl sub_080553E0 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C +_08054E92: + pop {r4, pc} + .align 2, 0 +_08054E94: .4byte gUnk_03000FD0 +_08054E98: .4byte gUnk_02000080 + + thumb_func_start sub_08054E9C +sub_08054E9C: @ 0x08054E9C + push {lr} + ldr r1, _08054EB4 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08054EB2 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08054EB2: + pop {pc} + .align 2, 0 +_08054EB4: .4byte gUnk_02000080 + + thumb_func_start sub_08054EB8 +sub_08054EB8: @ 0x08054EB8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E8D4 + adds r3, r0, #0 + cmp r3, #0 + beq _08054EF6 + movs r0, #9 + strb r0, [r3, #8] + movs r0, #0x24 + strb r0, [r3, #9] + ldr r2, _08054EF8 @ =gUnk_03000BF0 + ldrh r0, [r4, #0x2e] + ldrh r1, [r2, #6] + subs r0, r0, r1 + strh r0, [r3, #0x38] + ldrh r0, [r4, #0x32] + ldrh r1, [r2, #8] + subs r0, r0, r1 + subs r0, #0x10 + strh r0, [r3, #0x3a] + adds r1, r3, #0 + adds r1, #0x35 + movs r0, #1 + strb r0, [r1] + movs r0, #0x79 + strh r0, [r3, #0x3e] + adds r0, r3, #0 + movs r1, #6 + bl sub_0805EA2C +_08054EF6: + pop {r4, pc} + .align 2, 0 +_08054EF8: .4byte gUnk_03000BF0 + + thumb_func_start sub_08054EFC +sub_08054EFC: @ 0x08054EFC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _08054F5C @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r5, #0x32 + ldrsh r0, [r4, r5] + ldrh r2, [r2, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r1, r0 + subs r1, #0x40 + ldr r0, _08054F60 @ =0x00004074 + movs r2, #1 + bl sub_0800015E + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x35 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08054F54 + ldrh r0, [r1, #0x32] + subs r0, #0x10 + strh r0, [r1, #0x32] + adds r0, r4, #0 + bl sub_0806FAD8 +_08054F54: + movs r0, #0xfd + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08054F5C: .4byte gUnk_03000BF0 +_08054F60: .4byte 0x00004074 + + thumb_func_start sub_08054F64 +sub_08054F64: @ 0x08054F64 + push {lr} + ldrb r0, [r0, #0xb] + ldr r3, _08054F7C @ =gUnk_02033280 + ldr r2, [r3] + adds r1, r2, #0 + ands r1, r0 + cmp r1, r0 + beq _08054F80 + movs r0, #0 + strb r0, [r3, #6] + b _08054F8C + .align 2, 0 +_08054F7C: .4byte gUnk_02033280 +_08054F80: + bics r2, r1 + str r2, [r3] + ldrb r1, [r3, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r3, #7] +_08054F8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08054F90 +sub_08054F90: @ 0x08054F90 + push {lr} + ldr r1, _08054FA4 @ =gUnk_080FF120 + ldr r0, _08054FA8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08054FA4: .4byte gUnk_080FF120 +_08054FA8: .4byte gUnk_02000080 + + thumb_func_start sub_08054FAC +sub_08054FAC: @ 0x08054FAC + push {r4, r5, r6, lr} + ldr r6, _08055008 @ =gUnk_02000080 + ldr r5, [r6, #0xc] + ldr r1, _0805500C @ =gUnk_080FF108 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl LoadRoomEntityList + ldrb r0, [r5, #1] + movs r1, #0 + cmp r0, #0 + beq _08054FCA + movs r1, #3 +_08054FCA: + ldrb r0, [r6, #4] + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r6, #6] + adds r0, #1 + movs r4, #0 + strb r0, [r6, #6] + ldr r1, _08055010 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + strh r4, [r6, #0xa] + movs r0, #0x80 + lsls r0, r0, #3 + movs r1, #0x77 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _08055004 + ldrb r0, [r5, #2] + cmp r0, #0x2f + bne _08055004 + movs r0, #1 + strh r0, [r6, #0xa] +_08055004: + pop {r4, r5, r6, pc} + .align 2, 0 +_08055008: .4byte gUnk_02000080 +_0805500C: .4byte gUnk_080FF108 +_08055010: .4byte gUnk_02000070 + + thumb_func_start sub_08055014 +sub_08055014: @ 0x08055014 + push {lr} + ldr r1, _08055030 @ =gUnk_02000080 + ldrh r0, [r1, #0xa] + cmp r0, #0 + beq _0805502C + movs r0, #0 + strh r0, [r1, #0xa] + ldr r1, _08055034 @ =0x00000407 + movs r0, #0x74 + movs r2, #1 + bl sub_0807B314 +_0805502C: + pop {pc} + .align 2, 0 +_08055030: .4byte gUnk_02000080 +_08055034: .4byte 0x00000407 + + thumb_func_start sub_08055038 +sub_08055038: @ 0x08055038 + push {lr} + ldr r1, _0805504C @ =gUnk_080FF148 + ldr r0, _08055050 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805504C: .4byte gUnk_080FF148 +_08055050: .4byte gUnk_02000080 + + thumb_func_start sub_08055054 +sub_08055054: @ 0x08055054 + push {r4, lr} + ldr r0, _08055080 @ =gUnk_080FF128 + bl LoadRoomEntityList + ldr r4, _08055084 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #2 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055088 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055080: .4byte gUnk_080FF128 +_08055084: .4byte gUnk_02000080 +_08055088: .4byte gUnk_02000070 + + thumb_func_start sub_0805508C +sub_0805508C: @ 0x0805508C + bx lr + .align 2, 0 + + thumb_func_start sub_08055090 +sub_08055090: @ 0x08055090 + bx lr + .align 2, 0 + + thumb_func_start sub_08055094 +sub_08055094: @ 0x08055094 + push {lr} + ldr r1, _080550A8 @ =gUnk_080FF174 + ldr r0, _080550AC @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080550A8: .4byte gUnk_080FF174 +_080550AC: .4byte gUnk_02000080 + + thumb_func_start sub_080550B0 +sub_080550B0: @ 0x080550B0 + push {r4, lr} + ldr r4, _080550E8 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _080550EC @ =gUnk_080FF154 + bl LoadRoomEntityList + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _080550F0 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080550E8: .4byte gUnk_02000080 +_080550EC: .4byte gUnk_080FF154 +_080550F0: .4byte gUnk_02000070 + + thumb_func_start nullsub_487 +nullsub_487: @ 0x080550F4 + bx lr + .align 2, 0 + + thumb_func_start sub_080550F8 +sub_080550F8: @ 0x080550F8 + push {lr} + ldr r1, _0805510C @ =gUnk_080FF1CC + ldr r0, _08055110 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805510C: .4byte gUnk_080FF1CC +_08055110: .4byte gUnk_02000080 + + thumb_func_start sub_08055114 +sub_08055114: @ 0x08055114 + push {r4, lr} + ldr r0, _08055150 @ =gUnk_080FF17C + bl LoadRoomEntityList + ldr r0, _08055154 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #9 + beq _0805512A + ldr r0, _08055158 @ =0x00000DB4 + bl sub_08018C58 +_0805512A: + ldr r4, _0805515C @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055160 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055150: .4byte gUnk_080FF17C +_08055154: .4byte gUnk_02002A40 +_08055158: .4byte 0x00000DB4 +_0805515C: .4byte gUnk_02000080 +_08055160: .4byte gUnk_02000070 + + thumb_func_start nullsub_488 +nullsub_488: @ 0x08055164 + bx lr + .align 2, 0 + + thumb_func_start sub_08055168 +sub_08055168: @ 0x08055168 + push {lr} + ldr r1, _0805517C @ =gUnk_080FF1F4 + ldr r0, _08055180 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805517C: .4byte gUnk_080FF1F4 +_08055180: .4byte gUnk_02000080 + + thumb_func_start sub_08055184 +sub_08055184: @ 0x08055184 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r5, _0805520C @ =gUnk_02000080 + ldr r0, [r5, #0xc] + ldrb r1, [r0, #1] + movs r0, #0xf + ands r0, r1 + lsls r4, r0, #1 + adds r4, r4, r0 + lsls r4, r4, #1 + ldr r0, _08055210 @ =gUnk_080FF1D4 + adds r4, r4, r0 + movs r1, #0 + ldrsh r0, [r4, r1] + bl sub_0801D7EC + ldr r2, _08055214 @ =gUnk_03000F50 + ldrh r0, [r4, #2] + movs r6, #0 + movs r3, #0 + mov r8, r3 + strh r0, [r2, #0x2e] + ldrh r0, [r4, #4] + strh r0, [r2, #0x30] + ldr r0, _08055218 @ =0x00001E05 + strh r0, [r2, #0x2c] + adds r1, r2, #0 + adds r1, #0x66 + ldr r0, _0805521C @ =0x00003648 + strh r0, [r1] + adds r1, #2 + movs r0, #0x10 + strh r0, [r1] + ldrh r0, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldrb r0, [r5, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r5, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + strb r6, [r5, #7] + movs r0, #0x3c + strh r0, [r5, #8] + mov r0, r8 + strh r0, [r5, #0xa] + ldr r1, _08055220 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805520C: .4byte gUnk_02000080 +_08055210: .4byte gUnk_080FF1D4 +_08055214: .4byte gUnk_03000F50 +_08055218: .4byte 0x00001E05 +_0805521C: .4byte 0x00003648 +_08055220: .4byte gUnk_02000070 + + thumb_func_start sub_08055224 +sub_08055224: @ 0x08055224 + push {lr} + ldr r0, _08055244 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055240 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055240 + ldr r1, _08055248 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055240: + pop {pc} + .align 2, 0 +_08055244: .4byte gUnk_03000FD0 +_08055248: .4byte gUnk_02000080 + + thumb_func_start sub_0805524C +sub_0805524C: @ 0x0805524C + push {r4, lr} + ldr r3, _08055270 @ =gUnk_02000080 + ldrb r0, [r3, #7] + cmp r0, #0 + bne _08055274 + ldrh r0, [r3, #8] + subs r0, #1 + strh r0, [r3, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080552D6 + ldrb r0, [r3, #7] + adds r0, #1 + strb r0, [r3, #7] + movs r0, #0xf6 + bl sub_080A3268 + b _080552D6 + .align 2, 0 +_08055270: .4byte gUnk_02000080 +_08055274: + ldr r0, _080552A4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _080552D6 + ldr r4, _080552A8 @ =gUnk_080FF204 + ldrh r2, [r3, #0xa] + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r1, [r0] + ldr r0, _080552AC @ =0x0000FFFF + cmp r1, r0 + beq _080552B4 + ldr r1, _080552B0 @ =gUnk_03000F50 + adds r0, r2, #1 + strh r0, [r3, #0xa] + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + adds r1, #0x68 + strh r0, [r1] + b _080552D6 + .align 2, 0 +_080552A4: .4byte gUnk_030010A0 +_080552A8: .4byte gUnk_080FF204 +_080552AC: .4byte 0x0000FFFF +_080552B0: .4byte gUnk_03000F50 +_080552B4: + ldr r1, _080552D8 @ =gUnk_03000F50 + ldrh r2, [r1] + ldr r0, _080552DC @ =0x0000F7FF + ands r0, r2 + strh r0, [r1] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + movs r0, #0x78 + strh r0, [r3, #8] + ldrb r0, [r3, #6] + adds r0, #1 + strb r0, [r3, #6] + movs r0, #0x73 + bl sub_080A3268 +_080552D6: + pop {r4, pc} + .align 2, 0 +_080552D8: .4byte gUnk_03000F50 +_080552DC: .4byte 0x0000F7FF + + thumb_func_start sub_080552E0 +sub_080552E0: @ 0x080552E0 + push {lr} + ldr r1, _080552F8 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080552F6 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080552F6: + pop {pc} + .align 2, 0 +_080552F8: .4byte gUnk_02000080 + + thumb_func_start sub_080552FC +sub_080552FC: @ 0x080552FC + push {lr} + ldr r1, _08055310 @ =gUnk_080FF228 + ldr r0, _08055314 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055310: .4byte gUnk_080FF228 +_08055314: .4byte gUnk_02000080 + + thumb_func_start sub_08055318 +sub_08055318: @ 0x08055318 + push {r4, lr} + ldr r4, _08055348 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_0801876C + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _0805534C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055348: .4byte gUnk_02000080 +_0805534C: .4byte gUnk_02000070 + + thumb_func_start sub_08055350 +sub_08055350: @ 0x08055350 + push {lr} + ldr r0, _08055378 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055374 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055374 + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _0805537C @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055374: + pop {pc} + .align 2, 0 +_08055378: .4byte gUnk_03000FD0 +_0805537C: .4byte gUnk_02000080 + + thumb_func_start sub_08055380 +sub_08055380: @ 0x08055380 + push {r4, lr} + ldr r0, _080553B0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080553AC + ldr r4, _080553B4 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_08054974 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_080553AC: + pop {r4, pc} + .align 2, 0 +_080553B0: .4byte gUnk_03000FD0 +_080553B4: .4byte gUnk_02000080 + + thumb_func_start sub_080553B8 +sub_080553B8: @ 0x080553B8 + push {lr} + ldr r0, _080553D8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080553D6 + ldr r1, _080553DC @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080553D6 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080553D6: + pop {pc} + .align 2, 0 +_080553D8: .4byte gUnk_03000FD0 +_080553DC: .4byte gUnk_02000080 + + thumb_func_start sub_080553E0 +sub_080553E0: @ 0x080553E0 + push {r4, lr} + ldr r0, _0805540C @ =gUnk_02000080 + ldr r4, [r0, #0xc] + movs r0, #0xf + movs r1, #0x43 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _08055408 + ldr r0, _08055410 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r3, [r4, #8] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + ldrh r4, [r4, #0xa] + adds r0, r0, r4 + strh r0, [r2, #0x32] +_08055408: + pop {r4, pc} + .align 2, 0 +_0805540C: .4byte gUnk_02000080 +_08055410: .4byte gUnk_03000BF0 + + thumb_func_start sub_08055414 +sub_08055414: @ 0x08055414 + push {lr} + ldr r1, _08055428 @ =gUnk_080FF238 + ldr r0, _0805542C @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055428: .4byte gUnk_080FF238 +_0805542C: .4byte gUnk_02000080 + + thumb_func_start sub_08055430 +sub_08055430: @ 0x08055430 + push {r4, lr} + ldr r4, _08055460 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0E8 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055464 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055460: .4byte gUnk_02000080 +_08055464: .4byte gUnk_02000070 + + thumb_func_start sub_08055468 +sub_08055468: @ 0x08055468 + push {lr} + ldr r0, _08055490 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805548C + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _0805548C + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _08055494 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_0805548C: + pop {pc} + .align 2, 0 +_08055490: .4byte gUnk_03000FD0 +_08055494: .4byte gUnk_02000080 + + thumb_func_start sub_08055498 +sub_08055498: @ 0x08055498 + push {r4, lr} + ldr r0, _080554CC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080554CA + ldr r4, _080554D0 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_080554CA: + pop {r4, pc} + .align 2, 0 +_080554CC: .4byte gUnk_03000FD0 +_080554D0: .4byte gUnk_02000080 + + thumb_func_start sub_080554D4 +sub_080554D4: @ 0x080554D4 + push {lr} + ldr r0, _080554F4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080554F2 + ldr r1, _080554F8 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080554F2 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080554F2: + pop {pc} + .align 2, 0 +_080554F4: .4byte gUnk_03000FD0 +_080554F8: .4byte gUnk_02000080 + + thumb_func_start sub_080554FC +sub_080554FC: @ 0x080554FC + push {lr} + ldr r1, _08055510 @ =gUnk_080FF248 + ldr r0, _08055514 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055510: .4byte gUnk_080FF248 +_08055514: .4byte gUnk_02000080 + + thumb_func_start sub_08055518 +sub_08055518: @ 0x08055518 + push {r4, lr} + ldr r4, _08055540 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055544 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055540: .4byte gUnk_02000080 +_08055544: .4byte gUnk_02000070 + + thumb_func_start sub_08055548 +sub_08055548: @ 0x08055548 + push {r4, lr} + ldr r0, _08055578 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055576 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055576 + ldr r4, _0805557C @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0xb4 + strh r0, [r4, #8] +_08055576: + pop {r4, pc} + .align 2, 0 +_08055578: .4byte gUnk_03000FD0 +_0805557C: .4byte gUnk_02000080 + + thumb_func_start sub_08055580 +sub_08055580: @ 0x08055580 + push {lr} + ldr r1, _08055598 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055596 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055596: + pop {pc} + .align 2, 0 +_08055598: .4byte gUnk_02000080 + + thumb_func_start sub_0805559C +sub_0805559C: @ 0x0805559C + push {lr} + ldr r1, _080555B0 @ =gUnk_080FF254 + ldr r0, _080555B4 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080555B0: .4byte gUnk_080FF254 +_080555B4: .4byte gUnk_02000080 + + thumb_func_start sub_080555B8 +sub_080555B8: @ 0x080555B8 + push {r4, r5, lr} + ldr r5, _08055600 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldr r1, _08055604 @ =gUnk_0811E454 + ldrb r0, [r4, #0x11] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r4, #0x12] + bl sub_0807CC9C + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0E8 + movs r0, #0x11 + bl sub_0801D7EC + ldrb r0, [r5, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + ldr r1, _08055608 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_08055600: .4byte gUnk_02000080 +_08055604: .4byte gUnk_0811E454 +_08055608: .4byte gUnk_02000070 + + thumb_func_start sub_0805560C +sub_0805560C: @ 0x0805560C + push {lr} + ldr r0, _0805562C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055628 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055628 + ldr r1, _08055630 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055628: + pop {pc} + .align 2, 0 +_0805562C: .4byte gUnk_03000FD0 +_08055630: .4byte gUnk_02000080 + + thumb_func_start sub_08055634 +sub_08055634: @ 0x08055634 + push {r4, r5, lr} + ldr r4, _0805566C @ =gUnk_02000080 + ldr r5, [r4, #0xc] + movs r0, #0x2c + movs r1, #0 + movs r2, #0 + bl CreateObject + adds r2, r0, #0 + cmp r2, #0 + beq _0805565C + ldr r0, _08055670 @ =gUnk_03000BF0 + ldrh r1, [r5, #8] + ldrh r3, [r0, #6] + adds r1, r1, r3 + strh r1, [r2, #0x2e] + ldrh r1, [r5, #0xa] + ldrh r0, [r0, #8] + adds r1, r1, r0 + strh r1, [r2, #0x32] +_0805565C: + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0xc3 + lsls r0, r0, #1 + strh r0, [r4, #8] + pop {r4, r5, pc} + .align 2, 0 +_0805566C: .4byte gUnk_02000080 +_08055670: .4byte gUnk_03000BF0 + + thumb_func_start sub_08055674 +sub_08055674: @ 0x08055674 + push {lr} + ldr r1, _0805568C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805568A + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_0805568A: + pop {pc} + .align 2, 0 +_0805568C: .4byte gUnk_02000080 + + thumb_func_start sub_08055690 +sub_08055690: @ 0x08055690 + push {lr} + ldr r1, _080556A4 @ =gUnk_080FF284 + ldr r0, _080556A8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080556A4: .4byte gUnk_080FF284 +_080556A8: .4byte gUnk_02000080 + + thumb_func_start sub_080556AC +sub_080556AC: @ 0x080556AC + push {r4, lr} + ldr r4, _080556E4 @ =gUnk_02000080 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _080556E8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _080556EC @ =gUnk_080FF264 + bl LoadRoomEntityList + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080556E4: .4byte gUnk_02000080 +_080556E8: .4byte gUnk_02000070 +_080556EC: .4byte gUnk_080FF264 + + thumb_func_start nullsub_489 +nullsub_489: @ 0x080556F0 + bx lr + .align 2, 0 + + thumb_func_start sub_080556F4 +sub_080556F4: @ 0x080556F4 + push {lr} + ldr r1, _08055708 @ =gUnk_080FF28C + ldr r0, _0805570C @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055708: .4byte gUnk_080FF28C +_0805570C: .4byte gUnk_02000080 + + thumb_func_start sub_08055710 +sub_08055710: @ 0x08055710 + push {r4, lr} + ldr r4, _0805575C @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _08055760 @ =gUnk_080FEE48 + bl CreateEntity + adds r1, r0, #0 + cmp r1, #0 + beq _08055734 + movs r0, #2 + strb r0, [r1, #0xb] + adds r1, #0x86 + ldr r0, _08055764 @ =0x000080FF + strh r0, [r1] +_08055734: + ldrb r0, [r4, #4] + bl sub_08054A14 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055768 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_0805575C: .4byte gUnk_02000080 +_08055760: .4byte gUnk_080FEE48 +_08055764: .4byte 0x000080FF +_08055768: .4byte gUnk_02000070 + + thumb_func_start sub_0805576C +sub_0805576C: @ 0x0805576C + push {lr} + ldr r0, _08055790 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805578C + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _0805578C + ldr r0, _08055794 @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r1, #1 + strb r1, [r0, #6] + movs r1, #0x78 + strh r1, [r0, #8] +_0805578C: + pop {pc} + .align 2, 0 +_08055790: .4byte gUnk_03000FD0 +_08055794: .4byte gUnk_02000080 + + thumb_func_start sub_08055798 +sub_08055798: @ 0x08055798 + push {lr} + ldr r1, _080557B0 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080557AE + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_080557AE: + pop {pc} + .align 2, 0 +_080557B0: .4byte gUnk_02000080 + + thumb_func_start sub_080557B4 +sub_080557B4: @ 0x080557B4 + push {lr} + ldr r1, _080557C8 @ =gUnk_080FF2B8 + ldr r0, _080557CC @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080557C8: .4byte gUnk_080FF2B8 +_080557CC: .4byte gUnk_02000080 + + thumb_func_start sub_080557D0 +sub_080557D0: @ 0x080557D0 + push {r4, lr} + ldr r4, _08055808 @ =gUnk_02000080 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _0805580C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _08055810 @ =gUnk_080FF298 + bl LoadRoomEntityList + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055808: .4byte gUnk_02000080 +_0805580C: .4byte gUnk_02000070 +_08055810: .4byte gUnk_080FF298 + + thumb_func_start nullsub_490 +nullsub_490: @ 0x08055814 + bx lr + .align 2, 0 + + thumb_func_start sub_08055818 +sub_08055818: @ 0x08055818 + push {lr} + ldr r1, _0805582C @ =gUnk_080FF300 + ldr r0, _08055830 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805582C: .4byte gUnk_080FF300 +_08055830: .4byte gUnk_02000080 + + thumb_func_start sub_08055834 +sub_08055834: @ 0x08055834 + push {r4, lr} + ldr r0, _08055870 @ =gUnk_080FF2C0 + bl LoadRoomEntityList + ldr r0, _08055874 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #9 + beq _0805584A + ldr r0, _08055878 @ =0x00000DB4 + bl sub_08018C58 +_0805584A: + ldr r4, _0805587C @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055880 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055870: .4byte gUnk_080FF2C0 +_08055874: .4byte gUnk_02002A40 +_08055878: .4byte 0x00000DB4 +_0805587C: .4byte gUnk_02000080 +_08055880: .4byte gUnk_02000070 + + thumb_func_start nullsub_491 +nullsub_491: @ 0x08055884 + bx lr + .align 2, 0 + + thumb_func_start sub_08055888 +sub_08055888: @ 0x08055888 + push {lr} + ldr r1, _0805589C @ =gUnk_080FF328 + ldr r0, _080558A0 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805589C: .4byte gUnk_080FF328 +_080558A0: .4byte gUnk_02000080 + + thumb_func_start sub_080558A4 +sub_080558A4: @ 0x080558A4 + push {r4, lr} + ldr r4, _080558DC @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldr r0, _080558E0 @ =gUnk_080FF308 + bl LoadRoomEntityList + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _080558E4 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080558DC: .4byte gUnk_02000080 +_080558E0: .4byte gUnk_080FF308 +_080558E4: .4byte gUnk_02000070 + + thumb_func_start nullsub_492 +nullsub_492: @ 0x080558E8 + bx lr + .align 2, 0 + + thumb_func_start sub_080558EC +sub_080558EC: @ 0x080558EC + push {lr} + ldr r1, _08055900 @ =gUnk_080FF330 + ldr r0, _08055904 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055900: .4byte gUnk_080FF330 +_08055904: .4byte gUnk_02000080 + + thumb_func_start sub_08055908 +sub_08055908: @ 0x08055908 + push {r4, r5, lr} + ldr r5, _08055940 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0B0 + ldrb r0, [r4, #2] + ldrb r1, [r4, #3] + bl sub_0804B0E8 + ldrb r0, [r5, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r5, #6] + adds r0, #1 + strb r0, [r5, #6] + ldr r1, _08055944 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_08055940: .4byte gUnk_02000080 +_08055944: .4byte gUnk_02000070 + + thumb_func_start sub_08055948 +sub_08055948: @ 0x08055948 + push {lr} + ldr r0, _08055970 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805596C + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _0805596C + bl sub_08055994 + ldr r0, _08055974 @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r1, #1 + strb r1, [r0, #6] + movs r1, #0x78 + strh r1, [r0, #8] +_0805596C: + pop {pc} + .align 2, 0 +_08055970: .4byte gUnk_03000FD0 +_08055974: .4byte gUnk_02000080 + + thumb_func_start sub_08055978 +sub_08055978: @ 0x08055978 + push {lr} + ldr r1, _08055990 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805598E + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_0805598E: + pop {pc} + .align 2, 0 +_08055990: .4byte gUnk_02000080 + + thumb_func_start sub_08055994 +sub_08055994: @ 0x08055994 + push {r4, lr} + ldr r4, _080559D8 @ =gUnk_02000080 + ldrb r0, [r4, #4] + lsls r0, r0, #3 + ldr r1, _080559DC @ =gUnk_080FEAC8 + adds r0, r0, r1 + ldrb r1, [r0, #6] + movs r0, #1 + ands r0, r1 + movs r3, #1 + cmp r0, #0 + beq _080559AE + movs r3, #2 +_080559AE: + ldr r0, [r4, #0xc] + ldrh r1, [r0, #8] + lsrs r1, r1, #4 + movs r2, #0x3f + ands r1, r2 + ldrh r0, [r0, #0xa] + lsrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r1, r0 + movs r0, #0x73 + adds r2, r3, #0 + bl sub_0807B314 + ldrb r0, [r4, #4] + bl sub_080553E0 + movs r0, #0x73 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_080559D8: .4byte gUnk_02000080 +_080559DC: .4byte gUnk_080FEAC8 + + thumb_func_start sub_080559E0 +sub_080559E0: @ 0x080559E0 + push {lr} + ldr r1, _080559F4 @ =gUnk_080FF35C + ldr r0, _080559F8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080559F4: .4byte gUnk_080FF35C +_080559F8: .4byte gUnk_02000080 + + thumb_func_start sub_080559FC +sub_080559FC: @ 0x080559FC + push {r4, lr} + ldr r4, _08055A30 @ =gUnk_02000080 + ldr r0, [r4, #0xc] + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08055A0E + ldr r0, _08055A34 @ =gUnk_080FF33C + bl LoadRoomEntityList +_08055A0E: + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055A38 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055A30: .4byte gUnk_02000080 +_08055A34: .4byte gUnk_080FF33C +_08055A38: .4byte gUnk_02000070 + + thumb_func_start sub_08055A3C +sub_08055A3C: @ 0x08055A3C + push {lr} + ldr r0, _08055A64 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055A60 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055A60 + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _08055A68 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055A60: + pop {pc} + .align 2, 0 +_08055A64: .4byte gUnk_03000FD0 +_08055A68: .4byte gUnk_02000080 + + thumb_func_start sub_08055A6C +sub_08055A6C: @ 0x08055A6C + push {r4, lr} + ldr r0, _08055AA0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055A9E + ldr r4, _08055AA4 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_08055A9E: + pop {r4, pc} + .align 2, 0 +_08055AA0: .4byte gUnk_03000FD0 +_08055AA4: .4byte gUnk_02000080 + + thumb_func_start sub_08055AA8 +sub_08055AA8: @ 0x08055AA8 + push {lr} + ldr r0, _08055AC8 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055AC6 + ldr r1, _08055ACC @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055AC6 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055AC6: + pop {pc} + .align 2, 0 +_08055AC8: .4byte gUnk_03000FD0 +_08055ACC: .4byte gUnk_02000080 + + thumb_func_start sub_08055AD0 +sub_08055AD0: @ 0x08055AD0 + push {lr} + ldr r1, _08055AE4 @ =gUnk_080FF36C + ldr r0, _08055AE8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055AE4: .4byte gUnk_080FF36C +_08055AE8: .4byte gUnk_02000080 + + thumb_func_start sub_08055AEC +sub_08055AEC: @ 0x08055AEC + push {r4, lr} + ldr r4, _08055B2C @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldr r0, [r4, #0xc] + ldrb r0, [r0, #1] + lsls r0, r0, #4 + ldr r1, _08055B30 @ =gUnk_080FED18 + adds r0, r0, r1 + bl CreateEntity + adds r1, r0, #0 + cmp r1, #0 + beq _08055B14 + movs r0, #1 + strb r0, [r1, #0xb] +_08055B14: + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055B34 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055B2C: .4byte gUnk_02000080 +_08055B30: .4byte gUnk_080FED18 +_08055B34: .4byte gUnk_02000070 + + thumb_func_start sub_08055B38 +sub_08055B38: @ 0x08055B38 + push {lr} + ldr r0, _08055B4C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055B48 + ldr r1, _08055B50 @ =gUnk_02000080 + movs r0, #0x78 + strh r0, [r1, #8] +_08055B48: + pop {pc} + .align 2, 0 +_08055B4C: .4byte gUnk_03000FD0 +_08055B50: .4byte gUnk_02000080 + + thumb_func_start sub_08055B54 +sub_08055B54: @ 0x08055B54 + push {lr} + ldr r1, _08055B6C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055B6A + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055B6A: + pop {pc} + .align 2, 0 +_08055B6C: .4byte gUnk_02000080 + + thumb_func_start sub_08055B70 +sub_08055B70: @ 0x08055B70 + push {r4, r5, r6, lr} + adds r0, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + ldr r1, _08055BA4 @ =gUnk_02000080 + ldr r4, [r1, #0xc] + lsls r0, r0, #4 + ldr r1, _08055BA8 @ =gUnk_080FF378 + adds r0, r0, r1 + bl CreateEntity + adds r3, r0, #0 + cmp r3, #0 + beq _08055BA2 + ldrh r0, [r4, #8] + ldr r1, _08055BAC @ =gUnk_03000BF0 + adds r0, r0, r5 + ldrh r2, [r1, #6] + adds r0, r0, r2 + strh r0, [r3, #0x2e] + ldrh r0, [r4, #0xa] + adds r0, r0, r6 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r3, #0x32] +_08055BA2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08055BA4: .4byte gUnk_02000080 +_08055BA8: .4byte gUnk_080FF378 +_08055BAC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08055BB0 +sub_08055BB0: @ 0x08055BB0 + push {lr} + ldr r1, _08055BC4 @ =gUnk_080FF3C8 + ldr r0, _08055BC8 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055BC4: .4byte gUnk_080FF3C8 +_08055BC8: .4byte gUnk_02000080 + + thumb_func_start sub_08055BCC +sub_08055BCC: @ 0x08055BCC + push {r4, lr} + ldr r4, _08055BFC @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #4] + movs r1, #0 + bl sub_0801876C + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055C00 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055BFC: .4byte gUnk_02000080 +_08055C00: .4byte gUnk_02000070 + + thumb_func_start sub_08055C04 +sub_08055C04: @ 0x08055C04 + push {lr} + ldr r0, _08055C2C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055C28 + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055C28 + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + ldr r1, _08055C30 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] +_08055C28: + pop {pc} + .align 2, 0 +_08055C2C: .4byte gUnk_03000FD0 +_08055C30: .4byte gUnk_02000080 + + thumb_func_start sub_08055C34 +sub_08055C34: @ 0x08055C34 + push {r4, r5, lr} + sub sp, #4 + ldr r0, _08055C64 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055CA6 + ldr r5, _08055C68 @ =gUnk_02000080 + ldr r4, [r5, #0xc] + ldrb r0, [r5, #4] + bl sub_080553E0 + ldrb r1, [r4, #1] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08055C6C + ldrb r0, [r5, #4] + movs r1, #0 + bl sub_08054974 + b _08055C8C + .align 2, 0 +_08055C64: .4byte gUnk_03000FD0 +_08055C68: .4byte gUnk_02000080 +_08055C6C: + str r0, [sp] + movs r0, #6 + movs r1, #0x9e + movs r2, #6 + movs r3, #0 + bl sub_0805EB2C + adds r4, r0, #0 + cmp r4, #0 + beq _08055C8C + ldr r0, [r4, #0x54] + bl sub_0805E7BC + adds r0, r4, #0 + bl sub_0805E7BC +_08055C8C: + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0x73 + bl sub_080A3268 + ldr r0, _08055CAC @ =gUnk_02000080 + ldrb r1, [r0, #6] + adds r1, #1 + strb r1, [r0, #6] + movs r1, #0x78 + strh r1, [r0, #8] +_08055CA6: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_08055CAC: .4byte gUnk_02000080 + + thumb_func_start sub_08055CB0 +sub_08055CB0: @ 0x08055CB0 + push {lr} + ldr r0, _08055CD0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055CCE + ldr r1, _08055CD4 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055CCE + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055CCE: + pop {pc} + .align 2, 0 +_08055CD0: .4byte gUnk_03000FD0 +_08055CD4: .4byte gUnk_02000080 + + thumb_func_start sub_08055CD8 +sub_08055CD8: @ 0x08055CD8 + push {lr} + ldr r1, _08055CEC @ =gUnk_080FF3E8 + ldr r0, _08055CF0 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055CEC: .4byte gUnk_080FF3E8 +_08055CF0: .4byte gUnk_02000080 + + thumb_func_start sub_08055CF4 +sub_08055CF4: @ 0x08055CF4 + push {r4, lr} + ldr r4, _08055D24 @ =gUnk_02000080 + ldr r1, [r4, #0xc] + ldrb r0, [r1, #2] + ldrb r1, [r1, #3] + bl sub_0804B0B0 + ldrb r0, [r4, #4] + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08055B70 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + ldr r1, _08055D28 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_08055D24: .4byte gUnk_02000080 +_08055D28: .4byte gUnk_02000070 + + thumb_func_start sub_08055D2C +sub_08055D2C: @ 0x08055D2C + push {r4, lr} + ldr r0, _08055D5C @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055D5A + movs r0, #0xff + bl sub_0807CC3C + cmp r0, #0 + beq _08055D5A + ldr r4, _08055D60 @ =gUnk_02000080 + ldrb r0, [r4, #4] + movs r1, #1 + bl sub_0801876C + ldrb r0, [r4, #4] + bl sub_080553E0 + ldrb r0, [r4, #6] + adds r0, #1 + strb r0, [r4, #6] + movs r0, #0x78 + strh r0, [r4, #8] +_08055D5A: + pop {r4, pc} + .align 2, 0 +_08055D5C: .4byte gUnk_03000FD0 +_08055D60: .4byte gUnk_02000080 + + thumb_func_start sub_08055D64 +sub_08055D64: @ 0x08055D64 + push {lr} + ldr r1, _08055D7C @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055D7A + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055D7A: + pop {pc} + .align 2, 0 +_08055D7C: .4byte gUnk_02000080 + + thumb_func_start sub_08055D80 +sub_08055D80: @ 0x08055D80 + push {lr} + ldr r1, _08055D94 @ =gUnk_080FF3F4 + ldr r0, _08055D98 @ =gUnk_02000080 + ldrb r0, [r0, #6] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08055D94: .4byte gUnk_080FF3F4 +_08055D98: .4byte gUnk_02000080 + + thumb_func_start sub_08055D9C +sub_08055D9C: @ 0x08055D9C + push {lr} + ldr r1, _08055DB8 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + ldr r1, _08055DBC @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + pop {pc} + .align 2, 0 +_08055DB8: .4byte gUnk_02000080 +_08055DBC: .4byte gUnk_02000070 + + thumb_func_start sub_08055DC0 +sub_08055DC0: @ 0x08055DC0 + push {lr} + ldr r0, _08055DE0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08055DDC + ldr r0, _08055DE4 @ =0x00000A01 + bl sub_08056378 + ldr r1, _08055DE8 @ =gUnk_02000080 + ldrb r0, [r1, #6] + adds r0, #1 + strb r0, [r1, #6] + movs r0, #0x78 + strh r0, [r1, #8] +_08055DDC: + pop {pc} + .align 2, 0 +_08055DE0: .4byte gUnk_03000FD0 +_08055DE4: .4byte 0x00000A01 +_08055DE8: .4byte gUnk_02000080 + + thumb_func_start sub_08055DEC +sub_08055DEC: @ 0x08055DEC + push {lr} + ldr r1, _08055E04 @ =gUnk_02000080 + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08055E02 + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] +_08055E02: + pop {pc} + .align 2, 0 +_08055E04: .4byte gUnk_02000080 diff --git a/asm/code_08055FF4.s b/asm/code_08055FF4.s index ebe03d7a..b966b795 100644 --- a/asm/code_08055FF4.s +++ b/asm/code_08055FF4.s @@ -1594,7 +1594,7 @@ sub_08056BDC: @ 0x08056BDC ldr r1, _08056C28 @ =gUnk_02000D00 movs r2, #0xd0 lsls r2, r2, #4 - bl sub_0801D610 + bl _DmaFill32 bl sub_08056F70 adds r1, r4, #0 adds r1, #0x9e @@ -17052,26 +17052,3 @@ _0805E364: .4byte 0x00000275 _0805E368: .4byte 0x0000026F _0805E36C: .4byte 0x00000272 _0805E370: .4byte gUnk_02000070 - - thumb_func_start sub_0805E374 -sub_0805E374: @ 0x0805E374 - push {lr} - adds r2, r0, #0 - ldr r0, _0805E394 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - ldr r1, _0805E398 @ =gUnk_081091F8 - cmp r0, #2 - beq _0805E386 - ldr r1, _0805E39C @ =gUnk_081091EE -_0805E386: - ldrb r0, [r2, #8] - adds r0, r1, r0 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_0805E3A0 - pop {pc} - .align 2, 0 -_0805E394: .4byte gUnk_030010A0 -_0805E398: .4byte gUnk_081091F8 -_0805E39C: .4byte gUnk_081091EE \ No newline at end of file diff --git a/asm/code_0805E744.s b/asm/code_0805E744.s index cb1ecdc0..3580ea16 100644 --- a/asm/code_0805E744.s +++ b/asm/code_0805E744.s @@ -2001,7 +2001,7 @@ sub_0805F5CC: @ 0x0805F5CC lsls r3, r3, #1 ands r2, r3 lsls r2, r2, #3 - bl sub_0801D610 + bl _DmaFill32 adds r0, r6, #0 movs r1, #0 bl sub_0805F324 @@ -2444,7 +2444,7 @@ sub_0805F918: @ 0x0805F918 bl sub_0805F8F8 ldr r1, _0805F990 @ =gUnk_02036AD8 movs r2, #0xe0 - bl sub_0801D610 + bl _DmaFill32 ldr r0, _0805F994 @ =gUnk_081092AC lsls r4, r4, #2 adds r4, r4, r0 @@ -22362,16 +22362,16 @@ sub_08068F14: @ 0x08068F14 cmp r0, #5 bne _08068F24 movs r0, #0xa0 - bl sub_080526A0 + bl ModHealth _08068F24: ldrb r0, [r4, #0xe] cmp r0, #6 bne _08068F38 movs r0, #0xa0 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth movs r0, #2 - bl sub_080526A0 + bl ModHealth _08068F38: pop {r4, pc} .align 2, 0 @@ -22383,7 +22383,7 @@ sub_08068F3C: @ 0x08068F3C cmp r0, #6 bne _08068F4A movs r0, #0xa0 - bl sub_080526A0 + bl ModHealth _08068F4A: pop {pc} @@ -36607,47 +36607,3 @@ _0806F9E6: pop {r4, pc} .align 2, 0 - thumb_func_start sub_0806F9EC -sub_0806F9EC: @ 0x0806F9EC - push {lr} - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - muls r0, r1, r0 - cmp r0, #0 - bge _0806F9FE - adds r0, #0xff -_0806F9FE: - lsls r0, r0, #8 - asrs r0, r0, #0x10 - pop {pc} - - thumb_func_start sub_0806FA04 -sub_0806FA04: @ 0x0806FA04 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x10 - asrs r1, r1, #0x10 - cmp r1, #0 - beq _0806FA20 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - bl __divsi3 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - b _0806FA22 -_0806FA20: - movs r0, #0 -_0806FA22: - pop {pc} - - thumb_func_start sub_0806FA24 -sub_0806FA24: @ 0x0806FA24 - push {lr} - movs r2, #0 - movs r3, #0 - bl PositionRelative - pop {pc} - diff --git a/asm/code_0806FA6C.s b/asm/code_0806FA6C.s index b2a39d34..75fb9209 100644 --- a/asm/code_0806FA6C.s +++ b/asm/code_0806FA6C.s @@ -2458,7 +2458,7 @@ _08070CFC: movs r0, #0x20 strb r0, [r1] subs r0, #0x22 - bl sub_080526A0 + bl ModHealth _08070D1A: pop {r4, r5, pc} .align 2, 0 @@ -4574,7 +4574,7 @@ _08071D3A: cmp r4, #0 beq _08071D74 adds r0, r4, #0 - bl sub_080526A0 + bl ModHealth movs r2, #0 movs r0, #3 strb r0, [r5, #0xd] @@ -5458,7 +5458,7 @@ sub_080723D0: @ 0x080723D0 movs r0, #0x14 strb r0, [r1] subs r0, #0x16 - bl sub_080526A0 + bl ModHealth bl sub_08079458 _0807240A: pop {r4, pc} @@ -5491,7 +5491,7 @@ sub_0807240C: @ 0x0807240C str r0, [r2, #0x30] movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth bl sub_08079458 _08072448: pop {pc} @@ -5553,7 +5553,7 @@ _080724AE: strb r1, [r0] movs r0, #8 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth bl sub_080791D0 _080724C2: pop {pc} @@ -8930,7 +8930,7 @@ _08073E9E: strb r0, [r1] movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth movs r0, #0x7a bl sub_080A3268 _08073EDC: @@ -9798,7 +9798,7 @@ sub_0807450C: @ 0x0807450C bne _08074568 movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth movs r0, #0x7a bl sub_080A3268 movs r0, #0x18 @@ -10107,7 +10107,7 @@ _0807476C: movs r0, #0x20 strb r0, [r1] subs r0, #0x24 - bl sub_080526A0 + bl ModHealth bl sub_08079458 _08074792: pop {r4, pc} @@ -17430,7 +17430,7 @@ _08077F20: .4byte gUnk_03003F80 thumb_func_start sub_08077F24 sub_08077F24: @ 0x08077F24 push {lr} - ldr r2, _08077F34 @ =gUnk_02002AE8 + ldr r2, _08077F34 @ =gStats ldrb r3, [r0, #1] ldrb r0, [r2, #0xc] cmp r0, r3 @@ -17438,7 +17438,7 @@ sub_08077F24: @ 0x08077F24 movs r2, #1 b _08077F42 .align 2, 0 -_08077F34: .4byte gUnk_02002AE8 +_08077F34: .4byte gStats _08077F38: ldrb r0, [r2, #0xd] movs r2, #0 @@ -19183,7 +19183,7 @@ sub_08078C24: @ 0x08078C24 rsbs r0, r0, #0 adds r1, #4 movs r2, #0x40 - bl sub_0801D610 + bl _DmaFill32 ldr r0, _08078CB0 @ =gUnk_03003DF0 movs r1, #0xc4 lsls r1, r1, #1 @@ -19799,7 +19799,7 @@ sub_080790E4: @ 0x080790E4 strb r0, [r1] movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth movs r0, #0x7a bl sub_080A3268 b _08079182 @@ -23733,7 +23733,7 @@ _0807AE74: strb r0, [r1] movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth movs r0, #0x7a bl sub_080A3268 _0807AEA8: @@ -27149,117 +27149,4 @@ _0807C98C: bl LZ77UnCompWram _0807C994: pop {pc} - .align 2, 0 - - thumb_func_start sub_0807C998 -sub_0807C998: @ 0x0807C998 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0807C9CC @ =gUnk_0202CEB4 - ldr r1, [r5] - adds r0, r4, #0 - bl sub_0807C960 - ldr r0, _0807C9D0 @ =0xFFFFE000 - adds r4, r4, r0 - ldr r1, [r5, #4] - adds r0, r4, #0 - bl sub_0807C960 - ldr r4, _0807C9D4 @ =gUnk_02012654 - ldr r1, [r5, #8] - adds r0, r4, #0 - bl sub_0807C960 - ldr r0, _0807C9D0 @ =0xFFFFE000 - adds r4, r4, r0 - ldr r1, [r5, #0xc] - adds r0, r4, #0 - bl sub_0807C960 - pop {r4, r5, pc} - .align 2, 0 -_0807C9CC: .4byte gUnk_0202CEB4 -_0807C9D0: .4byte 0xFFFFE000 -_0807C9D4: .4byte gUnk_02012654 - - thumb_func_start sub_0807C9D8 -sub_0807C9D8: @ 0x0807C9D8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0807CA0C @ =0x06004000 - ldr r1, [r5] - bl sub_0807C960 - movs r0, #0xc0 - lsls r0, r0, #0x13 - ldr r1, [r5, #4] - bl sub_0807C960 - ldr r0, _0807CA10 @ =0x06008000 - ldr r1, [r5, #8] - bl sub_0807C960 - ldr r4, _0807CA14 @ =gUnk_020176E0 - ldr r1, [r5, #0xc] - adds r0, r4, #0 - bl sub_0807C960 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0xd - bl sub_0801D754 - pop {r4, r5, pc} - .align 2, 0 -_0807CA0C: .4byte 0x06004000 -_0807CA10: .4byte 0x06008000 -_0807CA14: .4byte gUnk_020176E0 - - thumb_func_start sub_0807CA18 -sub_0807CA18: @ 0x0807CA18 - push {lr} - ldr r0, _0807CA7C @ =gUnk_02002A40 - mov ip, r0 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _0807CA66 - movs r2, #0 - mov r0, ip - strb r2, [r0] - movs r3, #1 - strb r3, [r0, #1] - strb r3, [r0, #8] - mov r1, ip - adds r1, #0xaa - movs r0, #0x18 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - subs r1, #0x23 - movs r0, #0x22 - strb r0, [r1] - adds r1, #1 - movs r0, #0x15 - strb r0, [r1] - mov r0, ip - adds r0, #0x8a - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, #5 - strb r3, [r0] - adds r1, #3 - movs r0, #0x90 - strh r0, [r1] - adds r1, #2 - movs r0, #0x38 - strh r0, [r1] -_0807CA66: - mov r1, ip - adds r1, #0x80 - ldrb r0, [r1] - cmp r0, #0 - bne _0807CA78 - ldr r0, _0807CA80 @ =gUnk_0811E470 - movs r2, #5 - bl sub_0801D66C -_0807CA78: - movs r0, #1 - pop {pc} - .align 2, 0 -_0807CA7C: .4byte gUnk_02002A40 -_0807CA80: .4byte gUnk_0811E470 \ No newline at end of file + .align 2, 0 \ No newline at end of file diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index f0ffbcea..1e4238db 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -5069,7 +5069,7 @@ sub_0807F004: @ 0x0807F004 push {lr} ldr r0, [r1] ldrh r0, [r0, #2] - bl sub_080526A0 + bl ModHealth pop {pc} thumb_func_start sub_0807F010 @@ -7152,7 +7152,7 @@ sub_0807FEC8: @ 0x0807FEC8 ldr r4, _0807FEEC @ =gUnk_03003FC0 adds r1, r4, #0 movs r2, #0x40 - bl sub_0801D610 + bl _DmaFill32 subs r4, #0x40 ldr r1, [r5, #0x30] ldrh r0, [r1, #0x2e] @@ -15301,7 +15301,7 @@ _08083D60: cmp r0, #0x63 bne _08083DD0 movs r0, #0xa0 - bl sub_080526A0 + bl ModHealth ldr r0, _08083DA8 @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xa9 @@ -15329,7 +15329,7 @@ _08083D88: strb r0, [r1] _08083DA0: movs r0, #0xa0 - bl sub_080526A0 + bl ModHealth b _08083DD0 .align 2, 0 _08083DA8: .4byte gUnk_02002A40 @@ -67832,7 +67832,7 @@ _0809CD56: strb r0, [r4, #0xf] movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth adds r0, r5, #0 movs r1, #0x7a bl sub_0800449C @@ -79691,161 +79691,4 @@ _080A2820: _080A2828: .4byte gLinkEntity _080A282C: .4byte gUnk_03003DC0 _080A2830: .4byte gUnk_02034490 -_080A2834: .4byte gUnk_03003F80 - - thumb_func_start sub_080A2838 -sub_080A2838: @ 0x080A2838 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #9] - lsls r2, r2, #3 - ldr r0, _080A2858 @ =gUnk_08126798 - adds r2, r2, r0 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080A285C - cmp r0, #2 - bne _080A2856 - adds r0, r4, #0 - bl sub_08016A04 -_080A2856: - pop {r4, pc} - .align 2, 0 -_080A2858: .4byte gUnk_08126798 - - thumb_func_start sub_080A285C -sub_080A285C: @ 0x080A285C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r2, #0 - ldrb r3, [r4, #0x10] - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _080A2870 - movs r0, #1 - b _080A2958 -_080A2870: - ldrb r2, [r5] - movs r0, #3 - ands r0, r2 - cmp r0, #0 - bne _080A288C - lsls r0, r2, #0x1c - lsrs r0, r0, #0x1e - lsls r0, r0, #2 - movs r1, #1 - orrs r0, r1 - orrs r0, r3 - strb r0, [r4, #0x10] - movs r0, #1 - b _080A2958 -_080A288C: - subs r0, #2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _080A289C - lsls r1, r1, #3 - ldr r0, [r5, #4] - adds r5, r0, r1 -_080A289C: - ldrh r0, [r5, #2] - lsls r0, r0, #0x16 - lsrs r2, r0, #0x16 - adds r1, r2, #0 - ldrb r0, [r5, #3] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - cmp r0, #1 - beq _080A28BA - cmp r0, #2 - bne _080A28C4 - adds r0, r4, #0 - adds r0, #0x60 - strh r2, [r0] - b _080A28D2 -_080A28BA: - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE008 - b _080A28CA -_080A28C4: - adds r0, r4, #0 - bl sub_080ADF80 -_080A28CA: - cmp r0, #0 - bne _080A28D2 - movs r0, #0 - b _080A2958 -_080A28D2: - ldrh r0, [r5, #4] - lsls r0, r0, #0x16 - lsrs r1, r0, #0x16 - adds r0, r4, #0 - bl sub_0801D040 - movs r1, #0xff - adds r0, r4, #0 - adds r0, #0x58 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #0x48 - strb r0, [r1] - ldrh r0, [r5, #6] - lsls r0, r0, #0x16 - lsrs r0, r0, #0x16 - strh r0, [r4, #0x12] - ldrb r0, [r5, #5] - movs r3, #3 - movs r1, #0x30 - ands r1, r0 - ldrb r2, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r5, #7] - lsls r1, r1, #0x1b - movs r0, #0x29 - adds r0, r0, r4 - mov ip, r0 - lsrs r1, r1, #0x1d - lsls r1, r1, #3 - ldrb r2, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - mov r1, ip - strb r0, [r1] - ldrb r1, [r5, #7] - lsrs r1, r1, #5 - ands r1, r3 - ldrb r2, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - ldr r1, _080A295C @ =gUnk_08125104 - ldrb r0, [r5, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - ldrb r0, [r5] - lsls r0, r0, #0x1c - lsrs r0, r0, #0x1e - lsls r0, r0, #2 - movs r1, #1 - orrs r0, r1 - ldrb r1, [r4, #0x10] - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #2 -_080A2958: - pop {r4, r5, pc} - .align 2, 0 -_080A295C: .4byte gUnk_08125104 \ No newline at end of file +_080A2834: .4byte gUnk_03003F80 \ No newline at end of file diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index 86fbdc9b..e350decd 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -12219,7 +12219,7 @@ sub_080A881C: @ 0x080A881C strb r1, [r0, #0xf] movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth _080A884A: bl sub_0805E780 b _080A8866 @@ -13676,7 +13676,7 @@ sub_080A9334: @ 0x080A9334 beq _080A9368 movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth adds r0, r4, #0 bl sub_080A9488 adds r0, r4, #0 @@ -15038,7 +15038,7 @@ sub_080A9D2C: @ 0x080A9D2C bne _080A9D56 movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth ldr r0, _080A9D68 @ =gLinkEntity movs r1, #0x7a bl sub_0800449C @@ -15252,7 +15252,7 @@ sub_080A9EBC: @ 0x080A9EBC movs r0, #0 strb r0, [r4, #0xf] subs r0, #2 - bl sub_080526A0 + bl ModHealth adds r0, r4, #0 bl sub_080AF090 adds r0, r4, #0 @@ -17487,7 +17487,7 @@ _080AAF94: movs r0, #8 strb r0, [r1] subs r0, #0xc - bl sub_080526A0 + bl ModHealth adds r0, r4, #0 movs r1, #0x7a bl sub_0800449C @@ -17935,7 +17935,7 @@ sub_080AB2DC: @ 0x080AB2DC bne _080AB314 movs r0, #4 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth _080AB314: pop {r4, r5, pc} .align 2, 0 @@ -19169,7 +19169,7 @@ _080ABC24: _080ABC2A: movs r0, #4 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth _080ABC32: adds r0, r4, #0 bl sub_080A29BC @@ -19182,7 +19182,7 @@ _080ABC3E: bne _080ABC52 movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth bl sub_0805E780 _080ABC52: pop {r4, pc} @@ -19232,7 +19232,7 @@ sub_080ABC90: @ 0x080ABC90 beq _080ABCBE movs r0, #2 rsbs r0, r0, #0 - bl sub_080526A0 + bl ModHealth ldr r0, _080ABCC0 @ =gLinkEntity movs r1, #0x7a bl sub_0800449C diff --git a/asm/sub_0801D630.s b/asm/sub_0801D630.s index dad67676..a17d5907 100644 --- a/asm/sub_0801D630.s +++ b/asm/sub_0801D630.s @@ -23,7 +23,7 @@ sub_0801D630: @ 0x0801D630 _0801D64A: movs r0, #0 adds r1, r3, #0 - bl sub_0801D610 + bl _DmaFill32 b _0801D668 _0801D654: movs r0, #0 @@ -38,4 +38,5 @@ _0801D65E: bne _0801D65E _0801D668: pop {r4, pc} - .align 2, 0 \ No newline at end of file + .align 2, 0 + \ No newline at end of file diff --git a/asm/sub_0804AA30.s b/asm/sub_0804AA30.s new file mode 100644 index 00000000..0182681d --- /dev/null +++ b/asm/sub_0804AA30.s @@ -0,0 +1,31 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0804AA30 +sub_0804AA30: @ 0x0804AA30 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r4, #0 + adds r6, #0x41 + ldrb r1, [r6] + movs r0, #0x7f + ands r0, r1 + strb r0, [r6] + adds r0, r4, #0 + bl sub_0800279C + ldrb r2, [r6] + movs r1, #0x80 + orrs r1, r2 + strb r1, [r6] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, r5, r6, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/sub_0807CA18.s b/asm/sub_0807CA18.s new file mode 100644 index 00000000..b2c27a4b --- /dev/null +++ b/asm/sub_0807CA18.s @@ -0,0 +1,63 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0807CA18 +sub_0807CA18: @ 0x0807CA18 + push {lr} + ldr r0, _0807CA7C @ =gUnk_02002A40 + mov ip, r0 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _0807CA66 + movs r2, #0 + mov r0, ip + strb r2, [r0] + movs r3, #1 + strb r3, [r0, #1] + strb r3, [r0, #8] + mov r1, ip + adds r1, #0xaa + movs r0, #0x18 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + subs r1, #0x23 + movs r0, #0x22 + strb r0, [r1] + adds r1, #1 + movs r0, #0x15 + strb r0, [r1] + mov r0, ip + adds r0, #0x8a + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, #5 + strb r3, [r0] + adds r1, #3 + movs r0, #0x90 + strh r0, [r1] + adds r1, #2 + movs r0, #0x38 + strh r0, [r1] +_0807CA66: + mov r1, ip + adds r1, #0x80 + ldrb r0, [r1] + cmp r0, #0 + bne _0807CA78 + ldr r0, _0807CA80 @ =gUnk_0811E470 + movs r2, #5 + bl sub_0801D66C +_0807CA78: + movs r0, #1 + pop {pc} + .align 2, 0 +_0807CA7C: .4byte gUnk_02002A40 +_0807CA80: .4byte gUnk_0811E470 \ No newline at end of file diff --git a/asm/sub_080A2838.s b/asm/sub_080A2838.s new file mode 100644 index 00000000..eb343ac9 --- /dev/null +++ b/asm/sub_080A2838.s @@ -0,0 +1,27 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080A2838 +sub_080A2838: @ 0x080A2838 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #9] + lsls r2, r2, #3 + ldr r0, _080A2858 @ =gUnk_08126798 + adds r2, r2, r0 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080A285C + cmp r0, #2 + bne _080A2856 + adds r0, r4, #0 + bl sub_08016A04 +_080A2856: + pop {r4, pc} + .align 2, 0 +_080A2858: .4byte gUnk_08126798 diff --git a/asm/sub_080A285C.s b/asm/sub_080A285C.s new file mode 100644 index 00000000..f9d7809d --- /dev/null +++ b/asm/sub_080A285C.s @@ -0,0 +1,144 @@ + .include "asm/macros.inc" + + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_080A285C +sub_080A285C: @ 0x080A285C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r2, #0 + ldrb r3, [r4, #0x10] + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _080A2870 + movs r0, #1 + b _080A2958 +_080A2870: + ldrb r2, [r5] + movs r0, #3 + ands r0, r2 + cmp r0, #0 + bne _080A288C + lsls r0, r2, #0x1c + lsrs r0, r0, #0x1e + lsls r0, r0, #2 + movs r1, #1 + orrs r0, r1 + orrs r0, r3 + strb r0, [r4, #0x10] + movs r0, #1 + b _080A2958 +_080A288C: + subs r0, #2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _080A289C + lsls r1, r1, #3 + ldr r0, [r5, #4] + adds r5, r0, r1 +_080A289C: + ldrh r0, [r5, #2] + lsls r0, r0, #0x16 + lsrs r2, r0, #0x16 + adds r1, r2, #0 + ldrb r0, [r5, #3] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + cmp r0, #1 + beq _080A28BA + cmp r0, #2 + bne _080A28C4 + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + b _080A28D2 +_080A28BA: + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _080A28CA +_080A28C4: + adds r0, r4, #0 + bl sub_080ADF80 +_080A28CA: + cmp r0, #0 + bne _080A28D2 + movs r0, #0 + b _080A2958 +_080A28D2: + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r1, r0, #0x16 + adds r0, r4, #0 + bl sub_0801D040 + movs r1, #0xff + adds r0, r4, #0 + adds r0, #0x58 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #0x48 + strb r0, [r1] + ldrh r0, [r5, #6] + lsls r0, r0, #0x16 + lsrs r0, r0, #0x16 + strh r0, [r4, #0x12] + ldrb r0, [r5, #5] + movs r3, #3 + movs r1, #0x30 + ands r1, r0 + ldrb r2, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r5, #7] + lsls r1, r1, #0x1b + movs r0, #0x29 + adds r0, r0, r4 + mov ip, r0 + lsrs r1, r1, #0x1d + lsls r1, r1, #3 + ldrb r2, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + mov r1, ip + strb r0, [r1] + ldrb r1, [r5, #7] + lsrs r1, r1, #5 + ands r1, r3 + ldrb r2, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + ldr r1, _080A295C @ =gUnk_08125104 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + ldrb r0, [r5] + lsls r0, r0, #0x1c + lsrs r0, r0, #0x1e + lsls r0, r0, #2 + movs r1, #1 + orrs r0, r1 + ldrb r1, [r4, #0x10] + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #2 +_080A2958: + pop {r4, r5, pc} + .align 2, 0 +_080A295C: .4byte gUnk_08125104 \ No newline at end of file diff --git a/include/item.h b/include/item.h index ad2ccd5d..381443ea 100644 --- a/include/item.h +++ b/include/item.h @@ -2,7 +2,7 @@ #ifndef ITEM_H #define ITEM_H - enum ItemType + enum { Untyped, SmithSword = 0x01, @@ -122,5 +122,5 @@ FastSpin = 0x73, FastSplit = 0x74, LongSpin = 0x75 - } + } ItemType; #endif \ No newline at end of file diff --git a/include/stats.h b/include/stats.h new file mode 100644 index 00000000..2c83ba6f --- /dev/null +++ b/include/stats.h @@ -0,0 +1,20 @@ +#ifndef STATS_H +#define STATS_H + +#include "global.h" +#include "item.h" + +typedef struct { + u8 walletType; + u8 heartPieces; + u8 health; + u8 maxHealth; + u8 filler[8]; + u8 itemOnA; + u8 itemonB; + u8 filler2[10]; + u16 rupees; + u8 filler3[12]; +} Stats; + +#endif \ No newline at end of file diff --git a/linker.ld b/linker.ld index b70ae7d4..95a14cfd 100644 --- a/linker.ld +++ b/linker.ld @@ -30,7 +30,7 @@ SECTIONS { . = 0x00002AA0; gUnk_02002AA0 = .; . = 0x00002AC0; gUnk_02002AC0 = .; . = 0x00002AC8; gUnk_02002AC8 = .; - . = 0x00002AE8; gUnk_02002AE8 = .; + . = 0x00002AE8; gStats = .; . = 0x00002B0E; gUnk_02002B0E = .; . = 0x00002B32; gUnk_02002B32 = .; . = 0x00002B54; gUnk_02002B54 = .; @@ -299,11 +299,13 @@ SECTIONS { /* C source compiled without interworking */ asm/code_08018500.o(.text); src/sub_0801D5EC.o(.text); - src/sub_0801D610.o(.text); + src/_dmaFill32.o(.text); asm/sub_0801D630.o(.text); asm/sub_0801D66C.o(.text); asm/readKeyInput.o(.text); asm/code_0801D714.o(.text); + asm/code_0801D79C.o(.text); + asm/sub_0804AA30.o(.text); src/createEnemy.o(.text); src/sub_0804AA84.o(.text); /* wip */ asm/code_0804AA84.o(.text); @@ -320,22 +322,34 @@ SECTIONS { asm/code_08050038.o(.text); asm/initializeLink.o(.text); asm/code_08052620.o(.text); + src/bitGetters.o(.text); + src/modHealth.o(.text); + asm/code_080526CC.o(.text); src/sub_08055E08.o(.text); asm/sub_08055E24.o(.text); asm/mainLoop.o(.text); asm/sub_08055F70.o(.text); asm/code_08055FF4.o(.text); + src/sub_0805E374.o(.text); src/sub_0805E3A0.o(.text); asm/code_0805E3B0.o(.text); asm/getEmptyEntity.o(.text); asm/code_0805E744.o(.text); + src/sub_0806F9EC.o(.text); + src/sub_0806FA04.o(.text); + src/sub_0806FA24.o(.text); src/sub_0806FA30.o(.text); src/positionRelative.o(.text); asm/code_0806FA6C.o(.text); + src/sub_0807C998.o(.text); + src/sub_0801D754.o(.text); + asm/sub_0807CA18.o(.text); asm/getInventoryValue.o(.text); asm/code_0807CAA0.o(.text); src/getProgressFlag.o(.text); asm/code_0807CC3C.o(.text); + asm/sub_080A2838.o(.text); + asm/sub_080A285C.o(.text); src/createObject.o(.text); asm/sub_080A2988.o(.text); asm/createFx.o(.text); diff --git a/src/sub_0801D610.c b/src/_dmaFill32.c similarity index 55% rename from src/sub_0801D610.c rename to src/_dmaFill32.c index d9a181e6..1982d82c 100644 --- a/src/sub_0801D610.c +++ b/src/_dmaFill32.c @@ -1,6 +1,6 @@ #include "global.h" -void sub_0801D610(u32 a1, u32 a2, u32 a3) +void _DmaFill32(u32 a1, u32 a2, u32 a3) { DmaFill32(3, a1, a2, a3); } \ No newline at end of file diff --git a/src/bitGetters.c b/src/bitGetters.c new file mode 100644 index 00000000..35cb4017 --- /dev/null +++ b/src/bitGetters.c @@ -0,0 +1,32 @@ +#include "global.h" + +extern u8 gUnk_02033A90; +#include "global.h" + +extern u8 gUnk_02033A90; + +u32 sub_08052654() +{ + return (gUnk_02033A90 >> 7) & 1; +} + +u32 sub_08052660() +{ + return (gUnk_02033A90 >> 2) & 1; +} + +u32 sub_08052670() +{ + return (gUnk_02033A90 >> 4) & 1; +} + +u32 sub_08052680() +{ + return (gUnk_02033A90 >> 6) & 1; +} + +u32 sub_08052690() + +{ + return (gUnk_02033A90 >> 3) & 1; +} \ No newline at end of file diff --git a/src/loadRoom.c b/src/loadRoom.c index d51a2a35..9ef70edc 100644 --- a/src/loadRoom.c +++ b/src/loadRoom.c @@ -1,8 +1,8 @@ #include "global.h" /* called when loading any room */ - extern void LoadRoomEntityList(); - extern s32 GetProgressFlag(u32 flag); + void LoadRoomEntityList(); + s32 GetProgressFlag(u32 flag); extern s32* sub_0804B128(u8 unk); extern void sub_0804B058(s32 *unk); extern void sub_0804B1AC(); diff --git a/src/modHealth.c b/src/modHealth.c new file mode 100644 index 00000000..73d40f42 --- /dev/null +++ b/src/modHealth.c @@ -0,0 +1,22 @@ +#include "global.h" +#include "entity.h" +#include "stats.h" + +extern Stats gStats; +extern Entity gLinkEntity; +s32 ModHealth(s32 deltaHealth) + +{ + s32 newHealth; + + newHealth = gStats.health + deltaHealth; + if (newHealth < 0) { + newHealth = 0; + } + if (gStats.maxHealth < newHealth) { + newHealth = (u32)gStats.maxHealth; + } + gStats.health = newHealth; + gLinkEntity.currentHealth = newHealth; + return newHealth; +} \ No newline at end of file diff --git a/src/sub_0801D754.c b/src/sub_0801D754.c new file mode 100644 index 00000000..9ef36979 --- /dev/null +++ b/src/sub_0801D754.c @@ -0,0 +1,16 @@ +#include "global.h" + +extern void sub_0807C960(); +extern u32 sub_0801D754(u32, u8, u8); + +u32 sub_0807C9D8(u32 *a1) +{ + u32 *v1; // r5@1 + + v1 = a1; + sub_0807C960(0x6004000, *a1); + sub_0807C960(0x6000000, v1[1]); + sub_0807C960(0x6008000, v1[2]); + sub_0807C960(0x20176E0, v1[3]); + return sub_0801D754(0x20176E0, 2, 13); +} \ No newline at end of file diff --git a/src/sub_0805E374.c b/src/sub_0805E374.c new file mode 100644 index 00000000..6ae1ddd0 --- /dev/null +++ b/src/sub_0805E374.c @@ -0,0 +1,15 @@ +#include "entity.h" +extern Entity * sub_0805E3A0(Entity *, u32); +extern u8 gUnk_030010A0[]; +extern u8 gUnk_081091F8[]; +extern u8 gUnk_081091EE[]; +Entity * sub_0805E374(Entity *param_1) +{ + u8 r3 = gUnk_030010A0[0x2C]; + u8 *array = gUnk_081091F8; + + if ( r3 != '\x02') { + array = gUnk_081091EE; + } + return sub_0805E3A0(param_1,array[(param_1->entityType).type]); +} \ No newline at end of file diff --git a/src/sub_0806F9EC.c b/src/sub_0806F9EC.c new file mode 100644 index 00000000..70a5b993 --- /dev/null +++ b/src/sub_0806F9EC.c @@ -0,0 +1,13 @@ +#include "global.h" + +s32 sub_0806F9EC(s16 param_1,s16 param_2) + +{ + int iVar1; + + iVar1 = (s32)param_1 * (s32)param_2; + if (iVar1 < 0) { + iVar1 = iVar1 + 255; + } + return (iVar1 << 8) >> 16; +} \ No newline at end of file diff --git a/src/sub_0806FA04.c b/src/sub_0806FA04.c new file mode 100644 index 00000000..d5fc114d --- /dev/null +++ b/src/sub_0806FA04.c @@ -0,0 +1,19 @@ +#include "global.h" + +extern s32 __divsi3(s32, s32); + +s16 sub_0806FA04(s16 param_1,s16 param_2) + +{ + s16 sVar1; + s32 iVar2; + + if (param_2 != 0) { + sVar1 = __divsi3( (param_1 << 16) >> 8 ,param_2); + iVar2 = sVar1; + } + else { + iVar2 = 0; + } + return iVar2; +} \ No newline at end of file diff --git a/src/sub_0806FA24.c b/src/sub_0806FA24.c new file mode 100644 index 00000000..4de2c20f --- /dev/null +++ b/src/sub_0806FA24.c @@ -0,0 +1,10 @@ + +#include "global.h" +#include "entity.h" +void PositionRelative(Entity *, Entity *, s32, s32); + +void sub_0806FA24(Entity *param_1,Entity *param_2) + +{ + PositionRelative(param_1, param_2, 0, 0); +} \ No newline at end of file diff --git a/src/sub_0807C998.c b/src/sub_0807C998.c new file mode 100644 index 00000000..ec3b162b --- /dev/null +++ b/src/sub_0807C998.c @@ -0,0 +1,13 @@ +#include "global.h" + +extern void sub_0807C960(); +extern u32 gUnk_0202CEB4; +extern u32 gUnk_02012654; + +void sub_0807C998(u32 *a1) +{ + sub_0807C960(&gUnk_0202CEB4, a1[0]); + sub_0807C960(&gUnk_0202CEB4 - 0x800, a1[1]); + sub_0807C960(&gUnk_02012654, a1[2]); + sub_0807C960(&gUnk_02012654 - 0x800, a1[3]); +}