diff --git a/Makefile b/Makefile index 073e4e2d..1f59241b 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ CPPFLAGS := -I tools/agbcc -I tools/agbcc/include -iquote include -nostdinc -und LDFLAGS = -Map ../../$(MAP) -LIB := -L ../../tools/agbcc/lib -lc +LIB := -L ../../tools/agbcc/lib -lc SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c GFX := tools/gbagfx/gbagfx @@ -120,6 +120,8 @@ endif tools: $(TOOLDIRS) +$(TOOLDIRS): + @$(MAKE) -C $@ # For contributors to make sure a change didn't affect the contents of the ROM. compare: diff --git a/asm/GetProgressFlag.s b/asm/GetProgressFlag.s deleted file mode 100644 index 3c0e62e6..00000000 --- a/asm/GetProgressFlag.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc" - .text - .syntax unified - - thumb_func_start GetProgressFlag -GetProgressFlag: @ 0x0807CC30 - push {lr} - adds r1, r0, #0 - movs r0, #0 - bl GetProgressFlagWithOffset - pop {pc} \ No newline at end of file diff --git a/asm/code.s b/asm/code.s index 52f9fca0..2f238c37 100644 --- a/asm/code.s +++ b/asm/code.s @@ -475,7 +475,7 @@ _0801889A: ldr r1, _080188AC @ =gUnk_080FECC8 _080188A4: adds r0, r0, r1 - bl sub_0804ADF8 + bl CreateEntity b _080189E4 .align 2, 0 _080188AC: .4byte gUnk_080FECC8 @@ -488,7 +488,7 @@ _080188B8: lsls r0, r0, #4 ldr r1, _080188DC @ =gUnk_080FED18 adds r0, r0, r1 - bl sub_0804ADF8 + bl CreateEntity adds r2, r0, #0 cmp r2, #0 bne _080188CC @@ -527,7 +527,7 @@ _080188FE: lsls r0, r0, #4 ldr r1, _08018924 @ =gUnk_080FED58 adds r0, r0, r1 - bl sub_0804ADF8 + bl CreateEntity ldr r2, _08018928 @ =gUnk_02034350 ldrb r0, [r5, #1] lsls r0, r0, #2 @@ -549,7 +549,7 @@ _08018930: lsls r0, r0, #4 ldr r1, _08018974 @ =gUnk_080FEE78 adds r0, r0, r1 - bl sub_0804ADF8 + bl CreateEntity adds r2, r0, #0 cmp r2, #0 beq _08018958 @@ -604,7 +604,7 @@ _080189A4: cmp r4, #0 beq _080189E4 ldr r0, _080189B0 @ =gUnk_080FEE18 - bl sub_0804ADDC + bl LoadRoomEntityList b _080189E4 .align 2, 0 _080189B0: .4byte gUnk_080FEE18 @@ -612,13 +612,13 @@ _080189B4: cmp r4, #0 beq _080189C4 ldr r0, _080189C0 @ =gUnk_080FEE58 - bl sub_0804ADF8 + bl CreateEntity b _080189E4 .align 2, 0 _080189C0: .4byte gUnk_080FEE58 _080189C4: ldr r0, _080189CC @ =gUnk_080FEE48 - bl sub_0804ADF8 + bl CreateEntity b _080189E4 .align 2, 0 _080189CC: .4byte gUnk_080FEE48 @@ -630,7 +630,7 @@ _080189D0: movs r1, #0x79 bl sub_0807CC9C ldr r0, _080189E8 @ =gUnk_080FEE38 - bl sub_0804ADDC + bl LoadRoomEntityList _080189E4: pop {r4, r5, pc} .align 2, 0 diff --git a/asm/code_08016B30.s b/asm/code_08016B30.s index 55ab6608..b6cd6dd5 100644 --- a/asm/code_08016B30.s +++ b/asm/code_08016B30.s @@ -224,3230 +224,3 @@ _08016CE8: .align 2, 0 _08016CEC: .4byte 0x040000D4 _08016CF0: .4byte gUnk_080B2CD8 - - thumb_func_start sub_08016CF4 -sub_08016CF4: @ 0x08016CF4 - ldr r3, _08016DF0 @ =gUnk_03000F50 - ldrh r1, [r3] - ldrh r0, [r3, #6] - ands r0, r1 - movs r1, #0x80 - lsls r1, r1, #0x13 - strh r0, [r1] - adds r1, #8 - ldrh r0, [r3, #8] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x14] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x20] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x2c] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0xa] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0xc] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x16] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x18] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x22] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x24] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x2e] - strh r0, [r1] - adds r1, #2 - ldrh r0, [r3, #0x30] - strh r0, [r1] - adds r1, r3, #0 - adds r1, #0x38 - ldr r2, _08016DF4 @ =0x04000020 - ldrh r0, [r3, #0x38] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #6] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #8] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0xa] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0xc] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0xe] - strh r0, [r2] - adds r1, #0x10 - adds r2, #2 - ldrh r0, [r1] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #6] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #8] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0xa] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0xc] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0xe] - strh r0, [r2] - adds r1, #0x10 - adds r2, #2 - ldrh r0, [r1] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #2] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #4] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #6] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #8] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0xa] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0xc] - strh r0, [r2] - adds r2, #4 - ldrh r0, [r1, #0xe] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0x10] - strh r0, [r2] - adds r2, #2 - ldrh r0, [r1, #0x12] - strh r0, [r2] - bx lr - .align 2, 0 -_08016DF0: .4byte gUnk_03000F50 -_08016DF4: .4byte 0x04000020 - - thumb_func_start sub_08016DF8 -sub_08016DF8: @ 0x08016DF8 - push {r4, r5, r6, lr} - sub sp, #4 - ldr r1, _08016E20 @ =gUnk_03003DE0 - ldrb r0, [r1] - cmp r0, #0 - beq _08016E70 - ldr r4, _08016E24 @ =gUnk_03000C30 - adds r6, r0, #0 - movs r0, #0 - strb r0, [r1] - ldr r5, _08016E28 @ =0x040000D4 -_08016E0E: - ldrb r0, [r4] - cmp r0, #1 - beq _08016E44 - cmp r0, #1 - bgt _08016E2C - cmp r0, #0 - beq _08016E32 - b _08016E68 - .align 2, 0 -_08016E20: .4byte gUnk_03003DE0 -_08016E24: .4byte gUnk_03000C30 -_08016E28: .4byte 0x040000D4 -_08016E2C: - cmp r0, #2 - beq _08016E4E - b _08016E68 -_08016E32: - ldr r0, [r4, #4] - str r0, [r5] - ldr r0, [r4, #8] - str r0, [r5, #4] - ldrh r0, [r4, #2] - lsrs r0, r0, #2 - movs r1, #0x84 - lsls r1, r1, #0x18 - b _08016E62 -_08016E44: - ldr r0, [r4, #4] - ldr r1, [r4, #8] - bl LZ77UnCompVram - b _08016E68 -_08016E4E: - ldr r0, [r4, #4] - str r0, [sp] - mov r0, sp - str r0, [r5] - ldr r0, [r4, #8] - str r0, [r5, #4] - ldrh r0, [r4, #2] - lsrs r0, r0, #2 - movs r1, #0x85 - lsls r1, r1, #0x18 -_08016E62: - orrs r0, r1 - str r0, [r5, #8] - ldr r0, [r5, #8] -_08016E68: - adds r4, #0xc - subs r6, #1 - cmp r6, #0 - bgt _08016E0E -_08016E70: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - - thumb_func_start sub_08016E78 -sub_08016E78: @ 0x08016E78 - push {r4, lr} - ldr r4, _08016F08 @ =gUnk_03001000 - ldrb r0, [r4] - movs r0, #0 - strb r0, [r4] - bl VBlankIntrWait - ldrb r0, [r4] - cmp r0, #0 - bne _08016E94 - adds r1, r4, #0 -_08016E8E: - ldrb r0, [r1] - cmp r0, #0 - beq _08016E8E -_08016E94: - bl sub_080ADD70 - bl sub_0801C25C - bl sub_08016C3C - bl sub_08016DF8 - ldr r1, _08016F0C @ =gUnk_02000070 - ldrb r0, [r1] - cmp r0, #0 - beq _08016EFC - movs r0, #0 - strb r0, [r1] - ldr r0, _08016F10 @ =gUnk_02025EB0 - ldr r1, [r0] - cmp r1, #0 - beq _08016ED6 - ldr r2, _08016F14 @ =0x040000D4 - ldr r0, _08016F18 @ =gUnk_02021F30 - str r0, [r2] - ldrh r1, [r1] - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r1 - lsls r0, r0, #3 - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - str r0, [r2, #4] - ldr r0, _08016F1C @ =0x84000170 - str r0, [r2, #8] - ldr r0, [r2, #8] -_08016ED6: - ldr r0, _08016F20 @ =gUnk_0200B650 - ldr r1, [r0] - cmp r1, #0 - beq _08016EFC - ldr r2, _08016F14 @ =0x040000D4 - ldr r0, _08016F24 @ =gUnk_020344B0 - str r0, [r2] - ldrh r1, [r1] - movs r0, #0xf8 - lsls r0, r0, #5 - ands r0, r1 - lsls r0, r0, #3 - movs r1, #0xc0 - lsls r1, r1, #0x13 - adds r0, r0, r1 - str r0, [r2, #4] - ldr r0, _08016F1C @ =0x84000170 - str r0, [r2, #8] - ldr r0, [r2, #8] -_08016EFC: - bl sub_0804FF98 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08016F08: .4byte gUnk_03001000 -_08016F0C: .4byte gUnk_02000070 -_08016F10: .4byte gUnk_02025EB0 -_08016F14: .4byte 0x040000D4 -_08016F18: .4byte gUnk_02021F30 -_08016F1C: .4byte 0x84000170 -_08016F20: .4byte gUnk_0200B650 -_08016F24: .4byte gUnk_020344B0 - - thumb_func_start sub_08016F28 -sub_08016F28: @ 0x08016F28 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08016F44 @ =gUnk_02002A40 - adds r0, #0xba - ldrb r0, [r0] - cmp r0, #0 - beq _08016F4C - ldr r0, _08016F48 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - movs r2, #0x80 - lsls r2, r2, #7 - orrs r1, r2 - b _08016F54 - .align 2, 0 -_08016F44: .4byte gUnk_02002A40 -_08016F48: .4byte gUnk_03003F80 -_08016F4C: - ldr r0, _08016F98 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - ldr r2, _08016F9C @ =0xFFFFBFFF - ands r1, r2 -_08016F54: - str r1, [r0, #0x30] - adds r0, r4, #0 - bl sub_0805E3B0 - cmp r0, #0 - bne _08016FDC - ldr r5, _08016F98 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xc - ands r0, r1 - cmp r0, #0 - beq _08016FB4 - bl sub_08077B20 - ldr r1, [r5, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xe - ands r0, r1 - cmp r0, #0 - beq _08016FA4 - movs r0, #0x18 - strb r0, [r5, #0xc] - ldr r0, _08016FA0 @ =0xFFF7FFFF - ands r1, r0 - str r1, [r5, #0x30] - movs r0, #0xf0 - strb r0, [r5, #0xf] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - b _08016FB4 - .align 2, 0 -_08016F98: .4byte gUnk_03003F80 -_08016F9C: .4byte 0xFFFFBFFF -_08016FA0: .4byte 0xFFF7FFFF -_08016FA4: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r1, r5, #0 - adds r1, #0xa8 - movs r0, #0xf - strb r0, [r1] -_08016FB4: - adds r0, r4, #0 - bl sub_08016FF4 - adds r0, r4, #0 - bl sub_08070680 - ldr r0, [r4, #0x34] - cmp r0, #0 - bne _08016FD8 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08016FD0 - cmp r0, #9 - bne _08016FD8 -_08016FD0: - adds r0, r4, #0 - movs r1, #8 - bl sub_08008790 -_08016FD8: - bl sub_080171F0 -_08016FDC: - adds r0, r4, #0 - bl sub_08078FB0 - adds r0, r4, #0 - bl sub_0800404C - bl sub_0807A050 - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_08016FF4 -sub_08016FF4: @ 0x08016FF4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080170A0 @ =gUnk_0200AF00 - adds r2, r0, #0 - adds r2, #0x2f - movs r1, #0 - strb r1, [r2] - subs r2, #2 - strb r1, [r2] - adds r0, #0x2e - strb r1, [r0] - ldr r2, _080170A4 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0801702E - adds r0, r2, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _0801702E - movs r0, #0x86 - bl sub_080A3268 -_0801702E: - ldr r4, _080170A8 @ =gUnk_03003F80 - ldr r0, [r4, #0x30] - ldr r1, _080170AC @ =0xFDFFFDFF - ands r0, r1 - str r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08017046 - bl sub_08077B2C -_08017046: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _08017060 - adds r0, r4, #0 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #0 - bne _08017060 - bl sub_0807A108 -_08017060: - bl sub_08079B24 - cmp r0, #0 - bne _0801706E - adds r0, r5, #0 - bl sub_08079708 -_0801706E: - ldr r0, _080170B0 @ =gUnk_03003DF0 - movs r4, #0 - strb r4, [r0] - ldr r2, _080170A8 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x27 - ldrb r0, [r1] - cmp r0, #0 - beq _08017084 - subs r0, #1 - strb r0, [r1] -_08017084: - adds r1, r2, #0 - adds r1, #0xa8 - ldrb r0, [r1] - adds r3, r2, #0 - adds r3, #0xa9 - strb r0, [r3] - strb r4, [r1] - subs r1, #0x1e - ldrb r0, [r1] - cmp r0, #0 - beq _080170B4 - subs r0, #1 - strb r0, [r1] - b _080171EA - .align 2, 0 -_080170A0: .4byte gUnk_0200AF00 -_080170A4: .4byte gLinkEntity -_080170A8: .4byte gUnk_03003F80 -_080170AC: .4byte 0xFDFFFDFF -_080170B0: .4byte gUnk_03003DF0 -_080170B4: - adds r0, r2, #0 - adds r0, #0x8b - ldrb r0, [r0] - cmp r0, #0 - beq _080170C0 - b _080171EA -_080170C0: - ldr r0, _08017124 @ =gUnk_02000050 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - beq _080170CE - b _080171EA -_080170CE: - ldr r3, _08017128 @ =gUnk_02034350 - strb r1, [r3, #0xa] - ldr r2, _0801712C @ =gUnk_02002A40 - adds r0, r2, #0 - adds r0, #0xab - ldrb r0, [r0] - lsrs r1, r0, #2 - cmp r1, #0x18 - bls _080170E2 - movs r1, #0x18 -_080170E2: - cmp r1, #7 - bhi _080170E8 - movs r1, #8 -_080170E8: - adds r0, r2, #0 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, r1 - bhi _08017112 - movs r0, #1 - strb r0, [r3, #0xa] - ldr r0, _08017130 @ =gUnk_0200AF00 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _08017112 - ldr r0, _08017134 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0x5a - bl __modsi3 - cmp r0, #0 - bne _08017112 - ldr r0, _08017138 @ =0x0000011F - bl sub_08004488 -_08017112: - ldr r0, _0801712C @ =gUnk_02002A40 - adds r2, r0, #0 - adds r2, #0xb2 - ldrb r1, [r2] - cmp r1, #0 - bne _0801713C - adds r0, #0xc4 - strh r1, [r0] - b _0801715A - .align 2, 0 -_08017124: .4byte gUnk_02000050 -_08017128: .4byte gUnk_02034350 -_0801712C: .4byte gUnk_02002A40 -_08017130: .4byte gUnk_0200AF00 -_08017134: .4byte gUnk_030010A0 -_08017138: .4byte 0x0000011F -_0801713C: - adds r1, r0, #0 - adds r1, #0xc4 - ldrh r0, [r1] - cmp r0, #0 - beq _08017150 - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0801715A -_08017150: - movs r0, #0 - strb r0, [r2] - ldr r0, _0801716C @ =0x000001B3 - bl sub_080A3268 -_0801715A: - ldr r0, _08017170 @ =gUnk_02002A40 - adds r3, r0, #0 - adds r3, #0xb3 - ldrb r1, [r3] - cmp r1, #0 - bne _08017174 - adds r0, #0xc6 - strh r1, [r0] - b _080171A4 - .align 2, 0 -_0801716C: .4byte 0x000001B3 -_08017170: .4byte gUnk_02002A40 -_08017174: - adds r2, r0, #0 - adds r2, #0xc6 - ldrh r0, [r2] - cmp r0, #0 - beq _08017188 - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _08017196 -_08017188: - movs r0, #0 - strb r0, [r3] - movs r0, #0xa0 - lsls r0, r0, #1 - bl sub_080A3268 - b _080171A4 -_08017196: - movs r0, #0xf - ands r1, r0 - cmp r1, #0 - bne _080171A4 - adds r0, r5, #0 - bl sub_080A2B80 -_080171A4: - ldr r0, _080171B8 @ =gUnk_02002A40 - adds r3, r0, #0 - adds r3, #0xba - ldrb r1, [r3] - cmp r1, #0 - bne _080171BC - adds r0, #0xc8 - strh r1, [r0] - b _080171EA - .align 2, 0 -_080171B8: .4byte gUnk_02002A40 -_080171BC: - adds r2, r0, #0 - adds r2, #0xc8 - ldrh r0, [r2] - cmp r0, #0 - beq _080171D0 - subs r1, r0, #1 - strh r1, [r2] - lsls r0, r1, #0x10 - cmp r0, #0 - bne _080171D6 -_080171D0: - movs r0, #0 - strb r0, [r3] - b _080171EA -_080171D6: - movs r0, #0x3f - ands r1, r0 - cmp r1, #0 - bne _080171EA - ldrb r1, [r3] - adds r1, #0x55 - adds r0, r5, #0 - movs r2, #0 - bl CreateFX -_080171EA: - pop {r4, r5} - pop {r0} - bx r0 - - thumb_func_start sub_080171F0 -sub_080171F0: @ 0x080171F0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r4, _080172DC @ =gUnk_03003F80 - ldrb r0, [r4, #0x1a] - cmp r0, #0 - beq _08017202 - bl sub_08077B2C -_08017202: - ldrb r0, [r4, #0x14] - cmp r0, #0 - beq _0801720C - subs r0, #1 - strb r0, [r4, #0x14] -_0801720C: - ldr r6, _080172E0 @ =gLinkEntity - adds r1, r6, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0 - beq _0801721C - subs r0, #1 - strh r0, [r1] -_0801721C: - adds r2, r6, #0 - adds r2, #0x41 - ldrb r0, [r2] - movs r5, #0x7f - adds r1, r5, #0 - ands r1, r0 - movs r0, #0 - mov r8, r0 - strb r1, [r2] - ldrb r0, [r6, #0xc] - cmp r0, #0x14 - beq _08017244 - ldr r0, [r4, #0x30] - ldr r1, _080172E4 @ =0xFFFEFFFF - ands r1, r0 - movs r2, #2 - ands r0, r2 - lsls r0, r0, #0xf - orrs r1, r0 - str r1, [r4, #0x30] -_08017244: - ldr r0, [r4, #0x30] - movs r1, #3 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r4, #0x30] - adds r0, r6, #0 - bl sub_080028E0 - ldr r0, [r4, #0x30] - movs r7, #0x80 - lsls r7, r7, #0xf - ands r0, r7 - cmp r0, #0 - beq _08017268 - ldr r0, _080172E8 @ =gUnk_0200AF00 - adds r0, #0x2f - movs r1, #1 - strb r1, [r0] -_08017268: - bl sub_08078180 - ldrb r1, [r4, #7] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #7] - ldrb r1, [r4, #0xa] - movs r0, #0xf - ands r0, r1 - strb r0, [r4, #0xa] - ldrb r1, [r4, #0xb] - adds r0, r5, #0 - ands r0, r1 - strb r0, [r4, #0xb] - mov r1, r8 - strb r1, [r4, #0x1a] - adds r0, r4, #0 - adds r0, #0x80 - movs r5, #0 - mov r1, r8 - strh r1, [r0] - adds r0, #0x2a - strb r5, [r0] - ldr r0, _080172EC @ =gUnk_03003BE0 - movs r1, #0x8c - bl sub_0801D630 - adds r2, r4, #0 - adds r2, #0x3f - ldrb r0, [r2] - adds r1, r6, #0 - adds r1, #0x63 - strb r0, [r1] - strb r5, [r2] - bl sub_0807B0C8 - ldr r0, [r4, #0x30] - ands r0, r7 - cmp r0, #0 - beq _080172CC - ldr r0, _080172F0 @ =gUnk_03004040 - ldr r2, [r0] - ldr r1, [r0, #4] - ldr r0, [r0, #8] - adds r0, #0x63 - strb r5, [r0] - adds r1, #0x63 - strb r5, [r1] - adds r2, #0x63 - strb r5, [r2] -_080172CC: - ldrb r0, [r6, #0xc] - cmp r0, #0x1d - bne _080172F4 - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x16 - orrs r0, r1 - b _080172FA - .align 2, 0 -_080172DC: .4byte gUnk_03003F80 -_080172E0: .4byte gLinkEntity -_080172E4: .4byte 0xFFFEFFFF -_080172E8: .4byte gUnk_0200AF00 -_080172EC: .4byte gUnk_03003BE0 -_080172F0: .4byte gUnk_03004040 -_080172F4: - ldr r0, [r4, #0x30] - ldr r1, _0801732C @ =0xDFFFFFFF - ands r0, r1 -_080172FA: - str r0, [r4, #0x30] - ldr r4, _08017330 @ =gLinkEntity - adds r0, r4, #0 - bl sub_0807A8D8 - ldr r0, _08017334 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - beq _08017318 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xfe - strb r0, [r1] -_08017318: - ldrb r0, [r4, #0xc] - cmp r0, #0x17 - beq _08017322 - bl sub_08077FEC -_08017322: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0801732C: .4byte 0xDFFFFFFF -_08017330: .4byte gLinkEntity -_08017334: .4byte gUnk_03003F80 - - thumb_func_start sub_08017338 -sub_08017338: @ 0x08017338 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08017352 - ldrh r0, [r4, #0xc] - cmp r0, #0 - bne _08017352 - adds r0, r4, #0 - bl sub_080173A4 -_08017352: - adds r0, r4, #0 - bl sub_0805E3B0 - cmp r0, #0 - bne _08017398 - ldr r1, _08017390 @ =gUnk_080B2CE8 - ldrb r0, [r4, #9] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x3d - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _08017398 - cmp r2, #0 - ble _08017394 - subs r0, #1 - b _08017396 - .align 2, 0 -_08017390: .4byte gUnk_080B2CE8 -_08017394: - adds r0, #1 -_08017396: - strb r0, [r1] -_08017398: - adds r0, r4, #0 - bl sub_0800404C - pop {r4} - pop {r0} - bx r0 - - thumb_func_start sub_080173A4 -sub_080173A4: @ 0x080173A4 - push {r4, r5, lr} - mov ip, r0 - ldrb r0, [r0, #9] - lsls r0, r0, #3 - ldr r1, _08017410 @ =gUnk_08126DA8 - adds r3, r0, r1 - ldrb r0, [r3] - cmp r0, #0xff - bne _080173CE - ldrb r2, [r3, #2] - ldr r1, _08017414 @ =gUnk_08126ED8 - ldrb r0, [r3, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - mov r0, ip - adds r0, #0x68 - ldrb r0, [r0] - subs r0, r0, r2 - lsls r0, r0, #3 - adds r3, r3, r0 -_080173CE: - ldrb r0, [r3] - movs r1, #0xf - ands r1, r0 - lsls r0, r0, #4 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x1a] - ldrb r1, [r3, #1] - mov r0, ip - adds r0, #0x44 - strb r1, [r0] - ldrb r1, [r3, #3] - subs r0, #4 - strb r1, [r0] - ldrb r0, [r3, #4] - mov r1, ip - adds r1, #0x3f - strb r0, [r1] - ldrb r0, [r3, #5] - mov r2, ip - strh r0, [r2, #0x12] - ldrh r1, [r3, #6] - cmp r1, #0 - bne _0801741C - ldr r2, _08017418 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x60 - ldrh r1, [r0] - mov r0, ip - adds r0, #0x60 - strh r1, [r0] - adds r5, r2, #0 - b _08017428 - .align 2, 0 -_08017410: .4byte gUnk_08126DA8 -_08017414: .4byte gUnk_08126ED8 -_08017418: .4byte gLinkEntity -_0801741C: - ldr r0, _0801749C @ =0x000003FF - ands r0, r1 - mov r1, ip - adds r1, #0x60 - strh r0, [r1] - ldr r5, _080174A0 @ =gLinkEntity -_08017428: - mov r3, ip - ldrb r0, [r3, #0x14] - cmp r0, #0 - bne _08017438 - ldrb r1, [r5, #0x14] - movs r0, #6 - ands r0, r1 - strb r0, [r3, #0x14] -_08017438: - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - mov r0, ip - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r5, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - mov r0, ip - ldrb r3, [r0, #0x19] - movs r2, #0x3f - adds r0, r2, #0 - ands r0, r3 - orrs r0, r1 - mov r1, ip - strb r0, [r1, #0x19] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - mov r4, ip - adds r4, #0x29 - lsrs r1, r1, #0x1d - ldrb r3, [r4] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4] - ldrb r0, [r5, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - mov r3, ip - ldrb r1, [r3, #0x1b] - ands r2, r1 - orrs r2, r0 - strb r2, [r3, #0x1b] - mov r2, ip - adds r2, #0x45 - movs r1, #1 - movs r0, #1 - strb r0, [r2] - ldrb r0, [r3, #0x10] - orrs r1, r0 - strb r1, [r3, #0x10] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0801749C: .4byte 0x000003FF -_080174A0: .4byte gLinkEntity - - thumb_func_start sub_080174A4 -sub_080174A4: @ 0x080174A4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080174BE - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080174BE - adds r0, r4, #0 - bl sub_080A2838 -_080174BE: - adds r1, r4, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _080174D0 - adds r0, r2, #1 - strb r0, [r1] -_080174D0: - adds r0, r4, #0 - bl sub_0805E3B0 - cmp r0, #0 - bne _080174F6 - ldr r1, _08017504 @ =gUnk_080B2D4C - ldrb r0, [r4, #9] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r2, r4, #0 - adds r2, #0x41 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] -_080174F6: - adds r0, r4, #0 - bl sub_0800404C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08017504: .4byte gUnk_080B2D4C - - thumb_func_start sub_08017508 -sub_08017508: @ 0x08017508 - push {r4, lr} - adds r4, r0, #0 - bl sub_0805E3B0 - cmp r0, #0 - bne _08017524 - ldr r0, _0801752C @ =gUnk_080B3054 - ldrb r1, [r4, #9] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08017524: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801752C: .4byte gUnk_080B3054 - - thumb_func_start sub_08017530 -sub_08017530: @ 0x08017530 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08017550 - ldr r0, _080175D8 @ =gUnk_020342F8 - subs r1, #1 - bl sub_0801D5A8 - cmp r0, #0 - bne _08017550 - bl sub_0805E780 -_08017550: - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08017566 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08017566 - adds r0, r4, #0 - bl sub_0806EC78 -_08017566: - adds r0, r4, #0 - bl sub_0805E3B0 - cmp r0, #0 - bne _08017584 - ldr r2, _080175DC @ =gUnk_080B313C - ldrb r1, [r4, #9] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_08017584: - ldr r0, [r4, #4] - cmp r0, #0 - beq _080175D2 - ldr r2, _080175DC @ =gUnk_080B313C - ldrb r1, [r4, #9] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r0, r0, r2 - ldr r1, [r0] - cmp r1, #0 - beq _080175A4 - adds r0, r4, #0 - bl _call_via_r1 -_080175A4: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _080175CC - ldr r2, _080175E0 @ =gUnk_02031EC0 - lsls r0, r1, #4 - subs r0, #0x10 - adds r2, r0, r2 - ldr r3, _080175E4 @ =gUnk_03000BF0 - ldrh r0, [r4, #0x2e] - ldrh r1, [r3, #6] - subs r0, r0, r1 - strh r0, [r2, #4] - ldrh r0, [r4, #0x32] - ldrh r1, [r3, #8] - subs r0, r0, r1 - strh r0, [r2, #6] -_080175CC: - adds r0, r4, #0 - bl sub_0800404C -_080175D2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080175D8: .4byte gUnk_020342F8 -_080175DC: .4byte gUnk_080B313C -_080175E0: .4byte gUnk_02031EC0 -_080175E4: .4byte gUnk_03000BF0 - - thumb_func_start sub_080175E8 -sub_080175E8: @ 0x080175E8 - ldr r1, _080175F0 @ =gUnk_03003DB8 - movs r0, #0 - strb r0, [r1] - bx lr - .align 2, 0 -_080175F0: .4byte gUnk_03003DB8 - - thumb_func_start sub_080175F4 -sub_080175F4: @ 0x080175F4 - push {r4, r5, lr} - ldr r1, _08017624 @ =gUnk_03003DC0 - ldrb r0, [r1] - ldrb r2, [r1, #1] - cmp r0, r2 - bhi _08017602 - ldrb r0, [r1, #1] -_08017602: - cmp r0, #0 - bne _08017638 - ldr r1, _08017628 @ =gUnk_030059F0 - ldr r0, _0801762C @ =gUnk_03003F80 - adds r0, #0x8b - ldrb r0, [r0] - cmp r0, #0 - beq _08017634 - ldr r4, _08017630 @ =gLinkEntity - ldrb r5, [r4, #0x10] - movs r0, #0x7f - ands r0, r5 - strb r0, [r4, #0x10] - bl _call_via_r1 - strb r5, [r4, #0x10] - b _08017638 - .align 2, 0 -_08017624: .4byte gUnk_03003DC0 -_08017628: .4byte gUnk_030059F0 -_0801762C: .4byte gUnk_03003F80 -_08017630: .4byte gLinkEntity -_08017634: - bl _call_via_r1 -_08017638: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start sub_08017640 -sub_08017640: @ 0x08017640 - push {r4, lr} - ldr r4, _08017660 @ =gUnk_03003C70 - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_0801D630 - ldr r0, _08017664 @ =gUnk_02018EA0 - str r4, [r0] - str r4, [r4] - str r4, [r4, #4] - ldr r0, _08017668 @ =gLinkEntity - str r0, [r4, #8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08017660: .4byte gUnk_03003C70 -_08017664: .4byte gUnk_02018EA0 -_08017668: .4byte gLinkEntity - - thumb_func_start sub_0801766C -sub_0801766C: @ 0x0801766C - push {r4, lr} - adds r4, r0, #0 - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08017682 -_0801767E: - movs r0, #1 - b _080176DE -_08017682: - ldr r2, _080176C0 @ =gUnk_03003C70 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r2, r0 - cmp r1, r2 - bls _080176DC -_0801768E: - ldr r0, [r2, #8] - cmp r0, #0 - bne _080176D6 - str r4, [r2, #8] - strb r0, [r2, #0xc] - ldrb r0, [r3] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r3] - ldr r3, _080176C4 @ =gUnk_02018EA0 - ldr r1, [r3] - ldrb r0, [r1, #0xc] - cmp r0, #0 - beq _080176C8 -_080176AA: - ldr r1, [r1, #4] - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _080176AA - str r1, [r2, #4] - ldr r0, [r1] - str r0, [r2] - str r2, [r0, #4] - str r2, [r1] - b _0801767E - .align 2, 0 -_080176C0: .4byte gUnk_03003C70 -_080176C4: .4byte gUnk_02018EA0 -_080176C8: - str r1, [r2, #4] - ldr r0, [r1] - str r0, [r2] - str r2, [r0, #4] - str r2, [r1] - str r2, [r3] - b _0801767E -_080176D6: - adds r2, #0x10 - cmp r1, r2 - bhi _0801768E -_080176DC: - movs r0, #0 -_080176DE: - pop {r4} - pop {r1} - bx r1 - - thumb_func_start sub_080176E4 -sub_080176E4: @ 0x080176E4 - push {lr} - adds r2, r0, #0 - adds r0, #0x29 - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08017720 - movs r0, #1 - b _0801773A -_080176F8: - str r2, [r3, #8] - movs r0, #1 - strb r0, [r3, #0xc] - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2] - ldr r2, _0801771C @ =gUnk_02018EA0 - ldr r0, [r2] - str r0, [r3, #4] - ldr r1, [r0] - str r1, [r3] - str r3, [r1, #4] - str r3, [r0] - str r3, [r2] - movs r0, #1 - b _0801773A - .align 2, 0 -_0801771C: .4byte gUnk_02018EA0 -_08017720: - ldr r3, _08017740 @ =gUnk_03003C70 - movs r0, #0x80 - lsls r0, r0, #1 - adds r1, r3, r0 - cmp r1, r3 - bls _08017738 -_0801772C: - ldr r0, [r3, #8] - cmp r0, #0 - beq _080176F8 - adds r3, #0x10 - cmp r1, r3 - bhi _0801772C -_08017738: - movs r0, #0 -_0801773A: - pop {r1} - bx r1 - .align 2, 0 -_08017740: .4byte gUnk_03003C70 - - thumb_func_start sub_08017744 -sub_08017744: @ 0x08017744 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r2, _08017758 @ =gUnk_03003C70 - movs r0, #0x80 - lsls r0, r0, #1 - adds r7, r2, r0 - movs r5, #0x41 - rsbs r5, r5, #0 - ldr r6, _0801775C @ =gUnk_02018EA0 - b _08017766 - .align 2, 0 -_08017758: .4byte gUnk_03003C70 -_0801775C: .4byte gUnk_02018EA0 -_08017760: - adds r2, #0x10 - cmp r7, r2 - bls _0801779A -_08017766: - ldr r0, [r2, #8] - cmp r4, r0 - bne _08017760 - adds r3, r4, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08017760 - adds r0, r5, #0 - ands r0, r1 - strb r0, [r3] - movs r0, #0 - str r0, [r2, #8] - ldr r1, [r2] - ldr r0, [r2, #4] - str r0, [r1, #4] - ldr r1, [r2, #4] - ldr r0, [r2] - str r0, [r1] - ldr r0, [r6] - cmp r2, r0 - bne _0801779A - ldr r0, [r2, #4] - str r0, [r6] -_0801779A: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start sub_080177A0 -sub_080177A0: @ 0x080177A0 - push {r4, r5, r6, lr} - mov ip, r0 - adds r5, r1, #0 - adds r0, #0x38 - adds r1, #0x38 - ldrb r2, [r0] - ldrb r0, [r1] - ands r0, r2 - cmp r0, #0 - beq _08017848 - mov r0, ip - ldr r3, [r0, #0x48] - ldr r4, [r5, #0x48] - ldrb r1, [r3, #6] - ldrb r0, [r4, #6] - adds r2, r1, r0 - mov r1, ip - movs r6, #0x2e - ldrsh r0, [r1, r6] - movs r6, #0x2e - ldrsh r1, [r5, r6] - subs r0, r0, r1 - movs r1, #0 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r4, r1] - subs r0, r0, r1 - adds r0, r0, r2 - lsls r1, r2, #1 - cmp r0, r1 - bhi _08017848 - ldrb r1, [r3, #7] - ldrb r0, [r4, #7] - adds r2, r1, r0 - mov r1, ip - movs r6, #0x32 - ldrsh r0, [r1, r6] - movs r6, #0x32 - ldrsh r1, [r5, r6] - subs r0, r0, r1 - movs r1, #1 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - movs r1, #1 - ldrsb r1, [r4, r1] - subs r0, r0, r1 - adds r0, r0, r2 - lsls r1, r2, #1 - cmp r0, r1 - bhi _08017848 - mov r0, ip - adds r0, #0x3c - ldrb r1, [r0] - movs r6, #0x10 - adds r0, r6, #0 - ands r0, r1 - movs r2, #5 - cmp r0, #0 - beq _0801781A - ldrb r2, [r3, #8] -_0801781A: - adds r0, r5, #0 - adds r0, #0x3c - ldrb r1, [r0] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0801782E - ldrb r0, [r4, #8] - adds r2, r2, r0 - b _08017830 -_0801782E: - adds r2, #5 -_08017830: - mov r1, ip - movs r3, #0x36 - ldrsh r0, [r1, r3] - movs r6, #0x36 - ldrsh r1, [r5, r6] - subs r0, r0, r1 - adds r0, r0, r2 - lsls r1, r2, #1 - cmp r0, r1 - bhi _08017848 - movs r0, #1 - b _0801784A -_08017848: - movs r0, #0 -_0801784A: - pop {r4, r5, r6} - pop {r1} - bx r1 - - thumb_func_start sub_08017850 -sub_08017850: @ 0x08017850 - push {r4, lr} - adds r4, r0, #0 - bl sub_08079F8C - cmp r0, #0 - bne _08017860 - movs r0, #0 - b _08017868 -_08017860: - ldr r1, _08017870 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080177A0 -_08017868: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08017870: .4byte gLinkEntity - - thumb_func_start sub_08017874 -sub_08017874: @ 0x08017874 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldrb r0, [r4, #8] - cmp r0, #1 - bne _080178C6 - adds r0, r2, #0 - adds r0, #0x44 - ldrb r1, [r0] - ldr r0, _08017898 @ =gUnk_02002A40 - adds r0, #0xb2 - ldrb r0, [r0] - cmp r0, #0x2f - beq _0801789C - cmp r0, #0x30 - beq _080178A8 - b _080178AE - .align 2, 0 -_08017898: .4byte gUnk_02002A40 -_0801789C: - adds r0, r1, #0 - cmp r1, #0 - bge _080178A4 - adds r0, r1, #3 -_080178A4: - asrs r1, r0, #2 - b _080178AE -_080178A8: - lsrs r0, r1, #0x1f - adds r0, r1, r0 - asrs r1, r0, #1 -_080178AE: - cmp r1, #0 - bgt _080178B4 - movs r1, #1 -_080178B4: - rsbs r0, r1, #0 - bl sub_080526A0 - adds r5, r0, #0 - adds r0, r4, #0 - movs r1, #0x7a - bl sub_0800449C - b _08017928 -_080178C6: - adds r0, r2, #0 - adds r0, #0x44 - ldrb r1, [r0] - ldrb r0, [r2, #8] - cmp r0, #8 - bne _080178F6 - ldr r0, _080178E4 @ =gUnk_02002A40 - adds r0, #0xb2 - ldrb r0, [r0] - cmp r0, #0x30 - beq _080178E8 - cmp r0, #0x31 - beq _080178F4 - b _080178F6 - .align 2, 0 -_080178E4: .4byte gUnk_02002A40 -_080178E8: - lsls r0, r1, #1 - adds r0, r0, r1 - lsrs r1, r0, #0x1f - adds r0, r0, r1 - asrs r1, r0, #1 - b _080178F6 -_080178F4: - lsls r1, r1, #1 -_080178F6: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - subs r5, r0, r1 - ldrb r0, [r4, #8] - cmp r0, #3 - bne _08017928 - adds r0, r4, #0 - adds r0, #0x6d - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08017920 - ldr r1, _0801791C @ =0x00000127 - adds r0, r4, #0 - bl sub_0800449C - b _08017928 - .align 2, 0 -_0801791C: .4byte 0x00000127 -_08017920: - adds r0, r4, #0 - movs r1, #0xfe - bl sub_0800449C -_08017928: - cmp r5, #0 - ble _08017930 - adds r0, r5, #0 - b _0801793A -_08017930: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0 -_0801793A: - pop {r4, r5} - pop {r1} - bx r1 - - thumb_func_start sub_08017940 -sub_08017940: @ 0x08017940 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r0, r4, #0 - movs r1, #0x2c - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _080179CC - adds r3, r2, #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] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r1, [r5, #0x48] - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r3, #0x2e - ldrsh r1, [r4, r3] - adds r0, r0, r1 - ldr r1, [r4, #0x48] - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r2, #0x2e] - movs r1, #0x32 - ldrsh r0, [r5, r1] - ldr r1, [r5, #0x48] - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r3, #0x32 - ldrsh r1, [r4, r3] - adds r0, r0, r1 - ldr r1, [r4, #0x48] - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r2, #0x32] - movs r1, #0x36 - ldrsh r0, [r5, r1] - movs r3, #0x36 - ldrsh r1, [r4, r3] - adds r0, r0, r1 - asrs r0, r0, #1 - strh r0, [r2, #0x36] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r2, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r2, #0 - bl sub_08016A04 -_080179CC: - movs r1, #0 - ldr r0, _080179E8 @ =gLinkEntity - cmp r5, r0 - beq _080179DA - cmp r4, r0 - bne _080179E0 - adds r0, r4, #0 -_080179DA: - adds r0, #0x42 - ldrb r0, [r0] - lsrs r1, r0, #3 -_080179E0: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_080179E8: .4byte gLinkEntity - - thumb_func_start sub_080179EC -sub_080179EC: @ 0x080179EC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - ldr r4, _08017A8C @ =gUnk_080B3740 - 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 r4, r0, #0 - cmp r4, #0 - beq _08017A84 - 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 sub_0806FA48 - 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] - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r1, [r6, #0x48] - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r2, [r5, #0x48] - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - subs r0, r0, r1 - asrs r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldr r1, [r6, #0x48] - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldr r2, [r5, #0x48] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - subs r0, r0, r1 - asrs r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - str r5, [r4, #0x54] -_08017A84: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08017A8C: .4byte gUnk_080B3740 - - thumb_func_start sub_08017A90 -sub_08017A90: @ 0x08017A90 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0x99 - movs r1, #0 - movs r2, #0 - bl sub_080A2960 - adds r2, r0, #0 - cmp r2, #0 - bne _08017AAA - movs r0, #0 - b _08017AD0 -_08017AAA: - ldrb r0, [r4, #0x15] - lsrs r0, r0, #3 - movs r1, #3 - ands r0, r1 - strb r0, [r2, #0x14] - ldrh r0, [r4, #0x2e] - ldrh r1, [r5, #0x2e] - subs r0, r0, r1 - adds r1, r2, #0 - adds r1, #0x62 - strb r0, [r1] - ldrh r0, [r4, #0x32] - ldrh r1, [r5, #0x32] - subs r0, r0, r1 - adds r1, r2, #0 - adds r1, #0x63 - strb r0, [r1] - str r5, [r2, #0x50] - adds r0, r2, #0 -_08017AD0: - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_08017AD8 -sub_08017AD8: @ 0x08017AD8 - movs r0, #0 - bx lr - - thumb_func_start sub_08017ADC -sub_08017ADC: @ 0x08017ADC - push {r4, lr} - adds r4, r1, #0 - ldrb r2, [r4, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r4, #0x10] - adds r0, #0x40 - ldrb r1, [r0] - movs r0, #0x80 - adds r2, r4, #0 - adds r2, #0x41 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4, #0xa] - subs r0, #0x5f - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08017B14 - adds r0, r4, #0 - bl sub_08081420 - cmp r0, #0 - beq _08017B14 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_08017B14: - movs r0, #2 - pop {r4} - pop {r1} - bx r1 - - thumb_func_start sub_08017B1C -sub_08017B1C: @ 0x08017B1C - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldr r0, _08017B38 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1e] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _08017B3C - ldrb r1, [r3, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r3, #0x10] - b _08017B52 - .align 2, 0 -_08017B38: .4byte gUnk_03003F80 -_08017B3C: - adds r1, r2, #0 - adds r1, #0x42 - movs r0, #0x10 - strb r0, [r1] - subs r1, #5 - movs r0, #0xec - strb r0, [r1] - adds r1, #9 - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r1] -_08017B52: - movs r0, #1 - pop {r1} - bx r1 - - thumb_func_start sub_08017B58 -sub_08017B58: @ 0x08017B58 - push {lr} - adds r2, r1, #0 - adds r3, r2, #0 - adds r3, #0x3a - ldrb r1, [r3] - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _08017B98 - ldrb r1, [r2, #0x1d] - cmp r1, #0 - beq _08017BA2 - ldr r0, _08017B94 @ =gUnk_03003F80 - ldrb r0, [r0, #0x1d] - subs r0, r1, r0 - movs r1, #0 - strb r0, [r2, #0x1d] - lsls r0, r0, #0x18 - cmp r0, #0 - bgt _08017BA2 - strb r1, [r2, #0x1d] - movs r0, #2 - strb r0, [r2, #0xd] - adds r0, r2, #0 - adds r0, #0x46 - strh r1, [r0] - b _08017BA2 - .align 2, 0 -_08017B94: .4byte gUnk_03003F80 -_08017B98: - strb r0, [r2, #0xd] - ldrb r0, [r3] - movs r1, #4 - orrs r0, r1 - strb r0, [r3] -_08017BA2: - adds r1, r2, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08017BB4 - movs r0, #0xff - strb r0, [r1] -_08017BB4: - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_08017BBC -sub_08017BBC: @ 0x08017BBC - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - ldr r5, _08017C38 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - ldr r1, _08017C3C @ =0x00001481 - ands r0, r1 - cmp r0, #0 - bne _08017BF2 - movs r0, #0x42 - movs r1, #1 - movs r2, #0 - bl sub_080A2960 - cmp r0, #0 - beq _08017BF2 - str r4, [r0, #0x54] - ldr r0, [r5, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - orrs r0, r1 - str r0, [r5, #0x30] - movs r0, #0x10 - eors r0, r7 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] -_08017BF2: - adds r1, r6, #0 - adds r1, #0x44 - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08017874 - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] - subs r1, #3 - movs r0, #0xc - strb r0, [r1] - subs r1, #5 - movs r0, #0x1e - strb r0, [r1] - adds r1, #9 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08017C2E - movs r0, #0xff - strb r0, [r1] -_08017C2E: - movs r0, #1 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_08017C38: .4byte gUnk_03003F80 -_08017C3C: .4byte 0x00001481 - - thumb_func_start sub_08017C40 -sub_08017C40: @ 0x08017C40 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r6, _08017CB4 @ =gUnk_03003F80 - ldr r0, [r6, #0x30] - ldr r1, _08017CB8 @ =0x00001881 - ands r0, r1 - cmp r0, #0 - bne _08017C82 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _08017C82 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08017C62 - cmp r0, #0x18 - bne _08017C82 -_08017C62: - adds r1, r5, #0 - adds r1, #0x44 - movs r0, #4 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08017874 - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] - movs r0, #0x80 - lsls r0, r0, #4 - str r0, [r6, #0x30] - movs r0, #0xd - strb r0, [r6, #0xc] -_08017C82: - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0xc - strb r0, [r1] - subs r1, #5 - movs r0, #0x10 - strb r0, [r1] - adds r1, #9 - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r1] - adds r1, r5, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08017CAA - movs r0, #0xff - strb r0, [r1] -_08017CAA: - movs r0, #1 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08017CB4: .4byte gUnk_03003F80 -_08017CB8: .4byte 0x00001881 - - thumb_func_start sub_08017CBC -sub_08017CBC: @ 0x08017CBC - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - movs r5, #0x10 - eors r2, r5 - adds r0, r2, #0 - subs r0, #0xc - movs r2, #0x1f - ands r0, r2 - ldrb r1, [r3, #0x15] - subs r1, r1, r0 - ands r1, r2 - cmp r1, #0x18 - bhi _08017CF0 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xf4 - strb r0, [r1] - adds r1, r3, #0 - adds r1, #0x3d - strb r0, [r1] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08017940 - b _08017D1E -_08017CF0: - adds r1, r3, #0 - adds r1, #0x42 - movs r0, #0xc - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3d - strb r5, [r0] - adds r1, #1 - movs r0, #0xf0 - strb r0, [r1] - adds r1, #3 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r1] - adds r1, r4, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08017D1E - movs r0, #0xff - strb r0, [r1] -_08017D1E: - movs r0, #1 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 - - thumb_func_start sub_08017D28 -sub_08017D28: @ 0x08017D28 - push {lr} - adds r3, r0, #0 - ldr r2, _08017D68 @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r2, #0x1a] - adds r2, r3, #0 - adds r2, #0x7a - movs r0, #0x96 - lsls r0, r0, #2 - strh r0, [r2] - subs r2, #0x38 - movs r0, #0xc - strb r0, [r2] - subs r2, #5 - movs r0, #0x10 - strb r0, [r2] - adds r2, #9 - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r2] - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08017D60 - movs r0, #0xff - strb r0, [r1] -_08017D60: - movs r0, #1 - pop {r1} - bx r1 - .align 2, 0 -_08017D68: .4byte gUnk_03003F80 - - thumb_func_start sub_08017D6C -sub_08017D6C: @ 0x08017D6C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - movs r0, #0x10 - eors r0, r6 - subs r0, #5 - movs r2, #0x1f - ands r0, r2 - ldrb r1, [r4, #0x14] - lsls r1, r1, #3 - subs r1, r1, r0 - ands r1, r2 - cmp r1, #0xa - bls _08017D98 - adds r0, r5, #0 - adds r0, #0x40 - ldrb r0, [r0] - ldr r1, _08017D94 @ =0x00000AC2 - b _08017DB0 - .align 2, 0 -_08017D94: .4byte 0x00000AC2 -_08017D98: - adds r1, r4, #0 - adds r1, #0x41 - movs r0, #0xcb - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x40 - ldrb r0, [r1] - adds r2, r4, #0 - adds r2, #0x79 - strb r0, [r2] - ldrb r0, [r1] - ldr r1, _08017DCC @ =0x00000AE4 -_08017DB0: - adds r0, r0, r1 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r0, _08017DD0 @ =gUnk_080B7B74 - adds r3, r3, r0 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_08018308 - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08017DCC: .4byte 0x00000AE4 -_08017DD0: .4byte gUnk_080B7B74 - - thumb_func_start sub_08017DD4 -sub_08017DD4: @ 0x08017DD4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r5, r1, #0 - adds r7, r2, #0 - mov r1, r8 - adds r1, #0x41 - movs r0, #0 - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x44 - ldrb r2, [r1] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08017DFC - movs r0, #0x7f - ands r0, r2 - b _08017DFE -_08017DFC: - movs r0, #4 -_08017DFE: - strb r0, [r1] - ldr r4, _08017E34 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08017874 - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] - adds r2, r5, #0 - adds r2, #0x3d - movs r0, #0xf4 - strb r0, [r2] - ldr r0, _08017E38 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _08017E3C - bl sub_08079D84 - mov r1, r8 - adds r1, #0x3d - movs r0, #0x5a - strb r0, [r1] - b _08017E6E - .align 2, 0 -_08017E34: .4byte gLinkEntity -_08017E38: .4byte gUnk_03003F80 -_08017E3C: - adds r0, r5, #0 - adds r0, #0x40 - ldrb r0, [r0] - movs r1, #0x80 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x41 - strb r0, [r1] - subs r1, #4 - movs r0, #0xc - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x42 - movs r1, #0x10 - movs r0, #0x10 - strb r0, [r2] - eors r7, r1 - adds r0, r4, #0 - adds r0, #0x3e - strb r7, [r0] - adds r1, r4, #0 - adds r1, #0x46 - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r1] -_08017E6E: - ldrb r1, [r6] - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #0 - bne _08017E7C - movs r0, #0xff - strb r0, [r6] -_08017E7C: - movs r0, #1 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_start sub_08017E88 -sub_08017E88: @ 0x08017E88 - push {lr} - adds r3, r0, #0 - adds r3, #0x42 - movs r2, #2 - strb r2, [r3] - adds r0, #0x46 - movs r2, #0xa0 - lsls r2, r2, #2 - strh r2, [r0] - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08017EAA - movs r0, #0xff - strb r0, [r1] -_08017EAA: - movs r0, #1 - pop {r1} - bx r1 - - thumb_func_start sub_08017EB0 -sub_08017EB0: @ 0x08017EB0 - push {r4, r5, r6, r7, lr} - adds r2, r0, #0 - adds r7, r1, #0 - adds r5, r7, #0 - adds r5, #0x44 - ldrb r0, [r5] - cmp r0, #0 - bne _08017EC4 - movs r0, #0 - b _08017F36 -_08017EC4: - ldr r6, _08017EF8 @ =gLinkEntity - cmp r2, r6 - bne _08017EFC - ldrb r4, [r5] - movs r0, #8 - strb r0, [r5] - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08017874 - adds r1, r6, #0 - adds r1, #0x45 - strb r0, [r1] - strb r4, [r5] - subs r1, #3 - movs r0, #0xc - strb r0, [r1] - subs r1, #5 - movs r0, #0x10 - strb r0, [r1] - adds r1, #9 - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1] - b _08017F22 - .align 2, 0 -_08017EF8: .4byte gLinkEntity -_08017EFC: - ldrh r1, [r2, #8] - movs r0, #0xa1 - lsls r0, r0, #3 - cmp r1, r0 - bne _08017F22 - adds r1, r2, #0 - adds r1, #0x42 - movs r0, #8 - strb r0, [r1] - subs r1, #5 - movs r0, #0xfa - strb r0, [r1] - adds r1, #9 - adds r0, #0x86 - strh r0, [r1] - adds r1, r6, #0 - adds r1, #0x3d - movs r0, #0x80 - strb r0, [r1] -_08017F22: - adds r1, r7, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08017F34 - movs r0, #0xff - strb r0, [r1] -_08017F34: - movs r0, #1 -_08017F36: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_start sub_08017F3C -sub_08017F3C: @ 0x08017F3C - movs r0, #1 - bx lr - - thumb_func_start sub_08017F40 -sub_08017F40: @ 0x08017F40 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, r5, #0 - adds r0, #0x43 - ldrb r6, [r0] - cmp r6, #0 - bne _0801800A - ldr r0, _08017FAC @ =gLinkEntity - cmp r4, r0 - bne _08018002 - bl sub_08079F8C - cmp r0, #0 - beq _0801801E - ldr r2, _08017FB0 @ =gUnk_03003F80 - ldr r3, [r2, #0x30] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - bne _0801801E - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0801801E - 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] - movs r0, #0x10 - orrs r3, r0 - str r3, [r2, #0x30] - strb r6, [r2, #2] - ldrb r0, [r5, #8] - cmp r0, #3 - bne _08017FB4 - ldrb r0, [r5, #9] - cmp r0, #0x4e - beq _08017F9A - cmp r0, #0x50 - bne _08017FB4 -_08017F9A: - strh r6, [r4, #0x36] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl sub_0806FA48 - b _08017FC2 - .align 2, 0 -_08017FAC: .4byte gLinkEntity -_08017FB0: .4byte gUnk_03003F80 -_08017FB4: - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA48 -_08017FC2: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - 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] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xff - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0xf8 - strb r0, [r1] - bl sub_08077B2C - movs r0, #1 - b _08018020 -_08018002: - adds r0, r4, #0 - adds r0, #0x45 - strb r6, [r0] - b _0801801E -_0801800A: - ldrb r0, [r5, #8] - cmp r0, #3 - bne _0801801E - ldr r0, _08018028 @ =gLinkEntity - cmp r4, r0 - bne _0801801E - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004484 -_0801801E: - movs r0, #0 -_08018020: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08018028: .4byte gLinkEntity - - thumb_func_start sub_0801802C -sub_0801802C: @ 0x0801802C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldrb r0, [r4, #8] - cmp r0, #1 - bne _08018058 - bl sub_08079F8C - cmp r0, #0 - beq _08018090 - movs r0, #0x10 - eors r0, r6 - ldrb r1, [r5, #0x14] - lsls r1, r1, #2 - subs r0, r0, r1 - adds r0, #5 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xa - bhi _08018090 - b _0801807A -_08018058: - cmp r0, #8 - bne _08018086 - ldrb r0, [r4, #0x15] - movs r1, #0x10 - eors r1, r0 - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - subs r1, r1, r0 - adds r1, #5 - movs r0, #0x1f - ands r1, r0 - cmp r1, #0xa - bgt _08018090 - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_0801807A: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080180BC - movs r0, #1 - b _080180AE -_08018086: - adds r1, r4, #0 - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] - b _080180AE -_08018090: - adds r0, r4, #0 - adds r0, #0x40 - ldrb r0, [r0] - ldr r1, _080180B4 @ =0x000011AA - adds r0, r0, r1 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r0, _080180B8 @ =gUnk_080B7B74 - adds r3, r3, r0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_08018308 -_080180AE: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_080180B4: .4byte 0x000011AA -_080180B8: .4byte gUnk_080B7B74 - - thumb_func_start sub_080180BC -sub_080180BC: @ 0x080180BC - push {lr} - adds r2, r0, #0 - adds r2, #0x3d - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - bne _080180CE - movs r0, #0xe2 - strb r0, [r2] -_080180CE: - adds r2, r1, #0 - adds r2, #0x3d - ldrb r3, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - bne _080180E0 - movs r0, #0xff - strb r0, [r2] -_080180E0: - movs r0, #0xff - strb r0, [r1, #0xd] - pop {r0} - bx r0 - - thumb_func_start sub_080180E8 -sub_080180E8: @ 0x080180E8 - push {r4, lr} - mov ip, r0 - adds r4, r1, #0 - movs r0, #0x10 - eors r0, r2 - adds r2, r0, #0 - subs r2, #0xc - movs r1, #0x1f - ands r2, r1 - ldrb r0, [r4, #0x15] - subs r0, r0, r2 - ands r0, r1 - cmp r0, #0x18 - bls _0801812C - mov r0, ip - adds r0, #0x40 - ldrb r0, [r0] - ldr r1, _08018124 @ =0x00000352 - adds r0, r0, r1 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r0, _08018128 @ =gUnk_080B7B74 - adds r3, r3, r0 - mov r0, ip - adds r1, r4, #0 - bl sub_08018308 - b _08018162 - .align 2, 0 -_08018124: .4byte 0x00000352 -_08018128: .4byte gUnk_080B7B74 -_0801812C: - mov r0, ip - adds r0, #0x42 - movs r2, #0xc - strb r2, [r0] - subs r0, #5 - movs r1, #0xf0 - strb r1, [r0] - mov r3, ip - adds r3, #0x46 - movs r0, #0xa0 - lsls r0, r0, #2 - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x42 - strb r2, [r0] - subs r0, #5 - strb r1, [r0] - adds r1, r4, #0 - adds r1, #0x46 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r1] - mov r0, ip - adds r1, r4, #0 - bl sub_08017940 - movs r0, #1 -_08018162: - pop {r4} - pop {r1} - bx r1 - - thumb_func_start sub_08018168 -sub_08018168: @ 0x08018168 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r0, r6, #0 - adds r0, #0x43 - ldrb r5, [r0] - cmp r5, #0 - bne _08018208 - ldr r0, _080181F4 @ =gLinkEntity - cmp r4, r0 - bne _08018200 - bl sub_08079F8C - cmp r0, #0 - beq _0801821C - ldr r2, _080181F8 @ =gUnk_03003F80 - ldr r3, [r2, #0x30] - ldr r0, _080181FC @ =0x00040080 - ands r0, r3 - cmp r0, #0 - bne _0801821C - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0801821C - 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] - movs r0, #0x80 - lsls r0, r0, #1 - orrs r3, r0 - str r3, [r2, #0x30] - strb r5, [r2, #2] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r2, [r6, #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, [r6, #0x1b] - lsrs r0, r0, #6 - lsls r0, r0, #6 - ldrb r2, [r4, #0x1b] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, #0x1b] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xff - strb r0, [r1] - adds r1, r6, #0 - adds r1, #0x3d - movs r0, #0xf8 - strb r0, [r1] - bl sub_08077B20 - movs r0, #1 - b _0801821E - .align 2, 0 -_080181F4: .4byte gLinkEntity -_080181F8: .4byte gUnk_03003F80 -_080181FC: .4byte 0x00040080 -_08018200: - adds r0, r4, #0 - adds r0, #0x45 - strb r5, [r0] - b _0801821C -_08018208: - ldrb r0, [r6, #8] - cmp r0, #3 - bne _0801821C - ldr r0, _08018224 @ =gLinkEntity - cmp r4, r0 - bne _0801821C - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08004484 -_0801821C: - movs r0, #0 -_0801821E: - pop {r4, r5, r6} - pop {r1} - bx r1 - .align 2, 0 -_08018224: .4byte gLinkEntity - - thumb_func_start sub_08018228 -sub_08018228: @ 0x08018228 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, _0801824C @ =gLinkEntity - cmp r4, r0 - bne _08018244 - bl sub_08079F8C - cmp r0, #0 - beq _08018244 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08004484 -_08018244: - movs r0, #0 - pop {r4, r5} - pop {r1} - bx r1 - .align 2, 0 -_0801824C: .4byte gLinkEntity - - thumb_func_start sub_08018250 -sub_08018250: @ 0x08018250 - push {r4, lr} - adds r3, r0, #0 - adds r2, r3, #0 - adds r2, #0x3d - movs r0, #1 - rsbs r0, r0, #0 - adds r4, r0, #0 - movs r0, #0xff - strb r0, [r2] - ldrb r0, [r3, #0x15] - cmp r0, #0 - bne _08018278 - adds r2, r1, #0 - adds r2, #0x3d - movs r0, #0x10 - strb r0, [r2] - adds r0, r3, #0 - bl sub_08017A90 - b _08018280 -_08018278: - adds r1, #0x3d - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] -_08018280: - movs r0, #1 - pop {r4} - pop {r1} - bx r1 - - thumb_func_start sub_08018288 -sub_08018288: @ 0x08018288 - push {lr} - adds r1, r0, #0 - ldr r0, _08018298 @ =gLinkEntity - cmp r1, r0 - bne _0801829C - bl sub_0807AFE8 - b _080182A2 - .align 2, 0 -_08018298: .4byte gLinkEntity -_0801829C: - adds r1, #0x45 - movs r0, #0 - strb r0, [r1] -_080182A2: - movs r0, #1 - pop {r1} - bx r1 - - thumb_func_start sub_080182A8 -sub_080182A8: @ 0x080182A8 - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - bne _080182DA - adds r2, r4, #0 - adds r2, #0x3d - ldrb r3, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - bne _080182C8 - movs r0, #0xff - strb r0, [r2] -_080182C8: - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bne _08018300 - movs r0, #0xff - strb r0, [r1] - b _08018300 -_080182DA: - adds r0, r4, #0 - adds r0, #0x40 - ldrb r0, [r0] - ldr r3, _080182F8 @ =0x0000092A - adds r0, r0, r3 - lsls r3, r0, #1 - adds r3, r3, r0 - lsls r3, r3, #2 - ldr r0, _080182FC @ =gUnk_080B7B74 - adds r3, r3, r0 - adds r0, r4, #0 - bl sub_08018308 - b _08018302 - .align 2, 0 -_080182F8: .4byte 0x0000092A -_080182FC: .4byte gUnk_080B7B74 -_08018300: - movs r0, #1 -_08018302: - pop {r4} - pop {r1} - bx r1 - - thumb_func_start sub_08018308 -sub_08018308: @ 0x08018308 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r4, r1, #0 - mov r8, r2 - adds r5, r3, #0 - movs r3, #0 - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - cmp r0, #0 - beq _08018338 - ldrb r0, [r4, #8] - cmp r0, #3 - bne _08018338 - ldr r0, _0801835C @ =gLinkEntity - cmp r6, r0 - bne _08018338 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08004484 - movs r3, #1 -_08018338: - ldrh r1, [r6, #8] - movs r0, #0xa1 - lsls r0, r0, #3 - cmp r1, r0 - bne _08018360 - ldr r0, _0801835C @ =gLinkEntity - ldrb r2, [r0, #0x14] - mov r0, r8 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - movs r1, #4 - eors r0, r1 - cmp r2, r0 - bne _08018360 - movs r0, #0 - b _080184F0 - .align 2, 0 -_0801835C: .4byte gLinkEntity -_08018360: - cmp r3, #0 - bne _08018408 - ldrb r0, [r5] - lsls r0, r0, #4 - adds r1, r6, #0 - adds r1, #0x46 - strh r0, [r1] - ldrb r1, [r5, #1] - adds r2, r6, #0 - adds r2, #0x3d - strb r1, [r2] - lsls r0, r1, #0x18 - cmp r0, #0 - bne _08018382 - movs r0, #0xff - orrs r0, r1 - strb r0, [r2] -_08018382: - ldrb r0, [r5, #2] - adds r1, r6, #0 - adds r1, #0x42 - strb r0, [r1] - ldrb r1, [r5, #3] - adds r0, r4, #0 - adds r0, #0x44 - strb r1, [r0] - movs r7, #0xff - ldrb r0, [r5, #3] - cmp r0, #0 - beq _080183A8 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08017874 - adds r1, r6, #0 - adds r1, #0x45 - strb r0, [r1] -_080183A8: - adds r1, r6, #0 - adds r1, #0x43 - ldrb r0, [r5, #4] - ldrb r2, [r1] - cmp r0, r2 - bls _080183B6 - strb r0, [r1] -_080183B6: - ldrb r0, [r5, #5] - lsls r0, r0, #4 - adds r1, r4, #0 - adds r1, #0x46 - strh r0, [r1] - ldrb r1, [r5, #6] - adds r2, r4, #0 - adds r2, #0x3d - strb r1, [r2] - movs r0, #6 - ldrsb r0, [r5, r0] - cmp r0, #0 - bne _080183D6 - movs r0, #0xff - orrs r0, r1 - strb r0, [r2] -_080183D6: - ldrb r0, [r5, #7] - adds r1, r4, #0 - adds r1, #0x42 - strb r0, [r1] - ldrb r1, [r5, #8] - adds r0, r6, #0 - adds r0, #0x44 - strb r1, [r0] - ands r7, r1 - cmp r7, #0 - beq _080183FA - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08017874 - adds r1, r4, #0 - adds r1, #0x45 - strb r0, [r1] -_080183FA: - adds r1, r4, #0 - adds r1, #0x43 - ldrb r0, [r5, #9] - ldrb r2, [r1] - cmp r0, r2 - bls _08018408 - strb r0, [r1] -_08018408: - ldrb r1, [r5, #0xa] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0801841A - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08017940 -_0801841A: - ldrb r2, [r5, #0xa] - movs r0, #2 - ands r0, r2 - cmp r0, #0 - beq _0801842C - adds r1, r6, #0 - adds r1, #0x41 - movs r0, #0xca - strb r0, [r1] -_0801842C: - movs r0, #4 - ands r0, r2 - cmp r0, #0 - beq _0801847E - ldr r2, [r4, #0x50] - cmp r2, #0 - beq _0801847E - adds r1, r2, #0 - adds r1, #0x41 - movs r0, #0xcc - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - subs r1, #4 - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x3e - mov r1, r8 - strb r1, [r0] - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - adds r1, r2, #0 - adds r1, #0x42 - strb r0, [r1] - adds r1, #1 - ldrb r0, [r1] - cmp r0, #0 - bne _08018470 - adds r0, r4, #0 - adds r0, #0x43 - ldrb r0, [r0] - strb r0, [r1] -_08018470: - adds r0, r4, #0 - adds r0, #0x46 - ldrh r0, [r0] - adds r1, r2, #0 - adds r1, #0x46 - strh r0, [r1] - str r6, [r2, #0x4c] -_0801847E: - ldrb r1, [r6, #8] - cmp r1, #8 - bne _080184DA - ldrb r0, [r6, #9] - cmp r0, #1 - bne _0801849A - ldrb r0, [r5, #8] - cmp r0, #0 - beq _080184DA - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_080179EC - b _080184DA -_0801849A: - cmp r0, #4 - bne _080184BA - adds r0, r6, #0 - adds r0, #0x44 - ldrb r0, [r0] - cmp r0, #0 - bne _080184B0 - ldrb r0, [r5, #0xa] - ands r1, r0 - cmp r1, #0 - beq _080184DA -_080184B0: - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_08017A90 - b _080184DA -_080184BA: - cmp r0, #3 - bne _080184CE - ldrb r0, [r5, #9] - cmp r0, #0 - beq _080184DA - adds r0, r4, #0 - movs r1, #0xfe - bl sub_0800449C - b _080184DA -_080184CE: - cmp r0, #5 - bne _080184DA - ldr r0, _080184FC @ =gLinkEntity - adds r0, #0x3d - movs r1, #0x80 - strb r1, [r0] -_080184DA: - ldrb r0, [r4, #8] - cmp r0, #8 - bne _080184EE - ldrb r0, [r6, #9] - cmp r0, #5 - bne _080184EE - ldr r0, _080184FC @ =gLinkEntity - adds r0, #0x3d - movs r1, #0x80 - strb r1, [r0] -_080184EE: - movs r0, #1 -_080184F0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_080184FC: .4byte gLinkEntity diff --git a/asm/code_08016DF8.s b/asm/code_08016DF8.s new file mode 100644 index 00000000..9e030b13 --- /dev/null +++ b/asm/code_08016DF8.s @@ -0,0 +1,3101 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08016DF8 +sub_08016DF8: @ 0x08016DF8 + push {r4, r5, r6, lr} + sub sp, #4 + ldr r1, _08016E20 @ =gUnk_03003DE0 + ldrb r0, [r1] + cmp r0, #0 + beq _08016E70 + ldr r4, _08016E24 @ =gUnk_03000C30 + adds r6, r0, #0 + movs r0, #0 + strb r0, [r1] + ldr r5, _08016E28 @ =0x040000D4 +_08016E0E: + ldrb r0, [r4] + cmp r0, #1 + beq _08016E44 + cmp r0, #1 + bgt _08016E2C + cmp r0, #0 + beq _08016E32 + b _08016E68 + .align 2, 0 +_08016E20: .4byte gUnk_03003DE0 +_08016E24: .4byte gUnk_03000C30 +_08016E28: .4byte 0x040000D4 +_08016E2C: + cmp r0, #2 + beq _08016E4E + b _08016E68 +_08016E32: + ldr r0, [r4, #4] + str r0, [r5] + ldr r0, [r4, #8] + str r0, [r5, #4] + ldrh r0, [r4, #2] + lsrs r0, r0, #2 + movs r1, #0x84 + lsls r1, r1, #0x18 + b _08016E62 +_08016E44: + ldr r0, [r4, #4] + ldr r1, [r4, #8] + bl LZ77UnCompVram + b _08016E68 +_08016E4E: + ldr r0, [r4, #4] + str r0, [sp] + mov r0, sp + str r0, [r5] + ldr r0, [r4, #8] + str r0, [r5, #4] + ldrh r0, [r4, #2] + lsrs r0, r0, #2 + movs r1, #0x85 + lsls r1, r1, #0x18 +_08016E62: + orrs r0, r1 + str r0, [r5, #8] + ldr r0, [r5, #8] +_08016E68: + adds r4, #0xc + subs r6, #1 + cmp r6, #0 + bgt _08016E0E +_08016E70: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + + thumb_func_start sub_08016E78 +sub_08016E78: @ 0x08016E78 + push {r4, lr} + ldr r4, _08016F08 @ =gUnk_03001000 + ldrb r0, [r4] + movs r0, #0 + strb r0, [r4] + bl VBlankIntrWait + ldrb r0, [r4] + cmp r0, #0 + bne _08016E94 + adds r1, r4, #0 +_08016E8E: + ldrb r0, [r1] + cmp r0, #0 + beq _08016E8E +_08016E94: + bl sub_080ADD70 + bl sub_0801C25C + bl sub_08016C3C + bl sub_08016DF8 + ldr r1, _08016F0C @ =gUnk_02000070 + ldrb r0, [r1] + cmp r0, #0 + beq _08016EFC + movs r0, #0 + strb r0, [r1] + ldr r0, _08016F10 @ =gUnk_02025EB0 + ldr r1, [r0] + cmp r1, #0 + beq _08016ED6 + ldr r2, _08016F14 @ =0x040000D4 + ldr r0, _08016F18 @ =gUnk_02021F30 + str r0, [r2] + ldrh r1, [r1] + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r1 + lsls r0, r0, #3 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + str r0, [r2, #4] + ldr r0, _08016F1C @ =0x84000170 + str r0, [r2, #8] + ldr r0, [r2, #8] +_08016ED6: + ldr r0, _08016F20 @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _08016EFC + ldr r2, _08016F14 @ =0x040000D4 + ldr r0, _08016F24 @ =gUnk_020344B0 + str r0, [r2] + ldrh r1, [r1] + movs r0, #0xf8 + lsls r0, r0, #5 + ands r0, r1 + lsls r0, r0, #3 + movs r1, #0xc0 + lsls r1, r1, #0x13 + adds r0, r0, r1 + str r0, [r2, #4] + ldr r0, _08016F1C @ =0x84000170 + str r0, [r2, #8] + ldr r0, [r2, #8] +_08016EFC: + bl sub_0804FF98 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08016F08: .4byte gUnk_03001000 +_08016F0C: .4byte gUnk_02000070 +_08016F10: .4byte gUnk_02025EB0 +_08016F14: .4byte 0x040000D4 +_08016F18: .4byte gUnk_02021F30 +_08016F1C: .4byte 0x84000170 +_08016F20: .4byte gUnk_0200B650 +_08016F24: .4byte gUnk_020344B0 + + thumb_func_start sub_08016F28 +sub_08016F28: @ 0x08016F28 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08016F44 @ =gUnk_02002A40 + adds r0, #0xba + ldrb r0, [r0] + cmp r0, #0 + beq _08016F4C + ldr r0, _08016F48 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r2, #0x80 + lsls r2, r2, #7 + orrs r1, r2 + b _08016F54 + .align 2, 0 +_08016F44: .4byte gUnk_02002A40 +_08016F48: .4byte gUnk_03003F80 +_08016F4C: + ldr r0, _08016F98 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _08016F9C @ =0xFFFFBFFF + ands r1, r2 +_08016F54: + str r1, [r0, #0x30] + adds r0, r4, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08016FDC + ldr r5, _08016F98 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xc + ands r0, r1 + cmp r0, #0 + beq _08016FB4 + bl sub_08077B20 + ldr r1, [r5, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _08016FA4 + movs r0, #0x18 + strb r0, [r5, #0xc] + ldr r0, _08016FA0 @ =0xFFF7FFFF + ands r1, r0 + str r1, [r5, #0x30] + movs r0, #0xf0 + strb r0, [r5, #0xf] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + b _08016FB4 + .align 2, 0 +_08016F98: .4byte gUnk_03003F80 +_08016F9C: .4byte 0xFFFFBFFF +_08016FA0: .4byte 0xFFF7FFFF +_08016FA4: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #0xf + strb r0, [r1] +_08016FB4: + adds r0, r4, #0 + bl sub_08016FF4 + adds r0, r4, #0 + bl sub_08070680 + ldr r0, [r4, #0x34] + cmp r0, #0 + bne _08016FD8 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08016FD0 + cmp r0, #9 + bne _08016FD8 +_08016FD0: + adds r0, r4, #0 + movs r1, #8 + bl sub_08008790 +_08016FD8: + bl sub_080171F0 +_08016FDC: + adds r0, r4, #0 + bl sub_08078FB0 + adds r0, r4, #0 + bl sub_0800404C + bl sub_0807A050 + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start sub_08016FF4 +sub_08016FF4: @ 0x08016FF4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080170A0 @ =gUnk_0200AF00 + adds r2, r0, #0 + adds r2, #0x2f + movs r1, #0 + strb r1, [r2] + subs r2, #2 + strb r1, [r2] + adds r0, #0x2e + strb r1, [r0] + ldr r2, _080170A4 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0801702E + adds r0, r2, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _0801702E + movs r0, #0x86 + bl sub_080A3268 +_0801702E: + ldr r4, _080170A8 @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + ldr r1, _080170AC @ =0xFDFFFDFF + ands r0, r1 + str r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08017046 + bl sub_08077B2C +_08017046: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _08017060 + adds r0, r4, #0 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #0 + bne _08017060 + bl sub_0807A108 +_08017060: + bl sub_08079B24 + cmp r0, #0 + bne _0801706E + adds r0, r5, #0 + bl sub_08079708 +_0801706E: + ldr r0, _080170B0 @ =gUnk_03003DF0 + movs r4, #0 + strb r4, [r0] + ldr r2, _080170A8 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x27 + ldrb r0, [r1] + cmp r0, #0 + beq _08017084 + subs r0, #1 + strb r0, [r1] +_08017084: + adds r1, r2, #0 + adds r1, #0xa8 + ldrb r0, [r1] + adds r3, r2, #0 + adds r3, #0xa9 + strb r0, [r3] + strb r4, [r1] + subs r1, #0x1e + ldrb r0, [r1] + cmp r0, #0 + beq _080170B4 + subs r0, #1 + strb r0, [r1] + b _080171EA + .align 2, 0 +_080170A0: .4byte gUnk_0200AF00 +_080170A4: .4byte gLinkEntity +_080170A8: .4byte gUnk_03003F80 +_080170AC: .4byte 0xFDFFFDFF +_080170B0: .4byte gUnk_03003DF0 +_080170B4: + adds r0, r2, #0 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #0 + beq _080170C0 + b _080171EA +_080170C0: + ldr r0, _08017124 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + beq _080170CE + b _080171EA +_080170CE: + ldr r3, _08017128 @ =gUnk_02034350 + strb r1, [r3, #0xa] + ldr r2, _0801712C @ =gUnk_02002A40 + adds r0, r2, #0 + adds r0, #0xab + ldrb r0, [r0] + lsrs r1, r0, #2 + cmp r1, #0x18 + bls _080170E2 + movs r1, #0x18 +_080170E2: + cmp r1, #7 + bhi _080170E8 + movs r1, #8 +_080170E8: + adds r0, r2, #0 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, r1 + bhi _08017112 + movs r0, #1 + strb r0, [r3, #0xa] + ldr r0, _08017130 @ =gUnk_0200AF00 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _08017112 + ldr r0, _08017134 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0x5a + bl __modsi3 + cmp r0, #0 + bne _08017112 + ldr r0, _08017138 @ =0x0000011F + bl sub_08004488 +_08017112: + ldr r0, _0801712C @ =gUnk_02002A40 + adds r2, r0, #0 + adds r2, #0xb2 + ldrb r1, [r2] + cmp r1, #0 + bne _0801713C + adds r0, #0xc4 + strh r1, [r0] + b _0801715A + .align 2, 0 +_08017124: .4byte gUnk_02000050 +_08017128: .4byte gUnk_02034350 +_0801712C: .4byte gUnk_02002A40 +_08017130: .4byte gUnk_0200AF00 +_08017134: .4byte gUnk_030010A0 +_08017138: .4byte 0x0000011F +_0801713C: + adds r1, r0, #0 + adds r1, #0xc4 + ldrh r0, [r1] + cmp r0, #0 + beq _08017150 + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0801715A +_08017150: + movs r0, #0 + strb r0, [r2] + ldr r0, _0801716C @ =0x000001B3 + bl sub_080A3268 +_0801715A: + ldr r0, _08017170 @ =gUnk_02002A40 + adds r3, r0, #0 + adds r3, #0xb3 + ldrb r1, [r3] + cmp r1, #0 + bne _08017174 + adds r0, #0xc6 + strh r1, [r0] + b _080171A4 + .align 2, 0 +_0801716C: .4byte 0x000001B3 +_08017170: .4byte gUnk_02002A40 +_08017174: + adds r2, r0, #0 + adds r2, #0xc6 + ldrh r0, [r2] + cmp r0, #0 + beq _08017188 + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _08017196 +_08017188: + movs r0, #0 + strb r0, [r3] + movs r0, #0xa0 + lsls r0, r0, #1 + bl sub_080A3268 + b _080171A4 +_08017196: + movs r0, #0xf + ands r1, r0 + cmp r1, #0 + bne _080171A4 + adds r0, r5, #0 + bl sub_080A2B80 +_080171A4: + ldr r0, _080171B8 @ =gUnk_02002A40 + adds r3, r0, #0 + adds r3, #0xba + ldrb r1, [r3] + cmp r1, #0 + bne _080171BC + adds r0, #0xc8 + strh r1, [r0] + b _080171EA + .align 2, 0 +_080171B8: .4byte gUnk_02002A40 +_080171BC: + adds r2, r0, #0 + adds r2, #0xc8 + ldrh r0, [r2] + cmp r0, #0 + beq _080171D0 + subs r1, r0, #1 + strh r1, [r2] + lsls r0, r1, #0x10 + cmp r0, #0 + bne _080171D6 +_080171D0: + movs r0, #0 + strb r0, [r3] + b _080171EA +_080171D6: + movs r0, #0x3f + ands r1, r0 + cmp r1, #0 + bne _080171EA + ldrb r1, [r3] + adds r1, #0x55 + adds r0, r5, #0 + movs r2, #0 + bl CreateFX +_080171EA: + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_start sub_080171F0 +sub_080171F0: @ 0x080171F0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r4, _080172DC @ =gUnk_03003F80 + ldrb r0, [r4, #0x1a] + cmp r0, #0 + beq _08017202 + bl sub_08077B2C +_08017202: + ldrb r0, [r4, #0x14] + cmp r0, #0 + beq _0801720C + subs r0, #1 + strb r0, [r4, #0x14] +_0801720C: + ldr r6, _080172E0 @ =gLinkEntity + adds r1, r6, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0 + beq _0801721C + subs r0, #1 + strh r0, [r1] +_0801721C: + adds r2, r6, #0 + adds r2, #0x41 + ldrb r0, [r2] + movs r5, #0x7f + adds r1, r5, #0 + ands r1, r0 + movs r0, #0 + mov r8, r0 + strb r1, [r2] + ldrb r0, [r6, #0xc] + cmp r0, #0x14 + beq _08017244 + ldr r0, [r4, #0x30] + ldr r1, _080172E4 @ =0xFFFEFFFF + ands r1, r0 + movs r2, #2 + ands r0, r2 + lsls r0, r0, #0xf + orrs r1, r0 + str r1, [r4, #0x30] +_08017244: + ldr r0, [r4, #0x30] + movs r1, #3 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r4, #0x30] + adds r0, r6, #0 + bl sub_080028E0 + ldr r0, [r4, #0x30] + movs r7, #0x80 + lsls r7, r7, #0xf + ands r0, r7 + cmp r0, #0 + beq _08017268 + ldr r0, _080172E8 @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #1 + strb r1, [r0] +_08017268: + bl sub_08078180 + ldrb r1, [r4, #7] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #7] + ldrb r1, [r4, #0xa] + movs r0, #0xf + ands r0, r1 + strb r0, [r4, #0xa] + ldrb r1, [r4, #0xb] + adds r0, r5, #0 + ands r0, r1 + strb r0, [r4, #0xb] + mov r1, r8 + strb r1, [r4, #0x1a] + adds r0, r4, #0 + adds r0, #0x80 + movs r5, #0 + mov r1, r8 + strh r1, [r0] + adds r0, #0x2a + strb r5, [r0] + ldr r0, _080172EC @ =gUnk_03003BE0 + movs r1, #0x8c + bl sub_0801D630 + adds r2, r4, #0 + adds r2, #0x3f + ldrb r0, [r2] + adds r1, r6, #0 + adds r1, #0x63 + strb r0, [r1] + strb r5, [r2] + bl sub_0807B0C8 + ldr r0, [r4, #0x30] + ands r0, r7 + cmp r0, #0 + beq _080172CC + ldr r0, _080172F0 @ =gUnk_03004040 + ldr r2, [r0] + ldr r1, [r0, #4] + ldr r0, [r0, #8] + adds r0, #0x63 + strb r5, [r0] + adds r1, #0x63 + strb r5, [r1] + adds r2, #0x63 + strb r5, [r2] +_080172CC: + ldrb r0, [r6, #0xc] + cmp r0, #0x1d + bne _080172F4 + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x16 + orrs r0, r1 + b _080172FA + .align 2, 0 +_080172DC: .4byte gUnk_03003F80 +_080172E0: .4byte gLinkEntity +_080172E4: .4byte 0xFFFEFFFF +_080172E8: .4byte gUnk_0200AF00 +_080172EC: .4byte gUnk_03003BE0 +_080172F0: .4byte gUnk_03004040 +_080172F4: + ldr r0, [r4, #0x30] + ldr r1, _0801732C @ =0xDFFFFFFF + ands r0, r1 +_080172FA: + str r0, [r4, #0x30] + ldr r4, _08017330 @ =gLinkEntity + adds r0, r4, #0 + bl sub_0807A8D8 + ldr r0, _08017334 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + beq _08017318 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xfe + strb r0, [r1] +_08017318: + ldrb r0, [r4, #0xc] + cmp r0, #0x17 + beq _08017322 + bl sub_08077FEC +_08017322: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0801732C: .4byte 0xDFFFFFFF +_08017330: .4byte gLinkEntity +_08017334: .4byte gUnk_03003F80 + + thumb_func_start sub_08017338 +sub_08017338: @ 0x08017338 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08017352 + ldrh r0, [r4, #0xc] + cmp r0, #0 + bne _08017352 + adds r0, r4, #0 + bl sub_080173A4 +_08017352: + adds r0, r4, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08017398 + ldr r1, _08017390 @ =gUnk_080B2CE8 + ldrb r0, [r4, #9] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _08017398 + cmp r2, #0 + ble _08017394 + subs r0, #1 + b _08017396 + .align 2, 0 +_08017390: .4byte gUnk_080B2CE8 +_08017394: + adds r0, #1 +_08017396: + strb r0, [r1] +_08017398: + adds r0, r4, #0 + bl sub_0800404C + pop {r4} + pop {r0} + bx r0 + + thumb_func_start sub_080173A4 +sub_080173A4: @ 0x080173A4 + push {r4, r5, lr} + mov ip, r0 + ldrb r0, [r0, #9] + lsls r0, r0, #3 + ldr r1, _08017410 @ =gUnk_08126DA8 + adds r3, r0, r1 + ldrb r0, [r3] + cmp r0, #0xff + bne _080173CE + ldrb r2, [r3, #2] + ldr r1, _08017414 @ =gUnk_08126ED8 + ldrb r0, [r3, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + mov r0, ip + adds r0, #0x68 + ldrb r0, [r0] + subs r0, r0, r2 + lsls r0, r0, #3 + adds r3, r3, r0 +_080173CE: + ldrb r0, [r3] + movs r1, #0xf + ands r1, r0 + lsls r0, r0, #4 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x1a] + ldrb r1, [r3, #1] + mov r0, ip + adds r0, #0x44 + strb r1, [r0] + ldrb r1, [r3, #3] + subs r0, #4 + strb r1, [r0] + ldrb r0, [r3, #4] + mov r1, ip + adds r1, #0x3f + strb r0, [r1] + ldrb r0, [r3, #5] + mov r2, ip + strh r0, [r2, #0x12] + ldrh r1, [r3, #6] + cmp r1, #0 + bne _0801741C + ldr r2, _08017418 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x60 + ldrh r1, [r0] + mov r0, ip + adds r0, #0x60 + strh r1, [r0] + adds r5, r2, #0 + b _08017428 + .align 2, 0 +_08017410: .4byte gUnk_08126DA8 +_08017414: .4byte gUnk_08126ED8 +_08017418: .4byte gLinkEntity +_0801741C: + ldr r0, _0801749C @ =0x000003FF + ands r0, r1 + mov r1, ip + adds r1, #0x60 + strh r0, [r1] + ldr r5, _080174A0 @ =gLinkEntity +_08017428: + mov r3, ip + ldrb r0, [r3, #0x14] + cmp r0, #0 + bne _08017438 + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + strb r0, [r3, #0x14] +_08017438: + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + mov r0, ip + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + mov r0, ip + ldrb r3, [r0, #0x19] + movs r2, #0x3f + adds r0, r2, #0 + ands r0, r3 + orrs r0, r1 + mov r1, ip + strb r0, [r1, #0x19] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + mov r4, ip + adds r4, #0x29 + lsrs r1, r1, #0x1d + ldrb r3, [r4] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4] + ldrb r0, [r5, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + mov r3, ip + ldrb r1, [r3, #0x1b] + ands r2, r1 + orrs r2, r0 + strb r2, [r3, #0x1b] + mov r2, ip + adds r2, #0x45 + movs r1, #1 + movs r0, #1 + strb r0, [r2] + ldrb r0, [r3, #0x10] + orrs r1, r0 + strb r1, [r3, #0x10] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0801749C: .4byte 0x000003FF +_080174A0: .4byte gLinkEntity + + thumb_func_start sub_080174A4 +sub_080174A4: @ 0x080174A4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080174BE + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080174BE + adds r0, r4, #0 + bl sub_080A2838 +_080174BE: + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _080174D0 + adds r0, r2, #1 + strb r0, [r1] +_080174D0: + adds r0, r4, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _080174F6 + ldr r1, _08017504 @ =gUnk_080B2D4C + ldrb r0, [r4, #9] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r2, r4, #0 + adds r2, #0x41 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] +_080174F6: + adds r0, r4, #0 + bl sub_0800404C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08017504: .4byte gUnk_080B2D4C + + thumb_func_start sub_08017508 +sub_08017508: @ 0x08017508 + push {r4, lr} + adds r4, r0, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08017524 + ldr r0, _0801752C @ =gUnk_080B3054 + ldrb r1, [r4, #9] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08017524: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801752C: .4byte gUnk_080B3054 + + thumb_func_start sub_08017530 +sub_08017530: @ 0x08017530 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08017550 + ldr r0, _080175D8 @ =gUnk_020342F8 + subs r1, #1 + bl sub_0801D5A8 + cmp r0, #0 + bne _08017550 + bl sub_0805E780 +_08017550: + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08017566 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08017566 + adds r0, r4, #0 + bl sub_0806EC78 +_08017566: + adds r0, r4, #0 + bl sub_0805E3B0 + cmp r0, #0 + bne _08017584 + ldr r2, _080175DC @ =gUnk_080B313C + ldrb r1, [r4, #9] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_08017584: + ldr r0, [r4, #4] + cmp r0, #0 + beq _080175D2 + ldr r2, _080175DC @ =gUnk_080B313C + ldrb r1, [r4, #9] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _080175A4 + adds r0, r4, #0 + bl _call_via_r1 +_080175A4: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _080175CC + ldr r2, _080175E0 @ =gUnk_02031EC0 + lsls r0, r1, #4 + subs r0, #0x10 + adds r2, r0, r2 + ldr r3, _080175E4 @ =gUnk_03000BF0 + ldrh r0, [r4, #0x2e] + ldrh r1, [r3, #6] + subs r0, r0, r1 + strh r0, [r2, #4] + ldrh r0, [r4, #0x32] + ldrh r1, [r3, #8] + subs r0, r0, r1 + strh r0, [r2, #6] +_080175CC: + adds r0, r4, #0 + bl sub_0800404C +_080175D2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080175D8: .4byte gUnk_020342F8 +_080175DC: .4byte gUnk_080B313C +_080175E0: .4byte gUnk_02031EC0 +_080175E4: .4byte gUnk_03000BF0 + + thumb_func_start sub_080175E8 +sub_080175E8: @ 0x080175E8 + ldr r1, _080175F0 @ =gUnk_03003DB8 + movs r0, #0 + strb r0, [r1] + bx lr + .align 2, 0 +_080175F0: .4byte gUnk_03003DB8 + + thumb_func_start sub_080175F4 +sub_080175F4: @ 0x080175F4 + push {r4, r5, lr} + ldr r1, _08017624 @ =gUnk_03003DC0 + ldrb r0, [r1] + ldrb r2, [r1, #1] + cmp r0, r2 + bhi _08017602 + ldrb r0, [r1, #1] +_08017602: + cmp r0, #0 + bne _08017638 + ldr r1, _08017628 @ =gUnk_030059F0 + ldr r0, _0801762C @ =gUnk_03003F80 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #0 + beq _08017634 + ldr r4, _08017630 @ =gLinkEntity + ldrb r5, [r4, #0x10] + movs r0, #0x7f + ands r0, r5 + strb r0, [r4, #0x10] + bl _call_via_r1 + strb r5, [r4, #0x10] + b _08017638 + .align 2, 0 +_08017624: .4byte gUnk_03003DC0 +_08017628: .4byte gUnk_030059F0 +_0801762C: .4byte gUnk_03003F80 +_08017630: .4byte gLinkEntity +_08017634: + bl _call_via_r1 +_08017638: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start sub_08017640 +sub_08017640: @ 0x08017640 + push {r4, lr} + ldr r4, _08017660 @ =gUnk_03003C70 + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _08017664 @ =gUnk_02018EA0 + str r4, [r0] + str r4, [r4] + str r4, [r4, #4] + ldr r0, _08017668 @ =gLinkEntity + str r0, [r4, #8] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08017660: .4byte gUnk_03003C70 +_08017664: .4byte gUnk_02018EA0 +_08017668: .4byte gLinkEntity + + thumb_func_start sub_0801766C +sub_0801766C: @ 0x0801766C + push {r4, lr} + adds r4, r0, #0 + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08017682 +_0801767E: + movs r0, #1 + b _080176DE +_08017682: + ldr r2, _080176C0 @ =gUnk_03003C70 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r2, r0 + cmp r1, r2 + bls _080176DC +_0801768E: + ldr r0, [r2, #8] + cmp r0, #0 + bne _080176D6 + str r4, [r2, #8] + strb r0, [r2, #0xc] + ldrb r0, [r3] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r3] + ldr r3, _080176C4 @ =gUnk_02018EA0 + ldr r1, [r3] + ldrb r0, [r1, #0xc] + cmp r0, #0 + beq _080176C8 +_080176AA: + ldr r1, [r1, #4] + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _080176AA + str r1, [r2, #4] + ldr r0, [r1] + str r0, [r2] + str r2, [r0, #4] + str r2, [r1] + b _0801767E + .align 2, 0 +_080176C0: .4byte gUnk_03003C70 +_080176C4: .4byte gUnk_02018EA0 +_080176C8: + str r1, [r2, #4] + ldr r0, [r1] + str r0, [r2] + str r2, [r0, #4] + str r2, [r1] + str r2, [r3] + b _0801767E +_080176D6: + adds r2, #0x10 + cmp r1, r2 + bhi _0801768E +_080176DC: + movs r0, #0 +_080176DE: + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_080176E4 +sub_080176E4: @ 0x080176E4 + push {lr} + adds r2, r0, #0 + adds r0, #0x29 + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08017720 + movs r0, #1 + b _0801773A +_080176F8: + str r2, [r3, #8] + movs r0, #1 + strb r0, [r3, #0xc] + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r2, _0801771C @ =gUnk_02018EA0 + ldr r0, [r2] + str r0, [r3, #4] + ldr r1, [r0] + str r1, [r3] + str r3, [r1, #4] + str r3, [r0] + str r3, [r2] + movs r0, #1 + b _0801773A + .align 2, 0 +_0801771C: .4byte gUnk_02018EA0 +_08017720: + ldr r3, _08017740 @ =gUnk_03003C70 + movs r0, #0x80 + lsls r0, r0, #1 + adds r1, r3, r0 + cmp r1, r3 + bls _08017738 +_0801772C: + ldr r0, [r3, #8] + cmp r0, #0 + beq _080176F8 + adds r3, #0x10 + cmp r1, r3 + bhi _0801772C +_08017738: + movs r0, #0 +_0801773A: + pop {r1} + bx r1 + .align 2, 0 +_08017740: .4byte gUnk_03003C70 + + thumb_func_start sub_08017744 +sub_08017744: @ 0x08017744 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, _08017758 @ =gUnk_03003C70 + movs r0, #0x80 + lsls r0, r0, #1 + adds r7, r2, r0 + movs r5, #0x41 + rsbs r5, r5, #0 + ldr r6, _0801775C @ =gUnk_02018EA0 + b _08017766 + .align 2, 0 +_08017758: .4byte gUnk_03003C70 +_0801775C: .4byte gUnk_02018EA0 +_08017760: + adds r2, #0x10 + cmp r7, r2 + bls _0801779A +_08017766: + ldr r0, [r2, #8] + cmp r4, r0 + bne _08017760 + adds r3, r4, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08017760 + adds r0, r5, #0 + ands r0, r1 + strb r0, [r3] + movs r0, #0 + str r0, [r2, #8] + ldr r1, [r2] + ldr r0, [r2, #4] + str r0, [r1, #4] + ldr r1, [r2, #4] + ldr r0, [r2] + str r0, [r1] + ldr r0, [r6] + cmp r2, r0 + bne _0801779A + ldr r0, [r2, #4] + str r0, [r6] +_0801779A: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_start sub_080177A0 +sub_080177A0: @ 0x080177A0 + push {r4, r5, r6, lr} + mov ip, r0 + adds r5, r1, #0 + adds r0, #0x38 + adds r1, #0x38 + ldrb r2, [r0] + ldrb r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _08017848 + mov r0, ip + ldr r3, [r0, #0x48] + ldr r4, [r5, #0x48] + ldrb r1, [r3, #6] + ldrb r0, [r4, #6] + adds r2, r1, r0 + mov r1, ip + movs r6, #0x2e + ldrsh r0, [r1, r6] + movs r6, #0x2e + ldrsh r1, [r5, r6] + subs r0, r0, r1 + movs r1, #0 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r4, r1] + subs r0, r0, r1 + adds r0, r0, r2 + lsls r1, r2, #1 + cmp r0, r1 + bhi _08017848 + ldrb r1, [r3, #7] + ldrb r0, [r4, #7] + adds r2, r1, r0 + mov r1, ip + movs r6, #0x32 + ldrsh r0, [r1, r6] + movs r6, #0x32 + ldrsh r1, [r5, r6] + subs r0, r0, r1 + movs r1, #1 + ldrsb r1, [r3, r1] + adds r0, r0, r1 + movs r1, #1 + ldrsb r1, [r4, r1] + subs r0, r0, r1 + adds r0, r0, r2 + lsls r1, r2, #1 + cmp r0, r1 + bhi _08017848 + mov r0, ip + adds r0, #0x3c + ldrb r1, [r0] + movs r6, #0x10 + adds r0, r6, #0 + ands r0, r1 + movs r2, #5 + cmp r0, #0 + beq _0801781A + ldrb r2, [r3, #8] +_0801781A: + adds r0, r5, #0 + adds r0, #0x3c + ldrb r1, [r0] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0801782E + ldrb r0, [r4, #8] + adds r2, r2, r0 + b _08017830 +_0801782E: + adds r2, #5 +_08017830: + mov r1, ip + movs r3, #0x36 + ldrsh r0, [r1, r3] + movs r6, #0x36 + ldrsh r1, [r5, r6] + subs r0, r0, r1 + adds r0, r0, r2 + lsls r1, r2, #1 + cmp r0, r1 + bhi _08017848 + movs r0, #1 + b _0801784A +_08017848: + movs r0, #0 +_0801784A: + pop {r4, r5, r6} + pop {r1} + bx r1 + + thumb_func_start sub_08017850 +sub_08017850: @ 0x08017850 + push {r4, lr} + adds r4, r0, #0 + bl sub_08079F8C + cmp r0, #0 + bne _08017860 + movs r0, #0 + b _08017868 +_08017860: + ldr r1, _08017870 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080177A0 +_08017868: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08017870: .4byte gLinkEntity + + thumb_func_start sub_08017874 +sub_08017874: @ 0x08017874 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldrb r0, [r4, #8] + cmp r0, #1 + bne _080178C6 + adds r0, r2, #0 + adds r0, #0x44 + ldrb r1, [r0] + ldr r0, _08017898 @ =gUnk_02002A40 + adds r0, #0xb2 + ldrb r0, [r0] + cmp r0, #0x2f + beq _0801789C + cmp r0, #0x30 + beq _080178A8 + b _080178AE + .align 2, 0 +_08017898: .4byte gUnk_02002A40 +_0801789C: + adds r0, r1, #0 + cmp r1, #0 + bge _080178A4 + adds r0, r1, #3 +_080178A4: + asrs r1, r0, #2 + b _080178AE +_080178A8: + lsrs r0, r1, #0x1f + adds r0, r1, r0 + asrs r1, r0, #1 +_080178AE: + cmp r1, #0 + bgt _080178B4 + movs r1, #1 +_080178B4: + rsbs r0, r1, #0 + bl sub_080526A0 + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #0x7a + bl sub_0800449C + b _08017928 +_080178C6: + adds r0, r2, #0 + adds r0, #0x44 + ldrb r1, [r0] + ldrb r0, [r2, #8] + cmp r0, #8 + bne _080178F6 + ldr r0, _080178E4 @ =gUnk_02002A40 + adds r0, #0xb2 + ldrb r0, [r0] + cmp r0, #0x30 + beq _080178E8 + cmp r0, #0x31 + beq _080178F4 + b _080178F6 + .align 2, 0 +_080178E4: .4byte gUnk_02002A40 +_080178E8: + lsls r0, r1, #1 + adds r0, r0, r1 + lsrs r1, r0, #0x1f + adds r0, r0, r1 + asrs r1, r0, #1 + b _080178F6 +_080178F4: + lsls r1, r1, #1 +_080178F6: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + subs r5, r0, r1 + ldrb r0, [r4, #8] + cmp r0, #3 + bne _08017928 + adds r0, r4, #0 + adds r0, #0x6d + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08017920 + ldr r1, _0801791C @ =0x00000127 + adds r0, r4, #0 + bl sub_0800449C + b _08017928 + .align 2, 0 +_0801791C: .4byte 0x00000127 +_08017920: + adds r0, r4, #0 + movs r1, #0xfe + bl sub_0800449C +_08017928: + cmp r5, #0 + ble _08017930 + adds r0, r5, #0 + b _0801793A +_08017930: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0 +_0801793A: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_start sub_08017940 +sub_08017940: @ 0x08017940 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r0, r4, #0 + movs r1, #0x2c + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _080179CC + adds r3, r2, #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] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r1, [r5, #0x48] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r3, #0x2e + ldrsh r1, [r4, r3] + adds r0, r0, r1 + ldr r1, [r4, #0x48] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r2, #0x2e] + movs r1, #0x32 + ldrsh r0, [r5, r1] + ldr r1, [r5, #0x48] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r3, #0x32 + ldrsh r1, [r4, r3] + adds r0, r0, r1 + ldr r1, [r4, #0x48] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r2, #0x32] + movs r1, #0x36 + ldrsh r0, [r5, r1] + movs r3, #0x36 + ldrsh r1, [r4, r3] + adds r0, r0, r1 + asrs r0, r0, #1 + strh r0, [r2, #0x36] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r2, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r2, #0 + bl sub_08016A04 +_080179CC: + movs r1, #0 + ldr r0, _080179E8 @ =gLinkEntity + cmp r5, r0 + beq _080179DA + cmp r4, r0 + bne _080179E0 + adds r0, r4, #0 +_080179DA: + adds r0, #0x42 + ldrb r0, [r0] + lsrs r1, r0, #3 +_080179E0: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_080179E8: .4byte gLinkEntity + + thumb_func_start sub_080179EC +sub_080179EC: @ 0x080179EC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r4, _08017A8C @ =gUnk_080B3740 + 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 r4, r0, #0 + cmp r4, #0 + beq _08017A84 + 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 sub_0806FA48 + 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] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r1, [r6, #0x48] + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r2, [r5, #0x48] + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + subs r0, r0, r1 + asrs r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldr r1, [r6, #0x48] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldr r2, [r5, #0x48] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + subs r0, r0, r1 + asrs r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + str r5, [r4, #0x54] +_08017A84: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_08017A8C: .4byte gUnk_080B3740 + + thumb_func_start sub_08017A90 +sub_08017A90: @ 0x08017A90 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0x99 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + bne _08017AAA + movs r0, #0 + b _08017AD0 +_08017AAA: + ldrb r0, [r4, #0x15] + lsrs r0, r0, #3 + movs r1, #3 + ands r0, r1 + strb r0, [r2, #0x14] + ldrh r0, [r4, #0x2e] + ldrh r1, [r5, #0x2e] + subs r0, r0, r1 + adds r1, r2, #0 + adds r1, #0x62 + strb r0, [r1] + ldrh r0, [r4, #0x32] + ldrh r1, [r5, #0x32] + subs r0, r0, r1 + adds r1, r2, #0 + adds r1, #0x63 + strb r0, [r1] + str r5, [r2, #0x50] + adds r0, r2, #0 +_08017AD0: + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + + thumb_func_start sub_08017AD8 +sub_08017AD8: @ 0x08017AD8 + movs r0, #0 + bx lr + + thumb_func_start sub_08017ADC +sub_08017ADC: @ 0x08017ADC + push {r4, lr} + adds r4, r1, #0 + ldrb r2, [r4, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r4, #0x10] + adds r0, #0x40 + ldrb r1, [r0] + movs r0, #0x80 + adds r2, r4, #0 + adds r2, #0x41 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4, #0xa] + subs r0, #0x5f + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08017B14 + adds r0, r4, #0 + bl sub_08081420 + cmp r0, #0 + beq _08017B14 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_08017B14: + movs r0, #2 + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_08017B1C +sub_08017B1C: @ 0x08017B1C + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldr r0, _08017B38 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1e] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _08017B3C + ldrb r1, [r3, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r3, #0x10] + b _08017B52 + .align 2, 0 +_08017B38: .4byte gUnk_03003F80 +_08017B3C: + adds r1, r2, #0 + adds r1, #0x42 + movs r0, #0x10 + strb r0, [r1] + subs r1, #5 + movs r0, #0xec + strb r0, [r1] + adds r1, #9 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r1] +_08017B52: + movs r0, #1 + pop {r1} + bx r1 + + thumb_func_start sub_08017B58 +sub_08017B58: @ 0x08017B58 + push {lr} + adds r2, r1, #0 + adds r3, r2, #0 + adds r3, #0x3a + ldrb r1, [r3] + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _08017B98 + ldrb r1, [r2, #0x1d] + cmp r1, #0 + beq _08017BA2 + ldr r0, _08017B94 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1d] + subs r0, r1, r0 + movs r1, #0 + strb r0, [r2, #0x1d] + lsls r0, r0, #0x18 + cmp r0, #0 + bgt _08017BA2 + strb r1, [r2, #0x1d] + movs r0, #2 + strb r0, [r2, #0xd] + adds r0, r2, #0 + adds r0, #0x46 + strh r1, [r0] + b _08017BA2 + .align 2, 0 +_08017B94: .4byte gUnk_03003F80 +_08017B98: + strb r0, [r2, #0xd] + ldrb r0, [r3] + movs r1, #4 + orrs r0, r1 + strb r0, [r3] +_08017BA2: + adds r1, r2, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017BB4 + movs r0, #0xff + strb r0, [r1] +_08017BB4: + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 + + thumb_func_start sub_08017BBC +sub_08017BBC: @ 0x08017BBC + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + ldr r5, _08017C38 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + ldr r1, _08017C3C @ =0x00001481 + ands r0, r1 + cmp r0, #0 + bne _08017BF2 + movs r0, #0x42 + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _08017BF2 + str r4, [r0, #0x54] + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + orrs r0, r1 + str r0, [r5, #0x30] + movs r0, #0x10 + eors r0, r7 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] +_08017BF2: + adds r1, r6, #0 + adds r1, #0x44 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08017874 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + subs r1, #3 + movs r0, #0xc + strb r0, [r1] + subs r1, #5 + movs r0, #0x1e + strb r0, [r1] + adds r1, #9 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017C2E + movs r0, #0xff + strb r0, [r1] +_08017C2E: + movs r0, #1 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_08017C38: .4byte gUnk_03003F80 +_08017C3C: .4byte 0x00001481 + + thumb_func_start sub_08017C40 +sub_08017C40: @ 0x08017C40 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, _08017CB4 @ =gUnk_03003F80 + ldr r0, [r6, #0x30] + ldr r1, _08017CB8 @ =0x00001881 + ands r0, r1 + cmp r0, #0 + bne _08017C82 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08017C82 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08017C62 + cmp r0, #0x18 + bne _08017C82 +_08017C62: + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #4 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08017874 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #4 + str r0, [r6, #0x30] + movs r0, #0xd + strb r0, [r6, #0xc] +_08017C82: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0xc + strb r0, [r1] + subs r1, #5 + movs r0, #0x10 + strb r0, [r1] + adds r1, #9 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r1] + adds r1, r5, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017CAA + movs r0, #0xff + strb r0, [r1] +_08017CAA: + movs r0, #1 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08017CB4: .4byte gUnk_03003F80 +_08017CB8: .4byte 0x00001881 + + thumb_func_start sub_08017CBC +sub_08017CBC: @ 0x08017CBC + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + movs r5, #0x10 + eors r2, r5 + adds r0, r2, #0 + subs r0, #0xc + movs r2, #0x1f + ands r0, r2 + ldrb r1, [r3, #0x15] + subs r1, r1, r0 + ands r1, r2 + cmp r1, #0x18 + bhi _08017CF0 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xf4 + strb r0, [r1] + adds r1, r3, #0 + adds r1, #0x3d + strb r0, [r1] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08017940 + b _08017D1E +_08017CF0: + adds r1, r3, #0 + adds r1, #0x42 + movs r0, #0xc + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3d + strb r5, [r0] + adds r1, #1 + movs r0, #0xf0 + strb r0, [r1] + adds r1, #3 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r1] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017D1E + movs r0, #0xff + strb r0, [r1] +_08017D1E: + movs r0, #1 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 + + thumb_func_start sub_08017D28 +sub_08017D28: @ 0x08017D28 + push {lr} + adds r3, r0, #0 + ldr r2, _08017D68 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r2, #0x1a] + adds r2, r3, #0 + adds r2, #0x7a + movs r0, #0x96 + lsls r0, r0, #2 + strh r0, [r2] + subs r2, #0x38 + movs r0, #0xc + strb r0, [r2] + subs r2, #5 + movs r0, #0x10 + strb r0, [r2] + adds r2, #9 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r2] + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017D60 + movs r0, #0xff + strb r0, [r1] +_08017D60: + movs r0, #1 + pop {r1} + bx r1 + .align 2, 0 +_08017D68: .4byte gUnk_03003F80 + + thumb_func_start sub_08017D6C +sub_08017D6C: @ 0x08017D6C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + movs r0, #0x10 + eors r0, r6 + subs r0, #5 + movs r2, #0x1f + ands r0, r2 + ldrb r1, [r4, #0x14] + lsls r1, r1, #3 + subs r1, r1, r0 + ands r1, r2 + cmp r1, #0xa + bls _08017D98 + adds r0, r5, #0 + adds r0, #0x40 + ldrb r0, [r0] + ldr r1, _08017D94 @ =0x00000AC2 + b _08017DB0 + .align 2, 0 +_08017D94: .4byte 0x00000AC2 +_08017D98: + adds r1, r4, #0 + adds r1, #0x41 + movs r0, #0xcb + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x40 + ldrb r0, [r1] + adds r2, r4, #0 + adds r2, #0x79 + strb r0, [r2] + ldrb r0, [r1] + ldr r1, _08017DCC @ =0x00000AE4 +_08017DB0: + adds r0, r0, r1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _08017DD0 @ =gUnk_080B7B74 + adds r3, r3, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_08018308 + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08017DCC: .4byte 0x00000AE4 +_08017DD0: .4byte gUnk_080B7B74 + + thumb_func_start sub_08017DD4 +sub_08017DD4: @ 0x08017DD4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r5, r1, #0 + adds r7, r2, #0 + mov r1, r8 + adds r1, #0x41 + movs r0, #0 + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x44 + ldrb r2, [r1] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08017DFC + movs r0, #0x7f + ands r0, r2 + b _08017DFE +_08017DFC: + movs r0, #4 +_08017DFE: + strb r0, [r1] + ldr r4, _08017E34 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08017874 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] + adds r2, r5, #0 + adds r2, #0x3d + movs r0, #0xf4 + strb r0, [r2] + ldr r0, _08017E38 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _08017E3C + bl sub_08079D84 + mov r1, r8 + adds r1, #0x3d + movs r0, #0x5a + strb r0, [r1] + b _08017E6E + .align 2, 0 +_08017E34: .4byte gLinkEntity +_08017E38: .4byte gUnk_03003F80 +_08017E3C: + adds r0, r5, #0 + adds r0, #0x40 + ldrb r0, [r0] + movs r1, #0x80 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x41 + strb r0, [r1] + subs r1, #4 + movs r0, #0xc + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x42 + movs r1, #0x10 + movs r0, #0x10 + strb r0, [r2] + eors r7, r1 + adds r0, r4, #0 + adds r0, #0x3e + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x46 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r1] +_08017E6E: + ldrb r1, [r6] + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _08017E7C + movs r0, #0xff + strb r0, [r6] +_08017E7C: + movs r0, #1 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + + thumb_func_start sub_08017E88 +sub_08017E88: @ 0x08017E88 + push {lr} + adds r3, r0, #0 + adds r3, #0x42 + movs r2, #2 + strb r2, [r3] + adds r0, #0x46 + movs r2, #0xa0 + lsls r2, r2, #2 + strh r2, [r0] + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017EAA + movs r0, #0xff + strb r0, [r1] +_08017EAA: + movs r0, #1 + pop {r1} + bx r1 + + thumb_func_start sub_08017EB0 +sub_08017EB0: @ 0x08017EB0 + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + adds r7, r1, #0 + adds r5, r7, #0 + adds r5, #0x44 + ldrb r0, [r5] + cmp r0, #0 + bne _08017EC4 + movs r0, #0 + b _08017F36 +_08017EC4: + ldr r6, _08017EF8 @ =gLinkEntity + cmp r2, r6 + bne _08017EFC + ldrb r4, [r5] + movs r0, #8 + strb r0, [r5] + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08017874 + adds r1, r6, #0 + adds r1, #0x45 + strb r0, [r1] + strb r4, [r5] + subs r1, #3 + movs r0, #0xc + strb r0, [r1] + subs r1, #5 + movs r0, #0x10 + strb r0, [r1] + adds r1, #9 + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1] + b _08017F22 + .align 2, 0 +_08017EF8: .4byte gLinkEntity +_08017EFC: + ldrh r1, [r2, #8] + movs r0, #0xa1 + lsls r0, r0, #3 + cmp r1, r0 + bne _08017F22 + adds r1, r2, #0 + adds r1, #0x42 + movs r0, #8 + strb r0, [r1] + subs r1, #5 + movs r0, #0xfa + strb r0, [r1] + adds r1, #9 + adds r0, #0x86 + strh r0, [r1] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0x80 + strb r0, [r1] +_08017F22: + adds r1, r7, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08017F34 + movs r0, #0xff + strb r0, [r1] +_08017F34: + movs r0, #1 +_08017F36: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + + thumb_func_start sub_08017F3C +sub_08017F3C: @ 0x08017F3C + movs r0, #1 + bx lr + + thumb_func_start sub_08017F40 +sub_08017F40: @ 0x08017F40 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, r5, #0 + adds r0, #0x43 + ldrb r6, [r0] + cmp r6, #0 + bne _0801800A + ldr r0, _08017FAC @ =gLinkEntity + cmp r4, r0 + bne _08018002 + bl sub_08079F8C + cmp r0, #0 + beq _0801801E + ldr r2, _08017FB0 @ =gUnk_03003F80 + ldr r3, [r2, #0x30] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + bne _0801801E + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0801801E + 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] + movs r0, #0x10 + orrs r3, r0 + str r3, [r2, #0x30] + strb r6, [r2, #2] + ldrb r0, [r5, #8] + cmp r0, #3 + bne _08017FB4 + ldrb r0, [r5, #9] + cmp r0, #0x4e + beq _08017F9A + cmp r0, #0x50 + bne _08017FB4 +_08017F9A: + strh r6, [r4, #0x36] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + b _08017FC2 + .align 2, 0 +_08017FAC: .4byte gLinkEntity +_08017FB0: .4byte gUnk_03003F80 +_08017FB4: + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 +_08017FC2: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + 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] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xff + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + bl sub_08077B2C + movs r0, #1 + b _08018020 +_08018002: + adds r0, r4, #0 + adds r0, #0x45 + strb r6, [r0] + b _0801801E +_0801800A: + ldrb r0, [r5, #8] + cmp r0, #3 + bne _0801801E + ldr r0, _08018028 @ =gLinkEntity + cmp r4, r0 + bne _0801801E + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004484 +_0801801E: + movs r0, #0 +_08018020: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08018028: .4byte gLinkEntity + + thumb_func_start sub_0801802C +sub_0801802C: @ 0x0801802C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldrb r0, [r4, #8] + cmp r0, #1 + bne _08018058 + bl sub_08079F8C + cmp r0, #0 + beq _08018090 + movs r0, #0x10 + eors r0, r6 + ldrb r1, [r5, #0x14] + lsls r1, r1, #2 + subs r0, r0, r1 + adds r0, #5 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xa + bhi _08018090 + b _0801807A +_08018058: + cmp r0, #8 + bne _08018086 + ldrb r0, [r4, #0x15] + movs r1, #0x10 + eors r1, r0 + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + subs r1, r1, r0 + adds r1, #5 + movs r0, #0x1f + ands r1, r0 + cmp r1, #0xa + bgt _08018090 + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_0801807A: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080180BC + movs r0, #1 + b _080180AE +_08018086: + adds r1, r4, #0 + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] + b _080180AE +_08018090: + adds r0, r4, #0 + adds r0, #0x40 + ldrb r0, [r0] + ldr r1, _080180B4 @ =0x000011AA + adds r0, r0, r1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _080180B8 @ =gUnk_080B7B74 + adds r3, r3, r0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_08018308 +_080180AE: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_080180B4: .4byte 0x000011AA +_080180B8: .4byte gUnk_080B7B74 + + thumb_func_start sub_080180BC +sub_080180BC: @ 0x080180BC + push {lr} + adds r2, r0, #0 + adds r2, #0x3d + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _080180CE + movs r0, #0xe2 + strb r0, [r2] +_080180CE: + adds r2, r1, #0 + adds r2, #0x3d + ldrb r3, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _080180E0 + movs r0, #0xff + strb r0, [r2] +_080180E0: + movs r0, #0xff + strb r0, [r1, #0xd] + pop {r0} + bx r0 + + thumb_func_start sub_080180E8 +sub_080180E8: @ 0x080180E8 + push {r4, lr} + mov ip, r0 + adds r4, r1, #0 + movs r0, #0x10 + eors r0, r2 + adds r2, r0, #0 + subs r2, #0xc + movs r1, #0x1f + ands r2, r1 + ldrb r0, [r4, #0x15] + subs r0, r0, r2 + ands r0, r1 + cmp r0, #0x18 + bls _0801812C + mov r0, ip + adds r0, #0x40 + ldrb r0, [r0] + ldr r1, _08018124 @ =0x00000352 + adds r0, r0, r1 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _08018128 @ =gUnk_080B7B74 + adds r3, r3, r0 + mov r0, ip + adds r1, r4, #0 + bl sub_08018308 + b _08018162 + .align 2, 0 +_08018124: .4byte 0x00000352 +_08018128: .4byte gUnk_080B7B74 +_0801812C: + mov r0, ip + adds r0, #0x42 + movs r2, #0xc + strb r2, [r0] + subs r0, #5 + movs r1, #0xf0 + strb r1, [r0] + mov r3, ip + adds r3, #0x46 + movs r0, #0xa0 + lsls r0, r0, #2 + strh r0, [r3] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + subs r0, #5 + strb r1, [r0] + adds r1, r4, #0 + adds r1, #0x46 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r1] + mov r0, ip + adds r1, r4, #0 + bl sub_08017940 + movs r0, #1 +_08018162: + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_08018168 +sub_08018168: @ 0x08018168 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r0, r6, #0 + adds r0, #0x43 + ldrb r5, [r0] + cmp r5, #0 + bne _08018208 + ldr r0, _080181F4 @ =gLinkEntity + cmp r4, r0 + bne _08018200 + bl sub_08079F8C + cmp r0, #0 + beq _0801821C + ldr r2, _080181F8 @ =gUnk_03003F80 + ldr r3, [r2, #0x30] + ldr r0, _080181FC @ =0x00040080 + ands r0, r3 + cmp r0, #0 + bne _0801821C + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0801821C + 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] + movs r0, #0x80 + lsls r0, r0, #1 + orrs r3, r0 + str r3, [r2, #0x30] + strb r5, [r2, #2] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r2, [r6, #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, [r6, #0x1b] + lsrs r0, r0, #6 + lsls r0, r0, #6 + ldrb r2, [r4, #0x1b] + ands r1, r2 + orrs r1, r0 + strb r1, [r4, #0x1b] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xff + strb r0, [r1] + adds r1, r6, #0 + adds r1, #0x3d + movs r0, #0xf8 + strb r0, [r1] + bl sub_08077B20 + movs r0, #1 + b _0801821E + .align 2, 0 +_080181F4: .4byte gLinkEntity +_080181F8: .4byte gUnk_03003F80 +_080181FC: .4byte 0x00040080 +_08018200: + adds r0, r4, #0 + adds r0, #0x45 + strb r5, [r0] + b _0801821C +_08018208: + ldrb r0, [r6, #8] + cmp r0, #3 + bne _0801821C + ldr r0, _08018224 @ =gLinkEntity + cmp r4, r0 + bne _0801821C + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08004484 +_0801821C: + movs r0, #0 +_0801821E: + pop {r4, r5, r6} + pop {r1} + bx r1 + .align 2, 0 +_08018224: .4byte gLinkEntity + + thumb_func_start sub_08018228 +sub_08018228: @ 0x08018228 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, _0801824C @ =gLinkEntity + cmp r4, r0 + bne _08018244 + bl sub_08079F8C + cmp r0, #0 + beq _08018244 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08004484 +_08018244: + movs r0, #0 + pop {r4, r5} + pop {r1} + bx r1 + .align 2, 0 +_0801824C: .4byte gLinkEntity + + thumb_func_start sub_08018250 +sub_08018250: @ 0x08018250 + push {r4, lr} + adds r3, r0, #0 + adds r2, r3, #0 + adds r2, #0x3d + movs r0, #1 + rsbs r0, r0, #0 + adds r4, r0, #0 + movs r0, #0xff + strb r0, [r2] + ldrb r0, [r3, #0x15] + cmp r0, #0 + bne _08018278 + adds r2, r1, #0 + adds r2, #0x3d + movs r0, #0x10 + strb r0, [r2] + adds r0, r3, #0 + bl sub_08017A90 + b _08018280 +_08018278: + adds r1, #0x3d + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] +_08018280: + movs r0, #1 + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_08018288 +sub_08018288: @ 0x08018288 + push {lr} + adds r1, r0, #0 + ldr r0, _08018298 @ =gLinkEntity + cmp r1, r0 + bne _0801829C + bl sub_0807AFE8 + b _080182A2 + .align 2, 0 +_08018298: .4byte gLinkEntity +_0801829C: + adds r1, #0x45 + movs r0, #0 + strb r0, [r1] +_080182A2: + movs r0, #1 + pop {r1} + bx r1 + + thumb_func_start sub_080182A8 +sub_080182A8: @ 0x080182A8 + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + bne _080182DA + adds r2, r4, #0 + adds r2, #0x3d + ldrb r3, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + bne _080182C8 + movs r0, #0xff + strb r0, [r2] +_080182C8: + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bne _08018300 + movs r0, #0xff + strb r0, [r1] + b _08018300 +_080182DA: + adds r0, r4, #0 + adds r0, #0x40 + ldrb r0, [r0] + ldr r3, _080182F8 @ =0x0000092A + adds r0, r0, r3 + lsls r3, r0, #1 + adds r3, r3, r0 + lsls r3, r3, #2 + ldr r0, _080182FC @ =gUnk_080B7B74 + adds r3, r3, r0 + adds r0, r4, #0 + bl sub_08018308 + b _08018302 + .align 2, 0 +_080182F8: .4byte 0x0000092A +_080182FC: .4byte gUnk_080B7B74 +_08018300: + movs r0, #1 +_08018302: + pop {r4} + pop {r1} + bx r1 + + thumb_func_start sub_08018308 +sub_08018308: @ 0x08018308 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + mov r8, r2 + adds r5, r3, #0 + movs r3, #0 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + cmp r0, #0 + beq _08018338 + ldrb r0, [r4, #8] + cmp r0, #3 + bne _08018338 + ldr r0, _0801835C @ =gLinkEntity + cmp r6, r0 + bne _08018338 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08004484 + movs r3, #1 +_08018338: + ldrh r1, [r6, #8] + movs r0, #0xa1 + lsls r0, r0, #3 + cmp r1, r0 + bne _08018360 + ldr r0, _0801835C @ =gLinkEntity + ldrb r2, [r0, #0x14] + mov r0, r8 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + movs r1, #4 + eors r0, r1 + cmp r2, r0 + bne _08018360 + movs r0, #0 + b _080184F0 + .align 2, 0 +_0801835C: .4byte gLinkEntity +_08018360: + cmp r3, #0 + bne _08018408 + ldrb r0, [r5] + lsls r0, r0, #4 + adds r1, r6, #0 + adds r1, #0x46 + strh r0, [r1] + ldrb r1, [r5, #1] + adds r2, r6, #0 + adds r2, #0x3d + strb r1, [r2] + lsls r0, r1, #0x18 + cmp r0, #0 + bne _08018382 + movs r0, #0xff + orrs r0, r1 + strb r0, [r2] +_08018382: + ldrb r0, [r5, #2] + adds r1, r6, #0 + adds r1, #0x42 + strb r0, [r1] + ldrb r1, [r5, #3] + adds r0, r4, #0 + adds r0, #0x44 + strb r1, [r0] + movs r7, #0xff + ldrb r0, [r5, #3] + cmp r0, #0 + beq _080183A8 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08017874 + adds r1, r6, #0 + adds r1, #0x45 + strb r0, [r1] +_080183A8: + adds r1, r6, #0 + adds r1, #0x43 + ldrb r0, [r5, #4] + ldrb r2, [r1] + cmp r0, r2 + bls _080183B6 + strb r0, [r1] +_080183B6: + ldrb r0, [r5, #5] + lsls r0, r0, #4 + adds r1, r4, #0 + adds r1, #0x46 + strh r0, [r1] + ldrb r1, [r5, #6] + adds r2, r4, #0 + adds r2, #0x3d + strb r1, [r2] + movs r0, #6 + ldrsb r0, [r5, r0] + cmp r0, #0 + bne _080183D6 + movs r0, #0xff + orrs r0, r1 + strb r0, [r2] +_080183D6: + ldrb r0, [r5, #7] + adds r1, r4, #0 + adds r1, #0x42 + strb r0, [r1] + ldrb r1, [r5, #8] + adds r0, r6, #0 + adds r0, #0x44 + strb r1, [r0] + ands r7, r1 + cmp r7, #0 + beq _080183FA + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08017874 + adds r1, r4, #0 + adds r1, #0x45 + strb r0, [r1] +_080183FA: + adds r1, r4, #0 + adds r1, #0x43 + ldrb r0, [r5, #9] + ldrb r2, [r1] + cmp r0, r2 + bls _08018408 + strb r0, [r1] +_08018408: + ldrb r1, [r5, #0xa] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0801841A + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08017940 +_0801841A: + ldrb r2, [r5, #0xa] + movs r0, #2 + ands r0, r2 + cmp r0, #0 + beq _0801842C + adds r1, r6, #0 + adds r1, #0x41 + movs r0, #0xca + strb r0, [r1] +_0801842C: + movs r0, #4 + ands r0, r2 + cmp r0, #0 + beq _0801847E + ldr r2, [r4, #0x50] + cmp r2, #0 + beq _0801847E + adds r1, r2, #0 + adds r1, #0x41 + movs r0, #0xcc + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + subs r1, #4 + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x3e + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + adds r1, r2, #0 + adds r1, #0x42 + strb r0, [r1] + adds r1, #1 + ldrb r0, [r1] + cmp r0, #0 + bne _08018470 + adds r0, r4, #0 + adds r0, #0x43 + ldrb r0, [r0] + strb r0, [r1] +_08018470: + adds r0, r4, #0 + adds r0, #0x46 + ldrh r0, [r0] + adds r1, r2, #0 + adds r1, #0x46 + strh r0, [r1] + str r6, [r2, #0x4c] +_0801847E: + ldrb r1, [r6, #8] + cmp r1, #8 + bne _080184DA + ldrb r0, [r6, #9] + cmp r0, #1 + bne _0801849A + ldrb r0, [r5, #8] + cmp r0, #0 + beq _080184DA + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_080179EC + b _080184DA +_0801849A: + cmp r0, #4 + bne _080184BA + adds r0, r6, #0 + adds r0, #0x44 + ldrb r0, [r0] + cmp r0, #0 + bne _080184B0 + ldrb r0, [r5, #0xa] + ands r1, r0 + cmp r1, #0 + beq _080184DA +_080184B0: + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_08017A90 + b _080184DA +_080184BA: + cmp r0, #3 + bne _080184CE + ldrb r0, [r5, #9] + cmp r0, #0 + beq _080184DA + adds r0, r4, #0 + movs r1, #0xfe + bl sub_0800449C + b _080184DA +_080184CE: + cmp r0, #5 + bne _080184DA + ldr r0, _080184FC @ =gLinkEntity + adds r0, #0x3d + movs r1, #0x80 + strb r1, [r0] +_080184DA: + ldrb r0, [r4, #8] + cmp r0, #8 + bne _080184EE + ldrb r0, [r6, #9] + cmp r0, #5 + bne _080184EE + ldr r0, _080184FC @ =gLinkEntity + adds r0, #0x3d + movs r1, #0x80 + strb r1, [r0] +_080184EE: + movs r0, #1 +_080184F0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_080184FC: .4byte gLinkEntity \ No newline at end of file diff --git a/asm/code_0801D6E0.s b/asm/code_0801D714.s similarity index 99% rename from asm/code_0801D6E0.s rename to asm/code_0801D714.s index 0b86aff4..01e78d4c 100644 --- a/asm/code_0801D6E0.s +++ b/asm/code_0801D714.s @@ -5,38 +5,6 @@ .text - thumb_func_start sub_0801D6E0 -sub_0801D6E0: @ 0x0801D6E0 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2] - adds r3, r1, #0 - bics r3, r0 - strh r3, [r2, #2] - cmp r1, r0 - bne _0801D70A - ldrb r0, [r2, #7] - subs r0, #1 - strb r0, [r2, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0801D704 - movs r0, #4 - strb r0, [r2, #7] - strh r1, [r2, #4] - b _0801D710 -_0801D704: - movs r0, #0 - strh r0, [r2, #4] - b _0801D710 -_0801D70A: - movs r0, #0x14 - strb r0, [r2, #7] - strh r3, [r2, #4] -_0801D710: - strh r1, [r2] - pop {pc} - thumb_func_start sub_0801D714 sub_0801D714: @ 0x0801D714 push {r4, lr} @@ -5515,7 +5483,7 @@ sub_0801FFDC: @ 0x0801FFDC bne _08020018 movs r0, #3 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 cmp r5, #0 beq _08020010 @@ -10237,7 +10205,7 @@ _080222F2: bl CreateFX movs r0, #1 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 cmp r5, #0 beq _08022356 @@ -11482,7 +11450,7 @@ sub_08022C58: @ 0x08022C58 bhi _08022D34 movs r0, #0xd movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy mov sb, r0 str r0, [r7, #0x54] mov r2, sb @@ -11504,7 +11472,7 @@ sub_08022C58: @ 0x08022C58 bl sub_0806FA24 movs r0, #0xd movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r6, r0, #0 mov r1, sb str r6, [r1, #0x54] @@ -11522,7 +11490,7 @@ sub_08022C58: @ 0x08022C58 bl sub_0806FA24 movs r0, #0xd movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r5, [r6, #0x54] adds r1, r5, #0 @@ -12218,49 +12186,49 @@ sub_080231BC: @ 0x080231BC bhi _0802327E movs r0, #0xf movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r4, [r6, #0x54] str r6, [r4, #0x50] movs r0, #0xf movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r5, [r4, #0x54] str r6, [r5, #0x50] movs r0, #0xf movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r4, [r5, #0x54] str r6, [r4, #0x50] movs r0, #0xf movs r1, #4 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r5, [r4, #0x54] str r6, [r5, #0x50] movs r0, #0xf movs r1, #5 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r4, [r5, #0x54] str r6, [r4, #0x50] movs r0, #0xf movs r1, #6 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r5, [r4, #0x54] str r6, [r5, #0x50] movs r0, #0xf movs r1, #7 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r4, [r5, #0x54] str r6, [r4, #0x50] movs r0, #0xf movs r1, #8 - bl sub_0804AA60 + bl CreateEnemy str r0, [r4, #0x54] str r4, [r0, #0x74] str r6, [r0, #0x50] @@ -13812,7 +13780,7 @@ _08023DC0: beq _08023DF2 movs r0, #0x10 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 cmp r1, #0 beq _08023E0A @@ -13889,7 +13857,7 @@ sub_08023E54: @ 0x08023E54 strb r0, [r4, #0xf] movs r0, #0x10 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 cmp r5, #0 beq _08023E94 @@ -18208,7 +18176,7 @@ _08025EAA: movs r1, #3 orrs r1, r0 movs r0, #0x13 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 str r2, [r5, #0x68] cmp r2, #0 @@ -18238,7 +18206,7 @@ _08025F46: movs r1, #2 orrs r1, r0 movs r0, #0x13 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 str r2, [r5, #0x50] cmp r2, #0 @@ -18273,7 +18241,7 @@ _08025F8C: adds r1, r7, #0 orrs r1, r0 movs r0, #0x13 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 str r2, [r5, #0x54] cmp r2, #0 @@ -18308,7 +18276,7 @@ _08025F8C: _08025FD6: movs r0, #0x13 movs r1, #8 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 cmp r1, #0 beq _08025FE6 @@ -25252,7 +25220,7 @@ sub_0802940C: @ 0x0802940C adds r4, r0, #0 ldrb r1, [r4, #0xa] movs r0, #0x17 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 cmp r5, #0 beq _0802944A @@ -25957,7 +25925,7 @@ sub_0802999C: @ 0x0802999C bhi _08029A8E movs r0, #0x18 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r7, [r4, #0x50] adds r0, r7, #0 @@ -25968,7 +25936,7 @@ sub_0802999C: @ 0x0802999C str r4, [r7, #0x54] movs r0, #0x18 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r7, [r5, #0x50] adds r0, r7, #0 @@ -25979,7 +25947,7 @@ sub_0802999C: @ 0x0802999C str r5, [r4, #0x54] movs r0, #0x18 movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r7, [r4, #0x50] adds r0, r7, #0 @@ -25990,7 +25958,7 @@ sub_0802999C: @ 0x0802999C str r4, [r5, #0x54] movs r0, #0x18 movs r1, #4 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r7, [r5, #0x50] adds r0, r7, #0 @@ -26001,7 +25969,7 @@ sub_0802999C: @ 0x0802999C str r5, [r4, #0x54] movs r0, #0x18 movs r1, #5 - bl sub_0804AA60 + bl CreateEnemy adds r6, r0, #0 str r7, [r6, #0x50] adds r0, r7, #0 @@ -26012,7 +25980,7 @@ sub_0802999C: @ 0x0802999C str r6, [r5, #0x54] movs r0, #0x18 movs r1, #6 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r7, [r4, #0x54] str r7, [r4, #0x50] @@ -28672,7 +28640,7 @@ sub_0802ADDC: @ 0x0802ADDC ldrb r1, [r4, #0xa] adds r1, #2 movs r0, #0x1b - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 cmp r5, #0 beq _0802AE20 @@ -29247,7 +29215,7 @@ sub_0802B204: @ 0x0802B204 bne _0802B232 movs r0, #0x22 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _0802B22E @@ -30706,7 +30674,7 @@ sub_0802BCA8: @ 0x0802BCA8 strb r0, [r4, #0x1c] movs r0, #0x20 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 cmp r1, #0 beq _0802BCF0 @@ -33843,7 +33811,7 @@ _0802D470: _0802D47A: movs r0, #0x24 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy str r0, [r4, #0x54] adds r3, r6, #1 cmp r0, #0 @@ -33892,7 +33860,7 @@ _0802D4D6: bls _0802D47A movs r0, #0x24 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 str r2, [r4, #0x54] cmp r2, #0 @@ -34218,7 +34186,7 @@ _0802D734: bl sub_08004260 movs r0, #0x24 movs r1, #5 - bl sub_0804AA60 + bl CreateEnemy str r0, [r4, #0x54] cmp r0, #0 beq _0802D774 @@ -34536,7 +34504,7 @@ _0802D9B8: _0802D9CE: movs r0, #0x24 movs r1, #6 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 @@ -34580,7 +34548,7 @@ _0802DA0E: _0802DA24: movs r0, #0x24 movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 @@ -34718,7 +34686,7 @@ _0802DB20: bgt _0802DB7E movs r0, #0x24 movs r1, #4 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 @@ -35871,7 +35839,7 @@ _0802E3CA: bl sub_08004260 movs r0, #0x24 movs r1, #5 - bl sub_0804AA60 + bl CreateEnemy str r0, [r4, #0x54] cmp r0, #0 beq _0802E400 @@ -37213,7 +37181,7 @@ sub_0802ED8C: @ 0x0802ED8C bl sub_0805EA2C movs r0, #0x25 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy str r4, [r0, #0x50] movs r0, #1 strb r0, [r4, #0xc] @@ -37286,7 +37254,7 @@ sub_0802EE38: @ 0x0802EE38 bhi _0802EE82 movs r0, #0x25 movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy str r5, [r0, #0x50] movs r0, #1 strb r0, [r5, #0xc] @@ -37434,7 +37402,7 @@ sub_0802EF58: @ 0x0802EF58 _0802EF5E: movs r0, #0x25 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _0802EF86 @@ -42884,7 +42852,7 @@ sub_08031840: @ 0x08031840 adds r5, r0, #0 ldrb r1, [r5, #0xa] movs r0, #0x2d - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _08031862 @@ -43459,7 +43427,7 @@ sub_08031C58: @ 0x08031C58 ands r6, r0 movs r0, #0x2e movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 movs r0, #0 mov r8, r0 @@ -43475,7 +43443,7 @@ sub_08031C58: @ 0x08031C58 bl sub_08031E48 movs r0, #0x2e movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r5, [r4, #0x54] movs r0, #1 @@ -43489,7 +43457,7 @@ sub_08031C58: @ 0x08031C58 bl sub_08031E48 movs r0, #0x2e movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r4, [r5, #0x54] movs r0, #2 @@ -43503,7 +43471,7 @@ sub_08031C58: @ 0x08031C58 bl sub_08031E48 movs r0, #0x2e movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r5, [r4, #0x54] mov r0, sb @@ -43517,7 +43485,7 @@ sub_08031C58: @ 0x08031C58 bl sub_08031E48 movs r0, #0x2e movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r1, [r5, #0x54] movs r0, #4 @@ -48169,7 +48137,7 @@ _08033F70: bl sub_08004260 movs r0, #0x36 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 str r4, [r5, #0x50] movs r0, #0x7e @@ -48197,19 +48165,19 @@ _08033FD0: .4byte gUnk_030010A0 _08033FD4: movs r0, #0x44 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy str r4, [r0, #0x50] str r4, [r0, #0x78] str r0, [r4, #0x74] movs r0, #0x44 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy str r4, [r0, #0x50] str r5, [r0, #0x78] str r0, [r4, #0x78] movs r0, #0x36 movs r1, #4 - bl sub_0804AA60 + bl CreateEnemy str r4, [r0, #0x50] _08033FFA: pop {r4, r5, pc} @@ -49508,7 +49476,7 @@ _08034982: adds r2, r0, #2 movs r0, #0x36 adds r1, r2, #0 - bl sub_0804AA60 + bl CreateEnemy adds r3, r0, #0 cmp r3, #0 beq _08034996 @@ -50014,7 +49982,7 @@ sub_08034CC4: @ 0x08034CC4 bl sub_0800015E movs r0, #0x37 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 cmp r1, #0 beq _08034D42 @@ -50046,7 +50014,7 @@ sub_08034D4C: @ 0x08034D4C bhi _08034DBC movs r0, #0x4b movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _08034DBC @@ -50441,7 +50409,7 @@ sub_08035050: @ 0x08035050 strb r4, [r0] movs r0, #0x4b movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 cmp r2, #0 beq _08035082 @@ -50509,7 +50477,7 @@ _080350E4: .4byte gUnk_03000BF0 _080350E8: movs r0, #0x37 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 _080350F2: ldrh r0, [r7, #6] @@ -51422,7 +51390,7 @@ _080357E6: adds r6, r5, #1 movs r0, #0x39 adds r1, r6, #0 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 @@ -51447,7 +51415,7 @@ _08035816: bls _080357E6 movs r0, #0x39 movs r1, #5 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 @@ -51464,7 +51432,7 @@ _08035816: _08035840: movs r0, #0x39 movs r1, #6 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r1, [r4, #0x54] cmp r1, #0 @@ -51487,7 +51455,7 @@ _0803586A: _0803586E: movs r0, #0x39 movs r1, #7 - bl sub_0804AA60 + bl CreateEnemy str r0, [r4, #0x54] adds r6, r5, #1 cmp r0, #0 @@ -55603,7 +55571,7 @@ sub_0803775C: @ 0x0803775C bne _08037790 movs r0, #0x42 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _0803778A @@ -59081,7 +59049,7 @@ sub_080391B4: @ 0x080391B4 bne _0803920C movs r0, #0x41 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _0803920C @@ -60755,7 +60723,7 @@ _08039E74: ldrb r1, [r5, #0xa] subs r1, #2 movs r0, #0x42 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 cmp r2, #0 beq _08039EC6 @@ -61300,13 +61268,13 @@ sub_0803A274: @ 0x0803A274 bne _0803A2CC movs r0, #0x38 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r4, [r1, #0x50] str r1, [r4, #0x54] movs r0, #0x44 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r4, [r1, #0x50] str r1, [r4, #0x74] @@ -61331,13 +61299,13 @@ _0803A2C8: .4byte gUnk_03003DBC _0803A2CC: movs r0, #0x38 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r4, [r1, #0x50] str r1, [r4, #0x54] movs r0, #0x44 movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r4, [r1, #0x50] str r1, [r4, #0x74] @@ -64054,7 +64022,7 @@ sub_0803B724: @ 0x0803B724 beq _0803B78E movs r0, #7 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _0803B78E @@ -67620,7 +67588,7 @@ _0803D158: str r0, [r5, #0x7c] movs r0, #0x4a movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r5, [r4, #0x50] str r4, [r5, #0x54] @@ -67628,7 +67596,7 @@ _0803D158: _0803D1E2: movs r0, #0x54 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r5, [r4, #0x50] adds r0, #0x79 @@ -67640,7 +67608,7 @@ _0803D1E2: _0803D1FA: movs r0, #0x4a movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r5, [r4, #0x50] strb r6, [r4, #0xe] @@ -67651,7 +67619,7 @@ _0803D1FA: _0803D210: movs r0, #0x54 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 str r5, [r4, #0x50] movs r0, #1 @@ -68658,7 +68626,7 @@ sub_0803D974: @ 0x0803D974 bl sub_0806FA48 movs r0, #0x4a movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy str r4, [r0, #0x50] ldr r1, [r4, #0x50] str r1, [r0, #0x54] @@ -69731,7 +69699,7 @@ sub_0803E1A8: @ 0x0803E1A8 bne _0803E1F8 movs r0, #0x4b movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy cmp r0, #0 beq _0803E250 str r5, [r0, #0x50] @@ -72856,7 +72824,7 @@ _0803F8C2: _0803F8E0: movs r0, #0x5a movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy str r5, [r0, #0x50] strb r4, [r0, #0xb] ldrb r1, [r7] @@ -74642,7 +74610,7 @@ sub_08040648: @ 0x08040648 adds r4, r1, #0 adds r7, r2, #0 movs r0, #0x4f - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 strb r7, [r5, #0xb] str r6, [r5, #0x50] @@ -76256,7 +76224,7 @@ sub_0804122C: @ 0x0804122C _08041250: movs r0, #0x50 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 cmp r2, #0 beq _080412C8 @@ -76973,7 +76941,7 @@ _080417DA: bne _08041806 movs r0, #0x51 movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 cmp r1, #0 beq _0804181A @@ -77866,12 +77834,12 @@ sub_08041ED4: @ 0x08041ED4 str r0, [r4, #0x18] movs r0, #0x51 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy str r4, [r0, #0x64] str r0, [r4, #4] movs r0, #0x51 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy str r4, [r0, #0x64] str r0, [r4, #8] movs r0, #1 @@ -77893,28 +77861,28 @@ sub_08041F1C: @ 0x08041F1C bhi _08041F70 movs r0, #0x5f movs r1, #0 - bl sub_0804AA60 + 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 sub_0804AA60 + 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 sub_0804AA60 + 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 sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r4, [r1, #0x50] ldr r0, [r4, #0x64] @@ -77954,7 +77922,7 @@ _08041F8C: beq _08041FB6 movs r0, #0x52 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 strb r6, [r4, #0xb] str r5, [r4, #0x50] @@ -81272,7 +81240,7 @@ _080437FC: str r6, [r7] movs r0, #0x52 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x29 @@ -81294,7 +81262,7 @@ _080437FC: bl sub_0806FA24 movs r0, #0x52 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x29 @@ -81316,7 +81284,7 @@ _080437FC: bl sub_0806FA24 movs r0, #0x52 movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 adds r3, r2, #0 adds r3, #0x29 @@ -81338,7 +81306,7 @@ _080437FC: bl sub_0806FA24 movs r0, #0x52 movs r1, #4 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x29 @@ -82869,7 +82837,7 @@ _080443EA: adds r6, r2, r0 movs r0, #0x53 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 mov r8, r4 cmp r1, #0 @@ -84590,7 +84558,7 @@ _080450D0: mov r0, r8 ldrb r1, [r0, #0xa] movs r0, #0x57 - bl sub_0804AA60 + bl CreateEnemy stm r4!, {r0} subs r5, #1 cmp r5, #0 @@ -85085,7 +85053,7 @@ _0804547C: mov r0, r8 ldrb r1, [r0, #0xa] movs r0, #0x59 - bl sub_0804AA60 + bl CreateEnemy stm r4!, {r0} subs r5, #1 cmp r5, #0 @@ -85566,7 +85534,7 @@ sub_080457E4: @ 0x080457E4 bl sub_08045A00 movs r0, #0x5a movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 cmp r1, #0 beq _0804585A @@ -86802,49 +86770,49 @@ sub_0804614C: @ 0x0804614C str r1, [r0, #0x14] movs r0, #0x63 movs r1, #0 - bl sub_0804AA60 + 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 sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #2 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #3 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #4 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #5 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #6 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #0x61 movs r1, #7 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r6, [r1, #0x50] movs r0, #1 @@ -89511,7 +89479,7 @@ _080475CA: movs r1, #3 ands r1, r0 movs r0, #0x62 - bl sub_0804AA60 + bl CreateEnemy cmp r0, #0 beq _080475EE str r4, [r0, #0x50] @@ -89675,7 +89643,7 @@ _08047700: movs r1, #3 ands r1, r0 movs r0, #0x62 - bl sub_0804AA60 + bl CreateEnemy cmp r0, #0 beq _08047724 str r4, [r0, #0x50] @@ -90047,7 +90015,7 @@ _080479CC: movs r1, #3 ands r1, r0 movs r0, #0x62 - bl sub_0804AA60 + bl CreateEnemy cmp r0, #0 beq _080479F4 str r4, [r0, #0x50] @@ -93664,7 +93632,7 @@ _08049518: movs r1, #3 ands r1, r0 movs r0, #0x62 - bl sub_0804AA60 + bl CreateEnemy cmp r0, #0 beq _08049534 str r4, [r0, #0x50] @@ -96521,743 +96489,4 @@ sub_0804AA30: @ 0x0804AA30 adds r0, r4, #0 bl _call_via_r1 pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0804AA60 -sub_0804AA60: @ 0x0804AA60 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - bl sub_0805E678 - adds r4, r0, #0 - cmp r4, #0 - beq _0804AA80 - movs r0, #3 - strb r0, [r4, #8] - strb r5, [r4, #9] - strb r6, [r4, #0xa] - adds r0, r4, #0 - movs r1, #4 - bl sub_0805EA2C -_0804AA80: - adds r0, r4, #0 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0804AA84 -sub_0804AA84: @ 0x0804AA84 - push {lr} - ldr r3, _0804AA98 @ =gUnk_02033A90 - ldrb r0, [r3, #0x19] - cmp r0, #0 - bne _0804AA9C - strb r0, [r3, #0x18] - strb r0, [r3, #0x19] - movs r0, #0 - b _0804AAB0 - .align 2, 0 -_0804AA98: .4byte gUnk_02033A90 -_0804AA9C: - ldr r2, _0804AAB4 @ =gUnk_03001000 - movs r1, #0 - movs r0, #4 - strb r0, [r2, #4] - strb r1, [r3, #0xe] - strb r1, [r3, #0xf] - strh r1, [r3, #0x10] - bl sub_0805E5A8 - movs r0, #1 -_0804AAB0: - pop {pc} - .align 2, 0 -_0804AAB4: .4byte gUnk_03001000 - - thumb_func_start sub_0804AAB8 -sub_0804AAB8: @ 0x0804AAB8 - push {lr} - ldr r1, _0804AACC @ =gUnk_080D4120 - ldr r0, _0804AAD0 @ =gUnk_02033A90 - ldrb r0, [r0, #0xe] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0804AACC: .4byte gUnk_080D4120 -_0804AAD0: .4byte gUnk_02033A90 - - thumb_func_start sub_0804AAD4 -sub_0804AAD4: @ 0x0804AAD4 - push {r4, lr} - ldr r4, _0804AAFC @ =gUnk_02018EB0 - adds r0, r4, #0 - movs r1, #0x28 - bl sub_0801D630 - movs r0, #0 - str r0, [r4, #0x14] - bl sub_0805E60C - ldr r4, _0804AB00 @ =gUnk_02033A90 - ldrb r1, [r4, #0x17] - movs r0, #0x3d - movs r2, #0 - bl sub_080A2960 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - pop {r4, pc} - .align 2, 0 -_0804AAFC: .4byte gUnk_02018EB0 -_0804AB00: .4byte gUnk_02033A90 - - thumb_func_start sub_0804AB04 -sub_0804AB04: @ 0x0804AB04 - push {lr} - bl sub_0805E5C0 - ldr r0, _0804AB20 @ =gUnk_02033A90 - ldrh r0, [r0, #0x10] - cmp r0, #0 - beq _0804AB1E - bl sub_080AD90C - bl sub_080AD9B0 - bl sub_080AD918 -_0804AB1E: - pop {pc} - .align 2, 0 -_0804AB20: .4byte gUnk_02033A90 - - thumb_func_start sub_0804AB24 -sub_0804AB24: @ 0x0804AB24 - push {r4, r5, lr} - ldr r5, _0804AB48 @ =gUnk_03000FD0 - ldrb r1, [r5] - cmp r1, #0 - bne _0804AB46 - ldr r0, _0804AB4C @ =gUnk_03000F50 - movs r4, #0 - strh r1, [r0] - bl sub_0801E104 - ldr r0, _0804AB50 @ =gUnk_02033A90 - strb r4, [r0, #0xe] - movs r0, #6 - movs r1, #0 - bl sub_080A7138 - strb r4, [r5] -_0804AB46: - pop {r4, r5, pc} - .align 2, 0 -_0804AB48: .4byte gUnk_03000FD0 -_0804AB4C: .4byte gUnk_03000F50 -_0804AB50: .4byte gUnk_02033A90 - - thumb_func_start sub_0804AB54 -sub_0804AB54: @ 0x0804AB54 - push {lr} - ldr r1, _0804AB68 @ =gUnk_080D412C - ldr r0, _0804AB6C @ =gUnk_02033A90 - ldrb r0, [r0, #0xe] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0804AB68: .4byte gUnk_080D412C -_0804AB6C: .4byte gUnk_02033A90 - - thumb_func_start sub_0804AB70 -sub_0804AB70: @ 0x0804AB70 - push {r4, r5, lr} - movs r0, #0 - bl sub_0801DA90 - ldr r1, _0804ABF8 @ =gUnk_03000F50 - movs r2, #0 - movs r0, #0x92 - lsls r0, r0, #5 - strh r0, [r1] - ldr r0, _0804ABFC @ =0x00009E83 - strh r0, [r1, #0x14] - ldr r0, _0804AC00 @ =gUnk_03000BF0 - strh r2, [r1, #0x16] - strh r2, [r0, #0xa] - strh r2, [r1, #0x18] - strh r2, [r0, #0xc] - ldr r0, _0804AC04 @ =gUnk_02033A90 - ldrb r5, [r0, #0x17] - cmp r5, #2 - bne _0804ABA4 - ldr r0, _0804AC08 @ =gUnk_02032EC0 - adds r0, #0x20 - ldrb r0, [r0] - cmp r0, #2 - beq _0804ABA4 - movs r5, #3 -_0804ABA4: - lsls r4, r5, #1 - ldr r0, _0804AC0C @ =gUnk_080D4138 - adds r4, r4, r0 - ldrb r0, [r4] - bl sub_0801D714 - ldrb r0, [r4, #1] - bl sub_0801D7EC - ldr r0, _0804AC10 @ =gUnk_02017700 - movs r2, #0x90 - lsls r2, r2, #2 - adds r1, r0, r2 - movs r2, #0x20 - bl sub_0801D66C - ldr r2, _0804AC14 @ =gUnk_0200B644 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r2] - bl sub_0805E60C - ldr r1, _0804AC18 @ =gUnk_080D4110 - lsls r0, r5, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_0804ADDC - bl sub_0805E5B4 - ldr r1, _0804AC04 @ =gUnk_02033A90 - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - movs r0, #4 - movs r1, #8 - bl sub_08050054 - pop {r4, r5, pc} - .align 2, 0 -_0804ABF8: .4byte gUnk_03000F50 -_0804ABFC: .4byte 0x00009E83 -_0804AC00: .4byte gUnk_03000BF0 -_0804AC04: .4byte gUnk_02033A90 -_0804AC08: .4byte gUnk_02032EC0 -_0804AC0C: .4byte gUnk_080D4138 -_0804AC10: .4byte gUnk_02017700 -_0804AC14: .4byte gUnk_0200B644 -_0804AC18: .4byte gUnk_080D4110 - - thumb_func_start sub_0804AC1C -sub_0804AC1C: @ 0x0804AC1C - push {r4, lr} - bl sub_0805E5C0 - ldr r0, _0804AC98 @ =gUnk_02018EB0 - ldr r2, [r0, #0x14] - cmp r2, #0 - beq _0804AC5E - ldr r3, _0804AC9C @ =gUnk_03000BF0 - movs r1, #0xc - ldrsh r0, [r3, r1] - movs r4, #0x32 - ldrsh r1, [r2, r4] - subs r1, #0x50 - subs r0, r0, r1 - movs r4, #0x36 - ldrsh r1, [r2, r4] - subs r1, r0, r1 - cmp r1, #0 - beq _0804AC5E - ldrh r0, [r3, #0xc] - subs r0, r0, r1 - strh r0, [r3, #0xc] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0804AC52 - movs r0, #0 - strh r0, [r3, #0xc] -_0804AC52: - movs r1, #0xc - ldrsh r0, [r3, r1] - cmp r0, #0x9f - ble _0804AC5E - movs r0, #0x9f - strh r0, [r3, #0xc] -_0804AC5E: - ldr r2, _0804ACA0 @ =gUnk_03000F50 - ldr r1, _0804AC9C @ =gUnk_03000BF0 - ldrh r0, [r1, #0xa] - strh r0, [r2, #0x16] - ldrh r0, [r1, #0xc] - strh r0, [r2, #0x18] - bl sub_080AD90C - bl sub_080AD9B0 - bl sub_080AD918 - ldr r0, _0804AC98 @ =gUnk_02018EB0 - ldrb r0, [r0, #0x1b] - cmp r0, #0 - bne _0804AC86 - bl sub_0804ACA8 - cmp r0, #0 - beq _0804AC96 -_0804AC86: - ldr r1, _0804ACA4 @ =gUnk_02033A90 - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 -_0804AC96: - pop {r4, pc} - .align 2, 0 -_0804AC98: .4byte gUnk_02018EB0 -_0804AC9C: .4byte gUnk_03000BF0 -_0804ACA0: .4byte gUnk_03000F50 -_0804ACA4: .4byte gUnk_02033A90 - - thumb_func_start sub_0804ACA8 -sub_0804ACA8: @ 0x0804ACA8 - push {lr} - ldr r0, _0804ACC0 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #0x81 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804ACC4 - bl sub_0804AD18 - b _0804ACC6 - .align 2, 0 -_0804ACC0: .4byte gUnk_03000FF0 -_0804ACC4: - movs r0, #0 -_0804ACC6: - pop {pc} - - thumb_func_start sub_0804ACC8 -sub_0804ACC8: @ 0x0804ACC8 - push {lr} - ldr r0, _0804ACEC @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0804ACE8 - ldr r0, _0804ACF0 @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - adds r0, #0x5e - bl sub_0807CD04 - ldr r0, _0804ACF4 @ =gUnk_02032EDC - bl sub_0804AD6C - movs r0, #0 - bl sub_080A71F4 -_0804ACE8: - pop {pc} - .align 2, 0 -_0804ACEC: .4byte gUnk_03000FD0 -_0804ACF0: .4byte gUnk_02033A90 -_0804ACF4: .4byte gUnk_02032EDC - - thumb_func_start sub_0804ACF8 -sub_0804ACF8: @ 0x0804ACF8 - push {lr} - bl sub_0804AD18 - cmp r0, #0 - beq _0804AD12 - ldr r0, _0804AD14 @ =gUnk_03000BF0 - bl sub_0804AD6C - bl sub_0805E5A8 - movs r0, #0xf8 - bl sub_080A3268 -_0804AD12: - pop {pc} - .align 2, 0 -_0804AD14: .4byte gUnk_03000BF0 - - thumb_func_start sub_0804AD18 -sub_0804AD18: @ 0x0804AD18 - push {lr} - ldr r0, _0804AD30 @ =gUnk_02033A90 - ldrb r1, [r0, #0x17] - adds r2, r0, #0 - cmp r1, #6 - bhi _0804AD66 - lsls r0, r1, #2 - ldr r1, _0804AD34 @ =_0804AD38 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804AD30: .4byte gUnk_02033A90 -_0804AD34: .4byte _0804AD38 -_0804AD38: @ jump table - .4byte _0804AD54 @ case 0 - .4byte _0804AD54 @ case 1 - .4byte _0804AD54 @ case 2 - .4byte _0804AD66 @ case 3 - .4byte _0804AD66 @ case 4 - .4byte _0804AD66 @ case 5 - .4byte _0804AD62 @ case 6 -_0804AD54: - ldrb r0, [r2, #0x17] - adds r0, #0x5e - bl GetProgressFlag - adds r1, r0, #0 - cmp r1, #0 - bne _0804AD68 -_0804AD62: - movs r0, #0 - b _0804AD68 -_0804AD66: - movs r0, #0 -_0804AD68: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804AD6C -sub_0804AD6C: @ 0x0804AD6C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - ldr r3, _0804ADD0 @ =gUnk_030010A0 - movs r1, #0 - movs r6, #1 - strb r6, [r3, #8] - strb r1, [r3, #9] - ldr r4, _0804ADD4 @ =gUnk_02033A90 - ldr r5, _0804ADD8 @ =gUnk_080D4140 - ldrb r1, [r4, #0x16] - lsls r1, r1, #2 - adds r1, r1, r5 - ldrh r1, [r1] - ldrh r2, [r4, #0x12] - adds r1, r1, r2 - ldrh r2, [r0, #6] - subs r1, r1, r2 - movs r2, #0 - mov r8, r2 - strh r1, [r3, #0x10] - ldrb r1, [r4, #0x16] - lsls r1, r1, #1 - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r5 - ldrh r1, [r1] - ldrh r2, [r4, #0x14] - adds r1, r1, r2 - ldrh r2, [r0, #8] - subs r1, r1, r2 - strh r1, [r3, #0x12] - ldrb r1, [r4, #0x16] - lsls r1, r1, #1 - strb r1, [r3, #0xe] - strb r6, [r3, #0xf] - ldrb r1, [r0, #4] - strb r1, [r3, #0xc] - ldrb r0, [r0, #5] - strb r0, [r3, #0xd] - mov r0, r8 - strb r0, [r3, #0x14] - bl sub_080300AC - bl sub_080300C4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_0804ADD0: .4byte gUnk_030010A0 -_0804ADD4: .4byte gUnk_02033A90 -_0804ADD8: .4byte gUnk_080D4140 - - thumb_func_start sub_0804ADDC -sub_0804ADDC: @ 0x0804ADDC - push {r4, lr} - adds r4, r0, #0 - cmp r4, #0 - beq _0804ADF4 - b _0804ADEE -_0804ADE6: - adds r0, r4, #0 - adds r4, #0x10 - bl sub_0804ADF8 -_0804ADEE: - ldrb r0, [r4] - cmp r0, #0xff - bne _0804ADE6 -_0804ADF4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804ADF8 -sub_0804ADF8: @ 0x0804ADF8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4] - movs r6, #0xf - ands r6, r0 - ldrb r1, [r4, #1] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x50 - bne _0804AE1C - ldrb r1, [r4, #2] - adds r0, r6, #0 - bl sub_0805EB9C - cmp r0, #0 - beq _0804AE1C - movs r0, #0 - b _0804AEAC -_0804AE1C: - adds r0, r6, #0 - bl sub_0805E768 - adds r5, r0, #0 - cmp r5, #0 - beq _0804AEAA - strb r6, [r5, #8] - ldrb r0, [r4, #2] - strb r0, [r5, #9] - ldrb r0, [r4, #3] - strb r0, [r5, #0xa] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0804AEB0 - ldrb r1, [r4, #1] - movs r7, #0xf0 - adds r0, r7, #0 - ands r0, r1 - cmp r0, #0x10 - beq _0804AEAA - ldrb r0, [r4, #4] - strb r0, [r5, #0xb] - ldr r0, [r4, #4] - movs r1, #0xff - lsls r1, r1, #8 - ands r0, r1 - lsrs r0, r0, #8 - strb r0, [r5, #0xe] - cmp r6, #9 - beq _0804AEAA - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0804AF0C - ldr r0, [r5, #4] - cmp r0, #0 - beq _0804AEAA - ldrb r0, [r4] - adds r2, r7, #0 - ands r2, r0 - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _0804AE94 - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _0804AE88 - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - b _0804AEAA -_0804AE88: - ldr r0, _0804AEA0 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0804AEA4 -_0804AE94: - adds r1, r5, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - b _0804AEAA - .align 2, 0 -_0804AEA0: .4byte gUnk_03000BF0 -_0804AEA4: - adds r0, r5, #0 - bl sub_08016A30 -_0804AEAA: - adds r0, r5, #0 -_0804AEAC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0804AEB0 -sub_0804AEB0: @ 0x0804AEB0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldrb r0, [r6, #1] - movs r1, #0xf - adds r2, r1, #0 - ands r2, r0 - ldrb r0, [r6] - adds r4, r1, #0 - ands r4, r0 - ldr r0, [r5] - cmp r0, #0 - bne _0804AEF6 - cmp r2, #0xf - bne _0804AEE0 - ldr r0, _0804AEDC @ =gUnk_081091E4 - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_0805EA2C - b _0804AEF6 - .align 2, 0 -_0804AEDC: .4byte gUnk_081091E4 -_0804AEE0: - cmp r2, #8 - bne _0804AEEE - adds r0, r5, #0 - movs r1, #8 - bl sub_0805EA2C - b _0804AEF6 -_0804AEEE: - adds r0, r5, #0 - adds r1, r2, #0 - bl sub_0805EA2C -_0804AEF6: - adds r1, r5, #0 - adds r1, #0x78 - cmp r4, #9 - bne _0804AF00 - subs r1, #0x48 -_0804AF00: - adds r0, r6, #0 - movs r2, #0x10 - bl sub_0801D66C - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0804AF0C -sub_0804AF0C: @ 0x0804AF0C - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #1] - movs r1, #0xf0 - ands r1, r0 - cmp r1, #0x20 - beq _0804AF40 - cmp r1, #0x20 - bgt _0804AF26 - cmp r1, #0 - beq _0804AF2C - b _0804AF88 -_0804AF26: - cmp r1, #0x40 - beq _0804AF64 - b _0804AF88 -_0804AF2C: - ldr r0, _0804AF3C @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - ldrh r3, [r2, #8] - adds r1, r1, r3 - strh r1, [r4, #0x2e] - ldrh r0, [r0, #8] - b _0804AF58 - .align 2, 0 -_0804AF3C: .4byte gUnk_03000BF0 -_0804AF40: - adds r3, r4, #0 - adds r3, #0x6d - ldrb r1, [r3] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r3] - ldr r1, _0804AF60 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r3, [r2, #8] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #8] -_0804AF58: - ldrh r2, [r2, #0xa] - adds r0, r0, r2 - strh r0, [r4, #0x32] - b _0804AF88 - .align 2, 0 -_0804AF60: .4byte gUnk_03000BF0 -_0804AF64: - ldr r1, _0804AF8C @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - ldrh r3, [r2, #8] - adds r0, r0, r3 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #8] - ldrh r1, [r2, #0xa] - adds r0, r0, r1 - strh r0, [r4, #0x32] - ldr r1, [r2, #0xc] - adds r0, r4, #0 - bl sub_0807DAD0 - cmp r0, #0 - bne _0804AF88 - adds r0, r4, #0 - bl sub_0805E7BC -_0804AF88: - pop {r4, pc} - .align 2, 0 -_0804AF8C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0804AF90 -sub_0804AF90: @ 0x0804AF90 - push {lr} - ldr r0, _0804AFA8 @ =gUnk_02033A90 - ldr r1, _0804AFAC @ =0x0000085C - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0, #0x1c] - bl sub_0804AFB0 - bl sub_080A7C7C - pop {pc} - .align 2, 0 -_0804AFA8: .4byte gUnk_02033A90 -_0804AFAC: .4byte 0x0000085C - - thumb_func_start sub_0804AFB0 -sub_0804AFB0: @ 0x0804AFB0 - push {r4, lr} - ldr r1, _0804AFD4 @ =gUnk_02017654 - str r0, [r1] - movs r2, #0 - ldr r0, _0804AFD8 @ =gUnk_02034350 - adds r3, r1, #0 - adds r4, r0, #0 - adds r4, #0x6c -_0804AFC0: - lsls r0, r2, #2 - ldr r1, [r3] - adds r0, r0, r1 - ldr r0, [r0] - stm r4!, {r0} - adds r2, #1 - cmp r2, #7 - bls _0804AFC0 - pop {r4, pc} - .align 2, 0 -_0804AFD4: .4byte gUnk_02017654 -_0804AFD8: .4byte gUnk_02034350 - - thumb_func_start sub_0804AFDC -sub_0804AFDC: @ 0x0804AFDC - push {r4, lr} - movs r4, #1 - movs r0, #6 - bl sub_0804B128 - cmp r0, #0 - beq _0804AFF0 - bl _call_via_r0 - adds r4, r0, #0 -_0804AFF0: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start sub_0804AFF4 -sub_0804AFF4: @ 0x0804AFF4 - push {lr} - bl sub_080186EC - movs r0, #5 - bl sub_0804B128 - cmp r0, #0 - beq _0804B008 - bl _call_via_r0 -_0804B008: - movs r0, #7 - bl sub_0804B128 - cmp r0, #0 - beq _0804B016 - bl _call_via_r0 -_0804B016: - bl sub_0804B16C - pop {pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/code_0804AA84.s b/asm/code_0804AA84.s new file mode 100644 index 00000000..a00c6074 --- /dev/null +++ b/asm/code_0804AA84.s @@ -0,0 +1,419 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0804AA84 +sub_0804AA84: @ 0x0804AA84 + push {lr} + ldr r3, _0804AA98 @ =gUnk_02033A90 + ldrb r0, [r3, #0x19] + cmp r0, #0 + bne _0804AA9C + strb r0, [r3, #0x18] + strb r0, [r3, #0x19] + movs r0, #0 + b _0804AAB0 + .align 2, 0 +_0804AA98: .4byte gUnk_02033A90 +_0804AA9C: + ldr r2, _0804AAB4 @ =gUnk_03001000 + movs r1, #0 + movs r0, #4 + strb r0, [r2, #4] + strb r1, [r3, #0xe] + strb r1, [r3, #0xf] + strh r1, [r3, #0x10] + bl sub_0805E5A8 + movs r0, #1 +_0804AAB0: + pop {pc} + .align 2, 0 +_0804AAB4: .4byte gUnk_03001000 + + thumb_func_start sub_0804AAB8 +sub_0804AAB8: @ 0x0804AAB8 + push {lr} + ldr r1, _0804AACC @ =gUnk_080D4120 + ldr r0, _0804AAD0 @ =gUnk_02033A90 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0804AACC: .4byte gUnk_080D4120 +_0804AAD0: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AAD4 +sub_0804AAD4: @ 0x0804AAD4 + push {r4, lr} + ldr r4, _0804AAFC @ =gUnk_02018EB0 + adds r0, r4, #0 + movs r1, #0x28 + bl sub_0801D630 + movs r0, #0 + str r0, [r4, #0x14] + bl sub_0805E60C + ldr r4, _0804AB00 @ =gUnk_02033A90 + ldrb r1, [r4, #0x17] + movs r0, #0x3d + movs r2, #0 + bl sub_080A2960 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 +_0804AAFC: .4byte gUnk_02018EB0 +_0804AB00: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AB04 +sub_0804AB04: @ 0x0804AB04 + push {lr} + bl sub_0805E5C0 + ldr r0, _0804AB20 @ =gUnk_02033A90 + ldrh r0, [r0, #0x10] + cmp r0, #0 + beq _0804AB1E + bl sub_080AD90C + bl sub_080AD9B0 + bl sub_080AD918 +_0804AB1E: + pop {pc} + .align 2, 0 +_0804AB20: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AB24 +sub_0804AB24: @ 0x0804AB24 + push {r4, r5, lr} + ldr r5, _0804AB48 @ =gUnk_03000FD0 + ldrb r1, [r5] + cmp r1, #0 + bne _0804AB46 + ldr r0, _0804AB4C @ =gUnk_03000F50 + movs r4, #0 + strh r1, [r0] + bl sub_0801E104 + ldr r0, _0804AB50 @ =gUnk_02033A90 + strb r4, [r0, #0xe] + movs r0, #6 + movs r1, #0 + bl sub_080A7138 + strb r4, [r5] +_0804AB46: + pop {r4, r5, pc} + .align 2, 0 +_0804AB48: .4byte gUnk_03000FD0 +_0804AB4C: .4byte gUnk_03000F50 +_0804AB50: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AB54 +sub_0804AB54: @ 0x0804AB54 + push {lr} + ldr r1, _0804AB68 @ =gUnk_080D412C + ldr r0, _0804AB6C @ =gUnk_02033A90 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0804AB68: .4byte gUnk_080D412C +_0804AB6C: .4byte gUnk_02033A90 + + thumb_func_start sub_0804AB70 +sub_0804AB70: @ 0x0804AB70 + push {r4, r5, lr} + movs r0, #0 + bl sub_0801DA90 + ldr r1, _0804ABF8 @ =gUnk_03000F50 + movs r2, #0 + movs r0, #0x92 + lsls r0, r0, #5 + strh r0, [r1] + ldr r0, _0804ABFC @ =0x00009E83 + strh r0, [r1, #0x14] + ldr r0, _0804AC00 @ =gUnk_03000BF0 + strh r2, [r1, #0x16] + strh r2, [r0, #0xa] + strh r2, [r1, #0x18] + strh r2, [r0, #0xc] + ldr r0, _0804AC04 @ =gUnk_02033A90 + ldrb r5, [r0, #0x17] + cmp r5, #2 + bne _0804ABA4 + ldr r0, _0804AC08 @ =gUnk_02032EC0 + adds r0, #0x20 + ldrb r0, [r0] + cmp r0, #2 + beq _0804ABA4 + movs r5, #3 +_0804ABA4: + lsls r4, r5, #1 + ldr r0, _0804AC0C @ =gUnk_080D4138 + adds r4, r4, r0 + ldrb r0, [r4] + bl sub_0801D714 + ldrb r0, [r4, #1] + bl sub_0801D7EC + ldr r0, _0804AC10 @ =gUnk_02017700 + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _0804AC14 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2] + bl sub_0805E60C + ldr r1, _0804AC18 @ =gUnk_080D4110 + lsls r0, r5, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl LoadRoomEntityList + bl sub_0805E5B4 + ldr r1, _0804AC04 @ =gUnk_02033A90 + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, r5, pc} + .align 2, 0 +_0804ABF8: .4byte gUnk_03000F50 +_0804ABFC: .4byte 0x00009E83 +_0804AC00: .4byte gUnk_03000BF0 +_0804AC04: .4byte gUnk_02033A90 +_0804AC08: .4byte gUnk_02032EC0 +_0804AC0C: .4byte gUnk_080D4138 +_0804AC10: .4byte gUnk_02017700 +_0804AC14: .4byte gUnk_0200B644 +_0804AC18: .4byte gUnk_080D4110 + + thumb_func_start sub_0804AC1C +sub_0804AC1C: @ 0x0804AC1C + push {r4, lr} + bl sub_0805E5C0 + ldr r0, _0804AC98 @ =gUnk_02018EB0 + ldr r2, [r0, #0x14] + cmp r2, #0 + beq _0804AC5E + ldr r3, _0804AC9C @ =gUnk_03000BF0 + movs r1, #0xc + ldrsh r0, [r3, r1] + movs r4, #0x32 + ldrsh r1, [r2, r4] + subs r1, #0x50 + subs r0, r0, r1 + movs r4, #0x36 + ldrsh r1, [r2, r4] + subs r1, r0, r1 + cmp r1, #0 + beq _0804AC5E + ldrh r0, [r3, #0xc] + subs r0, r0, r1 + strh r0, [r3, #0xc] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0804AC52 + movs r0, #0 + strh r0, [r3, #0xc] +_0804AC52: + movs r1, #0xc + ldrsh r0, [r3, r1] + cmp r0, #0x9f + ble _0804AC5E + movs r0, #0x9f + strh r0, [r3, #0xc] +_0804AC5E: + ldr r2, _0804ACA0 @ =gUnk_03000F50 + ldr r1, _0804AC9C @ =gUnk_03000BF0 + ldrh r0, [r1, #0xa] + strh r0, [r2, #0x16] + ldrh r0, [r1, #0xc] + strh r0, [r2, #0x18] + bl sub_080AD90C + bl sub_080AD9B0 + bl sub_080AD918 + ldr r0, _0804AC98 @ =gUnk_02018EB0 + ldrb r0, [r0, #0x1b] + cmp r0, #0 + bne _0804AC86 + bl sub_0804ACA8 + cmp r0, #0 + beq _0804AC96 +_0804AC86: + ldr r1, _0804ACA4 @ =gUnk_02033A90 + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 +_0804AC96: + pop {r4, pc} + .align 2, 0 +_0804AC98: .4byte gUnk_02018EB0 +_0804AC9C: .4byte gUnk_03000BF0 +_0804ACA0: .4byte gUnk_03000F50 +_0804ACA4: .4byte gUnk_02033A90 + + thumb_func_start sub_0804ACA8 +sub_0804ACA8: @ 0x0804ACA8 + push {lr} + ldr r0, _0804ACC0 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0x81 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804ACC4 + bl sub_0804AD18 + b _0804ACC6 + .align 2, 0 +_0804ACC0: .4byte gUnk_03000FF0 +_0804ACC4: + movs r0, #0 +_0804ACC6: + pop {pc} + + thumb_func_start sub_0804ACC8 +sub_0804ACC8: @ 0x0804ACC8 + push {lr} + ldr r0, _0804ACEC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0804ACE8 + ldr r0, _0804ACF0 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + adds r0, #0x5e + bl sub_0807CD04 + ldr r0, _0804ACF4 @ =gUnk_02032EDC + bl sub_0804AD6C + movs r0, #0 + bl sub_080A71F4 +_0804ACE8: + pop {pc} + .align 2, 0 +_0804ACEC: .4byte gUnk_03000FD0 +_0804ACF0: .4byte gUnk_02033A90 +_0804ACF4: .4byte gUnk_02032EDC + + thumb_func_start sub_0804ACF8 +sub_0804ACF8: @ 0x0804ACF8 + push {lr} + bl sub_0804AD18 + cmp r0, #0 + beq _0804AD12 + ldr r0, _0804AD14 @ =gUnk_03000BF0 + bl sub_0804AD6C + bl sub_0805E5A8 + movs r0, #0xf8 + bl sub_080A3268 +_0804AD12: + pop {pc} + .align 2, 0 +_0804AD14: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804AD18 +sub_0804AD18: @ 0x0804AD18 + push {lr} + ldr r0, _0804AD30 @ =gUnk_02033A90 + ldrb r1, [r0, #0x17] + adds r2, r0, #0 + cmp r1, #6 + bhi _0804AD66 + lsls r0, r1, #2 + ldr r1, _0804AD34 @ =_0804AD38 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804AD30: .4byte gUnk_02033A90 +_0804AD34: .4byte _0804AD38 +_0804AD38: @ jump table + .4byte _0804AD54 @ case 0 + .4byte _0804AD54 @ case 1 + .4byte _0804AD54 @ case 2 + .4byte _0804AD66 @ case 3 + .4byte _0804AD66 @ case 4 + .4byte _0804AD66 @ case 5 + .4byte _0804AD62 @ case 6 +_0804AD54: + ldrb r0, [r2, #0x17] + adds r0, #0x5e + bl GetProgressFlag + adds r1, r0, #0 + cmp r1, #0 + bne _0804AD68 +_0804AD62: + movs r0, #0 + b _0804AD68 +_0804AD66: + movs r0, #0 +_0804AD68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804AD6C +sub_0804AD6C: @ 0x0804AD6C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + ldr r3, _0804ADD0 @ =gUnk_030010A0 + movs r1, #0 + movs r6, #1 + strb r6, [r3, #8] + strb r1, [r3, #9] + ldr r4, _0804ADD4 @ =gUnk_02033A90 + ldr r5, _0804ADD8 @ =gUnk_080D4140 + ldrb r1, [r4, #0x16] + lsls r1, r1, #2 + adds r1, r1, r5 + ldrh r1, [r1] + ldrh r2, [r4, #0x12] + adds r1, r1, r2 + ldrh r2, [r0, #6] + subs r1, r1, r2 + movs r2, #0 + mov r8, r2 + strh r1, [r3, #0x10] + ldrb r1, [r4, #0x16] + lsls r1, r1, #1 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r5 + ldrh r1, [r1] + ldrh r2, [r4, #0x14] + adds r1, r1, r2 + ldrh r2, [r0, #8] + subs r1, r1, r2 + strh r1, [r3, #0x12] + ldrb r1, [r4, #0x16] + lsls r1, r1, #1 + strb r1, [r3, #0xe] + strb r6, [r3, #0xf] + ldrb r1, [r0, #4] + strb r1, [r3, #0xc] + ldrb r0, [r0, #5] + strb r0, [r3, #0xd] + mov r0, r8 + strb r0, [r3, #0x14] + bl sub_080300AC + bl sub_080300C4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0804ADD0: .4byte gUnk_030010A0 +_0804ADD4: .4byte gUnk_02033A90 +_0804ADD8: .4byte gUnk_080D4140 diff --git a/asm/code_0804AEB0.s b/asm/code_0804AEB0.s new file mode 100644 index 00000000..6bcf21a2 --- /dev/null +++ b/asm/code_0804AEB0.s @@ -0,0 +1,198 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0804AEB0 +sub_0804AEB0: @ 0x0804AEB0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldrb r0, [r6, #1] + movs r1, #0xf + adds r2, r1, #0 + ands r2, r0 + ldrb r0, [r6] + adds r4, r1, #0 + ands r4, r0 + ldr r0, [r5] + cmp r0, #0 + bne _0804AEF6 + cmp r2, #0xf + bne _0804AEE0 + ldr r0, _0804AEDC @ =gUnk_081091E4 + adds r0, r4, r0 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_0805EA2C + b _0804AEF6 + .align 2, 0 +_0804AEDC: .4byte gUnk_081091E4 +_0804AEE0: + cmp r2, #8 + bne _0804AEEE + adds r0, r5, #0 + movs r1, #8 + bl sub_0805EA2C + b _0804AEF6 +_0804AEEE: + adds r0, r5, #0 + adds r1, r2, #0 + bl sub_0805EA2C +_0804AEF6: + adds r1, r5, #0 + adds r1, #0x78 + cmp r4, #9 + bne _0804AF00 + subs r1, #0x48 +_0804AF00: + adds r0, r6, #0 + movs r2, #0x10 + bl sub_0801D66C + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0804AF0C +sub_0804AF0C: @ 0x0804AF0C + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #1] + movs r1, #0xf0 + ands r1, r0 + cmp r1, #0x20 + beq _0804AF40 + cmp r1, #0x20 + bgt _0804AF26 + cmp r1, #0 + beq _0804AF2C + b _0804AF88 +_0804AF26: + cmp r1, #0x40 + beq _0804AF64 + b _0804AF88 +_0804AF2C: + ldr r0, _0804AF3C @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r3, [r2, #8] + adds r1, r1, r3 + strh r1, [r4, #0x2e] + ldrh r0, [r0, #8] + b _0804AF58 + .align 2, 0 +_0804AF3C: .4byte gUnk_03000BF0 +_0804AF40: + adds r3, r4, #0 + adds r3, #0x6d + ldrb r1, [r3] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r3] + ldr r1, _0804AF60 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r2, #8] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] +_0804AF58: + ldrh r2, [r2, #0xa] + adds r0, r0, r2 + strh r0, [r4, #0x32] + b _0804AF88 + .align 2, 0 +_0804AF60: .4byte gUnk_03000BF0 +_0804AF64: + ldr r1, _0804AF8C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + ldrh r3, [r2, #8] + adds r0, r0, r3 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #8] + ldrh r1, [r2, #0xa] + adds r0, r0, r1 + strh r0, [r4, #0x32] + ldr r1, [r2, #0xc] + adds r0, r4, #0 + bl sub_0807DAD0 + cmp r0, #0 + bne _0804AF88 + adds r0, r4, #0 + bl sub_0805E7BC +_0804AF88: + pop {r4, pc} + .align 2, 0 +_0804AF8C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804AF90 +sub_0804AF90: @ 0x0804AF90 + push {lr} + ldr r0, _0804AFA8 @ =gUnk_02033A90 + ldr r1, _0804AFAC @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0, #0x1c] + bl sub_0804AFB0 + bl sub_080A7C7C + pop {pc} + .align 2, 0 +_0804AFA8: .4byte gUnk_02033A90 +_0804AFAC: .4byte 0x0000085C + + thumb_func_start sub_0804AFB0 +sub_0804AFB0: @ 0x0804AFB0 + push {r4, lr} + ldr r1, _0804AFD4 @ =gUnk_02017654 + str r0, [r1] + movs r2, #0 + ldr r0, _0804AFD8 @ =gUnk_02034350 + adds r3, r1, #0 + adds r4, r0, #0 + adds r4, #0x6c +_0804AFC0: + lsls r0, r2, #2 + ldr r1, [r3] + adds r0, r0, r1 + ldr r0, [r0] + stm r4!, {r0} + adds r2, #1 + cmp r2, #7 + bls _0804AFC0 + pop {r4, pc} + .align 2, 0 +_0804AFD4: .4byte gUnk_02017654 +_0804AFD8: .4byte gUnk_02034350 + + thumb_func_start sub_0804AFDC +sub_0804AFDC: @ 0x0804AFDC + push {r4, lr} + movs r4, #1 + movs r0, #6 + bl sub_0804B128 + cmp r0, #0 + beq _0804AFF0 + bl _call_via_r0 + adds r4, r0, #0 +_0804AFF0: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_0804AFF4 +sub_0804AFF4: @ 0x0804AFF4 + push {lr} + bl sub_080186EC + movs r0, #5 + bl sub_0804B128 + cmp r0, #0 + beq _0804B008 + bl _call_via_r0 +_0804B008: + movs r0, #7 + bl sub_0804B128 + cmp r0, #0 + beq _0804B016 + bl _call_via_r0 +_0804B016: + bl sub_0804B16C + pop {pc} \ No newline at end of file diff --git a/asm/code_0804B058.s b/asm/code_0804B058.s index 4d0db031..5e35cf51 100644 --- a/asm/code_0804B058.s +++ b/asm/code_0804B058.s @@ -25,7 +25,7 @@ _0804B068: cmp r0, #0 beq _0804B0A4 adds r0, r4, #0 - bl sub_0804ADF8 + bl CreateEntity adds r2, r0, #0 cmp r2, #0 beq _0804B0A4 @@ -40,7 +40,7 @@ _0804B068: b _0804B0A4 _0804B09E: adds r0, r4, #0 - bl sub_0804ADF8 + bl CreateEntity _0804B0A4: adds r5, #1 adds r4, #0x10 @@ -55,7 +55,7 @@ sub_0804B0B0: @ 0x0804B0B0 push {lr} movs r2, #1 bl sub_0804B0FC - bl sub_0804ADDC + bl LoadRoomEntityList pop {pc} .align 2, 0 @@ -817,7 +817,7 @@ sub_0804B580: @ 0x0804B580 cmp r0, #0x40 ble _0804B59E ldr r0, _0804B5A8 @ =gUnk_080D6138 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B59E: pop {pc} .align 2, 0 @@ -846,7 +846,7 @@ sub_0804B5BC: @ 0x0804B5BC cmp r0, #0x40 bls _0804B5CC ldr r0, _0804B5D4 @ =gUnk_080D6210 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B5CC: pop {pc} .align 2, 0 @@ -866,7 +866,7 @@ sub_0804B5DC: @ 0x0804B5DC cmp r0, #0 beq _0804B5EE ldr r0, _0804B618 @ =gUnk_080D6340 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B5EE: movs r6, #0 ldr r4, _0804B61C @ =gUnk_080D64F8 @@ -915,56 +915,56 @@ _0804B648: cmp r0, #0 beq _0804B658 ldr r0, _0804B6CC @ =gUnk_080D6360 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B658: movs r0, #0x20 bl sub_0807CBD0 cmp r0, #0 beq _0804B668 ldr r0, _0804B6D0 @ =gUnk_080D6380 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B668: movs r0, #0x21 bl sub_0807CBD0 cmp r0, #0 beq _0804B678 ldr r0, _0804B6D4 @ =gUnk_080D63A0 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B678: movs r0, #0x22 bl sub_0807CBD0 cmp r0, #0 beq _0804B688 ldr r0, _0804B6D8 @ =gUnk_080D63C0 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B688: movs r0, #0x23 bl sub_0807CBD0 cmp r0, #0 beq _0804B698 ldr r0, _0804B6DC @ =gUnk_080D63E0 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B698: movs r0, #0x24 bl sub_0807CBD0 cmp r0, #0 beq _0804B6A8 ldr r0, _0804B6E0 @ =gUnk_080D6400 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B6A8: movs r0, #0x25 bl sub_0807CBD0 cmp r0, #0 beq _0804B6B8 ldr r0, _0804B6E4 @ =gUnk_080D6420 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B6B8: movs r0, #0x26 bl sub_0807CBD0 cmp r0, #0 beq _0804B6C8 ldr r0, _0804B6E8 @ =gUnk_080D6440 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B6C8: pop {r4, r5, r6, pc} .align 2, 0 @@ -990,23 +990,23 @@ sub_0804B6F0: @ 0x0804B6F0 cmp r0, #0 bne _0804B71C ldr r0, _0804B714 @ =gUnk_080D6578 - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #0x73 bl sub_0807CBD0 cmp r0, #0 bne _0804B722 ldr r0, _0804B718 @ =gUnk_080D6638 - bl sub_0804ADDC + bl LoadRoomEntityList b _0804B728 .align 2, 0 _0804B714: .4byte gUnk_080D6578 _0804B718: .4byte gUnk_080D6638 _0804B71C: ldr r0, _0804B72C @ =gUnk_080D6558 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B722: ldr r0, _0804B730 @ =gUnk_080D6618 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B728: pop {pc} .align 2, 0 @@ -1026,7 +1026,7 @@ sub_0804B738: @ 0x0804B738 cmp r0, #4 bls _0804B748 ldr r0, _0804B774 @ =gUnk_080D6714 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B748: movs r0, #0x46 bl sub_0807CA84 @@ -1041,7 +1041,7 @@ _0804B748: cmp r0, #0 beq _0804B77C ldr r0, _0804B778 @ =gUnk_080D6734 - bl sub_0804ADDC + bl LoadRoomEntityList b _0804B782 .align 2, 0 _0804B770: .4byte gUnk_02002A40 @@ -1049,7 +1049,7 @@ _0804B774: .4byte gUnk_080D6714 _0804B778: .4byte gUnk_080D6734 _0804B77C: ldr r0, _0804B784 @ =gUnk_080D66F4 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B782: pop {pc} .align 2, 0 @@ -1068,7 +1068,7 @@ sub_0804B78C: @ 0x0804B78C cmp r0, #7 bls _0804B79C ldr r0, _0804B7A4 @ =gUnk_080D6924 - bl sub_0804ADDC + bl LoadRoomEntityList _0804B79C: pop {pc} .align 2, 0 @@ -1268,16123 +1268,3 @@ _0804B930: .4byte gUnk_08010A5C sub_0804B934: @ 0x0804B934 movs r0, #1 bx lr - - thumb_func_start sub_0804B938 -sub_0804B938: @ 0x0804B938 - push {lr} - ldr r0, _0804B968 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #3 - bls _0804B9F2 - movs r0, #0x2b - bl GetProgressFlag - cmp r0, #0 - beq _0804B970 - movs r0, #0x2f - bl GetProgressFlag - cmp r0, #0 - bne _0804B984 - movs r0, #0x30 - bl GetProgressFlag - cmp r0, #0 - bne _0804B9BC - ldr r0, _0804B96C @ =gUnk_080D6C64 - bl sub_0804ADDC - b _0804B9F2 - .align 2, 0 -_0804B968: .4byte gUnk_02002A40 -_0804B96C: .4byte gUnk_080D6C64 -_0804B970: - movs r0, #0x2c - bl GetProgressFlag - cmp r0, #0 - beq _0804B9A8 - movs r0, #0x2e - bl GetProgressFlag - cmp r0, #0 - beq _0804B990 -_0804B984: - ldr r0, _0804B98C @ =gUnk_080D6D04 - bl sub_0804ADDC - b _0804B9F2 - .align 2, 0 -_0804B98C: .4byte gUnk_080D6D04 -_0804B990: - movs r0, #0x30 - bl GetProgressFlag - cmp r0, #0 - bne _0804B9D2 - ldr r0, _0804B9A4 @ =gUnk_080D6C94 - bl sub_0804ADDC - b _0804B9F2 - .align 2, 0 -_0804B9A4: .4byte gUnk_080D6C94 -_0804B9A8: - movs r0, #0x2d - bl GetProgressFlag - cmp r0, #0 - beq _0804B9EC - movs r0, #0x2e - bl GetProgressFlag - cmp r0, #0 - beq _0804B9C8 -_0804B9BC: - ldr r0, _0804B9C4 @ =gUnk_080D6CE4 - bl sub_0804ADDC - b _0804B9F2 - .align 2, 0 -_0804B9C4: .4byte gUnk_080D6CE4 -_0804B9C8: - movs r0, #0x2f - bl GetProgressFlag - cmp r0, #0 - beq _0804B9E0 -_0804B9D2: - ldr r0, _0804B9DC @ =gUnk_080D6CC4 - bl sub_0804ADDC - b _0804B9F2 - .align 2, 0 -_0804B9DC: .4byte gUnk_080D6CC4 -_0804B9E0: - ldr r0, _0804B9E8 @ =gUnk_080D6C34 - bl sub_0804ADDC - b _0804B9F2 - .align 2, 0 -_0804B9E8: .4byte gUnk_080D6C34 -_0804B9EC: - ldr r0, _0804B9F4 @ =gUnk_080D6BF4 - bl sub_0804ADDC -_0804B9F2: - pop {pc} - .align 2, 0 -_0804B9F4: .4byte gUnk_080D6BF4 - - thumb_func_start sub_0804B9F8 -sub_0804B9F8: @ 0x0804B9F8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_176 -nullsub_176: @ 0x0804B9FC - bx lr - .align 2, 0 - - thumb_func_start sub_0804BA00 -sub_0804BA00: @ 0x0804BA00 - movs r0, #1 - bx lr - - thumb_func_start nullsub_177 -nullsub_177: @ 0x0804BA04 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BA08 -sub_0804BA08: @ 0x0804BA08 - movs r0, #1 - bx lr - - thumb_func_start sub_0804BA0C -sub_0804BA0C: @ 0x0804BA0C - push {lr} - ldr r0, _0804BA34 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #7 - bhi _0804BA1C - ldr r0, _0804BA38 @ =gUnk_080D7038 - bl sub_0804ADDC -_0804BA1C: - ldr r0, _0804BA3C @ =gUnk_02034350 - ldrb r0, [r0] - cmp r0, #0 - bne _0804BA32 - movs r2, #0xb2 - lsls r2, r2, #2 - movs r0, #2 - movs r1, #0 - movs r3, #0xa8 - bl sub_08052CA4 -_0804BA32: - pop {pc} - .align 2, 0 -_0804BA34: .4byte gUnk_02002A40 -_0804BA38: .4byte gUnk_080D7038 -_0804BA3C: .4byte gUnk_02034350 - - thumb_func_start sub_0804BA40 -sub_0804BA40: @ 0x0804BA40 - movs r0, #1 - bx lr - - thumb_func_start sub_0804BA44 -sub_0804BA44: @ 0x0804BA44 - push {r4, lr} - ldr r4, _0804BA7C @ =gUnk_02002A40 - ldrb r0, [r4, #8] - cmp r0, #6 - bne _0804BA54 - ldr r0, _0804BA80 @ =gUnk_080D7140 - bl sub_0804ADDC -_0804BA54: - ldrb r0, [r4, #8] - cmp r0, #7 - bne _0804BA60 - ldr r0, _0804BA84 @ =gUnk_080D7170 - bl sub_0804ADDC -_0804BA60: - ldrb r0, [r4, #8] - cmp r0, #7 - bls _0804BA72 - ldr r0, _0804BA88 @ =gUnk_080D71A0 - bl sub_0804ADDC - ldrb r0, [r4, #8] - cmp r0, #7 - bhi _0804BA90 -_0804BA72: - ldr r0, _0804BA8C @ =gUnk_080D71D0 - bl sub_0804ADDC - b _0804BA96 - .align 2, 0 -_0804BA7C: .4byte gUnk_02002A40 -_0804BA80: .4byte gUnk_080D7140 -_0804BA84: .4byte gUnk_080D7170 -_0804BA88: .4byte gUnk_080D71A0 -_0804BA8C: .4byte gUnk_080D71D0 -_0804BA90: - ldr r0, _0804BA98 @ =gUnk_080D71F0 - bl sub_0804ADDC -_0804BA96: - pop {r4, pc} - .align 2, 0 -_0804BA98: .4byte gUnk_080D71F0 - - thumb_func_start sub_0804BA9C -sub_0804BA9C: @ 0x0804BA9C - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804BAB2 - ldr r0, _0804BAB8 @ =gUnk_02034350 - ldr r1, _0804BABC @ =gUnk_080D7348 - str r1, [r0, #0x6c] - movs r1, #0 - str r1, [r0, #0x74] -_0804BAB2: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804BAB8: .4byte gUnk_02034350 -_0804BABC: .4byte gUnk_080D7348 - - thumb_func_start sub_0804BAC0 -sub_0804BAC0: @ 0x0804BAC0 - push {lr} - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - bne _0804BAD2 - ldr r0, _0804BAE8 @ =gUnk_080D7328 - bl sub_0804ADDC -_0804BAD2: - movs r0, #0x64 - bl GetProgressFlag - cmp r0, #0 - beq _0804BAF4 - ldr r0, _0804BAEC @ =gUnk_02033A90 - ldr r1, _0804BAF0 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1b - str r1, [r0] - b _0804BB0C - .align 2, 0 -_0804BAE8: .4byte gUnk_080D7328 -_0804BAEC: .4byte gUnk_02033A90 -_0804BAF0: .4byte 0x00000864 -_0804BAF4: - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804BB0C - ldr r0, _0804BB10 @ =gUnk_02033A90 - ldr r2, _0804BB14 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804BB0C: - pop {pc} - .align 2, 0 -_0804BB10: .4byte gUnk_02033A90 -_0804BB14: .4byte 0x00000864 - - thumb_func_start sub_0804BB18 -sub_0804BB18: @ 0x0804BB18 - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804BB2E - ldr r0, _0804BB34 @ =gUnk_02034350 - ldr r1, _0804BB38 @ =gUnk_080D7410 - str r1, [r0, #0x6c] - movs r1, #0 - str r1, [r0, #0x74] -_0804BB2E: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804BB34: .4byte gUnk_02034350 -_0804BB38: .4byte gUnk_080D7410 - - thumb_func_start sub_0804BB3C -sub_0804BB3C: @ 0x0804BB3C - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - bne _0804BB7C - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - bne _0804BB58 - ldr r0, _0804BB8C @ =gUnk_080D73B0 - bl sub_0804ADDC -_0804BB58: - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _0804BB72 - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - beq _0804BB72 - ldr r0, _0804BB90 @ =gUnk_080D73E0 - bl sub_0804ADDC -_0804BB72: - movs r0, #0x64 - bl GetProgressFlag - cmp r0, #0 - beq _0804BB8A -_0804BB7C: - ldr r0, _0804BB94 @ =gUnk_02033A90 - ldr r2, _0804BB98 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804BB8A: - pop {pc} - .align 2, 0 -_0804BB8C: .4byte gUnk_080D73B0 -_0804BB90: .4byte gUnk_080D73E0 -_0804BB94: .4byte gUnk_02033A90 -_0804BB98: .4byte 0x00000864 - - thumb_func_start sub_0804BB9C -sub_0804BB9C: @ 0x0804BB9C - movs r0, #1 - bx lr - - thumb_func_start sub_0804BBA0 -sub_0804BBA0: @ 0x0804BBA0 - push {lr} - movs r0, #0x64 - bl GetProgressFlag - cmp r0, #0 - beq _0804BBBA - ldr r0, _0804BBDC @ =gUnk_02033A90 - ldr r2, _0804BBE0 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804BBBA: - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804BBE8 - ldr r0, _0804BBE4 @ =gUnk_080D7618 - bl sub_0804ADDC - ldr r0, _0804BBDC @ =gUnk_02033A90 - ldr r2, _0804BBE0 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - b _0804BC2E - .align 2, 0 -_0804BBDC: .4byte gUnk_02033A90 -_0804BBE0: .4byte 0x00000864 -_0804BBE4: .4byte gUnk_080D7618 -_0804BBE8: - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - bne _0804BC10 - ldr r0, _0804BC04 @ =gUnk_080D74C8 - bl sub_0804ADDC - ldr r0, _0804BC08 @ =gUnk_02033A90 - ldr r1, _0804BC0C @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1b - str r1, [r0] - b _0804BC2E - .align 2, 0 -_0804BC04: .4byte gUnk_080D74C8 -_0804BC08: .4byte gUnk_02033A90 -_0804BC0C: .4byte 0x00000864 -_0804BC10: - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _0804BC28 - ldr r0, _0804BC24 @ =gUnk_080D7588 - bl sub_0804ADDC - b _0804BC2E - .align 2, 0 -_0804BC24: .4byte gUnk_080D7588 -_0804BC28: - ldr r0, _0804BC30 @ =gUnk_080D75D8 - bl sub_0804ADDC -_0804BC2E: - pop {pc} - .align 2, 0 -_0804BC30: .4byte gUnk_080D75D8 - - thumb_func_start sub_0804BC34 -sub_0804BC34: @ 0x0804BC34 - movs r0, #1 - bx lr - - thumb_func_start sub_0804BC38 -sub_0804BC38: @ 0x0804BC38 - push {lr} - movs r0, #0x9c - bl sub_0807CBD0 - cmp r0, #0 - beq _0804BC4A - ldr r0, _0804BC4C @ =gUnk_080D7690 - bl sub_0804ADDC -_0804BC4A: - pop {pc} - .align 2, 0 -_0804BC4C: .4byte gUnk_080D7690 - - thumb_func_start sub_0804BC50 -sub_0804BC50: @ 0x0804BC50 - push {lr} - movs r0, #0x9f - bl sub_0807CBD0 - cmp r0, #0 - bne _0804BC68 - ldr r1, _0804BC6C @ =gUnk_030010A0 - movs r0, #5 - strb r0, [r1, #0xf] - movs r0, #0x1c - bl sub_0807CD80 -_0804BC68: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804BC6C: .4byte gUnk_030010A0 - - thumb_func_start sub_0804BC70 -sub_0804BC70: @ 0x0804BC70 - push {lr} - movs r0, #0x9f - bl sub_0807CBD0 - cmp r0, #0 - bne _0804BCA0 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - ldr r2, _0804BCB0 @ =gLinkEntity - ldr r1, _0804BCB4 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0xb0 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x40 - strh r0, [r2, #0x32] - ldr r2, _0804BCB8 @ =gUnk_08009E88 - movs r0, #0 - movs r1, #6 - bl sub_080751E8 -_0804BCA0: - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - bne _0804BCBC - bl sub_08052878 - b _0804BCD0 - .align 2, 0 -_0804BCB0: .4byte gLinkEntity -_0804BCB4: .4byte gUnk_03000BF0 -_0804BCB8: .4byte gUnk_08009E88 -_0804BCBC: - movs r0, #0x64 - bl GetProgressFlag - cmp r0, #0 - beq _0804BCD0 - ldr r0, _0804BCD4 @ =gUnk_02033A90 - ldr r1, _0804BCD8 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1b - str r1, [r0] -_0804BCD0: - pop {pc} - .align 2, 0 -_0804BCD4: .4byte gUnk_02033A90 -_0804BCD8: .4byte 0x00000864 - - thumb_func_start sub_0804BCDC -sub_0804BCDC: @ 0x0804BCDC - push {lr} - ldr r0, _0804BCE8 @ =gUnk_0813AB80 - movs r1, #4 - bl sub_0808091C - pop {pc} - .align 2, 0 -_0804BCE8: .4byte gUnk_0813AB80 - - thumb_func_start sub_0804BCEC -sub_0804BCEC: @ 0x0804BCEC - movs r0, #1 - bx lr - - thumb_func_start nullsub_178 -nullsub_178: @ 0x0804BCF0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BCF4 -sub_0804BCF4: @ 0x0804BCF4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_179 -nullsub_179: @ 0x0804BCF8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BCFC -sub_0804BCFC: @ 0x0804BCFC - movs r0, #1 - bx lr - - thumb_func_start nullsub_180 -nullsub_180: @ 0x0804BD00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD04 -sub_0804BD04: @ 0x0804BD04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_181 -nullsub_181: @ 0x0804BD08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD0C -sub_0804BD0C: @ 0x0804BD0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_182 -nullsub_182: @ 0x0804BD10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD14 -sub_0804BD14: @ 0x0804BD14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_183 -nullsub_183: @ 0x0804BD18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD1C -sub_0804BD1C: @ 0x0804BD1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_184 -nullsub_184: @ 0x0804BD20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD24 -sub_0804BD24: @ 0x0804BD24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_185 -nullsub_185: @ 0x0804BD28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD2C -sub_0804BD2C: @ 0x0804BD2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_186 -nullsub_186: @ 0x0804BD30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD34 -sub_0804BD34: @ 0x0804BD34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_187 -nullsub_187: @ 0x0804BD38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD3C -sub_0804BD3C: @ 0x0804BD3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_188 -nullsub_188: @ 0x0804BD40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD44 -sub_0804BD44: @ 0x0804BD44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_189 -nullsub_189: @ 0x0804BD48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BD4C -sub_0804BD4C: @ 0x0804BD4C - movs r0, #1 - bx lr - - thumb_func_start sub_0804BD50 -sub_0804BD50: @ 0x0804BD50 - push {r4, lr} - movs r0, #6 - bl sub_0807CA84 - cmp r0, #0 - beq _0804BD94 - ldr r4, _0804BD98 @ =0x00004072 - ldr r1, _0804BD9C @ =0x0000014D - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - movs r1, #0x86 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - adds r4, #0x1e - movs r1, #0xa6 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - movs r1, #0xc6 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r0, _0804BDA0 @ =gUnk_080D7D34 - bl sub_0804ADDC -_0804BD94: - pop {r4, pc} - .align 2, 0 -_0804BD98: .4byte 0x00004072 -_0804BD9C: .4byte 0x0000014D -_0804BDA0: .4byte gUnk_080D7D34 - - thumb_func_start sub_0804BDA4 -sub_0804BDA4: @ 0x0804BDA4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_190 -nullsub_190: @ 0x0804BDA8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDAC -sub_0804BDAC: @ 0x0804BDAC - movs r0, #1 - bx lr - - thumb_func_start nullsub_191 -nullsub_191: @ 0x0804BDB0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDB4 -sub_0804BDB4: @ 0x0804BDB4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_192 -nullsub_192: @ 0x0804BDB8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDBC -sub_0804BDBC: @ 0x0804BDBC - movs r0, #1 - bx lr - - thumb_func_start nullsub_193 -nullsub_193: @ 0x0804BDC0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDC4 -sub_0804BDC4: @ 0x0804BDC4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_194 -nullsub_194: @ 0x0804BDC8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BDCC -sub_0804BDCC: @ 0x0804BDCC - movs r0, #1 - bx lr - - thumb_func_start sub_0804BDD0 -sub_0804BDD0: @ 0x0804BDD0 - push {lr} - movs r0, #3 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804BDE8 - ldr r0, _0804BDE4 @ =gUnk_080D827C - bl sub_0804ADDC - b _0804BE00 - .align 2, 0 -_0804BDE4: .4byte gUnk_080D827C -_0804BDE8: - bl sub_0805BC4C - movs r0, #0x76 - movs r1, #0x82 - movs r2, #2 - bl sub_0807B314 - movs r0, #0x76 - movs r1, #0x8c - movs r2, #2 - bl sub_0807B314 -_0804BE00: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804BE04 -sub_0804BE04: @ 0x0804BE04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_28 -nullsub_28: @ 0x0804BE08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE0C -sub_0804BE0C: @ 0x0804BE0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_29 -nullsub_29: @ 0x0804BE10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE14 -sub_0804BE14: @ 0x0804BE14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_30 -nullsub_30: @ 0x0804BE18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE1C -sub_0804BE1C: @ 0x0804BE1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_31 -nullsub_31: @ 0x0804BE20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE24 -sub_0804BE24: @ 0x0804BE24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_32 -nullsub_32: @ 0x0804BE28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE2C -sub_0804BE2C: @ 0x0804BE2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_33 -nullsub_33: @ 0x0804BE30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE34 -sub_0804BE34: @ 0x0804BE34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_34 -nullsub_34: @ 0x0804BE38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE3C -sub_0804BE3C: @ 0x0804BE3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_35 -nullsub_35: @ 0x0804BE40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE44 -sub_0804BE44: @ 0x0804BE44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_36 -nullsub_36: @ 0x0804BE48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804BE4C -sub_0804BE4C: @ 0x0804BE4C - movs r0, #1 - bx lr - - thumb_func_start sub_0804BE50 -sub_0804BE50: @ 0x0804BE50 - push {lr} - movs r0, #0x68 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804BE62 - movs r0, #0x68 - bl sub_0807CCB4 -_0804BE62: - movs r0, #0x2f - bl sub_0801E7F4 - cmp r0, #0 - beq _0804BE78 - ldr r0, _0804BE74 @ =gUnk_080D8B24 - bl sub_0804ADDC - b _0804BEDE - .align 2, 0 -_0804BE74: .4byte gUnk_080D8B24 -_0804BE78: - movs r0, #0x2b - bl sub_0801E7F4 - cmp r0, #0 - beq _0804BE90 - ldr r0, _0804BE8C @ =gUnk_080D8AC4 - bl sub_0804ADDC - b _0804BEDE - .align 2, 0 -_0804BE8C: .4byte gUnk_080D8AC4 -_0804BE90: - movs r0, #0x26 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804BEA8 - ldr r0, _0804BEA4 @ =gUnk_080D8A74 - bl sub_0804ADDC - b _0804BEDE - .align 2, 0 -_0804BEA4: .4byte gUnk_080D8A74 -_0804BEA8: - movs r0, #0x2a - bl sub_0801E7F4 - cmp r0, #0 - beq _0804BEC0 - ldr r0, _0804BEBC @ =gUnk_080D8A34 - bl sub_0804ADDC - b _0804BEDE - .align 2, 0 -_0804BEBC: .4byte gUnk_080D8A34 -_0804BEC0: - movs r0, #0x25 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804BED8 - ldr r0, _0804BED4 @ =gUnk_080D8A04 - bl sub_0804ADDC - b _0804BEDE - .align 2, 0 -_0804BED4: .4byte gUnk_080D8A04 -_0804BED8: - ldr r0, _0804BF1C @ =gUnk_080D89E4 - bl sub_0804ADDC -_0804BEDE: - movs r0, #0x25 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804BEF2 - ldr r0, _0804BF20 @ =gUnk_080D8BBC - ldr r1, _0804BF24 @ =0x000007C5 - movs r2, #1 - bl sub_0807BB68 -_0804BEF2: - movs r0, #0x26 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804BF06 - ldr r0, _0804BF28 @ =gUnk_080D8BFA - ldr r1, _0804BF2C @ =0x00000503 - movs r2, #1 - bl sub_0807BB68 -_0804BF06: - movs r0, #0x2f - bl sub_0801E7F4 - cmp r0, #0 - beq _0804BF1A - ldr r0, _0804BF30 @ =gUnk_080D8C68 - ldr r1, _0804BF34 @ =0x00000281 - movs r2, #1 - bl sub_0807BB68 -_0804BF1A: - pop {pc} - .align 2, 0 -_0804BF1C: .4byte gUnk_080D89E4 -_0804BF20: .4byte gUnk_080D8BBC -_0804BF24: .4byte 0x000007C5 -_0804BF28: .4byte gUnk_080D8BFA -_0804BF2C: .4byte 0x00000503 -_0804BF30: .4byte gUnk_080D8C68 -_0804BF34: .4byte 0x00000281 - - thumb_func_start sub_0804BF38 -sub_0804BF38: @ 0x0804BF38 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, [r1, #4] - lsls r0, r0, #4 - ldr r1, _0804C000 @ =gUnk_080D8E50 - adds r4, r0, r1 - ldr r0, [r4] - ldrh r1, [r4, #4] - lsrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - ldrh r2, [r4, #6] - lsrs r2, r2, #4 - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - movs r2, #1 - bl sub_0807BB68 - ldrh r0, [r4, #8] - mov r8, r0 - movs r5, #0 - cmp r5, r8 - bhs _0804BFE8 - ldr r7, _0804C004 @ =gUnk_03000BF0 - movs r1, #0 - mov sl, r1 - movs r6, #0 - movs r3, #1 - mov sb, r3 -_0804BF7A: - movs r0, #0xf - movs r1, #0xf - movs r2, #0 - bl sub_080A2960 - adds r2, r0, #0 - cmp r2, #0 - beq _0804BFA6 - ldrh r0, [r7, #6] - ldrh r1, [r4, #4] - adds r0, r0, r1 - adds r0, r0, r6 - strh r0, [r2, #0x2e] - ldrh r1, [r7, #8] - ldrh r3, [r4, #6] - adds r1, r1, r3 - adds r0, r5, #0 - mov r3, sb - ands r0, r3 - lsls r0, r0, #3 - adds r1, r1, r0 - strh r1, [r2, #0x32] -_0804BFA6: - movs r0, #0xf - movs r1, #0x54 - movs r2, #0 - bl sub_080A2960 - adds r2, r0, #0 - cmp r2, #0 - beq _0804BFE0 - ldrh r0, [r7, #6] - ldrh r1, [r4, #4] - adds r0, r0, r1 - adds r0, r0, r6 - strh r0, [r2, #0x2e] - ldrh r1, [r7, #8] - ldrh r3, [r4, #6] - adds r1, r1, r3 - ldr r0, _0804C008 @ =0x0000FFF4 - adds r1, r1, r0 - adds r0, r5, #0 - mov r3, sb - ands r0, r3 - lsls r0, r0, #3 - adds r1, r1, r0 - strh r1, [r2, #0x32] - mov r0, sl - strb r0, [r2, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] -_0804BFE0: - adds r6, #0x10 - adds r5, #1 - cmp r5, r8 - blo _0804BF7A -_0804BFE8: - ldrh r0, [r4, #0xa] - ldrh r1, [r4, #0xc] - bl sub_08080964 - ldrh r0, [r4, #0xe] - bl sub_080A3268 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804C000: .4byte gUnk_080D8E50 -_0804C004: .4byte gUnk_03000BF0 -_0804C008: .4byte 0x0000FFF4 - - thumb_func_start sub_0804C00C -sub_0804C00C: @ 0x0804C00C - movs r0, #1 - bx lr - - thumb_func_start nullsub_195 -nullsub_195: @ 0x0804C010 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C014 -sub_0804C014: @ 0x0804C014 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C018 -sub_0804C018: @ 0x0804C018 - push {r4, lr} - movs r0, #0x20 - bl GetProgressFlag - cmp r0, #0 - bne _0804C044 - movs r0, #0x3c - bl sub_0807CA84 - cmp r0, #1 - bne _0804C054 - ldr r0, _0804C03C @ =gUnk_080D90C8 - bl sub_0804ADDC - ldr r0, _0804C040 @ =gUnk_080D9108 - bl sub_0804ADDC - b _0804C054 - .align 2, 0 -_0804C03C: .4byte gUnk_080D90C8 -_0804C040: .4byte gUnk_080D9108 -_0804C044: - movs r0, #0x21 - bl GetProgressFlag - cmp r0, #0 - bne _0804C054 - ldr r0, _0804C0D0 @ =gUnk_080D9108 - bl sub_0804ADDC -_0804C054: - movs r0, #0x3c - bl sub_0807CA84 - cmp r0, #2 - beq _0804C090 - ldr r0, _0804C0D4 @ =gUnk_080D9098 - bl sub_0804ADDC - movs r0, #0xbd - lsls r0, r0, #1 - ldr r1, _0804C0D8 @ =0x0000058E - movs r2, #1 - bl sub_0807B314 - ldr r0, _0804C0DC @ =0x0000017B - ldr r1, _0804C0E0 @ =0x0000058F - movs r2, #1 - bl sub_0807B314 - movs r0, #0xbe - lsls r0, r0, #1 - ldr r1, _0804C0E4 @ =0x000005CE - movs r2, #1 - bl sub_0807B314 - ldr r0, _0804C0E8 @ =0x0000017D - ldr r1, _0804C0EC @ =0x000005CF - movs r2, #1 - bl sub_0807B314 -_0804C090: - bl sub_08054570 - bl sub_08059278 - ldr r4, _0804C0F0 @ =0x00004072 - ldr r1, _0804C0F4 @ =0x00000A47 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804C0F8 @ =0x00000C47 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - movs r0, #0x62 - bl GetProgressFlag - cmp r0, #0 - beq _0804C0C8 - ldr r0, _0804C0FC @ =gUnk_030010A0 - ldr r1, [r0, #0x10] - ldr r0, _0804C100 @ =0x02780078 - cmp r1, r0 - bne _0804C0C8 - movs r0, #0x72 - bl sub_080A3268 -_0804C0C8: - movs r0, #0x62 - bl sub_0807CD80 - pop {r4, pc} - .align 2, 0 -_0804C0D0: .4byte gUnk_080D9108 -_0804C0D4: .4byte gUnk_080D9098 -_0804C0D8: .4byte 0x0000058E -_0804C0DC: .4byte 0x0000017B -_0804C0E0: .4byte 0x0000058F -_0804C0E4: .4byte 0x000005CE -_0804C0E8: .4byte 0x0000017D -_0804C0EC: .4byte 0x000005CF -_0804C0F0: .4byte 0x00004072 -_0804C0F4: .4byte 0x00000A47 -_0804C0F8: .4byte 0x00000C47 -_0804C0FC: .4byte gUnk_030010A0 -_0804C100: .4byte 0x02780078 - - thumb_func_start sub_0804C104 -sub_0804C104: @ 0x0804C104 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C108 -sub_0804C108: @ 0x0804C108 - push {lr} - ldr r2, _0804C124 @ =gUnk_02033A90 - ldrb r1, [r2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r2, #0xd] - movs r1, #1 - orrs r0, r1 - strb r0, [r2, #0xd] - bl sub_0804C128 - pop {pc} - .align 2, 0 -_0804C124: .4byte gUnk_02033A90 - - thumb_func_start sub_0804C128 -sub_0804C128: @ 0x0804C128 - push {r4, r5, lr} - movs r0, #0 - bl sub_080AF250 - ldr r0, _0804C15C @ =gUnk_02034350 - ldrb r0, [r0] - cmp r0, #0 - bne _0804C13A - b _0804C24C -_0804C13A: - ldr r1, _0804C160 @ =gUnk_02033A90 - ldrb r3, [r1, #0xd] - movs r0, #0xe - ands r0, r3 - adds r5, r1, #0 - cmp r0, #0 - bne _0804C164 - movs r0, #0xf0 - ands r0, r3 - cmp r0, #0 - bne _0804C19C - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r3 - movs r1, #2 - orrs r0, r1 - b _0804C19A - .align 2, 0 -_0804C15C: .4byte gUnk_02034350 -_0804C160: .4byte gUnk_02033A90 -_0804C164: - ldr r2, _0804C18C @ =gUnk_03000BF0 - ldr r1, _0804C190 @ =gUnk_080D9338 - lsls r4, r3, #0x1c - lsrs r0, r4, #0x1d - adds r0, r0, r1 - ldrb r1, [r2, #0x10] - ldrb r0, [r0] - cmp r1, r0 - bne _0804C194 - lsrs r0, r4, #0x1d - adds r0, #1 - movs r1, #7 - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0xf - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r0 - strb r1, [r5, #0xd] - b _0804C19C - .align 2, 0 -_0804C18C: .4byte gUnk_03000BF0 -_0804C190: .4byte gUnk_080D9338 -_0804C194: - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r3 -_0804C19A: - strb r0, [r5, #0xd] -_0804C19C: - ldrb r3, [r5, #0xd] - movs r0, #0xe - ands r0, r3 - cmp r0, #0 - bne _0804C1DE - ldr r2, _0804C1D0 @ =gUnk_03000BF0 - ldr r1, _0804C1D4 @ =gUnk_080D9340 - lsls r4, r3, #0x18 - lsrs r0, r4, #0x1c - adds r0, r0, r1 - ldrb r1, [r2, #0x10] - ldrb r0, [r0] - cmp r1, r0 - bne _0804C1D8 - lsrs r0, r4, #0x1c - adds r0, #1 - lsls r0, r0, #4 - movs r1, #0xf - ands r1, r3 - orrs r1, r0 - movs r0, #0xf - rsbs r0, r0, #0 - ands r1, r0 - strb r1, [r5, #0xd] - b _0804C1DE - .align 2, 0 -_0804C1D0: .4byte gUnk_03000BF0 -_0804C1D4: .4byte gUnk_080D9340 -_0804C1D8: - movs r0, #0xf - ands r0, r3 - strb r0, [r5, #0xd] -_0804C1DE: - adds r4, r5, #0 - ldrb r1, [r4, #0xd] - movs r0, #0xe - ands r0, r1 - cmp r0, #0xc - bne _0804C206 - movs r0, #1 - bl sub_080AF250 - movs r0, #0x62 - bl sub_0807CD04 - bl sub_0804C290 - ldrb r1, [r4, #0xd] - movs r0, #0xf - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0xd] - b _0804C254 -_0804C206: - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x60 - bne _0804C250 - movs r0, #1 - bl sub_080AF250 - movs r0, #0x5c - bl sub_0807CBD0 - cmp r0, #0 - bne _0804C228 - ldr r1, _0804C244 @ =0x00000107 - movs r0, #0x73 - movs r2, #1 - bl sub_0807B314 -_0804C228: - ldr r0, _0804C248 @ =gUnk_080D9328 - bl sub_0804B1AC - movs r0, #0x62 - bl sub_0807CD04 - bl sub_0804C290 - ldrb r1, [r5, #0xd] - movs r0, #0xf - ands r0, r1 - strb r0, [r5, #0xd] - b _0804C254 - .align 2, 0 -_0804C244: .4byte 0x00000107 -_0804C248: .4byte gUnk_080D9328 -_0804C24C: - bl sub_0804C258 -_0804C250: - bl sub_0804C290 -_0804C254: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0804C258 -sub_0804C258: @ 0x0804C258 - push {lr} - ldr r3, _0804C288 @ =gUnk_02033A90 - ldrb r0, [r3, #0xd] - movs r2, #0xf - rsbs r2, r2, #0 - ands r2, r0 - movs r0, #2 - orrs r2, r0 - movs r0, #0xf - ands r2, r0 - strb r2, [r3, #0xd] - ldr r0, _0804C28C @ =gUnk_030010A0 - ldrb r0, [r0, #0xe] - cmp r0, #4 - bne _0804C284 - movs r1, #0xe - adds r0, r2, #0 - orrs r0, r1 - strb r0, [r3, #0xd] - movs r0, #1 - bl sub_080AF250 -_0804C284: - pop {pc} - .align 2, 0 -_0804C288: .4byte gUnk_02033A90 -_0804C28C: .4byte gUnk_030010A0 - - thumb_func_start sub_0804C290 -sub_0804C290: @ 0x0804C290 - push {lr} - ldr r0, _0804C2B4 @ =gUnk_02033A90 - ldrb r1, [r0, #0xd] - movs r0, #0xe - ands r0, r1 - cmp r0, #0 - beq _0804C2B2 - lsls r1, r1, #0x1c - lsrs r1, r1, #0x1d - lsls r1, r1, #2 - ldr r0, _0804C2B8 @ =gUnk_080D9348 - adds r1, r1, r0 - ldrh r0, [r1] - ldrh r1, [r1, #2] - movs r2, #1 - bl sub_0807B314 -_0804C2B2: - pop {pc} - .align 2, 0 -_0804C2B4: .4byte gUnk_02033A90 -_0804C2B8: .4byte gUnk_080D9348 - - thumb_func_start sub_0804C2BC -sub_0804C2BC: @ 0x0804C2BC - movs r0, #1 - bx lr - - thumb_func_start nullsub_196 -nullsub_196: @ 0x0804C2C0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C2C4 -sub_0804C2C4: @ 0x0804C2C4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_197 -nullsub_197: @ 0x0804C2C8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C2CC -sub_0804C2CC: @ 0x0804C2CC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C2D0 -sub_0804C2D0: @ 0x0804C2D0 - push {lr} - movs r0, #0 - bl sub_08058324 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804C2DC -sub_0804C2DC: @ 0x0804C2DC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C2E0 -sub_0804C2E0: @ 0x0804C2E0 - push {lr} - movs r0, #1 - bl sub_08058324 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804C2EC -sub_0804C2EC: @ 0x0804C2EC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C2F0 -sub_0804C2F0: @ 0x0804C2F0 - push {lr} - movs r0, #2 - bl sub_08058324 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0804C312 - movs r0, #0x2a - bl GetProgressFlag - cmp r0, #0 - bne _0804C312 - ldr r0, _0804C314 @ =gUnk_080D9800 - bl sub_0804ADDC -_0804C312: - pop {pc} - .align 2, 0 -_0804C314: .4byte gUnk_080D9800 - - thumb_func_start sub_0804C318 -sub_0804C318: @ 0x0804C318 - push {lr} - bl sub_0804C2F0 - pop {pc} - - thumb_func_start sub_0804C320 -sub_0804C320: @ 0x0804C320 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C324 -sub_0804C324: @ 0x0804C324 - push {lr} - movs r0, #3 - bl sub_08058324 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804C330 -sub_0804C330: @ 0x0804C330 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C334 -sub_0804C334: @ 0x0804C334 - push {lr} - movs r0, #0x1e - bl sub_0807CD04 - movs r0, #0x5b - bl sub_0801E7F4 - cmp r0, #0 - beq _0804C34C - ldr r0, _0804C374 @ =gUnk_080D9CC8 - bl sub_0804ADDC -_0804C34C: - ldr r0, _0804C378 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - bne _0804C360 - ldr r0, _0804C37C @ =gUnk_080D9CE8 - bl sub_0804ADDC -_0804C360: - movs r0, #0x15 - bl sub_0807CA84 - cmp r0, #0 - bne _0804C370 - ldr r0, _0804C380 @ =gUnk_080D9C38 - bl sub_0804ADDC -_0804C370: - pop {pc} - .align 2, 0 -_0804C374: .4byte gUnk_080D9CC8 -_0804C378: .4byte gUnk_02002A40 -_0804C37C: .4byte gUnk_080D9CE8 -_0804C380: .4byte gUnk_080D9C38 - - thumb_func_start sub_0804C384 -sub_0804C384: @ 0x0804C384 - push {lr} - ldr r0, _0804C39C @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x16 - ands r0, r1 - cmp r0, #0 - bne _0804C39A - ldr r0, _0804C3A0 @ =gUnk_080D9CE8 - bl sub_0804ADDC -_0804C39A: - pop {pc} - .align 2, 0 -_0804C39C: .4byte gUnk_02002A40 -_0804C3A0: .4byte gUnk_080D9CE8 - - thumb_func_start sub_0804C3A4 -sub_0804C3A4: @ 0x0804C3A4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_198 -nullsub_198: @ 0x0804C3A8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3AC -sub_0804C3AC: @ 0x0804C3AC - movs r0, #1 - bx lr - - thumb_func_start nullsub_199 -nullsub_199: @ 0x0804C3B0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3B4 -sub_0804C3B4: @ 0x0804C3B4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_200 -nullsub_200: @ 0x0804C3B8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3BC -sub_0804C3BC: @ 0x0804C3BC - movs r0, #1 - bx lr - - thumb_func_start nullsub_201 -nullsub_201: @ 0x0804C3C0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3C4 -sub_0804C3C4: @ 0x0804C3C4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_202 -nullsub_202: @ 0x0804C3C8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3CC -sub_0804C3CC: @ 0x0804C3CC - push {lr} - movs r0, #0x39 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804C3DE - ldr r1, _0804C3E4 @ =gUnk_02034350 - ldr r0, _0804C3E8 @ =gUnk_080DA230 - str r0, [r1, #0x6c] -_0804C3DE: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804C3E4: .4byte gUnk_02034350 -_0804C3E8: .4byte gUnk_080DA230 - - thumb_func_start nullsub_203 -nullsub_203: @ 0x0804C3EC - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3F0 -sub_0804C3F0: @ 0x0804C3F0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_204 -nullsub_204: @ 0x0804C3F4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C3F8 -sub_0804C3F8: @ 0x0804C3F8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_205 -nullsub_205: @ 0x0804C3FC - bx lr - .align 2, 0 - - thumb_func_start sub_0804C400 -sub_0804C400: @ 0x0804C400 - movs r0, #1 - bx lr - - thumb_func_start nullsub_206 -nullsub_206: @ 0x0804C404 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C408 -sub_0804C408: @ 0x0804C408 - movs r0, #1 - bx lr - - thumb_func_start nullsub_207 -nullsub_207: @ 0x0804C40C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C410 -sub_0804C410: @ 0x0804C410 - movs r0, #1 - bx lr - - thumb_func_start nullsub_208 -nullsub_208: @ 0x0804C414 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C418 -sub_0804C418: @ 0x0804C418 - movs r0, #1 - bx lr - - thumb_func_start nullsub_209 -nullsub_209: @ 0x0804C41C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C420 -sub_0804C420: @ 0x0804C420 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C424 -sub_0804C424: @ 0x0804C424 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C42C -sub_0804C42C: @ 0x0804C42C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C430 -sub_0804C430: @ 0x0804C430 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C438 -sub_0804C438: @ 0x0804C438 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C43C -sub_0804C43C: @ 0x0804C43C - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C444 -sub_0804C444: @ 0x0804C444 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C448 -sub_0804C448: @ 0x0804C448 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C450 -sub_0804C450: @ 0x0804C450 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C454 -sub_0804C454: @ 0x0804C454 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C45C -sub_0804C45C: @ 0x0804C45C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C460 -sub_0804C460: @ 0x0804C460 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C468 -sub_0804C468: @ 0x0804C468 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C46C -sub_0804C46C: @ 0x0804C46C - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C474 -sub_0804C474: @ 0x0804C474 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C478 -sub_0804C478: @ 0x0804C478 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C480 -sub_0804C480: @ 0x0804C480 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C484 -sub_0804C484: @ 0x0804C484 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C48C -sub_0804C48C: @ 0x0804C48C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C490 -sub_0804C490: @ 0x0804C490 - push {r4, lr} - movs r0, #0x5b - bl sub_0807CA84 - cmp r0, #0 - bne _0804C4A8 - ldr r0, _0804C4A4 @ =gUnk_080DAB44 - bl sub_0804ADDC - b _0804C4AE - .align 2, 0 -_0804C4A4: .4byte gUnk_080DAB44 -_0804C4A8: - ldr r0, _0804C4D8 @ =gUnk_080DAB64 - bl sub_0804ADDC -_0804C4AE: - movs r0, #0x54 - bl GetProgressFlag - cmp r0, #0 - beq _0804C4F0 - bl sub_08060354 - cmp r0, #0 - beq _0804C4F0 - movs r0, #0 - bl sub_0807CD10 - movs r0, #0x3b - bl GetProgressFlag - cmp r0, #0 - bne _0804C4DC - movs r4, #0xc8 - lsls r4, r4, #6 - b _0804C522 - .align 2, 0 -_0804C4D8: .4byte gUnk_080DAB64 -_0804C4DC: - movs r0, #0x3c - bl GetProgressFlag - movs r4, #0x91 - lsls r4, r4, #7 - cmp r0, #0 - bne _0804C522 - movs r4, #0x8c - lsls r4, r4, #7 - b _0804C522 -_0804C4F0: - movs r0, #0x3d - bl GetProgressFlag - cmp r0, #0 - beq _0804C500 - movs r4, #0x92 - lsls r4, r4, #7 - b _0804C522 -_0804C500: - movs r0, #0x3c - bl GetProgressFlag - cmp r0, #0 - beq _0804C510 - movs r4, #0x94 - lsls r4, r4, #7 - b _0804C522 -_0804C510: - movs r0, #0x3b - bl GetProgressFlag - movs r4, #0x92 - lsls r4, r4, #8 - cmp r0, #0 - beq _0804C522 - movs r4, #0xa4 - lsls r4, r4, #7 -_0804C522: - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r4 - cmp r0, #0 - beq _0804C532 - ldr r0, _0804C5B8 @ =gUnk_080DAB84 - bl sub_0804ADDC -_0804C532: - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r4 - cmp r0, #0 - beq _0804C542 - ldr r0, _0804C5BC @ =gUnk_080DAC54 - bl sub_0804ADDC -_0804C542: - movs r0, #0x80 - lsls r0, r0, #6 - ands r0, r4 - cmp r0, #0 - beq _0804C552 - ldr r0, _0804C5C0 @ =gUnk_080DAD24 - bl sub_0804ADDC -_0804C552: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r4 - cmp r0, #0 - beq _0804C562 - ldr r0, _0804C5C4 @ =gUnk_080DABC4 - bl sub_0804ADDC -_0804C562: - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0804C572 - ldr r0, _0804C5C8 @ =gUnk_080DAC94 - bl sub_0804ADDC -_0804C572: - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r4 - cmp r0, #0 - beq _0804C582 - ldr r0, _0804C5CC @ =gUnk_080DAD64 - bl sub_0804ADDC -_0804C582: - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r4 - cmp r0, #0 - beq _0804C592 - ldr r0, _0804C5D0 @ =gUnk_080DAC04 - bl sub_0804ADDC -_0804C592: - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0804C5A2 - ldr r0, _0804C5D4 @ =gUnk_080DACD4 - bl sub_0804ADDC -_0804C5A2: - movs r0, #0x80 - ands r4, r0 - cmp r4, #0 - beq _0804C5B0 - ldr r0, _0804C5D8 @ =gUnk_080DADA4 - bl sub_0804ADDC -_0804C5B0: - bl sub_0801AFE4 - pop {r4, pc} - .align 2, 0 -_0804C5B8: .4byte gUnk_080DAB84 -_0804C5BC: .4byte gUnk_080DAC54 -_0804C5C0: .4byte gUnk_080DAD24 -_0804C5C4: .4byte gUnk_080DABC4 -_0804C5C8: .4byte gUnk_080DAC94 -_0804C5CC: .4byte gUnk_080DAD64 -_0804C5D0: .4byte gUnk_080DAC04 -_0804C5D4: .4byte gUnk_080DACD4 -_0804C5D8: .4byte gUnk_080DADA4 - - thumb_func_start sub_0804C5DC -sub_0804C5DC: @ 0x0804C5DC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C5E0 -sub_0804C5E0: @ 0x0804C5E0 - push {lr} - movs r0, #0x56 - bl GetProgressFlag - cmp r0, #0 - beq _0804C5F2 - ldr r0, _0804C5F8 @ =gUnk_080DAEE8 - bl sub_0804ADDC -_0804C5F2: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C5F8: .4byte gUnk_080DAEE8 - - thumb_func_start sub_0804C5FC -sub_0804C5FC: @ 0x0804C5FC - movs r0, #1 - bx lr - - thumb_func_start sub_0804C600 -sub_0804C600: @ 0x0804C600 - push {lr} - movs r0, #0x56 - bl GetProgressFlag - cmp r0, #0 - beq _0804C612 - ldr r0, _0804C618 @ =gUnk_080DAF80 - bl sub_0804ADDC -_0804C612: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C618: .4byte gUnk_080DAF80 - - thumb_func_start sub_0804C61C -sub_0804C61C: @ 0x0804C61C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C620 -sub_0804C620: @ 0x0804C620 - push {lr} - movs r0, #0x56 - bl GetProgressFlag - cmp r0, #0 - beq _0804C632 - ldr r0, _0804C638 @ =gUnk_080DB018 - bl sub_0804ADDC -_0804C632: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C638: .4byte gUnk_080DB018 - - thumb_func_start sub_0804C63C -sub_0804C63C: @ 0x0804C63C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C640 -sub_0804C640: @ 0x0804C640 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C648 -sub_0804C648: @ 0x0804C648 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C64C -sub_0804C64C: @ 0x0804C64C - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C654 -sub_0804C654: @ 0x0804C654 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C658 -sub_0804C658: @ 0x0804C658 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C660 -sub_0804C660: @ 0x0804C660 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C664 -sub_0804C664: @ 0x0804C664 - push {lr} - ldr r0, _0804C67C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #8 - bls _0804C674 - ldr r0, _0804C680 @ =gUnk_080DB238 - bl sub_0804ADDC -_0804C674: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C67C: .4byte gUnk_02002A40 -_0804C680: .4byte gUnk_080DB238 - - thumb_func_start sub_0804C684 -sub_0804C684: @ 0x0804C684 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C688 -sub_0804C688: @ 0x0804C688 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C690 -sub_0804C690: @ 0x0804C690 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C694 -sub_0804C694: @ 0x0804C694 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C69C -sub_0804C69C: @ 0x0804C69C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C6A0 -sub_0804C6A0: @ 0x0804C6A0 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C6A8 -sub_0804C6A8: @ 0x0804C6A8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C6AC -sub_0804C6AC: @ 0x0804C6AC - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C6B4 -sub_0804C6B4: @ 0x0804C6B4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C6B8 -sub_0804C6B8: @ 0x0804C6B8 - push {lr} - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0804C6E4 - movs r0, #0x3b - bl sub_0807CA84 - cmp r0, #0 - bne _0804C6E4 - movs r0, #0x71 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804C6E4 - ldr r0, _0804C6E0 @ =gUnk_080DB4D0 - bl sub_0804ADDC - b _0804C6EA - .align 2, 0 -_0804C6E0: .4byte gUnk_080DB4D0 -_0804C6E4: - ldr r0, _0804C6F0 @ =gUnk_080DB4A0 - bl sub_0804ADDC -_0804C6EA: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C6F0: .4byte gUnk_080DB4A0 - - thumb_func_start sub_0804C6F4 -sub_0804C6F4: @ 0x0804C6F4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C6F8 -sub_0804C6F8: @ 0x0804C6F8 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C700 -sub_0804C700: @ 0x0804C700 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C704 -sub_0804C704: @ 0x0804C704 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C70C -sub_0804C70C: @ 0x0804C70C - movs r0, #1 - bx lr - - thumb_func_start sub_0804C710 -sub_0804C710: @ 0x0804C710 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C718 -sub_0804C718: @ 0x0804C718 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C71C -sub_0804C71C: @ 0x0804C71C - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C724 -sub_0804C724: @ 0x0804C724 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C728 -sub_0804C728: @ 0x0804C728 - push {lr} - bl sub_0801AFE4 - pop {pc} - - thumb_func_start sub_0804C730 -sub_0804C730: @ 0x0804C730 - push {lr} - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0804C74C - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804C74C - ldr r1, _0804C750 @ =gUnk_02034350 - ldr r0, _0804C754 @ =gUnk_080DB910 - str r0, [r1, #0x70] -_0804C74C: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804C750: .4byte gUnk_02034350 -_0804C754: .4byte gUnk_080DB910 - - thumb_func_start sub_0804C758 -sub_0804C758: @ 0x0804C758 - push {lr} - ldr r0, _0804C780 @ =gUnk_080DB8F0 - bl sub_0804ADDC - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0804C77A - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0804C77A - ldr r0, _0804C784 @ =gUnk_080DB820 - bl sub_0804ADDC -_0804C77A: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C780: .4byte gUnk_080DB8F0 -_0804C784: .4byte gUnk_080DB820 - - thumb_func_start sub_0804C788 -sub_0804C788: @ 0x0804C788 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C78C -sub_0804C78C: @ 0x0804C78C - push {lr} - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0804C7A2 - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804C7A8 -_0804C7A2: - ldr r0, _0804C7B0 @ =gUnk_080DBA08 - bl sub_0804ADDC -_0804C7A8: - bl sub_0801AFE4 - pop {pc} - .align 2, 0 -_0804C7B0: .4byte gUnk_080DBA08 - - thumb_func_start sub_0804C7B4 -sub_0804C7B4: @ 0x0804C7B4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C7B8 -sub_0804C7B8: @ 0x0804C7B8 - push {r4, r5, lr} - movs r0, #0x60 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804C7CA - ldr r0, _0804C7E4 @ =gUnk_080DBB50 - bl sub_0804ADDC -_0804C7CA: - movs r0, #0x15 - bl sub_0807CA84 - cmp r0, #1 - bne _0804C7F0 - ldr r0, _0804C7E8 @ =gUnk_080DBB70 - bl sub_0804ADDC - ldr r0, _0804C7EC @ =gUnk_080DBB10 - bl sub_0804ADDC - b _0804C7F6 - .align 2, 0 -_0804C7E4: .4byte gUnk_080DBB50 -_0804C7E8: .4byte gUnk_080DBB70 -_0804C7EC: .4byte gUnk_080DBB10 -_0804C7F0: - ldr r0, _0804C824 @ =gUnk_080DBAD0 - bl sub_0804ADDC -_0804C7F6: - movs r0, #0x62 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804C818 - movs r5, #0xa0 - lsls r5, r5, #1 - movs r4, #0 -_0804C806: - ldr r0, _0804C828 @ =0x00004072 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - adds r4, #1 - adds r5, #1 - cmp r4, #0x12 - bls _0804C806 -_0804C818: - ldr r0, _0804C82C @ =gUnk_080DBB90 - bl sub_0804ADDC - bl sub_0801AFE4 - pop {r4, r5, pc} - .align 2, 0 -_0804C824: .4byte gUnk_080DBAD0 -_0804C828: .4byte 0x00004072 -_0804C82C: .4byte gUnk_080DBB90 - - thumb_func_start sub_0804C830 -sub_0804C830: @ 0x0804C830 - movs r0, #1 - bx lr - - thumb_func_start nullsub_210 -nullsub_210: @ 0x0804C834 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C838 -sub_0804C838: @ 0x0804C838 - movs r0, #1 - bx lr - - thumb_func_start nullsub_211 -nullsub_211: @ 0x0804C83C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C840 -sub_0804C840: @ 0x0804C840 - movs r0, #1 - bx lr - - thumb_func_start nullsub_212 -nullsub_212: @ 0x0804C844 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C848 -sub_0804C848: @ 0x0804C848 - movs r0, #1 - bx lr - - thumb_func_start nullsub_213 -nullsub_213: @ 0x0804C84C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C850 -sub_0804C850: @ 0x0804C850 - movs r0, #1 - bx lr - - thumb_func_start nullsub_214 -nullsub_214: @ 0x0804C854 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C858 -sub_0804C858: @ 0x0804C858 - movs r0, #1 - bx lr - - thumb_func_start nullsub_215 -nullsub_215: @ 0x0804C85C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C860 -sub_0804C860: @ 0x0804C860 - movs r0, #1 - bx lr - - thumb_func_start nullsub_216 -nullsub_216: @ 0x0804C864 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C868 -sub_0804C868: @ 0x0804C868 - movs r0, #1 - bx lr - - thumb_func_start nullsub_217 -nullsub_217: @ 0x0804C86C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C870 -sub_0804C870: @ 0x0804C870 - movs r0, #1 - bx lr - - thumb_func_start nullsub_218 -nullsub_218: @ 0x0804C874 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C878 -sub_0804C878: @ 0x0804C878 - movs r0, #1 - bx lr - - thumb_func_start nullsub_219 -nullsub_219: @ 0x0804C87C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C880 -sub_0804C880: @ 0x0804C880 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C884 -sub_0804C884: @ 0x0804C884 - push {lr} - movs r0, #0x5b - bl sub_0807CA84 - cmp r0, #0 - bne _0804C8B4 - ldr r0, _0804C8AC @ =gUnk_080DC390 - bl sub_0804ADDC - movs r0, #0x80 - lsls r0, r0, #2 - movs r1, #0x80 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0804C8CA - ldr r0, _0804C8B0 @ =gUnk_080DC3F0 - bl sub_0804ADDC - b _0804C8CA - .align 2, 0 -_0804C8AC: .4byte gUnk_080DC390 -_0804C8B0: .4byte gUnk_080DC3F0 -_0804C8B4: - ldr r0, _0804C900 @ =gUnk_080DC430 - bl sub_0804ADDC - movs r0, #0x11 - bl sub_0807CA84 - cmp r0, #0 - bne _0804C8CA - ldr r0, _0804C904 @ =gUnk_080DC530 - bl sub_0804ADDC -_0804C8CA: - movs r0, #0x80 - lsls r0, r0, #2 - movs r1, #0x83 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0804C8E8 - movs r0, #0x11 - bl sub_0807CA84 - cmp r0, #0 - beq _0804C8E8 - ldr r0, _0804C908 @ =gUnk_080DC470 - bl sub_0804ADDC -_0804C8E8: - movs r0, #0x8d - bl sub_0807CBD0 - cmp r0, #0 - bne _0804C8F8 - ldr r0, _0804C90C @ =gUnk_080DC4C0 - bl sub_0804ADDC -_0804C8F8: - bl sub_08057E64 - pop {pc} - .align 2, 0 -_0804C900: .4byte gUnk_080DC430 -_0804C904: .4byte gUnk_080DC530 -_0804C908: .4byte gUnk_080DC470 -_0804C90C: .4byte gUnk_080DC4C0 - - thumb_func_start sub_0804C910 -sub_0804C910: @ 0x0804C910 - movs r0, #1 - bx lr - - thumb_func_start nullsub_220 -nullsub_220: @ 0x0804C914 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C918 -sub_0804C918: @ 0x0804C918 - push {r4, r5, lr} - ldr r4, _0804C940 @ =gUnk_086D4460 - movs r1, #0xc0 - lsls r1, r1, #0x13 - movs r5, #0x80 - lsls r5, r5, #7 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_08000E96 - adds r4, r4, r5 - ldr r1, _0804C944 @ =0x06008000 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_08000E96 - movs r0, #0x19 - bl sub_0801D714 - pop {r4, r5, pc} - .align 2, 0 -_0804C940: .4byte gUnk_086D4460 -_0804C944: .4byte 0x06008000 - - thumb_func_start sub_0804C948 -sub_0804C948: @ 0x0804C948 - movs r0, #1 - bx lr - - thumb_func_start nullsub_221 -nullsub_221: @ 0x0804C94C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C950 -sub_0804C950: @ 0x0804C950 - movs r0, #1 - bx lr - - thumb_func_start nullsub_222 -nullsub_222: @ 0x0804C954 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C958 -sub_0804C958: @ 0x0804C958 - movs r0, #1 - bx lr - - thumb_func_start nullsub_223 -nullsub_223: @ 0x0804C95C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C960 -sub_0804C960: @ 0x0804C960 - movs r0, #1 - bx lr - - thumb_func_start nullsub_224 -nullsub_224: @ 0x0804C964 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C968 -sub_0804C968: @ 0x0804C968 - movs r0, #1 - bx lr - - thumb_func_start nullsub_225 -nullsub_225: @ 0x0804C96C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C970 -sub_0804C970: @ 0x0804C970 - movs r0, #1 - bx lr - - thumb_func_start nullsub_226 -nullsub_226: @ 0x0804C974 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C978 -sub_0804C978: @ 0x0804C978 - movs r0, #1 - bx lr - - thumb_func_start nullsub_227 -nullsub_227: @ 0x0804C97C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C980 -sub_0804C980: @ 0x0804C980 - movs r0, #1 - bx lr - - thumb_func_start nullsub_228 -nullsub_228: @ 0x0804C984 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C988 -sub_0804C988: @ 0x0804C988 - movs r0, #1 - bx lr - - thumb_func_start nullsub_229 -nullsub_229: @ 0x0804C98C - bx lr - .align 2, 0 - - thumb_func_start sub_0804C990 -sub_0804C990: @ 0x0804C990 - movs r0, #1 - bx lr - - thumb_func_start nullsub_230 -nullsub_230: @ 0x0804C994 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C998 -sub_0804C998: @ 0x0804C998 - movs r0, #1 - bx lr - - thumb_func_start sub_0804C99C -sub_0804C99C: @ 0x0804C99C - push {lr} - movs r0, #9 - bl sub_0807CA84 - cmp r0, #0 - bne _0804C9AE - ldr r0, _0804C9B0 @ =gUnk_080DCB10 - bl sub_0804ADDC -_0804C9AE: - pop {pc} - .align 2, 0 -_0804C9B0: .4byte gUnk_080DCB10 - - thumb_func_start sub_0804C9B4 -sub_0804C9B4: @ 0x0804C9B4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_231 -nullsub_231: @ 0x0804C9B8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9BC -sub_0804C9BC: @ 0x0804C9BC - movs r0, #1 - bx lr - - thumb_func_start nullsub_232 -nullsub_232: @ 0x0804C9C0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9C4 -sub_0804C9C4: @ 0x0804C9C4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_233 -nullsub_233: @ 0x0804C9C8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9CC -sub_0804C9CC: @ 0x0804C9CC - movs r0, #1 - bx lr - - thumb_func_start nullsub_234 -nullsub_234: @ 0x0804C9D0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9D4 -sub_0804C9D4: @ 0x0804C9D4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_235 -nullsub_235: @ 0x0804C9D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9DC -sub_0804C9DC: @ 0x0804C9DC - movs r0, #1 - bx lr - - thumb_func_start nullsub_236 -nullsub_236: @ 0x0804C9E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9E4 -sub_0804C9E4: @ 0x0804C9E4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_237 -nullsub_237: @ 0x0804C9E8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9EC -sub_0804C9EC: @ 0x0804C9EC - movs r0, #1 - bx lr - - thumb_func_start nullsub_238 -nullsub_238: @ 0x0804C9F0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9F4 -sub_0804C9F4: @ 0x0804C9F4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_239 -nullsub_239: @ 0x0804C9F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804C9FC -sub_0804C9FC: @ 0x0804C9FC - movs r0, #1 - bx lr - - thumb_func_start nullsub_240 -nullsub_240: @ 0x0804CA00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CA04 -sub_0804CA04: @ 0x0804CA04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_241 -nullsub_241: @ 0x0804CA08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CA0C -sub_0804CA0C: @ 0x0804CA0C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CA10 -sub_0804CA10: @ 0x0804CA10 - push {lr} - movs r0, #0x56 - bl GetProgressFlag - cmp r0, #0 - bne _0804CA22 - ldr r0, _0804CA34 @ =gUnk_080DD214 - bl sub_0804ADDC -_0804CA22: - movs r0, #0x7f - bl sub_0807CBD0 - cmp r0, #0 - bne _0804CA3C - ldr r0, _0804CA38 @ =gUnk_080DD274 - bl sub_0804ADDC - b _0804CA42 - .align 2, 0 -_0804CA34: .4byte gUnk_080DD214 -_0804CA38: .4byte gUnk_080DD274 -_0804CA3C: - ldr r0, _0804CA4C @ =gUnk_080DD294 - bl sub_0804ADDC -_0804CA42: - movs r0, #0x8e - bl sub_0807CCB4 - pop {pc} - .align 2, 0 -_0804CA4C: .4byte gUnk_080DD294 - - thumb_func_start sub_0804CA50 -sub_0804CA50: @ 0x0804CA50 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CA54 -sub_0804CA54: @ 0x0804CA54 - push {lr} - ldr r0, _0804CA6C @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - bne _0804CA6A - ldr r0, _0804CA70 @ =gUnk_080DD364 - bl sub_0804ADDC -_0804CA6A: - pop {pc} - .align 2, 0 -_0804CA6C: .4byte gUnk_02002A40 -_0804CA70: .4byte gUnk_080DD364 - - thumb_func_start sub_0804CA74 -sub_0804CA74: @ 0x0804CA74 - push {lr} - ldr r0, _0804CA8C @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x13 - ands r0, r1 - cmp r0, #0 - bne _0804CA8A - ldr r0, _0804CA90 @ =gUnk_080DD364 - bl sub_0804ADDC -_0804CA8A: - pop {pc} - .align 2, 0 -_0804CA8C: .4byte gUnk_02002A40 -_0804CA90: .4byte gUnk_080DD364 - - thumb_func_start sub_0804CA94 -sub_0804CA94: @ 0x0804CA94 - movs r0, #1 - bx lr - - thumb_func_start nullsub_242 -nullsub_242: @ 0x0804CA98 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CA9C -sub_0804CA9C: @ 0x0804CA9C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CAA0 -sub_0804CAA0: @ 0x0804CAA0 - push {lr} - movs r0, #0x24 - bl GetProgressFlag - cmp r0, #0 - beq _0804CAB2 - ldr r0, _0804CAC4 @ =0x000006DE - bl sub_0809F814 -_0804CAB2: - movs r0, #0xf3 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804CAC8 - movs r0, #0xe0 - bl sub_0809F814 - b _0804CACE - .align 2, 0 -_0804CAC4: .4byte 0x000006DE -_0804CAC8: - ldr r0, _0804CAE0 @ =gUnk_080DD7E0 - bl sub_0804ADDC -_0804CACE: - movs r0, #0xf5 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804CAE8 - ldr r0, _0804CAE4 @ =0x00000BA3 - bl sub_0809F814 - b _0804CAEE - .align 2, 0 -_0804CAE0: .4byte gUnk_080DD7E0 -_0804CAE4: .4byte 0x00000BA3 -_0804CAE8: - ldr r0, _0804CAF0 @ =gUnk_080DD840 - bl sub_0804ADDC -_0804CAEE: - pop {pc} - .align 2, 0 -_0804CAF0: .4byte gUnk_080DD840 - - thumb_func_start sub_0804CAF4 -sub_0804CAF4: @ 0x0804CAF4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CAF8 -sub_0804CAF8: @ 0x0804CAF8 - push {lr} - bl sub_080300E8 - movs r0, #0x24 - bl sub_0807CCB4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804CB08 -sub_0804CB08: @ 0x0804CB08 - movs r0, #1 - bx lr - - thumb_func_start nullsub_37 -nullsub_37: @ 0x0804CB0C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CB10 -sub_0804CB10: @ 0x0804CB10 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CB14 -sub_0804CB14: @ 0x0804CB14 - push {lr} - movs r0, #0x41 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804CB26 - ldr r0, _0804CB28 @ =gUnk_080DDE88 - bl sub_0804ADDC -_0804CB26: - pop {pc} - .align 2, 0 -_0804CB28: .4byte gUnk_080DDE88 - - thumb_func_start sub_0804CB2C -sub_0804CB2C: @ 0x0804CB2C - push {lr} - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #0x27 - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _0804CB42 - movs r0, #0x85 - bl sub_08059340 -_0804CB42: - pop {pc} - - thumb_func_start sub_0804CB44 -sub_0804CB44: @ 0x0804CB44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_38 -nullsub_38: @ 0x0804CB48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CB4C -sub_0804CB4C: @ 0x0804CB4C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CB50 -sub_0804CB50: @ 0x0804CB50 - push {lr} - bl sub_080300E8 - movs r0, #4 - bl GetProgressFlag - cmp r0, #0 - beq _0804CB70 - movs r0, #3 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804CB70 - ldr r0, _0804CB74 @ =gUnk_080DE008 - bl sub_0804ADDC -_0804CB70: - pop {pc} - .align 2, 0 -_0804CB74: .4byte gUnk_080DE008 - - thumb_func_start sub_0804CB78 -sub_0804CB78: @ 0x0804CB78 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CB7C -sub_0804CB7C: @ 0x0804CB7C - push {lr} - bl sub_080300E8 - movs r0, #0x30 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804CB92 - ldr r0, _0804CBA4 @ =gUnk_080DE1E0 - bl sub_0804ADDC -_0804CB92: - movs r0, #0x31 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804CBA2 - ldr r0, _0804CBA8 @ =gUnk_080DE200 - bl sub_0804ADDC -_0804CBA2: - pop {pc} - .align 2, 0 -_0804CBA4: .4byte gUnk_080DE1E0 -_0804CBA8: .4byte gUnk_080DE200 - - thumb_func_start sub_0804CBAC -sub_0804CBAC: @ 0x0804CBAC - movs r0, #1 - bx lr - - thumb_func_start sub_0804CBB0 -sub_0804CBB0: @ 0x0804CBB0 - push {lr} - ldr r0, _0804CBD8 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - ldr r2, _0804CBDC @ =gUnk_03000BF0 - ldrh r0, [r2, #8] - subs r1, r1, r0 - ldrh r0, [r2, #0x20] - lsrs r0, r0, #1 - cmp r1, r0 - bge _0804CBD6 - movs r0, #0x17 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804CBD6 - ldr r0, _0804CBE0 @ =gUnk_080DE4C8 - bl sub_0804ADDC -_0804CBD6: - pop {pc} - .align 2, 0 -_0804CBD8: .4byte gLinkEntity -_0804CBDC: .4byte gUnk_03000BF0 -_0804CBE0: .4byte gUnk_080DE4C8 - - thumb_func_start sub_0804CBE4 -sub_0804CBE4: @ 0x0804CBE4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_243 -nullsub_243: @ 0x0804CBE8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CBEC -sub_0804CBEC: @ 0x0804CBEC - movs r0, #1 - bx lr - - thumb_func_start sub_0804CBF0 -sub_0804CBF0: @ 0x0804CBF0 - push {lr} - movs r0, #0x4b - bl sub_0807CBD0 - cmp r0, #0 - bne _0804CC08 - ldr r0, _0804CC04 @ =gUnk_080DE814 - bl sub_0804ADDC - b _0804CC4A - .align 2, 0 -_0804CC04: .4byte gUnk_080DE814 -_0804CC08: - movs r0, #0x4c - bl sub_0807CBD0 - cmp r0, #0 - bne _0804CC2C - ldr r0, _0804CC24 @ =gUnk_080DE834 - bl sub_0804ADDC - ldr r1, _0804CC28 @ =0x00000285 - movs r0, #0x79 - movs r2, #1 - bl sub_0807B314 - b _0804CC4A - .align 2, 0 -_0804CC24: .4byte gUnk_080DE834 -_0804CC28: .4byte 0x00000285 -_0804CC2C: - ldr r1, _0804CC4C @ =0x00000285 - movs r0, #0x7a - movs r2, #1 - bl sub_0807B314 - movs r0, #0x24 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804CC4A - ldr r1, _0804CC50 @ =0x00000205 - movs r0, #0x73 - movs r2, #1 - bl sub_0807B314 -_0804CC4A: - pop {pc} - .align 2, 0 -_0804CC4C: .4byte 0x00000285 -_0804CC50: .4byte 0x00000205 - - thumb_func_start sub_0804CC54 -sub_0804CC54: @ 0x0804CC54 - movs r0, #1 - bx lr - - thumb_func_start nullsub_244 -nullsub_244: @ 0x0804CC58 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CC5C -sub_0804CC5C: @ 0x0804CC5C - movs r0, #1 - bx lr - - thumb_func_start nullsub_245 -nullsub_245: @ 0x0804CC60 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CC64 -sub_0804CC64: @ 0x0804CC64 - movs r0, #1 - bx lr - - thumb_func_start nullsub_246 -nullsub_246: @ 0x0804CC68 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CC6C -sub_0804CC6C: @ 0x0804CC6C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CC70 -sub_0804CC70: @ 0x0804CC70 - push {lr} - ldr r0, _0804CC94 @ =gUnk_02002A40 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _0804CC7E - cmp r0, #2 - beq _0804CCA0 -_0804CC7E: - ldr r1, _0804CC98 @ =0x0000020B - movs r0, #0x90 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804CC9C @ =0x00000411 - movs r0, #0x90 - movs r2, #1 - bl sub_0807B314 - b _0804CCB4 - .align 2, 0 -_0804CC94: .4byte gUnk_02002A40 -_0804CC98: .4byte 0x0000020B -_0804CC9C: .4byte 0x00000411 -_0804CCA0: - ldr r1, _0804CCE4 @ =0x00000211 - movs r0, #0x90 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804CCE8 @ =0x0000040B - movs r0, #0x90 - movs r2, #1 - bl sub_0807B314 -_0804CCB4: - movs r0, #0x15 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804CCCA - movs r1, #0xc1 - lsls r1, r1, #2 - movs r0, #0x76 - movs r2, #2 - bl sub_0807B314 -_0804CCCA: - movs r0, #0x16 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804CCE0 - movs r1, #0xc6 - lsls r1, r1, #2 - movs r0, #0x76 - movs r2, #2 - bl sub_0807B314 -_0804CCE0: - pop {pc} - .align 2, 0 -_0804CCE4: .4byte 0x00000211 -_0804CCE8: .4byte 0x0000040B - - thumb_func_start sub_0804CCEC -sub_0804CCEC: @ 0x0804CCEC - movs r0, #1 - bx lr - - thumb_func_start nullsub_247 -nullsub_247: @ 0x0804CCF0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CCF4 -sub_0804CCF4: @ 0x0804CCF4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_248 -nullsub_248: @ 0x0804CCF8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CCFC -sub_0804CCFC: @ 0x0804CCFC - movs r0, #1 - bx lr - - thumb_func_start nullsub_249 -nullsub_249: @ 0x0804CD00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD04 -sub_0804CD04: @ 0x0804CD04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_250 -nullsub_250: @ 0x0804CD08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD0C -sub_0804CD0C: @ 0x0804CD0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_251 -nullsub_251: @ 0x0804CD10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD14 -sub_0804CD14: @ 0x0804CD14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_252 -nullsub_252: @ 0x0804CD18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD1C -sub_0804CD1C: @ 0x0804CD1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_253 -nullsub_253: @ 0x0804CD20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD24 -sub_0804CD24: @ 0x0804CD24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_254 -nullsub_254: @ 0x0804CD28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD2C -sub_0804CD2C: @ 0x0804CD2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_255 -nullsub_255: @ 0x0804CD30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD34 -sub_0804CD34: @ 0x0804CD34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_256 -nullsub_256: @ 0x0804CD38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD3C -sub_0804CD3C: @ 0x0804CD3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_257 -nullsub_257: @ 0x0804CD40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CD44 -sub_0804CD44: @ 0x0804CD44 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CD48 -sub_0804CD48: @ 0x0804CD48 - push {r4, lr} - movs r0, #0x48 - bl sub_0807CBD0 - adds r4, r0, #0 - cmp r4, #0 - bne _0804CD80 - movs r0, #0x48 - bl sub_0807CCB4 - movs r0, #5 - movs r1, #0 - bl sub_080A7138 - ldr r0, _0804CD94 @ =gUnk_02000070 - strb r4, [r0] - ldr r0, _0804CD98 @ =gUnk_03000FD0 - strb r4, [r0] - ldr r0, _0804CD9C @ =gUnk_0200B644 - str r4, [r0] - movs r1, #0xa0 - lsls r1, r1, #0x13 - ldr r2, _0804CDA0 @ =0x00007FFF - adds r0, r2, #0 - strh r0, [r1] - movs r0, #1 - bl sub_0801DA90 -_0804CD80: - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - beq _0804CDA8 - ldr r0, _0804CDA4 @ =gUnk_080DF94C - bl sub_0804ADDC - b _0804CDBE - .align 2, 0 -_0804CD94: .4byte gUnk_02000070 -_0804CD98: .4byte gUnk_03000FD0 -_0804CD9C: .4byte gUnk_0200B644 -_0804CDA0: .4byte 0x00007FFF -_0804CDA4: .4byte gUnk_080DF94C -_0804CDA8: - ldr r0, _0804CDC0 @ =0x80100000 - bl sub_080A3268 - ldr r0, _0804CDC4 @ =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] -_0804CDBE: - pop {r4, pc} - .align 2, 0 -_0804CDC0: .4byte 0x80100000 -_0804CDC4: .4byte gUnk_02033A90 - - thumb_func_start sub_0804CDC8 -sub_0804CDC8: @ 0x0804CDC8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_258 -nullsub_258: @ 0x0804CDCC - bx lr - .align 2, 0 - - thumb_func_start sub_0804CDD0 -sub_0804CDD0: @ 0x0804CDD0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CDD4 -sub_0804CDD4: @ 0x0804CDD4 - push {lr} - bl sub_08058D34 - ldr r2, _0804CDEC @ =gUnk_02033A90 - ldrb r1, [r2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0804CDF0 @ =gUnk_03001000 - movs r0, #5 - strb r0, [r1, #4] - pop {pc} - .align 2, 0 -_0804CDEC: .4byte gUnk_02033A90 -_0804CDF0: .4byte gUnk_03001000 - - thumb_func_start sub_0804CDF4 -sub_0804CDF4: @ 0x0804CDF4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CDF8 -sub_0804CDF8: @ 0x0804CDF8 - push {lr} - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - beq _0804CE18 - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #1 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0804CE18 - ldr r0, _0804CE1C @ =gUnk_080DFB78 - bl sub_0804ADDC -_0804CE18: - pop {pc} - .align 2, 0 -_0804CE1C: .4byte gUnk_080DFB78 - - thumb_func_start sub_0804CE20 -sub_0804CE20: @ 0x0804CE20 - movs r0, #1 - bx lr - - thumb_func_start nullsub_259 -nullsub_259: @ 0x0804CE24 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE28 -sub_0804CE28: @ 0x0804CE28 - movs r0, #1 - bx lr - - thumb_func_start nullsub_260 -nullsub_260: @ 0x0804CE2C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE30 -sub_0804CE30: @ 0x0804CE30 - movs r0, #1 - bx lr - - thumb_func_start nullsub_261 -nullsub_261: @ 0x0804CE34 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE38 -sub_0804CE38: @ 0x0804CE38 - movs r0, #1 - bx lr - - thumb_func_start nullsub_262 -nullsub_262: @ 0x0804CE3C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE40 -sub_0804CE40: @ 0x0804CE40 - movs r0, #1 - bx lr - - thumb_func_start nullsub_263 -nullsub_263: @ 0x0804CE44 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE48 -sub_0804CE48: @ 0x0804CE48 - movs r0, #1 - bx lr - - thumb_func_start nullsub_264 -nullsub_264: @ 0x0804CE4C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE50 -sub_0804CE50: @ 0x0804CE50 - movs r0, #1 - bx lr - - thumb_func_start nullsub_265 -nullsub_265: @ 0x0804CE54 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE58 -sub_0804CE58: @ 0x0804CE58 - movs r0, #1 - bx lr - - thumb_func_start nullsub_266 -nullsub_266: @ 0x0804CE5C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE60 -sub_0804CE60: @ 0x0804CE60 - movs r0, #1 - bx lr - - thumb_func_start nullsub_267 -nullsub_267: @ 0x0804CE64 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE68 -sub_0804CE68: @ 0x0804CE68 - movs r0, #1 - bx lr - - thumb_func_start nullsub_268 -nullsub_268: @ 0x0804CE6C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE70 -sub_0804CE70: @ 0x0804CE70 - movs r0, #1 - bx lr - - thumb_func_start nullsub_269 -nullsub_269: @ 0x0804CE74 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE78 -sub_0804CE78: @ 0x0804CE78 - movs r0, #1 - bx lr - - thumb_func_start nullsub_270 -nullsub_270: @ 0x0804CE7C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CE80 -sub_0804CE80: @ 0x0804CE80 - push {lr} - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _0804CE92 - ldr r1, _0804CE98 @ =gUnk_02034350 - ldr r0, _0804CE9C @ =gUnk_080E103C - str r0, [r1, #0x70] -_0804CE92: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804CE98: .4byte gUnk_02034350 -_0804CE9C: .4byte gUnk_080E103C - - thumb_func_start nullsub_271 -nullsub_271: @ 0x0804CEA0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CEA4 -sub_0804CEA4: @ 0x0804CEA4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_272 -nullsub_272: @ 0x0804CEA8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CEAC -sub_0804CEAC: @ 0x0804CEAC - movs r0, #1 - bx lr - - thumb_func_start nullsub_273 -nullsub_273: @ 0x0804CEB0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CEB4 -sub_0804CEB4: @ 0x0804CEB4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_274 -nullsub_274: @ 0x0804CEB8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CEBC -sub_0804CEBC: @ 0x0804CEBC - movs r0, #1 - bx lr - - thumb_func_start nullsub_275 -nullsub_275: @ 0x0804CEC0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CEC4 -sub_0804CEC4: @ 0x0804CEC4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_276 -nullsub_276: @ 0x0804CEC8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CECC -sub_0804CECC: @ 0x0804CECC - movs r0, #1 - bx lr - - thumb_func_start nullsub_277 -nullsub_277: @ 0x0804CED0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CED4 -sub_0804CED4: @ 0x0804CED4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CED8 -sub_0804CED8: @ 0x0804CED8 - push {lr} - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _0804CF18 - ldr r1, _0804CF04 @ =gUnk_0200B650 - movs r0, #0 - str r0, [r1] - ldr r2, _0804CF08 @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0804CF0C @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - ldr r0, _0804CF10 @ =gLinkEntity - bl sub_0807AABC - ldr r0, _0804CF14 @ =gUnk_080E1814 - bl sub_0804ADDC - b _0804CF2E - .align 2, 0 -_0804CF04: .4byte gUnk_0200B650 -_0804CF08: .4byte gUnk_03000F50 -_0804CF0C: .4byte 0x0000FDFF -_0804CF10: .4byte gLinkEntity -_0804CF14: .4byte gUnk_080E1814 -_0804CF18: - ldr r0, _0804CF30 @ =0x80100000 - bl sub_080A3268 - ldr r0, _0804CF34 @ =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] -_0804CF2E: - pop {pc} - .align 2, 0 -_0804CF30: .4byte 0x80100000 -_0804CF34: .4byte gUnk_02033A90 - - thumb_func_start sub_0804CF38 -sub_0804CF38: @ 0x0804CF38 - movs r0, #1 - bx lr - - thumb_func_start nullsub_278 -nullsub_278: @ 0x0804CF3C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CF40 -sub_0804CF40: @ 0x0804CF40 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CF44 -sub_0804CF44: @ 0x0804CF44 - ldr r1, _0804CF58 @ =gUnk_030010A0 - adds r2, r1, #0 - adds r2, #0x38 - movs r0, #0 - strb r0, [r2] - adds r1, #0x39 - movs r0, #0x5a - strb r0, [r1] - bx lr - .align 2, 0 -_0804CF58: .4byte gUnk_030010A0 - - thumb_func_start sub_0804CF5C -sub_0804CF5C: @ 0x0804CF5C - movs r0, #1 - bx lr - - thumb_func_start sub_0804CF60 -sub_0804CF60: @ 0x0804CF60 - push {lr} - bl sub_080300E8 - pop {pc} - - thumb_func_start sub_0804CF68 -sub_0804CF68: @ 0x0804CF68 - movs r0, #1 - bx lr - - thumb_func_start nullsub_39 -nullsub_39: @ 0x0804CF6C - bx lr - .align 2, 0 - - thumb_func_start sub_0804CF70 -sub_0804CF70: @ 0x0804CF70 - movs r0, #1 - bx lr - - thumb_func_start sub_0804CF74 -sub_0804CF74: @ 0x0804CF74 - push {lr} - bl sub_080300E8 - pop {pc} - - thumb_func_start sub_0804CF7C -sub_0804CF7C: @ 0x0804CF7C - movs r0, #1 - bx lr - - thumb_func_start nullsub_40 -nullsub_40: @ 0x0804CF80 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CF84 -sub_0804CF84: @ 0x0804CF84 - movs r0, #1 - bx lr - - thumb_func_start nullsub_41 -nullsub_41: @ 0x0804CF88 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CF8C -sub_0804CF8C: @ 0x0804CF8C - movs r0, #1 - bx lr - - thumb_func_start nullsub_42 -nullsub_42: @ 0x0804CF90 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CF94 -sub_0804CF94: @ 0x0804CF94 - movs r0, #1 - bx lr - - thumb_func_start nullsub_43 -nullsub_43: @ 0x0804CF98 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CF9C -sub_0804CF9C: @ 0x0804CF9C - movs r0, #1 - bx lr - - thumb_func_start nullsub_44 -nullsub_44: @ 0x0804CFA0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CFA4 -sub_0804CFA4: @ 0x0804CFA4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_45 -nullsub_45: @ 0x0804CFA8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804CFAC -sub_0804CFAC: @ 0x0804CFAC - movs r0, #1 - bx lr - - thumb_func_start sub_0804CFB0 -sub_0804CFB0: @ 0x0804CFB0 - push {lr} - movs r0, #0x31 - bl sub_0807CBE4 - cmp r0, #0 - bne _0804CFFE - ldr r1, _0804CFD0 @ =gUnk_030010A0 - adds r0, r1, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _0804CFD8 - ldr r0, _0804CFD4 @ =0x80100000 - bl sub_080A3268 - b _0804CFEE - .align 2, 0 -_0804CFD0: .4byte gUnk_030010A0 -_0804CFD4: .4byte 0x80100000 -_0804CFD8: - adds r0, r1, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _0804CFEE - ldr r0, _0804D000 @ =0x80050000 - bl sub_080A3268 - movs r0, #3 - bl sub_08078A90 -_0804CFEE: - ldr r0, _0804D004 @ =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] -_0804CFFE: - pop {pc} - .align 2, 0 -_0804D000: .4byte 0x80050000 -_0804D004: .4byte gUnk_02033A90 - - thumb_func_start sub_0804D008 -sub_0804D008: @ 0x0804D008 - movs r0, #1 - bx lr - - thumb_func_start nullsub_279 -nullsub_279: @ 0x0804D00C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D010 -sub_0804D010: @ 0x0804D010 - movs r0, #1 - bx lr - - thumb_func_start nullsub_280 -nullsub_280: @ 0x0804D014 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D018 -sub_0804D018: @ 0x0804D018 - movs r0, #1 - bx lr - - thumb_func_start nullsub_281 -nullsub_281: @ 0x0804D01C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D020 -sub_0804D020: @ 0x0804D020 - movs r0, #1 - bx lr - - thumb_func_start nullsub_282 -nullsub_282: @ 0x0804D024 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D028 -sub_0804D028: @ 0x0804D028 - movs r0, #1 - bx lr - - thumb_func_start nullsub_283 -nullsub_283: @ 0x0804D02C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D030 -sub_0804D030: @ 0x0804D030 - movs r0, #1 - bx lr - - thumb_func_start nullsub_284 -nullsub_284: @ 0x0804D034 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D038 -sub_0804D038: @ 0x0804D038 - movs r0, #1 - bx lr - - thumb_func_start nullsub_285 -nullsub_285: @ 0x0804D03C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D040 -sub_0804D040: @ 0x0804D040 - movs r0, #1 - bx lr - - thumb_func_start nullsub_286 -nullsub_286: @ 0x0804D044 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D048 -sub_0804D048: @ 0x0804D048 - movs r0, #1 - bx lr - - thumb_func_start nullsub_287 -nullsub_287: @ 0x0804D04C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D050 -sub_0804D050: @ 0x0804D050 - movs r0, #1 - bx lr - - thumb_func_start nullsub_288 -nullsub_288: @ 0x0804D054 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D058 -sub_0804D058: @ 0x0804D058 - movs r0, #1 - bx lr - - thumb_func_start nullsub_289 -nullsub_289: @ 0x0804D05C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D060 -sub_0804D060: @ 0x0804D060 - movs r0, #1 - bx lr - - thumb_func_start nullsub_290 -nullsub_290: @ 0x0804D064 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D068 -sub_0804D068: @ 0x0804D068 - movs r0, #1 - bx lr - - thumb_func_start nullsub_291 -nullsub_291: @ 0x0804D06C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D070 -sub_0804D070: @ 0x0804D070 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D074 -sub_0804D074: @ 0x0804D074 - push {lr} - movs r0, #4 - bl sub_0807CD04 - bl sub_080530C8 - movs r0, #3 - bl sub_0805B4D0 - movs r0, #0x17 - bl sub_0807CA84 - cmp r0, #0 - bne _0804D0A0 - movs r0, #0x45 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804D0A0 - ldr r0, _0804D0A4 @ =gUnk_080E3850 - bl sub_0804ADDC -_0804D0A0: - pop {pc} - .align 2, 0 -_0804D0A4: .4byte gUnk_080E3850 - - thumb_func_start sub_0804D0A8 -sub_0804D0A8: @ 0x0804D0A8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D0AC -sub_0804D0AC: @ 0x0804D0AC - push {lr} - bl sub_0804D0B4 - pop {pc} - - thumb_func_start sub_0804D0B4 -sub_0804D0B4: @ 0x0804D0B4 - push {lr} - movs r0, #0x29 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D0D2 - movs r0, #0x29 - bl sub_0807CCB4 - movs r0, #0x4b - bl sub_0807CCB4 - movs r0, #0x4e - bl sub_0807CCB4 -_0804D0D2: - pop {pc} - - thumb_func_start sub_0804D0D4 -sub_0804D0D4: @ 0x0804D0D4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_46 -nullsub_46: @ 0x0804D0D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D0DC -sub_0804D0DC: @ 0x0804D0DC - movs r0, #1 - bx lr - - thumb_func_start nullsub_47 -nullsub_47: @ 0x0804D0E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D0E4 -sub_0804D0E4: @ 0x0804D0E4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_48 -nullsub_48: @ 0x0804D0E8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D0EC -sub_0804D0EC: @ 0x0804D0EC - movs r0, #1 - bx lr - - thumb_func_start nullsub_49 -nullsub_49: @ 0x0804D0F0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D0F4 -sub_0804D0F4: @ 0x0804D0F4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_50 -nullsub_50: @ 0x0804D0F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D0FC -sub_0804D0FC: @ 0x0804D0FC - movs r0, #1 - bx lr - - thumb_func_start nullsub_51 -nullsub_51: @ 0x0804D100 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D104 -sub_0804D104: @ 0x0804D104 - movs r0, #1 - bx lr - - thumb_func_start nullsub_52 -nullsub_52: @ 0x0804D108 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D10C -sub_0804D10C: @ 0x0804D10C - movs r0, #1 - bx lr - - thumb_func_start nullsub_53 -nullsub_53: @ 0x0804D110 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D114 -sub_0804D114: @ 0x0804D114 - movs r0, #1 - bx lr - - thumb_func_start nullsub_54 -nullsub_54: @ 0x0804D118 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D11C -sub_0804D11C: @ 0x0804D11C - movs r0, #1 - bx lr - - thumb_func_start nullsub_55 -nullsub_55: @ 0x0804D120 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D124 -sub_0804D124: @ 0x0804D124 - movs r0, #1 - bx lr - - thumb_func_start nullsub_56 -nullsub_56: @ 0x0804D128 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D12C -sub_0804D12C: @ 0x0804D12C - movs r0, #1 - bx lr - - thumb_func_start nullsub_57 -nullsub_57: @ 0x0804D130 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D134 -sub_0804D134: @ 0x0804D134 - movs r0, #1 - bx lr - - thumb_func_start nullsub_58 -nullsub_58: @ 0x0804D138 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D13C -sub_0804D13C: @ 0x0804D13C - movs r0, #1 - bx lr - - thumb_func_start sub_0804D140 -sub_0804D140: @ 0x0804D140 - push {lr} - movs r0, #0x80 - lsls r0, r0, #1 - bl sub_0805308C - movs r0, #5 - bl GetProgressFlag - cmp r0, #0 - beq _0804D160 - ldr r0, _0804D15C @ =gUnk_080E49F4 - bl sub_0804ADDC - b _0804D176 - .align 2, 0 -_0804D15C: .4byte gUnk_080E49F4 -_0804D160: - ldr r0, _0804D178 @ =0x80100000 - bl sub_080A3268 - ldr r0, _0804D17C @ =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] -_0804D176: - pop {pc} - .align 2, 0 -_0804D178: .4byte 0x80100000 -_0804D17C: .4byte gUnk_02033A90 - - thumb_func_start sub_0804D180 -sub_0804D180: @ 0x0804D180 - movs r0, #1 - bx lr - - thumb_func_start nullsub_292 -nullsub_292: @ 0x0804D184 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D188 -sub_0804D188: @ 0x0804D188 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D18C -sub_0804D18C: @ 0x0804D18C - push {lr} - movs r0, #0x48 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D1A4 - movs r0, #0x46 - bl sub_0807CD34 - ldr r0, _0804D1A8 @ =gUnk_080E4BD8 - bl sub_0804ADDC -_0804D1A4: - pop {pc} - .align 2, 0 -_0804D1A8: .4byte gUnk_080E4BD8 - - thumb_func_start sub_0804D1AC -sub_0804D1AC: @ 0x0804D1AC - movs r0, #1 - bx lr - - thumb_func_start sub_0804D1B0 -sub_0804D1B0: @ 0x0804D1B0 - push {lr} - bl sub_0804D0B4 - movs r0, #0x6c - bl sub_0807CBD0 - cmp r0, #0 - beq _0804D1CC - ldr r0, _0804D1C8 @ =gUnk_080E4CD8 - bl sub_0804ADDC - b _0804D1D2 - .align 2, 0 -_0804D1C8: .4byte gUnk_080E4CD8 -_0804D1CC: - ldr r0, _0804D1E4 @ =gUnk_080E4CF8 - bl sub_0804ADDC -_0804D1D2: - movs r0, #0x4b - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D1E2 - movs r0, #0x49 - bl sub_0807CD34 -_0804D1E2: - pop {pc} - .align 2, 0 -_0804D1E4: .4byte gUnk_080E4CF8 - - thumb_func_start sub_0804D1E8 -sub_0804D1E8: @ 0x0804D1E8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_293 -nullsub_293: @ 0x0804D1EC - bx lr - .align 2, 0 - - thumb_func_start sub_0804D1F0 -sub_0804D1F0: @ 0x0804D1F0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_294 -nullsub_294: @ 0x0804D1F4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D1F8 -sub_0804D1F8: @ 0x0804D1F8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_295 -nullsub_295: @ 0x0804D1FC - bx lr - .align 2, 0 - - thumb_func_start sub_0804D200 -sub_0804D200: @ 0x0804D200 - movs r0, #1 - bx lr - - thumb_func_start nullsub_296 -nullsub_296: @ 0x0804D204 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D208 -sub_0804D208: @ 0x0804D208 - movs r0, #1 - bx lr - - thumb_func_start nullsub_297 -nullsub_297: @ 0x0804D20C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D210 -sub_0804D210: @ 0x0804D210 - movs r0, #1 - bx lr - - thumb_func_start nullsub_298 -nullsub_298: @ 0x0804D214 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D218 -sub_0804D218: @ 0x0804D218 - movs r0, #1 - bx lr - - thumb_func_start nullsub_299 -nullsub_299: @ 0x0804D21C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D220 -sub_0804D220: @ 0x0804D220 - movs r0, #1 - bx lr - - thumb_func_start nullsub_300 -nullsub_300: @ 0x0804D224 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D228 -sub_0804D228: @ 0x0804D228 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D22C -sub_0804D22C: @ 0x0804D22C - push {lr} - movs r0, #0x59 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D244 - ldr r0, _0804D240 @ =gUnk_080E5660 - bl sub_0804ADDC - b _0804D24A - .align 2, 0 -_0804D240: .4byte gUnk_080E5660 -_0804D244: - ldr r0, _0804D24C @ =gUnk_080E5680 - bl sub_0804ADDC -_0804D24A: - pop {pc} - .align 2, 0 -_0804D24C: .4byte gUnk_080E5680 - - thumb_func_start sub_0804D250 -sub_0804D250: @ 0x0804D250 - movs r0, #1 - bx lr - - thumb_func_start nullsub_301 -nullsub_301: @ 0x0804D254 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D258 -sub_0804D258: @ 0x0804D258 - movs r0, #1 - bx lr - - thumb_func_start nullsub_302 -nullsub_302: @ 0x0804D25C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D260 -sub_0804D260: @ 0x0804D260 - movs r0, #1 - bx lr - - thumb_func_start nullsub_303 -nullsub_303: @ 0x0804D264 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D268 -sub_0804D268: @ 0x0804D268 - movs r0, #1 - bx lr - - thumb_func_start nullsub_304 -nullsub_304: @ 0x0804D26C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D270 -sub_0804D270: @ 0x0804D270 - movs r0, #1 - bx lr - - thumb_func_start nullsub_305 -nullsub_305: @ 0x0804D274 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D278 -sub_0804D278: @ 0x0804D278 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D27C -sub_0804D27C: @ 0x0804D27C - push {lr} - bl sub_0804D0B4 - movs r0, #0x4b - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D298 - ldr r0, _0804D294 @ =gUnk_080E5E3C - bl sub_0804ADDC - b _0804D29E - .align 2, 0 -_0804D294: .4byte gUnk_080E5E3C -_0804D298: - ldr r0, _0804D2A0 @ =gUnk_080E5E5C - bl sub_0804ADDC -_0804D29E: - pop {pc} - .align 2, 0 -_0804D2A0: .4byte gUnk_080E5E5C - - thumb_func_start sub_0804D2A4 -sub_0804D2A4: @ 0x0804D2A4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_306 -nullsub_306: @ 0x0804D2A8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D2AC -sub_0804D2AC: @ 0x0804D2AC - movs r0, #1 - bx lr - - thumb_func_start nullsub_307 -nullsub_307: @ 0x0804D2B0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D2B4 -sub_0804D2B4: @ 0x0804D2B4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_308 -nullsub_308: @ 0x0804D2B8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D2BC -sub_0804D2BC: @ 0x0804D2BC - movs r0, #1 - bx lr - - thumb_func_start nullsub_309 -nullsub_309: @ 0x0804D2C0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D2C4 -sub_0804D2C4: @ 0x0804D2C4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_310 -nullsub_310: @ 0x0804D2C8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D2CC -sub_0804D2CC: @ 0x0804D2CC - movs r0, #1 - bx lr - - thumb_func_start nullsub_311 -nullsub_311: @ 0x0804D2D0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D2D4 -sub_0804D2D4: @ 0x0804D2D4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_312 -nullsub_312: @ 0x0804D2D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D2DC -sub_0804D2DC: @ 0x0804D2DC - movs r0, #1 - bx lr - - thumb_func_start nullsub_313 -nullsub_313: @ 0x0804D2E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D2E4 -sub_0804D2E4: @ 0x0804D2E4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D2E8 -sub_0804D2E8: @ 0x0804D2E8 - push {lr} - movs r0, #0x32 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D2FA - ldr r0, _0804D2FC @ =gUnk_080E693C - bl sub_0804ADDC -_0804D2FA: - pop {pc} - .align 2, 0 -_0804D2FC: .4byte gUnk_080E693C - - thumb_func_start sub_0804D300 -sub_0804D300: @ 0x0804D300 - movs r0, #1 - bx lr - - thumb_func_start nullsub_314 -nullsub_314: @ 0x0804D304 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D308 -sub_0804D308: @ 0x0804D308 - movs r0, #1 - bx lr - - thumb_func_start nullsub_315 -nullsub_315: @ 0x0804D30C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D310 -sub_0804D310: @ 0x0804D310 - movs r0, #1 - bx lr - - thumb_func_start nullsub_316 -nullsub_316: @ 0x0804D314 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D318 -sub_0804D318: @ 0x0804D318 - movs r0, #1 - bx lr - - thumb_func_start nullsub_317 -nullsub_317: @ 0x0804D31C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D320 -sub_0804D320: @ 0x0804D320 - movs r0, #1 - bx lr - - thumb_func_start nullsub_318 -nullsub_318: @ 0x0804D324 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D328 -sub_0804D328: @ 0x0804D328 - movs r0, #1 - bx lr - - thumb_func_start nullsub_319 -nullsub_319: @ 0x0804D32C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D330 -sub_0804D330: @ 0x0804D330 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D334 -sub_0804D334: @ 0x0804D334 - push {lr} - bl sub_08054570 - pop {pc} - - thumb_func_start sub_0804D33C -sub_0804D33C: @ 0x0804D33C - movs r0, #1 - bx lr - - thumb_func_start sub_0804D340 -sub_0804D340: @ 0x0804D340 - push {lr} - ldr r0, _0804D374 @ =0x00000312 - movs r1, #0x84 - lsls r1, r1, #1 - movs r2, #1 - bl sub_0807B314 - bl sub_08054570 - movs r0, #0xc4 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D362 - ldr r0, _0804D378 @ =gUnk_080E718C - bl sub_0804ADDC -_0804D362: - movs r0, #0xc5 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D372 - ldr r0, _0804D37C @ =gUnk_080E71AC - bl sub_0804ADDC -_0804D372: - pop {pc} - .align 2, 0 -_0804D374: .4byte 0x00000312 -_0804D378: .4byte gUnk_080E718C -_0804D37C: .4byte gUnk_080E71AC - - thumb_func_start sub_0804D380 -sub_0804D380: @ 0x0804D380 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D384 -sub_0804D384: @ 0x0804D384 - push {lr} - movs r0, #0 - bl sub_0805AF60 - movs r0, #6 - bl GetProgressFlag - cmp r0, #0 - beq _0804D39C - ldr r0, _0804D3B0 @ =gUnk_080E7314 - bl sub_0804ADDC -_0804D39C: - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D3B8 - ldr r0, _0804D3B4 @ =gUnk_080E72C4 - bl sub_0804ADDC - b _0804D3EA - .align 2, 0 -_0804D3B0: .4byte gUnk_080E7314 -_0804D3B4: .4byte gUnk_080E72C4 -_0804D3B8: - movs r0, #6 - bl sub_0807CD04 - movs r0, #0x43 - bl sub_0807CA84 - cmp r0, #0 - bne _0804D3EA - movs r0, #3 - bl sub_08078A90 - ldr r0, _0804D3EC @ =gUnk_080E72E4 - bl sub_0804ADDC - ldr r0, _0804D3F0 @ =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, _0804D3F4 @ =0x80100000 - bl sub_080A3268 -_0804D3EA: - pop {pc} - .align 2, 0 -_0804D3EC: .4byte gUnk_080E72E4 -_0804D3F0: .4byte gUnk_02033A90 -_0804D3F4: .4byte 0x80100000 - - thumb_func_start sub_0804D3F8 -sub_0804D3F8: @ 0x0804D3F8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D3FC -sub_0804D3FC: @ 0x0804D3FC - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D408 -sub_0804D408: @ 0x0804D408 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D40C -sub_0804D40C: @ 0x0804D40C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D418 -sub_0804D418: @ 0x0804D418 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D41C -sub_0804D41C: @ 0x0804D41C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D428 -sub_0804D428: @ 0x0804D428 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D42C -sub_0804D42C: @ 0x0804D42C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D438 -sub_0804D438: @ 0x0804D438 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D43C -sub_0804D43C: @ 0x0804D43C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D448 -sub_0804D448: @ 0x0804D448 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D44C -sub_0804D44C: @ 0x0804D44C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D458 -sub_0804D458: @ 0x0804D458 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D45C -sub_0804D45C: @ 0x0804D45C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D468 -sub_0804D468: @ 0x0804D468 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D46C -sub_0804D46C: @ 0x0804D46C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D478 -sub_0804D478: @ 0x0804D478 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D47C -sub_0804D47C: @ 0x0804D47C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D488 -sub_0804D488: @ 0x0804D488 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D48C -sub_0804D48C: @ 0x0804D48C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D498 -sub_0804D498: @ 0x0804D498 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D49C -sub_0804D49C: @ 0x0804D49C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D4A8 -sub_0804D4A8: @ 0x0804D4A8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D4AC -sub_0804D4AC: @ 0x0804D4AC - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D4B8 -sub_0804D4B8: @ 0x0804D4B8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D4BC -sub_0804D4BC: @ 0x0804D4BC - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D4C8 -sub_0804D4C8: @ 0x0804D4C8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D4CC -sub_0804D4CC: @ 0x0804D4CC - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D4D8 -sub_0804D4D8: @ 0x0804D4D8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D4DC -sub_0804D4DC: @ 0x0804D4DC - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D4E8 -sub_0804D4E8: @ 0x0804D4E8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D4EC -sub_0804D4EC: @ 0x0804D4EC - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D4F8 -sub_0804D4F8: @ 0x0804D4F8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D4FC -sub_0804D4FC: @ 0x0804D4FC - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D508 -sub_0804D508: @ 0x0804D508 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D50C -sub_0804D50C: @ 0x0804D50C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D518 -sub_0804D518: @ 0x0804D518 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D51C -sub_0804D51C: @ 0x0804D51C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D528 -sub_0804D528: @ 0x0804D528 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D52C -sub_0804D52C: @ 0x0804D52C - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D538 -sub_0804D538: @ 0x0804D538 - movs r0, #1 - bx lr - - thumb_func_start nullsub_59 -nullsub_59: @ 0x0804D53C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D540 -sub_0804D540: @ 0x0804D540 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D544 -sub_0804D544: @ 0x0804D544 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D550 -sub_0804D550: @ 0x0804D550 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D554 -sub_0804D554: @ 0x0804D554 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D560 -sub_0804D560: @ 0x0804D560 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D564 -sub_0804D564: @ 0x0804D564 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D570 -sub_0804D570: @ 0x0804D570 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D574 -sub_0804D574: @ 0x0804D574 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D580 -sub_0804D580: @ 0x0804D580 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D584 -sub_0804D584: @ 0x0804D584 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D590 -sub_0804D590: @ 0x0804D590 - movs r0, #1 - bx lr - - thumb_func_start nullsub_60 -nullsub_60: @ 0x0804D594 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D598 -sub_0804D598: @ 0x0804D598 - movs r0, #1 - bx lr - - thumb_func_start nullsub_61 -nullsub_61: @ 0x0804D59C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D5A0 -sub_0804D5A0: @ 0x0804D5A0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_62 -nullsub_62: @ 0x0804D5A4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D5A8 -sub_0804D5A8: @ 0x0804D5A8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_63 -nullsub_63: @ 0x0804D5AC - bx lr - .align 2, 0 - - thumb_func_start sub_0804D5B0 -sub_0804D5B0: @ 0x0804D5B0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_64 -nullsub_64: @ 0x0804D5B4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D5B8 -sub_0804D5B8: @ 0x0804D5B8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_65 -nullsub_65: @ 0x0804D5BC - bx lr - .align 2, 0 - - thumb_func_start sub_0804D5C0 -sub_0804D5C0: @ 0x0804D5C0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D5C4 -sub_0804D5C4: @ 0x0804D5C4 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D5D0 -sub_0804D5D0: @ 0x0804D5D0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D5D4 -sub_0804D5D4: @ 0x0804D5D4 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D5E0 -sub_0804D5E0: @ 0x0804D5E0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D5E4 -sub_0804D5E4: @ 0x0804D5E4 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D5F0 -sub_0804D5F0: @ 0x0804D5F0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D5F4 -sub_0804D5F4: @ 0x0804D5F4 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D600 -sub_0804D600: @ 0x0804D600 - movs r0, #1 - bx lr - - thumb_func_start nullsub_66 -nullsub_66: @ 0x0804D604 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D608 -sub_0804D608: @ 0x0804D608 - movs r0, #1 - bx lr - - thumb_func_start nullsub_67 -nullsub_67: @ 0x0804D60C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D610 -sub_0804D610: @ 0x0804D610 - movs r0, #1 - bx lr - - thumb_func_start nullsub_68 -nullsub_68: @ 0x0804D614 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D618 -sub_0804D618: @ 0x0804D618 - movs r0, #1 - bx lr - - thumb_func_start nullsub_69 -nullsub_69: @ 0x0804D61C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D620 -sub_0804D620: @ 0x0804D620 - movs r0, #1 - bx lr - - thumb_func_start nullsub_70 -nullsub_70: @ 0x0804D624 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D628 -sub_0804D628: @ 0x0804D628 - movs r0, #1 - bx lr - - thumb_func_start nullsub_71 -nullsub_71: @ 0x0804D62C - bx lr - .align 2, 0 - - thumb_func_start sub_0804D630 -sub_0804D630: @ 0x0804D630 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D634 -sub_0804D634: @ 0x0804D634 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D640 -sub_0804D640: @ 0x0804D640 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D644 -sub_0804D644: @ 0x0804D644 - push {lr} - movs r0, #0 - bl sub_0805AF60 - movs r0, #0x70 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D65C - ldr r0, _0804D660 @ =gUnk_080EA09C - bl sub_0804ADDC -_0804D65C: - pop {pc} - .align 2, 0 -_0804D660: .4byte gUnk_080EA09C - - thumb_func_start sub_0804D664 -sub_0804D664: @ 0x0804D664 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D668 -sub_0804D668: @ 0x0804D668 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D674 -sub_0804D674: @ 0x0804D674 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D678 -sub_0804D678: @ 0x0804D678 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D684 -sub_0804D684: @ 0x0804D684 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D688 -sub_0804D688: @ 0x0804D688 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D694 -sub_0804D694: @ 0x0804D694 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D698 -sub_0804D698: @ 0x0804D698 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D6A4 -sub_0804D6A4: @ 0x0804D6A4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D6A8 -sub_0804D6A8: @ 0x0804D6A8 - push {lr} - movs r0, #0 - bl sub_0805AF60 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D6B4 -sub_0804D6B4: @ 0x0804D6B4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_72 -nullsub_72: @ 0x0804D6B8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D6BC -sub_0804D6BC: @ 0x0804D6BC - movs r0, #1 - bx lr - - thumb_func_start nullsub_73 -nullsub_73: @ 0x0804D6C0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D6C4 -sub_0804D6C4: @ 0x0804D6C4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D6C8 -sub_0804D6C8: @ 0x0804D6C8 - push {lr} - ldr r0, _0804D6E4 @ =0x80100000 - bl sub_080A3268 - ldr r0, _0804D6E8 @ =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] - pop {pc} - .align 2, 0 -_0804D6E4: .4byte 0x80100000 -_0804D6E8: .4byte gUnk_02033A90 - - thumb_func_start sub_0804D6EC -sub_0804D6EC: @ 0x0804D6EC - movs r0, #1 - bx lr - - thumb_func_start sub_0804D6F0 -sub_0804D6F0: @ 0x0804D6F0 - push {lr} - movs r0, #0 - bl sub_0805D3C8 - ldr r2, _0804D72C @ =gUnk_030010A0 - adds r0, r2, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0804D74C - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - beq _0804D74C - adds r0, r2, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #1 - bne _0804D734 - ldr r1, _0804D730 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x48 - ldrh r0, [r0] - strh r0, [r1, #0x2e] - adds r0, r2, #0 - adds r0, #0x4a - b _0804D746 - .align 2, 0 -_0804D72C: .4byte gUnk_030010A0 -_0804D730: .4byte gLinkEntity -_0804D734: - cmp r0, #0 - bne _0804D74C - ldr r1, _0804D750 @ =gLinkEntity - adds r0, r2, #0 - adds r0, #0x44 - ldrh r0, [r0] - strh r0, [r1, #0x2e] - adds r0, r2, #0 - adds r0, #0x46 -_0804D746: - ldrh r0, [r0] - adds r0, #8 - strh r0, [r1, #0x32] -_0804D74C: - pop {pc} - .align 2, 0 -_0804D750: .4byte gLinkEntity - - thumb_func_start sub_0804D754 -sub_0804D754: @ 0x0804D754 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D758 -sub_0804D758: @ 0x0804D758 - push {lr} - movs r0, #6 - bl sub_0805B4D0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D764 -sub_0804D764: @ 0x0804D764 - movs r0, #1 - bx lr - - thumb_func_start nullsub_74 -nullsub_74: @ 0x0804D768 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D76C -sub_0804D76C: @ 0x0804D76C - movs r0, #1 - bx lr - - thumb_func_start nullsub_75 -nullsub_75: @ 0x0804D770 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D774 -sub_0804D774: @ 0x0804D774 - push {lr} - bl sub_080534AC - movs r0, #1 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804D780 -sub_0804D780: @ 0x0804D780 - push {r4, r5, lr} - movs r0, #4 - bl sub_0805B4D0 - movs r0, #0x77 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D7A0 - ldr r0, _0804D79C @ =gUnk_080EAD68 - bl sub_0804ADDC - b _0804D7D0 - .align 2, 0 -_0804D79C: .4byte gUnk_080EAD68 -_0804D7A0: - movs r0, #0x79 - bl sub_0807CBD0 - adds r5, r0, #0 - cmp r5, #0 - bne _0804D7D0 - ldr r0, _0804D7D4 @ =gUnk_080EADB8 - bl sub_0804ADDC - ldr r4, _0804D7D8 @ =0x00004072 - ldr r1, _0804D7DC @ =0x00000145 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804D7E0 @ =0x00000149 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0804D7E4 @ =gUnk_02033A90 - ldr r1, _0804D7E8 @ =0x00000864 - adds r0, r0, r1 - str r5, [r0] -_0804D7D0: - pop {r4, r5, pc} - .align 2, 0 -_0804D7D4: .4byte gUnk_080EADB8 -_0804D7D8: .4byte 0x00004072 -_0804D7DC: .4byte 0x00000145 -_0804D7E0: .4byte 0x00000149 -_0804D7E4: .4byte gUnk_02033A90 -_0804D7E8: .4byte 0x00000864 - - thumb_func_start sub_0804D7EC -sub_0804D7EC: @ 0x0804D7EC - push {r4, lr} - ldr r4, _0804D7F4 @ =gUnk_080EAE00 - b _0804D804 - .align 2, 0 -_0804D7F4: .4byte gUnk_080EAE00 -_0804D7F8: - ldrh r1, [r4] - adds r4, #2 - ldr r0, _0804D80C @ =0x00004072 - movs r2, #1 - bl sub_0807B314 -_0804D804: - ldrh r0, [r4] - cmp r0, #0 - bne _0804D7F8 - pop {r4, pc} - .align 2, 0 -_0804D80C: .4byte 0x00004072 - - thumb_func_start sub_0804D810 -sub_0804D810: @ 0x0804D810 - push {r4, lr} - ldr r4, _0804D818 @ =gUnk_080EAE00 - b _0804D826 - .align 2, 0 -_0804D818: .4byte gUnk_080EAE00 -_0804D81C: - ldrh r0, [r4] - adds r4, #2 - movs r1, #1 - bl sub_0807BA8C -_0804D826: - ldrh r0, [r4] - cmp r0, #0 - bne _0804D81C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0804D830 -sub_0804D830: @ 0x0804D830 - movs r0, #1 - bx lr - - thumb_func_start sub_0804D834 -sub_0804D834: @ 0x0804D834 - push {r4, lr} - ldr r4, _0804D86C @ =gUnk_02033A90 - movs r0, #0 - movs r1, #0x40 - strb r1, [r4] - strb r0, [r4, #1] - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804D894 - movs r0, #0x7f - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D878 - ldr r0, _0804D870 @ =gUnk_080EAEC0 - bl sub_0804ADDC - movs r0, #0x7f - bl sub_0807CCB4 - ldr r0, _0804D874 @ =0x00000864 - adds r1, r4, r0 - movs r0, #0x11 - str r0, [r1] - b _0804D8BC - .align 2, 0 -_0804D86C: .4byte gUnk_02033A90 -_0804D870: .4byte gUnk_080EAEC0 -_0804D874: .4byte 0x00000864 -_0804D878: - ldr r0, _0804D88C @ =gUnk_080EAF20 - bl sub_0804ADDC - ldr r2, _0804D890 @ =0x00000864 - adds r1, r4, r2 - subs r2, #4 - adds r0, r4, r2 - ldr r0, [r0] - str r0, [r1] - b _0804D8BC - .align 2, 0 -_0804D88C: .4byte gUnk_080EAF20 -_0804D890: .4byte 0x00000864 -_0804D894: - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804D8AC - ldr r1, _0804D8C4 @ =0x00000864 - adds r0, r4, r1 - movs r2, #0x86 - lsls r2, r2, #4 - adds r1, r4, r2 - ldr r1, [r1] - str r1, [r0] -_0804D8AC: - movs r0, #1 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804D8BC - ldr r0, _0804D8C8 @ =gUnk_080EAE60 - bl sub_0804ADDC -_0804D8BC: - movs r0, #0x5d - bl sub_0807CD80 - pop {r4, pc} - .align 2, 0 -_0804D8C4: .4byte 0x00000864 -_0804D8C8: .4byte gUnk_080EAE60 - - thumb_func_start sub_0804D8CC -sub_0804D8CC: @ 0x0804D8CC - movs r0, #1 - bx lr - - thumb_func_start nullsub_320 -nullsub_320: @ 0x0804D8D0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D8D4 -sub_0804D8D4: @ 0x0804D8D4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_321 -nullsub_321: @ 0x0804D8D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D8DC -sub_0804D8DC: @ 0x0804D8DC - movs r0, #1 - bx lr - - thumb_func_start nullsub_322 -nullsub_322: @ 0x0804D8E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D8E4 -sub_0804D8E4: @ 0x0804D8E4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_323 -nullsub_323: @ 0x0804D8E8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D8EC -sub_0804D8EC: @ 0x0804D8EC - movs r0, #1 - bx lr - - thumb_func_start nullsub_324 -nullsub_324: @ 0x0804D8F0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D8F4 -sub_0804D8F4: @ 0x0804D8F4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_325 -nullsub_325: @ 0x0804D8F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D8FC -sub_0804D8FC: @ 0x0804D8FC - movs r0, #1 - bx lr - - thumb_func_start nullsub_326 -nullsub_326: @ 0x0804D900 - bx lr - .align 2, 0 - - thumb_func_start sub_0804D904 -sub_0804D904: @ 0x0804D904 - push {r4, r5, lr} - movs r0, #0x51 - bl GetProgressFlag - adds r5, r0, #0 - cmp r5, #0 - beq _0804D93C - ldr r1, _0804D930 @ =gUnk_02034350 - ldr r0, _0804D934 @ =gUnk_080EB604 - str r0, [r1, #0x6c] - movs r0, #0 - str r0, [r1, #0x74] - ldr r0, _0804D938 @ =gUnk_02033A90 - movs r1, #0x86 - lsls r1, r1, #4 - adds r2, r0, r1 - adds r1, #4 - adds r0, r0, r1 - movs r1, #0x11 - str r1, [r0] - str r1, [r2] - b _0804D96A - .align 2, 0 -_0804D930: .4byte gUnk_02034350 -_0804D934: .4byte gUnk_080EB604 -_0804D938: .4byte gUnk_02033A90 -_0804D93C: - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804D96A - ldr r4, _0804D970 @ =gUnk_02034350 - str r5, [r4, #0x6c] - movs r0, #0x7a - bl sub_0807CBD0 - adds r5, r0, #0 - cmp r5, #0 - bne _0804D96A - movs r0, #0x1c - bl sub_0807CD04 - ldr r0, _0804D974 @ =gUnk_080EB5D4 - str r0, [r4, #0x6c] - adds r1, r4, #0 - adds r1, #0x88 - ldr r0, _0804D978 @ =sub_0804D9B0 - str r0, [r1] - str r5, [r4, #0x74] -_0804D96A: - movs r0, #1 - pop {r4, r5, pc} - .align 2, 0 -_0804D970: .4byte gUnk_02034350 -_0804D974: .4byte gUnk_080EB5D4 -_0804D978: .4byte sub_0804D9B0 - - thumb_func_start sub_0804D97C -sub_0804D97C: @ 0x0804D97C - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804D996 - ldr r0, _0804D9A8 @ =gUnk_02033A90 - ldr r2, _0804D9AC @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804D996: - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804D9A4 - bl sub_0804D9B0 -_0804D9A4: - pop {pc} - .align 2, 0 -_0804D9A8: .4byte gUnk_02033A90 -_0804D9AC: .4byte 0x00000864 - - thumb_func_start sub_0804D9B0 -sub_0804D9B0: @ 0x0804D9B0 - push {lr} - ldr r0, _0804D9EC @ =0x00000797 - movs r1, #1 - movs r2, #5 - movs r3, #1 - bl sub_0807BB98 - ldr r0, _0804D9F0 @ =0x00000357 - movs r1, #1 - movs r2, #5 - movs r3, #1 - bl sub_0807BB98 - ldr r0, _0804D9F4 @ =0x0000055F - movs r1, #1 - movs r2, #2 - movs r3, #1 - bl sub_0807BB98 - ldr r0, _0804D9F8 @ =gUnk_080EB684 - bl sub_0804ADDC - ldr r0, _0804D9FC @ =gUnk_02033A90 - ldr r2, _0804DA00 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - pop {pc} - .align 2, 0 -_0804D9EC: .4byte 0x00000797 -_0804D9F0: .4byte 0x00000357 -_0804D9F4: .4byte 0x0000055F -_0804D9F8: .4byte gUnk_080EB684 -_0804D9FC: .4byte gUnk_02033A90 -_0804DA00: .4byte 0x00000864 - - thumb_func_start sub_0804DA04 -sub_0804DA04: @ 0x0804DA04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_327 -nullsub_327: @ 0x0804DA08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DA0C -sub_0804DA0C: @ 0x0804DA0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_328 -nullsub_328: @ 0x0804DA10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DA14 -sub_0804DA14: @ 0x0804DA14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_329 -nullsub_329: @ 0x0804DA18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DA1C -sub_0804DA1C: @ 0x0804DA1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_330 -nullsub_330: @ 0x0804DA20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DA24 -sub_0804DA24: @ 0x0804DA24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_331 -nullsub_331: @ 0x0804DA28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DA2C -sub_0804DA2C: @ 0x0804DA2C - push {lr} - movs r0, #0x77 - bl sub_0807CBD0 - adds r1, r0, #0 - cmp r1, #0 - bne _0804DA40 - ldr r0, _0804DA44 @ =gUnk_02034350 - str r1, [r0, #0x6c] - str r1, [r0, #0x74] -_0804DA40: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804DA44: .4byte gUnk_02034350 - - thumb_func_start sub_0804DA48 -sub_0804DA48: @ 0x0804DA48 - push {lr} - movs r0, #0x77 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804DA60 - ldr r0, _0804DA5C @ =gUnk_080EB9F4 - bl sub_0804ADDC - b _0804DA8C - .align 2, 0 -_0804DA5C: .4byte gUnk_080EB9F4 -_0804DA60: - movs r0, #0x78 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804DA76 - ldr r0, _0804DA90 @ =gUnk_080EBAA4 - bl sub_0804ADDC - movs r0, #0x75 - bl sub_0807CCB4 -_0804DA76: - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DA8C - ldr r0, _0804DA94 @ =gUnk_080EBAF4 - bl sub_0804ADDC - movs r0, #0x76 - bl sub_0807CCB4 -_0804DA8C: - pop {pc} - .align 2, 0 -_0804DA90: .4byte gUnk_080EBAA4 -_0804DA94: .4byte gUnk_080EBAF4 - - thumb_func_start sub_0804DA98 -sub_0804DA98: @ 0x0804DA98 - movs r0, #1 - bx lr - - thumb_func_start nullsub_332 -nullsub_332: @ 0x0804DA9C - bx lr - .align 2, 0 - - thumb_func_start sub_0804DAA0 -sub_0804DAA0: @ 0x0804DAA0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_333 -nullsub_333: @ 0x0804DAA4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DAA8 -sub_0804DAA8: @ 0x0804DAA8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_334 -nullsub_334: @ 0x0804DAAC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DAB0 -sub_0804DAB0: @ 0x0804DAB0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_335 -nullsub_335: @ 0x0804DAB4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DAB8 -sub_0804DAB8: @ 0x0804DAB8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_336 -nullsub_336: @ 0x0804DABC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DAC0 -sub_0804DAC0: @ 0x0804DAC0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_337 -nullsub_337: @ 0x0804DAC4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DAC8 -sub_0804DAC8: @ 0x0804DAC8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_338 -nullsub_338: @ 0x0804DACC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DAD0 -sub_0804DAD0: @ 0x0804DAD0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804DAD4 -sub_0804DAD4: @ 0x0804DAD4 - push {lr} - movs r0, #0x86 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DAF0 - movs r0, #0x4c - bl sub_0807CBD0 - cmp r0, #0 - bne _0804DAF0 - ldr r0, _0804DAF4 @ =gUnk_080EC2CC - bl sub_0804ADDC -_0804DAF0: - pop {pc} - .align 2, 0 -_0804DAF4: .4byte gUnk_080EC2CC - - thumb_func_start sub_0804DAF8 -sub_0804DAF8: @ 0x0804DAF8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_339 -nullsub_339: @ 0x0804DAFC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DB00 -sub_0804DB00: @ 0x0804DB00 - movs r0, #1 - bx lr - - thumb_func_start sub_0804DB04 -sub_0804DB04: @ 0x0804DB04 - push {lr} - movs r0, #0x86 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DB20 - movs r0, #0x4d - bl sub_0807CBD0 - cmp r0, #0 - bne _0804DB20 - ldr r0, _0804DB24 @ =gUnk_080EC4E8 - bl sub_0804ADDC -_0804DB20: - pop {pc} - .align 2, 0 -_0804DB24: .4byte gUnk_080EC4E8 - - thumb_func_start sub_0804DB28 -sub_0804DB28: @ 0x0804DB28 - movs r0, #1 - bx lr - - thumb_func_start nullsub_340 -nullsub_340: @ 0x0804DB2C - bx lr - .align 2, 0 - - thumb_func_start sub_0804DB30 -sub_0804DB30: @ 0x0804DB30 - movs r0, #1 - bx lr - - thumb_func_start nullsub_341 -nullsub_341: @ 0x0804DB34 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DB38 -sub_0804DB38: @ 0x0804DB38 - movs r0, #1 - bx lr - - thumb_func_start sub_0804DB3C -sub_0804DB3C: @ 0x0804DB3C - push {lr} - movs r0, #0x86 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DB58 - movs r0, #0x53 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804DB58 - ldr r0, _0804DB5C @ =gUnk_080EC820 - bl sub_0804ADDC -_0804DB58: - pop {pc} - .align 2, 0 -_0804DB5C: .4byte gUnk_080EC820 - - thumb_func_start sub_0804DB60 -sub_0804DB60: @ 0x0804DB60 - movs r0, #1 - bx lr - - thumb_func_start nullsub_342 -nullsub_342: @ 0x0804DB64 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DB68 -sub_0804DB68: @ 0x0804DB68 - movs r0, #1 - bx lr - - thumb_func_start sub_0804DB6C -sub_0804DB6C: @ 0x0804DB6C - push {lr} - movs r0, #0x86 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DB88 - movs r0, #0x56 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804DB88 - ldr r0, _0804DB8C @ =gUnk_080ECA60 - bl sub_0804ADDC -_0804DB88: - pop {pc} - .align 2, 0 -_0804DB8C: .4byte gUnk_080ECA60 - - thumb_func_start sub_0804DB90 -sub_0804DB90: @ 0x0804DB90 - movs r0, #1 - bx lr - - thumb_func_start nullsub_343 -nullsub_343: @ 0x0804DB94 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DB98 -sub_0804DB98: @ 0x0804DB98 - movs r0, #1 - bx lr - - thumb_func_start nullsub_344 -nullsub_344: @ 0x0804DB9C - bx lr - .align 2, 0 - - thumb_func_start sub_0804DBA0 -sub_0804DBA0: @ 0x0804DBA0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_345 -nullsub_345: @ 0x0804DBA4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DBA8 -sub_0804DBA8: @ 0x0804DBA8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_346 -nullsub_346: @ 0x0804DBAC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DBB0 -sub_0804DBB0: @ 0x0804DBB0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_347 -nullsub_347: @ 0x0804DBB4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DBB8 -sub_0804DBB8: @ 0x0804DBB8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_348 -nullsub_348: @ 0x0804DBBC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DBC0 -sub_0804DBC0: @ 0x0804DBC0 - push {lr} - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DBD2 - ldr r1, _0804DBD8 @ =gUnk_02034350 - movs r0, #0 - str r0, [r1, #0x74] -_0804DBD2: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804DBD8: .4byte gUnk_02034350 - - thumb_func_start sub_0804DBDC -sub_0804DBDC: @ 0x0804DBDC - push {lr} - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DC08 - movs r0, #0x90 - movs r1, #1 - movs r2, #1 - movs r3, #5 - bl sub_0807BB98 - ldr r0, _0804DC0C @ =gUnk_080ECFCC - bl sub_0804ADDC - ldr r0, _0804DC10 @ =gUnk_02033A90 - ldr r2, _0804DC14 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804DC08: - pop {pc} - .align 2, 0 -_0804DC0C: .4byte gUnk_080ECFCC -_0804DC10: .4byte gUnk_02033A90 -_0804DC14: .4byte 0x00000864 - - thumb_func_start sub_0804DC18 -sub_0804DC18: @ 0x0804DC18 - movs r0, #1 - bx lr - - thumb_func_start nullsub_349 -nullsub_349: @ 0x0804DC1C - bx lr - .align 2, 0 - - thumb_func_start sub_0804DC20 -sub_0804DC20: @ 0x0804DC20 - movs r0, #1 - bx lr - - thumb_func_start nullsub_350 -nullsub_350: @ 0x0804DC24 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DC28 -sub_0804DC28: @ 0x0804DC28 - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804DC3E - ldr r0, _0804DC44 @ =gUnk_02034350 - ldr r1, _0804DC48 @ =gUnk_080ED1E4 - str r1, [r0, #0x6c] - movs r1, #0 - str r1, [r0, #0x74] -_0804DC3E: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804DC44: .4byte gUnk_02034350 -_0804DC48: .4byte gUnk_080ED1E4 - - thumb_func_start sub_0804DC4C -sub_0804DC4C: @ 0x0804DC4C - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804DC66 - ldr r0, _0804DC68 @ =gUnk_02033A90 - ldr r2, _0804DC6C @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804DC66: - pop {pc} - .align 2, 0 -_0804DC68: .4byte gUnk_02033A90 -_0804DC6C: .4byte 0x00000864 - - thumb_func_start sub_0804DC70 -sub_0804DC70: @ 0x0804DC70 - movs r0, #1 - bx lr - - thumb_func_start nullsub_351 -nullsub_351: @ 0x0804DC74 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DC78 -sub_0804DC78: @ 0x0804DC78 - movs r0, #1 - bx lr - - thumb_func_start nullsub_352 -nullsub_352: @ 0x0804DC7C - bx lr - .align 2, 0 - - thumb_func_start sub_0804DC80 -sub_0804DC80: @ 0x0804DC80 - movs r0, #1 - bx lr - - thumb_func_start nullsub_353 -nullsub_353: @ 0x0804DC84 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DC88 -sub_0804DC88: @ 0x0804DC88 - movs r0, #1 - bx lr - - thumb_func_start nullsub_354 -nullsub_354: @ 0x0804DC8C - bx lr - .align 2, 0 - - thumb_func_start sub_0804DC90 -sub_0804DC90: @ 0x0804DC90 - movs r0, #1 - bx lr - - thumb_func_start nullsub_355 -nullsub_355: @ 0x0804DC94 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DC98 -sub_0804DC98: @ 0x0804DC98 - movs r0, #1 - bx lr - - thumb_func_start nullsub_356 -nullsub_356: @ 0x0804DC9C - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCA0 -sub_0804DCA0: @ 0x0804DCA0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_357 -nullsub_357: @ 0x0804DCA4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCA8 -sub_0804DCA8: @ 0x0804DCA8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_358 -nullsub_358: @ 0x0804DCAC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCB0 -sub_0804DCB0: @ 0x0804DCB0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_359 -nullsub_359: @ 0x0804DCB4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCB8 -sub_0804DCB8: @ 0x0804DCB8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_360 -nullsub_360: @ 0x0804DCBC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCC0 -sub_0804DCC0: @ 0x0804DCC0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_361 -nullsub_361: @ 0x0804DCC4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCC8 -sub_0804DCC8: @ 0x0804DCC8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_362 -nullsub_362: @ 0x0804DCCC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCD0 -sub_0804DCD0: @ 0x0804DCD0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_363 -nullsub_363: @ 0x0804DCD4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCD8 -sub_0804DCD8: @ 0x0804DCD8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_364 -nullsub_364: @ 0x0804DCDC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCE0 -sub_0804DCE0: @ 0x0804DCE0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_365 -nullsub_365: @ 0x0804DCE4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCE8 -sub_0804DCE8: @ 0x0804DCE8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_366 -nullsub_366: @ 0x0804DCEC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCF0 -sub_0804DCF0: @ 0x0804DCF0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_367 -nullsub_367: @ 0x0804DCF4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DCF8 -sub_0804DCF8: @ 0x0804DCF8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_368 -nullsub_368: @ 0x0804DCFC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DD00 -sub_0804DD00: @ 0x0804DD00 - movs r0, #1 - bx lr - - thumb_func_start nullsub_369 -nullsub_369: @ 0x0804DD04 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DD08 -sub_0804DD08: @ 0x0804DD08 - movs r0, #1 - bx lr - - thumb_func_start nullsub_370 -nullsub_370: @ 0x0804DD0C - bx lr - .align 2, 0 - - thumb_func_start sub_0804DD10 -sub_0804DD10: @ 0x0804DD10 - movs r0, #1 - bx lr - - thumb_func_start nullsub_371 -nullsub_371: @ 0x0804DD14 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DD18 -sub_0804DD18: @ 0x0804DD18 - push {lr} - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DD2C - ldr r1, _0804DD30 @ =gUnk_02034350 - movs r0, #0 - str r0, [r1, #0x74] - str r0, [r1, #0x6c] -_0804DD2C: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804DD30: .4byte gUnk_02034350 - - thumb_func_start sub_0804DD34 -sub_0804DD34: @ 0x0804DD34 - push {lr} - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DD60 - movs r0, #3 - movs r1, #2 - movs r2, #5 - movs r3, #1 - bl sub_0807BB98 - ldr r0, _0804DD64 @ =gUnk_080EE314 - bl sub_0804ADDC - ldr r0, _0804DD68 @ =gUnk_02033A90 - ldr r2, _0804DD6C @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804DD60: - pop {pc} - .align 2, 0 -_0804DD64: .4byte gUnk_080EE314 -_0804DD68: .4byte gUnk_02033A90 -_0804DD6C: .4byte 0x00000864 - - thumb_func_start sub_0804DD70 -sub_0804DD70: @ 0x0804DD70 - movs r0, #1 - bx lr - - thumb_func_start nullsub_372 -nullsub_372: @ 0x0804DD74 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DD78 -sub_0804DD78: @ 0x0804DD78 - push {lr} - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DD8A - ldr r1, _0804DD90 @ =gUnk_02034350 - movs r0, #0 - str r0, [r1, #0x74] -_0804DD8A: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804DD90: .4byte gUnk_02034350 - - thumb_func_start sub_0804DD94 -sub_0804DD94: @ 0x0804DD94 - push {lr} - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DDC0 - ldr r0, _0804DDC4 @ =0x00000392 - movs r1, #2 - movs r2, #2 - movs r3, #5 - bl sub_0807BB98 - ldr r0, _0804DDC8 @ =gUnk_080EE5DC - bl sub_0804ADDC - ldr r0, _0804DDCC @ =gUnk_02033A90 - ldr r2, _0804DDD0 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804DDC0: - pop {pc} - .align 2, 0 -_0804DDC4: .4byte 0x00000392 -_0804DDC8: .4byte gUnk_080EE5DC -_0804DDCC: .4byte gUnk_02033A90 -_0804DDD0: .4byte 0x00000864 - - thumb_func_start sub_0804DDD4 -sub_0804DDD4: @ 0x0804DDD4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_373 -nullsub_373: @ 0x0804DDD8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804DDDC -sub_0804DDDC: @ 0x0804DDDC - movs r0, #1 - bx lr - - thumb_func_start sub_0804DDE0 -sub_0804DDE0: @ 0x0804DDE0 - push {lr} - movs r0, #1 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804DDF2 - ldr r0, _0804DDF4 @ =gUnk_080EE71C - bl sub_0804ADDC -_0804DDF2: - pop {pc} - .align 2, 0 -_0804DDF4: .4byte gUnk_080EE71C - - thumb_func_start sub_0804DDF8 -sub_0804DDF8: @ 0x0804DDF8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_374 -nullsub_374: @ 0x0804DDFC - bx lr - .align 2, 0 - - thumb_func_start sub_0804DE00 -sub_0804DE00: @ 0x0804DE00 - push {r4, r5, r6, lr} - bl sub_080530C8 - movs r0, #0xb - bl sub_0801E7F4 - cmp r0, #0 - beq _0804DE32 - movs r0, #0x19 - bl GetProgressFlag - cmp r0, #0 - bne _0804DE22 - movs r0, #0x19 - bl sub_0807CD04 - b _0804DE32 -_0804DE22: - movs r0, #0x18 - bl GetProgressFlag - cmp r0, #0 - bne _0804DE32 - movs r0, #0x18 - bl sub_0807CD04 -_0804DE32: - ldr r5, _0804DE50 @ =gUnk_080D4250 - ldr r4, _0804DE54 @ =gUnk_02002A40 - ldrb r0, [r4, #8] - lsls r0, r0, #2 - adds r0, r0, r5 - ldr r0, [r0] - bl sub_0804AFB0 - ldrb r0, [r4, #8] - cmp r0, #1 - beq _0804DE5C - ldr r1, _0804DE58 @ =gUnk_02017654 - ldr r0, [r5] - str r0, [r1] - b _0804DECC - .align 2, 0 -_0804DE50: .4byte gUnk_080D4250 -_0804DE54: .4byte gUnk_02002A40 -_0804DE58: .4byte gUnk_02017654 -_0804DE5C: - movs r0, #0x1c - bl sub_0807CD04 - ldr r4, _0804DEB4 @ =gUnk_02033A90 - ldr r0, _0804DEB8 @ =0x0000085C - adds r4, r4, r0 - ldr r0, [r4] - ldrh r5, [r0, #4] - ldrh r6, [r0, #6] - ldr r1, _0804DEBC @ =gUnk_03000BF0 - movs r2, #0 - movs r0, #0x15 - strb r0, [r1, #4] - strb r2, [r1, #5] - bl sub_08052CFC - ldr r0, [r4] - movs r1, #0x98 - lsls r1, r1, #1 - adds r5, r5, r1 - strh r5, [r0, #4] - ldr r0, [r4] - strh r6, [r0, #6] - ldr r1, _0804DEC0 @ =gUnk_030010A0 - ldr r0, [r4] - ldrh r0, [r0] - lsrs r0, r0, #1 - strh r0, [r1, #0x10] - bl sub_08052EA0 - bl sub_0804AF90 - movs r0, #0xcd - bl sub_0807CBD0 - cmp r0, #0 - bne _0804DEC4 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl sub_08050054 - b _0804DECC - .align 2, 0 -_0804DEB4: .4byte gUnk_02033A90 -_0804DEB8: .4byte 0x0000085C -_0804DEBC: .4byte gUnk_03000BF0 -_0804DEC0: .4byte gUnk_030010A0 -_0804DEC4: - movs r0, #6 - movs r1, #0x10 - bl sub_08050054 -_0804DECC: - movs r0, #1 - pop {r4, r5, r6, pc} - - thumb_func_start sub_0804DED0 -sub_0804DED0: @ 0x0804DED0 - push {r4, lr} - bl sub_08054570 - bl sub_08059D18 - movs r0, #0xbb - lsls r0, r0, #1 - ldr r1, _0804DEF8 @ =0x0000066B - movs r2, #1 - bl sub_0807B314 - ldr r0, _0804DEFC @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #1 - bne _0804DF00 - movs r0, #0 - bl sub_0801D000 - b _0804E112 - .align 2, 0 -_0804DEF8: .4byte 0x0000066B -_0804DEFC: .4byte gUnk_02002A40 -_0804DF00: - ldr r0, _0804DF7C @ =0x00000DB4 - bl sub_08018C58 - movs r4, #0x80 - lsls r4, r4, #2 - adds r0, r4, #0 - movs r1, #0x84 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0804DF1C - ldr r0, _0804DF80 @ =gUnk_080EEB6C - bl sub_0804ADDC -_0804DF1C: - adds r0, r4, #0 - movs r1, #0x85 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0804DF2E - ldr r0, _0804DF84 @ =gUnk_080EEB8C - bl sub_0804ADDC -_0804DF2E: - movs r0, #0x67 - bl sub_0807CA84 - cmp r0, #0 - bne _0804DF48 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - beq _0804DF48 - ldr r0, _0804DF88 @ =gUnk_080EE88C - bl sub_0804ADDC -_0804DF48: - movs r0, #0x28 - bl sub_0801E7F4 - cmp r0, #0 - bne _0804DF58 - ldr r0, _0804DF8C @ =gUnk_080EE8FC - bl sub_0804ADDC -_0804DF58: - movs r0, #0x33 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804DF68 - ldr r0, _0804DF90 @ =gUnk_080EE91C - bl sub_0804ADDC -_0804DF68: - movs r0, #0x12 - bl GetProgressFlag - cmp r0, #0 - beq _0804DF98 - ldr r0, _0804DF94 @ =gUnk_080EE93C - bl sub_0804ADDC - b _0804DF9E - .align 2, 0 -_0804DF7C: .4byte 0x00000DB4 -_0804DF80: .4byte gUnk_080EEB6C -_0804DF84: .4byte gUnk_080EEB8C -_0804DF88: .4byte gUnk_080EE88C -_0804DF8C: .4byte gUnk_080EE8FC -_0804DF90: .4byte gUnk_080EE91C -_0804DF94: .4byte gUnk_080EE93C -_0804DF98: - ldr r0, _0804DFF4 @ =gUnk_080EECBC - bl sub_0804ADDC -_0804DF9E: - movs r0, #0x1b - bl sub_0801E7F4 - cmp r0, #0 - beq _0804E02A - ldr r0, _0804DFF8 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #3 - bls _0804E02A - movs r0, #0x2e - bl GetProgressFlag - cmp r0, #0 - bne _0804E024 - movs r0, #0x2f - bl GetProgressFlag - cmp r0, #0 - bne _0804E024 - movs r0, #0x30 - bl GetProgressFlag - cmp r0, #0 - bne _0804E024 - movs r0, #0x2b - bl GetProgressFlag - cmp r0, #0 - bne _0804E000 - movs r0, #0x2c - bl GetProgressFlag - cmp r0, #0 - bne _0804E000 - movs r0, #0x2d - bl GetProgressFlag - cmp r0, #0 - bne _0804E000 - ldr r0, _0804DFFC @ =gUnk_080EE95C - bl sub_0804ADDC - b _0804E02A - .align 2, 0 -_0804DFF4: .4byte gUnk_080EECBC -_0804DFF8: .4byte gUnk_02002A40 -_0804DFFC: .4byte gUnk_080EE95C -_0804E000: - movs r0, #0x18 - bl GetProgressFlag - cmp r0, #0 - bne _0804E018 - ldr r0, _0804E014 @ =gUnk_080EE97C - bl sub_0804ADDC - b _0804E02A - .align 2, 0 -_0804E014: .4byte gUnk_080EE97C -_0804E018: - ldr r0, _0804E020 @ =gUnk_080EE9BC - bl sub_0804ADDC - b _0804E02A - .align 2, 0 -_0804E020: .4byte gUnk_080EE9BC -_0804E024: - ldr r0, _0804E03C @ =gUnk_080EE99C - bl sub_0804ADDC -_0804E02A: - movs r0, #0x2b - bl GetProgressFlag - cmp r0, #0 - beq _0804E044 - ldr r0, _0804E040 @ =gUnk_080EE9FC - bl sub_0804ADDC - b _0804E07A - .align 2, 0 -_0804E03C: .4byte gUnk_080EE99C -_0804E040: .4byte gUnk_080EE9FC -_0804E044: - movs r0, #0x2c - bl GetProgressFlag - cmp r0, #0 - beq _0804E05C - ldr r0, _0804E058 @ =gUnk_080EEA1C - bl sub_0804ADDC - b _0804E07A - .align 2, 0 -_0804E058: .4byte gUnk_080EEA1C -_0804E05C: - movs r0, #0x2d - bl GetProgressFlag - cmp r0, #0 - beq _0804E074 - ldr r0, _0804E070 @ =gUnk_080EEA3C - bl sub_0804ADDC - b _0804E07A - .align 2, 0 -_0804E070: .4byte gUnk_080EEA3C -_0804E074: - ldr r0, _0804E114 @ =gUnk_080EE9DC - bl sub_0804ADDC -_0804E07A: - ldr r0, _0804E118 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #4 - bls _0804E0B0 - movs r0, #0xb - bl sub_0801E7F4 - cmp r0, #0 - bne _0804E0B0 - movs r0, #0x2b - bl GetProgressFlag - cmp r0, #0 - bne _0804E0AA - movs r0, #0x2c - bl GetProgressFlag - cmp r0, #0 - bne _0804E0AA - movs r0, #0x2d - bl GetProgressFlag - cmp r0, #0 - beq _0804E0B0 -_0804E0AA: - ldr r0, _0804E11C @ =gUnk_080EEA5C - bl sub_0804ADDC -_0804E0B0: - movs r0, #0xd0 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E0CA - movs r0, #0x14 - bl sub_0807CA84 - cmp r0, #0 - beq _0804E0CA - ldr r0, _0804E120 @ =gUnk_080EEABC - bl sub_0804ADDC -_0804E0CA: - ldr r0, _0804E118 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #3 - bls _0804E0E2 - movs r0, #0x1d - bl GetProgressFlag - cmp r0, #0 - beq _0804E0E2 - ldr r0, _0804E124 @ =gUnk_080EEA7C - bl sub_0804ADDC -_0804E0E2: - ldr r0, _0804E118 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #5 - bhi _0804E0FA - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - bne _0804E0FA - ldr r0, _0804E128 @ =gUnk_080EEA9C - bl sub_0804ADDC -_0804E0FA: - ldr r0, _0804E118 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x14 - ands r0, r1 - cmp r0, #0 - bne _0804E10E - ldr r0, _0804E12C @ =gUnk_080EEBAC - bl sub_0804ADDC -_0804E10E: - bl sub_0804E150 -_0804E112: - pop {r4, pc} - .align 2, 0 -_0804E114: .4byte gUnk_080EE9DC -_0804E118: .4byte gUnk_02002A40 -_0804E11C: .4byte gUnk_080EEA5C -_0804E120: .4byte gUnk_080EEABC -_0804E124: .4byte gUnk_080EEA7C -_0804E128: .4byte gUnk_080EEA9C -_0804E12C: .4byte gUnk_080EEBAC - - thumb_func_start sub_0804E130 -sub_0804E130: @ 0x0804E130 - push {lr} - ldr r0, _0804E148 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x14 - ands r0, r1 - cmp r0, #0 - bne _0804E146 - ldr r0, _0804E14C @ =gUnk_080EEBAC - bl sub_0804ADDC -_0804E146: - pop {pc} - .align 2, 0 -_0804E148: .4byte gUnk_02002A40 -_0804E14C: .4byte gUnk_080EEBAC - - thumb_func_start sub_0804E150 -sub_0804E150: @ 0x0804E150 - push {r4, r5, lr} - ldr r4, _0804E160 @ =gUnk_080EED2C - ldr r0, _0804E164 @ =gUnk_02002A40 - movs r5, #1 - ldrb r0, [r0, #8] - lsls r5, r0 - b _0804E17C - .align 2, 0 -_0804E160: .4byte gUnk_080EED2C -_0804E164: .4byte gUnk_02002A40 -_0804E168: - ldrh r0, [r4] - ands r0, r5 - cmp r0, #0 - beq _0804E17A - ldrh r0, [r4, #4] - ldrh r1, [r4, #2] - movs r2, #1 - bl sub_0800015E -_0804E17A: - adds r4, #6 -_0804E17C: - ldrh r0, [r4, #2] - cmp r0, #0 - bne _0804E168 - movs r0, #0xd1 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E1BA - ldr r4, _0804E198 @ =gUnk_080EED7A - ldr r0, _0804E19C @ =gUnk_02002A40 - movs r5, #1 - ldrb r0, [r0, #8] - lsls r5, r0 - b _0804E1B4 - .align 2, 0 -_0804E198: .4byte gUnk_080EED7A -_0804E19C: .4byte gUnk_02002A40 -_0804E1A0: - ldrh r0, [r4] - ands r0, r5 - cmp r0, #0 - beq _0804E1B2 - ldrh r0, [r4, #4] - ldrh r1, [r4, #2] - movs r2, #1 - bl sub_0800015E -_0804E1B2: - adds r4, #6 -_0804E1B4: - ldrh r0, [r4] - cmp r0, #0 - bne _0804E1A0 -_0804E1BA: - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - bne _0804E1F2 - ldr r4, _0804E1D0 @ =gUnk_080EED8C - ldr r0, _0804E1D4 @ =gUnk_02002A40 - movs r5, #1 - ldrb r0, [r0, #8] - lsls r5, r0 - b _0804E1EC - .align 2, 0 -_0804E1D0: .4byte gUnk_080EED8C -_0804E1D4: .4byte gUnk_02002A40 -_0804E1D8: - ldrh r0, [r4] - ands r0, r5 - cmp r0, #0 - beq _0804E1EA - ldrh r0, [r4, #4] - ldrh r1, [r4, #2] - movs r2, #1 - bl sub_0800015E -_0804E1EA: - adds r4, #6 -_0804E1EC: - ldrh r0, [r4] - cmp r0, #0 - bne _0804E1D8 -_0804E1F2: - pop {r4, r5, pc} - - thumb_func_start sub_0804E1F4 -sub_0804E1F4: @ 0x0804E1F4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_76 -nullsub_76: @ 0x0804E1F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E1FC -sub_0804E1FC: @ 0x0804E1FC - movs r0, #1 - bx lr - - thumb_func_start nullsub_77 -nullsub_77: @ 0x0804E200 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E204 -sub_0804E204: @ 0x0804E204 - movs r0, #1 - bx lr - - thumb_func_start nullsub_78 -nullsub_78: @ 0x0804E208 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E20C -sub_0804E20C: @ 0x0804E20C - movs r0, #1 - bx lr - - thumb_func_start nullsub_79 -nullsub_79: @ 0x0804E210 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E214 -sub_0804E214: @ 0x0804E214 - movs r0, #1 - bx lr - - thumb_func_start nullsub_080 -nullsub_080: @ 0x0804E218 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E21C -sub_0804E21C: @ 0x0804E21C - movs r0, #1 - bx lr - - thumb_func_start nullsub_081 -nullsub_081: @ 0x0804E220 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E224 -sub_0804E224: @ 0x0804E224 - movs r0, #1 - bx lr - - thumb_func_start nullsub_082 -nullsub_082: @ 0x0804E228 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E22C -sub_0804E22C: @ 0x0804E22C - movs r0, #1 - bx lr - - thumb_func_start nullsub_083 -nullsub_083: @ 0x0804E230 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E234 -sub_0804E234: @ 0x0804E234 - movs r0, #1 - bx lr - - thumb_func_start nullsub_084 -nullsub_084: @ 0x0804E238 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E23C -sub_0804E23C: @ 0x0804E23C - movs r0, #1 - bx lr - - thumb_func_start nullsub_085 -nullsub_085: @ 0x0804E240 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E244 -sub_0804E244: @ 0x0804E244 - movs r0, #1 - bx lr - - thumb_func_start nullsub_086 -nullsub_086: @ 0x0804E248 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E24C -sub_0804E24C: @ 0x0804E24C - movs r0, #1 - bx lr - - thumb_func_start nullsub_087 -nullsub_087: @ 0x0804E250 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E254 -sub_0804E254: @ 0x0804E254 - movs r0, #1 - bx lr - - thumb_func_start nullsub_088 -nullsub_088: @ 0x0804E258 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E25C -sub_0804E25C: @ 0x0804E25C - push {lr} - movs r0, #6 - bl sub_0807CA84 - cmp r0, #0 - beq _0804E26E - ldr r1, _0804E274 @ =gUnk_02034350 - ldr r0, _0804E278 @ =gUnk_080F09A0 - str r0, [r1, #0x70] -_0804E26E: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804E274: .4byte gUnk_02034350 -_0804E278: .4byte gUnk_080F09A0 - - thumb_func_start sub_0804E27C -sub_0804E27C: @ 0x0804E27C - push {r4, lr} - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - bne _0804E2AC - ldr r0, _0804E2A0 @ =gUnk_080F0650 - bl sub_0804ADDC - ldr r0, _0804E2A4 @ =gUnk_02033A90 - ldr r1, _0804E2A8 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x13 - str r1, [r0] - movs r0, #0x64 - bl sub_0807CD04 - b _0804E2C0 - .align 2, 0 -_0804E2A0: .4byte gUnk_080F0650 -_0804E2A4: .4byte gUnk_02033A90 -_0804E2A8: .4byte 0x00000864 -_0804E2AC: - movs r0, #0x64 - bl GetProgressFlag - cmp r0, #0 - beq _0804E2C0 - ldr r0, _0804E300 @ =gUnk_02033A90 - ldr r1, _0804E304 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x1b - str r1, [r0] -_0804E2C0: - movs r0, #0x9c - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E318 - ldr r0, _0804E308 @ =gUnk_080F0800 - bl sub_0804ADDC - ldr r4, _0804E30C @ =0x00004072 - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r1, #0xa6 - lsls r1, r1, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804E310 @ =0x00000266 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804E314 @ =0x000002A6 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - b _0804E3A6 - .align 2, 0 -_0804E300: .4byte gUnk_02033A90 -_0804E304: .4byte 0x00000864 -_0804E308: .4byte gUnk_080F0800 -_0804E30C: .4byte 0x00004072 -_0804E310: .4byte 0x00000266 -_0804E314: .4byte 0x000002A6 -_0804E318: - movs r0, #6 - bl sub_0807CA84 - cmp r0, #0 - bne _0804E348 - ldr r0, _0804E360 @ =gUnk_080F08F0 - bl sub_0804ADDC - ldr r4, _0804E364 @ =0x00004072 - adds r0, r4, #0 - movs r1, #0x9e - movs r2, #1 - bl sub_0807B314 - adds r0, r4, #0 - movs r1, #0x9f - movs r2, #1 - bl sub_0807B314 - adds r0, r4, #0 - movs r1, #0xa0 - movs r2, #1 - bl sub_0807B314 -_0804E348: - ldr r0, _0804E368 @ =gUnk_080F0850 - bl sub_0804ADDC - movs r0, #0x42 - bl sub_0807CA84 - cmp r0, #0 - bne _0804E370 - ldr r0, _0804E36C @ =gUnk_080F0870 - bl sub_0804ADDC - b _0804E376 - .align 2, 0 -_0804E360: .4byte gUnk_080F08F0 -_0804E364: .4byte 0x00004072 -_0804E368: .4byte gUnk_080F0850 -_0804E36C: .4byte gUnk_080F0870 -_0804E370: - ldr r0, _0804E3AC @ =gUnk_080F0890 - bl sub_0804ADDC -_0804E376: - ldr r4, _0804E3B0 @ =0x00004072 - movs r1, #0x96 - lsls r1, r1, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r1, #0xa6 - lsls r1, r1, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0x10 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804E3A6 - ldr r0, _0804E3B4 @ =gUnk_080F0920 - bl sub_0804ADDC - movs r0, #0x10 - bl sub_0807CD34 -_0804E3A6: - bl sub_080AF284 - pop {r4, pc} - .align 2, 0 -_0804E3AC: .4byte gUnk_080F0890 -_0804E3B0: .4byte 0x00004072 -_0804E3B4: .4byte gUnk_080F0920 - - thumb_func_start sub_0804E3B8 -sub_0804E3B8: @ 0x0804E3B8 - push {lr} - movs r0, #1 - bl sub_0807CD34 - movs r0, #1 - pop {pc} - - thumb_func_start sub_0804E3C4 -sub_0804E3C4: @ 0x0804E3C4 - push {r4, r5, r6, lr} - movs r0, #5 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r6, r1, #0x1f - movs r0, #6 - bl GetProgressFlag - cmp r0, #0 - beq _0804E3DE - movs r6, #2 -_0804E3DE: - movs r0, #0x55 - bl GetProgressFlag - cmp r0, #0 - beq _0804E3EA - movs r6, #3 -_0804E3EA: - bl sub_08000E50 - adds r4, r0, #0 - ldr r1, _0804E448 @ =gUnk_080F0D58 - lsls r0, r6, #2 - adds r0, r0, r1 - movs r5, #0x1f - adds r1, r4, #0 - ands r1, r5 - ldr r0, [r0] - adds r0, r0, r1 - ldrb r6, [r0] - ldr r1, _0804E44C @ =gUnk_080F0CB8 - movs r0, #0xf - ands r0, r6 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl sub_0804ADDC - lsrs r6, r6, #4 - lsrs r4, r4, #8 - ldr r1, _0804E450 @ =gUnk_080F0E08 - lsls r0, r6, #2 - adds r0, r0, r1 - ands r4, r5 - ldr r0, [r0] - adds r0, r0, r4 - ldrb r6, [r0] - movs r0, #0xc6 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E436 - movs r0, #0xc6 - bl sub_0807CCB4 - movs r6, #0xe -_0804E436: - lsls r0, r6, #3 - ldr r1, _0804E454 @ =gUnk_080F0E1C - adds r0, r0, r1 - bl sub_0804B3C4 - ldr r0, _0804E458 @ =0x80100000 - bl sub_080A3268 - pop {r4, r5, r6, pc} - .align 2, 0 -_0804E448: .4byte gUnk_080F0D58 -_0804E44C: .4byte gUnk_080F0CB8 -_0804E450: .4byte gUnk_080F0E08 -_0804E454: .4byte gUnk_080F0E1C -_0804E458: .4byte 0x80100000 - - thumb_func_start sub_0804E45C -sub_0804E45C: @ 0x0804E45C - movs r0, #1 - bx lr - - thumb_func_start sub_0804E460 -sub_0804E460: @ 0x0804E460 - push {lr} - movs r0, #0x4a - bl GetProgressFlag - cmp r0, #0 - bne _0804E478 - ldr r0, _0804E474 @ =gUnk_080F1C68 - bl sub_0804ADDC - b _0804E47E - .align 2, 0 -_0804E474: .4byte gUnk_080F1C68 -_0804E478: - ldr r0, _0804E480 @ =gUnk_080F1C88 - bl sub_0804ADDC -_0804E47E: - pop {pc} - .align 2, 0 -_0804E480: .4byte gUnk_080F1C88 - - thumb_func_start sub_0804E484 -sub_0804E484: @ 0x0804E484 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E488 -sub_0804E488: @ 0x0804E488 - push {lr} - movs r0, #0x2e - bl GetProgressFlag - cmp r0, #0 - beq _0804E4A0 - ldr r0, _0804E49C @ =gUnk_080F1D90 - bl sub_0804ADDC - b _0804E4C8 - .align 2, 0 -_0804E49C: .4byte gUnk_080F1D90 -_0804E4A0: - movs r0, #0x2f - bl GetProgressFlag - cmp r0, #0 - beq _0804E4B8 - ldr r0, _0804E4B4 @ =gUnk_080F1DB0 - bl sub_0804ADDC - b _0804E4C8 - .align 2, 0 -_0804E4B4: .4byte gUnk_080F1DB0 -_0804E4B8: - movs r0, #0x30 - bl GetProgressFlag - cmp r0, #0 - beq _0804E4C8 - ldr r0, _0804E4CC @ =gUnk_080F1DD0 - bl sub_0804ADDC -_0804E4C8: - pop {pc} - .align 2, 0 -_0804E4CC: .4byte gUnk_080F1DD0 - - thumb_func_start sub_0804E4D0 -sub_0804E4D0: @ 0x0804E4D0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_375 -nullsub_375: @ 0x0804E4D4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E4D8 -sub_0804E4D8: @ 0x0804E4D8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_376 -nullsub_376: @ 0x0804E4DC - bx lr - .align 2, 0 - - thumb_func_start sub_0804E4E0 -sub_0804E4E0: @ 0x0804E4E0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E4E4 -sub_0804E4E4: @ 0x0804E4E4 - push {lr} - ldr r0, _0804E518 @ =gUnk_080F2174 - bl sub_0804ADDC - movs r0, #0x3a - bl sub_0807CA84 - cmp r0, #0 - bne _0804E506 - movs r0, #0x2a - bl GetProgressFlag - cmp r0, #0 - beq _0804E506 - ldr r0, _0804E51C @ =gUnk_080F2194 - bl sub_0804ADDC -_0804E506: - ldr r0, _0804E520 @ =gUnk_030010A0 - ldrb r0, [r0, #0xf] - cmp r0, #1 - bne _0804E514 - ldr r0, _0804E524 @ =gUnk_080F21B4 - bl sub_0804ADDC -_0804E514: - pop {pc} - .align 2, 0 -_0804E518: .4byte gUnk_080F2174 -_0804E51C: .4byte gUnk_080F2194 -_0804E520: .4byte gUnk_030010A0 -_0804E524: .4byte gUnk_080F21B4 - - thumb_func_start sub_0804E528 -sub_0804E528: @ 0x0804E528 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E52C -sub_0804E52C: @ 0x0804E52C - push {lr} - ldr r0, _0804E558 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #7 - bls _0804E53C - ldr r0, _0804E55C @ =gUnk_080F23BC - bl sub_0804ADDC -_0804E53C: - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0804E564 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0804E564 - ldr r0, _0804E560 @ =gUnk_080F238C - bl sub_0804ADDC - b _0804E56A - .align 2, 0 -_0804E558: .4byte gUnk_02002A40 -_0804E55C: .4byte gUnk_080F23BC -_0804E560: .4byte gUnk_080F238C -_0804E564: - ldr r0, _0804E56C @ =gUnk_080F236C - bl sub_0804ADDC -_0804E56A: - pop {pc} - .align 2, 0 -_0804E56C: .4byte gUnk_080F236C - - thumb_func_start sub_0804E570 -sub_0804E570: @ 0x0804E570 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E574 -sub_0804E574: @ 0x0804E574 - push {lr} - ldr r0, _0804E588 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #9 - bhi _0804E608 - lsls r0, r0, #2 - ldr r1, _0804E58C @ =_0804E590 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0804E588: .4byte gUnk_02002A40 -_0804E58C: .4byte _0804E590 -_0804E590: @ jump table - .4byte _0804E5CC @ case 0 - .4byte _0804E608 @ case 1 - .4byte _0804E5CC @ case 2 - .4byte _0804E608 @ case 3 - .4byte _0804E5CC @ case 4 - .4byte _0804E5B8 @ case 5 - .4byte _0804E602 @ case 6 - .4byte _0804E602 @ case 7 - .4byte _0804E5FC @ case 8 - .4byte _0804E5FC @ case 9 -_0804E5B8: - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0804E5F0 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - bne _0804E5D8 -_0804E5CC: - ldr r0, _0804E5D4 @ =gUnk_080F2570 - bl sub_0804ADDC - b _0804E608 - .align 2, 0 -_0804E5D4: .4byte gUnk_080F2570 -_0804E5D8: - movs r0, #0x39 - bl sub_0807CA84 - cmp r0, #0 - bne _0804E608 - ldr r0, _0804E5EC @ =gUnk_080F25C0 - bl sub_0804ADDC - b _0804E608 - .align 2, 0 -_0804E5EC: .4byte gUnk_080F25C0 -_0804E5F0: - ldr r0, _0804E5F8 @ =gUnk_080F2590 - bl sub_0804ADDC - b _0804E608 - .align 2, 0 -_0804E5F8: .4byte gUnk_080F2590 -_0804E5FC: - ldr r0, _0804E60C @ =gUnk_080F2600 - bl sub_0804ADDC -_0804E602: - ldr r0, _0804E610 @ =gUnk_080F2590 - bl sub_0804ADDC -_0804E608: - pop {pc} - .align 2, 0 -_0804E60C: .4byte gUnk_080F2600 -_0804E610: .4byte gUnk_080F2590 - - thumb_func_start sub_0804E614 -sub_0804E614: @ 0x0804E614 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E618 -sub_0804E618: @ 0x0804E618 - push {lr} - movs r0, #0x21 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804E67A - movs r0, #0x42 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E65C - movs r0, #0x43 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E650 - ldr r0, _0804E648 @ =gUnk_080F2718 - bl sub_0804ADDC - ldr r0, _0804E64C @ =gUnk_080F2860 - bl sub_0804B1AC - b _0804E67A - .align 2, 0 -_0804E648: .4byte gUnk_080F2718 -_0804E64C: .4byte gUnk_080F2860 -_0804E650: - ldr r0, _0804E658 @ =gUnk_080F2758 - bl sub_0804ADDC - b _0804E67A - .align 2, 0 -_0804E658: .4byte gUnk_080F2758 -_0804E65C: - movs r0, #0x3f - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E674 - ldr r0, _0804E670 @ =gUnk_080F27D8 - bl sub_0804ADDC - b _0804E67A - .align 2, 0 -_0804E670: .4byte gUnk_080F27D8 -_0804E674: - ldr r0, _0804E67C @ =gUnk_080F2798 - bl sub_0804ADDC -_0804E67A: - pop {pc} - .align 2, 0 -_0804E67C: .4byte gUnk_080F2798 - - thumb_func_start sub_0804E680 -sub_0804E680: @ 0x0804E680 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E684 -sub_0804E684: @ 0x0804E684 - push {lr} - movs r0, #0x2b - bl GetProgressFlag - cmp r0, #0 - beq _0804E69C - ldr r0, _0804E698 @ =gUnk_080F28D4 - bl sub_0804ADDC - b _0804E6C4 - .align 2, 0 -_0804E698: .4byte gUnk_080F28D4 -_0804E69C: - movs r0, #0x2c - bl GetProgressFlag - cmp r0, #0 - beq _0804E6B4 - ldr r0, _0804E6B0 @ =gUnk_080F28F4 - bl sub_0804ADDC - b _0804E6C4 - .align 2, 0 -_0804E6B0: .4byte gUnk_080F28F4 -_0804E6B4: - movs r0, #0x2d - bl GetProgressFlag - cmp r0, #0 - beq _0804E6C4 - ldr r0, _0804E6C8 @ =gUnk_080F2914 - bl sub_0804ADDC -_0804E6C4: - pop {pc} - .align 2, 0 -_0804E6C8: .4byte gUnk_080F2914 - - thumb_func_start sub_0804E6CC -sub_0804E6CC: @ 0x0804E6CC - movs r0, #1 - bx lr - - thumb_func_start nullsub_377 -nullsub_377: @ 0x0804E6D0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E6D4 -sub_0804E6D4: @ 0x0804E6D4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_378 -nullsub_378: @ 0x0804E6D8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E6DC -sub_0804E6DC: @ 0x0804E6DC - movs r0, #1 - bx lr - - thumb_func_start nullsub_379 -nullsub_379: @ 0x0804E6E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804E6E4 -sub_0804E6E4: @ 0x0804E6E4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E6E8 -sub_0804E6E8: @ 0x0804E6E8 - push {lr} - movs r0, #0x49 - bl GetProgressFlag - cmp r0, #0 - bne _0804E70A - ldr r0, _0804E71C @ =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, _0804E720 @ =0x800B0036 - bl sub_080A3268 -_0804E70A: - movs r0, #0x13 - bl GetProgressFlag - cmp r0, #0 - bne _0804E71A - ldr r0, _0804E724 @ =gUnk_080F2E2C - bl sub_0804ADDC -_0804E71A: - pop {pc} - .align 2, 0 -_0804E71C: .4byte gUnk_02033A90 -_0804E720: .4byte 0x800B0036 -_0804E724: .4byte gUnk_080F2E2C - - thumb_func_start sub_0804E728 -sub_0804E728: @ 0x0804E728 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E72C -sub_0804E72C: @ 0x0804E72C - push {lr} - movs r0, #0x49 - bl GetProgressFlag - cmp r0, #0 - bne _0804E74E - ldr r0, _0804E760 @ =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, _0804E764 @ =0x800B0036 - bl sub_080A3268 -_0804E74E: - movs r0, #0x13 - bl GetProgressFlag - cmp r0, #0 - bne _0804E76C - ldr r0, _0804E768 @ =gUnk_080F2E94 - bl sub_0804ADDC - b _0804E772 - .align 2, 0 -_0804E760: .4byte gUnk_02033A90 -_0804E764: .4byte 0x800B0036 -_0804E768: .4byte gUnk_080F2E94 -_0804E76C: - ldr r0, _0804E774 @ =gUnk_080F2EC4 - bl sub_0804ADDC -_0804E772: - pop {pc} - .align 2, 0 -_0804E774: .4byte gUnk_080F2EC4 - - thumb_func_start sub_0804E778 -sub_0804E778: @ 0x0804E778 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E77C -sub_0804E77C: @ 0x0804E77C - push {lr} - movs r0, #0x69 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804E792 - movs r0, #0x3c - bl sub_0807CA84 - cmp r0, #1 - bls _0804E798 -_0804E792: - ldr r0, _0804E79C @ =gUnk_080F2FD4 - bl sub_0804ADDC -_0804E798: - pop {pc} - .align 2, 0 -_0804E79C: .4byte gUnk_080F2FD4 - - thumb_func_start sub_0804E7A0 -sub_0804E7A0: @ 0x0804E7A0 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E7A4 -sub_0804E7A4: @ 0x0804E7A4 - push {lr} - movs r0, #0x36 - bl sub_0807CA84 - cmp r0, #1 - bne _0804E7CC - movs r0, #0x5b - bl GetProgressFlag - cmp r0, #0 - bne _0804E7CC - ldr r0, _0804E7D0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0804E7CC - ldr r0, _0804E7D4 @ =gUnk_080F30CC - bl sub_0804ADDC -_0804E7CC: - pop {pc} - .align 2, 0 -_0804E7D0: .4byte gUnk_03003F80 -_0804E7D4: .4byte gUnk_080F30CC - - thumb_func_start sub_0804E7D8 -sub_0804E7D8: @ 0x0804E7D8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E7DC -sub_0804E7DC: @ 0x0804E7DC - push {r4, lr} - movs r0, #0x13 - bl GetProgressFlag - cmp r0, #0 - bne _0804E818 - movs r0, #0x46 - bl sub_0807CBD0 - adds r4, r0, #0 - cmp r4, #0 - bne _0804E818 - movs r0, #5 - movs r1, #1 - movs r2, #4 - movs r3, #4 - bl sub_080A71C4 - ldr r0, _0804E84C @ =gUnk_02000070 - strb r4, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - ldr r2, _0804E850 @ =gUnk_08009B30 - movs r0, #0 - movs r1, #6 - bl sub_080751E8 -_0804E818: - movs r0, #0x49 - bl GetProgressFlag - cmp r0, #0 - bne _0804E838 - ldr r0, _0804E854 @ =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, _0804E858 @ =0x800B0036 - bl sub_080A3268 -_0804E838: - ldr r0, _0804E85C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _0804E84A - ldr r0, _0804E860 @ =gUnk_080F31D8 - bl sub_0804ADDC -_0804E84A: - pop {r4, pc} - .align 2, 0 -_0804E84C: .4byte gUnk_02000070 -_0804E850: .4byte gUnk_08009B30 -_0804E854: .4byte gUnk_02033A90 -_0804E858: .4byte 0x800B0036 -_0804E85C: .4byte gUnk_03003F80 -_0804E860: .4byte gUnk_080F31D8 - - thumb_func_start sub_0804E864 -sub_0804E864: @ 0x0804E864 - push {lr} - ldr r2, _0804E888 @ =gLinkEntity - ldr r1, _0804E88C @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, #0x90 - strh r0, [r2, #0x2e] - ldrh r0, [r1, #8] - adds r0, #0x38 - strh r0, [r2, #0x32] - ldr r2, _0804E890 @ =gUnk_08009E58 - movs r0, #1 - movs r1, #6 - bl sub_080751E8 - movs r0, #0xa0 - bl sub_080526A0 - pop {pc} - .align 2, 0 -_0804E888: .4byte gLinkEntity -_0804E88C: .4byte gUnk_03000BF0 -_0804E890: .4byte gUnk_08009E58 - - thumb_func_start sub_0804E894 -sub_0804E894: @ 0x0804E894 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E898 -sub_0804E898: @ 0x0804E898 - push {r4, lr} - movs r0, #0x12 - bl sub_0807CA84 - cmp r0, #0 - beq _0804E8D8 - ldr r0, _0804E8DC @ =gUnk_080F3260 - bl sub_0804ADDC - ldr r4, _0804E8E0 @ =0x00004072 - ldr r1, _0804E8E4 @ =0x00000202 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804E8E8 @ =0x00000242 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r1, #0x81 - lsls r1, r1, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r1, #0x91 - lsls r1, r1, #2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 -_0804E8D8: - pop {r4, pc} - .align 2, 0 -_0804E8DC: .4byte gUnk_080F3260 -_0804E8E0: .4byte 0x00004072 -_0804E8E4: .4byte 0x00000202 -_0804E8E8: .4byte 0x00000242 - - thumb_func_start sub_0804E8EC -sub_0804E8EC: @ 0x0804E8EC - movs r0, #1 - bx lr - - thumb_func_start sub_0804E8F0 -sub_0804E8F0: @ 0x0804E8F0 - push {lr} - bl sub_08054564 - pop {pc} - - thumb_func_start sub_0804E8F8 -sub_0804E8F8: @ 0x0804E8F8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E8FC -sub_0804E8FC: @ 0x0804E8FC - push {lr} - movs r0, #0x1d - bl GetProgressFlag - cmp r0, #0 - bne _0804E914 - ldr r0, _0804E910 @ =gUnk_080F36FC - bl sub_0804ADDC - b _0804E922 - .align 2, 0 -_0804E910: .4byte gUnk_080F36FC -_0804E914: - ldr r0, _0804E924 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #3 - bhi _0804E922 - ldr r0, _0804E928 @ =gUnk_080F3604 - bl sub_0804ADDC -_0804E922: - pop {pc} - .align 2, 0 -_0804E924: .4byte gUnk_02002A40 -_0804E928: .4byte gUnk_080F3604 - - thumb_func_start sub_0804E92C -sub_0804E92C: @ 0x0804E92C - movs r0, #1 - bx lr - - thumb_func_start sub_0804E930 -sub_0804E930: @ 0x0804E930 - push {lr} - movs r0, #0x1d - bl GetProgressFlag - cmp r0, #0 - beq _0804E942 - ldr r0, _0804E944 @ =gUnk_080F37D0 - bl sub_0804ADDC -_0804E942: - pop {pc} - .align 2, 0 -_0804E944: .4byte gUnk_080F37D0 - - thumb_func_start sub_0804E948 -sub_0804E948: @ 0x0804E948 - movs r0, #1 - bx lr - - thumb_func_start nullsub_380 -nullsub_380: @ 0x0804E94C - bx lr - .align 2, 0 - - thumb_func_start sub_0804E950 -sub_0804E950: @ 0x0804E950 - movs r0, #1 - bx lr - - thumb_func_start sub_0804E954 -sub_0804E954: @ 0x0804E954 - push {lr} - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0804E97A - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0804E97A - movs r0, #0x3b - bl sub_0807CA84 - cmp r0, #0 - bne _0804E97A - ldr r0, _0804E988 @ =gUnk_080F3A48 - bl sub_0804ADDC -_0804E97A: - ldr r0, _0804E98C @ =gUnk_030010A0 - ldr r1, _0804E990 @ =0x00000F28 - strh r1, [r0, #0x20] - ldr r1, _0804E994 @ =0x0000082D - strh r1, [r0, #0x22] - pop {pc} - .align 2, 0 -_0804E988: .4byte gUnk_080F3A48 -_0804E98C: .4byte gUnk_030010A0 -_0804E990: .4byte 0x00000F28 -_0804E994: .4byte 0x0000082D - - thumb_func_start sub_0804E998 -sub_0804E998: @ 0x0804E998 - push {lr} - movs r0, #5 - bl GetProgressFlag - cmp r0, #0 - beq _0804E9BC - movs r0, #4 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E9BC - ldr r1, _0804E9B4 @ =gUnk_02034350 - ldr r0, _0804E9B8 @ =gUnk_080F3EA4 - b _0804E9C0 - .align 2, 0 -_0804E9B4: .4byte gUnk_02034350 -_0804E9B8: .4byte gUnk_080F3EA4 -_0804E9BC: - ldr r1, _0804E9C8 @ =gUnk_02034350 - ldr r0, _0804E9CC @ =gUnk_080F3D44 -_0804E9C0: - str r0, [r1, #0x74] - movs r0, #1 - pop {pc} - .align 2, 0 -_0804E9C8: .4byte gUnk_02034350 -_0804E9CC: .4byte gUnk_080F3D44 - - thumb_func_start sub_0804E9D0 -sub_0804E9D0: @ 0x0804E9D0 - push {r4, lr} - movs r0, #5 - bl GetProgressFlag - cmp r0, #0 - beq _0804E9EC - movs r0, #4 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804E9EC - ldr r0, _0804EAC4 @ =gUnk_080F3C64 - bl sub_0804ADDC -_0804E9EC: - movs r0, #0x12 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804E9FC - ldr r0, _0804EAC8 @ =gUnk_080F3C94 - bl sub_0804ADDC -_0804E9FC: - ldr r0, _0804EACC @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #3 - bls _0804EA14 - movs r0, #0x5c - bl GetProgressFlag - cmp r0, #0 - beq _0804EA14 - ldr r0, _0804EAD0 @ =gUnk_080F3C44 - bl sub_0804ADDC -_0804EA14: - ldr r4, _0804EAD4 @ =0x00004091 - movs r1, #0xb2 - lsls r1, r1, #3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAD8 @ =0x00000591 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EADC @ =0x00000592 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAE0 @ =0x00000593 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAE4 @ =0x00000594 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - movs r1, #0xba - lsls r1, r1, #3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - movs r1, #0xc2 - lsls r1, r1, #3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - movs r1, #0xca - lsls r1, r1, #3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAE8 @ =0x000005D4 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAEC @ =0x00000614 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAF0 @ =0x00000654 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - movs r1, #0xd2 - lsls r1, r1, #3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAF4 @ =0x00000691 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAF8 @ =0x00000692 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EAFC @ =0x00000693 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0804EB00 @ =0x00000694 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - pop {r4, pc} - .align 2, 0 -_0804EAC4: .4byte gUnk_080F3C64 -_0804EAC8: .4byte gUnk_080F3C94 -_0804EACC: .4byte gUnk_02002A40 -_0804EAD0: .4byte gUnk_080F3C44 -_0804EAD4: .4byte 0x00004091 -_0804EAD8: .4byte 0x00000591 -_0804EADC: .4byte 0x00000592 -_0804EAE0: .4byte 0x00000593 -_0804EAE4: .4byte 0x00000594 -_0804EAE8: .4byte 0x000005D4 -_0804EAEC: .4byte 0x00000614 -_0804EAF0: .4byte 0x00000654 -_0804EAF4: .4byte 0x00000691 -_0804EAF8: .4byte 0x00000692 -_0804EAFC: .4byte 0x00000693 -_0804EB00: .4byte 0x00000694 - - thumb_func_start sub_0804EB04 -sub_0804EB04: @ 0x0804EB04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_381 -nullsub_381: @ 0x0804EB08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB0C -sub_0804EB0C: @ 0x0804EB0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_382 -nullsub_382: @ 0x0804EB10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB14 -sub_0804EB14: @ 0x0804EB14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_383 -nullsub_383: @ 0x0804EB18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB1C -sub_0804EB1C: @ 0x0804EB1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_384 -nullsub_384: @ 0x0804EB20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB24 -sub_0804EB24: @ 0x0804EB24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_385 -nullsub_385: @ 0x0804EB28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB2C -sub_0804EB2C: @ 0x0804EB2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_386 -nullsub_386: @ 0x0804EB30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB34 -sub_0804EB34: @ 0x0804EB34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_387 -nullsub_387: @ 0x0804EB38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB3C -sub_0804EB3C: @ 0x0804EB3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_388 -nullsub_388: @ 0x0804EB40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB44 -sub_0804EB44: @ 0x0804EB44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_389 -nullsub_389: @ 0x0804EB48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB4C -sub_0804EB4C: @ 0x0804EB4C - movs r0, #1 - bx lr - - thumb_func_start nullsub_390 -nullsub_390: @ 0x0804EB50 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB54 -sub_0804EB54: @ 0x0804EB54 - ldr r2, _0804EB64 @ =gUnk_02033A90 - ldrb r1, [r2] - movs r0, #0x48 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 - bx lr - .align 2, 0 -_0804EB64: .4byte gUnk_02033A90 - - thumb_func_start nullsub_391 -nullsub_391: @ 0x0804EB68 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB6C -sub_0804EB6C: @ 0x0804EB6C - ldr r2, _0804EB7C @ =gUnk_02033A90 - ldrb r1, [r2] - movs r0, #0x48 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 - bx lr - .align 2, 0 -_0804EB7C: .4byte gUnk_02033A90 - - thumb_func_start nullsub_392 -nullsub_392: @ 0x0804EB80 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB84 -sub_0804EB84: @ 0x0804EB84 - ldr r2, _0804EB94 @ =gUnk_02033A90 - ldrb r1, [r2] - movs r0, #0x48 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 - bx lr - .align 2, 0 -_0804EB94: .4byte gUnk_02033A90 - - thumb_func_start nullsub_393 -nullsub_393: @ 0x0804EB98 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EB9C -sub_0804EB9C: @ 0x0804EB9C - push {lr} - movs r0, #0x58 - movs r1, #5 - bl sub_0801DD58 - ldr r2, _0804EBB4 @ =gUnk_02033A90 - ldrb r1, [r2] - movs r0, #0x48 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 - pop {pc} - .align 2, 0 -_0804EBB4: .4byte gUnk_02033A90 - - thumb_func_start nullsub_394 -nullsub_394: @ 0x0804EBB8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EBBC -sub_0804EBBC: @ 0x0804EBBC - push {lr} - movs r0, #0x58 - movs r1, #6 - bl sub_0801DD58 - ldr r2, _0804EBD4 @ =gUnk_02033A90 - ldrb r1, [r2] - movs r0, #0x48 - orrs r0, r1 - strb r0, [r2] - movs r0, #1 - pop {pc} - .align 2, 0 -_0804EBD4: .4byte gUnk_02033A90 - - thumb_func_start nullsub_395 -nullsub_395: @ 0x0804EBD8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EBDC -sub_0804EBDC: @ 0x0804EBDC - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804EBF2 - ldr r0, _0804EBF8 @ =gUnk_02034350 - ldr r1, _0804EBFC @ =gUnk_080F4EB0 - str r1, [r0, #0x6c] - movs r1, #0 - str r1, [r0, #0x74] -_0804EBF2: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804EBF8: .4byte gUnk_02034350 -_0804EBFC: .4byte gUnk_080F4EB0 - - thumb_func_start sub_0804EC00 -sub_0804EC00: @ 0x0804EC00 - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804EC1A - ldr r0, _0804EC48 @ =gUnk_02033A90 - ldr r2, _0804EC4C @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] -_0804EC1A: - movs r0, #0x14 - bl GetProgressFlag - cmp r0, #0 - bne _0804EC2A - ldr r0, _0804EC50 @ =gUnk_080F4D50 - bl sub_0804ADDC -_0804EC2A: - movs r0, #0x3e - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EC64 - movs r0, #0x3b - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EC58 - ldr r0, _0804EC54 @ =gUnk_080F4DB0 - bl sub_0804ADDC - b _0804EC5E - .align 2, 0 -_0804EC48: .4byte gUnk_02033A90 -_0804EC4C: .4byte 0x00000864 -_0804EC50: .4byte gUnk_080F4D50 -_0804EC54: .4byte gUnk_080F4DB0 -_0804EC58: - ldr r0, _0804EC84 @ =gUnk_080F4DD0 - bl sub_0804ADDC -_0804EC5E: - ldr r0, _0804EC88 @ =gUnk_080F4DF0 - bl sub_0804ADDC -_0804EC64: - movs r0, #0x4e - bl sub_0801E7F4 - cmp r0, #0 - beq _0804EC74 - ldr r0, _0804EC8C @ =gUnk_080F4F10 - bl sub_0804ADDC -_0804EC74: - ldr r0, _0804EC90 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - cmp r0, #0 - blt _0804EC82 - ldr r0, _0804EC94 @ =gUnk_080F4E10 - bl sub_0804ADDC -_0804EC82: - pop {pc} - .align 2, 0 -_0804EC84: .4byte gUnk_080F4DD0 -_0804EC88: .4byte gUnk_080F4DF0 -_0804EC8C: .4byte gUnk_080F4F10 -_0804EC90: .4byte gUnk_02002A40 -_0804EC94: .4byte gUnk_080F4E10 - - thumb_func_start sub_0804EC98 -sub_0804EC98: @ 0x0804EC98 - push {lr} - ldr r0, _0804ECAC @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - cmp r0, #0 - blt _0804ECA8 - ldr r0, _0804ECB0 @ =gUnk_080F4E10 - bl sub_0804ADDC -_0804ECA8: - pop {pc} - .align 2, 0 -_0804ECAC: .4byte gUnk_02002A40 -_0804ECB0: .4byte gUnk_080F4E10 - - thumb_func_start sub_0804ECB4 -sub_0804ECB4: @ 0x0804ECB4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_396 -nullsub_396: @ 0x0804ECB8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804ECBC -sub_0804ECBC: @ 0x0804ECBC - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804ECDA - ldr r1, _0804ECE0 @ =gUnk_02034350 - ldr r0, _0804ECE4 @ =gUnk_080F5348 - str r0, [r1, #0x6c] - adds r2, r1, #0 - adds r2, #0x88 - ldr r0, _0804ECE8 @ =sub_0804ED18 - str r0, [r2] - movs r0, #0 - str r0, [r1, #0x74] -_0804ECDA: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804ECE0: .4byte gUnk_02034350 -_0804ECE4: .4byte gUnk_080F5348 -_0804ECE8: .4byte sub_0804ED18 - - thumb_func_start sub_0804ECEC -sub_0804ECEC: @ 0x0804ECEC - push {lr} - movs r0, #2 - bl sub_0807CA84 - cmp r0, #0 - beq _0804ED0E - ldr r0, _0804ED10 @ =gUnk_080F5328 - bl sub_0804ADDC - movs r0, #0x14 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804ED0E - ldr r0, _0804ED14 @ =gUnk_080F5308 - bl sub_0804ADDC -_0804ED0E: - pop {pc} - .align 2, 0 -_0804ED10: .4byte gUnk_080F5328 -_0804ED14: .4byte gUnk_080F5308 - - thumb_func_start sub_0804ED18 -sub_0804ED18: @ 0x0804ED18 - ldr r0, _0804ED28 @ =gUnk_02033A90 - ldr r2, _0804ED2C @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - bx lr - .align 2, 0 -_0804ED28: .4byte gUnk_02033A90 -_0804ED2C: .4byte 0x00000864 - - thumb_func_start sub_0804ED30 -sub_0804ED30: @ 0x0804ED30 - movs r0, #1 - bx lr - - thumb_func_start sub_0804ED34 -sub_0804ED34: @ 0x0804ED34 - push {lr} - bl sub_080AF2E4 - movs r0, #0x5d - bl GetProgressFlag - cmp r0, #0 - beq _0804ED4E - ldr r0, _0804ED50 @ =gUnk_02033A90 - ldr r1, _0804ED54 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x31 - str r1, [r0] -_0804ED4E: - pop {pc} - .align 2, 0 -_0804ED50: .4byte gUnk_02033A90 -_0804ED54: .4byte 0x00000864 - - thumb_func_start sub_0804ED58 -sub_0804ED58: @ 0x0804ED58 - movs r0, #1 - bx lr - - thumb_func_start sub_0804ED5C -sub_0804ED5C: @ 0x0804ED5C - push {lr} - movs r0, #0x79 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804ED6E - ldr r0, _0804EDA8 @ =gUnk_080F54E8 - bl sub_0804ADDC -_0804ED6E: - movs r0, #0x7a - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EDB0 - movs r0, #2 - bl sub_0807CA84 - cmp r0, #0 - beq _0804EE16 - movs r0, #3 - bl sub_0807CA84 - cmp r0, #0 - bne _0804EE16 - movs r0, #0x40 - bl sub_0807CA84 - cmp r0, #0 - beq _0804EE16 - movs r0, #0x41 - bl sub_0807CA84 - cmp r0, #0 - beq _0804EE16 - ldr r0, _0804EDAC @ =gUnk_080F5508 - bl sub_0804ADDC - b _0804EE16 - .align 2, 0 -_0804EDA8: .4byte gUnk_080F54E8 -_0804EDAC: .4byte gUnk_080F5508 -_0804EDB0: - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EDE4 - movs r0, #3 - bl sub_0807CA84 - cmp r0, #0 - beq _0804EE16 - movs r0, #4 - bl sub_0807CA84 - cmp r0, #0 - bne _0804EE16 - movs r0, #0x42 - bl sub_0807CA84 - cmp r0, #0 - beq _0804EE16 - ldr r0, _0804EDE0 @ =gUnk_080F5558 - bl sub_0804ADDC - b _0804EE16 - .align 2, 0 -_0804EDE0: .4byte gUnk_080F5558 -_0804EDE4: - movs r0, #0x7c - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EE10 - movs r0, #6 - bl sub_0807CA84 - cmp r0, #0 - bne _0804EE16 - movs r0, #0x43 - bl sub_0807CA84 - cmp r0, #0 - beq _0804EE16 - ldr r0, _0804EE0C @ =gUnk_080F5598 - bl sub_0804ADDC - b _0804EE16 - .align 2, 0 -_0804EE0C: .4byte gUnk_080F5598 -_0804EE10: - ldr r0, _0804EE5C @ =gUnk_080F55D8 - bl sub_0804ADDC -_0804EE16: - movs r0, #0x7a - bl sub_0807CBD0 - cmp r0, #0 - beq _0804EE26 - ldr r0, _0804EE60 @ =gUnk_080F5528 - bl sub_0804ADDC -_0804EE26: - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - beq _0804EE36 - ldr r0, _0804EE64 @ =gUnk_080F5578 - bl sub_0804ADDC -_0804EE36: - movs r0, #0x7c - bl sub_0807CBD0 - cmp r0, #0 - beq _0804EE46 - ldr r0, _0804EE68 @ =gUnk_080F55B8 - bl sub_0804ADDC -_0804EE46: - movs r0, #0x5d - bl GetProgressFlag - cmp r0, #0 - beq _0804EE5A - ldr r0, _0804EE6C @ =gUnk_02033A90 - ldr r1, _0804EE70 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x31 - str r1, [r0] -_0804EE5A: - pop {pc} - .align 2, 0 -_0804EE5C: .4byte gUnk_080F55D8 -_0804EE60: .4byte gUnk_080F5528 -_0804EE64: .4byte gUnk_080F5578 -_0804EE68: .4byte gUnk_080F55B8 -_0804EE6C: .4byte gUnk_02033A90 -_0804EE70: .4byte 0x00000864 - - thumb_func_start sub_0804EE74 -sub_0804EE74: @ 0x0804EE74 - movs r0, #1 - bx lr - - thumb_func_start sub_0804EE78 -sub_0804EE78: @ 0x0804EE78 - push {lr} - movs r0, #0x78 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EE94 - movs r0, #0x7c - bl sub_0807CBD0 - cmp r0, #0 - beq _0804EE94 - ldr r0, _0804EEAC @ =gUnk_080F5660 - bl sub_0804ADDC -_0804EE94: - movs r0, #0x5d - bl GetProgressFlag - cmp r0, #0 - beq _0804EEA8 - ldr r0, _0804EEB0 @ =gUnk_02033A90 - ldr r1, _0804EEB4 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x31 - str r1, [r0] -_0804EEA8: - pop {pc} - .align 2, 0 -_0804EEAC: .4byte gUnk_080F5660 -_0804EEB0: .4byte gUnk_02033A90 -_0804EEB4: .4byte 0x00000864 - - thumb_func_start sub_0804EEB8 -sub_0804EEB8: @ 0x0804EEB8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804EEBC -sub_0804EEBC: @ 0x0804EEBC - push {lr} - ldr r0, _0804EEF4 @ =gUnk_080F5758 - bl sub_0804ADDC - movs r0, #0x36 - bl sub_0807CA84 - cmp r0, #0 - bne _0804EEE2 - movs r0, #0x80 - lsls r0, r0, #2 - movs r1, #0x8f - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _0804EEE2 - ldr r0, _0804EEF8 @ =gUnk_080F57E8 - bl sub_0804ADDC -_0804EEE2: - movs r0, #0x55 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EF00 - ldr r0, _0804EEFC @ =gUnk_080F57A8 - bl sub_0804ADDC - b _0804EF54 - .align 2, 0 -_0804EEF4: .4byte gUnk_080F5758 -_0804EEF8: .4byte gUnk_080F57E8 -_0804EEFC: .4byte gUnk_080F57A8 -_0804EF00: - ldr r1, _0804EF34 @ =gUnk_080FD5A0 - ldr r0, _0804EF38 @ =gUnk_02002A40 - adds r0, #0xae - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x1d - bls _0804EF16 - ldr r0, _0804EF3C @ =gUnk_080F57C8 - bl sub_0804ADDC -_0804EF16: - movs r0, #0xb - bl sub_0807CA84 - cmp r0, #0 - bne _0804EF44 - movs r0, #0xc - bl sub_0807CA84 - cmp r0, #0 - bne _0804EF44 - ldr r0, _0804EF40 @ =gUnk_080F5888 - bl sub_0804ADDC - b _0804EF54 - .align 2, 0 -_0804EF34: .4byte gUnk_080FD5A0 -_0804EF38: .4byte gUnk_02002A40 -_0804EF3C: .4byte gUnk_080F57C8 -_0804EF40: .4byte gUnk_080F5888 -_0804EF44: - movs r0, #0xcd - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EF54 - ldr r0, _0804EF80 @ =gUnk_080F58A8 - bl sub_0804ADDC -_0804EF54: - movs r0, #9 - bl sub_0807CA84 - cmp r0, #0 - bne _0804EF68 - movs r0, #4 - bl GetProgressFlag - cmp r0, #0 - beq _0804EF92 -_0804EF68: - ldr r0, _0804EF84 @ =gUnk_080F5868 - bl sub_0804ADDC - movs r0, #0x56 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804EF8C - ldr r0, _0804EF88 @ =gUnk_080F5828 - bl sub_0804ADDC - b _0804EF92 - .align 2, 0 -_0804EF80: .4byte gUnk_080F58A8 -_0804EF84: .4byte gUnk_080F5868 -_0804EF88: .4byte gUnk_080F5828 -_0804EF8C: - ldr r0, _0804EFA4 @ =gUnk_080F5848 - bl sub_0804ADDC -_0804EF92: - ldr r0, _0804EFA8 @ =gUnk_02002A40 - adds r0, #0xbb - ldrb r0, [r0] - cmp r0, #0 - bne _0804EFA2 - ldr r0, _0804EFAC @ =gUnk_080F5788 - bl sub_0804ADDC -_0804EFA2: - pop {pc} - .align 2, 0 -_0804EFA4: .4byte gUnk_080F5848 -_0804EFA8: .4byte gUnk_02002A40 -_0804EFAC: .4byte gUnk_080F5788 - - thumb_func_start sub_0804EFB0 -sub_0804EFB0: @ 0x0804EFB0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_397 -nullsub_397: @ 0x0804EFB4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EFB8 -sub_0804EFB8: @ 0x0804EFB8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804EFBC -sub_0804EFBC: @ 0x0804EFBC - push {lr} - movs r0, #0x38 - bl sub_0807CA84 - cmp r0, #1 - bne _0804EFCE - ldr r0, _0804EFD0 @ =gUnk_080F5B3C - bl sub_0804ADDC -_0804EFCE: - pop {pc} - .align 2, 0 -_0804EFD0: .4byte gUnk_080F5B3C - - thumb_func_start sub_0804EFD4 -sub_0804EFD4: @ 0x0804EFD4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_398 -nullsub_398: @ 0x0804EFD8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804EFDC -sub_0804EFDC: @ 0x0804EFDC - push {lr} - movs r0, #0x50 - bl GetProgressFlag - cmp r0, #0 - beq _0804EFEE - ldr r1, _0804EFF4 @ =gUnk_030010A0 - movs r0, #5 - strb r0, [r1, #0xf] -_0804EFEE: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804EFF4: .4byte gUnk_030010A0 - - thumb_func_start sub_0804EFF8 -sub_0804EFF8: @ 0x0804EFF8 - push {lr} - ldr r0, _0804F020 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #7 - bls _0804F008 - ldr r0, _0804F024 @ =gUnk_080F5DD0 - bl sub_0804ADDC -_0804F008: - movs r0, #0x50 - bl GetProgressFlag - cmp r0, #0 - beq _0804F01C - ldr r2, _0804F028 @ =gUnk_08011C50 - movs r0, #1 - movs r1, #2 - bl sub_080751E8 -_0804F01C: - pop {pc} - .align 2, 0 -_0804F020: .4byte gUnk_02002A40 -_0804F024: .4byte gUnk_080F5DD0 -_0804F028: .4byte gUnk_08011C50 - - thumb_func_start sub_0804F02C -sub_0804F02C: @ 0x0804F02C - movs r0, #1 - bx lr - - thumb_func_start sub_0804F030 -sub_0804F030: @ 0x0804F030 - push {lr} - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #0xd1 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0804F046 - ldr r0, _0804F048 @ =gUnk_080F5E68 - bl sub_0804ADDC -_0804F046: - pop {pc} - .align 2, 0 -_0804F048: .4byte gUnk_080F5E68 - - thumb_func_start sub_0804F04C -sub_0804F04C: @ 0x0804F04C - movs r0, #1 - bx lr - - thumb_func_start sub_0804F050 -sub_0804F050: @ 0x0804F050 - push {lr} - ldr r0, _0804F074 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #4 - bls _0804F060 - ldr r0, _0804F078 @ =gUnk_080F5F38 - bl sub_0804ADDC -_0804F060: - movs r0, #0x92 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804F080 - ldr r0, _0804F07C @ =gUnk_080F5F58 - bl sub_0804ADDC - b _0804F086 - .align 2, 0 -_0804F074: .4byte gUnk_02002A40 -_0804F078: .4byte gUnk_080F5F38 -_0804F07C: .4byte gUnk_080F5F58 -_0804F080: - ldr r0, _0804F088 @ =gUnk_080F5F78 - bl sub_0804ADDC -_0804F086: - pop {pc} - .align 2, 0 -_0804F088: .4byte gUnk_080F5F78 - - thumb_func_start sub_0804F08C -sub_0804F08C: @ 0x0804F08C - movs r0, #1 - bx lr - - thumb_func_start nullsub_399 -nullsub_399: @ 0x0804F090 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F094 -sub_0804F094: @ 0x0804F094 - movs r0, #1 - bx lr - - thumb_func_start nullsub_400 -nullsub_400: @ 0x0804F098 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F09C -sub_0804F09C: @ 0x0804F09C - push {lr} - movs r0, #0x24 - bl GetProgressFlag - cmp r0, #0 - beq _0804F0BC - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #0xdc - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _0804F0BC - movs r0, #0x58 - bl sub_0807CD04 -_0804F0BC: - movs r0, #1 - pop {pc} - - thumb_func_start sub_0804F0C0 -sub_0804F0C0: @ 0x0804F0C0 - push {r4, lr} - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #0xdc - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _0804F0D6 - movs r0, #0x90 - bl sub_0807CCB4 -_0804F0D6: - movs r0, #0xf - bl sub_0801E7F4 - cmp r0, #0 - beq _0804F0E6 - ldr r0, _0804F118 @ =gUnk_080F61BC - bl sub_0804ADDC -_0804F0E6: - movs r0, #0x58 - bl GetProgressFlag - cmp r0, #0 - bne _0804F106 - ldr r4, _0804F11C @ =0x00004072 - ldr r1, _0804F120 @ =0x000004C7 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F124 @ =0x00000507 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 -_0804F106: - movs r2, #0xf4 - lsls r2, r2, #1 - movs r3, #0xac - lsls r3, r3, #1 - movs r0, #8 - movs r1, #0 - bl sub_08052CA4 - pop {r4, pc} - .align 2, 0 -_0804F118: .4byte gUnk_080F61BC -_0804F11C: .4byte 0x00004072 -_0804F120: .4byte 0x000004C7 -_0804F124: .4byte 0x00000507 - - thumb_func_start sub_0804F128 -sub_0804F128: @ 0x0804F128 - movs r0, #1 - bx lr - - thumb_func_start sub_0804F12C -sub_0804F12C: @ 0x0804F12C - push {lr} - movs r0, #0x58 - bl GetProgressFlag - cmp r0, #0 - bne _0804F144 - ldr r0, _0804F140 @ =gUnk_080F62E4 - bl sub_0804ADDC - b _0804F154 - .align 2, 0 -_0804F140: .4byte gUnk_080F62E4 -_0804F144: - movs r0, #0x63 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804F154 - ldr r0, _0804F158 @ =gUnk_080F6324 - bl sub_0804ADDC -_0804F154: - pop {pc} - .align 2, 0 -_0804F158: .4byte gUnk_080F6324 - - thumb_func_start sub_0804F15C -sub_0804F15C: @ 0x0804F15C - movs r0, #1 - bx lr - - thumb_func_start nullsub_401 -nullsub_401: @ 0x0804F160 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F164 -sub_0804F164: @ 0x0804F164 - movs r0, #1 - bx lr - - thumb_func_start sub_0804F168 -sub_0804F168: @ 0x0804F168 - push {lr} - movs r0, #0xb1 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804F180 - ldr r0, _0804F17C @ =gUnk_080F6564 - bl sub_0804ADDC - b _0804F186 - .align 2, 0 -_0804F17C: .4byte gUnk_080F6564 -_0804F180: - ldr r0, _0804F188 @ =gUnk_080F6584 - bl sub_0804ADDC -_0804F186: - pop {pc} - .align 2, 0 -_0804F188: .4byte gUnk_080F6584 - - thumb_func_start sub_0804F18C -sub_0804F18C: @ 0x0804F18C - movs r0, #1 - bx lr - - thumb_func_start sub_0804F190 -sub_0804F190: @ 0x0804F190 - push {lr} - movs r0, #5 - bl sub_0805B4D0 - movs r0, #6 - bl GetProgressFlag - cmp r0, #0 - beq _0804F1B6 - movs r0, #0x80 - lsls r0, r0, #1 - movs r1, #5 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0804F1B6 - ldr r0, _0804F1D4 @ =gUnk_080F66AC - bl sub_0804ADDC -_0804F1B6: - movs r2, #0xf4 - lsls r2, r2, #1 - movs r3, #0xac - lsls r3, r3, #1 - movs r0, #8 - movs r1, #0 - bl sub_08052CA4 - ldr r2, _0804F1D8 @ =gUnk_02033A90 - ldrb r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2] - pop {pc} - .align 2, 0 -_0804F1D4: .4byte gUnk_080F66AC -_0804F1D8: .4byte gUnk_02033A90 - - thumb_func_start sub_0804F1DC -sub_0804F1DC: @ 0x0804F1DC - movs r0, #1 - bx lr - - thumb_func_start nullsub_402 -nullsub_402: @ 0x0804F1E0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F1E4 -sub_0804F1E4: @ 0x0804F1E4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_403 -nullsub_403: @ 0x0804F1E8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F1EC -sub_0804F1EC: @ 0x0804F1EC - movs r0, #1 - bx lr - - thumb_func_start nullsub_404 -nullsub_404: @ 0x0804F1F0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F1F4 -sub_0804F1F4: @ 0x0804F1F4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_405 -nullsub_405: @ 0x0804F1F8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F1FC -sub_0804F1FC: @ 0x0804F1FC - movs r0, #1 - bx lr - - thumb_func_start nullsub_406 -nullsub_406: @ 0x0804F200 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F204 -sub_0804F204: @ 0x0804F204 - movs r0, #1 - bx lr - - thumb_func_start nullsub_407 -nullsub_407: @ 0x0804F208 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F20C -sub_0804F20C: @ 0x0804F20C - movs r0, #1 - bx lr - - thumb_func_start nullsub_408 -nullsub_408: @ 0x0804F210 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F214 -sub_0804F214: @ 0x0804F214 - movs r0, #1 - bx lr - - thumb_func_start nullsub_409 -nullsub_409: @ 0x0804F218 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F21C -sub_0804F21C: @ 0x0804F21C - movs r0, #1 - bx lr - - thumb_func_start nullsub_410 -nullsub_410: @ 0x0804F220 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F224 -sub_0804F224: @ 0x0804F224 - movs r0, #1 - bx lr - - thumb_func_start nullsub_411 -nullsub_411: @ 0x0804F228 - bx lr - .align 2, 0 - - thumb_func_start sub_0804F22C -sub_0804F22C: @ 0x0804F22C - movs r0, #1 - bx lr - - thumb_func_start sub_0804F230 -sub_0804F230: @ 0x0804F230 - push {lr} - movs r0, #0 - bl sub_0805ADD8 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804F23C -sub_0804F23C: @ 0x0804F23C - push {lr} - movs r0, #0x6d - bl sub_0807CBD0 - cmp r0, #0 - bne _0804F252 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #7 - bl sub_08050054 -_0804F252: - movs r0, #0x49 - bl sub_0807CD04 - movs r0, #1 - pop {pc} - - thumb_func_start sub_0804F25C -sub_0804F25C: @ 0x0804F25C - push {r4, lr} - movs r0, #0 - bl sub_0805ADD8 - movs r0, #0x6d - bl sub_0807CBD0 - cmp r0, #0 - bne _0804F27A - ldr r0, _0804F2B0 @ =gUnk_080F70A8 - bl sub_0804ADDC - movs r0, #0x1c - bl sub_0807CD80 -_0804F27A: - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - bne _0804F28E - ldr r0, _0804F2B4 @ =gUnk_02033A90 - ldr r1, _0804F2B8 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x10 - str r1, [r0] -_0804F28E: - ldr r4, _0804F2BC @ =gUnk_02002A40 - ldr r0, [r4, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x17 - ands r0, r1 - cmp r0, #0 - bne _0804F2A2 - ldr r0, _0804F2C0 @ =gUnk_080F70D8 - bl sub_0804ADDC -_0804F2A2: - ldrb r0, [r4, #8] - cmp r0, #3 - bls _0804F2AE - ldr r0, _0804F2C4 @ =gUnk_080F7088 - bl sub_0804ADDC -_0804F2AE: - pop {r4, pc} - .align 2, 0 -_0804F2B0: .4byte gUnk_080F70A8 -_0804F2B4: .4byte gUnk_02033A90 -_0804F2B8: .4byte 0x00000864 -_0804F2BC: .4byte gUnk_02002A40 -_0804F2C0: .4byte gUnk_080F70D8 -_0804F2C4: .4byte gUnk_080F7088 - - thumb_func_start sub_0804F2C8 -sub_0804F2C8: @ 0x0804F2C8 - push {lr} - ldr r0, _0804F2E0 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x17 - ands r0, r1 - cmp r0, #0 - bne _0804F2DE - ldr r0, _0804F2E4 @ =gUnk_080F70D8 - bl sub_0804ADDC -_0804F2DE: - pop {pc} - .align 2, 0 -_0804F2E0: .4byte gUnk_02002A40 -_0804F2E4: .4byte gUnk_080F70D8 - - thumb_func_start sub_0804F2E8 -sub_0804F2E8: @ 0x0804F2E8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804F2EC -sub_0804F2EC: @ 0x0804F2EC - push {lr} - movs r0, #0 - bl sub_0805ADD8 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804F2F8 -sub_0804F2F8: @ 0x0804F2F8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804F2FC -sub_0804F2FC: @ 0x0804F2FC - push {lr} - movs r0, #0 - bl sub_0805ADD8 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804F308 -sub_0804F308: @ 0x0804F308 - push {lr} - movs r0, #0x11 - bl sub_0807CA84 - cmp r0, #0 - beq _0804F324 - movs r0, #0x12 - bl sub_0807CA84 - cmp r0, #0 - bne _0804F324 - ldr r1, _0804F328 @ =gUnk_02034350 - ldr r0, _0804F32C @ =gUnk_080F7680 - str r0, [r1, #0x74] -_0804F324: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804F328: .4byte gUnk_02034350 -_0804F32C: .4byte gUnk_080F7680 - - thumb_func_start sub_0804F330 -sub_0804F330: @ 0x0804F330 - push {r4, lr} - movs r0, #0 - bl sub_0805ADD8 - ldr r0, _0804F38C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #3 - bls _0804F346 - ldr r0, _0804F390 @ =gUnk_080F7500 - bl sub_0804ADDC -_0804F346: - movs r0, #0x11 - bl sub_0807CA84 - cmp r0, #0 - beq _0804F38A - movs r0, #0x12 - bl sub_0807CA84 - cmp r0, #0 - bne _0804F38A - ldr r0, _0804F394 @ =gUnk_080F7550 - bl sub_0804ADDC - ldr r4, _0804F398 @ =0x00004072 - ldr r1, _0804F39C @ =0x00000311 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F3A0 @ =0x00000351 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F3A4 @ =0x000003D9 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F3A8 @ =0x00000419 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 -_0804F38A: - pop {r4, pc} - .align 2, 0 -_0804F38C: .4byte gUnk_02002A40 -_0804F390: .4byte gUnk_080F7500 -_0804F394: .4byte gUnk_080F7550 -_0804F398: .4byte 0x00004072 -_0804F39C: .4byte 0x00000311 -_0804F3A0: .4byte 0x00000351 -_0804F3A4: .4byte 0x000003D9 -_0804F3A8: .4byte 0x00000419 - - thumb_func_start sub_0804F3AC -sub_0804F3AC: @ 0x0804F3AC - movs r0, #1 - bx lr - - thumb_func_start sub_0804F3B0 -sub_0804F3B0: @ 0x0804F3B0 - push {lr} - movs r0, #0 - bl sub_0805ADD8 - movs r0, #0x80 - lsls r0, r0, #2 - movs r1, #0x8f - bl GetProgressFlagWithOffset - cmp r0, #0 - beq _0804F3DC - movs r0, #0x1d - bl GetProgressFlag - cmp r0, #0 - bne _0804F3EC - ldr r0, _0804F3D8 @ =gUnk_080F77C0 - bl sub_0804ADDC - b _0804F3EC - .align 2, 0 -_0804F3D8: .4byte gUnk_080F77C0 -_0804F3DC: - movs r0, #0x40 - bl sub_0807CA84 - cmp r0, #0 - beq _0804F3EC - ldr r0, _0804F444 @ =gUnk_080F77F0 - bl sub_0804ADDC -_0804F3EC: - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - beq _0804F406 - movs r0, #0x40 - bl sub_0807CA84 - cmp r0, #0 - bne _0804F406 - ldr r0, _0804F448 @ =gUnk_080F7810 - bl sub_0804ADDC -_0804F406: - movs r0, #0x29 - bl sub_0801E7F4 - cmp r0, #0 - bne _0804F42A - ldr r0, _0804F44C @ =gUnk_080F7860 - bl sub_0804ADDC - ldr r0, _0804F450 @ =0x00004072 - ldr r1, _0804F454 @ =0x00000D88 - movs r2, #1 - bl sub_0800015E - ldr r0, _0804F458 @ =0x00004096 - ldr r1, _0804F45C @ =0x00000DC8 - movs r2, #1 - bl sub_0800015E -_0804F42A: - ldr r0, _0804F460 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #3 - bls _0804F442 - movs r0, #0x5c - bl GetProgressFlag - cmp r0, #0 - beq _0804F442 - ldr r0, _0804F464 @ =gUnk_080F78A0 - bl sub_0804ADDC -_0804F442: - pop {pc} - .align 2, 0 -_0804F444: .4byte gUnk_080F77F0 -_0804F448: .4byte gUnk_080F7810 -_0804F44C: .4byte gUnk_080F7860 -_0804F450: .4byte 0x00004072 -_0804F454: .4byte 0x00000D88 -_0804F458: .4byte 0x00004096 -_0804F45C: .4byte 0x00000DC8 -_0804F460: .4byte gUnk_02002A40 -_0804F464: .4byte gUnk_080F78A0 - - thumb_func_start sub_0804F468 -sub_0804F468: @ 0x0804F468 - push {lr} - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - beq _0804F48A - movs r0, #0x11 - bl sub_0807CA84 - cmp r0, #0 - bne _0804F48A - ldr r0, _0804F4D0 @ =gUnk_02034350 - ldr r1, _0804F4D4 @ =gUnk_080F7CD0 - str r1, [r0, #0x6c] - adds r0, #0x88 - ldr r1, _0804F4D8 @ =sub_0804F5E8 - str r1, [r0] -_0804F48A: - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _0804F4BA - movs r0, #3 - bl sub_0807CA84 - cmp r0, #0 - beq _0804F4BA - movs r0, #0x8c - bl sub_0807CBD0 - adds r3, r0, #0 - cmp r3, #0 - bne _0804F4BA - ldr r1, _0804F4D0 @ =gUnk_02034350 - ldr r0, _0804F4DC @ =gUnk_080F7C80 - str r0, [r1, #0x6c] - adds r2, r1, #0 - adds r2, #0x88 - ldr r0, _0804F4E0 @ =sub_0804F4E4 - str r0, [r2] - str r3, [r1, #0x74] -_0804F4BA: - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - beq _0804F4CA - movs r0, #0x64 - bl sub_0807CD80 -_0804F4CA: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804F4D0: .4byte gUnk_02034350 -_0804F4D4: .4byte gUnk_080F7CD0 -_0804F4D8: .4byte sub_0804F5E8 -_0804F4DC: .4byte gUnk_080F7C80 -_0804F4E0: .4byte sub_0804F4E4 - - thumb_func_start sub_0804F4E4 -sub_0804F4E4: @ 0x0804F4E4 - push {lr} - movs r0, #0 - bl sub_0805ADD8 - bl sub_0804F578 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804F4F4 -sub_0804F4F4: @ 0x0804F4F4 - push {r4, lr} - bl sub_0804F4E4 - movs r0, #0x8b - bl sub_0807CBD0 - cmp r0, #0 - bne _0804F540 - ldr r0, _0804F558 @ =gUnk_080F7D70 - bl sub_0804ADDC - movs r4, #0xba - lsls r4, r4, #1 - ldr r1, _0804F55C @ =0x000007A2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F560 @ =0x000007A3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F564 @ =0x000007A5 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F568 @ =0x000007A6 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F56C @ =0x000007A7 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 -_0804F540: - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - bne _0804F554 - ldr r0, _0804F570 @ =gUnk_02033A90 - ldr r1, _0804F574 @ =0x00000864 - adds r0, r0, r1 - movs r1, #0x13 - str r1, [r0] -_0804F554: - pop {r4, pc} - .align 2, 0 -_0804F558: .4byte gUnk_080F7D70 -_0804F55C: .4byte 0x000007A2 -_0804F560: .4byte 0x000007A3 -_0804F564: .4byte 0x000007A5 -_0804F568: .4byte 0x000007A6 -_0804F56C: .4byte 0x000007A7 -_0804F570: .4byte gUnk_02033A90 -_0804F574: .4byte 0x00000864 - - thumb_func_start sub_0804F578 -sub_0804F578: @ 0x0804F578 - push {lr} - movs r0, #0x8e - bl sub_0807CBD0 - cmp r0, #0 - bne _0804F590 - ldr r0, _0804F58C @ =gUnk_080F7DC0 - bl sub_0804ADDC - b _0804F5CC - .align 2, 0 -_0804F58C: .4byte gUnk_080F7DC0 -_0804F590: - ldr r1, _0804F5D0 @ =0x0000094A - movs r0, #0x37 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F5D4 @ =0x0000094B - movs r0, #0x37 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F5D8 @ =0x0000094C - movs r0, #0x37 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F5DC @ =0x0000098A - movs r0, #0x37 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F5E0 @ =0x0000098B - movs r0, #0x37 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F5E4 @ =0x0000098C - movs r0, #0x37 - movs r2, #1 - bl sub_0807B314 -_0804F5CC: - pop {pc} - .align 2, 0 -_0804F5D0: .4byte 0x0000094A -_0804F5D4: .4byte 0x0000094B -_0804F5D8: .4byte 0x0000094C -_0804F5DC: .4byte 0x0000098A -_0804F5E0: .4byte 0x0000098B -_0804F5E4: .4byte 0x0000098C - - thumb_func_start sub_0804F5E8 -sub_0804F5E8: @ 0x0804F5E8 - push {r4, lr} - bl sub_0804F4E4 - ldr r0, _0804F654 @ =0x000001D3 - ldr r1, _0804F658 @ =0x00000BDE - movs r2, #1 - bl sub_0807B314 - movs r4, #0xeb - lsls r4, r4, #1 - ldr r1, _0804F65C @ =0x00000BE2 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xea - lsls r0, r0, #1 - ldr r1, _0804F660 @ =0x00000C1F - movs r2, #1 - bl sub_0807B314 - ldr r0, _0804F664 @ =0x000001D5 - movs r1, #0xc2 - lsls r1, r1, #4 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F668 @ =0x00000C5E - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r4, _0804F66C @ =0x00004072 - ldr r1, _0804F670 @ =0x00000B9B - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F674 @ =0x00000BDB - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F678 @ =0x00000AA4 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F67C @ =0x00000AE4 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, pc} - .align 2, 0 -_0804F654: .4byte 0x000001D3 -_0804F658: .4byte 0x00000BDE -_0804F65C: .4byte 0x00000BE2 -_0804F660: .4byte 0x00000C1F -_0804F664: .4byte 0x000001D5 -_0804F668: .4byte 0x00000C5E -_0804F66C: .4byte 0x00004072 -_0804F670: .4byte 0x00000B9B -_0804F674: .4byte 0x00000BDB -_0804F678: .4byte 0x00000AA4 -_0804F67C: .4byte 0x00000AE4 - - thumb_func_start sub_0804F680 -sub_0804F680: @ 0x0804F680 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0804F6A2 - ldr r0, _0804F6A4 @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - adds r1, r1, r4 - strh r1, [r2, #0x2e] - ldrh r0, [r0, #8] - adds r0, r0, r5 - strh r0, [r2, #0x32] -_0804F6A2: - pop {r4, r5, pc} - .align 2, 0 -_0804F6A4: .4byte gUnk_03000BF0 - - thumb_func_start sub_0804F6A8 -sub_0804F6A8: @ 0x0804F6A8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xec - lsls r1, r1, #1 - movs r2, #0x84 - lsls r2, r2, #1 - bl sub_0804F680 - movs r1, #0x86 - lsls r1, r1, #2 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r4, #0 - bl sub_0804F680 - pop {r4, pc} - - thumb_func_start sub_0804F6C8 -sub_0804F6C8: @ 0x0804F6C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xf4 - lsls r1, r1, #1 - movs r2, #0x84 - lsls r2, r2, #1 - bl sub_0804F680 - movs r1, #0x82 - lsls r1, r1, #2 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r4, #0 - bl sub_0804F680 - pop {r4, pc} - - thumb_func_start sub_0804F6E8 -sub_0804F6E8: @ 0x0804F6E8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0xfc - lsls r5, r5, #1 - movs r2, #0x84 - lsls r2, r2, #1 - adds r1, r5, #0 - bl sub_0804F680 - movs r1, #0x96 - lsls r1, r1, #2 - movs r2, #0x9c - lsls r2, r2, #1 - adds r0, r4, #0 - bl sub_0804F680 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0804F680 - movs r1, #0xcc - lsls r1, r1, #1 - movs r2, #0xac - lsls r2, r2, #1 - adds r0, r4, #0 - bl sub_0804F680 - pop {r4, r5, pc} - - thumb_func_start sub_0804F724 -sub_0804F724: @ 0x0804F724 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x82 - lsls r1, r1, #2 - movs r2, #0x84 - lsls r2, r2, #1 - bl sub_0804F680 - movs r1, #0x96 - lsls r1, r1, #2 - movs r5, #0xa4 - lsls r5, r5, #1 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_0804F680 - movs r1, #0xf4 - lsls r1, r1, #1 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r4, #0 - bl sub_0804F680 - movs r1, #0xcc - lsls r1, r1, #1 - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_0804F680 - pop {r4, r5, pc} - - thumb_func_start sub_0804F760 -sub_0804F760: @ 0x0804F760 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x86 - lsls r1, r1, #2 - movs r2, #0x84 - lsls r2, r2, #1 - bl sub_0804F680 - movs r1, #0x96 - lsls r1, r1, #2 - movs r2, #0xac - lsls r2, r2, #1 - adds r0, r4, #0 - bl sub_0804F680 - movs r1, #0xec - lsls r1, r1, #1 - movs r2, #0xc4 - lsls r2, r2, #1 - adds r0, r4, #0 - bl sub_0804F680 - movs r1, #0xcc - lsls r1, r1, #1 - movs r2, #0x9c - lsls r2, r2, #1 - adds r0, r4, #0 - bl sub_0804F680 - pop {r4, pc} - - thumb_func_start sub_0804F79C -sub_0804F79C: @ 0x0804F79C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x35 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0804F7D0 - ldrb r1, [r2, #0x19] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2, #0x19] - ldr r1, _0804F804 @ =gUnk_03000BF0 - movs r3, #0xdc - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r3, #0xa4 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_0804F7D0: - adds r0, r4, #0 - movs r1, #0x35 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0804F802 - ldrb r1, [r2, #0x19] - movs r0, #0x3f - ands r0, r1 - strb r0, [r2, #0x19] - ldr r1, _0804F804 @ =gUnk_03000BF0 - movs r3, #0x8e - lsls r3, r3, #2 - adds r0, r3, #0 - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r2, #0x2e] - movs r3, #0xa4 - lsls r3, r3, #1 - adds r0, r3, #0 - ldrh r1, [r1, #8] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_0804F802: - pop {r4, pc} - .align 2, 0 -_0804F804: .4byte gUnk_03000BF0 - - thumb_func_start sub_0804F808 -sub_0804F808: @ 0x0804F808 - push {r4, lr} - ldr r4, _0804F824 @ =0x000001D3 - ldr r1, _0804F828 @ =0x0000041D - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F82C @ =0x00000621 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, pc} - .align 2, 0 -_0804F824: .4byte 0x000001D3 -_0804F828: .4byte 0x0000041D -_0804F82C: .4byte 0x00000621 - - thumb_func_start sub_0804F830 -sub_0804F830: @ 0x0804F830 - push {r4, lr} - movs r4, #0xea - lsls r4, r4, #1 - ldr r1, _0804F850 @ =0x0000041E - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - movs r1, #0xc4 - lsls r1, r1, #3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, pc} - .align 2, 0 -_0804F850: .4byte 0x0000041E - - thumb_func_start sub_0804F854 -sub_0804F854: @ 0x0804F854 - push {r4, r5, lr} - ldr r5, _0804F888 @ =0x000001D5 - ldr r1, _0804F88C @ =0x0000041F - adds r0, r5, #0 - movs r2, #1 - bl sub_0807B314 - movs r4, #0xea - lsls r4, r4, #1 - ldr r1, _0804F890 @ =0x000004E5 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F894 @ =0x0000061F - adds r0, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F898 @ =0x00000559 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0804F888: .4byte 0x000001D5 -_0804F88C: .4byte 0x0000041F -_0804F890: .4byte 0x000004E5 -_0804F894: .4byte 0x0000061F -_0804F898: .4byte 0x00000559 - - thumb_func_start sub_0804F89C -sub_0804F89C: @ 0x0804F89C - push {r4, r5, lr} - movs r5, #0xeb - lsls r5, r5, #1 - movs r1, #0x84 - lsls r1, r1, #3 - adds r0, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r4, _0804F8D0 @ =0x000001D5 - ldr r1, _0804F8D4 @ =0x00000525 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F8D8 @ =0x0000061E - adds r0, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F8DC @ =0x00000519 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0804F8D0: .4byte 0x000001D5 -_0804F8D4: .4byte 0x00000525 -_0804F8D8: .4byte 0x0000061E -_0804F8DC: .4byte 0x00000519 - - thumb_func_start sub_0804F8E0 -sub_0804F8E0: @ 0x0804F8E0 - push {r4, r5, lr} - ldr r5, _0804F914 @ =0x000001D3 - ldr r1, _0804F918 @ =0x00000421 - adds r0, r5, #0 - movs r2, #1 - bl sub_0807B314 - movs r4, #0xeb - lsls r4, r4, #1 - ldr r1, _0804F91C @ =0x00000565 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F920 @ =0x0000061D - adds r0, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r1, _0804F924 @ =0x000004D9 - adds r0, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0804F914: .4byte 0x000001D3 -_0804F918: .4byte 0x00000421 -_0804F91C: .4byte 0x00000565 -_0804F920: .4byte 0x0000061D -_0804F924: .4byte 0x000004D9 - - thumb_func_start sub_0804F928 -sub_0804F928: @ 0x0804F928 - push {lr} - ldr r0, _0804F93C @ =0x0000041D - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F940 @ =0x00000621 - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_0804F93C: .4byte 0x0000041D -_0804F940: .4byte 0x00000621 - - thumb_func_start sub_0804F944 -sub_0804F944: @ 0x0804F944 - push {lr} - ldr r0, _0804F95C @ =0x0000041E - movs r1, #1 - bl sub_0807BA8C - movs r0, #0xc4 - lsls r0, r0, #3 - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_0804F95C: .4byte 0x0000041E - - thumb_func_start sub_0804F960 -sub_0804F960: @ 0x0804F960 - push {lr} - ldr r0, _0804F984 @ =0x0000041F - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F988 @ =0x000004E5 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F98C @ =0x0000061F - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F990 @ =0x00000559 - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_0804F984: .4byte 0x0000041F -_0804F988: .4byte 0x000004E5 -_0804F98C: .4byte 0x0000061F -_0804F990: .4byte 0x00000559 - - thumb_func_start sub_0804F994 -sub_0804F994: @ 0x0804F994 - push {lr} - movs r0, #0x84 - lsls r0, r0, #3 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F9BC @ =0x00000525 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F9C0 @ =0x0000061E - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F9C4 @ =0x00000519 - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_0804F9BC: .4byte 0x00000525 -_0804F9C0: .4byte 0x0000061E -_0804F9C4: .4byte 0x00000519 - - thumb_func_start sub_0804F9C8 -sub_0804F9C8: @ 0x0804F9C8 - push {lr} - ldr r0, _0804F9EC @ =0x00000421 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F9F0 @ =0x00000565 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F9F4 @ =0x0000061D - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0804F9F8 @ =0x000004D9 - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_0804F9EC: .4byte 0x00000421 -_0804F9F0: .4byte 0x00000565 -_0804F9F4: .4byte 0x0000061D -_0804F9F8: .4byte 0x000004D9 - - thumb_func_start sub_0804F9FC -sub_0804F9FC: @ 0x0804F9FC - movs r0, #1 - bx lr - - thumb_func_start sub_0804FA00 -sub_0804FA00: @ 0x0804FA00 - push {lr} - movs r0, #0 - bl sub_0805ADD8 - ldr r0, _0804FA24 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #3 - bls _0804FA20 - movs r0, #0x5c - bl GetProgressFlag - cmp r0, #0 - beq _0804FA20 - ldr r0, _0804FA28 @ =gUnk_080F806C - bl sub_0804ADDC -_0804FA20: - pop {pc} - .align 2, 0 -_0804FA24: .4byte gUnk_02002A40 -_0804FA28: .4byte gUnk_080F806C - - thumb_func_start sub_0804FA2C -sub_0804FA2C: @ 0x0804FA2C - movs r0, #1 - bx lr - - thumb_func_start sub_0804FA30 -sub_0804FA30: @ 0x0804FA30 - push {lr} - movs r0, #0 - bl sub_0805ADD8 - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _0804FA5C - movs r0, #3 - bl sub_0807CA84 - cmp r0, #0 - beq _0804FA5C - movs r0, #0x9c - bl sub_0807CBD0 - cmp r0, #0 - bne _0804FA5C - ldr r0, _0804FA60 @ =gUnk_080F82E0 - bl sub_0804ADDC -_0804FA5C: - pop {pc} - .align 2, 0 -_0804FA60: .4byte gUnk_080F82E0 - - thumb_func_start sub_0804FA64 -sub_0804FA64: @ 0x0804FA64 - movs r0, #1 - bx lr - - thumb_func_start sub_0804FA68 -sub_0804FA68: @ 0x0804FA68 - push {lr} - movs r0, #0 - bl sub_0805ADD8 - movs r0, #0x21 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804FA8E - movs r0, #0x80 - lsls r0, r0, #2 - movs r1, #0x42 - bl GetProgressFlagWithOffset - cmp r0, #0 - bne _0804FA8E - ldr r0, _0804FA90 @ =gUnk_080F8430 - bl sub_0804ADDC -_0804FA8E: - pop {pc} - .align 2, 0 -_0804FA90: .4byte gUnk_080F8430 - - thumb_func_start sub_0804FA94 -sub_0804FA94: @ 0x0804FA94 - movs r0, #1 - bx lr - - thumb_func_start sub_0804FA98 -sub_0804FA98: @ 0x0804FA98 - push {lr} - movs r0, #0x57 - bl GetProgressFlag - cmp r0, #0 - beq _0804FAB0 - ldr r0, _0804FAAC @ =gUnk_080F85D8 - bl sub_0804ADDC - b _0804FAB6 - .align 2, 0 -_0804FAAC: .4byte gUnk_080F85D8 -_0804FAB0: - ldr r0, _0804FAC8 @ =gUnk_080F85F8 - bl sub_0804ADDC -_0804FAB6: - movs r0, #0xc - bl sub_0807CA84 - cmp r0, #0 - bne _0804FAC6 - movs r0, #8 - bl sub_0807CD34 -_0804FAC6: - pop {pc} - .align 2, 0 -_0804FAC8: .4byte gUnk_080F85F8 - - thumb_func_start sub_0804FACC -sub_0804FACC: @ 0x0804FACC - movs r0, #1 - bx lr - - thumb_func_start nullsub_412 -nullsub_412: @ 0x0804FAD0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FAD4 -sub_0804FAD4: @ 0x0804FAD4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_413 -nullsub_413: @ 0x0804FAD8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FADC -sub_0804FADC: @ 0x0804FADC - movs r0, #1 - bx lr - - thumb_func_start nullsub_414 -nullsub_414: @ 0x0804FAE0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FAE4 -sub_0804FAE4: @ 0x0804FAE4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_415 -nullsub_415: @ 0x0804FAE8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FAEC -sub_0804FAEC: @ 0x0804FAEC - movs r0, #1 - bx lr - - thumb_func_start nullsub_416 -nullsub_416: @ 0x0804FAF0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FAF4 -sub_0804FAF4: @ 0x0804FAF4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_417 -nullsub_417: @ 0x0804FAF8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FAFC -sub_0804FAFC: @ 0x0804FAFC - movs r0, #1 - bx lr - - thumb_func_start nullsub_418 -nullsub_418: @ 0x0804FB00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB04 -sub_0804FB04: @ 0x0804FB04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_419 -nullsub_419: @ 0x0804FB08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB0C -sub_0804FB0C: @ 0x0804FB0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_420 -nullsub_420: @ 0x0804FB10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB14 -sub_0804FB14: @ 0x0804FB14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_421 -nullsub_421: @ 0x0804FB18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB1C -sub_0804FB1C: @ 0x0804FB1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_422 -nullsub_422: @ 0x0804FB20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB24 -sub_0804FB24: @ 0x0804FB24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_423 -nullsub_423: @ 0x0804FB28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB2C -sub_0804FB2C: @ 0x0804FB2C - movs r0, #1 - bx lr - - thumb_func_start sub_0804FB30 -sub_0804FB30: @ 0x0804FB30 - push {lr} - movs r0, #0x11 - bl sub_0807CBD0 - cmp r0, #0 - beq _0804FB64 - movs r0, #0 - bl sub_0807CD10 - movs r0, #1 - bl sub_0807CD10 - movs r0, #0x80 - lsls r0, r0, #1 - bl sub_0805308C - movs r0, #0x12 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804FB64 - movs r0, #0x73 - movs r1, #0xcb - movs r2, #1 - bl sub_0807B314 -_0804FB64: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804FB68 -sub_0804FB68: @ 0x0804FB68 - movs r0, #1 - bx lr - - thumb_func_start nullsub_089 -nullsub_089: @ 0x0804FB6C - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB70 -sub_0804FB70: @ 0x0804FB70 - movs r0, #1 - bx lr - - thumb_func_start nullsub_90 -nullsub_90: @ 0x0804FB74 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB78 -sub_0804FB78: @ 0x0804FB78 - movs r0, #1 - bx lr - - thumb_func_start nullsub_91 -nullsub_91: @ 0x0804FB7C - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB80 -sub_0804FB80: @ 0x0804FB80 - movs r0, #1 - bx lr - - thumb_func_start nullsub_92 -nullsub_92: @ 0x0804FB84 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB88 -sub_0804FB88: @ 0x0804FB88 - movs r0, #1 - bx lr - - thumb_func_start nullsub_93 -nullsub_93: @ 0x0804FB8C - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB90 -sub_0804FB90: @ 0x0804FB90 - movs r0, #1 - bx lr - - thumb_func_start nullsub_94 -nullsub_94: @ 0x0804FB94 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FB98 -sub_0804FB98: @ 0x0804FB98 - movs r0, #1 - bx lr - - thumb_func_start nullsub_95 -nullsub_95: @ 0x0804FB9C - bx lr - .align 2, 0 - - thumb_func_start sub_0804FBA0 -sub_0804FBA0: @ 0x0804FBA0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_96 -nullsub_96: @ 0x0804FBA4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FBA8 -sub_0804FBA8: @ 0x0804FBA8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_97 -nullsub_97: @ 0x0804FBAC - bx lr - .align 2, 0 - - thumb_func_start sub_0804FBB0 -sub_0804FBB0: @ 0x0804FBB0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_98 -nullsub_98: @ 0x0804FBB4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FBB8 -sub_0804FBB8: @ 0x0804FBB8 - movs r0, #1 - bx lr - - thumb_func_start sub_0804FBBC -sub_0804FBBC: @ 0x0804FBBC - push {lr} - ldr r0, _0804FBD4 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - bne _0804FBD2 - ldr r0, _0804FBD8 @ =gUnk_080F9304 - bl sub_0804ADDC -_0804FBD2: - pop {pc} - .align 2, 0 -_0804FBD4: .4byte gUnk_02002A40 -_0804FBD8: .4byte gUnk_080F9304 - - thumb_func_start sub_0804FBDC -sub_0804FBDC: @ 0x0804FBDC - push {lr} - ldr r0, _0804FBF4 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - bne _0804FBF2 - ldr r0, _0804FBF8 @ =gUnk_080F9304 - bl sub_0804ADDC -_0804FBF2: - pop {pc} - .align 2, 0 -_0804FBF4: .4byte gUnk_02002A40 -_0804FBF8: .4byte gUnk_080F9304 - - thumb_func_start sub_0804FBFC -sub_0804FBFC: @ 0x0804FBFC - movs r0, #1 - bx lr - - thumb_func_start nullsub_424 -nullsub_424: @ 0x0804FC00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC04 -sub_0804FC04: @ 0x0804FC04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_425 -nullsub_425: @ 0x0804FC08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC0C -sub_0804FC0C: @ 0x0804FC0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_426 -nullsub_426: @ 0x0804FC10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC14 -sub_0804FC14: @ 0x0804FC14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_427 -nullsub_427: @ 0x0804FC18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC1C -sub_0804FC1C: @ 0x0804FC1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_428 -nullsub_428: @ 0x0804FC20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC24 -sub_0804FC24: @ 0x0804FC24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_429 -nullsub_429: @ 0x0804FC28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC2C -sub_0804FC2C: @ 0x0804FC2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_430 -nullsub_430: @ 0x0804FC30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC34 -sub_0804FC34: @ 0x0804FC34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_431 -nullsub_431: @ 0x0804FC38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC3C -sub_0804FC3C: @ 0x0804FC3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_432 -nullsub_432: @ 0x0804FC40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC44 -sub_0804FC44: @ 0x0804FC44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_433 -nullsub_433: @ 0x0804FC48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC4C -sub_0804FC4C: @ 0x0804FC4C - push {lr} - movs r0, #0xe - bl sub_0801E7F4 - cmp r0, #0 - bne _0804FC5E - ldr r1, _0804FC64 @ =gUnk_02034350 - ldr r0, _0804FC68 @ =gUnk_080F9BF8 - str r0, [r1, #0x6c] -_0804FC5E: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804FC64: .4byte gUnk_02034350 -_0804FC68: .4byte gUnk_080F9BF8 - - thumb_func_start sub_0804FC6C -sub_0804FC6C: @ 0x0804FC6C - push {lr} - movs r0, #2 - bl sub_0805B4D0 - movs r0, #0 - bl sub_0806D0B0 - pop {pc} - - thumb_func_start sub_0804FC7C -sub_0804FC7C: @ 0x0804FC7C - movs r0, #1 - bx lr - - thumb_func_start nullsub_99 -nullsub_99: @ 0x0804FC80 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC84 -sub_0804FC84: @ 0x0804FC84 - movs r0, #1 - bx lr - - thumb_func_start nullsub_100 -nullsub_100: @ 0x0804FC88 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC8C -sub_0804FC8C: @ 0x0804FC8C - movs r0, #1 - bx lr - - thumb_func_start nullsub_101 -nullsub_101: @ 0x0804FC90 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC94 -sub_0804FC94: @ 0x0804FC94 - movs r0, #1 - bx lr - - thumb_func_start nullsub_102 -nullsub_102: @ 0x0804FC98 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FC9C -sub_0804FC9C: @ 0x0804FC9C - movs r0, #1 - bx lr - - thumb_func_start nullsub_103 -nullsub_103: @ 0x0804FCA0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FCA4 -sub_0804FCA4: @ 0x0804FCA4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804FCA8 -sub_0804FCA8: @ 0x0804FCA8 - push {lr} - movs r0, #0x14 - bl sub_0801E7F4 - cmp r0, #0 - beq _0804FCBA - ldr r0, _0804FCCC @ =gUnk_080F9FA8 - bl sub_0804ADDC -_0804FCBA: - movs r0, #0x38 - bl sub_0807CA84 - cmp r0, #0 - bne _0804FCCA - ldr r0, _0804FCD0 @ =gUnk_080F9F88 - bl sub_0804ADDC -_0804FCCA: - pop {pc} - .align 2, 0 -_0804FCCC: .4byte gUnk_080F9FA8 -_0804FCD0: .4byte gUnk_080F9F88 - - thumb_func_start sub_0804FCD4 -sub_0804FCD4: @ 0x0804FCD4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_434 -nullsub_434: @ 0x0804FCD8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FCDC -sub_0804FCDC: @ 0x0804FCDC - movs r0, #1 - bx lr - - thumb_func_start nullsub_435 -nullsub_435: @ 0x0804FCE0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FCE4 -sub_0804FCE4: @ 0x0804FCE4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_436 -nullsub_436: @ 0x0804FCE8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FCEC -sub_0804FCEC: @ 0x0804FCEC - movs r0, #1 - bx lr - - thumb_func_start nullsub_437 -nullsub_437: @ 0x0804FCF0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FCF4 -sub_0804FCF4: @ 0x0804FCF4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_438 -nullsub_438: @ 0x0804FCF8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FCFC -sub_0804FCFC: @ 0x0804FCFC - movs r0, #1 - bx lr - - thumb_func_start nullsub_439 -nullsub_439: @ 0x0804FD00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD04 -sub_0804FD04: @ 0x0804FD04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_440 -nullsub_440: @ 0x0804FD08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD0C -sub_0804FD0C: @ 0x0804FD0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_441 -nullsub_441: @ 0x0804FD10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD14 -sub_0804FD14: @ 0x0804FD14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_442 -nullsub_442: @ 0x0804FD18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD1C -sub_0804FD1C: @ 0x0804FD1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_443 -nullsub_443: @ 0x0804FD20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD24 -sub_0804FD24: @ 0x0804FD24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_444 -nullsub_444: @ 0x0804FD28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD2C -sub_0804FD2C: @ 0x0804FD2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_445 -nullsub_445: @ 0x0804FD30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD34 -sub_0804FD34: @ 0x0804FD34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_446 -nullsub_446: @ 0x0804FD38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD3C -sub_0804FD3C: @ 0x0804FD3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_447 -nullsub_447: @ 0x0804FD40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD44 -sub_0804FD44: @ 0x0804FD44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_448 -nullsub_448: @ 0x0804FD48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD4C -sub_0804FD4C: @ 0x0804FD4C - movs r0, #1 - bx lr - - thumb_func_start nullsub_449 -nullsub_449: @ 0x0804FD50 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD54 -sub_0804FD54: @ 0x0804FD54 - movs r0, #1 - bx lr - - thumb_func_start sub_0804FD58 -sub_0804FD58: @ 0x0804FD58 - push {lr} - movs r0, #0x21 - bl sub_0801E7F4 - cmp r0, #0 - bne _0804FD6A - ldr r0, _0804FD6C @ =gUnk_080FA5D0 - bl sub_0804ADDC -_0804FD6A: - pop {pc} - .align 2, 0 -_0804FD6C: .4byte gUnk_080FA5D0 - - thumb_func_start sub_0804FD70 -sub_0804FD70: @ 0x0804FD70 - movs r0, #1 - bx lr - - thumb_func_start nullsub_450 -nullsub_450: @ 0x0804FD74 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD78 -sub_0804FD78: @ 0x0804FD78 - movs r0, #1 - bx lr - - thumb_func_start nullsub_451 -nullsub_451: @ 0x0804FD7C - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD80 -sub_0804FD80: @ 0x0804FD80 - movs r0, #1 - bx lr - - thumb_func_start nullsub_452 -nullsub_452: @ 0x0804FD84 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD88 -sub_0804FD88: @ 0x0804FD88 - movs r0, #1 - bx lr - - thumb_func_start nullsub_453 -nullsub_453: @ 0x0804FD8C - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD90 -sub_0804FD90: @ 0x0804FD90 - movs r0, #1 - bx lr - - thumb_func_start nullsub_454 -nullsub_454: @ 0x0804FD94 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FD98 -sub_0804FD98: @ 0x0804FD98 - movs r0, #1 - bx lr - - thumb_func_start nullsub_455 -nullsub_455: @ 0x0804FD9C - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDA0 -sub_0804FDA0: @ 0x0804FDA0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_456 -nullsub_456: @ 0x0804FDA4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDA8 -sub_0804FDA8: @ 0x0804FDA8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_457 -nullsub_457: @ 0x0804FDAC - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDB0 -sub_0804FDB0: @ 0x0804FDB0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_458 -nullsub_458: @ 0x0804FDB4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDB8 -sub_0804FDB8: @ 0x0804FDB8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_459 -nullsub_459: @ 0x0804FDBC - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDC0 -sub_0804FDC0: @ 0x0804FDC0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_460 -nullsub_460: @ 0x0804FDC4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDC8 -sub_0804FDC8: @ 0x0804FDC8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_461 -nullsub_461: @ 0x0804FDCC - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDD0 -sub_0804FDD0: @ 0x0804FDD0 - movs r0, #1 - bx lr - - thumb_func_start nullsub_462 -nullsub_462: @ 0x0804FDD4 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDD8 -sub_0804FDD8: @ 0x0804FDD8 - movs r0, #1 - bx lr - - thumb_func_start nullsub_463 -nullsub_463: @ 0x0804FDDC - bx lr - .align 2, 0 - - thumb_func_start sub_0804FDE0 -sub_0804FDE0: @ 0x0804FDE0 - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804FDF6 - ldr r0, _0804FDFC @ =gUnk_02034350 - ldr r1, _0804FE00 @ =gUnk_080FAD48 - str r1, [r0, #0x6c] - movs r1, #0 - str r1, [r0, #0x74] -_0804FDF6: - movs r0, #1 - pop {pc} - .align 2, 0 -_0804FDFC: .4byte gUnk_02034350 -_0804FE00: .4byte gUnk_080FAD48 - - thumb_func_start sub_0804FE04 -sub_0804FE04: @ 0x0804FE04 - push {lr} - movs r0, #0x51 - bl GetProgressFlag - cmp r0, #0 - beq _0804FE28 - ldr r0, _0804FE20 @ =gUnk_02033A90 - ldr r2, _0804FE24 @ =0x00000864 - adds r1, r0, r2 - subs r2, #4 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1] - b _0804FE2E - .align 2, 0 -_0804FE20: .4byte gUnk_02033A90 -_0804FE24: .4byte 0x00000864 -_0804FE28: - ldr r0, _0804FE3C @ =gUnk_080FACB8 - bl sub_0804ADDC -_0804FE2E: - movs r0, #0 - bl sub_0805B4D0 - bl sub_08059994 - pop {pc} - .align 2, 0 -_0804FE3C: .4byte gUnk_080FACB8 - - thumb_func_start sub_0804FE40 -sub_0804FE40: @ 0x0804FE40 - push {lr} - movs r0, #0 - bl sub_0805B4D0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0804FE4C -sub_0804FE4C: @ 0x0804FE4C - movs r0, #1 - bx lr - - thumb_func_start nullsub_104 -nullsub_104: @ 0x0804FE50 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FE54 -sub_0804FE54: @ 0x0804FE54 - movs r0, #1 - bx lr - - thumb_func_start sub_0804FE58 -sub_0804FE58: @ 0x0804FE58 - push {lr} - movs r0, #1 - bl sub_0805B4D0 - movs r0, #3 - bl GetProgressFlag - cmp r0, #0 - beq _0804FE7A - movs r0, #2 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804FE7A - ldr r0, _0804FEA0 @ =gUnk_080FAFE4 - bl sub_0804ADDC -_0804FE7A: - ldr r0, _0804FEA4 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _0804FE8E - ldr r0, _0804FEA8 @ =gUnk_080FB004 - bl sub_0804ADDC -_0804FE8E: - movs r0, #2 - bl sub_0807CA84 - cmp r0, #0 - beq _0804FE9E - movs r0, #0x56 - bl sub_0807CD04 -_0804FE9E: - pop {pc} - .align 2, 0 -_0804FEA0: .4byte gUnk_080FAFE4 -_0804FEA4: .4byte gUnk_02002A40 -_0804FEA8: .4byte gUnk_080FB004 - - thumb_func_start sub_0804FEAC -sub_0804FEAC: @ 0x0804FEAC - push {lr} - ldr r0, _0804FEC4 @ =gUnk_02002A40 - ldr r0, [r0, #0x40] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _0804FEC2 - ldr r0, _0804FEC8 @ =gUnk_080FB004 - bl sub_0804ADDC -_0804FEC2: - pop {pc} - .align 2, 0 -_0804FEC4: .4byte gUnk_02002A40 -_0804FEC8: .4byte gUnk_080FB004 - - thumb_func_start sub_0804FECC -sub_0804FECC: @ 0x0804FECC - movs r0, #1 - bx lr - - thumb_func_start nullsub_464 -nullsub_464: @ 0x0804FED0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FED4 -sub_0804FED4: @ 0x0804FED4 - movs r0, #1 - bx lr - - thumb_func_start sub_0804FED8 -sub_0804FED8: @ 0x0804FED8 - push {lr} - movs r0, #0xbb - lsls r0, r0, #1 - ldr r1, _0804FEE8 @ =0x0000066F - movs r2, #1 - bl sub_0807B314 - pop {pc} - .align 2, 0 -_0804FEE8: .4byte 0x0000066F - - thumb_func_start sub_0804FEEC -sub_0804FEEC: @ 0x0804FEEC - movs r0, #1 - bx lr - - thumb_func_start nullsub_465 -nullsub_465: @ 0x0804FEF0 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FEF4 -sub_0804FEF4: @ 0x0804FEF4 - movs r0, #1 - bx lr - - thumb_func_start nullsub_466 -nullsub_466: @ 0x0804FEF8 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FEFC -sub_0804FEFC: @ 0x0804FEFC - movs r0, #1 - bx lr - - thumb_func_start nullsub_467 -nullsub_467: @ 0x0804FF00 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF04 -sub_0804FF04: @ 0x0804FF04 - movs r0, #1 - bx lr - - thumb_func_start nullsub_468 -nullsub_468: @ 0x0804FF08 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF0C -sub_0804FF0C: @ 0x0804FF0C - movs r0, #1 - bx lr - - thumb_func_start nullsub_469 -nullsub_469: @ 0x0804FF10 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF14 -sub_0804FF14: @ 0x0804FF14 - movs r0, #1 - bx lr - - thumb_func_start nullsub_470 -nullsub_470: @ 0x0804FF18 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF1C -sub_0804FF1C: @ 0x0804FF1C - movs r0, #1 - bx lr - - thumb_func_start nullsub_471 -nullsub_471: @ 0x0804FF20 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF24 -sub_0804FF24: @ 0x0804FF24 - movs r0, #1 - bx lr - - thumb_func_start nullsub_472 -nullsub_472: @ 0x0804FF28 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF2C -sub_0804FF2C: @ 0x0804FF2C - movs r0, #1 - bx lr - - thumb_func_start nullsub_473 -nullsub_473: @ 0x0804FF30 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF34 -sub_0804FF34: @ 0x0804FF34 - movs r0, #1 - bx lr - - thumb_func_start nullsub_474 -nullsub_474: @ 0x0804FF38 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF3C -sub_0804FF3C: @ 0x0804FF3C - movs r0, #1 - bx lr - - thumb_func_start nullsub_475 -nullsub_475: @ 0x0804FF40 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF44 -sub_0804FF44: @ 0x0804FF44 - movs r0, #1 - bx lr - - thumb_func_start nullsub_476 -nullsub_476: @ 0x0804FF48 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF4C -sub_0804FF4C: @ 0x0804FF4C - movs r0, #1 - bx lr - - thumb_func_start nullsub_477 -nullsub_477: @ 0x0804FF50 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF54 -sub_0804FF54: @ 0x0804FF54 - movs r0, #1 - bx lr - - thumb_func_start nullsub_478 -nullsub_478: @ 0x0804FF58 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF5C -sub_0804FF5C: @ 0x0804FF5C - movs r0, #1 - bx lr - - thumb_func_start sub_0804FF60 -sub_0804FF60: @ 0x0804FF60 - push {lr} - movs r0, #0x70 - bl sub_0807CBD0 - cmp r0, #0 - bne _0804FF72 - movs r0, #0x70 - bl sub_0807CCB4 -_0804FF72: - pop {pc} - - thumb_func_start sub_0804FF74 -sub_0804FF74: @ 0x0804FF74 - movs r0, #1 - bx lr - - thumb_func_start nullsub_105 -nullsub_105: @ 0x0804FF78 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF7C -sub_0804FF7C: @ 0x0804FF7C - movs r0, #1 - bx lr - - thumb_func_start nullsub_106 -nullsub_106: @ 0x0804FF80 - bx lr - .align 2, 0 - - thumb_func_start sub_0804FF84 -sub_0804FF84: @ 0x0804FF84 - movs r1, #0x80 - lsls r1, r1, #0x12 - strb r0, [r1, #6] - ldr r1, _0804FF94 @ =gUnk_0200B644 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1] - bx lr - .align 2, 0 -_0804FF94: .4byte gUnk_0200B644 - - thumb_func_start sub_0804FF98 -sub_0804FF98: @ 0x0804FF98 - push {r4, r5, r6, r7, lr} - ldr r6, _0804FFD4 @ =gUnk_020354C0 - ldr r1, _0804FFD8 @ =gUnk_0200B644 - ldr r4, [r1] - movs r0, #0 - str r0, [r1] - movs r5, #0 - cmp r4, #0 - beq _0804FFD0 - ldr r7, _0804FFDC @ =gUnk_03005E98 -_0804FFAC: - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _0804FFC6 - ldr r0, _0804FFE0 @ =gUnk_020176A0 - adds r0, r5, r0 - movs r2, #0xa0 - lsls r2, r2, #0x13 - adds r1, r5, r2 - ldrh r2, [r6, #2] - ldrb r3, [r6, #1] - bl _call_via_r7 -_0804FFC6: - adds r5, #0x20 - adds r6, #4 - lsrs r4, r4, #1 - cmp r4, #0 - bne _0804FFAC -_0804FFD0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0804FFD4: .4byte gUnk_020354C0 -_0804FFD8: .4byte gUnk_0200B644 -_0804FFDC: .4byte gUnk_03005E98 -_0804FFE0: .4byte gUnk_020176A0 - - thumb_func_start sub_0804FFE4 -sub_0804FFE4: @ 0x0804FFE4 - push {r4, lr} - ldr r4, _08050000 @ =gUnk_03000FD0 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_0801D630 - ldr r0, _08050004 @ =gUnk_020354C0 - movs r1, #0x80 - bl sub_0801D630 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r4, #4] - pop {r4, pc} - .align 2, 0 -_08050000: .4byte gUnk_03000FD0 -_08050004: .4byte gUnk_020354C0 - - thumb_func_start sub_08050008 -sub_08050008: @ 0x08050008 - push {lr} - ldr r0, _0805001C @ =gUnk_020354C0 - movs r1, #0x80 - bl sub_0801D630 - ldr r1, _08050020 @ =gUnk_03000FD0 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1, #4] - pop {pc} - .align 2, 0 -_0805001C: .4byte gUnk_020354C0 -_08050020: .4byte gUnk_03000FD0 - - thumb_func_start sub_08050024 -sub_08050024: @ 0x08050024 - push {lr} - bl sub_0801E104 - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08050038 -sub_08050038: @ 0x08050038 - push {lr} - adds r3, r0, #0 - ldr r2, _0805004C @ =gUnk_03000FD0 - ldrh r1, [r2, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08050050 - strh r3, [r2, #0xe] - b _08050052 - .align 2, 0 -_0805004C: .4byte gUnk_03000FD0 -_08050050: - strh r3, [r2, #0xc] -_08050052: - pop {pc} - - thumb_func_start sub_08050054 -sub_08050054: @ 0x08050054 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r2, _08050078 @ =gUnk_03000FD0 - movs r3, #0 - strh r1, [r2, #0xa] - strh r5, [r2, #8] - movs r0, #1 - strb r0, [r2] - adds r0, #0xff - strh r0, [r2, #0xc] - strh r3, [r2, #0xe] - movs r0, #2 - ands r0, r5 - adds r4, r2, #0 - cmp r0, #0 - beq _0805007C - movs r0, #0xf8 - b _0805007E - .align 2, 0 -_08050078: .4byte gUnk_03000FD0 -_0805007C: - movs r0, #0 -_0805007E: - strb r0, [r4, #2] - movs r0, #8 - ands r0, r5 - cmp r0, #0 - beq _080500A4 - ldr r1, _080500E4 @ =gUnk_03000000 - movs r0, #1 - strb r0, [r1, #2] - ldr r2, _080500E8 @ =gUnk_03000F50 - ldrh r0, [r2, #0x14] - movs r1, #0x40 - orrs r0, r1 - strh r0, [r2, #0x14] - ldrh r0, [r2, #0x20] - orrs r0, r1 - strh r0, [r2, #0x20] - ldrh r0, [r2, #0x2c] - orrs r1, r0 - strh r1, [r2, #0x2c] -_080500A4: - movs r0, #0x10 - ands r0, r5 - cmp r0, #0 - beq _080500E0 - ldrh r0, [r4, #0x16] - ldrh r1, [r4, #0x18] - bl sub_0801E1B8 - movs r1, #0x12 - ldrsh r0, [r4, r1] - movs r2, #0x14 - ldrsh r1, [r4, r2] - movs r3, #0x10 - ldrsh r2, [r4, r3] - bl sub_0801E1EC - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _080500E0 - ldrh r1, [r4, #8] - ldr r0, _080500EC @ =0x0000FFFB - ands r0, r1 - strh r0, [r4, #8] - bl sub_08050008 - ldr r1, _080500F0 @ =gUnk_0200B644 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1] -_080500E0: - pop {r4, r5, pc} - .align 2, 0 -_080500E4: .4byte gUnk_03000000 -_080500E8: .4byte gUnk_03000F50 -_080500EC: .4byte 0x0000FFFB -_080500F0: .4byte gUnk_0200B644 - - thumb_func_start sub_080500F4 -sub_080500F4: @ 0x080500F4 - ldr r1, _0805010C @ =gUnk_03000FD0 - strh r0, [r1, #0xa] - ldrh r0, [r1, #8] - movs r2, #1 - eors r0, r2 - strh r0, [r1, #8] - strb r2, [r1] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #0xc] - bx lr - .align 2, 0 -_0805010C: .4byte gUnk_03000FD0 - - thumb_func_start sub_08050110 -sub_08050110: @ 0x08050110 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - movs r1, #1 - ands r1, r4 - cmp r1, #0 - beq _08050130 - ldr r1, _0805012C @ =gUnk_03000FD0 - movs r0, #0x96 - strh r0, [r1, #0x10] - adds r2, r1, #0 - b _08050136 - .align 2, 0 -_0805012C: .4byte gUnk_03000FD0 -_08050130: - ldr r0, _0805014C @ =gUnk_03000FD0 - strh r1, [r0, #0x10] - adds r2, r0, #0 -_08050136: - movs r1, #0 - strh r5, [r2, #0x12] - strh r6, [r2, #0x14] - ldr r0, _08050150 @ =0x00003F3F - strh r0, [r2, #0x16] - strh r1, [r2, #0x18] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08050054 - pop {r4, r5, r6, pc} - .align 2, 0 -_0805014C: .4byte gUnk_03000FD0 -_08050150: .4byte 0x00003F3F - - thumb_func_start sub_08050154 -sub_08050154: @ 0x08050154 - push {r4, r5, r6, lr} - ldr r4, _08050180 @ =gUnk_03000FD0 - ldrh r0, [r4, #8] - movs r5, #0x1c - ands r5, r0 - movs r6, #0 - ldrb r0, [r4] - cmp r0, #0 - beq _080501BE - ldrh r0, [r4, #0xc] - ldrh r1, [r4, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0xc] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - ldrh r2, [r4, #0xe] - movs r3, #0xe - ldrsh r1, [r4, r3] - cmp r0, r1 - bgt _080501B8 - strh r2, [r4, #0xc] - b _080501B8 - .align 2, 0 -_08050180: .4byte gUnk_03000FD0 -_08050184: - mvns r0, r5 - adds r0, #1 - ands r0, r5 - eors r5, r0 - cmp r0, #8 - beq _080501A8 - cmp r0, #8 - bhi _0805019A - cmp r0, #4 - beq _080501A0 - b _080501B8 -_0805019A: - cmp r0, #0x10 - beq _080501B0 - b _080501B8 -_080501A0: - adds r0, r4, #0 - bl sub_080501C0 - b _080501B6 -_080501A8: - adds r0, r4, #0 - bl sub_08050230 - b _080501B6 -_080501B0: - adds r0, r4, #0 - bl sub_080502A4 -_080501B6: - orrs r6, r0 -_080501B8: - cmp r5, #0 - bne _08050184 - strb r6, [r4] -_080501BE: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080501C0 -sub_080501C0: @ 0x080501C0 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - ldrh r1, [r3, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080501DA - movs r0, #0xc - ldrsh r1, [r3, r0] - movs r0, #0x80 - lsls r0, r0, #1 - subs r5, r0, r1 - b _080501DE -_080501DA: - movs r2, #0xc - ldrsh r5, [r3, r2] -_080501DE: - ldr r0, _080501F8 @ =gUnk_03000FD0 - ldr r2, [r0, #4] - ldr r1, _080501FC @ =gUnk_020354C0 - movs r4, #0 - ldr r7, _08050200 @ =gUnk_0200B644 - movs r6, #1 -_080501EA: - adds r0, r2, #0 - ands r0, r6 - cmp r0, #0 - beq _08050204 - strb r6, [r1] - strh r5, [r1, #2] - b _08050208 - .align 2, 0 -_080501F8: .4byte gUnk_03000FD0 -_080501FC: .4byte gUnk_020354C0 -_08050200: .4byte gUnk_0200B644 -_08050204: - strb r0, [r1] - strh r0, [r1, #2] -_08050208: - ldrb r0, [r3, #2] - strb r0, [r1, #1] - lsrs r2, r2, #1 - adds r4, #1 - adds r1, #4 - cmp r4, #0x1f - bls _080501EA - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r7] - movs r0, #0xe - ldrsh r1, [r3, r0] - movs r2, #0xc - ldrsh r0, [r3, r2] - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08050230 -sub_08050230: @ 0x08050230 - push {r4, r5, lr} - ldrh r4, [r0, #8] - ldrh r0, [r0, #0xc] - lsls r5, r0, #0x10 - asrs r2, r5, #0x14 - movs r0, #0xf - ands r2, r0 - movs r0, #1 - ands r4, r0 - cmp r4, #0 - beq _0805024A - movs r0, #0xf - subs r2, r0, r2 -_0805024A: - ldr r3, _08050264 @ =gUnk_03000F50 - ldr r1, _08050268 @ =gUnk_080FC3C4 - lsls r0, r2, #1 - adds r0, r0, r1 - ldrh r1, [r0] - adds r0, r3, #0 - adds r0, #0x64 - strh r1, [r0] - cmp r5, #0 - beq _0805026C - movs r0, #1 - b _08050298 - .align 2, 0 -_08050264: .4byte gUnk_03000F50 -_08050268: .4byte gUnk_080FC3C4 -_0805026C: - ldr r1, _0805029C @ =gUnk_03000000 - movs r0, #0 - strb r0, [r1, #2] - cmp r4, #0 - bne _08050296 - ldrh r2, [r3, #8] - ldr r1, _080502A0 @ =0x0000FFBF - adds r0, r1, #0 - ands r0, r2 - strh r0, [r3, #8] - ldrh r2, [r3, #0x14] - adds r0, r1, #0 - ands r0, r2 - strh r0, [r3, #0x14] - ldrh r2, [r3, #0x20] - adds r0, r1, #0 - ands r0, r2 - strh r0, [r3, #0x20] - ldrh r0, [r3, #0x2c] - ands r1, r0 - strh r1, [r3, #0x2c] -_08050296: - movs r0, #0 -_08050298: - pop {r4, r5, pc} - .align 2, 0 -_0805029C: .4byte gUnk_03000000 -_080502A0: .4byte 0x0000FFBF - - thumb_func_start sub_080502A4 -sub_080502A4: @ 0x080502A4 - push {r4, lr} - ldrh r1, [r0, #8] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080502E4 - ldr r4, _080502E0 @ =gUnk_03000FD0 - ldrh r0, [r4, #0x10] - ldrh r1, [r4, #0xa] - subs r0, r0, r1 - strh r0, [r4, #0x10] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _080502C4 - movs r0, #0 - strh r0, [r4, #0x10] -_080502C4: - movs r1, #0x12 - ldrsh r0, [r4, r1] - movs r2, #0x14 - ldrsh r1, [r4, r2] - movs r3, #0x10 - ldrsh r2, [r4, r3] - bl sub_0801E1EC - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0 - bne _08050314 - movs r0, #0 - b _08050316 - .align 2, 0 -_080502E0: .4byte gUnk_03000FD0 -_080502E4: - ldr r4, _08050310 @ =gUnk_03000FD0 - ldrh r0, [r4, #0xa] - ldrh r2, [r4, #0x10] - adds r0, r0, r2 - strh r0, [r4, #0x10] - movs r3, #0x12 - ldrsh r0, [r4, r3] - movs r2, #0x14 - ldrsh r1, [r4, r2] - movs r3, #0x10 - ldrsh r2, [r4, r3] - bl sub_0801E1EC - movs r1, #0x10 - ldrsh r0, [r4, r1] - cmp r0, #0x96 - ble _08050314 - bl sub_0801E104 - movs r0, #0 - b _08050316 - .align 2, 0 -_08050310: .4byte gUnk_03000FD0 -_08050314: - movs r0, #1 -_08050316: - pop {r4, pc} - - thumb_func_start sub_08050318 -sub_08050318: @ 0x08050318 - push {r4, r5, r6, lr} - sub sp, #0x18 - adds r6, r0, #0 - adds r4, r1, #0 - bl sub_08050384 - ldr r0, _08050374 @ =gUnk_080FC844 - mov r1, sp - movs r2, #0x18 - bl sub_0801D66C - ldr r1, _08050378 @ =gUnk_020227E8 - adds r0, r4, #0 - bl sub_08056FEC - mov r2, sp - mov r1, sp - ldr r5, _0805037C @ =gUnk_080FC85C - lsls r4, r6, #1 - adds r4, r4, r6 - lsls r4, r4, #1 - adds r0, r4, r5 - ldrh r0, [r0] - lsls r0, r0, #0xc - ldrh r1, [r1, #0x10] - orrs r0, r1 - strh r0, [r2, #0x10] - adds r0, r5, #2 - adds r0, r4, r0 - ldrh r0, [r0] - mov r1, sp - bl sub_0805F46C - adds r5, #4 - adds r4, r4, r5 - ldrh r0, [r4] - cmp r0, #0 - beq _08050368 - bl sub_080A3268 -_08050368: - ldr r1, _08050380 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0xe] - add sp, #0x18 - pop {r4, r5, r6, pc} - .align 2, 0 -_08050374: .4byte gUnk_080FC844 -_08050378: .4byte gUnk_020227E8 -_0805037C: .4byte gUnk_080FC85C -_08050380: .4byte gUnk_03000F50 - - thumb_func_start sub_08050384 -sub_08050384: @ 0x08050384 - push {lr} - movs r0, #0 - movs r1, #0 - bl sub_0801C4A0 - ldr r0, _080503A0 @ =gUnk_02034CB0 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r1, _080503A4 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0xe] - pop {pc} - .align 2, 0 -_080503A0: .4byte gUnk_02034CB0 -_080503A4: .4byte gUnk_03000F50 - - thumb_func_start sub_080503A8 -sub_080503A8: @ 0x080503A8 - push {lr} - bl sub_0801D7EC - ldr r1, _080503B8 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0x1a] - strh r0, [r1, #0x26] - pop {pc} - .align 2, 0 -_080503B8: .4byte gUnk_03000F50 - - thumb_func_start sub_080503BC -sub_080503BC: @ 0x080503BC - push {r4, lr} - ldr r1, _080503D8 @ =gUnk_02032EC0 - strb r0, [r1, #4] - ldr r0, _080503DC @ =gUnk_02034CB0 - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _080503E0 @ =gUnk_02021F30 - adds r1, r4, #0 - bl sub_0801D630 - pop {r4, pc} - .align 2, 0 -_080503D8: .4byte gUnk_02032EC0 -_080503DC: .4byte gUnk_02034CB0 -_080503E0: .4byte gUnk_02021F30 - - thumb_func_start sub_080503E4 -sub_080503E4: @ 0x080503E4 - push {lr} - adds r1, r0, #0 - cmp r1, #2 - bls _080503F2 - movs r2, #1 - movs r1, #1 - b _080503FE -_080503F2: - ldr r0, _08050410 @ =0x000004B4 - muls r0, r1, r0 - ldr r1, _08050414 @ =gUnk_02019EEC - adds r0, r0, r1 - ldrb r2, [r0, #2] - ldrb r1, [r0, #3] -_080503FE: - movs r0, #0x80 - lsls r0, r0, #0x12 - strb r2, [r0, #5] - strb r1, [r0, #6] - ldr r1, _08050418 @ =gUnk_0200B644 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1] - pop {pc} - .align 2, 0 -_08050410: .4byte 0x000004B4 -_08050414: .4byte gUnk_02019EEC -_08050418: .4byte gUnk_0200B644 - - thumb_func_start sub_0805041C -sub_0805041C: @ 0x0805041C - push {r4, lr} - adds r4, r0, #0 - cmp r4, #2 - bhi _0805043A - movs r0, #0x80 - lsls r0, r0, #0x12 - strb r4, [r0, #4] - ldr r2, _08050444 @ =0x000004B4 - adds r0, r4, #0 - muls r0, r2, r0 - ldr r1, _08050448 @ =gUnk_02019EEC - adds r0, r0, r1 - ldr r1, _0805044C @ =gUnk_02002A40 - bl sub_0801D66C -_0805043A: - adds r0, r4, #0 - bl sub_080503E4 - pop {r4, pc} - .align 2, 0 -_08050444: .4byte 0x000004B4 -_08050448: .4byte gUnk_02019EEC -_0805044C: .4byte gUnk_02002A40 - - thumb_func_start sub_08050450 -sub_08050450: @ 0x08050450 - push {r4, lr} - bl sub_080AD90C - ldr r1, _080504D8 @ =gUnk_080FC8A4 - ldr r0, _080504DC @ =gUnk_03001000 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r4, _080504E0 @ =gUnk_02032EC0 - ldrb r1, [r4, #4] - ldrb r0, [r4, #2] - cmp r0, r1 - beq _0805048A - movs r0, #0 - strb r1, [r4, #2] - ldr r1, _080504E4 @ =gUnk_03000F50 - strh r0, [r1, #0xa] - strh r0, [r1, #0xc] - strh r0, [r1, #0x16] - strh r0, [r1, #0x18] - strh r0, [r1, #0x22] - strh r0, [r1, #0x24] - ldr r0, _080504E8 @ =gUnk_02000080 - movs r1, #0x30 - bl sub_0801D630 -_0805048A: - bl sub_080507FC - ldr r1, _080504EC @ =gUnk_080FC8B0 - ldrb r0, [r4, #2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r4, _080504F0 @ =gUnk_02019EE0 - movs r0, #0 - strb r0, [r4] - bl sub_0805E5C0 - bl sub_0805066C - bl sub_0801C1D4 - bl sub_0801C208 - bl sub_080AD9B0 - bl sub_080AD918 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #7] - ldrb r0, [r4, #3] - cmp r0, r1 - beq _080504D4 - strb r1, [r4, #3] - movs r0, #6 - bl sub_080503A8 - movs r0, #0xf - bl sub_080503A8 -_080504D4: - pop {r4, pc} - .align 2, 0 -_080504D8: .4byte gUnk_080FC8A4 -_080504DC: .4byte gUnk_03001000 -_080504E0: .4byte gUnk_02032EC0 -_080504E4: .4byte gUnk_03000F50 -_080504E8: .4byte gUnk_02000080 -_080504EC: .4byte gUnk_080FC8B0 -_080504F0: .4byte gUnk_02019EE0 - - thumb_func_start sub_080504F4 -sub_080504F4: @ 0x080504F4 - push {r4, lr} - movs r0, #1 - bl sub_0801DA90 - bl sub_080A3210 - movs r0, #0xc0 - lsls r0, r0, #0x13 - movs r1, #0x80 - bl sub_0801D630 - bl sub_08056418 - bl sub_0805E60C - bl sub_08080668 - bl sub_080ADD30 - movs r0, #0 - bl sub_0801CFA8 - ldr r0, _080505DC @ =gUnk_0200AF00 - movs r1, #0xcd - lsls r1, r1, #2 - bl sub_0801D630 - ldr r4, _080505E0 @ =gUnk_02019EE0 - ldr r1, _080505E4 @ =0x00000E28 - adds r0, r4, #0 - bl sub_0801D630 - movs r0, #7 - strb r0, [r4, #3] - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #0 - cmp r0, #1 - bls _08050546 - movs r1, #3 -_08050546: - strb r1, [r4, #6] - ldr r4, _080505E8 @ =gUnk_02032EC0 - movs r1, #0xed - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_0801D630 - movs r0, #8 - strb r0, [r4, #2] - movs r0, #0 - bl sub_080503BC - bl sub_0805616C - movs r0, #0 - bl sub_08050624 - movs r0, #1 - bl sub_08050624 - movs r0, #2 - bl sub_08050624 - bl sub_08056208 - movs r0, #5 - bl sub_080503A8 - movs r0, #9 - bl sub_0801D714 - movs r4, #0 -_08050586: - movs r0, #0x48 - adds r1, r4, #0 - movs r2, #0 - bl sub_080A2960 - adds r4, #1 - cmp r4, #0x19 - bls _08050586 - ldr r0, _080505EC @ =gUnk_080FC8D0 - bl sub_080A70AC - bl sub_080507FC - ldr r1, _080505F0 @ =gUnk_03000F50 - ldrh r2, [r1] - movs r3, #0xf8 - lsls r3, r3, #5 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] - ldr r0, _080505F4 @ =0x00001E0B - strh r0, [r1, #0x2c] - adds r2, r1, #0 - adds r2, #0x66 - ldr r0, _080505F8 @ =0x00000844 - strh r0, [r2] - adds r1, #0x68 - ldr r0, _080505FC @ =0x00000A0F - strh r0, [r1] - ldr r0, _08050600 @ =gUnk_02024490 - movs r1, #1 - strb r1, [r0] - ldr r0, _08050604 @ =gUnk_03001000 - strb r1, [r0, #3] - movs r0, #7 - bl sub_080A3268 - movs r0, #4 - movs r1, #8 - bl sub_08050054 - pop {r4, pc} - .align 2, 0 -_080505DC: .4byte gUnk_0200AF00 -_080505E0: .4byte gUnk_02019EE0 -_080505E4: .4byte 0x00000E28 -_080505E8: .4byte gUnk_02032EC0 -_080505EC: .4byte gUnk_080FC8D0 -_080505F0: .4byte gUnk_03000F50 -_080505F4: .4byte 0x00001E0B -_080505F8: .4byte 0x00000844 -_080505FC: .4byte 0x00000A0F -_08050600: .4byte gUnk_02024490 -_08050604: .4byte gUnk_03001000 - - thumb_func_start nullsub_479 -nullsub_479: @ 0x08050608 - bx lr - .align 2, 0 - - thumb_func_start sub_0805060C -sub_0805060C: @ 0x0805060C - push {lr} - ldr r0, _08050620 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _0805061C - movs r0, #2 - bl sub_08056010 -_0805061C: - pop {pc} - .align 2, 0 -_08050620: .4byte gUnk_03000FD0 - - thumb_func_start sub_08050624 -sub_08050624: @ 0x08050624 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08050648 @ =0x000004B4 - adds r1, r4, #0 - muls r1, r0, r1 - ldr r0, _0805064C @ =gUnk_02019EEC - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0807CF28 - adds r5, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r5, r0 - beq _08050650 - cmp r5, #0 - beq _08050656 - b _0805065C - .align 2, 0 -_08050648: .4byte 0x000004B4 -_0805064C: .4byte gUnk_02019EEC -_08050650: - adds r0, r4, #0 - bl sub_0807CF48 -_08050656: - adds r0, r4, #0 - bl sub_0805194C -_0805065C: - ldr r0, _08050668 @ =gUnk_02019EE0 - adds r0, #8 - adds r0, r4, r0 - strb r5, [r0] - pop {r4, r5, pc} - .align 2, 0 -_08050668: .4byte gUnk_02019EE0 - - thumb_func_start sub_0805066C -sub_0805066C: @ 0x0805066C - push {r4, lr} - movs r1, #0 - ldr r4, _080506F0 @ =gUnk_02019EE0 - ldrb r0, [r4, #1] - subs r0, #1 - strb r0, [r4, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08050690 - movs r0, #0x10 - strb r0, [r4, #1] - ldrb r0, [r4, #2] - adds r0, #1 - movs r1, #0xf - bl __modsi3 - strb r0, [r4, #2] - movs r1, #1 -_08050690: - ldrb r0, [r4, #2] - cmp r0, #0 - bne _080506AA - movs r0, #1 - strb r0, [r4, #2] - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #4 - adds r1, #8 - strb r1, [r4, #1] - movs r1, #1 -_080506AA: - cmp r1, #0 - beq _080506EE - ldr r1, _080506F4 @ =gUnk_080FC8DE - ldrb r0, [r4, #2] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - ldr r0, _080506F8 @ =gUnk_085A2E80 - adds r4, r4, r0 - ldr r1, _080506FC @ =0x00011AA0 - adds r0, r4, r1 - movs r1, #0xb - movs r2, #1 - bl sub_0801D754 - ldr r1, _08050700 @ =0x00011BA0 - adds r0, r4, r1 - movs r1, #0xc - movs r2, #1 - bl sub_0801D754 - ldr r1, _08050704 @ =0x00011CA0 - adds r0, r4, r1 - movs r1, #0xd - movs r2, #1 - bl sub_0801D754 - ldr r0, _08050708 @ =0x00011DA0 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0xe - movs r2, #1 - bl sub_0801D754 -_080506EE: - pop {r4, pc} - .align 2, 0 -_080506F0: .4byte gUnk_02019EE0 -_080506F4: .4byte gUnk_080FC8DE -_080506F8: .4byte gUnk_085A2E80 -_080506FC: .4byte 0x00011AA0 -_08050700: .4byte 0x00011BA0 -_08050704: .4byte 0x00011CA0 -_08050708: .4byte 0x00011DA0 - - thumb_func_start sub_0805070C -sub_0805070C: @ 0x0805070C - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_0805F2C8 - adds r5, r0, #0 - cmp r5, #0 - beq _0805077A - movs r0, #0 - strb r0, [r5, #2] - movs r0, #5 - strb r0, [r5, #3] - movs r0, #1 - strb r0, [r5, #1] - movs r0, #0x30 - strh r0, [r5, #4] - ldr r0, _08050780 @ =gUnk_02000D00 - str r0, [r5, #8] - movs r6, #0 -_08050732: - movs r0, #0 - strh r0, [r5, #6] - ldr r0, [r5, #8] - movs r1, #0x80 - lsls r1, r1, #2 - bl sub_0801D630 - ldr r0, _08050784 @ =0x000004B4 - adds r1, r6, #0 - muls r1, r0, r1 - ldr r0, _08050788 @ =gUnk_02019F6C - adds r7, r1, r0 - movs r4, #0 - lsls r0, r6, #9 - mov r8, r0 - adds r6, #1 -_08050752: - adds r0, r7, r4 - ldrb r0, [r0] - adds r1, r5, #0 - bl sub_0805F7DC - adds r4, #1 - cmp r4, #5 - ble _08050752 - ldr r0, [r5, #8] - ldr r1, _0805078C @ =0x06014000 - add r1, r8 - movs r2, #0x80 - lsls r2, r2, #2 - bl sub_0801D66C - cmp r6, #2 - bls _08050732 - adds r0, r5, #0 - bl sub_0805F300 -_0805077A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08050780: .4byte gUnk_02000D00 -_08050784: .4byte 0x000004B4 -_08050788: .4byte gUnk_02019F6C -_0805078C: .4byte 0x06014000 - - thumb_func_start sub_08050790 -sub_08050790: @ 0x08050790 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_0805F2C8 - adds r6, r0, #0 - cmp r6, #0 - beq _080507F0 - movs r0, #0 - strb r0, [r6, #2] - movs r0, #5 - strb r0, [r6, #3] - movs r0, #1 - strb r0, [r6, #1] - movs r0, #0x80 - strh r0, [r6, #4] - ldr r0, _080507F8 @ =gUnk_02000D00 - str r0, [r6, #8] - movs r1, #0 -_080507B6: - movs r0, #0 - strh r0, [r6, #6] - lsls r4, r1, #4 - movs r5, #0 - lsls r7, r1, #0xa - adds r1, #1 - mov r8, r1 -_080507C4: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0805F7DC - adds r4, #1 - adds r5, #1 - cmp r5, #0xf - bls _080507C4 - movs r0, #0xc0 - lsls r0, r0, #0x13 - adds r1, r7, r0 - ldr r0, _080507F8 @ =gUnk_02000D00 - movs r2, #0x80 - lsls r2, r2, #3 - bl sub_0801D66C - mov r1, r8 - cmp r1, #0xf - bls _080507B6 - adds r0, r6, #0 - bl sub_0805F300 -_080507F0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080507F8: .4byte gUnk_02000D00 - - thumb_func_start sub_080507FC -sub_080507FC: @ 0x080507FC - ldr r0, _0805080C @ =gUnk_0200AF00 - movs r1, #0xa0 - lsls r1, r1, #1 - strh r1, [r0, #0x1a] - movs r1, #0x24 - strh r1, [r0, #0x20] - bx lr - .align 2, 0 -_0805080C: .4byte gUnk_0200AF00 - - thumb_func_start sub_08050810 -sub_08050810: @ 0x08050810 - ldr r0, _0805081C @ =gUnk_0200AF00 - movs r1, #0xd0 - strh r1, [r0, #0x1a] - movs r1, #0x24 - strh r1, [r0, #0x20] - bx lr - .align 2, 0 -_0805081C: .4byte gUnk_0200AF00 - - thumb_func_start sub_08050820 -sub_08050820: @ 0x08050820 - push {lr} - ldr r1, _0805083C @ =gUnk_080FC8FC - ldr r0, _08050840 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08050844 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_08050A64 - pop {pc} - .align 2, 0 -_0805083C: .4byte gUnk_080FC8FC -_08050840: .4byte gUnk_02000080 -_08050844: .4byte gUnk_02019EE0 - - thumb_func_start sub_08050848 -sub_08050848: @ 0x08050848 - push {lr} - movs r0, #7 - bl sub_080503A8 - bl sub_0805070C - ldr r0, _08050868 @ =gUnk_02019EE0 - movs r1, #0 - strb r1, [r0, #7] - ldrb r0, [r0, #6] - bl sub_08050AFC - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_08050868: .4byte gUnk_02019EE0 - - thumb_func_start sub_0805086C -sub_0805086C: @ 0x0805086C - push {lr} - ldr r1, _08050880 @ =gUnk_080FC908 - ldr r0, _08050884 @ =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 -_08050880: .4byte gUnk_080FC908 -_08050884: .4byte gUnk_02000080 - - thumb_func_start sub_08050888 -sub_08050888: @ 0x08050888 - push {r4, lr} - ldr r0, _080508C4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080508DC - ldr r4, _080508C8 @ =gUnk_02019EE0 - ldrb r1, [r4, #7] - adds r0, r4, #0 - adds r0, #8 - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080508D0 - cmp r0, #1 - beq _080508D6 - adds r0, r1, #0 - bl sub_0805194C - ldrb r1, [r4, #7] - adds r1, #1 - movs r0, #0 - bl sub_08050318 - ldr r1, _080508CC @ =gUnk_02000080 - movs r0, #0x1e - strh r0, [r1, #8] - movs r0, #1 - b _080508DA - .align 2, 0 -_080508C4: .4byte gUnk_03000FD0 -_080508C8: .4byte gUnk_02019EE0 -_080508CC: .4byte gUnk_02000080 -_080508D0: - adds r0, r1, #0 - bl sub_0805194C -_080508D6: - ldr r1, _080508E0 @ =gUnk_02000080 - movs r0, #2 -_080508DA: - strb r0, [r1, #6] -_080508DC: - pop {r4, pc} - .align 2, 0 -_080508E0: .4byte gUnk_02000080 - - thumb_func_start sub_080508E4 -sub_080508E4: @ 0x080508E4 - push {lr} - ldr r2, _08050900 @ =gUnk_02000080 - ldrh r0, [r2, #8] - cmp r0, #0 - bne _08050908 - ldr r0, _08050904 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #9 - ands r0, r1 - cmp r0, #0 - beq _0805090C - movs r0, #2 - strb r0, [r2, #6] - b _0805090C - .align 2, 0 -_08050900: .4byte gUnk_02000080 -_08050904: .4byte gUnk_03000FF0 -_08050908: - subs r0, #1 - strh r0, [r2, #8] -_0805090C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08050910 -sub_08050910: @ 0x08050910 - push {lr} - bl sub_08050384 - ldr r1, _08050930 @ =gUnk_02019EE0 - ldrb r0, [r1, #7] - adds r0, #1 - strb r0, [r1, #7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bls _08050934 - movs r0, #2 - bl sub_080A7114 - b _0805093A - .align 2, 0 -_08050930: .4byte gUnk_02019EE0 -_08050934: - ldr r1, _0805093C @ =gUnk_02000080 - movs r0, #0 - strb r0, [r1, #6] -_0805093A: - pop {pc} - .align 2, 0 -_0805093C: .4byte gUnk_02000080 - - thumb_func_start sub_08050940 -sub_08050940: @ 0x08050940 - push {r4, r5, r6, lr} - ldr r3, _0805099C @ =gUnk_02019EE0 - ldrb r0, [r3] - cmp r0, #0 - beq _0805094C - b _08050A58 -_0805094C: - ldrb r4, [r3, #6] - ldr r0, _080509A0 @ =gUnk_03000FF0 - ldrh r2, [r0, #2] - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08050974 - adds r0, r3, #0 - adds r0, #8 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _08050974 - movs r0, #0xc1 - rsbs r0, r0, #0 - ands r2, r0 -_08050974: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r6, #3 - cmp r0, #1 - bls _08050982 - movs r6, #4 -_08050982: - ldr r0, _080509A4 @ =gUnk_02032EC0 - ldrb r5, [r0, #2] - adds r1, r0, #0 - cmp r2, #0x40 - beq _080509B6 - cmp r2, #0x40 - bhi _080509A8 - cmp r2, #1 - beq _080509E0 - cmp r2, #8 - beq _080509E0 - b _08050A10 - .align 2, 0 -_0805099C: .4byte gUnk_02019EE0 -_080509A0: .4byte gUnk_03000FF0 -_080509A4: .4byte gUnk_02032EC0 -_080509A8: - cmp r2, #0x80 - beq _080509BE - movs r0, #0x80 - lsls r0, r0, #1 - cmp r2, r0 - beq _080509C8 - b _08050A10 -_080509B6: - cmp r4, #0 - ble _08050A10 - subs r4, #1 - b _08050A10 -_080509BE: - subs r0, r6, #1 - cmp r0, r4 - ble _08050A10 - adds r4, #1 - b _08050A10 -_080509C8: - ldr r0, _080509DC @ =gUnk_02019EE0 - adds r0, #8 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _08050A10 - movs r5, #3 - b _08050A10 - .align 2, 0 -_080509DC: .4byte gUnk_02019EE0 -_080509E0: - adds r0, r4, #0 - bl sub_0805041C - cmp r4, #3 - bne _080509EE - movs r5, #2 - b _08050A0E -_080509EE: - ldr r0, _08050A04 @ =gUnk_02019EE0 - adds r0, #8 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08050A08 - cmp r0, #1 - beq _08050A0C - b _08050A0E - .align 2, 0 -_08050A04: .4byte gUnk_02019EE0 -_08050A08: - movs r5, #1 - b _08050A0E -_08050A0C: - movs r5, #4 -_08050A0E: - ldr r1, _08050A5C @ =gUnk_02032EC0 -_08050A10: - ldrb r0, [r1, #2] - cmp r0, r5 - beq _08050A22 - adds r0, r5, #0 - bl sub_080503BC - movs r0, #0x6a - bl sub_080A3268 -_08050A22: - adds r0, r4, r6 - adds r1, r6, #0 - bl __modsi3 - adds r4, r0, #0 - ldr r5, _08050A60 @ =gUnk_02019EE0 - ldrb r0, [r5, #6] - cmp r0, r4 - beq _08050A42 - strb r4, [r5, #6] - adds r0, r4, #0 - bl sub_08050AFC - movs r0, #0x69 - bl sub_080A3268 -_08050A42: - adds r0, r5, #0 - adds r0, #8 - ldrb r5, [r5, #6] - adds r0, r0, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _08050A58 - bl sub_08050810 -_08050A58: - pop {r4, r5, r6, pc} - .align 2, 0 -_08050A5C: .4byte gUnk_02032EC0 -_08050A60: .4byte gUnk_02019EE0 - - thumb_func_start sub_08050A64 -sub_08050A64: @ 0x08050A64 - push {r4, lr} - ldr r1, _08050AF0 @ =gUnk_02019EE0 - adds r1, #8 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _08050AEC - ldr r4, _08050AF4 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r4, #4] - strh r0, [r4, #6] - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r4, #8] - movs r0, #0x40 - bl sub_0807CA84 - cmp r0, #0 - beq _08050A9E - movs r0, #0xa2 - strh r0, [r4] - movs r0, #0x36 - strh r0, [r4, #2] - ldr r0, _08050AF8 @ =0x00000145 - movs r1, #0x24 - bl sub_080ADA14 -_08050A9E: - movs r0, #0x41 - bl sub_0807CA84 - cmp r0, #0 - beq _08050AB8 - movs r0, #0x96 - strh r0, [r4] - movs r0, #0x3d - strh r0, [r4, #2] - ldr r0, _08050AF8 @ =0x00000145 - movs r1, #0x22 - bl sub_080ADA14 -_08050AB8: - movs r0, #0x42 - bl sub_0807CA84 - cmp r0, #0 - beq _08050AD2 - movs r0, #0xae - strh r0, [r4] - movs r0, #0x3d - strh r0, [r4, #2] - ldr r0, _08050AF8 @ =0x00000145 - movs r1, #0x23 - bl sub_080ADA14 -_08050AD2: - movs r0, #0x43 - bl sub_0807CA84 - cmp r0, #0 - beq _08050AEC - movs r0, #0xa2 - strh r0, [r4] - movs r0, #0x44 - strh r0, [r4, #2] - ldr r0, _08050AF8 @ =0x00000145 - movs r1, #0x21 - bl sub_080ADA14 -_08050AEC: - pop {r4, pc} - .align 2, 0 -_08050AF0: .4byte gUnk_02019EE0 -_08050AF4: .4byte gUnk_03001010 -_08050AF8: .4byte 0x00000145 - - thumb_func_start sub_08050AFC -sub_08050AFC: @ 0x08050AFC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0805041C - ldr r5, _08050B30 @ =gUnk_02021F30 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r5, #0 - bl sub_0801D630 - ldr r0, _08050B34 @ =gUnk_02019EE0 - adds r0, #8 - adds r4, r4, r0 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #1 - bne _08050B28 - movs r1, #0xa7 - lsls r1, r1, #2 - adds r0, r5, r1 - bl sub_08050B3C -_08050B28: - ldr r1, _08050B38 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0x1a] - pop {r4, r5, pc} - .align 2, 0 -_08050B30: .4byte gUnk_02021F30 -_08050B34: .4byte gUnk_02019EE0 -_08050B38: .4byte gUnk_03000F50 - - thumb_func_start sub_08050B3C -sub_08050B3C: @ 0x08050B3C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - str r0, [sp] - ldr r1, _08050C18 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xaa - ldrb r0, [r0] - lsrs r2, r0, #1 - cmp r2, #0 - bne _08050B5A - movs r2, #1 -_08050B5A: - adds r0, r1, #0 - adds r0, #0xab - ldrb r0, [r0] - lsrs r3, r0, #1 - cmp r3, #0 - beq _08050C0A - cmp r2, r3 - ble _08050B6C - adds r2, r3, #0 -_08050B6C: - movs r0, #3 - ands r0, r2 - str r0, [sp, #4] - adds r0, r2, #0 - asrs r5, r0, #2 - mov ip, r5 - cmp r5, #0xa - ble _08050B80 - movs r2, #0xa - mov ip, r2 -_08050B80: - adds r6, r5, #0 - subs r6, #0xa - mov sb, r6 - cmp r6, #0 - bge _08050B8E - movs r7, #0 - mov sb, r7 -_08050B8E: - adds r0, r3, #0 - asrs r3, r0, #2 - adds r0, r3, #0 - cmp r3, #0xa - ble _08050B9A - movs r3, #0xa -_08050B9A: - adds r4, r0, #0 - subs r4, #0xa - ldr r2, [sp] - ldr r0, _08050C1C @ =0x0000F24C - mov sl, r0 - strh r0, [r2] - ldr r1, _08050C20 @ =0x040000D4 - movs r7, #0xa - mov r8, r7 - mov r0, r8 - mov r7, ip - subs r0, r0, r7 - lsls r0, r0, #1 - ldr r7, _08050C24 @ =gUnk_080FC914 - mov ip, r7 - add r0, ip - str r0, [r1] - adds r0, r2, #2 - str r0, [r1, #4] - movs r0, #0x80 - lsls r0, r0, #0x18 - orrs r3, r0 - str r3, [r1, #8] - ldr r0, [r1, #8] - cmp r4, #0 - ble _08050BEE - adds r2, #0x40 - mov r3, sl - strh r3, [r2] - mov r7, r8 - mov r3, sb - subs r0, r7, r3 - lsls r0, r0, #1 - add r0, ip - str r0, [r1] - adds r0, r2, #2 - str r0, [r1, #4] - movs r7, #0x80 - lsls r7, r7, #0x18 - orrs r4, r7 - str r4, [r1, #8] - ldr r0, [r1, #8] -_08050BEE: - ldr r0, [sp, #4] - cmp r0, #0 - beq _08050C0A - ldr r2, [sp] - cmp r5, #9 - ble _08050BFE - adds r5, r6, #0 - adds r2, #0x40 -_08050BFE: - lsls r0, r5, #1 - adds r0, r0, r2 - ldr r2, [sp, #4] - ldr r3, _08050C28 @ =0xFFFFF24D - adds r1, r2, r3 - strh r1, [r0, #2] -_08050C0A: - 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 -_08050C18: .4byte gUnk_02002A40 -_08050C1C: .4byte 0x0000F24C -_08050C20: .4byte 0x040000D4 -_08050C24: .4byte gUnk_080FC914 -_08050C28: .4byte 0xFFFFF24D - - thumb_func_start sub_08050C2C -sub_08050C2C: @ 0x08050C2C - push {lr} - ldr r1, _08050C48 @ =gUnk_080FC93C - ldr r0, _08050C4C @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08050C50 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_08050A64 - pop {pc} - .align 2, 0 -_08050C48: .4byte gUnk_080FC93C -_08050C4C: .4byte gUnk_02000080 -_08050C50: .4byte gUnk_02019EE0 - - thumb_func_start sub_08050C54 -sub_08050C54: @ 0x08050C54 - push {r4, lr} - ldr r0, _08050C78 @ =gUnk_02019EE0 - ldrb r0, [r0] - cmp r0, #0 - beq _08050C60 - b _08050D60 -_08050C60: - ldr r0, _08050C7C @ =gUnk_02000080 - ldrb r4, [r0, #1] - ldr r0, _08050C80 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - subs r0, #1 - cmp r0, #0x1f - bhi _08050D44 - lsls r0, r0, #2 - ldr r1, _08050C84 @ =_08050C88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08050C78: .4byte gUnk_02019EE0 -_08050C7C: .4byte gUnk_02000080 -_08050C80: .4byte gUnk_03000FF0 -_08050C84: .4byte _08050C88 -_08050C88: @ jump table - .4byte _08050D08 @ case 0 - .4byte _08050D30 @ case 1 - .4byte _08050D44 @ case 2 - .4byte _08050D44 @ case 3 - .4byte _08050D44 @ case 4 - .4byte _08050D44 @ case 5 - .4byte _08050D44 @ case 6 - .4byte _08050D08 @ case 7 - .4byte _08050D44 @ case 8 - .4byte _08050D44 @ case 9 - .4byte _08050D44 @ case 10 - .4byte _08050D44 @ case 11 - .4byte _08050D44 @ case 12 - .4byte _08050D44 @ case 13 - .4byte _08050D44 @ case 14 - .4byte _08050D42 @ case 15 - .4byte _08050D44 @ case 16 - .4byte _08050D44 @ case 17 - .4byte _08050D44 @ case 18 - .4byte _08050D44 @ case 19 - .4byte _08050D44 @ case 20 - .4byte _08050D44 @ case 21 - .4byte _08050D44 @ case 22 - .4byte _08050D44 @ case 23 - .4byte _08050D44 @ case 24 - .4byte _08050D44 @ case 25 - .4byte _08050D44 @ case 26 - .4byte _08050D44 @ case 27 - .4byte _08050D44 @ case 28 - .4byte _08050D44 @ case 29 - .4byte _08050D44 @ case 30 - .4byte _08050D3E @ case 31 -_08050D08: - cmp r4, #0 - bne _08050D12 - ldr r0, _08050D28 @ =0x80080000 - bl sub_080A3268 -_08050D12: - ldr r1, _08050D2C @ =gUnk_02000080 - movs r0, #0xf - strh r0, [r1, #8] - movs r0, #1 - bl sub_080A7114 - movs r0, #0x6a - bl sub_080A3268 - b _08050D44 - .align 2, 0 -_08050D28: .4byte 0x80080000 -_08050D2C: .4byte gUnk_02000080 -_08050D30: - movs r0, #0x6c - bl sub_080A3268 - movs r0, #0 - bl sub_080503BC - b _08050D44 -_08050D3E: - subs r4, #1 - b _08050D44 -_08050D42: - adds r4, #1 -_08050D44: - cmp r4, #0 - bge _08050D4A - movs r4, #0 -_08050D4A: - cmp r4, #2 - ble _08050D50 - movs r4, #2 -_08050D50: - ldr r1, _08050D64 @ =gUnk_02000080 - ldrb r0, [r1, #1] - cmp r0, r4 - beq _08050D60 - strb r4, [r1, #1] - movs r0, #0x69 - bl sub_080A3268 -_08050D60: - pop {r4, pc} - .align 2, 0 -_08050D64: .4byte gUnk_02000080 - - thumb_func_start sub_08050D68 -sub_08050D68: @ 0x08050D68 - push {lr} - ldr r1, _08050D84 @ =gUnk_02000080 - ldrh r0, [r1, #8] - cmp r0, #0 - bne _08050D94 - ldrb r0, [r1, #1] - cmp r0, #1 - beq _08050D88 - cmp r0, #1 - ble _08050D80 - cmp r0, #2 - beq _08050D8C -_08050D80: - movs r0, #7 - b _08050D8E - .align 2, 0 -_08050D84: .4byte gUnk_02000080 -_08050D88: - movs r0, #5 - b _08050D8E -_08050D8C: - movs r0, #6 -_08050D8E: - bl sub_080503BC - b _08050D98 -_08050D94: - subs r0, #1 - strh r0, [r1, #8] -_08050D98: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08050D9C -sub_08050D9C: @ 0x08050D9C - push {lr} - ldr r1, _08050DB0 @ =gUnk_080FC944 - ldr r0, _08050DB4 @ =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 -_08050DB0: .4byte gUnk_080FC944 -_08050DB4: .4byte gUnk_02000080 - - thumb_func_start sub_08050DB8 -sub_08050DB8: @ 0x08050DB8 - push {lr} - ldr r0, _08050DDC @ =gUnk_020344B0 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - movs r0, #0xc - bl sub_080503A8 - ldr r1, _08050DE0 @ =gUnk_02000080 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - strb r0, [r1, #4] - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_08050DDC: .4byte gUnk_020344B0 -_08050DE0: .4byte gUnk_02000080 - - thumb_func_start sub_08050DE4 -sub_08050DE4: @ 0x08050DE4 - push {r4, lr} - ldr r0, _08050E0C @ =gUnk_02019EE0 - ldrb r0, [r0] - cmp r0, #0 - bne _08050E80 - movs r1, #0x80 - lsls r1, r1, #0x12 - ldrb r4, [r1, #7] - ldr r0, _08050E10 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #8 - beq _08050E26 - cmp r0, #8 - bgt _08050E14 - cmp r0, #1 - beq _08050E26 - cmp r0, #2 - beq _08050E50 - b _08050E62 - .align 2, 0 -_08050E0C: .4byte gUnk_02019EE0 -_08050E10: .4byte gUnk_03000FF0 -_08050E14: - cmp r0, #0x40 - beq _08050E1E - cmp r0, #0x80 - beq _08050E22 - b _08050E62 -_08050E1E: - subs r4, #1 - b _08050E62 -_08050E22: - adds r4, #1 - b _08050E62 -_08050E26: - movs r0, #0x6a - bl sub_080A3268 - ldr r0, _08050E44 @ =gUnk_02000080 - ldrb r0, [r0, #4] - cmp r0, r4 - beq _08050E48 - movs r0, #2 - bl sub_080A7114 - movs r0, #8 - movs r1, #0 - bl sub_08050318 - b _08050E62 - .align 2, 0 -_08050E44: .4byte gUnk_02000080 -_08050E48: - movs r0, #0 - bl sub_080503BC - b _08050E62 -_08050E50: - ldr r0, _08050E84 @ =gUnk_02000080 - ldrb r4, [r0, #4] - strb r4, [r1, #7] - movs r0, #0x6c - bl sub_080A3268 - movs r0, #0 - bl sub_080503BC -_08050E62: - cmp r4, #1 - bgt _08050E68 - movs r4, #2 -_08050E68: - cmp r4, #6 - ble _08050E6E - movs r4, #6 -_08050E6E: - movs r1, #0x80 - lsls r1, r1, #0x12 - ldrb r0, [r1, #7] - cmp r0, r4 - beq _08050E80 - strb r4, [r1, #7] - movs r0, #0x69 - bl sub_080A3268 -_08050E80: - pop {r4, pc} - .align 2, 0 -_08050E84: .4byte gUnk_02000080 - - thumb_func_start sub_08050E88 -sub_08050E88: @ 0x08050E88 - push {lr} - movs r0, #2 - bl sub_0807CDA4 - cmp r0, #0 - beq _08050E9A - movs r0, #0 - bl sub_080503BC -_08050E9A: - pop {pc} - - thumb_func_start sub_08050E9C -sub_08050E9C: @ 0x08050E9C - push {lr} - ldr r1, _08050EB0 @ =gUnk_080FC950 - ldr r0, _08050EB4 @ =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 -_08050EB0: .4byte gUnk_080FC950 -_08050EB4: .4byte gUnk_02000080 - - thumb_func_start sub_08050EB8 -sub_08050EB8: @ 0x08050EB8 - push {lr} - movs r0, #0xe - bl sub_080503A8 - ldr r2, _08050EE8 @ =gUnk_02019EE0 - ldrb r1, [r2, #6] - ldr r0, _08050EEC @ =0x000004B4 - muls r1, r0, r1 - adds r0, r2, #0 - adds r0, #0xc - adds r1, r1, r0 - ldrb r0, [r1, #2] - movs r3, #0 - strb r0, [r2, #4] - ldrb r0, [r1, #3] - strb r0, [r2, #5] - ldr r1, _08050EF0 @ =gUnk_02000080 - strb r3, [r1, #1] - movs r0, #0xff - strh r0, [r1, #8] - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_08050EE8: .4byte gUnk_02019EE0 -_08050EEC: .4byte 0x000004B4 -_08050EF0: .4byte gUnk_02000080 - - thumb_func_start sub_08050EF4 -sub_08050EF4: @ 0x08050EF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _08050F40 @ =gUnk_02019EE0 - ldrb r1, [r0] - adds r6, r0, #0 - cmp r1, #0 - bne _08050FF4 - ldrb r1, [r6, #6] - ldr r0, _08050F44 @ =0x000004B4 - muls r1, r0, r1 - adds r0, r6, #0 - adds r0, #0xc - adds r1, r1, r0 - ldr r0, _08050F48 @ =gUnk_02000080 - ldrb r3, [r0, #1] - adds r4, r1, #3 - mov ip, r0 - cmp r3, #0 - bne _08050F1E - adds r4, r1, #2 -_08050F1E: - ldrb r2, [r4] - movs r5, #0 - ldr r0, _08050F4C @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - mov r8, r2 - cmp r0, #0x10 - beq _08050F7A - cmp r0, #0x10 - bgt _08050F56 - cmp r0, #2 - beq _08050F8C - cmp r0, #2 - bgt _08050F50 - cmp r0, #1 - beq _08050F82 - b _08050F8E - .align 2, 0 -_08050F40: .4byte gUnk_02019EE0 -_08050F44: .4byte 0x000004B4 -_08050F48: .4byte gUnk_02000080 -_08050F4C: .4byte gUnk_03000FF0 -_08050F50: - cmp r0, #8 - beq _08050F82 - b _08050F8E -_08050F56: - cmp r0, #0x40 - beq _08050F6A - cmp r0, #0x40 - bgt _08050F64 - cmp r0, #0x20 - beq _08050F72 - b _08050F8E -_08050F64: - cmp r0, #0x80 - beq _08050F6E - b _08050F8E -_08050F6A: - movs r3, #0 - b _08050F8E -_08050F6E: - movs r3, #1 - b _08050F8E -_08050F72: - cmp r2, #0 - beq _08050F8E - subs r2, #1 - b _08050F8E -_08050F7A: - cmp r2, #1 - bhi _08050F8E - adds r2, #1 - b _08050F8E -_08050F82: - ldrh r0, [r6, #4] - movs r5, #2 - ldrh r7, [r1, #2] - cmp r0, r7 - bne _08050F8E -_08050F8C: - movs r5, #3 -_08050F8E: - cmp r5, #0 - beq _08050FD0 - cmp r5, #2 - beq _08050F9C - cmp r5, #3 - beq _08050FAC - b _08050FBA -_08050F9C: - movs r0, #8 - movs r1, #0 - bl sub_08050318 - movs r0, #0x6a - bl sub_080A3268 - b _08050FBA -_08050FAC: - ldrb r0, [r6, #4] - strb r0, [r1, #2] - ldrb r0, [r6, #5] - strb r0, [r1, #3] - movs r0, #0x6c - bl sub_080A3268 -_08050FBA: - adds r0, r5, #0 - bl sub_080A7114 - ldr r0, _08050FCC @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_0805041C - b _08050FF4 - .align 2, 0 -_08050FCC: .4byte gUnk_02019EE0 -_08050FD0: - mov r1, ip - ldrb r0, [r1, #1] - cmp r0, r3 - beq _08050FE2 - strb r3, [r1, #1] - movs r0, #0x69 - bl sub_080A3268 - b _08050FF4 -_08050FE2: - cmp r2, r8 - beq _08050FF4 - strb r2, [r4] - ldrb r0, [r6, #6] - bl sub_080503E4 - movs r0, #0x69 - bl sub_080A3268 -_08050FF4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08050FFC -sub_08050FFC: @ 0x08050FFC - push {lr} - movs r0, #0 - bl sub_0807CDA4 - adds r1, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08051014 - cmp r1, #1 - beq _0805102A - b _08051030 -_08051014: - ldr r1, _08051034 @ =gUnk_02000080 - movs r0, #0x1e - strh r0, [r1, #8] - ldr r0, _08051038 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_0805194C - movs r0, #9 - movs r1, #0 - bl sub_08050318 -_0805102A: - movs r0, #3 - bl sub_080A7114 -_08051030: - pop {pc} - .align 2, 0 -_08051034: .4byte gUnk_02000080 -_08051038: .4byte gUnk_02019EE0 - - thumb_func_start sub_0805103C -sub_0805103C: @ 0x0805103C - push {lr} - ldr r0, _08051050 @ =gUnk_02000080 - ldrb r1, [r0, #8] - adds r2, r0, #0 - cmp r1, #0 - beq _08051054 - cmp r1, #0xff - beq _0805106C - b _08051060 - .align 2, 0 -_08051050: .4byte gUnk_02000080 -_08051054: - ldr r0, _08051068 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #9 - ands r0, r1 - cmp r0, #0 - beq _08051072 -_08051060: - ldrh r0, [r2, #8] - subs r0, #1 - strh r0, [r2, #8] - b _08051072 - .align 2, 0 -_08051068: .4byte gUnk_03000FF0 -_0805106C: - movs r0, #0 - bl sub_080503BC -_08051072: - pop {pc} - - thumb_func_start sub_08051074 -sub_08051074: @ 0x08051074 - push {lr} - ldr r1, _08051088 @ =gUnk_080FC960 - ldr r0, _0805108C @ =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 -_08051088: .4byte gUnk_080FC960 -_0805108C: .4byte gUnk_02000080 - - thumb_func_start sub_08051090 -sub_08051090: @ 0x08051090 - push {lr} - movs r0, #8 - bl sub_080503A8 - bl sub_08050790 - bl sub_0805070C - bl sub_08051458 - ldr r1, _080510B4 @ =gUnk_03000F50 - movs r0, #0xff - strh r0, [r1, #0x18] - strh r0, [r1, #0x24] - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080510B4: .4byte gUnk_03000F50 - - thumb_func_start sub_080510B8 -sub_080510B8: @ 0x080510B8 - push {r4, r5, r6, r7, lr} - ldr r0, _080510E4 @ =gUnk_02019EE0 - ldrb r0, [r0] - cmp r0, #0 - beq _080510C4 - b _0805134C -_080510C4: - movs r7, #0 - ldr r0, _080510E8 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - adds r2, r0, #0 - cmp r1, #8 - bne _080510D2 - b _080511C8 -_080510D2: - cmp r1, #8 - bgt _080510EC - cmp r1, #1 - bne _080510DC - b _080511F2 -_080510DC: - cmp r1, #2 - beq _080511B8 - b _08051100 - .align 2, 0 -_080510E4: .4byte gUnk_02019EE0 -_080510E8: .4byte gUnk_03000FF0 -_080510EC: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - bne _080510F6 - b _0805122C -_080510F6: - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - bne _08051100 - b _0805121C -_08051100: - movs r6, #0 - movs r5, #0 - ldrh r0, [r2, #4] - cmp r0, #0x20 - beq _08051128 - cmp r0, #0x20 - bgt _08051114 - cmp r0, #0x10 - beq _0805112E - b _08051130 -_08051114: - cmp r0, #0x40 - beq _0805111E - cmp r0, #0x80 - beq _08051124 - b _08051130 -_0805111E: - movs r5, #1 - rsbs r5, r5, #0 - b _08051130 -_08051124: - movs r5, #1 - b _08051130 -_08051128: - movs r6, #1 - rsbs r6, r6, #0 - b _08051130 -_0805112E: - movs r6, #1 -_08051130: - ldr r4, _0805117C @ =gUnk_02000080 - ldrb r0, [r4, #0x11] - adds r0, r0, r5 - adds r0, #6 - movs r1, #6 - bl __modsi3 - strb r0, [r4, #0x11] - orrs r5, r6 - cmp r5, #0 - beq _0805114C - movs r0, #0x67 - bl sub_080A3268 -_0805114C: - cmp r6, #0 - beq _0805123A - ldrb r0, [r4, #0x11] - cmp r0, #5 - beq _08051184 - ldrb r0, [r4, #0x10] - adds r0, r0, r6 - adds r0, #0xd - movs r1, #0xd - bl __modsi3 - strb r0, [r4, #0x10] - ldr r1, _08051180 @ =gUnk_080FC980 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _08051172 - adds r1, #0x10 -_08051172: - ldrb r0, [r4, #0x10] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r4, #0x12] - b _0805123A - .align 2, 0 -_0805117C: .4byte gUnk_02000080 -_08051180: .4byte gUnk_080FC980 -_08051184: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - adds r5, r0, #0 - movs r1, #4 - cmp r5, #0 - bne _08051194 - movs r1, #5 -_08051194: - ldrb r0, [r4, #0x12] - adds r0, r0, r6 - adds r0, r0, r1 - bl __modsi3 - strb r0, [r4, #0x12] - ldr r1, _080511B4 @ =gUnk_080FC9A0 - cmp r5, #0 - beq _080511A8 - adds r1, #8 -_080511A8: - ldrb r0, [r4, #0x12] - adds r0, r1, r0 - ldrb r0, [r0] - strb r0, [r4, #0x10] - b _0805123A - .align 2, 0 -_080511B4: .4byte gUnk_080FC9A0 -_080511B8: - ldr r0, _080511C4 @ =gUnk_02000080 - ldrb r0, [r0, #0x13] - cmp r0, #0 - beq _080511EC - movs r7, #5 - b _0805123A - .align 2, 0 -_080511C4: .4byte gUnk_02000080 -_080511C8: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #3 - cmp r0, #0 - bne _080511D6 - movs r1, #4 -_080511D6: - ldr r2, _080511E8 @ =gUnk_02000080 - ldrb r0, [r2, #0x11] - cmp r0, #5 - bne _080511EC - ldrb r2, [r2, #0x12] - cmp r1, r2 - bne _080511EC - movs r7, #8 - b _0805123A - .align 2, 0 -_080511E8: .4byte gUnk_02000080 -_080511EC: - bl sub_08051358 - b _0805123A -_080511F2: - ldr r1, _08051210 @ =gUnk_02000080 - ldrb r0, [r1, #0x11] - cmp r0, #5 - bne _08051218 - ldr r2, _08051214 @ =gUnk_080FC970 - ldrb r1, [r1, #0x12] - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _0805120A - adds r1, #8 -_0805120A: - adds r0, r1, r2 - ldrb r7, [r0] - b _0805123A - .align 2, 0 -_08051210: .4byte gUnk_02000080 -_08051214: .4byte gUnk_080FC970 -_08051218: - movs r7, #6 - b _0805123A -_0805121C: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r7, #1 - cmp r0, #0 - bne _0805123A - movs r7, #4 - b _0805123A -_0805122C: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r7, #2 - cmp r0, #0 - bne _0805123A - movs r7, #7 -_0805123A: - ldr r0, _08051250 @ =gUnk_02000080 - ldrb r4, [r0, #1] - subs r0, r7, #1 - cmp r0, #7 - bhi _08051322 - lsls r0, r0, #2 - ldr r1, _08051254 @ =_08051258 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08051250: .4byte gUnk_02000080 -_08051254: .4byte _08051258 -_08051258: @ jump table - .4byte _08051278 @ case 0 - .4byte _0805127C @ case 1 - .4byte _08051280 @ case 2 - .4byte _08051284 @ case 3 - .4byte _08051288 @ case 4 - .4byte _080512C0 @ case 5 - .4byte _080512B8 @ case 6 - .4byte _080512EC @ case 7 -_08051278: - movs r4, #0 - b _08051322 -_0805127C: - movs r4, #1 - b _08051322 -_08051280: - movs r4, #2 - b _08051322 -_08051284: - adds r4, #1 - b _08051322 -_08051288: - ldr r3, _080512B0 @ =gUnk_02000080 - ldrb r0, [r3, #0x13] - cmp r0, #0 - beq _08051322 - subs r0, #1 - movs r2, #0 - strb r0, [r3, #0x13] - ldr r1, _080512B4 @ =gUnk_02002A40 - ldrb r0, [r3, #0x13] - adds r1, #0x80 - adds r0, r0, r1 - strb r2, [r0] - ldrb r0, [r3, #0x13] - adds r0, #1 - adds r0, r0, r1 - strb r2, [r0] - movs r0, #0x6c - bl sub_08051574 - b _08051322 - .align 2, 0 -_080512B0: .4byte gUnk_02000080 -_080512B4: .4byte gUnk_02002A40 -_080512B8: - movs r0, #0 - bl sub_08051480 - b _08051322 -_080512C0: - ldr r2, _080512E4 @ =gUnk_02001A40 - ldr r0, _080512E8 @ =gUnk_02000080 - ldrb r1, [r0, #0x10] - lsls r1, r1, #1 - ldrb r0, [r0, #0x11] - lsls r0, r0, #6 - adds r0, #0xc3 - adds r1, r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - lsrs r0, r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_08051480 - b _08051322 - .align 2, 0 -_080512E4: .4byte gUnk_02001A40 -_080512E8: .4byte gUnk_02000080 -_080512EC: - movs r3, #5 - ldr r0, _08051350 @ =gUnk_02002A40 - adds r6, r0, #0 - adds r6, #0x80 - movs r5, #0 -_080512F6: - adds r2, r3, r6 - ldrb r1, [r2] - cmp r1, #0 - beq _08051302 - cmp r1, #0x20 - bne _0805130A -_08051302: - strb r5, [r2] - subs r3, #1 - cmp r3, #0 - bge _080512F6 -_0805130A: - adds r0, #0x80 - ldrb r0, [r0] - movs r7, #3 - cmp r0, #0 - beq _08051316 - movs r7, #2 -_08051316: - movs r0, #0x6a - bl sub_08051574 - adds r0, r7, #0 - bl sub_080A7114 -_08051322: - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #2 - cmp r0, #0 - bne _08051330 - movs r1, #3 -_08051330: - adds r0, r4, r1 - bl __modsi3 - adds r4, r0, #0 - ldr r1, _08051354 @ =gUnk_02000080 - ldrb r0, [r1, #1] - cmp r0, r4 - beq _0805134C - strb r4, [r1, #1] - bl sub_08051458 - movs r0, #0x68 - bl sub_080A3268 -_0805134C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08051350: .4byte gUnk_02002A40 -_08051354: .4byte gUnk_02000080 - - thumb_func_start sub_08051358 -sub_08051358: @ 0x08051358 - push {lr} - ldr r2, _08051384 @ =gUnk_02000080 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - movs r1, #3 - cmp r0, #0 - bne _0805136A - movs r1, #4 -_0805136A: - strb r1, [r2, #0x12] - ldrh r1, [r2, #0x10] - ldr r0, _08051388 @ =0x0000050B - cmp r1, r0 - beq _08051382 - movs r0, #5 - strb r0, [r2, #0x11] - movs r0, #0xb - strb r0, [r2, #0x10] - movs r0, #0x67 - bl sub_080A3268 -_08051382: - pop {pc} - .align 2, 0 -_08051384: .4byte gUnk_02000080 -_08051388: .4byte 0x0000050B - - thumb_func_start sub_0805138C -sub_0805138C: @ 0x0805138C - push {lr} - ldr r1, _080513A0 @ =gUnk_080FC9B0 - ldr r0, _080513A4 @ =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 -_080513A0: .4byte gUnk_080FC9B0 -_080513A4: .4byte gUnk_02000080 - - thumb_func_start sub_080513A8 -sub_080513A8: @ 0x080513A8 - push {lr} - movs r0, #5 - movs r1, #0 - bl sub_08050318 - ldr r1, _080513BC @ =gUnk_02000080 - movs r0, #1 - strb r0, [r1, #6] - pop {pc} - .align 2, 0 -_080513BC: .4byte gUnk_02000080 - - thumb_func_start sub_080513C0 -sub_080513C0: @ 0x080513C0 - push {lr} - movs r0, #0 - bl sub_0807CDA4 - adds r2, r0, #0 - cmp r2, #0 - beq _08051412 - cmp r2, #0 - bgt _080513DC - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _080513F8 - b _08051412 -_080513DC: - cmp r2, #1 - bne _08051412 - ldr r1, _080513F4 @ =gUnk_02019EE0 - adds r0, r1, #0 - adds r0, #8 - ldrb r1, [r1, #6] - adds r0, r0, r1 - strb r2, [r0] - movs r0, #3 - bl sub_080A7114 - b _08051412 - .align 2, 0 -_080513F4: .4byte gUnk_02019EE0 -_080513F8: - ldr r0, _08051414 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_0805194C - movs r0, #6 - movs r1, #0 - bl sub_08050318 - ldr r1, _08051418 @ =gUnk_02000080 - movs r0, #0x1e - strh r0, [r1, #8] - movs r0, #2 - strb r0, [r1, #6] -_08051412: - pop {pc} - .align 2, 0 -_08051414: .4byte gUnk_02019EE0 -_08051418: .4byte gUnk_02000080 - - thumb_func_start sub_0805141C -sub_0805141C: @ 0x0805141C - push {lr} - ldr r1, _0805143C @ =gUnk_02000080 - ldrh r0, [r1, #8] - cmp r0, #0 - bne _08051444 - ldr r0, _08051440 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #9 - ands r0, r1 - cmp r0, #0 - beq _08051448 - movs r0, #3 - bl sub_080A7114 - b _08051448 - .align 2, 0 -_0805143C: .4byte gUnk_02000080 -_08051440: .4byte gUnk_03000FF0 -_08051444: - subs r0, #1 - strh r0, [r1, #8] -_08051448: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805144C -sub_0805144C: @ 0x0805144C - push {lr} - movs r0, #0 - bl sub_080503BC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08051458 -sub_08051458: @ 0x08051458 - push {lr} - ldr r0, _08051474 @ =gUnk_02000080 - ldrb r0, [r0, #1] - adds r0, #9 - bl sub_080503A8 - ldr r0, _08051478 @ =gUnk_02001B40 - ldr r1, _0805147C @ =gUnk_02022030 - movs r2, #0x80 - lsls r2, r2, #3 - bl sub_0801D66C - pop {pc} - .align 2, 0 -_08051474: .4byte gUnk_02000080 -_08051478: .4byte gUnk_02001B40 -_0805147C: .4byte gUnk_02022030 - - thumb_func_start sub_08051480 -sub_08051480: @ 0x08051480 - push {r4, lr} - adds r4, r0, #0 - bl sub_080514BC - ldr r2, _080514B4 @ =gUnk_02000080 - ldrb r1, [r2, #0x13] - cmp r0, #0 - beq _080514B0 - cmp r0, #1 - beq _08051498 - adds r4, r0, #0 - subs r1, #1 -_08051498: - cmp r1, #5 - bls _0805149E - movs r1, #5 -_0805149E: - adds r0, r1, #1 - strb r0, [r2, #0x13] - ldr r0, _080514B8 @ =gUnk_02002A40 - adds r0, #0x80 - adds r0, r1, r0 - strb r4, [r0] - movs r0, #0x6b - bl sub_08051574 -_080514B0: - pop {r4, pc} - .align 2, 0 -_080514B4: .4byte gUnk_02000080 -_080514B8: .4byte gUnk_02002A40 - - thumb_func_start sub_080514BC -sub_080514BC: @ 0x080514BC - push {lr} - adds r2, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _080514D6 - cmp r2, #0 - beq _080514DA - cmp r2, #0xf - bhi _080514D6 - cmp r2, #0xe - bhs _080514DA -_080514D6: - movs r0, #1 - b _08051572 -_080514DA: - ldr r0, _08051500 @ =gUnk_02000080 - ldrb r1, [r0, #0x13] - cmp r1, #0 - beq _08051570 - ldr r0, _08051504 @ =gUnk_02002A40 - adds r0, r0, r1 - adds r0, #0x7f - ldrb r1, [r0] - adds r0, r1, #0 - subs r0, #0xa4 - cmp r0, #0x28 - bhi _08051522 - cmp r2, #0xe - beq _0805153C - cmp r2, #0xe - bhi _08051508 - cmp r2, #0 - beq _0805150E - b _0805153C - .align 2, 0 -_08051500: .4byte gUnk_02000080 -_08051504: .4byte gUnk_02002A40 -_08051508: - cmp r2, #0xf - beq _08051518 - b _0805153C -_0805150E: - cmp r1, #0xc2 - bhi _0805151C - adds r0, r1, #0 - adds r0, #0x33 - b _08051572 -_08051518: - cmp r1, #0xc2 - bls _08051570 -_0805151C: - adds r0, r1, #0 - adds r0, #0xa - b _08051572 -_08051522: - adds r0, r1, #0 - subs r0, #0xcd - cmp r0, #9 - bhi _0805154C - cmp r2, #0xe - beq _08051546 - cmp r2, #0xe - bhi _08051538 - cmp r2, #0 - beq _08051540 - b _0805154C -_08051538: - cmp r2, #0xf - bne _0805154C -_0805153C: - adds r0, r1, #0 - b _08051572 -_08051540: - adds r0, r1, #0 - adds r0, #0x29 - b _08051572 -_08051546: - adds r0, r1, #0 - subs r0, #0xa - b _08051572 -_0805154C: - adds r0, r1, #0 - subs r0, #0xd7 - cmp r0, #0x28 - bhi _08051570 - cmp r2, #0xe - beq _08051560 - cmp r2, #0xe - bls _08051560 - cmp r2, #0xf - beq _08051566 -_08051560: - adds r0, r1, #0 - subs r0, #0x33 - b _08051572 -_08051566: - cmp r1, #0xf5 - bls _08051570 - adds r0, r1, #0 - subs r0, #0x29 - b _08051572 -_08051570: - movs r0, #0 -_08051572: - pop {pc} - - thumb_func_start sub_08051574 -sub_08051574: @ 0x08051574 - push {lr} - bl sub_080A3268 - ldr r0, _08051594 @ =gUnk_02002A40 - ldr r3, _08051598 @ =gUnk_02019EE0 - ldrb r1, [r3, #6] - ldr r2, _0805159C @ =0x000004B4 - muls r1, r2, r1 - adds r3, #0xc - adds r1, r1, r3 - bl sub_0801D66C - bl sub_0805070C - pop {pc} - .align 2, 0 -_08051594: .4byte gUnk_02002A40 -_08051598: .4byte gUnk_02019EE0 -_0805159C: .4byte 0x000004B4 - - thumb_func_start sub_080515A0 -sub_080515A0: @ 0x080515A0 - push {lr} - ldr r1, _080515BC @ =gUnk_080FC9BC - ldr r0, _080515C0 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080515C4 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_08050A64 - pop {pc} - .align 2, 0 -_080515BC: .4byte gUnk_080FC9BC -_080515C0: .4byte gUnk_02000080 -_080515C4: .4byte gUnk_02019EE0 - - thumb_func_start sub_080515C8 -sub_080515C8: @ 0x080515C8 - push {lr} - movs r0, #1 - bl sub_080A7114 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080515D4 -sub_080515D4: @ 0x080515D4 - push {r4, lr} - ldr r0, _080515FC @ =gUnk_02019EE0 - ldrb r0, [r0] - cmp r0, #0 - beq _080515E0 - b _080516D8 -_080515E0: - ldr r1, _08051600 @ =gUnk_02000080 - movs r0, #4 - strh r0, [r1, #8] - ldrb r4, [r1, #1] - ldr r0, _08051604 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - subs r0, #1 - cmp r0, #0x1f - bhi _080516C8 - lsls r0, r0, #2 - ldr r1, _08051608 @ =_0805160C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080515FC: .4byte gUnk_02019EE0 -_08051600: .4byte gUnk_02000080 -_08051604: .4byte gUnk_03000FF0 -_08051608: .4byte _0805160C -_0805160C: @ jump table - .4byte _08051694 @ case 0 - .4byte _0805168C @ case 1 - .4byte _080516C8 @ case 2 - .4byte _080516C8 @ case 3 - .4byte _080516C8 @ case 4 - .4byte _080516C8 @ case 5 - .4byte _080516C8 @ case 6 - .4byte _08051694 @ case 7 - .4byte _080516C8 @ case 8 - .4byte _080516C8 @ case 9 - .4byte _080516C8 @ case 10 - .4byte _080516C8 @ case 11 - .4byte _080516C8 @ case 12 - .4byte _080516C8 @ case 13 - .4byte _080516C8 @ case 14 - .4byte _080516C6 @ case 15 - .4byte _080516C8 @ case 16 - .4byte _080516C8 @ case 17 - .4byte _080516C8 @ case 18 - .4byte _080516C8 @ case 19 - .4byte _080516C8 @ case 20 - .4byte _080516C8 @ case 21 - .4byte _080516C8 @ case 22 - .4byte _080516C8 @ case 23 - .4byte _080516C8 @ case 24 - .4byte _080516C8 @ case 25 - .4byte _080516C8 @ case 26 - .4byte _080516C8 @ case 27 - .4byte _080516C8 @ case 28 - .4byte _080516C8 @ case 29 - .4byte _080516C8 @ case 30 - .4byte _080516C2 @ case 31 -_0805168C: - ldr r1, _080516B0 @ =gUnk_02000080 - movs r0, #0 - strb r0, [r1, #1] - movs r4, #0 -_08051694: - cmp r4, #1 - bne _080516B4 - movs r0, #4 - movs r1, #0 - bl sub_08050318 - movs r0, #2 - bl sub_080A7114 - movs r0, #0x6a - bl sub_080A3268 - b _080516C8 - .align 2, 0 -_080516B0: .4byte gUnk_02000080 -_080516B4: - movs r0, #0 - bl sub_080503BC - movs r0, #0x6c - bl sub_080A3268 - b _080516C8 -_080516C2: - movs r4, #0 - b _080516C8 -_080516C6: - movs r4, #1 -_080516C8: - ldr r1, _080516DC @ =gUnk_02000080 - ldrb r0, [r1, #1] - cmp r0, r4 - beq _080516D8 - strb r4, [r1, #1] - movs r0, #0x69 - bl sub_080A3268 -_080516D8: - pop {r4, pc} - .align 2, 0 -_080516DC: .4byte gUnk_02000080 - - thumb_func_start sub_080516E0 -sub_080516E0: @ 0x080516E0 - push {r4, lr} - movs r0, #1 - bl sub_0807CDA4 - cmp r0, #0 - beq _08051706 - ldr r4, _08051708 @ =gUnk_02019EE0 - ldrb r0, [r4, #6] - bl sub_0805194C - ldrb r0, [r4, #6] - bl sub_08050AFC - ldr r1, _0805170C @ =gUnk_02000080 - movs r0, #2 - strh r0, [r1, #8] - movs r0, #0 - bl sub_080503BC -_08051706: - pop {r4, pc} - .align 2, 0 -_08051708: .4byte gUnk_02019EE0 -_0805170C: .4byte gUnk_02000080 - - thumb_func_start sub_08051710 -sub_08051710: @ 0x08051710 - push {lr} - ldr r1, _0805172C @ =gUnk_080FC9C8 - ldr r0, _08051730 @ =gUnk_02000080 - ldrb r0, [r0, #5] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08051734 @ =gUnk_02019EE0 - ldrb r0, [r0, #6] - bl sub_08050A64 - pop {pc} - .align 2, 0 -_0805172C: .4byte gUnk_080FC9C8 -_08051730: .4byte gUnk_02000080 -_08051734: .4byte gUnk_02019EE0 - - thumb_func_start sub_08051738 -sub_08051738: @ 0x08051738 - push {r4, r5, r6, r7, lr} - ldr r1, _08051768 @ =gUnk_02019EE0 - movs r0, #4 - strb r0, [r1, #7] - movs r4, #0 - movs r3, #0 - adds r5, r1, #0 - adds r7, r5, #0 - adds r7, #8 - ldr r6, _0805176C @ =gUnk_02000090 -_0805174C: - adds r0, r3, r7 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #1 - bne _08051770 - ldrb r1, [r5, #6] - movs r2, #4 - eors r1, r3 - rsbs r0, r1, #0 - orrs r0, r1 - asrs r0, r0, #0x1f - ands r2, r0 - b _08051774 - .align 2, 0 -_08051768: .4byte gUnk_02019EE0 -_0805176C: .4byte gUnk_02000090 -_08051770: - adds r4, #1 - adds r2, r4, #0 -_08051774: - adds r0, r3, r6 - strb r2, [r0] - adds r3, #1 - cmp r3, #2 - bls _0805174C - cmp r4, #0 - bne _0805179C - ldr r1, _08051798 @ =gUnk_02000080 - movs r0, #0x3c - strh r0, [r1, #8] - movs r0, #1 - movs r1, #0 - bl sub_08050318 - movs r0, #3 - bl sub_080A7114 - b _080517A2 - .align 2, 0 -_08051798: .4byte gUnk_02000080 -_0805179C: - movs r0, #1 - bl sub_080A7114 -_080517A2: - adds r4, #1 - ldr r0, _080517B0 @ =gUnk_02000080 - strb r4, [r0, #0x16] - movs r1, #4 - strb r1, [r0, #0x13] - strb r4, [r0, #0x14] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080517B0: .4byte gUnk_02000080 - - thumb_func_start sub_080517B4 -sub_080517B4: @ 0x080517B4 - push {r4, lr} - adds r2, r0, #0 - ldr r0, _080517E4 @ =gUnk_02019EE0 - ldrb r1, [r0, #7] - adds r4, r0, #0 - cmp r2, #0 - beq _080517DE - adds r1, r1, r2 - cmp r1, #4 - bhi _080517DC - ldr r3, _080517E8 @ =gUnk_02000090 -_080517CA: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _080517D6 - cmp r0, #4 - bne _080517DE -_080517D6: - adds r1, r1, r2 - cmp r1, #4 - bls _080517CA -_080517DC: - ldrb r1, [r4, #7] -_080517DE: - adds r0, r1, #0 - pop {r4, pc} - .align 2, 0 -_080517E4: .4byte gUnk_02019EE0 -_080517E8: .4byte gUnk_02000090 - - thumb_func_start sub_080517EC -sub_080517EC: @ 0x080517EC - push {r4, lr} - ldr r0, _08051810 @ =gUnk_02019EE0 - ldrb r1, [r0] - adds r2, r0, #0 - cmp r1, #0 - bne _0805186E - movs r4, #0 - ldr r0, _08051814 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #8 - beq _0805182C - cmp r0, #8 - bgt _08051818 - cmp r0, #1 - beq _0805182C - cmp r0, #2 - beq _08051848 - b _08051858 - .align 2, 0 -_08051810: .4byte gUnk_02019EE0 -_08051814: .4byte gUnk_03000FF0 -_08051818: - cmp r0, #0x40 - beq _08051822 - cmp r0, #0x80 - beq _08051828 - b _08051858 -_08051822: - movs r4, #1 - rsbs r4, r4, #0 - b _08051858 -_08051828: - movs r4, #1 - b _08051858 -_0805182C: - ldrb r0, [r2, #7] - cmp r0, #2 - bhi _08051848 - movs r0, #2 - movs r1, #0 - bl sub_08050318 - movs r0, #2 - bl sub_080A7114 - movs r0, #0x6a - bl sub_080A3268 - b _08051858 -_08051848: - movs r0, #4 - strb r0, [r2, #7] - movs r0, #0x6c - bl sub_080A3268 - movs r0, #0 - bl sub_080503BC -_08051858: - adds r0, r4, #0 - bl sub_080517B4 - ldr r1, _08051870 @ =gUnk_02019EE0 - ldrb r2, [r1, #7] - cmp r0, r2 - beq _0805186E - strb r0, [r1, #7] - movs r0, #0x69 - bl sub_080A3268 -_0805186E: - pop {r4, pc} - .align 2, 0 -_08051870: .4byte gUnk_02019EE0 - - thumb_func_start sub_08051874 -sub_08051874: @ 0x08051874 - push {r4, lr} - movs r1, #0x80 - lsls r1, r1, #0x12 - ldr r4, _080518B8 @ =gUnk_02019EE0 - ldrb r0, [r4, #7] - strb r0, [r1, #4] - movs r0, #0 - bl sub_0807CDA4 - adds r1, r0, #0 - adds r0, r4, #0 - adds r0, #8 - ldrb r2, [r4, #7] - adds r0, r0, r2 - strb r1, [r0] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _080518C4 - cmp r1, #1 - bne _080518DE - ldr r0, _080518BC @ =gUnk_02002A40 - ldrb r1, [r4, #7] - ldr r2, _080518C0 @ =0x000004B4 - muls r1, r2, r1 - adds r3, r4, #0 - adds r3, #0xc - adds r1, r1, r3 - bl sub_0801D66C - movs r0, #0 - bl sub_080503BC - b _080518DE - .align 2, 0 -_080518B8: .4byte gUnk_02019EE0 -_080518BC: .4byte gUnk_02002A40 -_080518C0: .4byte 0x000004B4 -_080518C4: - ldrb r0, [r4, #7] - bl sub_0805194C - movs r0, #3 - movs r1, #0 - bl sub_08050318 - ldr r1, _080518E0 @ =gUnk_02000080 - movs r0, #0x1e - strh r0, [r1, #8] - movs r0, #3 - bl sub_080A7114 -_080518DE: - pop {r4, pc} - .align 2, 0 -_080518E0: .4byte gUnk_02000080 - - thumb_func_start sub_080518E4 -sub_080518E4: @ 0x080518E4 - push {lr} - ldr r1, _08051904 @ =gUnk_02000080 - ldrh r0, [r1, #8] - cmp r0, #0 - bne _0805190C - ldr r0, _08051908 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #9 - ands r0, r1 - cmp r0, #0 - beq _08051910 - movs r0, #0 - bl sub_080503BC - b _08051910 - .align 2, 0 -_08051904: .4byte gUnk_02000080 -_08051908: .4byte gUnk_03000FF0 -_0805190C: - subs r0, #1 - strh r0, [r1, #8] -_08051910: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08051914 -sub_08051914: @ 0x08051914 - push {lr} - ldr r1, _08051940 @ =gUnk_02000080 - ldrb r0, [r1, #5] - cmp r0, #0 - bne _0805193E - movs r0, #1 - strb r0, [r1, #5] - movs r2, #0x80 - lsls r2, r2, #0x12 - ldr r1, _08051944 @ =gUnk_02002A40 - ldrb r0, [r1, #2] - strb r0, [r2, #5] - ldrb r0, [r1, #3] - strb r0, [r2, #6] - ldr r1, _08051948 @ =gUnk_03001000 - movs r0, #2 - strb r0, [r1, #3] - movs r0, #5 - movs r1, #8 - bl sub_08050054 -_0805193E: - pop {pc} - .align 2, 0 -_08051940: .4byte gUnk_02000080 -_08051944: .4byte gUnk_02002A40 -_08051948: .4byte gUnk_03001000 - - thumb_func_start sub_0805194C -sub_0805194C: @ 0x0805194C - push {r4, lr} - ldr r3, _08051980 @ =gUnk_02019EE0 - adds r1, r3, #0 - adds r1, #8 - adds r1, r0, r1 - movs r2, #0 - strb r2, [r1] - ldr r1, _08051984 @ =0x000004B4 - adds r4, r0, #0 - muls r4, r1, r4 - adds r3, #0xc - adds r4, r4, r3 - adds r0, r4, #0 - bl sub_0801D630 - movs r0, #1 - strb r0, [r4, #2] - strb r0, [r4, #3] - adds r1, r4, #0 - adds r1, #0xaa - movs r0, #0x18 - strb r0, [r1] - adds r4, #0xab - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08051980: .4byte gUnk_02019EE0 -_08051984: .4byte 0x000004B4 - - thumb_func_start sub_08051988 -sub_08051988: @ 0x08051988 - push {lr} - ldr r1, _080519A4 @ =gUnk_030010A0 - ldr r0, [r1] - adds r0, #1 - str r0, [r1] - ldr r1, _080519A8 @ =gUnk_080FC9D8 - ldr r0, _080519AC @ =gUnk_03001000 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_080519A4: .4byte gUnk_030010A0 -_080519A8: .4byte gUnk_080FC9D8 -_080519AC: .4byte gUnk_03001000 - - thumb_func_start sub_080519B0 -sub_080519B0: @ 0x080519B0 - push {r4, r5, lr} - ldr r0, _08051A04 @ =gUnk_03000FD0 - ldrb r5, [r0] - cmp r5, #0 - bne _08051A02 - movs r0, #1 - bl sub_0801DA90 - bl sub_080A3210 - bl sub_0801DA7C - bl sub_080A7124 - bl sub_0807059C - ldr r4, _08051A08 @ =gUnk_030010A0 - adds r0, r4, #0 - movs r1, #0xb0 - bl sub_0801D630 - bl sub_08049CD4 - bl sub_080300AC - bl sub_0807CA18 - ldr r0, _08051A0C @ =gUnk_02002AC8 - adds r1, r4, #0 - adds r1, #0xc - movs r2, #0x20 - bl sub_0801D66C - movs r0, #4 - strb r0, [r4, #9] - bl sub_08053518 - ldr r1, _08051A10 @ =gUnk_03001000 - movs r0, #1 - strb r0, [r1, #3] - strb r5, [r1, #4] -_08051A02: - pop {r4, r5, pc} - .align 2, 0 -_08051A04: .4byte gUnk_03000FD0 -_08051A08: .4byte gUnk_030010A0 -_08051A0C: .4byte gUnk_02002AC8 -_08051A10: .4byte gUnk_03001000 - - thumb_func_start sub_08051A14 -sub_08051A14: @ 0x08051A14 - push {lr} - movs r0, #1 - bl sub_0801DA90 - ldr r1, _08051A70 @ =gUnk_03000FD0 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1, #4] - ldr r0, _08051A74 @ =gUnk_03000000 - ldr r1, _08051A78 @ =0x00000B74 - bl sub_0801D630 - ldr r0, _08051A7C @ =gUnk_02032EC0 - movs r1, #0xed - lsls r1, r1, #2 - bl sub_0801D630 - bl sub_0805E60C - bl sub_080197AC - bl sub_08080668 - bl sub_080ADD30 - movs r0, #1 - bl sub_0801CFA8 - bl sub_0806FD8C - ldr r2, _08051A80 @ =gUnk_03000BF0 - ldr r1, _08051A84 @ =gUnk_030010A0 - ldrb r0, [r1, #0xc] - strb r0, [r2, #4] - ldrb r0, [r1, #0xd] - strb r0, [r2, #5] - bl sub_08053320 - ldr r1, _08051A88 @ =gUnk_02024490 - movs r0, #1 - strb r0, [r1] - ldr r1, _08051A8C @ =gUnk_03001000 - movs r0, #2 - strb r0, [r1, #3] - pop {pc} - .align 2, 0 -_08051A70: .4byte gUnk_03000FD0 -_08051A74: .4byte gUnk_03000000 -_08051A78: .4byte 0x00000B74 -_08051A7C: .4byte gUnk_02032EC0 -_08051A80: .4byte gUnk_03000BF0 -_08051A84: .4byte gUnk_030010A0 -_08051A88: .4byte gUnk_02024490 -_08051A8C: .4byte gUnk_03001000 - - thumb_func_start sub_08051A90 -sub_08051A90: @ 0x08051A90 - push {lr} - ldr r1, _08051AA4 @ =gUnk_080FC9E8 - ldr r0, _08051AA8 @ =gUnk_03001000 - ldrb r0, [r0, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_08051AA4: .4byte gUnk_080FC9E8 -_08051AA8: .4byte gUnk_03001000 - - thumb_func_start sub_08051AAC -sub_08051AAC: @ 0x08051AAC - push {lr} - bl sub_0805E5A8 - ldr r1, _08051AE4 @ =gUnk_03000F50 - movs r2, #0 - movs r0, #0xba - lsls r0, r0, #5 - strh r0, [r1] - ldr r1, _08051AE8 @ =gUnk_03001000 - movs r0, #1 - strb r0, [r1, #4] - ldr r0, _08051AEC @ =gUnk_030010A0 - strb r2, [r0, #8] - strb r2, [r0, #4] - strb r2, [r0, #5] - bl sub_08056418 - bl sub_08052CFC - movs r0, #0 - bl sub_0801C370 - bl sub_08051D40 - bl sub_0801855C - pop {pc} - .align 2, 0 -_08051AE4: .4byte gUnk_03000F50 -_08051AE8: .4byte gUnk_03001000 -_08051AEC: .4byte gUnk_030010A0 - - thumb_func_start sub_08051AF0 -sub_08051AF0: @ 0x08051AF0 - push {r4, r5, lr} - bl sub_0805E5C0 - bl sub_0805BBBC - cmp r0, #0 - bne _08051B02 - bl sub_0807FC40 -_08051B02: - bl sub_0801B060 - bl sub_08000108 - bl sub_0801C344 - bl sub_0805E5F8 - bl sub_080AD90C - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl sub_080AD918 - ldr r0, _08051BB0 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08051BAE - ldr r0, _08051BB4 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #0 - bne _08051BAE - bl sub_08052F1C - ldr r5, _08051BB8 @ =gUnk_02033A90 - movs r0, #0x86 - lsls r0, r0, #4 - adds r3, r5, r0 - ldr r1, _08051BBC @ =0x00000864 - adds r0, r5, r1 - ldr r1, [r3] - ldr r2, [r0] - cmp r1, r2 - beq _08051B5A - str r2, [r3] - ldr r0, _08051BC0 @ =0x800B0000 - orrs r2, r0 - adds r0, r2, #0 - bl sub_080A3268 -_08051B5A: - bl sub_0805E9F4 - bl sub_0805BC04 - adds r4, r0, #0 - cmp r4, #0 - bne _08051BAE - bl sub_08052C5C - bl sub_0805E5B4 - bl sub_08051E04 - bl sub_080300C4 - ldr r1, _08051BC4 @ =gUnk_03001000 - movs r0, #2 - strb r0, [r1, #4] - movs r0, #0 - bl sub_08078A90 - ldr r0, _08051BC8 @ =gUnk_02034490 - strb r4, [r0] - adds r0, r5, #0 - adds r0, #0x28 - ldrb r0, [r0] - cmp r0, #0xff - beq _08051B96 - bl sub_0801855C -_08051B96: - bl sub_08052BF8 - bl sub_08053178 - ldr r0, _08051BCC @ =gUnk_02034350 - ldrb r0, [r0] - cmp r0, #0 - bne _08051BAE - movs r0, #0 - movs r1, #1 - bl sub_0805E4E0 -_08051BAE: - pop {r4, r5, pc} - .align 2, 0 -_08051BB0: .4byte gUnk_03000FD0 -_08051BB4: .4byte gUnk_03000BF0 -_08051BB8: .4byte gUnk_02033A90 -_08051BBC: .4byte 0x00000864 -_08051BC0: .4byte 0x800B0000 -_08051BC4: .4byte gUnk_03001000 -_08051BC8: .4byte gUnk_02034490 -_08051BCC: .4byte gUnk_02034350 - - thumb_func_start sub_08051BD0 -sub_08051BD0: @ 0x08051BD0 - push {lr} - bl sub_080705AC - cmp r0, #0 - bne _08051C9C - bl sub_0804AA84 - cmp r0, #0 - bne _08051C9C - bl sub_0805340C - ldr r0, _08051C5C @ =gUnk_03001000 - ldrb r0, [r0, #4] - cmp r0, #2 - bne _08051C9C - ldr r0, _08051C60 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08051C02 - ldr r0, _08051C64 @ =gUnk_03003DC0 - ldrh r0, [r0, #8] - cmp r0, #0 - beq _08051C06 -_08051C02: - bl sub_08078B48 -_08051C06: - bl sub_080AD90C - bl sub_0805E5C0 - bl sub_08080A40 - bl sub_080175F4 - bl sub_0807FC40 - bl sub_0801B060 - bl sub_08000108 - bl sub_08052C3C - bl sub_0801C344 - bl sub_0805E5F8 - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl sub_0805291C - bl sub_08052C5C - bl sub_080528B4 - bl sub_080185F8 - bl sub_080AD918 - ldr r0, _08051C68 @ =gUnk_03000BF0 - ldrh r2, [r0] - cmp r2, #1 - beq _08051C6C - cmp r2, #2 - beq _08051C88 - b _08051C9C - .align 2, 0 -_08051C5C: .4byte gUnk_03001000 -_08051C60: .4byte gUnk_02000050 -_08051C64: .4byte gUnk_03003DC0 -_08051C68: .4byte gUnk_03000BF0 -_08051C6C: - ldr r0, _08051C80 @ =gUnk_03003F80 - movs r1, #0x17 - strb r1, [r0, #0xc] - ldr r0, _08051C84 @ =gUnk_03001000 - strb r2, [r0, #4] - bl sub_0805E59C - bl sub_08051D98 - b _08051C9C - .align 2, 0 -_08051C80: .4byte gUnk_03003F80 -_08051C84: .4byte gUnk_03001000 -_08051C88: - ldr r1, _08051CA0 @ =gUnk_03003F80 - movs r0, #0x17 - strb r0, [r1, #0xc] - ldr r1, _08051CA4 @ =gUnk_03001000 - movs r0, #1 - strb r0, [r1, #4] - bl sub_0805E59C - bl sub_08051DCC -_08051C9C: - pop {pc} - .align 2, 0 -_08051CA0: .4byte gUnk_03003F80 -_08051CA4: .4byte gUnk_03001000 - - thumb_func_start sub_08051CA8 -sub_08051CA8: @ 0x08051CA8 - push {lr} - bl sub_080705AC - cmp r0, #0 - bne _08051CEA - bl sub_0805E5C0 - bl sub_080175F4 - bl sub_0801C344 - bl sub_0805E5F8 - bl sub_080AD90C - bl sub_0801C208 - bl sub_08078CB4 - bl sub_080AD9B0 - bl sub_0805291C - bl sub_080528B4 - bl sub_080AD918 - ldr r0, _08051CEC @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08051CEA - bl sub_0805E5B4 -_08051CEA: - pop {pc} - .align 2, 0 -_08051CEC: .4byte gUnk_03000FD0 - - thumb_func_start sub_08051CF0 -sub_08051CF0: @ 0x08051CF0 - push {r4, r5, r6, lr} - bl sub_080AD90C - bl sub_0801C208 - bl sub_080AD9B0 - ldr r5, _08051D20 @ =gUnk_03001000 - movs r6, #1 - strb r6, [r5, #0xb] - bl sub_080AD918 - ldr r0, _08051D24 @ =gUnk_03000FD0 - ldrb r4, [r0] - cmp r4, #0 - bne _08051D1E - movs r0, #1 - bl sub_0801DA90 - strb r6, [r5, #3] - strb r4, [r5, #4] - ldr r0, _08051D28 @ =gUnk_030010A0 - strb r6, [r0, #8] -_08051D1E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08051D20: .4byte gUnk_03001000 -_08051D24: .4byte gUnk_03000FD0 -_08051D28: .4byte gUnk_030010A0 - - thumb_func_start sub_08051D2C -sub_08051D2C: @ 0x08051D2C - push {lr} - movs r0, #7 - movs r1, #8 - bl sub_08050054 - movs r0, #3 - bl sub_08056010 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08051D40 -sub_08051D40: @ 0x08051D40 - push {lr} - bl sub_08052EA0 - bl sub_0804AF90 - bl sub_0804AFDC - bl InitializeLink - ldr r1, _08051D90 @ =gUnk_03004030 - movs r0, #0 - str r0, [r1] - bl sub_0807C740 - ldr r1, _08051D94 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - bl sub_0805283C - movs r0, #0 - movs r1, #0 - bl sub_0801D79C - bl LoadRoom - bl sub_080609AC - bl sub_0804AFF4 - bl sub_0805329C - bl sub_08000108 - movs r0, #1 - rsbs r0, r0, #0 - bl sub_0805BB74 - bl sub_080531F8 - pop {pc} - .align 2, 0 -_08051D90: .4byte gUnk_03004030 -_08051D94: .4byte gUnk_02000070 - - thumb_func_start sub_08051D98 -sub_08051D98: @ 0x08051D98 - push {lr} - bl sub_08052EA0 - ldr r1, _08051DC8 @ =gUnk_02034350 - movs r0, #1 - strb r0, [r1] - bl sub_0805E9A8 - bl sub_0804AF90 - bl sub_0804AFDC - bl sub_0807C0DC - bl sub_0805283C - bl LoadRoom - bl sub_0804AFF4 - movs r0, #1 - bl sub_08078A90 - pop {pc} - .align 2, 0 -_08051DC8: .4byte gUnk_02034350 - - thumb_func_start sub_08051DCC -sub_08051DCC: @ 0x08051DCC - push {r4, lr} - ldr r1, _08051DFC @ =gUnk_03000BF0 - ldr r4, _08051E00 @ =gUnk_030010A0 - ldrb r0, [r4, #0xc] - strb r0, [r1, #4] - ldrb r0, [r4, #0xd] - strb r0, [r1, #5] - bl sub_080528F0 - movs r0, #3 - strb r0, [r4, #9] - bl sub_08052CFC - bl sub_08052EA0 - bl sub_0805E9A8 - bl sub_0804AF90 - bl sub_0804AFDC - bl sub_0805283C - pop {r4, pc} - .align 2, 0 -_08051DFC: .4byte gUnk_03000BF0 -_08051E00: .4byte gUnk_030010A0 - - thumb_func_start sub_08051E04 -sub_08051E04: @ 0x08051E04 - push {lr} - bl sub_08052620 - cmp r0, #0 - beq _08051E60 - ldr r1, _08051E2C @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r1, r2] - cmp r0, #0 - bge _08051E1A - adds r0, #0xf -_08051E1A: - asrs r2, r0, #4 - movs r3, #0x32 - ldrsh r0, [r1, r3] - cmp r0, #0 - bge _08051E26 - adds r0, #0xf -_08051E26: - asrs r1, r0, #4 - ldr r3, _08051E30 @ =gUnk_08127F94 - b _08051E36 - .align 2, 0 -_08051E2C: .4byte gLinkEntity -_08051E30: .4byte gUnk_08127F94 -_08051E34: - adds r3, #8 -_08051E36: - ldrb r0, [r3] - cmp r0, #0xff - beq _08051E60 - cmp r0, r2 - bhi _08051E34 - ldrb r0, [r3, #2] - cmp r0, r2 - blo _08051E34 - ldrb r0, [r3, #1] - cmp r0, r1 - bhi _08051E34 - ldrb r0, [r3, #3] - cmp r0, r1 - blo _08051E34 - ldr r2, _08051E64 @ =gUnk_02002A40 - movs r1, #1 - ldrb r3, [r3, #4] - lsls r1, r3 - ldr r0, [r2, #0x40] - orrs r0, r1 - str r0, [r2, #0x40] -_08051E60: - pop {pc} - .align 2, 0 -_08051E64: .4byte gUnk_02002A40 - - thumb_func_start sub_08051E68 -sub_08051E68: @ 0x08051E68 - push {lr} - ldr r1, _08051E7C @ =gUnk_080FCA08 - ldr r0, _08051E80 @ =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 -_08051E7C: .4byte gUnk_080FCA08 -_08051E80: .4byte gUnk_02000080 - - thumb_func_start sub_08051E84 -sub_08051E84: @ 0x08051E84 - push {r4, r5, r6, lr} - ldr r0, _08051EF0 @ =gUnk_02032EC0 - ldrb r4, [r0, #3] - lsls r4, r4, #3 - ldr r0, _08051EF4 @ =gUnk_080FCA20 - adds r4, r4, r0 - ldr r5, _08051EF8 @ =gUnk_03000BF0 - ldrb r0, [r4] - strb r0, [r5, #4] - ldrb r0, [r4, #1] - strb r0, [r5, #5] - bl sub_08053320 - ldrb r0, [r5, #4] - bl sub_08052D58 - ldr r1, _08051EFC @ =gUnk_02033A90 - movs r6, #0 - strh r0, [r1, #4] - ldrb r0, [r4] - ldrb r1, [r4, #1] - bl sub_0804B0C0 - ldrb r0, [r4] - ldrb r1, [r4, #1] - bl sub_08052FD8 - ldrh r0, [r4, #4] - ldrh r1, [r5, #6] - adds r0, r0, r1 - strh r0, [r5, #0xa] - ldrh r0, [r4, #6] - ldrh r1, [r5, #8] - adds r0, r0, r1 - strh r0, [r5, #0xc] - ldr r1, _08051F00 @ =gUnk_02000080 - ldrb r0, [r4, #2] - strb r0, [r1] - ldrb r2, [r4, #3] - movs r0, #0xf - ands r0, r2 - strb r0, [r1, #3] - str r4, [r1, #0xc] - ldrb r0, [r1, #5] - adds r0, #1 - strb r0, [r1, #5] - strb r6, [r1, #6] - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1, #8] - bl sub_08051F04 - pop {r4, r5, r6, pc} - .align 2, 0 -_08051EF0: .4byte gUnk_02032EC0 -_08051EF4: .4byte gUnk_080FCA20 -_08051EF8: .4byte gUnk_03000BF0 -_08051EFC: .4byte gUnk_02033A90 -_08051F00: .4byte gUnk_02000080 - - thumb_func_start sub_08051F04 -sub_08051F04: @ 0x08051F04 - push {lr} - ldr r1, _08051F38 @ =gUnk_080FCA14 - ldr r0, _08051F3C @ =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_0805E5F8 - bl sub_08000108 - pop {pc} - .align 2, 0 -_08051F38: .4byte gUnk_080FCA14 -_08051F3C: .4byte gUnk_02000080 - - thumb_func_start sub_08051F40 -sub_08051F40: @ 0x08051F40 - push {lr} - ldr r0, _08051F60 @ =gUnk_080FCA20 - ldr r2, _08051F64 @ =gUnk_02032EC0 - ldrb r1, [r2, #3] - lsls r1, r1, #3 - adds r1, r1, r0 - ldrb r1, [r1, #3] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0 - beq _08051F68 - lsrs r1, r1, #4 - movs r0, #2 - bl sub_080A7138 - b _08051F76 - .align 2, 0 -_08051F60: .4byte gUnk_080FCA20 -_08051F64: .4byte gUnk_02032EC0 -_08051F68: - movs r0, #3 - strb r0, [r2] - movs r0, #0x10 - bl sub_080500F4 - bl sub_08056418 -_08051F76: - pop {pc} - - thumb_func_start sub_08051F78 -sub_08051F78: @ 0x08051F78 - push {lr} - ldr r0, _08051F94 @ =gUnk_02032EC0 - ldrb r3, [r0, #3] - lsls r3, r3, #3 - ldr r0, _08051F98 @ =gUnk_080FCA20 - adds r3, r3, r0 - ldrb r0, [r3] - ldrb r1, [r3, #1] - ldrh r2, [r3, #4] - ldrh r3, [r3, #6] - bl sub_08051F9C - pop {pc} - .align 2, 0 -_08051F94: .4byte gUnk_02032EC0 -_08051F98: .4byte gUnk_080FCA20 - - thumb_func_start sub_08051F9C -sub_08051F9C: @ 0x08051F9C - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r6, r2, #0 - mov r8, r3 - ldr r5, _08051FE0 @ =gUnk_03000F50 - ldrh r2, [r5] - movs r4, #0xc0 - lsls r4, r4, #7 - ands r4, r2 - bl sub_08052FF4 - ldr r1, _08051FE4 @ =gUnk_03000BF0 - ldrh r0, [r1, #6] - adds r0, r0, r6 - movs r6, #0 - strh r0, [r1, #0xa] - ldrh r0, [r1, #8] - add r0, r8 - strh r0, [r1, #0xc] - bl sub_0807C740 - ldr r1, _08051FE8 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - ldr r0, _08051FEC @ =gUnk_0200B644 - str r6, [r0] - ldrh r0, [r5] - orrs r4, r0 - strh r4, [r5] - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_08051FE0: .4byte gUnk_03000F50 -_08051FE4: .4byte gUnk_03000BF0 -_08051FE8: .4byte gUnk_02000070 -_08051FEC: .4byte gUnk_0200B644 - - thumb_func_start sub_08051FF0 -sub_08051FF0: @ 0x08051FF0 - push {lr} - ldr r0, _08052000 @ =gUnk_02000080 - ldr r1, [r0, #0xc] - ldrb r0, [r1] - ldrb r1, [r1, #1] - bl sub_0804B0B0 - pop {pc} - .align 2, 0 -_08052000: .4byte gUnk_02000080 - - thumb_func_start sub_08052004 -sub_08052004: @ 0x08052004 - ldr r1, _0805200C @ =gUnk_02000080 - movs r0, #2 - strb r0, [r1, #5] - bx lr - .align 2, 0 -_0805200C: .4byte gUnk_02000080 - - thumb_func_start sub_08052010 -sub_08052010: @ 0x08052010 - push {r4, lr} - bl sub_080A3210 - bl sub_08056418 - movs r0, #1 - bl sub_0801DA90 - ldr r0, _0805207C @ =gUnk_02021F30 - movs r4, #0x80 - lsls r4, r4, #4 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _08052080 @ =gUnk_020344B0 - adds r1, r4, #0 - bl sub_0801D630 - bl sub_080A4D34 - movs r0, #0xa - bl sub_0801D714 - movs r0, #0 - movs r1, #0 - bl sub_0801D79C - movs r0, #4 - bl sub_0801D7EC - movs r0, #0xc0 - lsls r0, r0, #0x13 - movs r1, #0x20 - bl sub_0801D630 - ldr r0, _08052084 @ =gUnk_02000080 - movs r1, #0x30 - bl sub_0801D630 - ldr r1, _08052088 @ =gUnk_03000F50 - ldrh r2, [r1] - movs r3, #0x80 - lsls r3, r3, #5 - adds r0, r3, #0 - orrs r0, r2 - strh r0, [r1] - ldr r0, _0805208C @ =0x00001C01 - strh r0, [r1, #0x14] - ldr r0, _08052090 @ =0x00001D05 - strh r0, [r1, #0x20] - movs r0, #1 - strh r0, [r1, #0x1a] - strh r0, [r1, #0x26] - pop {r4, pc} - .align 2, 0 -_0805207C: .4byte gUnk_02021F30 -_08052080: .4byte gUnk_020344B0 -_08052084: .4byte gUnk_02000080 -_08052088: .4byte gUnk_03000F50 -_0805208C: .4byte 0x00001C01 -_08052090: .4byte 0x00001D05 - - thumb_func_start sub_08052094 -sub_08052094: @ 0x08052094 - push {r4, lr} - ldr r1, _080520BC @ =gUnk_080FCA70 - ldr r4, _080520C0 @ =gUnk_03001000 - ldrb r0, [r4, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4, #3] - cmp r0, #0 - beq _080520B8 - bl sub_080AD90C - bl sub_080523D4 - bl sub_080AD918 -_080520B8: - pop {r4, pc} - .align 2, 0 -_080520BC: .4byte gUnk_080FCA70 -_080520C0: .4byte gUnk_03001000 - - thumb_func_start sub_080520C4 -sub_080520C4: @ 0x080520C4 - push {lr} - ldr r1, _080520D4 @ =gUnk_03001000 - strb r0, [r1, #3] - movs r0, #0 - bl sub_080A7114 - pop {pc} - .align 2, 0 -_080520D4: .4byte gUnk_03001000 - - thumb_func_start sub_080520D8 -sub_080520D8: @ 0x080520D8 - push {r4, lr} - ldr r4, _08052118 @ =gUnk_03000FD0 - ldrb r0, [r4] - cmp r0, #0 - bne _08052114 - bl sub_08052010 - ldr r1, _0805211C @ =gUnk_02000080 - movs r0, #0x50 - strb r0, [r1, #0x10] - movs r2, #0x3c - movs r0, #0x3c - strh r0, [r1, #8] - ldr r0, _08052120 @ =gUnk_02002A40 - adds r0, #0xaa - movs r1, #0x18 - strb r1, [r0] - ldr r0, _08052124 @ =gUnk_03001000 - strb r2, [r0, #5] - movs r0, #0xa - bl sub_080A3268 - movs r0, #4 - bl sub_080500F4 - ldr r0, _08052128 @ =0xFFFF0001 - str r0, [r4, #4] - movs r0, #1 - bl sub_080520C4 -_08052114: - pop {r4, pc} - .align 2, 0 -_08052118: .4byte gUnk_03000FD0 -_0805211C: .4byte gUnk_02000080 -_08052120: .4byte gUnk_02002A40 -_08052124: .4byte gUnk_03001000 -_08052128: .4byte 0xFFFF0001 - - thumb_func_start sub_0805212C -sub_0805212C: @ 0x0805212C - push {r4, lr} - ldr r4, _0805214C @ =gUnk_03000FD0 - ldrb r0, [r4] - cmp r0, #0 - bne _0805219C - ldr r1, _08052150 @ =gUnk_03001000 - ldrb r0, [r1, #5] - cmp r0, #0 - bne _08052198 - ldr r1, _08052154 @ =gUnk_02000080 - ldrb r0, [r1, #0x10] - cmp r0, #0x25 - bls _08052158 - subs r0, #1 - strb r0, [r1, #0x10] - b _0805219C - .align 2, 0 -_0805214C: .4byte gUnk_03000FD0 -_08052150: .4byte gUnk_03001000 -_08052154: .4byte gUnk_02000080 -_08052158: - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805219C - movs r0, #2 - bl sub_080520C4 - movs r0, #0 - movs r1, #0 - bl sub_08052418 - ldr r2, _08052190 @ =gUnk_03000F50 - ldrh r0, [r2] - movs r3, #0xc0 - lsls r3, r3, #3 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08052194 @ =0x0000FFFF - str r0, [r4, #4] - movs r0, #4 - movs r1, #0x10 - bl sub_08050054 - b _0805219C - .align 2, 0 -_08052190: .4byte gUnk_03000F50 -_08052194: .4byte 0x0000FFFF -_08052198: - subs r0, #1 - strb r0, [r1, #5] -_0805219C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080521A0 -sub_080521A0: @ 0x080521A0 - push {r4, lr} - ldr r0, _080521C4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - beq _080521AC - b _080522E8 -_080521AC: - ldr r0, _080521C8 @ =gUnk_02000080 - ldrb r1, [r0, #5] - adds r2, r0, #0 - cmp r1, #4 - bls _080521B8 - b _080522D4 -_080521B8: - lsls r0, r1, #2 - ldr r1, _080521CC @ =_080521D0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080521C4: .4byte gUnk_03000FD0 -_080521C8: .4byte gUnk_02000080 -_080521CC: .4byte _080521D0 -_080521D0: @ jump table - .4byte _080521E4 @ case 0 - .4byte _08052208 @ case 1 - .4byte _08052278 @ case 2 - .4byte _080522B0 @ case 3 - .4byte _080522D4 @ case 4 -_080521E4: - movs r1, #0 - movs r0, #0x1e - strh r0, [r2, #8] - strb r1, [r2, #3] - movs r0, #1 - bl sub_080A7114 - movs r0, #0 - movs r1, #0 - bl sub_08052418 - ldr r1, _08052204 @ =gUnk_03000FD0 - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r1, #4] - b _080522E8 - .align 2, 0 -_08052204: .4byte gUnk_03000FD0 -_08052208: - ldrh r0, [r2, #8] - cmp r0, #0 - bne _080522B6 - ldrb r4, [r2, #3] - ldr r0, _08052224 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #0x40 - beq _0805222E - cmp r0, #0x40 - bgt _08052228 - cmp r0, #1 - beq _08052236 - b _0805225A - .align 2, 0 -_08052224: .4byte gUnk_03000FF0 -_08052228: - cmp r0, #0x80 - beq _08052232 - b _0805225A -_0805222E: - movs r4, #0 - b _0805225A -_08052232: - movs r4, #1 - b _0805225A -_08052236: - cmp r4, #0 - beq _0805223E - movs r2, #4 - b _08052248 -_0805223E: - movs r0, #8 - movs r1, #0 - bl sub_08050318 - movs r2, #2 -_08052248: - ldr r1, _08052274 @ =gUnk_02000080 - movs r0, #0x3c - strh r0, [r1, #8] - adds r0, r2, #0 - bl sub_080A7114 - movs r0, #0x6a - bl sub_080A3268 -_0805225A: - ldr r1, _08052274 @ =gUnk_02000080 - ldrb r0, [r1, #3] - cmp r0, r4 - beq _080522E8 - strb r4, [r1, #3] - movs r0, #0 - adds r1, r4, #0 - bl sub_08052418 - movs r0, #0x69 - bl sub_080A3268 - b _080522E8 - .align 2, 0 -_08052274: .4byte gUnk_02000080 -_08052278: - movs r0, #0 - bl sub_0807CDA4 - adds r1, r0, #0 - ldr r2, _08052298 @ =gUnk_02000080 - strb r1, [r2] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0805229C - cmp r1, #1 - bne _080522E8 - movs r0, #4 - bl sub_080A7114 - b _080522E8 - .align 2, 0 -_08052298: .4byte gUnk_02000080 -_0805229C: - movs r0, #0x3c - strh r0, [r2, #8] - movs r0, #9 - movs r1, #0 - bl sub_08050318 - movs r0, #3 - bl sub_080A7114 - b _080522E8 -_080522B0: - ldrh r0, [r2, #8] - cmp r0, #0 - beq _080522BC -_080522B6: - subs r0, #1 - strh r0, [r2, #8] - b _080522E8 -_080522BC: - ldr r0, _080522D0 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #0xb - ands r0, r1 - cmp r0, #0 - beq _080522E8 - movs r0, #0 - bl sub_080A7114 - b _080522E8 - .align 2, 0 -_080522D0: .4byte gUnk_03000FF0 -_080522D4: - ldr r2, _080522EC @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _080522F0 @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - bl sub_08050384 - movs r0, #3 - bl sub_080520C4 -_080522E8: - pop {r4, pc} - .align 2, 0 -_080522EC: .4byte gUnk_03000F50 -_080522F0: .4byte 0x0000FDFF - - thumb_func_start sub_080522F4 -sub_080522F4: @ 0x080522F4 - push {r4, lr} - ldr r0, _08052320 @ =gUnk_02000080 - ldrb r1, [r0, #5] - adds r3, r0, #0 - cmp r1, #1 - beq _08052324 - cmp r1, #1 - bgt _080523AC - cmp r1, #0 - bne _080523AC - movs r1, #0 - movs r0, #0x1e - strh r0, [r3, #8] - strb r1, [r3, #3] - movs r0, #1 - bl sub_080A7114 - movs r0, #1 - movs r1, #0 - bl sub_08052418 - b _080523CC - .align 2, 0 -_08052320: .4byte gUnk_02000080 -_08052324: - ldr r2, _08052340 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r4, #0x80 - lsls r4, r4, #2 - adds r0, r4, #0 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r3, #8] - cmp r0, #0 - beq _08052344 - subs r0, #1 - strh r0, [r3, #8] - b _080523CC - .align 2, 0 -_08052340: .4byte gUnk_03000F50 -_08052344: - ldrb r4, [r3, #3] - ldr r0, _08052358 @ =gUnk_03000FF0 - ldrh r0, [r0, #2] - cmp r0, #0x40 - beq _08052362 - cmp r0, #0x40 - bgt _0805235C - cmp r0, #1 - beq _0805236A - b _0805238C - .align 2, 0 -_08052358: .4byte gUnk_03000FF0 -_0805235C: - cmp r0, #0x80 - beq _08052366 - b _0805238C -_08052362: - movs r4, #0 - b _0805238C -_08052366: - movs r4, #1 - b _0805238C -_0805236A: - movs r0, #2 - bl sub_080A7114 - movs r0, #0x6a - bl sub_080A3268 - cmp r4, #0 - bne _08052384 - movs r0, #5 - movs r1, #8 - bl sub_08050054 - b _0805238C -_08052384: - movs r0, #7 - movs r1, #8 - bl sub_08050054 -_0805238C: - ldr r1, _080523A8 @ =gUnk_02000080 - ldrb r0, [r1, #3] - cmp r0, r4 - beq _080523CC - strb r4, [r1, #3] - movs r0, #1 - adds r1, r4, #0 - bl sub_08052418 - movs r0, #0x69 - bl sub_080A3268 - b _080523CC - .align 2, 0 -_080523A8: .4byte gUnk_02000080 -_080523AC: - ldr r0, _080523C4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080523CC - ldrb r0, [r3, #3] - cmp r0, #0 - bne _080523C8 - movs r0, #2 - bl sub_08056010 - b _080523CC - .align 2, 0 -_080523C4: .4byte gUnk_03000FD0 -_080523C8: - bl sub_080560A8 -_080523CC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_107 -nullsub_107: @ 0x080523D0 - bx lr - .align 2, 0 - - thumb_func_start sub_080523D4 -sub_080523D4: @ 0x080523D4 - push {r4, r5, r6, lr} - ldr r1, _08052408 @ =gUnk_03001010 - movs r0, #0 - strh r0, [r1, #4] - strh r0, [r1, #6] - movs r0, #0x86 - lsls r0, r0, #8 - strh r0, [r1, #8] - ldr r0, _0805240C @ =gUnk_02000080 - ldrb r0, [r0, #0x10] - strh r0, [r1, #2] - movs r4, #0 - adds r6, r1, #0 - ldr r5, _08052410 @ =gUnk_080FCA84 -_080523F0: - adds r0, r4, r5 - ldrb r0, [r0] - strh r0, [r6] - ldr r0, _08052414 @ =0x000001FD - adds r1, r4, #0 - bl sub_080ADA14 - adds r4, #1 - cmp r4, #7 - bls _080523F0 - pop {r4, r5, r6, pc} - .align 2, 0 -_08052408: .4byte gUnk_03001010 -_0805240C: .4byte gUnk_02000080 -_08052410: .4byte gUnk_080FCA84 -_08052414: .4byte 0x000001FD - - thumb_func_start sub_08052418 -sub_08052418: @ 0x08052418 - push {r4, r5, r6, lr} - sub sp, #0x18 - adds r6, r0, #0 - adds r4, r1, #0 - ldr r0, _08052494 @ =gUnk_02021F30 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r0, _08052498 @ =gUnk_020227E8 - movs r1, #0xf - str r1, [r0] - str r1, [r0, #8] - str r1, [r0, #0x10] - str r1, [r0, #0x18] - lsls r4, r4, #3 - adds r0, #1 - adds r4, r4, r0 - movs r5, #1 - strb r5, [r4] - ldr r4, _0805249C @ =gUnk_080FCA8C - adds r0, r4, #0 - mov r1, sp - movs r2, #0x18 - bl sub_0801D66C - lsls r2, r6, #1 - adds r2, r2, r6 - lsls r2, r2, #2 - ldr r0, _080524A0 @ =gUnk_080FCAA4 - adds r2, r2, r0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #7] - adds r1, r2, r1 - ldrb r0, [r2, #8] - lsls r0, r0, #5 - ldrb r1, [r1] - adds r0, r0, r1 - lsls r0, r0, #1 - ldr r1, [r4] - adds r1, r1, r0 - str r1, [sp] - mov r4, sp - ldrb r0, [r2, #9] - adds r1, r5, #0 - ands r1, r0 - ldrb r3, [r4, #0x13] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x13] - ldrh r0, [r2, #0xa] - mov r1, sp - bl sub_0805F46C - ldr r0, _080524A4 @ =gUnk_03000F50 - strh r5, [r0, #0x1a] - add sp, #0x18 - pop {r4, r5, r6, pc} - .align 2, 0 -_08052494: .4byte gUnk_02021F30 -_08052498: .4byte gUnk_020227E8 -_0805249C: .4byte gUnk_080FCA8C -_080524A0: .4byte gUnk_080FCAA4 -_080524A4: .4byte gUnk_03000F50 \ No newline at end of file diff --git a/asm/code_0804B9F8.s b/asm/code_0804B9F8.s new file mode 100644 index 00000000..ca675b5c --- /dev/null +++ b/asm/code_0804B9F8.s @@ -0,0 +1,16036 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0804B9F8 +sub_0804B9F8: @ 0x0804B9F8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_176 +nullsub_176: @ 0x0804B9FC + bx lr + .align 2, 0 + + thumb_func_start sub_0804BA00 +sub_0804BA00: @ 0x0804BA00 + movs r0, #1 + bx lr + + thumb_func_start nullsub_177 +nullsub_177: @ 0x0804BA04 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BA08 +sub_0804BA08: @ 0x0804BA08 + movs r0, #1 + bx lr + + thumb_func_start sub_0804BA0C +sub_0804BA0C: @ 0x0804BA0C + push {lr} + ldr r0, _0804BA34 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #7 + bhi _0804BA1C + ldr r0, _0804BA38 @ =gUnk_080D7038 + bl LoadRoomEntityList +_0804BA1C: + ldr r0, _0804BA3C @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _0804BA32 + movs r2, #0xb2 + lsls r2, r2, #2 + movs r0, #2 + movs r1, #0 + movs r3, #0xa8 + bl sub_08052CA4 +_0804BA32: + pop {pc} + .align 2, 0 +_0804BA34: .4byte gUnk_02002A40 +_0804BA38: .4byte gUnk_080D7038 +_0804BA3C: .4byte gUnk_02034350 + + thumb_func_start sub_0804BA40 +sub_0804BA40: @ 0x0804BA40 + movs r0, #1 + bx lr + + thumb_func_start sub_0804BA44 +sub_0804BA44: @ 0x0804BA44 + push {r4, lr} + ldr r4, _0804BA7C @ =gUnk_02002A40 + ldrb r0, [r4, #8] + cmp r0, #6 + bne _0804BA54 + ldr r0, _0804BA80 @ =gUnk_080D7140 + bl LoadRoomEntityList +_0804BA54: + ldrb r0, [r4, #8] + cmp r0, #7 + bne _0804BA60 + ldr r0, _0804BA84 @ =gUnk_080D7170 + bl LoadRoomEntityList +_0804BA60: + ldrb r0, [r4, #8] + cmp r0, #7 + bls _0804BA72 + ldr r0, _0804BA88 @ =gUnk_080D71A0 + bl LoadRoomEntityList + ldrb r0, [r4, #8] + cmp r0, #7 + bhi _0804BA90 +_0804BA72: + ldr r0, _0804BA8C @ =gUnk_080D71D0 + bl LoadRoomEntityList + b _0804BA96 + .align 2, 0 +_0804BA7C: .4byte gUnk_02002A40 +_0804BA80: .4byte gUnk_080D7140 +_0804BA84: .4byte gUnk_080D7170 +_0804BA88: .4byte gUnk_080D71A0 +_0804BA8C: .4byte gUnk_080D71D0 +_0804BA90: + ldr r0, _0804BA98 @ =gUnk_080D71F0 + bl LoadRoomEntityList +_0804BA96: + pop {r4, pc} + .align 2, 0 +_0804BA98: .4byte gUnk_080D71F0 + + thumb_func_start sub_0804BA9C +sub_0804BA9C: @ 0x0804BA9C + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804BAB2 + ldr r0, _0804BAB8 @ =gUnk_02034350 + ldr r1, _0804BABC @ =gUnk_080D7348 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804BAB2: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804BAB8: .4byte gUnk_02034350 +_0804BABC: .4byte gUnk_080D7348 + + thumb_func_start sub_0804BAC0 +sub_0804BAC0: @ 0x0804BAC0 + push {lr} + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + bne _0804BAD2 + ldr r0, _0804BAE8 @ =gUnk_080D7328 + bl LoadRoomEntityList +_0804BAD2: + movs r0, #0x64 + bl GetProgressFlag + cmp r0, #0 + beq _0804BAF4 + ldr r0, _0804BAEC @ =gUnk_02033A90 + ldr r1, _0804BAF0 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1b + str r1, [r0] + b _0804BB0C + .align 2, 0 +_0804BAE8: .4byte gUnk_080D7328 +_0804BAEC: .4byte gUnk_02033A90 +_0804BAF0: .4byte 0x00000864 +_0804BAF4: + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804BB0C + ldr r0, _0804BB10 @ =gUnk_02033A90 + ldr r2, _0804BB14 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804BB0C: + pop {pc} + .align 2, 0 +_0804BB10: .4byte gUnk_02033A90 +_0804BB14: .4byte 0x00000864 + + thumb_func_start sub_0804BB18 +sub_0804BB18: @ 0x0804BB18 + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804BB2E + ldr r0, _0804BB34 @ =gUnk_02034350 + ldr r1, _0804BB38 @ =gUnk_080D7410 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804BB2E: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804BB34: .4byte gUnk_02034350 +_0804BB38: .4byte gUnk_080D7410 + + thumb_func_start sub_0804BB3C +sub_0804BB3C: @ 0x0804BB3C + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + bne _0804BB7C + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + bne _0804BB58 + ldr r0, _0804BB8C @ =gUnk_080D73B0 + bl LoadRoomEntityList +_0804BB58: + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _0804BB72 + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + beq _0804BB72 + ldr r0, _0804BB90 @ =gUnk_080D73E0 + bl LoadRoomEntityList +_0804BB72: + movs r0, #0x64 + bl GetProgressFlag + cmp r0, #0 + beq _0804BB8A +_0804BB7C: + ldr r0, _0804BB94 @ =gUnk_02033A90 + ldr r2, _0804BB98 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804BB8A: + pop {pc} + .align 2, 0 +_0804BB8C: .4byte gUnk_080D73B0 +_0804BB90: .4byte gUnk_080D73E0 +_0804BB94: .4byte gUnk_02033A90 +_0804BB98: .4byte 0x00000864 + + thumb_func_start sub_0804BB9C +sub_0804BB9C: @ 0x0804BB9C + movs r0, #1 + bx lr + + thumb_func_start sub_0804BBA0 +sub_0804BBA0: @ 0x0804BBA0 + push {lr} + movs r0, #0x64 + bl GetProgressFlag + cmp r0, #0 + beq _0804BBBA + ldr r0, _0804BBDC @ =gUnk_02033A90 + ldr r2, _0804BBE0 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804BBBA: + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804BBE8 + ldr r0, _0804BBE4 @ =gUnk_080D7618 + bl LoadRoomEntityList + ldr r0, _0804BBDC @ =gUnk_02033A90 + ldr r2, _0804BBE0 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + b _0804BC2E + .align 2, 0 +_0804BBDC: .4byte gUnk_02033A90 +_0804BBE0: .4byte 0x00000864 +_0804BBE4: .4byte gUnk_080D7618 +_0804BBE8: + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + bne _0804BC10 + ldr r0, _0804BC04 @ =gUnk_080D74C8 + bl LoadRoomEntityList + ldr r0, _0804BC08 @ =gUnk_02033A90 + ldr r1, _0804BC0C @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1b + str r1, [r0] + b _0804BC2E + .align 2, 0 +_0804BC04: .4byte gUnk_080D74C8 +_0804BC08: .4byte gUnk_02033A90 +_0804BC0C: .4byte 0x00000864 +_0804BC10: + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _0804BC28 + ldr r0, _0804BC24 @ =gUnk_080D7588 + bl LoadRoomEntityList + b _0804BC2E + .align 2, 0 +_0804BC24: .4byte gUnk_080D7588 +_0804BC28: + ldr r0, _0804BC30 @ =gUnk_080D75D8 + bl LoadRoomEntityList +_0804BC2E: + pop {pc} + .align 2, 0 +_0804BC30: .4byte gUnk_080D75D8 + + thumb_func_start sub_0804BC34 +sub_0804BC34: @ 0x0804BC34 + movs r0, #1 + bx lr + + thumb_func_start sub_0804BC38 +sub_0804BC38: @ 0x0804BC38 + push {lr} + movs r0, #0x9c + bl sub_0807CBD0 + cmp r0, #0 + beq _0804BC4A + ldr r0, _0804BC4C @ =gUnk_080D7690 + bl LoadRoomEntityList +_0804BC4A: + pop {pc} + .align 2, 0 +_0804BC4C: .4byte gUnk_080D7690 + + thumb_func_start sub_0804BC50 +sub_0804BC50: @ 0x0804BC50 + push {lr} + movs r0, #0x9f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804BC68 + ldr r1, _0804BC6C @ =gUnk_030010A0 + movs r0, #5 + strb r0, [r1, #0xf] + movs r0, #0x1c + bl sub_0807CD80 +_0804BC68: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804BC6C: .4byte gUnk_030010A0 + + thumb_func_start sub_0804BC70 +sub_0804BC70: @ 0x0804BC70 + push {lr} + movs r0, #0x9f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804BCA0 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r2, _0804BCB0 @ =gLinkEntity + ldr r1, _0804BCB4 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0xb0 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x40 + strh r0, [r2, #0x32] + ldr r2, _0804BCB8 @ =gUnk_08009E88 + movs r0, #0 + movs r1, #6 + bl sub_080751E8 +_0804BCA0: + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + bne _0804BCBC + bl sub_08052878 + b _0804BCD0 + .align 2, 0 +_0804BCB0: .4byte gLinkEntity +_0804BCB4: .4byte gUnk_03000BF0 +_0804BCB8: .4byte gUnk_08009E88 +_0804BCBC: + movs r0, #0x64 + bl GetProgressFlag + cmp r0, #0 + beq _0804BCD0 + ldr r0, _0804BCD4 @ =gUnk_02033A90 + ldr r1, _0804BCD8 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1b + str r1, [r0] +_0804BCD0: + pop {pc} + .align 2, 0 +_0804BCD4: .4byte gUnk_02033A90 +_0804BCD8: .4byte 0x00000864 + + thumb_func_start sub_0804BCDC +sub_0804BCDC: @ 0x0804BCDC + push {lr} + ldr r0, _0804BCE8 @ =gUnk_0813AB80 + movs r1, #4 + bl sub_0808091C + pop {pc} + .align 2, 0 +_0804BCE8: .4byte gUnk_0813AB80 + + thumb_func_start sub_0804BCEC +sub_0804BCEC: @ 0x0804BCEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_178 +nullsub_178: @ 0x0804BCF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BCF4 +sub_0804BCF4: @ 0x0804BCF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_179 +nullsub_179: @ 0x0804BCF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BCFC +sub_0804BCFC: @ 0x0804BCFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_180 +nullsub_180: @ 0x0804BD00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD04 +sub_0804BD04: @ 0x0804BD04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_181 +nullsub_181: @ 0x0804BD08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD0C +sub_0804BD0C: @ 0x0804BD0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_182 +nullsub_182: @ 0x0804BD10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD14 +sub_0804BD14: @ 0x0804BD14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_183 +nullsub_183: @ 0x0804BD18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD1C +sub_0804BD1C: @ 0x0804BD1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_184 +nullsub_184: @ 0x0804BD20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD24 +sub_0804BD24: @ 0x0804BD24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_185 +nullsub_185: @ 0x0804BD28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD2C +sub_0804BD2C: @ 0x0804BD2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_186 +nullsub_186: @ 0x0804BD30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD34 +sub_0804BD34: @ 0x0804BD34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_187 +nullsub_187: @ 0x0804BD38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD3C +sub_0804BD3C: @ 0x0804BD3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_188 +nullsub_188: @ 0x0804BD40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD44 +sub_0804BD44: @ 0x0804BD44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_189 +nullsub_189: @ 0x0804BD48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BD4C +sub_0804BD4C: @ 0x0804BD4C + movs r0, #1 + bx lr + + thumb_func_start sub_0804BD50 +sub_0804BD50: @ 0x0804BD50 + push {r4, lr} + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _0804BD94 + ldr r4, _0804BD98 @ =0x00004072 + ldr r1, _0804BD9C @ =0x0000014D + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0x86 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + adds r4, #0x1e + movs r1, #0xa6 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xc6 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r0, _0804BDA0 @ =gUnk_080D7D34 + bl LoadRoomEntityList +_0804BD94: + pop {r4, pc} + .align 2, 0 +_0804BD98: .4byte 0x00004072 +_0804BD9C: .4byte 0x0000014D +_0804BDA0: .4byte gUnk_080D7D34 + + thumb_func_start sub_0804BDA4 +sub_0804BDA4: @ 0x0804BDA4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_190 +nullsub_190: @ 0x0804BDA8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDAC +sub_0804BDAC: @ 0x0804BDAC + movs r0, #1 + bx lr + + thumb_func_start nullsub_191 +nullsub_191: @ 0x0804BDB0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDB4 +sub_0804BDB4: @ 0x0804BDB4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_192 +nullsub_192: @ 0x0804BDB8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDBC +sub_0804BDBC: @ 0x0804BDBC + movs r0, #1 + bx lr + + thumb_func_start nullsub_193 +nullsub_193: @ 0x0804BDC0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDC4 +sub_0804BDC4: @ 0x0804BDC4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_194 +nullsub_194: @ 0x0804BDC8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BDCC +sub_0804BDCC: @ 0x0804BDCC + movs r0, #1 + bx lr + + thumb_func_start sub_0804BDD0 +sub_0804BDD0: @ 0x0804BDD0 + push {lr} + movs r0, #3 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804BDE8 + ldr r0, _0804BDE4 @ =gUnk_080D827C + bl LoadRoomEntityList + b _0804BE00 + .align 2, 0 +_0804BDE4: .4byte gUnk_080D827C +_0804BDE8: + bl sub_0805BC4C + movs r0, #0x76 + movs r1, #0x82 + movs r2, #2 + bl sub_0807B314 + movs r0, #0x76 + movs r1, #0x8c + movs r2, #2 + bl sub_0807B314 +_0804BE00: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804BE04 +sub_0804BE04: @ 0x0804BE04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_28 +nullsub_28: @ 0x0804BE08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE0C +sub_0804BE0C: @ 0x0804BE0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_29 +nullsub_29: @ 0x0804BE10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE14 +sub_0804BE14: @ 0x0804BE14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_30 +nullsub_30: @ 0x0804BE18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE1C +sub_0804BE1C: @ 0x0804BE1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_31 +nullsub_31: @ 0x0804BE20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE24 +sub_0804BE24: @ 0x0804BE24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_32 +nullsub_32: @ 0x0804BE28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE2C +sub_0804BE2C: @ 0x0804BE2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_33 +nullsub_33: @ 0x0804BE30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE34 +sub_0804BE34: @ 0x0804BE34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_34 +nullsub_34: @ 0x0804BE38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE3C +sub_0804BE3C: @ 0x0804BE3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_35 +nullsub_35: @ 0x0804BE40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE44 +sub_0804BE44: @ 0x0804BE44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_36 +nullsub_36: @ 0x0804BE48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804BE4C +sub_0804BE4C: @ 0x0804BE4C + movs r0, #1 + bx lr + + thumb_func_start sub_0804BE50 +sub_0804BE50: @ 0x0804BE50 + push {lr} + movs r0, #0x68 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804BE62 + movs r0, #0x68 + bl sub_0807CCB4 +_0804BE62: + movs r0, #0x2f + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BE78 + ldr r0, _0804BE74 @ =gUnk_080D8B24 + bl LoadRoomEntityList + b _0804BEDE + .align 2, 0 +_0804BE74: .4byte gUnk_080D8B24 +_0804BE78: + movs r0, #0x2b + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BE90 + ldr r0, _0804BE8C @ =gUnk_080D8AC4 + bl LoadRoomEntityList + b _0804BEDE + .align 2, 0 +_0804BE8C: .4byte gUnk_080D8AC4 +_0804BE90: + movs r0, #0x26 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BEA8 + ldr r0, _0804BEA4 @ =gUnk_080D8A74 + bl LoadRoomEntityList + b _0804BEDE + .align 2, 0 +_0804BEA4: .4byte gUnk_080D8A74 +_0804BEA8: + movs r0, #0x2a + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BEC0 + ldr r0, _0804BEBC @ =gUnk_080D8A34 + bl LoadRoomEntityList + b _0804BEDE + .align 2, 0 +_0804BEBC: .4byte gUnk_080D8A34 +_0804BEC0: + movs r0, #0x25 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BED8 + ldr r0, _0804BED4 @ =gUnk_080D8A04 + bl LoadRoomEntityList + b _0804BEDE + .align 2, 0 +_0804BED4: .4byte gUnk_080D8A04 +_0804BED8: + ldr r0, _0804BF1C @ =gUnk_080D89E4 + bl LoadRoomEntityList +_0804BEDE: + movs r0, #0x25 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BEF2 + ldr r0, _0804BF20 @ =gUnk_080D8BBC + ldr r1, _0804BF24 @ =0x000007C5 + movs r2, #1 + bl sub_0807BB68 +_0804BEF2: + movs r0, #0x26 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BF06 + ldr r0, _0804BF28 @ =gUnk_080D8BFA + ldr r1, _0804BF2C @ =0x00000503 + movs r2, #1 + bl sub_0807BB68 +_0804BF06: + movs r0, #0x2f + bl sub_0801E7F4 + cmp r0, #0 + beq _0804BF1A + ldr r0, _0804BF30 @ =gUnk_080D8C68 + ldr r1, _0804BF34 @ =0x00000281 + movs r2, #1 + bl sub_0807BB68 +_0804BF1A: + pop {pc} + .align 2, 0 +_0804BF1C: .4byte gUnk_080D89E4 +_0804BF20: .4byte gUnk_080D8BBC +_0804BF24: .4byte 0x000007C5 +_0804BF28: .4byte gUnk_080D8BFA +_0804BF2C: .4byte 0x00000503 +_0804BF30: .4byte gUnk_080D8C68 +_0804BF34: .4byte 0x00000281 + + thumb_func_start sub_0804BF38 +sub_0804BF38: @ 0x0804BF38 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, [r1, #4] + lsls r0, r0, #4 + ldr r1, _0804C000 @ =gUnk_080D8E50 + adds r4, r0, r1 + ldr r0, [r4] + ldrh r1, [r4, #4] + lsrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + ldrh r2, [r4, #6] + lsrs r2, r2, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + movs r2, #1 + bl sub_0807BB68 + ldrh r0, [r4, #8] + mov r8, r0 + movs r5, #0 + cmp r5, r8 + bhs _0804BFE8 + ldr r7, _0804C004 @ =gUnk_03000BF0 + movs r1, #0 + mov sl, r1 + movs r6, #0 + movs r3, #1 + mov sb, r3 +_0804BF7A: + movs r0, #0xf + movs r1, #0xf + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0804BFA6 + ldrh r0, [r7, #6] + ldrh r1, [r4, #4] + adds r0, r0, r1 + adds r0, r0, r6 + strh r0, [r2, #0x2e] + ldrh r1, [r7, #8] + ldrh r3, [r4, #6] + adds r1, r1, r3 + adds r0, r5, #0 + mov r3, sb + ands r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + strh r1, [r2, #0x32] +_0804BFA6: + movs r0, #0xf + movs r1, #0x54 + movs r2, #0 + bl sub_080A2960 + adds r2, r0, #0 + cmp r2, #0 + beq _0804BFE0 + ldrh r0, [r7, #6] + ldrh r1, [r4, #4] + adds r0, r0, r1 + adds r0, r0, r6 + strh r0, [r2, #0x2e] + ldrh r1, [r7, #8] + ldrh r3, [r4, #6] + adds r1, r1, r3 + ldr r0, _0804C008 @ =0x0000FFF4 + adds r1, r1, r0 + adds r0, r5, #0 + mov r3, sb + ands r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + strh r1, [r2, #0x32] + mov r0, sl + strb r0, [r2, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] +_0804BFE0: + adds r6, #0x10 + adds r5, #1 + cmp r5, r8 + blo _0804BF7A +_0804BFE8: + ldrh r0, [r4, #0xa] + ldrh r1, [r4, #0xc] + bl sub_08080964 + ldrh r0, [r4, #0xe] + bl sub_080A3268 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804C000: .4byte gUnk_080D8E50 +_0804C004: .4byte gUnk_03000BF0 +_0804C008: .4byte 0x0000FFF4 + + thumb_func_start sub_0804C00C +sub_0804C00C: @ 0x0804C00C + movs r0, #1 + bx lr + + thumb_func_start nullsub_195 +nullsub_195: @ 0x0804C010 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C014 +sub_0804C014: @ 0x0804C014 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C018 +sub_0804C018: @ 0x0804C018 + push {r4, lr} + movs r0, #0x20 + bl GetProgressFlag + cmp r0, #0 + bne _0804C044 + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #1 + bne _0804C054 + ldr r0, _0804C03C @ =gUnk_080D90C8 + bl LoadRoomEntityList + ldr r0, _0804C040 @ =gUnk_080D9108 + bl LoadRoomEntityList + b _0804C054 + .align 2, 0 +_0804C03C: .4byte gUnk_080D90C8 +_0804C040: .4byte gUnk_080D9108 +_0804C044: + movs r0, #0x21 + bl GetProgressFlag + cmp r0, #0 + bne _0804C054 + ldr r0, _0804C0D0 @ =gUnk_080D9108 + bl LoadRoomEntityList +_0804C054: + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #2 + beq _0804C090 + ldr r0, _0804C0D4 @ =gUnk_080D9098 + bl LoadRoomEntityList + movs r0, #0xbd + lsls r0, r0, #1 + ldr r1, _0804C0D8 @ =0x0000058E + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804C0DC @ =0x0000017B + ldr r1, _0804C0E0 @ =0x0000058F + movs r2, #1 + bl sub_0807B314 + movs r0, #0xbe + lsls r0, r0, #1 + ldr r1, _0804C0E4 @ =0x000005CE + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804C0E8 @ =0x0000017D + ldr r1, _0804C0EC @ =0x000005CF + movs r2, #1 + bl sub_0807B314 +_0804C090: + bl sub_08054570 + bl sub_08059278 + ldr r4, _0804C0F0 @ =0x00004072 + ldr r1, _0804C0F4 @ =0x00000A47 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804C0F8 @ =0x00000C47 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r0, #0x62 + bl GetProgressFlag + cmp r0, #0 + beq _0804C0C8 + ldr r0, _0804C0FC @ =gUnk_030010A0 + ldr r1, [r0, #0x10] + ldr r0, _0804C100 @ =0x02780078 + cmp r1, r0 + bne _0804C0C8 + movs r0, #0x72 + bl sub_080A3268 +_0804C0C8: + movs r0, #0x62 + bl sub_0807CD80 + pop {r4, pc} + .align 2, 0 +_0804C0D0: .4byte gUnk_080D9108 +_0804C0D4: .4byte gUnk_080D9098 +_0804C0D8: .4byte 0x0000058E +_0804C0DC: .4byte 0x0000017B +_0804C0E0: .4byte 0x0000058F +_0804C0E4: .4byte 0x000005CE +_0804C0E8: .4byte 0x0000017D +_0804C0EC: .4byte 0x000005CF +_0804C0F0: .4byte 0x00004072 +_0804C0F4: .4byte 0x00000A47 +_0804C0F8: .4byte 0x00000C47 +_0804C0FC: .4byte gUnk_030010A0 +_0804C100: .4byte 0x02780078 + + thumb_func_start sub_0804C104 +sub_0804C104: @ 0x0804C104 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C108 +sub_0804C108: @ 0x0804C108 + push {lr} + ldr r2, _0804C124 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r2, #0xd] + movs r1, #1 + orrs r0, r1 + strb r0, [r2, #0xd] + bl sub_0804C128 + pop {pc} + .align 2, 0 +_0804C124: .4byte gUnk_02033A90 + + thumb_func_start sub_0804C128 +sub_0804C128: @ 0x0804C128 + push {r4, r5, lr} + movs r0, #0 + bl sub_080AF250 + ldr r0, _0804C15C @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _0804C13A + b _0804C24C +_0804C13A: + ldr r1, _0804C160 @ =gUnk_02033A90 + ldrb r3, [r1, #0xd] + movs r0, #0xe + ands r0, r3 + adds r5, r1, #0 + cmp r0, #0 + bne _0804C164 + movs r0, #0xf0 + ands r0, r3 + cmp r0, #0 + bne _0804C19C + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 + movs r1, #2 + orrs r0, r1 + b _0804C19A + .align 2, 0 +_0804C15C: .4byte gUnk_02034350 +_0804C160: .4byte gUnk_02033A90 +_0804C164: + ldr r2, _0804C18C @ =gUnk_03000BF0 + ldr r1, _0804C190 @ =gUnk_080D9338 + lsls r4, r3, #0x1c + lsrs r0, r4, #0x1d + adds r0, r0, r1 + ldrb r1, [r2, #0x10] + ldrb r0, [r0] + cmp r1, r0 + bne _0804C194 + lsrs r0, r4, #0x1d + adds r0, #1 + movs r1, #7 + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0xf + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r0 + strb r1, [r5, #0xd] + b _0804C19C + .align 2, 0 +_0804C18C: .4byte gUnk_03000BF0 +_0804C190: .4byte gUnk_080D9338 +_0804C194: + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r3 +_0804C19A: + strb r0, [r5, #0xd] +_0804C19C: + ldrb r3, [r5, #0xd] + movs r0, #0xe + ands r0, r3 + cmp r0, #0 + bne _0804C1DE + ldr r2, _0804C1D0 @ =gUnk_03000BF0 + ldr r1, _0804C1D4 @ =gUnk_080D9340 + lsls r4, r3, #0x18 + lsrs r0, r4, #0x1c + adds r0, r0, r1 + ldrb r1, [r2, #0x10] + ldrb r0, [r0] + cmp r1, r0 + bne _0804C1D8 + lsrs r0, r4, #0x1c + adds r0, #1 + lsls r0, r0, #4 + movs r1, #0xf + ands r1, r3 + orrs r1, r0 + movs r0, #0xf + rsbs r0, r0, #0 + ands r1, r0 + strb r1, [r5, #0xd] + b _0804C1DE + .align 2, 0 +_0804C1D0: .4byte gUnk_03000BF0 +_0804C1D4: .4byte gUnk_080D9340 +_0804C1D8: + movs r0, #0xf + ands r0, r3 + strb r0, [r5, #0xd] +_0804C1DE: + adds r4, r5, #0 + ldrb r1, [r4, #0xd] + movs r0, #0xe + ands r0, r1 + cmp r0, #0xc + bne _0804C206 + movs r0, #1 + bl sub_080AF250 + movs r0, #0x62 + bl sub_0807CD04 + bl sub_0804C290 + ldrb r1, [r4, #0xd] + movs r0, #0xf + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0xd] + b _0804C254 +_0804C206: + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x60 + bne _0804C250 + movs r0, #1 + bl sub_080AF250 + movs r0, #0x5c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C228 + ldr r1, _0804C244 @ =0x00000107 + movs r0, #0x73 + movs r2, #1 + bl sub_0807B314 +_0804C228: + ldr r0, _0804C248 @ =gUnk_080D9328 + bl sub_0804B1AC + movs r0, #0x62 + bl sub_0807CD04 + bl sub_0804C290 + ldrb r1, [r5, #0xd] + movs r0, #0xf + ands r0, r1 + strb r0, [r5, #0xd] + b _0804C254 + .align 2, 0 +_0804C244: .4byte 0x00000107 +_0804C248: .4byte gUnk_080D9328 +_0804C24C: + bl sub_0804C258 +_0804C250: + bl sub_0804C290 +_0804C254: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0804C258 +sub_0804C258: @ 0x0804C258 + push {lr} + ldr r3, _0804C288 @ =gUnk_02033A90 + ldrb r0, [r3, #0xd] + movs r2, #0xf + rsbs r2, r2, #0 + ands r2, r0 + movs r0, #2 + orrs r2, r0 + movs r0, #0xf + ands r2, r0 + strb r2, [r3, #0xd] + ldr r0, _0804C28C @ =gUnk_030010A0 + ldrb r0, [r0, #0xe] + cmp r0, #4 + bne _0804C284 + movs r1, #0xe + adds r0, r2, #0 + orrs r0, r1 + strb r0, [r3, #0xd] + movs r0, #1 + bl sub_080AF250 +_0804C284: + pop {pc} + .align 2, 0 +_0804C288: .4byte gUnk_02033A90 +_0804C28C: .4byte gUnk_030010A0 + + thumb_func_start sub_0804C290 +sub_0804C290: @ 0x0804C290 + push {lr} + ldr r0, _0804C2B4 @ =gUnk_02033A90 + ldrb r1, [r0, #0xd] + movs r0, #0xe + ands r0, r1 + cmp r0, #0 + beq _0804C2B2 + lsls r1, r1, #0x1c + lsrs r1, r1, #0x1d + lsls r1, r1, #2 + ldr r0, _0804C2B8 @ =gUnk_080D9348 + adds r1, r1, r0 + ldrh r0, [r1] + ldrh r1, [r1, #2] + movs r2, #1 + bl sub_0807B314 +_0804C2B2: + pop {pc} + .align 2, 0 +_0804C2B4: .4byte gUnk_02033A90 +_0804C2B8: .4byte gUnk_080D9348 + + thumb_func_start sub_0804C2BC +sub_0804C2BC: @ 0x0804C2BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_196 +nullsub_196: @ 0x0804C2C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C2C4 +sub_0804C2C4: @ 0x0804C2C4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_197 +nullsub_197: @ 0x0804C2C8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C2CC +sub_0804C2CC: @ 0x0804C2CC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C2D0 +sub_0804C2D0: @ 0x0804C2D0 + push {lr} + movs r0, #0 + bl sub_08058324 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804C2DC +sub_0804C2DC: @ 0x0804C2DC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C2E0 +sub_0804C2E0: @ 0x0804C2E0 + push {lr} + movs r0, #1 + bl sub_08058324 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804C2EC +sub_0804C2EC: @ 0x0804C2EC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C2F0 +sub_0804C2F0: @ 0x0804C2F0 + push {lr} + movs r0, #2 + bl sub_08058324 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0804C312 + movs r0, #0x2a + bl GetProgressFlag + cmp r0, #0 + bne _0804C312 + ldr r0, _0804C314 @ =gUnk_080D9800 + bl LoadRoomEntityList +_0804C312: + pop {pc} + .align 2, 0 +_0804C314: .4byte gUnk_080D9800 + + thumb_func_start sub_0804C318 +sub_0804C318: @ 0x0804C318 + push {lr} + bl sub_0804C2F0 + pop {pc} + + thumb_func_start sub_0804C320 +sub_0804C320: @ 0x0804C320 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C324 +sub_0804C324: @ 0x0804C324 + push {lr} + movs r0, #3 + bl sub_08058324 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804C330 +sub_0804C330: @ 0x0804C330 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C334 +sub_0804C334: @ 0x0804C334 + push {lr} + movs r0, #0x1e + bl sub_0807CD04 + movs r0, #0x5b + bl sub_0801E7F4 + cmp r0, #0 + beq _0804C34C + ldr r0, _0804C374 @ =gUnk_080D9CC8 + bl LoadRoomEntityList +_0804C34C: + ldr r0, _0804C378 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + bne _0804C360 + ldr r0, _0804C37C @ =gUnk_080D9CE8 + bl LoadRoomEntityList +_0804C360: + movs r0, #0x15 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C370 + ldr r0, _0804C380 @ =gUnk_080D9C38 + bl LoadRoomEntityList +_0804C370: + pop {pc} + .align 2, 0 +_0804C374: .4byte gUnk_080D9CC8 +_0804C378: .4byte gUnk_02002A40 +_0804C37C: .4byte gUnk_080D9CE8 +_0804C380: .4byte gUnk_080D9C38 + + thumb_func_start sub_0804C384 +sub_0804C384: @ 0x0804C384 + push {lr} + ldr r0, _0804C39C @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x16 + ands r0, r1 + cmp r0, #0 + bne _0804C39A + ldr r0, _0804C3A0 @ =gUnk_080D9CE8 + bl LoadRoomEntityList +_0804C39A: + pop {pc} + .align 2, 0 +_0804C39C: .4byte gUnk_02002A40 +_0804C3A0: .4byte gUnk_080D9CE8 + + thumb_func_start sub_0804C3A4 +sub_0804C3A4: @ 0x0804C3A4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_198 +nullsub_198: @ 0x0804C3A8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3AC +sub_0804C3AC: @ 0x0804C3AC + movs r0, #1 + bx lr + + thumb_func_start nullsub_199 +nullsub_199: @ 0x0804C3B0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3B4 +sub_0804C3B4: @ 0x0804C3B4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_200 +nullsub_200: @ 0x0804C3B8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3BC +sub_0804C3BC: @ 0x0804C3BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_201 +nullsub_201: @ 0x0804C3C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3C4 +sub_0804C3C4: @ 0x0804C3C4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_202 +nullsub_202: @ 0x0804C3C8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3CC +sub_0804C3CC: @ 0x0804C3CC + push {lr} + movs r0, #0x39 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C3DE + ldr r1, _0804C3E4 @ =gUnk_02034350 + ldr r0, _0804C3E8 @ =gUnk_080DA230 + str r0, [r1, #0x6c] +_0804C3DE: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804C3E4: .4byte gUnk_02034350 +_0804C3E8: .4byte gUnk_080DA230 + + thumb_func_start nullsub_203 +nullsub_203: @ 0x0804C3EC + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3F0 +sub_0804C3F0: @ 0x0804C3F0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_204 +nullsub_204: @ 0x0804C3F4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C3F8 +sub_0804C3F8: @ 0x0804C3F8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_205 +nullsub_205: @ 0x0804C3FC + bx lr + .align 2, 0 + + thumb_func_start sub_0804C400 +sub_0804C400: @ 0x0804C400 + movs r0, #1 + bx lr + + thumb_func_start nullsub_206 +nullsub_206: @ 0x0804C404 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C408 +sub_0804C408: @ 0x0804C408 + movs r0, #1 + bx lr + + thumb_func_start nullsub_207 +nullsub_207: @ 0x0804C40C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C410 +sub_0804C410: @ 0x0804C410 + movs r0, #1 + bx lr + + thumb_func_start nullsub_208 +nullsub_208: @ 0x0804C414 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C418 +sub_0804C418: @ 0x0804C418 + movs r0, #1 + bx lr + + thumb_func_start nullsub_209 +nullsub_209: @ 0x0804C41C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C420 +sub_0804C420: @ 0x0804C420 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C424 +sub_0804C424: @ 0x0804C424 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C42C +sub_0804C42C: @ 0x0804C42C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C430 +sub_0804C430: @ 0x0804C430 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C438 +sub_0804C438: @ 0x0804C438 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C43C +sub_0804C43C: @ 0x0804C43C + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C444 +sub_0804C444: @ 0x0804C444 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C448 +sub_0804C448: @ 0x0804C448 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C450 +sub_0804C450: @ 0x0804C450 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C454 +sub_0804C454: @ 0x0804C454 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C45C +sub_0804C45C: @ 0x0804C45C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C460 +sub_0804C460: @ 0x0804C460 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C468 +sub_0804C468: @ 0x0804C468 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C46C +sub_0804C46C: @ 0x0804C46C + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C474 +sub_0804C474: @ 0x0804C474 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C478 +sub_0804C478: @ 0x0804C478 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C480 +sub_0804C480: @ 0x0804C480 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C484 +sub_0804C484: @ 0x0804C484 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C48C +sub_0804C48C: @ 0x0804C48C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C490 +sub_0804C490: @ 0x0804C490 + push {r4, lr} + movs r0, #0x5b + bl sub_0807CA84 + cmp r0, #0 + bne _0804C4A8 + ldr r0, _0804C4A4 @ =gUnk_080DAB44 + bl LoadRoomEntityList + b _0804C4AE + .align 2, 0 +_0804C4A4: .4byte gUnk_080DAB44 +_0804C4A8: + ldr r0, _0804C4D8 @ =gUnk_080DAB64 + bl LoadRoomEntityList +_0804C4AE: + movs r0, #0x54 + bl GetProgressFlag + cmp r0, #0 + beq _0804C4F0 + bl sub_08060354 + cmp r0, #0 + beq _0804C4F0 + movs r0, #0 + bl sub_0807CD10 + movs r0, #0x3b + bl GetProgressFlag + cmp r0, #0 + bne _0804C4DC + movs r4, #0xc8 + lsls r4, r4, #6 + b _0804C522 + .align 2, 0 +_0804C4D8: .4byte gUnk_080DAB64 +_0804C4DC: + movs r0, #0x3c + bl GetProgressFlag + movs r4, #0x91 + lsls r4, r4, #7 + cmp r0, #0 + bne _0804C522 + movs r4, #0x8c + lsls r4, r4, #7 + b _0804C522 +_0804C4F0: + movs r0, #0x3d + bl GetProgressFlag + cmp r0, #0 + beq _0804C500 + movs r4, #0x92 + lsls r4, r4, #7 + b _0804C522 +_0804C500: + movs r0, #0x3c + bl GetProgressFlag + cmp r0, #0 + beq _0804C510 + movs r4, #0x94 + lsls r4, r4, #7 + b _0804C522 +_0804C510: + movs r0, #0x3b + bl GetProgressFlag + movs r4, #0x92 + lsls r4, r4, #8 + cmp r0, #0 + beq _0804C522 + movs r4, #0xa4 + lsls r4, r4, #7 +_0804C522: + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r4 + cmp r0, #0 + beq _0804C532 + ldr r0, _0804C5B8 @ =gUnk_080DAB84 + bl LoadRoomEntityList +_0804C532: + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r4 + cmp r0, #0 + beq _0804C542 + ldr r0, _0804C5BC @ =gUnk_080DAC54 + bl LoadRoomEntityList +_0804C542: + movs r0, #0x80 + lsls r0, r0, #6 + ands r0, r4 + cmp r0, #0 + beq _0804C552 + ldr r0, _0804C5C0 @ =gUnk_080DAD24 + bl LoadRoomEntityList +_0804C552: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r4 + cmp r0, #0 + beq _0804C562 + ldr r0, _0804C5C4 @ =gUnk_080DABC4 + bl LoadRoomEntityList +_0804C562: + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0804C572 + ldr r0, _0804C5C8 @ =gUnk_080DAC94 + bl LoadRoomEntityList +_0804C572: + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r4 + cmp r0, #0 + beq _0804C582 + ldr r0, _0804C5CC @ =gUnk_080DAD64 + bl LoadRoomEntityList +_0804C582: + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r4 + cmp r0, #0 + beq _0804C592 + ldr r0, _0804C5D0 @ =gUnk_080DAC04 + bl LoadRoomEntityList +_0804C592: + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0804C5A2 + ldr r0, _0804C5D4 @ =gUnk_080DACD4 + bl LoadRoomEntityList +_0804C5A2: + movs r0, #0x80 + ands r4, r0 + cmp r4, #0 + beq _0804C5B0 + ldr r0, _0804C5D8 @ =gUnk_080DADA4 + bl LoadRoomEntityList +_0804C5B0: + bl sub_0801AFE4 + pop {r4, pc} + .align 2, 0 +_0804C5B8: .4byte gUnk_080DAB84 +_0804C5BC: .4byte gUnk_080DAC54 +_0804C5C0: .4byte gUnk_080DAD24 +_0804C5C4: .4byte gUnk_080DABC4 +_0804C5C8: .4byte gUnk_080DAC94 +_0804C5CC: .4byte gUnk_080DAD64 +_0804C5D0: .4byte gUnk_080DAC04 +_0804C5D4: .4byte gUnk_080DACD4 +_0804C5D8: .4byte gUnk_080DADA4 + + thumb_func_start sub_0804C5DC +sub_0804C5DC: @ 0x0804C5DC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C5E0 +sub_0804C5E0: @ 0x0804C5E0 + push {lr} + movs r0, #0x56 + bl GetProgressFlag + cmp r0, #0 + beq _0804C5F2 + ldr r0, _0804C5F8 @ =gUnk_080DAEE8 + bl LoadRoomEntityList +_0804C5F2: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C5F8: .4byte gUnk_080DAEE8 + + thumb_func_start sub_0804C5FC +sub_0804C5FC: @ 0x0804C5FC + movs r0, #1 + bx lr + + thumb_func_start sub_0804C600 +sub_0804C600: @ 0x0804C600 + push {lr} + movs r0, #0x56 + bl GetProgressFlag + cmp r0, #0 + beq _0804C612 + ldr r0, _0804C618 @ =gUnk_080DAF80 + bl LoadRoomEntityList +_0804C612: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C618: .4byte gUnk_080DAF80 + + thumb_func_start sub_0804C61C +sub_0804C61C: @ 0x0804C61C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C620 +sub_0804C620: @ 0x0804C620 + push {lr} + movs r0, #0x56 + bl GetProgressFlag + cmp r0, #0 + beq _0804C632 + ldr r0, _0804C638 @ =gUnk_080DB018 + bl LoadRoomEntityList +_0804C632: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C638: .4byte gUnk_080DB018 + + thumb_func_start sub_0804C63C +sub_0804C63C: @ 0x0804C63C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C640 +sub_0804C640: @ 0x0804C640 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C648 +sub_0804C648: @ 0x0804C648 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C64C +sub_0804C64C: @ 0x0804C64C + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C654 +sub_0804C654: @ 0x0804C654 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C658 +sub_0804C658: @ 0x0804C658 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C660 +sub_0804C660: @ 0x0804C660 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C664 +sub_0804C664: @ 0x0804C664 + push {lr} + ldr r0, _0804C67C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #8 + bls _0804C674 + ldr r0, _0804C680 @ =gUnk_080DB238 + bl LoadRoomEntityList +_0804C674: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C67C: .4byte gUnk_02002A40 +_0804C680: .4byte gUnk_080DB238 + + thumb_func_start sub_0804C684 +sub_0804C684: @ 0x0804C684 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C688 +sub_0804C688: @ 0x0804C688 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C690 +sub_0804C690: @ 0x0804C690 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C694 +sub_0804C694: @ 0x0804C694 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C69C +sub_0804C69C: @ 0x0804C69C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C6A0 +sub_0804C6A0: @ 0x0804C6A0 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C6A8 +sub_0804C6A8: @ 0x0804C6A8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C6AC +sub_0804C6AC: @ 0x0804C6AC + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C6B4 +sub_0804C6B4: @ 0x0804C6B4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C6B8 +sub_0804C6B8: @ 0x0804C6B8 + push {lr} + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C6E4 + movs r0, #0x3b + bl sub_0807CA84 + cmp r0, #0 + bne _0804C6E4 + movs r0, #0x71 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804C6E4 + ldr r0, _0804C6E0 @ =gUnk_080DB4D0 + bl LoadRoomEntityList + b _0804C6EA + .align 2, 0 +_0804C6E0: .4byte gUnk_080DB4D0 +_0804C6E4: + ldr r0, _0804C6F0 @ =gUnk_080DB4A0 + bl LoadRoomEntityList +_0804C6EA: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C6F0: .4byte gUnk_080DB4A0 + + thumb_func_start sub_0804C6F4 +sub_0804C6F4: @ 0x0804C6F4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C6F8 +sub_0804C6F8: @ 0x0804C6F8 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C700 +sub_0804C700: @ 0x0804C700 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C704 +sub_0804C704: @ 0x0804C704 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C70C +sub_0804C70C: @ 0x0804C70C + movs r0, #1 + bx lr + + thumb_func_start sub_0804C710 +sub_0804C710: @ 0x0804C710 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C718 +sub_0804C718: @ 0x0804C718 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C71C +sub_0804C71C: @ 0x0804C71C + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C724 +sub_0804C724: @ 0x0804C724 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C728 +sub_0804C728: @ 0x0804C728 + push {lr} + bl sub_0801AFE4 + pop {pc} + + thumb_func_start sub_0804C730 +sub_0804C730: @ 0x0804C730 + push {lr} + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0804C74C + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C74C + ldr r1, _0804C750 @ =gUnk_02034350 + ldr r0, _0804C754 @ =gUnk_080DB910 + str r0, [r1, #0x70] +_0804C74C: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804C750: .4byte gUnk_02034350 +_0804C754: .4byte gUnk_080DB910 + + thumb_func_start sub_0804C758 +sub_0804C758: @ 0x0804C758 + push {lr} + ldr r0, _0804C780 @ =gUnk_080DB8F0 + bl LoadRoomEntityList + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C77A + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0804C77A + ldr r0, _0804C784 @ =gUnk_080DB820 + bl LoadRoomEntityList +_0804C77A: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C780: .4byte gUnk_080DB8F0 +_0804C784: .4byte gUnk_080DB820 + + thumb_func_start sub_0804C788 +sub_0804C788: @ 0x0804C788 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C78C +sub_0804C78C: @ 0x0804C78C + push {lr} + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C7A2 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C7A8 +_0804C7A2: + ldr r0, _0804C7B0 @ =gUnk_080DBA08 + bl LoadRoomEntityList +_0804C7A8: + bl sub_0801AFE4 + pop {pc} + .align 2, 0 +_0804C7B0: .4byte gUnk_080DBA08 + + thumb_func_start sub_0804C7B4 +sub_0804C7B4: @ 0x0804C7B4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C7B8 +sub_0804C7B8: @ 0x0804C7B8 + push {r4, r5, lr} + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C7CA + ldr r0, _0804C7E4 @ =gUnk_080DBB50 + bl LoadRoomEntityList +_0804C7CA: + movs r0, #0x15 + bl sub_0807CA84 + cmp r0, #1 + bne _0804C7F0 + ldr r0, _0804C7E8 @ =gUnk_080DBB70 + bl LoadRoomEntityList + ldr r0, _0804C7EC @ =gUnk_080DBB10 + bl LoadRoomEntityList + b _0804C7F6 + .align 2, 0 +_0804C7E4: .4byte gUnk_080DBB50 +_0804C7E8: .4byte gUnk_080DBB70 +_0804C7EC: .4byte gUnk_080DBB10 +_0804C7F0: + ldr r0, _0804C824 @ =gUnk_080DBAD0 + bl LoadRoomEntityList +_0804C7F6: + movs r0, #0x62 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C818 + movs r5, #0xa0 + lsls r5, r5, #1 + movs r4, #0 +_0804C806: + ldr r0, _0804C828 @ =0x00004072 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + adds r4, #1 + adds r5, #1 + cmp r4, #0x12 + bls _0804C806 +_0804C818: + ldr r0, _0804C82C @ =gUnk_080DBB90 + bl LoadRoomEntityList + bl sub_0801AFE4 + pop {r4, r5, pc} + .align 2, 0 +_0804C824: .4byte gUnk_080DBAD0 +_0804C828: .4byte 0x00004072 +_0804C82C: .4byte gUnk_080DBB90 + + thumb_func_start sub_0804C830 +sub_0804C830: @ 0x0804C830 + movs r0, #1 + bx lr + + thumb_func_start nullsub_210 +nullsub_210: @ 0x0804C834 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C838 +sub_0804C838: @ 0x0804C838 + movs r0, #1 + bx lr + + thumb_func_start nullsub_211 +nullsub_211: @ 0x0804C83C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C840 +sub_0804C840: @ 0x0804C840 + movs r0, #1 + bx lr + + thumb_func_start nullsub_212 +nullsub_212: @ 0x0804C844 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C848 +sub_0804C848: @ 0x0804C848 + movs r0, #1 + bx lr + + thumb_func_start nullsub_213 +nullsub_213: @ 0x0804C84C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C850 +sub_0804C850: @ 0x0804C850 + movs r0, #1 + bx lr + + thumb_func_start nullsub_214 +nullsub_214: @ 0x0804C854 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C858 +sub_0804C858: @ 0x0804C858 + movs r0, #1 + bx lr + + thumb_func_start nullsub_215 +nullsub_215: @ 0x0804C85C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C860 +sub_0804C860: @ 0x0804C860 + movs r0, #1 + bx lr + + thumb_func_start nullsub_216 +nullsub_216: @ 0x0804C864 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C868 +sub_0804C868: @ 0x0804C868 + movs r0, #1 + bx lr + + thumb_func_start nullsub_217 +nullsub_217: @ 0x0804C86C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C870 +sub_0804C870: @ 0x0804C870 + movs r0, #1 + bx lr + + thumb_func_start nullsub_218 +nullsub_218: @ 0x0804C874 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C878 +sub_0804C878: @ 0x0804C878 + movs r0, #1 + bx lr + + thumb_func_start nullsub_219 +nullsub_219: @ 0x0804C87C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C880 +sub_0804C880: @ 0x0804C880 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C884 +sub_0804C884: @ 0x0804C884 + push {lr} + movs r0, #0x5b + bl sub_0807CA84 + cmp r0, #0 + bne _0804C8B4 + ldr r0, _0804C8AC @ =gUnk_080DC390 + bl LoadRoomEntityList + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x80 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0804C8CA + ldr r0, _0804C8B0 @ =gUnk_080DC3F0 + bl LoadRoomEntityList + b _0804C8CA + .align 2, 0 +_0804C8AC: .4byte gUnk_080DC390 +_0804C8B0: .4byte gUnk_080DC3F0 +_0804C8B4: + ldr r0, _0804C900 @ =gUnk_080DC430 + bl LoadRoomEntityList + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C8CA + ldr r0, _0804C904 @ =gUnk_080DC530 + bl LoadRoomEntityList +_0804C8CA: + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x83 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0804C8E8 + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + beq _0804C8E8 + ldr r0, _0804C908 @ =gUnk_080DC470 + bl LoadRoomEntityList +_0804C8E8: + movs r0, #0x8d + bl sub_0807CBD0 + cmp r0, #0 + bne _0804C8F8 + ldr r0, _0804C90C @ =gUnk_080DC4C0 + bl LoadRoomEntityList +_0804C8F8: + bl sub_08057E64 + pop {pc} + .align 2, 0 +_0804C900: .4byte gUnk_080DC430 +_0804C904: .4byte gUnk_080DC530 +_0804C908: .4byte gUnk_080DC470 +_0804C90C: .4byte gUnk_080DC4C0 + + thumb_func_start sub_0804C910 +sub_0804C910: @ 0x0804C910 + movs r0, #1 + bx lr + + thumb_func_start nullsub_220 +nullsub_220: @ 0x0804C914 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C918 +sub_0804C918: @ 0x0804C918 + push {r4, r5, lr} + ldr r4, _0804C940 @ =gUnk_086D4460 + movs r1, #0xc0 + lsls r1, r1, #0x13 + movs r5, #0x80 + lsls r5, r5, #7 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08000E96 + adds r4, r4, r5 + ldr r1, _0804C944 @ =0x06008000 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_08000E96 + movs r0, #0x19 + bl sub_0801D714 + pop {r4, r5, pc} + .align 2, 0 +_0804C940: .4byte gUnk_086D4460 +_0804C944: .4byte 0x06008000 + + thumb_func_start sub_0804C948 +sub_0804C948: @ 0x0804C948 + movs r0, #1 + bx lr + + thumb_func_start nullsub_221 +nullsub_221: @ 0x0804C94C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C950 +sub_0804C950: @ 0x0804C950 + movs r0, #1 + bx lr + + thumb_func_start nullsub_222 +nullsub_222: @ 0x0804C954 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C958 +sub_0804C958: @ 0x0804C958 + movs r0, #1 + bx lr + + thumb_func_start nullsub_223 +nullsub_223: @ 0x0804C95C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C960 +sub_0804C960: @ 0x0804C960 + movs r0, #1 + bx lr + + thumb_func_start nullsub_224 +nullsub_224: @ 0x0804C964 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C968 +sub_0804C968: @ 0x0804C968 + movs r0, #1 + bx lr + + thumb_func_start nullsub_225 +nullsub_225: @ 0x0804C96C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C970 +sub_0804C970: @ 0x0804C970 + movs r0, #1 + bx lr + + thumb_func_start nullsub_226 +nullsub_226: @ 0x0804C974 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C978 +sub_0804C978: @ 0x0804C978 + movs r0, #1 + bx lr + + thumb_func_start nullsub_227 +nullsub_227: @ 0x0804C97C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C980 +sub_0804C980: @ 0x0804C980 + movs r0, #1 + bx lr + + thumb_func_start nullsub_228 +nullsub_228: @ 0x0804C984 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C988 +sub_0804C988: @ 0x0804C988 + movs r0, #1 + bx lr + + thumb_func_start nullsub_229 +nullsub_229: @ 0x0804C98C + bx lr + .align 2, 0 + + thumb_func_start sub_0804C990 +sub_0804C990: @ 0x0804C990 + movs r0, #1 + bx lr + + thumb_func_start nullsub_230 +nullsub_230: @ 0x0804C994 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C998 +sub_0804C998: @ 0x0804C998 + movs r0, #1 + bx lr + + thumb_func_start sub_0804C99C +sub_0804C99C: @ 0x0804C99C + push {lr} + movs r0, #9 + bl sub_0807CA84 + cmp r0, #0 + bne _0804C9AE + ldr r0, _0804C9B0 @ =gUnk_080DCB10 + bl LoadRoomEntityList +_0804C9AE: + pop {pc} + .align 2, 0 +_0804C9B0: .4byte gUnk_080DCB10 + + thumb_func_start sub_0804C9B4 +sub_0804C9B4: @ 0x0804C9B4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_231 +nullsub_231: @ 0x0804C9B8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9BC +sub_0804C9BC: @ 0x0804C9BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_232 +nullsub_232: @ 0x0804C9C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9C4 +sub_0804C9C4: @ 0x0804C9C4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_233 +nullsub_233: @ 0x0804C9C8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9CC +sub_0804C9CC: @ 0x0804C9CC + movs r0, #1 + bx lr + + thumb_func_start nullsub_234 +nullsub_234: @ 0x0804C9D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9D4 +sub_0804C9D4: @ 0x0804C9D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_235 +nullsub_235: @ 0x0804C9D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9DC +sub_0804C9DC: @ 0x0804C9DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_236 +nullsub_236: @ 0x0804C9E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9E4 +sub_0804C9E4: @ 0x0804C9E4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_237 +nullsub_237: @ 0x0804C9E8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9EC +sub_0804C9EC: @ 0x0804C9EC + movs r0, #1 + bx lr + + thumb_func_start nullsub_238 +nullsub_238: @ 0x0804C9F0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9F4 +sub_0804C9F4: @ 0x0804C9F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_239 +nullsub_239: @ 0x0804C9F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804C9FC +sub_0804C9FC: @ 0x0804C9FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_240 +nullsub_240: @ 0x0804CA00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CA04 +sub_0804CA04: @ 0x0804CA04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_241 +nullsub_241: @ 0x0804CA08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CA0C +sub_0804CA0C: @ 0x0804CA0C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CA10 +sub_0804CA10: @ 0x0804CA10 + push {lr} + movs r0, #0x56 + bl GetProgressFlag + cmp r0, #0 + bne _0804CA22 + ldr r0, _0804CA34 @ =gUnk_080DD214 + bl LoadRoomEntityList +_0804CA22: + movs r0, #0x7f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CA3C + ldr r0, _0804CA38 @ =gUnk_080DD274 + bl LoadRoomEntityList + b _0804CA42 + .align 2, 0 +_0804CA34: .4byte gUnk_080DD214 +_0804CA38: .4byte gUnk_080DD274 +_0804CA3C: + ldr r0, _0804CA4C @ =gUnk_080DD294 + bl LoadRoomEntityList +_0804CA42: + movs r0, #0x8e + bl sub_0807CCB4 + pop {pc} + .align 2, 0 +_0804CA4C: .4byte gUnk_080DD294 + + thumb_func_start sub_0804CA50 +sub_0804CA50: @ 0x0804CA50 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CA54 +sub_0804CA54: @ 0x0804CA54 + push {lr} + ldr r0, _0804CA6C @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + bne _0804CA6A + ldr r0, _0804CA70 @ =gUnk_080DD364 + bl LoadRoomEntityList +_0804CA6A: + pop {pc} + .align 2, 0 +_0804CA6C: .4byte gUnk_02002A40 +_0804CA70: .4byte gUnk_080DD364 + + thumb_func_start sub_0804CA74 +sub_0804CA74: @ 0x0804CA74 + push {lr} + ldr r0, _0804CA8C @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x13 + ands r0, r1 + cmp r0, #0 + bne _0804CA8A + ldr r0, _0804CA90 @ =gUnk_080DD364 + bl LoadRoomEntityList +_0804CA8A: + pop {pc} + .align 2, 0 +_0804CA8C: .4byte gUnk_02002A40 +_0804CA90: .4byte gUnk_080DD364 + + thumb_func_start sub_0804CA94 +sub_0804CA94: @ 0x0804CA94 + movs r0, #1 + bx lr + + thumb_func_start nullsub_242 +nullsub_242: @ 0x0804CA98 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CA9C +sub_0804CA9C: @ 0x0804CA9C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CAA0 +sub_0804CAA0: @ 0x0804CAA0 + push {lr} + movs r0, #0x24 + bl GetProgressFlag + cmp r0, #0 + beq _0804CAB2 + ldr r0, _0804CAC4 @ =0x000006DE + bl sub_0809F814 +_0804CAB2: + movs r0, #0xf3 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804CAC8 + movs r0, #0xe0 + bl sub_0809F814 + b _0804CACE + .align 2, 0 +_0804CAC4: .4byte 0x000006DE +_0804CAC8: + ldr r0, _0804CAE0 @ =gUnk_080DD7E0 + bl LoadRoomEntityList +_0804CACE: + movs r0, #0xf5 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804CAE8 + ldr r0, _0804CAE4 @ =0x00000BA3 + bl sub_0809F814 + b _0804CAEE + .align 2, 0 +_0804CAE0: .4byte gUnk_080DD7E0 +_0804CAE4: .4byte 0x00000BA3 +_0804CAE8: + ldr r0, _0804CAF0 @ =gUnk_080DD840 + bl LoadRoomEntityList +_0804CAEE: + pop {pc} + .align 2, 0 +_0804CAF0: .4byte gUnk_080DD840 + + thumb_func_start sub_0804CAF4 +sub_0804CAF4: @ 0x0804CAF4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CAF8 +sub_0804CAF8: @ 0x0804CAF8 + push {lr} + bl sub_080300E8 + movs r0, #0x24 + bl sub_0807CCB4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804CB08 +sub_0804CB08: @ 0x0804CB08 + movs r0, #1 + bx lr + + thumb_func_start nullsub_37 +nullsub_37: @ 0x0804CB0C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CB10 +sub_0804CB10: @ 0x0804CB10 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CB14 +sub_0804CB14: @ 0x0804CB14 + push {lr} + movs r0, #0x41 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804CB26 + ldr r0, _0804CB28 @ =gUnk_080DDE88 + bl LoadRoomEntityList +_0804CB26: + pop {pc} + .align 2, 0 +_0804CB28: .4byte gUnk_080DDE88 + + thumb_func_start sub_0804CB2C +sub_0804CB2C: @ 0x0804CB2C + push {lr} + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0x27 + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _0804CB42 + movs r0, #0x85 + bl sub_08059340 +_0804CB42: + pop {pc} + + thumb_func_start sub_0804CB44 +sub_0804CB44: @ 0x0804CB44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_38 +nullsub_38: @ 0x0804CB48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CB4C +sub_0804CB4C: @ 0x0804CB4C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CB50 +sub_0804CB50: @ 0x0804CB50 + push {lr} + bl sub_080300E8 + movs r0, #4 + bl GetProgressFlag + cmp r0, #0 + beq _0804CB70 + movs r0, #3 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CB70 + ldr r0, _0804CB74 @ =gUnk_080DE008 + bl LoadRoomEntityList +_0804CB70: + pop {pc} + .align 2, 0 +_0804CB74: .4byte gUnk_080DE008 + + thumb_func_start sub_0804CB78 +sub_0804CB78: @ 0x0804CB78 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CB7C +sub_0804CB7C: @ 0x0804CB7C + push {lr} + bl sub_080300E8 + movs r0, #0x30 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CB92 + ldr r0, _0804CBA4 @ =gUnk_080DE1E0 + bl LoadRoomEntityList +_0804CB92: + movs r0, #0x31 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CBA2 + ldr r0, _0804CBA8 @ =gUnk_080DE200 + bl LoadRoomEntityList +_0804CBA2: + pop {pc} + .align 2, 0 +_0804CBA4: .4byte gUnk_080DE1E0 +_0804CBA8: .4byte gUnk_080DE200 + + thumb_func_start sub_0804CBAC +sub_0804CBAC: @ 0x0804CBAC + movs r0, #1 + bx lr + + thumb_func_start sub_0804CBB0 +sub_0804CBB0: @ 0x0804CBB0 + push {lr} + ldr r0, _0804CBD8 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + ldr r2, _0804CBDC @ =gUnk_03000BF0 + ldrh r0, [r2, #8] + subs r1, r1, r0 + ldrh r0, [r2, #0x20] + lsrs r0, r0, #1 + cmp r1, r0 + bge _0804CBD6 + movs r0, #0x17 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CBD6 + ldr r0, _0804CBE0 @ =gUnk_080DE4C8 + bl LoadRoomEntityList +_0804CBD6: + pop {pc} + .align 2, 0 +_0804CBD8: .4byte gLinkEntity +_0804CBDC: .4byte gUnk_03000BF0 +_0804CBE0: .4byte gUnk_080DE4C8 + + thumb_func_start sub_0804CBE4 +sub_0804CBE4: @ 0x0804CBE4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_243 +nullsub_243: @ 0x0804CBE8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CBEC +sub_0804CBEC: @ 0x0804CBEC + movs r0, #1 + bx lr + + thumb_func_start sub_0804CBF0 +sub_0804CBF0: @ 0x0804CBF0 + push {lr} + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CC08 + ldr r0, _0804CC04 @ =gUnk_080DE814 + bl LoadRoomEntityList + b _0804CC4A + .align 2, 0 +_0804CC04: .4byte gUnk_080DE814 +_0804CC08: + movs r0, #0x4c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CC2C + ldr r0, _0804CC24 @ =gUnk_080DE834 + bl LoadRoomEntityList + ldr r1, _0804CC28 @ =0x00000285 + movs r0, #0x79 + movs r2, #1 + bl sub_0807B314 + b _0804CC4A + .align 2, 0 +_0804CC24: .4byte gUnk_080DE834 +_0804CC28: .4byte 0x00000285 +_0804CC2C: + ldr r1, _0804CC4C @ =0x00000285 + movs r0, #0x7a + movs r2, #1 + bl sub_0807B314 + movs r0, #0x24 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804CC4A + ldr r1, _0804CC50 @ =0x00000205 + movs r0, #0x73 + movs r2, #1 + bl sub_0807B314 +_0804CC4A: + pop {pc} + .align 2, 0 +_0804CC4C: .4byte 0x00000285 +_0804CC50: .4byte 0x00000205 + + thumb_func_start sub_0804CC54 +sub_0804CC54: @ 0x0804CC54 + movs r0, #1 + bx lr + + thumb_func_start nullsub_244 +nullsub_244: @ 0x0804CC58 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CC5C +sub_0804CC5C: @ 0x0804CC5C + movs r0, #1 + bx lr + + thumb_func_start nullsub_245 +nullsub_245: @ 0x0804CC60 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CC64 +sub_0804CC64: @ 0x0804CC64 + movs r0, #1 + bx lr + + thumb_func_start nullsub_246 +nullsub_246: @ 0x0804CC68 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CC6C +sub_0804CC6C: @ 0x0804CC6C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CC70 +sub_0804CC70: @ 0x0804CC70 + push {lr} + ldr r0, _0804CC94 @ =gUnk_02002A40 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0804CC7E + cmp r0, #2 + beq _0804CCA0 +_0804CC7E: + ldr r1, _0804CC98 @ =0x0000020B + movs r0, #0x90 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804CC9C @ =0x00000411 + movs r0, #0x90 + movs r2, #1 + bl sub_0807B314 + b _0804CCB4 + .align 2, 0 +_0804CC94: .4byte gUnk_02002A40 +_0804CC98: .4byte 0x0000020B +_0804CC9C: .4byte 0x00000411 +_0804CCA0: + ldr r1, _0804CCE4 @ =0x00000211 + movs r0, #0x90 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804CCE8 @ =0x0000040B + movs r0, #0x90 + movs r2, #1 + bl sub_0807B314 +_0804CCB4: + movs r0, #0x15 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804CCCA + movs r1, #0xc1 + lsls r1, r1, #2 + movs r0, #0x76 + movs r2, #2 + bl sub_0807B314 +_0804CCCA: + movs r0, #0x16 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804CCE0 + movs r1, #0xc6 + lsls r1, r1, #2 + movs r0, #0x76 + movs r2, #2 + bl sub_0807B314 +_0804CCE0: + pop {pc} + .align 2, 0 +_0804CCE4: .4byte 0x00000211 +_0804CCE8: .4byte 0x0000040B + + thumb_func_start sub_0804CCEC +sub_0804CCEC: @ 0x0804CCEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_247 +nullsub_247: @ 0x0804CCF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CCF4 +sub_0804CCF4: @ 0x0804CCF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_248 +nullsub_248: @ 0x0804CCF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CCFC +sub_0804CCFC: @ 0x0804CCFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_249 +nullsub_249: @ 0x0804CD00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD04 +sub_0804CD04: @ 0x0804CD04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_250 +nullsub_250: @ 0x0804CD08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD0C +sub_0804CD0C: @ 0x0804CD0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_251 +nullsub_251: @ 0x0804CD10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD14 +sub_0804CD14: @ 0x0804CD14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_252 +nullsub_252: @ 0x0804CD18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD1C +sub_0804CD1C: @ 0x0804CD1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_253 +nullsub_253: @ 0x0804CD20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD24 +sub_0804CD24: @ 0x0804CD24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_254 +nullsub_254: @ 0x0804CD28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD2C +sub_0804CD2C: @ 0x0804CD2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_255 +nullsub_255: @ 0x0804CD30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD34 +sub_0804CD34: @ 0x0804CD34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_256 +nullsub_256: @ 0x0804CD38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD3C +sub_0804CD3C: @ 0x0804CD3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_257 +nullsub_257: @ 0x0804CD40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CD44 +sub_0804CD44: @ 0x0804CD44 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CD48 +sub_0804CD48: @ 0x0804CD48 + push {r4, lr} + movs r0, #0x48 + bl sub_0807CBD0 + adds r4, r0, #0 + cmp r4, #0 + bne _0804CD80 + movs r0, #0x48 + bl sub_0807CCB4 + movs r0, #5 + movs r1, #0 + bl sub_080A7138 + ldr r0, _0804CD94 @ =gUnk_02000070 + strb r4, [r0] + ldr r0, _0804CD98 @ =gUnk_03000FD0 + strb r4, [r0] + ldr r0, _0804CD9C @ =gUnk_0200B644 + str r4, [r0] + movs r1, #0xa0 + lsls r1, r1, #0x13 + ldr r2, _0804CDA0 @ =0x00007FFF + adds r0, r2, #0 + strh r0, [r1] + movs r0, #1 + bl sub_0801DA90 +_0804CD80: + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + beq _0804CDA8 + ldr r0, _0804CDA4 @ =gUnk_080DF94C + bl LoadRoomEntityList + b _0804CDBE + .align 2, 0 +_0804CD94: .4byte gUnk_02000070 +_0804CD98: .4byte gUnk_03000FD0 +_0804CD9C: .4byte gUnk_0200B644 +_0804CDA0: .4byte 0x00007FFF +_0804CDA4: .4byte gUnk_080DF94C +_0804CDA8: + ldr r0, _0804CDC0 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0804CDC4 @ =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] +_0804CDBE: + pop {r4, pc} + .align 2, 0 +_0804CDC0: .4byte 0x80100000 +_0804CDC4: .4byte gUnk_02033A90 + + thumb_func_start sub_0804CDC8 +sub_0804CDC8: @ 0x0804CDC8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_258 +nullsub_258: @ 0x0804CDCC + bx lr + .align 2, 0 + + thumb_func_start sub_0804CDD0 +sub_0804CDD0: @ 0x0804CDD0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CDD4 +sub_0804CDD4: @ 0x0804CDD4 + push {lr} + bl sub_08058D34 + ldr r2, _0804CDEC @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0804CDF0 @ =gUnk_03001000 + movs r0, #5 + strb r0, [r1, #4] + pop {pc} + .align 2, 0 +_0804CDEC: .4byte gUnk_02033A90 +_0804CDF0: .4byte gUnk_03001000 + + thumb_func_start sub_0804CDF4 +sub_0804CDF4: @ 0x0804CDF4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CDF8 +sub_0804CDF8: @ 0x0804CDF8 + push {lr} + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + beq _0804CE18 + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #1 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0804CE18 + ldr r0, _0804CE1C @ =gUnk_080DFB78 + bl LoadRoomEntityList +_0804CE18: + pop {pc} + .align 2, 0 +_0804CE1C: .4byte gUnk_080DFB78 + + thumb_func_start sub_0804CE20 +sub_0804CE20: @ 0x0804CE20 + movs r0, #1 + bx lr + + thumb_func_start nullsub_259 +nullsub_259: @ 0x0804CE24 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE28 +sub_0804CE28: @ 0x0804CE28 + movs r0, #1 + bx lr + + thumb_func_start nullsub_260 +nullsub_260: @ 0x0804CE2C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE30 +sub_0804CE30: @ 0x0804CE30 + movs r0, #1 + bx lr + + thumb_func_start nullsub_261 +nullsub_261: @ 0x0804CE34 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE38 +sub_0804CE38: @ 0x0804CE38 + movs r0, #1 + bx lr + + thumb_func_start nullsub_262 +nullsub_262: @ 0x0804CE3C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE40 +sub_0804CE40: @ 0x0804CE40 + movs r0, #1 + bx lr + + thumb_func_start nullsub_263 +nullsub_263: @ 0x0804CE44 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE48 +sub_0804CE48: @ 0x0804CE48 + movs r0, #1 + bx lr + + thumb_func_start nullsub_264 +nullsub_264: @ 0x0804CE4C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE50 +sub_0804CE50: @ 0x0804CE50 + movs r0, #1 + bx lr + + thumb_func_start nullsub_265 +nullsub_265: @ 0x0804CE54 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE58 +sub_0804CE58: @ 0x0804CE58 + movs r0, #1 + bx lr + + thumb_func_start nullsub_266 +nullsub_266: @ 0x0804CE5C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE60 +sub_0804CE60: @ 0x0804CE60 + movs r0, #1 + bx lr + + thumb_func_start nullsub_267 +nullsub_267: @ 0x0804CE64 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE68 +sub_0804CE68: @ 0x0804CE68 + movs r0, #1 + bx lr + + thumb_func_start nullsub_268 +nullsub_268: @ 0x0804CE6C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE70 +sub_0804CE70: @ 0x0804CE70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_269 +nullsub_269: @ 0x0804CE74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE78 +sub_0804CE78: @ 0x0804CE78 + movs r0, #1 + bx lr + + thumb_func_start nullsub_270 +nullsub_270: @ 0x0804CE7C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CE80 +sub_0804CE80: @ 0x0804CE80 + push {lr} + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _0804CE92 + ldr r1, _0804CE98 @ =gUnk_02034350 + ldr r0, _0804CE9C @ =gUnk_080E103C + str r0, [r1, #0x70] +_0804CE92: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804CE98: .4byte gUnk_02034350 +_0804CE9C: .4byte gUnk_080E103C + + thumb_func_start nullsub_271 +nullsub_271: @ 0x0804CEA0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEA4 +sub_0804CEA4: @ 0x0804CEA4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_272 +nullsub_272: @ 0x0804CEA8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEAC +sub_0804CEAC: @ 0x0804CEAC + movs r0, #1 + bx lr + + thumb_func_start nullsub_273 +nullsub_273: @ 0x0804CEB0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEB4 +sub_0804CEB4: @ 0x0804CEB4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_274 +nullsub_274: @ 0x0804CEB8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEBC +sub_0804CEBC: @ 0x0804CEBC + movs r0, #1 + bx lr + + thumb_func_start nullsub_275 +nullsub_275: @ 0x0804CEC0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CEC4 +sub_0804CEC4: @ 0x0804CEC4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_276 +nullsub_276: @ 0x0804CEC8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CECC +sub_0804CECC: @ 0x0804CECC + movs r0, #1 + bx lr + + thumb_func_start nullsub_277 +nullsub_277: @ 0x0804CED0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CED4 +sub_0804CED4: @ 0x0804CED4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CED8 +sub_0804CED8: @ 0x0804CED8 + push {lr} + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _0804CF18 + ldr r1, _0804CF04 @ =gUnk_0200B650 + movs r0, #0 + str r0, [r1] + ldr r2, _0804CF08 @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0804CF0C @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + ldr r0, _0804CF10 @ =gLinkEntity + bl sub_0807AABC + ldr r0, _0804CF14 @ =gUnk_080E1814 + bl LoadRoomEntityList + b _0804CF2E + .align 2, 0 +_0804CF04: .4byte gUnk_0200B650 +_0804CF08: .4byte gUnk_03000F50 +_0804CF0C: .4byte 0x0000FDFF +_0804CF10: .4byte gLinkEntity +_0804CF14: .4byte gUnk_080E1814 +_0804CF18: + ldr r0, _0804CF30 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0804CF34 @ =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] +_0804CF2E: + pop {pc} + .align 2, 0 +_0804CF30: .4byte 0x80100000 +_0804CF34: .4byte gUnk_02033A90 + + thumb_func_start sub_0804CF38 +sub_0804CF38: @ 0x0804CF38 + movs r0, #1 + bx lr + + thumb_func_start nullsub_278 +nullsub_278: @ 0x0804CF3C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF40 +sub_0804CF40: @ 0x0804CF40 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CF44 +sub_0804CF44: @ 0x0804CF44 + ldr r1, _0804CF58 @ =gUnk_030010A0 + adds r2, r1, #0 + adds r2, #0x38 + movs r0, #0 + strb r0, [r2] + adds r1, #0x39 + movs r0, #0x5a + strb r0, [r1] + bx lr + .align 2, 0 +_0804CF58: .4byte gUnk_030010A0 + + thumb_func_start sub_0804CF5C +sub_0804CF5C: @ 0x0804CF5C + movs r0, #1 + bx lr + + thumb_func_start sub_0804CF60 +sub_0804CF60: @ 0x0804CF60 + push {lr} + bl sub_080300E8 + pop {pc} + + thumb_func_start sub_0804CF68 +sub_0804CF68: @ 0x0804CF68 + movs r0, #1 + bx lr + + thumb_func_start nullsub_39 +nullsub_39: @ 0x0804CF6C + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF70 +sub_0804CF70: @ 0x0804CF70 + movs r0, #1 + bx lr + + thumb_func_start sub_0804CF74 +sub_0804CF74: @ 0x0804CF74 + push {lr} + bl sub_080300E8 + pop {pc} + + thumb_func_start sub_0804CF7C +sub_0804CF7C: @ 0x0804CF7C + movs r0, #1 + bx lr + + thumb_func_start nullsub_40 +nullsub_40: @ 0x0804CF80 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF84 +sub_0804CF84: @ 0x0804CF84 + movs r0, #1 + bx lr + + thumb_func_start nullsub_41 +nullsub_41: @ 0x0804CF88 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF8C +sub_0804CF8C: @ 0x0804CF8C + movs r0, #1 + bx lr + + thumb_func_start nullsub_42 +nullsub_42: @ 0x0804CF90 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF94 +sub_0804CF94: @ 0x0804CF94 + movs r0, #1 + bx lr + + thumb_func_start nullsub_43 +nullsub_43: @ 0x0804CF98 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CF9C +sub_0804CF9C: @ 0x0804CF9C + movs r0, #1 + bx lr + + thumb_func_start nullsub_44 +nullsub_44: @ 0x0804CFA0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CFA4 +sub_0804CFA4: @ 0x0804CFA4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_45 +nullsub_45: @ 0x0804CFA8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804CFAC +sub_0804CFAC: @ 0x0804CFAC + movs r0, #1 + bx lr + + thumb_func_start sub_0804CFB0 +sub_0804CFB0: @ 0x0804CFB0 + push {lr} + movs r0, #0x31 + bl sub_0807CBE4 + cmp r0, #0 + bne _0804CFFE + ldr r1, _0804CFD0 @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _0804CFD8 + ldr r0, _0804CFD4 @ =0x80100000 + bl sub_080A3268 + b _0804CFEE + .align 2, 0 +_0804CFD0: .4byte gUnk_030010A0 +_0804CFD4: .4byte 0x80100000 +_0804CFD8: + adds r0, r1, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _0804CFEE + ldr r0, _0804D000 @ =0x80050000 + bl sub_080A3268 + movs r0, #3 + bl sub_08078A90 +_0804CFEE: + ldr r0, _0804D004 @ =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] +_0804CFFE: + pop {pc} + .align 2, 0 +_0804D000: .4byte 0x80050000 +_0804D004: .4byte gUnk_02033A90 + + thumb_func_start sub_0804D008 +sub_0804D008: @ 0x0804D008 + movs r0, #1 + bx lr + + thumb_func_start nullsub_279 +nullsub_279: @ 0x0804D00C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D010 +sub_0804D010: @ 0x0804D010 + movs r0, #1 + bx lr + + thumb_func_start nullsub_280 +nullsub_280: @ 0x0804D014 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D018 +sub_0804D018: @ 0x0804D018 + movs r0, #1 + bx lr + + thumb_func_start nullsub_281 +nullsub_281: @ 0x0804D01C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D020 +sub_0804D020: @ 0x0804D020 + movs r0, #1 + bx lr + + thumb_func_start nullsub_282 +nullsub_282: @ 0x0804D024 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D028 +sub_0804D028: @ 0x0804D028 + movs r0, #1 + bx lr + + thumb_func_start nullsub_283 +nullsub_283: @ 0x0804D02C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D030 +sub_0804D030: @ 0x0804D030 + movs r0, #1 + bx lr + + thumb_func_start nullsub_284 +nullsub_284: @ 0x0804D034 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D038 +sub_0804D038: @ 0x0804D038 + movs r0, #1 + bx lr + + thumb_func_start nullsub_285 +nullsub_285: @ 0x0804D03C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D040 +sub_0804D040: @ 0x0804D040 + movs r0, #1 + bx lr + + thumb_func_start nullsub_286 +nullsub_286: @ 0x0804D044 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D048 +sub_0804D048: @ 0x0804D048 + movs r0, #1 + bx lr + + thumb_func_start nullsub_287 +nullsub_287: @ 0x0804D04C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D050 +sub_0804D050: @ 0x0804D050 + movs r0, #1 + bx lr + + thumb_func_start nullsub_288 +nullsub_288: @ 0x0804D054 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D058 +sub_0804D058: @ 0x0804D058 + movs r0, #1 + bx lr + + thumb_func_start nullsub_289 +nullsub_289: @ 0x0804D05C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D060 +sub_0804D060: @ 0x0804D060 + movs r0, #1 + bx lr + + thumb_func_start nullsub_290 +nullsub_290: @ 0x0804D064 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D068 +sub_0804D068: @ 0x0804D068 + movs r0, #1 + bx lr + + thumb_func_start nullsub_291 +nullsub_291: @ 0x0804D06C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D070 +sub_0804D070: @ 0x0804D070 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D074 +sub_0804D074: @ 0x0804D074 + push {lr} + movs r0, #4 + bl sub_0807CD04 + bl sub_080530C8 + movs r0, #3 + bl sub_0805B4D0 + movs r0, #0x17 + bl sub_0807CA84 + cmp r0, #0 + bne _0804D0A0 + movs r0, #0x45 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D0A0 + ldr r0, _0804D0A4 @ =gUnk_080E3850 + bl LoadRoomEntityList +_0804D0A0: + pop {pc} + .align 2, 0 +_0804D0A4: .4byte gUnk_080E3850 + + thumb_func_start sub_0804D0A8 +sub_0804D0A8: @ 0x0804D0A8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D0AC +sub_0804D0AC: @ 0x0804D0AC + push {lr} + bl sub_0804D0B4 + pop {pc} + + thumb_func_start sub_0804D0B4 +sub_0804D0B4: @ 0x0804D0B4 + push {lr} + movs r0, #0x29 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D0D2 + movs r0, #0x29 + bl sub_0807CCB4 + movs r0, #0x4b + bl sub_0807CCB4 + movs r0, #0x4e + bl sub_0807CCB4 +_0804D0D2: + pop {pc} + + thumb_func_start sub_0804D0D4 +sub_0804D0D4: @ 0x0804D0D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_46 +nullsub_46: @ 0x0804D0D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0DC +sub_0804D0DC: @ 0x0804D0DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_47 +nullsub_47: @ 0x0804D0E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0E4 +sub_0804D0E4: @ 0x0804D0E4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_48 +nullsub_48: @ 0x0804D0E8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0EC +sub_0804D0EC: @ 0x0804D0EC + movs r0, #1 + bx lr + + thumb_func_start nullsub_49 +nullsub_49: @ 0x0804D0F0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0F4 +sub_0804D0F4: @ 0x0804D0F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_50 +nullsub_50: @ 0x0804D0F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D0FC +sub_0804D0FC: @ 0x0804D0FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_51 +nullsub_51: @ 0x0804D100 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D104 +sub_0804D104: @ 0x0804D104 + movs r0, #1 + bx lr + + thumb_func_start nullsub_52 +nullsub_52: @ 0x0804D108 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D10C +sub_0804D10C: @ 0x0804D10C + movs r0, #1 + bx lr + + thumb_func_start nullsub_53 +nullsub_53: @ 0x0804D110 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D114 +sub_0804D114: @ 0x0804D114 + movs r0, #1 + bx lr + + thumb_func_start nullsub_54 +nullsub_54: @ 0x0804D118 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D11C +sub_0804D11C: @ 0x0804D11C + movs r0, #1 + bx lr + + thumb_func_start nullsub_55 +nullsub_55: @ 0x0804D120 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D124 +sub_0804D124: @ 0x0804D124 + movs r0, #1 + bx lr + + thumb_func_start nullsub_56 +nullsub_56: @ 0x0804D128 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D12C +sub_0804D12C: @ 0x0804D12C + movs r0, #1 + bx lr + + thumb_func_start nullsub_57 +nullsub_57: @ 0x0804D130 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D134 +sub_0804D134: @ 0x0804D134 + movs r0, #1 + bx lr + + thumb_func_start nullsub_58 +nullsub_58: @ 0x0804D138 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D13C +sub_0804D13C: @ 0x0804D13C + movs r0, #1 + bx lr + + thumb_func_start sub_0804D140 +sub_0804D140: @ 0x0804D140 + push {lr} + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_0805308C + movs r0, #5 + bl GetProgressFlag + cmp r0, #0 + beq _0804D160 + ldr r0, _0804D15C @ =gUnk_080E49F4 + bl LoadRoomEntityList + b _0804D176 + .align 2, 0 +_0804D15C: .4byte gUnk_080E49F4 +_0804D160: + ldr r0, _0804D178 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0804D17C @ =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] +_0804D176: + pop {pc} + .align 2, 0 +_0804D178: .4byte 0x80100000 +_0804D17C: .4byte gUnk_02033A90 + + thumb_func_start sub_0804D180 +sub_0804D180: @ 0x0804D180 + movs r0, #1 + bx lr + + thumb_func_start nullsub_292 +nullsub_292: @ 0x0804D184 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D188 +sub_0804D188: @ 0x0804D188 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D18C +sub_0804D18C: @ 0x0804D18C + push {lr} + movs r0, #0x48 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D1A4 + movs r0, #0x46 + bl sub_0807CD34 + ldr r0, _0804D1A8 @ =gUnk_080E4BD8 + bl LoadRoomEntityList +_0804D1A4: + pop {pc} + .align 2, 0 +_0804D1A8: .4byte gUnk_080E4BD8 + + thumb_func_start sub_0804D1AC +sub_0804D1AC: @ 0x0804D1AC + movs r0, #1 + bx lr + + thumb_func_start sub_0804D1B0 +sub_0804D1B0: @ 0x0804D1B0 + push {lr} + bl sub_0804D0B4 + movs r0, #0x6c + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D1CC + ldr r0, _0804D1C8 @ =gUnk_080E4CD8 + bl LoadRoomEntityList + b _0804D1D2 + .align 2, 0 +_0804D1C8: .4byte gUnk_080E4CD8 +_0804D1CC: + ldr r0, _0804D1E4 @ =gUnk_080E4CF8 + bl LoadRoomEntityList +_0804D1D2: + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D1E2 + movs r0, #0x49 + bl sub_0807CD34 +_0804D1E2: + pop {pc} + .align 2, 0 +_0804D1E4: .4byte gUnk_080E4CF8 + + thumb_func_start sub_0804D1E8 +sub_0804D1E8: @ 0x0804D1E8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_293 +nullsub_293: @ 0x0804D1EC + bx lr + .align 2, 0 + + thumb_func_start sub_0804D1F0 +sub_0804D1F0: @ 0x0804D1F0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_294 +nullsub_294: @ 0x0804D1F4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D1F8 +sub_0804D1F8: @ 0x0804D1F8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_295 +nullsub_295: @ 0x0804D1FC + bx lr + .align 2, 0 + + thumb_func_start sub_0804D200 +sub_0804D200: @ 0x0804D200 + movs r0, #1 + bx lr + + thumb_func_start nullsub_296 +nullsub_296: @ 0x0804D204 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D208 +sub_0804D208: @ 0x0804D208 + movs r0, #1 + bx lr + + thumb_func_start nullsub_297 +nullsub_297: @ 0x0804D20C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D210 +sub_0804D210: @ 0x0804D210 + movs r0, #1 + bx lr + + thumb_func_start nullsub_298 +nullsub_298: @ 0x0804D214 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D218 +sub_0804D218: @ 0x0804D218 + movs r0, #1 + bx lr + + thumb_func_start nullsub_299 +nullsub_299: @ 0x0804D21C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D220 +sub_0804D220: @ 0x0804D220 + movs r0, #1 + bx lr + + thumb_func_start nullsub_300 +nullsub_300: @ 0x0804D224 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D228 +sub_0804D228: @ 0x0804D228 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D22C +sub_0804D22C: @ 0x0804D22C + push {lr} + movs r0, #0x59 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D244 + ldr r0, _0804D240 @ =gUnk_080E5660 + bl LoadRoomEntityList + b _0804D24A + .align 2, 0 +_0804D240: .4byte gUnk_080E5660 +_0804D244: + ldr r0, _0804D24C @ =gUnk_080E5680 + bl LoadRoomEntityList +_0804D24A: + pop {pc} + .align 2, 0 +_0804D24C: .4byte gUnk_080E5680 + + thumb_func_start sub_0804D250 +sub_0804D250: @ 0x0804D250 + movs r0, #1 + bx lr + + thumb_func_start nullsub_301 +nullsub_301: @ 0x0804D254 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D258 +sub_0804D258: @ 0x0804D258 + movs r0, #1 + bx lr + + thumb_func_start nullsub_302 +nullsub_302: @ 0x0804D25C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D260 +sub_0804D260: @ 0x0804D260 + movs r0, #1 + bx lr + + thumb_func_start nullsub_303 +nullsub_303: @ 0x0804D264 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D268 +sub_0804D268: @ 0x0804D268 + movs r0, #1 + bx lr + + thumb_func_start nullsub_304 +nullsub_304: @ 0x0804D26C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D270 +sub_0804D270: @ 0x0804D270 + movs r0, #1 + bx lr + + thumb_func_start nullsub_305 +nullsub_305: @ 0x0804D274 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D278 +sub_0804D278: @ 0x0804D278 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D27C +sub_0804D27C: @ 0x0804D27C + push {lr} + bl sub_0804D0B4 + movs r0, #0x4b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D298 + ldr r0, _0804D294 @ =gUnk_080E5E3C + bl LoadRoomEntityList + b _0804D29E + .align 2, 0 +_0804D294: .4byte gUnk_080E5E3C +_0804D298: + ldr r0, _0804D2A0 @ =gUnk_080E5E5C + bl LoadRoomEntityList +_0804D29E: + pop {pc} + .align 2, 0 +_0804D2A0: .4byte gUnk_080E5E5C + + thumb_func_start sub_0804D2A4 +sub_0804D2A4: @ 0x0804D2A4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_306 +nullsub_306: @ 0x0804D2A8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2AC +sub_0804D2AC: @ 0x0804D2AC + movs r0, #1 + bx lr + + thumb_func_start nullsub_307 +nullsub_307: @ 0x0804D2B0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2B4 +sub_0804D2B4: @ 0x0804D2B4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_308 +nullsub_308: @ 0x0804D2B8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2BC +sub_0804D2BC: @ 0x0804D2BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_309 +nullsub_309: @ 0x0804D2C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2C4 +sub_0804D2C4: @ 0x0804D2C4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_310 +nullsub_310: @ 0x0804D2C8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2CC +sub_0804D2CC: @ 0x0804D2CC + movs r0, #1 + bx lr + + thumb_func_start nullsub_311 +nullsub_311: @ 0x0804D2D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2D4 +sub_0804D2D4: @ 0x0804D2D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_312 +nullsub_312: @ 0x0804D2D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2DC +sub_0804D2DC: @ 0x0804D2DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_313 +nullsub_313: @ 0x0804D2E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D2E4 +sub_0804D2E4: @ 0x0804D2E4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D2E8 +sub_0804D2E8: @ 0x0804D2E8 + push {lr} + movs r0, #0x32 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D2FA + ldr r0, _0804D2FC @ =gUnk_080E693C + bl LoadRoomEntityList +_0804D2FA: + pop {pc} + .align 2, 0 +_0804D2FC: .4byte gUnk_080E693C + + thumb_func_start sub_0804D300 +sub_0804D300: @ 0x0804D300 + movs r0, #1 + bx lr + + thumb_func_start nullsub_314 +nullsub_314: @ 0x0804D304 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D308 +sub_0804D308: @ 0x0804D308 + movs r0, #1 + bx lr + + thumb_func_start nullsub_315 +nullsub_315: @ 0x0804D30C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D310 +sub_0804D310: @ 0x0804D310 + movs r0, #1 + bx lr + + thumb_func_start nullsub_316 +nullsub_316: @ 0x0804D314 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D318 +sub_0804D318: @ 0x0804D318 + movs r0, #1 + bx lr + + thumb_func_start nullsub_317 +nullsub_317: @ 0x0804D31C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D320 +sub_0804D320: @ 0x0804D320 + movs r0, #1 + bx lr + + thumb_func_start nullsub_318 +nullsub_318: @ 0x0804D324 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D328 +sub_0804D328: @ 0x0804D328 + movs r0, #1 + bx lr + + thumb_func_start nullsub_319 +nullsub_319: @ 0x0804D32C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D330 +sub_0804D330: @ 0x0804D330 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D334 +sub_0804D334: @ 0x0804D334 + push {lr} + bl sub_08054570 + pop {pc} + + thumb_func_start sub_0804D33C +sub_0804D33C: @ 0x0804D33C + movs r0, #1 + bx lr + + thumb_func_start sub_0804D340 +sub_0804D340: @ 0x0804D340 + push {lr} + ldr r0, _0804D374 @ =0x00000312 + movs r1, #0x84 + lsls r1, r1, #1 + movs r2, #1 + bl sub_0807B314 + bl sub_08054570 + movs r0, #0xc4 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D362 + ldr r0, _0804D378 @ =gUnk_080E718C + bl LoadRoomEntityList +_0804D362: + movs r0, #0xc5 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D372 + ldr r0, _0804D37C @ =gUnk_080E71AC + bl LoadRoomEntityList +_0804D372: + pop {pc} + .align 2, 0 +_0804D374: .4byte 0x00000312 +_0804D378: .4byte gUnk_080E718C +_0804D37C: .4byte gUnk_080E71AC + + thumb_func_start sub_0804D380 +sub_0804D380: @ 0x0804D380 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D384 +sub_0804D384: @ 0x0804D384 + push {lr} + movs r0, #0 + bl sub_0805AF60 + movs r0, #6 + bl GetProgressFlag + cmp r0, #0 + beq _0804D39C + ldr r0, _0804D3B0 @ =gUnk_080E7314 + bl LoadRoomEntityList +_0804D39C: + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D3B8 + ldr r0, _0804D3B4 @ =gUnk_080E72C4 + bl LoadRoomEntityList + b _0804D3EA + .align 2, 0 +_0804D3B0: .4byte gUnk_080E7314 +_0804D3B4: .4byte gUnk_080E72C4 +_0804D3B8: + movs r0, #6 + bl sub_0807CD04 + movs r0, #0x43 + bl sub_0807CA84 + cmp r0, #0 + bne _0804D3EA + movs r0, #3 + bl sub_08078A90 + ldr r0, _0804D3EC @ =gUnk_080E72E4 + bl LoadRoomEntityList + ldr r0, _0804D3F0 @ =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, _0804D3F4 @ =0x80100000 + bl sub_080A3268 +_0804D3EA: + pop {pc} + .align 2, 0 +_0804D3EC: .4byte gUnk_080E72E4 +_0804D3F0: .4byte gUnk_02033A90 +_0804D3F4: .4byte 0x80100000 + + thumb_func_start sub_0804D3F8 +sub_0804D3F8: @ 0x0804D3F8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D3FC +sub_0804D3FC: @ 0x0804D3FC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D408 +sub_0804D408: @ 0x0804D408 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D40C +sub_0804D40C: @ 0x0804D40C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D418 +sub_0804D418: @ 0x0804D418 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D41C +sub_0804D41C: @ 0x0804D41C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D428 +sub_0804D428: @ 0x0804D428 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D42C +sub_0804D42C: @ 0x0804D42C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D438 +sub_0804D438: @ 0x0804D438 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D43C +sub_0804D43C: @ 0x0804D43C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D448 +sub_0804D448: @ 0x0804D448 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D44C +sub_0804D44C: @ 0x0804D44C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D458 +sub_0804D458: @ 0x0804D458 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D45C +sub_0804D45C: @ 0x0804D45C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D468 +sub_0804D468: @ 0x0804D468 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D46C +sub_0804D46C: @ 0x0804D46C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D478 +sub_0804D478: @ 0x0804D478 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D47C +sub_0804D47C: @ 0x0804D47C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D488 +sub_0804D488: @ 0x0804D488 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D48C +sub_0804D48C: @ 0x0804D48C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D498 +sub_0804D498: @ 0x0804D498 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D49C +sub_0804D49C: @ 0x0804D49C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4A8 +sub_0804D4A8: @ 0x0804D4A8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4AC +sub_0804D4AC: @ 0x0804D4AC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4B8 +sub_0804D4B8: @ 0x0804D4B8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4BC +sub_0804D4BC: @ 0x0804D4BC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4C8 +sub_0804D4C8: @ 0x0804D4C8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4CC +sub_0804D4CC: @ 0x0804D4CC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4D8 +sub_0804D4D8: @ 0x0804D4D8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4DC +sub_0804D4DC: @ 0x0804D4DC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4E8 +sub_0804D4E8: @ 0x0804D4E8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4EC +sub_0804D4EC: @ 0x0804D4EC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D4F8 +sub_0804D4F8: @ 0x0804D4F8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D4FC +sub_0804D4FC: @ 0x0804D4FC + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D508 +sub_0804D508: @ 0x0804D508 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D50C +sub_0804D50C: @ 0x0804D50C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D518 +sub_0804D518: @ 0x0804D518 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D51C +sub_0804D51C: @ 0x0804D51C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D528 +sub_0804D528: @ 0x0804D528 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D52C +sub_0804D52C: @ 0x0804D52C + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D538 +sub_0804D538: @ 0x0804D538 + movs r0, #1 + bx lr + + thumb_func_start nullsub_59 +nullsub_59: @ 0x0804D53C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D540 +sub_0804D540: @ 0x0804D540 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D544 +sub_0804D544: @ 0x0804D544 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D550 +sub_0804D550: @ 0x0804D550 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D554 +sub_0804D554: @ 0x0804D554 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D560 +sub_0804D560: @ 0x0804D560 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D564 +sub_0804D564: @ 0x0804D564 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D570 +sub_0804D570: @ 0x0804D570 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D574 +sub_0804D574: @ 0x0804D574 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D580 +sub_0804D580: @ 0x0804D580 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D584 +sub_0804D584: @ 0x0804D584 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D590 +sub_0804D590: @ 0x0804D590 + movs r0, #1 + bx lr + + thumb_func_start nullsub_60 +nullsub_60: @ 0x0804D594 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D598 +sub_0804D598: @ 0x0804D598 + movs r0, #1 + bx lr + + thumb_func_start nullsub_61 +nullsub_61: @ 0x0804D59C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5A0 +sub_0804D5A0: @ 0x0804D5A0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_62 +nullsub_62: @ 0x0804D5A4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5A8 +sub_0804D5A8: @ 0x0804D5A8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_63 +nullsub_63: @ 0x0804D5AC + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5B0 +sub_0804D5B0: @ 0x0804D5B0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_64 +nullsub_64: @ 0x0804D5B4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5B8 +sub_0804D5B8: @ 0x0804D5B8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_65 +nullsub_65: @ 0x0804D5BC + bx lr + .align 2, 0 + + thumb_func_start sub_0804D5C0 +sub_0804D5C0: @ 0x0804D5C0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D5C4 +sub_0804D5C4: @ 0x0804D5C4 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D5D0 +sub_0804D5D0: @ 0x0804D5D0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D5D4 +sub_0804D5D4: @ 0x0804D5D4 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D5E0 +sub_0804D5E0: @ 0x0804D5E0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D5E4 +sub_0804D5E4: @ 0x0804D5E4 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D5F0 +sub_0804D5F0: @ 0x0804D5F0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D5F4 +sub_0804D5F4: @ 0x0804D5F4 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D600 +sub_0804D600: @ 0x0804D600 + movs r0, #1 + bx lr + + thumb_func_start nullsub_66 +nullsub_66: @ 0x0804D604 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D608 +sub_0804D608: @ 0x0804D608 + movs r0, #1 + bx lr + + thumb_func_start nullsub_67 +nullsub_67: @ 0x0804D60C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D610 +sub_0804D610: @ 0x0804D610 + movs r0, #1 + bx lr + + thumb_func_start nullsub_68 +nullsub_68: @ 0x0804D614 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D618 +sub_0804D618: @ 0x0804D618 + movs r0, #1 + bx lr + + thumb_func_start nullsub_69 +nullsub_69: @ 0x0804D61C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D620 +sub_0804D620: @ 0x0804D620 + movs r0, #1 + bx lr + + thumb_func_start nullsub_70 +nullsub_70: @ 0x0804D624 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D628 +sub_0804D628: @ 0x0804D628 + movs r0, #1 + bx lr + + thumb_func_start nullsub_71 +nullsub_71: @ 0x0804D62C + bx lr + .align 2, 0 + + thumb_func_start sub_0804D630 +sub_0804D630: @ 0x0804D630 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D634 +sub_0804D634: @ 0x0804D634 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D640 +sub_0804D640: @ 0x0804D640 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D644 +sub_0804D644: @ 0x0804D644 + push {lr} + movs r0, #0 + bl sub_0805AF60 + movs r0, #0x70 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D65C + ldr r0, _0804D660 @ =gUnk_080EA09C + bl LoadRoomEntityList +_0804D65C: + pop {pc} + .align 2, 0 +_0804D660: .4byte gUnk_080EA09C + + thumb_func_start sub_0804D664 +sub_0804D664: @ 0x0804D664 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D668 +sub_0804D668: @ 0x0804D668 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D674 +sub_0804D674: @ 0x0804D674 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D678 +sub_0804D678: @ 0x0804D678 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D684 +sub_0804D684: @ 0x0804D684 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D688 +sub_0804D688: @ 0x0804D688 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D694 +sub_0804D694: @ 0x0804D694 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D698 +sub_0804D698: @ 0x0804D698 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D6A4 +sub_0804D6A4: @ 0x0804D6A4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D6A8 +sub_0804D6A8: @ 0x0804D6A8 + push {lr} + movs r0, #0 + bl sub_0805AF60 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D6B4 +sub_0804D6B4: @ 0x0804D6B4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_72 +nullsub_72: @ 0x0804D6B8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D6BC +sub_0804D6BC: @ 0x0804D6BC + movs r0, #1 + bx lr + + thumb_func_start nullsub_73 +nullsub_73: @ 0x0804D6C0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D6C4 +sub_0804D6C4: @ 0x0804D6C4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D6C8 +sub_0804D6C8: @ 0x0804D6C8 + push {lr} + ldr r0, _0804D6E4 @ =0x80100000 + bl sub_080A3268 + ldr r0, _0804D6E8 @ =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] + pop {pc} + .align 2, 0 +_0804D6E4: .4byte 0x80100000 +_0804D6E8: .4byte gUnk_02033A90 + + thumb_func_start sub_0804D6EC +sub_0804D6EC: @ 0x0804D6EC + movs r0, #1 + bx lr + + thumb_func_start sub_0804D6F0 +sub_0804D6F0: @ 0x0804D6F0 + push {lr} + movs r0, #0 + bl sub_0805D3C8 + ldr r2, _0804D72C @ =gUnk_030010A0 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0804D74C + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0804D74C + adds r0, r2, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #1 + bne _0804D734 + ldr r1, _0804D730 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x48 + ldrh r0, [r0] + strh r0, [r1, #0x2e] + adds r0, r2, #0 + adds r0, #0x4a + b _0804D746 + .align 2, 0 +_0804D72C: .4byte gUnk_030010A0 +_0804D730: .4byte gLinkEntity +_0804D734: + cmp r0, #0 + bne _0804D74C + ldr r1, _0804D750 @ =gLinkEntity + adds r0, r2, #0 + adds r0, #0x44 + ldrh r0, [r0] + strh r0, [r1, #0x2e] + adds r0, r2, #0 + adds r0, #0x46 +_0804D746: + ldrh r0, [r0] + adds r0, #8 + strh r0, [r1, #0x32] +_0804D74C: + pop {pc} + .align 2, 0 +_0804D750: .4byte gLinkEntity + + thumb_func_start sub_0804D754 +sub_0804D754: @ 0x0804D754 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D758 +sub_0804D758: @ 0x0804D758 + push {lr} + movs r0, #6 + bl sub_0805B4D0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D764 +sub_0804D764: @ 0x0804D764 + movs r0, #1 + bx lr + + thumb_func_start nullsub_74 +nullsub_74: @ 0x0804D768 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D76C +sub_0804D76C: @ 0x0804D76C + movs r0, #1 + bx lr + + thumb_func_start nullsub_75 +nullsub_75: @ 0x0804D770 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D774 +sub_0804D774: @ 0x0804D774 + push {lr} + bl sub_080534AC + movs r0, #1 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804D780 +sub_0804D780: @ 0x0804D780 + push {r4, r5, lr} + movs r0, #4 + bl sub_0805B4D0 + movs r0, #0x77 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D7A0 + ldr r0, _0804D79C @ =gUnk_080EAD68 + bl LoadRoomEntityList + b _0804D7D0 + .align 2, 0 +_0804D79C: .4byte gUnk_080EAD68 +_0804D7A0: + movs r0, #0x79 + bl sub_0807CBD0 + adds r5, r0, #0 + cmp r5, #0 + bne _0804D7D0 + ldr r0, _0804D7D4 @ =gUnk_080EADB8 + bl LoadRoomEntityList + ldr r4, _0804D7D8 @ =0x00004072 + ldr r1, _0804D7DC @ =0x00000145 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804D7E0 @ =0x00000149 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804D7E4 @ =gUnk_02033A90 + ldr r1, _0804D7E8 @ =0x00000864 + adds r0, r0, r1 + str r5, [r0] +_0804D7D0: + pop {r4, r5, pc} + .align 2, 0 +_0804D7D4: .4byte gUnk_080EADB8 +_0804D7D8: .4byte 0x00004072 +_0804D7DC: .4byte 0x00000145 +_0804D7E0: .4byte 0x00000149 +_0804D7E4: .4byte gUnk_02033A90 +_0804D7E8: .4byte 0x00000864 + + thumb_func_start sub_0804D7EC +sub_0804D7EC: @ 0x0804D7EC + push {r4, lr} + ldr r4, _0804D7F4 @ =gUnk_080EAE00 + b _0804D804 + .align 2, 0 +_0804D7F4: .4byte gUnk_080EAE00 +_0804D7F8: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _0804D80C @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_0804D804: + ldrh r0, [r4] + cmp r0, #0 + bne _0804D7F8 + pop {r4, pc} + .align 2, 0 +_0804D80C: .4byte 0x00004072 + + thumb_func_start sub_0804D810 +sub_0804D810: @ 0x0804D810 + push {r4, lr} + ldr r4, _0804D818 @ =gUnk_080EAE00 + b _0804D826 + .align 2, 0 +_0804D818: .4byte gUnk_080EAE00 +_0804D81C: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_0804D826: + ldrh r0, [r4] + cmp r0, #0 + bne _0804D81C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0804D830 +sub_0804D830: @ 0x0804D830 + movs r0, #1 + bx lr + + thumb_func_start sub_0804D834 +sub_0804D834: @ 0x0804D834 + push {r4, lr} + ldr r4, _0804D86C @ =gUnk_02033A90 + movs r0, #0 + movs r1, #0x40 + strb r1, [r4] + strb r0, [r4, #1] + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804D894 + movs r0, #0x7f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D878 + ldr r0, _0804D870 @ =gUnk_080EAEC0 + bl LoadRoomEntityList + movs r0, #0x7f + bl sub_0807CCB4 + ldr r0, _0804D874 @ =0x00000864 + adds r1, r4, r0 + movs r0, #0x11 + str r0, [r1] + b _0804D8BC + .align 2, 0 +_0804D86C: .4byte gUnk_02033A90 +_0804D870: .4byte gUnk_080EAEC0 +_0804D874: .4byte 0x00000864 +_0804D878: + ldr r0, _0804D88C @ =gUnk_080EAF20 + bl LoadRoomEntityList + ldr r2, _0804D890 @ =0x00000864 + adds r1, r4, r2 + subs r2, #4 + adds r0, r4, r2 + ldr r0, [r0] + str r0, [r1] + b _0804D8BC + .align 2, 0 +_0804D88C: .4byte gUnk_080EAF20 +_0804D890: .4byte 0x00000864 +_0804D894: + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D8AC + ldr r1, _0804D8C4 @ =0x00000864 + adds r0, r4, r1 + movs r2, #0x86 + lsls r2, r2, #4 + adds r1, r4, r2 + ldr r1, [r1] + str r1, [r0] +_0804D8AC: + movs r0, #1 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804D8BC + ldr r0, _0804D8C8 @ =gUnk_080EAE60 + bl LoadRoomEntityList +_0804D8BC: + movs r0, #0x5d + bl sub_0807CD80 + pop {r4, pc} + .align 2, 0 +_0804D8C4: .4byte 0x00000864 +_0804D8C8: .4byte gUnk_080EAE60 + + thumb_func_start sub_0804D8CC +sub_0804D8CC: @ 0x0804D8CC + movs r0, #1 + bx lr + + thumb_func_start nullsub_320 +nullsub_320: @ 0x0804D8D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8D4 +sub_0804D8D4: @ 0x0804D8D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_321 +nullsub_321: @ 0x0804D8D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8DC +sub_0804D8DC: @ 0x0804D8DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_322 +nullsub_322: @ 0x0804D8E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8E4 +sub_0804D8E4: @ 0x0804D8E4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_323 +nullsub_323: @ 0x0804D8E8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8EC +sub_0804D8EC: @ 0x0804D8EC + movs r0, #1 + bx lr + + thumb_func_start nullsub_324 +nullsub_324: @ 0x0804D8F0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8F4 +sub_0804D8F4: @ 0x0804D8F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_325 +nullsub_325: @ 0x0804D8F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D8FC +sub_0804D8FC: @ 0x0804D8FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_326 +nullsub_326: @ 0x0804D900 + bx lr + .align 2, 0 + + thumb_func_start sub_0804D904 +sub_0804D904: @ 0x0804D904 + push {r4, r5, lr} + movs r0, #0x51 + bl GetProgressFlag + adds r5, r0, #0 + cmp r5, #0 + beq _0804D93C + ldr r1, _0804D930 @ =gUnk_02034350 + ldr r0, _0804D934 @ =gUnk_080EB604 + str r0, [r1, #0x6c] + movs r0, #0 + str r0, [r1, #0x74] + ldr r0, _0804D938 @ =gUnk_02033A90 + movs r1, #0x86 + lsls r1, r1, #4 + adds r2, r0, r1 + adds r1, #4 + adds r0, r0, r1 + movs r1, #0x11 + str r1, [r0] + str r1, [r2] + b _0804D96A + .align 2, 0 +_0804D930: .4byte gUnk_02034350 +_0804D934: .4byte gUnk_080EB604 +_0804D938: .4byte gUnk_02033A90 +_0804D93C: + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D96A + ldr r4, _0804D970 @ =gUnk_02034350 + str r5, [r4, #0x6c] + movs r0, #0x7a + bl sub_0807CBD0 + adds r5, r0, #0 + cmp r5, #0 + bne _0804D96A + movs r0, #0x1c + bl sub_0807CD04 + ldr r0, _0804D974 @ =gUnk_080EB5D4 + str r0, [r4, #0x6c] + adds r1, r4, #0 + adds r1, #0x88 + ldr r0, _0804D978 @ =sub_0804D9B0 + str r0, [r1] + str r5, [r4, #0x74] +_0804D96A: + movs r0, #1 + pop {r4, r5, pc} + .align 2, 0 +_0804D970: .4byte gUnk_02034350 +_0804D974: .4byte gUnk_080EB5D4 +_0804D978: .4byte sub_0804D9B0 + + thumb_func_start sub_0804D97C +sub_0804D97C: @ 0x0804D97C + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804D996 + ldr r0, _0804D9A8 @ =gUnk_02033A90 + ldr r2, _0804D9AC @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804D996: + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804D9A4 + bl sub_0804D9B0 +_0804D9A4: + pop {pc} + .align 2, 0 +_0804D9A8: .4byte gUnk_02033A90 +_0804D9AC: .4byte 0x00000864 + + thumb_func_start sub_0804D9B0 +sub_0804D9B0: @ 0x0804D9B0 + push {lr} + ldr r0, _0804D9EC @ =0x00000797 + movs r1, #1 + movs r2, #5 + movs r3, #1 + bl sub_0807BB98 + ldr r0, _0804D9F0 @ =0x00000357 + movs r1, #1 + movs r2, #5 + movs r3, #1 + bl sub_0807BB98 + ldr r0, _0804D9F4 @ =0x0000055F + movs r1, #1 + movs r2, #2 + movs r3, #1 + bl sub_0807BB98 + ldr r0, _0804D9F8 @ =gUnk_080EB684 + bl LoadRoomEntityList + ldr r0, _0804D9FC @ =gUnk_02033A90 + ldr r2, _0804DA00 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + pop {pc} + .align 2, 0 +_0804D9EC: .4byte 0x00000797 +_0804D9F0: .4byte 0x00000357 +_0804D9F4: .4byte 0x0000055F +_0804D9F8: .4byte gUnk_080EB684 +_0804D9FC: .4byte gUnk_02033A90 +_0804DA00: .4byte 0x00000864 + + thumb_func_start sub_0804DA04 +sub_0804DA04: @ 0x0804DA04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_327 +nullsub_327: @ 0x0804DA08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA0C +sub_0804DA0C: @ 0x0804DA0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_328 +nullsub_328: @ 0x0804DA10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA14 +sub_0804DA14: @ 0x0804DA14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_329 +nullsub_329: @ 0x0804DA18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA1C +sub_0804DA1C: @ 0x0804DA1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_330 +nullsub_330: @ 0x0804DA20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA24 +sub_0804DA24: @ 0x0804DA24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_331 +nullsub_331: @ 0x0804DA28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DA2C +sub_0804DA2C: @ 0x0804DA2C + push {lr} + movs r0, #0x77 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0804DA40 + ldr r0, _0804DA44 @ =gUnk_02034350 + str r1, [r0, #0x6c] + str r1, [r0, #0x74] +_0804DA40: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DA44: .4byte gUnk_02034350 + + thumb_func_start sub_0804DA48 +sub_0804DA48: @ 0x0804DA48 + push {lr} + movs r0, #0x77 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DA60 + ldr r0, _0804DA5C @ =gUnk_080EB9F4 + bl LoadRoomEntityList + b _0804DA8C + .align 2, 0 +_0804DA5C: .4byte gUnk_080EB9F4 +_0804DA60: + movs r0, #0x78 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DA76 + ldr r0, _0804DA90 @ =gUnk_080EBAA4 + bl LoadRoomEntityList + movs r0, #0x75 + bl sub_0807CCB4 +_0804DA76: + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DA8C + ldr r0, _0804DA94 @ =gUnk_080EBAF4 + bl LoadRoomEntityList + movs r0, #0x76 + bl sub_0807CCB4 +_0804DA8C: + pop {pc} + .align 2, 0 +_0804DA90: .4byte gUnk_080EBAA4 +_0804DA94: .4byte gUnk_080EBAF4 + + thumb_func_start sub_0804DA98 +sub_0804DA98: @ 0x0804DA98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_332 +nullsub_332: @ 0x0804DA9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAA0 +sub_0804DAA0: @ 0x0804DAA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_333 +nullsub_333: @ 0x0804DAA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAA8 +sub_0804DAA8: @ 0x0804DAA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_334 +nullsub_334: @ 0x0804DAAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAB0 +sub_0804DAB0: @ 0x0804DAB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_335 +nullsub_335: @ 0x0804DAB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAB8 +sub_0804DAB8: @ 0x0804DAB8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_336 +nullsub_336: @ 0x0804DABC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAC0 +sub_0804DAC0: @ 0x0804DAC0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_337 +nullsub_337: @ 0x0804DAC4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAC8 +sub_0804DAC8: @ 0x0804DAC8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_338 +nullsub_338: @ 0x0804DACC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DAD0 +sub_0804DAD0: @ 0x0804DAD0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804DAD4 +sub_0804DAD4: @ 0x0804DAD4 + push {lr} + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DAF0 + movs r0, #0x4c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DAF0 + ldr r0, _0804DAF4 @ =gUnk_080EC2CC + bl LoadRoomEntityList +_0804DAF0: + pop {pc} + .align 2, 0 +_0804DAF4: .4byte gUnk_080EC2CC + + thumb_func_start sub_0804DAF8 +sub_0804DAF8: @ 0x0804DAF8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_339 +nullsub_339: @ 0x0804DAFC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB00 +sub_0804DB00: @ 0x0804DB00 + movs r0, #1 + bx lr + + thumb_func_start sub_0804DB04 +sub_0804DB04: @ 0x0804DB04 + push {lr} + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DB20 + movs r0, #0x4d + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DB20 + ldr r0, _0804DB24 @ =gUnk_080EC4E8 + bl LoadRoomEntityList +_0804DB20: + pop {pc} + .align 2, 0 +_0804DB24: .4byte gUnk_080EC4E8 + + thumb_func_start sub_0804DB28 +sub_0804DB28: @ 0x0804DB28 + movs r0, #1 + bx lr + + thumb_func_start nullsub_340 +nullsub_340: @ 0x0804DB2C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB30 +sub_0804DB30: @ 0x0804DB30 + movs r0, #1 + bx lr + + thumb_func_start nullsub_341 +nullsub_341: @ 0x0804DB34 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB38 +sub_0804DB38: @ 0x0804DB38 + movs r0, #1 + bx lr + + thumb_func_start sub_0804DB3C +sub_0804DB3C: @ 0x0804DB3C + push {lr} + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DB58 + movs r0, #0x53 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DB58 + ldr r0, _0804DB5C @ =gUnk_080EC820 + bl LoadRoomEntityList +_0804DB58: + pop {pc} + .align 2, 0 +_0804DB5C: .4byte gUnk_080EC820 + + thumb_func_start sub_0804DB60 +sub_0804DB60: @ 0x0804DB60 + movs r0, #1 + bx lr + + thumb_func_start nullsub_342 +nullsub_342: @ 0x0804DB64 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB68 +sub_0804DB68: @ 0x0804DB68 + movs r0, #1 + bx lr + + thumb_func_start sub_0804DB6C +sub_0804DB6C: @ 0x0804DB6C + push {lr} + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DB88 + movs r0, #0x56 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DB88 + ldr r0, _0804DB8C @ =gUnk_080ECA60 + bl LoadRoomEntityList +_0804DB88: + pop {pc} + .align 2, 0 +_0804DB8C: .4byte gUnk_080ECA60 + + thumb_func_start sub_0804DB90 +sub_0804DB90: @ 0x0804DB90 + movs r0, #1 + bx lr + + thumb_func_start nullsub_343 +nullsub_343: @ 0x0804DB94 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DB98 +sub_0804DB98: @ 0x0804DB98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_344 +nullsub_344: @ 0x0804DB9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBA0 +sub_0804DBA0: @ 0x0804DBA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_345 +nullsub_345: @ 0x0804DBA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBA8 +sub_0804DBA8: @ 0x0804DBA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_346 +nullsub_346: @ 0x0804DBAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBB0 +sub_0804DBB0: @ 0x0804DBB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_347 +nullsub_347: @ 0x0804DBB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBB8 +sub_0804DBB8: @ 0x0804DBB8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_348 +nullsub_348: @ 0x0804DBBC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DBC0 +sub_0804DBC0: @ 0x0804DBC0 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DBD2 + ldr r1, _0804DBD8 @ =gUnk_02034350 + movs r0, #0 + str r0, [r1, #0x74] +_0804DBD2: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DBD8: .4byte gUnk_02034350 + + thumb_func_start sub_0804DBDC +sub_0804DBDC: @ 0x0804DBDC + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DC08 + movs r0, #0x90 + movs r1, #1 + movs r2, #1 + movs r3, #5 + bl sub_0807BB98 + ldr r0, _0804DC0C @ =gUnk_080ECFCC + bl LoadRoomEntityList + ldr r0, _0804DC10 @ =gUnk_02033A90 + ldr r2, _0804DC14 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804DC08: + pop {pc} + .align 2, 0 +_0804DC0C: .4byte gUnk_080ECFCC +_0804DC10: .4byte gUnk_02033A90 +_0804DC14: .4byte 0x00000864 + + thumb_func_start sub_0804DC18 +sub_0804DC18: @ 0x0804DC18 + movs r0, #1 + bx lr + + thumb_func_start nullsub_349 +nullsub_349: @ 0x0804DC1C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC20 +sub_0804DC20: @ 0x0804DC20 + movs r0, #1 + bx lr + + thumb_func_start nullsub_350 +nullsub_350: @ 0x0804DC24 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC28 +sub_0804DC28: @ 0x0804DC28 + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804DC3E + ldr r0, _0804DC44 @ =gUnk_02034350 + ldr r1, _0804DC48 @ =gUnk_080ED1E4 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804DC3E: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DC44: .4byte gUnk_02034350 +_0804DC48: .4byte gUnk_080ED1E4 + + thumb_func_start sub_0804DC4C +sub_0804DC4C: @ 0x0804DC4C + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804DC66 + ldr r0, _0804DC68 @ =gUnk_02033A90 + ldr r2, _0804DC6C @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804DC66: + pop {pc} + .align 2, 0 +_0804DC68: .4byte gUnk_02033A90 +_0804DC6C: .4byte 0x00000864 + + thumb_func_start sub_0804DC70 +sub_0804DC70: @ 0x0804DC70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_351 +nullsub_351: @ 0x0804DC74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC78 +sub_0804DC78: @ 0x0804DC78 + movs r0, #1 + bx lr + + thumb_func_start nullsub_352 +nullsub_352: @ 0x0804DC7C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC80 +sub_0804DC80: @ 0x0804DC80 + movs r0, #1 + bx lr + + thumb_func_start nullsub_353 +nullsub_353: @ 0x0804DC84 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC88 +sub_0804DC88: @ 0x0804DC88 + movs r0, #1 + bx lr + + thumb_func_start nullsub_354 +nullsub_354: @ 0x0804DC8C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC90 +sub_0804DC90: @ 0x0804DC90 + movs r0, #1 + bx lr + + thumb_func_start nullsub_355 +nullsub_355: @ 0x0804DC94 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DC98 +sub_0804DC98: @ 0x0804DC98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_356 +nullsub_356: @ 0x0804DC9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCA0 +sub_0804DCA0: @ 0x0804DCA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_357 +nullsub_357: @ 0x0804DCA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCA8 +sub_0804DCA8: @ 0x0804DCA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_358 +nullsub_358: @ 0x0804DCAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCB0 +sub_0804DCB0: @ 0x0804DCB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_359 +nullsub_359: @ 0x0804DCB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCB8 +sub_0804DCB8: @ 0x0804DCB8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_360 +nullsub_360: @ 0x0804DCBC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCC0 +sub_0804DCC0: @ 0x0804DCC0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_361 +nullsub_361: @ 0x0804DCC4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCC8 +sub_0804DCC8: @ 0x0804DCC8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_362 +nullsub_362: @ 0x0804DCCC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCD0 +sub_0804DCD0: @ 0x0804DCD0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_363 +nullsub_363: @ 0x0804DCD4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCD8 +sub_0804DCD8: @ 0x0804DCD8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_364 +nullsub_364: @ 0x0804DCDC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCE0 +sub_0804DCE0: @ 0x0804DCE0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_365 +nullsub_365: @ 0x0804DCE4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCE8 +sub_0804DCE8: @ 0x0804DCE8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_366 +nullsub_366: @ 0x0804DCEC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCF0 +sub_0804DCF0: @ 0x0804DCF0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_367 +nullsub_367: @ 0x0804DCF4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DCF8 +sub_0804DCF8: @ 0x0804DCF8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_368 +nullsub_368: @ 0x0804DCFC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD00 +sub_0804DD00: @ 0x0804DD00 + movs r0, #1 + bx lr + + thumb_func_start nullsub_369 +nullsub_369: @ 0x0804DD04 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD08 +sub_0804DD08: @ 0x0804DD08 + movs r0, #1 + bx lr + + thumb_func_start nullsub_370 +nullsub_370: @ 0x0804DD0C + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD10 +sub_0804DD10: @ 0x0804DD10 + movs r0, #1 + bx lr + + thumb_func_start nullsub_371 +nullsub_371: @ 0x0804DD14 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD18 +sub_0804DD18: @ 0x0804DD18 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DD2C + ldr r1, _0804DD30 @ =gUnk_02034350 + movs r0, #0 + str r0, [r1, #0x74] + str r0, [r1, #0x6c] +_0804DD2C: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DD30: .4byte gUnk_02034350 + + thumb_func_start sub_0804DD34 +sub_0804DD34: @ 0x0804DD34 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DD60 + movs r0, #3 + movs r1, #2 + movs r2, #5 + movs r3, #1 + bl sub_0807BB98 + ldr r0, _0804DD64 @ =gUnk_080EE314 + bl LoadRoomEntityList + ldr r0, _0804DD68 @ =gUnk_02033A90 + ldr r2, _0804DD6C @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804DD60: + pop {pc} + .align 2, 0 +_0804DD64: .4byte gUnk_080EE314 +_0804DD68: .4byte gUnk_02033A90 +_0804DD6C: .4byte 0x00000864 + + thumb_func_start sub_0804DD70 +sub_0804DD70: @ 0x0804DD70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_372 +nullsub_372: @ 0x0804DD74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DD78 +sub_0804DD78: @ 0x0804DD78 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DD8A + ldr r1, _0804DD90 @ =gUnk_02034350 + movs r0, #0 + str r0, [r1, #0x74] +_0804DD8A: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804DD90: .4byte gUnk_02034350 + + thumb_func_start sub_0804DD94 +sub_0804DD94: @ 0x0804DD94 + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DDC0 + ldr r0, _0804DDC4 @ =0x00000392 + movs r1, #2 + movs r2, #2 + movs r3, #5 + bl sub_0807BB98 + ldr r0, _0804DDC8 @ =gUnk_080EE5DC + bl LoadRoomEntityList + ldr r0, _0804DDCC @ =gUnk_02033A90 + ldr r2, _0804DDD0 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804DDC0: + pop {pc} + .align 2, 0 +_0804DDC4: .4byte 0x00000392 +_0804DDC8: .4byte gUnk_080EE5DC +_0804DDCC: .4byte gUnk_02033A90 +_0804DDD0: .4byte 0x00000864 + + thumb_func_start sub_0804DDD4 +sub_0804DDD4: @ 0x0804DDD4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_373 +nullsub_373: @ 0x0804DDD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804DDDC +sub_0804DDDC: @ 0x0804DDDC + movs r0, #1 + bx lr + + thumb_func_start sub_0804DDE0 +sub_0804DDE0: @ 0x0804DDE0 + push {lr} + movs r0, #1 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804DDF2 + ldr r0, _0804DDF4 @ =gUnk_080EE71C + bl LoadRoomEntityList +_0804DDF2: + pop {pc} + .align 2, 0 +_0804DDF4: .4byte gUnk_080EE71C + + thumb_func_start sub_0804DDF8 +sub_0804DDF8: @ 0x0804DDF8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_374 +nullsub_374: @ 0x0804DDFC + bx lr + .align 2, 0 + + thumb_func_start sub_0804DE00 +sub_0804DE00: @ 0x0804DE00 + push {r4, r5, r6, lr} + bl sub_080530C8 + movs r0, #0xb + bl sub_0801E7F4 + cmp r0, #0 + beq _0804DE32 + movs r0, #0x19 + bl GetProgressFlag + cmp r0, #0 + bne _0804DE22 + movs r0, #0x19 + bl sub_0807CD04 + b _0804DE32 +_0804DE22: + movs r0, #0x18 + bl GetProgressFlag + cmp r0, #0 + bne _0804DE32 + movs r0, #0x18 + bl sub_0807CD04 +_0804DE32: + ldr r5, _0804DE50 @ =gUnk_080D4250 + ldr r4, _0804DE54 @ =gUnk_02002A40 + ldrb r0, [r4, #8] + lsls r0, r0, #2 + adds r0, r0, r5 + ldr r0, [r0] + bl sub_0804AFB0 + ldrb r0, [r4, #8] + cmp r0, #1 + beq _0804DE5C + ldr r1, _0804DE58 @ =gUnk_02017654 + ldr r0, [r5] + str r0, [r1] + b _0804DECC + .align 2, 0 +_0804DE50: .4byte gUnk_080D4250 +_0804DE54: .4byte gUnk_02002A40 +_0804DE58: .4byte gUnk_02017654 +_0804DE5C: + movs r0, #0x1c + bl sub_0807CD04 + ldr r4, _0804DEB4 @ =gUnk_02033A90 + ldr r0, _0804DEB8 @ =0x0000085C + adds r4, r4, r0 + ldr r0, [r4] + ldrh r5, [r0, #4] + ldrh r6, [r0, #6] + ldr r1, _0804DEBC @ =gUnk_03000BF0 + movs r2, #0 + movs r0, #0x15 + strb r0, [r1, #4] + strb r2, [r1, #5] + bl sub_08052CFC + ldr r0, [r4] + movs r1, #0x98 + lsls r1, r1, #1 + adds r5, r5, r1 + strh r5, [r0, #4] + ldr r0, [r4] + strh r6, [r0, #6] + ldr r1, _0804DEC0 @ =gUnk_030010A0 + ldr r0, [r4] + ldrh r0, [r0] + lsrs r0, r0, #1 + strh r0, [r1, #0x10] + bl sub_08052EA0 + bl sub_0804AF90 + movs r0, #0xcd + bl sub_0807CBD0 + cmp r0, #0 + bne _0804DEC4 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 + b _0804DECC + .align 2, 0 +_0804DEB4: .4byte gUnk_02033A90 +_0804DEB8: .4byte 0x0000085C +_0804DEBC: .4byte gUnk_03000BF0 +_0804DEC0: .4byte gUnk_030010A0 +_0804DEC4: + movs r0, #6 + movs r1, #0x10 + bl sub_08050054 +_0804DECC: + movs r0, #1 + pop {r4, r5, r6, pc} + + thumb_func_start sub_0804DED0 +sub_0804DED0: @ 0x0804DED0 + push {r4, lr} + bl sub_08054570 + bl sub_08059D18 + movs r0, #0xbb + lsls r0, r0, #1 + ldr r1, _0804DEF8 @ =0x0000066B + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804DEFC @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #1 + bne _0804DF00 + movs r0, #0 + bl sub_0801D000 + b _0804E112 + .align 2, 0 +_0804DEF8: .4byte 0x0000066B +_0804DEFC: .4byte gUnk_02002A40 +_0804DF00: + ldr r0, _0804DF7C @ =0x00000DB4 + bl sub_08018C58 + movs r4, #0x80 + lsls r4, r4, #2 + adds r0, r4, #0 + movs r1, #0x84 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0804DF1C + ldr r0, _0804DF80 @ =gUnk_080EEB6C + bl LoadRoomEntityList +_0804DF1C: + adds r0, r4, #0 + movs r1, #0x85 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0804DF2E + ldr r0, _0804DF84 @ =gUnk_080EEB8C + bl LoadRoomEntityList +_0804DF2E: + movs r0, #0x67 + bl sub_0807CA84 + cmp r0, #0 + bne _0804DF48 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + beq _0804DF48 + ldr r0, _0804DF88 @ =gUnk_080EE88C + bl LoadRoomEntityList +_0804DF48: + movs r0, #0x28 + bl sub_0801E7F4 + cmp r0, #0 + bne _0804DF58 + ldr r0, _0804DF8C @ =gUnk_080EE8FC + bl LoadRoomEntityList +_0804DF58: + movs r0, #0x33 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804DF68 + ldr r0, _0804DF90 @ =gUnk_080EE91C + bl LoadRoomEntityList +_0804DF68: + movs r0, #0x12 + bl GetProgressFlag + cmp r0, #0 + beq _0804DF98 + ldr r0, _0804DF94 @ =gUnk_080EE93C + bl LoadRoomEntityList + b _0804DF9E + .align 2, 0 +_0804DF7C: .4byte 0x00000DB4 +_0804DF80: .4byte gUnk_080EEB6C +_0804DF84: .4byte gUnk_080EEB8C +_0804DF88: .4byte gUnk_080EE88C +_0804DF8C: .4byte gUnk_080EE8FC +_0804DF90: .4byte gUnk_080EE91C +_0804DF94: .4byte gUnk_080EE93C +_0804DF98: + ldr r0, _0804DFF4 @ =gUnk_080EECBC + bl LoadRoomEntityList +_0804DF9E: + movs r0, #0x1b + bl sub_0801E7F4 + cmp r0, #0 + beq _0804E02A + ldr r0, _0804DFF8 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804E02A + movs r0, #0x2e + bl GetProgressFlag + cmp r0, #0 + bne _0804E024 + movs r0, #0x2f + bl GetProgressFlag + cmp r0, #0 + bne _0804E024 + movs r0, #0x30 + bl GetProgressFlag + cmp r0, #0 + bne _0804E024 + movs r0, #0x2b + bl GetProgressFlag + cmp r0, #0 + bne _0804E000 + movs r0, #0x2c + bl GetProgressFlag + cmp r0, #0 + bne _0804E000 + movs r0, #0x2d + bl GetProgressFlag + cmp r0, #0 + bne _0804E000 + ldr r0, _0804DFFC @ =gUnk_080EE95C + bl LoadRoomEntityList + b _0804E02A + .align 2, 0 +_0804DFF4: .4byte gUnk_080EECBC +_0804DFF8: .4byte gUnk_02002A40 +_0804DFFC: .4byte gUnk_080EE95C +_0804E000: + movs r0, #0x18 + bl GetProgressFlag + cmp r0, #0 + bne _0804E018 + ldr r0, _0804E014 @ =gUnk_080EE97C + bl LoadRoomEntityList + b _0804E02A + .align 2, 0 +_0804E014: .4byte gUnk_080EE97C +_0804E018: + ldr r0, _0804E020 @ =gUnk_080EE9BC + bl LoadRoomEntityList + b _0804E02A + .align 2, 0 +_0804E020: .4byte gUnk_080EE9BC +_0804E024: + ldr r0, _0804E03C @ =gUnk_080EE99C + bl LoadRoomEntityList +_0804E02A: + movs r0, #0x2b + bl GetProgressFlag + cmp r0, #0 + beq _0804E044 + ldr r0, _0804E040 @ =gUnk_080EE9FC + bl LoadRoomEntityList + b _0804E07A + .align 2, 0 +_0804E03C: .4byte gUnk_080EE99C +_0804E040: .4byte gUnk_080EE9FC +_0804E044: + movs r0, #0x2c + bl GetProgressFlag + cmp r0, #0 + beq _0804E05C + ldr r0, _0804E058 @ =gUnk_080EEA1C + bl LoadRoomEntityList + b _0804E07A + .align 2, 0 +_0804E058: .4byte gUnk_080EEA1C +_0804E05C: + movs r0, #0x2d + bl GetProgressFlag + cmp r0, #0 + beq _0804E074 + ldr r0, _0804E070 @ =gUnk_080EEA3C + bl LoadRoomEntityList + b _0804E07A + .align 2, 0 +_0804E070: .4byte gUnk_080EEA3C +_0804E074: + ldr r0, _0804E114 @ =gUnk_080EE9DC + bl LoadRoomEntityList +_0804E07A: + ldr r0, _0804E118 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #4 + bls _0804E0B0 + movs r0, #0xb + bl sub_0801E7F4 + cmp r0, #0 + bne _0804E0B0 + movs r0, #0x2b + bl GetProgressFlag + cmp r0, #0 + bne _0804E0AA + movs r0, #0x2c + bl GetProgressFlag + cmp r0, #0 + bne _0804E0AA + movs r0, #0x2d + bl GetProgressFlag + cmp r0, #0 + beq _0804E0B0 +_0804E0AA: + ldr r0, _0804E11C @ =gUnk_080EEA5C + bl LoadRoomEntityList +_0804E0B0: + movs r0, #0xd0 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E0CA + movs r0, #0x14 + bl sub_0807CA84 + cmp r0, #0 + beq _0804E0CA + ldr r0, _0804E120 @ =gUnk_080EEABC + bl LoadRoomEntityList +_0804E0CA: + ldr r0, _0804E118 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804E0E2 + movs r0, #0x1d + bl GetProgressFlag + cmp r0, #0 + beq _0804E0E2 + ldr r0, _0804E124 @ =gUnk_080EEA7C + bl LoadRoomEntityList +_0804E0E2: + ldr r0, _0804E118 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #5 + bhi _0804E0FA + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + bne _0804E0FA + ldr r0, _0804E128 @ =gUnk_080EEA9C + bl LoadRoomEntityList +_0804E0FA: + ldr r0, _0804E118 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + bne _0804E10E + ldr r0, _0804E12C @ =gUnk_080EEBAC + bl LoadRoomEntityList +_0804E10E: + bl sub_0804E150 +_0804E112: + pop {r4, pc} + .align 2, 0 +_0804E114: .4byte gUnk_080EE9DC +_0804E118: .4byte gUnk_02002A40 +_0804E11C: .4byte gUnk_080EEA5C +_0804E120: .4byte gUnk_080EEABC +_0804E124: .4byte gUnk_080EEA7C +_0804E128: .4byte gUnk_080EEA9C +_0804E12C: .4byte gUnk_080EEBAC + + thumb_func_start sub_0804E130 +sub_0804E130: @ 0x0804E130 + push {lr} + ldr r0, _0804E148 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x14 + ands r0, r1 + cmp r0, #0 + bne _0804E146 + ldr r0, _0804E14C @ =gUnk_080EEBAC + bl LoadRoomEntityList +_0804E146: + pop {pc} + .align 2, 0 +_0804E148: .4byte gUnk_02002A40 +_0804E14C: .4byte gUnk_080EEBAC + + thumb_func_start sub_0804E150 +sub_0804E150: @ 0x0804E150 + push {r4, r5, lr} + ldr r4, _0804E160 @ =gUnk_080EED2C + ldr r0, _0804E164 @ =gUnk_02002A40 + movs r5, #1 + ldrb r0, [r0, #8] + lsls r5, r0 + b _0804E17C + .align 2, 0 +_0804E160: .4byte gUnk_080EED2C +_0804E164: .4byte gUnk_02002A40 +_0804E168: + ldrh r0, [r4] + ands r0, r5 + cmp r0, #0 + beq _0804E17A + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + movs r2, #1 + bl sub_0800015E +_0804E17A: + adds r4, #6 +_0804E17C: + ldrh r0, [r4, #2] + cmp r0, #0 + bne _0804E168 + movs r0, #0xd1 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E1BA + ldr r4, _0804E198 @ =gUnk_080EED7A + ldr r0, _0804E19C @ =gUnk_02002A40 + movs r5, #1 + ldrb r0, [r0, #8] + lsls r5, r0 + b _0804E1B4 + .align 2, 0 +_0804E198: .4byte gUnk_080EED7A +_0804E19C: .4byte gUnk_02002A40 +_0804E1A0: + ldrh r0, [r4] + ands r0, r5 + cmp r0, #0 + beq _0804E1B2 + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + movs r2, #1 + bl sub_0800015E +_0804E1B2: + adds r4, #6 +_0804E1B4: + ldrh r0, [r4] + cmp r0, #0 + bne _0804E1A0 +_0804E1BA: + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + bne _0804E1F2 + ldr r4, _0804E1D0 @ =gUnk_080EED8C + ldr r0, _0804E1D4 @ =gUnk_02002A40 + movs r5, #1 + ldrb r0, [r0, #8] + lsls r5, r0 + b _0804E1EC + .align 2, 0 +_0804E1D0: .4byte gUnk_080EED8C +_0804E1D4: .4byte gUnk_02002A40 +_0804E1D8: + ldrh r0, [r4] + ands r0, r5 + cmp r0, #0 + beq _0804E1EA + ldrh r0, [r4, #4] + ldrh r1, [r4, #2] + movs r2, #1 + bl sub_0800015E +_0804E1EA: + adds r4, #6 +_0804E1EC: + ldrh r0, [r4] + cmp r0, #0 + bne _0804E1D8 +_0804E1F2: + pop {r4, r5, pc} + + thumb_func_start sub_0804E1F4 +sub_0804E1F4: @ 0x0804E1F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_76 +nullsub_76: @ 0x0804E1F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E1FC +sub_0804E1FC: @ 0x0804E1FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_77 +nullsub_77: @ 0x0804E200 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E204 +sub_0804E204: @ 0x0804E204 + movs r0, #1 + bx lr + + thumb_func_start nullsub_78 +nullsub_78: @ 0x0804E208 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E20C +sub_0804E20C: @ 0x0804E20C + movs r0, #1 + bx lr + + thumb_func_start nullsub_79 +nullsub_79: @ 0x0804E210 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E214 +sub_0804E214: @ 0x0804E214 + movs r0, #1 + bx lr + + thumb_func_start nullsub_080 +nullsub_080: @ 0x0804E218 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E21C +sub_0804E21C: @ 0x0804E21C + movs r0, #1 + bx lr + + thumb_func_start nullsub_081 +nullsub_081: @ 0x0804E220 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E224 +sub_0804E224: @ 0x0804E224 + movs r0, #1 + bx lr + + thumb_func_start nullsub_082 +nullsub_082: @ 0x0804E228 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E22C +sub_0804E22C: @ 0x0804E22C + movs r0, #1 + bx lr + + thumb_func_start nullsub_083 +nullsub_083: @ 0x0804E230 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E234 +sub_0804E234: @ 0x0804E234 + movs r0, #1 + bx lr + + thumb_func_start nullsub_084 +nullsub_084: @ 0x0804E238 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E23C +sub_0804E23C: @ 0x0804E23C + movs r0, #1 + bx lr + + thumb_func_start nullsub_085 +nullsub_085: @ 0x0804E240 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E244 +sub_0804E244: @ 0x0804E244 + movs r0, #1 + bx lr + + thumb_func_start nullsub_086 +nullsub_086: @ 0x0804E248 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E24C +sub_0804E24C: @ 0x0804E24C + movs r0, #1 + bx lr + + thumb_func_start nullsub_087 +nullsub_087: @ 0x0804E250 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E254 +sub_0804E254: @ 0x0804E254 + movs r0, #1 + bx lr + + thumb_func_start nullsub_088 +nullsub_088: @ 0x0804E258 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E25C +sub_0804E25C: @ 0x0804E25C + push {lr} + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _0804E26E + ldr r1, _0804E274 @ =gUnk_02034350 + ldr r0, _0804E278 @ =gUnk_080F09A0 + str r0, [r1, #0x70] +_0804E26E: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804E274: .4byte gUnk_02034350 +_0804E278: .4byte gUnk_080F09A0 + + thumb_func_start sub_0804E27C +sub_0804E27C: @ 0x0804E27C + push {r4, lr} + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + bne _0804E2AC + ldr r0, _0804E2A0 @ =gUnk_080F0650 + bl LoadRoomEntityList + ldr r0, _0804E2A4 @ =gUnk_02033A90 + ldr r1, _0804E2A8 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x13 + str r1, [r0] + movs r0, #0x64 + bl sub_0807CD04 + b _0804E2C0 + .align 2, 0 +_0804E2A0: .4byte gUnk_080F0650 +_0804E2A4: .4byte gUnk_02033A90 +_0804E2A8: .4byte 0x00000864 +_0804E2AC: + movs r0, #0x64 + bl GetProgressFlag + cmp r0, #0 + beq _0804E2C0 + ldr r0, _0804E300 @ =gUnk_02033A90 + ldr r1, _0804E304 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x1b + str r1, [r0] +_0804E2C0: + movs r0, #0x9c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E318 + ldr r0, _0804E308 @ =gUnk_080F0800 + bl LoadRoomEntityList + ldr r4, _0804E30C @ =0x00004072 + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804E310 @ =0x00000266 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804E314 @ =0x000002A6 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + b _0804E3A6 + .align 2, 0 +_0804E300: .4byte gUnk_02033A90 +_0804E304: .4byte 0x00000864 +_0804E308: .4byte gUnk_080F0800 +_0804E30C: .4byte 0x00004072 +_0804E310: .4byte 0x00000266 +_0804E314: .4byte 0x000002A6 +_0804E318: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E348 + ldr r0, _0804E360 @ =gUnk_080F08F0 + bl LoadRoomEntityList + ldr r4, _0804E364 @ =0x00004072 + adds r0, r4, #0 + movs r1, #0x9e + movs r2, #1 + bl sub_0807B314 + adds r0, r4, #0 + movs r1, #0x9f + movs r2, #1 + bl sub_0807B314 + adds r0, r4, #0 + movs r1, #0xa0 + movs r2, #1 + bl sub_0807B314 +_0804E348: + ldr r0, _0804E368 @ =gUnk_080F0850 + bl LoadRoomEntityList + movs r0, #0x42 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E370 + ldr r0, _0804E36C @ =gUnk_080F0870 + bl LoadRoomEntityList + b _0804E376 + .align 2, 0 +_0804E360: .4byte gUnk_080F08F0 +_0804E364: .4byte 0x00004072 +_0804E368: .4byte gUnk_080F0850 +_0804E36C: .4byte gUnk_080F0870 +_0804E370: + ldr r0, _0804E3AC @ =gUnk_080F0890 + bl LoadRoomEntityList +_0804E376: + ldr r4, _0804E3B0 @ =0x00004072 + movs r1, #0x96 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x10 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804E3A6 + ldr r0, _0804E3B4 @ =gUnk_080F0920 + bl LoadRoomEntityList + movs r0, #0x10 + bl sub_0807CD34 +_0804E3A6: + bl sub_080AF284 + pop {r4, pc} + .align 2, 0 +_0804E3AC: .4byte gUnk_080F0890 +_0804E3B0: .4byte 0x00004072 +_0804E3B4: .4byte gUnk_080F0920 + + thumb_func_start sub_0804E3B8 +sub_0804E3B8: @ 0x0804E3B8 + push {lr} + movs r0, #1 + bl sub_0807CD34 + movs r0, #1 + pop {pc} + + thumb_func_start sub_0804E3C4 +sub_0804E3C4: @ 0x0804E3C4 + push {r4, r5, r6, lr} + movs r0, #5 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r6, r1, #0x1f + movs r0, #6 + bl GetProgressFlag + cmp r0, #0 + beq _0804E3DE + movs r6, #2 +_0804E3DE: + movs r0, #0x55 + bl GetProgressFlag + cmp r0, #0 + beq _0804E3EA + movs r6, #3 +_0804E3EA: + bl sub_08000E50 + adds r4, r0, #0 + ldr r1, _0804E448 @ =gUnk_080F0D58 + lsls r0, r6, #2 + adds r0, r0, r1 + movs r5, #0x1f + adds r1, r4, #0 + ands r1, r5 + ldr r0, [r0] + adds r0, r0, r1 + ldrb r6, [r0] + ldr r1, _0804E44C @ =gUnk_080F0CB8 + movs r0, #0xf + ands r0, r6 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl LoadRoomEntityList + lsrs r6, r6, #4 + lsrs r4, r4, #8 + ldr r1, _0804E450 @ =gUnk_080F0E08 + lsls r0, r6, #2 + adds r0, r0, r1 + ands r4, r5 + ldr r0, [r0] + adds r0, r0, r4 + ldrb r6, [r0] + movs r0, #0xc6 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E436 + movs r0, #0xc6 + bl sub_0807CCB4 + movs r6, #0xe +_0804E436: + lsls r0, r6, #3 + ldr r1, _0804E454 @ =gUnk_080F0E1C + adds r0, r0, r1 + bl sub_0804B3C4 + ldr r0, _0804E458 @ =0x80100000 + bl sub_080A3268 + pop {r4, r5, r6, pc} + .align 2, 0 +_0804E448: .4byte gUnk_080F0D58 +_0804E44C: .4byte gUnk_080F0CB8 +_0804E450: .4byte gUnk_080F0E08 +_0804E454: .4byte gUnk_080F0E1C +_0804E458: .4byte 0x80100000 + + thumb_func_start sub_0804E45C +sub_0804E45C: @ 0x0804E45C + movs r0, #1 + bx lr + + thumb_func_start sub_0804E460 +sub_0804E460: @ 0x0804E460 + push {lr} + movs r0, #0x4a + bl GetProgressFlag + cmp r0, #0 + bne _0804E478 + ldr r0, _0804E474 @ =gUnk_080F1C68 + bl LoadRoomEntityList + b _0804E47E + .align 2, 0 +_0804E474: .4byte gUnk_080F1C68 +_0804E478: + ldr r0, _0804E480 @ =gUnk_080F1C88 + bl LoadRoomEntityList +_0804E47E: + pop {pc} + .align 2, 0 +_0804E480: .4byte gUnk_080F1C88 + + thumb_func_start sub_0804E484 +sub_0804E484: @ 0x0804E484 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E488 +sub_0804E488: @ 0x0804E488 + push {lr} + movs r0, #0x2e + bl GetProgressFlag + cmp r0, #0 + beq _0804E4A0 + ldr r0, _0804E49C @ =gUnk_080F1D90 + bl LoadRoomEntityList + b _0804E4C8 + .align 2, 0 +_0804E49C: .4byte gUnk_080F1D90 +_0804E4A0: + movs r0, #0x2f + bl GetProgressFlag + cmp r0, #0 + beq _0804E4B8 + ldr r0, _0804E4B4 @ =gUnk_080F1DB0 + bl LoadRoomEntityList + b _0804E4C8 + .align 2, 0 +_0804E4B4: .4byte gUnk_080F1DB0 +_0804E4B8: + movs r0, #0x30 + bl GetProgressFlag + cmp r0, #0 + beq _0804E4C8 + ldr r0, _0804E4CC @ =gUnk_080F1DD0 + bl LoadRoomEntityList +_0804E4C8: + pop {pc} + .align 2, 0 +_0804E4CC: .4byte gUnk_080F1DD0 + + thumb_func_start sub_0804E4D0 +sub_0804E4D0: @ 0x0804E4D0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_375 +nullsub_375: @ 0x0804E4D4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E4D8 +sub_0804E4D8: @ 0x0804E4D8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_376 +nullsub_376: @ 0x0804E4DC + bx lr + .align 2, 0 + + thumb_func_start sub_0804E4E0 +sub_0804E4E0: @ 0x0804E4E0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E4E4 +sub_0804E4E4: @ 0x0804E4E4 + push {lr} + ldr r0, _0804E518 @ =gUnk_080F2174 + bl LoadRoomEntityList + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #0 + bne _0804E506 + movs r0, #0x2a + bl GetProgressFlag + cmp r0, #0 + beq _0804E506 + ldr r0, _0804E51C @ =gUnk_080F2194 + bl LoadRoomEntityList +_0804E506: + ldr r0, _0804E520 @ =gUnk_030010A0 + ldrb r0, [r0, #0xf] + cmp r0, #1 + bne _0804E514 + ldr r0, _0804E524 @ =gUnk_080F21B4 + bl LoadRoomEntityList +_0804E514: + pop {pc} + .align 2, 0 +_0804E518: .4byte gUnk_080F2174 +_0804E51C: .4byte gUnk_080F2194 +_0804E520: .4byte gUnk_030010A0 +_0804E524: .4byte gUnk_080F21B4 + + thumb_func_start sub_0804E528 +sub_0804E528: @ 0x0804E528 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E52C +sub_0804E52C: @ 0x0804E52C + push {lr} + ldr r0, _0804E558 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #7 + bls _0804E53C + ldr r0, _0804E55C @ =gUnk_080F23BC + bl LoadRoomEntityList +_0804E53C: + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E564 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0804E564 + ldr r0, _0804E560 @ =gUnk_080F238C + bl LoadRoomEntityList + b _0804E56A + .align 2, 0 +_0804E558: .4byte gUnk_02002A40 +_0804E55C: .4byte gUnk_080F23BC +_0804E560: .4byte gUnk_080F238C +_0804E564: + ldr r0, _0804E56C @ =gUnk_080F236C + bl LoadRoomEntityList +_0804E56A: + pop {pc} + .align 2, 0 +_0804E56C: .4byte gUnk_080F236C + + thumb_func_start sub_0804E570 +sub_0804E570: @ 0x0804E570 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E574 +sub_0804E574: @ 0x0804E574 + push {lr} + ldr r0, _0804E588 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #9 + bhi _0804E608 + lsls r0, r0, #2 + ldr r1, _0804E58C @ =_0804E590 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0804E588: .4byte gUnk_02002A40 +_0804E58C: .4byte _0804E590 +_0804E590: @ jump table + .4byte _0804E5CC @ case 0 + .4byte _0804E608 @ case 1 + .4byte _0804E5CC @ case 2 + .4byte _0804E608 @ case 3 + .4byte _0804E5CC @ case 4 + .4byte _0804E5B8 @ case 5 + .4byte _0804E602 @ case 6 + .4byte _0804E602 @ case 7 + .4byte _0804E5FC @ case 8 + .4byte _0804E5FC @ case 9 +_0804E5B8: + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E5F0 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + bne _0804E5D8 +_0804E5CC: + ldr r0, _0804E5D4 @ =gUnk_080F2570 + bl LoadRoomEntityList + b _0804E608 + .align 2, 0 +_0804E5D4: .4byte gUnk_080F2570 +_0804E5D8: + movs r0, #0x39 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E608 + ldr r0, _0804E5EC @ =gUnk_080F25C0 + bl LoadRoomEntityList + b _0804E608 + .align 2, 0 +_0804E5EC: .4byte gUnk_080F25C0 +_0804E5F0: + ldr r0, _0804E5F8 @ =gUnk_080F2590 + bl LoadRoomEntityList + b _0804E608 + .align 2, 0 +_0804E5F8: .4byte gUnk_080F2590 +_0804E5FC: + ldr r0, _0804E60C @ =gUnk_080F2600 + bl LoadRoomEntityList +_0804E602: + ldr r0, _0804E610 @ =gUnk_080F2590 + bl LoadRoomEntityList +_0804E608: + pop {pc} + .align 2, 0 +_0804E60C: .4byte gUnk_080F2600 +_0804E610: .4byte gUnk_080F2590 + + thumb_func_start sub_0804E614 +sub_0804E614: @ 0x0804E614 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E618 +sub_0804E618: @ 0x0804E618 + push {lr} + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804E67A + movs r0, #0x42 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E65C + movs r0, #0x43 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E650 + ldr r0, _0804E648 @ =gUnk_080F2718 + bl LoadRoomEntityList + ldr r0, _0804E64C @ =gUnk_080F2860 + bl sub_0804B1AC + b _0804E67A + .align 2, 0 +_0804E648: .4byte gUnk_080F2718 +_0804E64C: .4byte gUnk_080F2860 +_0804E650: + ldr r0, _0804E658 @ =gUnk_080F2758 + bl LoadRoomEntityList + b _0804E67A + .align 2, 0 +_0804E658: .4byte gUnk_080F2758 +_0804E65C: + movs r0, #0x3f + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E674 + ldr r0, _0804E670 @ =gUnk_080F27D8 + bl LoadRoomEntityList + b _0804E67A + .align 2, 0 +_0804E670: .4byte gUnk_080F27D8 +_0804E674: + ldr r0, _0804E67C @ =gUnk_080F2798 + bl LoadRoomEntityList +_0804E67A: + pop {pc} + .align 2, 0 +_0804E67C: .4byte gUnk_080F2798 + + thumb_func_start sub_0804E680 +sub_0804E680: @ 0x0804E680 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E684 +sub_0804E684: @ 0x0804E684 + push {lr} + movs r0, #0x2b + bl GetProgressFlag + cmp r0, #0 + beq _0804E69C + ldr r0, _0804E698 @ =gUnk_080F28D4 + bl LoadRoomEntityList + b _0804E6C4 + .align 2, 0 +_0804E698: .4byte gUnk_080F28D4 +_0804E69C: + movs r0, #0x2c + bl GetProgressFlag + cmp r0, #0 + beq _0804E6B4 + ldr r0, _0804E6B0 @ =gUnk_080F28F4 + bl LoadRoomEntityList + b _0804E6C4 + .align 2, 0 +_0804E6B0: .4byte gUnk_080F28F4 +_0804E6B4: + movs r0, #0x2d + bl GetProgressFlag + cmp r0, #0 + beq _0804E6C4 + ldr r0, _0804E6C8 @ =gUnk_080F2914 + bl LoadRoomEntityList +_0804E6C4: + pop {pc} + .align 2, 0 +_0804E6C8: .4byte gUnk_080F2914 + + thumb_func_start sub_0804E6CC +sub_0804E6CC: @ 0x0804E6CC + movs r0, #1 + bx lr + + thumb_func_start nullsub_377 +nullsub_377: @ 0x0804E6D0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E6D4 +sub_0804E6D4: @ 0x0804E6D4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_378 +nullsub_378: @ 0x0804E6D8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E6DC +sub_0804E6DC: @ 0x0804E6DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_379 +nullsub_379: @ 0x0804E6E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804E6E4 +sub_0804E6E4: @ 0x0804E6E4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E6E8 +sub_0804E6E8: @ 0x0804E6E8 + push {lr} + movs r0, #0x49 + bl GetProgressFlag + cmp r0, #0 + bne _0804E70A + ldr r0, _0804E71C @ =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, _0804E720 @ =0x800B0036 + bl sub_080A3268 +_0804E70A: + movs r0, #0x13 + bl GetProgressFlag + cmp r0, #0 + bne _0804E71A + ldr r0, _0804E724 @ =gUnk_080F2E2C + bl LoadRoomEntityList +_0804E71A: + pop {pc} + .align 2, 0 +_0804E71C: .4byte gUnk_02033A90 +_0804E720: .4byte 0x800B0036 +_0804E724: .4byte gUnk_080F2E2C + + thumb_func_start sub_0804E728 +sub_0804E728: @ 0x0804E728 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E72C +sub_0804E72C: @ 0x0804E72C + push {lr} + movs r0, #0x49 + bl GetProgressFlag + cmp r0, #0 + bne _0804E74E + ldr r0, _0804E760 @ =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, _0804E764 @ =0x800B0036 + bl sub_080A3268 +_0804E74E: + movs r0, #0x13 + bl GetProgressFlag + cmp r0, #0 + bne _0804E76C + ldr r0, _0804E768 @ =gUnk_080F2E94 + bl LoadRoomEntityList + b _0804E772 + .align 2, 0 +_0804E760: .4byte gUnk_02033A90 +_0804E764: .4byte 0x800B0036 +_0804E768: .4byte gUnk_080F2E94 +_0804E76C: + ldr r0, _0804E774 @ =gUnk_080F2EC4 + bl LoadRoomEntityList +_0804E772: + pop {pc} + .align 2, 0 +_0804E774: .4byte gUnk_080F2EC4 + + thumb_func_start sub_0804E778 +sub_0804E778: @ 0x0804E778 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E77C +sub_0804E77C: @ 0x0804E77C + push {lr} + movs r0, #0x69 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804E792 + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #1 + bls _0804E798 +_0804E792: + ldr r0, _0804E79C @ =gUnk_080F2FD4 + bl LoadRoomEntityList +_0804E798: + pop {pc} + .align 2, 0 +_0804E79C: .4byte gUnk_080F2FD4 + + thumb_func_start sub_0804E7A0 +sub_0804E7A0: @ 0x0804E7A0 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E7A4 +sub_0804E7A4: @ 0x0804E7A4 + push {lr} + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #1 + bne _0804E7CC + movs r0, #0x5b + bl GetProgressFlag + cmp r0, #0 + bne _0804E7CC + ldr r0, _0804E7D0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0804E7CC + ldr r0, _0804E7D4 @ =gUnk_080F30CC + bl LoadRoomEntityList +_0804E7CC: + pop {pc} + .align 2, 0 +_0804E7D0: .4byte gUnk_03003F80 +_0804E7D4: .4byte gUnk_080F30CC + + thumb_func_start sub_0804E7D8 +sub_0804E7D8: @ 0x0804E7D8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E7DC +sub_0804E7DC: @ 0x0804E7DC + push {r4, lr} + movs r0, #0x13 + bl GetProgressFlag + cmp r0, #0 + bne _0804E818 + movs r0, #0x46 + bl sub_0807CBD0 + adds r4, r0, #0 + cmp r4, #0 + bne _0804E818 + movs r0, #5 + movs r1, #1 + movs r2, #4 + movs r3, #4 + bl sub_080A71C4 + ldr r0, _0804E84C @ =gUnk_02000070 + strb r4, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + ldr r2, _0804E850 @ =gUnk_08009B30 + movs r0, #0 + movs r1, #6 + bl sub_080751E8 +_0804E818: + movs r0, #0x49 + bl GetProgressFlag + cmp r0, #0 + bne _0804E838 + ldr r0, _0804E854 @ =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, _0804E858 @ =0x800B0036 + bl sub_080A3268 +_0804E838: + ldr r0, _0804E85C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _0804E84A + ldr r0, _0804E860 @ =gUnk_080F31D8 + bl LoadRoomEntityList +_0804E84A: + pop {r4, pc} + .align 2, 0 +_0804E84C: .4byte gUnk_02000070 +_0804E850: .4byte gUnk_08009B30 +_0804E854: .4byte gUnk_02033A90 +_0804E858: .4byte 0x800B0036 +_0804E85C: .4byte gUnk_03003F80 +_0804E860: .4byte gUnk_080F31D8 + + thumb_func_start sub_0804E864 +sub_0804E864: @ 0x0804E864 + push {lr} + ldr r2, _0804E888 @ =gLinkEntity + ldr r1, _0804E88C @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, #0x90 + strh r0, [r2, #0x2e] + ldrh r0, [r1, #8] + adds r0, #0x38 + strh r0, [r2, #0x32] + ldr r2, _0804E890 @ =gUnk_08009E58 + movs r0, #1 + movs r1, #6 + bl sub_080751E8 + movs r0, #0xa0 + bl sub_080526A0 + pop {pc} + .align 2, 0 +_0804E888: .4byte gLinkEntity +_0804E88C: .4byte gUnk_03000BF0 +_0804E890: .4byte gUnk_08009E58 + + thumb_func_start sub_0804E894 +sub_0804E894: @ 0x0804E894 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E898 +sub_0804E898: @ 0x0804E898 + push {r4, lr} + movs r0, #0x12 + bl sub_0807CA84 + cmp r0, #0 + beq _0804E8D8 + ldr r0, _0804E8DC @ =gUnk_080F3260 + bl LoadRoomEntityList + ldr r4, _0804E8E0 @ =0x00004072 + ldr r1, _0804E8E4 @ =0x00000202 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804E8E8 @ =0x00000242 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0x81 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0x91 + lsls r1, r1, #2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 +_0804E8D8: + pop {r4, pc} + .align 2, 0 +_0804E8DC: .4byte gUnk_080F3260 +_0804E8E0: .4byte 0x00004072 +_0804E8E4: .4byte 0x00000202 +_0804E8E8: .4byte 0x00000242 + + thumb_func_start sub_0804E8EC +sub_0804E8EC: @ 0x0804E8EC + movs r0, #1 + bx lr + + thumb_func_start sub_0804E8F0 +sub_0804E8F0: @ 0x0804E8F0 + push {lr} + bl sub_08054564 + pop {pc} + + thumb_func_start sub_0804E8F8 +sub_0804E8F8: @ 0x0804E8F8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E8FC +sub_0804E8FC: @ 0x0804E8FC + push {lr} + movs r0, #0x1d + bl GetProgressFlag + cmp r0, #0 + bne _0804E914 + ldr r0, _0804E910 @ =gUnk_080F36FC + bl LoadRoomEntityList + b _0804E922 + .align 2, 0 +_0804E910: .4byte gUnk_080F36FC +_0804E914: + ldr r0, _0804E924 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bhi _0804E922 + ldr r0, _0804E928 @ =gUnk_080F3604 + bl LoadRoomEntityList +_0804E922: + pop {pc} + .align 2, 0 +_0804E924: .4byte gUnk_02002A40 +_0804E928: .4byte gUnk_080F3604 + + thumb_func_start sub_0804E92C +sub_0804E92C: @ 0x0804E92C + movs r0, #1 + bx lr + + thumb_func_start sub_0804E930 +sub_0804E930: @ 0x0804E930 + push {lr} + movs r0, #0x1d + bl GetProgressFlag + cmp r0, #0 + beq _0804E942 + ldr r0, _0804E944 @ =gUnk_080F37D0 + bl LoadRoomEntityList +_0804E942: + pop {pc} + .align 2, 0 +_0804E944: .4byte gUnk_080F37D0 + + thumb_func_start sub_0804E948 +sub_0804E948: @ 0x0804E948 + movs r0, #1 + bx lr + + thumb_func_start nullsub_380 +nullsub_380: @ 0x0804E94C + bx lr + .align 2, 0 + + thumb_func_start sub_0804E950 +sub_0804E950: @ 0x0804E950 + movs r0, #1 + bx lr + + thumb_func_start sub_0804E954 +sub_0804E954: @ 0x0804E954 + push {lr} + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0804E97A + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0804E97A + movs r0, #0x3b + bl sub_0807CA84 + cmp r0, #0 + bne _0804E97A + ldr r0, _0804E988 @ =gUnk_080F3A48 + bl LoadRoomEntityList +_0804E97A: + ldr r0, _0804E98C @ =gUnk_030010A0 + ldr r1, _0804E990 @ =0x00000F28 + strh r1, [r0, #0x20] + ldr r1, _0804E994 @ =0x0000082D + strh r1, [r0, #0x22] + pop {pc} + .align 2, 0 +_0804E988: .4byte gUnk_080F3A48 +_0804E98C: .4byte gUnk_030010A0 +_0804E990: .4byte 0x00000F28 +_0804E994: .4byte 0x0000082D + + thumb_func_start sub_0804E998 +sub_0804E998: @ 0x0804E998 + push {lr} + movs r0, #5 + bl GetProgressFlag + cmp r0, #0 + beq _0804E9BC + movs r0, #4 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E9BC + ldr r1, _0804E9B4 @ =gUnk_02034350 + ldr r0, _0804E9B8 @ =gUnk_080F3EA4 + b _0804E9C0 + .align 2, 0 +_0804E9B4: .4byte gUnk_02034350 +_0804E9B8: .4byte gUnk_080F3EA4 +_0804E9BC: + ldr r1, _0804E9C8 @ =gUnk_02034350 + ldr r0, _0804E9CC @ =gUnk_080F3D44 +_0804E9C0: + str r0, [r1, #0x74] + movs r0, #1 + pop {pc} + .align 2, 0 +_0804E9C8: .4byte gUnk_02034350 +_0804E9CC: .4byte gUnk_080F3D44 + + thumb_func_start sub_0804E9D0 +sub_0804E9D0: @ 0x0804E9D0 + push {r4, lr} + movs r0, #5 + bl GetProgressFlag + cmp r0, #0 + beq _0804E9EC + movs r0, #4 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804E9EC + ldr r0, _0804EAC4 @ =gUnk_080F3C64 + bl LoadRoomEntityList +_0804E9EC: + movs r0, #0x12 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804E9FC + ldr r0, _0804EAC8 @ =gUnk_080F3C94 + bl LoadRoomEntityList +_0804E9FC: + ldr r0, _0804EACC @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804EA14 + movs r0, #0x5c + bl GetProgressFlag + cmp r0, #0 + beq _0804EA14 + ldr r0, _0804EAD0 @ =gUnk_080F3C44 + bl LoadRoomEntityList +_0804EA14: + ldr r4, _0804EAD4 @ =0x00004091 + movs r1, #0xb2 + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAD8 @ =0x00000591 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EADC @ =0x00000592 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAE0 @ =0x00000593 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAE4 @ =0x00000594 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xba + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xc2 + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xca + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAE8 @ =0x000005D4 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAEC @ =0x00000614 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAF0 @ =0x00000654 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + movs r1, #0xd2 + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAF4 @ =0x00000691 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAF8 @ =0x00000692 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EAFC @ =0x00000693 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0804EB00 @ =0x00000694 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + pop {r4, pc} + .align 2, 0 +_0804EAC4: .4byte gUnk_080F3C64 +_0804EAC8: .4byte gUnk_080F3C94 +_0804EACC: .4byte gUnk_02002A40 +_0804EAD0: .4byte gUnk_080F3C44 +_0804EAD4: .4byte 0x00004091 +_0804EAD8: .4byte 0x00000591 +_0804EADC: .4byte 0x00000592 +_0804EAE0: .4byte 0x00000593 +_0804EAE4: .4byte 0x00000594 +_0804EAE8: .4byte 0x000005D4 +_0804EAEC: .4byte 0x00000614 +_0804EAF0: .4byte 0x00000654 +_0804EAF4: .4byte 0x00000691 +_0804EAF8: .4byte 0x00000692 +_0804EAFC: .4byte 0x00000693 +_0804EB00: .4byte 0x00000694 + + thumb_func_start sub_0804EB04 +sub_0804EB04: @ 0x0804EB04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_381 +nullsub_381: @ 0x0804EB08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB0C +sub_0804EB0C: @ 0x0804EB0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_382 +nullsub_382: @ 0x0804EB10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB14 +sub_0804EB14: @ 0x0804EB14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_383 +nullsub_383: @ 0x0804EB18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB1C +sub_0804EB1C: @ 0x0804EB1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_384 +nullsub_384: @ 0x0804EB20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB24 +sub_0804EB24: @ 0x0804EB24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_385 +nullsub_385: @ 0x0804EB28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB2C +sub_0804EB2C: @ 0x0804EB2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_386 +nullsub_386: @ 0x0804EB30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB34 +sub_0804EB34: @ 0x0804EB34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_387 +nullsub_387: @ 0x0804EB38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB3C +sub_0804EB3C: @ 0x0804EB3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_388 +nullsub_388: @ 0x0804EB40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB44 +sub_0804EB44: @ 0x0804EB44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_389 +nullsub_389: @ 0x0804EB48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB4C +sub_0804EB4C: @ 0x0804EB4C + movs r0, #1 + bx lr + + thumb_func_start nullsub_390 +nullsub_390: @ 0x0804EB50 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB54 +sub_0804EB54: @ 0x0804EB54 + ldr r2, _0804EB64 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + bx lr + .align 2, 0 +_0804EB64: .4byte gUnk_02033A90 + + thumb_func_start nullsub_391 +nullsub_391: @ 0x0804EB68 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB6C +sub_0804EB6C: @ 0x0804EB6C + ldr r2, _0804EB7C @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + bx lr + .align 2, 0 +_0804EB7C: .4byte gUnk_02033A90 + + thumb_func_start nullsub_392 +nullsub_392: @ 0x0804EB80 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB84 +sub_0804EB84: @ 0x0804EB84 + ldr r2, _0804EB94 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + bx lr + .align 2, 0 +_0804EB94: .4byte gUnk_02033A90 + + thumb_func_start nullsub_393 +nullsub_393: @ 0x0804EB98 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EB9C +sub_0804EB9C: @ 0x0804EB9C + push {lr} + movs r0, #0x58 + movs r1, #5 + bl sub_0801DD58 + ldr r2, _0804EBB4 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + pop {pc} + .align 2, 0 +_0804EBB4: .4byte gUnk_02033A90 + + thumb_func_start nullsub_394 +nullsub_394: @ 0x0804EBB8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EBBC +sub_0804EBBC: @ 0x0804EBBC + push {lr} + movs r0, #0x58 + movs r1, #6 + bl sub_0801DD58 + ldr r2, _0804EBD4 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x48 + orrs r0, r1 + strb r0, [r2] + movs r0, #1 + pop {pc} + .align 2, 0 +_0804EBD4: .4byte gUnk_02033A90 + + thumb_func_start nullsub_395 +nullsub_395: @ 0x0804EBD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EBDC +sub_0804EBDC: @ 0x0804EBDC + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804EBF2 + ldr r0, _0804EBF8 @ =gUnk_02034350 + ldr r1, _0804EBFC @ =gUnk_080F4EB0 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804EBF2: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804EBF8: .4byte gUnk_02034350 +_0804EBFC: .4byte gUnk_080F4EB0 + + thumb_func_start sub_0804EC00 +sub_0804EC00: @ 0x0804EC00 + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804EC1A + ldr r0, _0804EC48 @ =gUnk_02033A90 + ldr r2, _0804EC4C @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] +_0804EC1A: + movs r0, #0x14 + bl GetProgressFlag + cmp r0, #0 + bne _0804EC2A + ldr r0, _0804EC50 @ =gUnk_080F4D50 + bl LoadRoomEntityList +_0804EC2A: + movs r0, #0x3e + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EC64 + movs r0, #0x3b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EC58 + ldr r0, _0804EC54 @ =gUnk_080F4DB0 + bl LoadRoomEntityList + b _0804EC5E + .align 2, 0 +_0804EC48: .4byte gUnk_02033A90 +_0804EC4C: .4byte 0x00000864 +_0804EC50: .4byte gUnk_080F4D50 +_0804EC54: .4byte gUnk_080F4DB0 +_0804EC58: + ldr r0, _0804EC84 @ =gUnk_080F4DD0 + bl LoadRoomEntityList +_0804EC5E: + ldr r0, _0804EC88 @ =gUnk_080F4DF0 + bl LoadRoomEntityList +_0804EC64: + movs r0, #0x4e + bl sub_0801E7F4 + cmp r0, #0 + beq _0804EC74 + ldr r0, _0804EC8C @ =gUnk_080F4F10 + bl LoadRoomEntityList +_0804EC74: + ldr r0, _0804EC90 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + cmp r0, #0 + blt _0804EC82 + ldr r0, _0804EC94 @ =gUnk_080F4E10 + bl LoadRoomEntityList +_0804EC82: + pop {pc} + .align 2, 0 +_0804EC84: .4byte gUnk_080F4DD0 +_0804EC88: .4byte gUnk_080F4DF0 +_0804EC8C: .4byte gUnk_080F4F10 +_0804EC90: .4byte gUnk_02002A40 +_0804EC94: .4byte gUnk_080F4E10 + + thumb_func_start sub_0804EC98 +sub_0804EC98: @ 0x0804EC98 + push {lr} + ldr r0, _0804ECAC @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + cmp r0, #0 + blt _0804ECA8 + ldr r0, _0804ECB0 @ =gUnk_080F4E10 + bl LoadRoomEntityList +_0804ECA8: + pop {pc} + .align 2, 0 +_0804ECAC: .4byte gUnk_02002A40 +_0804ECB0: .4byte gUnk_080F4E10 + + thumb_func_start sub_0804ECB4 +sub_0804ECB4: @ 0x0804ECB4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_396 +nullsub_396: @ 0x0804ECB8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804ECBC +sub_0804ECBC: @ 0x0804ECBC + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804ECDA + ldr r1, _0804ECE0 @ =gUnk_02034350 + ldr r0, _0804ECE4 @ =gUnk_080F5348 + str r0, [r1, #0x6c] + adds r2, r1, #0 + adds r2, #0x88 + ldr r0, _0804ECE8 @ =sub_0804ED18 + str r0, [r2] + movs r0, #0 + str r0, [r1, #0x74] +_0804ECDA: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804ECE0: .4byte gUnk_02034350 +_0804ECE4: .4byte gUnk_080F5348 +_0804ECE8: .4byte sub_0804ED18 + + thumb_func_start sub_0804ECEC +sub_0804ECEC: @ 0x0804ECEC + push {lr} + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0804ED0E + ldr r0, _0804ED10 @ =gUnk_080F5328 + bl LoadRoomEntityList + movs r0, #0x14 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804ED0E + ldr r0, _0804ED14 @ =gUnk_080F5308 + bl LoadRoomEntityList +_0804ED0E: + pop {pc} + .align 2, 0 +_0804ED10: .4byte gUnk_080F5328 +_0804ED14: .4byte gUnk_080F5308 + + thumb_func_start sub_0804ED18 +sub_0804ED18: @ 0x0804ED18 + ldr r0, _0804ED28 @ =gUnk_02033A90 + ldr r2, _0804ED2C @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + bx lr + .align 2, 0 +_0804ED28: .4byte gUnk_02033A90 +_0804ED2C: .4byte 0x00000864 + + thumb_func_start sub_0804ED30 +sub_0804ED30: @ 0x0804ED30 + movs r0, #1 + bx lr + + thumb_func_start sub_0804ED34 +sub_0804ED34: @ 0x0804ED34 + push {lr} + bl sub_080AF2E4 + movs r0, #0x5d + bl GetProgressFlag + cmp r0, #0 + beq _0804ED4E + ldr r0, _0804ED50 @ =gUnk_02033A90 + ldr r1, _0804ED54 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x31 + str r1, [r0] +_0804ED4E: + pop {pc} + .align 2, 0 +_0804ED50: .4byte gUnk_02033A90 +_0804ED54: .4byte 0x00000864 + + thumb_func_start sub_0804ED58 +sub_0804ED58: @ 0x0804ED58 + movs r0, #1 + bx lr + + thumb_func_start sub_0804ED5C +sub_0804ED5C: @ 0x0804ED5C + push {lr} + movs r0, #0x79 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804ED6E + ldr r0, _0804EDA8 @ =gUnk_080F54E8 + bl LoadRoomEntityList +_0804ED6E: + movs r0, #0x7a + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EDB0 + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EE16 + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + movs r0, #0x41 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + ldr r0, _0804EDAC @ =gUnk_080F5508 + bl LoadRoomEntityList + b _0804EE16 + .align 2, 0 +_0804EDA8: .4byte gUnk_080F54E8 +_0804EDAC: .4byte gUnk_080F5508 +_0804EDB0: + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EDE4 + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + movs r0, #4 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EE16 + movs r0, #0x42 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + ldr r0, _0804EDE0 @ =gUnk_080F5558 + bl LoadRoomEntityList + b _0804EE16 + .align 2, 0 +_0804EDE0: .4byte gUnk_080F5558 +_0804EDE4: + movs r0, #0x7c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EE10 + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EE16 + movs r0, #0x43 + bl sub_0807CA84 + cmp r0, #0 + beq _0804EE16 + ldr r0, _0804EE0C @ =gUnk_080F5598 + bl LoadRoomEntityList + b _0804EE16 + .align 2, 0 +_0804EE0C: .4byte gUnk_080F5598 +_0804EE10: + ldr r0, _0804EE5C @ =gUnk_080F55D8 + bl LoadRoomEntityList +_0804EE16: + movs r0, #0x7a + bl sub_0807CBD0 + cmp r0, #0 + beq _0804EE26 + ldr r0, _0804EE60 @ =gUnk_080F5528 + bl LoadRoomEntityList +_0804EE26: + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + beq _0804EE36 + ldr r0, _0804EE64 @ =gUnk_080F5578 + bl LoadRoomEntityList +_0804EE36: + movs r0, #0x7c + bl sub_0807CBD0 + cmp r0, #0 + beq _0804EE46 + ldr r0, _0804EE68 @ =gUnk_080F55B8 + bl LoadRoomEntityList +_0804EE46: + movs r0, #0x5d + bl GetProgressFlag + cmp r0, #0 + beq _0804EE5A + ldr r0, _0804EE6C @ =gUnk_02033A90 + ldr r1, _0804EE70 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x31 + str r1, [r0] +_0804EE5A: + pop {pc} + .align 2, 0 +_0804EE5C: .4byte gUnk_080F55D8 +_0804EE60: .4byte gUnk_080F5528 +_0804EE64: .4byte gUnk_080F5578 +_0804EE68: .4byte gUnk_080F55B8 +_0804EE6C: .4byte gUnk_02033A90 +_0804EE70: .4byte 0x00000864 + + thumb_func_start sub_0804EE74 +sub_0804EE74: @ 0x0804EE74 + movs r0, #1 + bx lr + + thumb_func_start sub_0804EE78 +sub_0804EE78: @ 0x0804EE78 + push {lr} + movs r0, #0x78 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EE94 + movs r0, #0x7c + bl sub_0807CBD0 + cmp r0, #0 + beq _0804EE94 + ldr r0, _0804EEAC @ =gUnk_080F5660 + bl LoadRoomEntityList +_0804EE94: + movs r0, #0x5d + bl GetProgressFlag + cmp r0, #0 + beq _0804EEA8 + ldr r0, _0804EEB0 @ =gUnk_02033A90 + ldr r1, _0804EEB4 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x31 + str r1, [r0] +_0804EEA8: + pop {pc} + .align 2, 0 +_0804EEAC: .4byte gUnk_080F5660 +_0804EEB0: .4byte gUnk_02033A90 +_0804EEB4: .4byte 0x00000864 + + thumb_func_start sub_0804EEB8 +sub_0804EEB8: @ 0x0804EEB8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804EEBC +sub_0804EEBC: @ 0x0804EEBC + push {lr} + ldr r0, _0804EEF4 @ =gUnk_080F5758 + bl LoadRoomEntityList + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EEE2 + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x8f + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _0804EEE2 + ldr r0, _0804EEF8 @ =gUnk_080F57E8 + bl LoadRoomEntityList +_0804EEE2: + movs r0, #0x55 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EF00 + ldr r0, _0804EEFC @ =gUnk_080F57A8 + bl LoadRoomEntityList + b _0804EF54 + .align 2, 0 +_0804EEF4: .4byte gUnk_080F5758 +_0804EEF8: .4byte gUnk_080F57E8 +_0804EEFC: .4byte gUnk_080F57A8 +_0804EF00: + ldr r1, _0804EF34 @ =gUnk_080FD5A0 + ldr r0, _0804EF38 @ =gUnk_02002A40 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x1d + bls _0804EF16 + ldr r0, _0804EF3C @ =gUnk_080F57C8 + bl LoadRoomEntityList +_0804EF16: + movs r0, #0xb + bl sub_0807CA84 + cmp r0, #0 + bne _0804EF44 + movs r0, #0xc + bl sub_0807CA84 + cmp r0, #0 + bne _0804EF44 + ldr r0, _0804EF40 @ =gUnk_080F5888 + bl LoadRoomEntityList + b _0804EF54 + .align 2, 0 +_0804EF34: .4byte gUnk_080FD5A0 +_0804EF38: .4byte gUnk_02002A40 +_0804EF3C: .4byte gUnk_080F57C8 +_0804EF40: .4byte gUnk_080F5888 +_0804EF44: + movs r0, #0xcd + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EF54 + ldr r0, _0804EF80 @ =gUnk_080F58A8 + bl LoadRoomEntityList +_0804EF54: + movs r0, #9 + bl sub_0807CA84 + cmp r0, #0 + bne _0804EF68 + movs r0, #4 + bl GetProgressFlag + cmp r0, #0 + beq _0804EF92 +_0804EF68: + ldr r0, _0804EF84 @ =gUnk_080F5868 + bl LoadRoomEntityList + movs r0, #0x56 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804EF8C + ldr r0, _0804EF88 @ =gUnk_080F5828 + bl LoadRoomEntityList + b _0804EF92 + .align 2, 0 +_0804EF80: .4byte gUnk_080F58A8 +_0804EF84: .4byte gUnk_080F5868 +_0804EF88: .4byte gUnk_080F5828 +_0804EF8C: + ldr r0, _0804EFA4 @ =gUnk_080F5848 + bl LoadRoomEntityList +_0804EF92: + ldr r0, _0804EFA8 @ =gUnk_02002A40 + adds r0, #0xbb + ldrb r0, [r0] + cmp r0, #0 + bne _0804EFA2 + ldr r0, _0804EFAC @ =gUnk_080F5788 + bl LoadRoomEntityList +_0804EFA2: + pop {pc} + .align 2, 0 +_0804EFA4: .4byte gUnk_080F5848 +_0804EFA8: .4byte gUnk_02002A40 +_0804EFAC: .4byte gUnk_080F5788 + + thumb_func_start sub_0804EFB0 +sub_0804EFB0: @ 0x0804EFB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_397 +nullsub_397: @ 0x0804EFB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EFB8 +sub_0804EFB8: @ 0x0804EFB8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804EFBC +sub_0804EFBC: @ 0x0804EFBC + push {lr} + movs r0, #0x38 + bl sub_0807CA84 + cmp r0, #1 + bne _0804EFCE + ldr r0, _0804EFD0 @ =gUnk_080F5B3C + bl LoadRoomEntityList +_0804EFCE: + pop {pc} + .align 2, 0 +_0804EFD0: .4byte gUnk_080F5B3C + + thumb_func_start sub_0804EFD4 +sub_0804EFD4: @ 0x0804EFD4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_398 +nullsub_398: @ 0x0804EFD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804EFDC +sub_0804EFDC: @ 0x0804EFDC + push {lr} + movs r0, #0x50 + bl GetProgressFlag + cmp r0, #0 + beq _0804EFEE + ldr r1, _0804EFF4 @ =gUnk_030010A0 + movs r0, #5 + strb r0, [r1, #0xf] +_0804EFEE: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804EFF4: .4byte gUnk_030010A0 + + thumb_func_start sub_0804EFF8 +sub_0804EFF8: @ 0x0804EFF8 + push {lr} + ldr r0, _0804F020 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #7 + bls _0804F008 + ldr r0, _0804F024 @ =gUnk_080F5DD0 + bl LoadRoomEntityList +_0804F008: + movs r0, #0x50 + bl GetProgressFlag + cmp r0, #0 + beq _0804F01C + ldr r2, _0804F028 @ =gUnk_08011C50 + movs r0, #1 + movs r1, #2 + bl sub_080751E8 +_0804F01C: + pop {pc} + .align 2, 0 +_0804F020: .4byte gUnk_02002A40 +_0804F024: .4byte gUnk_080F5DD0 +_0804F028: .4byte gUnk_08011C50 + + thumb_func_start sub_0804F02C +sub_0804F02C: @ 0x0804F02C + movs r0, #1 + bx lr + + thumb_func_start sub_0804F030 +sub_0804F030: @ 0x0804F030 + push {lr} + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0xd1 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0804F046 + ldr r0, _0804F048 @ =gUnk_080F5E68 + bl LoadRoomEntityList +_0804F046: + pop {pc} + .align 2, 0 +_0804F048: .4byte gUnk_080F5E68 + + thumb_func_start sub_0804F04C +sub_0804F04C: @ 0x0804F04C + movs r0, #1 + bx lr + + thumb_func_start sub_0804F050 +sub_0804F050: @ 0x0804F050 + push {lr} + ldr r0, _0804F074 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #4 + bls _0804F060 + ldr r0, _0804F078 @ =gUnk_080F5F38 + bl LoadRoomEntityList +_0804F060: + movs r0, #0x92 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F080 + ldr r0, _0804F07C @ =gUnk_080F5F58 + bl LoadRoomEntityList + b _0804F086 + .align 2, 0 +_0804F074: .4byte gUnk_02002A40 +_0804F078: .4byte gUnk_080F5F38 +_0804F07C: .4byte gUnk_080F5F58 +_0804F080: + ldr r0, _0804F088 @ =gUnk_080F5F78 + bl LoadRoomEntityList +_0804F086: + pop {pc} + .align 2, 0 +_0804F088: .4byte gUnk_080F5F78 + + thumb_func_start sub_0804F08C +sub_0804F08C: @ 0x0804F08C + movs r0, #1 + bx lr + + thumb_func_start nullsub_399 +nullsub_399: @ 0x0804F090 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F094 +sub_0804F094: @ 0x0804F094 + movs r0, #1 + bx lr + + thumb_func_start nullsub_400 +nullsub_400: @ 0x0804F098 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F09C +sub_0804F09C: @ 0x0804F09C + push {lr} + movs r0, #0x24 + bl GetProgressFlag + cmp r0, #0 + beq _0804F0BC + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0xdc + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _0804F0BC + movs r0, #0x58 + bl sub_0807CD04 +_0804F0BC: + movs r0, #1 + pop {pc} + + thumb_func_start sub_0804F0C0 +sub_0804F0C0: @ 0x0804F0C0 + push {r4, lr} + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #0xdc + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _0804F0D6 + movs r0, #0x90 + bl sub_0807CCB4 +_0804F0D6: + movs r0, #0xf + bl sub_0801E7F4 + cmp r0, #0 + beq _0804F0E6 + ldr r0, _0804F118 @ =gUnk_080F61BC + bl LoadRoomEntityList +_0804F0E6: + movs r0, #0x58 + bl GetProgressFlag + cmp r0, #0 + bne _0804F106 + ldr r4, _0804F11C @ =0x00004072 + ldr r1, _0804F120 @ =0x000004C7 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F124 @ =0x00000507 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 +_0804F106: + movs r2, #0xf4 + lsls r2, r2, #1 + movs r3, #0xac + lsls r3, r3, #1 + movs r0, #8 + movs r1, #0 + bl sub_08052CA4 + pop {r4, pc} + .align 2, 0 +_0804F118: .4byte gUnk_080F61BC +_0804F11C: .4byte 0x00004072 +_0804F120: .4byte 0x000004C7 +_0804F124: .4byte 0x00000507 + + thumb_func_start sub_0804F128 +sub_0804F128: @ 0x0804F128 + movs r0, #1 + bx lr + + thumb_func_start sub_0804F12C +sub_0804F12C: @ 0x0804F12C + push {lr} + movs r0, #0x58 + bl GetProgressFlag + cmp r0, #0 + bne _0804F144 + ldr r0, _0804F140 @ =gUnk_080F62E4 + bl LoadRoomEntityList + b _0804F154 + .align 2, 0 +_0804F140: .4byte gUnk_080F62E4 +_0804F144: + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804F154 + ldr r0, _0804F158 @ =gUnk_080F6324 + bl LoadRoomEntityList +_0804F154: + pop {pc} + .align 2, 0 +_0804F158: .4byte gUnk_080F6324 + + thumb_func_start sub_0804F15C +sub_0804F15C: @ 0x0804F15C + movs r0, #1 + bx lr + + thumb_func_start nullsub_401 +nullsub_401: @ 0x0804F160 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F164 +sub_0804F164: @ 0x0804F164 + movs r0, #1 + bx lr + + thumb_func_start sub_0804F168 +sub_0804F168: @ 0x0804F168 + push {lr} + movs r0, #0xb1 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F180 + ldr r0, _0804F17C @ =gUnk_080F6564 + bl LoadRoomEntityList + b _0804F186 + .align 2, 0 +_0804F17C: .4byte gUnk_080F6564 +_0804F180: + ldr r0, _0804F188 @ =gUnk_080F6584 + bl LoadRoomEntityList +_0804F186: + pop {pc} + .align 2, 0 +_0804F188: .4byte gUnk_080F6584 + + thumb_func_start sub_0804F18C +sub_0804F18C: @ 0x0804F18C + movs r0, #1 + bx lr + + thumb_func_start sub_0804F190 +sub_0804F190: @ 0x0804F190 + push {lr} + movs r0, #5 + bl sub_0805B4D0 + movs r0, #6 + bl GetProgressFlag + cmp r0, #0 + beq _0804F1B6 + movs r0, #0x80 + lsls r0, r0, #1 + movs r1, #5 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0804F1B6 + ldr r0, _0804F1D4 @ =gUnk_080F66AC + bl LoadRoomEntityList +_0804F1B6: + movs r2, #0xf4 + lsls r2, r2, #1 + movs r3, #0xac + lsls r3, r3, #1 + movs r0, #8 + movs r1, #0 + bl sub_08052CA4 + ldr r2, _0804F1D8 @ =gUnk_02033A90 + ldrb r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2] + pop {pc} + .align 2, 0 +_0804F1D4: .4byte gUnk_080F66AC +_0804F1D8: .4byte gUnk_02033A90 + + thumb_func_start sub_0804F1DC +sub_0804F1DC: @ 0x0804F1DC + movs r0, #1 + bx lr + + thumb_func_start nullsub_402 +nullsub_402: @ 0x0804F1E0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F1E4 +sub_0804F1E4: @ 0x0804F1E4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_403 +nullsub_403: @ 0x0804F1E8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F1EC +sub_0804F1EC: @ 0x0804F1EC + movs r0, #1 + bx lr + + thumb_func_start nullsub_404 +nullsub_404: @ 0x0804F1F0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F1F4 +sub_0804F1F4: @ 0x0804F1F4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_405 +nullsub_405: @ 0x0804F1F8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F1FC +sub_0804F1FC: @ 0x0804F1FC + movs r0, #1 + bx lr + + thumb_func_start nullsub_406 +nullsub_406: @ 0x0804F200 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F204 +sub_0804F204: @ 0x0804F204 + movs r0, #1 + bx lr + + thumb_func_start nullsub_407 +nullsub_407: @ 0x0804F208 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F20C +sub_0804F20C: @ 0x0804F20C + movs r0, #1 + bx lr + + thumb_func_start nullsub_408 +nullsub_408: @ 0x0804F210 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F214 +sub_0804F214: @ 0x0804F214 + movs r0, #1 + bx lr + + thumb_func_start nullsub_409 +nullsub_409: @ 0x0804F218 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F21C +sub_0804F21C: @ 0x0804F21C + movs r0, #1 + bx lr + + thumb_func_start nullsub_410 +nullsub_410: @ 0x0804F220 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F224 +sub_0804F224: @ 0x0804F224 + movs r0, #1 + bx lr + + thumb_func_start nullsub_411 +nullsub_411: @ 0x0804F228 + bx lr + .align 2, 0 + + thumb_func_start sub_0804F22C +sub_0804F22C: @ 0x0804F22C + movs r0, #1 + bx lr + + thumb_func_start sub_0804F230 +sub_0804F230: @ 0x0804F230 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804F23C +sub_0804F23C: @ 0x0804F23C + push {lr} + movs r0, #0x6d + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F252 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #7 + bl sub_08050054 +_0804F252: + movs r0, #0x49 + bl sub_0807CD04 + movs r0, #1 + pop {pc} + + thumb_func_start sub_0804F25C +sub_0804F25C: @ 0x0804F25C + push {r4, lr} + movs r0, #0 + bl sub_0805ADD8 + movs r0, #0x6d + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F27A + ldr r0, _0804F2B0 @ =gUnk_080F70A8 + bl LoadRoomEntityList + movs r0, #0x1c + bl sub_0807CD80 +_0804F27A: + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + bne _0804F28E + ldr r0, _0804F2B4 @ =gUnk_02033A90 + ldr r1, _0804F2B8 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x10 + str r1, [r0] +_0804F28E: + ldr r4, _0804F2BC @ =gUnk_02002A40 + ldr r0, [r4, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x17 + ands r0, r1 + cmp r0, #0 + bne _0804F2A2 + ldr r0, _0804F2C0 @ =gUnk_080F70D8 + bl LoadRoomEntityList +_0804F2A2: + ldrb r0, [r4, #8] + cmp r0, #3 + bls _0804F2AE + ldr r0, _0804F2C4 @ =gUnk_080F7088 + bl LoadRoomEntityList +_0804F2AE: + pop {r4, pc} + .align 2, 0 +_0804F2B0: .4byte gUnk_080F70A8 +_0804F2B4: .4byte gUnk_02033A90 +_0804F2B8: .4byte 0x00000864 +_0804F2BC: .4byte gUnk_02002A40 +_0804F2C0: .4byte gUnk_080F70D8 +_0804F2C4: .4byte gUnk_080F7088 + + thumb_func_start sub_0804F2C8 +sub_0804F2C8: @ 0x0804F2C8 + push {lr} + ldr r0, _0804F2E0 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x17 + ands r0, r1 + cmp r0, #0 + bne _0804F2DE + ldr r0, _0804F2E4 @ =gUnk_080F70D8 + bl LoadRoomEntityList +_0804F2DE: + pop {pc} + .align 2, 0 +_0804F2E0: .4byte gUnk_02002A40 +_0804F2E4: .4byte gUnk_080F70D8 + + thumb_func_start sub_0804F2E8 +sub_0804F2E8: @ 0x0804F2E8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804F2EC +sub_0804F2EC: @ 0x0804F2EC + push {lr} + movs r0, #0 + bl sub_0805ADD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804F2F8 +sub_0804F2F8: @ 0x0804F2F8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804F2FC +sub_0804F2FC: @ 0x0804F2FC + push {lr} + movs r0, #0 + bl sub_0805ADD8 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804F308 +sub_0804F308: @ 0x0804F308 + push {lr} + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + beq _0804F324 + movs r0, #0x12 + bl sub_0807CA84 + cmp r0, #0 + bne _0804F324 + ldr r1, _0804F328 @ =gUnk_02034350 + ldr r0, _0804F32C @ =gUnk_080F7680 + str r0, [r1, #0x74] +_0804F324: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804F328: .4byte gUnk_02034350 +_0804F32C: .4byte gUnk_080F7680 + + thumb_func_start sub_0804F330 +sub_0804F330: @ 0x0804F330 + push {r4, lr} + movs r0, #0 + bl sub_0805ADD8 + ldr r0, _0804F38C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804F346 + ldr r0, _0804F390 @ =gUnk_080F7500 + bl LoadRoomEntityList +_0804F346: + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + beq _0804F38A + movs r0, #0x12 + bl sub_0807CA84 + cmp r0, #0 + bne _0804F38A + ldr r0, _0804F394 @ =gUnk_080F7550 + bl LoadRoomEntityList + ldr r4, _0804F398 @ =0x00004072 + ldr r1, _0804F39C @ =0x00000311 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F3A0 @ =0x00000351 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F3A4 @ =0x000003D9 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F3A8 @ =0x00000419 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 +_0804F38A: + pop {r4, pc} + .align 2, 0 +_0804F38C: .4byte gUnk_02002A40 +_0804F390: .4byte gUnk_080F7500 +_0804F394: .4byte gUnk_080F7550 +_0804F398: .4byte 0x00004072 +_0804F39C: .4byte 0x00000311 +_0804F3A0: .4byte 0x00000351 +_0804F3A4: .4byte 0x000003D9 +_0804F3A8: .4byte 0x00000419 + + thumb_func_start sub_0804F3AC +sub_0804F3AC: @ 0x0804F3AC + movs r0, #1 + bx lr + + thumb_func_start sub_0804F3B0 +sub_0804F3B0: @ 0x0804F3B0 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x8f + bl GetProgressFlagWithOffset + cmp r0, #0 + beq _0804F3DC + movs r0, #0x1d + bl GetProgressFlag + cmp r0, #0 + bne _0804F3EC + ldr r0, _0804F3D8 @ =gUnk_080F77C0 + bl LoadRoomEntityList + b _0804F3EC + .align 2, 0 +_0804F3D8: .4byte gUnk_080F77C0 +_0804F3DC: + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _0804F3EC + ldr r0, _0804F444 @ =gUnk_080F77F0 + bl LoadRoomEntityList +_0804F3EC: + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + beq _0804F406 + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + bne _0804F406 + ldr r0, _0804F448 @ =gUnk_080F7810 + bl LoadRoomEntityList +_0804F406: + movs r0, #0x29 + bl sub_0801E7F4 + cmp r0, #0 + bne _0804F42A + ldr r0, _0804F44C @ =gUnk_080F7860 + bl LoadRoomEntityList + ldr r0, _0804F450 @ =0x00004072 + ldr r1, _0804F454 @ =0x00000D88 + movs r2, #1 + bl sub_0800015E + ldr r0, _0804F458 @ =0x00004096 + ldr r1, _0804F45C @ =0x00000DC8 + movs r2, #1 + bl sub_0800015E +_0804F42A: + ldr r0, _0804F460 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804F442 + movs r0, #0x5c + bl GetProgressFlag + cmp r0, #0 + beq _0804F442 + ldr r0, _0804F464 @ =gUnk_080F78A0 + bl LoadRoomEntityList +_0804F442: + pop {pc} + .align 2, 0 +_0804F444: .4byte gUnk_080F77F0 +_0804F448: .4byte gUnk_080F7810 +_0804F44C: .4byte gUnk_080F7860 +_0804F450: .4byte 0x00004072 +_0804F454: .4byte 0x00000D88 +_0804F458: .4byte 0x00004096 +_0804F45C: .4byte 0x00000DC8 +_0804F460: .4byte gUnk_02002A40 +_0804F464: .4byte gUnk_080F78A0 + + thumb_func_start sub_0804F468 +sub_0804F468: @ 0x0804F468 + push {lr} + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + beq _0804F48A + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + bne _0804F48A + ldr r0, _0804F4D0 @ =gUnk_02034350 + ldr r1, _0804F4D4 @ =gUnk_080F7CD0 + str r1, [r0, #0x6c] + adds r0, #0x88 + ldr r1, _0804F4D8 @ =sub_0804F5E8 + str r1, [r0] +_0804F48A: + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _0804F4BA + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0804F4BA + movs r0, #0x8c + bl sub_0807CBD0 + adds r3, r0, #0 + cmp r3, #0 + bne _0804F4BA + ldr r1, _0804F4D0 @ =gUnk_02034350 + ldr r0, _0804F4DC @ =gUnk_080F7C80 + str r0, [r1, #0x6c] + adds r2, r1, #0 + adds r2, #0x88 + ldr r0, _0804F4E0 @ =sub_0804F4E4 + str r0, [r2] + str r3, [r1, #0x74] +_0804F4BA: + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + beq _0804F4CA + movs r0, #0x64 + bl sub_0807CD80 +_0804F4CA: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804F4D0: .4byte gUnk_02034350 +_0804F4D4: .4byte gUnk_080F7CD0 +_0804F4D8: .4byte sub_0804F5E8 +_0804F4DC: .4byte gUnk_080F7C80 +_0804F4E0: .4byte sub_0804F4E4 + + thumb_func_start sub_0804F4E4 +sub_0804F4E4: @ 0x0804F4E4 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + bl sub_0804F578 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804F4F4 +sub_0804F4F4: @ 0x0804F4F4 + push {r4, lr} + bl sub_0804F4E4 + movs r0, #0x8b + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F540 + ldr r0, _0804F558 @ =gUnk_080F7D70 + bl LoadRoomEntityList + movs r4, #0xba + lsls r4, r4, #1 + ldr r1, _0804F55C @ =0x000007A2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F560 @ =0x000007A3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F564 @ =0x000007A5 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F568 @ =0x000007A6 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F56C @ =0x000007A7 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 +_0804F540: + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + bne _0804F554 + ldr r0, _0804F570 @ =gUnk_02033A90 + ldr r1, _0804F574 @ =0x00000864 + adds r0, r0, r1 + movs r1, #0x13 + str r1, [r0] +_0804F554: + pop {r4, pc} + .align 2, 0 +_0804F558: .4byte gUnk_080F7D70 +_0804F55C: .4byte 0x000007A2 +_0804F560: .4byte 0x000007A3 +_0804F564: .4byte 0x000007A5 +_0804F568: .4byte 0x000007A6 +_0804F56C: .4byte 0x000007A7 +_0804F570: .4byte gUnk_02033A90 +_0804F574: .4byte 0x00000864 + + thumb_func_start sub_0804F578 +sub_0804F578: @ 0x0804F578 + push {lr} + movs r0, #0x8e + bl sub_0807CBD0 + cmp r0, #0 + bne _0804F590 + ldr r0, _0804F58C @ =gUnk_080F7DC0 + bl LoadRoomEntityList + b _0804F5CC + .align 2, 0 +_0804F58C: .4byte gUnk_080F7DC0 +_0804F590: + ldr r1, _0804F5D0 @ =0x0000094A + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5D4 @ =0x0000094B + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5D8 @ =0x0000094C + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5DC @ =0x0000098A + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5E0 @ =0x0000098B + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F5E4 @ =0x0000098C + movs r0, #0x37 + movs r2, #1 + bl sub_0807B314 +_0804F5CC: + pop {pc} + .align 2, 0 +_0804F5D0: .4byte 0x0000094A +_0804F5D4: .4byte 0x0000094B +_0804F5D8: .4byte 0x0000094C +_0804F5DC: .4byte 0x0000098A +_0804F5E0: .4byte 0x0000098B +_0804F5E4: .4byte 0x0000098C + + thumb_func_start sub_0804F5E8 +sub_0804F5E8: @ 0x0804F5E8 + push {r4, lr} + bl sub_0804F4E4 + ldr r0, _0804F654 @ =0x000001D3 + ldr r1, _0804F658 @ =0x00000BDE + movs r2, #1 + bl sub_0807B314 + movs r4, #0xeb + lsls r4, r4, #1 + ldr r1, _0804F65C @ =0x00000BE2 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xea + lsls r0, r0, #1 + ldr r1, _0804F660 @ =0x00000C1F + movs r2, #1 + bl sub_0807B314 + ldr r0, _0804F664 @ =0x000001D5 + movs r1, #0xc2 + lsls r1, r1, #4 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F668 @ =0x00000C5E + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r4, _0804F66C @ =0x00004072 + ldr r1, _0804F670 @ =0x00000B9B + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F674 @ =0x00000BDB + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F678 @ =0x00000AA4 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F67C @ =0x00000AE4 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_0804F654: .4byte 0x000001D3 +_0804F658: .4byte 0x00000BDE +_0804F65C: .4byte 0x00000BE2 +_0804F660: .4byte 0x00000C1F +_0804F664: .4byte 0x000001D5 +_0804F668: .4byte 0x00000C5E +_0804F66C: .4byte 0x00004072 +_0804F670: .4byte 0x00000B9B +_0804F674: .4byte 0x00000BDB +_0804F678: .4byte 0x00000AA4 +_0804F67C: .4byte 0x00000AE4 + + thumb_func_start sub_0804F680 +sub_0804F680: @ 0x0804F680 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0804F6A2 + ldr r0, _0804F6A4 @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + adds r1, r1, r4 + strh r1, [r2, #0x2e] + ldrh r0, [r0, #8] + adds r0, r0, r5 + strh r0, [r2, #0x32] +_0804F6A2: + pop {r4, r5, pc} + .align 2, 0 +_0804F6A4: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804F6A8 +sub_0804F6A8: @ 0x0804F6A8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xec + lsls r1, r1, #1 + movs r2, #0x84 + lsls r2, r2, #1 + bl sub_0804F680 + movs r1, #0x86 + lsls r1, r1, #2 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + pop {r4, pc} + + thumb_func_start sub_0804F6C8 +sub_0804F6C8: @ 0x0804F6C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xf4 + lsls r1, r1, #1 + movs r2, #0x84 + lsls r2, r2, #1 + bl sub_0804F680 + movs r1, #0x82 + lsls r1, r1, #2 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + pop {r4, pc} + + thumb_func_start sub_0804F6E8 +sub_0804F6E8: @ 0x0804F6E8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0xfc + lsls r5, r5, #1 + movs r2, #0x84 + lsls r2, r2, #1 + adds r1, r5, #0 + bl sub_0804F680 + movs r1, #0x96 + lsls r1, r1, #2 + movs r2, #0x9c + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0804F680 + movs r1, #0xcc + lsls r1, r1, #1 + movs r2, #0xac + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + pop {r4, r5, pc} + + thumb_func_start sub_0804F724 +sub_0804F724: @ 0x0804F724 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x82 + lsls r1, r1, #2 + movs r2, #0x84 + lsls r2, r2, #1 + bl sub_0804F680 + movs r1, #0x96 + lsls r1, r1, #2 + movs r5, #0xa4 + lsls r5, r5, #1 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0804F680 + movs r1, #0xf4 + lsls r1, r1, #1 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + movs r1, #0xcc + lsls r1, r1, #1 + adds r0, r4, #0 + adds r2, r5, #0 + bl sub_0804F680 + pop {r4, r5, pc} + + thumb_func_start sub_0804F760 +sub_0804F760: @ 0x0804F760 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x86 + lsls r1, r1, #2 + movs r2, #0x84 + lsls r2, r2, #1 + bl sub_0804F680 + movs r1, #0x96 + lsls r1, r1, #2 + movs r2, #0xac + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + movs r1, #0xec + lsls r1, r1, #1 + movs r2, #0xc4 + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + movs r1, #0xcc + lsls r1, r1, #1 + movs r2, #0x9c + lsls r2, r2, #1 + adds r0, r4, #0 + bl sub_0804F680 + pop {r4, pc} + + thumb_func_start sub_0804F79C +sub_0804F79C: @ 0x0804F79C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x35 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0804F7D0 + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0804F804 @ =gUnk_03000BF0 + movs r3, #0xdc + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r3, #0xa4 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_0804F7D0: + adds r0, r4, #0 + movs r1, #0x35 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0804F802 + ldrb r1, [r2, #0x19] + movs r0, #0x3f + ands r0, r1 + strb r0, [r2, #0x19] + ldr r1, _0804F804 @ =gUnk_03000BF0 + movs r3, #0x8e + lsls r3, r3, #2 + adds r0, r3, #0 + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r2, #0x2e] + movs r3, #0xa4 + lsls r3, r3, #1 + adds r0, r3, #0 + ldrh r1, [r1, #8] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_0804F802: + pop {r4, pc} + .align 2, 0 +_0804F804: .4byte gUnk_03000BF0 + + thumb_func_start sub_0804F808 +sub_0804F808: @ 0x0804F808 + push {r4, lr} + ldr r4, _0804F824 @ =0x000001D3 + ldr r1, _0804F828 @ =0x0000041D + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F82C @ =0x00000621 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_0804F824: .4byte 0x000001D3 +_0804F828: .4byte 0x0000041D +_0804F82C: .4byte 0x00000621 + + thumb_func_start sub_0804F830 +sub_0804F830: @ 0x0804F830 + push {r4, lr} + movs r4, #0xea + lsls r4, r4, #1 + ldr r1, _0804F850 @ =0x0000041E + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + movs r1, #0xc4 + lsls r1, r1, #3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, pc} + .align 2, 0 +_0804F850: .4byte 0x0000041E + + thumb_func_start sub_0804F854 +sub_0804F854: @ 0x0804F854 + push {r4, r5, lr} + ldr r5, _0804F888 @ =0x000001D5 + ldr r1, _0804F88C @ =0x0000041F + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r4, #0xea + lsls r4, r4, #1 + ldr r1, _0804F890 @ =0x000004E5 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F894 @ =0x0000061F + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F898 @ =0x00000559 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0804F888: .4byte 0x000001D5 +_0804F88C: .4byte 0x0000041F +_0804F890: .4byte 0x000004E5 +_0804F894: .4byte 0x0000061F +_0804F898: .4byte 0x00000559 + + thumb_func_start sub_0804F89C +sub_0804F89C: @ 0x0804F89C + push {r4, r5, lr} + movs r5, #0xeb + lsls r5, r5, #1 + movs r1, #0x84 + lsls r1, r1, #3 + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r4, _0804F8D0 @ =0x000001D5 + ldr r1, _0804F8D4 @ =0x00000525 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F8D8 @ =0x0000061E + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F8DC @ =0x00000519 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0804F8D0: .4byte 0x000001D5 +_0804F8D4: .4byte 0x00000525 +_0804F8D8: .4byte 0x0000061E +_0804F8DC: .4byte 0x00000519 + + thumb_func_start sub_0804F8E0 +sub_0804F8E0: @ 0x0804F8E0 + push {r4, r5, lr} + ldr r5, _0804F914 @ =0x000001D3 + ldr r1, _0804F918 @ =0x00000421 + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r4, #0xeb + lsls r4, r4, #1 + ldr r1, _0804F91C @ =0x00000565 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F920 @ =0x0000061D + adds r0, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r1, _0804F924 @ =0x000004D9 + adds r0, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0804F914: .4byte 0x000001D3 +_0804F918: .4byte 0x00000421 +_0804F91C: .4byte 0x00000565 +_0804F920: .4byte 0x0000061D +_0804F924: .4byte 0x000004D9 + + thumb_func_start sub_0804F928 +sub_0804F928: @ 0x0804F928 + push {lr} + ldr r0, _0804F93C @ =0x0000041D + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F940 @ =0x00000621 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F93C: .4byte 0x0000041D +_0804F940: .4byte 0x00000621 + + thumb_func_start sub_0804F944 +sub_0804F944: @ 0x0804F944 + push {lr} + ldr r0, _0804F95C @ =0x0000041E + movs r1, #1 + bl sub_0807BA8C + movs r0, #0xc4 + lsls r0, r0, #3 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F95C: .4byte 0x0000041E + + thumb_func_start sub_0804F960 +sub_0804F960: @ 0x0804F960 + push {lr} + ldr r0, _0804F984 @ =0x0000041F + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F988 @ =0x000004E5 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F98C @ =0x0000061F + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F990 @ =0x00000559 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F984: .4byte 0x0000041F +_0804F988: .4byte 0x000004E5 +_0804F98C: .4byte 0x0000061F +_0804F990: .4byte 0x00000559 + + thumb_func_start sub_0804F994 +sub_0804F994: @ 0x0804F994 + push {lr} + movs r0, #0x84 + lsls r0, r0, #3 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9BC @ =0x00000525 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9C0 @ =0x0000061E + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9C4 @ =0x00000519 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F9BC: .4byte 0x00000525 +_0804F9C0: .4byte 0x0000061E +_0804F9C4: .4byte 0x00000519 + + thumb_func_start sub_0804F9C8 +sub_0804F9C8: @ 0x0804F9C8 + push {lr} + ldr r0, _0804F9EC @ =0x00000421 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9F0 @ =0x00000565 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9F4 @ =0x0000061D + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0804F9F8 @ =0x000004D9 + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0804F9EC: .4byte 0x00000421 +_0804F9F0: .4byte 0x00000565 +_0804F9F4: .4byte 0x0000061D +_0804F9F8: .4byte 0x000004D9 + + thumb_func_start sub_0804F9FC +sub_0804F9FC: @ 0x0804F9FC + movs r0, #1 + bx lr + + thumb_func_start sub_0804FA00 +sub_0804FA00: @ 0x0804FA00 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + ldr r0, _0804FA24 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804FA20 + movs r0, #0x5c + bl GetProgressFlag + cmp r0, #0 + beq _0804FA20 + ldr r0, _0804FA28 @ =gUnk_080F806C + bl LoadRoomEntityList +_0804FA20: + pop {pc} + .align 2, 0 +_0804FA24: .4byte gUnk_02002A40 +_0804FA28: .4byte gUnk_080F806C + + thumb_func_start sub_0804FA2C +sub_0804FA2C: @ 0x0804FA2C + movs r0, #1 + bx lr + + thumb_func_start sub_0804FA30 +sub_0804FA30: @ 0x0804FA30 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _0804FA5C + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0804FA5C + movs r0, #0x9c + bl sub_0807CBD0 + cmp r0, #0 + bne _0804FA5C + ldr r0, _0804FA60 @ =gUnk_080F82E0 + bl LoadRoomEntityList +_0804FA5C: + pop {pc} + .align 2, 0 +_0804FA60: .4byte gUnk_080F82E0 + + thumb_func_start sub_0804FA64 +sub_0804FA64: @ 0x0804FA64 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FA68 +sub_0804FA68: @ 0x0804FA68 + push {lr} + movs r0, #0 + bl sub_0805ADD8 + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804FA8E + movs r0, #0x80 + lsls r0, r0, #2 + movs r1, #0x42 + bl GetProgressFlagWithOffset + cmp r0, #0 + bne _0804FA8E + ldr r0, _0804FA90 @ =gUnk_080F8430 + bl LoadRoomEntityList +_0804FA8E: + pop {pc} + .align 2, 0 +_0804FA90: .4byte gUnk_080F8430 + + thumb_func_start sub_0804FA94 +sub_0804FA94: @ 0x0804FA94 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FA98 +sub_0804FA98: @ 0x0804FA98 + push {lr} + movs r0, #0x57 + bl GetProgressFlag + cmp r0, #0 + beq _0804FAB0 + ldr r0, _0804FAAC @ =gUnk_080F85D8 + bl LoadRoomEntityList + b _0804FAB6 + .align 2, 0 +_0804FAAC: .4byte gUnk_080F85D8 +_0804FAB0: + ldr r0, _0804FAC8 @ =gUnk_080F85F8 + bl LoadRoomEntityList +_0804FAB6: + movs r0, #0xc + bl sub_0807CA84 + cmp r0, #0 + bne _0804FAC6 + movs r0, #8 + bl sub_0807CD34 +_0804FAC6: + pop {pc} + .align 2, 0 +_0804FAC8: .4byte gUnk_080F85F8 + + thumb_func_start sub_0804FACC +sub_0804FACC: @ 0x0804FACC + movs r0, #1 + bx lr + + thumb_func_start nullsub_412 +nullsub_412: @ 0x0804FAD0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAD4 +sub_0804FAD4: @ 0x0804FAD4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_413 +nullsub_413: @ 0x0804FAD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FADC +sub_0804FADC: @ 0x0804FADC + movs r0, #1 + bx lr + + thumb_func_start nullsub_414 +nullsub_414: @ 0x0804FAE0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAE4 +sub_0804FAE4: @ 0x0804FAE4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_415 +nullsub_415: @ 0x0804FAE8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAEC +sub_0804FAEC: @ 0x0804FAEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_416 +nullsub_416: @ 0x0804FAF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAF4 +sub_0804FAF4: @ 0x0804FAF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_417 +nullsub_417: @ 0x0804FAF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FAFC +sub_0804FAFC: @ 0x0804FAFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_418 +nullsub_418: @ 0x0804FB00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB04 +sub_0804FB04: @ 0x0804FB04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_419 +nullsub_419: @ 0x0804FB08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB0C +sub_0804FB0C: @ 0x0804FB0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_420 +nullsub_420: @ 0x0804FB10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB14 +sub_0804FB14: @ 0x0804FB14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_421 +nullsub_421: @ 0x0804FB18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB1C +sub_0804FB1C: @ 0x0804FB1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_422 +nullsub_422: @ 0x0804FB20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB24 +sub_0804FB24: @ 0x0804FB24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_423 +nullsub_423: @ 0x0804FB28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB2C +sub_0804FB2C: @ 0x0804FB2C + movs r0, #1 + bx lr + + thumb_func_start sub_0804FB30 +sub_0804FB30: @ 0x0804FB30 + push {lr} + movs r0, #0x11 + bl sub_0807CBD0 + cmp r0, #0 + beq _0804FB64 + movs r0, #0 + bl sub_0807CD10 + movs r0, #1 + bl sub_0807CD10 + movs r0, #0x80 + lsls r0, r0, #1 + bl sub_0805308C + movs r0, #0x12 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804FB64 + movs r0, #0x73 + movs r1, #0xcb + movs r2, #1 + bl sub_0807B314 +_0804FB64: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804FB68 +sub_0804FB68: @ 0x0804FB68 + movs r0, #1 + bx lr + + thumb_func_start nullsub_089 +nullsub_089: @ 0x0804FB6C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB70 +sub_0804FB70: @ 0x0804FB70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_90 +nullsub_90: @ 0x0804FB74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB78 +sub_0804FB78: @ 0x0804FB78 + movs r0, #1 + bx lr + + thumb_func_start nullsub_91 +nullsub_91: @ 0x0804FB7C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB80 +sub_0804FB80: @ 0x0804FB80 + movs r0, #1 + bx lr + + thumb_func_start nullsub_92 +nullsub_92: @ 0x0804FB84 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB88 +sub_0804FB88: @ 0x0804FB88 + movs r0, #1 + bx lr + + thumb_func_start nullsub_93 +nullsub_93: @ 0x0804FB8C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB90 +sub_0804FB90: @ 0x0804FB90 + movs r0, #1 + bx lr + + thumb_func_start nullsub_94 +nullsub_94: @ 0x0804FB94 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FB98 +sub_0804FB98: @ 0x0804FB98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_95 +nullsub_95: @ 0x0804FB9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FBA0 +sub_0804FBA0: @ 0x0804FBA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_96 +nullsub_96: @ 0x0804FBA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FBA8 +sub_0804FBA8: @ 0x0804FBA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_97 +nullsub_97: @ 0x0804FBAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FBB0 +sub_0804FBB0: @ 0x0804FBB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_98 +nullsub_98: @ 0x0804FBB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FBB8 +sub_0804FBB8: @ 0x0804FBB8 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FBBC +sub_0804FBBC: @ 0x0804FBBC + push {lr} + ldr r0, _0804FBD4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + bne _0804FBD2 + ldr r0, _0804FBD8 @ =gUnk_080F9304 + bl LoadRoomEntityList +_0804FBD2: + pop {pc} + .align 2, 0 +_0804FBD4: .4byte gUnk_02002A40 +_0804FBD8: .4byte gUnk_080F9304 + + thumb_func_start sub_0804FBDC +sub_0804FBDC: @ 0x0804FBDC + push {lr} + ldr r0, _0804FBF4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + bne _0804FBF2 + ldr r0, _0804FBF8 @ =gUnk_080F9304 + bl LoadRoomEntityList +_0804FBF2: + pop {pc} + .align 2, 0 +_0804FBF4: .4byte gUnk_02002A40 +_0804FBF8: .4byte gUnk_080F9304 + + thumb_func_start sub_0804FBFC +sub_0804FBFC: @ 0x0804FBFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_424 +nullsub_424: @ 0x0804FC00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC04 +sub_0804FC04: @ 0x0804FC04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_425 +nullsub_425: @ 0x0804FC08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC0C +sub_0804FC0C: @ 0x0804FC0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_426 +nullsub_426: @ 0x0804FC10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC14 +sub_0804FC14: @ 0x0804FC14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_427 +nullsub_427: @ 0x0804FC18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC1C +sub_0804FC1C: @ 0x0804FC1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_428 +nullsub_428: @ 0x0804FC20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC24 +sub_0804FC24: @ 0x0804FC24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_429 +nullsub_429: @ 0x0804FC28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC2C +sub_0804FC2C: @ 0x0804FC2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_430 +nullsub_430: @ 0x0804FC30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC34 +sub_0804FC34: @ 0x0804FC34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_431 +nullsub_431: @ 0x0804FC38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC3C +sub_0804FC3C: @ 0x0804FC3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_432 +nullsub_432: @ 0x0804FC40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC44 +sub_0804FC44: @ 0x0804FC44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_433 +nullsub_433: @ 0x0804FC48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC4C +sub_0804FC4C: @ 0x0804FC4C + push {lr} + movs r0, #0xe + bl sub_0801E7F4 + cmp r0, #0 + bne _0804FC5E + ldr r1, _0804FC64 @ =gUnk_02034350 + ldr r0, _0804FC68 @ =gUnk_080F9BF8 + str r0, [r1, #0x6c] +_0804FC5E: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804FC64: .4byte gUnk_02034350 +_0804FC68: .4byte gUnk_080F9BF8 + + thumb_func_start sub_0804FC6C +sub_0804FC6C: @ 0x0804FC6C + push {lr} + movs r0, #2 + bl sub_0805B4D0 + movs r0, #0 + bl sub_0806D0B0 + pop {pc} + + thumb_func_start sub_0804FC7C +sub_0804FC7C: @ 0x0804FC7C + movs r0, #1 + bx lr + + thumb_func_start nullsub_99 +nullsub_99: @ 0x0804FC80 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC84 +sub_0804FC84: @ 0x0804FC84 + movs r0, #1 + bx lr + + thumb_func_start nullsub_100 +nullsub_100: @ 0x0804FC88 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC8C +sub_0804FC8C: @ 0x0804FC8C + movs r0, #1 + bx lr + + thumb_func_start nullsub_101 +nullsub_101: @ 0x0804FC90 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC94 +sub_0804FC94: @ 0x0804FC94 + movs r0, #1 + bx lr + + thumb_func_start nullsub_102 +nullsub_102: @ 0x0804FC98 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FC9C +sub_0804FC9C: @ 0x0804FC9C + movs r0, #1 + bx lr + + thumb_func_start nullsub_103 +nullsub_103: @ 0x0804FCA0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCA4 +sub_0804FCA4: @ 0x0804FCA4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FCA8 +sub_0804FCA8: @ 0x0804FCA8 + push {lr} + movs r0, #0x14 + bl sub_0801E7F4 + cmp r0, #0 + beq _0804FCBA + ldr r0, _0804FCCC @ =gUnk_080F9FA8 + bl LoadRoomEntityList +_0804FCBA: + movs r0, #0x38 + bl sub_0807CA84 + cmp r0, #0 + bne _0804FCCA + ldr r0, _0804FCD0 @ =gUnk_080F9F88 + bl LoadRoomEntityList +_0804FCCA: + pop {pc} + .align 2, 0 +_0804FCCC: .4byte gUnk_080F9FA8 +_0804FCD0: .4byte gUnk_080F9F88 + + thumb_func_start sub_0804FCD4 +sub_0804FCD4: @ 0x0804FCD4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_434 +nullsub_434: @ 0x0804FCD8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCDC +sub_0804FCDC: @ 0x0804FCDC + movs r0, #1 + bx lr + + thumb_func_start nullsub_435 +nullsub_435: @ 0x0804FCE0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCE4 +sub_0804FCE4: @ 0x0804FCE4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_436 +nullsub_436: @ 0x0804FCE8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCEC +sub_0804FCEC: @ 0x0804FCEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_437 +nullsub_437: @ 0x0804FCF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCF4 +sub_0804FCF4: @ 0x0804FCF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_438 +nullsub_438: @ 0x0804FCF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FCFC +sub_0804FCFC: @ 0x0804FCFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_439 +nullsub_439: @ 0x0804FD00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD04 +sub_0804FD04: @ 0x0804FD04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_440 +nullsub_440: @ 0x0804FD08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD0C +sub_0804FD0C: @ 0x0804FD0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_441 +nullsub_441: @ 0x0804FD10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD14 +sub_0804FD14: @ 0x0804FD14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_442 +nullsub_442: @ 0x0804FD18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD1C +sub_0804FD1C: @ 0x0804FD1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_443 +nullsub_443: @ 0x0804FD20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD24 +sub_0804FD24: @ 0x0804FD24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_444 +nullsub_444: @ 0x0804FD28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD2C +sub_0804FD2C: @ 0x0804FD2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_445 +nullsub_445: @ 0x0804FD30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD34 +sub_0804FD34: @ 0x0804FD34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_446 +nullsub_446: @ 0x0804FD38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD3C +sub_0804FD3C: @ 0x0804FD3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_447 +nullsub_447: @ 0x0804FD40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD44 +sub_0804FD44: @ 0x0804FD44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_448 +nullsub_448: @ 0x0804FD48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD4C +sub_0804FD4C: @ 0x0804FD4C + movs r0, #1 + bx lr + + thumb_func_start nullsub_449 +nullsub_449: @ 0x0804FD50 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD54 +sub_0804FD54: @ 0x0804FD54 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FD58 +sub_0804FD58: @ 0x0804FD58 + push {lr} + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + bne _0804FD6A + ldr r0, _0804FD6C @ =gUnk_080FA5D0 + bl LoadRoomEntityList +_0804FD6A: + pop {pc} + .align 2, 0 +_0804FD6C: .4byte gUnk_080FA5D0 + + thumb_func_start sub_0804FD70 +sub_0804FD70: @ 0x0804FD70 + movs r0, #1 + bx lr + + thumb_func_start nullsub_450 +nullsub_450: @ 0x0804FD74 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD78 +sub_0804FD78: @ 0x0804FD78 + movs r0, #1 + bx lr + + thumb_func_start nullsub_451 +nullsub_451: @ 0x0804FD7C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD80 +sub_0804FD80: @ 0x0804FD80 + movs r0, #1 + bx lr + + thumb_func_start nullsub_452 +nullsub_452: @ 0x0804FD84 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD88 +sub_0804FD88: @ 0x0804FD88 + movs r0, #1 + bx lr + + thumb_func_start nullsub_453 +nullsub_453: @ 0x0804FD8C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD90 +sub_0804FD90: @ 0x0804FD90 + movs r0, #1 + bx lr + + thumb_func_start nullsub_454 +nullsub_454: @ 0x0804FD94 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FD98 +sub_0804FD98: @ 0x0804FD98 + movs r0, #1 + bx lr + + thumb_func_start nullsub_455 +nullsub_455: @ 0x0804FD9C + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDA0 +sub_0804FDA0: @ 0x0804FDA0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_456 +nullsub_456: @ 0x0804FDA4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDA8 +sub_0804FDA8: @ 0x0804FDA8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_457 +nullsub_457: @ 0x0804FDAC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDB0 +sub_0804FDB0: @ 0x0804FDB0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_458 +nullsub_458: @ 0x0804FDB4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDB8 +sub_0804FDB8: @ 0x0804FDB8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_459 +nullsub_459: @ 0x0804FDBC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDC0 +sub_0804FDC0: @ 0x0804FDC0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_460 +nullsub_460: @ 0x0804FDC4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDC8 +sub_0804FDC8: @ 0x0804FDC8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_461 +nullsub_461: @ 0x0804FDCC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDD0 +sub_0804FDD0: @ 0x0804FDD0 + movs r0, #1 + bx lr + + thumb_func_start nullsub_462 +nullsub_462: @ 0x0804FDD4 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDD8 +sub_0804FDD8: @ 0x0804FDD8 + movs r0, #1 + bx lr + + thumb_func_start nullsub_463 +nullsub_463: @ 0x0804FDDC + bx lr + .align 2, 0 + + thumb_func_start sub_0804FDE0 +sub_0804FDE0: @ 0x0804FDE0 + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804FDF6 + ldr r0, _0804FDFC @ =gUnk_02034350 + ldr r1, _0804FE00 @ =gUnk_080FAD48 + str r1, [r0, #0x6c] + movs r1, #0 + str r1, [r0, #0x74] +_0804FDF6: + movs r0, #1 + pop {pc} + .align 2, 0 +_0804FDFC: .4byte gUnk_02034350 +_0804FE00: .4byte gUnk_080FAD48 + + thumb_func_start sub_0804FE04 +sub_0804FE04: @ 0x0804FE04 + push {lr} + movs r0, #0x51 + bl GetProgressFlag + cmp r0, #0 + beq _0804FE28 + ldr r0, _0804FE20 @ =gUnk_02033A90 + ldr r2, _0804FE24 @ =0x00000864 + adds r1, r0, r2 + subs r2, #4 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1] + b _0804FE2E + .align 2, 0 +_0804FE20: .4byte gUnk_02033A90 +_0804FE24: .4byte 0x00000864 +_0804FE28: + ldr r0, _0804FE3C @ =gUnk_080FACB8 + bl LoadRoomEntityList +_0804FE2E: + movs r0, #0 + bl sub_0805B4D0 + bl sub_08059994 + pop {pc} + .align 2, 0 +_0804FE3C: .4byte gUnk_080FACB8 + + thumb_func_start sub_0804FE40 +sub_0804FE40: @ 0x0804FE40 + push {lr} + movs r0, #0 + bl sub_0805B4D0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0804FE4C +sub_0804FE4C: @ 0x0804FE4C + movs r0, #1 + bx lr + + thumb_func_start nullsub_104 +nullsub_104: @ 0x0804FE50 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FE54 +sub_0804FE54: @ 0x0804FE54 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FE58 +sub_0804FE58: @ 0x0804FE58 + push {lr} + movs r0, #1 + bl sub_0805B4D0 + movs r0, #3 + bl GetProgressFlag + cmp r0, #0 + beq _0804FE7A + movs r0, #2 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804FE7A + ldr r0, _0804FEA0 @ =gUnk_080FAFE4 + bl LoadRoomEntityList +_0804FE7A: + ldr r0, _0804FEA4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0804FE8E + ldr r0, _0804FEA8 @ =gUnk_080FB004 + bl LoadRoomEntityList +_0804FE8E: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0804FE9E + movs r0, #0x56 + bl sub_0807CD04 +_0804FE9E: + pop {pc} + .align 2, 0 +_0804FEA0: .4byte gUnk_080FAFE4 +_0804FEA4: .4byte gUnk_02002A40 +_0804FEA8: .4byte gUnk_080FB004 + + thumb_func_start sub_0804FEAC +sub_0804FEAC: @ 0x0804FEAC + push {lr} + ldr r0, _0804FEC4 @ =gUnk_02002A40 + ldr r0, [r0, #0x40] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _0804FEC2 + ldr r0, _0804FEC8 @ =gUnk_080FB004 + bl LoadRoomEntityList +_0804FEC2: + pop {pc} + .align 2, 0 +_0804FEC4: .4byte gUnk_02002A40 +_0804FEC8: .4byte gUnk_080FB004 + + thumb_func_start sub_0804FECC +sub_0804FECC: @ 0x0804FECC + movs r0, #1 + bx lr + + thumb_func_start nullsub_464 +nullsub_464: @ 0x0804FED0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FED4 +sub_0804FED4: @ 0x0804FED4 + movs r0, #1 + bx lr + + thumb_func_start sub_0804FED8 +sub_0804FED8: @ 0x0804FED8 + push {lr} + movs r0, #0xbb + lsls r0, r0, #1 + ldr r1, _0804FEE8 @ =0x0000066F + movs r2, #1 + bl sub_0807B314 + pop {pc} + .align 2, 0 +_0804FEE8: .4byte 0x0000066F + + thumb_func_start sub_0804FEEC +sub_0804FEEC: @ 0x0804FEEC + movs r0, #1 + bx lr + + thumb_func_start nullsub_465 +nullsub_465: @ 0x0804FEF0 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FEF4 +sub_0804FEF4: @ 0x0804FEF4 + movs r0, #1 + bx lr + + thumb_func_start nullsub_466 +nullsub_466: @ 0x0804FEF8 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FEFC +sub_0804FEFC: @ 0x0804FEFC + movs r0, #1 + bx lr + + thumb_func_start nullsub_467 +nullsub_467: @ 0x0804FF00 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF04 +sub_0804FF04: @ 0x0804FF04 + movs r0, #1 + bx lr + + thumb_func_start nullsub_468 +nullsub_468: @ 0x0804FF08 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF0C +sub_0804FF0C: @ 0x0804FF0C + movs r0, #1 + bx lr + + thumb_func_start nullsub_469 +nullsub_469: @ 0x0804FF10 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF14 +sub_0804FF14: @ 0x0804FF14 + movs r0, #1 + bx lr + + thumb_func_start nullsub_470 +nullsub_470: @ 0x0804FF18 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF1C +sub_0804FF1C: @ 0x0804FF1C + movs r0, #1 + bx lr + + thumb_func_start nullsub_471 +nullsub_471: @ 0x0804FF20 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF24 +sub_0804FF24: @ 0x0804FF24 + movs r0, #1 + bx lr + + thumb_func_start nullsub_472 +nullsub_472: @ 0x0804FF28 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF2C +sub_0804FF2C: @ 0x0804FF2C + movs r0, #1 + bx lr + + thumb_func_start nullsub_473 +nullsub_473: @ 0x0804FF30 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF34 +sub_0804FF34: @ 0x0804FF34 + movs r0, #1 + bx lr + + thumb_func_start nullsub_474 +nullsub_474: @ 0x0804FF38 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF3C +sub_0804FF3C: @ 0x0804FF3C + movs r0, #1 + bx lr + + thumb_func_start nullsub_475 +nullsub_475: @ 0x0804FF40 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF44 +sub_0804FF44: @ 0x0804FF44 + movs r0, #1 + bx lr + + thumb_func_start nullsub_476 +nullsub_476: @ 0x0804FF48 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF4C +sub_0804FF4C: @ 0x0804FF4C + movs r0, #1 + bx lr + + thumb_func_start nullsub_477 +nullsub_477: @ 0x0804FF50 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF54 +sub_0804FF54: @ 0x0804FF54 + movs r0, #1 + bx lr + + thumb_func_start nullsub_478 +nullsub_478: @ 0x0804FF58 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF5C +sub_0804FF5C: @ 0x0804FF5C + movs r0, #1 + bx lr + + thumb_func_start sub_0804FF60 +sub_0804FF60: @ 0x0804FF60 + push {lr} + movs r0, #0x70 + bl sub_0807CBD0 + cmp r0, #0 + bne _0804FF72 + movs r0, #0x70 + bl sub_0807CCB4 +_0804FF72: + pop {pc} + + thumb_func_start sub_0804FF74 +sub_0804FF74: @ 0x0804FF74 + movs r0, #1 + bx lr + + thumb_func_start nullsub_105 +nullsub_105: @ 0x0804FF78 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF7C +sub_0804FF7C: @ 0x0804FF7C + movs r0, #1 + bx lr + + thumb_func_start nullsub_106 +nullsub_106: @ 0x0804FF80 + bx lr + .align 2, 0 + + thumb_func_start sub_0804FF84 +sub_0804FF84: @ 0x0804FF84 + movs r1, #0x80 + lsls r1, r1, #0x12 + strb r0, [r1, #6] + ldr r1, _0804FF94 @ =gUnk_0200B644 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] + bx lr + .align 2, 0 +_0804FF94: .4byte gUnk_0200B644 + + thumb_func_start sub_0804FF98 +sub_0804FF98: @ 0x0804FF98 + push {r4, r5, r6, r7, lr} + ldr r6, _0804FFD4 @ =gUnk_020354C0 + ldr r1, _0804FFD8 @ =gUnk_0200B644 + ldr r4, [r1] + movs r0, #0 + str r0, [r1] + movs r5, #0 + cmp r4, #0 + beq _0804FFD0 + ldr r7, _0804FFDC @ =gUnk_03005E98 +_0804FFAC: + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _0804FFC6 + ldr r0, _0804FFE0 @ =gUnk_020176A0 + adds r0, r5, r0 + movs r2, #0xa0 + lsls r2, r2, #0x13 + adds r1, r5, r2 + ldrh r2, [r6, #2] + ldrb r3, [r6, #1] + bl _call_via_r7 +_0804FFC6: + adds r5, #0x20 + adds r6, #4 + lsrs r4, r4, #1 + cmp r4, #0 + bne _0804FFAC +_0804FFD0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0804FFD4: .4byte gUnk_020354C0 +_0804FFD8: .4byte gUnk_0200B644 +_0804FFDC: .4byte gUnk_03005E98 +_0804FFE0: .4byte gUnk_020176A0 + + thumb_func_start sub_0804FFE4 +sub_0804FFE4: @ 0x0804FFE4 + push {r4, lr} + ldr r4, _08050000 @ =gUnk_03000FD0 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_0801D630 + ldr r0, _08050004 @ =gUnk_020354C0 + movs r1, #0x80 + bl sub_0801D630 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 +_08050000: .4byte gUnk_03000FD0 +_08050004: .4byte gUnk_020354C0 + + thumb_func_start sub_08050008 +sub_08050008: @ 0x08050008 + push {lr} + ldr r0, _0805001C @ =gUnk_020354C0 + movs r1, #0x80 + bl sub_0801D630 + ldr r1, _08050020 @ =gUnk_03000FD0 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + pop {pc} + .align 2, 0 +_0805001C: .4byte gUnk_020354C0 +_08050020: .4byte gUnk_03000FD0 + + thumb_func_start sub_08050024 +sub_08050024: @ 0x08050024 + push {lr} + bl sub_0801E104 + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08050038 +sub_08050038: @ 0x08050038 + push {lr} + adds r3, r0, #0 + ldr r2, _0805004C @ =gUnk_03000FD0 + ldrh r1, [r2, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08050050 + strh r3, [r2, #0xe] + b _08050052 + .align 2, 0 +_0805004C: .4byte gUnk_03000FD0 +_08050050: + strh r3, [r2, #0xc] +_08050052: + pop {pc} + + thumb_func_start sub_08050054 +sub_08050054: @ 0x08050054 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _08050078 @ =gUnk_03000FD0 + movs r3, #0 + strh r1, [r2, #0xa] + strh r5, [r2, #8] + movs r0, #1 + strb r0, [r2] + adds r0, #0xff + strh r0, [r2, #0xc] + strh r3, [r2, #0xe] + movs r0, #2 + ands r0, r5 + adds r4, r2, #0 + cmp r0, #0 + beq _0805007C + movs r0, #0xf8 + b _0805007E + .align 2, 0 +_08050078: .4byte gUnk_03000FD0 +_0805007C: + movs r0, #0 +_0805007E: + strb r0, [r4, #2] + movs r0, #8 + ands r0, r5 + cmp r0, #0 + beq _080500A4 + ldr r1, _080500E4 @ =gUnk_03000000 + movs r0, #1 + strb r0, [r1, #2] + ldr r2, _080500E8 @ =gUnk_03000F50 + ldrh r0, [r2, #0x14] + movs r1, #0x40 + orrs r0, r1 + strh r0, [r2, #0x14] + ldrh r0, [r2, #0x20] + orrs r0, r1 + strh r0, [r2, #0x20] + ldrh r0, [r2, #0x2c] + orrs r1, r0 + strh r1, [r2, #0x2c] +_080500A4: + movs r0, #0x10 + ands r0, r5 + cmp r0, #0 + beq _080500E0 + ldrh r0, [r4, #0x16] + ldrh r1, [r4, #0x18] + bl sub_0801E1B8 + movs r1, #0x12 + ldrsh r0, [r4, r1] + movs r2, #0x14 + ldrsh r1, [r4, r2] + movs r3, #0x10 + ldrsh r2, [r4, r3] + bl sub_0801E1EC + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _080500E0 + ldrh r1, [r4, #8] + ldr r0, _080500EC @ =0x0000FFFB + ands r0, r1 + strh r0, [r4, #8] + bl sub_08050008 + ldr r1, _080500F0 @ =gUnk_0200B644 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] +_080500E0: + pop {r4, r5, pc} + .align 2, 0 +_080500E4: .4byte gUnk_03000000 +_080500E8: .4byte gUnk_03000F50 +_080500EC: .4byte 0x0000FFFB +_080500F0: .4byte gUnk_0200B644 + + thumb_func_start sub_080500F4 +sub_080500F4: @ 0x080500F4 + ldr r1, _0805010C @ =gUnk_03000FD0 + strh r0, [r1, #0xa] + ldrh r0, [r1, #8] + movs r2, #1 + eors r0, r2 + strh r0, [r1, #8] + strb r2, [r1] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0xc] + bx lr + .align 2, 0 +_0805010C: .4byte gUnk_03000FD0 + + thumb_func_start sub_08050110 +sub_08050110: @ 0x08050110 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + movs r1, #1 + ands r1, r4 + cmp r1, #0 + beq _08050130 + ldr r1, _0805012C @ =gUnk_03000FD0 + movs r0, #0x96 + strh r0, [r1, #0x10] + adds r2, r1, #0 + b _08050136 + .align 2, 0 +_0805012C: .4byte gUnk_03000FD0 +_08050130: + ldr r0, _0805014C @ =gUnk_03000FD0 + strh r1, [r0, #0x10] + adds r2, r0, #0 +_08050136: + movs r1, #0 + strh r5, [r2, #0x12] + strh r6, [r2, #0x14] + ldr r0, _08050150 @ =0x00003F3F + strh r0, [r2, #0x16] + strh r1, [r2, #0x18] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08050054 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805014C: .4byte gUnk_03000FD0 +_08050150: .4byte 0x00003F3F + + thumb_func_start sub_08050154 +sub_08050154: @ 0x08050154 + push {r4, r5, r6, lr} + ldr r4, _08050180 @ =gUnk_03000FD0 + ldrh r0, [r4, #8] + movs r5, #0x1c + ands r5, r0 + movs r6, #0 + ldrb r0, [r4] + cmp r0, #0 + beq _080501BE + ldrh r0, [r4, #0xc] + ldrh r1, [r4, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0xc] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + ldrh r2, [r4, #0xe] + movs r3, #0xe + ldrsh r1, [r4, r3] + cmp r0, r1 + bgt _080501B8 + strh r2, [r4, #0xc] + b _080501B8 + .align 2, 0 +_08050180: .4byte gUnk_03000FD0 +_08050184: + mvns r0, r5 + adds r0, #1 + ands r0, r5 + eors r5, r0 + cmp r0, #8 + beq _080501A8 + cmp r0, #8 + bhi _0805019A + cmp r0, #4 + beq _080501A0 + b _080501B8 +_0805019A: + cmp r0, #0x10 + beq _080501B0 + b _080501B8 +_080501A0: + adds r0, r4, #0 + bl sub_080501C0 + b _080501B6 +_080501A8: + adds r0, r4, #0 + bl sub_08050230 + b _080501B6 +_080501B0: + adds r0, r4, #0 + bl sub_080502A4 +_080501B6: + orrs r6, r0 +_080501B8: + cmp r5, #0 + bne _08050184 + strb r6, [r4] +_080501BE: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080501C0 +sub_080501C0: @ 0x080501C0 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + ldrh r1, [r3, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080501DA + movs r0, #0xc + ldrsh r1, [r3, r0] + movs r0, #0x80 + lsls r0, r0, #1 + subs r5, r0, r1 + b _080501DE +_080501DA: + movs r2, #0xc + ldrsh r5, [r3, r2] +_080501DE: + ldr r0, _080501F8 @ =gUnk_03000FD0 + ldr r2, [r0, #4] + ldr r1, _080501FC @ =gUnk_020354C0 + movs r4, #0 + ldr r7, _08050200 @ =gUnk_0200B644 + movs r6, #1 +_080501EA: + adds r0, r2, #0 + ands r0, r6 + cmp r0, #0 + beq _08050204 + strb r6, [r1] + strh r5, [r1, #2] + b _08050208 + .align 2, 0 +_080501F8: .4byte gUnk_03000FD0 +_080501FC: .4byte gUnk_020354C0 +_08050200: .4byte gUnk_0200B644 +_08050204: + strb r0, [r1] + strh r0, [r1, #2] +_08050208: + ldrb r0, [r3, #2] + strb r0, [r1, #1] + lsrs r2, r2, #1 + adds r4, #1 + adds r1, #4 + cmp r4, #0x1f + bls _080501EA + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r7] + movs r0, #0xe + ldrsh r1, [r3, r0] + movs r2, #0xc + ldrsh r0, [r3, r2] + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08050230 +sub_08050230: @ 0x08050230 + push {r4, r5, lr} + ldrh r4, [r0, #8] + ldrh r0, [r0, #0xc] + lsls r5, r0, #0x10 + asrs r2, r5, #0x14 + movs r0, #0xf + ands r2, r0 + movs r0, #1 + ands r4, r0 + cmp r4, #0 + beq _0805024A + movs r0, #0xf + subs r2, r0, r2 +_0805024A: + ldr r3, _08050264 @ =gUnk_03000F50 + ldr r1, _08050268 @ =gUnk_080FC3C4 + lsls r0, r2, #1 + adds r0, r0, r1 + ldrh r1, [r0] + adds r0, r3, #0 + adds r0, #0x64 + strh r1, [r0] + cmp r5, #0 + beq _0805026C + movs r0, #1 + b _08050298 + .align 2, 0 +_08050264: .4byte gUnk_03000F50 +_08050268: .4byte gUnk_080FC3C4 +_0805026C: + ldr r1, _0805029C @ =gUnk_03000000 + movs r0, #0 + strb r0, [r1, #2] + cmp r4, #0 + bne _08050296 + ldrh r2, [r3, #8] + ldr r1, _080502A0 @ =0x0000FFBF + adds r0, r1, #0 + ands r0, r2 + strh r0, [r3, #8] + ldrh r2, [r3, #0x14] + adds r0, r1, #0 + ands r0, r2 + strh r0, [r3, #0x14] + ldrh r2, [r3, #0x20] + adds r0, r1, #0 + ands r0, r2 + strh r0, [r3, #0x20] + ldrh r0, [r3, #0x2c] + ands r1, r0 + strh r1, [r3, #0x2c] +_08050296: + movs r0, #0 +_08050298: + pop {r4, r5, pc} + .align 2, 0 +_0805029C: .4byte gUnk_03000000 +_080502A0: .4byte 0x0000FFBF + + thumb_func_start sub_080502A4 +sub_080502A4: @ 0x080502A4 + push {r4, lr} + ldrh r1, [r0, #8] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080502E4 + ldr r4, _080502E0 @ =gUnk_03000FD0 + ldrh r0, [r4, #0x10] + ldrh r1, [r4, #0xa] + subs r0, r0, r1 + strh r0, [r4, #0x10] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _080502C4 + movs r0, #0 + strh r0, [r4, #0x10] +_080502C4: + movs r1, #0x12 + ldrsh r0, [r4, r1] + movs r2, #0x14 + ldrsh r1, [r4, r2] + movs r3, #0x10 + ldrsh r2, [r4, r3] + bl sub_0801E1EC + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0 + bne _08050314 + movs r0, #0 + b _08050316 + .align 2, 0 +_080502E0: .4byte gUnk_03000FD0 +_080502E4: + ldr r4, _08050310 @ =gUnk_03000FD0 + ldrh r0, [r4, #0xa] + ldrh r2, [r4, #0x10] + adds r0, r0, r2 + strh r0, [r4, #0x10] + movs r3, #0x12 + ldrsh r0, [r4, r3] + movs r2, #0x14 + ldrsh r1, [r4, r2] + movs r3, #0x10 + ldrsh r2, [r4, r3] + bl sub_0801E1EC + movs r1, #0x10 + ldrsh r0, [r4, r1] + cmp r0, #0x96 + ble _08050314 + bl sub_0801E104 + movs r0, #0 + b _08050316 + .align 2, 0 +_08050310: .4byte gUnk_03000FD0 +_08050314: + movs r0, #1 +_08050316: + pop {r4, pc} + + thumb_func_start sub_08050318 +sub_08050318: @ 0x08050318 + push {r4, r5, r6, lr} + sub sp, #0x18 + adds r6, r0, #0 + adds r4, r1, #0 + bl sub_08050384 + ldr r0, _08050374 @ =gUnk_080FC844 + mov r1, sp + movs r2, #0x18 + bl sub_0801D66C + ldr r1, _08050378 @ =gUnk_020227E8 + adds r0, r4, #0 + bl sub_08056FEC + mov r2, sp + mov r1, sp + ldr r5, _0805037C @ =gUnk_080FC85C + lsls r4, r6, #1 + adds r4, r4, r6 + lsls r4, r4, #1 + adds r0, r4, r5 + ldrh r0, [r0] + lsls r0, r0, #0xc + ldrh r1, [r1, #0x10] + orrs r0, r1 + strh r0, [r2, #0x10] + adds r0, r5, #2 + adds r0, r4, r0 + ldrh r0, [r0] + mov r1, sp + bl sub_0805F46C + adds r5, #4 + adds r4, r4, r5 + ldrh r0, [r4] + cmp r0, #0 + beq _08050368 + bl sub_080A3268 +_08050368: + ldr r1, _08050380 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + add sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_08050374: .4byte gUnk_080FC844 +_08050378: .4byte gUnk_020227E8 +_0805037C: .4byte gUnk_080FC85C +_08050380: .4byte gUnk_03000F50 + + thumb_func_start sub_08050384 +sub_08050384: @ 0x08050384 + push {lr} + movs r0, #0 + movs r1, #0 + bl sub_0801C4A0 + ldr r0, _080503A0 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r1, _080503A4 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + pop {pc} + .align 2, 0 +_080503A0: .4byte gUnk_02034CB0 +_080503A4: .4byte gUnk_03000F50 + + thumb_func_start sub_080503A8 +sub_080503A8: @ 0x080503A8 + push {lr} + bl sub_0801D7EC + ldr r1, _080503B8 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x1a] + strh r0, [r1, #0x26] + pop {pc} + .align 2, 0 +_080503B8: .4byte gUnk_03000F50 + + thumb_func_start sub_080503BC +sub_080503BC: @ 0x080503BC + push {r4, lr} + ldr r1, _080503D8 @ =gUnk_02032EC0 + strb r0, [r1, #4] + ldr r0, _080503DC @ =gUnk_02034CB0 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _080503E0 @ =gUnk_02021F30 + adds r1, r4, #0 + bl sub_0801D630 + pop {r4, pc} + .align 2, 0 +_080503D8: .4byte gUnk_02032EC0 +_080503DC: .4byte gUnk_02034CB0 +_080503E0: .4byte gUnk_02021F30 + + thumb_func_start sub_080503E4 +sub_080503E4: @ 0x080503E4 + push {lr} + adds r1, r0, #0 + cmp r1, #2 + bls _080503F2 + movs r2, #1 + movs r1, #1 + b _080503FE +_080503F2: + ldr r0, _08050410 @ =0x000004B4 + muls r0, r1, r0 + ldr r1, _08050414 @ =gUnk_02019EEC + adds r0, r0, r1 + ldrb r2, [r0, #2] + ldrb r1, [r0, #3] +_080503FE: + movs r0, #0x80 + lsls r0, r0, #0x12 + strb r2, [r0, #5] + strb r1, [r0, #6] + ldr r1, _08050418 @ =gUnk_0200B644 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1] + pop {pc} + .align 2, 0 +_08050410: .4byte 0x000004B4 +_08050414: .4byte gUnk_02019EEC +_08050418: .4byte gUnk_0200B644 + + thumb_func_start sub_0805041C +sub_0805041C: @ 0x0805041C + push {r4, lr} + adds r4, r0, #0 + cmp r4, #2 + bhi _0805043A + movs r0, #0x80 + lsls r0, r0, #0x12 + strb r4, [r0, #4] + ldr r2, _08050444 @ =0x000004B4 + adds r0, r4, #0 + muls r0, r2, r0 + ldr r1, _08050448 @ =gUnk_02019EEC + adds r0, r0, r1 + ldr r1, _0805044C @ =gUnk_02002A40 + bl sub_0801D66C +_0805043A: + adds r0, r4, #0 + bl sub_080503E4 + pop {r4, pc} + .align 2, 0 +_08050444: .4byte 0x000004B4 +_08050448: .4byte gUnk_02019EEC +_0805044C: .4byte gUnk_02002A40 + + thumb_func_start sub_08050450 +sub_08050450: @ 0x08050450 + push {r4, lr} + bl sub_080AD90C + ldr r1, _080504D8 @ =gUnk_080FC8A4 + ldr r0, _080504DC @ =gUnk_03001000 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r4, _080504E0 @ =gUnk_02032EC0 + ldrb r1, [r4, #4] + ldrb r0, [r4, #2] + cmp r0, r1 + beq _0805048A + movs r0, #0 + strb r1, [r4, #2] + ldr r1, _080504E4 @ =gUnk_03000F50 + strh r0, [r1, #0xa] + strh r0, [r1, #0xc] + strh r0, [r1, #0x16] + strh r0, [r1, #0x18] + strh r0, [r1, #0x22] + strh r0, [r1, #0x24] + ldr r0, _080504E8 @ =gUnk_02000080 + movs r1, #0x30 + bl sub_0801D630 +_0805048A: + bl sub_080507FC + ldr r1, _080504EC @ =gUnk_080FC8B0 + ldrb r0, [r4, #2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r4, _080504F0 @ =gUnk_02019EE0 + movs r0, #0 + strb r0, [r4] + bl sub_0805E5C0 + bl sub_0805066C + bl sub_0801C1D4 + bl sub_0801C208 + bl sub_080AD9B0 + bl sub_080AD918 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + ldrb r0, [r4, #3] + cmp r0, r1 + beq _080504D4 + strb r1, [r4, #3] + movs r0, #6 + bl sub_080503A8 + movs r0, #0xf + bl sub_080503A8 +_080504D4: + pop {r4, pc} + .align 2, 0 +_080504D8: .4byte gUnk_080FC8A4 +_080504DC: .4byte gUnk_03001000 +_080504E0: .4byte gUnk_02032EC0 +_080504E4: .4byte gUnk_03000F50 +_080504E8: .4byte gUnk_02000080 +_080504EC: .4byte gUnk_080FC8B0 +_080504F0: .4byte gUnk_02019EE0 + + thumb_func_start sub_080504F4 +sub_080504F4: @ 0x080504F4 + push {r4, lr} + movs r0, #1 + bl sub_0801DA90 + bl sub_080A3210 + movs r0, #0xc0 + lsls r0, r0, #0x13 + movs r1, #0x80 + bl sub_0801D630 + bl sub_08056418 + bl sub_0805E60C + bl sub_08080668 + bl sub_080ADD30 + movs r0, #0 + bl sub_0801CFA8 + ldr r0, _080505DC @ =gUnk_0200AF00 + movs r1, #0xcd + lsls r1, r1, #2 + bl sub_0801D630 + ldr r4, _080505E0 @ =gUnk_02019EE0 + ldr r1, _080505E4 @ =0x00000E28 + adds r0, r4, #0 + bl sub_0801D630 + movs r0, #7 + strb r0, [r4, #3] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #0 + cmp r0, #1 + bls _08050546 + movs r1, #3 +_08050546: + strb r1, [r4, #6] + ldr r4, _080505E8 @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_0801D630 + movs r0, #8 + strb r0, [r4, #2] + movs r0, #0 + bl sub_080503BC + bl sub_0805616C + movs r0, #0 + bl sub_08050624 + movs r0, #1 + bl sub_08050624 + movs r0, #2 + bl sub_08050624 + bl sub_08056208 + movs r0, #5 + bl sub_080503A8 + movs r0, #9 + bl sub_0801D714 + movs r4, #0 +_08050586: + movs r0, #0x48 + adds r1, r4, #0 + movs r2, #0 + bl sub_080A2960 + adds r4, #1 + cmp r4, #0x19 + bls _08050586 + ldr r0, _080505EC @ =gUnk_080FC8D0 + bl sub_080A70AC + bl sub_080507FC + ldr r1, _080505F0 @ =gUnk_03000F50 + ldrh r2, [r1] + movs r3, #0xf8 + lsls r3, r3, #5 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _080505F4 @ =0x00001E0B + strh r0, [r1, #0x2c] + adds r2, r1, #0 + adds r2, #0x66 + ldr r0, _080505F8 @ =0x00000844 + strh r0, [r2] + adds r1, #0x68 + ldr r0, _080505FC @ =0x00000A0F + strh r0, [r1] + ldr r0, _08050600 @ =gUnk_02024490 + movs r1, #1 + strb r1, [r0] + ldr r0, _08050604 @ =gUnk_03001000 + strb r1, [r0, #3] + movs r0, #7 + bl sub_080A3268 + movs r0, #4 + movs r1, #8 + bl sub_08050054 + pop {r4, pc} + .align 2, 0 +_080505DC: .4byte gUnk_0200AF00 +_080505E0: .4byte gUnk_02019EE0 +_080505E4: .4byte 0x00000E28 +_080505E8: .4byte gUnk_02032EC0 +_080505EC: .4byte gUnk_080FC8D0 +_080505F0: .4byte gUnk_03000F50 +_080505F4: .4byte 0x00001E0B +_080505F8: .4byte 0x00000844 +_080505FC: .4byte 0x00000A0F +_08050600: .4byte gUnk_02024490 +_08050604: .4byte gUnk_03001000 + + thumb_func_start nullsub_479 +nullsub_479: @ 0x08050608 + bx lr + .align 2, 0 + + thumb_func_start sub_0805060C +sub_0805060C: @ 0x0805060C + push {lr} + ldr r0, _08050620 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _0805061C + movs r0, #2 + bl sub_08056010 +_0805061C: + pop {pc} + .align 2, 0 +_08050620: .4byte gUnk_03000FD0 + + thumb_func_start sub_08050624 +sub_08050624: @ 0x08050624 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08050648 @ =0x000004B4 + adds r1, r4, #0 + muls r1, r0, r1 + ldr r0, _0805064C @ =gUnk_02019EEC + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0807CF28 + adds r5, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r5, r0 + beq _08050650 + cmp r5, #0 + beq _08050656 + b _0805065C + .align 2, 0 +_08050648: .4byte 0x000004B4 +_0805064C: .4byte gUnk_02019EEC +_08050650: + adds r0, r4, #0 + bl sub_0807CF48 +_08050656: + adds r0, r4, #0 + bl sub_0805194C +_0805065C: + ldr r0, _08050668 @ =gUnk_02019EE0 + adds r0, #8 + adds r0, r4, r0 + strb r5, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08050668: .4byte gUnk_02019EE0 + + thumb_func_start sub_0805066C +sub_0805066C: @ 0x0805066C + push {r4, lr} + movs r1, #0 + ldr r4, _080506F0 @ =gUnk_02019EE0 + ldrb r0, [r4, #1] + subs r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08050690 + movs r0, #0x10 + strb r0, [r4, #1] + ldrb r0, [r4, #2] + adds r0, #1 + movs r1, #0xf + bl __modsi3 + strb r0, [r4, #2] + movs r1, #1 +_08050690: + ldrb r0, [r4, #2] + cmp r0, #0 + bne _080506AA + movs r0, #1 + strb r0, [r4, #2] + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #4 + adds r1, #8 + strb r1, [r4, #1] + movs r1, #1 +_080506AA: + cmp r1, #0 + beq _080506EE + ldr r1, _080506F4 @ =gUnk_080FC8DE + ldrb r0, [r4, #2] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + ldr r0, _080506F8 @ =gUnk_085A2E80 + adds r4, r4, r0 + ldr r1, _080506FC @ =0x00011AA0 + adds r0, r4, r1 + movs r1, #0xb + movs r2, #1 + bl sub_0801D754 + ldr r1, _08050700 @ =0x00011BA0 + adds r0, r4, r1 + movs r1, #0xc + movs r2, #1 + bl sub_0801D754 + ldr r1, _08050704 @ =0x00011CA0 + adds r0, r4, r1 + movs r1, #0xd + movs r2, #1 + bl sub_0801D754 + ldr r0, _08050708 @ =0x00011DA0 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0xe + movs r2, #1 + bl sub_0801D754 +_080506EE: + pop {r4, pc} + .align 2, 0 +_080506F0: .4byte gUnk_02019EE0 +_080506F4: .4byte gUnk_080FC8DE +_080506F8: .4byte gUnk_085A2E80 +_080506FC: .4byte 0x00011AA0 +_08050700: .4byte 0x00011BA0 +_08050704: .4byte 0x00011CA0 +_08050708: .4byte 0x00011DA0 + + thumb_func_start sub_0805070C +sub_0805070C: @ 0x0805070C + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_0805F2C8 + adds r5, r0, #0 + cmp r5, #0 + beq _0805077A + movs r0, #0 + strb r0, [r5, #2] + movs r0, #5 + strb r0, [r5, #3] + movs r0, #1 + strb r0, [r5, #1] + movs r0, #0x30 + strh r0, [r5, #4] + ldr r0, _08050780 @ =gUnk_02000D00 + str r0, [r5, #8] + movs r6, #0 +_08050732: + movs r0, #0 + strh r0, [r5, #6] + ldr r0, [r5, #8] + movs r1, #0x80 + lsls r1, r1, #2 + bl sub_0801D630 + ldr r0, _08050784 @ =0x000004B4 + adds r1, r6, #0 + muls r1, r0, r1 + ldr r0, _08050788 @ =gUnk_02019F6C + adds r7, r1, r0 + movs r4, #0 + lsls r0, r6, #9 + mov r8, r0 + adds r6, #1 +_08050752: + adds r0, r7, r4 + ldrb r0, [r0] + adds r1, r5, #0 + bl sub_0805F7DC + adds r4, #1 + cmp r4, #5 + ble _08050752 + ldr r0, [r5, #8] + ldr r1, _0805078C @ =0x06014000 + add r1, r8 + movs r2, #0x80 + lsls r2, r2, #2 + bl sub_0801D66C + cmp r6, #2 + bls _08050732 + adds r0, r5, #0 + bl sub_0805F300 +_0805077A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08050780: .4byte gUnk_02000D00 +_08050784: .4byte 0x000004B4 +_08050788: .4byte gUnk_02019F6C +_0805078C: .4byte 0x06014000 + + thumb_func_start sub_08050790 +sub_08050790: @ 0x08050790 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_0805F2C8 + adds r6, r0, #0 + cmp r6, #0 + beq _080507F0 + movs r0, #0 + strb r0, [r6, #2] + movs r0, #5 + strb r0, [r6, #3] + movs r0, #1 + strb r0, [r6, #1] + movs r0, #0x80 + strh r0, [r6, #4] + ldr r0, _080507F8 @ =gUnk_02000D00 + str r0, [r6, #8] + movs r1, #0 +_080507B6: + movs r0, #0 + strh r0, [r6, #6] + lsls r4, r1, #4 + movs r5, #0 + lsls r7, r1, #0xa + adds r1, #1 + mov r8, r1 +_080507C4: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0805F7DC + adds r4, #1 + adds r5, #1 + cmp r5, #0xf + bls _080507C4 + movs r0, #0xc0 + lsls r0, r0, #0x13 + adds r1, r7, r0 + ldr r0, _080507F8 @ =gUnk_02000D00 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_0801D66C + mov r1, r8 + cmp r1, #0xf + bls _080507B6 + adds r0, r6, #0 + bl sub_0805F300 +_080507F0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080507F8: .4byte gUnk_02000D00 + + thumb_func_start sub_080507FC +sub_080507FC: @ 0x080507FC + ldr r0, _0805080C @ =gUnk_0200AF00 + movs r1, #0xa0 + lsls r1, r1, #1 + strh r1, [r0, #0x1a] + movs r1, #0x24 + strh r1, [r0, #0x20] + bx lr + .align 2, 0 +_0805080C: .4byte gUnk_0200AF00 + + thumb_func_start sub_08050810 +sub_08050810: @ 0x08050810 + ldr r0, _0805081C @ =gUnk_0200AF00 + movs r1, #0xd0 + strh r1, [r0, #0x1a] + movs r1, #0x24 + strh r1, [r0, #0x20] + bx lr + .align 2, 0 +_0805081C: .4byte gUnk_0200AF00 + + thumb_func_start sub_08050820 +sub_08050820: @ 0x08050820 + push {lr} + ldr r1, _0805083C @ =gUnk_080FC8FC + ldr r0, _08050840 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08050844 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_08050A64 + pop {pc} + .align 2, 0 +_0805083C: .4byte gUnk_080FC8FC +_08050840: .4byte gUnk_02000080 +_08050844: .4byte gUnk_02019EE0 + + thumb_func_start sub_08050848 +sub_08050848: @ 0x08050848 + push {lr} + movs r0, #7 + bl sub_080503A8 + bl sub_0805070C + ldr r0, _08050868 @ =gUnk_02019EE0 + movs r1, #0 + strb r1, [r0, #7] + ldrb r0, [r0, #6] + bl sub_08050AFC + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_08050868: .4byte gUnk_02019EE0 + + thumb_func_start sub_0805086C +sub_0805086C: @ 0x0805086C + push {lr} + ldr r1, _08050880 @ =gUnk_080FC908 + ldr r0, _08050884 @ =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 +_08050880: .4byte gUnk_080FC908 +_08050884: .4byte gUnk_02000080 + + thumb_func_start sub_08050888 +sub_08050888: @ 0x08050888 + push {r4, lr} + ldr r0, _080508C4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080508DC + ldr r4, _080508C8 @ =gUnk_02019EE0 + ldrb r1, [r4, #7] + adds r0, r4, #0 + adds r0, #8 + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080508D0 + cmp r0, #1 + beq _080508D6 + adds r0, r1, #0 + bl sub_0805194C + ldrb r1, [r4, #7] + adds r1, #1 + movs r0, #0 + bl sub_08050318 + ldr r1, _080508CC @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + movs r0, #1 + b _080508DA + .align 2, 0 +_080508C4: .4byte gUnk_03000FD0 +_080508C8: .4byte gUnk_02019EE0 +_080508CC: .4byte gUnk_02000080 +_080508D0: + adds r0, r1, #0 + bl sub_0805194C +_080508D6: + ldr r1, _080508E0 @ =gUnk_02000080 + movs r0, #2 +_080508DA: + strb r0, [r1, #6] +_080508DC: + pop {r4, pc} + .align 2, 0 +_080508E0: .4byte gUnk_02000080 + + thumb_func_start sub_080508E4 +sub_080508E4: @ 0x080508E4 + push {lr} + ldr r2, _08050900 @ =gUnk_02000080 + ldrh r0, [r2, #8] + cmp r0, #0 + bne _08050908 + ldr r0, _08050904 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _0805090C + movs r0, #2 + strb r0, [r2, #6] + b _0805090C + .align 2, 0 +_08050900: .4byte gUnk_02000080 +_08050904: .4byte gUnk_03000FF0 +_08050908: + subs r0, #1 + strh r0, [r2, #8] +_0805090C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08050910 +sub_08050910: @ 0x08050910 + push {lr} + bl sub_08050384 + ldr r1, _08050930 @ =gUnk_02019EE0 + ldrb r0, [r1, #7] + adds r0, #1 + strb r0, [r1, #7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bls _08050934 + movs r0, #2 + bl sub_080A7114 + b _0805093A + .align 2, 0 +_08050930: .4byte gUnk_02019EE0 +_08050934: + ldr r1, _0805093C @ =gUnk_02000080 + movs r0, #0 + strb r0, [r1, #6] +_0805093A: + pop {pc} + .align 2, 0 +_0805093C: .4byte gUnk_02000080 + + thumb_func_start sub_08050940 +sub_08050940: @ 0x08050940 + push {r4, r5, r6, lr} + ldr r3, _0805099C @ =gUnk_02019EE0 + ldrb r0, [r3] + cmp r0, #0 + beq _0805094C + b _08050A58 +_0805094C: + ldrb r4, [r3, #6] + ldr r0, _080509A0 @ =gUnk_03000FF0 + ldrh r2, [r0, #2] + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08050974 + adds r0, r3, #0 + adds r0, #8 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08050974 + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r2, r0 +_08050974: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r6, #3 + cmp r0, #1 + bls _08050982 + movs r6, #4 +_08050982: + ldr r0, _080509A4 @ =gUnk_02032EC0 + ldrb r5, [r0, #2] + adds r1, r0, #0 + cmp r2, #0x40 + beq _080509B6 + cmp r2, #0x40 + bhi _080509A8 + cmp r2, #1 + beq _080509E0 + cmp r2, #8 + beq _080509E0 + b _08050A10 + .align 2, 0 +_0805099C: .4byte gUnk_02019EE0 +_080509A0: .4byte gUnk_03000FF0 +_080509A4: .4byte gUnk_02032EC0 +_080509A8: + cmp r2, #0x80 + beq _080509BE + movs r0, #0x80 + lsls r0, r0, #1 + cmp r2, r0 + beq _080509C8 + b _08050A10 +_080509B6: + cmp r4, #0 + ble _08050A10 + subs r4, #1 + b _08050A10 +_080509BE: + subs r0, r6, #1 + cmp r0, r4 + ble _08050A10 + adds r4, #1 + b _08050A10 +_080509C8: + ldr r0, _080509DC @ =gUnk_02019EE0 + adds r0, #8 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08050A10 + movs r5, #3 + b _08050A10 + .align 2, 0 +_080509DC: .4byte gUnk_02019EE0 +_080509E0: + adds r0, r4, #0 + bl sub_0805041C + cmp r4, #3 + bne _080509EE + movs r5, #2 + b _08050A0E +_080509EE: + ldr r0, _08050A04 @ =gUnk_02019EE0 + adds r0, #8 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08050A08 + cmp r0, #1 + beq _08050A0C + b _08050A0E + .align 2, 0 +_08050A04: .4byte gUnk_02019EE0 +_08050A08: + movs r5, #1 + b _08050A0E +_08050A0C: + movs r5, #4 +_08050A0E: + ldr r1, _08050A5C @ =gUnk_02032EC0 +_08050A10: + ldrb r0, [r1, #2] + cmp r0, r5 + beq _08050A22 + adds r0, r5, #0 + bl sub_080503BC + movs r0, #0x6a + bl sub_080A3268 +_08050A22: + adds r0, r4, r6 + adds r1, r6, #0 + bl __modsi3 + adds r4, r0, #0 + ldr r5, _08050A60 @ =gUnk_02019EE0 + ldrb r0, [r5, #6] + cmp r0, r4 + beq _08050A42 + strb r4, [r5, #6] + adds r0, r4, #0 + bl sub_08050AFC + movs r0, #0x69 + bl sub_080A3268 +_08050A42: + adds r0, r5, #0 + adds r0, #8 + ldrb r5, [r5, #6] + adds r0, r0, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08050A58 + bl sub_08050810 +_08050A58: + pop {r4, r5, r6, pc} + .align 2, 0 +_08050A5C: .4byte gUnk_02032EC0 +_08050A60: .4byte gUnk_02019EE0 + + thumb_func_start sub_08050A64 +sub_08050A64: @ 0x08050A64 + push {r4, lr} + ldr r1, _08050AF0 @ =gUnk_02019EE0 + adds r1, #8 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08050AEC + ldr r4, _08050AF4 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r4, #4] + strh r0, [r4, #6] + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r4, #8] + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _08050A9E + movs r0, #0xa2 + strh r0, [r4] + movs r0, #0x36 + strh r0, [r4, #2] + ldr r0, _08050AF8 @ =0x00000145 + movs r1, #0x24 + bl sub_080ADA14 +_08050A9E: + movs r0, #0x41 + bl sub_0807CA84 + cmp r0, #0 + beq _08050AB8 + movs r0, #0x96 + strh r0, [r4] + movs r0, #0x3d + strh r0, [r4, #2] + ldr r0, _08050AF8 @ =0x00000145 + movs r1, #0x22 + bl sub_080ADA14 +_08050AB8: + movs r0, #0x42 + bl sub_0807CA84 + cmp r0, #0 + beq _08050AD2 + movs r0, #0xae + strh r0, [r4] + movs r0, #0x3d + strh r0, [r4, #2] + ldr r0, _08050AF8 @ =0x00000145 + movs r1, #0x23 + bl sub_080ADA14 +_08050AD2: + movs r0, #0x43 + bl sub_0807CA84 + cmp r0, #0 + beq _08050AEC + movs r0, #0xa2 + strh r0, [r4] + movs r0, #0x44 + strh r0, [r4, #2] + ldr r0, _08050AF8 @ =0x00000145 + movs r1, #0x21 + bl sub_080ADA14 +_08050AEC: + pop {r4, pc} + .align 2, 0 +_08050AF0: .4byte gUnk_02019EE0 +_08050AF4: .4byte gUnk_03001010 +_08050AF8: .4byte 0x00000145 + + thumb_func_start sub_08050AFC +sub_08050AFC: @ 0x08050AFC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0805041C + ldr r5, _08050B30 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r5, #0 + bl sub_0801D630 + ldr r0, _08050B34 @ =gUnk_02019EE0 + adds r0, #8 + adds r4, r4, r0 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #1 + bne _08050B28 + movs r1, #0xa7 + lsls r1, r1, #2 + adds r0, r5, r1 + bl sub_08050B3C +_08050B28: + ldr r1, _08050B38 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_08050B30: .4byte gUnk_02021F30 +_08050B34: .4byte gUnk_02019EE0 +_08050B38: .4byte gUnk_03000F50 + + thumb_func_start sub_08050B3C +sub_08050B3C: @ 0x08050B3C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + str r0, [sp] + ldr r1, _08050C18 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaa + ldrb r0, [r0] + lsrs r2, r0, #1 + cmp r2, #0 + bne _08050B5A + movs r2, #1 +_08050B5A: + adds r0, r1, #0 + adds r0, #0xab + ldrb r0, [r0] + lsrs r3, r0, #1 + cmp r3, #0 + beq _08050C0A + cmp r2, r3 + ble _08050B6C + adds r2, r3, #0 +_08050B6C: + movs r0, #3 + ands r0, r2 + str r0, [sp, #4] + adds r0, r2, #0 + asrs r5, r0, #2 + mov ip, r5 + cmp r5, #0xa + ble _08050B80 + movs r2, #0xa + mov ip, r2 +_08050B80: + adds r6, r5, #0 + subs r6, #0xa + mov sb, r6 + cmp r6, #0 + bge _08050B8E + movs r7, #0 + mov sb, r7 +_08050B8E: + adds r0, r3, #0 + asrs r3, r0, #2 + adds r0, r3, #0 + cmp r3, #0xa + ble _08050B9A + movs r3, #0xa +_08050B9A: + adds r4, r0, #0 + subs r4, #0xa + ldr r2, [sp] + ldr r0, _08050C1C @ =0x0000F24C + mov sl, r0 + strh r0, [r2] + ldr r1, _08050C20 @ =0x040000D4 + movs r7, #0xa + mov r8, r7 + mov r0, r8 + mov r7, ip + subs r0, r0, r7 + lsls r0, r0, #1 + ldr r7, _08050C24 @ =gUnk_080FC914 + mov ip, r7 + add r0, ip + str r0, [r1] + adds r0, r2, #2 + str r0, [r1, #4] + movs r0, #0x80 + lsls r0, r0, #0x18 + orrs r3, r0 + str r3, [r1, #8] + ldr r0, [r1, #8] + cmp r4, #0 + ble _08050BEE + adds r2, #0x40 + mov r3, sl + strh r3, [r2] + mov r7, r8 + mov r3, sb + subs r0, r7, r3 + lsls r0, r0, #1 + add r0, ip + str r0, [r1] + adds r0, r2, #2 + str r0, [r1, #4] + movs r7, #0x80 + lsls r7, r7, #0x18 + orrs r4, r7 + str r4, [r1, #8] + ldr r0, [r1, #8] +_08050BEE: + ldr r0, [sp, #4] + cmp r0, #0 + beq _08050C0A + ldr r2, [sp] + cmp r5, #9 + ble _08050BFE + adds r5, r6, #0 + adds r2, #0x40 +_08050BFE: + lsls r0, r5, #1 + adds r0, r0, r2 + ldr r2, [sp, #4] + ldr r3, _08050C28 @ =0xFFFFF24D + adds r1, r2, r3 + strh r1, [r0, #2] +_08050C0A: + 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 +_08050C18: .4byte gUnk_02002A40 +_08050C1C: .4byte 0x0000F24C +_08050C20: .4byte 0x040000D4 +_08050C24: .4byte gUnk_080FC914 +_08050C28: .4byte 0xFFFFF24D + + thumb_func_start sub_08050C2C +sub_08050C2C: @ 0x08050C2C + push {lr} + ldr r1, _08050C48 @ =gUnk_080FC93C + ldr r0, _08050C4C @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08050C50 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_08050A64 + pop {pc} + .align 2, 0 +_08050C48: .4byte gUnk_080FC93C +_08050C4C: .4byte gUnk_02000080 +_08050C50: .4byte gUnk_02019EE0 + + thumb_func_start sub_08050C54 +sub_08050C54: @ 0x08050C54 + push {r4, lr} + ldr r0, _08050C78 @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + beq _08050C60 + b _08050D60 +_08050C60: + ldr r0, _08050C7C @ =gUnk_02000080 + ldrb r4, [r0, #1] + ldr r0, _08050C80 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + subs r0, #1 + cmp r0, #0x1f + bhi _08050D44 + lsls r0, r0, #2 + ldr r1, _08050C84 @ =_08050C88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08050C78: .4byte gUnk_02019EE0 +_08050C7C: .4byte gUnk_02000080 +_08050C80: .4byte gUnk_03000FF0 +_08050C84: .4byte _08050C88 +_08050C88: @ jump table + .4byte _08050D08 @ case 0 + .4byte _08050D30 @ case 1 + .4byte _08050D44 @ case 2 + .4byte _08050D44 @ case 3 + .4byte _08050D44 @ case 4 + .4byte _08050D44 @ case 5 + .4byte _08050D44 @ case 6 + .4byte _08050D08 @ case 7 + .4byte _08050D44 @ case 8 + .4byte _08050D44 @ case 9 + .4byte _08050D44 @ case 10 + .4byte _08050D44 @ case 11 + .4byte _08050D44 @ case 12 + .4byte _08050D44 @ case 13 + .4byte _08050D44 @ case 14 + .4byte _08050D42 @ case 15 + .4byte _08050D44 @ case 16 + .4byte _08050D44 @ case 17 + .4byte _08050D44 @ case 18 + .4byte _08050D44 @ case 19 + .4byte _08050D44 @ case 20 + .4byte _08050D44 @ case 21 + .4byte _08050D44 @ case 22 + .4byte _08050D44 @ case 23 + .4byte _08050D44 @ case 24 + .4byte _08050D44 @ case 25 + .4byte _08050D44 @ case 26 + .4byte _08050D44 @ case 27 + .4byte _08050D44 @ case 28 + .4byte _08050D44 @ case 29 + .4byte _08050D44 @ case 30 + .4byte _08050D3E @ case 31 +_08050D08: + cmp r4, #0 + bne _08050D12 + ldr r0, _08050D28 @ =0x80080000 + bl sub_080A3268 +_08050D12: + ldr r1, _08050D2C @ =gUnk_02000080 + movs r0, #0xf + strh r0, [r1, #8] + movs r0, #1 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + b _08050D44 + .align 2, 0 +_08050D28: .4byte 0x80080000 +_08050D2C: .4byte gUnk_02000080 +_08050D30: + movs r0, #0x6c + bl sub_080A3268 + movs r0, #0 + bl sub_080503BC + b _08050D44 +_08050D3E: + subs r4, #1 + b _08050D44 +_08050D42: + adds r4, #1 +_08050D44: + cmp r4, #0 + bge _08050D4A + movs r4, #0 +_08050D4A: + cmp r4, #2 + ble _08050D50 + movs r4, #2 +_08050D50: + ldr r1, _08050D64 @ =gUnk_02000080 + ldrb r0, [r1, #1] + cmp r0, r4 + beq _08050D60 + strb r4, [r1, #1] + movs r0, #0x69 + bl sub_080A3268 +_08050D60: + pop {r4, pc} + .align 2, 0 +_08050D64: .4byte gUnk_02000080 + + thumb_func_start sub_08050D68 +sub_08050D68: @ 0x08050D68 + push {lr} + ldr r1, _08050D84 @ =gUnk_02000080 + ldrh r0, [r1, #8] + cmp r0, #0 + bne _08050D94 + ldrb r0, [r1, #1] + cmp r0, #1 + beq _08050D88 + cmp r0, #1 + ble _08050D80 + cmp r0, #2 + beq _08050D8C +_08050D80: + movs r0, #7 + b _08050D8E + .align 2, 0 +_08050D84: .4byte gUnk_02000080 +_08050D88: + movs r0, #5 + b _08050D8E +_08050D8C: + movs r0, #6 +_08050D8E: + bl sub_080503BC + b _08050D98 +_08050D94: + subs r0, #1 + strh r0, [r1, #8] +_08050D98: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08050D9C +sub_08050D9C: @ 0x08050D9C + push {lr} + ldr r1, _08050DB0 @ =gUnk_080FC944 + ldr r0, _08050DB4 @ =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 +_08050DB0: .4byte gUnk_080FC944 +_08050DB4: .4byte gUnk_02000080 + + thumb_func_start sub_08050DB8 +sub_08050DB8: @ 0x08050DB8 + push {lr} + ldr r0, _08050DDC @ =gUnk_020344B0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + movs r0, #0xc + bl sub_080503A8 + ldr r1, _08050DE0 @ =gUnk_02000080 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + strb r0, [r1, #4] + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_08050DDC: .4byte gUnk_020344B0 +_08050DE0: .4byte gUnk_02000080 + + thumb_func_start sub_08050DE4 +sub_08050DE4: @ 0x08050DE4 + push {r4, lr} + ldr r0, _08050E0C @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + bne _08050E80 + movs r1, #0x80 + lsls r1, r1, #0x12 + ldrb r4, [r1, #7] + ldr r0, _08050E10 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #8 + beq _08050E26 + cmp r0, #8 + bgt _08050E14 + cmp r0, #1 + beq _08050E26 + cmp r0, #2 + beq _08050E50 + b _08050E62 + .align 2, 0 +_08050E0C: .4byte gUnk_02019EE0 +_08050E10: .4byte gUnk_03000FF0 +_08050E14: + cmp r0, #0x40 + beq _08050E1E + cmp r0, #0x80 + beq _08050E22 + b _08050E62 +_08050E1E: + subs r4, #1 + b _08050E62 +_08050E22: + adds r4, #1 + b _08050E62 +_08050E26: + movs r0, #0x6a + bl sub_080A3268 + ldr r0, _08050E44 @ =gUnk_02000080 + ldrb r0, [r0, #4] + cmp r0, r4 + beq _08050E48 + movs r0, #2 + bl sub_080A7114 + movs r0, #8 + movs r1, #0 + bl sub_08050318 + b _08050E62 + .align 2, 0 +_08050E44: .4byte gUnk_02000080 +_08050E48: + movs r0, #0 + bl sub_080503BC + b _08050E62 +_08050E50: + ldr r0, _08050E84 @ =gUnk_02000080 + ldrb r4, [r0, #4] + strb r4, [r1, #7] + movs r0, #0x6c + bl sub_080A3268 + movs r0, #0 + bl sub_080503BC +_08050E62: + cmp r4, #1 + bgt _08050E68 + movs r4, #2 +_08050E68: + cmp r4, #6 + ble _08050E6E + movs r4, #6 +_08050E6E: + movs r1, #0x80 + lsls r1, r1, #0x12 + ldrb r0, [r1, #7] + cmp r0, r4 + beq _08050E80 + strb r4, [r1, #7] + movs r0, #0x69 + bl sub_080A3268 +_08050E80: + pop {r4, pc} + .align 2, 0 +_08050E84: .4byte gUnk_02000080 + + thumb_func_start sub_08050E88 +sub_08050E88: @ 0x08050E88 + push {lr} + movs r0, #2 + bl sub_0807CDA4 + cmp r0, #0 + beq _08050E9A + movs r0, #0 + bl sub_080503BC +_08050E9A: + pop {pc} + + thumb_func_start sub_08050E9C +sub_08050E9C: @ 0x08050E9C + push {lr} + ldr r1, _08050EB0 @ =gUnk_080FC950 + ldr r0, _08050EB4 @ =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 +_08050EB0: .4byte gUnk_080FC950 +_08050EB4: .4byte gUnk_02000080 + + thumb_func_start sub_08050EB8 +sub_08050EB8: @ 0x08050EB8 + push {lr} + movs r0, #0xe + bl sub_080503A8 + ldr r2, _08050EE8 @ =gUnk_02019EE0 + ldrb r1, [r2, #6] + ldr r0, _08050EEC @ =0x000004B4 + muls r1, r0, r1 + adds r0, r2, #0 + adds r0, #0xc + adds r1, r1, r0 + ldrb r0, [r1, #2] + movs r3, #0 + strb r0, [r2, #4] + ldrb r0, [r1, #3] + strb r0, [r2, #5] + ldr r1, _08050EF0 @ =gUnk_02000080 + strb r3, [r1, #1] + movs r0, #0xff + strh r0, [r1, #8] + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_08050EE8: .4byte gUnk_02019EE0 +_08050EEC: .4byte 0x000004B4 +_08050EF0: .4byte gUnk_02000080 + + thumb_func_start sub_08050EF4 +sub_08050EF4: @ 0x08050EF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _08050F40 @ =gUnk_02019EE0 + ldrb r1, [r0] + adds r6, r0, #0 + cmp r1, #0 + bne _08050FF4 + ldrb r1, [r6, #6] + ldr r0, _08050F44 @ =0x000004B4 + muls r1, r0, r1 + adds r0, r6, #0 + adds r0, #0xc + adds r1, r1, r0 + ldr r0, _08050F48 @ =gUnk_02000080 + ldrb r3, [r0, #1] + adds r4, r1, #3 + mov ip, r0 + cmp r3, #0 + bne _08050F1E + adds r4, r1, #2 +_08050F1E: + ldrb r2, [r4] + movs r5, #0 + ldr r0, _08050F4C @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + mov r8, r2 + cmp r0, #0x10 + beq _08050F7A + cmp r0, #0x10 + bgt _08050F56 + cmp r0, #2 + beq _08050F8C + cmp r0, #2 + bgt _08050F50 + cmp r0, #1 + beq _08050F82 + b _08050F8E + .align 2, 0 +_08050F40: .4byte gUnk_02019EE0 +_08050F44: .4byte 0x000004B4 +_08050F48: .4byte gUnk_02000080 +_08050F4C: .4byte gUnk_03000FF0 +_08050F50: + cmp r0, #8 + beq _08050F82 + b _08050F8E +_08050F56: + cmp r0, #0x40 + beq _08050F6A + cmp r0, #0x40 + bgt _08050F64 + cmp r0, #0x20 + beq _08050F72 + b _08050F8E +_08050F64: + cmp r0, #0x80 + beq _08050F6E + b _08050F8E +_08050F6A: + movs r3, #0 + b _08050F8E +_08050F6E: + movs r3, #1 + b _08050F8E +_08050F72: + cmp r2, #0 + beq _08050F8E + subs r2, #1 + b _08050F8E +_08050F7A: + cmp r2, #1 + bhi _08050F8E + adds r2, #1 + b _08050F8E +_08050F82: + ldrh r0, [r6, #4] + movs r5, #2 + ldrh r7, [r1, #2] + cmp r0, r7 + bne _08050F8E +_08050F8C: + movs r5, #3 +_08050F8E: + cmp r5, #0 + beq _08050FD0 + cmp r5, #2 + beq _08050F9C + cmp r5, #3 + beq _08050FAC + b _08050FBA +_08050F9C: + movs r0, #8 + movs r1, #0 + bl sub_08050318 + movs r0, #0x6a + bl sub_080A3268 + b _08050FBA +_08050FAC: + ldrb r0, [r6, #4] + strb r0, [r1, #2] + ldrb r0, [r6, #5] + strb r0, [r1, #3] + movs r0, #0x6c + bl sub_080A3268 +_08050FBA: + adds r0, r5, #0 + bl sub_080A7114 + ldr r0, _08050FCC @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0805041C + b _08050FF4 + .align 2, 0 +_08050FCC: .4byte gUnk_02019EE0 +_08050FD0: + mov r1, ip + ldrb r0, [r1, #1] + cmp r0, r3 + beq _08050FE2 + strb r3, [r1, #1] + movs r0, #0x69 + bl sub_080A3268 + b _08050FF4 +_08050FE2: + cmp r2, r8 + beq _08050FF4 + strb r2, [r4] + ldrb r0, [r6, #6] + bl sub_080503E4 + movs r0, #0x69 + bl sub_080A3268 +_08050FF4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08050FFC +sub_08050FFC: @ 0x08050FFC + push {lr} + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08051014 + cmp r1, #1 + beq _0805102A + b _08051030 +_08051014: + ldr r1, _08051034 @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + ldr r0, _08051038 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0805194C + movs r0, #9 + movs r1, #0 + bl sub_08050318 +_0805102A: + movs r0, #3 + bl sub_080A7114 +_08051030: + pop {pc} + .align 2, 0 +_08051034: .4byte gUnk_02000080 +_08051038: .4byte gUnk_02019EE0 + + thumb_func_start sub_0805103C +sub_0805103C: @ 0x0805103C + push {lr} + ldr r0, _08051050 @ =gUnk_02000080 + ldrb r1, [r0, #8] + adds r2, r0, #0 + cmp r1, #0 + beq _08051054 + cmp r1, #0xff + beq _0805106C + b _08051060 + .align 2, 0 +_08051050: .4byte gUnk_02000080 +_08051054: + ldr r0, _08051068 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _08051072 +_08051060: + ldrh r0, [r2, #8] + subs r0, #1 + strh r0, [r2, #8] + b _08051072 + .align 2, 0 +_08051068: .4byte gUnk_03000FF0 +_0805106C: + movs r0, #0 + bl sub_080503BC +_08051072: + pop {pc} + + thumb_func_start sub_08051074 +sub_08051074: @ 0x08051074 + push {lr} + ldr r1, _08051088 @ =gUnk_080FC960 + ldr r0, _0805108C @ =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 +_08051088: .4byte gUnk_080FC960 +_0805108C: .4byte gUnk_02000080 + + thumb_func_start sub_08051090 +sub_08051090: @ 0x08051090 + push {lr} + movs r0, #8 + bl sub_080503A8 + bl sub_08050790 + bl sub_0805070C + bl sub_08051458 + ldr r1, _080510B4 @ =gUnk_03000F50 + movs r0, #0xff + strh r0, [r1, #0x18] + strh r0, [r1, #0x24] + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080510B4: .4byte gUnk_03000F50 + + thumb_func_start sub_080510B8 +sub_080510B8: @ 0x080510B8 + push {r4, r5, r6, r7, lr} + ldr r0, _080510E4 @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + beq _080510C4 + b _0805134C +_080510C4: + movs r7, #0 + ldr r0, _080510E8 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #8 + bne _080510D2 + b _080511C8 +_080510D2: + cmp r1, #8 + bgt _080510EC + cmp r1, #1 + bne _080510DC + b _080511F2 +_080510DC: + cmp r1, #2 + beq _080511B8 + b _08051100 + .align 2, 0 +_080510E4: .4byte gUnk_02019EE0 +_080510E8: .4byte gUnk_03000FF0 +_080510EC: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + bne _080510F6 + b _0805122C +_080510F6: + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + bne _08051100 + b _0805121C +_08051100: + movs r6, #0 + movs r5, #0 + ldrh r0, [r2, #4] + cmp r0, #0x20 + beq _08051128 + cmp r0, #0x20 + bgt _08051114 + cmp r0, #0x10 + beq _0805112E + b _08051130 +_08051114: + cmp r0, #0x40 + beq _0805111E + cmp r0, #0x80 + beq _08051124 + b _08051130 +_0805111E: + movs r5, #1 + rsbs r5, r5, #0 + b _08051130 +_08051124: + movs r5, #1 + b _08051130 +_08051128: + movs r6, #1 + rsbs r6, r6, #0 + b _08051130 +_0805112E: + movs r6, #1 +_08051130: + ldr r4, _0805117C @ =gUnk_02000080 + ldrb r0, [r4, #0x11] + adds r0, r0, r5 + adds r0, #6 + movs r1, #6 + bl __modsi3 + strb r0, [r4, #0x11] + orrs r5, r6 + cmp r5, #0 + beq _0805114C + movs r0, #0x67 + bl sub_080A3268 +_0805114C: + cmp r6, #0 + beq _0805123A + ldrb r0, [r4, #0x11] + cmp r0, #5 + beq _08051184 + ldrb r0, [r4, #0x10] + adds r0, r0, r6 + adds r0, #0xd + movs r1, #0xd + bl __modsi3 + strb r0, [r4, #0x10] + ldr r1, _08051180 @ =gUnk_080FC980 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _08051172 + adds r1, #0x10 +_08051172: + ldrb r0, [r4, #0x10] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r4, #0x12] + b _0805123A + .align 2, 0 +_0805117C: .4byte gUnk_02000080 +_08051180: .4byte gUnk_080FC980 +_08051184: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + adds r5, r0, #0 + movs r1, #4 + cmp r5, #0 + bne _08051194 + movs r1, #5 +_08051194: + ldrb r0, [r4, #0x12] + adds r0, r0, r6 + adds r0, r0, r1 + bl __modsi3 + strb r0, [r4, #0x12] + ldr r1, _080511B4 @ =gUnk_080FC9A0 + cmp r5, #0 + beq _080511A8 + adds r1, #8 +_080511A8: + ldrb r0, [r4, #0x12] + adds r0, r1, r0 + ldrb r0, [r0] + strb r0, [r4, #0x10] + b _0805123A + .align 2, 0 +_080511B4: .4byte gUnk_080FC9A0 +_080511B8: + ldr r0, _080511C4 @ =gUnk_02000080 + ldrb r0, [r0, #0x13] + cmp r0, #0 + beq _080511EC + movs r7, #5 + b _0805123A + .align 2, 0 +_080511C4: .4byte gUnk_02000080 +_080511C8: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #3 + cmp r0, #0 + bne _080511D6 + movs r1, #4 +_080511D6: + ldr r2, _080511E8 @ =gUnk_02000080 + ldrb r0, [r2, #0x11] + cmp r0, #5 + bne _080511EC + ldrb r2, [r2, #0x12] + cmp r1, r2 + bne _080511EC + movs r7, #8 + b _0805123A + .align 2, 0 +_080511E8: .4byte gUnk_02000080 +_080511EC: + bl sub_08051358 + b _0805123A +_080511F2: + ldr r1, _08051210 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + cmp r0, #5 + bne _08051218 + ldr r2, _08051214 @ =gUnk_080FC970 + ldrb r1, [r1, #0x12] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0805120A + adds r1, #8 +_0805120A: + adds r0, r1, r2 + ldrb r7, [r0] + b _0805123A + .align 2, 0 +_08051210: .4byte gUnk_02000080 +_08051214: .4byte gUnk_080FC970 +_08051218: + movs r7, #6 + b _0805123A +_0805121C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r7, #1 + cmp r0, #0 + bne _0805123A + movs r7, #4 + b _0805123A +_0805122C: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r7, #2 + cmp r0, #0 + bne _0805123A + movs r7, #7 +_0805123A: + ldr r0, _08051250 @ =gUnk_02000080 + ldrb r4, [r0, #1] + subs r0, r7, #1 + cmp r0, #7 + bhi _08051322 + lsls r0, r0, #2 + ldr r1, _08051254 @ =_08051258 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08051250: .4byte gUnk_02000080 +_08051254: .4byte _08051258 +_08051258: @ jump table + .4byte _08051278 @ case 0 + .4byte _0805127C @ case 1 + .4byte _08051280 @ case 2 + .4byte _08051284 @ case 3 + .4byte _08051288 @ case 4 + .4byte _080512C0 @ case 5 + .4byte _080512B8 @ case 6 + .4byte _080512EC @ case 7 +_08051278: + movs r4, #0 + b _08051322 +_0805127C: + movs r4, #1 + b _08051322 +_08051280: + movs r4, #2 + b _08051322 +_08051284: + adds r4, #1 + b _08051322 +_08051288: + ldr r3, _080512B0 @ =gUnk_02000080 + ldrb r0, [r3, #0x13] + cmp r0, #0 + beq _08051322 + subs r0, #1 + movs r2, #0 + strb r0, [r3, #0x13] + ldr r1, _080512B4 @ =gUnk_02002A40 + ldrb r0, [r3, #0x13] + adds r1, #0x80 + adds r0, r0, r1 + strb r2, [r0] + ldrb r0, [r3, #0x13] + adds r0, #1 + adds r0, r0, r1 + strb r2, [r0] + movs r0, #0x6c + bl sub_08051574 + b _08051322 + .align 2, 0 +_080512B0: .4byte gUnk_02000080 +_080512B4: .4byte gUnk_02002A40 +_080512B8: + movs r0, #0 + bl sub_08051480 + b _08051322 +_080512C0: + ldr r2, _080512E4 @ =gUnk_02001A40 + ldr r0, _080512E8 @ =gUnk_02000080 + ldrb r1, [r0, #0x10] + lsls r1, r1, #1 + ldrb r0, [r0, #0x11] + lsls r0, r0, #6 + adds r0, #0xc3 + adds r1, r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + lsrs r0, r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_08051480 + b _08051322 + .align 2, 0 +_080512E4: .4byte gUnk_02001A40 +_080512E8: .4byte gUnk_02000080 +_080512EC: + movs r3, #5 + ldr r0, _08051350 @ =gUnk_02002A40 + adds r6, r0, #0 + adds r6, #0x80 + movs r5, #0 +_080512F6: + adds r2, r3, r6 + ldrb r1, [r2] + cmp r1, #0 + beq _08051302 + cmp r1, #0x20 + bne _0805130A +_08051302: + strb r5, [r2] + subs r3, #1 + cmp r3, #0 + bge _080512F6 +_0805130A: + adds r0, #0x80 + ldrb r0, [r0] + movs r7, #3 + cmp r0, #0 + beq _08051316 + movs r7, #2 +_08051316: + movs r0, #0x6a + bl sub_08051574 + adds r0, r7, #0 + bl sub_080A7114 +_08051322: + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #2 + cmp r0, #0 + bne _08051330 + movs r1, #3 +_08051330: + adds r0, r4, r1 + bl __modsi3 + adds r4, r0, #0 + ldr r1, _08051354 @ =gUnk_02000080 + ldrb r0, [r1, #1] + cmp r0, r4 + beq _0805134C + strb r4, [r1, #1] + bl sub_08051458 + movs r0, #0x68 + bl sub_080A3268 +_0805134C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08051350: .4byte gUnk_02002A40 +_08051354: .4byte gUnk_02000080 + + thumb_func_start sub_08051358 +sub_08051358: @ 0x08051358 + push {lr} + ldr r2, _08051384 @ =gUnk_02000080 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + movs r1, #3 + cmp r0, #0 + bne _0805136A + movs r1, #4 +_0805136A: + strb r1, [r2, #0x12] + ldrh r1, [r2, #0x10] + ldr r0, _08051388 @ =0x0000050B + cmp r1, r0 + beq _08051382 + movs r0, #5 + strb r0, [r2, #0x11] + movs r0, #0xb + strb r0, [r2, #0x10] + movs r0, #0x67 + bl sub_080A3268 +_08051382: + pop {pc} + .align 2, 0 +_08051384: .4byte gUnk_02000080 +_08051388: .4byte 0x0000050B + + thumb_func_start sub_0805138C +sub_0805138C: @ 0x0805138C + push {lr} + ldr r1, _080513A0 @ =gUnk_080FC9B0 + ldr r0, _080513A4 @ =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 +_080513A0: .4byte gUnk_080FC9B0 +_080513A4: .4byte gUnk_02000080 + + thumb_func_start sub_080513A8 +sub_080513A8: @ 0x080513A8 + push {lr} + movs r0, #5 + movs r1, #0 + bl sub_08050318 + ldr r1, _080513BC @ =gUnk_02000080 + movs r0, #1 + strb r0, [r1, #6] + pop {pc} + .align 2, 0 +_080513BC: .4byte gUnk_02000080 + + thumb_func_start sub_080513C0 +sub_080513C0: @ 0x080513C0 + push {lr} + movs r0, #0 + bl sub_0807CDA4 + adds r2, r0, #0 + cmp r2, #0 + beq _08051412 + cmp r2, #0 + bgt _080513DC + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _080513F8 + b _08051412 +_080513DC: + cmp r2, #1 + bne _08051412 + ldr r1, _080513F4 @ =gUnk_02019EE0 + adds r0, r1, #0 + adds r0, #8 + ldrb r1, [r1, #6] + adds r0, r0, r1 + strb r2, [r0] + movs r0, #3 + bl sub_080A7114 + b _08051412 + .align 2, 0 +_080513F4: .4byte gUnk_02019EE0 +_080513F8: + ldr r0, _08051414 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_0805194C + movs r0, #6 + movs r1, #0 + bl sub_08050318 + ldr r1, _08051418 @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + movs r0, #2 + strb r0, [r1, #6] +_08051412: + pop {pc} + .align 2, 0 +_08051414: .4byte gUnk_02019EE0 +_08051418: .4byte gUnk_02000080 + + thumb_func_start sub_0805141C +sub_0805141C: @ 0x0805141C + push {lr} + ldr r1, _0805143C @ =gUnk_02000080 + ldrh r0, [r1, #8] + cmp r0, #0 + bne _08051444 + ldr r0, _08051440 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _08051448 + movs r0, #3 + bl sub_080A7114 + b _08051448 + .align 2, 0 +_0805143C: .4byte gUnk_02000080 +_08051440: .4byte gUnk_03000FF0 +_08051444: + subs r0, #1 + strh r0, [r1, #8] +_08051448: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805144C +sub_0805144C: @ 0x0805144C + push {lr} + movs r0, #0 + bl sub_080503BC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08051458 +sub_08051458: @ 0x08051458 + push {lr} + ldr r0, _08051474 @ =gUnk_02000080 + ldrb r0, [r0, #1] + adds r0, #9 + bl sub_080503A8 + ldr r0, _08051478 @ =gUnk_02001B40 + ldr r1, _0805147C @ =gUnk_02022030 + movs r2, #0x80 + lsls r2, r2, #3 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_08051474: .4byte gUnk_02000080 +_08051478: .4byte gUnk_02001B40 +_0805147C: .4byte gUnk_02022030 + + thumb_func_start sub_08051480 +sub_08051480: @ 0x08051480 + push {r4, lr} + adds r4, r0, #0 + bl sub_080514BC + ldr r2, _080514B4 @ =gUnk_02000080 + ldrb r1, [r2, #0x13] + cmp r0, #0 + beq _080514B0 + cmp r0, #1 + beq _08051498 + adds r4, r0, #0 + subs r1, #1 +_08051498: + cmp r1, #5 + bls _0805149E + movs r1, #5 +_0805149E: + adds r0, r1, #1 + strb r0, [r2, #0x13] + ldr r0, _080514B8 @ =gUnk_02002A40 + adds r0, #0x80 + adds r0, r1, r0 + strb r4, [r0] + movs r0, #0x6b + bl sub_08051574 +_080514B0: + pop {r4, pc} + .align 2, 0 +_080514B4: .4byte gUnk_02000080 +_080514B8: .4byte gUnk_02002A40 + + thumb_func_start sub_080514BC +sub_080514BC: @ 0x080514BC + push {lr} + adds r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _080514D6 + cmp r2, #0 + beq _080514DA + cmp r2, #0xf + bhi _080514D6 + cmp r2, #0xe + bhs _080514DA +_080514D6: + movs r0, #1 + b _08051572 +_080514DA: + ldr r0, _08051500 @ =gUnk_02000080 + ldrb r1, [r0, #0x13] + cmp r1, #0 + beq _08051570 + ldr r0, _08051504 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x7f + ldrb r1, [r0] + adds r0, r1, #0 + subs r0, #0xa4 + cmp r0, #0x28 + bhi _08051522 + cmp r2, #0xe + beq _0805153C + cmp r2, #0xe + bhi _08051508 + cmp r2, #0 + beq _0805150E + b _0805153C + .align 2, 0 +_08051500: .4byte gUnk_02000080 +_08051504: .4byte gUnk_02002A40 +_08051508: + cmp r2, #0xf + beq _08051518 + b _0805153C +_0805150E: + cmp r1, #0xc2 + bhi _0805151C + adds r0, r1, #0 + adds r0, #0x33 + b _08051572 +_08051518: + cmp r1, #0xc2 + bls _08051570 +_0805151C: + adds r0, r1, #0 + adds r0, #0xa + b _08051572 +_08051522: + adds r0, r1, #0 + subs r0, #0xcd + cmp r0, #9 + bhi _0805154C + cmp r2, #0xe + beq _08051546 + cmp r2, #0xe + bhi _08051538 + cmp r2, #0 + beq _08051540 + b _0805154C +_08051538: + cmp r2, #0xf + bne _0805154C +_0805153C: + adds r0, r1, #0 + b _08051572 +_08051540: + adds r0, r1, #0 + adds r0, #0x29 + b _08051572 +_08051546: + adds r0, r1, #0 + subs r0, #0xa + b _08051572 +_0805154C: + adds r0, r1, #0 + subs r0, #0xd7 + cmp r0, #0x28 + bhi _08051570 + cmp r2, #0xe + beq _08051560 + cmp r2, #0xe + bls _08051560 + cmp r2, #0xf + beq _08051566 +_08051560: + adds r0, r1, #0 + subs r0, #0x33 + b _08051572 +_08051566: + cmp r1, #0xf5 + bls _08051570 + adds r0, r1, #0 + subs r0, #0x29 + b _08051572 +_08051570: + movs r0, #0 +_08051572: + pop {pc} + + thumb_func_start sub_08051574 +sub_08051574: @ 0x08051574 + push {lr} + bl sub_080A3268 + ldr r0, _08051594 @ =gUnk_02002A40 + ldr r3, _08051598 @ =gUnk_02019EE0 + ldrb r1, [r3, #6] + ldr r2, _0805159C @ =0x000004B4 + muls r1, r2, r1 + adds r3, #0xc + adds r1, r1, r3 + bl sub_0801D66C + bl sub_0805070C + pop {pc} + .align 2, 0 +_08051594: .4byte gUnk_02002A40 +_08051598: .4byte gUnk_02019EE0 +_0805159C: .4byte 0x000004B4 + + thumb_func_start sub_080515A0 +sub_080515A0: @ 0x080515A0 + push {lr} + ldr r1, _080515BC @ =gUnk_080FC9BC + ldr r0, _080515C0 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080515C4 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_08050A64 + pop {pc} + .align 2, 0 +_080515BC: .4byte gUnk_080FC9BC +_080515C0: .4byte gUnk_02000080 +_080515C4: .4byte gUnk_02019EE0 + + thumb_func_start sub_080515C8 +sub_080515C8: @ 0x080515C8 + push {lr} + movs r0, #1 + bl sub_080A7114 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080515D4 +sub_080515D4: @ 0x080515D4 + push {r4, lr} + ldr r0, _080515FC @ =gUnk_02019EE0 + ldrb r0, [r0] + cmp r0, #0 + beq _080515E0 + b _080516D8 +_080515E0: + ldr r1, _08051600 @ =gUnk_02000080 + movs r0, #4 + strh r0, [r1, #8] + ldrb r4, [r1, #1] + ldr r0, _08051604 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + subs r0, #1 + cmp r0, #0x1f + bhi _080516C8 + lsls r0, r0, #2 + ldr r1, _08051608 @ =_0805160C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080515FC: .4byte gUnk_02019EE0 +_08051600: .4byte gUnk_02000080 +_08051604: .4byte gUnk_03000FF0 +_08051608: .4byte _0805160C +_0805160C: @ jump table + .4byte _08051694 @ case 0 + .4byte _0805168C @ case 1 + .4byte _080516C8 @ case 2 + .4byte _080516C8 @ case 3 + .4byte _080516C8 @ case 4 + .4byte _080516C8 @ case 5 + .4byte _080516C8 @ case 6 + .4byte _08051694 @ case 7 + .4byte _080516C8 @ case 8 + .4byte _080516C8 @ case 9 + .4byte _080516C8 @ case 10 + .4byte _080516C8 @ case 11 + .4byte _080516C8 @ case 12 + .4byte _080516C8 @ case 13 + .4byte _080516C8 @ case 14 + .4byte _080516C6 @ case 15 + .4byte _080516C8 @ case 16 + .4byte _080516C8 @ case 17 + .4byte _080516C8 @ case 18 + .4byte _080516C8 @ case 19 + .4byte _080516C8 @ case 20 + .4byte _080516C8 @ case 21 + .4byte _080516C8 @ case 22 + .4byte _080516C8 @ case 23 + .4byte _080516C8 @ case 24 + .4byte _080516C8 @ case 25 + .4byte _080516C8 @ case 26 + .4byte _080516C8 @ case 27 + .4byte _080516C8 @ case 28 + .4byte _080516C8 @ case 29 + .4byte _080516C8 @ case 30 + .4byte _080516C2 @ case 31 +_0805168C: + ldr r1, _080516B0 @ =gUnk_02000080 + movs r0, #0 + strb r0, [r1, #1] + movs r4, #0 +_08051694: + cmp r4, #1 + bne _080516B4 + movs r0, #4 + movs r1, #0 + bl sub_08050318 + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + b _080516C8 + .align 2, 0 +_080516B0: .4byte gUnk_02000080 +_080516B4: + movs r0, #0 + bl sub_080503BC + movs r0, #0x6c + bl sub_080A3268 + b _080516C8 +_080516C2: + movs r4, #0 + b _080516C8 +_080516C6: + movs r4, #1 +_080516C8: + ldr r1, _080516DC @ =gUnk_02000080 + ldrb r0, [r1, #1] + cmp r0, r4 + beq _080516D8 + strb r4, [r1, #1] + movs r0, #0x69 + bl sub_080A3268 +_080516D8: + pop {r4, pc} + .align 2, 0 +_080516DC: .4byte gUnk_02000080 + + thumb_func_start sub_080516E0 +sub_080516E0: @ 0x080516E0 + push {r4, lr} + movs r0, #1 + bl sub_0807CDA4 + cmp r0, #0 + beq _08051706 + ldr r4, _08051708 @ =gUnk_02019EE0 + ldrb r0, [r4, #6] + bl sub_0805194C + ldrb r0, [r4, #6] + bl sub_08050AFC + ldr r1, _0805170C @ =gUnk_02000080 + movs r0, #2 + strh r0, [r1, #8] + movs r0, #0 + bl sub_080503BC +_08051706: + pop {r4, pc} + .align 2, 0 +_08051708: .4byte gUnk_02019EE0 +_0805170C: .4byte gUnk_02000080 + + thumb_func_start sub_08051710 +sub_08051710: @ 0x08051710 + push {lr} + ldr r1, _0805172C @ =gUnk_080FC9C8 + ldr r0, _08051730 @ =gUnk_02000080 + ldrb r0, [r0, #5] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08051734 @ =gUnk_02019EE0 + ldrb r0, [r0, #6] + bl sub_08050A64 + pop {pc} + .align 2, 0 +_0805172C: .4byte gUnk_080FC9C8 +_08051730: .4byte gUnk_02000080 +_08051734: .4byte gUnk_02019EE0 + + thumb_func_start sub_08051738 +sub_08051738: @ 0x08051738 + push {r4, r5, r6, r7, lr} + ldr r1, _08051768 @ =gUnk_02019EE0 + movs r0, #4 + strb r0, [r1, #7] + movs r4, #0 + movs r3, #0 + adds r5, r1, #0 + adds r7, r5, #0 + adds r7, #8 + ldr r6, _0805176C @ =gUnk_02000090 +_0805174C: + adds r0, r3, r7 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #1 + bne _08051770 + ldrb r1, [r5, #6] + movs r2, #4 + eors r1, r3 + rsbs r0, r1, #0 + orrs r0, r1 + asrs r0, r0, #0x1f + ands r2, r0 + b _08051774 + .align 2, 0 +_08051768: .4byte gUnk_02019EE0 +_0805176C: .4byte gUnk_02000090 +_08051770: + adds r4, #1 + adds r2, r4, #0 +_08051774: + adds r0, r3, r6 + strb r2, [r0] + adds r3, #1 + cmp r3, #2 + bls _0805174C + cmp r4, #0 + bne _0805179C + ldr r1, _08051798 @ =gUnk_02000080 + movs r0, #0x3c + strh r0, [r1, #8] + movs r0, #1 + movs r1, #0 + bl sub_08050318 + movs r0, #3 + bl sub_080A7114 + b _080517A2 + .align 2, 0 +_08051798: .4byte gUnk_02000080 +_0805179C: + movs r0, #1 + bl sub_080A7114 +_080517A2: + adds r4, #1 + ldr r0, _080517B0 @ =gUnk_02000080 + strb r4, [r0, #0x16] + movs r1, #4 + strb r1, [r0, #0x13] + strb r4, [r0, #0x14] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080517B0: .4byte gUnk_02000080 + + thumb_func_start sub_080517B4 +sub_080517B4: @ 0x080517B4 + push {r4, lr} + adds r2, r0, #0 + ldr r0, _080517E4 @ =gUnk_02019EE0 + ldrb r1, [r0, #7] + adds r4, r0, #0 + cmp r2, #0 + beq _080517DE + adds r1, r1, r2 + cmp r1, #4 + bhi _080517DC + ldr r3, _080517E8 @ =gUnk_02000090 +_080517CA: + adds r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _080517D6 + cmp r0, #4 + bne _080517DE +_080517D6: + adds r1, r1, r2 + cmp r1, #4 + bls _080517CA +_080517DC: + ldrb r1, [r4, #7] +_080517DE: + adds r0, r1, #0 + pop {r4, pc} + .align 2, 0 +_080517E4: .4byte gUnk_02019EE0 +_080517E8: .4byte gUnk_02000090 + + thumb_func_start sub_080517EC +sub_080517EC: @ 0x080517EC + push {r4, lr} + ldr r0, _08051810 @ =gUnk_02019EE0 + ldrb r1, [r0] + adds r2, r0, #0 + cmp r1, #0 + bne _0805186E + movs r4, #0 + ldr r0, _08051814 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #8 + beq _0805182C + cmp r0, #8 + bgt _08051818 + cmp r0, #1 + beq _0805182C + cmp r0, #2 + beq _08051848 + b _08051858 + .align 2, 0 +_08051810: .4byte gUnk_02019EE0 +_08051814: .4byte gUnk_03000FF0 +_08051818: + cmp r0, #0x40 + beq _08051822 + cmp r0, #0x80 + beq _08051828 + b _08051858 +_08051822: + movs r4, #1 + rsbs r4, r4, #0 + b _08051858 +_08051828: + movs r4, #1 + b _08051858 +_0805182C: + ldrb r0, [r2, #7] + cmp r0, #2 + bhi _08051848 + movs r0, #2 + movs r1, #0 + bl sub_08050318 + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + b _08051858 +_08051848: + movs r0, #4 + strb r0, [r2, #7] + movs r0, #0x6c + bl sub_080A3268 + movs r0, #0 + bl sub_080503BC +_08051858: + adds r0, r4, #0 + bl sub_080517B4 + ldr r1, _08051870 @ =gUnk_02019EE0 + ldrb r2, [r1, #7] + cmp r0, r2 + beq _0805186E + strb r0, [r1, #7] + movs r0, #0x69 + bl sub_080A3268 +_0805186E: + pop {r4, pc} + .align 2, 0 +_08051870: .4byte gUnk_02019EE0 + + thumb_func_start sub_08051874 +sub_08051874: @ 0x08051874 + push {r4, lr} + movs r1, #0x80 + lsls r1, r1, #0x12 + ldr r4, _080518B8 @ =gUnk_02019EE0 + ldrb r0, [r4, #7] + strb r0, [r1, #4] + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #8 + ldrb r2, [r4, #7] + adds r0, r0, r2 + strb r1, [r0] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _080518C4 + cmp r1, #1 + bne _080518DE + ldr r0, _080518BC @ =gUnk_02002A40 + ldrb r1, [r4, #7] + ldr r2, _080518C0 @ =0x000004B4 + muls r1, r2, r1 + adds r3, r4, #0 + adds r3, #0xc + adds r1, r1, r3 + bl sub_0801D66C + movs r0, #0 + bl sub_080503BC + b _080518DE + .align 2, 0 +_080518B8: .4byte gUnk_02019EE0 +_080518BC: .4byte gUnk_02002A40 +_080518C0: .4byte 0x000004B4 +_080518C4: + ldrb r0, [r4, #7] + bl sub_0805194C + movs r0, #3 + movs r1, #0 + bl sub_08050318 + ldr r1, _080518E0 @ =gUnk_02000080 + movs r0, #0x1e + strh r0, [r1, #8] + movs r0, #3 + bl sub_080A7114 +_080518DE: + pop {r4, pc} + .align 2, 0 +_080518E0: .4byte gUnk_02000080 + + thumb_func_start sub_080518E4 +sub_080518E4: @ 0x080518E4 + push {lr} + ldr r1, _08051904 @ =gUnk_02000080 + ldrh r0, [r1, #8] + cmp r0, #0 + bne _0805190C + ldr r0, _08051908 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #9 + ands r0, r1 + cmp r0, #0 + beq _08051910 + movs r0, #0 + bl sub_080503BC + b _08051910 + .align 2, 0 +_08051904: .4byte gUnk_02000080 +_08051908: .4byte gUnk_03000FF0 +_0805190C: + subs r0, #1 + strh r0, [r1, #8] +_08051910: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08051914 +sub_08051914: @ 0x08051914 + push {lr} + ldr r1, _08051940 @ =gUnk_02000080 + ldrb r0, [r1, #5] + cmp r0, #0 + bne _0805193E + movs r0, #1 + strb r0, [r1, #5] + movs r2, #0x80 + lsls r2, r2, #0x12 + ldr r1, _08051944 @ =gUnk_02002A40 + ldrb r0, [r1, #2] + strb r0, [r2, #5] + ldrb r0, [r1, #3] + strb r0, [r2, #6] + ldr r1, _08051948 @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #3] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_0805193E: + pop {pc} + .align 2, 0 +_08051940: .4byte gUnk_02000080 +_08051944: .4byte gUnk_02002A40 +_08051948: .4byte gUnk_03001000 + + thumb_func_start sub_0805194C +sub_0805194C: @ 0x0805194C + push {r4, lr} + ldr r3, _08051980 @ =gUnk_02019EE0 + adds r1, r3, #0 + adds r1, #8 + adds r1, r0, r1 + movs r2, #0 + strb r2, [r1] + ldr r1, _08051984 @ =0x000004B4 + adds r4, r0, #0 + muls r4, r1, r4 + adds r3, #0xc + adds r4, r4, r3 + adds r0, r4, #0 + bl sub_0801D630 + movs r0, #1 + strb r0, [r4, #2] + strb r0, [r4, #3] + adds r1, r4, #0 + adds r1, #0xaa + movs r0, #0x18 + strb r0, [r1] + adds r4, #0xab + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08051980: .4byte gUnk_02019EE0 +_08051984: .4byte 0x000004B4 + + thumb_func_start sub_08051988 +sub_08051988: @ 0x08051988 + push {lr} + ldr r1, _080519A4 @ =gUnk_030010A0 + ldr r0, [r1] + adds r0, #1 + str r0, [r1] + ldr r1, _080519A8 @ =gUnk_080FC9D8 + ldr r0, _080519AC @ =gUnk_03001000 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_080519A4: .4byte gUnk_030010A0 +_080519A8: .4byte gUnk_080FC9D8 +_080519AC: .4byte gUnk_03001000 + + thumb_func_start sub_080519B0 +sub_080519B0: @ 0x080519B0 + push {r4, r5, lr} + ldr r0, _08051A04 @ =gUnk_03000FD0 + ldrb r5, [r0] + cmp r5, #0 + bne _08051A02 + movs r0, #1 + bl sub_0801DA90 + bl sub_080A3210 + bl sub_0801DA7C + bl sub_080A7124 + bl sub_0807059C + ldr r4, _08051A08 @ =gUnk_030010A0 + adds r0, r4, #0 + movs r1, #0xb0 + bl sub_0801D630 + bl sub_08049CD4 + bl sub_080300AC + bl sub_0807CA18 + ldr r0, _08051A0C @ =gUnk_02002AC8 + adds r1, r4, #0 + adds r1, #0xc + movs r2, #0x20 + bl sub_0801D66C + movs r0, #4 + strb r0, [r4, #9] + bl sub_08053518 + ldr r1, _08051A10 @ =gUnk_03001000 + movs r0, #1 + strb r0, [r1, #3] + strb r5, [r1, #4] +_08051A02: + pop {r4, r5, pc} + .align 2, 0 +_08051A04: .4byte gUnk_03000FD0 +_08051A08: .4byte gUnk_030010A0 +_08051A0C: .4byte gUnk_02002AC8 +_08051A10: .4byte gUnk_03001000 + + thumb_func_start sub_08051A14 +sub_08051A14: @ 0x08051A14 + push {lr} + movs r0, #1 + bl sub_0801DA90 + ldr r1, _08051A70 @ =gUnk_03000FD0 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + ldr r0, _08051A74 @ =gUnk_03000000 + ldr r1, _08051A78 @ =0x00000B74 + bl sub_0801D630 + ldr r0, _08051A7C @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl sub_0801D630 + bl sub_0805E60C + bl sub_080197AC + bl sub_08080668 + bl sub_080ADD30 + movs r0, #1 + bl sub_0801CFA8 + bl sub_0806FD8C + ldr r2, _08051A80 @ =gUnk_03000BF0 + ldr r1, _08051A84 @ =gUnk_030010A0 + ldrb r0, [r1, #0xc] + strb r0, [r2, #4] + ldrb r0, [r1, #0xd] + strb r0, [r2, #5] + bl sub_08053320 + ldr r1, _08051A88 @ =gUnk_02024490 + movs r0, #1 + strb r0, [r1] + ldr r1, _08051A8C @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #3] + pop {pc} + .align 2, 0 +_08051A70: .4byte gUnk_03000FD0 +_08051A74: .4byte gUnk_03000000 +_08051A78: .4byte 0x00000B74 +_08051A7C: .4byte gUnk_02032EC0 +_08051A80: .4byte gUnk_03000BF0 +_08051A84: .4byte gUnk_030010A0 +_08051A88: .4byte gUnk_02024490 +_08051A8C: .4byte gUnk_03001000 + + thumb_func_start sub_08051A90 +sub_08051A90: @ 0x08051A90 + push {lr} + ldr r1, _08051AA4 @ =gUnk_080FC9E8 + ldr r0, _08051AA8 @ =gUnk_03001000 + ldrb r0, [r0, #4] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_08051AA4: .4byte gUnk_080FC9E8 +_08051AA8: .4byte gUnk_03001000 + + thumb_func_start sub_08051AAC +sub_08051AAC: @ 0x08051AAC + push {lr} + bl sub_0805E5A8 + ldr r1, _08051AE4 @ =gUnk_03000F50 + movs r2, #0 + movs r0, #0xba + lsls r0, r0, #5 + strh r0, [r1] + ldr r1, _08051AE8 @ =gUnk_03001000 + movs r0, #1 + strb r0, [r1, #4] + ldr r0, _08051AEC @ =gUnk_030010A0 + strb r2, [r0, #8] + strb r2, [r0, #4] + strb r2, [r0, #5] + bl sub_08056418 + bl sub_08052CFC + movs r0, #0 + bl sub_0801C370 + bl sub_08051D40 + bl sub_0801855C + pop {pc} + .align 2, 0 +_08051AE4: .4byte gUnk_03000F50 +_08051AE8: .4byte gUnk_03001000 +_08051AEC: .4byte gUnk_030010A0 + + thumb_func_start sub_08051AF0 +sub_08051AF0: @ 0x08051AF0 + push {r4, r5, lr} + bl sub_0805E5C0 + bl sub_0805BBBC + cmp r0, #0 + bne _08051B02 + bl sub_0807FC40 +_08051B02: + bl sub_0801B060 + bl sub_08000108 + bl sub_0801C344 + bl sub_0805E5F8 + bl sub_080AD90C + bl sub_0801C208 + bl sub_08078CB4 + bl sub_080AD9B0 + bl sub_080AD918 + ldr r0, _08051BB0 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08051BAE + ldr r0, _08051BB4 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _08051BAE + bl sub_08052F1C + ldr r5, _08051BB8 @ =gUnk_02033A90 + movs r0, #0x86 + lsls r0, r0, #4 + adds r3, r5, r0 + ldr r1, _08051BBC @ =0x00000864 + adds r0, r5, r1 + ldr r1, [r3] + ldr r2, [r0] + cmp r1, r2 + beq _08051B5A + str r2, [r3] + ldr r0, _08051BC0 @ =0x800B0000 + orrs r2, r0 + adds r0, r2, #0 + bl sub_080A3268 +_08051B5A: + bl sub_0805E9F4 + bl sub_0805BC04 + adds r4, r0, #0 + cmp r4, #0 + bne _08051BAE + bl sub_08052C5C + bl sub_0805E5B4 + bl sub_08051E04 + bl sub_080300C4 + ldr r1, _08051BC4 @ =gUnk_03001000 + movs r0, #2 + strb r0, [r1, #4] + movs r0, #0 + bl sub_08078A90 + ldr r0, _08051BC8 @ =gUnk_02034490 + strb r4, [r0] + adds r0, r5, #0 + adds r0, #0x28 + ldrb r0, [r0] + cmp r0, #0xff + beq _08051B96 + bl sub_0801855C +_08051B96: + bl sub_08052BF8 + bl sub_08053178 + ldr r0, _08051BCC @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _08051BAE + movs r0, #0 + movs r1, #1 + bl sub_0805E4E0 +_08051BAE: + pop {r4, r5, pc} + .align 2, 0 +_08051BB0: .4byte gUnk_03000FD0 +_08051BB4: .4byte gUnk_03000BF0 +_08051BB8: .4byte gUnk_02033A90 +_08051BBC: .4byte 0x00000864 +_08051BC0: .4byte 0x800B0000 +_08051BC4: .4byte gUnk_03001000 +_08051BC8: .4byte gUnk_02034490 +_08051BCC: .4byte gUnk_02034350 + + thumb_func_start sub_08051BD0 +sub_08051BD0: @ 0x08051BD0 + push {lr} + bl sub_080705AC + cmp r0, #0 + bne _08051C9C + bl sub_0804AA84 + cmp r0, #0 + bne _08051C9C + bl sub_0805340C + ldr r0, _08051C5C @ =gUnk_03001000 + ldrb r0, [r0, #4] + cmp r0, #2 + bne _08051C9C + ldr r0, _08051C60 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08051C02 + ldr r0, _08051C64 @ =gUnk_03003DC0 + ldrh r0, [r0, #8] + cmp r0, #0 + beq _08051C06 +_08051C02: + bl sub_08078B48 +_08051C06: + bl sub_080AD90C + bl sub_0805E5C0 + bl sub_08080A40 + bl sub_080175F4 + bl sub_0807FC40 + bl sub_0801B060 + bl sub_08000108 + bl sub_08052C3C + bl sub_0801C344 + bl sub_0805E5F8 + bl sub_0801C208 + bl sub_08078CB4 + bl sub_080AD9B0 + bl sub_0805291C + bl sub_08052C5C + bl sub_080528B4 + bl sub_080185F8 + bl sub_080AD918 + ldr r0, _08051C68 @ =gUnk_03000BF0 + ldrh r2, [r0] + cmp r2, #1 + beq _08051C6C + cmp r2, #2 + beq _08051C88 + b _08051C9C + .align 2, 0 +_08051C5C: .4byte gUnk_03001000 +_08051C60: .4byte gUnk_02000050 +_08051C64: .4byte gUnk_03003DC0 +_08051C68: .4byte gUnk_03000BF0 +_08051C6C: + ldr r0, _08051C80 @ =gUnk_03003F80 + movs r1, #0x17 + strb r1, [r0, #0xc] + ldr r0, _08051C84 @ =gUnk_03001000 + strb r2, [r0, #4] + bl sub_0805E59C + bl sub_08051D98 + b _08051C9C + .align 2, 0 +_08051C80: .4byte gUnk_03003F80 +_08051C84: .4byte gUnk_03001000 +_08051C88: + ldr r1, _08051CA0 @ =gUnk_03003F80 + movs r0, #0x17 + strb r0, [r1, #0xc] + ldr r1, _08051CA4 @ =gUnk_03001000 + movs r0, #1 + strb r0, [r1, #4] + bl sub_0805E59C + bl sub_08051DCC +_08051C9C: + pop {pc} + .align 2, 0 +_08051CA0: .4byte gUnk_03003F80 +_08051CA4: .4byte gUnk_03001000 + + thumb_func_start sub_08051CA8 +sub_08051CA8: @ 0x08051CA8 + push {lr} + bl sub_080705AC + cmp r0, #0 + bne _08051CEA + bl sub_0805E5C0 + bl sub_080175F4 + bl sub_0801C344 + bl sub_0805E5F8 + bl sub_080AD90C + bl sub_0801C208 + bl sub_08078CB4 + bl sub_080AD9B0 + bl sub_0805291C + bl sub_080528B4 + bl sub_080AD918 + ldr r0, _08051CEC @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08051CEA + bl sub_0805E5B4 +_08051CEA: + pop {pc} + .align 2, 0 +_08051CEC: .4byte gUnk_03000FD0 + + thumb_func_start sub_08051CF0 +sub_08051CF0: @ 0x08051CF0 + push {r4, r5, r6, lr} + bl sub_080AD90C + bl sub_0801C208 + bl sub_080AD9B0 + ldr r5, _08051D20 @ =gUnk_03001000 + movs r6, #1 + strb r6, [r5, #0xb] + bl sub_080AD918 + ldr r0, _08051D24 @ =gUnk_03000FD0 + ldrb r4, [r0] + cmp r4, #0 + bne _08051D1E + movs r0, #1 + bl sub_0801DA90 + strb r6, [r5, #3] + strb r4, [r5, #4] + ldr r0, _08051D28 @ =gUnk_030010A0 + strb r6, [r0, #8] +_08051D1E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08051D20: .4byte gUnk_03001000 +_08051D24: .4byte gUnk_03000FD0 +_08051D28: .4byte gUnk_030010A0 + + thumb_func_start sub_08051D2C +sub_08051D2C: @ 0x08051D2C + push {lr} + movs r0, #7 + movs r1, #8 + bl sub_08050054 + movs r0, #3 + bl sub_08056010 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08051D40 +sub_08051D40: @ 0x08051D40 + push {lr} + bl sub_08052EA0 + bl sub_0804AF90 + bl sub_0804AFDC + bl InitializeLink + ldr r1, _08051D90 @ =gUnk_03004030 + movs r0, #0 + str r0, [r1] + bl sub_0807C740 + ldr r1, _08051D94 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + bl sub_0805283C + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + bl LoadRoom + bl sub_080609AC + bl sub_0804AFF4 + bl sub_0805329C + bl sub_08000108 + movs r0, #1 + rsbs r0, r0, #0 + bl sub_0805BB74 + bl sub_080531F8 + pop {pc} + .align 2, 0 +_08051D90: .4byte gUnk_03004030 +_08051D94: .4byte gUnk_02000070 + + thumb_func_start sub_08051D98 +sub_08051D98: @ 0x08051D98 + push {lr} + bl sub_08052EA0 + ldr r1, _08051DC8 @ =gUnk_02034350 + movs r0, #1 + strb r0, [r1] + bl sub_0805E9A8 + bl sub_0804AF90 + bl sub_0804AFDC + bl sub_0807C0DC + bl sub_0805283C + bl LoadRoom + bl sub_0804AFF4 + movs r0, #1 + bl sub_08078A90 + pop {pc} + .align 2, 0 +_08051DC8: .4byte gUnk_02034350 + + thumb_func_start sub_08051DCC +sub_08051DCC: @ 0x08051DCC + push {r4, lr} + ldr r1, _08051DFC @ =gUnk_03000BF0 + ldr r4, _08051E00 @ =gUnk_030010A0 + ldrb r0, [r4, #0xc] + strb r0, [r1, #4] + ldrb r0, [r4, #0xd] + strb r0, [r1, #5] + bl sub_080528F0 + movs r0, #3 + strb r0, [r4, #9] + bl sub_08052CFC + bl sub_08052EA0 + bl sub_0805E9A8 + bl sub_0804AF90 + bl sub_0804AFDC + bl sub_0805283C + pop {r4, pc} + .align 2, 0 +_08051DFC: .4byte gUnk_03000BF0 +_08051E00: .4byte gUnk_030010A0 + + thumb_func_start sub_08051E04 +sub_08051E04: @ 0x08051E04 + push {lr} + bl sub_08052620 + cmp r0, #0 + beq _08051E60 + ldr r1, _08051E2C @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08051E1A + adds r0, #0xf +_08051E1A: + asrs r2, r0, #4 + movs r3, #0x32 + ldrsh r0, [r1, r3] + cmp r0, #0 + bge _08051E26 + adds r0, #0xf +_08051E26: + asrs r1, r0, #4 + ldr r3, _08051E30 @ =gUnk_08127F94 + b _08051E36 + .align 2, 0 +_08051E2C: .4byte gLinkEntity +_08051E30: .4byte gUnk_08127F94 +_08051E34: + adds r3, #8 +_08051E36: + ldrb r0, [r3] + cmp r0, #0xff + beq _08051E60 + cmp r0, r2 + bhi _08051E34 + ldrb r0, [r3, #2] + cmp r0, r2 + blo _08051E34 + ldrb r0, [r3, #1] + cmp r0, r1 + bhi _08051E34 + ldrb r0, [r3, #3] + cmp r0, r1 + blo _08051E34 + ldr r2, _08051E64 @ =gUnk_02002A40 + movs r1, #1 + ldrb r3, [r3, #4] + lsls r1, r3 + ldr r0, [r2, #0x40] + orrs r0, r1 + str r0, [r2, #0x40] +_08051E60: + pop {pc} + .align 2, 0 +_08051E64: .4byte gUnk_02002A40 + + thumb_func_start sub_08051E68 +sub_08051E68: @ 0x08051E68 + push {lr} + ldr r1, _08051E7C @ =gUnk_080FCA08 + ldr r0, _08051E80 @ =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 +_08051E7C: .4byte gUnk_080FCA08 +_08051E80: .4byte gUnk_02000080 + + thumb_func_start sub_08051E84 +sub_08051E84: @ 0x08051E84 + push {r4, r5, r6, lr} + ldr r0, _08051EF0 @ =gUnk_02032EC0 + ldrb r4, [r0, #3] + lsls r4, r4, #3 + ldr r0, _08051EF4 @ =gUnk_080FCA20 + adds r4, r4, r0 + ldr r5, _08051EF8 @ =gUnk_03000BF0 + ldrb r0, [r4] + strb r0, [r5, #4] + ldrb r0, [r4, #1] + strb r0, [r5, #5] + bl sub_08053320 + ldrb r0, [r5, #4] + bl sub_08052D58 + ldr r1, _08051EFC @ =gUnk_02033A90 + movs r6, #0 + strh r0, [r1, #4] + ldrb r0, [r4] + ldrb r1, [r4, #1] + bl sub_0804B0C0 + ldrb r0, [r4] + ldrb r1, [r4, #1] + bl sub_08052FD8 + ldrh r0, [r4, #4] + ldrh r1, [r5, #6] + adds r0, r0, r1 + strh r0, [r5, #0xa] + ldrh r0, [r4, #6] + ldrh r1, [r5, #8] + adds r0, r0, r1 + strh r0, [r5, #0xc] + ldr r1, _08051F00 @ =gUnk_02000080 + ldrb r0, [r4, #2] + strb r0, [r1] + ldrb r2, [r4, #3] + movs r0, #0xf + ands r0, r2 + strb r0, [r1, #3] + str r4, [r1, #0xc] + ldrb r0, [r1, #5] + adds r0, #1 + strb r0, [r1, #5] + strb r6, [r1, #6] + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1, #8] + bl sub_08051F04 + pop {r4, r5, r6, pc} + .align 2, 0 +_08051EF0: .4byte gUnk_02032EC0 +_08051EF4: .4byte gUnk_080FCA20 +_08051EF8: .4byte gUnk_03000BF0 +_08051EFC: .4byte gUnk_02033A90 +_08051F00: .4byte gUnk_02000080 + + thumb_func_start sub_08051F04 +sub_08051F04: @ 0x08051F04 + push {lr} + ldr r1, _08051F38 @ =gUnk_080FCA14 + ldr r0, _08051F3C @ =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_0805E5F8 + bl sub_08000108 + pop {pc} + .align 2, 0 +_08051F38: .4byte gUnk_080FCA14 +_08051F3C: .4byte gUnk_02000080 + + thumb_func_start sub_08051F40 +sub_08051F40: @ 0x08051F40 + push {lr} + ldr r0, _08051F60 @ =gUnk_080FCA20 + ldr r2, _08051F64 @ =gUnk_02032EC0 + ldrb r1, [r2, #3] + lsls r1, r1, #3 + adds r1, r1, r0 + ldrb r1, [r1, #3] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0 + beq _08051F68 + lsrs r1, r1, #4 + movs r0, #2 + bl sub_080A7138 + b _08051F76 + .align 2, 0 +_08051F60: .4byte gUnk_080FCA20 +_08051F64: .4byte gUnk_02032EC0 +_08051F68: + movs r0, #3 + strb r0, [r2] + movs r0, #0x10 + bl sub_080500F4 + bl sub_08056418 +_08051F76: + pop {pc} + + thumb_func_start sub_08051F78 +sub_08051F78: @ 0x08051F78 + push {lr} + ldr r0, _08051F94 @ =gUnk_02032EC0 + ldrb r3, [r0, #3] + lsls r3, r3, #3 + ldr r0, _08051F98 @ =gUnk_080FCA20 + adds r3, r3, r0 + ldrb r0, [r3] + ldrb r1, [r3, #1] + ldrh r2, [r3, #4] + ldrh r3, [r3, #6] + bl sub_08051F9C + pop {pc} + .align 2, 0 +_08051F94: .4byte gUnk_02032EC0 +_08051F98: .4byte gUnk_080FCA20 + + thumb_func_start sub_08051F9C +sub_08051F9C: @ 0x08051F9C + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r6, r2, #0 + mov r8, r3 + ldr r5, _08051FE0 @ =gUnk_03000F50 + ldrh r2, [r5] + movs r4, #0xc0 + lsls r4, r4, #7 + ands r4, r2 + bl sub_08052FF4 + ldr r1, _08051FE4 @ =gUnk_03000BF0 + ldrh r0, [r1, #6] + adds r0, r0, r6 + movs r6, #0 + strh r0, [r1, #0xa] + ldrh r0, [r1, #8] + add r0, r8 + strh r0, [r1, #0xc] + bl sub_0807C740 + ldr r1, _08051FE8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + ldr r0, _08051FEC @ =gUnk_0200B644 + str r6, [r0] + ldrh r0, [r5] + orrs r4, r0 + strh r4, [r5] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_08051FE0: .4byte gUnk_03000F50 +_08051FE4: .4byte gUnk_03000BF0 +_08051FE8: .4byte gUnk_02000070 +_08051FEC: .4byte gUnk_0200B644 + + thumb_func_start sub_08051FF0 +sub_08051FF0: @ 0x08051FF0 + push {lr} + ldr r0, _08052000 @ =gUnk_02000080 + ldr r1, [r0, #0xc] + ldrb r0, [r1] + ldrb r1, [r1, #1] + bl sub_0804B0B0 + pop {pc} + .align 2, 0 +_08052000: .4byte gUnk_02000080 + + thumb_func_start sub_08052004 +sub_08052004: @ 0x08052004 + ldr r1, _0805200C @ =gUnk_02000080 + movs r0, #2 + strb r0, [r1, #5] + bx lr + .align 2, 0 +_0805200C: .4byte gUnk_02000080 + + thumb_func_start sub_08052010 +sub_08052010: @ 0x08052010 + push {r4, lr} + bl sub_080A3210 + bl sub_08056418 + movs r0, #1 + bl sub_0801DA90 + ldr r0, _0805207C @ =gUnk_02021F30 + movs r4, #0x80 + lsls r4, r4, #4 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _08052080 @ =gUnk_020344B0 + adds r1, r4, #0 + bl sub_0801D630 + bl sub_080A4D34 + movs r0, #0xa + bl sub_0801D714 + movs r0, #0 + movs r1, #0 + bl sub_0801D79C + movs r0, #4 + bl sub_0801D7EC + movs r0, #0xc0 + lsls r0, r0, #0x13 + movs r1, #0x20 + bl sub_0801D630 + ldr r0, _08052084 @ =gUnk_02000080 + movs r1, #0x30 + bl sub_0801D630 + ldr r1, _08052088 @ =gUnk_03000F50 + ldrh r2, [r1] + movs r3, #0x80 + lsls r3, r3, #5 + adds r0, r3, #0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _0805208C @ =0x00001C01 + strh r0, [r1, #0x14] + ldr r0, _08052090 @ =0x00001D05 + strh r0, [r1, #0x20] + movs r0, #1 + strh r0, [r1, #0x1a] + strh r0, [r1, #0x26] + pop {r4, pc} + .align 2, 0 +_0805207C: .4byte gUnk_02021F30 +_08052080: .4byte gUnk_020344B0 +_08052084: .4byte gUnk_02000080 +_08052088: .4byte gUnk_03000F50 +_0805208C: .4byte 0x00001C01 +_08052090: .4byte 0x00001D05 + + thumb_func_start sub_08052094 +sub_08052094: @ 0x08052094 + push {r4, lr} + ldr r1, _080520BC @ =gUnk_080FCA70 + ldr r4, _080520C0 @ =gUnk_03001000 + ldrb r0, [r4, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4, #3] + cmp r0, #0 + beq _080520B8 + bl sub_080AD90C + bl sub_080523D4 + bl sub_080AD918 +_080520B8: + pop {r4, pc} + .align 2, 0 +_080520BC: .4byte gUnk_080FCA70 +_080520C0: .4byte gUnk_03001000 + + thumb_func_start sub_080520C4 +sub_080520C4: @ 0x080520C4 + push {lr} + ldr r1, _080520D4 @ =gUnk_03001000 + strb r0, [r1, #3] + movs r0, #0 + bl sub_080A7114 + pop {pc} + .align 2, 0 +_080520D4: .4byte gUnk_03001000 + + thumb_func_start sub_080520D8 +sub_080520D8: @ 0x080520D8 + push {r4, lr} + ldr r4, _08052118 @ =gUnk_03000FD0 + ldrb r0, [r4] + cmp r0, #0 + bne _08052114 + bl sub_08052010 + ldr r1, _0805211C @ =gUnk_02000080 + movs r0, #0x50 + strb r0, [r1, #0x10] + movs r2, #0x3c + movs r0, #0x3c + strh r0, [r1, #8] + ldr r0, _08052120 @ =gUnk_02002A40 + adds r0, #0xaa + movs r1, #0x18 + strb r1, [r0] + ldr r0, _08052124 @ =gUnk_03001000 + strb r2, [r0, #5] + movs r0, #0xa + bl sub_080A3268 + movs r0, #4 + bl sub_080500F4 + ldr r0, _08052128 @ =0xFFFF0001 + str r0, [r4, #4] + movs r0, #1 + bl sub_080520C4 +_08052114: + pop {r4, pc} + .align 2, 0 +_08052118: .4byte gUnk_03000FD0 +_0805211C: .4byte gUnk_02000080 +_08052120: .4byte gUnk_02002A40 +_08052124: .4byte gUnk_03001000 +_08052128: .4byte 0xFFFF0001 + + thumb_func_start sub_0805212C +sub_0805212C: @ 0x0805212C + push {r4, lr} + ldr r4, _0805214C @ =gUnk_03000FD0 + ldrb r0, [r4] + cmp r0, #0 + bne _0805219C + ldr r1, _08052150 @ =gUnk_03001000 + ldrb r0, [r1, #5] + cmp r0, #0 + bne _08052198 + ldr r1, _08052154 @ =gUnk_02000080 + ldrb r0, [r1, #0x10] + cmp r0, #0x25 + bls _08052158 + subs r0, #1 + strb r0, [r1, #0x10] + b _0805219C + .align 2, 0 +_0805214C: .4byte gUnk_03000FD0 +_08052150: .4byte gUnk_03001000 +_08052154: .4byte gUnk_02000080 +_08052158: + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805219C + movs r0, #2 + bl sub_080520C4 + movs r0, #0 + movs r1, #0 + bl sub_08052418 + ldr r2, _08052190 @ =gUnk_03000F50 + ldrh r0, [r2] + movs r3, #0xc0 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08052194 @ =0x0000FFFF + str r0, [r4, #4] + movs r0, #4 + movs r1, #0x10 + bl sub_08050054 + b _0805219C + .align 2, 0 +_08052190: .4byte gUnk_03000F50 +_08052194: .4byte 0x0000FFFF +_08052198: + subs r0, #1 + strb r0, [r1, #5] +_0805219C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080521A0 +sub_080521A0: @ 0x080521A0 + push {r4, lr} + ldr r0, _080521C4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + beq _080521AC + b _080522E8 +_080521AC: + ldr r0, _080521C8 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r2, r0, #0 + cmp r1, #4 + bls _080521B8 + b _080522D4 +_080521B8: + lsls r0, r1, #2 + ldr r1, _080521CC @ =_080521D0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080521C4: .4byte gUnk_03000FD0 +_080521C8: .4byte gUnk_02000080 +_080521CC: .4byte _080521D0 +_080521D0: @ jump table + .4byte _080521E4 @ case 0 + .4byte _08052208 @ case 1 + .4byte _08052278 @ case 2 + .4byte _080522B0 @ case 3 + .4byte _080522D4 @ case 4 +_080521E4: + movs r1, #0 + movs r0, #0x1e + strh r0, [r2, #8] + strb r1, [r2, #3] + movs r0, #1 + bl sub_080A7114 + movs r0, #0 + movs r1, #0 + bl sub_08052418 + ldr r1, _08052204 @ =gUnk_03000FD0 + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r1, #4] + b _080522E8 + .align 2, 0 +_08052204: .4byte gUnk_03000FD0 +_08052208: + ldrh r0, [r2, #8] + cmp r0, #0 + bne _080522B6 + ldrb r4, [r2, #3] + ldr r0, _08052224 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x40 + beq _0805222E + cmp r0, #0x40 + bgt _08052228 + cmp r0, #1 + beq _08052236 + b _0805225A + .align 2, 0 +_08052224: .4byte gUnk_03000FF0 +_08052228: + cmp r0, #0x80 + beq _08052232 + b _0805225A +_0805222E: + movs r4, #0 + b _0805225A +_08052232: + movs r4, #1 + b _0805225A +_08052236: + cmp r4, #0 + beq _0805223E + movs r2, #4 + b _08052248 +_0805223E: + movs r0, #8 + movs r1, #0 + bl sub_08050318 + movs r2, #2 +_08052248: + ldr r1, _08052274 @ =gUnk_02000080 + movs r0, #0x3c + strh r0, [r1, #8] + adds r0, r2, #0 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 +_0805225A: + ldr r1, _08052274 @ =gUnk_02000080 + ldrb r0, [r1, #3] + cmp r0, r4 + beq _080522E8 + strb r4, [r1, #3] + movs r0, #0 + adds r1, r4, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 + b _080522E8 + .align 2, 0 +_08052274: .4byte gUnk_02000080 +_08052278: + movs r0, #0 + bl sub_0807CDA4 + adds r1, r0, #0 + ldr r2, _08052298 @ =gUnk_02000080 + strb r1, [r2] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0805229C + cmp r1, #1 + bne _080522E8 + movs r0, #4 + bl sub_080A7114 + b _080522E8 + .align 2, 0 +_08052298: .4byte gUnk_02000080 +_0805229C: + movs r0, #0x3c + strh r0, [r2, #8] + movs r0, #9 + movs r1, #0 + bl sub_08050318 + movs r0, #3 + bl sub_080A7114 + b _080522E8 +_080522B0: + ldrh r0, [r2, #8] + cmp r0, #0 + beq _080522BC +_080522B6: + subs r0, #1 + strh r0, [r2, #8] + b _080522E8 +_080522BC: + ldr r0, _080522D0 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0xb + ands r0, r1 + cmp r0, #0 + beq _080522E8 + movs r0, #0 + bl sub_080A7114 + b _080522E8 + .align 2, 0 +_080522D0: .4byte gUnk_03000FF0 +_080522D4: + ldr r2, _080522EC @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _080522F0 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + bl sub_08050384 + movs r0, #3 + bl sub_080520C4 +_080522E8: + pop {r4, pc} + .align 2, 0 +_080522EC: .4byte gUnk_03000F50 +_080522F0: .4byte 0x0000FDFF + + thumb_func_start sub_080522F4 +sub_080522F4: @ 0x080522F4 + push {r4, lr} + ldr r0, _08052320 @ =gUnk_02000080 + ldrb r1, [r0, #5] + adds r3, r0, #0 + cmp r1, #1 + beq _08052324 + cmp r1, #1 + bgt _080523AC + cmp r1, #0 + bne _080523AC + movs r1, #0 + movs r0, #0x1e + strh r0, [r3, #8] + strb r1, [r3, #3] + movs r0, #1 + bl sub_080A7114 + movs r0, #1 + movs r1, #0 + bl sub_08052418 + b _080523CC + .align 2, 0 +_08052320: .4byte gUnk_02000080 +_08052324: + ldr r2, _08052340 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r4, #0x80 + lsls r4, r4, #2 + adds r0, r4, #0 + orrs r0, r1 + strh r0, [r2] + ldrh r0, [r3, #8] + cmp r0, #0 + beq _08052344 + subs r0, #1 + strh r0, [r3, #8] + b _080523CC + .align 2, 0 +_08052340: .4byte gUnk_03000F50 +_08052344: + ldrb r4, [r3, #3] + ldr r0, _08052358 @ =gUnk_03000FF0 + ldrh r0, [r0, #2] + cmp r0, #0x40 + beq _08052362 + cmp r0, #0x40 + bgt _0805235C + cmp r0, #1 + beq _0805236A + b _0805238C + .align 2, 0 +_08052358: .4byte gUnk_03000FF0 +_0805235C: + cmp r0, #0x80 + beq _08052366 + b _0805238C +_08052362: + movs r4, #0 + b _0805238C +_08052366: + movs r4, #1 + b _0805238C +_0805236A: + movs r0, #2 + bl sub_080A7114 + movs r0, #0x6a + bl sub_080A3268 + cmp r4, #0 + bne _08052384 + movs r0, #5 + movs r1, #8 + bl sub_08050054 + b _0805238C +_08052384: + movs r0, #7 + movs r1, #8 + bl sub_08050054 +_0805238C: + ldr r1, _080523A8 @ =gUnk_02000080 + ldrb r0, [r1, #3] + cmp r0, r4 + beq _080523CC + strb r4, [r1, #3] + movs r0, #1 + adds r1, r4, #0 + bl sub_08052418 + movs r0, #0x69 + bl sub_080A3268 + b _080523CC + .align 2, 0 +_080523A8: .4byte gUnk_02000080 +_080523AC: + ldr r0, _080523C4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080523CC + ldrb r0, [r3, #3] + cmp r0, #0 + bne _080523C8 + movs r0, #2 + bl sub_08056010 + b _080523CC + .align 2, 0 +_080523C4: .4byte gUnk_03000FD0 +_080523C8: + bl sub_080560A8 +_080523CC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_107 +nullsub_107: @ 0x080523D0 + bx lr + .align 2, 0 + + thumb_func_start sub_080523D4 +sub_080523D4: @ 0x080523D4 + push {r4, r5, r6, lr} + ldr r1, _08052408 @ =gUnk_03001010 + movs r0, #0 + strh r0, [r1, #4] + strh r0, [r1, #6] + movs r0, #0x86 + lsls r0, r0, #8 + strh r0, [r1, #8] + ldr r0, _0805240C @ =gUnk_02000080 + ldrb r0, [r0, #0x10] + strh r0, [r1, #2] + movs r4, #0 + adds r6, r1, #0 + ldr r5, _08052410 @ =gUnk_080FCA84 +_080523F0: + adds r0, r4, r5 + ldrb r0, [r0] + strh r0, [r6] + ldr r0, _08052414 @ =0x000001FD + adds r1, r4, #0 + bl sub_080ADA14 + adds r4, #1 + cmp r4, #7 + bls _080523F0 + pop {r4, r5, r6, pc} + .align 2, 0 +_08052408: .4byte gUnk_03001010 +_0805240C: .4byte gUnk_02000080 +_08052410: .4byte gUnk_080FCA84 +_08052414: .4byte 0x000001FD + + thumb_func_start sub_08052418 +sub_08052418: @ 0x08052418 + push {r4, r5, r6, lr} + sub sp, #0x18 + adds r6, r0, #0 + adds r4, r1, #0 + ldr r0, _08052494 @ =gUnk_02021F30 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _08052498 @ =gUnk_020227E8 + movs r1, #0xf + str r1, [r0] + str r1, [r0, #8] + str r1, [r0, #0x10] + str r1, [r0, #0x18] + lsls r4, r4, #3 + adds r0, #1 + adds r4, r4, r0 + movs r5, #1 + strb r5, [r4] + ldr r4, _0805249C @ =gUnk_080FCA8C + adds r0, r4, #0 + mov r1, sp + movs r2, #0x18 + bl sub_0801D66C + lsls r2, r6, #1 + adds r2, r2, r6 + lsls r2, r2, #2 + ldr r0, _080524A0 @ =gUnk_080FCAA4 + adds r2, r2, r0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + adds r1, r2, r1 + ldrb r0, [r2, #8] + lsls r0, r0, #5 + ldrb r1, [r1] + adds r0, r0, r1 + lsls r0, r0, #1 + ldr r1, [r4] + adds r1, r1, r0 + str r1, [sp] + mov r4, sp + ldrb r0, [r2, #9] + adds r1, r5, #0 + ands r1, r0 + ldrb r3, [r4, #0x13] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x13] + ldrh r0, [r2, #0xa] + mov r1, sp + bl sub_0805F46C + ldr r0, _080524A4 @ =gUnk_03000F50 + strh r5, [r0, #0x1a] + add sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_08052494: .4byte gUnk_02021F30 +_08052498: .4byte gUnk_020227E8 +_0805249C: .4byte gUnk_080FCA8C +_080524A0: .4byte gUnk_080FCAA4 +_080524A4: .4byte gUnk_03000F50 \ No newline at end of file diff --git a/asm/code_08052620.s b/asm/code_08052620.s index 434d62ac..5142f238 100644 --- a/asm/code_08052620.s +++ b/asm/code_08052620.s @@ -2040,7 +2040,7 @@ sub_080535AC: @ 0x080535AC ands r0, r1 strh r0, [r2] ldr r0, _080535F0 @ =gUnk_080FCB94 - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #6 movs r1, #8 bl sub_08050054 @@ -2222,7 +2222,7 @@ sub_0805370C: @ 0x0805370C strb r0, [r1] bl sub_08051FF0 ldr r0, _08053738 @ =gUnk_080FCC54 - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #4 movs r1, #0x10 bl sub_08050054 @@ -2517,7 +2517,7 @@ sub_08053974: @ 0x08053974 bl sub_080197AC bl sub_08051F78 ldr r0, _080539B0 @ =gUnk_080FCBC4 - bl sub_0804ADDC + bl LoadRoomEntityList movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 @@ -2552,7 +2552,7 @@ sub_080539BC: @ 0x080539BC movs r1, #0x11 bl sub_0804B0B0 ldr r0, _080539EC @ =gUnk_080FCC14 - bl sub_0804ADDC + bl LoadRoomEntityList ldr r1, _080539F0 @ =gUnk_02000080 ldrb r0, [r1, #6] adds r0, #1 @@ -2687,7 +2687,7 @@ sub_08053ACC: @ 0x08053ACC strb r0, [r1] bl sub_08051FF0 ldr r0, _08053AFC @ =gUnk_080FCD84 - bl sub_0804ADDC + bl LoadRoomEntityList movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 @@ -2771,7 +2771,7 @@ sub_08053B74: @ 0x08053B74 movs r0, #1 strb r0, [r1] ldr r0, _08053BA8 @ =gUnk_080FCDE0 - bl sub_0804ADDC + bl LoadRoomEntityList bl sub_0805E5B4 bl sub_0805E470 movs r1, #0x80 @@ -2860,7 +2860,7 @@ sub_08053C20: @ 0x08053C20 movs r0, #4 bl sub_0805B4D0 ldr r0, _08053C58 @ =gUnk_080FCEBC - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #4 movs r1, #0x10 bl sub_08050054 @@ -2944,17 +2944,17 @@ sub_08053CC8: @ 0x08053CC8 adds r0, #8 str r0, [r6, #0xc] ldr r0, [r4] - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] ldrb r1, [r4, #5] movs r2, #1 bl sub_0804B0FC - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] ldrb r1, [r4, #5] movs r2, #2 bl sub_0804B0FC - bl sub_0804ADDC + bl LoadRoomEntityList movs r5, #1 strb r5, [r6, #6] ldr r2, _08053D28 @ =gUnk_03000F50 @@ -3075,17 +3075,17 @@ sub_08053DB4: @ 0x08053DB4 adds r0, r0, r2 strh r0, [r1, #0xc] ldr r0, [r4] - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] ldrb r1, [r4, #5] movs r2, #1 bl sub_0804B0FC - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] ldrb r1, [r4, #5] movs r2, #2 bl sub_0804B0FC - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #0x78 strh r0, [r5, #8] ldrb r0, [r5, #6] @@ -3146,7 +3146,7 @@ sub_08053E74: @ 0x08053E74 ldr r4, _08053EB4 @ =gUnk_02000080 str r0, [r4, #0xc] ldr r0, [r0] - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #0x78 strh r0, [r4, #8] movs r0, #0x3c @@ -3194,7 +3194,7 @@ sub_08053EC4: @ 0x08053EC4 adds r0, #0xc str r0, [r4, #0xc] ldr r0, [r1, #4] - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #6] adds r0, #1 strb r0, [r4, #6] @@ -3253,7 +3253,7 @@ sub_08053F20: @ 0x08053F20 adds r0, r0, r2 strh r0, [r1, #0xc] ldr r0, [r4] - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #0x78 strh r0, [r5, #8] movs r0, #0x3c @@ -4441,7 +4441,7 @@ _08054838: _08054842: movs r0, #7 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 cmp r2, #0 beq _0805486A @@ -5133,7 +5133,7 @@ sub_08054DAC: @ 0x08054DAC ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _08054DF4 @ =gUnk_080FEED4 - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #2 bl sub_0805B4D0 movs r0, #0 @@ -5394,7 +5394,7 @@ sub_08054FAC: @ 0x08054FAC lsls r0, r0, #2 adds r0, r0, r1 ldr r0, [r0] - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r5, #1] movs r1, #0 cmp r0, #0 @@ -5472,7 +5472,7 @@ _08055050: .4byte gUnk_02000080 sub_08055054: @ 0x08055054 push {r4, lr} ldr r0, _08055080 @ =gUnk_080FF128 - bl sub_0804ADDC + bl LoadRoomEntityList ldr r4, _08055084 @ =gUnk_02000080 ldrb r0, [r4, #4] movs r1, #2 @@ -5528,7 +5528,7 @@ sub_080550B0: @ 0x080550B0 ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _080550EC @ =gUnk_080FF154 - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 @@ -5573,7 +5573,7 @@ _08055110: .4byte gUnk_02000080 sub_08055114: @ 0x08055114 push {r4, lr} ldr r0, _08055150 @ =gUnk_080FF17C - bl sub_0804ADDC + bl LoadRoomEntityList ldr r0, _08055154 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #9 @@ -6308,7 +6308,7 @@ sub_080556AC: @ 0x080556AC ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _080556EC @ =gUnk_080FF264 - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 @@ -6352,7 +6352,7 @@ sub_08055710: @ 0x08055710 ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _08055760 @ =gUnk_080FEE48 - bl sub_0804ADF8 + bl CreateEntity adds r1, r0, #0 cmp r1, #0 beq _08055734 @@ -6456,7 +6456,7 @@ sub_080557D0: @ 0x080557D0 ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _08055810 @ =gUnk_080FF298 - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 @@ -6495,7 +6495,7 @@ _08055830: .4byte gUnk_02000080 sub_08055834: @ 0x08055834 push {r4, lr} ldr r0, _08055870 @ =gUnk_080FF2C0 - bl sub_0804ADDC + bl LoadRoomEntityList ldr r0, _08055874 @ =gUnk_02002A40 ldrb r0, [r0, #8] cmp r0, #9 @@ -6555,7 +6555,7 @@ sub_080558A4: @ 0x080558A4 ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _080558E0 @ =gUnk_080FF308 - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 @@ -6730,7 +6730,7 @@ sub_080559FC: @ 0x080559FC cmp r0, #0 beq _08055A0E ldr r0, _08055A34 @ =gUnk_080FF33C - bl sub_0804ADDC + bl LoadRoomEntityList _08055A0E: ldrb r0, [r4, #4] movs r1, #0 @@ -6857,7 +6857,7 @@ sub_08055AEC: @ 0x08055AEC lsls r0, r0, #4 ldr r1, _08055B30 @ =gUnk_080FED18 adds r0, r0, r1 - bl sub_0804ADF8 + bl CreateEntity adds r1, r0, #0 cmp r1, #0 beq _08055B14 @@ -6924,7 +6924,7 @@ sub_08055B70: @ 0x08055B70 lsls r0, r0, #4 ldr r1, _08055BA8 @ =gUnk_080FF378 adds r0, r0, r1 - bl sub_0804ADF8 + bl CreateEntity adds r3, r0, #0 cmp r3, #0 beq _08055BA2 @@ -7283,7 +7283,7 @@ sub_08055E24: @ 0x08055E24 ldrb r1, [r1, #3] bl sub_0804B0B0 ldr r0, _08055E64 @ =gUnk_080FF400 - bl sub_0804ADDC + bl LoadRoomEntityList ldrb r0, [r4, #4] movs r1, #0 movs r2, #0 diff --git a/asm/code_08055FF4.s b/asm/code_08055FF4.s index 4da095fe..677771ae 100644 --- a/asm/code_08055FF4.s +++ b/asm/code_08055FF4.s @@ -5116,7 +5116,7 @@ _0805870A: _08058718: adds r0, r4, #0 adds r4, #0x10 - bl sub_0804ADF8 + bl CreateEntity adds r3, r0, #0 cmp r3, #0 beq _08058744 @@ -6063,7 +6063,7 @@ sub_08058E34: @ 0x08058E34 cmp r0, #0 beq _08058E58 bl sub_0804B128 - bl sub_0804ADDC + bl LoadRoomEntityList _08058E58: adds r0, r4, #0 bl sub_0805E900 @@ -6113,7 +6113,7 @@ _08058E9E: _08058EB4: ldrb r0, [r4, #0xa] bl sub_0804B128 - bl sub_0804ADDC + bl LoadRoomEntityList bl sub_0805E780 b _08058EC8 _08058EC4: @@ -6387,7 +6387,7 @@ _080590C8: beq _080590D8 _080590CC: ldr r0, _080590DC @ =gUnk_080F4B88 - bl sub_0804ADDC + bl LoadRoomEntityList adds r0, r4, #0 bl sub_0805E900 _080590D8: @@ -8754,7 +8754,7 @@ sub_0805A370: @ 0x0805A370 cmp r0, #0 beq _0805A38A ldr r0, _0805A38C @ =gUnk_080E4C08 - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #3 strb r0, [r4, #0xc] ldr r0, _0805A390 @ =0x80100000 @@ -11121,7 +11121,7 @@ sub_0805B55C: @ 0x0805B55C strb r0, [r1, #0xe] movs r0, #0x19 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r5, r0, #0 cmp r5, #0 beq _0805B5B4 @@ -16643,7 +16643,7 @@ sub_0805E000: @ 0x0805E000 adds r6, r0, #0 movs r0, #0x51 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _0805E062 @@ -16751,7 +16751,7 @@ sub_0805E0C0: @ 0x0805E0C0 _0805E0DE: adds r0, r4, #0 adds r4, #0x10 - bl sub_0804ADF8 + bl CreateEntity str r5, [r0, #0x50] movs r1, #0xff strb r1, [r0, #0xe] @@ -17479,64263 +17479,3 @@ _0805E668: .4byte gUnk_03000000 _0805E66C: .4byte 0x00000427 _0805E670: .4byte 0x00000426 _0805E674: .4byte 0x0000042E - - thumb_func_start sub_0805E678 -sub_0805E678: @ 0x0805E678 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r0, _0805E698 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _0805E6A6 - ldr r4, _0805E69C @ =gUnk_030015A0 - movs r0, #0x99 - lsls r0, r0, #6 - adds r1, r4, r0 -_0805E68E: - ldr r0, [r4] - cmp r0, #0 - bne _0805E6A0 - adds r0, r4, #0 - b _0805E730 - .align 2, 0 -_0805E698: .4byte gUnk_03003DBC -_0805E69C: .4byte gUnk_030015A0 -_0805E6A0: - adds r4, #0x88 - cmp r4, r1 - blo _0805E68E -_0805E6A6: - ldr r4, _0805E6CC @ =gLinkEntity -_0805E6A8: - ldr r0, [r4] - cmp r0, #0 - bge _0805E6D4 - ldrb r1, [r4, #0x10] - movs r0, #0xc - ands r0, r1 - cmp r0, #0 - beq _0805E6D4 - ldr r0, _0805E6D0 @ =gUnk_03003DD0 - ldr r0, [r0, #8] - cmp r4, r0 - beq _0805E6D4 - adds r0, r4, #0 - bl sub_0805E870 - adds r0, r4, #0 - b _0805E730 - .align 2, 0 -_0805E6CC: .4byte gLinkEntity -_0805E6D0: .4byte gUnk_03003DD0 -_0805E6D4: - adds r4, #0x88 - ldr r0, _0805E738 @ =gUnk_03003BE0 - cmp r4, r0 - blo _0805E6A8 - movs r0, #0 - mov ip, r0 - movs r5, #0 - ldr r2, _0805E73C @ =gUnk_03003D70 - movs r0, #0x48 - adds r0, r0, r2 - mov r8, r0 -_0805E6EA: - ldr r4, [r2, #4] - adds r3, r2, #0 - adds r3, #8 - cmp r4, r2 - beq _0805E718 - movs r7, #0x1c - ldr r6, _0805E740 @ =gUnk_03003DD0 -_0805E6F8: - ldrb r0, [r4, #8] - cmp r0, #9 - beq _0805E712 - ldrb r0, [r4, #0x10] - adds r1, r7, #0 - ands r1, r0 - cmp ip, r1 - bhs _0805E712 - ldr r0, [r6, #8] - cmp r0, r4 - beq _0805E712 - mov ip, r1 - adds r5, r4, #0 -_0805E712: - ldr r4, [r4, #4] - cmp r4, r2 - bne _0805E6F8 -_0805E718: - adds r2, r3, #0 - cmp r2, r8 - blo _0805E6EA - cmp r5, #0 - beq _0805E72E - adds r0, r5, #0 - bl sub_0805E7BC - adds r0, r5, #0 - bl sub_0805E870 -_0805E72E: - adds r0, r5, #0 -_0805E730: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805E738: .4byte gUnk_03003BE0 -_0805E73C: .4byte gUnk_03003D70 -_0805E740: .4byte gUnk_03003DD0 - - thumb_func_start sub_0805E744 -sub_0805E744: @ 0x0805E744 - push {lr} - ldr r1, _0805E760 @ =gUnk_030011E8 - movs r0, #0xee - lsls r0, r0, #2 - adds r2, r1, r0 -_0805E74E: - ldr r0, [r1] - cmp r0, #0 - beq _0805E764 - adds r1, #0x88 - cmp r1, r2 - blo _0805E74E - movs r0, #0 - b _0805E766 - .align 2, 0 -_0805E760: .4byte gUnk_030011E8 -_0805E764: - adds r0, r1, #0 -_0805E766: - pop {pc} - - thumb_func_start sub_0805E768 -sub_0805E768: @ 0x0805E768 - push {lr} - ldr r1, _0805E778 @ =sub_0805E678 - cmp r0, #9 - bne _0805E772 - ldr r1, _0805E77C @ =sub_0805E8D4 -_0805E772: - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805E778: .4byte sub_0805E678 -_0805E77C: .4byte sub_0805E8D4 - - thumb_func_start sub_0805E780 -sub_0805E780: @ 0x0805E780 - push {lr} - ldr r0, _0805E794 @ =gUnk_03003DD0 - ldr r0, [r0, #8] - bl sub_0805E79C - ldr r0, _0805E798 @ =gUnk_03005F24 - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0805E794: .4byte gUnk_03003DD0 -_0805E798: .4byte gUnk_03005F24 - - thumb_func_start sub_0805E79C -sub_0805E79C: @ 0x0805E79C - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #8] - ldr r2, _0805E7B4 @ =sub_0805E7BC - cmp r0, #9 - bne _0805E7AA - ldr r2, _0805E7B8 @ =sub_0805E900 -_0805E7AA: - adds r0, r1, #0 - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0805E7B4: .4byte sub_0805E7BC -_0805E7B8: .4byte sub_0805E900 - - thumb_func_start sub_0805E7BC -sub_0805E7BC: @ 0x0805E7BC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #4] - cmp r0, #0 - beq _0805E84A - adds r0, r4, #0 - bl sub_080AE068 - adds r0, r4, #0 - bl sub_0801D230 - adds r0, r4, #0 - bl sub_0806FE84 - adds r0, r4, #0 - bl sub_080788E0 - adds r0, r4, #0 - bl sub_08078954 - adds r0, r4, #0 - bl sub_0805EC60 - adds r0, r4, #0 - bl sub_08017744 - adds r0, r4, #0 - bl sub_0805E92C - adds r0, r4, #0 - bl sub_0807DB08 - adds r0, r4, #0 - bl sub_0806FBEC - ldr r0, [r4, #0x64] - bl sub_0801DA0C - movs r5, #0 - str r5, [r4, #0x64] - ldrb r0, [r4, #8] - cmp r0, #3 - bne _0805E818 - adds r0, r4, #0 - bl sub_0804AA1C -_0805E818: - 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, #0x3c - strb r5, [r0] - adds r0, #5 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, #3 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0805EA98 - str r5, [r4, #4] - movs r0, #1 - rsbs r0, r0, #0 - str r0, [r4] -_0805E84A: - pop {r4, r5, pc} - - thumb_func_start sub_0805E84C -sub_0805E84C: @ 0x0805E84C - push {r4, r5, lr} - ldr r4, _0805E86C @ =gLinkEntity - movs r0, #0xaa - lsls r0, r0, #6 - adds r5, r4, r0 -_0805E856: - ldr r0, [r4] - cmp r0, #0 - bge _0805E862 - adds r0, r4, #0 - bl sub_0805E870 -_0805E862: - adds r4, #0x88 - cmp r4, r5 - blo _0805E856 - pop {r4, r5, pc} - .align 2, 0 -_0805E86C: .4byte gLinkEntity - - thumb_func_start sub_0805E870 -sub_0805E870: @ 0x0805E870 - sub sp, #4 - movs r1, #0 - str r1, [sp] - ldr r1, _0805E890 @ =0x040000D4 - mov r2, sp - str r2, [r1] - str r0, [r1, #4] - ldr r0, _0805E894 @ =0x85000022 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r1, _0805E898 @ =gUnk_03003DBC - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - add sp, #4 - bx lr - .align 2, 0 -_0805E890: .4byte 0x040000D4 -_0805E894: .4byte 0x85000022 -_0805E898: .4byte gUnk_03003DBC - - thumb_func_start sub_0805E89C -sub_0805E89C: @ 0x0805E89C - push {r4, r5, r6, lr} - ldr r5, _0805E8CC @ =gUnk_03003D70 - ldr r0, [r5, #4] - cmp r0, #0 - beq _0805E8C8 -_0805E8A6: - ldr r0, [r5, #4] - adds r6, r5, #0 - adds r6, #8 - cmp r0, r5 - beq _0805E8BC -_0805E8B0: - ldr r4, [r0, #4] - bl sub_0805E79C - adds r0, r4, #0 - cmp r0, r5 - bne _0805E8B0 -_0805E8BC: - adds r5, r6, #0 - ldr r0, _0805E8D0 @ =gUnk_03003DB8 - cmp r5, r0 - blo _0805E8A6 - bl sub_0805E84C -_0805E8C8: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805E8CC: .4byte gUnk_03003D70 -_0805E8D0: .4byte gUnk_03003DB8 - - thumb_func_start sub_0805E8D4 -sub_0805E8D4: @ 0x0805E8D4 - push {lr} - ldr r1, _0805E8F0 @ =gUnk_02033290 - movs r2, #0x80 - lsls r2, r2, #4 - adds r0, r1, r2 - cmp r1, r0 - bhs _0805E8FA - adds r2, r0, #0 -_0805E8E4: - ldr r0, [r1] - cmp r0, #0 - bne _0805E8F4 - adds r0, r1, #0 - b _0805E8FC - .align 2, 0 -_0805E8F0: .4byte gUnk_02033290 -_0805E8F4: - adds r1, #0x40 - cmp r1, r2 - blo _0805E8E4 -_0805E8FA: - movs r0, #0 -_0805E8FC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805E900 -sub_0805E900: @ 0x0805E900 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #4] - cmp r0, #0 - beq _0805E926 - adds r0, r4, #0 - bl sub_0805E92C - adds r0, r4, #0 - bl sub_0805EA98 - adds r0, r4, #0 - movs r1, #0x40 - bl sub_0801D630 - ldr r1, _0805E928 @ =gUnk_020354B4 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] -_0805E926: - pop {r4, pc} - .align 2, 0 -_0805E928: .4byte gUnk_020354B4 - - thumb_func_start sub_0805E92C -sub_0805E92C: @ 0x0805E92C - push {lr} - ldr r2, _0805E94C @ =gUnk_02033A90 - ldr r1, _0805E950 @ =0x00000888 - adds r3, r2, r1 - ldr r1, [r3] - cmp r0, r1 - bne _0805E94A - movs r0, #0 - str r0, [r3] - ldr r3, _0805E954 @ =0x0000088C - adds r1, r2, r3 - str r0, [r1] - adds r3, #4 - adds r1, r2, r3 - str r0, [r1] -_0805E94A: - pop {pc} - .align 2, 0 -_0805E94C: .4byte gUnk_02033A90 -_0805E950: .4byte 0x00000888 -_0805E954: .4byte 0x0000088C - - thumb_func_start sub_0805E958 -sub_0805E958: @ 0x0805E958 - push {lr} - ldr r0, _0805E96C @ =gUnk_03003D70 - ldr r1, _0805E970 @ =gUnk_020369F0 - movs r2, #0x48 - bl sub_0801D66C - bl sub_0805E98C - pop {pc} - .align 2, 0 -_0805E96C: .4byte gUnk_03003D70 -_0805E970: .4byte gUnk_020369F0 - - thumb_func_start sub_0805E974 -sub_0805E974: @ 0x0805E974 - push {lr} - ldr r0, _0805E984 @ =gUnk_020369F0 - ldr r1, _0805E988 @ =gUnk_03003D70 - movs r2, #0x48 - bl sub_0801D66C - pop {pc} - .align 2, 0 -_0805E984: .4byte gUnk_020369F0 -_0805E988: .4byte gUnk_03003D70 - - thumb_func_start sub_0805E98C -sub_0805E98C: @ 0x0805E98C - push {lr} - ldr r0, _0805E9A4 @ =gUnk_03003D70 - adds r1, r0, #0 - adds r1, #0x48 - cmp r0, r1 - bhs _0805E9A2 -_0805E998: - str r0, [r0] - str r0, [r0, #4] - adds r0, #8 - cmp r0, r1 - blo _0805E998 -_0805E9A2: - pop {pc} - .align 2, 0 -_0805E9A4: .4byte gUnk_03003D70 - - thumb_func_start sub_0805E9A8 -sub_0805E9A8: @ 0x0805E9A8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r3, _0805E9F0 @ =gUnk_03003D70 - movs r7, #0x10 - movs r0, #0x48 - adds r0, r0, r3 - mov r8, r0 -_0805E9B8: - ldr r2, [r3, #4] - adds r4, r3, #0 - adds r4, #8 - cmp r2, r3 - beq _0805E9E2 - movs r6, #0xfd - movs r5, #0x20 -_0805E9C6: - ldrb r0, [r2, #0x10] - adds r1, r6, #0 - ands r1, r0 - strb r1, [r2, #0x10] - adds r0, r1, #0 - ands r0, r5 - cmp r0, #0 - bne _0805E9DC - adds r0, r1, #0 - orrs r0, r7 - strb r0, [r2, #0x10] -_0805E9DC: - ldr r2, [r2, #4] - cmp r2, r3 - bne _0805E9C6 -_0805E9E2: - adds r3, r4, #0 - cmp r3, r8 - blo _0805E9B8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805E9F0: .4byte gUnk_03003D70 - - thumb_func_start sub_0805E9F4 -sub_0805E9F4: @ 0x0805E9F4 - push {r4, r5, r6, lr} - ldr r5, _0805EA24 @ =gUnk_03003D70 -_0805E9F8: - ldr r2, [r5, #4] - adds r6, r5, #0 - adds r6, #8 - cmp r2, r5 - beq _0805EA1A -_0805EA02: - ldr r4, [r2, #4] - ldrb r1, [r2, #0x10] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0805EA14 - adds r0, r2, #0 - bl sub_0805E79C -_0805EA14: - adds r2, r4, #0 - cmp r2, r5 - bne _0805EA02 -_0805EA1A: - adds r5, r6, #0 - ldr r0, _0805EA28 @ =gUnk_03003DB8 - cmp r5, r0 - blo _0805E9F8 - pop {r4, r5, r6, pc} - .align 2, 0 -_0805EA24: .4byte gUnk_03003D70 -_0805EA28: .4byte gUnk_03003DB8 - - thumb_func_start sub_0805EA2C -sub_0805EA2C: @ 0x0805EA2C - push {lr} - adds r2, r0, #0 - lsls r1, r1, #3 - ldr r0, _0805EA5C @ =gUnk_03003D70 - adds r1, r1, r0 - str r1, [r2, #4] - ldr r0, [r1] - str r0, [r2] - str r2, [r0, #4] - str r2, [r1] - ldrb r0, [r2, #8] - cmp r0, #9 - beq _0805EA64 - adds r3, r2, #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] - ldr r1, _0805EA60 @ =gUnk_03003DBC - b _0805EA66 - .align 2, 0 -_0805EA5C: .4byte gUnk_03003D70 -_0805EA60: .4byte gUnk_03003DBC -_0805EA64: - ldr r1, _0805EA74 @ =gUnk_020354B4 -_0805EA66: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0805E374 - pop {pc} - .align 2, 0 -_0805EA74: .4byte gUnk_020354B4 - - thumb_func_start sub_0805EA78 -sub_0805EA78: @ 0x0805EA78 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_0805EA98 - lsls r4, r4, #3 - ldr r0, _0805EA94 @ =gUnk_03003D70 - adds r4, r4, r0 - str r4, [r5] - ldr r0, [r4, #4] - str r0, [r5, #4] - str r5, [r0] - str r5, [r4, #4] - pop {r4, r5, pc} - .align 2, 0 -_0805EA94: .4byte gUnk_03003D70 - - thumb_func_start sub_0805EA98 -sub_0805EA98: @ 0x0805EA98 - push {lr} - adds r2, r0, #0 - ldr r1, _0805EAB8 @ =gUnk_03003DD0 - ldr r0, [r1, #8] - cmp r2, r0 - bne _0805EAA8 - ldr r0, [r2] - str r0, [r1, #8] -_0805EAA8: - ldr r1, [r2] - ldr r0, [r2, #4] - str r0, [r1, #4] - ldr r1, [r2, #4] - ldr r0, [r2] - str r0, [r1] - pop {pc} - .align 2, 0 -_0805EAB8: .4byte gUnk_03003DD0 - - thumb_func_start sub_0805EABC -sub_0805EABC: @ 0x0805EABC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldr r4, _0805EAE8 @ =gUnk_03003D70 - adds r7, r4, #0 - adds r7, #0x48 -_0805EAC6: - ldr r3, [r4, #4] - cmp r3, r4 - beq _0805EAF6 - ldr r5, _0805EAEC @ =0x0000FFFF -_0805EACE: - cmp r3, r6 - beq _0805EAF0 - ldrh r0, [r3, #8] - ldrh r2, [r6, #8] - adds r1, r5, #0 - ands r1, r0 - adds r0, r5, #0 - ands r0, r2 - cmp r1, r0 - bne _0805EAF0 - movs r0, #1 - b _0805EAFE - .align 2, 0 -_0805EAE8: .4byte gUnk_03003D70 -_0805EAEC: .4byte 0x0000FFFF -_0805EAF0: - ldr r3, [r3, #4] - cmp r3, r4 - bne _0805EACE -_0805EAF6: - adds r4, #8 - cmp r4, r7 - blo _0805EAC6 - movs r0, #0 -_0805EAFE: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805EB00 -sub_0805EB00: @ 0x0805EB00 - push {r4, lr} - adds r3, r0, #0 - lsls r2, r2, #3 - ldr r0, _0805EB28 @ =gUnk_03003D70 - adds r2, r2, r0 - ldr r0, [r2, #4] - cmp r0, r2 - beq _0805EB22 -_0805EB10: - ldrb r4, [r0, #8] - cmp r3, r4 - bne _0805EB1C - ldrb r4, [r0, #9] - cmp r1, r4 - beq _0805EB24 -_0805EB1C: - ldr r0, [r0, #4] - cmp r0, r2 - bne _0805EB10 -_0805EB22: - movs r0, #0 -_0805EB24: - pop {r4, pc} - .align 2, 0 -_0805EB28: .4byte gUnk_03003D70 - - thumb_func_start sub_0805EB2C -sub_0805EB2C: @ 0x0805EB2C - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, [sp, #0x10] - lsls r2, r2, #3 - ldr r0, _0805EB60 @ =gUnk_03003D70 - adds r2, r2, r0 - ldr r0, [r2, #4] - cmp r0, r2 - beq _0805EB5C -_0805EB3E: - ldrb r6, [r0, #8] - cmp r4, r6 - bne _0805EB56 - ldrb r6, [r0, #9] - cmp r1, r6 - bne _0805EB56 - ldrb r6, [r0, #0xa] - cmp r3, r6 - bne _0805EB56 - ldrb r6, [r0, #0xb] - cmp r5, r6 - beq _0805EB5E -_0805EB56: - ldr r0, [r0, #4] - cmp r0, r2 - bne _0805EB3E -_0805EB5C: - movs r0, #0 -_0805EB5E: - pop {r4, r5, r6, pc} - .align 2, 0 -_0805EB60: .4byte gUnk_03003D70 - - thumb_func_start sub_0805EB64 -sub_0805EB64: @ 0x0805EB64 - push {r4, r5, lr} - adds r4, r0, #0 - lsls r1, r1, #3 - ldr r0, _0805EB88 @ =gUnk_03003D70 - adds r3, r1, r0 - ldr r2, [r4, #4] - cmp r2, r3 - beq _0805EB96 - ldr r5, _0805EB8C @ =0x0000FFFF - ldrh r4, [r4, #8] -_0805EB78: - ldrh r1, [r2, #8] - adds r0, r5, #0 - ands r0, r1 - cmp r0, r4 - bne _0805EB90 - adds r0, r2, #0 - b _0805EB98 - .align 2, 0 -_0805EB88: .4byte gUnk_03003D70 -_0805EB8C: .4byte 0x0000FFFF -_0805EB90: - ldr r2, [r2, #4] - cmp r2, r3 - bne _0805EB78 -_0805EB96: - movs r0, #0 -_0805EB98: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805EB9C -sub_0805EB9C: @ 0x0805EB9C - push {r4, r5, lr} - adds r3, r0, #0 - ldr r2, _0805EBC8 @ =gUnk_03003D70 - adds r4, r2, #0 - adds r4, #0x48 -_0805EBA6: - ldr r0, [r2, #4] - cmp r0, r2 - beq _0805EBBE -_0805EBAC: - ldrb r5, [r0, #8] - cmp r3, r5 - bne _0805EBB8 - ldrb r5, [r0, #9] - cmp r1, r5 - beq _0805EBC6 -_0805EBB8: - ldr r0, [r0, #4] - cmp r0, r2 - bne _0805EBAC -_0805EBBE: - adds r2, #8 - cmp r2, r4 - blo _0805EBA6 - movs r0, #0 -_0805EBC6: - pop {r4, r5, pc} - .align 2, 0 -_0805EBC8: .4byte gUnk_03003D70 - - thumb_func_start sub_0805EBCC -sub_0805EBCC: @ 0x0805EBCC - push {r4, r5, r6, lr} - ldr r5, _0805EBFC @ =gUnk_03003D70 -_0805EBD0: - ldr r1, [r5, #4] - adds r6, r5, #0 - adds r6, #8 - cmp r1, r5 - beq _0805EBEE -_0805EBDA: - ldr r4, [r1, #4] - ldrb r0, [r1, #8] - cmp r0, #3 - bne _0805EBE8 - adds r0, r1, #0 - bl sub_0805E7BC -_0805EBE8: - adds r1, r4, #0 - cmp r1, r5 - bne _0805EBDA -_0805EBEE: - adds r5, r6, #0 - ldr r0, _0805EC00 @ =gUnk_03003DB8 - cmp r5, r0 - blo _0805EBD0 - bl sub_0805E84C - pop {r4, r5, r6, pc} - .align 2, 0 -_0805EBFC: .4byte gUnk_03003D70 -_0805EC00: .4byte gUnk_03003DB8 - - thumb_func_start sub_0805EC04 -sub_0805EC04: @ 0x0805EC04 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r2, #1 - ldr r0, _0805EC4C @ =gUnk_03000000 - movs r5, #1 - movs r6, #0x3f - rsbs r6, r6, #0 - movs r7, #4 - rsbs r7, r7, #0 - adds r4, r0, #0 - adds r4, #8 -_0805EC1A: - ldr r0, _0805EC50 @ =0x00000426 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, #0 - bne _0805EC54 - strb r5, [r1] - movs r0, #0x1f - ands r2, r0 - lsls r2, r2, #1 - ldrb r1, [r3, #0x1b] - adds r0, r6, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x1b] - ldrb r2, [r3, #0x19] - lsls r1, r2, #0x1e - lsrs r1, r1, #0x1e - orrs r1, r5 - adds r0, r7, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - movs r0, #1 - b _0805EC5E - .align 2, 0 -_0805EC4C: .4byte gUnk_03000000 -_0805EC50: .4byte 0x00000426 -_0805EC54: - adds r4, #8 - adds r2, #1 - cmp r2, #0x1f - bls _0805EC1A - movs r0, #0 -_0805EC5E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805EC60 -sub_0805EC60: @ 0x0805EC60 - push {lr} - adds r3, r0, #0 - ldrb r1, [r3, #0x19] - lsls r0, r1, #0x1e - cmp r0, #0 - beq _0805EC90 - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r3, #0x19] - ldrb r2, [r3, #0x1b] - lsls r1, r2, #0x1a - lsrs r1, r1, #0x1b - movs r0, #0x3f - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3, #0x1b] - ldr r0, _0805EC94 @ =gUnk_03000000 - lsls r1, r1, #3 - adds r1, r1, r0 - ldr r0, _0805EC98 @ =0x00000426 - adds r1, r1, r0 - movs r0, #0 - strb r0, [r1] -_0805EC90: - pop {pc} - .align 2, 0 -_0805EC94: .4byte gUnk_03000000 -_0805EC98: .4byte 0x00000426 - - thumb_func_start sub_0805EC9C -sub_0805EC9C: @ 0x0805EC9C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - ldrb r0, [r4, #0x1b] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - cmp r0, #0 - bne _0805ECBE - adds r0, r4, #0 - bl sub_0805EC04 - cmp r0, #0 - bne _0805ECBE - movs r0, #0 - b _0805ECE0 -_0805ECBE: - ldr r1, _0805ECE4 @ =gUnk_03000000 - ldr r0, _0805ECE8 @ =0x00000427 - adds r2, r1, r0 - movs r0, #1 - strb r0, [r2] - ldrb r0, [r4, #0x1b] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - lsls r0, r0, #3 - movs r2, #0x84 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - strh r5, [r0] - strh r6, [r0, #2] - strh r7, [r0, #4] - movs r0, #1 -_0805ECE0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805ECE4: .4byte gUnk_03000000 -_0805ECE8: .4byte 0x00000427 - - thumb_func_start sub_0805ECEC -sub_0805ECEC: @ 0x0805ECEC - push {r4, r5, r6, lr} - ldr r5, _0805ED0C @ =gUnk_03000000 - ldr r4, _0805ED10 @ =0x00000427 - adds r6, r5, r4 - movs r4, #1 - strb r4, [r6] - lsls r0, r0, #3 - movs r4, #0x84 - lsls r4, r4, #3 - adds r5, r5, r4 - adds r0, r0, r5 - strh r1, [r0] - strh r2, [r0, #2] - strh r3, [r0, #4] - pop {r4, r5, r6, pc} - .align 2, 0 -_0805ED0C: .4byte gUnk_03000000 -_0805ED10: .4byte 0x00000427 - - thumb_func_start sub_0805ED14 -sub_0805ED14: @ 0x0805ED14 - ldr r2, _0805ED2C @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x9c - str r0, [r1] - adds r0, r2, #0 - adds r0, #0x98 - movs r1, #0 - strh r1, [r0] - adds r0, #2 - strh r1, [r0] - bx lr - .align 2, 0 -_0805ED2C: .4byte gUnk_03003F80 - - thumb_func_start sub_0805ED30 -sub_0805ED30: @ 0x0805ED30 - push {r4, lr} - ldr r2, _0805ED50 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x9c - ldr r0, [r0] - adds r4, r2, #0 - cmp r0, #0 - beq _0805ED88 - adds r1, r4, #0 - adds r1, #0x90 - ldr r2, [r1, #0xc] - ldrh r0, [r1, #8] - cmp r0, #0 - bne _0805ED7E - movs r4, #0 - b _0805ED62 - .align 2, 0 -_0805ED50: .4byte gUnk_03003F80 -_0805ED54: - cmp r0, #2 - beq _0805ED5E - strh r3, [r1, #8] - ldrh r0, [r2, #2] - strh r0, [r1, #0xa] -_0805ED5E: - adds r2, #4 - b _0805ED7C -_0805ED62: - ldrh r3, [r2] - lsrs r0, r3, #0xe - cmp r0, #1 - bne _0805ED72 - movs r3, #2 - ldrsh r0, [r2, r3] - adds r2, r2, r0 - b _0805ED62 -_0805ED72: - cmp r0, #3 - bne _0805ED54 - strh r4, [r1, #8] - strh r4, [r1, #0xa] - movs r2, #0 -_0805ED7C: - str r2, [r1, #0xc] -_0805ED7E: - ldrh r0, [r1, #8] - subs r0, #1 - strh r0, [r1, #8] - ldrh r1, [r1, #0xa] - b _0805EDCA -_0805ED88: - adds r0, r4, #0 - adds r0, #0x8b - ldrb r0, [r0] - cmp r0, #3 - bgt _0805ED98 - cmp r0, #0 - blt _0805ED98 - movs r1, #0 -_0805ED98: - adds r2, r4, #0 - adds r2, #0x8b - ldrb r0, [r2] - cmp r0, #1 - beq _0805EDB4 - cmp r0, #1 - bgt _0805EDAC - cmp r0, #0 - beq _0805EDC6 - b _0805EDCA -_0805EDAC: - cmp r0, #3 - bgt _0805EDCA - movs r1, #0 - b _0805EDCA -_0805EDB4: - movs r0, #0 - strb r0, [r2] - ldr r0, _0805EDF8 @ =gUnk_03000FF0 - ldrh r0, [r0] - bl sub_0805EE04 - adds r1, r4, #0 - adds r1, #0x90 - strh r0, [r1] -_0805EDC6: - ldr r0, _0805EDF8 @ =gUnk_03000FF0 - ldrh r1, [r0] -_0805EDCA: - adds r0, r1, #0 - bl sub_0805EE04 - ldr r3, _0805EDFC @ =gUnk_03003F80 - adds r1, r3, #0 - adds r1, #0x90 - ldrh r2, [r1] - strh r0, [r1] - adds r1, r0, #0 - bics r1, r2 - adds r2, r3, #0 - adds r2, #0x92 - strh r1, [r2] - ldr r2, _0805EE00 @ =gUnk_08109202 - movs r1, #0xf0 - lsls r1, r1, #4 - ands r1, r0 - lsrs r1, r1, #8 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r3, #0xd] - pop {r4, pc} - .align 2, 0 -_0805EDF8: .4byte gUnk_03000FF0 -_0805EDFC: .4byte gUnk_03003F80 -_0805EE00: .4byte gUnk_08109202 - - thumb_func_start sub_0805EE04 -sub_0805EE04: @ 0x0805EE04 - push {r4, r5, lr} - adds r2, r0, #0 - movs r5, #0x80 - lsls r5, r5, #2 - ands r0, r5 - rsbs r0, r0, #0 - asrs r1, r0, #0x1f - movs r0, #0x80 - lsls r0, r0, #5 - ands r1, r0 - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r2, #0 - ands r0, r4 - cmp r0, #0 - beq _0805EE32 - movs r0, #0x20 - orrs r1, r0 - movs r0, #0x80 - lsls r0, r0, #8 - orrs r1, r0 - movs r0, #0x80 - orrs r1, r0 -_0805EE32: - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0805EE42 - movs r0, #8 - orrs r1, r0 - movs r0, #0x41 - orrs r1, r0 -_0805EE42: - movs r3, #2 - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - beq _0805EE52 - movs r0, #0x10 - orrs r1, r0 - orrs r1, r3 -_0805EE52: - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _0805EE5C - orrs r1, r4 -_0805EE5C: - movs r0, #0x20 - ands r0, r2 - cmp r0, #0 - beq _0805EE66 - orrs r1, r5 -_0805EE66: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _0805EE74 - movs r0, #0x80 - lsls r0, r0, #3 - orrs r1, r0 -_0805EE74: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _0805EE82 - movs r0, #0x80 - lsls r0, r0, #4 - orrs r1, r0 -_0805EE82: - adds r0, r1, #0 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805EE88 -sub_0805EE88: @ 0x0805EE88 - push {lr} - ldr r1, _0805EEB0 @ =gUnk_030010A0 - adds r0, r1, #0 - adds r0, #0x2f - ldrb r0, [r0] - cmp r0, #0 - beq _0805EEAC - ldr r1, [r1] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0805EEAC - movs r0, #0xc - ands r1, r0 - lsrs r0, r1, #2 - adds r0, #0x2f - bl sub_0801D714 -_0805EEAC: - pop {pc} - .align 2, 0 -_0805EEB0: .4byte gUnk_030010A0 - - thumb_func_start sub_0805EEB4 -sub_0805EEB4: @ 0x0805EEB4 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r3, r1, #0 - strh r3, [r7, #8] - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r1, [r0, #7] - cmp r1, #1 - bls _0805EED6 - lsrs r0, r3, #8 - cmp r0, #1 - bne _0805EED6 - movs r0, #0x8c - lsls r0, r0, #1 - cmp r3, r0 - bhi _0805EED6 - movs r1, #3 -_0805EED6: - ldr r0, _0805EF14 @ =gUnk_08109214 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - lsrs r0, r3, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r4, [r0] - adds r2, r2, r4 - lsls r0, r3, #0x18 - lsrs r0, r0, #0x16 - adds r0, r0, r2 - ldr r4, [r0] - ldr r0, [r1] - ldr r1, [r0] - lsrs r1, r1, #2 - ldr r0, [r2] - lsrs r6, r0, #2 - movs r5, #0 - ldrh r3, [r7, #8] - lsrs r0, r3, #8 - cmp r0, r1 - bhs _0805EF0E - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - cmp r0, r6 - blo _0805EF18 -_0805EF0E: - movs r5, #1 - b _0805EF22 - .align 2, 0 -_0805EF14: .4byte gUnk_08109214 -_0805EF18: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _0805EF22 - movs r5, #2 -_0805EF22: - cmp r5, #2 - bhi _0805EF2E - cmp r5, #1 - blo _0805EF2E - ldr r2, _0805EF3C @ =gUnk_08109244 - movs r4, #0 -_0805EF2E: - adds r2, r2, r4 - adds r0, r7, #0 - adds r1, r2, #0 - bl sub_0805EF40 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805EF3C: .4byte gUnk_08109244 - - thumb_func_start sub_0805EF40 -sub_0805EF40: @ 0x0805EF40 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldrb r2, [r3] - movs r0, #1 - ands r0, r2 - cmp r0, #0 - beq _0805EF70 - lsls r1, r2, #0x1b - lsrs r0, r1, #0x1c - cmp r0, #6 - bls _0805EF5C - movs r0, #0 - b _0805EF8A -_0805EF5C: - lsrs r0, r1, #0x1c - adds r0, #1 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_0805EF70: - ldrb r0, [r3] - lsls r0, r0, #0x1b - lsrs r0, r0, #0x1c - lsls r0, r0, #2 - adds r1, r3, #0 - adds r1, #0x10 - adds r1, r1, r0 - str r4, [r1] - ldrb r0, [r3] - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - movs r0, #1 -_0805EF8A: - pop {r4, pc} - - thumb_func_start sub_0805EF8C -sub_0805EF8C: @ 0x0805EF8C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805EFAE - lsls r0, r1, #0x1b - lsrs r0, r0, #0x1c - lsls r0, r0, #2 - adds r2, #0x10 - adds r2, r2, r0 - ldr r1, [r2] - ldrb r0, [r1] - adds r1, #1 - str r1, [r2] - b _0805EFB0 -_0805EFAE: - movs r0, #0 -_0805EFB0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805EFB4 -sub_0805EFB4: @ 0x0805EFB4 - push {r4, lr} - adds r3, r0, #0 - ldrb r2, [r3] - lsls r1, r2, #0x1b - lsrs r4, r1, #0x1c - movs r0, #0x1e - ands r0, r2 - cmp r0, #0 - beq _0805EFDC - adds r0, r4, #0 - subs r0, #1 - movs r1, #0xf - ands r0, r1 - lsls r0, r0, #1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] - b _0805EFE4 -_0805EFDC: - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] -_0805EFE4: - adds r0, r4, #0 - pop {r4, pc} - - thumb_func_start sub_0805EFE8 -sub_0805EFE8: @ 0x0805EFE8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 -_0805EFEC: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - strb r5, [r6, #1] - movs r7, #0 - cmp r5, #0xf - bls _0805EFFE - b _0805F22C -_0805EFFE: - lsls r0, r5, #2 - ldr r1, _0805F008 @ =_0805F00C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F008: .4byte _0805F00C -_0805F00C: @ jump table - .4byte _0805F04C @ case 0 - .4byte _0805F058 @ case 1 - .4byte _0805F06E @ case 2 - .4byte _0805F07A @ case 3 - .4byte _0805F090 @ case 4 - .4byte _0805F130 @ case 5 - .4byte _0805F150 @ case 6 - .4byte _0805F196 @ case 7 - .4byte _0805F1C0 @ case 8 - .4byte _0805F1CC @ case 9 - .4byte _0805F1D8 @ case 10 - .4byte _0805F1DC @ case 11 - .4byte _0805F1EC @ case 12 - .4byte _0805F1FC @ case 13 - .4byte _0805F20C @ case 14 - .4byte _0805F21C @ case 15 -_0805F04C: - adds r0, r6, #0 - bl sub_0805EFB4 - adds r7, r0, #0 - movs r5, #0 - b _0805F232 -_0805F058: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - strh r4, [r6, #2] - movs r5, #6 - cmp r4, #0xa - bls _0805F06A - b _0805F232 -_0805F06A: - movs r5, #5 - b _0805F232 -_0805F06E: - adds r0, r6, #0 - bl sub_0805EF8C - strh r0, [r6, #2] - movs r5, #7 - b _0805F232 -_0805F07A: - adds r0, r6, #0 - bl sub_0805EF8C - lsls r4, r0, #8 - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r4, r0 - strh r4, [r6, #2] - movs r5, #8 - b _0805F232 -_0805F090: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - cmp r4, #0x15 - bhi _0805F12C - lsls r0, r4, #2 - ldr r1, _0805F0A8 @ =_0805F0AC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F0A8: .4byte _0805F0AC -_0805F0AC: @ jump table - .4byte _0805F104 @ case 0 - .4byte _0805F104 @ case 1 - .4byte _0805F104 @ case 2 - .4byte _0805F104 @ case 3 - .4byte _0805F104 @ case 4 - .4byte _0805F104 @ case 5 - .4byte _0805F104 @ case 6 - .4byte _0805F104 @ case 7 - .4byte _0805F104 @ case 8 - .4byte _0805F104 @ case 9 - .4byte _0805F104 @ case 10 - .4byte _0805F104 @ case 11 - .4byte _0805F104 @ case 12 - .4byte _0805F104 @ case 13 - .4byte _0805F104 @ case 14 - .4byte _0805F104 @ case 15 - .4byte _0805F108 @ case 16 - .4byte _0805F114 @ case 17 - .4byte _0805F118 @ case 18 - .4byte _0805F11C @ case 19 - .4byte _0805F120 @ case 20 - .4byte _0805F120 @ case 21 -_0805F104: - movs r5, #9 - b _0805F12C -_0805F108: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - movs r5, #0xa - b _0805F12C -_0805F114: - movs r5, #2 - b _0805F12C -_0805F118: - movs r5, #3 - b _0805F12C -_0805F11C: - movs r5, #4 - b _0805F12C -_0805F120: - movs r5, #0xb - movs r1, #0x14 - eors r1, r4 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r4, r0, #0x1f -_0805F12C: - strh r4, [r6, #2] - b _0805F232 -_0805F130: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - cmp r4, #0xff - bne _0805F140 - movs r4, #0 - b _0805F14A -_0805F140: - lsls r4, r4, #8 - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r4, r0 -_0805F14A: - strh r4, [r6, #6] - movs r5, #0xc - b _0805F232 -_0805F150: - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r0, #0 - cmp r4, #4 - bls _0805F162 - cmp r4, #5 - beq _0805F17C - b _0805EFEC -_0805F162: - ldr r1, [r6, #0xc] - cmp r1, #0 - bne _0805F16A - ldr r1, _0805F178 @ =gUnk_08109230 -_0805F16A: - lsls r0, r4, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r6, #0 - bl sub_0805EF40 - b _0805EFEC - .align 2, 0 -_0805F178: .4byte gUnk_08109230 -_0805F17C: - adds r0, r6, #0 - bl sub_0805EF8C - lsls r4, r0, #8 - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r4, r0 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0805EEB4 - b _0805EFEC -_0805F196: - adds r0, r6, #0 - bl sub_0805EF8C - lsls r4, r0, #8 - adds r0, r6, #0 - bl sub_0805EF8C - adds r4, r4, r0 - ldrb r1, [r6] - movs r0, #2 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x1f - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r6] - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0805EEB4 - b _0805EFEC -_0805F1C0: - adds r0, r6, #0 - bl sub_0805EF8C - strh r0, [r6, #2] - movs r5, #0xd - b _0805F232 -_0805F1CC: - adds r0, r6, #0 - bl sub_0805EF8C - strh r0, [r6, #2] - movs r5, #0xe - b _0805F232 -_0805F1D8: - movs r5, #1 - b _0805F232 -_0805F1DC: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0x80 - lsls r0, r0, #3 - orrs r5, r0 - b _0805F232 -_0805F1EC: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0xe0 - lsls r0, r0, #3 - orrs r5, r0 - b _0805F232 -_0805F1FC: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0xa0 - lsls r0, r0, #3 - orrs r5, r0 - b _0805F232 -_0805F20C: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #3 - orrs r5, r0 - b _0805F232 -_0805F21C: - adds r0, r6, #0 - bl sub_0805EF8C - adds r5, r0, #0 - movs r0, #0xc0 - lsls r0, r0, #2 - orrs r5, r0 - b _0805F232 -_0805F22C: - movs r0, #0x80 - lsls r0, r0, #1 - adds r5, r5, r0 -_0805F232: - cmp r7, #0 - beq _0805F238 - b _0805EFEC -_0805F238: - lsrs r0, r5, #8 - cmp r0, #0 - beq _0805F256 - ldrb r0, [r6] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1e - cmp r0, #0 - beq _0805F254 - cmp r0, #1 - bne _0805F254 - adds r0, r5, #0 - bl sub_0805F9A0 - adds r5, r0, #0 -_0805F254: - strh r5, [r6, #4] -_0805F256: - adds r0, r5, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0805F25C -sub_0805F25C: @ 0x0805F25C - push {lr} - adds r2, r0, #0 - lsrs r3, r2, #8 - movs r0, #0xf - ands r3, r0 - movs r0, #0xff - ands r2, r0 - cmp r3, #8 - bhi _0805F2B6 - lsls r0, r3, #2 - ldr r1, _0805F278 @ =_0805F27C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F278: .4byte _0805F27C -_0805F27C: @ jump table - .4byte _0805F2A0 @ case 0 - .4byte _0805F2A0 @ case 1 - .4byte _0805F2B6 @ case 2 - .4byte _0805F2B6 @ case 3 - .4byte _0805F2B6 @ case 4 - .4byte _0805F2B4 @ case 5 - .4byte _0805F2B4 @ case 6 - .4byte _0805F2B4 @ case 7 - .4byte _0805F2B4 @ case 8 -_0805F2A0: - cmp r2, #0x7f - bls _0805F2B6 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - beq _0805F2B6 - subs r2, #0x80 - movs r3, #2 - b _0805F2B6 -_0805F2B4: - lsls r2, r2, #1 -_0805F2B6: - ldr r1, _0805F2C4 @ =gUnk_08109248 - lsls r0, r3, #2 - adds r0, r0, r1 - lsls r1, r2, #6 - ldr r0, [r0] - adds r0, r0, r1 - pop {pc} - .align 2, 0 -_0805F2C4: .4byte gUnk_08109248 - - thumb_func_start sub_0805F2C8 -sub_0805F2C8: @ 0x0805F2C8 - push {r4, r5, lr} - movs r1, #0 - ldr r4, _0805F2EC @ =gUnk_02036540 - adds r5, r4, #0 -_0805F2D0: - ldrb r0, [r4] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0805F2F0 - adds r0, r5, #0 - movs r1, #0xc - bl sub_0801D630 - ldrb r0, [r4] - movs r1, #1 - orrs r0, r1 - strb r0, [r4] - adds r0, r5, #0 - b _0805F2FC - .align 2, 0 -_0805F2EC: .4byte gUnk_02036540 -_0805F2F0: - adds r4, #0xc - adds r5, #0xc - adds r1, #1 - cmp r1, #3 - bls _0805F2D0 - movs r0, #0 -_0805F2FC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805F300 -sub_0805F300: @ 0x0805F300 - push {lr} - adds r2, r0, #0 - movs r1, #0 - ldr r0, _0805F314 @ =gUnk_02036540 -_0805F308: - cmp r0, r2 - bne _0805F318 - movs r1, #0xc - bl sub_0801D630 - b _0805F320 - .align 2, 0 -_0805F314: .4byte gUnk_02036540 -_0805F318: - adds r0, #0xc - adds r1, #1 - cmp r1, #3 - bls _0805F308 -_0805F320: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805F324 -sub_0805F324: @ 0x0805F324 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - adds r7, r1, #0 - mov r1, sp - movs r2, #0x30 - bl sub_0801D66C - movs r0, #0 - str r0, [sp, #0x34] - movs r1, #0 - str r1, [sp, #0x30] - mov sl, r1 - mov r8, r1 - b _0805F34C -_0805F348: - cmp r6, #0 - beq _0805F41E -_0805F34C: - movs r5, #0 - movs r2, #1 - mov sb, r2 -_0805F352: - mov r0, sp - bl sub_0805EFE8 - adds r6, r0, #0 - cmp r6, #0xe - bhi _0805F3B4 - lsls r0, r6, #2 - ldr r1, _0805F368 @ =_0805F36C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F368: .4byte _0805F36C -_0805F36C: @ jump table - .4byte _0805F402 @ case 0 - .4byte _0805F402 @ case 1 - .4byte _0805F3FC @ case 2 - .4byte _0805F3FC @ case 3 - .4byte _0805F3FC @ case 4 - .4byte _0805F3FC @ case 5 - .4byte _0805F3FC @ case 6 - .4byte _0805F3FC @ case 7 - .4byte _0805F3FC @ case 8 - .4byte _0805F3FC @ case 9 - .4byte _0805F3FC @ case 10 - .4byte _0805F3AC @ case 11 - .4byte _0805F3A8 @ case 12 - .4byte _0805F3FC @ case 13 - .4byte _0805F3FC @ case 14 -_0805F3A8: - adds r5, #8 - b _0805F3FC -_0805F3AC: - mov r0, sp - ldrh r0, [r0, #2] - mov r8, r0 - b _0805F3FC -_0805F3B4: - mov r0, r8 - cmp r0, #0 - bne _0805F3DE - adds r0, r6, #0 - bl sub_0805F25C - adds r4, r0, #0 - lsrs r0, r6, #8 - cmp r0, #4 - bls _0805F3D2 - ldr r0, [r4, #0x40] - bl sub_0805F7A0 - lsrs r0, r0, #8 - adds r5, r5, r0 -_0805F3D2: - ldr r0, [r4] - bl sub_0805F7A0 - lsrs r0, r0, #8 - adds r5, r5, r0 - b _0805F3EA -_0805F3DE: - lsrs r0, r6, #8 - cmp r0, #4 - bls _0805F3E8 - adds r5, #0x10 - b _0805F3EA -_0805F3E8: - adds r5, #8 -_0805F3EA: - mov r0, sp - ldrb r1, [r0] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0x20 - bne _0805F3FC - cmp r5, #1 - bls _0805F3FC - subs r5, #1 -_0805F3FC: - mov r1, sb - cmp r1, #0 - bne _0805F352 -_0805F402: - cmp r5, sl - bls _0805F408 - mov sl, r5 -_0805F408: - cmp r5, #0 - beq _0805F414 - ldr r2, [sp, #0x30] - adds r2, #1 - str r2, [sp, #0x30] - b _0805F41A -_0805F414: - ldr r0, [sp, #0x34] - adds r0, #1 - str r0, [sp, #0x34] -_0805F41A: - cmp r7, #0 - bne _0805F348 -_0805F41E: - cmp r7, #0 - bne _0805F426 - mov r0, sl - b _0805F434 -_0805F426: - ldr r1, [sp, #0x34] - lsls r0, r1, #0x18 - ldr r2, [sp, #0x30] - lsls r1, r2, #0x10 - orrs r0, r1 - mov r1, sl - orrs r0, r1 -_0805F434: - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805F440 -sub_0805F440: @ 0x0805F440 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0x30 - bl sub_0801D630 - ldr r0, _0805F45C @ =0x0000FFFF - cmp r5, r0 - bls _0805F460 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805EF40 - b _0805F468 - .align 2, 0 -_0805F45C: .4byte 0x0000FFFF -_0805F460: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805EEB4 -_0805F468: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805F46C -sub_0805F46C: @ 0x0805F46C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - sub sp, #0x48 - adds r6, r0, #0 - adds r5, r1, #0 - bl sub_0805F2C8 - mov r8, r0 - cmp r0, #0 - bne _0805F486 - b _0805F5BC -_0805F486: - add r4, sp, #0x30 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x18 - bl sub_0801D66C - mov r0, sp - adds r1, r6, #0 - bl sub_0805F440 - mov r3, sp - ldrb r0, [r4, #0x17] - movs r1, #3 - ands r1, r0 - lsls r1, r1, #5 - ldrb r2, [r3] - movs r0, #0x61 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r4, #0x17] - lsls r1, r1, #4 - mov r0, r8 - ldrb r2, [r0] - movs r0, #0xf - ands r0, r2 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - ldrb r0, [r4, #0x12] - strh r0, [r1, #4] - ldr r0, [r4, #8] - str r0, [r1, #8] - ldrb r0, [r4, #0x15] - strb r0, [r1, #2] - ldrb r0, [r4, #0x14] - strb r0, [r1, #3] - ldrb r1, [r4, #0x13] - movs r0, #8 - ands r0, r1 - mov sb, r4 - cmp r0, #0 - beq _0805F59E - lsrs r0, r1, #4 - ldrb r1, [r4, #0x14] - ldr r2, [r4, #4] - bl sub_0805F918 - ldr r0, [r4, #4] - adds r0, #0xe0 - str r0, [r4, #4] - mov r0, sp - movs r1, #1 - bl sub_0805F324 - lsrs r2, r0, #0x18 - ldrb r1, [r4, #0x16] - muls r2, r1, r2 - asrs r1, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x17 - adds r7, r2, r1 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - adds r1, r4, #0 - mov r2, sb - ldrb r3, [r2, #0x12] - cmp r3, r1 - bge _0805F514 - adds r1, r3, #0 -_0805F514: - adds r4, r1, #7 - movs r2, #8 - rsbs r2, r2, #0 - mov r0, sb - ldrb r1, [r0, #0x13] - movs r0, #2 - ands r0, r1 - ands r4, r2 - cmp r0, #0 - bne _0805F52A - adds r4, r3, #0 -_0805F52A: - ldr r5, [sp, #0x30] - adds r0, r5, #0 - adds r0, #0x40 - str r0, [sp, #0x30] - mov r2, sb - ldrb r1, [r2, #0x13] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F54E - adds r4, #0xf - movs r0, #0x10 - rsbs r0, r0, #0 - ands r4, r0 - lsrs r0, r4, #3 - adds r0, #2 - subs r5, r5, r0 - b _0805F554 -_0805F54E: - adds r0, r5, #0 - adds r0, #0x42 - str r0, [sp, #0x30] -_0805F554: - lsrs r4, r4, #3 - mov r3, sb - ldrh r6, [r3, #0x10] - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - adds r3, r6, #0 - bl sub_08056DC8 - adds r5, #2 - mov r1, sb - ldrh r0, [r1, #0x10] - adds r0, #7 - strh r0, [r1, #0x10] - ldrh r0, [r1, #0x10] - subs r6, r0, #1 - adds r0, r7, #0 - subs r7, #1 - cmp r0, #0 - beq _0805F59E -_0805F57C: - adds r1, r5, #0 - adds r1, #0x40 - adds r5, r1, #0 - subs r2, r4, #1 - subs r3, r7, #1 - cmp r4, #0 - ble _0805F596 -_0805F58A: - strh r6, [r1] - adds r1, #2 - adds r0, r2, #0 - subs r2, #1 - cmp r0, #0 - bgt _0805F58A -_0805F596: - adds r0, r7, #0 - adds r7, r3, #0 - cmp r0, #0 - bne _0805F57C -_0805F59E: - ldr r0, _0805F5C8 @ =gUnk_02034330 - movs r1, #0x18 - bl sub_0801D630 -_0805F5A6: - mov r0, sb - mov r1, sp - mov r2, r8 - bl sub_0805F5CC - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0805F5A6 - mov r0, r8 - bl sub_0805F300 -_0805F5BC: - movs r0, #0 - add sp, #0x48 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805F5C8: .4byte gUnk_02034330 - - thumb_func_start sub_0805F5CC -sub_0805F5CC: @ 0x0805F5CC - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - ldrb r0, [r4, #0x14] - bl sub_0805F8F8 - ldr r1, [r4, #8] - ldrb r2, [r4, #0x12] - adds r2, #7 - movs r3, #0xfc - lsls r3, r3, #1 - ands r2, r3 - lsls r2, r2, #3 - bl sub_0801D610 - adds r0, r6, #0 - movs r1, #0 - bl sub_0805F324 - adds r2, r0, #0 - ldrb r1, [r4, #0x13] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F60E - adds r0, r2, #1 - lsrs r0, r0, #1 - movs r1, #8 - subs r1, r1, r0 - movs r0, #7 - ands r0, r1 - b _0805F610 -_0805F60E: - movs r0, #0 -_0805F610: - strh r0, [r5, #6] - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0805F6A4 - adds r2, r0, #0 - cmp r2, #0 - beq _0805F660 - ldrh r1, [r5, #6] - adds r0, r1, #7 - asrs r5, r0, #3 - ldr r2, [r4] - ldrb r1, [r4, #0x13] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805F63A - adds r0, r5, #1 - lsrs r0, r0, #1 - lsls r0, r0, #1 - subs r2, r2, r0 -_0805F63A: - ldrh r1, [r4, #0x10] - adds r0, r2, #0 - adds r2, r5, #0 - bl sub_0805F67C - strh r0, [r4, #0x10] - ldr r0, [r4] - adds r0, #0x80 - str r0, [r4] - lsls r5, r5, #6 - ldr r0, [r4, #8] - ldr r1, [r4, #4] - adds r2, r5, #0 - bl sub_0801D66C - ldr r0, [r4, #4] - adds r0, r0, r5 - str r0, [r4, #4] - b _0805F670 -_0805F660: - ldrb r0, [r6, #1] - cmp r0, #0xa - bne _0805F670 - ldrb r1, [r4, #0x16] - lsls r1, r1, #6 - ldr r0, [r4] - adds r0, r0, r1 - str r0, [r4] -_0805F670: - ldrb r1, [r6, #1] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0805F67C -sub_0805F67C: @ 0x0805F67C - push {r4, lr} - adds r3, r0, #0 - subs r2, #1 - movs r0, #1 - rsbs r0, r0, #0 - cmp r2, r0 - beq _0805F6A0 - adds r4, r0, #0 -_0805F68C: - strh r1, [r3] - adds r1, #1 - adds r0, r3, #0 - adds r0, #0x40 - strh r1, [r0] - adds r1, #1 - adds r3, #2 - subs r2, #1 - cmp r2, r4 - bne _0805F68C -_0805F6A0: - adds r0, r1, #0 - pop {r4, pc} - - thumb_func_start sub_0805F6A4 -sub_0805F6A4: @ 0x0805F6A4 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r6, #0 -_0805F6AC: - adds r0, r5, #0 - bl sub_0805EFE8 - movs r7, #1 - cmp r0, #0xe - bhi _0805F746 - lsls r0, r0, #2 - ldr r1, _0805F6C4 @ =_0805F6C8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0805F6C4: .4byte _0805F6C8 -_0805F6C8: @ jump table - .4byte _0805F768 @ case 0 - .4byte _0805F768 @ case 1 - .4byte _0805F764 @ case 2 - .4byte _0805F764 @ case 3 - .4byte _0805F764 @ case 4 - .4byte _0805F764 @ case 5 - .4byte _0805F764 @ case 6 - .4byte _0805F704 @ case 7 - .4byte _0805F764 @ case 8 - .4byte _0805F764 @ case 9 - .4byte _0805F764 @ case 10 - .4byte _0805F740 @ case 11 - .4byte _0805F70E @ case 12 - .4byte _0805F764 @ case 13 - .4byte _0805F764 @ case 14 -_0805F704: - ldrh r0, [r5, #2] - cmp r0, #0xd - bhi _0805F764 - strb r0, [r4, #2] - b _0805F764 -_0805F70E: - ldr r3, _0805F73C @ =gUnk_02034330 - movs r2, #2 - ldrsb r2, [r3, r2] - cmp r2, #3 - bhi _0805F732 - adds r0, r2, #1 - strb r0, [r3, #2] - lsls r2, r2, #1 - adds r0, r3, #0 - adds r0, #0x10 - adds r0, r2, r0 - ldrh r1, [r5, #6] - strh r1, [r0] - adds r0, r3, #0 - adds r0, #8 - adds r2, r2, r0 - ldrh r0, [r4, #6] - strh r0, [r2] -_0805F732: - ldrh r0, [r4, #6] - adds r0, #8 - strh r0, [r4, #6] - adds r6, #8 - b _0805F764 - .align 2, 0 -_0805F73C: .4byte gUnk_02034330 -_0805F740: - ldrh r0, [r5, #2] - strb r0, [r4, #1] - b _0805F764 -_0805F746: - adds r1, r4, #0 - bl sub_0805F7DC - adds r6, r6, r0 - ldrb r1, [r5] - movs r0, #0x60 - ands r0, r1 - cmp r0, #0x20 - bne _0805F764 - ldrh r0, [r4, #6] - cmp r0, #1 - bls _0805F764 - subs r6, #1 - subs r0, #1 - strh r0, [r4, #6] -_0805F764: - cmp r7, #0 - bne _0805F6AC -_0805F768: - adds r0, r6, #0 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805F76C -sub_0805F76C: @ 0x0805F76C - push {r4, lr} - sub sp, #0x30 - adds r2, r0, #0 - adds r4, r1, #0 - mov r0, sp - adds r1, r2, #0 - bl sub_0805F440 - mov r3, sp - ldrb r0, [r4] - lsrs r0, r0, #4 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #5 - ldrb r2, [r3] - movs r0, #0x61 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - mov r0, sp - adds r1, r4, #0 - bl sub_0805F6A4 - add sp, #0x30 - pop {r4, pc} - - thumb_func_start sub_0805F7A0 -sub_0805F7A0: @ 0x0805F7A0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0xf - movs r2, #0 - b _0805F7B4 -_0805F7AA: - lsls r1, r1, #4 - adds r2, #1 - cmp r2, #7 - bhi _0805F7BA - adds r0, r4, #0 -_0805F7B4: - ands r0, r1 - cmp r1, r0 - beq _0805F7AA -_0805F7BA: - adds r3, r2, #0 - cmp r3, #7 - bhi _0805F7D2 - b _0805F7CA -_0805F7C2: - lsls r1, r1, #4 - adds r2, #1 - cmp r2, #7 - bhi _0805F7D2 -_0805F7CA: - adds r0, r4, #0 - ands r0, r1 - cmp r1, r0 - bne _0805F7C2 -_0805F7D2: - subs r2, r2, r3 - lsls r0, r2, #8 - orrs r0, r3 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805F7DC -sub_0805F7DC: @ 0x0805F7DC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r4, r1, #0 - ldrh r0, [r4, #4] - ldrh r1, [r4, #6] - cmp r0, r1 - bhi _0805F7EE - movs r0, #0 - b _0805F81E -_0805F7EE: - adds r0, r6, #0 - bl sub_0805F25C - adds r5, r0, #0 - ldrh r7, [r4, #6] - lsrs r0, r6, #8 - cmp r0, #4 - bls _0805F808 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805F820 - adds r5, #0x40 -_0805F808: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0805F820 - ldrh r1, [r4, #4] - ldrh r0, [r4, #6] - cmp r0, r1 - bls _0805F81A - strh r1, [r4, #6] -_0805F81A: - ldrh r0, [r4, #6] - subs r0, r0, r7 -_0805F81E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805F820 -sub_0805F820: @ 0x0805F820 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - adds r4, r1, #0 - ldrh r0, [r7, #4] - ldrh r1, [r7, #6] - subs r0, r0, r1 - cmp r0, #0 - ble _0805F8DC - ldr r1, _0805F854 @ =gUnk_02036A58 - adds r0, r4, #0 - bl sub_08002724 - ldrb r0, [r7, #1] - cmp r0, #0 - bne _0805F858 - ldr r0, [r4] - bl sub_0805F7A0 - movs r1, #0xf - ands r1, r0 - lsrs r4, r0, #8 - b _0805F85C - .align 2, 0 -_0805F854: .4byte gUnk_02036A58 -_0805F858: - movs r1, #0 - movs r4, #8 -_0805F85C: - ldrh r0, [r7, #4] - ldrh r3, [r7, #6] - subs r0, r0, r3 - cmp r0, #8 - ble _0805F868 - movs r0, #8 -_0805F868: - cmp r0, r4 - bge _0805F86E - adds r4, r0, #0 -_0805F86E: - ldr r0, _0805F8BC @ =gUnk_02036A58 - adds r6, r1, r0 - ldr r0, [r7, #8] - mov sb, r0 - ldrb r0, [r7, #3] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #6 - ldrb r0, [r7, #2] - lsls r0, r0, #5 - ldr r1, _0805F8C0 @ =gUnk_0810942E - adds r0, r0, r1 - adds r2, r2, r0 - mov r8, r2 - adds r5, r3, #0 - adds r0, r5, r4 - strh r0, [r7, #6] - ldrb r0, [r7] - lsrs r0, r0, #4 - cmp r0, #1 - beq _0805F8D4 - adds r0, r4, #0 - subs r4, #1 - cmp r0, #0 - ble _0805F8DC -_0805F8A0: - adds r0, r6, #0 - mov r1, sb - mov r2, r8 - adds r3, r5, #0 - bl sub_080026C4 - adds r6, #1 - adds r5, #1 - adds r0, r4, #0 - subs r4, #1 - cmp r0, #0 - bgt _0805F8A0 - b _0805F8DC - .align 2, 0 -_0805F8BC: .4byte gUnk_02036A58 -_0805F8C0: .4byte gUnk_0810942E -_0805F8C4: - adds r0, r6, #0 - mov r1, sb - mov r2, r8 - adds r3, r5, #0 - bl sub_080026F2 - adds r6, #1 - adds r5, #1 -_0805F8D4: - adds r0, r4, #0 - subs r4, #1 - cmp r0, #0 - bgt _0805F8C4 -_0805F8DC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0805F8E4 -sub_0805F8E4: @ 0x0805F8E4 - push {r4, r5, lr} - adds r4, r1, #0 - ldrb r5, [r4, #1] - movs r1, #1 - strb r1, [r4, #1] - adds r1, r4, #0 - bl sub_0805F7DC - strb r5, [r4, #1] - pop {r4, r5, pc} - - thumb_func_start sub_0805F8F8 -sub_0805F8F8: @ 0x0805F8F8 - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #6 - ldr r0, _0805F910 @ =gUnk_081094CE - adds r1, r1, r0 - ldr r2, _0805F914 @ =gUnk_0810926C - ldrb r0, [r1, #0xa] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - bx lr - .align 2, 0 -_0805F910: .4byte gUnk_081094CE -_0805F914: .4byte gUnk_0810926C - - thumb_func_start sub_0805F918 -sub_0805F918: @ 0x0805F918 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r4, r0, #0 - adds r5, r1, #0 - mov sl, r2 - adds r0, r5, #0 - bl sub_0805F8F8 - ldr r1, _0805F990 @ =gUnk_02036AD8 - movs r2, #0xe0 - bl sub_0801D610 - ldr r0, _0805F994 @ =gUnk_081092AC - lsls r4, r4, #2 - adds r4, r4, r0 - ldr r4, [r4] - mov r8, r4 - lsls r0, r5, #1 - adds r0, r0, r5 - lsls r0, r0, #6 - ldr r1, _0805F998 @ =gUnk_081094CE - adds r0, r0, r1 - mov sb, r0 - movs r7, #0 - movs r6, #0 -_0805F950: - ldr r4, _0805F99C @ =gUnk_02036A58 - mov r0, r8 - adds r1, r4, #0 - bl sub_08002724 - movs r0, #0x40 - add r8, r0 - movs r5, #0 - adds r6, #1 -_0805F962: - adds r0, r4, #0 - ldr r1, _0805F990 @ =gUnk_02036AD8 - mov r2, sb - adds r3, r7, #0 - bl sub_080026C4 - adds r4, #1 - adds r7, #1 - adds r5, #1 - cmp r5, #7 - bls _0805F962 - cmp r6, #2 - bls _0805F950 - ldr r0, _0805F990 @ =gUnk_02036AD8 - mov r1, sl - movs r2, #0xe0 - bl sub_08000E96 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805F990: .4byte gUnk_02036AD8 -_0805F994: .4byte gUnk_081092AC -_0805F998: .4byte gUnk_081094CE -_0805F99C: .4byte gUnk_02036A58 - - thumb_func_start sub_0805F9A0 -sub_0805F9A0: @ 0x0805F9A0 - push {lr} - adds r2, r0, #0 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - cmp r0, #0 - bne _0805F9D0 - ldr r1, _0805F9C4 @ =gUnk_081092D4 - movs r3, #0 -_0805F9B2: - ldrh r0, [r1] - cmp r0, r2 - beq _0805F9C8 - adds r3, #1 - adds r1, #2 - ldrh r0, [r1] - cmp r0, #0 - bne _0805F9B2 - b _0805F9D8 - .align 2, 0 -_0805F9C4: .4byte gUnk_081092D4 -_0805F9C8: - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r3, r1 - b _0805F9E2 -_0805F9D0: - ldr r0, _0805F9E4 @ =0x0000031A - cmp r2, r0 - bne _0805F9D8 - movs r2, #1 -_0805F9D8: - movs r0, #0xff - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r0, r1 -_0805F9E2: - pop {pc} - .align 2, 0 -_0805F9E4: .4byte 0x0000031A - - thumb_func_start sub_0805F9E8 -sub_0805F9E8: @ 0x0805F9E8 - push {lr} - ldr r1, _0805F9FC @ =gUnk_08109A30 - ldr r0, _0805FA00 @ =gUnk_03001000 - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {pc} - .align 2, 0 -_0805F9FC: .4byte gUnk_08109A30 -_0805FA00: .4byte gUnk_03001000 - - thumb_func_start sub_0805FA04 -sub_0805FA04: @ 0x0805FA04 - push {r4, r5, lr} - movs r0, #1 - bl sub_0801DA90 - ldr r0, _0805FA78 @ =gUnk_02034CB0 - movs r1, #0x80 - lsls r1, r1, #4 - bl sub_0801D630 - ldr r0, _0805FA7C @ =gUnk_02001A40 - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_0801D630 - ldr r0, _0805FA80 @ =gUnk_03000F50 - movs r2, #0 - movs r1, #0x94 - lsls r1, r1, #4 - strh r1, [r0] - strh r2, [r0, #0xa] - strh r2, [r0, #0xc] - strh r2, [r0, #0x2e] - strh r2, [r0, #0x30] - ldr r1, _0805FA84 @ =0x00001E0F - strh r1, [r0, #0x2c] - movs r5, #1 - movs r1, #1 - strh r1, [r0, #0x32] - bl sub_08056418 - ldr r0, _0805FA88 @ =gUnk_02032EC0 - movs r1, #0xed - lsls r1, r1, #2 - bl sub_0801D630 - ldr r4, _0805FA8C @ =gUnk_02000080 - adds r0, r4, #0 - movs r1, #0x30 - bl sub_0801D630 - movs r0, #0x80 - lsls r0, r0, #0x12 - ldrb r0, [r0, #7] - strb r0, [r4, #0x16] - bl sub_08053320 - ldr r1, _0805FA90 @ =0x00001144 - movs r0, #0 - bl sub_0801D79C - ldr r0, _0805FA94 @ =gUnk_03001000 - strb r5, [r0, #3] - bl sub_080A3210 - bl sub_08050008 - pop {r4, r5, pc} - .align 2, 0 -_0805FA78: .4byte gUnk_02034CB0 -_0805FA7C: .4byte gUnk_02001A40 -_0805FA80: .4byte gUnk_03000F50 -_0805FA84: .4byte 0x00001E0F -_0805FA88: .4byte gUnk_02032EC0 -_0805FA8C: .4byte gUnk_02000080 -_0805FA90: .4byte 0x00001144 -_0805FA94: .4byte gUnk_03001000 - - thumb_func_start sub_0805FA98 -sub_0805FA98: @ 0x0805FA98 - push {r4, lr} - ldr r0, _0805FAB4 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - adds r2, r0, #0 - cmp r1, #0x80 - beq _0805FAD8 - cmp r1, #0x80 - bgt _0805FAB8 - cmp r1, #2 - beq _0805FB44 - cmp r1, #0x40 - beq _0805FACA - b _0805FB4A - .align 2, 0 -_0805FAB4: .4byte gUnk_03000FF0 -_0805FAB8: - movs r0, #0x80 - lsls r0, r0, #1 - cmp r1, r0 - beq _0805FB28 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r1, r0 - beq _0805FAE8 - b _0805FB4A -_0805FACA: - ldr r1, _0805FAD4 @ =gUnk_02000080 - ldrb r0, [r1, #0x11] - subs r0, #1 - strb r0, [r1, #0x11] - b _0805FBA4 - .align 2, 0 -_0805FAD4: .4byte gUnk_02000080 -_0805FAD8: - ldr r1, _0805FAE4 @ =gUnk_02000080 - ldrb r0, [r1, #0x11] - adds r0, #1 - strb r0, [r1, #0x11] - b _0805FBA4 - .align 2, 0 -_0805FAE4: .4byte gUnk_02000080 -_0805FAE8: - ldr r0, _0805FB04 @ =gUnk_02000080 - ldrb r1, [r0, #0x10] - movs r2, #1 - eors r1, r2 - strb r1, [r0, #0x10] - cmp r1, #0 - bne _0805FB10 - ldr r0, _0805FB08 @ =gUnk_03000F50 - ldr r1, _0805FB0C @ =0x00001F0C - strh r1, [r0, #8] - subs r1, #0xfd - strh r1, [r0, #0x2c] - b _0805FBA4 - .align 2, 0 -_0805FB04: .4byte gUnk_02000080 -_0805FB08: .4byte gUnk_03000F50 -_0805FB0C: .4byte 0x00001F0C -_0805FB10: - ldr r0, _0805FB1C @ =gUnk_03000F50 - ldr r1, _0805FB20 @ =0x00001F0F - strh r1, [r0, #8] - ldr r1, _0805FB24 @ =0x00001E0C - strh r1, [r0, #0x2c] - b _0805FBA4 - .align 2, 0 -_0805FB1C: .4byte gUnk_03000F50 -_0805FB20: .4byte 0x00001F0F -_0805FB24: .4byte 0x00001E0C -_0805FB28: - movs r2, #0x80 - lsls r2, r2, #0x12 - ldr r1, _0805FB40 @ =gUnk_02000080 - ldrb r0, [r1, #0x16] - strb r0, [r2, #7] - ldrb r0, [r1, #0x14] - lsls r0, r0, #8 - ldrb r1, [r1, #0x15] - adds r0, r0, r1 - bl sub_08056378 - b _0805FBA4 - .align 2, 0 -_0805FB40: .4byte gUnk_02000080 -_0805FB44: - bl sub_08056418 - b _0805FBA4 -_0805FB4A: - ldrh r0, [r2, #4] - cmp r0, #0x10 - beq _0805FB5A - cmp r0, #0x20 - bne _0805FB5E - movs r1, #1 - rsbs r1, r1, #0 - b _0805FB60 -_0805FB5A: - movs r1, #1 - b _0805FB60 -_0805FB5E: - movs r1, #0 -_0805FB60: - ldr r4, _0805FB74 @ =gUnk_02000080 - ldrb r0, [r4, #0x11] - cmp r0, #1 - beq _0805FB8E - cmp r0, #1 - bgt _0805FB78 - cmp r0, #0 - beq _0805FB7E - b _0805FBA4 - .align 2, 0 -_0805FB74: .4byte gUnk_02000080 -_0805FB78: - cmp r0, #2 - beq _0805FB96 - b _0805FBA4 -_0805FB7E: - ldrb r0, [r4, #0x14] - adds r0, r0, r1 - adds r0, #0x50 - movs r1, #0x50 - bl __modsi3 - strb r0, [r4, #0x14] - b _0805FBA4 -_0805FB8E: - ldrb r0, [r4, #0x15] - adds r0, r0, r1 - strb r0, [r4, #0x15] - b _0805FBA4 -_0805FB96: - ldrb r0, [r4, #0x16] - adds r0, r0, r1 - adds r0, #7 - movs r1, #7 - bl __modsi3 - strb r0, [r4, #0x16] -_0805FBA4: - ldr r4, _0805FBBC @ =gUnk_02000080 - ldrb r0, [r4, #0x11] - adds r0, #3 - movs r1, #3 - bl __modsi3 - strb r0, [r4, #0x11] - ldr r1, _0805FBC0 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0x32] - pop {r4, pc} - .align 2, 0 -_0805FBBC: .4byte gUnk_02000080 -_0805FBC0: .4byte gUnk_03000F50 - - thumb_func_start sub_0805FBC4 -sub_0805FBC4: @ 0x0805FBC4 - push {lr} - movs r0, #0 - bl sub_08056010 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0805FBD0 -sub_0805FBD0: @ 0x0805FBD0 - push {lr} - ldr r2, _0805FBE4 @ =gUnk_08109AC8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805FBE4: .4byte gUnk_08109AC8 - - thumb_func_start sub_0805FBE8 -sub_0805FBE8: @ 0x0805FBE8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0805FC68 @ =gLinkEntity - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA24 - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - 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 r4, #0x3c - ldrb r0, [r4] - adds r0, #1 - adds r1, r5, #0 - adds r1, #0x3c - strb r0, [r1] - ldr r0, _0805FC6C @ =gUnk_08109AD0 - str r0, [r5, #0x48] - movs r0, #0xe0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - ldrb r1, [r5, #0x14] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _0805FC36 - movs r0, #1 - strb r0, [r5, #0xb] -_0805FC36: - ldrb r1, [r5, #0x14] - lsls r0, r1, #2 - strb r0, [r5, #0x15] - movs r0, #0x3c - str r0, [r5, #0x6c] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x19 - adds r1, #0xc - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0801766C - adds r0, r5, #0 - bl sub_0806F69C - adds r0, r5, #0 - bl sub_0805FC74 - ldr r0, _0805FC70 @ =0x0000013F - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_0805FC68: .4byte gLinkEntity -_0805FC6C: .4byte gUnk_08109AD0 -_0805FC70: .4byte 0x0000013F - - thumb_func_start sub_0805FC74 -sub_0805FC74: @ 0x0805FC74 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x6c] - subs r0, #1 - str r0, [r4, #0x6c] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0805FD1C - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xb] - cmp r0, #0 - bne _0805FCA4 - adds r0, r4, #0 - bl sub_0800451C -_0805FCA4: - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0805FD10 @ =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 - ldr r1, _0805FD14 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _0805FCF6 - ldr r1, _0805FD18 @ =gUnk_08003E44 - movs r0, #0x2e - ldrsh r2, [r4, r0] - movs r5, #0x32 - ldrsh r3, [r4, r5] - adds r0, r4, #0 - bl sub_080040D8 - cmp r0, #0 - beq _0805FCF6 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFX - bl sub_0805E780 -_0805FCF6: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _0805FD20 - adds r0, r4, #0 - movs r1, #0x19 - movs r2, #0 - bl CreateFX - bl sub_0805E780 - b _0805FD20 - .align 2, 0 -_0805FD10: .4byte gUnk_03000BF0 -_0805FD14: .4byte gLinkEntity -_0805FD18: .4byte gUnk_08003E44 -_0805FD1C: - bl sub_0805E780 -_0805FD20: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0805FD24 -sub_0805FD24: @ 0x0805FD24 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0805FD72 - cmp r0, #1 - bgt _0805FD38 - cmp r0, #0 - beq _0805FD3E - b _0805FDBC -_0805FD38: - cmp r0, #2 - beq _0805FDAE - b _0805FDBC -_0805FD3E: - 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 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - b _0805FDBC -_0805FD72: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0805FDA4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0805FDA0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0805FDBC - .align 2, 0 -_0805FDA0: .4byte gLinkEntity -_0805FDA4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0805FDBC -_0805FDAE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0805FDBC - movs r0, #1 - strb r0, [r4, #0xc] -_0805FDBC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805FDC0 -sub_0805FDC0: @ 0x0805FDC0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805FDEE - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0xa - bl sub_080042AC - b _0805FDF4 -_0805FDEE: - adds r0, r4, #0 - bl sub_080042B8 -_0805FDF4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805FDF8 -sub_0805FDF8: @ 0x0805FDF8 - push {lr} - ldr r2, _0805FE0C @ =gUnk_08109BBC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0805FE0C: .4byte gUnk_08109BBC - - thumb_func_start sub_0805FE10 -sub_0805FE10: @ 0x0805FE10 - 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 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_0805FE48 -sub_0805FE48: @ 0x0805FE48 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r2, r5, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0805FE80 - movs r0, #0 - strb r1, [r5, #0xc] - strb r0, [r2] - ldr r1, _0805FE7C @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_080042AC - adds r0, r5, #0 - bl sub_0806F118 - b _0805FF14 - .align 2, 0 -_0805FE7C: .4byte gLinkEntity -_0805FE80: - adds r4, r5, #0 - adds r4, #0x84 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_0807DF74 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_0805FF2C - adds r0, r5, #0 - adds r0, #0x80 - ldrh r3, [r0] - adds r7, r0, #0 - adds r6, r5, #0 - adds r6, #0x82 - cmp r3, #7 - bhi _0805FEC6 - ldrh r1, [r6] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0805FEBA - movs r1, #0xfc - ands r1, r3 - ldrb r0, [r5, #0xf] - lsrs r0, r0, #1 - adds r3, r1, r0 - b _0805FEC6 -_0805FEBA: - movs r0, #0xfc - ands r0, r3 - ldrb r2, [r5, #0x14] - lsrs r1, r2, #1 - adds r3, r0, r1 - strb r2, [r5, #0xf] -_0805FEC6: - adds r4, r5, #0 - adds r4, #0x58 - ldrb r0, [r4] - cmp r3, r0 - beq _0805FED8 - adds r0, r5, #0 - adds r1, r3, #0 - bl sub_080042AC -_0805FED8: - adds r0, r5, #0 - bl sub_080042B8 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0805FF02 - ldrb r0, [r4] - cmp r0, #8 - beq _0805FEFE - cmp r0, #8 - blt _0805FF02 - cmp r0, #0xc - bgt _0805FF02 - cmp r0, #0xa - blt _0805FF02 -_0805FEFE: - movs r0, #0 - strh r0, [r7] -_0805FF02: - ldrh r1, [r6] - mvns r0, r1 - adds r0, #1 - ands r1, r0 - cmp r1, #2 - bne _0805FF14 - adds r0, r5, #0 - bl sub_0806ED78 -_0805FF14: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0805FF18 -sub_0805FF18: @ 0x0805FF18 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0805FF28 - movs r0, #1 - strb r0, [r4, #0xc] -_0805FF28: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805FF2C -sub_0805FF2C: @ 0x0805FF2C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r0, [r5, #8] - ldr r1, _0805FF60 @ =0xFFF00004 - ands r1, r0 - eors r0, r1 - str r0, [r5, #8] - cmp r1, #0 - beq _0805FF94 - movs r6, #0x80 - lsls r6, r6, #0xd - adds r3, r4, #0 - adds r3, #0x80 -_0805FF48: - mvns r0, r1 - adds r2, r0, #1 - ands r2, r1 - eors r1, r2 - cmp r2, r6 - beq _0805FF8C - cmp r2, r6 - bhi _0805FF64 - cmp r2, #4 - beq _0805FF76 - b _0805FF90 - .align 2, 0 -_0805FF60: .4byte 0xFFF00004 -_0805FF64: - movs r0, #0x80 - lsls r0, r0, #0xe - cmp r2, r0 - beq _0805FF7A - movs r0, #0x80 - lsls r0, r0, #0xf - cmp r2, r0 - beq _0805FF7E - b _0805FF90 -_0805FF76: - movs r0, #9 - b _0805FF8E -_0805FF7A: - movs r0, #0xa - b _0805FF8E -_0805FF7E: - ldrb r0, [r4, #0x14] - cmp r0, #2 - bne _0805FF88 - movs r0, #0xb - b _0805FF8E -_0805FF88: - movs r0, #0xc - b _0805FF8E -_0805FF8C: - movs r0, #8 -_0805FF8E: - strh r0, [r3] -_0805FF90: - cmp r1, #0 - bne _0805FF48 -_0805FF94: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DB98 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0805FFA0 -sub_0805FFA0: @ 0x0805FFA0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0805FFCE - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - b _0805FFD4 -_0805FFCE: - adds r0, r4, #0 - bl sub_080042B8 -_0805FFD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0805FFD8 -sub_0805FFD8: @ 0x0805FFD8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _08060044 - cmp r5, #1 - bgt _0805FFEC - cmp r5, #0 - beq _0805FFF2 - b _0806008C -_0805FFEC: - cmp r5, #2 - beq _0806007E - b _0806008C -_0805FFF2: - ldr r1, _0806003C @ =gUnk_0810A348 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806008C - 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 r0, [r4, #0xe] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - strb r5, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - ldr r1, _08060040 @ =gUnk_08109D18 - ldrb r0, [r4, #0xb] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0807DAD0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806008C - .align 2, 0 -_0806003C: .4byte gUnk_0810A348 -_08060040: .4byte gUnk_08109D18 -_08060044: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806005E - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - b _0806008C -_0806005E: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - cmp r0, #0xf0 - beq _0806008C - adds r0, r4, #0 - bl sub_080600F0 - b _0806008C -_0806007E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806008C - movs r0, #1 - strb r0, [r4, #0xc] -_0806008C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08060090 -sub_08060090: @ 0x08060090 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_080600A8 -sub_080600A8: @ 0x080600A8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - cmp r2, #0xff - beq _080600BA - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 -_080600BA: - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _080600CA - movs r2, #0xff -_080600CA: - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080600F0 -sub_080600F0: @ 0x080600F0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x80 - ldrh r3, [r0] - cmp r3, #7 - bhi _08060120 - adds r0, #2 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08060114 - movs r1, #0xfc - ands r1, r3 - ldrb r0, [r4, #0xf] - lsrs r0, r0, #1 - adds r3, r1, r0 - b _08060120 -_08060114: - movs r0, #0xfc - ands r0, r3 - ldrb r2, [r4, #0x14] - lsrs r1, r2, #1 - adds r3, r0, r1 - strb r2, [r4, #0xf] -_08060120: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r3, r0 - beq _08060132 - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_080042AC -_08060132: - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - movs r1, #1 - cmp r0, #0 - beq _08060144 - movs r1, #2 -_08060144: - adds r0, r4, #0 - bl sub_080042BA - pop {r4, pc} - - thumb_func_start sub_0806014C -sub_0806014C: @ 0x0806014C - push {lr} - movs r1, #0 - strb r1, [r0, #0xe] - bl sub_08060158 - pop {pc} - - thumb_func_start sub_08060158 -sub_08060158: @ 0x08060158 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r7, r0, #0 - cmp r7, #0 - beq _0806016A - subs r0, #1 - strb r0, [r4, #0xe] - b _080601CC -_0806016A: - movs r0, #2 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806EDD8 - adds r3, r0, #0 - cmp r3, #0 - bge _08060188 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - strb r0, [r4, #0x14] - lsls r3, r0, #2 -_08060188: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #5 - asrs r1, r3, #1 - lsls r1, r1, #1 - ldr r2, _080601D0 @ =gUnk_08109C98 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r5, [r0, #1] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _080601AC - adds r0, r3, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] -_080601AC: - movs r0, #0x7f - ands r5, r0 - adds r0, r4, #0 - adds r0, #0x5a - strb r6, [r0] - strb r5, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x5b - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x58 - strb r7, [r0] - subs r1, #2 - movs r0, #0xf0 - strb r0, [r1] -_080601CC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080601D0: .4byte gUnk_08109C98 - - thumb_func_start sub_080601D4 -sub_080601D4: @ 0x080601D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #4 - bl GetProgressFlag - cmp r0, #0 - bne _080601E6 - movs r1, #2 - b _080601F2 -_080601E6: - movs r0, #0x17 - bl sub_0801E7F4 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f -_080601F2: - ldr r0, _08060204 @ =gUnk_0810A354 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_08060204: .4byte gUnk_0810A354 - - thumb_func_start sub_08060208 -sub_08060208: @ 0x08060208 - push {lr} - ldrb r1, [r0, #0xb] - lsls r1, r1, #5 - ldr r2, _08060218 @ =gUnk_08109DC8 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08060218: .4byte gUnk_08109DC8 - - thumb_func_start sub_0806021C -sub_0806021C: @ 0x0806021C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x5b - bl sub_0807CA84 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x40 - bl sub_0807CA84 - cmp r0, #0 - beq _08060238 - movs r4, #2 -_08060238: - movs r0, #0x13 - bl sub_0807CA84 - cmp r0, #0 - beq _08060244 - movs r4, #3 -_08060244: - ldrb r1, [r5, #0xb] - lsls r1, r1, #5 - lsls r0, r4, #3 - ldr r2, _08060258 @ =gUnk_08109DC8 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_0806F1AC - pop {r4, r5, pc} - .align 2, 0 -_08060258: .4byte gUnk_08109DC8 - - thumb_func_start sub_0806025C -sub_0806025C: @ 0x0806025C - push {lr} - ldrb r1, [r0, #0xb] - lsls r1, r1, #5 - ldr r2, _0806026C @ =gUnk_08109DC8 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806026C: .4byte gUnk_08109DC8 - - thumb_func_start sub_08060270 -sub_08060270: @ 0x08060270 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _08060294 - movs r4, #1 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - bne _080602A8 - movs r4, #0 - movs r0, #0x29 - bl sub_0807CD04 - b _080602A8 -_08060294: - movs r4, #3 - movs r0, #0x76 - bl sub_0807CBD0 - cmp r0, #0 - bne _080602A8 - movs r4, #2 - movs r0, #0x76 - bl sub_0807CCB4 -_080602A8: - ldr r0, _080602B8 @ =gUnk_0810A35A - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_080602B8: .4byte gUnk_0810A35A - - thumb_func_start sub_080602BC -sub_080602BC: @ 0x080602BC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x48 - bl sub_0807CA84 - cmp r0, #0 - beq _080602D6 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - adds r2, r1, #2 - b _080602F0 -_080602D6: - ldr r0, _08060300 @ =gUnk_02002A40 - adds r2, r0, #0 - adds r2, #0xac - ldr r1, _08060304 @ =gUnk_080FD5A0 - adds r0, #0xae - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r2] - movs r2, #0 - ldrb r0, [r0] - cmp r1, r0 - bhs _080602F0 - movs r2, #1 -_080602F0: - ldr r0, _08060308 @ =gUnk_0810A362 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_08060300: .4byte gUnk_02002A40 -_08060304: .4byte gUnk_080FD5A0 -_08060308: .4byte gUnk_0810A362 - - thumb_func_start sub_0806030C -sub_0806030C: @ 0x0806030C - push {lr} - ldr r0, [r1, #4] - bl sub_080542F4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08060318 -sub_08060318: @ 0x08060318 - push {r4, r5, lr} - movs r5, #2 -_0806031C: - movs r0, #8 - movs r1, #2 - movs r2, #2 - bl sub_0805EB00 - adds r4, r0, #0 - cmp r4, #0 - beq _08060336 - bl sub_080A29BC - adds r0, r4, #0 - bl sub_0805E7BC -_08060336: - subs r5, #1 - cmp r5, #0 - bge _0806031C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08060340 -sub_08060340: @ 0x08060340 - ldr r0, _08060350 @ =gUnk_02002A40 - movs r2, #0x92 - lsls r2, r2, #3 - adds r1, r0, r2 - ldr r0, [r0, #0x50] - str r0, [r1] - bx lr - .align 2, 0 -_08060350: .4byte gUnk_02002A40 - - thumb_func_start sub_08060354 -sub_08060354: @ 0x08060354 - push {r4, lr} - ldr r0, _08060378 @ =gUnk_02002A40 - movs r2, #0x92 - lsls r2, r2, #3 - adds r1, r0, r2 - ldr r2, [r0, #0x50] - ldr r0, [r1] - subs r4, r2, r0 - movs r0, #0x3b - bl GetProgressFlag - cmp r0, #0 - bne _08060380 - cmp r4, #4 - ble _080603B0 - ldr r0, _0806037C @ =0x00008444 - b _080603B2 - .align 2, 0 -_08060378: .4byte gUnk_02002A40 -_0806037C: .4byte 0x00008444 -_08060380: - movs r0, #0x3c - bl GetProgressFlag - cmp r0, #0 - bne _08060398 - cmp r4, #9 - ble _080603B0 - ldr r0, _08060394 @ =0x00008444 - b _080603B2 - .align 2, 0 -_08060394: .4byte 0x00008444 -_08060398: - movs r0, #0x3d - bl GetProgressFlag - cmp r0, #0 - bne _080603B0 - cmp r4, #0xe - ble _080603B0 - ldr r0, _080603AC @ =0x00008444 - b _080603B2 - .align 2, 0 -_080603AC: .4byte 0x00008444 -_080603B0: - movs r0, #0 -_080603B2: - pop {r4, pc} - - thumb_func_start sub_080603B4 -sub_080603B4: @ 0x080603B4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080603F4 - ldr r1, _080603F0 @ =gUnk_0810A348 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080603FA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #6 - bl sub_08004260 - b _080603FA - .align 2, 0 -_080603F0: .4byte gUnk_0810A348 -_080603F4: - adds r0, r4, #0 - bl sub_08004274 -_080603FA: - pop {r4, pc} - - thumb_func_start sub_080603FC -sub_080603FC: @ 0x080603FC - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08060412 - adds r0, r2, #0 - bl sub_08060528 - b _08060422 -_08060412: - ldr r0, _08060424 @ =gUnk_0810AA24 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08060422: - pop {pc} - .align 2, 0 -_08060424: .4byte gUnk_0810AA24 - - thumb_func_start sub_08060428 -sub_08060428: @ 0x08060428 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x5a - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xb] - cmp r0, #0 - beq _08060444 - bl sub_0804B128 - adds r1, r0, #0 - b _08060446 -_08060444: - movs r1, #0 -_08060446: - adds r0, r4, #0 - movs r2, #0 - bl sub_0806EE04 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_0806045C -sub_0806045C: @ 0x0806045C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080604DC - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bgt _08060488 - cmp r0, #1 - blt _08060488 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0 - bl sub_08056378 - b _080604C0 -_08060488: - adds r0, r4, #0 - adds r0, #0x3e - ldrb r1, [r0] - ldrb r0, [r4, #0x14] - cmp r1, r0 - beq _0806049E - strb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_0806049E: - adds r0, r4, #0 - movs r1, #0x18 - movs r2, #0x18 - bl sub_0806ED9C - movs r1, #0 - cmp r0, #0 - blt _080604B6 - ldrb r2, [r4, #0x14] - cmp r0, r2 - bne _080604B6 - movs r1, #1 -_080604B6: - cmp r1, #0 - bne _080604C0 - adds r0, r4, #0 - bl sub_0806EE20 -_080604C0: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - - thumb_func_start sub_080604C8 -sub_080604C8: @ 0x080604C8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080604DC - movs r0, #1 - strb r0, [r4, #0xc] - pop {r4, pc} - - thumb_func_start sub_080604DC -sub_080604DC: @ 0x080604DC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - lsrs r4, r0, #0x1e - cmp r4, #1 - bne _08060524 - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - beq _08060524 - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - ands r4, r1 - cmp r4, #0 - beq _08060524 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08060524 - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] - adds r0, r1, #0 - movs r1, #3 - bl sub_0805E3A0 -_08060524: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08060528 -sub_08060528: @ 0x08060528 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _08060582 - cmp r3, #1 - bgt _0806053C - cmp r3, #0 - beq _08060546 - b _080605EC -_0806053C: - cmp r3, #2 - beq _080605F6 - cmp r3, #3 - beq _08060618 - b _080605EC -_08060546: - 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 - adds r0, #0x68 - strb r3, [r0] - adds r0, #1 - strb r3, [r0] - adds r5, r4, #0 - adds r5, #0x6a - movs r0, #0 - strh r3, [r5] - adds r6, r4, #0 - adds r6, #0x6d - strb r0, [r6] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x6c - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - b _08060634 -_08060582: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _080605B8 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_0806F118 - ldr r1, _080605B4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - b _080605EC - .align 2, 0 -_080605B4: .4byte gLinkEntity -_080605B8: - cmp r0, #0 - beq _080605E4 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_080606D8 - ldr r1, _080605E0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - b _080605EC - .align 2, 0 -_080605E0: .4byte gLinkEntity -_080605E4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_080605EC: - adds r5, r4, #0 - adds r5, #0x6a - adds r6, r4, #0 - adds r6, #0x6d - b _08060634 -_080605F6: - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, _08060614 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - adds r5, r4, #0 - adds r5, #0x6a - adds r6, r4, #0 - adds r6, #0x6d - cmp r0, #0 - bne _08060634 - b _08060630 - .align 2, 0 -_08060614: .4byte gUnk_02000050 -_08060618: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F148 - adds r5, r4, #0 - adds r5, #0x6a - adds r6, r4, #0 - adds r6, #0x6d - cmp r0, #0 - beq _08060634 -_08060630: - movs r0, #1 - strb r0, [r4, #0xc] -_08060634: - adds r0, r4, #0 - bl sub_080604DC - adds r1, r5, #0 - ldrh r3, [r1] - movs r0, #0 - ldrsh r2, [r1, r0] - cmp r2, #0 - ble _08060670 - ldr r0, _08060668 @ =0x0000012B - cmp r2, r0 - ble _0806066C - movs r0, #0 - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #1 - strb r0, [r6] - adds r0, r4, #0 - bl sub_080788E0 - movs r0, #0x7c - bl sub_08004488 - b _08060670 - .align 2, 0 -_08060668: .4byte 0x0000012B -_0806066C: - subs r0, r3, #1 - strh r0, [r5] -_08060670: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r4, #0 - bl sub_08003FC4 - ldrb r0, [r6] - cmp r0, #0 - beq _08060694 - ldr r0, [r4, #0x20] - cmp r0, #0 - bne _08060694 - ldr r0, [r4, #0x34] - cmp r0, #0 - bne _08060694 - strb r0, [r6] - adds r0, r4, #0 - bl sub_080606C0 -_08060694: - ldr r0, [r4, #0x34] - cmp r0, #0 - blt _080606B4 - ldr r0, _080606BC @ =gLinkEntity - adds r0, #0x38 - ldrb r1, [r0] - cmp r1, #0 - beq _080606AE - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, r1 - bne _080606B4 -_080606AE: - adds r0, r4, #0 - bl sub_0806ED78 -_080606B4: - adds r0, r4, #0 - bl sub_0800451C - pop {r4, r5, r6, pc} - .align 2, 0 -_080606BC: .4byte gLinkEntity - - thumb_func_start sub_080606C0 -sub_080606C0: @ 0x080606C0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x6c - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_080606D8 -sub_080606D8: @ 0x080606D8 - push {lr} - adds r2, r0, #0 - ldr r0, _080606F8 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _080606E8 - movs r0, #0 -_080606E8: - lsls r1, r0, #3 - ldr r0, _080606FC @ =gUnk_0810AA30 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080606F8: .4byte gUnk_02002A40 -_080606FC: .4byte gUnk_0810AA30 - - thumb_func_start sub_08060700 -sub_08060700: @ 0x08060700 - push {r4, r5, lr} - ldr r3, _0806074C @ =gUnk_0810A918 - adds r2, r0, #0 - adds r2, #0x68 - ldrb r2, [r2] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - adds r3, r0, #0 - adds r3, #0x69 - ldrb r3, [r3] - lsls r3, r3, #0x18 - asrs r3, r3, #0x18 - adds r2, r2, r3 - movs r3, #0 - ldrsb r3, [r2, r3] - lsls r3, r3, #2 - ldr r2, _08060750 @ =gUnk_0810A66C - adds r3, r3, r2 - ldr r4, _08060754 @ =gUnk_03000BF0 - movs r5, #0 - ldrsh r2, [r3, r5] - ldrh r5, [r4, #6] - adds r2, r2, r5 - movs r5, #2 - ldrsh r3, [r3, r5] - ldrh r4, [r4, #8] - adds r3, r3, r4 - bl sub_0807DEDC - ldr r2, _08060758 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, pc} - .align 2, 0 -_0806074C: .4byte gUnk_0810A918 -_08060750: .4byte gUnk_0810A66C -_08060754: .4byte gUnk_03000BF0 -_08060758: .4byte gUnk_02033280 - - thumb_func_start sub_0806075C -sub_0806075C: @ 0x0806075C - adds r2, r0, #0 - adds r2, #0x68 - movs r1, #0xb - strb r1, [r2] - adds r0, #0x69 - movs r1, #0xff - strb r1, [r0] - bx lr - - thumb_func_start sub_0806076C -sub_0806076C: @ 0x0806076C - 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 - mov sb, r1 - ldr r0, [r7, #0x34] - cmp r0, #0 - bge _08060790 - ldr r1, _0806078C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] - b _080608D8 - .align 2, 0 -_0806078C: .4byte gUnk_02033280 -_08060790: - adds r4, r7, #0 - adds r4, #0x69 - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - adds r5, r7, #0 - adds r5, #0x38 - movs r0, #1 - strb r0, [r5] - adds r0, r7, #0 - bl sub_080606C0 - ldr r1, _080607DC @ =gUnk_0810A918 - adds r2, r7, #0 - adds r2, #0x68 - movs r0, #0 - ldrsb r0, [r2, r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r6, [r0] - movs r0, #0 - ldrsb r0, [r4, r0] - adds r6, r6, r0 - mov sl, r4 - mov r8, r2 -_080607C2: - ldrb r0, [r6] - adds r0, #5 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #5 - bls _080607D0 - b _080608D8 -_080607D0: - lsls r0, r0, #2 - ldr r1, _080607E0 @ =_080607E4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080607DC: .4byte gUnk_0810A918 -_080607E0: .4byte _080607E4 -_080607E4: @ jump table - .4byte _08060846 @ case 0 - .4byte _08060836 @ case 1 - .4byte _08060830 @ case 2 - .4byte _0806082A @ case 3 - .4byte _0806081E @ case 4 - .4byte _080607FC @ case 5 -_080607FC: - adds r6, #1 - movs r5, #0 - ldrsb r5, [r6, r5] - adds r6, #1 - bl sub_08000E50 - adds r1, r5, #0 - bl __modsi3 - adds r0, r6, r0 - ldrb r0, [r0] - movs r1, #0 - mov r2, r8 - strb r0, [r2] - mov r3, sl - strb r1, [r3] - b _080608D8 -_0806081E: - adds r1, r7, #0 - adds r1, #0x6a - movs r0, #0x96 - lsls r0, r0, #1 - strh r0, [r1] - b _080608CC -_0806082A: - movs r0, #1 - strb r0, [r5] - b _080608CC -_08060830: - movs r0, #2 - strb r0, [r5] - b _080608CC -_08060836: - movs r0, #0x1e - mov r4, sb - strh r0, [r4, #0x10] - ldrb r1, [r7, #0x18] - subs r0, #0x22 - ands r0, r1 - strb r0, [r7, #0x18] - b _080608CC -_08060846: - adds r6, #1 - movs r5, #0 - ldrsb r5, [r6, r5] - adds r6, #1 - bl sub_08000E50 - adds r1, r5, #0 - bl __modsi3 - str r0, [sp, #4] - movs r2, #0 - cmp r2, r5 - bhs _080608B8 - ldr r0, _080608C0 @ =gUnk_03000BF0 - mov sb, r0 -_08060864: - ldr r1, [sp, #4] - adds r0, r6, r1 - ldrb r0, [r0] - mov r3, r8 - strb r0, [r3] - movs r0, #0 - ldrsb r0, [r3, r0] - lsls r0, r0, #2 - ldr r4, _080608C4 @ =gUnk_0810A918 - adds r0, r0, r4 - ldr r0, [r0] - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _080608C8 @ =gUnk_0810A66C - adds r1, r1, r0 - ldrh r0, [r1] - mov r3, sb - ldrh r3, [r3, #6] - adds r0, r0, r3 - strh r0, [r7, #0x2e] - ldrh r0, [r1, #2] - mov r4, sb - ldrh r4, [r4, #8] - adds r0, r0, r4 - strh r0, [r7, #0x32] - adds r0, r7, #0 - str r2, [sp] - bl sub_080040A8 - cmp r0, #0 - beq _080608B8 - ldr r0, [sp, #4] - adds r0, #1 - adds r1, r5, #0 - bl __modsi3 - str r0, [sp, #4] - ldr r2, [sp] - adds r2, #1 - cmp r2, r5 - blo _08060864 -_080608B8: - movs r0, #0 - mov r1, sl - strb r0, [r1] - b _080608D8 - .align 2, 0 -_080608C0: .4byte gUnk_03000BF0 -_080608C4: .4byte gUnk_0810A918 -_080608C8: .4byte gUnk_0810A66C -_080608CC: - mov r2, sl - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - adds r6, #1 - b _080607C2 -_080608D8: - 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_080608E4 -sub_080608E4: @ 0x080608E4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [r5, #0x14] - ldr r0, [r4, #0x34] - cmp r0, #0 - blt _08060970 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - ldr r6, _08060974 @ =gLinkEntity - cmp r1, #1 - bne _0806090A - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - beq _08060970 -_0806090A: - cmp r1, #2 - bne _08060918 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - beq _08060970 -_08060918: - ldr r2, [r5, #4] - lsls r2, r2, #4 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - ldr r1, _08060978 @ =gUnk_0810AA70 - adds r0, r0, r1 - adds r2, r2, r0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - movs r7, #0x32 - ldrsh r3, [r4, r7] - movs r0, #1 - ldrsb r0, [r2, r0] - adds r3, r3, r0 - movs r7, #0x2e - ldrsh r0, [r6, r7] - subs r1, r0, r1 - movs r7, #0x32 - ldrsh r0, [r6, r7] - subs r3, r0, r3 - movs r0, #2 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldrb r2, [r2, #3] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r3, r3, r2 - lsls r0, r0, #1 - cmp r0, r1 - bls _08060970 - lsls r0, r2, #1 - cmp r0, r3 - bls _08060970 - movs r0, #1 - str r0, [r5, #0x14] - adds r1, r4, #0 - adds r1, #0x6a - ldrh r0, [r1] - adds r0, #2 - strh r0, [r1] -_08060970: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08060974: .4byte gLinkEntity -_08060978: .4byte gUnk_0810AA70 - - thumb_func_start sub_0806097C -sub_0806097C: @ 0x0806097C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080609A2 - 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, #2 - bl sub_080042AC - b _080609A8 -_080609A2: - adds r0, r2, #0 - bl sub_080042B8 -_080609A8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080609AC -sub_080609AC: @ 0x080609AC - push {r4, lr} - movs r0, #0x1c - bl GetProgressFlag - cmp r0, #0 - beq _080609E0 - movs r0, #0x2e - movs r1, #0 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _080609E0 - ldr r0, _080609E4 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] -_080609E0: - pop {r4, pc} - .align 2, 0 -_080609E4: .4byte gLinkEntity - - thumb_func_start sub_080609E8 -sub_080609E8: @ 0x080609E8 - push {lr} - ldr r2, _080609FC @ =gUnk_0810AC1C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080609FC: .4byte gUnk_0810AC1C - - thumb_func_start sub_08060A00 -sub_08060A00: @ 0x08060A00 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _08060AD0 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08060A44 - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _08060A52 - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08060A44 - movs r0, #4 - orrs r0, r1 - strb r0, [r2] - ldr r4, [r5, #0x64] - ldr r3, _08060AD4 @ =gLinkEntity - ldrh r2, [r3, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - adds r0, #8 - strh r0, [r4, #0xa] - ldr r2, [r5, #0x64] - ldrh r0, [r3, #0x32] - ands r1, r0 - adds r1, #8 - strh r1, [r2, #0xc] -_08060A44: - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _08060A52 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x1e - cmp r0, #0 - beq _08060A62 -_08060A52: - ldr r0, _08060AD8 @ =gUnk_0810AC2C - ldrb r1, [r5, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r5, #0 - bl _call_via_r1 -_08060A62: - ldrb r0, [r5, #0xc] - cmp r0, #0 - beq _08060A76 - ldr r1, [r5, #0x64] - ldr r2, _08060AD4 @ =gLinkEntity - ldrh r0, [r2, #0x2e] - strh r0, [r1, #2] - ldr r1, [r5, #0x64] - ldrh r0, [r2, #0x32] - strh r0, [r1, #4] -_08060A76: - adds r2, r5, #0 - adds r2, #0x74 - ldr r4, _08060ADC @ =gUnk_03000BF0 - ldrb r1, [r4, #5] - ldrh r0, [r2] - cmp r0, r1 - beq _08060ACE - strh r1, [r2] - ldr r0, _08060AD4 @ =gLinkEntity - adds r1, r5, #0 - bl sub_0806FA24 - 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] - movs r0, #0x90 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - ldrb r1, [r4, #0x10] - lsls r0, r1, #1 - strb r0, [r5, #0x14] - lsls r1, r1, #0x19 - lsrs r1, r1, #0x19 - adds r0, r5, #0 - bl sub_080042AC - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x80 - adds r1, r5, #0 - adds r1, #0x59 - strb r0, [r1] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_08060ACE: - pop {r4, r5, pc} - .align 2, 0 -_08060AD0: .4byte gUnk_03003F80 -_08060AD4: .4byte gLinkEntity -_08060AD8: .4byte gUnk_0810AC2C -_08060ADC: .4byte gUnk_03000BF0 - - thumb_func_start sub_08060AE0 -sub_08060AE0: @ 0x08060AE0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x14 - bl sub_0801D8E0 - adds r1, r0, #0 - cmp r1, #0 - beq _08060B54 - str r1, [r4, #0x64] - movs r0, #0x20 - strb r0, [r1, #1] - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r1, [r4, #0x14] - movs r2, #3 - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0x49 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x3b - strb r2, [r0] - ldr r0, _08060B58 @ =gUnk_080FD150 - str r0, [r4, #0x48] - ldrb r1, [r4, #0x17] - movs r0, #0xfe - ands r0, r1 - strb r0, [r4, #0x17] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0xff - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_08060E70 - movs r0, #5 - movs r1, #2 - movs r2, #0 - bl sub_0806ED50 - cmp r0, #0 - beq _08060B54 - str r4, [r0, #0x50] - str r0, [r4, #0x78] -_08060B54: - pop {r4, pc} - .align 2, 0 -_08060B58: .4byte gUnk_080FD150 - - thumb_func_start sub_08060B5C -sub_08060B5C: @ 0x08060B5C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08061230 - cmp r0, #0 - bne _08060B9E - adds r0, r4, #0 - bl sub_08060F80 - adds r5, r0, #0 - cmp r5, #0 - bne _08060B98 - ldr r1, _08060B94 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - ldrb r1, [r4, #0x14] - lsls r1, r1, #2 - subs r0, r0, r1 - adds r0, #4 - movs r1, #0x1f - ands r0, r1 - cmp r0, #8 - bhi _08060B98 - movs r0, #2 - strb r0, [r4, #0xc] - strb r5, [r4, #0xf] - b _08060B9E - .align 2, 0 -_08060B94: .4byte gLinkEntity -_08060B98: - adds r0, r4, #0 - bl sub_08060EDC -_08060B9E: - pop {r4, r5, pc} - - thumb_func_start sub_08060BA0 -sub_08060BA0: @ 0x08060BA0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08061230 - cmp r0, #0 - beq _08060BAE - b _08060D74 -_08060BAE: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08060C66 - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08060BF6 - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldrh r1, [r2, #0xe] - ldrh r2, [r2, #0x10] - adds r0, r4, #0 - movs r3, #0xc - bl sub_08061120 - adds r0, r4, #0 - bl sub_08061170 - ldr r0, [r4, #0x64] - ldrh r1, [r0, #0xe] - ldrh r2, [r0, #0x10] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - bne _08060BEE - b _08060D54 -_08060BEE: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xf7 - b _08060D36 -_08060BF6: - ldrh r1, [r2, #0xa] - ldrh r2, [r2, #0xc] - adds r0, r4, #0 - bl sub_08060FD0 - cmp r0, #0 - beq _08060C56 - ldr r0, [r4, #0x64] - ldrh r1, [r0, #0xa] - ldrh r2, [r0, #0xc] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08060C38 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - movs r0, #5 - strb r0, [r4, #0xc] - ldrb r0, [r5, #0x15] - strb r0, [r4, #0x15] - movs r0, #0xb0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - movs r1, #8 - bl sub_08060E70 - b _08060D54 -_08060C38: - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - movs r3, #0xc - bl sub_08061120 - adds r0, r4, #0 - bl sub_08061170 - b _08060D54 -_08060C56: - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - bl sub_08061464 - b _08060D54 -_08060C66: - ldr r5, _08060C98 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - bl sub_08060FD0 - cmp r0, #0 - beq _08060C9C - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - bl sub_08061090 - adds r0, r4, #0 - bl sub_08061170 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xf5 - b _08060D36 - .align 2, 0 -_08060C98: .4byte gLinkEntity -_08060C9C: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08060CDA - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldrh r1, [r2, #0xe] - ldrh r2, [r2, #0x10] - adds r0, r4, #0 - movs r3, #0xc - bl sub_08061120 - adds r0, r4, #0 - bl sub_08061170 - ldr r0, [r4, #0x64] - ldrh r1, [r0, #0xe] - ldrh r2, [r0, #0x10] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08060D54 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xf7 - b _08060D36 -_08060CDA: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08060CF4 - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r4, #0x64] - ldrh r0, [r1, #2] - strh r0, [r1, #6] - ldr r1, [r4, #0x64] - ldrh r0, [r1, #4] - strh r0, [r1, #8] -_08060CF4: - ldr r0, [r4, #0x64] - ldrh r1, [r0, #6] - ldrh r2, [r0, #8] - adds r0, r4, #0 - bl sub_08060FD0 - cmp r0, #0 - beq _08060D3C - movs r0, #0xf0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r0, [r4, #0x64] - ldrh r1, [r0, #6] - ldrh r2, [r0, #8] - adds r0, r4, #0 - movs r3, #0xc - bl sub_08061120 - adds r0, r4, #0 - bl sub_08061170 - ldr r0, [r4, #0x64] - ldrh r1, [r0, #6] - ldrh r2, [r0, #8] - adds r0, r4, #0 - movs r3, #4 - bl sub_0806FCB8 - cmp r0, #0 - beq _08060D54 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfd -_08060D36: - ands r0, r1 - strb r0, [r2] - b _08060D54 -_08060D3C: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfd - ands r0, r1 - strb r0, [r2] - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r0, #0x32 - ldrsh r2, [r5, r0] - adds r0, r4, #0 - bl sub_08061464 -_08060D54: - adds r0, r4, #0 - bl sub_08060F80 - cmp r0, #0 - beq _08060D74 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 -_08060D74: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08060D78 -sub_08060D78: @ 0x08060D78 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08061358 - adds r0, r4, #0 - bl sub_08060F80 - cmp r0, #0 - beq _08060DCE - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x20 - cmp r0, #0xf - bhi _08060DC2 - adds r5, r4, #0 - adds r5, #0x5a - ldrb r1, [r5] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _08060DB2 - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_080042B8 -_08060DB2: - ldrb r1, [r5] - movs r0, #0x18 - ands r0, r1 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x6c - movs r0, #0xff - strb r0, [r1] -_08060DC2: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 -_08060DCE: - pop {r4, r5, pc} - - thumb_func_start sub_08060DD0 -sub_08060DD0: @ 0x08060DD0 - 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 _08060DF2 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 -_08060DF2: - pop {r4, pc} - - thumb_func_start sub_08060DF4 -sub_08060DF4: @ 0x08060DF4 - push {lr} - bl sub_08061170 - pop {pc} - - thumb_func_start sub_08060DFC -sub_08060DFC: @ 0x08060DFC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_08060E94 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08060E32 - movs r0, #7 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0x1c - bl sub_08060E70 -_08060E32: - pop {r4, pc} - - thumb_func_start sub_08060E34 -sub_08060E34: @ 0x08060E34 - 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 _08060E68 - movs r0, #2 - strb r0, [r4, #0xc] - ldr r1, _08060E6C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #8 - bl sub_08060E70 -_08060E68: - pop {r4, pc} - .align 2, 0 -_08060E6C: .4byte gLinkEntity - - thumb_func_start sub_08060E70 -sub_08060E70: @ 0x08060E70 - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - adds r1, r3, r0 - adds r0, r2, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _08060E92 - adds r0, r2, #0 - adds r0, #0x6c - strb r3, [r0] - adds r0, r2, #0 - bl sub_080042AC -_08060E92: - pop {pc} - - thumb_func_start sub_08060E94 -sub_08060E94: @ 0x08060E94 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x58] - ldr r1, _08060ECC @ =0x0080FF00 - ands r0, r1 - ldr r1, _08060ED0 @ =0x00800100 - cmp r0, r1 - bne _08060ED4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #3 - bhi _08060ED4 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_080042AC - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x80 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - b _08060EDA - .align 2, 0 -_08060ECC: .4byte 0x0080FF00 -_08060ED0: .4byte 0x00800100 -_08060ED4: - adds r0, r4, #0 - bl sub_080042B8 -_08060EDA: - pop {r4, pc} - - thumb_func_start sub_08060EDC -sub_08060EDC: @ 0x08060EDC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x20 - cmp r0, #0xf - bhi _08060F00 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08060F00 - adds r0, r4, #0 - bl sub_080042B8 - b _08060F7C -_08060F00: - ldr r1, _08060F30 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - ldrb r2, [r4, #0x14] - lsls r1, r2, #2 - subs r1, r0, r1 - adds r0, r1, #3 - movs r3, #0x1f - ands r0, r3 - cmp r0, #6 - ble _08060F4A - ands r1, r3 - cmp r1, #0xf - bgt _08060F34 - adds r1, r2, #0 - adds r1, #0x20 - adds r0, r4, #0 - bl sub_080042AC - ldrb r0, [r4, #0x14] - adds r0, #1 - b _08060F42 - .align 2, 0 -_08060F30: .4byte gLinkEntity -_08060F34: - adds r1, r2, #0 - adds r1, #0x28 - adds r0, r4, #0 - bl sub_080042AC - ldrb r0, [r4, #0x14] - subs r0, #1 -_08060F42: - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0x14] - b _08060F7C -_08060F4A: - movs r0, #1 - ands r2, r0 - cmp r2, #0 - bne _08060F7C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08060F76 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #0x20 - cmp r0, #0xf - bhi _08060F76 - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 - b _08060F7C -_08060F76: - adds r0, r4, #0 - bl sub_08060E94 -_08060F7C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08060F80 -sub_08060F80: @ 0x08060F80 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08060FC8 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r3, #0x32 - ldrsh r2, [r5, r3] - adds r0, r4, #0 - bl sub_08060FD0 - cmp r0, #0 - beq _08060FC2 - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - 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 - ldr r2, [r4, #0x64] - ldrb r2, [r2, #1] - bl sub_0806FCD0 - cmp r0, #0 - bne _08060FCC -_08060FC2: - movs r0, #0 - b _08060FCE - .align 2, 0 -_08060FC8: .4byte gLinkEntity -_08060FCC: - movs r0, #1 -_08060FCE: - pop {r4, r5, pc} - - thumb_func_start sub_08060FD0 -sub_08060FD0: @ 0x08060FD0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - adds r4, r0, #0 - mov sb, r1 - mov r8, r2 - movs r0, #0x2e - ldrsh r7, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - mov r2, sb - subs r0, r2, r7 - mov r5, r8 - subs r1, r5, r6 - bl sub_080045DA - lsls r7, r7, #8 - lsls r6, r6, #8 - ldr r3, _08061058 @ =gUnk_080C9160 - lsls r1, r0, #1 - adds r1, r1, r3 - movs r5, #0 - ldrsh r2, [r1, r5] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #1 - str r1, [sp] - adds r0, #0x40 - lsls r0, r0, #1 - adds r0, r0, r3 - movs r2, #0 - ldrsh r1, [r0, r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #1 - str r0, [sp, #4] - adds r4, #0x38 - ldrb r0, [r4] - ldr r5, _0806105C @ =gUnk_0200D654 - mov sl, r5 - cmp r0, #2 - beq _0806102E - ldr r0, _08061060 @ =gUnk_02027EB4 - mov sl, r0 -_0806102E: - adds r1, r7, #0 - cmp r7, #0 - bge _08061036 - adds r1, #0xff -_08061036: - asrs r5, r1, #8 - adds r2, r6, #0 - cmp r6, #0 - bge _08061040 - adds r2, #0xff -_08061040: - asrs r4, r2, #8 - mov r0, sl - adds r1, r5, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061064 - movs r0, #0 - b _08061084 - .align 2, 0 -_08061058: .4byte gUnk_080C9160 -_0806105C: .4byte gUnk_0200D654 -_08061060: .4byte gUnk_02027EB4 -_08061064: - mov r1, sb - subs r0, r1, r5 - adds r0, #6 - cmp r0, #0xc - bhi _08061078 - mov r2, r8 - subs r0, r2, r4 - adds r0, #6 - cmp r0, #0xc - bls _08061082 -_08061078: - ldr r5, [sp] - adds r7, r7, r5 - ldr r0, [sp, #4] - subs r6, r6, r0 - b _0806102E -_08061082: - movs r0, #1 -_08061084: - 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_08061090 -sub_08061090: @ 0x08061090 - push {r4, r5, r6, lr} - adds r3, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r1, _080610C8 @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r1, r0] - movs r4, #0x2e - ldrsh r0, [r3, r4] - subs r2, r2, r0 - movs r4, #0x32 - ldrsh r0, [r1, r4] - movs r4, #0x32 - ldrsh r1, [r3, r4] - subs r0, r0, r1 - adds r1, r2, #0 - muls r1, r2, r1 - adds r2, r0, #0 - muls r2, r0, r2 - adds r0, r2, #0 - adds r1, r1, r0 - ldr r0, _080610CC @ =0x000008FF - cmp r1, r0 - bgt _080610D0 - movs r0, #0x90 - lsls r0, r0, #1 - b _080610F0 - .align 2, 0 -_080610C8: .4byte gLinkEntity -_080610CC: .4byte 0x000008FF -_080610D0: - ldr r0, _080610E4 @ =0x000018FF - cmp r1, r0 - bgt _080610EC - ldr r4, _080610E8 @ =0xFFFFF700 - adds r0, r1, r4 - asrs r0, r0, #4 - movs r1, #0x90 - lsls r1, r1, #1 - adds r0, r0, r1 - b _080610F0 - .align 2, 0 -_080610E4: .4byte 0x000018FF -_080610E8: .4byte 0xFFFFF700 -_080610EC: - movs r0, #0x88 - lsls r0, r0, #2 -_080610F0: - strh r0, [r3, #0x24] - movs r2, #0x24 - ldrsh r1, [r3, r2] - movs r0, #0x90 - lsls r0, r0, #1 - cmp r1, r0 - bne _08061102 - movs r4, #4 - b _0806110C -_08061102: - ldr r0, _0806111C @ =0x0000015F - movs r4, #0xc - cmp r1, r0 - bgt _0806110C - movs r4, #8 -_0806110C: - adds r0, r3, #0 - adds r1, r5, #0 - adds r2, r6, #0 - adds r3, r4, #0 - bl sub_08061120 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806111C: .4byte 0x0000015F - - thumb_func_start sub_08061120 -sub_08061120: @ 0x08061120 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r4, r1, #0 - adds r5, r2, #0 - adds r7, r3, #0 - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x32 - ldrsh r1, [r6, r2] - adds r2, r4, #0 - adds r3, r5, #0 - bl sub_080045D4 - strb r0, [r6, #0x15] - adds r0, r6, #0 - adds r0, #0x6c - ldrb r0, [r0] - cmp r7, r0 - bne _08061158 - ldrb r0, [r6, #0x15] - ldrb r1, [r6, #0x14] - lsls r1, r1, #2 - subs r0, r0, r1 - adds r0, #5 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xa - ble _0806116C -_08061158: - ldrb r0, [r6, #0x15] - adds r0, #4 - movs r1, #0x18 - ands r0, r1 - asrs r0, r0, #2 - strb r0, [r6, #0x14] - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08060E70 -_0806116C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061170 -sub_08061170: @ 0x08061170 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AF1EC - cmp r0, #0 - bne _080611CA - adds r0, r4, #0 - bl sub_080611D4 - adds r5, r0, #0 - cmp r5, #0xff - beq _080611C6 - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08079FD4 - lsls r0, r0, #4 - subs r0, #4 - lsls r0, r0, #0xc - str r0, [r4, #0x20] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r4, #0x24] - strb r5, [r4, #0x15] - lsrs r1, r5, #2 - strb r1, [r4, #0x14] - lsrs r0, r0, #0x10 - cmp r0, #0 - beq _080611BE - adds r0, r4, #0 - movs r1, #0x14 - bl sub_08060E70 - b _080611C6 -_080611BE: - adds r0, r4, #0 - movs r1, #0x18 - bl sub_08060E70 -_080611C6: - movs r0, #0 - b _080611D2 -_080611CA: - adds r0, r4, #0 - bl sub_08016AD2 - movs r0, #1 -_080611D2: - pop {r4, r5, pc} - - thumb_func_start sub_080611D4 -sub_080611D4: @ 0x080611D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x14] - movs r0, #6 - ands r0, r1 - ldr r1, _08061218 @ =gUnk_0810AC4C - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r0, r1] - movs r2, #1 - ldrsb r2, [r0, r2] - adds r0, r4, #0 - bl sub_080002B4 - adds r3, r0, #0 - ldr r2, _0806121C @ =gUnk_0810AC54 -_080611F4: - ldrb r0, [r2] - cmp r0, r3 - bne _08061220 - ldrb r0, [r2, #1] - ldrb r1, [r4, #0x14] - lsrs r0, r0, #2 - cmp r1, r0 - bne _08061220 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0806122A - ldrb r0, [r2, #1] - b _0806122C - .align 2, 0 -_08061218: .4byte gUnk_0810AC4C -_0806121C: .4byte gUnk_0810AC54 -_08061220: - adds r2, #2 - ldrb r0, [r2] - cmp r0, #0 - bne _080611F4 - strb r0, [r4, #0xf] -_0806122A: - movs r0, #0xff -_0806122C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08061230 -sub_08061230: @ 0x08061230 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x64] - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08061302 - adds r1, r4, #0 - adds r1, #0x41 - ldrb r3, [r1] - movs r0, #0x80 - ands r0, r3 - adds r2, r1, #0 - cmp r0, #0 - beq _0806133A - movs r0, #0x7f - ands r0, r3 - cmp r0, #0x1f - bhi _080612E8 - lsls r0, r0, #2 - ldr r1, _08061264 @ =_08061268 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08061264: .4byte _08061268 -_08061268: @ jump table - .4byte _0806133A @ case 0 - .4byte _0806133A @ case 1 - .4byte _0806133A @ case 2 - .4byte _0806133A @ case 3 - .4byte _080612E8 @ case 4 - .4byte _080612E8 @ case 5 - .4byte _080612E8 @ case 6 - .4byte _080612E8 @ case 7 - .4byte _080612E8 @ case 8 - .4byte _080612E8 @ case 9 - .4byte _080612E8 @ case 10 - .4byte _080612E8 @ case 11 - .4byte _080612E8 @ case 12 - .4byte _080612E8 @ case 13 - .4byte _080612E8 @ case 14 - .4byte _0806133A @ case 15 - .4byte _080612E8 @ case 16 - .4byte _080612E8 @ case 17 - .4byte _080612E8 @ case 18 - .4byte _0806133A @ case 19 - .4byte _080612E8 @ case 20 - .4byte _080612E8 @ case 21 - .4byte _080612E8 @ case 22 - .4byte _080612E8 @ case 23 - .4byte _080612E8 @ case 24 - .4byte _080612E8 @ case 25 - .4byte _080612E8 @ case 26 - .4byte _0806133A @ case 27 - .4byte _080612E8 @ case 28 - .4byte _080612E8 @ case 29 - .4byte _0806133A @ case 30 - .4byte _0806133A @ case 31 -_080612E8: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #1 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #0x40 - adds r0, r4, #0 - bl sub_080042AC - movs r0, #1 - b _08061356 -_08061302: - 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 _0806131A - movs r0, #1 - b _08061356 -_0806131A: - ldr r2, [r4, #0x64] - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - ldrb r0, [r0] - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_080042AC - adds r2, r4, #0 - adds r2, #0x41 -_0806133A: - ldrb r0, [r2] - movs r1, #0x7f - ands r1, r0 - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x3d - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08061354 - adds r0, r2, #1 - strb r0, [r1] -_08061354: - movs r0, #0 -_08061356: - pop {r4, pc} - - thumb_func_start sub_08061358 -sub_08061358: @ 0x08061358 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xd] - cmp r5, #1 - beq _0806139C - cmp r5, #1 - bgt _0806136C - cmp r5, #0 - beq _08061376 - b _08061460 -_0806136C: - cmp r5, #2 - beq _080613D0 - cmp r5, #3 - beq _0806141E - b _08061460 -_08061376: - 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 _08061460 - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xf - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0 - bl sub_08060E70 - b _08061460 -_0806139C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08061460 - bl sub_08000E50 - adds r6, r0, #0 - ands r5, r6 - cmp r5, #0 - beq _080613FA - movs r0, #2 - strb r0, [r4, #0xd] - ldr r3, _080613CC @ =gUnk_0810AC5D - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - lsrs r1, r6, #4 - movs r2, #3 - ands r1, r2 - adds r0, r0, r1 - adds r0, r0, r3 - b _0806143A - .align 2, 0 -_080613CC: .4byte gUnk_0810AC5D -_080613D0: - 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 _08061460 - movs r0, #0x18 - ands r0, r1 - lsrs r0, r0, #2 - strb r0, [r4, #0x14] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #1 - ands r1, r0 - cmp r1, #0 - beq _08061412 -_080613FA: - movs r0, #3 - strb r0, [r4, #0xd] - movs r0, #0x18 - ands r6, r0 - adds r0, r6, #0 - adds r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #4 - bl sub_08060E70 - b _08061460 -_08061412: - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08060E70 - b _08061460 -_0806141E: - adds r0, r4, #0 - bl sub_08061170 - cmp r0, #0 - bne _08061448 - movs r0, #2 - strb r0, [r4, #0xd] - ldr r2, _08061444 @ =gUnk_0810AC5D - ldrb r0, [r4, #0x14] - lsls r0, r0, #1 - lsrs r1, r6, #4 - ands r1, r5 - adds r0, r0, r1 - adds r0, r0, r2 -_0806143A: - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC - b _08061460 - .align 2, 0 -_08061444: .4byte gUnk_0810AC5D -_08061448: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08061460 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08060E70 -_08061460: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08061464 -sub_08061464: @ 0x08061464 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - mov r8, r1 - adds r5, r2, #0 - movs r0, #0x2e - ldrsh r7, [r4, r0] - movs r1, #0x32 - ldrsh r6, [r4, r1] - adds r0, r7, #0 - adds r1, r6, #0 - mov r2, r8 - adds r3, r5, #0 - bl sub_080045D4 - adds r0, #2 - movs r1, #0x1c - ands r0, r1 - lsrs r0, r0, #2 - cmp r0, #7 - bls _08061494 - b _08061612 -_08061494: - lsls r0, r0, #2 - ldr r1, _080614A0 @ =_080614A4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080614A0: .4byte _080614A4 -_080614A4: @ jump table - .4byte _080614C4 @ case 0 - .4byte _080614E2 @ case 1 - .4byte _08061514 @ case 2 - .4byte _08061544 @ case 3 - .4byte _08061566 @ case 4 - .4byte _08061584 @ case 5 - .4byte _080615B4 @ case 6 - .4byte _080615E4 @ case 7 -_080614C4: - adds r0, r4, #0 - adds r0, #0x6e - strh r5, [r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, r8 - ble _08061504 - adds r2, r6, #0 - subs r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_08061630 - b _08061612 -_080614E2: - movs r0, #0x6e - adds r0, r0, r4 - mov sb, r0 - mov r1, r8 - strh r1, [r0] - adds r1, r7, #0 - adds r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061720 - cmp r0, #0 - beq _08061500 - b _08061612 -_08061500: - mov r0, sb - strh r5, [r0] -_08061504: - adds r2, r6, #0 - subs r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_080616A8 - b _08061612 -_08061514: - adds r0, r4, #0 - adds r0, #0x6e - mov r1, r8 - strh r1, [r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, r5 - ble _08061534 - adds r1, r7, #0 - adds r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061720 - b _08061612 -_08061534: - adds r1, r7, #0 - adds r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061798 - b _08061612 -_08061544: - movs r0, #0x6e - adds r0, r0, r4 - mov sb, r0 - mov r1, r8 - strh r1, [r0] - adds r1, r7, #0 - adds r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061798 - cmp r0, #0 - bne _08061612 - mov r0, sb - strh r5, [r0] - b _08061574 -_08061566: - adds r0, r4, #0 - adds r0, #0x6e - strh r5, [r0] - movs r1, #0x2e - ldrsh r0, [r4, r1] - cmp r0, r8 - bgt _080615A4 -_08061574: - adds r2, r6, #0 - adds r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_08061888 - b _08061612 -_08061584: - movs r0, #0x6e - adds r0, r0, r4 - mov sb, r0 - mov r1, r8 - strh r1, [r0] - adds r1, r7, #0 - subs r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061978 - cmp r0, #0 - bne _08061612 - mov r0, sb - strh r5, [r0] -_080615A4: - adds r2, r6, #0 - adds r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_08061810 - b _08061612 -_080615B4: - adds r0, r4, #0 - adds r0, #0x6e - mov r1, r8 - strh r1, [r0] - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, r5 - ble _080615D4 - adds r1, r7, #0 - subs r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061900 - b _08061612 -_080615D4: - adds r1, r7, #0 - subs r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061978 - b _08061612 -_080615E4: - movs r0, #0x6e - adds r0, r0, r4 - mov sb, r0 - mov r1, r8 - strh r1, [r0] - adds r1, r7, #0 - subs r1, #8 - adds r0, r4, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl sub_08061900 - cmp r0, #0 - bne _08061612 - mov r0, sb - strh r5, [r0] - adds r2, r6, #0 - subs r2, #8 - adds r0, r4, #0 - adds r1, r7, #0 - mov r3, r8 - bl sub_08061630 -_08061612: - ldr r0, [r4, #0x64] - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _08061628 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_08061628: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061630 -sub_08061630: @ 0x08061630 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061650 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0806168C - ldr r7, _08061654 @ =gUnk_0200D654 - b _0806168C - .align 2, 0 -_08061650: .4byte gUnk_02027EB4 -_08061654: .4byte gUnk_0200D654 -_08061658: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_08061A74 - cmp r0, #0 - beq _0806168A - ldr r0, [r5, #0x64] - strh r6, [r0, #0xe] - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - blt _0806168A - movs r0, #1 - b _0806169E -_0806168A: - subs r4, #8 -_0806168C: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061658 - movs r0, #0 -_0806169E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080616A8 -sub_080616A8: @ 0x080616A8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _080616C8 @ =gUnk_02027EB4 - cmp r0, #2 - bne _08061704 - ldr r7, _080616CC @ =gUnk_0200D654 - b _08061704 - .align 2, 0 -_080616C8: .4byte gUnk_02027EB4 -_080616CC: .4byte gUnk_0200D654 -_080616D0: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_08061A1C - cmp r0, #0 - beq _08061702 - ldr r0, [r5, #0x64] - strh r6, [r0, #0xe] - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - blt _08061702 - movs r0, #1 - b _08061716 -_08061702: - subs r4, #8 -_08061704: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _080616D0 - movs r0, #0 -_08061716: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061720 -sub_08061720: @ 0x08061720 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061740 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0806177C - ldr r7, _08061744 @ =gUnk_0200D654 - b _0806177C - .align 2, 0 -_08061740: .4byte gUnk_02027EB4 -_08061744: .4byte gUnk_0200D654 -_08061748: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_080619F0 - cmp r0, #0 - beq _0806177A - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0xe] - ldr r0, [r5, #0x64] - strh r6, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - bgt _0806177A - movs r0, #1 - b _0806178E -_0806177A: - adds r4, #8 -_0806177C: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061748 - movs r0, #0 -_0806178E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061798 -sub_08061798: @ 0x08061798 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _080617B8 @ =gUnk_02027EB4 - cmp r0, #2 - bne _080617F4 - ldr r7, _080617BC @ =gUnk_0200D654 - b _080617F4 - .align 2, 0 -_080617B8: .4byte gUnk_02027EB4 -_080617BC: .4byte gUnk_0200D654 -_080617C0: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_08061A48 - cmp r0, #0 - beq _080617F2 - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0xe] - ldr r0, [r5, #0x64] - strh r6, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - bgt _080617F2 - movs r0, #1 - b _08061806 -_080617F2: - adds r4, #8 -_080617F4: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _080617C0 - movs r0, #0 -_08061806: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061810 -sub_08061810: @ 0x08061810 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061830 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0806186C - ldr r7, _08061834 @ =gUnk_0200D654 - b _0806186C - .align 2, 0 -_08061830: .4byte gUnk_02027EB4 -_08061834: .4byte gUnk_0200D654 -_08061838: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_08061A74 - cmp r0, #0 - beq _0806186A - ldr r0, [r5, #0x64] - strh r6, [r0, #0xe] - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - bgt _0806186A - movs r0, #1 - b _0806187E -_0806186A: - adds r4, #8 -_0806186C: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061838 - movs r0, #0 -_0806187E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061888 -sub_08061888: @ 0x08061888 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _080618A8 @ =gUnk_02027EB4 - cmp r0, #2 - bne _080618E4 - ldr r7, _080618AC @ =gUnk_0200D654 - b _080618E4 - .align 2, 0 -_080618A8: .4byte gUnk_02027EB4 -_080618AC: .4byte gUnk_0200D654 -_080618B0: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - mov r3, sb - bl sub_08061A1C - cmp r0, #0 - beq _080618E2 - ldr r0, [r5, #0x64] - strh r6, [r0, #0xe] - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - bgt _080618E2 - movs r0, #1 - b _080618F6 -_080618E2: - adds r4, #8 -_080618E4: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _080618B0 - movs r0, #0 -_080618F6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061900 -sub_08061900: @ 0x08061900 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061920 @ =gUnk_02027EB4 - cmp r0, #2 - bne _0806195C - ldr r7, _08061924 @ =gUnk_0200D654 - b _0806195C - .align 2, 0 -_08061920: .4byte gUnk_02027EB4 -_08061924: .4byte gUnk_0200D654 -_08061928: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_080619F0 - cmp r0, #0 - beq _0806195A - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0xe] - ldr r0, [r5, #0x64] - strh r6, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - blt _0806195A - movs r0, #1 - b _0806196E -_0806195A: - subs r4, #8 -_0806195C: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061928 - movs r0, #0 -_0806196E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08061978 -sub_08061978: @ 0x08061978 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - mov sb, r3 - mov r8, r4 - adds r0, #0x38 - ldrb r0, [r0] - ldr r7, _08061998 @ =gUnk_02027EB4 - cmp r0, #2 - bne _080619D4 - ldr r7, _0806199C @ =gUnk_0200D654 - b _080619D4 - .align 2, 0 -_08061998: .4byte gUnk_02027EB4 -_0806199C: .4byte gUnk_0200D654 -_080619A0: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - mov r3, sb - bl sub_08061A48 - cmp r0, #0 - beq _080619D2 - ldr r0, [r5, #0x64] - mov r1, r8 - strh r1, [r0, #0xe] - ldr r0, [r5, #0x64] - strh r6, [r0, #0x10] - ldr r2, [r5, #0x64] - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r0, r4 - blt _080619D2 - movs r0, #1 - b _080619E6 -_080619D2: - subs r4, #8 -_080619D4: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _080619A0 - movs r0, #0 -_080619E6: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080619F0 -sub_080619F0: @ 0x080619F0 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - adds r5, r3, #0 - cmp r5, r4 - bgt _08061A18 -_080619FE: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061A12 - movs r0, #0 - b _08061A1A -_08061A12: - subs r4, #8 - cmp r5, r4 - ble _080619FE -_08061A18: - movs r0, #1 -_08061A1A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061A1C -sub_08061A1C: @ 0x08061A1C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - adds r5, r3, #0 - cmp r5, r4 - blt _08061A44 -_08061A2A: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061A3E - movs r0, #0 - b _08061A46 -_08061A3E: - adds r4, #8 - cmp r5, r4 - bge _08061A2A -_08061A44: - movs r0, #1 -_08061A46: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061A48 -sub_08061A48: @ 0x08061A48 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - adds r4, r2, #0 - adds r5, r3, #0 - cmp r5, r4 - blt _08061A70 -_08061A56: - adds r0, r7, #0 - adds r1, r6, #0 - adds r2, r4, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061A6A - movs r0, #0 - b _08061A72 -_08061A6A: - adds r4, #8 - cmp r5, r4 - bge _08061A56 -_08061A70: - movs r0, #1 -_08061A72: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061A74 -sub_08061A74: @ 0x08061A74 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - adds r5, r3, #0 - cmp r5, r4 - bgt _08061A9C -_08061A82: - adds r0, r7, #0 - adds r1, r4, #0 - adds r2, r6, #0 - movs r3, #6 - bl sub_080AE4CC - cmp r0, #0 - beq _08061A96 - movs r0, #0 - b _08061A9E -_08061A96: - subs r4, #8 - cmp r5, r4 - ble _08061A82 -_08061A9C: - movs r0, #1 -_08061A9E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08061AA0 -sub_08061AA0: @ 0x08061AA0 - push {lr} - bl sub_0805E780 - pop {pc} - - thumb_func_start sub_08061AA8 -sub_08061AA8: @ 0x08061AA8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08061AC8 @ =gUnk_0810AC70 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, [r4, #0x50] - adds r1, r4, #0 - bl sub_0806FA24 - pop {r4, pc} - .align 2, 0 -_08061AC8: .4byte gUnk_0810AC70 - - thumb_func_start sub_08061ACC -sub_08061ACC: @ 0x08061ACC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x20 - movs r2, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0xd] - strb r2, [r4, #0xe] - ldrb r1, [r4, #0x17] - movs r0, #0xfe - ands r0, r1 - strb r0, [r4, #0x17] - adds r0, r4, #0 - bl sub_08078778 - adds r0, r4, #0 - bl sub_08061AFC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08061AFC -sub_08061AFC: @ 0x08061AFC - push {lr} - adds r1, r0, #0 - movs r2, #0 - ldrb r0, [r1, #0xd] - cmp r0, #0 - beq _08061B12 - strb r2, [r1, #0xd] - ldr r0, _08061B14 @ =gUnk_0810B660 - ldr r0, [r0] - str r0, [r1, #0x68] - strb r2, [r1, #0xe] -_08061B12: - pop {pc} - .align 2, 0 -_08061B14: .4byte gUnk_0810B660 - - thumb_func_start sub_08061B18 -sub_08061B18: @ 0x08061B18 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08061B54 - cmp r0, #1 - bne _08061B54 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08061AFC - ldr r2, [r4, #0x68] - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x17 - adds r2, r2, r0 - ldrh r0, [r2, #2] - cmp r0, #0 - bne _08061B4C - strb r0, [r4, #0xe] -_08061B4C: - ldrh r0, [r2] - adds r1, r4, #0 - bl sub_08056398 -_08061B54: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08061B58 -sub_08061B58: @ 0x08061B58 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08061B6E - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_08061B6E: - ldr r0, _08061B88 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #2 - bne _08061B7E - adds r0, r4, #0 - bl sub_080042B8 -_08061B7E: - adds r0, r4, #0 - bl sub_0806FD3C - pop {r4, pc} - .align 2, 0 -_08061B88: .4byte gUnk_030010A0 - - thumb_func_start sub_08061B8C -sub_08061B8C: @ 0x08061B8C - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08061BB0 - ldr r0, _08061BAC @ =gUnk_0810B77C - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08061BC0 - .align 2, 0 -_08061BAC: .4byte gUnk_0810B77C -_08061BB0: - ldr r0, _08061BC4 @ =gUnk_0810B774 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08061BC0: - pop {pc} - .align 2, 0 -_08061BC4: .4byte gUnk_0810B774 - - thumb_func_start sub_08061BC8 -sub_08061BC8: @ 0x08061BC8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08061BFC @ =gUnk_0810B6EC - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08061BF8 - movs r0, #2 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0xa] - adds r0, #1 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08061CB4 -_08061BF8: - pop {r4, pc} - .align 2, 0 -_08061BFC: .4byte gUnk_0810B6EC - - thumb_func_start sub_08061C00 -sub_08061C00: @ 0x08061C00 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _08061C18 - ldrb r0, [r4, #0x14] - adds r1, r0, #4 - b _08061C32 -_08061C18: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08061C24 - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08061C32 -_08061C24: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 -_08061C32: - adds r0, r4, #0 - bl sub_08061CB4 - adds r0, r4, #0 - bl sub_0806ED78 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08061C58 - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0xb] - ldr r1, _08061C5C @ =0x00000A01 - adds r0, r0, r1 - bl sub_08056378 -_08061C58: - pop {r4, pc} - .align 2, 0 -_08061C5C: .4byte 0x00000A01 - - thumb_func_start sub_08061C60 -sub_08061C60: @ 0x08061C60 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - ldr r1, _08061CAC @ =gUnk_0810B78C - adds r0, r0, r1 - ldrb r1, [r0] - ldr r5, _08061CB0 @ =gUnk_0810B680 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r2, [r0] - adds r2, r1, r2 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r0, [r0, #1] - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 -_08061CAC: .4byte gUnk_0810B78C -_08061CB0: .4byte gUnk_0810B680 - - thumb_func_start sub_08061CB4 -sub_08061CB4: @ 0x08061CB4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _08061CC8 - adds r0, r4, #0 - bl sub_08004260 - b _08061CCE -_08061CC8: - adds r0, r4, #0 - bl sub_08004274 -_08061CCE: - adds r2, r4, #0 - adds r2, #0x59 - ldrb r0, [r2] - cmp r0, #0xff - bne _08061CE4 - ldr r0, _08061CE8 @ =gUnk_0810B680 - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #2] - strb r0, [r2] -_08061CE4: - pop {r4, pc} - .align 2, 0 -_08061CE8: .4byte gUnk_0810B680 - - thumb_func_start sub_08061CEC -sub_08061CEC: @ 0x08061CEC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08061D38 @ =gUnk_0810B6EC - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08061D62 - 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 r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x69 - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r1, r0, #0 - cmp r1, #0 - bne _08061D3C - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - ldrh r1, [r4, #0x32] - b _08061D44 - .align 2, 0 -_08061D38: .4byte gUnk_0810B6EC -_08061D3C: - lsrs r0, r1, #0x10 - adds r2, r4, #0 - adds r2, #0x6a - strh r0, [r2] -_08061D44: - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08061D64 -_08061D62: - pop {r4, pc} - - thumb_func_start sub_08061D64 -sub_08061D64: @ 0x08061D64 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x39 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #2 - bne _08061DB0 - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - strb r1, [r4] - adds r0, r5, #0 - bl sub_0806F118 - adds r4, #0x1f - ldrb r0, [r4] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08061DAC @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - ldrb r1, [r4] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_08004260 - b _08061E18 - .align 2, 0 -_08061DAC: .4byte gLinkEntity -_08061DB0: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - adds r2, r5, #0 - adds r2, #0x59 - ldrb r0, [r2] - cmp r0, #0xff - bne _08061DD4 - ldr r0, _08061E1C @ =gUnk_0810B680 - ldrb r1, [r5, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #2] - strb r0, [r2] -_08061DD4: - adds r0, r5, #0 - bl sub_08004274 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - beq _08061E18 - movs r1, #0 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r4] - adds r0, r5, #0 - bl sub_08062048 - adds r4, r5, #0 - adds r4, #0x58 - ldrb r0, [r4] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08061E20 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - ldrb r1, [r4] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_08061E18: - pop {r4, r5, pc} - .align 2, 0 -_08061E1C: .4byte gUnk_0810B680 -_08061E20: .4byte gLinkEntity - - thumb_func_start sub_08061E24 -sub_08061E24: @ 0x08061E24 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, _08061E4C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08061E48 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08061E48: - pop {r4, pc} - .align 2, 0 -_08061E4C: .4byte gUnk_02000050 - - thumb_func_start sub_08061E50 -sub_08061E50: @ 0x08061E50 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08061E6C - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08061E6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08061E70 -sub_08061E70: @ 0x08061E70 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #9] - cmp r0, #6 - bne _08061E88 - adds r0, r2, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r2, #0 - bl sub_08078784 - b _08061E8E -_08061E88: - adds r0, r2, #0 - bl sub_08078778 -_08061E8E: - pop {pc} - - thumb_func_start sub_08061E90 -sub_08061E90: @ 0x08061E90 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _08061F04 - adds r0, #1 - strb r0, [r5, #0x18] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strh r0, [r5, #0x12] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _08061ED8 - cmp r0, #8 - bgt _08061EC6 - cmp r0, #0 - beq _08061ED0 - b _08061EEE -_08061EC6: - cmp r0, #0x10 - beq _08061EE0 - cmp r0, #0x18 - beq _08061EE8 - b _08061EEE -_08061ED0: - cmp r1, #0x10 - bne _08061EEE - movs r1, #8 - b _08061EEE -_08061ED8: - cmp r1, #0x18 - bne _08061EEE - movs r1, #0x10 - b _08061EEE -_08061EE0: - cmp r1, #0 - bne _08061EEE - movs r1, #0x18 - b _08061EEE -_08061EE8: - cmp r1, #8 - bne _08061EEE - movs r1, #0 -_08061EEE: - strb r1, [r4, #0x15] - adds r0, r1, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] - ldr r1, _08061F8C @ =gUnk_0810B74A - ldrb r0, [r4, #0xa] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r4, #0x24] -_08061F04: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - adds r1, r0, #4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _08061F1A - adds r0, r4, #0 - bl sub_08004260 -_08061F1A: - adds r0, r4, #0 - bl sub_080AEF88 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x6a - movs r3, #0 - ldrsh r0, [r2, r3] - subs r1, r1, r0 - cmp r1, #0x10 - ble _08061F3C - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_08061F3C: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _08061F4E - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_08061F4E: - movs r6, #0x32 - ldrsh r1, [r4, r6] - adds r2, r4, #0 - adds r2, #0x6c - movs r6, #0 - ldrsh r0, [r2, r6] - subs r1, r1, r0 - cmp r1, #0x10 - ble _08061F6A - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_08061F6A: - cmp r1, r3 - bge _08061F78 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_08061F78: - ldrh r0, [r5, #0x12] - subs r0, #1 - strh r0, [r5, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08061F8A - ldr r1, _08061F90 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08061F8A: - pop {r4, r5, r6, pc} - .align 2, 0 -_08061F8C: .4byte gUnk_0810B74A -_08061F90: .4byte gUnk_02033280 - - thumb_func_start sub_08061F94 -sub_08061F94: @ 0x08061F94 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x35 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08061FAC - adds r0, r4, #0 - bl sub_0806FAB0 -_08061FAC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08061FB0 -sub_08061FB0: @ 0x08061FB0 - movs r1, #0 - str r1, [r0, #0x48] - bx lr - .align 2, 0 - - thumb_func_start sub_08061FB8 -sub_08061FB8: @ 0x08061FB8 - push {lr} - ldr r2, _08061FD0 @ =gUnk_0810B748 - ldr r3, [r1, #4] - adds r2, r3, r2 - ldrb r2, [r2] - lsls r3, r3, #2 - ldr r1, _08061FD4 @ =gUnk_0810B740 - adds r3, r3, r1 - movs r1, #1 - bl sub_08078850 - pop {pc} - .align 2, 0 -_08061FD0: .4byte gUnk_0810B748 -_08061FD4: .4byte gUnk_0810B740 - - thumb_func_start sub_08061FD8 -sub_08061FD8: @ 0x08061FD8 - push {lr} - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_08061FE4 -sub_08061FE4: @ 0x08061FE4 - push {lr} - ldrb r1, [r0, #0x14] - lsrs r1, r1, #1 - adds r1, #4 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08061FF4 -sub_08061FF4: @ 0x08061FF4 - push {lr} - adds r1, r0, #0 - ldr r2, _08062008 @ =gUnk_0810B790 - ldrb r0, [r1, #0xa] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08062008: .4byte gUnk_0810B790 - - thumb_func_start sub_0806200C -sub_0806200C: @ 0x0806200C - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _08062034 - movs r0, #0x6b - bl sub_0807CBD0 - cmp r0, #0 - beq _08062034 - movs r0, #0x39 - bl sub_0807CA84 - movs r4, #1 - cmp r0, #2 - bne _08062034 - movs r4, #2 -_08062034: - ldr r0, _08062044 @ =gUnk_0810B7BA - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_08062044: .4byte gUnk_0810B7BA - - thumb_func_start sub_08062048 -sub_08062048: @ 0x08062048 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - cmp r0, #6 - bne _0806207C - ldr r0, _08062074 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806205E - movs r0, #0 -_0806205E: - ldrb r1, [r3, #0xa] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _08062078 @ =gUnk_0810B7C0 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - b _08062084 - .align 2, 0 -_08062074: .4byte gUnk_02002A40 -_08062078: .4byte gUnk_0810B7C0 -_0806207C: - movs r0, #0 - adds r1, r3, #0 - bl sub_08056398 -_08062084: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08062088 -sub_08062088: @ 0x08062088 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080620BA - ldr r1, _080620C4 @ =gUnk_0810B6EC - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080620C2 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_080620BA: - adds r0, r4, #0 - movs r1, #6 - bl sub_08061CB4 -_080620C2: - pop {r4, pc} - .align 2, 0 -_080620C4: .4byte gUnk_0810B6EC - - thumb_func_start sub_080620C8 -sub_080620C8: @ 0x080620C8 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080620DE - adds r0, r2, #0 - bl sub_080621AC - b _080620EE -_080620DE: - ldr r0, _080620F0 @ =gUnk_0810BE0C - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_080620EE: - pop {pc} - .align 2, 0 -_080620F0: .4byte gUnk_0810BE0C - - thumb_func_start sub_080620F4 -sub_080620F4: @ 0x080620F4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806212C @ =gUnk_0810BDC4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806212A - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 -_0806212A: - pop {r4, pc} - .align 2, 0 -_0806212C: .4byte gUnk_0810BDC4 - - thumb_func_start sub_08062130 -sub_08062130: @ 0x08062130 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08062152 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC -_08062152: - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x78 - bls _08062184 - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #0xe] - adds r1, r0, #1 - movs r0, #7 - ands r1, r0 - strb r1, [r4, #0xe] - ldrb r0, [r4, #0xa] - cmp r0, #6 - bne _0806217A - adds r0, r1, #0 - adds r0, #0x10 - strb r0, [r4, #0xe] -_0806217A: - ldrb r1, [r4, #0xe] - adds r0, r4, #0 - bl sub_080042AC - b _0806218A -_08062184: - adds r0, r4, #0 - bl sub_080042B8 -_0806218A: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08062194 -sub_08062194: @ 0x08062194 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0 - bl sub_08056378 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r4, #0x39 - strb r1, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080621AC -sub_080621AC: @ 0x080621AC - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _08062234 - cmp r5, #1 - bgt _080621C0 - cmp r5, #0 - beq _080621CE - b _080622F2 -_080621C0: - cmp r5, #2 - bne _080621C6 - b _080622CC -_080621C6: - cmp r5, #3 - bne _080621CC - b _080622E4 -_080621CC: - b _080622F2 -_080621CE: - ldr r1, _0806221C @ =gUnk_0810BDC4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - bne _080621E4 - b _080622F2 -_080621E4: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - strb r0, [r4, #0x14] - strb r5, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x68 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r1, r4, #0 - adds r1, #0x6b - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08062220 - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - b _0806222C - .align 2, 0 -_0806221C: .4byte gUnk_0810BDC4 -_08062220: - lsrs r1, r2, #0x10 - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - adds r0, #2 - strh r2, [r0] -_0806222C: - adds r0, r4, #0 - bl sub_0807DD50 - b _080622F2 -_08062234: - adds r5, r4, #0 - adds r5, #0x39 - movs r1, #0 - ldrsb r1, [r5, r1] - cmp r1, #2 - bne _08062252 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806F118 - adds r5, #0x1f - b _0806229A -_08062252: - adds r0, r4, #0 - adds r0, #0x68 - movs r6, #0 - ldrsb r6, [r0, r6] - cmp r6, #0 - beq _08062274 - cmp r1, #0 - beq _0806226C - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r5] - b _0806228A -_0806226C: - adds r0, r4, #0 - bl sub_080622F4 - b _080622F2 -_08062274: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _080622F2 - movs r0, #2 - strb r0, [r4, #0xc] - strb r6, [r5] -_0806228A: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806265C - adds r5, r4, #0 - adds r5, #0x58 -_0806229A: - ldrb r0, [r5] - adds r1, r4, #0 - adds r1, #0x6b - strb r0, [r1] - ldrb r0, [r5] - cmp r0, #7 - bhi _080622F2 - ldr r1, _080622C8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - ldrb r1, [r5] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - b _080622F2 - .align 2, 0 -_080622C8: .4byte gLinkEntity -_080622CC: - adds r0, r4, #0 - bl sub_08004274 - ldr r0, _080622E0 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080622F2 - b _080622EE - .align 2, 0 -_080622E0: .4byte gUnk_02000050 -_080622E4: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080622F2 -_080622EE: - movs r0, #1 - strb r0, [r4, #0xc] -_080622F2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080622F4 -sub_080622F4: @ 0x080622F4 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r7, r0, #0 - ldr r0, _0806239C @ =gLinkEntity - mov r8, r0 - ldrh r1, [r0, #0x2e] - ldr r3, _080623A0 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r5 - orrs r0, r1 - mov r2, r8 - ldrh r1, [r2, #0x32] - lsls r1, r1, #0x10 - ldr r2, _080623A4 @ =0x0000FFFF - ands r0, r2 - adds r5, r0, #0 - orrs r5, r1 - mov r1, r8 - ldrh r0, [r1, #0x36] - ands r3, r6 - orrs r3, r0 - ldr r0, _080623A8 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _080623AC @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - ldrb r1, [r1, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _080623B0 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - mov r1, r8 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _080623B4 @ =0x3FFFFFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - ldr r4, [r7, #0x64] - ldrb r0, [r4, #6] - cmp r0, #0x16 - bne _080623BE - lsrs r0, r6, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x16 - beq _080623BE - movs r2, #0x2e - ldrsh r1, [r7, r2] - mov r3, r8 - movs r2, #0x2e - ldrsh r0, [r3, r2] - subs r2, r1, r0 - movs r0, #0x32 - ldrsh r3, [r7, r0] - mov sb, r3 - mov r1, r8 - movs r3, #0x32 - ldrsh r0, [r1, r3] - mov r3, sb - subs r1, r3, r0 - cmp r2, #0 - bge _08062382 - rsbs r2, r2, #0 -_08062382: - cmp r1, #0 - bge _08062388 - rsbs r1, r1, #0 -_08062388: - cmp r2, #0x78 - bgt _08062390 - cmp r1, #0x50 - ble _080623B8 -_08062390: - adds r1, r7, #0 - adds r1, #0x68 - movs r0, #0 - strb r0, [r1] - b _080624F8 - .align 2, 0 -_0806239C: .4byte gLinkEntity -_080623A0: .4byte 0xFFFF0000 -_080623A4: .4byte 0x0000FFFF -_080623A8: .4byte gUnk_03003F80 -_080623AC: .4byte 0xFF00FFFF -_080623B0: .4byte 0xC0FFFFFF -_080623B4: .4byte 0x3FFFFFFF -_080623B8: - adds r0, r7, #0 - bl sub_0806252C -_080623BE: - movs r0, #0 - mov sb, r0 - ldr r0, [r4] - cmp r5, r0 - bne _080623CE - ldr r0, [r4, #4] - cmp r6, r0 - beq _08062410 -_080623CE: - ldr r4, [r7, #0x64] - adds r4, #0x90 - movs r1, #0x69 - adds r1, r1, r7 - mov r8, r1 - adds r3, r7, #0 - adds r3, #0x38 - movs r2, #0x58 - adds r2, r2, r7 - mov ip, r2 - movs r2, #0x12 -_080623E4: - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r4, #8] - str r1, [r4, #0xc] - subs r4, #8 - subs r2, #1 - cmp r2, #0 - bge _080623E4 - ldr r4, [r7, #0x64] - str r5, [r4] - str r6, [r4, #4] - movs r0, #4 - mov sb, r0 - mov r2, r8 - ldrb r1, [r2] - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - ble _08062484 - subs r0, r1, #1 - strb r0, [r2] - b _08062484 -_08062410: - adds r4, #0x98 - movs r3, #4 - ldrsh r0, [r4, r3] - cmp r0, #0 - bge _08062442 - ldr r4, [r7, #0x64] - adds r4, #0x90 - movs r0, #0x69 - adds r0, r0, r7 - mov r8, r0 - adds r3, r7, #0 - adds r3, #0x38 - movs r1, #0x58 - adds r1, r1, r7 - mov ip, r1 - movs r2, #0x12 -_08062430: - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r4, #8] - str r1, [r4, #0xc] - subs r4, #8 - subs r2, #1 - cmp r2, #0 - bge _08062430 - b _08062480 -_08062442: - ldr r1, _080624E8 @ =gLinkEntity - movs r3, #0x2e - ldrsh r0, [r1, r3] - movs r2, #0x32 - ldrsh r1, [r1, r2] - ldrh r2, [r4] - ldrh r3, [r4, #2] - bl sub_080041E8 - lsrs r0, r0, #4 - movs r3, #0x69 - adds r3, r3, r7 - mov r8, r3 - adds r3, r7, #0 - adds r3, #0x38 - movs r1, #0x58 - adds r1, r1, r7 - mov ip, r1 - cmp r0, #0x18 - ble _08062484 - ldr r4, [r7, #0x64] - adds r4, #0x90 - movs r2, #0x12 -_08062470: - ldr r0, [r4] - ldr r1, [r4, #4] - str r0, [r4, #8] - str r1, [r4, #0xc] - subs r4, #8 - subs r2, #1 - cmp r2, #0 - bge _08062470 -_08062480: - movs r2, #4 - mov sb, r2 -_08062484: - ldr r4, [r7, #0x64] - adds r4, #0x98 - ldrh r0, [r4] - strh r0, [r7, #0x2e] - ldrh r0, [r4, #2] - strh r0, [r7, #0x32] - ldrh r0, [r4, #4] - strh r0, [r7, #0x36] - ldrb r0, [r4, #7] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r7, #0x14] - ldrb r0, [r4, #7] - lsrs r0, r0, #6 - strb r0, [r3] - mov r1, r8 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _080624B2 - subs r0, r2, #1 - strb r0, [r1] -_080624B2: - mov r2, sb - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - add sb, r0 - ldrb r0, [r7, #0xa] - cmp r0, #6 - bne _080624C4 - movs r3, #0x10 - add sb, r3 -_080624C4: - mov r0, ip - ldrb r0, [r0] - cmp sb, r0 - beq _080624EC - cmp r2, #0 - bne _080624D8 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bgt _080624EC -_080624D8: - adds r0, r7, #0 - mov r1, sb - bl sub_080042AC - movs r0, #0x1e - mov r1, r8 - strb r0, [r1] - b _080624F2 - .align 2, 0 -_080624E8: .4byte gLinkEntity -_080624EC: - adds r0, r7, #0 - bl sub_080042B8 -_080624F2: - adds r0, r7, #0 - bl sub_0800451C -_080624F8: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08062500 -sub_08062500: @ 0x08062500 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa0 - bl sub_0801D8E0 - str r0, [r5, #0x64] - cmp r0, #0 - beq _08062528 - adds r0, r5, #0 - adds r0, #0x68 - movs r4, #0 - movs r1, #1 - strb r1, [r0] - adds r0, r5, #0 - bl sub_080788E0 - str r4, [r5, #0x48] - adds r0, r5, #0 - bl sub_0806252C -_08062528: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806252C -sub_0806252C: @ 0x0806252C - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r4, _08062618 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - ldr r3, _0806261C @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r5 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _08062620 @ =0x0000FFFF - ands r0, r2 - adds r5, r0, #0 - orrs r5, r1 - ldrh r0, [r4, #0x36] - ands r3, r6 - orrs r3, r0 - ldr r0, _08062624 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08062628 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _0806262C @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _08062630 @ =0x3FFFFFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov sl, r1 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov r8, r1 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - ldr r3, [r7, #0x64] - movs r0, #0 - mov sb, r0 - mov ip, r0 - movs r4, #0x13 -_080625C8: - mov r1, ip - asrs r0, r1, #8 - subs r0, r5, r0 - strh r0, [r3] - lsrs r0, r5, #0x10 - mov r2, sb - asrs r1, r2, #8 - subs r0, r0, r1 - strh r0, [r3, #2] - strh r6, [r3, #4] - lsrs r0, r6, #0x10 - strb r0, [r3, #6] - ldrb r0, [r7, #0x14] - movs r1, #0x3f - ands r1, r0 - ldrb r2, [r3, #7] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r1, r7, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #6 - movs r2, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r3, #8 - add sb, r8 - add ip, sl - subs r4, #1 - cmp r4, #0 - bge _080625C8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08062618: .4byte gLinkEntity -_0806261C: .4byte 0xFFFF0000 -_08062620: .4byte 0x0000FFFF -_08062624: .4byte gUnk_03003F80 -_08062628: .4byte 0xFF00FFFF -_0806262C: .4byte 0xC0FFFFFF -_08062630: .4byte 0x3FFFFFFF - - thumb_func_start sub_08062634 -sub_08062634: @ 0x08062634 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xb] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - ldr r0, _08062658 @ =gUnk_0810BDE8 - lsls r1, r1, #1 - lsls r4, r4, #2 - adds r1, r1, r4 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_08062658: .4byte gUnk_0810BDE8 - - thumb_func_start sub_0806265C -sub_0806265C: @ 0x0806265C - push {lr} - adds r2, r0, #0 - ldr r3, _08062674 @ =gUnk_02002A40 - ldrb r0, [r3, #8] - cmp r0, #0 - bne _08062678 - movs r0, #0 - adds r1, r2, #0 - bl sub_08056398 - b _08062690 - .align 2, 0 -_08062674: .4byte gUnk_02002A40 -_08062678: - ldrb r0, [r2, #0xa] - lsls r1, r0, #3 - adds r1, r1, r0 - lsls r1, r1, #3 - ldr r0, _08062694 @ =gUnk_0810BE10 - adds r1, r1, r0 - ldrb r0, [r3, #8] - lsls r0, r0, #3 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_0806F1AC -_08062690: - pop {pc} - .align 2, 0 -_08062694: .4byte gUnk_0810BE10 - - thumb_func_start sub_08062698 -sub_08062698: @ 0x08062698 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0xc0 - strh r0, [r4, #0x24] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080626AC -sub_080626AC: @ 0x080626AC - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x40 - strb r0, [r4, #0xe] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080626C0 -sub_080626C0: @ 0x080626C0 - push {lr} - adds r2, r0, #0 - movs r0, #0 - str r0, [r1, #0x14] - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _080626DC - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080626DC - movs r0, #1 - str r0, [r1, #0x14] -_080626DC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080626E0 -sub_080626E0: @ 0x080626E0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _0806270E - adds r0, #1 - strb r0, [r4, #0x18] - movs r0, #0xa - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - ldrh r2, [r4, #4] - ldr r1, _08062778 @ =gUnk_03000BF0 - ldrh r0, [r4, #6] - ldrh r3, [r1, #6] - adds r0, r0, r3 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] -_0806270E: - ldrb r0, [r4, #0x19] - subs r0, #1 - strb r0, [r4, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806274A - movs r0, #0xa - strb r0, [r4, #0x19] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r3, #0x32 - ldrsh r2, [r5, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - bl sub_08000E50 - movs r1, #0xb - bl __modsi3 - ldrb r1, [r5, #0x15] - adds r1, r1, r0 - subs r1, #5 - strb r1, [r5, #0x15] -_0806274A: - movs r0, #0x24 - ldrsh r1, [r5, r0] - ldrb r2, [r5, #0x15] - adds r0, r5, #0 - bl sub_0806F62C - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r3, #0x1e - ldrsh r0, [r4, r3] - subs r1, r1, r0 - lsls r1, r1, #8 - ldrh r0, [r5, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x11 - adds r1, r1, r0 - movs r2, #0x24 - ldrsh r0, [r5, r2] - cmp r1, r0 - bhi _0806277C - ldrh r0, [r4, #0x1e] - strh r0, [r5, #0x2e] - b _08062782 - .align 2, 0 -_08062778: .4byte gUnk_03000BF0 -_0806277C: - ldr r1, _08062784 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08062782: - pop {r4, r5, pc} - .align 2, 0 -_08062784: .4byte gUnk_02033280 - - thumb_func_start sub_08062788 -sub_08062788: @ 0x08062788 - push {r4, lr} - ldr r4, _080627CC @ =0x00004072 - ldr r1, _080627D0 @ =0x0000060B - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _080627D4 @ =0x0000060C - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _080627D8 @ =0x0000060D - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _080627DC @ =0x0000064B - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _080627E0 @ =0x0000064C - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _080627E4 @ =0x0000064D - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - pop {r4, pc} - .align 2, 0 -_080627CC: .4byte 0x00004072 -_080627D0: .4byte 0x0000060B -_080627D4: .4byte 0x0000060C -_080627D8: .4byte 0x0000060D -_080627DC: .4byte 0x0000064B -_080627E0: .4byte 0x0000064C -_080627E4: .4byte 0x0000064D - - thumb_func_start sub_080627E8 -sub_080627E8: @ 0x080627E8 - push {lr} - ldr r0, _0806281C @ =0x0000060B - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08062820 @ =0x0000060C - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08062824 @ =0x0000060D - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08062828 @ =0x0000064B - movs r1, #1 - bl sub_0807BA8C - ldr r0, _0806282C @ =0x0000064C - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08062830 @ =0x0000064D - movs r1, #1 - bl sub_0807BA8C - pop {pc} - .align 2, 0 -_0806281C: .4byte 0x0000060B -_08062820: .4byte 0x0000060C -_08062824: .4byte 0x0000060D -_08062828: .4byte 0x0000064B -_0806282C: .4byte 0x0000064C -_08062830: .4byte 0x0000064D - - thumb_func_start sub_08062834 -sub_08062834: @ 0x08062834 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xa] - lsls r0, r4, #2 - mov ip, r0 - ldr r2, _08062868 @ =gUnk_0810C0A0 - add r2, ip - adds r0, r5, #0 - adds r0, #0x5a - ldrb r3, [r0] - movs r1, #0x1f - adds r0, r1, #0 - ands r0, r3 - ldrb r3, [r2] - adds r6, r0, r3 - ldrb r0, [r5, #0x1e] - ands r1, r0 - ldrb r2, [r2, #1] - adds r7, r1, r2 - cmp r4, #8 - bhi _08062946 - ldr r0, _0806286C @ =_08062870 - add r0, ip - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08062868: .4byte gUnk_0810C0A0 -_0806286C: .4byte _08062870 @ jump table -_08062870: - .4byte _08062894 @ case 0 - .4byte _08062894 @ case 1 - .4byte _08062894 @ case 2 - .4byte _08062894 @ case 3 - .4byte _08062894 @ case 4 - .4byte _08062894 @ case 5 - .4byte _080628D8 @ case 6 - .4byte _08062922 @ case 7 - .4byte _08062922 @ case 8 -_08062894: - adds r0, r5, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #0x30 - ands r0, r1 - lsrs r4, r0, #4 - cmp r4, #0 - beq _080628A6 - adds r4, #0x50 -_080628A6: - subs r4, #1 - adds r0, r5, #0 - movs r1, #0 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - adds r2, r7, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - b _08062916 -_080628D8: - adds r0, r5, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0xf - ands r2, r0 - cmp r2, #0 - beq _080628E8 - adds r2, #0x93 -_080628E8: - subs r2, #1 - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - adds r2, r7, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 -_08062916: - bl sub_0806FFD8 - adds r0, r5, #0 - bl sub_0807000C - b _08062946 -_08062922: - adds r0, r5, #0 - movs r1, #0 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - adds r2, r7, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r5, #0 - bl sub_0807000C -_08062946: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08062948 -sub_08062948: @ 0x08062948 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldrb r0, [r6, #0x18] - cmp r0, #0 - bne _080629B4 - adds r0, #1 - strb r0, [r6, #0x18] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strh r0, [r6, #0x12] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _08062990 - cmp r0, #8 - bgt _0806297E - cmp r0, #0 - beq _08062988 - b _080629A6 -_0806297E: - cmp r0, #0x10 - beq _08062998 - cmp r0, #0x18 - beq _080629A0 - b _080629A6 -_08062988: - cmp r1, #0x10 - bne _080629A6 - movs r1, #8 - b _080629A6 -_08062990: - cmp r1, #0x18 - bne _080629A6 - movs r1, #0x10 - b _080629A6 -_08062998: - cmp r1, #0 - bne _080629A6 - movs r1, #0x18 - b _080629A6 -_080629A0: - cmp r1, #8 - bne _080629A6 - movs r1, #0 -_080629A6: - strb r1, [r4, #0x15] - adds r0, r1, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] - movs r0, #0x80 - strh r0, [r4, #0x24] -_080629B4: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - adds r1, r0, #4 - adds r5, r4, #0 - adds r5, #0x58 - ldrb r0, [r5] - cmp r1, r0 - beq _080629D2 - adds r0, r4, #0 - bl sub_08004260 - ldrb r1, [r5] - adds r0, r4, #0 - adds r0, #0x80 - strh r1, [r0] -_080629D2: - adds r0, r4, #0 - bl sub_080AEF88 - movs r3, #0x2e - ldrsh r1, [r4, r3] - adds r2, r4, #0 - adds r2, #0x6c - movs r5, #0 - ldrsh r0, [r2, r5] - subs r1, r1, r0 - cmp r1, #0x10 - ble _080629F4 - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r6, #0x12] -_080629F4: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _08062A06 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r6, #0x12] -_08062A06: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x6e - movs r5, #0 - ldrsh r0, [r2, r5] - subs r1, r1, r0 - cmp r1, #0x10 - ble _08062A22 - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r6, #0x12] -_08062A22: - cmp r1, r3 - bge _08062A30 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r6, #0x12] -_08062A30: - ldrh r0, [r6, #0x12] - subs r0, #1 - strh r0, [r6, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08062A42 - ldr r1, _08062A44 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08062A42: - pop {r4, r5, r6, pc} - .align 2, 0 -_08062A44: .4byte gUnk_02033280 - - thumb_func_start sub_08062A48 -sub_08062A48: @ 0x08062A48 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x6a - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08062A60 -sub_08062A60: @ 0x08062A60 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062AB0 - ldr r1, _08062AAC @ =gUnk_0810BDC4 - ldrb r0, [r4, #0xa] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08062AB6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #8 - strh r0, [r4, #0x32] - movs r1, #6 - ldrb r0, [r4, #0xa] - cmp r0, #6 - bne _08062AA2 - movs r1, #0x16 -_08062AA2: - adds r0, r4, #0 - bl sub_08004260 - b _08062AB6 - .align 2, 0 -_08062AAC: .4byte gUnk_0810BDC4 -_08062AB0: - adds r0, r4, #0 - bl sub_08004274 -_08062AB6: - pop {r4, pc} - - thumb_func_start sub_08062AB8 -sub_08062AB8: @ 0x08062AB8 - push {lr} - ldr r2, _08062ACC @ =gUnk_0810C268 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08062ACC: .4byte gUnk_0810C268 - - thumb_func_start sub_08062AD0 -sub_08062AD0: @ 0x08062AD0 - bx lr - .align 2, 0 - - thumb_func_start sub_08062AD4 -sub_08062AD4: @ 0x08062AD4 - bx lr - .align 2, 0 - - thumb_func_start sub_08062AD8 -sub_08062AD8: @ 0x08062AD8 - push {lr} - ldr r2, _08062AEC @ =gUnk_0810C290 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08062AEC: .4byte gUnk_0810C290 - - thumb_func_start sub_08062AF0 -sub_08062AF0: @ 0x08062AF0 - 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 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08062B14 -sub_08062B14: @ 0x08062B14 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08062B40 - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0805E47C -_08062B40: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - - thumb_func_start sub_08062B48 -sub_08062B48: @ 0x08062B48 - 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 _08062B6A - ldr r0, _08062B6C @ =0x00000A01 - bl sub_08056378 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_08062B6A: - pop {r4, pc} - .align 2, 0 -_08062B6C: .4byte 0x00000A01 - - thumb_func_start sub_08062B70 -sub_08062B70: @ 0x08062B70 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08062B94 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08062B92 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805E584 -_08062B92: - pop {r4, pc} - .align 2, 0 -_08062B94: .4byte gUnk_02000050 - - thumb_func_start sub_08062B98 -sub_08062B98: @ 0x08062B98 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08062BBC - ldr r0, _08062BB8 @ =gUnk_0810C2DC - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08062BCC - .align 2, 0 -_08062BB8: .4byte gUnk_0810C2DC -_08062BBC: - ldr r0, _08062BD0 @ =gUnk_0810C2CC - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08062BCC: - pop {pc} - .align 2, 0 -_08062BD0: .4byte gUnk_0810C2CC - - thumb_func_start sub_08062BD4 -sub_08062BD4: @ 0x08062BD4 - 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 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08062BF8 -sub_08062BF8: @ 0x08062BF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08062C1C - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805E47C -_08062C1C: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - - thumb_func_start sub_08062C24 -sub_08062C24: @ 0x08062C24 - 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 _08062C4E - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - ldr r0, _08062C50 @ =0x00000A01 - bl sub_08056378 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_08062C4E: - pop {r4, pc} - .align 2, 0 -_08062C50: .4byte 0x00000A01 - - thumb_func_start sub_08062C54 -sub_08062C54: @ 0x08062C54 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08062C78 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08062C76 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0805E584 -_08062C76: - pop {r4, pc} - .align 2, 0 -_08062C78: .4byte gUnk_02000050 - - thumb_func_start sub_08062C7C -sub_08062C7C: @ 0x08062C7C - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #0x25 - movs r2, #0 - bl CreateFX - adds r0, r4, #0 - bl sub_08062CA4 - pop {r4, pc} - - thumb_func_start sub_08062CA4 -sub_08062CA4: @ 0x08062CA4 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_08062CBC -sub_08062CBC: @ 0x08062CBC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2c - bl sub_0801E7F4 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - lsls r1, r1, #3 - ldr r0, _08062CDC @ =gUnk_0810C2E4 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806F1AC - pop {r4, pc} - .align 2, 0 -_08062CDC: .4byte gUnk_0810C2E4 - - thumb_func_start sub_08062CE0 -sub_08062CE0: @ 0x08062CE0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _08062CEE - movs r0, #1 - strb r0, [r1, #0xc] -_08062CEE: - pop {pc} - - thumb_func_start sub_08062CF0 -sub_08062CF0: @ 0x08062CF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062D0C - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_08062D0C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08062D18 -sub_08062D18: @ 0x08062D18 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r4, #0 - movs r0, #0x4f - bl sub_0807CA84 - cmp r0, #0 - beq _08062D36 - movs r0, #0x26 - bl sub_0807CBD0 - cmp r0, #0 - bne _08062D36 - movs r4, #7 -_08062D36: - movs r0, #0x4e - bl sub_0807CA84 - cmp r0, #0 - beq _08062D4C - movs r0, #0x25 - bl sub_0807CBD0 - cmp r0, #0 - bne _08062D4C - movs r4, #6 -_08062D4C: - movs r0, #0x4d - bl sub_0807CA84 - cmp r0, #0 - beq _08062D62 - movs r0, #0x24 - bl sub_0807CBD0 - cmp r0, #0 - bne _08062D62 - movs r4, #5 -_08062D62: - movs r0, #0x4c - bl sub_0807CA84 - cmp r0, #0 - beq _08062D78 - movs r0, #0x23 - bl sub_0807CBD0 - cmp r0, #0 - bne _08062D78 - movs r4, #4 -_08062D78: - movs r0, #0x4b - bl sub_0807CA84 - cmp r0, #0 - beq _08062D8E - movs r0, #0x22 - bl sub_0807CBD0 - cmp r0, #0 - bne _08062D8E - movs r4, #3 -_08062D8E: - movs r0, #0x4a - bl sub_0807CA84 - cmp r0, #0 - beq _08062DA4 - movs r0, #0x21 - bl sub_0807CBD0 - cmp r0, #0 - bne _08062DA4 - movs r4, #2 -_08062DA4: - movs r0, #0x49 - bl sub_0807CA84 - cmp r0, #0 - beq _08062DBA - movs r0, #0x20 - bl sub_0807CBD0 - cmp r0, #0 - bne _08062DBA - movs r4, #1 -_08062DBA: - strb r4, [r5, #0xb] - movs r4, #0 - ldr r0, _08062DCC @ =0x00001C1F - bl sub_0807CBE4 - cmp r0, #0 - beq _08062DD0 - movs r4, #1 - b _08062DF0 - .align 2, 0 -_08062DCC: .4byte 0x00001C1F -_08062DD0: - movs r0, #0x8c - bl sub_0807CBD0 - cmp r0, #0 - beq _08062DE4 - movs r4, #2 - movs r0, #0x8c - bl sub_0807CD34 - b _08062DF0 -_08062DE4: - movs r0, #0x8b - bl sub_0807CBD0 - cmp r0, #0 - beq _08062DF0 - movs r4, #3 -_08062DF0: - ldr r0, _08062E08 @ =gUnk_0810C34C - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - cmp r4, #0 - bne _08062E0C - movs r0, #1 - b _08062E0E - .align 2, 0 -_08062E08: .4byte gUnk_0810C34C -_08062E0C: - movs r0, #0 -_08062E0E: - str r0, [r6, #0x14] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08062E14 -sub_08062E14: @ 0x08062E14 - push {lr} - movs r0, #0x8b - bl sub_0807CCB4 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08062E20 -sub_08062E20: @ 0x08062E20 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062E50 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - ldr r0, _08062E5C @ =gUnk_0810C3C0 - str r0, [r4, #0x48] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xfe - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD64 -_08062E50: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - pop {r4, pc} - .align 2, 0 -_08062E5C: .4byte gUnk_0810C3C0 - - thumb_func_start sub_08062E60 -sub_08062E60: @ 0x08062E60 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062E88 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - ldr r0, _08062EB4 @ =gUnk_0810C428 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0807DD64 -_08062E88: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08062EB2 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x28 - strh r1, [r0] -_08062EB2: - pop {r4, pc} - .align 2, 0 -_08062EB4: .4byte gUnk_0810C428 - - thumb_func_start sub_08062EB8 -sub_08062EB8: @ 0x08062EB8 - push {lr} - movs r0, #0x68 - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0x69 - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0x6a - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0x6b - movs r1, #0 - bl sub_0807CAA0 - pop {pc} - - thumb_func_start sub_08062EDC -sub_08062EDC: @ 0x08062EDC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #0x68 - bl sub_0807CA84 - cmp r0, #0 - beq _08062EEE - movs r4, #0 -_08062EEE: - movs r0, #0x69 - bl sub_0807CA84 - cmp r0, #0 - beq _08062EFA - movs r4, #1 -_08062EFA: - movs r0, #0x6a - bl sub_0807CA84 - cmp r0, #0 - beq _08062F06 - movs r4, #2 -_08062F06: - movs r0, #0x6b - bl sub_0807CA84 - cmp r0, #0 - beq _08062F12 - movs r4, #3 -_08062F12: - movs r0, #0x5b - bl sub_0807CBD0 - cmp r0, #0 - bne _08062F24 - movs r0, #0x5b - bl sub_0807CCB4 - movs r4, #4 -_08062F24: - bl sub_08000E50 - movs r1, #0xff - ands r1, r0 - ldr r0, _08062F58 @ =gUnk_0810C430 - adds r0, r4, r0 - ldrb r0, [r0] - cmp r1, r0 - bhi _08062F68 - ldr r0, _08062F5C @ =gUnk_0810C435 - bl sub_080028F4 - adds r4, r0, #0 - ldr r0, _08062F60 @ =gUnk_0810C43D - adds r0, r4, r0 - ldrb r1, [r0] - movs r0, #0x5c - movs r2, #1 - bl sub_080A7C18 - ldr r0, _08062F64 @ =0x00003C05 - adds r1, r6, #0 - bl sub_08056398 - movs r0, #1 - b _08062F6A - .align 2, 0 -_08062F58: .4byte gUnk_0810C430 -_08062F5C: .4byte gUnk_0810C435 -_08062F60: .4byte gUnk_0810C43D -_08062F64: .4byte 0x00003C05 -_08062F68: - movs r0, #0 -_08062F6A: - str r0, [r5, #0x14] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08062F70 -sub_08062F70: @ 0x08062F70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08062FA0 - ldr r1, _08062FE8 @ =gUnk_0810C48C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08062FE4 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_08062FA0: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - adds r4, #0x5b - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08062FCC - movs r0, #0xef - ands r0, r1 - strb r0, [r4] - ldr r0, _08062FEC @ =0x000001CF - bl sub_08004488 -_08062FCC: - ldrb r1, [r4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08062FE4 - movs r0, #0xdf - ands r0, r1 - strb r0, [r4] - movs r0, #0x88 - lsls r0, r0, #2 - bl sub_08004488 -_08062FE4: - pop {r4, pc} - .align 2, 0 -_08062FE8: .4byte gUnk_0810C48C -_08062FEC: .4byte 0x000001CF - - thumb_func_start sub_08062FF0 -sub_08062FF0: @ 0x08062FF0 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08063006 - movs r6, #1 - movs r5, #0 - b _0806300A -_08063006: - movs r6, #0 - movs r5, #1 -_0806300A: - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - movs r7, #0x8e - lsls r7, r7, #1 - cmp r0, #0 - beq _0806301E - movs r7, #0x16 -_0806301E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - subs r2, #1 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r7, #0 - bl sub_0806FF10 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0806305C -sub_0806305C: @ 0x0806305C - 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 - strb r0, [r2] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - movs r2, #0x80 - lsls r2, r2, #1 - str r2, [r4, #0x6c] - str r2, [r4, #0x70] - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - movs r1, #0x10 - bl sub_080042AC - adds r4, #0x80 - movs r0, #0x10 - strh r0, [r4] - ldr r0, _080630A0 @ =0x0000016F - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_080630A0: .4byte 0x0000016F - - thumb_func_start sub_080630A4 -sub_080630A4: @ 0x080630A4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x6d - ldrb r0, [r0] - cmp r0, #0 - beq _080630BA - ldr r0, [r4, #0x6c] - adds r0, #0x80 - lsls r0, r0, #0x14 - lsrs r5, r0, #0x17 - b _080630D0 -_080630BA: - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r0] - lsrs r1, r1, #6 - movs r0, #3 - eors r1, r0 - adds r1, #1 - movs r0, #0x10 - bl __divsi3 - asrs r5, r0, #1 -_080630D0: - movs r0, #0x80 - lsls r0, r0, #1 - ldr r2, [r4, #0x70] - cmp r2, r0 - bls _080630E4 - adds r0, r2, #0 - adds r0, #0x80 - lsls r0, r0, #0x14 - lsrs r3, r0, #0x17 - b _080630F4 -_080630E4: - cmp r2, r0 - bne _080630EC - movs r3, #0x10 - b _080630F4 -_080630EC: - ldr r1, _08063110 @ =gUnk_0810C498 - lsrs r0, r2, #5 - adds r0, r0, r1 - ldrb r3, [r0] -_080630F4: - movs r6, #0x80 - lsls r6, r6, #9 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r1, #3 - ands r1, r0 - cmp r1, #2 - beq _08063144 - cmp r1, #2 - bgt _08063114 - cmp r1, #1 - beq _0806311A - b _080631CA - .align 2, 0 -_08063110: .4byte gUnk_0810C498 -_08063114: - cmp r1, #3 - beq _0806317A - b _080631CA -_0806311A: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r4, #0x6c] - cmp r0, #0x80 - bls _08063132 - subs r0, r0, r5 - str r0, [r4, #0x6c] -_08063132: - lsls r1, r3, #1 - ldr r0, [r4, #0x70] - adds r0, r0, r1 - str r0, [r4, #0x70] - lsls r1, r6, #1 - ldr r0, [r4, #0x30] - adds r0, r0, r1 - str r0, [r4, #0x30] - b _080631CA -_08063144: - ldr r0, [r4, #0x6c] - adds r0, r0, r5 - str r0, [r4, #0x6c] - ldr r1, [r4, #0x70] - movs r2, #0x80 - lsls r2, r2, #1 - cmp r1, r2 - bls _0806316C - ldr r0, _08063168 @ =0x0000017F - cmp r1, r0 - bhi _0806315C - lsrs r3, r3, #1 -_0806315C: - subs r0, r1, r3 - cmp r0, #0xff - bhi _08063172 - str r2, [r4, #0x70] - b _08063174 - .align 2, 0 -_08063168: .4byte 0x0000017F -_0806316C: - cmp r1, #0x80 - bls _08063174 - subs r0, r1, r3 -_08063172: - str r0, [r4, #0x70] -_08063174: - ldr r0, [r4, #0x34] - subs r0, r0, r6 - b _080631C8 -_0806317A: - ldr r0, [r4, #0x6c] - ldr r1, _080631B4 @ =0x0000033F - cmp r0, r1 - bhi _08063186 - adds r0, r0, r5 - str r0, [r4, #0x6c] -_08063186: - cmp r2, r1 - bls _080631BC - movs r2, #0x80 - lsls r2, r2, #1 - adds r0, r4, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - movs r1, #0x11 - bl sub_080042AC - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #0x11 - strh r0, [r1] - ldr r2, _080631B8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _080631DC - .align 2, 0 -_080631B4: .4byte 0x0000033F -_080631B8: .4byte gUnk_02033280 -_080631BC: - lsls r0, r3, #1 - adds r0, r2, r0 - str r0, [r4, #0x70] - ldr r0, [r4, #0x34] - ldr r1, _080631E0 @ =0xFFFE0000 - adds r0, r0, r1 -_080631C8: - str r0, [r4, #0x34] -_080631CA: - ldr r1, [r4, #0x6c] - ldr r2, [r4, #0x70] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - ldr r1, _080631E4 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_080631DC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080631E0: .4byte 0xFFFE0000 -_080631E4: .4byte gUnk_02033280 - - thumb_func_start sub_080631E8 -sub_080631E8: @ 0x080631E8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806320C @ =gUnk_0810C804 - 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] - cmp r0, #0 - beq _08063208 - adds r0, r4, #0 - bl sub_0806ED78 -_08063208: - pop {r4, pc} - .align 2, 0 -_0806320C: .4byte gUnk_0810C804 - - thumb_func_start sub_08063210 -sub_08063210: @ 0x08063210 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - movs r1, #0 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063220 -sub_08063220: @ 0x08063220 - push {lr} - adds r2, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08063238 - movs r0, #2 - strb r0, [r2, #0xc] - movs r1, #8 - b _0806323A -_08063238: - movs r1, #0 -_0806323A: - adds r0, r2, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _0806324C - adds r0, r2, #0 - bl sub_080042AC - b _08063252 -_0806324C: - adds r0, r2, #0 - bl sub_08063280 -_08063252: - pop {pc} - - thumb_func_start sub_08063254 -sub_08063254: @ 0x08063254 - push {r4, lr} - adds r4, r0, #0 - bl sub_08063280 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08063274 - movs r0, #3 - strb r0, [r4, #0xc] - movs r0, #0 - bl sub_08056378 -_08063274: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08063278 -sub_08063278: @ 0x08063278 - push {lr} - bl sub_08063280 - pop {pc} - - thumb_func_start sub_08063280 -sub_08063280: @ 0x08063280 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r2, [r3] - movs r1, #0x7f - ands r1, r2 - adds r0, r1, #0 - eors r0, r2 - strb r0, [r3] - cmp r1, #2 - bne _080632A6 - adds r0, r4, #0 - movs r1, #0x31 - movs r2, #0 - bl CreateFX -_080632A6: - pop {r4, pc} - - thumb_func_start sub_080632A8 -sub_080632A8: @ 0x080632A8 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080632BE - adds r0, r2, #0 - bl sub_08063410 - b _080632C4 -_080632BE: - adds r0, r2, #0 - bl sub_080632C8 -_080632C4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080632C8 -sub_080632C8: @ 0x080632C8 - push {lr} - ldr r2, _080632DC @ =gUnk_0810C8E0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080632DC: .4byte gUnk_0810C8E0 - - thumb_func_start sub_080632E0 -sub_080632E0: @ 0x080632E0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08063310 @ =gUnk_0810C8D4 - bl sub_0806FDEC - cmp r0, #0 - beq _0806330E - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 - 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, #1 - strb r0, [r4, #0xc] -_0806330E: - pop {r4, pc} - .align 2, 0 -_08063310: .4byte gUnk_0810C8D4 - - thumb_func_start sub_08063314 -sub_08063314: @ 0x08063314 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - movs r1, #0xff - ands r0, r1 - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08063342 - adds r0, r4, #0 - bl sub_080633C8 - adds r1, r0, #0 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _08063342 - adds r0, r4, #0 - bl sub_08004260 -_08063342: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08063360 - ldrb r0, [r4, #0xe] - ldr r1, _08063368 @ =0x00000A01 - adds r0, r0, r1 - bl sub_08056378 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] -_08063360: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08063368: .4byte 0x00000A01 - - thumb_func_start sub_0806336C -sub_0806336C: @ 0x0806336C - push {lr} - adds r2, r0, #0 - ldr r0, _0806338C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806338A - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - movs r1, #8 - bl sub_08004260 -_0806338A: - pop {pc} - .align 2, 0 -_0806338C: .4byte gUnk_02000050 - - thumb_func_start sub_08063390 -sub_08063390: @ 0x08063390 - 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 _080633BE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_080633BE: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080633C8 -sub_080633C8: @ 0x080633C8 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - cmp r0, #0 - bge _080633DE - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] -_080633DE: - pop {r4, pc} - - thumb_func_start sub_080633E0 -sub_080633E0: @ 0x080633E0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_08063410 -sub_08063410: @ 0x08063410 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _08063442 - ldr r1, _08063464 @ =gUnk_0810C8D4 - bl sub_0806FDEC - cmp r0, #0 - beq _08063462 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08063436 - ldr r0, _08063468 @ =gUnk_0810C894 - str r0, [r4, #0x48] - strb r5, [r4, #0xb] -_08063436: - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08078778 -_08063442: - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _0806344E - adds r0, r4, #0 - bl sub_0806346C -_0806344E: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 -_08063462: - pop {r4, r5, pc} - .align 2, 0 -_08063464: .4byte gUnk_0810C8D4 -_08063468: .4byte gUnk_0810C894 - - thumb_func_start sub_0806346C -sub_0806346C: @ 0x0806346C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r6, _080634D8 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r6, r0] - movs r2, #0x2e - ldrsh r0, [r5, r2] - subs r4, r1, r0 - movs r0, #0x32 - ldrsh r1, [r6, r0] - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r3, r1, r0 - adds r4, #0x30 - adds r3, #0x18 - cmp r4, #0 - bge _08063490 - movs r4, #0 -_08063490: - cmp r4, #0x50 - ble _08063496 - movs r4, #0x50 -_08063496: - cmp r3, #0 - bge _0806349C - movs r3, #0 -_0806349C: - cmp r3, #0x40 - ble _080634A2 - movs r3, #0x40 -_080634A2: - asrs r4, r4, #4 - asrs r3, r3, #4 - ldr r2, _080634DC @ =gUnk_0810C8F0 - ldrb r1, [r6, #0x14] - lsrs r1, r1, #1 - lsls r0, r4, #2 - adds r1, r1, r0 - lsls r0, r3, #1 - adds r0, r0, r3 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r4, [r1] - ldrb r0, [r5, #0xb] - cmp r4, r0 - beq _080634D6 - lsls r3, r4, #3 - ldr r0, _080634E0 @ =gUnk_0810C89C - adds r3, r3, r0 - movs r2, #4 - ldrsb r2, [r3, r2] - adds r0, r5, #0 - movs r1, #1 - bl sub_08078850 - strb r4, [r5, #0xb] -_080634D6: - pop {r4, r5, r6, pc} - .align 2, 0 -_080634D8: .4byte gLinkEntity -_080634DC: .4byte gUnk_0810C8F0 -_080634E0: .4byte gUnk_0810C89C - - thumb_func_start sub_080634E4 -sub_080634E4: @ 0x080634E4 - ldrb r0, [r0, #0xb] - str r0, [r1, #4] - bx lr - .align 2, 0 - - thumb_func_start sub_080634EC -sub_080634EC: @ 0x080634EC - ldr r2, _080634FC @ =gUnk_02034350 - ldr r1, _08063500 @ =gUnk_0810C88C - ldrb r0, [r0, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r2, #6] - bx lr - .align 2, 0 -_080634FC: .4byte gUnk_02034350 -_08063500: .4byte gUnk_0810C88C - - thumb_func_start sub_08063504 -sub_08063504: @ 0x08063504 - push {r4, lr} - adds r4, r1, #0 - ldr r1, _08063520 @ =gUnk_0810C88C - ldrb r0, [r0, #0xb] - adds r0, r0, r1 - ldrb r0, [r0] - bl sub_080544DC - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - str r1, [r4, #0x14] - pop {r4, pc} - .align 2, 0 -_08063520: .4byte gUnk_0810C88C - - thumb_func_start sub_08063524 -sub_08063524: @ 0x08063524 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806353A - adds r0, r2, #0 - bl sub_0806362C - b _08063540 -_0806353A: - adds r0, r2, #0 - bl sub_08063544 -_08063540: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063544 -sub_08063544: @ 0x08063544 - push {lr} - ldr r2, _08063558 @ =gUnk_0810CAA0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08063558: .4byte gUnk_0810CAA0 - - thumb_func_start sub_0806355C -sub_0806355C: @ 0x0806355C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #4 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08063584 -sub_08063584: @ 0x08063584 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - cmp r0, #0 - blt _080635B2 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080635B8 - bl sub_08000E50 - movs r1, #0x3f - ands r1, r0 - cmp r1, #0 - bne _080635B2 - movs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC -_080635B2: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _080635D0 -_080635B8: - 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 _080635D0 - movs r0, #0 - strb r0, [r4, #0xf] -_080635D0: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _080635FC - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - ldrb r0, [r4, #0xe] - ldr r1, _08063604 @ =0x00000A01 - adds r0, r0, r1 - bl sub_08056378 -_080635FC: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08063604: .4byte 0x00000A01 - - thumb_func_start sub_08063608 -sub_08063608: @ 0x08063608 - push {lr} - adds r2, r0, #0 - ldr r0, _08063628 @ =gUnk_02000050 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08063626 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xf] - adds r0, r2, #0 - movs r1, #4 - bl sub_080042AC -_08063626: - pop {pc} - .align 2, 0 -_08063628: .4byte gUnk_02000050 - - thumb_func_start sub_0806362C -sub_0806362C: @ 0x0806362C - push {r4, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _08063662 - cmp r3, #1 - bgt _08063640 - cmp r3, #0 - beq _08063646 - b _080636D4 -_08063640: - cmp r3, #2 - beq _080636BA - b _080636D4 -_08063646: - 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 - adds r0, #0x69 - strb r3, [r0] - adds r0, r4, #0 - bl sub_0807DD64 -_08063662: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080636A4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _080636A0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _080636D4 - .align 2, 0 -_080636A0: .4byte gLinkEntity -_080636A4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - b _080636D4 -_080636BA: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080636D4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_080636D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080636D8 -sub_080636D8: @ 0x080636D8 - push {lr} - ldr r1, _080636EC @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _080636F0 @ =gUnk_0810CAAC - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080636EC: .4byte gUnk_02002A40 -_080636F0: .4byte gUnk_0810CAAC - - thumb_func_start sub_080636F4 -sub_080636F4: @ 0x080636F4 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806370C -sub_0806370C: @ 0x0806370C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08063738 - 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] - ldrh r0, [r2, #0x32] - subs r0, #4 - strh r0, [r2, #0x32] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _0806373E -_08063738: - adds r0, r2, #0 - bl sub_080042B8 -_0806373E: - pop {pc} - - thumb_func_start sub_08063740 -sub_08063740: @ 0x08063740 - push {lr} - ldr r2, _08063754 @ =gUnk_0810CBD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08063754: .4byte gUnk_0810CBD8 - - thumb_func_start sub_08063758 -sub_08063758: @ 0x08063758 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08063794 @ =gUnk_0810CB78 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080637B4 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - ands r1, r2 - lsls r1, r1, #6 - ldrb r2, [r4, #0x18] - subs r0, #0x42 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _08063798 - movs r0, #6 - b _0806379A - .align 2, 0 -_08063794: .4byte gUnk_0810CB78 -_08063798: - movs r0, #2 -_0806379A: - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - movs r1, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0807DD50 - adds r0, r4, #0 - bl sub_080637B8 -_080637B4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080637B8 -sub_080637B8: @ 0x080637B8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08063804 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08063800 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _080637F2 - adds r1, #4 -_080637F2: - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _0806382E - .align 2, 0 -_08063800: .4byte gLinkEntity -_08063804: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r5, r4, #0 - adds r5, #0x59 - ldrb r0, [r5] - cmp r0, #0xfe - bne _08063828 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r5] -_08063828: - adds r0, r4, #0 - bl sub_08004274 -_0806382E: - pop {r4, r5, pc} - - thumb_func_start sub_08063830 -sub_08063830: @ 0x08063830 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806384C - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_0806384C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08063850 -sub_08063850: @ 0x08063850 - push {lr} - ldrb r3, [r0, #0x18] - lsls r3, r3, #0x19 - lsrs r3, r3, #0x1f - rsbs r2, r3, #0 - orrs r2, r3 - asrs r2, r2, #0x1f - movs r3, #4 - ands r2, r3 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063874 -sub_08063874: @ 0x08063874 - ldrb r1, [r0, #0xe] - strb r1, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_0806387C -sub_0806387C: @ 0x0806387C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r4, #3 - movs r0, #0xda - bl sub_0807CBD0 - cmp r0, #0 - bne _08063896 - movs r4, #0 - movs r0, #0xda - bl sub_0807CCB4 - b _080638D6 -_08063896: - movs r0, #0xd1 - bl sub_0807CBD0 - cmp r0, #0 - bne _080638D6 - movs r5, #0 - movs r4, #1 -_080638A4: - ldr r0, _080638F8 @ =gUnk_02002B0E - adds r1, r4, #0 - bl sub_0801D5A8 - cmp r0, #0 - beq _080638B2 - adds r5, #1 -_080638B2: - adds r4, #1 - cmp r4, #0x82 - ble _080638A4 - movs r4, #1 - cmp r5, #0x81 - ble _080638D6 - movs r4, #2 - movs r0, #0xd1 - bl sub_0807CCB4 - ldr r0, _080638FC @ =0x00000A17 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _08063900 @ =0x00000A57 - movs r1, #1 - bl sub_0807BA8C -_080638D6: - ldr r0, _08063904 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r1, r0, #6 - cmp r1, #0 - bge _080638E2 - movs r1, #0 -_080638E2: - ldr r2, _08063908 @ =gUnk_0810CBE4 - lsls r0, r4, #1 - lsls r1, r1, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r6, #0 - bl sub_08056398 - pop {r4, r5, r6, pc} - .align 2, 0 -_080638F8: .4byte gUnk_02002B0E -_080638FC: .4byte 0x00000A17 -_08063900: .4byte 0x00000A57 -_08063904: .4byte gUnk_02002A40 -_08063908: .4byte gUnk_0810CBE4 - - thumb_func_start sub_0806390C -sub_0806390C: @ 0x0806390C - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #1 - movs r0, #0xd9 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806392E - movs r5, #0 - movs r0, #0xd9 - bl sub_0807CCB4 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #1 - str r0, [r1, #0x14] -_0806392E: - ldr r0, _08063940 @ =gUnk_0810CC04 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_08063940: .4byte gUnk_0810CC04 - - thumb_func_start sub_08063944 -sub_08063944: @ 0x08063944 - push {lr} - adds r3, r0, #0 - movs r0, #0 - str r0, [r1, #0x14] - ldr r0, _0806396C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _08063958 - movs r0, #0 -_08063958: - ldrb r1, [r3, #0xb] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _08063970 @ =gUnk_0810CC08 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806396C: .4byte gUnk_02002A40 -_08063970: .4byte gUnk_0810CC08 - - thumb_func_start sub_08063974 -sub_08063974: @ 0x08063974 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xa] - lsls r5, r5, #2 - ldr r0, _080639C8 @ =gUnk_0810CBC0 - adds r5, r5, r0 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0xf - ands r2, r0 - ldrb r0, [r5] - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldr r2, _080639CC @ =gUnk_0810CD88 - ldrb r1, [r4, #0x1e] - movs r0, #3 - ands r0, r1 - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r2, [r0] - ldrb r0, [r5, #1] - adds r2, r2, r0 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 -_080639C8: .4byte gUnk_0810CBC0 -_080639CC: .4byte gUnk_0810CD88 - - thumb_func_start sub_080639D0 -sub_080639D0: @ 0x080639D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_080639E8 -sub_080639E8: @ 0x080639E8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08063A40 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08063A3C @ =gUnk_0810CB78 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08063A5C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - movs r1, #0x41 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08096208 - b _08063A5C - .align 2, 0 -_08063A3C: .4byte gUnk_0810CB78 -_08063A40: - adds r5, r4, #0 - adds r5, #0x59 - ldrb r0, [r5] - cmp r0, #0xfe - bne _08063A56 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r5] -_08063A56: - adds r0, r4, #0 - bl sub_08004274 -_08063A5C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08063A60 -sub_08063A60: @ 0x08063A60 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08063A76 - adds r0, r2, #0 - bl sub_08063B68 - b _08063A7C -_08063A76: - adds r0, r2, #0 - bl sub_08063A80 -_08063A7C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063A80 -sub_08063A80: @ 0x08063A80 - push {lr} - ldr r2, _08063A94 @ =gUnk_0810CDF8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08063A94: .4byte gUnk_0810CDF8 - - thumb_func_start sub_08063A98 -sub_08063A98: @ 0x08063A98 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #4 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08063AC0 -sub_08063AC0: @ 0x08063AC0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - cmp r0, #0 - blt _08063AEE - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08063AF4 - bl sub_08000E50 - movs r1, #0x3f - ands r1, r0 - cmp r1, #0 - bne _08063AEE - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - movs r0, #1 - strb r0, [r4, #0xf] -_08063AEE: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _08063B0C -_08063AF4: - 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 _08063B0C - movs r0, #0 - strb r0, [r4, #0xf] -_08063B0C: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08063B38 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - ldrb r0, [r4, #0xe] - ldr r1, _08063B40 @ =0x00000A01 - adds r0, r0, r1 - bl sub_08056378 -_08063B38: - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_08063B40: .4byte 0x00000A01 - - thumb_func_start sub_08063B44 -sub_08063B44: @ 0x08063B44 - push {lr} - adds r2, r0, #0 - ldr r0, _08063B64 @ =gUnk_02000050 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08063B62 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xf] - adds r0, r2, #0 - movs r1, #4 - bl sub_080042AC -_08063B62: - pop {pc} - .align 2, 0 -_08063B64: .4byte gUnk_02000050 - - thumb_func_start sub_08063B68 -sub_08063B68: @ 0x08063B68 - push {r4, lr} - adds r4, r0, #0 - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _08063B9E - cmp r3, #1 - bgt _08063B7C - cmp r3, #0 - beq _08063B82 - b _08063C10 -_08063B7C: - cmp r3, #2 - beq _08063BF6 - b _08063C10 -_08063B82: - 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 - adds r0, #0x69 - strb r3, [r0] - adds r0, r4, #0 - bl sub_0807DD64 -_08063B9E: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08063BE0 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08063BDC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08063C10 - .align 2, 0 -_08063BDC: .4byte gLinkEntity -_08063BE0: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - b _08063C10 -_08063BF6: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08063C10 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_08063C10: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08063C14 -sub_08063C14: @ 0x08063C14 - push {lr} - movs r0, #7 - movs r1, #0x14 - bl sub_0805EB9C - cmp r0, #0 - beq _08063C28 - movs r1, #8 - bl sub_080042AC -_08063C28: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C2C -sub_08063C2C: @ 0x08063C2C - push {lr} - movs r0, #7 - movs r1, #0x14 - bl sub_0805EB9C - cmp r0, #0 - beq _08063C40 - movs r1, #4 - bl sub_080042AC -_08063C40: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C44 -sub_08063C44: @ 0x08063C44 - push {lr} - movs r0, #7 - movs r1, #0x14 - bl sub_0805EB9C - cmp r0, #0 - beq _08063C58 - movs r1, #0 - bl sub_080042AC -_08063C58: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C5C -sub_08063C5C: @ 0x08063C5C - push {lr} - movs r0, #7 - movs r1, #0x14 - bl sub_0805EB9C - cmp r0, #0 - beq _08063C70 - movs r1, #9 - bl sub_080042AC -_08063C70: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C74 -sub_08063C74: @ 0x08063C74 - push {lr} - movs r0, #7 - movs r1, #0x14 - bl sub_0805EB9C - cmp r0, #0 - beq _08063C8C - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #8 - bl sub_080A2CFC -_08063C8C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063C90 -sub_08063C90: @ 0x08063C90 - push {lr} - ldr r1, _08063CA4 @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _08063CA8 @ =gUnk_0810CE04 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08063CA4: .4byte gUnk_02002A40 -_08063CA8: .4byte gUnk_0810CE04 - - thumb_func_start sub_08063CAC -sub_08063CAC: @ 0x08063CAC - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08063CC4 -sub_08063CC4: @ 0x08063CC4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08063CF0 - 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] - ldrh r0, [r2, #0x32] - subs r0, #4 - strh r0, [r2, #0x32] - adds r0, r2, #0 - movs r1, #2 - bl sub_080042AC - b _08063CF6 -_08063CF0: - adds r0, r2, #0 - bl sub_080042B8 -_08063CF6: - pop {pc} - - thumb_func_start sub_08063CF8 -sub_08063CF8: @ 0x08063CF8 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08063D1C - ldr r0, _08063D18 @ =gUnk_0810F544 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08063D22 - .align 2, 0 -_08063D18: .4byte gUnk_0810F544 -_08063D1C: - adds r0, r2, #0 - bl sub_08063D24 -_08063D22: - pop {pc} - - thumb_func_start sub_08063D24 -sub_08063D24: @ 0x08063D24 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08063D40 @ =gUnk_0810F550 - 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_0806ED78 - pop {r4, pc} - .align 2, 0 -_08063D40: .4byte gUnk_0810F550 - - thumb_func_start sub_08063D44 -sub_08063D44: @ 0x08063D44 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08063DA0 @ =gUnk_03003DBC - ldrb r0, [r0] - cmp r0, #0x46 - bhi _08063DC6 - ldrb r0, [r4, #9] - movs r1, #0x15 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - lsls r1, r1, #4 - ldr r0, _08063DA4 @ =gUnk_0810F524 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08063DC6 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - ldr r0, _08063DA8 @ =gUnk_0810F6BC - ldrb r1, [r4, #0xa] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - movs r2, #0 - bl sub_0806EE04 - ldrb r0, [r4, #0xa] - cmp r0, #0 - blt _08063DB6 - cmp r0, #3 - bgt _08063DAC - movs r0, #0xc - bl sub_080A7EE0 - str r4, [r0, #0x50] - movs r1, #0x3c - strb r1, [r0, #0xf] - b _08063DB6 - .align 2, 0 -_08063DA0: .4byte gUnk_03003DBC -_08063DA4: .4byte gUnk_0810F524 -_08063DA8: .4byte gUnk_0810F6BC -_08063DAC: - cmp r0, #5 - bgt _08063DB6 - adds r0, r4, #0 - bl sub_08078778 -_08063DB6: - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - strb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_08063DC8 -_08063DC6: - pop {r4, pc} - - thumb_func_start sub_08063DC8 -sub_08063DC8: @ 0x08063DC8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0xff - bne _08063DF8 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldr r1, _08063DF4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - b _08063E4C - .align 2, 0 -_08063DF4: .4byte gLinkEntity -_08063DF8: - adds r0, r4, #0 - bl sub_0806EE20 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _08063E18 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - b _08063E1E -_08063E18: - adds r0, r4, #0 - bl sub_08004274 -_08063E1E: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08063E4C - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r2] - ldr r1, _08063E50 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08064428 -_08063E4C: - pop {r4, pc} - .align 2, 0 -_08063E50: .4byte gLinkEntity - - thumb_func_start sub_08063E54 -sub_08063E54: @ 0x08063E54 - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _08063E68 - movs r0, #0xf - bl sub_0807CD10 -_08063E68: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08063E6C -sub_08063E6C: @ 0x08063E6C - push {lr} - adds r2, r0, #0 - ldr r0, _08063E8C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08063E8A - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_08063E8A: - pop {pc} - .align 2, 0 -_08063E8C: .4byte gUnk_02000050 - - thumb_func_start sub_08063E90 -sub_08063E90: @ 0x08063E90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #9] - movs r1, #0x15 - eors r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - lsls r1, r1, #4 - ldr r0, _08063EC8 @ =gUnk_0810F524 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08063F1E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - cmp r1, #0 - beq _08063ECC - adds r1, r4, #0 - adds r1, #0x70 - movs r0, #8 - strb r0, [r1] - b _08063ED2 - .align 2, 0 -_08063EC8: .4byte gUnk_0810F524 -_08063ECC: - adds r0, r4, #0 - adds r0, #0x70 - strb r1, [r0] -_08063ED2: - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08063EF2 - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x68 - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - b _08063EFE -_08063EF2: - lsrs r1, r2, #0x10 - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] -_08063EFE: - adds r1, r4, #0 - adds r1, #0x71 - movs r0, #0 - strb r0, [r1] - subs r1, #0x39 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08063F20 -_08063F1E: - pop {r4, pc} - - thumb_func_start sub_08063F20 -sub_08063F20: @ 0x08063F20 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08063F72 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - strb r1, [r2] - ldr r1, _08063F74 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - adds r0, #0x70 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08064428 -_08063F72: - pop {r4, pc} - .align 2, 0 -_08063F74: .4byte gLinkEntity - - thumb_func_start sub_08063F78 -sub_08063F78: @ 0x08063F78 - push {lr} - adds r2, r0, #0 - ldr r0, _08063FA8 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08063FA6 - ldrb r0, [r2, #0xc] - subs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #1 - adds r0, r2, #0 - adds r0, #0x70 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, #4 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_08004260 -_08063FA6: - pop {pc} - .align 2, 0 -_08063FA8: .4byte gUnk_02000050 - - thumb_func_start sub_08063FAC -sub_08063FAC: @ 0x08063FAC - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x3f - adds r2, r0, #0 - ands r2, r1 - ldrb r3, [r6, #0x1e] - adds r5, r0, #0 - ands r5, r3 - adds r1, r6, #0 - adds r1, #0x5b - ldrb r1, [r1] - adds r4, r0, #0 - ands r4, r1 - ldrb r0, [r6, #9] - cmp r0, #0x15 - bne _08063FEC - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - beq _08063FE2 - adds r5, #0x21 - movs r2, #1 - rsbs r2, r2, #0 - movs r4, #0 - b _08063FF6 -_08063FE2: - adds r2, #0x19 - cmp r4, #0 - beq _08063FF6 - adds r4, #0x1f - b _08063FF6 -_08063FEC: - adds r2, #0x46 - adds r5, #0x2d - cmp r4, #0 - beq _08063FF6 - adds r4, #0x4c -_08063FF6: - subs r4, #1 - adds r0, r6, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r6, #0 - movs r1, #1 - adds r2, r5, #0 - bl sub_0806FF60 - adds r0, r6, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r6, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r6, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FFD8 - adds r0, r6, #0 - bl sub_0807000C - pop {r4, r5, r6, pc} - - thumb_func_start sub_08064030 -sub_08064030: @ 0x08064030 - ldr r0, _08064040 @ =gUnk_02034350 - ldr r2, [r0, #0x68] - rsbs r0, r2, #0 - orrs r0, r2 - lsrs r0, r0, #0x1f - str r0, [r1, #0x14] - bx lr - .align 2, 0 -_08064040: .4byte gUnk_02034350 - - thumb_func_start sub_08064044 -sub_08064044: @ 0x08064044 - ldr r1, _0806404C @ =gUnk_030010A0 - movs r0, #1 - strb r0, [r1, #8] - bx lr - .align 2, 0 -_0806404C: .4byte gUnk_030010A0 - - thumb_func_start sub_08064050 -sub_08064050: @ 0x08064050 - push {lr} - adds r2, r1, #0 - movs r1, #0 - str r1, [r2, #4] - ldrb r0, [r0, #0xb] - cmp r0, #0x12 - beq _08064072 - cmp r0, #0x12 - bgt _08064068 - cmp r0, #0x11 - beq _0806406E - b _0806407A -_08064068: - cmp r0, #0x13 - beq _08064076 - b _0806407A -_0806406E: - movs r0, #1 - b _08064078 -_08064072: - movs r0, #2 - b _08064078 -_08064076: - movs r0, #3 -_08064078: - str r0, [r2, #4] -_0806407A: - pop {pc} - - thumb_func_start sub_0806407C -sub_0806407C: @ 0x0806407C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _080640E8 - adds r0, #1 - strb r0, [r5, #0x18] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strh r0, [r5, #0x12] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _080640C4 - cmp r0, #8 - bgt _080640B2 - cmp r0, #0 - beq _080640BC - b _080640DA -_080640B2: - cmp r0, #0x10 - beq _080640CC - cmp r0, #0x18 - beq _080640D4 - b _080640DA -_080640BC: - cmp r1, #0x10 - bne _080640DA - movs r1, #8 - b _080640DA -_080640C4: - cmp r1, #0x18 - bne _080640DA - movs r1, #0x10 - b _080640DA -_080640CC: - cmp r1, #0 - bne _080640DA - movs r1, #0x18 - b _080640DA -_080640D4: - cmp r1, #8 - bne _080640DA - movs r1, #0 -_080640DA: - strb r1, [r4, #0x15] - adds r0, r1, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] - movs r0, #0x80 - strh r0, [r4, #0x24] -_080640E8: - ldrb r0, [r4, #0x14] - lsrs r2, r0, #1 - adds r1, r2, #4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _0806410A - adds r0, r4, #0 - adds r0, #0x70 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r1, #4 - adds r1, r2, r1 - adds r0, r4, #0 - bl sub_08004260 -_0806410A: - adds r0, r4, #0 - bl sub_080AEF88 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #0 - ldrsh r0, [r2, r3] - subs r1, r1, r0 - cmp r1, #0x10 - ble _0806412C - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_0806412C: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _0806413E - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_0806413E: - movs r6, #0x32 - ldrsh r1, [r4, r6] - adds r2, r4, #0 - adds r2, #0x6a - movs r6, #0 - ldrsh r0, [r2, r6] - subs r1, r1, r0 - cmp r1, #0x10 - ble _0806415A - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_0806415A: - cmp r1, r3 - bge _08064168 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_08064168: - ldrh r0, [r5, #0x12] - subs r0, #1 - strh r0, [r5, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0806417A - ldr r1, _0806417C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806417A: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806417C: .4byte gUnk_02033280 - - thumb_func_start sub_08064180 -sub_08064180: @ 0x08064180 - push {lr} - movs r0, #7 - movs r1, #0x15 - movs r2, #7 - bl sub_0805EB00 - cmp r0, #0 - beq _08064194 - bl sub_0805E7BC -_08064194: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08064198 -sub_08064198: @ 0x08064198 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x71 - ldrb r1, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - ble _080641AE - subs r0, r1, #1 - strb r0, [r4] -_080641AE: - ldr r0, _080641D8 @ =gLinkEntity - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #0x32 - ldrsh r0, [r5, r2] - subs r1, r1, r0 - cmp r1, #2 - ble _080641C0 - movs r1, #2 -_080641C0: - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080641CA - adds r1, r0, #0 -_080641CA: - adds r6, r4, #0 - cmp r1, #0 - beq _08064256 - cmp r1, #0 - ble _080641DC - movs r0, #0x10 - b _080641DE - .align 2, 0 -_080641D8: .4byte gLinkEntity -_080641DC: - movs r0, #0 -_080641DE: - strb r0, [r5, #0x15] - cmp r1, #0 - bge _080641E6 - rsbs r1, r1, #0 -_080641E6: - lsls r0, r1, #8 - strh r0, [r5, #0x24] - movs r0, #0x32 - ldrsh r4, [r5, r0] - adds r0, r5, #0 - bl sub_080AEF88 - movs r1, #0x32 - ldrsh r0, [r5, r1] - adds r6, r5, #0 - adds r6, #0x71 - cmp r4, r0 - beq _08064256 - ldr r0, _080642B0 @ =gLinkEntity - movs r2, #0x24 - ldrsh r1, [r0, r2] - movs r0, #0xa0 - lsls r0, r0, #1 - cmp r1, r0 - ble _08064222 - ldr r0, _080642B4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #6 - bl __modsi3 - cmp r0, #0 - bne _08064222 - adds r0, r5, #0 - bl sub_080A29FC -_08064222: - adds r4, r5, #0 - adds r4, #0x71 - movs r0, #0xa - strb r0, [r4] - ldrb r0, [r5, #0x15] - bl sub_0806F5B0 - strb r0, [r5, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x70 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, #4 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x58 - adds r6, r4, #0 - ldrb r0, [r0] - cmp r1, r0 - beq _08064256 - adds r0, r5, #0 - bl sub_08004260 -_08064256: - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #0 - bne _0806428C - ldr r1, _080642B0 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5B0 - strb r0, [r5, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x70 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _0806428C - adds r0, r5, #0 - bl sub_08004260 -_0806428C: - adds r0, r5, #0 - bl sub_0806ED78 - movs r0, #0x36 - ldrsh r4, [r5, r0] - ldr r0, _080642B0 @ =gLinkEntity - ldrh r0, [r0, #0x36] - strh r0, [r5, #0x36] - cmp r4, #0 - bge _080642AC - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080642AC - adds r0, r5, #0 - bl sub_080A29FC -_080642AC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080642B0: .4byte gLinkEntity -_080642B4: .4byte gUnk_030010A0 - - thumb_func_start sub_080642B8 -sub_080642B8: @ 0x080642B8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r5, #0 - adds r4, #0x71 - ldrb r1, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - ble _080642CE - subs r0, r1, #1 - strb r0, [r4] -_080642CE: - ldr r0, _080642F8 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r2, #0x2e - ldrsh r0, [r5, r2] - subs r1, r1, r0 - cmp r1, #2 - ble _080642E0 - movs r1, #2 -_080642E0: - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - bge _080642EA - adds r1, r0, #0 -_080642EA: - adds r6, r4, #0 - cmp r1, #0 - beq _08064376 - cmp r1, #0 - ble _080642FC - movs r0, #8 - b _080642FE - .align 2, 0 -_080642F8: .4byte gLinkEntity -_080642FC: - movs r0, #0x18 -_080642FE: - strb r0, [r5, #0x15] - cmp r1, #0 - bge _08064306 - rsbs r1, r1, #0 -_08064306: - lsls r0, r1, #8 - strh r0, [r5, #0x24] - movs r0, #0x2e - ldrsh r4, [r5, r0] - adds r0, r5, #0 - bl sub_080AEF88 - movs r1, #0x2e - ldrsh r0, [r5, r1] - adds r6, r5, #0 - adds r6, #0x71 - cmp r4, r0 - beq _08064376 - ldr r0, _080643D0 @ =gLinkEntity - movs r2, #0x24 - ldrsh r1, [r0, r2] - movs r0, #0xa0 - lsls r0, r0, #1 - cmp r1, r0 - ble _08064342 - ldr r0, _080643D4 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #6 - bl __modsi3 - cmp r0, #0 - bne _08064342 - adds r0, r5, #0 - bl sub_080A29FC -_08064342: - adds r4, r5, #0 - adds r4, #0x71 - movs r0, #0xa - strb r0, [r4] - ldrb r0, [r5, #0x15] - bl sub_0806F5B0 - strb r0, [r5, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x70 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, #4 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x58 - adds r6, r4, #0 - ldrb r0, [r0] - cmp r1, r0 - beq _08064376 - adds r0, r5, #0 - bl sub_08004260 -_08064376: - movs r0, #0 - ldrsb r0, [r6, r0] - cmp r0, #0 - bne _080643AC - ldr r1, _080643D0 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5B0 - strb r0, [r5, #0x14] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r1, r5, #0 - adds r1, #0x70 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r1, r0, r1 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _080643AC - adds r0, r5, #0 - bl sub_08004260 -_080643AC: - adds r0, r5, #0 - bl sub_0806ED78 - movs r0, #0x36 - ldrsh r4, [r5, r0] - ldr r0, _080643D0 @ =gLinkEntity - ldrh r0, [r0, #0x36] - strh r0, [r5, #0x36] - cmp r4, #0 - bge _080643CC - lsls r0, r0, #0x10 - cmp r0, #0 - bne _080643CC - adds r0, r5, #0 - bl sub_080A29FC -_080643CC: - pop {r4, r5, r6, pc} - .align 2, 0 -_080643D0: .4byte gLinkEntity -_080643D4: .4byte gUnk_030010A0 - - thumb_func_start sub_080643D8 -sub_080643D8: @ 0x080643D8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _080643EA - movs r3, #0 - b _08064406 -_080643EA: - movs r0, #2 - bl sub_0807CA84 - cmp r0, #0 - bne _080643F8 - movs r3, #1 - b _08064406 -_080643F8: - movs r0, #3 - bl sub_0807CA84 - movs r3, #3 - cmp r0, #0 - bne _08064406 - movs r3, #2 -_08064406: - ldrb r1, [r4, #0xb] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - ldr r2, _08064424 @ =gUnk_0810F6D4 - lsls r1, r3, #1 - lsls r0, r0, #3 - adds r1, r1, r0 - adds r1, r1, r2 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_08064424: .4byte gUnk_0810F6D4 - - thumb_func_start sub_08064428 -sub_08064428: @ 0x08064428 - push {lr} - adds r3, r0, #0 - ldr r0, _0806444C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r1, r0, #2 - cmp r1, #0 - bge _08064438 - movs r1, #0 -_08064438: - ldrb r2, [r3, #0xb] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08064454 - ldrb r0, [r3, #0xb] - lsls r0, r0, #3 - ldr r1, _08064450 @ =gUnk_0810CF4C - b _08064460 - .align 2, 0 -_0806444C: .4byte gUnk_02002A40 -_08064450: .4byte gUnk_0810CF4C -_08064454: - movs r0, #0x7f - ands r0, r2 - lsls r0, r0, #6 - lsls r1, r1, #3 - ldr r2, _0806446C @ =gUnk_0810D0A4 - adds r1, r1, r2 -_08064460: - adds r1, r0, r1 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806446C: .4byte gUnk_0810D0A4 - - thumb_func_start sub_08064470 -sub_08064470: @ 0x08064470 - push {lr} - ldr r0, _08064484 @ =gUnk_03003F80 - adds r0, #0xab - ldrb r0, [r0] - cmp r0, #1 - beq _0806447E - movs r0, #0 -_0806447E: - str r0, [r1, #0x14] - pop {pc} - .align 2, 0 -_08064484: .4byte gUnk_03003F80 - - thumb_func_start sub_08064488 -sub_08064488: @ 0x08064488 - push {lr} - ldr r1, _080644A0 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #2 - beq _0806449C - adds r1, #0xab - movs r0, #0 - strb r0, [r1] -_0806449C: - pop {pc} - .align 2, 0 -_080644A0: .4byte gUnk_03003F80 - - thumb_func_start sub_080644A4 -sub_080644A4: @ 0x080644A4 - ldr r0, _080644B0 @ =gUnk_03003F80 - adds r0, #0xab - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_080644B0: .4byte gUnk_03003F80 - - thumb_func_start sub_080644B4 -sub_080644B4: @ 0x080644B4 - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldrb r1, [r0, #0x14] - ldr r0, [r2, #4] - cmp r1, r0 - bne _080644C4 - movs r3, #1 -_080644C4: - str r3, [r2, #0x14] - pop {pc} - - thumb_func_start sub_080644C8 -sub_080644C8: @ 0x080644C8 - push {r4, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r3, _08064500 @ =gUnk_03000BF0 - movs r4, #0xa - ldrsh r1, [r3, r4] - subs r1, r0, r1 - adds r0, r1, #0 - adds r0, #8 - cmp r0, #0 - blt _08064504 - adds r0, r1, #0 - subs r0, #8 - cmp r0, #0xf0 - bgt _08064504 - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r2, #0xc - ldrsh r0, [r3, r2] - subs r0, r1, r0 - cmp r0, #0 - blt _08064504 - subs r0, #0x18 - cmp r0, #0xa0 - bgt _08064504 - movs r0, #1 - b _08064506 - .align 2, 0 -_08064500: .4byte gUnk_03000BF0 -_08064504: - movs r0, #0 -_08064506: - pop {r4, pc} - - thumb_func_start sub_08064508 -sub_08064508: @ 0x08064508 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806451E - adds r0, r2, #0 - bl sub_08064570 - b _08064522 -_0806451E: - bl sub_0805E780 -_08064522: - pop {pc} - - thumb_func_start sub_08064524 -sub_08064524: @ 0x08064524 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - ldrb r5, [r4, #0x1e] - ldrb r0, [r4, #9] - cmp r0, #0x16 - bne _08064540 - cmp r2, #0 - beq _08064548 - adds r2, #0xa - b _08064548 -_08064540: - cmp r2, #0 - beq _08064546 - adds r2, #0x1a -_08064546: - adds r5, #0x10 -_08064548: - subs r2, #1 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08064570 -sub_08064570: @ 0x08064570 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _080645EA - cmp r5, #1 - bgt _08064584 - cmp r5, #0 - beq _0806458A - b _0806463C -_08064584: - cmp r5, #2 - beq _0806462C - b _0806463C -_0806458A: - ldrb r1, [r4, #9] - movs r0, #0x16 - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _080645D0 @ =gUnk_0810F874 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806463C - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _080645D4 - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x6c - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - b _080645E0 - .align 2, 0 -_080645D0: .4byte gUnk_0810F874 -_080645D4: - lsrs r1, r2, #0x10 - adds r0, r4, #0 - adds r0, #0x6c - strh r1, [r0] - adds r0, #2 - strh r2, [r0] -_080645E0: - movs r0, #0 - str r0, [r4, #0x68] - adds r0, r4, #0 - bl sub_0807DD50 -_080645EA: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _0806463C - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xc] - strb r1, [r2] - ldr r1, _08064628 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - ldr r0, [r4, #0x68] - cmp r0, #0 - beq _0806463C - bl _call_via_r0 - b _0806463C - .align 2, 0 -_08064628: .4byte gLinkEntity -_0806462C: - ldr r0, _08064640 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806463C - movs r0, #1 - strb r0, [r4, #0xc] -_0806463C: - pop {r4, r5, pc} - .align 2, 0 -_08064640: .4byte gUnk_02000050 - - thumb_func_start sub_08064644 -sub_08064644: @ 0x08064644 - ldr r1, [r1, #4] - str r1, [r0, #0x68] - bx lr - .align 2, 0 - - thumb_func_start sub_0806464C -sub_0806464C: @ 0x0806464C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x15 - bl GetProgressFlag - cmp r0, #0 - beq _0806465E - movs r4, #2 - b _08064674 -_0806465E: - movs r0, #0xa0 - bl sub_0807CBD0 - cmp r0, #0 - bne _08064672 - movs r4, #0 - movs r0, #0xa0 - bl sub_0807CCB4 - b _08064674 -_08064672: - movs r4, #1 -_08064674: - ldr r0, _08064684 @ =gUnk_0810F88C - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_08064684: .4byte gUnk_0810F88C - - thumb_func_start sub_08064688 -sub_08064688: @ 0x08064688 - push {lr} - ldr r1, _0806469C @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _080646A0 @ =gUnk_0810F894 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806469C: .4byte gUnk_02002A40 -_080646A0: .4byte gUnk_0810F894 - - thumb_func_start sub_080646A4 -sub_080646A4: @ 0x080646A4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _08064710 - adds r0, #1 - strb r0, [r5, #0x18] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x20 - strh r0, [r5, #0x12] - bl sub_08000E50 - adds r1, r0, #0 - movs r0, #0x18 - ands r1, r0 - ldrb r0, [r4, #0x15] - cmp r0, #8 - beq _080646EC - cmp r0, #8 - bgt _080646DA - cmp r0, #0 - beq _080646E4 - b _08064702 -_080646DA: - cmp r0, #0x10 - beq _080646F4 - cmp r0, #0x18 - beq _080646FC - b _08064702 -_080646E4: - cmp r1, #0x10 - bne _08064702 - movs r1, #8 - b _08064702 -_080646EC: - cmp r1, #0x18 - bne _08064702 - movs r1, #0x10 - b _08064702 -_080646F4: - cmp r1, #0 - bne _08064702 - movs r1, #0x18 - b _08064702 -_080646FC: - cmp r1, #8 - bne _08064702 - movs r1, #0 -_08064702: - strb r1, [r4, #0x15] - adds r0, r1, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] - movs r0, #0x80 - strh r0, [r4, #0x24] -_08064710: - ldr r0, [r5, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #8] - adds r0, r4, #0 - bl sub_080AEF88 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x6c - movs r3, #0 - ldrsh r0, [r2, r3] - subs r1, r1, r0 - cmp r1, #0x10 - ble _0806473A - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_0806473A: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _0806474C - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strh r0, [r5, #0x12] -_0806474C: - movs r6, #0x32 - ldrsh r1, [r4, r6] - adds r2, r4, #0 - adds r2, #0x6e - movs r6, #0 - ldrsh r0, [r2, r6] - subs r1, r1, r0 - cmp r1, #0x10 - ble _08064768 - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_08064768: - cmp r1, r3 - bge _08064776 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strh r0, [r5, #0x12] -_08064776: - ldrh r0, [r5, #0x12] - subs r0, #1 - strh r0, [r5, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08064788 - ldr r1, _0806478C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08064788: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806478C: .4byte gUnk_02033280 - - thumb_func_start sub_08064790 -sub_08064790: @ 0x08064790 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080647C2 - cmp r0, #1 - bgt _080647A4 - cmp r0, #0 - beq _080647AA - b _08064824 -_080647A4: - cmp r0, #2 - beq _0806480A - b _08064824 -_080647AA: - 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_0807DD50 - b _08064824 -_080647C2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08064800 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x10 - strb r1, [r0] - ldr r1, _080647FC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - b _08064824 - .align 2, 0 -_080647FC: .4byte gLinkEntity -_08064800: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08064824 -_0806480A: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08064824 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_08064824: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064828 -sub_08064828: @ 0x08064828 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r5, r0, #0 - ldr r6, _08064858 @ =gUnk_02002A40 - adds r0, r4, #0 - bl sub_08002632 - ldr r2, _0806485C @ =0x00000141 - adds r1, r6, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0806484E - ldrb r0, [r6, #8] - cmp r0, #6 - bhi _0806484E - movs r5, #0 -_0806484E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 - pop {r4, r5, r6, pc} - .align 2, 0 -_08064858: .4byte gUnk_02002A40 -_0806485C: .4byte 0x00000141 - - thumb_func_start sub_08064860 -sub_08064860: @ 0x08064860 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08064886 - 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, #6 - bl sub_080042AC - b _0806488C -_08064886: - adds r0, r2, #0 - bl sub_080042B8 -_0806488C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08064890 -sub_08064890: @ 0x08064890 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080648C2 - cmp r0, #1 - bgt _080648A4 - cmp r0, #0 - beq _080648AA - b _08064924 -_080648A4: - cmp r0, #2 - beq _0806490A - b _08064924 -_080648AA: - 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_0807DD50 - b _08064924 -_080648C2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08064900 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x10 - strb r1, [r0] - ldr r1, _080648FC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - b _08064924 - .align 2, 0 -_080648FC: .4byte gLinkEntity -_08064900: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08064924 -_0806490A: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08064924 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_08064924: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064928 -sub_08064928: @ 0x08064928 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r5, r0, #0 - ldr r6, _08064958 @ =gUnk_02002A40 - adds r0, r4, #0 - bl sub_08002632 - ldr r2, _0806495C @ =0x00000141 - adds r1, r6, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0806494E - ldrb r0, [r6, #8] - cmp r0, #6 - bhi _0806494E - movs r5, #0 -_0806494E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 - pop {r4, r5, r6, pc} - .align 2, 0 -_08064958: .4byte gUnk_02002A40 -_0806495C: .4byte 0x00000141 - - thumb_func_start sub_08064960 -sub_08064960: @ 0x08064960 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08064986 - 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, #6 - bl sub_080042AC - b _0806498C -_08064986: - adds r0, r2, #0 - bl sub_080042B8 -_0806498C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08064990 -sub_08064990: @ 0x08064990 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080649C2 - cmp r0, #1 - bgt _080649A4 - cmp r0, #0 - beq _080649AA - b _08064A24 -_080649A4: - cmp r0, #2 - beq _08064A0A - b _08064A24 -_080649AA: - 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_0807DD50 - b _08064A24 -_080649C2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08064A00 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x10 - strb r1, [r0] - ldr r1, _080649FC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - b _08064A24 - .align 2, 0 -_080649FC: .4byte gLinkEntity -_08064A00: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08064A24 -_08064A0A: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08064A24 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_08064A24: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064A28 -sub_08064A28: @ 0x08064A28 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r5, r0, #0 - ldr r6, _08064A58 @ =gUnk_02002A40 - adds r0, r4, #0 - bl sub_08002632 - ldr r2, _08064A5C @ =0x00000141 - adds r1, r6, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08064A4E - ldrb r0, [r6, #8] - cmp r0, #6 - bhi _08064A4E - movs r5, #0 -_08064A4E: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 - pop {r4, r5, r6, pc} - .align 2, 0 -_08064A58: .4byte gUnk_02002A40 -_08064A5C: .4byte 0x00000141 - - thumb_func_start sub_08064A60 -sub_08064A60: @ 0x08064A60 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08064A86 - 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, #6 - bl sub_080042AC - b _08064A8C -_08064A86: - adds r0, r2, #0 - bl sub_080042B8 -_08064A8C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08064A90 -sub_08064A90: @ 0x08064A90 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08064ABC - ldr r0, _08064AB8 @ =gUnk_0810FA44 - 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_0806ED78 - b _08064B42 - .align 2, 0 -_08064AB8: .4byte gUnk_0810FA44 -_08064ABC: - ldrb r1, [r4, #0xc] - adds r5, r1, #0 - cmp r5, #0 - bne _08064AE4 - ldr r1, _08064AE0 @ =gUnk_0810FA38 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08064B42 - movs r0, #1 - strb r0, [r4, #0xc] - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0807DD50 - b _08064B42 - .align 2, 0 -_08064AE0: .4byte gUnk_0810FA38 -_08064AE4: - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - cmp r3, #0 - beq _08064B00 - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08064B42 - movs r0, #1 - strb r0, [r4, #0xc] - b _08064B42 -_08064B00: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _08064B34 - movs r0, #0xff - orrs r0, r1 - strb r0, [r4, #0xc] - strb r3, [r2] - ldr r1, _08064B30 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08064B42 - .align 2, 0 -_08064B30: .4byte gLinkEntity -_08064B34: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r4, #0 - bl sub_08064C9C -_08064B42: - pop {r4, r5, pc} - - thumb_func_start sub_08064B44 -sub_08064B44: @ 0x08064B44 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08064B80 @ =gUnk_0810FA38 - bl sub_0806FDEC - cmp r0, #0 - beq _08064B7E - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - ldr r1, _08064B84 @ =gUnk_0810FA5A - adds r0, r4, #0 - movs r2, #0 - bl sub_0806EE04 - adds r0, r4, #0 - bl sub_08064CC0 - movs r1, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] -_08064B7E: - pop {r4, pc} - .align 2, 0 -_08064B80: .4byte gUnk_0810FA38 -_08064B84: .4byte gUnk_0810FA5A - - thumb_func_start sub_08064B88 -sub_08064B88: @ 0x08064B88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x39 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #1 - beq _08064BFA - cmp r0, #1 - bgt _08064BA2 - cmp r0, #0 - beq _08064BA8 - b _08064BFA -_08064BA2: - cmp r0, #2 - beq _08064BCE - b _08064BFA -_08064BA8: - adds r0, r4, #0 - bl sub_0806EE20 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x14] - cmp r2, #0 - beq _08064BC6 - movs r1, #0x7f - ands r1, r2 - adds r0, r4, #0 - bl sub_08004260 -_08064BC6: - adds r0, r4, #0 - bl sub_08004274 - b _08064C28 -_08064BCE: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - cmp r1, #0 - bge _08064BE0 - ldrb r1, [r4, #0x14] -_08064BE0: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08004260 - movs r0, #0 - strb r0, [r5] - adds r0, r4, #0 - bl sub_0806F118 - b _08064C28 -_08064BFA: - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - cmp r1, #0 - bge _08064C0C - ldrb r1, [r4, #0x14] -_08064C0C: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - strb r0, [r4, #0xf] - adds r0, r4, #0 - bl sub_08004260 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08064CD8 -_08064C28: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08064C2C -sub_08064C2C: @ 0x08064C2C - push {lr} - adds r2, r0, #0 - ldr r0, _08064C4C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08064C48 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xf] - adds r0, r2, #0 - bl sub_08004260 -_08064C48: - pop {pc} - .align 2, 0 -_08064C4C: .4byte gUnk_02000050 - - thumb_func_start sub_08064C50 -sub_08064C50: @ 0x08064C50 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08064C68 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xf] - adds r0, r4, #0 - bl sub_08004260 -_08064C68: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064C6C -sub_08064C6C: @ 0x08064C6C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_08064C9C -sub_08064C9C: @ 0x08064C9C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xe] - cmp r0, #0 - beq _08064CB8 - ldr r0, _08064CBC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08064CB8 - adds r0, r2, #0 - bl sub_080A29BC -_08064CB8: - pop {pc} - .align 2, 0 -_08064CBC: .4byte gUnk_030010A0 - - thumb_func_start sub_08064CC0 -sub_08064CC0: @ 0x08064CC0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08064CD8 -sub_08064CD8: @ 0x08064CD8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #2 - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _08064CF4 - movs r0, #0x73 - bl sub_0807CBD0 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_08064CF4: - ldr r0, _08064D04 @ =gUnk_0810FA54 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_08064D04: .4byte gUnk_0810FA54 - - thumb_func_start sub_08064D08 -sub_08064D08: @ 0x08064D08 - movs r1, #1 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08064D10 -sub_08064D10: @ 0x08064D10 - movs r1, #0 - strb r1, [r0, #0xe] - bx lr - .align 2, 0 - - thumb_func_start sub_08064D18 -sub_08064D18: @ 0x08064D18 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08064D50 - ldr r1, _08064D4C @ =gUnk_0810FA38 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08064D56 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #6 - bl sub_08004260 - b _08064D56 - .align 2, 0 -_08064D4C: .4byte gUnk_0810FA38 -_08064D50: - adds r0, r4, #0 - bl sub_08004274 -_08064D56: - pop {r4, pc} - - thumb_func_start sub_08064D58 -sub_08064D58: @ 0x08064D58 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08064D6E - adds r0, r2, #0 - bl sub_08064DE4 - b _08064D74 -_08064D6E: - adds r0, r2, #0 - bl sub_08064D78 -_08064D74: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08064D78 -sub_08064D78: @ 0x08064D78 - push {lr} - ldr r2, _08064D8C @ =gUnk_0810FBFC - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08064D8C: .4byte gUnk_0810FBFC - - thumb_func_start sub_08064D90 -sub_08064D90: @ 0x08064D90 - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_080042AC - movs r0, #1 - strb r0, [r4, #0xf] - pop {r4, pc} - - thumb_func_start sub_08064DA0 -sub_08064DA0: @ 0x08064DA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08064EE8 - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08064DC8 - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #6 - bl sub_080042AC - movs r0, #0 - bl sub_08056378 -_08064DC8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064DCC -sub_08064DCC: @ 0x08064DCC - push {r4, lr} - adds r4, r0, #0 - bl sub_08064EE8 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - movs r0, #1 - strb r0, [r4, #0xc] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08064DE4 -sub_08064DE4: @ 0x08064DE4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08064E1A - cmp r0, #1 - bgt _08064DF8 - cmp r0, #0 - beq _08064DFE - b _08064E6A -_08064DF8: - cmp r0, #2 - beq _08064E56 - b _08064E6A -_08064DFE: - 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, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0807DD50 - b _08064E6A -_08064E1A: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08064E4C - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08064E48 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08064E6A - .align 2, 0 -_08064E48: .4byte gLinkEntity -_08064E4C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08064E6A -_08064E56: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08064E6A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C -_08064E6A: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r5, #0xf - ands r5, r1 - adds r0, r5, #0 - eors r0, r1 - strb r0, [r2] - cmp r5, #0 - beq _08064EA0 - movs r1, #0x29 - cmp r5, #3 - bne _08064E86 - movs r1, #0x2a -_08064E86: - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08064EA0 - cmp r5, #2 - bne _08064EA0 - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0x18] -_08064EA0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08064EA4 -sub_08064EA4: @ 0x08064EA4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r5, r4, #0 - adds r5, #0x68 - strb r0, [r5] - ldrb r0, [r4, #0xa] - cmp r0, #0 - beq _08064EBE - cmp r0, #3 - beq _08064EC2 - b _08064ED8 -_08064EBE: - movs r0, #0x59 - b _08064EC4 -_08064EC2: - movs r0, #0x5a -_08064EC4: - bl sub_0801E7F4 - cmp r0, #0 - beq _08064ED8 - movs r0, #0xc - bl sub_0807CA84 - cmp r0, #0 - bne _08064ED8 - strb r0, [r5] -_08064ED8: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08064EE8 -sub_08064EE8: @ 0x08064EE8 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r5, #0xf - ands r5, r1 - adds r0, r5, #0 - eors r0, r1 - strb r0, [r2] - cmp r5, #0 - beq _08064F26 - movs r1, #0x2a - cmp r5, #3 - beq _08064F0C - movs r1, #0x29 -_08064F0C: - adds r0, r4, #0 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08064F26 - cmp r5, #2 - bne _08064F26 - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r2, #0x18] -_08064F26: - pop {r4, r5, pc} - - thumb_func_start sub_08064F28 -sub_08064F28: @ 0x08064F28 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - mov r8, r1 - movs r0, #0 - str r0, [r1, #0x14] - ldr r1, _08064F60 @ =gUnk_0810FC50 - ldrb r0, [r6, #0xa] - adds r0, r0, r1 - ldrb r7, [r0] - adds r0, r7, #0 - bl sub_0807CC3C - cmp r0, #0 - bne _08064F84 - ldr r4, _08064F64 @ =gUnk_02002A40 - adds r0, r6, #0 - bl sub_08002632 - ldr r1, _08064F68 @ =0x00000141 - adds r4, r4, r1 - adds r0, r0, r4 - ldrb r4, [r0] - cmp r4, #1 - bls _08064F6C - movs r5, #3 - b _08064F7E - .align 2, 0 -_08064F60: .4byte gUnk_0810FC50 -_08064F64: .4byte gUnk_02002A40 -_08064F68: .4byte 0x00000141 -_08064F6C: - movs r0, #0xc - bl sub_0807CA84 - movs r5, #2 - cmp r0, #0 - bne _08064F7E - rsbs r0, r4, #0 - orrs r0, r4 - lsrs r5, r0, #0x1f -_08064F7E: - movs r4, #1 - rsbs r4, r4, #0 - b _08064FD2 -_08064F84: - movs r0, #0x3a - bl GetProgressFlag - cmp r0, #0 - bne _08064FCE - ldr r0, _08064FB0 @ =gUnk_02002A40 - ldr r1, _08064FB4 @ =0x00000117 - adds r0, r0, r1 - ldrb r1, [r0] - movs r0, #0x64 - subs r4, r0, r1 - cmp r4, #0 - bgt _08064FB8 - movs r5, #8 - movs r4, #0 - movs r0, #0x3a - bl sub_0807CD04 - movs r0, #1 - mov r1, r8 - str r0, [r1, #0x14] - b _08064FD2 - .align 2, 0 -_08064FB0: .4byte gUnk_02002A40 -_08064FB4: .4byte 0x00000117 -_08064FB8: - movs r5, #7 - cmp r4, #9 - ble _08064FC0 - movs r5, #6 -_08064FC0: - cmp r4, #0x27 - ble _08064FC6 - movs r5, #5 -_08064FC6: - cmp r4, #0x45 - ble _08064FD2 - movs r5, #4 - b _08064FD2 -_08064FCE: - movs r5, #8 - movs r4, #0 -_08064FD2: - ldr r2, _08065008 @ =gUnk_0810FC08 - ldrb r1, [r6, #0xa] - lsls r0, r1, #3 - adds r0, r0, r1 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r6, #0 - bl sub_08056398 - cmp r4, #0 - ble _08064FF4 - ldr r1, _0806500C @ =gUnk_02000050 - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] -_08064FF4: - adds r0, r7, #0 - bl sub_0807CC3C - cmp r0, #0 - bne _08065010 - adds r0, r7, #0 - bl sub_0807CD10 - b _08065016 - .align 2, 0 -_08065008: .4byte gUnk_0810FC08 -_0806500C: .4byte gUnk_02000050 -_08065010: - adds r0, r7, #0 - bl sub_0807CD8C -_08065016: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806501C -sub_0806501C: @ 0x0806501C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806504A - 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] - movs r1, #6 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08065042 - movs r1, #0xa -_08065042: - adds r0, r2, #0 - bl sub_080042AC - b _08065050 -_0806504A: - adds r0, r2, #0 - bl sub_08064EE8 -_08065050: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065054 -sub_08065054: @ 0x08065054 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806507C @ =gUnk_0810FDA4 - 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 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0807DF74 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_0806507C: .4byte gUnk_0810FDA4 - - thumb_func_start sub_08065080 -sub_08065080: @ 0x08065080 - 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 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 - ldr r3, _080650C4 @ =gUnk_0810FDA0 - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_08078850 - ldr r1, _080650C8 @ =gUnk_080142B0 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r4, #0x84 - str r0, [r4] - pop {r4, pc} - .align 2, 0 -_080650C4: .4byte gUnk_0810FDA0 -_080650C8: .4byte gUnk_080142B0 - - thumb_func_start sub_080650CC -sub_080650CC: @ 0x080650CC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - ldr r6, _080650F8 @ =gUnk_02034350 - ldr r0, [r6, #0x68] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08065100 - movs r1, #0 - movs r0, #4 - strb r0, [r5, #0xc] - strb r1, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, _080650FC @ =gUnk_080143C0 - bl sub_0807DB88 - b _080651A6 - .align 2, 0 -_080650F8: .4byte gUnk_02034350 -_080650FC: .4byte gUnk_080143C0 -_08065100: - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _0806517C - adds r3, r5, #0 - adds r3, #0x39 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _0806517C - strb r4, [r3] - ldrb r0, [r5, #0xc] - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #7 - bl sub_08004260 - ldrb r0, [r6, #6] - cmp r0, #0 - bne _0806513C - ldr r7, _08065138 @ =0x00002C01 - b _0806515E - .align 2, 0 -_08065138: .4byte 0x00002C01 -_0806513C: - ldrb r0, [r6, #6] - bl sub_08053FD0 - adds r7, r0, #0 - ldrb r0, [r6, #6] - bl sub_08053FE0 - mov r8, r0 - movs r0, #4 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - adds r0, r5, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r1, _08065174 @ =gUnk_08014384 - bl sub_0807DB88 -_0806515E: - adds r0, r7, #0 - adds r1, r5, #0 - bl sub_08056398 - ldr r1, _08065178 @ =gUnk_02000050 - mov r2, r8 - lsls r0, r2, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] - b _080651A6 - .align 2, 0 -_08065174: .4byte gUnk_08014384 -_08065178: .4byte gUnk_02000050 -_0806517C: - ldrb r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080651A0 - ldr r4, _0806519C @ =gUnk_0810FDB8 - bl sub_08000E50 - movs r1, #0xf - ands r1, r0 - adds r1, r1, r4 - ldrb r1, [r1] - adds r0, r5, #0 - bl sub_08004260 - b _080651A6 - .align 2, 0 -_0806519C: .4byte gUnk_0810FDB8 -_080651A0: - adds r0, r5, #0 - bl sub_08004274 -_080651A6: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080651AC -sub_080651AC: @ 0x080651AC - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r0, _080651D4 @ =gUnk_02000050 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _080651D2 - adds r0, r4, #0 - adds r0, #0x39 - strb r1, [r0] - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #4 - bl sub_08004260 -_080651D2: - pop {r4, pc} - .align 2, 0 -_080651D4: .4byte gUnk_02000050 - - thumb_func_start sub_080651D8 -sub_080651D8: @ 0x080651D8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - ldr r1, _080651F4 @ =gUnk_0810FDC8 - ldrb r0, [r4, #0xd] - 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 -_080651F4: .4byte gUnk_0810FDC8 - - thumb_func_start sub_080651F8 -sub_080651F8: @ 0x080651F8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _0806522A - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #8 - bl sub_080A2CFC - movs r0, #1 - bl sub_08078A90 -_0806522A: - pop {r4, pc} - - thumb_func_start sub_0806522C -sub_0806522C: @ 0x0806522C - 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 _08065248 - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - ldr r0, _0806524C @ =0x00002C16 - bl sub_08056398 -_08065248: - pop {pc} - .align 2, 0 -_0806524C: .4byte 0x00002C16 - - thumb_func_start sub_08065250 -sub_08065250: @ 0x08065250 - push {r4, lr} - adds r4, r0, #0 - bl sub_08056338 - adds r1, r0, #0 - cmp r1, #0 - beq _08065264 - cmp r1, #1 - beq _0806527E - b _0806528A -_08065264: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - movs r2, #0x18 - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #8 - bl sub_080A2CFC - b _0806528A -_0806527E: - movs r0, #0 - movs r1, #7 - strb r1, [r4, #0xd] - strb r0, [r4, #0xe] - movs r0, #2 - strb r0, [r4, #0xf] -_0806528A: - pop {r4, pc} - - thumb_func_start sub_0806528C -sub_0806528C: @ 0x0806528C - 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 _080652A8 - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - ldr r0, _080652AC @ =0x00002C18 - bl sub_08056398 -_080652A8: - pop {pc} - .align 2, 0 -_080652AC: .4byte 0x00002C18 - - thumb_func_start sub_080652B0 -sub_080652B0: @ 0x080652B0 - push {lr} - adds r2, r0, #0 - ldr r0, _080652DC @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080652DA - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - movs r0, #0xa - strb r0, [r2, #0xe] - ldr r1, _080652E0 @ =gUnk_02034350 - ldrb r0, [r2, #0xf] - str r0, [r1, #0x68] - movs r0, #0x36 - movs r1, #0 - movs r2, #0 - bl sub_080A7C00 -_080652DA: - pop {pc} - .align 2, 0 -_080652DC: .4byte gUnk_02000050 -_080652E0: .4byte gUnk_02034350 - - thumb_func_start sub_080652E4 -sub_080652E4: @ 0x080652E4 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _080652F4 - subs r0, #1 - strb r0, [r1, #0xe] - b _08065308 -_080652F4: - ldr r0, _0806530C @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - beq _08065308 - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - ldr r0, _08065310 @ =0x00002C19 - bl sub_08056398 -_08065308: - pop {pc} - .align 2, 0 -_0806530C: .4byte gLinkEntity -_08065310: .4byte 0x00002C19 - - thumb_func_start sub_08065314 -sub_08065314: @ 0x08065314 - push {lr} - adds r2, r0, #0 - ldr r0, _08065334 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065332 - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - movs r0, #3 - movs r1, #3 - bl sub_080A7138 -_08065332: - pop {pc} - .align 2, 0 -_08065334: .4byte gUnk_02000050 - - thumb_func_start sub_08065338 -sub_08065338: @ 0x08065338 - push {lr} - adds r2, r0, #0 - ldr r0, _08065360 @ =gUnk_02000050 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _0806535C - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - ldr r1, _08065364 @ =gUnk_02034350 - ldrb r0, [r2, #0xf] - str r0, [r1, #0x68] - adds r0, r2, #0 - movs r1, #4 - bl sub_08004260 -_0806535C: - pop {pc} - .align 2, 0 -_08065360: .4byte gUnk_02000050 -_08065364: .4byte gUnk_02034350 - - thumb_func_start sub_08065368 -sub_08065368: @ 0x08065368 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_08065370 -sub_08065370: @ 0x08065370 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r4, r0, #0 - mov r8, r1 - movs r6, #1 - ldr r0, _0806539C @ =gUnk_02034350 - ldrb r5, [r0, #6] - movs r0, #0 - mov sb, r0 - cmp r5, #0x66 - beq _0806541A - cmp r5, #0x66 - bhi _080653AA - cmp r5, #0x61 - beq _08065426 - cmp r5, #0x61 - bhi _080653A0 - cmp r5, #0xd - beq _080653D0 - b _0806543C - .align 2, 0 -_0806539C: .4byte gUnk_02034350 -_080653A0: - cmp r5, #0x64 - beq _08065414 - cmp r5, #0x65 - beq _08065420 - b _0806543C -_080653AA: - cmp r5, #0x6c - blo _0806543C - cmp r5, #0x6d - bls _080653EC - cmp r5, #0x6f - bhi _0806543C - ldr r2, _080653C8 @ =gUnk_080FD5A4 - ldr r1, _080653CC @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xaf - ldrb r0, [r0] - adds r0, r0, r2 - adds r1, #0xad - b _080653FA - .align 2, 0 -_080653C8: .4byte gUnk_080FD5A4 -_080653CC: .4byte gUnk_02002A40 -_080653D0: - movs r0, #0xd - bl sub_0807CA84 - cmp r0, #0 - bne _080653E4 - movs r0, #0xe - bl sub_0807CA84 - cmp r0, #0 - beq _0806543C -_080653E4: - ldr r0, _080653E8 @ =0x00002C0B - b _080654C2 - .align 2, 0 -_080653E8: .4byte 0x00002C0B -_080653EC: - ldr r2, _08065408 @ =gUnk_080FD5A0 - ldr r1, _0806540C @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xae - ldrb r0, [r0] - adds r0, r0, r2 - adds r1, #0xac -_080653FA: - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bhi _0806543C - ldr r0, _08065410 @ =0x00002C0E - b _080654C2 - .align 2, 0 -_08065408: .4byte gUnk_080FD5A0 -_0806540C: .4byte gUnk_02002A40 -_08065410: .4byte 0x00002C0E -_08065414: - movs r1, #0x55 - mov sb, r1 - b _0806543C -_0806541A: - movs r0, #0x56 - mov sb, r0 - b _0806543C -_08065420: - movs r1, #0xcd - mov sb, r1 - b _0806543C -_08065426: - ldr r0, _08065494 @ =gUnk_02002A40 - adds r0, #0xc2 - ldrh r1, [r0] - ldr r0, _08065498 @ =0x000003E6 - cmp r1, r0 - bls _0806543C - ldr r0, _0806549C @ =0x00002C0E - adds r1, r4, #0 - bl sub_08056398 - movs r6, #0 -_0806543C: - cmp r6, #0 - beq _080654C8 - adds r0, r5, #0 - bl sub_08053FE0 - adds r6, r0, #0 - ldr r7, _08065494 @ =gUnk_02002A40 - adds r0, r7, #0 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r6, r0 - bhi _080654C0 - rsbs r0, r6, #0 - bl sub_080526CC - ldr r4, _080654A0 @ =gUnk_02034350 - ldrb r1, [r4, #7] - adds r0, r5, #0 - movs r2, #2 - bl sub_080A7C18 - movs r0, #0 - strb r0, [r4, #6] - strb r0, [r4, #7] - movs r0, #1 - mov r1, r8 - str r0, [r1, #0x14] - mov r0, sb - cmp r0, #0 - beq _0806547C - bl sub_0807CCB4 -_0806547C: - ldr r1, [r7, #0x5c] - movs r0, #2 - rsbs r0, r0, #0 - cmp r1, r0 - bhi _0806548A - adds r0, r1, #1 - str r0, [r7, #0x5c] -_0806548A: - ldr r0, [r7, #0x5c] - cmp r0, #9 - bls _080654A8 - ldr r0, _080654A4 @ =0x00002C11 - b _080654B6 - .align 2, 0 -_08065494: .4byte gUnk_02002A40 -_08065498: .4byte 0x000003E6 -_0806549C: .4byte 0x00002C0E -_080654A0: .4byte gUnk_02034350 -_080654A4: .4byte 0x00002C11 -_080654A8: - cmp r6, #0x63 - bls _080654B4 - ldr r0, _080654B0 @ =0x00002C10 - b _080654B6 - .align 2, 0 -_080654B0: .4byte 0x00002C10 -_080654B4: - ldr r0, _080654BC @ =0x00002C0F -_080654B6: - mov r1, r8 - str r0, [r1, #4] - b _080654CE - .align 2, 0 -_080654BC: .4byte 0x00002C0F -_080654C0: - ldr r0, _080654D8 @ =0x00002C0D -_080654C2: - adds r1, r4, #0 - bl sub_08056398 -_080654C8: - movs r0, #0 - mov r1, r8 - str r0, [r1, #0x14] -_080654CE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080654D8: .4byte 0x00002C0D - - thumb_func_start sub_080654DC -sub_080654DC: @ 0x080654DC - push {lr} - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #8 - bl sub_080A2D0C - pop {pc} - .align 2, 0 - - thumb_func_start sub_080654EC -sub_080654EC: @ 0x080654EC - push {lr} - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #8 - bl sub_080A2CFC - pop {pc} - .align 2, 0 - - thumb_func_start sub_080654FC -sub_080654FC: @ 0x080654FC - push {lr} - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08065518 - ldr r1, _08065514 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] - b _08065522 - .align 2, 0 -_08065514: .4byte gUnk_02033280 -_08065518: - ldr r2, _08065524 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] -_08065522: - pop {pc} - .align 2, 0 -_08065524: .4byte gUnk_02033280 - - thumb_func_start sub_08065528 -sub_08065528: @ 0x08065528 - ldr r2, _08065530 @ =gUnk_02034350 - ldr r0, [r1, #4] - str r0, [r2, #0x68] - bx lr - .align 2, 0 -_08065530: .4byte gUnk_02034350 - - thumb_func_start sub_08065534 -sub_08065534: @ 0x08065534 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08065558 - ldr r0, _08065554 @ =gUnk_0810FEC4 - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 - b _08065568 - .align 2, 0 -_08065554: .4byte gUnk_0810FEC4 -_08065558: - ldr r0, _0806556C @ =gUnk_0810FEBC - ldrb r1, [r2, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl _call_via_r1 -_08065568: - pop {pc} - .align 2, 0 -_0806556C: .4byte gUnk_0810FEBC - - thumb_func_start sub_08065570 -sub_08065570: @ 0x08065570 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065598 @ =gUnk_0810FEB0 - bl sub_0806FDEC - cmp r0, #0 - beq _08065596 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 - movs r0, #1 - strb r0, [r4, #0xc] - strb r0, [r4, #0xf] - movs r0, #2 - strb r0, [r4, #0x14] -_08065596: - pop {r4, pc} - .align 2, 0 -_08065598: .4byte gUnk_0810FEB0 - - thumb_func_start sub_0806559C -sub_0806559C: @ 0x0806559C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #8 - bls _080655D0 - movs r0, #0 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - cmp r0, #0 - bge _080655C6 - ldrb r0, [r4, #0x14] - adds r1, r0, #4 - b _080655CA -_080655C6: - strb r0, [r4, #0x14] - adds r1, r0, #0 -_080655CA: - adds r0, r4, #0 - adds r0, #0x58 - b _080655D6 -_080655D0: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_080655D6: - ldrb r0, [r0] - cmp r0, r1 - beq _080655E4 - adds r0, r4, #0 - bl sub_08004260 - b _080655EA -_080655E4: - adds r0, r4, #0 - bl sub_08004274 -_080655EA: - adds r0, r4, #0 - bl sub_0806ED78 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08065604 - movs r0, #0 - strb r0, [r1] - bl sub_080791D0 -_08065604: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08065608 -sub_08065608: @ 0x08065608 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065644 @ =gUnk_0810FEB0 - bl sub_0806FDEC - cmp r0, #0 - beq _08065640 - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 -_08065640: - pop {r4, pc} - .align 2, 0 -_08065644: .4byte gUnk_0810FEB0 - - thumb_func_start sub_08065648 -sub_08065648: @ 0x08065648 - push {lr} - adds r2, r0, #0 - movs r0, #0x39 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #2 - bne _08065676 - ldrb r0, [r2, #0xc] - adds r3, r2, #0 - adds r3, #0x69 - movs r1, #0 - strb r0, [r3] - movs r0, #4 - strb r0, [r2, #0xc] - mov r0, ip - strb r1, [r0] - adds r0, r2, #0 - bl sub_0806F118 - b _0806567E -_08065676: - adds r0, r2, #0 - movs r1, #0 - bl sub_0807DD94 -_0806567E: - pop {pc} - - thumb_func_start sub_08065680 -sub_08065680: @ 0x08065680 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080656A0 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x6a - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_080656A0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080656A4 -sub_080656A4: @ 0x080656A4 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080656D0 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080656C8 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x6a - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_080656C8: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_080656D0: .4byte gUnk_02000050 - - thumb_func_start sub_080656D4 -sub_080656D4: @ 0x080656D4 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x39 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #2 - bne _080656FC - ldrb r0, [r4, #0xc] - adds r2, r4, #0 - adds r2, #0x69 - movs r1, #0 - strb r0, [r2] - movs r0, #4 - strb r0, [r4, #0xc] - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806F118 - b _08065738 -_080656FC: - cmp r0, #0 - beq _08065740 - movs r0, #0x37 - bl sub_0807CA84 - adds r2, r0, #0 - cmp r2, #0 - beq _0806571C - ldr r1, _08065718 @ =gUnk_0800B41C - adds r0, r4, #0 - bl sub_0807DAD0 - b _08065740 - .align 2, 0 -_08065718: .4byte gUnk_0800B41C -_0806571C: - ldrb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - movs r0, #3 - strb r0, [r4, #0xc] - strb r2, [r5] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - ldr r0, [r0, #4] - adds r1, r4, #0 - bl sub_08056398 -_08065738: - adds r0, r4, #0 - bl sub_0806574C - b _08065748 -_08065740: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_08065748: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806574C -sub_0806574C: @ 0x0806574C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _0806577C @ =gLinkEntity - bl sub_080045C4 - bl sub_0806F5A4 - adds r5, r4, #0 - adds r5, #0x58 - ldrb r2, [r5] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - adds r1, r1, r0 - cmp r2, r1 - beq _08065772 - adds r0, r4, #0 - bl sub_080042AC -_08065772: - ldrb r1, [r5] - adds r0, r4, #0 - adds r0, #0x6a - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_0806577C: .4byte gLinkEntity - - thumb_func_start sub_08065780 -sub_08065780: @ 0x08065780 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08000E50 - movs r2, #6 - adds r1, r0, #0 - ands r1, r2 - strb r1, [r4, #0x14] - ldr r2, _080657A4 @ =gUnk_0810FED8 - lsrs r0, r0, #8 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r5, #0x10] - pop {r4, r5, pc} - .align 2, 0 -_080657A4: .4byte gUnk_0810FED8 - - thumb_func_start sub_080657A8 -sub_080657A8: @ 0x080657A8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #7 - ands r2, r0 - adds r2, #0xb - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080657DC -sub_080657DC: @ 0x080657DC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08065814 - ldr r1, _08065810 @ =gUnk_0810FEB0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806581A - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #6 - bl sub_08004260 - b _0806581A - .align 2, 0 -_08065810: .4byte gUnk_0810FEB0 -_08065814: - adds r0, r4, #0 - bl sub_08004274 -_0806581A: - pop {r4, pc} - - thumb_func_start sub_0806581C -sub_0806581C: @ 0x0806581C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08065840 - ldr r0, _0806583C @ =gUnk_0810FF64 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806585C - .align 2, 0 -_0806583C: .4byte gUnk_0810FF64 -_08065840: - ldr r1, _08065860 @ =gUnk_0810FF5C - 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] - cmp r0, #0 - beq _0806585C - adds r0, r4, #0 - bl sub_0806ED78 -_0806585C: - pop {r4, pc} - .align 2, 0 -_08065860: .4byte gUnk_0810FF5C - - thumb_func_start sub_08065864 -sub_08065864: @ 0x08065864 - 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, #0xc - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065880 -sub_08065880: @ 0x08065880 - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08065888 -sub_08065888: @ 0x08065888 - 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, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_080658BC -sub_080658BC: @ 0x080658BC - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080658F4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _080658F0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _080658FC - .align 2, 0 -_080658F0: .4byte gLinkEntity -_080658F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_080658FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08065900 -sub_08065900: @ 0x08065900 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08065910 - movs r0, #1 - strb r0, [r4, #0xc] -_08065910: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08065914 -sub_08065914: @ 0x08065914 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #7 - movs r1, #0x1f - movs r2, #7 - bl sub_0805EB00 - adds r4, r0, #0 - cmp r4, #0 - beq _08065938 - movs r2, #0xc0 - lsls r2, r2, #0xd - ldr r3, _0806595C @ =0xFFFF0000 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA48 - str r5, [r4, #0x50] -_08065938: - movs r0, #7 - movs r1, #0x20 - movs r2, #7 - bl sub_0805EB00 - adds r4, r0, #0 - cmp r4, #0 - beq _08065958 - movs r2, #0xa0 - lsls r2, r2, #0xe - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl sub_0806FA48 - str r5, [r4, #0x50] -_08065958: - pop {r4, r5, pc} - .align 2, 0 -_0806595C: .4byte 0xFFFF0000 - - thumb_func_start sub_08065960 -sub_08065960: @ 0x08065960 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08065986 - 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, #0xc - bl sub_080042AC - b _0806598C -_08065986: - adds r0, r2, #0 - bl sub_080042B8 -_0806598C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065990 -sub_08065990: @ 0x08065990 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080659B4 @ =gUnk_0811006C - 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_08065A64 - adds r0, r4, #0 - bl sub_0806ED78 - pop {r4, pc} - .align 2, 0 -_080659B4: .4byte gUnk_0811006C - - thumb_func_start sub_080659B8 -sub_080659B8: @ 0x080659B8 - 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, #6 - strb r0, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x69 - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_080659F0 -sub_080659F0: @ 0x080659F0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08065AA4 - pop {r4, pc} - - thumb_func_start sub_08065A00 -sub_08065A00: @ 0x08065A00 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08065AA4 - pop {r4, pc} - - thumb_func_start sub_08065A10 -sub_08065A10: @ 0x08065A10 - push {lr} - adds r2, r0, #0 - ldr r0, _08065A30 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065A2E - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #1 - adds r0, r2, #0 - bl sub_080042AC -_08065A2E: - pop {pc} - .align 2, 0 -_08065A30: .4byte gUnk_02000050 - - thumb_func_start sub_08065A34 -sub_08065A34: @ 0x08065A34 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08065A4E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_080042AC -_08065A4E: - pop {r4, pc} - - thumb_func_start sub_08065A50 -sub_08065A50: @ 0x08065A50 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _08065A60 @ =gUnk_08110080 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08065A60: .4byte gUnk_08110080 - - thumb_func_start sub_08065A64 -sub_08065A64: @ 0x08065A64 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08065A8C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r5, r0, #0x1f - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - cmp r5, r0 - beq _08065A9C - cmp r5, #0 - bne _08065A90 - adds r0, r4, #0 - bl sub_08078778 - b _08065A9C - .align 2, 0 -_08065A8C: .4byte gUnk_03003F80 -_08065A90: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_08065A9C: - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_08065AA4 -sub_08065AA4: @ 0x08065AA4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _08065B18 - ldr r0, _08065AD0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08065B00 - cmp r2, #2 - bne _08065AD4 - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _08065AE6 - .align 2, 0 -_08065AD0: .4byte gUnk_03003F80 -_08065AD4: - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_08065A50 -_08065AE6: - ldr r1, _08065AFC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - b _08065B0A - .align 2, 0 -_08065AFC: .4byte gLinkEntity -_08065B00: - adds r0, r4, #0 - bl sub_08065A50 - bl sub_080791D0 -_08065B0A: - movs r0, #0xd3 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_08065B18: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08065B1C -sub_08065B1C: @ 0x08065B1C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08065B42 - 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, #7 - bl sub_080042AC - b _08065B48 -_08065B42: - adds r0, r2, #0 - bl sub_080042B8 -_08065B48: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065B4C -sub_08065B4C: @ 0x08065B4C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065B68 @ =gUnk_08110118 - 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_0806ED78 - pop {r4, pc} - .align 2, 0 -_08065B68: .4byte gUnk_08110118 - - thumb_func_start sub_08065B6C -sub_08065B6C: @ 0x08065B6C - push {lr} - ldrb r1, [r0, #0xc] - adds r1, #1 - strb r1, [r0, #0xc] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldr r2, _08065B98 @ =0xFFFF8000 - adds r1, r2, #0 - ldrh r2, [r0, #0x30] - adds r1, r1, r2 - strh r1, [r0, #0x30] - movs r1, #6 - strb r1, [r0, #0x14] - movs r1, #3 - bl sub_080042AC - pop {pc} - .align 2, 0 -_08065B98: .4byte 0xFFFF8000 - - thumb_func_start sub_08065B9C -sub_08065B9C: @ 0x08065B9C - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08065BA4 -sub_08065BA4: @ 0x08065BA4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08065BBA - adds r0, r4, #0 - bl sub_08065C0C - b _08065BEA -_08065BBA: - ldr r1, _08065BEC @ =gUnk_08110164 - 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, #2 - bhi _08065BEA - ldr r2, _08065BF0 @ =gUnk_0811015C - ldrb r0, [r4, #0xf] - adds r1, r0, #1 - strb r1, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1b - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - strh r0, [r4, #0x36] -_08065BEA: - pop {r4, pc} - .align 2, 0 -_08065BEC: .4byte gUnk_08110164 -_08065BF0: .4byte gUnk_0811015C - - thumb_func_start sub_08065BF4 -sub_08065BF4: @ 0x08065BF4 - push {lr} - ldr r2, _08065C08 @ =gUnk_0811017C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08065C08: .4byte gUnk_0811017C - - thumb_func_start sub_08065C0C -sub_08065C0C: @ 0x08065C0C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08065C42 - cmp r0, #1 - bgt _08065C20 - cmp r0, #0 - beq _08065C2A - b _08065CCA -_08065C20: - cmp r0, #2 - beq _08065C7E - cmp r0, #3 - beq _08065C8A - b _08065CCA -_08065C2A: - 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_0807DD50 - b _08065CCA -_08065C42: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08065C74 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08065C70 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08065CCA - .align 2, 0 -_08065C70: .4byte gLinkEntity -_08065C74: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _08065CCA -_08065C7E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08065CCA - b _08065CC6 -_08065C8A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065CCA - ldr r1, [r4, #0x6c] - ldrh r2, [r1] - ldr r0, _08065CB4 @ =0x0000FFFF - cmp r2, r0 - beq _08065CBC - ldr r0, _08065CB8 @ =gUnk_03000F50 - adds r0, #0x68 - strh r2, [r0] - adds r1, #2 - ldrh r0, [r1] - strb r0, [r4, #0xe] - adds r1, #2 - str r1, [r4, #0x6c] - b _08065CCA - .align 2, 0 -_08065CB4: .4byte 0x0000FFFF -_08065CB8: .4byte gUnk_03000F50 -_08065CBC: - ldrb r0, [r4, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r4, #0x18] -_08065CC6: - movs r0, #1 - strb r0, [r4, #0xc] -_08065CCA: - pop {r4, pc} - - thumb_func_start sub_08065CCC -sub_08065CCC: @ 0x08065CCC - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #0x1e - strb r1, [r0, #0xe] - ldrb r2, [r0, #0x19] - subs r1, #0x2b - ands r1, r2 - movs r2, #4 - orrs r1, r2 - strb r1, [r0, #0x19] - ldr r1, _08065CF8 @ =gUnk_0811022E - str r1, [r0, #0x6c] - ldr r1, _08065CFC @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x10 - strh r0, [r1] - bx lr - .align 2, 0 -_08065CF8: .4byte gUnk_0811022E -_08065CFC: .4byte gUnk_03000F50 - - thumb_func_start sub_08065D00 -sub_08065D00: @ 0x08065D00 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08065D18 -sub_08065D18: @ 0x08065D18 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x1e - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - ldrb r1, [r4, #0x18] - subs r0, #0x22 - ands r0, r1 - orrs r0, r2 - 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] - ldr r0, _08065D6C @ =gUnk_08110188 - str r0, [r4, #0x6c] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - ldr r1, _08065D70 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - pop {r4, pc} - .align 2, 0 -_08065D6C: .4byte gUnk_08110188 -_08065D70: .4byte gUnk_03000F50 - - thumb_func_start sub_08065D74 -sub_08065D74: @ 0x08065D74 - 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 _08065DB4 - ldr r2, [r1, #0x6c] - ldrh r3, [r2] - ldr r0, _08065DA0 @ =0x0000FFFF - cmp r3, r0 - beq _08065DA8 - ldr r0, _08065DA4 @ =gUnk_03000F50 - adds r0, #0x68 - strh r3, [r0] - ldrh r0, [r2, #2] - strb r0, [r1, #0xe] - adds r0, r2, #4 - str r0, [r1, #0x6c] - b _08065DB4 - .align 2, 0 -_08065DA0: .4byte 0x0000FFFF -_08065DA4: .4byte gUnk_03000F50 -_08065DA8: - ldrb r0, [r1, #0xc] - adds r0, #1 - strb r0, [r1, #0xc] - movs r0, #0 - bl sub_08056378 -_08065DB4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065DB8 -sub_08065DB8: @ 0x08065DB8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #4 - bhi _08065E74 - lsls r0, r0, #2 - ldr r1, _08065DCC @ =_08065DD0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08065DCC: .4byte _08065DD0 -_08065DD0: @ jump table - .4byte _08065DE4 @ case 0 - .4byte _08065E08 @ case 1 - .4byte _08065EB0 @ case 2 - .4byte _08065E34 @ case 3 - .4byte _08065E4E @ case 4 -_08065DE4: - ldr r0, _08065E04 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #4 - bl sub_080042AC - b _08065EB0 - .align 2, 0 -_08065E04: .4byte gUnk_02000050 -_08065E08: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb4 - strb r0, [r4, #0xe] - ldr r1, _08065E30 @ =gUnk_02018EB0 - ldrb r0, [r1, #1] - adds r0, #1 - strb r0, [r1, #1] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - b _08065EB0 - .align 2, 0 -_08065E30: .4byte gUnk_02018EB0 -_08065E34: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - movs r0, #0 - bl sub_08056378 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _08065EB0 -_08065E4E: - ldr r0, _08065E6C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08065EB0 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldr r0, _08065E70 @ =gUnk_0811022E - str r0, [r4, #0x6c] - b _08065EB0 - .align 2, 0 -_08065E6C: .4byte gUnk_02000050 -_08065E70: .4byte gUnk_0811022E -_08065E74: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08065EB0 - ldr r1, [r4, #0x6c] - ldrh r2, [r1] - ldr r0, _08065E9C @ =0x0000FFFF - cmp r2, r0 - beq _08065EA4 - ldr r0, _08065EA0 @ =gUnk_03000F50 - adds r0, #0x68 - strh r2, [r0] - ldrh r0, [r1, #2] - strb r0, [r4, #0xe] - adds r0, r1, #4 - str r0, [r4, #0x6c] - b _08065EB0 - .align 2, 0 -_08065E9C: .4byte 0x0000FFFF -_08065EA0: .4byte gUnk_03000F50 -_08065EA4: - ldr r1, _08065EB8 @ =gUnk_02018EB0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - bl sub_0805E780 -_08065EB0: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08065EB8: .4byte gUnk_02018EB0 - - thumb_func_start sub_08065EBC -sub_08065EBC: @ 0x08065EBC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08065ED8 @ =gUnk_08110274 - 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_0806ED78 - pop {r4, pc} - .align 2, 0 -_08065ED8: .4byte gUnk_08110274 - - thumb_func_start sub_08065EDC -sub_08065EDC: @ 0x08065EDC - 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 _08065F1C - ldr r1, [r2, #0x6c] - ldrh r3, [r1] - ldr r0, _08065F08 @ =0x0000FFFF - cmp r3, r0 - beq _08065F10 - ldr r0, _08065F0C @ =gUnk_03000F50 - adds r0, #0x68 - strh r3, [r0] - adds r1, #2 - ldrh r0, [r1] - strb r0, [r2, #0xe] - adds r1, #2 - str r1, [r2, #0x6c] - b _08065F1C - .align 2, 0 -_08065F08: .4byte 0x0000FFFF -_08065F0C: .4byte gUnk_03000F50 -_08065F10: - ldrb r0, [r2, #0xc] - adds r0, #1 - strb r0, [r2, #0xc] - adds r0, r2, #0 - bl sub_08078778 -_08065F1C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065F20 -sub_08065F20: @ 0x08065F20 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08065F5E - movs r0, #0 - strb r0, [r1] - bl sub_08056378 - adds r2, r4, #0 - adds r2, #0x58 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _08065F60 @ =gUnk_0811033C - ldrb r0, [r2] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, #0 - bne _08065F56 - strb r0, [r2] -_08065F56: - ldrb r1, [r2] - adds r0, r4, #0 - bl sub_080042AC -_08065F5E: - pop {r4, pc} - .align 2, 0 -_08065F60: .4byte gUnk_0811033C - - thumb_func_start sub_08065F64 -sub_08065F64: @ 0x08065F64 - push {lr} - adds r3, r0, #0 - ldr r0, _08065F88 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _08065F74 - movs r0, #0 -_08065F74: - ldrb r1, [r3, #0xa] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _08065F8C @ =gUnk_08110280 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08065F88: .4byte gUnk_02002A40 -_08065F8C: .4byte gUnk_08110280 - - thumb_func_start sub_08065F90 -sub_08065F90: @ 0x08065F90 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08065FB6 - 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, #2 - bl sub_080042AC - b _08065FBC -_08065FB6: - adds r0, r2, #0 - bl sub_080042B8 -_08065FBC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08065FC0 -sub_08065FC0: @ 0x08065FC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08066028 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r6, r4, #0 - adds r6, #0x58 - cmp r0, #2 - bne _0806600C - movs r0, #0 - movs r1, #4 - strb r1, [r4, #0xc] - strb r0, [r2] - ldrb r0, [r6] - movs r5, #0 - cmp r0, #0xc - bne _08065FF0 - movs r5, #8 -_08065FF0: - ldr r1, _08066020 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r5, r5, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 -_0806600C: - ldr r0, _08066024 @ =gUnk_0811036C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _08066042 - .align 2, 0 -_08066020: .4byte gLinkEntity -_08066024: .4byte gUnk_0811036C -_08066028: - ldr r0, _08066058 @ =gUnk_08110360 - 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_0806ED78 - adds r6, r4, #0 - adds r6, #0x58 -_08066042: - ldrb r0, [r6] - cmp r0, #0xc - bne _0806605C - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - b _0806606E - .align 2, 0 -_08066058: .4byte gUnk_08110360 -_0806605C: - 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] -_0806606E: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080660A0 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - ldr r4, _080660A4 @ =gUnk_08110380 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl sub_080A3268 -_080660A0: - pop {r4, r5, r6, pc} - .align 2, 0 -_080660A4: .4byte gUnk_08110380 - - thumb_func_start sub_080660A8 -sub_080660A8: @ 0x080660A8 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - movs r0, #0x40 - ands r4, r0 - cmp r4, #0 - beq _080660CE - adds r0, r5, #0 - movs r1, #1 - movs r2, #0x16 - bl sub_0806FF60 - b _080660D8 -_080660CE: - adds r0, r5, #0 - movs r1, #1 - movs r2, #0xff - bl sub_0806FF60 -_080660D8: - adds r0, r5, #0 - movs r1, #0 - movs r2, #1 - bl sub_0806FF88 - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080660EC -sub_080660EC: @ 0x080660EC - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08066114 @ =gUnk_08110354 - bl sub_0806FDEC - cmp r0, #0 - beq _08066112 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_08066112: - pop {r4, pc} - .align 2, 0 -_08066114: .4byte gUnk_08110354 - - thumb_func_start sub_08066118 -sub_08066118: @ 0x08066118 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806612E - movs r1, #2 - b _08066144 -_0806612E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806613A - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066144 -_0806613A: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066144: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066154 - adds r0, r4, #0 - bl sub_080042B8 -_08066154: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806616C - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0 - bl sub_08056378 -_0806616C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066170 -sub_08066170: @ 0x08066170 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066178 -sub_08066178: @ 0x08066178 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080661AC @ =gUnk_08110354 - bl sub_0806FDEC - cmp r0, #0 - beq _080661A8 - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 -_080661A8: - pop {r4, pc} - .align 2, 0 -_080661AC: .4byte gUnk_08110354 - - thumb_func_start sub_080661B0 -sub_080661B0: @ 0x080661B0 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080661BC -sub_080661BC: @ 0x080661BC - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xc - bne _080661F4 - 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 _080661FC - adds r0, r4, #0 - bl sub_0806EDC4 - adds r0, #8 - adds r1, r4, #0 - adds r1, #0x80 - strh r0, [r1] - ldrh r1, [r1] - adds r0, r4, #0 - bl sub_080042AC - b _080661FC -_080661F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_080661FC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066200 -sub_08066200: @ 0x08066200 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_08066218 -sub_08066218: @ 0x08066218 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08066228 - movs r0, #1 - strb r0, [r4, #0xc] -_08066228: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806622C -sub_0806622C: @ 0x0806622C - push {lr} - adds r2, r0, #0 - ldr r0, _0806624C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806623C - movs r0, #0 -_0806623C: - lsls r1, r0, #3 - ldr r0, _08066250 @ =gUnk_08110390 - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806624C: .4byte gUnk_02002A40 -_08066250: .4byte gUnk_08110390 - - thumb_func_start nullsub_501 -nullsub_501: @ 0x08066254 - bx lr - .align 2, 0 - - thumb_func_start sub_08066258 -sub_08066258: @ 0x08066258 - push {r4, lr} - ldr r4, _08066270 @ =gUnk_081103D0 - bl sub_08000E50 - movs r1, #7 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 -_08066270: .4byte gUnk_081103D0 - - thumb_func_start sub_08066274 -sub_08066274: @ 0x08066274 - push {lr} - ldr r3, _08066284 @ =gUnk_081103E0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {pc} - .align 2, 0 -_08066284: .4byte gUnk_081103E0 - - thumb_func_start sub_08066288 -sub_08066288: @ 0x08066288 - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066298 -sub_08066298: @ 0x08066298 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080662D0 - ldr r1, _080662CC @ =gUnk_08110354 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080662D6 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #6 - bl sub_080042AC - b _080662D6 - .align 2, 0 -_080662CC: .4byte gUnk_08110354 -_080662D0: - adds r0, r4, #0 - bl sub_080042B8 -_080662D6: - pop {r4, pc} - - thumb_func_start sub_080662D8 -sub_080662D8: @ 0x080662D8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080662F4 @ =gUnk_081104C8 - 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_0806ED78 - pop {r4, pc} - .align 2, 0 -_080662F4: .4byte gUnk_081104C8 - - thumb_func_start sub_080662F8 -sub_080662F8: @ 0x080662F8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r2, #1 - movs r0, #1 - strb r0, [r5, #0xc] - strb r4, [r5, #0xd] - ldrb r1, [r5, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r0, [r5, #0xa] - lsls r0, r0, #1 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0xa] - adds r0, r5, #0 - bl sub_08004260 - ldrh r0, [r5, #0x2e] - adds r1, r5, #0 - adds r1, #0x7e - strh r0, [r1] - ldrh r1, [r5, #0x32] - adds r0, r5, #0 - adds r0, #0x80 - strh r1, [r0] - adds r0, #6 - strh r4, [r0] - ldrb r0, [r5, #0xe] - adds r1, r5, #0 - adds r1, #0x82 - strh r0, [r1] - ldr r0, _08066354 @ =gLinkEntity - str r0, [r5, #0x50] - adds r0, r5, #0 - adds r0, #0x84 - strh r4, [r0] - ldr r1, [r5, #0x50] - adds r0, r5, #0 - bl sub_08066490 - adds r0, r5, #0 - bl sub_08078778 - pop {r4, r5, pc} - .align 2, 0 -_08066354: .4byte gLinkEntity - - thumb_func_start sub_08066358 -sub_08066358: @ 0x08066358 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _080663B8 - movs r5, #0 - strb r5, [r1] - movs r0, #0 - bl sub_08056378 - ldrb r1, [r4, #0xb] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080663C0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r5, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - movs r2, #0x2e - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #8 - ble _08066396 - movs r0, #8 - b _08066398 -_08066396: - movs r0, #0x18 -_08066398: - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x84 - movs r2, #1 - movs r0, #1 - strh r0, [r1] - ldr r0, _080663B4 @ =gUnk_02034490 - strb r2, [r0] - adds r0, r4, #0 - bl sub_080788E0 - b _080663C0 - .align 2, 0 -_080663B4: .4byte gUnk_02034490 -_080663B8: - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08066490 -_080663C0: - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_08066570 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start nullsub_110 -nullsub_110: @ 0x080663D0 - bx lr - .align 2, 0 - - thumb_func_start sub_080663D4 -sub_080663D4: @ 0x080663D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x7e - ldrh r0, [r0] - subs r0, #8 - cmp r1, r0 - bne _08066410 - ldr r0, _0806640C @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xf - beq _0806642E - movs r0, #0 - movs r1, #4 - strb r1, [r4, #0xc] - strb r0, [r4, #0x15] - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x84 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806642E - .align 2, 0 -_0806640C: .4byte gLinkEntity -_08066410: - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _08066428 - ldrb r1, [r4, #0x15] - lsrs r1, r1, #3 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08066428: - adds r0, r4, #0 - bl sub_080AEF88 -_0806642E: - bl sub_08078B48 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806643C -sub_0806643C: @ 0x0806643C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0806650C - adds r4, r0, #0 - cmp r4, #0 - bne _08066462 - movs r0, #5 - strb r0, [r5, #0xc] - ldr r0, _0806646C @ =gUnk_03000BF0 - str r4, [r0, #0x30] - movs r0, #0x40 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - ldr r0, _08066470 @ =gLinkEntity - strb r4, [r0, #0x14] - strb r4, [r0, #0x15] -_08066462: - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_0806646C: .4byte gUnk_03000BF0 -_08066470: .4byte gLinkEntity - - thumb_func_start sub_08066474 -sub_08066474: @ 0x08066474 - push {lr} - ldr r0, _08066488 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0xf - beq _08066484 - ldr r1, _0806648C @ =gUnk_02034490 - movs r0, #0 - strb r0, [r1] -_08066484: - pop {pc} - .align 2, 0 -_08066488: .4byte gLinkEntity -_0806648C: .4byte gUnk_02034490 - - thumb_func_start sub_08066490 -sub_08066490: @ 0x08066490 - push {r4, r5, r6, lr} - mov ip, r0 - adds r5, r1, #0 - ldrb r1, [r0, #0xb] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806650A - mov r1, ip - ldrh r0, [r1, #0x2e] - adds r1, #0x86 - strh r0, [r1] - mov r0, ip - adds r0, #0x7e - ldrh r2, [r0] - adds r0, #4 - ldrh r0, [r0] - adds r3, r2, r0 - subs r4, r2, r0 - movs r6, #0x2e - ldrsh r0, [r5, r6] - cmp r0, r3 - bge _080664C6 - cmp r0, r4 - ble _080664C6 - adds r2, r0, #0 - b _080664D2 -_080664C6: - movs r2, #0x2e - ldrsh r0, [r5, r2] - adds r2, r4, #0 - cmp r0, r3 - blt _080664D2 - adds r2, r3, #0 -_080664D2: - ldrh r0, [r1] - cmp r0, r2 - bne _080664F0 - mov r1, ip - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #1 - bne _0806650A - movs r0, #0 - strh r0, [r1] - mov r0, ip - movs r1, #2 - bl sub_08004260 - b _0806650A -_080664F0: - mov r6, ip - strh r2, [r6, #0x2e] - mov r1, ip - adds r1, #0x84 - ldrh r0, [r1] - cmp r0, #0 - bne _0806650A - movs r0, #1 - strh r0, [r1] - mov r0, ip - movs r1, #6 - bl sub_08004260 -_0806650A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0806650C -sub_0806650C: @ 0x0806650C - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r1, _0806652C @ =gLinkEntity - ldrh r5, [r1, #0x2e] - adds r7, r5, #0 - ldrh r2, [r1, #0x32] - adds r0, #0x80 - ldrh r0, [r0] - adds r0, #0x10 - adds r6, r1, #0 - cmp r2, r0 - bge _08066530 - movs r4, #4 - b _0806654C - .align 2, 0 -_0806652C: .4byte gLinkEntity -_08066530: - adds r0, r3, #0 - adds r0, #0x7e - ldrh r1, [r0] - adds r0, r1, #2 - cmp r5, r0 - bge _0806653E - movs r4, #2 -_0806653E: - adds r0, r1, #6 - cmp r7, r0 - ble _08066546 - movs r4, #6 -_08066546: - cmp r4, #0 - bne _0806654C - strh r4, [r6, #0x24] -_0806654C: - ldrb r0, [r6, #0xc] - cmp r0, #0xf - beq _0806656A - cmp r4, #0 - bne _0806655A - movs r0, #0 - b _0806656C -_0806655A: - movs r0, #8 - movs r1, #0 - movs r2, #0 - bl sub_08078AC0 - strb r4, [r6, #0x14] - lsls r0, r4, #2 - strb r0, [r6, #0x15] -_0806656A: - movs r0, #1 -_0806656C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08066570 -sub_08066570: @ 0x08066570 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080665DE - ldrb r0, [r5, #0xc] - cmp r0, #3 - beq _080665DE - ldr r4, _080665E0 @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x50 - bl sub_0806FC80 - cmp r0, #0 - beq _080665DE - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r3, r0, #0 - movs r6, #1 - movs r1, #0x18 - adds r4, r3, #0 - ands r4, r1 - ldrb r0, [r5, #0x15] - adds r2, r1, #0 - ands r2, r0 - cmp r2, r4 - bne _080665C8 - adds r2, r3, #5 - movs r1, #7 - ands r2, r1 - ldrb r0, [r5, #0x15] - adds r0, #5 - ands r0, r1 - cmp r0, #2 - bhi _080665C8 - cmp r2, #2 - bhi _080665C8 - movs r6, #0 -_080665C8: - cmp r6, #0 - beq _080665DE - strb r3, [r5, #0x15] - adds r3, #4 - movs r0, #0x18 - ands r3, r0 - lsrs r3, r3, #3 - adds r0, r5, #0 - adds r1, r3, #0 - bl sub_08004260 -_080665DE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080665E0: .4byte gLinkEntity - - thumb_func_start sub_080665E4 -sub_080665E4: @ 0x080665E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08066638 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806661E - movs r0, #0 - strb r0, [r2] - strb r1, [r4, #0xc] - ldr r1, _08066630 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 -_0806661E: - ldr r0, _08066634 @ =gUnk_081104EC - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806664E - .align 2, 0 -_08066630: .4byte gLinkEntity -_08066634: .4byte gUnk_081104EC -_08066638: - ldr r0, _08066650 @ =gUnk_081104E0 - 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_0806ED78 -_0806664E: - pop {r4, pc} - .align 2, 0 -_08066650: .4byte gUnk_081104E0 - - thumb_func_start sub_08066654 -sub_08066654: @ 0x08066654 - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066688 -sub_08066688: @ 0x08066688 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806669E - movs r1, #2 - b _080666B4 -_0806669E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080666AA - movs r0, #0x10 - strb r0, [r4, #0xf] - b _080666B4 -_080666AA: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_080666B4: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _080666C4 - adds r0, r4, #0 - bl sub_080042B8 -_080666C4: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _080666D8 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_080666D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080666DC -sub_080666DC: @ 0x080666DC - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_080666E4 -sub_080666E4: @ 0x080666E4 - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_0806670C -sub_0806670C: @ 0x0806670C - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066718 -sub_08066718: @ 0x08066718 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08066728 - movs r0, #1 - strb r0, [r4, #0xc] -_08066728: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806672C -sub_0806672C: @ 0x0806672C - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806673C -sub_0806673C: @ 0x0806673C - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _0806674E - movs r1, #0 - b _0806676A -_0806674E: - movs r0, #2 - bl sub_0807CA84 - cmp r0, #0 - bne _0806675C - movs r1, #1 - b _0806676A -_0806675C: - movs r0, #3 - bl sub_0807CA84 - movs r1, #3 - cmp r0, #0 - bne _0806676A - movs r1, #2 -_0806676A: - ldr r0, _0806677C @ =gUnk_081104F8 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_0806677C: .4byte gUnk_081104F8 - - thumb_func_start sub_08066780 -sub_08066780: @ 0x08066780 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080667A6 - 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, #6 - bl sub_080042AC - b _080667AC -_080667A6: - adds r0, r2, #0 - bl sub_080042B8 -_080667AC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080667B0 -sub_080667B0: @ 0x080667B0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080667C6 - adds r0, r4, #0 - bl sub_08066864 - b _080667DC -_080667C6: - ldr r0, _080667E0 @ =gUnk_08110644 - 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_0806ED78 -_080667DC: - pop {r4, pc} - .align 2, 0 -_080667E0: .4byte gUnk_08110644 - - thumb_func_start sub_080667E4 -sub_080667E4: @ 0x080667E4 - 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 - movs r1, #2 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_08066808 -sub_08066808: @ 0x08066808 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _0806681E - movs r1, #2 - b _08066834 -_0806681E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806682A - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066834 -_0806682A: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066834: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066844 - adds r0, r4, #0 - bl sub_080042B8 -_08066844: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08066858 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_08066858: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806685C -sub_0806685C: @ 0x0806685C - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066864 -sub_08066864: @ 0x08066864 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _080668A2 - cmp r0, #1 - bgt _08066878 - cmp r0, #0 - beq _0806687E - b _080668EC -_08066878: - cmp r0, #2 - beq _080668DE - b _080668EC -_0806687E: - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - b _080668EC -_080668A2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080668D4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _080668D0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _080668EC - .align 2, 0 -_080668D0: .4byte gLinkEntity -_080668D4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _080668EC -_080668DE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080668EC - movs r0, #1 - strb r0, [r4, #0xc] -_080668EC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080668F0 -sub_080668F0: @ 0x080668F0 - 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_08066904 -sub_08066904: @ 0x08066904 - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - bl GetProgressFlag - cmp r0, #0 - bne _08066916 - movs r1, #0 - b _08066932 -_08066916: - movs r0, #2 - bl sub_0807CA84 - cmp r0, #0 - bne _08066924 - movs r1, #1 - b _08066932 -_08066924: - movs r0, #3 - bl sub_0807CA84 - movs r1, #3 - cmp r0, #0 - bne _08066932 - movs r1, #2 -_08066932: - ldr r0, _08066944 @ =gUnk_08110650 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_08066944: .4byte gUnk_08110650 - - thumb_func_start sub_08066948 -sub_08066948: @ 0x08066948 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806696E - 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, #6 - bl sub_080042AC - b _08066974 -_0806696E: - adds r0, r2, #0 - bl sub_080042B8 -_08066974: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066978 -sub_08066978: @ 0x08066978 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806699C - ldr r0, _08066998 @ =gUnk_081106E0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080669B2 - .align 2, 0 -_08066998: .4byte gUnk_081106E0 -_0806699C: - ldr r0, _080669B4 @ =gUnk_081106D4 - 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_0806ED78 -_080669B2: - pop {r4, pc} - .align 2, 0 -_080669B4: .4byte gUnk_081106D4 - - thumb_func_start sub_080669B8 -sub_080669B8: @ 0x080669B8 - 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 - movs r1, #2 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08078778 - pop {r4, pc} - - thumb_func_start sub_080669DC -sub_080669DC: @ 0x080669DC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _080669F2 - movs r1, #2 - b _08066A08 -_080669F2: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080669FE - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08066A08 -_080669FE: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08066A08: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08066A18 - adds r0, r4, #0 - bl sub_080042B8 -_08066A18: - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _08066A2C - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r2] -_08066A2C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066A30 -sub_08066A30: @ 0x08066A30 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08066A38 -sub_08066A38: @ 0x08066A38 - 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] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_08066A50 -sub_08066A50: @ 0x08066A50 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066A5C -sub_08066A5C: @ 0x08066A5C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08066A90 @ =gUnk_08110734 - ldrb r0, [r4, #0xc] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldrb r3, [r4, #0x1a] - lsrs r1, r3, #4 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r2, [r0] - movs r0, #1 - ands r0, r2 - adds r1, r1, r0 - movs r0, #0xf - ands r1, r0 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, #0x1a] - pop {r4, pc} - .align 2, 0 -_08066A90: .4byte gUnk_08110734 - - thumb_func_start sub_08066A94 -sub_08066A94: @ 0x08066A94 - push {r4, lr} - adds r4, r0, #0 - movs r2, #0 - movs r3, #1 - movs r0, #1 - strb r0, [r4, #0xc] - strb r2, [r4, #0xd] - ldrb r1, [r4, #0x18] - subs r0, #5 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x68 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08066ACC - pop {r4, pc} - - thumb_func_start sub_08066ACC -sub_08066ACC: @ 0x08066ACC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08066B18 @ =sub_08066B74 - bl sub_0807DD94 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _08066AF6 - ldr r0, _08066B1C @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _08066AF6 - adds r0, r4, #0 - bl sub_08095CB0 -_08066AF6: - adds r1, r4, #0 - adds r1, #0x5a - ldrb r2, [r1] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r5, r1, #0 - cmp r2, #0 - beq _08066B6E - cmp r2, #2 - beq _08066B34 - cmp r2, #2 - bhi _08066B20 - cmp r2, #1 - beq _08066B2A - b _08066B66 - .align 2, 0 -_08066B18: .4byte sub_08066B74 -_08066B1C: .4byte gUnk_030010A0 -_08066B20: - cmp r2, #3 - beq _08066B40 - cmp r2, #4 - beq _08066B52 - b _08066B66 -_08066B2A: - movs r0, #0x87 - lsls r0, r0, #2 - bl sub_08004488 - b _08066B66 -_08066B34: - ldr r0, _08066B3C @ =0x0000021E - bl sub_08004488 - b _08066B66 - .align 2, 0 -_08066B3C: .4byte 0x0000021E -_08066B40: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - movs r0, #4 - str r0, [r1, #4] - adds r0, r4, #0 - bl sub_0805DDEC - b _08066B66 -_08066B52: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - str r2, [r1, #4] - adds r0, r4, #0 - bl sub_0805DE18 - ldr r0, _08066B70 @ =0x0000021D - bl sub_08004488 -_08066B66: - ldrb r1, [r5] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5] -_08066B6E: - pop {r4, r5, pc} - .align 2, 0 -_08066B70: .4byte 0x0000021D - - thumb_func_start sub_08066B74 -sub_08066B74: @ 0x08066B74 - push {r4, r5, r6, lr} - mov ip, r0 - ldr r0, [r1, #8] - ldr r4, _08066BCC @ =0xFFF00000 - ands r4, r0 - ldr r2, _08066BD0 @ =0x000FFFFF - ands r0, r2 - str r0, [r1, #8] - cmp r4, #0 - bne _08066B8A - b _08066C86 -_08066B8A: - mov r3, ip - adds r3, #0x80 - mov r5, ip - adds r5, #0x68 - movs r6, #1 -_08066B94: - mvns r0, r4 - adds r1, r0, #1 - ands r1, r4 - eors r4, r1 - mov r2, ip - ldrb r0, [r2, #0x14] - lsrs r2, r0, #1 - movs r0, #0x80 - lsls r0, r0, #0x12 - cmp r1, r0 - beq _08066C4C - cmp r1, r0 - bhi _08066BE6 - movs r0, #0x80 - lsls r0, r0, #0xf - cmp r1, r0 - beq _08066C34 - cmp r1, r0 - bhi _08066BD4 - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r1, r0 - beq _08066C24 - movs r0, #0x80 - lsls r0, r0, #0xe - cmp r1, r0 - beq _08066C2C - b _08066C82 - .align 2, 0 -_08066BCC: .4byte 0xFFF00000 -_08066BD0: .4byte 0x000FFFFF -_08066BD4: - movs r0, #0x80 - lsls r0, r0, #0x10 - cmp r1, r0 - beq _08066C3C - movs r0, #0x80 - lsls r0, r0, #0x11 - cmp r1, r0 - beq _08066C44 - b _08066C82 -_08066BE6: - movs r0, #0x80 - lsls r0, r0, #0x15 - cmp r1, r0 - beq _08066C64 - cmp r1, r0 - bhi _08066C04 - movs r0, #0x80 - lsls r0, r0, #0x13 - cmp r1, r0 - beq _08066C54 - movs r0, #0x80 - lsls r0, r0, #0x14 - cmp r1, r0 - beq _08066C5C - b _08066C82 -_08066C04: - movs r0, #0x80 - lsls r0, r0, #0x17 - cmp r1, r0 - beq _08066C70 - cmp r1, r0 - bhi _08066C1A - movs r0, #0x80 - lsls r0, r0, #0x16 - cmp r1, r0 - beq _08066C6C - b _08066C82 -_08066C1A: - movs r0, #0x80 - lsls r0, r0, #0x18 - cmp r1, r0 - beq _08066C76 - b _08066C82 -_08066C24: - adds r0, r2, #0 - adds r0, #0x10 - strh r0, [r3] - b _08066C82 -_08066C2C: - adds r0, r2, #0 - adds r0, #0x14 - strh r0, [r3] - b _08066C82 -_08066C34: - adds r0, r2, #0 - adds r0, #0x18 - strh r0, [r3] - b _08066C82 -_08066C3C: - adds r0, r2, #0 - adds r0, #0x1c - strh r0, [r3] - b _08066C82 -_08066C44: - adds r0, r2, #0 - adds r0, #0x20 - strh r0, [r3] - b _08066C82 -_08066C4C: - adds r0, r2, #0 - adds r0, #0x24 - strh r0, [r3] - b _08066C82 -_08066C54: - adds r0, r2, #0 - adds r0, #0x28 - strh r0, [r3] - b _08066C82 -_08066C5C: - adds r0, r2, #0 - adds r0, #0x2c - strh r0, [r3] - b _08066C82 -_08066C64: - adds r0, r2, #0 - adds r0, #0x30 - strh r0, [r3] - b _08066C82 -_08066C6C: - strb r6, [r5] - b _08066C82 -_08066C70: - movs r0, #0xff - strb r0, [r5] - b _08066C82 -_08066C76: - mov r2, ip - adds r2, #0x69 - ldrb r1, [r2] - adds r0, r6, #0 - eors r0, r1 - strb r0, [r2] -_08066C82: - cmp r4, #0 - bne _08066B94 -_08066C86: - mov r0, ip - adds r0, #0x84 - ldr r1, [r0] - mov r0, ip - bl sub_0807DB98 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08066C94 -sub_08066C94: @ 0x08066C94 - push {lr} - movs r1, #0 - bl sub_0805DA90 - movs r0, #0xf7 - bl sub_080A3268 - pop {pc} - - thumb_func_start sub_08066CA4 -sub_08066CA4: @ 0x08066CA4 - push {lr} - movs r1, #1 - bl sub_0805DA90 - movs r0, #0xf6 - bl sub_080A3268 - pop {pc} - - thumb_func_start sub_08066CB4 -sub_08066CB4: @ 0x08066CB4 - push {lr} - ldr r2, _08066CC8 @ =gUnk_08110BD8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08066CC8: .4byte gUnk_08110BD8 - - thumb_func_start sub_08066CCC -sub_08066CCC: @ 0x08066CCC - 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 - movs r1, #7 - bl sub_0805EA78 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_08066CF8 -sub_08066CF8: @ 0x08066CF8 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08066D04 -sub_08066D04: @ 0x08066D04 - push {r4, lr} - adds r4, r0, #0 - movs r0, #7 - movs r1, #0x2e - bl sub_0805EB9C - str r0, [r4, #0x50] - pop {r4, pc} - - thumb_func_start sub_08066D14 -sub_08066D14: @ 0x08066D14 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, [r4, #0x50] - cmp r2, #0 - beq _08066D48 - ldrb r0, [r2, #0x14] - strb r0, [r4, #0x14] - 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, r2, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08068680 - movs r0, #1 - str r0, [r5, #0x14] - b _08066D4A -_08066D48: - str r2, [r5, #0x14] -_08066D4A: - pop {r4, r5, pc} - - thumb_func_start sub_08066D4C -sub_08066D4C: @ 0x08066D4C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _08066D90 - bl sub_0806FA24 - ldr r3, [r4, #0x50] - ldrb r1, [r3, #0x18] - movs r2, #4 - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3, #0x18] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - ldrb r0, [r4, #0x18] - ands r2, r0 - strb r2, [r4, #0x18] - ldrb r1, [r4, #0x17] - movs r0, #0xfe - ands r0, r1 - strb r0, [r4, #0x17] - ldr r1, [r4, #0x50] - adds r0, r4, #0 - bl sub_08068694 - movs r0, #1 - str r0, [r5, #0x14] - b _08066D92 -_08066D90: - str r1, [r5, #0x14] -_08066D92: - pop {r4, r5, pc} - - thumb_func_start sub_08066D94 -sub_08066D94: @ 0x08066D94 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x1c - bl sub_0807CD04 - movs r0, #0x2e - movs r1, #0 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _08066DD6 - ldr r0, _08066DDC @ =gLinkEntity - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x10] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r5, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - ldr r0, _08066DE0 @ =gUnk_03000BF0 - ldrb r1, [r0, #5] - adds r0, r4, #0 - adds r0, #0x74 - strh r1, [r0] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 -_08066DD6: - bl sub_0805E780 - pop {r4, r5, pc} - .align 2, 0 -_08066DDC: .4byte gLinkEntity -_08066DE0: .4byte gUnk_03000BF0 - - thumb_func_start sub_08066DE4 -sub_08066DE4: @ 0x08066DE4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #7 - movs r1, #0x2e - bl sub_0805EB9C - adds r4, r0, #0 - cmp r4, #0 - beq _08066E06 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080686C4 -_08066E06: - pop {r4, r5, pc} - - thumb_func_start sub_08066E08 -sub_08066E08: @ 0x08066E08 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x50 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E20 -sub_08066E20: @ 0x08066E20 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x44 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E38 -sub_08066E38: @ 0x08066E38 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x48 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E50 -sub_08066E50: @ 0x08066E50 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x4c - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E68 -sub_08066E68: @ 0x08066E68 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x54 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066E80 -sub_08066E80: @ 0x08066E80 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #4 - bhi _08066F7C - lsls r0, r0, #2 - ldr r1, _08066E98 @ =_08066E9C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08066E98: .4byte _08066E9C -_08066E9C: @ jump table - .4byte _08066EB0 @ case 0 - .4byte _08066EC0 @ case 1 - .4byte _08066EF0 @ case 2 - .4byte _08066F28 @ case 3 - .4byte _08066F58 @ case 4 -_08066EB0: - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - adds r0, r4, #0 - movs r1, #0x16 - bl sub_080042AC - b _08066F7C -_08066EC0: - 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 _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - movs r0, #0x7c - bl sub_080A3268 - b _08066F7C -_08066EF0: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #0x80 - bl sub_0806F62C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08066F1A - adds r0, r4, #0 - bl sub_080042B8 -_08066F1A: - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - b _08066F7C -_08066F28: - movs r1, #0x80 - lsls r1, r1, #1 - adds r0, r4, #0 - movs r2, #0x80 - bl sub_0806F62C - adds r0, r4, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08066F7C - ldrb r0, [r5, #0x18] - adds r0, #1 - strb r0, [r5, #0x18] - adds r0, r4, #0 - movs r1, #0x1e - bl sub_080042AC - b _08066F7C -_08066F58: - 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 _08066F7C - ldr r2, _08066F78 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _08066F8C - .align 2, 0 -_08066F78: .4byte gUnk_02033280 -_08066F7C: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - adds r0, #0x28 - movs r2, #0 - strh r1, [r0] - ldr r0, _08066F90 @ =gUnk_02033280 - strb r2, [r0, #6] -_08066F8C: - pop {r4, r5, pc} - .align 2, 0 -_08066F90: .4byte gUnk_02033280 - - thumb_func_start sub_08066F94 -sub_08066F94: @ 0x08066F94 - push {r4, lr} - ldr r4, _08066F9C @ =gUnk_08110BE0 - b _08066FAC - .align 2, 0 -_08066F9C: .4byte gUnk_08110BE0 -_08066FA0: - ldrh r1, [r4] - adds r4, #2 - ldr r0, _08066FB4 @ =0x00004072 - movs r2, #1 - bl sub_0807B314 -_08066FAC: - ldrh r0, [r4] - cmp r0, #0 - bne _08066FA0 - pop {r4, pc} - .align 2, 0 -_08066FB4: .4byte 0x00004072 - - thumb_func_start sub_08066FB8 -sub_08066FB8: @ 0x08066FB8 - push {r4, lr} - ldr r4, _08066FC0 @ =gUnk_08110BE0 - b _08066FCE - .align 2, 0 -_08066FC0: .4byte gUnk_08110BE0 -_08066FC4: - ldrh r0, [r4] - adds r4, #2 - movs r1, #1 - bl sub_0807BA8C -_08066FCE: - ldrh r0, [r4] - cmp r0, #0 - bne _08066FC4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08066FD8 -sub_08066FD8: @ 0x08066FD8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - bne _08066FE8 - bl sub_0805E780 -_08066FE8: - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _08067030 - cmp r0, #1 - bgt _08066FF8 - cmp r0, #0 - beq _08066FFE - b _0806707C -_08066FF8: - cmp r0, #2 - beq _0806706E - b _0806707C -_08066FFE: - ldr r1, _0806702C @ =gUnk_08110C00 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806707C - 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 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806707C - .align 2, 0 -_0806702C: .4byte gUnk_08110C00 -_08067030: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08067064 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08067060 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806707C - .align 2, 0 -_08067060: .4byte gLinkEntity -_08067064: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806707C -_0806706E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806707C - movs r0, #1 - strb r0, [r4, #0xc] -_0806707C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067080 -sub_08067080: @ 0x08067080 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080670B4 -sub_080670B4: @ 0x080670B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x11 - bl sub_0807CA84 - cmp r0, #0 - bne _080670D0 - movs r0, #0x15 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_080670D0: - ldr r0, _080670E0 @ =gUnk_08110C0C - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_080670E0: .4byte gUnk_08110C0C - - thumb_func_start sub_080670E4 -sub_080670E4: @ 0x080670E4 - push {lr} - ldr r1, _080670F8 @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _080670FC @ =gUnk_08110C10 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080670F8: .4byte gUnk_02002A40 -_080670FC: .4byte gUnk_08110C10 - - thumb_func_start sub_08067100 -sub_08067100: @ 0x08067100 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_08067118 -sub_08067118: @ 0x08067118 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067150 - ldr r1, _0806714C @ =gUnk_08110C00 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08067156 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_08004260 - b _08067156 - .align 2, 0 -_0806714C: .4byte gUnk_08110C00 -_08067150: - adds r0, r4, #0 - bl sub_08004274 -_08067156: - pop {r4, pc} - - thumb_func_start sub_08067158 -sub_08067158: @ 0x08067158 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x84 - ldr r0, [r0] - cmp r0, #0 - bne _08067168 - bl sub_0805E780 -_08067168: - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _080671A8 - cmp r5, #1 - bgt _08067178 - cmp r5, #0 - beq _0806717E - b _08067224 -_08067178: - cmp r5, #2 - beq _0806720A - b _08067224 -_0806717E: - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _080671EC @ =gUnk_08110CA8 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08067224 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_080671A8: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080671F4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _080671F0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - ldrb r0, [r4, #0xa] - lsls r0, r0, #3 - adds r0, #4 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _08067224 - .align 2, 0 -_080671EC: .4byte gUnk_08110CA8 -_080671F0: .4byte gLinkEntity -_080671F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _08067224 -_0806720A: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08067224 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_08067224: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08067228 -sub_08067228: @ 0x08067228 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bhi _0806727E - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C - b _080672AC -_0806727E: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_080672AC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080672B0 -sub_080672B0: @ 0x080672B0 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0xa] - lsls r2, r2, #3 - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080672C8 -sub_080672C8: @ 0x080672C8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x11 - bl sub_0807CA84 - cmp r0, #0 - bne _080672E4 - movs r0, #0x15 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_080672E4: - ldr r3, _08067300 @ =gUnk_08110CE8 - lsls r1, r4, #1 - ldrb r2, [r5, #0xa] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r3 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_08067300: .4byte gUnk_08110CE8 - - thumb_func_start sub_08067304 -sub_08067304: @ 0x08067304 - push {lr} - ldr r1, _08067310 @ =gUnk_08110D00 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08067310: .4byte gUnk_08110D00 - - thumb_func_start sub_08067314 -sub_08067314: @ 0x08067314 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806732C -sub_0806732C: @ 0x0806732C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067378 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _08067374 @ =gUnk_08110CA8 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806737E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_0805E3A0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #3 - adds r1, #2 - adds r0, r4, #0 - bl sub_08004260 - b _0806737E - .align 2, 0 -_08067374: .4byte gUnk_08110CA8 -_08067378: - adds r0, r4, #0 - bl sub_08004274 -_0806737E: - pop {r4, pc} - - thumb_func_start sub_08067380 -sub_08067380: @ 0x08067380 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080673A4 - ldr r0, _080673A0 @ =gUnk_08110E5C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080673BA - .align 2, 0 -_080673A0: .4byte gUnk_08110E5C -_080673A4: - ldr r0, _080673BC @ =gUnk_08110E4C - 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_0806ED78 -_080673BA: - pop {r4, pc} - .align 2, 0 -_080673BC: .4byte gUnk_08110E4C - - thumb_func_start sub_080673C0 -sub_080673C0: @ 0x080673C0 - push {lr} - adds r2, r0, #0 - ldr r0, _080673D4 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _080673D8 - movs r0, #3 - b _080673DA - .align 2, 0 -_080673D4: .4byte gUnk_030010A0 -_080673D8: - movs r0, #1 -_080673DA: - strb r0, [r2, #0xc] - ldrb r1, [r2, #0xa] - movs r0, #1 - ands r0, r1 - strb r0, [r2, #0x1e] - cmp r0, #0 - bne _080673EC - ldr r0, _080673F0 @ =gUnk_08110E94 - str r0, [r2, #0x48] -_080673EC: - pop {pc} - .align 2, 0 -_080673F0: .4byte gUnk_08110E94 - - thumb_func_start sub_080673F4 -sub_080673F4: @ 0x080673F4 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x39 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _0806740C - movs r1, #0 - movs r0, #2 - strb r0, [r2, #0xc] - strb r1, [r3] -_0806740C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067410 -sub_08067410: @ 0x08067410 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08067418 -sub_08067418: @ 0x08067418 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - movs r0, #1 - strb r0, [r6, #0xc] - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, _08067488 @ =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 r7, r6, #0 - adds r7, #0x74 - strh r1, [r7] - ldrb r0, [r6, #0xa] - cmp r0, #0 - bne _08067494 - ldr r0, _0806748C @ =gUnk_08110E94 - str r0, [r6, #0x48] - ldr r5, _08067490 @ =0x00004022 - ldrh r1, [r7] - subs r1, #1 - adds r4, r6, #0 - adds r4, #0x38 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x3f - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - ldrh r1, [r7] - adds r1, #0x40 - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_0800015E - b _080674F8 - .align 2, 0 -_08067488: .4byte gUnk_03000BF0 -_0806748C: .4byte gUnk_08110E94 -_08067490: .4byte 0x00004022 -_08067494: - adds r1, r6, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldrb r2, [r6, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r6, #0x1b] - ldrb r0, [r6, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r6, #0x19] - adds r2, r6, #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, #0x1d - bl sub_0807CBD0 - cmp r0, #0 - bne _080674F8 - ldr r4, _08067500 @ =0x00004022 - ldr r1, _08067504 @ =0x00000E81 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _08067508 @ =0x00000E82 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _0806750C @ =0x00000E83 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E - ldr r1, _08067510 @ =0x00000EC3 - adds r0, r4, #0 - movs r2, #1 - bl sub_0800015E -_080674F8: - adds r0, r6, #0 - bl sub_0807DD50 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08067500: .4byte 0x00004022 -_08067504: .4byte 0x00000E81 -_08067508: .4byte 0x00000E82 -_0806750C: .4byte 0x00000E83 -_08067510: .4byte 0x00000EC3 - - thumb_func_start sub_08067514 -sub_08067514: @ 0x08067514 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806752A - adds r0, r4, #0 - bl sub_0806ED78 -_0806752A: - pop {r4, pc} - - thumb_func_start sub_0806752C -sub_0806752C: @ 0x0806752C - push {lr} - bl sub_0806FD3C - pop {pc} - - thumb_func_start sub_08067534 -sub_08067534: @ 0x08067534 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 -_0806753A: - adds r0, r5, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _08067560 - ldr r0, _08067578 @ =gUnk_08110E64 - adds r0, r4, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - ldrh r0, [r1, #0x32] - adds r0, #0x1c - strh r0, [r1, #0x32] -_08067560: - adds r4, #1 - cmp r4, #1 - ble _0806753A - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_08004488 - movs r0, #0x28 - movs r1, #4 - bl sub_08080964 - pop {r4, r5, pc} - .align 2, 0 -_08067578: .4byte gUnk_08110E64 - - thumb_func_start sub_0806757C -sub_0806757C: @ 0x0806757C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - beq _080675CC - cmp r0, #2 - bls _080675BC - ldr r0, _080675AC @ =0x00000E81 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B0 @ =0x00000E82 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B4 @ =0x00000E83 - movs r1, #1 - bl sub_0807BA8C - ldr r0, _080675B8 @ =0x00000EC3 - movs r1, #1 - bl sub_0807BA8C - b _080675CC - .align 2, 0 -_080675AC: .4byte 0x00000E81 -_080675B0: .4byte 0x00000E82 -_080675B4: .4byte 0x00000E83 -_080675B8: .4byte 0x00000EC3 -_080675BC: - ldr r0, _080675D0 @ =gUnk_08110E68 - ldrb r1, [r2, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r2, #0 - bl sub_080ADF80 -_080675CC: - pop {pc} - .align 2, 0 -_080675D0: .4byte gUnk_08110E68 - - thumb_func_start sub_080675D4 -sub_080675D4: @ 0x080675D4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, _080676D0 @ =gUnk_08110E78 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r7, r0, #0 - subs r7, #0xc - movs r0, #0x3f - mov r8, r0 - movs r6, #8 -_080675EC: - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _08067646 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0806FAB0 -_08067646: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _080675EC - ldr r5, _080676D4 @ =gUnk_08110E8A - movs r0, #0x3f - mov r8, r0 - movs r6, #3 -_08067656: - adds r0, r4, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _080676B0 - movs r0, #0 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x2e] - adds r0, r0, r1 - strh r0, [r3, #0x2e] - movs r0, #1 - ldrsb r0, [r5, r0] - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - strh r7, [r3, #0x36] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r3, #0 - adds r0, #0x38 - strb r1, [r0] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x1b] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x1b] - ldrb r1, [r4, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r3, #0x19] - mov r0, r8 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_0806FAB0 -_080676B0: - subs r6, #1 - adds r5, #2 - cmp r6, #0 - bge _08067656 - ldrb r0, [r4, #0xd] - cmp r0, #2 - bls _080676C8 - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_080676C8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080676D0: .4byte gUnk_08110E78 -_080676D4: .4byte gUnk_08110E8A - - thumb_func_start sub_080676D8 -sub_080676D8: @ 0x080676D8 - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - bx lr - - thumb_func_start sub_080676E0 -sub_080676E0: @ 0x080676E0 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #1 - beq _08067706 - cmp r0, #1 - bgt _080676F6 - cmp r0, #0 - beq _080676FC - b _08067734 -_080676F6: - cmp r0, #2 - beq _08067722 - b _08067734 -_080676FC: - movs r0, #1 - strb r0, [r2, #0x18] - movs r0, #0x20 - strb r0, [r2, #0x19] - b _08067742 -_08067706: - ldrb r1, [r2, #0x19] - lsrs r0, r1, #1 - subs r0, #0x10 - strh r0, [r3, #0x36] - subs r1, #1 - strb r1, [r2, #0x19] - lsls r1, r1, #0x18 - cmp r1, #0 - bne _08067742 - movs r0, #2 - strb r0, [r2, #0x18] - movs r0, #0x24 - strb r0, [r2, #0x19] - b _08067742 -_08067722: - ldrb r0, [r2, #0x19] - subs r0, #1 - strb r0, [r2, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08067742 - movs r0, #3 - strb r0, [r2, #0x18] - b _08067742 -_08067734: - movs r1, #0xc0 - lsls r1, r1, #5 - adds r0, r3, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _08067748 -_08067742: - ldr r1, _0806774C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_08067748: - pop {pc} - .align 2, 0 -_0806774C: .4byte gUnk_02033280 - - thumb_func_start sub_08067750 -sub_08067750: @ 0x08067750 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08067788 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #1 - bl sub_08004260 - ldr r1, _08067784 @ =0x0000017B - adds r0, r4, #0 - bl sub_0801D2B4 - b _0806778E - .align 2, 0 -_08067784: .4byte 0x0000017B -_08067788: - adds r0, r4, #0 - bl sub_08004274 -_0806778E: - pop {r4, pc} - - thumb_func_start sub_08067790 -sub_08067790: @ 0x08067790 - push {lr} - ldrb r2, [r0, #0xa] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - ldr r2, _080677AC @ =gUnk_02002A40 - ldrb r2, [r2, #8] - lsls r2, r2, #3 - ldr r3, _080677B0 @ =gUnk_08110EF8 - adds r2, r2, r3 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080677AC: .4byte gUnk_02002A40 -_080677B0: .4byte gUnk_08110EF8 - - thumb_func_start sub_080677B4 -sub_080677B4: @ 0x080677B4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080677E8 @ =gUnk_081110D8 - 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_08067C44 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080677E4 - ldrb r0, [r4, #0xa] - cmp r0, #5 - beq _080677E4 - adds r0, r4, #0 - bl sub_0806ED78 -_080677E4: - pop {r4, pc} - .align 2, 0 -_080677E8: .4byte gUnk_081110D8 - - thumb_func_start sub_080677EC -sub_080677EC: @ 0x080677EC - 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] - movs r0, #8 - strb r0, [r4, #0x15] - movs r0, #0x80 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - adds r1, #4 - movs r0, #0x48 - strb r0, [r1] - subs r1, #1 - movs r0, #0xa8 - strb r0, [r1] - subs r1, #4 - movs r0, #1 - strb r0, [r1] - adds r1, #0x2e - movs r0, #0xff - strb r0, [r1] - ldr r0, _0806783C @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r4, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r1, r0 - bge _08067840 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067848 - .align 2, 0 -_0806783C: .4byte gLinkEntity -_08067840: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067848: - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldr r0, _0806786C @ =gUnk_08110EF0 - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08067870 - movs r0, #0x2e - ldrsh r2, [r4, r0] - b _08067872 - .align 2, 0 -_0806786C: .4byte gUnk_08110EF0 -_08067870: - lsrs r2, r2, #0x10 -_08067872: - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - strh r2, [r0] - ldrb r0, [r4, #0xe] - adds r0, r0, r2 - adds r2, r4, #0 - adds r2, #0x6e - strh r0, [r2] - strb r1, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x75 - strb r1, [r0] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x1e - adds r1, r4, #0 - adds r1, #0x74 - strb r0, [r1] - subs r1, #0xb - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_08067B08 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080678AC -sub_080678AC: @ 0x080678AC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08067D20 - cmp r0, #0 - beq _080678C2 - adds r0, r4, #0 - movs r1, #5 - bl sub_08067B80 - b _08067900 -_080678C2: - adds r2, r4, #0 - adds r2, #0x72 - ldrh r0, [r2] - cmp r0, #0 - beq _080678D0 - subs r0, #1 - strh r0, [r2] -_080678D0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #1 - bne _080678EA - ldrh r0, [r2] - cmp r0, #0 - bne _080678EA - adds r0, r4, #0 - bl sub_08067AAC - b _08067900 -_080678EA: - adds r0, r4, #0 - bl sub_080042B8 - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08067900 - adds r0, r4, #0 - bl sub_08067B34 -_08067900: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08067904 -sub_08067904: @ 0x08067904 - push {r4, lr} - adds r4, r0, #0 - bl sub_08067D20 - cmp r0, #0 - beq _0806791A - adds r0, r4, #0 - movs r1, #8 - bl sub_08067B80 - b _08067978 -_0806791A: - adds r1, r4, #0 - adds r1, #0x72 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _08067932 - adds r0, r4, #0 - bl sub_08067B70 - b _08067978 -_08067932: - ldrb r0, [r4, #0x15] - cmp r0, #8 - bne _08067952 - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r1, r4, #0 - adds r1, #0x6e - ldrh r1, [r1] - cmp r0, r1 - ble _0806796C - movs r0, #0x18 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x18] - subs r0, #0x59 - ands r0, r1 - b _0806796A -_08067952: - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r0, r4, #0 - adds r0, #0x6c - ldrh r0, [r0] - cmp r1, r0 - bge _0806796C - movs r0, #8 - strb r0, [r4, #0x15] - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806796A: - strb r0, [r4, #0x18] -_0806796C: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - bl sub_080042B8 -_08067978: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806797C -sub_0806797C: @ 0x0806797C - 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 _08067998 - adds r0, r4, #0 - bl sub_08067B08 -_08067998: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806799C -sub_0806799C: @ 0x0806799C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _080679C0 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080679BE - adds r0, r4, #0 - bl sub_08067B08 - adds r0, r4, #0 - movs r1, #1 - bl sub_0805E3A0 -_080679BE: - pop {r4, pc} - .align 2, 0 -_080679C0: .4byte gUnk_02000050 - - thumb_func_start sub_080679C4 -sub_080679C4: @ 0x080679C4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x74 - ldrb r0, [r1] - cmp r0, #0 - beq _080679E6 - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080679E6 - adds r0, r4, #0 - bl sub_08067D20 - cmp r0, #0 - bne _080679EE -_080679E6: - adds r0, r4, #0 - bl sub_08067C24 - b _08067A0A -_080679EE: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08067BD4 - adds r0, r4, #0 - bl sub_08067D74 - cmp r0, #0 - beq _08067A0A - adds r0, r4, #0 - bl sub_08067C18 -_08067A0A: - pop {r4, pc} - - thumb_func_start sub_08067A0C -sub_08067A0C: @ 0x08067A0C - 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 _08067A44 - adds r0, r4, #0 - bl sub_08067D20 - cmp r0, #0 - beq _08067A3C - adds r0, r4, #0 - movs r1, #5 - bl sub_08067B80 - ldrb r0, [r4, #0xe] - adds r0, #0x14 - strb r0, [r4, #0xe] - b _08067A76 -_08067A3C: - adds r0, r4, #0 - bl sub_08067C24 - b _08067A76 -_08067A44: - movs r2, #7 - ands r2, r1 - cmp r2, #0 - beq _08067A70 - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08067A6C @ =gUnk_08111154 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - lsls r0, r0, #2 - subs r0, #1 - adds r0, r2, r0 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - b _08067A76 - .align 2, 0 -_08067A6C: .4byte gUnk_08111154 -_08067A70: - adds r0, r4, #0 - bl sub_08067DDC -_08067A76: - pop {r4, pc} - - thumb_func_start sub_08067A78 -sub_08067A78: @ 0x08067A78 - 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 _08067A94 - adds r0, r4, #0 - bl sub_08067AAC -_08067A94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067A98 -sub_08067A98: @ 0x08067A98 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08067AAA - adds r0, r4, #0 - bl sub_08067B08 -_08067AAA: - pop {r4, pc} - - thumb_func_start sub_08067AAC -sub_08067AAC: @ 0x08067AAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08067AFC @ =gUnk_081110FC - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - ldrb r1, [r4, #0x15] - 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] - adds r0, r4, #0 - movs r1, #3 - bl sub_08067DCC - ldr r0, _08067B00 @ =gUnk_0811110C - ldrb r2, [r0, #2] - ldr r3, _08067B04 @ =gUnk_0811110F - adds r0, r4, #0 - movs r1, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_08067AFC: .4byte gUnk_081110FC -_08067B00: .4byte gUnk_0811110C -_08067B04: .4byte gUnk_0811110F - - thumb_func_start sub_08067B08 -sub_08067B08: @ 0x08067B08 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - bl sub_08000E50 - ldr r2, _08067B30 @ =gUnk_08111104 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r2 - ldrh r0, [r1] - adds r1, r4, #0 - adds r1, #0x72 - strh r0, [r1] - adds r0, r4, #0 - bl sub_08067B34 - pop {r4, pc} - .align 2, 0 -_08067B30: .4byte gUnk_08111104 - - thumb_func_start sub_08067B34 -sub_08067B34: @ 0x08067B34 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_08067DCC - bl sub_08000E50 - movs r1, #0x30 - ands r0, r1 - adds r0, #0xb4 - adds r1, r4, #0 - adds r1, #0x59 - strb r0, [r1] - ldr r1, _08067B68 @ =gUnk_0811110C - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - lsrs r0, r0, #0x1f - adds r0, r0, r1 - ldrb r2, [r0] - ldr r3, _08067B6C @ =gUnk_0811110F - adds r0, r4, #0 - movs r1, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_08067B68: .4byte gUnk_0811110C -_08067B6C: .4byte gUnk_0811110F - - thumb_func_start sub_08067B70 -sub_08067B70: @ 0x08067B70 - push {lr} - movs r1, #3 - strb r1, [r0, #0xc] - movs r1, #4 - bl sub_08067DCC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067B80 -sub_08067B80: @ 0x08067B80 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - movs r0, #5 - strb r0, [r5, #0xc] - movs r0, #0x14 - strb r0, [r5, #0xe] - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x1e - adds r1, r5, #0 - adds r1, #0x74 - strb r0, [r1] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080042AC - adds r0, r5, #0 - bl sub_08067DDC - ldr r0, _08067BC4 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r5, r2] - movs r2, #0x2e - ldrsh r0, [r0, r2] - cmp r1, r0 - bge _08067BC8 - ldrb r0, [r5, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067BD0 - .align 2, 0 -_08067BC4: .4byte gLinkEntity -_08067BC8: - ldrb r1, [r5, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067BD0: - strb r0, [r5, #0x18] - pop {r4, r5, pc} - - thumb_func_start sub_08067BD4 -sub_08067BD4: @ 0x08067BD4 - push {r4, lr} - adds r2, r0, #0 - ldrb r3, [r2, #0x18] - lsls r0, r3, #0x19 - cmp r0, #0 - bge _08067BFC - movs r1, #0x2e - ldrsh r0, [r2, r1] - subs r0, #4 - ldr r1, _08067BF8 @ =gLinkEntity - movs r4, #0x2e - ldrsh r1, [r1, r4] - cmp r0, r1 - ble _08067C12 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r3 - b _08067C10 - .align 2, 0 -_08067BF8: .4byte gLinkEntity -_08067BFC: - movs r1, #0x2e - ldrsh r0, [r2, r1] - adds r0, #4 - ldr r1, _08067C14 @ =gLinkEntity - movs r4, #0x2e - ldrsh r1, [r1, r4] - cmp r0, r1 - bge _08067C12 - movs r0, #0x40 - orrs r0, r3 -_08067C10: - strb r0, [r2, #0x18] -_08067C12: - pop {r4, pc} - .align 2, 0 -_08067C14: .4byte gLinkEntity - - thumb_func_start sub_08067C18 -sub_08067C18: @ 0x08067C18 - push {lr} - movs r1, #6 - strb r1, [r0, #0xc] - bl sub_080042AC - pop {pc} - - thumb_func_start sub_08067C24 -sub_08067C24: @ 0x08067C24 - push {r4, lr} - adds r4, r0, #0 - movs r0, #7 - strb r0, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x75 - movs r0, #0x14 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08067DDC - adds r0, r4, #0 - movs r1, #7 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_08067C44 -sub_08067C44: @ 0x08067C44 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08067C6C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r5, r0, #0x1f - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - cmp r5, r0 - beq _08067C7C - cmp r5, #0 - bne _08067C70 - adds r0, r4, #0 - bl sub_08078778 - b _08067C7C - .align 2, 0 -_08067C6C: .4byte gUnk_03003F80 -_08067C70: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_08067C7C: - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - subs r0, #0x30 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r1, #0 - beq _08067D1C - ldr r1, _08067CB4 @ =gLinkEntity - adds r0, r4, #0 - bl sub_0806FCA0 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0 - beq _08067CA6 - cmp r0, #3 - beq _08067CB8 -_08067CA6: - cmp r2, #2 - bne _08067CDA - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - b _08067CEC - .align 2, 0 -_08067CB4: .4byte gLinkEntity -_08067CB8: - cmp r2, #1 - bne _08067CC4 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08067CD4 -_08067CC4: - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x19 - lsrs r0, r0, #0x1f - cmp r0, #3 - bne _08067CD6 - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08067CD4: - strb r0, [r4, #0x18] -_08067CD6: - cmp r2, #2 - beq _08067CE4 -_08067CDA: - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC - b _08067CEC -_08067CE4: - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC -_08067CEC: - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #2 - bne _08067D00 - movs r0, #8 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _08067D12 -_08067D00: - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08067790 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_08067D12: - movs r0, #0 - strb r0, [r5] - movs r0, #0xd2 - bl sub_080A3268 -_08067D1C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08067D20 -sub_08067D20: @ 0x08067D20 - push {r4, r5, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x75 - ldrb r0, [r1] - cmp r0, #0 - beq _08067D34 - subs r0, #1 - strb r0, [r1] - b _08067D70 -_08067D34: - movs r0, #2 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08067D70 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - movs r3, #0x28 - cmp r0, #0 - bge _08067D4C - movs r3, #0x10 -_08067D4C: - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r5, #0x2e - ldrsh r0, [r4, r5] - subs r0, r0, r3 - subs r1, r1, r0 - cmp r1, #0x30 - bhi _08067D70 - movs r1, #0x32 - ldrsh r0, [r2, r1] - adds r0, #4 - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #0x38 - bhi _08067D70 - movs r0, #1 - b _08067D72 -_08067D70: - movs r0, #0 -_08067D72: - pop {r4, r5, pc} - - thumb_func_start sub_08067D74 -sub_08067D74: @ 0x08067D74 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #5 - beq _08067DC8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08067D88 - subs r0, #1 - strb r0, [r4, #0xe] -_08067D88: - movs r0, #2 - bl sub_08049DF4 - adds r2, r0, #0 - cmp r2, #0 - beq _08067DC8 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - movs r3, #0x18 - cmp r0, #0 - bge _08067DA0 - movs r3, #8 -_08067DA0: - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r5, #0x2e - ldrsh r0, [r4, r5] - subs r0, r0, r3 - subs r1, r1, r0 - cmp r1, #0x1e - bhi _08067DC8 - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r0, r0, r1 - cmp r0, #0x16 - bhi _08067DC8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08067DC8 - movs r0, #1 - b _08067DCA -_08067DC8: - movs r0, #0 -_08067DCA: - pop {r4, r5, pc} - - thumb_func_start sub_08067DCC -sub_08067DCC: @ 0x08067DCC - push {lr} - adds r2, r0, #0 - adds r2, #0x71 - strb r1, [r2] - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067DDC -sub_08067DDC: @ 0x08067DDC - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r1, #0 - strb r0, [r2, #0x10] - adds r0, r2, #0 - adds r0, #0x41 - strb r1, [r0] - subs r0, #4 - strb r1, [r0] - ldr r0, _08067DF8 @ =gUnk_08110EF0 - str r0, [r2, #0x48] - bx lr - .align 2, 0 -_08067DF8: .4byte gUnk_08110EF0 - - thumb_func_start sub_08067DFC -sub_08067DFC: @ 0x08067DFC - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _08067E22 - 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, #5 - bl sub_080042AC - b _08067E28 -_08067E22: - adds r0, r2, #0 - bl sub_080042B8 -_08067E28: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08067E2C -sub_08067E2C: @ 0x08067E2C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08067E58 - ldr r0, _08067E54 @ =gUnk_08111368 - 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_0806ED78 - b _08067E5E - .align 2, 0 -_08067E54: .4byte gUnk_08111368 -_08067E58: - adds r0, r4, #0 - bl sub_08067EF0 -_08067E5E: - pop {r4, pc} - - thumb_func_start sub_08067E60 -sub_08067E60: @ 0x08067E60 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08067E84 @ =gUnk_08111358 - bl sub_0806FDEC - cmp r0, #0 - beq _08067E80 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08078778 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 -_08067E80: - pop {r4, pc} - .align 2, 0 -_08067E84: .4byte gUnk_08111358 - - thumb_func_start sub_08067E88 -sub_08067E88: @ 0x08067E88 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _08067E9E - movs r1, #2 - b _08067EB4 -_08067E9E: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08067EAA - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08067EB4 -_08067EAA: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08067EB4: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08067EC4 - adds r0, r4, #0 - bl sub_08004274 -_08067EC4: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08067EE4 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl sub_08056378 -_08067EE4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08067EE8 -sub_08067EE8: @ 0x08067EE8 - movs r1, #1 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08067EF0 -sub_08067EF0: @ 0x08067EF0 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _08067F58 - cmp r4, #1 - bgt _08067F04 - cmp r4, #0 - beq _08067F10 - b _0806801A -_08067F04: - cmp r4, #2 - beq _08067FDC - cmp r4, #3 - bne _08067F0E - b _08068000 -_08067F0E: - b _0806801A -_08067F10: - ldr r1, _08067F50 @ =gUnk_08111358 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - bne _08067F1E - b _080680F0 -_08067F1E: - 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 r0, [r5, #0xa] - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x69 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - ldr r1, _08067F54 @ =gUnk_08111304 - ldrb r0, [r5, #0xb] - adds r0, r0, r1 - ldrb r1, [r0] - b _08067FF2 - .align 2, 0 -_08067F50: .4byte gUnk_08111358 -_08067F54: .4byte gUnk_08111304 -_08067F58: - adds r4, r5, #0 - adds r4, #0x39 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #2 - bne _08067F98 - movs r1, #0 - movs r0, #3 - strb r0, [r5, #0xc] - strb r1, [r4] - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _08067F94 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0806F118 - b _0806801A - .align 2, 0 -_08067F94: .4byte gLinkEntity -_08067F98: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - ldrb r0, [r5, #0xb] - cmp r0, #3 - bne _0806801A - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - beq _0806801A - movs r1, #0 - movs r0, #2 - strb r0, [r5, #0xc] - strb r1, [r4] - ldr r1, _08067FD8 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_08068190 - b _0806801A - .align 2, 0 -_08067FD8: .4byte gLinkEntity -_08067FDC: - ldr r0, _08067FFC @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806801A - movs r0, #1 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - adds r1, #4 -_08067FF2: - adds r0, r5, #0 - bl sub_08004260 - b _0806801A - .align 2, 0 -_08067FFC: .4byte gUnk_02000050 -_08068000: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806801A - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 -_0806801A: - adds r0, r5, #0 - adds r0, #0x59 - ldrb r1, [r0] - adds r7, r0, #0 - cmp r1, #0xff - beq _0806802C - adds r0, r5, #0 - bl sub_08004274 -_0806802C: - adds r1, r5, #0 - adds r1, #0x5b - ldrb r2, [r1] - movs r0, #1 - ands r0, r2 - adds r6, r1, #0 - cmp r0, #0 - beq _0806807E - movs r0, #0xfe - ands r0, r2 - strb r0, [r6] - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08068068 - ldr r4, _08068064 @ =gUnk_0811137A - bl sub_08000E50 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_080A3268 - b _0806807E - .align 2, 0 -_08068064: .4byte gUnk_0811137A -_08068068: - ldr r4, _080680F4 @ =gUnk_08111374 - bl sub_08000E50 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_08004488 -_0806807E: - ldrb r1, [r6] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080680A8 - movs r0, #0xfd - ands r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080680A8 - ldr r3, _080680F8 @ =0xFFE80000 - adds r0, r5, #0 - movs r2, #0 - bl sub_0806FA48 -_080680A8: - ldrb r1, [r6] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080680D2 - movs r0, #0xfb - ands r0, r1 - strb r0, [r6] - adds r0, r5, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _080680D2 - ldr r2, _080680FC @ =0xFFEC0000 - ldr r3, _08068100 @ =0xFFF60000 - adds r0, r5, #0 - bl sub_0806FA48 -_080680D2: - ldrb r1, [r6] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080680F0 - movs r0, #0xf7 - ands r0, r1 - strb r0, [r6] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - ldrb r1, [r7] - adds r0, r0, r1 - strb r0, [r7] -_080680F0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080680F4: .4byte gUnk_08111374 -_080680F8: .4byte 0xFFE80000 -_080680FC: .4byte 0xFFEC0000 -_08068100: .4byte 0xFFF60000 - - thumb_func_start sub_08068104 -sub_08068104: @ 0x08068104 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806811C -sub_0806811C: @ 0x0806811C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r7, r0, #0 - cmp r7, #0 - beq _0806812E - subs r0, #1 - strb r0, [r4, #0xe] - b _0806818A -_0806812E: - movs r0, #2 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806EDD8 - adds r3, r0, #0 - cmp r3, #0 - bge _08068148 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x14] - lsls r3, r0, #2 -_08068148: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #5 - asrs r1, r3, #1 - lsls r1, r1, #1 - ldr r2, _0806818C @ =gUnk_08111284 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r5, [r0, #1] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0806816C - adds r0, r3, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] -_0806816C: - movs r0, #0x40 - orrs r6, r0 - adds r0, r4, #0 - adds r0, #0x5a - strb r6, [r0] - movs r0, #0x7f - ands r5, r0 - strb r5, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x58 - strb r7, [r0] - adds r1, r4, #0 - adds r1, #0x59 - movs r0, #0xff - strb r0, [r1] -_0806818A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806818C: .4byte gUnk_08111284 - - thumb_func_start sub_08068190 -sub_08068190: @ 0x08068190 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r5, [r6, #0xb] - cmp r5, #8 - bls _0806819C - movs r5, #8 -_0806819C: - movs r0, #0x7e - bl sub_0807CBD0 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x41 - bl sub_0807CA84 - cmp r0, #0 - beq _080681B4 - movs r4, #2 -_080681B4: - movs r0, #2 - bl sub_0807CA84 - cmp r0, #0 - beq _080681C0 - movs r4, #3 -_080681C0: - ldr r2, _080681D4 @ =gUnk_0811130E - lsls r0, r4, #1 - lsls r1, r5, #3 - adds r0, r0, r1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r6, #0 - bl sub_08056398 - pop {r4, r5, r6, pc} - .align 2, 0 -_080681D4: .4byte gUnk_0811130E - - thumb_func_start sub_080681D8 -sub_080681D8: @ 0x080681D8 - ldr r1, [r1, #4] - strb r1, [r0, #0xa] - bx lr - .align 2, 0 - - thumb_func_start sub_080681E0 -sub_080681E0: @ 0x080681E0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r4, r0 - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #1 - bl sub_0806FF60 - movs r0, #0x40 - ands r0, r4 - cmp r0, #0 - beq _08068226 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r2, r4, #4 - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - b _08068268 -_08068226: - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _08068254 - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FF88 - b _08068268 -_08068254: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 -_08068268: - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - - thumb_func_start sub_08068270 -sub_08068270: @ 0x08068270 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080682A8 - ldr r1, _080682A4 @ =gUnk_08111358 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080682AE - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #6 - bl sub_08004260 - b _080682AE - .align 2, 0 -_080682A4: .4byte gUnk_08111358 -_080682A8: - adds r0, r4, #0 - bl sub_08004274 -_080682AE: - pop {r4, pc} - - thumb_func_start sub_080682B0 -sub_080682B0: @ 0x080682B0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r2, r0, #0 - cmp r2, #0 - bne _080682F4 - adds r0, #1 - strb r0, [r4, #0xc] - 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, #4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x68 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0 - bl sub_080042AC - adds r0, r4, #0 - movs r1, #0 - bl sub_0806854C -_080682F4: - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806830A - adds r0, r4, #0 - bl sub_08068318 - b _08068314 -_0806830A: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_08068314: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068318 -sub_08068318: @ 0x08068318 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - ldr r4, _08068414 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - ldr r3, _08068418 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r6 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _0806841C @ =0x0000FFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - ldrh r0, [r4, #0x36] - ands r3, r7 - orrs r3, r0 - adds r7, r3, #0 - ldr r0, _08068420 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08068424 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - adds r7, r2, #0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _08068428 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r7, r0, #0 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _0806842C @ =0x3FFFFFFF - ands r0, r2 - adds r7, r0, #0 - orrs r7, r1 - mov r0, r8 - ldr r5, [r0, #0x64] - ldrb r1, [r5, #6] - cmp r1, #0xa - bne _08068386 - lsrs r0, r7, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xa - bne _08068394 -_08068386: - cmp r1, #0x16 - bne _080683B4 - lsrs r0, r7, #0x10 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x16 - beq _080683B4 -_08068394: - ldrh r0, [r4, #0x2e] - mov r1, r8 - strh r0, [r1, #0x2e] - ldrh r0, [r4, #0x32] - strh r0, [r1, #0x32] - ldrb r1, [r1, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - mov r2, r8 - strb r0, [r2, #0x18] - mov r0, r8 - bl sub_08068578 -_080683B4: - movs r3, #0 - mov sb, r3 - ldr r0, [r5] - cmp r6, r0 - bne _080683D0 - ldr r0, [r5, #4] - cmp r7, r0 - bne _080683D0 - lsls r1, r7, #8 - lsrs r0, r1, #0x18 - cmp r0, #0x16 - beq _080683D0 - cmp r0, #0xa - bne _08068430 -_080683D0: - mov r0, r8 - ldr r5, [r0, #0x64] - adds r5, #0x90 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r1, #0x58 - add r1, r8 - mov ip, r1 - movs r2, #0x12 -_080683E6: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _080683E6 - mov r2, r8 - ldr r5, [r2, #0x64] - str r6, [r5] - str r7, [r5, #4] - movs r0, #4 - mov sb, r0 - ldrb r1, [r4] - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - ble _080684A8 - subs r0, r1, #1 - strb r0, [r4] - b _080684A8 - .align 2, 0 -_08068414: .4byte gLinkEntity -_08068418: .4byte 0xFFFF0000 -_0806841C: .4byte 0x0000FFFF -_08068420: .4byte gUnk_03003F80 -_08068424: .4byte 0xFF00FFFF -_08068428: .4byte 0xC0FFFFFF -_0806842C: .4byte 0x3FFFFFFF -_08068430: - adds r5, #0x98 - movs r1, #4 - ldrsh r0, [r5, r1] - cmp r0, #0 - bge _08068466 - mov r2, r8 - ldr r5, [r2, #0x64] - adds r5, #0x90 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r0, #0x58 - add r0, r8 - mov ip, r0 - movs r2, #0x12 -_08068450: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _08068450 - movs r1, #4 - mov sb, r1 - b _080684A8 -_08068466: - ldr r1, _0806851C @ =gLinkEntity - movs r2, #0x2e - ldrsh r0, [r1, r2] - movs r3, #0x32 - ldrsh r1, [r1, r3] - ldrh r2, [r5] - ldrh r3, [r5, #2] - bl sub_080041E8 - lsrs r0, r0, #4 - mov r4, r8 - adds r4, #0x69 - mov r3, r8 - adds r3, #0x38 - movs r1, #0x58 - add r1, r8 - mov ip, r1 - cmp r0, #0x18 - ble _080684A8 - mov r2, r8 - ldr r5, [r2, #0x64] - adds r5, #0x90 - movs r2, #0x12 -_08068494: - ldr r0, [r5] - ldr r1, [r5, #4] - str r0, [r5, #8] - str r1, [r5, #0xc] - subs r5, #8 - subs r2, #1 - cmp r2, #0 - bge _08068494 - movs r0, #4 - mov sb, r0 -_080684A8: - mov r1, r8 - ldr r5, [r1, #0x64] - adds r5, #0x98 - ldrh r0, [r5] - strh r0, [r1, #0x2e] - ldrh r0, [r5, #2] - strh r0, [r1, #0x32] - ldrh r0, [r5, #4] - strh r0, [r1, #0x36] - ldrb r0, [r5, #7] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1a - strb r0, [r1, #0x14] - ldrb r0, [r5, #7] - lsrs r0, r0, #6 - strb r0, [r3] - ldrb r0, [r5, #6] - cmp r0, #0x16 - beq _080684D2 - cmp r0, #0xa - bne _080684DE -_080684D2: - mov r2, r8 - ldrb r1, [r2, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2, #0x18] -_080684DE: - adds r1, r4, #0 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - ble _080684EE - subs r0, r2, #1 - strb r0, [r1] -_080684EE: - mov r2, sb - mov r3, r8 - ldrb r0, [r3, #0x14] - lsrs r0, r0, #1 - add sb, r0 - mov r0, ip - ldrb r0, [r0] - cmp sb, r0 - beq _08068520 - cmp r2, #0 - bne _0806850C - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bgt _08068520 -_0806850C: - mov r0, r8 - mov r1, sb - bl sub_080042AC - movs r0, #0x1e - strb r0, [r4] - b _08068526 - .align 2, 0 -_0806851C: .4byte gLinkEntity -_08068520: - mov r0, r8 - bl sub_080042B8 -_08068526: - mov r0, r8 - bl sub_0800451C - mov r1, r8 - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - bge _08068542 - movs r2, #0xc - rsbs r2, r2, #0 - mov r0, r8 - movs r1, #0 - bl sub_0806F854 -_08068542: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0806854C -sub_0806854C: @ 0x0806854C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xa0 - bl sub_0801D8E0 - str r0, [r5, #0x64] - cmp r0, #0 - beq _08068574 - adds r0, r5, #0 - adds r0, #0x68 - movs r4, #0 - movs r1, #1 - strb r1, [r0] - adds r0, r5, #0 - bl sub_080788E0 - str r4, [r5, #0x48] - adds r0, r5, #0 - bl sub_08068578 -_08068574: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08068578 -sub_08068578: @ 0x08068578 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - ldr r4, _08068664 @ =gLinkEntity - ldrh r1, [r4, #0x2e] - ldr r3, _08068668 @ =0xFFFF0000 - adds r0, r3, #0 - ands r0, r5 - orrs r0, r1 - ldrh r1, [r4, #0x32] - lsls r1, r1, #0x10 - ldr r2, _0806866C @ =0x0000FFFF - ands r0, r2 - adds r5, r0, #0 - orrs r5, r1 - ldrh r0, [r4, #0x36] - ands r3, r6 - orrs r3, r0 - ldr r0, _08068670 @ =gUnk_03003F80 - adds r0, #0xa8 - ldrb r0, [r0] - lsls r0, r0, #0x10 - ldr r2, _08068674 @ =0xFF00FFFF - ands r2, r3 - orrs r2, r0 - ldrb r1, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - lsls r1, r1, #0x18 - ldr r0, _08068678 @ =0xC0FFFFFF - ands r0, r2 - orrs r0, r1 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #0x1e - ldr r2, _0806867C @ =0x3FFFFFFF - ands r0, r2 - adds r6, r0, #0 - orrs r6, r1 - movs r0, #0x2e - ldrsh r1, [r4, r0] - movs r2, #0x2e - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov sl, r1 - movs r0, #0x32 - ldrsh r1, [r4, r0] - movs r2, #0x32 - ldrsh r0, [r7, r2] - subs r1, r1, r0 - mov r8, r1 - mov r1, sl - lsls r0, r1, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov sl, r0 - mov r2, r8 - lsls r0, r2, #0x10 - asrs r0, r0, #0x10 - movs r1, #0x14 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - ldr r3, [r7, #0x64] - movs r0, #0 - mov sb, r0 - mov ip, r0 - movs r4, #0x13 -_08068614: - mov r1, ip - asrs r0, r1, #8 - subs r0, r5, r0 - strh r0, [r3] - lsrs r0, r5, #0x10 - mov r2, sb - asrs r1, r2, #8 - subs r0, r0, r1 - strh r0, [r3, #2] - strh r6, [r3, #4] - lsrs r0, r6, #0x10 - strb r0, [r3, #6] - ldrb r0, [r7, #0x14] - movs r1, #0x3f - ands r1, r0 - ldrb r2, [r3, #7] - movs r0, #0x40 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r1, r7, #0 - adds r1, #0x38 - ldrb r1, [r1] - lsls r1, r1, #6 - movs r2, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r3, #7] - adds r3, #8 - add sb, r8 - add ip, sl - subs r4, #1 - cmp r4, #0 - bge _08068614 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08068664: .4byte gLinkEntity -_08068668: .4byte 0xFFFF0000 -_0806866C: .4byte 0x0000FFFF -_08068670: .4byte gUnk_03003F80 -_08068674: .4byte 0xFF00FFFF -_08068678: .4byte 0xC0FFFFFF -_0806867C: .4byte 0x3FFFFFFF - - thumb_func_start sub_08068680 -sub_08068680: @ 0x08068680 - adds r2, r1, #0 - adds r2, #0x68 - movs r0, #0 - strb r0, [r2] - ldrb r2, [r1, #0x18] - subs r0, #4 - ands r0, r2 - strb r0, [r1, #0x18] - bx lr - .align 2, 0 - - thumb_func_start sub_08068694 -sub_08068694: @ 0x08068694 - push {r4, lr} - adds r4, r1, #0 - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #1 - movs r1, #1 - strb r1, [r2] - ldrb r2, [r4, #0x18] - subs r1, #5 - ands r1, r2 - orrs r1, r3 - strb r1, [r4, #0x18] - ldrb r0, [r0, #0x14] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08068578 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080686C4 -sub_080686C4: @ 0x080686C4 - push {lr} - adds r0, r1, #0 - ldrh r1, [r0, #0x32] - subs r1, #0x10 - strh r1, [r0, #0x32] - bl sub_08068578 - pop {pc} - - thumb_func_start sub_080686D4 -sub_080686D4: @ 0x080686D4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08068700 - ldr r0, _080686FC @ =gUnk_08111530 - 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_0806ED78 - b _08068706 - .align 2, 0 -_080686FC: .4byte gUnk_08111530 -_08068700: - adds r0, r4, #0 - bl sub_08068780 -_08068706: - pop {r4, pc} - - thumb_func_start sub_08068708 -sub_08068708: @ 0x08068708 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806872C @ =gUnk_08111520 - bl sub_0806FDEC - cmp r0, #0 - beq _08068728 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_08068728: - pop {r4, pc} - .align 2, 0 -_0806872C: .4byte gUnk_08111520 - - thumb_func_start sub_08068730 -sub_08068730: @ 0x08068730 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - blt _08068762 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806875E - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _08068762 - adds r0, r4, #0 - bl sub_08004260 - b _08068762 -_0806875E: - subs r0, #1 - strb r0, [r4, #0xf] -_08068762: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0806877E - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl sub_08056378 -_0806877E: - pop {r4, pc} - - thumb_func_start sub_08068780 -sub_08068780: @ 0x08068780 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #1 - beq _080687D0 - cmp r0, #1 - bgt _08068794 - cmp r0, #0 - beq _0806879A - b _0806880E -_08068794: - cmp r0, #2 - beq _08068800 - b _0806880E -_0806879A: - ldr r1, _080687CC @ =gUnk_08111520 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806887A - 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 r0, [r5, #0xa] - strb r0, [r5, #0x14] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - b _0806880E - .align 2, 0 -_080687CC: .4byte gUnk_08111520 -_080687D0: - adds r2, r5, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _080687EA - movs r0, #0 - strb r1, [r5, #0xc] - strb r0, [r2] - adds r0, r5, #0 - bl sub_0806F118 - b _0806880E -_080687EA: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - adds r0, r5, #0 - bl sub_08004274 - b _0806880E -_08068800: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806880E - movs r0, #1 - strb r0, [r5, #0xc] -_0806880E: - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806887A - movs r0, #0xbf - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - bl sub_080040A8 - cmp r0, #0 - bne _08068848 - ldr r4, _08068844 @ =gUnk_0811153E - bl sub_08000E50 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_080A3268 - b _0806885E - .align 2, 0 -_08068844: .4byte gUnk_0811153E -_08068848: - ldr r4, _0806887C @ =gUnk_08111538 - bl sub_08000E50 - movs r1, #3 - bl __modsi3 - lsls r0, r0, #1 - adds r0, r0, r4 - ldrh r0, [r0] - bl sub_08004488 -_0806885E: - adds r0, r5, #0 - movs r1, #0x3d - movs r2, #0x20 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0806887A - movs r2, #0xc0 - lsls r2, r2, #0xd - ldr r3, _08068880 @ =0xFFF60000 - adds r0, r5, #0 - bl sub_0806FA48 -_0806887A: - pop {r4, r5, pc} - .align 2, 0 -_0806887C: .4byte gUnk_08111538 -_08068880: .4byte 0xFFF60000 - - thumb_func_start sub_08068884 -sub_08068884: @ 0x08068884 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806889C -sub_0806889C: @ 0x0806889C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x5a - ldrb r4, [r0] - movs r0, #0xc1 - rsbs r0, r0, #0 - ands r4, r0 - ldrb r2, [r5, #0x1e] - adds r0, r5, #0 - movs r1, #1 - bl sub_0806FF60 - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _080688E2 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #2 - movs r2, #0xff - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - b _08068906 -_080688E2: - adds r0, r5, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 - movs r0, #0xe1 - rsbs r0, r0, #0 - ands r4, r0 - adds r0, r5, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #2 - bl sub_0806FFD8 -_08068906: - adds r0, r5, #0 - bl sub_0807000C - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08068910 -sub_08068910: @ 0x08068910 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08068920 - subs r0, #1 - strb r0, [r4, #0xe] - b _08068960 -_08068920: - movs r0, #0x10 - strb r0, [r4, #0xe] - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08068960 - adds r0, r4, #0 - movs r1, #0x30 - movs r2, #0x30 - bl sub_0806EDD8 - adds r2, r0, #0 - cmp r2, #0 - bge _08068944 - movs r2, #0x10 -_08068944: - adds r0, r2, #0 - bl sub_0806F5A4 - adds r2, r0, #0 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] - movs r0, #4 - rsbs r0, r0, #0 - ands r1, r0 - adds r1, r1, r2 - adds r0, r4, #0 - bl sub_08004260 -_08068960: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068964 -sub_08068964: @ 0x08068964 - push {lr} - movs r0, #0x35 - movs r1, #0 - movs r2, #3 - bl sub_080A7C18 - movs r0, #0x35 - movs r1, #2 - bl sub_0807CAA0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806897C -sub_0806897C: @ 0x0806897C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _080689B4 - ldr r1, _080689B0 @ =gUnk_08111520 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _080689BA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #6 - bl sub_08004260 - b _080689BA - .align 2, 0 -_080689B0: .4byte gUnk_08111520 -_080689B4: - adds r0, r4, #0 - bl sub_08004274 -_080689BA: - pop {r4, pc} - - thumb_func_start nullsub_502 -nullsub_502: @ 0x080689BC - bx lr - .align 2, 0 - - thumb_func_start sub_080689C0 -sub_080689C0: @ 0x080689C0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080689E4 - ldr r0, _080689E0 @ =gUnk_081115D0 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _080689FA - .align 2, 0 -_080689E0: .4byte gUnk_081115D0 -_080689E4: - ldr r0, _08068A18 @ =gUnk_081115C0 - 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_0806ED78 -_080689FA: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08068A16 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08068BEC -_08068A16: - pop {r4, pc} - .align 2, 0 -_08068A18: .4byte gUnk_081115C0 - - thumb_func_start sub_08068A1C -sub_08068A1C: @ 0x08068A1C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - strb r0, [r4, #0xb] - ldr r0, _08068A34 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _08068A38 - movs r1, #6 - movs r0, #3 - b _08068A42 - .align 2, 0 -_08068A34: .4byte gUnk_030010A0 -_08068A38: - adds r0, r4, #0 - bl sub_08078778 - movs r1, #2 - movs r0, #1 -_08068A42: - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_08004260 - pop {r4, pc} - - thumb_func_start sub_08068A4C -sub_08068A4C: @ 0x08068A4C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - bge _08068A62 - movs r1, #2 - b _08068A78 -_08068A62: - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _08068A6E - movs r0, #0x10 - strb r0, [r4, #0xf] - b _08068A78 -_08068A6E: - subs r0, #1 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r1, [r0] -_08068A78: - adds r0, r4, #0 - bl sub_0806F078 - cmp r0, #0 - bne _08068A88 - adds r0, r4, #0 - bl sub_08004274 -_08068A88: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08068AA2 - movs r0, #0 - strb r0, [r1] - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0 - bl sub_08056378 -_08068AA2: - pop {r4, pc} - - thumb_func_start sub_08068AA4 -sub_08068AA4: @ 0x08068AA4 - push {lr} - adds r2, r0, #0 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r0, [r2, #0xa] - cmp r0, #0 - beq _08068AD4 - ldrb r0, [r2, #0xb] - adds r1, r0, #1 - movs r0, #7 - ands r1, r0 - strb r1, [r2, #0xb] - cmp r1, #0 - bne _08068AC4 - adds r0, r1, #1 - strb r0, [r2, #0xb] -_08068AC4: - ldr r0, _08068AD8 @ =gUnk_081115DC - ldrb r1, [r2, #0xb] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r1, [r1] - adds r0, r2, #0 - bl sub_0801D2B4 -_08068AD4: - pop {pc} - .align 2, 0 -_08068AD8: .4byte gUnk_081115DC - - thumb_func_start sub_08068ADC -sub_08068ADC: @ 0x08068ADC - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08068AF8 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #2 - bne _08068AF0 - adds r0, r4, #0 - bl sub_08004274 -_08068AF0: - adds r0, r4, #0 - bl sub_0806FD3C - pop {r4, pc} - .align 2, 0 -_08068AF8: .4byte gUnk_030010A0 - - thumb_func_start sub_08068AFC -sub_08068AFC: @ 0x08068AFC - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - pop {r4, pc} - - thumb_func_start sub_08068B2C -sub_08068B2C: @ 0x08068B2C - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _08068B64 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _08068B60 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _08068B6C - .align 2, 0 -_08068B60: .4byte gLinkEntity -_08068B64: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_08068B6C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068B70 -sub_08068B70: @ 0x08068B70 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08068B80 - movs r0, #1 - strb r0, [r4, #0xc] -_08068B80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068B84 -sub_08068B84: @ 0x08068B84 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08068BAC @ =gUnk_08111618 - ldrb r0, [r4, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08068B9A - movs r1, #0 - bl sub_08054414 -_08068B9A: - ldr r0, _08068BB0 @ =gUnk_081115EC - ldrb r1, [r4, #0xe] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r0, [r1] - bl sub_0805ED14 - pop {r4, pc} - .align 2, 0 -_08068BAC: .4byte gUnk_08111618 -_08068BB0: .4byte gUnk_081115EC - - thumb_func_start sub_08068BB4 -sub_08068BB4: @ 0x08068BB4 - ldr r2, _08068BCC @ =gUnk_02002A40 - adds r1, r2, #0 - adds r1, #0xb4 - ldrb r1, [r1] - adds r3, r0, #0 - adds r3, #0x69 - strb r1, [r3] - adds r2, #0xb5 - ldrb r1, [r2] - adds r0, #0x6a - strb r1, [r0] - bx lr - .align 2, 0 -_08068BCC: .4byte gUnk_02002A40 - - thumb_func_start sub_08068BD0 -sub_08068BD0: @ 0x08068BD0 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x69 - ldrb r0, [r0] - movs r1, #0 - bl sub_08054414 - adds r4, #0x6a - ldrb r0, [r4] - movs r1, #1 - bl sub_08054414 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068BEC -sub_08068BEC: @ 0x08068BEC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x44 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _08068C22 - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - ldr r3, _08068C24 @ =0xFFF00000 - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #0 - bl sub_0806FA48 - movs r0, #0xfa - bl sub_080A3268 -_08068C22: - pop {r4, pc} - .align 2, 0 -_08068C24: .4byte 0xFFF00000 - - thumb_func_start sub_08068C28 -sub_08068C28: @ 0x08068C28 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08068C54 @ =gUnk_08111623 - ldrb r1, [r4, #0xa] - adds r1, r1, r0 - ldrb r0, [r1] - strb r0, [r4, #0xe] - ldrb r5, [r4, #0xa] - cmp r5, #1 - bne _08068C6A - movs r0, #0x48 - bl sub_0807CA84 - cmp r0, #0 - beq _08068C6A - movs r0, #0x4b - bl sub_0807CA84 - cmp r0, #0 - bne _08068C58 - strb r5, [r4, #0xe] - b _08068C6A - .align 2, 0 -_08068C54: .4byte gUnk_08111623 -_08068C58: - movs r0, #0x4a - bl sub_0807CA84 - cmp r0, #0 - bne _08068C66 - movs r0, #2 - b _08068C68 -_08068C66: - movs r0, #3 -_08068C68: - strb r0, [r4, #0xe] -_08068C6A: - pop {r4, r5, pc} - - thumb_func_start sub_08068C6C -sub_08068C6C: @ 0x08068C6C - push {lr} - ldr r1, _08068C88 @ =gUnk_0811162B - ldrb r0, [r0, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - pop {pc} - .align 2, 0 -_08068C88: .4byte gUnk_0811162B - - thumb_func_start sub_08068C8C -sub_08068C8C: @ 0x08068C8C - ldr r2, _08068C9C @ =gUnk_08111638 - ldrb r0, [r0, #0xe] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r0, [r0] - str r0, [r1, #0x14] - bx lr - .align 2, 0 -_08068C9C: .4byte gUnk_08111638 - - thumb_func_start sub_08068CA0 -sub_08068CA0: @ 0x08068CA0 - push {r4, lr} - adds r4, r1, #0 - ldrb r1, [r0, #0xa] - cmp r1, #1 - bne _08068CDC - str r1, [r4, #0x14] - movs r0, #0x48 - bl sub_0807CA84 - cmp r0, #0 - bne _08068CB8 - str r0, [r4, #0x14] -_08068CB8: - movs r0, #0x4b - bl sub_0807CA84 - cmp r0, #0 - bne _08068CC4 - str r0, [r4, #0x14] -_08068CC4: - movs r0, #0x4a - bl sub_0807CA84 - cmp r0, #0 - bne _08068CD0 - str r0, [r4, #0x14] -_08068CD0: - movs r0, #0x4e - bl sub_0807CA84 - cmp r0, #0 - bne _08068CF6 - b _08068CF4 -_08068CDC: - ldr r1, _08068CF8 @ =gUnk_0811162B - ldrb r0, [r0, #0xe] - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - bl sub_0807CA84 - cmp r0, #0 - beq _08068CF4 - movs r0, #1 -_08068CF4: - str r0, [r4, #0x14] -_08068CF6: - pop {r4, pc} - .align 2, 0 -_08068CF8: .4byte gUnk_0811162B - - thumb_func_start sub_08068CFC -sub_08068CFC: @ 0x08068CFC - push {r4, lr} - adds r4, r1, #0 - movs r1, #0 - str r1, [r4, #0x14] - ldrb r0, [r0, #0xe] - cmp r0, #0xa - bhi _08068DB6 - lsls r0, r0, #2 - ldr r1, _08068D14 @ =_08068D18 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08068D14: .4byte _08068D18 -_08068D18: @ jump table - .4byte _08068DB2 @ case 0 - .4byte _08068D44 @ case 1 - .4byte _08068D48 @ case 2 - .4byte _08068D4C @ case 3 - .4byte _08068DB2 @ case 4 - .4byte _08068D50 @ case 5 - .4byte _08068D58 @ case 6 - .4byte _08068D68 @ case 7 - .4byte _08068DB2 @ case 8 - .4byte _08068DB2 @ case 9 - .4byte _08068DA8 @ case 10 -_08068D44: - movs r0, #2 - b _08068DAA -_08068D48: - movs r0, #0x15 - b _08068DAA -_08068D4C: - movs r0, #0x14 - b _08068DAA -_08068D50: - movs r0, #3 - bl sub_0807CBD0 - b _08068DAE -_08068D58: - ldr r0, _08068D64 @ =gUnk_02002A40 - adds r0, #0xab - ldrb r0, [r0] - cmp r0, #0x4f - bls _08068DB6 - b _08068DB2 - .align 2, 0 -_08068D64: .4byte gUnk_02002A40 -_08068D68: - movs r0, #0x48 - bl sub_0807CA84 - cmp r0, #0 - beq _08068DB6 - movs r0, #0x49 - bl sub_0807CA84 - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4a - bl sub_0807CA84 - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4b - bl sub_0807CA84 - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4c - bl sub_0807CA84 - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4e - bl sub_0807CA84 - cmp r0, #0 - beq _08068DB6 - movs r0, #0x4f - b _08068DAA -_08068DA8: - movs r0, #0x4d -_08068DAA: - bl sub_0807CA84 -_08068DAE: - cmp r0, #0 - beq _08068DB6 -_08068DB2: - movs r0, #1 - str r0, [r4, #0x14] -_08068DB6: - pop {r4, pc} - - thumb_func_start sub_08068DB8 -sub_08068DB8: @ 0x08068DB8 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DCC @ =gUnk_08111664 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068DCC: .4byte gUnk_08111664 - - thumb_func_start sub_08068DD0 -sub_08068DD0: @ 0x08068DD0 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DE4 @ =gUnk_0811167A - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068DE4: .4byte gUnk_0811167A - - thumb_func_start sub_08068DE8 -sub_08068DE8: @ 0x08068DE8 - push {lr} - adds r1, r0, #0 - ldr r2, _08068DFC @ =gUnk_08111690 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068DFC: .4byte gUnk_08111690 - - thumb_func_start sub_08068E00 -sub_08068E00: @ 0x08068E00 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E14 @ =gUnk_081116A6 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068E14: .4byte gUnk_081116A6 - - thumb_func_start sub_08068E18 -sub_08068E18: @ 0x08068E18 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E2C @ =gUnk_081116BC - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068E2C: .4byte gUnk_081116BC - - thumb_func_start sub_08068E30 -sub_08068E30: @ 0x08068E30 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E44 @ =gUnk_081116D2 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068E44: .4byte gUnk_081116D2 - - thumb_func_start sub_08068E48 -sub_08068E48: @ 0x08068E48 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E5C @ =gUnk_081116E8 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068E5C: .4byte gUnk_081116E8 - - thumb_func_start sub_08068E60 -sub_08068E60: @ 0x08068E60 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E74 @ =gUnk_081116FE - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068E74: .4byte gUnk_081116FE - - thumb_func_start sub_08068E78 -sub_08068E78: @ 0x08068E78 - push {lr} - adds r1, r0, #0 - ldr r2, _08068E8C @ =gUnk_08111714 - ldrb r0, [r1, #0xe] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - bl sub_08056398 - pop {pc} - .align 2, 0 -_08068E8C: .4byte gUnk_08111714 - - thumb_func_start sub_08068E90 -sub_08068E90: @ 0x08068E90 - ldr r2, _08068EAC @ =gUnk_03003F80 - adds r2, #0xac - ldr r1, _08068EB0 @ =gUnk_08111740 - ldrb r0, [r0, #0xe] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - subs r1, #1 - movs r0, #1 - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_08068EAC: .4byte gUnk_03003F80 -_08068EB0: .4byte gUnk_08111740 - - thumb_func_start sub_08068EB4 -sub_08068EB4: @ 0x08068EB4 - ldr r0, _08068EC0 @ =gUnk_03003F80 - adds r0, #0xab - movs r1, #0 - strb r1, [r0] - bx lr - .align 2, 0 -_08068EC0: .4byte gUnk_03003F80 - - thumb_func_start sub_08068EC4 -sub_08068EC4: @ 0x08068EC4 - push {r4, lr} - adds r3, r1, #0 - ldr r2, _08068EEC @ =gUnk_08111740 - ldrb r4, [r0, #0xe] - lsls r1, r4, #2 - adds r1, r1, r2 - ldr r0, _08068EF0 @ =gUnk_03003F80 - adds r0, #0xab - ldr r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _08068EF8 - ldr r1, _08068EF4 @ =gUnk_0811172A - lsls r0, r4, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3, #0x10] - movs r0, #1 - b _08068EFA - .align 2, 0 -_08068EEC: .4byte gUnk_08111740 -_08068EF0: .4byte gUnk_03003F80 -_08068EF4: .4byte gUnk_0811172A -_08068EF8: - movs r0, #0 -_08068EFA: - str r0, [r3, #0x14] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F00 -sub_08068F00: @ 0x08068F00 - push {lr} - ldrb r0, [r0, #0xe] - cmp r0, #1 - bne _08068F0E - ldr r0, _08068F10 @ =gUnk_080F3494 - bl sub_0804ADDC -_08068F0E: - pop {pc} - .align 2, 0 -_08068F10: .4byte gUnk_080F3494 - - thumb_func_start sub_08068F14 -sub_08068F14: @ 0x08068F14 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #5 - bne _08068F24 - movs r0, #0xa0 - bl sub_080526A0 -_08068F24: - ldrb r0, [r4, #0xe] - cmp r0, #6 - bne _08068F38 - movs r0, #0xa0 - rsbs r0, r0, #0 - bl sub_080526A0 - movs r0, #2 - bl sub_080526A0 -_08068F38: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F3C -sub_08068F3C: @ 0x08068F3C - push {lr} - ldrb r0, [r0, #0xe] - cmp r0, #6 - bne _08068F4A - movs r0, #0xa0 - bl sub_080526A0 -_08068F4A: - pop {pc} - - thumb_func_start sub_08068F4C -sub_08068F4C: @ 0x08068F4C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _08068F72 - adds r0, #1 - strb r0, [r4, #0xc] - 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, #4 - bl sub_080042AC - b _08068F78 -_08068F72: - adds r0, r4, #0 - bl sub_080042B8 -_08068F78: - adds r2, r4, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08068F94 - movs r0, #0xfe - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - movs r1, #0 - bl sub_08068BEC -_08068F94: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08068F98 -sub_08068F98: @ 0x08068F98 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08068FBC @ =gUnk_08111914 - 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_0806ED78 - adds r0, r4, #0 - bl sub_0806920C - pop {r4, pc} - .align 2, 0 -_08068FBC: .4byte gUnk_08111914 - - thumb_func_start sub_08068FC0 -sub_08068FC0: @ 0x08068FC0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xb] - strb r0, [r4, #0x14] - movs r0, #0x40 - strh r0, [r4, #0x24] - adds r1, r4, #0 - adds r1, #0x6d - movs r0, #0xff - strb r0, [r1] - adds r0, r4, #0 - bl sub_0805ACC0 - adds r2, r0, #0 - cmp r2, #0 - bne _08068FF4 - ldrh r0, [r4, #0x2e] - adds r1, r4, #0 - adds r1, #0x68 - strh r0, [r1] - ldrh r0, [r4, #0x32] - adds r1, #2 - strh r0, [r1] - b _08069000 -_08068FF4: - lsrs r1, r2, #0x10 - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, #2 - strh r2, [r0] -_08069000: - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x6c - strb r0, [r1] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_08069018 -sub_08069018: @ 0x08069018 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806903A - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_0806903A: - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806905E - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _08069058 - movs r0, #2 - b _0806905A -_08069058: - movs r0, #3 -_0806905A: - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806905E: - adds r0, r4, #0 - bl sub_0806924C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069068 -sub_08069068: @ 0x08069068 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _080690A4 - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #2 - ands r1, r0 - subs r1, #1 - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - movs r0, #3 - ands r1, r0 - strb r1, [r4, #0x14] - lsls r1, r1, #3 - strb r1, [r4, #0x15] - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xf] - ldrb r1, [r4, #0x14] - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC -_080690A4: - adds r0, r4, #0 - bl sub_080AEF88 - adds r0, r4, #0 - bl sub_080042B8 - movs r0, #0x2e - ldrsh r1, [r4, r0] - adds r2, r4, #0 - adds r2, #0x68 - movs r3, #0 - ldrsh r0, [r2, r3] - subs r1, r1, r0 - cmp r1, #0x10 - ble _080690CC - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strb r0, [r4, #0xf] -_080690CC: - movs r3, #0x10 - rsbs r3, r3, #0 - cmp r1, r3 - bge _080690DE - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x2e] - movs r0, #1 - strb r0, [r4, #0xf] -_080690DE: - movs r5, #0x32 - ldrsh r1, [r4, r5] - adds r2, r4, #0 - adds r2, #0x6a - movs r5, #0 - ldrsh r0, [r2, r5] - subs r1, r1, r0 - cmp r1, #0x10 - ble _080690FA - ldrh r0, [r2] - adds r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strb r0, [r4, #0xf] -_080690FA: - cmp r1, r3 - bge _08069108 - ldrh r0, [r2] - subs r0, #0x10 - strh r0, [r4, #0x32] - movs r0, #1 - strb r0, [r4, #0xf] -_08069108: - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806911C - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806911C: - adds r0, r4, #0 - bl sub_0806924C - pop {r4, r5, pc} - - thumb_func_start sub_08069124 -sub_08069124: @ 0x08069124 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r1, _08069144 @ =gUnk_08111928 - 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_0806924C - pop {r4, pc} - .align 2, 0 -_08069144: .4byte gUnk_08111928 - - thumb_func_start sub_08069148 -sub_08069148: @ 0x08069148 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #3 - strb r0, [r4, #0xf] - movs r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x14] - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - pop {r4, pc} - - thumb_func_start sub_08069168 -sub_08069168: @ 0x08069168 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _08069186 - movs r0, #2 - strb r0, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #0xc - adds r0, r2, #0 - bl sub_080042AC -_08069186: - pop {pc} - - thumb_func_start sub_08069188 -sub_08069188: @ 0x08069188 - push {lr} - adds r2, r0, #0 - adds r3, r2, #0 - adds r3, #0x5a - ldrb r1, [r3] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080691B8 - movs r0, #0 - strb r0, [r3] - ldrb r0, [r2, #0xf] - subs r0, #1 - strb r0, [r2, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080691B8 - movs r0, #3 - strb r0, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #0x10 - adds r0, r2, #0 - bl sub_080042AC -_080691B8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080691BC -sub_080691BC: @ 0x080691BC - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bge _080691DE - movs r1, #0 - movs r0, #1 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - ldrb r1, [r2, #0x14] - adds r1, #4 - adds r0, r2, #0 - bl sub_080042AC -_080691DE: - pop {pc} - - thumb_func_start sub_080691E0 -sub_080691E0: @ 0x080691E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _080691F4 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_080691F4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080691F8 -sub_080691F8: @ 0x080691F8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _08069208 @ =gUnk_08111938 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_08069208: .4byte gUnk_08111938 - - thumb_func_start sub_0806920C -sub_0806920C: @ 0x0806920C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08069234 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r5, r0, #0x1f - adds r0, r4, #0 - adds r0, #0x6d - ldrb r0, [r0] - cmp r5, r0 - beq _08069244 - cmp r5, #0 - bne _08069238 - adds r0, r4, #0 - bl sub_08078778 - b _08069244 - .align 2, 0 -_08069234: .4byte gUnk_03003F80 -_08069238: - adds r0, r4, #0 - adds r0, #0x6c - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_08069244: - adds r0, r4, #0 - adds r0, #0x6d - strb r5, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_0806924C -sub_0806924C: @ 0x0806924C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806929C - ldr r0, _08069278 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069284 - cmp r2, #2 - bne _0806927C - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806928E - .align 2, 0 -_08069278: .4byte gUnk_03003F80 -_0806927C: - adds r0, r4, #0 - bl sub_080691F8 - b _0806928E -_08069284: - adds r0, r4, #0 - bl sub_080691F8 - bl sub_080791D0 -_0806928E: - movs r0, #0xd4 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806929C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080692A0 -sub_080692A0: @ 0x080692A0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _080692C6 - 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, #0xf - bl sub_080042AC - b _080692CC -_080692C6: - adds r0, r2, #0 - bl sub_080042B8 -_080692CC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080692D0 -sub_080692D0: @ 0x080692D0 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080692F4 - ldr r0, _080692F0 @ =gUnk_08111A8C - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806930A - .align 2, 0 -_080692F0: .4byte gUnk_08111A8C -_080692F4: - ldr r0, _0806930C @ =gUnk_08111A80 - 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_0806ED78 -_0806930A: - pop {r4, pc} - .align 2, 0 -_0806930C: .4byte gUnk_08111A80 - - thumb_func_start sub_08069310 -sub_08069310: @ 0x08069310 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078778 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069328 -sub_08069328: @ 0x08069328 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _0806934E - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - cmp r0, #0 - blt _0806934E - strb r0, [r4, #0x14] -_0806934E: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _08069362 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_08069362: - adds r0, r4, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806938E - movs r0, #2 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0805E47C - adds r0, r4, #0 - movs r1, #8 - bl sub_080042AC - ldrb r0, [r4, #0xe] - movs r1, #0x90 - lsls r1, r1, #5 - adds r0, r0, r1 - bl sub_08056378 -_0806938E: - pop {r4, pc} - - thumb_func_start sub_08069390 -sub_08069390: @ 0x08069390 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _080693C0 @ =gUnk_02000050 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _080693BC - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x39 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0805E584 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_080693BC: - pop {r4, pc} - .align 2, 0 -_080693C0: .4byte gUnk_02000050 - - thumb_func_start sub_080693C4 -sub_080693C4: @ 0x080693C4 - push {lr} - movs r1, #1 - strb r1, [r0, #0xc] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_080693D0 -sub_080693D0: @ 0x080693D0 - push {r4, r5, r6, lr} - adds r5, r0, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r5, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #8 - bne _08069422 - adds r0, r5, #0 - adds r0, #0x82 - ldrh r0, [r0] - movs r1, #0xf - ands r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r6, r0, #0x1f - adds r4, r5, #0 - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _0806940C - movs r0, #0 - strb r0, [r4] - ldr r1, _08069424 @ =0xFFF80000 - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_08069428 -_0806940C: - ldrb r0, [r4] - cmp r0, #2 - bne _08069422 - movs r0, #0 - strb r0, [r4] - movs r1, #0x80 - lsls r1, r1, #0xc - adds r0, r5, #0 - adds r2, r6, #0 - bl sub_08069428 -_08069422: - pop {r4, r5, r6, pc} - .align 2, 0 -_08069424: .4byte 0xFFF80000 - - thumb_func_start sub_08069428 -sub_08069428: @ 0x08069428 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - movs r1, #4 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _08069452 - ldr r3, _0806947C @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_0806FA48 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_08069452: - cmp r6, #0 - beq _0806947A - adds r0, r5, #0 - movs r1, #0x41 - movs r2, #0 - bl CreateFX - adds r4, r0, #0 - cmp r4, #0 - beq _0806947A - ldr r3, _0806947C @ =0xFFF00000 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_0806FA48 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806947A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806947C: .4byte 0xFFF00000 - - thumb_func_start sub_08069480 -sub_08069480: @ 0x08069480 - push {lr} - bl sub_0801E99C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {pc} - - thumb_func_start sub_0806948C -sub_0806948C: @ 0x0806948C - push {r4, lr} - adds r4, r1, #0 - bl sub_08069480 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0801E7F4 - str r0, [r4, #0x14] - ldr r2, _080694AC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_080694AC: .4byte gUnk_02033280 - - thumb_func_start sub_080694B0 -sub_080694B0: @ 0x080694B0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08069480 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - adds r0, r5, #0 - bl sub_0801E7F4 - cmp r0, #0 - beq _080694CE - adds r0, r4, #0 - bl sub_08078778 - b _080694D6 -_080694CE: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078784 -_080694D6: - pop {r4, r5, pc} - - thumb_func_start sub_080694D8 -sub_080694D8: @ 0x080694D8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _080694E8 @ =gUnk_08111A94 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_080694E8: .4byte gUnk_08111A94 - - thumb_func_start sub_080694EC -sub_080694EC: @ 0x080694EC - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #4 - strb r0, [r4, #0x14] - movs r5, #2 - movs r0, #0x2f - bl sub_0801E7F4 - cmp r0, #0 - bne _08069502 - movs r5, #8 -_08069502: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x80 - strh r5, [r0] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08069514 -sub_08069514: @ 0x08069514 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806953A - 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, #2 - bl sub_080042AC - b _08069540 -_0806953A: - adds r0, r2, #0 - bl sub_080042B8 -_08069540: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069544 -sub_08069544: @ 0x08069544 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08069568 - ldr r0, _08069564 @ =gUnk_08111B98 - ldrb r1, [r4, #0xc] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 - b _0806957E - .align 2, 0 -_08069564: .4byte gUnk_08111B98 -_08069568: - ldr r0, _08069580 @ =gUnk_08111B88 - 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_0806ED78 -_0806957E: - pop {r4, pc} - .align 2, 0 -_08069580: .4byte gUnk_08111B88 - - thumb_func_start sub_08069584 -sub_08069584: @ 0x08069584 - push {lr} - adds r1, r0, #0 - ldr r0, _08069598 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0 - beq _0806959C - movs r0, #3 - b _0806959E - .align 2, 0 -_08069598: .4byte gUnk_030010A0 -_0806959C: - movs r0, #1 -_0806959E: - strb r0, [r1, #0xc] - adds r0, r1, #0 - movs r1, #2 - bl sub_080042AC - pop {pc} - .align 2, 0 - - thumb_func_start sub_080695AC -sub_080695AC: @ 0x080695AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - adds r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x10 - bls _080695D2 - movs r0, #0 - strb r0, [r4, #0xf] - adds r0, r4, #0 - movs r1, #0x28 - movs r2, #0x28 - bl sub_0806ED9C - cmp r0, #0 - blt _080695D2 - strb r0, [r4, #0x14] -_080695D2: - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r4, #0x14] - cmp r0, r1 - beq _080695E6 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_080695E6: - pop {r4, pc} - - thumb_func_start sub_080695E8 -sub_080695E8: @ 0x080695E8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _08069618 @ =gUnk_02000050 - ldrb r0, [r0] - movs r1, #0x7f - ands r1, r0 - cmp r1, #0 - bne _08069614 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x39 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0805E584 - ldrb r1, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC -_08069614: - pop {r4, pc} - .align 2, 0 -_08069618: .4byte gUnk_02000050 - - thumb_func_start sub_0806961C -sub_0806961C: @ 0x0806961C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08069638 @ =gUnk_030010A0 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #2 - bne _08069630 - adds r0, r4, #0 - bl sub_080042B8 -_08069630: - adds r0, r4, #0 - bl sub_0806FD3C - pop {r4, pc} - .align 2, 0 -_08069638: .4byte gUnk_030010A0 - - thumb_func_start sub_0806963C -sub_0806963C: @ 0x0806963C - 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] - bl sub_0807DD50 - pop {pc} - - thumb_func_start sub_08069654 -sub_08069654: @ 0x08069654 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069660 -sub_08069660: @ 0x08069660 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0806967C @ =0x00002C1C - adds r1, r4, #0 - bl sub_08056398 - adds r0, r4, #0 - bl sub_080696BC - ldr r1, _08069680 @ =gUnk_02000050 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - str r0, [r1, #0x10] - pop {r4, pc} - .align 2, 0 -_0806967C: .4byte 0x00002C1C -_08069680: .4byte gUnk_02000050 - - thumb_func_start sub_08069684 -sub_08069684: @ 0x08069684 - push {lr} - movs r0, #9 - movs r1, #0x31 - movs r2, #8 - bl sub_0805EB00 - cmp r0, #0 - bne _080696AE - bl sub_0805E8D4 - adds r1, r0, #0 - cmp r1, #0 - beq _080696AE - movs r0, #9 - strb r0, [r1, #8] - movs r0, #0x31 - strb r0, [r1, #9] - adds r0, r1, #0 - movs r1, #8 - bl sub_0805EA2C -_080696AE: - pop {pc} - - thumb_func_start sub_080696B0 -sub_080696B0: @ 0x080696B0 - ldr r1, _080696B8 @ =gUnk_02034350 - movs r0, #0 - strb r0, [r1, #6] - bx lr - .align 2, 0 -_080696B8: .4byte gUnk_02034350 - - thumb_func_start sub_080696BC -sub_080696BC: @ 0x080696BC - push {r4, r5, lr} - ldr r0, _08069710 @ =gUnk_02034350 - ldrb r0, [r0, #7] - movs r5, #0 - cmp r0, #0x70 - ble _080696CA - movs r5, #1 -_080696CA: - cmp r0, #0x72 - ble _080696D0 - movs r5, #2 -_080696D0: - movs r0, #0x3e - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x3f - bl GetProgressFlag - cmp r0, #0 - beq _080696E8 - movs r4, #2 -_080696E8: - movs r0, #0x40 - bl GetProgressFlag - cmp r0, #0 - beq _080696F4 - movs r4, #3 -_080696F4: - movs r0, #0x41 - bl GetProgressFlag - cmp r0, #0 - beq _08069700 - movs r4, #4 -_08069700: - ldr r0, _08069714 @ =gUnk_08111BA0 - lsls r1, r4, #1 - adds r1, r1, r4 - adds r1, r1, r5 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - pop {r4, r5, pc} - .align 2, 0 -_08069710: .4byte gUnk_02034350 -_08069714: .4byte gUnk_08111BA0 - - thumb_func_start sub_08069718 -sub_08069718: @ 0x08069718 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - bl sub_080696BC - adds r6, r0, #0 - ldr r0, _08069754 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r6, r0 - bgt _08069764 - ldr r5, _08069758 @ =gUnk_02034350 - ldrb r0, [r5, #7] - bl sub_0801E7D0 - cmp r0, #0x62 - bhi _0806975C - rsbs r0, r6, #0 - bl sub_080526CC - ldrb r1, [r5, #7] - movs r0, #0x5c - movs r2, #0 - bl sub_080A7C18 - movs r0, #0 - strb r0, [r5, #6] - strb r0, [r5, #7] - movs r0, #1 - b _0806976E - .align 2, 0 -_08069754: .4byte gUnk_02002A40 -_08069758: .4byte gUnk_02034350 -_0806975C: - ldr r0, _08069760 @ =0x00002C1F - b _08069766 - .align 2, 0 -_08069760: .4byte 0x00002C1F -_08069764: - ldr r0, _0806977C @ =0x00002C1E -_08069766: - adds r1, r4, #0 - bl sub_08056398 - movs r0, #0 -_0806976E: - str r0, [r7, #0x14] - ldr r2, _08069780 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806977C: .4byte 0x00002C1E -_08069780: .4byte gUnk_02033280 - - thumb_func_start sub_08069784 -sub_08069784: @ 0x08069784 - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806979A - adds r0, r2, #0 - bl sub_08069838 - b _080697A0 -_0806979A: - adds r0, r2, #0 - bl sub_080697A4 -_080697A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080697A4 -sub_080697A4: @ 0x080697A4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080697C0 @ =gUnk_08111C48 - 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_0806ED78 - pop {r4, pc} - .align 2, 0 -_080697C0: .4byte gUnk_08111C48 - - thumb_func_start sub_080697C4 -sub_080697C4: @ 0x080697C4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080697E8 @ =gUnk_08111C3C - bl sub_0806FDEC - cmp r0, #0 - beq _080697E4 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_080697E4: - pop {r4, pc} - .align 2, 0 -_080697E8: .4byte gUnk_08111C3C - - thumb_func_start sub_080697EC -sub_080697EC: @ 0x080697EC - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806ED9C - adds r1, r0, #0 - cmp r1, #0 - blt _0806981E - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _0806981A - movs r0, #0x10 - strb r0, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, r1 - beq _0806981E - adds r0, r4, #0 - bl sub_08004260 - b _0806981E -_0806981A: - subs r0, #1 - strb r0, [r4, #0xf] -_0806981E: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08069834 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08069888 -_08069834: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069838 -sub_08069838: @ 0x08069838 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _08069862 - ldr r1, _08069884 @ =gUnk_08111C3C - bl sub_0806FDEC - cmp r0, #0 - beq _08069880 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x68 - strb r5, [r0] - adds r0, #1 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0807DD64 -_08069862: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _08069880 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - bl sub_08069888 -_08069880: - pop {r4, r5, pc} - .align 2, 0 -_08069884: .4byte gUnk_08111C3C - - thumb_func_start sub_08069888 -sub_08069888: @ 0x08069888 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x47 - bl GetProgressFlag - cmp r0, #0 - bne _080698A0 - movs r4, #0 - movs r0, #0x47 - bl sub_0807CD04 - b _08069906 -_080698A0: - movs r0, #0x2b - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r0, #0x2c - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r0, #0x2d - bl GetProgressFlag - cmp r0, #0 - bne _080698C2 - movs r4, #1 - b _08069906 -_080698C2: - movs r0, #0x18 - bl GetProgressFlag - cmp r0, #0 - bne _080698D0 - movs r4, #2 - b _08069906 -_080698D0: - movs r0, #0x48 - bl GetProgressFlag - cmp r0, #0 - bne _080698E4 - movs r4, #3 - movs r0, #0x48 - bl sub_0807CD04 - b _08069906 -_080698E4: - movs r0, #0x2e - bl GetProgressFlag - cmp r0, #0 - bne _08069904 - movs r0, #0x2f - bl GetProgressFlag - cmp r0, #0 - bne _08069904 - movs r0, #0x30 - bl GetProgressFlag - movs r4, #4 - cmp r0, #0 - beq _08069906 -_08069904: - movs r4, #5 -_08069906: - ldr r0, _08069918 @ =gUnk_08111C50 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_08069918: .4byte gUnk_08111C50 - - thumb_func_start sub_0806991C -sub_0806991C: @ 0x0806991C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - adds r1, r5, #0 - adds r1, #0x68 - movs r3, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x69 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _0806999C @ =gUnk_08111C5C - adds r1, r1, r0 - ldr r2, _080699A0 @ =gUnk_03000BF0 - ldrh r0, [r1] - ldrh r6, [r2, #6] - adds r0, r0, r6 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - movs r0, #8 - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - str r3, [r4, #0x14] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r6, #0x32 - ldrsh r2, [r5, r6] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - ldrb r2, [r5, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _080699A4 @ =gUnk_08111C74 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r5, #0x14] - ldr r2, _080699A8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806999C: .4byte gUnk_08111C5C -_080699A0: .4byte gUnk_03000BF0 -_080699A4: .4byte gUnk_08111C74 -_080699A8: .4byte gUnk_02033280 - - thumb_func_start sub_080699AC -sub_080699AC: @ 0x080699AC - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - adds r1, r5, #0 - adds r1, #0x68 - movs r3, #0 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0x69 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - ldr r0, _08069A2C @ =gUnk_08111C84 - adds r1, r1, r0 - ldr r2, _08069A30 @ =gUnk_03000BF0 - ldrh r0, [r1] - ldrh r6, [r2, #6] - adds r0, r0, r6 - strh r0, [r4, #0x1e] - ldrh r0, [r1, #2] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r4, #0x22] - movs r0, #8 - strb r0, [r4, #0x19] - ldr r0, [r4, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r4, #8] - str r3, [r4, #0x14] - movs r1, #0x1e - ldrsh r0, [r4, r1] - movs r2, #0x2e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r4, r3] - movs r6, #0x32 - ldrsh r2, [r5, r6] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r5, #0x15] - ldrb r2, [r5, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _08069A34 @ =gUnk_08111C8C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r5, #0x14] - ldr r2, _08069A38 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_08069A2C: .4byte gUnk_08111C84 -_08069A30: .4byte gUnk_03000BF0 -_08069A34: .4byte gUnk_08111C8C -_08069A38: .4byte gUnk_02033280 - - thumb_func_start sub_08069A3C -sub_08069A3C: @ 0x08069A3C - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08069A5C @ =gUnk_08111C9C - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069A5C: .4byte gUnk_08111C9C - - thumb_func_start sub_08069A60 -sub_08069A60: @ 0x08069A60 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08069A80 @ =gUnk_08111CA8 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069A80: .4byte gUnk_08111CA8 - - thumb_func_start sub_08069A84 -sub_08069A84: @ 0x08069A84 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08069AA4 @ =gUnk_08111CB4 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069AA4: .4byte gUnk_08111CB4 - - thumb_func_start sub_08069AA8 -sub_08069AA8: @ 0x08069AA8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08000E50 - ldr r2, _08069AC8 @ =gUnk_08111CB8 - movs r1, #1 - ands r1, r0 - adds r4, #0x69 - movs r0, #0 - ldrsb r0, [r4, r0] - lsls r0, r0, #1 - adds r1, r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4] - pop {r4, pc} - .align 2, 0 -_08069AC8: .4byte gUnk_08111CB8 - - thumb_func_start sub_08069ACC -sub_08069ACC: @ 0x08069ACC - push {lr} - adds r2, r1, #0 - adds r0, #0x68 - ldrb r1, [r0] - subs r1, #1 - strb r1, [r0] - lsls r1, r1, #0x18 - cmp r1, #0 - bgt _08069AE2 - movs r0, #1 - b _08069AE4 -_08069AE2: - movs r0, #0 -_08069AE4: - str r0, [r2, #0x14] - pop {pc} - - thumb_func_start sub_08069AE8 -sub_08069AE8: @ 0x08069AE8 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #7 - ands r2, r0 - adds r2, #0xf - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069B1C -sub_08069B1C: @ 0x08069B1C - push {r4, lr} - adds r4, r0, #0 - ldr r1, _08069B40 @ =gUnk_08111D88 - 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_0806ED78 - adds r0, r4, #0 - bl sub_08069FE8 - pop {r4, pc} - .align 2, 0 -_08069B40: .4byte gUnk_08111D88 - - thumb_func_start sub_08069B44 -sub_08069B44: @ 0x08069B44 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08069EF0 - cmp r0, #0 - beq _08069C30 - adds r0, r5, #0 - bl sub_0805ACC0 - cmp r0, #0 - bne _08069B64 - movs r0, #0x2e - ldrsh r1, [r5, r0] - movs r2, #0x32 - ldrsh r4, [r5, r2] - b _08069B68 -_08069B64: - lsrs r1, r0, #0x10 - adds r4, r0, #0 -_08069B68: - ldrb r0, [r5, #0xe] - movs r3, #0x20 - cmp r0, #0 - beq _08069B72 - adds r3, r0, #0 -_08069B72: - subs r0, r1, r3 - adds r2, r5, #0 - adds r2, #0x6e - strh r0, [r2] - adds r1, r1, r3 - adds r0, r5, #0 - adds r0, #0x6c - strh r1, [r0] - adds r1, r4, #0 - subs r1, #8 - adds r0, #4 - strh r1, [r0] - adds r0, r4, #0 - adds r0, #8 - adds r2, #4 - strh r0, [r2] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - movs r0, #0x1e - strb r0, [r5, #0xe] - movs r4, #2 - strb r4, [r5, #0x14] - adds r1, r5, #0 - adds r1, #0x6a - movs r0, #0xff - strb r0, [r1] - adds r0, r5, #0 - bl sub_0801E99C - adds r1, r5, #0 - adds r1, #0x74 - strb r0, [r1] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - movs r1, #0xa - bl sub_080042AC - ldrb r0, [r5, #0x10] - ands r4, r0 - cmp r4, #0 - beq _08069BD2 - adds r0, r5, #0 - bl sub_0807DD50 -_08069BD2: - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08069BF2 - ldr r0, _08069C34 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08069BF2 - movs r0, #0x36 - bl sub_0807CA84 - cmp r0, #2 - beq _08069BF2 - movs r0, #4 - strb r0, [r5, #0xc] -_08069BF2: - ldrb r0, [r5, #0xa] - cmp r0, #2 - bne _08069C30 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _08069C30 - ldr r0, _08069C38 @ =0x00004072 - movs r6, #0x2e - ldrsh r1, [r5, r6] - ldr r3, _08069C3C @ =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] - adds 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 -_08069C30: - pop {r4, r5, r6, pc} - .align 2, 0 -_08069C34: .4byte gUnk_03003F80 -_08069C38: .4byte 0x00004072 -_08069C3C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08069C40 -sub_08069C40: @ 0x08069C40 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069C80 - ldr r0, _08069C68 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069C6C - adds r0, r4, #0 - bl sub_08069CB8 - b _08069C7A - .align 2, 0 -_08069C68: .4byte gUnk_03003F80 -_08069C6C: - adds r0, r4, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_08069D00 -_08069C7A: - movs r0, #0x1e - strb r0, [r4, #0xe] - b _08069CB2 -_08069C80: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08069CB2 - movs r0, #2 - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - bl sub_08000E50 - ldr r2, _08069CB4 @ =gUnk_08111DA8 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08069F6C -_08069CB2: - pop {r4, pc} - .align 2, 0 -_08069CB4: .4byte gUnk_08111DA8 - - thumb_func_start sub_08069CB8 -sub_08069CB8: @ 0x08069CB8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08069CF8 @ =gLinkEntity - bl sub_080045C4 - ldr r2, _08069CFC @ =gUnk_08111DB0 - ldrb r1, [r4, #0x14] - lsls r1, r1, #5 - adds r0, r0, r1 - adds r0, r0, r2 - ldrb r1, [r0] - lsrs r0, r1, #6 - strb r0, [r4, #0x14] - movs r0, #0x3f - ands r1, r0 - adds r5, r4, #0 - adds r5, #0x6b - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806A028 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - ldrb r1, [r5] - cmp r0, r1 - beq _08069CF6 - ldrb r1, [r5] - adds r0, r4, #0 - bl sub_080042AC -_08069CF6: - pop {r4, r5, pc} - .align 2, 0 -_08069CF8: .4byte gLinkEntity -_08069CFC: .4byte gUnk_08111DB0 - - thumb_func_start sub_08069D00 -sub_08069D00: @ 0x08069D00 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x6b - movs r7, #8 - strb r7, [r5] - bl sub_0806A028 - adds r6, r4, #0 - adds r6, #0x58 - ldrb r0, [r6] - cmp r0, #0x1f - bls _08069D2A - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069D4E - strb r7, [r5] -_08069D2A: - bl sub_08000E50 - ldr r1, _08069D50 @ =0x000001FF - ands r1, r0 - cmp r1, #2 - bhi _08069D3C - adds r0, r4, #0 - bl sub_08069FBC -_08069D3C: - ldrb r2, [r6] - ldrb r1, [r5] - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - cmp r2, r1 - beq _08069D4E - adds r0, r4, #0 - bl sub_080042AC -_08069D4E: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08069D50: .4byte 0x000001FF - - thumb_func_start sub_08069D54 -sub_08069D54: @ 0x08069D54 - push {r4, lr} - adds r4, r0, #0 - bl sub_08069F90 - cmp r0, #0 - bne _08069DD8 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069DD8 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080AEF88 - ldrh r1, [r4, #0x2a] - movs r0, #0x2e - ldrsh r2, [r4, r0] - adds r0, r4, #0 - adds r0, #0x6e - ldrh r0, [r0] - cmp r2, r0 - bge _08069D92 - adds r0, #1 - strh r0, [r4, #0x2e] - movs r1, #0xe0 - lsls r1, r1, #4 - b _08069DA4 -_08069D92: - adds r0, r4, #0 - adds r0, #0x6c - ldrh r0, [r0] - cmp r2, r0 - ble _08069DA4 - subs r0, #1 - strh r0, [r4, #0x2e] - movs r1, #0xe0 - lsls r1, r1, #8 -_08069DA4: - movs r0, #0x32 - ldrsh r2, [r4, r0] - adds r0, r4, #0 - adds r0, #0x70 - ldrh r0, [r0] - cmp r2, r0 - bge _08069DBA - adds r0, #1 - strh r0, [r4, #0x32] - movs r1, #0xe - b _08069DCA -_08069DBA: - adds r0, r4, #0 - adds r0, #0x72 - ldrh r0, [r0] - cmp r2, r0 - ble _08069DCA - subs r0, #1 - strh r0, [r4, #0x32] - movs r1, #0xe0 -_08069DCA: - adds r0, r4, #0 - bl sub_0800417E - adds r0, r4, #0 - bl sub_08069F6C - b _08069DF6 -_08069DD8: - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069DE6 - movs r0, #1 - b _08069DE8 -_08069DE6: - movs r0, #3 -_08069DE8: - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] -_08069DF6: - pop {r4, pc} - - thumb_func_start sub_08069DF8 -sub_08069DF8: @ 0x08069DF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08069F90 - cmp r0, #0 - beq _08069E0E - movs r0, #1 - b _08069E34 -_08069E0E: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _08069E22 - adds r0, r4, #0 - bl sub_08069D00 - b _08069E42 -_08069E22: - bl sub_08000E50 - movs r1, #0xff - ands r1, r0 - cmp r1, #0x2f - bhi _08069E32 - movs r0, #2 - b _08069E34 -_08069E32: - movs r0, #3 -_08069E34: - strb r0, [r4, #0xc] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] -_08069E42: - pop {r4, pc} - - thumb_func_start sub_08069E44 -sub_08069E44: @ 0x08069E44 - push {lr} - movs r1, #0 - bl sub_0807DD94 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08069E50 -sub_08069E50: @ 0x08069E50 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - bl sub_0806EDC4 - strb r0, [r4, #0x14] - adds r5, r4, #0 - adds r5, #0x6b - movs r7, #8 - strb r7, [r5] - adds r0, r4, #0 - bl sub_0806A028 - adds r0, r4, #0 - bl sub_080042B8 - adds r6, r4, #0 - adds r6, #0x58 - ldrb r0, [r6] - cmp r0, #0x1f - bls _08069E88 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08069EC8 - strb r7, [r5] -_08069E88: - adds r0, r4, #0 - bl sub_08069FBC - ldrb r2, [r6] - ldrb r1, [r5] - ldrb r0, [r4, #0x14] - adds r1, r1, r0 - cmp r2, r1 - beq _08069EA0 - adds r0, r4, #0 - bl sub_080042AC -_08069EA0: - movs r0, #0x36 - bl sub_0807CA84 - cmp r0, #2 - bne _08069EC8 - movs r0, #7 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x29 - bl sub_080042AC - adds r0, r4, #0 - bl sub_080788E0 - movs r0, #0xd1 - bl sub_08004488 - movs r0, #0xcd - bl sub_08004488 -_08069EC8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08069ECC -sub_08069ECC: @ 0x08069ECC - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _08069EDC - movs r0, #1 - strb r0, [r4, #0xc] -_08069EDC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069EE0 -sub_08069EE0: @ 0x08069EE0 - push {lr} - bl sub_080042B8 - pop {pc} - - thumb_func_start sub_08069EE8 -sub_08069EE8: @ 0x08069EE8 - movs r1, #5 - strb r1, [r0, #0xc] - bx lr - .align 2, 0 - - thumb_func_start sub_08069EF0 -sub_08069EF0: @ 0x08069EF0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _08069F20 @ =gUnk_08111D58 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _08069F28 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r1, _08069F24 @ =gUnk_08111E30 - ldrb r0, [r4, #0xa] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strh r1, [r0] - movs r0, #1 - b _08069F2A - .align 2, 0 -_08069F20: .4byte gUnk_08111D58 -_08069F24: .4byte gUnk_08111E30 -_08069F28: - movs r0, #0 -_08069F2A: - pop {r4, pc} - - thumb_func_start sub_08069F2C -sub_08069F2C: @ 0x08069F2C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - cmp r2, #0 - beq _08069F46 - adds r0, r4, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r2, r2, r0 -_08069F46: - subs r2, #1 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_08069F6C -sub_08069F6C: @ 0x08069F6C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x15] - bl sub_0806F5A4 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - adds r1, r0, #4 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _08069F8C - adds r0, r4, #0 - bl sub_080042AC -_08069F8C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08069F90 -sub_08069F90: @ 0x08069F90 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #2 - bne _08069FA8 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _08069FA8 - movs r0, #1 - b _08069FB4 -_08069FA8: - ldr r1, _08069FB8 @ =gLinkEntity - adds r0, r4, #0 - movs r2, #0x14 - movs r3, #0x14 - bl sub_080041A0 -_08069FB4: - pop {r4, pc} - .align 2, 0 -_08069FB8: .4byte gLinkEntity - - thumb_func_start sub_08069FBC -sub_08069FBC: @ 0x08069FBC - push {lr} - adds r2, r0, #0 - ldr r0, _08069FE4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - movs r1, #0x20 - cmp r0, #0 - beq _08069FD0 - movs r1, #0x24 -_08069FD0: - ldrb r0, [r2, #0x14] - cmp r0, #1 - beq _08069FDA - cmp r0, #3 - bne _08069FE0 -_08069FDA: - adds r0, r2, #0 - adds r0, #0x6b - strb r1, [r0] -_08069FE0: - pop {pc} - .align 2, 0 -_08069FE4: .4byte gUnk_03003F80 - - thumb_func_start sub_08069FE8 -sub_08069FE8: @ 0x08069FE8 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806A010 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - rsbs r0, r0, #0 - lsrs r5, r0, #0x1f - adds r0, r4, #0 - adds r0, #0x6a - ldrb r0, [r0] - cmp r5, r0 - beq _0806A020 - cmp r5, #0 - bne _0806A014 - adds r0, r4, #0 - bl sub_08078778 - b _0806A020 - .align 2, 0 -_0806A010: .4byte gUnk_03003F80 -_0806A014: - adds r0, r4, #0 - adds r0, #0x74 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080787A8 -_0806A020: - adds r0, r4, #0 - adds r0, #0x6a - strb r5, [r0] - pop {r4, r5, pc} - - thumb_func_start sub_0806A028 -sub_0806A028: @ 0x0806A028 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806A07E - ldr r0, _0806A054 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A060 - cmp r2, #2 - bne _0806A058 - movs r0, #6 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806A076 - .align 2, 0 -_0806A054: .4byte gUnk_03003F80 -_0806A058: - adds r0, r4, #0 - bl sub_0806A080 - b _0806A076 -_0806A060: - adds r0, r4, #0 - bl sub_08069FBC - adds r0, r4, #0 - bl sub_0806A080 - movs r0, #0xd1 - bl sub_080A3268 - bl sub_080791D0 -_0806A076: - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806A07E: - pop {r4, pc} - - thumb_func_start sub_0806A080 -sub_0806A080: @ 0x0806A080 - push {lr} - ldrb r2, [r0, #0xb] - lsls r1, r2, #2 - adds r1, r1, r2 - lsls r1, r1, #4 - ldr r2, _0806A09C @ =gUnk_02002A40 - ldrb r2, [r2, #8] - lsls r2, r2, #3 - ldr r3, _0806A0A0 @ =gUnk_08111E34 - adds r2, r2, r3 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806A09C: .4byte gUnk_02002A40 -_0806A0A0: .4byte gUnk_08111E34 - - thumb_func_start sub_0806A0A4 -sub_0806A0A4: @ 0x0806A0A4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r0, _0806A0F8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A100 - movs r5, #4 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #3 - movs r0, #0xcf - bl sub_0807CCB4 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _0806A0FC @ =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] - adds 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 _0806A120 - .align 2, 0 -_0806A0F8: .4byte gUnk_03003F80 -_0806A0FC: .4byte gUnk_03000BF0 -_0806A100: - movs r5, #2 - movs r0, #0xcf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #1 - movs r0, #0xdb - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A120 - movs r5, #0 - movs r0, #0xdb - bl sub_0807CCB4 -_0806A120: - ldr r2, _0806A13C @ =gUnk_08111F74 - ldr r0, _0806A140 @ =gUnk_02002A40 - ldrb r1, [r0, #8] - lsls r0, r1, #2 - adds r0, r0, r1 - adds r0, r0, r5 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806A13C: .4byte gUnk_08111F74 -_0806A140: .4byte gUnk_02002A40 - - thumb_func_start sub_0806A144 -sub_0806A144: @ 0x0806A144 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #4 - ldr r0, _0806A18C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A17A - movs r4, #3 - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0806A17A - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806A17A - movs r0, #0x85 - bl sub_0807CBD0 - movs r4, #2 - cmp r0, #0 - bne _0806A17A - movs r4, #1 -_0806A17A: - ldr r0, _0806A190 @ =gUnk_08111FD8 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806A18C: .4byte gUnk_03003F80 -_0806A190: .4byte gUnk_08111FD8 - - thumb_func_start sub_0806A194 -sub_0806A194: @ 0x0806A194 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A1CE - adds r0, r4, #0 - bl sub_08069EF0 - cmp r0, #0 - beq _0806A1D4 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0x23 - bl sub_08004260 - b _0806A1D4 -_0806A1CE: - adds r0, r4, #0 - bl sub_08004274 -_0806A1D4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A1D8 -sub_0806A1D8: @ 0x0806A1D8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806A1F4 @ =gUnk_081121D4 - 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_0806ED78 - pop {r4, pc} - .align 2, 0 -_0806A1F4: .4byte gUnk_081121D4 - - thumb_func_start sub_0806A1F8 -sub_0806A1F8: @ 0x0806A1F8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - ldr r1, _0806A22C @ =gUnk_081121C4 - cmp r0, #0 - bne _0806A206 - ldr r1, _0806A230 @ =gUnk_081121B4 -_0806A206: - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806A22A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0806A22A: - pop {r4, pc} - .align 2, 0 -_0806A22C: .4byte gUnk_081121C4 -_0806A230: .4byte gUnk_081121B4 - - thumb_func_start sub_0806A234 -sub_0806A234: @ 0x0806A234 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - adds r0, r4, #0 - adds r0, #0x82 - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806A266 - ldr r0, _0806A268 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0806A25E - adds r0, r4, #0 - bl sub_0806A26C -_0806A25E: - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA -_0806A266: - pop {r4, pc} - .align 2, 0 -_0806A268: .4byte gUnk_030010A0 - - thumb_func_start sub_0806A26C -sub_0806A26C: @ 0x0806A26C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xf - movs r1, #0x2f - movs r2, #0 - bl sub_080A2960 - adds r4, r0, #0 - cmp r4, #0 - beq _0806A2AE - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA30 - bl sub_08000E50 - adds r5, r0, #0 - ldr r2, _0806A2B0 @ =gUnk_081121DC - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r3, r4, #0 - adds r3, #0x62 - strb r0, [r3] - lsrs r0, r5, #8 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #8 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] -_0806A2AE: - pop {r4, r5, pc} - .align 2, 0 -_0806A2B0: .4byte gUnk_081121DC - - thumb_func_start sub_0806A2B4 -sub_0806A2B4: @ 0x0806A2B4 - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r5, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r1, #1 - mov sb, r1 - mov r2, sb - ands r2, r0 - mov sb, r2 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - lsrs r0, r1, #4 - mov r8, r0 - movs r0, #7 - mov r2, r8 - ands r2, r0 - mov r8, r2 - movs r6, #7 - ands r6, r1 - ldrb r4, [r5, #0x14] - lsrs r4, r4, #1 - ldr r1, _0806A350 @ =gUnk_081121E4 - ldrb r0, [r5, #0x1e] - lsls r0, r0, #2 - adds r0, r4, r0 - adds r0, r0, r1 - ldrb r2, [r0] - adds r2, #0x10 - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF60 - ldr r0, _0806A354 @ =gUnk_08112204 - adds r4, r4, r0 - ldrb r2, [r4] - adds r0, r5, #0 - movs r1, #0 - bl sub_0806FF48 - adds r0, r5, #0 - movs r1, #1 - mov r2, r8 - bl sub_0806FF60 - adds r6, #0x1c - adds r0, r5, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_0806FF60 - movs r0, #0x1a - add sb, r0 - adds r0, r5, #0 - movs r1, #3 - mov r2, sb - bl sub_0806FF60 - adds r0, r5, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r5, #0 - movs r1, #1 - movs r2, #3 - bl sub_0806FFD8 - adds r0, r5, #0 - bl sub_0807000C - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806A350: .4byte gUnk_081121E4 -_0806A354: .4byte gUnk_08112204 - - thumb_func_start sub_0806A358 -sub_0806A358: @ 0x0806A358 - push {lr} - ldr r2, _0806A36C @ =gUnk_08112260 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806A36C: .4byte gUnk_08112260 - - thumb_func_start sub_0806A370 -sub_0806A370: @ 0x0806A370 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806A3D0 @ =gUnk_08112278 - 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 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806ED78 - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xf - bne _0806A3CC - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _0806A3BC - movs r0, #0 - strb r0, [r4] - movs r0, #0x86 - lsls r0, r0, #2 - bl sub_080A3268 -_0806A3BC: - ldrb r0, [r4] - cmp r0, #2 - bne _0806A3CC - movs r0, #0 - strb r0, [r4] - ldr r0, _0806A3D4 @ =0x00000219 - bl sub_080A3268 -_0806A3CC: - pop {r4, pc} - .align 2, 0 -_0806A3D0: .4byte gUnk_08112278 -_0806A3D4: .4byte 0x00000219 - - thumb_func_start sub_0806A3D8 -sub_0806A3D8: @ 0x0806A3D8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xb4 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0806A8C8 - ldr r1, _0806A40C @ =gUnk_08012F0C - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - pop {r4, pc} - .align 2, 0 -_0806A40C: .4byte gUnk_08012F0C - - thumb_func_start sub_0806A410 -sub_0806A410: @ 0x0806A410 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #0 - beq _0806A420 - cmp r0, #1 - beq _0806A43C - b _0806A456 -_0806A420: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A456 - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - adds r0, r2, #0 - movs r1, #8 - bl sub_08004260 - b _0806A456 -_0806A43C: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A456 - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_0806A9B0 -_0806A456: - pop {pc} - - thumb_func_start sub_0806A458 -sub_0806A458: @ 0x0806A458 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xd] - cmp r0, #1 - beq _0806A486 - cmp r0, #1 - bgt _0806A46C - cmp r0, #0 - beq _0806A472 - b _0806A4CA -_0806A46C: - cmp r0, #2 - beq _0806A4A8 - b _0806A4CA -_0806A472: - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A4CA - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - b _0806A4CA -_0806A486: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A4CA - movs r0, #2 - strb r0, [r2, #0xd] - adds r0, r2, #0 - movs r1, #0xa - bl sub_08004260 - movs r0, #0x62 - bl sub_0807CD34 - b _0806A4CA -_0806A4A8: - adds r0, r2, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A4CA - movs r0, #0 - movs r1, #1 - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - movs r0, #0x3c - strb r0, [r2, #0xe] - adds r0, r2, #0 - movs r1, #2 - bl sub_08004260 -_0806A4CA: - pop {pc} - - thumb_func_start sub_0806A4CC -sub_0806A4CC: @ 0x0806A4CC - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xd] - cmp r2, #0 - beq _0806A4E0 - cmp r2, #1 - beq _0806A52C - movs r0, #0xb4 - strb r0, [r4, #0xe] - b _0806A54C -_0806A4E0: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A54C - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0806A512 - movs r0, #1 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _0806A54C -_0806A512: - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x6a - strh r2, [r0] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - b _0806A54C -_0806A52C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A54C - movs r0, #2 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 -_0806A54C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A550 -sub_0806A550: @ 0x0806A550 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806A568 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xc - bl sub_08004260 - b _0806A5B0 -_0806A568: - adds r5, r4, #0 - adds r5, #0x5a - ldrb r0, [r5] - cmp r0, #1 - bne _0806A590 - movs r0, #0 - strb r0, [r5] - movs r0, #8 - movs r1, #2 - bl sub_08080964 - ldr r2, _0806A5B4 @ =gUnk_02033280 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #1 - orrs r0, r1 - str r0, [r2] - ldr r0, _0806A5B8 @ =0x0000011B - bl sub_080A3268 -_0806A590: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806A5B0 - movs r1, #0 - movs r0, #5 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - adds r0, r4, #0 - movs r1, #0xd - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806A914 -_0806A5B0: - pop {r4, r5, pc} - .align 2, 0 -_0806A5B4: .4byte gUnk_02033280 -_0806A5B8: .4byte 0x0000011B - - thumb_func_start nullsub_503 -nullsub_503: @ 0x0806A5BC - bx lr - .align 2, 0 - - thumb_func_start sub_0806A5C0 -sub_0806A5C0: @ 0x0806A5C0 - 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 _0806A5E6 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 -_0806A5E6: - pop {r4, pc} - - thumb_func_start sub_0806A5E8 -sub_0806A5E8: @ 0x0806A5E8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A60A - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x10 - bl sub_08004260 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x3c - strb r0, [r4, #0xe] -_0806A60A: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806A628 - bl sub_08000E50 - movs r1, #0x3f - ands r0, r1 - adds r0, #0x78 - strb r0, [r4, #0xe] - movs r0, #0xcc - bl sub_080A3268 -_0806A628: - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - - thumb_func_start sub_0806A630 -sub_0806A630: @ 0x0806A630 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A646 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08004260 -_0806A646: - ldr r0, _0806A670 @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A65A - adds r0, r4, #0 - bl sub_08004274 -_0806A65A: - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0806A66E - movs r0, #0 - strb r0, [r1] - movs r0, #0x72 - bl sub_080A3268 -_0806A66E: - pop {r4, pc} - .align 2, 0 -_0806A670: .4byte gUnk_02033280 - - thumb_func_start sub_0806A674 -sub_0806A674: @ 0x0806A674 - push {r4, lr} - sub sp, #8 - adds r4, r0, #0 - ldr r1, _0806A694 @ =gUnk_08112294 - mov r0, sp - movs r2, #8 - bl memcpy - ldrb r3, [r4, #0xc] - cmp r3, #1 - beq _0806A6BE - cmp r3, #1 - bgt _0806A698 - cmp r3, #0 - beq _0806A6A0 - b _0806A82A - .align 2, 0 -_0806A694: .4byte gUnk_08112294 -_0806A698: - cmp r3, #2 - bne _0806A69E - b _0806A824 -_0806A69E: - b _0806A82A -_0806A6A0: - 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, #0x13 - bl sub_08004260 - b _0806A82A -_0806A6BE: - ldr r0, _0806A6E0 @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _0806A6E4 - movs r0, #0 - movs r1, #2 - strb r1, [r4, #0xc] - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] - subs r1, #1 - strb r0, [r1] - b _0806A82A - .align 2, 0 -_0806A6E0: .4byte gUnk_02033280 -_0806A6E4: - ldr r0, [r4, #0x50] - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #9 - bne _0806A7C8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #3 - orrs r1, r0 - strb r1, [r2] - ldrb r2, [r4, #0xe] - cmp r2, #0 - bne _0806A724 - bl sub_08000E50 - adds r2, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xe] - lsrs r0, r2, #8 - movs r1, #7 - ands r0, r1 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - b _0806A75A -_0806A724: - ldr r0, _0806A780 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806A75A - subs r0, r2, #1 - strb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x62 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r4, #0 - adds r1, #0x68 - cmp r0, #0 - bgt _0806A746 - strb r3, [r1] -_0806A746: - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0xf - ble _0806A752 - movs r0, #0xff - strb r0, [r1] -_0806A752: - ldrb r0, [r1] - ldrb r1, [r2] - adds r0, r0, r1 - strb r0, [r2] -_0806A75A: - ldrb r2, [r4, #0xf] - cmp r2, #0 - bne _0806A784 - bl sub_08000E50 - adds r2, r0, #0 - movs r1, #7 - ands r0, r1 - strb r0, [r4, #0xf] - lsrs r0, r2, #8 - movs r1, #7 - ands r0, r1 - add r0, sp - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - b _0806A82A - .align 2, 0 -_0806A780: .4byte gUnk_030010A0 -_0806A784: - ldr r0, _0806A7C4 @ =gUnk_030010A0 - ldr r0, [r0] - lsrs r0, r0, #4 - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806A82A - subs r0, r2, #1 - strb r0, [r4, #0xf] - adds r3, r4, #0 - adds r3, #0x63 - movs r0, #0 - ldrsb r0, [r3, r0] - adds r2, r4, #0 - adds r2, #0x69 - cmp r0, #0 - blt _0806A7AA - movs r0, #0xff - strb r0, [r2] -_0806A7AA: - movs r1, #0 - ldrsb r1, [r3, r1] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - bgt _0806A7BA - movs r0, #1 - strb r0, [r2] -_0806A7BA: - ldrb r0, [r2] - ldrb r1, [r3] - adds r0, r0, r1 - strb r0, [r3] - b _0806A82A - .align 2, 0 -_0806A7C4: .4byte gUnk_030010A0 -_0806A7C8: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2] - adds r1, r4, #0 - adds r1, #0x62 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806A7FE - cmp r2, #0 - ble _0806A7F0 - subs r0, #1 - strb r0, [r1] -_0806A7F0: - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806A7FE - adds r0, r2, #1 - strb r0, [r1] -_0806A7FE: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r0, [r1] - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806A82A - cmp r2, #0 - ble _0806A814 - subs r0, #1 - strb r0, [r1] -_0806A814: - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806A82A - adds r0, r2, #1 - strb r0, [r1] - b _0806A82A -_0806A824: - adds r0, r4, #0 - bl sub_08004274 -_0806A82A: - add sp, #8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806A830 -sub_0806A830: @ 0x0806A830 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A84E - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x14 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806A84E: - ldr r0, _0806A88C @ =gUnk_02033280 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #2 - ands r0, r1 - cmp r0, #0 - beq _0806A860 - bl sub_0805E780 -_0806A860: - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - cmp r0, #1 - bne _0806A88A - movs r0, #0 - strb r0, [r1] - movs r0, #0x37 - movs r1, #5 - movs r2, #0 - bl sub_0806ED50 - adds r1, r0, #0 - cmp r1, #0 - beq _0806A88A - adds r0, r4, #0 - bl sub_0806FA30 -_0806A88A: - pop {r4, pc} - .align 2, 0 -_0806A88C: .4byte gUnk_02033280 - - thumb_func_start sub_0806A890 -sub_0806A890: @ 0x0806A890 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806A8AE - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0x15 - bl sub_08004260 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806A8AE: - 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 _0806A8C6 - bl sub_0805E780 -_0806A8C6: - pop {r4, pc} - - thumb_func_start sub_0806A8C8 -sub_0806A8C8: @ 0x0806A8C8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x60 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806A8F0 - movs r0, #0x37 - movs r1, #2 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806A8F0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r5, [r4, #0x50] -_0806A8F0: - movs r0, #0x37 - movs r1, #3 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806A910 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldrh r0, [r4, #0x32] - adds r0, #2 - strh r0, [r4, #0x32] - str r5, [r4, #0x50] -_0806A910: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806A914 -sub_0806A914: @ 0x0806A914 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x37 - movs r1, #1 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806A938 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806A938: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806A93C -sub_0806A93C: @ 0x0806A93C - push {r4, lr} - adds r4, r0, #0 - bl sub_08078778 - ldr r3, _0806A954 @ =gUnk_0811229C - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_0806A954: .4byte gUnk_0811229C - - thumb_func_start sub_0806A958 -sub_0806A958: @ 0x0806A958 - push {lr} - ldrb r0, [r0, #0xc] - cmp r0, #5 - beq _0806A966 - ldr r1, _0806A968 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806A966: - pop {pc} - .align 2, 0 -_0806A968: .4byte gUnk_02033280 - - thumb_func_start sub_0806A96C -sub_0806A96C: @ 0x0806A96C - push {r4, lr} - adds r2, r0, #0 - movs r3, #0 - str r3, [r1, #0x14] - movs r0, #0x39 - adds r0, r0, r2 - mov ip, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0806A9A8 - ldrb r0, [r2, #0xc] - cmp r0, #3 - beq _0806A992 - movs r0, #3 - strb r0, [r2, #0xc] - strb r3, [r2, #0xd] - b _0806A9A8 -_0806A992: - ldrb r0, [r2, #0xd] - cmp r0, #1 - bls _0806A9A8 - mov r4, ip - strb r3, [r4] - movs r0, #1 - str r0, [r1, #0x14] - ldr r2, _0806A9AC @ =gUnk_02033280 - ldrb r1, [r2, #7] - orrs r0, r1 - strb r0, [r2, #7] -_0806A9A8: - pop {r4, pc} - .align 2, 0 -_0806A9AC: .4byte gUnk_02033280 - - thumb_func_start sub_0806A9B0 -sub_0806A9B0: @ 0x0806A9B0 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - bl sub_08000E50 - ldr r2, _0806A9E4 @ =gUnk_081122A0 - movs r1, #7 - ands r1, r0 - adds r1, r1, r2 - ldrb r0, [r1] - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x80 - movs r0, #9 - strh r0, [r1] - adds r0, r4, #0 - movs r1, #9 - bl sub_08004260 - movs r0, #0x62 - bl sub_0807CCB4 - pop {r4, pc} - .align 2, 0 -_0806A9E4: .4byte gUnk_081122A0 - - thumb_func_start sub_0806A9E8 -sub_0806A9E8: @ 0x0806A9E8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x37 - movs r1, #4 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806AA0C - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806AA0C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806AA10 -sub_0806AA10: @ 0x0806AA10 - push {lr} - bl sub_0806A914 - pop {pc} - - thumb_func_start sub_0806AA18 -sub_0806AA18: @ 0x0806AA18 - push {lr} - adds r2, r0, #0 - adds r0, #0x6a - ldrh r0, [r0] - cmp r0, #0 - beq _0806AA2C - ldr r1, _0806AA28 @ =0x00004408 - b _0806AA3C - .align 2, 0 -_0806AA28: .4byte 0x00004408 -_0806AA2C: - ldr r0, _0806AA48 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - ldr r1, _0806AA4C @ =0x0000440D - cmp r0, #0 - bne _0806AA3C - subs r1, #6 -_0806AA3C: - adds r0, r1, #0 - adds r1, r2, #0 - bl sub_08056398 - pop {pc} - .align 2, 0 -_0806AA48: .4byte gUnk_030010A0 -_0806AA4C: .4byte 0x0000440D - - thumb_func_start sub_0806AA50 -sub_0806AA50: @ 0x0806AA50 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #1 - beq _0806AB38 - cmp r0, #1 - bgt _0806AA6A - cmp r0, #0 - beq _0806AA70 - b _0806AB64 -_0806AA6A: - cmp r0, #2 - beq _0806AB5C - b _0806AB64 -_0806AA70: - str r0, [r5, #0x14] - movs r0, #0x8f - bl sub_0807CBD0 - cmp r0, #0 - bne _0806AA84 - ldr r2, _0806AA80 @ =gUnk_081122A8 - b _0806AA9A - .align 2, 0 -_0806AA80: .4byte gUnk_081122A8 -_0806AA84: - movs r0, #0x15 - bl sub_0807CA84 - cmp r0, #0 - bne _0806AA98 - ldr r2, _0806AA94 @ =gUnk_081122B0 - b _0806AA9A - .align 2, 0 -_0806AA94: .4byte gUnk_081122B0 -_0806AA98: - ldr r2, _0806AAD0 @ =gUnk_081122B8 -_0806AA9A: - ldr r1, _0806AAD4 @ =gUnk_02034350 - ldr r0, [r1, #0x68] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r7, [r0] - mov r8, r1 - mov r4, r8 - ldr r0, [r4, #0x68] - adds r0, #1 - str r0, [r4, #0x68] - cmp r0, #2 - bls _0806AAB6 - movs r0, #0 - str r0, [r4, #0x68] -_0806AAB6: - adds r0, r7, #0 - adds r1, r6, #0 - bl sub_08056398 - ldr r0, [r5, #4] - cmp r0, #1 - beq _0806AAEE - cmp r0, #1 - blo _0806AAD8 - cmp r0, #2 - beq _0806AB02 - b _0806AB1C - .align 2, 0 -_0806AAD0: .4byte gUnk_081122B8 -_0806AAD4: .4byte gUnk_02034350 -_0806AAD8: - adds r0, r4, #0 - adds r0, #0xac - str r6, [r0] - adds r0, r6, #0 - movs r1, #7 - bl sub_0805EA78 - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r6, #0x20] - b _0806AB1C -_0806AAEE: - adds r0, r4, #0 - adds r0, #0xac - ldr r0, [r0] - movs r1, #7 - bl sub_0805EB64 - adds r1, r0, #0 - adds r0, r4, #0 - adds r0, #0xb0 - b _0806AB14 -_0806AB02: - mov r0, r8 - adds r0, #0xb0 - ldr r0, [r0] - movs r1, #7 - bl sub_0805EB64 - adds r1, r0, #0 - mov r0, r8 - adds r0, #0xb4 -_0806AB14: - str r1, [r0] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] -_0806AB1C: - ldr r0, _0806AB34 @ =0x0000441E - cmp r7, r0 - bne _0806AB2C - movs r0, #0x8f - bl sub_0807CCB4 - movs r0, #1 - str r0, [r5, #0x14] -_0806AB2C: - movs r0, #1 - strb r0, [r5, #0x18] - b _0806AB64 - .align 2, 0 -_0806AB34: .4byte 0x0000441E -_0806AB38: - ldr r0, _0806AB58 @ =gUnk_02034350 - ldr r1, [r5, #4] - lsls r1, r1, #2 - adds r0, #0xac - adds r1, r1, r0 - ldr r1, [r1] - movs r2, #0x36 - ldrsh r0, [r1, r2] - cmp r0, #0 - blt _0806AB64 - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r1, #0x20] - movs r0, #2 - strb r0, [r5, #0x18] - b _0806AB64 - .align 2, 0 -_0806AB58: .4byte gUnk_02034350 -_0806AB5C: - movs r1, #0x36 - ldrsh r0, [r6, r1] - cmp r0, #0 - bge _0806AB6A -_0806AB64: - ldr r1, _0806AB70 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806AB6A: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806AB70: .4byte gUnk_02033280 - - thumb_func_start sub_0806AB74 -sub_0806AB74: @ 0x0806AB74 - push {lr} - adds r2, r0, #0 - ldr r1, _0806AB94 @ =gUnk_02034350 - movs r0, #1 - strb r0, [r1, #3] - movs r1, #0x32 - ldrsh r0, [r2, r1] - ldr r1, _0806AB98 @ =gUnk_03000BF0 - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r0, #0xa7 - bgt _0806AB92 - adds r0, r1, #0 - adds r0, #0xa8 - strh r0, [r2, #0x32] -_0806AB92: - pop {pc} - .align 2, 0 -_0806AB94: .4byte gUnk_02034350 -_0806AB98: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806AB9C -sub_0806AB9C: @ 0x0806AB9C - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x37 - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - cmp r0, #0 - beq _0806ABBC - bl sub_0805E7BC -_0806ABBC: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807F950 - add sp, #4 - pop {r4, r5, pc} - - thumb_func_start sub_0806ABC8 -sub_0806ABC8: @ 0x0806ABC8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806ABF4 - ldr r0, _0806ABF0 @ =gUnk_081126E8 - 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_0806ED78 - b _0806ABFA - .align 2, 0 -_0806ABF0: .4byte gUnk_081126E8 -_0806ABF4: - adds r0, r4, #0 - bl sub_0806ACC4 -_0806ABFA: - pop {r4, pc} - - thumb_func_start sub_0806ABFC -sub_0806ABFC: @ 0x0806ABFC - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806AC38 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806AC36 - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - adds r2, r4, #0 - adds r2, #0x6a - strb r0, [r2] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - subs r2, #1 - strb r0, [r2] - strb r1, [r4, #0xe] -_0806AC36: - pop {r4, pc} - .align 2, 0 -_0806AC38: .4byte gUnk_08112674 - - thumb_func_start sub_0806AC3C -sub_0806AC3C: @ 0x0806AC3C - push {r4, r5, lr} - adds r5, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #3 - bhi _0806ACBA - ldr r4, _0806AC6C @ =gLinkEntity - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0x18 - movs r3, #0x18 - bl sub_080041A0 - cmp r0, #0 - beq _0806AC70 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_080045C4 - adds r2, r0, #0 - movs r0, #0x1e - ands r2, r0 - b _0806AC74 - .align 2, 0 -_0806AC6C: .4byte gLinkEntity -_0806AC70: - ldrb r0, [r5, #0x14] - lsls r2, r0, #2 -_0806AC74: - adds r0, r5, #0 - adds r0, #0x69 - ldrb r3, [r0] - adds r4, r0, #0 - cmp r2, r3 - beq _0806AC9A - subs r0, r2, r3 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xf - bgt _0806AC8E - subs r0, r3, #1 - b _0806AC90 -_0806AC8E: - adds r0, r3, #1 -_0806AC90: - strb r0, [r4] - ldrb r1, [r4] - movs r0, #0x1f - ands r0, r1 - strb r0, [r4] -_0806AC9A: - ldrb r1, [r4] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0806ACBA - ldrb r0, [r4] - bl sub_0806F5B0 - strb r0, [r5, #0x14] - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - movs r0, #2 - eors r1, r0 - adds r0, r5, #0 - bl sub_08004260 -_0806ACBA: - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806ACC4 -sub_0806ACC4: @ 0x0806ACC4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806AD28 - cmp r5, #1 - bgt _0806ACD8 - cmp r5, #0 - beq _0806ACE4 - b _0806ADEA -_0806ACD8: - cmp r5, #2 - beq _0806ADB8 - cmp r5, #3 - bne _0806ACE2 - b _0806ADDC -_0806ACE2: - b _0806ADEA -_0806ACE4: - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806AD24 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - bne _0806ACF8 - b _0806ADFA -_0806ACF8: - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x6a - strb r0, [r1] - lsls r0, r0, #1 - strb r0, [r4, #0x14] - strb r5, [r4, #0xe] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807DD50 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #8 - b _0806ADCE - .align 2, 0 -_0806AD24: .4byte gUnk_08112674 -_0806AD28: - adds r5, r4, #0 - adds r5, #0x39 - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #2 - bne _0806AD44 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r5] - adds r0, r4, #0 - bl sub_0806F118 - b _0806ADEA -_0806AD44: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0806AEA8 - ldrb r0, [r4, #0xb] - cmp r0, #0xa - bne _0806AD8A - movs r0, #0 - ldrsb r0, [r5, r0] - cmp r0, #0 - beq _0806AD8A - movs r1, #0 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r5] - ldr r1, _0806ADAC @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #8 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r0, r4, #0 - bl sub_0806AFE8 -_0806AD8A: - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _0806ADEA - ldr r0, _0806ADAC @ =gLinkEntity - ldrb r3, [r0, #0x14] - lsrs r3, r3, #1 - ldr r0, _0806ADB0 @ =gUnk_081126E4 - adds r0, r3, r0 - ldrb r2, [r0] - lsls r3, r3, #2 - ldr r0, _0806ADB4 @ =gUnk_081126D4 - adds r3, r3, r0 - adds r0, r4, #0 - movs r1, #1 - bl sub_08078850 - b _0806ADEA - .align 2, 0 -_0806ADAC: .4byte gLinkEntity -_0806ADB0: .4byte gUnk_081126E4 -_0806ADB4: .4byte gUnk_081126D4 -_0806ADB8: - ldr r0, _0806ADD8 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806ADEA - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #4 -_0806ADCE: - adds r0, r4, #0 - bl sub_08004260 - b _0806ADEA - .align 2, 0 -_0806ADD8: .4byte gUnk_02000050 -_0806ADDC: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806ADEA - movs r0, #1 - strb r0, [r4, #0xc] -_0806ADEA: - adds r0, r4, #0 - adds r0, #0x59 - ldrb r0, [r0] - cmp r0, #0xff - beq _0806ADFA - adds r0, r4, #0 - bl sub_08004274 -_0806ADFA: - pop {r4, r5, pc} - - thumb_func_start sub_0806ADFC -sub_0806ADFC: @ 0x0806ADFC - push {lr} - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - bl sub_08078784 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806AE0C -sub_0806AE0C: @ 0x0806AE0C - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806AE62 - adds r0, r4, #0 - adds r0, #0x69 - ldrb r0, [r0] - lsrs r2, r0, #1 - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806AE3C - adds r2, #0x1c - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - b _0806AE46 -_0806AE3C: - adds r0, r4, #0 - movs r1, #0 - movs r2, #0xff - bl sub_0806FF60 -_0806AE46: - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806AEA4 -_0806AE62: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r2, [r0] - cmp r2, #0xff - beq _0806AE72 - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 -_0806AE72: - adds r0, r4, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806AE82 - movs r2, #0xff -_0806AE82: - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_0806AEA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806AEA8 -sub_0806AEA8: @ 0x0806AEA8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x82 - ldrh r5, [r6] - ldr r0, _0806AED4 @ =0x0000FFDF - ands r0, r5 - strh r0, [r6] - movs r0, #0x20 - ands r0, r5 - cmp r0, #0 - beq _0806AECA - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 -_0806AECA: - adds r0, r4, #0 - bl sub_0807DDE4 - strh r5, [r6] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806AED4: .4byte 0x0000FFDF - - thumb_func_start sub_0806AED8 -sub_0806AED8: @ 0x0806AED8 - push {lr} - movs r1, #0 - strb r1, [r0, #0xe] - bl sub_0806AEE4 - pop {pc} - - thumb_func_start sub_0806AEE4 -sub_0806AEE4: @ 0x0806AEE4 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - adds r7, r0, #0 - cmp r7, #0 - beq _0806AEF6 - subs r0, #1 - strb r0, [r4, #0xe] - b _0806AF5A -_0806AEF6: - movs r0, #2 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #0x20 - movs r2, #0x20 - bl sub_0806EDD8 - adds r3, r0, #0 - cmp r3, #0 - bge _0806AF16 - adds r0, r4, #0 - adds r0, #0x6a - ldrb r1, [r0] - lsls r0, r1, #1 - strb r0, [r4, #0x14] - lsls r3, r1, #3 -_0806AF16: - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #5 - asrs r1, r3, #1 - lsls r1, r1, #1 - ldr r2, _0806AF5C @ =gUnk_081125F4 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r6, [r0] - ldrb r5, [r0, #1] - movs r0, #0x80 - ands r0, r5 - cmp r0, #0 - beq _0806AF3A - adds r0, r3, #0 - bl sub_0806F5B0 - strb r0, [r4, #0x14] -_0806AF3A: - movs r0, #0x7f - ands r5, r0 - adds r0, r4, #0 - adds r0, #0x5a - strb r6, [r0] - strb r5, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x5b - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x58 - strb r7, [r0] - subs r1, #2 - movs r0, #0xff - strb r0, [r1] -_0806AF5A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806AF5C: .4byte gUnk_081125F4 - - thumb_func_start sub_0806AF60 -sub_0806AF60: @ 0x0806AF60 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0806AF70 -sub_0806AF70: @ 0x0806AF70 - movs r1, #0x90 - lsls r1, r1, #0xa - str r1, [r0, #0x20] - bx lr - - thumb_func_start sub_0806AF78 -sub_0806AF78: @ 0x0806AF78 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0xc0 - lsls r1, r1, #5 - bl sub_08003FC4 - ldr r0, [r4, #0x34] - cmp r0, #0 - blt _0806AF9E - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _0806AF9E - movs r0, #0 - str r0, [r4, #0x34] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806AF70 -_0806AF9E: - pop {r4, r5, pc} - - thumb_func_start sub_0806AFA0 -sub_0806AFA0: @ 0x0806AFA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806ED78 - cmp r0, #0 - beq _0806AFBA - movs r0, #0x24 - ldrsh r1, [r4, r0] - rsbs r1, r1, #0 - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C -_0806AFBA: - pop {r4, pc} - - thumb_func_start sub_0806AFBC -sub_0806AFBC: @ 0x0806AFBC - push {lr} - adds r3, r0, #0 - ldr r0, _0806AFE0 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806AFCC - movs r0, #0 -_0806AFCC: - ldrb r1, [r3, #0xb] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806AFE4 @ =gUnk_081126F0 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806AFE0: .4byte gUnk_02002A40 -_0806AFE4: .4byte gUnk_081126F0 - - thumb_func_start sub_0806AFE8 -sub_0806AFE8: @ 0x0806AFE8 - push {lr} - movs r2, #0 - str r2, [r1, #0x14] - ldr r3, _0806B000 @ =gUnk_08112BF0 - ldrb r2, [r0, #0xb] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806B000: .4byte gUnk_08112BF0 - - thumb_func_start sub_0806B004 -sub_0806B004: @ 0x0806B004 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r4, #0 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B050 - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B048 - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0806B044 - movs r4, #3 - movs r0, #0x78 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B050 - movs r4, #2 - movs r0, #1 - str r0, [r5, #0x14] - movs r0, #0x78 - bl sub_0807CCB4 - b _0806B050 -_0806B044: - movs r4, #4 - b _0806B050 -_0806B048: - movs r4, #1 - movs r0, #0x6a - bl sub_0807CCB4 -_0806B050: - ldr r0, _0806B060 @ =gUnk_08112C40 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl sub_08056398 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806B060: .4byte gUnk_08112C40 - - thumb_func_start sub_0806B064 -sub_0806B064: @ 0x0806B064 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B082 - movs r4, #1 - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B082 - movs r4, #2 -_0806B082: - ldr r0, _0806B094 @ =gUnk_08112C4A - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806B094: .4byte gUnk_08112C4A - - thumb_func_start sub_0806B098 -sub_0806B098: @ 0x0806B098 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #2 - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0806B0C0 - movs r4, #1 - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B0C0 - movs r0, #0x2a - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f -_0806B0C0: - ldr r2, _0806B0DC @ =gUnk_08112C50 - ldrb r1, [r5, #0xb] - subs r1, #7 - lsls r0, r1, #1 - adds r0, r0, r1 - adds r0, r0, r4 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806B0DC: .4byte gUnk_08112C50 - - thumb_func_start sub_0806B0E0 -sub_0806B0E0: @ 0x0806B0E0 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - movs r0, #0x38 - movs r1, #0xb8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x48 - movs r1, #0xb8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x38 - movs r1, #0xc8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r0, #0x48 - movs r1, #0xc8 - movs r2, #1 - bl sub_080002C0 - cmp r0, #0x57 - bne _0806B120 - movs r5, #1 -_0806B120: - ldr r0, _0806B130 @ =gUnk_08112C5C - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806B130: .4byte gUnk_08112C5C - - thumb_func_start sub_0806B134 -sub_0806B134: @ 0x0806B134 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x45 - bl sub_0807CA84 - cmp r0, #0 - beq _0806B158 - movs r4, #2 - movs r0, #0x7b - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B160 - movs r4, #1 - movs r0, #0x7b - bl sub_0807CCB4 - b _0806B160 -_0806B158: - movs r4, #0 - movs r0, #0x4a - bl sub_0807CD04 -_0806B160: - ldr r0, _0806B17C @ =gUnk_02002A40 - ldrb r0, [r0, #8] - cmp r0, #5 - bls _0806B16A - movs r4, #3 -_0806B16A: - ldr r0, _0806B180 @ =gUnk_08112C60 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806B17C: .4byte gUnk_02002A40 -_0806B180: .4byte gUnk_08112C60 - - thumb_func_start sub_0806B184 -sub_0806B184: @ 0x0806B184 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B1C4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806B1C0 @ =gUnk_08112674 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B1CA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #6 - bl sub_08004260 - b _0806B1CA - .align 2, 0 -_0806B1C0: .4byte gUnk_08112674 -_0806B1C4: - adds r0, r4, #0 - bl sub_08004274 -_0806B1CA: - pop {r4, pc} - - thumb_func_start sub_0806B1CC -sub_0806B1CC: @ 0x0806B1CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806B21E - cmp r0, #1 - bgt _0806B1E0 - cmp r0, #0 - beq _0806B1E6 - b _0806B25C -_0806B1E0: - cmp r0, #2 - beq _0806B24E - b _0806B25C -_0806B1E6: - 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 r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806B25C -_0806B21E: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806B238 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - bl sub_0806F118 - b _0806B25C -_0806B238: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - b _0806B25C -_0806B24E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806B25C - movs r0, #1 - strb r0, [r4, #0xc] -_0806B25C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806B260 -sub_0806B260: @ 0x0806B260 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [r5, #0x14] - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0806B29E - movs r0, #0x29 - bl GetProgressFlag - cmp r0, #0 - beq _0806B286 - movs r4, #2 - movs r0, #1 - str r0, [r5, #0x14] - b _0806B2A0 -_0806B286: - movs r0, #0x7a - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B29A - movs r4, #0 - movs r0, #0x7a - bl sub_0807CCB4 - b _0806B2A0 -_0806B29A: - movs r4, #1 - b _0806B2A0 -_0806B29E: - movs r4, #3 -_0806B2A0: - ldr r0, _0806B2B0 @ =gUnk_08112D48 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl sub_08056398 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806B2B0: .4byte gUnk_08112D48 - - thumb_func_start sub_0806B2B4 -sub_0806B2B4: @ 0x0806B2B4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xb3 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806B314 - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2D6 - movs r4, #1 - movs r0, #0 - bl sub_0807CD10 - b _0806B316 -_0806B2D6: - movs r0, #1 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2EA - movs r4, #2 - movs r0, #1 - bl sub_0807CD10 - b _0806B316 -_0806B2EA: - movs r0, #2 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B2FE - movs r4, #3 - movs r0, #2 - bl sub_0807CD10 - b _0806B316 -_0806B2FE: - movs r4, #4 - movs r0, #0 - bl sub_0807CD8C - movs r0, #1 - bl sub_0807CD8C - movs r0, #2 - bl sub_0807CD8C - b _0806B316 -_0806B314: - movs r4, #0 -_0806B316: - ldr r0, _0806B328 @ =gUnk_08112D50 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806B328: .4byte gUnk_08112D50 - - thumb_func_start sub_0806B32C -sub_0806B32C: @ 0x0806B32C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806B352 - 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, #9 - bl sub_080042AC - b _0806B358 -_0806B352: - adds r0, r2, #0 - bl sub_080042B8 -_0806B358: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806B35C -sub_0806B35C: @ 0x0806B35C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - adds r2, #0x13 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r2, #0xb - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806B3AC -sub_0806B3AC: @ 0x0806B3AC - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806B3C2 - adds r0, r2, #0 - bl sub_0806B41C - b _0806B3C8 -_0806B3C2: - adds r0, r2, #0 - bl sub_0806B3CC -_0806B3C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806B3CC -sub_0806B3CC: @ 0x0806B3CC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B3F4 - ldr r1, _0806B418 @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B414 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08078778 -_0806B3F4: - adds r0, r4, #0 - bl sub_08004274 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0806B40E - movs r0, #0 - strb r0, [r1] - bl sub_08056378 -_0806B40E: - adds r0, r4, #0 - bl sub_0806ED78 -_0806B414: - pop {r4, pc} - .align 2, 0 -_0806B418: .4byte gUnk_08112E1C - - thumb_func_start sub_0806B41C -sub_0806B41C: @ 0x0806B41C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806B470 - cmp r0, #1 - bgt _0806B430 - cmp r0, #0 - beq _0806B436 - b _0806B4EC -_0806B430: - cmp r0, #2 - beq _0806B4DE - b _0806B4EC -_0806B436: - ldr r1, _0806B46C @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B4EC - 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 r0, [r4, #0xb] - cmp r0, #2 - bne _0806B462 - adds r0, r4, #0 - movs r1, #0x25 - movs r2, #0 - bl CreateFX -_0806B462: - adds r0, r4, #0 - bl sub_0807DD50 - b _0806B4EC - .align 2, 0 -_0806B46C: .4byte gUnk_08112E1C -_0806B470: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806B4D4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806B4C8 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08002632 - ldr r1, _0806B4CC @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0x21 - bne _0806B4B2 - adds r3, #6 -_0806B4B2: - ldrh r1, [r3] - ldrh r2, [r3, #2] - ldrh r3, [r3, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806B4D0 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - b _0806B4EC - .align 2, 0 -_0806B4C8: .4byte gLinkEntity -_0806B4CC: .4byte gUnk_08001A7C -_0806B4D0: .4byte gUnk_03003F80 -_0806B4D4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806B4EC -_0806B4DE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806B4EC - movs r0, #1 - strb r0, [r4, #0xc] -_0806B4EC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806B4F0 -sub_0806B4F0: @ 0x0806B4F0 - push {lr} - ldrb r1, [r0, #0xb] - lsls r1, r1, #3 - ldr r2, _0806B500 @ =gUnk_08112E2C - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806B500: .4byte gUnk_08112E2C - - thumb_func_start sub_0806B504 -sub_0806B504: @ 0x0806B504 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #1 - movs r0, #0x21 - bl sub_0801E7F4 - cmp r0, #0 - beq _0806B518 - movs r4, #3 - b _0806B52A -_0806B518: - movs r0, #0x86 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B52A - movs r4, #0 - movs r0, #0x86 - bl sub_0807CCB4 -_0806B52A: - ldr r0, _0806B53C @ =gUnk_08112E54 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806B53C: .4byte gUnk_08112E54 - - thumb_func_start sub_0806B540 -sub_0806B540: @ 0x0806B540 - push {r4, lr} - adds r2, r0, #0 - adds r0, #0x84 - ldr r4, [r0] - ldrb r0, [r4, #0x18] - cmp r0, #1 - beq _0806B588 - cmp r0, #1 - bgt _0806B558 - cmp r0, #0 - beq _0806B562 - b _0806B600 -_0806B558: - cmp r0, #2 - beq _0806B5AC - cmp r0, #3 - beq _0806B5EE - b _0806B600 -_0806B562: - ldr r0, _0806B584 @ =0x00002312 - adds r1, r2, #0 - bl sub_08056398 - movs r0, #0x3f - bl sub_0807CBD0 - cmp r0, #0 - bne _0806B606 - ldrb r0, [r4, #0x18] - adds r0, #1 - strb r0, [r4, #0x18] - movs r0, #0x3f - bl sub_0807CCB4 - b _0806B600 - .align 2, 0 -_0806B584: .4byte 0x00002312 -_0806B588: - ldr r0, _0806B5A4 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806B600 - movs r0, #2 - strb r0, [r4, #0x18] - ldr r0, _0806B5A8 @ =0x00002315 - adds r1, r2, #0 - bl sub_08056398 - b _0806B600 - .align 2, 0 -_0806B5A4: .4byte gUnk_02000050 -_0806B5A8: .4byte 0x00002315 -_0806B5AC: - ldr r0, _0806B5D4 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806B600 - movs r0, #3 - strb r0, [r4, #0x18] - ldr r0, _0806B5D8 @ =gUnk_02002A40 - adds r0, #0xbb - ldrb r0, [r0] - cmp r0, #0 - beq _0806B5DC - movs r0, #0x58 - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - b _0806B5E6 - .align 2, 0 -_0806B5D4: .4byte gUnk_02000050 -_0806B5D8: .4byte gUnk_02002A40 -_0806B5DC: - movs r0, #0x3f - movs r1, #0x64 - movs r2, #0 - bl sub_080A7C18 -_0806B5E6: - movs r0, #0xf - bl sub_0807CD10 - b _0806B600 -_0806B5EE: - ldr r0, _0806B5FC @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - beq _0806B600 - movs r0, #0x2d - strh r0, [r4, #0x10] - b _0806B606 - .align 2, 0 -_0806B5FC: .4byte gLinkEntity -_0806B600: - ldr r1, _0806B608 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806B606: - pop {r4, pc} - .align 2, 0 -_0806B608: .4byte gUnk_02033280 - - thumb_func_start sub_0806B60C -sub_0806B60C: @ 0x0806B60C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806B624 -sub_0806B624: @ 0x0806B624 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806B65C - ldr r1, _0806B658 @ =gUnk_08112E1C - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806B662 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_08004260 - b _0806B662 - .align 2, 0 -_0806B658: .4byte gUnk_08112E1C -_0806B65C: - adds r0, r4, #0 - bl sub_08004274 -_0806B662: - pop {r4, pc} - - thumb_func_start sub_0806B664 -sub_0806B664: @ 0x0806B664 - push {lr} - ldr r2, _0806B678 @ =gUnk_08112F78 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806B678: .4byte gUnk_08112F78 - - thumb_func_start sub_0806B67C -sub_0806B67C: @ 0x0806B67C - push {r4, r5, r6, lr} - adds r6, r0, #0 - movs r1, #0 - movs r0, #1 - strb r0, [r6, #0xc] - strb r1, [r6, #0xd] - strb r1, [r6, #0xe] - ldrb r0, [r6, #0xa] - cmp r0, #5 - bls _0806B692 - b _0806B7B8 -_0806B692: - lsls r0, r0, #2 - ldr r1, _0806B69C @ =_0806B6A0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806B69C: .4byte _0806B6A0 -_0806B6A0: @ jump table - .4byte _0806B6B8 @ case 0 - .4byte _0806B7A6 @ case 1 - .4byte _0806B70C @ case 2 - .4byte _0806B726 @ case 3 - .4byte _0806B7B0 @ case 4 - .4byte _0806B7A6 @ case 5 -_0806B6B8: - ldrh r0, [r6, #0x32] - subs r0, #0xa0 - strh r0, [r6, #0x32] - movs r0, #0xa0 - strb r0, [r6, #0xe] - movs r0, #0x20 - strb r0, [r6, #0xf] - adds r1, r6, #0 - adds r1, #0x63 - strb r0, [r1] - movs r5, #0 -_0806B6CE: - movs r0, #0x3b - movs r1, #2 - adds r2, r5, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806B6E0 - str r6, [r4, #0x50] -_0806B6E0: - adds r5, #1 - cmp r5, #3 - bls _0806B6CE - movs r0, #0x3b - movs r1, #1 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - str r6, [r4, #0x50] - adds r1, r4, #0 - adds r1, #0x63 - movs r0, #0xff - strb r0, [r1] - movs r3, #0x80 - lsls r3, r3, #9 - adds r0, r6, #0 - adds r1, r4, #0 - movs r2, #0 - bl sub_0806FA48 - b _0806B7A6 -_0806B70C: - ldrb r1, [r6, #0xb] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806B71E - ldrb r0, [r6, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r6, #0x18] -_0806B71E: - adds r0, r6, #0 - bl sub_0806B96C - b _0806B7A6 -_0806B726: - movs r0, #1 - strb r0, [r6, #0xe] - movs r0, #0x20 - strb r0, [r6, #0xf] - movs r0, #0x3b - movs r1, #4 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806B76C - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r6, [r4, #0x50] - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs 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] - movs r0, #0 - strb r0, [r4, #0x1e] -_0806B76C: - movs r0, #0x3b - movs r1, #5 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806B7A6 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA24 - str r6, [r4, #0x50] - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - 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] -_0806B7A6: - adds r0, r6, #0 - movs r1, #0 - bl sub_080042AC - b _0806B7B8 -_0806B7B0: - adds r0, r6, #0 - movs r1, #0 - bl sub_08004260 -_0806B7B8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806B7BC -sub_0806B7BC: @ 0x0806B7BC - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #3 - bl sub_0807CC3C - cmp r0, #0 - bne _0806B7CC - b _0806B968 -_0806B7CC: - ldrb r0, [r5, #0xa] - cmp r0, #1 - beq _0806B84C - cmp r0, #1 - bgt _0806B7DC - cmp r0, #0 - beq _0806B7E6 - b _0806B93C -_0806B7DC: - cmp r0, #2 - beq _0806B86C - cmp r0, #3 - beq _0806B874 - b _0806B93C -_0806B7E6: - ldrh r0, [r5, #0x32] - adds r0, #1 - strh r0, [r5, #0x32] - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - movs r1, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B82C - movs r0, #0x3b - movs r1, #3 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - bne _0806B80C - b _0806B968 -_0806B80C: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - ldr r0, _0806B828 @ =0x00001634 - bl sub_08056378 - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - bl sub_0805E780 - b _0806B968 - .align 2, 0 -_0806B828: .4byte 0x00001634 -_0806B82C: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - ands r0, r1 - cmp r0, #0 - beq _0806B83A - b _0806B95A -_0806B83A: - movs r0, #0x20 - strb r0, [r5, #0xf] - ldr r0, _0806B848 @ =0x000001A9 - bl sub_080A3268 - b _0806B95A - .align 2, 0 -_0806B848: .4byte 0x000001A9 -_0806B84C: - adds r0, r5, #0 - bl sub_0806B9BC - adds r4, r0, #0 - cmp r4, #0 - bne _0806B85C - bl sub_0805E780 -_0806B85C: - movs r3, #0x84 - lsls r3, r3, #0xe - adds r0, r4, #0 - adds r1, r5, #0 - movs r2, #0 - bl sub_0806FA48 - b _0806B95A -_0806B86C: - adds r0, r5, #0 - bl sub_0806B96C - b _0806B95A -_0806B874: - ldrb r0, [r5, #0xd] - cmp r0, #1 - beq _0806B8A2 - cmp r0, #1 - bgt _0806B884 - cmp r0, #0 - beq _0806B88E - b _0806B91E -_0806B884: - cmp r0, #2 - beq _0806B8C4 - cmp r0, #3 - beq _0806B906 - b _0806B91E -_0806B88E: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B91E - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - b _0806B91E -_0806B8A2: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #2 - strb r0, [r5, #0xd] - ldr r1, _0806B8C0 @ =0x0000013F - adds r0, r5, #0 - bl sub_0801D2B4 - b _0806B8FA - .align 2, 0 -_0806B8C0: .4byte 0x0000013F -_0806B8C4: - adds r2, r5, #0 - adds r2, #0x5a - ldrb r1, [r2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #0xef - ands r0, r1 - strb r0, [r2] - ldrb r0, [r5, #0xe] - adds r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - beq _0806B91E - cmp r0, #0xa - bne _0806B91E - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - movs r0, #0xf4 - bl sub_08004488 - movs r0, #0 - strb r0, [r5, #0xe] -_0806B8FA: - ldrb r1, [r5, #0xd] - subs r1, #1 - adds r0, r5, #0 - bl sub_080042AC - b _0806B91E -_0806B906: - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806B91E - movs r0, #0 - bl sub_0807CD10 - bl sub_0805E780 -_0806B91E: - ldrb r0, [r5, #0xf] - subs r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806B95A - movs r0, #0x20 - strb r0, [r5, #0xf] - ldr r0, _0806B938 @ =0x000001A9 - bl sub_080A3268 - b _0806B95A - .align 2, 0 -_0806B938: .4byte 0x000001A9 -_0806B93C: - adds r0, r5, #0 - bl sub_0806B9BC - adds r4, r0, #0 - cmp r4, #0 - bne _0806B94E - bl sub_0805E780 - b _0806B968 -_0806B94E: - ldrb r0, [r4, #0xd] - cmp r0, #0 - beq _0806B968 - ldrb r0, [r5, #0xa] - cmp r0, #4 - beq _0806B962 -_0806B95A: - adds r0, r5, #0 - bl sub_080042B8 - b _0806B968 -_0806B962: - adds r0, r5, #0 - bl sub_08004274 -_0806B968: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806B96C -sub_0806B96C: @ 0x0806B96C - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_0806B9BC - adds r5, r0, #0 - cmp r5, #0 - bne _0806B97E - bl sub_0805E780 -_0806B97E: - ldrb r3, [r4, #0xb] - lsls r3, r3, #1 - ldr r0, _0806B9B8 @ =gUnk_08112F80 - adds r3, r3, r0 - 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] - 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, #0x21 - lsls r3, r3, #0x10 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA48 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0806B9B8: .4byte gUnk_08112F80 - - thumb_func_start sub_0806B9BC -sub_0806B9BC: @ 0x0806B9BC - push {lr} - ldr r1, [r0, #0x50] - cmp r1, #0 - beq _0806B9CC - ldr r0, [r1, #4] - cmp r0, #0 - bne _0806B9CC - movs r1, #0 -_0806B9CC: - adds r0, r1, #0 - pop {pc} - - thumb_func_start sub_0806B9D0 -sub_0806B9D0: @ 0x0806B9D0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0806B9E6 - adds r0, #1 - strb r0, [r1, #0xc] - adds r0, r1, #0 - bl sub_0807DD50 - b _0806B9EE -_0806B9E6: - adds r0, r1, #0 - movs r1, #0 - bl sub_0807DD94 -_0806B9EE: - pop {pc} - - thumb_func_start sub_0806B9F0 -sub_0806B9F0: @ 0x0806B9F0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BA18 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD50 - ldr r1, _0806BA30 @ =gUnk_08114F30 - ldrb r2, [r4, #0x19] - lsrs r0, r2, #6 - adds r0, r0, r1 - ldrb r1, [r0] - lsls r1, r1, #6 - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] -_0806BA18: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - pop {r4, pc} - .align 2, 0 -_0806BA30: .4byte gUnk_08114F30 - - thumb_func_start sub_0806BA34 -sub_0806BA34: @ 0x0806BA34 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r4, r1, #0 - ldr r0, _0806BA58 @ =0x00004912 - mov r8, r0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x73 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806BA60 - ldr r0, _0806BA5C @ =0x00004913 - mov r8, r0 - b _0806BB06 - .align 2, 0 -_0806BA58: .4byte 0x00004912 -_0806BA5C: .4byte 0x00004913 -_0806BA60: - movs r0, #0x39 - bl sub_0807CA84 - adds r7, r0, #0 - movs r0, #0x3a - bl sub_0807CA84 - adds r6, r0, #0 - movs r0, #0x3b - bl sub_0807CA84 - adds r5, r0, #0 - cmp r7, #1 - bne _0806BA88 - ldr r0, _0806BA84 @ =0x00004906 - mov r8, r0 - str r7, [r4, #0x14] - b _0806BAA2 - .align 2, 0 -_0806BA84: .4byte 0x00004906 -_0806BA88: - cmp r6, #1 - bne _0806BA98 - ldr r0, _0806BA94 @ =0x00004907 - mov r8, r0 - str r6, [r4, #0x14] - b _0806BAA2 - .align 2, 0 -_0806BA94: .4byte 0x00004907 -_0806BA98: - cmp r5, #1 - bne _0806BAB4 - ldr r0, _0806BAB0 @ =0x00004908 - mov r8, r0 - str r5, [r4, #0x14] -_0806BAA2: - movs r0, #0x6b - bl sub_0807CCB4 - movs r0, #0x6a - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAB0: .4byte 0x00004908 -_0806BAB4: - movs r0, #0x6a - bl sub_0807CBD0 - cmp r0, #0 - beq _0806BB06 - movs r0, #0x6b - bl sub_0807CBD0 - cmp r0, #0 - bne _0806BAD0 - ldr r0, _0806BACC @ =0x00004901 - b _0806BAD6 - .align 2, 0 -_0806BACC: .4byte 0x00004901 -_0806BAD0: - cmp r7, #0 - bne _0806BAE4 - ldr r0, _0806BAE0 @ =0x00004902 -_0806BAD6: - mov r8, r0 - movs r0, #0x6b - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAE0: .4byte 0x00004902 -_0806BAE4: - cmp r6, #0 - bne _0806BAF8 - ldr r0, _0806BAF4 @ =0x00004903 - mov r8, r0 - movs r0, #0x6d - bl sub_0807CCB4 - b _0806BB06 - .align 2, 0 -_0806BAF4: .4byte 0x00004903 -_0806BAF8: - cmp r5, #0 - bne _0806BB06 - ldr r0, _0806BB18 @ =0x00004904 - mov r8, r0 - movs r0, #0x70 - bl sub_0807CCB4 -_0806BB06: - mov r0, r8 - mov r1, sb - bl sub_08056398 - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806BB18: .4byte 0x00004904 - - thumb_func_start sub_0806BB1C -sub_0806BB1C: @ 0x0806BB1C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - movs r4, #1 - rsbs r4, r4, #0 - movs r0, #0x39 - bl sub_0807CA84 - cmp r0, #1 - bne _0806BB34 - movs r4, #0x39 - b _0806BB52 -_0806BB34: - movs r0, #0x3a - bl sub_0807CA84 - cmp r0, #1 - bne _0806BB42 - movs r4, #0x3a - b _0806BB52 -_0806BB42: - movs r0, #0x3b - bl sub_0807CA84 - cmp r0, #1 - bne _0806BB4E - movs r4, #0x3b -_0806BB4E: - cmp r4, #0 - ble _0806BB78 -_0806BB52: - ldr r0, [r6, #4] - cmp r0, #0 - bne _0806BB70 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08095BE0 - adds r0, r5, #0 - movs r1, #0xc - bl sub_08004260 - movs r0, #0xcd - bl sub_080A3268 - b _0806BB78 -_0806BB70: - adds r0, r4, #0 - movs r1, #2 - bl sub_0807CAA0 -_0806BB78: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806BB7C -sub_0806BB7C: @ 0x0806BB7C - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x39 - bl sub_0807CA84 - cmp r0, #2 - bne _0806BBAC - movs r0, #0x3a - bl sub_0807CA84 - cmp r0, #2 - bne _0806BBAC - movs r0, #0x3b - bl sub_0807CA84 - cmp r0, #2 - bne _0806BBAC - movs r0, #0x73 - bl sub_0807CCB4 - movs r0, #1 - str r0, [r4, #0x14] -_0806BBAC: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BBB0 -sub_0806BBB0: @ 0x0806BBB0 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0806BBCC - movs r0, #0x29 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - b _0806BBCE -_0806BBCC: - movs r1, #2 -_0806BBCE: - ldr r0, _0806BBE0 @ =gUnk_08113078 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_0806BBE0: .4byte gUnk_08113078 - - thumb_func_start sub_0806BBE4 -sub_0806BBE4: @ 0x0806BBE4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BC40 - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0806BC28 @ =gUnk_08113140 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806BC54 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xe] - 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] - lsls r0, r0, #0x19 - cmp r0, #0 - blt _0806BC2C - movs r0, #6 - b _0806BC2E - .align 2, 0 -_0806BC28: .4byte gUnk_08113140 -_0806BC2C: - movs r0, #2 -_0806BC2E: - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x14] - strb r0, [r4, #0xe] - adds r0, r4, #0 - bl sub_0806BC58 - adds r0, r4, #0 - bl sub_0807DD64 -_0806BC40: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 -_0806BC54: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BC58 -sub_0806BC58: @ 0x0806BC58 - push {lr} - movs r1, #2 - bl sub_0805E3A0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BC64 -sub_0806BC64: @ 0x0806BC64 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806BC94 -sub_0806BC94: @ 0x0806BC94 - push {lr} - ldrb r3, [r0, #0x18] - lsls r3, r3, #0x19 - lsrs r3, r3, #0x1f - rsbs r2, r3, #0 - orrs r2, r3 - asrs r2, r2, #0x1f - movs r3, #8 - ands r2, r3 - ldr r1, [r1, #4] - adds r1, r1, r2 - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BCB8 -sub_0806BCB8: @ 0x0806BCB8 - ldrb r1, [r0, #0xe] - strb r1, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_0806BCC0 -sub_0806BCC0: @ 0x0806BCC0 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xa] - cmp r0, #0 - bne _0806BCD0 - adds r0, r1, #0 - bl sub_0806F188 -_0806BCD0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BCD4 -sub_0806BCD4: @ 0x0806BCD4 - 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_0806BCE8 -sub_0806BCE8: @ 0x0806BCE8 - push {lr} - ldrb r1, [r0, #0xa] - lsls r1, r1, #3 - ldr r2, _0806BCF8 @ =gUnk_08113158 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806BCF8: .4byte gUnk_08113158 - - thumb_func_start sub_0806BCFC -sub_0806BCFC: @ 0x0806BCFC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BD4C - ldrb r0, [r4, #0xa] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - ldr r0, _0806BD48 @ =gUnk_08113140 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806BD52 - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - movs r1, #0x41 - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - bl sub_0806BC58 - adds r0, r4, #0 - movs r1, #3 - bl sub_080042AC - b _0806BD52 - .align 2, 0 -_0806BD48: .4byte gUnk_08113140 -_0806BD4C: - adds r0, r4, #0 - bl sub_080042B8 -_0806BD52: - pop {r4, pc} - - thumb_func_start sub_0806BD54 -sub_0806BD54: @ 0x0806BD54 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BD6A - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806BD72 -_0806BD6A: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806BD72: - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0806BD94 - movs r0, #0xef - ands r0, r1 - strb r0, [r4] - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_08004488 - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 -_0806BD94: - ldrb r1, [r4] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0806BDAA - movs r0, #0xdf - ands r0, r1 - strb r0, [r4] - movs r0, #0x7c - bl sub_08004488 -_0806BDAA: - pop {r4, pc} - - thumb_func_start sub_0806BDAC -sub_0806BDAC: @ 0x0806BDAC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806BDE6 - cmp r0, #1 - bgt _0806BDC0 - cmp r0, #0 - beq _0806BDC6 - b _0806BE3A -_0806BDC0: - cmp r0, #2 - beq _0806BE26 - b _0806BE3A -_0806BDC6: - 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 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806BE3A -_0806BDE6: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806BE1C - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806BE18 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806BE3A - .align 2, 0 -_0806BE18: .4byte gLinkEntity -_0806BE1C: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806BE3A -_0806BE26: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806BE3A - movs r0, #1 - strb r0, [r4, #0xc] -_0806BE3A: - pop {r4, pc} - - thumb_func_start sub_0806BE3C -sub_0806BE3C: @ 0x0806BE3C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806BE54 -sub_0806BE54: @ 0x0806BE54 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806BE7A - 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, #2 - bl sub_080042AC - b _0806BE80 -_0806BE7A: - adds r0, r2, #0 - bl sub_080042B8 -_0806BE80: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806BE84 -sub_0806BE84: @ 0x0806BE84 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r5, #1 - movs r0, #0x69 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806BEA6 - movs r5, #0 - movs r0, #0x69 - bl sub_0807CCB4 - movs r0, #1 - str r0, [r4, #0x14] -_0806BEA6: - movs r0, #0x3c - bl sub_0807CA84 - cmp r0, #1 - bls _0806BEB2 - movs r5, #2 -_0806BEB2: - ldr r0, _0806BEC4 @ =gUnk_08113344 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl sub_08056398 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806BEC4: .4byte gUnk_08113344 - - thumb_func_start sub_0806BEC8 -sub_0806BEC8: @ 0x0806BEC8 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r1, #0 - movs r4, #0 - str r4, [r5, #0x14] - movs r0, #0x3c - bl sub_0807CA84 - cmp r0, #1 - bne _0806BEE2 - movs r4, #1 - str r4, [r5, #0x14] - b _0806BEE8 -_0806BEE2: - cmp r0, #1 - bls _0806BEE8 - movs r4, #2 -_0806BEE8: - ldr r0, _0806BEF8 @ =gUnk_0811334A - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r6, #0 - bl sub_08056398 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806BEF8: .4byte gUnk_0811334A - - thumb_func_start sub_0806BEFC -sub_0806BEFC: @ 0x0806BEFC - push {lr} - movs r0, #0xbf - lsls r0, r0, #1 - ldr r1, _0806BF2C @ =0x0000058E - movs r2, #1 - bl sub_0807B314 - ldr r0, _0806BF30 @ =0x0000017F - ldr r1, _0806BF34 @ =0x0000058F - movs r2, #1 - bl sub_0807B314 - movs r0, #0xc0 - lsls r0, r0, #1 - ldr r1, _0806BF38 @ =0x000005CE - movs r2, #1 - bl sub_0807B314 - ldr r0, _0806BF3C @ =0x00000181 - ldr r1, _0806BF40 @ =0x000005CF - movs r2, #1 - bl sub_0807B314 - pop {pc} - .align 2, 0 -_0806BF2C: .4byte 0x0000058E -_0806BF30: .4byte 0x0000017F -_0806BF34: .4byte 0x0000058F -_0806BF38: .4byte 0x000005CE -_0806BF3C: .4byte 0x00000181 -_0806BF40: .4byte 0x000005CF - - thumb_func_start sub_0806BF44 -sub_0806BF44: @ 0x0806BF44 - push {r4, r5, lr} - adds r2, r0, #0 - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r3, _0806BF78 @ =gUnk_03000BF0 - movs r5, #0xa - ldrsh r1, [r3, r5] - subs r0, r0, r1 - adds r0, #0x10 - ldr r1, _0806BF7C @ =0x0000010F - cmp r0, r1 - bhi _0806BF76 - movs r1, #0x32 - ldrsh r0, [r2, r1] - movs r2, #0xc - ldrsh r1, [r3, r2] - subs r0, r0, r1 - adds r0, #0x18 - cmp r0, #0xcf - bhi _0806BF76 - movs r0, #1 - str r0, [r4, #0x14] -_0806BF76: - pop {r4, r5, pc} - .align 2, 0 -_0806BF78: .4byte gUnk_03000BF0 -_0806BF7C: .4byte 0x0000010F - - thumb_func_start sub_0806BF80 -sub_0806BF80: @ 0x0806BF80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806BFBE - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806BFA2 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_0806BFA2: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806BFD8 - b _0806BFD4 -_0806BFBE: - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0806BFD4 - adds r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806BFD4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806BFD8 -sub_0806BFD8: @ 0x0806BFD8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r5, #3 - adds r1, r5, #0 - ands r1, r0 - cmp r1, #1 - beq _0806BFF0 - cmp r1, #2 - beq _0806C002 - b _0806C00A -_0806BFF0: - bl sub_08000E50 - adds r1, r0, #0 - ands r1, r5 - adds r1, #0xc - adds r0, r4, #0 - bl sub_08004260 - b _0806C00A -_0806C002: - adds r0, r4, #0 - movs r1, #0 - bl sub_08004260 -_0806C00A: - pop {r4, r5, pc} - - thumb_func_start sub_0806C00C -sub_0806C00C: @ 0x0806C00C - push {lr} - adds r2, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806C022 - movs r0, #1 -_0806C022: - str r0, [r2, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C028 -sub_0806C028: @ 0x0806C028 - push {lr} - ldrb r2, [r0, #0x14] - lsrs r2, r2, #1 - ldr r1, [r1, #4] - adds r1, r1, r2 - bl sub_08004260 - pop {pc} - - thumb_func_start sub_0806C038 -sub_0806C038: @ 0x0806C038 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806C074 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r4, r0, #5 - cmp r4, #0 - beq _0806C048 - movs r4, #0 -_0806C048: - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0806C086 - movs r0, #0x3a - bl sub_0807CA84 - cmp r0, #0 - bne _0806C078 - movs r4, #6 - movs r0, #0xaf - bl sub_0807CBD0 - cmp r0, #0 - bne _0806C086 - movs r4, #5 - movs r0, #0xaf - bl sub_0807CCB4 - b _0806C086 - .align 2, 0 -_0806C074: .4byte gUnk_02002A40 -_0806C078: - movs r4, #7 - movs r0, #0x3a - bl sub_0807CA84 - cmp r0, #1 - bls _0806C086 - movs r4, #0 -_0806C086: - ldr r0, _0806C098 @ =gUnk_081133A4 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806C098: .4byte gUnk_081133A4 - - thumb_func_start sub_0806C09C -sub_0806C09C: @ 0x0806C09C - push {lr} - ldr r3, _0806C0AC @ =gUnk_081133B4 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {pc} - .align 2, 0 -_0806C0AC: .4byte gUnk_081133B4 - - thumb_func_start sub_0806C0B0 -sub_0806C0B0: @ 0x0806C0B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r5, r0, #0 - cmp r5, #0 - bne _0806C104 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x19] - movs r0, #0xd - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - ldr r1, _0806C100 @ =gUnk_03000F50 - adds r2, r1, #0 - adds r2, #0x66 - movs r0, #0xfd - lsls r0, r0, #6 - strh r0, [r2] - adds r1, #0x68 - movs r0, #0x80 - lsls r0, r0, #5 - strh r0, [r1] - strh r0, [r4, #0x24] - str r5, [r4, #0x20] - b _0806C134 - .align 2, 0 -_0806C100: .4byte gUnk_03000F50 -_0806C104: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - movs r1, #0x24 - ldrsh r0, [r4, r1] - lsls r3, r0, #8 - ldr r0, [r4, #0x20] - adds r3, r3, r0 - asrs r3, r3, #0x10 - cmp r3, #0x10 - ble _0806C11E - movs r3, #0x10 -_0806C11E: - cmp r3, #3 - bgt _0806C124 - movs r3, #4 -_0806C124: - ldr r2, _0806C138 @ =gUnk_03000F50 - lsls r1, r3, #8 - movs r0, #0x10 - subs r0, r0, r3 - orrs r1, r0 - adds r2, #0x68 - strh r1, [r2] - strh r1, [r4, #0x24] -_0806C134: - pop {r4, r5, pc} - .align 2, 0 -_0806C138: .4byte gUnk_03000F50 - - thumb_func_start sub_0806C13C -sub_0806C13C: @ 0x0806C13C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806C182 - cmp r0, #1 - bgt _0806C150 - cmp r0, #0 - beq _0806C156 - b _0806C1D2 -_0806C150: - cmp r0, #2 - beq _0806C1BE - b _0806C1D2 -_0806C156: - 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_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C1D2 -_0806C182: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C1B4 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806C1B0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806C1D2 - .align 2, 0 -_0806C1B0: .4byte gLinkEntity -_0806C1B4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C1D2 -_0806C1BE: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C1D2 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x88 - bl sub_0807CCB4 -_0806C1D2: - pop {r4, pc} - - thumb_func_start sub_0806C1D4 -sub_0806C1D4: @ 0x0806C1D4 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806C1FA - 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, #2 - bl sub_080042AC - b _0806C200 -_0806C1FA: - adds r0, r2, #0 - bl sub_080042B8 -_0806C200: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C204 -sub_0806C204: @ 0x0806C204 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xc] - cmp r0, #0 - bne _0806C21A - adds r0, #1 - strb r0, [r1, #0xc] - adds r0, r1, #0 - bl sub_0807DD50 - b _0806C222 -_0806C21A: - adds r0, r1, #0 - movs r1, #0 - bl sub_0807DD94 -_0806C222: - pop {pc} - - thumb_func_start sub_0806C224 -sub_0806C224: @ 0x0806C224 - push {lr} - ldr r0, _0806C234 @ =gUnk_0813AD60 - bl sub_08080840 - ldr r1, _0806C238 @ =gUnk_030010A0 - movs r0, #6 - strb r0, [r1, #9] - pop {pc} - .align 2, 0 -_0806C234: .4byte gUnk_0813AD60 -_0806C238: .4byte gUnk_030010A0 - - thumb_func_start sub_0806C23C -sub_0806C23C: @ 0x0806C23C - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0xf - movs r2, #0x43 - movs r3, #0 - bl sub_080A2988 - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0806C27C @ =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 r4, #0x38 - ldrb r2, [r4] - movs r0, #0x73 - bl sub_0807B314 - movs r0, #0x73 - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_0806C27C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806C280 -sub_0806C280: @ 0x0806C280 - push {lr} - movs r0, #0x50 - bl sub_0807CD04 - ldr r0, _0806C298 @ =gUnk_0813AD74 - bl sub_08080840 - ldr r1, _0806C29C @ =gUnk_030010A0 - movs r0, #6 - strb r0, [r1, #9] - pop {pc} - .align 2, 0 -_0806C298: .4byte gUnk_0813AD74 -_0806C29C: .4byte gUnk_030010A0 - - thumb_func_start sub_0806C2A0 -sub_0806C2A0: @ 0x0806C2A0 - push {lr} - ldr r0, [r1, #4] - cmp r0, #0 - beq _0806C2AE - cmp r0, #1 - beq _0806C2B8 - b _0806C2C0 -_0806C2AE: - movs r0, #0xd - movs r1, #4 - bl sub_08050054 - b _0806C2C0 -_0806C2B8: - movs r0, #0xc - movs r1, #4 - bl sub_08050054 -_0806C2C0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C2C4 -sub_0806C2C4: @ 0x0806C2C4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806C2FA - cmp r0, #1 - bgt _0806C2D8 - cmp r0, #0 - beq _0806C2DE - b _0806C350 -_0806C2D8: - cmp r0, #2 - beq _0806C342 - b _0806C350 -_0806C2DE: - 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 r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C350 -_0806C2FA: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C338 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - ldr r1, _0806C334 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x58 - ldrb r1, [r1] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _0806C350 - .align 2, 0 -_0806C334: .4byte gLinkEntity -_0806C338: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C350 -_0806C342: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C350 - movs r0, #1 - strb r0, [r4, #0xc] -_0806C350: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806C354 -sub_0806C354: @ 0x0806C354 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C36C -sub_0806C36C: @ 0x0806C36C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806C392 - 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, #6 - bl sub_080042AC - b _0806C398 -_0806C392: - adds r0, r2, #0 - bl sub_080042B8 -_0806C398: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806C39C -sub_0806C39C: @ 0x0806C39C - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806C3E2 - cmp r5, #1 - bgt _0806C3B0 - cmp r5, #0 - beq _0806C3B6 - b _0806C450 -_0806C3B0: - cmp r5, #2 - beq _0806C436 - b _0806C450 -_0806C3B6: - adds r0, r4, #0 - bl sub_0806C454 - cmp r0, #0 - beq _0806C450 - 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 r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C450 -_0806C3E2: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C420 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806C41C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_0806F118 - b _0806C450 - .align 2, 0 -_0806C41C: .4byte gLinkEntity -_0806C420: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _0806C450 -_0806C436: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C450 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_0806C450: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806C454 -sub_0806C454: @ 0x0806C454 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806C470 @ =gUnk_08113754 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C474 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #1 - b _0806C476 - .align 2, 0 -_0806C470: .4byte gUnk_08113754 -_0806C474: - movs r0, #0 -_0806C476: - pop {r4, pc} - - thumb_func_start sub_0806C478 -sub_0806C478: @ 0x0806C478 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806C4A8 -sub_0806C4A8: @ 0x0806C4A8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806C4D8 - adds r0, r4, #0 - bl sub_0806EDC4 - adds r1, r0, #0 - cmp r1, #0 - bge _0806C4CC - movs r1, #3 -_0806C4CC: - lsls r0, r1, #1 - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_080042AC - movs r0, #1 -_0806C4D8: - str r0, [r5, #0x14] - pop {r4, r5, pc} - - thumb_func_start sub_0806C4DC -sub_0806C4DC: @ 0x0806C4DC - push {lr} - ldr r1, _0806C4F0 @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _0806C4F4 @ =gUnk_08113760 - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C4F0: .4byte gUnk_02002A40 -_0806C4F4: .4byte gUnk_08113760 - - thumb_func_start sub_0806C4F8 -sub_0806C4F8: @ 0x0806C4F8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C510 -sub_0806C510: @ 0x0806C510 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C548 - adds r0, r4, #0 - bl sub_0806C454 - cmp r0, #0 - beq _0806C54E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - ldrh r0, [r4, #0x32] - subs r0, #4 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #2 - bl sub_08004260 - b _0806C54E -_0806C548: - adds r0, r4, #0 - bl sub_08004274 -_0806C54E: - pop {r4, pc} - - thumb_func_start sub_0806C550 -sub_0806C550: @ 0x0806C550 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C56E - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806C576 -_0806C56E: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806C576: - pop {r4, pc} - - thumb_func_start sub_0806C578 -sub_0806C578: @ 0x0806C578 - push {lr} - ldr r0, _0806C584 @ =gUnk_0813AD10 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C584: .4byte gUnk_0813AD10 - - thumb_func_start sub_0806C588 -sub_0806C588: @ 0x0806C588 - push {lr} - ldr r0, _0806C594 @ =gUnk_0813AD24 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C594: .4byte gUnk_0813AD24 - - thumb_func_start sub_0806C598 -sub_0806C598: @ 0x0806C598 - push {lr} - ldr r0, _0806C5A4 @ =gUnk_0813AD38 - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806C5A4: .4byte gUnk_0813AD38 - - thumb_func_start sub_0806C5A8 -sub_0806C5A8: @ 0x0806C5A8 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r4, [r5, #0xc] - cmp r4, #1 - beq _0806C604 - cmp r4, #1 - bgt _0806C5BC - cmp r4, #0 - beq _0806C5C2 - b _0806C670 -_0806C5BC: - cmp r4, #2 - beq _0806C656 - b _0806C670 -_0806C5C2: - ldrb r1, [r5, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C600 @ =gUnk_08113910 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C670 - 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 r0, [r5, #0xe] - strb r0, [r5, #0x14] - adds r0, r5, #0 - adds r0, #0x69 - strb r4, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0807DD50 - b _0806C670 - .align 2, 0 -_0806C600: .4byte gUnk_08113910 -_0806C604: - adds r2, r5, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806C64C - movs r0, #0 - strb r1, [r5, #0xc] - strb r0, [r2] - adds r4, r5, #0 - adds r4, #0x58 - ldrb r0, [r4] - adds r1, r5, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806C648 @ =gLinkEntity - adds r0, r5, #0 - bl sub_080045C4 - bl sub_0806F5A4 - ldrb r1, [r4] - movs r2, #4 - rsbs r2, r2, #0 - ands r1, r2 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_08004260 - adds r0, r5, #0 - bl sub_0806F118 - b _0806C670 - .align 2, 0 -_0806C648: .4byte gLinkEntity -_0806C64C: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806C670 -_0806C656: - adds r0, r5, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C670 - movs r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r5, #0 - bl sub_08004260 -_0806C670: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806C674 -sub_0806C674: @ 0x0806C674 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C68C -sub_0806C68C: @ 0x0806C68C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - ldrb r6, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r5, #0x3f - ands r5, r0 - ldrb r0, [r4, #0xa] - cmp r0, #0 - bne _0806C6D2 - adds r2, #3 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806C70A -_0806C6D2: - adds r2, #6 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r2, r5, #3 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - adds r2, r6, #0 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - bl sub_0807000C -_0806C70A: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0806C70C -sub_0806C70C: @ 0x0806C70C - push {lr} - adds r3, r0, #0 - ldr r0, _0806C730 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806C71C - movs r0, #0 -_0806C71C: - ldrb r1, [r3, #0xa] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806C734 @ =gUnk_08113930 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C730: .4byte gUnk_02002A40 -_0806C734: .4byte gUnk_08113930 - - thumb_func_start sub_0806C738 -sub_0806C738: @ 0x0806C738 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806C778 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C774 @ =gUnk_08113910 - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C77E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_08004260 - b _0806C77E - .align 2, 0 -_0806C774: .4byte gUnk_08113910 -_0806C778: - adds r0, r4, #0 - bl sub_08004274 -_0806C77E: - pop {r4, pc} - - thumb_func_start sub_0806C780 -sub_0806C780: @ 0x0806C780 - push {lr} - ldr r2, _0806C794 @ =gUnk_08113A7C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806C794: .4byte gUnk_08113A7C - - thumb_func_start sub_0806C798 -sub_0806C798: @ 0x0806C798 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806C7D0 @ =gUnk_08113A1C - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806C7CE - 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 r0, [r4, #0xe] - strb r0, [r4, #0x14] - adds r0, r4, #0 - bl sub_0807DD50 - adds r0, r4, #0 - bl sub_0806C7D4 -_0806C7CE: - pop {r4, pc} - .align 2, 0 -_0806C7D0: .4byte gUnk_08113A1C - - thumb_func_start sub_0806C7D4 -sub_0806C7D4: @ 0x0806C7D4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r4, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #2 - bne _0806C7F4 - movs r1, #0 - movs r0, #3 - strb r0, [r4, #0xc] - strb r1, [r2] - adds r0, r4, #0 - bl sub_0806F118 - b _0806C82C -_0806C7F4: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xb] - cmp r0, #3 - bne _0806C82C - movs r0, #0x58 - bl GetProgressFlag - cmp r0, #0 - bne _0806C82C - movs r0, #0x63 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806C82C - movs r0, #0 - bl sub_0807CC3C - cmp r0, #0 - beq _0806C82C - movs r0, #7 - strb r0, [r4, #0xb] - ldr r1, _0806C830 @ =gUnk_08014A80 - adds r0, r4, #0 - bl sub_0807DD80 -_0806C82C: - pop {r4, pc} - .align 2, 0 -_0806C830: .4byte gUnk_08014A80 - - thumb_func_start sub_0806C834 -sub_0806C834: @ 0x0806C834 - push {lr} - adds r2, r0, #0 - ldr r0, _0806C858 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0806C856 - ldrb r0, [r2, #0xc] - subs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x14] - lsrs r1, r1, #1 - adds r1, #4 - adds r0, r2, #0 - bl sub_08004260 -_0806C856: - pop {pc} - .align 2, 0 -_0806C858: .4byte gUnk_02000050 - - thumb_func_start sub_0806C85C -sub_0806C85C: @ 0x0806C85C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806C86C - movs r0, #1 - strb r0, [r4, #0xc] -_0806C86C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806C870 -sub_0806C870: @ 0x0806C870 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806C888 -sub_0806C888: @ 0x0806C888 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r7, #0x3f - ands r7, r1 - ldrb r0, [r4, #0xa] - cmp r0, #4 - bne _0806C8D4 - adds r0, r4, #0 - movs r1, #0 - movs r2, #9 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - adds r2, r7, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #2 - movs r2, #0 - bl sub_0806FFD8 - adds r0, r4, #0 - movs r1, #2 - movs r2, #1 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - b _0806C90A -_0806C8D4: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806C8E2 - movs r6, #1 - movs r5, #0 - b _0806C8E6 -_0806C8E2: - movs r6, #0 - movs r5, #1 -_0806C8E6: - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r7, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C -_0806C90A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806C90C -sub_0806C90C: @ 0x0806C90C - push {lr} - movs r2, #0 - str r2, [r1, #0x14] - ldr r3, _0806C924 @ =gUnk_08113A8C - ldrb r2, [r0, #0xb] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806C924: .4byte gUnk_08113A8C - - thumb_func_start sub_0806C928 -sub_0806C928: @ 0x0806C928 - push {lr} - ldr r1, _0806C93C @ =gUnk_02002A40 - ldrb r1, [r1, #8] - lsls r1, r1, #3 - ldr r2, _0806C940 @ =gUnk_08113ABC - adds r1, r1, r2 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806C93C: .4byte gUnk_02002A40 -_0806C940: .4byte gUnk_08113ABC - - thumb_func_start sub_0806C944 -sub_0806C944: @ 0x0806C944 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - cmp r0, #0 - bne _0806C956 - movs r1, #0 - b _0806C964 -_0806C956: - movs r0, #0x63 - bl sub_0807CBD0 - movs r1, #2 - cmp r0, #0 - beq _0806C964 - movs r1, #1 -_0806C964: - ldr r0, _0806C974 @ =gUnk_08113B0C - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_0806C974: .4byte gUnk_08113B0C - - thumb_func_start sub_0806C978 -sub_0806C978: @ 0x0806C978 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _0806C998 @ =gUnk_08113B12 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_0806C998: .4byte gUnk_08113B12 - - thumb_func_start sub_0806C99C -sub_0806C99C: @ 0x0806C99C - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - asrs r4, r1, #0x1f - movs r0, #2 - ands r4, r0 - movs r0, #0x63 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806C9BC - adds r4, #1 -_0806C9BC: - ldr r0, _0806C9CC @ =gUnk_08113B16 - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806C9CC: .4byte gUnk_08113B16 - - thumb_func_start sub_0806C9D0 -sub_0806C9D0: @ 0x0806C9D0 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - movs r0, #0x64 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806C9E2 - movs r4, #1 -_0806C9E2: - ldr r0, _0806C9F4 @ =gUnk_08113B1E - lsls r1, r4, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r5, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806C9F4: .4byte gUnk_08113B1E - - thumb_func_start sub_0806C9F8 -sub_0806C9F8: @ 0x0806C9F8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - ldr r0, _0806CA18 @ =gUnk_08113B22 - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, pc} - .align 2, 0 -_0806CA18: .4byte gUnk_08113B22 - - thumb_func_start sub_0806CA1C -sub_0806CA1C: @ 0x0806CA1C - push {lr} - adds r1, r0, #0 - ldr r0, _0806CA28 @ =0x0000251B - bl sub_08056398 - pop {pc} - .align 2, 0 -_0806CA28: .4byte 0x0000251B - - thumb_func_start sub_0806CA2C -sub_0806CA2C: @ 0x0806CA2C - push {lr} - adds r1, r0, #0 - ldr r0, _0806CA38 @ =0x00002527 - bl sub_08056398 - pop {pc} - .align 2, 0 -_0806CA38: .4byte 0x00002527 - - thumb_func_start sub_0806CA3C -sub_0806CA3C: @ 0x0806CA3C - push {lr} - ldr r1, _0806CA48 @ =gUnk_08113B28 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806CA48: .4byte gUnk_08113B28 - - thumb_func_start sub_0806CA4C -sub_0806CA4C: @ 0x0806CA4C - push {lr} - ldr r1, _0806CA58 @ =gUnk_08113B30 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806CA58: .4byte gUnk_08113B30 - - thumb_func_start sub_0806CA5C -sub_0806CA5C: @ 0x0806CA5C - push {r4, lr} - adds r4, r1, #0 - ldr r3, _0806CA8C @ =gUnk_08113B38 - ldrb r1, [r4, #0x18] - adds r2, r1, #1 - strb r2, [r4, #0x18] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r1, r1, r3 - ldrb r1, [r1] - strh r1, [r4, #0x10] - ldrb r0, [r0, #0xb] - cmp r0, #0xa - bne _0806CA7E - movs r0, #0xe8 - bl sub_08004488 -_0806CA7E: - ldrh r0, [r4, #0x10] - cmp r0, #0 - beq _0806CA8A - ldr r1, _0806CA90 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806CA8A: - pop {r4, pc} - .align 2, 0 -_0806CA8C: .4byte gUnk_08113B38 -_0806CA90: .4byte gUnk_02033280 - - thumb_func_start sub_0806CA94 -sub_0806CA94: @ 0x0806CA94 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CAD4 - ldrb r1, [r4, #0xa] - lsls r1, r1, #4 - ldr r0, _0806CAD0 @ =gUnk_08113A1C - adds r1, r1, r0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806CADA - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #6 - bl sub_08004260 - b _0806CADA - .align 2, 0 -_0806CAD0: .4byte gUnk_08113A1C -_0806CAD4: - adds r0, r4, #0 - bl sub_08004274 -_0806CADA: - pop {r4, pc} - - thumb_func_start sub_0806CADC -sub_0806CADC: @ 0x0806CADC - push {lr} - ldr r2, _0806CAF0 @ =gUnk_08113D8C - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806CAF0: .4byte gUnk_08113D8C - - thumb_func_start sub_0806CAF4 -sub_0806CAF4: @ 0x0806CAF4 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806CB66 - adds r0, #1 - strb r0, [r5, #0xc] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0x4a - movs r1, #1 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806CB2C - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAD8 -_0806CB2C: - movs r0, #0x4a - movs r1, #2 - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806CB4E - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 -_0806CB4E: - adds r0, r5, #0 - bl sub_0807DD64 - adds r0, r5, #0 - bl sub_08078778 - ldr r3, _0806CB7C @ =gUnk_08113D84 - ldrb r2, [r3, #4] - adds r0, r5, #0 - movs r1, #1 - bl sub_08078850 -_0806CB66: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - adds r0, r5, #0 - bl sub_08004274 - pop {r4, r5, pc} - .align 2, 0 -_0806CB7C: .4byte gUnk_08113D84 - - thumb_func_start sub_0806CB80 -sub_0806CB80: @ 0x0806CB80 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r1, r0, #0 - cmp r1, #0 - bne _0806CB9E - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806CB9E: - ldr r0, [r4, #0x50] - cmp r0, #0 - beq _0806CBB0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - adds r0, #0x21 - strb r0, [r4, #0x1e] -_0806CBB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CBB4 -sub_0806CBB4: @ 0x0806CBB4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CBD6 - adds r0, #1 - strb r0, [r4, #0xc] - movs r0, #2 - strb r0, [r4, #0x14] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0x11 - bl sub_08004260 -_0806CBD6: - adds r0, r4, #0 - bl sub_08004274 - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _0806CC06 - ldrb r0, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r2, r3, #0 - ands r2, r0 - strb r2, [r4, #0x18] - adds r0, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806CC06 - adds r0, r2, #0 - ands r0, r3 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] -_0806CC06: - pop {r4, pc} - - thumb_func_start sub_0806CC08 -sub_0806CC08: @ 0x0806CC08 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #1 - beq _0806CC40 - cmp r0, #1 - bgt _0806CC1C - cmp r0, #0 - beq _0806CC22 - b _0806CCB0 -_0806CC1C: - cmp r0, #2 - beq _0806CC96 - b _0806CCB0 -_0806CC22: - 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 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 -_0806CC40: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806CC80 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806CC7C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #8 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806CCB0 - .align 2, 0 -_0806CC7C: .4byte gLinkEntity -_0806CC80: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_08004274 - b _0806CCB0 -_0806CC96: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806CCB0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_0806CCB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CCB4 -sub_0806CCB4: @ 0x0806CCB4 - push {lr} - adds r2, r1, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - beq _0806CCCA - movs r0, #1 -_0806CCCA: - str r0, [r2, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806CCD0 -sub_0806CCD0: @ 0x0806CCD0 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - adds r0, #0x5b - ldrb r0, [r0] - movs r2, #0x3f - ands r2, r0 - cmp r2, #0 - beq _0806CCF4 - ldrb r1, [r3, #0x14] - lsrs r1, r1, #1 - adds r1, r2, r1 - adds r0, r3, #0 - bl sub_08004260 - movs r0, #1 - str r0, [r4, #0x14] - b _0806CCF6 -_0806CCF4: - str r2, [r4, #0x14] -_0806CCF6: - pop {r4, pc} - - thumb_func_start sub_0806CCF8 -sub_0806CCF8: @ 0x0806CCF8 - push {lr} - movs r1, #0x85 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD04 -sub_0806CD04: @ 0x0806CD04 - push {lr} - ldr r1, _0806CD10 @ =0x0000010B - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD10: .4byte 0x0000010B - - thumb_func_start sub_0806CD14 -sub_0806CD14: @ 0x0806CD14 - push {lr} - movs r1, #0x86 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD20 -sub_0806CD20: @ 0x0806CD20 - push {lr} - ldr r1, _0806CD2C @ =0x0000010D - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD2C: .4byte 0x0000010D - - thumb_func_start sub_0806CD30 -sub_0806CD30: @ 0x0806CD30 - push {lr} - movs r1, #0x87 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD3C -sub_0806CD3C: @ 0x0806CD3C - push {lr} - ldr r1, _0806CD48 @ =0x0000010F - bl sub_0801D2B4 - pop {pc} - .align 2, 0 -_0806CD48: .4byte 0x0000010F - - thumb_func_start sub_0806CD4C -sub_0806CD4C: @ 0x0806CD4C - push {lr} - movs r1, #0x88 - lsls r1, r1, #1 - bl sub_0801D2B4 - pop {pc} - - thumb_func_start sub_0806CD58 -sub_0806CD58: @ 0x0806CD58 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806CD70 -sub_0806CD70: @ 0x0806CD70 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806CD9E - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #6 - bl sub_080042AC - b _0806CDA4 -_0806CD9E: - adds r0, r4, #0 - bl sub_080042B8 -_0806CDA4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CDA8 -sub_0806CDA8: @ 0x0806CDA8 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xc] - cmp r1, #1 - beq _0806CDE8 - cmp r1, #1 - bgt _0806CDBC - cmp r1, #0 - beq _0806CDC2 - b _0806CE58 -_0806CDBC: - cmp r1, #2 - beq _0806CE3E - b _0806CE58 -_0806CDC2: - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r1, [r0] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806CE58 -_0806CDE8: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806CE28 - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806CE24 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r1, #4 - adds r0, r4, #0 - bl sub_080042AC - adds r0, r4, #0 - bl sub_0806F118 - b _0806CE58 - .align 2, 0 -_0806CE24: .4byte gLinkEntity -_0806CE28: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - b _0806CE58 -_0806CE3E: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806CE58 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_080042AC -_0806CE58: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806CE5C -sub_0806CE5C: @ 0x0806CE5C - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08078784 - ldr r3, _0806CE7C @ =gUnk_08113F44 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - pop {r4, pc} - .align 2, 0 -_0806CE7C: .4byte gUnk_08113F44 - - thumb_func_start sub_0806CE80 -sub_0806CE80: @ 0x0806CE80 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806CEB4 @ =gUnk_02002A40 - ldrb r4, [r0, #8] - cmp r4, #5 - bne _0806CED6 - movs r0, #0x46 - bl sub_0807CA84 - cmp r0, #0 - bne _0806CEC0 - movs r0, #0x70 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806CEBC - movs r0, #0x71 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806CEB8 - movs r4, #0xb - movs r0, #0x71 - bl sub_0807CCB4 - b _0806CED6 - .align 2, 0 -_0806CEB4: .4byte gUnk_02002A40 -_0806CEB8: - movs r4, #0xc - b _0806CED6 -_0806CEBC: - movs r4, #0xa - b _0806CED6 -_0806CEC0: - movs r0, #0x89 - bl sub_0807CBD0 - cmp r0, #0 - bne _0806CED4 - movs r4, #0xd - movs r0, #0x89 - bl sub_0807CCB4 - b _0806CED6 -_0806CED4: - movs r4, #0xe -_0806CED6: - lsls r1, r4, #3 - ldr r0, _0806CEE4 @ =gUnk_08113F48 - adds r1, r1, r0 - adds r0, r5, #0 - bl sub_0806F1AC - pop {r4, r5, pc} - .align 2, 0 -_0806CEE4: .4byte gUnk_08113F48 - - thumb_func_start sub_0806CEE8 -sub_0806CEE8: @ 0x0806CEE8 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806CF0E - 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, #8 - bl sub_080042AC - b _0806CF14 -_0806CF0E: - adds r0, r2, #0 - bl sub_080042B8 -_0806CF14: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806CF18 -sub_0806CF18: @ 0x0806CF18 - push {lr} - ldr r2, _0806CF2C @ =gUnk_081140D4 - ldrb r1, [r0, #0xa] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806CF2C: .4byte gUnk_081140D4 - - thumb_func_start sub_0806CF30 -sub_0806CF30: @ 0x0806CF30 - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806CF5E - movs r0, #1 - strb r0, [r5, #0xc] - strb r0, [r5, #0xd] - ldrh r1, [r5, #0x2e] - adds r0, r5, #0 - adds r0, #0x68 - strh r1, [r0] - adds r0, r5, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r5, #0 - bl sub_0806D0B0 - adds r0, r5, #0 - bl sub_0807DD64 - b _0806CF6C -_0806CF5E: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 -_0806CF6C: - ldrb r0, [r5, #0xd] - cmp r0, #2 - beq _0806CFD4 - cmp r0, #2 - bgt _0806D000 - cmp r0, #0 - blt _0806D000 - ldr r0, _0806CFCC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0806D000 - ldr r0, _0806CFD0 @ =gLinkEntity - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldrh r3, [r5, #0x2e] - movs r4, #0x2e - ldrsh r1, [r5, r4] - adds r4, r0, #0 - cmp r2, r1 - bge _0806CFA8 - adds r0, r5, #0 - adds r0, #0x68 - ldrh r0, [r0] - subs r0, #0x20 - cmp r0, r1 - bge _0806CFA8 - subs r0, r3, #1 - strh r0, [r5, #0x2e] -_0806CFA8: - movs r3, #0x2e - ldrsh r1, [r4, r3] - ldrh r2, [r5, #0x2e] - movs r4, #0x2e - ldrsh r0, [r5, r4] - cmp r1, r0 - ble _0806D000 - adds r0, r5, #0 - adds r0, #0x68 - ldrh r0, [r0] - adds r0, #0x20 - movs r3, #0x2e - ldrsh r1, [r5, r3] - cmp r0, r1 - ble _0806D000 - adds r0, r2, #1 - strh r0, [r5, #0x2e] - b _0806D000 - .align 2, 0 -_0806CFCC: .4byte gUnk_030010A0 -_0806CFD0: .4byte gLinkEntity -_0806CFD4: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D000 - bl sub_08000E50 - adds r4, r0, #0 - ldr r1, _0806D008 @ =gUnk_081140CC - movs r0, #3 - ands r0, r4 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - bl sub_080A3268 - movs r0, #7 - ands r4, r0 - lsls r4, r4, #4 - adds r4, #0x80 - strb r4, [r5, #0xe] -_0806D000: - adds r0, r5, #0 - bl sub_0806D02C - pop {r4, r5, pc} - .align 2, 0 -_0806D008: .4byte gUnk_081140CC - - thumb_func_start sub_0806D00C -sub_0806D00C: @ 0x0806D00C - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #0 - bl sub_0805EB2C - cmp r0, #0 - beq _0806D028 - str r0, [r4, #0x50] -_0806D028: - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_0806D02C -sub_0806D02C: @ 0x0806D02C - push {lr} - bl sub_0806D164 - ldr r2, _0806D0A8 @ =gUnk_03000F50 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #7 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2] - adds r1, r2, #0 - adds r1, #0x60 - ldr r0, _0806D0AC @ =0x00003F3F - strh r0, [r1] - adds r1, #2 - movs r0, #0x3d - strh r0, [r1] - movs r1, #0x16 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - movs r3, #0x80 - lsls r3, r3, #1 - adds r1, r0, r3 - cmp r0, #0 - bge _0806D060 - movs r0, #0 -_0806D060: - cmp r0, #0xf0 - ble _0806D066 - movs r0, #0xf0 -_0806D066: - cmp r1, #0 - bge _0806D06C - movs r1, #0 -_0806D06C: - cmp r1, #0xf0 - ble _0806D072 - movs r1, #0xf0 -_0806D072: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x5a - strh r0, [r1] - movs r1, #0x18 - ldrsh r0, [r2, r1] - rsbs r0, r0, #0 - adds r1, r0, r3 - cmp r0, #0 - bge _0806D08A - movs r0, #0 -_0806D08A: - cmp r0, #0xa0 - ble _0806D090 - movs r0, #0xa0 -_0806D090: - cmp r1, #0 - bge _0806D096 - movs r1, #0 -_0806D096: - cmp r1, #0xa0 - ble _0806D09C - movs r1, #0xa0 -_0806D09C: - lsls r0, r0, #8 - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x5e - strh r0, [r1] - pop {pc} - .align 2, 0 -_0806D0A8: .4byte gUnk_03000F50 -_0806D0AC: .4byte 0x00003F3F - - thumb_func_start sub_0806D0B0 -sub_0806D0B0: @ 0x0806D0B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _0806D0E8 @ =gUnk_0200B650 - movs r1, #0 - str r1, [r0] - movs r0, #0x30 - bl sub_0801D7EC - bl sub_0806D110 - ldr r5, _0806D0EC @ =gUnk_02002F00 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_0801D630 - cmp r4, #0 - beq _0806D0DA - adds r0, r4, #0 - bl sub_0806D164 -_0806D0DA: - ldr r0, _0806D0F0 @ =gUnk_03000F50 - ldr r1, _0806D0F4 @ =0x00001D47 - strh r1, [r0, #0x14] - str r5, [r0, #0x1c] - movs r1, #1 - strh r1, [r0, #0x1a] - pop {r4, r5, pc} - .align 2, 0 -_0806D0E8: .4byte gUnk_0200B650 -_0806D0EC: .4byte gUnk_02002F00 -_0806D0F0: .4byte gUnk_03000F50 -_0806D0F4: .4byte 0x00001D47 - - thumb_func_start sub_0806D0F8 -sub_0806D0F8: @ 0x0806D0F8 - push {lr} - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - bl sub_0805EB00 - cmp r0, #0 - beq _0806D10C - bl sub_0806D0B0 -_0806D10C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D110 -sub_0806D110: @ 0x0806D110 - push {r4, r5, lr} - ldr r4, _0806D134 @ =gUnk_02002F00 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806D138 - movs r0, #0x80 - lsls r0, r0, #4 - adds r4, r4, r0 - adds r5, #0x40 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806D138 - pop {r4, r5, pc} - .align 2, 0 -_0806D134: .4byte gUnk_02002F00 - - thumb_func_start sub_0806D138 -sub_0806D138: @ 0x0806D138 - push {r4, r5, r6, lr} - adds r3, r0, #0 - movs r4, #0 - ldr r2, _0806D15C @ =0x040000D4 - ldr r6, _0806D160 @ =0x80000020 - movs r5, #0x80 - lsls r5, r5, #1 -_0806D146: - str r3, [r2] - str r1, [r2, #4] - str r6, [r2, #8] - ldr r0, [r2, #8] - adds r4, #1 - adds r3, #0x40 - adds r1, r1, r5 - cmp r4, #0x1f - bls _0806D146 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D15C: .4byte 0x040000D4 -_0806D160: .4byte 0x80000020 - - thumb_func_start sub_0806D164 -sub_0806D164: @ 0x0806D164 - push {r4, r5, r6, r7, lr} - ldr r5, _0806D1B8 @ =gUnk_03000BF0 - movs r1, #0xa - ldrsh r2, [r5, r1] - movs r3, #0x2e - ldrsh r1, [r0, r3] - subs r2, r2, r1 - adds r2, #0xa0 - ldr r4, _0806D1BC @ =gUnk_03000F50 - movs r3, #0xf - adds r1, r2, #0 - ands r1, r3 - strh r1, [r4, #0x16] - ldrh r1, [r5, #0xc] - ldrh r0, [r0, #0x32] - subs r1, r1, r0 - adds r1, #0xb0 - strh r1, [r4, #0x18] - ldr r3, _0806D1C0 @ =gUnk_02006F00 - ldr r0, _0806D1C4 @ =0xFFFFC000 - adds r6, r3, r0 - movs r5, #0x20 - lsrs r2, r2, #4 - lsls r2, r2, #2 - adds r3, r2, r3 - adds r7, r4, #0 - ldr r1, _0806D1C8 @ =0x040000D4 - ldr r4, _0806D1CC @ =0x80000020 - movs r2, #0x80 - lsls r2, r2, #1 -_0806D1A0: - str r3, [r1] - str r6, [r1, #4] - str r4, [r1, #8] - ldr r0, [r1, #8] - adds r3, r3, r2 - adds r6, #0x40 - subs r5, #1 - cmp r5, #0 - bne _0806D1A0 - movs r0, #1 - strh r0, [r7, #0x1a] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806D1B8: .4byte gUnk_03000BF0 -_0806D1BC: .4byte gUnk_03000F50 -_0806D1C0: .4byte gUnk_02006F00 -_0806D1C4: .4byte 0xFFFFC000 -_0806D1C8: .4byte 0x040000D4 -_0806D1CC: .4byte 0x80000020 - - thumb_func_start sub_0806D1D0 -sub_0806D1D0: @ 0x0806D1D0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #0 - bne _0806D21A - bl sub_0806D00C - cmp r0, #0 - bne _0806D1E6 - bl sub_0805E780 -_0806D1E6: - movs r0, #1 - strb r0, [r4, #0xc] - 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, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r5, [r4, #0x1e] - movs r0, #0x1e - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D21A: - ldrb r0, [r4, #0xd] - cmp r0, #1 - beq _0806D25A - cmp r0, #1 - ble _0806D228 - cmp r0, #2 - beq _0806D25E -_0806D228: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - movs r5, #0xff - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D24A - bl sub_08000E50 - movs r1, #0x7f - ands r0, r1 - adds r0, #0x30 - strb r0, [r4, #0xe] - movs r0, #8 - strb r0, [r4, #0xf] - movs r0, #1 - strb r0, [r4, #0x1e] -_0806D24A: - ldrb r0, [r4, #0xf] - cmp r0, #0 - beq _0806D268 - subs r0, #1 - strb r0, [r4, #0xf] - ands r0, r5 - cmp r0, #0 - bne _0806D268 -_0806D25A: - strb r0, [r4, #0x1e] - b _0806D268 -_0806D25E: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0806D268: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, r5, pc} - - thumb_func_start sub_0806D274 -sub_0806D274: @ 0x0806D274 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D2CA - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D28C - bl sub_0805E780 -_0806D28C: - movs r0, #1 - strb r0, [r4, #0xc] - 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] - movs r0, #2 - strb r0, [r4, #0x1e] - movs r0, #8 - strb r0, [r4, #0xe] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - movs r0, #0x4c - movs r1, #3 - movs r2, #0 - bl sub_0806ED50 - cmp r0, #0 - beq _0806D2CA - str r4, [r0, #0x54] -_0806D2CA: - ldrb r0, [r4, #0xd] - cmp r0, #4 - bhi _0806D2F4 - lsls r0, r0, #2 - ldr r1, _0806D2DC @ =_0806D2E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806D2DC: .4byte _0806D2E0 -_0806D2E0: @ jump table - .4byte _0806D2F4 @ case 0 - .4byte _0806D2F4 @ case 1 - .4byte _0806D31C @ case 2 - .4byte _0806D334 @ case 3 - .4byte _0806D338 @ case 4 -_0806D2F4: - ldr r0, _0806D318 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0806D338 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D33C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - b _0806D33A - .align 2, 0 -_0806D318: .4byte gUnk_02000050 -_0806D31C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D33C - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - movs r1, #1 - eors r0, r1 - b _0806D33A -_0806D334: - movs r0, #4 - b _0806D33A -_0806D338: - movs r0, #2 -_0806D33A: - strb r0, [r4, #0x1e] -_0806D33C: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, pc} - - thumb_func_start sub_0806D348 -sub_0806D348: @ 0x0806D348 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D39A - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D360 - bl sub_0805E780 -_0806D360: - movs r0, #1 - strb r0, [r4, #0xc] - 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 r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #5 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D39A: - ldr r0, [r4, #0x54] - ldrb r0, [r0, #0x1e] - cmp r0, #4 - bne _0806D3AA - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - b _0806D3B2 -_0806D3AA: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 -_0806D3B2: - strb r0, [r4, #0x18] - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r0, [r0, #0x32] - strh r0, [r4, #0x32] - pop {r4, pc} - - thumb_func_start sub_0806D3C0 -sub_0806D3C0: @ 0x0806D3C0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D3F4 - adds r0, r4, #0 - bl sub_0806D00C - cmp r0, #0 - bne _0806D3D8 - bl sub_0805E780 -_0806D3D8: - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806D3F0 @ =gUnk_080FD180 - str r0, [r4, #0x48] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD64 - b _0806D408 - .align 2, 0 -_0806D3F0: .4byte gUnk_080FD180 -_0806D3F4: - ldr r0, [r4, #0x50] - ldrh r0, [r0, #0x2e] - strh r0, [r4, #0x2e] - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 -_0806D408: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D40C -sub_0806D40C: @ 0x0806D40C - push {lr} - ldrb r1, [r0, #0x18] - movs r2, #0x40 - orrs r1, r2 - strb r1, [r0, #0x18] - bl sub_0806D41C - pop {pc} - - thumb_func_start sub_0806D41C -sub_0806D41C: @ 0x0806D41C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D45E - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #6 - strb r0, [r4, #0x1e] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #1 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #3 - bl sub_0806D4C0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - b _0806D46C -_0806D45E: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 -_0806D46C: - ldr r0, _0806D4A8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0806D4BE - movs r1, #0x2e - ldrsh r0, [r4, r1] - subs r0, #0x20 - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x40 - movs r3, #0x40 - bl sub_0806FBFC - cmp r0, #0 - beq _0806D4AC - adds r2, r4, #0 - adds r2, #0x63 - ldrb r3, [r2] - movs r1, #0 - ldrsb r1, [r2, r1] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - ble _0806D4BE - subs r0, r3, #1 - strb r0, [r2] - b _0806D4BE - .align 2, 0 -_0806D4A8: .4byte gUnk_030010A0 -_0806D4AC: - adds r1, r4, #0 - adds r1, #0x63 - ldrb r2, [r1] - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - bge _0806D4BE - adds r0, r2, #1 - strb r0, [r1] -_0806D4BE: - pop {r4, pc} - - thumb_func_start sub_0806D4C0 -sub_0806D4C0: @ 0x0806D4C0 - push {r4, r5, lr} - adds r5, r0, #0 - adds r1, #6 - movs r0, #0x4c - movs r2, #0 - bl sub_0806ED50 - adds r4, r0, #0 - cmp r4, #0 - beq _0806D4EE - str r5, [r4, #0x50] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 -_0806D4EE: - pop {r4, r5, pc} - - thumb_func_start sub_0806D4F0 -sub_0806D4F0: @ 0x0806D4F0 - push {lr} - movs r1, #0 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D4FC -sub_0806D4FC: @ 0x0806D4FC - push {lr} - movs r1, #1 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D508 -sub_0806D508: @ 0x0806D508 - push {lr} - movs r1, #2 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D514 -sub_0806D514: @ 0x0806D514 - push {lr} - movs r1, #3 - bl sub_0806D520 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D520 -sub_0806D520: @ 0x0806D520 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D540 - movs r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806D5B0 @ =gUnk_08114100 - adds r0, r3, r0 - ldrb r0, [r0] - adds r0, #6 - strb r0, [r4, #0xf] - strb r0, [r4, #0x1e] - movs r0, #8 - strb r0, [r4, #0xe] -_0806D540: - ldr r0, [r4, #0x50] - ldrh r1, [r0, #0x2e] - strh r1, [r4, #0x2e] - ldrh r1, [r0, #0x32] - strh r1, [r4, #0x32] - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x62 - strb r0, [r1] - ldr r0, [r4, #0x50] - adds r0, #0x63 - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] - ldr r0, [r4, #0x50] - ldrb r1, [r0, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806D590 - movs r1, #0x2e - ldrsh r0, [r4, r1] - lsls r1, r3, #4 - subs r0, r0, r1 - adds r0, #0xc - movs r2, #0x32 - ldrsh r1, [r4, r2] - movs r2, #0x18 - movs r3, #0x40 - bl sub_0806FBFC - cmp r0, #0 - beq _0806D5B4 -_0806D590: - ldrb r1, [r4, #0x1e] - ldrb r0, [r4, #0xf] - adds r0, #2 - cmp r1, r0 - bge _0806D5D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D5D0 - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0x1e] - adds r0, #1 - b _0806D5CE - .align 2, 0 -_0806D5B0: .4byte gUnk_08114100 -_0806D5B4: - ldrb r1, [r4, #0x1e] - ldrb r0, [r4, #0xf] - cmp r1, r0 - bls _0806D5D0 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806D5D0 - movs r0, #8 - strb r0, [r4, #0xe] - subs r0, r1, #1 -_0806D5CE: - strb r0, [r4, #0x1e] -_0806D5D0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D5D4 -sub_0806D5D4: @ 0x0806D5D4 - push {lr} - bl sub_08053500 - movs r0, #0xd - bl sub_0805436C - adds r1, r0, #0 - cmp r1, #2 - beq _0806D5F0 - ldr r0, _0806D5FC @ =gUnk_02002A40 - adds r0, #0xb4 - adds r0, r1, r0 - movs r1, #0 - strb r1, [r0] -_0806D5F0: - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - pop {pc} - .align 2, 0 -_0806D5FC: .4byte gUnk_02002A40 - - thumb_func_start sub_0806D600 -sub_0806D600: @ 0x0806D600 - push {lr} - movs r2, #0 - ldr r0, _0806D618 @ =gUnk_02002A40 - ldr r3, _0806D61C @ =0x00000494 - adds r0, r0, r3 - ldr r0, [r0] - cmp r0, #0 - bne _0806D612 - movs r2, #1 -_0806D612: - str r2, [r1, #0x14] - pop {pc} - .align 2, 0 -_0806D618: .4byte gUnk_02002A40 -_0806D61C: .4byte 0x00000494 - - thumb_func_start sub_0806D620 -sub_0806D620: @ 0x0806D620 - push {lr} - movs r0, #0xd - movs r1, #0 - bl sub_0807CAA0 - movs r0, #0xe - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D638 -sub_0806D638: @ 0x0806D638 - ldrh r1, [r0, #0x32] - subs r1, #0x20 - strh r1, [r0, #0x32] - bx lr - - thumb_func_start sub_0806D640 -sub_0806D640: @ 0x0806D640 - ldrh r1, [r0, #0x32] - adds r1, #0x20 - movs r2, #0 - strh r1, [r0, #0x32] - adds r0, #0x39 - strb r2, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D650 -sub_0806D650: @ 0x0806D650 - movs r1, #2 - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D658 -sub_0806D658: @ 0x0806D658 - ldr r1, [r1, #4] - strb r1, [r0, #0xd] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D660 -sub_0806D660: @ 0x0806D660 - ldrb r1, [r0, #0x1b] - movs r2, #0xc0 - orrs r1, r2 - strb r1, [r0, #0x1b] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D66C -sub_0806D66C: @ 0x0806D66C - ldrb r2, [r0, #0x1b] - movs r1, #0x3f - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - strb r1, [r0, #0x1b] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D67C -sub_0806D67C: @ 0x0806D67C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldr r4, _0806D6CC @ =gUnk_08114104 - movs r0, #0 - ldrsb r0, [r4, r0] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0806D6CA - adds r6, r1, #0 -_0806D690: - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r5, #0 - movs r2, #0x40 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0806D6C0 - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x2e] - adds r0, r0, r2 - strh r0, [r1, #0x2e] - movs r0, #2 - ldrsb r0, [r4, r0] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] - ldrb r0, [r4, #3] - strb r0, [r1, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #0x24] -_0806D6C0: - adds r4, #4 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, r6 - bne _0806D690 -_0806D6CA: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806D6CC: .4byte gUnk_08114104 - - thumb_func_start sub_0806D6D0 -sub_0806D6D0: @ 0x0806D6D0 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D6EE - movs r0, #2 - strb r0, [r1, #0xd] -_0806D6EE: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D706 - movs r0, #1 - strb r0, [r1, #0xd] -_0806D706: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D70C -sub_0806D70C: @ 0x0806D70C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r2, r0, #0 - cmp r2, #0 - beq _0806D728 - strb r4, [r2, #0xd] -_0806D728: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r2, r0, #0 - cmp r2, #0 - beq _0806D746 - strb r4, [r2, #0xd] - ldrb r0, [r2, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x18] -_0806D746: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D74C -sub_0806D74C: @ 0x0806D74C - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D76A - movs r0, #3 - strb r0, [r1, #0xd] -_0806D76A: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D782 - movs r0, #2 - strb r0, [r1, #0xd] -_0806D782: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D788 -sub_0806D788: @ 0x0806D788 - push {r4, lr} - sub sp, #4 - movs r4, #0 - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D7A6 - movs r0, #4 - strb r0, [r1, #0xd] -_0806D7A6: - str r4, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #1 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D7BE - movs r0, #1 - strb r0, [r1, #0xd] -_0806D7BE: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D7C4 -sub_0806D7C4: @ 0x0806D7C4 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _0806D800 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - movs r2, #0 - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x18 - strh r0, [r4, #0x32] - str r2, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - cmp r0, #0 - beq _0806D7FC - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC -_0806D7FC: - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0806D800: .4byte gLinkEntity - - thumb_func_start sub_0806D804 -sub_0806D804: @ 0x0806D804 - push {r4, r5, lr} - sub sp, #4 - adds r4, r0, #0 - adds r5, r1, #0 - movs r0, #0 - str r0, [sp] - movs r0, #7 - movs r1, #0x4c - movs r2, #7 - movs r3, #2 - bl sub_0805EB2C - adds r1, r0, #0 - cmp r1, #0 - beq _0806D83A - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] -_0806D83A: - ldr r0, _0806D854 @ =gLinkEntity - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - subs r3, #0x10 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807DEDC - add sp, #4 - pop {r4, r5, pc} - .align 2, 0 -_0806D854: .4byte gLinkEntity - - thumb_func_start sub_0806D858 -sub_0806D858: @ 0x0806D858 - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #8 - orrs r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 - - thumb_func_start sub_0806D86C -sub_0806D86C: @ 0x0806D86C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806D888 - adds r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 -_0806D888: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r4, #0 - bl sub_0807DDE4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806D8A0 -sub_0806D8A0: @ 0x0806D8A0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r3, r1, #0 - movs r2, #0 - movs r0, #8 - strb r0, [r3, #0x19] - ldr r0, [r3, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r3, #8] - str r2, [r3, #0x14] - movs r2, #0x10 - ldrb r0, [r4, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _0806D8C2 - rsbs r2, r2, #0 -_0806D8C2: - ldr r1, _0806D900 @ =gLinkEntity - movs r5, #0x2e - ldrsh r0, [r1, r5] - adds r2, r2, r0 - movs r0, #0x32 - ldrsh r1, [r1, r0] - adds r1, #2 - strh r2, [r3, #0x1e] - strh r1, [r3, #0x22] - movs r3, #0x2e - ldrsh r0, [r4, r3] - subs r2, r2, r0 - movs r5, #0x32 - ldrsh r0, [r4, r5] - subs r1, r1, r0 - adds r0, r2, #0 - bl sub_080045DA - strb r0, [r4, #0x15] - ldrb r2, [r4, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _0806D904 @ =gUnk_08114134 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1c - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r4, #0x14] - pop {r4, r5, pc} - .align 2, 0 -_0806D900: .4byte gLinkEntity -_0806D904: .4byte gUnk_08114134 - - thumb_func_start sub_0806D908 -sub_0806D908: @ 0x0806D908 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - ldr r3, _0806D93C @ =gLinkEntity - movs r5, #0x2e - ldrsh r2, [r3, r5] - movs r5, #0x32 - ldrsh r3, [r3, r5] - bl sub_080045D4 - strb r0, [r4, #0x15] - ldrb r2, [r4, #0x14] - movs r1, #0x80 - ands r1, r2 - ldr r2, _0806D940 @ =gUnk_08114144 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x19 - adds r0, r0, r2 - ldrb r0, [r0] - orrs r1, r0 - strb r1, [r4, #0x14] - pop {r4, r5, pc} - .align 2, 0 -_0806D93C: .4byte gLinkEntity -_0806D940: .4byte gUnk_08114144 - - thumb_func_start sub_0806D944 -sub_0806D944: @ 0x0806D944 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0x18] - movs r3, #0x41 - rsbs r3, r3, #0 - ands r3, r0 - strb r3, [r2, #0x18] - ldr r0, _0806D968 @ =gLinkEntity - ldr r1, [r2, #0x2c] - ldr r0, [r0, #0x2c] - cmp r1, r0 - bgt _0806D964 - movs r1, #0x40 - adds r0, r3, #0 - orrs r0, r1 - strb r0, [r2, #0x18] -_0806D964: - pop {pc} - .align 2, 0 -_0806D968: .4byte gLinkEntity - - thumb_func_start sub_0806D96C -sub_0806D96C: @ 0x0806D96C - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x42 - movs r2, #0 - bl CreateFX - adds r2, r0, #0 - cmp r2, #0 - beq _0806D99C - adds r3, r2, #0 - adds r3, #0x29 - ldrb r1, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r3] - ldr r3, _0806D9A0 @ =0xFFE80000 - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #0 - bl sub_0806FA48 -_0806D99C: - pop {r4, pc} - .align 2, 0 -_0806D9A0: .4byte 0xFFE80000 - - thumb_func_start sub_0806D9A4 -sub_0806D9A4: @ 0x0806D9A4 - push {lr} - ldr r1, _0806D9BC @ =gLinkEntity - ldr r2, [r0, #0x2c] - ldr r0, [r1, #0x2c] - adds r3, r1, #0 - cmp r2, r0 - bgt _0806D9C0 - ldrb r1, [r3, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0806D9C6 - .align 2, 0 -_0806D9BC: .4byte gLinkEntity -_0806D9C0: - ldrb r0, [r3, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806D9C6: - strb r0, [r3, #0x18] - movs r0, #4 - strb r0, [r3, #0x14] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806D9D0 -sub_0806D9D0: @ 0x0806D9D0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806D9F8 - movs r0, #1 - strb r0, [r2, #0xc] - ldrb r1, [r2, #0x18] - subs r0, #5 - ands r0, r1 - strb r0, [r2, #0x18] - ldr r0, _0806D9F4 @ =gUnk_080FD170 - str r0, [r2, #0x48] - adds r0, r2, #0 - bl sub_0807DD50 - b _0806DA00 - .align 2, 0 -_0806D9F4: .4byte gUnk_080FD170 -_0806D9F8: - adds r0, r2, #0 - movs r1, #0 - bl sub_0807DD94 -_0806DA00: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806DA04 -sub_0806DA04: @ 0x0806DA04 - push {lr} - ldr r3, [r1, #4] - lsls r3, r3, #3 - ldr r1, _0806DA18 @ =gUnk_0811415C - adds r3, r3, r1 - ldrb r2, [r3, #4] - movs r1, #1 - bl sub_08078850 - pop {pc} - .align 2, 0 -_0806DA18: .4byte gUnk_0811415C - - thumb_func_start sub_0806DA1C -sub_0806DA1C: @ 0x0806DA1C - push {lr} - ldr r3, _0806DA34 @ =gUnk_081141A4 - ldr r2, [r1, #4] - lsls r0, r2, #2 - adds r0, r0, r3 - ldr r0, [r0] - ldr r1, _0806DA38 @ =gUnk_081141E4 - adds r2, r2, r1 - ldrb r1, [r2] - bl sub_0808091C - pop {pc} - .align 2, 0 -_0806DA34: .4byte gUnk_081141A4 -_0806DA38: .4byte gUnk_081141E4 - - thumb_func_start sub_0806DA3C -sub_0806DA3C: @ 0x0806DA3C - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xa] - subs r0, #1 - cmp r0, #0xa - bhi _0806DA84 - lsls r0, r0, #2 - ldr r1, _0806DA54 @ =_0806DA58 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DA54: .4byte _0806DA58 -_0806DA58: @ jump table - .4byte _0806DA88 @ case 0 - .4byte _0806DA8C @ case 1 - .4byte _0806DA90 @ case 2 - .4byte _0806DA94 @ case 3 - .4byte _0806DA98 @ case 4 - .4byte _0806DAA0 @ case 5 - .4byte _0806DAA0 @ case 6 - .4byte _0806DAA0 @ case 7 - .4byte _0806DAA0 @ case 8 - .4byte _0806DAA0 @ case 9 - .4byte _0806DA9C @ case 10 -_0806DA84: - movs r0, #0 - b _0806DAA6 -_0806DA88: - movs r0, #1 - b _0806DAA6 -_0806DA8C: - movs r0, #2 - b _0806DAA6 -_0806DA90: - movs r0, #3 - b _0806DAA6 -_0806DA94: - movs r0, #4 - b _0806DAA6 -_0806DA98: - movs r0, #5 - b _0806DAA6 -_0806DA9C: - movs r0, #9 - b _0806DAA6 -_0806DAA0: - adds r0, r2, #0 - bl sub_0801E99C -_0806DAA6: - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - pop {pc} - - thumb_func_start sub_0806DAAC -sub_0806DAAC: @ 0x0806DAAC - push {r4, lr} - adds r4, r1, #0 - bl sub_0806DA3C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - bl sub_0801E7F4 - str r0, [r4, #0x14] - ldr r2, _0806DACC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0806DACC: .4byte gUnk_02033280 - - thumb_func_start sub_0806DAD0 -sub_0806DAD0: @ 0x0806DAD0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806DA3C - adds r1, r0, #0 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - adds r0, r4, #0 - bl sub_08078790 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DAE8 -sub_0806DAE8: @ 0x0806DAE8 - push {lr} - ldrb r0, [r0, #0xa] - subs r0, #1 - cmp r0, #4 - bhi _0806DB3A - lsls r0, r0, #2 - ldr r1, _0806DAFC @ =_0806DB00 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DAFC: .4byte _0806DB00 -_0806DB00: @ jump table - .4byte _0806DB14 @ case 0 - .4byte _0806DB1C @ case 1 - .4byte _0806DB24 @ case 2 - .4byte _0806DB2C @ case 3 - .4byte _0806DB34 @ case 4 -_0806DB14: - movs r0, #0xee - bl sub_0807CCB4 - b _0806DB3A -_0806DB1C: - movs r0, #0xef - bl sub_0807CCB4 - b _0806DB3A -_0806DB24: - movs r0, #0xf0 - bl sub_0807CCB4 - b _0806DB3A -_0806DB2C: - movs r0, #0xf1 - bl sub_0807CCB4 - b _0806DB3A -_0806DB34: - movs r0, #0xf2 - bl sub_0807CCB4 -_0806DB3A: - movs r0, #0xcd - bl sub_080A3268 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806DB44 -sub_0806DB44: @ 0x0806DB44 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0xee - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xef - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf0 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf1 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #0xf2 - bl sub_0807CBD0 - cmp r0, #0 - beq _0806DB82 - movs r0, #1 - str r0, [r4, #0x14] -_0806DB82: - pop {r4, pc} - - thumb_func_start sub_0806DB84 -sub_0806DB84: @ 0x0806DB84 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _0806DBE4 @ =gUnk_08114154 - str r0, [r5, #0x48] - movs r0, #0x3e - movs r1, #4 - movs r2, #0 - bl sub_080A2960 - adds r4, r0, #0 - cmp r4, #0 - beq _0806DBB6 - ldr r2, _0806DBE8 @ =0xFFF80000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl sub_0806FA48 - ldr r1, _0806DBEC @ =gUnk_08016030 - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0806DBB6: - movs r0, #0x3e - movs r1, #5 - movs r2, #0 - bl sub_080A2960 - adds r4, r0, #0 - cmp r4, #0 - beq _0806DBE2 - movs r2, #0x80 - lsls r2, r2, #0xc - adds r0, r5, #0 - adds r1, r4, #0 - movs r3, #0 - bl sub_0806FA48 - ldr r1, _0806DBF0 @ =gUnk_0801606C - adds r0, r4, #0 - bl sub_0807DAD0 - adds r1, r4, #0 - adds r1, #0x84 - str r0, [r1] -_0806DBE2: - pop {r4, r5, pc} - .align 2, 0 -_0806DBE4: .4byte gUnk_08114154 -_0806DBE8: .4byte 0xFFF80000 -_0806DBEC: .4byte gUnk_08016030 -_0806DBF0: .4byte gUnk_0801606C - - thumb_func_start sub_0806DBF4 -sub_0806DBF4: @ 0x0806DBF4 - push {r4, lr} - adds r4, r0, #0 - cmp r4, #1 - blo _0806DC36 - cmp r4, #4 - bls _0806DC04 - cmp r4, #6 - bne _0806DC36 -_0806DC04: - movs r4, #1 - movs r0, #2 - bl sub_0807CA84 - cmp r0, #0 - beq _0806DC12 - movs r4, #2 -_0806DC12: - movs r0, #3 - bl sub_0807CA84 - cmp r0, #0 - beq _0806DC1E - movs r4, #3 -_0806DC1E: - movs r0, #4 - bl sub_0807CA84 - cmp r0, #0 - beq _0806DC2A - movs r4, #4 -_0806DC2A: - movs r0, #6 - bl sub_0807CA84 - cmp r0, #0 - beq _0806DC36 - movs r4, #6 -_0806DC36: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DC3C -sub_0806DC3C: @ 0x0806DC3C - ldr r2, _0806DC54 @ =gUnk_02002A40 - adds r1, r2, #0 - adds r1, #0xb4 - ldrb r3, [r1] - adds r1, r0, #0 - adds r1, #0x68 - strb r3, [r1] - adds r2, #0xb5 - ldrb r1, [r2] - adds r0, #0x69 - strb r1, [r0] - bx lr - .align 2, 0 -_0806DC54: .4byte gUnk_02002A40 - - thumb_func_start sub_0806DC58 -sub_0806DC58: @ 0x0806DC58 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x68 - ldrb r0, [r0] - bl sub_0806DBF4 - movs r1, #0 - bl sub_08054414 - adds r4, #0x69 - ldrb r0, [r4] - bl sub_0806DBF4 - movs r1, #1 - bl sub_08054414 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DC7C -sub_0806DC7C: @ 0x0806DC7C - push {r4, lr} - ldr r4, _0806DC84 @ =gUnk_081141F4 - b _0806DC94 - .align 2, 0 -_0806DC84: .4byte gUnk_081141F4 -_0806DC88: - ldrh r1, [r4] - adds r4, #2 - ldr r0, _0806DC9C @ =0x00004072 - movs r2, #1 - bl sub_0807B314 -_0806DC94: - ldrh r0, [r4] - cmp r0, #0 - bne _0806DC88 - pop {r4, pc} - .align 2, 0 -_0806DC9C: .4byte 0x00004072 - - thumb_func_start sub_0806DCA0 -sub_0806DCA0: @ 0x0806DCA0 - push {r4, lr} - ldr r4, _0806DCA8 @ =gUnk_081141F4 - b _0806DCB6 - .align 2, 0 -_0806DCA8: .4byte gUnk_081141F4 -_0806DCAC: - ldrh r0, [r4] - adds r4, #2 - movs r1, #1 - bl sub_0807BA8C -_0806DCB6: - ldrh r0, [r4] - cmp r0, #0 - bne _0806DCAC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DCC0 -sub_0806DCC0: @ 0x0806DCC0 - ldr r0, _0806DCD0 @ =gUnk_030010A0 - movs r1, #0xf9 - lsls r1, r1, #3 - strh r1, [r0, #0x20] - movs r1, #0xf8 - strh r1, [r0, #0x22] - bx lr - .align 2, 0 -_0806DCD0: .4byte gUnk_030010A0 - - thumb_func_start sub_0806DCD4 -sub_0806DCD4: @ 0x0806DCD4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806DD40 - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - subs r0, #1 - cmp r0, #0xa - bhi _0806DD40 - lsls r0, r0, #2 - ldr r1, _0806DCF4 @ =_0806DCF8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806DCF4: .4byte _0806DCF8 -_0806DCF8: @ jump table - .4byte _0806DD24 @ case 0 - .4byte _0806DD24 @ case 1 - .4byte _0806DD24 @ case 2 - .4byte _0806DD24 @ case 3 - .4byte _0806DD24 @ case 4 - .4byte _0806DD2C @ case 5 - .4byte _0806DD2C @ case 6 - .4byte _0806DD2C @ case 7 - .4byte _0806DD2C @ case 8 - .4byte _0806DD2C @ case 9 - .4byte _0806DD34 @ case 10 -_0806DD24: - adds r0, r4, #0 - bl sub_0809623C - b _0806DD40 -_0806DD2C: - adds r0, r4, #0 - bl sub_08096260 - b _0806DD40 -_0806DD34: - adds r0, r4, #0 - movs r1, #0 - bl sub_0806DB84 - movs r0, #0 - str r0, [r4, #0x48] -_0806DD40: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DD44 -sub_0806DD44: @ 0x0806DD44 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806DD5A - adds r0, #1 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0xa] - adds r0, r4, #0 - bl sub_080042AC -_0806DD5A: - adds r0, r4, #0 - bl sub_080042B8 - adds r4, #0x59 - ldrb r0, [r4] - cmp r0, #0xfe - bne _0806DD74 - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x14 - strb r0, [r4] -_0806DD74: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DD78 -sub_0806DD78: @ 0x0806DD78 - push {lr} - ldr r2, _0806DD8C @ =gUnk_0811423C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806DD8C: .4byte gUnk_0811423C - - thumb_func_start sub_0806DD90 -sub_0806DD90: @ 0x0806DD90 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r7, r0, #0 - movs r0, #1 - strb r0, [r7, #0xc] - movs r0, #0x3b - bl GetProgressFlag - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r4, r1, #0x1f - movs r0, #0x3c - bl GetProgressFlag - cmp r0, #0 - beq _0806DDB8 - movs r4, #2 -_0806DDB8: - movs r0, #0x3d - bl GetProgressFlag - cmp r0, #0 - beq _0806DDC4 - movs r4, #3 -_0806DDC4: - adds r0, r7, #0 - adds r1, r4, #0 - bl sub_08004260 - movs r0, #0x2e - ldrsh r5, [r7, r0] - movs r1, #0x32 - ldrsh r4, [r7, r1] - ldr r2, _0806DEC0 @ =0x00004072 - mov sl, r2 - ldr r0, _0806DEC4 @ =gUnk_03000BF0 - mov r8, r0 - ldrh r1, [r0, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - movs r6, #0x3f - ands r1, r6 - ldrh r0, [r0, #8] - adds r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r7, #0x38 - mov sb, r7 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - adds r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - subs r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - adds r0, #0x10 - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r2, r8 - ldrh r1, [r2, #6] - subs r1, #0x18 - subs r1, r5, r1 - lsrs r1, r1, #4 - ands r1, r6 - ldrh r0, [r2, #8] - subs r0, r4, r0 - lsrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - bl sub_0800015E - mov r1, r8 - ldrh r0, [r1, #6] - subs r0, #0x18 - subs r5, r5, r0 - lsrs r5, r5, #4 - ands r5, r6 - ldrh r0, [r1, #8] - subs r0, #0x10 - subs r4, r4, r0 - lsrs r4, r4, #4 - ands r4, r6 - lsls r4, r4, #6 - orrs r5, r4 - mov r0, sb - ldrb r2, [r0] - mov r0, sl - adds r1, r5, #0 - bl sub_0800015E - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806DEC0: .4byte 0x00004072 -_0806DEC4: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806DEC8 -sub_0806DEC8: @ 0x0806DEC8 - push {lr} - bl sub_08004274 - pop {pc} - - thumb_func_start sub_0806DED0 -sub_0806DED0: @ 0x0806DED0 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806DEF8 @ =gUnk_081142BC - 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, #0xa] - cmp r0, #0 - bne _0806DEF4 - ldr r2, _0806DEFC @ =gUnk_03003F80 - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] -_0806DEF4: - pop {r4, pc} - .align 2, 0 -_0806DEF8: .4byte gUnk_081142BC -_0806DEFC: .4byte gUnk_03003F80 - - thumb_func_start sub_0806DF00 -sub_0806DF00: @ 0x0806DF00 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xa] - cmp r5, #0 - bne _0806DF5C - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0x51 - movs r1, #1 - movs r2, #0 - bl sub_0806ED50 - str r0, [r4, #0x68] - str r4, [r0, #0x50] - movs r0, #0x51 - movs r1, #1 - movs r2, #1 - bl sub_0806ED50 - str r0, [r4, #0x6c] - str r4, [r0, #0x50] - movs r0, #0x51 - movs r1, #1 - movs r2, #2 - bl sub_0806ED50 - str r0, [r4, #0x70] - str r4, [r0, #0x50] - adds r0, r4, #0 - adds r0, #0x74 - strh r5, [r0] - adds r0, #2 - movs r1, #0xa - strh r1, [r0] - ldr r0, _0806DF58 @ =gUnk_030010A0 - strh r1, [r0, #6] - adds r0, r4, #0 - bl sub_0806E014 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806DF6E - .align 2, 0 -_0806DF58: .4byte gUnk_030010A0 -_0806DF5C: - ldr r0, _0806DF70 @ =gUnk_080FD150 - str r0, [r4, #0x48] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806E0DC -_0806DF6E: - pop {r4, r5, pc} - .align 2, 0 -_0806DF70: .4byte gUnk_080FD150 - - thumb_func_start sub_0806DF74 -sub_0806DF74: @ 0x0806DF74 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0 - bl sub_0807DD94 - ldrb r0, [r4, #0xe] - cmp r0, #0xff - beq _0806DFB0 - adds r0, r4, #0 - adds r0, #0x44 - ldrb r0, [r0] - cmp r0, #0 - beq _0806DF96 - ldr r1, [r4, #0x70] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] -_0806DF96: - ldr r1, [r4, #0x68] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - ldr r1, [r4, #0x6c] - ldrb r0, [r1, #0xe] - adds r0, #1 - strb r0, [r1, #0xe] - movs r0, #0xff - strb r0, [r4, #0xe] - movs r0, #0 - bl sub_0807CD10 -_0806DFB0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806DFB4 -sub_0806DFB4: @ 0x0806DFB4 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x39 - movs r2, #0 - ldrsb r2, [r1, r2] - cmp r2, #0 - beq _0806DFD6 - movs r0, #0 - strb r0, [r1] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xb] - strb r0, [r1, #0xe] - ldr r1, [r4, #0x50] - ldrb r0, [r4, #0xf] - strb r0, [r1, #0xb] - b _0806E00C -_0806DFD6: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0806E00C - strb r2, [r4, #0xe] - ldrb r2, [r4, #0xf] - movs r0, #0x35 - movs r1, #2 - bl sub_080A2960 - adds r1, r0, #0 - cmp r1, #0 - beq _0806DFF8 - str r4, [r1, #0x50] - str r1, [r4, #0x54] - adds r0, r4, #0 - bl sub_0806FA24 -_0806DFF8: - adds r0, r4, #0 - bl sub_080788E0 - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - movs r0, #0x74 - movs r2, #2 - bl sub_0807B7D8 -_0806E00C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start nullsub_111 -nullsub_111: @ 0x0806E010 - bx lr - .align 2, 0 - - thumb_func_start sub_0806E014 -sub_0806E014: @ 0x0806E014 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - bl sub_08000E50 - movs r1, #0x70 - ands r1, r0 - lsrs r4, r1, #4 - movs r0, #0xff - strb r0, [r5, #0xb] - movs r0, #1 - rsbs r0, r0, #0 - adds r7, r0, #0 - strb r0, [r5, #0xe] - movs r0, #0x93 - bl sub_0807CBD0 - adds r1, r0, #0 - cmp r1, #0 - bne _0806E088 - adds r0, r5, #0 - adds r0, #0x44 - strb r1, [r0] - lsls r1, r4, #1 - ldr r0, _0806E084 @ =gUnk_081142CC - adds r6, r1, r0 - ldr r1, [r5, #0x68] - ldrb r0, [r6] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x68] - movs r4, #0x90 - lsls r4, r4, #0xf - adds r0, r5, #0 - adds r2, r4, #0 - adds r3, r4, #0 - bl sub_0806FA48 - ldr r1, [r5, #0x6c] - ldrb r0, [r6, #1] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x6c] - movs r2, #0xd0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl sub_0806FA48 - ldr r1, [r5, #0x70] - ldrb r0, [r1, #0xf] - orrs r0, r7 - strb r0, [r1, #0xf] - ldr r1, [r5, #0x70] - adds r0, r5, #0 - bl sub_0806FA24 - b _0806E0D6 - .align 2, 0 -_0806E084: .4byte gUnk_081142CC -_0806E088: - adds r1, r5, #0 - adds r1, #0x44 - movs r0, #1 - strb r0, [r1] - lsls r1, r4, #2 - ldr r0, _0806E0D8 @ =gUnk_081142DC - adds r6, r1, r0 - ldr r1, [r5, #0x68] - ldrb r0, [r6] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x68] - movs r2, #0xe0 - lsls r2, r2, #0xe - movs r4, #0x90 - lsls r4, r4, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl sub_0806FA48 - ldr r1, [r5, #0x6c] - ldrb r0, [r6, #1] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x6c] - movs r2, #0xb0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl sub_0806FA48 - ldr r1, [r5, #0x70] - ldrb r0, [r6, #2] - strb r0, [r1, #0xf] - ldr r1, [r5, #0x70] - movs r2, #0xf0 - lsls r2, r2, #0xf - adds r0, r5, #0 - adds r3, r4, #0 - bl sub_0806FA48 -_0806E0D6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806E0D8: .4byte gUnk_081142DC - - thumb_func_start sub_0806E0DC -sub_0806E0DC: @ 0x0806E0DC - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r6, #0 - strb r6, [r4, #0xe] - ldrb r0, [r4, #0xf] - cmp r0, #0xff - beq _0806E138 - movs r0, #2 - strb r0, [r4, #0xc] - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _0806E134 @ =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, #0x76 - strh r1, [r5] - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0806E120 - bl sub_0805E7BC - str r6, [r4, #0x54] -_0806E120: - adds r0, r4, #0 - bl sub_08078828 - ldrh r1, [r5] - movs r0, #0x73 - movs r2, #2 - bl sub_0807B7D8 - b _0806E13C - .align 2, 0 -_0806E134: .4byte gUnk_03000BF0 -_0806E138: - movs r0, #3 - strb r0, [r4, #0xc] -_0806E13C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806E140 -sub_0806E140: @ 0x0806E140 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r1, #0 - ldrb r1, [r3, #0xb] - cmp r1, #0 - beq _0806E1AC - movs r0, #1 - str r0, [r5, #0x14] - adds r1, r3, #0 - adds r1, #0x74 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - adds r1, #2 - ldrh r2, [r1] - adds r0, r3, #0 - adds r0, #0x44 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0 - bne _0806E16E - lsls r0, r2, #1 - b _0806E172 -_0806E16E: - lsls r0, r2, #1 - adds r0, r0, r2 -_0806E172: - strh r0, [r4] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _0806E18C @ =0x000003E7 - cmp r0, r1 - bls _0806E194 - strh r1, [r4] - movs r0, #0 - str r0, [r5, #0x14] - ldr r0, _0806E190 @ =0x0000421B - bl sub_08056378 - b _0806E1C0 - .align 2, 0 -_0806E18C: .4byte 0x000003E7 -_0806E190: .4byte 0x0000421B -_0806E194: - ldr r0, _0806E1A4 @ =0x00004218 - bl sub_08056378 - ldr r1, _0806E1A8 @ =gUnk_02000050 - ldrh r0, [r4] - str r0, [r1, #0x10] - b _0806E1C0 - .align 2, 0 -_0806E1A4: .4byte 0x00004218 -_0806E1A8: .4byte gUnk_02000050 -_0806E1AC: - str r1, [r5, #0x14] - adds r0, r3, #0 - adds r0, #0x74 - strh r1, [r0] - adds r4, r3, #0 - adds r4, #0x76 - strh r1, [r4] - ldr r0, _0806E1D4 @ =0x0000421C - bl sub_08056378 -_0806E1C0: - ldr r1, _0806E1D8 @ =gUnk_030010A0 - ldrh r0, [r4] - strh r0, [r1, #6] - ldr r2, _0806E1DC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, pc} - .align 2, 0 -_0806E1D4: .4byte 0x0000421C -_0806E1D8: .4byte gUnk_030010A0 -_0806E1DC: .4byte gUnk_02033280 - - thumb_func_start sub_0806E1E0 -sub_0806E1E0: @ 0x0806E1E0 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806E014 - ldr r0, [r4, #0x68] - bl sub_0806E0DC - ldr r0, [r4, #0x6c] - bl sub_0806E0DC - ldr r0, [r4, #0x70] - bl sub_0806E0DC - pop {r4, pc} - - thumb_func_start sub_0806E1FC -sub_0806E1FC: @ 0x0806E1FC - push {lr} - ldr r0, _0806E208 @ =gUnk_0813AD4C - bl sub_08080840 - pop {pc} - .align 2, 0 -_0806E208: .4byte gUnk_0813AD4C - - thumb_func_start sub_0806E20C -sub_0806E20C: @ 0x0806E20C - push {r4, lr} - ldr r4, _0806E224 @ =gUnk_030010A0 - ldrh r0, [r4, #6] - cmp r0, #0 - beq _0806E230 - ldr r0, _0806E228 @ =0x0000421F - bl sub_08056378 - ldr r1, _0806E22C @ =gUnk_02000050 - ldrh r0, [r4, #6] - str r0, [r1, #0x10] - b _0806E236 - .align 2, 0 -_0806E224: .4byte gUnk_030010A0 -_0806E228: .4byte 0x0000421F -_0806E22C: .4byte gUnk_02000050 -_0806E230: - ldr r0, _0806E238 @ =0x00004220 - bl sub_08056378 -_0806E236: - pop {r4, pc} - .align 2, 0 -_0806E238: .4byte 0x00004220 - - thumb_func_start sub_0806E23C -sub_0806E23C: @ 0x0806E23C - push {lr} - ldr r1, _0806E24C @ =gUnk_030010A0 - ldrh r0, [r1, #6] - cmp r0, #0 - beq _0806E24A - bl sub_080526CC -_0806E24A: - pop {pc} - .align 2, 0 -_0806E24C: .4byte gUnk_030010A0 - - thumb_func_start sub_0806E250 -sub_0806E250: @ 0x0806E250 - push {r4, lr} - adds r4, r1, #0 - movs r0, #0 - str r0, [r4, #0x14] - movs r0, #0x31 - bl sub_0801E7F4 - cmp r0, #0 - beq _0806E266 - movs r0, #1 - str r0, [r4, #0x14] -_0806E266: - ldr r2, _0806E274 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0806E274: .4byte gUnk_02033280 - - thumb_func_start sub_0806E278 -sub_0806E278: @ 0x0806E278 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E2A8 - adds r0, #1 - strb r0, [r4, #0xc] - ldr r0, _0806E2A0 @ =gUnk_081142FC - str r0, [r4, #0x48] - adds r0, r4, #0 - bl sub_0807DD50 - ldr r3, _0806E2A4 @ =gUnk_08114304 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_08078850 - b _0806E2B0 - .align 2, 0 -_0806E2A0: .4byte gUnk_081142FC -_0806E2A4: .4byte gUnk_08114304 -_0806E2A8: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 -_0806E2B0: - ldr r0, _0806E2CC @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E2D0 - ldrb r0, [r4, #0x18] - subs r1, #0x84 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - strb r1, [r4, #0x18] - b _0806E2DA - .align 2, 0 -_0806E2CC: .4byte gUnk_03003F80 -_0806E2D0: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] -_0806E2DA: - pop {r4, pc} - - thumb_func_start sub_0806E2DC -sub_0806E2DC: @ 0x0806E2DC - push {lr} - adds r3, r0, #0 - ldr r0, _0806E300 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806E2EC - movs r0, #0 -_0806E2EC: - ldrb r1, [r3, #0xb] - lsls r1, r1, #6 - lsls r0, r0, #3 - ldr r2, _0806E304 @ =gUnk_08114308 - adds r0, r0, r2 - adds r1, r1, r0 - adds r0, r3, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806E300: .4byte gUnk_02002A40 -_0806E304: .4byte gUnk_08114308 - - thumb_func_start sub_0806E308 -sub_0806E308: @ 0x0806E308 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r5, [r4, #0xc] - cmp r5, #1 - beq _0806E34C - cmp r5, #1 - bgt _0806E31C - cmp r5, #0 - beq _0806E322 - b _0806E3E0 -_0806E31C: - cmp r5, #2 - beq _0806E3C6 - b _0806E3E0 -_0806E322: - ldr r1, _0806E348 @ =gUnk_081144F0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806E3E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - strb r5, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - bl sub_0807DD50 - b _0806E3E0 - .align 2, 0 -_0806E348: .4byte gUnk_081144F0 -_0806E34C: - adds r2, r4, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #2 - bne _0806E3BC - movs r0, #0 - strb r1, [r4, #0xc] - strb r0, [r2] - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r1, r4, #0 - adds r1, #0x69 - strb r0, [r1] - ldr r1, _0806E3B0 @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r0, #0 - adds r0, r4, #0 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08002632 - ldr r1, _0806E3B4 @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r3, [r0] - adds r0, r4, #0 - adds r0, #0x68 - ldrb r0, [r0] - cmp r0, #0x32 - bne _0806E398 - adds r3, #6 -_0806E398: - ldrh r1, [r3] - ldrh r2, [r3, #2] - ldrh r3, [r3, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806E3B8 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - b _0806E3E0 - .align 2, 0 -_0806E3B0: .4byte gLinkEntity -_0806E3B4: .4byte gUnk_08001A7C -_0806E3B8: .4byte gUnk_03003F80 -_0806E3BC: - adds r0, r4, #0 - movs r1, #0 - bl sub_0807DD94 - b _0806E3E0 -_0806E3C6: - adds r0, r4, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806E3E0 - movs r0, #1 - strb r0, [r4, #0xc] - adds r0, r4, #0 - adds r0, #0x69 - ldrb r1, [r0] - adds r0, r4, #0 - bl sub_08004260 -_0806E3E0: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E3E4 -sub_0806E3E4: @ 0x0806E3E4 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x81 - rsbs r0, r0, #0 - ands r2, r0 - adds r2, #8 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - ldrb r2, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FF88 - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - - thumb_func_start sub_0806E418 -sub_0806E418: @ 0x0806E418 - push {lr} - adds r2, r0, #0 - ldr r0, _0806E438 @ =gUnk_02002A40 - ldrb r0, [r0, #8] - subs r0, #2 - cmp r0, #0 - bge _0806E428 - movs r0, #0 -_0806E428: - lsls r1, r0, #3 - ldr r0, _0806E43C @ =gUnk_081144FC - adds r1, r1, r0 - adds r0, r2, #0 - bl sub_0806F1AC - pop {pc} - .align 2, 0 -_0806E438: .4byte gUnk_02002A40 -_0806E43C: .4byte gUnk_081144FC - - thumb_func_start sub_0806E440 -sub_0806E440: @ 0x0806E440 - push {r4, lr} - adds r4, r0, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_08078784 - pop {r4, pc} - - thumb_func_start sub_0806E458 -sub_0806E458: @ 0x0806E458 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E498 - ldr r1, _0806E494 @ =gUnk_081144F0 - adds r0, r4, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806E49E - ldrb r0, [r4, #0xc] - adds r0, #1 - strb r0, [r4, #0xc] - 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, #2 - bl sub_0805E3A0 - adds r0, r4, #0 - movs r1, #0xa - bl sub_08004260 - b _0806E49E - .align 2, 0 -_0806E494: .4byte gUnk_081144F0 -_0806E498: - adds r0, r4, #0 - bl sub_08004274 -_0806E49E: - pop {r4, pc} - - thumb_func_start sub_0806E4A0 -sub_0806E4A0: @ 0x0806E4A0 - push {lr} - ldr r2, _0806E4B4 @ =gUnk_081145B4 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0806E4B4: .4byte gUnk_081145B4 - - thumb_func_start sub_0806E4B8 -sub_0806E4B8: @ 0x0806E4B8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080787A8 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - strb r5, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806E4EC - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E4EC -sub_0806E4EC: @ 0x0806E4EC - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xd] - cmp r0, #0 - bne _0806E50E - adds r0, #1 - strb r0, [r5, #0xd] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x3c - strb r0, [r5, #0xe] - adds r0, r5, #0 - movs r1, #0 - bl sub_080042AC -_0806E50E: - ldrb r0, [r5, #0xe] - subs r0, #1 - strb r0, [r5, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0806E552 - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E52A - movs r0, #3 - b _0806E52C -_0806E52A: - movs r0, #2 -_0806E52C: - strb r0, [r5, #0xc] - movs r0, #0 - strb r0, [r5, #0xd] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E552 - ldr r4, _0806E560 @ =gUnk_081145C8 - bl sub_08000E50 - movs r1, #3 - ands r1, r0 - lsls r1, r1, #1 - adds r1, r1, r4 - ldrh r0, [r1] - bl sub_08004488 -_0806E552: - adds r0, r5, #0 - bl sub_0806E65C - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 -_0806E560: .4byte gUnk_081145C8 - - thumb_func_start sub_0806E564 -sub_0806E564: @ 0x0806E564 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E5AA - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r2, #1 - ands r0, r2 - cmp r0, #0 - beq _0806E590 - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r2 - lsls r1, r1, #6 - subs r2, #0x42 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E590: - bl sub_08000E50 - movs r1, #1 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - adds r0, r4, #0 - movs r1, #1 - bl sub_080042AC -_0806E5AA: - movs r1, #0xa0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E5D4 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E5CE - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0806E5D4 -_0806E5CE: - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E5D4: - adds r0, r4, #0 - bl sub_0806E65C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E5E4 -sub_0806E5E4: @ 0x0806E5E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E622 - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _0806E612 - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r5 - lsls r1, r1, #6 - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E612: - bl sub_08000E50 - adds r1, r0, #0 - ands r1, r5 - adds r1, #2 - adds r0, r4, #0 - bl sub_080042AC -_0806E622: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E638 - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] -_0806E638: - adds r0, r4, #0 - bl sub_0806E65C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E648 -sub_0806E648: @ 0x0806E648 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806E658 - movs r0, #1 - strb r0, [r4, #0xc] -_0806E658: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E65C -sub_0806E65C: @ 0x0806E65C - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806E6A6 - ldr r0, _0806E688 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E694 - cmp r2, #2 - bne _0806E68C - movs r0, #4 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806E698 - .align 2, 0 -_0806E688: .4byte gUnk_03003F80 -_0806E68C: - adds r0, r4, #0 - bl sub_0806E6A8 - b _0806E698 -_0806E694: - bl sub_080791D0 -_0806E698: - movs r0, #0xd5 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806E6A6: - pop {r4, pc} - - thumb_func_start sub_0806E6A8 -sub_0806E6A8: @ 0x0806E6A8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0 - bl sub_08002632 - ldr r1, _0806E6D4 @ =gUnk_02002A40 - ldr r2, _0806E6D8 @ =0x000001C1 - adds r1, r1, r2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0xf3 - bne _0806E6C2 - movs r5, #1 -_0806E6C2: - ldr r0, _0806E6DC @ =gUnk_081145D0 - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r4, #0 - bl sub_08056398 - pop {r4, r5, pc} - .align 2, 0 -_0806E6D4: .4byte gUnk_02002A40 -_0806E6D8: .4byte 0x000001C1 -_0806E6DC: .4byte gUnk_081145D0 - - thumb_func_start sub_0806E6E0 -sub_0806E6E0: @ 0x0806E6E0 - push {lr} - adds r2, r0, #0 - ldrb r0, [r2, #0xc] - cmp r0, #0 - bne _0806E706 - 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, #1 - bl sub_080042AC - b _0806E70C -_0806E706: - adds r0, r2, #0 - bl sub_080042B8 -_0806E70C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806E710 -sub_0806E710: @ 0x0806E710 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806E72C @ =gUnk_081145D4 - 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_0806ED78 - pop {r4, pc} - .align 2, 0 -_0806E72C: .4byte gUnk_081145D4 - - thumb_func_start sub_0806E730 -sub_0806E730: @ 0x0806E730 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - adds r0, #1 - movs r5, #0 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0801E99C - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] - ldrb r1, [r1] - adds r0, r4, #0 - bl sub_080787A8 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805E3A0 - strb r5, [r4, #0xd] - adds r0, r4, #0 - bl sub_0806E764 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806E764 -sub_0806E764: @ 0x0806E764 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - adds r5, r0, #0 - cmp r5, #0 - bne _0806E782 - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r1, #0x1f - ands r0, r1 - adds r0, #0x1e - strb r0, [r4, #0xe] - strb r5, [r4, #0x1e] -_0806E782: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E7A8 - movs r0, #2 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _0806E7A8 - movs r0, #0xd6 - bl sub_08004488 -_0806E7A8: - adds r0, r4, #0 - bl sub_0806E838 - pop {r4, r5, pc} - - thumb_func_start sub_0806E7B0 -sub_0806E7B0: @ 0x0806E7B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - cmp r0, #0 - bne _0806E7F2 - adds r0, #1 - strb r0, [r4, #0xd] - bl sub_08000E50 - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _0806E7DE - ldrb r0, [r4, #0x18] - lsls r1, r0, #0x19 - lsrs r1, r1, #0x1f - eors r1, r5 - lsls r1, r1, #6 - movs r2, #0x41 - rsbs r2, r2, #0 - ands r2, r0 - orrs r2, r1 - strb r2, [r4, #0x18] -_0806E7DE: - bl sub_08000E50 - movs r1, #3 - ands r0, r1 - adds r0, #1 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - strb r5, [r4, #0x1e] -_0806E7F2: - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E81C - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _0806E816 - movs r0, #1 - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - b _0806E81C -_0806E816: - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E81C: - adds r0, r4, #0 - bl sub_0806E838 - pop {r4, r5, pc} - - thumb_func_start sub_0806E824 -sub_0806E824: @ 0x0806E824 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806F148 - cmp r0, #0 - beq _0806E834 - movs r0, #1 - strb r0, [r4, #0xc] -_0806E834: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806E838 -sub_0806E838: @ 0x0806E838 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - beq _0806E882 - ldr r0, _0806E864 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806E870 - cmp r2, #2 - bne _0806E868 - movs r0, #3 - strb r0, [r4, #0xc] - adds r0, r4, #0 - bl sub_0806F118 - b _0806E874 - .align 2, 0 -_0806E864: .4byte gUnk_03003F80 -_0806E868: - adds r0, r4, #0 - bl sub_0806E884 - b _0806E874 -_0806E870: - bl sub_080791D0 -_0806E874: - movs r0, #0xd6 - bl sub_080A3268 - adds r1, r4, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] -_0806E882: - pop {r4, pc} - - thumb_func_start sub_0806E884 -sub_0806E884: @ 0x0806E884 - push {lr} - adds r1, r0, #0 - ldr r0, _0806E890 @ =0x00000DB6 - bl sub_08056398 - pop {pc} - .align 2, 0 -_0806E890: .4byte 0x00000DB6 - - thumb_func_start sub_0806E894 -sub_0806E894: @ 0x0806E894 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0806E8B6 - adds r0, #1 - strb r0, [r4, #0xc] - 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, #1 - strb r0, [r4, #0x1e] - b _0806E8CA -_0806E8B6: - movs r1, #0xc0 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _0806E8CA - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] -_0806E8CA: - pop {r4, pc} - - thumb_func_start sub_0806E8CC -sub_0806E8CC: @ 0x0806E8CC - push {lr} - adds r3, r0, #0 - ldr r2, _0806E8EC @ =gUnk_080B313C - ldrb r1, [r3, #0xf] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #8 - adds r0, r0, r2 - ldr r1, [r0] - cmp r1, #0 - beq _0806E8F0 - adds r0, r3, #0 - bl _call_via_r1 - b _0806E8F4 - .align 2, 0 -_0806E8EC: .4byte gUnk_080B313C -_0806E8F0: - bl sub_0805E780 -_0806E8F4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806E8F8 -sub_0806E8F8: @ 0x0806E8F8 - push {lr} - adds r3, r0, #0 - ldr r2, _0806E918 @ =gUnk_080B313C - ldrb r1, [r3, #0xf] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r2, #4 - adds r0, r0, r2 - ldr r1, [r0] - cmp r1, #0 - beq _0806E916 - adds r0, r3, #0 - bl _call_via_r1 -_0806E916: - pop {pc} - .align 2, 0 -_0806E918: .4byte gUnk_080B313C - - thumb_func_start sub_0806E91C -sub_0806E91C: @ 0x0806E91C - push {r4, r5, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xc] - cmp r0, #0 - bne _0806E950 - adds r0, #1 - strb r0, [r5, #0xc] - 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 r1, r5, #0 - adds r1, #0x68 - movs r4, #0 - movs r0, #1 - strh r0, [r1] - adds r1, #2 - ldr r0, _0806E960 @ =0x0000FFFF - strh r0, [r1] - adds r0, r5, #0 - bl sub_0807DD64 - strb r4, [r5, #0x1e] -_0806E950: - adds r0, r5, #0 - movs r1, #0 - bl sub_0807DDAC - adds r0, r5, #0 - bl sub_0807DDE4 - pop {r4, r5, pc} - .align 2, 0 -_0806E960: .4byte 0x0000FFFF - - thumb_func_start sub_0806E964 -sub_0806E964: @ 0x0806E964 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r2, r1, #0 - ldr r0, _0806E984 @ =gUnk_03000FF0 - mov r8, r0 - ldrh r1, [r0, #2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0806E988 - bl sub_08050384 - b _0806EAAA - .align 2, 0 -_0806E984: .4byte gUnk_03000FF0 -_0806E988: - ldrb r0, [r2, #0x18] - adds r1, r0, #0 - mov r6, sb - adds r6, #0x6c - mov r7, sb - adds r7, #0x68 - cmp r1, #0 - bne _0806E9A8 - adds r0, #1 - strb r0, [r2, #0x18] - strh r1, [r6] - movs r2, #0 - ldrsh r1, [r7, r2] - mov r0, sb - bl sub_0806EABC -_0806E9A8: - movs r5, #0x1c - movs r0, #0x55 - bl GetProgressFlag - cmp r0, #0 - beq _0806E9B6 - movs r5, #0x34 -_0806E9B6: - movs r0, #0 - ldrsh r4, [r7, r0] - mov r2, r8 - ldrh r1, [r2, #2] - movs r2, #0xc0 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806E9E4 - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806E9D4 - adds r4, #1 - b _0806E9D6 -_0806E9D4: - subs r4, #1 -_0806E9D6: - cmp r4, #0 - bgt _0806E9DC - adds r4, r5, #0 -_0806E9DC: - cmp r4, r5 - ble _0806EA0A - movs r4, #1 - b _0806EA0A -_0806E9E4: - mov r0, r8 - ldrh r1, [r0, #4] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806EA0A - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806E9FC - adds r4, #1 - b _0806E9FE -_0806E9FC: - subs r4, #1 -_0806E9FE: - cmp r4, #0 - bgt _0806EA04 - movs r4, #1 -_0806EA04: - cmp r4, r5 - ble _0806EA0A - adds r4, r5, #0 -_0806EA0A: - movs r1, #0 - ldrsh r0, [r7, r1] - cmp r4, r0 - beq _0806EA28 - mov r0, sb - adds r1, r4, #0 - bl sub_0806EABC - ldrh r1, [r6] - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #0 - ble _0806EA28 - subs r0, r1, #1 - strh r0, [r6] -_0806EA28: - strh r4, [r7] - ldr r0, _0806EA74 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0806EA86 - mov r5, sb - adds r5, #0x6a - lsls r0, r4, #0x10 - asrs r0, r0, #0x10 - movs r2, #0 - ldrsh r1, [r5, r2] - cmp r0, r1 - bne _0806EA4E - movs r1, #0 - ldrsh r0, [r6, r1] - cmp r0, #0 - bne _0806EA7C -_0806EA4E: - ldr r4, _0806EA78 @ =gUnk_081145E4 - movs r2, #0 - ldrsh r0, [r7, r2] - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0 - ldrsh r0, [r0, r1] - bl sub_080A3268 - ldrh r0, [r7] - strh r0, [r5] - movs r2, #0 - ldrsh r0, [r7, r2] - lsls r0, r0, #2 - adds r4, #2 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r6] - b _0806EA86 - .align 2, 0 -_0806EA74: .4byte gUnk_03000FF0 -_0806EA78: .4byte gUnk_081145E4 -_0806EA7C: - ldr r0, _0806EAB4 @ =0x80010000 - bl sub_080A3268 - movs r0, #0 - strh r0, [r5] -_0806EA86: - ldrh r1, [r6] - movs r2, #0 - ldrsh r0, [r6, r2] - cmp r0, #0 - ble _0806EAA4 - subs r0, r1, #1 - movs r1, #0 - strh r0, [r6] - lsls r0, r0, #0x10 - cmp r0, #0 - bgt _0806EAA4 - mov r0, sb - adds r0, #0x6a - strh r1, [r0] - strh r1, [r6] -_0806EAA4: - ldr r1, _0806EAB8 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0806EAAA: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806EAB4: .4byte 0x80010000 -_0806EAB8: .4byte gUnk_02033280 - - thumb_func_start sub_0806EABC -sub_0806EABC: @ 0x0806EABC - push {r4, lr} - adds r4, r1, #0 - bl sub_08050384 - ldr r1, _0806EAE0 @ =gUnk_020227E8 - ldr r2, _0806EAE4 @ =0x00202020 - adds r0, r4, #0 - bl sub_08057044 - ldr r0, _0806EAE8 @ =0x00003302 - ldr r1, _0806EAEC @ =gUnk_081146B8 - bl sub_0805F46C - ldr r1, _0806EAF0 @ =gUnk_03000F50 - movs r0, #1 - strh r0, [r1, #0xe] - pop {r4, pc} - .align 2, 0 -_0806EAE0: .4byte gUnk_020227E8 -_0806EAE4: .4byte 0x00202020 -_0806EAE8: .4byte 0x00003302 -_0806EAEC: .4byte gUnk_081146B8 -_0806EAF0: .4byte gUnk_03000F50 - - thumb_func_start sub_0806EAF4 -sub_0806EAF4: @ 0x0806EAF4 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _0806EB48 - ldr r1, _0806EBA0 @ =gUnk_081146D0 - adds r0, r6, #0 - bl sub_0806FDEC - cmp r0, #0 - beq _0806EBA8 - ldrb r0, [r6, #0xc] - adds r0, #1 - strb r0, [r6, #0xc] - ldrb r1, [r6, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r6, #0x18] - ldrb r2, [r6, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - strb r0, [r6, #0x19] - adds r3, r6, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r2 - strb r0, [r3] - ldrb r0, [r6, #0x1b] - ands r1, r0 - movs r0, #0x40 - orrs r1, r0 - strb r1, [r6, #0x1b] - movs r0, #0x78 - strh r0, [r6, #0x2e] - movs r0, #0x10 - strh r0, [r6, #0x32] -_0806EB48: - ldr r7, [r6, #0x50] - cmp r7, #0 - beq _0806EBA4 - adds r0, r7, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r4, [r0, r1] - movs r5, #0x96 - lsls r5, r5, #2 - adds r0, r4, #0 - adds r1, r5, #0 - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x68 - strh r0, [r1] - adds r0, r4, #0 - adds r1, r5, #0 - bl __modsi3 - adds r4, r0, #0 - movs r1, #0x3c - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x6a - strh r0, [r1] - adds r0, r4, #0 - movs r1, #0x3c - bl __modsi3 - movs r1, #6 - bl __divsi3 - adds r1, r6, #0 - adds r1, #0x6c - strh r0, [r1] - ldr r0, [r7, #4] - cmp r0, #0 - bne _0806EBA8 - bl sub_0805E780 - b _0806EBA8 - .align 2, 0 -_0806EBA0: .4byte gUnk_081146D0 -_0806EBA4: - bl sub_0805E780 -_0806EBA8: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0806EBAC -sub_0806EBAC: @ 0x0806EBAC - push {r4, lr} - adds r4, r0, #0 - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - adds r0, #0x68 - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #0 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x6a - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #1 - bl sub_0806FF60 - adds r0, r4, #0 - adds r0, #0x6c - movs r1, #0 - ldrsh r2, [r0, r1] - adds r0, r4, #0 - movs r1, #2 - bl sub_0806FF60 - adds r0, r4, #0 - movs r1, #3 - movs r2, #0xa - bl sub_0806FF60 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - movs r3, #0 - bl sub_0806FFBC - movs r2, #4 - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #1 - movs r3, #0 - bl sub_0806FFBC - adds r0, r4, #0 - movs r1, #2 - movs r2, #0xc - movs r3, #0 - bl sub_0806FFBC - adds r0, r4, #0 - bl sub_0807000C - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EC20 -sub_0806EC20: @ 0x0806EC20 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x58 - movs r1, #0 - movs r2, #0 - bl sub_0806ED50 - cmp r0, #0 - beq _0806EC34 - str r4, [r0, #0x50] -_0806EC34: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EC38 -sub_0806EC38: @ 0x0806EC38 - push {lr} - movs r0, #7 - movs r1, #0x58 - movs r2, #7 - bl sub_0805EB00 - cmp r0, #0 - beq _0806EC4C - bl sub_0805E7BC -_0806EC4C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EC50 -sub_0806EC50: @ 0x0806EC50 - push {lr} - adds r3, r0, #0 - ldrb r0, [r3, #9] - lsls r0, r0, #3 - ldr r1, _0806EC74 @ =gUnk_08114AE4 - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, #3 - ands r0, r1 - cmp r0, #2 - bne _0806EC6E - ldrb r0, [r3, #0xa] - lsls r0, r0, #3 - ldr r1, [r2, #4] - adds r2, r1, r0 -_0806EC6E: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0806EC74: .4byte gUnk_08114AE4 - - thumb_func_start sub_0806EC78 -sub_0806EC78: @ 0x0806EC78 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806ED4A - adds r0, r4, #0 - bl sub_0806EC50 - adds r5, r0, #0 - ldrb r1, [r5] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0806ECA2 - ldrb r1, [r4, #0x10] - movs r0, #1 - orrs r0, r1 - strb r0, [r4, #0x10] - b _0806ED4A -_0806ECA2: - 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 _0806ECC0 - cmp r0, #2 - bne _0806ECCA - adds r0, r4, #0 - adds r0, #0x60 - strh r2, [r0] - b _0806ECD0 -_0806ECC0: - adds r0, r4, #0 - movs r2, #0 - bl sub_080AE008 - b _0806ECD0 -_0806ECCA: - adds r0, r4, #0 - bl sub_080ADF80 -_0806ECD0: - ldrh r0, [r5, #4] - lsls r0, r0, #0x16 - lsrs r1, r0, #0x16 - adds r0, r4, #0 - bl sub_0801D040 - 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, _0806ED4C @ =gUnk_08114EE4 - ldrb r0, [r5, #1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [r4, #0x48] - ldrb r1, [r4, #0x10] - movs r0, #1 - orrs r0, r1 - strb r0, [r4, #0x10] - movs r1, #0xff - adds r0, r4, #0 - adds r0, #0x58 - strb r1, [r0] - strb r1, [r4, #0x1e] - adds r0, r4, #0 - bl sub_08016A04 -_0806ED4A: - pop {r4, r5, pc} - .align 2, 0 -_0806ED4C: .4byte gUnk_08114EE4 - - thumb_func_start sub_0806ED50 -sub_0806ED50: @ 0x0806ED50 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - bl sub_0805E678 - adds r4, r0, #0 - cmp r4, #0 - beq _0806ED74 - movs r0, #7 - strb r0, [r4, #8] - strb r5, [r4, #9] - strb r6, [r4, #0xa] - strb r7, [r4, #0xb] - adds r0, r4, #0 - movs r1, #7 - bl sub_0805EA2C -_0806ED74: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806ED78 -sub_0806ED78: @ 0x0806ED78 - push {r4, lr} - bl sub_0800445C - adds r4, r0, #0 - cmp r4, #0 - beq _0806ED94 - ldr r0, _0806ED98 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0806ED94 - bl sub_08077B20 -_0806ED94: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0806ED98: .4byte gUnk_03003F80 - - thumb_func_start sub_0806ED9C -sub_0806ED9C: @ 0x0806ED9C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - movs r6, #1 - rsbs r6, r6, #0 - ldr r1, _0806EDC0 @ =gLinkEntity - adds r2, r4, #0 - bl sub_080041A0 - cmp r0, #0 - beq _0806EDBC - adds r0, r5, #0 - bl sub_0806EDC4 - adds r6, r0, #0 -_0806EDBC: - adds r0, r6, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806EDC0: .4byte gLinkEntity - - thumb_func_start sub_0806EDC4 -sub_0806EDC4: @ 0x0806EDC4 - push {lr} - ldr r1, _0806EDD4 @ =gLinkEntity - bl sub_080045C4 - bl sub_0806F5A4 - pop {pc} - .align 2, 0 -_0806EDD4: .4byte gLinkEntity - - thumb_func_start sub_0806EDD8 -sub_0806EDD8: @ 0x0806EDD8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r3, r2, #0 - movs r7, #1 - rsbs r7, r7, #0 - ldr r6, _0806EE00 @ =gLinkEntity - adds r1, r6, #0 - adds r2, r4, #0 - bl sub_080041A0 - cmp r0, #0 - beq _0806EDFC - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_080045C4 - adds r7, r0, #0 -_0806EDFC: - adds r0, r7, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806EE00: .4byte gLinkEntity - - thumb_func_start sub_0806EE04 -sub_0806EE04: @ 0x0806EE04 - adds r3, r0, #0 - str r1, [r3, #0x54] - adds r0, #0x3c - movs r1, #0 - strb r2, [r0] - adds r0, #3 - strb r1, [r0] - adds r2, r3, #0 - adds r2, #0x46 - movs r0, #0 - strh r1, [r2] - strb r0, [r3, #0x16] - bx lr - .align 2, 0 - - thumb_func_start sub_0806EE20 -sub_0806EE20: @ 0x0806EE20 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0806EE4C - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _0806EE66 - ldr r1, _0806EE48 @ =gUnk_08114EFC - ldrb r0, [r4, #0x16] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - b _0806EE68 - .align 2, 0 -_0806EE48: .4byte gUnk_08114EFC -_0806EE4C: - adds r1, r4, #0 - adds r1, #0x46 - movs r0, #8 - strh r0, [r1] - ldr r1, _0806EE6C @ =gLinkEntity - adds r0, r4, #0 - bl sub_080045C4 - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] -_0806EE66: - movs r0, #0 -_0806EE68: - pop {r4, pc} - .align 2, 0 -_0806EE6C: .4byte gLinkEntity - - thumb_func_start sub_0806EE70 -sub_0806EE70: @ 0x0806EE70 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #8 - bls _0806EE92 - movs r0, #0 - strh r0, [r1] - adds r0, r4, #0 - bl sub_0806EF14 -_0806EE92: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - mov r1, sp - bl sub_0806EF4C - mov r0, sp - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r4, #0 - bl sub_080041DC - adds r1, r0, #0 - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r0, #0 - bge _0806EEB8 - rsbs r0, r0, #0 -_0806EEB8: - lsrs r0, r0, #3 - cmp r0, r1 - bhi _0806EEC2 - movs r0, #0 - b _0806EECA -_0806EEC2: - adds r0, r4, #0 - movs r1, #3 - bl sub_0806EF74 -_0806EECA: - add sp, #4 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806EED0 -sub_0806EED0: @ 0x0806EED0 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x46 - ldrh r0, [r1] - subs r0, #1 - strh r0, [r1] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0806EEE8 - movs r0, #0 - b _0806EEF0 -_0806EEE8: - adds r0, r2, #0 - movs r1, #2 - bl sub_0806EF74 -_0806EEF0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EEF4 -sub_0806EEF4: @ 0x0806EEF4 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806EF08 - movs r0, #0 - b _0806EF10 -_0806EF08: - adds r0, r2, #0 - movs r1, #1 - bl sub_0806EF74 -_0806EF10: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EF14 -sub_0806EF14: @ 0x0806EF14 - push {r4, lr} - sub sp, #4 - adds r4, r0, #0 - mov r1, sp - bl sub_0806EF4C - mov r0, sp - ldrh r1, [r0] - ldrh r2, [r0, #2] - adds r0, r4, #0 - bl sub_080045B4 - strb r0, [r4, #0x15] - adds r0, r4, #0 - adds r0, #0x3c - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0806EF48 - ldrb r0, [r4, #0x15] - bl sub_0806F5A4 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] -_0806EF48: - add sp, #4 - pop {r4, pc} - - thumb_func_start sub_0806EF4C -sub_0806EF4C: @ 0x0806EF4C - push {r4, lr} - adds r2, r0, #0 - adds r2, #0x3f - ldrb r2, [r2] - lsls r2, r2, #1 - ldr r3, [r0, #0x54] - adds r3, r3, r2 - ldr r2, _0806EF70 @ =gUnk_03000BF0 - ldrh r0, [r3, #2] - ldrh r4, [r2, #6] - adds r0, r0, r4 - strh r0, [r1] - ldrh r0, [r3, #4] - ldrh r2, [r2, #8] - adds r0, r0, r2 - strh r0, [r1, #2] - pop {r4, pc} - .align 2, 0 -_0806EF70: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806EF74 -sub_0806EF74: @ 0x0806EF74 - push {lr} - adds r3, r0, #0 - adds r3, #0x3f - ldrb r2, [r3] - adds r2, r2, r1 - strb r2, [r3] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806EF88 -sub_0806EF88: @ 0x0806EF88 - push {lr} - adds r1, r0, #0 - adds r1, #0x3f - ldrb r2, [r1] - lsls r2, r2, #1 - ldr r1, [r0, #0x54] - adds r1, r1, r2 - ldr r3, _0806EFA8 @ =gUnk_08114F0C - ldrb r2, [r1] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0806EFA8: .4byte gUnk_08114F0C - - thumb_func_start sub_0806EFAC -sub_0806EFAC: @ 0x0806EFAC - push {lr} - adds r2, r0, #0 - adds r2, #0x3f - movs r1, #0 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - - thumb_func_start sub_0806EFBC -sub_0806EFBC: @ 0x0806EFBC - movs r1, #1 - strb r1, [r0, #0x16] - adds r0, #0x46 - movs r1, #8 - strh r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 - - thumb_func_start sub_0806EFCC -sub_0806EFCC: @ 0x0806EFCC - movs r2, #2 - strb r2, [r0, #0x16] - ldrh r1, [r1, #2] - adds r0, #0x46 - strh r1, [r0] - movs r0, #0 - bx lr - .align 2, 0 - - thumb_func_start sub_0806EFDC -sub_0806EFDC: @ 0x0806EFDC - push {lr} - adds r3, r0, #0 - ldrh r0, [r1] - lsrs r0, r0, #8 - cmp r0, #0 - beq _0806EFF4 - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfe - ands r0, r1 - b _0806EFFE -_0806EFF4: - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #1 - orrs r0, r1 -_0806EFFE: - strb r0, [r2] - adds r1, r3, #0 - adds r1, #0x3f - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r3, #0 - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F014 -sub_0806F014: @ 0x0806F014 - push {lr} - ldrh r1, [r1, #2] - strh r1, [r0, #0x24] - adds r2, r0, #0 - adds r2, #0x3f - ldrb r1, [r2] - adds r1, #2 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F02C -sub_0806F02C: @ 0x0806F02C - push {lr} - ldrh r1, [r1] - lsrs r1, r1, #8 - adds r2, r0, #0 - adds r2, #0x3e - strb r1, [r2] - adds r2, #1 - ldrb r1, [r2] - adds r1, #1 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F048 -sub_0806F048: @ 0x0806F048 - movs r1, #3 - strb r1, [r0, #0x16] - movs r0, #0 - bx lr - - thumb_func_start sub_0806F050 -sub_0806F050: @ 0x0806F050 - push {lr} - adds r1, #2 - str r1, [r0, #0x54] - adds r2, r0, #0 - adds r2, #0x3f - movs r1, #0 - strb r1, [r2] - bl sub_0806EF88 - pop {pc} - - thumb_func_start sub_0806F064 -sub_0806F064: @ 0x0806F064 - movs r2, #0 - strb r2, [r0, #0x16] - adds r0, #0x3f - ldrb r2, [r0] - adds r2, #1 - strb r2, [r0] - ldrh r0, [r1] - lsrs r0, r0, #8 - bx lr - .align 2, 0 - - thumb_func_start sub_0806F078 -sub_0806F078: @ 0x0806F078 - push {lr} - adds r2, r0, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r1, r0 - beq _0806F0A0 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _0806F096 - adds r0, r2, #0 - bl sub_080042AC - b _0806F09C -_0806F096: - adds r0, r2, #0 - bl sub_08004260 -_0806F09C: - movs r0, #1 - b _0806F0A2 -_0806F0A0: - movs r0, #0 -_0806F0A2: - pop {pc} - - thumb_func_start sub_0806F0A4 -sub_0806F0A4: @ 0x0806F0A4 - push {r4, r5, r6, r7, lr} - sub sp, #4 - ldr r7, _0806F114 @ =gUnk_03003DA8 - ldr r5, [r7, #4] - movs r0, #0 - cmp r5, r7 - beq _0806F0BA -_0806F0B2: - adds r0, #1 - ldr r5, [r5, #4] - cmp r5, r7 - bne _0806F0B2 -_0806F0BA: - cmp r0, #1 - bls _0806F10E - ldr r5, [r7, #4] - cmp r5, r7 - beq _0806F10E - movs r2, #1 -_0806F0C6: - ldrb r1, [r5, #0x10] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F108 - ldrb r1, [r5, #0x17] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F108 - ldr r4, [r5, #4] - cmp r4, r7 - beq _0806F108 - movs r6, #1 -_0806F0E2: - ldrb r1, [r4, #0x10] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F102 - ldrb r1, [r4, #0x17] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F102 - adds r0, r5, #0 - adds r1, r4, #0 - str r2, [sp] - bl sub_08004484 - ldr r2, [sp] -_0806F102: - ldr r4, [r4, #4] - cmp r4, r7 - bne _0806F0E2 -_0806F108: - ldr r5, [r5, #4] - cmp r5, r7 - bne _0806F0C6 -_0806F10E: - add sp, #4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806F114: .4byte gUnk_03003DA8 - - thumb_func_start sub_0806F118 -sub_0806F118: @ 0x0806F118 - push {r4, lr} - adds r4, r0, #0 - bl sub_08002632 - ldr r1, _0806F140 @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r0, #2] - ldrh r3, [r0, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0806F144 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - pop {r4, pc} - .align 2, 0 -_0806F140: .4byte gUnk_08001A7C -_0806F144: .4byte gUnk_03003F80 - - thumb_func_start sub_0806F148 -sub_0806F148: @ 0x0806F148 - push {r4, lr} - bl sub_0801E00C - movs r4, #1 - rsbs r4, r4, #0 - ldr r0, _0806F164 @ =gUnk_02022740 - ldrb r0, [r0] - cmp r0, #1 - beq _0806F172 - cmp r0, #2 - beq _0806F168 - movs r4, #0 - b _0806F17E - .align 2, 0 -_0806F164: .4byte gUnk_02022740 -_0806F168: - ldr r0, _0806F184 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - movs r4, #1 -_0806F172: - bl sub_0807919C - ldr r0, _0806F184 @ =gUnk_03003F80 - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] -_0806F17E: - adds r0, r4, #0 - pop {r4, pc} - .align 2, 0 -_0806F184: .4byte gUnk_03003F80 - - thumb_func_start sub_0806F188 -sub_0806F188: @ 0x0806F188 - push {lr} - bl sub_08002632 - adds r1, r0, #0 - cmp r1, #0 - beq _0806F1A0 - ldr r0, _0806F1A4 @ =gUnk_02002A40 - ldr r2, _0806F1A8 @ =0x000001C1 - adds r0, r0, r2 - adds r0, r1, r0 - movs r1, #0xf3 - strb r1, [r0] -_0806F1A0: - pop {pc} - .align 2, 0 -_0806F1A4: .4byte gUnk_02002A40 -_0806F1A8: .4byte 0x000001C1 - - thumb_func_start sub_0806F1AC -sub_0806F1AC: @ 0x0806F1AC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r6, r1, #0 - ldrh r1, [r6, #2] - asrs r7, r1, #4 - movs r0, #1 - ands r7, r0 - movs r0, #0xf - ands r1, r0 - cmp r1, #6 - bls _0806F1C8 - b _0806F332 -_0806F1C8: - lsls r0, r1, #2 - ldr r1, _0806F1D4 @ =_0806F1D8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806F1D4: .4byte _0806F1D8 -_0806F1D8: @ jump table - .4byte _0806F332 @ case 0 - .4byte _0806F342 @ case 1 - .4byte _0806F1F4 @ case 2 - .4byte _0806F24E @ case 3 - .4byte _0806F2BA @ case 4 - .4byte _0806F324 @ case 5 - .4byte _0806F336 @ case 6 -_0806F1F4: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F210 @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #1 - beq _0806F22A - cmp r1, #1 - bgt _0806F214 - cmp r1, #0 - beq _0806F21A - b _0806F248 - .align 2, 0 -_0806F210: .4byte 0x00000FFF -_0806F214: - cmp r1, #2 - beq _0806F23A - b _0806F248 -_0806F21A: - adds r0, r4, #0 - bl sub_0807CC3C - adds r5, r0, #0 -_0806F222: - adds r0, r4, #0 - bl sub_0807CD10 - b _0806F248 -_0806F22A: - adds r0, r4, #0 - bl sub_0807CBD0 - adds r5, r0, #0 -_0806F232: - adds r0, r4, #0 - bl sub_0807CCB4 - b _0806F248 -_0806F23A: - adds r0, r4, #0 - bl GetProgressFlag - adds r5, r0, #0 - adds r0, r4, #0 - bl sub_0807CD04 -_0806F248: - cmp r5, #0 - beq _0806F342 - b _0806F34C -_0806F24E: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F26C @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #1 - beq _0806F28A - cmp r1, #1 - bgt _0806F270 - cmp r1, #0 - beq _0806F276 - b _0806F248 - .align 2, 0 -_0806F26C: .4byte 0x00000FFF -_0806F270: - cmp r1, #2 - beq _0806F29E - b _0806F248 -_0806F276: - adds r0, r4, #0 - bl sub_0807CC3C - adds r5, r0, #0 - cmp r5, #0 - beq _0806F222 - adds r0, r4, #0 - bl sub_0807CD8C - b _0806F248 -_0806F28A: - adds r0, r4, #0 - bl sub_0807CBD0 - adds r5, r0, #0 - cmp r5, #0 - beq _0806F232 - adds r0, r4, #0 - bl sub_0807CD34 - b _0806F248 -_0806F29E: - adds r0, r4, #0 - bl GetProgressFlag - adds r5, r0, #0 - cmp r5, #0 - bne _0806F2B2 - adds r0, r4, #0 - bl sub_0807CD04 - b _0806F248 -_0806F2B2: - adds r0, r4, #0 - bl sub_0807CD80 - b _0806F248 -_0806F2BA: - ldr r4, [r6] - asrs r1, r4, #0xc - movs r0, #0xf - ands r1, r0 - ldr r0, _0806F2D8 @ =0x00000FFF - ands r4, r0 - movs r5, #0 - cmp r1, #4 - bhi _0806F248 - lsls r0, r1, #2 - ldr r1, _0806F2DC @ =_0806F2E0 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0806F2D8: .4byte 0x00000FFF -_0806F2DC: .4byte _0806F2E0 -_0806F2E0: @ jump table - .4byte _0806F2F4 @ case 0 - .4byte _0806F2FC @ case 1 - .4byte _0806F304 @ case 2 - .4byte _0806F30C @ case 3 - .4byte _0806F314 @ case 4 -_0806F2F4: - adds r0, r4, #0 - bl sub_0807CC3C - b _0806F320 -_0806F2FC: - adds r0, r4, #0 - bl sub_0807CBD0 - b _0806F320 -_0806F304: - adds r0, r4, #0 - bl GetProgressFlag - b _0806F320 -_0806F30C: - adds r0, r4, #0 - bl sub_0801E7F4 - b _0806F320 -_0806F314: - adds r0, r4, #0 - bl sub_0807CA84 - cmp r0, #0 - beq _0806F320 - movs r0, #1 -_0806F320: - adds r5, r0, #0 - b _0806F248 -_0806F324: - ldr r1, [r6, #4] - cmp r1, #0 - beq _0806F332 - mov r0, r8 - bl _call_via_r1 - b _0806F35E -_0806F332: - movs r0, #0 - b _0806F34E -_0806F336: - ldr r0, _0806F348 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0806F34C -_0806F342: - ldrh r0, [r6, #6] - b _0806F34E - .align 2, 0 -_0806F348: .4byte gUnk_03003F80 -_0806F34C: - ldrh r0, [r6, #4] -_0806F34E: - cmp r7, #0 - beq _0806F35A - mov r1, r8 - bl sub_08056398 - b _0806F35E -_0806F35A: - bl sub_08056378 -_0806F35E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806F364 -sub_0806F364: @ 0x0806F364 - push {lr} - ldr r2, _0806F384 @ =gUnk_02033A90 - ldrb r0, [r2, #8] - movs r1, #0x80 - eors r0, r1 - strb r0, [r2, #8] - ldrb r1, [r2, #8] - adds r0, r1, #7 - asrs r0, r0, #3 - ldr r3, _0806F388 @ =0x00000868 - adds r1, r2, r3 - adds r0, r0, r1 - movs r1, #0x10 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_0806F384: .4byte gUnk_02033A90 -_0806F388: .4byte 0x00000868 - - thumb_func_start sub_0806F38C -sub_0806F38C: @ 0x0806F38C - ldr r0, _0806F398 @ =gUnk_02033A90 - ldrb r1, [r0, #8] - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #8] - bx lr - .align 2, 0 -_0806F398: .4byte gUnk_02033A90 - - thumb_func_start sub_0806F39C -sub_0806F39C: @ 0x0806F39C - push {r4, lr} - adds r3, r0, #0 - ldr r2, _0806F3B8 @ =gLinkEntity - ldrb r1, [r2, #0x14] - movs r0, #2 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0806F3BC - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r2, #0x2e - ldrsh r0, [r4, r2] - b _0806F3C4 - .align 2, 0 -_0806F3B8: .4byte gLinkEntity -_0806F3BC: - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] -_0806F3C4: - subs r1, r1, r0 - cmp r1, #0 - bge _0806F3CC - rsbs r1, r1, #0 -_0806F3CC: - cmp r1, #0x40 - bgt _0806F3D4 - movs r0, #0 - b _0806F3E2 -_0806F3D4: - movs r0, #0x24 - ldrsh r1, [r3, r0] - ldrb r2, [r3, #0x15] - adds r0, r4, #0 - bl sub_080027EA - movs r0, #1 -_0806F3E2: - pop {r4, pc} - - thumb_func_start sub_0806F3E4 -sub_0806F3E4: @ 0x0806F3E4 - push {r4, r5, r6, lr} - sub sp, #0x88 - adds r5, r0, #0 - ldr r2, _0806F408 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1c] - movs r0, #0x7f - ands r0, r1 - cmp r0, #1 - bne _0806F4E0 - ldrb r0, [r2, #0x1d] - cmp r0, #2 - beq _0806F420 - cmp r0, #2 - bgt _0806F40C - cmp r0, #1 - beq _0806F416 - b _0806F410 - .align 2, 0 -_0806F408: .4byte gUnk_03003F80 -_0806F40C: - cmp r0, #3 - beq _0806F42A -_0806F410: - adds r3, r5, #0 - adds r3, #0x46 - b _0806F436 -_0806F416: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0x40 - b _0806F432 -_0806F420: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0x80 - b _0806F432 -_0806F42A: - adds r1, r5, #0 - adds r1, #0x46 - ldrh r0, [r1] - adds r0, #0xc0 -_0806F432: - strh r0, [r1] - adds r3, r1, #0 -_0806F436: - adds r2, r3, #0 - ldrh r0, [r2] - movs r1, #0xa0 - lsls r1, r1, #3 - cmp r0, r1 - bls _0806F444 - strh r1, [r2] -_0806F444: - ldr r6, _0806F4BC @ =gLinkEntity - ldrb r0, [r6, #0x14] - movs r1, #0xe - ands r1, r0 - ldr r0, _0806F4C0 @ =gUnk_08126EE4 - adds r1, r1, r0 - mov r2, sp - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r4, [r6, #0x2e] - adds r0, r0, r4 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r6, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] - ldrh r4, [r3] - adds r0, r5, #0 - mov r1, sp - bl sub_080045C4 - adds r2, r0, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806F5BC - mov r0, sp - adds r1, r5, #0 - movs r2, #4 - movs r3, #4 - bl sub_0800419C - cmp r0, #0 - beq _0806F4E0 - ldrb r0, [r5, #0x1c] - movs r1, #0xf - ands r1, r0 - cmp r1, #2 - bne _0806F4C8 - movs r0, #3 - strb r0, [r5, #0xd] - str r5, [r6, #0x70] - ldr r1, _0806F4C4 @ =gUnk_03003F80 - movs r0, #7 - strb r0, [r1, #0x1c] - movs r0, #0x11 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08077CB8 - cmp r0, #0 - beq _0806F4B4 - str r5, [r0, #0x54] - str r0, [r5, #0x50] -_0806F4B4: - movs r0, #0xed - bl sub_080A3268 - b _0806F4D8 - .align 2, 0 -_0806F4BC: .4byte gLinkEntity -_0806F4C0: .4byte gUnk_08126EE4 -_0806F4C4: .4byte gUnk_03003F80 -_0806F4C8: - cmp r1, #1 - bne _0806F4D8 - ldr r0, _0806F4DC @ =gUnk_03003F80 - ldr r0, [r0, #0x2c] - strb r1, [r0, #0xa] - movs r0, #0xef - bl sub_080A3268 -_0806F4D8: - movs r0, #1 - b _0806F4E2 - .align 2, 0 -_0806F4DC: .4byte gUnk_03003F80 -_0806F4E0: - movs r0, #0 -_0806F4E2: - add sp, #0x88 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F4E8 -sub_0806F4E8: @ 0x0806F4E8 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0x1d] - movs r2, #3 - ands r2, r0 - cmp r2, #1 - beq _0806F516 - cmp r2, #1 - bgt _0806F500 - cmp r2, #0 - beq _0806F510 - b _0806F51C -_0806F500: - cmp r2, #2 - beq _0806F50A - cmp r2, #3 - beq _0806F516 - b _0806F51C -_0806F50A: - adds r1, #0x62 - movs r0, #0xfe - b _0806F51A -_0806F510: - adds r1, #0x62 - movs r0, #2 - b _0806F51A -_0806F516: - adds r1, #0x62 - movs r0, #0 -_0806F51A: - strb r0, [r1] -_0806F51C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806F520 -sub_0806F520: @ 0x0806F520 - push {lr} - adds r2, r0, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0x93 - beq _0806F544 - adds r3, r2, #0 - adds r3, #0x3a - ldrb r1, [r3] - movs r0, #0xfb - ands r0, r1 - movs r1, #0 - strb r0, [r3] - adds r0, r2, #0 - adds r0, #0x63 - strb r1, [r0] - movs r0, #0 - b _0806F546 -_0806F544: - movs r0, #1 -_0806F546: - pop {pc} - - thumb_func_start sub_0806F548 -sub_0806F548: @ 0x0806F548 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_080041A0 - cmp r0, #0 - bne _0806F55A - movs r0, #0 - b _0806F562 -_0806F55A: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806F58C -_0806F562: - pop {r4, r5, pc} - - thumb_func_start sub_0806F564 -sub_0806F564: @ 0x0806F564 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r3, r2, #0 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - adds r2, r5, #0 - bl sub_080045D4 - bl sub_0806F5A4 - movs r2, #0 - ldrb r1, [r4, #0x14] - cmp r1, r0 - bne _0806F588 - movs r2, #1 -_0806F588: - adds r0, r2, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0806F58C -sub_0806F58C: @ 0x0806F58C - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FCA0 - movs r2, #0 - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - cmp r1, r0 - bne _0806F5A0 - movs r2, #1 -_0806F5A0: - adds r0, r2, #0 - pop {r4, pc} - - thumb_func_start sub_0806F5A4 -sub_0806F5A4: @ 0x0806F5A4 - ldr r1, _0806F5AC @ =gUnk_08114F38 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0806F5AC: .4byte gUnk_08114F38 - - thumb_func_start sub_0806F5B0 -sub_0806F5B0: @ 0x0806F5B0 - ldr r1, _0806F5B8 @ =gUnk_08114F58 - adds r0, r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0806F5B8: .4byte gUnk_08114F58 - - thumb_func_start sub_0806F5BC -sub_0806F5BC: @ 0x0806F5BC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _0806F620 - ldr r0, _0806F628 @ =gUnk_080C9160 - mov r8, r0 - lsls r4, r2, #3 - lsls r0, r2, #4 - add r0, r8 - movs r2, #0 - ldrsh r0, [r0, r2] - lsls r5, r1, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r6, #0x80 - lsls r6, r6, #1 - adds r1, r6, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x2c] - adds r1, r1, r0 - str r1, [r7, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, r8 - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r6, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r7, #0x30] - subs r1, r1, r0 - str r1, [r7, #0x30] -_0806F620: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806F628: .4byte gUnk_080C9160 - - thumb_func_start sub_0806F62C -sub_0806F62C: @ 0x0806F62C - push {r4, r5, r6, lr} - mov r6, sb - mov r5, r8 - push {r5, r6} - adds r6, r0, #0 - adds r5, r1, #0 - adds r4, r2, #0 - ldr r0, _0806F698 @ =gUnk_080C9160 - mov sb, r0 - lsls r4, r4, #0x18 - lsrs r4, r4, #0x18 - lsls r0, r4, #1 - add r0, sb - movs r1, #0 - ldrsh r0, [r0, r1] - lsls r5, r5, #0x10 - asrs r5, r5, #0x10 - adds r1, r5, #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 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x2c] - adds r1, r1, r0 - str r1, [r6, #0x2c] - adds r4, #0x40 - lsls r4, r4, #1 - add r4, sb - movs r1, #0 - ldrsh r0, [r4, r1] - adds r1, r5, #0 - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - mov r1, r8 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x30] - subs r1, r1, r0 - str r1, [r6, #0x30] - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F698: .4byte gUnk_080C9160 - - thumb_func_start sub_0806F69C -sub_0806F69C: @ 0x0806F69C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldrb r1, [r6, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806F6FE - ldr r5, _0806F700 @ =gUnk_080C9160 - ldrb r0, [r6, #0x15] - lsls r0, r0, #4 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0x24 - ldrsh r1, [r6, r2] - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x2c] - adds r1, r1, r0 - str r1, [r6, #0x2c] - ldrb r0, [r6, #0x15] - lsls r0, r0, #4 - adds r0, #0x80 - adds r0, r0, r5 - movs r1, #0 - ldrsh r0, [r0, r1] - movs r2, #0x24 - ldrsh r1, [r6, r2] - bl sub_0806F9EC - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - adds r1, r4, #0 - bl sub_0806FA04 - lsls r0, r0, #0x10 - asrs r0, r0, #8 - ldr r1, [r6, #0x30] - subs r1, r1, r0 - str r1, [r6, #0x30] -_0806F6FE: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F700: .4byte gUnk_080C9160 - - thumb_func_start sub_0806F704 -sub_0806F704: @ 0x0806F704 - push {r4, r5, r6, lr} - lsls r3, r1, #4 - movs r2, #0xfc - lsls r2, r2, #2 - adds r6, r2, #0 - ands r3, r6 - movs r5, #8 - orrs r3, r5 - ldr r4, _0806F72C @ =gUnk_03000BF0 - ldrh r2, [r4, #6] - adds r2, r2, r3 - strh r2, [r0, #0x2e] - lsrs r1, r1, #2 - ands r1, r6 - orrs r1, r5 - ldrh r2, [r4, #8] - adds r2, r2, r1 - strh r2, [r0, #0x32] - pop {r4, r5, r6, pc} - .align 2, 0 -_0806F72C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806F730 -sub_0806F730: @ 0x0806F730 - push {r4, r5, r6, lr} - movs r6, #0x3f - movs r1, #0x2e - ldrsh r2, [r0, r1] - ldr r4, [r0, #0x48] - movs r1, #0 - ldrsb r1, [r4, r1] - adds r2, r2, r1 - ldr r3, _0806F764 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r5, r2, r1 - movs r2, #0x32 - ldrsh r1, [r0, r2] - movs r2, #1 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - ldrh r2, [r3, #8] - subs r1, r1, r2 - ldrb r0, [r0, #0x14] - cmp r0, #2 - beq _0806F77E - cmp r0, #2 - bgt _0806F768 - cmp r0, #0 - beq _0806F772 - b _0806F788 - .align 2, 0 -_0806F764: .4byte gUnk_03000BF0 -_0806F768: - cmp r0, #4 - beq _0806F778 - cmp r0, #6 - beq _0806F784 - b _0806F788 -_0806F772: - ldrb r0, [r4, #5] - subs r1, r1, r0 - b _0806F788 -_0806F778: - ldrb r0, [r4, #5] - adds r1, r1, r0 - b _0806F788 -_0806F77E: - ldrb r0, [r4, #2] - adds r5, r5, r0 - b _0806F788 -_0806F784: - ldrb r0, [r4, #2] - subs r5, r5, r0 -_0806F788: - lsrs r0, r5, #4 - ands r0, r6 - lsrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - adds r0, r0, r1 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F798 -sub_0806F798: @ 0x0806F798 - push {r4, r5, lr} - adds r2, r0, #0 - movs r1, #0x2e - ldrsh r0, [r2, r1] - ldr r4, [r2, #0x48] - movs r1, #0 - ldrsb r1, [r4, r1] - adds r0, r0, r1 - ldr r3, _0806F7CC @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r0, r0, r1 - movs r5, #0x32 - ldrsh r1, [r2, r5] - movs r2, #1 - ldrsb r2, [r4, r2] - adds r1, r1, r2 - ldrh r2, [r3, #8] - subs r1, r1, r2 - movs r2, #0x3f - lsrs r0, r0, #4 - ands r0, r2 - lsrs r1, r1, #4 - ands r1, r2 - lsls r1, r1, #6 - adds r0, r0, r1 - pop {r4, r5, pc} - .align 2, 0 -_0806F7CC: .4byte gUnk_03000BF0 - - thumb_func_start sub_0806F7D0 -sub_0806F7D0: @ 0x0806F7D0 - push {r4, lr} - ldr r4, _0806F7E4 @ =gUnk_02025EB0 - bl sub_0806F730 - ldr r1, _0806F7E8 @ =0x00002004 - adds r4, r4, r1 - adds r0, r0, r4 - ldrb r0, [r0] - pop {r4, pc} - .align 2, 0 -_0806F7E4: .4byte gUnk_02025EB0 -_0806F7E8: .4byte 0x00002004 - - thumb_func_start sub_0806F7EC -sub_0806F7EC: @ 0x0806F7EC - push {r4, lr} - ldr r4, _0806F800 @ =gUnk_02025EB0 - bl sub_0806F730 - lsls r0, r0, #1 - adds r4, #4 - adds r0, r0, r4 - ldrh r0, [r0] - pop {r4, pc} - .align 2, 0 -_0806F800: .4byte gUnk_02025EB0 - - thumb_func_start sub_0806F804 -sub_0806F804: @ 0x0806F804 - lsrs r0, r0, #4 - movs r2, #0x3f - ands r0, r2 - movs r2, #0xfc - lsls r2, r2, #2 - ands r2, r1 - lsls r2, r2, #2 - adds r0, r0, r2 - ldr r1, _0806F820 @ =gUnk_02025EB0 - lsls r0, r0, #1 - adds r1, #4 - adds r0, r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_0806F820: .4byte gUnk_02025EB0 - - thumb_func_start sub_0806F824 -sub_0806F824: @ 0x0806F824 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - adds r4, r2, #0 - adds r5, r3, #0 - movs r2, #0x2e - ldrsh r6, [r0, r2] - movs r2, #0x32 - ldrsh r3, [r0, r2] - mov r8, r3 - movs r3, #0x2e - ldrsh r2, [r1, r3] - adds r2, r2, r4 - movs r0, #0x32 - ldrsh r3, [r1, r0] - adds r3, r3, r5 - adds r0, r6, #0 - mov r1, r8 - bl sub_080045D4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F854 -sub_0806F854: @ 0x0806F854 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r3, r1, #0 - adds r6, r2, #0 - ldr r0, [r4, #0x34] - cmp r0, #0 - beq _0806F8D6 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806F8D6 - movs r1, #0x2e - ldrsh r0, [r4, r1] - adds r0, r0, r3 - ldr r2, _0806F8BC @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r5, #0x3f - ands r0, r5 - movs r3, #0x32 - ldrsh r1, [r4, r3] - adds r1, r1, r6 - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r5 - lsls r1, r1, #6 - orrs r0, r1 - movs r1, #2 - movs r2, #8 - bl sub_080002F0 - cmp r0, #0 - beq _0806F8C0 - ldrb r1, [r4, #0x19] - adds r0, r5, #0 - ands r0, r1 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r1, [r4, #0x1b] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] - movs r0, #1 - b _0806F8D8 - .align 2, 0 -_0806F8BC: .4byte gUnk_03000BF0 -_0806F8C0: - ldrb r1, [r4, #0x19] - adds r0, r5, #0 - ands r0, r1 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r1, [r4, #0x1b] - adds r0, r5, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x1b] -_0806F8D6: - movs r0, #0 -_0806F8D8: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806F8DC -sub_0806F8DC: @ 0x0806F8DC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x38 - ldrb r1, [r5] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0806F942 - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #4 - movs r2, #2 - bl sub_080002A4 - cmp r0, #0 - beq _0806F91C - ldrb r2, [r4, #0x19] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r4, #0x19] - ldrb r0, [r4, #0x1b] - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x1b] - movs r0, #1 - b _0806F944 -_0806F91C: - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #4 - ldrb r2, [r5] - bl sub_080002A4 - 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] -_0806F942: - movs r0, #0 -_0806F944: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806F948 -sub_0806F948: @ 0x0806F948 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0806F974 @ =gUnk_03003F80 - ldrb r0, [r1, #0xd] - cmp r0, #0xff - beq _0806F994 - ldrb r0, [r1, #0xd] - lsrs r3, r0, #2 - movs r0, #1 - ands r0, r3 - cmp r0, #0 - beq _0806F978 - ldrb r2, [r4, #0x14] - subs r0, r2, #1 - subs r0, r3, r0 - movs r1, #4 - ands r0, r1 - cmp r0, #0 - bne _0806F978 - adds r0, r2, #0 - b _0806F996 - .align 2, 0 -_0806F974: .4byte gUnk_03003F80 -_0806F978: - movs r2, #0 - cmp r3, #4 - bls _0806F980 - movs r2, #1 -_0806F980: - lsls r2, r2, #6 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - movs r0, #6 - ands r3, r0 - strb r3, [r4, #0x14] -_0806F994: - ldrb r0, [r4, #0x14] -_0806F996: - pop {r4, pc} - - thumb_func_start sub_0806F998 -sub_0806F998: @ 0x0806F998 - push {r4, lr} - adds r2, r0, #0 - ldrb r4, [r2, #0x14] - ldrb r1, [r2, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0806F9E6 - movs r0, #0x1c - ands r0, r1 - lsrs r3, r0, #2 - movs r1, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0806F9C4 - subs r0, r3, r4 - adds r0, #1 - movs r1, #4 - ands r0, r1 - cmp r0, #0 - beq _0806F9E6 -_0806F9C4: - ldrb r0, [r2, #0x15] - lsrs r0, r0, #2 - movs r1, #0x7e - ands r0, r1 - strb r0, [r2, #0x14] - adds r4, r0, #0 - cmp r4, #4 - bhi _0806F9DE - ldrb r1, [r2, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - b _0806F9E4 -_0806F9DE: - ldrb r0, [r2, #0x18] - movs r1, #0x40 - orrs r0, r1 -_0806F9E4: - strb r0, [r2, #0x18] -_0806F9E6: - adds r0, r4, #0 - 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 sub_0806FA48 - pop {pc} - - thumb_func_start sub_0806FA30 -sub_0806FA30: @ 0x0806FA30 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_0806FA48 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FAB0 - pop {r4, r5, pc} - - thumb_func_start sub_0806FA48 -sub_0806FA48: @ 0x0806FA48 - push {r4, lr} - ldr r4, [r0, #0x2c] - adds r4, r4, r2 - str r4, [r1, #0x2c] - ldr r2, [r0, #0x30] - adds r2, r2, r3 - str r2, [r1, #0x30] - ldr r2, [r0, #0x34] - str r2, [r1, #0x34] - adds r0, #0x38 - ldrb r2, [r0] - adds r0, r1, #0 - adds r0, #0x38 - strb r2, [r0] - adds r0, r1, #0 - bl sub_08016A04 - pop {r4, pc} - - thumb_func_start sub_0806FA6C -sub_0806FA6C: @ 0x0806FA6C - push {lr} - adds r2, r0, #0 - adds r2, #0x62 - ldrb r2, [r2] - adds r3, r1, #0 - adds r3, #0x62 - strb r2, [r3] - adds r2, r0, #0 - adds r2, #0x63 - ldrb r2, [r2] - adds r3, #1 - strb r2, [r3] - movs r2, #0 - movs r3, #0 - bl sub_0806FA48 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0806FA90 -sub_0806FA90: @ 0x0806FA90 - push {r4, r5, lr} - adds r4, r0, #0 - adds r4, #0x62 - ldrb r4, [r4] - movs r5, #0x62 - strb r4, [r5, r1] - adds r4, r0, #0 - adds r4, #0x63 - ldrb r4, [r4] - movs r5, #0x63 - strb r4, [r5, r1] - lsls r2, r2, #0x10 - lsls r3, r3, #0x10 - bl sub_0806FA48 - pop {r4, r5, pc} - - thumb_func_start sub_0806FAB0 -sub_0806FAB0: @ 0x0806FAB0 - ldr r2, _0806FAD4 @ =gUnk_08114F78 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x29 - movs r2, #7 - ands r2, r0 - ldrb r3, [r1] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0806FAD4: .4byte gUnk_08114F78 - - thumb_func_start sub_0806FAD8 -sub_0806FAD8: @ 0x0806FAD8 - ldr r2, _0806FAFC @ =gUnk_08114F80 - adds r0, #0x29 - ldrb r0, [r0] - lsls r0, r0, #0x1d - lsrs r0, r0, #0x1d - adds r0, r0, r2 - ldrb r0, [r0] - adds r1, #0x29 - movs r2, #7 - ands r2, r0 - ldrb r3, [r1] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0806FAFC: .4byte gUnk_08114F80 - - thumb_func_start sub_0806FB00 -sub_0806FB00: @ 0x0806FB00 - push {r4, lr} - mov ip, r0 - adds r4, r1, #0 - cmp r3, #0 - bne _0806FB0C - movs r3, #1 -_0806FB0C: - mov r1, ip - adds r1, #0x7e - movs r0, #0 - strb r0, [r1] - mov r0, ip - adds r0, #0x7f - strb r3, [r0] - mov r0, ip - ldrh r1, [r0, #0x2e] - adds r0, #0x80 - strh r1, [r0] - mov r1, ip - ldrh r0, [r1, #0x32] - adds r1, #0x82 - strh r0, [r1] - mov r0, ip - adds r0, #0x84 - strh r4, [r0] - adds r0, #2 - strh r2, [r0] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806FB38 -sub_0806FB38: @ 0x0806FB38 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r5, #0 - adds r6, #0x7e - adds r7, r5, #0 - adds r7, #0x7f - ldrb r0, [r6] - ldrb r1, [r7] - cmp r0, r1 - bhs _0806FBA0 - adds r0, #1 - strb r0, [r6] - adds r0, r5, #0 - adds r0, #0x84 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r4, r5, #0 - adds r4, #0x80 - movs r2, #0 - ldrsh r0, [r4, r2] - subs r1, r1, r0 - ldrb r0, [r6] - muls r0, r1, r0 - lsls r0, r0, #8 - ldrb r1, [r7] - bl __divsi3 - asrs r0, r0, #8 - ldrh r4, [r4] - adds r0, r0, r4 - strh r0, [r5, #0x2e] - adds r0, r5, #0 - adds r0, #0x86 - movs r2, #0 - ldrsh r1, [r0, r2] - adds r4, r5, #0 - adds r4, #0x82 - movs r2, #0 - ldrsh r0, [r4, r2] - subs r1, r1, r0 - ldrb r0, [r6] - muls r0, r1, r0 - lsls r0, r0, #8 - ldrb r1, [r7] - bl __divsi3 - asrs r0, r0, #8 - ldrh r4, [r4] - adds r0, r0, r4 - strh r0, [r5, #0x32] - movs r0, #0 - b _0806FBB2 -_0806FBA0: - adds r0, r5, #0 - adds r0, #0x84 - ldrh r0, [r0] - strh r0, [r5, #0x2e] - adds r0, r5, #0 - adds r0, #0x86 - ldrh r0, [r0] - strh r0, [r5, #0x32] - movs r0, #1 -_0806FBB2: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0806FBB4 -sub_0806FBB4: @ 0x0806FBB4 - push {lr} - adds r1, r0, #0 - ldr r0, _0806FBD0 @ =gUnk_030010A0 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _0806FBC8 - ldr r0, _0806FBD4 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _0806FBCC -_0806FBC8: - movs r0, #6 - strb r0, [r1, #0xd] -_0806FBCC: - pop {pc} - .align 2, 0 -_0806FBD0: .4byte gUnk_030010A0 -_0806FBD4: .4byte gUnk_03003F80 - - thumb_func_start sub_0806FBD8 -sub_0806FBD8: @ 0x0806FBD8 - push {r4, lr} - adds r4, r0, #0 - bl sub_0806FBEC - movs r0, #0xc - bl sub_0801D8E0 - str r0, [r4, #0x48] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806FBEC -sub_0806FBEC: @ 0x0806FBEC - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x48] - bl sub_0801DA0C - movs r0, #0 - str r0, [r4, #0x48] - pop {r4, pc} - - thumb_func_start sub_0806FBFC -sub_0806FBFC: @ 0x0806FBFC - push {r4, r5, r6, lr} - adds r5, r3, #0 - ldr r4, _0806FC20 @ =gLinkEntity - movs r6, #0x2e - ldrsh r3, [r4, r6] - subs r3, r3, r0 - movs r6, #0x32 - ldrsh r0, [r4, r6] - subs r0, r0, r1 - movs r1, #0 - cmp r3, r2 - bhs _0806FC1A - cmp r0, r5 - bhs _0806FC1A - movs r1, #1 -_0806FC1A: - adds r0, r1, #0 - pop {r4, r5, r6, pc} - .align 2, 0 -_0806FC20: .4byte gLinkEntity - - thumb_func_start sub_0806FC24 -sub_0806FC24: @ 0x0806FC24 - push {r4, lr} - adds r4, r1, #0 - ldr r1, _0806FC44 @ =gUnk_080046A4 - bl sub_08007DD6 - cmp r0, #0 - beq _0806FC4C - lsls r0, r0, #3 - ldr r1, _0806FC48 @ =gUnk_080047F6 - adds r0, r0, r1 - ldrh r0, [r0] - asrs r0, r4 - movs r1, #1 - ands r0, r1 - b _0806FC4E - .align 2, 0 -_0806FC44: .4byte gUnk_080046A4 -_0806FC48: .4byte gUnk_080047F6 -_0806FC4C: - movs r0, #0 -_0806FC4E: - pop {r4, pc} - - thumb_func_start sub_0806FC50 -sub_0806FC50: @ 0x0806FC50 - push {r4, lr} - adds r4, r1, #0 - ldr r1, _0806FC74 @ =gUnk_080046A4 - bl sub_08007DD6 - cmp r0, #0 - beq _0806FC70 - ldr r1, _0806FC78 @ =gUnk_080047F6 - lsls r0, r0, #3 - adds r2, r0, r1 - ldrh r0, [r2] - asrs r0, r4 - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0806FC7C -_0806FC70: - movs r0, #0 - b _0806FC7E - .align 2, 0 -_0806FC74: .4byte gUnk_080046A4 -_0806FC78: .4byte gUnk_080047F6 -_0806FC7C: - adds r0, r2, #0 -_0806FC7E: - pop {r4, pc} - - thumb_func_start sub_0806FC80 -sub_0806FC80: @ 0x0806FC80 - push {r4, r5, lr} - lsls r4, r2, #4 - movs r2, #0x2e - ldrsh r3, [r1, r2] - movs r5, #0x32 - ldrsh r2, [r1, r5] - adds r1, r3, #0 - bl sub_080041DC - cmp r4, r0 - bhs _0806FC9A - movs r0, #0 - b _0806FC9C -_0806FC9A: - movs r0, #1 -_0806FC9C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0806FCA0 -sub_0806FCA0: @ 0x0806FCA0 - push {lr} - bl sub_080045C4 - bl sub_0806F5A4 - pop {pc} - - thumb_func_start sub_0806FCAC -sub_0806FCAC: @ 0x0806FCAC - push {lr} - bl sub_080045C4 - bl sub_0806F5B0 - pop {pc} - - thumb_func_start sub_0806FCB8 -sub_0806FCB8: @ 0x0806FCB8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r5, #0x2e - ldrsh r0, [r4, r5] - subs r0, r0, r1 - movs r5, #0x32 - ldrsh r1, [r4, r5] - subs r1, r1, r2 - adds r2, r3, #0 - bl sub_0806FCD0 - pop {r4, r5, pc} - - thumb_func_start sub_0806FCD0 -sub_0806FCD0: @ 0x0806FCD0 - push {r4, lr} - movs r3, #0 - adds r4, r2, #0 - muls r4, r2, r4 - adds r2, r4, #0 - adds r4, r0, #0 - muls r4, r0, r4 - adds r0, r4, #0 - adds r4, r1, #0 - muls r4, r1, r4 - adds r1, r4, #0 - adds r0, r0, r1 - cmp r2, r0 - blt _0806FCEE - movs r3, #1 -_0806FCEE: - adds r0, r3, #0 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0806FCF4 -sub_0806FCF4: @ 0x0806FCF4 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r2, #0 - adds r5, r3, #0 - movs r2, #0 - cmp r1, #0 - bge _0806FD04 - rsbs r1, r1, #0 -_0806FD04: - cmp r4, #0 - beq _0806FD1A - movs r0, #0x80 - lsls r0, r0, #9 - bl __divsi3 - adds r1, r0, #0 - adds r0, r4, #0 - muls r0, r1, r0 - lsrs r1, r0, #8 - subs r2, r4, r1 -_0806FD1A: - cmp r5, #0 - beq _0806FD22 - cmp r5, #3 - bne _0806FD24 -_0806FD22: - rsbs r2, r2, #0 -_0806FD24: - cmp r5, #0 - beq _0806FD2C - cmp r5, #2 - bne _0806FD32 -_0806FD2C: - adds r0, r6, #0 - adds r0, #0x63 - b _0806FD36 -_0806FD32: - adds r0, r6, #0 - adds r0, #0x62 -_0806FD36: - strb r2, [r0] - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0806FD3C -sub_0806FD3C: @ 0x0806FD3C - ldrb r2, [r0, #0x18] - movs r1, #0x31 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #0x18] - adds r0, #0x29 - ldrb r2, [r0] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0] - bx lr - - thumb_func_start sub_0806FD54 -sub_0806FD54: @ 0x0806FD54 - push {r4, lr} - adds r3, r0, #0 - ldr r0, _0806FD6C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - cmp r0, #0 - bne _0806FD70 - movs r0, #0 - b _0806FD84 - .align 2, 0 -_0806FD6C: .4byte gUnk_03003F80 -_0806FD70: - ldr r0, _0806FD88 @ =gLinkEntity - movs r2, #0x2e - ldrsh r1, [r0, r2] - movs r4, #0x32 - ldrsh r2, [r0, r4] - subs r2, #9 - adds r0, r3, #0 - movs r3, #0x48 - bl sub_0806FCB8 -_0806FD84: - pop {r4, pc} - .align 2, 0 -_0806FD88: .4byte gLinkEntity - - thumb_func_start sub_0806FD8C -sub_0806FD8C: @ 0x0806FD8C - push {lr} - ldr r0, _0806FD9C @ =gUnk_020000C0 - movs r1, #0xc0 - lsls r1, r1, #4 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_0806FD9C: .4byte gUnk_020000C0 - - thumb_func_start sub_0806FDA0 -sub_0806FDA0: @ 0x0806FDA0 - push {r4, lr} - movs r3, #1 - ldr r1, _0806FDD8 @ =gUnk_020000C0 - movs r4, #0xff - movs r2, #0x61 - adds r2, r2, r1 - mov ip, r2 - adds r2, r1, #0 - adds r2, #0x40 - adds r1, r0, #0 - adds r1, #0x28 -_0806FDB6: - ldrb r0, [r2] - lsls r0, r0, #0x1f - cmp r0, #0 - bne _0806FDDC - strb r3, [r1] - ldrb r0, [r2] - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - strb r4, [r2, #1] - strb r4, [r2, #0x11] - mov r0, ip - strb r4, [r0] - strb r4, [r0, #0x10] - movs r0, #1 - b _0806FDEA - .align 2, 0 -_0806FDD8: .4byte gUnk_020000C0 -_0806FDDC: - movs r0, #0x40 - add ip, r0 - adds r2, #0x40 - adds r3, #1 - cmp r3, #0x2f - bls _0806FDB6 - movs r0, #0 -_0806FDEA: - pop {r4, pc} - - thumb_func_start sub_0806FDEC -sub_0806FDEC: @ 0x0806FDEC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r4, r1, #0 - bl sub_0806FDA0 - cmp r0, #0 - bne _0806FE02 - movs r0, #0 - b _0806FE74 -_0806FE02: - adds r0, r6, #0 - bl sub_0801D230 - adds r0, r6, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #6 - ldr r1, _0806FE7C @ =gUnk_020000C0 - adds r5, r0, r1 - movs r7, #0 - ldrh r1, [r4, #2] - ldr r0, _0806FE80 @ =0x000003FF - ands r0, r1 - movs r1, #0x27 - adds r1, r1, r6 - mov r8, r1 - cmp r0, #0 - beq _0806FE6C -_0806FE26: - ldr r1, [r4] - lsls r1, r1, #0x16 - lsrs r1, r1, #0x16 - adds r0, r6, #0 - bl sub_0801D040 - adds r2, r0, #0 - ldr r3, [r4] - lsls r1, r3, #6 - lsrs r1, r1, #0x16 - lsls r3, r3, #0x10 - lsrs r3, r3, #0x1a - adds r0, r5, #0 - bl sub_0806FEE8 - ldrb r1, [r4, #3] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0806FE56 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0806FEFC -_0806FE56: - adds r5, #0x10 - adds r4, #4 - adds r7, #1 - cmp r7, #3 - bhi _0806FE6C - ldrh r1, [r4, #2] - ldr r2, _0806FE80 @ =0x000003FF - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0806FE26 -_0806FE6C: - movs r0, #0 - mov r1, r8 - strb r0, [r1] - movs r0, #1 -_0806FE74: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0806FE7C: .4byte gUnk_020000C0 -_0806FE80: .4byte 0x000003FF - - thumb_func_start sub_0806FE84 -sub_0806FE84: @ 0x0806FE84 - push {r4, r5, r6, lr} - adds r0, #0x28 - ldrb r2, [r0] - movs r1, #0 - strb r1, [r0] - subs r0, r2, #1 - cmp r0, #0x7e - bhi _0806FEB4 - lsls r1, r2, #6 - ldr r0, _0806FEB8 @ =gUnk_020000C0 - adds r6, r1, r0 - movs r5, #0 - adds r4, r6, #0 -_0806FE9E: - ldrb r0, [r4, #5] - bl sub_0801D244 - adds r4, #0x10 - adds r5, #1 - cmp r5, #3 - bls _0806FE9E - adds r0, r6, #0 - movs r1, #0x40 - bl sub_0801D630 -_0806FEB4: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806FEB8: .4byte gUnk_020000C0 - - thumb_func_start sub_0806FEBC -sub_0806FEBC: @ 0x0806FEBC - adds r0, #0x28 - ldrb r3, [r0] - lsls r3, r3, #6 - lsls r1, r1, #4 - ldr r0, _0806FEE4 @ =gUnk_020000C0 - adds r1, r1, r0 - adds r3, r3, r1 - movs r0, #0 - str r0, [r3] - str r0, [r3, #4] - str r0, [r3, #8] - str r2, [r3, #0xc] - ldrb r0, [r3] - movs r1, #1 - orrs r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r3] - bx lr - .align 2, 0 -_0806FEE4: .4byte gUnk_020000C0 - - thumb_func_start sub_0806FEE8 -sub_0806FEE8: @ 0x0806FEE8 - strb r3, [r0, #8] - strh r1, [r0, #2] - strb r2, [r0, #5] - ldrb r1, [r0] - movs r2, #8 - orrs r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0] - bx lr - - thumb_func_start sub_0806FEFC -sub_0806FEFC: @ 0x0806FEFC - adds r1, #0x60 - ldrh r1, [r1] - ldrb r2, [r0, #8] - adds r1, r1, r2 - strh r1, [r0, #0xa] - ldrb r1, [r0] - movs r2, #4 - orrs r1, r2 - strb r1, [r0] - bx lr - - thumb_func_start sub_0806FF10 -sub_0806FF10: @ 0x0806FF10 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r5, r2, #0 - adds r0, #0x28 - ldrb r2, [r0] - lsls r2, r2, #6 - lsls r1, r1, #4 - ldr r0, _0806FF44 @ =gUnk_020000C0 - adds r1, r1, r0 - adds r4, r2, r1 - adds r0, r5, #0 - bl sub_0801D108 - ldrb r1, [r4, #5] - cmp r1, r0 - beq _0806FF40 - adds r0, r1, #0 - bl sub_0801D244 - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_0801D040 - strb r0, [r4, #5] -_0806FF40: - pop {r4, r5, r6, pc} - .align 2, 0 -_0806FF44: .4byte gUnk_020000C0 - - thumb_func_start sub_0806FF48 -sub_0806FF48: @ 0x0806FF48 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #6 - lsls r1, r1, #4 - ldr r3, _0806FF5C @ =gUnk_020000C0 - adds r1, r1, r3 - adds r0, r0, r1 - strb r2, [r0, #4] - bx lr - .align 2, 0 -_0806FF5C: .4byte gUnk_020000C0 - - thumb_func_start sub_0806FF60 -sub_0806FF60: @ 0x0806FF60 - push {lr} - adds r3, r2, #0 - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #6 - ldr r2, _0806FF84 @ =gUnk_020000C0 - adds r0, r0, r2 - lsls r1, r1, #4 - adds r2, r0, r1 - ldrb r0, [r2, #1] - cmp r0, r3 - beq _0806FF82 - strb r3, [r2, #1] - ldrb r0, [r2] - movs r1, #8 - orrs r0, r1 - strb r0, [r2] -_0806FF82: - pop {pc} - .align 2, 0 -_0806FF84: .4byte gUnk_020000C0 - - thumb_func_start sub_0806FF88 -sub_0806FF88: @ 0x0806FF88 - push {r4, r5, lr} - adds r5, r1, #0 - adds r0, #0x28 - ldrb r4, [r0] - lsls r4, r4, #6 - ldr r0, _0806FFB8 @ =gUnk_020000C0 - adds r4, r4, r0 - lsls r5, r5, #4 - adds r5, r4, r5 - lsls r2, r2, #4 - adds r4, r4, r2 - ldrh r0, [r5, #2] - ldrb r1, [r5, #1] - bl sub_080700C8 - ldrb r1, [r5, #6] - ldrb r2, [r0] - adds r1, r1, r2 - strb r1, [r4, #6] - ldrb r1, [r5, #7] - ldrb r0, [r0, #1] - adds r1, r1, r0 - strb r1, [r4, #7] - pop {r4, r5, pc} - .align 2, 0 -_0806FFB8: .4byte gUnk_020000C0 - - thumb_func_start sub_0806FFBC -sub_0806FFBC: @ 0x0806FFBC - push {r4, lr} - adds r0, #0x28 - ldrb r0, [r0] - lsls r0, r0, #6 - lsls r1, r1, #4 - ldr r4, _0806FFD4 @ =gUnk_020000C0 - adds r1, r1, r4 - adds r0, r0, r1 - strb r2, [r0, #6] - strb r3, [r0, #7] - pop {r4, pc} - .align 2, 0 -_0806FFD4: .4byte gUnk_020000C0 - - thumb_func_start sub_0806FFD8 -sub_0806FFD8: @ 0x0806FFD8 - push {r4, r5, lr} - adds r5, r1, #0 - adds r0, #0x28 - ldrb r4, [r0] - lsls r4, r4, #6 - ldr r0, _08070008 @ =gUnk_020000C0 - adds r4, r4, r0 - lsls r5, r5, #4 - adds r5, r4, r5 - lsls r2, r2, #4 - adds r4, r4, r2 - ldrh r0, [r5, #2] - ldrb r1, [r5, #1] - bl sub_080700C8 - ldrb r1, [r5, #6] - ldrb r2, [r0, #2] - adds r1, r1, r2 - strb r1, [r4, #6] - ldrb r1, [r5, #7] - ldrb r0, [r0, #3] - adds r1, r1, r0 - strb r1, [r4, #7] - pop {r4, r5, pc} - .align 2, 0 -_08070008: .4byte gUnk_020000C0 - - thumb_func_start sub_0807000C -sub_0807000C: @ 0x0807000C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r6, #0 - adds r7, #0x28 - ldrb r4, [r7] - lsls r4, r4, #6 - ldr r0, _08070074 @ =gUnk_020000C0 - adds r4, r4, r0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0807007C - adds r5, r0, #0 - adds r0, r4, #0 - movs r1, #1 - bl sub_0807007C - orrs r5, r0 - adds r0, r4, #0 - movs r1, #2 - bl sub_0807007C - orrs r5, r0 - adds r0, r4, #0 - movs r1, #3 - bl sub_0807007C - orrs r5, r0 - cmp r5, #0 - beq _08070072 - ldr r3, _08070078 @ =gUnk_02024490 - adds r2, r6, #0 - adds r2, #0x26 - ldrb r1, [r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r7] - strb r1, [r0, #7] - ldrb r1, [r2] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r2, [r0, #4] - movs r1, #0xf - ands r1, r2 - movs r2, #0x30 - orrs r1, r2 - strb r1, [r0, #4] -_08070072: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08070074: .4byte gUnk_020000C0 -_08070078: .4byte gUnk_02024490 - - thumb_func_start sub_0807007C -sub_0807007C: @ 0x0807007C - push {lr} - lsls r1, r1, #4 - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080700C4 - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080700C4 - ldrb r0, [r2, #1] - cmp r0, #0xff - beq _080700C4 - ldrh r0, [r2, #2] - lsls r0, r0, #4 - ldr r1, _080700C0 @ =gUnk_080029B4 - adds r3, r0, r1 - ldr r1, [r3, #4] - cmp r1, #0 - beq _080700C4 - ldrb r0, [r2, #1] - lsls r0, r0, #2 - adds r0, r1, r0 - ldrb r1, [r0] - strb r1, [r2, #9] - ldrh r1, [r0, #2] - lsls r1, r1, #5 - ldr r0, [r3, #8] - adds r0, r0, r1 - str r0, [r2, #0xc] - movs r0, #1 - b _080700C6 - .align 2, 0 -_080700C0: .4byte gUnk_080029B4 -_080700C4: - movs r0, #0 -_080700C6: - pop {pc} - - thumb_func_start sub_080700C8 -sub_080700C8: @ 0x080700C8 - lsls r0, r0, #1 - ldr r2, _080700E4 @ =gUnk_089FB780 - adds r0, r0, r2 - ldrh r0, [r0] - subs r2, #0x10 - adds r0, r0, r2 - adds r1, r0, r1 - ldrb r0, [r1] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r2] - adds r0, r1, r0 - bx lr - .align 2, 0 -_080700E4: .4byte gUnk_089FB780 - - thumb_func_start sub_080700E8 -sub_080700E8: @ 0x080700E8 - push {lr} - ldr r2, _080700FC @ =gUnk_0811B98C - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080700FC: .4byte gUnk_0811B98C - - thumb_func_start sub_08070100 -sub_08070100: @ 0x08070100 - push {r4, r5, lr} - adds r5, r0, #0 - movs r2, #1 - movs r3, #1 - strb r3, [r5, #0xc] - ldrb r1, [r5, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, #0x18] - ldrb r1, [r5, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #0x10] - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #0x40 - str r0, [r5, #0x74] - movs r0, #0xf0 - lsls r0, r0, #1 - str r0, [r5, #0x78] - ldr r2, _0807017C @ =gLinkEntity - ldr r1, _08070180 @ =gUnk_0811B9A0 - ldrb r0, [r5, #0x14] - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r4, [r2, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] - ldrb r0, [r5, #0x14] - adds r0, #1 - adds r0, r0, r1 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r5, #0x32] - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #7 - strb r0, [r1] - subs r1, #1 - movs r0, #0x8a - strb r0, [r1] - ldr r0, _08070184 @ =gUnk_0811B9D0 - str r0, [r5, #0x48] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #2 - bne _08070188 - strb r3, [r5, #0xa] - b _0807018C - .align 2, 0 -_0807017C: .4byte gLinkEntity -_08070180: .4byte gUnk_0811B9A0 -_08070184: .4byte gUnk_0811B9D0 -_08070188: - movs r0, #0 - strb r0, [r5, #0xa] -_0807018C: - ldrb r1, [r2, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r5, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x1b] - ldrb r3, [r5, #0x14] - lsrs r3, r3, #1 - lsls r3, r3, #3 - ldr r0, _080701F0 @ =gUnk_0811B9A8 - adds r3, r3, r0 - ldrb r1, [r3] - movs r0, #1 - ands r1, r0 - lsls r1, r1, #6 - ldrb r2, [r5, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrb r1, [r3, #1] - lsls r1, r1, #7 - movs r2, #0x7f - ands r0, r2 - orrs r0, r1 - strb r0, [r5, #0x18] - ldrb r0, [r3, #4] - adds r4, r5, #0 - adds r4, #0x58 - strb r0, [r4] - movs r0, #2 - ldrsb r0, [r3, r0] - str r0, [r5, #0x6c] - movs r0, #3 - ldrsb r0, [r3, r0] - str r0, [r5, #0x70] - adds r0, r5, #0 - bl sub_0801766C - ldrb r1, [r4] - adds r0, r5, #0 - bl sub_08004260 - ldr r0, _080701F4 @ =0x000001DD - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_080701F0: .4byte gUnk_0811B9A8 -_080701F4: .4byte 0x000001DD - - thumb_func_start sub_080701F8 -sub_080701F8: @ 0x080701F8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r0, _08070244 @ =gUnk_0811B9C8 - ldrb r1, [r5, #0x14] - adds r2, r1, r0 - movs r6, #0 - ldrsb r6, [r2, r6] - adds r1, #1 - adds r1, r1, r0 - movs r7, #0 - ldrsb r7, [r1, r7] - adds r0, r5, #0 - movs r1, #0xa - adds r2, r6, #0 - adds r3, r7, #0 - bl sub_08008782 - adds r4, r0, #0 - cmp r4, #0 - beq _08070248 - ldrb r1, [r4, #5] - ldrb r2, [r4, #2] - movs r0, #0x53 - bl sub_080A2960 - adds r1, r0, #0 - cmp r1, #0 - beq _08070260 - ldrb r0, [r4, #3] - strb r0, [r1, #0xe] - ldrh r0, [r5, #0x2e] - adds r0, r0, r6 - strh r0, [r1, #0x2e] - ldrh r0, [r5, #0x32] - adds r0, r0, r7 - strh r0, [r1, #0x32] - b _08070260 - .align 2, 0 -_08070244: .4byte gUnk_0811B9C8 -_08070248: - ldr r0, [r5, #0x74] - subs r0, #1 - str r0, [r5, #0x74] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _08070260 - ldr r0, [r5, #0x78] - subs r0, #1 - str r0, [r5, #0x78] - cmp r0, r1 - bne _08070268 -_08070260: - adds r0, r5, #0 - bl sub_08070458 - b _0807037A -_08070268: - adds r0, r5, #0 - bl sub_08004274 - adds r0, r5, #0 - bl sub_0806F69C - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08070280 - adds r0, r5, #0 - bl sub_0800451C -_08070280: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _08070354 @ =gUnk_03000BF0 - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r6, #0x3f - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _08070358 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x80 - bl sub_080002F0 - cmp r0, #0 - bne _0807036A - ldr r1, _0807035C @ =gUnk_08003E44 - movs r3, #0x2e - ldrsh r2, [r5, r3] - movs r0, #0x32 - ldrsh r3, [r5, r0] - adds r0, r5, #0 - bl sub_080040D8 - cmp r0, #0 - bne _08070364 - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0x19 - bne _0807036A - movs r0, #4 - strb r0, [r5, #0xc] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - ldrh r2, [r5, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x32] - ands r1, r0 - orrs r1, r2 - strh r1, [r5, #0x32] - adds r2, r5, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #7 - orrs r0, r1 - strb r0, [r2] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - str r0, [r5, #0x7c] - adds r0, r5, #0 - movs r1, #0x14 - bl sub_08004260 - ldr r0, _08070360 @ =0x00004020 - movs r3, #0x2e - ldrsh r1, [r5, r3] - ldrh r2, [r7, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - movs r3, #0x32 - ldrsh r2, [r5, r3] - ldrh r3, [r7, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r6 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r4] - bl sub_0800015E - b _0807037A - .align 2, 0 -_08070354: .4byte gUnk_03000BF0 -_08070358: .4byte gLinkEntity -_0807035C: .4byte gUnk_08003E44 -_08070360: .4byte 0x00004020 -_08070364: - adds r0, r5, #0 - bl sub_08070458 -_0807036A: - adds r0, r5, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _0807037A - adds r0, r5, #0 - bl sub_08070458 -_0807037A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807037C -sub_0807037C: @ 0x0807037C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08070394 - bl sub_0805E780 -_08070394: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08070398 -sub_08070398: @ 0x08070398 - push {r4, lr} - adds r4, r0, #0 - bl sub_08004274 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080703B8 - bl sub_0805E780 -_080703B8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080703BC -sub_080703BC: @ 0x080703BC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08004274 - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08070404 @ =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_080001DA - adds r1, r0, #0 - ldr r0, _08070408 @ =0x00004021 - cmp r1, r0 - beq _0807042E - cmp r1, r0 - bhi _0807040C - subs r0, #1 - cmp r1, r0 - beq _08070420 - b _08070412 - .align 2, 0 -_08070404: .4byte gUnk_03000BF0 -_08070408: .4byte 0x00004021 -_0807040C: - ldr r0, _08070418 @ =0x00004070 - cmp r1, r0 - beq _0807041C -_08070412: - movs r0, #0 - str r0, [r4, #0x7c] - b _0807042E - .align 2, 0 -_08070418: .4byte 0x00004070 -_0807041C: - movs r0, #0xff - str r0, [r4, #0x78] -_08070420: - ldr r0, [r4, #0x78] - subs r0, #1 - str r0, [r4, #0x78] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - bne _08070436 -_0807042E: - adds r0, r4, #0 - bl sub_08070458 - b _08070454 -_08070436: - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - cmp r1, #0 - beq _08070454 - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0807044E - ldrb r0, [r4, #0xc] - cmp r0, #0x1a - bne _08070454 -_0807044E: - adds r0, r4, #0 - bl sub_08070458 -_08070454: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08070458 -sub_08070458: @ 0x08070458 - push {r4, r5, r6, lr} - adds r4, r0, #0 - movs r2, #0 - movs r0, #2 - strb r0, [r4, #0xc] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - strh r2, [r4, #0x24] - ldr r5, [r4, #0x7c] - cmp r5, #0 - beq _0807049E - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, _080704B4 @ =gUnk_03000BF0 - ldrh r0, [r2, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - movs r3, #0x3f - ands r1, r3 - movs r6, #0x32 - ldrsh r0, [r4, r6] - 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, #0x38 - ldrb r2, [r0] - adds r0, r5, #0 - bl sub_0800015E -_0807049E: - adds r0, r4, #0 - movs r1, #0x13 - bl sub_08004260 - adds r0, r4, #0 - bl sub_08017744 - ldr r0, _080704B8 @ =0x00000199 - bl sub_080A3268 - pop {r4, r5, r6, pc} - .align 2, 0 -_080704B4: .4byte gUnk_03000BF0 -_080704B8: .4byte 0x00000199 - - thumb_func_start sub_080704BC -sub_080704BC: @ 0x080704BC - push {lr} - ldr r2, _080704D0 @ =gUnk_0811B9D8 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080704D0: .4byte gUnk_0811B9D8 - - thumb_func_start sub_080704D4 -sub_080704D4: @ 0x080704D4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xc] - movs r0, #0xff - strb r0, [r4, #0x1e] - adds r0, r4, #0 - movs r1, #1 - movs r2, #3 - bl sub_080AE008 - movs r0, #0x87 - lsls r0, r0, #1 - bl sub_080A3268 - adds r0, r4, #0 - bl sub_080704FC - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080704FC -sub_080704FC: @ 0x080704FC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0807052C @ =gLinkEntity - adds r0, r5, #0 - adds r0, #0x5a - ldrb r2, [r0] - movs r0, #0x80 - ands r0, r2 - ldr r1, _08070530 @ =gUnk_03003F80 - cmp r0, #0 - bne _08070518 - ldr r0, [r1, #0x2c] - cmp r4, r0 - beq _08070534 -_08070518: - ldr r0, [r1, #0x2c] - cmp r4, r0 - bne _08070522 - movs r0, #0 - str r0, [r1, #0x2c] -_08070522: - adds r0, r4, #0 - bl sub_0805E7BC - b _08070566 - .align 2, 0 -_0807052C: .4byte gLinkEntity -_08070530: .4byte gUnk_03003F80 -_08070534: - movs r0, #0xf - ands r0, r2 - cmp r0, #0xf - beq _08070562 - ldrb r1, [r5, #0x1e] - adds r0, #0x91 - subs r0, r1, r0 - ldrb r2, [r4, #0x1e] - cmp r0, r2 - beq _08070558 - adds r0, r1, #0 - adds r0, #0x6f - strb r0, [r4, #0x1e] - ldrb r1, [r4, #0x1e] - ldrh r2, [r4, #0x12] - adds r0, r4, #0 - bl sub_080042D0 -_08070558: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08078E84 - b _08070566 -_08070562: - movs r0, #0xff - strb r0, [r4, #0x1e] -_08070566: - ldr r2, _08070580 @ =gLinkEntity - ldrb r1, [r2, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08070584 - ldrb r0, [r2, #0x18] - lsls r0, r0, #0x19 - lsrs r2, r0, #0x1f - movs r0, #1 - eors r2, r0 - b _0807058A - .align 2, 0 -_08070580: .4byte gLinkEntity -_08070584: - ldrb r0, [r2, #0x18] - lsls r0, r0, #0x19 - lsrs r2, r0, #0x1f -_0807058A: - lsls r2, r2, #6 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x18] - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0807059C -sub_0807059C: @ 0x0807059C - push {lr} - ldr r0, _080705A8 @ =gUnk_02034490 - movs r1, #0x18 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_080705A8: .4byte gUnk_02034490 - - thumb_func_start sub_080705AC -sub_080705AC: @ 0x080705AC - push {lr} - ldr r0, _08070614 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08070674 - ldr r0, _08070618 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _08070674 - ldr r0, _0807061C @ =gUnk_02034490 - ldrb r0, [r0] - cmp r0, #0 - bne _08070674 - ldr r0, _08070620 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08070674 - ldr r1, _08070624 @ =gUnk_02002A40 - adds r0, r1, #0 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #0 - beq _08070674 - adds r0, r1, #0 - adds r0, #0xf2 - ldrb r0, [r0] - cmp r0, #0 - beq _08070674 - ldr r1, _08070628 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x8b - ldrb r0, [r0] - cmp r0, #0 - bne _08070674 - ldr r0, _0807062C @ =gUnk_03003DC0 - ldrh r0, [r0, #8] - cmp r0, #0 - bne _08070674 - adds r2, r1, #0 - adds r2, #0xa8 - ldrb r0, [r2] - cmp r0, #0 - bne _08070630 - adds r0, r1, #0 - adds r0, #0xa9 - ldrb r0, [r0] - b _08070632 - .align 2, 0 -_08070614: .4byte gUnk_03000FF0 -_08070618: .4byte gUnk_03000FD0 -_0807061C: .4byte gUnk_02034490 -_08070620: .4byte gUnk_02000050 -_08070624: .4byte gUnk_02002A40 -_08070628: .4byte gUnk_03003F80 -_0807062C: .4byte gUnk_03003DC0 -_08070630: - ldrb r0, [r2] -_08070632: - subs r0, #0x12 - cmp r0, #0xa - bhi _08070678 - lsls r0, r0, #2 - ldr r1, _08070644 @ =_08070648 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08070644: .4byte _08070648 -_08070648: @ jump table - .4byte _08070674 @ case 0 - .4byte _08070674 @ case 1 - .4byte _08070678 @ case 2 - .4byte _08070674 @ case 3 - .4byte _08070674 @ case 4 - .4byte _08070678 @ case 5 - .4byte _08070678 @ case 6 - .4byte _08070678 @ case 7 - .4byte _08070678 @ case 8 - .4byte _08070678 @ case 9 - .4byte _08070674 @ case 10 -_08070674: - movs r0, #0 - b _0807067E -_08070678: - bl sub_080A4D88 - movs r0, #1 -_0807067E: - pop {pc} - - thumb_func_start sub_08070680 -sub_08070680: @ 0x08070680 - push {lr} - ldr r2, _08070694 @ =gUnk_0811B9E0 - ldrb r1, [r0, #0xc] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08070694: .4byte gUnk_0811B9E0 - - thumb_func_start sub_08070698 -sub_08070698: @ 0x08070698 - push {r4, r5, r6, lr} - sub sp, #4 - adds r4, r0, #0 - ldr r6, _08070788 @ =gUnk_03003F80 - movs r0, #0xff - strb r0, [r6] - ldr r1, _0807078C @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r6, #0x16] - ldrh r0, [r1, #0x32] - strh r0, [r6, #0x18] - 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, #8 - orrs r0, r1 - strb r0, [r2] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x20 - strb r0, [r4, #0x16] - adds r1, r4, #0 - adds r1, #0x3b - movs r0, #8 - strb r0, [r1] - adds r1, #4 - movs r0, #0x79 - strb r0, [r1] - ldr r0, _08070790 @ =gUnk_08114F88 - str r0, [r4, #0x48] - movs r0, #1 - strh r0, [r4, #0x12] - adds r0, #0xff - strh r0, [r6, #8] - adds r0, r4, #0 - bl sub_0806FDA0 - adds r0, r4, #0 - movs r1, #1 - movs r2, #2 - bl sub_080AE008 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042AC - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08070726 - adds r0, r4, #0 - bl sub_08016A30 -_08070726: - movs r0, #0x10 - bl sub_0805436C - cmp r0, #2 - beq _08070734 - bl sub_08077728 -_08070734: - bl sub_0807A108 - bl sub_0807AEE4 - bl sub_08078EFC - adds r5, r0, #0 - cmp r5, #0 - bne _08070784 - bl sub_0807921C - bl sub_0807A1B8 - adds r1, r6, #0 - adds r1, #0x26 - ldrb r0, [r1] - cmp r0, #0 - beq _08070784 - movs r0, #1 - strb r0, [r1] - bl sub_08079938 - adds r1, r6, #0 - adds r1, #0xa8 - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807ACCC - str r5, [sp] - movs r0, #6 - movs r1, #0xf - movs r2, #6 - movs r3, #0xb - bl sub_0805EB2C - cmp r0, #0 - beq _08070784 - bl sub_0805E7BC -_08070784: - add sp, #4 - pop {r4, r5, r6, pc} - .align 2, 0 -_08070788: .4byte gUnk_03003F80 -_0807078C: .4byte gLinkEntity -_08070790: .4byte gUnk_08114F88 - - thumb_func_start sub_08070794 -sub_08070794: @ 0x08070794 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldr r6, _080707F0 @ =gUnk_03003F80 - adds r3, r6, #0 - adds r3, #0xa8 - movs r4, #0 - strb r4, [r3] - ldr r1, [r6, #0x30] - movs r7, #0x10 - adds r0, r1, #0 - ands r0, r7 - mov ip, r6 - cmp r0, #0 - beq _08070818 - adds r2, r5, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, #0 - adds r0, #0x42 - strb r4, [r0] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - movs r0, #0x80 - strb r0, [r6, #6] - strb r7, [r3] - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - adds r0, #0x5c - adds r1, r5, #0 - adds r1, #0x58 - ldrb r1, [r1] - cmp r0, r1 - bne _080707F8 - ldrh r0, [r5, #0x12] - cmp r0, #2 - bne _080707F8 - ldr r0, _080707F4 @ =gLinkEntity - bl sub_080042B8 - b _08070800 - .align 2, 0 -_080707F0: .4byte gUnk_03003F80 -_080707F4: .4byte gLinkEntity -_080707F8: - movs r0, #0x97 - lsls r0, r0, #2 - mov r1, ip - strh r0, [r1, #8] -_08070800: - ldr r0, _08070814 @ =gLinkEntity - bl sub_0806F948 - bl sub_08077B2C - adds r0, r5, #0 - bl sub_08077698 - b _08070BE4 - .align 2, 0 -_08070814: .4byte gLinkEntity -_08070818: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - cmp r0, #0 - beq _08070842 - adds r1, r5, #0 - adds r1, #0x40 - movs r0, #0x1e - strb r0, [r1] - movs r0, #0xc - strb r0, [r3] - movs r1, #0 - movs r2, #0x24 - ldrsh r0, [r5, r2] - cmp r0, #0 - bne _0807083A - movs r1, #1 -_0807083A: - adds r0, r5, #0 - bl sub_08070BEC - b _08070BE4 -_08070842: - movs r4, #0x80 - lsls r4, r4, #0xc - ands r4, r1 - cmp r4, #0 - beq _08070852 - bl sub_08079938 - b _08070BE4 -_08070852: - adds r0, r5, #0 - bl sub_080085B0 - adds r0, r5, #0 - adds r0, #0x40 - strb r4, [r0] - bl sub_08078EFC - cmp r0, #0 - beq _08070868 - b _08070BE4 -_08070868: - adds r0, r6, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _080708AC - ldrb r1, [r6, #2] - movs r2, #0xc0 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _080708AC - ldrb r0, [r6, #3] - cmp r0, #0 - bne _0807088E - adds r0, r6, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08070892 -_0807088E: - strh r2, [r5, #0x24] - b _080708AC -_08070892: - ldrb r0, [r6, #0x1b] - cmp r0, #0 - beq _0807089C - movs r0, #0xe0 - b _080708AA -_0807089C: - ldrb r0, [r6, #0x1c] - cmp r0, #0 - beq _080708A6 - movs r0, #0x80 - b _080708AA -_080708A6: - movs r0, #0xa0 - lsls r0, r0, #1 -_080708AA: - strh r0, [r5, #0x24] -_080708AC: - ldr r4, _08070918 @ =gUnk_03003F80 - ldrb r0, [r4, #6] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r4, #6] - ldr r0, [r4, #0x30] - ldr r6, _0807091C @ =0x10000002 - ands r0, r6 - cmp r0, #0 - bne _080708C4 - bl sub_0807A1B8 -_080708C4: - bl sub_08078EFC - cmp r0, #0 - beq _080708CE - b _08070BE4 -_080708CE: - ldrb r0, [r4, #2] - cmp r0, #0 - beq _080708D6 - b _080709D8 -_080708D6: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080708E4 - b _080709D8 -_080708E4: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _08070924 - bl sub_080782C0 - cmp r0, #0 - beq _08070924 - ldr r0, _08070920 @ =gUnk_02034350 - ldrb r0, [r0, #6] - cmp r0, #0 - bne _08070902 - bl sub_08077B2C -_08070902: - ldr r0, [r4, #0x30] - ands r0, r6 - cmp r0, #0 - beq _0807090C - b _08070BE4 -_0807090C: - bl sub_0807A1B8 - bl sub_08078EFC - b _08070BE4 - .align 2, 0 -_08070918: .4byte gUnk_03003F80 -_0807091C: .4byte 0x10000002 -_08070920: .4byte gUnk_02034350 -_08070924: - ldr r0, _0807094C @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - ldr r2, _08070950 @ =0x00041635 - ands r1, r2 - adds r0, #0xaa - ldrb r0, [r0] - orrs r1, r0 - cmp r1, #0 - bne _080709D8 - bl sub_08019840 - cmp r0, #0xf - bls _08070940 - b _08070BE4 -_08070940: - lsls r0, r0, #2 - ldr r1, _08070954 @ =_08070958 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807094C: .4byte gUnk_03003F80 -_08070950: .4byte 0x00041635 -_08070954: .4byte _08070958 -_08070958: @ jump table - .4byte _08070998 @ case 0 - .4byte _08070BE4 @ case 1 - .4byte _08070BE4 @ case 2 - .4byte _080709A8 @ case 3 - .4byte _080709C2 @ case 4 - .4byte _08070BE4 @ case 5 - .4byte _08070BE4 @ case 6 - .4byte _08070BE4 @ case 7 - .4byte _08070BE4 @ case 8 - .4byte _08070BE4 @ case 9 - .4byte _08070BE4 @ case 10 - .4byte _08070BE4 @ case 11 - .4byte _08070BE4 @ case 12 - .4byte _08070BE4 @ case 13 - .4byte _08070BE4 @ case 14 - .4byte _080709B4 @ case 15 -_08070998: - ldr r0, _080709A4 @ =gUnk_03003F80 - ldrb r1, [r0, #6] - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #6] - b _080709D8 - .align 2, 0 -_080709A4: .4byte gUnk_03003F80 -_080709A8: - ldr r1, _080709B0 @ =gUnk_03003F80 - movs r0, #0x80 - strb r0, [r1, #6] - b _080709D8 - .align 2, 0 -_080709B0: .4byte gUnk_03003F80 -_080709B4: - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - bl sub_080797EC - b _08070BE4 -_080709C2: - ldr r0, _080709D4 @ =gUnk_03003F80 - ldrb r1, [r0, #6] - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #6] - bl sub_080797EC - b _08070BE4 - .align 2, 0 -_080709D4: .4byte gUnk_03003F80 -_080709D8: - adds r1, r5, #0 - adds r1, #0x3c - movs r0, #0 - strb r0, [r1] - adds r6, r5, #0 - adds r6, #0x29 - ldrb r1, [r6] - subs r0, #8 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r6] - adds r0, r5, #0 - bl sub_0807AC54 - cmp r0, #0 - beq _080709FC - b _08070BE4 -_080709FC: - adds r0, r5, #0 - bl sub_08077698 - bl sub_08078EFC - cmp r0, #0 - beq _08070A0C - b _08070BE4 -_08070A0C: - bl sub_080792D8 - ldr r4, _08070A78 @ =gUnk_03003F80 - ldrb r1, [r4, #2] - ldrb r0, [r4, #0xa] - orrs r0, r1 - cmp r0, #0 - bne _08070A32 - bl sub_08079550 - cmp r0, #0 - beq _08070A26 - b _08070BE4 -_08070A26: - adds r0, r5, #0 - bl sub_08078F74 - cmp r0, #0 - beq _08070A32 - b _08070BE4 -_08070A32: - adds r0, r5, #0 - bl sub_08073904 - bl sub_08078EFC - cmp r0, #0 - beq _08070A42 - b _08070BE4 -_08070A42: - ldrb r2, [r4, #2] - cmp r2, #0 - beq _08070AAC - adds r1, r4, #0 - adds r1, #0xa8 - movs r0, #0x14 - strb r0, [r1] - movs r0, #0xc0 - ands r0, r2 - cmp r0, #0 - bne _08070A80 - movs r0, #7 - ands r0, r2 - cmp r0, #3 - beq _08070A7C - movs r0, #0x20 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0 - bne _08070A7C - strh r0, [r5, #0x24] - adds r0, r5, #0 - bl sub_08008926 - b _08070A80 - .align 2, 0 -_08070A78: .4byte gUnk_03003F80 -_08070A7C: - movs r0, #0xff - strb r0, [r5, #0x15] -_08070A80: - bl sub_08079E08 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08070A94 - b _08070BE4 -_08070A94: - ldr r0, _08070AA8 @ =gUnk_03003F80 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08070A9E - b _08070BE4 -_08070A9E: - adds r0, r5, #0 - bl sub_080042B8 - b _08070BE4 - .align 2, 0 -_08070AA8: .4byte gUnk_03003F80 -_08070AAC: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r1, [r0] - adds r7, r0, #0 - cmp r1, #0 - beq _08070ABA - b _08070BBC -_08070ABA: - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08070AD4 - adds r1, r4, #0 - adds r1, #0xa8 - movs r0, #7 - strb r0, [r1] - adds r0, r5, #0 - bl sub_0807ACCC - b _08070B56 -_08070AD4: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x12 - ands r0, r1 - cmp r0, #0 - bne _08070AEE - ldrb r0, [r6] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strb r1, [r6] -_08070AEE: - ldrb r1, [r4, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08070B00 - adds r0, r5, #0 - bl sub_08008AA0 - b _08070B1E -_08070B00: - ldrb r0, [r4, #0x12] - cmp r0, #0x17 - bne _08070B0E - adds r0, r5, #0 - bl sub_08008926 - b _08070B1E -_08070B0E: - cmp r0, #1 - bne _08070B18 - bl sub_08078F60 - b _08070B1E -_08070B18: - adds r0, r5, #0 - bl sub_08008AA0 -_08070B1E: - ldr r2, _08070BB8 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1b] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08070B56 - ldrb r3, [r2, #0xd] - strb r3, [r5, #0x15] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _08070B56 - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08070B52 - ldrb r1, [r5, #0x14] - movs r0, #0xe - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r5, #0x15] -_08070B52: - bl sub_0807A108 -_08070B56: - movs r4, #0 - ldr r3, _08070BB8 @ =gUnk_03003F80 - ldrb r2, [r3, #7] - ldrb r0, [r5, #0x15] - orrs r0, r2 - movs r1, #0x80 - ands r0, r1 - ldrb r1, [r3, #0xa] - orrs r0, r1 - cmp r0, #0 - bne _08070B8E - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - bne _08070B8E - movs r4, #1 - ldrb r0, [r7] - cmp r0, #0 - bne _08070B8E - ldrb r1, [r3, #0x1e] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08070B8C - ldrb r0, [r3, #0x12] - cmp r0, #0x17 - beq _08070B8E -_08070B8C: - movs r4, #3 -_08070B8E: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08070BEC - adds r0, r5, #0 - bl sub_08008AC6 - ldrb r0, [r7] - cmp r0, #0 - bne _08070BE4 - ldr r1, _08070BB8 @ =gUnk_03003F80 - ldrb r0, [r1, #0xb] - cmp r0, #0 - bne _08070BE4 - ldrb r0, [r1, #0x12] - cmp r0, #0x1e - beq _08070BE4 - adds r0, r5, #0 - bl sub_0806F948 - b _08070BE4 - .align 2, 0 -_08070BB8: .4byte gUnk_03003F80 -_08070BBC: - ldr r0, [r4, #0x2c] - cmp r0, #0 - bne _08070BC8 - adds r0, r5, #0 - bl sub_080042B8 -_08070BC8: - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08070BE4 - ldr r0, _08070BE8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _08070BE4 - adds r0, r5, #0 - bl sub_080A2A64 -_08070BE4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08070BE8: .4byte gUnk_030010A0 - - thumb_func_start sub_08070BEC -sub_08070BEC: @ 0x08070BEC - push {r4, lr} - adds r4, r1, #0 - movs r0, #1 - ands r0, r4 - cmp r0, #0 - beq _08070BFE - bl sub_080797EC - b _08070C02 -_08070BFE: - bl sub_08079938 -_08070C02: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _08070C0E - bl sub_08079E08 -_08070C0E: - pop {r4, pc} - - thumb_func_start sub_08070C10 -sub_08070C10: @ 0x08070C10 - push {lr} - ldr r2, _08070C34 @ =gUnk_03003F80 - movs r1, #0xff - strb r1, [r2, #0xd] - movs r1, #0x80 - strb r1, [r2, #6] - adds r2, #0xa8 - movs r1, #0xa - strb r1, [r2] - ldr r2, _08070C38 @ =gUnk_0811BA60 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08070C34: .4byte gUnk_03003F80 -_08070C38: .4byte gUnk_0811BA60 - - thumb_func_start sub_08070C3C -sub_08070C3C: @ 0x08070C3C - push {r4, lr} - adds r4, r0, #0 - bl sub_08004168 - ldr r2, _08070C64 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #5 - orrs r1, r0 - ldr r0, _08070C68 @ =0xFFFFFBFF - ands r1, r0 - str r1, [r2, #0x30] - movs r0, #0 - strb r0, [r2, #2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08070C6C - movs r0, #0xdd - lsls r0, r0, #1 - b _08070C7E - .align 2, 0 -_08070C64: .4byte gUnk_03003F80 -_08070C68: .4byte 0xFFFFFBFF -_08070C6C: - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _08070C7A - movs r0, #0x8b - lsls r0, r0, #3 - b _08070C7E -_08070C7A: - movs r0, #0xdc - lsls r0, r0, #1 -_08070C7E: - strh r0, [r2, #8] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - 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] - bl sub_08077B2C - bl sub_0807A108 - movs r0, #0x7b - bl sub_080A3268 - movs r0, #0x85 - bl sub_080A3268 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08070CB4 -sub_08070CB4: @ 0x08070CB4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080042B8 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08070D1A - ldr r0, _08070CF4 @ =gUnk_02002A40 - adds r0, #0xaa - ldrb r0, [r0] - ldr r4, _08070CF8 @ =gUnk_03003F80 - cmp r0, #0 - beq _08070CFC - ldr r1, [r4, #0x30] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08070CFC - movs r0, #6 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r4, #0x30] - ldrb r1, [r5, #0x18] - adds r0, #2 - ands r0, r1 - strb r0, [r5, #0x18] - b _08070D1A - .align 2, 0 -_08070CF4: .4byte gUnk_02002A40 -_08070CF8: .4byte gUnk_03003F80 -_08070CFC: - ldr r0, [r4, #0x30] - ldr r1, _08070D1C @ =0xFFFF7FFB - ands r0, r1 - str r0, [r4, #0x30] - bl sub_08079458 - movs r0, #0 - strb r0, [r4, #0xa] - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0x20 - strb r0, [r1] - subs r0, #0x22 - bl sub_080526A0 -_08070D1A: - pop {r4, r5, pc} - .align 2, 0 -_08070D1C: .4byte 0xFFFF7FFB - - thumb_func_start sub_08070D20 -sub_08070D20: @ 0x08070D20 - push {lr} - ldr r2, _08070D34 @ =gUnk_0811BA68 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08070D34: .4byte gUnk_0811BA68 - - thumb_func_start sub_08070D38 -sub_08070D38: @ 0x08070D38 - push {r4, lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x14] - movs r0, #0xe - ands r0, r1 - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - strb r0, [r2, #0x15] - movs r4, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] - adds r0, r2, #0 - adds r0, #0x42 - strb r4, [r0] - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - ldr r3, _08070D94 @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - strb r0, [r2, #0xe] - movs r0, #1 - strh r0, [r2, #0x12] - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08070D98 - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #0x8a - lsls r0, r0, #1 - strh r0, [r3, #8] - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - b _08070DA2 - .align 2, 0 -_08070D94: .4byte gUnk_03003F80 -_08070D98: - ldr r0, _08070DBC @ =0x00000C18 - strh r0, [r3, #8] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r2, #0x20] -_08070DA2: - ldr r0, _08070DC0 @ =gUnk_03003F80 - movs r1, #0x80 - strb r1, [r0, #2] - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 - bl sub_08077B2C - bl sub_08078F60 - pop {r4, pc} - .align 2, 0 -_08070DBC: .4byte 0x00000C18 -_08070DC0: .4byte gUnk_03003F80 - - thumb_func_start sub_08070DC4 -sub_08070DC4: @ 0x08070DC4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080085B0 - bl sub_08079E08 - bl sub_0807A1B8 - bl sub_08078EFC - cmp r0, #0 - bne _08070E76 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08070E76 - ldr r6, _08070E18 @ =gUnk_03003F80 - strb r0, [r6, #2] - bl sub_08078EFC - adds r5, r0, #0 - cmp r5, #0 - bne _08070E76 - bl sub_08079D48 - cmp r0, #0 - bne _08070E10 - adds r0, r6, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08070E1C -_08070E10: - strb r5, [r6, #2] - bl sub_080791D0 - b _08070E76 - .align 2, 0 -_08070E18: .4byte gUnk_03003F80 -_08070E1C: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08070E32 - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r4, #0x20] - b _08070E76 -_08070E32: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r6, #0x14] - cmp r0, #0 - bne _08070E56 - bl sub_08008B22 - cmp r0, #0 - beq _08070E56 - movs r0, #7 - strb r0, [r6, #0x11] - bl sub_08079938 - bl sub_080791BC - b _08070E76 -_08070E56: - movs r0, #1 - strh r0, [r4, #0x12] - movs r0, #8 - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldr r2, _08070E78 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08070E76 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #8] -_08070E76: - pop {r4, r5, r6, pc} - .align 2, 0 -_08070E78: .4byte gUnk_03003F80 - - thumb_func_start sub_08070E7C -sub_08070E7C: @ 0x08070E7C - push {lr} - ldrb r1, [r0, #0xe] - subs r1, #1 - strb r1, [r0, #0xe] - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - cmp r1, #0 - bne _08070E94 - ldr r0, _08070E98 @ =gUnk_03003F80 - strb r1, [r0, #2] - bl sub_080791D0 -_08070E94: - pop {pc} - .align 2, 0 -_08070E98: .4byte gUnk_03003F80 - - thumb_func_start sub_08070E9C -sub_08070E9C: @ 0x08070E9C - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - beq _08070EAE - bl sub_08056360 - b _08070ED2 -_08070EAE: - ldr r1, _08070ED4 @ =gUnk_03003F80 - adds r2, r1, #0 - adds r2, #0x27 - movs r0, #4 - strb r0, [r2] - adds r1, #0xa8 - movs r0, #0x13 - strb r0, [r1] - bl sub_0807A1B8 - ldr r1, _08070ED8 @ =gUnk_0811BA74 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_08070ED2: - pop {r4, pc} - .align 2, 0 -_08070ED4: .4byte gUnk_03003F80 -_08070ED8: .4byte gUnk_0811BA74 - - thumb_func_start sub_08070EDC -sub_08070EDC: @ 0x08070EDC - push {lr} - adds r2, r0, #0 - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x11] - ldr r0, _08070F10 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _08070EFE - movs r0, #1 - strb r0, [r2, #0xd] -_08070EFE: - ldr r2, _08070F14 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08070F18 - bl sub_08079938 - b _08070F1C - .align 2, 0 -_08070F10: .4byte gUnk_02000050 -_08070F14: .4byte gUnk_03003F80 -_08070F18: - ldr r0, _08070F20 @ =0x00000C18 - strh r0, [r2, #8] -_08070F1C: - pop {pc} - .align 2, 0 -_08070F20: .4byte 0x00000C18 - - thumb_func_start sub_08070F24 -sub_08070F24: @ 0x08070F24 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _08070F4C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08070F4A - ldrb r0, [r4, #0x11] - lsrs r2, r0, #4 - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x11] - bl sub_080791D0 -_08070F4A: - pop {r4, pc} - .align 2, 0 -_08070F4C: .4byte gUnk_02000050 - - thumb_func_start sub_08070F50 -sub_08070F50: @ 0x08070F50 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08070F9C @ =gUnk_03003F80 - adds r0, #0xa8 - movs r1, #0x15 - strb r1, [r0] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r1, _08070FA0 @ =gUnk_0811BA7C - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r5, [r4, #0x54] - cmp r5, #0 - beq _08070F9A - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0806FA30 - ldrh r0, [r4, #0x12] - ldrb r1, [r4, #0x1e] - bl sub_080700C8 - ldrb r1, [r0] - adds r2, r5, #0 - adds r2, #0x62 - strb r1, [r2] - ldrb r1, [r0, #1] - adds r0, r5, #0 - adds r0, #0x63 - strb r1, [r0] -_08070F9A: - pop {r4, r5, pc} - .align 2, 0 -_08070F9C: .4byte gUnk_03003F80 -_08070FA0: .4byte gUnk_0811BA7C - - thumb_func_start sub_08070FA4 -sub_08070FA4: @ 0x08070FA4 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0x14] - ldr r3, _08070FE8 @ =gUnk_03003F80 - ldr r2, [r3, #0x30] - movs r0, #1 - orrs r2, r0 - str r2, [r3, #0x30] - strb r1, [r3, #2] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08071008 - movs r0, #8 - ands r2, r0 - cmp r2, #0 - beq _08070FF0 - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_080542AC - ldr r1, _08070FEC @ =0x0000045B - cmp r0, #0 - beq _08071004 - adds r1, #3 - b _08071004 - .align 2, 0 -_08070FE8: .4byte gUnk_03003F80 -_08070FEC: .4byte 0x0000045B -_08070FF0: - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - bl sub_080542AC - ldr r1, _08071018 @ =0x000001B9 - cmp r0, #0 - beq _08071004 - movs r1, #0xb8 - lsls r1, r1, #2 -_08071004: - ldr r0, _0807101C @ =gUnk_03003F80 - strh r1, [r0, #8] -_08071008: - movs r0, #1 - strb r0, [r4, #0xd] - bl sub_08077B2C - bl sub_08078F60 - pop {r4, pc} - .align 2, 0 -_08071018: .4byte 0x000001B9 -_0807101C: .4byte gUnk_03003F80 - - thumb_func_start sub_08071020 -sub_08071020: @ 0x08071020 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _08071036 - movs r0, #2 - strb r0, [r4, #0xd] -_08071036: - pop {r4, pc} - - thumb_func_start sub_08071038 -sub_08071038: @ 0x08071038 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - bl sub_08078EFC - cmp r0, #0 - bne _08071078 - ldr r0, _0807107C @ =gUnk_02000050 - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - cmp r2, #0 - bne _08071078 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08071078 - str r2, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x42 - strb r2, [r0] - subs r0, #5 - movs r1, #0xf8 - strb r1, [r0] - ldr r0, _08071080 @ =gUnk_03003F80 - strb r2, [r0, #2] - bl sub_080791D0 -_08071078: - pop {r4, pc} - .align 2, 0 -_0807107C: .4byte gUnk_02000050 -_08071080: .4byte gUnk_03003F80 - - thumb_func_start sub_08071084 -sub_08071084: @ 0x08071084 - push {lr} - ldr r1, _080710A0 @ =gUnk_03003F80 - adds r1, #0xa8 - movs r2, #0xb - strb r2, [r1] - ldr r2, _080710A4 @ =gUnk_0811BA88 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080710A0: .4byte gUnk_03003F80 -_080710A4: .4byte gUnk_0811BA88 - - thumb_func_start sub_080710A8 -sub_080710A8: @ 0x080710A8 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xd] - ldr r1, _080710EC @ =gUnk_03003F80 - ldr r3, [r1, #0x30] - movs r0, #1 - orrs r3, r0 - ldr r0, _080710F0 @ =0xFFFFF3FF - ands r3, r0 - str r3, [r1, #0x30] - strb r2, [r1, #0xc] - ldrb r2, [r1, #5] - ldrb r0, [r1, #0x1b] - orrs r0, r2 - adds r5, r1, #0 - cmp r0, #0 - bne _080710FA - movs r0, #0x80 - ands r3, r0 - cmp r3, #0 - bne _080710FA - bl sub_08077B2C - ldr r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080710F4 - movs r0, #0x84 - lsls r0, r0, #3 - b _080710F8 - .align 2, 0 -_080710EC: .4byte gUnk_03003F80 -_080710F0: .4byte 0xFFFFF3FF -_080710F4: - movs r0, #0x81 - lsls r0, r0, #4 -_080710F8: - strh r0, [r5, #8] -_080710FA: - movs r0, #0 - strb r0, [r5, #0x1e] - ldrb r1, [r4, #0x14] - movs r0, #0xe - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - movs r0, #1 - bl sub_08079FC4 - lsls r0, r0, #4 - subs r0, #4 - lsls r0, r0, #0xc - str r0, [r4, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - bl sub_0807A108 - movs r0, #0x7c - bl sub_080A3268 - movs r0, #0x78 - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08071130 -sub_08071130: @ 0x08071130 - push {r4, r5, r6, lr} - adds r5, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _08071206 - ldr r6, _080711B4 @ =gUnk_03003F80 - ldrb r0, [r6, #0x1b] - cmp r0, #0 - bne _08071158 - adds r0, r5, #0 - bl sub_080042B8 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08071206 -_08071158: - adds r0, r5, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08071206 - strb r0, [r6, #2] - adds r0, r5, #0 - bl sub_0800455E - ldr r0, [r5, #0x74] - cmp r0, #0 - beq _0807117E - bl sub_0800455E -_0807117E: - adds r0, r5, #0 - movs r1, #7 - bl sub_08008790 - ldrb r0, [r6, #0x14] - cmp r0, #0 - bne _08071206 - bl sub_0807A1B8 - bl sub_08078EFC - adds r4, r0, #0 - cmp r4, #0 - bne _08071206 - bl sub_08079D48 - cmp r0, #0 - beq _080711AC - adds r0, r6, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _080711B8 -_080711AC: - strb r4, [r6, #2] - bl sub_080791D0 - b _08071206 - .align 2, 0 -_080711B4: .4byte gUnk_03003F80 -_080711B8: - movs r0, #6 - strb r0, [r5, #0xe] - ldrb r1, [r6, #5] - ldrb r0, [r6, #0xb] - orrs r0, r1 - cmp r0, #0 - bne _080711EE - ldr r1, [r6, #0x30] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080711EE - movs r0, #8 - ands r1, r0 - cmp r1, #0 - beq _080711E0 - ldr r0, _080711DC @ =0x00000424 - b _080711E4 - .align 2, 0 -_080711DC: .4byte 0x00000424 -_080711E0: - movs r0, #0x82 - lsls r0, r0, #4 -_080711E4: - strh r0, [r6, #8] - adds r1, r5, #0 - adds r1, #0x58 - movs r0, #0xff - strb r0, [r1] -_080711EE: - ldrb r0, [r5, #0xd] - adds r0, #1 - movs r4, #0 - strb r0, [r5, #0xd] - bl sub_08078F60 - adds r0, r5, #0 - adds r0, #0x42 - strb r4, [r0] - movs r0, #0x7d - bl sub_080A3268 -_08071206: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08071208 -sub_08071208: @ 0x08071208 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08071244 @ =gUnk_03003F80 - ldrb r1, [r2, #5] - ldrb r0, [r2, #0xb] - orrs r0, r1 - cmp r0, #0 - bne _08071228 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08071228 - adds r0, r4, #0 - bl sub_080042B8 -_08071228: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08071240 - ldr r1, _08071244 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #2] - bl sub_080791D0 -_08071240: - pop {r4, pc} - .align 2, 0 -_08071244: .4byte gUnk_03003F80 - - thumb_func_start sub_08071248 -sub_08071248: @ 0x08071248 - push {lr} - ldr r3, _08071274 @ =gUnk_03003F80 - adds r2, r3, #0 - adds r2, #0xa8 - movs r1, #0x16 - strb r1, [r2] - ldr r1, [r3, #0x30] - movs r2, #4 - orrs r1, r2 - str r1, [r3, #0x30] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - ldr r2, _08071278 @ =gUnk_0811BA94 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08071274: .4byte gUnk_03003F80 -_08071278: .4byte gUnk_0811BA94 - - thumb_func_start sub_0807127C -sub_0807127C: @ 0x0807127C - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #1 - strb r0, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3a - ands r0, r1 - strb r0, [r2] - ldr r5, _080712AC @ =gUnk_03003F80 - ldr r1, [r5, #0x30] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080712B4 - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r0, _080712B0 @ =0x00000C19 - strh r0, [r5, #8] - movs r0, #0x84 - bl sub_080A3268 - b _080712E4 - .align 2, 0 -_080712AC: .4byte gUnk_03003F80 -_080712B0: .4byte 0x00000C19 -_080712B4: - movs r0, #0x80 - lsls r0, r0, #9 - ands r1, r0 - cmp r1, #0 - bne _080712C4 - adds r0, r4, #0 - bl sub_08004168 -_080712C4: - adds r0, r4, #0 - movs r1, #0xb - movs r2, #0 - bl CreateFX - ldr r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _080712E0 - ldr r0, _080712DC @ =0x0000072C - b _080712E2 - .align 2, 0 -_080712DC: .4byte 0x0000072C -_080712E0: - ldr r0, _080712EC @ =0x0000044C -_080712E2: - strh r0, [r5, #8] -_080712E4: - bl sub_08077B2C - pop {r4, r5, pc} - .align 2, 0 -_080712EC: .4byte 0x0000044C - - thumb_func_start sub_080712F0 -sub_080712F0: @ 0x080712F0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080042B8 - movs r5, #0 - ldr r3, _08071314 @ =gUnk_03003F80 - ldr r0, [r3, #0x30] - movs r2, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08071318 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807133E - b _08071342 - .align 2, 0 -_08071314: .4byte gUnk_03003F80 -_08071318: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807133E - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - cmp r0, #0xce - beq _0807133C - ldr r0, _08071338 @ =0x000002CE - strh r0, [r3, #8] - b _0807133E - .align 2, 0 -_08071338: .4byte 0x000002CE -_0807133C: - movs r5, #1 -_0807133E: - cmp r5, #0 - beq _0807137A -_08071342: - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - subs r1, #5 - movs r0, #0x20 - strb r0, [r1] - 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] - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r2, _0807137C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #5 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bl sub_08079458 -_0807137A: - pop {r4, r5, pc} - .align 2, 0 -_0807137C: .4byte gUnk_03003F80 - - thumb_func_start sub_08071380 -sub_08071380: @ 0x08071380 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080713E8 @ =gUnk_03003F80 - adds r1, r5, #0 - adds r1, #0xa8 - movs r0, #0xe - strb r0, [r1] - ldr r1, _080713EC @ =gUnk_0811BA9C - 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, #7 - beq _080713FC - cmp r0, #2 - bls _080713FC - ldr r0, [r5, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080713FC - ldr r0, _080713F0 @ =gUnk_03000FF0 - ldrh r1, [r0, #2] - movs r0, #0x81 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _080713FC - bl sub_08052660 - cmp r0, #0 - bne _080713D0 - ldr r0, _080713F4 @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - cmp r0, #3 - bne _080713F8 -_080713D0: - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #7 - movs r1, #0x10 - bl sub_08050054 - movs r0, #0xf8 - bl sub_080A3268 - b _080713FC - .align 2, 0 -_080713E8: .4byte gUnk_03003F80 -_080713EC: .4byte gUnk_0811BA9C -_080713F0: .4byte gUnk_03000FF0 -_080713F4: .4byte gUnk_02033A90 -_080713F8: - bl sub_0804ACF8 -_080713FC: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08071400 -sub_08071400: @ 0x08071400 - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r1, #0 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - ldr r0, _0807149C @ =gUnk_02033A90 - ldrh r3, [r0, #0x12] - ldrh r5, [r0, #0x14] - movs r0, #0x2e - ldrsh r2, [r4, r0] - cmp r2, r3 - bne _0807142A - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, r5 - beq _08071444 -_0807142A: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r2, #0 - adds r2, r3, #0 - adds r3, r5, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - bl sub_08079E08 -_08071444: - adds r0, r4, #0 - bl sub_08073904 - adds r0, r4, #0 - bl sub_080042B8 - ldr r2, _080714A0 @ =gUnk_03003F80 - ldrb r0, [r2, #2] - cmp r0, #0 - bne _0807147C - ldr r0, [r2, #0x30] - movs r1, #0x20 - orrs r0, r1 - str r0, [r2, #0x30] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #4 - strb r0, [r4, #0x14] - ldrb r1, [r4, #0x18] - subs r0, #0x45 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r0, _0807149C @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - cmp r0, #4 - bne _0807147C - ldr r0, _080714A4 @ =0x0000052C - strh r0, [r2, #8] -_0807147C: - movs r0, #8 - strb r0, [r4, #0xe] - ldr r0, _0807149C @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - cmp r0, #3 - beq _0807149A - 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] -_0807149A: - pop {r4, r5, pc} - .align 2, 0 -_0807149C: .4byte gUnk_02033A90 -_080714A0: .4byte gUnk_03003F80 -_080714A4: .4byte 0x0000052C - - thumb_func_start sub_080714A8 -sub_080714A8: @ 0x080714A8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08071524 @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - cmp r0, #5 - bgt _080714BE - cmp r0, #4 - blt _080714BE - ldr r0, _08071528 @ =gLinkEntity - bl sub_0806F948 -_080714BE: - ldr r3, _0807152C @ =gUnk_03003F80 - ldrb r1, [r3, #0xd] - movs r0, #0x84 - ands r0, r1 - cmp r0, #0 - bne _0807153E - ldrb r0, [r4, #0x15] - cmp r0, r1 - beq _080714D4 - movs r0, #8 - strb r0, [r4, #0xe] -_080714D4: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08071538 - ldrb r0, [r3, #0xd] - strb r0, [r4, #0x15] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x1a - strb r0, [r4, #0x14] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - movs r0, #9 - strb r0, [r4, #0xc] - movs r0, #7 - strb r0, [r4, #0xd] - strb r1, [r4, #0xf] - ldr r1, [r3, #0x30] - movs r0, #8 - ands r0, r1 - ldr r4, _08071530 @ =0x0000080C - adds r2, r4, #0 - cmp r0, #0 - beq _08071516 - ldr r0, _08071534 @ =0x0000041C - adds r2, r0, #0 -_08071516: - strh r2, [r3, #8] - movs r0, #0x21 - rsbs r0, r0, #0 - ands r1, r0 - str r1, [r3, #0x30] - b _0807156A - .align 2, 0 -_08071524: .4byte gUnk_02033A90 -_08071528: .4byte gLinkEntity -_0807152C: .4byte gUnk_03003F80 -_08071530: .4byte 0x0000080C -_08071534: .4byte 0x0000041C -_08071538: - ldrb r0, [r3, #0xd] - strb r0, [r4, #0x15] - b _08071542 -_0807153E: - movs r0, #8 - strb r0, [r4, #0xe] -_08071542: - ldr r0, _0807155C @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - cmp r0, #4 - bne _08071560 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - bne _08071566 - adds r0, r4, #0 - bl sub_080042B8 - b _0807156A - .align 2, 0 -_0807155C: .4byte gUnk_02033A90 -_08071560: - adds r0, r4, #0 - bl sub_08077698 -_08071566: - bl sub_08079938 -_0807156A: - pop {r4, pc} - - thumb_func_start sub_0807156C -sub_0807156C: @ 0x0807156C - push {lr} - ldr r2, _080715A0 @ =gUnk_03000BF0 - movs r1, #0 - str r1, [r2, #0x30] - ldr r2, _080715A4 @ =gUnk_02034490 - movs r1, #1 - strb r1, [r2] - movs r1, #3 - strb r1, [r0, #0xd] - movs r1, #0x1e - strb r1, [r0, #0xf] - ldr r2, _080715A8 @ =gUnk_03003F80 - movs r1, #0xe7 - lsls r1, r1, #3 - strh r1, [r2, #8] - movs r1, #6 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - bl sub_08077B20 - bl sub_0805E544 - pop {pc} - .align 2, 0 -_080715A0: .4byte gUnk_03000BF0 -_080715A4: .4byte gUnk_02034490 -_080715A8: .4byte gUnk_03003F80 - - thumb_func_start sub_080715AC -sub_080715AC: @ 0x080715AC - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080715CC - adds r0, r4, #0 - bl sub_080042B8 - ldr r0, _080715D0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080715CC - movs r0, #4 - strb r0, [r4, #0xd] -_080715CC: - pop {r4, pc} - .align 2, 0 -_080715D0: .4byte gUnk_03003F80 - - thumb_func_start sub_080715D4 -sub_080715D4: @ 0x080715D4 - push {lr} - adds r3, r0, #0 - movs r2, #0 - movs r0, #5 - strb r0, [r3, #0xd] - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - ldrb r1, [r0] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - mov r1, ip - strb r0, [r1] - strb r2, [r3, #0xf] - ldrb r0, [r3, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r3, #0x19] - adds r0, r3, #0 - adds r0, #0x80 - movs r2, #0x80 - lsls r2, r2, #1 - str r2, [r0] - adds r0, #4 - str r2, [r0] - adds r0, r3, #0 - adds r1, r2, #0 - movs r3, #0 - bl sub_0805EC9C - ldr r2, _08071628 @ =gUnk_03003F80 - ldr r0, _0807162C @ =0x000002C3 - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - movs r1, #0x80 - orrs r0, r1 - str r0, [r2, #0x30] - ldr r0, _08071630 @ =0x0000016F - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08071628: .4byte gUnk_03003F80 -_0807162C: .4byte 0x000002C3 -_08071630: .4byte 0x0000016F - - thumb_func_start sub_08071634 -sub_08071634: @ 0x08071634 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0 - beq _08071654 - adds r1, r5, #0 - adds r1, #0x80 - ldr r0, [r1] - adds r0, #0x80 - lsls r0, r0, #0x14 - lsrs r7, r0, #0x17 - adds r4, r1, #0 - b _0807166A -_08071654: - adds r4, r5, #0 - adds r4, #0x80 - ldrb r1, [r4] - lsrs r1, r1, #6 - movs r0, #3 - eors r1, r0 - adds r1, #1 - movs r0, #0x10 - bl __divsi3 - asrs r7, r0, #1 -_0807166A: - adds r0, r5, #0 - adds r0, #0x84 - ldr r3, [r0] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r0, #0 - cmp r3, r1 - bls _08071684 - adds r0, r3, #0 - adds r0, #0x80 - lsls r0, r0, #0x14 - lsrs r3, r0, #0x17 - b _08071694 -_08071684: - cmp r3, r1 - bne _0807168C - movs r3, #0x10 - b _08071694 -_0807168C: - ldr r1, _080716B0 @ =gUnk_0811BABC - lsrs r0, r3, #5 - adds r0, r0, r1 - ldrb r3, [r0] -_08071694: - movs r0, #0x80 - lsls r0, r0, #9 - mov r8, r0 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #2 - beq _080716EA - cmp r0, #2 - bgt _080716B4 - cmp r0, #1 - beq _080716BA - b _08071754 - .align 2, 0 -_080716B0: .4byte gUnk_0811BABC -_080716B4: - cmp r0, #3 - beq _0807171E - b _08071754 -_080716BA: - movs r1, #0x29 - adds r1, r1, r5 - mov ip, r1 - ldrb r1, [r1] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - mov r1, ip - strb r0, [r1] - ldr r0, [r4] - cmp r0, #0x80 - bls _080716D6 - subs r0, r0, r7 - str r0, [r4] -_080716D6: - lsls r1, r3, #1 - ldr r0, [r2] - adds r0, r0, r1 - str r0, [r2] - mov r0, r8 - lsls r1, r0, #1 - ldr r0, [r5, #0x30] - adds r0, r0, r1 - str r0, [r5, #0x30] - b _08071754 -_080716EA: - ldr r0, [r4] - adds r0, r0, r7 - str r0, [r4] - ldr r1, [r2] - movs r6, #0x80 - lsls r6, r6, #1 - cmp r1, r6 - bls _08071710 - ldr r0, _0807170C @ =0x0000017F - cmp r1, r0 - bhi _08071702 - lsrs r3, r3, #1 -_08071702: - subs r0, r1, r3 - cmp r0, #0xff - bhi _08071716 - str r6, [r2] - b _08071718 - .align 2, 0 -_0807170C: .4byte 0x0000017F -_08071710: - cmp r1, #0x80 - bls _08071718 - subs r0, r1, r3 -_08071716: - str r0, [r2] -_08071718: - ldr r0, [r5, #0x34] - mov r1, r8 - b _08071750 -_0807171E: - ldr r0, [r4] - ldr r6, _08071740 @ =0x0000033F - cmp r0, r6 - bhi _0807172A - adds r0, r0, r7 - str r0, [r4] -_0807172A: - ldr r1, [r2] - cmp r1, r6 - bls _08071744 - movs r0, #8 - strb r0, [r5, #0xe] - movs r0, #0x1e - strb r0, [r5, #0xf] - movs r0, #6 - strb r0, [r5, #0xd] - b _0807174A - .align 2, 0 -_08071740: .4byte 0x0000033F -_08071744: - lsls r0, r3, #1 - adds r0, r1, r0 - str r0, [r2] -_0807174A: - mov r0, r8 - lsls r1, r0, #1 - ldr r0, [r5, #0x34] -_08071750: - subs r0, r0, r1 - str r0, [r5, #0x34] -_08071754: - ldr r1, [r4] - ldr r2, [r2] - adds r0, r5, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r5, #0 - bl sub_080042B8 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807176C -sub_0807176C: @ 0x0807176C - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - bne _080717C6 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080717CA - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldr r1, _080717AC @ =gUnk_02033A90 - ldrb r0, [r1, #0x17] - cmp r0, #3 - bne _080717B0 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080717CA - adds r0, r4, #0 - bl sub_080717F8 - b _080717CA - .align 2, 0 -_080717AC: .4byte gUnk_02033A90 -_080717B0: - cmp r0, #6 - bne _080717C0 - ldr r0, _080717BC @ =gUnk_0813AB58 - bl sub_08080840 - b _080717CA - .align 2, 0 -_080717BC: .4byte gUnk_0813AB58 -_080717C0: - movs r0, #1 - strb r0, [r1, #0x19] - b _080717CA -_080717C6: - subs r0, #1 - strb r0, [r4, #0xe] -_080717CA: - pop {r4, pc} - - thumb_func_start sub_080717CC -sub_080717CC: @ 0x080717CC - push {lr} - adds r1, r0, #0 - ldr r0, _080717E4 @ =gUnk_03000FD0 - ldrb r0, [r0] - cmp r0, #0 - bne _080717F4 - ldrb r0, [r1, #0xe] - cmp r0, #0 - beq _080717E8 - subs r0, #1 - strb r0, [r1, #0xe] - b _080717F4 - .align 2, 0 -_080717E4: .4byte gUnk_03000FD0 -_080717E8: - adds r0, r1, #0 - bl sub_080717F8 - movs r0, #0x10 - bl sub_080500F4 -_080717F4: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080717F8 -sub_080717F8: @ 0x080717F8 - push {r4, lr} - ldr r2, _08071850 @ =gUnk_02033A90 - ldrb r1, [r2, #0x16] - lsls r1, r1, #1 - strb r1, [r0, #0x14] - ldr r3, _08071854 @ =gUnk_0811BAC4 - ldrb r1, [r2, #0x16] - lsls r1, r1, #2 - adds r1, r1, r3 - ldrh r1, [r1] - ldrh r4, [r2, #0x12] - adds r1, r1, r4 - movs r4, #0 - strh r1, [r0, #0x2e] - ldrb r1, [r2, #0x16] - lsls r1, r1, #1 - adds r1, #1 - lsls r1, r1, #1 - adds r1, r1, r3 - ldrh r1, [r1] - ldrh r3, [r2, #0x14] - adds r1, r1, r3 - strh r1, [r0, #0x32] - movs r1, #0xb4 - strb r1, [r2, #0x1a] - ldr r1, _08071858 @ =gUnk_02034490 - strb r4, [r1] - movs r1, #9 - strb r1, [r0, #0xc] - strb r4, [r0, #0xd] - ldr r3, _0807185C @ =gUnk_03003F80 - ldr r1, [r3, #0x30] - movs r2, #0x21 - rsbs r2, r2, #0 - ands r1, r2 - movs r2, #0x80 - orrs r1, r2 - str r1, [r3, #0x30] - bl sub_0805EC60 - bl sub_0805E564 - pop {r4, pc} - .align 2, 0 -_08071850: .4byte gUnk_02033A90 -_08071854: .4byte gUnk_0811BAC4 -_08071858: .4byte gUnk_02034490 -_0807185C: .4byte gUnk_03003F80 - - thumb_func_start sub_08071860 -sub_08071860: @ 0x08071860 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - beq _08071876 - bl sub_08056360 - bl sub_08071A6C - b _08071896 -_08071876: - ldr r0, _08071898 @ =gUnk_03003F80 - adds r0, #0xa8 - movs r1, #0x13 - strb r1, [r0] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r1, _0807189C @ =gUnk_0811BAD4 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_08071896: - pop {r4, pc} - .align 2, 0 -_08071898: .4byte gUnk_03003F80 -_0807189C: .4byte gUnk_0811BAD4 - - thumb_func_start sub_080718A0 -sub_080718A0: @ 0x080718A0 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08077B2C - ldr r0, _080718EC @ =gUnk_03000B80 - adds r0, #0x63 - movs r1, #0 - strb r1, [r0] - adds r0, r4, #0 - adds r0, #0x3d - strb r1, [r0] - ldr r1, _080718F0 @ =gUnk_03003DC0 - movs r2, #6 - movs r0, #6 - strb r0, [r1] - ldrb r1, [r4, #0x11] - subs r0, #0x16 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - ldr r5, _080718F4 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080718F8 - movs r0, #2 - strb r0, [r4, #0xd] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x3b - ands r0, r1 - strb r0, [r2] - bl sub_08052BB8 - b _08071938 - .align 2, 0 -_080718EC: .4byte gUnk_03000B80 -_080718F0: .4byte gUnk_03003DC0 -_080718F4: .4byte gUnk_03003F80 -_080718F8: - ldrb r0, [r5, #2] - cmp r0, #0 - bne _08071928 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r0, [r4, #0x14] - cmp r0, #2 - bne _08071914 - ldr r0, _08071910 @ =0x000003CA - b _08071916 - .align 2, 0 -_08071910: .4byte 0x000003CA -_08071914: - ldr r0, _08071924 @ =0x000003C6 -_08071916: - strh r0, [r5, #8] - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _08071938 - .align 2, 0 -_08071924: .4byte 0x000003C6 -_08071928: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08071938 - strb r0, [r5, #2] -_08071938: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0807193C -sub_0807193C: @ 0x0807193C - 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 _08071986 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #6 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - str r0, [r4, #0x54] - cmp r0, #0 - beq _08071986 - ldrb r0, [r4, #0x14] - cmp r0, #2 - bne _0807197C - ldr r1, _08071978 @ =gUnk_03003F80 - movs r0, #0xf3 - lsls r0, r0, #2 - b _08071980 - .align 2, 0 -_08071978: .4byte gUnk_03003F80 -_0807197C: - ldr r1, _08071988 @ =gUnk_03003F80 - ldr r0, _0807198C @ =0x000003C7 -_08071980: - strh r0, [r1, #8] - bl sub_08052BB8 -_08071986: - pop {r4, pc} - .align 2, 0 -_08071988: .4byte gUnk_03003F80 -_0807198C: .4byte 0x000003C7 - - thumb_func_start sub_08071990 -sub_08071990: @ 0x08071990 - push {r4, lr} - adds r2, r0, #0 - ldr r0, _080719C0 @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _080719E2 - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] - ldr r3, _080719C4 @ =gUnk_03003F80 - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080719D8 - ldrb r0, [r2, #0x14] - cmp r0, #2 - bne _080719CC - ldr r0, _080719C8 @ =0x000003CD - strh r0, [r3, #8] - b _08071A4A - .align 2, 0 -_080719C0: .4byte gUnk_02000050 -_080719C4: .4byte gUnk_03003F80 -_080719C8: .4byte 0x000003CD -_080719CC: - ldr r0, _080719D4 @ =0x000003C9 - strh r0, [r3, #8] - b _08071A4A - .align 2, 0 -_080719D4: .4byte 0x000003C9 -_080719D8: - bl sub_08071A6C - bl sub_08079258 - b _08071A4A -_080719E2: - ldr r4, _08071A20 @ =gUnk_03003F80 - ldr r0, [r4, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08071A4A - ldrb r0, [r2, #0x14] - movs r3, #0 - cmp r0, #2 - bne _080719F8 - movs r3, #4 -_080719F8: - ldr r0, [r2, #0x54] - ldrb r0, [r0, #0xe] - cmp r0, #0 - beq _08071A24 - adds r0, r3, #0 - adds r0, #0xc8 - adds r1, r2, #0 - adds r1, #0x58 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - beq _08071A44 - movs r1, #0xf2 - lsls r1, r1, #2 - adds r0, r1, #0 - adds r0, r3, r0 - strh r0, [r4, #8] - b _08071A4A - .align 2, 0 -_08071A20: .4byte gUnk_03003F80 -_08071A24: - adds r0, r3, #0 - adds r0, #0xc7 - adds r1, r2, #0 - adds r1, #0x58 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - beq _08071A44 - ldr r1, _08071A40 @ =0x000003C7 - adds r0, r3, r1 - strh r0, [r4, #8] - b _08071A4A - .align 2, 0 -_08071A40: .4byte 0x000003C7 -_08071A44: - adds r0, r2, #0 - bl sub_080042B8 -_08071A4A: - pop {r4, pc} - - thumb_func_start sub_08071A4C -sub_08071A4C: @ 0x08071A4C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08071A68 - bl sub_08071A6C - bl sub_0807921C -_08071A68: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08071A6C -sub_08071A6C: @ 0x08071A6C - ldr r1, _08071A84 @ =gUnk_03003DC0 - movs r0, #0 - strb r0, [r1] - ldr r3, _08071A88 @ =gLinkEntity - ldrb r1, [r3, #0x11] - lsrs r2, r1, #4 - subs r0, #0x10 - ands r0, r1 - orrs r0, r2 - strb r0, [r3, #0x11] - bx lr - .align 2, 0 -_08071A84: .4byte gUnk_03003DC0 -_08071A88: .4byte gLinkEntity - - thumb_func_start sub_08071A8C -sub_08071A8C: @ 0x08071A8C - push {lr} - ldr r1, _08071AA8 @ =gUnk_03003F80 - adds r1, #0xa8 - movs r2, #0x19 - strb r2, [r1] - ldr r2, _08071AAC @ =gUnk_0811BAE4 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08071AA8: .4byte gUnk_03003F80 -_08071AAC: .4byte gUnk_0811BAE4 - - thumb_func_start sub_08071AB0 -sub_08071AB0: @ 0x08071AB0 - push {r4, lr} - adds r3, r0, #0 - ldrb r0, [r3, #0xd] - adds r0, #1 - strb r0, [r3, #0xd] - ldr r1, _08071AD8 @ =gUnk_03003F80 - ldr r2, [r1, #0x30] - movs r0, #1 - orrs r2, r0 - str r2, [r1, #0x30] - ldrb r4, [r3, #0xa] - cmp r4, #1 - bne _08071ADC - movs r1, #0 - movs r0, #0 - strh r0, [r3, #0x24] - strb r1, [r3, #0xe] - strb r4, [r3, #0xf] - b _08071AE8 - .align 2, 0 -_08071AD8: .4byte gUnk_03003F80 -_08071ADC: - movs r0, #0x80 - ands r2, r0 - cmp r2, #0 - beq _08071AE6 - movs r0, #0x40 -_08071AE6: - strh r0, [r3, #0x24] -_08071AE8: - adds r0, r3, #0 - bl sub_08071AF0 - pop {r4, pc} - - thumb_func_start sub_08071AF0 -sub_08071AF0: @ 0x08071AF0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08071B34 @ =gUnk_03003F80 - adds r0, r5, #0 - adds r0, #0x80 - movs r1, #0 - strh r1, [r0] - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _08071B44 - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08071B58 - ldr r0, _08071B38 @ =gUnk_0811BAF0 - ldrb r1, [r4, #0xe] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r2, [r1] - adds r0, r2, #0 - cmp r0, #0xff - beq _08071B3C - strb r2, [r4, #0xf] - ldrh r0, [r1, #2] - strh r0, [r4, #0x24] - ldrb r0, [r4, #0xe] - adds r0, #1 - strb r0, [r4, #0xe] - b _08071B58 - .align 2, 0 -_08071B34: .4byte gUnk_03003F80 -_08071B38: .4byte gUnk_0811BAF0 -_08071B3C: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _08071B5C -_08071B44: - ldrb r0, [r5, #6] - subs r0, #1 - strb r0, [r5, #6] - movs r1, #0x7f - ands r0, r1 - cmp r0, #0 - bne _08071B58 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08071B58: - bl sub_08079E08 -_08071B5C: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08071B60 -sub_08071B60: @ 0x08071B60 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08071BAC @ =gUnk_03003F80 - movs r2, #0 - movs r0, #2 - strb r0, [r5, #6] - ldr r0, [r5, #0x30] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x30] - strb r2, [r4, #0xa] - adds r0, r4, #0 - adds r0, #0x42 - strb r2, [r0] - adds r0, r4, #0 - bl sub_080728AC - movs r0, #6 - strb r0, [r4, #0xf] - ldr r0, [r5, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08071BA8 - movs r0, #0x82 - lsls r0, r0, #1 - strh r0, [r5, #8] - movs r0, #3 - strh r0, [r4, #0x12] - ldrb r1, [r4, #0x14] - lsrs r1, r1, #1 - adds r1, #0x3c - adds r0, r4, #0 - bl sub_080042AC -_08071BA8: - pop {r4, r5, pc} - .align 2, 0 -_08071BAC: .4byte gUnk_03003F80 - - thumb_func_start sub_08071BB0 -sub_08071BB0: @ 0x08071BB0 - push {lr} - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - ldr r2, _08071BD4 @ =gUnk_0811BB2C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, _08071BD8 @ =gUnk_03003F80 - adds r0, #0xa8 - movs r1, #0x12 - strb r1, [r0] - pop {pc} - .align 2, 0 -_08071BD4: .4byte gUnk_0811BB2C -_08071BD8: .4byte gUnk_03003F80 - - thumb_func_start sub_08071BDC -sub_08071BDC: @ 0x08071BDC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08071C10 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08071C9C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _08071C1C - ldr r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08071C14 - movs r0, #0x84 - lsls r0, r0, #3 - strh r0, [r5, #8] - b _08071C9C - .align 2, 0 -_08071C10: .4byte gUnk_03003F80 -_08071C14: - movs r0, #0x81 - lsls r0, r0, #4 - strh r0, [r5, #8] - b _08071C9C -_08071C1C: - strb r0, [r5, #0xc] - ldr r1, [r5, #0x30] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08071C4C - ldrb r0, [r5, #0x12] - subs r0, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #2 - bhi _08071C42 - adds r0, r4, #0 - bl sub_0807A298 - bl sub_08079458 - movs r0, #0xa - strb r0, [r4, #0xc] -_08071C42: - ldr r0, _08071C48 @ =0x00000C1A - b _08071C5A - .align 2, 0 -_08071C48: .4byte 0x00000C1A -_08071C4C: - movs r0, #8 - ands r1, r0 - movs r0, #0xde - lsls r0, r0, #1 - cmp r1, #0 - beq _08071C5A - ldr r0, _08071CA0 @ =0x00000459 -_08071C5A: - ldr r2, _08071CA4 @ =gUnk_03003F80 - movs r3, #0 - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - ldr r1, _08071CA8 @ =0xFEDBF2FE - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #4 - strb r0, [r4, #0x14] - adds r5, r4, #0 - adds r5, #0x29 - ldrb r1, [r5] - subs r0, #0x3d - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r5] - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r3, [r2, #2] - strb r3, [r2, #6] - adds r0, r4, #0 - bl sub_0800451C - bl sub_08077B2C - movs r0, #0x87 - bl sub_080A3268 -_08071C9C: - pop {r4, r5, pc} - .align 2, 0 -_08071CA0: .4byte 0x00000459 -_08071CA4: .4byte gUnk_03003F80 -_08071CA8: .4byte 0xFEDBF2FE - - thumb_func_start sub_08071CAC -sub_08071CAC: @ 0x08071CAC - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08071CFE - ldr r1, _08071CE0 @ =gUnk_03003F80 - ldr r2, [r1, #0x30] - adds r0, r2, #0 - ands r0, r3 - cmp r0, #0 - bne _08071CEC - movs r0, #8 - ands r2, r0 - ldr r0, _08071CE4 @ =0x000002BD - cmp r2, #0 - beq _08071CEE - ldr r0, _08071CE8 @ =0x0000045A - b _08071CEE - .align 2, 0 -_08071CE0: .4byte gUnk_03003F80 -_08071CE4: .4byte 0x000002BD -_08071CE8: .4byte 0x0000045A -_08071CEC: - ldr r0, _08071D00 @ =0x00000C1B -_08071CEE: - strh r0, [r1, #8] - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0xf0 - strb r0, [r4, #0xe] - movs r0, #0x7b - bl sub_080A3268 -_08071CFE: - pop {r4, pc} - .align 2, 0 -_08071D00: .4byte 0x00000C1B - - thumb_func_start sub_08071D04 -sub_08071D04: @ 0x08071D04 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080042B8 - adds r0, r5, #0 - adds r0, #0x5a - ldrb r0, [r0] - cmp r0, #0 - beq _08071D7A - movs r4, #0 - movs r0, #0x28 - bl sub_080544DC - adds r1, r0, #0 - cmp r1, #0 - beq _08071D3A - ldr r0, _08071D6C @ =gUnk_02002A40 - adds r0, r0, r1 - adds r0, #0xb5 - movs r1, #0x20 - strb r1, [r0] - movs r0, #0x40 - movs r1, #0x60 - movs r2, #2 - bl sub_080A2960 - movs r4, #0x20 -_08071D3A: - cmp r4, #0 - beq _08071D74 - adds r0, r4, #0 - bl sub_080526A0 - movs r2, #0 - movs r0, #3 - strb r0, [r5, #0xd] - ldr r1, _08071D70 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3c - strb r2, [r0] - movs r0, #0xff - strb r0, [r5, #0x15] - movs r3, #0 - strh r2, [r5, #0x24] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r5, #0x20] - movs r0, #1 - strb r0, [r1, #2] - adds r1, #0x26 - strb r3, [r1] - b _08071D7A - .align 2, 0 -_08071D6C: .4byte gUnk_02002A40 -_08071D70: .4byte gUnk_03003F80 -_08071D74: - ldr r1, _08071D7C @ =gUnk_030010A0 - movs r0, #1 - strb r0, [r1, #5] -_08071D7A: - pop {r4, r5, pc} - .align 2, 0 -_08071D7C: .4byte gUnk_030010A0 - - thumb_func_start sub_08071D80 -sub_08071D80: @ 0x08071D80 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r5, _08071DB4 @ =gUnk_03003F80 - movs r0, #1 - strb r0, [r5, #0x14] - adds r0, r4, #0 - bl sub_08073904 - ldrb r1, [r5, #2] - movs r0, #7 - ands r0, r1 - cmp r0, #3 - bne _08071DB2 - movs r0, #0 - strb r0, [r5, #2] - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0xe2 - strb r0, [r1] - bl sub_0805E564 - bl sub_080791D0 -_08071DB2: - pop {r4, r5, pc} - .align 2, 0 -_08071DB4: .4byte gUnk_03003F80 - - thumb_func_start sub_08071DB8 -sub_08071DB8: @ 0x08071DB8 - push {lr} - ldr r2, _08071DCC @ =gUnk_0811BB3C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08071DCC: .4byte gUnk_0811BB3C - - thumb_func_start sub_08071DD0 -sub_08071DD0: @ 0x08071DD0 - push {lr} - adds r2, r0, #0 - ldr r1, _08071DF4 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x38 - ldrb r0, [r0] - strb r0, [r2, #0xe] - adds r3, r1, #0 - adds r3, #0x39 - ldrb r0, [r3] - cmp r0, #0 - beq _08071DF8 - movs r0, #0 - strb r0, [r3] - movs r0, #2 - strb r0, [r2, #0xd] - adds r0, #0xfe - b _08071E00 - .align 2, 0 -_08071DF4: .4byte gUnk_03003F80 -_08071DF8: - movs r0, #1 - strb r0, [r2, #0xd] - movs r0, #0x8a - lsls r0, r0, #1 -_08071E00: - strh r0, [r1, #8] - pop {pc} - - thumb_func_start sub_08071E04 -sub_08071E04: @ 0x08071E04 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x34] - cmp r0, #0 - beq _08071E38 - ldr r5, _08071E34 @ =gUnk_03003F80 - ldrb r0, [r5, #0x14] - cmp r0, #0 - bne _08071E38 - bl sub_0807A1B8 - ldrb r0, [r5, #0x12] - cmp r0, #1 - bne _08071E38 - movs r0, #7 - strb r0, [r5, #0x11] - ldr r0, [r5, #0x30] - movs r1, #0x80 - lsls r1, r1, #2 - orrs r0, r1 - str r0, [r5, #0x30] - bl sub_080791BC - b _08071E72 - .align 2, 0 -_08071E34: .4byte gUnk_03003F80 -_08071E38: - adds r0, r4, #0 - bl sub_080042B8 - bl sub_08079B24 - cmp r0, #0 - bne _08071E4E - adds r0, r4, #0 - bl sub_08079708 - b _08071E72 -_08071E4E: - bl sub_080792D8 - bl sub_0807953C - cmp r0, #0 - beq _08071E60 - ldrb r0, [r4, #0xe] - subs r0, #2 - b _08071E64 -_08071E60: - ldrb r0, [r4, #0xe] - subs r0, #1 -_08071E64: - strb r0, [r4, #0xe] - movs r0, #0xe - ldrsb r0, [r4, r0] - cmp r0, #0 - bgt _08071E72 - bl sub_080791BC -_08071E72: - pop {r4, r5, pc} - - thumb_func_start sub_08071E74 -sub_08071E74: @ 0x08071E74 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - bl sub_08079E08 - ldrb r0, [r4, #0xe] - adds r1, r0, #0 - adds r1, #0xff - strb r1, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08071E96 - bl sub_080791BC -_08071E96: - pop {r4, pc} - - thumb_func_start sub_08071E98 -sub_08071E98: @ 0x08071E98 - push {lr} - ldr r2, _08071EAC @ =gUnk_0811BB48 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08071EAC: .4byte gUnk_0811BB48 - - thumb_func_start sub_08071EB0 -sub_08071EB0: @ 0x08071EB0 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077B2C - adds r0, r4, #0 - movs r1, #0xe - bl sub_08077C3C - cmp r0, #0 - beq _08071F12 - ldr r3, _08071EE4 @ =gUnk_03003F80 - adds r2, r3, #0 - adds r2, #0x38 - ldrb r1, [r2] - adds r0, #0x68 - strb r1, [r0] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r0, [r2] - cmp r0, #0x20 - bne _08071EEC - ldr r0, _08071EE8 @ =0x00000614 - strh r0, [r3, #8] - b _08071F12 - .align 2, 0 -_08071EE4: .4byte gUnk_03003F80 -_08071EE8: .4byte 0x00000614 -_08071EEC: - cmp r0, #0x20 - blt _08071F00 - cmp r0, #0x25 - bgt _08071F00 - ldr r0, _08071EFC @ =0x000002DF - strh r0, [r3, #8] - b _08071F12 - .align 2, 0 -_08071EFC: .4byte 0x000002DF -_08071F00: - movs r0, #0xc2 - lsls r0, r0, #3 - strh r0, [r3, #8] - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - movs r1, #2 - bl sub_0807CAA0 -_08071F12: - pop {r4, pc} - - thumb_func_start sub_08071F14 -sub_08071F14: @ 0x08071F14 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r4, #0x5a - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08071F32 - ldr r1, _08071F34 @ =gUnk_03003F80 - movs r0, #0 - str r0, [r1, #0x2c] - bl sub_0807921C -_08071F32: - pop {r4, pc} - .align 2, 0 -_08071F34: .4byte gUnk_03003F80 - - thumb_func_start sub_08071F38 -sub_08071F38: @ 0x08071F38 - push {lr} - ldr r2, _08071F4C @ =gUnk_0811BB50 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08071F4C: .4byte gUnk_0811BB50 - - thumb_func_start sub_08071F50 -sub_08071F50: @ 0x08071F50 - push {lr} - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x78 - strb r1, [r0, #0xe] - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - ldr r1, _08071F78 @ =gUnk_03003F80 - movs r0, #0xa5 - lsls r0, r0, #2 - strh r0, [r1, #8] - bl sub_08077B20 - ldr r0, _08071F7C @ =0x00000195 - bl sub_080A3268 - pop {pc} - .align 2, 0 -_08071F78: .4byte gUnk_03003F80 -_08071F7C: .4byte 0x00000195 - - thumb_func_start sub_08071F80 -sub_08071F80: @ 0x08071F80 - push {r4, r5, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - adds r5, r0, #0 - cmp r5, #0 - bne _08071FB8 - adds r0, r4, #0 - bl sub_08016A04 - ldr r0, _08071FB4 @ =gUnk_03003F80 - strb r5, [r0, #2] - ldrb r0, [r0, #0x14] - cmp r0, #0 - bne _08071FB8 - bl sub_08079D48 - cmp r0, #0 - bne _08071FB8 - adds r0, r4, #0 - bl sub_08072008 - b _08072004 - .align 2, 0 -_08071FB4: .4byte gUnk_03003F80 -_08071FB8: - bl sub_08079B24 - cmp r0, #0 - bne _08071FC8 - adds r0, r4, #0 - bl sub_08079708 - b _08071FFE -_08071FC8: - ldr r0, _08071FEC @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - lsls r1, r1, #4 - ands r0, r1 - cmp r0, #0 - beq _08071FFE - bl sub_0807953C - cmp r0, #0 - beq _08071FF0 - ldrb r0, [r4, #0xe] - subs r0, #3 - strb r0, [r4, #0xe] - adds r1, r4, #0 - adds r1, #0x62 - movs r0, #2 - b _08071FF4 - .align 2, 0 -_08071FEC: .4byte gUnk_03003F80 -_08071FF0: - adds r1, r4, #0 - adds r1, #0x62 -_08071FF4: - strb r0, [r1] - movs r0, #0xe - ldrsb r0, [r4, r0] - cmp r0, #0 - bgt _08072004 -_08071FFE: - adds r0, r4, #0 - bl sub_08072008 -_08072004: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08072008 -sub_08072008: @ 0x08072008 - push {lr} - adds r3, r0, #0 - adds r1, r3, #0 - adds r1, #0x3d - movs r2, #0 - movs r0, #0xa0 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x42 - strb r2, [r0] - ldrb r1, [r3, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r3, #0x10] - adds r0, r3, #0 - adds r0, #0x62 - strb r2, [r0] - ldr r2, _08072044 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08072048 @ =0xFFFFF7FE - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r3, #0 - movs r1, #0xd - movs r2, #0 - bl CreateFX - bl sub_080791BC - pop {pc} - .align 2, 0 -_08072044: .4byte gUnk_03003F80 -_08072048: .4byte 0xFFFFF7FE - - thumb_func_start sub_0807204C -sub_0807204C: @ 0x0807204C - push {lr} - ldr r2, _08072060 @ =gUnk_0811BB58 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08072060: .4byte gUnk_0811BB58 - - thumb_func_start sub_08072064 -sub_08072064: @ 0x08072064 - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - ldr r2, _08072094 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x3a - ldrb r1, [r1] - strb r1, [r0, #0xe] - adds r0, r2, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, #1 - ldrb r0, [r0] - lsls r0, r0, #8 - orrs r1, r0 - strh r1, [r2, #8] - bl sub_08077B2C - pop {pc} - .align 2, 0 -_08072094: .4byte gUnk_03003F80 - - thumb_func_start sub_08072098 -sub_08072098: @ 0x08072098 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080720B4 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080720D8 - b _080720C2 -_080720B4: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080720D8 -_080720C2: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _080720D4 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_080720D4: - bl sub_080791BC -_080720D8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080720DC -sub_080720DC: @ 0x080720DC - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _080720F8 - ldr r0, _080720FC @ =gUnk_0811BB60 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_080720F8: - pop {r4, pc} - .align 2, 0 -_080720FC: .4byte gUnk_0811BB60 - - thumb_func_start sub_08072100 -sub_08072100: @ 0x08072100 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r0, _08072148 @ =gUnk_08114F88 - str r0, [r4, #0x48] - ldr r2, _0807214C @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x38 - ldrb r0, [r0] - strb r0, [r4, #0xe] - movs r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - beq _0807213A - movs r0, #0xff - strb r0, [r4, #0x15] -_0807213A: - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08072154 - ldr r0, _08072150 @ =0x00000404 - b _08072158 - .align 2, 0 -_08072148: .4byte gUnk_08114F88 -_0807214C: .4byte gUnk_03003F80 -_08072150: .4byte 0x00000404 -_08072154: - movs r0, #0x82 - lsls r0, r0, #1 -_08072158: - strh r0, [r2, #8] - bl sub_08077B2C - adds r0, r4, #0 - bl sub_08072168 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08072168 -sub_08072168: @ 0x08072168 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - lsls r0, r0, #0x10 - movs r1, #0x80 - lsls r1, r1, #6 - cmp r0, #0 - beq _0807218A - movs r1, #0x80 - lsls r1, r1, #7 -_0807218A: - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, _080721A4 @ =gUnk_03003F80 - adds r0, #0x3a - ldrb r0, [r0] - cmp r0, #0 - beq _080721A8 - adds r0, r4, #0 - bl sub_0806F69C - b _080721AC - .align 2, 0 -_080721A4: .4byte gUnk_03003F80 -_080721A8: - bl sub_08079E08 -_080721AC: - ldr r1, _080721E0 @ =gUnk_03003F80 - ldrb r0, [r4, #0x15] - strb r0, [r1, #0xd] - bl sub_08019840 - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _080721DE - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - bl sub_08016A04 - bl sub_080791BC -_080721DE: - pop {r4, pc} - .align 2, 0 -_080721E0: .4byte gUnk_03003F80 - - thumb_func_start sub_080721E4 -sub_080721E4: @ 0x080721E4 - push {lr} - ldr r1, _08072208 @ =gUnk_03003F80 - adds r1, #0xa8 - movs r2, #0x1a - strb r2, [r1] - ldr r2, _0807220C @ =gUnk_0811BB68 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - ldr r0, _08072210 @ =gUnk_0200AF00 - adds r0, #0x2e - movs r1, #8 - strb r1, [r0] - pop {pc} - .align 2, 0 -_08072208: .4byte gUnk_03003F80 -_0807220C: .4byte gUnk_0811BB68 -_08072210: .4byte gUnk_0200AF00 - - thumb_func_start sub_08072214 -sub_08072214: @ 0x08072214 - push {lr} - adds r3, r0, #0 - movs r0, #1 - strb r0, [r3, #0xd] - movs r0, #0x80 - strh r0, [r3, #0x24] - ldr r2, _08072244 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x38 - ldrb r0, [r0] - strb r0, [r3, #0xe] - ldrb r0, [r3, #0x14] - movs r1, #4 - eors r0, r1 - lsls r0, r0, #2 - strb r0, [r3, #0x15] - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08072248 - movs r0, #0xd3 - lsls r0, r0, #2 - b _0807224A - .align 2, 0 -_08072244: .4byte gUnk_03003F80 -_08072248: - ldr r0, _0807225C @ =0x00000944 -_0807224A: - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - movs r1, #1 - orrs r0, r1 - str r0, [r2, #0x30] - adds r0, r3, #0 - bl sub_08072260 - pop {pc} - .align 2, 0 -_0807225C: .4byte 0x00000944 - - thumb_func_start sub_08072260 -sub_08072260: @ 0x08072260 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _0807229C @ =gUnk_03003F80 - adds r1, r5, #0 - adds r1, #0x80 - movs r0, #0 - strh r0, [r1] - bl sub_08079E08 - 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 _080722B0 - ldr r0, [r5, #0x30] - movs r1, #2 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _080722A0 - movs r0, #0xd3 - lsls r0, r0, #2 - b _080722A2 - .align 2, 0 -_0807229C: .4byte gUnk_03003F80 -_080722A0: - ldr r0, _080722B4 @ =0x00000944 -_080722A2: - strh r0, [r5, #8] - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - bl sub_080791BC -_080722B0: - pop {r4, r5, pc} - .align 2, 0 -_080722B4: .4byte 0x00000944 - - thumb_func_start sub_080722B8 -sub_080722B8: @ 0x080722B8 - push {lr} - ldr r1, _080722D4 @ =gUnk_03003F80 - adds r1, #0xa8 - movs r2, #0xa - strb r2, [r1] - ldr r2, _080722D8 @ =gUnk_0811BB70 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080722D4: .4byte gUnk_03003F80 -_080722D8: .4byte gUnk_0811BB70 - - thumb_func_start sub_080722DC -sub_080722DC: @ 0x080722DC - push {r4, r5, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldr r2, _08072318 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - adds r5, r2, #0 - cmp r0, #0 - bne _0807231C - movs r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0x42 - movs r2, #0 - bl sub_080A2960 - cmp r0, #0 - beq _0807230E - str r4, [r0, #0x54] -_0807230E: - movs r0, #0x8a - lsls r0, r0, #1 - strh r0, [r5, #8] - b _08072332 - .align 2, 0 -_08072318: .4byte gUnk_03003F80 -_0807231C: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - movs r0, #3 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0xa - strb r0, [r1] -_08072332: - ldr r0, [r5, #0x30] - ldr r1, _08072350 @ =0x00000401 - orrs r0, r1 - str r0, [r5, #0x30] - bl sub_08077B2C - movs r0, #0x92 - lsls r0, r0, #1 - bl sub_080A3268 - movs r0, #0x7a - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_08072350: .4byte 0x00000401 - - thumb_func_start sub_08072354 -sub_08072354: @ 0x08072354 - push {r4, lr} - adds r4, r0, #0 - movs r2, #0xc - rsbs r2, r2, #0 - movs r1, #0 - bl sub_0806F854 - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08079744 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - adds r3, r0, #0 - cmp r3, #0 - bne _080723C0 - 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 - adds r0, #0x42 - strb r3, [r0] - movs r0, #2 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - ldr r2, _080723C4 @ =gUnk_03003F80 - ldr r0, _080723C8 @ =0x000002C1 - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - ldr r1, _080723CC @ =0xFFFFFBFF - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r4, #0 - bl sub_08016A04 - adds r0, r4, #0 - movs r1, #0xc - movs r2, #0 - bl CreateFX - movs r0, #0xd3 - lsls r0, r0, #1 - bl sub_080A3268 -_080723C0: - pop {r4, pc} - .align 2, 0 -_080723C4: .4byte gUnk_03003F80 -_080723C8: .4byte 0x000002C1 -_080723CC: .4byte 0xFFFFFBFF - - thumb_func_start sub_080723D0 -sub_080723D0: @ 0x080723D0 - 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 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0807240A - 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 r1, r4, #0 - adds r1, #0x3d - movs r0, #0x14 - strb r0, [r1] - subs r0, #0x16 - bl sub_080526A0 - bl sub_08079458 -_0807240A: - pop {r4, pc} - - thumb_func_start sub_0807240C -sub_0807240C: @ 0x0807240C - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x42 - ldrb r0, [r1] - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08072448 - ldrb r0, [r2, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r2, #0x18] - adds r1, r2, #0 - adds r1, #0x3d - movs r0, #0x14 - strb r0, [r1] - ldr r2, _0807244C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08072450 @ =0xFFFFFBFF - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #2 - rsbs r0, r0, #0 - bl sub_080526A0 - bl sub_08079458 -_08072448: - pop {pc} - .align 2, 0 -_0807244C: .4byte gUnk_03003F80 -_08072450: .4byte 0xFFFFFBFF - - thumb_func_start sub_08072454 -sub_08072454: @ 0x08072454 - push {lr} - ldr r2, _08072468 @ =gUnk_0811BB80 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08072468: .4byte gUnk_0811BB80 - - thumb_func_start sub_0807246C -sub_0807246C: @ 0x0807246C - push {lr} - movs r1, #1 - strb r1, [r0, #0xd] - ldr r2, _0807248C @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x38 - ldrb r1, [r1] - strb r1, [r0, #0xe] - movs r0, #0xf0 - lsls r0, r0, #2 - strh r0, [r2, #8] - movs r0, #0x7b - bl sub_080A3268 - pop {pc} - .align 2, 0 -_0807248C: .4byte gUnk_03003F80 - - thumb_func_start sub_08072490 -sub_08072490: @ 0x08072490 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _080724AE - adds r0, r1, #0 - bl sub_080042B8 - bl sub_08079E08 - b _080724C2 -_080724AE: - adds r0, r1, #0 - adds r0, #0x3d - movs r1, #0x3c - strb r1, [r0] - movs r0, #8 - rsbs r0, r0, #0 - bl sub_080526A0 - bl sub_080791D0 -_080724C2: - pop {pc} - - thumb_func_start sub_080724C4 -sub_080724C4: @ 0x080724C4 - push {lr} - ldr r2, _080724D8 @ =gUnk_0811BB88 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_080724D8: .4byte gUnk_0811BB88 - - thumb_func_start sub_080724DC -sub_080724DC: @ 0x080724DC - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - bl sub_0807A108 - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x29 - beq _0807254C - ldr r1, _08072530 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x89 - ldrb r0, [r0] - cmp r0, #0 - bne _08072512 - adds r0, r1, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08072512 - adds r0, r4, #0 - bl sub_0807AE20 -_08072512: - ldr r0, _08072534 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #0 - bne _08072538 - ldrb r0, [r4, #0x11] - lsrs r2, r0, #4 - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - orrs r1, r2 - strb r1, [r4, #0x11] - adds r0, r4, #0 - bl sub_080728AC - b _08072588 - .align 2, 0 -_08072530: .4byte gUnk_03003F80 -_08072534: .4byte gUnk_03000BF0 -_08072538: - ldr r0, _08072548 @ =gUnk_03003F80 - ldrb r0, [r0, #0x1c] - cmp r0, #0 - bne _08072588 - adds r0, r4, #0 - bl sub_080042B8 - b _08072588 - .align 2, 0 -_08072548: .4byte gUnk_03003F80 -_0807254C: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #1 - strb r0, [r4, #0xd] - ldr r0, _08072570 @ =gUnk_02034350 - ldrb r0, [r0] - cmp r0, #0 - bne _08072588 - ldr r2, _08072574 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807257C - ldr r0, _08072578 @ =0x00000C18 - b _08072580 - .align 2, 0 -_08072570: .4byte gUnk_02034350 -_08072574: .4byte gUnk_03003F80 -_08072578: .4byte 0x00000C18 -_0807257C: - movs r0, #0x82 - lsls r0, r0, #1 -_08072580: - strh r0, [r2, #8] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_08072588: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807258C -sub_0807258C: @ 0x0807258C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080725D0 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #0 - bne _08072604 - adds r0, r4, #0 - bl sub_0807A894 - cmp r0, #0x29 - bne _080725E4 - bl sub_08079E08 - bl sub_080797C4 - cmp r0, #0 - beq _080725DC - ldr r2, _080725D4 @ =gUnk_03003F80 - ldr r1, _080725D8 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r2, #0x16] - ldrh r0, [r1, #0x32] - strh r0, [r2, #0x18] - ldrb r1, [r4, #0x11] - lsrs r2, r1, #4 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - adds r0, r4, #0 - bl sub_080728AC - b _08072604 - .align 2, 0 -_080725D0: .4byte gUnk_03000BF0 -_080725D4: .4byte gUnk_03003F80 -_080725D8: .4byte gLinkEntity -_080725DC: - adds r0, r4, #0 - bl sub_080042B8 - b _08072604 -_080725E4: - ldr r2, _08072624 @ =gUnk_03003F80 - ldr r1, _08072628 @ =gLinkEntity - ldrh r0, [r1, #0x2e] - strh r0, [r2, #0x16] - ldrh r0, [r1, #0x32] - strh r0, [r2, #0x18] - ldrb r1, [r4, #0x11] - lsrs r2, r1, #4 - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, #0x11] - adds r0, r4, #0 - bl sub_080728AC -_08072604: - ldr r1, _08072624 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x89 - ldrb r0, [r0] - cmp r0, #0 - bne _08072620 - adds r0, r1, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08072620 - adds r0, r4, #0 - bl sub_0807AE20 -_08072620: - pop {r4, pc} - .align 2, 0 -_08072624: .4byte gUnk_03003F80 -_08072628: .4byte gLinkEntity - - thumb_func_start sub_0807262C -sub_0807262C: @ 0x0807262C - push {lr} - ldr r1, _08072648 @ =gUnk_03003F80 - adds r1, #0xa8 - movs r2, #9 - strb r2, [r1] - ldr r2, _0807264C @ =gUnk_0811BB90 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08072648: .4byte gUnk_03003F80 -_0807264C: .4byte gUnk_0811BB90 - - thumb_func_start sub_08072650 -sub_08072650: @ 0x08072650 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08072698 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xe - ands r0, r1 - cmp r0, #0 - bne _0807266E - ldr r0, _0807269C @ =gLinkEntity - bl sub_0806F948 - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_0807266E: - movs r1, #0 - movs r0, #1 - strb r0, [r4, #0xd] - strb r1, [r4, #0xe] - bl sub_08077B2C - ldr r3, [r5, #0x30] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _080726A4 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - ldr r0, _080726A0 @ =0x00000C08 - b _080726BE - .align 2, 0 -_08072698: .4byte gUnk_03003F80 -_0807269C: .4byte gLinkEntity -_080726A0: .4byte 0x00000C08 -_080726A4: - adds r0, r4, #0 - adds r0, #0x40 - movs r1, #0x1e - strb r1, [r0] - movs r0, #8 - ands r3, r0 - cmp r3, #0 - beq _080726BA - movs r0, #0x87 - lsls r0, r0, #3 - b _080726BE -_080726BA: - movs r0, #0xab - lsls r0, r0, #2 -_080726BE: - strh r0, [r5, #8] - ldr r2, _080726E0 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xb - orrs r0, r1 - str r0, [r2, #0x30] - bl sub_08000E50 - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080726E4 - movs r0, #0x79 - bl sub_080A3268 - b _080726EA - .align 2, 0 -_080726E0: .4byte gUnk_03003F80 -_080726E4: - movs r0, #0x78 - bl sub_080A3268 -_080726EA: - movs r0, #0x7e - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080726F4 -sub_080726F4: @ 0x080726F4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r3, _08072744 @ =gUnk_03003F80 - ldr r2, [r3, #0x30] - movs r0, #0xc0 - lsls r0, r0, #0xc - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #0xb - cmp r0, r1 - bne _08072730 - movs r0, #0x80 - lsls r0, r0, #0xe - ands r0, r2 - cmp r0, #0 - bne _0807274C - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - beq _0807274C - adds r0, r4, #0 - adds r0, #0x41 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807274C -_08072730: - ldr r0, _08072748 @ =0xFFFBFFFF - ands r2, r0 - str r2, [r3, #0x30] - bl sub_08078EFC - cmp r0, #0 - beq _08072740 - b _080728A0 -_08072740: - b _080727E0 - .align 2, 0 -_08072744: .4byte gUnk_03003F80 -_08072748: .4byte 0xFFFBFFFF -_0807274C: - ldrb r1, [r4, #0x14] - movs r0, #6 - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldr r0, _080727A0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807277E - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _0807277E - ldr r0, _080727A4 @ =gLinkEntity - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - movs r0, #4 - strb r0, [r4, #0xe] -_0807277E: - ldr r5, _080727A0 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0807278E - bl sub_0807A1B8 -_0807278E: - bl sub_08078EFC - cmp r0, #0 - beq _080727AC - ldr r0, [r5, #0x30] - ldr r1, _080727A8 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r5, #0x30] - b _080728A0 - .align 2, 0 -_080727A0: .4byte gUnk_03003F80 -_080727A4: .4byte gLinkEntity -_080727A8: .4byte 0xFFFBFFFF -_080727AC: - ldr r1, [r5, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xc - ands r0, r1 - cmp r0, #0 - beq _080727C4 - ldr r0, _080727C0 @ =0xFFFBFFFF - ands r1, r0 - str r1, [r5, #0x30] - b _080728A0 - .align 2, 0 -_080727C0: .4byte 0xFFFBFFFF -_080727C4: - adds r0, r4, #0 - bl sub_0807AC54 - cmp r0, #0 - bne _080728A0 - ldr r1, [r5, #0x30] - movs r3, #0x94 - lsls r3, r3, #2 - ands r3, r1 - cmp r3, #0 - beq _080727EC - ldr r0, _080727E8 @ =0xFFFBFFFF - ands r1, r0 - str r1, [r5, #0x30] -_080727E0: - adds r0, r4, #0 - bl sub_080728AC - b _080728A0 - .align 2, 0 -_080727E8: .4byte 0xFFFBFFFF -_080727EC: - ldrb r0, [r5, #0x12] - cmp r0, #0x17 - bne _080727FE - adds r0, r4, #0 - bl sub_0800892E - adds r5, r4, #0 - adds r5, #0x5a - b _08072844 -_080727FE: - adds r1, r4, #0 - adds r1, #0x5a - ldrb r0, [r1] - movs r2, #0xf - ands r2, r0 - adds r5, r1, #0 - cmp r2, #1 - beq _0807282A - cmp r2, #1 - bgt _08072818 - cmp r2, #0 - beq _08072822 - b _0807283C -_08072818: - cmp r2, #2 - beq _08072832 - cmp r2, #3 - beq _0807283A - b _0807283C -_08072822: - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0807283C -_0807282A: - ldrh r0, [r4, #0x24] - adds r0, #0x20 - strh r0, [r4, #0x24] - b _0807283C -_08072832: - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - b _0807283C -_0807283A: - strh r3, [r4, #0x24] -_0807283C: - bl sub_08078F24 - bl sub_08079E08 -_08072844: - ldrb r1, [r5] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - bne _08072860 - ldr r0, _080728A4 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _08072860 - adds r0, r4, #0 - adds r0, #0x40 - strb r1, [r0] -_08072860: - ldrb r1, [r5] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _08072870 - adds r0, r4, #0 - bl sub_08077698 -_08072870: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08072882 - ldr r0, _080728A4 @ =gUnk_03003F80 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08072886 -_08072882: - bl sub_080791D0 -_08072886: - ldrb r1, [r5] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807289A - ldr r0, _080728A4 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - ldr r2, _080728A8 @ =0xFFDBFFFF - ands r1, r2 - str r1, [r0, #0x30] -_0807289A: - adds r0, r4, #0 - bl sub_080042B8 -_080728A0: - pop {r4, r5, pc} - .align 2, 0 -_080728A4: .4byte gUnk_03003F80 -_080728A8: .4byte 0xFFDBFFFF - - thumb_func_start sub_080728AC -sub_080728AC: @ 0x080728AC - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08079938 - ldr r0, _080728C8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080728CC - adds r0, r4, #0 - bl sub_0807B068 - b _080728D0 - .align 2, 0 -_080728C8: .4byte gUnk_03003F80 -_080728CC: - bl sub_08078F60 -_080728D0: - ldr r1, _08072940 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _080728E0 - movs r0, #0 - strh r0, [r4, #0x24] -_080728E0: - ldr r0, [r1, #0x30] - movs r5, #0x40 - ands r5, r0 - adds r3, r0, #0 - cmp r5, #0 - bne _080728F6 - ldr r0, _08072944 @ =gLinkEntity - ldrb r1, [r0, #0x18] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #0x18] -_080728F6: - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - bne _08072910 - ldr r2, _08072944 @ =gLinkEntity - 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] -_08072910: - ldr r0, _08072948 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0807292C - cmp r5, #0 - beq _08072928 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08072928: - bl sub_080791D0 -_0807292C: - ldr r0, _08072940 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _0807293C - bl sub_0807A1B8 -_0807293C: - pop {r4, r5, pc} - .align 2, 0 -_08072940: .4byte gUnk_03003F80 -_08072944: .4byte gLinkEntity -_08072948: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807294C -sub_0807294C: @ 0x0807294C - push {lr} - ldr r1, _08072968 @ =gUnk_03003F80 - adds r1, #0xa8 - movs r2, #0x17 - strb r2, [r1] - ldr r2, _0807296C @ =gUnk_0811BB98 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08072968: .4byte gUnk_03003F80 -_0807296C: .4byte gUnk_0811BB98 - - thumb_func_start sub_08072970 -sub_08072970: @ 0x08072970 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _08072A4C - movs r7, #1 - strb r7, [r5, #0xd] - ldrh r2, [r5, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - adds r0, r1, #0 - ands r0, r2 - movs r2, #8 - orrs r0, r2 - strh r0, [r5, #0x2e] - ldrh r0, [r5, #0x32] - ands r1, r0 - movs r0, #0xa - movs r3, #0 - orrs r1, r0 - strh r1, [r5, #0x32] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r2, r5, #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] - strb r3, [r5, #0xe] - ldr r2, _080729D8 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xd - orrs r0, r1 - str r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080729DC - movs r0, #0x95 - lsls r0, r0, #4 - strh r0, [r2, #8] - adds r6, r5, #0 - adds r6, #0x38 - b _08072A14 - .align 2, 0 -_080729D8: .4byte gUnk_03003F80 -_080729DC: - ldr r0, _08072A50 @ =0x0000061C - strh r0, [r2, #8] - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r2, _08072A54 @ =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 - adds r4, r5, #0 - adds r4, #0x38 - ldrb r1, [r4] - bl sub_080001DA - ldr r1, _08072A58 @ =0x00004020 - adds r6, r4, #0 - cmp r0, r1 - bne _08072A14 - strb r7, [r5, #0xe] -_08072A14: - ldr r0, _08072A5C @ =0x00004070 - movs r7, #0x2e - ldrsh r1, [r5, r7] - ldr r3, _08072A54 @ =gUnk_03000BF0 - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r7, #0x32 - ldrsh r2, [r5, r7] - ldrh r3, [r3, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - ands r2, r4 - lsls r2, r2, #6 - orrs r1, r2 - ldrb r2, [r6] - bl sub_0800015E - bl sub_08077B2C - adds r0, r5, #0 - bl sub_08072A60 - movs r0, #0x81 - bl sub_080A3268 -_08072A4C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08072A50: .4byte 0x0000061C -_08072A54: .4byte gUnk_03000BF0 -_08072A58: .4byte 0x00004020 -_08072A5C: .4byte 0x00004070 - - thumb_func_start sub_08072A60 -sub_08072A60: @ 0x08072A60 - push {lr} - adds r2, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08072AC4 - ldrb r0, [r2, #0xe] - cmp r0, #1 - bne _08072A9C - movs r0, #3 - strb r0, [r2, #0xd] - movs r0, #0x28 - strb r0, [r2, #0xe] - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x61 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08072A94 @ =gUnk_03003F80 - ldr r0, _08072A98 @ =0x00000624 - strh r0, [r1, #8] - b _08072ACA - .align 2, 0 -_08072A94: .4byte gUnk_03003F80 -_08072A98: .4byte 0x00000624 -_08072A9C: - movs r0, #2 - strb r0, [r2, #0xd] - ldr r2, _08072AB4 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08072ABC - ldr r0, _08072AB8 @ =0x00000954 - strh r0, [r2, #8] - b _08072ACA - .align 2, 0 -_08072AB4: .4byte gUnk_03003F80 -_08072AB8: .4byte 0x00000954 -_08072ABC: - movs r0, #0xc4 - lsls r0, r0, #3 - strh r0, [r2, #8] - b _08072ACA -_08072AC4: - adds r0, r2, #0 - bl sub_080042B8 -_08072ACA: - pop {pc} - - thumb_func_start sub_08072ACC -sub_08072ACC: @ 0x08072ACC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08072AE0 @ =gUnk_03003F80 - ldrb r3, [r5, #0xd] - lsls r2, r3, #0x18 - lsrs r0, r2, #0x18 - cmp r0, #0xff - bne _08072AE4 - movs r0, #0 - b _08072B56 - .align 2, 0 -_08072AE0: .4byte gUnk_03003F80 -_08072AE4: - ldrb r1, [r4, #0xf] - cmp r1, #7 - bls _08072B50 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - strb r3, [r4, #0x15] - movs r0, #0xd0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - movs r0, #0x78 - strh r0, [r4, #0x24] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x80 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - movs r1, #0x39 - rsbs r1, r1, #0 - ands r0, r1 - movs r1, #8 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x41 - strb r0, [r5, #2] - bl sub_0807921C - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldr r2, _08072B4C @ =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 - b _08072B58 - .align 2, 0 -_08072B4C: .4byte gUnk_03000BF0 -_08072B50: - lsrs r0, r2, #0x1a - strb r0, [r4, #0x14] - adds r0, r1, #1 -_08072B56: - strb r0, [r4, #0xf] -_08072B58: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08072B5C -sub_08072B5C: @ 0x08072B5C - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r0, [r5, #0xe] - movs r1, #0x28 - subs r1, r1, r0 - asrs r1, r1, #4 - adds r1, #1 - adds r0, r5, #0 - bl sub_080042BA - adds r0, r5, #0 - bl sub_0806F948 - ldrb r0, [r5, #0xe] - cmp r0, #0 - beq _08072B82 - subs r0, #1 - strb r0, [r5, #0xe] - b _08072C40 -_08072B82: - ldr r0, _08072C04 @ =0x00004021 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldr r3, _08072C08 @ =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 - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r0, #1 - bl sub_0807A2F8 - adds r4, r0, #0 - cmp r4, #0 - bne _08072C10 - 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, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - movs r0, #0x40 - strh r0, [r5, #0x24] - movs r0, #0xe4 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - ldr r0, [r5, #0x34] - subs r0, #1 - str r0, [r5, #0x34] - ldr r1, _08072C0C @ =gUnk_03003F80 - movs r0, #0x41 - strb r0, [r1, #2] - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r5, #0 - movs r1, #0 - bl sub_0806F854 - bl sub_0807921C - b _08072C40 - .align 2, 0 -_08072C04: .4byte 0x00004021 -_08072C08: .4byte gUnk_03000BF0 -_08072C0C: .4byte gUnk_03003F80 -_08072C10: - bl sub_08052620 - cmp r0, #0 - bne _08072C1E - adds r0, r5, #0 - bl sub_08004542 -_08072C1E: - ldrb r0, [r5, #0xd] - adds r0, #1 - strb r0, [r5, #0xd] - lsls r4, r4, #4 - subs r4, #4 - lsls r4, r4, #0xc - str r4, [r5, #0x20] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r5, #0x24] - ldr r1, _08072C44 @ =gUnk_03003F80 - movs r0, #0x81 - lsls r0, r0, #4 - strh r0, [r1, #8] - movs r0, #0x7c - bl sub_080A3268 -_08072C40: - pop {r4, r5, r6, pc} - .align 2, 0 -_08072C44: .4byte gUnk_03003F80 - - thumb_func_start sub_08072C48 -sub_08072C48: @ 0x08072C48 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08072C98 - adds r0, r4, #0 - movs r1, #7 - bl sub_08008790 - ldr r4, _08072C90 @ =gUnk_03003F80 - ldrb r0, [r4, #0x14] - cmp r0, #0 - beq _08072C94 - bl sub_08008B22 - cmp r0, #0 - beq _08072C98 - movs r0, #7 - strb r0, [r4, #0x11] - ldr r0, [r4, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08072C98 - bl sub_080791BC - b _08072C98 - .align 2, 0 -_08072C90: .4byte gUnk_03003F80 -_08072C94: - bl sub_0807921C -_08072C98: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08072C9C -sub_08072C9C: @ 0x08072C9C - push {lr} - ldr r1, _08072CB8 @ =gUnk_03003F80 - adds r1, #0xa8 - movs r2, #0x11 - strb r2, [r1] - ldr r2, _08072CBC @ =gUnk_0811BBAC - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08072CB8: .4byte gUnk_03003F80 -_08072CBC: .4byte gUnk_0811BBAC - - thumb_func_start sub_08072CC0 -sub_08072CC0: @ 0x08072CC0 - movs r1, #1 - strb r1, [r0, #0xd] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - ldr r3, _08072CF4 @ =gUnk_03003F80 - adds r1, r3, #0 - adds r1, #0x3a - ldrb r1, [r1] - lsrs r1, r1, #2 - adds r1, #1 - strb r1, [r0, #0xf] - adds r1, r3, #0 - adds r1, #0x39 - ldrb r1, [r1] - strb r1, [r0, #0x15] - movs r2, #0 - movs r1, #0x80 - lsls r1, r1, #3 - strh r1, [r0, #0x24] - ldr r0, _08072CF8 @ =0x00000524 - strh r0, [r3, #8] - strb r2, [r3, #5] - bx lr - .align 2, 0 -_08072CF4: .4byte gUnk_03003F80 -_08072CF8: .4byte 0x00000524 - - thumb_func_start sub_08072CFC -sub_08072CFC: @ 0x08072CFC - push {r4, lr} - adds r4, r0, #0 - movs r1, #2 - bl sub_080042BA - ldrb r0, [r4, #0xf] - subs r0, #1 - strb r0, [r4, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08072D1C - adds r0, r4, #0 - bl sub_0806F69C - b _08072D4E -_08072D1C: - movs r0, #2 - strb r0, [r4, #0xd] - ldr r2, _08072D50 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x38 - ldrb r0, [r1] - cmp r0, #7 - bhi _08072D30 - movs r0, #8 - strb r0, [r1] -_08072D30: - ldrb r0, [r1] - lsls r0, r0, #0xc - str r0, [r4, #0x20] - movs r1, #0 - movs r0, #0x80 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - movs r0, #0x81 - lsls r0, r0, #4 - strh r0, [r2, #8] - movs r0, #5 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - bl sub_08077B2C -_08072D4E: - pop {r4, pc} - .align 2, 0 -_08072D50: .4byte gUnk_03003F80 - - thumb_func_start sub_08072D54 -sub_08072D54: @ 0x08072D54 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080042B8 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08072D7A - adds r0, r4, #0 - bl sub_0806F69C - ldrb r0, [r4, #0xe] - subs r0, #1 - b _08072E80 -_08072D7A: - adds r0, r4, #0 - bl sub_0806F730 - adds r1, r4, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - adds r2, r0, #0 - ldrb r5, [r4, #0xf] - cmp r5, #1 - beq _08072DD0 - cmp r5, #1 - bgt _08072D9C - cmp r5, #0 - beq _08072DA6 - b _08072E6C -_08072D9C: - cmp r5, #2 - beq _08072DFA - cmp r5, #3 - beq _08072E30 - b _08072E6C -_08072DA6: - ldr r1, _08072DC8 @ =gUnk_0811BBD4 - ldr r0, _08072DCC @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_08007DD6 - cmp r0, #0 - beq _08072E6C - movs r0, #1 - strb r0, [r4, #0xe] - strb r0, [r4, #0xf] - b _08072E6C - .align 2, 0 -_08072DC8: .4byte gUnk_0811BBD4 -_08072DCC: .4byte gLinkEntity -_08072DD0: - ldr r1, _08072DEC @ =gUnk_0811BBD4 - ldr r0, _08072DF0 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_08007DD6 - cmp r0, #0 - beq _08072DF4 - strb r5, [r4, #0xe] - b _08072E6C - .align 2, 0 -_08072DEC: .4byte gUnk_0811BBD4 -_08072DF0: .4byte gLinkEntity -_08072DF4: - movs r0, #2 - strb r0, [r4, #0xf] - b _08072E6C -_08072DFA: - ldrb r0, [r4, #0x14] - movs r5, #4 - eors r0, r5 - strb r0, [r4, #0x14] - ldr r1, _08072E28 @ =gUnk_0811BBD4 - ldr r0, _08072E2C @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_08007DD6 - cmp r0, #0 - beq _08072E22 - movs r0, #1 - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xf] -_08072E22: - ldrb r0, [r4, #0x14] - eors r0, r5 - b _08072E6A - .align 2, 0 -_08072E28: .4byte gUnk_0811BBD4 -_08072E2C: .4byte gLinkEntity -_08072E30: - ldrb r0, [r4, #0x14] - movs r1, #4 - eors r0, r1 - strb r0, [r4, #0x14] - ldr r1, _08072E58 @ =gUnk_0811BBD4 - ldr r0, _08072E5C @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl sub_08007DD6 - cmp r0, #0 - beq _08072E60 - movs r0, #1 - strb r0, [r4, #0xe] - b _08072E64 - .align 2, 0 -_08072E58: .4byte gUnk_0811BBD4 -_08072E5C: .4byte gLinkEntity -_08072E60: - movs r0, #4 - strb r0, [r4, #0xf] -_08072E64: - ldrb r0, [r4, #0x14] - movs r1, #4 - eors r0, r1 -_08072E6A: - strb r0, [r4, #0x14] -_08072E6C: - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08072E7A - adds r0, r4, #0 - bl sub_0806F69C - b _08072E7E -_08072E7A: - bl sub_08079E08 -_08072E7E: - movs r0, #0 -_08072E80: - strb r0, [r4, #0xe] - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08072F10 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08072EAA - adds r0, r4, #0 - bl sub_0800455E - b _08072EB0 -_08072EAA: - adds r0, r4, #0 - bl sub_08004542 -_08072EB0: - adds r0, r4, #0 - movs r1, #7 - bl sub_08008790 - ldr r5, _08072EDC @ =gUnk_03003F80 - ldrb r0, [r5, #0x14] - cmp r0, #0 - beq _08072EE0 - bl sub_08008B22 - cmp r0, #0 - beq _08072F10 - movs r0, #7 - strb r0, [r5, #0x11] - ldr r0, [r5, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08072F10 - bl sub_080791BC - b _08072F10 - .align 2, 0 -_08072EDC: .4byte gUnk_03003F80 -_08072EE0: - ldr r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08072EF4 - ldr r0, _08072EF0 @ =0x00000424 - b _08072EF8 - .align 2, 0 -_08072EF0: .4byte 0x00000424 -_08072EF4: - movs r0, #0x82 - lsls r0, r0, #4 -_08072EF8: - strh r0, [r5, #8] - movs r1, #0 - movs r0, #6 - strb r0, [r4, #0xe] - movs r0, #3 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - movs r0, #0x7d - bl sub_080A3268 -_08072F10: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08072F14 -sub_08072F14: @ 0x08072F14 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #0xe] - subs r0, #1 - strb r0, [r1, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _08072F2C - bl sub_0807921C - b _08072F32 -_08072F2C: - adds r0, r1, #0 - bl sub_080042B8 -_08072F32: - pop {pc} - - thumb_func_start sub_08072F34 -sub_08072F34: @ 0x08072F34 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _08072F86 - ldr r6, _08072F88 @ =gUnk_03003F80 - adds r1, r6, #0 - adds r1, #0xa8 - movs r0, #0x18 - strb r0, [r1] - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_0807A1E8 - strb r0, [r6, #0x12] - ldr r1, _08072F8C @ =gUnk_0811BBE4 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - adds r5, r4, #0 - adds r5, #0x42 - ldrb r0, [r5] - cmp r0, #0 - beq _08072F86 - bl sub_080792D8 - ldrb r1, [r5] - cmp r1, #0 - bne _08072F86 - movs r0, #0x1d - strb r0, [r4, #0xc] - strb r1, [r4, #0xd] - strh r1, [r4, #0x30] - ldr r0, _08072F90 @ =0x000002CF - strh r0, [r6, #8] -_08072F86: - pop {r4, r5, r6, pc} - .align 2, 0 -_08072F88: .4byte gUnk_03003F80 -_08072F8C: .4byte gUnk_0811BBE4 -_08072F90: .4byte 0x000002CF - - thumb_func_start sub_08072F94 -sub_08072F94: @ 0x08072F94 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08072FB4 @ =gUnk_03003F80 - ldrb r1, [r0, #0x12] - adds r3, r0, #0 - cmp r1, #0x1e - beq _08072FB8 - cmp r1, #0x1e - blt _08072FAE - cmp r1, #0x2c - bgt _08072FAE - cmp r1, #0x2a - bge _08072FB8 -_08072FAE: - bl sub_0807921C - b _0807308C - .align 2, 0 -_08072FB4: .4byte gUnk_03003F80 -_08072FB8: - adds r2, r4, #0 - adds r2, #0x29 - ldrb r0, [r2] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r0 - strb r1, [r2] - adds r2, r3, #0 - ldrb r1, [r2, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08073072 - strb r1, [r4, #0x15] - ldrb r0, [r2, #0xd] - cmp r0, #8 - beq _08072FDE - cmp r0, #0x18 - bne _08073008 -_08072FDE: - ldrb r0, [r2, #0x12] - cmp r0, #0x1e - beq _0807308C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08072FF8 - movs r0, #0xb5 - lsls r0, r0, #2 - b _08072FFA -_08072FF8: - ldr r0, _08073004 @ =0x000002D5 -_08072FFA: - strh r0, [r2, #8] - adds r0, r4, #0 - bl sub_08073094 - b _0807306A - .align 2, 0 -_08073004: .4byte 0x000002D5 -_08073008: - ldrb r0, [r2, #0x12] - cmp r0, #0x1e - bne _08073020 - movs r0, #7 - ands r0, r1 - cmp r0, #0 - beq _08073020 - adds r0, r1, #0 - adds r0, #8 - movs r1, #0x10 - ands r0, r1 - strb r0, [r4, #0x15] -_08073020: - ldrb r1, [r4, #0x15] - movs r2, #0x10 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807304C - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08073044 - ldr r0, _08073040 @ =0x000002D1 - b _08073068 - .align 2, 0 -_08073040: .4byte 0x000002D1 -_08073044: - ldr r0, _08073048 @ =0x000002D2 - b _08073068 - .align 2, 0 -_08073048: .4byte 0x000002D2 -_0807304C: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08073064 - ldr r0, _08073060 @ =0x000002CF - b _08073068 - .align 2, 0 -_08073060: .4byte 0x000002CF -_08073064: - movs r0, #0xb4 - lsls r0, r0, #2 -_08073068: - strh r0, [r3, #8] -_0807306A: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - b _0807308C -_08073072: - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08073088 - movs r0, #0xb5 - lsls r0, r0, #2 - strh r0, [r2, #8] - b _0807308C -_08073088: - ldr r0, _08073090 @ =0x000002D5 - strh r0, [r3, #8] -_0807308C: - pop {r4, pc} - .align 2, 0 -_08073090: .4byte 0x000002D5 - - thumb_func_start sub_08073094 -sub_08073094: @ 0x08073094 - 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 - strb r0, [r2] - ldr r2, _080730FC @ =gUnk_0811BBEC - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r4, #0x24] - bl sub_08079E08 - bl sub_08019840 - cmp r0, #0 - bne _080731A4 - ldr r0, _08073100 @ =gUnk_03003F80 - ldrb r1, [r0, #6] - movs r2, #0x80 - eors r1, r2 - strb r1, [r0, #6] - ldrb r0, [r0, #0x12] - cmp r0, #0x2a - beq _080730DE - cmp r0, #0x2c - beq _080730DE - bl sub_0807A1B8 -_080730DE: - bl sub_08078EFC - cmp r0, #0 - bne _080731A4 - ldr r1, _08073100 @ =gUnk_03003F80 - ldrb r0, [r1, #0x12] - subs r0, #0x19 - adds r2, r1, #0 - cmp r0, #0x13 - bhi _08073178 - lsls r0, r0, #2 - ldr r1, _08073104 @ =_08073108 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080730FC: .4byte gUnk_0811BBEC -_08073100: .4byte gUnk_03003F80 -_08073104: .4byte _08073108 -_08073108: @ jump table - .4byte _0807316C @ case 0 - .4byte _08073178 @ case 1 - .4byte _08073178 @ case 2 - .4byte _08073178 @ case 3 - .4byte _08073178 @ case 4 - .4byte _0807317E @ case 5 - .4byte _08073178 @ case 6 - .4byte _08073178 @ case 7 - .4byte _08073178 @ case 8 - .4byte _08073178 @ case 9 - .4byte _08073178 @ case 10 - .4byte _08073178 @ case 11 - .4byte _08073178 @ case 12 - .4byte _08073178 @ case 13 - .4byte _08073178 @ case 14 - .4byte _08073178 @ case 15 - .4byte _08073178 @ case 16 - .4byte _08073158 @ case 17 - .4byte _0807317E @ case 18 - .4byte _08073158 @ case 19 -_08073158: - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x16 - orrs r0, r1 - str r0, [r2, #0x30] - b _0807317E -_0807316C: - adds r0, r4, #0 - bl sub_08074808 - bl sub_080791D0 - b _080731A4 -_08073178: - bl sub_0807921C - b _080731A4 -_0807317E: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080731A4 - bl sub_0807A1B8 - bl sub_08078EFC - cmp r0, #0 - bne _080731A4 - ldrb r0, [r4, #0xd] - subs r0, #1 - strb r0, [r4, #0xd] -_080731A4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_080731A8 -sub_080731A8: @ 0x080731A8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080731D0 @ =gUnk_03003F80 - adds r0, #0xa8 - movs r1, #0x1c - strb r1, [r0] - movs r0, #0 - movs r1, #8 - bl sub_0805E4E0 - ldr r1, _080731D4 @ =gUnk_0811BBF8 - ldrb r0, [r4, #0xd] - 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 -_080731D0: .4byte gUnk_03003F80 -_080731D4: .4byte gUnk_0811BBF8 - - thumb_func_start sub_080731D8 -sub_080731D8: @ 0x080731D8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - movs r2, #0 - strb r0, [r4, #0x10] - movs r1, #0 - movs r0, #0x40 - strh r0, [r4, #0x24] - strb r1, [r4, #0x14] - ldrh r1, [r4, #0x2e] - movs r5, #0x10 - rsbs r5, r5, #0 - adds r0, r5, #0 - ands r0, r1 - movs r7, #8 - orrs r0, r7 - strh r0, [r4, #0x2e] - strh r2, [r4, #0x2c] - ldr r6, _08073214 @ =gUnk_03003F80 - adds r0, r6, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - bne _08073218 - movs r0, #1 - strb r0, [r4, #0xd] - b _0807329A - .align 2, 0 -_08073214: .4byte gUnk_03003F80 -_08073218: - ldrb r0, [r4, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #3 - strb r0, [r4, #0xd] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x7e - strh r0, [r1] - ldrh r0, [r4, #0x32] - subs r0, #0x10 - strh r0, [r4, #0x32] - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - str r0, [r4, #0x54] - adds r0, r6, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073270 - ldrh r1, [r4, #0x32] - adds r0, r5, #0 - ands r0, r1 - adds r0, #8 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x2e] - adds r0, r5, #0 - ands r0, r1 - strh r0, [r4, #0x2e] - strb r7, [r4, #0x15] - movs r0, #2 - strb r0, [r4, #0x14] - ldr r0, _0807326C @ =0x00000187 - bl sub_080A3268 - b _08073294 - .align 2, 0 -_0807326C: .4byte 0x00000187 -_08073270: - ldrh r1, [r4, #0x32] - adds r0, r5, #0 - ands r0, r1 - adds r0, #2 - strh r0, [r4, #0x32] - ldrh r1, [r4, #0x2e] - adds r0, r5, #0 - ands r0, r1 - adds r0, #0xf - strh r0, [r4, #0x2e] - movs r0, #0x18 - strb r0, [r4, #0x15] - movs r0, #6 - strb r0, [r4, #0x14] - movs r0, #0xc4 - lsls r0, r0, #1 - bl sub_080A3268 -_08073294: - adds r0, r4, #0 - bl sub_08066DE4 -_0807329A: - ldr r2, _080732AC @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080732B4 - ldr r0, _080732B0 @ =0x00000404 - b _080732B8 - .align 2, 0 -_080732AC: .4byte gUnk_03003F80 -_080732B0: .4byte 0x00000404 -_080732B4: - movs r0, #0x82 - lsls r0, r0, #1 -_080732B8: - strh r0, [r2, #8] - ldr r1, _080732CC @ =gUnk_03000BF0 - movs r0, #0 - str r0, [r1, #0x30] - bl sub_0807A108 - bl sub_08077B2C - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080732CC: .4byte gUnk_03000BF0 - - thumb_func_start sub_080732D0 -sub_080732D0: @ 0x080732D0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_080002B8 - cmp r0, #0x28 - beq _080732EE - movs r0, #0 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F69C - b _08073328 -_080732EE: - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r1, #0 - strb r0, [r4, #0xd] - strh r1, [r4, #0x30] - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - ldr r0, _08073318 @ =gUnk_03003F80 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073320 - ldr r0, _0807331C @ =0x00000187 - bl sub_080A3268 - b _08073328 - .align 2, 0 -_08073318: .4byte gUnk_03003F80 -_0807331C: .4byte 0x00000187 -_08073320: - movs r0, #0xc4 - lsls r0, r0, #1 - bl sub_080A3268 -_08073328: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807332C -sub_0807332C: @ 0x0807332C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, _08073344 @ =gUnk_03003F80 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _08073348 - movs r0, #0 - b _0807334A - .align 2, 0 -_08073344: .4byte gUnk_03003F80 -_08073348: - movs r0, #0x1c -_0807334A: - strb r0, [r4, #0x15] - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xf - beq _08073386 - ldr r0, _08073368 @ =gUnk_03003F80 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #7 - bne _0807336C - movs r0, #2 - strb r0, [r4, #0x14] - movs r0, #4 - b _0807337C - .align 2, 0 -_08073368: .4byte gUnk_03003F80 -_0807336C: - movs r0, #6 - strb r0, [r4, #0x14] - ldrb r0, [r4, #0x15] - cmp r0, #0x18 - bls _0807337E - subs r0, #1 - movs r1, #0x1f - ands r0, r1 -_0807337C: - strb r0, [r4, #0x15] -_0807337E: - adds r0, r4, #0 - bl sub_0806F69C - b _080733B6 -_08073386: - ldr r0, _0807339C @ =gUnk_03003F80 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #0 - beq _080733A4 - ldr r0, _080733A0 @ =gUnk_03000BF0 - str r4, [r0, #0x30] - bl sub_080791BC - b _080733B6 - .align 2, 0 -_0807339C: .4byte gUnk_03003F80 -_080733A0: .4byte gUnk_03000BF0 -_080733A4: - ldr r0, _080733B8 @ =gUnk_03001000 - movs r1, #3 - strb r1, [r0, #4] - movs r1, #1 - strb r1, [r0, #0xb] - movs r0, #5 - movs r1, #8 - bl sub_08050054 -_080733B6: - pop {r4, pc} - .align 2, 0 -_080733B8: .4byte gUnk_03001000 - - thumb_func_start sub_080733BC -sub_080733BC: @ 0x080733BC - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrh r1, [r4, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #8 - bne _080733FC - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #4 - strb r0, [r4, #0x14] - ldr r0, [r4, #0x54] - cmp r0, #0 - beq _080733FC - bl sub_0805E7BC - movs r0, #0 - str r0, [r4, #0x54] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080733F6 - adds r0, r4, #0 - bl sub_0807AABC - b _080733FC -_080733F6: - adds r0, r4, #0 - bl sub_0807AA80 -_080733FC: - adds r0, r4, #0 - bl sub_0806F69C - adds r0, r4, #0 - adds r0, #0x7e - ldrh r1, [r0] - movs r2, #0x32 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08073418 - ldr r0, _0807341C @ =gUnk_03000BF0 - str r4, [r0, #0x30] - bl sub_0807921C -_08073418: - pop {r4, pc} - .align 2, 0 -_0807341C: .4byte gUnk_03000BF0 - - thumb_func_start sub_08073420 -sub_08073420: @ 0x08073420 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _0807345E - bl sub_0807A1B8 - 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] - ldr r0, _08073460 @ =gUnk_03003F80 - adds r0, #0xa8 - movs r1, #8 - strb r1, [r0] - ldr r1, _08073464 @ =gUnk_0811BC08 - ldrb r0, [r4, #0xd] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 -_0807345E: - pop {r4, pc} - .align 2, 0 -_08073460: .4byte gUnk_03003F80 -_08073464: .4byte gUnk_0811BC08 - - thumb_func_start sub_08073468 -sub_08073468: @ 0x08073468 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080734CC @ =gUnk_03003F80 - movs r1, #0 - movs r0, #0xe0 - lsls r0, r0, #3 - strh r0, [r5, #8] - strb r1, [r5, #2] - ldr r0, _080734D0 @ =0xFFFF0000 - str r0, [r4, #0x20] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xf0 - lsls r0, r0, #1 - str r0, [r4, #0x7c] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldr r1, [r5, #0x30] - movs r2, #0x80 - lsls r2, r2, #0x11 - adds r0, r1, #0 - ands r0, r2 - cmp r0, #0 - bne _080734AC - orrs r1, r2 - str r1, [r5, #0x30] - adds r0, r4, #0 - movs r1, #0x61 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 -_080734AC: - bl sub_08077B2C - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _080734C0 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080734C8 -_080734C0: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] -_080734C8: - pop {r4, r5, pc} - .align 2, 0 -_080734CC: .4byte gUnk_03003F80 -_080734D0: .4byte 0xFFFF0000 - - thumb_func_start sub_080734D4 -sub_080734D4: @ 0x080734D4 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _080734FC @ =0xFFFFF000 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bgt _080734EE - ldr r0, _08073500 @ =gUnk_03003F80 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _080734FA -_080734EE: - movs r0, #0x92 - lsls r0, r0, #0xb - str r0, [r4, #0x20] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_080734FA: - pop {r4, pc} - .align 2, 0 -_080734FC: .4byte 0xFFFFF000 -_08073500: .4byte gUnk_03003F80 - - thumb_func_start sub_08073504 -sub_08073504: @ 0x08073504 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r4, #0x20] - movs r1, #0x80 - lsls r1, r1, #7 - cmp r0, #0 - bge _08073516 - movs r1, #0x80 - lsls r1, r1, #4 -_08073516: - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _08073576 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _08073576 - ldrb r0, [r4, #0xd] - adds r0, #1 - movs r2, #0 - strb r0, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x80 - ldrb r0, [r4, #0x15] - lsls r0, r0, #8 - str r0, [r1] - adds r0, r4, #0 - adds r0, #0x87 - strb r2, [r0] - subs r0, #1 - strb r2, [r0] - ldr r0, _08073580 @ =gUnk_03003F80 - movs r1, #0xe1 - lsls r1, r1, #3 - strh r1, [r0, #8] - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - bne _08073576 - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #6 - strb r0, [r4, #0xd] - movs r0, #0x10 - strh r0, [r4, #0x24] - movs r0, #0x1e - strb r0, [r4, #0xe] - movs r0, #0xa9 - lsls r0, r0, #1 - bl sub_080A3268 -_08073576: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08073580: .4byte gUnk_03003F80 - - thumb_func_start sub_08073584 -sub_08073584: @ 0x08073584 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r2, _080735DC @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - adds r6, r2, #0 - cmp r0, #0 - bne _080735C0 - adds r0, r4, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bgt _080735C0 - adds r0, r6, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _080735C0 - ldr r0, [r6, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x11 - ands r0, r1 - cmp r0, #0 - bne _080735E0 -_080735C0: - ldrb r0, [r6, #2] - movs r1, #0x40 - orrs r1, r0 - strb r1, [r6, #2] - bl sub_0807921C - adds r0, r4, #0 - bl sub_08073904 - movs r0, #0xe6 - lsls r0, r0, #3 - strh r0, [r6, #8] - b _08073794 - .align 2, 0 -_080735DC: .4byte gUnk_03003F80 -_080735E0: - ldr r0, _0807360C @ =gUnk_0200AF00 - adds r0, #0x2f - movs r1, #1 - strb r1, [r0] - movs r0, #0 - bl sub_0807A2F8 - cmp r0, #0 - beq _08073610 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x14] - movs r0, #6 - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - b _08073794 - .align 2, 0 -_0807360C: .4byte gUnk_0200AF00 -_08073610: - ldr r0, _08073620 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - cmp r0, #0x10 - bne _08073624 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - b _08073626 - .align 2, 0 -_08073620: .4byte gUnk_02033A90 -_08073624: - strh r5, [r4, #0x24] -_08073626: - ldr r3, _08073650 @ =gUnk_03003F80 - ldrb r1, [r3, #0xd] - movs r0, #0x80 - ands r0, r1 - adds r2, r4, #0 - adds r2, #0x80 - cmp r0, #0 - bne _0807365A - ldrb r0, [r4, #0x15] - cmp r0, r1 - beq _0807365A - ldrb r1, [r3, #0xd] - subs r0, r0, r1 - movs r1, #0x1f - ands r0, r1 - cmp r0, #0xf - bgt _08073654 - ldr r0, [r2] - subs r0, #0x20 - b _08073658 - .align 2, 0 -_08073650: .4byte gUnk_03003F80 -_08073654: - ldr r0, [r2] - adds r0, #0x20 -_08073658: - str r0, [r2] -_0807365A: - ldr r0, [r2] - lsrs r0, r0, #8 - movs r1, #0x1f - ands r0, r1 - strb r0, [r4, #0x15] - bl sub_08079E08 - ldrb r2, [r4, #0x14] - lsls r3, r2, #2 - ldrb r1, [r4, #0x15] - cmp r2, #0 - bne _0807367C - adds r3, #8 - movs r0, #0x1f - ands r3, r0 - adds r1, #8 - ands r1, r0 -_0807367C: - subs r0, r3, #7 - cmp r0, r1 - bls _08073686 - subs r3, r2, #2 - b _0807368E -_08073686: - adds r0, r3, #7 - cmp r0, r1 - bhs _08073694 - adds r3, r2, #2 -_0807368E: - movs r0, #7 - ands r3, r0 - b _08073696 -_08073694: - adds r3, r2, #0 -_08073696: - movs r0, #0x87 - adds r0, r0, r4 - mov ip, r0 - ldrb r1, [r4, #0x14] - cmp r3, r1 - beq _080736A8 - movs r0, #0x14 - mov r2, ip - strb r0, [r2] -_080736A8: - strb r3, [r4, #0x14] - movs r5, #0 - ldr r1, _080736E4 @ =gUnk_03003F80 - ldrb r2, [r1, #0xd] - lsrs r3, r2, #2 - mov r6, ip - ldrb r0, [r6] - adds r6, r1, #0 - cmp r0, #0 - beq _080736CA - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08073736 - ldrb r0, [r4, #0x14] - cmp r0, r3 - beq _08073736 -_080736CA: - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _080736FA - ldrb r2, [r4, #0x14] - cmp r2, r3 - beq _080736FA - movs r0, #4 - eors r0, r3 - cmp r2, r0 - bne _080736E8 - movs r5, #2 - b _080736FA - .align 2, 0 -_080736E4: .4byte gUnk_03003F80 -_080736E8: - movs r0, #6 - ands r0, r3 - adds r0, #2 - movs r1, #7 - ands r0, r1 - movs r5, #3 - cmp r2, r0 - bne _080736FA - movs r5, #1 -_080736FA: - ldr r1, _0807371C @ =gUnk_0811BC28 - lsls r0, r5, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, #8] - cmp r0, r1 - bne _0807372C - ldr r0, _08073720 @ =gUnk_02033A90 - ldrb r0, [r0, #1] - cmp r0, #0x10 - bne _08073724 - adds r0, r4, #0 - movs r1, #2 - bl sub_080042BA - b _0807372E - .align 2, 0 -_0807371C: .4byte gUnk_0811BC28 -_08073720: .4byte gUnk_02033A90 -_08073724: - adds r0, r4, #0 - bl sub_080042B8 - b _0807372E -_0807372C: - strh r0, [r6, #8] -_0807372E: - adds r0, r4, #0 - adds r0, #0x86 - strb r5, [r0] - b _08073762 -_08073736: - mov r2, ip - ldrb r0, [r2] - subs r0, #1 - strb r0, [r2] - ldr r1, _0807375C @ =gUnk_0811BC30 - adds r0, r4, #0 - adds r0, #0x86 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - ldrh r1, [r6, #8] - cmp r0, r1 - bne _08073760 - adds r0, r4, #0 - bl sub_080042B8 - b _08073762 - .align 2, 0 -_0807375C: .4byte gUnk_0811BC30 -_08073760: - strh r0, [r6, #8] -_08073762: - ldr r0, [r4, #0x7c] - subs r1, r0, #1 - str r1, [r4, #0x7c] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _08073784 - ldr r2, _08073780 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2, #2] - bl sub_0807921C - b _08073794 - .align 2, 0 -_08073780: .4byte gUnk_03003F80 -_08073784: - adds r0, r1, #0 - movs r1, #0x14 - bl __divsi3 - ldr r2, _08073798 @ =0x0000FFF8 - adds r1, r2, #0 - subs r1, r1, r0 - strh r1, [r4, #0x36] -_08073794: - pop {r4, r5, r6, pc} - .align 2, 0 -_08073798: .4byte 0x0000FFF8 - - thumb_func_start sub_0807379C -sub_0807379C: @ 0x0807379C - push {lr} - adds r2, r0, #0 - ldrh r3, [r2, #0x36] - movs r0, #0x36 - ldrsh r1, [r2, r0] - movs r0, #0x20 - rsbs r0, r0, #0 - cmp r1, r0 - ble _080737B4 - subs r0, r3, #1 - strh r0, [r2, #0x36] - b _080737BA -_080737B4: - ldrb r0, [r2, #0xd] - adds r0, #1 - strb r0, [r2, #0xd] -_080737BA: - pop {pc} - - thumb_func_start sub_080737BC -sub_080737BC: @ 0x080737BC - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0806F69C - ldr r0, [r4, #0x34] - movs r1, #0x98 - lsls r1, r1, #7 - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrb r1, [r4, #0x15] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080737E2 - ldrh r1, [r4, #0x2e] - b _080737E4 -_080737E2: - ldrh r1, [r4, #0x32] -_080737E4: - movs r0, #0xf - ands r0, r1 - cmp r0, #8 - bne _08073804 - adds r0, r4, #0 - bl sub_080002D0 - cmp r0, #0 - bne _08073804 - ldr r2, _08073808 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #0x40 - orrs r0, r1 - strb r0, [r2, #2] - bl sub_0807921C -_08073804: - pop {r4, pc} - .align 2, 0 -_08073808: .4byte gUnk_03003F80 - - thumb_func_start sub_0807380C -sub_0807380C: @ 0x0807380C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08073854 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _0807382A - ldrb r0, [r4, #0x14] - adds r0, #2 - movs r1, #6 - ands r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_0807382A: - ldr r2, _08073858 @ =gUnk_03003F80 - ldr r1, _0807385C @ =gUnk_0811BC38 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #8] - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #0x10 - rsbs r0, r0, #0 - cmp r1, r0 - bge _08073860 - movs r1, #0x80 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08003FC4 - b _0807387A - .align 2, 0 -_08073854: .4byte gUnk_030010A0 -_08073858: .4byte gUnk_03003F80 -_0807385C: .4byte gUnk_0811BC38 -_08073860: - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807387A - movs r0, #7 - strb r0, [r4, #0xd] - movs r0, #0x3c - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] -_0807387A: - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08073884 -sub_08073884: @ 0x08073884 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _080738DC @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _080738A2 - ldrb r0, [r4, #0x14] - adds r0, #2 - movs r1, #6 - ands r0, r1 - strb r0, [r4, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0x15] -_080738A2: - ldr r2, _080738E0 @ =gUnk_03003F80 - ldr r1, _080738E4 @ =gUnk_0811BC40 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r2, #8] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _080738F0 - adds r1, r2, #0 - adds r1, #0x39 - ldrb r0, [r1] - cmp r0, #0xff - beq _080738EC - adds r1, r0, #0 - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _080738E8 @ =gUnk_0813AD88 - adds r0, r0, r1 - bl sub_08080840 - b _080738F0 - .align 2, 0 -_080738DC: .4byte gUnk_030010A0 -_080738E0: .4byte gUnk_03003F80 -_080738E4: .4byte gUnk_0811BC40 -_080738E8: .4byte gUnk_0813AD88 -_080738EC: - bl sub_08052A4C -_080738F0: - ldr r1, _08073900 @ =0xFFFFE800 - adds r0, r4, #0 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - .align 2, 0 -_08073900: .4byte 0xFFFFE800 - - thumb_func_start sub_08073904 -sub_08073904: @ 0x08073904 - push {lr} - ldr r3, _0807391C @ =gUnk_0811BC48 - ldr r1, _08073920 @ =gUnk_03003F80 - ldrb r2, [r1, #2] - movs r1, #7 - ands r1, r2 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807391C: .4byte gUnk_0811BC48 -_08073920: .4byte gUnk_03003F80 - - thumb_func_start sub_08073924 -sub_08073924: @ 0x08073924 - push {r4, lr} - adds r4, r0, #0 - ldr r2, _08073964 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xb - ands r0, r1 - cmp r0, #0 - bne _08073962 - movs r1, #0x36 - ldrsh r0, [r4, r1] - movs r1, #0x80 - lsls r1, r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08073962 - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08073962 - movs r0, #0x40 - strb r0, [r2, #2] - movs r0, #0xff - strb r0, [r2, #0xd] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0x15] - bl sub_08077B20 - adds r0, r4, #0 - bl sub_08073968 -_08073962: - pop {r4, pc} - .align 2, 0 -_08073964: .4byte gUnk_03003F80 - - thumb_func_start sub_08073968 -sub_08073968: @ 0x08073968 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08073998 @ =gUnk_03003F80 - ldrb r1, [r4, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _0807397C - ldrb r0, [r4, #0xd] - strb r0, [r5, #0x15] -_0807397C: - bl sub_08078F24 - ldrb r1, [r4, #5] - ldrb r0, [r4, #0xb] - orrs r0, r1 - cmp r0, #0 - bne _080739D4 - ldr r1, [r4, #0x30] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080739A0 - ldr r0, _0807399C @ =0x0000041C - b _080739BA - .align 2, 0 -_08073998: .4byte gUnk_03003F80 -_0807399C: .4byte 0x0000041C -_080739A0: - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080739BC - movs r0, #0x80 - lsls r0, r0, #0x13 - ands r1, r0 - cmp r1, #0 - beq _080739B8 - movs r0, #0x81 - lsls r0, r0, #4 - b _080739BA -_080739B8: - ldr r0, _080739E4 @ =0x0000080C -_080739BA: - strh r0, [r4, #8] -_080739BC: - ldr r0, _080739E8 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _080739CE - adds r0, r5, #0 - bl sub_0806F948 -_080739CE: - movs r0, #0x7c - bl sub_080A3268 -_080739D4: - ldr r2, _080739E8 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #0xf8 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #2] - pop {r4, r5, pc} - .align 2, 0 -_080739E4: .4byte 0x0000080C -_080739E8: .4byte gUnk_03003F80 - - thumb_func_start sub_080739EC -sub_080739EC: @ 0x080739EC - push {r4, r5, lr} - adds r4, r0, #0 - ldr r1, _08073A14 @ =gUnk_03003F80 - ldrb r2, [r1, #2] - movs r0, #0xc0 - ands r0, r2 - adds r5, r1, #0 - cmp r0, #0 - beq _08073A18 - ldrb r0, [r4, #0x15] - strb r0, [r5, #0xd] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08073A0E - movs r0, #0 - strh r0, [r4, #0x2a] -_08073A0E: - movs r2, #0x80 - lsls r2, r2, #6 - b _08073A48 - .align 2, 0 -_08073A14: .4byte gUnk_03003F80 -_08073A18: - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - lsls r0, r0, #0x10 - cmp r0, #0 - beq _08073A38 - ldrb r1, [r5, #2] - movs r0, #8 - orrs r0, r1 - strb r0, [r5, #2] - movs r2, #0x80 - lsls r2, r2, #7 - b _08073A48 -_08073A38: - movs r2, #0x80 - lsls r2, r2, #6 - ldrb r1, [r5, #2] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08073A48 - lsrs r2, r2, #1 -_08073A48: - ldrb r1, [r5, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _08073A7E - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08073A7E - ldr r0, [r4, #0x20] - cmp r0, #0 - bne _08073A7E - movs r0, #0xa0 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - movs r0, #0xa - strb r0, [r4, #0xe] - movs r0, #0xff - strb r0, [r4, #0x15] - adds r0, r1, #2 - strb r0, [r5, #2] - movs r0, #0xba - lsls r0, r0, #1 - strh r0, [r5, #8] - bl sub_08078F60 - b _08073A90 -_08073A7E: - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _08073A90 - adds r0, r4, #0 - bl sub_08073AD4 -_08073A90: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08073A94 -sub_08073A94: @ 0x08073A94 - push {r4, lr} - adds r4, r0, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08073AAE - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _08073AB4 -_08073AAE: - adds r0, r4, #0 - bl sub_08073B60 -_08073AB4: - ldr r0, _08073ACC @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - beq _08073AC8 - ldr r1, _08073AD0 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #2] - adds r0, r4, #0 - bl sub_08073924 -_08073AC8: - pop {r4, pc} - .align 2, 0 -_08073ACC: .4byte gLinkEntity -_08073AD0: .4byte gUnk_03003F80 - - thumb_func_start sub_08073AD4 -sub_08073AD4: @ 0x08073AD4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08073AFA - 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] -_08073AFA: - ldr r6, _08073B48 @ =gUnk_03003F80 - ldrb r5, [r6, #2] - movs r0, #0xc1 - rsbs r0, r0, #0 - ands r5, r0 - ldrb r0, [r4, #0xc] - cmp r0, #0xa - beq _08073B32 - bl sub_0807A2B8 - movs r0, #0 - strb r0, [r6, #2] - bl sub_0807A1B8 - ldrb r0, [r6, #0xc] - cmp r0, #0 - bne _08073B5C - adds r0, r6, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08073B5C - ldrb r0, [r6, #4] - cmp r0, #0 - beq _08073B32 - adds r0, r4, #0 - bl sub_08073B60 -_08073B32: - ldr r2, _08073B48 @ =gUnk_03003F80 - adds r0, r5, #1 - strb r0, [r2, #2] - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08073B50 - ldr r0, _08073B4C @ =0x00000424 - b _08073B54 - .align 2, 0 -_08073B48: .4byte gUnk_03003F80 -_08073B4C: .4byte 0x00000424 -_08073B50: - movs r0, #0x82 - lsls r0, r0, #4 -_08073B54: - strh r0, [r2, #8] - movs r0, #0x7d - bl sub_080A3268 -_08073B5C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08073B60 -sub_08073B60: @ 0x08073B60 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08073B88 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r4, #0x1b] - strb r0, [r4, #4] - strb r0, [r4, #2] - bl sub_08079938 - adds r0, r5, #0 - bl sub_080085B0 - ldr r0, [r4, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08073B86 - bl sub_080791BC -_08073B86: - pop {r4, r5, pc} - .align 2, 0 -_08073B88: .4byte gUnk_03003F80 - - thumb_func_start sub_08073B8C -sub_08073B8C: @ 0x08073B8C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08073BCC @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - beq _08073C04 - movs r2, #0xc - rsbs r2, r2, #0 - adds r0, r4, #0 - movs r1, #0 - bl sub_0806F854 - adds r0, r4, #0 - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _08073BB8 - adds r0, r4, #0 - bl sub_080042B8 -_08073BB8: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08073BD0 - subs r0, #1 - strb r0, [r4, #0xe] - b _08073C28 - .align 2, 0 -_08073BCC: .4byte gUnk_03003F80 -_08073BD0: - movs r1, #0x80 - lsls r1, r1, #7 - adds r0, r4, #0 - bl sub_08003FC4 - movs r0, #0x36 - ldrsh r1, [r4, r0] - movs r0, #8 - rsbs r0, r0, #0 - cmp r1, r0 - blt _08073C28 - ldrb r0, [r5, #0x14] - cmp r0, #0 - bne _08073C0C - bl sub_0807A2B8 - cmp r0, #0 - bne _08073BFC - bl sub_08079D48 - cmp r0, #0 - bne _08073C0C -_08073BFC: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08073C04: - adds r0, r4, #0 - bl sub_08073B60 - b _08073C28 -_08073C0C: - ldr r1, _08073C2C @ =gUnk_03003F80 - ldrb r0, [r1, #2] - adds r0, #1 - strb r0, [r1, #2] - movs r0, #0xf - strb r0, [r4, #0xe] - movs r0, #0x10 - movs r1, #0 - bl sub_08080964 - movs r0, #0xa6 - lsls r0, r0, #1 - bl sub_080A3268 -_08073C28: - pop {r4, r5, pc} - .align 2, 0 -_08073C2C: .4byte gUnk_03003F80 - - thumb_func_start sub_08073C30 -sub_08073C30: @ 0x08073C30 - push {lr} - adds r2, r0, #0 - ldr r0, _08073C54 @ =gUnk_03003F80 - ldrb r0, [r0, #4] - cmp r0, #0 - beq _08073C4A - ldrb r0, [r2, #0xe] - subs r0, #1 - strb r0, [r2, #0xe] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08073C58 -_08073C4A: - adds r0, r2, #0 - bl sub_08073B60 - b _08073C66 - .align 2, 0 -_08073C54: .4byte gUnk_03003F80 -_08073C58: - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r2, #0 - bl sub_080042B8 -_08073C66: - pop {pc} - - thumb_func_start sub_08073C68 -sub_08073C68: @ 0x08073C68 - push {lr} - ldr r2, _08073C7C @ =gUnk_0811BC60 - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08073C7C: .4byte gUnk_0811BC60 - - thumb_func_start sub_08073C80 -sub_08073C80: @ 0x08073C80 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - ldr r2, _08073D00 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - orrs r0, r1 - str r0, [r2, #0x30] - movs r5, #0 - ldr r0, _08073D04 @ =0x00000C18 - strh r0, [r2, #8] - ldrb r0, [r4, #0x18] - movs r1, #3 - 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] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x19] - movs r7, #4 - rsbs r7, r7, #0 - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4, #0x19] - ldr r0, _08073D08 @ =gUnk_0811BC80 - str r0, [r4, #0x48] - strb r5, [r4, #0xe] - movs r6, #2 - strb r6, [r4, #0xf] - adds r0, r4, #0 - adds r0, #0x42 - strb r5, [r0] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - movs r1, #1 - movs r2, #2 - bl sub_080AE008 - ldr r0, _08073D0C @ =gUnk_03000BF0 - str r4, [r0, #0x30] - bl sub_080809D4 - ldr r1, _08073D10 @ =gUnk_030010A0 - ldrb r0, [r1, #0xf] - cmp r0, #9 - bne _08073D14 - strb r5, [r1, #0xf] - ldrb r1, [r4, #0x18] - adds r0, r7, #0 - ands r0, r1 - strb r0, [r4, #0x18] - strb r6, [r4, #0xd] - b _08073D1E - .align 2, 0 -_08073D00: .4byte gUnk_03003F80 -_08073D04: .4byte 0x00000C18 -_08073D08: .4byte gUnk_0811BC80 -_08073D0C: .4byte gUnk_03000BF0 -_08073D10: .4byte gUnk_030010A0 -_08073D14: - movs r0, #4 - movs r1, #0 - movs r2, #0 - bl sub_080A2960 -_08073D1E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08073D20 -sub_08073D20: @ 0x08073D20 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - ldr r5, _08073D70 @ =gUnk_03003F80 - movs r0, #0xa8 - adds r0, r0, r5 - mov r8, r0 - movs r0, #0 - mov r1, r8 - strb r0, [r1] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0x39 - ands r0, r1 - movs r1, #0x18 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x40 - movs r0, #1 - strb r0, [r1] - bl sub_08078F60 - adds r7, r5, #0 - adds r7, #0x26 - ldrb r0, [r7] - cmp r0, #0 - bne _08073D60 - movs r0, #0xc0 - strh r0, [r4, #0x24] -_08073D60: - bl sub_08079B24 - cmp r0, #0 - bne _08073D74 - adds r0, r4, #0 - bl sub_08079708 - b _08073EFC - .align 2, 0 -_08073D70: .4byte gUnk_03003F80 -_08073D74: - bl sub_08078EFC - adds r6, r0, #0 - cmp r6, #0 - beq _08073D80 - b _08073EFC -_08073D80: - adds r0, r4, #0 - bl sub_08073904 - bl sub_0807A1B8 - ldrb r0, [r5, #2] - cmp r0, #0 - beq _08073D96 - movs r0, #0x14 - mov r1, r8 - strb r0, [r1] -_08073D96: - ldrb r0, [r5, #0x12] - subs r0, #0x18 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08073DB0 - strb r6, [r7] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_08073DB0: - bl sub_08078EFC - cmp r0, #0 - beq _08073DBA - b _08073EFC -_08073DBA: - ldrb r0, [r4, #0xd] - cmp r0, #2 - bne _08073DC2 - b _08073EFC -_08073DC2: - ldr r0, [r5, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08073E10 - adds r0, r4, #0 - bl sub_080085B0 - bl sub_080792D8 - ldrb r0, [r5, #0xa] - cmp r0, #0 - bne _08073DE6 - bl sub_08079550 - cmp r0, #0 - beq _08073DE6 - b _08073EFC -_08073DE6: - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _08073DFA - adds r0, r4, #0 - adds r0, #0x3e - ldrb r0, [r0] - strb r0, [r4, #0x15] - b _08073EFC -_08073DFA: - bl sub_080782C0 - cmp r0, #0 - beq _08073E08 - bl sub_08078EFC - b _08073EFC -_08073E08: - ldrb r0, [r4, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] -_08073E10: - bl sub_08019840 - cmp r0, #0 - bne _08073EFC - adds r0, r4, #0 - bl sub_08077698 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - adds r1, r0, #0 - cmp r1, #0 - bne _08073E32 - ldr r0, _08073E74 @ =gUnk_03003F80 - strb r1, [r0, #2] -_08073E32: - ldr r2, _08073E74 @ =gUnk_03003F80 - ldrb r1, [r2, #7] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08073EFC - ldrb r0, [r2, #0xa] - cmp r0, #0 - bne _08073EFC - adds r0, r4, #0 - adds r0, #0x3d - movs r1, #0 - ldrsb r1, [r0, r1] - adds r6, r0, #0 - cmp r1, #8 - bgt _08073E90 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08073E78 - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #7 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0807ACCC - bl sub_08079E08 - b _08073E90 - .align 2, 0 -_08073E74: .4byte gUnk_03003F80 -_08073E78: - ldrb r1, [r2, #0xd] - strb r1, [r4, #0x15] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08073E90 - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #1 - strb r0, [r1] - bl sub_08079E08 -_08073E90: - ldr r5, _08073EF0 @ =gUnk_03003F80 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08073E9E - adds r0, r4, #0 - bl sub_0806F948 -_08073E9E: - adds r0, r4, #0 - bl sub_080042B8 - adds r0, r4, #0 - bl sub_0807B068 - movs r0, #0x10 - bl sub_080793E4 - cmp r0, #0 - beq _08073EDC - movs r0, #0x14 - strb r0, [r6] - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - bl sub_080526A0 - movs r0, #0x7a - bl sub_080A3268 -_08073EDC: - ldr r0, [r5, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _08073EF4 - adds r0, r4, #0 - bl sub_08008AC6 - b _08073EFC - .align 2, 0 -_08073EF0: .4byte gUnk_03003F80 -_08073EF4: - adds r1, r5, #0 - adds r1, #0xa8 - movs r0, #0xd - strb r0, [r1] -_08073EFC: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08073F04 -sub_08073F04: @ 0x08073F04 - push {lr} - adds r3, r0, #0 - adds r3, #0x29 - ldrb r2, [r3] - movs r1, #0x39 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #0x10 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - strb r1, [r0, #0x18] - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - movs r1, #0xa0 - lsls r1, r1, #0xa - str r1, [r0, #0x20] - movs r1, #0x80 - lsls r1, r1, #1 - strh r1, [r0, #0x24] - ldr r2, _08073F48 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x81 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bl sub_08077B2C - pop {pc} - .align 2, 0 -_08073F48: .4byte gUnk_03003F80 - - thumb_func_start sub_08073F4C -sub_08073F4C: @ 0x08073F4C - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08073F84 @ =gUnk_02033A90 - ldrh r3, [r0, #0x12] - ldrh r5, [r0, #0x14] - movs r0, #0x2e - ldrsh r2, [r4, r0] - cmp r2, r3 - bne _08073F66 - movs r1, #0x32 - ldrsh r0, [r4, r1] - cmp r0, r5 - beq _08073F88 -_08073F66: - movs r0, #0x32 - ldrsh r1, [r4, r0] - adds r0, r2, #0 - adds r2, r3, #0 - adds r3, r5, #0 - bl sub_080045D4 - strb r0, [r4, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_0806F69C - b _08073FC6 - .align 2, 0 -_08073F84: .4byte gUnk_02033A90 -_08073F88: - ldrb r1, [r4, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #0x10] - movs r0, #0x1e - strb r0, [r4, #0xe] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r4, #0x18] - adds r0, r4, #0 - adds r0, #0x80 - movs r1, #0x90 - lsls r1, r1, #3 - str r1, [r0] - adds r0, #4 - str r1, [r0] - ldrb r0, [r4, #0x19] - movs r1, #3 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_08074018 - ldr r1, _08073FC8 @ =gUnk_03003F80 - ldr r0, _08073FCC @ =0x0000073C - strh r0, [r1, #8] -_08073FC6: - pop {r4, r5, pc} - .align 2, 0 -_08073FC8: .4byte gUnk_03003F80 -_08073FCC: .4byte 0x0000073C - - thumb_func_start sub_08073FD0 -sub_08073FD0: @ 0x08073FD0 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08073FF8 - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08074016 - ldrb r1, [r4, #0x18] - lsls r0, r1, #0x1e - cmp r0, #0 - bne _08073FF8 - movs r0, #3 - orrs r0, r1 - strb r0, [r4, #0x18] - movs r0, #0x7c - bl sub_080A3268 -_08073FF8: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - ldr r0, [r4, #0x20] - cmp r0, #0 - bne _08074016 - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0xb8 - lsls r0, r0, #1 - bl sub_080A3268 -_08074016: - pop {r4, pc} - - thumb_func_start sub_08074018 -sub_08074018: @ 0x08074018 - push {r4, lr} - adds r4, r0, #0 - adds r1, r4, #0 - adds r1, #0x80 - ldr r0, [r1] - movs r3, #0x80 - lsls r3, r3, #1 - cmp r0, r3 - bls _0807402E - subs r0, #0x20 - str r0, [r1] -_0807402E: - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - adds r2, r0, #0 - cmp r1, r3 - bls _08074042 - adds r0, r1, #0 - subs r0, #0x20 - str r0, [r2] - b _08074048 -_08074042: - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] -_08074048: - adds r0, r4, #0 - adds r0, #0x80 - ldr r1, [r0] - ldr r2, [r2] - adds r0, r4, #0 - movs r3, #0 - bl sub_0805EC9C - adds r0, r4, #0 - bl sub_080042B8 - pop {r4, pc} - - thumb_func_start sub_08074060 -sub_08074060: @ 0x08074060 - push {r4, lr} - adds r4, r0, #0 - movs r1, #0x80 - lsls r1, r1, #6 - bl sub_08003FC4 - cmp r0, #0 - bne _080740D0 - ldr r0, _080740C4 @ =gUnk_08114F88 - str r0, [r4, #0x48] - movs r3, #0x10 - movs r0, #0x10 - strb r0, [r4, #0x15] - movs r0, #4 - strb r0, [r4, #0x14] - movs r2, #0 - adds r0, #0xfc - strh r0, [r4, #0x24] - movs r0, #0x29 - adds r0, r0, r4 - 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] - ldrb r1, [r4, #0x18] - movs r0, #0x31 - rsbs r0, r0, #0 - ands r0, r1 - orrs r0, r3 - strb r0, [r4, #0x18] - strb r2, [r4, #0xf] - ldrb r0, [r4, #0xd] - adds r0, #1 - strb r0, [r4, #0xd] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r4, #0x20] - ldr r1, _080740C8 @ =gUnk_03003F80 - ldr r0, _080740CC @ =0x0000080C - strh r0, [r1, #8] - adds r0, r4, #0 - bl sub_0805EC60 - b _080740D6 - .align 2, 0 -_080740C4: .4byte gUnk_08114F88 -_080740C8: .4byte gUnk_03003F80 -_080740CC: .4byte 0x0000080C -_080740D0: - adds r0, r4, #0 - bl sub_080042B8 -_080740D6: - pop {r4, pc} - - thumb_func_start sub_080740D8 -sub_080740D8: @ 0x080740D8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - cmp r0, #0 - bne _080740EA - ldrb r0, [r4, #0x15] - b _080740F0 -_080740EA: - ldrb r1, [r4, #0x15] - movs r0, #0x10 - eors r0, r1 -_080740F0: - cmp r0, #8 - beq _08074128 - cmp r0, #8 - bhi _080740FE - cmp r0, #0 - beq _08074168 - b _0807418C -_080740FE: - cmp r0, #0x10 - beq _08074148 - cmp r0, #0x18 - bne _0807418C - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - ldrb r0, [r2, #2] - subs r1, r1, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _08074124 @ =gUnk_03000BF0 - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - b _08074182 - .align 2, 0 -_08074124: .4byte gUnk_03000BF0 -_08074128: - ldr r2, [r4, #0x48] - movs r1, #0x2e - ldrsh r0, [r4, r1] - ldrb r1, [r2, #2] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r3, _08074144 @ =gUnk_03000BF0 - ldrh r1, [r3, #6] - subs r6, r0, r1 - movs r1, #0x32 - ldrsh r0, [r4, r1] - b _08074182 - .align 2, 0 -_08074144: .4byte gUnk_03000BF0 -_08074148: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _08074164 @ =gUnk_03000BF0 - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrb r1, [r2, #5] - adds r0, r0, r1 - b _08074182 - .align 2, 0 -_08074164: .4byte gUnk_03000BF0 -_08074168: - movs r0, #0x2e - ldrsh r1, [r4, r0] - ldr r2, [r4, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _080741A4 @ =gUnk_03000BF0 - ldrh r0, [r3, #6] - subs r6, r1, r0 - movs r1, #0x32 - ldrsh r0, [r4, r1] - ldrb r1, [r2, #5] - subs r0, r0, r1 -_08074182: - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldrh r1, [r3, #8] - subs r5, r0, r1 -_0807418C: - ldr r2, _080741A8 @ =gUnk_080082DC - adds r0, r6, #0 - adds r1, r5, #0 - bl sub_080086B4 - cmp r0, #0 - beq _080741AC - adds r0, r4, #0 - bl sub_0806F69C - b _080741B0 - .align 2, 0 -_080741A4: .4byte gUnk_03000BF0 -_080741A8: .4byte gUnk_080082DC -_080741AC: - movs r0, #1 - strb r0, [r4, #0xf] -_080741B0: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - bne _080741C2 - bl sub_0807921C -_080741C2: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080741C4 -sub_080741C4: @ 0x080741C4 - push {lr} - ldr r0, _080741F0 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - adds r2, r0, #0 - cmp r1, #0 - beq _080741D8 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - bne _080741E0 -_080741D8: - ldr r0, _080741F4 @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - beq _080741F8 -_080741E0: - movs r1, #0 - strb r1, [r2, #0x11] - adds r0, r2, #0 - adds r0, #0x37 - strb r1, [r0] - movs r0, #1 - b _080741FA - .align 2, 0 -_080741F0: .4byte gUnk_03003F80 -_080741F4: .4byte gLinkEntity -_080741F8: - movs r0, #0 -_080741FA: - pop {pc} - - thumb_func_start nullsub_112 -nullsub_112: @ 0x080741FC - bx lr - .align 2, 0 - - thumb_func_start sub_08074200 -sub_08074200: @ 0x08074200 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074226 - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074226 - ldrb r0, [r4, #0xc] - cmp r0, #3 - beq _08074226 - bl sub_08077B2C - ldr r1, _08074228 @ =gUnk_03003F80 - movs r0, #3 - strb r0, [r1, #0xc] -_08074226: - pop {r4, pc} - .align 2, 0 -_08074228: .4byte gUnk_03003F80 - - thumb_func_start sub_0807422C -sub_0807422C: @ 0x0807422C - push {lr} - movs r1, #8 - movs r2, #0x18 - bl sub_08074244 - pop {pc} - - thumb_func_start sub_08074238 -sub_08074238: @ 0x08074238 - push {lr} - movs r1, #0 - movs r2, #0x10 - bl sub_08074244 - pop {pc} - - thumb_func_start sub_08074244 -sub_08074244: @ 0x08074244 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - ldr r5, _0807428C @ =gUnk_03003F80 - ldrb r0, [r5, #0x12] - subs r0, #0x28 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _08074278 - 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] -_08074278: - bl sub_080741C4 - cmp r0, #0 - bne _080742A6 - ldrb r0, [r5, #0x1e] - cmp r0, #0 - bne _08074290 - ldrb r0, [r5, #0xd] - b _08074294 - .align 2, 0 -_0807428C: .4byte gUnk_03003F80 -_08074290: - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 -_08074294: - cmp r6, r0 - bne _0807429C - cmp r7, r0 - beq _080742A6 -_0807429C: - ldr r1, _080742A8 @ =gUnk_03003F80 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #0x50 - strh r0, [r1] -_080742A6: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080742A8: .4byte gUnk_03003F80 - - thumb_func_start sub_080742AC -sub_080742AC: @ 0x080742AC - push {lr} - adds r2, r0, #0 - ldr r0, _080742E0 @ =gUnk_03003F80 - adds r1, r0, #0 - adds r1, #0x26 - ldrb r0, [r1] - cmp r0, #0 - beq _080742C0 - movs r0, #0 - strb r0, [r1] -_080742C0: - adds r3, r2, #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 r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - pop {pc} - .align 2, 0 -_080742E0: .4byte gUnk_03003F80 - - thumb_func_start sub_080742E4 -sub_080742E4: @ 0x080742E4 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _0807430E - ldr r2, _08074310 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807430E - ldrb r0, [r2, #0x11] - cmp r0, #0xf - bne _0807430E - adds r0, r4, #0 - movs r1, #0xe - movs r2, #0 - movs r3, #0 - bl sub_080A2988 -_0807430E: - pop {r4, pc} - .align 2, 0 -_08074310: .4byte gUnk_03003F80 - - thumb_func_start sub_08074314 -sub_08074314: @ 0x08074314 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xd - bgt _08074330 - movs r0, #0xcc - lsls r0, r0, #7 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _08074336 -_08074330: - adds r0, r2, #0 - bl sub_0807A298 -_08074336: - pop {pc} - - thumb_func_start sub_08074338 -sub_08074338: @ 0x08074338 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - ble _08074354 - movs r0, #0xcc - lsls r0, r0, #7 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _0807435A -_08074354: - adds r0, r2, #0 - bl sub_0807A298 -_0807435A: - pop {pc} - - thumb_func_start sub_0807435C -sub_0807435C: @ 0x0807435C - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #0xb - bgt _08074376 - movs r0, #0x66 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _0807437C -_08074376: - adds r0, r2, #0 - bl sub_0807A298 -_0807437C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08074380 -sub_08074380: @ 0x08074380 - push {lr} - adds r2, r0, #0 - ldrh r1, [r2, #0x2e] - movs r0, #0xf - ands r0, r1 - cmp r0, #4 - ble _0807439A - movs r0, #0x66 - strh r0, [r2, #0x2a] - adds r0, r2, #0 - bl sub_080743A4 - b _080743A0 -_0807439A: - adds r0, r2, #0 - bl sub_0807A298 -_080743A0: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080743A4 -sub_080743A4: @ 0x080743A4 - push {lr} - ldr r3, _080743D0 @ =gUnk_03003F80 - ldr r1, [r3, #0x30] - movs r2, #0x40 - orrs r1, r2 - str r1, [r3, #0x30] - movs r3, #0 - movs r1, #0x80 - strb r1, [r0, #0xb] - ldrb r2, [r0, #0x18] - subs r1, #0x84 - ands r1, r2 - strb r1, [r0, #0x18] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - adds r0, #0x42 - strb r3, [r0] - bl sub_08077B2C - pop {pc} - .align 2, 0 -_080743D0: .4byte gUnk_03003F80 - - thumb_func_start sub_080743D4 -sub_080743D4: @ 0x080743D4 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074416 - adds r0, r5, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074416 - adds r0, r5, #0 - bl sub_0807AABC - adds r0, r5, #0 - bl sub_08074808 - movs r0, #0x24 - ldrsh r4, [r5, r0] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r5, #0x24] - movs r0, #0x10 - strb r0, [r5, #0x15] - ldr r2, _08074418 @ =gUnk_03003F80 - ldrb r1, [r2, #0xa] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0xa] - adds r0, r5, #0 - bl sub_0806F69C - strh r4, [r5, #0x24] -_08074416: - pop {r4, r5, pc} - .align 2, 0 -_08074418: .4byte gUnk_03003F80 - - thumb_func_start sub_0807441C -sub_0807441C: @ 0x0807441C - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - ldr r0, _08074440 @ =gUnk_03003F80 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #4 - bne _08074502 - ldr r6, _08074444 @ =gUnk_02002A40 - adds r4, r6, #0 - adds r4, #0xb4 - ldrb r0, [r4] - bl sub_0805449C - cmp r0, #0 - beq _08074448 - ldrb r0, [r4] - b _0807444E - .align 2, 0 -_08074440: .4byte gUnk_03003F80 -_08074444: .4byte gUnk_02002A40 -_08074448: - adds r0, r6, #0 - adds r0, #0xb5 - ldrb r0, [r0] -_0807444E: - subs r0, #1 - cmp r0, #5 - bhi _0807448A - lsls r0, r0, #2 - ldr r1, _08074460 @ =_08074464 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08074460: .4byte _08074464 -_08074464: @ jump table - .4byte _0807447C @ case 0 - .4byte _0807447C @ case 1 - .4byte _08074480 @ case 2 - .4byte _08074484 @ case 3 - .4byte _0807448A @ case 4 - .4byte _08074488 @ case 5 -_0807447C: - movs r5, #0 - b _0807448A -_08074480: - movs r5, #1 - b _0807448A -_08074484: - movs r5, #2 - b _0807448A -_08074488: - movs r5, #3 -_0807448A: - movs r4, #0 - cmp r4, r5 - bhs _080744A6 - ldr r1, _08074494 @ =gUnk_03004040 - b _080744A0 - .align 2, 0 -_08074494: .4byte gUnk_03004040 -_08074498: - adds r1, #4 - adds r4, #1 - cmp r4, r5 - bhs _080744A6 -_080744A0: - ldr r0, [r1] - cmp r0, #0 - bne _08074498 -_080744A6: - cmp r5, r4 - bls _080744D4 - adds r0, r7, #0 - movs r1, #0x10 - adds r2, r4, #0 - movs r3, #0 - bl sub_080A2988 - adds r3, r0, #0 - ldr r1, _080744D0 @ =gUnk_03004040 - lsls r0, r4, #2 - adds r0, r0, r1 - str r3, [r0] - cmp r3, #0 - beq _08074502 - adds r0, r7, #0 - adds r1, r3, #0 - bl sub_0806FA24 - b _08074502 - .align 2, 0 -_080744D0: .4byte gUnk_03004040 -_080744D4: - ldr r2, _08074504 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1b] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1b] - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - orrs r0, r1 - str r0, [r2, #0x30] - ldr r0, [r7, #0x2c] - ldr r2, _08074508 @ =0xFFF00000 - ands r0, r2 - movs r1, #0x80 - lsls r1, r1, #0xc - orrs r0, r1 - str r0, [r7, #0x2c] - ldr r0, [r7, #0x30] - ands r0, r2 - orrs r0, r1 - str r0, [r7, #0x30] - bl sub_08077AEC -_08074502: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08074504: .4byte gUnk_03003F80 -_08074508: .4byte 0xFFF00000 - - thumb_func_start sub_0807450C -sub_0807450C: @ 0x0807450C - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _0807457A - ldr r7, _0807457C @ =gUnk_03003F80 - ldrb r0, [r7, #0x14] - cmp r0, #0 - bne _0807457A - adds r4, r6, #0 - adds r4, #0x3d - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #0 - bne _08074568 - movs r0, #2 - rsbs r0, r0, #0 - bl sub_080526A0 - movs r0, #0x7a - bl sub_080A3268 - movs r0, #0x18 - strb r0, [r4] - adds r1, r6, #0 - adds r1, #0x42 - movs r0, #4 - strb r0, [r1] - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r5, _08074580 @ =0x0000FFF0 - adds r0, r2, #0 - ands r0, r5 - movs r4, #8 - orrs r0, r4 - movs r1, #0x32 - ldrsh r3, [r6, r1] - adds r1, r3, #0 - ands r1, r5 - orrs r1, r4 - bl sub_080045D4 - adds r1, r6, #0 - adds r1, #0x3e - strb r0, [r1] -_08074568: - ldr r0, [r7, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807457A - adds r0, r6, #0 - movs r1, #7 - bl sub_08008790 -_0807457A: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807457C: .4byte gUnk_03003F80 -_08074580: .4byte 0x0000FFF0 - - thumb_func_start sub_08074584 -sub_08074584: @ 0x08074584 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _080745AC - ldr r0, _080745B0 @ =gUnk_03003F80 - adds r0, #0x35 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080745A8 - adds r0, r4, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - beq _080745AC -_080745A8: - bl sub_08078F60 -_080745AC: - pop {r4, pc} - .align 2, 0 -_080745B0: .4byte gUnk_03003F80 - - thumb_func_start sub_080745B4 -sub_080745B4: @ 0x080745B4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074636 - ldr r0, _080745E4 @ =gUnk_03003F80 - mov ip, r0 - ldr r3, [r0, #0x30] - movs r0, #0x80 - ands r3, r0 - cmp r3, #0 - beq _080745E8 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - subs r0, #0xb9 - ands r0, r1 - strb r0, [r2] - adds r0, r4, #0 - bl sub_0807479C - b _08074636 - .align 2, 0 -_080745E4: .4byte gUnk_03003F80 -_080745E8: - mov r5, ip - adds r5, #0x26 - ldrb r0, [r5] - cmp r0, #0 - beq _08074618 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - subs r2, #0x13 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - strb r3, [r5] -_08074618: - mov r0, ip - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08074630 - mov r1, ip - ldrb r0, [r1, #0x11] - cmp r0, #1 - bne _08074636 -_08074630: - movs r0, #0x83 - bl sub_080A3268 -_08074636: - pop {r4, r5, pc} - - thumb_func_start sub_08074638 -sub_08074638: @ 0x08074638 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r0, _08074674 @ =gUnk_03003F80 - adds r5, r0, #0 - adds r5, #0x26 - ldrb r0, [r5] - cmp r0, #0 - beq _08074670 - ldrb r1, [r4, #0x10] - movs r0, #0x80 - movs r3, #0 - orrs r0, r1 - strb r0, [r4, #0x10] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - subs r2, #0x13 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #4 - orrs r0, r1 - strb r0, [r2] - strb r3, [r5] -_08074670: - pop {r4, r5, pc} - .align 2, 0 -_08074674: .4byte gUnk_03003F80 - - thumb_func_start sub_08074678 -sub_08074678: @ 0x08074678 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - beq _08074690 - ldr r0, _0807468C @ =gUnk_03003F80 - movs r1, #0 - strb r1, [r0, #0x11] - b _080746CE - .align 2, 0 -_0807468C: .4byte gUnk_03003F80 -_08074690: - adds r0, r4, #0 - adds r0, #0x45 - ldrb r0, [r0] - cmp r0, #0 - beq _0807476C - adds r0, r4, #0 - bl sub_08079C30 - adds r1, r0, #0 - cmp r1, #0 - bne _080746B0 - ldr r0, _080746AC @ =gUnk_03003F80 - strb r1, [r0, #0x11] - b _080746CE - .align 2, 0 -_080746AC: .4byte gUnk_03003F80 -_080746B0: - ldr r3, _080746D4 @ =gUnk_03003F80 - ldr r1, [r3, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _0807476C - ldrb r2, [r3, #0x1e] - cmp r2, #0 - beq _080746D8 - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _080746DC - strb r1, [r3, #0x11] - adds r0, r3, #0 -_080746CE: - adds r0, #0x37 - strb r1, [r0] - b _08074792 - .align 2, 0 -_080746D4: .4byte gUnk_03003F80 -_080746D8: - bl sub_08077B20 -_080746DC: - ldr r1, _08074700 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x37 - ldrb r0, [r0] - cmp r0, #1 - bne _08074704 - adds r0, r4, #0 - movs r1, #0x70 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX - b _08074714 - .align 2, 0 -_08074700: .4byte gUnk_03003F80 -_08074704: - adds r0, r1, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08074720 -_08074714: - ldr r0, _0807471C @ =0x00000161 - bl sub_080A3268 - b _08074732 - .align 2, 0 -_0807471C: .4byte 0x00000161 -_08074720: - ldr r0, _08074760 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08074732 - ldr r0, _08074764 @ =0x00000161 - bl sub_080A3268 -_08074732: - ldr r2, _08074768 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x80 - ldrh r0, [r1] - subs r0, #0xf0 - strh r0, [r1] - adds r1, #0x28 - movs r0, #0x1b - strb r0, [r1] - adds r0, r2, #0 - adds r0, #0x37 - ldrb r0, [r0] - lsls r3, r0, #0x18 - lsrs r0, r3, #0x18 - cmp r0, #0xef - bhi _0807476C - subs r1, #0x69 - lsrs r0, r3, #0x1d - adds r0, #4 - ldrb r2, [r1] - adds r0, r0, r2 - strb r0, [r1] - b _08074792 - .align 2, 0 -_08074760: .4byte gUnk_030010A0 -_08074764: .4byte 0x00000161 -_08074768: .4byte gUnk_03003F80 -_0807476C: - ldr r2, _08074794 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08074798 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r2, #0x30] - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x20 - strb r0, [r1] - subs r0, #0x24 - bl sub_080526A0 - bl sub_08079458 -_08074792: - pop {r4, pc} - .align 2, 0 -_08074794: .4byte gUnk_03003F80 -_08074798: .4byte 0xFFFBFFFF - - thumb_func_start sub_0807479C -sub_0807479C: @ 0x0807479C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r2, r0, #0 - cmp r2, #0 - bne _08074804 - ldr r1, _080747C0 @ =gUnk_03003F80 - ldrb r0, [r1, #0x14] - adds r3, r1, #0 - cmp r0, #0 - bne _080747C4 - adds r1, #0x3f - ldrb r0, [r1] - adds r0, #2 - strb r0, [r1] - b _080747E6 - .align 2, 0 -_080747C0: .4byte gUnk_03003F80 -_080747C4: - adds r0, r3, #0 - adds r0, #0x26 - 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, #4 - orrs r0, r1 - strb r0, [r2] - adds r2, #0x13 - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] -_080747E6: - adds r0, r3, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _080747FE - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074804 -_080747FE: - adds r0, r4, #0 - bl sub_08074808 -_08074804: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08074808 -sub_08074808: @ 0x08074808 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - bl sub_08077AEC - movs r0, #0x46 - bl sub_0807CA84 - adds r3, r0, #0 - cmp r3, #1 - bne _080748B8 - ldr r1, _08074838 @ =gUnk_03003F80 - adds r2, r1, #0 - adds r2, #0x26 - ldrb r0, [r2] - cmp r0, #0 - bne _0807486C - ldr r0, [r1, #0x30] - movs r1, #0x80 - lsls r1, r1, #9 - ands r0, r1 - cmp r0, #0 - beq _0807483C - strb r3, [r2] - b _08074840 - .align 2, 0 -_08074838: .4byte gUnk_03003F80 -_0807483C: - movs r0, #8 - strb r0, [r2] -_08074840: - movs r1, #0 - movs r0, #0 - strh r0, [r6, #0x24] - ldr r0, _080748AC @ =gUnk_03003F80 - adds r2, r0, #0 - adds r2, #0x89 - strb r1, [r2] - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074862 - adds r0, r6, #0 - movs r1, #0xb - movs r2, #0 - bl CreateFX -_08074862: - ldr r0, _080748B0 @ =0x000001A5 - bl sub_080A3268 - bl sub_08077B2C -_0807486C: - ldr r5, _080748AC @ =gUnk_03003F80 - adds r4, r5, #0 - adds r4, #0x26 - ldrb r1, [r4] - movs r7, #0xf - adds r0, r7, #0 - ands r0, r1 - cmp r0, #1 - beq _0807488A - adds r0, r6, #0 - bl sub_08079744 - ldrb r0, [r4] - subs r0, #1 - strb r0, [r4] -_0807488A: - ldr r0, [r5, #0x30] - ldr r1, _080748B4 @ =0xFFFFF3FF - ands r0, r1 - str r0, [r5, #0x30] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _080748BE - adds r1, r6, #0 - adds r1, #0x7a - ldrh r0, [r1] - cmp r0, #0xe - bhi _080748BE - strh r7, [r1] - b _080748BE - .align 2, 0 -_080748AC: .4byte gUnk_03003F80 -_080748B0: .4byte 0x000001A5 -_080748B4: .4byte 0xFFFFF3FF -_080748B8: - ldr r1, _080748C0 @ =gUnk_03003F80 - movs r0, #0x14 - strb r0, [r1, #0xc] -_080748BE: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080748C0: .4byte gUnk_03003F80 - - thumb_func_start sub_080748C4 -sub_080748C4: @ 0x080748C4 - ldr r1, _080748D0 @ =gUnk_03003F80 - adds r1, #0x3f - ldrb r0, [r1] - subs r0, #2 - strb r0, [r1] - bx lr - .align 2, 0 -_080748D0: .4byte gUnk_03003F80 - - thumb_func_start sub_080748D4 -sub_080748D4: @ 0x080748D4 - push {lr} - bl sub_080741C4 - pop {pc} - - thumb_func_start sub_080748DC -sub_080748DC: @ 0x080748DC - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074910 - adds r0, r4, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - beq _0807490A - ldrh r0, [r4, #0x32] - adds r0, #0xc - strh r0, [r4, #0x32] - ldr r0, _08074914 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807490A - ldrh r0, [r4, #0x36] - subs r0, #0xc - strh r0, [r4, #0x36] -_0807490A: - adds r0, r4, #0 - bl sub_0807AABC -_08074910: - pop {r4, pc} - .align 2, 0 -_08074914: .4byte gUnk_03003F80 - - thumb_func_start sub_08074918 -sub_08074918: @ 0x08074918 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074934 - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08074934 - ldr r1, _08074938 @ =gUnk_03003F80 - movs r0, #0x11 - strb r0, [r1, #0xc] -_08074934: - pop {r4, pc} - .align 2, 0 -_08074938: .4byte gUnk_03003F80 - - thumb_func_start sub_0807493C -sub_0807493C: @ 0x0807493C - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x44 - bl sub_0807CA84 - cmp r0, #1 - bne _08074952 - adds r0, r4, #0 - bl sub_0807496C - b _08074966 -_08074952: - ldrh r1, [r4, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0xf - movs r2, #0 - orrs r0, r1 - strh r0, [r4, #0x32] - ldr r0, _08074968 @ =gUnk_03003F80 - strb r2, [r0, #0x12] -_08074966: - pop {r4, pc} - .align 2, 0 -_08074968: .4byte gUnk_03003F80 - - thumb_func_start sub_0807496C -sub_0807496C: @ 0x0807496C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r3, r0, #0 - cmp r3, #0 - bne _080749A2 - ldr r0, _080749A4 @ =gUnk_03003F80 - strb r3, [r0, #2] - 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] - strb r3, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - bl sub_08077B2C -_080749A2: - pop {r4, pc} - .align 2, 0 -_080749A4: .4byte gUnk_03003F80 - - thumb_func_start sub_080749A8 -sub_080749A8: @ 0x080749A8 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x44 - bl sub_0807CA84 - cmp r0, #1 - bne _080749BE - adds r0, r4, #0 - bl sub_080749D4 - b _080749CE -_080749BE: - ldrh r1, [r4, #0x32] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #0 - strh r0, [r4, #0x32] - ldr r0, _080749D0 @ =gUnk_03003F80 - strb r1, [r0, #0x12] -_080749CE: - pop {r4, pc} - .align 2, 0 -_080749D0: .4byte gUnk_03003F80 - - thumb_func_start sub_080749D4 -sub_080749D4: @ 0x080749D4 - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_080741C4 - adds r3, r0, #0 - cmp r3, #0 - bne _08074A40 - 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] - strb r3, [r4, #0x14] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #3 - strb r0, [r1] - ldr r5, _08074A2C @ =gUnk_03003F80 - adds r0, r5, #0 - adds r0, #0x26 - strb r3, [r0] - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4, #0x32] - movs r0, #0xf - ands r0, r1 - cmp r0, #7 - bgt _08074A34 - ldr r0, _08074A30 @ =0x000002D3 - strh r0, [r5, #8] - movs r0, #0x10 - strb r0, [r4, #0x15] - b _08074A3C - .align 2, 0 -_08074A2C: .4byte gUnk_03003F80 -_08074A30: .4byte 0x000002D3 -_08074A34: - movs r1, #0 - ldr r0, _08074A44 @ =0x000002D6 - strh r0, [r5, #8] - strb r1, [r4, #0x15] -_08074A3C: - bl sub_08077B2C -_08074A40: - pop {r4, r5, pc} - .align 2, 0 -_08074A44: .4byte 0x000002D6 - - thumb_func_start sub_08074A48 -sub_08074A48: @ 0x08074A48 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08074A90 @ =gUnk_03003F80 - adds r0, r5, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074A86 - ldr r0, _08074A94 @ =gLinkEntity - movs r1, #0 - movs r2, #0x54 - movs r3, #0 - bl sub_080A2988 - adds r1, r0, #0 - cmp r1, #0 - beq _08074A86 - movs r0, #1 - strb r0, [r1, #0xe] - adds r0, r1, #0 - bl sub_08016A04 - ldrh r1, [r5, #0x22] - adds r0, r4, #0 - adds r0, #0x38 - ldrb r2, [r0] - movs r0, #0x39 - bl sub_08000152 -_08074A86: - adds r0, r4, #0 - bl sub_0807479C - pop {r4, r5, pc} - .align 2, 0 -_08074A90: .4byte gUnk_03003F80 -_08074A94: .4byte gLinkEntity - - thumb_func_start nullsub_504 -nullsub_504: @ 0x08074A98 - bx lr - .align 2, 0 - - thumb_func_start sub_08074A9C -sub_08074A9C: @ 0x08074A9C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074AF0 - ldr r2, _08074AE0 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x80 - ldrh r1, [r0] - subs r1, #0x80 - strh r1, [r0] - ldrb r0, [r2, #0x11] - cmp r0, #1 - beq _08074ACA - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08074AF0 -_08074ACA: - ldrb r0, [r2, #0x12] - cmp r0, #0x25 - bne _08074AE4 - adds r0, r4, #0 - movs r1, #0x21 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - b _08074AF0 - .align 2, 0 -_08074AE0: .4byte gUnk_03003F80 -_08074AE4: - adds r0, r4, #0 - movs r1, #0x21 - movs r2, #1 - movs r3, #1 - bl sub_080A2988 -_08074AF0: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08074AF4 -sub_08074AF4: @ 0x08074AF4 - push {lr} - adds r3, r0, #0 - ldr r1, _08074B04 @ =gUnk_03003F80 - ldrb r0, [r1, #0x1e] - cmp r0, #0 - bne _08074B08 - ldrb r2, [r1, #0xd] - b _08074B0C - .align 2, 0 -_08074B04: .4byte gUnk_03003F80 -_08074B08: - ldrb r0, [r3, #0x14] - lsls r2, r0, #2 -_08074B0C: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_08074244 - pop {pc} - .align 2, 0 - - thumb_func_start sub_08074B18 -sub_08074B18: @ 0x08074B18 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _08074B40 @ =gUnk_03003F80 - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08074B48 - bl sub_080741C4 - cmp r0, #0 - bne _08074B48 - ldr r0, [r4, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074B44 - adds r0, r5, #0 - bl sub_08074200 - b _08074B48 - .align 2, 0 -_08074B40: .4byte gUnk_03003F80 -_08074B44: - movs r0, #0x1a - strb r0, [r4, #0xc] -_08074B48: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08074B4C -sub_08074B4C: @ 0x08074B4C - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074B6E - ldr r0, _08074B70 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _08074B6E - strb r1, [r4, #0x14] - strb r1, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074B6E: - pop {r4, pc} - .align 2, 0 -_08074B70: .4byte gUnk_03003F80 - - thumb_func_start sub_08074B74 -sub_08074B74: @ 0x08074B74 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074B9A - ldr r0, _08074B9C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074B9A - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #0x10 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074B9A: - pop {r4, pc} - .align 2, 0 -_08074B9C: .4byte gUnk_03003F80 - - thumb_func_start sub_08074BA0 -sub_08074BA0: @ 0x08074BA0 - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074BC6 - ldr r0, _08074BC8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074BC6 - movs r0, #6 - strb r0, [r4, #0x14] - movs r0, #0x18 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074BC6: - pop {r4, pc} - .align 2, 0 -_08074BC8: .4byte gUnk_03003F80 - - thumb_func_start sub_08074BCC -sub_08074BCC: @ 0x08074BCC - push {r4, lr} - adds r4, r0, #0 - bl sub_080741C4 - cmp r0, #0 - bne _08074BF2 - ldr r0, _08074BF4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08074BF2 - movs r0, #2 - strb r0, [r4, #0x14] - movs r0, #8 - strb r0, [r4, #0x15] - adds r0, r4, #0 - bl sub_08074BF8 -_08074BF2: - pop {r4, pc} - .align 2, 0 -_08074BF4: .4byte gUnk_03003F80 - - thumb_func_start sub_08074BF8 -sub_08074BF8: @ 0x08074BF8 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077B2C - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0xa0 - lsls r0, r0, #1 - strh r0, [r4, #0x24] - ldr r1, _08074C40 @ =gUnk_03003F80 - ldr r0, [r1, #0x30] - movs r2, #0x80 - lsls r2, r2, #0x12 - orrs r0, r2 - str r0, [r1, #0x30] - ldrb r2, [r1, #0xa] - movs r0, #0x80 - orrs r2, r0 - strb r2, [r1, #0xa] - ldrb r2, [r1, #0x1a] - orrs r0, r2 - strb r0, [r1, #0x1a] - adds r1, #0x27 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - adds r0, r4, #0 - bl sub_0806F69C - pop {r4, pc} - .align 2, 0 -_08074C40: .4byte gUnk_03003F80 - - thumb_func_start sub_08074C44 -sub_08074C44: @ 0x08074C44 - push {r4, lr} - adds r4, r0, #0 - bl sub_08078EFC - cmp r0, #0 - bne _08074C60 - ldr r0, _08074C64 @ =gUnk_0811BC88 - ldrb r1, [r4, #0xd] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - adds r0, r4, #0 - bl _call_via_r1 -_08074C60: - pop {r4, pc} - .align 2, 0 -_08074C64: .4byte gUnk_0811BC88 - - thumb_func_start sub_08074C68 -sub_08074C68: @ 0x08074C68 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r4, #0 - adds r6, #0x68 - movs r2, #0 - strb r2, [r6] - ldr r5, _08074CA0 @ =gUnk_03003F80 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r3, [r0] - cmp r3, #1 - beq _08074CA8 - adds r0, r4, #0 - adds r0, #0x84 - ldr r1, [r0] - ldr r0, _08074CA4 @ =gUnk_02022750 - cmp r1, r0 - bne _08074CF2 - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r4, #0 - bl sub_08074CF8 - b _08074CF2 - .align 2, 0 -_08074CA0: .4byte gUnk_03003F80 -_08074CA4: .4byte gUnk_02022750 -_08074CA8: - ldrb r1, [r4, #0x18] - movs r0, #4 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r4, #0x18] - strb r2, [r4, #0x14] - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #0x39 - rsbs r0, r0, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #2 - strb r0, [r4, #0xd] - strb r3, [r6] - adds r0, r4, #0 - bl sub_0807DD64 - adds r0, r5, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074CE4 - ldr r0, _08074CE0 @ =0x0000073A - b _08074CE6 - .align 2, 0 -_08074CE0: .4byte 0x0000073A -_08074CE4: - ldr r0, _08074CF4 @ =0x00000736 -_08074CE6: - strh r0, [r5, #8] - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #5 - bl sub_08050054 -_08074CF2: - pop {r4, r5, r6, pc} - .align 2, 0 -_08074CF4: .4byte 0x00000736 - - thumb_func_start sub_08074CF8 -sub_08074CF8: @ 0x08074CF8 - push {r4, r5, r6, lr} - adds r5, r0, #0 - ldrb r6, [r5, #0x14] - adds r4, r5, #0 - adds r4, #0x84 - ldr r1, [r4] - bl sub_0807DF74 - ldr r1, [r4] - adds r0, r5, #0 - bl sub_08074D34 - adds r0, r5, #0 - adds r0, #0x82 - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08074D20 - strb r6, [r5, #0x14] -_08074D20: - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r5, #0 - bl sub_08003FC4 - adds r0, r5, #0 - bl sub_080042B8 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08074D34 -sub_08074D34: @ 0x08074D34 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, [r6, #8] - cmp r0, #0 - bne _08074D46 - b _08074EF8 -_08074D46: - movs r7, #0x80 - lsls r7, r7, #1 - adds r5, r4, #0 - adds r5, #0x82 -_08074D4E: - ldr r1, [r6, #8] - mvns r0, r1 - adds r2, r0, #1 - ands r2, r1 - eors r1, r2 - str r1, [r6, #8] - cmp r2, r7 - bne _08074D60 - b _08074E82 -_08074D60: - cmp r2, r7 - bhi _08074D90 - cmp r2, #8 - beq _08074E2C - cmp r2, #8 - bhi _08074D7C - cmp r2, #2 - beq _08074E08 - cmp r2, #2 - bls _08074D76 - b _08074EF0 -_08074D76: - cmp r2, #1 - beq _08074DEC - b _08074EF0 -_08074D7C: - cmp r2, #0x20 - beq _08074E62 - cmp r2, #0x20 - bhi _08074D8A - cmp r2, #0x10 - beq _08074E54 - b _08074EF0 -_08074D8A: - cmp r2, #0x80 - beq _08074E70 - b _08074EF0 -_08074D90: - movs r0, #0x80 - lsls r0, r0, #7 - cmp r2, r0 - bne _08074D9A - b _08074EAE -_08074D9A: - cmp r2, r0 - bhi _08074DBE - movs r0, #0x80 - lsls r0, r0, #5 - cmp r2, r0 - beq _08074E96 - cmp r2, r0 - bhi _08074DB4 - movs r0, #0x80 - lsls r0, r0, #2 - cmp r2, r0 - beq _08074E90 - b _08074EF0 -_08074DB4: - movs r0, #0x80 - lsls r0, r0, #6 - cmp r2, r0 - beq _08074EA8 - b _08074EF0 -_08074DBE: - movs r0, #0x80 - lsls r0, r0, #0xa - cmp r2, r0 - bne _08074DC8 - b _08074EBE -_08074DC8: - cmp r2, r0 - bhi _08074DD6 - movs r0, #0x80 - lsls r0, r0, #8 - cmp r2, r0 - beq _08074EB4 - b _08074EF0 -_08074DD6: - movs r0, #0x80 - lsls r0, r0, #0xd - cmp r2, r0 - bne _08074DE0 - b _08074ED8 -_08074DE0: - movs r0, #0x80 - lsls r0, r0, #0xe - cmp r2, r0 - bne _08074DEA - b _08074EE4 -_08074DEA: - b _08074EF0 -_08074DEC: - ldr r2, _08074E00 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08074E04 - movs r0, #0x80 - lsls r0, r0, #3 - strh r0, [r2, #8] - b _08074EF0 - .align 2, 0 -_08074E00: .4byte gUnk_03003F80 -_08074E04: - strh r7, [r2, #8] - b _08074EF0 -_08074E08: - ldr r2, _08074E1C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _08074E24 - ldr r0, _08074E20 @ =0x00000404 - strh r0, [r2, #8] - b _08074EF0 - .align 2, 0 -_08074E1C: .4byte gUnk_03003F80 -_08074E20: .4byte 0x00000404 -_08074E24: - movs r0, #0x82 - lsls r0, r0, #1 - strh r0, [r2, #8] - b _08074EF0 -_08074E2C: - ldr r1, _08074E3C @ =gUnk_03003F80 - ldr r0, [r1, #0x30] - ands r0, r2 - cmp r0, #0 - beq _08074E44 - ldr r0, _08074E40 @ =0x0000041C - b _08074E46 - .align 2, 0 -_08074E3C: .4byte gUnk_03003F80 -_08074E40: .4byte 0x0000041C -_08074E44: - ldr r0, _08074E50 @ =0x0000080C -_08074E46: - strh r0, [r1, #8] - movs r0, #0xc0 - lsls r0, r0, #9 - str r0, [r4, #0x20] - b _08074EF0 - .align 2, 0 -_08074E50: .4byte 0x0000080C -_08074E54: - adds r0, r4, #0 - movs r1, #8 - movs r2, #0x18 - rsbs r2, r2, #0 - bl sub_080A2CFC - b _08074EF0 -_08074E62: - adds r0, r4, #0 - movs r1, #8 - movs r2, #0x18 - rsbs r2, r2, #0 - bl sub_080A2D0C - b _08074EF0 -_08074E70: - 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] - b _08074EF0 -_08074E82: - ldrb r0, [r4, #0x18] - movs r3, #4 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r0, r1 - strb r0, [r4, #0x18] - b _08074EF0 -_08074E90: - movs r0, #0 - strh r0, [r5] - b _08074EF0 -_08074E96: - ldrh r0, [r5] - ldr r2, _08074EA4 @ =0x0000FFFE - adds r1, r2, #0 - ands r0, r1 - strh r0, [r5] - b _08074EF0 - .align 2, 0 -_08074EA4: .4byte 0x0000FFFE -_08074EA8: - ldrh r0, [r5] - movs r1, #1 - b _08074EB8 -_08074EAE: - ldrh r0, [r5] - movs r1, #8 - b _08074EB8 -_08074EB4: - ldrh r0, [r5] - movs r1, #4 -_08074EB8: - orrs r0, r1 - strh r0, [r5] - b _08074EF0 -_08074EBE: - ldrb r2, [r4, #0x18] - lsls r0, r2, #0x19 - lsrs r0, r0, #0x1f - movs r1, #1 - eors r0, r1 - lsls r0, r0, #6 - movs r3, #0x41 - rsbs r3, r3, #0 - adds r1, r3, #0 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, #0x18] - b _08074EF0 -_08074ED8: - movs r1, #2 - strb r1, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - b _08074EF0 -_08074EE4: - movs r0, #0 - movs r1, #3 - strb r1, [r4, #0xd] - adds r1, r4, #0 - adds r1, #0x68 - strb r0, [r1] -_08074EF0: - ldr r0, [r6, #8] - cmp r0, #0 - beq _08074EF8 - b _08074D4E -_08074EF8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08074F00 -sub_08074F00: @ 0x08074F00 - push {lr} - ldr r2, _08074F18 @ =gUnk_0811BC98 - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08074F18: .4byte gUnk_0811BC98 - - thumb_func_start sub_08074F1C -sub_08074F1C: @ 0x08074F1C - adds r2, r0, #0 - adds r2, #0x68 - movs r3, #0 - movs r1, #1 - strb r1, [r2] - strb r3, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_08074F2C -sub_08074F2C: @ 0x08074F2C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r4, #0 - adds r5, #0x84 - ldr r1, [r5] - bl sub_0807DF74 - ldr r1, [r5] - adds r0, r4, #0 - bl sub_08074D34 - pop {r4, r5, pc} - - thumb_func_start sub_08074F44 -sub_08074F44: @ 0x08074F44 - push {lr} - adds r0, #0x68 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r0, _08074F74 @ =gLinkEntity - ldr r0, [r0, #0x6c] - cmp r0, #0 - beq _08074F5A - bl sub_0805E7BC -_08074F5A: - ldr r2, _08074F78 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074F80 - ldr r0, _08074F7C @ =0x0000073B - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - b _08074F84 - .align 2, 0 -_08074F74: .4byte gLinkEntity -_08074F78: .4byte gUnk_03003F80 -_08074F7C: .4byte 0x0000073B -_08074F80: - ldr r0, _08074F88 @ =0x00000737 - strh r0, [r2, #8] -_08074F84: - pop {pc} - .align 2, 0 -_08074F88: .4byte 0x00000737 - - thumb_func_start sub_08074F8C -sub_08074F8C: @ 0x08074F8C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - adds r3, r4, #0 - adds r3, #0x5a - ldrb r0, [r3] - cmp r0, #1 - bne _08074FAC - movs r0, #0 - strb r0, [r3] - ldr r2, _08074FDC @ =gUnk_02033280 - ldr r0, [r2] - movs r1, #4 - orrs r0, r1 - str r0, [r2] -_08074FAC: - ldrb r1, [r3] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08074FEA - adds r1, r4, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #8 - strb r0, [r4, #0xe] - movs r0, #4 - strb r0, [r4, #0x14] - ldr r1, _08074FE0 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _08074FE4 - movs r0, #0x80 - lsls r0, r0, #3 - b _08074FE8 - .align 2, 0 -_08074FDC: .4byte gUnk_02033280 -_08074FE0: .4byte gUnk_03003F80 -_08074FE4: - movs r0, #0x80 - lsls r0, r0, #1 -_08074FE8: - strh r0, [r1, #8] -_08074FEA: - pop {r4, pc} - - thumb_func_start sub_08074FEC -sub_08074FEC: @ 0x08074FEC - 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 _08075016 - adds r1, r4, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #4 - strb r0, [r4, #0xe] - ldr r0, _08075018 @ =gUnk_03003F80 - adds r0, #0x3a - ldrb r0, [r0] - strb r0, [r4, #0x14] -_08075016: - pop {r4, pc} - .align 2, 0 -_08075018: .4byte gUnk_03003F80 - - thumb_func_start sub_0807501C -sub_0807501C: @ 0x0807501C - 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 _08075086 - ldr r1, _08075044 @ =gUnk_03003F80 - adds r0, r1, #0 - adds r0, #0x3a - ldrb r0, [r0] - strb r0, [r2, #0x14] - adds r0, r1, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _0807504C - ldr r0, _08075048 @ =0x0000041C - b _0807504E - .align 2, 0 -_08075044: .4byte gUnk_03003F80 -_08075048: .4byte 0x0000041C -_0807504C: - ldr r0, _08075088 @ =0x0000080C -_0807504E: - strh r0, [r1, #8] - 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] - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - strb r0, [r2, #0x15] - movs r0, #0xc8 - strh r0, [r2, #0x24] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #8 - strb r0, [r2, #0xe] - adds r1, r2, #0 - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0x7c - bl sub_080A3268 -_08075086: - pop {pc} - .align 2, 0 -_08075088: .4byte 0x0000080C - - thumb_func_start sub_0807508C -sub_0807508C: @ 0x0807508C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - movs r1, #0x80 - lsls r1, r1, #6 - adds r0, r4, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _080750AA - adds r0, r4, #0 - bl sub_0806F69C - b _080750F2 -_080750AA: - ldr r2, _080750BC @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - cmp r0, #0 - bne _080750C0 - movs r0, #0x80 - lsls r0, r0, #3 - b _080750CE - .align 2, 0 -_080750BC: .4byte gUnk_03003F80 -_080750C0: - ldr r0, [r2, #0x30] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #1 -_080750CE: - strh r0, [r2, #8] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - bne _080750F2 - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - movs r0, #0x7d - bl sub_080A3268 -_080750F2: - pop {r4, pc} - - thumb_func_start sub_080750F4 -sub_080750F4: @ 0x080750F4 - push {lr} - ldr r2, _0807510C @ =gUnk_0811BCB4 - adds r1, r0, #0 - adds r1, #0x68 - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807510C: .4byte gUnk_0811BCB4 - - thumb_func_start sub_08075110 -sub_08075110: @ 0x08075110 - adds r2, r0, #0 - adds r2, #0x68 - ldrb r1, [r2] - adds r1, #1 - movs r3, #0 - strb r1, [r2] - ldrb r1, [r0, #0x14] - strb r1, [r0, #0xf] - strb r3, [r0, #0x14] - ldr r2, _08075134 @ =gUnk_03003F80 - ldr r0, _08075138 @ =0x00000734 - strh r0, [r2, #8] - ldr r0, [r2, #0x30] - movs r1, #9 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bx lr - .align 2, 0 -_08075134: .4byte gUnk_03003F80 -_08075138: .4byte 0x00000734 - - thumb_func_start sub_0807513C -sub_0807513C: @ 0x0807513C - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_080042B8 - adds r4, r5, #0 - adds r4, #0x5a - ldrb r0, [r4] - cmp r0, #1 - bne _08075158 - movs r0, #0 - strb r0, [r4] - movs r0, #0x7c - bl sub_080A3268 -_08075158: - ldrb r0, [r4] - cmp r0, #2 - bne _0807516E - movs r0, #0 - strb r0, [r4] - ldr r0, _08075188 @ =0x0000014B - bl sub_080A3268 - movs r0, #0x7a - bl sub_080A3268 -_0807516E: - ldrb r1, [r4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075186 - adds r0, r5, #0 - adds r0, #0x68 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - movs r0, #0x3c - strb r0, [r5, #0xe] -_08075186: - pop {r4, r5, pc} - .align 2, 0 -_08075188: .4byte 0x0000014B - - thumb_func_start sub_0807518C -sub_0807518C: @ 0x0807518C - 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 _080751AA - adds r1, #0x68 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _080751AC @ =gUnk_03003F80 - ldr r0, _080751B0 @ =0x000003C9 - strh r0, [r1, #8] -_080751AA: - pop {pc} - .align 2, 0 -_080751AC: .4byte gUnk_03003F80 -_080751B0: .4byte 0x000003C9 - - thumb_func_start sub_080751B4 -sub_080751B4: @ 0x080751B4 - 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 _080751E2 - movs r1, #0 - movs r0, #4 - strb r0, [r4, #0x14] - movs r0, #1 - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - ldr r1, _080751E4 @ =gUnk_03003F80 - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r1, #8] -_080751E2: - pop {r4, pc} - .align 2, 0 -_080751E4: .4byte gUnk_03003F80 - - thumb_func_start sub_080751E8 -sub_080751E8: @ 0x080751E8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - ldr r4, _08075230 @ =gUnk_02022750 - adds r0, r4, #0 - movs r1, #0x24 - bl sub_0801D630 - str r6, [r4] - ldr r0, _08075234 @ =gLinkEntity - adds r0, #0x84 - str r4, [r0] - ldr r2, _08075238 @ =gUnk_03003F80 - movs r1, #0 - movs r0, #0x1c - strb r0, [r2, #0xc] - adds r0, r2, #0 - adds r0, #0x38 - movs r4, #1 - strb r4, [r0] - adds r3, r2, #0 - adds r3, #0x39 - strb r1, [r3] - adds r0, #2 - strb r5, [r0] - ldr r0, [r2, #0x30] - movs r1, #8 - orrs r0, r1 - str r0, [r2, #0x30] - cmp r7, #0 - bne _08075240 - strb r7, [r3] - ldr r6, _0807523C @ =gUnk_08009ECC - b _08075244 - .align 2, 0 -_08075230: .4byte gUnk_02022750 -_08075234: .4byte gLinkEntity -_08075238: .4byte gUnk_03003F80 -_0807523C: .4byte gUnk_08009ECC -_08075240: - strb r4, [r3] - ldr r6, _08075290 @ =gUnk_08009EF0 -_08075244: - ldr r0, _08075294 @ =gUnk_03003F80 - adds r0, #0x39 - ldrb r0, [r0] - movs r1, #0 - cmp r0, #0 - bne _08075252 - movs r1, #2 -_08075252: - movs r0, #0x5b - movs r2, #0 - bl sub_080A2960 - adds r4, r0, #0 - cmp r4, #0 - beq _08075270 - ldr r0, _08075298 @ =gLinkEntity - adds r1, r4, #0 - bl sub_0806FA24 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0807DAD0 -_08075270: - ldr r4, _08075298 @ =gLinkEntity - movs r1, #0xe - rsbs r1, r1, #0 - movs r2, #0x1c - rsbs r2, r2, #0 - adds r0, r4, #0 - bl sub_080A2D1C - str r0, [r4, #0x6c] - cmp r0, #0 - beq _0807528C - movs r1, #3 - bl sub_0805E3A0 -_0807528C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075290: .4byte gUnk_08009EF0 -_08075294: .4byte gUnk_03003F80 -_08075298: .4byte gLinkEntity - - thumb_func_start sub_0807529C -sub_0807529C: @ 0x0807529C - push {lr} - movs r2, #0x20 - rsbs r2, r2, #0 - movs r1, #8 - bl sub_080A2D0C - pop {pc} - .align 2, 0 - - thumb_func_start sub_080752AC -sub_080752AC: @ 0x080752AC - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - bl sub_0806F69C - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _080752D0 - adds r0, r5, #0 - bl sub_080002B8 - cmp r0, #0x29 - beq _080752DC - movs r0, #1 - strb r0, [r4, #0x18] - movs r0, #6 - strb r0, [r4, #0x19] - b _080752DC -_080752D0: - ldrb r0, [r4, #0x19] - subs r0, #1 - strb r0, [r4, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _080752E2 -_080752DC: - ldr r1, _080752E4 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_080752E2: - pop {r4, r5, pc} - .align 2, 0 -_080752E4: .4byte gUnk_02033280 - - thumb_func_start sub_080752E8 -sub_080752E8: @ 0x080752E8 - push {lr} - ldr r3, _080752FC @ =gUnk_0811BCC4 - ldrb r2, [r0, #1] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_080752FC: .4byte gUnk_0811BCC4 - - thumb_func_start sub_08075300 -sub_08075300: @ 0x08075300 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077BD4 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - pop {r4, r5, pc} - - thumb_func_start sub_08075314 -sub_08075314: @ 0x08075314 - push {lr} - ldr r2, _08075330 @ =gUnk_03003F80 - adds r2, #0xa8 - movs r3, #2 - strb r3, [r2] - ldr r3, _08075334 @ =gUnk_0811BD44 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075330: .4byte gUnk_03003F80 -_08075334: .4byte gUnk_0811BD44 - - thumb_func_start sub_08075338 -sub_08075338: @ 0x08075338 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - ldr r4, _0807536C @ =gUnk_03003F80 - ldr r1, [r4, #0x30] - movs r3, #0x80 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08075370 - ldrb r0, [r5, #9] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r5, #9] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - movs r0, #0xc0 - lsls r0, r0, #4 - strh r0, [r4, #8] - movs r0, #0x75 - bl sub_080A3268 - b _080754B4 - .align 2, 0 -_0807536C: .4byte gUnk_03003F80 -_08075370: - ldrb r2, [r4, #2] - cmp r2, #0 - beq _080753DC - movs r6, #7 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #3 - beq _080753E4 - movs r0, #0x78 - ands r0, r2 - cmp r0, #0 - bne _080753E4 - ldr r3, _080753D4 @ =gLinkEntity - ldr r1, [r3, #0x20] - ldr r0, _080753D8 @ =0x00017FFF - cmp r1, r0 - bhi _080753E4 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080753E4 - ldr r0, [r3, #0x34] - cmp r0, #0 - beq _080753E4 - movs r0, #0x20 - orrs r0, r2 - strb r0, [r4, #2] - adds r0, r4, #0 - adds r0, #0xab - strb r6, [r0] - movs r0, #8 - asrs r0, r7 - lsls r1, r0, #4 - orrs r0, r1 - ldrb r1, [r4, #4] - orrs r0, r1 - strb r0, [r4, #4] - adds r0, r5, #0 - bl sub_08077B98 - movs r0, #6 - strb r0, [r5, #4] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08075898 - b _080754B4 - .align 2, 0 -_080753D4: .4byte gLinkEntity -_080753D8: .4byte 0x00017FFF -_080753DC: - ldr r2, _080753F0 @ =gLinkEntity - ldr r0, [r2, #0x34] - cmp r0, #0 - beq _080753F4 -_080753E4: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_080759B8 - b _080754B4 - .align 2, 0 -_080753F0: .4byte gLinkEntity -_080753F4: - movs r6, #0x80 - lsls r6, r6, #0xb - ands r6, r1 - cmp r6, #0 - beq _08075480 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _0807541E - ldr r0, [r4, #0x2c] - cmp r0, #0 - beq _080754B4 - bl sub_0805E7BC - str r6, [r4, #0x2c] - b _080754B4 -_0807541E: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 - movs r3, #8 - adds r1, r3, #0 - asrs r1, r7 - lsls r0, r1, #4 - orrs r0, r1 - ldrb r2, [r4, #4] - orrs r0, r2 - strb r0, [r4, #4] - ldrb r2, [r4, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r4, #0xa] - ldrb r0, [r4, #0xb] - orrs r1, r0 - strb r1, [r4, #0xb] - strb r3, [r5, #4] - movs r0, #0x14 - strb r0, [r5, #7] - movs r0, #6 - strb r0, [r5, #0xf] - ldrb r1, [r5, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #9] - adds r1, r4, #0 - adds r1, #0xab - movs r0, #2 - strb r0, [r1] - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x14 - orrs r0, r1 - str r0, [r4, #0x30] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r5, #0 - bl sub_08077DF4 - movs r0, #0x77 - bl sub_080A3268 - b _080754B4 -_08075480: - ldrb r1, [r4, #0x1b] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08075492 - strb r6, [r4, #0x1b] - adds r0, r2, #0 - bl sub_0806F948 -_08075492: - ldr r1, [r4, #0x2c] - cmp r1, #0 - beq _080754A6 - ldrb r0, [r1, #9] - cmp r0, #1 - beq _080754A6 - adds r0, r1, #0 - bl sub_0805E7BC - str r6, [r4, #0x2c] -_080754A6: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 -_080754B4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080754B8 -sub_080754B8: @ 0x080754B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r7, _080754D4 @ =gUnk_03003F80 - ldrb r1, [r7, #0x1b] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080754D8 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075694 - b _0807557E - .align 2, 0 -_080754D4: .4byte gUnk_03003F80 -_080754D8: - ldrb r0, [r7, #4] - cmp r0, #0 - beq _08075576 - adds r0, r4, #0 - bl sub_08077E24 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080754F2 - ldrb r1, [r4, #9] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #9] -_080754F2: - ldr r0, _0807552C @ =gLinkEntity - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075538 - bl sub_0807B014 - adds r5, r0, #0 - cmp r5, #0 - beq _08075538 - movs r0, #8 - movs r1, #0xf - movs r2, #2 - bl sub_0805EB00 - cmp r0, #0 - bne _08075538 - adds r0, r4, #0 - movs r1, #0xf - bl sub_08077C3C - cmp r5, #0xf - bne _08075530 - adds r1, r7, #0 - adds r1, #0xab - movs r0, #5 - b _08075536 - .align 2, 0 -_0807552C: .4byte gLinkEntity -_08075530: - adds r1, r7, #0 - adds r1, #0xab - movs r0, #8 -_08075536: - strb r0, [r1] -_08075538: - ldrb r1, [r4, #0xe] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807557E - ldr r1, _08075568 @ =gUnk_03003F80 - ldr r0, [r1, #0x30] - ands r0, r2 - cmp r0, #0 - bne _0807555C - adds r0, r1, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807556C -_0807555C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _0807557E - .align 2, 0 -_08075568: .4byte gUnk_03003F80 -_0807556C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075580 - b _0807557E -_08075576: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_0807557E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08075580 -sub_08075580: @ 0x08075580 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _080755E6 - ldr r2, _080755C8 @ =gUnk_03003F80 - ldrb r3, [r2, #2] - cmp r3, #0 - bne _080755E6 - movs r1, #8 - asrs r1, r5 - ldrb r0, [r2, #0xa] - bics r0, r1 - strb r0, [r2, #0xa] - movs r0, #1 - strb r0, [r2, #0x1b] - ldr r0, [r2, #0x2c] - adds r0, #0x40 - movs r1, #0xd - strb r1, [r0] - strb r3, [r4, #0xf] - movs r0, #2 - strb r0, [r4, #4] - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080755CC - movs r0, #0x28 - b _080755CE - .align 2, 0 -_080755C8: .4byte gUnk_03003F80 -_080755CC: - movs r0, #0x50 -_080755CE: - strb r0, [r4, #7] - movs r1, #0xb4 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #0x43 - movs r1, #0 - movs r2, #0 - bl sub_080A2960 - b _080755EE -_080755E6: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 -_080755EE: - pop {r4, r5, pc} - - thumb_func_start sub_080755F0 -sub_080755F0: @ 0x080755F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08075642 - adds r0, r4, #0 - bl sub_08077EC8 - cmp r0, #0 - bne _0807564A - ldr r2, _08075634 @ =gUnk_03003F80 - ldrb r3, [r2, #0x1b] - ldrb r0, [r2, #4] - orrs r0, r3 - cmp r0, #0 - beq _08075638 - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807564A - movs r0, #3 - strb r0, [r4, #4] - ldrb r0, [r4, #9] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - movs r0, #0x20 - orrs r0, r3 - strb r0, [r2, #0x1b] - b _0807564A - .align 2, 0 -_08075634: .4byte gUnk_03003F80 -_08075638: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 - b _0807564A -_08075642: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 -_0807564A: - pop {r4, r5, pc} - - thumb_func_start sub_0807564C -sub_0807564C: @ 0x0807564C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075668 @ =gUnk_03003F80 - ldrb r1, [r5, #0x1b] - ldrb r0, [r5, #4] - orrs r0, r1 - cmp r0, #0 - bne _0807566C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _08075692 - .align 2, 0 -_08075668: .4byte gUnk_03003F80 -_0807566C: - adds r0, r4, #0 - bl sub_08077EC8 - cmp r0, #0 - bne _08075692 - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _0807568A - ldrb r1, [r5, #0x1b] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075692 -_0807568A: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075694 -_08075692: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08075694 -sub_08075694: @ 0x08075694 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r3, #1 - strb r3, [r4, #7] - ldr r2, _080756C4 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r1 - cmp r0, #0 - beq _080756D0 - ldr r0, _080756C8 @ =0xF7FFFFFF - ands r1, r0 - ldr r0, _080756CC @ =0xFFFBFFFF - ands r1, r0 - str r1, [r2, #0x30] - movs r1, #0x96 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 - b _080756E0 - .align 2, 0 -_080756C4: .4byte gUnk_03003F80 -_080756C8: .4byte 0xF7FFFFFF -_080756CC: .4byte 0xFFFBFFFF -_080756D0: - adds r0, r2, #0 - adds r0, #0xab - strb r3, [r0] - movs r1, #0x92 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_080756E0: - ldr r2, _08075730 @ =gUnk_03003F80 - movs r0, #8 - asrs r0, r5 - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - movs r0, #4 - strb r0, [r4, #4] - movs r0, #6 - strb r0, [r4, #0xf] - ldr r0, _08075734 @ =gLinkEntity - adds r0, #0x40 - movs r1, #0x1e - strb r1, [r0] - ldrb r1, [r2, #0x1b] - movs r0, #0x40 - orrs r0, r1 - movs r1, #0xdf - ands r0, r1 - strb r0, [r2, #0x1b] - adds r3, r2, #0 - adds r3, #0xa0 - ldrb r0, [r3] - cmp r0, #4 - bne _08075726 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08075726 - movs r0, #1 - strb r0, [r3] - bl sub_0807A108 -_08075726: - movs r0, #0x76 - bl sub_080A3268 - pop {r4, r5, pc} - .align 2, 0 -_08075730: .4byte gUnk_03003F80 -_08075734: .4byte gLinkEntity - - thumb_func_start sub_08075738 -sub_08075738: @ 0x08075738 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075750 @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - bne _08075754 - adds r0, r4, #0 - bl sub_080759B8 - b _0807588C - .align 2, 0 -_08075750: .4byte gUnk_03003F80 -_08075754: - adds r0, r4, #0 - bl sub_08077E24 - adds r0, r4, #0 - bl sub_08077F10 - cmp r0, #0 - beq _08075768 - movs r0, #2 - strb r0, [r4, #7] -_08075768: - ldrb r2, [r5, #0x1b] - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _080757D4 - ldrb r1, [r5, #0xd] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08075780 - strb r1, [r4, #0xb] -_08075780: - ldr r1, _080757D0 @ =gLinkEntity - ldrb r0, [r4, #0xb] - strb r0, [r1, #0x15] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1, #0x24] - ldrb r1, [r4, #0xe] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807588C - movs r2, #0xa - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080757AA - movs r2, #0xf -_080757AA: - ldrb r0, [r4, #8] - adds r0, #1 - strb r0, [r4, #8] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r2, r0 - bls _080757C6 - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - ands r0, r1 - cmp r0, #0 - bne _0807588C -_080757C6: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _0807588C - .align 2, 0 -_080757D0: .4byte gLinkEntity -_080757D4: - ldr r7, _08075890 @ =gLinkEntity - adds r0, r7, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075816 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08075816 - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075816 - adds r0, r4, #0 - movs r1, #0x14 - bl sub_08077C3C - adds r2, r0, #0 - cmp r2, #0 - beq _08075816 - ldrb r0, [r7, #0x14] - movs r1, #6 - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x14] -_08075816: - ldr r5, _08075890 @ =gLinkEntity - adds r0, r5, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807587A - ldr r2, _08075894 @ =gUnk_03003F80 - ldrb r3, [r2, #0x1b] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - bne _0807587A - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0807587A - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807587A - movs r0, #0x10 - orrs r0, r3 - strb r0, [r2, #0x1b] - adds r1, r2, #0 - adds r1, #0xab - movs r0, #6 - strb r0, [r1] - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0xb] - movs r0, #1 - strb r0, [r4, #7] - strb r0, [r4, #8] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r2, #0xa] - bics r0, r1 - strb r0, [r2, #0xa] - movs r1, #0x94 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_0807587A: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807588C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_0807588C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075890: .4byte gLinkEntity -_08075894: .4byte gUnk_03003F80 - - thumb_func_start sub_08075898 -sub_08075898: @ 0x08075898 - push {lr} - adds r2, r0, #0 - ldr r0, _080758AC @ =gUnk_03003F80 - ldrb r0, [r0, #4] - cmp r0, #0 - bne _080758AA - adds r0, r2, #0 - bl sub_080759B8 -_080758AA: - pop {pc} - .align 2, 0 -_080758AC: .4byte gUnk_03003F80 - - thumb_func_start sub_080758B0 -sub_080758B0: @ 0x080758B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080758C4 @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - bne _080758C8 - adds r0, r4, #0 - bl sub_080759B8 - b _080758F8 - .align 2, 0 -_080758C4: .4byte gUnk_03003F80 -_080758C8: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080758F8 - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r1, [r5, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080758EA - movs r0, #3 - b _080758EC -_080758EA: - movs r0, #5 -_080758EC: - strb r0, [r4, #4] - ldr r2, _080758FC @ =gUnk_03003F80 - ldrb r1, [r2, #0x1b] - movs r0, #0xf7 - ands r0, r1 - strb r0, [r2, #0x1b] -_080758F8: - pop {r4, r5, pc} - .align 2, 0 -_080758FC: .4byte gUnk_03003F80 - - thumb_func_start sub_08075900 -sub_08075900: @ 0x08075900 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075920 @ =gUnk_03003F80 - ldrb r0, [r5, #0x12] - cmp r0, #0x11 - bne _08075928 - ldr r0, [r5, #0x30] - ldr r1, _08075924 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _080759B2 - .align 2, 0 -_08075920: .4byte gUnk_03003F80 -_08075924: .4byte 0xFFFBFFFF -_08075928: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r5, #0x1b] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08075948 - movs r0, #0xa0 - strb r0, [r5, #0x1b] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0807564C - b _080759B2 -_08075948: - ldrb r0, [r4, #7] - cmp r0, #0 - beq _08075998 - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08075962 - movs r1, #0x9a - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_08075962: - ldr r4, _08075990 @ =gLinkEntity - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - bl sub_08079E08 - ldr r0, _08075994 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _080759B2 - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - b _080759B2 - .align 2, 0 -_08075990: .4byte gLinkEntity -_08075994: .4byte gUnk_030010A0 -_08075998: - ldrb r1, [r4, #0xe] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080759B2 - ldr r0, [r5, #0x30] - ldr r1, _080759B4 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_080759B2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080759B4: .4byte 0xFFFBFFFF - - thumb_func_start sub_080759B8 -sub_080759B8: @ 0x080759B8 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldr r2, _080759E8 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _080759D0 - ldr r0, _080759EC @ =gLinkEntity - adds r0, #0x40 - strb r1, [r0] -_080759D0: - ldr r0, [r2, #0x30] - ldr r1, _080759F0 @ =0xF7FFFFFF - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #0 - strb r0, [r2, #0x1b] - str r0, [r2, #0x2c] - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08077E78 - pop {r4, pc} - .align 2, 0 -_080759E8: .4byte gUnk_03003F80 -_080759EC: .4byte gLinkEntity -_080759F0: .4byte 0xF7FFFFFF - - thumb_func_start sub_080759F4 -sub_080759F4: @ 0x080759F4 - push {lr} - ldr r3, _08075A08 @ =gUnk_0811BD68 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075A08: .4byte gUnk_0811BD68 - - thumb_func_start sub_08075A0C -sub_08075A0C: @ 0x08075A0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #1] - bl sub_0805436C - adds r6, r0, #0 - ldr r1, _08075A64 @ =gUnk_03003F80 - ldrb r0, [r1, #5] - cmp r0, #0 - bne _08075A3E - ldrb r0, [r1, #0xc] - cmp r0, #0x18 - beq _08075A3E - ldrb r0, [r1, #2] - cmp r0, #0 - bne _08075A3E - ldr r0, [r1, #0x2c] - cmp r0, #0 - bne _08075A3E - ldr r0, [r1, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075A6C -_08075A3E: - movs r0, #0xf - adds r1, r6, #0 - bl sub_08054414 - ldr r0, _08075A64 @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - ldr r2, _08075A68 @ =0xFF7FFFFF - ands r1, r2 - str r1, [r0, #0x30] - movs r0, #0xf - adds r1, r6, #0 - bl sub_08054414 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - b _08075AD0 - .align 2, 0 -_08075A64: .4byte gUnk_03003F80 -_08075A68: .4byte 0xFF7FFFFF -_08075A6C: - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r0, r4, #0 - bl sub_08077BD4 - ldr r5, _08075AD4 @ =gLinkEntity - adds r0, r5, #0 - bl sub_0806F948 - movs r0, #0x10 - strb r0, [r4, #1] - adds r1, r6, #0 - bl sub_08054414 - ldrb r1, [r5, #0x14] - movs r0, #6 - ands r0, r1 - ldr r1, _08075AD8 @ =gUnk_08126EEC - adds r4, r0, r1 - adds r0, r5, #0 - movs r1, #0x45 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _08075AD0 - adds r0, r5, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x60 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_08075AD0: - pop {r4, r5, r6, pc} - .align 2, 0 -_08075AD4: .4byte gLinkEntity -_08075AD8: .4byte gUnk_08126EEC - - thumb_func_start sub_08075ADC -sub_08075ADC: @ 0x08075ADC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075B44 @ =gUnk_03003F80 - ldr r0, [r2, #0x2c] - cmp r0, #0 - bne _08075B08 - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075B08 - ldr r0, [r2, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08075B08 - bl sub_08079D48 - cmp r0, #0 - bne _08075B4C -_08075B08: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - ldr r3, _08075B44 @ =gUnk_03003F80 - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - orrs r0, r1 - str r0, [r3, #0x30] - movs r2, #8 - asrs r2, r5 - lsls r1, r2, #4 - orrs r1, r2 - ldrb r0, [r3, #4] - bics r0, r1 - strb r0, [r3, #4] - mvns r2, r2 - ldrb r1, [r3, #0xa] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - ands r2, r0 - strb r2, [r3, #0xb] - ldr r0, _08075B48 @ =0x0000013D - bl sub_080A3268 - b _08075B52 - .align 2, 0 -_08075B44: .4byte gUnk_03003F80 -_08075B48: .4byte 0x0000013D -_08075B4C: - adds r0, r4, #0 - bl sub_08077E24 -_08075B52: - pop {r4, r5, pc} - - thumb_func_start sub_08075B54 -sub_08075B54: @ 0x08075B54 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - mov sb, r1 - ldr r5, _08075BB0 @ =gUnk_03003F80 - ldr r0, [r5, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08075B70 - b _08075C80 -_08075B70: - ldrb r0, [r6, #1] - bl sub_0805436C - adds r4, r0, #0 - adds r0, r6, #0 - bl sub_08077F10 - cmp r0, #0 - bne _08075B86 - cmp r4, #1 - bls _08075BB8 -_08075B86: - ldrb r0, [r5, #2] - cmp r0, #0 - bne _08075BB8 - movs r0, #0xf - adds r1, r4, #0 - bl sub_08054414 - ldr r0, [r5, #0x30] - ldr r1, _08075BB4 @ =0xFF7FFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r6, #0 - mov r1, sb - bl sub_08077E78 - movs r0, #0x9f - lsls r0, r0, #1 - bl sub_080A3268 - b _08075C80 - .align 2, 0 -_08075BB0: .4byte gUnk_03003F80 -_08075BB4: .4byte 0xFF7FFFFF -_08075BB8: - ldr r0, _08075C88 @ =gUnk_03003F80 - mov r8, r0 - ldrb r0, [r0, #0xc] - cmp r0, #0x18 - beq _08075C80 - ldr r5, _08075C8C @ =gLinkEntity - ldrb r0, [r5, #0x1e] - cmp r0, #0x36 - bhi _08075C80 - ldrh r1, [r5, #0x12] - cmp r1, #6 - bne _08075C80 - ldrb r0, [r5, #0x14] - ands r1, r0 - ldr r0, _08075C90 @ =gUnk_08126EEC - adds r7, r1, r0 - mov r1, r8 - ldrb r0, [r1, #2] - cmp r0, #0 - bne _08075C80 - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r1, #0 - ldrsb r1, [r7, r1] - adds r0, r0, r1 - ldr r4, _08075C94 @ =gUnk_03000BF0 - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r2, #0x32 - ldrsh r1, [r5, r2] - movs r2, #1 - ldrsb r2, [r7, r2] - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x40 - bl sub_080002F0 - cmp r0, #0 - beq _08075C80 - movs r0, #0xf - strb r0, [r6, #0xf] - ldrb r0, [r6, #4] - adds r0, #1 - strb r0, [r6, #4] - adds r1, r5, #0 - adds r1, #0x7a - movs r0, #2 - strh r0, [r1] - adds r0, r5, #0 - movs r1, #0x45 - movs r2, #1 - movs r3, #0 - bl sub_080A2988 - adds r2, r0, #0 - cmp r2, #0 - beq _08075C60 - adds r0, r5, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x60 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r7, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r7, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_08075C60: - ldr r1, _08075C98 @ =0x0000060C - adds r0, r6, #0 - bl sub_08077DF4 - movs r1, #8 - mov r2, sb - asrs r1, r2 - mov r0, r8 - ldrb r2, [r0, #0xa] - adds r0, r1, #0 - orrs r0, r2 - mov r2, r8 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - orrs r1, r0 - strb r1, [r2, #0xb] -_08075C80: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075C88: .4byte gUnk_03003F80 -_08075C8C: .4byte gLinkEntity -_08075C90: .4byte gUnk_08126EEC -_08075C94: .4byte gUnk_03000BF0 -_08075C98: .4byte 0x0000060C - - thumb_func_start sub_08075C9C -sub_08075C9C: @ 0x08075C9C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08075CCA - ldr r0, _08075CF8 @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r2, #6 - ands r2, r1 - ldr r1, _08075CFC @ =gUnk_08126EEC - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - bl sub_0807AB44 -_08075CCA: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075D04 - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #4] - subs r0, #1 - strb r0, [r4, #4] - ldr r2, _08075D00 @ =gUnk_03003F80 - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r3, [r2, #0xa] - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - ands r1, r0 - strb r1, [r2, #0xb] - b _08075D0E - .align 2, 0 -_08075CF8: .4byte gLinkEntity -_08075CFC: .4byte gUnk_08126EEC -_08075D00: .4byte gUnk_03003F80 -_08075D04: - ldr r1, _08075D10 @ =gLinkEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_08075D0E: - pop {r4, r5, pc} - .align 2, 0 -_08075D10: .4byte gLinkEntity - - thumb_func_start sub_08075D14 -sub_08075D14: @ 0x08075D14 - push {lr} - ldr r3, _08075D28 @ =gUnk_0811BD78 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075D28: .4byte gUnk_0811BD78 - - thumb_func_start sub_08075D2C -sub_08075D2C: @ 0x08075D2C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075D74 @ =gUnk_03003F80 - ldrb r1, [r5, #4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08075D7C - ldrb r1, [r4, #1] - adds r0, r4, #0 - bl sub_08077C94 - cmp r0, #0 - bne _08075D7C - ldrb r1, [r4, #9] - movs r0, #0xf - orrs r0, r1 - strb r0, [r4, #9] - ldr r0, _08075D78 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - movs r1, #0xb - bl sub_08077C0C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077D38 - ldrb r1, [r5, #4] - movs r0, #8 - orrs r0, r1 - strb r0, [r5, #4] - b _08075D84 - .align 2, 0 -_08075D74: .4byte gUnk_03003F80 -_08075D78: .4byte gLinkEntity -_08075D7C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08075D84: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08075D88 -sub_08075D88: @ 0x08075D88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075DBC @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08075DD0 - ldrb r0, [r4, #1] - cmp r0, #0xc - bne _08075DC0 - ldrb r1, [r2, #0xa] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08075DC0 - ldrb r1, [r4, #0xe] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08075DC0 - bl sub_08078F60 - b _08075DD8 - .align 2, 0 -_08075DBC: .4byte gUnk_03003F80 -_08075DC0: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075DD8 -_08075DD0: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075DD8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08075DDC -sub_08075DDC: @ 0x08075DDC - push {lr} - ldr r3, _08075DF0 @ =gUnk_0811BD80 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075DF0: .4byte gUnk_0811BD80 - - thumb_func_start sub_08075DF4 -sub_08075DF4: @ 0x08075DF4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r6, _08075E2C @ =gUnk_03003F80 - ldrb r1, [r6, #4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08075E34 - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - ldr r0, _08075E30 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - bl sub_08077BB8 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r1, r6, #0 - adds r1, #0x21 - movs r0, #1 - strb r0, [r1] - b _08075E3C - .align 2, 0 -_08075E2C: .4byte gUnk_03003F80 -_08075E30: .4byte gLinkEntity -_08075E34: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075E3C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08075E40 -sub_08075E40: @ 0x08075E40 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - ldr r0, _08075EA0 @ =gUnk_03003F80 - adds r1, r0, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r6, r0, #0 - cmp r1, #0 - beq _08075EA8 - ldrb r1, [r6, #4] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne _08075EA8 - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08075EB8 - movs r0, #2 - strb r0, [r4, #4] - ldrb r1, [r4, #9] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #9] - ldr r0, _08075EA4 @ =gUnk_02002A40 - adds r0, #0xad - ldrb r0, [r0] - cmp r0, #0 - beq _08075EB8 - strb r7, [r4, #0xf] - movs r1, #8 - mov r0, r8 - asrs r1, r0 - ldrb r0, [r6, #0xa] - bics r0, r1 - strb r0, [r6, #0xa] - b _08075EB8 - .align 2, 0 -_08075EA0: .4byte gUnk_03003F80 -_08075EA4: .4byte gUnk_02002A40 -_08075EA8: - adds r1, r6, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - mov r1, r8 - bl sub_08077E78 -_08075EB8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08075EC0 -sub_08075EC0: @ 0x08075EC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, _08075F04 @ =gUnk_02002A40 - adds r0, #0xad - ldrb r5, [r0] - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08075F0C - cmp r5, #0 - beq _08075F0C - ldr r2, _08075F08 @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075EF0 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _08075F32 -_08075EF0: - adds r1, r2, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - b _08075F32 - .align 2, 0 -_08075F04: .4byte gUnk_02002A40 -_08075F08: .4byte gUnk_03003F80 -_08075F0C: - ldr r2, _08075F34 @ =gUnk_03003F80 - movs r0, #8 - asrs r0, r6 - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - movs r1, #0x9f - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - movs r1, #0xf - movs r0, #0xf - strb r0, [r4, #0xf] - ldrb r0, [r4, #9] - orrs r1, r0 - strb r1, [r4, #9] - movs r0, #3 - strb r0, [r4, #4] -_08075F32: - pop {r4, r5, r6, pc} - .align 2, 0 -_08075F34: .4byte gUnk_03003F80 - - thumb_func_start sub_08075F38 -sub_08075F38: @ 0x08075F38 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldr r2, _08075F6C @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075F70 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08075F70 - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075F80 - movs r0, #4 - strb r0, [r4, #4] - b _08075F80 - .align 2, 0 -_08075F6C: .4byte gUnk_03003F80 -_08075F70: - adds r1, r2, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08077E78 -_08075F80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08075F84 -sub_08075F84: @ 0x08075F84 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075FB4 @ =gUnk_03003F80 - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075FC8 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08075FC8 - movs r0, #0x70 - bl sub_0807CA84 - cmp r0, #1 - bne _08075FB8 - adds r0, r4, #0 - movs r1, #5 - bl sub_08077E3C - b _08075FBE - .align 2, 0 -_08075FB4: .4byte gUnk_03003F80 -_08075FB8: - adds r0, r4, #0 - bl sub_08077E24 -_08075FBE: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075FD8 -_08075FC8: - ldr r0, _08075FDC @ =gUnk_03003F80 - adds r0, #0x21 - movs r1, #0 - strb r1, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075FD8: - pop {r4, r5, pc} - .align 2, 0 -_08075FDC: .4byte gUnk_03003F80 - - thumb_func_start sub_08075FE0 -sub_08075FE0: @ 0x08075FE0 - push {lr} - ldr r3, _08075FF4 @ =gUnk_0811BD98 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075FF4: .4byte gUnk_0811BD98 - - thumb_func_start sub_08075FF8 -sub_08075FF8: @ 0x08075FF8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - ldr r0, _08076018 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - ldrb r0, [r0, #4] - orrs r0, r1 - cmp r0, #0 - bne _08076076 - movs r5, #0 - movs r0, #8 - movs r1, #2 - movs r2, #2 - bl sub_0805EB00 - b _08076026 - .align 2, 0 -_08076018: .4byte gUnk_03003F80 -_0807601C: - adds r5, #1 - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EB64 -_08076026: - adds r4, r0, #0 - cmp r4, #0 - bne _0807601C - ldrb r0, [r6, #1] - movs r1, #1 - cmp r0, #7 - bne _08076036 - movs r1, #3 -_08076036: - cmp r1, r5 - bls _08076076 - adds r0, r6, #0 - movs r1, #2 - bl sub_08077C3C - adds r4, r0, #0 - cmp r4, #0 - beq _08076076 - ldr r0, _08076080 @ =gLinkEntity - ldrb r2, [r0, #0x14] - movs r1, #6 - ands r1, r2 - ldr r2, _08076084 @ =gUnk_0811BDAC - adds r1, r1, r2 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r4, #0 - bl sub_0806FA48 - movs r0, #1 - rsbs r0, r0, #0 - bl sub_080542F4 - movs r0, #0x82 - lsls r0, r0, #1 - bl sub_080A3268 -_08076076: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08077E78 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076080: .4byte gLinkEntity -_08076084: .4byte gUnk_0811BDAC - - thumb_func_start sub_08076088 -sub_08076088: @ 0x08076088 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r3, r1, #0 - adds r5, r2, #0 - cmp r3, #0 - beq _080760AA - ldrb r0, [r3, #0x16] - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080760A4 - b _080761A0 -_080760A4: - movs r0, #2 - strb r0, [r3, #0xc] - strb r1, [r3, #0xd] -_080760AA: - str r3, [r4, #0x18] - ldr r0, _080760C4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080760CC - ldr r1, _080760C8 @ =0x00000928 - adds r0, r4, #0 - bl sub_08077DF4 - b _080760D6 - .align 2, 0 -_080760C4: .4byte gUnk_03003F80 -_080760C8: .4byte 0x00000928 -_080760CC: - movs r1, #0xce - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 -_080760D6: - ldr r3, _08076130 @ =gUnk_03003F80 - movs r0, #0 - mov r8, r0 - movs r7, #3 - strb r7, [r3, #5] - adds r0, r3, #0 - adds r0, #0xa8 - movs r6, #4 - strb r6, [r0] - movs r0, #2 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #0xf] - ldr r2, _08076134 @ =gLinkEntity - movs r1, #0x79 - adds r1, r1, r2 - mov ip, r1 - ldrb r1, [r1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076138 - mov r1, r8 - mov r0, ip - strb r1, [r0] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - strb r6, [r3, #5] - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r2, [r3, #0xb] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xb] - ldrb r0, [r3, #0xa] - ands r1, r0 - strb r1, [r3, #0xa] - strb r7, [r4, #4] - mov r0, r8 - strb r0, [r4, #0xf] - b _0807614A - .align 2, 0 -_08076130: .4byte gUnk_03003F80 -_08076134: .4byte gLinkEntity -_08076138: - movs r1, #8 - asrs r1, r5 - ldrb r2, [r3, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - orrs r1, r0 - strb r1, [r3, #0xb] -_0807614A: - adds r0, r4, #0 - movs r1, #0x13 - bl sub_08077C3C - adds r3, r0, #0 - cmp r3, #0 - bne _08076162 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077F50 - b _080761A0 -_08076162: - ldr r1, _08076194 @ =gLinkEntity - str r3, [r1, #0x74] - movs r2, #0 - strb r2, [r1, #0xf] - ldr r0, [r4, #0x18] - str r0, [r3, #0x54] - ldrb r0, [r1, #0x16] - strb r0, [r3, #0x16] - str r4, [r3, #0x50] - str r3, [r4, #0x18] - ldrb r0, [r4, #3] - strb r0, [r3, #0xb] - ldrb r0, [r4, #7] - strb r0, [r3, #0xe] - ldrb r0, [r4, #8] - strb r0, [r3, #0xf] - ldr r0, [r4, #0x18] - ldrb r1, [r0, #0x16] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - bne _08076198 - movs r0, #8 - strb r0, [r4, #7] - b _0807619A - .align 2, 0 -_08076194: .4byte gLinkEntity -_08076198: - strb r2, [r4, #7] -_0807619A: - movs r0, #0x7f - bl sub_080A3268 -_080761A0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080761A8 -sub_080761A8: @ 0x080761A8 - push {lr} - ldr r3, _080761BC @ =gUnk_0811BDB4 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_080761BC: .4byte gUnk_0811BDB4 - - thumb_func_start sub_080761C0 -sub_080761C0: @ 0x080761C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08076220 @ =gUnk_03003F80 - ldrb r0, [r5, #4] - cmp r0, #0 - bne _080762B8 - ldrb r0, [r5, #2] - cmp r0, #0 - beq _080761DE - ldr r0, [r5, #0x30] - ldr r1, _08076224 @ =0x00001201 - ands r0, r1 - cmp r0, #0 - beq _080762B8 -_080761DE: - ldr r1, _08076228 @ =gLinkEntity - ldrb r2, [r1, #0x14] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r5, #1] - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #8 - bgt _080762B8 - bl sub_080789A8 - adds r3, r0, #0 - cmp r3, #1 - beq _08076258 - cmp r3, #1 - blo _0807626E - cmp r3, #2 - bne _080762C0 - ldr r0, _0807622C @ =gUnk_03003BE0 - ldr r2, [r0, #8] - ldrb r1, [r2, #0x16] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08076230 - adds r0, r4, #0 - adds r1, r2, #0 - adds r2, r6, #0 - bl sub_08076088 - b _080762C0 - .align 2, 0 -_08076220: .4byte gUnk_03003F80 -_08076224: .4byte 0x00001201 -_08076228: .4byte gLinkEntity -_0807622C: .4byte gUnk_03003BE0 -_08076230: - str r2, [r4, #0x18] - strb r3, [r2, #0xc] - movs r1, #5 - strb r1, [r2, #0xd] - adds r0, r5, #0 - adds r0, #0xa8 - strb r1, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #2 - adds r3, r6, #0 - bl sub_080762C4 - ldr r0, _08076254 @ =gUnk_0200AF00 - adds r0, #0x2e - movs r1, #8 - strb r1, [r0] - b _08076264 - .align 2, 0 -_08076254: .4byte gUnk_0200AF00 -_08076258: - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - adds r3, r6, #0 - bl sub_080762C4 -_08076264: - movs r0, #0x81 - lsls r0, r0, #1 - bl sub_080A3268 - b _080762C0 -_0807626E: - movs r0, #5 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #7] - movs r0, #6 - strb r0, [r4, #0xf] - movs r3, #8 - adds r1, r3, #0 - asrs r1, r6 - ldrb r2, [r5, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r5, #0xa] - ldrb r0, [r5, #0xb] - orrs r1, r0 - strb r1, [r5, #0xb] - ldr r0, [r5, #0x30] - ands r0, r3 - cmp r0, #0 - bne _080762A2 - movs r1, #0xde - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - b _080762AA -_080762A2: - ldr r1, _080762B4 @ =0x00000948 - adds r0, r4, #0 - bl sub_08077DF4 -_080762AA: - movs r0, #0x88 - bl sub_080A3268 - b _080762C0 - .align 2, 0 -_080762B4: .4byte 0x00000948 -_080762B8: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077F50 -_080762C0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080762C4 -sub_080762C4: @ 0x080762C4 - push {lr} - str r1, [r0, #0x18] - ldr r1, _080762D4 @ =gUnk_03003F80 - strb r2, [r1, #5] - adds r1, r3, #0 - bl sub_08077D38 - pop {pc} - .align 2, 0 -_080762D4: .4byte gUnk_03003F80 - - thumb_func_start sub_080762D8 -sub_080762D8: @ 0x080762D8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, _08076334 @ =gUnk_03003F80 - ldrb r0, [r4, #5] - movs r1, #0xcf - ands r1, r0 - strb r1, [r4, #5] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F64 - cmp r0, #0 - bne _080762F6 - b _08076486 -_080762F6: - ldr r0, _08076338 @ =gLinkEntity - adds r1, r0, #0 - adds r1, #0x3d - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r3, r0, #0 - cmp r1, #8 - bgt _0807636C - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0807636C - ldr r2, [r5, #0x18] - cmp r2, #0 - beq _08076340 - ldrh r1, [r2, #0xc] - ldr r0, _0807633C @ =0x00000502 - cmp r1, r0 - bne _08076376 - adds r0, r4, #0 - adds r0, #0x90 - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076340 - movs r0, #6 - strb r0, [r2, #0xd] - b _08076376 - .align 2, 0 -_08076334: .4byte gUnk_03003F80 -_08076338: .4byte gLinkEntity -_0807633C: .4byte 0x00000502 -_08076340: - ldr r2, _08076364 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #5 - strb r0, [r1] - ldr r0, _08076368 @ =gUnk_0200AF00 - adds r0, #0x2e - movs r1, #8 - strb r1, [r0] - ldrb r0, [r2, #2] - cmp r0, #0 - beq _0807635A - b _0807647E -_0807635A: - ldrb r0, [r2, #5] - cmp r0, #1 - bne _08076394 - b _08076380 - .align 2, 0 -_08076364: .4byte gUnk_03003F80 -_08076368: .4byte gUnk_0200AF00 -_0807636C: - ldr r1, [r5, #0x18] - cmp r1, #0 - beq _08076376 - movs r0, #6 - strb r0, [r1, #0xd] -_08076376: - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F50 - b _08076486 -_08076380: - adds r0, r3, #0 - movs r1, #6 - adds r2, r5, #0 - bl sub_0800875A - cmp r0, #0 - beq _08076394 - adds r0, r5, #0 - movs r1, #0 - b _080763EC -_08076394: - ldr r1, _080763F4 @ =gUnk_0811BE38 - ldr r7, _080763F8 @ =gLinkEntity - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - lsls r3, r0, #1 - adds r1, r3, r1 - ldr r4, _080763FC @ =gUnk_03003F80 - adds r2, r4, #0 - adds r2, #0x90 - ldrh r0, [r1] - ldrh r2, [r2] - ands r0, r2 - cmp r0, #0 - beq _08076400 - adds r0, r5, #0 - bl sub_08077E24 - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - movs r1, #0x94 - lsls r1, r1, #4 - cmp r0, #0 - bne _080763C8 - movs r1, #0xd0 - lsls r1, r1, #2 -_080763C8: - ldrh r0, [r5, #0x10] - cmp r1, r0 - beq _080763D4 - adds r0, r5, #0 - bl sub_08077DF4 -_080763D4: - ldrb r0, [r4, #5] - movs r1, #0x10 - orrs r1, r0 - strb r1, [r4, #5] - adds r2, r4, #0 - adds r2, #0xa8 - movs r0, #0x1a - strb r0, [r2] - cmp r1, #1 - beq _08076486 - ldr r1, [r5, #0x18] - adds r0, r5, #0 -_080763EC: - adds r2, r6, #0 - bl sub_08076088 - b _08076486 - .align 2, 0 -_080763F4: .4byte gUnk_0811BE38 -_080763F8: .4byte gLinkEntity -_080763FC: .4byte gUnk_03003F80 -_08076400: - ldr r0, _08076418 @ =gUnk_0811BE40 - adds r0, r3, r0 - ldrh r0, [r0] - ands r0, r2 - cmp r0, #0 - beq _08076460 - ldrb r0, [r7, #0xf] - cmp r0, #5 - bhi _0807641C - adds r0, #1 - strb r0, [r7, #0xf] - b _08076486 - .align 2, 0 -_08076418: .4byte gUnk_0811BE40 -_0807641C: - ldrb r0, [r5, #0xa] - adds r1, r4, #0 - adds r1, #0x35 - strb r0, [r1] - ldrb r0, [r4, #6] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #6] - ldrb r1, [r4, #5] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #5] - adds r1, r4, #0 - adds r1, #0xa8 - movs r0, #0x19 - strb r0, [r1] - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - ldr r1, _0807645C @ =0x0000093C - cmp r0, #0 - bne _0807644C - movs r1, #0xcf - lsls r1, r1, #2 -_0807644C: - ldrh r0, [r5, #0x10] - cmp r1, r0 - bne _08076476 - adds r0, r5, #0 - bl sub_08077E24 - b _08076486 - .align 2, 0 -_0807645C: .4byte 0x0000093C -_08076460: - strb r0, [r7, #0xf] - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08076472 - movs r1, #0xd0 - lsls r1, r1, #2 - b _08076476 -_08076472: - movs r1, #0x94 - lsls r1, r1, #4 -_08076476: - adds r0, r5, #0 - bl sub_08077DF4 - b _08076486 -_0807647E: - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F50 -_08076486: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08076488 -sub_08076488: @ 0x08076488 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #7] - adds r6, r0, #0 - cmp r6, #0 - bne _08076504 - adds r0, r4, #0 - bl sub_08077F64 - cmp r0, #0 - beq _08076508 - ldr r0, [r4, #0x18] - ldrb r1, [r0, #0x16] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - bne _080764B8 - ldr r0, _080764F8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08076510 -_080764B8: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076508 - ldr r2, _080764FC @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldr r2, _08076500 @ =gUnk_03003F80 - movs r0, #4 - strb r0, [r2, #5] - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r3, [r2, #0xb] - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #0xb] - ldrb r0, [r2, #0xa] - ands r1, r0 - strb r1, [r2, #0xa] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - strb r6, [r4, #0xf] - b _08076508 - .align 2, 0 -_080764F8: .4byte gUnk_030010A0 -_080764FC: .4byte gLinkEntity -_08076500: .4byte gUnk_03003F80 -_08076504: - subs r0, #1 - strb r0, [r4, #7] -_08076508: - ldr r0, _08076514 @ =gUnk_03003F80 - adds r0, #0xa8 - movs r1, #4 - strb r1, [r0] -_08076510: - pop {r4, r5, r6, pc} - .align 2, 0 -_08076514: .4byte gUnk_03003F80 - - thumb_func_start sub_08076518 -sub_08076518: @ 0x08076518 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - bl sub_08077F64 - cmp r0, #0 - beq _080765D4 - ldr r5, _0807655C @ =gUnk_03003F80 - adds r1, r5, #0 - adds r1, #0xa8 - movs r0, #4 - strb r0, [r1] - ldrb r1, [r5, #2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080765D4 - ldrb r0, [r5, #0x1f] - cmp r0, #0 - bne _080765D4 - ldr r6, _08076560 @ =gLinkEntity - adds r0, r6, #0 - adds r0, #0x42 - ldrb r7, [r0] - cmp r7, #0 - beq _08076564 - adds r0, r4, #0 - mov r1, r8 - bl sub_08077F50 - b _080765D4 - .align 2, 0 -_0807655C: .4byte gUnk_03003F80 -_08076560: .4byte gLinkEntity -_08076564: - adds r0, r5, #0 - adds r0, #0x92 - ldrh r1, [r0] - ldr r0, _080765B0 @ =0x00008018 - ands r0, r1 - cmp r0, #0 - beq _080765D4 - adds r0, r6, #0 - bl sub_0806F948 - movs r0, #5 - strb r0, [r5, #5] - ldr r1, [r4, #0x18] - movs r0, #2 - strb r0, [r1, #0xd] - ldr r2, [r4, #0x18] - ldrb r1, [r6, #0x14] - movs r0, #0xe - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r2, #0x15] - str r7, [r4, #0x18] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #0xf] - ldr r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080765B4 - movs r1, #0x93 - lsls r1, r1, #4 - adds r0, r4, #0 - bl sub_08077DF4 - b _080765BE - .align 2, 0 -_080765B0: .4byte 0x00008018 -_080765B4: - movs r1, #0xd1 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 -_080765BE: - ldr r2, _080765DC @ =gUnk_03003F80 - movs r1, #8 - mov r0, r8 - asrs r1, r0 - ldrb r3, [r2, #0xa] - adds r0, r1, #0 - orrs r0, r3 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - orrs r1, r0 - strb r1, [r2, #0xb] -_080765D4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080765DC: .4byte gUnk_03003F80 - - thumb_func_start sub_080765E0 -sub_080765E0: @ 0x080765E0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077F64 - cmp r0, #0 - beq _08076608 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076602 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077F50 - b _08076608 -_08076602: - adds r0, r4, #0 - bl sub_08077E24 -_08076608: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_0807660C -sub_0807660C: @ 0x0807660C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0807662C - ldr r0, _0807663C @ =gUnk_03003F80 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0807663A -_0807662C: - ldr r1, _0807663C @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_0807663A: - pop {r4, r5, pc} - .align 2, 0 -_0807663C: .4byte gUnk_03003F80 - - thumb_func_start sub_08076640 -sub_08076640: @ 0x08076640 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _08076654 - adds r0, r3, #0 - bl sub_08076758 - b _08076754 -_08076654: - ldr r0, _080766BC @ =gUnk_03003F80 - ldr r1, [r0, #0x2c] - adds r2, r0, #0 - cmp r1, #0 - bne _0807674C - ldrb r0, [r2, #1] - cmp r0, #0 - beq _080766C4 - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - orrs r0, r1 - cmp r0, #0 - bne _0807674C - ldrb r0, [r2, #0x12] - cmp r0, #0x12 - beq _08076678 - cmp r0, #1 - bne _08076686 -_08076678: - ldr r0, _080766C0 @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - bne _08076686 - ldrb r0, [r2, #0x14] - cmp r0, #0 - beq _0807674C -_08076686: - ldrb r1, [r2, #2] - cmp r1, #0 - beq _08076694 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - bne _08076710 -_08076694: - ldr r5, _080766C0 @ =gLinkEntity - ldr r0, [r5, #0x34] - cmp r0, #0 - blt _0807674C - movs r1, #0 - strb r1, [r2, #1] - ldrb r0, [r3, #4] - adds r0, #1 - strb r0, [r3, #4] - strb r1, [r2, #0xb] - movs r0, #1 - strb r0, [r2, #2] - movs r0, #0xff - strb r0, [r2, #0xe] - str r1, [r2, #0x2c] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - b _0807673C - .align 2, 0 -_080766BC: .4byte gUnk_03003F80 -_080766C0: .4byte gLinkEntity -_080766C4: - ldrb r0, [r2, #0x1b] - ldrb r1, [r2, #0xa] - orrs r0, r1 - ldrb r1, [r2, #4] - orrs r0, r1 - ldrb r1, [r2, #5] - orrs r0, r1 - ldrb r1, [r2, #0x1c] - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x3d - ldrb r1, [r1] - orrs r0, r1 - cmp r0, #0 - bne _0807674C - ldrb r1, [r2, #0x12] - adds r0, r1, #0 - subs r0, #0x12 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080766F4 - cmp r1, #1 - bne _08076702 -_080766F4: - ldr r0, _0807671C @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - bne _08076702 - ldrb r0, [r2, #0x14] - cmp r0, #0 - beq _0807674C -_08076702: - ldrb r1, [r2, #2] - cmp r1, #0 - beq _08076720 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - beq _08076720 -_08076710: - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08076758 - b _08076754 - .align 2, 0 -_0807671C: .4byte gLinkEntity -_08076720: - ldr r1, _08076748 @ =gLinkEntity - ldr r0, [r1, #0x34] - cmp r0, #0 - blt _0807674C - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - movs r1, #0 - movs r0, #1 - strb r0, [r2, #2] - str r1, [r2, #0x2c] - ldrb r0, [r3, #4] - adds r0, #1 - strb r0, [r3, #4] -_0807673C: - bl sub_08077F84 - movs r0, #0x78 - bl sub_080A3268 - b _08076754 - .align 2, 0 -_08076748: .4byte gLinkEntity -_0807674C: - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08077E78 -_08076754: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_08076758 -sub_08076758: @ 0x08076758 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080767C0 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r2, [r5, #2] - movs r0, #0x28 - ands r0, r2 - cmp r0, #0 - bne _080767F8 - cmp r2, #0 - beq _080767F8 - movs r0, #7 - ands r0, r2 - cmp r0, #3 - beq _080767F8 - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _080767D8 - ldrb r0, [r4, #4] - cmp r0, #1 - bhi _080767C8 - ldr r2, _080767C4 @ =gLinkEntity - ldr r0, [r2, #0x20] - cmp r0, #0 - bgt _080767FE - ldrb r3, [r5, #2] - movs r0, #0x10 - ands r0, r3 - cmp r0, #0 - bne _080767FE - movs r0, #2 - strb r0, [r4, #4] - adds r1, r2, #0 - adds r1, #0x7a - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #0x10 - orrs r0, r3 - strb r0, [r5, #2] - movs r0, #0xa2 - lsls r0, r0, #2 - strh r0, [r5, #8] - movs r0, #0xb9 - lsls r0, r0, #1 - bl sub_080A3268 - b _080767FE - .align 2, 0 -_080767C0: .4byte gUnk_03003F80 -_080767C4: .4byte gLinkEntity -_080767C8: - ldr r1, _080767D4 @ =gLinkEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080767FE - .align 2, 0 -_080767D4: .4byte gLinkEntity -_080767D8: - ldrb r0, [r4, #4] - cmp r0, #1 - bls _080767FE - ldr r1, _080767F4 @ =gLinkEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrb r1, [r5, #2] - movs r0, #0xef - ands r0, r1 - strb r0, [r5, #2] - b _080767FE - .align 2, 0 -_080767F4: .4byte gLinkEntity -_080767F8: - adds r0, r4, #0 - bl sub_08077E78 -_080767FE: - pop {r4, r5, pc} - - thumb_func_start sub_08076800 -sub_08076800: @ 0x08076800 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - mov sb, r1 - ldr r4, _0807682C @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - beq _08076834 - ldr r1, _08076830 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #0x1e] - strb r0, [r1, #0xe] - adds r0, r6, #0 - mov r1, sb - bl sub_08077E78 - b _080768EC - .align 2, 0 -_0807682C: .4byte gLinkEntity -_08076830: .4byte gUnk_03003F80 -_08076834: - ldrb r0, [r6, #7] - subs r0, #1 - strb r0, [r6, #7] - movs r1, #7 - mov r8, r1 - ands r0, r1 - cmp r0, #0 - bne _0807684A - movs r0, #0x7d - bl sub_080A3268 -_0807684A: - ldr r2, _08076880 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080768DA - ldrb r1, [r6, #7] - mov r0, r8 - ands r0, r1 - cmp r0, #0 - bne _080768DA - ldrb r0, [r2, #0x12] - cmp r0, #0x11 - bne _08076884 - adds r0, r4, #0 - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080768DA - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFX - b _080768DA - .align 2, 0 -_08076880: .4byte gUnk_03003F80 -_08076884: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFX - adds r5, r0, #0 - cmp r5, #0 - beq _080768DA - ldrh r0, [r5, #0x32] - adds r0, #2 - strh r0, [r5, #0x32] - ldrb r0, [r6, #4] - cmp r0, #2 - beq _080768DA - bl sub_08000E50 - adds r4, r0, #0 - movs r0, #3 - ands r4, r0 - bl sub_08000E50 - movs r7, #1 - ands r0, r7 - cmp r0, #0 - beq _080768B8 - rsbs r4, r4, #0 -_080768B8: - ldrh r0, [r5, #0x32] - adds r0, r0, r4 - strh r0, [r5, #0x32] - bl sub_08000E50 - adds r4, r0, #0 - mov r0, r8 - ands r4, r0 - bl sub_08000E50 - ands r0, r7 - cmp r0, #0 - beq _080768D4 - rsbs r4, r4, #0 -_080768D4: - ldrh r0, [r5, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] -_080768DA: - ldr r0, _080768F4 @ =gUnk_0811BDCC - ldrb r1, [r6, #4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - adds r0, r6, #0 - mov r1, sb - bl _call_via_r2 -_080768EC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080768F4: .4byte gUnk_0811BDCC - - thumb_func_start sub_080768F8 -sub_080768F8: @ 0x080768F8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r3, _08076934 @ =gUnk_03003F80 - ldrb r1, [r3, #0x1c] - ldrb r0, [r3, #4] - orrs r1, r0 - ldrb r0, [r3, #5] - orrs r1, r0 - ldrb r0, [r3, #2] - orrs r1, r0 - ldr r2, [r3, #0x30] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r2 - orrs r1, r0 - cmp r1, #0 - bne _08076954 - movs r0, #1 - strb r0, [r3, #0x1e] - adds r0, r3, #0 - adds r0, #0x21 - strb r1, [r0] - movs r0, #0x80 - ands r2, r0 - cmp r2, #0 - bne _08076938 - movs r0, #0x10 - strb r0, [r4, #7] - b _0807693C - .align 2, 0 -_08076934: .4byte gUnk_03003F80 -_08076938: - ldr r0, _08076950 @ =0x00000C14 - strh r0, [r3, #8] -_0807693C: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08076964 - b _08076962 - .align 2, 0 -_08076950: .4byte 0x00000C14 -_08076954: - movs r0, #0 - strb r0, [r3, #0x1e] - strb r0, [r3, #0xe] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08076962: - pop {r4, r5, pc} - - thumb_func_start sub_08076964 -sub_08076964: @ 0x08076964 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - bl sub_08077EFC - cmp r0, #0 - bne _08076978 - b _08076A70 -_08076978: - ldr r0, _080769C4 @ =gLinkEntity - ldr r7, [r0, #0x34] - cmp r7, #0 - bne _08076A70 - ldr r5, _080769C8 @ =gUnk_03003F80 - ldrb r0, [r5, #0x1e] - cmp r0, #0 - beq _08076A70 - adds r0, r4, #0 - bl sub_08077E24 - ldr r0, [r5, #0x30] - movs r1, #0x80 - mov r8, r1 - ands r0, r1 - cmp r0, #0 - bne _080769A0 - adds r0, r4, #0 - bl sub_08077E24 -_080769A0: - ldrb r0, [r5, #0x1e] - adds r0, #1 - strb r0, [r5, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bne _08076A7E - ldr r0, [r5, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080769CC - strb r7, [r5, #0x1e] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - b _08076A7E - .align 2, 0 -_080769C4: .4byte gLinkEntity -_080769C8: .4byte gUnk_03003F80 -_080769CC: - movs r0, #0x40 - strb r0, [r5, #0x1e] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r5, #0xa] - bics r0, r1 - strb r0, [r5, #0xa] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - bl sub_0807A158 - cmp r0, #0 - beq _08076A46 - ldr r0, [r5, #0x30] - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _08076A60 - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08076A46 - adds r0, r5, #0 - adds r0, #0xab - movs r1, #3 - strb r1, [r0] - movs r1, #0xa6 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - adds r0, r4, #0 - movs r1, #0xc - bl sub_08077C3C - adds r5, r0, #0 - cmp r5, #0 - beq _08076A70 - ldr r6, _08076A34 @ =gUnk_02002A40 - adds r4, r6, #0 - adds r4, #0xb4 - ldrb r0, [r4] - bl sub_0805449C - cmp r0, #0 - beq _08076A38 - ldrb r1, [r4] - b _08076A3E - .align 2, 0 -_08076A34: .4byte gUnk_02002A40 -_08076A38: - adds r0, r6, #0 - adds r0, #0xb5 - ldrb r1, [r0] -_08076A3E: - adds r0, r5, #0 - adds r0, #0x68 - strb r1, [r0] - b _08076A7E -_08076A46: - ldr r0, _08076A5C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076A60 - adds r1, #0x84 - adds r0, r4, #0 - bl sub_08077DF4 - b _08076A7E - .align 2, 0 -_08076A5C: .4byte gUnk_03003F80 -_08076A60: - ldr r1, _08076A6C @ =gUnk_03003F80 - movs r0, #0xc1 - lsls r0, r0, #4 - strh r0, [r1, #8] - b _08076A7E - .align 2, 0 -_08076A6C: .4byte gUnk_03003F80 -_08076A70: - ldr r1, _08076A84 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #0x1e] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076A7E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076A84: .4byte gUnk_03003F80 - - thumb_func_start sub_08076A88 -sub_08076A88: @ 0x08076A88 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08076B64 - ldr r1, _08076AB4 @ =gUnk_03003F80 - ldrb r0, [r1, #0x1e] - adds r3, r1, #0 - cmp r0, #0 - beq _08076B64 - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076ABC - ldr r1, _08076AB8 @ =gLinkEntity - movs r0, #0xc0 - lsls r0, r0, #2 - b _08076AC2 - .align 2, 0 -_08076AB4: .4byte gUnk_03003F80 -_08076AB8: .4byte gLinkEntity -_08076ABC: - ldr r1, _08076B00 @ =gLinkEntity - movs r0, #0xa0 - lsls r0, r0, #2 -_08076AC2: - strh r0, [r1, #0x24] - adds r5, r1, #0 - ldr r1, _08076B04 @ =gUnk_0800275C - ldrb r2, [r5, #0x14] - movs r6, #0xe - adds r0, r6, #0 - ands r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r0, [r5, #0x2a] - ands r0, r1 - cmp r1, r0 - bne _08076B0E - ldrb r0, [r4, #8] - cmp r0, #0 - beq _08076B08 - movs r2, #0 - movs r0, #6 - strb r0, [r5, #0xc] - strb r2, [r5, #0xd] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r3, #0 - adds r0, #0x38 - strb r2, [r0] - movs r0, #0xff - strb r0, [r3, #0xd] - b _08076B72 - .align 2, 0 -_08076B00: .4byte gLinkEntity -_08076B04: .4byte gUnk_0800275C -_08076B08: - movs r0, #1 - strb r0, [r4, #8] - b _08076B72 -_08076B0E: - ldr r1, _08076B60 @ =gUnk_0811BE38 - movs r0, #0xfe - ands r0, r2 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x90 - ldrh r2, [r0] - ldrh r0, [r1] - ands r0, r2 - cmp r0, #0 - bne _08076B64 - ldrb r0, [r4, #0xa] - adds r1, r6, #0 - ands r1, r0 - lsls r0, r1, #2 - strb r0, [r4, #0xb] - ldrb r2, [r3, #0xd] - cmp r2, #0xff - beq _08076B52 - cmp r2, r0 - beq _08076B52 - adds r0, r2, #0 - ldrb r1, [r4, #0xb] - subs r0, r0, r1 - movs r2, #0x1f - ands r0, r2 - cmp r0, #0xf - bgt _08076B4A - adds r0, r1, #2 - strb r0, [r4, #0xb] -_08076B4A: - ldrb r0, [r4, #0xb] - subs r0, #1 - ands r0, r2 - strb r0, [r4, #0xb] -_08076B52: - ldrb r0, [r4, #0xb] - strb r0, [r3, #0xd] - adds r0, r4, #0 - bl sub_08077E24 - b _08076B72 - .align 2, 0 -_08076B60: .4byte gUnk_0811BE38 -_08076B64: - ldr r1, _08076B74 @ =gUnk_03003F80 - movs r0, #0 - strb r0, [r1, #0x1e] - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_08077E78 -_08076B72: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076B74: .4byte gUnk_03003F80 - - thumb_func_start sub_08076B78 -sub_08076B78: @ 0x08076B78 - push {lr} - ldr r3, _08076B94 @ =gUnk_0811BDD8 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - ldr r1, _08076B98 @ =gLinkEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - pop {pc} - .align 2, 0 -_08076B94: .4byte gUnk_0811BDD8 -_08076B98: .4byte gLinkEntity - - thumb_func_start sub_08076B9C -sub_08076B9C: @ 0x08076B9C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r3, _08076BB4 @ =gUnk_03003F80 - ldrb r0, [r3, #0xc] - cmp r0, #0x18 - bne _08076BB8 - adds r0, r4, #0 - bl sub_08077E78 - b _08076C1C - .align 2, 0 -_08076BB4: .4byte gUnk_03003F80 -_08076BB8: - ldrb r1, [r4, #9] - movs r0, #0xf - orrs r0, r1 - strb r0, [r4, #9] - ldr r1, _08076C20 @ =gLinkEntity - movs r0, #4 - strb r0, [r1, #0x14] - ldrb r2, [r1, #0x18] - subs r0, #0x45 - ands r0, r2 - strb r0, [r1, #0x18] - ldrb r2, [r1, #0x10] - movs r0, #0x7f - ands r0, r2 - strb r0, [r1, #0x10] - adds r1, #0x7a - movs r0, #2 - strh r0, [r1] - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x15 - orrs r0, r1 - str r0, [r3, #0x30] - adds r1, r3, #0 - adds r1, #0x27 - movs r0, #0xff - strb r0, [r1] - ldr r1, _08076C24 @ =gUnk_02034490 - movs r0, #1 - strb r0, [r1] - movs r1, #8 - asrs r1, r5 - ldrb r2, [r3, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - orrs r1, r0 - strb r1, [r3, #0xb] - bl sub_08078F60 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - ldr r0, _08076C28 @ =0x00000216 - bl sub_080A3268 - bl sub_0805E544 -_08076C1C: - pop {r4, r5, pc} - .align 2, 0 -_08076C20: .4byte gLinkEntity -_08076C24: .4byte gUnk_02034490 -_08076C28: .4byte 0x00000216 - - thumb_func_start sub_08076C2C -sub_08076C2C: @ 0x08076C2C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - bl sub_08077E24 - ldrb r1, [r5, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076C6E - ldr r0, _08076C70 @ =gLinkEntity - ldrb r2, [r0, #0x10] - movs r4, #0 - movs r1, #0x80 - orrs r1, r2 - strb r1, [r0, #0x10] - ldr r2, _08076C74 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - ldr r3, _08076C78 @ =0xEFFFFFFF - ands r1, r3 - str r1, [r2, #0x30] - adds r2, #0x27 - strb r4, [r2] - ldr r1, _08076C7C @ =gUnk_02034490 - strb r4, [r1] - bl sub_0809D700 - bl sub_0805E564 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076C6E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08076C70: .4byte gLinkEntity -_08076C74: .4byte gUnk_03003F80 -_08076C78: .4byte 0xEFFFFFFF -_08076C7C: .4byte gUnk_02034490 - - thumb_func_start sub_08076C80 -sub_08076C80: @ 0x08076C80 - push {lr} - ldr r3, _08076C94 @ =gUnk_0811BDE0 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08076C94: .4byte gUnk_0811BDE0 - - thumb_func_start sub_08076C98 -sub_08076C98: @ 0x08076C98 - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #9] - movs r0, #0xf - orrs r0, r2 - strb r0, [r4, #9] - adds r0, r4, #0 - bl sub_08077D38 - ldr r0, _08076CB8 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - bl sub_08077BB8 - pop {r4, pc} - .align 2, 0 -_08076CB8: .4byte gLinkEntity - - thumb_func_start sub_08076CBC -sub_08076CBC: @ 0x08076CBC - push {r4, lr} - adds r4, r0, #0 - ldrb r2, [r4, #0xe] - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - beq _08076CD2 - adds r0, r4, #0 - bl sub_08077E78 - b _08076CE8 -_08076CD2: - movs r0, #0x40 - ands r0, r2 - cmp r0, #0 - beq _08076CE2 - adds r0, r4, #0 - movs r1, #0x12 - bl sub_08077C3C -_08076CE2: - adds r0, r4, #0 - bl sub_08077E24 -_08076CE8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08076CEC -sub_08076CEC: @ 0x08076CEC - push {lr} - ldr r3, _08076D00 @ =gUnk_0811BDE8 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08076D00: .4byte gUnk_0811BDE8 - - thumb_func_start sub_08076D04 -sub_08076D04: @ 0x08076D04 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r1, _08076D2C @ =gUnk_03003F80 - movs r0, #0x81 - strb r0, [r1, #3] - movs r0, #2 - strb r0, [r4, #9] - ldr r0, _08076D30 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r0, r4, #0 - bl sub_08077BB8 - pop {r4, r5, pc} - .align 2, 0 -_08076D2C: .4byte gUnk_03003F80 -_08076D30: .4byte gLinkEntity - - thumb_func_start sub_08076D34 -sub_08076D34: @ 0x08076D34 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - bl sub_08077EFC - adds r1, r0, #0 - cmp r1, #0 - beq _08076D80 - ldr r5, _08076D78 @ =gUnk_03003F80 - ldrb r0, [r5, #3] - movs r1, #1 - orrs r1, r0 - strb r1, [r5, #3] - adds r0, r4, #0 - bl sub_08077E24 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _08076D8C - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - movs r0, #0 - strb r0, [r4, #0xf] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r5, #0xa] - bics r0, r1 - strb r0, [r5, #0xa] - ldr r0, _08076D7C @ =0x0000015D - bl sub_080A3268 - b _08076D8C - .align 2, 0 -_08076D78: .4byte gUnk_03003F80 -_08076D7C: .4byte 0x0000015D -_08076D80: - ldr r0, _08076D90 @ =gUnk_03003F80 - strb r1, [r0, #3] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076D8C: - pop {r4, r5, r6, pc} - .align 2, 0 -_08076D90: .4byte gUnk_03003F80 - - thumb_func_start sub_08076D94 -sub_08076D94: @ 0x08076D94 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077EFC - adds r1, r0, #0 - cmp r1, #0 - beq _08076DBC - ldr r2, _08076DB8 @ =gUnk_03003F80 - ldrb r1, [r2, #3] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #3] - adds r0, r4, #0 - bl sub_08077E24 - b _08076DC8 - .align 2, 0 -_08076DB8: .4byte gUnk_03003F80 -_08076DBC: - ldr r0, _08076DCC @ =gUnk_03003F80 - strb r1, [r0, #3] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08076DC8: - pop {r4, r5, pc} - .align 2, 0 -_08076DCC: .4byte gUnk_03003F80 - - thumb_func_start sub_08076DD0 -sub_08076DD0: @ 0x08076DD0 - push {lr} - ldr r2, _08076DEC @ =gUnk_03003F80 - adds r2, #0xa8 - movs r3, #3 - strb r3, [r2] - ldr r3, _08076DF0 @ =gUnk_0811BDF4 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08076DEC: .4byte gUnk_03003F80 -_08076DF0: .4byte gUnk_0811BDF4 - - thumb_func_start sub_08076DF4 -sub_08076DF4: @ 0x08076DF4 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r7, r1, #0 - ldr r0, _08076E48 @ =gLinkEntity - mov r8, r0 - bl sub_0807A894 - cmp r0, #0x29 - beq _08076E50 - ldr r6, _08076E4C @ =gUnk_03003F80 - ldrb r0, [r6, #0x12] - cmp r0, #0x12 - beq _08076E50 - cmp r0, #0x13 - beq _08076E50 - ldrb r5, [r6, #2] - cmp r5, #0 - bne _08076E50 - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_08077D38 - strb r5, [r4, #7] - mov r1, r8 - ldrb r0, [r1, #0x14] - strb r0, [r4, #0xa] - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - adds r0, #1 - strb r0, [r4, #9] - movs r0, #1 - strb r0, [r6, #0x1d] - mov r1, r8 - str r5, [r1, #0x74] - strb r0, [r6, #0x1c] - adds r0, r4, #0 - bl sub_08077BB8 - b _08076E58 - .align 2, 0 -_08076E48: .4byte gLinkEntity -_08076E4C: .4byte gUnk_03003F80 -_08076E50: - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_08077E78 -_08076E58: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08076E60 -sub_08076E60: @ 0x08076E60 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08076EB4 @ =gUnk_03003F80 - ldrb r1, [r5, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08076E7A - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076E7A: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076EC0 - movs r0, #2 - strb r0, [r4, #4] - ldr r1, _08076EB8 @ =0x00000504 - adds r0, r4, #0 - bl sub_08077DF4 - movs r1, #8 - asrs r1, r6 - ldrb r0, [r5, #0xa] - bics r0, r1 - strb r0, [r5, #0xa] - movs r0, #0x10 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08077CB8 - adds r1, r0, #0 - cmp r1, #0 - beq _08076EC6 - ldr r0, _08076EBC @ =gLinkEntity - str r0, [r1, #0x50] - b _08076EC6 - .align 2, 0 -_08076EB4: .4byte gUnk_03003F80 -_08076EB8: .4byte 0x00000504 -_08076EBC: .4byte gLinkEntity -_08076EC0: - adds r0, r4, #0 - bl sub_08077E24 -_08076EC6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08076EC8 -sub_08076EC8: @ 0x08076EC8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08076EE4 @ =gUnk_03003F80 - ldrb r1, [r5, #0x1c] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08076EE8 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - b _08076F60 - .align 2, 0 -_08076EE4: .4byte gUnk_03003F80 -_08076EE8: - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08076F50 - ldrb r0, [r4, #7] - cmp r0, #0xef - bls _08076EFC - movs r0, #3 - b _08076F0E -_08076EFC: - adds r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x77 - bls _08076F0C - movs r0, #2 - b _08076F0E -_08076F0C: - movs r0, #1 -_08076F0E: - strb r0, [r5, #0x1d] - ldr r0, _08076F1C @ =gLinkEntity - ldrb r0, [r0, #0xd] - cmp r0, #0x1b - bne _08076F24 - ldr r1, _08076F20 @ =0x00000524 - b _08076F36 - .align 2, 0 -_08076F1C: .4byte gLinkEntity -_08076F20: .4byte 0x00000524 -_08076F24: - ldr r0, _08076F44 @ =gUnk_03003F80 - ldrb r1, [r0, #0xd] - movs r0, #0x80 - ands r0, r1 - movs r1, #0xa3 - lsls r1, r1, #3 - cmp r0, #0 - beq _08076F36 - subs r1, #0x14 -_08076F36: - ldrh r0, [r4, #0x10] - cmp r1, r0 - beq _08076F48 - adds r0, r4, #0 - bl sub_08077DF4 - b _08076F60 - .align 2, 0 -_08076F44: .4byte gUnk_03003F80 -_08076F48: - adds r0, r4, #0 - bl sub_08077E24 - b _08076F60 -_08076F50: - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - movs r0, #8 - asrs r0, r6 - ldrb r1, [r5, #0xa] - orrs r0, r1 - strb r0, [r5, #0xa] -_08076F60: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08076F64 -sub_08076F64: @ 0x08076F64 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r1, _08076F84 @ =gUnk_03003F80 - ldrb r0, [r1, #0x1c] - movs r2, #0xf - ands r2, r0 - adds r3, r1, #0 - cmp r2, #7 - bls _08076F7A - b _080770EC -_08076F7A: - lsls r0, r2, #2 - ldr r1, _08076F88 @ =_08076F8C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08076F84: .4byte gUnk_03003F80 -_08076F88: .4byte _08076F8C -_08076F8C: @ jump table - .4byte _08077100 @ case 0 - .4byte _080770EC @ case 1 - .4byte _080770EC @ case 2 - .4byte _0807704C @ case 3 - .4byte _08077052 @ case 4 - .4byte _08076FAC @ case 5 - .4byte _080770B8 @ case 6 - .4byte _080770D0 @ case 7 -_08076FAC: - ldrb r1, [r4, #0xe] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _0807700E - ldrb r0, [r4, #8] - cmp r0, #0 - beq _08077004 - movs r0, #0 - strb r0, [r4, #8] - strb r0, [r4, #7] - movs r1, #1 - strb r1, [r3, #0x1d] - ldr r5, _08076FFC @ =gLinkEntity - str r0, [r5, #0x74] - strb r1, [r3, #0x1c] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r3, #0xa] - bics r0, r1 - strb r0, [r3, #0xa] - movs r0, #2 - strb r0, [r4, #4] - ldr r1, _08077000 @ =0x00000504 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #0x10 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_08077CB8 - cmp r0, #0 - bne _08076FF6 - b _08077110 -_08076FF6: - str r5, [r0, #0x50] - b _08077110 - .align 2, 0 -_08076FFC: .4byte gLinkEntity -_08077000: .4byte 0x00000504 -_08077004: - movs r0, #6 - strb r0, [r3, #0x1c] - movs r1, #0xa2 - lsls r1, r1, #3 - b _080770F2 -_0807700E: - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _0807701C - movs r0, #1 - strb r0, [r4, #8] -_0807701C: - adds r0, r4, #0 - bl sub_08077E24 - ldr r0, _08077044 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08077110 - ldr r0, _08077048 @ =gLinkEntity - ldrb r1, [r0, #0x14] - lsls r1, r1, #2 - movs r2, #0x10 - eors r1, r2 - strb r1, [r0, #0x15] - strh r5, [r0, #0x24] - bl sub_08079E08 - b _08077110 - .align 2, 0 -_08077044: .4byte gUnk_03003F80 -_08077048: .4byte gLinkEntity -_0807704C: - ldr r1, _080770B0 @ =gUnk_03003F80 - movs r0, #4 - strb r0, [r1, #0x1c] -_08077052: - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08077060 - movs r0, #1 - strb r0, [r4, #8] -_08077060: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807708C - ldr r1, _080770B0 @ =gUnk_03003F80 - movs r2, #0 - movs r0, #5 - strb r0, [r1, #0x1c] - ldr r0, _080770B4 @ =gLinkEntity - str r2, [r0, #0x70] - ldrb r0, [r1, #0x1d] - cmp r0, #0 - beq _0807708C - movs r0, #0x11 - movs r1, #0 - movs r3, #0 - bl sub_08077CB8 -_0807708C: - ldr r0, _080770B0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - bne _08077110 - ldr r2, _080770B4 @ =gLinkEntity - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - strb r0, [r2, #0x15] - movs r0, #0x80 - strh r0, [r2, #0x24] - bl sub_08079E08 - b _08077110 - .align 2, 0 -_080770B0: .4byte gUnk_03003F80 -_080770B4: .4byte gLinkEntity -_080770B8: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077110 - ldr r3, _080770CC @ =gUnk_03003F80 - b _08077100 - .align 2, 0 -_080770CC: .4byte gUnk_03003F80 -_080770D0: - ldr r1, _080770E4 @ =0x00000514 - adds r0, r4, #0 - bl sub_08077DF4 - ldr r1, _080770E8 @ =gUnk_03003F80 - movs r2, #0 - movs r0, #3 - strb r0, [r1, #0x1c] - strb r2, [r1, #0x1d] - b _08077110 - .align 2, 0 -_080770E4: .4byte 0x00000514 -_080770E8: .4byte gUnk_03003F80 -_080770EC: - movs r0, #3 - strb r0, [r3, #0x1c] - ldr r1, _080770FC @ =0x00000514 -_080770F2: - adds r0, r4, #0 - bl sub_08077DF4 - b _08077110 - .align 2, 0 -_080770FC: .4byte 0x00000514 -_08077100: - movs r1, #0 - strb r1, [r3, #0x1c] - ldr r0, _08077114 @ =gLinkEntity - str r1, [r0, #0x70] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08077110: - pop {r4, r5, r6, pc} - .align 2, 0 -_08077114: .4byte gLinkEntity - - thumb_func_start sub_08077118 -sub_08077118: @ 0x08077118 - push {lr} - ldr r3, _0807712C @ =gUnk_0811BE04 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_0807712C: .4byte gUnk_0811BE04 - - thumb_func_start sub_08077130 -sub_08077130: @ 0x08077130 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _0807718C @ =gUnk_03003F80 - ldrb r0, [r5, #2] - cmp r0, #0 - bne _080771B6 - adds r0, r4, #0 - bl sub_08077D38 - adds r0, r5, #0 - adds r0, #0x3d - movs r6, #1 - strb r6, [r0] - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - bl sub_080774A0 - adds r5, r0, #0 - cmp r5, #0 - beq _080771A8 - ldrb r0, [r4, #7] - cmp r0, #0 - bne _080771C4 - ldr r1, _08077190 @ =0x0000050C - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #2 - strb r0, [r4, #4] - cmp r5, #0x56 - bne _080771C4 - ldr r2, _08077194 @ =gLinkEntity - ldrb r1, [r2, #0x14] - ands r0, r1 - cmp r0, #0 - beq _08077198 - ldrh r0, [r2, #0x32] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strh r1, [r2, #0x32] - b _080771C4 - .align 2, 0 -_0807718C: .4byte gUnk_03003F80 -_08077190: .4byte 0x0000050C -_08077194: .4byte gLinkEntity -_08077198: - ldrh r0, [r2, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strh r1, [r2, #0x2e] - b _080771C4 -_080771A8: - movs r1, #0xa1 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08077DF4 - strb r6, [r4, #4] - b _080771C4 -_080771B6: - adds r0, r4, #0 - bl sub_08077E78 - adds r1, r5, #0 - adds r1, #0x3d - movs r0, #0 - strb r0, [r1] -_080771C4: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080771C8 -sub_080771C8: @ 0x080771C8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080771F4 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - ldr r0, _080771F0 @ =gUnk_03003F80 - adds r0, #0x3d - movs r1, #0 - strb r1, [r0] - b _080772A4 - .align 2, 0 -_080771F0: .4byte gUnk_03003F80 -_080771F4: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0807720E - ldrb r0, [r4, #8] - cmp r0, #0xff - bne _0807720E - ldr r0, _08077240 @ =gLinkEntity - ldrb r2, [r4, #0xe] - movs r1, #0x1e - movs r3, #1 - bl sub_080A2988 -_0807720E: - ldrb r1, [r4, #0xe] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _080772A4 - ldr r5, _08077240 @ =gLinkEntity - adds r0, r5, #0 - movs r1, #0xd - adds r2, r4, #0 - bl sub_0800875A - cmp r0, #0 - bne _08077248 - movs r1, #0xa4 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #3 - strb r0, [r4, #4] - ldr r0, _08077244 @ =0x00000107 - bl sub_080A3268 - b _080772A4 - .align 2, 0 -_08077240: .4byte gLinkEntity -_08077244: .4byte 0x00000107 -_08077248: - ldrb r0, [r4, #8] - cmp r0, #0xff - beq _0807728C - ldrb r3, [r4, #3] - adds r0, r5, #0 - movs r1, #0x1f - movs r2, #0 - bl sub_080A2988 - adds r3, r0, #0 - cmp r3, #0 - beq _0807729C - ldrb r0, [r4, #7] - movs r2, #0 - strb r0, [r3, #0xe] - ldrb r0, [r4, #8] - strb r0, [r3, #0xf] - ldrb r1, [r5, #0x14] - movs r0, #6 - ands r0, r1 - strb r0, [r3, #0x14] - adds r0, r5, #0 - adds r0, #0x5a - strb r2, [r0] - ldr r1, _08077288 @ =gUnk_0811BE14 - ldrb r0, [r4, #8] - adds r0, r0, r1 - ldrb r1, [r0] - adds r0, r5, #0 - adds r0, #0x59 - strb r1, [r0] - b _0807729C - .align 2, 0 -_08077288: .4byte gUnk_0811BE14 -_0807728C: - ldrb r0, [r4, #3] - cmp r0, #0xf - bne _0807729C - ldrb r0, [r4, #7] - cmp r0, #0x17 - bne _0807729C - movs r0, #0 - strb r0, [r4, #8] -_0807729C: - movs r0, #0x84 - lsls r0, r0, #1 - bl sub_080A3268 -_080772A4: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start sub_080772A8 -sub_080772A8: @ 0x080772A8 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldrb r1, [r4, #0xe] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _080772C6 - adds r0, r4, #0 - bl sub_08077F10 - cmp r0, #0 - beq _080772C6 - movs r0, #1 - strb r0, [r4, #7] -_080772C6: - movs r0, #0x71 - bl sub_0807CA84 - cmp r0, #1 - bne _08077318 - ldrb r1, [r4, #0xe] - movs r5, #7 - adds r0, r5, #0 - ands r0, r1 - cmp r0, #3 - beq _08077300 - adds r0, r4, #0 - movs r1, #2 - bl sub_08077E3C - ldr r3, _080772F8 @ =gLinkEntity - ldr r2, _080772FC @ =gUnk_0811BE16 - ldrb r1, [r4, #0xe] - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - lsls r0, r0, #1 - b _0807732E - .align 2, 0 -_080772F8: .4byte gLinkEntity -_080772FC: .4byte gUnk_0811BE16 -_08077300: - adds r0, r4, #0 - bl sub_08077E24 - ldr r3, _08077310 @ =gLinkEntity - ldr r2, _08077314 @ =gUnk_0811BE16 - ldrb r1, [r4, #0xe] - adds r0, r5, #0 - b _08077326 - .align 2, 0 -_08077310: .4byte gLinkEntity -_08077314: .4byte gUnk_0811BE16 -_08077318: - adds r0, r4, #0 - bl sub_08077E24 - ldr r3, _0807736C @ =gLinkEntity - ldr r2, _08077370 @ =gUnk_0811BE16 - ldrb r1, [r4, #0xe] - movs r0, #7 -_08077326: - ands r0, r1 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] -_0807732E: - strh r0, [r3, #0x24] - ldr r5, _0807736C @ =gLinkEntity - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r5, #0x15] - movs r1, #0x24 - ldrsh r0, [r5, r1] - cmp r0, #0 - beq _08077344 - bl sub_08079E08 -_08077344: - ldrb r1, [r4, #0xe] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807738C - ldrb r0, [r4, #7] - cmp r0, #0 - beq _08077374 - adds r0, r5, #0 - adds r0, #0x59 - movs r1, #1 - strb r1, [r0] - bl sub_080774A0 - cmp r0, #0 - beq _08077374 - movs r0, #0 - strb r0, [r4, #7] - b _0807743E - .align 2, 0 -_0807736C: .4byte gLinkEntity -_08077370: .4byte gUnk_0811BE16 -_08077374: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - ldr r0, _08077388 @ =gUnk_03003F80 - adds r0, #0x3d - movs r1, #0 - strb r1, [r0] - b _0807743E - .align 2, 0 -_08077388: .4byte gUnk_03003F80 -_0807738C: - movs r0, #0x60 - ands r0, r1 - cmp r0, #0 - beq _0807743E - adds r0, r5, #0 - adds r0, #0x59 - movs r6, #1 - strb r6, [r0] - adds r0, r5, #0 - bl sub_0807B5B0 - cmp r0, #0 - beq _080773BC - movs r0, #0x84 - lsls r0, r0, #1 - bl sub_080A3268 - ldrb r2, [r4, #0xe] - adds r0, r5, #0 - movs r1, #0x1e - movs r3, #0 - bl sub_080A2988 - b _0807743E -_080773BC: - ldr r1, _08077440 @ =0x0000051C - adds r0, r4, #0 - bl sub_08077DF4 - adds r0, r5, #0 - movs r1, #0x1d - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _080773F6 - ldrb r0, [r4, #0xa] - strb r0, [r3, #0x14] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - 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] -_080773F6: - adds r0, r5, #0 - movs r1, #0x1d - movs r2, #0 - bl CreateFX - adds r3, r0, #0 - cmp r3, #0 - beq _08077432 - ldrb r0, [r4, #0xa] - strb r0, [r3, #0x14] - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - movs r0, #0x29 - adds r0, r0, r3 - mov ip, r0 - movs r0, #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] - strb r6, [r3, #0xf] -_08077432: - movs r0, #3 - strb r0, [r4, #4] - strb r6, [r4, #5] - ldr r0, _08077444 @ =0x00000119 - bl sub_080A3268 -_0807743E: - pop {r4, r5, r6, pc} - .align 2, 0 -_08077440: .4byte 0x0000051C -_08077444: .4byte 0x00000119 - - thumb_func_start sub_08077448 -sub_08077448: @ 0x08077448 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08077498 @ =gLinkEntity - ldrb r0, [r2, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - strb r0, [r2, #0x15] - movs r0, #0x80 - lsls r0, r0, #1 - strh r0, [r2, #0x24] - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08077474 - ldrb r0, [r4, #5] - cmp r0, #0 - beq _08077474 - bl sub_08079E08 -_08077474: - adds r0, r4, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077494 - ldr r0, _0807749C @ =gUnk_03003F80 - adds r0, #0x3d - movs r1, #0 - strb r1, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08077494: - pop {r4, r5, pc} - .align 2, 0 -_08077498: .4byte gLinkEntity -_0807749C: .4byte gUnk_03003F80 - - thumb_func_start sub_080774A0 -sub_080774A0: @ 0x080774A0 - push {r4, r5, r6, r7, lr} - ldr r3, _080774FC @ =gLinkEntity - movs r0, #0x2e - ldrsh r2, [r3, r0] - ldr r5, _08077500 @ =gUnk_0811BE1E - ldrb r0, [r3, #0x14] - movs r1, #6 - ands r1, r0 - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r2, r2, r0 - ldr r4, _08077504 @ =gUnk_03000BF0 - ldrh r0, [r4, #6] - subs r2, r2, r0 - asrs r6, r2, #4 - movs r2, #0x3f - ands r6, r2 - movs r7, #0x32 - ldrsh r0, [r3, r7] - adds r1, #1 - adds r1, r1, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r2 - lsls r0, r0, #6 - orrs r6, r0 - adds r4, r3, #0 - adds r4, #0x38 - ldrb r1, [r4] - adds r0, r6, #0 - bl sub_080002E0 - cmp r0, #0x16 - bhi _080774F6 - cmp r0, #0xe - bhi _08077508 -_080774F6: - movs r0, #0 - b _0807751A - .align 2, 0 -_080774FC: .4byte gLinkEntity -_08077500: .4byte gUnk_0811BE1E -_08077504: .4byte gUnk_03000BF0 -_08077508: - adds r0, r6, #0 - ldrb r1, [r4] - bl sub_080002C8 - cmp r0, #0x56 - bne _08077518 - movs r0, #0x56 - b _0807751A -_08077518: - movs r0, #1 -_0807751A: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807751C -sub_0807751C: @ 0x0807751C - push {lr} - ldr r3, _08077530 @ =gUnk_0811BE28 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08077530: .4byte gUnk_0811BE28 - - thumb_func_start sub_08077534 -sub_08077534: @ 0x08077534 - push {r4, lr} - adds r4, r0, #0 - bl sub_08077D38 - ldr r0, _08077570 @ =gLinkEntity - bl sub_0806F948 - adds r0, r4, #0 - bl sub_08077BB8 - ldrb r1, [r4, #9] - movs r0, #0xf - orrs r0, r1 - strb r0, [r4, #9] - ldrb r1, [r4, #1] - ldr r0, _08077574 @ =gUnk_02002A40 - adds r0, r0, r1 - adds r0, #0x9a - ldrb r0, [r0] - strb r0, [r4, #7] - ldrb r0, [r4, #7] - subs r0, #0x20 - cmp r0, #0x11 - bhi _080775F8 - lsls r0, r0, #2 - ldr r1, _08077578 @ =_0807757C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08077570: .4byte gLinkEntity -_08077574: .4byte gUnk_02002A40 -_08077578: .4byte _0807757C -_0807757C: @ jump table - .4byte _080775C4 @ case 0 - .4byte _080775D4 @ case 1 - .4byte _080775D4 @ case 2 - .4byte _080775D4 @ case 3 - .4byte _080775D4 @ case 4 - .4byte _080775D4 @ case 5 - .4byte _080775F8 @ case 6 - .4byte _080775F8 @ case 7 - .4byte _080775F8 @ case 8 - .4byte _080775D4 @ case 9 - .4byte _080775D4 @ case 10 - .4byte _080775D4 @ case 11 - .4byte _080775D4 @ case 12 - .4byte _080775D4 @ case 13 - .4byte _080775D4 @ case 14 - .4byte _080775F8 @ case 15 - .4byte _080775F8 @ case 16 - .4byte _080775F8 @ case 17 -_080775C4: - ldr r1, _080775D0 @ =0x00000614 - adds r0, r4, #0 - bl sub_08077DF4 - b _08077610 - .align 2, 0 -_080775D0: .4byte 0x00000614 -_080775D4: - movs r0, #3 - strb r0, [r4, #4] - ldr r1, _080775F0 @ =gLinkEntity - movs r0, #4 - strb r0, [r1, #0x14] - ldrb r2, [r1, #0x18] - subs r0, #0x45 - ands r0, r2 - strb r0, [r1, #0x18] - ldr r1, _080775F4 @ =0x000002DF - adds r0, r4, #0 - bl sub_08077DF4 - b _08077606 - .align 2, 0 -_080775F0: .4byte gLinkEntity -_080775F4: .4byte 0x000002DF -_080775F8: - movs r0, #3 - strb r0, [r4, #4] - movs r1, #0xc2 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08077DF4 -_08077606: - ldr r2, _08077614 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] -_08077610: - pop {r4, pc} - .align 2, 0 -_08077614: .4byte gLinkEntity - - thumb_func_start sub_08077618 -sub_08077618: @ 0x08077618 - push {r4, lr} - adds r4, r0, #0 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077638 - movs r1, #0xc3 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08077DF4 - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - b _0807763E -_08077638: - adds r0, r4, #0 - bl sub_08077E24 -_0807763E: - pop {r4, pc} - - thumb_func_start sub_08077640 -sub_08077640: @ 0x08077640 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077666 - ldr r2, _08077668 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08077666: - pop {r4, r5, pc} - .align 2, 0 -_08077668: .4byte gLinkEntity - - thumb_func_start sub_0807766C -sub_0807766C: @ 0x0807766C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077E24 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08077692 - ldr r2, _08077694 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08077692: - pop {r4, r5, pc} - .align 2, 0 -_08077694: .4byte gLinkEntity - - thumb_func_start sub_08077698 -sub_08077698: @ 0x08077698 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r2, _0807771C @ =gUnk_03003F80 - ldrb r1, [r2, #3] - movs r0, #0xfe - ands r0, r1 - strb r0, [r2, #3] - ldrb r1, [r2, #4] - movs r0, #0xf - ands r0, r1 - strb r0, [r2, #4] - ldrb r0, [r2, #7] - ldrb r3, [r2, #2] - orrs r0, r3 - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08077700 - movs r0, #0x40 - ands r0, r3 - cmp r0, #0 - bne _08077700 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08077700 - adds r0, r4, #0 - bl sub_08077758 - cmp r0, #0 - beq _08077700 - bl sub_080777A0 - cmp r0, #0 - bne _08077700 - ldr r4, _08077720 @ =gUnk_02002A40 - adds r0, r4, #0 - adds r0, #0xb4 - ldrb r0, [r0] - movs r1, #1 - movs r2, #0 - bl sub_08077880 - adds r4, #0xb5 - ldrb r0, [r4] - movs r1, #2 - movs r2, #0 - bl sub_08077880 - bl sub_080778CC -_08077700: - movs r5, #0 - ldr r4, _08077724 @ =gUnk_03000B80 -_08077704: - ldrb r0, [r4, #9] - cmp r0, #0 - beq _08077712 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080752E8 -_08077712: - adds r4, #0x1c - adds r5, #1 - cmp r5, #3 - bls _08077704 - pop {r4, r5, pc} - .align 2, 0 -_0807771C: .4byte gUnk_03003F80 -_08077720: .4byte gUnk_02002A40 -_08077724: .4byte gUnk_03000B80 - - thumb_func_start sub_08077728 -sub_08077728: @ 0x08077728 - push {lr} - cmp r0, #0 - bne _08077744 - ldr r0, _08077740 @ =gUnk_02002A40 - adds r0, #0xb4 - ldrb r0, [r0] - movs r1, #1 - movs r2, #1 - bl sub_08077880 - b _08077752 - .align 2, 0 -_08077740: .4byte gUnk_02002A40 -_08077744: - ldr r0, _08077754 @ =gUnk_02002A40 - adds r0, #0xb5 - ldrb r0, [r0] - movs r1, #2 - movs r2, #1 - bl sub_08077880 -_08077752: - pop {pc} - .align 2, 0 -_08077754: .4byte gUnk_02002A40 - - thumb_func_start sub_08077758 -sub_08077758: @ 0x08077758 - push {lr} - adds r3, r0, #0 - ldr r2, _08077794 @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0807779C - movs r0, #0xd5 - lsls r0, r0, #4 - ands r1, r0 - cmp r1, #0 - bne _08077798 - ldrb r0, [r2, #0x1e] - ldrb r1, [r2, #0x1a] - orrs r1, r0 - adds r0, r3, #0 - adds r0, #0x7a - ldrh r0, [r0] - orrs r1, r0 - cmp r1, #0 - bne _0807779C - adds r0, r3, #0 - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0807779C - movs r0, #1 - b _0807779E - .align 2, 0 -_08077794: .4byte gUnk_03003F80 -_08077798: - bl sub_0807A108 -_0807779C: - movs r0, #0 -_0807779E: - pop {pc} - - thumb_func_start sub_080777A0 -sub_080777A0: @ 0x080777A0 - push {r4, lr} - ldr r3, _080777D0 @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r4, #0x80 - adds r0, r4, #0 - ands r0, r1 - cmp r0, #0 - beq _08077870 - ldr r1, [r3, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xf - ands r0, r1 - cmp r0, #0 - beq _080777D4 - adds r1, r3, #0 - adds r1, #0xa0 - movs r0, #1 - strb r0, [r1] - bl sub_0807A108 -_080777CC: - movs r0, #1 - b _0807787C - .align 2, 0 -_080777D0: .4byte gUnk_03003F80 -_080777D4: - ldr r2, _080777F4 @ =gUnk_02033A90 - ldrb r0, [r2, #0x18] - cmp r0, #2 - beq _080777FC - cmp r0, #3 - beq _08077810 - ldr r0, _080777F8 @ =gUnk_0200AF00 - adds r0, #0x2c - ldrb r0, [r0] - cmp r0, #0xc - bne _0807787A - adds r2, r3, #0 - ldrb r0, [r2, #0x1c] - cmp r0, #0 - bne _0807787A - b _08077838 - .align 2, 0 -_080777F4: .4byte gUnk_02033A90 -_080777F8: .4byte gUnk_0200AF00 -_080777FC: - ldrb r0, [r2, #0x1a] - cmp r0, #0 - bne _080777CC - ldr r1, _0807780C @ =gLinkEntity - ldrb r0, [r1, #0xd] - adds r0, #1 - strb r0, [r1, #0xd] - b _080777CC - .align 2, 0 -_0807780C: .4byte gLinkEntity -_08077810: - ldrb r0, [r2, #0x1a] - cmp r0, #0 - bne _0807787A - ands r1, r4 - cmp r1, #0 - beq _0807787A - ldr r0, _08077834 @ =gLinkEntity - ldrb r1, [r0, #0xd] - adds r1, #1 - strb r1, [r0, #0xd] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0xb4 - bl sub_0805E4E0 - b _080777CC - .align 2, 0 -_08077834: .4byte gLinkEntity -_08077838: - ldrb r0, [r2, #0x12] - cmp r0, #0x11 - beq _0807787A - adds r0, r2, #0 - adds r0, #0x90 - ldrh r1, [r0] - movs r0, #0xf0 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0807787A - ldr r0, [r2, #0x30] - ldr r1, _0807786C @ =0x00040400 - ands r0, r1 - cmp r0, #0 - bne _0807787A - ldrb r0, [r2, #2] - cmp r0, #0 - bne _0807787A - ldrb r0, [r2, #4] - cmp r0, #0 - bne _0807787A - movs r0, #0x18 - strb r0, [r2, #0xc] - b _0807787A - .align 2, 0 -_0807786C: .4byte 0x00040400 -_08077870: - ldr r0, [r3, #0x30] - movs r1, #0x20 - ands r0, r1 - cmp r0, #0 - bne _080777CC -_0807787A: - movs r0, #0 -_0807787C: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08077880 -sub_08077880: @ 0x08077880 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - subs r0, r4, #1 - cmp r0, #0x1e - bhi _080778C0 - lsls r0, r4, #1 - adds r0, r0, r4 - lsls r0, r0, #2 - ldr r1, _080778C4 @ =gUnk_0811BE48 - adds r5, r0, r1 - ldr r1, _080778C8 @ =gUnk_03004010 - ldrb r0, [r5] - cmp r0, #0 - beq _080778A0 - adds r1, #2 -_080778A0: - ldrh r0, [r1] - ands r0, r6 - cmp r0, #0 - bne _080778AC - cmp r2, #0 - beq _080778C0 -_080778AC: - adds r0, r4, #0 - bl sub_0807794C - adds r1, r0, #0 - cmp r1, #0 - beq _080778C0 - ldrb r0, [r5, #1] - strb r0, [r1, #9] - strb r4, [r1, #1] - strb r6, [r1, #3] -_080778C0: - pop {r4, r5, r6, pc} - .align 2, 0 -_080778C4: .4byte gUnk_0811BE48 -_080778C8: .4byte gUnk_03004010 - - thumb_func_start sub_080778CC -sub_080778CC: @ 0x080778CC - push {lr} - ldr r2, _08077920 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08077924 @ =0x000400A0 - ands r0, r1 - cmp r0, #0 - bne _0807791C - ldr r0, _08077928 @ =gLinkEntity - adds r0, #0x79 - ldrb r0, [r0] - cmp r0, #0 - bne _080778FA - ldrb r0, [r2, #5] - cmp r0, #0 - bne _080778FA - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807791C -_080778FA: - bl sub_080789A8 - cmp r0, #0 - bne _08077910 - ldr r0, _08077920 @ =gUnk_03003F80 - adds r0, #0x90 - ldrh r1, [r0] - ldr r0, _0807792C @ =0x00000F03 - ands r0, r1 - cmp r0, #0 - bne _0807791C -_08077910: - movs r0, #0x1b - bl sub_0807794C - adds r1, r0, #0 - cmp r1, #0 - bne _08077930 -_0807791C: - movs r0, #0 - b _08077940 - .align 2, 0 -_08077920: .4byte gUnk_03003F80 -_08077924: .4byte 0x000400A0 -_08077928: .4byte gLinkEntity -_0807792C: .4byte 0x00000F03 -_08077930: - movs r0, #0x1b - strb r0, [r1, #1] - ldr r0, _08077944 @ =gUnk_0811BE48 - ldr r2, _08077948 @ =0x00000145 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r1, #9] - movs r0, #1 -_08077940: - pop {pc} - .align 2, 0 -_08077944: .4byte gUnk_0811BE48 -_08077948: .4byte 0x00000145 - - thumb_func_start sub_0807794C -sub_0807794C: @ 0x0807794C - push {lr} - adds r2, r0, #0 - ldr r0, _080779B8 @ =gUnk_03003F80 - ldrb r1, [r0, #0xc] - adds r3, r0, #0 - cmp r1, #0x18 - bne _0807795E - cmp r2, #0x1b - bne _080779B2 -_0807795E: - ldr r0, [r3, #0x30] - movs r1, #0x88 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - beq _0807796E - cmp r2, #6 - bhi _080779B2 -_0807796E: - ldrb r0, [r3, #2] - cmp r0, #0 - bne _0807797C - ldr r0, _080779BC @ =gLinkEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - beq _08077980 -_0807797C: - cmp r2, #6 - bhi _080779B2 -_08077980: - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807799A - ldr r0, _080779C0 @ =gUnk_0811BE48 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r1, #8] - cmp r0, #0 - beq _080779B2 -_0807799A: - ldrb r0, [r3, #0x12] - cmp r0, #0x11 - bne _080779C4 - adds r0, r3, #0 - adds r0, #0x37 - ldrb r0, [r0] - cmp r0, #0 - beq _080779C4 - adds r0, r2, #0 - subs r0, #0x14 - cmp r0, #1 - bls _080779C4 -_080779B2: - movs r0, #0 - b _080779DE - .align 2, 0 -_080779B8: .4byte gUnk_03003F80 -_080779BC: .4byte gLinkEntity -_080779C0: .4byte gUnk_0811BE48 -_080779C4: - ldr r1, _080779E0 @ =gUnk_0811BE48 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - ldrb r0, [r0, #2] - ldr r1, _080779E4 @ =gUnk_0811BFC8 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r2, #0 - bl _call_via_r1 -_080779DE: - pop {pc} - .align 2, 0 -_080779E0: .4byte gUnk_0811BE48 -_080779E4: .4byte gUnk_0811BFC8 - - thumb_func_start sub_080779E8 -sub_080779E8: @ 0x080779E8 - movs r0, #0 - bx lr - - thumb_func_start sub_080779EC -sub_080779EC: @ 0x080779EC - push {lr} - ldr r1, _08077A00 @ =gUnk_03000B80 - adds r0, r1, #0 - adds r0, #0x25 - ldrb r0, [r0] - cmp r0, #0 - bne _08077A04 - adds r0, r1, #0 - adds r0, #0x1c - b _08077A16 - .align 2, 0 -_08077A00: .4byte gUnk_03000B80 -_08077A04: - adds r0, r1, #0 - adds r0, #0x41 - ldrb r0, [r0] - cmp r0, #0 - beq _08077A12 - movs r0, #0 - b _08077A16 -_08077A12: - adds r0, r1, #0 - adds r0, #0x38 -_08077A16: - pop {pc} - - thumb_func_start sub_08077A18 -sub_08077A18: @ 0x08077A18 - push {lr} - adds r1, r0, #0 - ldr r0, _08077A3C @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08077A44 - ldr r0, _08077A40 @ =gUnk_03000B80 - ldrb r2, [r0, #0x1d] - cmp r1, r2 - beq _08077A44 - adds r0, #0x39 - ldrb r0, [r0] - cmp r1, r0 - beq _08077A44 - adds r0, r1, #0 - bl sub_080779EC - b _08077A46 - .align 2, 0 -_08077A3C: .4byte gUnk_03003F80 -_08077A40: .4byte gUnk_03000B80 -_08077A44: - movs r0, #0 -_08077A46: - pop {pc} - - thumb_func_start sub_08077A48 -sub_08077A48: @ 0x08077A48 - push {r4, r5, r6, lr} - adds r2, r0, #0 - ldr r6, _08077A88 @ =gUnk_03003F80 - ldrb r0, [r6, #5] - cmp r0, #0 - bne _08077A94 - ldrb r1, [r6, #2] - movs r0, #0x20 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - bne _08077A94 - ldr r0, _08077A8C @ =gUnk_0811BE48 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r5, _08077A90 @ =gUnk_03000B80 - ldrb r0, [r1, #1] - ldrb r1, [r5, #9] - cmp r0, r1 - blo _08077A94 - adds r0, r5, #0 - movs r1, #0 - bl sub_08077E78 - strb r4, [r6, #1] - strb r4, [r6, #0x1c] - strb r4, [r6, #0x1b] - adds r0, r5, #0 - b _08077A96 - .align 2, 0 -_08077A88: .4byte gUnk_03003F80 -_08077A8C: .4byte gUnk_0811BE48 -_08077A90: .4byte gUnk_03000B80 -_08077A94: - movs r0, #0 -_08077A96: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08077A98 -sub_08077A98: @ 0x08077A98 - push {lr} - ldr r0, _08077AB8 @ =gUnk_02002A40 - adds r0, #0xac - ldrb r0, [r0] - cmp r0, #0 - beq _08077AC4 - ldr r0, _08077ABC @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08077AC4 - ldr r1, _08077AC0 @ =gUnk_03000B80 - ldrb r0, [r1, #9] - cmp r0, #0 - bne _08077AC4 - adds r0, r1, #0 - b _08077AC6 - .align 2, 0 -_08077AB8: .4byte gUnk_02002A40 -_08077ABC: .4byte gUnk_03003F80 -_08077AC0: .4byte gUnk_03000B80 -_08077AC4: - movs r0, #0 -_08077AC6: - pop {pc} - - thumb_func_start sub_08077AC8 -sub_08077AC8: @ 0x08077AC8 - push {lr} - movs r2, #0 - ldr r1, _08077AD8 @ =gUnk_03000B80 -_08077ACE: - ldrb r0, [r1, #9] - cmp r0, #0 - beq _08077ADC - movs r0, #0 - b _08077AE6 - .align 2, 0 -_08077AD8: .4byte gUnk_03000B80 -_08077ADC: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bls _08077ACE - ldr r0, _08077AE8 @ =gUnk_03000BD4 -_08077AE6: - pop {pc} - .align 2, 0 -_08077AE8: .4byte gUnk_03000BD4 - - thumb_func_start sub_08077AEC -sub_08077AEC: @ 0x08077AEC - push {lr} - ldr r0, _08077B14 @ =gUnk_03000BD4 - movs r1, #3 - bl sub_08077E78 - ldr r2, _08077B18 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08077B1C @ =0xFF7FFFFF - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #0x10 - bl sub_0805436C - adds r1, r0, #0 - cmp r1, #2 - beq _08077B12 - movs r0, #0xf - bl sub_08054414 -_08077B12: - pop {pc} - .align 2, 0 -_08077B14: .4byte gUnk_03000BD4 -_08077B18: .4byte gUnk_03003F80 -_08077B1C: .4byte 0xFF7FFFFF - - thumb_func_start sub_08077B20 -sub_08077B20: @ 0x08077B20 - push {lr} - bl sub_08077B2C - bl sub_08077AEC - pop {pc} - - thumb_func_start sub_08077B2C -sub_08077B2C: @ 0x08077B2C - push {r4, r5, lr} - movs r4, #0 - ldr r5, _08077B88 @ =gUnk_03000B80 -_08077B32: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08077E78 - adds r5, #0x1c - adds r4, #1 - cmp r4, #2 - bls _08077B32 - ldr r2, _08077B8C @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x3d - movs r3, #0 - strb r3, [r0] - strb r3, [r2, #0x1c] - subs r0, #0x1c - strb r3, [r0] - strb r3, [r2, #1] - strb r3, [r2, #0xe] - strb r3, [r2, #0x1e] - strb r3, [r2, #0x1b] - strb r3, [r2, #3] - strb r3, [r2, #5] - ldr r0, [r2, #0x30] - ldr r1, _08077B90 @ =0xF7FBFFFF - ands r0, r1 - str r0, [r2, #0x30] - ldr r0, _08077B94 @ =gLinkEntity - str r3, [r0, #0x70] - ldrb r1, [r2, #2] - movs r0, #0xc0 - ands r0, r1 - cmp r0, #0 - bne _08077B76 - strb r3, [r2, #2] -_08077B76: - adds r1, r2, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #4 - bgt _08077B86 - cmp r0, #2 - blt _08077B86 - strb r3, [r1] -_08077B86: - pop {r4, r5, pc} - .align 2, 0 -_08077B88: .4byte gUnk_03000B80 -_08077B8C: .4byte gUnk_03003F80 -_08077B90: .4byte 0xF7FBFFFF -_08077B94: .4byte gLinkEntity - - thumb_func_start sub_08077B98 -sub_08077B98: @ 0x08077B98 - push {r4, lr} - adds r1, r0, #0 - ldr r4, _08077BB4 @ =gUnk_03003F80 - ldr r0, [r4, #0x2c] - cmp r0, #0 - beq _08077BAA - ldrb r0, [r0, #9] - cmp r0, #1 - beq _08077BB2 -_08077BAA: - adds r0, r1, #0 - bl sub_08077C54 - str r0, [r4, #0x2c] -_08077BB2: - pop {r4, pc} - .align 2, 0 -_08077BB4: .4byte gUnk_03003F80 - - thumb_func_start sub_08077BB8 -sub_08077BB8: @ 0x08077BB8 - push {lr} - bl sub_08077C54 - adds r1, r0, #0 - cmp r1, #0 - beq _08077BC8 - movs r0, #0x20 - strb r0, [r1, #0x10] -_08077BC8: - ldr r0, _08077BD0 @ =gUnk_03003F80 - str r1, [r0, #0x2c] - pop {pc} - .align 2, 0 -_08077BD0: .4byte gUnk_03003F80 - - thumb_func_start sub_08077BD4 -sub_08077BD4: @ 0x08077BD4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08077C04 @ =gUnk_0811BE48 - ldrb r1, [r4, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #3] - adds r0, r4, #0 - bl sub_08077C94 - cmp r0, #0 - bne _08077C08 - ldrb r1, [r4, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - ldrb r1, [r0, #3] - adds r0, r4, #0 - bl sub_08077C3C - b _08077C0A - .align 2, 0 -_08077C04: .4byte gUnk_0811BE48 -_08077C08: - movs r0, #0 -_08077C0A: - pop {r4, r5, pc} - - thumb_func_start sub_08077C0C -sub_08077C0C: @ 0x08077C0C - push {r4, r5, lr} - adds r5, r0, #0 - ldr r2, _08077C34 @ =gUnk_0811BE48 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r4, [r0, #3] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08077C94 - cmp r0, #0 - bne _08077C38 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_08077C3C - b _08077C3A - .align 2, 0 -_08077C34: .4byte gUnk_0811BE48 -_08077C38: - movs r0, #0 -_08077C3A: - pop {r4, r5, pc} - - thumb_func_start sub_08077C3C -sub_08077C3C: @ 0x08077C3C - push {r4, lr} - adds r4, r0, #0 - adds r0, r1, #0 - ldrb r3, [r4, #1] - movs r1, #0 - movs r2, #0 - bl sub_08077CB8 - cmp r0, #0 - beq _08077C52 - str r4, [r0, #0x50] -_08077C52: - pop {r4, pc} - - thumb_func_start sub_08077C54 -sub_08077C54: @ 0x08077C54 - push {r4, r5, lr} - adds r5, r0, #0 - bl sub_0805E744 - adds r4, r0, #0 - cmp r4, #0 - beq _08077C8C - ldr r2, _08077C90 @ =gUnk_0811BE48 - ldrb r1, [r5, #1] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r0, [r0, #3] - strb r0, [r4, #9] - movs r0, #8 - strb r0, [r4, #8] - movs r0, #0xa0 - strb r0, [r4, #0x10] - str r5, [r4, #0x50] - ldrb r1, [r5, #1] - adds r0, r4, #0 - adds r0, #0x68 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EA2C -_08077C8C: - adds r0, r4, #0 - pop {r4, r5, pc} - .align 2, 0 -_08077C90: .4byte gUnk_0811BE48 - - thumb_func_start sub_08077C94 -sub_08077C94: @ 0x08077C94 - push {lr} - ldr r2, _08077CB4 @ =gUnk_0811BE48 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - ldrb r1, [r0, #3] - movs r0, #8 - movs r2, #2 - bl sub_0805EB00 - cmp r0, #0 - bne _08077CB0 - movs r0, #0 -_08077CB0: - pop {pc} - .align 2, 0 -_08077CB4: .4byte gUnk_0811BE48 - - thumb_func_start sub_08077CB8 -sub_08077CB8: @ 0x08077CB8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - mov r8, r3 - bl sub_0805E678 - adds r4, r0, #0 - cmp r4, #0 - beq _08077CEE - movs r0, #0x80 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #8] - strb r5, [r4, #9] - strb r6, [r4, #0xa] - strb r7, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x68 - mov r1, r8 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EA2C -_08077CEE: - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08077CF8 -sub_08077CF8: @ 0x08077CF8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - mov r8, r3 - bl sub_0805E744 - adds r4, r0, #0 - cmp r4, #0 - beq _08077D2E - movs r0, #0x80 - strb r0, [r4, #0x10] - movs r0, #8 - strb r0, [r4, #8] - strb r5, [r4, #9] - strb r6, [r4, #0xa] - strb r7, [r4, #0xb] - adds r0, r4, #0 - adds r0, #0x68 - mov r1, r8 - strb r1, [r0] - adds r0, r4, #0 - movs r1, #2 - bl sub_0805EA2C -_08077D2E: - adds r0, r4, #0 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08077D38 -sub_08077D38: @ 0x08077D38 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - ldr r3, _08077D94 @ =gUnk_03003F80 - movs r7, #8 - adds r1, r7, #0 - mov r0, r8 - asrs r1, r0 - ldrb r2, [r3, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - orrs r1, r0 - strb r1, [r3, #0xb] - ldr r0, _08077D98 @ =gLinkEntity - ldrb r0, [r0, #0x14] - strb r0, [r4, #0xa] - ldrb r0, [r4, #4] - cmp r0, #0 - bne _08077D6A - adds r0, #1 - strb r0, [r4, #4] -_08077D6A: - ldrb r2, [r4, #1] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - ldr r1, _08077D9C @ =gUnk_0811BE48 - adds r5, r0, r1 - ldrh r0, [r5, #4] - cmp r0, #0 - beq _08077DCC - ldr r0, [r3, #0x30] - ands r0, r7 - cmp r0, #0 - beq _08077DC4 - cmp r2, #0xd - beq _08077DB2 - cmp r2, #0xd - bgt _08077DA0 - cmp r2, #1 - beq _08077DAC - b _08077DB4 - .align 2, 0 -_08077D94: .4byte gUnk_03003F80 -_08077D98: .4byte gLinkEntity -_08077D9C: .4byte gUnk_0811BE48 -_08077DA0: - cmp r2, #0x1b - bne _08077DB4 - ldr r6, _08077DA8 @ =0x00000948 - b _08077DB4 - .align 2, 0 -_08077DA8: .4byte 0x00000948 -_08077DAC: - movs r6, #0x81 - lsls r6, r6, #3 - b _08077DB4 -_08077DB2: - ldr r6, _08077DC0 @ =0x0000040C -_08077DB4: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077DF4 - b _08077DCC - .align 2, 0 -_08077DC0: .4byte 0x0000040C -_08077DC4: - ldrh r1, [r5, #4] - adds r0, r4, #0 - bl sub_08077DF4 -_08077DCC: - ldrb r0, [r5, #6] - strb r0, [r4, #0xf] - ldrb r0, [r5, #7] - cmp r0, #0 - beq _08077DE8 - ldr r2, _08077DF0 @ =gUnk_03003F80 - movs r0, #8 - mov r1, r8 - asrs r0, r1 - lsls r1, r0, #4 - orrs r0, r1 - ldrb r1, [r2, #4] - orrs r0, r1 - strb r0, [r2, #4] -_08077DE8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08077DF0: .4byte gUnk_03003F80 - - thumb_func_start sub_08077DF4 -sub_08077DF4: @ 0x08077DF4 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - strh r2, [r4, #0x10] - movs r0, #0xff - ands r0, r2 - cmp r0, #0xb8 - bls _08077E0A - ldrb r0, [r4, #0xa] - lsrs r0, r0, #1 - adds r2, r2, r0 -_08077E0A: - ldr r0, _08077E20 @ =gLinkEntity - lsrs r1, r2, #8 - strh r1, [r0, #0x12] - lsls r1, r2, #0x18 - lsrs r1, r1, #0x18 - bl sub_080042AC - adds r0, r4, #0 - bl sub_08077E54 - pop {r4, pc} - .align 2, 0 -_08077E20: .4byte gLinkEntity - - thumb_func_start sub_08077E24 -sub_08077E24: @ 0x08077E24 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08077E38 @ =gLinkEntity - bl sub_080042B8 - adds r0, r4, #0 - bl sub_08077E54 - pop {r4, pc} - .align 2, 0 -_08077E38: .4byte gLinkEntity - - thumb_func_start sub_08077E3C -sub_08077E3C: @ 0x08077E3C - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08077E50 @ =gLinkEntity - bl sub_080042BA - adds r0, r4, #0 - bl sub_08077E54 - pop {r4, pc} - .align 2, 0 -_08077E50: .4byte gLinkEntity - - thumb_func_start sub_08077E54 -sub_08077E54: @ 0x08077E54 - ldr r2, _08077E74 @ =gLinkEntity - adds r1, r2, #0 - adds r1, #0x58 - ldrb r1, [r1] - strb r1, [r0, #0xc] - ldrb r1, [r2, #0x1e] - strb r1, [r0, #0x12] - adds r1, r2, #0 - adds r1, #0x59 - ldrb r1, [r1] - strb r1, [r0, #0xd] - adds r1, r2, #0 - adds r1, #0x5a - ldrb r1, [r1] - strb r1, [r0, #0xe] - bx lr - .align 2, 0 -_08077E74: .4byte gLinkEntity - - thumb_func_start sub_08077E78 -sub_08077E78: @ 0x08077E78 - push {r4, r5, lr} - adds r5, r0, #0 - adds r3, r1, #0 - ldr r4, _08077EC4 @ =gUnk_03003F80 - cmp r3, #0 - bne _08077E9A - ldr r2, [r4, #0x2c] - cmp r2, #0 - beq _08077E98 - ldrb r0, [r2, #0x11] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #6 - orrs r1, r0 - strb r1, [r2, #0x11] -_08077E98: - str r3, [r4, #0x2c] -_08077E9A: - movs r2, #8 - asrs r2, r3 - lsls r1, r2, #4 - orrs r1, r2 - ldrb r0, [r4, #4] - bics r0, r1 - strb r0, [r4, #4] - mvns r2, r2 - ldrb r1, [r4, #0xa] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r4, #0xa] - ldrb r0, [r4, #0xb] - ands r2, r0 - strb r2, [r4, #0xb] - adds r0, r5, #0 - movs r1, #0x1c - bl sub_0801D630 - pop {r4, r5, pc} - .align 2, 0 -_08077EC4: .4byte gUnk_03003F80 - - thumb_func_start sub_08077EC8 -sub_08077EC8: @ 0x08077EC8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _08077EDC @ =gUnk_03003F80 - ldrb r1, [r0, #0x1b] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08077EE0 - movs r0, #0 - b _08077EF8 - .align 2, 0 -_08077EDC: .4byte gUnk_03003F80 -_08077EE0: - movs r1, #0xb8 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #0x28 - strb r0, [r4, #7] - movs r0, #7 - strb r0, [r4, #4] - movs r0, #6 - strb r0, [r4, #0xf] - movs r0, #1 -_08077EF8: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08077EFC -sub_08077EFC: @ 0x08077EFC - push {lr} - ldr r1, _08077F0C @ =gUnk_03003F80 - adds r1, #0x90 - ldrh r1, [r1] - bl sub_08077F24 - pop {pc} - .align 2, 0 -_08077F0C: .4byte gUnk_03003F80 - - thumb_func_start sub_08077F10 -sub_08077F10: @ 0x08077F10 - push {lr} - ldr r1, _08077F20 @ =gUnk_03003F80 - adds r1, #0x92 - ldrh r1, [r1] - bl sub_08077F24 - pop {pc} - .align 2, 0 -_08077F20: .4byte gUnk_03003F80 - - thumb_func_start sub_08077F24 -sub_08077F24: @ 0x08077F24 - push {lr} - ldr r2, _08077F34 @ =gUnk_02002AE8 - ldrb r3, [r0, #1] - ldrb r0, [r2, #0xc] - cmp r0, r3 - bne _08077F38 - movs r2, #1 - b _08077F42 - .align 2, 0 -_08077F34: .4byte gUnk_02002AE8 -_08077F38: - ldrb r0, [r2, #0xd] - movs r2, #0 - cmp r0, r3 - bne _08077F42 - movs r2, #2 -_08077F42: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08077F4C - movs r0, #1 -_08077F4C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08077F50 -sub_08077F50: @ 0x08077F50 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08079184 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - pop {r4, r5, pc} - - thumb_func_start sub_08077F64 -sub_08077F64: @ 0x08077F64 - push {lr} - adds r2, r0, #0 - ldr r0, _08077F7C @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #0 - bne _08077F80 - adds r0, r2, #0 - bl sub_08077F50 - movs r0, #0 - b _08077F82 - .align 2, 0 -_08077F7C: .4byte gUnk_03003F80 -_08077F80: - movs r0, #1 -_08077F82: - pop {pc} - - thumb_func_start sub_08077F84 -sub_08077F84: @ 0x08077F84 - push {r4, lr} - ldr r4, _08077FE0 @ =gLinkEntity - adds r0, r4, #0 - adds r0, #0x38 - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08077FDE - movs r1, #0x2e - ldrsh r0, [r4, r1] - movs r2, #0x32 - ldrsh r1, [r4, r2] - subs r1, #0xc - movs r2, #2 - bl sub_080002A4 - ldr r1, _08077FE4 @ =0xFFFFFCBD - adds r0, r0, r1 - cmp r0, #3 - bhi _08077FDE - adds r0, r4, #0 - bl sub_0807AA80 - ldr r2, _08077FE8 @ =gUnk_03003F80 - ldrb r1, [r2, #2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2, #2] - movs r0, #0x44 - movs r1, #0 - movs r2, #0 - bl sub_080A2960 - adds r1, r0, #0 - cmp r1, #0 - beq _08077FDE - ldr r0, [r4, #0x2c] - str r0, [r1, #0x2c] - ldrh r0, [r4, #0x32] - subs r0, #0xc - strh r0, [r1, #0x32] - ldrh r0, [r4, #0x32] - subs r0, #0xc - strh r0, [r4, #0x32] -_08077FDE: - pop {r4, pc} - .align 2, 0 -_08077FE0: .4byte gLinkEntity -_08077FE4: .4byte 0xFFFFFCBD -_08077FE8: .4byte gUnk_03003F80 - - thumb_func_start sub_08077FEC -sub_08077FEC: @ 0x08077FEC - push {lr} - ldr r0, _08078000 @ =gUnk_03004020 - ldr r2, _08078004 @ =gUnk_0811BFE8 - ldrb r1, [r0] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_08078000: .4byte gUnk_03004020 -_08078004: .4byte gUnk_0811BFE8 - - thumb_func_start sub_08078008 -sub_08078008: @ 0x08078008 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r6, _08078060 @ =gUnk_02002A40 - adds r5, r6, #0 - adds r5, #0xb4 - ldrb r0, [r5] - bl sub_0805449C - cmp r0, #0 - bne _0807802C - adds r5, r6, #0 - adds r5, #0xb5 - ldrb r0, [r5] - bl sub_0805449C - movs r2, #0 - cmp r0, #0 - beq _0807802E -_0807802C: - ldrb r2, [r5] -_0807802E: - subs r0, r2, #1 - cmp r0, #1 - bhi _08078036 - movs r2, #0 -_08078036: - cmp r2, #0 - beq _08078068 - ldr r0, _08078064 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _08078068 - ldrb r0, [r4, #1] - adds r0, #1 - strb r0, [r4, #1] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x14 - ble _0807806C - movs r0, #0xa - strb r0, [r4, #1] - movs r0, #3 - strb r0, [r4] - strb r2, [r4, #2] - b _0807806C - .align 2, 0 -_08078060: .4byte gUnk_02002A40 -_08078064: .4byte gUnk_03003F80 -_08078068: - movs r0, #0 - strb r0, [r4, #1] -_0807806C: - movs r0, #0 - pop {r4, r5, r6, pc} - - thumb_func_start sub_08078070 -sub_08078070: @ 0x08078070 - push {lr} - adds r2, r0, #0 - ldr r3, _08078098 @ =gUnk_03003F80 - ldrb r1, [r3, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080780D6 - adds r0, r3, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0807809C - ldrh r0, [r2, #4] - adds r0, #0xc - b _080780A0 - .align 2, 0 -_08078098: .4byte gUnk_03003F80 -_0807809C: - ldrh r0, [r2, #4] - adds r0, #6 -_080780A0: - strh r0, [r2, #4] - movs r0, #4 - ldrsh r1, [r2, r0] - ldr r0, _080780BC @ =0x0000031F - cmp r1, r0 - ble _080780C0 - adds r0, #1 - strh r0, [r2, #4] - movs r0, #4 - strb r0, [r2] - movs r0, #0xd8 - bl sub_080A3268 - b _080780DA - .align 2, 0 -_080780BC: .4byte 0x0000031F -_080780C0: - movs r1, #4 - ldrsh r0, [r2, r1] - movs r1, #0x14 - bl Mod - cmp r0, #0 - bne _080780DA - movs r0, #0xd7 - bl sub_080A3268 - b _080780DA -_080780D6: - movs r0, #1 - strb r0, [r2] -_080780DA: - movs r0, #1 - pop {pc} - .align 2, 0 - - thumb_func_start sub_080780E0 -sub_080780E0: @ 0x080780E0 - push {lr} - adds r2, r0, #0 - ldr r0, _080780F4 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1b] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080780F8 - movs r0, #5 - b _08078102 - .align 2, 0 -_080780F4: .4byte gUnk_03003F80 -_080780F8: - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - bne _08078104 - movs r0, #1 -_08078102: - strb r0, [r2] -_08078104: - movs r0, #1 - pop {pc} - - thumb_func_start sub_08078108 -sub_08078108: @ 0x08078108 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #4] - subs r0, #1 - strh r0, [r1, #4] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _08078120 - movs r0, #0 - strh r0, [r1, #4] - movs r0, #2 - strb r0, [r1] -_08078120: - movs r0, #1 - pop {pc} - - thumb_func_start sub_08078124 -sub_08078124: @ 0x08078124 - push {lr} - adds r1, r0, #0 - ldrh r0, [r1, #4] - subs r0, #0x10 - strh r0, [r1, #4] - lsls r0, r0, #0x10 - cmp r0, #0 - bge _0807813C - movs r0, #0 - strh r0, [r1, #4] - movs r0, #2 - strb r0, [r1] -_0807813C: - movs r0, #1 - pop {pc} - - thumb_func_start sub_08078140 -sub_08078140: @ 0x08078140 - push {lr} - adds r1, r0, #0 - ldrb r0, [r1, #1] - subs r0, #1 - movs r2, #0 - strb r0, [r1, #1] - lsls r0, r0, #0x18 - cmp r0, #0 - blt _08078156 - movs r0, #0 - b _0807815C -_08078156: - strb r2, [r1, #1] - strb r2, [r1] - movs r0, #1 -_0807815C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08078160 -sub_08078160: @ 0x08078160 - push {lr} - ldr r1, _08078178 @ =gUnk_03003F80 - adds r1, #0xa8 - strb r0, [r1] - ldr r2, _0807817C @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - bl sub_08078B48 - pop {pc} - .align 2, 0 -_08078178: .4byte gUnk_03003F80 -_0807817C: .4byte gLinkEntity - - thumb_func_start sub_08078180 -sub_08078180: @ 0x08078180 - push {r4, r5, r6, lr} - ldr r0, _080781C8 @ =gUnk_0200AF00 - adds r1, r0, #0 - adds r1, #0x2f - ldrb r1, [r1] - adds r6, r0, #0 - cmp r1, #0 - beq _08078192 - b _080782BC -_08078192: - movs r4, #0 - ldr r5, _080781CC @ =gUnk_03003F80 - ldrb r0, [r5, #2] - cmp r0, #0 - beq _0807819E - b _080782B6 -_0807819E: - ldr r0, [r5, #0x30] - ldr r1, _080781D0 @ =0x00104D00 - ands r0, r1 - cmp r0, #0 - beq _080781AA - b _080782B6 -_080781AA: - ldrb r0, [r5, #5] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _080781D4 - adds r1, r6, #0 - adds r1, #0x2e - ldrb r0, [r1] - movs r4, #3 - cmp r0, #0 - bne _080781C4 - b _080782B6 -_080781C4: - adds r4, r0, #0 - b _080782B6 - .align 2, 0 -_080781C8: .4byte gUnk_0200AF00 -_080781CC: .4byte gUnk_03003F80 -_080781D0: .4byte 0x00104D00 -_080781D4: - adds r1, r6, #0 - adds r1, #0x2d - ldrb r0, [r1] - cmp r0, #0 - bne _080781C4 - bl sub_080784E4 - adds r1, r0, #0 - ldr r0, [r1, #8] - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _08078278 - ldrb r0, [r1, #1] - subs r0, #1 - cmp r0, #9 - bhi _080782B6 - lsls r0, r0, #2 - ldr r1, _08078204 @ =_08078208 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078204: .4byte _08078208 -_08078208: @ jump table - .4byte _08078230 @ case 0 - .4byte _080782B6 @ case 1 - .4byte _08078254 @ case 2 - .4byte _080782B6 @ case 3 - .4byte _08078254 @ case 4 - .4byte _08078254 @ case 5 - .4byte _08078230 @ case 6 - .4byte _0807823C @ case 7 - .4byte _08078260 @ case 8 - .4byte _0807826C @ case 9 -_08078230: - movs r4, #7 - ldr r6, _08078238 @ =gUnk_0200AF00 - b _080782B6 - .align 2, 0 -_08078238: .4byte gUnk_0200AF00 -_0807823C: - ldr r0, _0807824C @ =gUnk_02034350 - ldrb r0, [r0, #6] - ldr r6, _08078250 @ =gUnk_0200AF00 - cmp r0, #0 - bne _080782B6 - movs r4, #9 - b _080782B6 - .align 2, 0 -_0807824C: .4byte gUnk_02034350 -_08078250: .4byte gUnk_0200AF00 -_08078254: - movs r4, #6 - ldr r6, _0807825C @ =gUnk_0200AF00 - b _080782B6 - .align 2, 0 -_0807825C: .4byte gUnk_0200AF00 -_08078260: - movs r4, #5 - ldr r6, _08078268 @ =gUnk_0200AF00 - b _080782B6 - .align 2, 0 -_08078268: .4byte gUnk_0200AF00 -_0807826C: - movs r4, #2 - ldr r6, _08078274 @ =gUnk_0200AF00 - b _080782B6 - .align 2, 0 -_08078274: .4byte gUnk_0200AF00 -_08078278: - bl sub_080789A8 - cmp r0, #0 - beq _080782A4 - adds r0, r5, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0xe - beq _080782BC - ldr r1, _080782A0 @ =gUnk_03003BE0 - ldrb r0, [r1, #1] - movs r4, #9 - cmp r0, #2 - bne _080782B6 - ldr r0, [r1, #8] - ldrb r0, [r0, #0x16] - cmp r0, #1 - bne _080782B6 - movs r4, #8 - b _080782B6 - .align 2, 0 -_080782A0: .4byte gUnk_03003BE0 -_080782A4: - adds r0, r5, #0 - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #1 - bne _080782B6 - ldrb r0, [r5, #0x1a] - cmp r0, #0 - bne _080782B6 - movs r4, #0xc -_080782B6: - adds r0, r6, #0 - adds r0, #0x2c - strb r4, [r0] -_080782BC: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080782C0 -sub_080782C0: @ 0x080782C0 - push {r4, r5, r6, lr} - ldr r1, _080782D8 @ =gUnk_03003F80 - adds r2, r1, #0 - adds r2, #0xa8 - ldrb r0, [r2] - adds r4, r1, #0 - cmp r0, #0 - bne _080782DC - adds r0, r4, #0 - adds r0, #0xa9 - ldrb r0, [r0] - b _080782DE - .align 2, 0 -_080782D8: .4byte gUnk_03003F80 -_080782DC: - ldrb r0, [r2] -_080782DE: - subs r0, #2 - cmp r0, #0x14 - bhi _08078348 - lsls r0, r0, #2 - ldr r1, _080782F0 @ =_080782F4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080782F0: .4byte _080782F4 -_080782F4: @ jump table - .4byte _080784AC @ case 0 - .4byte _080784AC @ case 1 - .4byte _08078348 @ case 2 - .4byte _08078348 @ case 3 - .4byte _08078348 @ case 4 - .4byte _08078348 @ case 5 - .4byte _08078348 @ case 6 - .4byte _08078348 @ case 7 - .4byte _08078348 @ case 8 - .4byte _08078348 @ case 9 - .4byte _080784AC @ case 10 - .4byte _08078348 @ case 11 - .4byte _08078348 @ case 12 - .4byte _08078348 @ case 13 - .4byte _08078348 @ case 14 - .4byte _08078348 @ case 15 - .4byte _080784AC @ case 16 - .4byte _08078348 @ case 17 - .4byte _08078348 @ case 18 - .4byte _080784AC @ case 19 - .4byte _080784AC @ case 20 -_08078348: - adds r0, r4, #0 - adds r0, #0x27 - adds r2, r4, #0 - adds r2, #0x26 - ldrb r1, [r0] - ldrb r0, [r2] - orrs r0, r1 - cmp r0, #0 - beq _0807835C - b _080784AC -_0807835C: - ldrb r0, [r4, #0x12] - cmp r0, #1 - bne _08078376 - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _0807836A - b _080784AC -_0807836A: - bl sub_08052B24 - cmp r0, #0 - beq _08078374 - b _080784C4 -_08078374: - b _080784AC -_08078376: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #7 - ands r0, r1 - cmp r0, #0 - beq _08078384 - b _080784AC -_08078384: - bl sub_08052B24 - cmp r0, #0 - beq _0807838E - b _080784C4 -_0807838E: - bl sub_080784E4 - ldr r6, [r0, #8] - cmp r6, #0 - bne _0807839A - b _080784AC -_0807839A: - ldrb r0, [r4, #5] - cmp r0, #0 - beq _080783B6 - cmp r0, #4 - beq _080783A6 - b _080784AC -_080783A6: - ldr r0, _08078400 @ =gLinkEntity - ldr r0, [r0, #0x74] - ldr r0, [r0, #0x54] - ldrh r1, [r0, #8] - ldr r0, _08078404 @ =0x00000206 - cmp r1, r0 - beq _080783B6 - b _080784AC -_080783B6: - ldr r2, _08078408 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0807842C - ldr r5, _0807840C @ =gUnk_03003DF0 - ldr r0, [r5, #4] - ldrb r0, [r0, #3] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x63 - bhi _0807842C - movs r0, #0 - bl sub_0801E738 - ldr r0, _08078410 @ =gUnk_02002A40 - ldr r1, _08078414 @ =0x0000012B - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _08078418 - ldr r1, [r5, #4] - ldrb r0, [r1, #3] - strb r0, [r5, #2] - ldr r0, [r1, #8] - adds r0, #0x39 - movs r1, #2 - strb r1, [r0] - movs r0, #7 - strb r0, [r4, #0xc] - b _08078420 - .align 2, 0 -_08078400: .4byte gLinkEntity -_08078404: .4byte 0x00000206 -_08078408: .4byte gUnk_03003F80 -_0807840C: .4byte gUnk_03003DF0 -_08078410: .4byte gUnk_02002A40 -_08078414: .4byte 0x0000012B -_08078418: - ldr r0, _08078428 @ =0x00000B65 - movs r1, #0 - bl sub_08078AA8 -_08078420: - movs r0, #0x13 - bl sub_08078160 - b _080784C4 - .align 2, 0 -_08078428: .4byte 0x00000B65 -_0807842C: - adds r0, r4, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x88 - ands r0, r1 - cmp r0, #0 - beq _080784AC - ldr r0, _08078450 @ =gUnk_03003DF0 - ldr r0, [r0, #4] - ldrb r0, [r0, #1] - cmp r0, #0xa - bhi _080784C4 - lsls r0, r0, #2 - ldr r1, _08078454 @ =_08078458 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078450: .4byte gUnk_03003DF0 -_08078454: .4byte _08078458 -_08078458: @ jump table - .4byte _080784C4 @ case 0 - .4byte _08078484 @ case 1 - .4byte _080784C4 @ case 2 - .4byte _0807848E @ case 3 - .4byte _080784C4 @ case 4 - .4byte _0807848E @ case 5 - .4byte _08078484 @ case 6 - .4byte _0807848E @ case 7 - .4byte _080784A4 @ case 8 - .4byte _08078484 @ case 9 - .4byte _08078484 @ case 10 -_08078484: - movs r0, #7 - strb r0, [r4, #0xc] - movs r0, #0x13 - bl sub_08078160 -_0807848E: - adds r1, r6, #0 - adds r1, #0x39 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - ldr r0, _080784A0 @ =gUnk_03003DF0 - strb r2, [r0, #2] - b _080784C4 - .align 2, 0 -_080784A0: .4byte gUnk_03003DF0 -_080784A4: - ldr r2, _080784B0 @ =gUnk_02034350 - ldrb r0, [r2, #6] - cmp r0, #0 - beq _080784B4 -_080784AC: - movs r0, #0 - b _080784C6 - .align 2, 0 -_080784B0: .4byte gUnk_02034350 -_080784B4: - adds r1, r6, #0 - adds r1, #0x39 - movs r0, #1 - strb r0, [r1] - ldrb r0, [r6, #0xa] - strb r0, [r2, #6] - ldrb r0, [r6, #0xb] - strb r0, [r2, #7] -_080784C4: - movs r0, #1 -_080784C6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_080784C8 -sub_080784C8: @ 0x080784C8 - push {r4, lr} - ldr r4, _080784DC @ =gUnk_03003DF0 - movs r1, #0xc4 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_0801D630 - ldr r0, _080784E0 @ =gUnk_0811C000 - str r0, [r4, #4] - pop {r4, pc} - .align 2, 0 -_080784DC: .4byte gUnk_03003DF0 -_080784E0: .4byte gUnk_0811C000 - - thumb_func_start sub_080784E4 -sub_080784E4: @ 0x080784E4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _080784FC @ =gUnk_03003DF0 - ldrb r1, [r0] - mov r8, r0 - cmp r1, #0 - beq _08078500 - ldr r0, [r0, #4] - b _0807876A - .align 2, 0 -_080784FC: .4byte gUnk_03003DF0 -_08078500: - ldr r2, _08078528 @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0x27 - adds r3, r2, #0 - adds r3, #0x26 - ldrb r1, [r0] - ldrb r0, [r3] - orrs r0, r1 - cmp r0, #0 - bne _08078598 - adds r1, r2, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #0 - bne _0807852C - adds r0, r2, #0 - adds r0, #0xa9 - ldrb r0, [r0] - b _0807852E - .align 2, 0 -_08078528: .4byte gUnk_03003F80 -_0807852C: - ldrb r0, [r1] -_0807852E: - subs r0, #2 - cmp r0, #0x14 - bhi _080785B0 - lsls r0, r0, #2 - ldr r1, _08078540 @ =_08078544 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078540: .4byte _08078544 -_08078544: @ jump table - .4byte _08078598 @ case 0 - .4byte _08078598 @ case 1 - .4byte _080785B0 @ case 2 - .4byte _080785B0 @ case 3 - .4byte _080785B0 @ case 4 - .4byte _080785B0 @ case 5 - .4byte _080785B0 @ case 6 - .4byte _080785B0 @ case 7 - .4byte _080785B0 @ case 8 - .4byte _080785B0 @ case 9 - .4byte _080785B0 @ case 10 - .4byte _080785B0 @ case 11 - .4byte _080785B0 @ case 12 - .4byte _080785B0 @ case 13 - .4byte _080785B0 @ case 14 - .4byte _080785B0 @ case 15 - .4byte _08078598 @ case 16 - .4byte _080785B0 @ case 17 - .4byte _080785B0 @ case 18 - .4byte _08078598 @ case 19 - .4byte _08078598 @ case 20 -_08078598: - movs r0, #0xff - mov r1, r8 - strb r0, [r1, #3] - ldr r0, _080785AC @ =gUnk_0811C000 - str r0, [r1, #4] - movs r1, #1 - mov r2, r8 - strb r1, [r2] - b _0807876A - .align 2, 0 -_080785AC: .4byte gUnk_0811C000 -_080785B0: - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080785F0 - bl sub_08052734 - cmp r0, #0 - beq _080785C4 - movs r0, #1 -_080785C4: - adds r7, r0, #0 - bl sub_08052764 - cmp r0, #0 - beq _080785D2 - movs r0, #2 - orrs r7, r0 -_080785D2: - ldr r3, _080785E4 @ =gLinkEntity - ldrb r0, [r3, #0x14] - movs r1, #6 - ands r1, r0 - ldr r0, _080785E8 @ =gUnk_0811C00C - adds r2, r1, r0 - ldr r5, _080785EC @ =gUnk_03003DF0 - mov r8, r5 - b _080785FE - .align 2, 0 -_080785E4: .4byte gLinkEntity -_080785E8: .4byte gUnk_0811C00C -_080785EC: .4byte gUnk_03003DF0 -_080785F0: - ldr r3, _08078624 @ =gLinkEntity - ldrb r0, [r3, #0x14] - movs r1, #6 - ands r1, r0 - ldr r0, _08078628 @ =gUnk_0811C014 - adds r2, r1, r0 - movs r7, #0 -_080785FE: - mov ip, r3 - mov r0, ip - movs r3, #0x2e - ldrsh r1, [r0, r3] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov sl, r1 - mov r5, ip - movs r0, #0x32 - ldrsh r1, [r5, r0] - movs r0, #1 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov sb, r1 - movs r6, #0 - ldr r5, _0807862C @ =gUnk_03003DF8 - b _08078724 - .align 2, 0 -_08078624: .4byte gLinkEntity -_08078628: .4byte gUnk_0811C014 -_0807862C: .4byte gUnk_03003DF8 -_08078630: - ldrb r1, [r5] - movs r3, #1 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _0807864E - mov r0, ip - adds r0, #0x38 - adds r1, r2, #0 - adds r1, #0x38 - ldrb r2, [r0] - ldrb r0, [r1] - ands r0, r2 - cmp r0, #0 - beq _08078714 -_0807864E: - ldrb r1, [r5, #2] - mov r2, ip - ldrb r0, [r2, #0x14] - lsrs r0, r0, #1 - asrs r1, r0 - ands r1, r3 - cmp r1, #0 - bne _08078714 - ldrb r0, [r5, #1] - cmp r0, #0xa - bhi _080786D4 - lsls r0, r0, #2 - ldr r1, _08078670 @ =_08078674 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078670: .4byte _08078674 -_08078674: @ jump table - .4byte _08078714 @ case 0 - .4byte _080786A0 @ case 1 - .4byte _080786C4 @ case 2 - .4byte _080786A0 @ case 3 - .4byte _080786A0 @ case 4 - .4byte _080786C8 @ case 5 - .4byte _080786CC @ case 6 - .4byte _080786B4 @ case 7 - .4byte _080786A0 @ case 8 - .4byte _080786A0 @ case 9 - .4byte _080786D4 @ case 10 -_080786A0: - ldr r0, _080786B0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08078714 - b _080786D4 - .align 2, 0 -_080786B0: .4byte gUnk_03003F80 -_080786B4: - ldr r0, _080786C0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - b _080786D0 - .align 2, 0 -_080786C0: .4byte gUnk_03003F80 -_080786C4: - ldrb r0, [r5, #3] - b _080786D0 -_080786C8: - movs r0, #1 - b _080786CE -_080786CC: - movs r0, #2 -_080786CE: - ands r0, r7 -_080786D0: - cmp r0, #0 - beq _08078714 -_080786D4: - ldr r0, [r5, #8] - movs r1, #0x2e - ldrsh r3, [r0, r1] - movs r2, #0x32 - ldrsh r4, [r0, r2] - ldr r1, [r5, #4] - cmp r1, #0 - beq _080786F4 - movs r0, #0 - ldrsb r0, [r1, r0] - adds r3, r3, r0 - movs r0, #1 - ldrsb r0, [r1, r0] - adds r4, r4, r0 - adds r2, r1, #2 - b _080786F8 -_080786F4: - ldr r0, [r0, #0x48] - adds r2, r0, #6 -_080786F8: - ldrb r1, [r2] - mov r5, sl - adds r0, r1, r5 - subs r0, r0, r3 - lsls r1, r1, #1 - cmp r0, r1 - bhs _08078714 - ldrb r1, [r2, #1] - mov r2, sb - adds r0, r1, r2 - subs r0, r0, r4 - lsls r1, r1, #1 - cmp r0, r1 - blo _0807873A -_08078714: - adds r6, #1 - cmp r6, #0x1f - bhi _08078758 - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - ldr r3, _08078754 @ =gUnk_03003DF8 - adds r5, r0, r3 -_08078724: - ldr r2, [r5, #8] - cmp r2, #0 - beq _08078714 - adds r0, r2, #0 - adds r0, #0x39 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - blt _0807873A - b _08078630 -_0807873A: - cmp r6, #0x1f - bhi _08078758 - mov r5, r8 - strb r6, [r5, #3] - lsls r0, r6, #1 - adds r0, r0, r6 - lsls r0, r0, #2 - mov r1, r8 - adds r1, #8 - adds r0, r0, r1 - str r0, [r5, #4] - b _08078762 - .align 2, 0 -_08078754: .4byte gUnk_03003DF8 -_08078758: - movs r0, #0xff - mov r1, r8 - strb r0, [r1, #3] - ldr r0, _08078774 @ =gUnk_0811C000 - str r0, [r1, #4] -_08078762: - movs r0, #1 - mov r2, r8 - strb r0, [r2] - ldr r0, [r2, #4] -_0807876A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08078774: .4byte gUnk_0811C000 - - thumb_func_start sub_08078778 -sub_08078778: @ 0x08078778 - push {lr} - movs r1, #1 - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_08078784 -sub_08078784: @ 0x08078784 - push {lr} - adds r2, r1, #0 - movs r1, #1 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_08078790 -sub_08078790: @ 0x08078790 - push {lr} - adds r2, r1, #0 - movs r1, #2 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_0807879C -sub_0807879C: @ 0x0807879C - push {lr} - movs r1, #7 - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787A8 -sub_080787A8: @ 0x080787A8 - push {lr} - adds r2, r1, #0 - movs r1, #7 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787B4 -sub_080787B4: @ 0x080787B4 - push {lr} - movs r1, #9 - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787C0 -sub_080787C0: @ 0x080787C0 - push {lr} - movs r1, #0xa - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787CC -sub_080787CC: @ 0x080787CC - push {lr} - movs r1, #5 - movs r2, #0 - bl sub_0807887C - pop {pc} - - thumb_func_start sub_080787D8 -sub_080787D8: @ 0x080787D8 - push {lr} - movs r1, #8 - movs r2, #0 - bl sub_0807887C - adds r2, r0, #0 - cmp r2, #0 - blt _080787F6 - ldr r0, _080787FC @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0xbe - strb r0, [r1, #0xa] -_080787F6: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_080787FC: .4byte gUnk_03003DF0 - - thumb_func_start sub_08078800 -sub_08078800: @ 0x08078800 - push {lr} - movs r1, #6 - movs r2, #0 - bl sub_0807887C - adds r2, r0, #0 - cmp r2, #0 - blt _0807881E - ldr r0, _08078824 @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0xbe - strb r0, [r1, #0xa] -_0807881E: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_08078824: .4byte gUnk_03003DF0 - - thumb_func_start sub_08078828 -sub_08078828: @ 0x08078828 - push {lr} - movs r1, #3 - movs r2, #0 - bl sub_0807887C - adds r2, r0, #0 - cmp r2, #0 - blt _08078846 - ldr r0, _0807884C @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r1, r1, r0 - movs r0, #0xbe - strb r0, [r1, #0xa] -_08078846: - adds r0, r2, #0 - pop {pc} - .align 2, 0 -_0807884C: .4byte gUnk_03003DF0 - - thumb_func_start sub_08078850 -sub_08078850: @ 0x08078850 - push {r4, r5, r6, lr} - adds r4, r1, #0 - adds r5, r2, #0 - adds r6, r3, #0 - bl sub_08078904 - adds r2, r0, #0 - cmp r2, #0 - blt _08078876 - ldr r0, _08078878 @ =gUnk_03003DF0 - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #2 - adds r2, r1, r0 - strb r4, [r2, #8] - strb r5, [r2, #0xa] - adds r0, #0xc - adds r1, r1, r0 - str r6, [r1] -_08078876: - pop {r4, r5, r6, pc} - .align 2, 0 -_08078878: .4byte gUnk_03003DF0 - - thumb_func_start sub_0807887C -sub_0807887C: @ 0x0807887C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - adds r6, r2, #0 - adds r1, r5, #0 - adds r1, #0x39 - movs r0, #0 - strb r0, [r1] - adds r0, r5, #0 - bl sub_08078904 - adds r4, r0, #0 - cmp r4, #0 - bge _080788A4 - movs r0, #0 - bl sub_08078904 - adds r4, r0, #0 - cmp r4, #0 - blt _080788BA -_080788A4: - ldr r2, _080788DC @ =gUnk_03003DF0 - lsls r1, r4, #1 - adds r1, r1, r4 - lsls r1, r1, #2 - adds r0, r2, #0 - adds r0, #0x10 - adds r0, r1, r0 - str r5, [r0] - adds r1, r1, r2 - strb r7, [r1, #9] - strb r6, [r1, #0xb] -_080788BA: - cmp r6, #0 - beq _080788D6 - movs r0, #6 - movs r1, #9 - movs r2, #6 - bl sub_0805EB00 - cmp r0, #0 - bne _080788D6 - movs r0, #9 - movs r1, #0 - movs r2, #0 - bl sub_080A2960 -_080788D6: - adds r0, r4, #0 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080788DC: .4byte gUnk_03003DF0 - - thumb_func_start sub_080788E0 -sub_080788E0: @ 0x080788E0 - push {lr} - bl sub_08078904 - adds r1, r0, #0 - cmp r1, #0 - blt _080788FC - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _08078900 @ =gUnk_03003DF8 - adds r0, r0, r1 - movs r1, #0xc - bl sub_0801D630 -_080788FC: - pop {pc} - .align 2, 0 -_08078900: .4byte gUnk_03003DF8 - - thumb_func_start sub_08078904 -sub_08078904: @ 0x08078904 - push {lr} - adds r3, r0, #0 - movs r1, #0 - ldr r0, _0807891C @ =gUnk_03003DF0 - adds r2, r0, #0 - adds r2, #0x10 -_08078910: - ldr r0, [r2] - cmp r3, r0 - bne _08078920 - adds r0, r1, #0 - b _0807892C - .align 2, 0 -_0807891C: .4byte gUnk_03003DF0 -_08078920: - adds r2, #0xc - adds r1, #1 - cmp r1, #0x1f - bls _08078910 - movs r0, #1 - rsbs r0, r0, #0 -_0807892C: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08078930 -sub_08078930: @ 0x08078930 - push {lr} - adds r3, r0, #0 - ldr r2, _08078950 @ =gUnk_03003BE0 - ldrb r0, [r2, #2] - cmp r0, #0x1f - bhi _0807894C - lsls r0, r0, #2 - adds r1, r2, #0 - adds r1, #0xc - adds r0, r0, r1 - str r3, [r0] - ldrb r0, [r2, #2] - adds r0, #1 - strb r0, [r2, #2] -_0807894C: - pop {pc} - .align 2, 0 -_08078950: .4byte gUnk_03003BE0 - - thumb_func_start sub_08078954 -sub_08078954: @ 0x08078954 - push {r4, r5, lr} - adds r5, r0, #0 - movs r4, #0 - ldr r0, _08078970 @ =gUnk_03003BE0 - ldrb r1, [r0, #2] - adds r2, r0, #0 - cmp r4, r1 - bhs _080789A6 - ldr r0, [r2, #0xc] - cmp r0, r5 - bne _08078974 - subs r0, r1, #1 - b _0807898C - .align 2, 0 -_08078970: .4byte gUnk_03003BE0 -_08078974: - adds r4, #1 - ldrb r3, [r2, #2] - cmp r4, r3 - bhs _080789A6 - lsls r0, r4, #2 - adds r1, r2, #0 - adds r1, #0xc - adds r0, r0, r1 - ldr r0, [r0] - cmp r0, r5 - bne _08078974 - subs r0, r3, #1 -_0807898C: - strb r0, [r2, #2] - ldrb r0, [r2, #2] - cmp r4, r0 - bhs _080789A6 - lsls r0, r4, #2 - adds r0, #0xc - adds r1, r0, r2 -_0807899A: - ldr r0, [r1, #4] - stm r1!, {r0} - adds r4, #1 - ldrb r0, [r2, #2] - cmp r4, r0 - blo _0807899A -_080789A6: - pop {r4, r5, pc} - - thumb_func_start sub_080789A8 -sub_080789A8: @ 0x080789A8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _080789BC @ =gUnk_03003BE0 - ldrb r0, [r1] - cmp r0, #0 - beq _080789C0 - ldrb r0, [r1, #1] - b _08078A88 - .align 2, 0 -_080789BC: .4byte gUnk_03003BE0 -_080789C0: - ldr r0, _08078A5C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08078A56 - ldr r0, _08078A60 @ =gLinkEntity - bl sub_080002D0 - adds r4, r0, #0 - cmp r4, #0xf - bls _080789E6 - ldr r0, _08078A64 @ =gUnk_080084BC - adds r1, r4, #0 - subs r1, #0x10 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0xf - beq _08078A56 -_080789E6: - ldr r0, _08078A5C @ =gUnk_03003F80 - ldrb r0, [r0, #0x12] - cmp r0, #0x12 - beq _08078A56 - ldr r3, _08078A68 @ =gUnk_03003BE0 - movs r0, #1 - strb r0, [r3] - ldrb r4, [r3, #2] - cmp r4, #0 - beq _08078A2E - ldr r2, _08078A60 @ =gLinkEntity - ldrb r1, [r2, #0x14] - movs r0, #6 - ands r0, r1 - ldr r1, _08078A6C @ =gUnk_0811BFE0 - adds r6, r0, r1 - adds r7, r2, #0 - adds r3, #8 - mov r8, r3 -_08078A0C: - lsls r0, r4, #2 - mov r1, r8 - adds r5, r0, r1 - ldr r1, [r5] - cmp r1, #0 - beq _08078A26 - ldrb r2, [r6] - ldrb r3, [r6, #1] - adds r0, r7, #0 - bl sub_0807A180 - cmp r0, #0 - bne _08078A74 -_08078A26: - subs r4, #1 - ldr r7, _08078A60 @ =gLinkEntity - cmp r4, #0 - bne _08078A0C -_08078A2E: - ldr r0, _08078A60 @ =gLinkEntity - ldrb r1, [r0, #0x14] - movs r2, #6 - ands r2, r1 - ldr r1, _08078A70 @ =gUnk_08007DF4 - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - bl sub_0800029C - ldr r4, _08078A68 @ =gUnk_03003BE0 - strh r0, [r4, #4] - movs r1, #6 - bl sub_0806FC24 - cmp r0, #0 - bne _08078A84 -_08078A56: - movs r0, #0 - b _08078A88 - .align 2, 0 -_08078A5C: .4byte gUnk_03003F80 -_08078A60: .4byte gLinkEntity -_08078A64: .4byte gUnk_080084BC -_08078A68: .4byte gUnk_03003BE0 -_08078A6C: .4byte gUnk_0811BFE0 -_08078A70: .4byte gUnk_08007DF4 -_08078A74: - mov r0, r8 - subs r0, #8 - ldr r1, [r5] - str r1, [r0, #8] - movs r1, #2 - strb r1, [r0, #1] - movs r0, #2 - b _08078A88 -_08078A84: - movs r0, #1 - strb r0, [r4, #1] -_08078A88: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08078A90 -sub_08078A90: @ 0x08078A90 - push {lr} - adds r1, r0, #0 - ldr r0, _08078AA4 @ =gUnk_03003F80 - adds r2, r0, #0 - adds r2, #0x8b - ldrb r0, [r2] - cmp r0, #3 - beq _08078AA2 - strb r1, [r2] -_08078AA2: - pop {pc} - .align 2, 0 -_08078AA4: .4byte gUnk_03003F80 - - thumb_func_start sub_08078AA8 -sub_08078AA8: @ 0x08078AA8 - ldr r3, _08078AB8 @ =gUnk_03003F80 - movs r2, #0x16 - strb r2, [r3, #0xc] - ldr r2, _08078ABC @ =gUnk_030010A0 - strh r0, [r2, #0x36] - adds r2, #0x35 - strb r1, [r2] - bx lr - .align 2, 0 -_08078AB8: .4byte gUnk_03003F80 -_08078ABC: .4byte gUnk_030010A0 - - thumb_func_start sub_08078AC0 -sub_08078AC0: @ 0x08078AC0 - push {r4, lr} - ldr r3, _08078AEC @ =gUnk_03003F80 - mov ip, r3 - movs r3, #0xf - mov r4, ip - strb r3, [r4, #0xc] - mov r3, ip - adds r3, #0x38 - strb r0, [r3] - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f - mov r1, ip - adds r1, #0x39 - strb r0, [r1] - rsbs r0, r2, #0 - orrs r0, r2 - lsrs r0, r0, #0x1f - adds r1, #1 - strb r0, [r1] - pop {r4, pc} - .align 2, 0 -_08078AEC: .4byte gUnk_03003F80 - - thumb_func_start sub_08078AF0 -sub_08078AF0: @ 0x08078AF0 - push {r4, lr} - ldr r3, _08078B40 @ =gUnk_03003F80 - mov ip, r3 - adds r3, #0x38 - movs r4, #0 - strb r1, [r3] - mov r1, ip - adds r1, #0x39 - strb r2, [r1] - adds r1, #1 - strb r4, [r1] - movs r1, #8 - mov r2, ip - strb r1, [r2, #0xc] - adds r2, #0xa8 - movs r1, #0x15 - strb r1, [r2] - mov r1, ip - adds r1, #0x26 - strb r4, [r1] - movs r1, #1 - mov r3, ip - strb r1, [r3, #0x14] - ldr r2, _08078B44 @ =gLinkEntity - str r0, [r2, #0x54] - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #2 - orrs r0, r1 - strb r0, [r2, #0x11] - bl sub_0807A108 - pop {r4, pc} - .align 2, 0 -_08078B40: .4byte gUnk_03003F80 -_08078B44: .4byte gLinkEntity - - thumb_func_start sub_08078B48 -sub_08078B48: @ 0x08078B48 - push {lr} - ldr r1, _08078B80 @ =gUnk_03003F80 - ldrb r0, [r1, #7] - movs r2, #0x80 - orrs r0, r2 - strb r0, [r1, #7] - ldrb r0, [r1, #0xb] - orrs r0, r2 - strb r0, [r1, #0xb] - ldrb r0, [r1, #0xa] - orrs r2, r0 - strb r2, [r1, #0xa] - adds r2, r1, #0 - adds r2, #0x27 - movs r0, #2 - strb r0, [r2] - adds r0, r1, #0 - adds r0, #0xa8 - ldrb r0, [r0] - subs r0, #4 - adds r2, r1, #0 - cmp r0, #0x19 - bhi _08078BF8 - lsls r0, r0, #2 - ldr r1, _08078B84 @ =_08078B88 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08078B80: .4byte gUnk_03003F80 -_08078B84: .4byte _08078B88 -_08078B88: @ jump table - .4byte _08078C04 @ case 0 - .4byte _08078C04 @ case 1 - .4byte _08078BF8 @ case 2 - .4byte _08078BF8 @ case 3 - .4byte _08078BF8 @ case 4 - .4byte _08078BF0 @ case 5 - .4byte _08078BF8 @ case 6 - .4byte _08078BF8 @ case 7 - .4byte _08078BF8 @ case 8 - .4byte _08078BF8 @ case 9 - .4byte _08078BF8 @ case 10 - .4byte _08078BF8 @ case 11 - .4byte _08078BF8 @ case 12 - .4byte _08078BF8 @ case 13 - .4byte _08078BF8 @ case 14 - .4byte _08078BF8 @ case 15 - .4byte _08078BF8 @ case 16 - .4byte _08078BF8 @ case 17 - .4byte _08078BF8 @ case 18 - .4byte _08078BF8 @ case 19 - .4byte _08078BF8 @ case 20 - .4byte _08078C04 @ case 21 - .4byte _08078C04 @ case 22 - .4byte _08078BF8 @ case 23 - .4byte _08078BF8 @ case 24 - .4byte _08078C04 @ case 25 -_08078BF0: - ldr r0, [r2, #0x30] - ldr r1, _08078C18 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r2, #0x30] -_08078BF8: - ldr r0, _08078C1C @ =gUnk_02034350 - ldrb r0, [r0, #6] - cmp r0, #0 - bne _08078C04 - movs r0, #1 - strb r0, [r2, #0x1a] -_08078C04: - ldr r0, _08078C20 @ =gLinkEntity - adds r0, #0x3d - movs r1, #0xfe - strb r1, [r0] - adds r1, r2, #0 - adds r1, #0x8a - movs r0, #2 - strb r0, [r1] - pop {pc} - .align 2, 0 -_08078C18: .4byte 0xFFFBFFFF -_08078C1C: .4byte gUnk_02034350 -_08078C20: .4byte gLinkEntity - - thumb_func_start sub_08078C24 -sub_08078C24: @ 0x08078C24 - push {lr} - ldr r3, _08078CAC @ =gUnk_03003F80 - movs r2, #0 - strb r2, [r3] - strb r2, [r3, #1] - strb r2, [r3, #2] - strb r2, [r3, #3] - strb r2, [r3, #4] - strb r2, [r3, #5] - strb r2, [r3, #6] - strb r2, [r3, #7] - movs r0, #0 - strh r2, [r3, #8] - strb r0, [r3, #0xa] - strb r0, [r3, #0xb] - movs r1, #0x35 - adds r1, r1, r3 - mov ip, r1 - adds r1, r3, #0 - adds r1, #0x36 - strb r0, [r1] - strb r0, [r3, #0xc] - strb r0, [r3, #0xd] - strb r0, [r3, #0xe] - strb r0, [r3, #0x11] - strb r0, [r3, #0x12] - strb r0, [r3, #0x13] - strb r0, [r3, #0x14] - strb r0, [r3, #0x1b] - strb r0, [r3, #0x1e] - strb r0, [r3, #0x1f] - subs r1, #0x16 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - strh r2, [r3, #0x22] - strh r2, [r3, #0x24] - adds r1, #5 - strb r0, [r1] - str r2, [r3, #0x2c] - adds r1, #0x5a - strh r2, [r1] - mov r1, ip - strb r0, [r1] - str r2, [r3, #0x30] - adds r1, r3, #0 - adds r1, #0x38 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #1 - strb r0, [r1] - adds r1, #5 - strb r0, [r1] - subs r1, #3 - strb r0, [r1] - movs r0, #1 - rsbs r0, r0, #0 - adds r1, #4 - movs r2, #0x40 - bl sub_0801D610 - ldr r0, _08078CB0 @ =gUnk_03003DF0 - movs r1, #0xc4 - lsls r1, r1, #1 - bl sub_0801D630 - pop {pc} - .align 2, 0 -_08078CAC: .4byte gUnk_03003F80 -_08078CB0: .4byte gUnk_03003DF0 - - thumb_func_start sub_08078CB4 -sub_08078CB4: @ 0x08078CB4 - push {lr} - ldr r0, _08078CCC @ =gUnk_03003F80 - ldrb r0, [r0, #5] - subs r0, #3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _08078CC8 - bl sub_08078D60 -_08078CC8: - pop {pc} - .align 2, 0 -_08078CCC: .4byte gUnk_03003F80 - - thumb_func_start sub_08078CD0 -sub_08078CD0: @ 0x08078CD0 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, [r5, #0x70] - ldrh r0, [r5, #0x36] - subs r0, #1 - strh r0, [r4, #0x36] - ldrb r1, [r5, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - ldr r1, _08078D28 @ =gUnk_0811C01C - ldr r0, _08078D2C @ =gUnk_03003F80 - ldr r0, [r0, #0x2c] - ldrb r0, [r0, #0x1e] - adds r0, r0, r1 - ldrb r2, [r0] - ldr r3, _08078D30 @ =gUnk_0811C0B0 - ldrb r1, [r4, #0x1c] - movs r0, #0x30 - ands r0, r1 - lsrs r0, r0, #2 - adds r0, r0, r3 - lsls r2, r2, #1 - ldr r0, [r0] - adds r2, r0, r2 - ldrb r0, [r5, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _08078D34 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrh r0, [r5, #0x2e] - subs r0, r0, r1 - b _08078D3C - .align 2, 0 -_08078D28: .4byte gUnk_0811C01C -_08078D2C: .4byte gUnk_03003F80 -_08078D30: .4byte gUnk_0811C0B0 -_08078D34: - movs r0, #0 - ldrsb r0, [r2, r0] - ldrh r1, [r5, #0x2e] - adds r0, r0, r1 -_08078D3C: - strh r0, [r4, #0x2e] - movs r0, #1 - ldrsb r0, [r2, r0] - ldrh r1, [r5, #0x32] - adds r0, r0, r1 - strh r0, [r4, #0x32] - adds r0, r5, #0 - movs r1, #0 - adds r2, r4, #0 - bl sub_0806FEBC - ldr r1, [r4, #0x50] - cmp r1, #0 - beq _08078D5E - adds r0, r4, #0 - bl sub_0806FA24 -_08078D5E: - pop {r4, r5, pc} - - thumb_func_start sub_08078D60 -sub_08078D60: @ 0x08078D60 - push {r4, r5, r6, lr} - ldr r1, _08078DCC @ =gLinkEntity - ldr r0, [r1, #0x74] - ldr r4, [r0, #0x54] - ldrb r0, [r4, #0xc] - adds r6, r1, #0 - cmp r0, #2 - beq _08078D72 - b _08078E82 -_08078D72: - adds r0, r6, #0 - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r6, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - ldrb r1, [r6, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x1b] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x1b] - adds r0, r6, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - adds r0, #0x38 - strb r1, [r0] - adds r0, r6, #0 - adds r0, #0x5a - ldrb r0, [r0] - movs r2, #0x7f - ands r2, r0 - ldr r1, _08078DD0 @ =gUnk_0811C0E8 - ldrb r0, [r4, #0x16] - lsrs r0, r0, #4 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - ldrb r0, [r6, #0x18] - lsls r0, r0, #0x19 - cmp r0, #0 - bge _08078DD4 - adds r2, r1, r2 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrh r0, [r6, #0x2e] - subs r0, r0, r1 - strh r0, [r4, #0x2e] - adds r1, r2, #0 - b _08078DE0 - .align 2, 0 -_08078DCC: .4byte gLinkEntity -_08078DD0: .4byte gUnk_0811C0E8 -_08078DD4: - adds r1, r1, r2 - movs r0, #0 - ldrsb r0, [r1, r0] - ldrh r2, [r6, #0x2e] - adds r0, r0, r2 - strh r0, [r4, #0x2e] -_08078DE0: - movs r0, #1 - ldrsb r0, [r1, r0] - ldrh r1, [r4, #0x36] - adds r0, r0, r1 - strh r0, [r4, #0x36] - adds r5, r6, #0 - ldrh r0, [r5, #0x32] - strh r0, [r4, #0x32] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0806FAB0 - ldr r0, _08078E34 @ =gUnk_03003F80 - ldrb r0, [r0, #5] - cmp r0, #4 - bne _08078E4C - ldrb r1, [r5, #0x19] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r2, [r4, #0x19] - movs r0, #0x3f - ands r0, r2 - orrs r0, r1 - strb r0, [r4, #0x19] - adds r0, r4, #0 - bl sub_0806F8DC - ldrb r1, [r4, #0x16] - movs r0, #0xf - ands r0, r1 - cmp r0, #2 - bne _08078E82 - ldr r0, _08078E38 @ =gUnk_030010A0 - ldr r1, [r0] - movs r0, #3 - ands r1, r0 - cmp r1, #1 - beq _08078E3C - cmp r1, #3 - beq _08078E44 - b _08078E82 - .align 2, 0 -_08078E34: .4byte gUnk_03003F80 -_08078E38: .4byte gUnk_030010A0 -_08078E3C: - ldrh r0, [r4, #0x2e] - adds r0, #1 - strh r0, [r4, #0x2e] - b _08078E82 -_08078E44: - ldrh r0, [r4, #0x2e] - subs r0, #1 - strh r0, [r4, #0x2e] - b _08078E82 -_08078E4C: - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - cmp r0, #0 - beq _08078E62 - adds r0, r5, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - subs r1, #1 - b _08078E6E -_08078E62: - adds r0, r6, #0 - adds r0, #0x29 - ldrb r1, [r0] - lsls r1, r1, #0x1d - lsrs r1, r1, #0x1d - adds r1, #1 -_08078E6E: - 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] -_08078E82: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08078E84 -sub_08078E84: @ 0x08078E84 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, _08078ED0 @ =gLinkEntity - cmp r4, r0 - bne _08078EAC - adds r0, r5, #0 - bl sub_08079BD8 - adds r0, r4, #0 - adds r0, #0x62 - ldrb r0, [r0] - adds r1, r5, #0 - adds r1, #0x62 - strb r0, [r1] - adds r0, r4, #0 - adds r0, #0x63 - ldrb r0, [r0] - adds r1, #1 - strb r0, [r1] -_08078EAC: - ldr r0, _08078ED4 @ =gUnk_080029B4 - ldrh r2, [r4, #0x12] - lsls r2, r2, #4 - adds r0, #4 - adds r2, r2, r0 - ldrb r1, [r4, #0x1e] - lsls r1, r1, #2 - ldr r0, [r2] - adds r0, r0, r1 - ldrb r0, [r0, #1] - cmp r0, #0 - beq _08078ED8 - adds r0, r4, #0 - movs r1, #1 - adds r2, r5, #0 - bl sub_0806FEBC - b _08078EE2 - .align 2, 0 -_08078ED0: .4byte gLinkEntity -_08078ED4: .4byte gUnk_080029B4 -_08078ED8: - adds r0, r4, #0 - movs r1, #3 - adds r2, r5, #0 - bl sub_0806FEBC -_08078EE2: - pop {r4, r5, pc} - - thumb_func_start sub_08078EE4 -sub_08078EE4: @ 0x08078EE4 - ldr r2, _08078EF4 @ =gLinkEntity - ldr r1, _08078EF8 @ =gUnk_03003F80 - ldrh r0, [r1, #0x16] - strh r0, [r2, #0x2e] - ldrh r0, [r1, #0x18] - strh r0, [r2, #0x32] - bx lr - .align 2, 0 -_08078EF4: .4byte gLinkEntity -_08078EF8: .4byte gUnk_03003F80 - - thumb_func_start sub_08078EFC -sub_08078EFC: @ 0x08078EFC - push {lr} - ldr r3, _08078F18 @ =gUnk_03003F80 - ldrb r2, [r3, #0xc] - cmp r2, #0 - beq _08078F20 - ldr r0, _08078F1C @ =gLinkEntity - movs r1, #0 - strb r2, [r0, #0xc] - strb r1, [r0, #0xd] - strb r1, [r3, #0xc] - bl sub_08070680 - movs r0, #1 - b _08078F22 - .align 2, 0 -_08078F18: .4byte gUnk_03003F80 -_08078F1C: .4byte gLinkEntity -_08078F20: - movs r0, #0 -_08078F22: - pop {pc} - - thumb_func_start sub_08078F24 -sub_08078F24: @ 0x08078F24 - push {r4, lr} - ldr r4, _08078F38 @ =gUnk_03003F80 - ldrb r3, [r4, #0xd] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - beq _08078F3C - bl sub_08078F60 - b _08078F5A - .align 2, 0 -_08078F38: .4byte gUnk_03003F80 -_08078F3C: - ldr r2, _08078F5C @ =gUnk_080C9160 - lsls r0, r3, #4 - adds r0, r0, r2 - ldrh r1, [r0] - adds r0, r4, #0 - adds r0, #0x8c - strh r1, [r0] - lsls r0, r3, #4 - adds r0, #0x80 - adds r0, r0, r2 - ldrh r0, [r0] - rsbs r0, r0, #0 - adds r1, r4, #0 - adds r1, #0x8e - strh r0, [r1] -_08078F5A: - pop {r4, pc} - .align 2, 0 -_08078F5C: .4byte gUnk_080C9160 - - thumb_func_start sub_08078F60 -sub_08078F60: @ 0x08078F60 - ldr r0, _08078F70 @ =gUnk_03003F80 - adds r1, r0, #0 - adds r1, #0x8c - movs r2, #0 - strh r2, [r1] - adds r0, #0x8e - strh r2, [r0] - bx lr - .align 2, 0 -_08078F70: .4byte gUnk_03003F80 - - thumb_func_start sub_08078F74 -sub_08078F74: @ 0x08078F74 - push {lr} - adds r2, r0, #0 - ldr r0, _08078FA4 @ =gUnk_02033A90 - ldrb r0, [r0, #0x18] - cmp r0, #3 - bne _08078FAC - ldr r3, _08078FA8 @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x35 - ldrb r0, [r0] - cmp r0, #0xff - beq _08078FAC - movs r1, #0 - movs r0, #0x81 - strb r0, [r3, #2] - movs r0, #0x15 - strb r0, [r2, #0xc] - strb r1, [r2, #0xd] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #1 - b _08078FAE - .align 2, 0 -_08078FA4: .4byte gUnk_02033A90 -_08078FA8: .4byte gUnk_03003F80 -_08078FAC: - movs r0, #0 -_08078FAE: - pop {pc} - - thumb_func_start sub_08078FB0 -sub_08078FB0: @ 0x08078FB0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - ldr r5, _08078FE0 @ =gUnk_03003F80 - ldrb r1, [r5, #6] - movs r6, #0x80 - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - bne _08078FCA - adds r1, r5, #0 - adds r1, #0x35 - movs r0, #0xff - strb r0, [r1] -_08078FCA: - adds r0, r4, #0 - bl sub_08079064 - ldr r1, [r5, #0x30] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _08078FE4 - movs r2, #0x58 - b _08078FFA - .align 2, 0 -_08078FE0: .4byte gUnk_03003F80 -_08078FE4: - ands r1, r6 - cmp r1, #0 - beq _08078FEE - movs r2, #0x18 - b _08078FFA -_08078FEE: - ldrh r0, [r5, #8] - lsrs r0, r0, #8 - movs r2, #0xb8 - cmp r0, #7 - bne _08078FFA - movs r2, #0x34 -_08078FFA: - ldr r0, _08079014 @ =gUnk_03003F80 - adds r3, r0, #0 - ldrb r1, [r0, #8] - cmp r2, r1 - bls _08079040 - ldrb r0, [r4, #0x14] - adds r2, r0, #0 - cmp r2, #4 - bls _08079018 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - b _08079020 - .align 2, 0 -_08079014: .4byte gUnk_03003F80 -_08079018: - ldrb r1, [r4, #0x18] - movs r0, #0x41 - rsbs r0, r0, #0 - ands r0, r1 -_08079020: - strb r0, [r4, #0x18] - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xc - ands r0, r1 - cmp r0, #0 - beq _08079036 - ldrh r1, [r3, #8] - ldrb r0, [r4, #0x14] - adds r2, r1, r0 - b _08079042 -_08079036: - lsls r0, r2, #0x18 - lsrs r0, r0, #0x19 - ldrh r3, [r3, #8] - adds r2, r0, r3 - b _08079042 -_08079040: - ldrh r2, [r0, #8] -_08079042: - ldrh r0, [r4, #0x12] - lsls r0, r0, #8 - adds r1, r4, #0 - adds r1, #0x58 - ldrb r1, [r1] - orrs r0, r1 - cmp r2, r0 - beq _08079062 - lsrs r0, r2, #8 - strh r0, [r4, #0x12] - movs r0, #0xff - ands r2, r0 - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_080042AC -_08079062: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08079064 -sub_08079064: @ 0x08079064 - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r0, _0807909C @ =gUnk_03003F80 - ldr r1, [r0, #0x30] - ldr r2, _080790A0 @ =0x00100080 - ands r1, r2 - adds r5, r0, #0 - cmp r1, #0 - bne _080790DE - movs r3, #0 - movs r2, #0 - ldr r1, _080790A4 @ =gUnk_03000B80 -_0807907C: - ldrb r0, [r1, #0xf] - cmp r0, r3 - bls _08079086 - adds r3, r0, #0 - ldrh r4, [r1, #0x10] -_08079086: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bls _0807907C - adds r2, r5, #0 - ldrb r0, [r2, #0xe] - cmp r0, r3 - bhs _080790A8 - strh r4, [r2, #8] - b _080790DE - .align 2, 0 -_0807909C: .4byte gUnk_03003F80 -_080790A0: .4byte 0x00100080 -_080790A4: .4byte gUnk_03000B80 -_080790A8: - adds r0, r2, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080790C0 - ldr r0, _080790BC @ =0x000002BE - strh r0, [r2, #8] - b _080790DE - .align 2, 0 -_080790BC: .4byte 0x000002BE -_080790C0: - ldrh r1, [r5, #8] - movs r0, #0xc1 - lsls r0, r0, #3 - cmp r1, r0 - beq _080790D8 - movs r0, #0x82 - lsls r0, r0, #1 - cmp r1, r0 - beq _080790D8 - ldr r0, _080790E0 @ =0x00000404 - cmp r1, r0 - bne _080790DE -_080790D8: - adds r0, r6, #0 - bl sub_080790E4 -_080790DE: - pop {r4, r5, r6, pc} - .align 2, 0 -_080790E0: .4byte 0x00000404 - - thumb_func_start sub_080790E4 -sub_080790E4: @ 0x080790E4 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _08079128 @ =gUnk_03003F80 - ldrb r0, [r5, #0xb] - cmp r0, #0 - bne _08079182 - movs r0, #0x10 - bl sub_080793E4 - cmp r0, #0 - beq _0807912C - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x14 - strb r0, [r1] - adds r1, #5 - movs r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - bl sub_080526A0 - movs r0, #0x7a - bl sub_080A3268 - b _08079182 - .align 2, 0 -_08079128: .4byte gUnk_03003F80 -_0807912C: - ldrb r1, [r5, #6] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08079182 - cmp r1, #0 - bne _08079150 - movs r0, #1 - bl sub_080793E4 - cmp r0, #0 - beq _0807914C - ldrb r0, [r4, #0xf] - cmp r0, #5 - bhi _08079154 - adds r0, #1 -_0807914C: - strb r0, [r4, #0xf] - b _08079182 -_08079150: - subs r0, r1, #1 - strb r0, [r5, #6] -_08079154: - ldr r2, _08079174 @ =gUnk_03003F80 - ldrb r0, [r4, #0x14] - adds r1, r2, #0 - adds r1, #0x35 - strb r0, [r1] - adds r1, #0x73 - movs r0, #0x19 - strb r0, [r1] - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0807917C - ldr r0, _08079178 @ =0x0000093C - b _08079180 - .align 2, 0 -_08079174: .4byte gUnk_03003F80 -_08079178: .4byte 0x0000093C -_0807917C: - movs r0, #0xcf - lsls r0, r0, #2 -_08079180: - strh r0, [r2, #8] -_08079182: - pop {r4, r5, pc} - - thumb_func_start sub_08079184 -sub_08079184: @ 0x08079184 - ldr r0, _08079194 @ =gUnk_03003F80 - movs r1, #0 - strb r1, [r0, #5] - strb r1, [r0, #1] - ldr r0, _08079198 @ =gLinkEntity - str r1, [r0, #0x74] - bx lr - .align 2, 0 -_08079194: .4byte gUnk_03003F80 -_08079198: .4byte gLinkEntity - - thumb_func_start sub_0807919C -sub_0807919C: @ 0x0807919C - push {lr} - ldr r0, _080791B0 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080791B4 - bl sub_080791BC - b _080791B8 - .align 2, 0 -_080791B0: .4byte gUnk_03003F80 -_080791B4: - bl sub_08079258 -_080791B8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_080791BC -sub_080791BC: @ 0x080791BC - ldr r0, _080791CC @ =gLinkEntity - movs r2, #0 - movs r1, #1 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - strb r2, [r0, #0xf] - bx lr - .align 2, 0 -_080791CC: .4byte gLinkEntity - - thumb_func_start sub_080791D0 -sub_080791D0: @ 0x080791D0 - push {lr} - ldr r3, _0807920C @ =gUnk_03003F80 - ldr r0, [r3, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080791E8 - ldr r0, _08079210 @ =gLinkEntity - ldrb r1, [r0, #0x18] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #0x18] -_080791E8: - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08079214 - ldr r2, _08079210 @ =gLinkEntity - 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] - bl sub_0807921C - b _08079218 - .align 2, 0 -_0807920C: .4byte gUnk_03003F80 -_08079210: .4byte gLinkEntity -_08079214: - bl sub_08079258 -_08079218: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807921C -sub_0807921C: @ 0x0807921C - push {r4, lr} - ldr r4, _0807924C @ =gLinkEntity - 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 r2, _08079250 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08079254 @ =0xFECBF6FA - ands r0, r1 - str r0, [r2, #0x30] - bl sub_08079938 - bl sub_080791BC - adds r0, r4, #0 - bl sub_0805E374 - pop {r4, pc} - .align 2, 0 -_0807924C: .4byte gLinkEntity -_08079250: .4byte gUnk_03003F80 -_08079254: .4byte 0xFECBF6FA - - thumb_func_start sub_08079258 -sub_08079258: @ 0x08079258 - push {r4, lr} - ldr r4, _080792AC @ =gUnk_03003F80 - ldr r0, [r4, #0x30] - movs r1, #0x40 - ands r0, r1 - ldr r3, _080792B0 @ =gLinkEntity - cmp r0, #0 - bne _08079278 - ldrb r1, [r3, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r3, #0x10] - ldrb r0, [r3, #0x18] - movs r1, #3 - orrs r0, r1 - strb r0, [r3, #0x18] -_08079278: - movs r0, #9 - strb r0, [r3, #0xc] - movs r0, #1 - strb r0, [r3, #0xd] - adds r2, r3, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 - strb r0, [r2] - movs r2, #0 - ldr r0, _080792B4 @ =0x00000C18 - strh r0, [r4, #8] - ldr r0, [r4, #0x30] - ldr r1, _080792B8 @ =0xFECFFEFA - ands r0, r1 - str r0, [r4, #0x30] - adds r0, r4, #0 - adds r0, #0x26 - strb r2, [r0] - strb r2, [r4, #0xc] - adds r0, r3, #0 - bl sub_0805E374 - pop {r4, pc} - .align 2, 0 -_080792AC: .4byte gUnk_03003F80 -_080792B0: .4byte gLinkEntity -_080792B4: .4byte 0x00000C18 -_080792B8: .4byte 0xFECFFEFA - - thumb_func_start sub_080792BC -sub_080792BC: @ 0x080792BC - push {r4, lr} - ldr r3, _080792D0 @ =gUnk_03003F80 - movs r4, #0x13 - strb r4, [r3, #0xc] - adds r3, #0x38 - strb r2, [r3] - ldr r2, _080792D4 @ =gLinkEntity - strh r0, [r2, #0x24] - strb r1, [r2, #0x15] - pop {r4, pc} - .align 2, 0 -_080792D0: .4byte gUnk_03003F80 -_080792D4: .4byte gLinkEntity - - thumb_func_start sub_080792D8 -sub_080792D8: @ 0x080792D8 - push {r4, r5, r6, lr} - ldr r5, _08079344 @ =gLinkEntity - adds r3, r5, #0 - adds r3, #0x42 - ldrb r0, [r3] - cmp r0, #0 - beq _080793E0 - ldrb r2, [r5, #0xc] - cmp r2, #0xb - beq _08079338 - ldr r0, _08079348 @ =gUnk_03003F80 - ldrb r1, [r0, #0x1e] - adds r6, r0, #0 - cmp r1, #0 - bne _08079338 - ldrb r0, [r6, #5] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08079338 - ldrb r0, [r6, #2] - cmp r0, #0 - bne _08079338 - ldrb r0, [r6, #0x12] - cmp r0, #0xff - beq _08079338 - ldrb r1, [r6, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08079338 - adds r0, r6, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - subs r0, #1 - cmp r0, #0 - bgt _08079338 - cmp r2, #3 - beq _08079338 - ldr r1, [r6, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xb - ands r1, r0 - cmp r1, #0 - beq _0807934C -_08079338: - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - b _080793E0 - .align 2, 0 -_08079344: .4byte gLinkEntity -_08079348: .4byte gUnk_03003F80 -_0807934C: - cmp r2, #0x1d - bne _0807935E - adds r0, r5, #0 - adds r0, #0x3e - ldrb r0, [r0] - cmp r0, #0x10 - beq _0807935E - strb r1, [r3] - b _080793E0 -_0807935E: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r3, [r0] - movs r1, #0 - ldrsb r1, [r0, r1] - adds r2, r0, #0 - cmp r1, #0 - ble _08079372 - subs r0, r3, #1 - b _08079374 -_08079372: - adds r0, r3, #1 -_08079374: - strb r0, [r2] - ldrb r0, [r2] - cmp r0, #0 - beq _080793E0 - adds r4, r6, #0 - ldrb r0, [r4, #7] - movs r1, #0xdf - ands r1, r0 - strb r1, [r4, #7] - adds r0, r5, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _080793CA - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _080793CA - ldr r0, [r4, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080793CA - ldrb r0, [r4, #2] - cmp r0, #0 - bne _080793CA - bl sub_08077B2C - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _080793C4 - movs r0, #0x8a - lsls r0, r0, #1 - strh r0, [r4, #8] - b _080793CA -_080793C4: - movs r0, #0x83 - lsls r0, r0, #3 - strh r0, [r6, #8] -_080793CA: - movs r1, #0xa0 - lsls r1, r1, #2 - adds r4, r5, #0 - adds r4, #0x3e - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_080027EA - ldrb r0, [r4] - bl sub_0807A5B8 -_080793E0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080793E4 -sub_080793E4: @ 0x080793E4 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r0, _080793FC @ =gUnk_03003F80 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08079408 - ldr r1, _08079400 @ =gUnk_0811C0F8 - ldr r0, _08079404 @ =gLinkEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - b _08079410 - .align 2, 0 -_080793FC: .4byte gUnk_03003F80 -_08079400: .4byte gUnk_0811C0F8 -_08079404: .4byte gLinkEntity -_08079408: - ldr r1, _08079448 @ =gUnk_0811C0F8 - ldr r0, _0807944C @ =gLinkEntity - ldrb r0, [r0, #0x15] - lsrs r0, r0, #2 -_08079410: - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r4, [r0] - bl sub_08079778 - cmp r0, #0 - beq _08079454 - ldr r0, _08079450 @ =gUnk_03003F80 - adds r0, #0x90 - ldrh r0, [r0] - ands r0, r4 - cmp r0, #0 - beq _08079454 - cmp r5, #0 - beq _08079442 - bl sub_0807A500 - ldr r1, _0807944C @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - adds r2, r5, #0 - bl sub_080002F0 - cmp r0, #0 - beq _08079454 -_08079442: - movs r0, #1 - b _08079456 - .align 2, 0 -_08079448: .4byte gUnk_0811C0F8 -_0807944C: .4byte gLinkEntity -_08079450: .4byte gUnk_03003F80 -_08079454: - movs r0, #0 -_08079456: - pop {r4, r5, pc} - - thumb_func_start sub_08079458 -sub_08079458: @ 0x08079458 - push {r4, r5, lr} - ldr r4, _08079498 @ =gLinkEntity - movs r1, #0 - movs r0, #0x19 - strb r0, [r4, #0xc] - str r1, [r4, #0x34] - str r1, [r4, #0x20] - adds r0, r4, #0 - adds r0, #0x42 - strb r1, [r0] - bl sub_08078EE4 - ldr r2, _0807949C @ =gUnk_03003F80 - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xa - ands r0, r1 - cmp r0, #0 - bne _08079514 - movs r0, #0x80 - lsls r0, r0, #9 - ands r1, r0 - cmp r1, #0 - beq _080794E4 - adds r0, r2, #0 - adds r0, #0x84 - ldr r1, [r0] - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x2e] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x32] - b _08079514 - .align 2, 0 -_08079498: .4byte gLinkEntity -_0807949C: .4byte gUnk_03003F80 -_080794A0: - ldr r2, _080794DC @ =gLinkEntity - ldr r0, [r4] - lsrs r0, r0, #0x1e - adds r1, r2, #0 - adds r1, #0x38 - strb r0, [r1] - ldr r3, _080794E0 @ =gUnk_03000BF0 - ldr r0, [r4] - movs r1, #0x3f - ands r0, r1 - lsls r0, r0, #4 - ldrh r1, [r3, #6] - adds r0, r0, r1 - adds r0, #8 - strh r0, [r2, #0x2e] - ldr r0, [r4] - movs r1, #0xfc - lsls r1, r1, #4 - ands r0, r1 - lsrs r0, r0, #2 - ldrh r3, [r3, #8] - adds r0, r0, r3 - adds r0, #8 - strh r0, [r2, #0x32] - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - b _08079514 - .align 2, 0 -_080794DC: .4byte gLinkEntity -_080794E0: .4byte gUnk_03000BF0 -_080794E4: - movs r5, #0 - ldr r1, [r2, #0x40] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _08079514 - adds r4, r2, #0 - adds r4, #0x40 -_080794F4: - ldr r1, [r4] - ldrh r0, [r4] - lsrs r1, r1, #0x1e - bl sub_080002E0 - cmp r0, #0xf - bne _080794A0 - adds r4, #4 - adds r5, #1 - cmp r5, #0xf - bhi _08079514 - ldr r1, [r4] - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - bne _080794F4 -_08079514: - ldr r0, _0807951C @ =gLinkEntity - bl sub_08016A04 - pop {r4, r5, pc} - .align 2, 0 -_0807951C: .4byte gLinkEntity - - thumb_func_start sub_08079520 -sub_08079520: @ 0x08079520 - push {lr} - adds r1, r0, #0 - ldr r0, _08079538 @ =gUnk_03003F80 - ldrb r0, [r0, #0xd] - cmp r0, #0x7f - ble _08079532 - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #3 -_08079532: - strb r0, [r1, #0x15] - pop {pc} - .align 2, 0 -_08079538: .4byte gUnk_03003F80 - - thumb_func_start sub_0807953C -sub_0807953C: @ 0x0807953C - ldr r1, _08079548 @ =0x00000F38 - ldr r0, _0807954C @ =gUnk_03003F80 - adds r0, #0x92 - ldrh r0, [r0] - ands r0, r1 - bx lr - .align 2, 0 -_08079548: .4byte 0x00000F38 -_0807954C: .4byte gUnk_03003F80 - - thumb_func_start sub_08079550 -sub_08079550: @ 0x08079550 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - ldr r0, _080795A8 @ =gUnk_03004030 - ldrb r0, [r0, #8] - cmp r0, #0 - beq _08079562 - b _080796FC -_08079562: - ldr r2, _080795AC @ =gUnk_03003F80 - ldrb r0, [r2, #0x1e] - cmp r0, #0 - beq _08079576 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #3 - ands r0, r1 - cmp r0, #0 - beq _080795B4 -_08079576: - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - ldr r1, _080795B0 @ =gLinkEntity - mov r8, r1 - cmp r0, #0 - bne _080795A0 - ldrb r1, [r2, #0x1b] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _080795A0 - mov r3, r8 - ldrb r1, [r3, #0x15] - ldrb r2, [r2, #0xd] - cmp r1, r2 - bne _080795A0 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080795B4 -_080795A0: - movs r0, #0 - mov r5, r8 - strb r0, [r5, #0xf] - b _080796FE - .align 2, 0 -_080795A8: .4byte gUnk_03004030 -_080795AC: .4byte gUnk_03003F80 -_080795B0: .4byte gLinkEntity -_080795B4: - bl sub_08079778 - cmp r0, #0 - bne _080795BE - b _080796FC -_080795BE: - ldr r3, _08079610 @ =gLinkEntity - ldrb r2, [r3, #0x14] - movs r0, #6 - ands r0, r2 - ldr r1, _08079614 @ =gUnk_0811C100 - adds r1, r0, r1 - movs r0, #2 - ands r0, r2 - mov r8, r3 - cmp r0, #0 - beq _0807961C - movs r6, #0x2e - ldrsh r2, [r3, r6] - movs r0, #0 - ldrsb r0, [r1, r0] - adds r2, r2, r0 - ldr r4, _08079618 @ =gUnk_03000BF0 - ldrh r0, [r4, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - mov r0, r8 - movs r5, #0x32 - ldrsh r1, [r0, r5] - ldr r0, [r0, #0x48] - ldrb r5, [r0, #3] - adds r0, r1, r5 - ldrh r4, [r4, #8] - subs r0, r0, r4 - asrs r0, r0, #4 - ands r0, r3 - lsls r7, r0, #6 - orrs r7, r2 - subs r1, r1, r5 - subs r1, r1, r4 - asrs r1, r1, #4 - ands r1, r3 - lsls r4, r1, #6 - orrs r4, r2 - b _0807965E - .align 2, 0 -_08079610: .4byte gLinkEntity -_08079614: .4byte gUnk_0811C100 -_08079618: .4byte gUnk_03000BF0 -_0807961C: - mov r6, r8 - movs r0, #0x2e - ldrsh r2, [r6, r0] - ldr r0, [r6, #0x48] - ldrb r0, [r0, #4] - mov ip, r0 - adds r0, r2, r0 - ldr r4, _080796EC @ =gUnk_03000BF0 - ldrh r3, [r4, #6] - mov sb, r3 - subs r0, r0, r3 - asrs r7, r0, #4 - movs r3, #0x3f - ands r7, r3 - movs r5, #0x32 - ldrsh r0, [r6, r5] - ldrb r1, [r1, #1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r0, r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r7, r0 - mov r6, ip - subs r2, r2, r6 - mov r1, sb - subs r2, r2, r1 - asrs r4, r2, #4 - ands r4, r3 - orrs r4, r0 -_0807965E: - adds r0, r7, #0 - mov r5, r8 - adds r5, #0x38 - ldrb r1, [r5] - bl sub_080002C8 - adds r3, r0, #0 - ldr r6, _080796F0 @ =gUnk_0811C1E8 - mov r1, r8 - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - adds r0, r3, #0 - bl sub_08007DD6 - adds r3, r0, #0 - cmp r3, #0 - beq _080796FC - adds r0, r4, #0 - ldrb r1, [r5] - bl sub_080002C8 - adds r3, r0, #0 - mov r5, r8 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #2 - adds r0, r0, r6 - ldr r1, [r0] - adds r0, r3, #0 - bl sub_08007DD6 - adds r3, r0, #0 - cmp r3, #0 - beq _080796FC - ldr r1, _080796F4 @ =gUnk_03003F80 - ldrb r2, [r1, #6] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r1, #6] - ldrb r0, [r1, #0x1e] - adds r4, r1, #0 - cmp r0, #0 - bne _080796C8 - ldrb r0, [r5, #0xf] - adds r0, #1 - strb r0, [r5, #0xf] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _080796FC -_080796C8: - ldr r0, _080796F8 @ =gLinkEntity - subs r1, r3, #1 - movs r2, #0 - strb r1, [r0, #0x14] - movs r1, #4 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0x81 - strb r1, [r4, #2] - bl sub_08070680 - movs r0, #1 - b _080796FE - .align 2, 0 -_080796EC: .4byte gUnk_03000BF0 -_080796F0: .4byte gUnk_0811C1E8 -_080796F4: .4byte gUnk_03003F80 -_080796F8: .4byte gLinkEntity -_080796FC: - movs r0, #0 -_080796FE: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08079708 -sub_08079708: @ 0x08079708 - push {r4, lr} - ldr r4, _08079740 @ =gUnk_03003F80 - adds r2, r4, #0 - adds r2, #0xa8 - movs r3, #0 - movs r1, #0x12 - strb r1, [r2] - subs r2, #0x6c - movs r1, #0xff - strb r1, [r2] - ldrb r2, [r0, #0x10] - movs r1, #0x7f - ands r1, r2 - strb r1, [r0, #0x10] - movs r1, #0xa - strb r1, [r0, #0xc] - strb r3, [r0, #0xd] - bl sub_080085B0 - ldr r0, [r4, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0807973E - bl sub_0805E544 -_0807973E: - pop {r4, pc} - .align 2, 0 -_08079740: .4byte gUnk_03003F80 - - thumb_func_start sub_08079744 -sub_08079744: @ 0x08079744 - push {lr} - adds r2, r0, #0 - ldrh r0, [r2, #0x2e] - movs r1, #0xf - ands r1, r0 - cmp r1, #8 - beq _0807975E - cmp r1, #8 - ble _0807975A - subs r0, #1 - b _0807975C -_0807975A: - adds r0, #1 -_0807975C: - strh r0, [r2, #0x2e] -_0807975E: - ldrh r0, [r2, #0x32] - movs r1, #0xf - ands r1, r0 - cmp r1, #8 - beq _08079774 - cmp r1, #8 - ble _08079770 - subs r0, #1 - b _08079772 -_08079770: - adds r0, #1 -_08079772: - strh r0, [r2, #0x32] -_08079774: - pop {pc} - .align 2, 0 - - thumb_func_start sub_08079778 -sub_08079778: @ 0x08079778 - push {lr} - ldr r0, _08079790 @ =gUnk_03003F80 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _0807979C - ldr r2, _08079794 @ =gUnk_0811C108 - ldr r1, _08079798 @ =gLinkEntity - ldrb r0, [r1, #0x14] - lsrs r0, r0, #1 - b _080797A4 - .align 2, 0 -_08079790: .4byte gUnk_03003F80 -_08079794: .4byte gUnk_0811C108 -_08079798: .4byte gLinkEntity -_0807979C: - ldr r2, _080797BC @ =gUnk_0811C108 - ldr r1, _080797C0 @ =gLinkEntity - ldrb r0, [r1, #0x15] - lsrs r0, r0, #2 -_080797A4: - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r2, [r0] - movs r3, #0 - ldrh r0, [r1, #0x2a] - ands r0, r2 - cmp r2, r0 - bne _080797B6 - movs r3, #1 -_080797B6: - adds r0, r3, #0 - pop {pc} - .align 2, 0 -_080797BC: .4byte gUnk_0811C108 -_080797C0: .4byte gLinkEntity - - thumb_func_start sub_080797C4 -sub_080797C4: @ 0x080797C4 - push {lr} - ldr r1, _080797E4 @ =gUnk_0811C110 - ldr r2, _080797E8 @ =gLinkEntity - ldrb r0, [r2, #0x15] - lsrs r0, r0, #3 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r1, [r0] - movs r3, #0 - ldrh r0, [r2, #0x2a] - ands r0, r1 - cmp r1, r0 - bne _080797E0 - movs r3, #1 -_080797E0: - adds r0, r3, #0 - pop {pc} - .align 2, 0 -_080797E4: .4byte gUnk_0811C110 -_080797E8: .4byte gLinkEntity - - thumb_func_start sub_080797EC -sub_080797EC: @ 0x080797EC - push {r4, r5, lr} - ldr r4, _08079804 @ =gUnk_03003F80 - ldr r1, [r4, #0x30] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807985C - ldrb r0, [r4, #5] - cmp r0, #0 - beq _0807980C - ldr r5, _08079808 @ =0x00000934 - b _0807991E - .align 2, 0 -_08079804: .4byte gUnk_03003F80 -_08079808: .4byte 0x00000934 -_0807980C: - ldrb r0, [r4, #3] - cmp r0, #0 - beq _08079818 - movs r5, #0x82 - lsls r5, r5, #3 - b _0807991E -_08079818: - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _080798A0 - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - movs r5, #0xa4 - lsls r5, r5, #2 - cmp r0, #0 - bne _0807991E - movs r5, #0xb6 - lsls r5, r5, #1 - ldrb r1, [r4, #0x1b] - movs r0, #0x48 - ands r0, r1 - cmp r0, #0 - bne _080798C2 - lsls r0, r1, #0x18 - cmp r0, #0 - bne _080798CE - adds r1, r4, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #0 - bne _08079852 - movs r0, #1 - strb r0, [r1] -_08079852: - ldr r5, _08079858 @ =0x00000404 - b _0807991E - .align 2, 0 -_08079858: .4byte 0x00000404 -_0807985C: - ldrb r0, [r4, #0x1c] - cmp r0, #0 - bne _0807992E - ldrb r0, [r4, #5] - cmp r0, #0 - beq _0807986E - movs r5, #0xd2 - lsls r5, r5, #2 - b _0807991E -_0807986E: - ldrb r0, [r4, #0x1e] - cmp r0, #0 - beq _0807987A - movs r5, #0xa6 - lsls r5, r5, #2 - b _0807991E -_0807987A: - movs r0, #0x80 - lsls r0, r0, #5 - ands r1, r0 - cmp r1, #0 - beq _0807988A - movs r5, #0xe2 - lsls r5, r5, #3 - b _0807991E -_0807988A: - ldrb r0, [r4, #3] - cmp r0, #0 - beq _08079896 - movs r5, #0xb0 - lsls r5, r5, #1 - b _0807991E -_08079896: - adds r0, r4, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _080798A6 -_080798A0: - movs r5, #0xa1 - lsls r5, r5, #2 - b _0807991E -_080798A6: - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - movs r5, #0xa4 - lsls r5, r5, #2 - cmp r0, #0 - bne _0807991E - movs r5, #0xb6 - lsls r5, r5, #1 - ldrb r1, [r4, #0x1b] - movs r0, #0x48 - ands r0, r1 - cmp r0, #0 - beq _080798C8 -_080798C2: - movs r0, #0x6c - strb r0, [r4] - b _0807992E -_080798C8: - lsls r0, r1, #0x18 - cmp r0, #0 - beq _080798FC -_080798CE: - movs r0, #0 - bl sub_080793E4 - cmp r0, #0 - beq _0807991E - bl sub_0807A500 - ldr r1, _080798F8 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - cmp r0, #0xff - beq _0807991E - ldrb r1, [r4, #0x1b] - movs r0, #0xf7 - ands r0, r1 - strb r0, [r4, #0x1b] - movs r5, #0xb8 - lsls r5, r5, #1 - b _0807991E - .align 2, 0 -_080798F8: .4byte gLinkEntity -_080798FC: - adds r1, r4, #0 - adds r1, #0xa8 - ldrb r0, [r1] - cmp r0, #0 - bne _0807990A - movs r0, #1 - strb r0, [r1] -_0807990A: - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - movs r5, #0x82 - lsls r5, r5, #1 - cmp r0, #0 - beq _0807991E - movs r5, #0xc1 - lsls r5, r5, #3 -_0807991E: - ldr r0, _08079930 @ =gUnk_03003F80 - strh r5, [r0, #8] - ldrb r0, [r0, #3] - cmp r0, #0 - bne _0807992E - ldr r0, _08079934 @ =gLinkEntity - bl sub_080042B8 -_0807992E: - pop {r4, r5, pc} - .align 2, 0 -_08079930: .4byte gUnk_03003F80 -_08079934: .4byte gLinkEntity - - thumb_func_start sub_08079938 -sub_08079938: @ 0x08079938 - push {r4, lr} - ldr r3, _08079954 @ =gUnk_03003F80 - ldr r2, [r3, #0x30] - movs r0, #8 - ands r0, r2 - mov ip, r3 - cmp r0, #0 - beq _080799E4 - ldrb r0, [r3, #5] - cmp r0, #0 - beq _0807995C - ldr r4, _08079958 @ =0x0000092C - b _08079AD8 - .align 2, 0 -_08079954: .4byte gUnk_03003F80 -_08079958: .4byte 0x0000092C -_0807995C: - mov r0, ip - adds r0, #0x3d - mov r3, ip - ldrb r1, [r3, #0x1c] - ldrb r0, [r0] - orrs r0, r1 - cmp r0, #0 - beq _0807996E - b _08079B14 -_0807996E: - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r2 - cmp r0, #0 - bne _08079A1E - mov r4, ip - ldrb r0, [r4, #3] - cmp r0, #0 - beq _08079988 - ldr r4, _08079984 @ =0x00000414 - b _08079AD8 - .align 2, 0 -_08079984: .4byte 0x00000414 -_08079988: - mov r0, ip - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _08079A5C - mov r0, ip - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _08079A6C - mov r0, ip - ldrb r1, [r0, #0x1b] - movs r0, #0x48 - ands r0, r1 - cmp r0, #0 - beq _080799AA - b _08079B14 -_080799AA: - cmp r1, #0 - beq _080799B0 - b _08079AA4 -_080799B0: - mov r1, ip - ldrb r0, [r1, #4] - cmp r0, #0 - beq _080799BA - b _08079B14 -_080799BA: - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _080799D0 - ldr r0, _080799D8 @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - cmp r0, #4 - bne _080799CC - b _08079AD4 -_080799CC: - cmp r0, #5 - bne _080799DC -_080799D0: - movs r4, #0x80 - lsls r4, r4, #3 - b _08079AD8 - .align 2, 0 -_080799D8: .4byte gUnk_02033A90 -_080799DC: - ldr r4, _080799E0 @ =0x000002C2 - b _08079AD8 - .align 2, 0 -_080799E0: .4byte 0x000002C2 -_080799E4: - mov r4, ip - ldrb r0, [r4, #5] - cmp r0, #0 - beq _080799F2 - movs r4, #0xd4 - lsls r4, r4, #2 - b _08079AD8 -_080799F2: - mov r0, ip - adds r0, #0x3d - mov r4, ip - ldrb r1, [r4, #0x1c] - ldrb r0, [r0] - orrs r0, r1 - cmp r0, #0 - beq _08079A04 - b _08079B14 -_08079A04: - movs r0, #0x80 - lsls r0, r0, #0xc - ands r0, r2 - cmp r0, #0 - beq _08079A14 - movs r4, #0x8b - lsls r4, r4, #4 - b _08079AD8 -_08079A14: - movs r0, #0x80 - lsls r0, r0, #0x12 - ands r0, r2 - cmp r0, #0 - beq _08079A24 -_08079A1E: - movs r4, #0x81 - lsls r4, r4, #4 - b _08079AD8 -_08079A24: - mov r1, ip - ldrb r0, [r1, #0x1e] - cmp r0, #0 - beq _08079A32 - movs r4, #0xa6 - lsls r4, r4, #2 - b _08079AD8 -_08079A32: - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r2 - cmp r0, #0 - beq _08079A44 - ldr r4, _08079A40 @ =0x0000070C - b _08079AD8 - .align 2, 0 -_08079A40: .4byte 0x0000070C -_08079A44: - mov r4, ip - ldrb r0, [r4, #3] - cmp r0, #0 - beq _08079A52 - movs r4, #0xb2 - lsls r4, r4, #1 - b _08079AD8 -_08079A52: - mov r0, ip - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08079A62 -_08079A5C: - movs r4, #0xa0 - lsls r4, r4, #2 - b _08079AD8 -_08079A62: - mov r0, ip - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08079A72 -_08079A6C: - movs r4, #0xa3 - lsls r4, r4, #2 - b _08079AD8 -_08079A72: - mov r0, ip - ldrb r1, [r0, #0x1b] - movs r0, #0x48 - ands r0, r1 - cmp r0, #0 - bne _08079B14 - movs r0, #0x20 - ands r2, r0 - cmp r2, #0 - beq _08079AA0 - ldr r0, _08079A98 @ =gUnk_02033A90 - ldrb r0, [r0, #0x17] - ldr r4, _08079A9C @ =0x000002C2 - cmp r0, #4 - bne _08079AD8 - movs r4, #0xa6 - lsls r4, r4, #3 - b _08079AD8 - .align 2, 0 -_08079A98: .4byte gUnk_02033A90 -_08079A9C: .4byte 0x000002C2 -_08079AA0: - cmp r1, #0 - beq _08079AAA -_08079AA4: - movs r4, #0xb4 - lsls r4, r4, #1 - b _08079AD8 -_08079AAA: - ldrb r0, [r3, #4] - cmp r0, #0 - bne _08079B14 - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08079AD4 - ldr r0, _08079ACC @ =gUnk_03000B80 - adds r0, #0x63 - ldrb r0, [r0] - cmp r0, #0 - bne _08079B14 - ldr r4, _08079AD0 @ =0x00000604 - b _08079AD8 - .align 2, 0 -_08079ACC: .4byte gUnk_03000B80 -_08079AD0: .4byte 0x00000604 -_08079AD4: - movs r4, #0x80 - lsls r4, r4, #1 -_08079AD8: - mov r1, ip - strh r4, [r1, #8] - ldrb r0, [r1, #5] - cmp r0, #0 - bne _08079B10 - movs r3, #0 - movs r2, #0 - ldr r1, _08079B18 @ =gUnk_03000B80 -_08079AE8: - ldrb r0, [r1, #0xf] - cmp r0, r3 - bls _08079AF0 - adds r3, r0, #0 -_08079AF0: - adds r1, #0x1c - adds r2, #1 - cmp r2, #3 - bls _08079AE8 - mov r2, ip - ldrb r0, [r2, #0xe] - cmp r0, r3 - blo _08079B14 - lsls r0, r4, #0x18 - lsrs r0, r0, #0x18 - ldrb r3, [r2] - cmp r0, r3 - bne _08079B10 - ldr r0, _08079B1C @ =gLinkEntity - bl sub_080042B8 -_08079B10: - ldr r0, _08079B20 @ =gUnk_03003F80 - strb r4, [r0] -_08079B14: - pop {r4, pc} - .align 2, 0 -_08079B18: .4byte gUnk_03000B80 -_08079B1C: .4byte gLinkEntity -_08079B20: .4byte gUnk_03003F80 - - thumb_func_start sub_08079B24 -sub_08079B24: @ 0x08079B24 - push {r4, r5, lr} - ldr r2, _08079B60 @ =gLinkEntity - ldrb r0, [r2, #0xc] - cmp r0, #0xa - beq _08079BD4 - adds r0, r2, #0 - adds r0, #0x45 - ldrb r3, [r0] - cmp r3, #0 - bne _08079BD4 - ldr r4, _08079B64 @ =gUnk_03003F80 - ldr r1, [r4, #0x30] - ldr r0, _08079B68 @ =0xFEFFFFFF - ands r1, r0 - str r1, [r4, #0x30] - adds r0, r2, #0 - adds r0, #0x42 - strb r3, [r0] - ldrb r0, [r4, #7] - cmp r0, #0 - bne _08079BD4 - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _08079B6C - bl sub_08079458 - b _08079BC0 - .align 2, 0 -_08079B60: .4byte gLinkEntity -_08079B64: .4byte gUnk_03003F80 -_08079B68: .4byte 0xFEFFFFFF -_08079B6C: - ldrb r0, [r4, #0x14] - cmp r0, #0 - bne _08079BC0 - movs r3, #0x80 - lsls r3, r3, #5 - ands r3, r1 - cmp r3, #0 - bne _08079BC0 - movs r5, #0x36 - ldrsh r0, [r2, r5] - cmp r0, #0 - bge _08079BA6 - ldr r0, [r2, #0x20] - cmp r0, #0 - ble _08079B8C - str r3, [r2, #0x20] -_08079B8C: - ldrb r1, [r4, #2] - movs r3, #0x41 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08079BD4 - strb r3, [r4, #2] - movs r0, #0xff - strb r0, [r2, #0x15] - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r4, #0xd] - b _08079BD4 -_08079BA6: - movs r0, #2 - ands r1, r0 - cmp r1, #0 - bne _08079BC0 - bl sub_08079D48 - cmp r0, #0 - bne _08079BC0 - ldrb r0, [r4, #0xa] - movs r1, #0x10 - orrs r0, r1 - strb r0, [r4, #0xa] - b _08079BD4 -_08079BC0: - ldr r2, _08079BD0 @ =gLinkEntity - ldrb r1, [r2, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2, #0x10] - movs r0, #0 - b _08079BD6 - .align 2, 0 -_08079BD0: .4byte gLinkEntity -_08079BD4: - movs r0, #1 -_08079BD6: - pop {r4, r5, pc} - - thumb_func_start sub_08079BD8 -sub_08079BD8: @ 0x08079BD8 - push {r4, r5, lr} - ldr r4, _08079C2C @ =gLinkEntity - ldr r1, [r4, #0x2c] - str r1, [r0, #0x2c] - ldr r1, [r4, #0x30] - str r1, [r0, #0x30] - ldr r1, [r4, #0x34] - str r1, [r0, #0x34] - adds r1, r4, #0 - adds r1, #0x38 - ldrb r2, [r1] - adds r1, r0, #0 - adds r1, #0x38 - strb r2, [r1] - ldrb r3, [r4, #0x19] - lsrs r3, r3, #6 - lsls r3, r3, #6 - ldrb r5, [r0, #0x19] - movs r2, #0x3f - adds r1, r2, #0 - ands r1, r5 - orrs r1, r3 - strb r1, [r0, #0x19] - ldrb r1, [r4, #0x1b] - lsrs r1, r1, #6 - lsls r1, r1, #6 - ldrb r3, [r0, #0x1b] - ands r2, r3 - orrs r2, r1 - strb r2, [r0, #0x1b] - adds r4, #0x29 - ldrb r2, [r4] - lsls r2, r2, #0x1d - adds r0, #0x29 - lsrs r2, r2, #0x1d - ldrb r3, [r0] - movs r1, #8 - rsbs r1, r1, #0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - pop {r4, r5, pc} - .align 2, 0 -_08079C2C: .4byte gLinkEntity - - thumb_func_start sub_08079C30 -sub_08079C30: @ 0x08079C30 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - ldr r0, _08079C68 @ =gUnk_03003F80 - ldrb r1, [r0, #0x14] - adds r7, r0, #0 - cmp r1, #0 - beq _08079C44 - b _08079D40 -_08079C44: - ldr r1, [r7, #0x30] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _08079D40 - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _08079D36 - ldrb r0, [r7, #0x13] - subs r0, #0xd - cmp r0, #0x1d - bhi _08079CE8 - lsls r0, r0, #2 - ldr r1, _08079C6C @ =_08079C70 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08079C68: .4byte gUnk_03003F80 -_08079C6C: .4byte _08079C70 -_08079C70: @ jump table - .4byte _08079D36 @ case 0 - .4byte _08079D36 @ case 1 - .4byte _08079D36 @ case 2 - .4byte _08079D36 @ case 3 - .4byte _08079CE8 @ case 4 - .4byte _08079CE8 @ case 5 - .4byte _08079CE8 @ case 6 - .4byte _08079D36 @ case 7 - .4byte _08079CE8 @ case 8 - .4byte _08079CE8 @ case 9 - .4byte _08079D36 @ case 10 - .4byte _08079CE8 @ case 11 - .4byte _08079CE8 @ case 12 - .4byte _08079CE8 @ case 13 - .4byte _08079CE8 @ case 14 - .4byte _08079CE8 @ case 15 - .4byte _08079CE8 @ case 16 - .4byte _08079CE8 @ case 17 - .4byte _08079CE8 @ case 18 - .4byte _08079CE8 @ case 19 - .4byte _08079CE8 @ case 20 - .4byte _08079CE8 @ case 21 - .4byte _08079CE8 @ case 22 - .4byte _08079CE8 @ case 23 - .4byte _08079CE8 @ case 24 - .4byte _08079CE8 @ case 25 - .4byte _08079CE8 @ case 26 - .4byte _08079CE8 @ case 27 - .4byte _08079CE8 @ case 28 - .4byte _08079D36 @ case 29 -_08079CE8: - mov r8, r7 - mov r0, r8 - ldrb r4, [r0, #0x12] - movs r2, #1 - rsbs r2, r2, #0 - adds r0, r6, #0 - movs r1, #0 - bl sub_080002B4 - ldr r5, _08079D3C @ =gUnk_08007CAC - adds r1, r5, #0 - bl sub_08007DD6 - cmp r4, r0 - bne _08079D40 - mov r0, r8 - ldrb r4, [r0, #0x12] - adds r0, r6, #0 - movs r1, #2 - movs r2, #0 - bl sub_080002B4 - adds r1, r5, #0 - bl sub_08007DD6 - cmp r4, r0 - bne _08079D40 - ldrb r4, [r7, #0x12] - movs r1, #2 - rsbs r1, r1, #0 - adds r0, r6, #0 - movs r2, #0 - bl sub_080002B4 - adds r1, r5, #0 - bl sub_08007DD6 - cmp r4, r0 - bne _08079D40 -_08079D36: - movs r0, #1 - b _08079D42 - .align 2, 0 -_08079D3C: .4byte gUnk_08007CAC -_08079D40: - movs r0, #0 -_08079D42: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08079D48 -sub_08079D48: @ 0x08079D48 - push {r4, lr} - ldr r4, _08079D78 @ =gLinkEntity - adds r0, r4, #0 - bl sub_08079C30 - cmp r0, #0 - beq _08079D72 - bl sub_08008B22 - cmp r0, #0 - bne _08079D80 - adds r0, r4, #0 - bl sub_080002B8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r1, _08079D7C @ =gUnk_0811C268 - bl sub_08007DD6 - cmp r0, #0 - bne _08079D80 -_08079D72: - movs r0, #1 - b _08079D82 - .align 2, 0 -_08079D78: .4byte gLinkEntity -_08079D7C: .4byte gUnk_0811C268 -_08079D80: - movs r0, #0 -_08079D82: - pop {r4, pc} - - thumb_func_start sub_08079D84 -sub_08079D84: @ 0x08079D84 - push {lr} - ldr r3, _08079DC0 @ =gLinkEntity - ldrb r0, [r3, #0xc] - cmp r0, #1 - beq _08079D92 - cmp r0, #0x18 - bne _08079DBE -_08079D92: - ldr r2, _08079DC4 @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x38 - movs r0, #0x9c - strb r0, [r1] - adds r1, #1 - movs r0, #2 - strb r0, [r1] - adds r1, #1 - movs r0, #0x3c - strb r0, [r1] - movs r0, #0xe - strb r0, [r2, #0xc] - adds r1, r3, #0 - adds r1, #0x3d - movs r0, #0x7c - strb r0, [r1] - bl sub_08077B20 - ldr r0, _08079DC8 @ =0x00000193 - bl sub_080A3268 -_08079DBE: - pop {pc} - .align 2, 0 -_08079DC0: .4byte gLinkEntity -_08079DC4: .4byte gUnk_03003F80 -_08079DC8: .4byte 0x00000193 - - thumb_func_start sub_08079DCC -sub_08079DCC: @ 0x08079DCC - push {lr} - ldr r0, _08079DFC @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #1 - bne _08079DF8 - ldr r3, _08079E00 @ =gUnk_03003F80 - adds r1, r3, #0 - adds r1, #0x38 - movs r2, #0 - movs r0, #0xa0 - strb r0, [r1] - adds r1, #1 - movs r0, #3 - strb r0, [r1] - adds r0, r3, #0 - adds r0, #0x3a - strb r2, [r0] - movs r0, #0xe - strb r0, [r3, #0xc] - ldr r0, _08079E04 @ =0x00000193 - bl sub_080A3268 -_08079DF8: - pop {pc} - .align 2, 0 -_08079DFC: .4byte gLinkEntity -_08079E00: .4byte gUnk_03003F80 -_08079E04: .4byte 0x00000193 - - thumb_func_start sub_08079E08 -sub_08079E08: @ 0x08079E08 - push {r4, lr} - ldr r0, _08079E50 @ =gLinkEntity - ldrh r2, [r0, #0x24] - movs r3, #0x24 - ldrsh r1, [r0, r3] - adds r4, r0, #0 - cmp r1, #0 - beq _08079E2E - ldr r0, _08079E54 @ =gUnk_03003F80 - adds r0, #0x80 - ldrh r0, [r0] - adds r0, r2, r0 - strh r0, [r4, #0x24] - lsls r0, r0, #0x10 - asrs r0, r0, #0x10 - cmp r0, #0x1f - bgt _08079E2E - movs r0, #0x20 - strh r0, [r4, #0x24] -_08079E2E: - adds r2, r4, #0 - ldrb r1, [r2, #0x15] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08079E40 - ldrb r0, [r2, #0x15] - bl sub_08079E90 -_08079E40: - adds r0, r4, #0 - bl sub_0800857C - ldrb r0, [r4, #0x15] - bl sub_0807A5B8 - pop {r4, pc} - .align 2, 0 -_08079E50: .4byte gLinkEntity -_08079E54: .4byte gUnk_03003F80 - - thumb_func_start sub_08079E58 -sub_08079E58: @ 0x08079E58 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - ldr r5, _08079E8C @ =gLinkEntity - ldrb r1, [r5, #0x15] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _08079E70 - adds r0, r4, #0 - bl sub_08079E90 -_08079E70: - adds r0, r5, #0 - bl sub_080085B0 - lsls r1, r6, #0x10 - asrs r1, r1, #0x10 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - adds r0, r5, #0 - bl sub_080027EA - adds r0, r4, #0 - bl sub_0807A5B8 - pop {r4, r5, r6, pc} - .align 2, 0 -_08079E8C: .4byte gLinkEntity - - thumb_func_start sub_08079E90 -sub_08079E90: @ 0x08079E90 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - ldr r1, _08079EBC @ =gLinkEntity - ldrb r2, [r1, #0x15] - movs r0, #8 - ands r0, r2 - adds r7, r1, #0 - cmp r0, #0 - beq _08079ECA - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _08079EC0 - ldr r0, [r7, #0x48] - ldrb r0, [r0, #2] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 - b _08079EC4 - .align 2, 0 -_08079EBC: .4byte gLinkEntity -_08079EC0: - ldr r0, [r7, #0x48] - ldrb r5, [r0, #2] -_08079EC4: - ldr r0, [r7, #0x48] - ldrb r4, [r0, #3] - b _08079EDE -_08079ECA: - ldr r0, [r7, #0x48] - ldrb r5, [r0, #4] - cmp r2, #0 - beq _08079ED6 - ldrb r4, [r0, #5] - b _08079EDE -_08079ED6: - ldrb r0, [r0, #5] - rsbs r0, r0, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 -_08079EDE: - lsls r0, r5, #0x10 - asrs r0, r0, #0x10 - mov r8, r0 - lsls r0, r4, #0x10 - asrs r6, r0, #0x10 - adds r0, r7, #0 - mov r1, r8 - adds r2, r6, #0 - bl sub_080002CC - adds r1, r0, #0 - mov r0, sb - bl sub_08079F48 - cmp r0, #0 - bne _08079F3C - ldrb r1, [r7, #0x15] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08079F10 - rsbs r0, r6, #0 - lsls r0, r0, #0x10 - lsrs r4, r0, #0x10 - b _08079F18 -_08079F10: - mov r1, r8 - rsbs r0, r1, #0 - lsls r0, r0, #0x10 - lsrs r5, r0, #0x10 -_08079F18: - ldr r0, _08079F38 @ =gLinkEntity - lsls r1, r5, #0x10 - asrs r1, r1, #0x10 - lsls r2, r4, #0x10 - asrs r2, r2, #0x10 - bl sub_080002CC - adds r1, r0, #0 - mov r0, sb - bl sub_08079F48 - cmp r0, #0 - bne _08079F3C - movs r0, #0 - b _08079F3E - .align 2, 0 -_08079F38: .4byte gLinkEntity -_08079F3C: - movs r0, #1 -_08079F3E: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08079F48 -sub_08079F48: @ 0x08079F48 - push {lr} - ldr r3, _08079F60 @ =gUnk_0811C118 - lsrs r2, r0, #2 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, r1 - bne _08079F68 - ldr r0, _08079F64 @ =gLinkEntity - ldrb r1, [r0, #0x15] - adds r1, #4 - b _08079F7C - .align 2, 0 -_08079F60: .4byte gUnk_0811C118 -_08079F64: .4byte gLinkEntity -_08079F68: - adds r0, r2, #1 - adds r0, r0, r3 - ldrb r0, [r0] - cmp r0, r1 - beq _08079F76 - movs r0, #0 - b _08079F84 -_08079F76: - ldr r0, _08079F88 @ =gLinkEntity - ldrb r1, [r0, #0x15] - subs r1, #4 -_08079F7C: - movs r2, #0x1f - ands r1, r2 - strb r1, [r0, #0x15] - movs r0, #1 -_08079F84: - pop {pc} - .align 2, 0 -_08079F88: .4byte gLinkEntity - - thumb_func_start sub_08079F8C -sub_08079F8C: @ 0x08079F8C - push {lr} - ldr r2, _08079FB4 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _08079FB8 @ =0x22189B75 - ands r0, r1 - cmp r0, #0 - bne _08079FB0 - adds r0, r2, #0 - adds r0, #0x3c - ldrb r0, [r0] - cmp r0, #0 - bne _08079FB0 - ldr r0, _08079FBC @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #3 - beq _08079FB0 - cmp r0, #0xb - bne _08079FC0 -_08079FB0: - movs r0, #0 - b _08079FC2 - .align 2, 0 -_08079FB4: .4byte gUnk_03003F80 -_08079FB8: .4byte 0x22189B75 -_08079FBC: .4byte gLinkEntity -_08079FC0: - movs r0, #1 -_08079FC2: - pop {pc} - - thumb_func_start sub_08079FC4 -sub_08079FC4: @ 0x08079FC4 - push {lr} - adds r1, r0, #0 - ldr r0, _08079FD0 @ =gLinkEntity - bl sub_08079FD4 - pop {pc} - .align 2, 0 -_08079FD0: .4byte gLinkEntity - - thumb_func_start sub_08079FD4 -sub_08079FD4: @ 0x08079FD4 - push {r4, r5, r6, lr} - sub sp, #4 - adds r5, r0, #0 - movs r0, #0x2e - ldrsh r2, [r5, r0] - ldr r3, _0807A008 @ =gUnk_03000BF0 - ldrh r0, [r3, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r4, #0x3f - ands r2, r4 - movs r6, #0x32 - ldrsh r0, [r5, r6] - ldrh r3, [r3, #8] - subs r0, r0, r3 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r2, r0 - lsls r2, r2, #1 - ldr r6, _0807A00C @ =gUnk_02027EB4 - cmp r1, #2 - bne _0807A004 - ldr r6, _0807A010 @ =gUnk_0200D654 -_0807A004: - movs r4, #0 - b _0807A028 - .align 2, 0 -_0807A008: .4byte gUnk_03000BF0 -_0807A00C: .4byte gUnk_02027EB4 -_0807A010: .4byte gUnk_0200D654 -_0807A014: - cmp r1, #0x23 - beq _0807A028 - cmp r1, #0x27 - beq _0807A028 - ldr r0, _0807A04C @ =gUnk_080082DC - subs r1, #0x10 - adds r1, r1, r0 - ldrb r0, [r1] - cmp r0, #0 - beq _0807A046 -_0807A028: - adds r4, #1 - adds r0, r5, #0 - mov r1, sp - bl sub_08004202 - adds r2, r0, #0 - lsrs r0, r2, #1 - adds r0, r6, r0 - ldrb r1, [r0] - cmp r1, #0xe - bls _0807A046 - cmp r1, #0xf - bls _0807A028 - cmp r1, #0x1d - bne _0807A014 -_0807A046: - adds r0, r4, #0 - add sp, #4 - pop {r4, r5, r6, pc} - .align 2, 0 -_0807A04C: .4byte gUnk_080082DC - - thumb_func_start sub_0807A050 -sub_0807A050: @ 0x0807A050 - push {lr} - ldr r3, _0807A088 @ =gUnk_03003F80 - ldrb r2, [r3, #0xf] - cmp r2, #0 - beq _0807A06A - ldr r0, _0807A08C @ =gUnk_02000050 - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0807A06A - subs r0, r2, #1 - strb r0, [r3, #0xf] -_0807A06A: - movs r0, #0 - bl sub_0807A094 - adds r1, r0, #0 - ldr r0, _0807A088 @ =gUnk_03003F80 - adds r0, #0x83 - ldrb r2, [r0] - cmp r1, r2 - beq _0807A084 - strb r1, [r0] - ldr r0, _0807A090 @ =gLinkEntity - bl sub_0801D2B4 -_0807A084: - pop {pc} - .align 2, 0 -_0807A088: .4byte gUnk_03003F80 -_0807A08C: .4byte gUnk_02000050 -_0807A090: .4byte gLinkEntity - - thumb_func_start sub_0807A094 -sub_0807A094: @ 0x0807A094 - push {r4, r5, lr} - adds r3, r0, #0 - movs r2, #0x16 - ldr r0, _0807A0AC @ =gUnk_03003F80 - ldrb r0, [r0, #0xf] - cmp r0, #0 - beq _0807A0B0 - movs r2, #0x1b - cmp r0, #0x78 - bls _0807A104 - movs r2, #0x1a - b _0807A104 - .align 2, 0 -_0807A0AC: .4byte gUnk_03003F80 -_0807A0B0: - ldr r0, _0807A0F0 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xb2 - ldrb r1, [r1] - adds r5, r0, #0 - cmp r1, #0 - beq _0807A104 - movs r4, #1 - cmp r3, #0 - bne _0807A0D6 - adds r0, #0xc4 - ldrh r1, [r0] - cmp r1, #0xb3 - bhi _0807A0D6 - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807A0D6 - movs r4, #0 -_0807A0D6: - cmp r4, #0 - beq _0807A104 - adds r0, r5, #0 - adds r0, #0xb2 - ldrb r0, [r0] - cmp r0, #0x30 - beq _0807A102 - cmp r0, #0x30 - bgt _0807A0F4 - cmp r0, #0x2f - beq _0807A0FA - b _0807A102 - .align 2, 0 -_0807A0F0: .4byte gUnk_02002A40 -_0807A0F4: - cmp r0, #0x31 - beq _0807A0FE - b _0807A102 -_0807A0FA: - movs r2, #0x18 - b _0807A104 -_0807A0FE: - movs r2, #0x17 - b _0807A104 -_0807A102: - movs r2, #0x19 -_0807A104: - adds r0, r2, #0 - pop {r4, r5, pc} - - thumb_func_start sub_0807A108 -sub_0807A108: @ 0x0807A108 - push {lr} - ldr r1, _0807A148 @ =gUnk_03004040 - movs r0, #0 - str r0, [r1] - str r0, [r1, #4] - str r0, [r1, #8] - ldr r2, _0807A14C @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - ldr r1, _0807A150 @ =0xFFBFFFFF - ands r0, r1 - str r0, [r2, #0x30] - ldr r0, _0807A154 @ =gLinkEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x17 - bne _0807A130 - adds r0, r2, #0 - adds r0, #0xa0 - ldrb r0, [r0] - cmp r0, #4 - beq _0807A144 -_0807A130: - adds r1, r2, #0 - adds r1, #0xa0 - ldrb r0, [r1] - subs r0, #4 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bhi _0807A144 - movs r0, #1 - strb r0, [r1] -_0807A144: - pop {pc} - .align 2, 0 -_0807A148: .4byte gUnk_03004040 -_0807A14C: .4byte gUnk_03003F80 -_0807A150: .4byte 0xFFBFFFFF -_0807A154: .4byte gLinkEntity - - thumb_func_start sub_0807A158 -sub_0807A158: @ 0x0807A158 - push {r4, lr} - ldr r4, _0807A178 @ =gUnk_02002A40 - adds r0, r4, #0 - adds r0, #0xb4 - ldrb r0, [r0] - bl sub_0805449C - cmp r0, #0 - bne _0807A17C - adds r0, r4, #0 - adds r0, #0xb5 - ldrb r0, [r0] - bl sub_0805449C - b _0807A17E - .align 2, 0 -_0807A178: .4byte gUnk_02002A40 -_0807A17C: - movs r0, #1 -_0807A17E: - pop {r4, pc} - - thumb_func_start sub_0807A180 -sub_0807A180: @ 0x0807A180 - push {r4, r5, r6, lr} - mov r6, r8 - push {r6} - sub sp, #0x88 - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - mov r8, r3 - ldr r3, _0807A1B4 @ =0xFFFC0000 - mov r1, sp - movs r2, #0 - bl sub_0806FA48 - mov r1, sp - ldrb r0, [r4, #0x14] - strb r0, [r1, #0x14] - mov r0, sp - adds r1, r5, #0 - adds r2, r6, #0 - mov r3, r8 - bl sub_08003FDE - add sp, #0x88 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, pc} - .align 2, 0 -_0807A1B4: .4byte 0xFFFC0000 - - thumb_func_start sub_0807A1B8 -sub_0807A1B8: @ 0x0807A1B8 - push {r4, lr} - ldr r4, _0807A1DC @ =gLinkEntity - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_0807A1E8 - ldr r1, _0807A1E0 @ =gUnk_03003F80 - strb r0, [r1, #0x12] - ldr r2, _0807A1E4 @ =gUnk_0811C120 - ldrb r0, [r1, #0x12] - lsls r0, r0, #2 - adds r0, r0, r2 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_0807A1DC: .4byte gLinkEntity -_0807A1E0: .4byte gUnk_03003F80 -_0807A1E4: .4byte gUnk_0811C120 - - thumb_func_start sub_0807A1E8 -sub_0807A1E8: @ 0x0807A1E8 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r5, r0, #0 - adds r6, r1, #0 - mov r8, r2 - movs r1, #0x2e - ldrsh r0, [r5, r1] - adds r0, r0, r6 - ldr r2, _0807A288 @ =gUnk_03000BF0 - ldrh r1, [r2, #6] - subs r1, r0, r1 - lsrs r4, r1, #4 - movs r3, #0x3f - ands r4, r3 - movs r7, #0x32 - ldrsh r1, [r5, r7] - add r1, r8 - ldrh r2, [r2, #8] - subs r2, r1, r2 - asrs r2, r2, #4 - ands r2, r3 - lsls r2, r2, #6 - orrs r4, r2 - ldr r2, _0807A28C @ =gLinkEntity - adds r2, #0x38 - ldrb r2, [r2] - bl sub_080002A4 - adds r2, r0, #0 - ldr r1, _0807A290 @ =gUnk_03003F80 - ldrh r0, [r1, #0x24] - cmp r2, r0 - beq _0807A23A - adds r3, r1, #0 - adds r3, #0x37 - movs r0, #0 - strb r0, [r3] - ldrh r7, [r1, #0x24] - cmp r2, r7 - bne _0807A242 -_0807A23A: - adds r3, r1, #0 - ldrh r0, [r3, #0x22] - cmp r4, r0 - beq _0807A24E -_0807A242: - ldr r0, _0807A290 @ =gUnk_03003F80 - movs r1, #0 - strh r4, [r0, #0x22] - strh r2, [r0, #0x24] - strb r1, [r0, #0x11] - adds r3, r0, #0 -_0807A24E: - adds r2, r3, #0 - ldrb r1, [r2, #0x11] - adds r0, r1, #0 - cmp r0, #0xff - beq _0807A25C - adds r0, r1, #1 - strb r0, [r2, #0x11] -_0807A25C: - adds r2, #0x37 - ldrb r1, [r2] - adds r0, r1, #0 - cmp r0, #0xff - beq _0807A26A - adds r0, r1, #1 - strb r0, [r2] -_0807A26A: - ldrb r0, [r3, #0x12] - strb r0, [r3, #0x13] - adds r0, r5, #0 - adds r1, r6, #0 - mov r2, r8 - bl sub_080002B4 - adds r2, r0, #0 - ldr r1, _0807A294 @ =gUnk_08007CAC - bl sub_08007DD6 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807A288: .4byte gUnk_03000BF0 -_0807A28C: .4byte gLinkEntity -_0807A290: .4byte gUnk_03003F80 -_0807A294: .4byte gUnk_08007CAC - - thumb_func_start sub_0807A298 -sub_0807A298: @ 0x0807A298 - movs r1, #0 - strb r1, [r0, #0xb] - ldrb r1, [r0, #0x18] - movs r2, #3 - orrs r1, r2 - strb r1, [r0, #0x18] - ldr r2, _0807A2B4 @ =gUnk_03003F80 - ldr r0, [r2, #0x30] - movs r1, #0x41 - rsbs r1, r1, #0 - ands r0, r1 - str r0, [r2, #0x30] - bx lr - .align 2, 0 -_0807A2B4: .4byte gUnk_03003F80 - - thumb_func_start sub_0807A2B8 -sub_0807A2B8: @ 0x0807A2B8 - push {lr} - bl sub_08008B22 - cmp r0, #0 - beq _0807A2C6 - movs r0, #1 - b _0807A2EC -_0807A2C6: - ldr r0, _0807A2F0 @ =gUnk_03003F80 - ldrb r1, [r0, #2] - movs r0, #0xc8 - ands r0, r1 - cmp r0, #0 - bne _0807A2EA - ldr r1, _0807A2F4 @ =gLinkEntity - adds r0, r1, #0 - adds r0, #0x38 - ldrb r0, [r0] - cmp r0, #1 - beq _0807A2EA - adds r0, r1, #0 - movs r1, #0x44 - movs r2, #0 - movs r3, #0 - bl sub_080A2988 -_0807A2EA: - movs r0, #0 -_0807A2EC: - pop {pc} - .align 2, 0 -_0807A2F0: .4byte gUnk_03003F80 -_0807A2F4: .4byte gLinkEntity - - thumb_func_start sub_0807A2F8 -sub_0807A2F8: @ 0x0807A2F8 - 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 - ldr r0, _0807A364 @ =gUnk_03000BF0 - mov r8, r0 - ldrb r0, [r0, #4] - cmp r0, #8 - bne _0807A312 - b _0807A4F2 -_0807A312: - bl sub_08079778 - orrs r0, r4 - cmp r0, #0 - bne _0807A31E - b _0807A4F2 -_0807A31E: - ldr r7, _0807A368 @ =gLinkEntity - ldrb r1, [r7, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807A36C - movs r1, #0x2e - ldrsh r2, [r7, r1] - mov r6, r8 - ldrh r0, [r6, #6] - subs r2, r2, r0 - asrs r2, r2, #4 - movs r3, #0x3f - ands r2, r3 - movs r0, #0x32 - ldrsh r1, [r7, r0] - ldr r0, [r7, #0x48] - ldrb r5, [r0, #5] - adds r0, r1, r5 - ldrh r4, [r6, #8] - subs r0, r0, r4 - asrs r0, r0, #4 - ands r0, r3 - lsls r0, r0, #6 - orrs r0, r2 - lsls r7, r0, #1 - subs r1, r1, r5 - subs r1, r1, r4 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r2, r1 - lsls r6, r2, #1 - b _0807A3A2 - .align 2, 0 -_0807A364: .4byte gUnk_03000BF0 -_0807A368: .4byte gLinkEntity -_0807A36C: - movs r1, #0x2e - ldrsh r3, [r7, r1] - ldr r0, [r7, #0x48] - ldrb r6, [r0, #2] - adds r1, r3, r6 - mov r2, r8 - ldrh r5, [r2, #6] - subs r1, r1, r5 - asrs r1, r1, #4 - movs r4, #0x3f - ands r1, r4 - movs r2, #0x32 - ldrsh r0, [r7, r2] - mov r7, r8 - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r4 - lsls r0, r0, #6 - orrs r1, r0 - lsls r7, r1, #1 - subs r3, r3, r6 - subs r3, r3, r5 - asrs r3, r3, #4 - ands r3, r4 - orrs r3, r0 - lsls r6, r3, #1 -_0807A3A2: - movs r0, #0 - mov sb, r0 - ldr r1, _0807A3F4 @ =gLinkEntity - mov sl, r1 -_0807A3AA: - movs r2, #0 - mov r8, r2 - mov r0, sl - mov r1, sp - adds r2, r7, #0 - bl sub_08004202 - adds r7, r0, #0 - lsrs r4, r7, #1 - adds r0, r4, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - beq _0807A3FC - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - mov r1, sl - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002C8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - mov r2, sl - ldrb r1, [r2, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #2 - ldr r2, _0807A3F8 @ =gUnk_0811C1D8 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08007DD6 - cmp r0, #0 - beq _0807A468 - b _0807A400 - .align 2, 0 -_0807A3F4: .4byte gLinkEntity -_0807A3F8: .4byte gUnk_0811C1D8 -_0807A3FC: - movs r0, #1 - mov r8, r0 -_0807A400: - ldr r5, _0807A444 @ =gLinkEntity - adds r0, r5, #0 - mov r1, sp - adds r2, r6, #0 - bl sub_08004202 - adds r6, r0, #0 - lsrs r4, r6, #1 - adds r0, r4, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - beq _0807A44C - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002C8 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldrb r1, [r5, #0x14] - lsrs r1, r1, #1 - lsls r1, r1, #2 - ldr r2, _0807A448 @ =gUnk_0811C1D8 - adds r1, r1, r2 - ldr r1, [r1] - bl sub_08007DD6 - cmp r0, #0 - beq _0807A468 - b _0807A450 - .align 2, 0 -_0807A444: .4byte gLinkEntity -_0807A448: .4byte gUnk_0811C1D8 -_0807A44C: - movs r0, #1 - add r8, r0 -_0807A450: - mov r1, r8 - cmp r1, #2 - bne _0807A45E - mov r2, sb - cmp r2, #0 - bne _0807A46E - b _0807A4F2 -_0807A45E: - movs r0, #1 - add sb, r0 - mov r1, sb - cmp r1, #1 - bls _0807A3AA -_0807A468: - mov r2, sb - cmp r2, #0 - beq _0807A4F2 -_0807A46E: - bl sub_08052660 - cmp r0, #0 - beq _0807A4B0 - ldr r4, _0807A4AC @ =gLinkEntity - adds r0, r4, #0 - mov r1, sp - adds r2, r7, #0 - bl sub_08004202 - adds r7, r0, #0 - lsrs r0, r7, #1 - movs r1, #2 - bl sub_080002E0 - cmp r0, #0 - bne _0807A4F2 - adds r0, r4, #0 - mov r1, sp - adds r2, r6, #0 - bl sub_08004202 - adds r6, r0, #0 - lsrs r0, r6, #1 - movs r1, #2 -_0807A4A0: - bl sub_080002E0 - cmp r0, #0 - beq _0807A4EC - b _0807A4F2 - .align 2, 0 -_0807A4AC: .4byte gLinkEntity -_0807A4B0: - mov r0, sb - cmp r0, #2 - bne _0807A4C2 - ldr r0, _0807A4E8 @ =gLinkEntity - mov r1, sp - adds r2, r7, #0 - bl sub_08004202 - adds r7, r0, #0 -_0807A4C2: - lsrs r0, r7, #1 - movs r1, #1 - bl sub_080002E0 - cmp r0, #0 - bne _0807A4F2 - mov r1, sb - cmp r1, #2 - bne _0807A4E0 - ldr r0, _0807A4E8 @ =gLinkEntity - mov r1, sp - adds r2, r6, #0 - bl sub_08004202 - adds r6, r0, #0 -_0807A4E0: - lsrs r0, r6, #1 - movs r1, #1 - b _0807A4A0 - .align 2, 0 -_0807A4E8: .4byte gLinkEntity -_0807A4EC: - mov r0, sb - adds r0, #1 - b _0807A4F4 -_0807A4F2: - movs r0, #0 -_0807A4F4: - 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_0807A500 -sub_0807A500: @ 0x0807A500 - push {r4, r5, r6, lr} - ldr r6, _0807A518 @ =gLinkEntity - ldrb r0, [r6, #0x14] - lsrs r0, r0, #1 - cmp r0, #1 - beq _0807A574 - cmp r0, #1 - bgt _0807A51C - cmp r0, #0 - beq _0807A526 - b _0807A5B4 - .align 2, 0 -_0807A518: .4byte gLinkEntity -_0807A51C: - cmp r0, #2 - beq _0807A554 - cmp r0, #3 - beq _0807A580 - b _0807A5B4 -_0807A526: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r5, _0807A550 @ =gUnk_03000BF0 - ldrh r1, [r5, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r4, #0x3f - ands r0, r4 - movs r2, #0x32 - ldrsh r1, [r6, r2] - ldr r3, [r6, #0x48] - ldrb r2, [r3, #5] - subs r1, r1, r2 - movs r2, #1 - ldrsb r2, [r3, r2] - adds r1, r1, r2 - ldrh r2, [r5, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - b _0807A5AA - .align 2, 0 -_0807A550: .4byte gUnk_03000BF0 -_0807A554: - movs r5, #0x2e - ldrsh r0, [r6, r5] - ldr r4, _0807A570 @ =gUnk_03000BF0 - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - ldr r2, [r6, #0x48] - movs r5, #0x32 - ldrsh r1, [r6, r5] - ldrb r5, [r2, #5] - adds r1, r1, r5 - b _0807A59A - .align 2, 0 -_0807A570: .4byte gUnk_03000BF0 -_0807A574: - ldr r2, [r6, #0x48] - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldrb r5, [r2, #2] - adds r0, r0, r5 - b _0807A58A -_0807A580: - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldr r2, [r6, #0x48] - ldrb r1, [r2, #2] - subs r0, r0, r1 -_0807A58A: - ldr r4, _0807A5B0 @ =gUnk_03000BF0 - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r6, r5] -_0807A59A: - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 -_0807A5AA: - lsls r1, r1, #6 - orrs r0, r1 - b _0807A5B6 - .align 2, 0 -_0807A5B0: .4byte gUnk_03000BF0 -_0807A5B4: - movs r0, #0 -_0807A5B6: - pop {r4, r5, r6, pc} - - thumb_func_start sub_0807A5B8 -sub_0807A5B8: @ 0x0807A5B8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - ldr r2, _0807A5F8 @ =gUnk_03003F80 - ldrb r3, [r2, #2] - movs r4, #0x80 - adds r0, r4, #0 - ands r0, r3 - cmp r0, #0 - beq _0807A5D2 - b _0807A736 -_0807A5D2: - ldr r1, [r2, #0x30] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0807A5DE - b _0807A736 -_0807A5DE: - adds r0, r2, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - beq _0807A5EA - b _0807A736 -_0807A5EA: - adds r0, r1, #0 - ands r0, r4 - cmp r0, #0 - beq _0807A600 - ldr r7, _0807A5FC @ =gUnk_0800833C - b _0807A63A - .align 2, 0 -_0807A5F8: .4byte gUnk_03003F80 -_0807A5FC: .4byte gUnk_0800833C -_0807A600: - movs r0, #0x80 - lsls r0, r0, #0x11 - ands r1, r0 - cmp r1, #0 - bne _0807A60E - cmp r3, #0 - beq _0807A618 -_0807A60E: - ldr r7, _0807A614 @ =gUnk_0800845C - b _0807A63A - .align 2, 0 -_0807A614: .4byte gUnk_0800845C -_0807A618: - ldrb r0, [r2, #5] - cmp r0, #0 - bne _0807A624 - ldrb r0, [r2, #0x1c] - cmp r0, #0 - beq _0807A62C -_0807A624: - ldr r7, _0807A628 @ =gUnk_080084BC - b _0807A63A - .align 2, 0 -_0807A628: .4byte gUnk_080084BC -_0807A62C: - adds r0, r2, #0 - adds r0, #0xaa - ldrb r0, [r0] - ldr r7, _0807A740 @ =gUnk_080082DC - cmp r0, #0 - beq _0807A63A - ldr r7, _0807A744 @ =gUnk_0800851C -_0807A63A: - mov r0, sb - cmp r0, #0 - beq _0807A6B8 - cmp r0, #0x10 - beq _0807A6B8 - ldr r6, _0807A748 @ =gLinkEntity - ldr r2, [r6, #0x48] - movs r1, #0x2e - ldrsh r0, [r6, r1] - ldrb r3, [r2, #2] - adds r0, r0, r3 - movs r1, #0 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - ldr r1, _0807A74C @ =gUnk_03000BF0 - mov r8, r1 - ldrh r1, [r1, #6] - subs r5, r0, r1 - movs r3, #0x32 - ldrsh r0, [r6, r3] - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - mov r2, r8 - ldrh r1, [r2, #8] - subs r4, r0, r1 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080086B4 - cmp r0, #0 - beq _0807A688 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #1 - bl sub_0807A750 -_0807A688: - movs r3, #0x2e - ldrsh r1, [r6, r3] - ldr r2, [r6, #0x48] - ldrb r0, [r2, #2] - subs r1, r1, r0 - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov r2, r8 - ldrh r0, [r2, #6] - subs r5, r1, r0 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080086B4 - cmp r0, #0 - beq _0807A6B8 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #3 - bl sub_0807A750 -_0807A6B8: - mov r3, sb - cmp r3, #8 - beq _0807A736 - cmp r3, #0x18 - beq _0807A736 - ldr r6, _0807A748 @ =gLinkEntity - movs r0, #0x2e - ldrsh r1, [r6, r0] - ldr r2, [r6, #0x48] - movs r0, #0 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - ldr r3, _0807A74C @ =gUnk_03000BF0 - mov r8, r3 - ldrh r0, [r3, #6] - subs r5, r1, r0 - movs r1, #0x32 - ldrsh r0, [r6, r1] - ldrb r3, [r2, #5] - adds r0, r0, r3 - movs r1, #1 - ldrsb r1, [r2, r1] - adds r0, r0, r1 - mov r2, r8 - ldrh r1, [r2, #8] - subs r4, r0, r1 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080086B4 - cmp r0, #0 - beq _0807A706 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #2 - bl sub_0807A750 -_0807A706: - movs r3, #0x32 - ldrsh r1, [r6, r3] - ldr r2, [r6, #0x48] - ldrb r0, [r2, #5] - subs r1, r1, r0 - movs r0, #1 - ldrsb r0, [r2, r0] - adds r1, r1, r0 - mov r2, r8 - ldrh r0, [r2, #8] - subs r4, r1, r0 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - bl sub_080086B4 - cmp r0, #0 - beq _0807A736 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r7, #0 - movs r3, #0 - bl sub_0807A750 -_0807A736: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807A740: .4byte gUnk_080082DC -_0807A744: .4byte gUnk_0800851C -_0807A748: .4byte gLinkEntity -_0807A74C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807A750 -sub_0807A750: @ 0x0807A750 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r7, r0, #0 - adds r6, r1, #0 - mov r8, r2 - adds r5, r3, #0 - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _0807A76C - movs r4, #0xf - ands r4, r6 - b _0807A770 -_0807A76C: - movs r4, #0xf - ands r4, r7 -_0807A770: - cmp r4, #0 - bne _0807A776 - b _0807A88E -_0807A776: - cmp r4, #0xf - bne _0807A77C - b _0807A88E -_0807A77C: - lsrs r0, r7, #4 - movs r2, #0x3f - ands r0, r2 - lsrs r1, r6, #4 - ands r1, r2 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0807A7A8 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002E0 - adds r1, r0, #0 - cmp r1, #0xf - bls _0807A7AE - cmp r1, #0xff - beq _0807A7AC - mov r2, r8 - adds r0, r1, r2 - subs r0, #0x10 - ldrb r1, [r0] - b _0807A7AE - .align 2, 0 -_0807A7A8: .4byte gLinkEntity -_0807A7AC: - movs r1, #0xf -_0807A7AE: - ldr r0, _0807A7D8 @ =gUnk_0800823C - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r1, [r1] - movs r0, #1 - ands r0, r5 - cmp r0, #0 - bne _0807A824 - movs r0, #0xf - ands r0, r7 - movs r2, #0x80 - lsls r2, r2, #8 - asrs r2, r0 - cmp r5, #0 - bne _0807A7F4 - ldr r3, _0807A7DC @ =gLinkEntity - cmp r4, #0xe - bgt _0807A7F0 - lsls r0, r4, #1 - adds r1, r0, r1 - b _0807A7E8 - .align 2, 0 -_0807A7D8: .4byte gUnk_0800823C -_0807A7DC: .4byte gLinkEntity -_0807A7E0: - adds r1, #2 - adds r4, #1 - cmp r4, #0xe - bgt _0807A7F0 -_0807A7E8: - ldrh r0, [r1] - ands r0, r2 - cmp r0, #0 - bne _0807A7E0 -_0807A7F0: - subs r4, #1 - b _0807A816 -_0807A7F4: - ldr r3, _0807A800 @ =gLinkEntity - cmp r4, #0 - ble _0807A814 - lsls r0, r4, #1 - adds r1, r0, r1 - b _0807A80C - .align 2, 0 -_0807A800: .4byte gLinkEntity -_0807A804: - subs r1, #2 - subs r4, #1 - cmp r4, #0 - ble _0807A814 -_0807A80C: - ldrh r0, [r1] - ands r0, r2 - cmp r0, #0 - bne _0807A804 -_0807A814: - adds r4, #1 -_0807A816: - movs r0, #0xf - ands r0, r6 - subs r0, r4, r0 - ldrh r1, [r3, #0x32] - adds r0, r0, r1 - strh r0, [r3, #0x32] - b _0807A88E -_0807A824: - movs r3, #0xf - ands r6, r3 - lsls r0, r6, #1 - adds r0, r0, r1 - ldrh r2, [r0] - cmp r5, #1 - bne _0807A85C - subs r0, r3, r4 - lsrs r2, r0 - ldr r3, _0807A858 @ =gLinkEntity - cmp r4, #0 - ble _0807A854 - ands r5, r2 - cmp r5, #0 - beq _0807A854 - movs r1, #1 -_0807A844: - lsrs r2, r2, #1 - subs r4, #1 - cmp r4, #0 - ble _0807A854 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0807A844 -_0807A854: - adds r4, #1 - b _0807A882 - .align 2, 0 -_0807A858: .4byte gLinkEntity -_0807A85C: - lsls r2, r4 - ldr r3, _0807A86C @ =gLinkEntity - cmp r4, #0xe - bgt _0807A880 - movs r1, #0x80 - lsls r1, r1, #8 - b _0807A878 - .align 2, 0 -_0807A86C: .4byte gLinkEntity -_0807A870: - lsls r2, r2, #1 - adds r4, #1 - cmp r4, #0xe - bgt _0807A880 -_0807A878: - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _0807A870 -_0807A880: - subs r4, #1 -_0807A882: - movs r0, #0xf - ands r0, r7 - subs r0, r4, r0 - ldrh r2, [r3, #0x2e] - adds r0, r0, r2 - strh r0, [r3, #0x2e] -_0807A88E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807A894 -sub_0807A894: @ 0x0807A894 - push {lr} - ldrb r1, [r0, #0x15] - cmp r1, #8 - beq _0807A8BA - cmp r1, #8 - bgt _0807A8A6 - cmp r1, #0 - beq _0807A8B0 - b _0807A8C8 -_0807A8A6: - cmp r1, #0x10 - beq _0807A8B6 - cmp r1, #0x18 - beq _0807A8C0 - b _0807A8C8 -_0807A8B0: - movs r2, #8 - rsbs r2, r2, #0 - b _0807A8CA -_0807A8B6: - movs r2, #5 - b _0807A8CA -_0807A8BA: - movs r2, #0 - movs r1, #8 - b _0807A8CC -_0807A8C0: - movs r2, #0 - movs r1, #8 - rsbs r1, r1, #0 - b _0807A8CC -_0807A8C8: - movs r2, #0 -_0807A8CA: - movs r1, #0 -_0807A8CC: - bl sub_080002B4 - pop {pc} - .align 2, 0 - - thumb_func_start nullsub_505 -nullsub_505: @ 0x0807A8D4 - bx lr - .align 2, 0 - - thumb_func_start sub_0807A8D8 -sub_0807A8D8: @ 0x0807A8D8 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r5, r0, #0 - ldr r0, _0807AA5C @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807A8F0 - b _0807A9F6 -_0807A8F0: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _0807AA60 @ =gUnk_03000BF0 - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r6, #0x3f - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - adds r2, #1 - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0807AA64 @ =gLinkEntity - adds r1, #0x38 - mov sb, r1 - ldrb r1, [r1] - bl sub_080002EC - adds r4, r0, #0 - movs r0, #0x20 - mov r8, r0 - ands r4, r0 - cmp r4, #0 - beq _0807A94E - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r0, [r7, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r5, r2] - ldrh r2, [r7, #8] - adds r2, #1 - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_0807AAF8 -_0807A94E: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldrh r1, [r7, #6] - subs r1, #2 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - mov r2, sb - ldrb r1, [r2] - bl sub_080002EC - adds r4, r0, #0 - mov r0, r8 - ands r4, r0 - cmp r4, #0 - beq _0807A9A2 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r0, [r7, #6] - subs r0, #2 - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r5, r2] - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_0807AAF8 -_0807A9A2: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldrh r1, [r7, #6] - adds r1, #2 - subs r0, r0, r1 - asrs r0, r0, #4 - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - mov r2, sb - ldrb r1, [r2] - bl sub_080002EC - adds r4, r0, #0 - mov r0, r8 - ands r4, r0 - cmp r4, #0 - beq _0807A9F6 - movs r2, #0x2e - ldrsh r1, [r5, r2] - ldrh r0, [r7, #6] - adds r0, #2 - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r5, r2] - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_0807AAF8 -_0807A9F6: - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r7, _0807AA60 @ =gUnk_03000BF0 - ldrh r1, [r7, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r6, #0x3f - ands r0, r6 - movs r2, #0x32 - ldrsh r1, [r5, r2] - ldrh r2, [r7, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r6 - lsls r1, r1, #6 - orrs r0, r1 - ldr r1, _0807AA64 @ =gLinkEntity - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002EC - adds r4, r0, #0 - movs r0, #0x20 - ands r0, r4 - cmp r0, #0 - beq _0807AA4C - movs r0, #0x2e - ldrsh r1, [r5, r0] - ldrh r0, [r7, #6] - subs r1, r1, r0 - asrs r1, r1, #4 - ands r1, r6 - movs r2, #0x32 - ldrsh r0, [r5, r2] - ldrh r2, [r7, #8] - subs r0, r0, r2 - asrs r0, r0, #4 - ands r0, r6 - lsls r0, r0, #6 - orrs r1, r0 - adds r0, r5, #0 - bl sub_0807AAF8 -_0807AA4C: - movs r0, #2 - ands r0, r4 - cmp r0, #0 - beq _0807AA68 - adds r0, r5, #0 - bl sub_0807AABC - b _0807AA76 - .align 2, 0 -_0807AA5C: .4byte gUnk_03003F80 -_0807AA60: .4byte gUnk_03000BF0 -_0807AA64: .4byte gLinkEntity -_0807AA68: - movs r0, #4 - ands r0, r4 - cmp r0, #0 - beq _0807AA76 - adds r0, r5, #0 - bl sub_0807AA80 -_0807AA76: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807AA80 -sub_0807AA80: @ 0x0807AA80 - push {lr} - adds r3, r0, #0 - ldr r0, _0807AAB8 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0807AAB6 - adds r0, r3, #0 - adds r0, #0x38 - movs r1, #2 - strb r1, [r0] - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _0807AAB6 - ldrb r2, [r3, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x40 - orrs r0, r2 - strb r0, [r3, #0x1b] - ldrb r0, [r3, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r3, #0x19] -_0807AAB6: - pop {pc} - .align 2, 0 -_0807AAB8: .4byte gUnk_03003F80 - - thumb_func_start sub_0807AABC -sub_0807AABC: @ 0x0807AABC - push {lr} - adds r3, r0, #0 - ldr r0, _0807AAF4 @ =gUnk_03003F80 - ldr r0, [r0, #0x30] - movs r1, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0807AAF2 - adds r0, r3, #0 - adds r0, #0x38 - movs r1, #1 - strb r1, [r0] - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _0807AAF2 - ldrb r2, [r3, #0x1b] - movs r1, #0x3f - adds r0, r1, #0 - ands r0, r2 - movs r2, #0x80 - orrs r0, r2 - strb r0, [r3, #0x1b] - ldrb r0, [r3, #0x19] - ands r1, r0 - orrs r1, r2 - strb r1, [r3, #0x19] -_0807AAF2: - pop {pc} - .align 2, 0 -_0807AAF4: .4byte gUnk_03003F80 - - thumb_func_start sub_0807AAF8 -sub_0807AAF8: @ 0x0807AAF8 - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - movs r1, #0x36 - ldrsh r0, [r3, r1] - cmp r0, #0 - bne _0807AB3C - adds r0, r3, #0 - adds r0, #0x38 - ldrb r0, [r0] - lsls r0, r0, #0x1e - orrs r2, r0 - movs r3, #0 - ldr r0, _0807AB40 @ =gUnk_03003F80 - ldr r1, [r0, #0x40] - adds r4, r0, #0 - cmp r1, r2 - beq _0807AB32 - adds r1, r4, #0 - adds r1, #0x40 -_0807AB20: - ldr r0, [r1] - stm r1!, {r2} - adds r2, r0, #0 - adds r3, #1 - cmp r3, #0xe - bhi _0807AB32 - ldr r0, [r1] - cmp r0, r2 - bne _0807AB20 -_0807AB32: - lsls r0, r3, #2 - adds r1, r4, #0 - adds r1, #0x40 - adds r0, r0, r1 - str r2, [r0] -_0807AB3C: - pop {r4, pc} - .align 2, 0 -_0807AB40: .4byte gUnk_03003F80 - - thumb_func_start sub_0807AB44 -sub_0807AB44: @ 0x0807AB44 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - adds r6, r0, #0 - adds r7, r1, #0 - mov r8, r2 - movs r1, #0x2e - ldrsh r0, [r6, r1] - adds r0, r0, r7 - ldr r2, _0807ABF0 @ =gUnk_03000BF0 - mov sb, r2 - ldrh r1, [r2, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - mov sl, r3 - ands r0, r3 - movs r5, #0x32 - ldrsh r1, [r6, r5] - add r1, r8 - ldrh r2, [r2, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r6, #0 - adds r1, #0x38 - ldrb r1, [r1] - bl sub_080002B0 - movs r1, #0xb - bl sub_0806FC50 - adds r5, r0, #0 - cmp r5, #0 - beq _0807AC44 - ldrh r0, [r5, #6] - cmp r0, #0x76 - bne _0807ABF4 - movs r0, #0x2a - movs r1, #1 - movs r2, #0 - bl sub_080A2960 - adds r4, r0, #0 - cmp r4, #0 - beq _0807AC44 - lsls r2, r7, #0x10 - mov r0, r8 - lsls r3, r0, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA48 - adds r0, r4, #0 - bl sub_08004168 - ldrh r0, [r5, #6] - movs r2, #0x2e - ldrsh r1, [r4, r2] - mov r3, sb - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - mov r5, sl - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r4, r3] - mov r5, sb - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - mov r3, sl - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0807B7D8 - b _0807AC44 - .align 2, 0 -_0807ABF0: .4byte gUnk_03000BF0 -_0807ABF4: - movs r0, #0x2a - movs r1, #2 - movs r2, #0 - bl sub_080A2960 - adds r4, r0, #0 - cmp r4, #0 - beq _0807AC44 - lsls r2, r7, #0x10 - mov r0, r8 - lsls r3, r0, #0x10 - adds r0, r6, #0 - adds r1, r4, #0 - bl sub_0806FA48 - str r5, [r4, #0x54] - ldr r0, _0807AC50 @ =0x0000404F - movs r2, #0x2e - ldrsh r1, [r4, r2] - mov r3, sb - ldrh r2, [r3, #6] - subs r1, r1, r2 - asrs r1, r1, #4 - mov r5, sl - ands r1, r5 - movs r3, #0x32 - ldrsh r2, [r4, r3] - mov r5, sb - ldrh r3, [r5, #8] - subs r2, r2, r3 - asrs r2, r2, #4 - mov r3, sl - ands r2, r3 - lsls r2, r2, #6 - orrs r1, r2 - adds r2, r4, #0 - adds r2, #0x38 - ldrb r2, [r2] - bl sub_0800015E -_0807AC44: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807AC50: .4byte 0x0000404F - - thumb_func_start sub_0807AC54 -sub_0807AC54: @ 0x0807AC54 - push {lr} - adds r2, r0, #0 - ldr r0, _0807AC74 @ =gUnk_03003F80 - ldrb r1, [r0, #0x11] - adds r3, r0, #0 - cmp r1, #0 - beq _0807ACC6 - ldrb r0, [r3, #0x12] - cmp r0, #0x2a - beq _0807ACA8 - cmp r0, #0x2a - bgt _0807AC78 - cmp r0, #0x1e - beq _0807AC82 - b _0807ACC6 - .align 2, 0 -_0807AC74: .4byte gUnk_03003F80 -_0807AC78: - cmp r0, #0x2b - beq _0807AC90 - cmp r0, #0x2c - beq _0807ACB6 - b _0807ACC6 -_0807AC82: - ldrh r0, [r2, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strh r1, [r2, #0x2e] -_0807AC90: - movs r0, #0 - movs r1, #0x1d - strb r1, [r2, #0xc] - strb r0, [r2, #0xd] - strh r0, [r2, #0x30] - ldr r0, _0807ACA4 @ =0x000002CF - strh r0, [r3, #8] - movs r0, #1 - b _0807ACC8 - .align 2, 0 -_0807ACA4: .4byte 0x000002CF -_0807ACA8: - ldrh r0, [r2, #0x2e] - movs r1, #0x10 - rsbs r1, r1, #0 - ands r1, r0 - movs r0, #8 - orrs r1, r0 - strh r1, [r2, #0x2e] -_0807ACB6: - movs r0, #0 - movs r1, #0x1d - strb r1, [r2, #0xc] - movs r1, #1 - strb r1, [r2, #0xd] - strh r0, [r2, #0x30] - movs r0, #1 - b _0807ACC8 -_0807ACC6: - movs r0, #0 -_0807ACC8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807ACCC -sub_0807ACCC: @ 0x0807ACCC - 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 - strb r0, [r2] - adds r1, r4, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - movs r0, #0x72 - bl sub_0807CA84 - movs r1, #0xc0 - cmp r0, #1 - bne _0807ACF4 - adds r1, #0x40 -_0807ACF4: - movs r2, #0x24 - ldrsh r0, [r4, r2] - cmp r1, r0 - ble _0807AD18 - strh r1, [r4, #0x24] - ldr r0, _0807AD14 @ =gUnk_03003F80 - ldrb r1, [r0, #0xd] - strb r1, [r4, #0x15] - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - cmp r0, #1 - bne _0807ADB4 - b _0807AD1E - .align 2, 0 -_0807AD14: .4byte gUnk_03003F80 -_0807AD18: - ldrh r0, [r4, #0x24] - subs r0, #4 - strh r0, [r4, #0x24] -_0807AD1E: - ldr r2, _0807AD3C @ =gUnk_03003F80 - adds r1, r2, #0 - adds r1, #0x89 - ldrb r0, [r1] - cmp r0, #0 - bne _0807AD40 - adds r0, r4, #0 - bl sub_0807ADB8 - cmp r0, #0 - bne _0807AD74 - adds r0, r4, #0 - bl sub_0807AE20 - b _0807AD74 - .align 2, 0 -_0807AD3C: .4byte gUnk_03003F80 -_0807AD40: - subs r0, #1 - strb r0, [r1] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807AD52 - adds r0, r4, #0 - bl sub_0807ADB8 - b _0807AD74 -_0807AD52: - adds r2, #0x26 - ldrb r1, [r2] - movs r0, #0x7f - ands r0, r1 - strb r0, [r2] - 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, _0807ADA0 @ =0x00000163 - bl sub_080A3268 -_0807AD74: - ldr r0, _0807ADA4 @ =gUnk_03003F80 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807ADA8 - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #4 - orrs r0, r1 - strb r0, [r2] - subs r2, #0x13 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - b _0807ADB2 - .align 2, 0 -_0807ADA0: .4byte 0x00000163 -_0807ADA4: .4byte gUnk_03003F80 -_0807ADA8: - adds r2, r4, #0 - adds r2, #0x3c - ldrb r1, [r2] - movs r0, #0xfb - ands r0, r1 -_0807ADB2: - strb r0, [r2] -_0807ADB4: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807ADB8 -sub_0807ADB8: @ 0x0807ADB8 - push {r4, lr} - adds r2, r0, #0 - ldr r3, _0807ADF4 @ =gUnk_03003F80 - adds r0, r3, #0 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807AE1C - movs r0, #0x26 - adds r0, r0, r3 - mov ip, r0 - ldrb r0, [r0] - movs r1, #0x80 - eors r0, r1 - mov r1, ip - strb r0, [r1] - movs r1, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - cmp r4, #0 - beq _0807ADF8 - adds r1, r3, #0 - adds r1, #0x89 - movs r0, #0x78 - strb r0, [r1] - b _0807AE0E - .align 2, 0 -_0807ADF4: .4byte gUnk_03003F80 -_0807ADF8: - 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, r3, #0 - adds r0, #0x89 - strb r4, [r0] -_0807AE0E: - ldr r0, _0807AE18 @ =0x00000163 - bl sub_080A3268 - movs r0, #1 - b _0807AE1E - .align 2, 0 -_0807AE18: .4byte 0x00000163 -_0807AE1C: - movs r0, #0 -_0807AE1E: - pop {r4, pc} - - thumb_func_start sub_0807AE20 -sub_0807AE20: @ 0x0807AE20 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0x17 - bne _0807AE32 - ldr r0, _0807AE58 @ =gUnk_03003F80 - ldrb r0, [r0, #0xa] - cmp r0, #0 - bne _0807AE74 -_0807AE32: - ldr r0, _0807AE5C @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #0 - bne _0807AE74 - ldr r0, _0807AE58 @ =gUnk_03003F80 - adds r0, #0x92 - ldrh r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807AE74 - movs r0, #0x72 - bl sub_0807CA84 - cmp r0, #1 - bne _0807AE60 - movs r0, #0xe0 - lsls r0, r0, #1 - b _0807AE64 - .align 2, 0 -_0807AE58: .4byte gUnk_03003F80 -_0807AE5C: .4byte gUnk_03000BF0 -_0807AE60: - movs r0, #0xc0 - lsls r0, r0, #1 -_0807AE64: - strh r0, [r4, #0x24] - adds r0, r4, #0 - bl sub_08079520 - movs r0, #0xb1 - lsls r0, r0, #1 - bl sub_080A3268 -_0807AE74: - movs r0, #0x10 - bl sub_080793E4 - cmp r0, #0 - beq _0807AEA8 - adds r1, r4, #0 - adds r1, #0x3d - movs r0, #0x14 - strb r0, [r1] - adds r1, #5 - movs r0, #4 - strb r0, [r1] - ldrb r0, [r4, #0x14] - lsls r0, r0, #2 - movs r1, #0x10 - eors r0, r1 - adds r1, r4, #0 - adds r1, #0x3e - strb r0, [r1] - movs r0, #2 - rsbs r0, r0, #0 - bl sub_080526A0 - movs r0, #0x7a - bl sub_080A3268 -_0807AEA8: - ldrb r1, [r4, #0x15] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807AECC - ldr r0, _0807AEC8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _0807AEDE - adds r0, r4, #0 - movs r1, #4 - bl sub_080A2A84 - b _0807AEDE - .align 2, 0 -_0807AEC8: .4byte gUnk_030010A0 -_0807AECC: - ldr r0, _0807AEE0 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0807AEDE - adds r0, r4, #0 - bl sub_080A2A64 -_0807AEDE: - pop {r4, pc} - .align 2, 0 -_0807AEE0: .4byte gUnk_030010A0 - - thumb_func_start sub_0807AEE4 -sub_0807AEE4: @ 0x0807AEE4 - push {r4, lr} - ldr r0, _0807AFE4 @ =gUnk_03003F80 - adds r4, r0, #0 - adds r4, #0xac - movs r0, #0 - strh r0, [r4] - movs r0, #0x48 - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF02 - ldrh r0, [r4] - movs r1, #1 - orrs r0, r1 - strh r0, [r4] -_0807AF02: - movs r0, #0x49 - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF14 - ldrh r0, [r4] - movs r1, #2 - orrs r0, r1 - strh r0, [r4] -_0807AF14: - movs r0, #0x4a - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF26 - ldrh r0, [r4] - movs r1, #4 - orrs r0, r1 - strh r0, [r4] -_0807AF26: - movs r0, #0x4b - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF38 - ldrh r0, [r4] - movs r1, #8 - orrs r0, r1 - strh r0, [r4] -_0807AF38: - movs r0, #0x4c - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF4A - ldrh r0, [r4] - movs r1, #0x10 - orrs r0, r1 - strh r0, [r4] -_0807AF4A: - movs r0, #0x4d - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF5C - ldrh r0, [r4] - movs r1, #0x20 - orrs r0, r1 - strh r0, [r4] -_0807AF5C: - movs r0, #0x4e - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF6E - ldrh r0, [r4] - movs r1, #0x40 - orrs r0, r1 - strh r0, [r4] -_0807AF6E: - movs r0, #0x4f - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF80 - ldrh r0, [r4] - movs r1, #0x80 - orrs r0, r1 - strh r0, [r4] -_0807AF80: - movs r0, #6 - bl sub_0807CA84 - cmp r0, #1 - bne _0807AF96 - ldrh r0, [r4] - movs r2, #0x80 - lsls r2, r2, #1 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r4] -_0807AF96: - movs r0, #0x73 - bl sub_0807CA84 - cmp r0, #1 - bne _0807AFAC - ldrh r0, [r4] - movs r3, #0x80 - lsls r3, r3, #2 - adds r1, r3, #0 - orrs r0, r1 - strh r0, [r4] -_0807AFAC: - movs r0, #0x74 - bl sub_0807CA84 - cmp r0, #1 - bne _0807AFC6 - ldr r0, _0807AFE4 @ =gUnk_03003F80 - adds r0, #0xac - ldrh r2, [r0] - movs r3, #0x80 - lsls r3, r3, #3 - adds r1, r3, #0 - orrs r1, r2 - strh r1, [r0] -_0807AFC6: - movs r0, #0x75 - bl sub_0807CA84 - cmp r0, #1 - bne _0807AFE0 - ldr r0, _0807AFE4 @ =gUnk_03003F80 - adds r0, #0xac - ldrh r2, [r0] - movs r3, #0x80 - lsls r3, r3, #4 - adds r1, r3, #0 - orrs r1, r2 - strh r1, [r0] -_0807AFE0: - pop {r4, pc} - .align 2, 0 -_0807AFE4: .4byte gUnk_03003F80 - - thumb_func_start sub_0807AFE8 -sub_0807AFE8: @ 0x0807AFE8 - push {lr} - bl sub_08077B20 - ldr r0, _0807B00C @ =gLinkEntity - movs r1, #0x43 - movs r2, #0 - bl CreateFX - adds r1, r0, #0 - cmp r1, #0 - beq _0807B004 - ldrh r0, [r1, #0x32] - adds r0, #1 - strh r0, [r1, #0x32] -_0807B004: - ldr r1, _0807B010 @ =gUnk_03003F80 - movs r0, #9 - strb r0, [r1, #0xc] - pop {pc} - .align 2, 0 -_0807B00C: .4byte gLinkEntity -_0807B010: .4byte gUnk_03003F80 - - thumb_func_start sub_0807B014 -sub_0807B014: @ 0x0807B014 - push {lr} - ldr r2, _0807B03C @ =gUnk_03003F80 - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807B044 - ldr r0, _0807B040 @ =gUnk_02002A40 - adds r1, r0, #0 - adds r1, #0xaa - adds r0, #0xab - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _0807B044 - movs r0, #0xf - b _0807B066 - .align 2, 0 -_0807B03C: .4byte gUnk_03003F80 -_0807B040: .4byte gUnk_02002A40 -_0807B044: - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807B064 - ldr r0, _0807B060 @ =gUnk_02002A40 - adds r0, #0xaa - ldrb r0, [r0] - cmp r0, #8 - bhi _0807B064 - movs r0, #0x16 - b _0807B066 - .align 2, 0 -_0807B060: .4byte gUnk_02002A40 -_0807B064: - movs r0, #0 -_0807B066: - pop {pc} - - thumb_func_start sub_0807B068 -sub_0807B068: @ 0x0807B068 - push {lr} - ldr r2, _0807B090 @ =gUnk_03003F80 - ldrb r1, [r2, #0x1e] - ldrb r0, [r2, #4] - orrs r0, r1 - cmp r0, #0 - bne _0807B0C2 - adds r0, r2, #0 - adds r0, #0x26 - ldrb r1, [r0] - cmp r1, #0 - beq _0807B0A4 - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807B098 - ldr r0, _0807B094 @ =0x00000C1C - strh r0, [r2, #8] - b _0807B0C2 - .align 2, 0 -_0807B090: .4byte gUnk_03003F80 -_0807B094: .4byte 0x00000C1C -_0807B098: - ldr r0, _0807B0A0 @ =0x00000C0C - strh r0, [r2, #8] - b _0807B0C2 - .align 2, 0 -_0807B0A0: .4byte 0x00000C0C -_0807B0A4: - ldrb r1, [r2, #0xd] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807B0B8 - ldrh r0, [r2, #8] - ldr r1, _0807B0B4 @ =0x00000C18 - b _0807B0BC - .align 2, 0 -_0807B0B4: .4byte 0x00000C18 -_0807B0B8: - ldrh r0, [r2, #8] - ldr r1, _0807B0C4 @ =0x00000C04 -_0807B0BC: - cmp r0, r1 - beq _0807B0C2 - strh r1, [r2, #8] -_0807B0C2: - pop {pc} - .align 2, 0 -_0807B0C4: .4byte 0x00000C04 - - thumb_func_start sub_0807B0C8 -sub_0807B0C8: @ 0x0807B0C8 - push {r4, lr} - ldr r4, _0807B0F8 @ =gLinkEntity - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #1 - movs r2, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #2 - adds r2, r4, #0 - bl sub_0806FEBC - adds r0, r4, #0 - movs r1, #3 - movs r2, #0 - bl sub_0806FEBC - pop {r4, pc} - .align 2, 0 -_0807B0F8: .4byte gLinkEntity - - thumb_func_start sub_0807B0FC -sub_0807B0FC: @ 0x0807B0FC - push {lr} - ldr r2, _0807B110 @ =gUnk_0811C27C - ldrb r1, [r0, #0xd] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807B110: .4byte gUnk_0811C27C - - thumb_func_start sub_0807B114 -sub_0807B114: @ 0x0807B114 - movs r1, #1 - strb r1, [r0, #0xd] - ldr r1, _0807B124 @ =gUnk_03003F80 - adds r1, #0x38 - ldrb r1, [r1] - adds r0, #0x6c - strb r1, [r0] - bx lr - .align 2, 0 -_0807B124: .4byte gUnk_03003F80 - - thumb_func_start sub_0807B128 -sub_0807B128: @ 0x0807B128 - push {lr} - ldr r2, _0807B140 @ =gUnk_0811C284 - adds r1, r0, #0 - adds r1, #0x6c - ldrb r1, [r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807B140: .4byte gUnk_0811C284 - - thumb_func_start sub_0807B144 -sub_0807B144: @ 0x0807B144 - push {lr} - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - ldrb r1, [r0, #0x14] - lsls r1, r1, #2 - strb r1, [r0, #0x15] - movs r1, #0xa0 - strh r1, [r0, #0x24] - movs r1, #0x80 - lsls r1, r1, #0xb - str r1, [r0, #0x20] - ldr r1, _0807B170 @ =gUnk_03003F80 - movs r0, #0x81 - strb r0, [r1, #2] - bl sub_080791BC - pop {pc} - .align 2, 0 -_0807B170: .4byte gUnk_03003F80 - - thumb_func_start nullsub_506 -nullsub_506: @ 0x0807B174 - bx lr - .align 2, 0 - - thumb_func_start sub_0807B178 -sub_0807B178: @ 0x0807B178 - push {lr} - ldrb r2, [r0, #0x18] - movs r1, #4 - rsbs r1, r1, #0 - ands r1, r2 - movs r2, #1 - orrs r1, r2 - strb r1, [r0, #0x18] - movs r2, #0 - movs r1, #0x10 - strb r1, [r0, #0x15] - strh r2, [r0, #0x24] - movs r1, #0x80 - lsls r1, r1, #0xb - str r1, [r0, #0x20] - ldr r1, _0807B1A4 @ =gUnk_03003F80 - movs r0, #0x81 - strb r0, [r1, #2] - bl sub_080791BC - pop {pc} - .align 2, 0 -_0807B1A4: .4byte gUnk_03003F80 - - thumb_func_start sub_0807B1A8 -sub_0807B1A8: @ 0x0807B1A8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0807B1D4 @ =gUnk_0811C298 - adds r0, #0x6e - ldrb r0, [r0] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - adds r0, r4, #0 - bl _call_via_r1 - ldr r0, _0807B1D8 @ =gUnk_030010A0 - ldr r0, [r0] - movs r1, #7 - ands r0, r1 - cmp r0, #0 - bne _0807B1D0 - adds r0, r4, #0 - bl sub_080A2B80 -_0807B1D0: - pop {r4, pc} - .align 2, 0 -_0807B1D4: .4byte gUnk_0811C298 -_0807B1D8: .4byte gUnk_030010A0 - - thumb_func_start sub_0807B1DC -sub_0807B1DC: @ 0x0807B1DC - adds r2, r0, #0 - adds r2, #0x6e - ldrb r1, [r2] - adds r1, #1 - strb r1, [r2] - movs r1, #0x1e - strb r1, [r0, #0xe] - bx lr - - thumb_func_start sub_0807B1EC -sub_0807B1EC: @ 0x0807B1EC - 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 _0807B212 - adds r1, r2, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0x80 - lsls r0, r0, #9 - str r0, [r2, #0x20] - ldr r1, _0807B214 @ =gUnk_03003F80 - ldr r0, _0807B218 @ =0x000002C2 - strh r0, [r1, #8] -_0807B212: - pop {pc} - .align 2, 0 -_0807B214: .4byte gUnk_03003F80 -_0807B218: .4byte 0x000002C2 - - thumb_func_start sub_0807B21C -sub_0807B21C: @ 0x0807B21C - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldr r0, [r4, #0x20] - cmp r0, #0 - bge _0807B236 - movs r1, #0x80 - lsls r1, r1, #3 - adds r0, r4, #0 - bl sub_08003FC4 - b _0807B240 -_0807B236: - movs r1, #0x80 - lsls r1, r1, #4 - adds r0, r4, #0 - bl sub_08003FC4 -_0807B240: - ldr r1, [r4, #0x20] - ldr r0, _0807B260 @ =0xFFFF8000 - cmp r1, r0 - bge _0807B25E - movs r1, #0 - movs r0, #0x78 - strb r0, [r4, #0xe] - strb r1, [r4, #0xf] - adds r1, r4, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r0, [r4, #0x34] - str r0, [r4, #0x68] -_0807B25E: - pop {r4, pc} - .align 2, 0 -_0807B260: .4byte 0xFFFF8000 - - thumb_func_start sub_0807B264 -sub_0807B264: @ 0x0807B264 - push {r4, lr} - adds r4, r0, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xf] - adds r0, #2 - strb r0, [r4, #0xf] - ldr r1, _0807B2B4 @ =gUnk_080C9160 - ldrb r0, [r4, #0xf] - lsls r0, r0, #1 - adds r0, r0, r1 - movs r2, #0 - ldrsh r1, [r0, r2] - asrs r1, r1, #7 - lsls r1, r1, #0x10 - ldr r0, [r4, #0x68] - adds r0, r0, r1 - str r0, [r4, #0x34] - ldrb r0, [r4, #0xe] - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807B2B0 - movs r0, #0x50 - strb r0, [r4, #0xe] - movs r0, #0x80 - lsls r0, r0, #8 - str r0, [r4, #0x20] - adds r1, r4, #0 - adds r1, #0x6e - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0xa9 - lsls r0, r0, #1 - bl sub_080A3268 -_0807B2B0: - pop {r4, pc} - .align 2, 0 -_0807B2B4: .4byte gUnk_080C9160 - - thumb_func_start sub_0807B2B8 -sub_0807B2B8: @ 0x0807B2B8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0807B2F0 @ =0xFFFFE000 - bl sub_08003FC4 - adds r0, r4, #0 - bl sub_080042B8 - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _0807B2EC - subs r0, #1 - strb r0, [r4, #0xe] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807B2EC - adds r0, r4, #0 - adds r0, #0x6d - ldrb r1, [r0] - lsls r0, r1, #2 - adds r0, r0, r1 - lsls r0, r0, #2 - ldr r1, _0807B2F4 @ =gUnk_0813AD88 - adds r0, r0, r1 - bl sub_08080840 -_0807B2EC: - pop {r4, pc} - .align 2, 0 -_0807B2F0: .4byte 0xFFFFE000 -_0807B2F4: .4byte gUnk_0813AD88 - - thumb_func_start sub_0807B2F8 -sub_0807B2F8: @ 0x0807B2F8 - push {lr} - adds r2, r0, #0 - adds r1, r2, #0 - adds r1, #0x6e - ldrb r0, [r1] - cmp r0, #0 - bne _0807B310 - adds r0, #1 - strb r0, [r1] - adds r0, r2, #0 - bl sub_0809D738 -_0807B310: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807B314 -sub_0807B314: @ 0x0807B314 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - ldr r0, _0807B3A0 @ =0x000007FF - cmp r5, r0 - bhi _0807B410 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0801AF8C - adds r0, r6, #0 - bl sub_0808094C - adds r2, r0, #0 - lsls r1, r5, #1 - ldr r3, _0807B3A4 @ =0x00006004 - adds r0, r2, r3 - adds r0, r0, r1 - ldrh r0, [r0] - mov ip, r0 - lsls r1, r4, #1 - adds r0, r2, #4 - adds r0, r0, r1 - mov r1, ip - strh r1, [r0] - ldr r0, _0807B3A8 @ =gUnk_080B3E80 - adds r0, r5, r0 - ldrb r3, [r0] - ldr r1, _0807B3AC @ =0x00002004 - adds r0, r2, r1 - adds r0, r0, r4 - strb r3, [r0] - ldr r7, _0807B3B0 @ =gUnk_03000BF0 - ldrb r1, [r7, #0xf] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807B36C - ldr r0, _0807B3B4 @ =gUnk_02025EB0 - ldr r1, _0807B3AC @ =0x00002004 - adds r0, r0, r1 - adds r0, r4, r0 - strb r3, [r0] -_0807B36C: - ldr r3, _0807B3B8 @ =0x0000B004 - adds r1, r2, r3 - adds r1, r1, r4 - ldr r0, _0807B3BC @ =gUnk_080B37A0 - adds r0, r5, r0 - ldrb r0, [r0] - strb r0, [r1] - ldrb r1, [r7, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807B430 - movs r1, #0x3f - ands r1, r4 - lsls r1, r1, #1 - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - cmp r6, #2 - beq _0807B3C4 - lsls r1, r1, #1 - ldr r0, _0807B3C0 @ =gUnk_02019EE0 - b _0807B3C8 - .align 2, 0 -_0807B3A0: .4byte 0x000007FF -_0807B3A4: .4byte 0x00006004 -_0807B3A8: .4byte gUnk_080B3E80 -_0807B3AC: .4byte 0x00002004 -_0807B3B0: .4byte gUnk_03000BF0 -_0807B3B4: .4byte gUnk_02025EB0 -_0807B3B8: .4byte 0x0000B004 -_0807B3BC: .4byte gUnk_080B37A0 -_0807B3C0: .4byte gUnk_02019EE0 -_0807B3C4: - lsls r1, r1, #1 - ldr r0, _0807B400 @ =gUnk_02002F00 -_0807B3C8: - adds r3, r1, r0 - mov r1, ip - lsls r0, r1, #3 - ldr r1, _0807B404 @ =0x00007004 - adds r0, r0, r1 - adds r0, r2, r0 - ldrh r1, [r0] - strh r1, [r3] - ldrh r1, [r0, #2] - strh r1, [r3, #2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r3, r1 - ldrh r1, [r0, #4] - strh r1, [r2] - movs r2, #0x81 - lsls r2, r2, #1 - adds r1, r3, r2 - ldrh r0, [r0, #6] - strh r0, [r1] - ldr r0, _0807B408 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #1 - beq _0807B430 - ldr r1, _0807B40C @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] - b _0807B430 - .align 2, 0 -_0807B400: .4byte gUnk_02002F00 -_0807B404: .4byte 0x00007004 -_0807B408: .4byte gUnk_03000BF0 -_0807B40C: .4byte gUnk_02000070 -_0807B410: - ldr r0, _0807B424 @ =0x00003FFF - cmp r5, r0 - bls _0807B428 - adds r0, r5, #0 - adds r1, r4, #0 - adds r2, r6, #0 - bl sub_0800015E - b _0807B430 - .align 2, 0 -_0807B424: .4byte 0x00003FFF -_0807B428: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0807BA8C -_0807B430: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807B434 -sub_0807B434: @ 0x0807B434 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_080002B0 - cmp r0, #0x37 - bhi _0807B44A - cmp r0, #0x36 - blo _0807B44A - movs r0, #0 - b _0807B462 -_0807B44A: - lsls r0, r4, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r5, #0x18 - lsrs r1, r1, #0x18 - bl sub_080002C8 - adds r1, r0, #0 - movs r0, #0xd - eors r1, r0 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r0, r0, #0x1f -_0807B462: - pop {r4, r5, pc} - - thumb_func_start sub_0807B464 -sub_0807B464: @ 0x0807B464 - push {lr} - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - bl sub_080002C8 - movs r1, #0 - cmp r0, #0x56 - bne _0807B47A - movs r1, #1 -_0807B47A: - adds r0, r1, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807B480 -sub_0807B480: @ 0x0807B480 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - movs r1, #2 - bl sub_0807B464 - cmp r0, #0 - beq _0807B558 - adds r0, r6, #0 - subs r0, #0x40 - movs r1, #2 - bl sub_0807B464 - adds r5, r0, #0 - adds r0, r6, #1 - movs r1, #2 - bl sub_0807B464 - lsls r0, r0, #1 - orrs r5, r0 - adds r4, r6, #0 - adds r4, #0x40 - adds r0, r4, #0 - movs r1, #2 - bl sub_0807B464 - lsls r0, r0, #2 - orrs r5, r0 - subs r0, r6, #1 - movs r1, #2 - bl sub_0807B464 - lsls r0, r0, #3 - orrs r5, r0 - adds r0, r6, #0 - adds r0, #0x41 - movs r1, #1 - bl sub_0807B464 - lsls r0, r0, #1 - orrs r5, r0 - adds r0, r6, #0 - adds r0, #0x3f - movs r1, #1 - bl sub_0807B464 - lsls r0, r0, #3 - orrs r5, r0 - adds r0, r4, #0 - movs r1, #2 - bl sub_080002B0 - cmp r0, #0 - beq _0807B4FA - adds r0, r6, #0 - adds r0, #0x80 - movs r1, #1 - bl sub_0807B464 - lsls r0, r0, #2 - orrs r5, r0 -_0807B4FA: - ldr r0, _0807B514 @ =gUnk_0811C2CC - lsls r1, r5, #1 - adds r1, r1, r0 - ldrh r4, [r1] - adds r0, r6, #0 - movs r1, #2 - bl sub_080002B0 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - ldr r2, _0807B518 @ =gUnk_0811C2EC - movs r3, #0 - b _0807B51E - .align 2, 0 -_0807B514: .4byte gUnk_0811C2CC -_0807B518: .4byte gUnk_0811C2EC -_0807B51C: - adds r2, #6 -_0807B51E: - ldrh r1, [r2] - cmp r1, #0 - beq _0807B52A - cmp r0, r1 - bne _0807B51C - ldrh r3, [r2, #2] -_0807B52A: - movs r0, #1 - lsls r0, r7 - bics r3, r0 - ldr r2, _0807B534 @ =gUnk_0811C2EC - b _0807B53A - .align 2, 0 -_0807B534: .4byte gUnk_0811C2EC -_0807B538: - adds r2, #6 -_0807B53A: - ldrh r0, [r2] - cmp r0, #0 - beq _0807B54E - ldrh r0, [r2, #2] - cmp r3, r0 - bne _0807B538 - ldrh r0, [r2, #4] - cmp r5, r0 - bne _0807B538 - ldrh r4, [r2] -_0807B54E: - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #2 - bl sub_0807B314 -_0807B558: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807B55C -sub_0807B55C: @ 0x0807B55C - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - adds r7, r2, #0 - bl sub_0807B464 - cmp r0, #0 - beq _0807B5AC - adds r0, r5, #0 - subs r0, #0x40 - adds r1, r6, #0 - bl sub_0807B464 - adds r4, r0, #0 - adds r0, r5, #1 - adds r1, r6, #0 - bl sub_0807B464 - lsls r0, r0, #1 - orrs r4, r0 - adds r0, r5, #0 - adds r0, #0x40 - adds r1, r6, #0 - bl sub_0807B464 - lsls r0, r0, #2 - orrs r4, r0 - subs r0, r5, #1 - adds r1, r6, #0 - bl sub_0807B464 - lsls r0, r0, #3 - orrs r0, r4 - lsls r0, r0, #1 - adds r0, r0, r7 - ldrh r0, [r0] - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0807B314 -_0807B5AC: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807B5B0 -sub_0807B5B0: @ 0x0807B5B0 - push {r4, r5, r6, r7, lr} - adds r3, r0, #0 - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldr r6, _0807B5F8 @ =gUnk_0811C456 - ldrb r1, [r3, #0x14] - movs r2, #6 - ands r2, r1 - lsls r1, r2, #1 - adds r1, r1, r6 - movs r4, #0 - ldrsh r1, [r1, r4] - adds r0, r0, r1 - ldr r5, _0807B5FC @ =gUnk_03000BF0 - ldrh r1, [r5, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r4, #0x3f - ands r0, r4 - movs r7, #0x32 - ldrsh r1, [r3, r7] - adds r2, #1 - lsls r2, r2, #1 - adds r2, r2, r6 - movs r3, #0 - ldrsh r2, [r2, r3] - adds r1, r1, r2 - ldrh r2, [r5, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r4 - lsls r1, r1, #6 - orrs r0, r1 - bl sub_0807B600 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807B5F8: .4byte gUnk_0811C456 -_0807B5FC: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807B600 -sub_0807B600: @ 0x0807B600 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r5, #0 - subs r6, #0x40 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - movs r1, #1 - bl sub_080002C8 - cmp r0, #0x56 - beq _0807B61A - movs r0, #0 - b _0807B76E -_0807B61A: - adds r0, r5, #0 - movs r1, #1 - bl sub_080002B0 - adds r1, r0, #0 - ldr r0, _0807B634 @ =0x0000026A - cmp r1, r0 - bne _0807B638 - adds r0, r5, #0 - bl sub_0807B820 - b _0807B76C - .align 2, 0 -_0807B634: .4byte 0x0000026A -_0807B638: - ldr r0, _0807B648 @ =0x00000267 - cmp r1, r0 - bne _0807B64C - adds r0, r5, #0 - adds r0, #0x40 - bl sub_0807B820 - b _0807B76C - .align 2, 0 -_0807B648: .4byte 0x00000267 -_0807B64C: - ldr r0, _0807B65C @ =0x0000027A - cmp r1, r0 - bne _0807B660 - adds r0, r5, #0 - bl sub_0807B8A8 - b _0807B76C - .align 2, 0 -_0807B65C: .4byte 0x0000027A -_0807B660: - ldr r0, _0807B670 @ =0x00000277 - cmp r1, r0 - bne _0807B674 - adds r0, r5, #0 - adds r0, #0x40 - bl sub_0807B8A8 - b _0807B76C - .align 2, 0 -_0807B670: .4byte 0x00000277 -_0807B674: - ldr r0, _0807B684 @ =0x0000028A - cmp r1, r0 - bne _0807B688 - adds r0, r5, #0 - bl sub_0807B930 - b _0807B76C - .align 2, 0 -_0807B684: .4byte 0x0000028A -_0807B688: - ldr r0, _0807B698 @ =0x00000287 - cmp r1, r0 - bne _0807B69C - adds r0, r5, #0 - adds r0, #0x40 - bl sub_0807B930 - b _0807B76C - .align 2, 0 -_0807B698: .4byte 0x00000287 -_0807B69C: - adds r0, r5, #0 - movs r1, #2 - bl sub_080002B0 - cmp r0, #0 - beq _0807B6EC - ldr r0, _0807B6E8 @ =0x000002F2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - adds r0, r6, #0 - movs r1, #1 - bl sub_080002E0 - cmp r0, #3 - bne _0807B6CA - movs r0, #0xbd - lsls r0, r0, #2 - adds r1, r6, #0 - movs r2, #1 - bl sub_0807B314 -_0807B6CA: - adds r0, r5, #0 - adds r0, #0x40 - movs r1, #1 - bl sub_080002E0 - cmp r0, #3 - bne _0807B6F8 - movs r0, #0xbd - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - b _0807B6F8 - .align 2, 0 -_0807B6E8: .4byte 0x000002F2 -_0807B6EC: - movs r0, #0xbd - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 -_0807B6F8: - adds r0, r6, #0 - movs r1, #2 - bl sub_0807B464 - cmp r0, #0 - beq _0807B748 - movs r0, #0 - adds r1, r6, #0 - movs r2, #2 - bl sub_0807B314 - adds r0, r6, #0 - movs r1, #1 - bl sub_080002B0 - ldr r1, _0807B770 @ =0x000002F2 - cmp r0, r1 - bne _0807B728 - movs r0, #0xbd - lsls r0, r0, #2 - adds r1, r6, #0 - movs r2, #1 - bl sub_0807B314 -_0807B728: - adds r0, r5, #1 - ldr r4, _0807B774 @ =gUnk_0811C2AC - movs r1, #1 - adds r2, r4, #0 - bl sub_0807B55C - subs r0, r5, #1 - movs r1, #1 - adds r2, r4, #0 - bl sub_0807B55C - adds r0, r6, #0 - movs r1, #1 - adds r2, r4, #0 - bl sub_0807B55C -_0807B748: - adds r0, r6, #1 - movs r1, #3 - bl sub_0807B480 - subs r0, r6, #1 - movs r1, #1 - bl sub_0807B480 - adds r0, r6, #0 - adds r0, #0x40 - movs r1, #0 - bl sub_0807B480 - adds r0, r6, #0 - subs r0, #0x40 - movs r1, #2 - bl sub_0807B480 -_0807B76C: - movs r0, #1 -_0807B76E: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807B770: .4byte 0x000002F2 -_0807B774: .4byte gUnk_0811C2AC - - thumb_func_start sub_0807B778 -sub_0807B778: @ 0x0807B778 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r6, r1, #0 - lsls r0, r5, #0x10 - lsrs r0, r0, #0x10 - lsls r1, r6, #0x18 - lsrs r1, r1, #0x18 - bl sub_080002C8 - cmp r0, #0xd - bne _0807B7D0 - adds r0, r5, #0 - subs r0, #0x40 - adds r1, r6, #0 - bl sub_0807B434 - adds r4, r0, #0 - adds r0, r5, #1 - adds r1, r6, #0 - bl sub_0807B434 - lsls r0, r0, #1 - orrs r4, r0 - adds r0, r5, #0 - adds r0, #0x40 - adds r1, r6, #0 - bl sub_0807B434 - lsls r0, r0, #2 - orrs r4, r0 - subs r0, r5, #1 - adds r1, r6, #0 - bl sub_0807B434 - lsls r0, r0, #3 - orrs r0, r4 - ldr r1, _0807B7D4 @ =gUnk_0811C466 - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0807B314 -_0807B7D0: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807B7D4: .4byte gUnk_0811C466 - - thumb_func_start sub_0807B7D8 -sub_0807B7D8: @ 0x0807B7D8 - push {r4, r5, lr} - adds r4, r1, #0 - adds r5, r2, #0 - cmp r0, #0x35 - bne _0807B816 - movs r0, #0x35 - bl sub_08000152 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807B778 - adds r0, r4, #1 - adds r1, r5, #0 - bl sub_0807B778 - subs r0, r4, #1 - adds r1, r5, #0 - bl sub_0807B778 - adds r0, r4, #0 - adds r0, #0x40 - adds r1, r5, #0 - bl sub_0807B778 - adds r0, r4, #0 - subs r0, #0x40 - adds r1, r5, #0 - bl sub_0807B778 - b _0807B81E -_0807B816: - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0807B314 -_0807B81E: - pop {r4, r5, pc} - - thumb_func_start sub_0807B820 -sub_0807B820: @ 0x0807B820 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x9b - lsls r0, r0, #2 - adds r5, r4, #0 - subs r5, #0x41 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B890 @ =0x00000273 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B894 @ =0x0000026D - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0x9d - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B898 @ =0x0000026E - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B89C @ =0x00000275 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B8A0 @ =0x0000026F - subs r1, r4, #1 - movs r2, #1 - bl sub_0807B314 - movs r0, #0x9c - lsls r0, r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B8A4 @ =0x00000272 - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0807B890: .4byte 0x00000273 -_0807B894: .4byte 0x0000026D -_0807B898: .4byte 0x0000026E -_0807B89C: .4byte 0x00000275 -_0807B8A0: .4byte 0x0000026F -_0807B8A4: .4byte 0x00000272 - - thumb_func_start sub_0807B8A8 -sub_0807B8A8: @ 0x0807B8A8 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0x9f - lsls r0, r0, #2 - adds r5, r4, #0 - subs r5, #0x41 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B918 @ =0x00000283 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B91C @ =0x0000027D - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa1 - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B920 @ =0x0000027E - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B924 @ =0x00000285 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B928 @ =0x0000027F - subs r1, r4, #1 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa0 - lsls r0, r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B92C @ =0x00000282 - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0807B918: .4byte 0x00000283 -_0807B91C: .4byte 0x0000027D -_0807B920: .4byte 0x0000027E -_0807B924: .4byte 0x00000285 -_0807B928: .4byte 0x0000027F -_0807B92C: .4byte 0x00000282 - - thumb_func_start sub_0807B930 -sub_0807B930: @ 0x0807B930 - push {r4, r5, lr} - adds r4, r0, #0 - movs r0, #0xa3 - lsls r0, r0, #2 - adds r5, r4, #0 - subs r5, #0x41 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B9A0 @ =0x00000293 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B9A4 @ =0x0000028D - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa5 - lsls r0, r0, #2 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B9A8 @ =0x0000028E - adds r5, #1 - adds r1, r5, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B9AC @ =0x00000295 - adds r1, r5, #0 - movs r2, #2 - bl sub_0807B314 - ldr r0, _0807B9B0 @ =0x0000028F - subs r1, r4, #1 - movs r2, #1 - bl sub_0807B314 - movs r0, #0xa4 - lsls r0, r0, #2 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - ldr r0, _0807B9B4 @ =0x00000292 - adds r4, #1 - adds r1, r4, #0 - movs r2, #1 - bl sub_0807B314 - pop {r4, r5, pc} - .align 2, 0 -_0807B9A0: .4byte 0x00000293 -_0807B9A4: .4byte 0x0000028D -_0807B9A8: .4byte 0x0000028E -_0807B9AC: .4byte 0x00000295 -_0807B9B0: .4byte 0x0000028F -_0807B9B4: .4byte 0x00000292 - - thumb_func_start sub_0807B9B8 -sub_0807B9B8: @ 0x0807B9B8 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r4, r1, #0 - adds r6, r2, #0 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0801AF8C - adds r0, r6, #0 - bl sub_0808094C - adds r5, r0, #0 - lsls r1, r4, #1 - adds r0, r5, #4 - adds r0, r0, r1 - strh r7, [r0] - lsls r1, r7, #1 - ldr r2, _0807BA24 @ =0x00005004 - adds r0, r5, r2 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r0, _0807BA28 @ =0x00002004 - adds r1, r5, r0 - adds r1, r1, r4 - ldr r0, _0807BA2C @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0807BA30 @ =0x0000B004 - adds r1, r5, r0 - adds r1, r1, r4 - ldr r0, _0807BA34 @ =gUnk_080B37A0 - adds r2, r2, r0 - ldrb r0, [r2] - strb r0, [r1] - ldr r0, _0807BA38 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807BA78 - movs r1, #0x3f - ands r1, r4 - lsls r1, r1, #1 - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - cmp r6, #2 - beq _0807BA40 - lsls r1, r1, #1 - ldr r0, _0807BA3C @ =gUnk_02019EE0 - b _0807BA44 - .align 2, 0 -_0807BA24: .4byte 0x00005004 -_0807BA28: .4byte 0x00002004 -_0807BA2C: .4byte gUnk_080B3E80 -_0807BA30: .4byte 0x0000B004 -_0807BA34: .4byte gUnk_080B37A0 -_0807BA38: .4byte gUnk_03000BF0 -_0807BA3C: .4byte gUnk_02019EE0 -_0807BA40: - lsls r1, r1, #1 - ldr r0, _0807BA7C @ =gUnk_02002F00 -_0807BA44: - adds r3, r1, r0 - lsls r0, r7, #3 - ldr r1, _0807BA80 @ =0x00007004 - adds r0, r0, r1 - adds r0, r5, r0 - ldrh r1, [r0] - strh r1, [r3] - ldrh r1, [r0, #2] - strh r1, [r3, #2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r3, r1 - ldrh r1, [r0, #4] - strh r1, [r2] - movs r2, #0x81 - lsls r2, r2, #1 - adds r1, r3, r2 - ldrh r0, [r0, #6] - strh r0, [r1] - ldr r0, _0807BA84 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #1 - beq _0807BA78 - ldr r1, _0807BA88 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_0807BA78: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BA7C: .4byte gUnk_02002F00 -_0807BA80: .4byte 0x00007004 -_0807BA84: .4byte gUnk_03000BF0 -_0807BA88: .4byte gUnk_02000070 - - thumb_func_start sub_0807BA8C -sub_0807BA8C: @ 0x0807BA8C - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - bl sub_0801AF8C - adds r0, r7, #0 - bl sub_0808094C - adds r5, r0, #0 - lsls r2, r4, #1 - adds r1, r5, #4 - adds r1, r1, r2 - ldr r3, _0807BAFC @ =0x00003004 - adds r0, r5, r3 - adds r0, r0, r2 - ldrh r6, [r0] - strh r6, [r1] - lsls r1, r6, #1 - ldr r2, _0807BB00 @ =0x00005004 - adds r0, r5, r2 - adds r0, r0, r1 - ldrh r2, [r0] - ldr r3, _0807BB04 @ =0x00002004 - adds r1, r5, r3 - adds r1, r1, r4 - ldr r0, _0807BB08 @ =gUnk_080B3E80 - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0807BB0C @ =0x0000B004 - adds r1, r5, r0 - adds r1, r1, r4 - ldr r0, _0807BB10 @ =gUnk_080B37A0 - adds r2, r2, r0 - ldrb r0, [r2] - strb r0, [r1] - ldr r0, _0807BB14 @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807BB54 - movs r1, #0x3f - ands r1, r4 - lsls r1, r1, #1 - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r4 - lsls r0, r0, #2 - adds r1, r1, r0 - cmp r7, #2 - beq _0807BB1C - lsls r1, r1, #1 - ldr r0, _0807BB18 @ =gUnk_02019EE0 - b _0807BB20 - .align 2, 0 -_0807BAFC: .4byte 0x00003004 -_0807BB00: .4byte 0x00005004 -_0807BB04: .4byte 0x00002004 -_0807BB08: .4byte gUnk_080B3E80 -_0807BB0C: .4byte 0x0000B004 -_0807BB10: .4byte gUnk_080B37A0 -_0807BB14: .4byte gUnk_03000BF0 -_0807BB18: .4byte gUnk_02019EE0 -_0807BB1C: - lsls r1, r1, #1 - ldr r0, _0807BB58 @ =gUnk_02002F00 -_0807BB20: - adds r3, r1, r0 - lsls r0, r6, #3 - ldr r1, _0807BB5C @ =0x00007004 - adds r0, r0, r1 - adds r0, r5, r0 - ldrh r1, [r0] - strh r1, [r3] - ldrh r1, [r0, #2] - strh r1, [r3, #2] - movs r1, #0x80 - lsls r1, r1, #1 - adds r2, r3, r1 - ldrh r1, [r0, #4] - strh r1, [r2] - movs r2, #0x81 - lsls r2, r2, #1 - adds r1, r3, r2 - ldrh r0, [r0, #6] - strh r0, [r1] - ldr r0, _0807BB60 @ =gUnk_03000BF0 - ldrh r0, [r0] - cmp r0, #1 - beq _0807BB54 - ldr r1, _0807BB64 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_0807BB54: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BB58: .4byte gUnk_02002F00 -_0807BB5C: .4byte 0x00007004 -_0807BB60: .4byte gUnk_03000BF0 -_0807BB64: .4byte gUnk_02000070 - - thumb_func_start sub_0807BB68 -sub_0807BB68: @ 0x0807BB68 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - adds r5, r2, #0 - movs r1, #0 - ldrsh r0, [r4, r1] - movs r1, #1 - rsbs r1, r1, #0 - cmp r0, r1 - beq _0807BB96 - adds r7, r1, #0 -_0807BB7E: - ldrh r0, [r4] - movs r2, #2 - ldrsh r1, [r4, r2] - adds r1, r6, r1 - adds r2, r5, #0 - bl sub_0807B314 - adds r4, #4 - movs r1, #0 - ldrsh r0, [r4, r1] - cmp r0, r7 - bne _0807BB7E -_0807BB96: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_0807BB98 -sub_0807BB98: @ 0x0807BB98 - 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 - mov r8, r2 - mov sb, r3 - movs r0, #0 - cmp r0, sb - bhs _0807BBD4 -_0807BBB0: - movs r4, #0 - adds r7, r5, #0 - adds r7, #0x40 - adds r6, r0, #1 - cmp r4, r8 - bhs _0807BBCC -_0807BBBC: - adds r1, r5, r4 - ldr r0, _0807BBE0 @ =0x00004072 - mov r2, sl - bl sub_0800015E - adds r4, #1 - cmp r4, r8 - blo _0807BBBC -_0807BBCC: - adds r5, r7, #0 - adds r0, r6, #0 - cmp r0, sb - blo _0807BBB0 -_0807BBD4: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BBE0: .4byte 0x00004072 - - thumb_func_start sub_0807BBE4 -sub_0807BBE4: @ 0x0807BBE4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r0, _0807BC28 @ =gUnk_0202AEB4 - mov sl, r0 - ldr r0, _0807BC2C @ =gUnk_02010654 - mov sb, r0 - ldr r5, _0807BC30 @ =0xFFFFB000 - add r5, sl - ldr r4, _0807BC30 @ =0xFFFFB000 - add r4, sb - ldr r2, _0807BC34 @ =0xFFFFD000 - add r2, sl - ldr r1, _0807BC34 @ =0xFFFFD000 - add r1, sb - movs r3, #0 - ldr r0, _0807BC38 @ =0x00003FFF - mov r8, r0 - ldr r0, _0807BC3C @ =gUnk_080B3E80 - mov ip, r0 - ldr r7, _0807BC40 @ =gUnk_080B79A7 - ldr r6, _0807BC44 @ =0xFFFFC000 -_0807BC14: - ldrh r0, [r5] - adds r5, #2 - cmp r0, r8 - bhi _0807BC48 - lsls r0, r0, #1 - add r0, sl - ldrh r0, [r0] - add r0, ip - b _0807BC4C - .align 2, 0 -_0807BC28: .4byte gUnk_0202AEB4 -_0807BC2C: .4byte gUnk_02010654 -_0807BC30: .4byte 0xFFFFB000 -_0807BC34: .4byte 0xFFFFD000 -_0807BC38: .4byte 0x00003FFF -_0807BC3C: .4byte gUnk_080B3E80 -_0807BC40: .4byte gUnk_080B79A7 -_0807BC44: .4byte 0xFFFFC000 -_0807BC48: - adds r0, r0, r6 - adds r0, r0, r7 -_0807BC4C: - ldrb r0, [r0] - strb r0, [r2] - adds r2, #1 - ldrh r0, [r4] - adds r4, #2 - cmp r0, r8 - bhi _0807BC64 - lsls r0, r0, #1 - add r0, sb - ldrh r0, [r0] - add r0, ip - b _0807BC68 -_0807BC64: - adds r0, r0, r6 - adds r0, r0, r7 -_0807BC68: - ldrb r0, [r0] - strb r0, [r1] - adds r1, #1 - adds r3, #1 - ldr r0, _0807BC80 @ =0x00000FFF - cmp r3, r0 - bls _0807BC14 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BC80: .4byte 0x00000FFF - - thumb_func_start sub_0807BC84 -sub_0807BC84: @ 0x0807BC84 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - ldr r1, _0807BD04 @ =gUnk_03000BF0 - ldrh r0, [r1, #0x1e] - lsrs r2, r0, #4 - mov r8, r1 - cmp r2, #0x40 - bne _0807BC98 - movs r2, #0x3f -_0807BC98: - ldr r1, _0807BD08 @ =gUnk_02027EB4 - adds r3, r2, r1 - adds r6, r1, #0 - adds r6, #0x3f - ldr r0, _0807BD0C @ =gUnk_0200D654 - adds r2, r2, r0 - adds r5, r0, #0 - adds r5, #0x3f - movs r4, #0 - adds r7, r1, #0 - mov ip, r0 - movs r0, #0xff -_0807BCB0: - strb r0, [r3] - strb r0, [r6] - strb r0, [r2] - strb r0, [r5] - adds r3, #0x40 - adds r6, #0x40 - adds r2, #0x40 - adds r5, #0x40 - adds r4, #1 - cmp r4, #0x3f - bls _0807BCB0 - mov r0, r8 - ldrh r1, [r0, #0x20] - ldr r0, _0807BD10 @ =0x0000FFF0 - ands r0, r1 - lsls r0, r0, #2 - adds r3, r0, r7 - movs r1, #0xfc - lsls r1, r1, #4 - adds r6, r7, r1 - mov r1, ip - adds r2, r0, r1 - movs r5, #0xfc - lsls r5, r5, #4 - add r5, ip - movs r4, #0 - movs r0, #0xff -_0807BCE6: - strb r0, [r3] - adds r3, #1 - strb r0, [r6] - adds r6, #1 - strb r0, [r2] - adds r2, #1 - strb r0, [r5] - adds r5, #1 - adds r4, #1 - cmp r4, #0x3f - bls _0807BCE6 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BD04: .4byte gUnk_03000BF0 -_0807BD08: .4byte gUnk_02027EB4 -_0807BD0C: .4byte gUnk_0200D654 -_0807BD10: .4byte 0x0000FFF0 - - thumb_func_start sub_0807BD14 -sub_0807BD14: @ 0x0807BD14 - push {r4, r5, lr} - adds r5, r1, #0 - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r3, #0x32 - ldrsh r1, [r0, r3] - adds r0, r2, #0 - adds r2, r5, #0 - bl sub_0807BEEC - adds r3, r0, #0 - cmp r3, #0xff - beq _0807BDB4 - ldr r1, _0807BD68 @ =gUnk_03000BF0 - movs r2, #0 - movs r0, #2 - strb r0, [r1, #2] - strb r2, [r1, #3] - movs r4, #1 - strh r4, [r1] - strb r3, [r1, #5] - strb r5, [r1, #0x10] - bl sub_08052E8C - adds r2, r0, #0 - ldr r1, _0807BD6C @ =gUnk_02033A90 - ldr r3, _0807BD70 @ =0x0000085C - adds r0, r1, r3 - str r2, [r0] - ldrb r0, [r1, #0xd] - ands r4, r0 - cmp r4, #0 - beq _0807BD98 - cmp r5, #1 - beq _0807BD7E - cmp r5, #1 - blo _0807BD74 - cmp r5, #2 - beq _0807BD86 - cmp r5, #3 - beq _0807BD90 - b _0807BD98 - .align 2, 0 -_0807BD68: .4byte gUnk_03000BF0 -_0807BD6C: .4byte gUnk_02033A90 -_0807BD70: .4byte 0x0000085C -_0807BD74: - ldrh r0, [r2, #6] - ldrh r1, [r2, #2] - subs r0, r0, r1 - strh r0, [r2, #6] - b _0807BD98 -_0807BD7E: - ldrh r0, [r2] - ldrh r1, [r2, #4] - adds r0, r0, r1 - b _0807BD96 -_0807BD86: - ldrh r0, [r2, #2] - ldrh r3, [r2, #6] - adds r0, r0, r3 - strh r0, [r2, #6] - b _0807BD98 -_0807BD90: - ldrh r0, [r2, #4] - ldrh r1, [r2] - subs r0, r0, r1 -_0807BD96: - strh r0, [r2, #4] -_0807BD98: - ldr r2, _0807BDB0 @ =gLinkEntity - ldrb r1, [r2, #0x11] - movs r0, #0x10 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #6 - orrs r0, r1 - strb r0, [r2, #0x11] - bl sub_0805E5A8 - movs r0, #1 - b _0807BDB6 - .align 2, 0 -_0807BDB0: .4byte gLinkEntity -_0807BDB4: - movs r0, #0 -_0807BDB6: - pop {r4, r5, pc} - - thumb_func_start sub_0807BDB8 -sub_0807BDB8: @ 0x0807BDB8 - push {r4, r5, lr} - adds r3, r0, #0 - movs r5, #0xff - movs r0, #7 - ands r1, r0 - cmp r1, #7 - bls _0807BDC8 - b _0807BEE2 -_0807BDC8: - lsls r0, r1, #2 - ldr r1, _0807BDD4 @ =_0807BDD8 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807BDD4: .4byte _0807BDD8 -_0807BDD8: @ jump table - .4byte _0807BDF8 @ case 0 - .4byte _0807BE10 @ case 1 - .4byte _0807BE30 @ case 2 - .4byte _0807BE4C @ case 3 - .4byte _0807BE78 @ case 4 - .4byte _0807BE94 @ case 5 - .4byte _0807BEB4 @ case 6 - .4byte _0807BEC4 @ case 7 -_0807BDF8: - movs r1, #0x32 - ldrsh r0, [r3, r1] - ldr r1, _0807BE0C @ =gUnk_03000BF0 - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r0, #9 - bhi _0807BEE2 - movs r5, #0 - b _0807BEE2 - .align 2, 0 -_0807BE0C: .4byte gUnk_03000BF0 -_0807BE10: - movs r2, #0x32 - ldrsh r0, [r3, r2] - ldr r2, _0807BE2C @ =gUnk_03000BF0 - ldrh r1, [r2, #8] - subs r0, r0, r1 - cmp r0, #9 - bhi _0807BE20 - movs r5, #0 -_0807BE20: - ldrh r0, [r2, #0x1e] - subs r0, #0xa - movs r4, #0x2e - ldrsh r1, [r3, r4] - ldrh r2, [r2, #6] - b _0807BE6A - .align 2, 0 -_0807BE2C: .4byte gUnk_03000BF0 -_0807BE30: - ldr r1, _0807BE48 @ =gUnk_03000BF0 - ldrh r2, [r1, #0x1e] - subs r2, #0xa - movs r4, #0x2e - ldrsh r0, [r3, r4] - ldrh r1, [r1, #6] - subs r0, r0, r1 - cmp r2, r0 - bhs _0807BEE2 - movs r5, #1 - b _0807BEE2 - .align 2, 0 -_0807BE48: .4byte gUnk_03000BF0 -_0807BE4C: - ldr r4, _0807BE74 @ =gUnk_03000BF0 - ldrh r0, [r4, #0x20] - subs r0, #0xa - movs r2, #0x32 - ldrsh r1, [r3, r2] - ldrh r2, [r4, #8] - subs r1, r1, r2 - cmp r0, r1 - bhs _0807BE60 - movs r5, #2 -_0807BE60: - ldrh r0, [r4, #0x1e] - subs r0, #0xa - movs r2, #0x2e - ldrsh r1, [r3, r2] - ldrh r2, [r4, #6] -_0807BE6A: - subs r1, r1, r2 - cmp r0, r1 - bhs _0807BEE2 - movs r5, #1 - b _0807BEE2 - .align 2, 0 -_0807BE74: .4byte gUnk_03000BF0 -_0807BE78: - ldr r1, _0807BE90 @ =gUnk_03000BF0 - ldrh r2, [r1, #0x20] - subs r2, #0xa - movs r4, #0x32 - ldrsh r0, [r3, r4] - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r2, r0 - bhs _0807BEE2 - movs r5, #2 - b _0807BEE2 - .align 2, 0 -_0807BE90: .4byte gUnk_03000BF0 -_0807BE94: - ldr r4, _0807BEB0 @ =gUnk_03000BF0 - ldrh r0, [r4, #0x20] - subs r0, #0xa - movs r2, #0x32 - ldrsh r1, [r3, r2] - ldrh r2, [r4, #8] - subs r1, r1, r2 - cmp r0, r1 - bhs _0807BEA8 - movs r5, #2 -_0807BEA8: - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldrh r1, [r4, #6] - b _0807BEDA - .align 2, 0 -_0807BEB0: .4byte gUnk_03000BF0 -_0807BEB4: - movs r2, #0x2e - ldrsh r0, [r3, r2] - ldr r1, _0807BEC0 @ =gUnk_03000BF0 - ldrh r1, [r1, #6] - b _0807BEDA - .align 2, 0 -_0807BEC0: .4byte gUnk_03000BF0 -_0807BEC4: - movs r4, #0x32 - ldrsh r0, [r3, r4] - ldr r2, _0807BEE8 @ =gUnk_03000BF0 - ldrh r1, [r2, #8] - subs r0, r0, r1 - cmp r0, #9 - bhi _0807BED4 - movs r5, #0 -_0807BED4: - movs r1, #0x2e - ldrsh r0, [r3, r1] - ldrh r1, [r2, #6] -_0807BEDA: - subs r0, r0, r1 - cmp r0, #9 - bhi _0807BEE2 - movs r5, #3 -_0807BEE2: - adds r0, r5, #0 - pop {r4, r5, pc} - .align 2, 0 -_0807BEE8: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807BEEC -sub_0807BEEC: @ 0x0807BEEC - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - ldr r0, _0807BF04 @ =gUnk_02033A90 - ldrb r1, [r0, #0xd] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807BF0C - ldr r0, _0807BF08 @ =gUnk_03000BF0 - ldrb r0, [r0, #5] - b _0807BF7C - .align 2, 0 -_0807BF04: .4byte gUnk_02033A90 -_0807BF08: .4byte gUnk_03000BF0 -_0807BF0C: - cmp r2, #1 - beq _0807BF2C - cmp r2, #1 - blo _0807BF1E - cmp r2, #2 - beq _0807BF40 - cmp r2, #3 - beq _0807BF58 - b _0807BF7A -_0807BF1E: - ldr r0, _0807BF28 @ =gUnk_03000BF0 - ldrh r0, [r0, #8] - adds r7, r0, #0 - subs r7, #0x10 - b _0807BF60 - .align 2, 0 -_0807BF28: .4byte gUnk_03000BF0 -_0807BF2C: - ldr r0, _0807BF3C @ =gUnk_03000BF0 - ldrh r1, [r0, #6] - ldrh r0, [r0, #0x1e] - adds r1, r1, r0 - adds r6, r1, #0 - adds r6, #0x10 - b _0807BF60 - .align 2, 0 -_0807BF3C: .4byte gUnk_03000BF0 -_0807BF40: - ldr r0, _0807BF50 @ =gUnk_03000BF0 - ldrh r1, [r0, #8] - ldrh r0, [r0, #0x20] - adds r1, r1, r0 - adds r7, r1, #0 - adds r7, #0x10 - b _0807BF60 - .align 2, 0 -_0807BF50: .4byte gUnk_03000BF0 -_0807BF54: - adds r0, r4, #0 - b _0807BF7C -_0807BF58: - ldr r0, _0807BF80 @ =gUnk_03000BF0 - ldrh r0, [r0, #6] - adds r6, r0, #0 - subs r6, #0x10 -_0807BF60: - ldr r5, _0807BF84 @ =gUnk_02033ACC - movs r4, #0 -_0807BF64: - adds r0, r6, #0 - adds r1, r7, #0 - adds r2, r5, #0 - bl sub_0807BF88 - cmp r0, #0 - bne _0807BF54 - adds r4, #1 - adds r5, #0x20 - cmp r4, #0x3f - bls _0807BF64 -_0807BF7A: - movs r0, #0xff -_0807BF7C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807BF80: .4byte gUnk_03000BF0 -_0807BF84: .4byte gUnk_02033ACC - - thumb_func_start sub_0807BF88 -sub_0807BF88: @ 0x0807BF88 - push {r4, lr} - adds r3, r2, #0 - ldrh r2, [r3, #4] - subs r0, r0, r2 - ldrh r2, [r3, #6] - subs r1, r1, r2 - movs r2, #0 - ldrh r4, [r3] - cmp r0, r4 - bhs _0807BFA4 - ldrh r3, [r3, #2] - cmp r1, r3 - bhs _0807BFA4 - movs r2, #1 -_0807BFA4: - adds r0, r2, #0 - pop {r4, pc} - - thumb_func_start sub_0807BFA8 -sub_0807BFA8: @ 0x0807BFA8 - ldr r2, _0807BFC4 @ =gUnk_03000BF0 - ldr r0, _0807BFC8 @ =gUnk_02033A90 - ldr r1, _0807BFCC @ =0x0000085C - adds r0, r0, r1 - ldr r1, [r0] - ldrh r0, [r1, #4] - strh r0, [r2, #6] - ldrh r0, [r1, #6] - strh r0, [r2, #8] - ldrh r0, [r1] - strh r0, [r2, #0x1e] - ldrh r0, [r1, #2] - strh r0, [r2, #0x20] - bx lr - .align 2, 0 -_0807BFC4: .4byte gUnk_03000BF0 -_0807BFC8: .4byte gUnk_02033A90 -_0807BFCC: .4byte 0x0000085C - - thumb_func_start sub_0807BFD0 -sub_0807BFD0: @ 0x0807BFD0 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - bl sub_0801B170 - bl sub_0807BFA8 - ldr r7, _0807C0B8 @ =0x0000FFFF - ldr r6, _0807C0BC @ =gUnk_0202AEB4 - movs r0, #0x80 - lsls r0, r0, #5 - mov r8, r0 - adds r0, r7, #0 - adds r1, r6, #0 - mov r2, r8 - bl sub_0801D5EC - movs r5, #0 - strh r5, [r6] - ldr r4, _0807C0C0 @ =gUnk_02010654 - adds r0, r7, #0 - adds r1, r4, #0 - mov r2, r8 - bl sub_0801D5EC - strh r5, [r4] - ldr r2, _0807C0C4 @ =gUnk_03000BF0 - ldr r0, _0807C0C8 @ =gUnk_02033A90 - ldr r1, _0807C0CC @ =0x0000085C - adds r4, r0, r1 - ldr r0, [r4] - ldr r1, [r2, #0x34] - ldr r0, [r0, #8] - cmp r1, r0 - beq _0807C01C - str r0, [r2, #0x34] - bl sub_080197D4 -_0807C01C: - ldr r0, [r4] - ldr r0, [r0, #0x10] - bl sub_080197D4 - ldr r1, _0807C0D0 @ =gUnk_020176A0 - adds r0, r1, #0 - adds r0, #0x60 - movs r2, #0xa8 - lsls r2, r2, #2 - adds r1, r1, r2 - movs r2, #0x20 - bl sub_0801D66C - ldr r2, _0807C0D4 @ =gUnk_0200B644 - ldr r0, [r2] - movs r1, #0x80 - lsls r1, r1, #0xe - orrs r0, r1 - str r0, [r2] - ldr r0, [r4] - ldr r0, [r0, #0x14] - cmp r0, #0 - beq _0807C04E - bl sub_0801B130 -_0807C04E: - adds r5, r6, #0 - movs r0, #0x80 - lsls r0, r0, #5 - adds r6, r5, r0 - adds r0, r7, #0 - adds r1, r6, #0 - mov r2, r8 - bl sub_0801D5EC - movs r2, #0 - ldr r3, _0807C0D8 @ =0x000007FF - adds r4, r7, #0 -_0807C066: - ldrh r0, [r5] - cmp r0, r3 - bhi _0807C078 - lsls r0, r0, #1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r4 - bne _0807C078 - strh r2, [r1] -_0807C078: - adds r2, #1 - adds r5, #2 - cmp r2, r3 - ble _0807C066 - movs r2, #0x80 - lsls r2, r2, #5 - ldr r5, _0807C0C0 @ =gUnk_02010654 - adds r6, r5, r2 - ldr r4, _0807C0B8 @ =0x0000FFFF - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0801D5EC - movs r2, #0 - ldr r3, _0807C0D8 @ =0x000007FF -_0807C096: - ldrh r0, [r5] - cmp r0, r3 - bhi _0807C0A8 - lsls r0, r0, #1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r4 - bne _0807C0A8 - strh r2, [r1] -_0807C0A8: - adds r2, #1 - adds r5, #2 - cmp r2, r3 - ble _0807C096 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807C0B8: .4byte 0x0000FFFF -_0807C0BC: .4byte gUnk_0202AEB4 -_0807C0C0: .4byte gUnk_02010654 -_0807C0C4: .4byte gUnk_03000BF0 -_0807C0C8: .4byte gUnk_02033A90 -_0807C0CC: .4byte 0x0000085C -_0807C0D0: .4byte gUnk_020176A0 -_0807C0D4: .4byte gUnk_0200B644 -_0807C0D8: .4byte 0x000007FF - - thumb_func_start sub_0807C0DC -sub_0807C0DC: @ 0x0807C0DC - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - bl sub_0807BFA8 - ldr r7, _0807C158 @ =gUnk_03000BF0 - ldrb r1, [r7, #0xf] - movs r0, #0xfc - ands r0, r1 - strb r0, [r7, #0xf] - ldr r5, _0807C15C @ =gUnk_0200B654 - movs r6, #0x80 - lsls r6, r6, #6 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 - adds r0, r5, r6 - movs r1, #0x80 - lsls r1, r1, #5 - bl sub_0801D630 - ldr r0, _0807C160 @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _0807C164 @ =gUnk_02002F00 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _0807C168 @ =gUnk_02033A90 - ldr r1, _0807C16C @ =0x0000085C - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0, #0xc] - bl sub_080197D4 - ldr r2, _0807C170 @ =gUnk_02025EB0 - ldrh r1, [r2, #4] - ldr r0, _0807C174 @ =0x0000FFFF - cmp r1, r0 - beq _0807C178 - adds r0, r2, #4 - ldrh r1, [r7, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r7, #0x20] - lsrs r2, r2, #4 - bl sub_0807C8B0 - ldrh r1, [r7, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r7, #0x20] - lsrs r2, r2, #4 - adds r0, r5, #0 - bl sub_0807C8B0 - movs r2, #0 - mov sb, r2 - b _0807C184 - .align 2, 0 -_0807C158: .4byte gUnk_03000BF0 -_0807C15C: .4byte gUnk_0200B654 -_0807C160: .4byte gUnk_02019EE0 -_0807C164: .4byte gUnk_02002F00 -_0807C168: .4byte gUnk_02033A90 -_0807C16C: .4byte 0x0000085C -_0807C170: .4byte gUnk_02025EB0 -_0807C174: .4byte 0x0000FFFF -_0807C178: - adds r0, r2, #4 - adds r1, r6, #0 - bl sub_0801D630 - movs r3, #1 - mov sb, r3 -_0807C184: - ldr r0, _0807C1B0 @ =gUnk_030010A0 - adds r0, #0x2d - ldrb r0, [r0] - cmp r0, #0 - bne _0807C1BC - ldr r0, _0807C1B4 @ =gUnk_02025EB4 - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r0, r2 - movs r4, #0x80 - lsls r4, r4, #6 - adds r2, r4, #0 - bl sub_0801D66C - ldr r0, _0807C1B8 @ =gUnk_0200B654 - movs r3, #0xc0 - lsls r3, r3, #6 - adds r1, r0, r3 - adds r2, r4, #0 - bl sub_0801D66C - b _0807C26C - .align 2, 0 -_0807C1B0: .4byte gUnk_030010A0 -_0807C1B4: .4byte gUnk_02025EB4 -_0807C1B8: .4byte gUnk_0200B654 -_0807C1BC: - cmp r0, #2 - bne _0807C26C - ldr r4, _0807C278 @ =gUnk_02025EB4 - movs r0, #0xb0 - lsls r0, r0, #8 - adds r0, r0, r4 - mov r8, r0 - movs r5, #0x80 - lsls r5, r5, #5 - adds r0, r4, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_0801D66C - movs r1, #0xc0 - lsls r1, r1, #6 - adds r6, r4, r1 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C - mov r0, r8 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - adds r6, r4, r5 - adds r0, r6, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_0801D66C - movs r2, #0x80 - lsls r2, r2, #7 - adds r4, r4, r2 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - mov r0, r8 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C - ldr r4, _0807C27C @ =gUnk_0200B654 - movs r3, #0xb0 - lsls r3, r3, #8 - adds r3, r3, r4 - mov r8, r3 - adds r0, r4, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_0801D66C - movs r0, #0xc0 - lsls r0, r0, #6 - adds r6, r4, r0 - adds r0, r6, #0 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C - mov r0, r8 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - adds r6, r4, r5 - adds r0, r6, #0 - mov r1, r8 - adds r2, r5, #0 - bl sub_0801D66C - movs r1, #0x80 - lsls r1, r1, #7 - adds r4, r4, r1 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - bl sub_0801D66C - mov r0, r8 - adds r1, r4, #0 - adds r2, r5, #0 - bl sub_0801D66C -_0807C26C: - mov r2, sb - cmp r2, #0 - bne _0807C280 - bl sub_0807BBE4 - b _0807C2A0 - .align 2, 0 -_0807C278: .4byte gUnk_02025EB4 -_0807C27C: .4byte gUnk_0200B654 -_0807C280: - ldr r0, _0807C2CC @ =gUnk_02027EB4 - ldrh r1, [r7, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r7, #0x20] - lsrs r2, r2, #4 - bl sub_0807C69C - ldr r0, _0807C2D0 @ =gUnk_0200D654 - ldrh r1, [r7, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r7, #0x20] - lsrs r2, r2, #4 - bl sub_0807C69C - bl sub_0807C460 -_0807C2A0: - bl sub_0807BC84 - ldr r4, _0807C2D4 @ =gUnk_02025EB0 - adds r0, r4, #0 - bl sub_08080B60 - ldr r5, _0807C2D8 @ =gUnk_0200B650 - adds r0, r5, #0 - bl sub_08080B60 - mov r3, sb - cmp r3, #0 - bne _0807C2E4 - ldr r0, _0807C2DC @ =gUnk_02019EE0 - adds r1, r4, #0 - bl sub_0801AB08 - ldr r0, _0807C2E0 @ =gUnk_02002F00 - adds r1, r5, #0 - bl sub_0801AB08 - b _0807C326 - .align 2, 0 -_0807C2CC: .4byte gUnk_02027EB4 -_0807C2D0: .4byte gUnk_0200D654 -_0807C2D4: .4byte gUnk_02025EB0 -_0807C2D8: .4byte gUnk_0200B650 -_0807C2DC: .4byte gUnk_02019EE0 -_0807C2E0: .4byte gUnk_02002F00 -_0807C2E4: - ldr r4, _0807C34C @ =gUnk_02019EE0 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r6, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0801D66C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807C5F4 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 - ldr r4, _0807C350 @ =gUnk_02002F00 - adds r5, r4, r6 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0801D66C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807C5F4 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 -_0807C326: - mov r1, sb - cmp r1, #0 - bne _0807C332 - ldrb r0, [r7, #4] - cmp r0, #0x71 - bne _0807C33A -_0807C332: - ldrb r1, [r7, #0xf] - movs r0, #1 - orrs r0, r1 - strb r0, [r7, #0xf] -_0807C33A: - ldrb r0, [r7, #4] - subs r0, #0x20 - cmp r0, #0x18 - bhi _0807C400 - lsls r0, r0, #2 - ldr r1, _0807C354 @ =_0807C358 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807C34C: .4byte gUnk_02019EE0 -_0807C350: .4byte gUnk_02002F00 -_0807C354: .4byte _0807C358 -_0807C358: @ jump table - .4byte _0807C3BC @ case 0 - .4byte _0807C3E4 @ case 1 - .4byte _0807C3E4 @ case 2 - .4byte _0807C3E4 @ case 3 - .4byte _0807C3E4 @ case 4 - .4byte _0807C3E4 @ case 5 - .4byte _0807C400 @ case 6 - .4byte _0807C3E4 @ case 7 - .4byte _0807C3E4 @ case 8 - .4byte _0807C400 @ case 9 - .4byte _0807C400 @ case 10 - .4byte _0807C400 @ case 11 - .4byte _0807C400 @ case 12 - .4byte _0807C3BC @ case 13 - .4byte _0807C400 @ case 14 - .4byte _0807C400 @ case 15 - .4byte _0807C3E4 @ case 16 - .4byte _0807C400 @ case 17 - .4byte _0807C400 @ case 18 - .4byte _0807C400 @ case 19 - .4byte _0807C400 @ case 20 - .4byte _0807C400 @ case 21 - .4byte _0807C400 @ case 22 - .4byte _0807C400 @ case 23 - .4byte _0807C3E4 @ case 24 -_0807C3BC: - ldr r0, _0807C3D8 @ =gUnk_02025EB0 - ldr r2, [r0] - cmp r2, #0 - beq _0807C3CC - ldrh r1, [r2] - movs r0, #0x80 - orrs r0, r1 - strh r0, [r2] -_0807C3CC: - ldr r2, _0807C3DC @ =gUnk_03000F50 - ldrh r1, [r2] - ldr r0, _0807C3E0 @ =0x0000FDFF - ands r0, r1 - strh r0, [r2] - b _0807C444 - .align 2, 0 -_0807C3D8: .4byte gUnk_02025EB0 -_0807C3DC: .4byte gUnk_03000F50 -_0807C3E0: .4byte 0x0000FDFF -_0807C3E4: - ldr r0, _0807C3F8 @ =gUnk_0200B650 - ldr r1, [r0] - cmp r1, #0 - beq _0807C3F2 - ldr r0, _0807C3FC @ =gUnk_080B77C0 - ldrh r0, [r0, #4] - strh r0, [r1] -_0807C3F2: - bl sub_0807C5B0 - b _0807C444 - .align 2, 0 -_0807C3F8: .4byte gUnk_0200B650 -_0807C3FC: .4byte gUnk_080B77C0 -_0807C400: - ldr r0, _0807C44C @ =gUnk_02025EB0 - ldr r1, [r0] - cmp r1, #0 - beq _0807C40E - ldr r0, _0807C450 @ =gUnk_080B77C0 - ldrh r0, [r0] - strh r0, [r1] -_0807C40E: - ldr r0, _0807C454 @ =gUnk_0200B650 - ldr r1, [r0] - cmp r1, #0 - beq _0807C41C - ldr r0, _0807C450 @ =gUnk_080B77C0 - ldrh r0, [r0, #2] - strh r0, [r1] -_0807C41C: - ldr r2, _0807C458 @ =gUnk_03000F50 - ldrh r0, [r2] - movs r1, #0x80 - lsls r1, r1, #4 - ands r1, r0 - movs r3, #0xba - lsls r3, r3, #5 - adds r0, r3, #0 - movs r3, #0 - orrs r1, r0 - strh r1, [r2] - ldr r0, _0807C45C @ =gUnk_02033A90 - ldrb r0, [r0, #0xc] - cmp r0, #0 - beq _0807C444 - movs r3, #0xa0 - lsls r3, r3, #8 - adds r0, r3, #0 - orrs r1, r0 - strh r1, [r2] -_0807C444: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807C44C: .4byte gUnk_02025EB0 -_0807C450: .4byte gUnk_080B77C0 -_0807C454: .4byte gUnk_0200B650 -_0807C458: .4byte gUnk_03000F50 -_0807C45C: .4byte gUnk_02033A90 - - thumb_func_start sub_0807C460 -sub_0807C460: @ 0x0807C460 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r7, _0807C4E8 @ =gUnk_02025EB4 - ldr r6, _0807C4EC @ =gUnk_0200B654 - ldr r0, _0807C4F0 @ =gUnk_03000BF0 - ldrh r1, [r0, #0x1e] - lsrs r3, r1, #4 - ldrh r0, [r0, #0x20] - lsrs r0, r0, #4 - str r0, [sp] - movs r4, #0 - movs r1, #0 - cmp r1, r0 - bhs _0807C4DC - movs r0, #0x40 - subs r0, r0, r3 - lsls r0, r0, #1 - mov sb, r0 -_0807C48C: - movs r5, #0 - adds r1, #1 - mov sl, r1 - cmp r5, r3 - bhs _0807C4CA - ldr r0, _0807C4F4 @ =0x00003FFF - mov r8, r0 -_0807C49A: - ldrh r0, [r7] - cmp r0, r8 - bls _0807C4AC - adds r1, r4, #0 - movs r2, #1 - str r3, [sp, #4] - bl sub_0800015E - ldr r3, [sp, #4] -_0807C4AC: - ldrh r0, [r6] - cmp r0, r8 - bls _0807C4BE - adds r1, r4, #0 - movs r2, #2 - str r3, [sp, #4] - bl sub_0800015E - ldr r3, [sp, #4] -_0807C4BE: - adds r7, #2 - adds r6, #2 - adds r4, #1 - adds r5, #1 - cmp r5, r3 - blo _0807C49A -_0807C4CA: - add r7, sb - add r6, sb - adds r0, r4, #0 - adds r0, #0x40 - subs r4, r0, r3 - mov r1, sl - ldr r0, [sp] - cmp r1, r0 - blo _0807C48C -_0807C4DC: - 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 -_0807C4E8: .4byte gUnk_02025EB4 -_0807C4EC: .4byte gUnk_0200B654 -_0807C4F0: .4byte gUnk_03000BF0 -_0807C4F4: .4byte 0x00003FFF - - thumb_func_start sub_0807C4F8 -sub_0807C4F8: @ 0x0807C4F8 - push {r4, r5, r6, lr} - ldr r0, _0807C594 @ =gUnk_03000BF0 - ldrb r0, [r0, #4] - cmp r0, #0x71 - beq _0807C592 - ldr r0, _0807C598 @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl sub_0801D630 - ldr r0, _0807C59C @ =gUnk_02002F00 - adds r1, r4, #0 - bl sub_0801D630 - ldr r5, _0807C5A0 @ =gUnk_02022830 - ldr r0, _0807C5A4 @ =gUnk_02033A90 - ldr r1, _0807C5A8 @ =0x0000085C - adds r0, r0, r1 - ldr r0, [r0] - ldr r4, [r0, #0xc] - subs r4, #0xc -_0807C524: - adds r4, #0xc - ldr r1, [r4, #4] - ldr r0, _0807C598 @ =gUnk_02019EE0 - cmp r1, r0 - beq _0807C534 - ldr r0, _0807C59C @ =gUnk_02002F00 - cmp r1, r0 - bne _0807C54A -_0807C534: - ldr r0, [r4] - ldr r1, _0807C5AC @ =0x7FFFFFFF - ands r0, r1 - str r0, [r5] - ldr r0, [r4, #4] - str r0, [r5, #4] - ldr r0, [r4, #8] - str r0, [r5, #8] - adds r0, r5, #0 - bl sub_080197D4 -_0807C54A: - ldr r0, [r4] - cmp r0, #0 - blt _0807C524 - ldr r4, _0807C598 @ =gUnk_02019EE0 - movs r0, #0x80 - lsls r0, r0, #7 - adds r5, r4, r0 - adds r6, r0, #0 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0801D66C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807C5F4 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 - ldr r4, _0807C59C @ =gUnk_02002F00 - adds r5, r4, r6 - adds r0, r4, #0 - adds r1, r5, #0 - adds r2, r6, #0 - bl sub_0801D66C - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_0807C5F4 - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_0801D630 -_0807C592: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807C594: .4byte gUnk_03000BF0 -_0807C598: .4byte gUnk_02019EE0 -_0807C59C: .4byte gUnk_02002F00 -_0807C5A0: .4byte gUnk_02022830 -_0807C5A4: .4byte gUnk_02033A90 -_0807C5A8: .4byte 0x0000085C -_0807C5AC: .4byte 0x7FFFFFFF - - thumb_func_start sub_0807C5B0 -sub_0807C5B0: @ 0x0807C5B0 - push {r4, r5, r6, lr} - ldr r5, _0807C5E8 @ =gUnk_0200D654 - movs r4, #0x80 - lsls r4, r4, #5 - movs r3, #0 - ldr r6, _0807C5EC @ =gUnk_03000BF0 - ldr r2, _0807C5F0 @ =gUnk_02027EB4 -_0807C5BE: - adds r0, r5, r3 - ldrb r0, [r0] - cmp r0, #0 - beq _0807C5D4 - cmp r0, #0xf - bhi _0807C5D2 - ldrb r1, [r2] - cmp r1, #0xf - bhi _0807C5D4 - orrs r0, r1 -_0807C5D2: - strb r0, [r2] -_0807C5D4: - adds r2, #1 - adds r3, #1 - cmp r3, r4 - blo _0807C5BE - ldrb r1, [r6, #0xf] - movs r0, #2 - orrs r0, r1 - strb r0, [r6, #0xf] - pop {r4, r5, r6, pc} - .align 2, 0 -_0807C5E8: .4byte gUnk_0200D654 -_0807C5EC: .4byte gUnk_03000BF0 -_0807C5F0: .4byte gUnk_02027EB4 - - thumb_func_start sub_0807C5F4 -sub_0807C5F4: @ 0x0807C5F4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r2, r5, #0 - movs r0, #0x20 - ldr r6, _0807C698 @ =gUnk_03000BF0 -_0807C5FE: - movs r3, #0 - subs r4, r0, #1 -_0807C602: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #0x1f - bls _0807C602 - adds r2, #0xc0 - adds r0, r4, #0 - cmp r0, #0 - bne _0807C5FE - ldrh r0, [r6, #0x1e] - cmp r0, #0xff - bls _0807C63E - adds r2, r5, #0 - adds r2, #0x40 - movs r0, #0x20 -_0807C624: - movs r3, #0 - subs r4, r0, #1 -_0807C628: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #0x1f - bls _0807C628 - adds r2, #0xc0 - adds r0, r4, #0 - cmp r0, #0 - bne _0807C624 -_0807C63E: - ldrh r0, [r6, #0x20] - cmp r0, #0xff - bls _0807C666 - movs r0, #0x80 - lsls r0, r0, #6 - adds r2, r5, r0 - movs r0, #0x20 -_0807C64C: - movs r3, #0 - subs r4, r0, #1 -_0807C650: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #0x1f - bls _0807C650 - adds r2, #0xc0 - adds r0, r4, #0 - cmp r0, #0 - bne _0807C64C -_0807C666: - ldrh r0, [r6, #0x1e] - cmp r0, #0xff - bls _0807C694 - ldrh r0, [r6, #0x20] - cmp r0, #0xff - bls _0807C694 - movs r0, #0x81 - lsls r0, r0, #6 - adds r2, r5, r0 - movs r0, #0x20 -_0807C67A: - movs r3, #0 - subs r4, r0, #1 -_0807C67E: - ldrh r0, [r1] - strh r0, [r2] - adds r1, #2 - adds r2, #2 - adds r3, #1 - cmp r3, #0x1f - bls _0807C67E - adds r2, #0xc0 - adds r0, r4, #0 - cmp r0, #0 - bne _0807C67A -_0807C694: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807C698: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807C69C -sub_0807C69C: @ 0x0807C69C - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov sb, r0 - adds r6, r1, #0 - mov r8, r2 - mov r0, r8 - muls r0, r6, r0 - add r0, sb - subs r2, r0, #1 - mov r0, r8 - subs r0, #1 - lsls r0, r0, #6 - add r0, sb - subs r1, r6, #1 - adds r4, r0, r1 - movs r5, #0 - cmp r5, r8 - bhs _0807C6EA -_0807C6C4: - movs r3, #0 - adds r7, r4, #0 - subs r7, #0x40 - subs r0, r2, r6 - mov ip, r0 - cmp r3, r6 - bhs _0807C6E0 -_0807C6D2: - subs r0, r4, r3 - subs r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r3, #1 - cmp r3, r6 - blo _0807C6D2 -_0807C6E0: - adds r4, r7, #0 - mov r2, ip - adds r5, #1 - cmp r5, r8 - blo _0807C6C4 -_0807C6EA: - movs r0, #0x40 - subs r7, r0, r6 - movs r5, #0 - mov r1, r8 - lsls r2, r1, #6 - mov r0, sb - adds r1, r0, r6 -_0807C6F8: - lsls r0, r5, #6 - adds r4, r1, r0 - movs r3, #0 - adds r6, r5, #1 - cmp r3, r7 - bhs _0807C710 - movs r5, #0 -_0807C706: - adds r0, r4, r3 - strb r5, [r0] - adds r3, #1 - cmp r3, r7 - blo _0807C706 -_0807C710: - adds r5, r6, #0 - cmp r5, #0x3f - bls _0807C6F8 - movs r0, #0x40 - mov r1, r8 - subs r7, r0, r1 - mov r0, sb - adds r4, r0, r2 - movs r5, #0 - cmp r5, r7 - bhs _0807C736 -_0807C726: - adds r0, r4, #0 - movs r1, #0x40 - bl sub_0801D630 - adds r4, #0x40 - adds r5, #1 - cmp r5, r7 - blo _0807C726 -_0807C736: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807C740 -sub_0807C740: @ 0x0807C740 - push {r4, r5, lr} - bl sub_0807BFD0 - bl sub_0807C0DC - ldr r4, _0807C780 @ =gUnk_03000BF0 - ldr r2, [r4, #0x30] - cmp r2, #0 - beq _0807C788 - ldrh r1, [r2, #0x2e] - lsls r0, r1, #0x10 - cmp r0, #0 - bge _0807C764 - ldr r0, _0807C784 @ =0x00007FFF - ands r0, r1 - ldrh r1, [r4, #6] - subs r0, r0, r1 - strh r0, [r2, #0x2e] -_0807C764: - movs r0, #0x2e - ldrsh r3, [r2, r0] - ldrh r1, [r2, #0x32] - lsls r0, r1, #0x10 - cmp r0, #0 - bge _0807C77A - ldr r0, _0807C784 @ =0x00007FFF - ands r0, r1 - ldrh r1, [r4, #8] - subs r0, r0, r1 - strh r0, [r2, #0x32] -_0807C77A: - movs r0, #0x32 - ldrsh r5, [r2, r0] - b _0807C78C - .align 2, 0 -_0807C780: .4byte gUnk_03000BF0 -_0807C784: .4byte 0x00007FFF -_0807C788: - movs r3, #0 - movs r5, #0 -_0807C78C: - cmp r3, #0x77 - bgt _0807C794 - movs r0, #0 - b _0807C7A2 -_0807C794: - ldrh r1, [r4, #0x1e] - adds r0, r1, #0 - subs r0, #0x78 - cmp r0, r3 - blt _0807C7A0 - adds r0, r3, #0 -_0807C7A0: - subs r0, #0x78 -_0807C7A2: - strh r0, [r4, #0xa] - ldrh r1, [r4, #6] - ldrh r2, [r4, #0xa] - adds r0, r1, r2 - strh r0, [r4, #0xa] - cmp r5, #0x4f - bgt _0807C7B4 - movs r0, #0 - b _0807C7C2 -_0807C7B4: - ldrh r2, [r4, #0x20] - adds r0, r2, #0 - subs r0, #0x50 - cmp r0, r5 - blt _0807C7C0 - adds r0, r5, #0 -_0807C7C0: - subs r0, #0x50 -_0807C7C2: - strh r0, [r4, #0xc] - ldrh r0, [r4, #8] - ldrh r3, [r4, #0xc] - adds r0, r0, r3 - strh r0, [r4, #0xc] - ldr r2, [r4, #0x30] - cmp r2, #0 - beq _0807C7FC - ldrh r3, [r2, #0x2e] - adds r0, r1, r3 - strh r0, [r2, #0x2e] - ldr r1, [r4, #0x30] - ldrh r0, [r4, #8] - ldrh r2, [r1, #0x32] - adds r0, r0, r2 - strh r0, [r1, #0x32] - ldr r0, _0807C80C @ =gUnk_03000BF0 - ldrb r1, [r0, #0xf] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807C7FC - ldr r0, [r4, #0x30] - adds r0, #0x38 - movs r1, #1 - strb r1, [r0] - ldr r0, [r4, #0x30] - bl sub_08016A04 -_0807C7FC: - ldrb r1, [r4, #0xf] - movs r0, #0xfb - ands r0, r1 - strb r0, [r4, #0xf] - bl sub_08080BC4 - pop {r4, r5, pc} - .align 2, 0 -_0807C80C: .4byte gUnk_03000BF0 - - thumb_func_start sub_0807C810 -sub_0807C810: @ 0x0807C810 - push {r4, r5, r6, lr} - bl sub_0807BFD0 - ldr r2, _0807C850 @ =gUnk_03004030 - ldr r6, _0807C854 @ =gLinkEntity - ldr r4, _0807C858 @ =gUnk_03000BF0 - ldr r3, [r2] - ldrh r1, [r3, #6] - movs r0, #0x3f - ands r0, r1 - lsls r0, r0, #4 - ldrh r1, [r4, #6] - adds r0, r0, r1 - ldrh r1, [r2, #4] - adds r1, r1, r0 - movs r5, #0 - strh r1, [r6, #0x2e] - ldrh r1, [r3, #6] - movs r0, #0xfc - lsls r0, r0, #4 - ands r0, r1 - lsrs r0, r0, #2 - ldrh r4, [r4, #8] - adds r0, r0, r4 - ldrh r1, [r2, #6] - adds r1, r1, r0 - strh r1, [r6, #0x32] - bl sub_080809D4 - ldr r0, _0807C85C @ =gUnk_02000070 - strb r5, [r0] - pop {r4, r5, r6, pc} - .align 2, 0 -_0807C850: .4byte gUnk_03004030 -_0807C854: .4byte gLinkEntity -_0807C858: .4byte gUnk_03000BF0 -_0807C85C: .4byte gUnk_02000070 - - thumb_func_start sub_0807C860 -sub_0807C860: @ 0x0807C860 - push {r4, lr} - ldr r0, _0807C88C @ =gUnk_030010A0 - adds r0, #0x2d - movs r1, #1 - strb r1, [r0] - ldr r0, _0807C890 @ =gUnk_02025EB4 - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r0, r2 - movs r4, #0x80 - lsls r4, r4, #6 - adds r2, r4, #0 - bl sub_0801D66C - ldr r0, _0807C894 @ =gUnk_0200B654 - movs r2, #0xc0 - lsls r2, r2, #6 - adds r1, r0, r2 - adds r2, r4, #0 - bl sub_0801D66C - pop {r4, pc} - .align 2, 0 -_0807C88C: .4byte gUnk_030010A0 -_0807C890: .4byte gUnk_02025EB4 -_0807C894: .4byte gUnk_0200B654 - - thumb_func_start sub_0807C898 -sub_0807C898: @ 0x0807C898 - push {r4, r5, lr} - ldr r4, _0807C8AC @ =gUnk_030010A0 - adds r4, #0x2d - movs r5, #0 - movs r0, #2 - strb r0, [r4] - bl sub_0807C0DC - strb r5, [r4] - pop {r4, r5, pc} - .align 2, 0 -_0807C8AC: .4byte gUnk_030010A0 - - thumb_func_start sub_0807C8B0 -sub_0807C8B0: @ 0x0807C8B0 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - mov r8, r0 - adds r4, r1, #0 - mov ip, r2 - mov r0, ip - muls r0, r4, r0 - lsls r0, r0, #1 - add r0, r8 - subs r7, r0, #2 - mov r0, ip - subs r0, #1 - lsls r0, r0, #7 - add r0, r8 - lsls r3, r4, #1 - subs r1, r3, #2 - adds r0, r0, r1 - movs r5, #0 - cmp r5, ip - bhs _0807C906 - mov sb, r3 -_0807C8DE: - movs r2, #0 - adds r6, r0, #0 - subs r6, #0x80 - cmp r2, r4 - bhs _0807C8FA - adds r1, r7, #0 - adds r3, r0, #0 -_0807C8EC: - ldrh r0, [r1] - strh r0, [r3] - subs r1, #2 - subs r3, #2 - adds r2, #1 - cmp r2, r4 - blo _0807C8EC -_0807C8FA: - adds r0, r6, #0 - mov r1, sb - subs r7, r7, r1 - adds r5, #1 - cmp r5, ip - blo _0807C8DE -_0807C906: - movs r0, #0x40 - subs r6, r0, r4 - movs r5, #0 - lsls r0, r4, #1 - mov r2, ip - lsls r7, r2, #7 - mov r2, r8 - adds r1, r2, r0 -_0807C916: - lsls r0, r5, #7 - adds r0, r1, r0 - movs r2, #0 - adds r3, r5, #1 - cmp r2, r6 - bhs _0807C92E - movs r4, #0 -_0807C924: - strh r4, [r0] - adds r0, #2 - adds r2, #1 - cmp r2, r6 - blo _0807C924 -_0807C92E: - adds r5, r3, #0 - cmp r5, #0x3f - bls _0807C916 - movs r0, #0x40 - mov r1, ip - subs r6, r0, r1 - mov r2, r8 - adds r0, r2, r7 - movs r5, #0 - cmp r5, r6 - bhs _0807C956 - adds r4, r0, #0 -_0807C946: - adds r0, r4, #0 - movs r1, #0x80 - bl sub_0801D630 - adds r4, #0x80 - adds r5, #1 - cmp r5, r6 - blo _0807C946 -_0807C956: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807C960 -sub_0807C960: @ 0x0807C960 - push {lr} - adds r2, r0, #0 - movs r0, #1 - rsbs r0, r0, #0 - cmp r1, r0 - beq _0807C994 - ldr r0, _0807C984 @ =0x7FFFFFFF - ands r0, r1 - ldr r1, _0807C988 @ =gUnk_08324AE4 - adds r1, r0, r1 - lsrs r0, r2, #0x18 - cmp r0, #6 - bne _0807C98C - adds r0, r1, #0 - adds r1, r2, #0 - bl LZ77UnCompVram - b _0807C994 - .align 2, 0 -_0807C984: .4byte 0x7FFFFFFF -_0807C988: .4byte gUnk_08324AE4 -_0807C98C: - adds r0, r1, #0 - adds r1, r2, #0 - 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 - - thumb_func_start sub_0807CA84 -sub_0807CA84: @ 0x0807CA84 - adds r2, r0, #0 - lsrs r0, r2, #2 - ldr r1, _0807CA9C @ =gUnk_02002B32 - adds r0, r0, r1 - ldrb r0, [r0] - movs r1, #3 - ands r2, r1 - lsls r2, r2, #1 - asrs r0, r2 - ands r0, r1 - bx lr - .align 2, 0 -_0807CA9C: .4byte gUnk_02002B32 - - thumb_func_start sub_0807CAA0 -sub_0807CAA0: @ 0x0807CAA0 - push {r4, lr} - adds r3, r0, #0 - lsrs r4, r3, #2 - ldr r0, _0807CAC4 @ =gUnk_02002B32 - adds r4, r4, r0 - movs r0, #3 - ands r3, r0 - lsls r3, r3, #1 - lsls r1, r3 - ldrb r2, [r4] - lsls r0, r3 - ands r0, r2 - eors r2, r0 - orrs r2, r1 - strb r2, [r4] - lsrs r0, r3 - pop {r4, pc} - .align 2, 0 -_0807CAC4: .4byte gUnk_02002B32 - - thumb_func_start sub_0807CAC8 -sub_0807CAC8: @ 0x0807CAC8 - ldr r2, _0807CAE0 @ =gUnk_02002A40 - ldr r1, _0807CAE4 @ =gUnk_02033A90 - ldr r3, _0807CAE8 @ =0x0000047C - adds r2, r2, r3 - ldrb r1, [r1, #3] - adds r2, r2, r1 - movs r1, #1 - lsls r1, r0 - ldrb r0, [r2] - orrs r1, r0 - strb r1, [r2] - bx lr - .align 2, 0 -_0807CAE0: .4byte gUnk_02002A40 -_0807CAE4: .4byte gUnk_02033A90 -_0807CAE8: .4byte 0x0000047C - - thumb_func_start sub_0807CAEC -sub_0807CAEC: @ 0x0807CAEC - adds r2, r0, #0 - ldr r0, _0807CB04 @ =gUnk_02002A40 - ldr r1, _0807CB08 @ =gUnk_02033A90 - ldr r3, _0807CB0C @ =0x0000047C - adds r0, r0, r3 - ldrb r1, [r1, #3] - adds r0, r0, r1 - ldrb r0, [r0] - asrs r0, r2 - movs r1, #1 - ands r0, r1 - bx lr - .align 2, 0 -_0807CB04: .4byte gUnk_02002A40 -_0807CB08: .4byte gUnk_02033A90 -_0807CB0C: .4byte 0x0000047C - - thumb_func_start GetProgressFlagWithOffset -GetProgressFlagWithOffset: @ 0x0807CB10 - push {lr} - adds r2, r0, #0 - ldr r0, _0807CB20 @ =gUnk_02002C9C - adds r2, r2, r1 - adds r1, r2, #0 - bl sub_0801D5A8 - pop {pc} - .align 2, 0 -_0807CB20: .4byte gUnk_02002C9C - - thumb_func_start sub_0807CB24 -sub_0807CB24: @ 0x0807CB24 - push {lr} - adds r2, r0, #0 - adds r3, r1, #0 - cmp r2, #0x11 - bhi _0807CB84 - lsls r0, r2, #2 - ldr r1, _0807CB38 @ =_0807CB3C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807CB38: .4byte _0807CB3C -_0807CB3C: @ jump table - .4byte _0807CB84 @ case 0 - .4byte _0807CB88 @ case 1 - .4byte _0807CB88 @ case 2 - .4byte _0807CB88 @ case 3 - .4byte _0807CB88 @ case 4 - .4byte _0807CB88 @ case 5 - .4byte _0807CB88 @ case 6 - .4byte _0807CB88 @ case 7 - .4byte _0807CB88 @ case 8 - .4byte _0807CB88 @ case 9 - .4byte _0807CB88 @ case 10 - .4byte _0807CB88 @ case 11 - .4byte _0807CB88 @ case 12 - .4byte _0807CB88 @ case 13 - .4byte _0807CB84 @ case 14 - .4byte _0807CBA0 @ case 15 - .4byte _0807CBAE @ case 16 - .4byte _0807CBBC @ case 17 -_0807CB84: - movs r1, #0 - b _0807CBCA -_0807CB88: - ldr r0, _0807CB9C @ =gUnk_0811E454 - lsls r1, r2, #1 - adds r1, r1, r0 - ldrh r0, [r1] - adds r1, r3, #0 - bl GetProgressFlagWithOffset -_0807CB96: - adds r1, r0, #0 - b _0807CBCA - .align 2, 0 -_0807CB9C: .4byte gUnk_0811E454 -_0807CBA0: - adds r0, r3, #0 - bl sub_0807CA84 - cmp r0, #0 - beq _0807CB96 - movs r0, #1 - b _0807CB96 -_0807CBAE: - adds r0, r3, #0 - bl sub_0807CA84 - movs r1, #0 - cmp r0, #1 - bne _0807CBCA - b _0807CBC8 -_0807CBBC: - adds r0, r3, #0 - bl sub_0807CA84 - movs r1, #0 - cmp r0, #2 - bne _0807CBCA -_0807CBC8: - movs r1, #1 -_0807CBCA: - adds r0, r1, #0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807CBD0 -sub_0807CBD0: @ 0x0807CBD0 - push {lr} - adds r1, r0, #0 - ldr r0, _0807CBE0 @ =gUnk_02033A90 - ldrh r0, [r0, #4] - bl GetProgressFlagWithOffset - pop {pc} - .align 2, 0 -_0807CBE0: .4byte gUnk_02033A90 - - thumb_func_start sub_0807CBE4 -sub_0807CBE4: @ 0x0807CBE4 - push {lr} - ldr r3, _0807CC14 @ =0x000003FF - ands r3, r0 - movs r1, #0xf0 - lsls r1, r1, #6 - ands r1, r0 - lsrs r1, r1, #0xa - adds r2, r1, #1 - movs r1, #0xc0 - lsls r1, r1, #8 - ands r1, r0 - lsrs r1, r1, #0xe - cmp r1, #1 - beq _0807CC22 - cmp r1, #1 - blo _0807CC18 - cmp r1, #2 - bne _0807CC2C - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807CC88 - b _0807CC2E - .align 2, 0 -_0807CC14: .4byte 0x000003FF -_0807CC18: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807CC60 - b _0807CC2E -_0807CC22: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807CC78 - b _0807CC2E -_0807CC2C: - movs r0, #0 -_0807CC2E: - pop {pc} \ No newline at end of file diff --git a/asm/code_0805E744.s b/asm/code_0805E744.s new file mode 100644 index 00000000..a62d0776 --- /dev/null +++ b/asm/code_0805E744.s @@ -0,0 +1,64159 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0805E744 +sub_0805E744: @ 0x0805E744 + push {lr} + ldr r1, _0805E760 @ =gUnk_030011E8 + movs r0, #0xee + lsls r0, r0, #2 + adds r2, r1, r0 +_0805E74E: + ldr r0, [r1] + cmp r0, #0 + beq _0805E764 + adds r1, #0x88 + cmp r1, r2 + blo _0805E74E + movs r0, #0 + b _0805E766 + .align 2, 0 +_0805E760: .4byte gUnk_030011E8 +_0805E764: + adds r0, r1, #0 +_0805E766: + pop {pc} + + thumb_func_start sub_0805E768 +sub_0805E768: @ 0x0805E768 + push {lr} + ldr r1, _0805E778 @ =sub_0805E678 + cmp r0, #9 + bne _0805E772 + ldr r1, _0805E77C @ =sub_0805E8D4 +_0805E772: + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805E778: .4byte sub_0805E678 +_0805E77C: .4byte sub_0805E8D4 + + thumb_func_start sub_0805E780 +sub_0805E780: @ 0x0805E780 + push {lr} + ldr r0, _0805E794 @ =gUnk_03003DD0 + ldr r0, [r0, #8] + bl sub_0805E79C + ldr r0, _0805E798 @ =gUnk_03005F24 + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805E794: .4byte gUnk_03003DD0 +_0805E798: .4byte gUnk_03005F24 + + thumb_func_start sub_0805E79C +sub_0805E79C: @ 0x0805E79C + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #8] + ldr r2, _0805E7B4 @ =sub_0805E7BC + cmp r0, #9 + bne _0805E7AA + ldr r2, _0805E7B8 @ =sub_0805E900 +_0805E7AA: + adds r0, r1, #0 + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0805E7B4: .4byte sub_0805E7BC +_0805E7B8: .4byte sub_0805E900 + + thumb_func_start sub_0805E7BC +sub_0805E7BC: @ 0x0805E7BC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0805E84A + adds r0, r4, #0 + bl sub_080AE068 + adds r0, r4, #0 + bl sub_0801D230 + adds r0, r4, #0 + bl sub_0806FE84 + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + bl sub_08078954 + adds r0, r4, #0 + bl sub_0805EC60 + adds r0, r4, #0 + bl sub_08017744 + adds r0, r4, #0 + bl sub_0805E92C + adds r0, r4, #0 + bl sub_0807DB08 + adds r0, r4, #0 + bl sub_0806FBEC + ldr r0, [r4, #0x64] + bl sub_0801DA0C + movs r5, #0 + str r5, [r4, #0x64] + ldrb r0, [r4, #8] + cmp r0, #3 + bne _0805E818 + adds r0, r4, #0 + bl sub_0804AA1C +_0805E818: + 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, #0x3c + strb r5, [r0] + adds r0, #5 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, #3 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0805EA98 + str r5, [r4, #4] + movs r0, #1 + rsbs r0, r0, #0 + str r0, [r4] +_0805E84A: + pop {r4, r5, pc} + + thumb_func_start sub_0805E84C +sub_0805E84C: @ 0x0805E84C + push {r4, r5, lr} + ldr r4, _0805E86C @ =gLinkEntity + movs r0, #0xaa + lsls r0, r0, #6 + adds r5, r4, r0 +_0805E856: + ldr r0, [r4] + cmp r0, #0 + bge _0805E862 + adds r0, r4, #0 + bl sub_0805E870 +_0805E862: + adds r4, #0x88 + cmp r4, r5 + blo _0805E856 + pop {r4, r5, pc} + .align 2, 0 +_0805E86C: .4byte gLinkEntity + + thumb_func_start sub_0805E870 +sub_0805E870: @ 0x0805E870 + sub sp, #4 + movs r1, #0 + str r1, [sp] + ldr r1, _0805E890 @ =0x040000D4 + mov r2, sp + str r2, [r1] + str r0, [r1, #4] + ldr r0, _0805E894 @ =0x85000022 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r1, _0805E898 @ =gUnk_03003DBC + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + add sp, #4 + bx lr + .align 2, 0 +_0805E890: .4byte 0x040000D4 +_0805E894: .4byte 0x85000022 +_0805E898: .4byte gUnk_03003DBC + + thumb_func_start sub_0805E89C +sub_0805E89C: @ 0x0805E89C + push {r4, r5, r6, lr} + ldr r5, _0805E8CC @ =gUnk_03003D70 + ldr r0, [r5, #4] + cmp r0, #0 + beq _0805E8C8 +_0805E8A6: + ldr r0, [r5, #4] + adds r6, r5, #0 + adds r6, #8 + cmp r0, r5 + beq _0805E8BC +_0805E8B0: + ldr r4, [r0, #4] + bl sub_0805E79C + adds r0, r4, #0 + cmp r0, r5 + bne _0805E8B0 +_0805E8BC: + adds r5, r6, #0 + ldr r0, _0805E8D0 @ =gUnk_03003DB8 + cmp r5, r0 + blo _0805E8A6 + bl sub_0805E84C +_0805E8C8: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805E8CC: .4byte gUnk_03003D70 +_0805E8D0: .4byte gUnk_03003DB8 + + thumb_func_start sub_0805E8D4 +sub_0805E8D4: @ 0x0805E8D4 + push {lr} + ldr r1, _0805E8F0 @ =gUnk_02033290 + movs r2, #0x80 + lsls r2, r2, #4 + adds r0, r1, r2 + cmp r1, r0 + bhs _0805E8FA + adds r2, r0, #0 +_0805E8E4: + ldr r0, [r1] + cmp r0, #0 + bne _0805E8F4 + adds r0, r1, #0 + b _0805E8FC + .align 2, 0 +_0805E8F0: .4byte gUnk_02033290 +_0805E8F4: + adds r1, #0x40 + cmp r1, r2 + blo _0805E8E4 +_0805E8FA: + movs r0, #0 +_0805E8FC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805E900 +sub_0805E900: @ 0x0805E900 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0805E926 + adds r0, r4, #0 + bl sub_0805E92C + adds r0, r4, #0 + bl sub_0805EA98 + adds r0, r4, #0 + movs r1, #0x40 + bl sub_0801D630 + ldr r1, _0805E928 @ =gUnk_020354B4 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] +_0805E926: + pop {r4, pc} + .align 2, 0 +_0805E928: .4byte gUnk_020354B4 + + thumb_func_start sub_0805E92C +sub_0805E92C: @ 0x0805E92C + push {lr} + ldr r2, _0805E94C @ =gUnk_02033A90 + ldr r1, _0805E950 @ =0x00000888 + adds r3, r2, r1 + ldr r1, [r3] + cmp r0, r1 + bne _0805E94A + movs r0, #0 + str r0, [r3] + ldr r3, _0805E954 @ =0x0000088C + adds r1, r2, r3 + str r0, [r1] + adds r3, #4 + adds r1, r2, r3 + str r0, [r1] +_0805E94A: + pop {pc} + .align 2, 0 +_0805E94C: .4byte gUnk_02033A90 +_0805E950: .4byte 0x00000888 +_0805E954: .4byte 0x0000088C + + thumb_func_start sub_0805E958 +sub_0805E958: @ 0x0805E958 + push {lr} + ldr r0, _0805E96C @ =gUnk_03003D70 + ldr r1, _0805E970 @ =gUnk_020369F0 + movs r2, #0x48 + bl sub_0801D66C + bl sub_0805E98C + pop {pc} + .align 2, 0 +_0805E96C: .4byte gUnk_03003D70 +_0805E970: .4byte gUnk_020369F0 + + thumb_func_start sub_0805E974 +sub_0805E974: @ 0x0805E974 + push {lr} + ldr r0, _0805E984 @ =gUnk_020369F0 + ldr r1, _0805E988 @ =gUnk_03003D70 + movs r2, #0x48 + bl sub_0801D66C + pop {pc} + .align 2, 0 +_0805E984: .4byte gUnk_020369F0 +_0805E988: .4byte gUnk_03003D70 + + thumb_func_start sub_0805E98C +sub_0805E98C: @ 0x0805E98C + push {lr} + ldr r0, _0805E9A4 @ =gUnk_03003D70 + adds r1, r0, #0 + adds r1, #0x48 + cmp r0, r1 + bhs _0805E9A2 +_0805E998: + str r0, [r0] + str r0, [r0, #4] + adds r0, #8 + cmp r0, r1 + blo _0805E998 +_0805E9A2: + pop {pc} + .align 2, 0 +_0805E9A4: .4byte gUnk_03003D70 + + thumb_func_start sub_0805E9A8 +sub_0805E9A8: @ 0x0805E9A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r3, _0805E9F0 @ =gUnk_03003D70 + movs r7, #0x10 + movs r0, #0x48 + adds r0, r0, r3 + mov r8, r0 +_0805E9B8: + ldr r2, [r3, #4] + adds r4, r3, #0 + adds r4, #8 + cmp r2, r3 + beq _0805E9E2 + movs r6, #0xfd + movs r5, #0x20 +_0805E9C6: + ldrb r0, [r2, #0x10] + adds r1, r6, #0 + ands r1, r0 + strb r1, [r2, #0x10] + adds r0, r1, #0 + ands r0, r5 + cmp r0, #0 + bne _0805E9DC + adds r0, r1, #0 + orrs r0, r7 + strb r0, [r2, #0x10] +_0805E9DC: + ldr r2, [r2, #4] + cmp r2, r3 + bne _0805E9C6 +_0805E9E2: + adds r3, r4, #0 + cmp r3, r8 + blo _0805E9B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805E9F0: .4byte gUnk_03003D70 + + thumb_func_start sub_0805E9F4 +sub_0805E9F4: @ 0x0805E9F4 + push {r4, r5, r6, lr} + ldr r5, _0805EA24 @ =gUnk_03003D70 +_0805E9F8: + ldr r2, [r5, #4] + adds r6, r5, #0 + adds r6, #8 + cmp r2, r5 + beq _0805EA1A +_0805EA02: + ldr r4, [r2, #4] + ldrb r1, [r2, #0x10] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0805EA14 + adds r0, r2, #0 + bl sub_0805E79C +_0805EA14: + adds r2, r4, #0 + cmp r2, r5 + bne _0805EA02 +_0805EA1A: + adds r5, r6, #0 + ldr r0, _0805EA28 @ =gUnk_03003DB8 + cmp r5, r0 + blo _0805E9F8 + pop {r4, r5, r6, pc} + .align 2, 0 +_0805EA24: .4byte gUnk_03003D70 +_0805EA28: .4byte gUnk_03003DB8 + + thumb_func_start sub_0805EA2C +sub_0805EA2C: @ 0x0805EA2C + push {lr} + adds r2, r0, #0 + lsls r1, r1, #3 + ldr r0, _0805EA5C @ =gUnk_03003D70 + adds r1, r1, r0 + str r1, [r2, #4] + ldr r0, [r1] + str r0, [r2] + str r2, [r0, #4] + str r2, [r1] + ldrb r0, [r2, #8] + cmp r0, #9 + beq _0805EA64 + adds r3, r2, #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] + ldr r1, _0805EA60 @ =gUnk_03003DBC + b _0805EA66 + .align 2, 0 +_0805EA5C: .4byte gUnk_03003D70 +_0805EA60: .4byte gUnk_03003DBC +_0805EA64: + ldr r1, _0805EA74 @ =gUnk_020354B4 +_0805EA66: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0805E374 + pop {pc} + .align 2, 0 +_0805EA74: .4byte gUnk_020354B4 + + thumb_func_start sub_0805EA78 +sub_0805EA78: @ 0x0805EA78 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0805EA98 + lsls r4, r4, #3 + ldr r0, _0805EA94 @ =gUnk_03003D70 + adds r4, r4, r0 + str r4, [r5] + ldr r0, [r4, #4] + str r0, [r5, #4] + str r5, [r0] + str r5, [r4, #4] + pop {r4, r5, pc} + .align 2, 0 +_0805EA94: .4byte gUnk_03003D70 + + thumb_func_start sub_0805EA98 +sub_0805EA98: @ 0x0805EA98 + push {lr} + adds r2, r0, #0 + ldr r1, _0805EAB8 @ =gUnk_03003DD0 + ldr r0, [r1, #8] + cmp r2, r0 + bne _0805EAA8 + ldr r0, [r2] + str r0, [r1, #8] +_0805EAA8: + ldr r1, [r2] + ldr r0, [r2, #4] + str r0, [r1, #4] + ldr r1, [r2, #4] + ldr r0, [r2] + str r0, [r1] + pop {pc} + .align 2, 0 +_0805EAB8: .4byte gUnk_03003DD0 + + thumb_func_start sub_0805EABC +sub_0805EABC: @ 0x0805EABC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldr r4, _0805EAE8 @ =gUnk_03003D70 + adds r7, r4, #0 + adds r7, #0x48 +_0805EAC6: + ldr r3, [r4, #4] + cmp r3, r4 + beq _0805EAF6 + ldr r5, _0805EAEC @ =0x0000FFFF +_0805EACE: + cmp r3, r6 + beq _0805EAF0 + ldrh r0, [r3, #8] + ldrh r2, [r6, #8] + adds r1, r5, #0 + ands r1, r0 + adds r0, r5, #0 + ands r0, r2 + cmp r1, r0 + bne _0805EAF0 + movs r0, #1 + b _0805EAFE + .align 2, 0 +_0805EAE8: .4byte gUnk_03003D70 +_0805EAEC: .4byte 0x0000FFFF +_0805EAF0: + ldr r3, [r3, #4] + cmp r3, r4 + bne _0805EACE +_0805EAF6: + adds r4, #8 + cmp r4, r7 + blo _0805EAC6 + movs r0, #0 +_0805EAFE: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805EB00 +sub_0805EB00: @ 0x0805EB00 + push {r4, lr} + adds r3, r0, #0 + lsls r2, r2, #3 + ldr r0, _0805EB28 @ =gUnk_03003D70 + adds r2, r2, r0 + ldr r0, [r2, #4] + cmp r0, r2 + beq _0805EB22 +_0805EB10: + ldrb r4, [r0, #8] + cmp r3, r4 + bne _0805EB1C + ldrb r4, [r0, #9] + cmp r1, r4 + beq _0805EB24 +_0805EB1C: + ldr r0, [r0, #4] + cmp r0, r2 + bne _0805EB10 +_0805EB22: + movs r0, #0 +_0805EB24: + pop {r4, pc} + .align 2, 0 +_0805EB28: .4byte gUnk_03003D70 + + thumb_func_start sub_0805EB2C +sub_0805EB2C: @ 0x0805EB2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, [sp, #0x10] + lsls r2, r2, #3 + ldr r0, _0805EB60 @ =gUnk_03003D70 + adds r2, r2, r0 + ldr r0, [r2, #4] + cmp r0, r2 + beq _0805EB5C +_0805EB3E: + ldrb r6, [r0, #8] + cmp r4, r6 + bne _0805EB56 + ldrb r6, [r0, #9] + cmp r1, r6 + bne _0805EB56 + ldrb r6, [r0, #0xa] + cmp r3, r6 + bne _0805EB56 + ldrb r6, [r0, #0xb] + cmp r5, r6 + beq _0805EB5E +_0805EB56: + ldr r0, [r0, #4] + cmp r0, r2 + bne _0805EB3E +_0805EB5C: + movs r0, #0 +_0805EB5E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0805EB60: .4byte gUnk_03003D70 + + thumb_func_start sub_0805EB64 +sub_0805EB64: @ 0x0805EB64 + push {r4, r5, lr} + adds r4, r0, #0 + lsls r1, r1, #3 + ldr r0, _0805EB88 @ =gUnk_03003D70 + adds r3, r1, r0 + ldr r2, [r4, #4] + cmp r2, r3 + beq _0805EB96 + ldr r5, _0805EB8C @ =0x0000FFFF + ldrh r4, [r4, #8] +_0805EB78: + ldrh r1, [r2, #8] + adds r0, r5, #0 + ands r0, r1 + cmp r0, r4 + bne _0805EB90 + adds r0, r2, #0 + b _0805EB98 + .align 2, 0 +_0805EB88: .4byte gUnk_03003D70 +_0805EB8C: .4byte 0x0000FFFF +_0805EB90: + ldr r2, [r2, #4] + cmp r2, r3 + bne _0805EB78 +_0805EB96: + movs r0, #0 +_0805EB98: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805EB9C +sub_0805EB9C: @ 0x0805EB9C + push {r4, r5, lr} + adds r3, r0, #0 + ldr r2, _0805EBC8 @ =gUnk_03003D70 + adds r4, r2, #0 + adds r4, #0x48 +_0805EBA6: + ldr r0, [r2, #4] + cmp r0, r2 + beq _0805EBBE +_0805EBAC: + ldrb r5, [r0, #8] + cmp r3, r5 + bne _0805EBB8 + ldrb r5, [r0, #9] + cmp r1, r5 + beq _0805EBC6 +_0805EBB8: + ldr r0, [r0, #4] + cmp r0, r2 + bne _0805EBAC +_0805EBBE: + adds r2, #8 + cmp r2, r4 + blo _0805EBA6 + movs r0, #0 +_0805EBC6: + pop {r4, r5, pc} + .align 2, 0 +_0805EBC8: .4byte gUnk_03003D70 + + thumb_func_start sub_0805EBCC +sub_0805EBCC: @ 0x0805EBCC + push {r4, r5, r6, lr} + ldr r5, _0805EBFC @ =gUnk_03003D70 +_0805EBD0: + ldr r1, [r5, #4] + adds r6, r5, #0 + adds r6, #8 + cmp r1, r5 + beq _0805EBEE +_0805EBDA: + ldr r4, [r1, #4] + ldrb r0, [r1, #8] + cmp r0, #3 + bne _0805EBE8 + adds r0, r1, #0 + bl sub_0805E7BC +_0805EBE8: + adds r1, r4, #0 + cmp r1, r5 + bne _0805EBDA +_0805EBEE: + adds r5, r6, #0 + ldr r0, _0805EC00 @ =gUnk_03003DB8 + cmp r5, r0 + blo _0805EBD0 + bl sub_0805E84C + pop {r4, r5, r6, pc} + .align 2, 0 +_0805EBFC: .4byte gUnk_03003D70 +_0805EC00: .4byte gUnk_03003DB8 + + thumb_func_start sub_0805EC04 +sub_0805EC04: @ 0x0805EC04 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r2, #1 + ldr r0, _0805EC4C @ =gUnk_03000000 + movs r5, #1 + movs r6, #0x3f + rsbs r6, r6, #0 + movs r7, #4 + rsbs r7, r7, #0 + adds r4, r0, #0 + adds r4, #8 +_0805EC1A: + ldr r0, _0805EC50 @ =0x00000426 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, #0 + bne _0805EC54 + strb r5, [r1] + movs r0, #0x1f + ands r2, r0 + lsls r2, r2, #1 + ldrb r1, [r3, #0x1b] + adds r0, r6, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r2, [r3, #0x19] + lsls r1, r2, #0x1e + lsrs r1, r1, #0x1e + orrs r1, r5 + adds r0, r7, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + movs r0, #1 + b _0805EC5E + .align 2, 0 +_0805EC4C: .4byte gUnk_03000000 +_0805EC50: .4byte 0x00000426 +_0805EC54: + adds r4, #8 + adds r2, #1 + cmp r2, #0x1f + bls _0805EC1A + movs r0, #0 +_0805EC5E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805EC60 +sub_0805EC60: @ 0x0805EC60 + push {lr} + adds r3, r0, #0 + ldrb r1, [r3, #0x19] + lsls r0, r1, #0x1e + cmp r0, #0 + beq _0805EC90 + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r3, #0x19] + ldrb r2, [r3, #0x1b] + lsls r1, r2, #0x1a + lsrs r1, r1, #0x1b + movs r0, #0x3f + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3, #0x1b] + ldr r0, _0805EC94 @ =gUnk_03000000 + lsls r1, r1, #3 + adds r1, r1, r0 + ldr r0, _0805EC98 @ =0x00000426 + adds r1, r1, r0 + movs r0, #0 + strb r0, [r1] +_0805EC90: + pop {pc} + .align 2, 0 +_0805EC94: .4byte gUnk_03000000 +_0805EC98: .4byte 0x00000426 + + thumb_func_start sub_0805EC9C +sub_0805EC9C: @ 0x0805EC9C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + adds r7, r3, #0 + ldrb r0, [r4, #0x1b] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + cmp r0, #0 + bne _0805ECBE + adds r0, r4, #0 + bl sub_0805EC04 + cmp r0, #0 + bne _0805ECBE + movs r0, #0 + b _0805ECE0 +_0805ECBE: + ldr r1, _0805ECE4 @ =gUnk_03000000 + ldr r0, _0805ECE8 @ =0x00000427 + adds r2, r1, r0 + movs r0, #1 + strb r0, [r2] + ldrb r0, [r4, #0x1b] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1b + lsls r0, r0, #3 + movs r2, #0x84 + lsls r2, r2, #3 + adds r1, r1, r2 + adds r0, r0, r1 + strh r5, [r0] + strh r6, [r0, #2] + strh r7, [r0, #4] + movs r0, #1 +_0805ECE0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805ECE4: .4byte gUnk_03000000 +_0805ECE8: .4byte 0x00000427 + + thumb_func_start sub_0805ECEC +sub_0805ECEC: @ 0x0805ECEC + push {r4, r5, r6, lr} + ldr r5, _0805ED0C @ =gUnk_03000000 + ldr r4, _0805ED10 @ =0x00000427 + adds r6, r5, r4 + movs r4, #1 + strb r4, [r6] + lsls r0, r0, #3 + movs r4, #0x84 + lsls r4, r4, #3 + adds r5, r5, r4 + adds r0, r0, r5 + strh r1, [r0] + strh r2, [r0, #2] + strh r3, [r0, #4] + pop {r4, r5, r6, pc} + .align 2, 0 +_0805ED0C: .4byte gUnk_03000000 +_0805ED10: .4byte 0x00000427 + + thumb_func_start sub_0805ED14 +sub_0805ED14: @ 0x0805ED14 + ldr r2, _0805ED2C @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x9c + str r0, [r1] + adds r0, r2, #0 + adds r0, #0x98 + movs r1, #0 + strh r1, [r0] + adds r0, #2 + strh r1, [r0] + bx lr + .align 2, 0 +_0805ED2C: .4byte gUnk_03003F80 + + thumb_func_start sub_0805ED30 +sub_0805ED30: @ 0x0805ED30 + push {r4, lr} + ldr r2, _0805ED50 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x9c + ldr r0, [r0] + adds r4, r2, #0 + cmp r0, #0 + beq _0805ED88 + adds r1, r4, #0 + adds r1, #0x90 + ldr r2, [r1, #0xc] + ldrh r0, [r1, #8] + cmp r0, #0 + bne _0805ED7E + movs r4, #0 + b _0805ED62 + .align 2, 0 +_0805ED50: .4byte gUnk_03003F80 +_0805ED54: + cmp r0, #2 + beq _0805ED5E + strh r3, [r1, #8] + ldrh r0, [r2, #2] + strh r0, [r1, #0xa] +_0805ED5E: + adds r2, #4 + b _0805ED7C +_0805ED62: + ldrh r3, [r2] + lsrs r0, r3, #0xe + cmp r0, #1 + bne _0805ED72 + movs r3, #2 + ldrsh r0, [r2, r3] + adds r2, r2, r0 + b _0805ED62 +_0805ED72: + cmp r0, #3 + bne _0805ED54 + strh r4, [r1, #8] + strh r4, [r1, #0xa] + movs r2, #0 +_0805ED7C: + str r2, [r1, #0xc] +_0805ED7E: + ldrh r0, [r1, #8] + subs r0, #1 + strh r0, [r1, #8] + ldrh r1, [r1, #0xa] + b _0805EDCA +_0805ED88: + adds r0, r4, #0 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #3 + bgt _0805ED98 + cmp r0, #0 + blt _0805ED98 + movs r1, #0 +_0805ED98: + adds r2, r4, #0 + adds r2, #0x8b + ldrb r0, [r2] + cmp r0, #1 + beq _0805EDB4 + cmp r0, #1 + bgt _0805EDAC + cmp r0, #0 + beq _0805EDC6 + b _0805EDCA +_0805EDAC: + cmp r0, #3 + bgt _0805EDCA + movs r1, #0 + b _0805EDCA +_0805EDB4: + movs r0, #0 + strb r0, [r2] + ldr r0, _0805EDF8 @ =gUnk_03000FF0 + ldrh r0, [r0] + bl sub_0805EE04 + adds r1, r4, #0 + adds r1, #0x90 + strh r0, [r1] +_0805EDC6: + ldr r0, _0805EDF8 @ =gUnk_03000FF0 + ldrh r1, [r0] +_0805EDCA: + adds r0, r1, #0 + bl sub_0805EE04 + ldr r3, _0805EDFC @ =gUnk_03003F80 + adds r1, r3, #0 + adds r1, #0x90 + ldrh r2, [r1] + strh r0, [r1] + adds r1, r0, #0 + bics r1, r2 + adds r2, r3, #0 + adds r2, #0x92 + strh r1, [r2] + ldr r2, _0805EE00 @ =gUnk_08109202 + movs r1, #0xf0 + lsls r1, r1, #4 + ands r1, r0 + lsrs r1, r1, #8 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r3, #0xd] + pop {r4, pc} + .align 2, 0 +_0805EDF8: .4byte gUnk_03000FF0 +_0805EDFC: .4byte gUnk_03003F80 +_0805EE00: .4byte gUnk_08109202 + + thumb_func_start sub_0805EE04 +sub_0805EE04: @ 0x0805EE04 + push {r4, r5, lr} + adds r2, r0, #0 + movs r5, #0x80 + lsls r5, r5, #2 + ands r0, r5 + rsbs r0, r0, #0 + asrs r1, r0, #0x1f + movs r0, #0x80 + lsls r0, r0, #5 + ands r1, r0 + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r2, #0 + ands r0, r4 + cmp r0, #0 + beq _0805EE32 + movs r0, #0x20 + orrs r1, r0 + movs r0, #0x80 + lsls r0, r0, #8 + orrs r1, r0 + movs r0, #0x80 + orrs r1, r0 +_0805EE32: + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0805EE42 + movs r0, #8 + orrs r1, r0 + movs r0, #0x41 + orrs r1, r0 +_0805EE42: + movs r3, #2 + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + beq _0805EE52 + movs r0, #0x10 + orrs r1, r0 + orrs r1, r3 +_0805EE52: + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _0805EE5C + orrs r1, r4 +_0805EE5C: + movs r0, #0x20 + ands r0, r2 + cmp r0, #0 + beq _0805EE66 + orrs r1, r5 +_0805EE66: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _0805EE74 + movs r0, #0x80 + lsls r0, r0, #3 + orrs r1, r0 +_0805EE74: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _0805EE82 + movs r0, #0x80 + lsls r0, r0, #4 + orrs r1, r0 +_0805EE82: + adds r0, r1, #0 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805EE88 +sub_0805EE88: @ 0x0805EE88 + push {lr} + ldr r1, _0805EEB0 @ =gUnk_030010A0 + adds r0, r1, #0 + adds r0, #0x2f + ldrb r0, [r0] + cmp r0, #0 + beq _0805EEAC + ldr r1, [r1] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0805EEAC + movs r0, #0xc + ands r1, r0 + lsrs r0, r1, #2 + adds r0, #0x2f + bl sub_0801D714 +_0805EEAC: + pop {pc} + .align 2, 0 +_0805EEB0: .4byte gUnk_030010A0 + + thumb_func_start sub_0805EEB4 +sub_0805EEB4: @ 0x0805EEB4 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r3, r1, #0 + strh r3, [r7, #8] + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r1, [r0, #7] + cmp r1, #1 + bls _0805EED6 + lsrs r0, r3, #8 + cmp r0, #1 + bne _0805EED6 + movs r0, #0x8c + lsls r0, r0, #1 + cmp r3, r0 + bhi _0805EED6 + movs r1, #3 +_0805EED6: + ldr r0, _0805EF14 @ =gUnk_08109214 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + lsrs r0, r3, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r4, [r0] + adds r2, r2, r4 + lsls r0, r3, #0x18 + lsrs r0, r0, #0x16 + adds r0, r0, r2 + ldr r4, [r0] + ldr r0, [r1] + ldr r1, [r0] + lsrs r1, r1, #2 + ldr r0, [r2] + lsrs r6, r0, #2 + movs r5, #0 + ldrh r3, [r7, #8] + lsrs r0, r3, #8 + cmp r0, r1 + bhs _0805EF0E + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + cmp r0, r6 + blo _0805EF18 +_0805EF0E: + movs r5, #1 + b _0805EF22 + .align 2, 0 +_0805EF14: .4byte gUnk_08109214 +_0805EF18: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0805EF22 + movs r5, #2 +_0805EF22: + cmp r5, #2 + bhi _0805EF2E + cmp r5, #1 + blo _0805EF2E + ldr r2, _0805EF3C @ =gUnk_08109244 + movs r4, #0 +_0805EF2E: + adds r2, r2, r4 + adds r0, r7, #0 + adds r1, r2, #0 + bl sub_0805EF40 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805EF3C: .4byte gUnk_08109244 + + thumb_func_start sub_0805EF40 +sub_0805EF40: @ 0x0805EF40 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldrb r2, [r3] + movs r0, #1 + ands r0, r2 + cmp r0, #0 + beq _0805EF70 + lsls r1, r2, #0x1b + lsrs r0, r1, #0x1c + cmp r0, #6 + bls _0805EF5C + movs r0, #0 + b _0805EF8A +_0805EF5C: + lsrs r0, r1, #0x1c + adds r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] +_0805EF70: + ldrb r0, [r3] + lsls r0, r0, #0x1b + lsrs r0, r0, #0x1c + lsls r0, r0, #2 + adds r1, r3, #0 + adds r1, #0x10 + adds r1, r1, r0 + str r4, [r1] + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + movs r0, #1 +_0805EF8A: + pop {r4, pc} + + thumb_func_start sub_0805EF8C +sub_0805EF8C: @ 0x0805EF8C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805EFAE + lsls r0, r1, #0x1b + lsrs r0, r0, #0x1c + lsls r0, r0, #2 + adds r2, #0x10 + adds r2, r2, r0 + ldr r1, [r2] + ldrb r0, [r1] + adds r1, #1 + str r1, [r2] + b _0805EFB0 +_0805EFAE: + movs r0, #0 +_0805EFB0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805EFB4 +sub_0805EFB4: @ 0x0805EFB4 + push {r4, lr} + adds r3, r0, #0 + ldrb r2, [r3] + lsls r1, r2, #0x1b + lsrs r4, r1, #0x1c + movs r0, #0x1e + ands r0, r2 + cmp r0, #0 + beq _0805EFDC + adds r0, r4, #0 + subs r0, #1 + movs r1, #0xf + ands r0, r1 + lsls r0, r0, #1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r1, r2 + orrs r1, r0 + strb r1, [r3] + b _0805EFE4 +_0805EFDC: + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] +_0805EFE4: + adds r0, r4, #0 + pop {r4, pc} + + thumb_func_start sub_0805EFE8 +sub_0805EFE8: @ 0x0805EFE8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 +_0805EFEC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + strb r5, [r6, #1] + movs r7, #0 + cmp r5, #0xf + bls _0805EFFE + b _0805F22C +_0805EFFE: + lsls r0, r5, #2 + ldr r1, _0805F008 @ =_0805F00C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F008: .4byte _0805F00C +_0805F00C: @ jump table + .4byte _0805F04C @ case 0 + .4byte _0805F058 @ case 1 + .4byte _0805F06E @ case 2 + .4byte _0805F07A @ case 3 + .4byte _0805F090 @ case 4 + .4byte _0805F130 @ case 5 + .4byte _0805F150 @ case 6 + .4byte _0805F196 @ case 7 + .4byte _0805F1C0 @ case 8 + .4byte _0805F1CC @ case 9 + .4byte _0805F1D8 @ case 10 + .4byte _0805F1DC @ case 11 + .4byte _0805F1EC @ case 12 + .4byte _0805F1FC @ case 13 + .4byte _0805F20C @ case 14 + .4byte _0805F21C @ case 15 +_0805F04C: + adds r0, r6, #0 + bl sub_0805EFB4 + adds r7, r0, #0 + movs r5, #0 + b _0805F232 +_0805F058: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + strh r4, [r6, #2] + movs r5, #6 + cmp r4, #0xa + bls _0805F06A + b _0805F232 +_0805F06A: + movs r5, #5 + b _0805F232 +_0805F06E: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #7 + b _0805F232 +_0805F07A: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + strh r4, [r6, #2] + movs r5, #8 + b _0805F232 +_0805F090: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #0x15 + bhi _0805F12C + lsls r0, r4, #2 + ldr r1, _0805F0A8 @ =_0805F0AC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F0A8: .4byte _0805F0AC +_0805F0AC: @ jump table + .4byte _0805F104 @ case 0 + .4byte _0805F104 @ case 1 + .4byte _0805F104 @ case 2 + .4byte _0805F104 @ case 3 + .4byte _0805F104 @ case 4 + .4byte _0805F104 @ case 5 + .4byte _0805F104 @ case 6 + .4byte _0805F104 @ case 7 + .4byte _0805F104 @ case 8 + .4byte _0805F104 @ case 9 + .4byte _0805F104 @ case 10 + .4byte _0805F104 @ case 11 + .4byte _0805F104 @ case 12 + .4byte _0805F104 @ case 13 + .4byte _0805F104 @ case 14 + .4byte _0805F104 @ case 15 + .4byte _0805F108 @ case 16 + .4byte _0805F114 @ case 17 + .4byte _0805F118 @ case 18 + .4byte _0805F11C @ case 19 + .4byte _0805F120 @ case 20 + .4byte _0805F120 @ case 21 +_0805F104: + movs r5, #9 + b _0805F12C +_0805F108: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + movs r5, #0xa + b _0805F12C +_0805F114: + movs r5, #2 + b _0805F12C +_0805F118: + movs r5, #3 + b _0805F12C +_0805F11C: + movs r5, #4 + b _0805F12C +_0805F120: + movs r5, #0xb + movs r1, #0x14 + eors r1, r4 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r4, r0, #0x1f +_0805F12C: + strh r4, [r6, #2] + b _0805F232 +_0805F130: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #0xff + bne _0805F140 + movs r4, #0 + b _0805F14A +_0805F140: + lsls r4, r4, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 +_0805F14A: + strh r4, [r6, #6] + movs r5, #0xc + b _0805F232 +_0805F150: + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r0, #0 + cmp r4, #4 + bls _0805F162 + cmp r4, #5 + beq _0805F17C + b _0805EFEC +_0805F162: + ldr r1, [r6, #0xc] + cmp r1, #0 + bne _0805F16A + ldr r1, _0805F178 @ =gUnk_08109230 +_0805F16A: + lsls r0, r4, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r6, #0 + bl sub_0805EF40 + b _0805EFEC + .align 2, 0 +_0805F178: .4byte gUnk_08109230 +_0805F17C: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805EEB4 + b _0805EFEC +_0805F196: + adds r0, r6, #0 + bl sub_0805EF8C + lsls r4, r0, #8 + adds r0, r6, #0 + bl sub_0805EF8C + adds r4, r4, r0 + ldrb r1, [r6] + movs r0, #2 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x1f + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r6] + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0805EEB4 + b _0805EFEC +_0805F1C0: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #0xd + b _0805F232 +_0805F1CC: + adds r0, r6, #0 + bl sub_0805EF8C + strh r0, [r6, #2] + movs r5, #0xe + b _0805F232 +_0805F1D8: + movs r5, #1 + b _0805F232 +_0805F1DC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0x80 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F1EC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xe0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F1FC: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xa0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F20C: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #3 + orrs r5, r0 + b _0805F232 +_0805F21C: + adds r0, r6, #0 + bl sub_0805EF8C + adds r5, r0, #0 + movs r0, #0xc0 + lsls r0, r0, #2 + orrs r5, r0 + b _0805F232 +_0805F22C: + movs r0, #0x80 + lsls r0, r0, #1 + adds r5, r5, r0 +_0805F232: + cmp r7, #0 + beq _0805F238 + b _0805EFEC +_0805F238: + lsrs r0, r5, #8 + cmp r0, #0 + beq _0805F256 + ldrb r0, [r6] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1e + cmp r0, #0 + beq _0805F254 + cmp r0, #1 + bne _0805F254 + adds r0, r5, #0 + bl sub_0805F9A0 + adds r5, r0, #0 +_0805F254: + strh r5, [r6, #4] +_0805F256: + adds r0, r5, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805F25C +sub_0805F25C: @ 0x0805F25C + push {lr} + adds r2, r0, #0 + lsrs r3, r2, #8 + movs r0, #0xf + ands r3, r0 + movs r0, #0xff + ands r2, r0 + cmp r3, #8 + bhi _0805F2B6 + lsls r0, r3, #2 + ldr r1, _0805F278 @ =_0805F27C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F278: .4byte _0805F27C +_0805F27C: @ jump table + .4byte _0805F2A0 @ case 0 + .4byte _0805F2A0 @ case 1 + .4byte _0805F2B6 @ case 2 + .4byte _0805F2B6 @ case 3 + .4byte _0805F2B6 @ case 4 + .4byte _0805F2B4 @ case 5 + .4byte _0805F2B4 @ case 6 + .4byte _0805F2B4 @ case 7 + .4byte _0805F2B4 @ case 8 +_0805F2A0: + cmp r2, #0x7f + bls _0805F2B6 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + beq _0805F2B6 + subs r2, #0x80 + movs r3, #2 + b _0805F2B6 +_0805F2B4: + lsls r2, r2, #1 +_0805F2B6: + ldr r1, _0805F2C4 @ =gUnk_08109248 + lsls r0, r3, #2 + adds r0, r0, r1 + lsls r1, r2, #6 + ldr r0, [r0] + adds r0, r0, r1 + pop {pc} + .align 2, 0 +_0805F2C4: .4byte gUnk_08109248 + + thumb_func_start sub_0805F2C8 +sub_0805F2C8: @ 0x0805F2C8 + push {r4, r5, lr} + movs r1, #0 + ldr r4, _0805F2EC @ =gUnk_02036540 + adds r5, r4, #0 +_0805F2D0: + ldrb r0, [r4] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0805F2F0 + adds r0, r5, #0 + movs r1, #0xc + bl sub_0801D630 + ldrb r0, [r4] + movs r1, #1 + orrs r0, r1 + strb r0, [r4] + adds r0, r5, #0 + b _0805F2FC + .align 2, 0 +_0805F2EC: .4byte gUnk_02036540 +_0805F2F0: + adds r4, #0xc + adds r5, #0xc + adds r1, #1 + cmp r1, #3 + bls _0805F2D0 + movs r0, #0 +_0805F2FC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805F300 +sub_0805F300: @ 0x0805F300 + push {lr} + adds r2, r0, #0 + movs r1, #0 + ldr r0, _0805F314 @ =gUnk_02036540 +_0805F308: + cmp r0, r2 + bne _0805F318 + movs r1, #0xc + bl sub_0801D630 + b _0805F320 + .align 2, 0 +_0805F314: .4byte gUnk_02036540 +_0805F318: + adds r0, #0xc + adds r1, #1 + cmp r1, #3 + bls _0805F308 +_0805F320: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805F324 +sub_0805F324: @ 0x0805F324 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + adds r7, r1, #0 + mov r1, sp + movs r2, #0x30 + bl sub_0801D66C + movs r0, #0 + str r0, [sp, #0x34] + movs r1, #0 + str r1, [sp, #0x30] + mov sl, r1 + mov r8, r1 + b _0805F34C +_0805F348: + cmp r6, #0 + beq _0805F41E +_0805F34C: + movs r5, #0 + movs r2, #1 + mov sb, r2 +_0805F352: + mov r0, sp + bl sub_0805EFE8 + adds r6, r0, #0 + cmp r6, #0xe + bhi _0805F3B4 + lsls r0, r6, #2 + ldr r1, _0805F368 @ =_0805F36C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F368: .4byte _0805F36C +_0805F36C: @ jump table + .4byte _0805F402 @ case 0 + .4byte _0805F402 @ case 1 + .4byte _0805F3FC @ case 2 + .4byte _0805F3FC @ case 3 + .4byte _0805F3FC @ case 4 + .4byte _0805F3FC @ case 5 + .4byte _0805F3FC @ case 6 + .4byte _0805F3FC @ case 7 + .4byte _0805F3FC @ case 8 + .4byte _0805F3FC @ case 9 + .4byte _0805F3FC @ case 10 + .4byte _0805F3AC @ case 11 + .4byte _0805F3A8 @ case 12 + .4byte _0805F3FC @ case 13 + .4byte _0805F3FC @ case 14 +_0805F3A8: + adds r5, #8 + b _0805F3FC +_0805F3AC: + mov r0, sp + ldrh r0, [r0, #2] + mov r8, r0 + b _0805F3FC +_0805F3B4: + mov r0, r8 + cmp r0, #0 + bne _0805F3DE + adds r0, r6, #0 + bl sub_0805F25C + adds r4, r0, #0 + lsrs r0, r6, #8 + cmp r0, #4 + bls _0805F3D2 + ldr r0, [r4, #0x40] + bl sub_0805F7A0 + lsrs r0, r0, #8 + adds r5, r5, r0 +_0805F3D2: + ldr r0, [r4] + bl sub_0805F7A0 + lsrs r0, r0, #8 + adds r5, r5, r0 + b _0805F3EA +_0805F3DE: + lsrs r0, r6, #8 + cmp r0, #4 + bls _0805F3E8 + adds r5, #0x10 + b _0805F3EA +_0805F3E8: + adds r5, #8 +_0805F3EA: + mov r0, sp + ldrb r1, [r0] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + bne _0805F3FC + cmp r5, #1 + bls _0805F3FC + subs r5, #1 +_0805F3FC: + mov r1, sb + cmp r1, #0 + bne _0805F352 +_0805F402: + cmp r5, sl + bls _0805F408 + mov sl, r5 +_0805F408: + cmp r5, #0 + beq _0805F414 + ldr r2, [sp, #0x30] + adds r2, #1 + str r2, [sp, #0x30] + b _0805F41A +_0805F414: + ldr r0, [sp, #0x34] + adds r0, #1 + str r0, [sp, #0x34] +_0805F41A: + cmp r7, #0 + bne _0805F348 +_0805F41E: + cmp r7, #0 + bne _0805F426 + mov r0, sl + b _0805F434 +_0805F426: + ldr r1, [sp, #0x34] + lsls r0, r1, #0x18 + ldr r2, [sp, #0x30] + lsls r1, r2, #0x10 + orrs r0, r1 + mov r1, sl + orrs r0, r1 +_0805F434: + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F440 +sub_0805F440: @ 0x0805F440 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0x30 + bl sub_0801D630 + ldr r0, _0805F45C @ =0x0000FFFF + cmp r5, r0 + bls _0805F460 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805EF40 + b _0805F468 + .align 2, 0 +_0805F45C: .4byte 0x0000FFFF +_0805F460: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805EEB4 +_0805F468: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805F46C +sub_0805F46C: @ 0x0805F46C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + sub sp, #0x48 + adds r6, r0, #0 + adds r5, r1, #0 + bl sub_0805F2C8 + mov r8, r0 + cmp r0, #0 + bne _0805F486 + b _0805F5BC +_0805F486: + add r4, sp, #0x30 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x18 + bl sub_0801D66C + mov r0, sp + adds r1, r6, #0 + bl sub_0805F440 + mov r3, sp + ldrb r0, [r4, #0x17] + movs r1, #3 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + ldrb r1, [r4, #0x17] + lsls r1, r1, #4 + mov r0, r8 + ldrb r2, [r0] + movs r0, #0xf + ands r0, r2 + orrs r0, r1 + mov r1, r8 + strb r0, [r1] + ldrb r0, [r4, #0x12] + strh r0, [r1, #4] + ldr r0, [r4, #8] + str r0, [r1, #8] + ldrb r0, [r4, #0x15] + strb r0, [r1, #2] + ldrb r0, [r4, #0x14] + strb r0, [r1, #3] + ldrb r1, [r4, #0x13] + movs r0, #8 + ands r0, r1 + mov sb, r4 + cmp r0, #0 + beq _0805F59E + lsrs r0, r1, #4 + ldrb r1, [r4, #0x14] + ldr r2, [r4, #4] + bl sub_0805F918 + ldr r0, [r4, #4] + adds r0, #0xe0 + str r0, [r4, #4] + mov r0, sp + movs r1, #1 + bl sub_0805F324 + lsrs r2, r0, #0x18 + ldrb r1, [r4, #0x16] + muls r2, r1, r2 + asrs r1, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x17 + adds r7, r2, r1 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + adds r1, r4, #0 + mov r2, sb + ldrb r3, [r2, #0x12] + cmp r3, r1 + bge _0805F514 + adds r1, r3, #0 +_0805F514: + adds r4, r1, #7 + movs r2, #8 + rsbs r2, r2, #0 + mov r0, sb + ldrb r1, [r0, #0x13] + movs r0, #2 + ands r0, r1 + ands r4, r2 + cmp r0, #0 + bne _0805F52A + adds r4, r3, #0 +_0805F52A: + ldr r5, [sp, #0x30] + adds r0, r5, #0 + adds r0, #0x40 + str r0, [sp, #0x30] + mov r2, sb + ldrb r1, [r2, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F54E + adds r4, #0xf + movs r0, #0x10 + rsbs r0, r0, #0 + ands r4, r0 + lsrs r0, r4, #3 + adds r0, #2 + subs r5, r5, r0 + b _0805F554 +_0805F54E: + adds r0, r5, #0 + adds r0, #0x42 + str r0, [sp, #0x30] +_0805F554: + lsrs r4, r4, #3 + mov r3, sb + ldrh r6, [r3, #0x10] + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + adds r3, r6, #0 + bl sub_08056DC8 + adds r5, #2 + mov r1, sb + ldrh r0, [r1, #0x10] + adds r0, #7 + strh r0, [r1, #0x10] + ldrh r0, [r1, #0x10] + subs r6, r0, #1 + adds r0, r7, #0 + subs r7, #1 + cmp r0, #0 + beq _0805F59E +_0805F57C: + adds r1, r5, #0 + adds r1, #0x40 + adds r5, r1, #0 + subs r2, r4, #1 + subs r3, r7, #1 + cmp r4, #0 + ble _0805F596 +_0805F58A: + strh r6, [r1] + adds r1, #2 + adds r0, r2, #0 + subs r2, #1 + cmp r0, #0 + bgt _0805F58A +_0805F596: + adds r0, r7, #0 + adds r7, r3, #0 + cmp r0, #0 + bne _0805F57C +_0805F59E: + ldr r0, _0805F5C8 @ =gUnk_02034330 + movs r1, #0x18 + bl sub_0801D630 +_0805F5A6: + mov r0, sb + mov r1, sp + mov r2, r8 + bl sub_0805F5CC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _0805F5A6 + mov r0, r8 + bl sub_0805F300 +_0805F5BC: + movs r0, #0 + add sp, #0x48 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805F5C8: .4byte gUnk_02034330 + + thumb_func_start sub_0805F5CC +sub_0805F5CC: @ 0x0805F5CC + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + ldrb r0, [r4, #0x14] + bl sub_0805F8F8 + ldr r1, [r4, #8] + ldrb r2, [r4, #0x12] + adds r2, #7 + movs r3, #0xfc + lsls r3, r3, #1 + ands r2, r3 + lsls r2, r2, #3 + bl sub_0801D610 + adds r0, r6, #0 + movs r1, #0 + bl sub_0805F324 + adds r2, r0, #0 + ldrb r1, [r4, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F60E + adds r0, r2, #1 + lsrs r0, r0, #1 + movs r1, #8 + subs r1, r1, r0 + movs r0, #7 + ands r0, r1 + b _0805F610 +_0805F60E: + movs r0, #0 +_0805F610: + strh r0, [r5, #6] + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0805F6A4 + adds r2, r0, #0 + cmp r2, #0 + beq _0805F660 + ldrh r1, [r5, #6] + adds r0, r1, #7 + asrs r5, r0, #3 + ldr r2, [r4] + ldrb r1, [r4, #0x13] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805F63A + adds r0, r5, #1 + lsrs r0, r0, #1 + lsls r0, r0, #1 + subs r2, r2, r0 +_0805F63A: + ldrh r1, [r4, #0x10] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_0805F67C + strh r0, [r4, #0x10] + ldr r0, [r4] + adds r0, #0x80 + str r0, [r4] + lsls r5, r5, #6 + ldr r0, [r4, #8] + ldr r1, [r4, #4] + adds r2, r5, #0 + bl sub_0801D66C + ldr r0, [r4, #4] + adds r0, r0, r5 + str r0, [r4, #4] + b _0805F670 +_0805F660: + ldrb r0, [r6, #1] + cmp r0, #0xa + bne _0805F670 + ldrb r1, [r4, #0x16] + lsls r1, r1, #6 + ldr r0, [r4] + adds r0, r0, r1 + str r0, [r4] +_0805F670: + ldrb r1, [r6, #1] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805F67C +sub_0805F67C: @ 0x0805F67C + push {r4, lr} + adds r3, r0, #0 + subs r2, #1 + movs r0, #1 + rsbs r0, r0, #0 + cmp r2, r0 + beq _0805F6A0 + adds r4, r0, #0 +_0805F68C: + strh r1, [r3] + adds r1, #1 + adds r0, r3, #0 + adds r0, #0x40 + strh r1, [r0] + adds r1, #1 + adds r3, #2 + subs r2, #1 + cmp r2, r4 + bne _0805F68C +_0805F6A0: + adds r0, r1, #0 + pop {r4, pc} + + thumb_func_start sub_0805F6A4 +sub_0805F6A4: @ 0x0805F6A4 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r6, #0 +_0805F6AC: + adds r0, r5, #0 + bl sub_0805EFE8 + movs r7, #1 + cmp r0, #0xe + bhi _0805F746 + lsls r0, r0, #2 + ldr r1, _0805F6C4 @ =_0805F6C8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0805F6C4: .4byte _0805F6C8 +_0805F6C8: @ jump table + .4byte _0805F768 @ case 0 + .4byte _0805F768 @ case 1 + .4byte _0805F764 @ case 2 + .4byte _0805F764 @ case 3 + .4byte _0805F764 @ case 4 + .4byte _0805F764 @ case 5 + .4byte _0805F764 @ case 6 + .4byte _0805F704 @ case 7 + .4byte _0805F764 @ case 8 + .4byte _0805F764 @ case 9 + .4byte _0805F764 @ case 10 + .4byte _0805F740 @ case 11 + .4byte _0805F70E @ case 12 + .4byte _0805F764 @ case 13 + .4byte _0805F764 @ case 14 +_0805F704: + ldrh r0, [r5, #2] + cmp r0, #0xd + bhi _0805F764 + strb r0, [r4, #2] + b _0805F764 +_0805F70E: + ldr r3, _0805F73C @ =gUnk_02034330 + movs r2, #2 + ldrsb r2, [r3, r2] + cmp r2, #3 + bhi _0805F732 + adds r0, r2, #1 + strb r0, [r3, #2] + lsls r2, r2, #1 + adds r0, r3, #0 + adds r0, #0x10 + adds r0, r2, r0 + ldrh r1, [r5, #6] + strh r1, [r0] + adds r0, r3, #0 + adds r0, #8 + adds r2, r2, r0 + ldrh r0, [r4, #6] + strh r0, [r2] +_0805F732: + ldrh r0, [r4, #6] + adds r0, #8 + strh r0, [r4, #6] + adds r6, #8 + b _0805F764 + .align 2, 0 +_0805F73C: .4byte gUnk_02034330 +_0805F740: + ldrh r0, [r5, #2] + strb r0, [r4, #1] + b _0805F764 +_0805F746: + adds r1, r4, #0 + bl sub_0805F7DC + adds r6, r6, r0 + ldrb r1, [r5] + movs r0, #0x60 + ands r0, r1 + cmp r0, #0x20 + bne _0805F764 + ldrh r0, [r4, #6] + cmp r0, #1 + bls _0805F764 + subs r6, #1 + subs r0, #1 + strh r0, [r4, #6] +_0805F764: + cmp r7, #0 + bne _0805F6AC +_0805F768: + adds r0, r6, #0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F76C +sub_0805F76C: @ 0x0805F76C + push {r4, lr} + sub sp, #0x30 + adds r2, r0, #0 + adds r4, r1, #0 + mov r0, sp + adds r1, r2, #0 + bl sub_0805F440 + mov r3, sp + ldrb r0, [r4] + lsrs r0, r0, #4 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #5 + ldrb r2, [r3] + movs r0, #0x61 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + mov r0, sp + adds r1, r4, #0 + bl sub_0805F6A4 + add sp, #0x30 + pop {r4, pc} + + thumb_func_start sub_0805F7A0 +sub_0805F7A0: @ 0x0805F7A0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0 + b _0805F7B4 +_0805F7AA: + lsls r1, r1, #4 + adds r2, #1 + cmp r2, #7 + bhi _0805F7BA + adds r0, r4, #0 +_0805F7B4: + ands r0, r1 + cmp r1, r0 + beq _0805F7AA +_0805F7BA: + adds r3, r2, #0 + cmp r3, #7 + bhi _0805F7D2 + b _0805F7CA +_0805F7C2: + lsls r1, r1, #4 + adds r2, #1 + cmp r2, #7 + bhi _0805F7D2 +_0805F7CA: + adds r0, r4, #0 + ands r0, r1 + cmp r1, r0 + bne _0805F7C2 +_0805F7D2: + subs r2, r2, r3 + lsls r0, r2, #8 + orrs r0, r3 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805F7DC +sub_0805F7DC: @ 0x0805F7DC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + ldrh r0, [r4, #4] + ldrh r1, [r4, #6] + cmp r0, r1 + bhi _0805F7EE + movs r0, #0 + b _0805F81E +_0805F7EE: + adds r0, r6, #0 + bl sub_0805F25C + adds r5, r0, #0 + ldrh r7, [r4, #6] + lsrs r0, r6, #8 + cmp r0, #4 + bls _0805F808 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805F820 + adds r5, #0x40 +_0805F808: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0805F820 + ldrh r1, [r4, #4] + ldrh r0, [r4, #6] + cmp r0, r1 + bls _0805F81A + strh r1, [r4, #6] +_0805F81A: + ldrh r0, [r4, #6] + subs r0, r0, r7 +_0805F81E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F820 +sub_0805F820: @ 0x0805F820 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + adds r4, r1, #0 + ldrh r0, [r7, #4] + ldrh r1, [r7, #6] + subs r0, r0, r1 + cmp r0, #0 + ble _0805F8DC + ldr r1, _0805F854 @ =gUnk_02036A58 + adds r0, r4, #0 + bl sub_08002724 + ldrb r0, [r7, #1] + cmp r0, #0 + bne _0805F858 + ldr r0, [r4] + bl sub_0805F7A0 + movs r1, #0xf + ands r1, r0 + lsrs r4, r0, #8 + b _0805F85C + .align 2, 0 +_0805F854: .4byte gUnk_02036A58 +_0805F858: + movs r1, #0 + movs r4, #8 +_0805F85C: + ldrh r0, [r7, #4] + ldrh r3, [r7, #6] + subs r0, r0, r3 + cmp r0, #8 + ble _0805F868 + movs r0, #8 +_0805F868: + cmp r0, r4 + bge _0805F86E + adds r4, r0, #0 +_0805F86E: + ldr r0, _0805F8BC @ =gUnk_02036A58 + adds r6, r1, r0 + ldr r0, [r7, #8] + mov sb, r0 + ldrb r0, [r7, #3] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #6 + ldrb r0, [r7, #2] + lsls r0, r0, #5 + ldr r1, _0805F8C0 @ =gUnk_0810942E + adds r0, r0, r1 + adds r2, r2, r0 + mov r8, r2 + adds r5, r3, #0 + adds r0, r5, r4 + strh r0, [r7, #6] + ldrb r0, [r7] + lsrs r0, r0, #4 + cmp r0, #1 + beq _0805F8D4 + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + ble _0805F8DC +_0805F8A0: + adds r0, r6, #0 + mov r1, sb + mov r2, r8 + adds r3, r5, #0 + bl sub_080026C4 + adds r6, #1 + adds r5, #1 + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + bgt _0805F8A0 + b _0805F8DC + .align 2, 0 +_0805F8BC: .4byte gUnk_02036A58 +_0805F8C0: .4byte gUnk_0810942E +_0805F8C4: + adds r0, r6, #0 + mov r1, sb + mov r2, r8 + adds r3, r5, #0 + bl sub_080026F2 + adds r6, #1 + adds r5, #1 +_0805F8D4: + adds r0, r4, #0 + subs r4, #1 + cmp r0, #0 + bgt _0805F8C4 +_0805F8DC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0805F8E4 +sub_0805F8E4: @ 0x0805F8E4 + push {r4, r5, lr} + adds r4, r1, #0 + ldrb r5, [r4, #1] + movs r1, #1 + strb r1, [r4, #1] + adds r1, r4, #0 + bl sub_0805F7DC + strb r5, [r4, #1] + pop {r4, r5, pc} + + thumb_func_start sub_0805F8F8 +sub_0805F8F8: @ 0x0805F8F8 + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #6 + ldr r0, _0805F910 @ =gUnk_081094CE + adds r1, r1, r0 + ldr r2, _0805F914 @ =gUnk_0810926C + ldrb r0, [r1, #0xa] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + bx lr + .align 2, 0 +_0805F910: .4byte gUnk_081094CE +_0805F914: .4byte gUnk_0810926C + + thumb_func_start sub_0805F918 +sub_0805F918: @ 0x0805F918 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r4, r0, #0 + adds r5, r1, #0 + mov sl, r2 + adds r0, r5, #0 + bl sub_0805F8F8 + ldr r1, _0805F990 @ =gUnk_02036AD8 + movs r2, #0xe0 + bl sub_0801D610 + ldr r0, _0805F994 @ =gUnk_081092AC + lsls r4, r4, #2 + adds r4, r4, r0 + ldr r4, [r4] + mov r8, r4 + lsls r0, r5, #1 + adds r0, r0, r5 + lsls r0, r0, #6 + ldr r1, _0805F998 @ =gUnk_081094CE + adds r0, r0, r1 + mov sb, r0 + movs r7, #0 + movs r6, #0 +_0805F950: + ldr r4, _0805F99C @ =gUnk_02036A58 + mov r0, r8 + adds r1, r4, #0 + bl sub_08002724 + movs r0, #0x40 + add r8, r0 + movs r5, #0 + adds r6, #1 +_0805F962: + adds r0, r4, #0 + ldr r1, _0805F990 @ =gUnk_02036AD8 + mov r2, sb + adds r3, r7, #0 + bl sub_080026C4 + adds r4, #1 + adds r7, #1 + adds r5, #1 + cmp r5, #7 + bls _0805F962 + cmp r6, #2 + bls _0805F950 + ldr r0, _0805F990 @ =gUnk_02036AD8 + mov r1, sl + movs r2, #0xe0 + bl sub_08000E96 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805F990: .4byte gUnk_02036AD8 +_0805F994: .4byte gUnk_081092AC +_0805F998: .4byte gUnk_081094CE +_0805F99C: .4byte gUnk_02036A58 + + thumb_func_start sub_0805F9A0 +sub_0805F9A0: @ 0x0805F9A0 + push {lr} + adds r2, r0, #0 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + cmp r0, #0 + bne _0805F9D0 + ldr r1, _0805F9C4 @ =gUnk_081092D4 + movs r3, #0 +_0805F9B2: + ldrh r0, [r1] + cmp r0, r2 + beq _0805F9C8 + adds r3, #1 + adds r1, #2 + ldrh r0, [r1] + cmp r0, #0 + bne _0805F9B2 + b _0805F9D8 + .align 2, 0 +_0805F9C4: .4byte gUnk_081092D4 +_0805F9C8: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r3, r1 + b _0805F9E2 +_0805F9D0: + ldr r0, _0805F9E4 @ =0x0000031A + cmp r2, r0 + bne _0805F9D8 + movs r2, #1 +_0805F9D8: + movs r0, #0xff + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r0, r1 +_0805F9E2: + pop {pc} + .align 2, 0 +_0805F9E4: .4byte 0x0000031A + + thumb_func_start sub_0805F9E8 +sub_0805F9E8: @ 0x0805F9E8 + push {lr} + ldr r1, _0805F9FC @ =gUnk_08109A30 + ldr r0, _0805FA00 @ =gUnk_03001000 + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + pop {pc} + .align 2, 0 +_0805F9FC: .4byte gUnk_08109A30 +_0805FA00: .4byte gUnk_03001000 + + thumb_func_start sub_0805FA04 +sub_0805FA04: @ 0x0805FA04 + push {r4, r5, lr} + movs r0, #1 + bl sub_0801DA90 + ldr r0, _0805FA78 @ =gUnk_02034CB0 + movs r1, #0x80 + lsls r1, r1, #4 + bl sub_0801D630 + ldr r0, _0805FA7C @ =gUnk_02001A40 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + ldr r0, _0805FA80 @ =gUnk_03000F50 + movs r2, #0 + movs r1, #0x94 + lsls r1, r1, #4 + strh r1, [r0] + strh r2, [r0, #0xa] + strh r2, [r0, #0xc] + strh r2, [r0, #0x2e] + strh r2, [r0, #0x30] + ldr r1, _0805FA84 @ =0x00001E0F + strh r1, [r0, #0x2c] + movs r5, #1 + movs r1, #1 + strh r1, [r0, #0x32] + bl sub_08056418 + ldr r0, _0805FA88 @ =gUnk_02032EC0 + movs r1, #0xed + lsls r1, r1, #2 + bl sub_0801D630 + ldr r4, _0805FA8C @ =gUnk_02000080 + adds r0, r4, #0 + movs r1, #0x30 + bl sub_0801D630 + movs r0, #0x80 + lsls r0, r0, #0x12 + ldrb r0, [r0, #7] + strb r0, [r4, #0x16] + bl sub_08053320 + ldr r1, _0805FA90 @ =0x00001144 + movs r0, #0 + bl sub_0801D79C + ldr r0, _0805FA94 @ =gUnk_03001000 + strb r5, [r0, #3] + bl sub_080A3210 + bl sub_08050008 + pop {r4, r5, pc} + .align 2, 0 +_0805FA78: .4byte gUnk_02034CB0 +_0805FA7C: .4byte gUnk_02001A40 +_0805FA80: .4byte gUnk_03000F50 +_0805FA84: .4byte 0x00001E0F +_0805FA88: .4byte gUnk_02032EC0 +_0805FA8C: .4byte gUnk_02000080 +_0805FA90: .4byte 0x00001144 +_0805FA94: .4byte gUnk_03001000 + + thumb_func_start sub_0805FA98 +sub_0805FA98: @ 0x0805FA98 + push {r4, lr} + ldr r0, _0805FAB4 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #0x80 + beq _0805FAD8 + cmp r1, #0x80 + bgt _0805FAB8 + cmp r1, #2 + beq _0805FB44 + cmp r1, #0x40 + beq _0805FACA + b _0805FB4A + .align 2, 0 +_0805FAB4: .4byte gUnk_03000FF0 +_0805FAB8: + movs r0, #0x80 + lsls r0, r0, #1 + cmp r1, r0 + beq _0805FB28 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r1, r0 + beq _0805FAE8 + b _0805FB4A +_0805FACA: + ldr r1, _0805FAD4 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + subs r0, #1 + strb r0, [r1, #0x11] + b _0805FBA4 + .align 2, 0 +_0805FAD4: .4byte gUnk_02000080 +_0805FAD8: + ldr r1, _0805FAE4 @ =gUnk_02000080 + ldrb r0, [r1, #0x11] + adds r0, #1 + strb r0, [r1, #0x11] + b _0805FBA4 + .align 2, 0 +_0805FAE4: .4byte gUnk_02000080 +_0805FAE8: + ldr r0, _0805FB04 @ =gUnk_02000080 + ldrb r1, [r0, #0x10] + movs r2, #1 + eors r1, r2 + strb r1, [r0, #0x10] + cmp r1, #0 + bne _0805FB10 + ldr r0, _0805FB08 @ =gUnk_03000F50 + ldr r1, _0805FB0C @ =0x00001F0C + strh r1, [r0, #8] + subs r1, #0xfd + strh r1, [r0, #0x2c] + b _0805FBA4 + .align 2, 0 +_0805FB04: .4byte gUnk_02000080 +_0805FB08: .4byte gUnk_03000F50 +_0805FB0C: .4byte 0x00001F0C +_0805FB10: + ldr r0, _0805FB1C @ =gUnk_03000F50 + ldr r1, _0805FB20 @ =0x00001F0F + strh r1, [r0, #8] + ldr r1, _0805FB24 @ =0x00001E0C + strh r1, [r0, #0x2c] + b _0805FBA4 + .align 2, 0 +_0805FB1C: .4byte gUnk_03000F50 +_0805FB20: .4byte 0x00001F0F +_0805FB24: .4byte 0x00001E0C +_0805FB28: + movs r2, #0x80 + lsls r2, r2, #0x12 + ldr r1, _0805FB40 @ =gUnk_02000080 + ldrb r0, [r1, #0x16] + strb r0, [r2, #7] + ldrb r0, [r1, #0x14] + lsls r0, r0, #8 + ldrb r1, [r1, #0x15] + adds r0, r0, r1 + bl sub_08056378 + b _0805FBA4 + .align 2, 0 +_0805FB40: .4byte gUnk_02000080 +_0805FB44: + bl sub_08056418 + b _0805FBA4 +_0805FB4A: + ldrh r0, [r2, #4] + cmp r0, #0x10 + beq _0805FB5A + cmp r0, #0x20 + bne _0805FB5E + movs r1, #1 + rsbs r1, r1, #0 + b _0805FB60 +_0805FB5A: + movs r1, #1 + b _0805FB60 +_0805FB5E: + movs r1, #0 +_0805FB60: + ldr r4, _0805FB74 @ =gUnk_02000080 + ldrb r0, [r4, #0x11] + cmp r0, #1 + beq _0805FB8E + cmp r0, #1 + bgt _0805FB78 + cmp r0, #0 + beq _0805FB7E + b _0805FBA4 + .align 2, 0 +_0805FB74: .4byte gUnk_02000080 +_0805FB78: + cmp r0, #2 + beq _0805FB96 + b _0805FBA4 +_0805FB7E: + ldrb r0, [r4, #0x14] + adds r0, r0, r1 + adds r0, #0x50 + movs r1, #0x50 + bl __modsi3 + strb r0, [r4, #0x14] + b _0805FBA4 +_0805FB8E: + ldrb r0, [r4, #0x15] + adds r0, r0, r1 + strb r0, [r4, #0x15] + b _0805FBA4 +_0805FB96: + ldrb r0, [r4, #0x16] + adds r0, r0, r1 + adds r0, #7 + movs r1, #7 + bl __modsi3 + strb r0, [r4, #0x16] +_0805FBA4: + ldr r4, _0805FBBC @ =gUnk_02000080 + ldrb r0, [r4, #0x11] + adds r0, #3 + movs r1, #3 + bl __modsi3 + strb r0, [r4, #0x11] + ldr r1, _0805FBC0 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0x32] + pop {r4, pc} + .align 2, 0 +_0805FBBC: .4byte gUnk_02000080 +_0805FBC0: .4byte gUnk_03000F50 + + thumb_func_start sub_0805FBC4 +sub_0805FBC4: @ 0x0805FBC4 + push {lr} + movs r0, #0 + bl sub_08056010 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0805FBD0 +sub_0805FBD0: @ 0x0805FBD0 + push {lr} + ldr r2, _0805FBE4 @ =gUnk_08109AC8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805FBE4: .4byte gUnk_08109AC8 + + thumb_func_start sub_0805FBE8 +sub_0805FBE8: @ 0x0805FBE8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0805FC68 @ =gLinkEntity + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA24 + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + 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 r4, #0x3c + ldrb r0, [r4] + adds r0, #1 + adds r1, r5, #0 + adds r1, #0x3c + strb r0, [r1] + ldr r0, _0805FC6C @ =gUnk_08109AD0 + str r0, [r5, #0x48] + movs r0, #0xe0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + ldrb r1, [r5, #0x14] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _0805FC36 + movs r0, #1 + strb r0, [r5, #0xb] +_0805FC36: + ldrb r1, [r5, #0x14] + lsls r0, r1, #2 + strb r0, [r5, #0x15] + movs r0, #0x3c + str r0, [r5, #0x6c] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x19 + adds r1, #0xc + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0801766C + adds r0, r5, #0 + bl sub_0806F69C + adds r0, r5, #0 + bl sub_0805FC74 + ldr r0, _0805FC70 @ =0x0000013F + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_0805FC68: .4byte gLinkEntity +_0805FC6C: .4byte gUnk_08109AD0 +_0805FC70: .4byte 0x0000013F + + thumb_func_start sub_0805FC74 +sub_0805FC74: @ 0x0805FC74 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x6c] + subs r0, #1 + str r0, [r4, #0x6c] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0805FD1C + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xb] + cmp r0, #0 + bne _0805FCA4 + adds r0, r4, #0 + bl sub_0800451C +_0805FCA4: + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0805FD10 @ =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 + ldr r1, _0805FD14 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _0805FCF6 + ldr r1, _0805FD18 @ =gUnk_08003E44 + movs r0, #0x2e + ldrsh r2, [r4, r0] + movs r5, #0x32 + ldrsh r3, [r4, r5] + adds r0, r4, #0 + bl sub_080040D8 + cmp r0, #0 + beq _0805FCF6 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl CreateFX + bl sub_0805E780 +_0805FCF6: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _0805FD20 + adds r0, r4, #0 + movs r1, #0x19 + movs r2, #0 + bl CreateFX + bl sub_0805E780 + b _0805FD20 + .align 2, 0 +_0805FD10: .4byte gUnk_03000BF0 +_0805FD14: .4byte gLinkEntity +_0805FD18: .4byte gUnk_08003E44 +_0805FD1C: + bl sub_0805E780 +_0805FD20: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0805FD24 +sub_0805FD24: @ 0x0805FD24 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0805FD72 + cmp r0, #1 + bgt _0805FD38 + cmp r0, #0 + beq _0805FD3E + b _0805FDBC +_0805FD38: + cmp r0, #2 + beq _0805FDAE + b _0805FDBC +_0805FD3E: + 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 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + b _0805FDBC +_0805FD72: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0805FDA4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0805FDA0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0805FDBC + .align 2, 0 +_0805FDA0: .4byte gLinkEntity +_0805FDA4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0805FDBC +_0805FDAE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0805FDBC + movs r0, #1 + strb r0, [r4, #0xc] +_0805FDBC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805FDC0 +sub_0805FDC0: @ 0x0805FDC0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805FDEE + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xa + bl sub_080042AC + b _0805FDF4 +_0805FDEE: + adds r0, r4, #0 + bl sub_080042B8 +_0805FDF4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805FDF8 +sub_0805FDF8: @ 0x0805FDF8 + push {lr} + ldr r2, _0805FE0C @ =gUnk_08109BBC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0805FE0C: .4byte gUnk_08109BBC + + thumb_func_start sub_0805FE10 +sub_0805FE10: @ 0x0805FE10 + 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 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_0805FE48 +sub_0805FE48: @ 0x0805FE48 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0805FE80 + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + ldr r1, _0805FE7C @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_080042AC + adds r0, r5, #0 + bl sub_0806F118 + b _0805FF14 + .align 2, 0 +_0805FE7C: .4byte gLinkEntity +_0805FE80: + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_0805FF2C + adds r0, r5, #0 + adds r0, #0x80 + ldrh r3, [r0] + adds r7, r0, #0 + adds r6, r5, #0 + adds r6, #0x82 + cmp r3, #7 + bhi _0805FEC6 + ldrh r1, [r6] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0805FEBA + movs r1, #0xfc + ands r1, r3 + ldrb r0, [r5, #0xf] + lsrs r0, r0, #1 + adds r3, r1, r0 + b _0805FEC6 +_0805FEBA: + movs r0, #0xfc + ands r0, r3 + ldrb r2, [r5, #0x14] + lsrs r1, r2, #1 + adds r3, r0, r1 + strb r2, [r5, #0xf] +_0805FEC6: + adds r4, r5, #0 + adds r4, #0x58 + ldrb r0, [r4] + cmp r3, r0 + beq _0805FED8 + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_080042AC +_0805FED8: + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0805FF02 + ldrb r0, [r4] + cmp r0, #8 + beq _0805FEFE + cmp r0, #8 + blt _0805FF02 + cmp r0, #0xc + bgt _0805FF02 + cmp r0, #0xa + blt _0805FF02 +_0805FEFE: + movs r0, #0 + strh r0, [r7] +_0805FF02: + ldrh r1, [r6] + mvns r0, r1 + adds r0, #1 + ands r1, r0 + cmp r1, #2 + bne _0805FF14 + adds r0, r5, #0 + bl sub_0806ED78 +_0805FF14: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0805FF18 +sub_0805FF18: @ 0x0805FF18 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0805FF28 + movs r0, #1 + strb r0, [r4, #0xc] +_0805FF28: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805FF2C +sub_0805FF2C: @ 0x0805FF2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r0, [r5, #8] + ldr r1, _0805FF60 @ =0xFFF00004 + ands r1, r0 + eors r0, r1 + str r0, [r5, #8] + cmp r1, #0 + beq _0805FF94 + movs r6, #0x80 + lsls r6, r6, #0xd + adds r3, r4, #0 + adds r3, #0x80 +_0805FF48: + mvns r0, r1 + adds r2, r0, #1 + ands r2, r1 + eors r1, r2 + cmp r2, r6 + beq _0805FF8C + cmp r2, r6 + bhi _0805FF64 + cmp r2, #4 + beq _0805FF76 + b _0805FF90 + .align 2, 0 +_0805FF60: .4byte 0xFFF00004 +_0805FF64: + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r2, r0 + beq _0805FF7A + movs r0, #0x80 + lsls r0, r0, #0xf + cmp r2, r0 + beq _0805FF7E + b _0805FF90 +_0805FF76: + movs r0, #9 + b _0805FF8E +_0805FF7A: + movs r0, #0xa + b _0805FF8E +_0805FF7E: + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _0805FF88 + movs r0, #0xb + b _0805FF8E +_0805FF88: + movs r0, #0xc + b _0805FF8E +_0805FF8C: + movs r0, #8 +_0805FF8E: + strh r0, [r3] +_0805FF90: + cmp r1, #0 + bne _0805FF48 +_0805FF94: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DB98 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0805FFA0 +sub_0805FFA0: @ 0x0805FFA0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0805FFCE + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + b _0805FFD4 +_0805FFCE: + adds r0, r4, #0 + bl sub_080042B8 +_0805FFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0805FFD8 +sub_0805FFD8: @ 0x0805FFD8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _08060044 + cmp r5, #1 + bgt _0805FFEC + cmp r5, #0 + beq _0805FFF2 + b _0806008C +_0805FFEC: + cmp r5, #2 + beq _0806007E + b _0806008C +_0805FFF2: + ldr r1, _0806003C @ =gUnk_0810A348 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806008C + 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 r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + strb r5, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + ldr r1, _08060040 @ =gUnk_08109D18 + ldrb r0, [r4, #0xb] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0807DAD0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806008C + .align 2, 0 +_0806003C: .4byte gUnk_0810A348 +_08060040: .4byte gUnk_08109D18 +_08060044: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806005E + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806008C +_0806005E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0xf0 + beq _0806008C + adds r0, r4, #0 + bl sub_080600F0 + b _0806008C +_0806007E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806008C + movs r0, #1 + strb r0, [r4, #0xc] +_0806008C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08060090 +sub_08060090: @ 0x08060090 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_080600A8 +sub_080600A8: @ 0x080600A8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + cmp r2, #0xff + beq _080600BA + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 +_080600BA: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _080600CA + movs r2, #0xff +_080600CA: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080600F0 +sub_080600F0: @ 0x080600F0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x80 + ldrh r3, [r0] + cmp r3, #7 + bhi _08060120 + adds r0, #2 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08060114 + movs r1, #0xfc + ands r1, r3 + ldrb r0, [r4, #0xf] + lsrs r0, r0, #1 + adds r3, r1, r0 + b _08060120 +_08060114: + movs r0, #0xfc + ands r0, r3 + ldrb r2, [r4, #0x14] + lsrs r1, r2, #1 + adds r3, r0, r1 + strb r2, [r4, #0xf] +_08060120: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r3, r0 + beq _08060132 + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_080042AC +_08060132: + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + movs r1, #1 + cmp r0, #0 + beq _08060144 + movs r1, #2 +_08060144: + adds r0, r4, #0 + bl sub_080042BA + pop {r4, pc} + + thumb_func_start sub_0806014C +sub_0806014C: @ 0x0806014C + push {lr} + movs r1, #0 + strb r1, [r0, #0xe] + bl sub_08060158 + pop {pc} + + thumb_func_start sub_08060158 +sub_08060158: @ 0x08060158 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806016A + subs r0, #1 + strb r0, [r4, #0xe] + b _080601CC +_0806016A: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _08060188 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r4, #0x14] + lsls r3, r0, #2 +_08060188: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _080601D0 @ =gUnk_08109C98 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _080601AC + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_080601AC: + movs r0, #0x7f + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x5b + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + subs r1, #2 + movs r0, #0xf0 + strb r0, [r1] +_080601CC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080601D0: .4byte gUnk_08109C98 + + thumb_func_start sub_080601D4 +sub_080601D4: @ 0x080601D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #4 + bl GetProgressFlag + cmp r0, #0 + bne _080601E6 + movs r1, #2 + b _080601F2 +_080601E6: + movs r0, #0x17 + bl sub_0801E7F4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f +_080601F2: + ldr r0, _08060204 @ =gUnk_0810A354 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_08060204: .4byte gUnk_0810A354 + + thumb_func_start sub_08060208 +sub_08060208: @ 0x08060208 + push {lr} + ldrb r1, [r0, #0xb] + lsls r1, r1, #5 + ldr r2, _08060218 @ =gUnk_08109DC8 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08060218: .4byte gUnk_08109DC8 + + thumb_func_start sub_0806021C +sub_0806021C: @ 0x0806021C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x5b + bl sub_0807CA84 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x40 + bl sub_0807CA84 + cmp r0, #0 + beq _08060238 + movs r4, #2 +_08060238: + movs r0, #0x13 + bl sub_0807CA84 + cmp r0, #0 + beq _08060244 + movs r4, #3 +_08060244: + ldrb r1, [r5, #0xb] + lsls r1, r1, #5 + lsls r0, r4, #3 + ldr r2, _08060258 @ =gUnk_08109DC8 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806F1AC + pop {r4, r5, pc} + .align 2, 0 +_08060258: .4byte gUnk_08109DC8 + + thumb_func_start sub_0806025C +sub_0806025C: @ 0x0806025C + push {lr} + ldrb r1, [r0, #0xb] + lsls r1, r1, #5 + ldr r2, _0806026C @ =gUnk_08109DC8 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806026C: .4byte gUnk_08109DC8 + + thumb_func_start sub_08060270 +sub_08060270: @ 0x08060270 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _08060294 + movs r4, #1 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + bne _080602A8 + movs r4, #0 + movs r0, #0x29 + bl sub_0807CD04 + b _080602A8 +_08060294: + movs r4, #3 + movs r0, #0x76 + bl sub_0807CBD0 + cmp r0, #0 + bne _080602A8 + movs r4, #2 + movs r0, #0x76 + bl sub_0807CCB4 +_080602A8: + ldr r0, _080602B8 @ =gUnk_0810A35A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_080602B8: .4byte gUnk_0810A35A + + thumb_func_start sub_080602BC +sub_080602BC: @ 0x080602BC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #0 + beq _080602D6 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + adds r2, r1, #2 + b _080602F0 +_080602D6: + ldr r0, _08060300 @ =gUnk_02002A40 + adds r2, r0, #0 + adds r2, #0xac + ldr r1, _08060304 @ =gUnk_080FD5A0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r2] + movs r2, #0 + ldrb r0, [r0] + cmp r1, r0 + bhs _080602F0 + movs r2, #1 +_080602F0: + ldr r0, _08060308 @ =gUnk_0810A362 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_08060300: .4byte gUnk_02002A40 +_08060304: .4byte gUnk_080FD5A0 +_08060308: .4byte gUnk_0810A362 + + thumb_func_start sub_0806030C +sub_0806030C: @ 0x0806030C + push {lr} + ldr r0, [r1, #4] + bl sub_080542F4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08060318 +sub_08060318: @ 0x08060318 + push {r4, r5, lr} + movs r5, #2 +_0806031C: + movs r0, #8 + movs r1, #2 + movs r2, #2 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08060336 + bl sub_080A29BC + adds r0, r4, #0 + bl sub_0805E7BC +_08060336: + subs r5, #1 + cmp r5, #0 + bge _0806031C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08060340 +sub_08060340: @ 0x08060340 + ldr r0, _08060350 @ =gUnk_02002A40 + movs r2, #0x92 + lsls r2, r2, #3 + adds r1, r0, r2 + ldr r0, [r0, #0x50] + str r0, [r1] + bx lr + .align 2, 0 +_08060350: .4byte gUnk_02002A40 + + thumb_func_start sub_08060354 +sub_08060354: @ 0x08060354 + push {r4, lr} + ldr r0, _08060378 @ =gUnk_02002A40 + movs r2, #0x92 + lsls r2, r2, #3 + adds r1, r0, r2 + ldr r2, [r0, #0x50] + ldr r0, [r1] + subs r4, r2, r0 + movs r0, #0x3b + bl GetProgressFlag + cmp r0, #0 + bne _08060380 + cmp r4, #4 + ble _080603B0 + ldr r0, _0806037C @ =0x00008444 + b _080603B2 + .align 2, 0 +_08060378: .4byte gUnk_02002A40 +_0806037C: .4byte 0x00008444 +_08060380: + movs r0, #0x3c + bl GetProgressFlag + cmp r0, #0 + bne _08060398 + cmp r4, #9 + ble _080603B0 + ldr r0, _08060394 @ =0x00008444 + b _080603B2 + .align 2, 0 +_08060394: .4byte 0x00008444 +_08060398: + movs r0, #0x3d + bl GetProgressFlag + cmp r0, #0 + bne _080603B0 + cmp r4, #0xe + ble _080603B0 + ldr r0, _080603AC @ =0x00008444 + b _080603B2 + .align 2, 0 +_080603AC: .4byte 0x00008444 +_080603B0: + movs r0, #0 +_080603B2: + pop {r4, pc} + + thumb_func_start sub_080603B4 +sub_080603B4: @ 0x080603B4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080603F4 + ldr r1, _080603F0 @ =gUnk_0810A348 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080603FA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #6 + bl sub_08004260 + b _080603FA + .align 2, 0 +_080603F0: .4byte gUnk_0810A348 +_080603F4: + adds r0, r4, #0 + bl sub_08004274 +_080603FA: + pop {r4, pc} + + thumb_func_start sub_080603FC +sub_080603FC: @ 0x080603FC + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08060412 + adds r0, r2, #0 + bl sub_08060528 + b _08060422 +_08060412: + ldr r0, _08060424 @ =gUnk_0810AA24 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08060422: + pop {pc} + .align 2, 0 +_08060424: .4byte gUnk_0810AA24 + + thumb_func_start sub_08060428 +sub_08060428: @ 0x08060428 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x5a + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _08060444 + bl sub_0804B128 + adds r1, r0, #0 + b _08060446 +_08060444: + movs r1, #0 +_08060446: + adds r0, r4, #0 + movs r2, #0 + bl sub_0806EE04 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_0806045C +sub_0806045C: @ 0x0806045C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080604DC + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bgt _08060488 + cmp r0, #1 + blt _08060488 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08056378 + b _080604C0 +_08060488: + adds r0, r4, #0 + adds r0, #0x3e + ldrb r1, [r0] + ldrb r0, [r4, #0x14] + cmp r1, r0 + beq _0806049E + strb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_0806049E: + adds r0, r4, #0 + movs r1, #0x18 + movs r2, #0x18 + bl sub_0806ED9C + movs r1, #0 + cmp r0, #0 + blt _080604B6 + ldrb r2, [r4, #0x14] + cmp r0, r2 + bne _080604B6 + movs r1, #1 +_080604B6: + cmp r1, #0 + bne _080604C0 + adds r0, r4, #0 + bl sub_0806EE20 +_080604C0: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + + thumb_func_start sub_080604C8 +sub_080604C8: @ 0x080604C8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080604DC + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + + thumb_func_start sub_080604DC +sub_080604DC: @ 0x080604DC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + lsrs r4, r0, #0x1e + cmp r4, #1 + bne _08060524 + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + beq _08060524 + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + ands r4, r1 + cmp r4, #0 + beq _08060524 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08060524 + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] + adds r0, r1, #0 + movs r1, #3 + bl sub_0805E3A0 +_08060524: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08060528 +sub_08060528: @ 0x08060528 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _08060582 + cmp r3, #1 + bgt _0806053C + cmp r3, #0 + beq _08060546 + b _080605EC +_0806053C: + cmp r3, #2 + beq _080605F6 + cmp r3, #3 + beq _08060618 + b _080605EC +_08060546: + 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 + adds r0, #0x68 + strb r3, [r0] + adds r0, #1 + strb r3, [r0] + adds r5, r4, #0 + adds r5, #0x6a + movs r0, #0 + strh r3, [r5] + adds r6, r4, #0 + adds r6, #0x6d + strb r0, [r6] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6c + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + b _08060634 +_08060582: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _080605B8 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_0806F118 + ldr r1, _080605B4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _080605EC + .align 2, 0 +_080605B4: .4byte gLinkEntity +_080605B8: + cmp r0, #0 + beq _080605E4 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_080606D8 + ldr r1, _080605E0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _080605EC + .align 2, 0 +_080605E0: .4byte gLinkEntity +_080605E4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_080605EC: + adds r5, r4, #0 + adds r5, #0x6a + adds r6, r4, #0 + adds r6, #0x6d + b _08060634 +_080605F6: + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, _08060614 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + adds r5, r4, #0 + adds r5, #0x6a + adds r6, r4, #0 + adds r6, #0x6d + cmp r0, #0 + bne _08060634 + b _08060630 + .align 2, 0 +_08060614: .4byte gUnk_02000050 +_08060618: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F148 + adds r5, r4, #0 + adds r5, #0x6a + adds r6, r4, #0 + adds r6, #0x6d + cmp r0, #0 + beq _08060634 +_08060630: + movs r0, #1 + strb r0, [r4, #0xc] +_08060634: + adds r0, r4, #0 + bl sub_080604DC + adds r1, r5, #0 + ldrh r3, [r1] + movs r0, #0 + ldrsh r2, [r1, r0] + cmp r2, #0 + ble _08060670 + ldr r0, _08060668 @ =0x0000012B + cmp r2, r0 + ble _0806066C + movs r0, #0 + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #1 + strb r0, [r6] + adds r0, r4, #0 + bl sub_080788E0 + movs r0, #0x7c + bl sub_08004488 + b _08060670 + .align 2, 0 +_08060668: .4byte 0x0000012B +_0806066C: + subs r0, r3, #1 + strh r0, [r5] +_08060670: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r4, #0 + bl sub_08003FC4 + ldrb r0, [r6] + cmp r0, #0 + beq _08060694 + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _08060694 + ldr r0, [r4, #0x34] + cmp r0, #0 + bne _08060694 + strb r0, [r6] + adds r0, r4, #0 + bl sub_080606C0 +_08060694: + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _080606B4 + ldr r0, _080606BC @ =gLinkEntity + adds r0, #0x38 + ldrb r1, [r0] + cmp r1, #0 + beq _080606AE + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, r1 + bne _080606B4 +_080606AE: + adds r0, r4, #0 + bl sub_0806ED78 +_080606B4: + adds r0, r4, #0 + bl sub_0800451C + pop {r4, r5, r6, pc} + .align 2, 0 +_080606BC: .4byte gLinkEntity + + thumb_func_start sub_080606C0 +sub_080606C0: @ 0x080606C0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6c + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_080606D8 +sub_080606D8: @ 0x080606D8 + push {lr} + adds r2, r0, #0 + ldr r0, _080606F8 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _080606E8 + movs r0, #0 +_080606E8: + lsls r1, r0, #3 + ldr r0, _080606FC @ =gUnk_0810AA30 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080606F8: .4byte gUnk_02002A40 +_080606FC: .4byte gUnk_0810AA30 + + thumb_func_start sub_08060700 +sub_08060700: @ 0x08060700 + push {r4, r5, lr} + ldr r3, _0806074C @ =gUnk_0810A918 + adds r2, r0, #0 + adds r2, #0x68 + ldrb r2, [r2] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + adds r3, r0, #0 + adds r3, #0x69 + ldrb r3, [r3] + lsls r3, r3, #0x18 + asrs r3, r3, #0x18 + adds r2, r2, r3 + movs r3, #0 + ldrsb r3, [r2, r3] + lsls r3, r3, #2 + ldr r2, _08060750 @ =gUnk_0810A66C + adds r3, r3, r2 + ldr r4, _08060754 @ =gUnk_03000BF0 + movs r5, #0 + ldrsh r2, [r3, r5] + ldrh r5, [r4, #6] + adds r2, r2, r5 + movs r5, #2 + ldrsh r3, [r3, r5] + ldrh r4, [r4, #8] + adds r3, r3, r4 + bl sub_0807DEDC + ldr r2, _08060758 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806074C: .4byte gUnk_0810A918 +_08060750: .4byte gUnk_0810A66C +_08060754: .4byte gUnk_03000BF0 +_08060758: .4byte gUnk_02033280 + + thumb_func_start sub_0806075C +sub_0806075C: @ 0x0806075C + adds r2, r0, #0 + adds r2, #0x68 + movs r1, #0xb + strb r1, [r2] + adds r0, #0x69 + movs r1, #0xff + strb r1, [r0] + bx lr + + thumb_func_start sub_0806076C +sub_0806076C: @ 0x0806076C + 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 + mov sb, r1 + ldr r0, [r7, #0x34] + cmp r0, #0 + bge _08060790 + ldr r1, _0806078C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _080608D8 + .align 2, 0 +_0806078C: .4byte gUnk_02033280 +_08060790: + adds r4, r7, #0 + adds r4, #0x69 + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + adds r5, r7, #0 + adds r5, #0x38 + movs r0, #1 + strb r0, [r5] + adds r0, r7, #0 + bl sub_080606C0 + ldr r1, _080607DC @ =gUnk_0810A918 + adds r2, r7, #0 + adds r2, #0x68 + movs r0, #0 + ldrsb r0, [r2, r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r6, [r0] + movs r0, #0 + ldrsb r0, [r4, r0] + adds r6, r6, r0 + mov sl, r4 + mov r8, r2 +_080607C2: + ldrb r0, [r6] + adds r0, #5 + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #5 + bls _080607D0 + b _080608D8 +_080607D0: + lsls r0, r0, #2 + ldr r1, _080607E0 @ =_080607E4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080607DC: .4byte gUnk_0810A918 +_080607E0: .4byte _080607E4 +_080607E4: @ jump table + .4byte _08060846 @ case 0 + .4byte _08060836 @ case 1 + .4byte _08060830 @ case 2 + .4byte _0806082A @ case 3 + .4byte _0806081E @ case 4 + .4byte _080607FC @ case 5 +_080607FC: + adds r6, #1 + movs r5, #0 + ldrsb r5, [r6, r5] + adds r6, #1 + bl sub_08000E50 + adds r1, r5, #0 + bl __modsi3 + adds r0, r6, r0 + ldrb r0, [r0] + movs r1, #0 + mov r2, r8 + strb r0, [r2] + mov r3, sl + strb r1, [r3] + b _080608D8 +_0806081E: + adds r1, r7, #0 + adds r1, #0x6a + movs r0, #0x96 + lsls r0, r0, #1 + strh r0, [r1] + b _080608CC +_0806082A: + movs r0, #1 + strb r0, [r5] + b _080608CC +_08060830: + movs r0, #2 + strb r0, [r5] + b _080608CC +_08060836: + movs r0, #0x1e + mov r4, sb + strh r0, [r4, #0x10] + ldrb r1, [r7, #0x18] + subs r0, #0x22 + ands r0, r1 + strb r0, [r7, #0x18] + b _080608CC +_08060846: + adds r6, #1 + movs r5, #0 + ldrsb r5, [r6, r5] + adds r6, #1 + bl sub_08000E50 + adds r1, r5, #0 + bl __modsi3 + str r0, [sp, #4] + movs r2, #0 + cmp r2, r5 + bhs _080608B8 + ldr r0, _080608C0 @ =gUnk_03000BF0 + mov sb, r0 +_08060864: + ldr r1, [sp, #4] + adds r0, r6, r1 + ldrb r0, [r0] + mov r3, r8 + strb r0, [r3] + movs r0, #0 + ldrsb r0, [r3, r0] + lsls r0, r0, #2 + ldr r4, _080608C4 @ =gUnk_0810A918 + adds r0, r0, r4 + ldr r0, [r0] + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _080608C8 @ =gUnk_0810A66C + adds r1, r1, r0 + ldrh r0, [r1] + mov r3, sb + ldrh r3, [r3, #6] + adds r0, r0, r3 + strh r0, [r7, #0x2e] + ldrh r0, [r1, #2] + mov r4, sb + ldrh r4, [r4, #8] + adds r0, r0, r4 + strh r0, [r7, #0x32] + adds r0, r7, #0 + str r2, [sp] + bl sub_080040A8 + cmp r0, #0 + beq _080608B8 + ldr r0, [sp, #4] + adds r0, #1 + adds r1, r5, #0 + bl __modsi3 + str r0, [sp, #4] + ldr r2, [sp] + adds r2, #1 + cmp r2, r5 + blo _08060864 +_080608B8: + movs r0, #0 + mov r1, sl + strb r0, [r1] + b _080608D8 + .align 2, 0 +_080608C0: .4byte gUnk_03000BF0 +_080608C4: .4byte gUnk_0810A918 +_080608C8: .4byte gUnk_0810A66C +_080608CC: + mov r2, sl + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + adds r6, #1 + b _080607C2 +_080608D8: + 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_080608E4 +sub_080608E4: @ 0x080608E4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _08060970 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + ldr r6, _08060974 @ =gLinkEntity + cmp r1, #1 + bne _0806090A + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + beq _08060970 +_0806090A: + cmp r1, #2 + bne _08060918 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _08060970 +_08060918: + ldr r2, [r5, #4] + lsls r2, r2, #4 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + ldr r1, _08060978 @ =gUnk_0810AA70 + adds r0, r0, r1 + adds r2, r2, r0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + movs r7, #0x32 + ldrsh r3, [r4, r7] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r3, r3, r0 + movs r7, #0x2e + ldrsh r0, [r6, r7] + subs r1, r0, r1 + movs r7, #0x32 + ldrsh r0, [r6, r7] + subs r3, r0, r3 + movs r0, #2 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldrb r2, [r2, #3] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r3, r3, r2 + lsls r0, r0, #1 + cmp r0, r1 + bls _08060970 + lsls r0, r2, #1 + cmp r0, r3 + bls _08060970 + movs r0, #1 + str r0, [r5, #0x14] + adds r1, r4, #0 + adds r1, #0x6a + ldrh r0, [r1] + adds r0, #2 + strh r0, [r1] +_08060970: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08060974: .4byte gLinkEntity +_08060978: .4byte gUnk_0810AA70 + + thumb_func_start sub_0806097C +sub_0806097C: @ 0x0806097C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080609A2 + 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, #2 + bl sub_080042AC + b _080609A8 +_080609A2: + adds r0, r2, #0 + bl sub_080042B8 +_080609A8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080609AC +sub_080609AC: @ 0x080609AC + push {r4, lr} + movs r0, #0x1c + bl GetProgressFlag + cmp r0, #0 + beq _080609E0 + movs r0, #0x2e + movs r1, #0 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _080609E0 + ldr r0, _080609E4 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] +_080609E0: + pop {r4, pc} + .align 2, 0 +_080609E4: .4byte gLinkEntity + + thumb_func_start sub_080609E8 +sub_080609E8: @ 0x080609E8 + push {lr} + ldr r2, _080609FC @ =gUnk_0810AC1C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080609FC: .4byte gUnk_0810AC1C + + thumb_func_start sub_08060A00 +sub_08060A00: @ 0x08060A00 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _08060AD0 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08060A44 + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _08060A52 + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08060A44 + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + ldr r4, [r5, #0x64] + ldr r3, _08060AD4 @ =gLinkEntity + ldrh r2, [r3, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + adds r0, #8 + strh r0, [r4, #0xa] + ldr r2, [r5, #0x64] + ldrh r0, [r3, #0x32] + ands r1, r0 + adds r1, #8 + strh r1, [r2, #0xc] +_08060A44: + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _08060A52 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x1e + cmp r0, #0 + beq _08060A62 +_08060A52: + ldr r0, _08060AD8 @ =gUnk_0810AC2C + ldrb r1, [r5, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r5, #0 + bl _call_via_r1 +_08060A62: + ldrb r0, [r5, #0xc] + cmp r0, #0 + beq _08060A76 + ldr r1, [r5, #0x64] + ldr r2, _08060AD4 @ =gLinkEntity + ldrh r0, [r2, #0x2e] + strh r0, [r1, #2] + ldr r1, [r5, #0x64] + ldrh r0, [r2, #0x32] + strh r0, [r1, #4] +_08060A76: + adds r2, r5, #0 + adds r2, #0x74 + ldr r4, _08060ADC @ =gUnk_03000BF0 + ldrb r1, [r4, #5] + ldrh r0, [r2] + cmp r0, r1 + beq _08060ACE + strh r1, [r2] + ldr r0, _08060AD4 @ =gLinkEntity + adds r1, r5, #0 + bl sub_0806FA24 + 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] + movs r0, #0x90 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldrb r1, [r4, #0x10] + lsls r0, r1, #1 + strb r0, [r5, #0x14] + lsls r1, r1, #0x19 + lsrs r1, r1, #0x19 + adds r0, r5, #0 + bl sub_080042AC + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x80 + adds r1, r5, #0 + adds r1, #0x59 + strb r0, [r1] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_08060ACE: + pop {r4, r5, pc} + .align 2, 0 +_08060AD0: .4byte gUnk_03003F80 +_08060AD4: .4byte gLinkEntity +_08060AD8: .4byte gUnk_0810AC2C +_08060ADC: .4byte gUnk_03000BF0 + + thumb_func_start sub_08060AE0 +sub_08060AE0: @ 0x08060AE0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x14 + bl sub_0801D8E0 + adds r1, r0, #0 + cmp r1, #0 + beq _08060B54 + str r1, [r4, #0x64] + movs r0, #0x20 + strb r0, [r1, #1] + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r1, [r4, #0x14] + movs r2, #3 + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0x49 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x3b + strb r2, [r0] + ldr r0, _08060B58 @ =gUnk_080FD150 + str r0, [r4, #0x48] + ldrb r1, [r4, #0x17] + movs r0, #0xfe + ands r0, r1 + strb r0, [r4, #0x17] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0xff + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_08060E70 + movs r0, #5 + movs r1, #2 + movs r2, #0 + bl sub_0806ED50 + cmp r0, #0 + beq _08060B54 + str r4, [r0, #0x50] + str r0, [r4, #0x78] +_08060B54: + pop {r4, pc} + .align 2, 0 +_08060B58: .4byte gUnk_080FD150 + + thumb_func_start sub_08060B5C +sub_08060B5C: @ 0x08060B5C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08061230 + cmp r0, #0 + bne _08060B9E + adds r0, r4, #0 + bl sub_08060F80 + adds r5, r0, #0 + cmp r5, #0 + bne _08060B98 + ldr r1, _08060B94 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + ldrb r1, [r4, #0x14] + lsls r1, r1, #2 + subs r0, r0, r1 + adds r0, #4 + movs r1, #0x1f + ands r0, r1 + cmp r0, #8 + bhi _08060B98 + movs r0, #2 + strb r0, [r4, #0xc] + strb r5, [r4, #0xf] + b _08060B9E + .align 2, 0 +_08060B94: .4byte gLinkEntity +_08060B98: + adds r0, r4, #0 + bl sub_08060EDC +_08060B9E: + pop {r4, r5, pc} + + thumb_func_start sub_08060BA0 +sub_08060BA0: @ 0x08060BA0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08061230 + cmp r0, #0 + beq _08060BAE + b _08060D74 +_08060BAE: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08060C66 + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08060BF6 + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrh r1, [r2, #0xe] + ldrh r2, [r2, #0x10] + adds r0, r4, #0 + movs r3, #0xc + bl sub_08061120 + adds r0, r4, #0 + bl sub_08061170 + ldr r0, [r4, #0x64] + ldrh r1, [r0, #0xe] + ldrh r2, [r0, #0x10] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + bne _08060BEE + b _08060D54 +_08060BEE: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xf7 + b _08060D36 +_08060BF6: + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #0xc] + adds r0, r4, #0 + bl sub_08060FD0 + cmp r0, #0 + beq _08060C56 + ldr r0, [r4, #0x64] + ldrh r1, [r0, #0xa] + ldrh r2, [r0, #0xc] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08060C38 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r0, #5 + strb r0, [r4, #0xc] + ldrb r0, [r5, #0x15] + strb r0, [r4, #0x15] + movs r0, #0xb0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + movs r1, #8 + bl sub_08060E70 + b _08060D54 +_08060C38: + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + movs r3, #0xc + bl sub_08061120 + adds r0, r4, #0 + bl sub_08061170 + b _08060D54 +_08060C56: + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + bl sub_08061464 + b _08060D54 +_08060C66: + ldr r5, _08060C98 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + bl sub_08060FD0 + cmp r0, #0 + beq _08060C9C + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + bl sub_08061090 + adds r0, r4, #0 + bl sub_08061170 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xf5 + b _08060D36 + .align 2, 0 +_08060C98: .4byte gLinkEntity +_08060C9C: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08060CDA + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldrh r1, [r2, #0xe] + ldrh r2, [r2, #0x10] + adds r0, r4, #0 + movs r3, #0xc + bl sub_08061120 + adds r0, r4, #0 + bl sub_08061170 + ldr r0, [r4, #0x64] + ldrh r1, [r0, #0xe] + ldrh r2, [r0, #0x10] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08060D54 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xf7 + b _08060D36 +_08060CDA: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08060CF4 + movs r0, #2 + orrs r0, r1 + strb r0, [r2] + ldr r1, [r4, #0x64] + ldrh r0, [r1, #2] + strh r0, [r1, #6] + ldr r1, [r4, #0x64] + ldrh r0, [r1, #4] + strh r0, [r1, #8] +_08060CF4: + ldr r0, [r4, #0x64] + ldrh r1, [r0, #6] + ldrh r2, [r0, #8] + adds r0, r4, #0 + bl sub_08060FD0 + cmp r0, #0 + beq _08060D3C + movs r0, #0xf0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, [r4, #0x64] + ldrh r1, [r0, #6] + ldrh r2, [r0, #8] + adds r0, r4, #0 + movs r3, #0xc + bl sub_08061120 + adds r0, r4, #0 + bl sub_08061170 + ldr r0, [r4, #0x64] + ldrh r1, [r0, #6] + ldrh r2, [r0, #8] + adds r0, r4, #0 + movs r3, #4 + bl sub_0806FCB8 + cmp r0, #0 + beq _08060D54 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfd +_08060D36: + ands r0, r1 + strb r0, [r2] + b _08060D54 +_08060D3C: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfd + ands r0, r1 + strb r0, [r2] + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r0, #0x32 + ldrsh r2, [r5, r0] + adds r0, r4, #0 + bl sub_08061464 +_08060D54: + adds r0, r4, #0 + bl sub_08060F80 + cmp r0, #0 + beq _08060D74 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 +_08060D74: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08060D78 +sub_08060D78: @ 0x08060D78 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08061358 + adds r0, r4, #0 + bl sub_08060F80 + cmp r0, #0 + beq _08060DCE + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0xf + bhi _08060DC2 + adds r5, r4, #0 + adds r5, #0x5a + ldrb r1, [r5] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _08060DB2 + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_080042B8 +_08060DB2: + ldrb r1, [r5] + movs r0, #0x18 + ands r0, r1 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x6c + movs r0, #0xff + strb r0, [r1] +_08060DC2: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 +_08060DCE: + pop {r4, r5, pc} + + thumb_func_start sub_08060DD0 +sub_08060DD0: @ 0x08060DD0 + 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 _08060DF2 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 +_08060DF2: + pop {r4, pc} + + thumb_func_start sub_08060DF4 +sub_08060DF4: @ 0x08060DF4 + push {lr} + bl sub_08061170 + pop {pc} + + thumb_func_start sub_08060DFC +sub_08060DFC: @ 0x08060DFC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_08060E94 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08060E32 + movs r0, #7 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0x1c + bl sub_08060E70 +_08060E32: + pop {r4, pc} + + thumb_func_start sub_08060E34 +sub_08060E34: @ 0x08060E34 + 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 _08060E68 + movs r0, #2 + strb r0, [r4, #0xc] + ldr r1, _08060E6C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #8 + bl sub_08060E70 +_08060E68: + pop {r4, pc} + .align 2, 0 +_08060E6C: .4byte gLinkEntity + + thumb_func_start sub_08060E70 +sub_08060E70: @ 0x08060E70 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + adds r1, r3, r0 + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _08060E92 + adds r0, r2, #0 + adds r0, #0x6c + strb r3, [r0] + adds r0, r2, #0 + bl sub_080042AC +_08060E92: + pop {pc} + + thumb_func_start sub_08060E94 +sub_08060E94: @ 0x08060E94 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x58] + ldr r1, _08060ECC @ =0x0080FF00 + ands r0, r1 + ldr r1, _08060ED0 @ =0x00800100 + cmp r0, r1 + bne _08060ED4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + bhi _08060ED4 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x80 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + b _08060EDA + .align 2, 0 +_08060ECC: .4byte 0x0080FF00 +_08060ED0: .4byte 0x00800100 +_08060ED4: + adds r0, r4, #0 + bl sub_080042B8 +_08060EDA: + pop {r4, pc} + + thumb_func_start sub_08060EDC +sub_08060EDC: @ 0x08060EDC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0xf + bhi _08060F00 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08060F00 + adds r0, r4, #0 + bl sub_080042B8 + b _08060F7C +_08060F00: + ldr r1, _08060F30 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + ldrb r2, [r4, #0x14] + lsls r1, r2, #2 + subs r1, r0, r1 + adds r0, r1, #3 + movs r3, #0x1f + ands r0, r3 + cmp r0, #6 + ble _08060F4A + ands r1, r3 + cmp r1, #0xf + bgt _08060F34 + adds r1, r2, #0 + adds r1, #0x20 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0x14] + adds r0, #1 + b _08060F42 + .align 2, 0 +_08060F30: .4byte gLinkEntity +_08060F34: + adds r1, r2, #0 + adds r1, #0x28 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0x14] + subs r0, #1 +_08060F42: + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0x14] + b _08060F7C +_08060F4A: + movs r0, #1 + ands r2, r0 + cmp r2, #0 + bne _08060F7C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08060F76 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #0x20 + cmp r0, #0xf + bhi _08060F76 + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 + b _08060F7C +_08060F76: + adds r0, r4, #0 + bl sub_08060E94 +_08060F7C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08060F80 +sub_08060F80: @ 0x08060F80 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08060FC8 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r3, #0x32 + ldrsh r2, [r5, r3] + adds r0, r4, #0 + bl sub_08060FD0 + cmp r0, #0 + beq _08060FC2 + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + 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 + ldr r2, [r4, #0x64] + ldrb r2, [r2, #1] + bl sub_0806FCD0 + cmp r0, #0 + bne _08060FCC +_08060FC2: + movs r0, #0 + b _08060FCE + .align 2, 0 +_08060FC8: .4byte gLinkEntity +_08060FCC: + movs r0, #1 +_08060FCE: + pop {r4, r5, pc} + + thumb_func_start sub_08060FD0 +sub_08060FD0: @ 0x08060FD0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + adds r4, r0, #0 + mov sb, r1 + mov r8, r2 + movs r0, #0x2e + ldrsh r7, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + mov r2, sb + subs r0, r2, r7 + mov r5, r8 + subs r1, r5, r6 + bl sub_080045DA + lsls r7, r7, #8 + lsls r6, r6, #8 + ldr r3, _08061058 @ =gUnk_080C9160 + lsls r1, r0, #1 + adds r1, r1, r3 + movs r5, #0 + ldrsh r2, [r1, r5] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #1 + str r1, [sp] + adds r0, #0x40 + lsls r0, r0, #1 + adds r0, r0, r3 + movs r2, #0 + ldrsh r1, [r0, r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #1 + str r0, [sp, #4] + adds r4, #0x38 + ldrb r0, [r4] + ldr r5, _0806105C @ =gUnk_0200D654 + mov sl, r5 + cmp r0, #2 + beq _0806102E + ldr r0, _08061060 @ =gUnk_02027EB4 + mov sl, r0 +_0806102E: + adds r1, r7, #0 + cmp r7, #0 + bge _08061036 + adds r1, #0xff +_08061036: + asrs r5, r1, #8 + adds r2, r6, #0 + cmp r6, #0 + bge _08061040 + adds r2, #0xff +_08061040: + asrs r4, r2, #8 + mov r0, sl + adds r1, r5, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061064 + movs r0, #0 + b _08061084 + .align 2, 0 +_08061058: .4byte gUnk_080C9160 +_0806105C: .4byte gUnk_0200D654 +_08061060: .4byte gUnk_02027EB4 +_08061064: + mov r1, sb + subs r0, r1, r5 + adds r0, #6 + cmp r0, #0xc + bhi _08061078 + mov r2, r8 + subs r0, r2, r4 + adds r0, #6 + cmp r0, #0xc + bls _08061082 +_08061078: + ldr r5, [sp] + adds r7, r7, r5 + ldr r0, [sp, #4] + subs r6, r6, r0 + b _0806102E +_08061082: + movs r0, #1 +_08061084: + 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_08061090 +sub_08061090: @ 0x08061090 + push {r4, r5, r6, lr} + adds r3, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r1, _080610C8 @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r1, r0] + movs r4, #0x2e + ldrsh r0, [r3, r4] + subs r2, r2, r0 + movs r4, #0x32 + ldrsh r0, [r1, r4] + movs r4, #0x32 + ldrsh r1, [r3, r4] + subs r0, r0, r1 + adds r1, r2, #0 + muls r1, r2, r1 + adds r2, r0, #0 + muls r2, r0, r2 + adds r0, r2, #0 + adds r1, r1, r0 + ldr r0, _080610CC @ =0x000008FF + cmp r1, r0 + bgt _080610D0 + movs r0, #0x90 + lsls r0, r0, #1 + b _080610F0 + .align 2, 0 +_080610C8: .4byte gLinkEntity +_080610CC: .4byte 0x000008FF +_080610D0: + ldr r0, _080610E4 @ =0x000018FF + cmp r1, r0 + bgt _080610EC + ldr r4, _080610E8 @ =0xFFFFF700 + adds r0, r1, r4 + asrs r0, r0, #4 + movs r1, #0x90 + lsls r1, r1, #1 + adds r0, r0, r1 + b _080610F0 + .align 2, 0 +_080610E4: .4byte 0x000018FF +_080610E8: .4byte 0xFFFFF700 +_080610EC: + movs r0, #0x88 + lsls r0, r0, #2 +_080610F0: + strh r0, [r3, #0x24] + movs r2, #0x24 + ldrsh r1, [r3, r2] + movs r0, #0x90 + lsls r0, r0, #1 + cmp r1, r0 + bne _08061102 + movs r4, #4 + b _0806110C +_08061102: + ldr r0, _0806111C @ =0x0000015F + movs r4, #0xc + cmp r1, r0 + bgt _0806110C + movs r4, #8 +_0806110C: + adds r0, r3, #0 + adds r1, r5, #0 + adds r2, r6, #0 + adds r3, r4, #0 + bl sub_08061120 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806111C: .4byte 0x0000015F + + thumb_func_start sub_08061120 +sub_08061120: @ 0x08061120 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r4, r1, #0 + adds r5, r2, #0 + adds r7, r3, #0 + movs r1, #0x2e + ldrsh r0, [r6, r1] + movs r2, #0x32 + ldrsh r1, [r6, r2] + adds r2, r4, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r6, #0x15] + adds r0, r6, #0 + adds r0, #0x6c + ldrb r0, [r0] + cmp r7, r0 + bne _08061158 + ldrb r0, [r6, #0x15] + ldrb r1, [r6, #0x14] + lsls r1, r1, #2 + subs r0, r0, r1 + adds r0, #5 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xa + ble _0806116C +_08061158: + ldrb r0, [r6, #0x15] + adds r0, #4 + movs r1, #0x18 + ands r0, r1 + asrs r0, r0, #2 + strb r0, [r6, #0x14] + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08060E70 +_0806116C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061170 +sub_08061170: @ 0x08061170 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AF1EC + cmp r0, #0 + bne _080611CA + adds r0, r4, #0 + bl sub_080611D4 + adds r5, r0, #0 + cmp r5, #0xff + beq _080611C6 + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08079FD4 + lsls r0, r0, #4 + subs r0, #4 + lsls r0, r0, #0xc + str r0, [r4, #0x20] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r4, #0x24] + strb r5, [r4, #0x15] + lsrs r1, r5, #2 + strb r1, [r4, #0x14] + lsrs r0, r0, #0x10 + cmp r0, #0 + beq _080611BE + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08060E70 + b _080611C6 +_080611BE: + adds r0, r4, #0 + movs r1, #0x18 + bl sub_08060E70 +_080611C6: + movs r0, #0 + b _080611D2 +_080611CA: + adds r0, r4, #0 + bl sub_08016AD2 + movs r0, #1 +_080611D2: + pop {r4, r5, pc} + + thumb_func_start sub_080611D4 +sub_080611D4: @ 0x080611D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08061218 @ =gUnk_0810AC4C + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r0, r1] + movs r2, #1 + ldrsb r2, [r0, r2] + adds r0, r4, #0 + bl sub_080002B4 + adds r3, r0, #0 + ldr r2, _0806121C @ =gUnk_0810AC54 +_080611F4: + ldrb r0, [r2] + cmp r0, r3 + bne _08061220 + ldrb r0, [r2, #1] + ldrb r1, [r4, #0x14] + lsrs r0, r0, #2 + cmp r1, r0 + bne _08061220 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0806122A + ldrb r0, [r2, #1] + b _0806122C + .align 2, 0 +_08061218: .4byte gUnk_0810AC4C +_0806121C: .4byte gUnk_0810AC54 +_08061220: + adds r2, #2 + ldrb r0, [r2] + cmp r0, #0 + bne _080611F4 + strb r0, [r4, #0xf] +_0806122A: + movs r0, #0xff +_0806122C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061230 +sub_08061230: @ 0x08061230 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x64] + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08061302 + adds r1, r4, #0 + adds r1, #0x41 + ldrb r3, [r1] + movs r0, #0x80 + ands r0, r3 + adds r2, r1, #0 + cmp r0, #0 + beq _0806133A + movs r0, #0x7f + ands r0, r3 + cmp r0, #0x1f + bhi _080612E8 + lsls r0, r0, #2 + ldr r1, _08061264 @ =_08061268 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08061264: .4byte _08061268 +_08061268: @ jump table + .4byte _0806133A @ case 0 + .4byte _0806133A @ case 1 + .4byte _0806133A @ case 2 + .4byte _0806133A @ case 3 + .4byte _080612E8 @ case 4 + .4byte _080612E8 @ case 5 + .4byte _080612E8 @ case 6 + .4byte _080612E8 @ case 7 + .4byte _080612E8 @ case 8 + .4byte _080612E8 @ case 9 + .4byte _080612E8 @ case 10 + .4byte _080612E8 @ case 11 + .4byte _080612E8 @ case 12 + .4byte _080612E8 @ case 13 + .4byte _080612E8 @ case 14 + .4byte _0806133A @ case 15 + .4byte _080612E8 @ case 16 + .4byte _080612E8 @ case 17 + .4byte _080612E8 @ case 18 + .4byte _0806133A @ case 19 + .4byte _080612E8 @ case 20 + .4byte _080612E8 @ case 21 + .4byte _080612E8 @ case 22 + .4byte _080612E8 @ case 23 + .4byte _080612E8 @ case 24 + .4byte _080612E8 @ case 25 + .4byte _080612E8 @ case 26 + .4byte _0806133A @ case 27 + .4byte _080612E8 @ case 28 + .4byte _080612E8 @ case 29 + .4byte _0806133A @ case 30 + .4byte _0806133A @ case 31 +_080612E8: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #1 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #0x40 + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 + b _08061356 +_08061302: + 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 _0806131A + movs r0, #1 + b _08061356 +_0806131A: + ldr r2, [r4, #0x64] + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + ldrb r0, [r0] + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_080042AC + adds r2, r4, #0 + adds r2, #0x41 +_0806133A: + ldrb r0, [r2] + movs r1, #0x7f + ands r1, r0 + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x3d + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08061354 + adds r0, r2, #1 + strb r0, [r1] +_08061354: + movs r0, #0 +_08061356: + pop {r4, pc} + + thumb_func_start sub_08061358 +sub_08061358: @ 0x08061358 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xd] + cmp r5, #1 + beq _0806139C + cmp r5, #1 + bgt _0806136C + cmp r5, #0 + beq _08061376 + b _08061460 +_0806136C: + cmp r5, #2 + beq _080613D0 + cmp r5, #3 + beq _0806141E + b _08061460 +_08061376: + 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 _08061460 + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0 + bl sub_08060E70 + b _08061460 +_0806139C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08061460 + bl sub_08000E50 + adds r6, r0, #0 + ands r5, r6 + cmp r5, #0 + beq _080613FA + movs r0, #2 + strb r0, [r4, #0xd] + ldr r3, _080613CC @ =gUnk_0810AC5D + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + lsrs r1, r6, #4 + movs r2, #3 + ands r1, r2 + adds r0, r0, r1 + adds r0, r0, r3 + b _0806143A + .align 2, 0 +_080613CC: .4byte gUnk_0810AC5D +_080613D0: + 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 _08061460 + movs r0, #0x18 + ands r0, r1 + lsrs r0, r0, #2 + strb r0, [r4, #0x14] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #1 + ands r1, r0 + cmp r1, #0 + beq _08061412 +_080613FA: + movs r0, #3 + strb r0, [r4, #0xd] + movs r0, #0x18 + ands r6, r0 + adds r0, r6, #0 + adds r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_08060E70 + b _08061460 +_08061412: + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08060E70 + b _08061460 +_0806141E: + adds r0, r4, #0 + bl sub_08061170 + cmp r0, #0 + bne _08061448 + movs r0, #2 + strb r0, [r4, #0xd] + ldr r2, _08061444 @ =gUnk_0810AC5D + ldrb r0, [r4, #0x14] + lsls r0, r0, #1 + lsrs r1, r6, #4 + ands r1, r5 + adds r0, r0, r1 + adds r0, r0, r2 +_0806143A: + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC + b _08061460 + .align 2, 0 +_08061444: .4byte gUnk_0810AC5D +_08061448: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08061460 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08060E70 +_08061460: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08061464 +sub_08061464: @ 0x08061464 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + mov r8, r1 + adds r5, r2, #0 + movs r0, #0x2e + ldrsh r7, [r4, r0] + movs r1, #0x32 + ldrsh r6, [r4, r1] + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + adds r3, r5, #0 + bl sub_080045D4 + adds r0, #2 + movs r1, #0x1c + ands r0, r1 + lsrs r0, r0, #2 + cmp r0, #7 + bls _08061494 + b _08061612 +_08061494: + lsls r0, r0, #2 + ldr r1, _080614A0 @ =_080614A4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080614A0: .4byte _080614A4 +_080614A4: @ jump table + .4byte _080614C4 @ case 0 + .4byte _080614E2 @ case 1 + .4byte _08061514 @ case 2 + .4byte _08061544 @ case 3 + .4byte _08061566 @ case 4 + .4byte _08061584 @ case 5 + .4byte _080615B4 @ case 6 + .4byte _080615E4 @ case 7 +_080614C4: + adds r0, r4, #0 + adds r0, #0x6e + strh r5, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, r8 + ble _08061504 + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061630 + b _08061612 +_080614E2: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061720 + cmp r0, #0 + beq _08061500 + b _08061612 +_08061500: + mov r0, sb + strh r5, [r0] +_08061504: + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_080616A8 + b _08061612 +_08061514: + adds r0, r4, #0 + adds r0, #0x6e + mov r1, r8 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + ble _08061534 + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061720 + b _08061612 +_08061534: + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061798 + b _08061612 +_08061544: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + adds r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061798 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] + b _08061574 +_08061566: + adds r0, r4, #0 + adds r0, #0x6e + strh r5, [r0] + movs r1, #0x2e + ldrsh r0, [r4, r1] + cmp r0, r8 + bgt _080615A4 +_08061574: + adds r2, r6, #0 + adds r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061888 + b _08061612 +_08061584: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061978 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] +_080615A4: + adds r2, r6, #0 + adds r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061810 + b _08061612 +_080615B4: + adds r0, r4, #0 + adds r0, #0x6e + mov r1, r8 + strh r1, [r0] + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + ble _080615D4 + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061900 + b _08061612 +_080615D4: + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061978 + b _08061612 +_080615E4: + movs r0, #0x6e + adds r0, r0, r4 + mov sb, r0 + mov r1, r8 + strh r1, [r0] + adds r1, r7, #0 + subs r1, #8 + adds r0, r4, #0 + adds r2, r6, #0 + adds r3, r5, #0 + bl sub_08061900 + cmp r0, #0 + bne _08061612 + mov r0, sb + strh r5, [r0] + adds r2, r6, #0 + subs r2, #8 + adds r0, r4, #0 + adds r1, r7, #0 + mov r3, r8 + bl sub_08061630 +_08061612: + ldr r0, [r4, #0x64] + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _08061628 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_08061628: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061630 +sub_08061630: @ 0x08061630 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061650 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0806168C + ldr r7, _08061654 @ =gUnk_0200D654 + b _0806168C + .align 2, 0 +_08061650: .4byte gUnk_02027EB4 +_08061654: .4byte gUnk_0200D654 +_08061658: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_08061A74 + cmp r0, #0 + beq _0806168A + ldr r0, [r5, #0x64] + strh r6, [r0, #0xe] + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + blt _0806168A + movs r0, #1 + b _0806169E +_0806168A: + subs r4, #8 +_0806168C: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061658 + movs r0, #0 +_0806169E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080616A8 +sub_080616A8: @ 0x080616A8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _080616C8 @ =gUnk_02027EB4 + cmp r0, #2 + bne _08061704 + ldr r7, _080616CC @ =gUnk_0200D654 + b _08061704 + .align 2, 0 +_080616C8: .4byte gUnk_02027EB4 +_080616CC: .4byte gUnk_0200D654 +_080616D0: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_08061A1C + cmp r0, #0 + beq _08061702 + ldr r0, [r5, #0x64] + strh r6, [r0, #0xe] + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + blt _08061702 + movs r0, #1 + b _08061716 +_08061702: + subs r4, #8 +_08061704: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _080616D0 + movs r0, #0 +_08061716: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061720 +sub_08061720: @ 0x08061720 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061740 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0806177C + ldr r7, _08061744 @ =gUnk_0200D654 + b _0806177C + .align 2, 0 +_08061740: .4byte gUnk_02027EB4 +_08061744: .4byte gUnk_0200D654 +_08061748: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + mov r3, sb + bl sub_080619F0 + cmp r0, #0 + beq _0806177A + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0xe] + ldr r0, [r5, #0x64] + strh r6, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + bgt _0806177A + movs r0, #1 + b _0806178E +_0806177A: + adds r4, #8 +_0806177C: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061748 + movs r0, #0 +_0806178E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061798 +sub_08061798: @ 0x08061798 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _080617B8 @ =gUnk_02027EB4 + cmp r0, #2 + bne _080617F4 + ldr r7, _080617BC @ =gUnk_0200D654 + b _080617F4 + .align 2, 0 +_080617B8: .4byte gUnk_02027EB4 +_080617BC: .4byte gUnk_0200D654 +_080617C0: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + mov r3, sb + bl sub_08061A48 + cmp r0, #0 + beq _080617F2 + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0xe] + ldr r0, [r5, #0x64] + strh r6, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + bgt _080617F2 + movs r0, #1 + b _08061806 +_080617F2: + adds r4, #8 +_080617F4: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _080617C0 + movs r0, #0 +_08061806: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061810 +sub_08061810: @ 0x08061810 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061830 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0806186C + ldr r7, _08061834 @ =gUnk_0200D654 + b _0806186C + .align 2, 0 +_08061830: .4byte gUnk_02027EB4 +_08061834: .4byte gUnk_0200D654 +_08061838: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_08061A74 + cmp r0, #0 + beq _0806186A + ldr r0, [r5, #0x64] + strh r6, [r0, #0xe] + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + bgt _0806186A + movs r0, #1 + b _0806187E +_0806186A: + adds r4, #8 +_0806186C: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061838 + movs r0, #0 +_0806187E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061888 +sub_08061888: @ 0x08061888 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _080618A8 @ =gUnk_02027EB4 + cmp r0, #2 + bne _080618E4 + ldr r7, _080618AC @ =gUnk_0200D654 + b _080618E4 + .align 2, 0 +_080618A8: .4byte gUnk_02027EB4 +_080618AC: .4byte gUnk_0200D654 +_080618B0: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + mov r3, sb + bl sub_08061A1C + cmp r0, #0 + beq _080618E2 + ldr r0, [r5, #0x64] + strh r6, [r0, #0xe] + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + bgt _080618E2 + movs r0, #1 + b _080618F6 +_080618E2: + adds r4, #8 +_080618E4: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _080618B0 + movs r0, #0 +_080618F6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061900 +sub_08061900: @ 0x08061900 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061920 @ =gUnk_02027EB4 + cmp r0, #2 + bne _0806195C + ldr r7, _08061924 @ =gUnk_0200D654 + b _0806195C + .align 2, 0 +_08061920: .4byte gUnk_02027EB4 +_08061924: .4byte gUnk_0200D654 +_08061928: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + mov r3, sb + bl sub_080619F0 + cmp r0, #0 + beq _0806195A + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0xe] + ldr r0, [r5, #0x64] + strh r6, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + blt _0806195A + movs r0, #1 + b _0806196E +_0806195A: + subs r4, #8 +_0806195C: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061928 + movs r0, #0 +_0806196E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08061978 +sub_08061978: @ 0x08061978 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + mov sb, r3 + mov r8, r4 + adds r0, #0x38 + ldrb r0, [r0] + ldr r7, _08061998 @ =gUnk_02027EB4 + cmp r0, #2 + bne _080619D4 + ldr r7, _0806199C @ =gUnk_0200D654 + b _080619D4 + .align 2, 0 +_08061998: .4byte gUnk_02027EB4 +_0806199C: .4byte gUnk_0200D654 +_080619A0: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + mov r3, sb + bl sub_08061A48 + cmp r0, #0 + beq _080619D2 + ldr r0, [r5, #0x64] + mov r1, r8 + strh r1, [r0, #0xe] + ldr r0, [r5, #0x64] + strh r6, [r0, #0x10] + ldr r2, [r5, #0x64] + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r0, r4 + blt _080619D2 + movs r0, #1 + b _080619E6 +_080619D2: + subs r4, #8 +_080619D4: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _080619A0 + movs r0, #0 +_080619E6: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080619F0 +sub_080619F0: @ 0x080619F0 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + adds r5, r3, #0 + cmp r5, r4 + bgt _08061A18 +_080619FE: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061A12 + movs r0, #0 + b _08061A1A +_08061A12: + subs r4, #8 + cmp r5, r4 + ble _080619FE +_08061A18: + movs r0, #1 +_08061A1A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061A1C +sub_08061A1C: @ 0x08061A1C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r5, r3, #0 + cmp r5, r4 + blt _08061A44 +_08061A2A: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061A3E + movs r0, #0 + b _08061A46 +_08061A3E: + adds r4, #8 + cmp r5, r4 + bge _08061A2A +_08061A44: + movs r0, #1 +_08061A46: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061A48 +sub_08061A48: @ 0x08061A48 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r6, r1, #0 + adds r4, r2, #0 + adds r5, r3, #0 + cmp r5, r4 + blt _08061A70 +_08061A56: + adds r0, r7, #0 + adds r1, r6, #0 + adds r2, r4, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061A6A + movs r0, #0 + b _08061A72 +_08061A6A: + adds r4, #8 + cmp r5, r4 + bge _08061A56 +_08061A70: + movs r0, #1 +_08061A72: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061A74 +sub_08061A74: @ 0x08061A74 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r5, r3, #0 + cmp r5, r4 + bgt _08061A9C +_08061A82: + adds r0, r7, #0 + adds r1, r4, #0 + adds r2, r6, #0 + movs r3, #6 + bl sub_080AE4CC + cmp r0, #0 + beq _08061A96 + movs r0, #0 + b _08061A9E +_08061A96: + subs r4, #8 + cmp r5, r4 + ble _08061A82 +_08061A9C: + movs r0, #1 +_08061A9E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08061AA0 +sub_08061AA0: @ 0x08061AA0 + push {lr} + bl sub_0805E780 + pop {pc} + + thumb_func_start sub_08061AA8 +sub_08061AA8: @ 0x08061AA8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08061AC8 @ =gUnk_0810AC70 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, [r4, #0x50] + adds r1, r4, #0 + bl sub_0806FA24 + pop {r4, pc} + .align 2, 0 +_08061AC8: .4byte gUnk_0810AC70 + + thumb_func_start sub_08061ACC +sub_08061ACC: @ 0x08061ACC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x20 + movs r2, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0xd] + strb r2, [r4, #0xe] + ldrb r1, [r4, #0x17] + movs r0, #0xfe + ands r0, r1 + strb r0, [r4, #0x17] + adds r0, r4, #0 + bl sub_08078778 + adds r0, r4, #0 + bl sub_08061AFC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061AFC +sub_08061AFC: @ 0x08061AFC + push {lr} + adds r1, r0, #0 + movs r2, #0 + ldrb r0, [r1, #0xd] + cmp r0, #0 + beq _08061B12 + strb r2, [r1, #0xd] + ldr r0, _08061B14 @ =gUnk_0810B660 + ldr r0, [r0] + str r0, [r1, #0x68] + strb r2, [r1, #0xe] +_08061B12: + pop {pc} + .align 2, 0 +_08061B14: .4byte gUnk_0810B660 + + thumb_func_start sub_08061B18 +sub_08061B18: @ 0x08061B18 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08061B54 + cmp r0, #1 + bne _08061B54 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08061AFC + ldr r2, [r4, #0x68] + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x17 + adds r2, r2, r0 + ldrh r0, [r2, #2] + cmp r0, #0 + bne _08061B4C + strb r0, [r4, #0xe] +_08061B4C: + ldrh r0, [r2] + adds r1, r4, #0 + bl sub_08056398 +_08061B54: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061B58 +sub_08061B58: @ 0x08061B58 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08061B6E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_08061B6E: + ldr r0, _08061B88 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08061B7E + adds r0, r4, #0 + bl sub_080042B8 +_08061B7E: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08061B88: .4byte gUnk_030010A0 + + thumb_func_start sub_08061B8C +sub_08061B8C: @ 0x08061B8C + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08061BB0 + ldr r0, _08061BAC @ =gUnk_0810B77C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08061BC0 + .align 2, 0 +_08061BAC: .4byte gUnk_0810B77C +_08061BB0: + ldr r0, _08061BC4 @ =gUnk_0810B774 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08061BC0: + pop {pc} + .align 2, 0 +_08061BC4: .4byte gUnk_0810B774 + + thumb_func_start sub_08061BC8 +sub_08061BC8: @ 0x08061BC8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08061BFC @ =gUnk_0810B6EC + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08061BF8 + movs r0, #2 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0xa] + adds r0, #1 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08061CB4 +_08061BF8: + pop {r4, pc} + .align 2, 0 +_08061BFC: .4byte gUnk_0810B6EC + + thumb_func_start sub_08061C00 +sub_08061C00: @ 0x08061C00 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08061C18 + ldrb r0, [r4, #0x14] + adds r1, r0, #4 + b _08061C32 +_08061C18: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08061C24 + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08061C32 +_08061C24: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 +_08061C32: + adds r0, r4, #0 + bl sub_08061CB4 + adds r0, r4, #0 + bl sub_0806ED78 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08061C58 + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xb] + ldr r1, _08061C5C @ =0x00000A01 + adds r0, r0, r1 + bl sub_08056378 +_08061C58: + pop {r4, pc} + .align 2, 0 +_08061C5C: .4byte 0x00000A01 + + thumb_func_start sub_08061C60 +sub_08061C60: @ 0x08061C60 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + ldr r1, _08061CAC @ =gUnk_0810B78C + adds r0, r0, r1 + ldrb r1, [r0] + ldr r5, _08061CB0 @ =gUnk_0810B680 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r2, [r0] + adds r2, r1, r2 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r0, [r0, #1] + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 +_08061CAC: .4byte gUnk_0810B78C +_08061CB0: .4byte gUnk_0810B680 + + thumb_func_start sub_08061CB4 +sub_08061CB4: @ 0x08061CB4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08061CC8 + adds r0, r4, #0 + bl sub_08004260 + b _08061CCE +_08061CC8: + adds r0, r4, #0 + bl sub_08004274 +_08061CCE: + adds r2, r4, #0 + adds r2, #0x59 + ldrb r0, [r2] + cmp r0, #0xff + bne _08061CE4 + ldr r0, _08061CE8 @ =gUnk_0810B680 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #2] + strb r0, [r2] +_08061CE4: + pop {r4, pc} + .align 2, 0 +_08061CE8: .4byte gUnk_0810B680 + + thumb_func_start sub_08061CEC +sub_08061CEC: @ 0x08061CEC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08061D38 @ =gUnk_0810B6EC + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08061D62 + 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 r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x69 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r1, r0, #0 + cmp r1, #0 + bne _08061D3C + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + ldrh r1, [r4, #0x32] + b _08061D44 + .align 2, 0 +_08061D38: .4byte gUnk_0810B6EC +_08061D3C: + lsrs r0, r1, #0x10 + adds r2, r4, #0 + adds r2, #0x6a + strh r0, [r2] +_08061D44: + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08061D64 +_08061D62: + pop {r4, pc} + + thumb_func_start sub_08061D64 +sub_08061D64: @ 0x08061D64 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x39 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #2 + bne _08061DB0 + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + bl sub_0806F118 + adds r4, #0x1f + ldrb r0, [r4] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08061DAC @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r4] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08004260 + b _08061E18 + .align 2, 0 +_08061DAC: .4byte gLinkEntity +_08061DB0: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r2, r5, #0 + adds r2, #0x59 + ldrb r0, [r2] + cmp r0, #0xff + bne _08061DD4 + ldr r0, _08061E1C @ =gUnk_0810B680 + ldrb r1, [r5, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #2] + strb r0, [r2] +_08061DD4: + adds r0, r5, #0 + bl sub_08004274 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _08061E18 + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + bl sub_08062048 + adds r4, r5, #0 + adds r4, #0x58 + ldrb r0, [r4] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08061E20 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r4] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_08061E18: + pop {r4, r5, pc} + .align 2, 0 +_08061E1C: .4byte gUnk_0810B680 +_08061E20: .4byte gLinkEntity + + thumb_func_start sub_08061E24 +sub_08061E24: @ 0x08061E24 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, _08061E4C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08061E48 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08061E48: + pop {r4, pc} + .align 2, 0 +_08061E4C: .4byte gUnk_02000050 + + thumb_func_start sub_08061E50 +sub_08061E50: @ 0x08061E50 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08061E6C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08061E6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061E70 +sub_08061E70: @ 0x08061E70 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #9] + cmp r0, #6 + bne _08061E88 + adds r0, r2, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r2, #0 + bl sub_08078784 + b _08061E8E +_08061E88: + adds r0, r2, #0 + bl sub_08078778 +_08061E8E: + pop {pc} + + thumb_func_start sub_08061E90 +sub_08061E90: @ 0x08061E90 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _08061F04 + adds r0, #1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r5, #0x12] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08061ED8 + cmp r0, #8 + bgt _08061EC6 + cmp r0, #0 + beq _08061ED0 + b _08061EEE +_08061EC6: + cmp r0, #0x10 + beq _08061EE0 + cmp r0, #0x18 + beq _08061EE8 + b _08061EEE +_08061ED0: + cmp r1, #0x10 + bne _08061EEE + movs r1, #8 + b _08061EEE +_08061ED8: + cmp r1, #0x18 + bne _08061EEE + movs r1, #0x10 + b _08061EEE +_08061EE0: + cmp r1, #0 + bne _08061EEE + movs r1, #0x18 + b _08061EEE +_08061EE8: + cmp r1, #8 + bne _08061EEE + movs r1, #0 +_08061EEE: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + ldr r1, _08061F8C @ =gUnk_0810B74A + ldrb r0, [r4, #0xa] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r4, #0x24] +_08061F04: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + adds r1, r0, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _08061F1A + adds r0, r4, #0 + bl sub_08004260 +_08061F1A: + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x6a + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08061F3C + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_08061F3C: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _08061F4E + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_08061F4E: + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r2, r4, #0 + adds r2, #0x6c + movs r6, #0 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08061F6A + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08061F6A: + cmp r1, r3 + bge _08061F78 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08061F78: + ldrh r0, [r5, #0x12] + subs r0, #1 + strh r0, [r5, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08061F8A + ldr r1, _08061F90 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08061F8A: + pop {r4, r5, r6, pc} + .align 2, 0 +_08061F8C: .4byte gUnk_0810B74A +_08061F90: .4byte gUnk_02033280 + + thumb_func_start sub_08061F94 +sub_08061F94: @ 0x08061F94 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x35 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08061FAC + adds r0, r4, #0 + bl sub_0806FAB0 +_08061FAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08061FB0 +sub_08061FB0: @ 0x08061FB0 + movs r1, #0 + str r1, [r0, #0x48] + bx lr + .align 2, 0 + + thumb_func_start sub_08061FB8 +sub_08061FB8: @ 0x08061FB8 + push {lr} + ldr r2, _08061FD0 @ =gUnk_0810B748 + ldr r3, [r1, #4] + adds r2, r3, r2 + ldrb r2, [r2] + lsls r3, r3, #2 + ldr r1, _08061FD4 @ =gUnk_0810B740 + adds r3, r3, r1 + movs r1, #1 + bl sub_08078850 + pop {pc} + .align 2, 0 +_08061FD0: .4byte gUnk_0810B748 +_08061FD4: .4byte gUnk_0810B740 + + thumb_func_start sub_08061FD8 +sub_08061FD8: @ 0x08061FD8 + push {lr} + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_08061FE4 +sub_08061FE4: @ 0x08061FE4 + push {lr} + ldrb r1, [r0, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08061FF4 +sub_08061FF4: @ 0x08061FF4 + push {lr} + adds r1, r0, #0 + ldr r2, _08062008 @ =gUnk_0810B790 + ldrb r0, [r1, #0xa] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08062008: .4byte gUnk_0810B790 + + thumb_func_start sub_0806200C +sub_0806200C: @ 0x0806200C + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _08062034 + movs r0, #0x6b + bl sub_0807CBD0 + cmp r0, #0 + beq _08062034 + movs r0, #0x39 + bl sub_0807CA84 + movs r4, #1 + cmp r0, #2 + bne _08062034 + movs r4, #2 +_08062034: + ldr r0, _08062044 @ =gUnk_0810B7BA + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08062044: .4byte gUnk_0810B7BA + + thumb_func_start sub_08062048 +sub_08062048: @ 0x08062048 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + cmp r0, #6 + bne _0806207C + ldr r0, _08062074 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806205E + movs r0, #0 +_0806205E: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _08062078 @ =gUnk_0810B7C0 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + b _08062084 + .align 2, 0 +_08062074: .4byte gUnk_02002A40 +_08062078: .4byte gUnk_0810B7C0 +_0806207C: + movs r0, #0 + adds r1, r3, #0 + bl sub_08056398 +_08062084: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08062088 +sub_08062088: @ 0x08062088 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080620BA + ldr r1, _080620C4 @ =gUnk_0810B6EC + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080620C2 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_080620BA: + adds r0, r4, #0 + movs r1, #6 + bl sub_08061CB4 +_080620C2: + pop {r4, pc} + .align 2, 0 +_080620C4: .4byte gUnk_0810B6EC + + thumb_func_start sub_080620C8 +sub_080620C8: @ 0x080620C8 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080620DE + adds r0, r2, #0 + bl sub_080621AC + b _080620EE +_080620DE: + ldr r0, _080620F0 @ =gUnk_0810BE0C + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_080620EE: + pop {pc} + .align 2, 0 +_080620F0: .4byte gUnk_0810BE0C + + thumb_func_start sub_080620F4 +sub_080620F4: @ 0x080620F4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806212C @ =gUnk_0810BDC4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806212A + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 +_0806212A: + pop {r4, pc} + .align 2, 0 +_0806212C: .4byte gUnk_0810BDC4 + + thumb_func_start sub_08062130 +sub_08062130: @ 0x08062130 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08062152 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC +_08062152: + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x78 + bls _08062184 + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xe] + adds r1, r0, #1 + movs r0, #7 + ands r1, r0 + strb r1, [r4, #0xe] + ldrb r0, [r4, #0xa] + cmp r0, #6 + bne _0806217A + adds r0, r1, #0 + adds r0, #0x10 + strb r0, [r4, #0xe] +_0806217A: + ldrb r1, [r4, #0xe] + adds r0, r4, #0 + bl sub_080042AC + b _0806218A +_08062184: + adds r0, r4, #0 + bl sub_080042B8 +_0806218A: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08062194 +sub_08062194: @ 0x08062194 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0 + bl sub_08056378 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r4, #0x39 + strb r1, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080621AC +sub_080621AC: @ 0x080621AC + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _08062234 + cmp r5, #1 + bgt _080621C0 + cmp r5, #0 + beq _080621CE + b _080622F2 +_080621C0: + cmp r5, #2 + bne _080621C6 + b _080622CC +_080621C6: + cmp r5, #3 + bne _080621CC + b _080622E4 +_080621CC: + b _080622F2 +_080621CE: + ldr r1, _0806221C @ =gUnk_0810BDC4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _080621E4 + b _080622F2 +_080621E4: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + strb r0, [r4, #0x14] + strb r5, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r1, r4, #0 + adds r1, #0x6b + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08062220 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _0806222C + .align 2, 0 +_0806221C: .4byte gUnk_0810BDC4 +_08062220: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_0806222C: + adds r0, r4, #0 + bl sub_0807DD50 + b _080622F2 +_08062234: + adds r5, r4, #0 + adds r5, #0x39 + movs r1, #0 + ldrsb r1, [r5, r1] + cmp r1, #2 + bne _08062252 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + adds r5, #0x1f + b _0806229A +_08062252: + adds r0, r4, #0 + adds r0, #0x68 + movs r6, #0 + ldrsb r6, [r0, r6] + cmp r6, #0 + beq _08062274 + cmp r1, #0 + beq _0806226C + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r5] + b _0806228A +_0806226C: + adds r0, r4, #0 + bl sub_080622F4 + b _080622F2 +_08062274: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _080622F2 + movs r0, #2 + strb r0, [r4, #0xc] + strb r6, [r5] +_0806228A: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806265C + adds r5, r4, #0 + adds r5, #0x58 +_0806229A: + ldrb r0, [r5] + adds r1, r4, #0 + adds r1, #0x6b + strb r0, [r1] + ldrb r0, [r5] + cmp r0, #7 + bhi _080622F2 + ldr r1, _080622C8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r5] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + b _080622F2 + .align 2, 0 +_080622C8: .4byte gLinkEntity +_080622CC: + adds r0, r4, #0 + bl sub_08004274 + ldr r0, _080622E0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080622F2 + b _080622EE + .align 2, 0 +_080622E0: .4byte gUnk_02000050 +_080622E4: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080622F2 +_080622EE: + movs r0, #1 + strb r0, [r4, #0xc] +_080622F2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080622F4 +sub_080622F4: @ 0x080622F4 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r7, r0, #0 + ldr r0, _0806239C @ =gLinkEntity + mov r8, r0 + ldrh r1, [r0, #0x2e] + ldr r3, _080623A0 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + mov r2, r8 + ldrh r1, [r2, #0x32] + lsls r1, r1, #0x10 + ldr r2, _080623A4 @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + mov r1, r8 + ldrh r0, [r1, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _080623A8 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _080623AC @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r1, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _080623B0 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + mov r1, r8 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _080623B4 @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + ldr r4, [r7, #0x64] + ldrb r0, [r4, #6] + cmp r0, #0x16 + bne _080623BE + lsrs r0, r6, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _080623BE + movs r2, #0x2e + ldrsh r1, [r7, r2] + mov r3, r8 + movs r2, #0x2e + ldrsh r0, [r3, r2] + subs r2, r1, r0 + movs r0, #0x32 + ldrsh r3, [r7, r0] + mov sb, r3 + mov r1, r8 + movs r3, #0x32 + ldrsh r0, [r1, r3] + mov r3, sb + subs r1, r3, r0 + cmp r2, #0 + bge _08062382 + rsbs r2, r2, #0 +_08062382: + cmp r1, #0 + bge _08062388 + rsbs r1, r1, #0 +_08062388: + cmp r2, #0x78 + bgt _08062390 + cmp r1, #0x50 + ble _080623B8 +_08062390: + adds r1, r7, #0 + adds r1, #0x68 + movs r0, #0 + strb r0, [r1] + b _080624F8 + .align 2, 0 +_0806239C: .4byte gLinkEntity +_080623A0: .4byte 0xFFFF0000 +_080623A4: .4byte 0x0000FFFF +_080623A8: .4byte gUnk_03003F80 +_080623AC: .4byte 0xFF00FFFF +_080623B0: .4byte 0xC0FFFFFF +_080623B4: .4byte 0x3FFFFFFF +_080623B8: + adds r0, r7, #0 + bl sub_0806252C +_080623BE: + movs r0, #0 + mov sb, r0 + ldr r0, [r4] + cmp r5, r0 + bne _080623CE + ldr r0, [r4, #4] + cmp r6, r0 + beq _08062410 +_080623CE: + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r1, #0x69 + adds r1, r1, r7 + mov r8, r1 + adds r3, r7, #0 + adds r3, #0x38 + movs r2, #0x58 + adds r2, r2, r7 + mov ip, r2 + movs r2, #0x12 +_080623E4: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _080623E4 + ldr r4, [r7, #0x64] + str r5, [r4] + str r6, [r4, #4] + movs r0, #4 + mov sb, r0 + mov r2, r8 + ldrb r1, [r2] + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + ble _08062484 + subs r0, r1, #1 + strb r0, [r2] + b _08062484 +_08062410: + adds r4, #0x98 + movs r3, #4 + ldrsh r0, [r4, r3] + cmp r0, #0 + bge _08062442 + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r0, #0x69 + adds r0, r0, r7 + mov r8, r0 + adds r3, r7, #0 + adds r3, #0x38 + movs r1, #0x58 + adds r1, r1, r7 + mov ip, r1 + movs r2, #0x12 +_08062430: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _08062430 + b _08062480 +_08062442: + ldr r1, _080624E8 @ =gLinkEntity + movs r3, #0x2e + ldrsh r0, [r1, r3] + movs r2, #0x32 + ldrsh r1, [r1, r2] + ldrh r2, [r4] + ldrh r3, [r4, #2] + bl sub_080041E8 + lsrs r0, r0, #4 + movs r3, #0x69 + adds r3, r3, r7 + mov r8, r3 + adds r3, r7, #0 + adds r3, #0x38 + movs r1, #0x58 + adds r1, r1, r7 + mov ip, r1 + cmp r0, #0x18 + ble _08062484 + ldr r4, [r7, #0x64] + adds r4, #0x90 + movs r2, #0x12 +_08062470: + ldr r0, [r4] + ldr r1, [r4, #4] + str r0, [r4, #8] + str r1, [r4, #0xc] + subs r4, #8 + subs r2, #1 + cmp r2, #0 + bge _08062470 +_08062480: + movs r2, #4 + mov sb, r2 +_08062484: + ldr r4, [r7, #0x64] + adds r4, #0x98 + ldrh r0, [r4] + strh r0, [r7, #0x2e] + ldrh r0, [r4, #2] + strh r0, [r7, #0x32] + ldrh r0, [r4, #4] + strh r0, [r7, #0x36] + ldrb r0, [r4, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r7, #0x14] + ldrb r0, [r4, #7] + lsrs r0, r0, #6 + strb r0, [r3] + mov r1, r8 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _080624B2 + subs r0, r2, #1 + strb r0, [r1] +_080624B2: + mov r2, sb + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + add sb, r0 + ldrb r0, [r7, #0xa] + cmp r0, #6 + bne _080624C4 + movs r3, #0x10 + add sb, r3 +_080624C4: + mov r0, ip + ldrb r0, [r0] + cmp sb, r0 + beq _080624EC + cmp r2, #0 + bne _080624D8 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bgt _080624EC +_080624D8: + adds r0, r7, #0 + mov r1, sb + bl sub_080042AC + movs r0, #0x1e + mov r1, r8 + strb r0, [r1] + b _080624F2 + .align 2, 0 +_080624E8: .4byte gLinkEntity +_080624EC: + adds r0, r7, #0 + bl sub_080042B8 +_080624F2: + adds r0, r7, #0 + bl sub_0800451C +_080624F8: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08062500 +sub_08062500: @ 0x08062500 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa0 + bl sub_0801D8E0 + str r0, [r5, #0x64] + cmp r0, #0 + beq _08062528 + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + movs r1, #1 + strb r1, [r0] + adds r0, r5, #0 + bl sub_080788E0 + str r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_0806252C +_08062528: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806252C +sub_0806252C: @ 0x0806252C + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r4, _08062618 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + ldr r3, _0806261C @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _08062620 @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + ldrh r0, [r4, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _08062624 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08062628 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _0806262C @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _08062630 @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov sl, r1 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov r8, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r3, [r7, #0x64] + movs r0, #0 + mov sb, r0 + mov ip, r0 + movs r4, #0x13 +_080625C8: + mov r1, ip + asrs r0, r1, #8 + subs r0, r5, r0 + strh r0, [r3] + lsrs r0, r5, #0x10 + mov r2, sb + asrs r1, r2, #8 + subs r0, r0, r1 + strh r0, [r3, #2] + strh r6, [r3, #4] + lsrs r0, r6, #0x10 + strb r0, [r3, #6] + ldrb r0, [r7, #0x14] + movs r1, #0x3f + ands r1, r0 + ldrb r2, [r3, #7] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r1, r7, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #6 + movs r2, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r3, #8 + add sb, r8 + add ip, sl + subs r4, #1 + cmp r4, #0 + bge _080625C8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08062618: .4byte gLinkEntity +_0806261C: .4byte 0xFFFF0000 +_08062620: .4byte 0x0000FFFF +_08062624: .4byte gUnk_03003F80 +_08062628: .4byte 0xFF00FFFF +_0806262C: .4byte 0xC0FFFFFF +_08062630: .4byte 0x3FFFFFFF + + thumb_func_start sub_08062634 +sub_08062634: @ 0x08062634 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xb] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + ldr r0, _08062658 @ =gUnk_0810BDE8 + lsls r1, r1, #1 + lsls r4, r4, #2 + adds r1, r1, r4 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08062658: .4byte gUnk_0810BDE8 + + thumb_func_start sub_0806265C +sub_0806265C: @ 0x0806265C + push {lr} + adds r2, r0, #0 + ldr r3, _08062674 @ =gUnk_02002A40 + ldrb r0, [r3, #8] + cmp r0, #0 + bne _08062678 + movs r0, #0 + adds r1, r2, #0 + bl sub_08056398 + b _08062690 + .align 2, 0 +_08062674: .4byte gUnk_02002A40 +_08062678: + ldrb r0, [r2, #0xa] + lsls r1, r0, #3 + adds r1, r1, r0 + lsls r1, r1, #3 + ldr r0, _08062694 @ =gUnk_0810BE10 + adds r1, r1, r0 + ldrb r0, [r3, #8] + lsls r0, r0, #3 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC +_08062690: + pop {pc} + .align 2, 0 +_08062694: .4byte gUnk_0810BE10 + + thumb_func_start sub_08062698 +sub_08062698: @ 0x08062698 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0xc0 + strh r0, [r4, #0x24] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080626AC +sub_080626AC: @ 0x080626AC + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x40 + strb r0, [r4, #0xe] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080626C0 +sub_080626C0: @ 0x080626C0 + push {lr} + adds r2, r0, #0 + movs r0, #0 + str r0, [r1, #0x14] + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _080626DC + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080626DC + movs r0, #1 + str r0, [r1, #0x14] +_080626DC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080626E0 +sub_080626E0: @ 0x080626E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0806270E + adds r0, #1 + strb r0, [r4, #0x18] + movs r0, #0xa + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + ldrh r2, [r4, #4] + ldr r1, _08062778 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + ldrh r3, [r1, #6] + adds r0, r0, r3 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] +_0806270E: + ldrb r0, [r4, #0x19] + subs r0, #1 + strb r0, [r4, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806274A + movs r0, #0xa + strb r0, [r4, #0x19] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r3, #0x32 + ldrsh r2, [r5, r3] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + bl sub_08000E50 + movs r1, #0xb + bl __modsi3 + ldrb r1, [r5, #0x15] + adds r1, r1, r0 + subs r1, #5 + strb r1, [r5, #0x15] +_0806274A: + movs r0, #0x24 + ldrsh r1, [r5, r0] + ldrb r2, [r5, #0x15] + adds r0, r5, #0 + bl sub_0806F62C + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r3, #0x1e + ldrsh r0, [r4, r3] + subs r1, r1, r0 + lsls r1, r1, #8 + ldrh r0, [r5, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x11 + adds r1, r1, r0 + movs r2, #0x24 + ldrsh r0, [r5, r2] + cmp r1, r0 + bhi _0806277C + ldrh r0, [r4, #0x1e] + strh r0, [r5, #0x2e] + b _08062782 + .align 2, 0 +_08062778: .4byte gUnk_03000BF0 +_0806277C: + ldr r1, _08062784 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08062782: + pop {r4, r5, pc} + .align 2, 0 +_08062784: .4byte gUnk_02033280 + + thumb_func_start sub_08062788 +sub_08062788: @ 0x08062788 + push {r4, lr} + ldr r4, _080627CC @ =0x00004072 + ldr r1, _080627D0 @ =0x0000060B + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627D4 @ =0x0000060C + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627D8 @ =0x0000060D + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627DC @ =0x0000064B + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627E0 @ =0x0000064C + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _080627E4 @ =0x0000064D + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + pop {r4, pc} + .align 2, 0 +_080627CC: .4byte 0x00004072 +_080627D0: .4byte 0x0000060B +_080627D4: .4byte 0x0000060C +_080627D8: .4byte 0x0000060D +_080627DC: .4byte 0x0000064B +_080627E0: .4byte 0x0000064C +_080627E4: .4byte 0x0000064D + + thumb_func_start sub_080627E8 +sub_080627E8: @ 0x080627E8 + push {lr} + ldr r0, _0806281C @ =0x0000060B + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08062820 @ =0x0000060C + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08062824 @ =0x0000060D + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08062828 @ =0x0000064B + movs r1, #1 + bl sub_0807BA8C + ldr r0, _0806282C @ =0x0000064C + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08062830 @ =0x0000064D + movs r1, #1 + bl sub_0807BA8C + pop {pc} + .align 2, 0 +_0806281C: .4byte 0x0000060B +_08062820: .4byte 0x0000060C +_08062824: .4byte 0x0000060D +_08062828: .4byte 0x0000064B +_0806282C: .4byte 0x0000064C +_08062830: .4byte 0x0000064D + + thumb_func_start sub_08062834 +sub_08062834: @ 0x08062834 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xa] + lsls r0, r4, #2 + mov ip, r0 + ldr r2, _08062868 @ =gUnk_0810C0A0 + add r2, ip + adds r0, r5, #0 + adds r0, #0x5a + ldrb r3, [r0] + movs r1, #0x1f + adds r0, r1, #0 + ands r0, r3 + ldrb r3, [r2] + adds r6, r0, r3 + ldrb r0, [r5, #0x1e] + ands r1, r0 + ldrb r2, [r2, #1] + adds r7, r1, r2 + cmp r4, #8 + bhi _08062946 + ldr r0, _0806286C @ =_08062870 + add r0, ip + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08062868: .4byte gUnk_0810C0A0 +_0806286C: .4byte _08062870 @ jump table +_08062870: + .4byte _08062894 @ case 0 + .4byte _08062894 @ case 1 + .4byte _08062894 @ case 2 + .4byte _08062894 @ case 3 + .4byte _08062894 @ case 4 + .4byte _08062894 @ case 5 + .4byte _080628D8 @ case 6 + .4byte _08062922 @ case 7 + .4byte _08062922 @ case 8 +_08062894: + adds r0, r5, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #0x30 + ands r0, r1 + lsrs r4, r0, #4 + cmp r4, #0 + beq _080628A6 + adds r4, #0x50 +_080628A6: + subs r4, #1 + adds r0, r5, #0 + movs r1, #0 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + adds r2, r7, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + b _08062916 +_080628D8: + adds r0, r5, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0xf + ands r2, r0 + cmp r2, #0 + beq _080628E8 + adds r2, #0x93 +_080628E8: + subs r2, #1 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + adds r2, r7, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 +_08062916: + bl sub_0806FFD8 + adds r0, r5, #0 + bl sub_0807000C + b _08062946 +_08062922: + adds r0, r5, #0 + movs r1, #0 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + adds r2, r7, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r5, #0 + bl sub_0807000C +_08062946: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08062948 +sub_08062948: @ 0x08062948 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrb r0, [r6, #0x18] + cmp r0, #0 + bne _080629B4 + adds r0, #1 + strb r0, [r6, #0x18] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r6, #0x12] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _08062990 + cmp r0, #8 + bgt _0806297E + cmp r0, #0 + beq _08062988 + b _080629A6 +_0806297E: + cmp r0, #0x10 + beq _08062998 + cmp r0, #0x18 + beq _080629A0 + b _080629A6 +_08062988: + cmp r1, #0x10 + bne _080629A6 + movs r1, #8 + b _080629A6 +_08062990: + cmp r1, #0x18 + bne _080629A6 + movs r1, #0x10 + b _080629A6 +_08062998: + cmp r1, #0 + bne _080629A6 + movs r1, #0x18 + b _080629A6 +_080629A0: + cmp r1, #8 + bne _080629A6 + movs r1, #0 +_080629A6: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_080629B4: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + adds r1, r0, #4 + adds r5, r4, #0 + adds r5, #0x58 + ldrb r0, [r5] + cmp r1, r0 + beq _080629D2 + adds r0, r4, #0 + bl sub_08004260 + ldrb r1, [r5] + adds r0, r4, #0 + adds r0, #0x80 + strh r1, [r0] +_080629D2: + adds r0, r4, #0 + bl sub_080AEF88 + movs r3, #0x2e + ldrsh r1, [r4, r3] + adds r2, r4, #0 + adds r2, #0x6c + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080629F4 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r6, #0x12] +_080629F4: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _08062A06 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A06: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x6e + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08062A22 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A22: + cmp r1, r3 + bge _08062A30 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r6, #0x12] +_08062A30: + ldrh r0, [r6, #0x12] + subs r0, #1 + strh r0, [r6, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08062A42 + ldr r1, _08062A44 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08062A42: + pop {r4, r5, r6, pc} + .align 2, 0 +_08062A44: .4byte gUnk_02033280 + + thumb_func_start sub_08062A48 +sub_08062A48: @ 0x08062A48 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6a + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08062A60 +sub_08062A60: @ 0x08062A60 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062AB0 + ldr r1, _08062AAC @ =gUnk_0810BDC4 + ldrb r0, [r4, #0xa] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08062AB6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #8 + strh r0, [r4, #0x32] + movs r1, #6 + ldrb r0, [r4, #0xa] + cmp r0, #6 + bne _08062AA2 + movs r1, #0x16 +_08062AA2: + adds r0, r4, #0 + bl sub_08004260 + b _08062AB6 + .align 2, 0 +_08062AAC: .4byte gUnk_0810BDC4 +_08062AB0: + adds r0, r4, #0 + bl sub_08004274 +_08062AB6: + pop {r4, pc} + + thumb_func_start sub_08062AB8 +sub_08062AB8: @ 0x08062AB8 + push {lr} + ldr r2, _08062ACC @ =gUnk_0810C268 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08062ACC: .4byte gUnk_0810C268 + + thumb_func_start sub_08062AD0 +sub_08062AD0: @ 0x08062AD0 + bx lr + .align 2, 0 + + thumb_func_start sub_08062AD4 +sub_08062AD4: @ 0x08062AD4 + bx lr + .align 2, 0 + + thumb_func_start sub_08062AD8 +sub_08062AD8: @ 0x08062AD8 + push {lr} + ldr r2, _08062AEC @ =gUnk_0810C290 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08062AEC: .4byte gUnk_0810C290 + + thumb_func_start sub_08062AF0 +sub_08062AF0: @ 0x08062AF0 + 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 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08062B14 +sub_08062B14: @ 0x08062B14 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08062B40 + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0805E47C +_08062B40: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + + thumb_func_start sub_08062B48 +sub_08062B48: @ 0x08062B48 + 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 _08062B6A + ldr r0, _08062B6C @ =0x00000A01 + bl sub_08056378 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_08062B6A: + pop {r4, pc} + .align 2, 0 +_08062B6C: .4byte 0x00000A01 + + thumb_func_start sub_08062B70 +sub_08062B70: @ 0x08062B70 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08062B94 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08062B92 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E584 +_08062B92: + pop {r4, pc} + .align 2, 0 +_08062B94: .4byte gUnk_02000050 + + thumb_func_start sub_08062B98 +sub_08062B98: @ 0x08062B98 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08062BBC + ldr r0, _08062BB8 @ =gUnk_0810C2DC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08062BCC + .align 2, 0 +_08062BB8: .4byte gUnk_0810C2DC +_08062BBC: + ldr r0, _08062BD0 @ =gUnk_0810C2CC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08062BCC: + pop {pc} + .align 2, 0 +_08062BD0: .4byte gUnk_0810C2CC + + thumb_func_start sub_08062BD4 +sub_08062BD4: @ 0x08062BD4 + 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 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08062BF8 +sub_08062BF8: @ 0x08062BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08062C1C + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E47C +_08062C1C: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + + thumb_func_start sub_08062C24 +sub_08062C24: @ 0x08062C24 + 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 _08062C4E + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, _08062C50 @ =0x00000A01 + bl sub_08056378 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_08062C4E: + pop {r4, pc} + .align 2, 0 +_08062C50: .4byte 0x00000A01 + + thumb_func_start sub_08062C54 +sub_08062C54: @ 0x08062C54 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08062C78 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08062C76 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0805E584 +_08062C76: + pop {r4, pc} + .align 2, 0 +_08062C78: .4byte gUnk_02000050 + + thumb_func_start sub_08062C7C +sub_08062C7C: @ 0x08062C7C + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #0x25 + movs r2, #0 + bl CreateFX + adds r0, r4, #0 + bl sub_08062CA4 + pop {r4, pc} + + thumb_func_start sub_08062CA4 +sub_08062CA4: @ 0x08062CA4 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_08062CBC +sub_08062CBC: @ 0x08062CBC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2c + bl sub_0801E7F4 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + lsls r1, r1, #3 + ldr r0, _08062CDC @ =gUnk_0810C2E4 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806F1AC + pop {r4, pc} + .align 2, 0 +_08062CDC: .4byte gUnk_0810C2E4 + + thumb_func_start sub_08062CE0 +sub_08062CE0: @ 0x08062CE0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _08062CEE + movs r0, #1 + strb r0, [r1, #0xc] +_08062CEE: + pop {pc} + + thumb_func_start sub_08062CF0 +sub_08062CF0: @ 0x08062CF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062D0C + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_08062D0C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08062D18 +sub_08062D18: @ 0x08062D18 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r4, #0 + movs r0, #0x4f + bl sub_0807CA84 + cmp r0, #0 + beq _08062D36 + movs r0, #0x26 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D36 + movs r4, #7 +_08062D36: + movs r0, #0x4e + bl sub_0807CA84 + cmp r0, #0 + beq _08062D4C + movs r0, #0x25 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D4C + movs r4, #6 +_08062D4C: + movs r0, #0x4d + bl sub_0807CA84 + cmp r0, #0 + beq _08062D62 + movs r0, #0x24 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D62 + movs r4, #5 +_08062D62: + movs r0, #0x4c + bl sub_0807CA84 + cmp r0, #0 + beq _08062D78 + movs r0, #0x23 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D78 + movs r4, #4 +_08062D78: + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #0 + beq _08062D8E + movs r0, #0x22 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062D8E + movs r4, #3 +_08062D8E: + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #0 + beq _08062DA4 + movs r0, #0x21 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062DA4 + movs r4, #2 +_08062DA4: + movs r0, #0x49 + bl sub_0807CA84 + cmp r0, #0 + beq _08062DBA + movs r0, #0x20 + bl sub_0807CBD0 + cmp r0, #0 + bne _08062DBA + movs r4, #1 +_08062DBA: + strb r4, [r5, #0xb] + movs r4, #0 + ldr r0, _08062DCC @ =0x00001C1F + bl sub_0807CBE4 + cmp r0, #0 + beq _08062DD0 + movs r4, #1 + b _08062DF0 + .align 2, 0 +_08062DCC: .4byte 0x00001C1F +_08062DD0: + movs r0, #0x8c + bl sub_0807CBD0 + cmp r0, #0 + beq _08062DE4 + movs r4, #2 + movs r0, #0x8c + bl sub_0807CD34 + b _08062DF0 +_08062DE4: + movs r0, #0x8b + bl sub_0807CBD0 + cmp r0, #0 + beq _08062DF0 + movs r4, #3 +_08062DF0: + ldr r0, _08062E08 @ =gUnk_0810C34C + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + cmp r4, #0 + bne _08062E0C + movs r0, #1 + b _08062E0E + .align 2, 0 +_08062E08: .4byte gUnk_0810C34C +_08062E0C: + movs r0, #0 +_08062E0E: + str r0, [r6, #0x14] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08062E14 +sub_08062E14: @ 0x08062E14 + push {lr} + movs r0, #0x8b + bl sub_0807CCB4 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08062E20 +sub_08062E20: @ 0x08062E20 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062E50 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r0, _08062E5C @ =gUnk_0810C3C0 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xfe + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD64 +_08062E50: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 +_08062E5C: .4byte gUnk_0810C3C0 + + thumb_func_start sub_08062E60 +sub_08062E60: @ 0x08062E60 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062E88 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r0, _08062EB4 @ =gUnk_0810C428 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0807DD64 +_08062E88: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08062EB2 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x28 + strh r1, [r0] +_08062EB2: + pop {r4, pc} + .align 2, 0 +_08062EB4: .4byte gUnk_0810C428 + + thumb_func_start sub_08062EB8 +sub_08062EB8: @ 0x08062EB8 + push {lr} + movs r0, #0x68 + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0x69 + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0x6a + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0x6b + movs r1, #0 + bl sub_0807CAA0 + pop {pc} + + thumb_func_start sub_08062EDC +sub_08062EDC: @ 0x08062EDC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #0x68 + bl sub_0807CA84 + cmp r0, #0 + beq _08062EEE + movs r4, #0 +_08062EEE: + movs r0, #0x69 + bl sub_0807CA84 + cmp r0, #0 + beq _08062EFA + movs r4, #1 +_08062EFA: + movs r0, #0x6a + bl sub_0807CA84 + cmp r0, #0 + beq _08062F06 + movs r4, #2 +_08062F06: + movs r0, #0x6b + bl sub_0807CA84 + cmp r0, #0 + beq _08062F12 + movs r4, #3 +_08062F12: + movs r0, #0x5b + bl sub_0807CBD0 + cmp r0, #0 + bne _08062F24 + movs r0, #0x5b + bl sub_0807CCB4 + movs r4, #4 +_08062F24: + bl sub_08000E50 + movs r1, #0xff + ands r1, r0 + ldr r0, _08062F58 @ =gUnk_0810C430 + adds r0, r4, r0 + ldrb r0, [r0] + cmp r1, r0 + bhi _08062F68 + ldr r0, _08062F5C @ =gUnk_0810C435 + bl sub_080028F4 + adds r4, r0, #0 + ldr r0, _08062F60 @ =gUnk_0810C43D + adds r0, r4, r0 + ldrb r1, [r0] + movs r0, #0x5c + movs r2, #1 + bl sub_080A7C18 + ldr r0, _08062F64 @ =0x00003C05 + adds r1, r6, #0 + bl sub_08056398 + movs r0, #1 + b _08062F6A + .align 2, 0 +_08062F58: .4byte gUnk_0810C430 +_08062F5C: .4byte gUnk_0810C435 +_08062F60: .4byte gUnk_0810C43D +_08062F64: .4byte 0x00003C05 +_08062F68: + movs r0, #0 +_08062F6A: + str r0, [r5, #0x14] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08062F70 +sub_08062F70: @ 0x08062F70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08062FA0 + ldr r1, _08062FE8 @ =gUnk_0810C48C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08062FE4 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_08062FA0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r4, #0x5b + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08062FCC + movs r0, #0xef + ands r0, r1 + strb r0, [r4] + ldr r0, _08062FEC @ =0x000001CF + bl sub_08004488 +_08062FCC: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08062FE4 + movs r0, #0xdf + ands r0, r1 + strb r0, [r4] + movs r0, #0x88 + lsls r0, r0, #2 + bl sub_08004488 +_08062FE4: + pop {r4, pc} + .align 2, 0 +_08062FE8: .4byte gUnk_0810C48C +_08062FEC: .4byte 0x000001CF + + thumb_func_start sub_08062FF0 +sub_08062FF0: @ 0x08062FF0 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08063006 + movs r6, #1 + movs r5, #0 + b _0806300A +_08063006: + movs r6, #0 + movs r5, #1 +_0806300A: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + movs r7, #0x8e + lsls r7, r7, #1 + cmp r0, #0 + beq _0806301E + movs r7, #0x16 +_0806301E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + subs r2, #1 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r7, #0 + bl sub_0806FF10 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806305C +sub_0806305C: @ 0x0806305C + 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 + strb r0, [r2] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + movs r2, #0x80 + lsls r2, r2, #1 + str r2, [r4, #0x6c] + str r2, [r4, #0x70] + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #0x10 + bl sub_080042AC + adds r4, #0x80 + movs r0, #0x10 + strh r0, [r4] + ldr r0, _080630A0 @ =0x0000016F + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_080630A0: .4byte 0x0000016F + + thumb_func_start sub_080630A4 +sub_080630A4: @ 0x080630A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x6d + ldrb r0, [r0] + cmp r0, #0 + beq _080630BA + ldr r0, [r4, #0x6c] + adds r0, #0x80 + lsls r0, r0, #0x14 + lsrs r5, r0, #0x17 + b _080630D0 +_080630BA: + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + lsrs r1, r1, #6 + movs r0, #3 + eors r1, r0 + adds r1, #1 + movs r0, #0x10 + bl __divsi3 + asrs r5, r0, #1 +_080630D0: + movs r0, #0x80 + lsls r0, r0, #1 + ldr r2, [r4, #0x70] + cmp r2, r0 + bls _080630E4 + adds r0, r2, #0 + adds r0, #0x80 + lsls r0, r0, #0x14 + lsrs r3, r0, #0x17 + b _080630F4 +_080630E4: + cmp r2, r0 + bne _080630EC + movs r3, #0x10 + b _080630F4 +_080630EC: + ldr r1, _08063110 @ =gUnk_0810C498 + lsrs r0, r2, #5 + adds r0, r0, r1 + ldrb r3, [r0] +_080630F4: + movs r6, #0x80 + lsls r6, r6, #9 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r1, #3 + ands r1, r0 + cmp r1, #2 + beq _08063144 + cmp r1, #2 + bgt _08063114 + cmp r1, #1 + beq _0806311A + b _080631CA + .align 2, 0 +_08063110: .4byte gUnk_0810C498 +_08063114: + cmp r1, #3 + beq _0806317A + b _080631CA +_0806311A: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, [r4, #0x6c] + cmp r0, #0x80 + bls _08063132 + subs r0, r0, r5 + str r0, [r4, #0x6c] +_08063132: + lsls r1, r3, #1 + ldr r0, [r4, #0x70] + adds r0, r0, r1 + str r0, [r4, #0x70] + lsls r1, r6, #1 + ldr r0, [r4, #0x30] + adds r0, r0, r1 + str r0, [r4, #0x30] + b _080631CA +_08063144: + ldr r0, [r4, #0x6c] + adds r0, r0, r5 + str r0, [r4, #0x6c] + ldr r1, [r4, #0x70] + movs r2, #0x80 + lsls r2, r2, #1 + cmp r1, r2 + bls _0806316C + ldr r0, _08063168 @ =0x0000017F + cmp r1, r0 + bhi _0806315C + lsrs r3, r3, #1 +_0806315C: + subs r0, r1, r3 + cmp r0, #0xff + bhi _08063172 + str r2, [r4, #0x70] + b _08063174 + .align 2, 0 +_08063168: .4byte 0x0000017F +_0806316C: + cmp r1, #0x80 + bls _08063174 + subs r0, r1, r3 +_08063172: + str r0, [r4, #0x70] +_08063174: + ldr r0, [r4, #0x34] + subs r0, r0, r6 + b _080631C8 +_0806317A: + ldr r0, [r4, #0x6c] + ldr r1, _080631B4 @ =0x0000033F + cmp r0, r1 + bhi _08063186 + adds r0, r0, r5 + str r0, [r4, #0x6c] +_08063186: + cmp r2, r1 + bls _080631BC + movs r2, #0x80 + lsls r2, r2, #1 + adds r0, r4, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + movs r1, #0x11 + bl sub_080042AC + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #0x11 + strh r0, [r1] + ldr r2, _080631B8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _080631DC + .align 2, 0 +_080631B4: .4byte 0x0000033F +_080631B8: .4byte gUnk_02033280 +_080631BC: + lsls r0, r3, #1 + adds r0, r2, r0 + str r0, [r4, #0x70] + ldr r0, [r4, #0x34] + ldr r1, _080631E0 @ =0xFFFE0000 + adds r0, r0, r1 +_080631C8: + str r0, [r4, #0x34] +_080631CA: + ldr r1, [r4, #0x6c] + ldr r2, [r4, #0x70] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + ldr r1, _080631E4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_080631DC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080631E0: .4byte 0xFFFE0000 +_080631E4: .4byte gUnk_02033280 + + thumb_func_start sub_080631E8 +sub_080631E8: @ 0x080631E8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806320C @ =gUnk_0810C804 + 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] + cmp r0, #0 + beq _08063208 + adds r0, r4, #0 + bl sub_0806ED78 +_08063208: + pop {r4, pc} + .align 2, 0 +_0806320C: .4byte gUnk_0810C804 + + thumb_func_start sub_08063210 +sub_08063210: @ 0x08063210 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + movs r1, #0 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063220 +sub_08063220: @ 0x08063220 + push {lr} + adds r2, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08063238 + movs r0, #2 + strb r0, [r2, #0xc] + movs r1, #8 + b _0806323A +_08063238: + movs r1, #0 +_0806323A: + adds r0, r2, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _0806324C + adds r0, r2, #0 + bl sub_080042AC + b _08063252 +_0806324C: + adds r0, r2, #0 + bl sub_08063280 +_08063252: + pop {pc} + + thumb_func_start sub_08063254 +sub_08063254: @ 0x08063254 + push {r4, lr} + adds r4, r0, #0 + bl sub_08063280 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08063274 + movs r0, #3 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08056378 +_08063274: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08063278 +sub_08063278: @ 0x08063278 + push {lr} + bl sub_08063280 + pop {pc} + + thumb_func_start sub_08063280 +sub_08063280: @ 0x08063280 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r2, [r3] + movs r1, #0x7f + ands r1, r2 + adds r0, r1, #0 + eors r0, r2 + strb r0, [r3] + cmp r1, #2 + bne _080632A6 + adds r0, r4, #0 + movs r1, #0x31 + movs r2, #0 + bl CreateFX +_080632A6: + pop {r4, pc} + + thumb_func_start sub_080632A8 +sub_080632A8: @ 0x080632A8 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080632BE + adds r0, r2, #0 + bl sub_08063410 + b _080632C4 +_080632BE: + adds r0, r2, #0 + bl sub_080632C8 +_080632C4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080632C8 +sub_080632C8: @ 0x080632C8 + push {lr} + ldr r2, _080632DC @ =gUnk_0810C8E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080632DC: .4byte gUnk_0810C8E0 + + thumb_func_start sub_080632E0 +sub_080632E0: @ 0x080632E0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08063310 @ =gUnk_0810C8D4 + bl sub_0806FDEC + cmp r0, #0 + beq _0806330E + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + 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, #1 + strb r0, [r4, #0xc] +_0806330E: + pop {r4, pc} + .align 2, 0 +_08063310: .4byte gUnk_0810C8D4 + + thumb_func_start sub_08063314 +sub_08063314: @ 0x08063314 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + movs r1, #0xff + ands r0, r1 + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08063342 + adds r0, r4, #0 + bl sub_080633C8 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08063342 + adds r0, r4, #0 + bl sub_08004260 +_08063342: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08063360 + ldrb r0, [r4, #0xe] + ldr r1, _08063368 @ =0x00000A01 + adds r0, r0, r1 + bl sub_08056378 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] +_08063360: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063368: .4byte 0x00000A01 + + thumb_func_start sub_0806336C +sub_0806336C: @ 0x0806336C + push {lr} + adds r2, r0, #0 + ldr r0, _0806338C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806338A + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + movs r1, #8 + bl sub_08004260 +_0806338A: + pop {pc} + .align 2, 0 +_0806338C: .4byte gUnk_02000050 + + thumb_func_start sub_08063390 +sub_08063390: @ 0x08063390 + 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 _080633BE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_080633BE: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080633C8 +sub_080633C8: @ 0x080633C8 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + bge _080633DE + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] +_080633DE: + pop {r4, pc} + + thumb_func_start sub_080633E0 +sub_080633E0: @ 0x080633E0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_08063410 +sub_08063410: @ 0x08063410 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _08063442 + ldr r1, _08063464 @ =gUnk_0810C8D4 + bl sub_0806FDEC + cmp r0, #0 + beq _08063462 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08063436 + ldr r0, _08063468 @ =gUnk_0810C894 + str r0, [r4, #0x48] + strb r5, [r4, #0xb] +_08063436: + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08078778 +_08063442: + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _0806344E + adds r0, r4, #0 + bl sub_0806346C +_0806344E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 +_08063462: + pop {r4, r5, pc} + .align 2, 0 +_08063464: .4byte gUnk_0810C8D4 +_08063468: .4byte gUnk_0810C894 + + thumb_func_start sub_0806346C +sub_0806346C: @ 0x0806346C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r6, _080634D8 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r6, r0] + movs r2, #0x2e + ldrsh r0, [r5, r2] + subs r4, r1, r0 + movs r0, #0x32 + ldrsh r1, [r6, r0] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r3, r1, r0 + adds r4, #0x30 + adds r3, #0x18 + cmp r4, #0 + bge _08063490 + movs r4, #0 +_08063490: + cmp r4, #0x50 + ble _08063496 + movs r4, #0x50 +_08063496: + cmp r3, #0 + bge _0806349C + movs r3, #0 +_0806349C: + cmp r3, #0x40 + ble _080634A2 + movs r3, #0x40 +_080634A2: + asrs r4, r4, #4 + asrs r3, r3, #4 + ldr r2, _080634DC @ =gUnk_0810C8F0 + ldrb r1, [r6, #0x14] + lsrs r1, r1, #1 + lsls r0, r4, #2 + adds r1, r1, r0 + lsls r0, r3, #1 + adds r0, r0, r3 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r4, [r1] + ldrb r0, [r5, #0xb] + cmp r4, r0 + beq _080634D6 + lsls r3, r4, #3 + ldr r0, _080634E0 @ =gUnk_0810C89C + adds r3, r3, r0 + movs r2, #4 + ldrsb r2, [r3, r2] + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 + strb r4, [r5, #0xb] +_080634D6: + pop {r4, r5, r6, pc} + .align 2, 0 +_080634D8: .4byte gLinkEntity +_080634DC: .4byte gUnk_0810C8F0 +_080634E0: .4byte gUnk_0810C89C + + thumb_func_start sub_080634E4 +sub_080634E4: @ 0x080634E4 + ldrb r0, [r0, #0xb] + str r0, [r1, #4] + bx lr + .align 2, 0 + + thumb_func_start sub_080634EC +sub_080634EC: @ 0x080634EC + ldr r2, _080634FC @ =gUnk_02034350 + ldr r1, _08063500 @ =gUnk_0810C88C + ldrb r0, [r0, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r2, #6] + bx lr + .align 2, 0 +_080634FC: .4byte gUnk_02034350 +_08063500: .4byte gUnk_0810C88C + + thumb_func_start sub_08063504 +sub_08063504: @ 0x08063504 + push {r4, lr} + adds r4, r1, #0 + ldr r1, _08063520 @ =gUnk_0810C88C + ldrb r0, [r0, #0xb] + adds r0, r0, r1 + ldrb r0, [r0] + bl sub_080544DC + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + str r1, [r4, #0x14] + pop {r4, pc} + .align 2, 0 +_08063520: .4byte gUnk_0810C88C + + thumb_func_start sub_08063524 +sub_08063524: @ 0x08063524 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806353A + adds r0, r2, #0 + bl sub_0806362C + b _08063540 +_0806353A: + adds r0, r2, #0 + bl sub_08063544 +_08063540: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063544 +sub_08063544: @ 0x08063544 + push {lr} + ldr r2, _08063558 @ =gUnk_0810CAA0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08063558: .4byte gUnk_0810CAA0 + + thumb_func_start sub_0806355C +sub_0806355C: @ 0x0806355C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08063584 +sub_08063584: @ 0x08063584 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + blt _080635B2 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080635B8 + bl sub_08000E50 + movs r1, #0x3f + ands r1, r0 + cmp r1, #0 + bne _080635B2 + movs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC +_080635B2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _080635D0 +_080635B8: + 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 _080635D0 + movs r0, #0 + strb r0, [r4, #0xf] +_080635D0: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _080635FC + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0xe] + ldr r1, _08063604 @ =0x00000A01 + adds r0, r0, r1 + bl sub_08056378 +_080635FC: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063604: .4byte 0x00000A01 + + thumb_func_start sub_08063608 +sub_08063608: @ 0x08063608 + push {lr} + adds r2, r0, #0 + ldr r0, _08063628 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08063626 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xf] + adds r0, r2, #0 + movs r1, #4 + bl sub_080042AC +_08063626: + pop {pc} + .align 2, 0 +_08063628: .4byte gUnk_02000050 + + thumb_func_start sub_0806362C +sub_0806362C: @ 0x0806362C + push {r4, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _08063662 + cmp r3, #1 + bgt _08063640 + cmp r3, #0 + beq _08063646 + b _080636D4 +_08063640: + cmp r3, #2 + beq _080636BA + b _080636D4 +_08063646: + 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 + adds r0, #0x69 + strb r3, [r0] + adds r0, r4, #0 + bl sub_0807DD64 +_08063662: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080636A4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _080636A0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _080636D4 + .align 2, 0 +_080636A0: .4byte gLinkEntity +_080636A4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _080636D4 +_080636BA: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080636D4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_080636D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080636D8 +sub_080636D8: @ 0x080636D8 + push {lr} + ldr r1, _080636EC @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _080636F0 @ =gUnk_0810CAAC + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080636EC: .4byte gUnk_02002A40 +_080636F0: .4byte gUnk_0810CAAC + + thumb_func_start sub_080636F4 +sub_080636F4: @ 0x080636F4 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806370C +sub_0806370C: @ 0x0806370C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08063738 + 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] + ldrh r0, [r2, #0x32] + subs r0, #4 + strh r0, [r2, #0x32] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _0806373E +_08063738: + adds r0, r2, #0 + bl sub_080042B8 +_0806373E: + pop {pc} + + thumb_func_start sub_08063740 +sub_08063740: @ 0x08063740 + push {lr} + ldr r2, _08063754 @ =gUnk_0810CBD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08063754: .4byte gUnk_0810CBD8 + + thumb_func_start sub_08063758 +sub_08063758: @ 0x08063758 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08063794 @ =gUnk_0810CB78 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080637B4 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + ands r1, r2 + lsls r1, r1, #6 + ldrb r2, [r4, #0x18] + subs r0, #0x42 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _08063798 + movs r0, #6 + b _0806379A + .align 2, 0 +_08063794: .4byte gUnk_0810CB78 +_08063798: + movs r0, #2 +_0806379A: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + movs r1, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + bl sub_080637B8 +_080637B4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080637B8 +sub_080637B8: @ 0x080637B8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08063804 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08063800 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _080637F2 + adds r1, #4 +_080637F2: + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _0806382E + .align 2, 0 +_08063800: .4byte gLinkEntity +_08063804: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r5, r4, #0 + adds r5, #0x59 + ldrb r0, [r5] + cmp r0, #0xfe + bne _08063828 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r5] +_08063828: + adds r0, r4, #0 + bl sub_08004274 +_0806382E: + pop {r4, r5, pc} + + thumb_func_start sub_08063830 +sub_08063830: @ 0x08063830 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806384C + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_0806384C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08063850 +sub_08063850: @ 0x08063850 + push {lr} + ldrb r3, [r0, #0x18] + lsls r3, r3, #0x19 + lsrs r3, r3, #0x1f + rsbs r2, r3, #0 + orrs r2, r3 + asrs r2, r2, #0x1f + movs r3, #4 + ands r2, r3 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063874 +sub_08063874: @ 0x08063874 + ldrb r1, [r0, #0xe] + strb r1, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_0806387C +sub_0806387C: @ 0x0806387C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r4, #3 + movs r0, #0xda + bl sub_0807CBD0 + cmp r0, #0 + bne _08063896 + movs r4, #0 + movs r0, #0xda + bl sub_0807CCB4 + b _080638D6 +_08063896: + movs r0, #0xd1 + bl sub_0807CBD0 + cmp r0, #0 + bne _080638D6 + movs r5, #0 + movs r4, #1 +_080638A4: + ldr r0, _080638F8 @ =gUnk_02002B0E + adds r1, r4, #0 + bl sub_0801D5A8 + cmp r0, #0 + beq _080638B2 + adds r5, #1 +_080638B2: + adds r4, #1 + cmp r4, #0x82 + ble _080638A4 + movs r4, #1 + cmp r5, #0x81 + ble _080638D6 + movs r4, #2 + movs r0, #0xd1 + bl sub_0807CCB4 + ldr r0, _080638FC @ =0x00000A17 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _08063900 @ =0x00000A57 + movs r1, #1 + bl sub_0807BA8C +_080638D6: + ldr r0, _08063904 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r1, r0, #6 + cmp r1, #0 + bge _080638E2 + movs r1, #0 +_080638E2: + ldr r2, _08063908 @ =gUnk_0810CBE4 + lsls r0, r4, #1 + lsls r1, r1, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_080638F8: .4byte gUnk_02002B0E +_080638FC: .4byte 0x00000A17 +_08063900: .4byte 0x00000A57 +_08063904: .4byte gUnk_02002A40 +_08063908: .4byte gUnk_0810CBE4 + + thumb_func_start sub_0806390C +sub_0806390C: @ 0x0806390C + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #1 + movs r0, #0xd9 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806392E + movs r5, #0 + movs r0, #0xd9 + bl sub_0807CCB4 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #1 + str r0, [r1, #0x14] +_0806392E: + ldr r0, _08063940 @ =gUnk_0810CC04 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08063940: .4byte gUnk_0810CC04 + + thumb_func_start sub_08063944 +sub_08063944: @ 0x08063944 + push {lr} + adds r3, r0, #0 + movs r0, #0 + str r0, [r1, #0x14] + ldr r0, _0806396C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _08063958 + movs r0, #0 +_08063958: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _08063970 @ =gUnk_0810CC08 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806396C: .4byte gUnk_02002A40 +_08063970: .4byte gUnk_0810CC08 + + thumb_func_start sub_08063974 +sub_08063974: @ 0x08063974 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + lsls r5, r5, #2 + ldr r0, _080639C8 @ =gUnk_0810CBC0 + adds r5, r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0xf + ands r2, r0 + ldrb r0, [r5] + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldr r2, _080639CC @ =gUnk_0810CD88 + ldrb r1, [r4, #0x1e] + movs r0, #3 + ands r0, r1 + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r2, [r0] + ldrb r0, [r5, #1] + adds r2, r2, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 +_080639C8: .4byte gUnk_0810CBC0 +_080639CC: .4byte gUnk_0810CD88 + + thumb_func_start sub_080639D0 +sub_080639D0: @ 0x080639D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_080639E8 +sub_080639E8: @ 0x080639E8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08063A40 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08063A3C @ =gUnk_0810CB78 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08063A5C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08096208 + b _08063A5C + .align 2, 0 +_08063A3C: .4byte gUnk_0810CB78 +_08063A40: + adds r5, r4, #0 + adds r5, #0x59 + ldrb r0, [r5] + cmp r0, #0xfe + bne _08063A56 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r5] +_08063A56: + adds r0, r4, #0 + bl sub_08004274 +_08063A5C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08063A60 +sub_08063A60: @ 0x08063A60 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08063A76 + adds r0, r2, #0 + bl sub_08063B68 + b _08063A7C +_08063A76: + adds r0, r2, #0 + bl sub_08063A80 +_08063A7C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063A80 +sub_08063A80: @ 0x08063A80 + push {lr} + ldr r2, _08063A94 @ =gUnk_0810CDF8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08063A94: .4byte gUnk_0810CDF8 + + thumb_func_start sub_08063A98 +sub_08063A98: @ 0x08063A98 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #4 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08063AC0 +sub_08063AC0: @ 0x08063AC0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + blt _08063AEE + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08063AF4 + bl sub_08000E50 + movs r1, #0x3f + ands r1, r0 + cmp r1, #0 + bne _08063AEE + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + movs r0, #1 + strb r0, [r4, #0xf] +_08063AEE: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _08063B0C +_08063AF4: + 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 _08063B0C + movs r0, #0 + strb r0, [r4, #0xf] +_08063B0C: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08063B38 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + ldrb r0, [r4, #0xe] + ldr r1, _08063B40 @ =0x00000A01 + adds r0, r0, r1 + bl sub_08056378 +_08063B38: + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063B40: .4byte 0x00000A01 + + thumb_func_start sub_08063B44 +sub_08063B44: @ 0x08063B44 + push {lr} + adds r2, r0, #0 + ldr r0, _08063B64 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08063B62 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xf] + adds r0, r2, #0 + movs r1, #4 + bl sub_080042AC +_08063B62: + pop {pc} + .align 2, 0 +_08063B64: .4byte gUnk_02000050 + + thumb_func_start sub_08063B68 +sub_08063B68: @ 0x08063B68 + push {r4, lr} + adds r4, r0, #0 + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _08063B9E + cmp r3, #1 + bgt _08063B7C + cmp r3, #0 + beq _08063B82 + b _08063C10 +_08063B7C: + cmp r3, #2 + beq _08063BF6 + b _08063C10 +_08063B82: + 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 + adds r0, #0x69 + strb r3, [r0] + adds r0, r4, #0 + bl sub_0807DD64 +_08063B9E: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08063BE0 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08063BDC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08063C10 + .align 2, 0 +_08063BDC: .4byte gLinkEntity +_08063BE0: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _08063C10 +_08063BF6: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08063C10 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_08063C10: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08063C14 +sub_08063C14: @ 0x08063C14 + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C28 + movs r1, #8 + bl sub_080042AC +_08063C28: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C2C +sub_08063C2C: @ 0x08063C2C + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C40 + movs r1, #4 + bl sub_080042AC +_08063C40: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C44 +sub_08063C44: @ 0x08063C44 + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C58 + movs r1, #0 + bl sub_080042AC +_08063C58: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C5C +sub_08063C5C: @ 0x08063C5C + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C70 + movs r1, #9 + bl sub_080042AC +_08063C70: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C74 +sub_08063C74: @ 0x08063C74 + push {lr} + movs r0, #7 + movs r1, #0x14 + bl sub_0805EB9C + cmp r0, #0 + beq _08063C8C + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2CFC +_08063C8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063C90 +sub_08063C90: @ 0x08063C90 + push {lr} + ldr r1, _08063CA4 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _08063CA8 @ =gUnk_0810CE04 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08063CA4: .4byte gUnk_02002A40 +_08063CA8: .4byte gUnk_0810CE04 + + thumb_func_start sub_08063CAC +sub_08063CAC: @ 0x08063CAC + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08063CC4 +sub_08063CC4: @ 0x08063CC4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08063CF0 + 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] + ldrh r0, [r2, #0x32] + subs r0, #4 + strh r0, [r2, #0x32] + adds r0, r2, #0 + movs r1, #2 + bl sub_080042AC + b _08063CF6 +_08063CF0: + adds r0, r2, #0 + bl sub_080042B8 +_08063CF6: + pop {pc} + + thumb_func_start sub_08063CF8 +sub_08063CF8: @ 0x08063CF8 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08063D1C + ldr r0, _08063D18 @ =gUnk_0810F544 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08063D22 + .align 2, 0 +_08063D18: .4byte gUnk_0810F544 +_08063D1C: + adds r0, r2, #0 + bl sub_08063D24 +_08063D22: + pop {pc} + + thumb_func_start sub_08063D24 +sub_08063D24: @ 0x08063D24 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08063D40 @ =gUnk_0810F550 + 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_0806ED78 + pop {r4, pc} + .align 2, 0 +_08063D40: .4byte gUnk_0810F550 + + thumb_func_start sub_08063D44 +sub_08063D44: @ 0x08063D44 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08063DA0 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _08063DC6 + ldrb r0, [r4, #9] + movs r1, #0x15 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + lsls r1, r1, #4 + ldr r0, _08063DA4 @ =gUnk_0810F524 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08063DC6 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + ldr r0, _08063DA8 @ =gUnk_0810F6BC + ldrb r1, [r4, #0xa] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + movs r2, #0 + bl sub_0806EE04 + ldrb r0, [r4, #0xa] + cmp r0, #0 + blt _08063DB6 + cmp r0, #3 + bgt _08063DAC + movs r0, #0xc + bl sub_080A7EE0 + str r4, [r0, #0x50] + movs r1, #0x3c + strb r1, [r0, #0xf] + b _08063DB6 + .align 2, 0 +_08063DA0: .4byte gUnk_03003DBC +_08063DA4: .4byte gUnk_0810F524 +_08063DA8: .4byte gUnk_0810F6BC +_08063DAC: + cmp r0, #5 + bgt _08063DB6 + adds r0, r4, #0 + bl sub_08078778 +_08063DB6: + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_08063DC8 +_08063DC6: + pop {r4, pc} + + thumb_func_start sub_08063DC8 +sub_08063DC8: @ 0x08063DC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0xff + bne _08063DF8 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r1, _08063DF4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + b _08063E4C + .align 2, 0 +_08063DF4: .4byte gLinkEntity +_08063DF8: + adds r0, r4, #0 + bl sub_0806EE20 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08063E18 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + b _08063E1E +_08063E18: + adds r0, r4, #0 + bl sub_08004274 +_08063E1E: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08063E4C + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r2] + ldr r1, _08063E50 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08064428 +_08063E4C: + pop {r4, pc} + .align 2, 0 +_08063E50: .4byte gLinkEntity + + thumb_func_start sub_08063E54 +sub_08063E54: @ 0x08063E54 + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08063E68 + movs r0, #0xf + bl sub_0807CD10 +_08063E68: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08063E6C +sub_08063E6C: @ 0x08063E6C + push {lr} + adds r2, r0, #0 + ldr r0, _08063E8C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08063E8A + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_08063E8A: + pop {pc} + .align 2, 0 +_08063E8C: .4byte gUnk_02000050 + + thumb_func_start sub_08063E90 +sub_08063E90: @ 0x08063E90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #9] + movs r1, #0x15 + eors r0, r1 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + lsls r1, r1, #4 + ldr r0, _08063EC8 @ =gUnk_0810F524 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08063F1E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + cmp r1, #0 + beq _08063ECC + adds r1, r4, #0 + adds r1, #0x70 + movs r0, #8 + strb r0, [r1] + b _08063ED2 + .align 2, 0 +_08063EC8: .4byte gUnk_0810F524 +_08063ECC: + adds r0, r4, #0 + adds r0, #0x70 + strb r1, [r0] +_08063ED2: + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08063EF2 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _08063EFE +_08063EF2: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_08063EFE: + adds r1, r4, #0 + adds r1, #0x71 + movs r0, #0 + strb r0, [r1] + subs r1, #0x39 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08063F20 +_08063F1E: + pop {r4, pc} + + thumb_func_start sub_08063F20 +sub_08063F20: @ 0x08063F20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08063F72 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r2] + ldr r1, _08063F74 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0x70 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08064428 +_08063F72: + pop {r4, pc} + .align 2, 0 +_08063F74: .4byte gLinkEntity + + thumb_func_start sub_08063F78 +sub_08063F78: @ 0x08063F78 + push {lr} + adds r2, r0, #0 + ldr r0, _08063FA8 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08063FA6 + ldrb r0, [r2, #0xc] + subs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + adds r0, r2, #0 + adds r0, #0x70 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, #4 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_08004260 +_08063FA6: + pop {pc} + .align 2, 0 +_08063FA8: .4byte gUnk_02000050 + + thumb_func_start sub_08063FAC +sub_08063FAC: @ 0x08063FAC + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x3f + adds r2, r0, #0 + ands r2, r1 + ldrb r3, [r6, #0x1e] + adds r5, r0, #0 + ands r5, r3 + adds r1, r6, #0 + adds r1, #0x5b + ldrb r1, [r1] + adds r4, r0, #0 + ands r4, r1 + ldrb r0, [r6, #9] + cmp r0, #0x15 + bne _08063FEC + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + beq _08063FE2 + adds r5, #0x21 + movs r2, #1 + rsbs r2, r2, #0 + movs r4, #0 + b _08063FF6 +_08063FE2: + adds r2, #0x19 + cmp r4, #0 + beq _08063FF6 + adds r4, #0x1f + b _08063FF6 +_08063FEC: + adds r2, #0x46 + adds r5, #0x2d + cmp r4, #0 + beq _08063FF6 + adds r4, #0x4c +_08063FF6: + subs r4, #1 + adds r0, r6, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r6, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FF60 + adds r0, r6, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r6, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r6, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 + adds r0, r6, #0 + bl sub_0807000C + pop {r4, r5, r6, pc} + + thumb_func_start sub_08064030 +sub_08064030: @ 0x08064030 + ldr r0, _08064040 @ =gUnk_02034350 + ldr r2, [r0, #0x68] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_08064040: .4byte gUnk_02034350 + + thumb_func_start sub_08064044 +sub_08064044: @ 0x08064044 + ldr r1, _0806404C @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r1, #8] + bx lr + .align 2, 0 +_0806404C: .4byte gUnk_030010A0 + + thumb_func_start sub_08064050 +sub_08064050: @ 0x08064050 + push {lr} + adds r2, r1, #0 + movs r1, #0 + str r1, [r2, #4] + ldrb r0, [r0, #0xb] + cmp r0, #0x12 + beq _08064072 + cmp r0, #0x12 + bgt _08064068 + cmp r0, #0x11 + beq _0806406E + b _0806407A +_08064068: + cmp r0, #0x13 + beq _08064076 + b _0806407A +_0806406E: + movs r0, #1 + b _08064078 +_08064072: + movs r0, #2 + b _08064078 +_08064076: + movs r0, #3 +_08064078: + str r0, [r2, #4] +_0806407A: + pop {pc} + + thumb_func_start sub_0806407C +sub_0806407C: @ 0x0806407C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _080640E8 + adds r0, #1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r5, #0x12] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _080640C4 + cmp r0, #8 + bgt _080640B2 + cmp r0, #0 + beq _080640BC + b _080640DA +_080640B2: + cmp r0, #0x10 + beq _080640CC + cmp r0, #0x18 + beq _080640D4 + b _080640DA +_080640BC: + cmp r1, #0x10 + bne _080640DA + movs r1, #8 + b _080640DA +_080640C4: + cmp r1, #0x18 + bne _080640DA + movs r1, #0x10 + b _080640DA +_080640CC: + cmp r1, #0 + bne _080640DA + movs r1, #0x18 + b _080640DA +_080640D4: + cmp r1, #8 + bne _080640DA + movs r1, #0 +_080640DA: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_080640E8: + ldrb r0, [r4, #0x14] + lsrs r2, r0, #1 + adds r1, r2, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806410A + adds r0, r4, #0 + adds r0, #0x70 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r1, #4 + adds r1, r2, r1 + adds r0, r4, #0 + bl sub_08004260 +_0806410A: + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806412C + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806412C: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _0806413E + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806413E: + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r2, r4, #0 + adds r2, #0x6a + movs r6, #0 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806415A + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_0806415A: + cmp r1, r3 + bge _08064168 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064168: + ldrh r0, [r5, #0x12] + subs r0, #1 + strh r0, [r5, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0806417A + ldr r1, _0806417C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806417A: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806417C: .4byte gUnk_02033280 + + thumb_func_start sub_08064180 +sub_08064180: @ 0x08064180 + push {lr} + movs r0, #7 + movs r1, #0x15 + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _08064194 + bl sub_0805E7BC +_08064194: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064198 +sub_08064198: @ 0x08064198 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x71 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080641AE + subs r0, r1, #1 + strb r0, [r4] +_080641AE: + ldr r0, _080641D8 @ =gLinkEntity + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #0x32 + ldrsh r0, [r5, r2] + subs r1, r1, r0 + cmp r1, #2 + ble _080641C0 + movs r1, #2 +_080641C0: + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080641CA + adds r1, r0, #0 +_080641CA: + adds r6, r4, #0 + cmp r1, #0 + beq _08064256 + cmp r1, #0 + ble _080641DC + movs r0, #0x10 + b _080641DE + .align 2, 0 +_080641D8: .4byte gLinkEntity +_080641DC: + movs r0, #0 +_080641DE: + strb r0, [r5, #0x15] + cmp r1, #0 + bge _080641E6 + rsbs r1, r1, #0 +_080641E6: + lsls r0, r1, #8 + strh r0, [r5, #0x24] + movs r0, #0x32 + ldrsh r4, [r5, r0] + adds r0, r5, #0 + bl sub_080AEF88 + movs r1, #0x32 + ldrsh r0, [r5, r1] + adds r6, r5, #0 + adds r6, #0x71 + cmp r4, r0 + beq _08064256 + ldr r0, _080642B0 @ =gLinkEntity + movs r2, #0x24 + ldrsh r1, [r0, r2] + movs r0, #0xa0 + lsls r0, r0, #1 + cmp r1, r0 + ble _08064222 + ldr r0, _080642B4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #6 + bl __modsi3 + cmp r0, #0 + bne _08064222 + adds r0, r5, #0 + bl sub_080A29FC +_08064222: + adds r4, r5, #0 + adds r4, #0x71 + movs r0, #0xa + strb r0, [r4] + ldrb r0, [r5, #0x15] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + adds r6, r4, #0 + ldrb r0, [r0] + cmp r1, r0 + beq _08064256 + adds r0, r5, #0 + bl sub_08004260 +_08064256: + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _0806428C + ldr r1, _080642B0 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806428C + adds r0, r5, #0 + bl sub_08004260 +_0806428C: + adds r0, r5, #0 + bl sub_0806ED78 + movs r0, #0x36 + ldrsh r4, [r5, r0] + ldr r0, _080642B0 @ =gLinkEntity + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + cmp r4, #0 + bge _080642AC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080642AC + adds r0, r5, #0 + bl sub_080A29FC +_080642AC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080642B0: .4byte gLinkEntity +_080642B4: .4byte gUnk_030010A0 + + thumb_func_start sub_080642B8 +sub_080642B8: @ 0x080642B8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r5, #0 + adds r4, #0x71 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080642CE + subs r0, r1, #1 + strb r0, [r4] +_080642CE: + ldr r0, _080642F8 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r2, #0x2e + ldrsh r0, [r5, r2] + subs r1, r1, r0 + cmp r1, #2 + ble _080642E0 + movs r1, #2 +_080642E0: + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bge _080642EA + adds r1, r0, #0 +_080642EA: + adds r6, r4, #0 + cmp r1, #0 + beq _08064376 + cmp r1, #0 + ble _080642FC + movs r0, #8 + b _080642FE + .align 2, 0 +_080642F8: .4byte gLinkEntity +_080642FC: + movs r0, #0x18 +_080642FE: + strb r0, [r5, #0x15] + cmp r1, #0 + bge _08064306 + rsbs r1, r1, #0 +_08064306: + lsls r0, r1, #8 + strh r0, [r5, #0x24] + movs r0, #0x2e + ldrsh r4, [r5, r0] + adds r0, r5, #0 + bl sub_080AEF88 + movs r1, #0x2e + ldrsh r0, [r5, r1] + adds r6, r5, #0 + adds r6, #0x71 + cmp r4, r0 + beq _08064376 + ldr r0, _080643D0 @ =gLinkEntity + movs r2, #0x24 + ldrsh r1, [r0, r2] + movs r0, #0xa0 + lsls r0, r0, #1 + cmp r1, r0 + ble _08064342 + ldr r0, _080643D4 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #6 + bl __modsi3 + cmp r0, #0 + bne _08064342 + adds r0, r5, #0 + bl sub_080A29FC +_08064342: + adds r4, r5, #0 + adds r4, #0x71 + movs r0, #0xa + strb r0, [r4] + ldrb r0, [r5, #0x15] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, #4 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + adds r6, r4, #0 + ldrb r0, [r0] + cmp r1, r0 + beq _08064376 + adds r0, r5, #0 + bl sub_08004260 +_08064376: + movs r0, #0 + ldrsb r0, [r6, r0] + cmp r0, #0 + bne _080643AC + ldr r1, _080643D0 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5B0 + strb r0, [r5, #0x14] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r1, r5, #0 + adds r1, #0x70 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r1, r0, r1 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _080643AC + adds r0, r5, #0 + bl sub_08004260 +_080643AC: + adds r0, r5, #0 + bl sub_0806ED78 + movs r0, #0x36 + ldrsh r4, [r5, r0] + ldr r0, _080643D0 @ =gLinkEntity + ldrh r0, [r0, #0x36] + strh r0, [r5, #0x36] + cmp r4, #0 + bge _080643CC + lsls r0, r0, #0x10 + cmp r0, #0 + bne _080643CC + adds r0, r5, #0 + bl sub_080A29FC +_080643CC: + pop {r4, r5, r6, pc} + .align 2, 0 +_080643D0: .4byte gLinkEntity +_080643D4: .4byte gUnk_030010A0 + + thumb_func_start sub_080643D8 +sub_080643D8: @ 0x080643D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _080643EA + movs r3, #0 + b _08064406 +_080643EA: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + bne _080643F8 + movs r3, #1 + b _08064406 +_080643F8: + movs r0, #3 + bl sub_0807CA84 + movs r3, #3 + cmp r0, #0 + bne _08064406 + movs r3, #2 +_08064406: + ldrb r1, [r4, #0xb] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + ldr r2, _08064424 @ =gUnk_0810F6D4 + lsls r1, r3, #1 + lsls r0, r0, #3 + adds r1, r1, r0 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_08064424: .4byte gUnk_0810F6D4 + + thumb_func_start sub_08064428 +sub_08064428: @ 0x08064428 + push {lr} + adds r3, r0, #0 + ldr r0, _0806444C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r1, r0, #2 + cmp r1, #0 + bge _08064438 + movs r1, #0 +_08064438: + ldrb r2, [r3, #0xb] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08064454 + ldrb r0, [r3, #0xb] + lsls r0, r0, #3 + ldr r1, _08064450 @ =gUnk_0810CF4C + b _08064460 + .align 2, 0 +_0806444C: .4byte gUnk_02002A40 +_08064450: .4byte gUnk_0810CF4C +_08064454: + movs r0, #0x7f + ands r0, r2 + lsls r0, r0, #6 + lsls r1, r1, #3 + ldr r2, _0806446C @ =gUnk_0810D0A4 + adds r1, r1, r2 +_08064460: + adds r1, r0, r1 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806446C: .4byte gUnk_0810D0A4 + + thumb_func_start sub_08064470 +sub_08064470: @ 0x08064470 + push {lr} + ldr r0, _08064484 @ =gUnk_03003F80 + adds r0, #0xab + ldrb r0, [r0] + cmp r0, #1 + beq _0806447E + movs r0, #0 +_0806447E: + str r0, [r1, #0x14] + pop {pc} + .align 2, 0 +_08064484: .4byte gUnk_03003F80 + + thumb_func_start sub_08064488 +sub_08064488: @ 0x08064488 + push {lr} + ldr r1, _080644A0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #2 + beq _0806449C + adds r1, #0xab + movs r0, #0 + strb r0, [r1] +_0806449C: + pop {pc} + .align 2, 0 +_080644A0: .4byte gUnk_03003F80 + + thumb_func_start sub_080644A4 +sub_080644A4: @ 0x080644A4 + ldr r0, _080644B0 @ =gUnk_03003F80 + adds r0, #0xab + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_080644B0: .4byte gUnk_03003F80 + + thumb_func_start sub_080644B4 +sub_080644B4: @ 0x080644B4 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldrb r1, [r0, #0x14] + ldr r0, [r2, #4] + cmp r1, r0 + bne _080644C4 + movs r3, #1 +_080644C4: + str r3, [r2, #0x14] + pop {pc} + + thumb_func_start sub_080644C8 +sub_080644C8: @ 0x080644C8 + push {r4, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _08064500 @ =gUnk_03000BF0 + movs r4, #0xa + ldrsh r1, [r3, r4] + subs r1, r0, r1 + adds r0, r1, #0 + adds r0, #8 + cmp r0, #0 + blt _08064504 + adds r0, r1, #0 + subs r0, #8 + cmp r0, #0xf0 + bgt _08064504 + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0xc + ldrsh r0, [r3, r2] + subs r0, r1, r0 + cmp r0, #0 + blt _08064504 + subs r0, #0x18 + cmp r0, #0xa0 + bgt _08064504 + movs r0, #1 + b _08064506 + .align 2, 0 +_08064500: .4byte gUnk_03000BF0 +_08064504: + movs r0, #0 +_08064506: + pop {r4, pc} + + thumb_func_start sub_08064508 +sub_08064508: @ 0x08064508 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806451E + adds r0, r2, #0 + bl sub_08064570 + b _08064522 +_0806451E: + bl sub_0805E780 +_08064522: + pop {pc} + + thumb_func_start sub_08064524 +sub_08064524: @ 0x08064524 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + ldrb r5, [r4, #0x1e] + ldrb r0, [r4, #9] + cmp r0, #0x16 + bne _08064540 + cmp r2, #0 + beq _08064548 + adds r2, #0xa + b _08064548 +_08064540: + cmp r2, #0 + beq _08064546 + adds r2, #0x1a +_08064546: + adds r5, #0x10 +_08064548: + subs r2, #1 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08064570 +sub_08064570: @ 0x08064570 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _080645EA + cmp r5, #1 + bgt _08064584 + cmp r5, #0 + beq _0806458A + b _0806463C +_08064584: + cmp r5, #2 + beq _0806462C + b _0806463C +_0806458A: + ldrb r1, [r4, #9] + movs r0, #0x16 + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _080645D0 @ =gUnk_0810F874 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806463C + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _080645D4 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x6c + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _080645E0 + .align 2, 0 +_080645D0: .4byte gUnk_0810F874 +_080645D4: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x6c + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_080645E0: + movs r0, #0 + str r0, [r4, #0x68] + adds r0, r4, #0 + bl sub_0807DD50 +_080645EA: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _0806463C + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xc] + strb r1, [r2] + ldr r1, _08064628 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + ldr r0, [r4, #0x68] + cmp r0, #0 + beq _0806463C + bl _call_via_r0 + b _0806463C + .align 2, 0 +_08064628: .4byte gLinkEntity +_0806462C: + ldr r0, _08064640 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806463C + movs r0, #1 + strb r0, [r4, #0xc] +_0806463C: + pop {r4, r5, pc} + .align 2, 0 +_08064640: .4byte gUnk_02000050 + + thumb_func_start sub_08064644 +sub_08064644: @ 0x08064644 + ldr r1, [r1, #4] + str r1, [r0, #0x68] + bx lr + .align 2, 0 + + thumb_func_start sub_0806464C +sub_0806464C: @ 0x0806464C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x15 + bl GetProgressFlag + cmp r0, #0 + beq _0806465E + movs r4, #2 + b _08064674 +_0806465E: + movs r0, #0xa0 + bl sub_0807CBD0 + cmp r0, #0 + bne _08064672 + movs r4, #0 + movs r0, #0xa0 + bl sub_0807CCB4 + b _08064674 +_08064672: + movs r4, #1 +_08064674: + ldr r0, _08064684 @ =gUnk_0810F88C + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08064684: .4byte gUnk_0810F88C + + thumb_func_start sub_08064688 +sub_08064688: @ 0x08064688 + push {lr} + ldr r1, _0806469C @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _080646A0 @ =gUnk_0810F894 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806469C: .4byte gUnk_02002A40 +_080646A0: .4byte gUnk_0810F894 + + thumb_func_start sub_080646A4 +sub_080646A4: @ 0x080646A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _08064710 + adds r0, #1 + strb r0, [r5, #0x18] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x20 + strh r0, [r5, #0x12] + bl sub_08000E50 + adds r1, r0, #0 + movs r0, #0x18 + ands r1, r0 + ldrb r0, [r4, #0x15] + cmp r0, #8 + beq _080646EC + cmp r0, #8 + bgt _080646DA + cmp r0, #0 + beq _080646E4 + b _08064702 +_080646DA: + cmp r0, #0x10 + beq _080646F4 + cmp r0, #0x18 + beq _080646FC + b _08064702 +_080646E4: + cmp r1, #0x10 + bne _08064702 + movs r1, #8 + b _08064702 +_080646EC: + cmp r1, #0x18 + bne _08064702 + movs r1, #0x10 + b _08064702 +_080646F4: + cmp r1, #0 + bne _08064702 + movs r1, #0x18 + b _08064702 +_080646FC: + cmp r1, #8 + bne _08064702 + movs r1, #0 +_08064702: + strb r1, [r4, #0x15] + adds r0, r1, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] + movs r0, #0x80 + strh r0, [r4, #0x24] +_08064710: + ldr r0, [r5, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #8] + adds r0, r4, #0 + bl sub_080AEF88 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x6c + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _0806473A + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806473A: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _0806474C + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strh r0, [r5, #0x12] +_0806474C: + movs r6, #0x32 + ldrsh r1, [r4, r6] + adds r2, r4, #0 + adds r2, #0x6e + movs r6, #0 + ldrsh r0, [r2, r6] + subs r1, r1, r0 + cmp r1, #0x10 + ble _08064768 + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064768: + cmp r1, r3 + bge _08064776 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strh r0, [r5, #0x12] +_08064776: + ldrh r0, [r5, #0x12] + subs r0, #1 + strh r0, [r5, #0x12] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08064788 + ldr r1, _0806478C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08064788: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806478C: .4byte gUnk_02033280 + + thumb_func_start sub_08064790 +sub_08064790: @ 0x08064790 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080647C2 + cmp r0, #1 + bgt _080647A4 + cmp r0, #0 + beq _080647AA + b _08064824 +_080647A4: + cmp r0, #2 + beq _0806480A + b _08064824 +_080647AA: + 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_0807DD50 + b _08064824 +_080647C2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064800 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + ldr r1, _080647FC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08064824 + .align 2, 0 +_080647FC: .4byte gLinkEntity +_08064800: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064824 +_0806480A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064824 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_08064824: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064828 +sub_08064828: @ 0x08064828 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r5, r0, #0 + ldr r6, _08064858 @ =gUnk_02002A40 + adds r0, r4, #0 + bl sub_08002632 + ldr r2, _0806485C @ =0x00000141 + adds r1, r6, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0806484E + ldrb r0, [r6, #8] + cmp r0, #6 + bhi _0806484E + movs r5, #0 +_0806484E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 + pop {r4, r5, r6, pc} + .align 2, 0 +_08064858: .4byte gUnk_02002A40 +_0806485C: .4byte 0x00000141 + + thumb_func_start sub_08064860 +sub_08064860: @ 0x08064860 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08064886 + 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, #6 + bl sub_080042AC + b _0806488C +_08064886: + adds r0, r2, #0 + bl sub_080042B8 +_0806488C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064890 +sub_08064890: @ 0x08064890 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080648C2 + cmp r0, #1 + bgt _080648A4 + cmp r0, #0 + beq _080648AA + b _08064924 +_080648A4: + cmp r0, #2 + beq _0806490A + b _08064924 +_080648AA: + 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_0807DD50 + b _08064924 +_080648C2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064900 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + ldr r1, _080648FC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08064924 + .align 2, 0 +_080648FC: .4byte gLinkEntity +_08064900: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064924 +_0806490A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064924 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_08064924: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064928 +sub_08064928: @ 0x08064928 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r5, r0, #0 + ldr r6, _08064958 @ =gUnk_02002A40 + adds r0, r4, #0 + bl sub_08002632 + ldr r2, _0806495C @ =0x00000141 + adds r1, r6, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0806494E + ldrb r0, [r6, #8] + cmp r0, #6 + bhi _0806494E + movs r5, #0 +_0806494E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 + pop {r4, r5, r6, pc} + .align 2, 0 +_08064958: .4byte gUnk_02002A40 +_0806495C: .4byte 0x00000141 + + thumb_func_start sub_08064960 +sub_08064960: @ 0x08064960 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08064986 + 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, #6 + bl sub_080042AC + b _0806498C +_08064986: + adds r0, r2, #0 + bl sub_080042B8 +_0806498C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064990 +sub_08064990: @ 0x08064990 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080649C2 + cmp r0, #1 + bgt _080649A4 + cmp r0, #0 + beq _080649AA + b _08064A24 +_080649A4: + cmp r0, #2 + beq _08064A0A + b _08064A24 +_080649AA: + 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_0807DD50 + b _08064A24 +_080649C2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064A00 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x10 + strb r1, [r0] + ldr r1, _080649FC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08064A24 + .align 2, 0 +_080649FC: .4byte gLinkEntity +_08064A00: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064A24 +_08064A0A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064A24 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_08064A24: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064A28 +sub_08064A28: @ 0x08064A28 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r5, r0, #0 + ldr r6, _08064A58 @ =gUnk_02002A40 + adds r0, r4, #0 + bl sub_08002632 + ldr r2, _08064A5C @ =0x00000141 + adds r1, r6, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08064A4E + ldrb r0, [r6, #8] + cmp r0, #6 + bhi _08064A4E + movs r5, #0 +_08064A4E: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 + pop {r4, r5, r6, pc} + .align 2, 0 +_08064A58: .4byte gUnk_02002A40 +_08064A5C: .4byte 0x00000141 + + thumb_func_start sub_08064A60 +sub_08064A60: @ 0x08064A60 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08064A86 + 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, #6 + bl sub_080042AC + b _08064A8C +_08064A86: + adds r0, r2, #0 + bl sub_080042B8 +_08064A8C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064A90 +sub_08064A90: @ 0x08064A90 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08064ABC + ldr r0, _08064AB8 @ =gUnk_0810FA44 + 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_0806ED78 + b _08064B42 + .align 2, 0 +_08064AB8: .4byte gUnk_0810FA44 +_08064ABC: + ldrb r1, [r4, #0xc] + adds r5, r1, #0 + cmp r5, #0 + bne _08064AE4 + ldr r1, _08064AE0 @ =gUnk_0810FA38 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08064B42 + movs r0, #1 + strb r0, [r4, #0xc] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064B42 + .align 2, 0 +_08064AE0: .4byte gUnk_0810FA38 +_08064AE4: + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + cmp r3, #0 + beq _08064B00 + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064B42 + movs r0, #1 + strb r0, [r4, #0xc] + b _08064B42 +_08064B00: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _08064B34 + movs r0, #0xff + orrs r0, r1 + strb r0, [r4, #0xc] + strb r3, [r2] + ldr r1, _08064B30 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08064B42 + .align 2, 0 +_08064B30: .4byte gLinkEntity +_08064B34: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + bl sub_08064C9C +_08064B42: + pop {r4, r5, pc} + + thumb_func_start sub_08064B44 +sub_08064B44: @ 0x08064B44 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08064B80 @ =gUnk_0810FA38 + bl sub_0806FDEC + cmp r0, #0 + beq _08064B7E + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + ldr r1, _08064B84 @ =gUnk_0810FA5A + adds r0, r4, #0 + movs r2, #0 + bl sub_0806EE04 + adds r0, r4, #0 + bl sub_08064CC0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] +_08064B7E: + pop {r4, pc} + .align 2, 0 +_08064B80: .4byte gUnk_0810FA38 +_08064B84: .4byte gUnk_0810FA5A + + thumb_func_start sub_08064B88 +sub_08064B88: @ 0x08064B88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #1 + beq _08064BFA + cmp r0, #1 + bgt _08064BA2 + cmp r0, #0 + beq _08064BA8 + b _08064BFA +_08064BA2: + cmp r0, #2 + beq _08064BCE + b _08064BFA +_08064BA8: + adds r0, r4, #0 + bl sub_0806EE20 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x14] + cmp r2, #0 + beq _08064BC6 + movs r1, #0x7f + ands r1, r2 + adds r0, r4, #0 + bl sub_08004260 +_08064BC6: + adds r0, r4, #0 + bl sub_08004274 + b _08064C28 +_08064BCE: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + cmp r1, #0 + bge _08064BE0 + ldrb r1, [r4, #0x14] +_08064BE0: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08004260 + movs r0, #0 + strb r0, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _08064C28 +_08064BFA: + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + cmp r1, #0 + bge _08064C0C + ldrb r1, [r4, #0x14] +_08064C0C: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + strb r0, [r4, #0xf] + adds r0, r4, #0 + bl sub_08004260 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08064CD8 +_08064C28: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08064C2C +sub_08064C2C: @ 0x08064C2C + push {lr} + adds r2, r0, #0 + ldr r0, _08064C4C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08064C48 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xf] + adds r0, r2, #0 + bl sub_08004260 +_08064C48: + pop {pc} + .align 2, 0 +_08064C4C: .4byte gUnk_02000050 + + thumb_func_start sub_08064C50 +sub_08064C50: @ 0x08064C50 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064C68 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xf] + adds r0, r4, #0 + bl sub_08004260 +_08064C68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064C6C +sub_08064C6C: @ 0x08064C6C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_08064C9C +sub_08064C9C: @ 0x08064C9C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xe] + cmp r0, #0 + beq _08064CB8 + ldr r0, _08064CBC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08064CB8 + adds r0, r2, #0 + bl sub_080A29BC +_08064CB8: + pop {pc} + .align 2, 0 +_08064CBC: .4byte gUnk_030010A0 + + thumb_func_start sub_08064CC0 +sub_08064CC0: @ 0x08064CC0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08064CD8 +sub_08064CD8: @ 0x08064CD8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #2 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _08064CF4 + movs r0, #0x73 + bl sub_0807CBD0 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_08064CF4: + ldr r0, _08064D04 @ =gUnk_0810FA54 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08064D04: .4byte gUnk_0810FA54 + + thumb_func_start sub_08064D08 +sub_08064D08: @ 0x08064D08 + movs r1, #1 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08064D10 +sub_08064D10: @ 0x08064D10 + movs r1, #0 + strb r1, [r0, #0xe] + bx lr + .align 2, 0 + + thumb_func_start sub_08064D18 +sub_08064D18: @ 0x08064D18 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08064D50 + ldr r1, _08064D4C @ =gUnk_0810FA38 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08064D56 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #6 + bl sub_08004260 + b _08064D56 + .align 2, 0 +_08064D4C: .4byte gUnk_0810FA38 +_08064D50: + adds r0, r4, #0 + bl sub_08004274 +_08064D56: + pop {r4, pc} + + thumb_func_start sub_08064D58 +sub_08064D58: @ 0x08064D58 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08064D6E + adds r0, r2, #0 + bl sub_08064DE4 + b _08064D74 +_08064D6E: + adds r0, r2, #0 + bl sub_08064D78 +_08064D74: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08064D78 +sub_08064D78: @ 0x08064D78 + push {lr} + ldr r2, _08064D8C @ =gUnk_0810FBFC + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08064D8C: .4byte gUnk_0810FBFC + + thumb_func_start sub_08064D90 +sub_08064D90: @ 0x08064D90 + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_080042AC + movs r0, #1 + strb r0, [r4, #0xf] + pop {r4, pc} + + thumb_func_start sub_08064DA0 +sub_08064DA0: @ 0x08064DA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08064EE8 + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08064DC8 + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + movs r0, #0 + bl sub_08056378 +_08064DC8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064DCC +sub_08064DCC: @ 0x08064DCC + push {r4, lr} + adds r4, r0, #0 + bl sub_08064EE8 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + movs r0, #1 + strb r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08064DE4 +sub_08064DE4: @ 0x08064DE4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08064E1A + cmp r0, #1 + bgt _08064DF8 + cmp r0, #0 + beq _08064DFE + b _08064E6A +_08064DF8: + cmp r0, #2 + beq _08064E56 + b _08064E6A +_08064DFE: + 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, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + b _08064E6A +_08064E1A: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08064E4C + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08064E48 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08064E6A + .align 2, 0 +_08064E48: .4byte gLinkEntity +_08064E4C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08064E6A +_08064E56: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08064E6A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C +_08064E6A: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r5, #0xf + ands r5, r1 + adds r0, r5, #0 + eors r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _08064EA0 + movs r1, #0x29 + cmp r5, #3 + bne _08064E86 + movs r1, #0x2a +_08064E86: + adds r0, r4, #0 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08064EA0 + cmp r5, #2 + bne _08064EA0 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_08064EA0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08064EA4 +sub_08064EA4: @ 0x08064EA4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r5, r4, #0 + adds r5, #0x68 + strb r0, [r5] + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _08064EBE + cmp r0, #3 + beq _08064EC2 + b _08064ED8 +_08064EBE: + movs r0, #0x59 + b _08064EC4 +_08064EC2: + movs r0, #0x5a +_08064EC4: + bl sub_0801E7F4 + cmp r0, #0 + beq _08064ED8 + movs r0, #0xc + bl sub_0807CA84 + cmp r0, #0 + bne _08064ED8 + strb r0, [r5] +_08064ED8: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08064EE8 +sub_08064EE8: @ 0x08064EE8 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r5, #0xf + ands r5, r1 + adds r0, r5, #0 + eors r0, r1 + strb r0, [r2] + cmp r5, #0 + beq _08064F26 + movs r1, #0x2a + cmp r5, #3 + beq _08064F0C + movs r1, #0x29 +_08064F0C: + adds r0, r4, #0 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08064F26 + cmp r5, #2 + bne _08064F26 + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r2, #0x18] +_08064F26: + pop {r4, r5, pc} + + thumb_func_start sub_08064F28 +sub_08064F28: @ 0x08064F28 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + mov r8, r1 + movs r0, #0 + str r0, [r1, #0x14] + ldr r1, _08064F60 @ =gUnk_0810FC50 + ldrb r0, [r6, #0xa] + adds r0, r0, r1 + ldrb r7, [r0] + adds r0, r7, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _08064F84 + ldr r4, _08064F64 @ =gUnk_02002A40 + adds r0, r6, #0 + bl sub_08002632 + ldr r1, _08064F68 @ =0x00000141 + adds r4, r4, r1 + adds r0, r0, r4 + ldrb r4, [r0] + cmp r4, #1 + bls _08064F6C + movs r5, #3 + b _08064F7E + .align 2, 0 +_08064F60: .4byte gUnk_0810FC50 +_08064F64: .4byte gUnk_02002A40 +_08064F68: .4byte 0x00000141 +_08064F6C: + movs r0, #0xc + bl sub_0807CA84 + movs r5, #2 + cmp r0, #0 + bne _08064F7E + rsbs r0, r4, #0 + orrs r0, r4 + lsrs r5, r0, #0x1f +_08064F7E: + movs r4, #1 + rsbs r4, r4, #0 + b _08064FD2 +_08064F84: + movs r0, #0x3a + bl GetProgressFlag + cmp r0, #0 + bne _08064FCE + ldr r0, _08064FB0 @ =gUnk_02002A40 + ldr r1, _08064FB4 @ =0x00000117 + adds r0, r0, r1 + ldrb r1, [r0] + movs r0, #0x64 + subs r4, r0, r1 + cmp r4, #0 + bgt _08064FB8 + movs r5, #8 + movs r4, #0 + movs r0, #0x3a + bl sub_0807CD04 + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] + b _08064FD2 + .align 2, 0 +_08064FB0: .4byte gUnk_02002A40 +_08064FB4: .4byte 0x00000117 +_08064FB8: + movs r5, #7 + cmp r4, #9 + ble _08064FC0 + movs r5, #6 +_08064FC0: + cmp r4, #0x27 + ble _08064FC6 + movs r5, #5 +_08064FC6: + cmp r4, #0x45 + ble _08064FD2 + movs r5, #4 + b _08064FD2 +_08064FCE: + movs r5, #8 + movs r4, #0 +_08064FD2: + ldr r2, _08065008 @ =gUnk_0810FC08 + ldrb r1, [r6, #0xa] + lsls r0, r1, #3 + adds r0, r0, r1 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl sub_08056398 + cmp r4, #0 + ble _08064FF4 + ldr r1, _0806500C @ =gUnk_02000050 + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] +_08064FF4: + adds r0, r7, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _08065010 + adds r0, r7, #0 + bl sub_0807CD10 + b _08065016 + .align 2, 0 +_08065008: .4byte gUnk_0810FC08 +_0806500C: .4byte gUnk_02000050 +_08065010: + adds r0, r7, #0 + bl sub_0807CD8C +_08065016: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806501C +sub_0806501C: @ 0x0806501C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806504A + 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] + movs r1, #6 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08065042 + movs r1, #0xa +_08065042: + adds r0, r2, #0 + bl sub_080042AC + b _08065050 +_0806504A: + adds r0, r2, #0 + bl sub_08064EE8 +_08065050: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065054 +sub_08065054: @ 0x08065054 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806507C @ =gUnk_0810FDA4 + 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 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0807DF74 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_0806507C: .4byte gUnk_0810FDA4 + + thumb_func_start sub_08065080 +sub_08065080: @ 0x08065080 + 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 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + ldr r3, _080650C4 @ =gUnk_0810FDA0 + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_08078850 + ldr r1, _080650C8 @ =gUnk_080142B0 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r4, #0x84 + str r0, [r4] + pop {r4, pc} + .align 2, 0 +_080650C4: .4byte gUnk_0810FDA0 +_080650C8: .4byte gUnk_080142B0 + + thumb_func_start sub_080650CC +sub_080650CC: @ 0x080650CC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + ldr r6, _080650F8 @ =gUnk_02034350 + ldr r0, [r6, #0x68] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08065100 + movs r1, #0 + movs r0, #4 + strb r0, [r5, #0xc] + strb r1, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, _080650FC @ =gUnk_080143C0 + bl sub_0807DB88 + b _080651A6 + .align 2, 0 +_080650F8: .4byte gUnk_02034350 +_080650FC: .4byte gUnk_080143C0 +_08065100: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _0806517C + adds r3, r5, #0 + adds r3, #0x39 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0806517C + strb r4, [r3] + ldrb r0, [r5, #0xc] + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #7 + bl sub_08004260 + ldrb r0, [r6, #6] + cmp r0, #0 + bne _0806513C + ldr r7, _08065138 @ =0x00002C01 + b _0806515E + .align 2, 0 +_08065138: .4byte 0x00002C01 +_0806513C: + ldrb r0, [r6, #6] + bl sub_08053FD0 + adds r7, r0, #0 + ldrb r0, [r6, #6] + bl sub_08053FE0 + mov r8, r0 + movs r0, #4 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + adds r0, r5, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r1, _08065174 @ =gUnk_08014384 + bl sub_0807DB88 +_0806515E: + adds r0, r7, #0 + adds r1, r5, #0 + bl sub_08056398 + ldr r1, _08065178 @ =gUnk_02000050 + mov r2, r8 + lsls r0, r2, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + b _080651A6 + .align 2, 0 +_08065174: .4byte gUnk_08014384 +_08065178: .4byte gUnk_02000050 +_0806517C: + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080651A0 + ldr r4, _0806519C @ =gUnk_0810FDB8 + bl sub_08000E50 + movs r1, #0xf + ands r1, r0 + adds r1, r1, r4 + ldrb r1, [r1] + adds r0, r5, #0 + bl sub_08004260 + b _080651A6 + .align 2, 0 +_0806519C: .4byte gUnk_0810FDB8 +_080651A0: + adds r0, r5, #0 + bl sub_08004274 +_080651A6: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080651AC +sub_080651AC: @ 0x080651AC + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r0, _080651D4 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _080651D2 + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #4 + bl sub_08004260 +_080651D2: + pop {r4, pc} + .align 2, 0 +_080651D4: .4byte gUnk_02000050 + + thumb_func_start sub_080651D8 +sub_080651D8: @ 0x080651D8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + ldr r1, _080651F4 @ =gUnk_0810FDC8 + ldrb r0, [r4, #0xd] + 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 +_080651F4: .4byte gUnk_0810FDC8 + + thumb_func_start sub_080651F8 +sub_080651F8: @ 0x080651F8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _0806522A + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #8 + bl sub_080A2CFC + movs r0, #1 + bl sub_08078A90 +_0806522A: + pop {r4, pc} + + thumb_func_start sub_0806522C +sub_0806522C: @ 0x0806522C + 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 _08065248 + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + ldr r0, _0806524C @ =0x00002C16 + bl sub_08056398 +_08065248: + pop {pc} + .align 2, 0 +_0806524C: .4byte 0x00002C16 + + thumb_func_start sub_08065250 +sub_08065250: @ 0x08065250 + push {r4, lr} + adds r4, r0, #0 + bl sub_08056338 + adds r1, r0, #0 + cmp r1, #0 + beq _08065264 + cmp r1, #1 + beq _0806527E + b _0806528A +_08065264: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + movs r2, #0x18 + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #8 + bl sub_080A2CFC + b _0806528A +_0806527E: + movs r0, #0 + movs r1, #7 + strb r1, [r4, #0xd] + strb r0, [r4, #0xe] + movs r0, #2 + strb r0, [r4, #0xf] +_0806528A: + pop {r4, pc} + + thumb_func_start sub_0806528C +sub_0806528C: @ 0x0806528C + 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 _080652A8 + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + ldr r0, _080652AC @ =0x00002C18 + bl sub_08056398 +_080652A8: + pop {pc} + .align 2, 0 +_080652AC: .4byte 0x00002C18 + + thumb_func_start sub_080652B0 +sub_080652B0: @ 0x080652B0 + push {lr} + adds r2, r0, #0 + ldr r0, _080652DC @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080652DA + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + movs r0, #0xa + strb r0, [r2, #0xe] + ldr r1, _080652E0 @ =gUnk_02034350 + ldrb r0, [r2, #0xf] + str r0, [r1, #0x68] + movs r0, #0x36 + movs r1, #0 + movs r2, #0 + bl sub_080A7C00 +_080652DA: + pop {pc} + .align 2, 0 +_080652DC: .4byte gUnk_02000050 +_080652E0: .4byte gUnk_02034350 + + thumb_func_start sub_080652E4 +sub_080652E4: @ 0x080652E4 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080652F4 + subs r0, #1 + strb r0, [r1, #0xe] + b _08065308 +_080652F4: + ldr r0, _0806530C @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #8 + beq _08065308 + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + ldr r0, _08065310 @ =0x00002C19 + bl sub_08056398 +_08065308: + pop {pc} + .align 2, 0 +_0806530C: .4byte gLinkEntity +_08065310: .4byte 0x00002C19 + + thumb_func_start sub_08065314 +sub_08065314: @ 0x08065314 + push {lr} + adds r2, r0, #0 + ldr r0, _08065334 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065332 + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + movs r0, #3 + movs r1, #3 + bl sub_080A7138 +_08065332: + pop {pc} + .align 2, 0 +_08065334: .4byte gUnk_02000050 + + thumb_func_start sub_08065338 +sub_08065338: @ 0x08065338 + push {lr} + adds r2, r0, #0 + ldr r0, _08065360 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _0806535C + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldr r1, _08065364 @ =gUnk_02034350 + ldrb r0, [r2, #0xf] + str r0, [r1, #0x68] + adds r0, r2, #0 + movs r1, #4 + bl sub_08004260 +_0806535C: + pop {pc} + .align 2, 0 +_08065360: .4byte gUnk_02000050 +_08065364: .4byte gUnk_02034350 + + thumb_func_start sub_08065368 +sub_08065368: @ 0x08065368 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_08065370 +sub_08065370: @ 0x08065370 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r4, r0, #0 + mov r8, r1 + movs r6, #1 + ldr r0, _0806539C @ =gUnk_02034350 + ldrb r5, [r0, #6] + movs r0, #0 + mov sb, r0 + cmp r5, #0x66 + beq _0806541A + cmp r5, #0x66 + bhi _080653AA + cmp r5, #0x61 + beq _08065426 + cmp r5, #0x61 + bhi _080653A0 + cmp r5, #0xd + beq _080653D0 + b _0806543C + .align 2, 0 +_0806539C: .4byte gUnk_02034350 +_080653A0: + cmp r5, #0x64 + beq _08065414 + cmp r5, #0x65 + beq _08065420 + b _0806543C +_080653AA: + cmp r5, #0x6c + blo _0806543C + cmp r5, #0x6d + bls _080653EC + cmp r5, #0x6f + bhi _0806543C + ldr r2, _080653C8 @ =gUnk_080FD5A4 + ldr r1, _080653CC @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaf + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xad + b _080653FA + .align 2, 0 +_080653C8: .4byte gUnk_080FD5A4 +_080653CC: .4byte gUnk_02002A40 +_080653D0: + movs r0, #0xd + bl sub_0807CA84 + cmp r0, #0 + bne _080653E4 + movs r0, #0xe + bl sub_0807CA84 + cmp r0, #0 + beq _0806543C +_080653E4: + ldr r0, _080653E8 @ =0x00002C0B + b _080654C2 + .align 2, 0 +_080653E8: .4byte 0x00002C0B +_080653EC: + ldr r2, _08065408 @ =gUnk_080FD5A0 + ldr r1, _0806540C @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xae + ldrb r0, [r0] + adds r0, r0, r2 + adds r1, #0xac +_080653FA: + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bhi _0806543C + ldr r0, _08065410 @ =0x00002C0E + b _080654C2 + .align 2, 0 +_08065408: .4byte gUnk_080FD5A0 +_0806540C: .4byte gUnk_02002A40 +_08065410: .4byte 0x00002C0E +_08065414: + movs r1, #0x55 + mov sb, r1 + b _0806543C +_0806541A: + movs r0, #0x56 + mov sb, r0 + b _0806543C +_08065420: + movs r1, #0xcd + mov sb, r1 + b _0806543C +_08065426: + ldr r0, _08065494 @ =gUnk_02002A40 + adds r0, #0xc2 + ldrh r1, [r0] + ldr r0, _08065498 @ =0x000003E6 + cmp r1, r0 + bls _0806543C + ldr r0, _0806549C @ =0x00002C0E + adds r1, r4, #0 + bl sub_08056398 + movs r6, #0 +_0806543C: + cmp r6, #0 + beq _080654C8 + adds r0, r5, #0 + bl sub_08053FE0 + adds r6, r0, #0 + ldr r7, _08065494 @ =gUnk_02002A40 + adds r0, r7, #0 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r6, r0 + bhi _080654C0 + rsbs r0, r6, #0 + bl sub_080526CC + ldr r4, _080654A0 @ =gUnk_02034350 + ldrb r1, [r4, #7] + adds r0, r5, #0 + movs r2, #2 + bl sub_080A7C18 + movs r0, #0 + strb r0, [r4, #6] + strb r0, [r4, #7] + movs r0, #1 + mov r1, r8 + str r0, [r1, #0x14] + mov r0, sb + cmp r0, #0 + beq _0806547C + bl sub_0807CCB4 +_0806547C: + ldr r1, [r7, #0x5c] + movs r0, #2 + rsbs r0, r0, #0 + cmp r1, r0 + bhi _0806548A + adds r0, r1, #1 + str r0, [r7, #0x5c] +_0806548A: + ldr r0, [r7, #0x5c] + cmp r0, #9 + bls _080654A8 + ldr r0, _080654A4 @ =0x00002C11 + b _080654B6 + .align 2, 0 +_08065494: .4byte gUnk_02002A40 +_08065498: .4byte 0x000003E6 +_0806549C: .4byte 0x00002C0E +_080654A0: .4byte gUnk_02034350 +_080654A4: .4byte 0x00002C11 +_080654A8: + cmp r6, #0x63 + bls _080654B4 + ldr r0, _080654B0 @ =0x00002C10 + b _080654B6 + .align 2, 0 +_080654B0: .4byte 0x00002C10 +_080654B4: + ldr r0, _080654BC @ =0x00002C0F +_080654B6: + mov r1, r8 + str r0, [r1, #4] + b _080654CE + .align 2, 0 +_080654BC: .4byte 0x00002C0F +_080654C0: + ldr r0, _080654D8 @ =0x00002C0D +_080654C2: + adds r1, r4, #0 + bl sub_08056398 +_080654C8: + movs r0, #0 + mov r1, r8 + str r0, [r1, #0x14] +_080654CE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080654D8: .4byte 0x00002C0D + + thumb_func_start sub_080654DC +sub_080654DC: @ 0x080654DC + push {lr} + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2D0C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080654EC +sub_080654EC: @ 0x080654EC + push {lr} + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2CFC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080654FC +sub_080654FC: @ 0x080654FC + push {lr} + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08065518 + ldr r1, _08065514 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _08065522 + .align 2, 0 +_08065514: .4byte gUnk_02033280 +_08065518: + ldr r2, _08065524 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] +_08065522: + pop {pc} + .align 2, 0 +_08065524: .4byte gUnk_02033280 + + thumb_func_start sub_08065528 +sub_08065528: @ 0x08065528 + ldr r2, _08065530 @ =gUnk_02034350 + ldr r0, [r1, #4] + str r0, [r2, #0x68] + bx lr + .align 2, 0 +_08065530: .4byte gUnk_02034350 + + thumb_func_start sub_08065534 +sub_08065534: @ 0x08065534 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065558 + ldr r0, _08065554 @ =gUnk_0810FEC4 + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 + b _08065568 + .align 2, 0 +_08065554: .4byte gUnk_0810FEC4 +_08065558: + ldr r0, _0806556C @ =gUnk_0810FEBC + ldrb r1, [r2, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl _call_via_r1 +_08065568: + pop {pc} + .align 2, 0 +_0806556C: .4byte gUnk_0810FEBC + + thumb_func_start sub_08065570 +sub_08065570: @ 0x08065570 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065598 @ =gUnk_0810FEB0 + bl sub_0806FDEC + cmp r0, #0 + beq _08065596 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 + movs r0, #1 + strb r0, [r4, #0xc] + strb r0, [r4, #0xf] + movs r0, #2 + strb r0, [r4, #0x14] +_08065596: + pop {r4, pc} + .align 2, 0 +_08065598: .4byte gUnk_0810FEB0 + + thumb_func_start sub_0806559C +sub_0806559C: @ 0x0806559C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #8 + bls _080655D0 + movs r0, #0 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + cmp r0, #0 + bge _080655C6 + ldrb r0, [r4, #0x14] + adds r1, r0, #4 + b _080655CA +_080655C6: + strb r0, [r4, #0x14] + adds r1, r0, #0 +_080655CA: + adds r0, r4, #0 + adds r0, #0x58 + b _080655D6 +_080655D0: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_080655D6: + ldrb r0, [r0] + cmp r0, r1 + beq _080655E4 + adds r0, r4, #0 + bl sub_08004260 + b _080655EA +_080655E4: + adds r0, r4, #0 + bl sub_08004274 +_080655EA: + adds r0, r4, #0 + bl sub_0806ED78 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08065604 + movs r0, #0 + strb r0, [r1] + bl sub_080791D0 +_08065604: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065608 +sub_08065608: @ 0x08065608 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065644 @ =gUnk_0810FEB0 + bl sub_0806FDEC + cmp r0, #0 + beq _08065640 + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 +_08065640: + pop {r4, pc} + .align 2, 0 +_08065644: .4byte gUnk_0810FEB0 + + thumb_func_start sub_08065648 +sub_08065648: @ 0x08065648 + push {lr} + adds r2, r0, #0 + movs r0, #0x39 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #2 + bne _08065676 + ldrb r0, [r2, #0xc] + adds r3, r2, #0 + adds r3, #0x69 + movs r1, #0 + strb r0, [r3] + movs r0, #4 + strb r0, [r2, #0xc] + mov r0, ip + strb r1, [r0] + adds r0, r2, #0 + bl sub_0806F118 + b _0806567E +_08065676: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 +_0806567E: + pop {pc} + + thumb_func_start sub_08065680 +sub_08065680: @ 0x08065680 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080656A0 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_080656A0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080656A4 +sub_080656A4: @ 0x080656A4 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080656D0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080656C8 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_080656C8: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_080656D0: .4byte gUnk_02000050 + + thumb_func_start sub_080656D4 +sub_080656D4: @ 0x080656D4 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _080656FC + ldrb r0, [r4, #0xc] + adds r2, r4, #0 + adds r2, #0x69 + movs r1, #0 + strb r0, [r2] + movs r0, #4 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _08065738 +_080656FC: + cmp r0, #0 + beq _08065740 + movs r0, #0x37 + bl sub_0807CA84 + adds r2, r0, #0 + cmp r2, #0 + beq _0806571C + ldr r1, _08065718 @ =gUnk_0800B41C + adds r0, r4, #0 + bl sub_0807DAD0 + b _08065740 + .align 2, 0 +_08065718: .4byte gUnk_0800B41C +_0806571C: + ldrb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + movs r0, #3 + strb r0, [r4, #0xc] + strb r2, [r5] + adds r0, r4, #0 + adds r0, #0x84 + ldr r0, [r0] + ldr r0, [r0, #4] + adds r1, r4, #0 + bl sub_08056398 +_08065738: + adds r0, r4, #0 + bl sub_0806574C + b _08065748 +_08065740: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_08065748: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806574C +sub_0806574C: @ 0x0806574C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _0806577C @ =gLinkEntity + bl sub_080045C4 + bl sub_0806F5A4 + adds r5, r4, #0 + adds r5, #0x58 + ldrb r2, [r5] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + adds r1, r1, r0 + cmp r2, r1 + beq _08065772 + adds r0, r4, #0 + bl sub_080042AC +_08065772: + ldrb r1, [r5] + adds r0, r4, #0 + adds r0, #0x6a + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_0806577C: .4byte gLinkEntity + + thumb_func_start sub_08065780 +sub_08065780: @ 0x08065780 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08000E50 + movs r2, #6 + adds r1, r0, #0 + ands r1, r2 + strb r1, [r4, #0x14] + ldr r2, _080657A4 @ =gUnk_0810FED8 + lsrs r0, r0, #8 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r5, #0x10] + pop {r4, r5, pc} + .align 2, 0 +_080657A4: .4byte gUnk_0810FED8 + + thumb_func_start sub_080657A8 +sub_080657A8: @ 0x080657A8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #7 + ands r2, r0 + adds r2, #0xb + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080657DC +sub_080657DC: @ 0x080657DC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08065814 + ldr r1, _08065810 @ =gUnk_0810FEB0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806581A + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #6 + bl sub_08004260 + b _0806581A + .align 2, 0 +_08065810: .4byte gUnk_0810FEB0 +_08065814: + adds r0, r4, #0 + bl sub_08004274 +_0806581A: + pop {r4, pc} + + thumb_func_start sub_0806581C +sub_0806581C: @ 0x0806581C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065840 + ldr r0, _0806583C @ =gUnk_0810FF64 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806585C + .align 2, 0 +_0806583C: .4byte gUnk_0810FF64 +_08065840: + ldr r1, _08065860 @ =gUnk_0810FF5C + 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] + cmp r0, #0 + beq _0806585C + adds r0, r4, #0 + bl sub_0806ED78 +_0806585C: + pop {r4, pc} + .align 2, 0 +_08065860: .4byte gUnk_0810FF5C + + thumb_func_start sub_08065864 +sub_08065864: @ 0x08065864 + 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, #0xc + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065880 +sub_08065880: @ 0x08065880 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08065888 +sub_08065888: @ 0x08065888 + 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, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_080658BC +sub_080658BC: @ 0x080658BC + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080658F4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _080658F0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _080658FC + .align 2, 0 +_080658F0: .4byte gLinkEntity +_080658F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_080658FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065900 +sub_08065900: @ 0x08065900 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08065910 + movs r0, #1 + strb r0, [r4, #0xc] +_08065910: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065914 +sub_08065914: @ 0x08065914 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #7 + movs r1, #0x1f + movs r2, #7 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08065938 + movs r2, #0xc0 + lsls r2, r2, #0xd + ldr r3, _0806595C @ =0xFFFF0000 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + str r5, [r4, #0x50] +_08065938: + movs r0, #7 + movs r1, #0x20 + movs r2, #7 + bl sub_0805EB00 + adds r4, r0, #0 + cmp r4, #0 + beq _08065958 + movs r2, #0xa0 + lsls r2, r2, #0xe + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + str r5, [r4, #0x50] +_08065958: + pop {r4, r5, pc} + .align 2, 0 +_0806595C: .4byte 0xFFFF0000 + + thumb_func_start sub_08065960 +sub_08065960: @ 0x08065960 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065986 + 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, #0xc + bl sub_080042AC + b _0806598C +_08065986: + adds r0, r2, #0 + bl sub_080042B8 +_0806598C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065990 +sub_08065990: @ 0x08065990 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080659B4 @ =gUnk_0811006C + 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_08065A64 + adds r0, r4, #0 + bl sub_0806ED78 + pop {r4, pc} + .align 2, 0 +_080659B4: .4byte gUnk_0811006C + + thumb_func_start sub_080659B8 +sub_080659B8: @ 0x080659B8 + 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, #6 + strb r0, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x69 + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_080659F0 +sub_080659F0: @ 0x080659F0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08065AA4 + pop {r4, pc} + + thumb_func_start sub_08065A00 +sub_08065A00: @ 0x08065A00 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08065AA4 + pop {r4, pc} + + thumb_func_start sub_08065A10 +sub_08065A10: @ 0x08065A10 + push {lr} + adds r2, r0, #0 + ldr r0, _08065A30 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065A2E + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + adds r0, r2, #0 + bl sub_080042AC +_08065A2E: + pop {pc} + .align 2, 0 +_08065A30: .4byte gUnk_02000050 + + thumb_func_start sub_08065A34 +sub_08065A34: @ 0x08065A34 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08065A4E + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC +_08065A4E: + pop {r4, pc} + + thumb_func_start sub_08065A50 +sub_08065A50: @ 0x08065A50 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _08065A60 @ =gUnk_08110080 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08065A60: .4byte gUnk_08110080 + + thumb_func_start sub_08065A64 +sub_08065A64: @ 0x08065A64 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08065A8C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r5, r0 + beq _08065A9C + cmp r5, #0 + bne _08065A90 + adds r0, r4, #0 + bl sub_08078778 + b _08065A9C + .align 2, 0 +_08065A8C: .4byte gUnk_03003F80 +_08065A90: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08065A9C: + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_08065AA4 +sub_08065AA4: @ 0x08065AA4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _08065B18 + ldr r0, _08065AD0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08065B00 + cmp r2, #2 + bne _08065AD4 + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _08065AE6 + .align 2, 0 +_08065AD0: .4byte gUnk_03003F80 +_08065AD4: + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_08065A50 +_08065AE6: + ldr r1, _08065AFC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + b _08065B0A + .align 2, 0 +_08065AFC: .4byte gLinkEntity +_08065B00: + adds r0, r4, #0 + bl sub_08065A50 + bl sub_080791D0 +_08065B0A: + movs r0, #0xd3 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_08065B18: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08065B1C +sub_08065B1C: @ 0x08065B1C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065B42 + 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, #7 + bl sub_080042AC + b _08065B48 +_08065B42: + adds r0, r2, #0 + bl sub_080042B8 +_08065B48: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065B4C +sub_08065B4C: @ 0x08065B4C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065B68 @ =gUnk_08110118 + 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_0806ED78 + pop {r4, pc} + .align 2, 0 +_08065B68: .4byte gUnk_08110118 + + thumb_func_start sub_08065B6C +sub_08065B6C: @ 0x08065B6C + push {lr} + ldrb r1, [r0, #0xc] + adds r1, #1 + strb r1, [r0, #0xc] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldr r2, _08065B98 @ =0xFFFF8000 + adds r1, r2, #0 + ldrh r2, [r0, #0x30] + adds r1, r1, r2 + strh r1, [r0, #0x30] + movs r1, #6 + strb r1, [r0, #0x14] + movs r1, #3 + bl sub_080042AC + pop {pc} + .align 2, 0 +_08065B98: .4byte 0xFFFF8000 + + thumb_func_start sub_08065B9C +sub_08065B9C: @ 0x08065B9C + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08065BA4 +sub_08065BA4: @ 0x08065BA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08065BBA + adds r0, r4, #0 + bl sub_08065C0C + b _08065BEA +_08065BBA: + ldr r1, _08065BEC @ =gUnk_08110164 + 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, #2 + bhi _08065BEA + ldr r2, _08065BF0 @ =gUnk_0811015C + ldrb r0, [r4, #0xf] + adds r1, r0, #1 + strb r1, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1b + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + strh r0, [r4, #0x36] +_08065BEA: + pop {r4, pc} + .align 2, 0 +_08065BEC: .4byte gUnk_08110164 +_08065BF0: .4byte gUnk_0811015C + + thumb_func_start sub_08065BF4 +sub_08065BF4: @ 0x08065BF4 + push {lr} + ldr r2, _08065C08 @ =gUnk_0811017C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08065C08: .4byte gUnk_0811017C + + thumb_func_start sub_08065C0C +sub_08065C0C: @ 0x08065C0C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08065C42 + cmp r0, #1 + bgt _08065C20 + cmp r0, #0 + beq _08065C2A + b _08065CCA +_08065C20: + cmp r0, #2 + beq _08065C7E + cmp r0, #3 + beq _08065C8A + b _08065CCA +_08065C2A: + 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_0807DD50 + b _08065CCA +_08065C42: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08065C74 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08065C70 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08065CCA + .align 2, 0 +_08065C70: .4byte gLinkEntity +_08065C74: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _08065CCA +_08065C7E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08065CCA + b _08065CC6 +_08065C8A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065CCA + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065CB4 @ =0x0000FFFF + cmp r2, r0 + beq _08065CBC + ldr r0, _08065CB8 @ =gUnk_03000F50 + adds r0, #0x68 + strh r2, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r4, #0xe] + adds r1, #2 + str r1, [r4, #0x6c] + b _08065CCA + .align 2, 0 +_08065CB4: .4byte 0x0000FFFF +_08065CB8: .4byte gUnk_03000F50 +_08065CBC: + ldrb r0, [r4, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r4, #0x18] +_08065CC6: + movs r0, #1 + strb r0, [r4, #0xc] +_08065CCA: + pop {r4, pc} + + thumb_func_start sub_08065CCC +sub_08065CCC: @ 0x08065CCC + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #0x1e + strb r1, [r0, #0xe] + ldrb r2, [r0, #0x19] + subs r1, #0x2b + ands r1, r2 + movs r2, #4 + orrs r1, r2 + strb r1, [r0, #0x19] + ldr r1, _08065CF8 @ =gUnk_0811022E + str r1, [r0, #0x6c] + ldr r1, _08065CFC @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x10 + strh r0, [r1] + bx lr + .align 2, 0 +_08065CF8: .4byte gUnk_0811022E +_08065CFC: .4byte gUnk_03000F50 + + thumb_func_start sub_08065D00 +sub_08065D00: @ 0x08065D00 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08065D18 +sub_08065D18: @ 0x08065D18 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x1e + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + ldrb r1, [r4, #0x18] + subs r0, #0x22 + ands r0, r1 + orrs r0, r2 + 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] + ldr r0, _08065D6C @ =gUnk_08110188 + str r0, [r4, #0x6c] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + ldr r1, _08065D70 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + pop {r4, pc} + .align 2, 0 +_08065D6C: .4byte gUnk_08110188 +_08065D70: .4byte gUnk_03000F50 + + thumb_func_start sub_08065D74 +sub_08065D74: @ 0x08065D74 + 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 _08065DB4 + ldr r2, [r1, #0x6c] + ldrh r3, [r2] + ldr r0, _08065DA0 @ =0x0000FFFF + cmp r3, r0 + beq _08065DA8 + ldr r0, _08065DA4 @ =gUnk_03000F50 + adds r0, #0x68 + strh r3, [r0] + ldrh r0, [r2, #2] + strb r0, [r1, #0xe] + adds r0, r2, #4 + str r0, [r1, #0x6c] + b _08065DB4 + .align 2, 0 +_08065DA0: .4byte 0x0000FFFF +_08065DA4: .4byte gUnk_03000F50 +_08065DA8: + ldrb r0, [r1, #0xc] + adds r0, #1 + strb r0, [r1, #0xc] + movs r0, #0 + bl sub_08056378 +_08065DB4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065DB8 +sub_08065DB8: @ 0x08065DB8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _08065E74 + lsls r0, r0, #2 + ldr r1, _08065DCC @ =_08065DD0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08065DCC: .4byte _08065DD0 +_08065DD0: @ jump table + .4byte _08065DE4 @ case 0 + .4byte _08065E08 @ case 1 + .4byte _08065EB0 @ case 2 + .4byte _08065E34 @ case 3 + .4byte _08065E4E @ case 4 +_08065DE4: + ldr r0, _08065E04 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #4 + bl sub_080042AC + b _08065EB0 + .align 2, 0 +_08065E04: .4byte gUnk_02000050 +_08065E08: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb4 + strb r0, [r4, #0xe] + ldr r1, _08065E30 @ =gUnk_02018EB0 + ldrb r0, [r1, #1] + adds r0, #1 + strb r0, [r1, #1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _08065EB0 + .align 2, 0 +_08065E30: .4byte gUnk_02018EB0 +_08065E34: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + movs r0, #0 + bl sub_08056378 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08065EB0 +_08065E4E: + ldr r0, _08065E6C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08065EB0 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldr r0, _08065E70 @ =gUnk_0811022E + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E6C: .4byte gUnk_02000050 +_08065E70: .4byte gUnk_0811022E +_08065E74: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08065EB0 + ldr r1, [r4, #0x6c] + ldrh r2, [r1] + ldr r0, _08065E9C @ =0x0000FFFF + cmp r2, r0 + beq _08065EA4 + ldr r0, _08065EA0 @ =gUnk_03000F50 + adds r0, #0x68 + strh r2, [r0] + ldrh r0, [r1, #2] + strb r0, [r4, #0xe] + adds r0, r1, #4 + str r0, [r4, #0x6c] + b _08065EB0 + .align 2, 0 +_08065E9C: .4byte 0x0000FFFF +_08065EA0: .4byte gUnk_03000F50 +_08065EA4: + ldr r1, _08065EB8 @ =gUnk_02018EB0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + bl sub_0805E780 +_08065EB0: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08065EB8: .4byte gUnk_02018EB0 + + thumb_func_start sub_08065EBC +sub_08065EBC: @ 0x08065EBC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08065ED8 @ =gUnk_08110274 + 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_0806ED78 + pop {r4, pc} + .align 2, 0 +_08065ED8: .4byte gUnk_08110274 + + thumb_func_start sub_08065EDC +sub_08065EDC: @ 0x08065EDC + 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 _08065F1C + ldr r1, [r2, #0x6c] + ldrh r3, [r1] + ldr r0, _08065F08 @ =0x0000FFFF + cmp r3, r0 + beq _08065F10 + ldr r0, _08065F0C @ =gUnk_03000F50 + adds r0, #0x68 + strh r3, [r0] + adds r1, #2 + ldrh r0, [r1] + strb r0, [r2, #0xe] + adds r1, #2 + str r1, [r2, #0x6c] + b _08065F1C + .align 2, 0 +_08065F08: .4byte 0x0000FFFF +_08065F0C: .4byte gUnk_03000F50 +_08065F10: + ldrb r0, [r2, #0xc] + adds r0, #1 + strb r0, [r2, #0xc] + adds r0, r2, #0 + bl sub_08078778 +_08065F1C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065F20 +sub_08065F20: @ 0x08065F20 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08065F5E + movs r0, #0 + strb r0, [r1] + bl sub_08056378 + adds r2, r4, #0 + adds r2, #0x58 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _08065F60 @ =gUnk_0811033C + ldrb r0, [r2] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, #0 + bne _08065F56 + strb r0, [r2] +_08065F56: + ldrb r1, [r2] + adds r0, r4, #0 + bl sub_080042AC +_08065F5E: + pop {r4, pc} + .align 2, 0 +_08065F60: .4byte gUnk_0811033C + + thumb_func_start sub_08065F64 +sub_08065F64: @ 0x08065F64 + push {lr} + adds r3, r0, #0 + ldr r0, _08065F88 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _08065F74 + movs r0, #0 +_08065F74: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _08065F8C @ =gUnk_08110280 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08065F88: .4byte gUnk_02002A40 +_08065F8C: .4byte gUnk_08110280 + + thumb_func_start sub_08065F90 +sub_08065F90: @ 0x08065F90 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08065FB6 + 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, #2 + bl sub_080042AC + b _08065FBC +_08065FB6: + adds r0, r2, #0 + bl sub_080042B8 +_08065FBC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08065FC0 +sub_08065FC0: @ 0x08065FC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08066028 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r6, r4, #0 + adds r6, #0x58 + cmp r0, #2 + bne _0806600C + movs r0, #0 + movs r1, #4 + strb r1, [r4, #0xc] + strb r0, [r2] + ldrb r0, [r6] + movs r5, #0 + cmp r0, #0xc + bne _08065FF0 + movs r5, #8 +_08065FF0: + ldr r1, _08066020 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r5, r5, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 +_0806600C: + ldr r0, _08066024 @ =gUnk_0811036C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _08066042 + .align 2, 0 +_08066020: .4byte gLinkEntity +_08066024: .4byte gUnk_0811036C +_08066028: + ldr r0, _08066058 @ =gUnk_08110360 + 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_0806ED78 + adds r6, r4, #0 + adds r6, #0x58 +_08066042: + ldrb r0, [r6] + cmp r0, #0xc + bne _0806605C + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + b _0806606E + .align 2, 0 +_08066058: .4byte gUnk_08110360 +_0806605C: + 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] +_0806606E: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080660A0 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + ldr r4, _080660A4 @ =gUnk_08110380 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl sub_080A3268 +_080660A0: + pop {r4, r5, r6, pc} + .align 2, 0 +_080660A4: .4byte gUnk_08110380 + + thumb_func_start sub_080660A8 +sub_080660A8: @ 0x080660A8 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + movs r0, #0x40 + ands r4, r0 + cmp r4, #0 + beq _080660CE + adds r0, r5, #0 + movs r1, #1 + movs r2, #0x16 + bl sub_0806FF60 + b _080660D8 +_080660CE: + adds r0, r5, #0 + movs r1, #1 + movs r2, #0xff + bl sub_0806FF60 +_080660D8: + adds r0, r5, #0 + movs r1, #0 + movs r2, #1 + bl sub_0806FF88 + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080660EC +sub_080660EC: @ 0x080660EC + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08066114 @ =gUnk_08110354 + bl sub_0806FDEC + cmp r0, #0 + beq _08066112 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_08066112: + pop {r4, pc} + .align 2, 0 +_08066114: .4byte gUnk_08110354 + + thumb_func_start sub_08066118 +sub_08066118: @ 0x08066118 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806612E + movs r1, #2 + b _08066144 +_0806612E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806613A + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066144 +_0806613A: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066144: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066154 + adds r0, r4, #0 + bl sub_080042B8 +_08066154: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806616C + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08056378 +_0806616C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066170 +sub_08066170: @ 0x08066170 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066178 +sub_08066178: @ 0x08066178 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080661AC @ =gUnk_08110354 + bl sub_0806FDEC + cmp r0, #0 + beq _080661A8 + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 +_080661A8: + pop {r4, pc} + .align 2, 0 +_080661AC: .4byte gUnk_08110354 + + thumb_func_start sub_080661B0 +sub_080661B0: @ 0x080661B0 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080661BC +sub_080661BC: @ 0x080661BC + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xc + bne _080661F4 + 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 _080661FC + adds r0, r4, #0 + bl sub_0806EDC4 + adds r0, #8 + adds r1, r4, #0 + adds r1, #0x80 + strh r0, [r1] + ldrh r1, [r1] + adds r0, r4, #0 + bl sub_080042AC + b _080661FC +_080661F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_080661FC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066200 +sub_08066200: @ 0x08066200 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08066218 +sub_08066218: @ 0x08066218 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08066228 + movs r0, #1 + strb r0, [r4, #0xc] +_08066228: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806622C +sub_0806622C: @ 0x0806622C + push {lr} + adds r2, r0, #0 + ldr r0, _0806624C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806623C + movs r0, #0 +_0806623C: + lsls r1, r0, #3 + ldr r0, _08066250 @ =gUnk_08110390 + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806624C: .4byte gUnk_02002A40 +_08066250: .4byte gUnk_08110390 + + thumb_func_start nullsub_501 +nullsub_501: @ 0x08066254 + bx lr + .align 2, 0 + + thumb_func_start sub_08066258 +sub_08066258: @ 0x08066258 + push {r4, lr} + ldr r4, _08066270 @ =gUnk_081103D0 + bl sub_08000E50 + movs r1, #7 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 +_08066270: .4byte gUnk_081103D0 + + thumb_func_start sub_08066274 +sub_08066274: @ 0x08066274 + push {lr} + ldr r3, _08066284 @ =gUnk_081103E0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {pc} + .align 2, 0 +_08066284: .4byte gUnk_081103E0 + + thumb_func_start sub_08066288 +sub_08066288: @ 0x08066288 + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066298 +sub_08066298: @ 0x08066298 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080662D0 + ldr r1, _080662CC @ =gUnk_08110354 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080662D6 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #6 + bl sub_080042AC + b _080662D6 + .align 2, 0 +_080662CC: .4byte gUnk_08110354 +_080662D0: + adds r0, r4, #0 + bl sub_080042B8 +_080662D6: + pop {r4, pc} + + thumb_func_start sub_080662D8 +sub_080662D8: @ 0x080662D8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080662F4 @ =gUnk_081104C8 + 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_0806ED78 + pop {r4, pc} + .align 2, 0 +_080662F4: .4byte gUnk_081104C8 + + thumb_func_start sub_080662F8 +sub_080662F8: @ 0x080662F8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r2, #1 + movs r0, #1 + strb r0, [r5, #0xc] + strb r4, [r5, #0xd] + ldrb r1, [r5, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r0, [r5, #0xa] + lsls r0, r0, #1 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0xa] + adds r0, r5, #0 + bl sub_08004260 + ldrh r0, [r5, #0x2e] + adds r1, r5, #0 + adds r1, #0x7e + strh r0, [r1] + ldrh r1, [r5, #0x32] + adds r0, r5, #0 + adds r0, #0x80 + strh r1, [r0] + adds r0, #6 + strh r4, [r0] + ldrb r0, [r5, #0xe] + adds r1, r5, #0 + adds r1, #0x82 + strh r0, [r1] + ldr r0, _08066354 @ =gLinkEntity + str r0, [r5, #0x50] + adds r0, r5, #0 + adds r0, #0x84 + strh r4, [r0] + ldr r1, [r5, #0x50] + adds r0, r5, #0 + bl sub_08066490 + adds r0, r5, #0 + bl sub_08078778 + pop {r4, r5, pc} + .align 2, 0 +_08066354: .4byte gLinkEntity + + thumb_func_start sub_08066358 +sub_08066358: @ 0x08066358 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _080663B8 + movs r5, #0 + strb r5, [r1] + movs r0, #0 + bl sub_08056378 + ldrb r1, [r4, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080663C0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r5, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + movs r2, #0x2e + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #8 + ble _08066396 + movs r0, #8 + b _08066398 +_08066396: + movs r0, #0x18 +_08066398: + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x84 + movs r2, #1 + movs r0, #1 + strh r0, [r1] + ldr r0, _080663B4 @ =gUnk_02034490 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080788E0 + b _080663C0 + .align 2, 0 +_080663B4: .4byte gUnk_02034490 +_080663B8: + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08066490 +_080663C0: + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_08066570 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start nullsub_110 +nullsub_110: @ 0x080663D0 + bx lr + .align 2, 0 + + thumb_func_start sub_080663D4 +sub_080663D4: @ 0x080663D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x7e + ldrh r0, [r0] + subs r0, #8 + cmp r1, r0 + bne _08066410 + ldr r0, _0806640C @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0xf + beq _0806642E + movs r0, #0 + movs r1, #4 + strb r1, [r4, #0xc] + strb r0, [r4, #0x15] + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x84 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806642E + .align 2, 0 +_0806640C: .4byte gLinkEntity +_08066410: + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _08066428 + ldrb r1, [r4, #0x15] + lsrs r1, r1, #3 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08066428: + adds r0, r4, #0 + bl sub_080AEF88 +_0806642E: + bl sub_08078B48 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806643C +sub_0806643C: @ 0x0806643C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0806650C + adds r4, r0, #0 + cmp r4, #0 + bne _08066462 + movs r0, #5 + strb r0, [r5, #0xc] + ldr r0, _0806646C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + movs r0, #0x40 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + ldr r0, _08066470 @ =gLinkEntity + strb r4, [r0, #0x14] + strb r4, [r0, #0x15] +_08066462: + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0806646C: .4byte gUnk_03000BF0 +_08066470: .4byte gLinkEntity + + thumb_func_start sub_08066474 +sub_08066474: @ 0x08066474 + push {lr} + ldr r0, _08066488 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0xf + beq _08066484 + ldr r1, _0806648C @ =gUnk_02034490 + movs r0, #0 + strb r0, [r1] +_08066484: + pop {pc} + .align 2, 0 +_08066488: .4byte gLinkEntity +_0806648C: .4byte gUnk_02034490 + + thumb_func_start sub_08066490 +sub_08066490: @ 0x08066490 + push {r4, r5, r6, lr} + mov ip, r0 + adds r5, r1, #0 + ldrb r1, [r0, #0xb] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806650A + mov r1, ip + ldrh r0, [r1, #0x2e] + adds r1, #0x86 + strh r0, [r1] + mov r0, ip + adds r0, #0x7e + ldrh r2, [r0] + adds r0, #4 + ldrh r0, [r0] + adds r3, r2, r0 + subs r4, r2, r0 + movs r6, #0x2e + ldrsh r0, [r5, r6] + cmp r0, r3 + bge _080664C6 + cmp r0, r4 + ble _080664C6 + adds r2, r0, #0 + b _080664D2 +_080664C6: + movs r2, #0x2e + ldrsh r0, [r5, r2] + adds r2, r4, #0 + cmp r0, r3 + blt _080664D2 + adds r2, r3, #0 +_080664D2: + ldrh r0, [r1] + cmp r0, r2 + bne _080664F0 + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #1 + bne _0806650A + movs r0, #0 + strh r0, [r1] + mov r0, ip + movs r1, #2 + bl sub_08004260 + b _0806650A +_080664F0: + mov r6, ip + strh r2, [r6, #0x2e] + mov r1, ip + adds r1, #0x84 + ldrh r0, [r1] + cmp r0, #0 + bne _0806650A + movs r0, #1 + strh r0, [r1] + mov r0, ip + movs r1, #6 + bl sub_08004260 +_0806650A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0806650C +sub_0806650C: @ 0x0806650C + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r1, _0806652C @ =gLinkEntity + ldrh r5, [r1, #0x2e] + adds r7, r5, #0 + ldrh r2, [r1, #0x32] + adds r0, #0x80 + ldrh r0, [r0] + adds r0, #0x10 + adds r6, r1, #0 + cmp r2, r0 + bge _08066530 + movs r4, #4 + b _0806654C + .align 2, 0 +_0806652C: .4byte gLinkEntity +_08066530: + adds r0, r3, #0 + adds r0, #0x7e + ldrh r1, [r0] + adds r0, r1, #2 + cmp r5, r0 + bge _0806653E + movs r4, #2 +_0806653E: + adds r0, r1, #6 + cmp r7, r0 + ble _08066546 + movs r4, #6 +_08066546: + cmp r4, #0 + bne _0806654C + strh r4, [r6, #0x24] +_0806654C: + ldrb r0, [r6, #0xc] + cmp r0, #0xf + beq _0806656A + cmp r4, #0 + bne _0806655A + movs r0, #0 + b _0806656C +_0806655A: + movs r0, #8 + movs r1, #0 + movs r2, #0 + bl sub_08078AC0 + strb r4, [r6, #0x14] + lsls r0, r4, #2 + strb r0, [r6, #0x15] +_0806656A: + movs r0, #1 +_0806656C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08066570 +sub_08066570: @ 0x08066570 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080665DE + ldrb r0, [r5, #0xc] + cmp r0, #3 + beq _080665DE + ldr r4, _080665E0 @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x50 + bl sub_0806FC80 + cmp r0, #0 + beq _080665DE + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r3, r0, #0 + movs r6, #1 + movs r1, #0x18 + adds r4, r3, #0 + ands r4, r1 + ldrb r0, [r5, #0x15] + adds r2, r1, #0 + ands r2, r0 + cmp r2, r4 + bne _080665C8 + adds r2, r3, #5 + movs r1, #7 + ands r2, r1 + ldrb r0, [r5, #0x15] + adds r0, #5 + ands r0, r1 + cmp r0, #2 + bhi _080665C8 + cmp r2, #2 + bhi _080665C8 + movs r6, #0 +_080665C8: + cmp r6, #0 + beq _080665DE + strb r3, [r5, #0x15] + adds r3, #4 + movs r0, #0x18 + ands r3, r0 + lsrs r3, r3, #3 + adds r0, r5, #0 + adds r1, r3, #0 + bl sub_08004260 +_080665DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080665E0: .4byte gLinkEntity + + thumb_func_start sub_080665E4 +sub_080665E4: @ 0x080665E4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08066638 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806661E + movs r0, #0 + strb r0, [r2] + strb r1, [r4, #0xc] + ldr r1, _08066630 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 +_0806661E: + ldr r0, _08066634 @ =gUnk_081104EC + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806664E + .align 2, 0 +_08066630: .4byte gLinkEntity +_08066634: .4byte gUnk_081104EC +_08066638: + ldr r0, _08066650 @ =gUnk_081104E0 + 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_0806ED78 +_0806664E: + pop {r4, pc} + .align 2, 0 +_08066650: .4byte gUnk_081104E0 + + thumb_func_start sub_08066654 +sub_08066654: @ 0x08066654 + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066688 +sub_08066688: @ 0x08066688 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806669E + movs r1, #2 + b _080666B4 +_0806669E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080666AA + movs r0, #0x10 + strb r0, [r4, #0xf] + b _080666B4 +_080666AA: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_080666B4: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _080666C4 + adds r0, r4, #0 + bl sub_080042B8 +_080666C4: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _080666D8 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_080666D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080666DC +sub_080666DC: @ 0x080666DC + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_080666E4 +sub_080666E4: @ 0x080666E4 + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_0806670C +sub_0806670C: @ 0x0806670C + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066718 +sub_08066718: @ 0x08066718 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08066728 + movs r0, #1 + strb r0, [r4, #0xc] +_08066728: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806672C +sub_0806672C: @ 0x0806672C + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806673C +sub_0806673C: @ 0x0806673C + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _0806674E + movs r1, #0 + b _0806676A +_0806674E: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + bne _0806675C + movs r1, #1 + b _0806676A +_0806675C: + movs r0, #3 + bl sub_0807CA84 + movs r1, #3 + cmp r0, #0 + bne _0806676A + movs r1, #2 +_0806676A: + ldr r0, _0806677C @ =gUnk_081104F8 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806677C: .4byte gUnk_081104F8 + + thumb_func_start sub_08066780 +sub_08066780: @ 0x08066780 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080667A6 + 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, #6 + bl sub_080042AC + b _080667AC +_080667A6: + adds r0, r2, #0 + bl sub_080042B8 +_080667AC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080667B0 +sub_080667B0: @ 0x080667B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080667C6 + adds r0, r4, #0 + bl sub_08066864 + b _080667DC +_080667C6: + ldr r0, _080667E0 @ =gUnk_08110644 + 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_0806ED78 +_080667DC: + pop {r4, pc} + .align 2, 0 +_080667E0: .4byte gUnk_08110644 + + thumb_func_start sub_080667E4 +sub_080667E4: @ 0x080667E4 + 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 + movs r1, #2 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_08066808 +sub_08066808: @ 0x08066808 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _0806681E + movs r1, #2 + b _08066834 +_0806681E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806682A + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066834 +_0806682A: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066834: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066844 + adds r0, r4, #0 + bl sub_080042B8 +_08066844: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08066858 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_08066858: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806685C +sub_0806685C: @ 0x0806685C + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066864 +sub_08066864: @ 0x08066864 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _080668A2 + cmp r0, #1 + bgt _08066878 + cmp r0, #0 + beq _0806687E + b _080668EC +_08066878: + cmp r0, #2 + beq _080668DE + b _080668EC +_0806687E: + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + b _080668EC +_080668A2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080668D4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _080668D0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _080668EC + .align 2, 0 +_080668D0: .4byte gLinkEntity +_080668D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _080668EC +_080668DE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080668EC + movs r0, #1 + strb r0, [r4, #0xc] +_080668EC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080668F0 +sub_080668F0: @ 0x080668F0 + 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_08066904 +sub_08066904: @ 0x08066904 + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + bl GetProgressFlag + cmp r0, #0 + bne _08066916 + movs r1, #0 + b _08066932 +_08066916: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + bne _08066924 + movs r1, #1 + b _08066932 +_08066924: + movs r0, #3 + bl sub_0807CA84 + movs r1, #3 + cmp r0, #0 + bne _08066932 + movs r1, #2 +_08066932: + ldr r0, _08066944 @ =gUnk_08110650 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_08066944: .4byte gUnk_08110650 + + thumb_func_start sub_08066948 +sub_08066948: @ 0x08066948 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806696E + 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, #6 + bl sub_080042AC + b _08066974 +_0806696E: + adds r0, r2, #0 + bl sub_080042B8 +_08066974: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066978 +sub_08066978: @ 0x08066978 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806699C + ldr r0, _08066998 @ =gUnk_081106E0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080669B2 + .align 2, 0 +_08066998: .4byte gUnk_081106E0 +_0806699C: + ldr r0, _080669B4 @ =gUnk_081106D4 + 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_0806ED78 +_080669B2: + pop {r4, pc} + .align 2, 0 +_080669B4: .4byte gUnk_081106D4 + + thumb_func_start sub_080669B8 +sub_080669B8: @ 0x080669B8 + 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 + movs r1, #2 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08078778 + pop {r4, pc} + + thumb_func_start sub_080669DC +sub_080669DC: @ 0x080669DC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _080669F2 + movs r1, #2 + b _08066A08 +_080669F2: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080669FE + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08066A08 +_080669FE: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08066A08: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08066A18 + adds r0, r4, #0 + bl sub_080042B8 +_08066A18: + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0 + beq _08066A2C + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r2] +_08066A2C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066A30 +sub_08066A30: @ 0x08066A30 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08066A38 +sub_08066A38: @ 0x08066A38 + 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] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_08066A50 +sub_08066A50: @ 0x08066A50 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066A5C +sub_08066A5C: @ 0x08066A5C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08066A90 @ =gUnk_08110734 + ldrb r0, [r4, #0xc] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldrb r3, [r4, #0x1a] + lsrs r1, r3, #4 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r2, [r0] + movs r0, #1 + ands r0, r2 + adds r1, r1, r0 + movs r0, #0xf + ands r1, r0 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, #0x1a] + pop {r4, pc} + .align 2, 0 +_08066A90: .4byte gUnk_08110734 + + thumb_func_start sub_08066A94 +sub_08066A94: @ 0x08066A94 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0 + movs r3, #1 + movs r0, #1 + strb r0, [r4, #0xc] + strb r2, [r4, #0xd] + ldrb r1, [r4, #0x18] + subs r0, #5 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08066ACC + pop {r4, pc} + + thumb_func_start sub_08066ACC +sub_08066ACC: @ 0x08066ACC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08066B18 @ =sub_08066B74 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _08066AF6 + ldr r0, _08066B1C @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _08066AF6 + adds r0, r4, #0 + bl sub_08095CB0 +_08066AF6: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r2, [r1] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r5, r1, #0 + cmp r2, #0 + beq _08066B6E + cmp r2, #2 + beq _08066B34 + cmp r2, #2 + bhi _08066B20 + cmp r2, #1 + beq _08066B2A + b _08066B66 + .align 2, 0 +_08066B18: .4byte sub_08066B74 +_08066B1C: .4byte gUnk_030010A0 +_08066B20: + cmp r2, #3 + beq _08066B40 + cmp r2, #4 + beq _08066B52 + b _08066B66 +_08066B2A: + movs r0, #0x87 + lsls r0, r0, #2 + bl sub_08004488 + b _08066B66 +_08066B34: + ldr r0, _08066B3C @ =0x0000021E + bl sub_08004488 + b _08066B66 + .align 2, 0 +_08066B3C: .4byte 0x0000021E +_08066B40: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + movs r0, #4 + str r0, [r1, #4] + adds r0, r4, #0 + bl sub_0805DDEC + b _08066B66 +_08066B52: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + str r2, [r1, #4] + adds r0, r4, #0 + bl sub_0805DE18 + ldr r0, _08066B70 @ =0x0000021D + bl sub_08004488 +_08066B66: + ldrb r1, [r5] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5] +_08066B6E: + pop {r4, r5, pc} + .align 2, 0 +_08066B70: .4byte 0x0000021D + + thumb_func_start sub_08066B74 +sub_08066B74: @ 0x08066B74 + push {r4, r5, r6, lr} + mov ip, r0 + ldr r0, [r1, #8] + ldr r4, _08066BCC @ =0xFFF00000 + ands r4, r0 + ldr r2, _08066BD0 @ =0x000FFFFF + ands r0, r2 + str r0, [r1, #8] + cmp r4, #0 + bne _08066B8A + b _08066C86 +_08066B8A: + mov r3, ip + adds r3, #0x80 + mov r5, ip + adds r5, #0x68 + movs r6, #1 +_08066B94: + mvns r0, r4 + adds r1, r0, #1 + ands r1, r4 + eors r4, r1 + mov r2, ip + ldrb r0, [r2, #0x14] + lsrs r2, r0, #1 + movs r0, #0x80 + lsls r0, r0, #0x12 + cmp r1, r0 + beq _08066C4C + cmp r1, r0 + bhi _08066BE6 + movs r0, #0x80 + lsls r0, r0, #0xf + cmp r1, r0 + beq _08066C34 + cmp r1, r0 + bhi _08066BD4 + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r1, r0 + beq _08066C24 + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r1, r0 + beq _08066C2C + b _08066C82 + .align 2, 0 +_08066BCC: .4byte 0xFFF00000 +_08066BD0: .4byte 0x000FFFFF +_08066BD4: + movs r0, #0x80 + lsls r0, r0, #0x10 + cmp r1, r0 + beq _08066C3C + movs r0, #0x80 + lsls r0, r0, #0x11 + cmp r1, r0 + beq _08066C44 + b _08066C82 +_08066BE6: + movs r0, #0x80 + lsls r0, r0, #0x15 + cmp r1, r0 + beq _08066C64 + cmp r1, r0 + bhi _08066C04 + movs r0, #0x80 + lsls r0, r0, #0x13 + cmp r1, r0 + beq _08066C54 + movs r0, #0x80 + lsls r0, r0, #0x14 + cmp r1, r0 + beq _08066C5C + b _08066C82 +_08066C04: + movs r0, #0x80 + lsls r0, r0, #0x17 + cmp r1, r0 + beq _08066C70 + cmp r1, r0 + bhi _08066C1A + movs r0, #0x80 + lsls r0, r0, #0x16 + cmp r1, r0 + beq _08066C6C + b _08066C82 +_08066C1A: + movs r0, #0x80 + lsls r0, r0, #0x18 + cmp r1, r0 + beq _08066C76 + b _08066C82 +_08066C24: + adds r0, r2, #0 + adds r0, #0x10 + strh r0, [r3] + b _08066C82 +_08066C2C: + adds r0, r2, #0 + adds r0, #0x14 + strh r0, [r3] + b _08066C82 +_08066C34: + adds r0, r2, #0 + adds r0, #0x18 + strh r0, [r3] + b _08066C82 +_08066C3C: + adds r0, r2, #0 + adds r0, #0x1c + strh r0, [r3] + b _08066C82 +_08066C44: + adds r0, r2, #0 + adds r0, #0x20 + strh r0, [r3] + b _08066C82 +_08066C4C: + adds r0, r2, #0 + adds r0, #0x24 + strh r0, [r3] + b _08066C82 +_08066C54: + adds r0, r2, #0 + adds r0, #0x28 + strh r0, [r3] + b _08066C82 +_08066C5C: + adds r0, r2, #0 + adds r0, #0x2c + strh r0, [r3] + b _08066C82 +_08066C64: + adds r0, r2, #0 + adds r0, #0x30 + strh r0, [r3] + b _08066C82 +_08066C6C: + strb r6, [r5] + b _08066C82 +_08066C70: + movs r0, #0xff + strb r0, [r5] + b _08066C82 +_08066C76: + mov r2, ip + adds r2, #0x69 + ldrb r1, [r2] + adds r0, r6, #0 + eors r0, r1 + strb r0, [r2] +_08066C82: + cmp r4, #0 + bne _08066B94 +_08066C86: + mov r0, ip + adds r0, #0x84 + ldr r1, [r0] + mov r0, ip + bl sub_0807DB98 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08066C94 +sub_08066C94: @ 0x08066C94 + push {lr} + movs r1, #0 + bl sub_0805DA90 + movs r0, #0xf7 + bl sub_080A3268 + pop {pc} + + thumb_func_start sub_08066CA4 +sub_08066CA4: @ 0x08066CA4 + push {lr} + movs r1, #1 + bl sub_0805DA90 + movs r0, #0xf6 + bl sub_080A3268 + pop {pc} + + thumb_func_start sub_08066CB4 +sub_08066CB4: @ 0x08066CB4 + push {lr} + ldr r2, _08066CC8 @ =gUnk_08110BD8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08066CC8: .4byte gUnk_08110BD8 + + thumb_func_start sub_08066CCC +sub_08066CCC: @ 0x08066CCC + 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 + movs r1, #7 + bl sub_0805EA78 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_08066CF8 +sub_08066CF8: @ 0x08066CF8 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08066D04 +sub_08066D04: @ 0x08066D04 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + movs r1, #0x2e + bl sub_0805EB9C + str r0, [r4, #0x50] + pop {r4, pc} + + thumb_func_start sub_08066D14 +sub_08066D14: @ 0x08066D14 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, [r4, #0x50] + cmp r2, #0 + beq _08066D48 + ldrb r0, [r2, #0x14] + strb r0, [r4, #0x14] + 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, r2, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08068680 + movs r0, #1 + str r0, [r5, #0x14] + b _08066D4A +_08066D48: + str r2, [r5, #0x14] +_08066D4A: + pop {r4, r5, pc} + + thumb_func_start sub_08066D4C +sub_08066D4C: @ 0x08066D4C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08066D90 + bl sub_0806FA24 + ldr r3, [r4, #0x50] + ldrb r1, [r3, #0x18] + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3, #0x18] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + ldrb r0, [r4, #0x18] + ands r2, r0 + strb r2, [r4, #0x18] + ldrb r1, [r4, #0x17] + movs r0, #0xfe + ands r0, r1 + strb r0, [r4, #0x17] + ldr r1, [r4, #0x50] + adds r0, r4, #0 + bl sub_08068694 + movs r0, #1 + str r0, [r5, #0x14] + b _08066D92 +_08066D90: + str r1, [r5, #0x14] +_08066D92: + pop {r4, r5, pc} + + thumb_func_start sub_08066D94 +sub_08066D94: @ 0x08066D94 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x1c + bl sub_0807CD04 + movs r0, #0x2e + movs r1, #0 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _08066DD6 + ldr r0, _08066DDC @ =gLinkEntity + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x10] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r5, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + ldr r0, _08066DE0 @ =gUnk_03000BF0 + ldrb r1, [r0, #5] + adds r0, r4, #0 + adds r0, #0x74 + strh r1, [r0] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 +_08066DD6: + bl sub_0805E780 + pop {r4, r5, pc} + .align 2, 0 +_08066DDC: .4byte gLinkEntity +_08066DE0: .4byte gUnk_03000BF0 + + thumb_func_start sub_08066DE4 +sub_08066DE4: @ 0x08066DE4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #7 + movs r1, #0x2e + bl sub_0805EB9C + adds r4, r0, #0 + cmp r4, #0 + beq _08066E06 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080686C4 +_08066E06: + pop {r4, r5, pc} + + thumb_func_start sub_08066E08 +sub_08066E08: @ 0x08066E08 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x50 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E20 +sub_08066E20: @ 0x08066E20 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x44 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E38 +sub_08066E38: @ 0x08066E38 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x48 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E50 +sub_08066E50: @ 0x08066E50 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x4c + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E68 +sub_08066E68: @ 0x08066E68 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x54 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066E80 +sub_08066E80: @ 0x08066E80 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #4 + bhi _08066F7C + lsls r0, r0, #2 + ldr r1, _08066E98 @ =_08066E9C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08066E98: .4byte _08066E9C +_08066E9C: @ jump table + .4byte _08066EB0 @ case 0 + .4byte _08066EC0 @ case 1 + .4byte _08066EF0 @ case 2 + .4byte _08066F28 @ case 3 + .4byte _08066F58 @ case 4 +_08066EB0: + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + movs r1, #0x16 + bl sub_080042AC + b _08066F7C +_08066EC0: + 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 _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + movs r0, #0x7c + bl sub_080A3268 + b _08066F7C +_08066EF0: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_0806F62C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08066F1A + adds r0, r4, #0 + bl sub_080042B8 +_08066F1A: + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + b _08066F7C +_08066F28: + movs r1, #0x80 + lsls r1, r1, #1 + adds r0, r4, #0 + movs r2, #0x80 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08066F7C + ldrb r0, [r5, #0x18] + adds r0, #1 + strb r0, [r5, #0x18] + adds r0, r4, #0 + movs r1, #0x1e + bl sub_080042AC + b _08066F7C +_08066F58: + 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 _08066F7C + ldr r2, _08066F78 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _08066F8C + .align 2, 0 +_08066F78: .4byte gUnk_02033280 +_08066F7C: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + adds r0, #0x28 + movs r2, #0 + strh r1, [r0] + ldr r0, _08066F90 @ =gUnk_02033280 + strb r2, [r0, #6] +_08066F8C: + pop {r4, r5, pc} + .align 2, 0 +_08066F90: .4byte gUnk_02033280 + + thumb_func_start sub_08066F94 +sub_08066F94: @ 0x08066F94 + push {r4, lr} + ldr r4, _08066F9C @ =gUnk_08110BE0 + b _08066FAC + .align 2, 0 +_08066F9C: .4byte gUnk_08110BE0 +_08066FA0: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _08066FB4 @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_08066FAC: + ldrh r0, [r4] + cmp r0, #0 + bne _08066FA0 + pop {r4, pc} + .align 2, 0 +_08066FB4: .4byte 0x00004072 + + thumb_func_start sub_08066FB8 +sub_08066FB8: @ 0x08066FB8 + push {r4, lr} + ldr r4, _08066FC0 @ =gUnk_08110BE0 + b _08066FCE + .align 2, 0 +_08066FC0: .4byte gUnk_08110BE0 +_08066FC4: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_08066FCE: + ldrh r0, [r4] + cmp r0, #0 + bne _08066FC4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08066FD8 +sub_08066FD8: @ 0x08066FD8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _08066FE8 + bl sub_0805E780 +_08066FE8: + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _08067030 + cmp r0, #1 + bgt _08066FF8 + cmp r0, #0 + beq _08066FFE + b _0806707C +_08066FF8: + cmp r0, #2 + beq _0806706E + b _0806707C +_08066FFE: + ldr r1, _0806702C @ =gUnk_08110C00 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806707C + 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 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806707C + .align 2, 0 +_0806702C: .4byte gUnk_08110C00 +_08067030: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08067064 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08067060 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806707C + .align 2, 0 +_08067060: .4byte gLinkEntity +_08067064: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806707C +_0806706E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806707C + movs r0, #1 + strb r0, [r4, #0xc] +_0806707C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067080 +sub_08067080: @ 0x08067080 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080670B4 +sub_080670B4: @ 0x080670B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + bne _080670D0 + movs r0, #0x15 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_080670D0: + ldr r0, _080670E0 @ =gUnk_08110C0C + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_080670E0: .4byte gUnk_08110C0C + + thumb_func_start sub_080670E4 +sub_080670E4: @ 0x080670E4 + push {lr} + ldr r1, _080670F8 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _080670FC @ =gUnk_08110C10 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080670F8: .4byte gUnk_02002A40 +_080670FC: .4byte gUnk_08110C10 + + thumb_func_start sub_08067100 +sub_08067100: @ 0x08067100 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_08067118 +sub_08067118: @ 0x08067118 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067150 + ldr r1, _0806714C @ =gUnk_08110C00 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08067156 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_08004260 + b _08067156 + .align 2, 0 +_0806714C: .4byte gUnk_08110C00 +_08067150: + adds r0, r4, #0 + bl sub_08004274 +_08067156: + pop {r4, pc} + + thumb_func_start sub_08067158 +sub_08067158: @ 0x08067158 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _08067168 + bl sub_0805E780 +_08067168: + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _080671A8 + cmp r5, #1 + bgt _08067178 + cmp r5, #0 + beq _0806717E + b _08067224 +_08067178: + cmp r5, #2 + beq _0806720A + b _08067224 +_0806717E: + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _080671EC @ =gUnk_08110CA8 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08067224 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_080671A8: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080671F4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _080671F0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + ldrb r0, [r4, #0xa] + lsls r0, r0, #3 + adds r0, #4 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _08067224 + .align 2, 0 +_080671EC: .4byte gUnk_08110CA8 +_080671F0: .4byte gLinkEntity +_080671F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _08067224 +_0806720A: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08067224 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_08067224: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067228 +sub_08067228: @ 0x08067228 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bhi _0806727E + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C + b _080672AC +_0806727E: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_080672AC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080672B0 +sub_080672B0: @ 0x080672B0 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0xa] + lsls r2, r2, #3 + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080672C8 +sub_080672C8: @ 0x080672C8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x11 + bl sub_0807CA84 + cmp r0, #0 + bne _080672E4 + movs r0, #0x15 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_080672E4: + ldr r3, _08067300 @ =gUnk_08110CE8 + lsls r1, r4, #1 + ldrb r2, [r5, #0xa] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r3 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08067300: .4byte gUnk_08110CE8 + + thumb_func_start sub_08067304 +sub_08067304: @ 0x08067304 + push {lr} + ldr r1, _08067310 @ =gUnk_08110D00 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08067310: .4byte gUnk_08110D00 + + thumb_func_start sub_08067314 +sub_08067314: @ 0x08067314 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806732C +sub_0806732C: @ 0x0806732C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067378 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _08067374 @ =gUnk_08110CA8 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806737E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_0805E3A0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #3 + adds r1, #2 + adds r0, r4, #0 + bl sub_08004260 + b _0806737E + .align 2, 0 +_08067374: .4byte gUnk_08110CA8 +_08067378: + adds r0, r4, #0 + bl sub_08004274 +_0806737E: + pop {r4, pc} + + thumb_func_start sub_08067380 +sub_08067380: @ 0x08067380 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080673A4 + ldr r0, _080673A0 @ =gUnk_08110E5C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080673BA + .align 2, 0 +_080673A0: .4byte gUnk_08110E5C +_080673A4: + ldr r0, _080673BC @ =gUnk_08110E4C + 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_0806ED78 +_080673BA: + pop {r4, pc} + .align 2, 0 +_080673BC: .4byte gUnk_08110E4C + + thumb_func_start sub_080673C0 +sub_080673C0: @ 0x080673C0 + push {lr} + adds r2, r0, #0 + ldr r0, _080673D4 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _080673D8 + movs r0, #3 + b _080673DA + .align 2, 0 +_080673D4: .4byte gUnk_030010A0 +_080673D8: + movs r0, #1 +_080673DA: + strb r0, [r2, #0xc] + ldrb r1, [r2, #0xa] + movs r0, #1 + ands r0, r1 + strb r0, [r2, #0x1e] + cmp r0, #0 + bne _080673EC + ldr r0, _080673F0 @ =gUnk_08110E94 + str r0, [r2, #0x48] +_080673EC: + pop {pc} + .align 2, 0 +_080673F0: .4byte gUnk_08110E94 + + thumb_func_start sub_080673F4 +sub_080673F4: @ 0x080673F4 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x39 + movs r0, #0 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0806740C + movs r1, #0 + movs r0, #2 + strb r0, [r2, #0xc] + strb r1, [r3] +_0806740C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067410 +sub_08067410: @ 0x08067410 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08067418 +sub_08067418: @ 0x08067418 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + movs r0, #1 + strb r0, [r6, #0xc] + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, _08067488 @ =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 r7, r6, #0 + adds r7, #0x74 + strh r1, [r7] + ldrb r0, [r6, #0xa] + cmp r0, #0 + bne _08067494 + ldr r0, _0806748C @ =gUnk_08110E94 + str r0, [r6, #0x48] + ldr r5, _08067490 @ =0x00004022 + ldrh r1, [r7] + subs r1, #1 + adds r4, r6, #0 + adds r4, #0x38 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x3f + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + ldrh r1, [r7] + adds r1, #0x40 + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_0800015E + b _080674F8 + .align 2, 0 +_08067488: .4byte gUnk_03000BF0 +_0806748C: .4byte gUnk_08110E94 +_08067490: .4byte 0x00004022 +_08067494: + adds r1, r6, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldrb r2, [r6, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r6, #0x1b] + ldrb r0, [r6, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r6, #0x19] + adds r2, r6, #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, #0x1d + bl sub_0807CBD0 + cmp r0, #0 + bne _080674F8 + ldr r4, _08067500 @ =0x00004022 + ldr r1, _08067504 @ =0x00000E81 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _08067508 @ =0x00000E82 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _0806750C @ =0x00000E83 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E + ldr r1, _08067510 @ =0x00000EC3 + adds r0, r4, #0 + movs r2, #1 + bl sub_0800015E +_080674F8: + adds r0, r6, #0 + bl sub_0807DD50 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08067500: .4byte 0x00004022 +_08067504: .4byte 0x00000E81 +_08067508: .4byte 0x00000E82 +_0806750C: .4byte 0x00000E83 +_08067510: .4byte 0x00000EC3 + + thumb_func_start sub_08067514 +sub_08067514: @ 0x08067514 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806752A + adds r0, r4, #0 + bl sub_0806ED78 +_0806752A: + pop {r4, pc} + + thumb_func_start sub_0806752C +sub_0806752C: @ 0x0806752C + push {lr} + bl sub_0806FD3C + pop {pc} + + thumb_func_start sub_08067534 +sub_08067534: @ 0x08067534 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 +_0806753A: + adds r0, r5, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _08067560 + ldr r0, _08067578 @ =gUnk_08110E64 + adds r0, r4, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + ldrh r0, [r1, #0x32] + adds r0, #0x1c + strh r0, [r1, #0x32] +_08067560: + adds r4, #1 + cmp r4, #1 + ble _0806753A + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_08004488 + movs r0, #0x28 + movs r1, #4 + bl sub_08080964 + pop {r4, r5, pc} + .align 2, 0 +_08067578: .4byte gUnk_08110E64 + + thumb_func_start sub_0806757C +sub_0806757C: @ 0x0806757C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + beq _080675CC + cmp r0, #2 + bls _080675BC + ldr r0, _080675AC @ =0x00000E81 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B0 @ =0x00000E82 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B4 @ =0x00000E83 + movs r1, #1 + bl sub_0807BA8C + ldr r0, _080675B8 @ =0x00000EC3 + movs r1, #1 + bl sub_0807BA8C + b _080675CC + .align 2, 0 +_080675AC: .4byte 0x00000E81 +_080675B0: .4byte 0x00000E82 +_080675B4: .4byte 0x00000E83 +_080675B8: .4byte 0x00000EC3 +_080675BC: + ldr r0, _080675D0 @ =gUnk_08110E68 + ldrb r1, [r2, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r2, #0 + bl sub_080ADF80 +_080675CC: + pop {pc} + .align 2, 0 +_080675D0: .4byte gUnk_08110E68 + + thumb_func_start sub_080675D4 +sub_080675D4: @ 0x080675D4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, _080676D0 @ =gUnk_08110E78 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r7, r0, #0 + subs r7, #0xc + movs r0, #0x3f + mov r8, r0 + movs r6, #8 +_080675EC: + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _08067646 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0806FAB0 +_08067646: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _080675EC + ldr r5, _080676D4 @ =gUnk_08110E8A + movs r0, #0x3f + mov r8, r0 + movs r6, #3 +_08067656: + adds r0, r4, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _080676B0 + movs r0, #0 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x2e] + adds r0, r0, r1 + strh r0, [r3, #0x2e] + movs r0, #1 + ldrsb r0, [r5, r0] + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + strh r7, [r3, #0x36] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r3, #0 + adds r0, #0x38 + strb r1, [r0] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x1b] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x1b] + ldrb r1, [r4, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r3, #0x19] + mov r0, r8 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_0806FAB0 +_080676B0: + subs r6, #1 + adds r5, #2 + cmp r6, #0 + bge _08067656 + ldrb r0, [r4, #0xd] + cmp r0, #2 + bls _080676C8 + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_080676C8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080676D0: .4byte gUnk_08110E78 +_080676D4: .4byte gUnk_08110E8A + + thumb_func_start sub_080676D8 +sub_080676D8: @ 0x080676D8 + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + bx lr + + thumb_func_start sub_080676E0 +sub_080676E0: @ 0x080676E0 + push {lr} + adds r3, r0, #0 + adds r2, r1, #0 + ldrb r0, [r2, #0x18] + cmp r0, #1 + beq _08067706 + cmp r0, #1 + bgt _080676F6 + cmp r0, #0 + beq _080676FC + b _08067734 +_080676F6: + cmp r0, #2 + beq _08067722 + b _08067734 +_080676FC: + movs r0, #1 + strb r0, [r2, #0x18] + movs r0, #0x20 + strb r0, [r2, #0x19] + b _08067742 +_08067706: + ldrb r1, [r2, #0x19] + lsrs r0, r1, #1 + subs r0, #0x10 + strh r0, [r3, #0x36] + subs r1, #1 + strb r1, [r2, #0x19] + lsls r1, r1, #0x18 + cmp r1, #0 + bne _08067742 + movs r0, #2 + strb r0, [r2, #0x18] + movs r0, #0x24 + strb r0, [r2, #0x19] + b _08067742 +_08067722: + ldrb r0, [r2, #0x19] + subs r0, #1 + strb r0, [r2, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08067742 + movs r0, #3 + strb r0, [r2, #0x18] + b _08067742 +_08067734: + movs r1, #0xc0 + lsls r1, r1, #5 + adds r0, r3, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08067748 +_08067742: + ldr r1, _0806774C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_08067748: + pop {pc} + .align 2, 0 +_0806774C: .4byte gUnk_02033280 + + thumb_func_start sub_08067750 +sub_08067750: @ 0x08067750 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08067788 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #1 + bl sub_08004260 + ldr r1, _08067784 @ =0x0000017B + adds r0, r4, #0 + bl sub_0801D2B4 + b _0806778E + .align 2, 0 +_08067784: .4byte 0x0000017B +_08067788: + adds r0, r4, #0 + bl sub_08004274 +_0806778E: + pop {r4, pc} + + thumb_func_start sub_08067790 +sub_08067790: @ 0x08067790 + push {lr} + ldrb r2, [r0, #0xa] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + ldr r2, _080677AC @ =gUnk_02002A40 + ldrb r2, [r2, #8] + lsls r2, r2, #3 + ldr r3, _080677B0 @ =gUnk_08110EF8 + adds r2, r2, r3 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080677AC: .4byte gUnk_02002A40 +_080677B0: .4byte gUnk_08110EF8 + + thumb_func_start sub_080677B4 +sub_080677B4: @ 0x080677B4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080677E8 @ =gUnk_081110D8 + 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_08067C44 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080677E4 + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _080677E4 + adds r0, r4, #0 + bl sub_0806ED78 +_080677E4: + pop {r4, pc} + .align 2, 0 +_080677E8: .4byte gUnk_081110D8 + + thumb_func_start sub_080677EC +sub_080677EC: @ 0x080677EC + 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] + movs r0, #8 + strb r0, [r4, #0x15] + movs r0, #0x80 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + adds r1, #4 + movs r0, #0x48 + strb r0, [r1] + subs r1, #1 + movs r0, #0xa8 + strb r0, [r1] + subs r1, #4 + movs r0, #1 + strb r0, [r1] + adds r1, #0x2e + movs r0, #0xff + strb r0, [r1] + ldr r0, _0806783C @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r4, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + bge _08067840 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067848 + .align 2, 0 +_0806783C: .4byte gLinkEntity +_08067840: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067848: + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldr r0, _0806786C @ =gUnk_08110EF0 + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08067870 + movs r0, #0x2e + ldrsh r2, [r4, r0] + b _08067872 + .align 2, 0 +_0806786C: .4byte gUnk_08110EF0 +_08067870: + lsrs r2, r2, #0x10 +_08067872: + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + strh r2, [r0] + ldrb r0, [r4, #0xe] + adds r0, r0, r2 + adds r2, r4, #0 + adds r2, #0x6e + strh r0, [r2] + strb r1, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x75 + strb r1, [r0] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x1e + adds r1, r4, #0 + adds r1, #0x74 + strb r0, [r1] + subs r1, #0xb + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_08067B08 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080678AC +sub_080678AC: @ 0x080678AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08067D20 + cmp r0, #0 + beq _080678C2 + adds r0, r4, #0 + movs r1, #5 + bl sub_08067B80 + b _08067900 +_080678C2: + adds r2, r4, #0 + adds r2, #0x72 + ldrh r0, [r2] + cmp r0, #0 + beq _080678D0 + subs r0, #1 + strh r0, [r2] +_080678D0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #1 + bne _080678EA + ldrh r0, [r2] + cmp r0, #0 + bne _080678EA + adds r0, r4, #0 + bl sub_08067AAC + b _08067900 +_080678EA: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08067900 + adds r0, r4, #0 + bl sub_08067B34 +_08067900: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067904 +sub_08067904: @ 0x08067904 + push {r4, lr} + adds r4, r0, #0 + bl sub_08067D20 + cmp r0, #0 + beq _0806791A + adds r0, r4, #0 + movs r1, #8 + bl sub_08067B80 + b _08067978 +_0806791A: + adds r1, r4, #0 + adds r1, #0x72 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + bne _08067932 + adds r0, r4, #0 + bl sub_08067B70 + b _08067978 +_08067932: + ldrb r0, [r4, #0x15] + cmp r0, #8 + bne _08067952 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r1, r4, #0 + adds r1, #0x6e + ldrh r1, [r1] + cmp r0, r1 + ble _0806796C + movs r0, #0x18 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x18] + subs r0, #0x59 + ands r0, r1 + b _0806796A +_08067952: + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r1, r0 + bge _0806796C + movs r0, #8 + strb r0, [r4, #0x15] + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806796A: + strb r0, [r4, #0x18] +_0806796C: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + bl sub_080042B8 +_08067978: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806797C +sub_0806797C: @ 0x0806797C + 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 _08067998 + adds r0, r4, #0 + bl sub_08067B08 +_08067998: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806799C +sub_0806799C: @ 0x0806799C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _080679C0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080679BE + adds r0, r4, #0 + bl sub_08067B08 + adds r0, r4, #0 + movs r1, #1 + bl sub_0805E3A0 +_080679BE: + pop {r4, pc} + .align 2, 0 +_080679C0: .4byte gUnk_02000050 + + thumb_func_start sub_080679C4 +sub_080679C4: @ 0x080679C4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x74 + ldrb r0, [r1] + cmp r0, #0 + beq _080679E6 + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080679E6 + adds r0, r4, #0 + bl sub_08067D20 + cmp r0, #0 + bne _080679EE +_080679E6: + adds r0, r4, #0 + bl sub_08067C24 + b _08067A0A +_080679EE: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08067BD4 + adds r0, r4, #0 + bl sub_08067D74 + cmp r0, #0 + beq _08067A0A + adds r0, r4, #0 + bl sub_08067C18 +_08067A0A: + pop {r4, pc} + + thumb_func_start sub_08067A0C +sub_08067A0C: @ 0x08067A0C + 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 _08067A44 + adds r0, r4, #0 + bl sub_08067D20 + cmp r0, #0 + beq _08067A3C + adds r0, r4, #0 + movs r1, #5 + bl sub_08067B80 + ldrb r0, [r4, #0xe] + adds r0, #0x14 + strb r0, [r4, #0xe] + b _08067A76 +_08067A3C: + adds r0, r4, #0 + bl sub_08067C24 + b _08067A76 +_08067A44: + movs r2, #7 + ands r2, r1 + cmp r2, #0 + beq _08067A70 + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08067A6C @ =gUnk_08111154 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + lsls r0, r0, #2 + subs r0, #1 + adds r0, r2, r0 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + b _08067A76 + .align 2, 0 +_08067A6C: .4byte gUnk_08111154 +_08067A70: + adds r0, r4, #0 + bl sub_08067DDC +_08067A76: + pop {r4, pc} + + thumb_func_start sub_08067A78 +sub_08067A78: @ 0x08067A78 + 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 _08067A94 + adds r0, r4, #0 + bl sub_08067AAC +_08067A94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067A98 +sub_08067A98: @ 0x08067A98 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08067AAA + adds r0, r4, #0 + bl sub_08067B08 +_08067AAA: + pop {r4, pc} + + thumb_func_start sub_08067AAC +sub_08067AAC: @ 0x08067AAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08067AFC @ =gUnk_081110FC + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + ldrb r1, [r4, #0x15] + 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] + adds r0, r4, #0 + movs r1, #3 + bl sub_08067DCC + ldr r0, _08067B00 @ =gUnk_0811110C + ldrb r2, [r0, #2] + ldr r3, _08067B04 @ =gUnk_0811110F + adds r0, r4, #0 + movs r1, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_08067AFC: .4byte gUnk_081110FC +_08067B00: .4byte gUnk_0811110C +_08067B04: .4byte gUnk_0811110F + + thumb_func_start sub_08067B08 +sub_08067B08: @ 0x08067B08 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + bl sub_08000E50 + ldr r2, _08067B30 @ =gUnk_08111104 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r2 + ldrh r0, [r1] + adds r1, r4, #0 + adds r1, #0x72 + strh r0, [r1] + adds r0, r4, #0 + bl sub_08067B34 + pop {r4, pc} + .align 2, 0 +_08067B30: .4byte gUnk_08111104 + + thumb_func_start sub_08067B34 +sub_08067B34: @ 0x08067B34 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_08067DCC + bl sub_08000E50 + movs r1, #0x30 + ands r0, r1 + adds r0, #0xb4 + adds r1, r4, #0 + adds r1, #0x59 + strb r0, [r1] + ldr r1, _08067B68 @ =gUnk_0811110C + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + lsrs r0, r0, #0x1f + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, _08067B6C @ =gUnk_0811110F + adds r0, r4, #0 + movs r1, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_08067B68: .4byte gUnk_0811110C +_08067B6C: .4byte gUnk_0811110F + + thumb_func_start sub_08067B70 +sub_08067B70: @ 0x08067B70 + push {lr} + movs r1, #3 + strb r1, [r0, #0xc] + movs r1, #4 + bl sub_08067DCC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067B80 +sub_08067B80: @ 0x08067B80 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + movs r0, #5 + strb r0, [r5, #0xc] + movs r0, #0x14 + strb r0, [r5, #0xe] + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x1e + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080042AC + adds r0, r5, #0 + bl sub_08067DDC + ldr r0, _08067BC4 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r5, r2] + movs r2, #0x2e + ldrsh r0, [r0, r2] + cmp r1, r0 + bge _08067BC8 + ldrb r0, [r5, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067BD0 + .align 2, 0 +_08067BC4: .4byte gLinkEntity +_08067BC8: + ldrb r1, [r5, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067BD0: + strb r0, [r5, #0x18] + pop {r4, r5, pc} + + thumb_func_start sub_08067BD4 +sub_08067BD4: @ 0x08067BD4 + push {r4, lr} + adds r2, r0, #0 + ldrb r3, [r2, #0x18] + lsls r0, r3, #0x19 + cmp r0, #0 + bge _08067BFC + movs r1, #0x2e + ldrsh r0, [r2, r1] + subs r0, #4 + ldr r1, _08067BF8 @ =gLinkEntity + movs r4, #0x2e + ldrsh r1, [r1, r4] + cmp r0, r1 + ble _08067C12 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r3 + b _08067C10 + .align 2, 0 +_08067BF8: .4byte gLinkEntity +_08067BFC: + movs r1, #0x2e + ldrsh r0, [r2, r1] + adds r0, #4 + ldr r1, _08067C14 @ =gLinkEntity + movs r4, #0x2e + ldrsh r1, [r1, r4] + cmp r0, r1 + bge _08067C12 + movs r0, #0x40 + orrs r0, r3 +_08067C10: + strb r0, [r2, #0x18] +_08067C12: + pop {r4, pc} + .align 2, 0 +_08067C14: .4byte gLinkEntity + + thumb_func_start sub_08067C18 +sub_08067C18: @ 0x08067C18 + push {lr} + movs r1, #6 + strb r1, [r0, #0xc] + bl sub_080042AC + pop {pc} + + thumb_func_start sub_08067C24 +sub_08067C24: @ 0x08067C24 + push {r4, lr} + adds r4, r0, #0 + movs r0, #7 + strb r0, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x75 + movs r0, #0x14 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08067DDC + adds r0, r4, #0 + movs r1, #7 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_08067C44 +sub_08067C44: @ 0x08067C44 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08067C6C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + cmp r5, r0 + beq _08067C7C + cmp r5, #0 + bne _08067C70 + adds r0, r4, #0 + bl sub_08078778 + b _08067C7C + .align 2, 0 +_08067C6C: .4byte gUnk_03003F80 +_08067C70: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08067C7C: + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + subs r0, #0x30 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r1, #0 + beq _08067D1C + ldr r1, _08067CB4 @ =gLinkEntity + adds r0, r4, #0 + bl sub_0806FCA0 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0 + beq _08067CA6 + cmp r0, #3 + beq _08067CB8 +_08067CA6: + cmp r2, #2 + bne _08067CDA + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + b _08067CEC + .align 2, 0 +_08067CB4: .4byte gLinkEntity +_08067CB8: + cmp r2, #1 + bne _08067CC4 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08067CD4 +_08067CC4: + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x19 + lsrs r0, r0, #0x1f + cmp r0, #3 + bne _08067CD6 + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08067CD4: + strb r0, [r4, #0x18] +_08067CD6: + cmp r2, #2 + beq _08067CE4 +_08067CDA: + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC + b _08067CEC +_08067CE4: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC +_08067CEC: + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _08067D00 + movs r0, #8 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _08067D12 +_08067D00: + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08067790 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_08067D12: + movs r0, #0 + strb r0, [r5] + movs r0, #0xd2 + bl sub_080A3268 +_08067D1C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08067D20 +sub_08067D20: @ 0x08067D20 + push {r4, r5, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x75 + ldrb r0, [r1] + cmp r0, #0 + beq _08067D34 + subs r0, #1 + strb r0, [r1] + b _08067D70 +_08067D34: + movs r0, #2 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08067D70 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + movs r3, #0x28 + cmp r0, #0 + bge _08067D4C + movs r3, #0x10 +_08067D4C: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r3 + subs r1, r1, r0 + cmp r1, #0x30 + bhi _08067D70 + movs r1, #0x32 + ldrsh r0, [r2, r1] + adds r0, #4 + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x38 + bhi _08067D70 + movs r0, #1 + b _08067D72 +_08067D70: + movs r0, #0 +_08067D72: + pop {r4, r5, pc} + + thumb_func_start sub_08067D74 +sub_08067D74: @ 0x08067D74 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #5 + beq _08067DC8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08067D88 + subs r0, #1 + strb r0, [r4, #0xe] +_08067D88: + movs r0, #2 + bl sub_08049DF4 + adds r2, r0, #0 + cmp r2, #0 + beq _08067DC8 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + movs r3, #0x18 + cmp r0, #0 + bge _08067DA0 + movs r3, #8 +_08067DA0: + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r3 + subs r1, r1, r0 + cmp r1, #0x1e + bhi _08067DC8 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r0, r0, r1 + cmp r0, #0x16 + bhi _08067DC8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08067DC8 + movs r0, #1 + b _08067DCA +_08067DC8: + movs r0, #0 +_08067DCA: + pop {r4, r5, pc} + + thumb_func_start sub_08067DCC +sub_08067DCC: @ 0x08067DCC + push {lr} + adds r2, r0, #0 + adds r2, #0x71 + strb r1, [r2] + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067DDC +sub_08067DDC: @ 0x08067DDC + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r2, #0x10] + adds r0, r2, #0 + adds r0, #0x41 + strb r1, [r0] + subs r0, #4 + strb r1, [r0] + ldr r0, _08067DF8 @ =gUnk_08110EF0 + str r0, [r2, #0x48] + bx lr + .align 2, 0 +_08067DF8: .4byte gUnk_08110EF0 + + thumb_func_start sub_08067DFC +sub_08067DFC: @ 0x08067DFC + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _08067E22 + 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, #5 + bl sub_080042AC + b _08067E28 +_08067E22: + adds r0, r2, #0 + bl sub_080042B8 +_08067E28: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08067E2C +sub_08067E2C: @ 0x08067E2C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08067E58 + ldr r0, _08067E54 @ =gUnk_08111368 + 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_0806ED78 + b _08067E5E + .align 2, 0 +_08067E54: .4byte gUnk_08111368 +_08067E58: + adds r0, r4, #0 + bl sub_08067EF0 +_08067E5E: + pop {r4, pc} + + thumb_func_start sub_08067E60 +sub_08067E60: @ 0x08067E60 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08067E84 @ =gUnk_08111358 + bl sub_0806FDEC + cmp r0, #0 + beq _08067E80 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08078778 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 +_08067E80: + pop {r4, pc} + .align 2, 0 +_08067E84: .4byte gUnk_08111358 + + thumb_func_start sub_08067E88 +sub_08067E88: @ 0x08067E88 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08067E9E + movs r1, #2 + b _08067EB4 +_08067E9E: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08067EAA + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08067EB4 +_08067EAA: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08067EB4: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08067EC4 + adds r0, r4, #0 + bl sub_08004274 +_08067EC4: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08067EE4 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl sub_08056378 +_08067EE4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08067EE8 +sub_08067EE8: @ 0x08067EE8 + movs r1, #1 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08067EF0 +sub_08067EF0: @ 0x08067EF0 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _08067F58 + cmp r4, #1 + bgt _08067F04 + cmp r4, #0 + beq _08067F10 + b _0806801A +_08067F04: + cmp r4, #2 + beq _08067FDC + cmp r4, #3 + bne _08067F0E + b _08068000 +_08067F0E: + b _0806801A +_08067F10: + ldr r1, _08067F50 @ =gUnk_08111358 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _08067F1E + b _080680F0 +_08067F1E: + 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 r0, [r5, #0xa] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + ldr r1, _08067F54 @ =gUnk_08111304 + ldrb r0, [r5, #0xb] + adds r0, r0, r1 + ldrb r1, [r0] + b _08067FF2 + .align 2, 0 +_08067F50: .4byte gUnk_08111358 +_08067F54: .4byte gUnk_08111304 +_08067F58: + adds r4, r5, #0 + adds r4, #0x39 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #2 + bne _08067F98 + movs r1, #0 + movs r0, #3 + strb r0, [r5, #0xc] + strb r1, [r4] + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _08067F94 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0806F118 + b _0806801A + .align 2, 0 +_08067F94: .4byte gLinkEntity +_08067F98: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + ldrb r0, [r5, #0xb] + cmp r0, #3 + bne _0806801A + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _0806801A + movs r1, #0 + movs r0, #2 + strb r0, [r5, #0xc] + strb r1, [r4] + ldr r1, _08067FD8 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_08068190 + b _0806801A + .align 2, 0 +_08067FD8: .4byte gLinkEntity +_08067FDC: + ldr r0, _08067FFC @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_08067FF2: + adds r0, r5, #0 + bl sub_08004260 + b _0806801A + .align 2, 0 +_08067FFC: .4byte gUnk_02000050 +_08068000: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806801A + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_0806801A: + adds r0, r5, #0 + adds r0, #0x59 + ldrb r1, [r0] + adds r7, r0, #0 + cmp r1, #0xff + beq _0806802C + adds r0, r5, #0 + bl sub_08004274 +_0806802C: + adds r1, r5, #0 + adds r1, #0x5b + ldrb r2, [r1] + movs r0, #1 + ands r0, r2 + adds r6, r1, #0 + cmp r0, #0 + beq _0806807E + movs r0, #0xfe + ands r0, r2 + strb r0, [r6] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068068 + ldr r4, _08068064 @ =gUnk_0811137A + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_080A3268 + b _0806807E + .align 2, 0 +_08068064: .4byte gUnk_0811137A +_08068068: + ldr r4, _080680F4 @ =gUnk_08111374 + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_08004488 +_0806807E: + ldrb r1, [r6] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080680A8 + movs r0, #0xfd + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080680A8 + ldr r3, _080680F8 @ =0xFFE80000 + adds r0, r5, #0 + movs r2, #0 + bl sub_0806FA48 +_080680A8: + ldrb r1, [r6] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080680D2 + movs r0, #0xfb + ands r0, r1 + strb r0, [r6] + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _080680D2 + ldr r2, _080680FC @ =0xFFEC0000 + ldr r3, _08068100 @ =0xFFF60000 + adds r0, r5, #0 + bl sub_0806FA48 +_080680D2: + ldrb r1, [r6] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080680F0 + movs r0, #0xf7 + ands r0, r1 + strb r0, [r6] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + ldrb r1, [r7] + adds r0, r0, r1 + strb r0, [r7] +_080680F0: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080680F4: .4byte gUnk_08111374 +_080680F8: .4byte 0xFFE80000 +_080680FC: .4byte 0xFFEC0000 +_08068100: .4byte 0xFFF60000 + + thumb_func_start sub_08068104 +sub_08068104: @ 0x08068104 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806811C +sub_0806811C: @ 0x0806811C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806812E + subs r0, #1 + strb r0, [r4, #0xe] + b _0806818A +_0806812E: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _08068148 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0x14] + lsls r3, r0, #2 +_08068148: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806818C @ =gUnk_08111284 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806816C + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806816C: + movs r0, #0x40 + orrs r6, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + movs r0, #0x7f + ands r5, r0 + strb r5, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + adds r1, r4, #0 + adds r1, #0x59 + movs r0, #0xff + strb r0, [r1] +_0806818A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806818C: .4byte gUnk_08111284 + + thumb_func_start sub_08068190 +sub_08068190: @ 0x08068190 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r5, [r6, #0xb] + cmp r5, #8 + bls _0806819C + movs r5, #8 +_0806819C: + movs r0, #0x7e + bl sub_0807CBD0 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x41 + bl sub_0807CA84 + cmp r0, #0 + beq _080681B4 + movs r4, #2 +_080681B4: + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _080681C0 + movs r4, #3 +_080681C0: + ldr r2, _080681D4 @ =gUnk_0811130E + lsls r0, r4, #1 + lsls r1, r5, #3 + adds r0, r0, r1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_080681D4: .4byte gUnk_0811130E + + thumb_func_start sub_080681D8 +sub_080681D8: @ 0x080681D8 + ldr r1, [r1, #4] + strb r1, [r0, #0xa] + bx lr + .align 2, 0 + + thumb_func_start sub_080681E0 +sub_080681E0: @ 0x080681E0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl sub_0806FF60 + movs r0, #0x40 + ands r0, r4 + cmp r0, #0 + beq _08068226 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r2, r4, #4 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + b _08068268 +_08068226: + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _08068254 + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FF88 + b _08068268 +_08068254: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 +_08068268: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + + thumb_func_start sub_08068270 +sub_08068270: @ 0x08068270 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080682A8 + ldr r1, _080682A4 @ =gUnk_08111358 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080682AE + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #6 + bl sub_08004260 + b _080682AE + .align 2, 0 +_080682A4: .4byte gUnk_08111358 +_080682A8: + adds r0, r4, #0 + bl sub_08004274 +_080682AE: + pop {r4, pc} + + thumb_func_start sub_080682B0 +sub_080682B0: @ 0x080682B0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r2, r0, #0 + cmp r2, #0 + bne _080682F4 + adds r0, #1 + strb r0, [r4, #0xc] + 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, #4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x68 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0 + bl sub_080042AC + adds r0, r4, #0 + movs r1, #0 + bl sub_0806854C +_080682F4: + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806830A + adds r0, r4, #0 + bl sub_08068318 + b _08068314 +_0806830A: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_08068314: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068318 +sub_08068318: @ 0x08068318 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + ldr r4, _08068414 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + ldr r3, _08068418 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r6 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806841C @ =0x0000FFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + ldrh r0, [r4, #0x36] + ands r3, r7 + orrs r3, r0 + adds r7, r3, #0 + ldr r0, _08068420 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068424 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + adds r7, r2, #0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068428 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r7, r0, #0 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806842C @ =0x3FFFFFFF + ands r0, r2 + adds r7, r0, #0 + orrs r7, r1 + mov r0, r8 + ldr r5, [r0, #0x64] + ldrb r1, [r5, #6] + cmp r1, #0xa + bne _08068386 + lsrs r0, r7, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xa + bne _08068394 +_08068386: + cmp r1, #0x16 + bne _080683B4 + lsrs r0, r7, #0x10 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x16 + beq _080683B4 +_08068394: + ldrh r0, [r4, #0x2e] + mov r1, r8 + strh r0, [r1, #0x2e] + ldrh r0, [r4, #0x32] + strh r0, [r1, #0x32] + ldrb r1, [r1, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + mov r2, r8 + strb r0, [r2, #0x18] + mov r0, r8 + bl sub_08068578 +_080683B4: + movs r3, #0 + mov sb, r3 + ldr r0, [r5] + cmp r6, r0 + bne _080683D0 + ldr r0, [r5, #4] + cmp r7, r0 + bne _080683D0 + lsls r1, r7, #8 + lsrs r0, r1, #0x18 + cmp r0, #0x16 + beq _080683D0 + cmp r0, #0xa + bne _08068430 +_080683D0: + mov r0, r8 + ldr r5, [r0, #0x64] + adds r5, #0x90 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r1, #0x58 + add r1, r8 + mov ip, r1 + movs r2, #0x12 +_080683E6: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _080683E6 + mov r2, r8 + ldr r5, [r2, #0x64] + str r6, [r5] + str r7, [r5, #4] + movs r0, #4 + mov sb, r0 + ldrb r1, [r4] + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + ble _080684A8 + subs r0, r1, #1 + strb r0, [r4] + b _080684A8 + .align 2, 0 +_08068414: .4byte gLinkEntity +_08068418: .4byte 0xFFFF0000 +_0806841C: .4byte 0x0000FFFF +_08068420: .4byte gUnk_03003F80 +_08068424: .4byte 0xFF00FFFF +_08068428: .4byte 0xC0FFFFFF +_0806842C: .4byte 0x3FFFFFFF +_08068430: + adds r5, #0x98 + movs r1, #4 + ldrsh r0, [r5, r1] + cmp r0, #0 + bge _08068466 + mov r2, r8 + ldr r5, [r2, #0x64] + adds r5, #0x90 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r0, #0x58 + add r0, r8 + mov ip, r0 + movs r2, #0x12 +_08068450: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _08068450 + movs r1, #4 + mov sb, r1 + b _080684A8 +_08068466: + ldr r1, _0806851C @ =gLinkEntity + movs r2, #0x2e + ldrsh r0, [r1, r2] + movs r3, #0x32 + ldrsh r1, [r1, r3] + ldrh r2, [r5] + ldrh r3, [r5, #2] + bl sub_080041E8 + lsrs r0, r0, #4 + mov r4, r8 + adds r4, #0x69 + mov r3, r8 + adds r3, #0x38 + movs r1, #0x58 + add r1, r8 + mov ip, r1 + cmp r0, #0x18 + ble _080684A8 + mov r2, r8 + ldr r5, [r2, #0x64] + adds r5, #0x90 + movs r2, #0x12 +_08068494: + ldr r0, [r5] + ldr r1, [r5, #4] + str r0, [r5, #8] + str r1, [r5, #0xc] + subs r5, #8 + subs r2, #1 + cmp r2, #0 + bge _08068494 + movs r0, #4 + mov sb, r0 +_080684A8: + mov r1, r8 + ldr r5, [r1, #0x64] + adds r5, #0x98 + ldrh r0, [r5] + strh r0, [r1, #0x2e] + ldrh r0, [r5, #2] + strh r0, [r1, #0x32] + ldrh r0, [r5, #4] + strh r0, [r1, #0x36] + ldrb r0, [r5, #7] + lsls r0, r0, #0x1a + lsrs r0, r0, #0x1a + strb r0, [r1, #0x14] + ldrb r0, [r5, #7] + lsrs r0, r0, #6 + strb r0, [r3] + ldrb r0, [r5, #6] + cmp r0, #0x16 + beq _080684D2 + cmp r0, #0xa + bne _080684DE +_080684D2: + mov r2, r8 + ldrb r1, [r2, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2, #0x18] +_080684DE: + adds r1, r4, #0 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + ble _080684EE + subs r0, r2, #1 + strb r0, [r1] +_080684EE: + mov r2, sb + mov r3, r8 + ldrb r0, [r3, #0x14] + lsrs r0, r0, #1 + add sb, r0 + mov r0, ip + ldrb r0, [r0] + cmp sb, r0 + beq _08068520 + cmp r2, #0 + bne _0806850C + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bgt _08068520 +_0806850C: + mov r0, r8 + mov r1, sb + bl sub_080042AC + movs r0, #0x1e + strb r0, [r4] + b _08068526 + .align 2, 0 +_0806851C: .4byte gLinkEntity +_08068520: + mov r0, r8 + bl sub_080042B8 +_08068526: + mov r0, r8 + bl sub_0800451C + mov r1, r8 + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + bge _08068542 + movs r2, #0xc + rsbs r2, r2, #0 + mov r0, r8 + movs r1, #0 + bl sub_0806F854 +_08068542: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806854C +sub_0806854C: @ 0x0806854C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xa0 + bl sub_0801D8E0 + str r0, [r5, #0x64] + cmp r0, #0 + beq _08068574 + adds r0, r5, #0 + adds r0, #0x68 + movs r4, #0 + movs r1, #1 + strb r1, [r0] + adds r0, r5, #0 + bl sub_080788E0 + str r4, [r5, #0x48] + adds r0, r5, #0 + bl sub_08068578 +_08068574: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08068578 +sub_08068578: @ 0x08068578 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + ldr r4, _08068664 @ =gLinkEntity + ldrh r1, [r4, #0x2e] + ldr r3, _08068668 @ =0xFFFF0000 + adds r0, r3, #0 + ands r0, r5 + orrs r0, r1 + ldrh r1, [r4, #0x32] + lsls r1, r1, #0x10 + ldr r2, _0806866C @ =0x0000FFFF + ands r0, r2 + adds r5, r0, #0 + orrs r5, r1 + ldrh r0, [r4, #0x36] + ands r3, r6 + orrs r3, r0 + ldr r0, _08068670 @ =gUnk_03003F80 + adds r0, #0xa8 + ldrb r0, [r0] + lsls r0, r0, #0x10 + ldr r2, _08068674 @ =0xFF00FFFF + ands r2, r3 + orrs r2, r0 + ldrb r1, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + lsls r1, r1, #0x18 + ldr r0, _08068678 @ =0xC0FFFFFF + ands r0, r2 + orrs r0, r1 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #0x1e + ldr r2, _0806867C @ =0x3FFFFFFF + ands r0, r2 + adds r6, r0, #0 + orrs r6, r1 + movs r0, #0x2e + ldrsh r1, [r4, r0] + movs r2, #0x2e + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov sl, r1 + movs r0, #0x32 + ldrsh r1, [r4, r0] + movs r2, #0x32 + ldrsh r0, [r7, r2] + subs r1, r1, r0 + mov r8, r1 + mov r1, sl + lsls r0, r1, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov sl, r0 + mov r2, r8 + lsls r0, r2, #0x10 + asrs r0, r0, #0x10 + movs r1, #0x14 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + ldr r3, [r7, #0x64] + movs r0, #0 + mov sb, r0 + mov ip, r0 + movs r4, #0x13 +_08068614: + mov r1, ip + asrs r0, r1, #8 + subs r0, r5, r0 + strh r0, [r3] + lsrs r0, r5, #0x10 + mov r2, sb + asrs r1, r2, #8 + subs r0, r0, r1 + strh r0, [r3, #2] + strh r6, [r3, #4] + lsrs r0, r6, #0x10 + strb r0, [r3, #6] + ldrb r0, [r7, #0x14] + movs r1, #0x3f + ands r1, r0 + ldrb r2, [r3, #7] + movs r0, #0x40 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r1, r7, #0 + adds r1, #0x38 + ldrb r1, [r1] + lsls r1, r1, #6 + movs r2, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r3, #7] + adds r3, #8 + add sb, r8 + add ip, sl + subs r4, #1 + cmp r4, #0 + bge _08068614 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08068664: .4byte gLinkEntity +_08068668: .4byte 0xFFFF0000 +_0806866C: .4byte 0x0000FFFF +_08068670: .4byte gUnk_03003F80 +_08068674: .4byte 0xFF00FFFF +_08068678: .4byte 0xC0FFFFFF +_0806867C: .4byte 0x3FFFFFFF + + thumb_func_start sub_08068680 +sub_08068680: @ 0x08068680 + adds r2, r1, #0 + adds r2, #0x68 + movs r0, #0 + strb r0, [r2] + ldrb r2, [r1, #0x18] + subs r0, #4 + ands r0, r2 + strb r0, [r1, #0x18] + bx lr + .align 2, 0 + + thumb_func_start sub_08068694 +sub_08068694: @ 0x08068694 + push {r4, lr} + adds r4, r1, #0 + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #1 + movs r1, #1 + strb r1, [r2] + ldrb r2, [r4, #0x18] + subs r1, #5 + ands r1, r2 + orrs r1, r3 + strb r1, [r4, #0x18] + ldrb r0, [r0, #0x14] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08068578 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080686C4 +sub_080686C4: @ 0x080686C4 + push {lr} + adds r0, r1, #0 + ldrh r1, [r0, #0x32] + subs r1, #0x10 + strh r1, [r0, #0x32] + bl sub_08068578 + pop {pc} + + thumb_func_start sub_080686D4 +sub_080686D4: @ 0x080686D4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08068700 + ldr r0, _080686FC @ =gUnk_08111530 + 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_0806ED78 + b _08068706 + .align 2, 0 +_080686FC: .4byte gUnk_08111530 +_08068700: + adds r0, r4, #0 + bl sub_08068780 +_08068706: + pop {r4, pc} + + thumb_func_start sub_08068708 +sub_08068708: @ 0x08068708 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806872C @ =gUnk_08111520 + bl sub_0806FDEC + cmp r0, #0 + beq _08068728 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_08068728: + pop {r4, pc} + .align 2, 0 +_0806872C: .4byte gUnk_08111520 + + thumb_func_start sub_08068730 +sub_08068730: @ 0x08068730 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + blt _08068762 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806875E + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _08068762 + adds r0, r4, #0 + bl sub_08004260 + b _08068762 +_0806875E: + subs r0, #1 + strb r0, [r4, #0xf] +_08068762: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0806877E + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl sub_08056378 +_0806877E: + pop {r4, pc} + + thumb_func_start sub_08068780 +sub_08068780: @ 0x08068780 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #1 + beq _080687D0 + cmp r0, #1 + bgt _08068794 + cmp r0, #0 + beq _0806879A + b _0806880E +_08068794: + cmp r0, #2 + beq _08068800 + b _0806880E +_0806879A: + ldr r1, _080687CC @ =gUnk_08111520 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806887A + 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 r0, [r5, #0xa] + strb r0, [r5, #0x14] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + b _0806880E + .align 2, 0 +_080687CC: .4byte gUnk_08111520 +_080687D0: + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _080687EA + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + adds r0, r5, #0 + bl sub_0806F118 + b _0806880E +_080687EA: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r0, r5, #0 + bl sub_08004274 + b _0806880E +_08068800: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806880E + movs r0, #1 + strb r0, [r5, #0xc] +_0806880E: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806887A + movs r0, #0xbf + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + bl sub_080040A8 + cmp r0, #0 + bne _08068848 + ldr r4, _08068844 @ =gUnk_0811153E + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_080A3268 + b _0806885E + .align 2, 0 +_08068844: .4byte gUnk_0811153E +_08068848: + ldr r4, _0806887C @ =gUnk_08111538 + bl sub_08000E50 + movs r1, #3 + bl __modsi3 + lsls r0, r0, #1 + adds r0, r0, r4 + ldrh r0, [r0] + bl sub_08004488 +_0806885E: + adds r0, r5, #0 + movs r1, #0x3d + movs r2, #0x20 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0806887A + movs r2, #0xc0 + lsls r2, r2, #0xd + ldr r3, _08068880 @ =0xFFF60000 + adds r0, r5, #0 + bl sub_0806FA48 +_0806887A: + pop {r4, r5, pc} + .align 2, 0 +_0806887C: .4byte gUnk_08111538 +_08068880: .4byte 0xFFF60000 + + thumb_func_start sub_08068884 +sub_08068884: @ 0x08068884 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806889C +sub_0806889C: @ 0x0806889C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x5a + ldrb r4, [r0] + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r4, r0 + ldrb r2, [r5, #0x1e] + adds r0, r5, #0 + movs r1, #1 + bl sub_0806FF60 + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _080688E2 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #2 + movs r2, #0xff + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + b _08068906 +_080688E2: + adds r0, r5, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 + movs r0, #0xe1 + rsbs r0, r0, #0 + ands r4, r0 + adds r0, r5, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #2 + bl sub_0806FFD8 +_08068906: + adds r0, r5, #0 + bl sub_0807000C + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08068910 +sub_08068910: @ 0x08068910 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08068920 + subs r0, #1 + strb r0, [r4, #0xe] + b _08068960 +_08068920: + movs r0, #0x10 + strb r0, [r4, #0xe] + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08068960 + adds r0, r4, #0 + movs r1, #0x30 + movs r2, #0x30 + bl sub_0806EDD8 + adds r2, r0, #0 + cmp r2, #0 + bge _08068944 + movs r2, #0x10 +_08068944: + adds r0, r2, #0 + bl sub_0806F5A4 + adds r2, r0, #0 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] + movs r0, #4 + rsbs r0, r0, #0 + ands r1, r0 + adds r1, r1, r2 + adds r0, r4, #0 + bl sub_08004260 +_08068960: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068964 +sub_08068964: @ 0x08068964 + push {lr} + movs r0, #0x35 + movs r1, #0 + movs r2, #3 + bl sub_080A7C18 + movs r0, #0x35 + movs r1, #2 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806897C +sub_0806897C: @ 0x0806897C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _080689B4 + ldr r1, _080689B0 @ =gUnk_08111520 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _080689BA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #6 + bl sub_08004260 + b _080689BA + .align 2, 0 +_080689B0: .4byte gUnk_08111520 +_080689B4: + adds r0, r4, #0 + bl sub_08004274 +_080689BA: + pop {r4, pc} + + thumb_func_start nullsub_502 +nullsub_502: @ 0x080689BC + bx lr + .align 2, 0 + + thumb_func_start sub_080689C0 +sub_080689C0: @ 0x080689C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080689E4 + ldr r0, _080689E0 @ =gUnk_081115D0 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _080689FA + .align 2, 0 +_080689E0: .4byte gUnk_081115D0 +_080689E4: + ldr r0, _08068A18 @ =gUnk_081115C0 + 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_0806ED78 +_080689FA: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08068A16 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08068BEC +_08068A16: + pop {r4, pc} + .align 2, 0 +_08068A18: .4byte gUnk_081115C0 + + thumb_func_start sub_08068A1C +sub_08068A1C: @ 0x08068A1C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xb] + ldr r0, _08068A34 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _08068A38 + movs r1, #6 + movs r0, #3 + b _08068A42 + .align 2, 0 +_08068A34: .4byte gUnk_030010A0 +_08068A38: + adds r0, r4, #0 + bl sub_08078778 + movs r1, #2 + movs r0, #1 +_08068A42: + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_08004260 + pop {r4, pc} + + thumb_func_start sub_08068A4C +sub_08068A4C: @ 0x08068A4C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + bge _08068A62 + movs r1, #2 + b _08068A78 +_08068A62: + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _08068A6E + movs r0, #0x10 + strb r0, [r4, #0xf] + b _08068A78 +_08068A6E: + subs r0, #1 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r1, [r0] +_08068A78: + adds r0, r4, #0 + bl sub_0806F078 + cmp r0, #0 + bne _08068A88 + adds r0, r4, #0 + bl sub_08004274 +_08068A88: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08068AA2 + movs r0, #0 + strb r0, [r1] + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0 + bl sub_08056378 +_08068AA2: + pop {r4, pc} + + thumb_func_start sub_08068AA4 +sub_08068AA4: @ 0x08068AA4 + push {lr} + adds r2, r0, #0 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r0, [r2, #0xa] + cmp r0, #0 + beq _08068AD4 + ldrb r0, [r2, #0xb] + adds r1, r0, #1 + movs r0, #7 + ands r1, r0 + strb r1, [r2, #0xb] + cmp r1, #0 + bne _08068AC4 + adds r0, r1, #1 + strb r0, [r2, #0xb] +_08068AC4: + ldr r0, _08068AD8 @ =gUnk_081115DC + ldrb r1, [r2, #0xb] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r1, [r1] + adds r0, r2, #0 + bl sub_0801D2B4 +_08068AD4: + pop {pc} + .align 2, 0 +_08068AD8: .4byte gUnk_081115DC + + thumb_func_start sub_08068ADC +sub_08068ADC: @ 0x08068ADC + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08068AF8 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08068AF0 + adds r0, r4, #0 + bl sub_08004274 +_08068AF0: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08068AF8: .4byte gUnk_030010A0 + + thumb_func_start sub_08068AFC +sub_08068AFC: @ 0x08068AFC + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + pop {r4, pc} + + thumb_func_start sub_08068B2C +sub_08068B2C: @ 0x08068B2C + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _08068B64 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _08068B60 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _08068B6C + .align 2, 0 +_08068B60: .4byte gLinkEntity +_08068B64: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_08068B6C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068B70 +sub_08068B70: @ 0x08068B70 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08068B80 + movs r0, #1 + strb r0, [r4, #0xc] +_08068B80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068B84 +sub_08068B84: @ 0x08068B84 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08068BAC @ =gUnk_08111618 + ldrb r0, [r4, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08068B9A + movs r1, #0 + bl sub_08054414 +_08068B9A: + ldr r0, _08068BB0 @ =gUnk_081115EC + ldrb r1, [r4, #0xe] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r0, [r1] + bl sub_0805ED14 + pop {r4, pc} + .align 2, 0 +_08068BAC: .4byte gUnk_08111618 +_08068BB0: .4byte gUnk_081115EC + + thumb_func_start sub_08068BB4 +sub_08068BB4: @ 0x08068BB4 + ldr r2, _08068BCC @ =gUnk_02002A40 + adds r1, r2, #0 + adds r1, #0xb4 + ldrb r1, [r1] + adds r3, r0, #0 + adds r3, #0x69 + strb r1, [r3] + adds r2, #0xb5 + ldrb r1, [r2] + adds r0, #0x6a + strb r1, [r0] + bx lr + .align 2, 0 +_08068BCC: .4byte gUnk_02002A40 + + thumb_func_start sub_08068BD0 +sub_08068BD0: @ 0x08068BD0 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x69 + ldrb r0, [r0] + movs r1, #0 + bl sub_08054414 + adds r4, #0x6a + ldrb r0, [r4] + movs r1, #1 + bl sub_08054414 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068BEC +sub_08068BEC: @ 0x08068BEC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x44 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _08068C22 + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r3, _08068C24 @ =0xFFF00000 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0 + bl sub_0806FA48 + movs r0, #0xfa + bl sub_080A3268 +_08068C22: + pop {r4, pc} + .align 2, 0 +_08068C24: .4byte 0xFFF00000 + + thumb_func_start sub_08068C28 +sub_08068C28: @ 0x08068C28 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08068C54 @ =gUnk_08111623 + ldrb r1, [r4, #0xa] + adds r1, r1, r0 + ldrb r0, [r1] + strb r0, [r4, #0xe] + ldrb r5, [r4, #0xa] + cmp r5, #1 + bne _08068C6A + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #0 + beq _08068C6A + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #0 + bne _08068C58 + strb r5, [r4, #0xe] + b _08068C6A + .align 2, 0 +_08068C54: .4byte gUnk_08111623 +_08068C58: + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #0 + bne _08068C66 + movs r0, #2 + b _08068C68 +_08068C66: + movs r0, #3 +_08068C68: + strb r0, [r4, #0xe] +_08068C6A: + pop {r4, r5, pc} + + thumb_func_start sub_08068C6C +sub_08068C6C: @ 0x08068C6C + push {lr} + ldr r1, _08068C88 @ =gUnk_0811162B + ldrb r0, [r0, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 +_08068C88: .4byte gUnk_0811162B + + thumb_func_start sub_08068C8C +sub_08068C8C: @ 0x08068C8C + ldr r2, _08068C9C @ =gUnk_08111638 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r0, [r0] + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_08068C9C: .4byte gUnk_08111638 + + thumb_func_start sub_08068CA0 +sub_08068CA0: @ 0x08068CA0 + push {r4, lr} + adds r4, r1, #0 + ldrb r1, [r0, #0xa] + cmp r1, #1 + bne _08068CDC + str r1, [r4, #0x14] + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #0 + bne _08068CB8 + str r0, [r4, #0x14] +_08068CB8: + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #0 + bne _08068CC4 + str r0, [r4, #0x14] +_08068CC4: + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #0 + bne _08068CD0 + str r0, [r4, #0x14] +_08068CD0: + movs r0, #0x4e + bl sub_0807CA84 + cmp r0, #0 + bne _08068CF6 + b _08068CF4 +_08068CDC: + ldr r1, _08068CF8 @ =gUnk_0811162B + ldrb r0, [r0, #0xe] + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + bl sub_0807CA84 + cmp r0, #0 + beq _08068CF4 + movs r0, #1 +_08068CF4: + str r0, [r4, #0x14] +_08068CF6: + pop {r4, pc} + .align 2, 0 +_08068CF8: .4byte gUnk_0811162B + + thumb_func_start sub_08068CFC +sub_08068CFC: @ 0x08068CFC + push {r4, lr} + adds r4, r1, #0 + movs r1, #0 + str r1, [r4, #0x14] + ldrb r0, [r0, #0xe] + cmp r0, #0xa + bhi _08068DB6 + lsls r0, r0, #2 + ldr r1, _08068D14 @ =_08068D18 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08068D14: .4byte _08068D18 +_08068D18: @ jump table + .4byte _08068DB2 @ case 0 + .4byte _08068D44 @ case 1 + .4byte _08068D48 @ case 2 + .4byte _08068D4C @ case 3 + .4byte _08068DB2 @ case 4 + .4byte _08068D50 @ case 5 + .4byte _08068D58 @ case 6 + .4byte _08068D68 @ case 7 + .4byte _08068DB2 @ case 8 + .4byte _08068DB2 @ case 9 + .4byte _08068DA8 @ case 10 +_08068D44: + movs r0, #2 + b _08068DAA +_08068D48: + movs r0, #0x15 + b _08068DAA +_08068D4C: + movs r0, #0x14 + b _08068DAA +_08068D50: + movs r0, #3 + bl sub_0807CBD0 + b _08068DAE +_08068D58: + ldr r0, _08068D64 @ =gUnk_02002A40 + adds r0, #0xab + ldrb r0, [r0] + cmp r0, #0x4f + bls _08068DB6 + b _08068DB2 + .align 2, 0 +_08068D64: .4byte gUnk_02002A40 +_08068D68: + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x49 + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4c + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4e + bl sub_0807CA84 + cmp r0, #0 + beq _08068DB6 + movs r0, #0x4f + b _08068DAA +_08068DA8: + movs r0, #0x4d +_08068DAA: + bl sub_0807CA84 +_08068DAE: + cmp r0, #0 + beq _08068DB6 +_08068DB2: + movs r0, #1 + str r0, [r4, #0x14] +_08068DB6: + pop {r4, pc} + + thumb_func_start sub_08068DB8 +sub_08068DB8: @ 0x08068DB8 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DCC @ =gUnk_08111664 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068DCC: .4byte gUnk_08111664 + + thumb_func_start sub_08068DD0 +sub_08068DD0: @ 0x08068DD0 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DE4 @ =gUnk_0811167A + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068DE4: .4byte gUnk_0811167A + + thumb_func_start sub_08068DE8 +sub_08068DE8: @ 0x08068DE8 + push {lr} + adds r1, r0, #0 + ldr r2, _08068DFC @ =gUnk_08111690 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068DFC: .4byte gUnk_08111690 + + thumb_func_start sub_08068E00 +sub_08068E00: @ 0x08068E00 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E14 @ =gUnk_081116A6 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E14: .4byte gUnk_081116A6 + + thumb_func_start sub_08068E18 +sub_08068E18: @ 0x08068E18 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E2C @ =gUnk_081116BC + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E2C: .4byte gUnk_081116BC + + thumb_func_start sub_08068E30 +sub_08068E30: @ 0x08068E30 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E44 @ =gUnk_081116D2 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E44: .4byte gUnk_081116D2 + + thumb_func_start sub_08068E48 +sub_08068E48: @ 0x08068E48 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E5C @ =gUnk_081116E8 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E5C: .4byte gUnk_081116E8 + + thumb_func_start sub_08068E60 +sub_08068E60: @ 0x08068E60 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E74 @ =gUnk_081116FE + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E74: .4byte gUnk_081116FE + + thumb_func_start sub_08068E78 +sub_08068E78: @ 0x08068E78 + push {lr} + adds r1, r0, #0 + ldr r2, _08068E8C @ =gUnk_08111714 + ldrb r0, [r1, #0xe] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + bl sub_08056398 + pop {pc} + .align 2, 0 +_08068E8C: .4byte gUnk_08111714 + + thumb_func_start sub_08068E90 +sub_08068E90: @ 0x08068E90 + ldr r2, _08068EAC @ =gUnk_03003F80 + adds r2, #0xac + ldr r1, _08068EB0 @ =gUnk_08111740 + ldrb r0, [r0, #0xe] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + subs r1, #1 + movs r0, #1 + lsls r0, r1 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_08068EAC: .4byte gUnk_03003F80 +_08068EB0: .4byte gUnk_08111740 + + thumb_func_start sub_08068EB4 +sub_08068EB4: @ 0x08068EB4 + ldr r0, _08068EC0 @ =gUnk_03003F80 + adds r0, #0xab + movs r1, #0 + strb r1, [r0] + bx lr + .align 2, 0 +_08068EC0: .4byte gUnk_03003F80 + + thumb_func_start sub_08068EC4 +sub_08068EC4: @ 0x08068EC4 + push {r4, lr} + adds r3, r1, #0 + ldr r2, _08068EEC @ =gUnk_08111740 + ldrb r4, [r0, #0xe] + lsls r1, r4, #2 + adds r1, r1, r2 + ldr r0, _08068EF0 @ =gUnk_03003F80 + adds r0, #0xab + ldr r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _08068EF8 + ldr r1, _08068EF4 @ =gUnk_0811172A + lsls r0, r4, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3, #0x10] + movs r0, #1 + b _08068EFA + .align 2, 0 +_08068EEC: .4byte gUnk_08111740 +_08068EF0: .4byte gUnk_03003F80 +_08068EF4: .4byte gUnk_0811172A +_08068EF8: + movs r0, #0 +_08068EFA: + str r0, [r3, #0x14] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F00 +sub_08068F00: @ 0x08068F00 + push {lr} + ldrb r0, [r0, #0xe] + cmp r0, #1 + bne _08068F0E + ldr r0, _08068F10 @ =gUnk_080F3494 + bl LoadRoomEntityList +_08068F0E: + pop {pc} + .align 2, 0 +_08068F10: .4byte gUnk_080F3494 + + thumb_func_start sub_08068F14 +sub_08068F14: @ 0x08068F14 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #5 + bne _08068F24 + movs r0, #0xa0 + bl sub_080526A0 +_08068F24: + ldrb r0, [r4, #0xe] + cmp r0, #6 + bne _08068F38 + movs r0, #0xa0 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #2 + bl sub_080526A0 +_08068F38: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F3C +sub_08068F3C: @ 0x08068F3C + push {lr} + ldrb r0, [r0, #0xe] + cmp r0, #6 + bne _08068F4A + movs r0, #0xa0 + bl sub_080526A0 +_08068F4A: + pop {pc} + + thumb_func_start sub_08068F4C +sub_08068F4C: @ 0x08068F4C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _08068F72 + adds r0, #1 + strb r0, [r4, #0xc] + 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, #4 + bl sub_080042AC + b _08068F78 +_08068F72: + adds r0, r4, #0 + bl sub_080042B8 +_08068F78: + adds r2, r4, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08068F94 + movs r0, #0xfe + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + movs r1, #0 + bl sub_08068BEC +_08068F94: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08068F98 +sub_08068F98: @ 0x08068F98 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08068FBC @ =gUnk_08111914 + 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_0806ED78 + adds r0, r4, #0 + bl sub_0806920C + pop {r4, pc} + .align 2, 0 +_08068FBC: .4byte gUnk_08111914 + + thumb_func_start sub_08068FC0 +sub_08068FC0: @ 0x08068FC0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xb] + strb r0, [r4, #0x14] + movs r0, #0x40 + strh r0, [r4, #0x24] + adds r1, r4, #0 + adds r1, #0x6d + movs r0, #0xff + strb r0, [r1] + adds r0, r4, #0 + bl sub_0805ACC0 + adds r2, r0, #0 + cmp r2, #0 + bne _08068FF4 + ldrh r0, [r4, #0x2e] + adds r1, r4, #0 + adds r1, #0x68 + strh r0, [r1] + ldrh r0, [r4, #0x32] + adds r1, #2 + strh r0, [r1] + b _08069000 +_08068FF4: + lsrs r1, r2, #0x10 + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, #2 + strh r2, [r0] +_08069000: + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x6c + strb r0, [r1] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_08069018 +sub_08069018: @ 0x08069018 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806903A + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_0806903A: + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806905E + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _08069058 + movs r0, #2 + b _0806905A +_08069058: + movs r0, #3 +_0806905A: + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806905E: + adds r0, r4, #0 + bl sub_0806924C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069068 +sub_08069068: @ 0x08069068 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _080690A4 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #2 + ands r1, r0 + subs r1, #1 + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + movs r0, #3 + ands r1, r0 + strb r1, [r4, #0x14] + lsls r1, r1, #3 + strb r1, [r4, #0x15] + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xf] + ldrb r1, [r4, #0x14] + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC +_080690A4: + adds r0, r4, #0 + bl sub_080AEF88 + adds r0, r4, #0 + bl sub_080042B8 + movs r0, #0x2e + ldrsh r1, [r4, r0] + adds r2, r4, #0 + adds r2, #0x68 + movs r3, #0 + ldrsh r0, [r2, r3] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080690CC + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strb r0, [r4, #0xf] +_080690CC: + movs r3, #0x10 + rsbs r3, r3, #0 + cmp r1, r3 + bge _080690DE + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x2e] + movs r0, #1 + strb r0, [r4, #0xf] +_080690DE: + movs r5, #0x32 + ldrsh r1, [r4, r5] + adds r2, r4, #0 + adds r2, #0x6a + movs r5, #0 + ldrsh r0, [r2, r5] + subs r1, r1, r0 + cmp r1, #0x10 + ble _080690FA + ldrh r0, [r2] + adds r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strb r0, [r4, #0xf] +_080690FA: + cmp r1, r3 + bge _08069108 + ldrh r0, [r2] + subs r0, #0x10 + strh r0, [r4, #0x32] + movs r0, #1 + strb r0, [r4, #0xf] +_08069108: + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806911C + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806911C: + adds r0, r4, #0 + bl sub_0806924C + pop {r4, r5, pc} + + thumb_func_start sub_08069124 +sub_08069124: @ 0x08069124 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r1, _08069144 @ =gUnk_08111928 + 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_0806924C + pop {r4, pc} + .align 2, 0 +_08069144: .4byte gUnk_08111928 + + thumb_func_start sub_08069148 +sub_08069148: @ 0x08069148 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #3 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x14] + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + pop {r4, pc} + + thumb_func_start sub_08069168 +sub_08069168: @ 0x08069168 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _08069186 + movs r0, #2 + strb r0, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #0xc + adds r0, r2, #0 + bl sub_080042AC +_08069186: + pop {pc} + + thumb_func_start sub_08069188 +sub_08069188: @ 0x08069188 + push {lr} + adds r2, r0, #0 + adds r3, r2, #0 + adds r3, #0x5a + ldrb r1, [r3] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080691B8 + movs r0, #0 + strb r0, [r3] + ldrb r0, [r2, #0xf] + subs r0, #1 + strb r0, [r2, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080691B8 + movs r0, #3 + strb r0, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #0x10 + adds r0, r2, #0 + bl sub_080042AC +_080691B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080691BC +sub_080691BC: @ 0x080691BC + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bge _080691DE + movs r1, #0 + movs r0, #1 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + ldrb r1, [r2, #0x14] + adds r1, #4 + adds r0, r2, #0 + bl sub_080042AC +_080691DE: + pop {pc} + + thumb_func_start sub_080691E0 +sub_080691E0: @ 0x080691E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _080691F4 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_080691F4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080691F8 +sub_080691F8: @ 0x080691F8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _08069208 @ =gUnk_08111938 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_08069208: .4byte gUnk_08111938 + + thumb_func_start sub_0806920C +sub_0806920C: @ 0x0806920C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08069234 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x6d + ldrb r0, [r0] + cmp r5, r0 + beq _08069244 + cmp r5, #0 + bne _08069238 + adds r0, r4, #0 + bl sub_08078778 + b _08069244 + .align 2, 0 +_08069234: .4byte gUnk_03003F80 +_08069238: + adds r0, r4, #0 + adds r0, #0x6c + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_08069244: + adds r0, r4, #0 + adds r0, #0x6d + strb r5, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0806924C +sub_0806924C: @ 0x0806924C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806929C + ldr r0, _08069278 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069284 + cmp r2, #2 + bne _0806927C + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806928E + .align 2, 0 +_08069278: .4byte gUnk_03003F80 +_0806927C: + adds r0, r4, #0 + bl sub_080691F8 + b _0806928E +_08069284: + adds r0, r4, #0 + bl sub_080691F8 + bl sub_080791D0 +_0806928E: + movs r0, #0xd4 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806929C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080692A0 +sub_080692A0: @ 0x080692A0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _080692C6 + 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, #0xf + bl sub_080042AC + b _080692CC +_080692C6: + adds r0, r2, #0 + bl sub_080042B8 +_080692CC: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080692D0 +sub_080692D0: @ 0x080692D0 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080692F4 + ldr r0, _080692F0 @ =gUnk_08111A8C + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806930A + .align 2, 0 +_080692F0: .4byte gUnk_08111A8C +_080692F4: + ldr r0, _0806930C @ =gUnk_08111A80 + 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_0806ED78 +_0806930A: + pop {r4, pc} + .align 2, 0 +_0806930C: .4byte gUnk_08111A80 + + thumb_func_start sub_08069310 +sub_08069310: @ 0x08069310 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078778 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069328 +sub_08069328: @ 0x08069328 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _0806934E + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + cmp r0, #0 + blt _0806934E + strb r0, [r4, #0x14] +_0806934E: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _08069362 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_08069362: + adds r0, r4, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806938E + movs r0, #2 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0805E47C + adds r0, r4, #0 + movs r1, #8 + bl sub_080042AC + ldrb r0, [r4, #0xe] + movs r1, #0x90 + lsls r1, r1, #5 + adds r0, r0, r1 + bl sub_08056378 +_0806938E: + pop {r4, pc} + + thumb_func_start sub_08069390 +sub_08069390: @ 0x08069390 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _080693C0 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _080693BC + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0805E584 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_080693BC: + pop {r4, pc} + .align 2, 0 +_080693C0: .4byte gUnk_02000050 + + thumb_func_start sub_080693C4 +sub_080693C4: @ 0x080693C4 + push {lr} + movs r1, #1 + strb r1, [r0, #0xc] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_080693D0 +sub_080693D0: @ 0x080693D0 + push {r4, r5, r6, lr} + adds r5, r0, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r5, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #8 + bne _08069422 + adds r0, r5, #0 + adds r0, #0x82 + ldrh r0, [r0] + movs r1, #0xf + ands r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r6, r0, #0x1f + adds r4, r5, #0 + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _0806940C + movs r0, #0 + strb r0, [r4] + ldr r1, _08069424 @ =0xFFF80000 + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08069428 +_0806940C: + ldrb r0, [r4] + cmp r0, #2 + bne _08069422 + movs r0, #0 + strb r0, [r4] + movs r1, #0x80 + lsls r1, r1, #0xc + adds r0, r5, #0 + adds r2, r6, #0 + bl sub_08069428 +_08069422: + pop {r4, r5, r6, pc} + .align 2, 0 +_08069424: .4byte 0xFFF80000 + + thumb_func_start sub_08069428 +sub_08069428: @ 0x08069428 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + movs r1, #4 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _08069452 + ldr r3, _0806947C @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_0806FA48 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_08069452: + cmp r6, #0 + beq _0806947A + adds r0, r5, #0 + movs r1, #0x41 + movs r2, #0 + bl CreateFX + adds r4, r0, #0 + cmp r4, #0 + beq _0806947A + ldr r3, _0806947C @ =0xFFF00000 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_0806FA48 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806947A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806947C: .4byte 0xFFF00000 + + thumb_func_start sub_08069480 +sub_08069480: @ 0x08069480 + push {lr} + bl sub_0801E99C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {pc} + + thumb_func_start sub_0806948C +sub_0806948C: @ 0x0806948C + push {r4, lr} + adds r4, r1, #0 + bl sub_08069480 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _080694AC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_080694AC: .4byte gUnk_02033280 + + thumb_func_start sub_080694B0 +sub_080694B0: @ 0x080694B0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08069480 + lsls r0, r0, #0x18 + lsrs r5, r0, #0x18 + adds r0, r5, #0 + bl sub_0801E7F4 + cmp r0, #0 + beq _080694CE + adds r0, r4, #0 + bl sub_08078778 + b _080694D6 +_080694CE: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078784 +_080694D6: + pop {r4, r5, pc} + + thumb_func_start sub_080694D8 +sub_080694D8: @ 0x080694D8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _080694E8 @ =gUnk_08111A94 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_080694E8: .4byte gUnk_08111A94 + + thumb_func_start sub_080694EC +sub_080694EC: @ 0x080694EC + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #4 + strb r0, [r4, #0x14] + movs r5, #2 + movs r0, #0x2f + bl sub_0801E7F4 + cmp r0, #0 + bne _08069502 + movs r5, #8 +_08069502: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x80 + strh r5, [r0] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08069514 +sub_08069514: @ 0x08069514 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806953A + 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, #2 + bl sub_080042AC + b _08069540 +_0806953A: + adds r0, r2, #0 + bl sub_080042B8 +_08069540: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069544 +sub_08069544: @ 0x08069544 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08069568 + ldr r0, _08069564 @ =gUnk_08111B98 + ldrb r1, [r4, #0xc] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 + b _0806957E + .align 2, 0 +_08069564: .4byte gUnk_08111B98 +_08069568: + ldr r0, _08069580 @ =gUnk_08111B88 + 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_0806ED78 +_0806957E: + pop {r4, pc} + .align 2, 0 +_08069580: .4byte gUnk_08111B88 + + thumb_func_start sub_08069584 +sub_08069584: @ 0x08069584 + push {lr} + adds r1, r0, #0 + ldr r0, _08069598 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0 + beq _0806959C + movs r0, #3 + b _0806959E + .align 2, 0 +_08069598: .4byte gUnk_030010A0 +_0806959C: + movs r0, #1 +_0806959E: + strb r0, [r1, #0xc] + adds r0, r1, #0 + movs r1, #2 + bl sub_080042AC + pop {pc} + .align 2, 0 + + thumb_func_start sub_080695AC +sub_080695AC: @ 0x080695AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + adds r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x10 + bls _080695D2 + movs r0, #0 + strb r0, [r4, #0xf] + adds r0, r4, #0 + movs r1, #0x28 + movs r2, #0x28 + bl sub_0806ED9C + cmp r0, #0 + blt _080695D2 + strb r0, [r4, #0x14] +_080695D2: + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r4, #0x14] + cmp r0, r1 + beq _080695E6 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_080695E6: + pop {r4, pc} + + thumb_func_start sub_080695E8 +sub_080695E8: @ 0x080695E8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08069618 @ =gUnk_02000050 + ldrb r0, [r0] + movs r1, #0x7f + ands r1, r0 + cmp r1, #0 + bne _08069614 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x39 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0805E584 + ldrb r1, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC +_08069614: + pop {r4, pc} + .align 2, 0 +_08069618: .4byte gUnk_02000050 + + thumb_func_start sub_0806961C +sub_0806961C: @ 0x0806961C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08069638 @ =gUnk_030010A0 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #2 + bne _08069630 + adds r0, r4, #0 + bl sub_080042B8 +_08069630: + adds r0, r4, #0 + bl sub_0806FD3C + pop {r4, pc} + .align 2, 0 +_08069638: .4byte gUnk_030010A0 + + thumb_func_start sub_0806963C +sub_0806963C: @ 0x0806963C + 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] + bl sub_0807DD50 + pop {pc} + + thumb_func_start sub_08069654 +sub_08069654: @ 0x08069654 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069660 +sub_08069660: @ 0x08069660 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0806967C @ =0x00002C1C + adds r1, r4, #0 + bl sub_08056398 + adds r0, r4, #0 + bl sub_080696BC + ldr r1, _08069680 @ =gUnk_02000050 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + str r0, [r1, #0x10] + pop {r4, pc} + .align 2, 0 +_0806967C: .4byte 0x00002C1C +_08069680: .4byte gUnk_02000050 + + thumb_func_start sub_08069684 +sub_08069684: @ 0x08069684 + push {lr} + movs r0, #9 + movs r1, #0x31 + movs r2, #8 + bl sub_0805EB00 + cmp r0, #0 + bne _080696AE + bl sub_0805E8D4 + adds r1, r0, #0 + cmp r1, #0 + beq _080696AE + movs r0, #9 + strb r0, [r1, #8] + movs r0, #0x31 + strb r0, [r1, #9] + adds r0, r1, #0 + movs r1, #8 + bl sub_0805EA2C +_080696AE: + pop {pc} + + thumb_func_start sub_080696B0 +sub_080696B0: @ 0x080696B0 + ldr r1, _080696B8 @ =gUnk_02034350 + movs r0, #0 + strb r0, [r1, #6] + bx lr + .align 2, 0 +_080696B8: .4byte gUnk_02034350 + + thumb_func_start sub_080696BC +sub_080696BC: @ 0x080696BC + push {r4, r5, lr} + ldr r0, _08069710 @ =gUnk_02034350 + ldrb r0, [r0, #7] + movs r5, #0 + cmp r0, #0x70 + ble _080696CA + movs r5, #1 +_080696CA: + cmp r0, #0x72 + ble _080696D0 + movs r5, #2 +_080696D0: + movs r0, #0x3e + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x3f + bl GetProgressFlag + cmp r0, #0 + beq _080696E8 + movs r4, #2 +_080696E8: + movs r0, #0x40 + bl GetProgressFlag + cmp r0, #0 + beq _080696F4 + movs r4, #3 +_080696F4: + movs r0, #0x41 + bl GetProgressFlag + cmp r0, #0 + beq _08069700 + movs r4, #4 +_08069700: + ldr r0, _08069714 @ =gUnk_08111BA0 + lsls r1, r4, #1 + adds r1, r1, r4 + adds r1, r1, r5 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + pop {r4, r5, pc} + .align 2, 0 +_08069710: .4byte gUnk_02034350 +_08069714: .4byte gUnk_08111BA0 + + thumb_func_start sub_08069718 +sub_08069718: @ 0x08069718 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_080696BC + adds r6, r0, #0 + ldr r0, _08069754 @ =gUnk_02002A40 + adds r0, #0xc0 + ldrh r0, [r0] + cmp r6, r0 + bgt _08069764 + ldr r5, _08069758 @ =gUnk_02034350 + ldrb r0, [r5, #7] + bl sub_0801E7D0 + cmp r0, #0x62 + bhi _0806975C + rsbs r0, r6, #0 + bl sub_080526CC + ldrb r1, [r5, #7] + movs r0, #0x5c + movs r2, #0 + bl sub_080A7C18 + movs r0, #0 + strb r0, [r5, #6] + strb r0, [r5, #7] + movs r0, #1 + b _0806976E + .align 2, 0 +_08069754: .4byte gUnk_02002A40 +_08069758: .4byte gUnk_02034350 +_0806975C: + ldr r0, _08069760 @ =0x00002C1F + b _08069766 + .align 2, 0 +_08069760: .4byte 0x00002C1F +_08069764: + ldr r0, _0806977C @ =0x00002C1E +_08069766: + adds r1, r4, #0 + bl sub_08056398 + movs r0, #0 +_0806976E: + str r0, [r7, #0x14] + ldr r2, _08069780 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806977C: .4byte 0x00002C1E +_08069780: .4byte gUnk_02033280 + + thumb_func_start sub_08069784 +sub_08069784: @ 0x08069784 + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806979A + adds r0, r2, #0 + bl sub_08069838 + b _080697A0 +_0806979A: + adds r0, r2, #0 + bl sub_080697A4 +_080697A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080697A4 +sub_080697A4: @ 0x080697A4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080697C0 @ =gUnk_08111C48 + 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_0806ED78 + pop {r4, pc} + .align 2, 0 +_080697C0: .4byte gUnk_08111C48 + + thumb_func_start sub_080697C4 +sub_080697C4: @ 0x080697C4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080697E8 @ =gUnk_08111C3C + bl sub_0806FDEC + cmp r0, #0 + beq _080697E4 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_080697E4: + pop {r4, pc} + .align 2, 0 +_080697E8: .4byte gUnk_08111C3C + + thumb_func_start sub_080697EC +sub_080697EC: @ 0x080697EC + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806ED9C + adds r1, r0, #0 + cmp r1, #0 + blt _0806981E + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _0806981A + movs r0, #0x10 + strb r0, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, r1 + beq _0806981E + adds r0, r4, #0 + bl sub_08004260 + b _0806981E +_0806981A: + subs r0, #1 + strb r0, [r4, #0xf] +_0806981E: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08069834 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08069888 +_08069834: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069838 +sub_08069838: @ 0x08069838 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _08069862 + ldr r1, _08069884 @ =gUnk_08111C3C + bl sub_0806FDEC + cmp r0, #0 + beq _08069880 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x68 + strb r5, [r0] + adds r0, #1 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0807DD64 +_08069862: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _08069880 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + bl sub_08069888 +_08069880: + pop {r4, r5, pc} + .align 2, 0 +_08069884: .4byte gUnk_08111C3C + + thumb_func_start sub_08069888 +sub_08069888: @ 0x08069888 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x47 + bl GetProgressFlag + cmp r0, #0 + bne _080698A0 + movs r4, #0 + movs r0, #0x47 + bl sub_0807CD04 + b _08069906 +_080698A0: + movs r0, #0x2b + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r0, #0x2c + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r0, #0x2d + bl GetProgressFlag + cmp r0, #0 + bne _080698C2 + movs r4, #1 + b _08069906 +_080698C2: + movs r0, #0x18 + bl GetProgressFlag + cmp r0, #0 + bne _080698D0 + movs r4, #2 + b _08069906 +_080698D0: + movs r0, #0x48 + bl GetProgressFlag + cmp r0, #0 + bne _080698E4 + movs r4, #3 + movs r0, #0x48 + bl sub_0807CD04 + b _08069906 +_080698E4: + movs r0, #0x2e + bl GetProgressFlag + cmp r0, #0 + bne _08069904 + movs r0, #0x2f + bl GetProgressFlag + cmp r0, #0 + bne _08069904 + movs r0, #0x30 + bl GetProgressFlag + movs r4, #4 + cmp r0, #0 + beq _08069906 +_08069904: + movs r4, #5 +_08069906: + ldr r0, _08069918 @ =gUnk_08111C50 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_08069918: .4byte gUnk_08111C50 + + thumb_func_start sub_0806991C +sub_0806991C: @ 0x0806991C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _0806999C @ =gUnk_08111C5C + adds r1, r1, r0 + ldr r2, _080699A0 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _080699A4 @ =gUnk_08111C74 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _080699A8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806999C: .4byte gUnk_08111C5C +_080699A0: .4byte gUnk_03000BF0 +_080699A4: .4byte gUnk_08111C74 +_080699A8: .4byte gUnk_02033280 + + thumb_func_start sub_080699AC +sub_080699AC: @ 0x080699AC + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + adds r1, r5, #0 + adds r1, #0x68 + movs r3, #0 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0x69 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + ldr r0, _08069A2C @ =gUnk_08111C84 + adds r1, r1, r0 + ldr r2, _08069A30 @ =gUnk_03000BF0 + ldrh r0, [r1] + ldrh r6, [r2, #6] + adds r0, r0, r6 + strh r0, [r4, #0x1e] + ldrh r0, [r1, #2] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r4, #0x22] + movs r0, #8 + strb r0, [r4, #0x19] + ldr r0, [r4, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r4, #8] + str r3, [r4, #0x14] + movs r1, #0x1e + ldrsh r0, [r4, r1] + movs r2, #0x2e + ldrsh r1, [r5, r2] + subs r0, r0, r1 + movs r3, #0x22 + ldrsh r1, [r4, r3] + movs r6, #0x32 + ldrsh r2, [r5, r6] + subs r1, r1, r2 + bl sub_080045DA + strb r0, [r5, #0x15] + ldrb r2, [r5, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _08069A34 @ =gUnk_08111C8C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r5, #0x14] + ldr r2, _08069A38 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, r6, pc} + .align 2, 0 +_08069A2C: .4byte gUnk_08111C84 +_08069A30: .4byte gUnk_03000BF0 +_08069A34: .4byte gUnk_08111C8C +_08069A38: .4byte gUnk_02033280 + + thumb_func_start sub_08069A3C +sub_08069A3C: @ 0x08069A3C + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069A5C @ =gUnk_08111C9C + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069A5C: .4byte gUnk_08111C9C + + thumb_func_start sub_08069A60 +sub_08069A60: @ 0x08069A60 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069A80 @ =gUnk_08111CA8 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069A80: .4byte gUnk_08111CA8 + + thumb_func_start sub_08069A84 +sub_08069A84: @ 0x08069A84 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069AA4 @ =gUnk_08111CB4 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069AA4: .4byte gUnk_08111CB4 + + thumb_func_start sub_08069AA8 +sub_08069AA8: @ 0x08069AA8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08000E50 + ldr r2, _08069AC8 @ =gUnk_08111CB8 + movs r1, #1 + ands r1, r0 + adds r4, #0x69 + movs r0, #0 + ldrsb r0, [r4, r0] + lsls r0, r0, #1 + adds r1, r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4] + pop {r4, pc} + .align 2, 0 +_08069AC8: .4byte gUnk_08111CB8 + + thumb_func_start sub_08069ACC +sub_08069ACC: @ 0x08069ACC + push {lr} + adds r2, r1, #0 + adds r0, #0x68 + ldrb r1, [r0] + subs r1, #1 + strb r1, [r0] + lsls r1, r1, #0x18 + cmp r1, #0 + bgt _08069AE2 + movs r0, #1 + b _08069AE4 +_08069AE2: + movs r0, #0 +_08069AE4: + str r0, [r2, #0x14] + pop {pc} + + thumb_func_start sub_08069AE8 +sub_08069AE8: @ 0x08069AE8 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #7 + ands r2, r0 + adds r2, #0xf + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069B1C +sub_08069B1C: @ 0x08069B1C + push {r4, lr} + adds r4, r0, #0 + ldr r1, _08069B40 @ =gUnk_08111D88 + 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_0806ED78 + adds r0, r4, #0 + bl sub_08069FE8 + pop {r4, pc} + .align 2, 0 +_08069B40: .4byte gUnk_08111D88 + + thumb_func_start sub_08069B44 +sub_08069B44: @ 0x08069B44 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08069EF0 + cmp r0, #0 + beq _08069C30 + adds r0, r5, #0 + bl sub_0805ACC0 + cmp r0, #0 + bne _08069B64 + movs r0, #0x2e + ldrsh r1, [r5, r0] + movs r2, #0x32 + ldrsh r4, [r5, r2] + b _08069B68 +_08069B64: + lsrs r1, r0, #0x10 + adds r4, r0, #0 +_08069B68: + ldrb r0, [r5, #0xe] + movs r3, #0x20 + cmp r0, #0 + beq _08069B72 + adds r3, r0, #0 +_08069B72: + subs r0, r1, r3 + adds r2, r5, #0 + adds r2, #0x6e + strh r0, [r2] + adds r1, r1, r3 + adds r0, r5, #0 + adds r0, #0x6c + strh r1, [r0] + adds r1, r4, #0 + subs r1, #8 + adds r0, #4 + strh r1, [r0] + adds r0, r4, #0 + adds r0, #8 + adds r2, #4 + strh r0, [r2] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #0x1e + strb r0, [r5, #0xe] + movs r4, #2 + strb r4, [r5, #0x14] + adds r1, r5, #0 + adds r1, #0x6a + movs r0, #0xff + strb r0, [r1] + adds r0, r5, #0 + bl sub_0801E99C + adds r1, r5, #0 + adds r1, #0x74 + strb r0, [r1] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + movs r1, #0xa + bl sub_080042AC + ldrb r0, [r5, #0x10] + ands r4, r0 + cmp r4, #0 + beq _08069BD2 + adds r0, r5, #0 + bl sub_0807DD50 +_08069BD2: + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08069BF2 + ldr r0, _08069C34 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08069BF2 + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #2 + beq _08069BF2 + movs r0, #4 + strb r0, [r5, #0xc] +_08069BF2: + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _08069C30 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _08069C30 + ldr r0, _08069C38 @ =0x00004072 + movs r6, #0x2e + ldrsh r1, [r5, r6] + ldr r3, _08069C3C @ =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] + adds 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 +_08069C30: + pop {r4, r5, r6, pc} + .align 2, 0 +_08069C34: .4byte gUnk_03003F80 +_08069C38: .4byte 0x00004072 +_08069C3C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08069C40 +sub_08069C40: @ 0x08069C40 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069C80 + ldr r0, _08069C68 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069C6C + adds r0, r4, #0 + bl sub_08069CB8 + b _08069C7A + .align 2, 0 +_08069C68: .4byte gUnk_03003F80 +_08069C6C: + adds r0, r4, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_08069D00 +_08069C7A: + movs r0, #0x1e + strb r0, [r4, #0xe] + b _08069CB2 +_08069C80: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08069CB2 + movs r0, #2 + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + bl sub_08000E50 + ldr r2, _08069CB4 @ =gUnk_08111DA8 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08069F6C +_08069CB2: + pop {r4, pc} + .align 2, 0 +_08069CB4: .4byte gUnk_08111DA8 + + thumb_func_start sub_08069CB8 +sub_08069CB8: @ 0x08069CB8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08069CF8 @ =gLinkEntity + bl sub_080045C4 + ldr r2, _08069CFC @ =gUnk_08111DB0 + ldrb r1, [r4, #0x14] + lsls r1, r1, #5 + adds r0, r0, r1 + adds r0, r0, r2 + ldrb r1, [r0] + lsrs r0, r1, #6 + strb r0, [r4, #0x14] + movs r0, #0x3f + ands r1, r0 + adds r5, r4, #0 + adds r5, #0x6b + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806A028 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + ldrb r1, [r5] + cmp r0, r1 + beq _08069CF6 + ldrb r1, [r5] + adds r0, r4, #0 + bl sub_080042AC +_08069CF6: + pop {r4, r5, pc} + .align 2, 0 +_08069CF8: .4byte gLinkEntity +_08069CFC: .4byte gUnk_08111DB0 + + thumb_func_start sub_08069D00 +sub_08069D00: @ 0x08069D00 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x6b + movs r7, #8 + strb r7, [r5] + bl sub_0806A028 + adds r6, r4, #0 + adds r6, #0x58 + ldrb r0, [r6] + cmp r0, #0x1f + bls _08069D2A + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069D4E + strb r7, [r5] +_08069D2A: + bl sub_08000E50 + ldr r1, _08069D50 @ =0x000001FF + ands r1, r0 + cmp r1, #2 + bhi _08069D3C + adds r0, r4, #0 + bl sub_08069FBC +_08069D3C: + ldrb r2, [r6] + ldrb r1, [r5] + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + cmp r2, r1 + beq _08069D4E + adds r0, r4, #0 + bl sub_080042AC +_08069D4E: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08069D50: .4byte 0x000001FF + + thumb_func_start sub_08069D54 +sub_08069D54: @ 0x08069D54 + push {r4, lr} + adds r4, r0, #0 + bl sub_08069F90 + cmp r0, #0 + bne _08069DD8 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069DD8 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080AEF88 + ldrh r1, [r4, #0x2a] + movs r0, #0x2e + ldrsh r2, [r4, r0] + adds r0, r4, #0 + adds r0, #0x6e + ldrh r0, [r0] + cmp r2, r0 + bge _08069D92 + adds r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0xe0 + lsls r1, r1, #4 + b _08069DA4 +_08069D92: + adds r0, r4, #0 + adds r0, #0x6c + ldrh r0, [r0] + cmp r2, r0 + ble _08069DA4 + subs r0, #1 + strh r0, [r4, #0x2e] + movs r1, #0xe0 + lsls r1, r1, #8 +_08069DA4: + movs r0, #0x32 + ldrsh r2, [r4, r0] + adds r0, r4, #0 + adds r0, #0x70 + ldrh r0, [r0] + cmp r2, r0 + bge _08069DBA + adds r0, #1 + strh r0, [r4, #0x32] + movs r1, #0xe + b _08069DCA +_08069DBA: + adds r0, r4, #0 + adds r0, #0x72 + ldrh r0, [r0] + cmp r2, r0 + ble _08069DCA + subs r0, #1 + strh r0, [r4, #0x32] + movs r1, #0xe0 +_08069DCA: + adds r0, r4, #0 + bl sub_0800417E + adds r0, r4, #0 + bl sub_08069F6C + b _08069DF6 +_08069DD8: + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069DE6 + movs r0, #1 + b _08069DE8 +_08069DE6: + movs r0, #3 +_08069DE8: + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] +_08069DF6: + pop {r4, pc} + + thumb_func_start sub_08069DF8 +sub_08069DF8: @ 0x08069DF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08069F90 + cmp r0, #0 + beq _08069E0E + movs r0, #1 + b _08069E34 +_08069E0E: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _08069E22 + adds r0, r4, #0 + bl sub_08069D00 + b _08069E42 +_08069E22: + bl sub_08000E50 + movs r1, #0xff + ands r1, r0 + cmp r1, #0x2f + bhi _08069E32 + movs r0, #2 + b _08069E34 +_08069E32: + movs r0, #3 +_08069E34: + strb r0, [r4, #0xc] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] +_08069E42: + pop {r4, pc} + + thumb_func_start sub_08069E44 +sub_08069E44: @ 0x08069E44 + push {lr} + movs r1, #0 + bl sub_0807DD94 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08069E50 +sub_08069E50: @ 0x08069E50 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + bl sub_0806EDC4 + strb r0, [r4, #0x14] + adds r5, r4, #0 + adds r5, #0x6b + movs r7, #8 + strb r7, [r5] + adds r0, r4, #0 + bl sub_0806A028 + adds r0, r4, #0 + bl sub_080042B8 + adds r6, r4, #0 + adds r6, #0x58 + ldrb r0, [r6] + cmp r0, #0x1f + bls _08069E88 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08069EC8 + strb r7, [r5] +_08069E88: + adds r0, r4, #0 + bl sub_08069FBC + ldrb r2, [r6] + ldrb r1, [r5] + ldrb r0, [r4, #0x14] + adds r1, r1, r0 + cmp r2, r1 + beq _08069EA0 + adds r0, r4, #0 + bl sub_080042AC +_08069EA0: + movs r0, #0x36 + bl sub_0807CA84 + cmp r0, #2 + bne _08069EC8 + movs r0, #7 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x29 + bl sub_080042AC + adds r0, r4, #0 + bl sub_080788E0 + movs r0, #0xd1 + bl sub_08004488 + movs r0, #0xcd + bl sub_08004488 +_08069EC8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08069ECC +sub_08069ECC: @ 0x08069ECC + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _08069EDC + movs r0, #1 + strb r0, [r4, #0xc] +_08069EDC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069EE0 +sub_08069EE0: @ 0x08069EE0 + push {lr} + bl sub_080042B8 + pop {pc} + + thumb_func_start sub_08069EE8 +sub_08069EE8: @ 0x08069EE8 + movs r1, #5 + strb r1, [r0, #0xc] + bx lr + .align 2, 0 + + thumb_func_start sub_08069EF0 +sub_08069EF0: @ 0x08069EF0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _08069F20 @ =gUnk_08111D58 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _08069F28 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r1, _08069F24 @ =gUnk_08111E30 + ldrb r0, [r4, #0xa] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strh r1, [r0] + movs r0, #1 + b _08069F2A + .align 2, 0 +_08069F20: .4byte gUnk_08111D58 +_08069F24: .4byte gUnk_08111E30 +_08069F28: + movs r0, #0 +_08069F2A: + pop {r4, pc} + + thumb_func_start sub_08069F2C +sub_08069F2C: @ 0x08069F2C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + cmp r2, #0 + beq _08069F46 + adds r0, r4, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r2, r2, r0 +_08069F46: + subs r2, #1 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_08069F6C +sub_08069F6C: @ 0x08069F6C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x15] + bl sub_0806F5A4 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + adds r1, r0, #4 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _08069F8C + adds r0, r4, #0 + bl sub_080042AC +_08069F8C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08069F90 +sub_08069F90: @ 0x08069F90 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #2 + bne _08069FA8 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _08069FA8 + movs r0, #1 + b _08069FB4 +_08069FA8: + ldr r1, _08069FB8 @ =gLinkEntity + adds r0, r4, #0 + movs r2, #0x14 + movs r3, #0x14 + bl sub_080041A0 +_08069FB4: + pop {r4, pc} + .align 2, 0 +_08069FB8: .4byte gLinkEntity + + thumb_func_start sub_08069FBC +sub_08069FBC: @ 0x08069FBC + push {lr} + adds r2, r0, #0 + ldr r0, _08069FE4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + movs r1, #0x20 + cmp r0, #0 + beq _08069FD0 + movs r1, #0x24 +_08069FD0: + ldrb r0, [r2, #0x14] + cmp r0, #1 + beq _08069FDA + cmp r0, #3 + bne _08069FE0 +_08069FDA: + adds r0, r2, #0 + adds r0, #0x6b + strb r1, [r0] +_08069FE0: + pop {pc} + .align 2, 0 +_08069FE4: .4byte gUnk_03003F80 + + thumb_func_start sub_08069FE8 +sub_08069FE8: @ 0x08069FE8 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0806A010 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + rsbs r0, r0, #0 + lsrs r5, r0, #0x1f + adds r0, r4, #0 + adds r0, #0x6a + ldrb r0, [r0] + cmp r5, r0 + beq _0806A020 + cmp r5, #0 + bne _0806A014 + adds r0, r4, #0 + bl sub_08078778 + b _0806A020 + .align 2, 0 +_0806A010: .4byte gUnk_03003F80 +_0806A014: + adds r0, r4, #0 + adds r0, #0x74 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080787A8 +_0806A020: + adds r0, r4, #0 + adds r0, #0x6a + strb r5, [r0] + pop {r4, r5, pc} + + thumb_func_start sub_0806A028 +sub_0806A028: @ 0x0806A028 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806A07E + ldr r0, _0806A054 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A060 + cmp r2, #2 + bne _0806A058 + movs r0, #6 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806A076 + .align 2, 0 +_0806A054: .4byte gUnk_03003F80 +_0806A058: + adds r0, r4, #0 + bl sub_0806A080 + b _0806A076 +_0806A060: + adds r0, r4, #0 + bl sub_08069FBC + adds r0, r4, #0 + bl sub_0806A080 + movs r0, #0xd1 + bl sub_080A3268 + bl sub_080791D0 +_0806A076: + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806A07E: + pop {r4, pc} + + thumb_func_start sub_0806A080 +sub_0806A080: @ 0x0806A080 + push {lr} + ldrb r2, [r0, #0xb] + lsls r1, r2, #2 + adds r1, r1, r2 + lsls r1, r1, #4 + ldr r2, _0806A09C @ =gUnk_02002A40 + ldrb r2, [r2, #8] + lsls r2, r2, #3 + ldr r3, _0806A0A0 @ =gUnk_08111E34 + adds r2, r2, r3 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806A09C: .4byte gUnk_02002A40 +_0806A0A0: .4byte gUnk_08111E34 + + thumb_func_start sub_0806A0A4 +sub_0806A0A4: @ 0x0806A0A4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r0, _0806A0F8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A100 + movs r5, #4 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #3 + movs r0, #0xcf + bl sub_0807CCB4 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _0806A0FC @ =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] + adds 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 _0806A120 + .align 2, 0 +_0806A0F8: .4byte gUnk_03003F80 +_0806A0FC: .4byte gUnk_03000BF0 +_0806A100: + movs r5, #2 + movs r0, #0xcf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #1 + movs r0, #0xdb + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A120 + movs r5, #0 + movs r0, #0xdb + bl sub_0807CCB4 +_0806A120: + ldr r2, _0806A13C @ =gUnk_08111F74 + ldr r0, _0806A140 @ =gUnk_02002A40 + ldrb r1, [r0, #8] + lsls r0, r1, #2 + adds r0, r0, r1 + adds r0, r0, r5 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806A13C: .4byte gUnk_08111F74 +_0806A140: .4byte gUnk_02002A40 + + thumb_func_start sub_0806A144 +sub_0806A144: @ 0x0806A144 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #4 + ldr r0, _0806A18C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A17A + movs r4, #3 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806A17A + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806A17A + movs r0, #0x85 + bl sub_0807CBD0 + movs r4, #2 + cmp r0, #0 + bne _0806A17A + movs r4, #1 +_0806A17A: + ldr r0, _0806A190 @ =gUnk_08111FD8 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806A18C: .4byte gUnk_03003F80 +_0806A190: .4byte gUnk_08111FD8 + + thumb_func_start sub_0806A194 +sub_0806A194: @ 0x0806A194 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A1CE + adds r0, r4, #0 + bl sub_08069EF0 + cmp r0, #0 + beq _0806A1D4 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0x23 + bl sub_08004260 + b _0806A1D4 +_0806A1CE: + adds r0, r4, #0 + bl sub_08004274 +_0806A1D4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A1D8 +sub_0806A1D8: @ 0x0806A1D8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806A1F4 @ =gUnk_081121D4 + 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_0806ED78 + pop {r4, pc} + .align 2, 0 +_0806A1F4: .4byte gUnk_081121D4 + + thumb_func_start sub_0806A1F8 +sub_0806A1F8: @ 0x0806A1F8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + ldr r1, _0806A22C @ =gUnk_081121C4 + cmp r0, #0 + bne _0806A206 + ldr r1, _0806A230 @ =gUnk_081121B4 +_0806A206: + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806A22A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0806A22A: + pop {r4, pc} + .align 2, 0 +_0806A22C: .4byte gUnk_081121C4 +_0806A230: .4byte gUnk_081121B4 + + thumb_func_start sub_0806A234 +sub_0806A234: @ 0x0806A234 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + adds r0, r4, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806A266 + ldr r0, _0806A268 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0806A25E + adds r0, r4, #0 + bl sub_0806A26C +_0806A25E: + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA +_0806A266: + pop {r4, pc} + .align 2, 0 +_0806A268: .4byte gUnk_030010A0 + + thumb_func_start sub_0806A26C +sub_0806A26C: @ 0x0806A26C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xf + movs r1, #0x2f + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0806A2AE + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA30 + bl sub_08000E50 + adds r5, r0, #0 + ldr r2, _0806A2B0 @ =gUnk_081121DC + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r3, r4, #0 + adds r3, #0x62 + strb r0, [r3] + lsrs r0, r5, #8 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #8 + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] +_0806A2AE: + pop {r4, r5, pc} + .align 2, 0 +_0806A2B0: .4byte gUnk_081121DC + + thumb_func_start sub_0806A2B4 +sub_0806A2B4: @ 0x0806A2B4 + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r5, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r1, #1 + mov sb, r1 + mov r2, sb + ands r2, r0 + mov sb, r2 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + lsrs r0, r1, #4 + mov r8, r0 + movs r0, #7 + mov r2, r8 + ands r2, r0 + mov r8, r2 + movs r6, #7 + ands r6, r1 + ldrb r4, [r5, #0x14] + lsrs r4, r4, #1 + ldr r1, _0806A350 @ =gUnk_081121E4 + ldrb r0, [r5, #0x1e] + lsls r0, r0, #2 + adds r0, r4, r0 + adds r0, r0, r1 + ldrb r2, [r0] + adds r2, #0x10 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF60 + ldr r0, _0806A354 @ =gUnk_08112204 + adds r4, r4, r0 + ldrb r2, [r4] + adds r0, r5, #0 + movs r1, #0 + bl sub_0806FF48 + adds r0, r5, #0 + movs r1, #1 + mov r2, r8 + bl sub_0806FF60 + adds r6, #0x1c + adds r0, r5, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_0806FF60 + movs r0, #0x1a + add sb, r0 + adds r0, r5, #0 + movs r1, #3 + mov r2, sb + bl sub_0806FF60 + adds r0, r5, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r5, #0 + movs r1, #1 + movs r2, #3 + bl sub_0806FFD8 + adds r0, r5, #0 + bl sub_0807000C + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806A350: .4byte gUnk_081121E4 +_0806A354: .4byte gUnk_08112204 + + thumb_func_start sub_0806A358 +sub_0806A358: @ 0x0806A358 + push {lr} + ldr r2, _0806A36C @ =gUnk_08112260 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806A36C: .4byte gUnk_08112260 + + thumb_func_start sub_0806A370 +sub_0806A370: @ 0x0806A370 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806A3D0 @ =gUnk_08112278 + 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 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806ED78 + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xf + bne _0806A3CC + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _0806A3BC + movs r0, #0 + strb r0, [r4] + movs r0, #0x86 + lsls r0, r0, #2 + bl sub_080A3268 +_0806A3BC: + ldrb r0, [r4] + cmp r0, #2 + bne _0806A3CC + movs r0, #0 + strb r0, [r4] + ldr r0, _0806A3D4 @ =0x00000219 + bl sub_080A3268 +_0806A3CC: + pop {r4, pc} + .align 2, 0 +_0806A3D0: .4byte gUnk_08112278 +_0806A3D4: .4byte 0x00000219 + + thumb_func_start sub_0806A3D8 +sub_0806A3D8: @ 0x0806A3D8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xb4 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0806A8C8 + ldr r1, _0806A40C @ =gUnk_08012F0C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + pop {r4, pc} + .align 2, 0 +_0806A40C: .4byte gUnk_08012F0C + + thumb_func_start sub_0806A410 +sub_0806A410: @ 0x0806A410 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #0 + beq _0806A420 + cmp r0, #1 + beq _0806A43C + b _0806A456 +_0806A420: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A456 + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + adds r0, r2, #0 + movs r1, #8 + bl sub_08004260 + b _0806A456 +_0806A43C: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A456 + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_0806A9B0 +_0806A456: + pop {pc} + + thumb_func_start sub_0806A458 +sub_0806A458: @ 0x0806A458 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xd] + cmp r0, #1 + beq _0806A486 + cmp r0, #1 + bgt _0806A46C + cmp r0, #0 + beq _0806A472 + b _0806A4CA +_0806A46C: + cmp r0, #2 + beq _0806A4A8 + b _0806A4CA +_0806A472: + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A4CA + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + b _0806A4CA +_0806A486: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A4CA + movs r0, #2 + strb r0, [r2, #0xd] + adds r0, r2, #0 + movs r1, #0xa + bl sub_08004260 + movs r0, #0x62 + bl sub_0807CD34 + b _0806A4CA +_0806A4A8: + adds r0, r2, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A4CA + movs r0, #0 + movs r1, #1 + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + movs r0, #0x3c + strb r0, [r2, #0xe] + adds r0, r2, #0 + movs r1, #2 + bl sub_08004260 +_0806A4CA: + pop {pc} + + thumb_func_start sub_0806A4CC +sub_0806A4CC: @ 0x0806A4CC + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xd] + cmp r2, #0 + beq _0806A4E0 + cmp r2, #1 + beq _0806A52C + movs r0, #0xb4 + strb r0, [r4, #0xe] + b _0806A54C +_0806A4E0: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A54C + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0806A512 + movs r0, #1 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _0806A54C +_0806A512: + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x6a + strh r2, [r0] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + b _0806A54C +_0806A52C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A54C + movs r0, #2 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 +_0806A54C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A550 +sub_0806A550: @ 0x0806A550 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806A568 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xc + bl sub_08004260 + b _0806A5B0 +_0806A568: + adds r5, r4, #0 + adds r5, #0x5a + ldrb r0, [r5] + cmp r0, #1 + bne _0806A590 + movs r0, #0 + strb r0, [r5] + movs r0, #8 + movs r1, #2 + bl sub_08080964 + ldr r2, _0806A5B4 @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #1 + orrs r0, r1 + str r0, [r2] + ldr r0, _0806A5B8 @ =0x0000011B + bl sub_080A3268 +_0806A590: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806A5B0 + movs r1, #0 + movs r0, #5 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + adds r0, r4, #0 + movs r1, #0xd + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806A914 +_0806A5B0: + pop {r4, r5, pc} + .align 2, 0 +_0806A5B4: .4byte gUnk_02033280 +_0806A5B8: .4byte 0x0000011B + + thumb_func_start nullsub_503 +nullsub_503: @ 0x0806A5BC + bx lr + .align 2, 0 + + thumb_func_start sub_0806A5C0 +sub_0806A5C0: @ 0x0806A5C0 + 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 _0806A5E6 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 +_0806A5E6: + pop {r4, pc} + + thumb_func_start sub_0806A5E8 +sub_0806A5E8: @ 0x0806A5E8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A60A + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x10 + bl sub_08004260 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x3c + strb r0, [r4, #0xe] +_0806A60A: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806A628 + bl sub_08000E50 + movs r1, #0x3f + ands r0, r1 + adds r0, #0x78 + strb r0, [r4, #0xe] + movs r0, #0xcc + bl sub_080A3268 +_0806A628: + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + + thumb_func_start sub_0806A630 +sub_0806A630: @ 0x0806A630 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A646 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08004260 +_0806A646: + ldr r0, _0806A670 @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A65A + adds r0, r4, #0 + bl sub_08004274 +_0806A65A: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0806A66E + movs r0, #0 + strb r0, [r1] + movs r0, #0x72 + bl sub_080A3268 +_0806A66E: + pop {r4, pc} + .align 2, 0 +_0806A670: .4byte gUnk_02033280 + + thumb_func_start sub_0806A674 +sub_0806A674: @ 0x0806A674 + push {r4, lr} + sub sp, #8 + adds r4, r0, #0 + ldr r1, _0806A694 @ =gUnk_08112294 + mov r0, sp + movs r2, #8 + bl memcpy + ldrb r3, [r4, #0xc] + cmp r3, #1 + beq _0806A6BE + cmp r3, #1 + bgt _0806A698 + cmp r3, #0 + beq _0806A6A0 + b _0806A82A + .align 2, 0 +_0806A694: .4byte gUnk_08112294 +_0806A698: + cmp r3, #2 + bne _0806A69E + b _0806A824 +_0806A69E: + b _0806A82A +_0806A6A0: + 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, #0x13 + bl sub_08004260 + b _0806A82A +_0806A6BE: + ldr r0, _0806A6E0 @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _0806A6E4 + movs r0, #0 + movs r1, #2 + strb r1, [r4, #0xc] + adds r1, r4, #0 + adds r1, #0x63 + strb r0, [r1] + subs r1, #1 + strb r0, [r1] + b _0806A82A + .align 2, 0 +_0806A6E0: .4byte gUnk_02033280 +_0806A6E4: + ldr r0, [r4, #0x50] + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #9 + bne _0806A7C8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #3 + orrs r1, r0 + strb r1, [r2] + ldrb r2, [r4, #0xe] + cmp r2, #0 + bne _0806A724 + bl sub_08000E50 + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xe] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + b _0806A75A +_0806A724: + ldr r0, _0806A780 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A75A + subs r0, r2, #1 + strb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x62 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r4, #0 + adds r1, #0x68 + cmp r0, #0 + bgt _0806A746 + strb r3, [r1] +_0806A746: + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #0xf + ble _0806A752 + movs r0, #0xff + strb r0, [r1] +_0806A752: + ldrb r0, [r1] + ldrb r1, [r2] + adds r0, r0, r1 + strb r0, [r2] +_0806A75A: + ldrb r2, [r4, #0xf] + cmp r2, #0 + bne _0806A784 + bl sub_08000E50 + adds r2, r0, #0 + movs r1, #7 + ands r0, r1 + strb r0, [r4, #0xf] + lsrs r0, r2, #8 + movs r1, #7 + ands r0, r1 + add r0, sp + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + b _0806A82A + .align 2, 0 +_0806A780: .4byte gUnk_030010A0 +_0806A784: + ldr r0, _0806A7C4 @ =gUnk_030010A0 + ldr r0, [r0] + lsrs r0, r0, #4 + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806A82A + subs r0, r2, #1 + strb r0, [r4, #0xf] + adds r3, r4, #0 + adds r3, #0x63 + movs r0, #0 + ldrsb r0, [r3, r0] + adds r2, r4, #0 + adds r2, #0x69 + cmp r0, #0 + blt _0806A7AA + movs r0, #0xff + strb r0, [r2] +_0806A7AA: + movs r1, #0 + ldrsb r1, [r3, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + bgt _0806A7BA + movs r0, #1 + strb r0, [r2] +_0806A7BA: + ldrb r0, [r2] + ldrb r1, [r3] + adds r0, r0, r1 + strb r0, [r3] + b _0806A82A + .align 2, 0 +_0806A7C4: .4byte gUnk_030010A0 +_0806A7C8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2] + adds r1, r4, #0 + adds r1, #0x62 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A7FE + cmp r2, #0 + ble _0806A7F0 + subs r0, #1 + strb r0, [r1] +_0806A7F0: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A7FE + adds r0, r2, #1 + strb r0, [r1] +_0806A7FE: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r0, [r1] + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806A82A + cmp r2, #0 + ble _0806A814 + subs r0, #1 + strb r0, [r1] +_0806A814: + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806A82A + adds r0, r2, #1 + strb r0, [r1] + b _0806A82A +_0806A824: + adds r0, r4, #0 + bl sub_08004274 +_0806A82A: + add sp, #8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806A830 +sub_0806A830: @ 0x0806A830 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A84E + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806A84E: + ldr r0, _0806A88C @ =gUnk_02033280 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #2 + ands r0, r1 + cmp r0, #0 + beq _0806A860 + bl sub_0805E780 +_0806A860: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + cmp r0, #1 + bne _0806A88A + movs r0, #0 + strb r0, [r1] + movs r0, #0x37 + movs r1, #5 + movs r2, #0 + bl sub_0806ED50 + adds r1, r0, #0 + cmp r1, #0 + beq _0806A88A + adds r0, r4, #0 + bl sub_0806FA30 +_0806A88A: + pop {r4, pc} + .align 2, 0 +_0806A88C: .4byte gUnk_02033280 + + thumb_func_start sub_0806A890 +sub_0806A890: @ 0x0806A890 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806A8AE + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0x15 + bl sub_08004260 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806A8AE: + 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 _0806A8C6 + bl sub_0805E780 +_0806A8C6: + pop {r4, pc} + + thumb_func_start sub_0806A8C8 +sub_0806A8C8: @ 0x0806A8C8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x60 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806A8F0 + movs r0, #0x37 + movs r1, #2 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806A8F0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r5, [r4, #0x50] +_0806A8F0: + movs r0, #0x37 + movs r1, #3 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806A910 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldrh r0, [r4, #0x32] + adds r0, #2 + strh r0, [r4, #0x32] + str r5, [r4, #0x50] +_0806A910: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806A914 +sub_0806A914: @ 0x0806A914 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x37 + movs r1, #1 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806A938 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806A938: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806A93C +sub_0806A93C: @ 0x0806A93C + push {r4, lr} + adds r4, r0, #0 + bl sub_08078778 + ldr r3, _0806A954 @ =gUnk_0811229C + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_0806A954: .4byte gUnk_0811229C + + thumb_func_start sub_0806A958 +sub_0806A958: @ 0x0806A958 + push {lr} + ldrb r0, [r0, #0xc] + cmp r0, #5 + beq _0806A966 + ldr r1, _0806A968 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806A966: + pop {pc} + .align 2, 0 +_0806A968: .4byte gUnk_02033280 + + thumb_func_start sub_0806A96C +sub_0806A96C: @ 0x0806A96C + push {r4, lr} + adds r2, r0, #0 + movs r3, #0 + str r3, [r1, #0x14] + movs r0, #0x39 + adds r0, r0, r2 + mov ip, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0806A9A8 + ldrb r0, [r2, #0xc] + cmp r0, #3 + beq _0806A992 + movs r0, #3 + strb r0, [r2, #0xc] + strb r3, [r2, #0xd] + b _0806A9A8 +_0806A992: + ldrb r0, [r2, #0xd] + cmp r0, #1 + bls _0806A9A8 + mov r4, ip + strb r3, [r4] + movs r0, #1 + str r0, [r1, #0x14] + ldr r2, _0806A9AC @ =gUnk_02033280 + ldrb r1, [r2, #7] + orrs r0, r1 + strb r0, [r2, #7] +_0806A9A8: + pop {r4, pc} + .align 2, 0 +_0806A9AC: .4byte gUnk_02033280 + + thumb_func_start sub_0806A9B0 +sub_0806A9B0: @ 0x0806A9B0 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + bl sub_08000E50 + ldr r2, _0806A9E4 @ =gUnk_081122A0 + movs r1, #7 + ands r1, r0 + adds r1, r1, r2 + ldrb r0, [r1] + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x80 + movs r0, #9 + strh r0, [r1] + adds r0, r4, #0 + movs r1, #9 + bl sub_08004260 + movs r0, #0x62 + bl sub_0807CCB4 + pop {r4, pc} + .align 2, 0 +_0806A9E4: .4byte gUnk_081122A0 + + thumb_func_start sub_0806A9E8 +sub_0806A9E8: @ 0x0806A9E8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x37 + movs r1, #4 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806AA0C + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806AA0C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806AA10 +sub_0806AA10: @ 0x0806AA10 + push {lr} + bl sub_0806A914 + pop {pc} + + thumb_func_start sub_0806AA18 +sub_0806AA18: @ 0x0806AA18 + push {lr} + adds r2, r0, #0 + adds r0, #0x6a + ldrh r0, [r0] + cmp r0, #0 + beq _0806AA2C + ldr r1, _0806AA28 @ =0x00004408 + b _0806AA3C + .align 2, 0 +_0806AA28: .4byte 0x00004408 +_0806AA2C: + ldr r0, _0806AA48 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + ldr r1, _0806AA4C @ =0x0000440D + cmp r0, #0 + bne _0806AA3C + subs r1, #6 +_0806AA3C: + adds r0, r1, #0 + adds r1, r2, #0 + bl sub_08056398 + pop {pc} + .align 2, 0 +_0806AA48: .4byte gUnk_030010A0 +_0806AA4C: .4byte 0x0000440D + + thumb_func_start sub_0806AA50 +sub_0806AA50: @ 0x0806AA50 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #1 + beq _0806AB38 + cmp r0, #1 + bgt _0806AA6A + cmp r0, #0 + beq _0806AA70 + b _0806AB64 +_0806AA6A: + cmp r0, #2 + beq _0806AB5C + b _0806AB64 +_0806AA70: + str r0, [r5, #0x14] + movs r0, #0x8f + bl sub_0807CBD0 + cmp r0, #0 + bne _0806AA84 + ldr r2, _0806AA80 @ =gUnk_081122A8 + b _0806AA9A + .align 2, 0 +_0806AA80: .4byte gUnk_081122A8 +_0806AA84: + movs r0, #0x15 + bl sub_0807CA84 + cmp r0, #0 + bne _0806AA98 + ldr r2, _0806AA94 @ =gUnk_081122B0 + b _0806AA9A + .align 2, 0 +_0806AA94: .4byte gUnk_081122B0 +_0806AA98: + ldr r2, _0806AAD0 @ =gUnk_081122B8 +_0806AA9A: + ldr r1, _0806AAD4 @ =gUnk_02034350 + ldr r0, [r1, #0x68] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r7, [r0] + mov r8, r1 + mov r4, r8 + ldr r0, [r4, #0x68] + adds r0, #1 + str r0, [r4, #0x68] + cmp r0, #2 + bls _0806AAB6 + movs r0, #0 + str r0, [r4, #0x68] +_0806AAB6: + adds r0, r7, #0 + adds r1, r6, #0 + bl sub_08056398 + ldr r0, [r5, #4] + cmp r0, #1 + beq _0806AAEE + cmp r0, #1 + blo _0806AAD8 + cmp r0, #2 + beq _0806AB02 + b _0806AB1C + .align 2, 0 +_0806AAD0: .4byte gUnk_081122B8 +_0806AAD4: .4byte gUnk_02034350 +_0806AAD8: + adds r0, r4, #0 + adds r0, #0xac + str r6, [r0] + adds r0, r6, #0 + movs r1, #7 + bl sub_0805EA78 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r6, #0x20] + b _0806AB1C +_0806AAEE: + adds r0, r4, #0 + adds r0, #0xac + ldr r0, [r0] + movs r1, #7 + bl sub_0805EB64 + adds r1, r0, #0 + adds r0, r4, #0 + adds r0, #0xb0 + b _0806AB14 +_0806AB02: + mov r0, r8 + adds r0, #0xb0 + ldr r0, [r0] + movs r1, #7 + bl sub_0805EB64 + adds r1, r0, #0 + mov r0, r8 + adds r0, #0xb4 +_0806AB14: + str r1, [r0] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] +_0806AB1C: + ldr r0, _0806AB34 @ =0x0000441E + cmp r7, r0 + bne _0806AB2C + movs r0, #0x8f + bl sub_0807CCB4 + movs r0, #1 + str r0, [r5, #0x14] +_0806AB2C: + movs r0, #1 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB34: .4byte 0x0000441E +_0806AB38: + ldr r0, _0806AB58 @ =gUnk_02034350 + ldr r1, [r5, #4] + lsls r1, r1, #2 + adds r0, #0xac + adds r1, r1, r0 + ldr r1, [r1] + movs r2, #0x36 + ldrsh r0, [r1, r2] + cmp r0, #0 + blt _0806AB64 + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r1, #0x20] + movs r0, #2 + strb r0, [r5, #0x18] + b _0806AB64 + .align 2, 0 +_0806AB58: .4byte gUnk_02034350 +_0806AB5C: + movs r1, #0x36 + ldrsh r0, [r6, r1] + cmp r0, #0 + bge _0806AB6A +_0806AB64: + ldr r1, _0806AB70 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806AB6A: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AB70: .4byte gUnk_02033280 + + thumb_func_start sub_0806AB74 +sub_0806AB74: @ 0x0806AB74 + push {lr} + adds r2, r0, #0 + ldr r1, _0806AB94 @ =gUnk_02034350 + movs r0, #1 + strb r0, [r1, #3] + movs r1, #0x32 + ldrsh r0, [r2, r1] + ldr r1, _0806AB98 @ =gUnk_03000BF0 + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r0, #0xa7 + bgt _0806AB92 + adds r0, r1, #0 + adds r0, #0xa8 + strh r0, [r2, #0x32] +_0806AB92: + pop {pc} + .align 2, 0 +_0806AB94: .4byte gUnk_02034350 +_0806AB98: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806AB9C +sub_0806AB9C: @ 0x0806AB9C + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x37 + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + cmp r0, #0 + beq _0806ABBC + bl sub_0805E7BC +_0806ABBC: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807F950 + add sp, #4 + pop {r4, r5, pc} + + thumb_func_start sub_0806ABC8 +sub_0806ABC8: @ 0x0806ABC8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806ABF4 + ldr r0, _0806ABF0 @ =gUnk_081126E8 + 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_0806ED78 + b _0806ABFA + .align 2, 0 +_0806ABF0: .4byte gUnk_081126E8 +_0806ABF4: + adds r0, r4, #0 + bl sub_0806ACC4 +_0806ABFA: + pop {r4, pc} + + thumb_func_start sub_0806ABFC +sub_0806ABFC: @ 0x0806ABFC + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806AC38 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806AC36 + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + adds r2, r4, #0 + adds r2, #0x6a + strb r0, [r2] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + subs r2, #1 + strb r0, [r2] + strb r1, [r4, #0xe] +_0806AC36: + pop {r4, pc} + .align 2, 0 +_0806AC38: .4byte gUnk_08112674 + + thumb_func_start sub_0806AC3C +sub_0806AC3C: @ 0x0806AC3C + push {r4, r5, lr} + adds r5, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #3 + bhi _0806ACBA + ldr r4, _0806AC6C @ =gLinkEntity + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0x18 + movs r3, #0x18 + bl sub_080041A0 + cmp r0, #0 + beq _0806AC70 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_080045C4 + adds r2, r0, #0 + movs r0, #0x1e + ands r2, r0 + b _0806AC74 + .align 2, 0 +_0806AC6C: .4byte gLinkEntity +_0806AC70: + ldrb r0, [r5, #0x14] + lsls r2, r0, #2 +_0806AC74: + adds r0, r5, #0 + adds r0, #0x69 + ldrb r3, [r0] + adds r4, r0, #0 + cmp r2, r3 + beq _0806AC9A + subs r0, r2, r3 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _0806AC8E + subs r0, r3, #1 + b _0806AC90 +_0806AC8E: + adds r0, r3, #1 +_0806AC90: + strb r0, [r4] + ldrb r1, [r4] + movs r0, #0x1f + ands r0, r1 + strb r0, [r4] +_0806AC9A: + ldrb r1, [r4] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0806ACBA + ldrb r0, [r4] + bl sub_0806F5B0 + strb r0, [r5, #0x14] + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + movs r0, #2 + eors r1, r0 + adds r0, r5, #0 + bl sub_08004260 +_0806ACBA: + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806ACC4 +sub_0806ACC4: @ 0x0806ACC4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806AD28 + cmp r5, #1 + bgt _0806ACD8 + cmp r5, #0 + beq _0806ACE4 + b _0806ADEA +_0806ACD8: + cmp r5, #2 + beq _0806ADB8 + cmp r5, #3 + bne _0806ACE2 + b _0806ADDC +_0806ACE2: + b _0806ADEA +_0806ACE4: + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806AD24 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + bne _0806ACF8 + b _0806ADFA +_0806ACF8: + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x6a + strb r0, [r1] + lsls r0, r0, #1 + strb r0, [r4, #0x14] + strb r5, [r4, #0xe] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807DD50 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #8 + b _0806ADCE + .align 2, 0 +_0806AD24: .4byte gUnk_08112674 +_0806AD28: + adds r5, r4, #0 + adds r5, #0x39 + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #2 + bne _0806AD44 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r5] + adds r0, r4, #0 + bl sub_0806F118 + b _0806ADEA +_0806AD44: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0806AEA8 + ldrb r0, [r4, #0xb] + cmp r0, #0xa + bne _0806AD8A + movs r0, #0 + ldrsb r0, [r5, r0] + cmp r0, #0 + beq _0806AD8A + movs r1, #0 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r5] + ldr r1, _0806ADAC @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #8 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r0, r4, #0 + bl sub_0806AFE8 +_0806AD8A: + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0806ADEA + ldr r0, _0806ADAC @ =gLinkEntity + ldrb r3, [r0, #0x14] + lsrs r3, r3, #1 + ldr r0, _0806ADB0 @ =gUnk_081126E4 + adds r0, r3, r0 + ldrb r2, [r0] + lsls r3, r3, #2 + ldr r0, _0806ADB4 @ =gUnk_081126D4 + adds r3, r3, r0 + adds r0, r4, #0 + movs r1, #1 + bl sub_08078850 + b _0806ADEA + .align 2, 0 +_0806ADAC: .4byte gLinkEntity +_0806ADB0: .4byte gUnk_081126E4 +_0806ADB4: .4byte gUnk_081126D4 +_0806ADB8: + ldr r0, _0806ADD8 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806ADEA + movs r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #4 +_0806ADCE: + adds r0, r4, #0 + bl sub_08004260 + b _0806ADEA + .align 2, 0 +_0806ADD8: .4byte gUnk_02000050 +_0806ADDC: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806ADEA + movs r0, #1 + strb r0, [r4, #0xc] +_0806ADEA: + adds r0, r4, #0 + adds r0, #0x59 + ldrb r0, [r0] + cmp r0, #0xff + beq _0806ADFA + adds r0, r4, #0 + bl sub_08004274 +_0806ADFA: + pop {r4, r5, pc} + + thumb_func_start sub_0806ADFC +sub_0806ADFC: @ 0x0806ADFC + push {lr} + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + bl sub_08078784 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806AE0C +sub_0806AE0C: @ 0x0806AE0C + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806AE62 + adds r0, r4, #0 + adds r0, #0x69 + ldrb r0, [r0] + lsrs r2, r0, #1 + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806AE3C + adds r2, #0x1c + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + b _0806AE46 +_0806AE3C: + adds r0, r4, #0 + movs r1, #0 + movs r2, #0xff + bl sub_0806FF60 +_0806AE46: + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806AEA4 +_0806AE62: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r2, [r0] + cmp r2, #0xff + beq _0806AE72 + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 +_0806AE72: + adds r0, r4, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806AE82 + movs r2, #0xff +_0806AE82: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_0806AEA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806AEA8 +sub_0806AEA8: @ 0x0806AEA8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x82 + ldrh r5, [r6] + ldr r0, _0806AED4 @ =0x0000FFDF + ands r0, r5 + strh r0, [r6] + movs r0, #0x20 + ands r0, r5 + cmp r0, #0 + beq _0806AECA + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 +_0806AECA: + adds r0, r4, #0 + bl sub_0807DDE4 + strh r5, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806AED4: .4byte 0x0000FFDF + + thumb_func_start sub_0806AED8 +sub_0806AED8: @ 0x0806AED8 + push {lr} + movs r1, #0 + strb r1, [r0, #0xe] + bl sub_0806AEE4 + pop {pc} + + thumb_func_start sub_0806AEE4 +sub_0806AEE4: @ 0x0806AEE4 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + adds r7, r0, #0 + cmp r7, #0 + beq _0806AEF6 + subs r0, #1 + strb r0, [r4, #0xe] + b _0806AF5A +_0806AEF6: + movs r0, #2 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #0x20 + movs r2, #0x20 + bl sub_0806EDD8 + adds r3, r0, #0 + cmp r3, #0 + bge _0806AF16 + adds r0, r4, #0 + adds r0, #0x6a + ldrb r1, [r0] + lsls r0, r1, #1 + strb r0, [r4, #0x14] + lsls r3, r1, #3 +_0806AF16: + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #5 + asrs r1, r3, #1 + lsls r1, r1, #1 + ldr r2, _0806AF5C @ =gUnk_081125F4 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r6, [r0] + ldrb r5, [r0, #1] + movs r0, #0x80 + ands r0, r5 + cmp r0, #0 + beq _0806AF3A + adds r0, r3, #0 + bl sub_0806F5B0 + strb r0, [r4, #0x14] +_0806AF3A: + movs r0, #0x7f + ands r5, r0 + adds r0, r4, #0 + adds r0, #0x5a + strb r6, [r0] + strb r5, [r4, #0x1e] + adds r1, r4, #0 + adds r1, #0x5b + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x58 + strb r7, [r0] + subs r1, #2 + movs r0, #0xff + strb r0, [r1] +_0806AF5A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806AF5C: .4byte gUnk_081125F4 + + thumb_func_start sub_0806AF60 +sub_0806AF60: @ 0x0806AF60 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0806AF70 +sub_0806AF70: @ 0x0806AF70 + movs r1, #0x90 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + bx lr + + thumb_func_start sub_0806AF78 +sub_0806AF78: @ 0x0806AF78 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0xc0 + lsls r1, r1, #5 + bl sub_08003FC4 + ldr r0, [r4, #0x34] + cmp r0, #0 + blt _0806AF9E + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _0806AF9E + movs r0, #0 + str r0, [r4, #0x34] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806AF70 +_0806AF9E: + pop {r4, r5, pc} + + thumb_func_start sub_0806AFA0 +sub_0806AFA0: @ 0x0806AFA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806ED78 + cmp r0, #0 + beq _0806AFBA + movs r0, #0x24 + ldrsh r1, [r4, r0] + rsbs r1, r1, #0 + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C +_0806AFBA: + pop {r4, pc} + + thumb_func_start sub_0806AFBC +sub_0806AFBC: @ 0x0806AFBC + push {lr} + adds r3, r0, #0 + ldr r0, _0806AFE0 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806AFCC + movs r0, #0 +_0806AFCC: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806AFE4 @ =gUnk_081126F0 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806AFE0: .4byte gUnk_02002A40 +_0806AFE4: .4byte gUnk_081126F0 + + thumb_func_start sub_0806AFE8 +sub_0806AFE8: @ 0x0806AFE8 + push {lr} + movs r2, #0 + str r2, [r1, #0x14] + ldr r3, _0806B000 @ =gUnk_08112BF0 + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806B000: .4byte gUnk_08112BF0 + + thumb_func_start sub_0806B004 +sub_0806B004: @ 0x0806B004 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B050 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B048 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806B044 + movs r4, #3 + movs r0, #0x78 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B050 + movs r4, #2 + movs r0, #1 + str r0, [r5, #0x14] + movs r0, #0x78 + bl sub_0807CCB4 + b _0806B050 +_0806B044: + movs r4, #4 + b _0806B050 +_0806B048: + movs r4, #1 + movs r0, #0x6a + bl sub_0807CCB4 +_0806B050: + ldr r0, _0806B060 @ =gUnk_08112C40 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806B060: .4byte gUnk_08112C40 + + thumb_func_start sub_0806B064 +sub_0806B064: @ 0x0806B064 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B082 + movs r4, #1 + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B082 + movs r4, #2 +_0806B082: + ldr r0, _0806B094 @ =gUnk_08112C4A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B094: .4byte gUnk_08112C4A + + thumb_func_start sub_0806B098 +sub_0806B098: @ 0x0806B098 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #2 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806B0C0 + movs r4, #1 + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B0C0 + movs r0, #0x2a + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f +_0806B0C0: + ldr r2, _0806B0DC @ =gUnk_08112C50 + ldrb r1, [r5, #0xb] + subs r1, #7 + lsls r0, r1, #1 + adds r0, r0, r1 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B0DC: .4byte gUnk_08112C50 + + thumb_func_start sub_0806B0E0 +sub_0806B0E0: @ 0x0806B0E0 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + movs r0, #0x38 + movs r1, #0xb8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x48 + movs r1, #0xb8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x38 + movs r1, #0xc8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r0, #0x48 + movs r1, #0xc8 + movs r2, #1 + bl sub_080002C0 + cmp r0, #0x57 + bne _0806B120 + movs r5, #1 +_0806B120: + ldr r0, _0806B130 @ =gUnk_08112C5C + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B130: .4byte gUnk_08112C5C + + thumb_func_start sub_0806B134 +sub_0806B134: @ 0x0806B134 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x45 + bl sub_0807CA84 + cmp r0, #0 + beq _0806B158 + movs r4, #2 + movs r0, #0x7b + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B160 + movs r4, #1 + movs r0, #0x7b + bl sub_0807CCB4 + b _0806B160 +_0806B158: + movs r4, #0 + movs r0, #0x4a + bl sub_0807CD04 +_0806B160: + ldr r0, _0806B17C @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #5 + bls _0806B16A + movs r4, #3 +_0806B16A: + ldr r0, _0806B180 @ =gUnk_08112C60 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B17C: .4byte gUnk_02002A40 +_0806B180: .4byte gUnk_08112C60 + + thumb_func_start sub_0806B184 +sub_0806B184: @ 0x0806B184 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B1C4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806B1C0 @ =gUnk_08112674 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B1CA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #6 + bl sub_08004260 + b _0806B1CA + .align 2, 0 +_0806B1C0: .4byte gUnk_08112674 +_0806B1C4: + adds r0, r4, #0 + bl sub_08004274 +_0806B1CA: + pop {r4, pc} + + thumb_func_start sub_0806B1CC +sub_0806B1CC: @ 0x0806B1CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806B21E + cmp r0, #1 + bgt _0806B1E0 + cmp r0, #0 + beq _0806B1E6 + b _0806B25C +_0806B1E0: + cmp r0, #2 + beq _0806B24E + b _0806B25C +_0806B1E6: + 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 r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806B25C +_0806B21E: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806B238 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806B25C +_0806B238: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _0806B25C +_0806B24E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806B25C + movs r0, #1 + strb r0, [r4, #0xc] +_0806B25C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806B260 +sub_0806B260: @ 0x0806B260 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [r5, #0x14] + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806B29E + movs r0, #0x29 + bl GetProgressFlag + cmp r0, #0 + beq _0806B286 + movs r4, #2 + movs r0, #1 + str r0, [r5, #0x14] + b _0806B2A0 +_0806B286: + movs r0, #0x7a + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B29A + movs r4, #0 + movs r0, #0x7a + bl sub_0807CCB4 + b _0806B2A0 +_0806B29A: + movs r4, #1 + b _0806B2A0 +_0806B29E: + movs r4, #3 +_0806B2A0: + ldr r0, _0806B2B0 @ =gUnk_08112D48 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806B2B0: .4byte gUnk_08112D48 + + thumb_func_start sub_0806B2B4 +sub_0806B2B4: @ 0x0806B2B4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0xb3 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806B314 + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2D6 + movs r4, #1 + movs r0, #0 + bl sub_0807CD10 + b _0806B316 +_0806B2D6: + movs r0, #1 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2EA + movs r4, #2 + movs r0, #1 + bl sub_0807CD10 + b _0806B316 +_0806B2EA: + movs r0, #2 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B2FE + movs r4, #3 + movs r0, #2 + bl sub_0807CD10 + b _0806B316 +_0806B2FE: + movs r4, #4 + movs r0, #0 + bl sub_0807CD8C + movs r0, #1 + bl sub_0807CD8C + movs r0, #2 + bl sub_0807CD8C + b _0806B316 +_0806B314: + movs r4, #0 +_0806B316: + ldr r0, _0806B328 @ =gUnk_08112D50 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B328: .4byte gUnk_08112D50 + + thumb_func_start sub_0806B32C +sub_0806B32C: @ 0x0806B32C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806B352 + 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, #9 + bl sub_080042AC + b _0806B358 +_0806B352: + adds r0, r2, #0 + bl sub_080042B8 +_0806B358: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806B35C +sub_0806B35C: @ 0x0806B35C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + adds r2, #0x13 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r2, #0xb + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806B3AC +sub_0806B3AC: @ 0x0806B3AC + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B3C2 + adds r0, r2, #0 + bl sub_0806B41C + b _0806B3C8 +_0806B3C2: + adds r0, r2, #0 + bl sub_0806B3CC +_0806B3C8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806B3CC +sub_0806B3CC: @ 0x0806B3CC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B3F4 + ldr r1, _0806B418 @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B414 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08078778 +_0806B3F4: + adds r0, r4, #0 + bl sub_08004274 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0806B40E + movs r0, #0 + strb r0, [r1] + bl sub_08056378 +_0806B40E: + adds r0, r4, #0 + bl sub_0806ED78 +_0806B414: + pop {r4, pc} + .align 2, 0 +_0806B418: .4byte gUnk_08112E1C + + thumb_func_start sub_0806B41C +sub_0806B41C: @ 0x0806B41C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806B470 + cmp r0, #1 + bgt _0806B430 + cmp r0, #0 + beq _0806B436 + b _0806B4EC +_0806B430: + cmp r0, #2 + beq _0806B4DE + b _0806B4EC +_0806B436: + ldr r1, _0806B46C @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B4EC + 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 r0, [r4, #0xb] + cmp r0, #2 + bne _0806B462 + adds r0, r4, #0 + movs r1, #0x25 + movs r2, #0 + bl CreateFX +_0806B462: + adds r0, r4, #0 + bl sub_0807DD50 + b _0806B4EC + .align 2, 0 +_0806B46C: .4byte gUnk_08112E1C +_0806B470: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806B4D4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806B4C8 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08002632 + ldr r1, _0806B4CC @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0x21 + bne _0806B4B2 + adds r3, #6 +_0806B4B2: + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806B4D0 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + b _0806B4EC + .align 2, 0 +_0806B4C8: .4byte gLinkEntity +_0806B4CC: .4byte gUnk_08001A7C +_0806B4D0: .4byte gUnk_03003F80 +_0806B4D4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806B4EC +_0806B4DE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806B4EC + movs r0, #1 + strb r0, [r4, #0xc] +_0806B4EC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806B4F0 +sub_0806B4F0: @ 0x0806B4F0 + push {lr} + ldrb r1, [r0, #0xb] + lsls r1, r1, #3 + ldr r2, _0806B500 @ =gUnk_08112E2C + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806B500: .4byte gUnk_08112E2C + + thumb_func_start sub_0806B504 +sub_0806B504: @ 0x0806B504 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #1 + movs r0, #0x21 + bl sub_0801E7F4 + cmp r0, #0 + beq _0806B518 + movs r4, #3 + b _0806B52A +_0806B518: + movs r0, #0x86 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B52A + movs r4, #0 + movs r0, #0x86 + bl sub_0807CCB4 +_0806B52A: + ldr r0, _0806B53C @ =gUnk_08112E54 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806B53C: .4byte gUnk_08112E54 + + thumb_func_start sub_0806B540 +sub_0806B540: @ 0x0806B540 + push {r4, lr} + adds r2, r0, #0 + adds r0, #0x84 + ldr r4, [r0] + ldrb r0, [r4, #0x18] + cmp r0, #1 + beq _0806B588 + cmp r0, #1 + bgt _0806B558 + cmp r0, #0 + beq _0806B562 + b _0806B600 +_0806B558: + cmp r0, #2 + beq _0806B5AC + cmp r0, #3 + beq _0806B5EE + b _0806B600 +_0806B562: + ldr r0, _0806B584 @ =0x00002312 + adds r1, r2, #0 + bl sub_08056398 + movs r0, #0x3f + bl sub_0807CBD0 + cmp r0, #0 + bne _0806B606 + ldrb r0, [r4, #0x18] + adds r0, #1 + strb r0, [r4, #0x18] + movs r0, #0x3f + bl sub_0807CCB4 + b _0806B600 + .align 2, 0 +_0806B584: .4byte 0x00002312 +_0806B588: + ldr r0, _0806B5A4 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806B600 + movs r0, #2 + strb r0, [r4, #0x18] + ldr r0, _0806B5A8 @ =0x00002315 + adds r1, r2, #0 + bl sub_08056398 + b _0806B600 + .align 2, 0 +_0806B5A4: .4byte gUnk_02000050 +_0806B5A8: .4byte 0x00002315 +_0806B5AC: + ldr r0, _0806B5D4 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806B600 + movs r0, #3 + strb r0, [r4, #0x18] + ldr r0, _0806B5D8 @ =gUnk_02002A40 + adds r0, #0xbb + ldrb r0, [r0] + cmp r0, #0 + beq _0806B5DC + movs r0, #0x58 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + b _0806B5E6 + .align 2, 0 +_0806B5D4: .4byte gUnk_02000050 +_0806B5D8: .4byte gUnk_02002A40 +_0806B5DC: + movs r0, #0x3f + movs r1, #0x64 + movs r2, #0 + bl sub_080A7C18 +_0806B5E6: + movs r0, #0xf + bl sub_0807CD10 + b _0806B600 +_0806B5EE: + ldr r0, _0806B5FC @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #8 + beq _0806B600 + movs r0, #0x2d + strh r0, [r4, #0x10] + b _0806B606 + .align 2, 0 +_0806B5FC: .4byte gLinkEntity +_0806B600: + ldr r1, _0806B608 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806B606: + pop {r4, pc} + .align 2, 0 +_0806B608: .4byte gUnk_02033280 + + thumb_func_start sub_0806B60C +sub_0806B60C: @ 0x0806B60C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806B624 +sub_0806B624: @ 0x0806B624 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806B65C + ldr r1, _0806B658 @ =gUnk_08112E1C + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806B662 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_08004260 + b _0806B662 + .align 2, 0 +_0806B658: .4byte gUnk_08112E1C +_0806B65C: + adds r0, r4, #0 + bl sub_08004274 +_0806B662: + pop {r4, pc} + + thumb_func_start sub_0806B664 +sub_0806B664: @ 0x0806B664 + push {lr} + ldr r2, _0806B678 @ =gUnk_08112F78 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806B678: .4byte gUnk_08112F78 + + thumb_func_start sub_0806B67C +sub_0806B67C: @ 0x0806B67C + push {r4, r5, r6, lr} + adds r6, r0, #0 + movs r1, #0 + movs r0, #1 + strb r0, [r6, #0xc] + strb r1, [r6, #0xd] + strb r1, [r6, #0xe] + ldrb r0, [r6, #0xa] + cmp r0, #5 + bls _0806B692 + b _0806B7B8 +_0806B692: + lsls r0, r0, #2 + ldr r1, _0806B69C @ =_0806B6A0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806B69C: .4byte _0806B6A0 +_0806B6A0: @ jump table + .4byte _0806B6B8 @ case 0 + .4byte _0806B7A6 @ case 1 + .4byte _0806B70C @ case 2 + .4byte _0806B726 @ case 3 + .4byte _0806B7B0 @ case 4 + .4byte _0806B7A6 @ case 5 +_0806B6B8: + ldrh r0, [r6, #0x32] + subs r0, #0xa0 + strh r0, [r6, #0x32] + movs r0, #0xa0 + strb r0, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + adds r1, r6, #0 + adds r1, #0x63 + strb r0, [r1] + movs r5, #0 +_0806B6CE: + movs r0, #0x3b + movs r1, #2 + adds r2, r5, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806B6E0 + str r6, [r4, #0x50] +_0806B6E0: + adds r5, #1 + cmp r5, #3 + bls _0806B6CE + movs r0, #0x3b + movs r1, #1 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + str r6, [r4, #0x50] + adds r1, r4, #0 + adds r1, #0x63 + movs r0, #0xff + strb r0, [r1] + movs r3, #0x80 + lsls r3, r3, #9 + adds r0, r6, #0 + adds r1, r4, #0 + movs r2, #0 + bl sub_0806FA48 + b _0806B7A6 +_0806B70C: + ldrb r1, [r6, #0xb] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806B71E + ldrb r0, [r6, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r6, #0x18] +_0806B71E: + adds r0, r6, #0 + bl sub_0806B96C + b _0806B7A6 +_0806B726: + movs r0, #1 + strb r0, [r6, #0xe] + movs r0, #0x20 + strb r0, [r6, #0xf] + movs r0, #0x3b + movs r1, #4 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806B76C + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r6, [r4, #0x50] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs 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] + movs r0, #0 + strb r0, [r4, #0x1e] +_0806B76C: + movs r0, #0x3b + movs r1, #5 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806B7A6 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA24 + str r6, [r4, #0x50] + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + 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] +_0806B7A6: + adds r0, r6, #0 + movs r1, #0 + bl sub_080042AC + b _0806B7B8 +_0806B7B0: + adds r0, r6, #0 + movs r1, #0 + bl sub_08004260 +_0806B7B8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806B7BC +sub_0806B7BC: @ 0x0806B7BC + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #3 + bl sub_0807CC3C + cmp r0, #0 + bne _0806B7CC + b _0806B968 +_0806B7CC: + ldrb r0, [r5, #0xa] + cmp r0, #1 + beq _0806B84C + cmp r0, #1 + bgt _0806B7DC + cmp r0, #0 + beq _0806B7E6 + b _0806B93C +_0806B7DC: + cmp r0, #2 + beq _0806B86C + cmp r0, #3 + beq _0806B874 + b _0806B93C +_0806B7E6: + ldrh r0, [r5, #0x32] + adds r0, #1 + strh r0, [r5, #0x32] + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + movs r1, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B82C + movs r0, #0x3b + movs r1, #3 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + bne _0806B80C + b _0806B968 +_0806B80C: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + ldr r0, _0806B828 @ =0x00001634 + bl sub_08056378 + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + bl sub_0805E780 + b _0806B968 + .align 2, 0 +_0806B828: .4byte 0x00001634 +_0806B82C: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + ands r0, r1 + cmp r0, #0 + beq _0806B83A + b _0806B95A +_0806B83A: + movs r0, #0x20 + strb r0, [r5, #0xf] + ldr r0, _0806B848 @ =0x000001A9 + bl sub_080A3268 + b _0806B95A + .align 2, 0 +_0806B848: .4byte 0x000001A9 +_0806B84C: + adds r0, r5, #0 + bl sub_0806B9BC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B85C + bl sub_0805E780 +_0806B85C: + movs r3, #0x84 + lsls r3, r3, #0xe + adds r0, r4, #0 + adds r1, r5, #0 + movs r2, #0 + bl sub_0806FA48 + b _0806B95A +_0806B86C: + adds r0, r5, #0 + bl sub_0806B96C + b _0806B95A +_0806B874: + ldrb r0, [r5, #0xd] + cmp r0, #1 + beq _0806B8A2 + cmp r0, #1 + bgt _0806B884 + cmp r0, #0 + beq _0806B88E + b _0806B91E +_0806B884: + cmp r0, #2 + beq _0806B8C4 + cmp r0, #3 + beq _0806B906 + b _0806B91E +_0806B88E: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B91E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + b _0806B91E +_0806B8A2: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #2 + strb r0, [r5, #0xd] + ldr r1, _0806B8C0 @ =0x0000013F + adds r0, r5, #0 + bl sub_0801D2B4 + b _0806B8FA + .align 2, 0 +_0806B8C0: .4byte 0x0000013F +_0806B8C4: + adds r2, r5, #0 + adds r2, #0x5a + ldrb r1, [r2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #0xef + ands r0, r1 + strb r0, [r2] + ldrb r0, [r5, #0xe] + adds r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + beq _0806B91E + cmp r0, #0xa + bne _0806B91E + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + movs r0, #0xf4 + bl sub_08004488 + movs r0, #0 + strb r0, [r5, #0xe] +_0806B8FA: + ldrb r1, [r5, #0xd] + subs r1, #1 + adds r0, r5, #0 + bl sub_080042AC + b _0806B91E +_0806B906: + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806B91E + movs r0, #0 + bl sub_0807CD10 + bl sub_0805E780 +_0806B91E: + ldrb r0, [r5, #0xf] + subs r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806B95A + movs r0, #0x20 + strb r0, [r5, #0xf] + ldr r0, _0806B938 @ =0x000001A9 + bl sub_080A3268 + b _0806B95A + .align 2, 0 +_0806B938: .4byte 0x000001A9 +_0806B93C: + adds r0, r5, #0 + bl sub_0806B9BC + adds r4, r0, #0 + cmp r4, #0 + bne _0806B94E + bl sub_0805E780 + b _0806B968 +_0806B94E: + ldrb r0, [r4, #0xd] + cmp r0, #0 + beq _0806B968 + ldrb r0, [r5, #0xa] + cmp r0, #4 + beq _0806B962 +_0806B95A: + adds r0, r5, #0 + bl sub_080042B8 + b _0806B968 +_0806B962: + adds r0, r5, #0 + bl sub_08004274 +_0806B968: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806B96C +sub_0806B96C: @ 0x0806B96C + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_0806B9BC + adds r5, r0, #0 + cmp r5, #0 + bne _0806B97E + bl sub_0805E780 +_0806B97E: + ldrb r3, [r4, #0xb] + lsls r3, r3, #1 + ldr r0, _0806B9B8 @ =gUnk_08112F80 + adds r3, r3, r0 + 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] + 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, #0x21 + lsls r3, r3, #0x10 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA48 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0806B9B8: .4byte gUnk_08112F80 + + thumb_func_start sub_0806B9BC +sub_0806B9BC: @ 0x0806B9BC + push {lr} + ldr r1, [r0, #0x50] + cmp r1, #0 + beq _0806B9CC + ldr r0, [r1, #4] + cmp r0, #0 + bne _0806B9CC + movs r1, #0 +_0806B9CC: + adds r0, r1, #0 + pop {pc} + + thumb_func_start sub_0806B9D0 +sub_0806B9D0: @ 0x0806B9D0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0806B9E6 + adds r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + bl sub_0807DD50 + b _0806B9EE +_0806B9E6: + adds r0, r1, #0 + movs r1, #0 + bl sub_0807DD94 +_0806B9EE: + pop {pc} + + thumb_func_start sub_0806B9F0 +sub_0806B9F0: @ 0x0806B9F0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BA18 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806BA30 @ =gUnk_08114F30 + ldrb r2, [r4, #0x19] + lsrs r0, r2, #6 + adds r0, r0, r1 + ldrb r1, [r0] + lsls r1, r1, #6 + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] +_0806BA18: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + pop {r4, pc} + .align 2, 0 +_0806BA30: .4byte gUnk_08114F30 + + thumb_func_start sub_0806BA34 +sub_0806BA34: @ 0x0806BA34 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r4, r1, #0 + ldr r0, _0806BA58 @ =0x00004912 + mov r8, r0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x73 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806BA60 + ldr r0, _0806BA5C @ =0x00004913 + mov r8, r0 + b _0806BB06 + .align 2, 0 +_0806BA58: .4byte 0x00004912 +_0806BA5C: .4byte 0x00004913 +_0806BA60: + movs r0, #0x39 + bl sub_0807CA84 + adds r7, r0, #0 + movs r0, #0x3a + bl sub_0807CA84 + adds r6, r0, #0 + movs r0, #0x3b + bl sub_0807CA84 + adds r5, r0, #0 + cmp r7, #1 + bne _0806BA88 + ldr r0, _0806BA84 @ =0x00004906 + mov r8, r0 + str r7, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA84: .4byte 0x00004906 +_0806BA88: + cmp r6, #1 + bne _0806BA98 + ldr r0, _0806BA94 @ =0x00004907 + mov r8, r0 + str r6, [r4, #0x14] + b _0806BAA2 + .align 2, 0 +_0806BA94: .4byte 0x00004907 +_0806BA98: + cmp r5, #1 + bne _0806BAB4 + ldr r0, _0806BAB0 @ =0x00004908 + mov r8, r0 + str r5, [r4, #0x14] +_0806BAA2: + movs r0, #0x6b + bl sub_0807CCB4 + movs r0, #0x6a + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAB0: .4byte 0x00004908 +_0806BAB4: + movs r0, #0x6a + bl sub_0807CBD0 + cmp r0, #0 + beq _0806BB06 + movs r0, #0x6b + bl sub_0807CBD0 + cmp r0, #0 + bne _0806BAD0 + ldr r0, _0806BACC @ =0x00004901 + b _0806BAD6 + .align 2, 0 +_0806BACC: .4byte 0x00004901 +_0806BAD0: + cmp r7, #0 + bne _0806BAE4 + ldr r0, _0806BAE0 @ =0x00004902 +_0806BAD6: + mov r8, r0 + movs r0, #0x6b + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAE0: .4byte 0x00004902 +_0806BAE4: + cmp r6, #0 + bne _0806BAF8 + ldr r0, _0806BAF4 @ =0x00004903 + mov r8, r0 + movs r0, #0x6d + bl sub_0807CCB4 + b _0806BB06 + .align 2, 0 +_0806BAF4: .4byte 0x00004903 +_0806BAF8: + cmp r5, #0 + bne _0806BB06 + ldr r0, _0806BB18 @ =0x00004904 + mov r8, r0 + movs r0, #0x70 + bl sub_0807CCB4 +_0806BB06: + mov r0, r8 + mov r1, sb + bl sub_08056398 + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806BB18: .4byte 0x00004904 + + thumb_func_start sub_0806BB1C +sub_0806BB1C: @ 0x0806BB1C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + movs r4, #1 + rsbs r4, r4, #0 + movs r0, #0x39 + bl sub_0807CA84 + cmp r0, #1 + bne _0806BB34 + movs r4, #0x39 + b _0806BB52 +_0806BB34: + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #1 + bne _0806BB42 + movs r4, #0x3a + b _0806BB52 +_0806BB42: + movs r0, #0x3b + bl sub_0807CA84 + cmp r0, #1 + bne _0806BB4E + movs r4, #0x3b +_0806BB4E: + cmp r4, #0 + ble _0806BB78 +_0806BB52: + ldr r0, [r6, #4] + cmp r0, #0 + bne _0806BB70 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08095BE0 + adds r0, r5, #0 + movs r1, #0xc + bl sub_08004260 + movs r0, #0xcd + bl sub_080A3268 + b _0806BB78 +_0806BB70: + adds r0, r4, #0 + movs r1, #2 + bl sub_0807CAA0 +_0806BB78: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806BB7C +sub_0806BB7C: @ 0x0806BB7C + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x39 + bl sub_0807CA84 + cmp r0, #2 + bne _0806BBAC + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #2 + bne _0806BBAC + movs r0, #0x3b + bl sub_0807CA84 + cmp r0, #2 + bne _0806BBAC + movs r0, #0x73 + bl sub_0807CCB4 + movs r0, #1 + str r0, [r4, #0x14] +_0806BBAC: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BBB0 +sub_0806BBB0: @ 0x0806BBB0 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806BBCC + movs r0, #0x29 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + b _0806BBCE +_0806BBCC: + movs r1, #2 +_0806BBCE: + ldr r0, _0806BBE0 @ =gUnk_08113078 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806BBE0: .4byte gUnk_08113078 + + thumb_func_start sub_0806BBE4 +sub_0806BBE4: @ 0x0806BBE4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BC40 + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BC28 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806BC54 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xe] + 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] + lsls r0, r0, #0x19 + cmp r0, #0 + blt _0806BC2C + movs r0, #6 + b _0806BC2E + .align 2, 0 +_0806BC28: .4byte gUnk_08113140 +_0806BC2C: + movs r0, #2 +_0806BC2E: + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x14] + strb r0, [r4, #0xe] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + bl sub_0807DD64 +_0806BC40: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 +_0806BC54: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BC58 +sub_0806BC58: @ 0x0806BC58 + push {lr} + movs r1, #2 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BC64 +sub_0806BC64: @ 0x0806BC64 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806BC94 +sub_0806BC94: @ 0x0806BC94 + push {lr} + ldrb r3, [r0, #0x18] + lsls r3, r3, #0x19 + lsrs r3, r3, #0x1f + rsbs r2, r3, #0 + orrs r2, r3 + asrs r2, r2, #0x1f + movs r3, #8 + ands r2, r3 + ldr r1, [r1, #4] + adds r1, r1, r2 + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BCB8 +sub_0806BCB8: @ 0x0806BCB8 + ldrb r1, [r0, #0xe] + strb r1, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_0806BCC0 +sub_0806BCC0: @ 0x0806BCC0 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xa] + cmp r0, #0 + bne _0806BCD0 + adds r0, r1, #0 + bl sub_0806F188 +_0806BCD0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BCD4 +sub_0806BCD4: @ 0x0806BCD4 + 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_0806BCE8 +sub_0806BCE8: @ 0x0806BCE8 + push {lr} + ldrb r1, [r0, #0xa] + lsls r1, r1, #3 + ldr r2, _0806BCF8 @ =gUnk_08113158 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806BCF8: .4byte gUnk_08113158 + + thumb_func_start sub_0806BCFC +sub_0806BCFC: @ 0x0806BCFC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BD4C + ldrb r0, [r4, #0xa] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + ldr r0, _0806BD48 @ =gUnk_08113140 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806BD52 + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + bl sub_0806BC58 + adds r0, r4, #0 + movs r1, #3 + bl sub_080042AC + b _0806BD52 + .align 2, 0 +_0806BD48: .4byte gUnk_08113140 +_0806BD4C: + adds r0, r4, #0 + bl sub_080042B8 +_0806BD52: + pop {r4, pc} + + thumb_func_start sub_0806BD54 +sub_0806BD54: @ 0x0806BD54 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BD6A + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806BD72 +_0806BD6A: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806BD72: + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0806BD94 + movs r0, #0xef + ands r0, r1 + strb r0, [r4] + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_08004488 + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 +_0806BD94: + ldrb r1, [r4] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0806BDAA + movs r0, #0xdf + ands r0, r1 + strb r0, [r4] + movs r0, #0x7c + bl sub_08004488 +_0806BDAA: + pop {r4, pc} + + thumb_func_start sub_0806BDAC +sub_0806BDAC: @ 0x0806BDAC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806BDE6 + cmp r0, #1 + bgt _0806BDC0 + cmp r0, #0 + beq _0806BDC6 + b _0806BE3A +_0806BDC0: + cmp r0, #2 + beq _0806BE26 + b _0806BE3A +_0806BDC6: + 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 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806BE3A +_0806BDE6: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806BE1C + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806BE18 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806BE3A + .align 2, 0 +_0806BE18: .4byte gLinkEntity +_0806BE1C: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806BE3A +_0806BE26: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806BE3A + movs r0, #1 + strb r0, [r4, #0xc] +_0806BE3A: + pop {r4, pc} + + thumb_func_start sub_0806BE3C +sub_0806BE3C: @ 0x0806BE3C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806BE54 +sub_0806BE54: @ 0x0806BE54 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806BE7A + 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, #2 + bl sub_080042AC + b _0806BE80 +_0806BE7A: + adds r0, r2, #0 + bl sub_080042B8 +_0806BE80: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806BE84 +sub_0806BE84: @ 0x0806BE84 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r5, #1 + movs r0, #0x69 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806BEA6 + movs r5, #0 + movs r0, #0x69 + bl sub_0807CCB4 + movs r0, #1 + str r0, [r4, #0x14] +_0806BEA6: + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #1 + bls _0806BEB2 + movs r5, #2 +_0806BEB2: + ldr r0, _0806BEC4 @ =gUnk_08113344 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806BEC4: .4byte gUnk_08113344 + + thumb_func_start sub_0806BEC8 +sub_0806BEC8: @ 0x0806BEC8 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r1, #0 + movs r4, #0 + str r4, [r5, #0x14] + movs r0, #0x3c + bl sub_0807CA84 + cmp r0, #1 + bne _0806BEE2 + movs r4, #1 + str r4, [r5, #0x14] + b _0806BEE8 +_0806BEE2: + cmp r0, #1 + bls _0806BEE8 + movs r4, #2 +_0806BEE8: + ldr r0, _0806BEF8 @ =gUnk_0811334A + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r6, #0 + bl sub_08056398 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806BEF8: .4byte gUnk_0811334A + + thumb_func_start sub_0806BEFC +sub_0806BEFC: @ 0x0806BEFC + push {lr} + movs r0, #0xbf + lsls r0, r0, #1 + ldr r1, _0806BF2C @ =0x0000058E + movs r2, #1 + bl sub_0807B314 + ldr r0, _0806BF30 @ =0x0000017F + ldr r1, _0806BF34 @ =0x0000058F + movs r2, #1 + bl sub_0807B314 + movs r0, #0xc0 + lsls r0, r0, #1 + ldr r1, _0806BF38 @ =0x000005CE + movs r2, #1 + bl sub_0807B314 + ldr r0, _0806BF3C @ =0x00000181 + ldr r1, _0806BF40 @ =0x000005CF + movs r2, #1 + bl sub_0807B314 + pop {pc} + .align 2, 0 +_0806BF2C: .4byte 0x0000058E +_0806BF30: .4byte 0x0000017F +_0806BF34: .4byte 0x0000058F +_0806BF38: .4byte 0x000005CE +_0806BF3C: .4byte 0x00000181 +_0806BF40: .4byte 0x000005CF + + thumb_func_start sub_0806BF44 +sub_0806BF44: @ 0x0806BF44 + push {r4, r5, lr} + adds r2, r0, #0 + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r3, _0806BF78 @ =gUnk_03000BF0 + movs r5, #0xa + ldrsh r1, [r3, r5] + subs r0, r0, r1 + adds r0, #0x10 + ldr r1, _0806BF7C @ =0x0000010F + cmp r0, r1 + bhi _0806BF76 + movs r1, #0x32 + ldrsh r0, [r2, r1] + movs r2, #0xc + ldrsh r1, [r3, r2] + subs r0, r0, r1 + adds r0, #0x18 + cmp r0, #0xcf + bhi _0806BF76 + movs r0, #1 + str r0, [r4, #0x14] +_0806BF76: + pop {r4, r5, pc} + .align 2, 0 +_0806BF78: .4byte gUnk_03000BF0 +_0806BF7C: .4byte 0x0000010F + + thumb_func_start sub_0806BF80 +sub_0806BF80: @ 0x0806BF80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806BFBE + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806BFA2 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_0806BFA2: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806BFD8 + b _0806BFD4 +_0806BFBE: + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0806BFD4 + adds r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806BFD4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806BFD8 +sub_0806BFD8: @ 0x0806BFD8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r5, #3 + adds r1, r5, #0 + ands r1, r0 + cmp r1, #1 + beq _0806BFF0 + cmp r1, #2 + beq _0806C002 + b _0806C00A +_0806BFF0: + bl sub_08000E50 + adds r1, r0, #0 + ands r1, r5 + adds r1, #0xc + adds r0, r4, #0 + bl sub_08004260 + b _0806C00A +_0806C002: + adds r0, r4, #0 + movs r1, #0 + bl sub_08004260 +_0806C00A: + pop {r4, r5, pc} + + thumb_func_start sub_0806C00C +sub_0806C00C: @ 0x0806C00C + push {lr} + adds r2, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806C022 + movs r0, #1 +_0806C022: + str r0, [r2, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C028 +sub_0806C028: @ 0x0806C028 + push {lr} + ldrb r2, [r0, #0x14] + lsrs r2, r2, #1 + ldr r1, [r1, #4] + adds r1, r1, r2 + bl sub_08004260 + pop {pc} + + thumb_func_start sub_0806C038 +sub_0806C038: @ 0x0806C038 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806C074 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r4, r0, #5 + cmp r4, #0 + beq _0806C048 + movs r4, #0 +_0806C048: + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806C086 + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #0 + bne _0806C078 + movs r4, #6 + movs r0, #0xaf + bl sub_0807CBD0 + cmp r0, #0 + bne _0806C086 + movs r4, #5 + movs r0, #0xaf + bl sub_0807CCB4 + b _0806C086 + .align 2, 0 +_0806C074: .4byte gUnk_02002A40 +_0806C078: + movs r4, #7 + movs r0, #0x3a + bl sub_0807CA84 + cmp r0, #1 + bls _0806C086 + movs r4, #0 +_0806C086: + ldr r0, _0806C098 @ =gUnk_081133A4 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806C098: .4byte gUnk_081133A4 + + thumb_func_start sub_0806C09C +sub_0806C09C: @ 0x0806C09C + push {lr} + ldr r3, _0806C0AC @ =gUnk_081133B4 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {pc} + .align 2, 0 +_0806C0AC: .4byte gUnk_081133B4 + + thumb_func_start sub_0806C0B0 +sub_0806C0B0: @ 0x0806C0B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r5, r0, #0 + cmp r5, #0 + bne _0806C104 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x19] + movs r0, #0xd + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + ldr r1, _0806C100 @ =gUnk_03000F50 + adds r2, r1, #0 + adds r2, #0x66 + movs r0, #0xfd + lsls r0, r0, #6 + strh r0, [r2] + adds r1, #0x68 + movs r0, #0x80 + lsls r0, r0, #5 + strh r0, [r1] + strh r0, [r4, #0x24] + str r5, [r4, #0x20] + b _0806C134 + .align 2, 0 +_0806C100: .4byte gUnk_03000F50 +_0806C104: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + movs r1, #0x24 + ldrsh r0, [r4, r1] + lsls r3, r0, #8 + ldr r0, [r4, #0x20] + adds r3, r3, r0 + asrs r3, r3, #0x10 + cmp r3, #0x10 + ble _0806C11E + movs r3, #0x10 +_0806C11E: + cmp r3, #3 + bgt _0806C124 + movs r3, #4 +_0806C124: + ldr r2, _0806C138 @ =gUnk_03000F50 + lsls r1, r3, #8 + movs r0, #0x10 + subs r0, r0, r3 + orrs r1, r0 + adds r2, #0x68 + strh r1, [r2] + strh r1, [r4, #0x24] +_0806C134: + pop {r4, r5, pc} + .align 2, 0 +_0806C138: .4byte gUnk_03000F50 + + thumb_func_start sub_0806C13C +sub_0806C13C: @ 0x0806C13C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806C182 + cmp r0, #1 + bgt _0806C150 + cmp r0, #0 + beq _0806C156 + b _0806C1D2 +_0806C150: + cmp r0, #2 + beq _0806C1BE + b _0806C1D2 +_0806C156: + 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_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C1D2 +_0806C182: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C1B4 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806C1B0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806C1D2 + .align 2, 0 +_0806C1B0: .4byte gLinkEntity +_0806C1B4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C1D2 +_0806C1BE: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C1D2 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x88 + bl sub_0807CCB4 +_0806C1D2: + pop {r4, pc} + + thumb_func_start sub_0806C1D4 +sub_0806C1D4: @ 0x0806C1D4 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806C1FA + 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, #2 + bl sub_080042AC + b _0806C200 +_0806C1FA: + adds r0, r2, #0 + bl sub_080042B8 +_0806C200: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C204 +sub_0806C204: @ 0x0806C204 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xc] + cmp r0, #0 + bne _0806C21A + adds r0, #1 + strb r0, [r1, #0xc] + adds r0, r1, #0 + bl sub_0807DD50 + b _0806C222 +_0806C21A: + adds r0, r1, #0 + movs r1, #0 + bl sub_0807DD94 +_0806C222: + pop {pc} + + thumb_func_start sub_0806C224 +sub_0806C224: @ 0x0806C224 + push {lr} + ldr r0, _0806C234 @ =gUnk_0813AD60 + bl sub_08080840 + ldr r1, _0806C238 @ =gUnk_030010A0 + movs r0, #6 + strb r0, [r1, #9] + pop {pc} + .align 2, 0 +_0806C234: .4byte gUnk_0813AD60 +_0806C238: .4byte gUnk_030010A0 + + thumb_func_start sub_0806C23C +sub_0806C23C: @ 0x0806C23C + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0xf + movs r2, #0x43 + movs r3, #0 + bl sub_080A2988 + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0806C27C @ =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 r4, #0x38 + ldrb r2, [r4] + movs r0, #0x73 + bl sub_0807B314 + movs r0, #0x73 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_0806C27C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806C280 +sub_0806C280: @ 0x0806C280 + push {lr} + movs r0, #0x50 + bl sub_0807CD04 + ldr r0, _0806C298 @ =gUnk_0813AD74 + bl sub_08080840 + ldr r1, _0806C29C @ =gUnk_030010A0 + movs r0, #6 + strb r0, [r1, #9] + pop {pc} + .align 2, 0 +_0806C298: .4byte gUnk_0813AD74 +_0806C29C: .4byte gUnk_030010A0 + + thumb_func_start sub_0806C2A0 +sub_0806C2A0: @ 0x0806C2A0 + push {lr} + ldr r0, [r1, #4] + cmp r0, #0 + beq _0806C2AE + cmp r0, #1 + beq _0806C2B8 + b _0806C2C0 +_0806C2AE: + movs r0, #0xd + movs r1, #4 + bl sub_08050054 + b _0806C2C0 +_0806C2B8: + movs r0, #0xc + movs r1, #4 + bl sub_08050054 +_0806C2C0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C2C4 +sub_0806C2C4: @ 0x0806C2C4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806C2FA + cmp r0, #1 + bgt _0806C2D8 + cmp r0, #0 + beq _0806C2DE + b _0806C350 +_0806C2D8: + cmp r0, #2 + beq _0806C342 + b _0806C350 +_0806C2DE: + 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 r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C350 +_0806C2FA: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C338 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + ldr r1, _0806C334 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r1, [r1] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _0806C350 + .align 2, 0 +_0806C334: .4byte gLinkEntity +_0806C338: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C350 +_0806C342: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C350 + movs r0, #1 + strb r0, [r4, #0xc] +_0806C350: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806C354 +sub_0806C354: @ 0x0806C354 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C36C +sub_0806C36C: @ 0x0806C36C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806C392 + 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, #6 + bl sub_080042AC + b _0806C398 +_0806C392: + adds r0, r2, #0 + bl sub_080042B8 +_0806C398: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806C39C +sub_0806C39C: @ 0x0806C39C + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806C3E2 + cmp r5, #1 + bgt _0806C3B0 + cmp r5, #0 + beq _0806C3B6 + b _0806C450 +_0806C3B0: + cmp r5, #2 + beq _0806C436 + b _0806C450 +_0806C3B6: + adds r0, r4, #0 + bl sub_0806C454 + cmp r0, #0 + beq _0806C450 + 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 r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C450 +_0806C3E2: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C420 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806C41C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_0806F118 + b _0806C450 + .align 2, 0 +_0806C41C: .4byte gLinkEntity +_0806C420: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _0806C450 +_0806C436: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C450 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_0806C450: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806C454 +sub_0806C454: @ 0x0806C454 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806C470 @ =gUnk_08113754 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C474 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #1 + b _0806C476 + .align 2, 0 +_0806C470: .4byte gUnk_08113754 +_0806C474: + movs r0, #0 +_0806C476: + pop {r4, pc} + + thumb_func_start sub_0806C478 +sub_0806C478: @ 0x0806C478 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806C4A8 +sub_0806C4A8: @ 0x0806C4A8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806C4D8 + adds r0, r4, #0 + bl sub_0806EDC4 + adds r1, r0, #0 + cmp r1, #0 + bge _0806C4CC + movs r1, #3 +_0806C4CC: + lsls r0, r1, #1 + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_080042AC + movs r0, #1 +_0806C4D8: + str r0, [r5, #0x14] + pop {r4, r5, pc} + + thumb_func_start sub_0806C4DC +sub_0806C4DC: @ 0x0806C4DC + push {lr} + ldr r1, _0806C4F0 @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _0806C4F4 @ =gUnk_08113760 + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C4F0: .4byte gUnk_02002A40 +_0806C4F4: .4byte gUnk_08113760 + + thumb_func_start sub_0806C4F8 +sub_0806C4F8: @ 0x0806C4F8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C510 +sub_0806C510: @ 0x0806C510 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C548 + adds r0, r4, #0 + bl sub_0806C454 + cmp r0, #0 + beq _0806C54E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + ldrh r0, [r4, #0x32] + subs r0, #4 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #2 + bl sub_08004260 + b _0806C54E +_0806C548: + adds r0, r4, #0 + bl sub_08004274 +_0806C54E: + pop {r4, pc} + + thumb_func_start sub_0806C550 +sub_0806C550: @ 0x0806C550 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C56E + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806C576 +_0806C56E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806C576: + pop {r4, pc} + + thumb_func_start sub_0806C578 +sub_0806C578: @ 0x0806C578 + push {lr} + ldr r0, _0806C584 @ =gUnk_0813AD10 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C584: .4byte gUnk_0813AD10 + + thumb_func_start sub_0806C588 +sub_0806C588: @ 0x0806C588 + push {lr} + ldr r0, _0806C594 @ =gUnk_0813AD24 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C594: .4byte gUnk_0813AD24 + + thumb_func_start sub_0806C598 +sub_0806C598: @ 0x0806C598 + push {lr} + ldr r0, _0806C5A4 @ =gUnk_0813AD38 + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806C5A4: .4byte gUnk_0813AD38 + + thumb_func_start sub_0806C5A8 +sub_0806C5A8: @ 0x0806C5A8 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r4, [r5, #0xc] + cmp r4, #1 + beq _0806C604 + cmp r4, #1 + bgt _0806C5BC + cmp r4, #0 + beq _0806C5C2 + b _0806C670 +_0806C5BC: + cmp r4, #2 + beq _0806C656 + b _0806C670 +_0806C5C2: + ldrb r1, [r5, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C600 @ =gUnk_08113910 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C670 + 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 r0, [r5, #0xe] + strb r0, [r5, #0x14] + adds r0, r5, #0 + adds r0, #0x69 + strb r4, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0807DD50 + b _0806C670 + .align 2, 0 +_0806C600: .4byte gUnk_08113910 +_0806C604: + adds r2, r5, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806C64C + movs r0, #0 + strb r1, [r5, #0xc] + strb r0, [r2] + adds r4, r5, #0 + adds r4, #0x58 + ldrb r0, [r4] + adds r1, r5, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806C648 @ =gLinkEntity + adds r0, r5, #0 + bl sub_080045C4 + bl sub_0806F5A4 + ldrb r1, [r4] + movs r2, #4 + rsbs r2, r2, #0 + ands r1, r2 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_08004260 + adds r0, r5, #0 + bl sub_0806F118 + b _0806C670 + .align 2, 0 +_0806C648: .4byte gLinkEntity +_0806C64C: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806C670 +_0806C656: + adds r0, r5, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C670 + movs r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r5, #0 + bl sub_08004260 +_0806C670: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806C674 +sub_0806C674: @ 0x0806C674 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C68C +sub_0806C68C: @ 0x0806C68C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + ldrb r6, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r5, #0x3f + ands r5, r0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + bne _0806C6D2 + adds r2, #3 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806C70A +_0806C6D2: + adds r2, #6 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r2, r5, #3 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + adds r2, r6, #0 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + bl sub_0807000C +_0806C70A: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0806C70C +sub_0806C70C: @ 0x0806C70C + push {lr} + adds r3, r0, #0 + ldr r0, _0806C730 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806C71C + movs r0, #0 +_0806C71C: + ldrb r1, [r3, #0xa] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806C734 @ =gUnk_08113930 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C730: .4byte gUnk_02002A40 +_0806C734: .4byte gUnk_08113930 + + thumb_func_start sub_0806C738 +sub_0806C738: @ 0x0806C738 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806C778 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C774 @ =gUnk_08113910 + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C77E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_08004260 + b _0806C77E + .align 2, 0 +_0806C774: .4byte gUnk_08113910 +_0806C778: + adds r0, r4, #0 + bl sub_08004274 +_0806C77E: + pop {r4, pc} + + thumb_func_start sub_0806C780 +sub_0806C780: @ 0x0806C780 + push {lr} + ldr r2, _0806C794 @ =gUnk_08113A7C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806C794: .4byte gUnk_08113A7C + + thumb_func_start sub_0806C798 +sub_0806C798: @ 0x0806C798 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806C7D0 @ =gUnk_08113A1C + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806C7CE + 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 r0, [r4, #0xe] + strb r0, [r4, #0x14] + adds r0, r4, #0 + bl sub_0807DD50 + adds r0, r4, #0 + bl sub_0806C7D4 +_0806C7CE: + pop {r4, pc} + .align 2, 0 +_0806C7D0: .4byte gUnk_08113A1C + + thumb_func_start sub_0806C7D4 +sub_0806C7D4: @ 0x0806C7D4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r4, #0 + adds r2, #0x39 + movs r0, #0 + ldrsb r0, [r2, r0] + cmp r0, #2 + bne _0806C7F4 + movs r1, #0 + movs r0, #3 + strb r0, [r4, #0xc] + strb r1, [r2] + adds r0, r4, #0 + bl sub_0806F118 + b _0806C82C +_0806C7F4: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xb] + cmp r0, #3 + bne _0806C82C + movs r0, #0x58 + bl GetProgressFlag + cmp r0, #0 + bne _0806C82C + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806C82C + movs r0, #0 + bl sub_0807CC3C + cmp r0, #0 + beq _0806C82C + movs r0, #7 + strb r0, [r4, #0xb] + ldr r1, _0806C830 @ =gUnk_08014A80 + adds r0, r4, #0 + bl sub_0807DD80 +_0806C82C: + pop {r4, pc} + .align 2, 0 +_0806C830: .4byte gUnk_08014A80 + + thumb_func_start sub_0806C834 +sub_0806C834: @ 0x0806C834 + push {lr} + adds r2, r0, #0 + ldr r0, _0806C858 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0806C856 + ldrb r0, [r2, #0xc] + subs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + adds r1, #4 + adds r0, r2, #0 + bl sub_08004260 +_0806C856: + pop {pc} + .align 2, 0 +_0806C858: .4byte gUnk_02000050 + + thumb_func_start sub_0806C85C +sub_0806C85C: @ 0x0806C85C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806C86C + movs r0, #1 + strb r0, [r4, #0xc] +_0806C86C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806C870 +sub_0806C870: @ 0x0806C870 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806C888 +sub_0806C888: @ 0x0806C888 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r7, #0x3f + ands r7, r1 + ldrb r0, [r4, #0xa] + cmp r0, #4 + bne _0806C8D4 + adds r0, r4, #0 + movs r1, #0 + movs r2, #9 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + adds r2, r7, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #2 + movs r2, #0 + bl sub_0806FFD8 + adds r0, r4, #0 + movs r1, #2 + movs r2, #1 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + b _0806C90A +_0806C8D4: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806C8E2 + movs r6, #1 + movs r5, #0 + b _0806C8E6 +_0806C8E2: + movs r6, #0 + movs r5, #1 +_0806C8E6: + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r7, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C +_0806C90A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806C90C +sub_0806C90C: @ 0x0806C90C + push {lr} + movs r2, #0 + str r2, [r1, #0x14] + ldr r3, _0806C924 @ =gUnk_08113A8C + ldrb r2, [r0, #0xb] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806C924: .4byte gUnk_08113A8C + + thumb_func_start sub_0806C928 +sub_0806C928: @ 0x0806C928 + push {lr} + ldr r1, _0806C93C @ =gUnk_02002A40 + ldrb r1, [r1, #8] + lsls r1, r1, #3 + ldr r2, _0806C940 @ =gUnk_08113ABC + adds r1, r1, r2 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806C93C: .4byte gUnk_02002A40 +_0806C940: .4byte gUnk_08113ABC + + thumb_func_start sub_0806C944 +sub_0806C944: @ 0x0806C944 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + cmp r0, #0 + bne _0806C956 + movs r1, #0 + b _0806C964 +_0806C956: + movs r0, #0x63 + bl sub_0807CBD0 + movs r1, #2 + cmp r0, #0 + beq _0806C964 + movs r1, #1 +_0806C964: + ldr r0, _0806C974 @ =gUnk_08113B0C + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806C974: .4byte gUnk_08113B0C + + thumb_func_start sub_0806C978 +sub_0806C978: @ 0x0806C978 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _0806C998 @ =gUnk_08113B12 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806C998: .4byte gUnk_08113B12 + + thumb_func_start sub_0806C99C +sub_0806C99C: @ 0x0806C99C + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + asrs r4, r1, #0x1f + movs r0, #2 + ands r4, r0 + movs r0, #0x63 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806C9BC + adds r4, #1 +_0806C9BC: + ldr r0, _0806C9CC @ =gUnk_08113B16 + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806C9CC: .4byte gUnk_08113B16 + + thumb_func_start sub_0806C9D0 +sub_0806C9D0: @ 0x0806C9D0 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + movs r0, #0x64 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806C9E2 + movs r4, #1 +_0806C9E2: + ldr r0, _0806C9F4 @ =gUnk_08113B1E + lsls r1, r4, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r5, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806C9F4: .4byte gUnk_08113B1E + + thumb_func_start sub_0806C9F8 +sub_0806C9F8: @ 0x0806C9F8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r1, r1, #0x1f + ldr r0, _0806CA18 @ =gUnk_08113B22 + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, pc} + .align 2, 0 +_0806CA18: .4byte gUnk_08113B22 + + thumb_func_start sub_0806CA1C +sub_0806CA1C: @ 0x0806CA1C + push {lr} + adds r1, r0, #0 + ldr r0, _0806CA28 @ =0x0000251B + bl sub_08056398 + pop {pc} + .align 2, 0 +_0806CA28: .4byte 0x0000251B + + thumb_func_start sub_0806CA2C +sub_0806CA2C: @ 0x0806CA2C + push {lr} + adds r1, r0, #0 + ldr r0, _0806CA38 @ =0x00002527 + bl sub_08056398 + pop {pc} + .align 2, 0 +_0806CA38: .4byte 0x00002527 + + thumb_func_start sub_0806CA3C +sub_0806CA3C: @ 0x0806CA3C + push {lr} + ldr r1, _0806CA48 @ =gUnk_08113B28 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806CA48: .4byte gUnk_08113B28 + + thumb_func_start sub_0806CA4C +sub_0806CA4C: @ 0x0806CA4C + push {lr} + ldr r1, _0806CA58 @ =gUnk_08113B30 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806CA58: .4byte gUnk_08113B30 + + thumb_func_start sub_0806CA5C +sub_0806CA5C: @ 0x0806CA5C + push {r4, lr} + adds r4, r1, #0 + ldr r3, _0806CA8C @ =gUnk_08113B38 + ldrb r1, [r4, #0x18] + adds r2, r1, #1 + strb r2, [r4, #0x18] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r1, r1, r3 + ldrb r1, [r1] + strh r1, [r4, #0x10] + ldrb r0, [r0, #0xb] + cmp r0, #0xa + bne _0806CA7E + movs r0, #0xe8 + bl sub_08004488 +_0806CA7E: + ldrh r0, [r4, #0x10] + cmp r0, #0 + beq _0806CA8A + ldr r1, _0806CA90 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806CA8A: + pop {r4, pc} + .align 2, 0 +_0806CA8C: .4byte gUnk_08113B38 +_0806CA90: .4byte gUnk_02033280 + + thumb_func_start sub_0806CA94 +sub_0806CA94: @ 0x0806CA94 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CAD4 + ldrb r1, [r4, #0xa] + lsls r1, r1, #4 + ldr r0, _0806CAD0 @ =gUnk_08113A1C + adds r1, r1, r0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806CADA + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #6 + bl sub_08004260 + b _0806CADA + .align 2, 0 +_0806CAD0: .4byte gUnk_08113A1C +_0806CAD4: + adds r0, r4, #0 + bl sub_08004274 +_0806CADA: + pop {r4, pc} + + thumb_func_start sub_0806CADC +sub_0806CADC: @ 0x0806CADC + push {lr} + ldr r2, _0806CAF0 @ =gUnk_08113D8C + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806CAF0: .4byte gUnk_08113D8C + + thumb_func_start sub_0806CAF4 +sub_0806CAF4: @ 0x0806CAF4 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806CB66 + adds r0, #1 + strb r0, [r5, #0xc] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0x4a + movs r1, #1 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806CB2C + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAD8 +_0806CB2C: + movs r0, #0x4a + movs r1, #2 + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806CB4E + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 +_0806CB4E: + adds r0, r5, #0 + bl sub_0807DD64 + adds r0, r5, #0 + bl sub_08078778 + ldr r3, _0806CB7C @ =gUnk_08113D84 + ldrb r2, [r3, #4] + adds r0, r5, #0 + movs r1, #1 + bl sub_08078850 +_0806CB66: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + adds r0, r5, #0 + bl sub_08004274 + pop {r4, r5, pc} + .align 2, 0 +_0806CB7C: .4byte gUnk_08113D84 + + thumb_func_start sub_0806CB80 +sub_0806CB80: @ 0x0806CB80 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r1, r0, #0 + cmp r1, #0 + bne _0806CB9E + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806CB9E: + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _0806CBB0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r0, #0x21 + strb r0, [r4, #0x1e] +_0806CBB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CBB4 +sub_0806CBB4: @ 0x0806CBB4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CBD6 + adds r0, #1 + strb r0, [r4, #0xc] + movs r0, #2 + strb r0, [r4, #0x14] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0x11 + bl sub_08004260 +_0806CBD6: + adds r0, r4, #0 + bl sub_08004274 + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _0806CC06 + ldrb r0, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r2, r3, #0 + ands r2, r0 + strb r2, [r4, #0x18] + adds r0, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806CC06 + adds r0, r2, #0 + ands r0, r3 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] +_0806CC06: + pop {r4, pc} + + thumb_func_start sub_0806CC08 +sub_0806CC08: @ 0x0806CC08 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #1 + beq _0806CC40 + cmp r0, #1 + bgt _0806CC1C + cmp r0, #0 + beq _0806CC22 + b _0806CCB0 +_0806CC1C: + cmp r0, #2 + beq _0806CC96 + b _0806CCB0 +_0806CC22: + 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 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 +_0806CC40: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806CC80 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806CC7C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #8 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806CCB0 + .align 2, 0 +_0806CC7C: .4byte gLinkEntity +_0806CC80: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_08004274 + b _0806CCB0 +_0806CC96: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806CCB0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_0806CCB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CCB4 +sub_0806CCB4: @ 0x0806CCB4 + push {lr} + adds r2, r1, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + beq _0806CCCA + movs r0, #1 +_0806CCCA: + str r0, [r2, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806CCD0 +sub_0806CCD0: @ 0x0806CCD0 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + adds r0, #0x5b + ldrb r0, [r0] + movs r2, #0x3f + ands r2, r0 + cmp r2, #0 + beq _0806CCF4 + ldrb r1, [r3, #0x14] + lsrs r1, r1, #1 + adds r1, r2, r1 + adds r0, r3, #0 + bl sub_08004260 + movs r0, #1 + str r0, [r4, #0x14] + b _0806CCF6 +_0806CCF4: + str r2, [r4, #0x14] +_0806CCF6: + pop {r4, pc} + + thumb_func_start sub_0806CCF8 +sub_0806CCF8: @ 0x0806CCF8 + push {lr} + movs r1, #0x85 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD04 +sub_0806CD04: @ 0x0806CD04 + push {lr} + ldr r1, _0806CD10 @ =0x0000010B + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD10: .4byte 0x0000010B + + thumb_func_start sub_0806CD14 +sub_0806CD14: @ 0x0806CD14 + push {lr} + movs r1, #0x86 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD20 +sub_0806CD20: @ 0x0806CD20 + push {lr} + ldr r1, _0806CD2C @ =0x0000010D + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD2C: .4byte 0x0000010D + + thumb_func_start sub_0806CD30 +sub_0806CD30: @ 0x0806CD30 + push {lr} + movs r1, #0x87 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD3C +sub_0806CD3C: @ 0x0806CD3C + push {lr} + ldr r1, _0806CD48 @ =0x0000010F + bl sub_0801D2B4 + pop {pc} + .align 2, 0 +_0806CD48: .4byte 0x0000010F + + thumb_func_start sub_0806CD4C +sub_0806CD4C: @ 0x0806CD4C + push {lr} + movs r1, #0x88 + lsls r1, r1, #1 + bl sub_0801D2B4 + pop {pc} + + thumb_func_start sub_0806CD58 +sub_0806CD58: @ 0x0806CD58 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806CD70 +sub_0806CD70: @ 0x0806CD70 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806CD9E + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #6 + bl sub_080042AC + b _0806CDA4 +_0806CD9E: + adds r0, r4, #0 + bl sub_080042B8 +_0806CDA4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CDA8 +sub_0806CDA8: @ 0x0806CDA8 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xc] + cmp r1, #1 + beq _0806CDE8 + cmp r1, #1 + bgt _0806CDBC + cmp r1, #0 + beq _0806CDC2 + b _0806CE58 +_0806CDBC: + cmp r1, #2 + beq _0806CE3E + b _0806CE58 +_0806CDC2: + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r1, [r0] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806CE58 +_0806CDE8: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806CE28 + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806CE24 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r1, #4 + adds r0, r4, #0 + bl sub_080042AC + adds r0, r4, #0 + bl sub_0806F118 + b _0806CE58 + .align 2, 0 +_0806CE24: .4byte gLinkEntity +_0806CE28: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + b _0806CE58 +_0806CE3E: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806CE58 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_080042AC +_0806CE58: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806CE5C +sub_0806CE5C: @ 0x0806CE5C + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08078784 + ldr r3, _0806CE7C @ =gUnk_08113F44 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + pop {r4, pc} + .align 2, 0 +_0806CE7C: .4byte gUnk_08113F44 + + thumb_func_start sub_0806CE80 +sub_0806CE80: @ 0x0806CE80 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806CEB4 @ =gUnk_02002A40 + ldrb r4, [r0, #8] + cmp r4, #5 + bne _0806CED6 + movs r0, #0x46 + bl sub_0807CA84 + cmp r0, #0 + bne _0806CEC0 + movs r0, #0x70 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806CEBC + movs r0, #0x71 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806CEB8 + movs r4, #0xb + movs r0, #0x71 + bl sub_0807CCB4 + b _0806CED6 + .align 2, 0 +_0806CEB4: .4byte gUnk_02002A40 +_0806CEB8: + movs r4, #0xc + b _0806CED6 +_0806CEBC: + movs r4, #0xa + b _0806CED6 +_0806CEC0: + movs r0, #0x89 + bl sub_0807CBD0 + cmp r0, #0 + bne _0806CED4 + movs r4, #0xd + movs r0, #0x89 + bl sub_0807CCB4 + b _0806CED6 +_0806CED4: + movs r4, #0xe +_0806CED6: + lsls r1, r4, #3 + ldr r0, _0806CEE4 @ =gUnk_08113F48 + adds r1, r1, r0 + adds r0, r5, #0 + bl sub_0806F1AC + pop {r4, r5, pc} + .align 2, 0 +_0806CEE4: .4byte gUnk_08113F48 + + thumb_func_start sub_0806CEE8 +sub_0806CEE8: @ 0x0806CEE8 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806CF0E + 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, #8 + bl sub_080042AC + b _0806CF14 +_0806CF0E: + adds r0, r2, #0 + bl sub_080042B8 +_0806CF14: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806CF18 +sub_0806CF18: @ 0x0806CF18 + push {lr} + ldr r2, _0806CF2C @ =gUnk_081140D4 + ldrb r1, [r0, #0xa] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806CF2C: .4byte gUnk_081140D4 + + thumb_func_start sub_0806CF30 +sub_0806CF30: @ 0x0806CF30 + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806CF5E + movs r0, #1 + strb r0, [r5, #0xc] + strb r0, [r5, #0xd] + ldrh r1, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x68 + strh r1, [r0] + adds r0, r5, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r5, #0 + bl sub_0806D0B0 + adds r0, r5, #0 + bl sub_0807DD64 + b _0806CF6C +_0806CF5E: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 +_0806CF6C: + ldrb r0, [r5, #0xd] + cmp r0, #2 + beq _0806CFD4 + cmp r0, #2 + bgt _0806D000 + cmp r0, #0 + blt _0806D000 + ldr r0, _0806CFCC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0806D000 + ldr r0, _0806CFD0 @ =gLinkEntity + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldrh r3, [r5, #0x2e] + movs r4, #0x2e + ldrsh r1, [r5, r4] + adds r4, r0, #0 + cmp r2, r1 + bge _0806CFA8 + adds r0, r5, #0 + adds r0, #0x68 + ldrh r0, [r0] + subs r0, #0x20 + cmp r0, r1 + bge _0806CFA8 + subs r0, r3, #1 + strh r0, [r5, #0x2e] +_0806CFA8: + movs r3, #0x2e + ldrsh r1, [r4, r3] + ldrh r2, [r5, #0x2e] + movs r4, #0x2e + ldrsh r0, [r5, r4] + cmp r1, r0 + ble _0806D000 + adds r0, r5, #0 + adds r0, #0x68 + ldrh r0, [r0] + adds r0, #0x20 + movs r3, #0x2e + ldrsh r1, [r5, r3] + cmp r0, r1 + ble _0806D000 + adds r0, r2, #1 + strh r0, [r5, #0x2e] + b _0806D000 + .align 2, 0 +_0806CFCC: .4byte gUnk_030010A0 +_0806CFD0: .4byte gLinkEntity +_0806CFD4: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D000 + bl sub_08000E50 + adds r4, r0, #0 + ldr r1, _0806D008 @ =gUnk_081140CC + movs r0, #3 + ands r0, r4 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + bl sub_080A3268 + movs r0, #7 + ands r4, r0 + lsls r4, r4, #4 + adds r4, #0x80 + strb r4, [r5, #0xe] +_0806D000: + adds r0, r5, #0 + bl sub_0806D02C + pop {r4, r5, pc} + .align 2, 0 +_0806D008: .4byte gUnk_081140CC + + thumb_func_start sub_0806D00C +sub_0806D00C: @ 0x0806D00C + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #0 + bl sub_0805EB2C + cmp r0, #0 + beq _0806D028 + str r0, [r4, #0x50] +_0806D028: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0806D02C +sub_0806D02C: @ 0x0806D02C + push {lr} + bl sub_0806D164 + ldr r2, _0806D0A8 @ =gUnk_03000F50 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #7 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2] + adds r1, r2, #0 + adds r1, #0x60 + ldr r0, _0806D0AC @ =0x00003F3F + strh r0, [r1] + adds r1, #2 + movs r0, #0x3d + strh r0, [r1] + movs r1, #0x16 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + movs r3, #0x80 + lsls r3, r3, #1 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D060 + movs r0, #0 +_0806D060: + cmp r0, #0xf0 + ble _0806D066 + movs r0, #0xf0 +_0806D066: + cmp r1, #0 + bge _0806D06C + movs r1, #0 +_0806D06C: + cmp r1, #0xf0 + ble _0806D072 + movs r1, #0xf0 +_0806D072: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5a + strh r0, [r1] + movs r1, #0x18 + ldrsh r0, [r2, r1] + rsbs r0, r0, #0 + adds r1, r0, r3 + cmp r0, #0 + bge _0806D08A + movs r0, #0 +_0806D08A: + cmp r0, #0xa0 + ble _0806D090 + movs r0, #0xa0 +_0806D090: + cmp r1, #0 + bge _0806D096 + movs r1, #0 +_0806D096: + cmp r1, #0xa0 + ble _0806D09C + movs r1, #0xa0 +_0806D09C: + lsls r0, r0, #8 + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x5e + strh r0, [r1] + pop {pc} + .align 2, 0 +_0806D0A8: .4byte gUnk_03000F50 +_0806D0AC: .4byte 0x00003F3F + + thumb_func_start sub_0806D0B0 +sub_0806D0B0: @ 0x0806D0B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _0806D0E8 @ =gUnk_0200B650 + movs r1, #0 + str r1, [r0] + movs r0, #0x30 + bl sub_0801D7EC + bl sub_0806D110 + ldr r5, _0806D0EC @ =gUnk_02002F00 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_0801D630 + cmp r4, #0 + beq _0806D0DA + adds r0, r4, #0 + bl sub_0806D164 +_0806D0DA: + ldr r0, _0806D0F0 @ =gUnk_03000F50 + ldr r1, _0806D0F4 @ =0x00001D47 + strh r1, [r0, #0x14] + str r5, [r0, #0x1c] + movs r1, #1 + strh r1, [r0, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_0806D0E8: .4byte gUnk_0200B650 +_0806D0EC: .4byte gUnk_02002F00 +_0806D0F0: .4byte gUnk_03000F50 +_0806D0F4: .4byte 0x00001D47 + + thumb_func_start sub_0806D0F8 +sub_0806D0F8: @ 0x0806D0F8 + push {lr} + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _0806D10C + bl sub_0806D0B0 +_0806D10C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D110 +sub_0806D110: @ 0x0806D110 + push {r4, r5, lr} + ldr r4, _0806D134 @ =gUnk_02002F00 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806D138 + movs r0, #0x80 + lsls r0, r0, #4 + adds r4, r4, r0 + adds r5, #0x40 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806D138 + pop {r4, r5, pc} + .align 2, 0 +_0806D134: .4byte gUnk_02002F00 + + thumb_func_start sub_0806D138 +sub_0806D138: @ 0x0806D138 + push {r4, r5, r6, lr} + adds r3, r0, #0 + movs r4, #0 + ldr r2, _0806D15C @ =0x040000D4 + ldr r6, _0806D160 @ =0x80000020 + movs r5, #0x80 + lsls r5, r5, #1 +_0806D146: + str r3, [r2] + str r1, [r2, #4] + str r6, [r2, #8] + ldr r0, [r2, #8] + adds r4, #1 + adds r3, #0x40 + adds r1, r1, r5 + cmp r4, #0x1f + bls _0806D146 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D15C: .4byte 0x040000D4 +_0806D160: .4byte 0x80000020 + + thumb_func_start sub_0806D164 +sub_0806D164: @ 0x0806D164 + push {r4, r5, r6, r7, lr} + ldr r5, _0806D1B8 @ =gUnk_03000BF0 + movs r1, #0xa + ldrsh r2, [r5, r1] + movs r3, #0x2e + ldrsh r1, [r0, r3] + subs r2, r2, r1 + adds r2, #0xa0 + ldr r4, _0806D1BC @ =gUnk_03000F50 + movs r3, #0xf + adds r1, r2, #0 + ands r1, r3 + strh r1, [r4, #0x16] + ldrh r1, [r5, #0xc] + ldrh r0, [r0, #0x32] + subs r1, r1, r0 + adds r1, #0xb0 + strh r1, [r4, #0x18] + ldr r3, _0806D1C0 @ =gUnk_02006F00 + ldr r0, _0806D1C4 @ =0xFFFFC000 + adds r6, r3, r0 + movs r5, #0x20 + lsrs r2, r2, #4 + lsls r2, r2, #2 + adds r3, r2, r3 + adds r7, r4, #0 + ldr r1, _0806D1C8 @ =0x040000D4 + ldr r4, _0806D1CC @ =0x80000020 + movs r2, #0x80 + lsls r2, r2, #1 +_0806D1A0: + str r3, [r1] + str r6, [r1, #4] + str r4, [r1, #8] + ldr r0, [r1, #8] + adds r3, r3, r2 + adds r6, #0x40 + subs r5, #1 + cmp r5, #0 + bne _0806D1A0 + movs r0, #1 + strh r0, [r7, #0x1a] + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806D1B8: .4byte gUnk_03000BF0 +_0806D1BC: .4byte gUnk_03000F50 +_0806D1C0: .4byte gUnk_02006F00 +_0806D1C4: .4byte 0xFFFFC000 +_0806D1C8: .4byte 0x040000D4 +_0806D1CC: .4byte 0x80000020 + + thumb_func_start sub_0806D1D0 +sub_0806D1D0: @ 0x0806D1D0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #0 + bne _0806D21A + bl sub_0806D00C + cmp r0, #0 + bne _0806D1E6 + bl sub_0805E780 +_0806D1E6: + movs r0, #1 + strb r0, [r4, #0xc] + 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, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r5, [r4, #0x1e] + movs r0, #0x1e + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D21A: + ldrb r0, [r4, #0xd] + cmp r0, #1 + beq _0806D25A + cmp r0, #1 + ble _0806D228 + cmp r0, #2 + beq _0806D25E +_0806D228: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + movs r5, #0xff + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D24A + bl sub_08000E50 + movs r1, #0x7f + ands r0, r1 + adds r0, #0x30 + strb r0, [r4, #0xe] + movs r0, #8 + strb r0, [r4, #0xf] + movs r0, #1 + strb r0, [r4, #0x1e] +_0806D24A: + ldrb r0, [r4, #0xf] + cmp r0, #0 + beq _0806D268 + subs r0, #1 + strb r0, [r4, #0xf] + ands r0, r5 + cmp r0, #0 + bne _0806D268 +_0806D25A: + strb r0, [r4, #0x1e] + b _0806D268 +_0806D25E: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806D268: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, r5, pc} + + thumb_func_start sub_0806D274 +sub_0806D274: @ 0x0806D274 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D2CA + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D28C + bl sub_0805E780 +_0806D28C: + movs r0, #1 + strb r0, [r4, #0xc] + 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] + movs r0, #2 + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + movs r0, #0x4c + movs r1, #3 + movs r2, #0 + bl sub_0806ED50 + cmp r0, #0 + beq _0806D2CA + str r4, [r0, #0x54] +_0806D2CA: + ldrb r0, [r4, #0xd] + cmp r0, #4 + bhi _0806D2F4 + lsls r0, r0, #2 + ldr r1, _0806D2DC @ =_0806D2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806D2DC: .4byte _0806D2E0 +_0806D2E0: @ jump table + .4byte _0806D2F4 @ case 0 + .4byte _0806D2F4 @ case 1 + .4byte _0806D31C @ case 2 + .4byte _0806D334 @ case 3 + .4byte _0806D338 @ case 4 +_0806D2F4: + ldr r0, _0806D318 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _0806D338 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D33C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + b _0806D33A + .align 2, 0 +_0806D318: .4byte gUnk_02000050 +_0806D31C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D33C + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + movs r1, #1 + eors r0, r1 + b _0806D33A +_0806D334: + movs r0, #4 + b _0806D33A +_0806D338: + movs r0, #2 +_0806D33A: + strb r0, [r4, #0x1e] +_0806D33C: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, pc} + + thumb_func_start sub_0806D348 +sub_0806D348: @ 0x0806D348 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D39A + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D360 + bl sub_0805E780 +_0806D360: + movs r0, #1 + strb r0, [r4, #0xc] + 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 r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #5 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D39A: + ldr r0, [r4, #0x54] + ldrb r0, [r0, #0x1e] + cmp r0, #4 + bne _0806D3AA + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + b _0806D3B2 +_0806D3AA: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 +_0806D3B2: + strb r0, [r4, #0x18] + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r0, [r0, #0x32] + strh r0, [r4, #0x32] + pop {r4, pc} + + thumb_func_start sub_0806D3C0 +sub_0806D3C0: @ 0x0806D3C0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D3F4 + adds r0, r4, #0 + bl sub_0806D00C + cmp r0, #0 + bne _0806D3D8 + bl sub_0805E780 +_0806D3D8: + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D3F0 @ =gUnk_080FD180 + str r0, [r4, #0x48] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD64 + b _0806D408 + .align 2, 0 +_0806D3F0: .4byte gUnk_080FD180 +_0806D3F4: + ldr r0, [r4, #0x50] + ldrh r0, [r0, #0x2e] + strh r0, [r4, #0x2e] + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 +_0806D408: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D40C +sub_0806D40C: @ 0x0806D40C + push {lr} + ldrb r1, [r0, #0x18] + movs r2, #0x40 + orrs r1, r2 + strb r1, [r0, #0x18] + bl sub_0806D41C + pop {pc} + + thumb_func_start sub_0806D41C +sub_0806D41C: @ 0x0806D41C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D45E + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #6 + strb r0, [r4, #0x1e] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #3 + bl sub_0806D4C0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + b _0806D46C +_0806D45E: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 +_0806D46C: + ldr r0, _0806D4A8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0806D4BE + movs r1, #0x2e + ldrsh r0, [r4, r1] + subs r0, #0x20 + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x40 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _0806D4AC + adds r2, r4, #0 + adds r2, #0x63 + ldrb r3, [r2] + movs r1, #0 + ldrsb r1, [r2, r1] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + ble _0806D4BE + subs r0, r3, #1 + strb r0, [r2] + b _0806D4BE + .align 2, 0 +_0806D4A8: .4byte gUnk_030010A0 +_0806D4AC: + adds r1, r4, #0 + adds r1, #0x63 + ldrb r2, [r1] + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #0 + bge _0806D4BE + adds r0, r2, #1 + strb r0, [r1] +_0806D4BE: + pop {r4, pc} + + thumb_func_start sub_0806D4C0 +sub_0806D4C0: @ 0x0806D4C0 + push {r4, r5, lr} + adds r5, r0, #0 + adds r1, #6 + movs r0, #0x4c + movs r2, #0 + bl sub_0806ED50 + adds r4, r0, #0 + cmp r4, #0 + beq _0806D4EE + str r5, [r4, #0x50] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 +_0806D4EE: + pop {r4, r5, pc} + + thumb_func_start sub_0806D4F0 +sub_0806D4F0: @ 0x0806D4F0 + push {lr} + movs r1, #0 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D4FC +sub_0806D4FC: @ 0x0806D4FC + push {lr} + movs r1, #1 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D508 +sub_0806D508: @ 0x0806D508 + push {lr} + movs r1, #2 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D514 +sub_0806D514: @ 0x0806D514 + push {lr} + movs r1, #3 + bl sub_0806D520 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D520 +sub_0806D520: @ 0x0806D520 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D540 + movs r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806D5B0 @ =gUnk_08114100 + adds r0, r3, r0 + ldrb r0, [r0] + adds r0, #6 + strb r0, [r4, #0xf] + strb r0, [r4, #0x1e] + movs r0, #8 + strb r0, [r4, #0xe] +_0806D540: + ldr r0, [r4, #0x50] + ldrh r1, [r0, #0x2e] + strh r1, [r4, #0x2e] + ldrh r1, [r0, #0x32] + strh r1, [r4, #0x32] + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x62 + strb r0, [r1] + ldr r0, [r4, #0x50] + adds r0, #0x63 + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] + ldr r0, [r4, #0x50] + ldrb r1, [r0, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806D590 + movs r1, #0x2e + ldrsh r0, [r4, r1] + lsls r1, r3, #4 + subs r0, r0, r1 + adds r0, #0xc + movs r2, #0x32 + ldrsh r1, [r4, r2] + movs r2, #0x18 + movs r3, #0x40 + bl sub_0806FBFC + cmp r0, #0 + beq _0806D5B4 +_0806D590: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + adds r0, #2 + cmp r1, r0 + bge _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0x1e] + adds r0, #1 + b _0806D5CE + .align 2, 0 +_0806D5B0: .4byte gUnk_08114100 +_0806D5B4: + ldrb r1, [r4, #0x1e] + ldrb r0, [r4, #0xf] + cmp r1, r0 + bls _0806D5D0 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806D5D0 + movs r0, #8 + strb r0, [r4, #0xe] + subs r0, r1, #1 +_0806D5CE: + strb r0, [r4, #0x1e] +_0806D5D0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D5D4 +sub_0806D5D4: @ 0x0806D5D4 + push {lr} + bl sub_08053500 + movs r0, #0xd + bl sub_0805436C + adds r1, r0, #0 + cmp r1, #2 + beq _0806D5F0 + ldr r0, _0806D5FC @ =gUnk_02002A40 + adds r0, #0xb4 + adds r0, r1, r0 + movs r1, #0 + strb r1, [r0] +_0806D5F0: + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + pop {pc} + .align 2, 0 +_0806D5FC: .4byte gUnk_02002A40 + + thumb_func_start sub_0806D600 +sub_0806D600: @ 0x0806D600 + push {lr} + movs r2, #0 + ldr r0, _0806D618 @ =gUnk_02002A40 + ldr r3, _0806D61C @ =0x00000494 + adds r0, r0, r3 + ldr r0, [r0] + cmp r0, #0 + bne _0806D612 + movs r2, #1 +_0806D612: + str r2, [r1, #0x14] + pop {pc} + .align 2, 0 +_0806D618: .4byte gUnk_02002A40 +_0806D61C: .4byte 0x00000494 + + thumb_func_start sub_0806D620 +sub_0806D620: @ 0x0806D620 + push {lr} + movs r0, #0xd + movs r1, #0 + bl sub_0807CAA0 + movs r0, #0xe + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D638 +sub_0806D638: @ 0x0806D638 + ldrh r1, [r0, #0x32] + subs r1, #0x20 + strh r1, [r0, #0x32] + bx lr + + thumb_func_start sub_0806D640 +sub_0806D640: @ 0x0806D640 + ldrh r1, [r0, #0x32] + adds r1, #0x20 + movs r2, #0 + strh r1, [r0, #0x32] + adds r0, #0x39 + strb r2, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D650 +sub_0806D650: @ 0x0806D650 + movs r1, #2 + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D658 +sub_0806D658: @ 0x0806D658 + ldr r1, [r1, #4] + strb r1, [r0, #0xd] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D660 +sub_0806D660: @ 0x0806D660 + ldrb r1, [r0, #0x1b] + movs r2, #0xc0 + orrs r1, r2 + strb r1, [r0, #0x1b] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D66C +sub_0806D66C: @ 0x0806D66C + ldrb r2, [r0, #0x1b] + movs r1, #0x3f + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + strb r1, [r0, #0x1b] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D67C +sub_0806D67C: @ 0x0806D67C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldr r4, _0806D6CC @ =gUnk_08114104 + movs r0, #0 + ldrsb r0, [r4, r0] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0806D6CA + adds r6, r1, #0 +_0806D690: + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r5, #0 + movs r2, #0x40 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6C0 + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x2e] + adds r0, r0, r2 + strh r0, [r1, #0x2e] + movs r0, #2 + ldrsb r0, [r4, r0] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldrb r0, [r4, #3] + strb r0, [r1, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #0x24] +_0806D6C0: + adds r4, #4 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, r6 + bne _0806D690 +_0806D6CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806D6CC: .4byte gUnk_08114104 + + thumb_func_start sub_0806D6D0 +sub_0806D6D0: @ 0x0806D6D0 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D6EE + movs r0, #2 + strb r0, [r1, #0xd] +_0806D6EE: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D706 + movs r0, #1 + strb r0, [r1, #0xd] +_0806D706: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D70C +sub_0806D70C: @ 0x0806D70C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0806D728 + strb r4, [r2, #0xd] +_0806D728: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r2, r0, #0 + cmp r2, #0 + beq _0806D746 + strb r4, [r2, #0xd] + ldrb r0, [r2, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x18] +_0806D746: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D74C +sub_0806D74C: @ 0x0806D74C + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D76A + movs r0, #3 + strb r0, [r1, #0xd] +_0806D76A: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D782 + movs r0, #2 + strb r0, [r1, #0xd] +_0806D782: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D788 +sub_0806D788: @ 0x0806D788 + push {r4, lr} + sub sp, #4 + movs r4, #0 + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D7A6 + movs r0, #4 + strb r0, [r1, #0xd] +_0806D7A6: + str r4, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #1 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D7BE + movs r0, #1 + strb r0, [r1, #0xd] +_0806D7BE: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D7C4 +sub_0806D7C4: @ 0x0806D7C4 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _0806D800 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + movs r2, #0 + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x18 + strh r0, [r4, #0x32] + str r2, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + cmp r0, #0 + beq _0806D7FC + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC +_0806D7FC: + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0806D800: .4byte gLinkEntity + + thumb_func_start sub_0806D804 +sub_0806D804: @ 0x0806D804 + push {r4, r5, lr} + sub sp, #4 + adds r4, r0, #0 + adds r5, r1, #0 + movs r0, #0 + str r0, [sp] + movs r0, #7 + movs r1, #0x4c + movs r2, #7 + movs r3, #2 + bl sub_0805EB2C + adds r1, r0, #0 + cmp r1, #0 + beq _0806D83A + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] +_0806D83A: + ldr r0, _0806D854 @ =gLinkEntity + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r1, #0x32 + ldrsh r3, [r0, r1] + subs r3, #0x10 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807DEDC + add sp, #4 + pop {r4, r5, pc} + .align 2, 0 +_0806D854: .4byte gLinkEntity + + thumb_func_start sub_0806D858 +sub_0806D858: @ 0x0806D858 + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #8 + orrs r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 + + thumb_func_start sub_0806D86C +sub_0806D86C: @ 0x0806D86C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806D888 + adds r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 +_0806D888: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r4, #0 + bl sub_0807DDE4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806D8A0 +sub_0806D8A0: @ 0x0806D8A0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r3, r1, #0 + movs r2, #0 + movs r0, #8 + strb r0, [r3, #0x19] + ldr r0, [r3, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r3, #8] + str r2, [r3, #0x14] + movs r2, #0x10 + ldrb r0, [r4, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _0806D8C2 + rsbs r2, r2, #0 +_0806D8C2: + ldr r1, _0806D900 @ =gLinkEntity + movs r5, #0x2e + ldrsh r0, [r1, r5] + adds r2, r2, r0 + movs r0, #0x32 + ldrsh r1, [r1, r0] + adds r1, #2 + strh r2, [r3, #0x1e] + strh r1, [r3, #0x22] + movs r3, #0x2e + ldrsh r0, [r4, r3] + subs r2, r2, r0 + movs r5, #0x32 + ldrsh r0, [r4, r5] + subs r1, r1, r0 + adds r0, r2, #0 + bl sub_080045DA + strb r0, [r4, #0x15] + ldrb r2, [r4, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0806D904 @ =gUnk_08114134 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1c + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4, #0x14] + pop {r4, r5, pc} + .align 2, 0 +_0806D900: .4byte gLinkEntity +_0806D904: .4byte gUnk_08114134 + + thumb_func_start sub_0806D908 +sub_0806D908: @ 0x0806D908 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + ldr r3, _0806D93C @ =gLinkEntity + movs r5, #0x2e + ldrsh r2, [r3, r5] + movs r5, #0x32 + ldrsh r3, [r3, r5] + bl sub_080045D4 + strb r0, [r4, #0x15] + ldrb r2, [r4, #0x14] + movs r1, #0x80 + ands r1, r2 + ldr r2, _0806D940 @ =gUnk_08114144 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x19 + adds r0, r0, r2 + ldrb r0, [r0] + orrs r1, r0 + strb r1, [r4, #0x14] + pop {r4, r5, pc} + .align 2, 0 +_0806D93C: .4byte gLinkEntity +_0806D940: .4byte gUnk_08114144 + + thumb_func_start sub_0806D944 +sub_0806D944: @ 0x0806D944 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0x18] + movs r3, #0x41 + rsbs r3, r3, #0 + ands r3, r0 + strb r3, [r2, #0x18] + ldr r0, _0806D968 @ =gLinkEntity + ldr r1, [r2, #0x2c] + ldr r0, [r0, #0x2c] + cmp r1, r0 + bgt _0806D964 + movs r1, #0x40 + adds r0, r3, #0 + orrs r0, r1 + strb r0, [r2, #0x18] +_0806D964: + pop {pc} + .align 2, 0 +_0806D968: .4byte gLinkEntity + + thumb_func_start sub_0806D96C +sub_0806D96C: @ 0x0806D96C + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x42 + movs r2, #0 + bl CreateFX + adds r2, r0, #0 + cmp r2, #0 + beq _0806D99C + adds r3, r2, #0 + adds r3, #0x29 + ldrb r1, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r3] + ldr r3, _0806D9A0 @ =0xFFE80000 + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #0 + bl sub_0806FA48 +_0806D99C: + pop {r4, pc} + .align 2, 0 +_0806D9A0: .4byte 0xFFE80000 + + thumb_func_start sub_0806D9A4 +sub_0806D9A4: @ 0x0806D9A4 + push {lr} + ldr r1, _0806D9BC @ =gLinkEntity + ldr r2, [r0, #0x2c] + ldr r0, [r1, #0x2c] + adds r3, r1, #0 + cmp r2, r0 + bgt _0806D9C0 + ldrb r1, [r3, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0806D9C6 + .align 2, 0 +_0806D9BC: .4byte gLinkEntity +_0806D9C0: + ldrb r0, [r3, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806D9C6: + strb r0, [r3, #0x18] + movs r0, #4 + strb r0, [r3, #0x14] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806D9D0 +sub_0806D9D0: @ 0x0806D9D0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806D9F8 + movs r0, #1 + strb r0, [r2, #0xc] + ldrb r1, [r2, #0x18] + subs r0, #5 + ands r0, r1 + strb r0, [r2, #0x18] + ldr r0, _0806D9F4 @ =gUnk_080FD170 + str r0, [r2, #0x48] + adds r0, r2, #0 + bl sub_0807DD50 + b _0806DA00 + .align 2, 0 +_0806D9F4: .4byte gUnk_080FD170 +_0806D9F8: + adds r0, r2, #0 + movs r1, #0 + bl sub_0807DD94 +_0806DA00: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806DA04 +sub_0806DA04: @ 0x0806DA04 + push {lr} + ldr r3, [r1, #4] + lsls r3, r3, #3 + ldr r1, _0806DA18 @ =gUnk_0811415C + adds r3, r3, r1 + ldrb r2, [r3, #4] + movs r1, #1 + bl sub_08078850 + pop {pc} + .align 2, 0 +_0806DA18: .4byte gUnk_0811415C + + thumb_func_start sub_0806DA1C +sub_0806DA1C: @ 0x0806DA1C + push {lr} + ldr r3, _0806DA34 @ =gUnk_081141A4 + ldr r2, [r1, #4] + lsls r0, r2, #2 + adds r0, r0, r3 + ldr r0, [r0] + ldr r1, _0806DA38 @ =gUnk_081141E4 + adds r2, r2, r1 + ldrb r1, [r2] + bl sub_0808091C + pop {pc} + .align 2, 0 +_0806DA34: .4byte gUnk_081141A4 +_0806DA38: .4byte gUnk_081141E4 + + thumb_func_start sub_0806DA3C +sub_0806DA3C: @ 0x0806DA3C + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xa] + subs r0, #1 + cmp r0, #0xa + bhi _0806DA84 + lsls r0, r0, #2 + ldr r1, _0806DA54 @ =_0806DA58 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DA54: .4byte _0806DA58 +_0806DA58: @ jump table + .4byte _0806DA88 @ case 0 + .4byte _0806DA8C @ case 1 + .4byte _0806DA90 @ case 2 + .4byte _0806DA94 @ case 3 + .4byte _0806DA98 @ case 4 + .4byte _0806DAA0 @ case 5 + .4byte _0806DAA0 @ case 6 + .4byte _0806DAA0 @ case 7 + .4byte _0806DAA0 @ case 8 + .4byte _0806DAA0 @ case 9 + .4byte _0806DA9C @ case 10 +_0806DA84: + movs r0, #0 + b _0806DAA6 +_0806DA88: + movs r0, #1 + b _0806DAA6 +_0806DA8C: + movs r0, #2 + b _0806DAA6 +_0806DA90: + movs r0, #3 + b _0806DAA6 +_0806DA94: + movs r0, #4 + b _0806DAA6 +_0806DA98: + movs r0, #5 + b _0806DAA6 +_0806DA9C: + movs r0, #9 + b _0806DAA6 +_0806DAA0: + adds r0, r2, #0 + bl sub_0801E99C +_0806DAA6: + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + pop {pc} + + thumb_func_start sub_0806DAAC +sub_0806DAAC: @ 0x0806DAAC + push {r4, lr} + adds r4, r1, #0 + bl sub_0806DA3C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + bl sub_0801E7F4 + str r0, [r4, #0x14] + ldr r2, _0806DACC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0806DACC: .4byte gUnk_02033280 + + thumb_func_start sub_0806DAD0 +sub_0806DAD0: @ 0x0806DAD0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806DA3C + adds r1, r0, #0 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + adds r0, r4, #0 + bl sub_08078790 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DAE8 +sub_0806DAE8: @ 0x0806DAE8 + push {lr} + ldrb r0, [r0, #0xa] + subs r0, #1 + cmp r0, #4 + bhi _0806DB3A + lsls r0, r0, #2 + ldr r1, _0806DAFC @ =_0806DB00 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DAFC: .4byte _0806DB00 +_0806DB00: @ jump table + .4byte _0806DB14 @ case 0 + .4byte _0806DB1C @ case 1 + .4byte _0806DB24 @ case 2 + .4byte _0806DB2C @ case 3 + .4byte _0806DB34 @ case 4 +_0806DB14: + movs r0, #0xee + bl sub_0807CCB4 + b _0806DB3A +_0806DB1C: + movs r0, #0xef + bl sub_0807CCB4 + b _0806DB3A +_0806DB24: + movs r0, #0xf0 + bl sub_0807CCB4 + b _0806DB3A +_0806DB2C: + movs r0, #0xf1 + bl sub_0807CCB4 + b _0806DB3A +_0806DB34: + movs r0, #0xf2 + bl sub_0807CCB4 +_0806DB3A: + movs r0, #0xcd + bl sub_080A3268 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806DB44 +sub_0806DB44: @ 0x0806DB44 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0xee + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xef + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf0 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf1 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #0xf2 + bl sub_0807CBD0 + cmp r0, #0 + beq _0806DB82 + movs r0, #1 + str r0, [r4, #0x14] +_0806DB82: + pop {r4, pc} + + thumb_func_start sub_0806DB84 +sub_0806DB84: @ 0x0806DB84 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _0806DBE4 @ =gUnk_08114154 + str r0, [r5, #0x48] + movs r0, #0x3e + movs r1, #4 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0806DBB6 + ldr r2, _0806DBE8 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + ldr r1, _0806DBEC @ =gUnk_08016030 + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0806DBB6: + movs r0, #0x3e + movs r1, #5 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0806DBE2 + movs r2, #0x80 + lsls r2, r2, #0xc + adds r0, r5, #0 + adds r1, r4, #0 + movs r3, #0 + bl sub_0806FA48 + ldr r1, _0806DBF0 @ =gUnk_0801606C + adds r0, r4, #0 + bl sub_0807DAD0 + adds r1, r4, #0 + adds r1, #0x84 + str r0, [r1] +_0806DBE2: + pop {r4, r5, pc} + .align 2, 0 +_0806DBE4: .4byte gUnk_08114154 +_0806DBE8: .4byte 0xFFF80000 +_0806DBEC: .4byte gUnk_08016030 +_0806DBF0: .4byte gUnk_0801606C + + thumb_func_start sub_0806DBF4 +sub_0806DBF4: @ 0x0806DBF4 + push {r4, lr} + adds r4, r0, #0 + cmp r4, #1 + blo _0806DC36 + cmp r4, #4 + bls _0806DC04 + cmp r4, #6 + bne _0806DC36 +_0806DC04: + movs r4, #1 + movs r0, #2 + bl sub_0807CA84 + cmp r0, #0 + beq _0806DC12 + movs r4, #2 +_0806DC12: + movs r0, #3 + bl sub_0807CA84 + cmp r0, #0 + beq _0806DC1E + movs r4, #3 +_0806DC1E: + movs r0, #4 + bl sub_0807CA84 + cmp r0, #0 + beq _0806DC2A + movs r4, #4 +_0806DC2A: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #0 + beq _0806DC36 + movs r4, #6 +_0806DC36: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DC3C +sub_0806DC3C: @ 0x0806DC3C + ldr r2, _0806DC54 @ =gUnk_02002A40 + adds r1, r2, #0 + adds r1, #0xb4 + ldrb r3, [r1] + adds r1, r0, #0 + adds r1, #0x68 + strb r3, [r1] + adds r2, #0xb5 + ldrb r1, [r2] + adds r0, #0x69 + strb r1, [r0] + bx lr + .align 2, 0 +_0806DC54: .4byte gUnk_02002A40 + + thumb_func_start sub_0806DC58 +sub_0806DC58: @ 0x0806DC58 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x68 + ldrb r0, [r0] + bl sub_0806DBF4 + movs r1, #0 + bl sub_08054414 + adds r4, #0x69 + ldrb r0, [r4] + bl sub_0806DBF4 + movs r1, #1 + bl sub_08054414 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DC7C +sub_0806DC7C: @ 0x0806DC7C + push {r4, lr} + ldr r4, _0806DC84 @ =gUnk_081141F4 + b _0806DC94 + .align 2, 0 +_0806DC84: .4byte gUnk_081141F4 +_0806DC88: + ldrh r1, [r4] + adds r4, #2 + ldr r0, _0806DC9C @ =0x00004072 + movs r2, #1 + bl sub_0807B314 +_0806DC94: + ldrh r0, [r4] + cmp r0, #0 + bne _0806DC88 + pop {r4, pc} + .align 2, 0 +_0806DC9C: .4byte 0x00004072 + + thumb_func_start sub_0806DCA0 +sub_0806DCA0: @ 0x0806DCA0 + push {r4, lr} + ldr r4, _0806DCA8 @ =gUnk_081141F4 + b _0806DCB6 + .align 2, 0 +_0806DCA8: .4byte gUnk_081141F4 +_0806DCAC: + ldrh r0, [r4] + adds r4, #2 + movs r1, #1 + bl sub_0807BA8C +_0806DCB6: + ldrh r0, [r4] + cmp r0, #0 + bne _0806DCAC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DCC0 +sub_0806DCC0: @ 0x0806DCC0 + ldr r0, _0806DCD0 @ =gUnk_030010A0 + movs r1, #0xf9 + lsls r1, r1, #3 + strh r1, [r0, #0x20] + movs r1, #0xf8 + strh r1, [r0, #0x22] + bx lr + .align 2, 0 +_0806DCD0: .4byte gUnk_030010A0 + + thumb_func_start sub_0806DCD4 +sub_0806DCD4: @ 0x0806DCD4 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806DD40 + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xa] + subs r0, #1 + cmp r0, #0xa + bhi _0806DD40 + lsls r0, r0, #2 + ldr r1, _0806DCF4 @ =_0806DCF8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806DCF4: .4byte _0806DCF8 +_0806DCF8: @ jump table + .4byte _0806DD24 @ case 0 + .4byte _0806DD24 @ case 1 + .4byte _0806DD24 @ case 2 + .4byte _0806DD24 @ case 3 + .4byte _0806DD24 @ case 4 + .4byte _0806DD2C @ case 5 + .4byte _0806DD2C @ case 6 + .4byte _0806DD2C @ case 7 + .4byte _0806DD2C @ case 8 + .4byte _0806DD2C @ case 9 + .4byte _0806DD34 @ case 10 +_0806DD24: + adds r0, r4, #0 + bl sub_0809623C + b _0806DD40 +_0806DD2C: + adds r0, r4, #0 + bl sub_08096260 + b _0806DD40 +_0806DD34: + adds r0, r4, #0 + movs r1, #0 + bl sub_0806DB84 + movs r0, #0 + str r0, [r4, #0x48] +_0806DD40: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DD44 +sub_0806DD44: @ 0x0806DD44 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806DD5A + adds r0, #1 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0xa] + adds r0, r4, #0 + bl sub_080042AC +_0806DD5A: + adds r0, r4, #0 + bl sub_080042B8 + adds r4, #0x59 + ldrb r0, [r4] + cmp r0, #0xfe + bne _0806DD74 + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x14 + strb r0, [r4] +_0806DD74: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DD78 +sub_0806DD78: @ 0x0806DD78 + push {lr} + ldr r2, _0806DD8C @ =gUnk_0811423C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806DD8C: .4byte gUnk_0811423C + + thumb_func_start sub_0806DD90 +sub_0806DD90: @ 0x0806DD90 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r7, r0, #0 + movs r0, #1 + strb r0, [r7, #0xc] + movs r0, #0x3b + bl GetProgressFlag + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r4, r1, #0x1f + movs r0, #0x3c + bl GetProgressFlag + cmp r0, #0 + beq _0806DDB8 + movs r4, #2 +_0806DDB8: + movs r0, #0x3d + bl GetProgressFlag + cmp r0, #0 + beq _0806DDC4 + movs r4, #3 +_0806DDC4: + adds r0, r7, #0 + adds r1, r4, #0 + bl sub_08004260 + movs r0, #0x2e + ldrsh r5, [r7, r0] + movs r1, #0x32 + ldrsh r4, [r7, r1] + ldr r2, _0806DEC0 @ =0x00004072 + mov sl, r2 + ldr r0, _0806DEC4 @ =gUnk_03000BF0 + mov r8, r0 + ldrh r1, [r0, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + movs r6, #0x3f + ands r1, r6 + ldrh r0, [r0, #8] + adds r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r7, #0x38 + mov sb, r7 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + adds r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + subs r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + adds r0, #0x10 + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r2, r8 + ldrh r1, [r2, #6] + subs r1, #0x18 + subs r1, r5, r1 + lsrs r1, r1, #4 + ands r1, r6 + ldrh r0, [r2, #8] + subs r0, r4, r0 + lsrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + bl sub_0800015E + mov r1, r8 + ldrh r0, [r1, #6] + subs r0, #0x18 + subs r5, r5, r0 + lsrs r5, r5, #4 + ands r5, r6 + ldrh r0, [r1, #8] + subs r0, #0x10 + subs r4, r4, r0 + lsrs r4, r4, #4 + ands r4, r6 + lsls r4, r4, #6 + orrs r5, r4 + mov r0, sb + ldrb r2, [r0] + mov r0, sl + adds r1, r5, #0 + bl sub_0800015E + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806DEC0: .4byte 0x00004072 +_0806DEC4: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806DEC8 +sub_0806DEC8: @ 0x0806DEC8 + push {lr} + bl sub_08004274 + pop {pc} + + thumb_func_start sub_0806DED0 +sub_0806DED0: @ 0x0806DED0 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806DEF8 @ =gUnk_081142BC + 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, #0xa] + cmp r0, #0 + bne _0806DEF4 + ldr r2, _0806DEFC @ =gUnk_03003F80 + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] +_0806DEF4: + pop {r4, pc} + .align 2, 0 +_0806DEF8: .4byte gUnk_081142BC +_0806DEFC: .4byte gUnk_03003F80 + + thumb_func_start sub_0806DF00 +sub_0806DF00: @ 0x0806DF00 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xa] + cmp r5, #0 + bne _0806DF5C + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0x51 + movs r1, #1 + movs r2, #0 + bl sub_0806ED50 + str r0, [r4, #0x68] + str r4, [r0, #0x50] + movs r0, #0x51 + movs r1, #1 + movs r2, #1 + bl sub_0806ED50 + str r0, [r4, #0x6c] + str r4, [r0, #0x50] + movs r0, #0x51 + movs r1, #1 + movs r2, #2 + bl sub_0806ED50 + str r0, [r4, #0x70] + str r4, [r0, #0x50] + adds r0, r4, #0 + adds r0, #0x74 + strh r5, [r0] + adds r0, #2 + movs r1, #0xa + strh r1, [r0] + ldr r0, _0806DF58 @ =gUnk_030010A0 + strh r1, [r0, #6] + adds r0, r4, #0 + bl sub_0806E014 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806DF6E + .align 2, 0 +_0806DF58: .4byte gUnk_030010A0 +_0806DF5C: + ldr r0, _0806DF70 @ =gUnk_080FD150 + str r0, [r4, #0x48] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806E0DC +_0806DF6E: + pop {r4, r5, pc} + .align 2, 0 +_0806DF70: .4byte gUnk_080FD150 + + thumb_func_start sub_0806DF74 +sub_0806DF74: @ 0x0806DF74 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0 + bl sub_0807DD94 + ldrb r0, [r4, #0xe] + cmp r0, #0xff + beq _0806DFB0 + adds r0, r4, #0 + adds r0, #0x44 + ldrb r0, [r0] + cmp r0, #0 + beq _0806DF96 + ldr r1, [r4, #0x70] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] +_0806DF96: + ldr r1, [r4, #0x68] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + ldr r1, [r4, #0x6c] + ldrb r0, [r1, #0xe] + adds r0, #1 + strb r0, [r1, #0xe] + movs r0, #0xff + strb r0, [r4, #0xe] + movs r0, #0 + bl sub_0807CD10 +_0806DFB0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806DFB4 +sub_0806DFB4: @ 0x0806DFB4 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x39 + movs r2, #0 + ldrsb r2, [r1, r2] + cmp r2, #0 + beq _0806DFD6 + movs r0, #0 + strb r0, [r1] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xb] + strb r0, [r1, #0xe] + ldr r1, [r4, #0x50] + ldrb r0, [r4, #0xf] + strb r0, [r1, #0xb] + b _0806E00C +_0806DFD6: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0806E00C + strb r2, [r4, #0xe] + ldrb r2, [r4, #0xf] + movs r0, #0x35 + movs r1, #2 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _0806DFF8 + str r4, [r1, #0x50] + str r1, [r4, #0x54] + adds r0, r4, #0 + bl sub_0806FA24 +_0806DFF8: + adds r0, r4, #0 + bl sub_080788E0 + adds r0, r4, #0 + adds r0, #0x76 + ldrh r1, [r0] + movs r0, #0x74 + movs r2, #2 + bl sub_0807B7D8 +_0806E00C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start nullsub_111 +nullsub_111: @ 0x0806E010 + bx lr + .align 2, 0 + + thumb_func_start sub_0806E014 +sub_0806E014: @ 0x0806E014 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + bl sub_08000E50 + movs r1, #0x70 + ands r1, r0 + lsrs r4, r1, #4 + movs r0, #0xff + strb r0, [r5, #0xb] + movs r0, #1 + rsbs r0, r0, #0 + adds r7, r0, #0 + strb r0, [r5, #0xe] + movs r0, #0x93 + bl sub_0807CBD0 + adds r1, r0, #0 + cmp r1, #0 + bne _0806E088 + adds r0, r5, #0 + adds r0, #0x44 + strb r1, [r0] + lsls r1, r4, #1 + ldr r0, _0806E084 @ =gUnk_081142CC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r2, r4, #0 + adds r3, r4, #0 + bl sub_0806FA48 + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xd0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl sub_0806FA48 + ldr r1, [r5, #0x70] + ldrb r0, [r1, #0xf] + orrs r0, r7 + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + adds r0, r5, #0 + bl sub_0806FA24 + b _0806E0D6 + .align 2, 0 +_0806E084: .4byte gUnk_081142CC +_0806E088: + adds r1, r5, #0 + adds r1, #0x44 + movs r0, #1 + strb r0, [r1] + lsls r1, r4, #2 + ldr r0, _0806E0D8 @ =gUnk_081142DC + adds r6, r1, r0 + ldr r1, [r5, #0x68] + ldrb r0, [r6] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x68] + movs r2, #0xe0 + lsls r2, r2, #0xe + movs r4, #0x90 + lsls r4, r4, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl sub_0806FA48 + ldr r1, [r5, #0x6c] + ldrb r0, [r6, #1] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x6c] + movs r2, #0xb0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl sub_0806FA48 + ldr r1, [r5, #0x70] + ldrb r0, [r6, #2] + strb r0, [r1, #0xf] + ldr r1, [r5, #0x70] + movs r2, #0xf0 + lsls r2, r2, #0xf + adds r0, r5, #0 + adds r3, r4, #0 + bl sub_0806FA48 +_0806E0D6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806E0D8: .4byte gUnk_081142DC + + thumb_func_start sub_0806E0DC +sub_0806E0DC: @ 0x0806E0DC + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r6, #0 + strb r6, [r4, #0xe] + ldrb r0, [r4, #0xf] + cmp r0, #0xff + beq _0806E138 + movs r0, #2 + strb r0, [r4, #0xc] + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _0806E134 @ =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, #0x76 + strh r1, [r5] + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0806E120 + bl sub_0805E7BC + str r6, [r4, #0x54] +_0806E120: + adds r0, r4, #0 + bl sub_08078828 + ldrh r1, [r5] + movs r0, #0x73 + movs r2, #2 + bl sub_0807B7D8 + b _0806E13C + .align 2, 0 +_0806E134: .4byte gUnk_03000BF0 +_0806E138: + movs r0, #3 + strb r0, [r4, #0xc] +_0806E13C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806E140 +sub_0806E140: @ 0x0806E140 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r1, #0 + ldrb r1, [r3, #0xb] + cmp r1, #0 + beq _0806E1AC + movs r0, #1 + str r0, [r5, #0x14] + adds r1, r3, #0 + adds r1, #0x74 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + adds r1, #2 + ldrh r2, [r1] + adds r0, r3, #0 + adds r0, #0x44 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0 + bne _0806E16E + lsls r0, r2, #1 + b _0806E172 +_0806E16E: + lsls r0, r2, #1 + adds r0, r0, r2 +_0806E172: + strh r0, [r4] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _0806E18C @ =0x000003E7 + cmp r0, r1 + bls _0806E194 + strh r1, [r4] + movs r0, #0 + str r0, [r5, #0x14] + ldr r0, _0806E190 @ =0x0000421B + bl sub_08056378 + b _0806E1C0 + .align 2, 0 +_0806E18C: .4byte 0x000003E7 +_0806E190: .4byte 0x0000421B +_0806E194: + ldr r0, _0806E1A4 @ =0x00004218 + bl sub_08056378 + ldr r1, _0806E1A8 @ =gUnk_02000050 + ldrh r0, [r4] + str r0, [r1, #0x10] + b _0806E1C0 + .align 2, 0 +_0806E1A4: .4byte 0x00004218 +_0806E1A8: .4byte gUnk_02000050 +_0806E1AC: + str r1, [r5, #0x14] + adds r0, r3, #0 + adds r0, #0x74 + strh r1, [r0] + adds r4, r3, #0 + adds r4, #0x76 + strh r1, [r4] + ldr r0, _0806E1D4 @ =0x0000421C + bl sub_08056378 +_0806E1C0: + ldr r1, _0806E1D8 @ =gUnk_030010A0 + ldrh r0, [r4] + strh r0, [r1, #6] + ldr r2, _0806E1DC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806E1D4: .4byte 0x0000421C +_0806E1D8: .4byte gUnk_030010A0 +_0806E1DC: .4byte gUnk_02033280 + + thumb_func_start sub_0806E1E0 +sub_0806E1E0: @ 0x0806E1E0 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806E014 + ldr r0, [r4, #0x68] + bl sub_0806E0DC + ldr r0, [r4, #0x6c] + bl sub_0806E0DC + ldr r0, [r4, #0x70] + bl sub_0806E0DC + pop {r4, pc} + + thumb_func_start sub_0806E1FC +sub_0806E1FC: @ 0x0806E1FC + push {lr} + ldr r0, _0806E208 @ =gUnk_0813AD4C + bl sub_08080840 + pop {pc} + .align 2, 0 +_0806E208: .4byte gUnk_0813AD4C + + thumb_func_start sub_0806E20C +sub_0806E20C: @ 0x0806E20C + push {r4, lr} + ldr r4, _0806E224 @ =gUnk_030010A0 + ldrh r0, [r4, #6] + cmp r0, #0 + beq _0806E230 + ldr r0, _0806E228 @ =0x0000421F + bl sub_08056378 + ldr r1, _0806E22C @ =gUnk_02000050 + ldrh r0, [r4, #6] + str r0, [r1, #0x10] + b _0806E236 + .align 2, 0 +_0806E224: .4byte gUnk_030010A0 +_0806E228: .4byte 0x0000421F +_0806E22C: .4byte gUnk_02000050 +_0806E230: + ldr r0, _0806E238 @ =0x00004220 + bl sub_08056378 +_0806E236: + pop {r4, pc} + .align 2, 0 +_0806E238: .4byte 0x00004220 + + thumb_func_start sub_0806E23C +sub_0806E23C: @ 0x0806E23C + push {lr} + ldr r1, _0806E24C @ =gUnk_030010A0 + ldrh r0, [r1, #6] + cmp r0, #0 + beq _0806E24A + bl sub_080526CC +_0806E24A: + pop {pc} + .align 2, 0 +_0806E24C: .4byte gUnk_030010A0 + + thumb_func_start sub_0806E250 +sub_0806E250: @ 0x0806E250 + push {r4, lr} + adds r4, r1, #0 + movs r0, #0 + str r0, [r4, #0x14] + movs r0, #0x31 + bl sub_0801E7F4 + cmp r0, #0 + beq _0806E266 + movs r0, #1 + str r0, [r4, #0x14] +_0806E266: + ldr r2, _0806E274 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0806E274: .4byte gUnk_02033280 + + thumb_func_start sub_0806E278 +sub_0806E278: @ 0x0806E278 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E2A8 + adds r0, #1 + strb r0, [r4, #0xc] + ldr r0, _0806E2A0 @ =gUnk_081142FC + str r0, [r4, #0x48] + adds r0, r4, #0 + bl sub_0807DD50 + ldr r3, _0806E2A4 @ =gUnk_08114304 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_08078850 + b _0806E2B0 + .align 2, 0 +_0806E2A0: .4byte gUnk_081142FC +_0806E2A4: .4byte gUnk_08114304 +_0806E2A8: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 +_0806E2B0: + ldr r0, _0806E2CC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E2D0 + ldrb r0, [r4, #0x18] + subs r1, #0x84 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + strb r1, [r4, #0x18] + b _0806E2DA + .align 2, 0 +_0806E2CC: .4byte gUnk_03003F80 +_0806E2D0: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] +_0806E2DA: + pop {r4, pc} + + thumb_func_start sub_0806E2DC +sub_0806E2DC: @ 0x0806E2DC + push {lr} + adds r3, r0, #0 + ldr r0, _0806E300 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806E2EC + movs r0, #0 +_0806E2EC: + ldrb r1, [r3, #0xb] + lsls r1, r1, #6 + lsls r0, r0, #3 + ldr r2, _0806E304 @ =gUnk_08114308 + adds r0, r0, r2 + adds r1, r1, r0 + adds r0, r3, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806E300: .4byte gUnk_02002A40 +_0806E304: .4byte gUnk_08114308 + + thumb_func_start sub_0806E308 +sub_0806E308: @ 0x0806E308 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r5, [r4, #0xc] + cmp r5, #1 + beq _0806E34C + cmp r5, #1 + bgt _0806E31C + cmp r5, #0 + beq _0806E322 + b _0806E3E0 +_0806E31C: + cmp r5, #2 + beq _0806E3C6 + b _0806E3E0 +_0806E322: + ldr r1, _0806E348 @ =gUnk_081144F0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806E3E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + strb r5, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + bl sub_0807DD50 + b _0806E3E0 + .align 2, 0 +_0806E348: .4byte gUnk_081144F0 +_0806E34C: + adds r2, r4, #0 + adds r2, #0x39 + movs r1, #0 + ldrsb r1, [r2, r1] + cmp r1, #2 + bne _0806E3BC + movs r0, #0 + strb r1, [r4, #0xc] + strb r0, [r2] + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r1, r4, #0 + adds r1, #0x69 + strb r0, [r1] + ldr r1, _0806E3B0 @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r0, #0 + adds r0, r4, #0 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08002632 + ldr r1, _0806E3B4 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r3, [r0] + adds r0, r4, #0 + adds r0, #0x68 + ldrb r0, [r0] + cmp r0, #0x32 + bne _0806E398 + adds r3, #6 +_0806E398: + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806E3B8 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + b _0806E3E0 + .align 2, 0 +_0806E3B0: .4byte gLinkEntity +_0806E3B4: .4byte gUnk_08001A7C +_0806E3B8: .4byte gUnk_03003F80 +_0806E3BC: + adds r0, r4, #0 + movs r1, #0 + bl sub_0807DD94 + b _0806E3E0 +_0806E3C6: + adds r0, r4, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E3E0 + movs r0, #1 + strb r0, [r4, #0xc] + adds r0, r4, #0 + adds r0, #0x69 + ldrb r1, [r0] + adds r0, r4, #0 + bl sub_08004260 +_0806E3E0: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E3E4 +sub_0806E3E4: @ 0x0806E3E4 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x81 + rsbs r0, r0, #0 + ands r2, r0 + adds r2, #8 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + ldrb r2, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FF88 + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + + thumb_func_start sub_0806E418 +sub_0806E418: @ 0x0806E418 + push {lr} + adds r2, r0, #0 + ldr r0, _0806E438 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + subs r0, #2 + cmp r0, #0 + bge _0806E428 + movs r0, #0 +_0806E428: + lsls r1, r0, #3 + ldr r0, _0806E43C @ =gUnk_081144FC + adds r1, r1, r0 + adds r0, r2, #0 + bl sub_0806F1AC + pop {pc} + .align 2, 0 +_0806E438: .4byte gUnk_02002A40 +_0806E43C: .4byte gUnk_081144FC + + thumb_func_start sub_0806E440 +sub_0806E440: @ 0x0806E440 + push {r4, lr} + adds r4, r0, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_08078784 + pop {r4, pc} + + thumb_func_start sub_0806E458 +sub_0806E458: @ 0x0806E458 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E498 + ldr r1, _0806E494 @ =gUnk_081144F0 + adds r0, r4, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806E49E + ldrb r0, [r4, #0xc] + adds r0, #1 + strb r0, [r4, #0xc] + 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, #2 + bl sub_0805E3A0 + adds r0, r4, #0 + movs r1, #0xa + bl sub_08004260 + b _0806E49E + .align 2, 0 +_0806E494: .4byte gUnk_081144F0 +_0806E498: + adds r0, r4, #0 + bl sub_08004274 +_0806E49E: + pop {r4, pc} + + thumb_func_start sub_0806E4A0 +sub_0806E4A0: @ 0x0806E4A0 + push {lr} + ldr r2, _0806E4B4 @ =gUnk_081145B4 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0806E4B4: .4byte gUnk_081145B4 + + thumb_func_start sub_0806E4B8 +sub_0806E4B8: @ 0x0806E4B8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080787A8 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806E4EC + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E4EC +sub_0806E4EC: @ 0x0806E4EC + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xd] + cmp r0, #0 + bne _0806E50E + adds r0, #1 + strb r0, [r5, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x3c + strb r0, [r5, #0xe] + adds r0, r5, #0 + movs r1, #0 + bl sub_080042AC +_0806E50E: + ldrb r0, [r5, #0xe] + subs r0, #1 + strb r0, [r5, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0806E552 + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E52A + movs r0, #3 + b _0806E52C +_0806E52A: + movs r0, #2 +_0806E52C: + strb r0, [r5, #0xc] + movs r0, #0 + strb r0, [r5, #0xd] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E552 + ldr r4, _0806E560 @ =gUnk_081145C8 + bl sub_08000E50 + movs r1, #3 + ands r1, r0 + lsls r1, r1, #1 + adds r1, r1, r4 + ldrh r0, [r1] + bl sub_08004488 +_0806E552: + adds r0, r5, #0 + bl sub_0806E65C + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 +_0806E560: .4byte gUnk_081145C8 + + thumb_func_start sub_0806E564 +sub_0806E564: @ 0x0806E564 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E5AA + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r2, #1 + ands r0, r2 + cmp r0, #0 + beq _0806E590 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r2 + lsls r1, r1, #6 + subs r2, #0x42 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E590: + bl sub_08000E50 + movs r1, #1 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + adds r0, r4, #0 + movs r1, #1 + bl sub_080042AC +_0806E5AA: + movs r1, #0xa0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E5D4 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E5CE + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E5D4 +_0806E5CE: + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E5D4: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E5E4 +sub_0806E5E4: @ 0x0806E5E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E622 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E612 + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E612: + bl sub_08000E50 + adds r1, r0, #0 + ands r1, r5 + adds r1, #2 + adds r0, r4, #0 + bl sub_080042AC +_0806E622: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E638 + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] +_0806E638: + adds r0, r4, #0 + bl sub_0806E65C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E648 +sub_0806E648: @ 0x0806E648 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E658 + movs r0, #1 + strb r0, [r4, #0xc] +_0806E658: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E65C +sub_0806E65C: @ 0x0806E65C + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806E6A6 + ldr r0, _0806E688 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E694 + cmp r2, #2 + bne _0806E68C + movs r0, #4 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806E698 + .align 2, 0 +_0806E688: .4byte gUnk_03003F80 +_0806E68C: + adds r0, r4, #0 + bl sub_0806E6A8 + b _0806E698 +_0806E694: + bl sub_080791D0 +_0806E698: + movs r0, #0xd5 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806E6A6: + pop {r4, pc} + + thumb_func_start sub_0806E6A8 +sub_0806E6A8: @ 0x0806E6A8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0 + bl sub_08002632 + ldr r1, _0806E6D4 @ =gUnk_02002A40 + ldr r2, _0806E6D8 @ =0x000001C1 + adds r1, r1, r2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0xf3 + bne _0806E6C2 + movs r5, #1 +_0806E6C2: + ldr r0, _0806E6DC @ =gUnk_081145D0 + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r4, #0 + bl sub_08056398 + pop {r4, r5, pc} + .align 2, 0 +_0806E6D4: .4byte gUnk_02002A40 +_0806E6D8: .4byte 0x000001C1 +_0806E6DC: .4byte gUnk_081145D0 + + thumb_func_start sub_0806E6E0 +sub_0806E6E0: @ 0x0806E6E0 + push {lr} + adds r2, r0, #0 + ldrb r0, [r2, #0xc] + cmp r0, #0 + bne _0806E706 + 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, #1 + bl sub_080042AC + b _0806E70C +_0806E706: + adds r0, r2, #0 + bl sub_080042B8 +_0806E70C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806E710 +sub_0806E710: @ 0x0806E710 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806E72C @ =gUnk_081145D4 + 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_0806ED78 + pop {r4, pc} + .align 2, 0 +_0806E72C: .4byte gUnk_081145D4 + + thumb_func_start sub_0806E730 +sub_0806E730: @ 0x0806E730 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + adds r0, #1 + movs r5, #0 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0801E99C + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] + ldrb r1, [r1] + adds r0, r4, #0 + bl sub_080787A8 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805E3A0 + strb r5, [r4, #0xd] + adds r0, r4, #0 + bl sub_0806E764 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806E764 +sub_0806E764: @ 0x0806E764 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r5, r0, #0 + cmp r5, #0 + bne _0806E782 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r1, #0x1f + ands r0, r1 + adds r0, #0x1e + strb r0, [r4, #0xe] + strb r5, [r4, #0x1e] +_0806E782: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E7A8 + movs r0, #2 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _0806E7A8 + movs r0, #0xd6 + bl sub_08004488 +_0806E7A8: + adds r0, r4, #0 + bl sub_0806E838 + pop {r4, r5, pc} + + thumb_func_start sub_0806E7B0 +sub_0806E7B0: @ 0x0806E7B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + cmp r0, #0 + bne _0806E7F2 + adds r0, #1 + strb r0, [r4, #0xd] + bl sub_08000E50 + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0806E7DE + ldrb r0, [r4, #0x18] + lsls r1, r0, #0x19 + lsrs r1, r1, #0x1f + eors r1, r5 + lsls r1, r1, #6 + movs r2, #0x41 + rsbs r2, r2, #0 + ands r2, r0 + orrs r2, r1 + strb r2, [r4, #0x18] +_0806E7DE: + bl sub_08000E50 + movs r1, #3 + ands r0, r1 + adds r0, #1 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + strb r5, [r4, #0x1e] +_0806E7F2: + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E81C + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _0806E816 + movs r0, #1 + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + b _0806E81C +_0806E816: + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E81C: + adds r0, r4, #0 + bl sub_0806E838 + pop {r4, r5, pc} + + thumb_func_start sub_0806E824 +sub_0806E824: @ 0x0806E824 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806F148 + cmp r0, #0 + beq _0806E834 + movs r0, #1 + strb r0, [r4, #0xc] +_0806E834: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806E838 +sub_0806E838: @ 0x0806E838 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + beq _0806E882 + ldr r0, _0806E864 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806E870 + cmp r2, #2 + bne _0806E868 + movs r0, #3 + strb r0, [r4, #0xc] + adds r0, r4, #0 + bl sub_0806F118 + b _0806E874 + .align 2, 0 +_0806E864: .4byte gUnk_03003F80 +_0806E868: + adds r0, r4, #0 + bl sub_0806E884 + b _0806E874 +_0806E870: + bl sub_080791D0 +_0806E874: + movs r0, #0xd6 + bl sub_080A3268 + adds r1, r4, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] +_0806E882: + pop {r4, pc} + + thumb_func_start sub_0806E884 +sub_0806E884: @ 0x0806E884 + push {lr} + adds r1, r0, #0 + ldr r0, _0806E890 @ =0x00000DB6 + bl sub_08056398 + pop {pc} + .align 2, 0 +_0806E890: .4byte 0x00000DB6 + + thumb_func_start sub_0806E894 +sub_0806E894: @ 0x0806E894 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0 + bne _0806E8B6 + adds r0, #1 + strb r0, [r4, #0xc] + 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, #1 + strb r0, [r4, #0x1e] + b _0806E8CA +_0806E8B6: + movs r1, #0xc0 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _0806E8CA + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] +_0806E8CA: + pop {r4, pc} + + thumb_func_start sub_0806E8CC +sub_0806E8CC: @ 0x0806E8CC + push {lr} + adds r3, r0, #0 + ldr r2, _0806E8EC @ =gUnk_080B313C + ldrb r1, [r3, #0xf] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #8 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _0806E8F0 + adds r0, r3, #0 + bl _call_via_r1 + b _0806E8F4 + .align 2, 0 +_0806E8EC: .4byte gUnk_080B313C +_0806E8F0: + bl sub_0805E780 +_0806E8F4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806E8F8 +sub_0806E8F8: @ 0x0806E8F8 + push {lr} + adds r3, r0, #0 + ldr r2, _0806E918 @ =gUnk_080B313C + ldrb r1, [r3, #0xf] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r2, #4 + adds r0, r0, r2 + ldr r1, [r0] + cmp r1, #0 + beq _0806E916 + adds r0, r3, #0 + bl _call_via_r1 +_0806E916: + pop {pc} + .align 2, 0 +_0806E918: .4byte gUnk_080B313C + + thumb_func_start sub_0806E91C +sub_0806E91C: @ 0x0806E91C + push {r4, r5, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xc] + cmp r0, #0 + bne _0806E950 + adds r0, #1 + strb r0, [r5, #0xc] + 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 r1, r5, #0 + adds r1, #0x68 + movs r4, #0 + movs r0, #1 + strh r0, [r1] + adds r1, #2 + ldr r0, _0806E960 @ =0x0000FFFF + strh r0, [r1] + adds r0, r5, #0 + bl sub_0807DD64 + strb r4, [r5, #0x1e] +_0806E950: + adds r0, r5, #0 + movs r1, #0 + bl sub_0807DDAC + adds r0, r5, #0 + bl sub_0807DDE4 + pop {r4, r5, pc} + .align 2, 0 +_0806E960: .4byte 0x0000FFFF + + thumb_func_start sub_0806E964 +sub_0806E964: @ 0x0806E964 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r2, r1, #0 + ldr r0, _0806E984 @ =gUnk_03000FF0 + mov r8, r0 + ldrh r1, [r0, #2] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0806E988 + bl sub_08050384 + b _0806EAAA + .align 2, 0 +_0806E984: .4byte gUnk_03000FF0 +_0806E988: + ldrb r0, [r2, #0x18] + adds r1, r0, #0 + mov r6, sb + adds r6, #0x6c + mov r7, sb + adds r7, #0x68 + cmp r1, #0 + bne _0806E9A8 + adds r0, #1 + strb r0, [r2, #0x18] + strh r1, [r6] + movs r2, #0 + ldrsh r1, [r7, r2] + mov r0, sb + bl sub_0806EABC +_0806E9A8: + movs r5, #0x1c + movs r0, #0x55 + bl GetProgressFlag + cmp r0, #0 + beq _0806E9B6 + movs r5, #0x34 +_0806E9B6: + movs r0, #0 + ldrsh r4, [r7, r0] + mov r2, r8 + ldrh r1, [r2, #2] + movs r2, #0xc0 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806E9E4 + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806E9D4 + adds r4, #1 + b _0806E9D6 +_0806E9D4: + subs r4, #1 +_0806E9D6: + cmp r4, #0 + bgt _0806E9DC + adds r4, r5, #0 +_0806E9DC: + cmp r4, r5 + ble _0806EA0A + movs r4, #1 + b _0806EA0A +_0806E9E4: + mov r0, r8 + ldrh r1, [r0, #4] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806EA0A + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806E9FC + adds r4, #1 + b _0806E9FE +_0806E9FC: + subs r4, #1 +_0806E9FE: + cmp r4, #0 + bgt _0806EA04 + movs r4, #1 +_0806EA04: + cmp r4, r5 + ble _0806EA0A + adds r4, r5, #0 +_0806EA0A: + movs r1, #0 + ldrsh r0, [r7, r1] + cmp r4, r0 + beq _0806EA28 + mov r0, sb + adds r1, r4, #0 + bl sub_0806EABC + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + ble _0806EA28 + subs r0, r1, #1 + strh r0, [r6] +_0806EA28: + strh r4, [r7] + ldr r0, _0806EA74 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0806EA86 + mov r5, sb + adds r5, #0x6a + lsls r0, r4, #0x10 + asrs r0, r0, #0x10 + movs r2, #0 + ldrsh r1, [r5, r2] + cmp r0, r1 + bne _0806EA4E + movs r1, #0 + ldrsh r0, [r6, r1] + cmp r0, #0 + bne _0806EA7C +_0806EA4E: + ldr r4, _0806EA78 @ =gUnk_081145E4 + movs r2, #0 + ldrsh r0, [r7, r2] + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0 + ldrsh r0, [r0, r1] + bl sub_080A3268 + ldrh r0, [r7] + strh r0, [r5] + movs r2, #0 + ldrsh r0, [r7, r2] + lsls r0, r0, #2 + adds r4, #2 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r6] + b _0806EA86 + .align 2, 0 +_0806EA74: .4byte gUnk_03000FF0 +_0806EA78: .4byte gUnk_081145E4 +_0806EA7C: + ldr r0, _0806EAB4 @ =0x80010000 + bl sub_080A3268 + movs r0, #0 + strh r0, [r5] +_0806EA86: + ldrh r1, [r6] + movs r2, #0 + ldrsh r0, [r6, r2] + cmp r0, #0 + ble _0806EAA4 + subs r0, r1, #1 + movs r1, #0 + strh r0, [r6] + lsls r0, r0, #0x10 + cmp r0, #0 + bgt _0806EAA4 + mov r0, sb + adds r0, #0x6a + strh r1, [r0] + strh r1, [r6] +_0806EAA4: + ldr r1, _0806EAB8 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0806EAAA: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806EAB4: .4byte 0x80010000 +_0806EAB8: .4byte gUnk_02033280 + + thumb_func_start sub_0806EABC +sub_0806EABC: @ 0x0806EABC + push {r4, lr} + adds r4, r1, #0 + bl sub_08050384 + ldr r1, _0806EAE0 @ =gUnk_020227E8 + ldr r2, _0806EAE4 @ =0x00202020 + adds r0, r4, #0 + bl sub_08057044 + ldr r0, _0806EAE8 @ =0x00003302 + ldr r1, _0806EAEC @ =gUnk_081146B8 + bl sub_0805F46C + ldr r1, _0806EAF0 @ =gUnk_03000F50 + movs r0, #1 + strh r0, [r1, #0xe] + pop {r4, pc} + .align 2, 0 +_0806EAE0: .4byte gUnk_020227E8 +_0806EAE4: .4byte 0x00202020 +_0806EAE8: .4byte 0x00003302 +_0806EAEC: .4byte gUnk_081146B8 +_0806EAF0: .4byte gUnk_03000F50 + + thumb_func_start sub_0806EAF4 +sub_0806EAF4: @ 0x0806EAF4 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _0806EB48 + ldr r1, _0806EBA0 @ =gUnk_081146D0 + adds r0, r6, #0 + bl sub_0806FDEC + cmp r0, #0 + beq _0806EBA8 + ldrb r0, [r6, #0xc] + adds r0, #1 + strb r0, [r6, #0xc] + ldrb r1, [r6, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r6, #0x18] + ldrb r2, [r6, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + strb r0, [r6, #0x19] + adds r3, r6, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r2 + strb r0, [r3] + ldrb r0, [r6, #0x1b] + ands r1, r0 + movs r0, #0x40 + orrs r1, r0 + strb r1, [r6, #0x1b] + movs r0, #0x78 + strh r0, [r6, #0x2e] + movs r0, #0x10 + strh r0, [r6, #0x32] +_0806EB48: + ldr r7, [r6, #0x50] + cmp r7, #0 + beq _0806EBA4 + adds r0, r7, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r4, [r0, r1] + movs r5, #0x96 + lsls r5, r5, #2 + adds r0, r4, #0 + adds r1, r5, #0 + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x68 + strh r0, [r1] + adds r0, r4, #0 + adds r1, r5, #0 + bl __modsi3 + adds r4, r0, #0 + movs r1, #0x3c + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x6a + strh r0, [r1] + adds r0, r4, #0 + movs r1, #0x3c + bl __modsi3 + movs r1, #6 + bl __divsi3 + adds r1, r6, #0 + adds r1, #0x6c + strh r0, [r1] + ldr r0, [r7, #4] + cmp r0, #0 + bne _0806EBA8 + bl sub_0805E780 + b _0806EBA8 + .align 2, 0 +_0806EBA0: .4byte gUnk_081146D0 +_0806EBA4: + bl sub_0805E780 +_0806EBA8: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0806EBAC +sub_0806EBAC: @ 0x0806EBAC + push {r4, lr} + adds r4, r0, #0 + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + adds r0, #0x68 + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #0 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x6a + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #1 + bl sub_0806FF60 + adds r0, r4, #0 + adds r0, #0x6c + movs r1, #0 + ldrsh r2, [r0, r1] + adds r0, r4, #0 + movs r1, #2 + bl sub_0806FF60 + adds r0, r4, #0 + movs r1, #3 + movs r2, #0xa + bl sub_0806FF60 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + movs r3, #0 + bl sub_0806FFBC + movs r2, #4 + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #1 + movs r3, #0 + bl sub_0806FFBC + adds r0, r4, #0 + movs r1, #2 + movs r2, #0xc + movs r3, #0 + bl sub_0806FFBC + adds r0, r4, #0 + bl sub_0807000C + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EC20 +sub_0806EC20: @ 0x0806EC20 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x58 + movs r1, #0 + movs r2, #0 + bl sub_0806ED50 + cmp r0, #0 + beq _0806EC34 + str r4, [r0, #0x50] +_0806EC34: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EC38 +sub_0806EC38: @ 0x0806EC38 + push {lr} + movs r0, #7 + movs r1, #0x58 + movs r2, #7 + bl sub_0805EB00 + cmp r0, #0 + beq _0806EC4C + bl sub_0805E7BC +_0806EC4C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EC50 +sub_0806EC50: @ 0x0806EC50 + push {lr} + adds r3, r0, #0 + ldrb r0, [r3, #9] + lsls r0, r0, #3 + ldr r1, _0806EC74 @ =gUnk_08114AE4 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #3 + ands r0, r1 + cmp r0, #2 + bne _0806EC6E + ldrb r0, [r3, #0xa] + lsls r0, r0, #3 + ldr r1, [r2, #4] + adds r2, r1, r0 +_0806EC6E: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0806EC74: .4byte gUnk_08114AE4 + + thumb_func_start sub_0806EC78 +sub_0806EC78: @ 0x0806EC78 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806ED4A + adds r0, r4, #0 + bl sub_0806EC50 + adds r5, r0, #0 + ldrb r1, [r5] + movs r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0806ECA2 + ldrb r1, [r4, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x10] + b _0806ED4A +_0806ECA2: + 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 _0806ECC0 + cmp r0, #2 + bne _0806ECCA + adds r0, r4, #0 + adds r0, #0x60 + strh r2, [r0] + b _0806ECD0 +_0806ECC0: + adds r0, r4, #0 + movs r2, #0 + bl sub_080AE008 + b _0806ECD0 +_0806ECCA: + adds r0, r4, #0 + bl sub_080ADF80 +_0806ECD0: + ldrh r0, [r5, #4] + lsls r0, r0, #0x16 + lsrs r1, r0, #0x16 + adds r0, r4, #0 + bl sub_0801D040 + 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, _0806ED4C @ =gUnk_08114EE4 + ldrb r0, [r5, #1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + str r0, [r4, #0x48] + ldrb r1, [r4, #0x10] + movs r0, #1 + orrs r0, r1 + strb r0, [r4, #0x10] + movs r1, #0xff + adds r0, r4, #0 + adds r0, #0x58 + strb r1, [r0] + strb r1, [r4, #0x1e] + adds r0, r4, #0 + bl sub_08016A04 +_0806ED4A: + pop {r4, r5, pc} + .align 2, 0 +_0806ED4C: .4byte gUnk_08114EE4 + + thumb_func_start sub_0806ED50 +sub_0806ED50: @ 0x0806ED50 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + bl sub_0805E678 + adds r4, r0, #0 + cmp r4, #0 + beq _0806ED74 + movs r0, #7 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + movs r1, #7 + bl sub_0805EA2C +_0806ED74: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806ED78 +sub_0806ED78: @ 0x0806ED78 + push {r4, lr} + bl sub_0800445C + adds r4, r0, #0 + cmp r4, #0 + beq _0806ED94 + ldr r0, _0806ED98 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0806ED94 + bl sub_08077B20 +_0806ED94: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0806ED98: .4byte gUnk_03003F80 + + thumb_func_start sub_0806ED9C +sub_0806ED9C: @ 0x0806ED9C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r3, r2, #0 + movs r6, #1 + rsbs r6, r6, #0 + ldr r1, _0806EDC0 @ =gLinkEntity + adds r2, r4, #0 + bl sub_080041A0 + cmp r0, #0 + beq _0806EDBC + adds r0, r5, #0 + bl sub_0806EDC4 + adds r6, r0, #0 +_0806EDBC: + adds r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806EDC0: .4byte gLinkEntity + + thumb_func_start sub_0806EDC4 +sub_0806EDC4: @ 0x0806EDC4 + push {lr} + ldr r1, _0806EDD4 @ =gLinkEntity + bl sub_080045C4 + bl sub_0806F5A4 + pop {pc} + .align 2, 0 +_0806EDD4: .4byte gLinkEntity + + thumb_func_start sub_0806EDD8 +sub_0806EDD8: @ 0x0806EDD8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r3, r2, #0 + movs r7, #1 + rsbs r7, r7, #0 + ldr r6, _0806EE00 @ =gLinkEntity + adds r1, r6, #0 + adds r2, r4, #0 + bl sub_080041A0 + cmp r0, #0 + beq _0806EDFC + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_080045C4 + adds r7, r0, #0 +_0806EDFC: + adds r0, r7, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806EE00: .4byte gLinkEntity + + thumb_func_start sub_0806EE04 +sub_0806EE04: @ 0x0806EE04 + adds r3, r0, #0 + str r1, [r3, #0x54] + adds r0, #0x3c + movs r1, #0 + strb r2, [r0] + adds r0, #3 + strb r1, [r0] + adds r2, r3, #0 + adds r2, #0x46 + movs r0, #0 + strh r1, [r2] + strb r0, [r3, #0x16] + bx lr + .align 2, 0 + + thumb_func_start sub_0806EE20 +sub_0806EE20: @ 0x0806EE20 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0806EE4C + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _0806EE66 + ldr r1, _0806EE48 @ =gUnk_08114EFC + ldrb r0, [r4, #0x16] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + b _0806EE68 + .align 2, 0 +_0806EE48: .4byte gUnk_08114EFC +_0806EE4C: + adds r1, r4, #0 + adds r1, #0x46 + movs r0, #8 + strh r0, [r1] + ldr r1, _0806EE6C @ =gLinkEntity + adds r0, r4, #0 + bl sub_080045C4 + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] +_0806EE66: + movs r0, #0 +_0806EE68: + pop {r4, pc} + .align 2, 0 +_0806EE6C: .4byte gLinkEntity + + thumb_func_start sub_0806EE70 +sub_0806EE70: @ 0x0806EE70 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #8 + bls _0806EE92 + movs r0, #0 + strh r0, [r1] + adds r0, r4, #0 + bl sub_0806EF14 +_0806EE92: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + mov r1, sp + bl sub_0806EF4C + mov r0, sp + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + bl sub_080041DC + adds r1, r0, #0 + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r0, #0 + bge _0806EEB8 + rsbs r0, r0, #0 +_0806EEB8: + lsrs r0, r0, #3 + cmp r0, r1 + bhi _0806EEC2 + movs r0, #0 + b _0806EECA +_0806EEC2: + adds r0, r4, #0 + movs r1, #3 + bl sub_0806EF74 +_0806EECA: + add sp, #4 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806EED0 +sub_0806EED0: @ 0x0806EED0 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x46 + ldrh r0, [r1] + subs r0, #1 + strh r0, [r1] + lsls r0, r0, #0x10 + cmp r0, #0 + beq _0806EEE8 + movs r0, #0 + b _0806EEF0 +_0806EEE8: + adds r0, r2, #0 + movs r1, #2 + bl sub_0806EF74 +_0806EEF0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EEF4 +sub_0806EEF4: @ 0x0806EEF4 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806EF08 + movs r0, #0 + b _0806EF10 +_0806EF08: + adds r0, r2, #0 + movs r1, #1 + bl sub_0806EF74 +_0806EF10: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EF14 +sub_0806EF14: @ 0x0806EF14 + push {r4, lr} + sub sp, #4 + adds r4, r0, #0 + mov r1, sp + bl sub_0806EF4C + mov r0, sp + ldrh r1, [r0] + ldrh r2, [r0, #2] + adds r0, r4, #0 + bl sub_080045B4 + strb r0, [r4, #0x15] + adds r0, r4, #0 + adds r0, #0x3c + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0806EF48 + ldrb r0, [r4, #0x15] + bl sub_0806F5A4 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] +_0806EF48: + add sp, #4 + pop {r4, pc} + + thumb_func_start sub_0806EF4C +sub_0806EF4C: @ 0x0806EF4C + push {r4, lr} + adds r2, r0, #0 + adds r2, #0x3f + ldrb r2, [r2] + lsls r2, r2, #1 + ldr r3, [r0, #0x54] + adds r3, r3, r2 + ldr r2, _0806EF70 @ =gUnk_03000BF0 + ldrh r0, [r3, #2] + ldrh r4, [r2, #6] + adds r0, r0, r4 + strh r0, [r1] + ldrh r0, [r3, #4] + ldrh r2, [r2, #8] + adds r0, r0, r2 + strh r0, [r1, #2] + pop {r4, pc} + .align 2, 0 +_0806EF70: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806EF74 +sub_0806EF74: @ 0x0806EF74 + push {lr} + adds r3, r0, #0 + adds r3, #0x3f + ldrb r2, [r3] + adds r2, r2, r1 + strb r2, [r3] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806EF88 +sub_0806EF88: @ 0x0806EF88 + push {lr} + adds r1, r0, #0 + adds r1, #0x3f + ldrb r2, [r1] + lsls r2, r2, #1 + ldr r1, [r0, #0x54] + adds r1, r1, r2 + ldr r3, _0806EFA8 @ =gUnk_08114F0C + ldrb r2, [r1] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0806EFA8: .4byte gUnk_08114F0C + + thumb_func_start sub_0806EFAC +sub_0806EFAC: @ 0x0806EFAC + push {lr} + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + + thumb_func_start sub_0806EFBC +sub_0806EFBC: @ 0x0806EFBC + movs r1, #1 + strb r1, [r0, #0x16] + adds r0, #0x46 + movs r1, #8 + strh r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 + + thumb_func_start sub_0806EFCC +sub_0806EFCC: @ 0x0806EFCC + movs r2, #2 + strb r2, [r0, #0x16] + ldrh r1, [r1, #2] + adds r0, #0x46 + strh r1, [r0] + movs r0, #0 + bx lr + .align 2, 0 + + thumb_func_start sub_0806EFDC +sub_0806EFDC: @ 0x0806EFDC + push {lr} + adds r3, r0, #0 + ldrh r0, [r1] + lsrs r0, r0, #8 + cmp r0, #0 + beq _0806EFF4 + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfe + ands r0, r1 + b _0806EFFE +_0806EFF4: + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #1 + orrs r0, r1 +_0806EFFE: + strb r0, [r2] + adds r1, r3, #0 + adds r1, #0x3f + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r3, #0 + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F014 +sub_0806F014: @ 0x0806F014 + push {lr} + ldrh r1, [r1, #2] + strh r1, [r0, #0x24] + adds r2, r0, #0 + adds r2, #0x3f + ldrb r1, [r2] + adds r1, #2 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F02C +sub_0806F02C: @ 0x0806F02C + push {lr} + ldrh r1, [r1] + lsrs r1, r1, #8 + adds r2, r0, #0 + adds r2, #0x3e + strb r1, [r2] + adds r2, #1 + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F048 +sub_0806F048: @ 0x0806F048 + movs r1, #3 + strb r1, [r0, #0x16] + movs r0, #0 + bx lr + + thumb_func_start sub_0806F050 +sub_0806F050: @ 0x0806F050 + push {lr} + adds r1, #2 + str r1, [r0, #0x54] + adds r2, r0, #0 + adds r2, #0x3f + movs r1, #0 + strb r1, [r2] + bl sub_0806EF88 + pop {pc} + + thumb_func_start sub_0806F064 +sub_0806F064: @ 0x0806F064 + movs r2, #0 + strb r2, [r0, #0x16] + adds r0, #0x3f + ldrb r2, [r0] + adds r2, #1 + strb r2, [r0] + ldrh r0, [r1] + lsrs r0, r0, #8 + bx lr + .align 2, 0 + + thumb_func_start sub_0806F078 +sub_0806F078: @ 0x0806F078 + push {lr} + adds r2, r0, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r1, r0 + beq _0806F0A0 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _0806F096 + adds r0, r2, #0 + bl sub_080042AC + b _0806F09C +_0806F096: + adds r0, r2, #0 + bl sub_08004260 +_0806F09C: + movs r0, #1 + b _0806F0A2 +_0806F0A0: + movs r0, #0 +_0806F0A2: + pop {pc} + + thumb_func_start sub_0806F0A4 +sub_0806F0A4: @ 0x0806F0A4 + push {r4, r5, r6, r7, lr} + sub sp, #4 + ldr r7, _0806F114 @ =gUnk_03003DA8 + ldr r5, [r7, #4] + movs r0, #0 + cmp r5, r7 + beq _0806F0BA +_0806F0B2: + adds r0, #1 + ldr r5, [r5, #4] + cmp r5, r7 + bne _0806F0B2 +_0806F0BA: + cmp r0, #1 + bls _0806F10E + ldr r5, [r7, #4] + cmp r5, r7 + beq _0806F10E + movs r2, #1 +_0806F0C6: + ldrb r1, [r5, #0x10] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F108 + ldrb r1, [r5, #0x17] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F108 + ldr r4, [r5, #4] + cmp r4, r7 + beq _0806F108 + movs r6, #1 +_0806F0E2: + ldrb r1, [r4, #0x10] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F102 + ldrb r1, [r4, #0x17] + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F102 + adds r0, r5, #0 + adds r1, r4, #0 + str r2, [sp] + bl sub_08004484 + ldr r2, [sp] +_0806F102: + ldr r4, [r4, #4] + cmp r4, r7 + bne _0806F0E2 +_0806F108: + ldr r5, [r5, #4] + cmp r5, r7 + bne _0806F0C6 +_0806F10E: + add sp, #4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806F114: .4byte gUnk_03003DA8 + + thumb_func_start sub_0806F118 +sub_0806F118: @ 0x0806F118 + push {r4, lr} + adds r4, r0, #0 + bl sub_08002632 + ldr r1, _0806F140 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r0, #2] + ldrh r3, [r0, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0806F144 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + pop {r4, pc} + .align 2, 0 +_0806F140: .4byte gUnk_08001A7C +_0806F144: .4byte gUnk_03003F80 + + thumb_func_start sub_0806F148 +sub_0806F148: @ 0x0806F148 + push {r4, lr} + bl sub_0801E00C + movs r4, #1 + rsbs r4, r4, #0 + ldr r0, _0806F164 @ =gUnk_02022740 + ldrb r0, [r0] + cmp r0, #1 + beq _0806F172 + cmp r0, #2 + beq _0806F168 + movs r4, #0 + b _0806F17E + .align 2, 0 +_0806F164: .4byte gUnk_02022740 +_0806F168: + ldr r0, _0806F184 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + movs r4, #1 +_0806F172: + bl sub_0807919C + ldr r0, _0806F184 @ =gUnk_03003F80 + adds r0, #0x8b + movs r1, #1 + strb r1, [r0] +_0806F17E: + adds r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_0806F184: .4byte gUnk_03003F80 + + thumb_func_start sub_0806F188 +sub_0806F188: @ 0x0806F188 + push {lr} + bl sub_08002632 + adds r1, r0, #0 + cmp r1, #0 + beq _0806F1A0 + ldr r0, _0806F1A4 @ =gUnk_02002A40 + ldr r2, _0806F1A8 @ =0x000001C1 + adds r0, r0, r2 + adds r0, r1, r0 + movs r1, #0xf3 + strb r1, [r0] +_0806F1A0: + pop {pc} + .align 2, 0 +_0806F1A4: .4byte gUnk_02002A40 +_0806F1A8: .4byte 0x000001C1 + + thumb_func_start sub_0806F1AC +sub_0806F1AC: @ 0x0806F1AC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r6, r1, #0 + ldrh r1, [r6, #2] + asrs r7, r1, #4 + movs r0, #1 + ands r7, r0 + movs r0, #0xf + ands r1, r0 + cmp r1, #6 + bls _0806F1C8 + b _0806F332 +_0806F1C8: + lsls r0, r1, #2 + ldr r1, _0806F1D4 @ =_0806F1D8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F1D4: .4byte _0806F1D8 +_0806F1D8: @ jump table + .4byte _0806F332 @ case 0 + .4byte _0806F342 @ case 1 + .4byte _0806F1F4 @ case 2 + .4byte _0806F24E @ case 3 + .4byte _0806F2BA @ case 4 + .4byte _0806F324 @ case 5 + .4byte _0806F336 @ case 6 +_0806F1F4: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F210 @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #1 + beq _0806F22A + cmp r1, #1 + bgt _0806F214 + cmp r1, #0 + beq _0806F21A + b _0806F248 + .align 2, 0 +_0806F210: .4byte 0x00000FFF +_0806F214: + cmp r1, #2 + beq _0806F23A + b _0806F248 +_0806F21A: + adds r0, r4, #0 + bl sub_0807CC3C + adds r5, r0, #0 +_0806F222: + adds r0, r4, #0 + bl sub_0807CD10 + b _0806F248 +_0806F22A: + adds r0, r4, #0 + bl sub_0807CBD0 + adds r5, r0, #0 +_0806F232: + adds r0, r4, #0 + bl sub_0807CCB4 + b _0806F248 +_0806F23A: + adds r0, r4, #0 + bl GetProgressFlag + adds r5, r0, #0 + adds r0, r4, #0 + bl sub_0807CD04 +_0806F248: + cmp r5, #0 + beq _0806F342 + b _0806F34C +_0806F24E: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F26C @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #1 + beq _0806F28A + cmp r1, #1 + bgt _0806F270 + cmp r1, #0 + beq _0806F276 + b _0806F248 + .align 2, 0 +_0806F26C: .4byte 0x00000FFF +_0806F270: + cmp r1, #2 + beq _0806F29E + b _0806F248 +_0806F276: + adds r0, r4, #0 + bl sub_0807CC3C + adds r5, r0, #0 + cmp r5, #0 + beq _0806F222 + adds r0, r4, #0 + bl sub_0807CD8C + b _0806F248 +_0806F28A: + adds r0, r4, #0 + bl sub_0807CBD0 + adds r5, r0, #0 + cmp r5, #0 + beq _0806F232 + adds r0, r4, #0 + bl sub_0807CD34 + b _0806F248 +_0806F29E: + adds r0, r4, #0 + bl GetProgressFlag + adds r5, r0, #0 + cmp r5, #0 + bne _0806F2B2 + adds r0, r4, #0 + bl sub_0807CD04 + b _0806F248 +_0806F2B2: + adds r0, r4, #0 + bl sub_0807CD80 + b _0806F248 +_0806F2BA: + ldr r4, [r6] + asrs r1, r4, #0xc + movs r0, #0xf + ands r1, r0 + ldr r0, _0806F2D8 @ =0x00000FFF + ands r4, r0 + movs r5, #0 + cmp r1, #4 + bhi _0806F248 + lsls r0, r1, #2 + ldr r1, _0806F2DC @ =_0806F2E0 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0806F2D8: .4byte 0x00000FFF +_0806F2DC: .4byte _0806F2E0 +_0806F2E0: @ jump table + .4byte _0806F2F4 @ case 0 + .4byte _0806F2FC @ case 1 + .4byte _0806F304 @ case 2 + .4byte _0806F30C @ case 3 + .4byte _0806F314 @ case 4 +_0806F2F4: + adds r0, r4, #0 + bl sub_0807CC3C + b _0806F320 +_0806F2FC: + adds r0, r4, #0 + bl sub_0807CBD0 + b _0806F320 +_0806F304: + adds r0, r4, #0 + bl GetProgressFlag + b _0806F320 +_0806F30C: + adds r0, r4, #0 + bl sub_0801E7F4 + b _0806F320 +_0806F314: + adds r0, r4, #0 + bl sub_0807CA84 + cmp r0, #0 + beq _0806F320 + movs r0, #1 +_0806F320: + adds r5, r0, #0 + b _0806F248 +_0806F324: + ldr r1, [r6, #4] + cmp r1, #0 + beq _0806F332 + mov r0, r8 + bl _call_via_r1 + b _0806F35E +_0806F332: + movs r0, #0 + b _0806F34E +_0806F336: + ldr r0, _0806F348 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0806F34C +_0806F342: + ldrh r0, [r6, #6] + b _0806F34E + .align 2, 0 +_0806F348: .4byte gUnk_03003F80 +_0806F34C: + ldrh r0, [r6, #4] +_0806F34E: + cmp r7, #0 + beq _0806F35A + mov r1, r8 + bl sub_08056398 + b _0806F35E +_0806F35A: + bl sub_08056378 +_0806F35E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806F364 +sub_0806F364: @ 0x0806F364 + push {lr} + ldr r2, _0806F384 @ =gUnk_02033A90 + ldrb r0, [r2, #8] + movs r1, #0x80 + eors r0, r1 + strb r0, [r2, #8] + ldrb r1, [r2, #8] + adds r0, r1, #7 + asrs r0, r0, #3 + ldr r3, _0806F388 @ =0x00000868 + adds r1, r2, r3 + adds r0, r0, r1 + movs r1, #0x10 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_0806F384: .4byte gUnk_02033A90 +_0806F388: .4byte 0x00000868 + + thumb_func_start sub_0806F38C +sub_0806F38C: @ 0x0806F38C + ldr r0, _0806F398 @ =gUnk_02033A90 + ldrb r1, [r0, #8] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #8] + bx lr + .align 2, 0 +_0806F398: .4byte gUnk_02033A90 + + thumb_func_start sub_0806F39C +sub_0806F39C: @ 0x0806F39C + push {r4, lr} + adds r3, r0, #0 + ldr r2, _0806F3B8 @ =gLinkEntity + ldrb r1, [r2, #0x14] + movs r0, #2 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0806F3BC + movs r0, #0x2e + ldrsh r1, [r3, r0] + movs r2, #0x2e + ldrsh r0, [r4, r2] + b _0806F3C4 + .align 2, 0 +_0806F3B8: .4byte gLinkEntity +_0806F3BC: + movs r0, #0x32 + ldrsh r1, [r3, r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] +_0806F3C4: + subs r1, r1, r0 + cmp r1, #0 + bge _0806F3CC + rsbs r1, r1, #0 +_0806F3CC: + cmp r1, #0x40 + bgt _0806F3D4 + movs r0, #0 + b _0806F3E2 +_0806F3D4: + movs r0, #0x24 + ldrsh r1, [r3, r0] + ldrb r2, [r3, #0x15] + adds r0, r4, #0 + bl sub_080027EA + movs r0, #1 +_0806F3E2: + pop {r4, pc} + + thumb_func_start sub_0806F3E4 +sub_0806F3E4: @ 0x0806F3E4 + push {r4, r5, r6, lr} + sub sp, #0x88 + adds r5, r0, #0 + ldr r2, _0806F408 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1c] + movs r0, #0x7f + ands r0, r1 + cmp r0, #1 + bne _0806F4E0 + ldrb r0, [r2, #0x1d] + cmp r0, #2 + beq _0806F420 + cmp r0, #2 + bgt _0806F40C + cmp r0, #1 + beq _0806F416 + b _0806F410 + .align 2, 0 +_0806F408: .4byte gUnk_03003F80 +_0806F40C: + cmp r0, #3 + beq _0806F42A +_0806F410: + adds r3, r5, #0 + adds r3, #0x46 + b _0806F436 +_0806F416: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0x40 + b _0806F432 +_0806F420: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0x80 + b _0806F432 +_0806F42A: + adds r1, r5, #0 + adds r1, #0x46 + ldrh r0, [r1] + adds r0, #0xc0 +_0806F432: + strh r0, [r1] + adds r3, r1, #0 +_0806F436: + adds r2, r3, #0 + ldrh r0, [r2] + movs r1, #0xa0 + lsls r1, r1, #3 + cmp r0, r1 + bls _0806F444 + strh r1, [r2] +_0806F444: + ldr r6, _0806F4BC @ =gLinkEntity + ldrb r0, [r6, #0x14] + movs r1, #0xe + ands r1, r0 + ldr r0, _0806F4C0 @ =gUnk_08126EE4 + adds r1, r1, r0 + mov r2, sp + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r4, [r6, #0x2e] + adds r0, r0, r4 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r6, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] + ldrh r4, [r3] + adds r0, r5, #0 + mov r1, sp + bl sub_080045C4 + adds r2, r0, #0 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806F5BC + mov r0, sp + adds r1, r5, #0 + movs r2, #4 + movs r3, #4 + bl sub_0800419C + cmp r0, #0 + beq _0806F4E0 + ldrb r0, [r5, #0x1c] + movs r1, #0xf + ands r1, r0 + cmp r1, #2 + bne _0806F4C8 + movs r0, #3 + strb r0, [r5, #0xd] + str r5, [r6, #0x70] + ldr r1, _0806F4C4 @ =gUnk_03003F80 + movs r0, #7 + strb r0, [r1, #0x1c] + movs r0, #0x11 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + cmp r0, #0 + beq _0806F4B4 + str r5, [r0, #0x54] + str r0, [r5, #0x50] +_0806F4B4: + movs r0, #0xed + bl sub_080A3268 + b _0806F4D8 + .align 2, 0 +_0806F4BC: .4byte gLinkEntity +_0806F4C0: .4byte gUnk_08126EE4 +_0806F4C4: .4byte gUnk_03003F80 +_0806F4C8: + cmp r1, #1 + bne _0806F4D8 + ldr r0, _0806F4DC @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + strb r1, [r0, #0xa] + movs r0, #0xef + bl sub_080A3268 +_0806F4D8: + movs r0, #1 + b _0806F4E2 + .align 2, 0 +_0806F4DC: .4byte gUnk_03003F80 +_0806F4E0: + movs r0, #0 +_0806F4E2: + add sp, #0x88 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F4E8 +sub_0806F4E8: @ 0x0806F4E8 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0x1d] + movs r2, #3 + ands r2, r0 + cmp r2, #1 + beq _0806F516 + cmp r2, #1 + bgt _0806F500 + cmp r2, #0 + beq _0806F510 + b _0806F51C +_0806F500: + cmp r2, #2 + beq _0806F50A + cmp r2, #3 + beq _0806F516 + b _0806F51C +_0806F50A: + adds r1, #0x62 + movs r0, #0xfe + b _0806F51A +_0806F510: + adds r1, #0x62 + movs r0, #2 + b _0806F51A +_0806F516: + adds r1, #0x62 + movs r0, #0 +_0806F51A: + strb r0, [r1] +_0806F51C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806F520 +sub_0806F520: @ 0x0806F520 + push {lr} + adds r2, r0, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0x93 + beq _0806F544 + adds r3, r2, #0 + adds r3, #0x3a + ldrb r1, [r3] + movs r0, #0xfb + ands r0, r1 + movs r1, #0 + strb r0, [r3] + adds r0, r2, #0 + adds r0, #0x63 + strb r1, [r0] + movs r0, #0 + b _0806F546 +_0806F544: + movs r0, #1 +_0806F546: + pop {pc} + + thumb_func_start sub_0806F548 +sub_0806F548: @ 0x0806F548 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080041A0 + cmp r0, #0 + bne _0806F55A + movs r0, #0 + b _0806F562 +_0806F55A: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806F58C +_0806F562: + pop {r4, r5, pc} + + thumb_func_start sub_0806F564 +sub_0806F564: @ 0x0806F564 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + adds r3, r2, #0 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + adds r2, r5, #0 + bl sub_080045D4 + bl sub_0806F5A4 + movs r2, #0 + ldrb r1, [r4, #0x14] + cmp r1, r0 + bne _0806F588 + movs r2, #1 +_0806F588: + adds r0, r2, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0806F58C +sub_0806F58C: @ 0x0806F58C + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FCA0 + movs r2, #0 + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + cmp r1, r0 + bne _0806F5A0 + movs r2, #1 +_0806F5A0: + adds r0, r2, #0 + pop {r4, pc} + + thumb_func_start sub_0806F5A4 +sub_0806F5A4: @ 0x0806F5A4 + ldr r1, _0806F5AC @ =gUnk_08114F38 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0806F5AC: .4byte gUnk_08114F38 + + thumb_func_start sub_0806F5B0 +sub_0806F5B0: @ 0x0806F5B0 + ldr r1, _0806F5B8 @ =gUnk_08114F58 + adds r0, r0, r1 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0806F5B8: .4byte gUnk_08114F58 + + thumb_func_start sub_0806F5BC +sub_0806F5BC: @ 0x0806F5BC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _0806F620 + ldr r0, _0806F628 @ =gUnk_080C9160 + mov r8, r0 + lsls r4, r2, #3 + lsls r0, r2, #4 + add r0, r8 + movs r2, #0 + ldrsh r0, [r0, r2] + lsls r5, r1, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r6, #0x80 + lsls r6, r6, #1 + adds r1, r6, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x2c] + adds r1, r1, r0 + str r1, [r7, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, r8 + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r6, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r7, #0x30] + subs r1, r1, r0 + str r1, [r7, #0x30] +_0806F620: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806F628: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F62C +sub_0806F62C: @ 0x0806F62C + push {r4, r5, r6, lr} + mov r6, sb + mov r5, r8 + push {r5, r6} + adds r6, r0, #0 + adds r5, r1, #0 + adds r4, r2, #0 + ldr r0, _0806F698 @ =gUnk_080C9160 + mov sb, r0 + lsls r4, r4, #0x18 + lsrs r4, r4, #0x18 + lsls r0, r4, #1 + add r0, sb + movs r1, #0 + ldrsh r0, [r0, r1] + lsls r5, r5, #0x10 + asrs r5, r5, #0x10 + adds r1, r5, #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 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + adds r4, #0x40 + lsls r4, r4, #1 + add r4, sb + movs r1, #0 + ldrsh r0, [r4, r1] + adds r1, r5, #0 + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + mov r1, r8 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F698: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F69C +sub_0806F69C: @ 0x0806F69C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldrb r1, [r6, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806F6FE + ldr r5, _0806F700 @ =gUnk_080C9160 + ldrb r0, [r6, #0x15] + lsls r0, r0, #4 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0x24 + ldrsh r1, [r6, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x2c] + adds r1, r1, r0 + str r1, [r6, #0x2c] + ldrb r0, [r6, #0x15] + lsls r0, r0, #4 + adds r0, #0x80 + adds r0, r0, r5 + movs r1, #0 + ldrsh r0, [r0, r1] + movs r2, #0x24 + ldrsh r1, [r6, r2] + bl sub_0806F9EC + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + adds r1, r4, #0 + bl sub_0806FA04 + lsls r0, r0, #0x10 + asrs r0, r0, #8 + ldr r1, [r6, #0x30] + subs r1, r1, r0 + str r1, [r6, #0x30] +_0806F6FE: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F700: .4byte gUnk_080C9160 + + thumb_func_start sub_0806F704 +sub_0806F704: @ 0x0806F704 + push {r4, r5, r6, lr} + lsls r3, r1, #4 + movs r2, #0xfc + lsls r2, r2, #2 + adds r6, r2, #0 + ands r3, r6 + movs r5, #8 + orrs r3, r5 + ldr r4, _0806F72C @ =gUnk_03000BF0 + ldrh r2, [r4, #6] + adds r2, r2, r3 + strh r2, [r0, #0x2e] + lsrs r1, r1, #2 + ands r1, r6 + orrs r1, r5 + ldrh r2, [r4, #8] + adds r2, r2, r1 + strh r2, [r0, #0x32] + pop {r4, r5, r6, pc} + .align 2, 0 +_0806F72C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806F730 +sub_0806F730: @ 0x0806F730 + push {r4, r5, r6, lr} + movs r6, #0x3f + movs r1, #0x2e + ldrsh r2, [r0, r1] + ldr r4, [r0, #0x48] + movs r1, #0 + ldrsb r1, [r4, r1] + adds r2, r2, r1 + ldr r3, _0806F764 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r5, r2, r1 + movs r2, #0x32 + ldrsh r1, [r0, r2] + movs r2, #1 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + ldrh r2, [r3, #8] + subs r1, r1, r2 + ldrb r0, [r0, #0x14] + cmp r0, #2 + beq _0806F77E + cmp r0, #2 + bgt _0806F768 + cmp r0, #0 + beq _0806F772 + b _0806F788 + .align 2, 0 +_0806F764: .4byte gUnk_03000BF0 +_0806F768: + cmp r0, #4 + beq _0806F778 + cmp r0, #6 + beq _0806F784 + b _0806F788 +_0806F772: + ldrb r0, [r4, #5] + subs r1, r1, r0 + b _0806F788 +_0806F778: + ldrb r0, [r4, #5] + adds r1, r1, r0 + b _0806F788 +_0806F77E: + ldrb r0, [r4, #2] + adds r5, r5, r0 + b _0806F788 +_0806F784: + ldrb r0, [r4, #2] + subs r5, r5, r0 +_0806F788: + lsrs r0, r5, #4 + ands r0, r6 + lsrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + adds r0, r0, r1 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F798 +sub_0806F798: @ 0x0806F798 + push {r4, r5, lr} + adds r2, r0, #0 + movs r1, #0x2e + ldrsh r0, [r2, r1] + ldr r4, [r2, #0x48] + movs r1, #0 + ldrsb r1, [r4, r1] + adds r0, r0, r1 + ldr r3, _0806F7CC @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r0, r0, r1 + movs r5, #0x32 + ldrsh r1, [r2, r5] + movs r2, #1 + ldrsb r2, [r4, r2] + adds r1, r1, r2 + ldrh r2, [r3, #8] + subs r1, r1, r2 + movs r2, #0x3f + lsrs r0, r0, #4 + ands r0, r2 + lsrs r1, r1, #4 + ands r1, r2 + lsls r1, r1, #6 + adds r0, r0, r1 + pop {r4, r5, pc} + .align 2, 0 +_0806F7CC: .4byte gUnk_03000BF0 + + thumb_func_start sub_0806F7D0 +sub_0806F7D0: @ 0x0806F7D0 + push {r4, lr} + ldr r4, _0806F7E4 @ =gUnk_02025EB0 + bl sub_0806F730 + ldr r1, _0806F7E8 @ =0x00002004 + adds r4, r4, r1 + adds r0, r0, r4 + ldrb r0, [r0] + pop {r4, pc} + .align 2, 0 +_0806F7E4: .4byte gUnk_02025EB0 +_0806F7E8: .4byte 0x00002004 + + thumb_func_start sub_0806F7EC +sub_0806F7EC: @ 0x0806F7EC + push {r4, lr} + ldr r4, _0806F800 @ =gUnk_02025EB0 + bl sub_0806F730 + lsls r0, r0, #1 + adds r4, #4 + adds r0, r0, r4 + ldrh r0, [r0] + pop {r4, pc} + .align 2, 0 +_0806F800: .4byte gUnk_02025EB0 + + thumb_func_start sub_0806F804 +sub_0806F804: @ 0x0806F804 + lsrs r0, r0, #4 + movs r2, #0x3f + ands r0, r2 + movs r2, #0xfc + lsls r2, r2, #2 + ands r2, r1 + lsls r2, r2, #2 + adds r0, r0, r2 + ldr r1, _0806F820 @ =gUnk_02025EB0 + lsls r0, r0, #1 + adds r1, #4 + adds r0, r0, r1 + ldrh r0, [r0] + bx lr + .align 2, 0 +_0806F820: .4byte gUnk_02025EB0 + + thumb_func_start sub_0806F824 +sub_0806F824: @ 0x0806F824 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + adds r4, r2, #0 + adds r5, r3, #0 + movs r2, #0x2e + ldrsh r6, [r0, r2] + movs r2, #0x32 + ldrsh r3, [r0, r2] + mov r8, r3 + movs r3, #0x2e + ldrsh r2, [r1, r3] + adds r2, r2, r4 + movs r0, #0x32 + ldrsh r3, [r1, r0] + adds r3, r3, r5 + adds r0, r6, #0 + mov r1, r8 + bl sub_080045D4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F854 +sub_0806F854: @ 0x0806F854 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r3, r1, #0 + adds r6, r2, #0 + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _0806F8D6 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806F8D6 + movs r1, #0x2e + ldrsh r0, [r4, r1] + adds r0, r0, r3 + ldr r2, _0806F8BC @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r5, #0x3f + ands r0, r5 + movs r3, #0x32 + ldrsh r1, [r4, r3] + adds r1, r1, r6 + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r5 + lsls r1, r1, #6 + orrs r0, r1 + movs r1, #2 + movs r2, #8 + bl sub_080002F0 + cmp r0, #0 + beq _0806F8C0 + ldrb r1, [r4, #0x19] + adds r0, r5, #0 + ands r0, r1 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r1, [r4, #0x1b] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] + movs r0, #1 + b _0806F8D8 + .align 2, 0 +_0806F8BC: .4byte gUnk_03000BF0 +_0806F8C0: + ldrb r1, [r4, #0x19] + adds r0, r5, #0 + ands r0, r1 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r1, [r4, #0x1b] + adds r0, r5, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x1b] +_0806F8D6: + movs r0, #0 +_0806F8D8: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806F8DC +sub_0806F8DC: @ 0x0806F8DC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x38 + ldrb r1, [r5] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0806F942 + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #4 + movs r2, #2 + bl sub_080002A4 + cmp r0, #0 + beq _0806F91C + ldrb r2, [r4, #0x19] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r4, #0x19] + ldrb r0, [r4, #0x1b] + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x1b] + movs r0, #1 + b _0806F944 +_0806F91C: + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #4 + ldrb r2, [r5] + bl sub_080002A4 + 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] +_0806F942: + movs r0, #0 +_0806F944: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806F948 +sub_0806F948: @ 0x0806F948 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0806F974 @ =gUnk_03003F80 + ldrb r0, [r1, #0xd] + cmp r0, #0xff + beq _0806F994 + ldrb r0, [r1, #0xd] + lsrs r3, r0, #2 + movs r0, #1 + ands r0, r3 + cmp r0, #0 + beq _0806F978 + ldrb r2, [r4, #0x14] + subs r0, r2, #1 + subs r0, r3, r0 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + bne _0806F978 + adds r0, r2, #0 + b _0806F996 + .align 2, 0 +_0806F974: .4byte gUnk_03003F80 +_0806F978: + movs r2, #0 + cmp r3, #4 + bls _0806F980 + movs r2, #1 +_0806F980: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + movs r0, #6 + ands r3, r0 + strb r3, [r4, #0x14] +_0806F994: + ldrb r0, [r4, #0x14] +_0806F996: + pop {r4, pc} + + thumb_func_start sub_0806F998 +sub_0806F998: @ 0x0806F998 + push {r4, lr} + adds r2, r0, #0 + ldrb r4, [r2, #0x14] + ldrb r1, [r2, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0806F9E6 + movs r0, #0x1c + ands r0, r1 + lsrs r3, r0, #2 + movs r1, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0806F9C4 + subs r0, r3, r4 + adds r0, #1 + movs r1, #4 + ands r0, r1 + cmp r0, #0 + beq _0806F9E6 +_0806F9C4: + ldrb r0, [r2, #0x15] + lsrs r0, r0, #2 + movs r1, #0x7e + ands r0, r1 + strb r0, [r2, #0x14] + adds r4, r0, #0 + cmp r4, #4 + bhi _0806F9DE + ldrb r1, [r2, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + b _0806F9E4 +_0806F9DE: + ldrb r0, [r2, #0x18] + movs r1, #0x40 + orrs r0, r1 +_0806F9E4: + strb r0, [r2, #0x18] +_0806F9E6: + adds r0, r4, #0 + 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 sub_0806FA48 + pop {pc} + + thumb_func_start sub_0806FA30 +sub_0806FA30: @ 0x0806FA30 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_0806FA48 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FAB0 + pop {r4, r5, pc} + + thumb_func_start sub_0806FA48 +sub_0806FA48: @ 0x0806FA48 + push {r4, lr} + ldr r4, [r0, #0x2c] + adds r4, r4, r2 + str r4, [r1, #0x2c] + ldr r2, [r0, #0x30] + adds r2, r2, r3 + str r2, [r1, #0x30] + ldr r2, [r0, #0x34] + str r2, [r1, #0x34] + adds r0, #0x38 + ldrb r2, [r0] + adds r0, r1, #0 + adds r0, #0x38 + strb r2, [r0] + adds r0, r1, #0 + bl sub_08016A04 + pop {r4, pc} + + thumb_func_start sub_0806FA6C +sub_0806FA6C: @ 0x0806FA6C + push {lr} + adds r2, r0, #0 + adds r2, #0x62 + ldrb r2, [r2] + adds r3, r1, #0 + adds r3, #0x62 + strb r2, [r3] + adds r2, r0, #0 + adds r2, #0x63 + ldrb r2, [r2] + adds r3, #1 + strb r2, [r3] + movs r2, #0 + movs r3, #0 + bl sub_0806FA48 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0806FA90 +sub_0806FA90: @ 0x0806FA90 + push {r4, r5, lr} + adds r4, r0, #0 + adds r4, #0x62 + ldrb r4, [r4] + movs r5, #0x62 + strb r4, [r5, r1] + adds r4, r0, #0 + adds r4, #0x63 + ldrb r4, [r4] + movs r5, #0x63 + strb r4, [r5, r1] + lsls r2, r2, #0x10 + lsls r3, r3, #0x10 + bl sub_0806FA48 + pop {r4, r5, pc} + + thumb_func_start sub_0806FAB0 +sub_0806FAB0: @ 0x0806FAB0 + ldr r2, _0806FAD4 @ =gUnk_08114F78 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x29 + movs r2, #7 + ands r2, r0 + ldrb r3, [r1] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0806FAD4: .4byte gUnk_08114F78 + + thumb_func_start sub_0806FAD8 +sub_0806FAD8: @ 0x0806FAD8 + ldr r2, _0806FAFC @ =gUnk_08114F80 + adds r0, #0x29 + ldrb r0, [r0] + lsls r0, r0, #0x1d + lsrs r0, r0, #0x1d + adds r0, r0, r2 + ldrb r0, [r0] + adds r1, #0x29 + movs r2, #7 + ands r2, r0 + ldrb r3, [r1] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0806FAFC: .4byte gUnk_08114F80 + + thumb_func_start sub_0806FB00 +sub_0806FB00: @ 0x0806FB00 + push {r4, lr} + mov ip, r0 + adds r4, r1, #0 + cmp r3, #0 + bne _0806FB0C + movs r3, #1 +_0806FB0C: + mov r1, ip + adds r1, #0x7e + movs r0, #0 + strb r0, [r1] + mov r0, ip + adds r0, #0x7f + strb r3, [r0] + mov r0, ip + ldrh r1, [r0, #0x2e] + adds r0, #0x80 + strh r1, [r0] + mov r1, ip + ldrh r0, [r1, #0x32] + adds r1, #0x82 + strh r0, [r1] + mov r0, ip + adds r0, #0x84 + strh r4, [r0] + adds r0, #2 + strh r2, [r0] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806FB38 +sub_0806FB38: @ 0x0806FB38 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r5, #0 + adds r6, #0x7e + adds r7, r5, #0 + adds r7, #0x7f + ldrb r0, [r6] + ldrb r1, [r7] + cmp r0, r1 + bhs _0806FBA0 + adds r0, #1 + strb r0, [r6] + adds r0, r5, #0 + adds r0, #0x84 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r4, r5, #0 + adds r4, #0x80 + movs r2, #0 + ldrsh r0, [r4, r2] + subs r1, r1, r0 + ldrb r0, [r6] + muls r0, r1, r0 + lsls r0, r0, #8 + ldrb r1, [r7] + bl __divsi3 + asrs r0, r0, #8 + ldrh r4, [r4] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x86 + movs r2, #0 + ldrsh r1, [r0, r2] + adds r4, r5, #0 + adds r4, #0x82 + movs r2, #0 + ldrsh r0, [r4, r2] + subs r1, r1, r0 + ldrb r0, [r6] + muls r0, r1, r0 + lsls r0, r0, #8 + ldrb r1, [r7] + bl __divsi3 + asrs r0, r0, #8 + ldrh r4, [r4] + adds r0, r0, r4 + strh r0, [r5, #0x32] + movs r0, #0 + b _0806FBB2 +_0806FBA0: + adds r0, r5, #0 + adds r0, #0x84 + ldrh r0, [r0] + strh r0, [r5, #0x2e] + adds r0, r5, #0 + adds r0, #0x86 + ldrh r0, [r0] + strh r0, [r5, #0x32] + movs r0, #1 +_0806FBB2: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0806FBB4 +sub_0806FBB4: @ 0x0806FBB4 + push {lr} + adds r1, r0, #0 + ldr r0, _0806FBD0 @ =gUnk_030010A0 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0806FBC8 + ldr r0, _0806FBD4 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _0806FBCC +_0806FBC8: + movs r0, #6 + strb r0, [r1, #0xd] +_0806FBCC: + pop {pc} + .align 2, 0 +_0806FBD0: .4byte gUnk_030010A0 +_0806FBD4: .4byte gUnk_03003F80 + + thumb_func_start sub_0806FBD8 +sub_0806FBD8: @ 0x0806FBD8 + push {r4, lr} + adds r4, r0, #0 + bl sub_0806FBEC + movs r0, #0xc + bl sub_0801D8E0 + str r0, [r4, #0x48] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806FBEC +sub_0806FBEC: @ 0x0806FBEC + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x48] + bl sub_0801DA0C + movs r0, #0 + str r0, [r4, #0x48] + pop {r4, pc} + + thumb_func_start sub_0806FBFC +sub_0806FBFC: @ 0x0806FBFC + push {r4, r5, r6, lr} + adds r5, r3, #0 + ldr r4, _0806FC20 @ =gLinkEntity + movs r6, #0x2e + ldrsh r3, [r4, r6] + subs r3, r3, r0 + movs r6, #0x32 + ldrsh r0, [r4, r6] + subs r0, r0, r1 + movs r1, #0 + cmp r3, r2 + bhs _0806FC1A + cmp r0, r5 + bhs _0806FC1A + movs r1, #1 +_0806FC1A: + adds r0, r1, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0806FC20: .4byte gLinkEntity + + thumb_func_start sub_0806FC24 +sub_0806FC24: @ 0x0806FC24 + push {r4, lr} + adds r4, r1, #0 + ldr r1, _0806FC44 @ =gUnk_080046A4 + bl sub_08007DD6 + cmp r0, #0 + beq _0806FC4C + lsls r0, r0, #3 + ldr r1, _0806FC48 @ =gUnk_080047F6 + adds r0, r0, r1 + ldrh r0, [r0] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + b _0806FC4E + .align 2, 0 +_0806FC44: .4byte gUnk_080046A4 +_0806FC48: .4byte gUnk_080047F6 +_0806FC4C: + movs r0, #0 +_0806FC4E: + pop {r4, pc} + + thumb_func_start sub_0806FC50 +sub_0806FC50: @ 0x0806FC50 + push {r4, lr} + adds r4, r1, #0 + ldr r1, _0806FC74 @ =gUnk_080046A4 + bl sub_08007DD6 + cmp r0, #0 + beq _0806FC70 + ldr r1, _0806FC78 @ =gUnk_080047F6 + lsls r0, r0, #3 + adds r2, r0, r1 + ldrh r0, [r2] + asrs r0, r4 + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0806FC7C +_0806FC70: + movs r0, #0 + b _0806FC7E + .align 2, 0 +_0806FC74: .4byte gUnk_080046A4 +_0806FC78: .4byte gUnk_080047F6 +_0806FC7C: + adds r0, r2, #0 +_0806FC7E: + pop {r4, pc} + + thumb_func_start sub_0806FC80 +sub_0806FC80: @ 0x0806FC80 + push {r4, r5, lr} + lsls r4, r2, #4 + movs r2, #0x2e + ldrsh r3, [r1, r2] + movs r5, #0x32 + ldrsh r2, [r1, r5] + adds r1, r3, #0 + bl sub_080041DC + cmp r4, r0 + bhs _0806FC9A + movs r0, #0 + b _0806FC9C +_0806FC9A: + movs r0, #1 +_0806FC9C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0806FCA0 +sub_0806FCA0: @ 0x0806FCA0 + push {lr} + bl sub_080045C4 + bl sub_0806F5A4 + pop {pc} + + thumb_func_start sub_0806FCAC +sub_0806FCAC: @ 0x0806FCAC + push {lr} + bl sub_080045C4 + bl sub_0806F5B0 + pop {pc} + + thumb_func_start sub_0806FCB8 +sub_0806FCB8: @ 0x0806FCB8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r5, #0x2e + ldrsh r0, [r4, r5] + subs r0, r0, r1 + movs r5, #0x32 + ldrsh r1, [r4, r5] + subs r1, r1, r2 + adds r2, r3, #0 + bl sub_0806FCD0 + pop {r4, r5, pc} + + thumb_func_start sub_0806FCD0 +sub_0806FCD0: @ 0x0806FCD0 + push {r4, lr} + movs r3, #0 + adds r4, r2, #0 + muls r4, r2, r4 + adds r2, r4, #0 + adds r4, r0, #0 + muls r4, r0, r4 + adds r0, r4, #0 + adds r4, r1, #0 + muls r4, r1, r4 + adds r1, r4, #0 + adds r0, r0, r1 + cmp r2, r0 + blt _0806FCEE + movs r3, #1 +_0806FCEE: + adds r0, r3, #0 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0806FCF4 +sub_0806FCF4: @ 0x0806FCF4 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r2, #0 + adds r5, r3, #0 + movs r2, #0 + cmp r1, #0 + bge _0806FD04 + rsbs r1, r1, #0 +_0806FD04: + cmp r4, #0 + beq _0806FD1A + movs r0, #0x80 + lsls r0, r0, #9 + bl __divsi3 + adds r1, r0, #0 + adds r0, r4, #0 + muls r0, r1, r0 + lsrs r1, r0, #8 + subs r2, r4, r1 +_0806FD1A: + cmp r5, #0 + beq _0806FD22 + cmp r5, #3 + bne _0806FD24 +_0806FD22: + rsbs r2, r2, #0 +_0806FD24: + cmp r5, #0 + beq _0806FD2C + cmp r5, #2 + bne _0806FD32 +_0806FD2C: + adds r0, r6, #0 + adds r0, #0x63 + b _0806FD36 +_0806FD32: + adds r0, r6, #0 + adds r0, #0x62 +_0806FD36: + strb r2, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_0806FD3C +sub_0806FD3C: @ 0x0806FD3C + ldrb r2, [r0, #0x18] + movs r1, #0x31 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #0x18] + adds r0, #0x29 + ldrb r2, [r0] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start sub_0806FD54 +sub_0806FD54: @ 0x0806FD54 + push {r4, lr} + adds r3, r0, #0 + ldr r0, _0806FD6C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + bne _0806FD70 + movs r0, #0 + b _0806FD84 + .align 2, 0 +_0806FD6C: .4byte gUnk_03003F80 +_0806FD70: + ldr r0, _0806FD88 @ =gLinkEntity + movs r2, #0x2e + ldrsh r1, [r0, r2] + movs r4, #0x32 + ldrsh r2, [r0, r4] + subs r2, #9 + adds r0, r3, #0 + movs r3, #0x48 + bl sub_0806FCB8 +_0806FD84: + pop {r4, pc} + .align 2, 0 +_0806FD88: .4byte gLinkEntity + + thumb_func_start sub_0806FD8C +sub_0806FD8C: @ 0x0806FD8C + push {lr} + ldr r0, _0806FD9C @ =gUnk_020000C0 + movs r1, #0xc0 + lsls r1, r1, #4 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_0806FD9C: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FDA0 +sub_0806FDA0: @ 0x0806FDA0 + push {r4, lr} + movs r3, #1 + ldr r1, _0806FDD8 @ =gUnk_020000C0 + movs r4, #0xff + movs r2, #0x61 + adds r2, r2, r1 + mov ip, r2 + adds r2, r1, #0 + adds r2, #0x40 + adds r1, r0, #0 + adds r1, #0x28 +_0806FDB6: + ldrb r0, [r2] + lsls r0, r0, #0x1f + cmp r0, #0 + bne _0806FDDC + strb r3, [r1] + ldrb r0, [r2] + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + strb r4, [r2, #1] + strb r4, [r2, #0x11] + mov r0, ip + strb r4, [r0] + strb r4, [r0, #0x10] + movs r0, #1 + b _0806FDEA + .align 2, 0 +_0806FDD8: .4byte gUnk_020000C0 +_0806FDDC: + movs r0, #0x40 + add ip, r0 + adds r2, #0x40 + adds r3, #1 + cmp r3, #0x2f + bls _0806FDB6 + movs r0, #0 +_0806FDEA: + pop {r4, pc} + + thumb_func_start sub_0806FDEC +sub_0806FDEC: @ 0x0806FDEC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r4, r1, #0 + bl sub_0806FDA0 + cmp r0, #0 + bne _0806FE02 + movs r0, #0 + b _0806FE74 +_0806FE02: + adds r0, r6, #0 + bl sub_0801D230 + adds r0, r6, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r1, _0806FE7C @ =gUnk_020000C0 + adds r5, r0, r1 + movs r7, #0 + ldrh r1, [r4, #2] + ldr r0, _0806FE80 @ =0x000003FF + ands r0, r1 + movs r1, #0x27 + adds r1, r1, r6 + mov r8, r1 + cmp r0, #0 + beq _0806FE6C +_0806FE26: + ldr r1, [r4] + lsls r1, r1, #0x16 + lsrs r1, r1, #0x16 + adds r0, r6, #0 + bl sub_0801D040 + adds r2, r0, #0 + ldr r3, [r4] + lsls r1, r3, #6 + lsrs r1, r1, #0x16 + lsls r3, r3, #0x10 + lsrs r3, r3, #0x1a + adds r0, r5, #0 + bl sub_0806FEE8 + ldrb r1, [r4, #3] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0806FE56 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0806FEFC +_0806FE56: + adds r5, #0x10 + adds r4, #4 + adds r7, #1 + cmp r7, #3 + bhi _0806FE6C + ldrh r1, [r4, #2] + ldr r2, _0806FE80 @ =0x000003FF + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0806FE26 +_0806FE6C: + movs r0, #0 + mov r1, r8 + strb r0, [r1] + movs r0, #1 +_0806FE74: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0806FE7C: .4byte gUnk_020000C0 +_0806FE80: .4byte 0x000003FF + + thumb_func_start sub_0806FE84 +sub_0806FE84: @ 0x0806FE84 + push {r4, r5, r6, lr} + adds r0, #0x28 + ldrb r2, [r0] + movs r1, #0 + strb r1, [r0] + subs r0, r2, #1 + cmp r0, #0x7e + bhi _0806FEB4 + lsls r1, r2, #6 + ldr r0, _0806FEB8 @ =gUnk_020000C0 + adds r6, r1, r0 + movs r5, #0 + adds r4, r6, #0 +_0806FE9E: + ldrb r0, [r4, #5] + bl sub_0801D244 + adds r4, #0x10 + adds r5, #1 + cmp r5, #3 + bls _0806FE9E + adds r0, r6, #0 + movs r1, #0x40 + bl sub_0801D630 +_0806FEB4: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806FEB8: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FEBC +sub_0806FEBC: @ 0x0806FEBC + adds r0, #0x28 + ldrb r3, [r0] + lsls r3, r3, #6 + lsls r1, r1, #4 + ldr r0, _0806FEE4 @ =gUnk_020000C0 + adds r1, r1, r0 + adds r3, r3, r1 + movs r0, #0 + str r0, [r3] + str r0, [r3, #4] + str r0, [r3, #8] + str r2, [r3, #0xc] + ldrb r0, [r3] + movs r1, #1 + orrs r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r3] + bx lr + .align 2, 0 +_0806FEE4: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FEE8 +sub_0806FEE8: @ 0x0806FEE8 + strb r3, [r0, #8] + strh r1, [r0, #2] + strb r2, [r0, #5] + ldrb r1, [r0] + movs r2, #8 + orrs r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start sub_0806FEFC +sub_0806FEFC: @ 0x0806FEFC + adds r1, #0x60 + ldrh r1, [r1] + ldrb r2, [r0, #8] + adds r1, r1, r2 + strh r1, [r0, #0xa] + ldrb r1, [r0] + movs r2, #4 + orrs r1, r2 + strb r1, [r0] + bx lr + + thumb_func_start sub_0806FF10 +sub_0806FF10: @ 0x0806FF10 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r5, r2, #0 + adds r0, #0x28 + ldrb r2, [r0] + lsls r2, r2, #6 + lsls r1, r1, #4 + ldr r0, _0806FF44 @ =gUnk_020000C0 + adds r1, r1, r0 + adds r4, r2, r1 + adds r0, r5, #0 + bl sub_0801D108 + ldrb r1, [r4, #5] + cmp r1, r0 + beq _0806FF40 + adds r0, r1, #0 + bl sub_0801D244 + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_0801D040 + strb r0, [r4, #5] +_0806FF40: + pop {r4, r5, r6, pc} + .align 2, 0 +_0806FF44: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FF48 +sub_0806FF48: @ 0x0806FF48 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #6 + lsls r1, r1, #4 + ldr r3, _0806FF5C @ =gUnk_020000C0 + adds r1, r1, r3 + adds r0, r0, r1 + strb r2, [r0, #4] + bx lr + .align 2, 0 +_0806FF5C: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FF60 +sub_0806FF60: @ 0x0806FF60 + push {lr} + adds r3, r2, #0 + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #6 + ldr r2, _0806FF84 @ =gUnk_020000C0 + adds r0, r0, r2 + lsls r1, r1, #4 + adds r2, r0, r1 + ldrb r0, [r2, #1] + cmp r0, r3 + beq _0806FF82 + strb r3, [r2, #1] + ldrb r0, [r2] + movs r1, #8 + orrs r0, r1 + strb r0, [r2] +_0806FF82: + pop {pc} + .align 2, 0 +_0806FF84: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FF88 +sub_0806FF88: @ 0x0806FF88 + push {r4, r5, lr} + adds r5, r1, #0 + adds r0, #0x28 + ldrb r4, [r0] + lsls r4, r4, #6 + ldr r0, _0806FFB8 @ =gUnk_020000C0 + adds r4, r4, r0 + lsls r5, r5, #4 + adds r5, r4, r5 + lsls r2, r2, #4 + adds r4, r4, r2 + ldrh r0, [r5, #2] + ldrb r1, [r5, #1] + bl sub_080700C8 + ldrb r1, [r5, #6] + ldrb r2, [r0] + adds r1, r1, r2 + strb r1, [r4, #6] + ldrb r1, [r5, #7] + ldrb r0, [r0, #1] + adds r1, r1, r0 + strb r1, [r4, #7] + pop {r4, r5, pc} + .align 2, 0 +_0806FFB8: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FFBC +sub_0806FFBC: @ 0x0806FFBC + push {r4, lr} + adds r0, #0x28 + ldrb r0, [r0] + lsls r0, r0, #6 + lsls r1, r1, #4 + ldr r4, _0806FFD4 @ =gUnk_020000C0 + adds r1, r1, r4 + adds r0, r0, r1 + strb r2, [r0, #6] + strb r3, [r0, #7] + pop {r4, pc} + .align 2, 0 +_0806FFD4: .4byte gUnk_020000C0 + + thumb_func_start sub_0806FFD8 +sub_0806FFD8: @ 0x0806FFD8 + push {r4, r5, lr} + adds r5, r1, #0 + adds r0, #0x28 + ldrb r4, [r0] + lsls r4, r4, #6 + ldr r0, _08070008 @ =gUnk_020000C0 + adds r4, r4, r0 + lsls r5, r5, #4 + adds r5, r4, r5 + lsls r2, r2, #4 + adds r4, r4, r2 + ldrh r0, [r5, #2] + ldrb r1, [r5, #1] + bl sub_080700C8 + ldrb r1, [r5, #6] + ldrb r2, [r0, #2] + adds r1, r1, r2 + strb r1, [r4, #6] + ldrb r1, [r5, #7] + ldrb r0, [r0, #3] + adds r1, r1, r0 + strb r1, [r4, #7] + pop {r4, r5, pc} + .align 2, 0 +_08070008: .4byte gUnk_020000C0 + + thumb_func_start sub_0807000C +sub_0807000C: @ 0x0807000C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r6, #0 + adds r7, #0x28 + ldrb r4, [r7] + lsls r4, r4, #6 + ldr r0, _08070074 @ =gUnk_020000C0 + adds r4, r4, r0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0807007C + adds r5, r0, #0 + adds r0, r4, #0 + movs r1, #1 + bl sub_0807007C + orrs r5, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_0807007C + orrs r5, r0 + adds r0, r4, #0 + movs r1, #3 + bl sub_0807007C + orrs r5, r0 + cmp r5, #0 + beq _08070072 + ldr r3, _08070078 @ =gUnk_02024490 + adds r2, r6, #0 + adds r2, #0x26 + ldrb r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r7] + strb r1, [r0, #7] + ldrb r1, [r2] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r2, [r0, #4] + movs r1, #0xf + ands r1, r2 + movs r2, #0x30 + orrs r1, r2 + strb r1, [r0, #4] +_08070072: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08070074: .4byte gUnk_020000C0 +_08070078: .4byte gUnk_02024490 + + thumb_func_start sub_0807007C +sub_0807007C: @ 0x0807007C + push {lr} + lsls r1, r1, #4 + adds r2, r0, r1 + ldrb r1, [r2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080700C4 + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080700C4 + ldrb r0, [r2, #1] + cmp r0, #0xff + beq _080700C4 + ldrh r0, [r2, #2] + lsls r0, r0, #4 + ldr r1, _080700C0 @ =gUnk_080029B4 + adds r3, r0, r1 + ldr r1, [r3, #4] + cmp r1, #0 + beq _080700C4 + ldrb r0, [r2, #1] + lsls r0, r0, #2 + adds r0, r1, r0 + ldrb r1, [r0] + strb r1, [r2, #9] + ldrh r1, [r0, #2] + lsls r1, r1, #5 + ldr r0, [r3, #8] + adds r0, r0, r1 + str r0, [r2, #0xc] + movs r0, #1 + b _080700C6 + .align 2, 0 +_080700C0: .4byte gUnk_080029B4 +_080700C4: + movs r0, #0 +_080700C6: + pop {pc} + + thumb_func_start sub_080700C8 +sub_080700C8: @ 0x080700C8 + lsls r0, r0, #1 + ldr r2, _080700E4 @ =gUnk_089FB780 + adds r0, r0, r2 + ldrh r0, [r0] + subs r2, #0x10 + adds r0, r0, r2 + adds r1, r0, r1 + ldrb r0, [r1] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r2] + adds r0, r1, r0 + bx lr + .align 2, 0 +_080700E4: .4byte gUnk_089FB780 + + thumb_func_start sub_080700E8 +sub_080700E8: @ 0x080700E8 + push {lr} + ldr r2, _080700FC @ =gUnk_0811B98C + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080700FC: .4byte gUnk_0811B98C + + thumb_func_start sub_08070100 +sub_08070100: @ 0x08070100 + push {r4, r5, lr} + adds r5, r0, #0 + movs r2, #1 + movs r3, #1 + strb r3, [r5, #0xc] + ldrb r1, [r5, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, #0x18] + ldrb r1, [r5, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #0x10] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #0x40 + str r0, [r5, #0x74] + movs r0, #0xf0 + lsls r0, r0, #1 + str r0, [r5, #0x78] + ldr r2, _0807017C @ =gLinkEntity + ldr r1, _08070180 @ =gUnk_0811B9A0 + ldrb r0, [r5, #0x14] + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r4, [r2, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] + ldrb r0, [r5, #0x14] + adds r0, #1 + adds r0, r0, r1 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r5, #0x32] + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #7 + strb r0, [r1] + subs r1, #1 + movs r0, #0x8a + strb r0, [r1] + ldr r0, _08070184 @ =gUnk_0811B9D0 + str r0, [r5, #0x48] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #2 + bne _08070188 + strb r3, [r5, #0xa] + b _0807018C + .align 2, 0 +_0807017C: .4byte gLinkEntity +_08070180: .4byte gUnk_0811B9A0 +_08070184: .4byte gUnk_0811B9D0 +_08070188: + movs r0, #0 + strb r0, [r5, #0xa] +_0807018C: + ldrb r1, [r2, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r5, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x1b] + ldrb r3, [r5, #0x14] + lsrs r3, r3, #1 + lsls r3, r3, #3 + ldr r0, _080701F0 @ =gUnk_0811B9A8 + adds r3, r3, r0 + ldrb r1, [r3] + movs r0, #1 + ands r1, r0 + lsls r1, r1, #6 + ldrb r2, [r5, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r1, [r3, #1] + lsls r1, r1, #7 + movs r2, #0x7f + ands r0, r2 + orrs r0, r1 + strb r0, [r5, #0x18] + ldrb r0, [r3, #4] + adds r4, r5, #0 + adds r4, #0x58 + strb r0, [r4] + movs r0, #2 + ldrsb r0, [r3, r0] + str r0, [r5, #0x6c] + movs r0, #3 + ldrsb r0, [r3, r0] + str r0, [r5, #0x70] + adds r0, r5, #0 + bl sub_0801766C + ldrb r1, [r4] + adds r0, r5, #0 + bl sub_08004260 + ldr r0, _080701F4 @ =0x000001DD + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_080701F0: .4byte gUnk_0811B9A8 +_080701F4: .4byte 0x000001DD + + thumb_func_start sub_080701F8 +sub_080701F8: @ 0x080701F8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r0, _08070244 @ =gUnk_0811B9C8 + ldrb r1, [r5, #0x14] + adds r2, r1, r0 + movs r6, #0 + ldrsb r6, [r2, r6] + adds r1, #1 + adds r1, r1, r0 + movs r7, #0 + ldrsb r7, [r1, r7] + adds r0, r5, #0 + movs r1, #0xa + adds r2, r6, #0 + adds r3, r7, #0 + bl sub_08008782 + adds r4, r0, #0 + cmp r4, #0 + beq _08070248 + ldrb r1, [r4, #5] + ldrb r2, [r4, #2] + movs r0, #0x53 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08070260 + ldrb r0, [r4, #3] + strb r0, [r1, #0xe] + ldrh r0, [r5, #0x2e] + adds r0, r0, r6 + strh r0, [r1, #0x2e] + ldrh r0, [r5, #0x32] + adds r0, r0, r7 + strh r0, [r1, #0x32] + b _08070260 + .align 2, 0 +_08070244: .4byte gUnk_0811B9C8 +_08070248: + ldr r0, [r5, #0x74] + subs r0, #1 + str r0, [r5, #0x74] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _08070260 + ldr r0, [r5, #0x78] + subs r0, #1 + str r0, [r5, #0x78] + cmp r0, r1 + bne _08070268 +_08070260: + adds r0, r5, #0 + bl sub_08070458 + b _0807037A +_08070268: + adds r0, r5, #0 + bl sub_08004274 + adds r0, r5, #0 + bl sub_0806F69C + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08070280 + adds r0, r5, #0 + bl sub_0800451C +_08070280: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _08070354 @ =gUnk_03000BF0 + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _08070358 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x80 + bl sub_080002F0 + cmp r0, #0 + bne _0807036A + ldr r1, _0807035C @ =gUnk_08003E44 + movs r3, #0x2e + ldrsh r2, [r5, r3] + movs r0, #0x32 + ldrsh r3, [r5, r0] + adds r0, r5, #0 + bl sub_080040D8 + cmp r0, #0 + bne _08070364 + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0x19 + bne _0807036A + movs r0, #4 + strb r0, [r5, #0xc] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + orrs r1, r2 + strh r1, [r5, #0x32] + adds r2, r5, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #7 + orrs r0, r1 + strb r0, [r2] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + str r0, [r5, #0x7c] + adds r0, r5, #0 + movs r1, #0x14 + bl sub_08004260 + ldr r0, _08070360 @ =0x00004020 + movs r3, #0x2e + ldrsh r1, [r5, r3] + ldrh r2, [r7, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + movs r3, #0x32 + ldrsh r2, [r5, r3] + ldrh r3, [r7, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r6 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r4] + bl sub_0800015E + b _0807037A + .align 2, 0 +_08070354: .4byte gUnk_03000BF0 +_08070358: .4byte gLinkEntity +_0807035C: .4byte gUnk_08003E44 +_08070360: .4byte 0x00004020 +_08070364: + adds r0, r5, #0 + bl sub_08070458 +_0807036A: + adds r0, r5, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _0807037A + adds r0, r5, #0 + bl sub_08070458 +_0807037A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807037C +sub_0807037C: @ 0x0807037C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08070394 + bl sub_0805E780 +_08070394: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08070398 +sub_08070398: @ 0x08070398 + push {r4, lr} + adds r4, r0, #0 + bl sub_08004274 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080703B8 + bl sub_0805E780 +_080703B8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080703BC +sub_080703BC: @ 0x080703BC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08004274 + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08070404 @ =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_080001DA + adds r1, r0, #0 + ldr r0, _08070408 @ =0x00004021 + cmp r1, r0 + beq _0807042E + cmp r1, r0 + bhi _0807040C + subs r0, #1 + cmp r1, r0 + beq _08070420 + b _08070412 + .align 2, 0 +_08070404: .4byte gUnk_03000BF0 +_08070408: .4byte 0x00004021 +_0807040C: + ldr r0, _08070418 @ =0x00004070 + cmp r1, r0 + beq _0807041C +_08070412: + movs r0, #0 + str r0, [r4, #0x7c] + b _0807042E + .align 2, 0 +_08070418: .4byte 0x00004070 +_0807041C: + movs r0, #0xff + str r0, [r4, #0x78] +_08070420: + ldr r0, [r4, #0x78] + subs r0, #1 + str r0, [r4, #0x78] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + bne _08070436 +_0807042E: + adds r0, r4, #0 + bl sub_08070458 + b _08070454 +_08070436: + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + cmp r1, #0 + beq _08070454 + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0807044E + ldrb r0, [r4, #0xc] + cmp r0, #0x1a + bne _08070454 +_0807044E: + adds r0, r4, #0 + bl sub_08070458 +_08070454: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08070458 +sub_08070458: @ 0x08070458 + push {r4, r5, r6, lr} + adds r4, r0, #0 + movs r2, #0 + movs r0, #2 + strb r0, [r4, #0xc] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + strh r2, [r4, #0x24] + ldr r5, [r4, #0x7c] + cmp r5, #0 + beq _0807049E + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, _080704B4 @ =gUnk_03000BF0 + ldrh r0, [r2, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + movs r3, #0x3f + ands r1, r3 + movs r6, #0x32 + ldrsh r0, [r4, r6] + 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, #0x38 + ldrb r2, [r0] + adds r0, r5, #0 + bl sub_0800015E +_0807049E: + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08004260 + adds r0, r4, #0 + bl sub_08017744 + ldr r0, _080704B8 @ =0x00000199 + bl sub_080A3268 + pop {r4, r5, r6, pc} + .align 2, 0 +_080704B4: .4byte gUnk_03000BF0 +_080704B8: .4byte 0x00000199 + + thumb_func_start sub_080704BC +sub_080704BC: @ 0x080704BC + push {lr} + ldr r2, _080704D0 @ =gUnk_0811B9D8 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080704D0: .4byte gUnk_0811B9D8 + + thumb_func_start sub_080704D4 +sub_080704D4: @ 0x080704D4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xc] + movs r0, #0xff + strb r0, [r4, #0x1e] + adds r0, r4, #0 + movs r1, #1 + movs r2, #3 + bl sub_080AE008 + movs r0, #0x87 + lsls r0, r0, #1 + bl sub_080A3268 + adds r0, r4, #0 + bl sub_080704FC + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080704FC +sub_080704FC: @ 0x080704FC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0807052C @ =gLinkEntity + adds r0, r5, #0 + adds r0, #0x5a + ldrb r2, [r0] + movs r0, #0x80 + ands r0, r2 + ldr r1, _08070530 @ =gUnk_03003F80 + cmp r0, #0 + bne _08070518 + ldr r0, [r1, #0x2c] + cmp r4, r0 + beq _08070534 +_08070518: + ldr r0, [r1, #0x2c] + cmp r4, r0 + bne _08070522 + movs r0, #0 + str r0, [r1, #0x2c] +_08070522: + adds r0, r4, #0 + bl sub_0805E7BC + b _08070566 + .align 2, 0 +_0807052C: .4byte gLinkEntity +_08070530: .4byte gUnk_03003F80 +_08070534: + movs r0, #0xf + ands r0, r2 + cmp r0, #0xf + beq _08070562 + ldrb r1, [r5, #0x1e] + adds r0, #0x91 + subs r0, r1, r0 + ldrb r2, [r4, #0x1e] + cmp r0, r2 + beq _08070558 + adds r0, r1, #0 + adds r0, #0x6f + strb r0, [r4, #0x1e] + ldrb r1, [r4, #0x1e] + ldrh r2, [r4, #0x12] + adds r0, r4, #0 + bl sub_080042D0 +_08070558: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08078E84 + b _08070566 +_08070562: + movs r0, #0xff + strb r0, [r4, #0x1e] +_08070566: + ldr r2, _08070580 @ =gLinkEntity + ldrb r1, [r2, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08070584 + ldrb r0, [r2, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f + movs r0, #1 + eors r2, r0 + b _0807058A + .align 2, 0 +_08070580: .4byte gLinkEntity +_08070584: + ldrb r0, [r2, #0x18] + lsls r0, r0, #0x19 + lsrs r2, r0, #0x1f +_0807058A: + lsls r2, r2, #6 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x18] + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807059C +sub_0807059C: @ 0x0807059C + push {lr} + ldr r0, _080705A8 @ =gUnk_02034490 + movs r1, #0x18 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_080705A8: .4byte gUnk_02034490 + + thumb_func_start sub_080705AC +sub_080705AC: @ 0x080705AC + push {lr} + ldr r0, _08070614 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08070674 + ldr r0, _08070618 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _08070674 + ldr r0, _0807061C @ =gUnk_02034490 + ldrb r0, [r0] + cmp r0, #0 + bne _08070674 + ldr r0, _08070620 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08070674 + ldr r1, _08070624 @ =gUnk_02002A40 + adds r0, r1, #0 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #0 + beq _08070674 + adds r0, r1, #0 + adds r0, #0xf2 + ldrb r0, [r0] + cmp r0, #0 + beq _08070674 + ldr r1, _08070628 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x8b + ldrb r0, [r0] + cmp r0, #0 + bne _08070674 + ldr r0, _0807062C @ =gUnk_03003DC0 + ldrh r0, [r0, #8] + cmp r0, #0 + bne _08070674 + adds r2, r1, #0 + adds r2, #0xa8 + ldrb r0, [r2] + cmp r0, #0 + bne _08070630 + adds r0, r1, #0 + adds r0, #0xa9 + ldrb r0, [r0] + b _08070632 + .align 2, 0 +_08070614: .4byte gUnk_03000FF0 +_08070618: .4byte gUnk_03000FD0 +_0807061C: .4byte gUnk_02034490 +_08070620: .4byte gUnk_02000050 +_08070624: .4byte gUnk_02002A40 +_08070628: .4byte gUnk_03003F80 +_0807062C: .4byte gUnk_03003DC0 +_08070630: + ldrb r0, [r2] +_08070632: + subs r0, #0x12 + cmp r0, #0xa + bhi _08070678 + lsls r0, r0, #2 + ldr r1, _08070644 @ =_08070648 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08070644: .4byte _08070648 +_08070648: @ jump table + .4byte _08070674 @ case 0 + .4byte _08070674 @ case 1 + .4byte _08070678 @ case 2 + .4byte _08070674 @ case 3 + .4byte _08070674 @ case 4 + .4byte _08070678 @ case 5 + .4byte _08070678 @ case 6 + .4byte _08070678 @ case 7 + .4byte _08070678 @ case 8 + .4byte _08070678 @ case 9 + .4byte _08070674 @ case 10 +_08070674: + movs r0, #0 + b _0807067E +_08070678: + bl sub_080A4D88 + movs r0, #1 +_0807067E: + pop {pc} + + thumb_func_start sub_08070680 +sub_08070680: @ 0x08070680 + push {lr} + ldr r2, _08070694 @ =gUnk_0811B9E0 + ldrb r1, [r0, #0xc] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08070694: .4byte gUnk_0811B9E0 + + thumb_func_start sub_08070698 +sub_08070698: @ 0x08070698 + push {r4, r5, r6, lr} + sub sp, #4 + adds r4, r0, #0 + ldr r6, _08070788 @ =gUnk_03003F80 + movs r0, #0xff + strb r0, [r6] + ldr r1, _0807078C @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r6, #0x16] + ldrh r0, [r1, #0x32] + strh r0, [r6, #0x18] + 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, #8 + orrs r0, r1 + strb r0, [r2] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x20 + strb r0, [r4, #0x16] + adds r1, r4, #0 + adds r1, #0x3b + movs r0, #8 + strb r0, [r1] + adds r1, #4 + movs r0, #0x79 + strb r0, [r1] + ldr r0, _08070790 @ =gUnk_08114F88 + str r0, [r4, #0x48] + movs r0, #1 + strh r0, [r4, #0x12] + adds r0, #0xff + strh r0, [r6, #8] + adds r0, r4, #0 + bl sub_0806FDA0 + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042AC + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08070726 + adds r0, r4, #0 + bl sub_08016A30 +_08070726: + movs r0, #0x10 + bl sub_0805436C + cmp r0, #2 + beq _08070734 + bl sub_08077728 +_08070734: + bl sub_0807A108 + bl sub_0807AEE4 + bl sub_08078EFC + adds r5, r0, #0 + cmp r5, #0 + bne _08070784 + bl sub_0807921C + bl sub_0807A1B8 + adds r1, r6, #0 + adds r1, #0x26 + ldrb r0, [r1] + cmp r0, #0 + beq _08070784 + movs r0, #1 + strb r0, [r1] + bl sub_08079938 + adds r1, r6, #0 + adds r1, #0xa8 + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807ACCC + str r5, [sp] + movs r0, #6 + movs r1, #0xf + movs r2, #6 + movs r3, #0xb + bl sub_0805EB2C + cmp r0, #0 + beq _08070784 + bl sub_0805E7BC +_08070784: + add sp, #4 + pop {r4, r5, r6, pc} + .align 2, 0 +_08070788: .4byte gUnk_03003F80 +_0807078C: .4byte gLinkEntity +_08070790: .4byte gUnk_08114F88 + + thumb_func_start sub_08070794 +sub_08070794: @ 0x08070794 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldr r6, _080707F0 @ =gUnk_03003F80 + adds r3, r6, #0 + adds r3, #0xa8 + movs r4, #0 + strb r4, [r3] + ldr r1, [r6, #0x30] + movs r7, #0x10 + adds r0, r1, #0 + ands r0, r7 + mov ip, r6 + cmp r0, #0 + beq _08070818 + adds r2, r5, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + adds r0, r5, #0 + adds r0, #0x42 + strb r4, [r0] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + movs r0, #0x80 + strb r0, [r6, #6] + strb r7, [r3] + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + adds r0, #0x5c + adds r1, r5, #0 + adds r1, #0x58 + ldrb r1, [r1] + cmp r0, r1 + bne _080707F8 + ldrh r0, [r5, #0x12] + cmp r0, #2 + bne _080707F8 + ldr r0, _080707F4 @ =gLinkEntity + bl sub_080042B8 + b _08070800 + .align 2, 0 +_080707F0: .4byte gUnk_03003F80 +_080707F4: .4byte gLinkEntity +_080707F8: + movs r0, #0x97 + lsls r0, r0, #2 + mov r1, ip + strh r0, [r1, #8] +_08070800: + ldr r0, _08070814 @ =gLinkEntity + bl sub_0806F948 + bl sub_08077B2C + adds r0, r5, #0 + bl sub_08077698 + b _08070BE4 + .align 2, 0 +_08070814: .4byte gLinkEntity +_08070818: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + cmp r0, #0 + beq _08070842 + adds r1, r5, #0 + adds r1, #0x40 + movs r0, #0x1e + strb r0, [r1] + movs r0, #0xc + strb r0, [r3] + movs r1, #0 + movs r2, #0x24 + ldrsh r0, [r5, r2] + cmp r0, #0 + bne _0807083A + movs r1, #1 +_0807083A: + adds r0, r5, #0 + bl sub_08070BEC + b _08070BE4 +_08070842: + movs r4, #0x80 + lsls r4, r4, #0xc + ands r4, r1 + cmp r4, #0 + beq _08070852 + bl sub_08079938 + b _08070BE4 +_08070852: + adds r0, r5, #0 + bl sub_080085B0 + adds r0, r5, #0 + adds r0, #0x40 + strb r4, [r0] + bl sub_08078EFC + cmp r0, #0 + beq _08070868 + b _08070BE4 +_08070868: + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _080708AC + ldrb r1, [r6, #2] + movs r2, #0xc0 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _080708AC + ldrb r0, [r6, #3] + cmp r0, #0 + bne _0807088E + adds r0, r6, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08070892 +_0807088E: + strh r2, [r5, #0x24] + b _080708AC +_08070892: + ldrb r0, [r6, #0x1b] + cmp r0, #0 + beq _0807089C + movs r0, #0xe0 + b _080708AA +_0807089C: + ldrb r0, [r6, #0x1c] + cmp r0, #0 + beq _080708A6 + movs r0, #0x80 + b _080708AA +_080708A6: + movs r0, #0xa0 + lsls r0, r0, #1 +_080708AA: + strh r0, [r5, #0x24] +_080708AC: + ldr r4, _08070918 @ =gUnk_03003F80 + ldrb r0, [r4, #6] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r4, #6] + ldr r0, [r4, #0x30] + ldr r6, _0807091C @ =0x10000002 + ands r0, r6 + cmp r0, #0 + bne _080708C4 + bl sub_0807A1B8 +_080708C4: + bl sub_08078EFC + cmp r0, #0 + beq _080708CE + b _08070BE4 +_080708CE: + ldrb r0, [r4, #2] + cmp r0, #0 + beq _080708D6 + b _080709D8 +_080708D6: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080708E4 + b _080709D8 +_080708E4: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _08070924 + bl sub_080782C0 + cmp r0, #0 + beq _08070924 + ldr r0, _08070920 @ =gUnk_02034350 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _08070902 + bl sub_08077B2C +_08070902: + ldr r0, [r4, #0x30] + ands r0, r6 + cmp r0, #0 + beq _0807090C + b _08070BE4 +_0807090C: + bl sub_0807A1B8 + bl sub_08078EFC + b _08070BE4 + .align 2, 0 +_08070918: .4byte gUnk_03003F80 +_0807091C: .4byte 0x10000002 +_08070920: .4byte gUnk_02034350 +_08070924: + ldr r0, _0807094C @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _08070950 @ =0x00041635 + ands r1, r2 + adds r0, #0xaa + ldrb r0, [r0] + orrs r1, r0 + cmp r1, #0 + bne _080709D8 + bl sub_08019840 + cmp r0, #0xf + bls _08070940 + b _08070BE4 +_08070940: + lsls r0, r0, #2 + ldr r1, _08070954 @ =_08070958 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807094C: .4byte gUnk_03003F80 +_08070950: .4byte 0x00041635 +_08070954: .4byte _08070958 +_08070958: @ jump table + .4byte _08070998 @ case 0 + .4byte _08070BE4 @ case 1 + .4byte _08070BE4 @ case 2 + .4byte _080709A8 @ case 3 + .4byte _080709C2 @ case 4 + .4byte _08070BE4 @ case 5 + .4byte _08070BE4 @ case 6 + .4byte _08070BE4 @ case 7 + .4byte _08070BE4 @ case 8 + .4byte _08070BE4 @ case 9 + .4byte _08070BE4 @ case 10 + .4byte _08070BE4 @ case 11 + .4byte _08070BE4 @ case 12 + .4byte _08070BE4 @ case 13 + .4byte _08070BE4 @ case 14 + .4byte _080709B4 @ case 15 +_08070998: + ldr r0, _080709A4 @ =gUnk_03003F80 + ldrb r1, [r0, #6] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #6] + b _080709D8 + .align 2, 0 +_080709A4: .4byte gUnk_03003F80 +_080709A8: + ldr r1, _080709B0 @ =gUnk_03003F80 + movs r0, #0x80 + strb r0, [r1, #6] + b _080709D8 + .align 2, 0 +_080709B0: .4byte gUnk_03003F80 +_080709B4: + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + bl sub_080797EC + b _08070BE4 +_080709C2: + ldr r0, _080709D4 @ =gUnk_03003F80 + ldrb r1, [r0, #6] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #6] + bl sub_080797EC + b _08070BE4 + .align 2, 0 +_080709D4: .4byte gUnk_03003F80 +_080709D8: + adds r1, r5, #0 + adds r1, #0x3c + movs r0, #0 + strb r0, [r1] + adds r6, r5, #0 + adds r6, #0x29 + ldrb r1, [r6] + subs r0, #8 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r6] + adds r0, r5, #0 + bl sub_0807AC54 + cmp r0, #0 + beq _080709FC + b _08070BE4 +_080709FC: + adds r0, r5, #0 + bl sub_08077698 + bl sub_08078EFC + cmp r0, #0 + beq _08070A0C + b _08070BE4 +_08070A0C: + bl sub_080792D8 + ldr r4, _08070A78 @ =gUnk_03003F80 + ldrb r1, [r4, #2] + ldrb r0, [r4, #0xa] + orrs r0, r1 + cmp r0, #0 + bne _08070A32 + bl sub_08079550 + cmp r0, #0 + beq _08070A26 + b _08070BE4 +_08070A26: + adds r0, r5, #0 + bl sub_08078F74 + cmp r0, #0 + beq _08070A32 + b _08070BE4 +_08070A32: + adds r0, r5, #0 + bl sub_08073904 + bl sub_08078EFC + cmp r0, #0 + beq _08070A42 + b _08070BE4 +_08070A42: + ldrb r2, [r4, #2] + cmp r2, #0 + beq _08070AAC + adds r1, r4, #0 + adds r1, #0xa8 + movs r0, #0x14 + strb r0, [r1] + movs r0, #0xc0 + ands r0, r2 + cmp r0, #0 + bne _08070A80 + movs r0, #7 + ands r0, r2 + cmp r0, #3 + beq _08070A7C + movs r0, #0x20 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0 + bne _08070A7C + strh r0, [r5, #0x24] + adds r0, r5, #0 + bl sub_08008926 + b _08070A80 + .align 2, 0 +_08070A78: .4byte gUnk_03003F80 +_08070A7C: + movs r0, #0xff + strb r0, [r5, #0x15] +_08070A80: + bl sub_08079E08 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08070A94 + b _08070BE4 +_08070A94: + ldr r0, _08070AA8 @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08070A9E + b _08070BE4 +_08070A9E: + adds r0, r5, #0 + bl sub_080042B8 + b _08070BE4 + .align 2, 0 +_08070AA8: .4byte gUnk_03003F80 +_08070AAC: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r1, [r0] + adds r7, r0, #0 + cmp r1, #0 + beq _08070ABA + b _08070BBC +_08070ABA: + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08070AD4 + adds r1, r4, #0 + adds r1, #0xa8 + movs r0, #7 + strb r0, [r1] + adds r0, r5, #0 + bl sub_0807ACCC + b _08070B56 +_08070AD4: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x12 + ands r0, r1 + cmp r0, #0 + bne _08070AEE + ldrb r0, [r6] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strb r1, [r6] +_08070AEE: + ldrb r1, [r4, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08070B00 + adds r0, r5, #0 + bl sub_08008AA0 + b _08070B1E +_08070B00: + ldrb r0, [r4, #0x12] + cmp r0, #0x17 + bne _08070B0E + adds r0, r5, #0 + bl sub_08008926 + b _08070B1E +_08070B0E: + cmp r0, #1 + bne _08070B18 + bl sub_08078F60 + b _08070B1E +_08070B18: + adds r0, r5, #0 + bl sub_08008AA0 +_08070B1E: + ldr r2, _08070BB8 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08070B56 + ldrb r3, [r2, #0xd] + strb r3, [r5, #0x15] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _08070B56 + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08070B52 + ldrb r1, [r5, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r5, #0x15] +_08070B52: + bl sub_0807A108 +_08070B56: + movs r4, #0 + ldr r3, _08070BB8 @ =gUnk_03003F80 + ldrb r2, [r3, #7] + ldrb r0, [r5, #0x15] + orrs r0, r2 + movs r1, #0x80 + ands r0, r1 + ldrb r1, [r3, #0xa] + orrs r0, r1 + cmp r0, #0 + bne _08070B8E + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _08070B8E + movs r4, #1 + ldrb r0, [r7] + cmp r0, #0 + bne _08070B8E + ldrb r1, [r3, #0x1e] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08070B8C + ldrb r0, [r3, #0x12] + cmp r0, #0x17 + beq _08070B8E +_08070B8C: + movs r4, #3 +_08070B8E: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08070BEC + adds r0, r5, #0 + bl sub_08008AC6 + ldrb r0, [r7] + cmp r0, #0 + bne _08070BE4 + ldr r1, _08070BB8 @ =gUnk_03003F80 + ldrb r0, [r1, #0xb] + cmp r0, #0 + bne _08070BE4 + ldrb r0, [r1, #0x12] + cmp r0, #0x1e + beq _08070BE4 + adds r0, r5, #0 + bl sub_0806F948 + b _08070BE4 + .align 2, 0 +_08070BB8: .4byte gUnk_03003F80 +_08070BBC: + ldr r0, [r4, #0x2c] + cmp r0, #0 + bne _08070BC8 + adds r0, r5, #0 + bl sub_080042B8 +_08070BC8: + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08070BE4 + ldr r0, _08070BE8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _08070BE4 + adds r0, r5, #0 + bl sub_080A2A64 +_08070BE4: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08070BE8: .4byte gUnk_030010A0 + + thumb_func_start sub_08070BEC +sub_08070BEC: @ 0x08070BEC + push {r4, lr} + adds r4, r1, #0 + movs r0, #1 + ands r0, r4 + cmp r0, #0 + beq _08070BFE + bl sub_080797EC + b _08070C02 +_08070BFE: + bl sub_08079938 +_08070C02: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _08070C0E + bl sub_08079E08 +_08070C0E: + pop {r4, pc} + + thumb_func_start sub_08070C10 +sub_08070C10: @ 0x08070C10 + push {lr} + ldr r2, _08070C34 @ =gUnk_03003F80 + movs r1, #0xff + strb r1, [r2, #0xd] + movs r1, #0x80 + strb r1, [r2, #6] + adds r2, #0xa8 + movs r1, #0xa + strb r1, [r2] + ldr r2, _08070C38 @ =gUnk_0811BA60 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08070C34: .4byte gUnk_03003F80 +_08070C38: .4byte gUnk_0811BA60 + + thumb_func_start sub_08070C3C +sub_08070C3C: @ 0x08070C3C + push {r4, lr} + adds r4, r0, #0 + bl sub_08004168 + ldr r2, _08070C64 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #5 + orrs r1, r0 + ldr r0, _08070C68 @ =0xFFFFFBFF + ands r1, r0 + str r1, [r2, #0x30] + movs r0, #0 + strb r0, [r2, #2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08070C6C + movs r0, #0xdd + lsls r0, r0, #1 + b _08070C7E + .align 2, 0 +_08070C64: .4byte gUnk_03003F80 +_08070C68: .4byte 0xFFFFFBFF +_08070C6C: + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _08070C7A + movs r0, #0x8b + lsls r0, r0, #3 + b _08070C7E +_08070C7A: + movs r0, #0xdc + lsls r0, r0, #1 +_08070C7E: + strh r0, [r2, #8] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + 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] + bl sub_08077B2C + bl sub_0807A108 + movs r0, #0x7b + bl sub_080A3268 + movs r0, #0x85 + bl sub_080A3268 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08070CB4 +sub_08070CB4: @ 0x08070CB4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08070D1A + ldr r0, _08070CF4 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + ldr r4, _08070CF8 @ =gUnk_03003F80 + cmp r0, #0 + beq _08070CFC + ldr r1, [r4, #0x30] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08070CFC + movs r0, #6 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r4, #0x30] + ldrb r1, [r5, #0x18] + adds r0, #2 + ands r0, r1 + strb r0, [r5, #0x18] + b _08070D1A + .align 2, 0 +_08070CF4: .4byte gUnk_02002A40 +_08070CF8: .4byte gUnk_03003F80 +_08070CFC: + ldr r0, [r4, #0x30] + ldr r1, _08070D1C @ =0xFFFF7FFB + ands r0, r1 + str r0, [r4, #0x30] + bl sub_08079458 + movs r0, #0 + strb r0, [r4, #0xa] + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0x20 + strb r0, [r1] + subs r0, #0x22 + bl sub_080526A0 +_08070D1A: + pop {r4, r5, pc} + .align 2, 0 +_08070D1C: .4byte 0xFFFF7FFB + + thumb_func_start sub_08070D20 +sub_08070D20: @ 0x08070D20 + push {lr} + ldr r2, _08070D34 @ =gUnk_0811BA68 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08070D34: .4byte gUnk_0811BA68 + + thumb_func_start sub_08070D38 +sub_08070D38: @ 0x08070D38 + push {r4, lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r4, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + adds r0, r2, #0 + adds r0, #0x42 + strb r4, [r0] + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + ldr r3, _08070D94 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + strb r0, [r2, #0xe] + movs r0, #1 + strh r0, [r2, #0x12] + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08070D98 + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r3, #8] + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + b _08070DA2 + .align 2, 0 +_08070D94: .4byte gUnk_03003F80 +_08070D98: + ldr r0, _08070DBC @ =0x00000C18 + strh r0, [r3, #8] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r2, #0x20] +_08070DA2: + ldr r0, _08070DC0 @ =gUnk_03003F80 + movs r1, #0x80 + strb r1, [r0, #2] + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 + bl sub_08077B2C + bl sub_08078F60 + pop {r4, pc} + .align 2, 0 +_08070DBC: .4byte 0x00000C18 +_08070DC0: .4byte gUnk_03003F80 + + thumb_func_start sub_08070DC4 +sub_08070DC4: @ 0x08070DC4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080085B0 + bl sub_08079E08 + bl sub_0807A1B8 + bl sub_08078EFC + cmp r0, #0 + bne _08070E76 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08070E76 + ldr r6, _08070E18 @ =gUnk_03003F80 + strb r0, [r6, #2] + bl sub_08078EFC + adds r5, r0, #0 + cmp r5, #0 + bne _08070E76 + bl sub_08079D48 + cmp r0, #0 + bne _08070E10 + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08070E1C +_08070E10: + strb r5, [r6, #2] + bl sub_080791D0 + b _08070E76 + .align 2, 0 +_08070E18: .4byte gUnk_03003F80 +_08070E1C: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08070E32 + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r4, #0x20] + b _08070E76 +_08070E32: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r6, #0x14] + cmp r0, #0 + bne _08070E56 + bl sub_08008B22 + cmp r0, #0 + beq _08070E56 + movs r0, #7 + strb r0, [r6, #0x11] + bl sub_08079938 + bl sub_080791BC + b _08070E76 +_08070E56: + movs r0, #1 + strh r0, [r4, #0x12] + movs r0, #8 + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldr r2, _08070E78 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08070E76 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #8] +_08070E76: + pop {r4, r5, r6, pc} + .align 2, 0 +_08070E78: .4byte gUnk_03003F80 + + thumb_func_start sub_08070E7C +sub_08070E7C: @ 0x08070E7C + push {lr} + ldrb r1, [r0, #0xe] + subs r1, #1 + strb r1, [r0, #0xe] + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + cmp r1, #0 + bne _08070E94 + ldr r0, _08070E98 @ =gUnk_03003F80 + strb r1, [r0, #2] + bl sub_080791D0 +_08070E94: + pop {pc} + .align 2, 0 +_08070E98: .4byte gUnk_03003F80 + + thumb_func_start sub_08070E9C +sub_08070E9C: @ 0x08070E9C + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + beq _08070EAE + bl sub_08056360 + b _08070ED2 +_08070EAE: + ldr r1, _08070ED4 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0x27 + movs r0, #4 + strb r0, [r2] + adds r1, #0xa8 + movs r0, #0x13 + strb r0, [r1] + bl sub_0807A1B8 + ldr r1, _08070ED8 @ =gUnk_0811BA74 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_08070ED2: + pop {r4, pc} + .align 2, 0 +_08070ED4: .4byte gUnk_03003F80 +_08070ED8: .4byte gUnk_0811BA74 + + thumb_func_start sub_08070EDC +sub_08070EDC: @ 0x08070EDC + push {lr} + adds r2, r0, #0 + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x11] + ldr r0, _08070F10 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + beq _08070EFE + movs r0, #1 + strb r0, [r2, #0xd] +_08070EFE: + ldr r2, _08070F14 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08070F18 + bl sub_08079938 + b _08070F1C + .align 2, 0 +_08070F10: .4byte gUnk_02000050 +_08070F14: .4byte gUnk_03003F80 +_08070F18: + ldr r0, _08070F20 @ =0x00000C18 + strh r0, [r2, #8] +_08070F1C: + pop {pc} + .align 2, 0 +_08070F20: .4byte 0x00000C18 + + thumb_func_start sub_08070F24 +sub_08070F24: @ 0x08070F24 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08070F4C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08070F4A + ldrb r0, [r4, #0x11] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x11] + bl sub_080791D0 +_08070F4A: + pop {r4, pc} + .align 2, 0 +_08070F4C: .4byte gUnk_02000050 + + thumb_func_start sub_08070F50 +sub_08070F50: @ 0x08070F50 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08070F9C @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #0x15 + strb r1, [r0] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _08070FA0 @ =gUnk_0811BA7C + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r5, [r4, #0x54] + cmp r5, #0 + beq _08070F9A + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0806FA30 + ldrh r0, [r4, #0x12] + ldrb r1, [r4, #0x1e] + bl sub_080700C8 + ldrb r1, [r0] + adds r2, r5, #0 + adds r2, #0x62 + strb r1, [r2] + ldrb r1, [r0, #1] + adds r0, r5, #0 + adds r0, #0x63 + strb r1, [r0] +_08070F9A: + pop {r4, r5, pc} + .align 2, 0 +_08070F9C: .4byte gUnk_03003F80 +_08070FA0: .4byte gUnk_0811BA7C + + thumb_func_start sub_08070FA4 +sub_08070FA4: @ 0x08070FA4 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0x14] + ldr r3, _08070FE8 @ =gUnk_03003F80 + ldr r2, [r3, #0x30] + movs r0, #1 + orrs r2, r0 + str r2, [r3, #0x30] + strb r1, [r3, #2] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08071008 + movs r0, #8 + ands r2, r0 + cmp r2, #0 + beq _08070FF0 + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_080542AC + ldr r1, _08070FEC @ =0x0000045B + cmp r0, #0 + beq _08071004 + adds r1, #3 + b _08071004 + .align 2, 0 +_08070FE8: .4byte gUnk_03003F80 +_08070FEC: .4byte 0x0000045B +_08070FF0: + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + bl sub_080542AC + ldr r1, _08071018 @ =0x000001B9 + cmp r0, #0 + beq _08071004 + movs r1, #0xb8 + lsls r1, r1, #2 +_08071004: + ldr r0, _0807101C @ =gUnk_03003F80 + strh r1, [r0, #8] +_08071008: + movs r0, #1 + strb r0, [r4, #0xd] + bl sub_08077B2C + bl sub_08078F60 + pop {r4, pc} + .align 2, 0 +_08071018: .4byte 0x000001B9 +_0807101C: .4byte gUnk_03003F80 + + thumb_func_start sub_08071020 +sub_08071020: @ 0x08071020 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _08071036 + movs r0, #2 + strb r0, [r4, #0xd] +_08071036: + pop {r4, pc} + + thumb_func_start sub_08071038 +sub_08071038: @ 0x08071038 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + bl sub_08078EFC + cmp r0, #0 + bne _08071078 + ldr r0, _0807107C @ =gUnk_02000050 + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + cmp r2, #0 + bne _08071078 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071078 + str r2, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + subs r0, #5 + movs r1, #0xf8 + strb r1, [r0] + ldr r0, _08071080 @ =gUnk_03003F80 + strb r2, [r0, #2] + bl sub_080791D0 +_08071078: + pop {r4, pc} + .align 2, 0 +_0807107C: .4byte gUnk_02000050 +_08071080: .4byte gUnk_03003F80 + + thumb_func_start sub_08071084 +sub_08071084: @ 0x08071084 + push {lr} + ldr r1, _080710A0 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0xb + strb r2, [r1] + ldr r2, _080710A4 @ =gUnk_0811BA88 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080710A0: .4byte gUnk_03003F80 +_080710A4: .4byte gUnk_0811BA88 + + thumb_func_start sub_080710A8 +sub_080710A8: @ 0x080710A8 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xd] + ldr r1, _080710EC @ =gUnk_03003F80 + ldr r3, [r1, #0x30] + movs r0, #1 + orrs r3, r0 + ldr r0, _080710F0 @ =0xFFFFF3FF + ands r3, r0 + str r3, [r1, #0x30] + strb r2, [r1, #0xc] + ldrb r2, [r1, #5] + ldrb r0, [r1, #0x1b] + orrs r0, r2 + adds r5, r1, #0 + cmp r0, #0 + bne _080710FA + movs r0, #0x80 + ands r3, r0 + cmp r3, #0 + bne _080710FA + bl sub_08077B2C + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080710F4 + movs r0, #0x84 + lsls r0, r0, #3 + b _080710F8 + .align 2, 0 +_080710EC: .4byte gUnk_03003F80 +_080710F0: .4byte 0xFFFFF3FF +_080710F4: + movs r0, #0x81 + lsls r0, r0, #4 +_080710F8: + strh r0, [r5, #8] +_080710FA: + movs r0, #0 + strb r0, [r5, #0x1e] + ldrb r1, [r4, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + movs r0, #1 + bl sub_08079FC4 + lsls r0, r0, #4 + subs r0, #4 + lsls r0, r0, #0xc + str r0, [r4, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + bl sub_0807A108 + movs r0, #0x7c + bl sub_080A3268 + movs r0, #0x78 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08071130 +sub_08071130: @ 0x08071130 + push {r4, r5, r6, lr} + adds r5, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _08071206 + ldr r6, _080711B4 @ =gUnk_03003F80 + ldrb r0, [r6, #0x1b] + cmp r0, #0 + bne _08071158 + adds r0, r5, #0 + bl sub_080042B8 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08071206 +_08071158: + adds r0, r5, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08071206 + strb r0, [r6, #2] + adds r0, r5, #0 + bl sub_0800455E + ldr r0, [r5, #0x74] + cmp r0, #0 + beq _0807117E + bl sub_0800455E +_0807117E: + adds r0, r5, #0 + movs r1, #7 + bl sub_08008790 + ldrb r0, [r6, #0x14] + cmp r0, #0 + bne _08071206 + bl sub_0807A1B8 + bl sub_08078EFC + adds r4, r0, #0 + cmp r4, #0 + bne _08071206 + bl sub_08079D48 + cmp r0, #0 + beq _080711AC + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _080711B8 +_080711AC: + strb r4, [r6, #2] + bl sub_080791D0 + b _08071206 + .align 2, 0 +_080711B4: .4byte gUnk_03003F80 +_080711B8: + movs r0, #6 + strb r0, [r5, #0xe] + ldrb r1, [r6, #5] + ldrb r0, [r6, #0xb] + orrs r0, r1 + cmp r0, #0 + bne _080711EE + ldr r1, [r6, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080711EE + movs r0, #8 + ands r1, r0 + cmp r1, #0 + beq _080711E0 + ldr r0, _080711DC @ =0x00000424 + b _080711E4 + .align 2, 0 +_080711DC: .4byte 0x00000424 +_080711E0: + movs r0, #0x82 + lsls r0, r0, #4 +_080711E4: + strh r0, [r6, #8] + adds r1, r5, #0 + adds r1, #0x58 + movs r0, #0xff + strb r0, [r1] +_080711EE: + ldrb r0, [r5, #0xd] + adds r0, #1 + movs r4, #0 + strb r0, [r5, #0xd] + bl sub_08078F60 + adds r0, r5, #0 + adds r0, #0x42 + strb r4, [r0] + movs r0, #0x7d + bl sub_080A3268 +_08071206: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08071208 +sub_08071208: @ 0x08071208 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08071244 @ =gUnk_03003F80 + ldrb r1, [r2, #5] + ldrb r0, [r2, #0xb] + orrs r0, r1 + cmp r0, #0 + bne _08071228 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08071228 + adds r0, r4, #0 + bl sub_080042B8 +_08071228: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08071240 + ldr r1, _08071244 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #2] + bl sub_080791D0 +_08071240: + pop {r4, pc} + .align 2, 0 +_08071244: .4byte gUnk_03003F80 + + thumb_func_start sub_08071248 +sub_08071248: @ 0x08071248 + push {lr} + ldr r3, _08071274 @ =gUnk_03003F80 + adds r2, r3, #0 + adds r2, #0xa8 + movs r1, #0x16 + strb r1, [r2] + ldr r1, [r3, #0x30] + movs r2, #4 + orrs r1, r2 + str r1, [r3, #0x30] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08071278 @ =gUnk_0811BA94 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071274: .4byte gUnk_03003F80 +_08071278: .4byte gUnk_0811BA94 + + thumb_func_start sub_0807127C +sub_0807127C: @ 0x0807127C + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #1 + strb r0, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3a + ands r0, r1 + strb r0, [r2] + ldr r5, _080712AC @ =gUnk_03003F80 + ldr r1, [r5, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080712B4 + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r0, _080712B0 @ =0x00000C19 + strh r0, [r5, #8] + movs r0, #0x84 + bl sub_080A3268 + b _080712E4 + .align 2, 0 +_080712AC: .4byte gUnk_03003F80 +_080712B0: .4byte 0x00000C19 +_080712B4: + movs r0, #0x80 + lsls r0, r0, #9 + ands r1, r0 + cmp r1, #0 + bne _080712C4 + adds r0, r4, #0 + bl sub_08004168 +_080712C4: + adds r0, r4, #0 + movs r1, #0xb + movs r2, #0 + bl CreateFX + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080712E0 + ldr r0, _080712DC @ =0x0000072C + b _080712E2 + .align 2, 0 +_080712DC: .4byte 0x0000072C +_080712E0: + ldr r0, _080712EC @ =0x0000044C +_080712E2: + strh r0, [r5, #8] +_080712E4: + bl sub_08077B2C + pop {r4, r5, pc} + .align 2, 0 +_080712EC: .4byte 0x0000044C + + thumb_func_start sub_080712F0 +sub_080712F0: @ 0x080712F0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r5, #0 + ldr r3, _08071314 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r2, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08071318 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807133E + b _08071342 + .align 2, 0 +_08071314: .4byte gUnk_03003F80 +_08071318: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807133E + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + cmp r0, #0xce + beq _0807133C + ldr r0, _08071338 @ =0x000002CE + strh r0, [r3, #8] + b _0807133E + .align 2, 0 +_08071338: .4byte 0x000002CE +_0807133C: + movs r5, #1 +_0807133E: + cmp r5, #0 + beq _0807137A +_08071342: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + subs r1, #5 + movs r0, #0x20 + strb r0, [r1] + 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] + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r2, _0807137C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #5 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bl sub_08079458 +_0807137A: + pop {r4, r5, pc} + .align 2, 0 +_0807137C: .4byte gUnk_03003F80 + + thumb_func_start sub_08071380 +sub_08071380: @ 0x08071380 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080713E8 @ =gUnk_03003F80 + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #0xe + strb r0, [r1] + ldr r1, _080713EC @ =gUnk_0811BA9C + 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, #7 + beq _080713FC + cmp r0, #2 + bls _080713FC + ldr r0, [r5, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080713FC + ldr r0, _080713F0 @ =gUnk_03000FF0 + ldrh r1, [r0, #2] + movs r0, #0x81 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _080713FC + bl sub_08052660 + cmp r0, #0 + bne _080713D0 + ldr r0, _080713F4 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #3 + bne _080713F8 +_080713D0: + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #7 + movs r1, #0x10 + bl sub_08050054 + movs r0, #0xf8 + bl sub_080A3268 + b _080713FC + .align 2, 0 +_080713E8: .4byte gUnk_03003F80 +_080713EC: .4byte gUnk_0811BA9C +_080713F0: .4byte gUnk_03000FF0 +_080713F4: .4byte gUnk_02033A90 +_080713F8: + bl sub_0804ACF8 +_080713FC: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08071400 +sub_08071400: @ 0x08071400 + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r1, #0 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + ldr r0, _0807149C @ =gUnk_02033A90 + ldrh r3, [r0, #0x12] + ldrh r5, [r0, #0x14] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r2, r3 + bne _0807142A + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + beq _08071444 +_0807142A: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r2, #0 + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + bl sub_08079E08 +_08071444: + adds r0, r4, #0 + bl sub_08073904 + adds r0, r4, #0 + bl sub_080042B8 + ldr r2, _080714A0 @ =gUnk_03003F80 + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0807147C + ldr r0, [r2, #0x30] + movs r1, #0x20 + orrs r0, r1 + str r0, [r2, #0x30] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #4 + strb r0, [r4, #0x14] + ldrb r1, [r4, #0x18] + subs r0, #0x45 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r0, _0807149C @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #4 + bne _0807147C + ldr r0, _080714A4 @ =0x0000052C + strh r0, [r2, #8] +_0807147C: + movs r0, #8 + strb r0, [r4, #0xe] + ldr r0, _0807149C @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #3 + beq _0807149A + 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] +_0807149A: + pop {r4, r5, pc} + .align 2, 0 +_0807149C: .4byte gUnk_02033A90 +_080714A0: .4byte gUnk_03003F80 +_080714A4: .4byte 0x0000052C + + thumb_func_start sub_080714A8 +sub_080714A8: @ 0x080714A8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08071524 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #5 + bgt _080714BE + cmp r0, #4 + blt _080714BE + ldr r0, _08071528 @ =gLinkEntity + bl sub_0806F948 +_080714BE: + ldr r3, _0807152C @ =gUnk_03003F80 + ldrb r1, [r3, #0xd] + movs r0, #0x84 + ands r0, r1 + cmp r0, #0 + bne _0807153E + ldrb r0, [r4, #0x15] + cmp r0, r1 + beq _080714D4 + movs r0, #8 + strb r0, [r4, #0xe] +_080714D4: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08071538 + ldrb r0, [r3, #0xd] + strb r0, [r4, #0x15] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x1a + strb r0, [r4, #0x14] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + movs r0, #9 + strb r0, [r4, #0xc] + movs r0, #7 + strb r0, [r4, #0xd] + strb r1, [r4, #0xf] + ldr r1, [r3, #0x30] + movs r0, #8 + ands r0, r1 + ldr r4, _08071530 @ =0x0000080C + adds r2, r4, #0 + cmp r0, #0 + beq _08071516 + ldr r0, _08071534 @ =0x0000041C + adds r2, r0, #0 +_08071516: + strh r2, [r3, #8] + movs r0, #0x21 + rsbs r0, r0, #0 + ands r1, r0 + str r1, [r3, #0x30] + b _0807156A + .align 2, 0 +_08071524: .4byte gUnk_02033A90 +_08071528: .4byte gLinkEntity +_0807152C: .4byte gUnk_03003F80 +_08071530: .4byte 0x0000080C +_08071534: .4byte 0x0000041C +_08071538: + ldrb r0, [r3, #0xd] + strb r0, [r4, #0x15] + b _08071542 +_0807153E: + movs r0, #8 + strb r0, [r4, #0xe] +_08071542: + ldr r0, _0807155C @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #4 + bne _08071560 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + bne _08071566 + adds r0, r4, #0 + bl sub_080042B8 + b _0807156A + .align 2, 0 +_0807155C: .4byte gUnk_02033A90 +_08071560: + adds r0, r4, #0 + bl sub_08077698 +_08071566: + bl sub_08079938 +_0807156A: + pop {r4, pc} + + thumb_func_start sub_0807156C +sub_0807156C: @ 0x0807156C + push {lr} + ldr r2, _080715A0 @ =gUnk_03000BF0 + movs r1, #0 + str r1, [r2, #0x30] + ldr r2, _080715A4 @ =gUnk_02034490 + movs r1, #1 + strb r1, [r2] + movs r1, #3 + strb r1, [r0, #0xd] + movs r1, #0x1e + strb r1, [r0, #0xf] + ldr r2, _080715A8 @ =gUnk_03003F80 + movs r1, #0xe7 + lsls r1, r1, #3 + strh r1, [r2, #8] + movs r1, #6 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + bl sub_08077B20 + bl sub_0805E544 + pop {pc} + .align 2, 0 +_080715A0: .4byte gUnk_03000BF0 +_080715A4: .4byte gUnk_02034490 +_080715A8: .4byte gUnk_03003F80 + + thumb_func_start sub_080715AC +sub_080715AC: @ 0x080715AC + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080715CC + adds r0, r4, #0 + bl sub_080042B8 + ldr r0, _080715D0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080715CC + movs r0, #4 + strb r0, [r4, #0xd] +_080715CC: + pop {r4, pc} + .align 2, 0 +_080715D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080715D4 +sub_080715D4: @ 0x080715D4 + push {lr} + adds r3, r0, #0 + movs r2, #0 + movs r0, #5 + strb r0, [r3, #0xd] + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + ldrb r1, [r0] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + mov r1, ip + strb r0, [r1] + strb r2, [r3, #0xf] + ldrb r0, [r3, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r3, #0x19] + adds r0, r3, #0 + adds r0, #0x80 + movs r2, #0x80 + lsls r2, r2, #1 + str r2, [r0] + adds r0, #4 + str r2, [r0] + adds r0, r3, #0 + adds r1, r2, #0 + movs r3, #0 + bl sub_0805EC9C + ldr r2, _08071628 @ =gUnk_03003F80 + ldr r0, _0807162C @ =0x000002C3 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #0x80 + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, _08071630 @ =0x0000016F + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08071628: .4byte gUnk_03003F80 +_0807162C: .4byte 0x000002C3 +_08071630: .4byte 0x0000016F + + thumb_func_start sub_08071634 +sub_08071634: @ 0x08071634 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r0, #0x81 + ldrb r0, [r0] + cmp r0, #0 + beq _08071654 + adds r1, r5, #0 + adds r1, #0x80 + ldr r0, [r1] + adds r0, #0x80 + lsls r0, r0, #0x14 + lsrs r7, r0, #0x17 + adds r4, r1, #0 + b _0807166A +_08071654: + adds r4, r5, #0 + adds r4, #0x80 + ldrb r1, [r4] + lsrs r1, r1, #6 + movs r0, #3 + eors r1, r0 + adds r1, #1 + movs r0, #0x10 + bl __divsi3 + asrs r7, r0, #1 +_0807166A: + adds r0, r5, #0 + adds r0, #0x84 + ldr r3, [r0] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r0, #0 + cmp r3, r1 + bls _08071684 + adds r0, r3, #0 + adds r0, #0x80 + lsls r0, r0, #0x14 + lsrs r3, r0, #0x17 + b _08071694 +_08071684: + cmp r3, r1 + bne _0807168C + movs r3, #0x10 + b _08071694 +_0807168C: + ldr r1, _080716B0 @ =gUnk_0811BABC + lsrs r0, r3, #5 + adds r0, r0, r1 + ldrb r3, [r0] +_08071694: + movs r0, #0x80 + lsls r0, r0, #9 + mov r8, r0 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #2 + beq _080716EA + cmp r0, #2 + bgt _080716B4 + cmp r0, #1 + beq _080716BA + b _08071754 + .align 2, 0 +_080716B0: .4byte gUnk_0811BABC +_080716B4: + cmp r0, #3 + beq _0807171E + b _08071754 +_080716BA: + movs r1, #0x29 + adds r1, r1, r5 + mov ip, r1 + ldrb r1, [r1] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + mov r1, ip + strb r0, [r1] + ldr r0, [r4] + cmp r0, #0x80 + bls _080716D6 + subs r0, r0, r7 + str r0, [r4] +_080716D6: + lsls r1, r3, #1 + ldr r0, [r2] + adds r0, r0, r1 + str r0, [r2] + mov r0, r8 + lsls r1, r0, #1 + ldr r0, [r5, #0x30] + adds r0, r0, r1 + str r0, [r5, #0x30] + b _08071754 +_080716EA: + ldr r0, [r4] + adds r0, r0, r7 + str r0, [r4] + ldr r1, [r2] + movs r6, #0x80 + lsls r6, r6, #1 + cmp r1, r6 + bls _08071710 + ldr r0, _0807170C @ =0x0000017F + cmp r1, r0 + bhi _08071702 + lsrs r3, r3, #1 +_08071702: + subs r0, r1, r3 + cmp r0, #0xff + bhi _08071716 + str r6, [r2] + b _08071718 + .align 2, 0 +_0807170C: .4byte 0x0000017F +_08071710: + cmp r1, #0x80 + bls _08071718 + subs r0, r1, r3 +_08071716: + str r0, [r2] +_08071718: + ldr r0, [r5, #0x34] + mov r1, r8 + b _08071750 +_0807171E: + ldr r0, [r4] + ldr r6, _08071740 @ =0x0000033F + cmp r0, r6 + bhi _0807172A + adds r0, r0, r7 + str r0, [r4] +_0807172A: + ldr r1, [r2] + cmp r1, r6 + bls _08071744 + movs r0, #8 + strb r0, [r5, #0xe] + movs r0, #0x1e + strb r0, [r5, #0xf] + movs r0, #6 + strb r0, [r5, #0xd] + b _0807174A + .align 2, 0 +_08071740: .4byte 0x0000033F +_08071744: + lsls r0, r3, #1 + adds r0, r1, r0 + str r0, [r2] +_0807174A: + mov r0, r8 + lsls r1, r0, #1 + ldr r0, [r5, #0x34] +_08071750: + subs r0, r0, r1 + str r0, [r5, #0x34] +_08071754: + ldr r1, [r4] + ldr r2, [r2] + adds r0, r5, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r5, #0 + bl sub_080042B8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807176C +sub_0807176C: @ 0x0807176C + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + bne _080717C6 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080717CA + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldr r1, _080717AC @ =gUnk_02033A90 + ldrb r0, [r1, #0x17] + cmp r0, #3 + bne _080717B0 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080717CA + adds r0, r4, #0 + bl sub_080717F8 + b _080717CA + .align 2, 0 +_080717AC: .4byte gUnk_02033A90 +_080717B0: + cmp r0, #6 + bne _080717C0 + ldr r0, _080717BC @ =gUnk_0813AB58 + bl sub_08080840 + b _080717CA + .align 2, 0 +_080717BC: .4byte gUnk_0813AB58 +_080717C0: + movs r0, #1 + strb r0, [r1, #0x19] + b _080717CA +_080717C6: + subs r0, #1 + strb r0, [r4, #0xe] +_080717CA: + pop {r4, pc} + + thumb_func_start sub_080717CC +sub_080717CC: @ 0x080717CC + push {lr} + adds r1, r0, #0 + ldr r0, _080717E4 @ =gUnk_03000FD0 + ldrb r0, [r0] + cmp r0, #0 + bne _080717F4 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _080717E8 + subs r0, #1 + strb r0, [r1, #0xe] + b _080717F4 + .align 2, 0 +_080717E4: .4byte gUnk_03000FD0 +_080717E8: + adds r0, r1, #0 + bl sub_080717F8 + movs r0, #0x10 + bl sub_080500F4 +_080717F4: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080717F8 +sub_080717F8: @ 0x080717F8 + push {r4, lr} + ldr r2, _08071850 @ =gUnk_02033A90 + ldrb r1, [r2, #0x16] + lsls r1, r1, #1 + strb r1, [r0, #0x14] + ldr r3, _08071854 @ =gUnk_0811BAC4 + ldrb r1, [r2, #0x16] + lsls r1, r1, #2 + adds r1, r1, r3 + ldrh r1, [r1] + ldrh r4, [r2, #0x12] + adds r1, r1, r4 + movs r4, #0 + strh r1, [r0, #0x2e] + ldrb r1, [r2, #0x16] + lsls r1, r1, #1 + adds r1, #1 + lsls r1, r1, #1 + adds r1, r1, r3 + ldrh r1, [r1] + ldrh r3, [r2, #0x14] + adds r1, r1, r3 + strh r1, [r0, #0x32] + movs r1, #0xb4 + strb r1, [r2, #0x1a] + ldr r1, _08071858 @ =gUnk_02034490 + strb r4, [r1] + movs r1, #9 + strb r1, [r0, #0xc] + strb r4, [r0, #0xd] + ldr r3, _0807185C @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + movs r2, #0x21 + rsbs r2, r2, #0 + ands r1, r2 + movs r2, #0x80 + orrs r1, r2 + str r1, [r3, #0x30] + bl sub_0805EC60 + bl sub_0805E564 + pop {r4, pc} + .align 2, 0 +_08071850: .4byte gUnk_02033A90 +_08071854: .4byte gUnk_0811BAC4 +_08071858: .4byte gUnk_02034490 +_0807185C: .4byte gUnk_03003F80 + + thumb_func_start sub_08071860 +sub_08071860: @ 0x08071860 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + beq _08071876 + bl sub_08056360 + bl sub_08071A6C + b _08071896 +_08071876: + ldr r0, _08071898 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #0x13 + strb r1, [r0] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r1, _0807189C @ =gUnk_0811BAD4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_08071896: + pop {r4, pc} + .align 2, 0 +_08071898: .4byte gUnk_03003F80 +_0807189C: .4byte gUnk_0811BAD4 + + thumb_func_start sub_080718A0 +sub_080718A0: @ 0x080718A0 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08077B2C + ldr r0, _080718EC @ =gUnk_03000B80 + adds r0, #0x63 + movs r1, #0 + strb r1, [r0] + adds r0, r4, #0 + adds r0, #0x3d + strb r1, [r0] + ldr r1, _080718F0 @ =gUnk_03003DC0 + movs r2, #6 + movs r0, #6 + strb r0, [r1] + ldrb r1, [r4, #0x11] + subs r0, #0x16 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + ldr r5, _080718F4 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080718F8 + movs r0, #2 + strb r0, [r4, #0xd] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x3b + ands r0, r1 + strb r0, [r2] + bl sub_08052BB8 + b _08071938 + .align 2, 0 +_080718EC: .4byte gUnk_03000B80 +_080718F0: .4byte gUnk_03003DC0 +_080718F4: .4byte gUnk_03003F80 +_080718F8: + ldrb r0, [r5, #2] + cmp r0, #0 + bne _08071928 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _08071914 + ldr r0, _08071910 @ =0x000003CA + b _08071916 + .align 2, 0 +_08071910: .4byte 0x000003CA +_08071914: + ldr r0, _08071924 @ =0x000003C6 +_08071916: + strh r0, [r5, #8] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _08071938 + .align 2, 0 +_08071924: .4byte 0x000003C6 +_08071928: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08071938 + strb r0, [r5, #2] +_08071938: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807193C +sub_0807193C: @ 0x0807193C + 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 _08071986 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #6 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + cmp r0, #0 + beq _08071986 + ldrb r0, [r4, #0x14] + cmp r0, #2 + bne _0807197C + ldr r1, _08071978 @ =gUnk_03003F80 + movs r0, #0xf3 + lsls r0, r0, #2 + b _08071980 + .align 2, 0 +_08071978: .4byte gUnk_03003F80 +_0807197C: + ldr r1, _08071988 @ =gUnk_03003F80 + ldr r0, _0807198C @ =0x000003C7 +_08071980: + strh r0, [r1, #8] + bl sub_08052BB8 +_08071986: + pop {r4, pc} + .align 2, 0 +_08071988: .4byte gUnk_03003F80 +_0807198C: .4byte 0x000003C7 + + thumb_func_start sub_08071990 +sub_08071990: @ 0x08071990 + push {r4, lr} + adds r2, r0, #0 + ldr r0, _080719C0 @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _080719E2 + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] + ldr r3, _080719C4 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080719D8 + ldrb r0, [r2, #0x14] + cmp r0, #2 + bne _080719CC + ldr r0, _080719C8 @ =0x000003CD + strh r0, [r3, #8] + b _08071A4A + .align 2, 0 +_080719C0: .4byte gUnk_02000050 +_080719C4: .4byte gUnk_03003F80 +_080719C8: .4byte 0x000003CD +_080719CC: + ldr r0, _080719D4 @ =0x000003C9 + strh r0, [r3, #8] + b _08071A4A + .align 2, 0 +_080719D4: .4byte 0x000003C9 +_080719D8: + bl sub_08071A6C + bl sub_08079258 + b _08071A4A +_080719E2: + ldr r4, _08071A20 @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08071A4A + ldrb r0, [r2, #0x14] + movs r3, #0 + cmp r0, #2 + bne _080719F8 + movs r3, #4 +_080719F8: + ldr r0, [r2, #0x54] + ldrb r0, [r0, #0xe] + cmp r0, #0 + beq _08071A24 + adds r0, r3, #0 + adds r0, #0xc8 + adds r1, r2, #0 + adds r1, #0x58 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + beq _08071A44 + movs r1, #0xf2 + lsls r1, r1, #2 + adds r0, r1, #0 + adds r0, r3, r0 + strh r0, [r4, #8] + b _08071A4A + .align 2, 0 +_08071A20: .4byte gUnk_03003F80 +_08071A24: + adds r0, r3, #0 + adds r0, #0xc7 + adds r1, r2, #0 + adds r1, #0x58 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + beq _08071A44 + ldr r1, _08071A40 @ =0x000003C7 + adds r0, r3, r1 + strh r0, [r4, #8] + b _08071A4A + .align 2, 0 +_08071A40: .4byte 0x000003C7 +_08071A44: + adds r0, r2, #0 + bl sub_080042B8 +_08071A4A: + pop {r4, pc} + + thumb_func_start sub_08071A4C +sub_08071A4C: @ 0x08071A4C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071A68 + bl sub_08071A6C + bl sub_0807921C +_08071A68: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08071A6C +sub_08071A6C: @ 0x08071A6C + ldr r1, _08071A84 @ =gUnk_03003DC0 + movs r0, #0 + strb r0, [r1] + ldr r3, _08071A88 @ =gLinkEntity + ldrb r1, [r3, #0x11] + lsrs r2, r1, #4 + subs r0, #0x10 + ands r0, r1 + orrs r0, r2 + strb r0, [r3, #0x11] + bx lr + .align 2, 0 +_08071A84: .4byte gUnk_03003DC0 +_08071A88: .4byte gLinkEntity + + thumb_func_start sub_08071A8C +sub_08071A8C: @ 0x08071A8C + push {lr} + ldr r1, _08071AA8 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0x19 + strb r2, [r1] + ldr r2, _08071AAC @ =gUnk_0811BAE4 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071AA8: .4byte gUnk_03003F80 +_08071AAC: .4byte gUnk_0811BAE4 + + thumb_func_start sub_08071AB0 +sub_08071AB0: @ 0x08071AB0 + push {r4, lr} + adds r3, r0, #0 + ldrb r0, [r3, #0xd] + adds r0, #1 + strb r0, [r3, #0xd] + ldr r1, _08071AD8 @ =gUnk_03003F80 + ldr r2, [r1, #0x30] + movs r0, #1 + orrs r2, r0 + str r2, [r1, #0x30] + ldrb r4, [r3, #0xa] + cmp r4, #1 + bne _08071ADC + movs r1, #0 + movs r0, #0 + strh r0, [r3, #0x24] + strb r1, [r3, #0xe] + strb r4, [r3, #0xf] + b _08071AE8 + .align 2, 0 +_08071AD8: .4byte gUnk_03003F80 +_08071ADC: + movs r0, #0x80 + ands r2, r0 + cmp r2, #0 + beq _08071AE6 + movs r0, #0x40 +_08071AE6: + strh r0, [r3, #0x24] +_08071AE8: + adds r0, r3, #0 + bl sub_08071AF0 + pop {r4, pc} + + thumb_func_start sub_08071AF0 +sub_08071AF0: @ 0x08071AF0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08071B34 @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x80 + movs r1, #0 + strh r1, [r0] + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _08071B44 + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08071B58 + ldr r0, _08071B38 @ =gUnk_0811BAF0 + ldrb r1, [r4, #0xe] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r2, [r1] + adds r0, r2, #0 + cmp r0, #0xff + beq _08071B3C + strb r2, [r4, #0xf] + ldrh r0, [r1, #2] + strh r0, [r4, #0x24] + ldrb r0, [r4, #0xe] + adds r0, #1 + strb r0, [r4, #0xe] + b _08071B58 + .align 2, 0 +_08071B34: .4byte gUnk_03003F80 +_08071B38: .4byte gUnk_0811BAF0 +_08071B3C: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _08071B5C +_08071B44: + ldrb r0, [r5, #6] + subs r0, #1 + strb r0, [r5, #6] + movs r1, #0x7f + ands r0, r1 + cmp r0, #0 + bne _08071B58 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08071B58: + bl sub_08079E08 +_08071B5C: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08071B60 +sub_08071B60: @ 0x08071B60 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08071BAC @ =gUnk_03003F80 + movs r2, #0 + movs r0, #2 + strb r0, [r5, #6] + ldr r0, [r5, #0x30] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x30] + strb r2, [r4, #0xa] + adds r0, r4, #0 + adds r0, #0x42 + strb r2, [r0] + adds r0, r4, #0 + bl sub_080728AC + movs r0, #6 + strb r0, [r4, #0xf] + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08071BA8 + movs r0, #0x82 + lsls r0, r0, #1 + strh r0, [r5, #8] + movs r0, #3 + strh r0, [r4, #0x12] + ldrb r1, [r4, #0x14] + lsrs r1, r1, #1 + adds r1, #0x3c + adds r0, r4, #0 + bl sub_080042AC +_08071BA8: + pop {r4, r5, pc} + .align 2, 0 +_08071BAC: .4byte gUnk_03003F80 + + thumb_func_start sub_08071BB0 +sub_08071BB0: @ 0x08071BB0 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08071BD4 @ =gUnk_0811BB2C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _08071BD8 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #0x12 + strb r1, [r0] + pop {pc} + .align 2, 0 +_08071BD4: .4byte gUnk_0811BB2C +_08071BD8: .4byte gUnk_03003F80 + + thumb_func_start sub_08071BDC +sub_08071BDC: @ 0x08071BDC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08071C10 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08071C9C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _08071C1C + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08071C14 + movs r0, #0x84 + lsls r0, r0, #3 + strh r0, [r5, #8] + b _08071C9C + .align 2, 0 +_08071C10: .4byte gUnk_03003F80 +_08071C14: + movs r0, #0x81 + lsls r0, r0, #4 + strh r0, [r5, #8] + b _08071C9C +_08071C1C: + strb r0, [r5, #0xc] + ldr r1, [r5, #0x30] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071C4C + ldrb r0, [r5, #0x12] + subs r0, #8 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #2 + bhi _08071C42 + adds r0, r4, #0 + bl sub_0807A298 + bl sub_08079458 + movs r0, #0xa + strb r0, [r4, #0xc] +_08071C42: + ldr r0, _08071C48 @ =0x00000C1A + b _08071C5A + .align 2, 0 +_08071C48: .4byte 0x00000C1A +_08071C4C: + movs r0, #8 + ands r1, r0 + movs r0, #0xde + lsls r0, r0, #1 + cmp r1, #0 + beq _08071C5A + ldr r0, _08071CA0 @ =0x00000459 +_08071C5A: + ldr r2, _08071CA4 @ =gUnk_03003F80 + movs r3, #0 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + ldr r1, _08071CA8 @ =0xFEDBF2FE + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #4 + strb r0, [r4, #0x14] + adds r5, r4, #0 + adds r5, #0x29 + ldrb r1, [r5] + subs r0, #0x3d + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r5] + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r3, [r2, #2] + strb r3, [r2, #6] + adds r0, r4, #0 + bl sub_0800451C + bl sub_08077B2C + movs r0, #0x87 + bl sub_080A3268 +_08071C9C: + pop {r4, r5, pc} + .align 2, 0 +_08071CA0: .4byte 0x00000459 +_08071CA4: .4byte gUnk_03003F80 +_08071CA8: .4byte 0xFEDBF2FE + + thumb_func_start sub_08071CAC +sub_08071CAC: @ 0x08071CAC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08071CFE + ldr r1, _08071CE0 @ =gUnk_03003F80 + ldr r2, [r1, #0x30] + adds r0, r2, #0 + ands r0, r3 + cmp r0, #0 + bne _08071CEC + movs r0, #8 + ands r2, r0 + ldr r0, _08071CE4 @ =0x000002BD + cmp r2, #0 + beq _08071CEE + ldr r0, _08071CE8 @ =0x0000045A + b _08071CEE + .align 2, 0 +_08071CE0: .4byte gUnk_03003F80 +_08071CE4: .4byte 0x000002BD +_08071CE8: .4byte 0x0000045A +_08071CEC: + ldr r0, _08071D00 @ =0x00000C1B +_08071CEE: + strh r0, [r1, #8] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0xf0 + strb r0, [r4, #0xe] + movs r0, #0x7b + bl sub_080A3268 +_08071CFE: + pop {r4, pc} + .align 2, 0 +_08071D00: .4byte 0x00000C1B + + thumb_func_start sub_08071D04 +sub_08071D04: @ 0x08071D04 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r0, r5, #0 + adds r0, #0x5a + ldrb r0, [r0] + cmp r0, #0 + beq _08071D7A + movs r4, #0 + movs r0, #0x28 + bl sub_080544DC + adds r1, r0, #0 + cmp r1, #0 + beq _08071D3A + ldr r0, _08071D6C @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0xb5 + movs r1, #0x20 + strb r1, [r0] + movs r0, #0x40 + movs r1, #0x60 + movs r2, #2 + bl sub_080A2960 + movs r4, #0x20 +_08071D3A: + cmp r4, #0 + beq _08071D74 + adds r0, r4, #0 + bl sub_080526A0 + movs r2, #0 + movs r0, #3 + strb r0, [r5, #0xd] + ldr r1, _08071D70 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3c + strb r2, [r0] + movs r0, #0xff + strb r0, [r5, #0x15] + movs r3, #0 + strh r2, [r5, #0x24] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r5, #0x20] + movs r0, #1 + strb r0, [r1, #2] + adds r1, #0x26 + strb r3, [r1] + b _08071D7A + .align 2, 0 +_08071D6C: .4byte gUnk_02002A40 +_08071D70: .4byte gUnk_03003F80 +_08071D74: + ldr r1, _08071D7C @ =gUnk_030010A0 + movs r0, #1 + strb r0, [r1, #5] +_08071D7A: + pop {r4, r5, pc} + .align 2, 0 +_08071D7C: .4byte gUnk_030010A0 + + thumb_func_start sub_08071D80 +sub_08071D80: @ 0x08071D80 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r5, _08071DB4 @ =gUnk_03003F80 + movs r0, #1 + strb r0, [r5, #0x14] + adds r0, r4, #0 + bl sub_08073904 + ldrb r1, [r5, #2] + movs r0, #7 + ands r0, r1 + cmp r0, #3 + bne _08071DB2 + movs r0, #0 + strb r0, [r5, #2] + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0xe2 + strb r0, [r1] + bl sub_0805E564 + bl sub_080791D0 +_08071DB2: + pop {r4, r5, pc} + .align 2, 0 +_08071DB4: .4byte gUnk_03003F80 + + thumb_func_start sub_08071DB8 +sub_08071DB8: @ 0x08071DB8 + push {lr} + ldr r2, _08071DCC @ =gUnk_0811BB3C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071DCC: .4byte gUnk_0811BB3C + + thumb_func_start sub_08071DD0 +sub_08071DD0: @ 0x08071DD0 + push {lr} + adds r2, r0, #0 + ldr r1, _08071DF4 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + strb r0, [r2, #0xe] + adds r3, r1, #0 + adds r3, #0x39 + ldrb r0, [r3] + cmp r0, #0 + beq _08071DF8 + movs r0, #0 + strb r0, [r3] + movs r0, #2 + strb r0, [r2, #0xd] + adds r0, #0xfe + b _08071E00 + .align 2, 0 +_08071DF4: .4byte gUnk_03003F80 +_08071DF8: + movs r0, #1 + strb r0, [r2, #0xd] + movs r0, #0x8a + lsls r0, r0, #1 +_08071E00: + strh r0, [r1, #8] + pop {pc} + + thumb_func_start sub_08071E04 +sub_08071E04: @ 0x08071E04 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _08071E38 + ldr r5, _08071E34 @ =gUnk_03003F80 + ldrb r0, [r5, #0x14] + cmp r0, #0 + bne _08071E38 + bl sub_0807A1B8 + ldrb r0, [r5, #0x12] + cmp r0, #1 + bne _08071E38 + movs r0, #7 + strb r0, [r5, #0x11] + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #2 + orrs r0, r1 + str r0, [r5, #0x30] + bl sub_080791BC + b _08071E72 + .align 2, 0 +_08071E34: .4byte gUnk_03003F80 +_08071E38: + adds r0, r4, #0 + bl sub_080042B8 + bl sub_08079B24 + cmp r0, #0 + bne _08071E4E + adds r0, r4, #0 + bl sub_08079708 + b _08071E72 +_08071E4E: + bl sub_080792D8 + bl sub_0807953C + cmp r0, #0 + beq _08071E60 + ldrb r0, [r4, #0xe] + subs r0, #2 + b _08071E64 +_08071E60: + ldrb r0, [r4, #0xe] + subs r0, #1 +_08071E64: + strb r0, [r4, #0xe] + movs r0, #0xe + ldrsb r0, [r4, r0] + cmp r0, #0 + bgt _08071E72 + bl sub_080791BC +_08071E72: + pop {r4, r5, pc} + + thumb_func_start sub_08071E74 +sub_08071E74: @ 0x08071E74 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + bl sub_08079E08 + ldrb r0, [r4, #0xe] + adds r1, r0, #0 + adds r1, #0xff + strb r1, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08071E96 + bl sub_080791BC +_08071E96: + pop {r4, pc} + + thumb_func_start sub_08071E98 +sub_08071E98: @ 0x08071E98 + push {lr} + ldr r2, _08071EAC @ =gUnk_0811BB48 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071EAC: .4byte gUnk_0811BB48 + + thumb_func_start sub_08071EB0 +sub_08071EB0: @ 0x08071EB0 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + adds r0, r4, #0 + movs r1, #0xe + bl sub_08077C3C + cmp r0, #0 + beq _08071F12 + ldr r3, _08071EE4 @ =gUnk_03003F80 + adds r2, r3, #0 + adds r2, #0x38 + ldrb r1, [r2] + adds r0, #0x68 + strb r1, [r0] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r0, [r2] + cmp r0, #0x20 + bne _08071EEC + ldr r0, _08071EE8 @ =0x00000614 + strh r0, [r3, #8] + b _08071F12 + .align 2, 0 +_08071EE4: .4byte gUnk_03003F80 +_08071EE8: .4byte 0x00000614 +_08071EEC: + cmp r0, #0x20 + blt _08071F00 + cmp r0, #0x25 + bgt _08071F00 + ldr r0, _08071EFC @ =0x000002DF + strh r0, [r3, #8] + b _08071F12 + .align 2, 0 +_08071EFC: .4byte 0x000002DF +_08071F00: + movs r0, #0xc2 + lsls r0, r0, #3 + strh r0, [r3, #8] + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + movs r1, #2 + bl sub_0807CAA0 +_08071F12: + pop {r4, pc} + + thumb_func_start sub_08071F14 +sub_08071F14: @ 0x08071F14 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r4, #0x5a + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08071F32 + ldr r1, _08071F34 @ =gUnk_03003F80 + movs r0, #0 + str r0, [r1, #0x2c] + bl sub_0807921C +_08071F32: + pop {r4, pc} + .align 2, 0 +_08071F34: .4byte gUnk_03003F80 + + thumb_func_start sub_08071F38 +sub_08071F38: @ 0x08071F38 + push {lr} + ldr r2, _08071F4C @ =gUnk_0811BB50 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08071F4C: .4byte gUnk_0811BB50 + + thumb_func_start sub_08071F50 +sub_08071F50: @ 0x08071F50 + push {lr} + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x78 + strb r1, [r0, #0xe] + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + ldr r1, _08071F78 @ =gUnk_03003F80 + movs r0, #0xa5 + lsls r0, r0, #2 + strh r0, [r1, #8] + bl sub_08077B20 + ldr r0, _08071F7C @ =0x00000195 + bl sub_080A3268 + pop {pc} + .align 2, 0 +_08071F78: .4byte gUnk_03003F80 +_08071F7C: .4byte 0x00000195 + + thumb_func_start sub_08071F80 +sub_08071F80: @ 0x08071F80 + push {r4, r5, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + adds r5, r0, #0 + cmp r5, #0 + bne _08071FB8 + adds r0, r4, #0 + bl sub_08016A04 + ldr r0, _08071FB4 @ =gUnk_03003F80 + strb r5, [r0, #2] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _08071FB8 + bl sub_08079D48 + cmp r0, #0 + bne _08071FB8 + adds r0, r4, #0 + bl sub_08072008 + b _08072004 + .align 2, 0 +_08071FB4: .4byte gUnk_03003F80 +_08071FB8: + bl sub_08079B24 + cmp r0, #0 + bne _08071FC8 + adds r0, r4, #0 + bl sub_08079708 + b _08071FFE +_08071FC8: + ldr r0, _08071FEC @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + lsls r1, r1, #4 + ands r0, r1 + cmp r0, #0 + beq _08071FFE + bl sub_0807953C + cmp r0, #0 + beq _08071FF0 + ldrb r0, [r4, #0xe] + subs r0, #3 + strb r0, [r4, #0xe] + adds r1, r4, #0 + adds r1, #0x62 + movs r0, #2 + b _08071FF4 + .align 2, 0 +_08071FEC: .4byte gUnk_03003F80 +_08071FF0: + adds r1, r4, #0 + adds r1, #0x62 +_08071FF4: + strb r0, [r1] + movs r0, #0xe + ldrsb r0, [r4, r0] + cmp r0, #0 + bgt _08072004 +_08071FFE: + adds r0, r4, #0 + bl sub_08072008 +_08072004: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08072008 +sub_08072008: @ 0x08072008 + push {lr} + adds r3, r0, #0 + adds r1, r3, #0 + adds r1, #0x3d + movs r2, #0 + movs r0, #0xa0 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x42 + strb r2, [r0] + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + adds r0, r3, #0 + adds r0, #0x62 + strb r2, [r0] + ldr r2, _08072044 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08072048 @ =0xFFFFF7FE + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r3, #0 + movs r1, #0xd + movs r2, #0 + bl CreateFX + bl sub_080791BC + pop {pc} + .align 2, 0 +_08072044: .4byte gUnk_03003F80 +_08072048: .4byte 0xFFFFF7FE + + thumb_func_start sub_0807204C +sub_0807204C: @ 0x0807204C + push {lr} + ldr r2, _08072060 @ =gUnk_0811BB58 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072060: .4byte gUnk_0811BB58 + + thumb_func_start sub_08072064 +sub_08072064: @ 0x08072064 + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08072094 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x3a + ldrb r1, [r1] + strb r1, [r0, #0xe] + adds r0, r2, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, #1 + ldrb r0, [r0] + lsls r0, r0, #8 + orrs r1, r0 + strh r1, [r2, #8] + bl sub_08077B2C + pop {pc} + .align 2, 0 +_08072094: .4byte gUnk_03003F80 + + thumb_func_start sub_08072098 +sub_08072098: @ 0x08072098 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080720B4 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080720D8 + b _080720C2 +_080720B4: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080720D8 +_080720C2: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _080720D4 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_080720D4: + bl sub_080791BC +_080720D8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080720DC +sub_080720DC: @ 0x080720DC + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _080720F8 + ldr r0, _080720FC @ =gUnk_0811BB60 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_080720F8: + pop {r4, pc} + .align 2, 0 +_080720FC: .4byte gUnk_0811BB60 + + thumb_func_start sub_08072100 +sub_08072100: @ 0x08072100 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r0, _08072148 @ =gUnk_08114F88 + str r0, [r4, #0x48] + ldr r2, _0807214C @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r0, [r0] + strb r0, [r4, #0xe] + movs r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _0807213A + movs r0, #0xff + strb r0, [r4, #0x15] +_0807213A: + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08072154 + ldr r0, _08072150 @ =0x00000404 + b _08072158 + .align 2, 0 +_08072148: .4byte gUnk_08114F88 +_0807214C: .4byte gUnk_03003F80 +_08072150: .4byte 0x00000404 +_08072154: + movs r0, #0x82 + lsls r0, r0, #1 +_08072158: + strh r0, [r2, #8] + bl sub_08077B2C + adds r0, r4, #0 + bl sub_08072168 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08072168 +sub_08072168: @ 0x08072168 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + lsls r0, r0, #0x10 + movs r1, #0x80 + lsls r1, r1, #6 + cmp r0, #0 + beq _0807218A + movs r1, #0x80 + lsls r1, r1, #7 +_0807218A: + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, _080721A4 @ =gUnk_03003F80 + adds r0, #0x3a + ldrb r0, [r0] + cmp r0, #0 + beq _080721A8 + adds r0, r4, #0 + bl sub_0806F69C + b _080721AC + .align 2, 0 +_080721A4: .4byte gUnk_03003F80 +_080721A8: + bl sub_08079E08 +_080721AC: + ldr r1, _080721E0 @ =gUnk_03003F80 + ldrb r0, [r4, #0x15] + strb r0, [r1, #0xd] + bl sub_08019840 + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _080721DE + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + bl sub_08016A04 + bl sub_080791BC +_080721DE: + pop {r4, pc} + .align 2, 0 +_080721E0: .4byte gUnk_03003F80 + + thumb_func_start sub_080721E4 +sub_080721E4: @ 0x080721E4 + push {lr} + ldr r1, _08072208 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0x1a + strb r2, [r1] + ldr r2, _0807220C @ =gUnk_0811BB68 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + ldr r0, _08072210 @ =gUnk_0200AF00 + adds r0, #0x2e + movs r1, #8 + strb r1, [r0] + pop {pc} + .align 2, 0 +_08072208: .4byte gUnk_03003F80 +_0807220C: .4byte gUnk_0811BB68 +_08072210: .4byte gUnk_0200AF00 + + thumb_func_start sub_08072214 +sub_08072214: @ 0x08072214 + push {lr} + adds r3, r0, #0 + movs r0, #1 + strb r0, [r3, #0xd] + movs r0, #0x80 + strh r0, [r3, #0x24] + ldr r2, _08072244 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x38 + ldrb r0, [r0] + strb r0, [r3, #0xe] + ldrb r0, [r3, #0x14] + movs r1, #4 + eors r0, r1 + lsls r0, r0, #2 + strb r0, [r3, #0x15] + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08072248 + movs r0, #0xd3 + lsls r0, r0, #2 + b _0807224A + .align 2, 0 +_08072244: .4byte gUnk_03003F80 +_08072248: + ldr r0, _0807225C @ =0x00000944 +_0807224A: + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #1 + orrs r0, r1 + str r0, [r2, #0x30] + adds r0, r3, #0 + bl sub_08072260 + pop {pc} + .align 2, 0 +_0807225C: .4byte 0x00000944 + + thumb_func_start sub_08072260 +sub_08072260: @ 0x08072260 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _0807229C @ =gUnk_03003F80 + adds r1, r5, #0 + adds r1, #0x80 + movs r0, #0 + strh r0, [r1] + bl sub_08079E08 + 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 _080722B0 + ldr r0, [r5, #0x30] + movs r1, #2 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080722A0 + movs r0, #0xd3 + lsls r0, r0, #2 + b _080722A2 + .align 2, 0 +_0807229C: .4byte gUnk_03003F80 +_080722A0: + ldr r0, _080722B4 @ =0x00000944 +_080722A2: + strh r0, [r5, #8] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + bl sub_080791BC +_080722B0: + pop {r4, r5, pc} + .align 2, 0 +_080722B4: .4byte 0x00000944 + + thumb_func_start sub_080722B8 +sub_080722B8: @ 0x080722B8 + push {lr} + ldr r1, _080722D4 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0xa + strb r2, [r1] + ldr r2, _080722D8 @ =gUnk_0811BB70 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080722D4: .4byte gUnk_03003F80 +_080722D8: .4byte gUnk_0811BB70 + + thumb_func_start sub_080722DC +sub_080722DC: @ 0x080722DC + push {r4, r5, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldr r2, _08072318 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + adds r5, r2, #0 + cmp r0, #0 + bne _0807231C + movs r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0x42 + movs r2, #0 + bl sub_080A2960 + cmp r0, #0 + beq _0807230E + str r4, [r0, #0x54] +_0807230E: + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r5, #8] + b _08072332 + .align 2, 0 +_08072318: .4byte gUnk_03003F80 +_0807231C: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + movs r0, #3 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0xa + strb r0, [r1] +_08072332: + ldr r0, [r5, #0x30] + ldr r1, _08072350 @ =0x00000401 + orrs r0, r1 + str r0, [r5, #0x30] + bl sub_08077B2C + movs r0, #0x92 + lsls r0, r0, #1 + bl sub_080A3268 + movs r0, #0x7a + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08072350: .4byte 0x00000401 + + thumb_func_start sub_08072354 +sub_08072354: @ 0x08072354 + push {r4, lr} + adds r4, r0, #0 + movs r2, #0xc + rsbs r2, r2, #0 + movs r1, #0 + bl sub_0806F854 + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08079744 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r3, r0, #0 + cmp r3, #0 + bne _080723C0 + 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 + adds r0, #0x42 + strb r3, [r0] + movs r0, #2 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + ldr r2, _080723C4 @ =gUnk_03003F80 + ldr r0, _080723C8 @ =0x000002C1 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + ldr r1, _080723CC @ =0xFFFFFBFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r4, #0 + bl sub_08016A04 + adds r0, r4, #0 + movs r1, #0xc + movs r2, #0 + bl CreateFX + movs r0, #0xd3 + lsls r0, r0, #1 + bl sub_080A3268 +_080723C0: + pop {r4, pc} + .align 2, 0 +_080723C4: .4byte gUnk_03003F80 +_080723C8: .4byte 0x000002C1 +_080723CC: .4byte 0xFFFFFBFF + + thumb_func_start sub_080723D0 +sub_080723D0: @ 0x080723D0 + 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 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0807240A + 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 r1, r4, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + subs r0, #0x16 + bl sub_080526A0 + bl sub_08079458 +_0807240A: + pop {r4, pc} + + thumb_func_start sub_0807240C +sub_0807240C: @ 0x0807240C + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x42 + ldrb r0, [r1] + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08072448 + ldrb r0, [r2, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r2, #0x18] + adds r1, r2, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + ldr r2, _0807244C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08072450 @ =0xFFFFFBFF + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + bl sub_08079458 +_08072448: + pop {pc} + .align 2, 0 +_0807244C: .4byte gUnk_03003F80 +_08072450: .4byte 0xFFFFFBFF + + thumb_func_start sub_08072454 +sub_08072454: @ 0x08072454 + push {lr} + ldr r2, _08072468 @ =gUnk_0811BB80 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072468: .4byte gUnk_0811BB80 + + thumb_func_start sub_0807246C +sub_0807246C: @ 0x0807246C + push {lr} + movs r1, #1 + strb r1, [r0, #0xd] + ldr r2, _0807248C @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r1, [r1] + strb r1, [r0, #0xe] + movs r0, #0xf0 + lsls r0, r0, #2 + strh r0, [r2, #8] + movs r0, #0x7b + bl sub_080A3268 + pop {pc} + .align 2, 0 +_0807248C: .4byte gUnk_03003F80 + + thumb_func_start sub_08072490 +sub_08072490: @ 0x08072490 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _080724AE + adds r0, r1, #0 + bl sub_080042B8 + bl sub_08079E08 + b _080724C2 +_080724AE: + adds r0, r1, #0 + adds r0, #0x3d + movs r1, #0x3c + strb r1, [r0] + movs r0, #8 + rsbs r0, r0, #0 + bl sub_080526A0 + bl sub_080791D0 +_080724C2: + pop {pc} + + thumb_func_start sub_080724C4 +sub_080724C4: @ 0x080724C4 + push {lr} + ldr r2, _080724D8 @ =gUnk_0811BB88 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_080724D8: .4byte gUnk_0811BB88 + + thumb_func_start sub_080724DC +sub_080724DC: @ 0x080724DC + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + bl sub_0807A108 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x29 + beq _0807254C + ldr r1, _08072530 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x89 + ldrb r0, [r0] + cmp r0, #0 + bne _08072512 + adds r0, r1, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08072512 + adds r0, r4, #0 + bl sub_0807AE20 +_08072512: + ldr r0, _08072534 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _08072538 + ldrb r0, [r4, #0x11] + lsrs r2, r0, #4 + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + orrs r1, r2 + strb r1, [r4, #0x11] + adds r0, r4, #0 + bl sub_080728AC + b _08072588 + .align 2, 0 +_08072530: .4byte gUnk_03003F80 +_08072534: .4byte gUnk_03000BF0 +_08072538: + ldr r0, _08072548 @ =gUnk_03003F80 + ldrb r0, [r0, #0x1c] + cmp r0, #0 + bne _08072588 + adds r0, r4, #0 + bl sub_080042B8 + b _08072588 + .align 2, 0 +_08072548: .4byte gUnk_03003F80 +_0807254C: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #1 + strb r0, [r4, #0xd] + ldr r0, _08072570 @ =gUnk_02034350 + ldrb r0, [r0] + cmp r0, #0 + bne _08072588 + ldr r2, _08072574 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807257C + ldr r0, _08072578 @ =0x00000C18 + b _08072580 + .align 2, 0 +_08072570: .4byte gUnk_02034350 +_08072574: .4byte gUnk_03003F80 +_08072578: .4byte 0x00000C18 +_0807257C: + movs r0, #0x82 + lsls r0, r0, #1 +_08072580: + strh r0, [r2, #8] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_08072588: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807258C +sub_0807258C: @ 0x0807258C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080725D0 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _08072604 + adds r0, r4, #0 + bl sub_0807A894 + cmp r0, #0x29 + bne _080725E4 + bl sub_08079E08 + bl sub_080797C4 + cmp r0, #0 + beq _080725DC + ldr r2, _080725D4 @ =gUnk_03003F80 + ldr r1, _080725D8 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r2, #0x16] + ldrh r0, [r1, #0x32] + strh r0, [r2, #0x18] + ldrb r1, [r4, #0x11] + lsrs r2, r1, #4 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + adds r0, r4, #0 + bl sub_080728AC + b _08072604 + .align 2, 0 +_080725D0: .4byte gUnk_03000BF0 +_080725D4: .4byte gUnk_03003F80 +_080725D8: .4byte gLinkEntity +_080725DC: + adds r0, r4, #0 + bl sub_080042B8 + b _08072604 +_080725E4: + ldr r2, _08072624 @ =gUnk_03003F80 + ldr r1, _08072628 @ =gLinkEntity + ldrh r0, [r1, #0x2e] + strh r0, [r2, #0x16] + ldrh r0, [r1, #0x32] + strh r0, [r2, #0x18] + ldrb r1, [r4, #0x11] + lsrs r2, r1, #4 + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, #0x11] + adds r0, r4, #0 + bl sub_080728AC +_08072604: + ldr r1, _08072624 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x89 + ldrb r0, [r0] + cmp r0, #0 + bne _08072620 + adds r0, r1, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08072620 + adds r0, r4, #0 + bl sub_0807AE20 +_08072620: + pop {r4, pc} + .align 2, 0 +_08072624: .4byte gUnk_03003F80 +_08072628: .4byte gLinkEntity + + thumb_func_start sub_0807262C +sub_0807262C: @ 0x0807262C + push {lr} + ldr r1, _08072648 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #9 + strb r2, [r1] + ldr r2, _0807264C @ =gUnk_0811BB90 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072648: .4byte gUnk_03003F80 +_0807264C: .4byte gUnk_0811BB90 + + thumb_func_start sub_08072650 +sub_08072650: @ 0x08072650 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08072698 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xe + ands r0, r1 + cmp r0, #0 + bne _0807266E + ldr r0, _0807269C @ =gLinkEntity + bl sub_0806F948 + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_0807266E: + movs r1, #0 + movs r0, #1 + strb r0, [r4, #0xd] + strb r1, [r4, #0xe] + bl sub_08077B2C + ldr r3, [r5, #0x30] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _080726A4 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + ldr r0, _080726A0 @ =0x00000C08 + b _080726BE + .align 2, 0 +_08072698: .4byte gUnk_03003F80 +_0807269C: .4byte gLinkEntity +_080726A0: .4byte 0x00000C08 +_080726A4: + adds r0, r4, #0 + adds r0, #0x40 + movs r1, #0x1e + strb r1, [r0] + movs r0, #8 + ands r3, r0 + cmp r3, #0 + beq _080726BA + movs r0, #0x87 + lsls r0, r0, #3 + b _080726BE +_080726BA: + movs r0, #0xab + lsls r0, r0, #2 +_080726BE: + strh r0, [r5, #8] + ldr r2, _080726E0 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xb + orrs r0, r1 + str r0, [r2, #0x30] + bl sub_08000E50 + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080726E4 + movs r0, #0x79 + bl sub_080A3268 + b _080726EA + .align 2, 0 +_080726E0: .4byte gUnk_03003F80 +_080726E4: + movs r0, #0x78 + bl sub_080A3268 +_080726EA: + movs r0, #0x7e + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080726F4 +sub_080726F4: @ 0x080726F4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r3, _08072744 @ =gUnk_03003F80 + ldr r2, [r3, #0x30] + movs r0, #0xc0 + lsls r0, r0, #0xc + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #0xb + cmp r0, r1 + bne _08072730 + movs r0, #0x80 + lsls r0, r0, #0xe + ands r0, r2 + cmp r0, #0 + bne _0807274C + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + beq _0807274C + adds r0, r4, #0 + adds r0, #0x41 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807274C +_08072730: + ldr r0, _08072748 @ =0xFFFBFFFF + ands r2, r0 + str r2, [r3, #0x30] + bl sub_08078EFC + cmp r0, #0 + beq _08072740 + b _080728A0 +_08072740: + b _080727E0 + .align 2, 0 +_08072744: .4byte gUnk_03003F80 +_08072748: .4byte 0xFFFBFFFF +_0807274C: + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldr r0, _080727A0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807277E + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _0807277E + ldr r0, _080727A4 @ =gLinkEntity + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + movs r0, #4 + strb r0, [r4, #0xe] +_0807277E: + ldr r5, _080727A0 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0807278E + bl sub_0807A1B8 +_0807278E: + bl sub_08078EFC + cmp r0, #0 + beq _080727AC + ldr r0, [r5, #0x30] + ldr r1, _080727A8 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r5, #0x30] + b _080728A0 + .align 2, 0 +_080727A0: .4byte gUnk_03003F80 +_080727A4: .4byte gLinkEntity +_080727A8: .4byte 0xFFFBFFFF +_080727AC: + ldr r1, [r5, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _080727C4 + ldr r0, _080727C0 @ =0xFFFBFFFF + ands r1, r0 + str r1, [r5, #0x30] + b _080728A0 + .align 2, 0 +_080727C0: .4byte 0xFFFBFFFF +_080727C4: + adds r0, r4, #0 + bl sub_0807AC54 + cmp r0, #0 + bne _080728A0 + ldr r1, [r5, #0x30] + movs r3, #0x94 + lsls r3, r3, #2 + ands r3, r1 + cmp r3, #0 + beq _080727EC + ldr r0, _080727E8 @ =0xFFFBFFFF + ands r1, r0 + str r1, [r5, #0x30] +_080727E0: + adds r0, r4, #0 + bl sub_080728AC + b _080728A0 + .align 2, 0 +_080727E8: .4byte 0xFFFBFFFF +_080727EC: + ldrb r0, [r5, #0x12] + cmp r0, #0x17 + bne _080727FE + adds r0, r4, #0 + bl sub_0800892E + adds r5, r4, #0 + adds r5, #0x5a + b _08072844 +_080727FE: + adds r1, r4, #0 + adds r1, #0x5a + ldrb r0, [r1] + movs r2, #0xf + ands r2, r0 + adds r5, r1, #0 + cmp r2, #1 + beq _0807282A + cmp r2, #1 + bgt _08072818 + cmp r2, #0 + beq _08072822 + b _0807283C +_08072818: + cmp r2, #2 + beq _08072832 + cmp r2, #3 + beq _0807283A + b _0807283C +_08072822: + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0807283C +_0807282A: + ldrh r0, [r4, #0x24] + adds r0, #0x20 + strh r0, [r4, #0x24] + b _0807283C +_08072832: + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + b _0807283C +_0807283A: + strh r3, [r4, #0x24] +_0807283C: + bl sub_08078F24 + bl sub_08079E08 +_08072844: + ldrb r1, [r5] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + bne _08072860 + ldr r0, _080728A4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _08072860 + adds r0, r4, #0 + adds r0, #0x40 + strb r1, [r0] +_08072860: + ldrb r1, [r5] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _08072870 + adds r0, r4, #0 + bl sub_08077698 +_08072870: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08072882 + ldr r0, _080728A4 @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08072886 +_08072882: + bl sub_080791D0 +_08072886: + ldrb r1, [r5] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807289A + ldr r0, _080728A4 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _080728A8 @ =0xFFDBFFFF + ands r1, r2 + str r1, [r0, #0x30] +_0807289A: + adds r0, r4, #0 + bl sub_080042B8 +_080728A0: + pop {r4, r5, pc} + .align 2, 0 +_080728A4: .4byte gUnk_03003F80 +_080728A8: .4byte 0xFFDBFFFF + + thumb_func_start sub_080728AC +sub_080728AC: @ 0x080728AC + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_08079938 + ldr r0, _080728C8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080728CC + adds r0, r4, #0 + bl sub_0807B068 + b _080728D0 + .align 2, 0 +_080728C8: .4byte gUnk_03003F80 +_080728CC: + bl sub_08078F60 +_080728D0: + ldr r1, _08072940 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _080728E0 + movs r0, #0 + strh r0, [r4, #0x24] +_080728E0: + ldr r0, [r1, #0x30] + movs r5, #0x40 + ands r5, r0 + adds r3, r0, #0 + cmp r5, #0 + bne _080728F6 + ldr r0, _08072944 @ =gLinkEntity + ldrb r1, [r0, #0x18] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x18] +_080728F6: + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + bne _08072910 + ldr r2, _08072944 @ =gLinkEntity + 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] +_08072910: + ldr r0, _08072948 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0807292C + cmp r5, #0 + beq _08072928 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08072928: + bl sub_080791D0 +_0807292C: + ldr r0, _08072940 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _0807293C + bl sub_0807A1B8 +_0807293C: + pop {r4, r5, pc} + .align 2, 0 +_08072940: .4byte gUnk_03003F80 +_08072944: .4byte gLinkEntity +_08072948: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807294C +sub_0807294C: @ 0x0807294C + push {lr} + ldr r1, _08072968 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0x17 + strb r2, [r1] + ldr r2, _0807296C @ =gUnk_0811BB98 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072968: .4byte gUnk_03003F80 +_0807296C: .4byte gUnk_0811BB98 + + thumb_func_start sub_08072970 +sub_08072970: @ 0x08072970 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _08072A4C + movs r7, #1 + strb r7, [r5, #0xd] + ldrh r2, [r5, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + adds r0, r1, #0 + ands r0, r2 + movs r2, #8 + orrs r0, r2 + strh r0, [r5, #0x2e] + ldrh r0, [r5, #0x32] + ands r1, r0 + movs r0, #0xa + movs r3, #0 + orrs r1, r0 + strh r1, [r5, #0x32] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r2, r5, #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] + strb r3, [r5, #0xe] + ldr r2, _080729D8 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xd + orrs r0, r1 + str r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080729DC + movs r0, #0x95 + lsls r0, r0, #4 + strh r0, [r2, #8] + adds r6, r5, #0 + adds r6, #0x38 + b _08072A14 + .align 2, 0 +_080729D8: .4byte gUnk_03003F80 +_080729DC: + ldr r0, _08072A50 @ =0x0000061C + strh r0, [r2, #8] + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r2, _08072A54 @ =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 + adds r4, r5, #0 + adds r4, #0x38 + ldrb r1, [r4] + bl sub_080001DA + ldr r1, _08072A58 @ =0x00004020 + adds r6, r4, #0 + cmp r0, r1 + bne _08072A14 + strb r7, [r5, #0xe] +_08072A14: + ldr r0, _08072A5C @ =0x00004070 + movs r7, #0x2e + ldrsh r1, [r5, r7] + ldr r3, _08072A54 @ =gUnk_03000BF0 + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r7, #0x32 + ldrsh r2, [r5, r7] + ldrh r3, [r3, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + ands r2, r4 + lsls r2, r2, #6 + orrs r1, r2 + ldrb r2, [r6] + bl sub_0800015E + bl sub_08077B2C + adds r0, r5, #0 + bl sub_08072A60 + movs r0, #0x81 + bl sub_080A3268 +_08072A4C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08072A50: .4byte 0x0000061C +_08072A54: .4byte gUnk_03000BF0 +_08072A58: .4byte 0x00004020 +_08072A5C: .4byte 0x00004070 + + thumb_func_start sub_08072A60 +sub_08072A60: @ 0x08072A60 + push {lr} + adds r2, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08072AC4 + ldrb r0, [r2, #0xe] + cmp r0, #1 + bne _08072A9C + movs r0, #3 + strb r0, [r2, #0xd] + movs r0, #0x28 + strb r0, [r2, #0xe] + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x61 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08072A94 @ =gUnk_03003F80 + ldr r0, _08072A98 @ =0x00000624 + strh r0, [r1, #8] + b _08072ACA + .align 2, 0 +_08072A94: .4byte gUnk_03003F80 +_08072A98: .4byte 0x00000624 +_08072A9C: + movs r0, #2 + strb r0, [r2, #0xd] + ldr r2, _08072AB4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08072ABC + ldr r0, _08072AB8 @ =0x00000954 + strh r0, [r2, #8] + b _08072ACA + .align 2, 0 +_08072AB4: .4byte gUnk_03003F80 +_08072AB8: .4byte 0x00000954 +_08072ABC: + movs r0, #0xc4 + lsls r0, r0, #3 + strh r0, [r2, #8] + b _08072ACA +_08072AC4: + adds r0, r2, #0 + bl sub_080042B8 +_08072ACA: + pop {pc} + + thumb_func_start sub_08072ACC +sub_08072ACC: @ 0x08072ACC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08072AE0 @ =gUnk_03003F80 + ldrb r3, [r5, #0xd] + lsls r2, r3, #0x18 + lsrs r0, r2, #0x18 + cmp r0, #0xff + bne _08072AE4 + movs r0, #0 + b _08072B56 + .align 2, 0 +_08072AE0: .4byte gUnk_03003F80 +_08072AE4: + ldrb r1, [r4, #0xf] + cmp r1, #7 + bls _08072B50 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + strb r3, [r4, #0x15] + movs r0, #0xd0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + movs r0, #0x78 + strh r0, [r4, #0x24] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x80 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + movs r1, #0x39 + rsbs r1, r1, #0 + ands r0, r1 + movs r1, #8 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x41 + strb r0, [r5, #2] + bl sub_0807921C + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldr r2, _08072B4C @ =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 + b _08072B58 + .align 2, 0 +_08072B4C: .4byte gUnk_03000BF0 +_08072B50: + lsrs r0, r2, #0x1a + strb r0, [r4, #0x14] + adds r0, r1, #1 +_08072B56: + strb r0, [r4, #0xf] +_08072B58: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08072B5C +sub_08072B5C: @ 0x08072B5C + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r0, [r5, #0xe] + movs r1, #0x28 + subs r1, r1, r0 + asrs r1, r1, #4 + adds r1, #1 + adds r0, r5, #0 + bl sub_080042BA + adds r0, r5, #0 + bl sub_0806F948 + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _08072B82 + subs r0, #1 + strb r0, [r5, #0xe] + b _08072C40 +_08072B82: + ldr r0, _08072C04 @ =0x00004021 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldr r3, _08072C08 @ =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 + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r0, #1 + bl sub_0807A2F8 + adds r4, r0, #0 + cmp r4, #0 + bne _08072C10 + 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, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + movs r0, #0x40 + strh r0, [r5, #0x24] + movs r0, #0xe4 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + ldr r0, [r5, #0x34] + subs r0, #1 + str r0, [r5, #0x34] + ldr r1, _08072C0C @ =gUnk_03003F80 + movs r0, #0x41 + strb r0, [r1, #2] + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r5, #0 + movs r1, #0 + bl sub_0806F854 + bl sub_0807921C + b _08072C40 + .align 2, 0 +_08072C04: .4byte 0x00004021 +_08072C08: .4byte gUnk_03000BF0 +_08072C0C: .4byte gUnk_03003F80 +_08072C10: + bl sub_08052620 + cmp r0, #0 + bne _08072C1E + adds r0, r5, #0 + bl sub_08004542 +_08072C1E: + ldrb r0, [r5, #0xd] + adds r0, #1 + strb r0, [r5, #0xd] + lsls r4, r4, #4 + subs r4, #4 + lsls r4, r4, #0xc + str r4, [r5, #0x20] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r5, #0x24] + ldr r1, _08072C44 @ =gUnk_03003F80 + movs r0, #0x81 + lsls r0, r0, #4 + strh r0, [r1, #8] + movs r0, #0x7c + bl sub_080A3268 +_08072C40: + pop {r4, r5, r6, pc} + .align 2, 0 +_08072C44: .4byte gUnk_03003F80 + + thumb_func_start sub_08072C48 +sub_08072C48: @ 0x08072C48 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08072C98 + adds r0, r4, #0 + movs r1, #7 + bl sub_08008790 + ldr r4, _08072C90 @ =gUnk_03003F80 + ldrb r0, [r4, #0x14] + cmp r0, #0 + beq _08072C94 + bl sub_08008B22 + cmp r0, #0 + beq _08072C98 + movs r0, #7 + strb r0, [r4, #0x11] + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08072C98 + bl sub_080791BC + b _08072C98 + .align 2, 0 +_08072C90: .4byte gUnk_03003F80 +_08072C94: + bl sub_0807921C +_08072C98: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08072C9C +sub_08072C9C: @ 0x08072C9C + push {lr} + ldr r1, _08072CB8 @ =gUnk_03003F80 + adds r1, #0xa8 + movs r2, #0x11 + strb r2, [r1] + ldr r2, _08072CBC @ =gUnk_0811BBAC + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08072CB8: .4byte gUnk_03003F80 +_08072CBC: .4byte gUnk_0811BBAC + + thumb_func_start sub_08072CC0 +sub_08072CC0: @ 0x08072CC0 + movs r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + ldr r3, _08072CF4 @ =gUnk_03003F80 + adds r1, r3, #0 + adds r1, #0x3a + ldrb r1, [r1] + lsrs r1, r1, #2 + adds r1, #1 + strb r1, [r0, #0xf] + adds r1, r3, #0 + adds r1, #0x39 + ldrb r1, [r1] + strb r1, [r0, #0x15] + movs r2, #0 + movs r1, #0x80 + lsls r1, r1, #3 + strh r1, [r0, #0x24] + ldr r0, _08072CF8 @ =0x00000524 + strh r0, [r3, #8] + strb r2, [r3, #5] + bx lr + .align 2, 0 +_08072CF4: .4byte gUnk_03003F80 +_08072CF8: .4byte 0x00000524 + + thumb_func_start sub_08072CFC +sub_08072CFC: @ 0x08072CFC + push {r4, lr} + adds r4, r0, #0 + movs r1, #2 + bl sub_080042BA + ldrb r0, [r4, #0xf] + subs r0, #1 + strb r0, [r4, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08072D1C + adds r0, r4, #0 + bl sub_0806F69C + b _08072D4E +_08072D1C: + movs r0, #2 + strb r0, [r4, #0xd] + ldr r2, _08072D50 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r0, [r1] + cmp r0, #7 + bhi _08072D30 + movs r0, #8 + strb r0, [r1] +_08072D30: + ldrb r0, [r1] + lsls r0, r0, #0xc + str r0, [r4, #0x20] + movs r1, #0 + movs r0, #0x80 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + movs r0, #0x81 + lsls r0, r0, #4 + strh r0, [r2, #8] + movs r0, #5 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + bl sub_08077B2C +_08072D4E: + pop {r4, pc} + .align 2, 0 +_08072D50: .4byte gUnk_03003F80 + + thumb_func_start sub_08072D54 +sub_08072D54: @ 0x08072D54 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08072D7A + adds r0, r4, #0 + bl sub_0806F69C + ldrb r0, [r4, #0xe] + subs r0, #1 + b _08072E80 +_08072D7A: + adds r0, r4, #0 + bl sub_0806F730 + adds r1, r4, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + adds r2, r0, #0 + ldrb r5, [r4, #0xf] + cmp r5, #1 + beq _08072DD0 + cmp r5, #1 + bgt _08072D9C + cmp r5, #0 + beq _08072DA6 + b _08072E6C +_08072D9C: + cmp r5, #2 + beq _08072DFA + cmp r5, #3 + beq _08072E30 + b _08072E6C +_08072DA6: + ldr r1, _08072DC8 @ =gUnk_0811BBD4 + ldr r0, _08072DCC @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_08007DD6 + cmp r0, #0 + beq _08072E6C + movs r0, #1 + strb r0, [r4, #0xe] + strb r0, [r4, #0xf] + b _08072E6C + .align 2, 0 +_08072DC8: .4byte gUnk_0811BBD4 +_08072DCC: .4byte gLinkEntity +_08072DD0: + ldr r1, _08072DEC @ =gUnk_0811BBD4 + ldr r0, _08072DF0 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_08007DD6 + cmp r0, #0 + beq _08072DF4 + strb r5, [r4, #0xe] + b _08072E6C + .align 2, 0 +_08072DEC: .4byte gUnk_0811BBD4 +_08072DF0: .4byte gLinkEntity +_08072DF4: + movs r0, #2 + strb r0, [r4, #0xf] + b _08072E6C +_08072DFA: + ldrb r0, [r4, #0x14] + movs r5, #4 + eors r0, r5 + strb r0, [r4, #0x14] + ldr r1, _08072E28 @ =gUnk_0811BBD4 + ldr r0, _08072E2C @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_08007DD6 + cmp r0, #0 + beq _08072E22 + movs r0, #1 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xf] +_08072E22: + ldrb r0, [r4, #0x14] + eors r0, r5 + b _08072E6A + .align 2, 0 +_08072E28: .4byte gUnk_0811BBD4 +_08072E2C: .4byte gLinkEntity +_08072E30: + ldrb r0, [r4, #0x14] + movs r1, #4 + eors r0, r1 + strb r0, [r4, #0x14] + ldr r1, _08072E58 @ =gUnk_0811BBD4 + ldr r0, _08072E5C @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl sub_08007DD6 + cmp r0, #0 + beq _08072E60 + movs r0, #1 + strb r0, [r4, #0xe] + b _08072E64 + .align 2, 0 +_08072E58: .4byte gUnk_0811BBD4 +_08072E5C: .4byte gLinkEntity +_08072E60: + movs r0, #4 + strb r0, [r4, #0xf] +_08072E64: + ldrb r0, [r4, #0x14] + movs r1, #4 + eors r0, r1 +_08072E6A: + strb r0, [r4, #0x14] +_08072E6C: + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08072E7A + adds r0, r4, #0 + bl sub_0806F69C + b _08072E7E +_08072E7A: + bl sub_08079E08 +_08072E7E: + movs r0, #0 +_08072E80: + strb r0, [r4, #0xe] + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08072F10 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08072EAA + adds r0, r4, #0 + bl sub_0800455E + b _08072EB0 +_08072EAA: + adds r0, r4, #0 + bl sub_08004542 +_08072EB0: + adds r0, r4, #0 + movs r1, #7 + bl sub_08008790 + ldr r5, _08072EDC @ =gUnk_03003F80 + ldrb r0, [r5, #0x14] + cmp r0, #0 + beq _08072EE0 + bl sub_08008B22 + cmp r0, #0 + beq _08072F10 + movs r0, #7 + strb r0, [r5, #0x11] + ldr r0, [r5, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08072F10 + bl sub_080791BC + b _08072F10 + .align 2, 0 +_08072EDC: .4byte gUnk_03003F80 +_08072EE0: + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08072EF4 + ldr r0, _08072EF0 @ =0x00000424 + b _08072EF8 + .align 2, 0 +_08072EF0: .4byte 0x00000424 +_08072EF4: + movs r0, #0x82 + lsls r0, r0, #4 +_08072EF8: + strh r0, [r5, #8] + movs r1, #0 + movs r0, #6 + strb r0, [r4, #0xe] + movs r0, #3 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + movs r0, #0x7d + bl sub_080A3268 +_08072F10: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08072F14 +sub_08072F14: @ 0x08072F14 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #0xe] + subs r0, #1 + strb r0, [r1, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _08072F2C + bl sub_0807921C + b _08072F32 +_08072F2C: + adds r0, r1, #0 + bl sub_080042B8 +_08072F32: + pop {pc} + + thumb_func_start sub_08072F34 +sub_08072F34: @ 0x08072F34 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _08072F86 + ldr r6, _08072F88 @ =gUnk_03003F80 + adds r1, r6, #0 + adds r1, #0xa8 + movs r0, #0x18 + strb r0, [r1] + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0807A1E8 + strb r0, [r6, #0x12] + ldr r1, _08072F8C @ =gUnk_0811BBE4 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + adds r5, r4, #0 + adds r5, #0x42 + ldrb r0, [r5] + cmp r0, #0 + beq _08072F86 + bl sub_080792D8 + ldrb r1, [r5] + cmp r1, #0 + bne _08072F86 + movs r0, #0x1d + strb r0, [r4, #0xc] + strb r1, [r4, #0xd] + strh r1, [r4, #0x30] + ldr r0, _08072F90 @ =0x000002CF + strh r0, [r6, #8] +_08072F86: + pop {r4, r5, r6, pc} + .align 2, 0 +_08072F88: .4byte gUnk_03003F80 +_08072F8C: .4byte gUnk_0811BBE4 +_08072F90: .4byte 0x000002CF + + thumb_func_start sub_08072F94 +sub_08072F94: @ 0x08072F94 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08072FB4 @ =gUnk_03003F80 + ldrb r1, [r0, #0x12] + adds r3, r0, #0 + cmp r1, #0x1e + beq _08072FB8 + cmp r1, #0x1e + blt _08072FAE + cmp r1, #0x2c + bgt _08072FAE + cmp r1, #0x2a + bge _08072FB8 +_08072FAE: + bl sub_0807921C + b _0807308C + .align 2, 0 +_08072FB4: .4byte gUnk_03003F80 +_08072FB8: + adds r2, r4, #0 + adds r2, #0x29 + ldrb r0, [r2] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r0 + strb r1, [r2] + adds r2, r3, #0 + ldrb r1, [r2, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08073072 + strb r1, [r4, #0x15] + ldrb r0, [r2, #0xd] + cmp r0, #8 + beq _08072FDE + cmp r0, #0x18 + bne _08073008 +_08072FDE: + ldrb r0, [r2, #0x12] + cmp r0, #0x1e + beq _0807308C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08072FF8 + movs r0, #0xb5 + lsls r0, r0, #2 + b _08072FFA +_08072FF8: + ldr r0, _08073004 @ =0x000002D5 +_08072FFA: + strh r0, [r2, #8] + adds r0, r4, #0 + bl sub_08073094 + b _0807306A + .align 2, 0 +_08073004: .4byte 0x000002D5 +_08073008: + ldrb r0, [r2, #0x12] + cmp r0, #0x1e + bne _08073020 + movs r0, #7 + ands r0, r1 + cmp r0, #0 + beq _08073020 + adds r0, r1, #0 + adds r0, #8 + movs r1, #0x10 + ands r0, r1 + strb r0, [r4, #0x15] +_08073020: + ldrb r1, [r4, #0x15] + movs r2, #0x10 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807304C + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08073044 + ldr r0, _08073040 @ =0x000002D1 + b _08073068 + .align 2, 0 +_08073040: .4byte 0x000002D1 +_08073044: + ldr r0, _08073048 @ =0x000002D2 + b _08073068 + .align 2, 0 +_08073048: .4byte 0x000002D2 +_0807304C: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08073064 + ldr r0, _08073060 @ =0x000002CF + b _08073068 + .align 2, 0 +_08073060: .4byte 0x000002CF +_08073064: + movs r0, #0xb4 + lsls r0, r0, #2 +_08073068: + strh r0, [r3, #8] +_0807306A: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + b _0807308C +_08073072: + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08073088 + movs r0, #0xb5 + lsls r0, r0, #2 + strh r0, [r2, #8] + b _0807308C +_08073088: + ldr r0, _08073090 @ =0x000002D5 + strh r0, [r3, #8] +_0807308C: + pop {r4, pc} + .align 2, 0 +_08073090: .4byte 0x000002D5 + + thumb_func_start sub_08073094 +sub_08073094: @ 0x08073094 + 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 + strb r0, [r2] + ldr r2, _080730FC @ =gUnk_0811BBEC + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r4, #0x24] + bl sub_08079E08 + bl sub_08019840 + cmp r0, #0 + bne _080731A4 + ldr r0, _08073100 @ =gUnk_03003F80 + ldrb r1, [r0, #6] + movs r2, #0x80 + eors r1, r2 + strb r1, [r0, #6] + ldrb r0, [r0, #0x12] + cmp r0, #0x2a + beq _080730DE + cmp r0, #0x2c + beq _080730DE + bl sub_0807A1B8 +_080730DE: + bl sub_08078EFC + cmp r0, #0 + bne _080731A4 + ldr r1, _08073100 @ =gUnk_03003F80 + ldrb r0, [r1, #0x12] + subs r0, #0x19 + adds r2, r1, #0 + cmp r0, #0x13 + bhi _08073178 + lsls r0, r0, #2 + ldr r1, _08073104 @ =_08073108 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080730FC: .4byte gUnk_0811BBEC +_08073100: .4byte gUnk_03003F80 +_08073104: .4byte _08073108 +_08073108: @ jump table + .4byte _0807316C @ case 0 + .4byte _08073178 @ case 1 + .4byte _08073178 @ case 2 + .4byte _08073178 @ case 3 + .4byte _08073178 @ case 4 + .4byte _0807317E @ case 5 + .4byte _08073178 @ case 6 + .4byte _08073178 @ case 7 + .4byte _08073178 @ case 8 + .4byte _08073178 @ case 9 + .4byte _08073178 @ case 10 + .4byte _08073178 @ case 11 + .4byte _08073178 @ case 12 + .4byte _08073178 @ case 13 + .4byte _08073178 @ case 14 + .4byte _08073178 @ case 15 + .4byte _08073178 @ case 16 + .4byte _08073158 @ case 17 + .4byte _0807317E @ case 18 + .4byte _08073158 @ case 19 +_08073158: + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x16 + orrs r0, r1 + str r0, [r2, #0x30] + b _0807317E +_0807316C: + adds r0, r4, #0 + bl sub_08074808 + bl sub_080791D0 + b _080731A4 +_08073178: + bl sub_0807921C + b _080731A4 +_0807317E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080731A4 + bl sub_0807A1B8 + bl sub_08078EFC + cmp r0, #0 + bne _080731A4 + ldrb r0, [r4, #0xd] + subs r0, #1 + strb r0, [r4, #0xd] +_080731A4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_080731A8 +sub_080731A8: @ 0x080731A8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080731D0 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #0x1c + strb r1, [r0] + movs r0, #0 + movs r1, #8 + bl sub_0805E4E0 + ldr r1, _080731D4 @ =gUnk_0811BBF8 + ldrb r0, [r4, #0xd] + 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 +_080731D0: .4byte gUnk_03003F80 +_080731D4: .4byte gUnk_0811BBF8 + + thumb_func_start sub_080731D8 +sub_080731D8: @ 0x080731D8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + movs r2, #0 + strb r0, [r4, #0x10] + movs r1, #0 + movs r0, #0x40 + strh r0, [r4, #0x24] + strb r1, [r4, #0x14] + ldrh r1, [r4, #0x2e] + movs r5, #0x10 + rsbs r5, r5, #0 + adds r0, r5, #0 + ands r0, r1 + movs r7, #8 + orrs r0, r7 + strh r0, [r4, #0x2e] + strh r2, [r4, #0x2c] + ldr r6, _08073214 @ =gUnk_03003F80 + adds r0, r6, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + bne _08073218 + movs r0, #1 + strb r0, [r4, #0xd] + b _0807329A + .align 2, 0 +_08073214: .4byte gUnk_03003F80 +_08073218: + ldrb r0, [r4, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #3 + strb r0, [r4, #0xd] + ldrh r0, [r4, #0x32] + adds r1, r4, #0 + adds r1, #0x7e + strh r0, [r1] + ldrh r0, [r4, #0x32] + subs r0, #0x10 + strh r0, [r4, #0x32] + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + str r0, [r4, #0x54] + adds r0, r6, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073270 + ldrh r1, [r4, #0x32] + adds r0, r5, #0 + ands r0, r1 + adds r0, #8 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x2e] + adds r0, r5, #0 + ands r0, r1 + strh r0, [r4, #0x2e] + strb r7, [r4, #0x15] + movs r0, #2 + strb r0, [r4, #0x14] + ldr r0, _0807326C @ =0x00000187 + bl sub_080A3268 + b _08073294 + .align 2, 0 +_0807326C: .4byte 0x00000187 +_08073270: + ldrh r1, [r4, #0x32] + adds r0, r5, #0 + ands r0, r1 + adds r0, #2 + strh r0, [r4, #0x32] + ldrh r1, [r4, #0x2e] + adds r0, r5, #0 + ands r0, r1 + adds r0, #0xf + strh r0, [r4, #0x2e] + movs r0, #0x18 + strb r0, [r4, #0x15] + movs r0, #6 + strb r0, [r4, #0x14] + movs r0, #0xc4 + lsls r0, r0, #1 + bl sub_080A3268 +_08073294: + adds r0, r4, #0 + bl sub_08066DE4 +_0807329A: + ldr r2, _080732AC @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080732B4 + ldr r0, _080732B0 @ =0x00000404 + b _080732B8 + .align 2, 0 +_080732AC: .4byte gUnk_03003F80 +_080732B0: .4byte 0x00000404 +_080732B4: + movs r0, #0x82 + lsls r0, r0, #1 +_080732B8: + strh r0, [r2, #8] + ldr r1, _080732CC @ =gUnk_03000BF0 + movs r0, #0 + str r0, [r1, #0x30] + bl sub_0807A108 + bl sub_08077B2C + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080732CC: .4byte gUnk_03000BF0 + + thumb_func_start sub_080732D0 +sub_080732D0: @ 0x080732D0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_080002B8 + cmp r0, #0x28 + beq _080732EE + movs r0, #0 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F69C + b _08073328 +_080732EE: + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r1, #0 + strb r0, [r4, #0xd] + strh r1, [r4, #0x30] + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + ldr r0, _08073318 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073320 + ldr r0, _0807331C @ =0x00000187 + bl sub_080A3268 + b _08073328 + .align 2, 0 +_08073318: .4byte gUnk_03003F80 +_0807331C: .4byte 0x00000187 +_08073320: + movs r0, #0xc4 + lsls r0, r0, #1 + bl sub_080A3268 +_08073328: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807332C +sub_0807332C: @ 0x0807332C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, _08073344 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _08073348 + movs r0, #0 + b _0807334A + .align 2, 0 +_08073344: .4byte gUnk_03003F80 +_08073348: + movs r0, #0x1c +_0807334A: + strb r0, [r4, #0x15] + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xf + beq _08073386 + ldr r0, _08073368 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #7 + bne _0807336C + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #4 + b _0807337C + .align 2, 0 +_08073368: .4byte gUnk_03003F80 +_0807336C: + movs r0, #6 + strb r0, [r4, #0x14] + ldrb r0, [r4, #0x15] + cmp r0, #0x18 + bls _0807337E + subs r0, #1 + movs r1, #0x1f + ands r0, r1 +_0807337C: + strb r0, [r4, #0x15] +_0807337E: + adds r0, r4, #0 + bl sub_0806F69C + b _080733B6 +_08073386: + ldr r0, _0807339C @ =gUnk_03003F80 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _080733A4 + ldr r0, _080733A0 @ =gUnk_03000BF0 + str r4, [r0, #0x30] + bl sub_080791BC + b _080733B6 + .align 2, 0 +_0807339C: .4byte gUnk_03003F80 +_080733A0: .4byte gUnk_03000BF0 +_080733A4: + ldr r0, _080733B8 @ =gUnk_03001000 + movs r1, #3 + strb r1, [r0, #4] + movs r1, #1 + strb r1, [r0, #0xb] + movs r0, #5 + movs r1, #8 + bl sub_08050054 +_080733B6: + pop {r4, pc} + .align 2, 0 +_080733B8: .4byte gUnk_03001000 + + thumb_func_start sub_080733BC +sub_080733BC: @ 0x080733BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrh r1, [r4, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + bne _080733FC + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0x14] + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _080733FC + bl sub_0805E7BC + movs r0, #0 + str r0, [r4, #0x54] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080733F6 + adds r0, r4, #0 + bl sub_0807AABC + b _080733FC +_080733F6: + adds r0, r4, #0 + bl sub_0807AA80 +_080733FC: + adds r0, r4, #0 + bl sub_0806F69C + adds r0, r4, #0 + adds r0, #0x7e + ldrh r1, [r0] + movs r2, #0x32 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08073418 + ldr r0, _0807341C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + bl sub_0807921C +_08073418: + pop {r4, pc} + .align 2, 0 +_0807341C: .4byte gUnk_03000BF0 + + thumb_func_start sub_08073420 +sub_08073420: @ 0x08073420 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _0807345E + bl sub_0807A1B8 + 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] + ldr r0, _08073460 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #8 + strb r1, [r0] + ldr r1, _08073464 @ =gUnk_0811BC08 + ldrb r0, [r4, #0xd] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 +_0807345E: + pop {r4, pc} + .align 2, 0 +_08073460: .4byte gUnk_03003F80 +_08073464: .4byte gUnk_0811BC08 + + thumb_func_start sub_08073468 +sub_08073468: @ 0x08073468 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080734CC @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0xe0 + lsls r0, r0, #3 + strh r0, [r5, #8] + strb r1, [r5, #2] + ldr r0, _080734D0 @ =0xFFFF0000 + str r0, [r4, #0x20] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xf0 + lsls r0, r0, #1 + str r0, [r4, #0x7c] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldr r1, [r5, #0x30] + movs r2, #0x80 + lsls r2, r2, #0x11 + adds r0, r1, #0 + ands r0, r2 + cmp r0, #0 + bne _080734AC + orrs r1, r2 + str r1, [r5, #0x30] + adds r0, r4, #0 + movs r1, #0x61 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_080734AC: + bl sub_08077B2C + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _080734C0 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080734C8 +_080734C0: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] +_080734C8: + pop {r4, r5, pc} + .align 2, 0 +_080734CC: .4byte gUnk_03003F80 +_080734D0: .4byte 0xFFFF0000 + + thumb_func_start sub_080734D4 +sub_080734D4: @ 0x080734D4 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _080734FC @ =0xFFFFF000 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bgt _080734EE + ldr r0, _08073500 @ =gUnk_03003F80 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _080734FA +_080734EE: + movs r0, #0x92 + lsls r0, r0, #0xb + str r0, [r4, #0x20] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_080734FA: + pop {r4, pc} + .align 2, 0 +_080734FC: .4byte 0xFFFFF000 +_08073500: .4byte gUnk_03003F80 + + thumb_func_start sub_08073504 +sub_08073504: @ 0x08073504 + push {r4, lr} + adds r4, r0, #0 + ldr r0, [r4, #0x20] + movs r1, #0x80 + lsls r1, r1, #7 + cmp r0, #0 + bge _08073516 + movs r1, #0x80 + lsls r1, r1, #4 +_08073516: + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _08073576 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _08073576 + ldrb r0, [r4, #0xd] + adds r0, #1 + movs r2, #0 + strb r0, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x80 + ldrb r0, [r4, #0x15] + lsls r0, r0, #8 + str r0, [r1] + adds r0, r4, #0 + adds r0, #0x87 + strb r2, [r0] + subs r0, #1 + strb r2, [r0] + ldr r0, _08073580 @ =gUnk_03003F80 + movs r1, #0xe1 + lsls r1, r1, #3 + strh r1, [r0, #8] + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + bne _08073576 + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #6 + strb r0, [r4, #0xd] + movs r0, #0x10 + strh r0, [r4, #0x24] + movs r0, #0x1e + strb r0, [r4, #0xe] + movs r0, #0xa9 + lsls r0, r0, #1 + bl sub_080A3268 +_08073576: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08073580: .4byte gUnk_03003F80 + + thumb_func_start sub_08073584 +sub_08073584: @ 0x08073584 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r2, _080735DC @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + adds r6, r2, #0 + cmp r0, #0 + bne _080735C0 + adds r0, r4, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bgt _080735C0 + adds r0, r6, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _080735C0 + ldr r0, [r6, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x11 + ands r0, r1 + cmp r0, #0 + bne _080735E0 +_080735C0: + ldrb r0, [r6, #2] + movs r1, #0x40 + orrs r1, r0 + strb r1, [r6, #2] + bl sub_0807921C + adds r0, r4, #0 + bl sub_08073904 + movs r0, #0xe6 + lsls r0, r0, #3 + strh r0, [r6, #8] + b _08073794 + .align 2, 0 +_080735DC: .4byte gUnk_03003F80 +_080735E0: + ldr r0, _0807360C @ =gUnk_0200AF00 + adds r0, #0x2f + movs r1, #1 + strb r1, [r0] + movs r0, #0 + bl sub_0807A2F8 + cmp r0, #0 + beq _08073610 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x14] + movs r0, #6 + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + b _08073794 + .align 2, 0 +_0807360C: .4byte gUnk_0200AF00 +_08073610: + ldr r0, _08073620 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x10 + bne _08073624 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + b _08073626 + .align 2, 0 +_08073620: .4byte gUnk_02033A90 +_08073624: + strh r5, [r4, #0x24] +_08073626: + ldr r3, _08073650 @ =gUnk_03003F80 + ldrb r1, [r3, #0xd] + movs r0, #0x80 + ands r0, r1 + adds r2, r4, #0 + adds r2, #0x80 + cmp r0, #0 + bne _0807365A + ldrb r0, [r4, #0x15] + cmp r0, r1 + beq _0807365A + ldrb r1, [r3, #0xd] + subs r0, r0, r1 + movs r1, #0x1f + ands r0, r1 + cmp r0, #0xf + bgt _08073654 + ldr r0, [r2] + subs r0, #0x20 + b _08073658 + .align 2, 0 +_08073650: .4byte gUnk_03003F80 +_08073654: + ldr r0, [r2] + adds r0, #0x20 +_08073658: + str r0, [r2] +_0807365A: + ldr r0, [r2] + lsrs r0, r0, #8 + movs r1, #0x1f + ands r0, r1 + strb r0, [r4, #0x15] + bl sub_08079E08 + ldrb r2, [r4, #0x14] + lsls r3, r2, #2 + ldrb r1, [r4, #0x15] + cmp r2, #0 + bne _0807367C + adds r3, #8 + movs r0, #0x1f + ands r3, r0 + adds r1, #8 + ands r1, r0 +_0807367C: + subs r0, r3, #7 + cmp r0, r1 + bls _08073686 + subs r3, r2, #2 + b _0807368E +_08073686: + adds r0, r3, #7 + cmp r0, r1 + bhs _08073694 + adds r3, r2, #2 +_0807368E: + movs r0, #7 + ands r3, r0 + b _08073696 +_08073694: + adds r3, r2, #0 +_08073696: + movs r0, #0x87 + adds r0, r0, r4 + mov ip, r0 + ldrb r1, [r4, #0x14] + cmp r3, r1 + beq _080736A8 + movs r0, #0x14 + mov r2, ip + strb r0, [r2] +_080736A8: + strb r3, [r4, #0x14] + movs r5, #0 + ldr r1, _080736E4 @ =gUnk_03003F80 + ldrb r2, [r1, #0xd] + lsrs r3, r2, #2 + mov r6, ip + ldrb r0, [r6] + adds r6, r1, #0 + cmp r0, #0 + beq _080736CA + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08073736 + ldrb r0, [r4, #0x14] + cmp r0, r3 + beq _08073736 +_080736CA: + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _080736FA + ldrb r2, [r4, #0x14] + cmp r2, r3 + beq _080736FA + movs r0, #4 + eors r0, r3 + cmp r2, r0 + bne _080736E8 + movs r5, #2 + b _080736FA + .align 2, 0 +_080736E4: .4byte gUnk_03003F80 +_080736E8: + movs r0, #6 + ands r0, r3 + adds r0, #2 + movs r1, #7 + ands r0, r1 + movs r5, #3 + cmp r2, r0 + bne _080736FA + movs r5, #1 +_080736FA: + ldr r1, _0807371C @ =gUnk_0811BC28 + lsls r0, r5, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6, #8] + cmp r0, r1 + bne _0807372C + ldr r0, _08073720 @ =gUnk_02033A90 + ldrb r0, [r0, #1] + cmp r0, #0x10 + bne _08073724 + adds r0, r4, #0 + movs r1, #2 + bl sub_080042BA + b _0807372E + .align 2, 0 +_0807371C: .4byte gUnk_0811BC28 +_08073720: .4byte gUnk_02033A90 +_08073724: + adds r0, r4, #0 + bl sub_080042B8 + b _0807372E +_0807372C: + strh r0, [r6, #8] +_0807372E: + adds r0, r4, #0 + adds r0, #0x86 + strb r5, [r0] + b _08073762 +_08073736: + mov r2, ip + ldrb r0, [r2] + subs r0, #1 + strb r0, [r2] + ldr r1, _0807375C @ =gUnk_0811BC30 + adds r0, r4, #0 + adds r0, #0x86 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + ldrh r1, [r6, #8] + cmp r0, r1 + bne _08073760 + adds r0, r4, #0 + bl sub_080042B8 + b _08073762 + .align 2, 0 +_0807375C: .4byte gUnk_0811BC30 +_08073760: + strh r0, [r6, #8] +_08073762: + ldr r0, [r4, #0x7c] + subs r1, r0, #1 + str r1, [r4, #0x7c] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _08073784 + ldr r2, _08073780 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2, #2] + bl sub_0807921C + b _08073794 + .align 2, 0 +_08073780: .4byte gUnk_03003F80 +_08073784: + adds r0, r1, #0 + movs r1, #0x14 + bl __divsi3 + ldr r2, _08073798 @ =0x0000FFF8 + adds r1, r2, #0 + subs r1, r1, r0 + strh r1, [r4, #0x36] +_08073794: + pop {r4, r5, r6, pc} + .align 2, 0 +_08073798: .4byte 0x0000FFF8 + + thumb_func_start sub_0807379C +sub_0807379C: @ 0x0807379C + push {lr} + adds r2, r0, #0 + ldrh r3, [r2, #0x36] + movs r0, #0x36 + ldrsh r1, [r2, r0] + movs r0, #0x20 + rsbs r0, r0, #0 + cmp r1, r0 + ble _080737B4 + subs r0, r3, #1 + strh r0, [r2, #0x36] + b _080737BA +_080737B4: + ldrb r0, [r2, #0xd] + adds r0, #1 + strb r0, [r2, #0xd] +_080737BA: + pop {pc} + + thumb_func_start sub_080737BC +sub_080737BC: @ 0x080737BC + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0806F69C + ldr r0, [r4, #0x34] + movs r1, #0x98 + lsls r1, r1, #7 + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r1, [r4, #0x15] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080737E2 + ldrh r1, [r4, #0x2e] + b _080737E4 +_080737E2: + ldrh r1, [r4, #0x32] +_080737E4: + movs r0, #0xf + ands r0, r1 + cmp r0, #8 + bne _08073804 + adds r0, r4, #0 + bl sub_080002D0 + cmp r0, #0 + bne _08073804 + ldr r2, _08073808 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0x40 + orrs r0, r1 + strb r0, [r2, #2] + bl sub_0807921C +_08073804: + pop {r4, pc} + .align 2, 0 +_08073808: .4byte gUnk_03003F80 + + thumb_func_start sub_0807380C +sub_0807380C: @ 0x0807380C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08073854 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _0807382A + ldrb r0, [r4, #0x14] + adds r0, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_0807382A: + ldr r2, _08073858 @ =gUnk_03003F80 + ldr r1, _0807385C @ =gUnk_0811BC38 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #0x10 + rsbs r0, r0, #0 + cmp r1, r0 + bge _08073860 + movs r1, #0x80 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08003FC4 + b _0807387A + .align 2, 0 +_08073854: .4byte gUnk_030010A0 +_08073858: .4byte gUnk_03003F80 +_0807385C: .4byte gUnk_0811BC38 +_08073860: + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807387A + movs r0, #7 + strb r0, [r4, #0xd] + movs r0, #0x3c + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] +_0807387A: + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08073884 +sub_08073884: @ 0x08073884 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _080738DC @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _080738A2 + ldrb r0, [r4, #0x14] + adds r0, #2 + movs r1, #6 + ands r0, r1 + strb r0, [r4, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0x15] +_080738A2: + ldr r2, _080738E0 @ =gUnk_03003F80 + ldr r1, _080738E4 @ =gUnk_0811BC40 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r2, #8] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _080738F0 + adds r1, r2, #0 + adds r1, #0x39 + ldrb r0, [r1] + cmp r0, #0xff + beq _080738EC + adds r1, r0, #0 + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _080738E8 @ =gUnk_0813AD88 + adds r0, r0, r1 + bl sub_08080840 + b _080738F0 + .align 2, 0 +_080738DC: .4byte gUnk_030010A0 +_080738E0: .4byte gUnk_03003F80 +_080738E4: .4byte gUnk_0811BC40 +_080738E8: .4byte gUnk_0813AD88 +_080738EC: + bl sub_08052A4C +_080738F0: + ldr r1, _08073900 @ =0xFFFFE800 + adds r0, r4, #0 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + .align 2, 0 +_08073900: .4byte 0xFFFFE800 + + thumb_func_start sub_08073904 +sub_08073904: @ 0x08073904 + push {lr} + ldr r3, _0807391C @ =gUnk_0811BC48 + ldr r1, _08073920 @ =gUnk_03003F80 + ldrb r2, [r1, #2] + movs r1, #7 + ands r1, r2 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807391C: .4byte gUnk_0811BC48 +_08073920: .4byte gUnk_03003F80 + + thumb_func_start sub_08073924 +sub_08073924: @ 0x08073924 + push {r4, lr} + adds r4, r0, #0 + ldr r2, _08073964 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xb + ands r0, r1 + cmp r0, #0 + bne _08073962 + movs r1, #0x36 + ldrsh r0, [r4, r1] + movs r1, #0x80 + lsls r1, r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08073962 + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08073962 + movs r0, #0x40 + strb r0, [r2, #2] + movs r0, #0xff + strb r0, [r2, #0xd] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0x15] + bl sub_08077B20 + adds r0, r4, #0 + bl sub_08073968 +_08073962: + pop {r4, pc} + .align 2, 0 +_08073964: .4byte gUnk_03003F80 + + thumb_func_start sub_08073968 +sub_08073968: @ 0x08073968 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08073998 @ =gUnk_03003F80 + ldrb r1, [r4, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _0807397C + ldrb r0, [r4, #0xd] + strb r0, [r5, #0x15] +_0807397C: + bl sub_08078F24 + ldrb r1, [r4, #5] + ldrb r0, [r4, #0xb] + orrs r0, r1 + cmp r0, #0 + bne _080739D4 + ldr r1, [r4, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080739A0 + ldr r0, _0807399C @ =0x0000041C + b _080739BA + .align 2, 0 +_08073998: .4byte gUnk_03003F80 +_0807399C: .4byte 0x0000041C +_080739A0: + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080739BC + movs r0, #0x80 + lsls r0, r0, #0x13 + ands r1, r0 + cmp r1, #0 + beq _080739B8 + movs r0, #0x81 + lsls r0, r0, #4 + b _080739BA +_080739B8: + ldr r0, _080739E4 @ =0x0000080C +_080739BA: + strh r0, [r4, #8] +_080739BC: + ldr r0, _080739E8 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _080739CE + adds r0, r5, #0 + bl sub_0806F948 +_080739CE: + movs r0, #0x7c + bl sub_080A3268 +_080739D4: + ldr r2, _080739E8 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #0xf8 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #2] + pop {r4, r5, pc} + .align 2, 0 +_080739E4: .4byte 0x0000080C +_080739E8: .4byte gUnk_03003F80 + + thumb_func_start sub_080739EC +sub_080739EC: @ 0x080739EC + push {r4, r5, lr} + adds r4, r0, #0 + ldr r1, _08073A14 @ =gUnk_03003F80 + ldrb r2, [r1, #2] + movs r0, #0xc0 + ands r0, r2 + adds r5, r1, #0 + cmp r0, #0 + beq _08073A18 + ldrb r0, [r4, #0x15] + strb r0, [r5, #0xd] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08073A0E + movs r0, #0 + strh r0, [r4, #0x2a] +_08073A0E: + movs r2, #0x80 + lsls r2, r2, #6 + b _08073A48 + .align 2, 0 +_08073A14: .4byte gUnk_03003F80 +_08073A18: + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + lsls r0, r0, #0x10 + cmp r0, #0 + beq _08073A38 + ldrb r1, [r5, #2] + movs r0, #8 + orrs r0, r1 + strb r0, [r5, #2] + movs r2, #0x80 + lsls r2, r2, #7 + b _08073A48 +_08073A38: + movs r2, #0x80 + lsls r2, r2, #6 + ldrb r1, [r5, #2] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08073A48 + lsrs r2, r2, #1 +_08073A48: + ldrb r1, [r5, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08073A7E + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08073A7E + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _08073A7E + movs r0, #0xa0 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + movs r0, #0xa + strb r0, [r4, #0xe] + movs r0, #0xff + strb r0, [r4, #0x15] + adds r0, r1, #2 + strb r0, [r5, #2] + movs r0, #0xba + lsls r0, r0, #1 + strh r0, [r5, #8] + bl sub_08078F60 + b _08073A90 +_08073A7E: + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _08073A90 + adds r0, r4, #0 + bl sub_08073AD4 +_08073A90: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08073A94 +sub_08073A94: @ 0x08073A94 + push {r4, lr} + adds r4, r0, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08073AAE + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08073AB4 +_08073AAE: + adds r0, r4, #0 + bl sub_08073B60 +_08073AB4: + ldr r0, _08073ACC @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _08073AC8 + ldr r1, _08073AD0 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #2] + adds r0, r4, #0 + bl sub_08073924 +_08073AC8: + pop {r4, pc} + .align 2, 0 +_08073ACC: .4byte gLinkEntity +_08073AD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08073AD4 +sub_08073AD4: @ 0x08073AD4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08073AFA + 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] +_08073AFA: + ldr r6, _08073B48 @ =gUnk_03003F80 + ldrb r5, [r6, #2] + movs r0, #0xc1 + rsbs r0, r0, #0 + ands r5, r0 + ldrb r0, [r4, #0xc] + cmp r0, #0xa + beq _08073B32 + bl sub_0807A2B8 + movs r0, #0 + strb r0, [r6, #2] + bl sub_0807A1B8 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _08073B5C + adds r0, r6, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08073B5C + ldrb r0, [r6, #4] + cmp r0, #0 + beq _08073B32 + adds r0, r4, #0 + bl sub_08073B60 +_08073B32: + ldr r2, _08073B48 @ =gUnk_03003F80 + adds r0, r5, #1 + strb r0, [r2, #2] + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08073B50 + ldr r0, _08073B4C @ =0x00000424 + b _08073B54 + .align 2, 0 +_08073B48: .4byte gUnk_03003F80 +_08073B4C: .4byte 0x00000424 +_08073B50: + movs r0, #0x82 + lsls r0, r0, #4 +_08073B54: + strh r0, [r2, #8] + movs r0, #0x7d + bl sub_080A3268 +_08073B5C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08073B60 +sub_08073B60: @ 0x08073B60 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08073B88 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r4, #0x1b] + strb r0, [r4, #4] + strb r0, [r4, #2] + bl sub_08079938 + adds r0, r5, #0 + bl sub_080085B0 + ldr r0, [r4, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08073B86 + bl sub_080791BC +_08073B86: + pop {r4, r5, pc} + .align 2, 0 +_08073B88: .4byte gUnk_03003F80 + + thumb_func_start sub_08073B8C +sub_08073B8C: @ 0x08073B8C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08073BCC @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + beq _08073C04 + movs r2, #0xc + rsbs r2, r2, #0 + adds r0, r4, #0 + movs r1, #0 + bl sub_0806F854 + adds r0, r4, #0 + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _08073BB8 + adds r0, r4, #0 + bl sub_080042B8 +_08073BB8: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08073BD0 + subs r0, #1 + strb r0, [r4, #0xe] + b _08073C28 + .align 2, 0 +_08073BCC: .4byte gUnk_03003F80 +_08073BD0: + movs r1, #0x80 + lsls r1, r1, #7 + adds r0, r4, #0 + bl sub_08003FC4 + movs r0, #0x36 + ldrsh r1, [r4, r0] + movs r0, #8 + rsbs r0, r0, #0 + cmp r1, r0 + blt _08073C28 + ldrb r0, [r5, #0x14] + cmp r0, #0 + bne _08073C0C + bl sub_0807A2B8 + cmp r0, #0 + bne _08073BFC + bl sub_08079D48 + cmp r0, #0 + bne _08073C0C +_08073BFC: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08073C04: + adds r0, r4, #0 + bl sub_08073B60 + b _08073C28 +_08073C0C: + ldr r1, _08073C2C @ =gUnk_03003F80 + ldrb r0, [r1, #2] + adds r0, #1 + strb r0, [r1, #2] + movs r0, #0xf + strb r0, [r4, #0xe] + movs r0, #0x10 + movs r1, #0 + bl sub_08080964 + movs r0, #0xa6 + lsls r0, r0, #1 + bl sub_080A3268 +_08073C28: + pop {r4, r5, pc} + .align 2, 0 +_08073C2C: .4byte gUnk_03003F80 + + thumb_func_start sub_08073C30 +sub_08073C30: @ 0x08073C30 + push {lr} + adds r2, r0, #0 + ldr r0, _08073C54 @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + beq _08073C4A + ldrb r0, [r2, #0xe] + subs r0, #1 + strb r0, [r2, #0xe] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + bne _08073C58 +_08073C4A: + adds r0, r2, #0 + bl sub_08073B60 + b _08073C66 + .align 2, 0 +_08073C54: .4byte gUnk_03003F80 +_08073C58: + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r2, #0 + bl sub_080042B8 +_08073C66: + pop {pc} + + thumb_func_start sub_08073C68 +sub_08073C68: @ 0x08073C68 + push {lr} + ldr r2, _08073C7C @ =gUnk_0811BC60 + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08073C7C: .4byte gUnk_0811BC60 + + thumb_func_start sub_08073C80 +sub_08073C80: @ 0x08073C80 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldr r2, _08073D00 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + orrs r0, r1 + str r0, [r2, #0x30] + movs r5, #0 + ldr r0, _08073D04 @ =0x00000C18 + strh r0, [r2, #8] + ldrb r0, [r4, #0x18] + movs r1, #3 + 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] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x19] + movs r7, #4 + rsbs r7, r7, #0 + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x19] + ldr r0, _08073D08 @ =gUnk_0811BC80 + str r0, [r4, #0x48] + strb r5, [r4, #0xe] + movs r6, #2 + strb r6, [r4, #0xf] + adds r0, r4, #0 + adds r0, #0x42 + strb r5, [r0] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + movs r1, #1 + movs r2, #2 + bl sub_080AE008 + ldr r0, _08073D0C @ =gUnk_03000BF0 + str r4, [r0, #0x30] + bl sub_080809D4 + ldr r1, _08073D10 @ =gUnk_030010A0 + ldrb r0, [r1, #0xf] + cmp r0, #9 + bne _08073D14 + strb r5, [r1, #0xf] + ldrb r1, [r4, #0x18] + adds r0, r7, #0 + ands r0, r1 + strb r0, [r4, #0x18] + strb r6, [r4, #0xd] + b _08073D1E + .align 2, 0 +_08073D00: .4byte gUnk_03003F80 +_08073D04: .4byte 0x00000C18 +_08073D08: .4byte gUnk_0811BC80 +_08073D0C: .4byte gUnk_03000BF0 +_08073D10: .4byte gUnk_030010A0 +_08073D14: + movs r0, #4 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 +_08073D1E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08073D20 +sub_08073D20: @ 0x08073D20 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + ldr r5, _08073D70 @ =gUnk_03003F80 + movs r0, #0xa8 + adds r0, r0, r5 + mov r8, r0 + movs r0, #0 + mov r1, r8 + strb r0, [r1] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0x39 + ands r0, r1 + movs r1, #0x18 + orrs r0, r1 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x40 + movs r0, #1 + strb r0, [r1] + bl sub_08078F60 + adds r7, r5, #0 + adds r7, #0x26 + ldrb r0, [r7] + cmp r0, #0 + bne _08073D60 + movs r0, #0xc0 + strh r0, [r4, #0x24] +_08073D60: + bl sub_08079B24 + cmp r0, #0 + bne _08073D74 + adds r0, r4, #0 + bl sub_08079708 + b _08073EFC + .align 2, 0 +_08073D70: .4byte gUnk_03003F80 +_08073D74: + bl sub_08078EFC + adds r6, r0, #0 + cmp r6, #0 + beq _08073D80 + b _08073EFC +_08073D80: + adds r0, r4, #0 + bl sub_08073904 + bl sub_0807A1B8 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _08073D96 + movs r0, #0x14 + mov r1, r8 + strb r0, [r1] +_08073D96: + ldrb r0, [r5, #0x12] + subs r0, #0x18 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08073DB0 + strb r6, [r7] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_08073DB0: + bl sub_08078EFC + cmp r0, #0 + beq _08073DBA + b _08073EFC +_08073DBA: + ldrb r0, [r4, #0xd] + cmp r0, #2 + bne _08073DC2 + b _08073EFC +_08073DC2: + ldr r0, [r5, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08073E10 + adds r0, r4, #0 + bl sub_080085B0 + bl sub_080792D8 + ldrb r0, [r5, #0xa] + cmp r0, #0 + bne _08073DE6 + bl sub_08079550 + cmp r0, #0 + beq _08073DE6 + b _08073EFC +_08073DE6: + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _08073DFA + adds r0, r4, #0 + adds r0, #0x3e + ldrb r0, [r0] + strb r0, [r4, #0x15] + b _08073EFC +_08073DFA: + bl sub_080782C0 + cmp r0, #0 + beq _08073E08 + bl sub_08078EFC + b _08073EFC +_08073E08: + ldrb r0, [r4, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] +_08073E10: + bl sub_08019840 + cmp r0, #0 + bne _08073EFC + adds r0, r4, #0 + bl sub_08077698 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + adds r1, r0, #0 + cmp r1, #0 + bne _08073E32 + ldr r0, _08073E74 @ =gUnk_03003F80 + strb r1, [r0, #2] +_08073E32: + ldr r2, _08073E74 @ =gUnk_03003F80 + ldrb r1, [r2, #7] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08073EFC + ldrb r0, [r2, #0xa] + cmp r0, #0 + bne _08073EFC + adds r0, r4, #0 + adds r0, #0x3d + movs r1, #0 + ldrsb r1, [r0, r1] + adds r6, r0, #0 + cmp r1, #8 + bgt _08073E90 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08073E78 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #7 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0807ACCC + bl sub_08079E08 + b _08073E90 + .align 2, 0 +_08073E74: .4byte gUnk_03003F80 +_08073E78: + ldrb r1, [r2, #0xd] + strb r1, [r4, #0x15] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08073E90 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #1 + strb r0, [r1] + bl sub_08079E08 +_08073E90: + ldr r5, _08073EF0 @ =gUnk_03003F80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08073E9E + adds r0, r4, #0 + bl sub_0806F948 +_08073E9E: + adds r0, r4, #0 + bl sub_080042B8 + adds r0, r4, #0 + bl sub_0807B068 + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _08073EDC + movs r0, #0x14 + strb r0, [r6] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #0x7a + bl sub_080A3268 +_08073EDC: + ldr r0, [r5, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _08073EF4 + adds r0, r4, #0 + bl sub_08008AC6 + b _08073EFC + .align 2, 0 +_08073EF0: .4byte gUnk_03003F80 +_08073EF4: + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #0xd + strb r0, [r1] +_08073EFC: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08073F04 +sub_08073F04: @ 0x08073F04 + push {lr} + adds r3, r0, #0 + adds r3, #0x29 + ldrb r2, [r3] + movs r1, #0x39 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #0x10 + orrs r1, r2 + strb r1, [r3] + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + movs r1, #0xa0 + lsls r1, r1, #0xa + str r1, [r0, #0x20] + movs r1, #0x80 + lsls r1, r1, #1 + strh r1, [r0, #0x24] + ldr r2, _08073F48 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x81 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bl sub_08077B2C + pop {pc} + .align 2, 0 +_08073F48: .4byte gUnk_03003F80 + + thumb_func_start sub_08073F4C +sub_08073F4C: @ 0x08073F4C + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08073F84 @ =gUnk_02033A90 + ldrh r3, [r0, #0x12] + ldrh r5, [r0, #0x14] + movs r0, #0x2e + ldrsh r2, [r4, r0] + cmp r2, r3 + bne _08073F66 + movs r1, #0x32 + ldrsh r0, [r4, r1] + cmp r0, r5 + beq _08073F88 +_08073F66: + movs r0, #0x32 + ldrsh r1, [r4, r0] + adds r0, r2, #0 + adds r2, r3, #0 + adds r3, r5, #0 + bl sub_080045D4 + strb r0, [r4, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_0806F69C + b _08073FC6 + .align 2, 0 +_08073F84: .4byte gUnk_02033A90 +_08073F88: + ldrb r1, [r4, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #0x10] + movs r0, #0x1e + strb r0, [r4, #0xe] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r4, #0x18] + adds r0, r4, #0 + adds r0, #0x80 + movs r1, #0x90 + lsls r1, r1, #3 + str r1, [r0] + adds r0, #4 + str r1, [r0] + ldrb r0, [r4, #0x19] + movs r1, #3 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_08074018 + ldr r1, _08073FC8 @ =gUnk_03003F80 + ldr r0, _08073FCC @ =0x0000073C + strh r0, [r1, #8] +_08073FC6: + pop {r4, r5, pc} + .align 2, 0 +_08073FC8: .4byte gUnk_03003F80 +_08073FCC: .4byte 0x0000073C + + thumb_func_start sub_08073FD0 +sub_08073FD0: @ 0x08073FD0 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08073FF8 + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08074016 + ldrb r1, [r4, #0x18] + lsls r0, r1, #0x1e + cmp r0, #0 + bne _08073FF8 + movs r0, #3 + orrs r0, r1 + strb r0, [r4, #0x18] + movs r0, #0x7c + bl sub_080A3268 +_08073FF8: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + ldr r0, [r4, #0x20] + cmp r0, #0 + bne _08074016 + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0xb8 + lsls r0, r0, #1 + bl sub_080A3268 +_08074016: + pop {r4, pc} + + thumb_func_start sub_08074018 +sub_08074018: @ 0x08074018 + push {r4, lr} + adds r4, r0, #0 + adds r1, r4, #0 + adds r1, #0x80 + ldr r0, [r1] + movs r3, #0x80 + lsls r3, r3, #1 + cmp r0, r3 + bls _0807402E + subs r0, #0x20 + str r0, [r1] +_0807402E: + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + adds r2, r0, #0 + cmp r1, r3 + bls _08074042 + adds r0, r1, #0 + subs r0, #0x20 + str r0, [r2] + b _08074048 +_08074042: + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] +_08074048: + adds r0, r4, #0 + adds r0, #0x80 + ldr r1, [r0] + ldr r2, [r2] + adds r0, r4, #0 + movs r3, #0 + bl sub_0805EC9C + adds r0, r4, #0 + bl sub_080042B8 + pop {r4, pc} + + thumb_func_start sub_08074060 +sub_08074060: @ 0x08074060 + push {r4, lr} + adds r4, r0, #0 + movs r1, #0x80 + lsls r1, r1, #6 + bl sub_08003FC4 + cmp r0, #0 + bne _080740D0 + ldr r0, _080740C4 @ =gUnk_08114F88 + str r0, [r4, #0x48] + movs r3, #0x10 + movs r0, #0x10 + strb r0, [r4, #0x15] + movs r0, #4 + strb r0, [r4, #0x14] + movs r2, #0 + adds r0, #0xfc + strh r0, [r4, #0x24] + movs r0, #0x29 + adds r0, r0, r4 + 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] + ldrb r1, [r4, #0x18] + movs r0, #0x31 + rsbs r0, r0, #0 + ands r0, r1 + orrs r0, r3 + strb r0, [r4, #0x18] + strb r2, [r4, #0xf] + ldrb r0, [r4, #0xd] + adds r0, #1 + strb r0, [r4, #0xd] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r4, #0x20] + ldr r1, _080740C8 @ =gUnk_03003F80 + ldr r0, _080740CC @ =0x0000080C + strh r0, [r1, #8] + adds r0, r4, #0 + bl sub_0805EC60 + b _080740D6 + .align 2, 0 +_080740C4: .4byte gUnk_08114F88 +_080740C8: .4byte gUnk_03003F80 +_080740CC: .4byte 0x0000080C +_080740D0: + adds r0, r4, #0 + bl sub_080042B8 +_080740D6: + pop {r4, pc} + + thumb_func_start sub_080740D8 +sub_080740D8: @ 0x080740D8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _080740EA + ldrb r0, [r4, #0x15] + b _080740F0 +_080740EA: + ldrb r1, [r4, #0x15] + movs r0, #0x10 + eors r0, r1 +_080740F0: + cmp r0, #8 + beq _08074128 + cmp r0, #8 + bhi _080740FE + cmp r0, #0 + beq _08074168 + b _0807418C +_080740FE: + cmp r0, #0x10 + beq _08074148 + cmp r0, #0x18 + bne _0807418C + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + ldrb r0, [r2, #2] + subs r1, r1, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _08074124 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + b _08074182 + .align 2, 0 +_08074124: .4byte gUnk_03000BF0 +_08074128: + ldr r2, [r4, #0x48] + movs r1, #0x2e + ldrsh r0, [r4, r1] + ldrb r1, [r2, #2] + adds r0, r0, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r3, _08074144 @ =gUnk_03000BF0 + ldrh r1, [r3, #6] + subs r6, r0, r1 + movs r1, #0x32 + ldrsh r0, [r4, r1] + b _08074182 + .align 2, 0 +_08074144: .4byte gUnk_03000BF0 +_08074148: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _08074164 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrb r1, [r2, #5] + adds r0, r0, r1 + b _08074182 + .align 2, 0 +_08074164: .4byte gUnk_03000BF0 +_08074168: + movs r0, #0x2e + ldrsh r1, [r4, r0] + ldr r2, [r4, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _080741A4 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r6, r1, r0 + movs r1, #0x32 + ldrsh r0, [r4, r1] + ldrb r1, [r2, #5] + subs r0, r0, r1 +_08074182: + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldrh r1, [r3, #8] + subs r5, r0, r1 +_0807418C: + ldr r2, _080741A8 @ =gUnk_080082DC + adds r0, r6, #0 + adds r1, r5, #0 + bl sub_080086B4 + cmp r0, #0 + beq _080741AC + adds r0, r4, #0 + bl sub_0806F69C + b _080741B0 + .align 2, 0 +_080741A4: .4byte gUnk_03000BF0 +_080741A8: .4byte gUnk_080082DC +_080741AC: + movs r0, #1 + strb r0, [r4, #0xf] +_080741B0: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + bne _080741C2 + bl sub_0807921C +_080741C2: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080741C4 +sub_080741C4: @ 0x080741C4 + push {lr} + ldr r0, _080741F0 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + adds r2, r0, #0 + cmp r1, #0 + beq _080741D8 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + bne _080741E0 +_080741D8: + ldr r0, _080741F4 @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _080741F8 +_080741E0: + movs r1, #0 + strb r1, [r2, #0x11] + adds r0, r2, #0 + adds r0, #0x37 + strb r1, [r0] + movs r0, #1 + b _080741FA + .align 2, 0 +_080741F0: .4byte gUnk_03003F80 +_080741F4: .4byte gLinkEntity +_080741F8: + movs r0, #0 +_080741FA: + pop {pc} + + thumb_func_start nullsub_112 +nullsub_112: @ 0x080741FC + bx lr + .align 2, 0 + + thumb_func_start sub_08074200 +sub_08074200: @ 0x08074200 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074226 + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074226 + ldrb r0, [r4, #0xc] + cmp r0, #3 + beq _08074226 + bl sub_08077B2C + ldr r1, _08074228 @ =gUnk_03003F80 + movs r0, #3 + strb r0, [r1, #0xc] +_08074226: + pop {r4, pc} + .align 2, 0 +_08074228: .4byte gUnk_03003F80 + + thumb_func_start sub_0807422C +sub_0807422C: @ 0x0807422C + push {lr} + movs r1, #8 + movs r2, #0x18 + bl sub_08074244 + pop {pc} + + thumb_func_start sub_08074238 +sub_08074238: @ 0x08074238 + push {lr} + movs r1, #0 + movs r2, #0x10 + bl sub_08074244 + pop {pc} + + thumb_func_start sub_08074244 +sub_08074244: @ 0x08074244 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + ldr r5, _0807428C @ =gUnk_03003F80 + ldrb r0, [r5, #0x12] + subs r0, #0x28 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _08074278 + 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] +_08074278: + bl sub_080741C4 + cmp r0, #0 + bne _080742A6 + ldrb r0, [r5, #0x1e] + cmp r0, #0 + bne _08074290 + ldrb r0, [r5, #0xd] + b _08074294 + .align 2, 0 +_0807428C: .4byte gUnk_03003F80 +_08074290: + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 +_08074294: + cmp r6, r0 + bne _0807429C + cmp r7, r0 + beq _080742A6 +_0807429C: + ldr r1, _080742A8 @ =gUnk_03003F80 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0x50 + strh r0, [r1] +_080742A6: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080742A8: .4byte gUnk_03003F80 + + thumb_func_start sub_080742AC +sub_080742AC: @ 0x080742AC + push {lr} + adds r2, r0, #0 + ldr r0, _080742E0 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x26 + ldrb r0, [r1] + cmp r0, #0 + beq _080742C0 + movs r0, #0 + strb r0, [r1] +_080742C0: + adds r3, r2, #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 r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + pop {pc} + .align 2, 0 +_080742E0: .4byte gUnk_03003F80 + + thumb_func_start sub_080742E4 +sub_080742E4: @ 0x080742E4 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _0807430E + ldr r2, _08074310 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807430E + ldrb r0, [r2, #0x11] + cmp r0, #0xf + bne _0807430E + adds r0, r4, #0 + movs r1, #0xe + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_0807430E: + pop {r4, pc} + .align 2, 0 +_08074310: .4byte gUnk_03003F80 + + thumb_func_start sub_08074314 +sub_08074314: @ 0x08074314 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xd + bgt _08074330 + movs r0, #0xcc + lsls r0, r0, #7 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _08074336 +_08074330: + adds r0, r2, #0 + bl sub_0807A298 +_08074336: + pop {pc} + + thumb_func_start sub_08074338 +sub_08074338: @ 0x08074338 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + ble _08074354 + movs r0, #0xcc + lsls r0, r0, #7 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _0807435A +_08074354: + adds r0, r2, #0 + bl sub_0807A298 +_0807435A: + pop {pc} + + thumb_func_start sub_0807435C +sub_0807435C: @ 0x0807435C + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #0xb + bgt _08074376 + movs r0, #0x66 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _0807437C +_08074376: + adds r0, r2, #0 + bl sub_0807A298 +_0807437C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08074380 +sub_08074380: @ 0x08074380 + push {lr} + adds r2, r0, #0 + ldrh r1, [r2, #0x2e] + movs r0, #0xf + ands r0, r1 + cmp r0, #4 + ble _0807439A + movs r0, #0x66 + strh r0, [r2, #0x2a] + adds r0, r2, #0 + bl sub_080743A4 + b _080743A0 +_0807439A: + adds r0, r2, #0 + bl sub_0807A298 +_080743A0: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080743A4 +sub_080743A4: @ 0x080743A4 + push {lr} + ldr r3, _080743D0 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + movs r2, #0x40 + orrs r1, r2 + str r1, [r3, #0x30] + movs r3, #0 + movs r1, #0x80 + strb r1, [r0, #0xb] + ldrb r2, [r0, #0x18] + subs r1, #0x84 + ands r1, r2 + strb r1, [r0, #0x18] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + adds r0, #0x42 + strb r3, [r0] + bl sub_08077B2C + pop {pc} + .align 2, 0 +_080743D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080743D4 +sub_080743D4: @ 0x080743D4 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074416 + adds r0, r5, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074416 + adds r0, r5, #0 + bl sub_0807AABC + adds r0, r5, #0 + bl sub_08074808 + movs r0, #0x24 + ldrsh r4, [r5, r0] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r5, #0x24] + movs r0, #0x10 + strb r0, [r5, #0x15] + ldr r2, _08074418 @ =gUnk_03003F80 + ldrb r1, [r2, #0xa] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0xa] + adds r0, r5, #0 + bl sub_0806F69C + strh r4, [r5, #0x24] +_08074416: + pop {r4, r5, pc} + .align 2, 0 +_08074418: .4byte gUnk_03003F80 + + thumb_func_start sub_0807441C +sub_0807441C: @ 0x0807441C + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + ldr r0, _08074440 @ =gUnk_03003F80 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #4 + bne _08074502 + ldr r6, _08074444 @ =gUnk_02002A40 + adds r4, r6, #0 + adds r4, #0xb4 + ldrb r0, [r4] + bl sub_0805449C + cmp r0, #0 + beq _08074448 + ldrb r0, [r4] + b _0807444E + .align 2, 0 +_08074440: .4byte gUnk_03003F80 +_08074444: .4byte gUnk_02002A40 +_08074448: + adds r0, r6, #0 + adds r0, #0xb5 + ldrb r0, [r0] +_0807444E: + subs r0, #1 + cmp r0, #5 + bhi _0807448A + lsls r0, r0, #2 + ldr r1, _08074460 @ =_08074464 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08074460: .4byte _08074464 +_08074464: @ jump table + .4byte _0807447C @ case 0 + .4byte _0807447C @ case 1 + .4byte _08074480 @ case 2 + .4byte _08074484 @ case 3 + .4byte _0807448A @ case 4 + .4byte _08074488 @ case 5 +_0807447C: + movs r5, #0 + b _0807448A +_08074480: + movs r5, #1 + b _0807448A +_08074484: + movs r5, #2 + b _0807448A +_08074488: + movs r5, #3 +_0807448A: + movs r4, #0 + cmp r4, r5 + bhs _080744A6 + ldr r1, _08074494 @ =gUnk_03004040 + b _080744A0 + .align 2, 0 +_08074494: .4byte gUnk_03004040 +_08074498: + adds r1, #4 + adds r4, #1 + cmp r4, r5 + bhs _080744A6 +_080744A0: + ldr r0, [r1] + cmp r0, #0 + bne _08074498 +_080744A6: + cmp r5, r4 + bls _080744D4 + adds r0, r7, #0 + movs r1, #0x10 + adds r2, r4, #0 + movs r3, #0 + bl sub_080A2988 + adds r3, r0, #0 + ldr r1, _080744D0 @ =gUnk_03004040 + lsls r0, r4, #2 + adds r0, r0, r1 + str r3, [r0] + cmp r3, #0 + beq _08074502 + adds r0, r7, #0 + adds r1, r3, #0 + bl sub_0806FA24 + b _08074502 + .align 2, 0 +_080744D0: .4byte gUnk_03004040 +_080744D4: + ldr r2, _08074504 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1b] + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + orrs r0, r1 + str r0, [r2, #0x30] + ldr r0, [r7, #0x2c] + ldr r2, _08074508 @ =0xFFF00000 + ands r0, r2 + movs r1, #0x80 + lsls r1, r1, #0xc + orrs r0, r1 + str r0, [r7, #0x2c] + ldr r0, [r7, #0x30] + ands r0, r2 + orrs r0, r1 + str r0, [r7, #0x30] + bl sub_08077AEC +_08074502: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08074504: .4byte gUnk_03003F80 +_08074508: .4byte 0xFFF00000 + + thumb_func_start sub_0807450C +sub_0807450C: @ 0x0807450C + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _0807457A + ldr r7, _0807457C @ =gUnk_03003F80 + ldrb r0, [r7, #0x14] + cmp r0, #0 + bne _0807457A + adds r4, r6, #0 + adds r4, #0x3d + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _08074568 + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #0x7a + bl sub_080A3268 + movs r0, #0x18 + strb r0, [r4] + adds r1, r6, #0 + adds r1, #0x42 + movs r0, #4 + strb r0, [r1] + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r5, _08074580 @ =0x0000FFF0 + adds r0, r2, #0 + ands r0, r5 + movs r4, #8 + orrs r0, r4 + movs r1, #0x32 + ldrsh r3, [r6, r1] + adds r1, r3, #0 + ands r1, r5 + orrs r1, r4 + bl sub_080045D4 + adds r1, r6, #0 + adds r1, #0x3e + strb r0, [r1] +_08074568: + ldr r0, [r7, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807457A + adds r0, r6, #0 + movs r1, #7 + bl sub_08008790 +_0807457A: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807457C: .4byte gUnk_03003F80 +_08074580: .4byte 0x0000FFF0 + + thumb_func_start sub_08074584 +sub_08074584: @ 0x08074584 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _080745AC + ldr r0, _080745B0 @ =gUnk_03003F80 + adds r0, #0x35 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080745A8 + adds r0, r4, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + beq _080745AC +_080745A8: + bl sub_08078F60 +_080745AC: + pop {r4, pc} + .align 2, 0 +_080745B0: .4byte gUnk_03003F80 + + thumb_func_start sub_080745B4 +sub_080745B4: @ 0x080745B4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074636 + ldr r0, _080745E4 @ =gUnk_03003F80 + mov ip, r0 + ldr r3, [r0, #0x30] + movs r0, #0x80 + ands r3, r0 + cmp r3, #0 + beq _080745E8 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + subs r0, #0xb9 + ands r0, r1 + strb r0, [r2] + adds r0, r4, #0 + bl sub_0807479C + b _08074636 + .align 2, 0 +_080745E4: .4byte gUnk_03003F80 +_080745E8: + mov r5, ip + adds r5, #0x26 + ldrb r0, [r5] + cmp r0, #0 + beq _08074618 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + strb r3, [r5] +_08074618: + mov r0, ip + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08074630 + mov r1, ip + ldrb r0, [r1, #0x11] + cmp r0, #1 + bne _08074636 +_08074630: + movs r0, #0x83 + bl sub_080A3268 +_08074636: + pop {r4, r5, pc} + + thumb_func_start sub_08074638 +sub_08074638: @ 0x08074638 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r0, _08074674 @ =gUnk_03003F80 + adds r5, r0, #0 + adds r5, #0x26 + ldrb r0, [r5] + cmp r0, #0 + beq _08074670 + ldrb r1, [r4, #0x10] + movs r0, #0x80 + movs r3, #0 + orrs r0, r1 + strb r0, [r4, #0x10] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #4 + orrs r0, r1 + strb r0, [r2] + strb r3, [r5] +_08074670: + pop {r4, r5, pc} + .align 2, 0 +_08074674: .4byte gUnk_03003F80 + + thumb_func_start sub_08074678 +sub_08074678: @ 0x08074678 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + beq _08074690 + ldr r0, _0807468C @ =gUnk_03003F80 + movs r1, #0 + strb r1, [r0, #0x11] + b _080746CE + .align 2, 0 +_0807468C: .4byte gUnk_03003F80 +_08074690: + adds r0, r4, #0 + adds r0, #0x45 + ldrb r0, [r0] + cmp r0, #0 + beq _0807476C + adds r0, r4, #0 + bl sub_08079C30 + adds r1, r0, #0 + cmp r1, #0 + bne _080746B0 + ldr r0, _080746AC @ =gUnk_03003F80 + strb r1, [r0, #0x11] + b _080746CE + .align 2, 0 +_080746AC: .4byte gUnk_03003F80 +_080746B0: + ldr r3, _080746D4 @ =gUnk_03003F80 + ldr r1, [r3, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _0807476C + ldrb r2, [r3, #0x1e] + cmp r2, #0 + beq _080746D8 + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _080746DC + strb r1, [r3, #0x11] + adds r0, r3, #0 +_080746CE: + adds r0, #0x37 + strb r1, [r0] + b _08074792 + .align 2, 0 +_080746D4: .4byte gUnk_03003F80 +_080746D8: + bl sub_08077B20 +_080746DC: + ldr r1, _08074700 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x37 + ldrb r0, [r0] + cmp r0, #1 + bne _08074704 + adds r0, r4, #0 + movs r1, #0x70 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFX + b _08074714 + .align 2, 0 +_08074700: .4byte gUnk_03003F80 +_08074704: + adds r0, r1, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08074720 +_08074714: + ldr r0, _0807471C @ =0x00000161 + bl sub_080A3268 + b _08074732 + .align 2, 0 +_0807471C: .4byte 0x00000161 +_08074720: + ldr r0, _08074760 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08074732 + ldr r0, _08074764 @ =0x00000161 + bl sub_080A3268 +_08074732: + ldr r2, _08074768 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x80 + ldrh r0, [r1] + subs r0, #0xf0 + strh r0, [r1] + adds r1, #0x28 + movs r0, #0x1b + strb r0, [r1] + adds r0, r2, #0 + adds r0, #0x37 + ldrb r0, [r0] + lsls r3, r0, #0x18 + lsrs r0, r3, #0x18 + cmp r0, #0xef + bhi _0807476C + subs r1, #0x69 + lsrs r0, r3, #0x1d + adds r0, #4 + ldrb r2, [r1] + adds r0, r0, r2 + strb r0, [r1] + b _08074792 + .align 2, 0 +_08074760: .4byte gUnk_030010A0 +_08074764: .4byte 0x00000161 +_08074768: .4byte gUnk_03003F80 +_0807476C: + ldr r2, _08074794 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08074798 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r2, #0x30] + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFX + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x20 + strb r0, [r1] + subs r0, #0x24 + bl sub_080526A0 + bl sub_08079458 +_08074792: + pop {r4, pc} + .align 2, 0 +_08074794: .4byte gUnk_03003F80 +_08074798: .4byte 0xFFFBFFFF + + thumb_func_start sub_0807479C +sub_0807479C: @ 0x0807479C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r2, r0, #0 + cmp r2, #0 + bne _08074804 + ldr r1, _080747C0 @ =gUnk_03003F80 + ldrb r0, [r1, #0x14] + adds r3, r1, #0 + cmp r0, #0 + bne _080747C4 + adds r1, #0x3f + ldrb r0, [r1] + adds r0, #2 + strb r0, [r1] + b _080747E6 + .align 2, 0 +_080747C0: .4byte gUnk_03003F80 +_080747C4: + adds r0, r3, #0 + adds r0, #0x26 + 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, #4 + orrs r0, r1 + strb r0, [r2] + adds r2, #0x13 + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] +_080747E6: + adds r0, r3, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _080747FE + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074804 +_080747FE: + adds r0, r4, #0 + bl sub_08074808 +_08074804: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08074808 +sub_08074808: @ 0x08074808 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + bl sub_08077AEC + movs r0, #0x46 + bl sub_0807CA84 + adds r3, r0, #0 + cmp r3, #1 + bne _080748B8 + ldr r1, _08074838 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0x26 + ldrb r0, [r2] + cmp r0, #0 + bne _0807486C + ldr r0, [r1, #0x30] + movs r1, #0x80 + lsls r1, r1, #9 + ands r0, r1 + cmp r0, #0 + beq _0807483C + strb r3, [r2] + b _08074840 + .align 2, 0 +_08074838: .4byte gUnk_03003F80 +_0807483C: + movs r0, #8 + strb r0, [r2] +_08074840: + movs r1, #0 + movs r0, #0 + strh r0, [r6, #0x24] + ldr r0, _080748AC @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x89 + strb r1, [r2] + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074862 + adds r0, r6, #0 + movs r1, #0xb + movs r2, #0 + bl CreateFX +_08074862: + ldr r0, _080748B0 @ =0x000001A5 + bl sub_080A3268 + bl sub_08077B2C +_0807486C: + ldr r5, _080748AC @ =gUnk_03003F80 + adds r4, r5, #0 + adds r4, #0x26 + ldrb r1, [r4] + movs r7, #0xf + adds r0, r7, #0 + ands r0, r1 + cmp r0, #1 + beq _0807488A + adds r0, r6, #0 + bl sub_08079744 + ldrb r0, [r4] + subs r0, #1 + strb r0, [r4] +_0807488A: + ldr r0, [r5, #0x30] + ldr r1, _080748B4 @ =0xFFFFF3FF + ands r0, r1 + str r0, [r5, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _080748BE + adds r1, r6, #0 + adds r1, #0x7a + ldrh r0, [r1] + cmp r0, #0xe + bhi _080748BE + strh r7, [r1] + b _080748BE + .align 2, 0 +_080748AC: .4byte gUnk_03003F80 +_080748B0: .4byte 0x000001A5 +_080748B4: .4byte 0xFFFFF3FF +_080748B8: + ldr r1, _080748C0 @ =gUnk_03003F80 + movs r0, #0x14 + strb r0, [r1, #0xc] +_080748BE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080748C0: .4byte gUnk_03003F80 + + thumb_func_start sub_080748C4 +sub_080748C4: @ 0x080748C4 + ldr r1, _080748D0 @ =gUnk_03003F80 + adds r1, #0x3f + ldrb r0, [r1] + subs r0, #2 + strb r0, [r1] + bx lr + .align 2, 0 +_080748D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080748D4 +sub_080748D4: @ 0x080748D4 + push {lr} + bl sub_080741C4 + pop {pc} + + thumb_func_start sub_080748DC +sub_080748DC: @ 0x080748DC + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074910 + adds r0, r4, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _0807490A + ldrh r0, [r4, #0x32] + adds r0, #0xc + strh r0, [r4, #0x32] + ldr r0, _08074914 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _0807490A + ldrh r0, [r4, #0x36] + subs r0, #0xc + strh r0, [r4, #0x36] +_0807490A: + adds r0, r4, #0 + bl sub_0807AABC +_08074910: + pop {r4, pc} + .align 2, 0 +_08074914: .4byte gUnk_03003F80 + + thumb_func_start sub_08074918 +sub_08074918: @ 0x08074918 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074934 + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08074934 + ldr r1, _08074938 @ =gUnk_03003F80 + movs r0, #0x11 + strb r0, [r1, #0xc] +_08074934: + pop {r4, pc} + .align 2, 0 +_08074938: .4byte gUnk_03003F80 + + thumb_func_start sub_0807493C +sub_0807493C: @ 0x0807493C + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x44 + bl sub_0807CA84 + cmp r0, #1 + bne _08074952 + adds r0, r4, #0 + bl sub_0807496C + b _08074966 +_08074952: + ldrh r1, [r4, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0xf + movs r2, #0 + orrs r0, r1 + strh r0, [r4, #0x32] + ldr r0, _08074968 @ =gUnk_03003F80 + strb r2, [r0, #0x12] +_08074966: + pop {r4, pc} + .align 2, 0 +_08074968: .4byte gUnk_03003F80 + + thumb_func_start sub_0807496C +sub_0807496C: @ 0x0807496C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r3, r0, #0 + cmp r3, #0 + bne _080749A2 + ldr r0, _080749A4 @ =gUnk_03003F80 + strb r3, [r0, #2] + 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] + strb r3, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + bl sub_08077B2C +_080749A2: + pop {r4, pc} + .align 2, 0 +_080749A4: .4byte gUnk_03003F80 + + thumb_func_start sub_080749A8 +sub_080749A8: @ 0x080749A8 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x44 + bl sub_0807CA84 + cmp r0, #1 + bne _080749BE + adds r0, r4, #0 + bl sub_080749D4 + b _080749CE +_080749BE: + ldrh r1, [r4, #0x32] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #0 + strh r0, [r4, #0x32] + ldr r0, _080749D0 @ =gUnk_03003F80 + strb r1, [r0, #0x12] +_080749CE: + pop {r4, pc} + .align 2, 0 +_080749D0: .4byte gUnk_03003F80 + + thumb_func_start sub_080749D4 +sub_080749D4: @ 0x080749D4 + push {r4, r5, lr} + adds r4, r0, #0 + bl sub_080741C4 + adds r3, r0, #0 + cmp r3, #0 + bne _08074A40 + 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] + strb r3, [r4, #0x14] + adds r1, r4, #0 + adds r1, #0x38 + movs r0, #3 + strb r0, [r1] + ldr r5, _08074A2C @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x26 + strb r3, [r0] + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4, #0x32] + movs r0, #0xf + ands r0, r1 + cmp r0, #7 + bgt _08074A34 + ldr r0, _08074A30 @ =0x000002D3 + strh r0, [r5, #8] + movs r0, #0x10 + strb r0, [r4, #0x15] + b _08074A3C + .align 2, 0 +_08074A2C: .4byte gUnk_03003F80 +_08074A30: .4byte 0x000002D3 +_08074A34: + movs r1, #0 + ldr r0, _08074A44 @ =0x000002D6 + strh r0, [r5, #8] + strb r1, [r4, #0x15] +_08074A3C: + bl sub_08077B2C +_08074A40: + pop {r4, r5, pc} + .align 2, 0 +_08074A44: .4byte 0x000002D6 + + thumb_func_start sub_08074A48 +sub_08074A48: @ 0x08074A48 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08074A90 @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074A86 + ldr r0, _08074A94 @ =gLinkEntity + movs r1, #0 + movs r2, #0x54 + movs r3, #0 + bl sub_080A2988 + adds r1, r0, #0 + cmp r1, #0 + beq _08074A86 + movs r0, #1 + strb r0, [r1, #0xe] + adds r0, r1, #0 + bl sub_08016A04 + ldrh r1, [r5, #0x22] + adds r0, r4, #0 + adds r0, #0x38 + ldrb r2, [r0] + movs r0, #0x39 + bl sub_08000152 +_08074A86: + adds r0, r4, #0 + bl sub_0807479C + pop {r4, r5, pc} + .align 2, 0 +_08074A90: .4byte gUnk_03003F80 +_08074A94: .4byte gLinkEntity + + thumb_func_start nullsub_504 +nullsub_504: @ 0x08074A98 + bx lr + .align 2, 0 + + thumb_func_start sub_08074A9C +sub_08074A9C: @ 0x08074A9C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074AF0 + ldr r2, _08074AE0 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x80 + ldrh r1, [r0] + subs r1, #0x80 + strh r1, [r0] + ldrb r0, [r2, #0x11] + cmp r0, #1 + beq _08074ACA + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08074AF0 +_08074ACA: + ldrb r0, [r2, #0x12] + cmp r0, #0x25 + bne _08074AE4 + adds r0, r4, #0 + movs r1, #0x21 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + b _08074AF0 + .align 2, 0 +_08074AE0: .4byte gUnk_03003F80 +_08074AE4: + adds r0, r4, #0 + movs r1, #0x21 + movs r2, #1 + movs r3, #1 + bl sub_080A2988 +_08074AF0: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08074AF4 +sub_08074AF4: @ 0x08074AF4 + push {lr} + adds r3, r0, #0 + ldr r1, _08074B04 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1e] + cmp r0, #0 + bne _08074B08 + ldrb r2, [r1, #0xd] + b _08074B0C + .align 2, 0 +_08074B04: .4byte gUnk_03003F80 +_08074B08: + ldrb r0, [r3, #0x14] + lsls r2, r0, #2 +_08074B0C: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_08074244 + pop {pc} + .align 2, 0 + + thumb_func_start sub_08074B18 +sub_08074B18: @ 0x08074B18 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _08074B40 @ =gUnk_03003F80 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08074B48 + bl sub_080741C4 + cmp r0, #0 + bne _08074B48 + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074B44 + adds r0, r5, #0 + bl sub_08074200 + b _08074B48 + .align 2, 0 +_08074B40: .4byte gUnk_03003F80 +_08074B44: + movs r0, #0x1a + strb r0, [r4, #0xc] +_08074B48: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08074B4C +sub_08074B4C: @ 0x08074B4C + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074B6E + ldr r0, _08074B70 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _08074B6E + strb r1, [r4, #0x14] + strb r1, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074B6E: + pop {r4, pc} + .align 2, 0 +_08074B70: .4byte gUnk_03003F80 + + thumb_func_start sub_08074B74 +sub_08074B74: @ 0x08074B74 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074B9A + ldr r0, _08074B9C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074B9A + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #0x10 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074B9A: + pop {r4, pc} + .align 2, 0 +_08074B9C: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BA0 +sub_08074BA0: @ 0x08074BA0 + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074BC6 + ldr r0, _08074BC8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074BC6 + movs r0, #6 + strb r0, [r4, #0x14] + movs r0, #0x18 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074BC6: + pop {r4, pc} + .align 2, 0 +_08074BC8: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BCC +sub_08074BCC: @ 0x08074BCC + push {r4, lr} + adds r4, r0, #0 + bl sub_080741C4 + cmp r0, #0 + bne _08074BF2 + ldr r0, _08074BF4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08074BF2 + movs r0, #2 + strb r0, [r4, #0x14] + movs r0, #8 + strb r0, [r4, #0x15] + adds r0, r4, #0 + bl sub_08074BF8 +_08074BF2: + pop {r4, pc} + .align 2, 0 +_08074BF4: .4byte gUnk_03003F80 + + thumb_func_start sub_08074BF8 +sub_08074BF8: @ 0x08074BF8 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077B2C + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0xa0 + lsls r0, r0, #1 + strh r0, [r4, #0x24] + ldr r1, _08074C40 @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + movs r2, #0x80 + lsls r2, r2, #0x12 + orrs r0, r2 + str r0, [r1, #0x30] + ldrb r2, [r1, #0xa] + movs r0, #0x80 + orrs r2, r0 + strb r2, [r1, #0xa] + ldrb r2, [r1, #0x1a] + orrs r0, r2 + strb r0, [r1, #0x1a] + adds r1, #0x27 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + adds r0, r4, #0 + bl sub_0806F69C + pop {r4, pc} + .align 2, 0 +_08074C40: .4byte gUnk_03003F80 + + thumb_func_start sub_08074C44 +sub_08074C44: @ 0x08074C44 + push {r4, lr} + adds r4, r0, #0 + bl sub_08078EFC + cmp r0, #0 + bne _08074C60 + ldr r0, _08074C64 @ =gUnk_0811BC88 + ldrb r1, [r4, #0xd] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + adds r0, r4, #0 + bl _call_via_r1 +_08074C60: + pop {r4, pc} + .align 2, 0 +_08074C64: .4byte gUnk_0811BC88 + + thumb_func_start sub_08074C68 +sub_08074C68: @ 0x08074C68 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r4, #0 + adds r6, #0x68 + movs r2, #0 + strb r2, [r6] + ldr r5, _08074CA0 @ =gUnk_03003F80 + adds r0, r5, #0 + adds r0, #0x38 + ldrb r3, [r0] + cmp r3, #1 + beq _08074CA8 + adds r0, r4, #0 + adds r0, #0x84 + ldr r1, [r0] + ldr r0, _08074CA4 @ =gUnk_02022750 + cmp r1, r0 + bne _08074CF2 + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r4, #0 + bl sub_08074CF8 + b _08074CF2 + .align 2, 0 +_08074CA0: .4byte gUnk_03003F80 +_08074CA4: .4byte gUnk_02022750 +_08074CA8: + ldrb r1, [r4, #0x18] + movs r0, #4 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r4, #0x18] + strb r2, [r4, #0x14] + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #0x39 + rsbs r0, r0, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #2 + strb r0, [r4, #0xd] + strb r3, [r6] + adds r0, r4, #0 + bl sub_0807DD64 + adds r0, r5, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074CE4 + ldr r0, _08074CE0 @ =0x0000073A + b _08074CE6 + .align 2, 0 +_08074CE0: .4byte 0x0000073A +_08074CE4: + ldr r0, _08074CF4 @ =0x00000736 +_08074CE6: + strh r0, [r5, #8] + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #5 + bl sub_08050054 +_08074CF2: + pop {r4, r5, r6, pc} + .align 2, 0 +_08074CF4: .4byte 0x00000736 + + thumb_func_start sub_08074CF8 +sub_08074CF8: @ 0x08074CF8 + push {r4, r5, r6, lr} + adds r5, r0, #0 + ldrb r6, [r5, #0x14] + adds r4, r5, #0 + adds r4, #0x84 + ldr r1, [r4] + bl sub_0807DF74 + ldr r1, [r4] + adds r0, r5, #0 + bl sub_08074D34 + adds r0, r5, #0 + adds r0, #0x82 + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08074D20 + strb r6, [r5, #0x14] +_08074D20: + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r5, #0 + bl sub_08003FC4 + adds r0, r5, #0 + bl sub_080042B8 + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08074D34 +sub_08074D34: @ 0x08074D34 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, [r6, #8] + cmp r0, #0 + bne _08074D46 + b _08074EF8 +_08074D46: + movs r7, #0x80 + lsls r7, r7, #1 + adds r5, r4, #0 + adds r5, #0x82 +_08074D4E: + ldr r1, [r6, #8] + mvns r0, r1 + adds r2, r0, #1 + ands r2, r1 + eors r1, r2 + str r1, [r6, #8] + cmp r2, r7 + bne _08074D60 + b _08074E82 +_08074D60: + cmp r2, r7 + bhi _08074D90 + cmp r2, #8 + beq _08074E2C + cmp r2, #8 + bhi _08074D7C + cmp r2, #2 + beq _08074E08 + cmp r2, #2 + bls _08074D76 + b _08074EF0 +_08074D76: + cmp r2, #1 + beq _08074DEC + b _08074EF0 +_08074D7C: + cmp r2, #0x20 + beq _08074E62 + cmp r2, #0x20 + bhi _08074D8A + cmp r2, #0x10 + beq _08074E54 + b _08074EF0 +_08074D8A: + cmp r2, #0x80 + beq _08074E70 + b _08074EF0 +_08074D90: + movs r0, #0x80 + lsls r0, r0, #7 + cmp r2, r0 + bne _08074D9A + b _08074EAE +_08074D9A: + cmp r2, r0 + bhi _08074DBE + movs r0, #0x80 + lsls r0, r0, #5 + cmp r2, r0 + beq _08074E96 + cmp r2, r0 + bhi _08074DB4 + movs r0, #0x80 + lsls r0, r0, #2 + cmp r2, r0 + beq _08074E90 + b _08074EF0 +_08074DB4: + movs r0, #0x80 + lsls r0, r0, #6 + cmp r2, r0 + beq _08074EA8 + b _08074EF0 +_08074DBE: + movs r0, #0x80 + lsls r0, r0, #0xa + cmp r2, r0 + bne _08074DC8 + b _08074EBE +_08074DC8: + cmp r2, r0 + bhi _08074DD6 + movs r0, #0x80 + lsls r0, r0, #8 + cmp r2, r0 + beq _08074EB4 + b _08074EF0 +_08074DD6: + movs r0, #0x80 + lsls r0, r0, #0xd + cmp r2, r0 + bne _08074DE0 + b _08074ED8 +_08074DE0: + movs r0, #0x80 + lsls r0, r0, #0xe + cmp r2, r0 + bne _08074DEA + b _08074EE4 +_08074DEA: + b _08074EF0 +_08074DEC: + ldr r2, _08074E00 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08074E04 + movs r0, #0x80 + lsls r0, r0, #3 + strh r0, [r2, #8] + b _08074EF0 + .align 2, 0 +_08074E00: .4byte gUnk_03003F80 +_08074E04: + strh r7, [r2, #8] + b _08074EF0 +_08074E08: + ldr r2, _08074E1C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _08074E24 + ldr r0, _08074E20 @ =0x00000404 + strh r0, [r2, #8] + b _08074EF0 + .align 2, 0 +_08074E1C: .4byte gUnk_03003F80 +_08074E20: .4byte 0x00000404 +_08074E24: + movs r0, #0x82 + lsls r0, r0, #1 + strh r0, [r2, #8] + b _08074EF0 +_08074E2C: + ldr r1, _08074E3C @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + ands r0, r2 + cmp r0, #0 + beq _08074E44 + ldr r0, _08074E40 @ =0x0000041C + b _08074E46 + .align 2, 0 +_08074E3C: .4byte gUnk_03003F80 +_08074E40: .4byte 0x0000041C +_08074E44: + ldr r0, _08074E50 @ =0x0000080C +_08074E46: + strh r0, [r1, #8] + movs r0, #0xc0 + lsls r0, r0, #9 + str r0, [r4, #0x20] + b _08074EF0 + .align 2, 0 +_08074E50: .4byte 0x0000080C +_08074E54: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0x18 + rsbs r2, r2, #0 + bl sub_080A2CFC + b _08074EF0 +_08074E62: + adds r0, r4, #0 + movs r1, #8 + movs r2, #0x18 + rsbs r2, r2, #0 + bl sub_080A2D0C + b _08074EF0 +_08074E70: + 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] + b _08074EF0 +_08074E82: + ldrb r0, [r4, #0x18] + movs r3, #4 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r0, r1 + strb r0, [r4, #0x18] + b _08074EF0 +_08074E90: + movs r0, #0 + strh r0, [r5] + b _08074EF0 +_08074E96: + ldrh r0, [r5] + ldr r2, _08074EA4 @ =0x0000FFFE + adds r1, r2, #0 + ands r0, r1 + strh r0, [r5] + b _08074EF0 + .align 2, 0 +_08074EA4: .4byte 0x0000FFFE +_08074EA8: + ldrh r0, [r5] + movs r1, #1 + b _08074EB8 +_08074EAE: + ldrh r0, [r5] + movs r1, #8 + b _08074EB8 +_08074EB4: + ldrh r0, [r5] + movs r1, #4 +_08074EB8: + orrs r0, r1 + strh r0, [r5] + b _08074EF0 +_08074EBE: + ldrb r2, [r4, #0x18] + lsls r0, r2, #0x19 + lsrs r0, r0, #0x1f + movs r1, #1 + eors r0, r1 + lsls r0, r0, #6 + movs r3, #0x41 + rsbs r3, r3, #0 + adds r1, r3, #0 + ands r2, r1 + orrs r2, r0 + strb r2, [r4, #0x18] + b _08074EF0 +_08074ED8: + movs r1, #2 + strb r1, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + b _08074EF0 +_08074EE4: + movs r0, #0 + movs r1, #3 + strb r1, [r4, #0xd] + adds r1, r4, #0 + adds r1, #0x68 + strb r0, [r1] +_08074EF0: + ldr r0, [r6, #8] + cmp r0, #0 + beq _08074EF8 + b _08074D4E +_08074EF8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08074F00 +sub_08074F00: @ 0x08074F00 + push {lr} + ldr r2, _08074F18 @ =gUnk_0811BC98 + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08074F18: .4byte gUnk_0811BC98 + + thumb_func_start sub_08074F1C +sub_08074F1C: @ 0x08074F1C + adds r2, r0, #0 + adds r2, #0x68 + movs r3, #0 + movs r1, #1 + strb r1, [r2] + strb r3, [r0, #0x14] + bx lr + .align 2, 0 + + thumb_func_start sub_08074F2C +sub_08074F2C: @ 0x08074F2C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r4, #0 + adds r5, #0x84 + ldr r1, [r5] + bl sub_0807DF74 + ldr r1, [r5] + adds r0, r4, #0 + bl sub_08074D34 + pop {r4, r5, pc} + + thumb_func_start sub_08074F44 +sub_08074F44: @ 0x08074F44 + push {lr} + adds r0, #0x68 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r0, _08074F74 @ =gLinkEntity + ldr r0, [r0, #0x6c] + cmp r0, #0 + beq _08074F5A + bl sub_0805E7BC +_08074F5A: + ldr r2, _08074F78 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074F80 + ldr r0, _08074F7C @ =0x0000073B + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + b _08074F84 + .align 2, 0 +_08074F74: .4byte gLinkEntity +_08074F78: .4byte gUnk_03003F80 +_08074F7C: .4byte 0x0000073B +_08074F80: + ldr r0, _08074F88 @ =0x00000737 + strh r0, [r2, #8] +_08074F84: + pop {pc} + .align 2, 0 +_08074F88: .4byte 0x00000737 + + thumb_func_start sub_08074F8C +sub_08074F8C: @ 0x08074F8C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + adds r3, r4, #0 + adds r3, #0x5a + ldrb r0, [r3] + cmp r0, #1 + bne _08074FAC + movs r0, #0 + strb r0, [r3] + ldr r2, _08074FDC @ =gUnk_02033280 + ldr r0, [r2] + movs r1, #4 + orrs r0, r1 + str r0, [r2] +_08074FAC: + ldrb r1, [r3] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08074FEA + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #8 + strb r0, [r4, #0xe] + movs r0, #4 + strb r0, [r4, #0x14] + ldr r1, _08074FE0 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _08074FE4 + movs r0, #0x80 + lsls r0, r0, #3 + b _08074FE8 + .align 2, 0 +_08074FDC: .4byte gUnk_02033280 +_08074FE0: .4byte gUnk_03003F80 +_08074FE4: + movs r0, #0x80 + lsls r0, r0, #1 +_08074FE8: + strh r0, [r1, #8] +_08074FEA: + pop {r4, pc} + + thumb_func_start sub_08074FEC +sub_08074FEC: @ 0x08074FEC + 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 _08075016 + adds r1, r4, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #4 + strb r0, [r4, #0xe] + ldr r0, _08075018 @ =gUnk_03003F80 + adds r0, #0x3a + ldrb r0, [r0] + strb r0, [r4, #0x14] +_08075016: + pop {r4, pc} + .align 2, 0 +_08075018: .4byte gUnk_03003F80 + + thumb_func_start sub_0807501C +sub_0807501C: @ 0x0807501C + 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 _08075086 + ldr r1, _08075044 @ =gUnk_03003F80 + adds r0, r1, #0 + adds r0, #0x3a + ldrb r0, [r0] + strb r0, [r2, #0x14] + adds r0, r1, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _0807504C + ldr r0, _08075048 @ =0x0000041C + b _0807504E + .align 2, 0 +_08075044: .4byte gUnk_03003F80 +_08075048: .4byte 0x0000041C +_0807504C: + ldr r0, _08075088 @ =0x0000080C +_0807504E: + strh r0, [r1, #8] + 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] + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + strb r0, [r2, #0x15] + movs r0, #0xc8 + strh r0, [r2, #0x24] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #8 + strb r0, [r2, #0xe] + adds r1, r2, #0 + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x7c + bl sub_080A3268 +_08075086: + pop {pc} + .align 2, 0 +_08075088: .4byte 0x0000080C + + thumb_func_start sub_0807508C +sub_0807508C: @ 0x0807508C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + movs r1, #0x80 + lsls r1, r1, #6 + adds r0, r4, #0 + bl sub_08003FC4 + cmp r0, #0 + beq _080750AA + adds r0, r4, #0 + bl sub_0806F69C + b _080750F2 +_080750AA: + ldr r2, _080750BC @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + bne _080750C0 + movs r0, #0x80 + lsls r0, r0, #3 + b _080750CE + .align 2, 0 +_080750BC: .4byte gUnk_03003F80 +_080750C0: + ldr r0, [r2, #0x30] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #1 +_080750CE: + strh r0, [r2, #8] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + bne _080750F2 + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + movs r0, #0x7d + bl sub_080A3268 +_080750F2: + pop {r4, pc} + + thumb_func_start sub_080750F4 +sub_080750F4: @ 0x080750F4 + push {lr} + ldr r2, _0807510C @ =gUnk_0811BCB4 + adds r1, r0, #0 + adds r1, #0x68 + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807510C: .4byte gUnk_0811BCB4 + + thumb_func_start sub_08075110 +sub_08075110: @ 0x08075110 + adds r2, r0, #0 + adds r2, #0x68 + ldrb r1, [r2] + adds r1, #1 + movs r3, #0 + strb r1, [r2] + ldrb r1, [r0, #0x14] + strb r1, [r0, #0xf] + strb r3, [r0, #0x14] + ldr r2, _08075134 @ =gUnk_03003F80 + ldr r0, _08075138 @ =0x00000734 + strh r0, [r2, #8] + ldr r0, [r2, #0x30] + movs r1, #9 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_08075134: .4byte gUnk_03003F80 +_08075138: .4byte 0x00000734 + + thumb_func_start sub_0807513C +sub_0807513C: @ 0x0807513C + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_080042B8 + adds r4, r5, #0 + adds r4, #0x5a + ldrb r0, [r4] + cmp r0, #1 + bne _08075158 + movs r0, #0 + strb r0, [r4] + movs r0, #0x7c + bl sub_080A3268 +_08075158: + ldrb r0, [r4] + cmp r0, #2 + bne _0807516E + movs r0, #0 + strb r0, [r4] + ldr r0, _08075188 @ =0x0000014B + bl sub_080A3268 + movs r0, #0x7a + bl sub_080A3268 +_0807516E: + ldrb r1, [r4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075186 + adds r0, r5, #0 + adds r0, #0x68 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + movs r0, #0x3c + strb r0, [r5, #0xe] +_08075186: + pop {r4, r5, pc} + .align 2, 0 +_08075188: .4byte 0x0000014B + + thumb_func_start sub_0807518C +sub_0807518C: @ 0x0807518C + 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 _080751AA + adds r1, #0x68 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _080751AC @ =gUnk_03003F80 + ldr r0, _080751B0 @ =0x000003C9 + strh r0, [r1, #8] +_080751AA: + pop {pc} + .align 2, 0 +_080751AC: .4byte gUnk_03003F80 +_080751B0: .4byte 0x000003C9 + + thumb_func_start sub_080751B4 +sub_080751B4: @ 0x080751B4 + 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 _080751E2 + movs r1, #0 + movs r0, #4 + strb r0, [r4, #0x14] + movs r0, #1 + strb r0, [r4, #0xd] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + ldr r1, _080751E4 @ =gUnk_03003F80 + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r1, #8] +_080751E2: + pop {r4, pc} + .align 2, 0 +_080751E4: .4byte gUnk_03003F80 + + thumb_func_start sub_080751E8 +sub_080751E8: @ 0x080751E8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + ldr r4, _08075230 @ =gUnk_02022750 + adds r0, r4, #0 + movs r1, #0x24 + bl sub_0801D630 + str r6, [r4] + ldr r0, _08075234 @ =gLinkEntity + adds r0, #0x84 + str r4, [r0] + ldr r2, _08075238 @ =gUnk_03003F80 + movs r1, #0 + movs r0, #0x1c + strb r0, [r2, #0xc] + adds r0, r2, #0 + adds r0, #0x38 + movs r4, #1 + strb r4, [r0] + adds r3, r2, #0 + adds r3, #0x39 + strb r1, [r3] + adds r0, #2 + strb r5, [r0] + ldr r0, [r2, #0x30] + movs r1, #8 + orrs r0, r1 + str r0, [r2, #0x30] + cmp r7, #0 + bne _08075240 + strb r7, [r3] + ldr r6, _0807523C @ =gUnk_08009ECC + b _08075244 + .align 2, 0 +_08075230: .4byte gUnk_02022750 +_08075234: .4byte gLinkEntity +_08075238: .4byte gUnk_03003F80 +_0807523C: .4byte gUnk_08009ECC +_08075240: + strb r4, [r3] + ldr r6, _08075290 @ =gUnk_08009EF0 +_08075244: + ldr r0, _08075294 @ =gUnk_03003F80 + adds r0, #0x39 + ldrb r0, [r0] + movs r1, #0 + cmp r0, #0 + bne _08075252 + movs r1, #2 +_08075252: + movs r0, #0x5b + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _08075270 + ldr r0, _08075298 @ =gLinkEntity + adds r1, r4, #0 + bl sub_0806FA24 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807DAD0 +_08075270: + ldr r4, _08075298 @ =gLinkEntity + movs r1, #0xe + rsbs r1, r1, #0 + movs r2, #0x1c + rsbs r2, r2, #0 + adds r0, r4, #0 + bl sub_080A2D1C + str r0, [r4, #0x6c] + cmp r0, #0 + beq _0807528C + movs r1, #3 + bl sub_0805E3A0 +_0807528C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075290: .4byte gUnk_08009EF0 +_08075294: .4byte gUnk_03003F80 +_08075298: .4byte gLinkEntity + + thumb_func_start sub_0807529C +sub_0807529C: @ 0x0807529C + push {lr} + movs r2, #0x20 + rsbs r2, r2, #0 + movs r1, #8 + bl sub_080A2D0C + pop {pc} + .align 2, 0 + + thumb_func_start sub_080752AC +sub_080752AC: @ 0x080752AC + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + bl sub_0806F69C + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _080752D0 + adds r0, r5, #0 + bl sub_080002B8 + cmp r0, #0x29 + beq _080752DC + movs r0, #1 + strb r0, [r4, #0x18] + movs r0, #6 + strb r0, [r4, #0x19] + b _080752DC +_080752D0: + ldrb r0, [r4, #0x19] + subs r0, #1 + strb r0, [r4, #0x19] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _080752E2 +_080752DC: + ldr r1, _080752E4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_080752E2: + pop {r4, r5, pc} + .align 2, 0 +_080752E4: .4byte gUnk_02033280 + + thumb_func_start sub_080752E8 +sub_080752E8: @ 0x080752E8 + push {lr} + ldr r3, _080752FC @ =gUnk_0811BCC4 + ldrb r2, [r0, #1] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_080752FC: .4byte gUnk_0811BCC4 + + thumb_func_start sub_08075300 +sub_08075300: @ 0x08075300 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077BD4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + pop {r4, r5, pc} + + thumb_func_start sub_08075314 +sub_08075314: @ 0x08075314 + push {lr} + ldr r2, _08075330 @ =gUnk_03003F80 + adds r2, #0xa8 + movs r3, #2 + strb r3, [r2] + ldr r3, _08075334 @ =gUnk_0811BD44 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075330: .4byte gUnk_03003F80 +_08075334: .4byte gUnk_0811BD44 + + thumb_func_start sub_08075338 +sub_08075338: @ 0x08075338 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + ldr r4, _0807536C @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + movs r3, #0x80 + adds r0, r1, #0 + ands r0, r3 + cmp r0, #0 + beq _08075370 + ldrb r0, [r5, #9] + movs r1, #0x80 + orrs r1, r0 + strb r1, [r5, #9] + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + movs r0, #0xc0 + lsls r0, r0, #4 + strh r0, [r4, #8] + movs r0, #0x75 + bl sub_080A3268 + b _080754B4 + .align 2, 0 +_0807536C: .4byte gUnk_03003F80 +_08075370: + ldrb r2, [r4, #2] + cmp r2, #0 + beq _080753DC + movs r6, #7 + adds r0, r6, #0 + ands r0, r2 + cmp r0, #3 + beq _080753E4 + movs r0, #0x78 + ands r0, r2 + cmp r0, #0 + bne _080753E4 + ldr r3, _080753D4 @ =gLinkEntity + ldr r1, [r3, #0x20] + ldr r0, _080753D8 @ =0x00017FFF + cmp r1, r0 + bhi _080753E4 + adds r0, r4, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080753E4 + ldr r0, [r3, #0x34] + cmp r0, #0 + beq _080753E4 + movs r0, #0x20 + orrs r0, r2 + strb r0, [r4, #2] + adds r0, r4, #0 + adds r0, #0xab + strb r6, [r0] + movs r0, #8 + asrs r0, r7 + lsls r1, r0, #4 + orrs r0, r1 + ldrb r1, [r4, #4] + orrs r0, r1 + strb r0, [r4, #4] + adds r0, r5, #0 + bl sub_08077B98 + movs r0, #6 + strb r0, [r5, #4] + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08075898 + b _080754B4 + .align 2, 0 +_080753D4: .4byte gLinkEntity +_080753D8: .4byte 0x00017FFF +_080753DC: + ldr r2, _080753F0 @ =gLinkEntity + ldr r0, [r2, #0x34] + cmp r0, #0 + beq _080753F4 +_080753E4: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_080759B8 + b _080754B4 + .align 2, 0 +_080753F0: .4byte gLinkEntity +_080753F4: + movs r6, #0x80 + lsls r6, r6, #0xb + ands r6, r1 + cmp r6, #0 + beq _08075480 + adds r0, r4, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #2 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r6, r0, #0x10 + cmp r6, #0 + bne _0807541E + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _080754B4 + bl sub_0805E7BC + str r6, [r4, #0x2c] + b _080754B4 +_0807541E: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + adds r0, r5, #0 + bl sub_08077B98 + movs r3, #8 + adds r1, r3, #0 + asrs r1, r7 + lsls r0, r1, #4 + orrs r0, r1 + ldrb r2, [r4, #4] + orrs r0, r2 + strb r0, [r4, #4] + ldrb r2, [r4, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r4, #0xa] + ldrb r0, [r4, #0xb] + orrs r1, r0 + strb r1, [r4, #0xb] + strb r3, [r5, #4] + movs r0, #0x14 + strb r0, [r5, #7] + movs r0, #6 + strb r0, [r5, #0xf] + ldrb r1, [r5, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r5, #9] + adds r1, r4, #0 + adds r1, #0xab + movs r0, #2 + strb r0, [r1] + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x14 + orrs r0, r1 + str r0, [r4, #0x30] + movs r1, #0x98 + lsls r1, r1, #1 + adds r0, r5, #0 + bl sub_08077DF4 + movs r0, #0x77 + bl sub_080A3268 + b _080754B4 +_08075480: + ldrb r1, [r4, #0x1b] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08075492 + strb r6, [r4, #0x1b] + adds r0, r2, #0 + bl sub_0806F948 +_08075492: + ldr r1, [r4, #0x2c] + cmp r1, #0 + beq _080754A6 + ldrb r0, [r1, #9] + cmp r0, #1 + beq _080754A6 + adds r0, r1, #0 + bl sub_0805E7BC + str r6, [r4, #0x2c] +_080754A6: + adds r0, r5, #0 + adds r1, r7, #0 + bl sub_08077D38 + adds r0, r5, #0 + bl sub_08077B98 +_080754B4: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080754B8 +sub_080754B8: @ 0x080754B8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r7, _080754D4 @ =gUnk_03003F80 + ldrb r1, [r7, #0x1b] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080754D8 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075694 + b _0807557E + .align 2, 0 +_080754D4: .4byte gUnk_03003F80 +_080754D8: + ldrb r0, [r7, #4] + cmp r0, #0 + beq _08075576 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _080754F2 + ldrb r1, [r4, #9] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #9] +_080754F2: + ldr r0, _0807552C @ =gLinkEntity + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075538 + bl sub_0807B014 + adds r5, r0, #0 + cmp r5, #0 + beq _08075538 + movs r0, #8 + movs r1, #0xf + movs r2, #2 + bl sub_0805EB00 + cmp r0, #0 + bne _08075538 + adds r0, r4, #0 + movs r1, #0xf + bl sub_08077C3C + cmp r5, #0xf + bne _08075530 + adds r1, r7, #0 + adds r1, #0xab + movs r0, #5 + b _08075536 + .align 2, 0 +_0807552C: .4byte gLinkEntity +_08075530: + adds r1, r7, #0 + adds r1, #0xab + movs r0, #8 +_08075536: + strb r0, [r1] +_08075538: + ldrb r1, [r4, #0xe] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807557E + ldr r1, _08075568 @ =gUnk_03003F80 + ldr r0, [r1, #0x30] + ands r0, r2 + cmp r0, #0 + bne _0807555C + adds r0, r1, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807556C +_0807555C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _0807557E + .align 2, 0 +_08075568: .4byte gUnk_03003F80 +_0807556C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075580 + b _0807557E +_08075576: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_0807557E: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08075580 +sub_08075580: @ 0x08075580 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _080755E6 + ldr r2, _080755C8 @ =gUnk_03003F80 + ldrb r3, [r2, #2] + cmp r3, #0 + bne _080755E6 + movs r1, #8 + asrs r1, r5 + ldrb r0, [r2, #0xa] + bics r0, r1 + strb r0, [r2, #0xa] + movs r0, #1 + strb r0, [r2, #0x1b] + ldr r0, [r2, #0x2c] + adds r0, #0x40 + movs r1, #0xd + strb r1, [r0] + strb r3, [r4, #0xf] + movs r0, #2 + strb r0, [r4, #4] + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _080755CC + movs r0, #0x28 + b _080755CE + .align 2, 0 +_080755C8: .4byte gUnk_03003F80 +_080755CC: + movs r0, #0x50 +_080755CE: + strb r0, [r4, #7] + movs r1, #0xb4 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x43 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + b _080755EE +_080755E6: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 +_080755EE: + pop {r4, r5, pc} + + thumb_func_start sub_080755F0 +sub_080755F0: @ 0x080755F0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08075642 + adds r0, r4, #0 + bl sub_08077EC8 + cmp r0, #0 + bne _0807564A + ldr r2, _08075634 @ =gUnk_03003F80 + ldrb r3, [r2, #0x1b] + ldrb r0, [r2, #4] + orrs r0, r3 + cmp r0, #0 + beq _08075638 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807564A + movs r0, #3 + strb r0, [r4, #4] + ldrb r0, [r4, #9] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + movs r0, #0x20 + orrs r0, r3 + strb r0, [r2, #0x1b] + b _0807564A + .align 2, 0 +_08075634: .4byte gUnk_03003F80 +_08075638: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 + b _0807564A +_08075642: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080759B8 +_0807564A: + pop {r4, r5, pc} + + thumb_func_start sub_0807564C +sub_0807564C: @ 0x0807564C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075668 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1b] + ldrb r0, [r5, #4] + orrs r0, r1 + cmp r0, #0 + bne _0807566C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _08075692 + .align 2, 0 +_08075668: .4byte gUnk_03003F80 +_0807566C: + adds r0, r4, #0 + bl sub_08077EC8 + cmp r0, #0 + bne _08075692 + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _0807568A + ldrb r1, [r5, #0x1b] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075692 +_0807568A: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08075694 +_08075692: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08075694 +sub_08075694: @ 0x08075694 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r3, #1 + strb r3, [r4, #7] + ldr r2, _080756C4 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #0x14 + ands r0, r1 + cmp r0, #0 + beq _080756D0 + ldr r0, _080756C8 @ =0xF7FFFFFF + ands r1, r0 + ldr r0, _080756CC @ =0xFFFBFFFF + ands r1, r0 + str r1, [r2, #0x30] + movs r1, #0x96 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + b _080756E0 + .align 2, 0 +_080756C4: .4byte gUnk_03003F80 +_080756C8: .4byte 0xF7FFFFFF +_080756CC: .4byte 0xFFFBFFFF +_080756D0: + adds r0, r2, #0 + adds r0, #0xab + strb r3, [r0] + movs r1, #0x92 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_080756E0: + ldr r2, _08075730 @ =gUnk_03003F80 + movs r0, #8 + asrs r0, r5 + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + movs r0, #4 + strb r0, [r4, #4] + movs r0, #6 + strb r0, [r4, #0xf] + ldr r0, _08075734 @ =gLinkEntity + adds r0, #0x40 + movs r1, #0x1e + strb r1, [r0] + ldrb r1, [r2, #0x1b] + movs r0, #0x40 + orrs r0, r1 + movs r1, #0xdf + ands r0, r1 + strb r0, [r2, #0x1b] + adds r3, r2, #0 + adds r3, #0xa0 + ldrb r0, [r3] + cmp r0, #4 + bne _08075726 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _08075726 + movs r0, #1 + strb r0, [r3] + bl sub_0807A108 +_08075726: + movs r0, #0x76 + bl sub_080A3268 + pop {r4, r5, pc} + .align 2, 0 +_08075730: .4byte gUnk_03003F80 +_08075734: .4byte gLinkEntity + + thumb_func_start sub_08075738 +sub_08075738: @ 0x08075738 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075750 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _08075754 + adds r0, r4, #0 + bl sub_080759B8 + b _0807588C + .align 2, 0 +_08075750: .4byte gUnk_03003F80 +_08075754: + adds r0, r4, #0 + bl sub_08077E24 + adds r0, r4, #0 + bl sub_08077F10 + cmp r0, #0 + beq _08075768 + movs r0, #2 + strb r0, [r4, #7] +_08075768: + ldrb r2, [r5, #0x1b] + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _080757D4 + ldrb r1, [r5, #0xd] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _08075780 + strb r1, [r4, #0xb] +_08075780: + ldr r1, _080757D0 @ =gLinkEntity + ldrb r0, [r4, #0xb] + strb r0, [r1, #0x15] + movs r0, #0xc0 + lsls r0, r0, #1 + strh r0, [r1, #0x24] + ldrb r1, [r4, #0xe] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807588C + movs r2, #0xa + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _080757AA + movs r2, #0xf +_080757AA: + ldrb r0, [r4, #8] + adds r0, #1 + strb r0, [r4, #8] + movs r1, #0xff + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r2, r0 + bls _080757C6 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + ands r0, r1 + cmp r0, #0 + bne _0807588C +_080757C6: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _0807588C + .align 2, 0 +_080757D0: .4byte gLinkEntity +_080757D4: + ldr r7, _08075890 @ =gLinkEntity + adds r0, r7, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075816 + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + bne _08075816 + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075816 + adds r0, r4, #0 + movs r1, #0x14 + bl sub_08077C3C + adds r2, r0, #0 + cmp r2, #0 + beq _08075816 + ldrb r0, [r7, #0x14] + movs r1, #6 + ands r1, r0 + movs r0, #0x80 + orrs r1, r0 + strb r1, [r2, #0x14] +_08075816: + ldr r5, _08075890 @ =gLinkEntity + adds r0, r5, #0 + adds r0, #0x5b + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807587A + ldr r2, _08075894 @ =gUnk_03003F80 + ldrb r3, [r2, #0x1b] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + bne _0807587A + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0807587A + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807587A + movs r0, #0x10 + orrs r0, r3 + strb r0, [r2, #0x1b] + adds r1, r2, #0 + adds r1, #0xab + movs r0, #6 + strb r0, [r1] + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r4, #0xb] + movs r0, #1 + strb r0, [r4, #7] + strb r0, [r4, #8] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r2, #0xa] + bics r0, r1 + strb r0, [r2, #0xa] + movs r1, #0x94 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_0807587A: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807588C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_0807588C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075890: .4byte gLinkEntity +_08075894: .4byte gUnk_03003F80 + + thumb_func_start sub_08075898 +sub_08075898: @ 0x08075898 + push {lr} + adds r2, r0, #0 + ldr r0, _080758AC @ =gUnk_03003F80 + ldrb r0, [r0, #4] + cmp r0, #0 + bne _080758AA + adds r0, r2, #0 + bl sub_080759B8 +_080758AA: + pop {pc} + .align 2, 0 +_080758AC: .4byte gUnk_03003F80 + + thumb_func_start sub_080758B0 +sub_080758B0: @ 0x080758B0 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080758C4 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080758C8 + adds r0, r4, #0 + bl sub_080759B8 + b _080758F8 + .align 2, 0 +_080758C4: .4byte gUnk_03003F80 +_080758C8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080758F8 + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r1, [r5, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080758EA + movs r0, #3 + b _080758EC +_080758EA: + movs r0, #5 +_080758EC: + strb r0, [r4, #4] + ldr r2, _080758FC @ =gUnk_03003F80 + ldrb r1, [r2, #0x1b] + movs r0, #0xf7 + ands r0, r1 + strb r0, [r2, #0x1b] +_080758F8: + pop {r4, r5, pc} + .align 2, 0 +_080758FC: .4byte gUnk_03003F80 + + thumb_func_start sub_08075900 +sub_08075900: @ 0x08075900 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075920 @ =gUnk_03003F80 + ldrb r0, [r5, #0x12] + cmp r0, #0x11 + bne _08075928 + ldr r0, [r5, #0x30] + ldr r1, _08075924 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 + b _080759B2 + .align 2, 0 +_08075920: .4byte gUnk_03003F80 +_08075924: .4byte 0xFFFBFFFF +_08075928: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r5, #0x1b] + movs r2, #0x80 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08075948 + movs r0, #0xa0 + strb r0, [r5, #0x1b] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807564C + b _080759B2 +_08075948: + ldrb r0, [r4, #7] + cmp r0, #0 + beq _08075998 + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _08075962 + movs r1, #0x9a + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 +_08075962: + ldr r4, _08075990 @ =gLinkEntity + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #3 + strb r0, [r4, #0x15] + movs r0, #0xc0 + lsls r0, r0, #2 + strh r0, [r4, #0x24] + bl sub_08079E08 + ldr r0, _08075994 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #3 + ands r0, r1 + cmp r0, #0 + bne _080759B2 + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + b _080759B2 + .align 2, 0 +_08075990: .4byte gLinkEntity +_08075994: .4byte gUnk_030010A0 +_08075998: + ldrb r1, [r4, #0xe] + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _080759B2 + ldr r0, [r5, #0x30] + ldr r1, _080759B4 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_080759B8 +_080759B2: + pop {r4, r5, r6, pc} + .align 2, 0 +_080759B4: .4byte 0xFFFBFFFF + + thumb_func_start sub_080759B8 +sub_080759B8: @ 0x080759B8 + push {r4, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldr r2, _080759E8 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _080759D0 + ldr r0, _080759EC @ =gLinkEntity + adds r0, #0x40 + strb r1, [r0] +_080759D0: + ldr r0, [r2, #0x30] + ldr r1, _080759F0 @ =0xF7FFFFFF + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0 + strb r0, [r2, #0x1b] + str r0, [r2, #0x2c] + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08077E78 + pop {r4, pc} + .align 2, 0 +_080759E8: .4byte gUnk_03003F80 +_080759EC: .4byte gLinkEntity +_080759F0: .4byte 0xF7FFFFFF + + thumb_func_start sub_080759F4 +sub_080759F4: @ 0x080759F4 + push {lr} + ldr r3, _08075A08 @ =gUnk_0811BD68 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075A08: .4byte gUnk_0811BD68 + + thumb_func_start sub_08075A0C +sub_08075A0C: @ 0x08075A0C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #1] + bl sub_0805436C + adds r6, r0, #0 + ldr r1, _08075A64 @ =gUnk_03003F80 + ldrb r0, [r1, #5] + cmp r0, #0 + bne _08075A3E + ldrb r0, [r1, #0xc] + cmp r0, #0x18 + beq _08075A3E + ldrb r0, [r1, #2] + cmp r0, #0 + bne _08075A3E + ldr r0, [r1, #0x2c] + cmp r0, #0 + bne _08075A3E + ldr r0, [r1, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075A6C +_08075A3E: + movs r0, #0xf + adds r1, r6, #0 + bl sub_08054414 + ldr r0, _08075A64 @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _08075A68 @ =0xFF7FFFFF + ands r1, r2 + str r1, [r0, #0x30] + movs r0, #0xf + adds r1, r6, #0 + bl sub_08054414 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + b _08075AD0 + .align 2, 0 +_08075A64: .4byte gUnk_03003F80 +_08075A68: .4byte 0xFF7FFFFF +_08075A6C: + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + bl sub_08077BD4 + ldr r5, _08075AD4 @ =gLinkEntity + adds r0, r5, #0 + bl sub_0806F948 + movs r0, #0x10 + strb r0, [r4, #1] + adds r1, r6, #0 + bl sub_08054414 + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08075AD8 @ =gUnk_08126EEC + adds r4, r0, r1 + adds r0, r5, #0 + movs r1, #0x45 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _08075AD0 + adds r0, r5, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x60 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r4, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08075AD0: + pop {r4, r5, r6, pc} + .align 2, 0 +_08075AD4: .4byte gLinkEntity +_08075AD8: .4byte gUnk_08126EEC + + thumb_func_start sub_08075ADC +sub_08075ADC: @ 0x08075ADC + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075B44 @ =gUnk_03003F80 + ldr r0, [r2, #0x2c] + cmp r0, #0 + bne _08075B08 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075B08 + ldr r0, [r2, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08075B08 + bl sub_08079D48 + cmp r0, #0 + bne _08075B4C +_08075B08: + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + ldr r3, _08075B44 @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + orrs r0, r1 + str r0, [r3, #0x30] + movs r2, #8 + asrs r2, r5 + lsls r1, r2, #4 + orrs r1, r2 + ldrb r0, [r3, #4] + bics r0, r1 + strb r0, [r3, #4] + mvns r2, r2 + ldrb r1, [r3, #0xa] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + ands r2, r0 + strb r2, [r3, #0xb] + ldr r0, _08075B48 @ =0x0000013D + bl sub_080A3268 + b _08075B52 + .align 2, 0 +_08075B44: .4byte gUnk_03003F80 +_08075B48: .4byte 0x0000013D +_08075B4C: + adds r0, r4, #0 + bl sub_08077E24 +_08075B52: + pop {r4, r5, pc} + + thumb_func_start sub_08075B54 +sub_08075B54: @ 0x08075B54 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + mov sb, r1 + ldr r5, _08075BB0 @ =gUnk_03003F80 + ldr r0, [r5, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + beq _08075B70 + b _08075C80 +_08075B70: + ldrb r0, [r6, #1] + bl sub_0805436C + adds r4, r0, #0 + adds r0, r6, #0 + bl sub_08077F10 + cmp r0, #0 + bne _08075B86 + cmp r4, #1 + bls _08075BB8 +_08075B86: + ldrb r0, [r5, #2] + cmp r0, #0 + bne _08075BB8 + movs r0, #0xf + adds r1, r4, #0 + bl sub_08054414 + ldr r0, [r5, #0x30] + ldr r1, _08075BB4 @ =0xFF7FFFFF + ands r0, r1 + str r0, [r5, #0x30] + adds r0, r6, #0 + mov r1, sb + bl sub_08077E78 + movs r0, #0x9f + lsls r0, r0, #1 + bl sub_080A3268 + b _08075C80 + .align 2, 0 +_08075BB0: .4byte gUnk_03003F80 +_08075BB4: .4byte 0xFF7FFFFF +_08075BB8: + ldr r0, _08075C88 @ =gUnk_03003F80 + mov r8, r0 + ldrb r0, [r0, #0xc] + cmp r0, #0x18 + beq _08075C80 + ldr r5, _08075C8C @ =gLinkEntity + ldrb r0, [r5, #0x1e] + cmp r0, #0x36 + bhi _08075C80 + ldrh r1, [r5, #0x12] + cmp r1, #6 + bne _08075C80 + ldrb r0, [r5, #0x14] + ands r1, r0 + ldr r0, _08075C90 @ =gUnk_08126EEC + adds r7, r1, r0 + mov r1, r8 + ldrb r0, [r1, #2] + cmp r0, #0 + bne _08075C80 + movs r2, #0x2e + ldrsh r0, [r5, r2] + movs r1, #0 + ldrsb r1, [r7, r1] + adds r0, r0, r1 + ldr r4, _08075C94 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r2, #0x32 + ldrsh r1, [r5, r2] + movs r2, #1 + ldrsb r2, [r7, r2] + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + movs r2, #0x40 + bl sub_080002F0 + cmp r0, #0 + beq _08075C80 + movs r0, #0xf + strb r0, [r6, #0xf] + ldrb r0, [r6, #4] + adds r0, #1 + strb r0, [r6, #4] + adds r1, r5, #0 + adds r1, #0x7a + movs r0, #2 + strh r0, [r1] + adds r0, r5, #0 + movs r1, #0x45 + movs r2, #1 + movs r3, #0 + bl sub_080A2988 + adds r2, r0, #0 + cmp r2, #0 + beq _08075C60 + adds r0, r5, #0 + adds r0, #0x60 + ldrh r1, [r0] + adds r0, r2, #0 + adds r0, #0x60 + strh r1, [r0] + movs r0, #0 + ldrsb r0, [r7, r0] + ldrh r1, [r2, #0x2e] + adds r0, r0, r1 + strh r0, [r2, #0x2e] + movs r0, #1 + ldrsb r0, [r7, r0] + ldrh r1, [r2, #0x32] + adds r0, r0, r1 + strh r0, [r2, #0x32] +_08075C60: + ldr r1, _08075C98 @ =0x0000060C + adds r0, r6, #0 + bl sub_08077DF4 + movs r1, #8 + mov r2, sb + asrs r1, r2 + mov r0, r8 + ldrb r2, [r0, #0xa] + adds r0, r1, #0 + orrs r0, r2 + mov r2, r8 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + orrs r1, r0 + strb r1, [r2, #0xb] +_08075C80: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08075C88: .4byte gUnk_03003F80 +_08075C8C: .4byte gLinkEntity +_08075C90: .4byte gUnk_08126EEC +_08075C94: .4byte gUnk_03000BF0 +_08075C98: .4byte 0x0000060C + + thumb_func_start sub_08075C9C +sub_08075C9C: @ 0x08075C9C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08075CCA + ldr r0, _08075CF8 @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r2, #6 + ands r2, r1 + ldr r1, _08075CFC @ =gUnk_08126EEC + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + bl sub_0807AB44 +_08075CCA: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075D04 + movs r0, #0 + strb r0, [r4, #0xf] + ldrb r0, [r4, #4] + subs r0, #1 + strb r0, [r4, #4] + ldr r2, _08075D00 @ =gUnk_03003F80 + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r3, [r2, #0xa] + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + ands r1, r0 + strb r1, [r2, #0xb] + b _08075D0E + .align 2, 0 +_08075CF8: .4byte gLinkEntity +_08075CFC: .4byte gUnk_08126EEC +_08075D00: .4byte gUnk_03003F80 +_08075D04: + ldr r1, _08075D10 @ =gLinkEntity + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] +_08075D0E: + pop {r4, r5, pc} + .align 2, 0 +_08075D10: .4byte gLinkEntity + + thumb_func_start sub_08075D14 +sub_08075D14: @ 0x08075D14 + push {lr} + ldr r3, _08075D28 @ =gUnk_0811BD78 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075D28: .4byte gUnk_0811BD78 + + thumb_func_start sub_08075D2C +sub_08075D2C: @ 0x08075D2C + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08075D74 @ =gUnk_03003F80 + ldrb r1, [r5, #4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08075D7C + ldrb r1, [r4, #1] + adds r0, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08075D7C + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldr r0, _08075D78 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + movs r1, #0xb + bl sub_08077C0C + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077D38 + ldrb r1, [r5, #4] + movs r0, #8 + orrs r0, r1 + strb r0, [r5, #4] + b _08075D84 + .align 2, 0 +_08075D74: .4byte gUnk_03003F80 +_08075D78: .4byte gLinkEntity +_08075D7C: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08075D84: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08075D88 +sub_08075D88: @ 0x08075D88 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075DBC @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r3, #0x80 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08075DD0 + ldrb r0, [r4, #1] + cmp r0, #0xc + bne _08075DC0 + ldrb r1, [r2, #0xa] + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _08075DC0 + ldrb r1, [r4, #0xe] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08075DC0 + bl sub_08078F60 + b _08075DD8 + .align 2, 0 +_08075DBC: .4byte gUnk_03003F80 +_08075DC0: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075DD8 +_08075DD0: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075DD8: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08075DDC +sub_08075DDC: @ 0x08075DDC + push {lr} + ldr r3, _08075DF0 @ =gUnk_0811BD80 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075DF0: .4byte gUnk_0811BD80 + + thumb_func_start sub_08075DF4 +sub_08075DF4: @ 0x08075DF4 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r6, _08075E2C @ =gUnk_03003F80 + ldrb r1, [r6, #4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08075E34 + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + ldr r0, _08075E30 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r1, r6, #0 + adds r1, #0x21 + movs r0, #1 + strb r0, [r1] + b _08075E3C + .align 2, 0 +_08075E2C: .4byte gUnk_03003F80 +_08075E30: .4byte gLinkEntity +_08075E34: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075E3C: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08075E40 +sub_08075E40: @ 0x08075E40 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + ldr r0, _08075EA0 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x21 + ldrb r1, [r1] + adds r6, r0, #0 + cmp r1, #0 + beq _08075EA8 + ldrb r1, [r6, #4] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r7, r0, #0x18 + cmp r7, #0 + bne _08075EA8 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _08075EB8 + movs r0, #2 + strb r0, [r4, #4] + ldrb r1, [r4, #9] + movs r0, #0x7f + ands r0, r1 + strb r0, [r4, #9] + ldr r0, _08075EA4 @ =gUnk_02002A40 + adds r0, #0xad + ldrb r0, [r0] + cmp r0, #0 + beq _08075EB8 + strb r7, [r4, #0xf] + movs r1, #8 + mov r0, r8 + asrs r1, r0 + ldrb r0, [r6, #0xa] + bics r0, r1 + strb r0, [r6, #0xa] + b _08075EB8 + .align 2, 0 +_08075EA0: .4byte gUnk_03003F80 +_08075EA4: .4byte gUnk_02002A40 +_08075EA8: + adds r1, r6, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + mov r1, r8 + bl sub_08077E78 +_08075EB8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08075EC0 +sub_08075EC0: @ 0x08075EC0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r0, _08075F04 @ =gUnk_02002A40 + adds r0, #0xad + ldrb r5, [r0] + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08075F0C + cmp r5, #0 + beq _08075F0C + ldr r2, _08075F08 @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075EF0 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08075F32 +_08075EF0: + adds r1, r2, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08075F32 + .align 2, 0 +_08075F04: .4byte gUnk_02002A40 +_08075F08: .4byte gUnk_03003F80 +_08075F0C: + ldr r2, _08075F34 @ =gUnk_03003F80 + movs r0, #8 + asrs r0, r6 + ldrb r1, [r2, #0xa] + orrs r0, r1 + strb r0, [r2, #0xa] + movs r1, #0x9f + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + movs r1, #0xf + movs r0, #0xf + strb r0, [r4, #0xf] + ldrb r0, [r4, #9] + orrs r1, r0 + strb r1, [r4, #9] + movs r0, #3 + strb r0, [r4, #4] +_08075F32: + pop {r4, r5, r6, pc} + .align 2, 0 +_08075F34: .4byte gUnk_03003F80 + + thumb_func_start sub_08075F38 +sub_08075F38: @ 0x08075F38 + push {r4, lr} + adds r4, r0, #0 + adds r3, r1, #0 + ldr r2, _08075F6C @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075F70 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08075F70 + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08075F80 + movs r0, #4 + strb r0, [r4, #4] + b _08075F80 + .align 2, 0 +_08075F6C: .4byte gUnk_03003F80 +_08075F70: + adds r1, r2, #0 + adds r1, #0x21 + movs r0, #0 + strb r0, [r1] + adds r0, r4, #0 + adds r1, r3, #0 + bl sub_08077E78 +_08075F80: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08075F84 +sub_08075F84: @ 0x08075F84 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08075FB4 @ =gUnk_03003F80 + ldrb r1, [r2, #4] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08075FC8 + adds r0, r2, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08075FC8 + movs r0, #0x70 + bl sub_0807CA84 + cmp r0, #1 + bne _08075FB8 + adds r0, r4, #0 + movs r1, #5 + bl sub_08077E3C + b _08075FBE + .align 2, 0 +_08075FB4: .4byte gUnk_03003F80 +_08075FB8: + adds r0, r4, #0 + bl sub_08077E24 +_08075FBE: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08075FD8 +_08075FC8: + ldr r0, _08075FDC @ =gUnk_03003F80 + adds r0, #0x21 + movs r1, #0 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08075FD8: + pop {r4, r5, pc} + .align 2, 0 +_08075FDC: .4byte gUnk_03003F80 + + thumb_func_start sub_08075FE0 +sub_08075FE0: @ 0x08075FE0 + push {lr} + ldr r3, _08075FF4 @ =gUnk_0811BD98 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08075FF4: .4byte gUnk_0811BD98 + + thumb_func_start sub_08075FF8 +sub_08075FF8: @ 0x08075FF8 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r0, _08076018 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + ldrb r0, [r0, #4] + orrs r0, r1 + cmp r0, #0 + bne _08076076 + movs r5, #0 + movs r0, #8 + movs r1, #2 + movs r2, #2 + bl sub_0805EB00 + b _08076026 + .align 2, 0 +_08076018: .4byte gUnk_03003F80 +_0807601C: + adds r5, #1 + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EB64 +_08076026: + adds r4, r0, #0 + cmp r4, #0 + bne _0807601C + ldrb r0, [r6, #1] + movs r1, #1 + cmp r0, #7 + bne _08076036 + movs r1, #3 +_08076036: + cmp r1, r5 + bls _08076076 + adds r0, r6, #0 + movs r1, #2 + bl sub_08077C3C + adds r4, r0, #0 + cmp r4, #0 + beq _08076076 + ldr r0, _08076080 @ =gLinkEntity + ldrb r2, [r0, #0x14] + movs r1, #6 + ands r1, r2 + ldr r2, _08076084 @ =gUnk_0811BDAC + adds r1, r1, r2 + movs r2, #0 + ldrsb r2, [r1, r2] + lsls r2, r2, #0x10 + movs r3, #1 + ldrsb r3, [r1, r3] + lsls r3, r3, #0x10 + adds r1, r4, #0 + bl sub_0806FA48 + movs r0, #1 + rsbs r0, r0, #0 + bl sub_080542F4 + movs r0, #0x82 + lsls r0, r0, #1 + bl sub_080A3268 +_08076076: + adds r0, r6, #0 + adds r1, r7, #0 + bl sub_08077E78 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076080: .4byte gLinkEntity +_08076084: .4byte gUnk_0811BDAC + + thumb_func_start sub_08076088 +sub_08076088: @ 0x08076088 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r3, r1, #0 + adds r5, r2, #0 + cmp r3, #0 + beq _080760AA + ldrb r0, [r3, #0x16] + movs r1, #1 + ands r1, r0 + cmp r1, #0 + beq _080760A4 + b _080761A0 +_080760A4: + movs r0, #2 + strb r0, [r3, #0xc] + strb r1, [r3, #0xd] +_080760AA: + str r3, [r4, #0x18] + ldr r0, _080760C4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080760CC + ldr r1, _080760C8 @ =0x00000928 + adds r0, r4, #0 + bl sub_08077DF4 + b _080760D6 + .align 2, 0 +_080760C4: .4byte gUnk_03003F80 +_080760C8: .4byte 0x00000928 +_080760CC: + movs r1, #0xce + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 +_080760D6: + ldr r3, _08076130 @ =gUnk_03003F80 + movs r0, #0 + mov r8, r0 + movs r7, #3 + strb r7, [r3, #5] + adds r0, r3, #0 + adds r0, #0xa8 + movs r6, #4 + strb r6, [r0] + movs r0, #2 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #0xf] + ldr r2, _08076134 @ =gLinkEntity + movs r1, #0x79 + adds r1, r1, r2 + mov ip, r1 + ldrb r1, [r1] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076138 + mov r1, r8 + mov r0, ip + strb r1, [r0] + ldrb r0, [r2, #0x10] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + strb r6, [r3, #5] + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r2, [r3, #0xb] + adds r0, r1, #0 + ands r0, r2 + strb r0, [r3, #0xb] + ldrb r0, [r3, #0xa] + ands r1, r0 + strb r1, [r3, #0xa] + strb r7, [r4, #4] + mov r0, r8 + strb r0, [r4, #0xf] + b _0807614A + .align 2, 0 +_08076130: .4byte gUnk_03003F80 +_08076134: .4byte gLinkEntity +_08076138: + movs r1, #8 + asrs r1, r5 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] +_0807614A: + adds r0, r4, #0 + movs r1, #0x13 + bl sub_08077C3C + adds r3, r0, #0 + cmp r3, #0 + bne _08076162 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077F50 + b _080761A0 +_08076162: + ldr r1, _08076194 @ =gLinkEntity + str r3, [r1, #0x74] + movs r2, #0 + strb r2, [r1, #0xf] + ldr r0, [r4, #0x18] + str r0, [r3, #0x54] + ldrb r0, [r1, #0x16] + strb r0, [r3, #0x16] + str r4, [r3, #0x50] + str r3, [r4, #0x18] + ldrb r0, [r4, #3] + strb r0, [r3, #0xb] + ldrb r0, [r4, #7] + strb r0, [r3, #0xe] + ldrb r0, [r4, #8] + strb r0, [r3, #0xf] + ldr r0, [r4, #0x18] + ldrb r1, [r0, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _08076198 + movs r0, #8 + strb r0, [r4, #7] + b _0807619A + .align 2, 0 +_08076194: .4byte gLinkEntity +_08076198: + strb r2, [r4, #7] +_0807619A: + movs r0, #0x7f + bl sub_080A3268 +_080761A0: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_080761A8 +sub_080761A8: @ 0x080761A8 + push {lr} + ldr r3, _080761BC @ =gUnk_0811BDB4 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_080761BC: .4byte gUnk_0811BDB4 + + thumb_func_start sub_080761C0 +sub_080761C0: @ 0x080761C0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076220 @ =gUnk_03003F80 + ldrb r0, [r5, #4] + cmp r0, #0 + bne _080762B8 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _080761DE + ldr r0, [r5, #0x30] + ldr r1, _08076224 @ =0x00001201 + ands r0, r1 + cmp r0, #0 + beq _080762B8 +_080761DE: + ldr r1, _08076228 @ =gLinkEntity + ldrb r2, [r1, #0x14] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r5, #1] + adds r1, #0x3d + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r0, #8 + bgt _080762B8 + bl sub_080789A8 + adds r3, r0, #0 + cmp r3, #1 + beq _08076258 + cmp r3, #1 + blo _0807626E + cmp r3, #2 + bne _080762C0 + ldr r0, _0807622C @ =gUnk_03003BE0 + ldr r2, [r0, #8] + ldrb r1, [r2, #0x16] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076230 + adds r0, r4, #0 + adds r1, r2, #0 + adds r2, r6, #0 + bl sub_08076088 + b _080762C0 + .align 2, 0 +_08076220: .4byte gUnk_03003F80 +_08076224: .4byte 0x00001201 +_08076228: .4byte gLinkEntity +_0807622C: .4byte gUnk_03003BE0 +_08076230: + str r2, [r4, #0x18] + strb r3, [r2, #0xc] + movs r1, #5 + strb r1, [r2, #0xd] + adds r0, r5, #0 + adds r0, #0xa8 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r2, #0 + movs r2, #2 + adds r3, r6, #0 + bl sub_080762C4 + ldr r0, _08076254 @ =gUnk_0200AF00 + adds r0, #0x2e + movs r1, #8 + strb r1, [r0] + b _08076264 + .align 2, 0 +_08076254: .4byte gUnk_0200AF00 +_08076258: + adds r0, r4, #0 + movs r1, #0 + movs r2, #1 + adds r3, r6, #0 + bl sub_080762C4 +_08076264: + movs r0, #0x81 + lsls r0, r0, #1 + bl sub_080A3268 + b _080762C0 +_0807626E: + movs r0, #5 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #7] + movs r0, #6 + strb r0, [r4, #0xf] + movs r3, #8 + adds r1, r3, #0 + asrs r1, r6 + ldrb r2, [r5, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r5, #0xa] + ldrb r0, [r5, #0xb] + orrs r1, r0 + strb r1, [r5, #0xb] + ldr r0, [r5, #0x30] + ands r0, r3 + cmp r0, #0 + bne _080762A2 + movs r1, #0xde + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + b _080762AA +_080762A2: + ldr r1, _080762B4 @ =0x00000948 + adds r0, r4, #0 + bl sub_08077DF4 +_080762AA: + movs r0, #0x88 + bl sub_080A3268 + b _080762C0 + .align 2, 0 +_080762B4: .4byte 0x00000948 +_080762B8: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077F50 +_080762C0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080762C4 +sub_080762C4: @ 0x080762C4 + push {lr} + str r1, [r0, #0x18] + ldr r1, _080762D4 @ =gUnk_03003F80 + strb r2, [r1, #5] + adds r1, r3, #0 + bl sub_08077D38 + pop {pc} + .align 2, 0 +_080762D4: .4byte gUnk_03003F80 + + thumb_func_start sub_080762D8 +sub_080762D8: @ 0x080762D8 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + ldr r4, _08076334 @ =gUnk_03003F80 + ldrb r0, [r4, #5] + movs r1, #0xcf + ands r1, r0 + strb r1, [r4, #5] + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F64 + cmp r0, #0 + bne _080762F6 + b _08076486 +_080762F6: + ldr r0, _08076338 @ =gLinkEntity + adds r1, r0, #0 + adds r1, #0x3d + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r3, r0, #0 + cmp r1, #8 + bgt _0807636C + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0807636C + ldr r2, [r5, #0x18] + cmp r2, #0 + beq _08076340 + ldrh r1, [r2, #0xc] + ldr r0, _0807633C @ =0x00000502 + cmp r1, r0 + bne _08076376 + adds r0, r4, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076340 + movs r0, #6 + strb r0, [r2, #0xd] + b _08076376 + .align 2, 0 +_08076334: .4byte gUnk_03003F80 +_08076338: .4byte gLinkEntity +_0807633C: .4byte 0x00000502 +_08076340: + ldr r2, _08076364 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0xa8 + movs r0, #5 + strb r0, [r1] + ldr r0, _08076368 @ =gUnk_0200AF00 + adds r0, #0x2e + movs r1, #8 + strb r1, [r0] + ldrb r0, [r2, #2] + cmp r0, #0 + beq _0807635A + b _0807647E +_0807635A: + ldrb r0, [r2, #5] + cmp r0, #1 + bne _08076394 + b _08076380 + .align 2, 0 +_08076364: .4byte gUnk_03003F80 +_08076368: .4byte gUnk_0200AF00 +_0807636C: + ldr r1, [r5, #0x18] + cmp r1, #0 + beq _08076376 + movs r0, #6 + strb r0, [r1, #0xd] +_08076376: + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F50 + b _08076486 +_08076380: + adds r0, r3, #0 + movs r1, #6 + adds r2, r5, #0 + bl sub_0800875A + cmp r0, #0 + beq _08076394 + adds r0, r5, #0 + movs r1, #0 + b _080763EC +_08076394: + ldr r1, _080763F4 @ =gUnk_0811BE38 + ldr r7, _080763F8 @ =gLinkEntity + ldrb r0, [r7, #0x14] + lsrs r0, r0, #1 + lsls r3, r0, #1 + adds r1, r3, r1 + ldr r4, _080763FC @ =gUnk_03003F80 + adds r2, r4, #0 + adds r2, #0x90 + ldrh r0, [r1] + ldrh r2, [r2] + ands r0, r2 + cmp r0, #0 + beq _08076400 + adds r0, r5, #0 + bl sub_08077E24 + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + movs r1, #0x94 + lsls r1, r1, #4 + cmp r0, #0 + bne _080763C8 + movs r1, #0xd0 + lsls r1, r1, #2 +_080763C8: + ldrh r0, [r5, #0x10] + cmp r1, r0 + beq _080763D4 + adds r0, r5, #0 + bl sub_08077DF4 +_080763D4: + ldrb r0, [r4, #5] + movs r1, #0x10 + orrs r1, r0 + strb r1, [r4, #5] + adds r2, r4, #0 + adds r2, #0xa8 + movs r0, #0x1a + strb r0, [r2] + cmp r1, #1 + beq _08076486 + ldr r1, [r5, #0x18] + adds r0, r5, #0 +_080763EC: + adds r2, r6, #0 + bl sub_08076088 + b _08076486 + .align 2, 0 +_080763F4: .4byte gUnk_0811BE38 +_080763F8: .4byte gLinkEntity +_080763FC: .4byte gUnk_03003F80 +_08076400: + ldr r0, _08076418 @ =gUnk_0811BE40 + adds r0, r3, r0 + ldrh r0, [r0] + ands r0, r2 + cmp r0, #0 + beq _08076460 + ldrb r0, [r7, #0xf] + cmp r0, #5 + bhi _0807641C + adds r0, #1 + strb r0, [r7, #0xf] + b _08076486 + .align 2, 0 +_08076418: .4byte gUnk_0811BE40 +_0807641C: + ldrb r0, [r5, #0xa] + adds r1, r4, #0 + adds r1, #0x35 + strb r0, [r1] + ldrb r0, [r4, #6] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #6] + ldrb r1, [r4, #5] + movs r0, #0x20 + orrs r0, r1 + strb r0, [r4, #5] + adds r1, r4, #0 + adds r1, #0xa8 + movs r0, #0x19 + strb r0, [r1] + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + ldr r1, _0807645C @ =0x0000093C + cmp r0, #0 + bne _0807644C + movs r1, #0xcf + lsls r1, r1, #2 +_0807644C: + ldrh r0, [r5, #0x10] + cmp r1, r0 + bne _08076476 + adds r0, r5, #0 + bl sub_08077E24 + b _08076486 + .align 2, 0 +_0807645C: .4byte 0x0000093C +_08076460: + strb r0, [r7, #0xf] + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _08076472 + movs r1, #0xd0 + lsls r1, r1, #2 + b _08076476 +_08076472: + movs r1, #0x94 + lsls r1, r1, #4 +_08076476: + adds r0, r5, #0 + bl sub_08077DF4 + b _08076486 +_0807647E: + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077F50 +_08076486: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08076488 +sub_08076488: @ 0x08076488 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r4, #7] + adds r6, r0, #0 + cmp r6, #0 + bne _08076504 + adds r0, r4, #0 + bl sub_08077F64 + cmp r0, #0 + beq _08076508 + ldr r0, [r4, #0x18] + ldrb r1, [r0, #0x16] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x10 + bne _080764B8 + ldr r0, _080764F8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _08076510 +_080764B8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076508 + ldr r2, _080764FC @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + ldr r2, _08076500 @ =gUnk_03003F80 + movs r0, #4 + strb r0, [r2, #5] + movs r1, #8 + asrs r1, r5 + mvns r1, r1 + ldrb r3, [r2, #0xb] + adds r0, r1, #0 + ands r0, r3 + strb r0, [r2, #0xb] + ldrb r0, [r2, #0xa] + ands r1, r0 + strb r1, [r2, #0xa] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + strb r6, [r4, #0xf] + b _08076508 + .align 2, 0 +_080764F8: .4byte gUnk_030010A0 +_080764FC: .4byte gLinkEntity +_08076500: .4byte gUnk_03003F80 +_08076504: + subs r0, #1 + strb r0, [r4, #7] +_08076508: + ldr r0, _08076514 @ =gUnk_03003F80 + adds r0, #0xa8 + movs r1, #4 + strb r1, [r0] +_08076510: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076514: .4byte gUnk_03003F80 + + thumb_func_start sub_08076518 +sub_08076518: @ 0x08076518 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + bl sub_08077F64 + cmp r0, #0 + beq _080765D4 + ldr r5, _0807655C @ =gUnk_03003F80 + adds r1, r5, #0 + adds r1, #0xa8 + movs r0, #4 + strb r0, [r1] + ldrb r1, [r5, #2] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080765D4 + ldrb r0, [r5, #0x1f] + cmp r0, #0 + bne _080765D4 + ldr r6, _08076560 @ =gLinkEntity + adds r0, r6, #0 + adds r0, #0x42 + ldrb r7, [r0] + cmp r7, #0 + beq _08076564 + adds r0, r4, #0 + mov r1, r8 + bl sub_08077F50 + b _080765D4 + .align 2, 0 +_0807655C: .4byte gUnk_03003F80 +_08076560: .4byte gLinkEntity +_08076564: + adds r0, r5, #0 + adds r0, #0x92 + ldrh r1, [r0] + ldr r0, _080765B0 @ =0x00008018 + ands r0, r1 + cmp r0, #0 + beq _080765D4 + adds r0, r6, #0 + bl sub_0806F948 + movs r0, #5 + strb r0, [r5, #5] + ldr r1, [r4, #0x18] + movs r0, #2 + strb r0, [r1, #0xd] + ldr r2, [r4, #0x18] + ldrb r1, [r6, #0x14] + movs r0, #0xe + ands r0, r1 + lsls r0, r0, #2 + strb r0, [r2, #0x15] + str r7, [r4, #0x18] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #0xf + strb r0, [r4, #0xf] + ldr r0, [r5, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _080765B4 + movs r1, #0x93 + lsls r1, r1, #4 + adds r0, r4, #0 + bl sub_08077DF4 + b _080765BE + .align 2, 0 +_080765B0: .4byte 0x00008018 +_080765B4: + movs r1, #0xd1 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 +_080765BE: + ldr r2, _080765DC @ =gUnk_03003F80 + movs r1, #8 + mov r0, r8 + asrs r1, r0 + ldrb r3, [r2, #0xa] + adds r0, r1, #0 + orrs r0, r3 + strb r0, [r2, #0xa] + ldrb r0, [r2, #0xb] + orrs r1, r0 + strb r1, [r2, #0xb] +_080765D4: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080765DC: .4byte gUnk_03003F80 + + thumb_func_start sub_080765E0 +sub_080765E0: @ 0x080765E0 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077F64 + cmp r0, #0 + beq _08076608 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076602 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077F50 + b _08076608 +_08076602: + adds r0, r4, #0 + bl sub_08077E24 +_08076608: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_0807660C +sub_0807660C: @ 0x0807660C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r0, [r4, #7] + subs r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xff + beq _0807662C + ldr r0, _0807663C @ =gUnk_03003F80 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _0807663A +_0807662C: + ldr r1, _0807663C @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #1] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_0807663A: + pop {r4, r5, pc} + .align 2, 0 +_0807663C: .4byte gUnk_03003F80 + + thumb_func_start sub_08076640 +sub_08076640: @ 0x08076640 + push {r4, r5, lr} + adds r3, r0, #0 + adds r4, r1, #0 + ldrb r0, [r3, #4] + cmp r0, #0 + beq _08076654 + adds r0, r3, #0 + bl sub_08076758 + b _08076754 +_08076654: + ldr r0, _080766BC @ =gUnk_03003F80 + ldr r1, [r0, #0x2c] + adds r2, r0, #0 + cmp r1, #0 + bne _0807674C + ldrb r0, [r2, #1] + cmp r0, #0 + beq _080766C4 + ldrb r1, [r2, #4] + ldrb r0, [r2, #5] + orrs r0, r1 + cmp r0, #0 + bne _0807674C + ldrb r0, [r2, #0x12] + cmp r0, #0x12 + beq _08076678 + cmp r0, #1 + bne _08076686 +_08076678: + ldr r0, _080766C0 @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + bne _08076686 + ldrb r0, [r2, #0x14] + cmp r0, #0 + beq _0807674C +_08076686: + ldrb r1, [r2, #2] + cmp r1, #0 + beq _08076694 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + bne _08076710 +_08076694: + ldr r5, _080766C0 @ =gLinkEntity + ldr r0, [r5, #0x34] + cmp r0, #0 + blt _0807674C + movs r1, #0 + strb r1, [r2, #1] + ldrb r0, [r3, #4] + adds r0, #1 + strb r0, [r3, #4] + strb r1, [r2, #0xb] + movs r0, #1 + strb r0, [r2, #2] + movs r0, #0xff + strb r0, [r2, #0xe] + str r1, [r2, #0x2c] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r5, #0x20] + b _0807673C + .align 2, 0 +_080766BC: .4byte gUnk_03003F80 +_080766C0: .4byte gLinkEntity +_080766C4: + ldrb r0, [r2, #0x1b] + ldrb r1, [r2, #0xa] + orrs r0, r1 + ldrb r1, [r2, #4] + orrs r0, r1 + ldrb r1, [r2, #5] + orrs r0, r1 + ldrb r1, [r2, #0x1c] + orrs r0, r1 + adds r1, r2, #0 + adds r1, #0x3d + ldrb r1, [r1] + orrs r0, r1 + cmp r0, #0 + bne _0807674C + ldrb r1, [r2, #0x12] + adds r0, r1, #0 + subs r0, #0x12 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bls _080766F4 + cmp r1, #1 + bne _08076702 +_080766F4: + ldr r0, _0807671C @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + bne _08076702 + ldrb r0, [r2, #0x14] + cmp r0, #0 + beq _0807674C +_08076702: + ldrb r1, [r2, #2] + cmp r1, #0 + beq _08076720 + movs r0, #7 + ands r0, r1 + cmp r0, #3 + beq _08076720 +_08076710: + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08076758 + b _08076754 + .align 2, 0 +_0807671C: .4byte gLinkEntity +_08076720: + ldr r1, _08076748 @ =gLinkEntity + ldr r0, [r1, #0x34] + cmp r0, #0 + blt _0807674C + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r1, #0x20] + movs r1, #0 + movs r0, #1 + strb r0, [r2, #2] + str r1, [r2, #0x2c] + ldrb r0, [r3, #4] + adds r0, #1 + strb r0, [r3, #4] +_0807673C: + bl sub_08077F84 + movs r0, #0x78 + bl sub_080A3268 + b _08076754 + .align 2, 0 +_08076748: .4byte gLinkEntity +_0807674C: + adds r0, r3, #0 + adds r1, r4, #0 + bl sub_08077E78 +_08076754: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_08076758 +sub_08076758: @ 0x08076758 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _080767C0 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r5, #0xe] + ldrb r2, [r5, #2] + movs r0, #0x28 + ands r0, r2 + cmp r0, #0 + bne _080767F8 + cmp r2, #0 + beq _080767F8 + movs r0, #7 + ands r0, r2 + cmp r0, #3 + beq _080767F8 + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _080767D8 + ldrb r0, [r4, #4] + cmp r0, #1 + bhi _080767C8 + ldr r2, _080767C4 @ =gLinkEntity + ldr r0, [r2, #0x20] + cmp r0, #0 + bgt _080767FE + ldrb r3, [r5, #2] + movs r0, #0x10 + ands r0, r3 + cmp r0, #0 + bne _080767FE + movs r0, #2 + strb r0, [r4, #4] + adds r1, r2, #0 + adds r1, #0x7a + strh r0, [r1] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #0x10 + orrs r0, r3 + strb r0, [r5, #2] + movs r0, #0xa2 + lsls r0, r0, #2 + strh r0, [r5, #8] + movs r0, #0xb9 + lsls r0, r0, #1 + bl sub_080A3268 + b _080767FE + .align 2, 0 +_080767C0: .4byte gUnk_03003F80 +_080767C4: .4byte gLinkEntity +_080767C8: + ldr r1, _080767D4 @ =gLinkEntity + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + b _080767FE + .align 2, 0 +_080767D4: .4byte gLinkEntity +_080767D8: + ldrb r0, [r4, #4] + cmp r0, #1 + bls _080767FE + ldr r1, _080767F4 @ =gLinkEntity + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrb r1, [r5, #2] + movs r0, #0xef + ands r0, r1 + strb r0, [r5, #2] + b _080767FE + .align 2, 0 +_080767F4: .4byte gLinkEntity +_080767F8: + adds r0, r4, #0 + bl sub_08077E78 +_080767FE: + pop {r4, r5, pc} + + thumb_func_start sub_08076800 +sub_08076800: @ 0x08076800 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r6, r0, #0 + mov sb, r1 + ldr r4, _0807682C @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x7a + ldrh r0, [r0] + cmp r0, #0 + beq _08076834 + ldr r1, _08076830 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + strb r0, [r1, #0xe] + adds r0, r6, #0 + mov r1, sb + bl sub_08077E78 + b _080768EC + .align 2, 0 +_0807682C: .4byte gLinkEntity +_08076830: .4byte gUnk_03003F80 +_08076834: + ldrb r0, [r6, #7] + subs r0, #1 + strb r0, [r6, #7] + movs r1, #7 + mov r8, r1 + ands r0, r1 + cmp r0, #0 + bne _0807684A + movs r0, #0x7d + bl sub_080A3268 +_0807684A: + ldr r2, _08076880 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080768DA + ldrb r1, [r6, #7] + mov r0, r8 + ands r0, r1 + cmp r0, #0 + bne _080768DA + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + bne _08076884 + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _080768DA + adds r0, r4, #0 + movs r1, #0x52 + movs r2, #0 + bl CreateFX + b _080768DA + .align 2, 0 +_08076880: .4byte gUnk_03003F80 +_08076884: + adds r0, r4, #0 + movs r1, #0x11 + movs r2, #0x40 + bl CreateFX + adds r5, r0, #0 + cmp r5, #0 + beq _080768DA + ldrh r0, [r5, #0x32] + adds r0, #2 + strh r0, [r5, #0x32] + ldrb r0, [r6, #4] + cmp r0, #2 + beq _080768DA + bl sub_08000E50 + adds r4, r0, #0 + movs r0, #3 + ands r4, r0 + bl sub_08000E50 + movs r7, #1 + ands r0, r7 + cmp r0, #0 + beq _080768B8 + rsbs r4, r4, #0 +_080768B8: + ldrh r0, [r5, #0x32] + adds r0, r0, r4 + strh r0, [r5, #0x32] + bl sub_08000E50 + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + bl sub_08000E50 + ands r0, r7 + cmp r0, #0 + beq _080768D4 + rsbs r4, r4, #0 +_080768D4: + ldrh r0, [r5, #0x2e] + adds r0, r0, r4 + strh r0, [r5, #0x2e] +_080768DA: + ldr r0, _080768F4 @ =gUnk_0811BDCC + ldrb r1, [r6, #4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r2, [r1] + adds r0, r6, #0 + mov r1, sb + bl _call_via_r2 +_080768EC: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080768F4: .4byte gUnk_0811BDCC + + thumb_func_start sub_080768F8 +sub_080768F8: @ 0x080768F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, _08076934 @ =gUnk_03003F80 + ldrb r1, [r3, #0x1c] + ldrb r0, [r3, #4] + orrs r1, r0 + ldrb r0, [r3, #5] + orrs r1, r0 + ldrb r0, [r3, #2] + orrs r1, r0 + ldr r2, [r3, #0x30] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r2 + orrs r1, r0 + cmp r1, #0 + bne _08076954 + movs r0, #1 + strb r0, [r3, #0x1e] + adds r0, r3, #0 + adds r0, #0x21 + strb r1, [r0] + movs r0, #0x80 + ands r2, r0 + cmp r2, #0 + bne _08076938 + movs r0, #0x10 + strb r0, [r4, #7] + b _0807693C + .align 2, 0 +_08076934: .4byte gUnk_03003F80 +_08076938: + ldr r0, _08076950 @ =0x00000C14 + strh r0, [r3, #8] +_0807693C: + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08076964 + b _08076962 + .align 2, 0 +_08076950: .4byte 0x00000C14 +_08076954: + movs r0, #0 + strb r0, [r3, #0x1e] + strb r0, [r3, #0xe] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08076962: + pop {r4, r5, pc} + + thumb_func_start sub_08076964 +sub_08076964: @ 0x08076964 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r6, r1, #0 + bl sub_08077EFC + cmp r0, #0 + bne _08076978 + b _08076A70 +_08076978: + ldr r0, _080769C4 @ =gLinkEntity + ldr r7, [r0, #0x34] + cmp r7, #0 + bne _08076A70 + ldr r5, _080769C8 @ =gUnk_03003F80 + ldrb r0, [r5, #0x1e] + cmp r0, #0 + beq _08076A70 + adds r0, r4, #0 + bl sub_08077E24 + ldr r0, [r5, #0x30] + movs r1, #0x80 + mov r8, r1 + ands r0, r1 + cmp r0, #0 + bne _080769A0 + adds r0, r4, #0 + bl sub_08077E24 +_080769A0: + ldrb r0, [r5, #0x1e] + adds r0, #1 + strb r0, [r5, #0x1e] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x1e + bne _08076A7E + ldr r0, [r5, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + beq _080769CC + strb r7, [r5, #0x1e] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08076A7E + .align 2, 0 +_080769C4: .4byte gLinkEntity +_080769C8: .4byte gUnk_03003F80 +_080769CC: + movs r0, #0x40 + strb r0, [r5, #0x1e] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + bl sub_0807A158 + cmp r0, #0 + beq _08076A46 + ldr r0, [r5, #0x30] + mov r1, r8 + ands r0, r1 + cmp r0, #0 + bne _08076A60 + adds r0, r5, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + beq _08076A46 + adds r0, r5, #0 + adds r0, #0xab + movs r1, #3 + strb r1, [r0] + movs r1, #0xa6 + lsls r1, r1, #2 + adds r0, r4, #0 + bl sub_08077DF4 + adds r0, r4, #0 + movs r1, #0xc + bl sub_08077C3C + adds r5, r0, #0 + cmp r5, #0 + beq _08076A70 + ldr r6, _08076A34 @ =gUnk_02002A40 + adds r4, r6, #0 + adds r4, #0xb4 + ldrb r0, [r4] + bl sub_0805449C + cmp r0, #0 + beq _08076A38 + ldrb r1, [r4] + b _08076A3E + .align 2, 0 +_08076A34: .4byte gUnk_02002A40 +_08076A38: + adds r0, r6, #0 + adds r0, #0xb5 + ldrb r1, [r0] +_08076A3E: + adds r0, r5, #0 + adds r0, #0x68 + strb r1, [r0] + b _08076A7E +_08076A46: + ldr r0, _08076A5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076A60 + adds r1, #0x84 + adds r0, r4, #0 + bl sub_08077DF4 + b _08076A7E + .align 2, 0 +_08076A5C: .4byte gUnk_03003F80 +_08076A60: + ldr r1, _08076A6C @ =gUnk_03003F80 + movs r0, #0xc1 + lsls r0, r0, #4 + strh r0, [r1, #8] + b _08076A7E + .align 2, 0 +_08076A6C: .4byte gUnk_03003F80 +_08076A70: + ldr r1, _08076A84 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076A7E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076A84: .4byte gUnk_03003F80 + + thumb_func_start sub_08076A88 +sub_08076A88: @ 0x08076A88 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08076B64 + ldr r1, _08076AB4 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1e] + adds r3, r1, #0 + cmp r0, #0 + beq _08076B64 + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08076ABC + ldr r1, _08076AB8 @ =gLinkEntity + movs r0, #0xc0 + lsls r0, r0, #2 + b _08076AC2 + .align 2, 0 +_08076AB4: .4byte gUnk_03003F80 +_08076AB8: .4byte gLinkEntity +_08076ABC: + ldr r1, _08076B00 @ =gLinkEntity + movs r0, #0xa0 + lsls r0, r0, #2 +_08076AC2: + strh r0, [r1, #0x24] + adds r5, r1, #0 + ldr r1, _08076B04 @ =gUnk_0800275C + ldrb r2, [r5, #0x14] + movs r6, #0xe + adds r0, r6, #0 + ands r0, r2 + lsls r0, r0, #3 + adds r0, r0, r1 + ldrh r1, [r0] + ldrh r0, [r5, #0x2a] + ands r0, r1 + cmp r1, r0 + bne _08076B0E + ldrb r0, [r4, #8] + cmp r0, #0 + beq _08076B08 + movs r2, #0 + movs r0, #6 + strb r0, [r5, #0xc] + strb r2, [r5, #0xd] + ldrb r1, [r5, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r5, #0x10] + adds r0, r3, #0 + adds r0, #0x38 + strb r2, [r0] + movs r0, #0xff + strb r0, [r3, #0xd] + b _08076B72 + .align 2, 0 +_08076B00: .4byte gLinkEntity +_08076B04: .4byte gUnk_0800275C +_08076B08: + movs r0, #1 + strb r0, [r4, #8] + b _08076B72 +_08076B0E: + ldr r1, _08076B60 @ =gUnk_0811BE38 + movs r0, #0xfe + ands r0, r2 + adds r0, r0, r1 + adds r1, r3, #0 + adds r1, #0x90 + ldrh r2, [r0] + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _08076B64 + ldrb r0, [r4, #0xa] + adds r1, r6, #0 + ands r1, r0 + lsls r0, r1, #2 + strb r0, [r4, #0xb] + ldrb r2, [r3, #0xd] + cmp r2, #0xff + beq _08076B52 + cmp r2, r0 + beq _08076B52 + adds r0, r2, #0 + ldrb r1, [r4, #0xb] + subs r0, r0, r1 + movs r2, #0x1f + ands r0, r2 + cmp r0, #0xf + bgt _08076B4A + adds r0, r1, #2 + strb r0, [r4, #0xb] +_08076B4A: + ldrb r0, [r4, #0xb] + subs r0, #1 + ands r0, r2 + strb r0, [r4, #0xb] +_08076B52: + ldrb r0, [r4, #0xb] + strb r0, [r3, #0xd] + adds r0, r4, #0 + bl sub_08077E24 + b _08076B72 + .align 2, 0 +_08076B60: .4byte gUnk_0811BE38 +_08076B64: + ldr r1, _08076B74 @ =gUnk_03003F80 + movs r0, #0 + strb r0, [r1, #0x1e] + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077E78 +_08076B72: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08076B74: .4byte gUnk_03003F80 + + thumb_func_start sub_08076B78 +sub_08076B78: @ 0x08076B78 + push {lr} + ldr r3, _08076B94 @ =gUnk_0811BDD8 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + ldr r1, _08076B98 @ =gLinkEntity + adds r1, #0x7a + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + pop {pc} + .align 2, 0 +_08076B94: .4byte gUnk_0811BDD8 +_08076B98: .4byte gLinkEntity + + thumb_func_start sub_08076B9C +sub_08076B9C: @ 0x08076B9C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r3, _08076BB4 @ =gUnk_03003F80 + ldrb r0, [r3, #0xc] + cmp r0, #0x18 + bne _08076BB8 + adds r0, r4, #0 + bl sub_08077E78 + b _08076C1C + .align 2, 0 +_08076BB4: .4byte gUnk_03003F80 +_08076BB8: + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldr r1, _08076C20 @ =gLinkEntity + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x18] + subs r0, #0x45 + ands r0, r2 + strb r0, [r1, #0x18] + ldrb r2, [r1, #0x10] + movs r0, #0x7f + ands r0, r2 + strb r0, [r1, #0x10] + adds r1, #0x7a + movs r0, #2 + strh r0, [r1] + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x15 + orrs r0, r1 + str r0, [r3, #0x30] + adds r1, r3, #0 + adds r1, #0x27 + movs r0, #0xff + strb r0, [r1] + ldr r1, _08076C24 @ =gUnk_02034490 + movs r0, #1 + strb r0, [r1] + movs r1, #8 + asrs r1, r5 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] + bl sub_08078F60 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + ldr r0, _08076C28 @ =0x00000216 + bl sub_080A3268 + bl sub_0805E544 +_08076C1C: + pop {r4, r5, pc} + .align 2, 0 +_08076C20: .4byte gLinkEntity +_08076C24: .4byte gUnk_02034490 +_08076C28: .4byte 0x00000216 + + thumb_func_start sub_08076C2C +sub_08076C2C: @ 0x08076C2C + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + bl sub_08077E24 + ldrb r1, [r5, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076C6E + ldr r0, _08076C70 @ =gLinkEntity + ldrb r2, [r0, #0x10] + movs r4, #0 + movs r1, #0x80 + orrs r1, r2 + strb r1, [r0, #0x10] + ldr r2, _08076C74 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + ldr r3, _08076C78 @ =0xEFFFFFFF + ands r1, r3 + str r1, [r2, #0x30] + adds r2, #0x27 + strb r4, [r2] + ldr r1, _08076C7C @ =gUnk_02034490 + strb r4, [r1] + bl sub_0809D700 + bl sub_0805E564 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076C6E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076C70: .4byte gLinkEntity +_08076C74: .4byte gUnk_03003F80 +_08076C78: .4byte 0xEFFFFFFF +_08076C7C: .4byte gUnk_02034490 + + thumb_func_start sub_08076C80 +sub_08076C80: @ 0x08076C80 + push {lr} + ldr r3, _08076C94 @ =gUnk_0811BDE0 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076C94: .4byte gUnk_0811BDE0 + + thumb_func_start sub_08076C98 +sub_08076C98: @ 0x08076C98 + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #9] + movs r0, #0xf + orrs r0, r2 + strb r0, [r4, #9] + adds r0, r4, #0 + bl sub_08077D38 + ldr r0, _08076CB8 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + pop {r4, pc} + .align 2, 0 +_08076CB8: .4byte gLinkEntity + + thumb_func_start sub_08076CBC +sub_08076CBC: @ 0x08076CBC + push {r4, lr} + adds r4, r0, #0 + ldrb r2, [r4, #0xe] + movs r0, #0x80 + ands r0, r2 + cmp r0, #0 + beq _08076CD2 + adds r0, r4, #0 + bl sub_08077E78 + b _08076CE8 +_08076CD2: + movs r0, #0x40 + ands r0, r2 + cmp r0, #0 + beq _08076CE2 + adds r0, r4, #0 + movs r1, #0x12 + bl sub_08077C3C +_08076CE2: + adds r0, r4, #0 + bl sub_08077E24 +_08076CE8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08076CEC +sub_08076CEC: @ 0x08076CEC + push {lr} + ldr r3, _08076D00 @ =gUnk_0811BDE8 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076D00: .4byte gUnk_0811BDE8 + + thumb_func_start sub_08076D04 +sub_08076D04: @ 0x08076D04 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r1, _08076D2C @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #3] + movs r0, #2 + strb r0, [r4, #9] + ldr r0, _08076D30 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077D38 + adds r0, r4, #0 + bl sub_08077BB8 + pop {r4, r5, pc} + .align 2, 0 +_08076D2C: .4byte gUnk_03003F80 +_08076D30: .4byte gLinkEntity + + thumb_func_start sub_08076D34 +sub_08076D34: @ 0x08076D34 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + bl sub_08077EFC + adds r1, r0, #0 + cmp r1, #0 + beq _08076D80 + ldr r5, _08076D78 @ =gUnk_03003F80 + ldrb r0, [r5, #3] + movs r1, #1 + orrs r1, r0 + strb r1, [r5, #3] + adds r0, r4, #0 + bl sub_08077E24 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _08076D8C + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #0 + strb r0, [r4, #0xf] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + ldr r0, _08076D7C @ =0x0000015D + bl sub_080A3268 + b _08076D8C + .align 2, 0 +_08076D78: .4byte gUnk_03003F80 +_08076D7C: .4byte 0x0000015D +_08076D80: + ldr r0, _08076D90 @ =gUnk_03003F80 + strb r1, [r0, #3] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076D8C: + pop {r4, r5, r6, pc} + .align 2, 0 +_08076D90: .4byte gUnk_03003F80 + + thumb_func_start sub_08076D94 +sub_08076D94: @ 0x08076D94 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077EFC + adds r1, r0, #0 + cmp r1, #0 + beq _08076DBC + ldr r2, _08076DB8 @ =gUnk_03003F80 + ldrb r1, [r2, #3] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #3] + adds r0, r4, #0 + bl sub_08077E24 + b _08076DC8 + .align 2, 0 +_08076DB8: .4byte gUnk_03003F80 +_08076DBC: + ldr r0, _08076DCC @ =gUnk_03003F80 + strb r1, [r0, #3] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08076DC8: + pop {r4, r5, pc} + .align 2, 0 +_08076DCC: .4byte gUnk_03003F80 + + thumb_func_start sub_08076DD0 +sub_08076DD0: @ 0x08076DD0 + push {lr} + ldr r2, _08076DEC @ =gUnk_03003F80 + adds r2, #0xa8 + movs r3, #3 + strb r3, [r2] + ldr r3, _08076DF0 @ =gUnk_0811BDF4 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08076DEC: .4byte gUnk_03003F80 +_08076DF0: .4byte gUnk_0811BDF4 + + thumb_func_start sub_08076DF4 +sub_08076DF4: @ 0x08076DF4 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + adds r7, r1, #0 + ldr r0, _08076E48 @ =gLinkEntity + mov r8, r0 + bl sub_0807A894 + cmp r0, #0x29 + beq _08076E50 + ldr r6, _08076E4C @ =gUnk_03003F80 + ldrb r0, [r6, #0x12] + cmp r0, #0x12 + beq _08076E50 + cmp r0, #0x13 + beq _08076E50 + ldrb r5, [r6, #2] + cmp r5, #0 + bne _08076E50 + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077D38 + strb r5, [r4, #7] + mov r1, r8 + ldrb r0, [r1, #0x14] + strb r0, [r4, #0xa] + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + adds r0, #1 + strb r0, [r4, #9] + movs r0, #1 + strb r0, [r6, #0x1d] + mov r1, r8 + str r5, [r1, #0x74] + strb r0, [r6, #0x1c] + adds r0, r4, #0 + bl sub_08077BB8 + b _08076E58 + .align 2, 0 +_08076E48: .4byte gLinkEntity +_08076E4C: .4byte gUnk_03003F80 +_08076E50: + adds r0, r4, #0 + adds r1, r7, #0 + bl sub_08077E78 +_08076E58: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08076E60 +sub_08076E60: @ 0x08076E60 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076EB4 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076E7A + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08076E7A: + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08076EC0 + movs r0, #2 + strb r0, [r4, #4] + ldr r1, _08076EB8 @ =0x00000504 + adds r0, r4, #0 + bl sub_08077DF4 + movs r1, #8 + asrs r1, r6 + ldrb r0, [r5, #0xa] + bics r0, r1 + strb r0, [r5, #0xa] + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + adds r1, r0, #0 + cmp r1, #0 + beq _08076EC6 + ldr r0, _08076EBC @ =gLinkEntity + str r0, [r1, #0x50] + b _08076EC6 + .align 2, 0 +_08076EB4: .4byte gUnk_03003F80 +_08076EB8: .4byte 0x00000504 +_08076EBC: .4byte gLinkEntity +_08076EC0: + adds r0, r4, #0 + bl sub_08077E24 +_08076EC6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08076EC8 +sub_08076EC8: @ 0x08076EC8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r5, _08076EE4 @ =gUnk_03003F80 + ldrb r1, [r5, #0x1c] + movs r0, #0xf + ands r0, r1 + cmp r0, #0 + bne _08076EE8 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + b _08076F60 + .align 2, 0 +_08076EE4: .4byte gUnk_03003F80 +_08076EE8: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08076F50 + ldrb r0, [r4, #7] + cmp r0, #0xef + bls _08076EFC + movs r0, #3 + b _08076F0E +_08076EFC: + adds r0, #1 + strb r0, [r4, #7] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x77 + bls _08076F0C + movs r0, #2 + b _08076F0E +_08076F0C: + movs r0, #1 +_08076F0E: + strb r0, [r5, #0x1d] + ldr r0, _08076F1C @ =gLinkEntity + ldrb r0, [r0, #0xd] + cmp r0, #0x1b + bne _08076F24 + ldr r1, _08076F20 @ =0x00000524 + b _08076F36 + .align 2, 0 +_08076F1C: .4byte gLinkEntity +_08076F20: .4byte 0x00000524 +_08076F24: + ldr r0, _08076F44 @ =gUnk_03003F80 + ldrb r1, [r0, #0xd] + movs r0, #0x80 + ands r0, r1 + movs r1, #0xa3 + lsls r1, r1, #3 + cmp r0, #0 + beq _08076F36 + subs r1, #0x14 +_08076F36: + ldrh r0, [r4, #0x10] + cmp r1, r0 + beq _08076F48 + adds r0, r4, #0 + bl sub_08077DF4 + b _08076F60 + .align 2, 0 +_08076F44: .4byte gUnk_03003F80 +_08076F48: + adds r0, r4, #0 + bl sub_08077E24 + b _08076F60 +_08076F50: + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + movs r0, #8 + asrs r0, r6 + ldrb r1, [r5, #0xa] + orrs r0, r1 + strb r0, [r5, #0xa] +_08076F60: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_08076F64 +sub_08076F64: @ 0x08076F64 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldr r1, _08076F84 @ =gUnk_03003F80 + ldrb r0, [r1, #0x1c] + movs r2, #0xf + ands r2, r0 + adds r3, r1, #0 + cmp r2, #7 + bls _08076F7A + b _080770EC +_08076F7A: + lsls r0, r2, #2 + ldr r1, _08076F88 @ =_08076F8C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08076F84: .4byte gUnk_03003F80 +_08076F88: .4byte _08076F8C +_08076F8C: @ jump table + .4byte _08077100 @ case 0 + .4byte _080770EC @ case 1 + .4byte _080770EC @ case 2 + .4byte _0807704C @ case 3 + .4byte _08077052 @ case 4 + .4byte _08076FAC @ case 5 + .4byte _080770B8 @ case 6 + .4byte _080770D0 @ case 7 +_08076FAC: + ldrb r1, [r4, #0xe] + movs r5, #0x80 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #0 + beq _0807700E + ldrb r0, [r4, #8] + cmp r0, #0 + beq _08077004 + movs r0, #0 + strb r0, [r4, #8] + strb r0, [r4, #7] + movs r1, #1 + strb r1, [r3, #0x1d] + ldr r5, _08076FFC @ =gLinkEntity + str r0, [r5, #0x74] + strb r1, [r3, #0x1c] + movs r1, #8 + asrs r1, r6 + ldrb r0, [r3, #0xa] + bics r0, r1 + strb r0, [r3, #0xa] + movs r0, #2 + strb r0, [r4, #4] + ldr r1, _08077000 @ =0x00000504 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x10 + movs r1, #0 + movs r2, #0 + movs r3, #0 + bl sub_08077CB8 + cmp r0, #0 + bne _08076FF6 + b _08077110 +_08076FF6: + str r5, [r0, #0x50] + b _08077110 + .align 2, 0 +_08076FFC: .4byte gLinkEntity +_08077000: .4byte 0x00000504 +_08077004: + movs r0, #6 + strb r0, [r3, #0x1c] + movs r1, #0xa2 + lsls r1, r1, #3 + b _080770F2 +_0807700E: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _0807701C + movs r0, #1 + strb r0, [r4, #8] +_0807701C: + adds r0, r4, #0 + bl sub_08077E24 + ldr r0, _08077044 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08077110 + ldr r0, _08077048 @ =gLinkEntity + ldrb r1, [r0, #0x14] + lsls r1, r1, #2 + movs r2, #0x10 + eors r1, r2 + strb r1, [r0, #0x15] + strh r5, [r0, #0x24] + bl sub_08079E08 + b _08077110 + .align 2, 0 +_08077044: .4byte gUnk_03003F80 +_08077048: .4byte gLinkEntity +_0807704C: + ldr r1, _080770B0 @ =gUnk_03003F80 + movs r0, #4 + strb r0, [r1, #0x1c] +_08077052: + adds r0, r4, #0 + bl sub_08077EFC + cmp r0, #0 + beq _08077060 + movs r0, #1 + strb r0, [r4, #8] +_08077060: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807708C + ldr r1, _080770B0 @ =gUnk_03003F80 + movs r2, #0 + movs r0, #5 + strb r0, [r1, #0x1c] + ldr r0, _080770B4 @ =gLinkEntity + str r2, [r0, #0x70] + ldrb r0, [r1, #0x1d] + cmp r0, #0 + beq _0807708C + movs r0, #0x11 + movs r1, #0 + movs r3, #0 + bl sub_08077CB8 +_0807708C: + ldr r0, _080770B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #2 + ands r0, r1 + cmp r0, #0 + bne _08077110 + ldr r2, _080770B4 @ =gLinkEntity + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x80 + strh r0, [r2, #0x24] + bl sub_08079E08 + b _08077110 + .align 2, 0 +_080770B0: .4byte gUnk_03003F80 +_080770B4: .4byte gLinkEntity +_080770B8: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077110 + ldr r3, _080770CC @ =gUnk_03003F80 + b _08077100 + .align 2, 0 +_080770CC: .4byte gUnk_03003F80 +_080770D0: + ldr r1, _080770E4 @ =0x00000514 + adds r0, r4, #0 + bl sub_08077DF4 + ldr r1, _080770E8 @ =gUnk_03003F80 + movs r2, #0 + movs r0, #3 + strb r0, [r1, #0x1c] + strb r2, [r1, #0x1d] + b _08077110 + .align 2, 0 +_080770E4: .4byte 0x00000514 +_080770E8: .4byte gUnk_03003F80 +_080770EC: + movs r0, #3 + strb r0, [r3, #0x1c] + ldr r1, _080770FC @ =0x00000514 +_080770F2: + adds r0, r4, #0 + bl sub_08077DF4 + b _08077110 + .align 2, 0 +_080770FC: .4byte 0x00000514 +_08077100: + movs r1, #0 + strb r1, [r3, #0x1c] + ldr r0, _08077114 @ =gLinkEntity + str r1, [r0, #0x70] + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 +_08077110: + pop {r4, r5, r6, pc} + .align 2, 0 +_08077114: .4byte gLinkEntity + + thumb_func_start sub_08077118 +sub_08077118: @ 0x08077118 + push {lr} + ldr r3, _0807712C @ =gUnk_0811BE04 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_0807712C: .4byte gUnk_0811BE04 + + thumb_func_start sub_08077130 +sub_08077130: @ 0x08077130 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _0807718C @ =gUnk_03003F80 + ldrb r0, [r5, #2] + cmp r0, #0 + bne _080771B6 + adds r0, r4, #0 + bl sub_08077D38 + adds r0, r5, #0 + adds r0, #0x3d + movs r6, #1 + strb r6, [r0] + ldrb r1, [r4, #9] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r4, #9] + bl sub_080774A0 + adds r5, r0, #0 + cmp r5, #0 + beq _080771A8 + ldrb r0, [r4, #7] + cmp r0, #0 + bne _080771C4 + ldr r1, _08077190 @ =0x0000050C + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #2 + strb r0, [r4, #4] + cmp r5, #0x56 + bne _080771C4 + ldr r2, _08077194 @ =gLinkEntity + ldrb r1, [r2, #0x14] + ands r0, r1 + cmp r0, #0 + beq _08077198 + ldrh r0, [r2, #0x32] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strh r1, [r2, #0x32] + b _080771C4 + .align 2, 0 +_0807718C: .4byte gUnk_03003F80 +_08077190: .4byte 0x0000050C +_08077194: .4byte gLinkEntity +_08077198: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] + b _080771C4 +_080771A8: + movs r1, #0xa1 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + strb r6, [r4, #4] + b _080771C4 +_080771B6: + adds r0, r4, #0 + bl sub_08077E78 + adds r1, r5, #0 + adds r1, #0x3d + movs r0, #0 + strb r0, [r1] +_080771C4: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080771C8 +sub_080771C8: @ 0x080771C8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080771F4 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + ldr r0, _080771F0 @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + b _080772A4 + .align 2, 0 +_080771F0: .4byte gUnk_03003F80 +_080771F4: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _0807720E + ldrb r0, [r4, #8] + cmp r0, #0xff + bne _0807720E + ldr r0, _08077240 @ =gLinkEntity + ldrb r2, [r4, #0xe] + movs r1, #0x1e + movs r3, #1 + bl sub_080A2988 +_0807720E: + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _080772A4 + ldr r5, _08077240 @ =gLinkEntity + adds r0, r5, #0 + movs r1, #0xd + adds r2, r4, #0 + bl sub_0800875A + cmp r0, #0 + bne _08077248 + movs r1, #0xa4 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #3 + strb r0, [r4, #4] + ldr r0, _08077244 @ =0x00000107 + bl sub_080A3268 + b _080772A4 + .align 2, 0 +_08077240: .4byte gLinkEntity +_08077244: .4byte 0x00000107 +_08077248: + ldrb r0, [r4, #8] + cmp r0, #0xff + beq _0807728C + ldrb r3, [r4, #3] + adds r0, r5, #0 + movs r1, #0x1f + movs r2, #0 + bl sub_080A2988 + adds r3, r0, #0 + cmp r3, #0 + beq _0807729C + ldrb r0, [r4, #7] + movs r2, #0 + strb r0, [r3, #0xe] + ldrb r0, [r4, #8] + strb r0, [r3, #0xf] + ldrb r1, [r5, #0x14] + movs r0, #6 + ands r0, r1 + strb r0, [r3, #0x14] + adds r0, r5, #0 + adds r0, #0x5a + strb r2, [r0] + ldr r1, _08077288 @ =gUnk_0811BE14 + ldrb r0, [r4, #8] + adds r0, r0, r1 + ldrb r1, [r0] + adds r0, r5, #0 + adds r0, #0x59 + strb r1, [r0] + b _0807729C + .align 2, 0 +_08077288: .4byte gUnk_0811BE14 +_0807728C: + ldrb r0, [r4, #3] + cmp r0, #0xf + bne _0807729C + ldrb r0, [r4, #7] + cmp r0, #0x17 + bne _0807729C + movs r0, #0 + strb r0, [r4, #8] +_0807729C: + movs r0, #0x84 + lsls r0, r0, #1 + bl sub_080A3268 +_080772A4: + pop {r4, r5, pc} + .align 2, 0 + + thumb_func_start sub_080772A8 +sub_080772A8: @ 0x080772A8 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + ldrb r1, [r4, #0xe] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _080772C6 + adds r0, r4, #0 + bl sub_08077F10 + cmp r0, #0 + beq _080772C6 + movs r0, #1 + strb r0, [r4, #7] +_080772C6: + movs r0, #0x71 + bl sub_0807CA84 + cmp r0, #1 + bne _08077318 + ldrb r1, [r4, #0xe] + movs r5, #7 + adds r0, r5, #0 + ands r0, r1 + cmp r0, #3 + beq _08077300 + adds r0, r4, #0 + movs r1, #2 + bl sub_08077E3C + ldr r3, _080772F8 @ =gLinkEntity + ldr r2, _080772FC @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + lsls r0, r0, #1 + b _0807732E + .align 2, 0 +_080772F8: .4byte gLinkEntity +_080772FC: .4byte gUnk_0811BE16 +_08077300: + adds r0, r4, #0 + bl sub_08077E24 + ldr r3, _08077310 @ =gLinkEntity + ldr r2, _08077314 @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + adds r0, r5, #0 + b _08077326 + .align 2, 0 +_08077310: .4byte gLinkEntity +_08077314: .4byte gUnk_0811BE16 +_08077318: + adds r0, r4, #0 + bl sub_08077E24 + ldr r3, _0807736C @ =gLinkEntity + ldr r2, _08077370 @ =gUnk_0811BE16 + ldrb r1, [r4, #0xe] + movs r0, #7 +_08077326: + ands r0, r1 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] +_0807732E: + strh r0, [r3, #0x24] + ldr r5, _0807736C @ =gLinkEntity + ldrb r0, [r5, #0x14] + lsls r0, r0, #2 + strb r0, [r5, #0x15] + movs r1, #0x24 + ldrsh r0, [r5, r1] + cmp r0, #0 + beq _08077344 + bl sub_08079E08 +_08077344: + ldrb r1, [r4, #0xe] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807738C + ldrb r0, [r4, #7] + cmp r0, #0 + beq _08077374 + adds r0, r5, #0 + adds r0, #0x59 + movs r1, #1 + strb r1, [r0] + bl sub_080774A0 + cmp r0, #0 + beq _08077374 + movs r0, #0 + strb r0, [r4, #7] + b _0807743E + .align 2, 0 +_0807736C: .4byte gLinkEntity +_08077370: .4byte gUnk_0811BE16 +_08077374: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077E78 + ldr r0, _08077388 @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + b _0807743E + .align 2, 0 +_08077388: .4byte gUnk_03003F80 +_0807738C: + movs r0, #0x60 + ands r0, r1 + cmp r0, #0 + beq _0807743E + adds r0, r5, #0 + adds r0, #0x59 + movs r6, #1 + strb r6, [r0] + adds r0, r5, #0 + bl sub_0807B5B0 + cmp r0, #0 + beq _080773BC + movs r0, #0x84 + lsls r0, r0, #1 + bl sub_080A3268 + ldrb r2, [r4, #0xe] + adds r0, r5, #0 + movs r1, #0x1e + movs r3, #0 + bl sub_080A2988 + b _0807743E +_080773BC: + ldr r1, _08077440 @ =0x0000051C + adds r0, r4, #0 + bl sub_08077DF4 + adds r0, r5, #0 + movs r1, #0x1d + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _080773F6 + ldrb r0, [r4, #0xa] + strb r0, [r3, #0x14] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + 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] +_080773F6: + adds r0, r5, #0 + movs r1, #0x1d + movs r2, #0 + bl CreateFX + adds r3, r0, #0 + cmp r3, #0 + beq _08077432 + ldrb r0, [r4, #0xa] + strb r0, [r3, #0x14] + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + movs r0, #0x29 + adds r0, r0, r3 + mov ip, r0 + movs r0, #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] + strb r6, [r3, #0xf] +_08077432: + movs r0, #3 + strb r0, [r4, #4] + strb r6, [r4, #5] + ldr r0, _08077444 @ =0x00000119 + bl sub_080A3268 +_0807743E: + pop {r4, r5, r6, pc} + .align 2, 0 +_08077440: .4byte 0x0000051C +_08077444: .4byte 0x00000119 + + thumb_func_start sub_08077448 +sub_08077448: @ 0x08077448 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldr r2, _08077498 @ =gLinkEntity + ldrb r0, [r2, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + strb r0, [r2, #0x15] + movs r0, #0x80 + lsls r0, r0, #1 + strh r0, [r2, #0x24] + ldrb r1, [r4, #0xe] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _08077474 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _08077474 + bl sub_08079E08 +_08077474: + adds r0, r4, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077494 + ldr r0, _0807749C @ =gUnk_03003F80 + adds r0, #0x3d + movs r1, #0 + strb r1, [r0] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077494: + pop {r4, r5, pc} + .align 2, 0 +_08077498: .4byte gLinkEntity +_0807749C: .4byte gUnk_03003F80 + + thumb_func_start sub_080774A0 +sub_080774A0: @ 0x080774A0 + push {r4, r5, r6, r7, lr} + ldr r3, _080774FC @ =gLinkEntity + movs r0, #0x2e + ldrsh r2, [r3, r0] + ldr r5, _08077500 @ =gUnk_0811BE1E + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r2, r2, r0 + ldr r4, _08077504 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + subs r2, r2, r0 + asrs r6, r2, #4 + movs r2, #0x3f + ands r6, r2 + movs r7, #0x32 + ldrsh r0, [r3, r7] + adds r1, #1 + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r2 + lsls r0, r0, #6 + orrs r6, r0 + adds r4, r3, #0 + adds r4, #0x38 + ldrb r1, [r4] + adds r0, r6, #0 + bl sub_080002E0 + cmp r0, #0x16 + bhi _080774F6 + cmp r0, #0xe + bhi _08077508 +_080774F6: + movs r0, #0 + b _0807751A + .align 2, 0 +_080774FC: .4byte gLinkEntity +_08077500: .4byte gUnk_0811BE1E +_08077504: .4byte gUnk_03000BF0 +_08077508: + adds r0, r6, #0 + ldrb r1, [r4] + bl sub_080002C8 + cmp r0, #0x56 + bne _08077518 + movs r0, #0x56 + b _0807751A +_08077518: + movs r0, #1 +_0807751A: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807751C +sub_0807751C: @ 0x0807751C + push {lr} + ldr r3, _08077530 @ =gUnk_0811BE28 + ldrb r2, [r0, #4] + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r2, [r2] + bl _call_via_r2 + pop {pc} + .align 2, 0 +_08077530: .4byte gUnk_0811BE28 + + thumb_func_start sub_08077534 +sub_08077534: @ 0x08077534 + push {r4, lr} + adds r4, r0, #0 + bl sub_08077D38 + ldr r0, _08077570 @ =gLinkEntity + bl sub_0806F948 + adds r0, r4, #0 + bl sub_08077BB8 + ldrb r1, [r4, #9] + movs r0, #0xf + orrs r0, r1 + strb r0, [r4, #9] + ldrb r1, [r4, #1] + ldr r0, _08077574 @ =gUnk_02002A40 + adds r0, r0, r1 + adds r0, #0x9a + ldrb r0, [r0] + strb r0, [r4, #7] + ldrb r0, [r4, #7] + subs r0, #0x20 + cmp r0, #0x11 + bhi _080775F8 + lsls r0, r0, #2 + ldr r1, _08077578 @ =_0807757C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08077570: .4byte gLinkEntity +_08077574: .4byte gUnk_02002A40 +_08077578: .4byte _0807757C +_0807757C: @ jump table + .4byte _080775C4 @ case 0 + .4byte _080775D4 @ case 1 + .4byte _080775D4 @ case 2 + .4byte _080775D4 @ case 3 + .4byte _080775D4 @ case 4 + .4byte _080775D4 @ case 5 + .4byte _080775F8 @ case 6 + .4byte _080775F8 @ case 7 + .4byte _080775F8 @ case 8 + .4byte _080775D4 @ case 9 + .4byte _080775D4 @ case 10 + .4byte _080775D4 @ case 11 + .4byte _080775D4 @ case 12 + .4byte _080775D4 @ case 13 + .4byte _080775D4 @ case 14 + .4byte _080775F8 @ case 15 + .4byte _080775F8 @ case 16 + .4byte _080775F8 @ case 17 +_080775C4: + ldr r1, _080775D0 @ =0x00000614 + adds r0, r4, #0 + bl sub_08077DF4 + b _08077610 + .align 2, 0 +_080775D0: .4byte 0x00000614 +_080775D4: + movs r0, #3 + strb r0, [r4, #4] + ldr r1, _080775F0 @ =gLinkEntity + movs r0, #4 + strb r0, [r1, #0x14] + ldrb r2, [r1, #0x18] + subs r0, #0x45 + ands r0, r2 + strb r0, [r1, #0x18] + ldr r1, _080775F4 @ =0x000002DF + adds r0, r4, #0 + bl sub_08077DF4 + b _08077606 + .align 2, 0 +_080775F0: .4byte gLinkEntity +_080775F4: .4byte 0x000002DF +_080775F8: + movs r0, #3 + strb r0, [r4, #4] + movs r1, #0xc2 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 +_08077606: + ldr r2, _08077614 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] +_08077610: + pop {r4, pc} + .align 2, 0 +_08077614: .4byte gLinkEntity + + thumb_func_start sub_08077618 +sub_08077618: @ 0x08077618 + push {r4, lr} + adds r4, r0, #0 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077638 + movs r1, #0xc3 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08077DF4 + ldrb r0, [r4, #4] + adds r0, #1 + strb r0, [r4, #4] + b _0807763E +_08077638: + adds r0, r4, #0 + bl sub_08077E24 +_0807763E: + pop {r4, pc} + + thumb_func_start sub_08077640 +sub_08077640: @ 0x08077640 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077666 + ldr r2, _08077668 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077666: + pop {r4, r5, pc} + .align 2, 0 +_08077668: .4byte gLinkEntity + + thumb_func_start sub_0807766C +sub_0807766C: @ 0x0807766C + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08077E24 + ldrb r1, [r4, #0xe] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _08077692 + ldr r2, _08077694 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 +_08077692: + pop {r4, r5, pc} + .align 2, 0 +_08077694: .4byte gLinkEntity + + thumb_func_start sub_08077698 +sub_08077698: @ 0x08077698 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r2, _0807771C @ =gUnk_03003F80 + ldrb r1, [r2, #3] + movs r0, #0xfe + ands r0, r1 + strb r0, [r2, #3] + ldrb r1, [r2, #4] + movs r0, #0xf + ands r0, r1 + strb r0, [r2, #4] + ldrb r0, [r2, #7] + ldrb r3, [r2, #2] + orrs r0, r3 + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08077700 + movs r0, #0x40 + ands r0, r3 + cmp r0, #0 + bne _08077700 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08077700 + adds r0, r4, #0 + bl sub_08077758 + cmp r0, #0 + beq _08077700 + bl sub_080777A0 + cmp r0, #0 + bne _08077700 + ldr r4, _08077720 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0xb4 + ldrb r0, [r0] + movs r1, #1 + movs r2, #0 + bl sub_08077880 + adds r4, #0xb5 + ldrb r0, [r4] + movs r1, #2 + movs r2, #0 + bl sub_08077880 + bl sub_080778CC +_08077700: + movs r5, #0 + ldr r4, _08077724 @ =gUnk_03000B80 +_08077704: + ldrb r0, [r4, #9] + cmp r0, #0 + beq _08077712 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_080752E8 +_08077712: + adds r4, #0x1c + adds r5, #1 + cmp r5, #3 + bls _08077704 + pop {r4, r5, pc} + .align 2, 0 +_0807771C: .4byte gUnk_03003F80 +_08077720: .4byte gUnk_02002A40 +_08077724: .4byte gUnk_03000B80 + + thumb_func_start sub_08077728 +sub_08077728: @ 0x08077728 + push {lr} + cmp r0, #0 + bne _08077744 + ldr r0, _08077740 @ =gUnk_02002A40 + adds r0, #0xb4 + ldrb r0, [r0] + movs r1, #1 + movs r2, #1 + bl sub_08077880 + b _08077752 + .align 2, 0 +_08077740: .4byte gUnk_02002A40 +_08077744: + ldr r0, _08077754 @ =gUnk_02002A40 + adds r0, #0xb5 + ldrb r0, [r0] + movs r1, #2 + movs r2, #1 + bl sub_08077880 +_08077752: + pop {pc} + .align 2, 0 +_08077754: .4byte gUnk_02002A40 + + thumb_func_start sub_08077758 +sub_08077758: @ 0x08077758 + push {lr} + adds r3, r0, #0 + ldr r2, _08077794 @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0807779C + movs r0, #0xd5 + lsls r0, r0, #4 + ands r1, r0 + cmp r1, #0 + bne _08077798 + ldrb r0, [r2, #0x1e] + ldrb r1, [r2, #0x1a] + orrs r1, r0 + adds r0, r3, #0 + adds r0, #0x7a + ldrh r0, [r0] + orrs r1, r0 + cmp r1, #0 + bne _0807779C + adds r0, r3, #0 + adds r0, #0x42 + ldrb r0, [r0] + cmp r0, #0 + bne _0807779C + movs r0, #1 + b _0807779E + .align 2, 0 +_08077794: .4byte gUnk_03003F80 +_08077798: + bl sub_0807A108 +_0807779C: + movs r0, #0 +_0807779E: + pop {pc} + + thumb_func_start sub_080777A0 +sub_080777A0: @ 0x080777A0 + push {r4, lr} + ldr r3, _080777D0 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r1 + cmp r0, #0 + beq _08077870 + ldr r1, [r3, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xf + ands r0, r1 + cmp r0, #0 + beq _080777D4 + adds r1, r3, #0 + adds r1, #0xa0 + movs r0, #1 + strb r0, [r1] + bl sub_0807A108 +_080777CC: + movs r0, #1 + b _0807787C + .align 2, 0 +_080777D0: .4byte gUnk_03003F80 +_080777D4: + ldr r2, _080777F4 @ =gUnk_02033A90 + ldrb r0, [r2, #0x18] + cmp r0, #2 + beq _080777FC + cmp r0, #3 + beq _08077810 + ldr r0, _080777F8 @ =gUnk_0200AF00 + adds r0, #0x2c + ldrb r0, [r0] + cmp r0, #0xc + bne _0807787A + adds r2, r3, #0 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + bne _0807787A + b _08077838 + .align 2, 0 +_080777F4: .4byte gUnk_02033A90 +_080777F8: .4byte gUnk_0200AF00 +_080777FC: + ldrb r0, [r2, #0x1a] + cmp r0, #0 + bne _080777CC + ldr r1, _0807780C @ =gLinkEntity + ldrb r0, [r1, #0xd] + adds r0, #1 + strb r0, [r1, #0xd] + b _080777CC + .align 2, 0 +_0807780C: .4byte gLinkEntity +_08077810: + ldrb r0, [r2, #0x1a] + cmp r0, #0 + bne _0807787A + ands r1, r4 + cmp r1, #0 + beq _0807787A + ldr r0, _08077834 @ =gLinkEntity + ldrb r1, [r0, #0xd] + adds r1, #1 + strb r1, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0xb4 + bl sub_0805E4E0 + b _080777CC + .align 2, 0 +_08077834: .4byte gLinkEntity +_08077838: + ldrb r0, [r2, #0x12] + cmp r0, #0x11 + beq _0807787A + adds r0, r2, #0 + adds r0, #0x90 + ldrh r1, [r0] + movs r0, #0xf0 + lsls r0, r0, #4 + ands r0, r1 + cmp r0, #0 + beq _0807787A + ldr r0, [r2, #0x30] + ldr r1, _0807786C @ =0x00040400 + ands r0, r1 + cmp r0, #0 + bne _0807787A + ldrb r0, [r2, #2] + cmp r0, #0 + bne _0807787A + ldrb r0, [r2, #4] + cmp r0, #0 + bne _0807787A + movs r0, #0x18 + strb r0, [r2, #0xc] + b _0807787A + .align 2, 0 +_0807786C: .4byte 0x00040400 +_08077870: + ldr r0, [r3, #0x30] + movs r1, #0x20 + ands r0, r1 + cmp r0, #0 + bne _080777CC +_0807787A: + movs r0, #0 +_0807787C: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08077880 +sub_08077880: @ 0x08077880 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r6, r1, #0 + subs r0, r4, #1 + cmp r0, #0x1e + bhi _080778C0 + lsls r0, r4, #1 + adds r0, r0, r4 + lsls r0, r0, #2 + ldr r1, _080778C4 @ =gUnk_0811BE48 + adds r5, r0, r1 + ldr r1, _080778C8 @ =gUnk_03004010 + ldrb r0, [r5] + cmp r0, #0 + beq _080778A0 + adds r1, #2 +_080778A0: + ldrh r0, [r1] + ands r0, r6 + cmp r0, #0 + bne _080778AC + cmp r2, #0 + beq _080778C0 +_080778AC: + adds r0, r4, #0 + bl sub_0807794C + adds r1, r0, #0 + cmp r1, #0 + beq _080778C0 + ldrb r0, [r5, #1] + strb r0, [r1, #9] + strb r4, [r1, #1] + strb r6, [r1, #3] +_080778C0: + pop {r4, r5, r6, pc} + .align 2, 0 +_080778C4: .4byte gUnk_0811BE48 +_080778C8: .4byte gUnk_03004010 + + thumb_func_start sub_080778CC +sub_080778CC: @ 0x080778CC + push {lr} + ldr r2, _08077920 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08077924 @ =0x000400A0 + ands r0, r1 + cmp r0, #0 + bne _0807791C + ldr r0, _08077928 @ =gLinkEntity + adds r0, #0x79 + ldrb r0, [r0] + cmp r0, #0 + bne _080778FA + ldrb r0, [r2, #5] + cmp r0, #0 + bne _080778FA + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807791C +_080778FA: + bl sub_080789A8 + cmp r0, #0 + bne _08077910 + ldr r0, _08077920 @ =gUnk_03003F80 + adds r0, #0x90 + ldrh r1, [r0] + ldr r0, _0807792C @ =0x00000F03 + ands r0, r1 + cmp r0, #0 + bne _0807791C +_08077910: + movs r0, #0x1b + bl sub_0807794C + adds r1, r0, #0 + cmp r1, #0 + bne _08077930 +_0807791C: + movs r0, #0 + b _08077940 + .align 2, 0 +_08077920: .4byte gUnk_03003F80 +_08077924: .4byte 0x000400A0 +_08077928: .4byte gLinkEntity +_0807792C: .4byte 0x00000F03 +_08077930: + movs r0, #0x1b + strb r0, [r1, #1] + ldr r0, _08077944 @ =gUnk_0811BE48 + ldr r2, _08077948 @ =0x00000145 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1, #9] + movs r0, #1 +_08077940: + pop {pc} + .align 2, 0 +_08077944: .4byte gUnk_0811BE48 +_08077948: .4byte 0x00000145 + + thumb_func_start sub_0807794C +sub_0807794C: @ 0x0807794C + push {lr} + adds r2, r0, #0 + ldr r0, _080779B8 @ =gUnk_03003F80 + ldrb r1, [r0, #0xc] + adds r3, r0, #0 + cmp r1, #0x18 + bne _0807795E + cmp r2, #0x1b + bne _080779B2 +_0807795E: + ldr r0, [r3, #0x30] + movs r1, #0x88 + lsls r1, r1, #0xf + ands r0, r1 + cmp r0, #0 + beq _0807796E + cmp r2, #6 + bhi _080779B2 +_0807796E: + ldrb r0, [r3, #2] + cmp r0, #0 + bne _0807797C + ldr r0, _080779BC @ =gLinkEntity + ldr r0, [r0, #0x34] + cmp r0, #0 + beq _08077980 +_0807797C: + cmp r2, #6 + bhi _080779B2 +_08077980: + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807799A + ldr r0, _080779C0 @ =gUnk_0811BE48 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r1, #8] + cmp r0, #0 + beq _080779B2 +_0807799A: + ldrb r0, [r3, #0x12] + cmp r0, #0x11 + bne _080779C4 + adds r0, r3, #0 + adds r0, #0x37 + ldrb r0, [r0] + cmp r0, #0 + beq _080779C4 + adds r0, r2, #0 + subs r0, #0x14 + cmp r0, #1 + bls _080779C4 +_080779B2: + movs r0, #0 + b _080779DE + .align 2, 0 +_080779B8: .4byte gUnk_03003F80 +_080779BC: .4byte gLinkEntity +_080779C0: .4byte gUnk_0811BE48 +_080779C4: + ldr r1, _080779E0 @ =gUnk_0811BE48 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + ldrb r0, [r0, #2] + ldr r1, _080779E4 @ =gUnk_0811BFC8 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r2, #0 + bl _call_via_r1 +_080779DE: + pop {pc} + .align 2, 0 +_080779E0: .4byte gUnk_0811BE48 +_080779E4: .4byte gUnk_0811BFC8 + + thumb_func_start sub_080779E8 +sub_080779E8: @ 0x080779E8 + movs r0, #0 + bx lr + + thumb_func_start sub_080779EC +sub_080779EC: @ 0x080779EC + push {lr} + ldr r1, _08077A00 @ =gUnk_03000B80 + adds r0, r1, #0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #0 + bne _08077A04 + adds r0, r1, #0 + adds r0, #0x1c + b _08077A16 + .align 2, 0 +_08077A00: .4byte gUnk_03000B80 +_08077A04: + adds r0, r1, #0 + adds r0, #0x41 + ldrb r0, [r0] + cmp r0, #0 + beq _08077A12 + movs r0, #0 + b _08077A16 +_08077A12: + adds r0, r1, #0 + adds r0, #0x38 +_08077A16: + pop {pc} + + thumb_func_start sub_08077A18 +sub_08077A18: @ 0x08077A18 + push {lr} + adds r1, r0, #0 + ldr r0, _08077A3C @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077A44 + ldr r0, _08077A40 @ =gUnk_03000B80 + ldrb r2, [r0, #0x1d] + cmp r1, r2 + beq _08077A44 + adds r0, #0x39 + ldrb r0, [r0] + cmp r1, r0 + beq _08077A44 + adds r0, r1, #0 + bl sub_080779EC + b _08077A46 + .align 2, 0 +_08077A3C: .4byte gUnk_03003F80 +_08077A40: .4byte gUnk_03000B80 +_08077A44: + movs r0, #0 +_08077A46: + pop {pc} + + thumb_func_start sub_08077A48 +sub_08077A48: @ 0x08077A48 + push {r4, r5, r6, lr} + adds r2, r0, #0 + ldr r6, _08077A88 @ =gUnk_03003F80 + ldrb r0, [r6, #5] + cmp r0, #0 + bne _08077A94 + ldrb r1, [r6, #2] + movs r0, #0x20 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + bne _08077A94 + ldr r0, _08077A8C @ =gUnk_0811BE48 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r5, _08077A90 @ =gUnk_03000B80 + ldrb r0, [r1, #1] + ldrb r1, [r5, #9] + cmp r0, r1 + blo _08077A94 + adds r0, r5, #0 + movs r1, #0 + bl sub_08077E78 + strb r4, [r6, #1] + strb r4, [r6, #0x1c] + strb r4, [r6, #0x1b] + adds r0, r5, #0 + b _08077A96 + .align 2, 0 +_08077A88: .4byte gUnk_03003F80 +_08077A8C: .4byte gUnk_0811BE48 +_08077A90: .4byte gUnk_03000B80 +_08077A94: + movs r0, #0 +_08077A96: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08077A98 +sub_08077A98: @ 0x08077A98 + push {lr} + ldr r0, _08077AB8 @ =gUnk_02002A40 + adds r0, #0xac + ldrb r0, [r0] + cmp r0, #0 + beq _08077AC4 + ldr r0, _08077ABC @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077AC4 + ldr r1, _08077AC0 @ =gUnk_03000B80 + ldrb r0, [r1, #9] + cmp r0, #0 + bne _08077AC4 + adds r0, r1, #0 + b _08077AC6 + .align 2, 0 +_08077AB8: .4byte gUnk_02002A40 +_08077ABC: .4byte gUnk_03003F80 +_08077AC0: .4byte gUnk_03000B80 +_08077AC4: + movs r0, #0 +_08077AC6: + pop {pc} + + thumb_func_start sub_08077AC8 +sub_08077AC8: @ 0x08077AC8 + push {lr} + movs r2, #0 + ldr r1, _08077AD8 @ =gUnk_03000B80 +_08077ACE: + ldrb r0, [r1, #9] + cmp r0, #0 + beq _08077ADC + movs r0, #0 + b _08077AE6 + .align 2, 0 +_08077AD8: .4byte gUnk_03000B80 +_08077ADC: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _08077ACE + ldr r0, _08077AE8 @ =gUnk_03000BD4 +_08077AE6: + pop {pc} + .align 2, 0 +_08077AE8: .4byte gUnk_03000BD4 + + thumb_func_start sub_08077AEC +sub_08077AEC: @ 0x08077AEC + push {lr} + ldr r0, _08077B14 @ =gUnk_03000BD4 + movs r1, #3 + bl sub_08077E78 + ldr r2, _08077B18 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08077B1C @ =0xFF7FFFFF + ands r0, r1 + str r0, [r2, #0x30] + movs r0, #0x10 + bl sub_0805436C + adds r1, r0, #0 + cmp r1, #2 + beq _08077B12 + movs r0, #0xf + bl sub_08054414 +_08077B12: + pop {pc} + .align 2, 0 +_08077B14: .4byte gUnk_03000BD4 +_08077B18: .4byte gUnk_03003F80 +_08077B1C: .4byte 0xFF7FFFFF + + thumb_func_start sub_08077B20 +sub_08077B20: @ 0x08077B20 + push {lr} + bl sub_08077B2C + bl sub_08077AEC + pop {pc} + + thumb_func_start sub_08077B2C +sub_08077B2C: @ 0x08077B2C + push {r4, r5, lr} + movs r4, #0 + ldr r5, _08077B88 @ =gUnk_03000B80 +_08077B32: + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077E78 + adds r5, #0x1c + adds r4, #1 + cmp r4, #2 + bls _08077B32 + ldr r2, _08077B8C @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x3d + movs r3, #0 + strb r3, [r0] + strb r3, [r2, #0x1c] + subs r0, #0x1c + strb r3, [r0] + strb r3, [r2, #1] + strb r3, [r2, #0xe] + strb r3, [r2, #0x1e] + strb r3, [r2, #0x1b] + strb r3, [r2, #3] + strb r3, [r2, #5] + ldr r0, [r2, #0x30] + ldr r1, _08077B90 @ =0xF7FBFFFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _08077B94 @ =gLinkEntity + str r3, [r0, #0x70] + ldrb r1, [r2, #2] + movs r0, #0xc0 + ands r0, r1 + cmp r0, #0 + bne _08077B76 + strb r3, [r2, #2] +_08077B76: + adds r1, r2, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #4 + bgt _08077B86 + cmp r0, #2 + blt _08077B86 + strb r3, [r1] +_08077B86: + pop {r4, r5, pc} + .align 2, 0 +_08077B88: .4byte gUnk_03000B80 +_08077B8C: .4byte gUnk_03003F80 +_08077B90: .4byte 0xF7FBFFFF +_08077B94: .4byte gLinkEntity + + thumb_func_start sub_08077B98 +sub_08077B98: @ 0x08077B98 + push {r4, lr} + adds r1, r0, #0 + ldr r4, _08077BB4 @ =gUnk_03003F80 + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _08077BAA + ldrb r0, [r0, #9] + cmp r0, #1 + beq _08077BB2 +_08077BAA: + adds r0, r1, #0 + bl sub_08077C54 + str r0, [r4, #0x2c] +_08077BB2: + pop {r4, pc} + .align 2, 0 +_08077BB4: .4byte gUnk_03003F80 + + thumb_func_start sub_08077BB8 +sub_08077BB8: @ 0x08077BB8 + push {lr} + bl sub_08077C54 + adds r1, r0, #0 + cmp r1, #0 + beq _08077BC8 + movs r0, #0x20 + strb r0, [r1, #0x10] +_08077BC8: + ldr r0, _08077BD0 @ =gUnk_03003F80 + str r1, [r0, #0x2c] + pop {pc} + .align 2, 0 +_08077BD0: .4byte gUnk_03003F80 + + thumb_func_start sub_08077BD4 +sub_08077BD4: @ 0x08077BD4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08077C04 @ =gUnk_0811BE48 + ldrb r1, [r4, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #3] + adds r0, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08077C08 + ldrb r1, [r4, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + ldrb r1, [r0, #3] + adds r0, r4, #0 + bl sub_08077C3C + b _08077C0A + .align 2, 0 +_08077C04: .4byte gUnk_0811BE48 +_08077C08: + movs r0, #0 +_08077C0A: + pop {r4, r5, pc} + + thumb_func_start sub_08077C0C +sub_08077C0C: @ 0x08077C0C + push {r4, r5, lr} + adds r5, r0, #0 + ldr r2, _08077C34 @ =gUnk_0811BE48 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r4, [r0, #3] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077C94 + cmp r0, #0 + bne _08077C38 + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_08077C3C + b _08077C3A + .align 2, 0 +_08077C34: .4byte gUnk_0811BE48 +_08077C38: + movs r0, #0 +_08077C3A: + pop {r4, r5, pc} + + thumb_func_start sub_08077C3C +sub_08077C3C: @ 0x08077C3C + push {r4, lr} + adds r4, r0, #0 + adds r0, r1, #0 + ldrb r3, [r4, #1] + movs r1, #0 + movs r2, #0 + bl sub_08077CB8 + cmp r0, #0 + beq _08077C52 + str r4, [r0, #0x50] +_08077C52: + pop {r4, pc} + + thumb_func_start sub_08077C54 +sub_08077C54: @ 0x08077C54 + push {r4, r5, lr} + adds r5, r0, #0 + bl sub_0805E744 + adds r4, r0, #0 + cmp r4, #0 + beq _08077C8C + ldr r2, _08077C90 @ =gUnk_0811BE48 + ldrb r1, [r5, #1] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r0, [r0, #3] + strb r0, [r4, #9] + movs r0, #8 + strb r0, [r4, #8] + movs r0, #0xa0 + strb r0, [r4, #0x10] + str r5, [r4, #0x50] + ldrb r1, [r5, #1] + adds r0, r4, #0 + adds r0, #0x68 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077C8C: + adds r0, r4, #0 + pop {r4, r5, pc} + .align 2, 0 +_08077C90: .4byte gUnk_0811BE48 + + thumb_func_start sub_08077C94 +sub_08077C94: @ 0x08077C94 + push {lr} + ldr r2, _08077CB4 @ =gUnk_0811BE48 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + ldrb r1, [r0, #3] + movs r0, #8 + movs r2, #2 + bl sub_0805EB00 + cmp r0, #0 + bne _08077CB0 + movs r0, #0 +_08077CB0: + pop {pc} + .align 2, 0 +_08077CB4: .4byte gUnk_0811BE48 + + thumb_func_start sub_08077CB8 +sub_08077CB8: @ 0x08077CB8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov r8, r3 + bl sub_0805E678 + adds r4, r0, #0 + cmp r4, #0 + beq _08077CEE + movs r0, #0x80 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077CEE: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08077CF8 +sub_08077CF8: @ 0x08077CF8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + mov r8, r3 + bl sub_0805E744 + adds r4, r0, #0 + cmp r4, #0 + beq _08077D2E + movs r0, #0x80 + strb r0, [r4, #0x10] + movs r0, #8 + strb r0, [r4, #8] + strb r5, [r4, #9] + strb r6, [r4, #0xa] + strb r7, [r4, #0xb] + adds r0, r4, #0 + adds r0, #0x68 + mov r1, r8 + strb r1, [r0] + adds r0, r4, #0 + movs r1, #2 + bl sub_0805EA2C +_08077D2E: + adds r0, r4, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08077D38 +sub_08077D38: @ 0x08077D38 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r4, r0, #0 + mov r8, r1 + ldr r3, _08077D94 @ =gUnk_03003F80 + movs r7, #8 + adds r1, r7, #0 + mov r0, r8 + asrs r1, r0 + ldrb r2, [r3, #0xa] + adds r0, r1, #0 + orrs r0, r2 + strb r0, [r3, #0xa] + ldrb r0, [r3, #0xb] + orrs r1, r0 + strb r1, [r3, #0xb] + ldr r0, _08077D98 @ =gLinkEntity + ldrb r0, [r0, #0x14] + strb r0, [r4, #0xa] + ldrb r0, [r4, #4] + cmp r0, #0 + bne _08077D6A + adds r0, #1 + strb r0, [r4, #4] +_08077D6A: + ldrb r2, [r4, #1] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + ldr r1, _08077D9C @ =gUnk_0811BE48 + adds r5, r0, r1 + ldrh r0, [r5, #4] + cmp r0, #0 + beq _08077DCC + ldr r0, [r3, #0x30] + ands r0, r7 + cmp r0, #0 + beq _08077DC4 + cmp r2, #0xd + beq _08077DB2 + cmp r2, #0xd + bgt _08077DA0 + cmp r2, #1 + beq _08077DAC + b _08077DB4 + .align 2, 0 +_08077D94: .4byte gUnk_03003F80 +_08077D98: .4byte gLinkEntity +_08077D9C: .4byte gUnk_0811BE48 +_08077DA0: + cmp r2, #0x1b + bne _08077DB4 + ldr r6, _08077DA8 @ =0x00000948 + b _08077DB4 + .align 2, 0 +_08077DA8: .4byte 0x00000948 +_08077DAC: + movs r6, #0x81 + lsls r6, r6, #3 + b _08077DB4 +_08077DB2: + ldr r6, _08077DC0 @ =0x0000040C +_08077DB4: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_08077DF4 + b _08077DCC + .align 2, 0 +_08077DC0: .4byte 0x0000040C +_08077DC4: + ldrh r1, [r5, #4] + adds r0, r4, #0 + bl sub_08077DF4 +_08077DCC: + ldrb r0, [r5, #6] + strb r0, [r4, #0xf] + ldrb r0, [r5, #7] + cmp r0, #0 + beq _08077DE8 + ldr r2, _08077DF0 @ =gUnk_03003F80 + movs r0, #8 + mov r1, r8 + asrs r0, r1 + lsls r1, r0, #4 + orrs r0, r1 + ldrb r1, [r2, #4] + orrs r0, r1 + strb r0, [r2, #4] +_08077DE8: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08077DF0: .4byte gUnk_03003F80 + + thumb_func_start sub_08077DF4 +sub_08077DF4: @ 0x08077DF4 + push {r4, lr} + adds r4, r0, #0 + adds r2, r1, #0 + strh r2, [r4, #0x10] + movs r0, #0xff + ands r0, r2 + cmp r0, #0xb8 + bls _08077E0A + ldrb r0, [r4, #0xa] + lsrs r0, r0, #1 + adds r2, r2, r0 +_08077E0A: + ldr r0, _08077E20 @ =gLinkEntity + lsrs r1, r2, #8 + strh r1, [r0, #0x12] + lsls r1, r2, #0x18 + lsrs r1, r1, #0x18 + bl sub_080042AC + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E20: .4byte gLinkEntity + + thumb_func_start sub_08077E24 +sub_08077E24: @ 0x08077E24 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077E38 @ =gLinkEntity + bl sub_080042B8 + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E38: .4byte gLinkEntity + + thumb_func_start sub_08077E3C +sub_08077E3C: @ 0x08077E3C + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077E50 @ =gLinkEntity + bl sub_080042BA + adds r0, r4, #0 + bl sub_08077E54 + pop {r4, pc} + .align 2, 0 +_08077E50: .4byte gLinkEntity + + thumb_func_start sub_08077E54 +sub_08077E54: @ 0x08077E54 + ldr r2, _08077E74 @ =gLinkEntity + adds r1, r2, #0 + adds r1, #0x58 + ldrb r1, [r1] + strb r1, [r0, #0xc] + ldrb r1, [r2, #0x1e] + strb r1, [r0, #0x12] + adds r1, r2, #0 + adds r1, #0x59 + ldrb r1, [r1] + strb r1, [r0, #0xd] + adds r1, r2, #0 + adds r1, #0x5a + ldrb r1, [r1] + strb r1, [r0, #0xe] + bx lr + .align 2, 0 +_08077E74: .4byte gLinkEntity + + thumb_func_start sub_08077E78 +sub_08077E78: @ 0x08077E78 + push {r4, r5, lr} + adds r5, r0, #0 + adds r3, r1, #0 + ldr r4, _08077EC4 @ =gUnk_03003F80 + cmp r3, #0 + bne _08077E9A + ldr r2, [r4, #0x2c] + cmp r2, #0 + beq _08077E98 + ldrb r0, [r2, #0x11] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #6 + orrs r1, r0 + strb r1, [r2, #0x11] +_08077E98: + str r3, [r4, #0x2c] +_08077E9A: + movs r2, #8 + asrs r2, r3 + lsls r1, r2, #4 + orrs r1, r2 + ldrb r0, [r4, #4] + bics r0, r1 + strb r0, [r4, #4] + mvns r2, r2 + ldrb r1, [r4, #0xa] + adds r0, r2, #0 + ands r0, r1 + strb r0, [r4, #0xa] + ldrb r0, [r4, #0xb] + ands r2, r0 + strb r2, [r4, #0xb] + adds r0, r5, #0 + movs r1, #0x1c + bl sub_0801D630 + pop {r4, r5, pc} + .align 2, 0 +_08077EC4: .4byte gUnk_03003F80 + + thumb_func_start sub_08077EC8 +sub_08077EC8: @ 0x08077EC8 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _08077EDC @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + bne _08077EE0 + movs r0, #0 + b _08077EF8 + .align 2, 0 +_08077EDC: .4byte gUnk_03003F80 +_08077EE0: + movs r1, #0xb8 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_08077DF4 + movs r0, #0x28 + strb r0, [r4, #7] + movs r0, #7 + strb r0, [r4, #4] + movs r0, #6 + strb r0, [r4, #0xf] + movs r0, #1 +_08077EF8: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_08077EFC +sub_08077EFC: @ 0x08077EFC + push {lr} + ldr r1, _08077F0C @ =gUnk_03003F80 + adds r1, #0x90 + ldrh r1, [r1] + bl sub_08077F24 + pop {pc} + .align 2, 0 +_08077F0C: .4byte gUnk_03003F80 + + thumb_func_start sub_08077F10 +sub_08077F10: @ 0x08077F10 + push {lr} + ldr r1, _08077F20 @ =gUnk_03003F80 + adds r1, #0x92 + ldrh r1, [r1] + bl sub_08077F24 + pop {pc} + .align 2, 0 +_08077F20: .4byte gUnk_03003F80 + + thumb_func_start sub_08077F24 +sub_08077F24: @ 0x08077F24 + push {lr} + ldr r2, _08077F34 @ =gUnk_02002AE8 + ldrb r3, [r0, #1] + ldrb r0, [r2, #0xc] + cmp r0, r3 + bne _08077F38 + movs r2, #1 + b _08077F42 + .align 2, 0 +_08077F34: .4byte gUnk_02002AE8 +_08077F38: + ldrb r0, [r2, #0xd] + movs r2, #0 + cmp r0, r3 + bne _08077F42 + movs r2, #2 +_08077F42: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _08077F4C + movs r0, #1 +_08077F4C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08077F50 +sub_08077F50: @ 0x08077F50 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_08079184 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_08077E78 + pop {r4, r5, pc} + + thumb_func_start sub_08077F64 +sub_08077F64: @ 0x08077F64 + push {lr} + adds r2, r0, #0 + ldr r0, _08077F7C @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #0 + bne _08077F80 + adds r0, r2, #0 + bl sub_08077F50 + movs r0, #0 + b _08077F82 + .align 2, 0 +_08077F7C: .4byte gUnk_03003F80 +_08077F80: + movs r0, #1 +_08077F82: + pop {pc} + + thumb_func_start sub_08077F84 +sub_08077F84: @ 0x08077F84 + push {r4, lr} + ldr r4, _08077FE0 @ =gLinkEntity + adds r0, r4, #0 + adds r0, #0x38 + ldrb r1, [r0] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08077FDE + movs r1, #0x2e + ldrsh r0, [r4, r1] + movs r2, #0x32 + ldrsh r1, [r4, r2] + subs r1, #0xc + movs r2, #2 + bl sub_080002A4 + ldr r1, _08077FE4 @ =0xFFFFFCBD + adds r0, r0, r1 + cmp r0, #3 + bhi _08077FDE + adds r0, r4, #0 + bl sub_0807AA80 + ldr r2, _08077FE8 @ =gUnk_03003F80 + ldrb r1, [r2, #2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2, #2] + movs r0, #0x44 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 + adds r1, r0, #0 + cmp r1, #0 + beq _08077FDE + ldr r0, [r4, #0x2c] + str r0, [r1, #0x2c] + ldrh r0, [r4, #0x32] + subs r0, #0xc + strh r0, [r1, #0x32] + ldrh r0, [r4, #0x32] + subs r0, #0xc + strh r0, [r4, #0x32] +_08077FDE: + pop {r4, pc} + .align 2, 0 +_08077FE0: .4byte gLinkEntity +_08077FE4: .4byte 0xFFFFFCBD +_08077FE8: .4byte gUnk_03003F80 + + thumb_func_start sub_08077FEC +sub_08077FEC: @ 0x08077FEC + push {lr} + ldr r0, _08078000 @ =gUnk_03004020 + ldr r2, _08078004 @ =gUnk_0811BFE8 + ldrb r1, [r0] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_08078000: .4byte gUnk_03004020 +_08078004: .4byte gUnk_0811BFE8 + + thumb_func_start sub_08078008 +sub_08078008: @ 0x08078008 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r6, _08078060 @ =gUnk_02002A40 + adds r5, r6, #0 + adds r5, #0xb4 + ldrb r0, [r5] + bl sub_0805449C + cmp r0, #0 + bne _0807802C + adds r5, r6, #0 + adds r5, #0xb5 + ldrb r0, [r5] + bl sub_0805449C + movs r2, #0 + cmp r0, #0 + beq _0807802E +_0807802C: + ldrb r2, [r5] +_0807802E: + subs r0, r2, #1 + cmp r0, #1 + bhi _08078036 + movs r2, #0 +_08078036: + cmp r2, #0 + beq _08078068 + ldr r0, _08078064 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _08078068 + ldrb r0, [r4, #1] + adds r0, #1 + strb r0, [r4, #1] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x14 + ble _0807806C + movs r0, #0xa + strb r0, [r4, #1] + movs r0, #3 + strb r0, [r4] + strb r2, [r4, #2] + b _0807806C + .align 2, 0 +_08078060: .4byte gUnk_02002A40 +_08078064: .4byte gUnk_03003F80 +_08078068: + movs r0, #0 + strb r0, [r4, #1] +_0807806C: + movs r0, #0 + pop {r4, r5, r6, pc} + + thumb_func_start sub_08078070 +sub_08078070: @ 0x08078070 + push {lr} + adds r2, r0, #0 + ldr r3, _08078098 @ =gUnk_03003F80 + ldrb r1, [r3, #0x1b] + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + beq _080780D6 + adds r0, r3, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0807809C + ldrh r0, [r2, #4] + adds r0, #0xc + b _080780A0 + .align 2, 0 +_08078098: .4byte gUnk_03003F80 +_0807809C: + ldrh r0, [r2, #4] + adds r0, #6 +_080780A0: + strh r0, [r2, #4] + movs r0, #4 + ldrsh r1, [r2, r0] + ldr r0, _080780BC @ =0x0000031F + cmp r1, r0 + ble _080780C0 + adds r0, #1 + strh r0, [r2, #4] + movs r0, #4 + strb r0, [r2] + movs r0, #0xd8 + bl sub_080A3268 + b _080780DA + .align 2, 0 +_080780BC: .4byte 0x0000031F +_080780C0: + movs r1, #4 + ldrsh r0, [r2, r1] + movs r1, #0x14 + bl Mod + cmp r0, #0 + bne _080780DA + movs r0, #0xd7 + bl sub_080A3268 + b _080780DA +_080780D6: + movs r0, #1 + strb r0, [r2] +_080780DA: + movs r0, #1 + pop {pc} + .align 2, 0 + + thumb_func_start sub_080780E0 +sub_080780E0: @ 0x080780E0 + push {lr} + adds r2, r0, #0 + ldr r0, _080780F4 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _080780F8 + movs r0, #5 + b _08078102 + .align 2, 0 +_080780F4: .4byte gUnk_03003F80 +_080780F8: + movs r0, #0x20 + ands r0, r1 + cmp r0, #0 + bne _08078104 + movs r0, #1 +_08078102: + strb r0, [r2] +_08078104: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078108 +sub_08078108: @ 0x08078108 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #4] + subs r0, #1 + strh r0, [r1, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _08078120 + movs r0, #0 + strh r0, [r1, #4] + movs r0, #2 + strb r0, [r1] +_08078120: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078124 +sub_08078124: @ 0x08078124 + push {lr} + adds r1, r0, #0 + ldrh r0, [r1, #4] + subs r0, #0x10 + strh r0, [r1, #4] + lsls r0, r0, #0x10 + cmp r0, #0 + bge _0807813C + movs r0, #0 + strh r0, [r1, #4] + movs r0, #2 + strb r0, [r1] +_0807813C: + movs r0, #1 + pop {pc} + + thumb_func_start sub_08078140 +sub_08078140: @ 0x08078140 + push {lr} + adds r1, r0, #0 + ldrb r0, [r1, #1] + subs r0, #1 + movs r2, #0 + strb r0, [r1, #1] + lsls r0, r0, #0x18 + cmp r0, #0 + blt _08078156 + movs r0, #0 + b _0807815C +_08078156: + strb r2, [r1, #1] + strb r2, [r1] + movs r0, #1 +_0807815C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08078160 +sub_08078160: @ 0x08078160 + push {lr} + ldr r1, _08078178 @ =gUnk_03003F80 + adds r1, #0xa8 + strb r0, [r1] + ldr r2, _0807817C @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + bl sub_08078B48 + pop {pc} + .align 2, 0 +_08078178: .4byte gUnk_03003F80 +_0807817C: .4byte gLinkEntity + + thumb_func_start sub_08078180 +sub_08078180: @ 0x08078180 + push {r4, r5, r6, lr} + ldr r0, _080781C8 @ =gUnk_0200AF00 + adds r1, r0, #0 + adds r1, #0x2f + ldrb r1, [r1] + adds r6, r0, #0 + cmp r1, #0 + beq _08078192 + b _080782BC +_08078192: + movs r4, #0 + ldr r5, _080781CC @ =gUnk_03003F80 + ldrb r0, [r5, #2] + cmp r0, #0 + beq _0807819E + b _080782B6 +_0807819E: + ldr r0, [r5, #0x30] + ldr r1, _080781D0 @ =0x00104D00 + ands r0, r1 + cmp r0, #0 + beq _080781AA + b _080782B6 +_080781AA: + ldrb r0, [r5, #5] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bhi _080781D4 + adds r1, r6, #0 + adds r1, #0x2e + ldrb r0, [r1] + movs r4, #3 + cmp r0, #0 + bne _080781C4 + b _080782B6 +_080781C4: + adds r4, r0, #0 + b _080782B6 + .align 2, 0 +_080781C8: .4byte gUnk_0200AF00 +_080781CC: .4byte gUnk_03003F80 +_080781D0: .4byte 0x00104D00 +_080781D4: + adds r1, r6, #0 + adds r1, #0x2d + ldrb r0, [r1] + cmp r0, #0 + bne _080781C4 + bl sub_080784E4 + adds r1, r0, #0 + ldr r0, [r1, #8] + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _08078278 + ldrb r0, [r1, #1] + subs r0, #1 + cmp r0, #9 + bhi _080782B6 + lsls r0, r0, #2 + ldr r1, _08078204 @ =_08078208 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078204: .4byte _08078208 +_08078208: @ jump table + .4byte _08078230 @ case 0 + .4byte _080782B6 @ case 1 + .4byte _08078254 @ case 2 + .4byte _080782B6 @ case 3 + .4byte _08078254 @ case 4 + .4byte _08078254 @ case 5 + .4byte _08078230 @ case 6 + .4byte _0807823C @ case 7 + .4byte _08078260 @ case 8 + .4byte _0807826C @ case 9 +_08078230: + movs r4, #7 + ldr r6, _08078238 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078238: .4byte gUnk_0200AF00 +_0807823C: + ldr r0, _0807824C @ =gUnk_02034350 + ldrb r0, [r0, #6] + ldr r6, _08078250 @ =gUnk_0200AF00 + cmp r0, #0 + bne _080782B6 + movs r4, #9 + b _080782B6 + .align 2, 0 +_0807824C: .4byte gUnk_02034350 +_08078250: .4byte gUnk_0200AF00 +_08078254: + movs r4, #6 + ldr r6, _0807825C @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_0807825C: .4byte gUnk_0200AF00 +_08078260: + movs r4, #5 + ldr r6, _08078268 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078268: .4byte gUnk_0200AF00 +_0807826C: + movs r4, #2 + ldr r6, _08078274 @ =gUnk_0200AF00 + b _080782B6 + .align 2, 0 +_08078274: .4byte gUnk_0200AF00 +_08078278: + bl sub_080789A8 + cmp r0, #0 + beq _080782A4 + adds r0, r5, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0xe + beq _080782BC + ldr r1, _080782A0 @ =gUnk_03003BE0 + ldrb r0, [r1, #1] + movs r4, #9 + cmp r0, #2 + bne _080782B6 + ldr r0, [r1, #8] + ldrb r0, [r0, #0x16] + cmp r0, #1 + bne _080782B6 + movs r4, #8 + b _080782B6 + .align 2, 0 +_080782A0: .4byte gUnk_03003BE0 +_080782A4: + adds r0, r5, #0 + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #1 + bne _080782B6 + ldrb r0, [r5, #0x1a] + cmp r0, #0 + bne _080782B6 + movs r4, #0xc +_080782B6: + adds r0, r6, #0 + adds r0, #0x2c + strb r4, [r0] +_080782BC: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080782C0 +sub_080782C0: @ 0x080782C0 + push {r4, r5, r6, lr} + ldr r1, _080782D8 @ =gUnk_03003F80 + adds r2, r1, #0 + adds r2, #0xa8 + ldrb r0, [r2] + adds r4, r1, #0 + cmp r0, #0 + bne _080782DC + adds r0, r4, #0 + adds r0, #0xa9 + ldrb r0, [r0] + b _080782DE + .align 2, 0 +_080782D8: .4byte gUnk_03003F80 +_080782DC: + ldrb r0, [r2] +_080782DE: + subs r0, #2 + cmp r0, #0x14 + bhi _08078348 + lsls r0, r0, #2 + ldr r1, _080782F0 @ =_080782F4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080782F0: .4byte _080782F4 +_080782F4: @ jump table + .4byte _080784AC @ case 0 + .4byte _080784AC @ case 1 + .4byte _08078348 @ case 2 + .4byte _08078348 @ case 3 + .4byte _08078348 @ case 4 + .4byte _08078348 @ case 5 + .4byte _08078348 @ case 6 + .4byte _08078348 @ case 7 + .4byte _08078348 @ case 8 + .4byte _08078348 @ case 9 + .4byte _080784AC @ case 10 + .4byte _08078348 @ case 11 + .4byte _08078348 @ case 12 + .4byte _08078348 @ case 13 + .4byte _08078348 @ case 14 + .4byte _08078348 @ case 15 + .4byte _080784AC @ case 16 + .4byte _08078348 @ case 17 + .4byte _08078348 @ case 18 + .4byte _080784AC @ case 19 + .4byte _080784AC @ case 20 +_08078348: + adds r0, r4, #0 + adds r0, #0x27 + adds r2, r4, #0 + adds r2, #0x26 + ldrb r1, [r0] + ldrb r0, [r2] + orrs r0, r1 + cmp r0, #0 + beq _0807835C + b _080784AC +_0807835C: + ldrb r0, [r4, #0x12] + cmp r0, #1 + bne _08078376 + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _0807836A + b _080784AC +_0807836A: + bl sub_08052B24 + cmp r0, #0 + beq _08078374 + b _080784C4 +_08078374: + b _080784AC +_08078376: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #7 + ands r0, r1 + cmp r0, #0 + beq _08078384 + b _080784AC +_08078384: + bl sub_08052B24 + cmp r0, #0 + beq _0807838E + b _080784C4 +_0807838E: + bl sub_080784E4 + ldr r6, [r0, #8] + cmp r6, #0 + bne _0807839A + b _080784AC +_0807839A: + ldrb r0, [r4, #5] + cmp r0, #0 + beq _080783B6 + cmp r0, #4 + beq _080783A6 + b _080784AC +_080783A6: + ldr r0, _08078400 @ =gLinkEntity + ldr r0, [r0, #0x74] + ldr r0, [r0, #0x54] + ldrh r1, [r0, #8] + ldr r0, _08078404 @ =0x00000206 + cmp r1, r0 + beq _080783B6 + b _080784AC +_080783B6: + ldr r2, _08078408 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0807842C + ldr r5, _0807840C @ =gUnk_03003DF0 + ldr r0, [r5, #4] + ldrb r0, [r0, #3] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x63 + bhi _0807842C + movs r0, #0 + bl sub_0801E738 + ldr r0, _08078410 @ =gUnk_02002A40 + ldr r1, _08078414 @ =0x0000012B + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _08078418 + ldr r1, [r5, #4] + ldrb r0, [r1, #3] + strb r0, [r5, #2] + ldr r0, [r1, #8] + adds r0, #0x39 + movs r1, #2 + strb r1, [r0] + movs r0, #7 + strb r0, [r4, #0xc] + b _08078420 + .align 2, 0 +_08078400: .4byte gLinkEntity +_08078404: .4byte 0x00000206 +_08078408: .4byte gUnk_03003F80 +_0807840C: .4byte gUnk_03003DF0 +_08078410: .4byte gUnk_02002A40 +_08078414: .4byte 0x0000012B +_08078418: + ldr r0, _08078428 @ =0x00000B65 + movs r1, #0 + bl sub_08078AA8 +_08078420: + movs r0, #0x13 + bl sub_08078160 + b _080784C4 + .align 2, 0 +_08078428: .4byte 0x00000B65 +_0807842C: + adds r0, r4, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x88 + ands r0, r1 + cmp r0, #0 + beq _080784AC + ldr r0, _08078450 @ =gUnk_03003DF0 + ldr r0, [r0, #4] + ldrb r0, [r0, #1] + cmp r0, #0xa + bhi _080784C4 + lsls r0, r0, #2 + ldr r1, _08078454 @ =_08078458 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078450: .4byte gUnk_03003DF0 +_08078454: .4byte _08078458 +_08078458: @ jump table + .4byte _080784C4 @ case 0 + .4byte _08078484 @ case 1 + .4byte _080784C4 @ case 2 + .4byte _0807848E @ case 3 + .4byte _080784C4 @ case 4 + .4byte _0807848E @ case 5 + .4byte _08078484 @ case 6 + .4byte _0807848E @ case 7 + .4byte _080784A4 @ case 8 + .4byte _08078484 @ case 9 + .4byte _08078484 @ case 10 +_08078484: + movs r0, #7 + strb r0, [r4, #0xc] + movs r0, #0x13 + bl sub_08078160 +_0807848E: + adds r1, r6, #0 + adds r1, #0x39 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + ldr r0, _080784A0 @ =gUnk_03003DF0 + strb r2, [r0, #2] + b _080784C4 + .align 2, 0 +_080784A0: .4byte gUnk_03003DF0 +_080784A4: + ldr r2, _080784B0 @ =gUnk_02034350 + ldrb r0, [r2, #6] + cmp r0, #0 + beq _080784B4 +_080784AC: + movs r0, #0 + b _080784C6 + .align 2, 0 +_080784B0: .4byte gUnk_02034350 +_080784B4: + adds r1, r6, #0 + adds r1, #0x39 + movs r0, #1 + strb r0, [r1] + ldrb r0, [r6, #0xa] + strb r0, [r2, #6] + ldrb r0, [r6, #0xb] + strb r0, [r2, #7] +_080784C4: + movs r0, #1 +_080784C6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_080784C8 +sub_080784C8: @ 0x080784C8 + push {r4, lr} + ldr r4, _080784DC @ =gUnk_03003DF0 + movs r1, #0xc4 + lsls r1, r1, #1 + adds r0, r4, #0 + bl sub_0801D630 + ldr r0, _080784E0 @ =gUnk_0811C000 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 +_080784DC: .4byte gUnk_03003DF0 +_080784E0: .4byte gUnk_0811C000 + + thumb_func_start sub_080784E4 +sub_080784E4: @ 0x080784E4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _080784FC @ =gUnk_03003DF0 + ldrb r1, [r0] + mov r8, r0 + cmp r1, #0 + beq _08078500 + ldr r0, [r0, #4] + b _0807876A + .align 2, 0 +_080784FC: .4byte gUnk_03003DF0 +_08078500: + ldr r2, _08078528 @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0x27 + adds r3, r2, #0 + adds r3, #0x26 + ldrb r1, [r0] + ldrb r0, [r3] + orrs r0, r1 + cmp r0, #0 + bne _08078598 + adds r1, r2, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _0807852C + adds r0, r2, #0 + adds r0, #0xa9 + ldrb r0, [r0] + b _0807852E + .align 2, 0 +_08078528: .4byte gUnk_03003F80 +_0807852C: + ldrb r0, [r1] +_0807852E: + subs r0, #2 + cmp r0, #0x14 + bhi _080785B0 + lsls r0, r0, #2 + ldr r1, _08078540 @ =_08078544 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078540: .4byte _08078544 +_08078544: @ jump table + .4byte _08078598 @ case 0 + .4byte _08078598 @ case 1 + .4byte _080785B0 @ case 2 + .4byte _080785B0 @ case 3 + .4byte _080785B0 @ case 4 + .4byte _080785B0 @ case 5 + .4byte _080785B0 @ case 6 + .4byte _080785B0 @ case 7 + .4byte _080785B0 @ case 8 + .4byte _080785B0 @ case 9 + .4byte _080785B0 @ case 10 + .4byte _080785B0 @ case 11 + .4byte _080785B0 @ case 12 + .4byte _080785B0 @ case 13 + .4byte _080785B0 @ case 14 + .4byte _080785B0 @ case 15 + .4byte _08078598 @ case 16 + .4byte _080785B0 @ case 17 + .4byte _080785B0 @ case 18 + .4byte _08078598 @ case 19 + .4byte _08078598 @ case 20 +_08078598: + movs r0, #0xff + mov r1, r8 + strb r0, [r1, #3] + ldr r0, _080785AC @ =gUnk_0811C000 + str r0, [r1, #4] + movs r1, #1 + mov r2, r8 + strb r1, [r2] + b _0807876A + .align 2, 0 +_080785AC: .4byte gUnk_0811C000 +_080785B0: + ldr r0, [r2, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080785F0 + bl sub_08052734 + cmp r0, #0 + beq _080785C4 + movs r0, #1 +_080785C4: + adds r7, r0, #0 + bl sub_08052764 + cmp r0, #0 + beq _080785D2 + movs r0, #2 + orrs r7, r0 +_080785D2: + ldr r3, _080785E4 @ =gLinkEntity + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + ldr r0, _080785E8 @ =gUnk_0811C00C + adds r2, r1, r0 + ldr r5, _080785EC @ =gUnk_03003DF0 + mov r8, r5 + b _080785FE + .align 2, 0 +_080785E4: .4byte gLinkEntity +_080785E8: .4byte gUnk_0811C00C +_080785EC: .4byte gUnk_03003DF0 +_080785F0: + ldr r3, _08078624 @ =gLinkEntity + ldrb r0, [r3, #0x14] + movs r1, #6 + ands r1, r0 + ldr r0, _08078628 @ =gUnk_0811C014 + adds r2, r1, r0 + movs r7, #0 +_080785FE: + mov ip, r3 + mov r0, ip + movs r3, #0x2e + ldrsh r1, [r0, r3] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov sl, r1 + mov r5, ip + movs r0, #0x32 + ldrsh r1, [r5, r0] + movs r0, #1 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov sb, r1 + movs r6, #0 + ldr r5, _0807862C @ =gUnk_03003DF8 + b _08078724 + .align 2, 0 +_08078624: .4byte gLinkEntity +_08078628: .4byte gUnk_0811C014 +_0807862C: .4byte gUnk_03003DF8 +_08078630: + ldrb r1, [r5] + movs r3, #1 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _0807864E + mov r0, ip + adds r0, #0x38 + adds r1, r2, #0 + adds r1, #0x38 + ldrb r2, [r0] + ldrb r0, [r1] + ands r0, r2 + cmp r0, #0 + beq _08078714 +_0807864E: + ldrb r1, [r5, #2] + mov r2, ip + ldrb r0, [r2, #0x14] + lsrs r0, r0, #1 + asrs r1, r0 + ands r1, r3 + cmp r1, #0 + bne _08078714 + ldrb r0, [r5, #1] + cmp r0, #0xa + bhi _080786D4 + lsls r0, r0, #2 + ldr r1, _08078670 @ =_08078674 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078670: .4byte _08078674 +_08078674: @ jump table + .4byte _08078714 @ case 0 + .4byte _080786A0 @ case 1 + .4byte _080786C4 @ case 2 + .4byte _080786A0 @ case 3 + .4byte _080786A0 @ case 4 + .4byte _080786C8 @ case 5 + .4byte _080786CC @ case 6 + .4byte _080786B4 @ case 7 + .4byte _080786A0 @ case 8 + .4byte _080786A0 @ case 9 + .4byte _080786D4 @ case 10 +_080786A0: + ldr r0, _080786B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08078714 + b _080786D4 + .align 2, 0 +_080786B0: .4byte gUnk_03003F80 +_080786B4: + ldr r0, _080786C0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + b _080786D0 + .align 2, 0 +_080786C0: .4byte gUnk_03003F80 +_080786C4: + ldrb r0, [r5, #3] + b _080786D0 +_080786C8: + movs r0, #1 + b _080786CE +_080786CC: + movs r0, #2 +_080786CE: + ands r0, r7 +_080786D0: + cmp r0, #0 + beq _08078714 +_080786D4: + ldr r0, [r5, #8] + movs r1, #0x2e + ldrsh r3, [r0, r1] + movs r2, #0x32 + ldrsh r4, [r0, r2] + ldr r1, [r5, #4] + cmp r1, #0 + beq _080786F4 + movs r0, #0 + ldrsb r0, [r1, r0] + adds r3, r3, r0 + movs r0, #1 + ldrsb r0, [r1, r0] + adds r4, r4, r0 + adds r2, r1, #2 + b _080786F8 +_080786F4: + ldr r0, [r0, #0x48] + adds r2, r0, #6 +_080786F8: + ldrb r1, [r2] + mov r5, sl + adds r0, r1, r5 + subs r0, r0, r3 + lsls r1, r1, #1 + cmp r0, r1 + bhs _08078714 + ldrb r1, [r2, #1] + mov r2, sb + adds r0, r1, r2 + subs r0, r0, r4 + lsls r1, r1, #1 + cmp r0, r1 + blo _0807873A +_08078714: + adds r6, #1 + cmp r6, #0x1f + bhi _08078758 + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + ldr r3, _08078754 @ =gUnk_03003DF8 + adds r5, r0, r3 +_08078724: + ldr r2, [r5, #8] + cmp r2, #0 + beq _08078714 + adds r0, r2, #0 + adds r0, #0x39 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + blt _0807873A + b _08078630 +_0807873A: + cmp r6, #0x1f + bhi _08078758 + mov r5, r8 + strb r6, [r5, #3] + lsls r0, r6, #1 + adds r0, r0, r6 + lsls r0, r0, #2 + mov r1, r8 + adds r1, #8 + adds r0, r0, r1 + str r0, [r5, #4] + b _08078762 + .align 2, 0 +_08078754: .4byte gUnk_03003DF8 +_08078758: + movs r0, #0xff + mov r1, r8 + strb r0, [r1, #3] + ldr r0, _08078774 @ =gUnk_0811C000 + str r0, [r1, #4] +_08078762: + movs r0, #1 + mov r2, r8 + strb r0, [r2] + ldr r0, [r2, #4] +_0807876A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08078774: .4byte gUnk_0811C000 + + thumb_func_start sub_08078778 +sub_08078778: @ 0x08078778 + push {lr} + movs r1, #1 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_08078784 +sub_08078784: @ 0x08078784 + push {lr} + adds r2, r1, #0 + movs r1, #1 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_08078790 +sub_08078790: @ 0x08078790 + push {lr} + adds r2, r1, #0 + movs r1, #2 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_0807879C +sub_0807879C: @ 0x0807879C + push {lr} + movs r1, #7 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787A8 +sub_080787A8: @ 0x080787A8 + push {lr} + adds r2, r1, #0 + movs r1, #7 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787B4 +sub_080787B4: @ 0x080787B4 + push {lr} + movs r1, #9 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787C0 +sub_080787C0: @ 0x080787C0 + push {lr} + movs r1, #0xa + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787CC +sub_080787CC: @ 0x080787CC + push {lr} + movs r1, #5 + movs r2, #0 + bl sub_0807887C + pop {pc} + + thumb_func_start sub_080787D8 +sub_080787D8: @ 0x080787D8 + push {lr} + movs r1, #8 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _080787F6 + ldr r0, _080787FC @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_080787F6: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_080787FC: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078800 +sub_08078800: @ 0x08078800 + push {lr} + movs r1, #6 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _0807881E + ldr r0, _08078824 @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_0807881E: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_08078824: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078828 +sub_08078828: @ 0x08078828 + push {lr} + movs r1, #3 + movs r2, #0 + bl sub_0807887C + adds r2, r0, #0 + cmp r2, #0 + blt _08078846 + ldr r0, _0807884C @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r1, r1, r0 + movs r0, #0xbe + strb r0, [r1, #0xa] +_08078846: + adds r0, r2, #0 + pop {pc} + .align 2, 0 +_0807884C: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078850 +sub_08078850: @ 0x08078850 + push {r4, r5, r6, lr} + adds r4, r1, #0 + adds r5, r2, #0 + adds r6, r3, #0 + bl sub_08078904 + adds r2, r0, #0 + cmp r2, #0 + blt _08078876 + ldr r0, _08078878 @ =gUnk_03003DF0 + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #2 + adds r2, r1, r0 + strb r4, [r2, #8] + strb r5, [r2, #0xa] + adds r0, #0xc + adds r1, r1, r0 + str r6, [r1] +_08078876: + pop {r4, r5, r6, pc} + .align 2, 0 +_08078878: .4byte gUnk_03003DF0 + + thumb_func_start sub_0807887C +sub_0807887C: @ 0x0807887C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r7, r1, #0 + adds r6, r2, #0 + adds r1, r5, #0 + adds r1, #0x39 + movs r0, #0 + strb r0, [r1] + adds r0, r5, #0 + bl sub_08078904 + adds r4, r0, #0 + cmp r4, #0 + bge _080788A4 + movs r0, #0 + bl sub_08078904 + adds r4, r0, #0 + cmp r4, #0 + blt _080788BA +_080788A4: + ldr r2, _080788DC @ =gUnk_03003DF0 + lsls r1, r4, #1 + adds r1, r1, r4 + lsls r1, r1, #2 + adds r0, r2, #0 + adds r0, #0x10 + adds r0, r1, r0 + str r5, [r0] + adds r1, r1, r2 + strb r7, [r1, #9] + strb r6, [r1, #0xb] +_080788BA: + cmp r6, #0 + beq _080788D6 + movs r0, #6 + movs r1, #9 + movs r2, #6 + bl sub_0805EB00 + cmp r0, #0 + bne _080788D6 + movs r0, #9 + movs r1, #0 + movs r2, #0 + bl sub_080A2960 +_080788D6: + adds r0, r4, #0 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080788DC: .4byte gUnk_03003DF0 + + thumb_func_start sub_080788E0 +sub_080788E0: @ 0x080788E0 + push {lr} + bl sub_08078904 + adds r1, r0, #0 + cmp r1, #0 + blt _080788FC + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _08078900 @ =gUnk_03003DF8 + adds r0, r0, r1 + movs r1, #0xc + bl sub_0801D630 +_080788FC: + pop {pc} + .align 2, 0 +_08078900: .4byte gUnk_03003DF8 + + thumb_func_start sub_08078904 +sub_08078904: @ 0x08078904 + push {lr} + adds r3, r0, #0 + movs r1, #0 + ldr r0, _0807891C @ =gUnk_03003DF0 + adds r2, r0, #0 + adds r2, #0x10 +_08078910: + ldr r0, [r2] + cmp r3, r0 + bne _08078920 + adds r0, r1, #0 + b _0807892C + .align 2, 0 +_0807891C: .4byte gUnk_03003DF0 +_08078920: + adds r2, #0xc + adds r1, #1 + cmp r1, #0x1f + bls _08078910 + movs r0, #1 + rsbs r0, r0, #0 +_0807892C: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08078930 +sub_08078930: @ 0x08078930 + push {lr} + adds r3, r0, #0 + ldr r2, _08078950 @ =gUnk_03003BE0 + ldrb r0, [r2, #2] + cmp r0, #0x1f + bhi _0807894C + lsls r0, r0, #2 + adds r1, r2, #0 + adds r1, #0xc + adds r0, r0, r1 + str r3, [r0] + ldrb r0, [r2, #2] + adds r0, #1 + strb r0, [r2, #2] +_0807894C: + pop {pc} + .align 2, 0 +_08078950: .4byte gUnk_03003BE0 + + thumb_func_start sub_08078954 +sub_08078954: @ 0x08078954 + push {r4, r5, lr} + adds r5, r0, #0 + movs r4, #0 + ldr r0, _08078970 @ =gUnk_03003BE0 + ldrb r1, [r0, #2] + adds r2, r0, #0 + cmp r4, r1 + bhs _080789A6 + ldr r0, [r2, #0xc] + cmp r0, r5 + bne _08078974 + subs r0, r1, #1 + b _0807898C + .align 2, 0 +_08078970: .4byte gUnk_03003BE0 +_08078974: + adds r4, #1 + ldrb r3, [r2, #2] + cmp r4, r3 + bhs _080789A6 + lsls r0, r4, #2 + adds r1, r2, #0 + adds r1, #0xc + adds r0, r0, r1 + ldr r0, [r0] + cmp r0, r5 + bne _08078974 + subs r0, r3, #1 +_0807898C: + strb r0, [r2, #2] + ldrb r0, [r2, #2] + cmp r4, r0 + bhs _080789A6 + lsls r0, r4, #2 + adds r0, #0xc + adds r1, r0, r2 +_0807899A: + ldr r0, [r1, #4] + stm r1!, {r0} + adds r4, #1 + ldrb r0, [r2, #2] + cmp r4, r0 + blo _0807899A +_080789A6: + pop {r4, r5, pc} + + thumb_func_start sub_080789A8 +sub_080789A8: @ 0x080789A8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _080789BC @ =gUnk_03003BE0 + ldrb r0, [r1] + cmp r0, #0 + beq _080789C0 + ldrb r0, [r1, #1] + b _08078A88 + .align 2, 0 +_080789BC: .4byte gUnk_03003BE0 +_080789C0: + ldr r0, _08078A5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08078A56 + ldr r0, _08078A60 @ =gLinkEntity + bl sub_080002D0 + adds r4, r0, #0 + cmp r4, #0xf + bls _080789E6 + ldr r0, _08078A64 @ =gUnk_080084BC + adds r1, r4, #0 + subs r1, #0x10 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0xf + beq _08078A56 +_080789E6: + ldr r0, _08078A5C @ =gUnk_03003F80 + ldrb r0, [r0, #0x12] + cmp r0, #0x12 + beq _08078A56 + ldr r3, _08078A68 @ =gUnk_03003BE0 + movs r0, #1 + strb r0, [r3] + ldrb r4, [r3, #2] + cmp r4, #0 + beq _08078A2E + ldr r2, _08078A60 @ =gLinkEntity + ldrb r1, [r2, #0x14] + movs r0, #6 + ands r0, r1 + ldr r1, _08078A6C @ =gUnk_0811BFE0 + adds r6, r0, r1 + adds r7, r2, #0 + adds r3, #8 + mov r8, r3 +_08078A0C: + lsls r0, r4, #2 + mov r1, r8 + adds r5, r0, r1 + ldr r1, [r5] + cmp r1, #0 + beq _08078A26 + ldrb r2, [r6] + ldrb r3, [r6, #1] + adds r0, r7, #0 + bl sub_0807A180 + cmp r0, #0 + bne _08078A74 +_08078A26: + subs r4, #1 + ldr r7, _08078A60 @ =gLinkEntity + cmp r4, #0 + bne _08078A0C +_08078A2E: + ldr r0, _08078A60 @ =gLinkEntity + ldrb r1, [r0, #0x14] + movs r2, #6 + ands r2, r1 + ldr r1, _08078A70 @ =gUnk_08007DF4 + adds r2, r2, r1 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + bl sub_0800029C + ldr r4, _08078A68 @ =gUnk_03003BE0 + strh r0, [r4, #4] + movs r1, #6 + bl sub_0806FC24 + cmp r0, #0 + bne _08078A84 +_08078A56: + movs r0, #0 + b _08078A88 + .align 2, 0 +_08078A5C: .4byte gUnk_03003F80 +_08078A60: .4byte gLinkEntity +_08078A64: .4byte gUnk_080084BC +_08078A68: .4byte gUnk_03003BE0 +_08078A6C: .4byte gUnk_0811BFE0 +_08078A70: .4byte gUnk_08007DF4 +_08078A74: + mov r0, r8 + subs r0, #8 + ldr r1, [r5] + str r1, [r0, #8] + movs r1, #2 + strb r1, [r0, #1] + movs r0, #2 + b _08078A88 +_08078A84: + movs r0, #1 + strb r0, [r4, #1] +_08078A88: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08078A90 +sub_08078A90: @ 0x08078A90 + push {lr} + adds r1, r0, #0 + ldr r0, _08078AA4 @ =gUnk_03003F80 + adds r2, r0, #0 + adds r2, #0x8b + ldrb r0, [r2] + cmp r0, #3 + beq _08078AA2 + strb r1, [r2] +_08078AA2: + pop {pc} + .align 2, 0 +_08078AA4: .4byte gUnk_03003F80 + + thumb_func_start sub_08078AA8 +sub_08078AA8: @ 0x08078AA8 + ldr r3, _08078AB8 @ =gUnk_03003F80 + movs r2, #0x16 + strb r2, [r3, #0xc] + ldr r2, _08078ABC @ =gUnk_030010A0 + strh r0, [r2, #0x36] + adds r2, #0x35 + strb r1, [r2] + bx lr + .align 2, 0 +_08078AB8: .4byte gUnk_03003F80 +_08078ABC: .4byte gUnk_030010A0 + + thumb_func_start sub_08078AC0 +sub_08078AC0: @ 0x08078AC0 + push {r4, lr} + ldr r3, _08078AEC @ =gUnk_03003F80 + mov ip, r3 + movs r3, #0xf + mov r4, ip + strb r3, [r4, #0xc] + mov r3, ip + adds r3, #0x38 + strb r0, [r3] + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f + mov r1, ip + adds r1, #0x39 + strb r0, [r1] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + adds r1, #1 + strb r0, [r1] + pop {r4, pc} + .align 2, 0 +_08078AEC: .4byte gUnk_03003F80 + + thumb_func_start sub_08078AF0 +sub_08078AF0: @ 0x08078AF0 + push {r4, lr} + ldr r3, _08078B40 @ =gUnk_03003F80 + mov ip, r3 + adds r3, #0x38 + movs r4, #0 + strb r1, [r3] + mov r1, ip + adds r1, #0x39 + strb r2, [r1] + adds r1, #1 + strb r4, [r1] + movs r1, #8 + mov r2, ip + strb r1, [r2, #0xc] + adds r2, #0xa8 + movs r1, #0x15 + strb r1, [r2] + mov r1, ip + adds r1, #0x26 + strb r4, [r1] + movs r1, #1 + mov r3, ip + strb r1, [r3, #0x14] + ldr r2, _08078B44 @ =gLinkEntity + str r0, [r2, #0x54] + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #2 + orrs r0, r1 + strb r0, [r2, #0x11] + bl sub_0807A108 + pop {r4, pc} + .align 2, 0 +_08078B40: .4byte gUnk_03003F80 +_08078B44: .4byte gLinkEntity + + thumb_func_start sub_08078B48 +sub_08078B48: @ 0x08078B48 + push {lr} + ldr r1, _08078B80 @ =gUnk_03003F80 + ldrb r0, [r1, #7] + movs r2, #0x80 + orrs r0, r2 + strb r0, [r1, #7] + ldrb r0, [r1, #0xb] + orrs r0, r2 + strb r0, [r1, #0xb] + ldrb r0, [r1, #0xa] + orrs r2, r0 + strb r2, [r1, #0xa] + adds r2, r1, #0 + adds r2, #0x27 + movs r0, #2 + strb r0, [r2] + adds r0, r1, #0 + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #4 + adds r2, r1, #0 + cmp r0, #0x19 + bhi _08078BF8 + lsls r0, r0, #2 + ldr r1, _08078B84 @ =_08078B88 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08078B80: .4byte gUnk_03003F80 +_08078B84: .4byte _08078B88 +_08078B88: @ jump table + .4byte _08078C04 @ case 0 + .4byte _08078C04 @ case 1 + .4byte _08078BF8 @ case 2 + .4byte _08078BF8 @ case 3 + .4byte _08078BF8 @ case 4 + .4byte _08078BF0 @ case 5 + .4byte _08078BF8 @ case 6 + .4byte _08078BF8 @ case 7 + .4byte _08078BF8 @ case 8 + .4byte _08078BF8 @ case 9 + .4byte _08078BF8 @ case 10 + .4byte _08078BF8 @ case 11 + .4byte _08078BF8 @ case 12 + .4byte _08078BF8 @ case 13 + .4byte _08078BF8 @ case 14 + .4byte _08078BF8 @ case 15 + .4byte _08078BF8 @ case 16 + .4byte _08078BF8 @ case 17 + .4byte _08078BF8 @ case 18 + .4byte _08078BF8 @ case 19 + .4byte _08078BF8 @ case 20 + .4byte _08078C04 @ case 21 + .4byte _08078C04 @ case 22 + .4byte _08078BF8 @ case 23 + .4byte _08078BF8 @ case 24 + .4byte _08078C04 @ case 25 +_08078BF0: + ldr r0, [r2, #0x30] + ldr r1, _08078C18 @ =0xFFFBFFFF + ands r0, r1 + str r0, [r2, #0x30] +_08078BF8: + ldr r0, _08078C1C @ =gUnk_02034350 + ldrb r0, [r0, #6] + cmp r0, #0 + bne _08078C04 + movs r0, #1 + strb r0, [r2, #0x1a] +_08078C04: + ldr r0, _08078C20 @ =gLinkEntity + adds r0, #0x3d + movs r1, #0xfe + strb r1, [r0] + adds r1, r2, #0 + adds r1, #0x8a + movs r0, #2 + strb r0, [r1] + pop {pc} + .align 2, 0 +_08078C18: .4byte 0xFFFBFFFF +_08078C1C: .4byte gUnk_02034350 +_08078C20: .4byte gLinkEntity + + thumb_func_start sub_08078C24 +sub_08078C24: @ 0x08078C24 + push {lr} + ldr r3, _08078CAC @ =gUnk_03003F80 + movs r2, #0 + strb r2, [r3] + strb r2, [r3, #1] + strb r2, [r3, #2] + strb r2, [r3, #3] + strb r2, [r3, #4] + strb r2, [r3, #5] + strb r2, [r3, #6] + strb r2, [r3, #7] + movs r0, #0 + strh r2, [r3, #8] + strb r0, [r3, #0xa] + strb r0, [r3, #0xb] + movs r1, #0x35 + adds r1, r1, r3 + mov ip, r1 + adds r1, r3, #0 + adds r1, #0x36 + strb r0, [r1] + strb r0, [r3, #0xc] + strb r0, [r3, #0xd] + strb r0, [r3, #0xe] + strb r0, [r3, #0x11] + strb r0, [r3, #0x12] + strb r0, [r3, #0x13] + strb r0, [r3, #0x14] + strb r0, [r3, #0x1b] + strb r0, [r3, #0x1e] + strb r0, [r3, #0x1f] + subs r1, #0x16 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + strh r2, [r3, #0x22] + strh r2, [r3, #0x24] + adds r1, #5 + strb r0, [r1] + str r2, [r3, #0x2c] + adds r1, #0x5a + strh r2, [r1] + mov r1, ip + strb r0, [r1] + str r2, [r3, #0x30] + adds r1, r3, #0 + adds r1, #0x38 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #1 + strb r0, [r1] + adds r1, #5 + strb r0, [r1] + subs r1, #3 + strb r0, [r1] + movs r0, #1 + rsbs r0, r0, #0 + adds r1, #4 + movs r2, #0x40 + bl sub_0801D610 + ldr r0, _08078CB0 @ =gUnk_03003DF0 + movs r1, #0xc4 + lsls r1, r1, #1 + bl sub_0801D630 + pop {pc} + .align 2, 0 +_08078CAC: .4byte gUnk_03003F80 +_08078CB0: .4byte gUnk_03003DF0 + + thumb_func_start sub_08078CB4 +sub_08078CB4: @ 0x08078CB4 + push {lr} + ldr r0, _08078CCC @ =gUnk_03003F80 + ldrb r0, [r0, #5] + subs r0, #3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _08078CC8 + bl sub_08078D60 +_08078CC8: + pop {pc} + .align 2, 0 +_08078CCC: .4byte gUnk_03003F80 + + thumb_func_start sub_08078CD0 +sub_08078CD0: @ 0x08078CD0 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, [r5, #0x70] + ldrh r0, [r5, #0x36] + subs r0, #1 + strh r0, [r4, #0x36] + ldrb r1, [r5, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r0, r5, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + ldr r1, _08078D28 @ =gUnk_0811C01C + ldr r0, _08078D2C @ =gUnk_03003F80 + ldr r0, [r0, #0x2c] + ldrb r0, [r0, #0x1e] + adds r0, r0, r1 + ldrb r2, [r0] + ldr r3, _08078D30 @ =gUnk_0811C0B0 + ldrb r1, [r4, #0x1c] + movs r0, #0x30 + ands r0, r1 + lsrs r0, r0, #2 + adds r0, r0, r3 + lsls r2, r2, #1 + ldr r0, [r0] + adds r2, r0, r2 + ldrb r0, [r5, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08078D34 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r0, [r5, #0x2e] + subs r0, r0, r1 + b _08078D3C + .align 2, 0 +_08078D28: .4byte gUnk_0811C01C +_08078D2C: .4byte gUnk_03003F80 +_08078D30: .4byte gUnk_0811C0B0 +_08078D34: + movs r0, #0 + ldrsb r0, [r2, r0] + ldrh r1, [r5, #0x2e] + adds r0, r0, r1 +_08078D3C: + strh r0, [r4, #0x2e] + movs r0, #1 + ldrsb r0, [r2, r0] + ldrh r1, [r5, #0x32] + adds r0, r0, r1 + strh r0, [r4, #0x32] + adds r0, r5, #0 + movs r1, #0 + adds r2, r4, #0 + bl sub_0806FEBC + ldr r1, [r4, #0x50] + cmp r1, #0 + beq _08078D5E + adds r0, r4, #0 + bl sub_0806FA24 +_08078D5E: + pop {r4, r5, pc} + + thumb_func_start sub_08078D60 +sub_08078D60: @ 0x08078D60 + push {r4, r5, r6, lr} + ldr r1, _08078DCC @ =gLinkEntity + ldr r0, [r1, #0x74] + ldr r4, [r0, #0x54] + ldrb r0, [r4, #0xc] + adds r6, r1, #0 + cmp r0, #2 + beq _08078D72 + b _08078E82 +_08078D72: + adds r0, r6, #0 + adds r0, #0x63 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r6, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + ldrb r1, [r6, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x1b] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x1b] + adds r0, r6, #0 + adds r0, #0x38 + ldrb r1, [r0] + adds r0, r4, #0 + adds r0, #0x38 + strb r1, [r0] + adds r0, r6, #0 + adds r0, #0x5a + ldrb r0, [r0] + movs r2, #0x7f + ands r2, r0 + ldr r1, _08078DD0 @ =gUnk_0811C0E8 + ldrb r0, [r4, #0x16] + lsrs r0, r0, #4 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + ldrb r0, [r6, #0x18] + lsls r0, r0, #0x19 + cmp r0, #0 + bge _08078DD4 + adds r2, r1, r2 + movs r1, #0 + ldrsb r1, [r2, r1] + ldrh r0, [r6, #0x2e] + subs r0, r0, r1 + strh r0, [r4, #0x2e] + adds r1, r2, #0 + b _08078DE0 + .align 2, 0 +_08078DCC: .4byte gLinkEntity +_08078DD0: .4byte gUnk_0811C0E8 +_08078DD4: + adds r1, r1, r2 + movs r0, #0 + ldrsb r0, [r1, r0] + ldrh r2, [r6, #0x2e] + adds r0, r0, r2 + strh r0, [r4, #0x2e] +_08078DE0: + movs r0, #1 + ldrsb r0, [r1, r0] + ldrh r1, [r4, #0x36] + adds r0, r0, r1 + strh r0, [r4, #0x36] + adds r5, r6, #0 + ldrh r0, [r5, #0x32] + strh r0, [r4, #0x32] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0806FAB0 + ldr r0, _08078E34 @ =gUnk_03003F80 + ldrb r0, [r0, #5] + cmp r0, #4 + bne _08078E4C + ldrb r1, [r5, #0x19] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r2, [r4, #0x19] + movs r0, #0x3f + ands r0, r2 + orrs r0, r1 + strb r0, [r4, #0x19] + adds r0, r4, #0 + bl sub_0806F8DC + ldrb r1, [r4, #0x16] + movs r0, #0xf + ands r0, r1 + cmp r0, #2 + bne _08078E82 + ldr r0, _08078E38 @ =gUnk_030010A0 + ldr r1, [r0] + movs r0, #3 + ands r1, r0 + cmp r1, #1 + beq _08078E3C + cmp r1, #3 + beq _08078E44 + b _08078E82 + .align 2, 0 +_08078E34: .4byte gUnk_03003F80 +_08078E38: .4byte gUnk_030010A0 +_08078E3C: + ldrh r0, [r4, #0x2e] + adds r0, #1 + strh r0, [r4, #0x2e] + b _08078E82 +_08078E44: + ldrh r0, [r4, #0x2e] + subs r0, #1 + strh r0, [r4, #0x2e] + b _08078E82 +_08078E4C: + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + cmp r0, #0 + beq _08078E62 + adds r0, r5, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + subs r1, #1 + b _08078E6E +_08078E62: + adds r0, r6, #0 + adds r0, #0x29 + ldrb r1, [r0] + lsls r1, r1, #0x1d + lsrs r1, r1, #0x1d + adds r1, #1 +_08078E6E: + 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] +_08078E82: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08078E84 +sub_08078E84: @ 0x08078E84 + push {r4, r5, lr} + adds r5, r0, #0 + adds r4, r1, #0 + ldr r0, _08078ED0 @ =gLinkEntity + cmp r4, r0 + bne _08078EAC + adds r0, r5, #0 + bl sub_08079BD8 + adds r0, r4, #0 + adds r0, #0x62 + ldrb r0, [r0] + adds r1, r5, #0 + adds r1, #0x62 + strb r0, [r1] + adds r0, r4, #0 + adds r0, #0x63 + ldrb r0, [r0] + adds r1, #1 + strb r0, [r1] +_08078EAC: + ldr r0, _08078ED4 @ =gUnk_080029B4 + ldrh r2, [r4, #0x12] + lsls r2, r2, #4 + adds r0, #4 + adds r2, r2, r0 + ldrb r1, [r4, #0x1e] + lsls r1, r1, #2 + ldr r0, [r2] + adds r0, r0, r1 + ldrb r0, [r0, #1] + cmp r0, #0 + beq _08078ED8 + adds r0, r4, #0 + movs r1, #1 + adds r2, r5, #0 + bl sub_0806FEBC + b _08078EE2 + .align 2, 0 +_08078ED0: .4byte gLinkEntity +_08078ED4: .4byte gUnk_080029B4 +_08078ED8: + adds r0, r4, #0 + movs r1, #3 + adds r2, r5, #0 + bl sub_0806FEBC +_08078EE2: + pop {r4, r5, pc} + + thumb_func_start sub_08078EE4 +sub_08078EE4: @ 0x08078EE4 + ldr r2, _08078EF4 @ =gLinkEntity + ldr r1, _08078EF8 @ =gUnk_03003F80 + ldrh r0, [r1, #0x16] + strh r0, [r2, #0x2e] + ldrh r0, [r1, #0x18] + strh r0, [r2, #0x32] + bx lr + .align 2, 0 +_08078EF4: .4byte gLinkEntity +_08078EF8: .4byte gUnk_03003F80 + + thumb_func_start sub_08078EFC +sub_08078EFC: @ 0x08078EFC + push {lr} + ldr r3, _08078F18 @ =gUnk_03003F80 + ldrb r2, [r3, #0xc] + cmp r2, #0 + beq _08078F20 + ldr r0, _08078F1C @ =gLinkEntity + movs r1, #0 + strb r2, [r0, #0xc] + strb r1, [r0, #0xd] + strb r1, [r3, #0xc] + bl sub_08070680 + movs r0, #1 + b _08078F22 + .align 2, 0 +_08078F18: .4byte gUnk_03003F80 +_08078F1C: .4byte gLinkEntity +_08078F20: + movs r0, #0 +_08078F22: + pop {pc} + + thumb_func_start sub_08078F24 +sub_08078F24: @ 0x08078F24 + push {r4, lr} + ldr r4, _08078F38 @ =gUnk_03003F80 + ldrb r3, [r4, #0xd] + movs r0, #0x80 + ands r0, r3 + cmp r0, #0 + beq _08078F3C + bl sub_08078F60 + b _08078F5A + .align 2, 0 +_08078F38: .4byte gUnk_03003F80 +_08078F3C: + ldr r2, _08078F5C @ =gUnk_080C9160 + lsls r0, r3, #4 + adds r0, r0, r2 + ldrh r1, [r0] + adds r0, r4, #0 + adds r0, #0x8c + strh r1, [r0] + lsls r0, r3, #4 + adds r0, #0x80 + adds r0, r0, r2 + ldrh r0, [r0] + rsbs r0, r0, #0 + adds r1, r4, #0 + adds r1, #0x8e + strh r0, [r1] +_08078F5A: + pop {r4, pc} + .align 2, 0 +_08078F5C: .4byte gUnk_080C9160 + + thumb_func_start sub_08078F60 +sub_08078F60: @ 0x08078F60 + ldr r0, _08078F70 @ =gUnk_03003F80 + adds r1, r0, #0 + adds r1, #0x8c + movs r2, #0 + strh r2, [r1] + adds r0, #0x8e + strh r2, [r0] + bx lr + .align 2, 0 +_08078F70: .4byte gUnk_03003F80 + + thumb_func_start sub_08078F74 +sub_08078F74: @ 0x08078F74 + push {lr} + adds r2, r0, #0 + ldr r0, _08078FA4 @ =gUnk_02033A90 + ldrb r0, [r0, #0x18] + cmp r0, #3 + bne _08078FAC + ldr r3, _08078FA8 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x35 + ldrb r0, [r0] + cmp r0, #0xff + beq _08078FAC + movs r1, #0 + movs r0, #0x81 + strb r0, [r3, #2] + movs r0, #0x15 + strb r0, [r2, #0xc] + strb r1, [r2, #0xd] + movs r0, #0x80 + lsls r0, r0, #0xa + str r0, [r2, #0x20] + movs r0, #1 + b _08078FAE + .align 2, 0 +_08078FA4: .4byte gUnk_02033A90 +_08078FA8: .4byte gUnk_03003F80 +_08078FAC: + movs r0, #0 +_08078FAE: + pop {pc} + + thumb_func_start sub_08078FB0 +sub_08078FB0: @ 0x08078FB0 + push {r4, r5, r6, lr} + adds r4, r0, #0 + ldr r5, _08078FE0 @ =gUnk_03003F80 + ldrb r1, [r5, #6] + movs r6, #0x80 + adds r0, r6, #0 + ands r0, r1 + cmp r0, #0 + bne _08078FCA + adds r1, r5, #0 + adds r1, #0x35 + movs r0, #0xff + strb r0, [r1] +_08078FCA: + adds r0, r4, #0 + bl sub_08079064 + ldr r1, [r5, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _08078FE4 + movs r2, #0x58 + b _08078FFA + .align 2, 0 +_08078FE0: .4byte gUnk_03003F80 +_08078FE4: + ands r1, r6 + cmp r1, #0 + beq _08078FEE + movs r2, #0x18 + b _08078FFA +_08078FEE: + ldrh r0, [r5, #8] + lsrs r0, r0, #8 + movs r2, #0xb8 + cmp r0, #7 + bne _08078FFA + movs r2, #0x34 +_08078FFA: + ldr r0, _08079014 @ =gUnk_03003F80 + adds r3, r0, #0 + ldrb r1, [r0, #8] + cmp r2, r1 + bls _08079040 + ldrb r0, [r4, #0x14] + adds r2, r0, #0 + cmp r2, #4 + bls _08079018 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + b _08079020 + .align 2, 0 +_08079014: .4byte gUnk_03003F80 +_08079018: + ldrb r1, [r4, #0x18] + movs r0, #0x41 + rsbs r0, r0, #0 + ands r0, r1 +_08079020: + strb r0, [r4, #0x18] + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0xc + ands r0, r1 + cmp r0, #0 + beq _08079036 + ldrh r1, [r3, #8] + ldrb r0, [r4, #0x14] + adds r2, r1, r0 + b _08079042 +_08079036: + lsls r0, r2, #0x18 + lsrs r0, r0, #0x19 + ldrh r3, [r3, #8] + adds r2, r0, r3 + b _08079042 +_08079040: + ldrh r2, [r0, #8] +_08079042: + ldrh r0, [r4, #0x12] + lsls r0, r0, #8 + adds r1, r4, #0 + adds r1, #0x58 + ldrb r1, [r1] + orrs r0, r1 + cmp r2, r0 + beq _08079062 + lsrs r0, r2, #8 + strh r0, [r4, #0x12] + movs r0, #0xff + ands r2, r0 + adds r0, r4, #0 + adds r1, r2, #0 + bl sub_080042AC +_08079062: + pop {r4, r5, r6, pc} + + thumb_func_start sub_08079064 +sub_08079064: @ 0x08079064 + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r0, _0807909C @ =gUnk_03003F80 + ldr r1, [r0, #0x30] + ldr r2, _080790A0 @ =0x00100080 + ands r1, r2 + adds r5, r0, #0 + cmp r1, #0 + bne _080790DE + movs r3, #0 + movs r2, #0 + ldr r1, _080790A4 @ =gUnk_03000B80 +_0807907C: + ldrb r0, [r1, #0xf] + cmp r0, r3 + bls _08079086 + adds r3, r0, #0 + ldrh r4, [r1, #0x10] +_08079086: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _0807907C + adds r2, r5, #0 + ldrb r0, [r2, #0xe] + cmp r0, r3 + bhs _080790A8 + strh r4, [r2, #8] + b _080790DE + .align 2, 0 +_0807909C: .4byte gUnk_03003F80 +_080790A0: .4byte 0x00100080 +_080790A4: .4byte gUnk_03000B80 +_080790A8: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080790C0 + ldr r0, _080790BC @ =0x000002BE + strh r0, [r2, #8] + b _080790DE + .align 2, 0 +_080790BC: .4byte 0x000002BE +_080790C0: + ldrh r1, [r5, #8] + movs r0, #0xc1 + lsls r0, r0, #3 + cmp r1, r0 + beq _080790D8 + movs r0, #0x82 + lsls r0, r0, #1 + cmp r1, r0 + beq _080790D8 + ldr r0, _080790E0 @ =0x00000404 + cmp r1, r0 + bne _080790DE +_080790D8: + adds r0, r6, #0 + bl sub_080790E4 +_080790DE: + pop {r4, r5, r6, pc} + .align 2, 0 +_080790E0: .4byte 0x00000404 + + thumb_func_start sub_080790E4 +sub_080790E4: @ 0x080790E4 + push {r4, r5, lr} + adds r4, r0, #0 + ldr r5, _08079128 @ =gUnk_03003F80 + ldrb r0, [r5, #0xb] + cmp r0, #0 + bne _08079182 + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _0807912C + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + adds r1, #5 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #0x7a + bl sub_080A3268 + b _08079182 + .align 2, 0 +_08079128: .4byte gUnk_03003F80 +_0807912C: + ldrb r1, [r5, #6] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079182 + cmp r1, #0 + bne _08079150 + movs r0, #1 + bl sub_080793E4 + cmp r0, #0 + beq _0807914C + ldrb r0, [r4, #0xf] + cmp r0, #5 + bhi _08079154 + adds r0, #1 +_0807914C: + strb r0, [r4, #0xf] + b _08079182 +_08079150: + subs r0, r1, #1 + strb r0, [r5, #6] +_08079154: + ldr r2, _08079174 @ =gUnk_03003F80 + ldrb r0, [r4, #0x14] + adds r1, r2, #0 + adds r1, #0x35 + strb r0, [r1] + adds r1, #0x73 + movs r0, #0x19 + strb r0, [r1] + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807917C + ldr r0, _08079178 @ =0x0000093C + b _08079180 + .align 2, 0 +_08079174: .4byte gUnk_03003F80 +_08079178: .4byte 0x0000093C +_0807917C: + movs r0, #0xcf + lsls r0, r0, #2 +_08079180: + strh r0, [r2, #8] +_08079182: + pop {r4, r5, pc} + + thumb_func_start sub_08079184 +sub_08079184: @ 0x08079184 + ldr r0, _08079194 @ =gUnk_03003F80 + movs r1, #0 + strb r1, [r0, #5] + strb r1, [r0, #1] + ldr r0, _08079198 @ =gLinkEntity + str r1, [r0, #0x74] + bx lr + .align 2, 0 +_08079194: .4byte gUnk_03003F80 +_08079198: .4byte gLinkEntity + + thumb_func_start sub_0807919C +sub_0807919C: @ 0x0807919C + push {lr} + ldr r0, _080791B0 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080791B4 + bl sub_080791BC + b _080791B8 + .align 2, 0 +_080791B0: .4byte gUnk_03003F80 +_080791B4: + bl sub_08079258 +_080791B8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_080791BC +sub_080791BC: @ 0x080791BC + ldr r0, _080791CC @ =gLinkEntity + movs r2, #0 + movs r1, #1 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + strb r2, [r0, #0xf] + bx lr + .align 2, 0 +_080791CC: .4byte gLinkEntity + + thumb_func_start sub_080791D0 +sub_080791D0: @ 0x080791D0 + push {lr} + ldr r3, _0807920C @ =gUnk_03003F80 + ldr r0, [r3, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080791E8 + ldr r0, _08079210 @ =gLinkEntity + ldrb r1, [r0, #0x18] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x18] +_080791E8: + ldr r0, [r3, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079214 + ldr r2, _08079210 @ =gLinkEntity + 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] + bl sub_0807921C + b _08079218 + .align 2, 0 +_0807920C: .4byte gUnk_03003F80 +_08079210: .4byte gLinkEntity +_08079214: + bl sub_08079258 +_08079218: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807921C +sub_0807921C: @ 0x0807921C + push {r4, lr} + ldr r4, _0807924C @ =gLinkEntity + 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 r2, _08079250 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08079254 @ =0xFECBF6FA + ands r0, r1 + str r0, [r2, #0x30] + bl sub_08079938 + bl sub_080791BC + adds r0, r4, #0 + bl sub_0805E374 + pop {r4, pc} + .align 2, 0 +_0807924C: .4byte gLinkEntity +_08079250: .4byte gUnk_03003F80 +_08079254: .4byte 0xFECBF6FA + + thumb_func_start sub_08079258 +sub_08079258: @ 0x08079258 + push {r4, lr} + ldr r4, _080792AC @ =gUnk_03003F80 + ldr r0, [r4, #0x30] + movs r1, #0x40 + ands r0, r1 + ldr r3, _080792B0 @ =gLinkEntity + cmp r0, #0 + bne _08079278 + ldrb r1, [r3, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r3, #0x10] + ldrb r0, [r3, #0x18] + movs r1, #3 + orrs r0, r1 + strb r0, [r3, #0x18] +_08079278: + movs r0, #9 + strb r0, [r3, #0xc] + movs r0, #1 + strb r0, [r3, #0xd] + adds r2, r3, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 + strb r0, [r2] + movs r2, #0 + ldr r0, _080792B4 @ =0x00000C18 + strh r0, [r4, #8] + ldr r0, [r4, #0x30] + ldr r1, _080792B8 @ =0xFECFFEFA + ands r0, r1 + str r0, [r4, #0x30] + adds r0, r4, #0 + adds r0, #0x26 + strb r2, [r0] + strb r2, [r4, #0xc] + adds r0, r3, #0 + bl sub_0805E374 + pop {r4, pc} + .align 2, 0 +_080792AC: .4byte gUnk_03003F80 +_080792B0: .4byte gLinkEntity +_080792B4: .4byte 0x00000C18 +_080792B8: .4byte 0xFECFFEFA + + thumb_func_start sub_080792BC +sub_080792BC: @ 0x080792BC + push {r4, lr} + ldr r3, _080792D0 @ =gUnk_03003F80 + movs r4, #0x13 + strb r4, [r3, #0xc] + adds r3, #0x38 + strb r2, [r3] + ldr r2, _080792D4 @ =gLinkEntity + strh r0, [r2, #0x24] + strb r1, [r2, #0x15] + pop {r4, pc} + .align 2, 0 +_080792D0: .4byte gUnk_03003F80 +_080792D4: .4byte gLinkEntity + + thumb_func_start sub_080792D8 +sub_080792D8: @ 0x080792D8 + push {r4, r5, r6, lr} + ldr r5, _08079344 @ =gLinkEntity + adds r3, r5, #0 + adds r3, #0x42 + ldrb r0, [r3] + cmp r0, #0 + beq _080793E0 + ldrb r2, [r5, #0xc] + cmp r2, #0xb + beq _08079338 + ldr r0, _08079348 @ =gUnk_03003F80 + ldrb r1, [r0, #0x1e] + adds r6, r0, #0 + cmp r1, #0 + bne _08079338 + ldrb r0, [r6, #5] + subs r0, #1 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _08079338 + ldrb r0, [r6, #2] + cmp r0, #0 + bne _08079338 + ldrb r0, [r6, #0x12] + cmp r0, #0xff + beq _08079338 + ldrb r1, [r6, #7] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + bne _08079338 + adds r0, r6, #0 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + subs r0, #1 + cmp r0, #0 + bgt _08079338 + cmp r2, #3 + beq _08079338 + ldr r1, [r6, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xb + ands r1, r0 + cmp r1, #0 + beq _0807934C +_08079338: + adds r1, r5, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + b _080793E0 + .align 2, 0 +_08079344: .4byte gLinkEntity +_08079348: .4byte gUnk_03003F80 +_0807934C: + cmp r2, #0x1d + bne _0807935E + adds r0, r5, #0 + adds r0, #0x3e + ldrb r0, [r0] + cmp r0, #0x10 + beq _0807935E + strb r1, [r3] + b _080793E0 +_0807935E: + adds r0, r5, #0 + adds r0, #0x42 + ldrb r3, [r0] + movs r1, #0 + ldrsb r1, [r0, r1] + adds r2, r0, #0 + cmp r1, #0 + ble _08079372 + subs r0, r3, #1 + b _08079374 +_08079372: + adds r0, r3, #1 +_08079374: + strb r0, [r2] + ldrb r0, [r2] + cmp r0, #0 + beq _080793E0 + adds r4, r6, #0 + ldrb r0, [r4, #7] + movs r1, #0xdf + ands r1, r0 + strb r1, [r4, #7] + adds r0, r5, #0 + adds r0, #0x3d + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + ble _080793CA + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _080793CA + ldr r0, [r4, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + bne _080793CA + ldrb r0, [r4, #2] + cmp r0, #0 + bne _080793CA + bl sub_08077B2C + ldr r0, [r4, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + bne _080793C4 + movs r0, #0x8a + lsls r0, r0, #1 + strh r0, [r4, #8] + b _080793CA +_080793C4: + movs r0, #0x83 + lsls r0, r0, #3 + strh r0, [r6, #8] +_080793CA: + movs r1, #0xa0 + lsls r1, r1, #2 + adds r4, r5, #0 + adds r4, #0x3e + ldrb r2, [r4] + adds r0, r5, #0 + bl sub_080027EA + ldrb r0, [r4] + bl sub_0807A5B8 +_080793E0: + pop {r4, r5, r6, pc} + .align 2, 0 + + thumb_func_start sub_080793E4 +sub_080793E4: @ 0x080793E4 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r0, _080793FC @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08079408 + ldr r1, _08079400 @ =gUnk_0811C0F8 + ldr r0, _08079404 @ =gLinkEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + b _08079410 + .align 2, 0 +_080793FC: .4byte gUnk_03003F80 +_08079400: .4byte gUnk_0811C0F8 +_08079404: .4byte gLinkEntity +_08079408: + ldr r1, _08079448 @ =gUnk_0811C0F8 + ldr r0, _0807944C @ =gLinkEntity + ldrb r0, [r0, #0x15] + lsrs r0, r0, #2 +_08079410: + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r4, [r0] + bl sub_08079778 + cmp r0, #0 + beq _08079454 + ldr r0, _08079450 @ =gUnk_03003F80 + adds r0, #0x90 + ldrh r0, [r0] + ands r0, r4 + cmp r0, #0 + beq _08079454 + cmp r5, #0 + beq _08079442 + bl sub_0807A500 + ldr r1, _0807944C @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + adds r2, r5, #0 + bl sub_080002F0 + cmp r0, #0 + beq _08079454 +_08079442: + movs r0, #1 + b _08079456 + .align 2, 0 +_08079448: .4byte gUnk_0811C0F8 +_0807944C: .4byte gLinkEntity +_08079450: .4byte gUnk_03003F80 +_08079454: + movs r0, #0 +_08079456: + pop {r4, r5, pc} + + thumb_func_start sub_08079458 +sub_08079458: @ 0x08079458 + push {r4, r5, lr} + ldr r4, _08079498 @ =gLinkEntity + movs r1, #0 + movs r0, #0x19 + strb r0, [r4, #0xc] + str r1, [r4, #0x34] + str r1, [r4, #0x20] + adds r0, r4, #0 + adds r0, #0x42 + strb r1, [r0] + bl sub_08078EE4 + ldr r2, _0807949C @ =gUnk_03003F80 + ldr r1, [r2, #0x30] + movs r0, #0x80 + lsls r0, r0, #0xa + ands r0, r1 + cmp r0, #0 + bne _08079514 + movs r0, #0x80 + lsls r0, r0, #9 + ands r1, r0 + cmp r1, #0 + beq _080794E4 + adds r0, r2, #0 + adds r0, #0x84 + ldr r1, [r0] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x2e] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x32] + b _08079514 + .align 2, 0 +_08079498: .4byte gLinkEntity +_0807949C: .4byte gUnk_03003F80 +_080794A0: + ldr r2, _080794DC @ =gLinkEntity + ldr r0, [r4] + lsrs r0, r0, #0x1e + adds r1, r2, #0 + adds r1, #0x38 + strb r0, [r1] + ldr r3, _080794E0 @ =gUnk_03000BF0 + ldr r0, [r4] + movs r1, #0x3f + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r3, #6] + adds r0, r0, r1 + adds r0, #8 + strh r0, [r2, #0x2e] + ldr r0, [r4] + movs r1, #0xfc + lsls r1, r1, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r3, [r3, #8] + adds r0, r0, r3 + adds r0, #8 + strh r0, [r2, #0x32] + ldrb r1, [r2, #0x10] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x10] + b _08079514 + .align 2, 0 +_080794DC: .4byte gLinkEntity +_080794E0: .4byte gUnk_03000BF0 +_080794E4: + movs r5, #0 + ldr r1, [r2, #0x40] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _08079514 + adds r4, r2, #0 + adds r4, #0x40 +_080794F4: + ldr r1, [r4] + ldrh r0, [r4] + lsrs r1, r1, #0x1e + bl sub_080002E0 + cmp r0, #0xf + bne _080794A0 + adds r4, #4 + adds r5, #1 + cmp r5, #0xf + bhi _08079514 + ldr r1, [r4] + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + bne _080794F4 +_08079514: + ldr r0, _0807951C @ =gLinkEntity + bl sub_08016A04 + pop {r4, r5, pc} + .align 2, 0 +_0807951C: .4byte gLinkEntity + + thumb_func_start sub_08079520 +sub_08079520: @ 0x08079520 + push {lr} + adds r1, r0, #0 + ldr r0, _08079538 @ =gUnk_03003F80 + ldrb r0, [r0, #0xd] + cmp r0, #0x7f + ble _08079532 + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #3 +_08079532: + strb r0, [r1, #0x15] + pop {pc} + .align 2, 0 +_08079538: .4byte gUnk_03003F80 + + thumb_func_start sub_0807953C +sub_0807953C: @ 0x0807953C + ldr r1, _08079548 @ =0x00000F38 + ldr r0, _0807954C @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r0, [r0] + ands r0, r1 + bx lr + .align 2, 0 +_08079548: .4byte 0x00000F38 +_0807954C: .4byte gUnk_03003F80 + + thumb_func_start sub_08079550 +sub_08079550: @ 0x08079550 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + ldr r0, _080795A8 @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _08079562 + b _080796FC +_08079562: + ldr r2, _080795AC @ =gUnk_03003F80 + ldrb r0, [r2, #0x1e] + cmp r0, #0 + beq _08079576 + ldr r0, [r2, #0x30] + movs r1, #0x80 + lsls r1, r1, #3 + ands r0, r1 + cmp r0, #0 + beq _080795B4 +_08079576: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + ldr r1, _080795B0 @ =gLinkEntity + mov r8, r1 + cmp r0, #0 + bne _080795A0 + ldrb r1, [r2, #0x1b] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _080795A0 + mov r3, r8 + ldrb r1, [r3, #0x15] + ldrb r2, [r2, #0xd] + cmp r1, r2 + bne _080795A0 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _080795B4 +_080795A0: + movs r0, #0 + mov r5, r8 + strb r0, [r5, #0xf] + b _080796FE + .align 2, 0 +_080795A8: .4byte gUnk_03004030 +_080795AC: .4byte gUnk_03003F80 +_080795B0: .4byte gLinkEntity +_080795B4: + bl sub_08079778 + cmp r0, #0 + bne _080795BE + b _080796FC +_080795BE: + ldr r3, _08079610 @ =gLinkEntity + ldrb r2, [r3, #0x14] + movs r0, #6 + ands r0, r2 + ldr r1, _08079614 @ =gUnk_0811C100 + adds r1, r0, r1 + movs r0, #2 + ands r0, r2 + mov r8, r3 + cmp r0, #0 + beq _0807961C + movs r6, #0x2e + ldrsh r2, [r3, r6] + movs r0, #0 + ldrsb r0, [r1, r0] + adds r2, r2, r0 + ldr r4, _08079618 @ =gUnk_03000BF0 + ldrh r0, [r4, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + mov r0, r8 + movs r5, #0x32 + ldrsh r1, [r0, r5] + ldr r0, [r0, #0x48] + ldrb r5, [r0, #3] + adds r0, r1, r5 + ldrh r4, [r4, #8] + subs r0, r0, r4 + asrs r0, r0, #4 + ands r0, r3 + lsls r7, r0, #6 + orrs r7, r2 + subs r1, r1, r5 + subs r1, r1, r4 + asrs r1, r1, #4 + ands r1, r3 + lsls r4, r1, #6 + orrs r4, r2 + b _0807965E + .align 2, 0 +_08079610: .4byte gLinkEntity +_08079614: .4byte gUnk_0811C100 +_08079618: .4byte gUnk_03000BF0 +_0807961C: + mov r6, r8 + movs r0, #0x2e + ldrsh r2, [r6, r0] + ldr r0, [r6, #0x48] + ldrb r0, [r0, #4] + mov ip, r0 + adds r0, r2, r0 + ldr r4, _080796EC @ =gUnk_03000BF0 + ldrh r3, [r4, #6] + mov sb, r3 + subs r0, r0, r3 + asrs r7, r0, #4 + movs r3, #0x3f + ands r7, r3 + movs r5, #0x32 + ldrsh r0, [r6, r5] + ldrb r1, [r1, #1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + adds r0, r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r7, r0 + mov r6, ip + subs r2, r2, r6 + mov r1, sb + subs r2, r2, r1 + asrs r4, r2, #4 + ands r4, r3 + orrs r4, r0 +_0807965E: + adds r0, r7, #0 + mov r5, r8 + adds r5, #0x38 + ldrb r1, [r5] + bl sub_080002C8 + adds r3, r0, #0 + ldr r6, _080796F0 @ =gUnk_0811C1E8 + mov r1, r8 + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + adds r0, r3, #0 + bl sub_08007DD6 + adds r3, r0, #0 + cmp r3, #0 + beq _080796FC + adds r0, r4, #0 + ldrb r1, [r5] + bl sub_080002C8 + adds r3, r0, #0 + mov r5, r8 + ldrb r0, [r5, #0x14] + lsrs r0, r0, #1 + lsls r0, r0, #2 + adds r0, r0, r6 + ldr r1, [r0] + adds r0, r3, #0 + bl sub_08007DD6 + adds r3, r0, #0 + cmp r3, #0 + beq _080796FC + ldr r1, _080796F4 @ =gUnk_03003F80 + ldrb r2, [r1, #6] + movs r0, #0x80 + orrs r0, r2 + strb r0, [r1, #6] + ldrb r0, [r1, #0x1e] + adds r4, r1, #0 + cmp r0, #0 + bne _080796C8 + ldrb r0, [r5, #0xf] + adds r0, #1 + strb r0, [r5, #0xf] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _080796FC +_080796C8: + ldr r0, _080796F8 @ =gLinkEntity + subs r1, r3, #1 + movs r2, #0 + strb r1, [r0, #0x14] + movs r1, #4 + strb r1, [r0, #0xc] + strb r2, [r0, #0xd] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0x81 + strb r1, [r4, #2] + bl sub_08070680 + movs r0, #1 + b _080796FE + .align 2, 0 +_080796EC: .4byte gUnk_03000BF0 +_080796F0: .4byte gUnk_0811C1E8 +_080796F4: .4byte gUnk_03003F80 +_080796F8: .4byte gLinkEntity +_080796FC: + movs r0, #0 +_080796FE: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08079708 +sub_08079708: @ 0x08079708 + push {r4, lr} + ldr r4, _08079740 @ =gUnk_03003F80 + adds r2, r4, #0 + adds r2, #0xa8 + movs r3, #0 + movs r1, #0x12 + strb r1, [r2] + subs r2, #0x6c + movs r1, #0xff + strb r1, [r2] + ldrb r2, [r0, #0x10] + movs r1, #0x7f + ands r1, r2 + strb r1, [r0, #0x10] + movs r1, #0xa + strb r1, [r0, #0xc] + strb r3, [r0, #0xd] + bl sub_080085B0 + ldr r0, [r4, #0x30] + movs r1, #0x88 + lsls r1, r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0807973E + bl sub_0805E544 +_0807973E: + pop {r4, pc} + .align 2, 0 +_08079740: .4byte gUnk_03003F80 + + thumb_func_start sub_08079744 +sub_08079744: @ 0x08079744 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2, #0x2e] + movs r1, #0xf + ands r1, r0 + cmp r1, #8 + beq _0807975E + cmp r1, #8 + ble _0807975A + subs r0, #1 + b _0807975C +_0807975A: + adds r0, #1 +_0807975C: + strh r0, [r2, #0x2e] +_0807975E: + ldrh r0, [r2, #0x32] + movs r1, #0xf + ands r1, r0 + cmp r1, #8 + beq _08079774 + cmp r1, #8 + ble _08079770 + subs r0, #1 + b _08079772 +_08079770: + adds r0, #1 +_08079772: + strh r0, [r2, #0x32] +_08079774: + pop {pc} + .align 2, 0 + + thumb_func_start sub_08079778 +sub_08079778: @ 0x08079778 + push {lr} + ldr r0, _08079790 @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _0807979C + ldr r2, _08079794 @ =gUnk_0811C108 + ldr r1, _08079798 @ =gLinkEntity + ldrb r0, [r1, #0x14] + lsrs r0, r0, #1 + b _080797A4 + .align 2, 0 +_08079790: .4byte gUnk_03003F80 +_08079794: .4byte gUnk_0811C108 +_08079798: .4byte gLinkEntity +_0807979C: + ldr r2, _080797BC @ =gUnk_0811C108 + ldr r1, _080797C0 @ =gLinkEntity + ldrb r0, [r1, #0x15] + lsrs r0, r0, #2 +_080797A4: + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r2, [r0] + movs r3, #0 + ldrh r0, [r1, #0x2a] + ands r0, r2 + cmp r2, r0 + bne _080797B6 + movs r3, #1 +_080797B6: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_080797BC: .4byte gUnk_0811C108 +_080797C0: .4byte gLinkEntity + + thumb_func_start sub_080797C4 +sub_080797C4: @ 0x080797C4 + push {lr} + ldr r1, _080797E4 @ =gUnk_0811C110 + ldr r2, _080797E8 @ =gLinkEntity + ldrb r0, [r2, #0x15] + lsrs r0, r0, #3 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r1, [r0] + movs r3, #0 + ldrh r0, [r2, #0x2a] + ands r0, r1 + cmp r1, r0 + bne _080797E0 + movs r3, #1 +_080797E0: + adds r0, r3, #0 + pop {pc} + .align 2, 0 +_080797E4: .4byte gUnk_0811C110 +_080797E8: .4byte gLinkEntity + + thumb_func_start sub_080797EC +sub_080797EC: @ 0x080797EC + push {r4, r5, lr} + ldr r4, _08079804 @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807985C + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0807980C + ldr r5, _08079808 @ =0x00000934 + b _0807991E + .align 2, 0 +_08079804: .4byte gUnk_03003F80 +_08079808: .4byte 0x00000934 +_0807980C: + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079818 + movs r5, #0x82 + lsls r5, r5, #3 + b _0807991E +_08079818: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _080798A0 + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + movs r5, #0xa4 + lsls r5, r5, #2 + cmp r0, #0 + bne _0807991E + movs r5, #0xb6 + lsls r5, r5, #1 + ldrb r1, [r4, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + bne _080798C2 + lsls r0, r1, #0x18 + cmp r0, #0 + bne _080798CE + adds r1, r4, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _08079852 + movs r0, #1 + strb r0, [r1] +_08079852: + ldr r5, _08079858 @ =0x00000404 + b _0807991E + .align 2, 0 +_08079858: .4byte 0x00000404 +_0807985C: + ldrb r0, [r4, #0x1c] + cmp r0, #0 + bne _0807992E + ldrb r0, [r4, #5] + cmp r0, #0 + beq _0807986E + movs r5, #0xd2 + lsls r5, r5, #2 + b _0807991E +_0807986E: + ldrb r0, [r4, #0x1e] + cmp r0, #0 + beq _0807987A + movs r5, #0xa6 + lsls r5, r5, #2 + b _0807991E +_0807987A: + movs r0, #0x80 + lsls r0, r0, #5 + ands r1, r0 + cmp r1, #0 + beq _0807988A + movs r5, #0xe2 + lsls r5, r5, #3 + b _0807991E +_0807988A: + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079896 + movs r5, #0xb0 + lsls r5, r5, #1 + b _0807991E +_08079896: + adds r0, r4, #0 + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _080798A6 +_080798A0: + movs r5, #0xa1 + lsls r5, r5, #2 + b _0807991E +_080798A6: + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + movs r5, #0xa4 + lsls r5, r5, #2 + cmp r0, #0 + bne _0807991E + movs r5, #0xb6 + lsls r5, r5, #1 + ldrb r1, [r4, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + beq _080798C8 +_080798C2: + movs r0, #0x6c + strb r0, [r4] + b _0807992E +_080798C8: + lsls r0, r1, #0x18 + cmp r0, #0 + beq _080798FC +_080798CE: + movs r0, #0 + bl sub_080793E4 + cmp r0, #0 + beq _0807991E + bl sub_0807A500 + ldr r1, _080798F8 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + cmp r0, #0xff + beq _0807991E + ldrb r1, [r4, #0x1b] + movs r0, #0xf7 + ands r0, r1 + strb r0, [r4, #0x1b] + movs r5, #0xb8 + lsls r5, r5, #1 + b _0807991E + .align 2, 0 +_080798F8: .4byte gLinkEntity +_080798FC: + adds r1, r4, #0 + adds r1, #0xa8 + ldrb r0, [r1] + cmp r0, #0 + bne _0807990A + movs r0, #1 + strb r0, [r1] +_0807990A: + ldr r0, [r4, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + movs r5, #0x82 + lsls r5, r5, #1 + cmp r0, #0 + beq _0807991E + movs r5, #0xc1 + lsls r5, r5, #3 +_0807991E: + ldr r0, _08079930 @ =gUnk_03003F80 + strh r5, [r0, #8] + ldrb r0, [r0, #3] + cmp r0, #0 + bne _0807992E + ldr r0, _08079934 @ =gLinkEntity + bl sub_080042B8 +_0807992E: + pop {r4, r5, pc} + .align 2, 0 +_08079930: .4byte gUnk_03003F80 +_08079934: .4byte gLinkEntity + + thumb_func_start sub_08079938 +sub_08079938: @ 0x08079938 + push {r4, lr} + ldr r3, _08079954 @ =gUnk_03003F80 + ldr r2, [r3, #0x30] + movs r0, #8 + ands r0, r2 + mov ip, r3 + cmp r0, #0 + beq _080799E4 + ldrb r0, [r3, #5] + cmp r0, #0 + beq _0807995C + ldr r4, _08079958 @ =0x0000092C + b _08079AD8 + .align 2, 0 +_08079954: .4byte gUnk_03003F80 +_08079958: .4byte 0x0000092C +_0807995C: + mov r0, ip + adds r0, #0x3d + mov r3, ip + ldrb r1, [r3, #0x1c] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + beq _0807996E + b _08079B14 +_0807996E: + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + bne _08079A1E + mov r4, ip + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079988 + ldr r4, _08079984 @ =0x00000414 + b _08079AD8 + .align 2, 0 +_08079984: .4byte 0x00000414 +_08079988: + mov r0, ip + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + bne _08079A5C + mov r0, ip + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + bne _08079A6C + mov r0, ip + ldrb r1, [r0, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + beq _080799AA + b _08079B14 +_080799AA: + cmp r1, #0 + beq _080799B0 + b _08079AA4 +_080799B0: + mov r1, ip + ldrb r0, [r1, #4] + cmp r0, #0 + beq _080799BA + b _08079B14 +_080799BA: + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _080799D0 + ldr r0, _080799D8 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + cmp r0, #4 + bne _080799CC + b _08079AD4 +_080799CC: + cmp r0, #5 + bne _080799DC +_080799D0: + movs r4, #0x80 + lsls r4, r4, #3 + b _08079AD8 + .align 2, 0 +_080799D8: .4byte gUnk_02033A90 +_080799DC: + ldr r4, _080799E0 @ =0x000002C2 + b _08079AD8 + .align 2, 0 +_080799E0: .4byte 0x000002C2 +_080799E4: + mov r4, ip + ldrb r0, [r4, #5] + cmp r0, #0 + beq _080799F2 + movs r4, #0xd4 + lsls r4, r4, #2 + b _08079AD8 +_080799F2: + mov r0, ip + adds r0, #0x3d + mov r4, ip + ldrb r1, [r4, #0x1c] + ldrb r0, [r0] + orrs r0, r1 + cmp r0, #0 + beq _08079A04 + b _08079B14 +_08079A04: + movs r0, #0x80 + lsls r0, r0, #0xc + ands r0, r2 + cmp r0, #0 + beq _08079A14 + movs r4, #0x8b + lsls r4, r4, #4 + b _08079AD8 +_08079A14: + movs r0, #0x80 + lsls r0, r0, #0x12 + ands r0, r2 + cmp r0, #0 + beq _08079A24 +_08079A1E: + movs r4, #0x81 + lsls r4, r4, #4 + b _08079AD8 +_08079A24: + mov r1, ip + ldrb r0, [r1, #0x1e] + cmp r0, #0 + beq _08079A32 + movs r4, #0xa6 + lsls r4, r4, #2 + b _08079AD8 +_08079A32: + movs r0, #0x80 + lsls r0, r0, #5 + ands r0, r2 + cmp r0, #0 + beq _08079A44 + ldr r4, _08079A40 @ =0x0000070C + b _08079AD8 + .align 2, 0 +_08079A40: .4byte 0x0000070C +_08079A44: + mov r4, ip + ldrb r0, [r4, #3] + cmp r0, #0 + beq _08079A52 + movs r4, #0xb2 + lsls r4, r4, #1 + b _08079AD8 +_08079A52: + mov r0, ip + adds r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _08079A62 +_08079A5C: + movs r4, #0xa0 + lsls r4, r4, #2 + b _08079AD8 +_08079A62: + mov r0, ip + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08079A72 +_08079A6C: + movs r4, #0xa3 + lsls r4, r4, #2 + b _08079AD8 +_08079A72: + mov r0, ip + ldrb r1, [r0, #0x1b] + movs r0, #0x48 + ands r0, r1 + cmp r0, #0 + bne _08079B14 + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _08079AA0 + ldr r0, _08079A98 @ =gUnk_02033A90 + ldrb r0, [r0, #0x17] + ldr r4, _08079A9C @ =0x000002C2 + cmp r0, #4 + bne _08079AD8 + movs r4, #0xa6 + lsls r4, r4, #3 + b _08079AD8 + .align 2, 0 +_08079A98: .4byte gUnk_02033A90 +_08079A9C: .4byte 0x000002C2 +_08079AA0: + cmp r1, #0 + beq _08079AAA +_08079AA4: + movs r4, #0xb4 + lsls r4, r4, #1 + b _08079AD8 +_08079AAA: + ldrb r0, [r3, #4] + cmp r0, #0 + bne _08079B14 + ldr r0, [r3, #0x30] + movs r1, #0x80 + lsls r1, r1, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08079AD4 + ldr r0, _08079ACC @ =gUnk_03000B80 + adds r0, #0x63 + ldrb r0, [r0] + cmp r0, #0 + bne _08079B14 + ldr r4, _08079AD0 @ =0x00000604 + b _08079AD8 + .align 2, 0 +_08079ACC: .4byte gUnk_03000B80 +_08079AD0: .4byte 0x00000604 +_08079AD4: + movs r4, #0x80 + lsls r4, r4, #1 +_08079AD8: + mov r1, ip + strh r4, [r1, #8] + ldrb r0, [r1, #5] + cmp r0, #0 + bne _08079B10 + movs r3, #0 + movs r2, #0 + ldr r1, _08079B18 @ =gUnk_03000B80 +_08079AE8: + ldrb r0, [r1, #0xf] + cmp r0, r3 + bls _08079AF0 + adds r3, r0, #0 +_08079AF0: + adds r1, #0x1c + adds r2, #1 + cmp r2, #3 + bls _08079AE8 + mov r2, ip + ldrb r0, [r2, #0xe] + cmp r0, r3 + blo _08079B14 + lsls r0, r4, #0x18 + lsrs r0, r0, #0x18 + ldrb r3, [r2] + cmp r0, r3 + bne _08079B10 + ldr r0, _08079B1C @ =gLinkEntity + bl sub_080042B8 +_08079B10: + ldr r0, _08079B20 @ =gUnk_03003F80 + strb r4, [r0] +_08079B14: + pop {r4, pc} + .align 2, 0 +_08079B18: .4byte gUnk_03000B80 +_08079B1C: .4byte gLinkEntity +_08079B20: .4byte gUnk_03003F80 + + thumb_func_start sub_08079B24 +sub_08079B24: @ 0x08079B24 + push {r4, r5, lr} + ldr r2, _08079B60 @ =gLinkEntity + ldrb r0, [r2, #0xc] + cmp r0, #0xa + beq _08079BD4 + adds r0, r2, #0 + adds r0, #0x45 + ldrb r3, [r0] + cmp r3, #0 + bne _08079BD4 + ldr r4, _08079B64 @ =gUnk_03003F80 + ldr r1, [r4, #0x30] + ldr r0, _08079B68 @ =0xFEFFFFFF + ands r1, r0 + str r1, [r4, #0x30] + adds r0, r2, #0 + adds r0, #0x42 + strb r3, [r0] + ldrb r0, [r4, #7] + cmp r0, #0 + bne _08079BD4 + adds r0, r4, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _08079B6C + bl sub_08079458 + b _08079BC0 + .align 2, 0 +_08079B60: .4byte gLinkEntity +_08079B64: .4byte gUnk_03003F80 +_08079B68: .4byte 0xFEFFFFFF +_08079B6C: + ldrb r0, [r4, #0x14] + cmp r0, #0 + bne _08079BC0 + movs r3, #0x80 + lsls r3, r3, #5 + ands r3, r1 + cmp r3, #0 + bne _08079BC0 + movs r5, #0x36 + ldrsh r0, [r2, r5] + cmp r0, #0 + bge _08079BA6 + ldr r0, [r2, #0x20] + cmp r0, #0 + ble _08079B8C + str r3, [r2, #0x20] +_08079B8C: + ldrb r1, [r4, #2] + movs r3, #0x41 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + bne _08079BD4 + strb r3, [r4, #2] + movs r0, #0xff + strb r0, [r2, #0x15] + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r4, #0xd] + b _08079BD4 +_08079BA6: + movs r0, #2 + ands r1, r0 + cmp r1, #0 + bne _08079BC0 + bl sub_08079D48 + cmp r0, #0 + bne _08079BC0 + ldrb r0, [r4, #0xa] + movs r1, #0x10 + orrs r0, r1 + strb r0, [r4, #0xa] + b _08079BD4 +_08079BC0: + ldr r2, _08079BD0 @ =gLinkEntity + ldrb r1, [r2, #0x10] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2, #0x10] + movs r0, #0 + b _08079BD6 + .align 2, 0 +_08079BD0: .4byte gLinkEntity +_08079BD4: + movs r0, #1 +_08079BD6: + pop {r4, r5, pc} + + thumb_func_start sub_08079BD8 +sub_08079BD8: @ 0x08079BD8 + push {r4, r5, lr} + ldr r4, _08079C2C @ =gLinkEntity + ldr r1, [r4, #0x2c] + str r1, [r0, #0x2c] + ldr r1, [r4, #0x30] + str r1, [r0, #0x30] + ldr r1, [r4, #0x34] + str r1, [r0, #0x34] + adds r1, r4, #0 + adds r1, #0x38 + ldrb r2, [r1] + adds r1, r0, #0 + adds r1, #0x38 + strb r2, [r1] + ldrb r3, [r4, #0x19] + lsrs r3, r3, #6 + lsls r3, r3, #6 + ldrb r5, [r0, #0x19] + movs r2, #0x3f + adds r1, r2, #0 + ands r1, r5 + orrs r1, r3 + strb r1, [r0, #0x19] + ldrb r1, [r4, #0x1b] + lsrs r1, r1, #6 + lsls r1, r1, #6 + ldrb r3, [r0, #0x1b] + ands r2, r3 + orrs r2, r1 + strb r2, [r0, #0x1b] + adds r4, #0x29 + ldrb r2, [r4] + lsls r2, r2, #0x1d + adds r0, #0x29 + lsrs r2, r2, #0x1d + ldrb r3, [r0] + movs r1, #8 + rsbs r1, r1, #0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + pop {r4, r5, pc} + .align 2, 0 +_08079C2C: .4byte gLinkEntity + + thumb_func_start sub_08079C30 +sub_08079C30: @ 0x08079C30 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + ldr r0, _08079C68 @ =gUnk_03003F80 + ldrb r1, [r0, #0x14] + adds r7, r0, #0 + cmp r1, #0 + beq _08079C44 + b _08079D40 +_08079C44: + ldr r1, [r7, #0x30] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _08079D40 + movs r0, #0x80 + ands r1, r0 + cmp r1, #0 + bne _08079D36 + ldrb r0, [r7, #0x13] + subs r0, #0xd + cmp r0, #0x1d + bhi _08079CE8 + lsls r0, r0, #2 + ldr r1, _08079C6C @ =_08079C70 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08079C68: .4byte gUnk_03003F80 +_08079C6C: .4byte _08079C70 +_08079C70: @ jump table + .4byte _08079D36 @ case 0 + .4byte _08079D36 @ case 1 + .4byte _08079D36 @ case 2 + .4byte _08079D36 @ case 3 + .4byte _08079CE8 @ case 4 + .4byte _08079CE8 @ case 5 + .4byte _08079CE8 @ case 6 + .4byte _08079D36 @ case 7 + .4byte _08079CE8 @ case 8 + .4byte _08079CE8 @ case 9 + .4byte _08079D36 @ case 10 + .4byte _08079CE8 @ case 11 + .4byte _08079CE8 @ case 12 + .4byte _08079CE8 @ case 13 + .4byte _08079CE8 @ case 14 + .4byte _08079CE8 @ case 15 + .4byte _08079CE8 @ case 16 + .4byte _08079CE8 @ case 17 + .4byte _08079CE8 @ case 18 + .4byte _08079CE8 @ case 19 + .4byte _08079CE8 @ case 20 + .4byte _08079CE8 @ case 21 + .4byte _08079CE8 @ case 22 + .4byte _08079CE8 @ case 23 + .4byte _08079CE8 @ case 24 + .4byte _08079CE8 @ case 25 + .4byte _08079CE8 @ case 26 + .4byte _08079CE8 @ case 27 + .4byte _08079CE8 @ case 28 + .4byte _08079D36 @ case 29 +_08079CE8: + mov r8, r7 + mov r0, r8 + ldrb r4, [r0, #0x12] + movs r2, #1 + rsbs r2, r2, #0 + adds r0, r6, #0 + movs r1, #0 + bl sub_080002B4 + ldr r5, _08079D3C @ =gUnk_08007CAC + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 + mov r0, r8 + ldrb r4, [r0, #0x12] + adds r0, r6, #0 + movs r1, #2 + movs r2, #0 + bl sub_080002B4 + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 + ldrb r4, [r7, #0x12] + movs r1, #2 + rsbs r1, r1, #0 + adds r0, r6, #0 + movs r2, #0 + bl sub_080002B4 + adds r1, r5, #0 + bl sub_08007DD6 + cmp r4, r0 + bne _08079D40 +_08079D36: + movs r0, #1 + b _08079D42 + .align 2, 0 +_08079D3C: .4byte gUnk_08007CAC +_08079D40: + movs r0, #0 +_08079D42: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08079D48 +sub_08079D48: @ 0x08079D48 + push {r4, lr} + ldr r4, _08079D78 @ =gLinkEntity + adds r0, r4, #0 + bl sub_08079C30 + cmp r0, #0 + beq _08079D72 + bl sub_08008B22 + cmp r0, #0 + bne _08079D80 + adds r0, r4, #0 + bl sub_080002B8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r1, _08079D7C @ =gUnk_0811C268 + bl sub_08007DD6 + cmp r0, #0 + bne _08079D80 +_08079D72: + movs r0, #1 + b _08079D82 + .align 2, 0 +_08079D78: .4byte gLinkEntity +_08079D7C: .4byte gUnk_0811C268 +_08079D80: + movs r0, #0 +_08079D82: + pop {r4, pc} + + thumb_func_start sub_08079D84 +sub_08079D84: @ 0x08079D84 + push {lr} + ldr r3, _08079DC0 @ =gLinkEntity + ldrb r0, [r3, #0xc] + cmp r0, #1 + beq _08079D92 + cmp r0, #0x18 + bne _08079DBE +_08079D92: + ldr r2, _08079DC4 @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x38 + movs r0, #0x9c + strb r0, [r1] + adds r1, #1 + movs r0, #2 + strb r0, [r1] + adds r1, #1 + movs r0, #0x3c + strb r0, [r1] + movs r0, #0xe + strb r0, [r2, #0xc] + adds r1, r3, #0 + adds r1, #0x3d + movs r0, #0x7c + strb r0, [r1] + bl sub_08077B20 + ldr r0, _08079DC8 @ =0x00000193 + bl sub_080A3268 +_08079DBE: + pop {pc} + .align 2, 0 +_08079DC0: .4byte gLinkEntity +_08079DC4: .4byte gUnk_03003F80 +_08079DC8: .4byte 0x00000193 + + thumb_func_start sub_08079DCC +sub_08079DCC: @ 0x08079DCC + push {lr} + ldr r0, _08079DFC @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #1 + bne _08079DF8 + ldr r3, _08079E00 @ =gUnk_03003F80 + adds r1, r3, #0 + adds r1, #0x38 + movs r2, #0 + movs r0, #0xa0 + strb r0, [r1] + adds r1, #1 + movs r0, #3 + strb r0, [r1] + adds r0, r3, #0 + adds r0, #0x3a + strb r2, [r0] + movs r0, #0xe + strb r0, [r3, #0xc] + ldr r0, _08079E04 @ =0x00000193 + bl sub_080A3268 +_08079DF8: + pop {pc} + .align 2, 0 +_08079DFC: .4byte gLinkEntity +_08079E00: .4byte gUnk_03003F80 +_08079E04: .4byte 0x00000193 + + thumb_func_start sub_08079E08 +sub_08079E08: @ 0x08079E08 + push {r4, lr} + ldr r0, _08079E50 @ =gLinkEntity + ldrh r2, [r0, #0x24] + movs r3, #0x24 + ldrsh r1, [r0, r3] + adds r4, r0, #0 + cmp r1, #0 + beq _08079E2E + ldr r0, _08079E54 @ =gUnk_03003F80 + adds r0, #0x80 + ldrh r0, [r0] + adds r0, r2, r0 + strh r0, [r4, #0x24] + lsls r0, r0, #0x10 + asrs r0, r0, #0x10 + cmp r0, #0x1f + bgt _08079E2E + movs r0, #0x20 + strh r0, [r4, #0x24] +_08079E2E: + adds r2, r4, #0 + ldrb r1, [r2, #0x15] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08079E40 + ldrb r0, [r2, #0x15] + bl sub_08079E90 +_08079E40: + adds r0, r4, #0 + bl sub_0800857C + ldrb r0, [r4, #0x15] + bl sub_0807A5B8 + pop {r4, pc} + .align 2, 0 +_08079E50: .4byte gLinkEntity +_08079E54: .4byte gUnk_03003F80 + + thumb_func_start sub_08079E58 +sub_08079E58: @ 0x08079E58 + push {r4, r5, r6, lr} + adds r6, r0, #0 + adds r4, r1, #0 + ldr r5, _08079E8C @ =gLinkEntity + ldrb r1, [r5, #0x15] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _08079E70 + adds r0, r4, #0 + bl sub_08079E90 +_08079E70: + adds r0, r5, #0 + bl sub_080085B0 + lsls r1, r6, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + adds r0, r5, #0 + bl sub_080027EA + adds r0, r4, #0 + bl sub_0807A5B8 + pop {r4, r5, r6, pc} + .align 2, 0 +_08079E8C: .4byte gLinkEntity + + thumb_func_start sub_08079E90 +sub_08079E90: @ 0x08079E90 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldr r1, _08079EBC @ =gLinkEntity + ldrb r2, [r1, #0x15] + movs r0, #8 + ands r0, r2 + adds r7, r1, #0 + cmp r0, #0 + beq _08079ECA + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + beq _08079EC0 + ldr r0, [r7, #0x48] + ldrb r0, [r0, #2] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 + b _08079EC4 + .align 2, 0 +_08079EBC: .4byte gLinkEntity +_08079EC0: + ldr r0, [r7, #0x48] + ldrb r5, [r0, #2] +_08079EC4: + ldr r0, [r7, #0x48] + ldrb r4, [r0, #3] + b _08079EDE +_08079ECA: + ldr r0, [r7, #0x48] + ldrb r5, [r0, #4] + cmp r2, #0 + beq _08079ED6 + ldrb r4, [r0, #5] + b _08079EDE +_08079ED6: + ldrb r0, [r0, #5] + rsbs r0, r0, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 +_08079EDE: + lsls r0, r5, #0x10 + asrs r0, r0, #0x10 + mov r8, r0 + lsls r0, r4, #0x10 + asrs r6, r0, #0x10 + adds r0, r7, #0 + mov r1, r8 + adds r2, r6, #0 + bl sub_080002CC + adds r1, r0, #0 + mov r0, sb + bl sub_08079F48 + cmp r0, #0 + bne _08079F3C + ldrb r1, [r7, #0x15] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _08079F10 + rsbs r0, r6, #0 + lsls r0, r0, #0x10 + lsrs r4, r0, #0x10 + b _08079F18 +_08079F10: + mov r1, r8 + rsbs r0, r1, #0 + lsls r0, r0, #0x10 + lsrs r5, r0, #0x10 +_08079F18: + ldr r0, _08079F38 @ =gLinkEntity + lsls r1, r5, #0x10 + asrs r1, r1, #0x10 + lsls r2, r4, #0x10 + asrs r2, r2, #0x10 + bl sub_080002CC + adds r1, r0, #0 + mov r0, sb + bl sub_08079F48 + cmp r0, #0 + bne _08079F3C + movs r0, #0 + b _08079F3E + .align 2, 0 +_08079F38: .4byte gLinkEntity +_08079F3C: + movs r0, #1 +_08079F3E: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_08079F48 +sub_08079F48: @ 0x08079F48 + push {lr} + ldr r3, _08079F60 @ =gUnk_0811C118 + lsrs r2, r0, #2 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, r1 + bne _08079F68 + ldr r0, _08079F64 @ =gLinkEntity + ldrb r1, [r0, #0x15] + adds r1, #4 + b _08079F7C + .align 2, 0 +_08079F60: .4byte gUnk_0811C118 +_08079F64: .4byte gLinkEntity +_08079F68: + adds r0, r2, #1 + adds r0, r0, r3 + ldrb r0, [r0] + cmp r0, r1 + beq _08079F76 + movs r0, #0 + b _08079F84 +_08079F76: + ldr r0, _08079F88 @ =gLinkEntity + ldrb r1, [r0, #0x15] + subs r1, #4 +_08079F7C: + movs r2, #0x1f + ands r1, r2 + strb r1, [r0, #0x15] + movs r0, #1 +_08079F84: + pop {pc} + .align 2, 0 +_08079F88: .4byte gLinkEntity + + thumb_func_start sub_08079F8C +sub_08079F8C: @ 0x08079F8C + push {lr} + ldr r2, _08079FB4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _08079FB8 @ =0x22189B75 + ands r0, r1 + cmp r0, #0 + bne _08079FB0 + adds r0, r2, #0 + adds r0, #0x3c + ldrb r0, [r0] + cmp r0, #0 + bne _08079FB0 + ldr r0, _08079FBC @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #3 + beq _08079FB0 + cmp r0, #0xb + bne _08079FC0 +_08079FB0: + movs r0, #0 + b _08079FC2 + .align 2, 0 +_08079FB4: .4byte gUnk_03003F80 +_08079FB8: .4byte 0x22189B75 +_08079FBC: .4byte gLinkEntity +_08079FC0: + movs r0, #1 +_08079FC2: + pop {pc} + + thumb_func_start sub_08079FC4 +sub_08079FC4: @ 0x08079FC4 + push {lr} + adds r1, r0, #0 + ldr r0, _08079FD0 @ =gLinkEntity + bl sub_08079FD4 + pop {pc} + .align 2, 0 +_08079FD0: .4byte gLinkEntity + + thumb_func_start sub_08079FD4 +sub_08079FD4: @ 0x08079FD4 + push {r4, r5, r6, lr} + sub sp, #4 + adds r5, r0, #0 + movs r0, #0x2e + ldrsh r2, [r5, r0] + ldr r3, _0807A008 @ =gUnk_03000BF0 + ldrh r0, [r3, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r4, #0x3f + ands r2, r4 + movs r6, #0x32 + ldrsh r0, [r5, r6] + ldrh r3, [r3, #8] + subs r0, r0, r3 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r2, r0 + lsls r2, r2, #1 + ldr r6, _0807A00C @ =gUnk_02027EB4 + cmp r1, #2 + bne _0807A004 + ldr r6, _0807A010 @ =gUnk_0200D654 +_0807A004: + movs r4, #0 + b _0807A028 + .align 2, 0 +_0807A008: .4byte gUnk_03000BF0 +_0807A00C: .4byte gUnk_02027EB4 +_0807A010: .4byte gUnk_0200D654 +_0807A014: + cmp r1, #0x23 + beq _0807A028 + cmp r1, #0x27 + beq _0807A028 + ldr r0, _0807A04C @ =gUnk_080082DC + subs r1, #0x10 + adds r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + beq _0807A046 +_0807A028: + adds r4, #1 + adds r0, r5, #0 + mov r1, sp + bl sub_08004202 + adds r2, r0, #0 + lsrs r0, r2, #1 + adds r0, r6, r0 + ldrb r1, [r0] + cmp r1, #0xe + bls _0807A046 + cmp r1, #0xf + bls _0807A028 + cmp r1, #0x1d + bne _0807A014 +_0807A046: + adds r0, r4, #0 + add sp, #4 + pop {r4, r5, r6, pc} + .align 2, 0 +_0807A04C: .4byte gUnk_080082DC + + thumb_func_start sub_0807A050 +sub_0807A050: @ 0x0807A050 + push {lr} + ldr r3, _0807A088 @ =gUnk_03003F80 + ldrb r2, [r3, #0xf] + cmp r2, #0 + beq _0807A06A + ldr r0, _0807A08C @ =gUnk_02000050 + ldrb r1, [r0] + movs r0, #0x7f + ands r0, r1 + cmp r0, #0 + bne _0807A06A + subs r0, r2, #1 + strb r0, [r3, #0xf] +_0807A06A: + movs r0, #0 + bl sub_0807A094 + adds r1, r0, #0 + ldr r0, _0807A088 @ =gUnk_03003F80 + adds r0, #0x83 + ldrb r2, [r0] + cmp r1, r2 + beq _0807A084 + strb r1, [r0] + ldr r0, _0807A090 @ =gLinkEntity + bl sub_0801D2B4 +_0807A084: + pop {pc} + .align 2, 0 +_0807A088: .4byte gUnk_03003F80 +_0807A08C: .4byte gUnk_02000050 +_0807A090: .4byte gLinkEntity + + thumb_func_start sub_0807A094 +sub_0807A094: @ 0x0807A094 + push {r4, r5, lr} + adds r3, r0, #0 + movs r2, #0x16 + ldr r0, _0807A0AC @ =gUnk_03003F80 + ldrb r0, [r0, #0xf] + cmp r0, #0 + beq _0807A0B0 + movs r2, #0x1b + cmp r0, #0x78 + bls _0807A104 + movs r2, #0x1a + b _0807A104 + .align 2, 0 +_0807A0AC: .4byte gUnk_03003F80 +_0807A0B0: + ldr r0, _0807A0F0 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xb2 + ldrb r1, [r1] + adds r5, r0, #0 + cmp r1, #0 + beq _0807A104 + movs r4, #1 + cmp r3, #0 + bne _0807A0D6 + adds r0, #0xc4 + ldrh r1, [r0] + cmp r1, #0xb3 + bhi _0807A0D6 + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807A0D6 + movs r4, #0 +_0807A0D6: + cmp r4, #0 + beq _0807A104 + adds r0, r5, #0 + adds r0, #0xb2 + ldrb r0, [r0] + cmp r0, #0x30 + beq _0807A102 + cmp r0, #0x30 + bgt _0807A0F4 + cmp r0, #0x2f + beq _0807A0FA + b _0807A102 + .align 2, 0 +_0807A0F0: .4byte gUnk_02002A40 +_0807A0F4: + cmp r0, #0x31 + beq _0807A0FE + b _0807A102 +_0807A0FA: + movs r2, #0x18 + b _0807A104 +_0807A0FE: + movs r2, #0x17 + b _0807A104 +_0807A102: + movs r2, #0x19 +_0807A104: + adds r0, r2, #0 + pop {r4, r5, pc} + + thumb_func_start sub_0807A108 +sub_0807A108: @ 0x0807A108 + push {lr} + ldr r1, _0807A148 @ =gUnk_03004040 + movs r0, #0 + str r0, [r1] + str r0, [r1, #4] + str r0, [r1, #8] + ldr r2, _0807A14C @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + ldr r1, _0807A150 @ =0xFFBFFFFF + ands r0, r1 + str r0, [r2, #0x30] + ldr r0, _0807A154 @ =gLinkEntity + ldrb r0, [r0, #0xc] + cmp r0, #0x17 + bne _0807A130 + adds r0, r2, #0 + adds r0, #0xa0 + ldrb r0, [r0] + cmp r0, #4 + beq _0807A144 +_0807A130: + adds r1, r2, #0 + adds r1, #0xa0 + ldrb r0, [r1] + subs r0, #4 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #1 + bhi _0807A144 + movs r0, #1 + strb r0, [r1] +_0807A144: + pop {pc} + .align 2, 0 +_0807A148: .4byte gUnk_03004040 +_0807A14C: .4byte gUnk_03003F80 +_0807A150: .4byte 0xFFBFFFFF +_0807A154: .4byte gLinkEntity + + thumb_func_start sub_0807A158 +sub_0807A158: @ 0x0807A158 + push {r4, lr} + ldr r4, _0807A178 @ =gUnk_02002A40 + adds r0, r4, #0 + adds r0, #0xb4 + ldrb r0, [r0] + bl sub_0805449C + cmp r0, #0 + bne _0807A17C + adds r0, r4, #0 + adds r0, #0xb5 + ldrb r0, [r0] + bl sub_0805449C + b _0807A17E + .align 2, 0 +_0807A178: .4byte gUnk_02002A40 +_0807A17C: + movs r0, #1 +_0807A17E: + pop {r4, pc} + + thumb_func_start sub_0807A180 +sub_0807A180: @ 0x0807A180 + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + sub sp, #0x88 + adds r4, r0, #0 + adds r5, r1, #0 + adds r6, r2, #0 + mov r8, r3 + ldr r3, _0807A1B4 @ =0xFFFC0000 + mov r1, sp + movs r2, #0 + bl sub_0806FA48 + mov r1, sp + ldrb r0, [r4, #0x14] + strb r0, [r1, #0x14] + mov r0, sp + adds r1, r5, #0 + adds r2, r6, #0 + mov r3, r8 + bl sub_08003FDE + add sp, #0x88 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, pc} + .align 2, 0 +_0807A1B4: .4byte 0xFFFC0000 + + thumb_func_start sub_0807A1B8 +sub_0807A1B8: @ 0x0807A1B8 + push {r4, lr} + ldr r4, _0807A1DC @ =gLinkEntity + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0807A1E8 + ldr r1, _0807A1E0 @ =gUnk_03003F80 + strb r0, [r1, #0x12] + ldr r2, _0807A1E4 @ =gUnk_0811C120 + ldrb r0, [r1, #0x12] + lsls r0, r0, #2 + adds r0, r0, r2 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_0807A1DC: .4byte gLinkEntity +_0807A1E0: .4byte gUnk_03003F80 +_0807A1E4: .4byte gUnk_0811C120 + + thumb_func_start sub_0807A1E8 +sub_0807A1E8: @ 0x0807A1E8 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r5, r0, #0 + adds r6, r1, #0 + mov r8, r2 + movs r1, #0x2e + ldrsh r0, [r5, r1] + adds r0, r0, r6 + ldr r2, _0807A288 @ =gUnk_03000BF0 + ldrh r1, [r2, #6] + subs r1, r0, r1 + lsrs r4, r1, #4 + movs r3, #0x3f + ands r4, r3 + movs r7, #0x32 + ldrsh r1, [r5, r7] + add r1, r8 + ldrh r2, [r2, #8] + subs r2, r1, r2 + asrs r2, r2, #4 + ands r2, r3 + lsls r2, r2, #6 + orrs r4, r2 + ldr r2, _0807A28C @ =gLinkEntity + adds r2, #0x38 + ldrb r2, [r2] + bl sub_080002A4 + adds r2, r0, #0 + ldr r1, _0807A290 @ =gUnk_03003F80 + ldrh r0, [r1, #0x24] + cmp r2, r0 + beq _0807A23A + adds r3, r1, #0 + adds r3, #0x37 + movs r0, #0 + strb r0, [r3] + ldrh r7, [r1, #0x24] + cmp r2, r7 + bne _0807A242 +_0807A23A: + adds r3, r1, #0 + ldrh r0, [r3, #0x22] + cmp r4, r0 + beq _0807A24E +_0807A242: + ldr r0, _0807A290 @ =gUnk_03003F80 + movs r1, #0 + strh r4, [r0, #0x22] + strh r2, [r0, #0x24] + strb r1, [r0, #0x11] + adds r3, r0, #0 +_0807A24E: + adds r2, r3, #0 + ldrb r1, [r2, #0x11] + adds r0, r1, #0 + cmp r0, #0xff + beq _0807A25C + adds r0, r1, #1 + strb r0, [r2, #0x11] +_0807A25C: + adds r2, #0x37 + ldrb r1, [r2] + adds r0, r1, #0 + cmp r0, #0xff + beq _0807A26A + adds r0, r1, #1 + strb r0, [r2] +_0807A26A: + ldrb r0, [r3, #0x12] + strb r0, [r3, #0x13] + adds r0, r5, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_080002B4 + adds r2, r0, #0 + ldr r1, _0807A294 @ =gUnk_08007CAC + bl sub_08007DD6 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807A288: .4byte gUnk_03000BF0 +_0807A28C: .4byte gLinkEntity +_0807A290: .4byte gUnk_03003F80 +_0807A294: .4byte gUnk_08007CAC + + thumb_func_start sub_0807A298 +sub_0807A298: @ 0x0807A298 + movs r1, #0 + strb r1, [r0, #0xb] + ldrb r1, [r0, #0x18] + movs r2, #3 + orrs r1, r2 + strb r1, [r0, #0x18] + ldr r2, _0807A2B4 @ =gUnk_03003F80 + ldr r0, [r2, #0x30] + movs r1, #0x41 + rsbs r1, r1, #0 + ands r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_0807A2B4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807A2B8 +sub_0807A2B8: @ 0x0807A2B8 + push {lr} + bl sub_08008B22 + cmp r0, #0 + beq _0807A2C6 + movs r0, #1 + b _0807A2EC +_0807A2C6: + ldr r0, _0807A2F0 @ =gUnk_03003F80 + ldrb r1, [r0, #2] + movs r0, #0xc8 + ands r0, r1 + cmp r0, #0 + bne _0807A2EA + ldr r1, _0807A2F4 @ =gLinkEntity + adds r0, r1, #0 + adds r0, #0x38 + ldrb r0, [r0] + cmp r0, #1 + beq _0807A2EA + adds r0, r1, #0 + movs r1, #0x44 + movs r2, #0 + movs r3, #0 + bl sub_080A2988 +_0807A2EA: + movs r0, #0 +_0807A2EC: + pop {pc} + .align 2, 0 +_0807A2F0: .4byte gUnk_03003F80 +_0807A2F4: .4byte gLinkEntity + + thumb_func_start sub_0807A2F8 +sub_0807A2F8: @ 0x0807A2F8 + 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 + ldr r0, _0807A364 @ =gUnk_03000BF0 + mov r8, r0 + ldrb r0, [r0, #4] + cmp r0, #8 + bne _0807A312 + b _0807A4F2 +_0807A312: + bl sub_08079778 + orrs r0, r4 + cmp r0, #0 + bne _0807A31E + b _0807A4F2 +_0807A31E: + ldr r7, _0807A368 @ =gLinkEntity + ldrb r1, [r7, #0x14] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807A36C + movs r1, #0x2e + ldrsh r2, [r7, r1] + mov r6, r8 + ldrh r0, [r6, #6] + subs r2, r2, r0 + asrs r2, r2, #4 + movs r3, #0x3f + ands r2, r3 + movs r0, #0x32 + ldrsh r1, [r7, r0] + ldr r0, [r7, #0x48] + ldrb r5, [r0, #5] + adds r0, r1, r5 + ldrh r4, [r6, #8] + subs r0, r0, r4 + asrs r0, r0, #4 + ands r0, r3 + lsls r0, r0, #6 + orrs r0, r2 + lsls r7, r0, #1 + subs r1, r1, r5 + subs r1, r1, r4 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r2, r1 + lsls r6, r2, #1 + b _0807A3A2 + .align 2, 0 +_0807A364: .4byte gUnk_03000BF0 +_0807A368: .4byte gLinkEntity +_0807A36C: + movs r1, #0x2e + ldrsh r3, [r7, r1] + ldr r0, [r7, #0x48] + ldrb r6, [r0, #2] + adds r1, r3, r6 + mov r2, r8 + ldrh r5, [r2, #6] + subs r1, r1, r5 + asrs r1, r1, #4 + movs r4, #0x3f + ands r1, r4 + movs r2, #0x32 + ldrsh r0, [r7, r2] + mov r7, r8 + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r4 + lsls r0, r0, #6 + orrs r1, r0 + lsls r7, r1, #1 + subs r3, r3, r6 + subs r3, r3, r5 + asrs r3, r3, #4 + ands r3, r4 + orrs r3, r0 + lsls r6, r3, #1 +_0807A3A2: + movs r0, #0 + mov sb, r0 + ldr r1, _0807A3F4 @ =gLinkEntity + mov sl, r1 +_0807A3AA: + movs r2, #0 + mov r8, r2 + mov r0, sl + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 + lsrs r4, r7, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0807A3FC + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + mov r1, sl + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002C8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + mov r2, sl + ldrb r1, [r2, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #2 + ldr r2, _0807A3F8 @ =gUnk_0811C1D8 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_08007DD6 + cmp r0, #0 + beq _0807A468 + b _0807A400 + .align 2, 0 +_0807A3F4: .4byte gLinkEntity +_0807A3F8: .4byte gUnk_0811C1D8 +_0807A3FC: + movs r0, #1 + mov r8, r0 +_0807A400: + ldr r5, _0807A444 @ =gLinkEntity + adds r0, r5, #0 + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 + lsrs r4, r6, #1 + adds r0, r4, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + beq _0807A44C + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + adds r1, r5, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002C8 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldrb r1, [r5, #0x14] + lsrs r1, r1, #1 + lsls r1, r1, #2 + ldr r2, _0807A448 @ =gUnk_0811C1D8 + adds r1, r1, r2 + ldr r1, [r1] + bl sub_08007DD6 + cmp r0, #0 + beq _0807A468 + b _0807A450 + .align 2, 0 +_0807A444: .4byte gLinkEntity +_0807A448: .4byte gUnk_0811C1D8 +_0807A44C: + movs r0, #1 + add r8, r0 +_0807A450: + mov r1, r8 + cmp r1, #2 + bne _0807A45E + mov r2, sb + cmp r2, #0 + bne _0807A46E + b _0807A4F2 +_0807A45E: + movs r0, #1 + add sb, r0 + mov r1, sb + cmp r1, #1 + bls _0807A3AA +_0807A468: + mov r2, sb + cmp r2, #0 + beq _0807A4F2 +_0807A46E: + bl sub_08052660 + cmp r0, #0 + beq _0807A4B0 + ldr r4, _0807A4AC @ =gLinkEntity + adds r0, r4, #0 + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 + lsrs r0, r7, #1 + movs r1, #2 + bl sub_080002E0 + cmp r0, #0 + bne _0807A4F2 + adds r0, r4, #0 + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 + lsrs r0, r6, #1 + movs r1, #2 +_0807A4A0: + bl sub_080002E0 + cmp r0, #0 + beq _0807A4EC + b _0807A4F2 + .align 2, 0 +_0807A4AC: .4byte gLinkEntity +_0807A4B0: + mov r0, sb + cmp r0, #2 + bne _0807A4C2 + ldr r0, _0807A4E8 @ =gLinkEntity + mov r1, sp + adds r2, r7, #0 + bl sub_08004202 + adds r7, r0, #0 +_0807A4C2: + lsrs r0, r7, #1 + movs r1, #1 + bl sub_080002E0 + cmp r0, #0 + bne _0807A4F2 + mov r1, sb + cmp r1, #2 + bne _0807A4E0 + ldr r0, _0807A4E8 @ =gLinkEntity + mov r1, sp + adds r2, r6, #0 + bl sub_08004202 + adds r6, r0, #0 +_0807A4E0: + lsrs r0, r6, #1 + movs r1, #1 + b _0807A4A0 + .align 2, 0 +_0807A4E8: .4byte gLinkEntity +_0807A4EC: + mov r0, sb + adds r0, #1 + b _0807A4F4 +_0807A4F2: + movs r0, #0 +_0807A4F4: + 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_0807A500 +sub_0807A500: @ 0x0807A500 + push {r4, r5, r6, lr} + ldr r6, _0807A518 @ =gLinkEntity + ldrb r0, [r6, #0x14] + lsrs r0, r0, #1 + cmp r0, #1 + beq _0807A574 + cmp r0, #1 + bgt _0807A51C + cmp r0, #0 + beq _0807A526 + b _0807A5B4 + .align 2, 0 +_0807A518: .4byte gLinkEntity +_0807A51C: + cmp r0, #2 + beq _0807A554 + cmp r0, #3 + beq _0807A580 + b _0807A5B4 +_0807A526: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r5, _0807A550 @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r4, #0x3f + ands r0, r4 + movs r2, #0x32 + ldrsh r1, [r6, r2] + ldr r3, [r6, #0x48] + ldrb r2, [r3, #5] + subs r1, r1, r2 + movs r2, #1 + ldrsb r2, [r3, r2] + adds r1, r1, r2 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + b _0807A5AA + .align 2, 0 +_0807A550: .4byte gUnk_03000BF0 +_0807A554: + movs r5, #0x2e + ldrsh r0, [r6, r5] + ldr r4, _0807A570 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + ldr r2, [r6, #0x48] + movs r5, #0x32 + ldrsh r1, [r6, r5] + ldrb r5, [r2, #5] + adds r1, r1, r5 + b _0807A59A + .align 2, 0 +_0807A570: .4byte gUnk_03000BF0 +_0807A574: + ldr r2, [r6, #0x48] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldrb r5, [r2, #2] + adds r0, r0, r5 + b _0807A58A +_0807A580: + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldr r2, [r6, #0x48] + ldrb r1, [r2, #2] + subs r0, r0, r1 +_0807A58A: + ldr r4, _0807A5B0 @ =gUnk_03000BF0 + ldrh r1, [r4, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r6, r5] +_0807A59A: + ldrb r2, [r2, #1] + lsls r2, r2, #0x18 + asrs r2, r2, #0x18 + adds r1, r1, r2 + ldrh r2, [r4, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 +_0807A5AA: + lsls r1, r1, #6 + orrs r0, r1 + b _0807A5B6 + .align 2, 0 +_0807A5B0: .4byte gUnk_03000BF0 +_0807A5B4: + movs r0, #0 +_0807A5B6: + pop {r4, r5, r6, pc} + + thumb_func_start sub_0807A5B8 +sub_0807A5B8: @ 0x0807A5B8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + ldr r2, _0807A5F8 @ =gUnk_03003F80 + ldrb r3, [r2, #2] + movs r4, #0x80 + adds r0, r4, #0 + ands r0, r3 + cmp r0, #0 + beq _0807A5D2 + b _0807A736 +_0807A5D2: + ldr r1, [r2, #0x30] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0807A5DE + b _0807A736 +_0807A5DE: + adds r0, r2, #0 + adds r0, #0x26 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A5EA + b _0807A736 +_0807A5EA: + adds r0, r1, #0 + ands r0, r4 + cmp r0, #0 + beq _0807A600 + ldr r7, _0807A5FC @ =gUnk_0800833C + b _0807A63A + .align 2, 0 +_0807A5F8: .4byte gUnk_03003F80 +_0807A5FC: .4byte gUnk_0800833C +_0807A600: + movs r0, #0x80 + lsls r0, r0, #0x11 + ands r1, r0 + cmp r1, #0 + bne _0807A60E + cmp r3, #0 + beq _0807A618 +_0807A60E: + ldr r7, _0807A614 @ =gUnk_0800845C + b _0807A63A + .align 2, 0 +_0807A614: .4byte gUnk_0800845C +_0807A618: + ldrb r0, [r2, #5] + cmp r0, #0 + bne _0807A624 + ldrb r0, [r2, #0x1c] + cmp r0, #0 + beq _0807A62C +_0807A624: + ldr r7, _0807A628 @ =gUnk_080084BC + b _0807A63A + .align 2, 0 +_0807A628: .4byte gUnk_080084BC +_0807A62C: + adds r0, r2, #0 + adds r0, #0xaa + ldrb r0, [r0] + ldr r7, _0807A740 @ =gUnk_080082DC + cmp r0, #0 + beq _0807A63A + ldr r7, _0807A744 @ =gUnk_0800851C +_0807A63A: + mov r0, sb + cmp r0, #0 + beq _0807A6B8 + cmp r0, #0x10 + beq _0807A6B8 + ldr r6, _0807A748 @ =gLinkEntity + ldr r2, [r6, #0x48] + movs r1, #0x2e + ldrsh r0, [r6, r1] + ldrb r3, [r2, #2] + adds r0, r0, r3 + movs r1, #0 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + ldr r1, _0807A74C @ =gUnk_03000BF0 + mov r8, r1 + ldrh r1, [r1, #6] + subs r5, r0, r1 + movs r3, #0x32 + ldrsh r0, [r6, r3] + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + mov r2, r8 + ldrh r1, [r2, #8] + subs r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A688 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #1 + bl sub_0807A750 +_0807A688: + movs r3, #0x2e + ldrsh r1, [r6, r3] + ldr r2, [r6, #0x48] + ldrb r0, [r2, #2] + subs r1, r1, r0 + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov r2, r8 + ldrh r0, [r2, #6] + subs r5, r1, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A6B8 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #3 + bl sub_0807A750 +_0807A6B8: + mov r3, sb + cmp r3, #8 + beq _0807A736 + cmp r3, #0x18 + beq _0807A736 + ldr r6, _0807A748 @ =gLinkEntity + movs r0, #0x2e + ldrsh r1, [r6, r0] + ldr r2, [r6, #0x48] + movs r0, #0 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + ldr r3, _0807A74C @ =gUnk_03000BF0 + mov r8, r3 + ldrh r0, [r3, #6] + subs r5, r1, r0 + movs r1, #0x32 + ldrsh r0, [r6, r1] + ldrb r3, [r2, #5] + adds r0, r0, r3 + movs r1, #1 + ldrsb r1, [r2, r1] + adds r0, r0, r1 + mov r2, r8 + ldrh r1, [r2, #8] + subs r4, r0, r1 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A706 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #2 + bl sub_0807A750 +_0807A706: + movs r3, #0x32 + ldrsh r1, [r6, r3] + ldr r2, [r6, #0x48] + ldrb r0, [r2, #5] + subs r1, r1, r0 + movs r0, #1 + ldrsb r0, [r2, r0] + adds r1, r1, r0 + mov r2, r8 + ldrh r0, [r2, #8] + subs r4, r1, r0 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + bl sub_080086B4 + cmp r0, #0 + beq _0807A736 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r7, #0 + movs r3, #0 + bl sub_0807A750 +_0807A736: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807A740: .4byte gUnk_080082DC +_0807A744: .4byte gUnk_0800851C +_0807A748: .4byte gLinkEntity +_0807A74C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807A750 +sub_0807A750: @ 0x0807A750 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r7, r0, #0 + adds r6, r1, #0 + mov r8, r2 + adds r5, r3, #0 + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _0807A76C + movs r4, #0xf + ands r4, r6 + b _0807A770 +_0807A76C: + movs r4, #0xf + ands r4, r7 +_0807A770: + cmp r4, #0 + bne _0807A776 + b _0807A88E +_0807A776: + cmp r4, #0xf + bne _0807A77C + b _0807A88E +_0807A77C: + lsrs r0, r7, #4 + movs r2, #0x3f + ands r0, r2 + lsrs r1, r6, #4 + ands r1, r2 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807A7A8 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002E0 + adds r1, r0, #0 + cmp r1, #0xf + bls _0807A7AE + cmp r1, #0xff + beq _0807A7AC + mov r2, r8 + adds r0, r1, r2 + subs r0, #0x10 + ldrb r1, [r0] + b _0807A7AE + .align 2, 0 +_0807A7A8: .4byte gLinkEntity +_0807A7AC: + movs r1, #0xf +_0807A7AE: + ldr r0, _0807A7D8 @ =gUnk_0800823C + lsls r1, r1, #2 + adds r1, r1, r0 + ldr r1, [r1] + movs r0, #1 + ands r0, r5 + cmp r0, #0 + bne _0807A824 + movs r0, #0xf + ands r0, r7 + movs r2, #0x80 + lsls r2, r2, #8 + asrs r2, r0 + cmp r5, #0 + bne _0807A7F4 + ldr r3, _0807A7DC @ =gLinkEntity + cmp r4, #0xe + bgt _0807A7F0 + lsls r0, r4, #1 + adds r1, r0, r1 + b _0807A7E8 + .align 2, 0 +_0807A7D8: .4byte gUnk_0800823C +_0807A7DC: .4byte gLinkEntity +_0807A7E0: + adds r1, #2 + adds r4, #1 + cmp r4, #0xe + bgt _0807A7F0 +_0807A7E8: + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _0807A7E0 +_0807A7F0: + subs r4, #1 + b _0807A816 +_0807A7F4: + ldr r3, _0807A800 @ =gLinkEntity + cmp r4, #0 + ble _0807A814 + lsls r0, r4, #1 + adds r1, r0, r1 + b _0807A80C + .align 2, 0 +_0807A800: .4byte gLinkEntity +_0807A804: + subs r1, #2 + subs r4, #1 + cmp r4, #0 + ble _0807A814 +_0807A80C: + ldrh r0, [r1] + ands r0, r2 + cmp r0, #0 + bne _0807A804 +_0807A814: + adds r4, #1 +_0807A816: + movs r0, #0xf + ands r0, r6 + subs r0, r4, r0 + ldrh r1, [r3, #0x32] + adds r0, r0, r1 + strh r0, [r3, #0x32] + b _0807A88E +_0807A824: + movs r3, #0xf + ands r6, r3 + lsls r0, r6, #1 + adds r0, r0, r1 + ldrh r2, [r0] + cmp r5, #1 + bne _0807A85C + subs r0, r3, r4 + lsrs r2, r0 + ldr r3, _0807A858 @ =gLinkEntity + cmp r4, #0 + ble _0807A854 + ands r5, r2 + cmp r5, #0 + beq _0807A854 + movs r1, #1 +_0807A844: + lsrs r2, r2, #1 + subs r4, #1 + cmp r4, #0 + ble _0807A854 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0807A844 +_0807A854: + adds r4, #1 + b _0807A882 + .align 2, 0 +_0807A858: .4byte gLinkEntity +_0807A85C: + lsls r2, r4 + ldr r3, _0807A86C @ =gLinkEntity + cmp r4, #0xe + bgt _0807A880 + movs r1, #0x80 + lsls r1, r1, #8 + b _0807A878 + .align 2, 0 +_0807A86C: .4byte gLinkEntity +_0807A870: + lsls r2, r2, #1 + adds r4, #1 + cmp r4, #0xe + bgt _0807A880 +_0807A878: + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + bne _0807A870 +_0807A880: + subs r4, #1 +_0807A882: + movs r0, #0xf + ands r0, r7 + subs r0, r4, r0 + ldrh r2, [r3, #0x2e] + adds r0, r0, r2 + strh r0, [r3, #0x2e] +_0807A88E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807A894 +sub_0807A894: @ 0x0807A894 + push {lr} + ldrb r1, [r0, #0x15] + cmp r1, #8 + beq _0807A8BA + cmp r1, #8 + bgt _0807A8A6 + cmp r1, #0 + beq _0807A8B0 + b _0807A8C8 +_0807A8A6: + cmp r1, #0x10 + beq _0807A8B6 + cmp r1, #0x18 + beq _0807A8C0 + b _0807A8C8 +_0807A8B0: + movs r2, #8 + rsbs r2, r2, #0 + b _0807A8CA +_0807A8B6: + movs r2, #5 + b _0807A8CA +_0807A8BA: + movs r2, #0 + movs r1, #8 + b _0807A8CC +_0807A8C0: + movs r2, #0 + movs r1, #8 + rsbs r1, r1, #0 + b _0807A8CC +_0807A8C8: + movs r2, #0 +_0807A8CA: + movs r1, #0 +_0807A8CC: + bl sub_080002B4 + pop {pc} + .align 2, 0 + + thumb_func_start nullsub_505 +nullsub_505: @ 0x0807A8D4 + bx lr + .align 2, 0 + + thumb_func_start sub_0807A8D8 +sub_0807A8D8: @ 0x0807A8D8 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + adds r5, r0, #0 + ldr r0, _0807AA5C @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807A8F0 + b _0807A9F6 +_0807A8F0: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _0807AA60 @ =gUnk_03000BF0 + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + adds r2, #1 + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807AA64 @ =gLinkEntity + adds r1, #0x38 + mov sb, r1 + ldrb r1, [r1] + bl sub_080002EC + adds r4, r0, #0 + movs r0, #0x20 + mov r8, r0 + ands r4, r0 + cmp r4, #0 + beq _0807A94E + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + adds r2, #1 + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A94E: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + subs r1, #2 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r2, sb + ldrb r1, [r2] + bl sub_080002EC + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + cmp r4, #0 + beq _0807A9A2 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + subs r0, #2 + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A9A2: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldrh r1, [r7, #6] + adds r1, #2 + subs r0, r0, r1 + asrs r0, r0, #4 + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + mov r2, sb + ldrb r1, [r2] + bl sub_080002EC + adds r4, r0, #0 + mov r0, r8 + ands r4, r0 + cmp r4, #0 + beq _0807A9F6 + movs r2, #0x2e + ldrsh r1, [r5, r2] + ldrh r0, [r7, #6] + adds r0, #2 + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807A9F6: + movs r1, #0x2e + ldrsh r0, [r5, r1] + ldr r7, _0807AA60 @ =gUnk_03000BF0 + ldrh r1, [r7, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r6, #0x3f + ands r0, r6 + movs r2, #0x32 + ldrsh r1, [r5, r2] + ldrh r2, [r7, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r6 + lsls r1, r1, #6 + orrs r0, r1 + ldr r1, _0807AA64 @ =gLinkEntity + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002EC + adds r4, r0, #0 + movs r0, #0x20 + ands r0, r4 + cmp r0, #0 + beq _0807AA4C + movs r0, #0x2e + ldrsh r1, [r5, r0] + ldrh r0, [r7, #6] + subs r1, r1, r0 + asrs r1, r1, #4 + ands r1, r6 + movs r2, #0x32 + ldrsh r0, [r5, r2] + ldrh r2, [r7, #8] + subs r0, r0, r2 + asrs r0, r0, #4 + ands r0, r6 + lsls r0, r0, #6 + orrs r1, r0 + adds r0, r5, #0 + bl sub_0807AAF8 +_0807AA4C: + movs r0, #2 + ands r0, r4 + cmp r0, #0 + beq _0807AA68 + adds r0, r5, #0 + bl sub_0807AABC + b _0807AA76 + .align 2, 0 +_0807AA5C: .4byte gUnk_03003F80 +_0807AA60: .4byte gUnk_03000BF0 +_0807AA64: .4byte gLinkEntity +_0807AA68: + movs r0, #4 + ands r0, r4 + cmp r0, #0 + beq _0807AA76 + adds r0, r5, #0 + bl sub_0807AA80 +_0807AA76: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807AA80 +sub_0807AA80: @ 0x0807AA80 + push {lr} + adds r3, r0, #0 + ldr r0, _0807AAB8 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0807AAB6 + adds r0, r3, #0 + adds r0, #0x38 + movs r1, #2 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AAB6 + ldrb r2, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x40 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r3, #0x19] +_0807AAB6: + pop {pc} + .align 2, 0 +_0807AAB8: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AABC +sub_0807AABC: @ 0x0807AABC + push {lr} + adds r3, r0, #0 + ldr r0, _0807AAF4 @ =gUnk_03003F80 + ldr r0, [r0, #0x30] + movs r1, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0807AAF2 + adds r0, r3, #0 + adds r0, #0x38 + movs r1, #1 + strb r1, [r0] + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AAF2 + ldrb r2, [r3, #0x1b] + movs r1, #0x3f + adds r0, r1, #0 + ands r0, r2 + movs r2, #0x80 + orrs r0, r2 + strb r0, [r3, #0x1b] + ldrb r0, [r3, #0x19] + ands r1, r0 + orrs r1, r2 + strb r1, [r3, #0x19] +_0807AAF2: + pop {pc} + .align 2, 0 +_0807AAF4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AAF8 +sub_0807AAF8: @ 0x0807AAF8 + push {r4, lr} + adds r3, r0, #0 + adds r2, r1, #0 + movs r1, #0x36 + ldrsh r0, [r3, r1] + cmp r0, #0 + bne _0807AB3C + adds r0, r3, #0 + adds r0, #0x38 + ldrb r0, [r0] + lsls r0, r0, #0x1e + orrs r2, r0 + movs r3, #0 + ldr r0, _0807AB40 @ =gUnk_03003F80 + ldr r1, [r0, #0x40] + adds r4, r0, #0 + cmp r1, r2 + beq _0807AB32 + adds r1, r4, #0 + adds r1, #0x40 +_0807AB20: + ldr r0, [r1] + stm r1!, {r2} + adds r2, r0, #0 + adds r3, #1 + cmp r3, #0xe + bhi _0807AB32 + ldr r0, [r1] + cmp r0, r2 + bne _0807AB20 +_0807AB32: + lsls r0, r3, #2 + adds r1, r4, #0 + adds r1, #0x40 + adds r0, r0, r1 + str r2, [r0] +_0807AB3C: + pop {r4, pc} + .align 2, 0 +_0807AB40: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AB44 +sub_0807AB44: @ 0x0807AB44 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + adds r6, r0, #0 + adds r7, r1, #0 + mov r8, r2 + movs r1, #0x2e + ldrsh r0, [r6, r1] + adds r0, r0, r7 + ldr r2, _0807ABF0 @ =gUnk_03000BF0 + mov sb, r2 + ldrh r1, [r2, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r3, #0x3f + mov sl, r3 + ands r0, r3 + movs r5, #0x32 + ldrsh r1, [r6, r5] + add r1, r8 + ldrh r2, [r2, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r3 + lsls r1, r1, #6 + orrs r0, r1 + adds r1, r6, #0 + adds r1, #0x38 + ldrb r1, [r1] + bl sub_080002B0 + movs r1, #0xb + bl sub_0806FC50 + adds r5, r0, #0 + cmp r5, #0 + beq _0807AC44 + ldrh r0, [r5, #6] + cmp r0, #0x76 + bne _0807ABF4 + movs r0, #0x2a + movs r1, #1 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0807AC44 + lsls r2, r7, #0x10 + mov r0, r8 + lsls r3, r0, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA48 + adds r0, r4, #0 + bl sub_08004168 + ldrh r0, [r5, #6] + movs r2, #0x2e + ldrsh r1, [r4, r2] + mov r3, sb + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r5, sl + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r4, r3] + mov r5, sb + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sl + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0807B7D8 + b _0807AC44 + .align 2, 0 +_0807ABF0: .4byte gUnk_03000BF0 +_0807ABF4: + movs r0, #0x2a + movs r1, #2 + movs r2, #0 + bl sub_080A2960 + adds r4, r0, #0 + cmp r4, #0 + beq _0807AC44 + lsls r2, r7, #0x10 + mov r0, r8 + lsls r3, r0, #0x10 + adds r0, r6, #0 + adds r1, r4, #0 + bl sub_0806FA48 + str r5, [r4, #0x54] + ldr r0, _0807AC50 @ =0x0000404F + movs r2, #0x2e + ldrsh r1, [r4, r2] + mov r3, sb + ldrh r2, [r3, #6] + subs r1, r1, r2 + asrs r1, r1, #4 + mov r5, sl + ands r1, r5 + movs r3, #0x32 + ldrsh r2, [r4, r3] + mov r5, sb + ldrh r3, [r5, #8] + subs r2, r2, r3 + asrs r2, r2, #4 + mov r3, sl + ands r2, r3 + lsls r2, r2, #6 + orrs r1, r2 + adds r2, r4, #0 + adds r2, #0x38 + ldrb r2, [r2] + bl sub_0800015E +_0807AC44: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807AC50: .4byte 0x0000404F + + thumb_func_start sub_0807AC54 +sub_0807AC54: @ 0x0807AC54 + push {lr} + adds r2, r0, #0 + ldr r0, _0807AC74 @ =gUnk_03003F80 + ldrb r1, [r0, #0x11] + adds r3, r0, #0 + cmp r1, #0 + beq _0807ACC6 + ldrb r0, [r3, #0x12] + cmp r0, #0x2a + beq _0807ACA8 + cmp r0, #0x2a + bgt _0807AC78 + cmp r0, #0x1e + beq _0807AC82 + b _0807ACC6 + .align 2, 0 +_0807AC74: .4byte gUnk_03003F80 +_0807AC78: + cmp r0, #0x2b + beq _0807AC90 + cmp r0, #0x2c + beq _0807ACB6 + b _0807ACC6 +_0807AC82: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] +_0807AC90: + movs r0, #0 + movs r1, #0x1d + strb r1, [r2, #0xc] + strb r0, [r2, #0xd] + strh r0, [r2, #0x30] + ldr r0, _0807ACA4 @ =0x000002CF + strh r0, [r3, #8] + movs r0, #1 + b _0807ACC8 + .align 2, 0 +_0807ACA4: .4byte 0x000002CF +_0807ACA8: + ldrh r0, [r2, #0x2e] + movs r1, #0x10 + rsbs r1, r1, #0 + ands r1, r0 + movs r0, #8 + orrs r1, r0 + strh r1, [r2, #0x2e] +_0807ACB6: + movs r0, #0 + movs r1, #0x1d + strb r1, [r2, #0xc] + movs r1, #1 + strb r1, [r2, #0xd] + strh r0, [r2, #0x30] + movs r0, #1 + b _0807ACC8 +_0807ACC6: + movs r0, #0 +_0807ACC8: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807ACCC +sub_0807ACCC: @ 0x0807ACCC + 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 + strb r0, [r2] + adds r1, r4, #0 + adds r1, #0x42 + movs r0, #0 + strb r0, [r1] + movs r0, #0x72 + bl sub_0807CA84 + movs r1, #0xc0 + cmp r0, #1 + bne _0807ACF4 + adds r1, #0x40 +_0807ACF4: + movs r2, #0x24 + ldrsh r0, [r4, r2] + cmp r1, r0 + ble _0807AD18 + strh r1, [r4, #0x24] + ldr r0, _0807AD14 @ =gUnk_03003F80 + ldrb r1, [r0, #0xd] + strb r1, [r4, #0x15] + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0xf + ands r0, r1 + cmp r0, #1 + bne _0807ADB4 + b _0807AD1E + .align 2, 0 +_0807AD14: .4byte gUnk_03003F80 +_0807AD18: + ldrh r0, [r4, #0x24] + subs r0, #4 + strh r0, [r4, #0x24] +_0807AD1E: + ldr r2, _0807AD3C @ =gUnk_03003F80 + adds r1, r2, #0 + adds r1, #0x89 + ldrb r0, [r1] + cmp r0, #0 + bne _0807AD40 + adds r0, r4, #0 + bl sub_0807ADB8 + cmp r0, #0 + bne _0807AD74 + adds r0, r4, #0 + bl sub_0807AE20 + b _0807AD74 + .align 2, 0 +_0807AD3C: .4byte gUnk_03003F80 +_0807AD40: + subs r0, #1 + strb r0, [r1] + lsls r0, r0, #0x18 + cmp r0, #0 + beq _0807AD52 + adds r0, r4, #0 + bl sub_0807ADB8 + b _0807AD74 +_0807AD52: + adds r2, #0x26 + ldrb r1, [r2] + movs r0, #0x7f + ands r0, r1 + strb r0, [r2] + 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, _0807ADA0 @ =0x00000163 + bl sub_080A3268 +_0807AD74: + ldr r0, _0807ADA4 @ =gUnk_03003F80 + adds r0, #0x26 + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807ADA8 + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + subs r2, #0x13 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + b _0807ADB2 + .align 2, 0 +_0807ADA0: .4byte 0x00000163 +_0807ADA4: .4byte gUnk_03003F80 +_0807ADA8: + adds r2, r4, #0 + adds r2, #0x3c + ldrb r1, [r2] + movs r0, #0xfb + ands r0, r1 +_0807ADB2: + strb r0, [r2] +_0807ADB4: + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807ADB8 +sub_0807ADB8: @ 0x0807ADB8 + push {r4, lr} + adds r2, r0, #0 + ldr r3, _0807ADF4 @ =gUnk_03003F80 + adds r0, r3, #0 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807AE1C + movs r0, #0x26 + adds r0, r0, r3 + mov ip, r0 + ldrb r0, [r0] + movs r1, #0x80 + eors r0, r1 + mov r1, ip + strb r0, [r1] + movs r1, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + cmp r4, #0 + beq _0807ADF8 + adds r1, r3, #0 + adds r1, #0x89 + movs r0, #0x78 + strb r0, [r1] + b _0807AE0E + .align 2, 0 +_0807ADF4: .4byte gUnk_03003F80 +_0807ADF8: + 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, r3, #0 + adds r0, #0x89 + strb r4, [r0] +_0807AE0E: + ldr r0, _0807AE18 @ =0x00000163 + bl sub_080A3268 + movs r0, #1 + b _0807AE1E + .align 2, 0 +_0807AE18: .4byte 0x00000163 +_0807AE1C: + movs r0, #0 +_0807AE1E: + pop {r4, pc} + + thumb_func_start sub_0807AE20 +sub_0807AE20: @ 0x0807AE20 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0xc] + cmp r0, #0x17 + bne _0807AE32 + ldr r0, _0807AE58 @ =gUnk_03003F80 + ldrb r0, [r0, #0xa] + cmp r0, #0 + bne _0807AE74 +_0807AE32: + ldr r0, _0807AE5C @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #0 + bne _0807AE74 + ldr r0, _0807AE58 @ =gUnk_03003F80 + adds r0, #0x92 + ldrh r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807AE74 + movs r0, #0x72 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AE60 + movs r0, #0xe0 + lsls r0, r0, #1 + b _0807AE64 + .align 2, 0 +_0807AE58: .4byte gUnk_03003F80 +_0807AE5C: .4byte gUnk_03000BF0 +_0807AE60: + movs r0, #0xc0 + lsls r0, r0, #1 +_0807AE64: + strh r0, [r4, #0x24] + adds r0, r4, #0 + bl sub_08079520 + movs r0, #0xb1 + lsls r0, r0, #1 + bl sub_080A3268 +_0807AE74: + movs r0, #0x10 + bl sub_080793E4 + cmp r0, #0 + beq _0807AEA8 + adds r1, r4, #0 + adds r1, #0x3d + movs r0, #0x14 + strb r0, [r1] + adds r1, #5 + movs r0, #4 + strb r0, [r1] + ldrb r0, [r4, #0x14] + lsls r0, r0, #2 + movs r1, #0x10 + eors r0, r1 + adds r1, r4, #0 + adds r1, #0x3e + strb r0, [r1] + movs r0, #2 + rsbs r0, r0, #0 + bl sub_080526A0 + movs r0, #0x7a + bl sub_080A3268 +_0807AEA8: + ldrb r1, [r4, #0x15] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807AECC + ldr r0, _0807AEC8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #0xf + ands r0, r1 + cmp r0, #0 + bne _0807AEDE + adds r0, r4, #0 + movs r1, #4 + bl sub_080A2A84 + b _0807AEDE + .align 2, 0 +_0807AEC8: .4byte gUnk_030010A0 +_0807AECC: + ldr r0, _0807AEE0 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0807AEDE + adds r0, r4, #0 + bl sub_080A2A64 +_0807AEDE: + pop {r4, pc} + .align 2, 0 +_0807AEE0: .4byte gUnk_030010A0 + + thumb_func_start sub_0807AEE4 +sub_0807AEE4: @ 0x0807AEE4 + push {r4, lr} + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r4, r0, #0 + adds r4, #0xac + movs r0, #0 + strh r0, [r4] + movs r0, #0x48 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF02 + ldrh r0, [r4] + movs r1, #1 + orrs r0, r1 + strh r0, [r4] +_0807AF02: + movs r0, #0x49 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF14 + ldrh r0, [r4] + movs r1, #2 + orrs r0, r1 + strh r0, [r4] +_0807AF14: + movs r0, #0x4a + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF26 + ldrh r0, [r4] + movs r1, #4 + orrs r0, r1 + strh r0, [r4] +_0807AF26: + movs r0, #0x4b + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF38 + ldrh r0, [r4] + movs r1, #8 + orrs r0, r1 + strh r0, [r4] +_0807AF38: + movs r0, #0x4c + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF4A + ldrh r0, [r4] + movs r1, #0x10 + orrs r0, r1 + strh r0, [r4] +_0807AF4A: + movs r0, #0x4d + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF5C + ldrh r0, [r4] + movs r1, #0x20 + orrs r0, r1 + strh r0, [r4] +_0807AF5C: + movs r0, #0x4e + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF6E + ldrh r0, [r4] + movs r1, #0x40 + orrs r0, r1 + strh r0, [r4] +_0807AF6E: + movs r0, #0x4f + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF80 + ldrh r0, [r4] + movs r1, #0x80 + orrs r0, r1 + strh r0, [r4] +_0807AF80: + movs r0, #6 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AF96 + ldrh r0, [r4] + movs r2, #0x80 + lsls r2, r2, #1 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r4] +_0807AF96: + movs r0, #0x73 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AFAC + ldrh r0, [r4] + movs r3, #0x80 + lsls r3, r3, #2 + adds r1, r3, #0 + orrs r0, r1 + strh r0, [r4] +_0807AFAC: + movs r0, #0x74 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AFC6 + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r2, [r0] + movs r3, #0x80 + lsls r3, r3, #3 + adds r1, r3, #0 + orrs r1, r2 + strh r1, [r0] +_0807AFC6: + movs r0, #0x75 + bl sub_0807CA84 + cmp r0, #1 + bne _0807AFE0 + ldr r0, _0807AFE4 @ =gUnk_03003F80 + adds r0, #0xac + ldrh r2, [r0] + movs r3, #0x80 + lsls r3, r3, #4 + adds r1, r3, #0 + orrs r1, r2 + strh r1, [r0] +_0807AFE0: + pop {r4, pc} + .align 2, 0 +_0807AFE4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807AFE8 +sub_0807AFE8: @ 0x0807AFE8 + push {lr} + bl sub_08077B20 + ldr r0, _0807B00C @ =gLinkEntity + movs r1, #0x43 + movs r2, #0 + bl CreateFX + adds r1, r0, #0 + cmp r1, #0 + beq _0807B004 + ldrh r0, [r1, #0x32] + adds r0, #1 + strh r0, [r1, #0x32] +_0807B004: + ldr r1, _0807B010 @ =gUnk_03003F80 + movs r0, #9 + strb r0, [r1, #0xc] + pop {pc} + .align 2, 0 +_0807B00C: .4byte gLinkEntity +_0807B010: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B014 +sub_0807B014: @ 0x0807B014 + push {lr} + ldr r2, _0807B03C @ =gUnk_03003F80 + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807B044 + ldr r0, _0807B040 @ =gUnk_02002A40 + adds r1, r0, #0 + adds r1, #0xaa + adds r0, #0xab + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _0807B044 + movs r0, #0xf + b _0807B066 + .align 2, 0 +_0807B03C: .4byte gUnk_03003F80 +_0807B040: .4byte gUnk_02002A40 +_0807B044: + adds r0, r2, #0 + adds r0, #0xac + ldrh r1, [r0] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B064 + ldr r0, _0807B060 @ =gUnk_02002A40 + adds r0, #0xaa + ldrb r0, [r0] + cmp r0, #8 + bhi _0807B064 + movs r0, #0x16 + b _0807B066 + .align 2, 0 +_0807B060: .4byte gUnk_02002A40 +_0807B064: + movs r0, #0 +_0807B066: + pop {pc} + + thumb_func_start sub_0807B068 +sub_0807B068: @ 0x0807B068 + push {lr} + ldr r2, _0807B090 @ =gUnk_03003F80 + ldrb r1, [r2, #0x1e] + ldrb r0, [r2, #4] + orrs r0, r1 + cmp r0, #0 + bne _0807B0C2 + adds r0, r2, #0 + adds r0, #0x26 + ldrb r1, [r0] + cmp r1, #0 + beq _0807B0A4 + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B098 + ldr r0, _0807B094 @ =0x00000C1C + strh r0, [r2, #8] + b _0807B0C2 + .align 2, 0 +_0807B090: .4byte gUnk_03003F80 +_0807B094: .4byte 0x00000C1C +_0807B098: + ldr r0, _0807B0A0 @ =0x00000C0C + strh r0, [r2, #8] + b _0807B0C2 + .align 2, 0 +_0807B0A0: .4byte 0x00000C0C +_0807B0A4: + ldrb r1, [r2, #0xd] + movs r0, #0x80 + ands r0, r1 + cmp r0, #0 + beq _0807B0B8 + ldrh r0, [r2, #8] + ldr r1, _0807B0B4 @ =0x00000C18 + b _0807B0BC + .align 2, 0 +_0807B0B4: .4byte 0x00000C18 +_0807B0B8: + ldrh r0, [r2, #8] + ldr r1, _0807B0C4 @ =0x00000C04 +_0807B0BC: + cmp r0, r1 + beq _0807B0C2 + strh r1, [r2, #8] +_0807B0C2: + pop {pc} + .align 2, 0 +_0807B0C4: .4byte 0x00000C04 + + thumb_func_start sub_0807B0C8 +sub_0807B0C8: @ 0x0807B0C8 + push {r4, lr} + ldr r4, _0807B0F8 @ =gLinkEntity + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #1 + movs r2, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #2 + adds r2, r4, #0 + bl sub_0806FEBC + adds r0, r4, #0 + movs r1, #3 + movs r2, #0 + bl sub_0806FEBC + pop {r4, pc} + .align 2, 0 +_0807B0F8: .4byte gLinkEntity + + thumb_func_start sub_0807B0FC +sub_0807B0FC: @ 0x0807B0FC + push {lr} + ldr r2, _0807B110 @ =gUnk_0811C27C + ldrb r1, [r0, #0xd] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807B110: .4byte gUnk_0811C27C + + thumb_func_start sub_0807B114 +sub_0807B114: @ 0x0807B114 + movs r1, #1 + strb r1, [r0, #0xd] + ldr r1, _0807B124 @ =gUnk_03003F80 + adds r1, #0x38 + ldrb r1, [r1] + adds r0, #0x6c + strb r1, [r0] + bx lr + .align 2, 0 +_0807B124: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B128 +sub_0807B128: @ 0x0807B128 + push {lr} + ldr r2, _0807B140 @ =gUnk_0811C284 + adds r1, r0, #0 + adds r1, #0x6c + ldrb r1, [r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807B140: .4byte gUnk_0811C284 + + thumb_func_start sub_0807B144 +sub_0807B144: @ 0x0807B144 + push {lr} + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + ldrb r1, [r0, #0x14] + lsls r1, r1, #2 + strb r1, [r0, #0x15] + movs r1, #0xa0 + strh r1, [r0, #0x24] + movs r1, #0x80 + lsls r1, r1, #0xb + str r1, [r0, #0x20] + ldr r1, _0807B170 @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #2] + bl sub_080791BC + pop {pc} + .align 2, 0 +_0807B170: .4byte gUnk_03003F80 + + thumb_func_start nullsub_506 +nullsub_506: @ 0x0807B174 + bx lr + .align 2, 0 + + thumb_func_start sub_0807B178 +sub_0807B178: @ 0x0807B178 + push {lr} + ldrb r2, [r0, #0x18] + movs r1, #4 + rsbs r1, r1, #0 + ands r1, r2 + movs r2, #1 + orrs r1, r2 + strb r1, [r0, #0x18] + movs r2, #0 + movs r1, #0x10 + strb r1, [r0, #0x15] + strh r2, [r0, #0x24] + movs r1, #0x80 + lsls r1, r1, #0xb + str r1, [r0, #0x20] + ldr r1, _0807B1A4 @ =gUnk_03003F80 + movs r0, #0x81 + strb r0, [r1, #2] + bl sub_080791BC + pop {pc} + .align 2, 0 +_0807B1A4: .4byte gUnk_03003F80 + + thumb_func_start sub_0807B1A8 +sub_0807B1A8: @ 0x0807B1A8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807B1D4 @ =gUnk_0811C298 + adds r0, #0x6e + ldrb r0, [r0] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + adds r0, r4, #0 + bl _call_via_r1 + ldr r0, _0807B1D8 @ =gUnk_030010A0 + ldr r0, [r0] + movs r1, #7 + ands r0, r1 + cmp r0, #0 + bne _0807B1D0 + adds r0, r4, #0 + bl sub_080A2B80 +_0807B1D0: + pop {r4, pc} + .align 2, 0 +_0807B1D4: .4byte gUnk_0811C298 +_0807B1D8: .4byte gUnk_030010A0 + + thumb_func_start sub_0807B1DC +sub_0807B1DC: @ 0x0807B1DC + adds r2, r0, #0 + adds r2, #0x6e + ldrb r1, [r2] + adds r1, #1 + strb r1, [r2] + movs r1, #0x1e + strb r1, [r0, #0xe] + bx lr + + thumb_func_start sub_0807B1EC +sub_0807B1EC: @ 0x0807B1EC + 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 _0807B212 + adds r1, r2, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x80 + lsls r0, r0, #9 + str r0, [r2, #0x20] + ldr r1, _0807B214 @ =gUnk_03003F80 + ldr r0, _0807B218 @ =0x000002C2 + strh r0, [r1, #8] +_0807B212: + pop {pc} + .align 2, 0 +_0807B214: .4byte gUnk_03003F80 +_0807B218: .4byte 0x000002C2 + + thumb_func_start sub_0807B21C +sub_0807B21C: @ 0x0807B21C + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldr r0, [r4, #0x20] + cmp r0, #0 + bge _0807B236 + movs r1, #0x80 + lsls r1, r1, #3 + adds r0, r4, #0 + bl sub_08003FC4 + b _0807B240 +_0807B236: + movs r1, #0x80 + lsls r1, r1, #4 + adds r0, r4, #0 + bl sub_08003FC4 +_0807B240: + ldr r1, [r4, #0x20] + ldr r0, _0807B260 @ =0xFFFF8000 + cmp r1, r0 + bge _0807B25E + movs r1, #0 + movs r0, #0x78 + strb r0, [r4, #0xe] + strb r1, [r4, #0xf] + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r0, [r4, #0x34] + str r0, [r4, #0x68] +_0807B25E: + pop {r4, pc} + .align 2, 0 +_0807B260: .4byte 0xFFFF8000 + + thumb_func_start sub_0807B264 +sub_0807B264: @ 0x0807B264 + push {r4, lr} + adds r4, r0, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xf] + adds r0, #2 + strb r0, [r4, #0xf] + ldr r1, _0807B2B4 @ =gUnk_080C9160 + ldrb r0, [r4, #0xf] + lsls r0, r0, #1 + adds r0, r0, r1 + movs r2, #0 + ldrsh r1, [r0, r2] + asrs r1, r1, #7 + lsls r1, r1, #0x10 + ldr r0, [r4, #0x68] + adds r0, r0, r1 + str r0, [r4, #0x34] + ldrb r0, [r4, #0xe] + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807B2B0 + movs r0, #0x50 + strb r0, [r4, #0xe] + movs r0, #0x80 + lsls r0, r0, #8 + str r0, [r4, #0x20] + adds r1, r4, #0 + adds r1, #0x6e + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0xa9 + lsls r0, r0, #1 + bl sub_080A3268 +_0807B2B0: + pop {r4, pc} + .align 2, 0 +_0807B2B4: .4byte gUnk_080C9160 + + thumb_func_start sub_0807B2B8 +sub_0807B2B8: @ 0x0807B2B8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807B2F0 @ =0xFFFFE000 + bl sub_08003FC4 + adds r0, r4, #0 + bl sub_080042B8 + ldrb r0, [r4, #0xe] + cmp r0, #0 + beq _0807B2EC + subs r0, #1 + strb r0, [r4, #0xe] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0807B2EC + adds r0, r4, #0 + adds r0, #0x6d + ldrb r1, [r0] + lsls r0, r1, #2 + adds r0, r0, r1 + lsls r0, r0, #2 + ldr r1, _0807B2F4 @ =gUnk_0813AD88 + adds r0, r0, r1 + bl sub_08080840 +_0807B2EC: + pop {r4, pc} + .align 2, 0 +_0807B2F0: .4byte 0xFFFFE000 +_0807B2F4: .4byte gUnk_0813AD88 + + thumb_func_start sub_0807B2F8 +sub_0807B2F8: @ 0x0807B2F8 + push {lr} + adds r2, r0, #0 + adds r1, r2, #0 + adds r1, #0x6e + ldrb r0, [r1] + cmp r0, #0 + bne _0807B310 + adds r0, #1 + strb r0, [r1] + adds r0, r2, #0 + bl sub_0809D738 +_0807B310: + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807B314 +sub_0807B314: @ 0x0807B314 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + ldr r0, _0807B3A0 @ =0x000007FF + cmp r5, r0 + bhi _0807B410 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801AF8C + adds r0, r6, #0 + bl sub_0808094C + adds r2, r0, #0 + lsls r1, r5, #1 + ldr r3, _0807B3A4 @ =0x00006004 + adds r0, r2, r3 + adds r0, r0, r1 + ldrh r0, [r0] + mov ip, r0 + lsls r1, r4, #1 + adds r0, r2, #4 + adds r0, r0, r1 + mov r1, ip + strh r1, [r0] + ldr r0, _0807B3A8 @ =gUnk_080B3E80 + adds r0, r5, r0 + ldrb r3, [r0] + ldr r1, _0807B3AC @ =0x00002004 + adds r0, r2, r1 + adds r0, r0, r4 + strb r3, [r0] + ldr r7, _0807B3B0 @ =gUnk_03000BF0 + ldrb r1, [r7, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807B36C + ldr r0, _0807B3B4 @ =gUnk_02025EB0 + ldr r1, _0807B3AC @ =0x00002004 + adds r0, r0, r1 + adds r0, r4, r0 + strb r3, [r0] +_0807B36C: + ldr r3, _0807B3B8 @ =0x0000B004 + adds r1, r2, r3 + adds r1, r1, r4 + ldr r0, _0807B3BC @ =gUnk_080B37A0 + adds r0, r5, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r1, [r7, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807B430 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r6, #2 + beq _0807B3C4 + lsls r1, r1, #1 + ldr r0, _0807B3C0 @ =gUnk_02019EE0 + b _0807B3C8 + .align 2, 0 +_0807B3A0: .4byte 0x000007FF +_0807B3A4: .4byte 0x00006004 +_0807B3A8: .4byte gUnk_080B3E80 +_0807B3AC: .4byte 0x00002004 +_0807B3B0: .4byte gUnk_03000BF0 +_0807B3B4: .4byte gUnk_02025EB0 +_0807B3B8: .4byte 0x0000B004 +_0807B3BC: .4byte gUnk_080B37A0 +_0807B3C0: .4byte gUnk_02019EE0 +_0807B3C4: + lsls r1, r1, #1 + ldr r0, _0807B400 @ =gUnk_02002F00 +_0807B3C8: + adds r3, r1, r0 + mov r1, ip + lsls r0, r1, #3 + ldr r1, _0807B404 @ =0x00007004 + adds r0, r0, r1 + adds r0, r2, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807B408 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #1 + beq _0807B430 + ldr r1, _0807B40C @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] + b _0807B430 + .align 2, 0 +_0807B400: .4byte gUnk_02002F00 +_0807B404: .4byte 0x00007004 +_0807B408: .4byte gUnk_03000BF0 +_0807B40C: .4byte gUnk_02000070 +_0807B410: + ldr r0, _0807B424 @ =0x00003FFF + cmp r5, r0 + bls _0807B428 + adds r0, r5, #0 + adds r1, r4, #0 + adds r2, r6, #0 + bl sub_0800015E + b _0807B430 + .align 2, 0 +_0807B424: .4byte 0x00003FFF +_0807B428: + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0807BA8C +_0807B430: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B434 +sub_0807B434: @ 0x0807B434 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl sub_080002B0 + cmp r0, #0x37 + bhi _0807B44A + cmp r0, #0x36 + blo _0807B44A + movs r0, #0 + b _0807B462 +_0807B44A: + lsls r0, r4, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r5, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + adds r1, r0, #0 + movs r0, #0xd + eors r1, r0 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r0, r0, #0x1f +_0807B462: + pop {r4, r5, pc} + + thumb_func_start sub_0807B464 +sub_0807B464: @ 0x0807B464 + push {lr} + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + movs r1, #0 + cmp r0, #0x56 + bne _0807B47A + movs r1, #1 +_0807B47A: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807B480 +sub_0807B480: @ 0x0807B480 + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + movs r1, #2 + bl sub_0807B464 + cmp r0, #0 + beq _0807B558 + adds r0, r6, #0 + subs r0, #0x40 + movs r1, #2 + bl sub_0807B464 + adds r5, r0, #0 + adds r0, r6, #1 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r5, r0 + adds r4, r6, #0 + adds r4, #0x40 + adds r0, r4, #0 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r5, r0 + subs r0, r6, #1 + movs r1, #2 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x41 + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r5, r0 + adds r0, r6, #0 + adds r0, #0x3f + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r5, r0 + adds r0, r4, #0 + movs r1, #2 + bl sub_080002B0 + cmp r0, #0 + beq _0807B4FA + adds r0, r6, #0 + adds r0, #0x80 + movs r1, #1 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r5, r0 +_0807B4FA: + ldr r0, _0807B514 @ =gUnk_0811C2CC + lsls r1, r5, #1 + adds r1, r1, r0 + ldrh r4, [r1] + adds r0, r6, #0 + movs r1, #2 + bl sub_080002B0 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + ldr r2, _0807B518 @ =gUnk_0811C2EC + movs r3, #0 + b _0807B51E + .align 2, 0 +_0807B514: .4byte gUnk_0811C2CC +_0807B518: .4byte gUnk_0811C2EC +_0807B51C: + adds r2, #6 +_0807B51E: + ldrh r1, [r2] + cmp r1, #0 + beq _0807B52A + cmp r0, r1 + bne _0807B51C + ldrh r3, [r2, #2] +_0807B52A: + movs r0, #1 + lsls r0, r7 + bics r3, r0 + ldr r2, _0807B534 @ =gUnk_0811C2EC + b _0807B53A + .align 2, 0 +_0807B534: .4byte gUnk_0811C2EC +_0807B538: + adds r2, #6 +_0807B53A: + ldrh r0, [r2] + cmp r0, #0 + beq _0807B54E + ldrh r0, [r2, #2] + cmp r3, r0 + bne _0807B538 + ldrh r0, [r2, #4] + cmp r5, r0 + bne _0807B538 + ldrh r4, [r2] +_0807B54E: + adds r0, r4, #0 + adds r1, r6, #0 + movs r2, #2 + bl sub_0807B314 +_0807B558: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B55C +sub_0807B55C: @ 0x0807B55C + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + adds r6, r1, #0 + adds r7, r2, #0 + bl sub_0807B464 + cmp r0, #0 + beq _0807B5AC + adds r0, r5, #0 + subs r0, #0x40 + adds r1, r6, #0 + bl sub_0807B464 + adds r4, r0, #0 + adds r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #1 + orrs r4, r0 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #2 + orrs r4, r0 + subs r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B464 + lsls r0, r0, #3 + orrs r0, r4 + lsls r0, r0, #1 + adds r0, r0, r7 + ldrh r0, [r0] + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0807B314 +_0807B5AC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807B5B0 +sub_0807B5B0: @ 0x0807B5B0 + push {r4, r5, r6, r7, lr} + adds r3, r0, #0 + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldr r6, _0807B5F8 @ =gUnk_0811C456 + ldrb r1, [r3, #0x14] + movs r2, #6 + ands r2, r1 + lsls r1, r2, #1 + adds r1, r1, r6 + movs r4, #0 + ldrsh r1, [r1, r4] + adds r0, r0, r1 + ldr r5, _0807B5FC @ =gUnk_03000BF0 + ldrh r1, [r5, #6] + subs r0, r0, r1 + asrs r0, r0, #4 + movs r4, #0x3f + ands r0, r4 + movs r7, #0x32 + ldrsh r1, [r3, r7] + adds r2, #1 + lsls r2, r2, #1 + adds r2, r2, r6 + movs r3, #0 + ldrsh r2, [r2, r3] + adds r1, r1, r2 + ldrh r2, [r5, #8] + subs r1, r1, r2 + asrs r1, r1, #4 + ands r1, r4 + lsls r1, r1, #6 + orrs r0, r1 + bl sub_0807B600 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807B5F8: .4byte gUnk_0811C456 +_0807B5FC: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807B600 +sub_0807B600: @ 0x0807B600 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r5, #0 + subs r6, #0x40 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + movs r1, #1 + bl sub_080002C8 + cmp r0, #0x56 + beq _0807B61A + movs r0, #0 + b _0807B76E +_0807B61A: + adds r0, r5, #0 + movs r1, #1 + bl sub_080002B0 + adds r1, r0, #0 + ldr r0, _0807B634 @ =0x0000026A + cmp r1, r0 + bne _0807B638 + adds r0, r5, #0 + bl sub_0807B820 + b _0807B76C + .align 2, 0 +_0807B634: .4byte 0x0000026A +_0807B638: + ldr r0, _0807B648 @ =0x00000267 + cmp r1, r0 + bne _0807B64C + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B820 + b _0807B76C + .align 2, 0 +_0807B648: .4byte 0x00000267 +_0807B64C: + ldr r0, _0807B65C @ =0x0000027A + cmp r1, r0 + bne _0807B660 + adds r0, r5, #0 + bl sub_0807B8A8 + b _0807B76C + .align 2, 0 +_0807B65C: .4byte 0x0000027A +_0807B660: + ldr r0, _0807B670 @ =0x00000277 + cmp r1, r0 + bne _0807B674 + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B8A8 + b _0807B76C + .align 2, 0 +_0807B670: .4byte 0x00000277 +_0807B674: + ldr r0, _0807B684 @ =0x0000028A + cmp r1, r0 + bne _0807B688 + adds r0, r5, #0 + bl sub_0807B930 + b _0807B76C + .align 2, 0 +_0807B684: .4byte 0x0000028A +_0807B688: + ldr r0, _0807B698 @ =0x00000287 + cmp r1, r0 + bne _0807B69C + adds r0, r5, #0 + adds r0, #0x40 + bl sub_0807B930 + b _0807B76C + .align 2, 0 +_0807B698: .4byte 0x00000287 +_0807B69C: + adds r0, r5, #0 + movs r1, #2 + bl sub_080002B0 + cmp r0, #0 + beq _0807B6EC + ldr r0, _0807B6E8 @ =0x000002F2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + adds r0, r6, #0 + movs r1, #1 + bl sub_080002E0 + cmp r0, #3 + bne _0807B6CA + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r6, #0 + movs r2, #1 + bl sub_0807B314 +_0807B6CA: + adds r0, r5, #0 + adds r0, #0x40 + movs r1, #1 + bl sub_080002E0 + cmp r0, #3 + bne _0807B6F8 + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + b _0807B6F8 + .align 2, 0 +_0807B6E8: .4byte 0x000002F2 +_0807B6EC: + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 +_0807B6F8: + adds r0, r6, #0 + movs r1, #2 + bl sub_0807B464 + cmp r0, #0 + beq _0807B748 + movs r0, #0 + adds r1, r6, #0 + movs r2, #2 + bl sub_0807B314 + adds r0, r6, #0 + movs r1, #1 + bl sub_080002B0 + ldr r1, _0807B770 @ =0x000002F2 + cmp r0, r1 + bne _0807B728 + movs r0, #0xbd + lsls r0, r0, #2 + adds r1, r6, #0 + movs r2, #1 + bl sub_0807B314 +_0807B728: + adds r0, r5, #1 + ldr r4, _0807B774 @ =gUnk_0811C2AC + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C + subs r0, r5, #1 + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C + adds r0, r6, #0 + movs r1, #1 + adds r2, r4, #0 + bl sub_0807B55C +_0807B748: + adds r0, r6, #1 + movs r1, #3 + bl sub_0807B480 + subs r0, r6, #1 + movs r1, #1 + bl sub_0807B480 + adds r0, r6, #0 + adds r0, #0x40 + movs r1, #0 + bl sub_0807B480 + adds r0, r6, #0 + subs r0, #0x40 + movs r1, #2 + bl sub_0807B480 +_0807B76C: + movs r0, #1 +_0807B76E: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807B770: .4byte 0x000002F2 +_0807B774: .4byte gUnk_0811C2AC + + thumb_func_start sub_0807B778 +sub_0807B778: @ 0x0807B778 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r6, r1, #0 + lsls r0, r5, #0x10 + lsrs r0, r0, #0x10 + lsls r1, r6, #0x18 + lsrs r1, r1, #0x18 + bl sub_080002C8 + cmp r0, #0xd + bne _0807B7D0 + adds r0, r5, #0 + subs r0, #0x40 + adds r1, r6, #0 + bl sub_0807B434 + adds r4, r0, #0 + adds r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #1 + orrs r4, r0 + adds r0, r5, #0 + adds r0, #0x40 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #2 + orrs r4, r0 + subs r0, r5, #1 + adds r1, r6, #0 + bl sub_0807B434 + lsls r0, r0, #3 + orrs r0, r4 + ldr r1, _0807B7D4 @ =gUnk_0811C466 + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0807B314 +_0807B7D0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807B7D4: .4byte gUnk_0811C466 + + thumb_func_start sub_0807B7D8 +sub_0807B7D8: @ 0x0807B7D8 + push {r4, r5, lr} + adds r4, r1, #0 + adds r5, r2, #0 + cmp r0, #0x35 + bne _0807B816 + movs r0, #0x35 + bl sub_08000152 + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807B778 + adds r0, r4, #1 + adds r1, r5, #0 + bl sub_0807B778 + subs r0, r4, #1 + adds r1, r5, #0 + bl sub_0807B778 + adds r0, r4, #0 + adds r0, #0x40 + adds r1, r5, #0 + bl sub_0807B778 + adds r0, r4, #0 + subs r0, #0x40 + adds r1, r5, #0 + bl sub_0807B778 + b _0807B81E +_0807B816: + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0807B314 +_0807B81E: + pop {r4, r5, pc} + + thumb_func_start sub_0807B820 +sub_0807B820: @ 0x0807B820 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x9b + lsls r0, r0, #2 + adds r5, r4, #0 + subs r5, #0x41 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B890 @ =0x00000273 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B894 @ =0x0000026D + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x9d + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B898 @ =0x0000026E + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B89C @ =0x00000275 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B8A0 @ =0x0000026F + subs r1, r4, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0x9c + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B8A4 @ =0x00000272 + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0807B890: .4byte 0x00000273 +_0807B894: .4byte 0x0000026D +_0807B898: .4byte 0x0000026E +_0807B89C: .4byte 0x00000275 +_0807B8A0: .4byte 0x0000026F +_0807B8A4: .4byte 0x00000272 + + thumb_func_start sub_0807B8A8 +sub_0807B8A8: @ 0x0807B8A8 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0x9f + lsls r0, r0, #2 + adds r5, r4, #0 + subs r5, #0x41 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B918 @ =0x00000283 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B91C @ =0x0000027D + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa1 + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B920 @ =0x0000027E + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B924 @ =0x00000285 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B928 @ =0x0000027F + subs r1, r4, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa0 + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B92C @ =0x00000282 + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0807B918: .4byte 0x00000283 +_0807B91C: .4byte 0x0000027D +_0807B920: .4byte 0x0000027E +_0807B924: .4byte 0x00000285 +_0807B928: .4byte 0x0000027F +_0807B92C: .4byte 0x00000282 + + thumb_func_start sub_0807B930 +sub_0807B930: @ 0x0807B930 + push {r4, r5, lr} + adds r4, r0, #0 + movs r0, #0xa3 + lsls r0, r0, #2 + adds r5, r4, #0 + subs r5, #0x41 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B9A0 @ =0x00000293 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B9A4 @ =0x0000028D + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa5 + lsls r0, r0, #2 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B9A8 @ =0x0000028E + adds r5, #1 + adds r1, r5, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B9AC @ =0x00000295 + adds r1, r5, #0 + movs r2, #2 + bl sub_0807B314 + ldr r0, _0807B9B0 @ =0x0000028F + subs r1, r4, #1 + movs r2, #1 + bl sub_0807B314 + movs r0, #0xa4 + lsls r0, r0, #2 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + ldr r0, _0807B9B4 @ =0x00000292 + adds r4, #1 + adds r1, r4, #0 + movs r2, #1 + bl sub_0807B314 + pop {r4, r5, pc} + .align 2, 0 +_0807B9A0: .4byte 0x00000293 +_0807B9A4: .4byte 0x0000028D +_0807B9A8: .4byte 0x0000028E +_0807B9AC: .4byte 0x00000295 +_0807B9B0: .4byte 0x0000028F +_0807B9B4: .4byte 0x00000292 + + thumb_func_start sub_0807B9B8 +sub_0807B9B8: @ 0x0807B9B8 + push {r4, r5, r6, r7, lr} + adds r7, r0, #0 + adds r4, r1, #0 + adds r6, r2, #0 + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801AF8C + adds r0, r6, #0 + bl sub_0808094C + adds r5, r0, #0 + lsls r1, r4, #1 + adds r0, r5, #4 + adds r0, r0, r1 + strh r7, [r0] + lsls r1, r7, #1 + ldr r2, _0807BA24 @ =0x00005004 + adds r0, r5, r2 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r0, _0807BA28 @ =0x00002004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BA2C @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0807BA30 @ =0x0000B004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BA34 @ =gUnk_080B37A0 + adds r2, r2, r0 + ldrb r0, [r2] + strb r0, [r1] + ldr r0, _0807BA38 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807BA78 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r6, #2 + beq _0807BA40 + lsls r1, r1, #1 + ldr r0, _0807BA3C @ =gUnk_02019EE0 + b _0807BA44 + .align 2, 0 +_0807BA24: .4byte 0x00005004 +_0807BA28: .4byte 0x00002004 +_0807BA2C: .4byte gUnk_080B3E80 +_0807BA30: .4byte 0x0000B004 +_0807BA34: .4byte gUnk_080B37A0 +_0807BA38: .4byte gUnk_03000BF0 +_0807BA3C: .4byte gUnk_02019EE0 +_0807BA40: + lsls r1, r1, #1 + ldr r0, _0807BA7C @ =gUnk_02002F00 +_0807BA44: + adds r3, r1, r0 + lsls r0, r7, #3 + ldr r1, _0807BA80 @ =0x00007004 + adds r0, r0, r1 + adds r0, r5, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807BA84 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #1 + beq _0807BA78 + ldr r1, _0807BA88 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807BA78: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BA7C: .4byte gUnk_02002F00 +_0807BA80: .4byte 0x00007004 +_0807BA84: .4byte gUnk_03000BF0 +_0807BA88: .4byte gUnk_02000070 + + thumb_func_start sub_0807BA8C +sub_0807BA8C: @ 0x0807BA8C + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r7, r1, #0 + bl sub_0801AF8C + adds r0, r7, #0 + bl sub_0808094C + adds r5, r0, #0 + lsls r2, r4, #1 + adds r1, r5, #4 + adds r1, r1, r2 + ldr r3, _0807BAFC @ =0x00003004 + adds r0, r5, r3 + adds r0, r0, r2 + ldrh r6, [r0] + strh r6, [r1] + lsls r1, r6, #1 + ldr r2, _0807BB00 @ =0x00005004 + adds r0, r5, r2 + adds r0, r0, r1 + ldrh r2, [r0] + ldr r3, _0807BB04 @ =0x00002004 + adds r1, r5, r3 + adds r1, r1, r4 + ldr r0, _0807BB08 @ =gUnk_080B3E80 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0807BB0C @ =0x0000B004 + adds r1, r5, r0 + adds r1, r1, r4 + ldr r0, _0807BB10 @ =gUnk_080B37A0 + adds r2, r2, r0 + ldrb r0, [r2] + strb r0, [r1] + ldr r0, _0807BB14 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807BB54 + movs r1, #0x3f + ands r1, r4 + lsls r1, r1, #1 + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r4 + lsls r0, r0, #2 + adds r1, r1, r0 + cmp r7, #2 + beq _0807BB1C + lsls r1, r1, #1 + ldr r0, _0807BB18 @ =gUnk_02019EE0 + b _0807BB20 + .align 2, 0 +_0807BAFC: .4byte 0x00003004 +_0807BB00: .4byte 0x00005004 +_0807BB04: .4byte 0x00002004 +_0807BB08: .4byte gUnk_080B3E80 +_0807BB0C: .4byte 0x0000B004 +_0807BB10: .4byte gUnk_080B37A0 +_0807BB14: .4byte gUnk_03000BF0 +_0807BB18: .4byte gUnk_02019EE0 +_0807BB1C: + lsls r1, r1, #1 + ldr r0, _0807BB58 @ =gUnk_02002F00 +_0807BB20: + adds r3, r1, r0 + lsls r0, r6, #3 + ldr r1, _0807BB5C @ =0x00007004 + adds r0, r0, r1 + adds r0, r5, r0 + ldrh r1, [r0] + strh r1, [r3] + ldrh r1, [r0, #2] + strh r1, [r3, #2] + movs r1, #0x80 + lsls r1, r1, #1 + adds r2, r3, r1 + ldrh r1, [r0, #4] + strh r1, [r2] + movs r2, #0x81 + lsls r2, r2, #1 + adds r1, r3, r2 + ldrh r0, [r0, #6] + strh r0, [r1] + ldr r0, _0807BB60 @ =gUnk_03000BF0 + ldrh r0, [r0] + cmp r0, #1 + beq _0807BB54 + ldr r1, _0807BB64 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807BB54: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BB58: .4byte gUnk_02002F00 +_0807BB5C: .4byte 0x00007004 +_0807BB60: .4byte gUnk_03000BF0 +_0807BB64: .4byte gUnk_02000070 + + thumb_func_start sub_0807BB68 +sub_0807BB68: @ 0x0807BB68 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + adds r6, r1, #0 + adds r5, r2, #0 + movs r1, #0 + ldrsh r0, [r4, r1] + movs r1, #1 + rsbs r1, r1, #0 + cmp r0, r1 + beq _0807BB96 + adds r7, r1, #0 +_0807BB7E: + ldrh r0, [r4] + movs r2, #2 + ldrsh r1, [r4, r2] + adds r1, r6, r1 + adds r2, r5, #0 + bl sub_0807B314 + adds r4, #4 + movs r1, #0 + ldrsh r0, [r4, r1] + cmp r0, r7 + bne _0807BB7E +_0807BB96: + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_0807BB98 +sub_0807BB98: @ 0x0807BB98 + 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 + mov r8, r2 + mov sb, r3 + movs r0, #0 + cmp r0, sb + bhs _0807BBD4 +_0807BBB0: + movs r4, #0 + adds r7, r5, #0 + adds r7, #0x40 + adds r6, r0, #1 + cmp r4, r8 + bhs _0807BBCC +_0807BBBC: + adds r1, r5, r4 + ldr r0, _0807BBE0 @ =0x00004072 + mov r2, sl + bl sub_0800015E + adds r4, #1 + cmp r4, r8 + blo _0807BBBC +_0807BBCC: + adds r5, r7, #0 + adds r0, r6, #0 + cmp r0, sb + blo _0807BBB0 +_0807BBD4: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BBE0: .4byte 0x00004072 + + thumb_func_start sub_0807BBE4 +sub_0807BBE4: @ 0x0807BBE4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r0, _0807BC28 @ =gUnk_0202AEB4 + mov sl, r0 + ldr r0, _0807BC2C @ =gUnk_02010654 + mov sb, r0 + ldr r5, _0807BC30 @ =0xFFFFB000 + add r5, sl + ldr r4, _0807BC30 @ =0xFFFFB000 + add r4, sb + ldr r2, _0807BC34 @ =0xFFFFD000 + add r2, sl + ldr r1, _0807BC34 @ =0xFFFFD000 + add r1, sb + movs r3, #0 + ldr r0, _0807BC38 @ =0x00003FFF + mov r8, r0 + ldr r0, _0807BC3C @ =gUnk_080B3E80 + mov ip, r0 + ldr r7, _0807BC40 @ =gUnk_080B79A7 + ldr r6, _0807BC44 @ =0xFFFFC000 +_0807BC14: + ldrh r0, [r5] + adds r5, #2 + cmp r0, r8 + bhi _0807BC48 + lsls r0, r0, #1 + add r0, sl + ldrh r0, [r0] + add r0, ip + b _0807BC4C + .align 2, 0 +_0807BC28: .4byte gUnk_0202AEB4 +_0807BC2C: .4byte gUnk_02010654 +_0807BC30: .4byte 0xFFFFB000 +_0807BC34: .4byte 0xFFFFD000 +_0807BC38: .4byte 0x00003FFF +_0807BC3C: .4byte gUnk_080B3E80 +_0807BC40: .4byte gUnk_080B79A7 +_0807BC44: .4byte 0xFFFFC000 +_0807BC48: + adds r0, r0, r6 + adds r0, r0, r7 +_0807BC4C: + ldrb r0, [r0] + strb r0, [r2] + adds r2, #1 + ldrh r0, [r4] + adds r4, #2 + cmp r0, r8 + bhi _0807BC64 + lsls r0, r0, #1 + add r0, sb + ldrh r0, [r0] + add r0, ip + b _0807BC68 +_0807BC64: + adds r0, r0, r6 + adds r0, r0, r7 +_0807BC68: + ldrb r0, [r0] + strb r0, [r1] + adds r1, #1 + adds r3, #1 + ldr r0, _0807BC80 @ =0x00000FFF + cmp r3, r0 + bls _0807BC14 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BC80: .4byte 0x00000FFF + + thumb_func_start sub_0807BC84 +sub_0807BC84: @ 0x0807BC84 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r1, _0807BD04 @ =gUnk_03000BF0 + ldrh r0, [r1, #0x1e] + lsrs r2, r0, #4 + mov r8, r1 + cmp r2, #0x40 + bne _0807BC98 + movs r2, #0x3f +_0807BC98: + ldr r1, _0807BD08 @ =gUnk_02027EB4 + adds r3, r2, r1 + adds r6, r1, #0 + adds r6, #0x3f + ldr r0, _0807BD0C @ =gUnk_0200D654 + adds r2, r2, r0 + adds r5, r0, #0 + adds r5, #0x3f + movs r4, #0 + adds r7, r1, #0 + mov ip, r0 + movs r0, #0xff +_0807BCB0: + strb r0, [r3] + strb r0, [r6] + strb r0, [r2] + strb r0, [r5] + adds r3, #0x40 + adds r6, #0x40 + adds r2, #0x40 + adds r5, #0x40 + adds r4, #1 + cmp r4, #0x3f + bls _0807BCB0 + mov r0, r8 + ldrh r1, [r0, #0x20] + ldr r0, _0807BD10 @ =0x0000FFF0 + ands r0, r1 + lsls r0, r0, #2 + adds r3, r0, r7 + movs r1, #0xfc + lsls r1, r1, #4 + adds r6, r7, r1 + mov r1, ip + adds r2, r0, r1 + movs r5, #0xfc + lsls r5, r5, #4 + add r5, ip + movs r4, #0 + movs r0, #0xff +_0807BCE6: + strb r0, [r3] + adds r3, #1 + strb r0, [r6] + adds r6, #1 + strb r0, [r2] + adds r2, #1 + strb r0, [r5] + adds r5, #1 + adds r4, #1 + cmp r4, #0x3f + bls _0807BCE6 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BD04: .4byte gUnk_03000BF0 +_0807BD08: .4byte gUnk_02027EB4 +_0807BD0C: .4byte gUnk_0200D654 +_0807BD10: .4byte 0x0000FFF0 + + thumb_func_start sub_0807BD14 +sub_0807BD14: @ 0x0807BD14 + push {r4, r5, lr} + adds r5, r1, #0 + movs r1, #0x2e + ldrsh r2, [r0, r1] + movs r3, #0x32 + ldrsh r1, [r0, r3] + adds r0, r2, #0 + adds r2, r5, #0 + bl sub_0807BEEC + adds r3, r0, #0 + cmp r3, #0xff + beq _0807BDB4 + ldr r1, _0807BD68 @ =gUnk_03000BF0 + movs r2, #0 + movs r0, #2 + strb r0, [r1, #2] + strb r2, [r1, #3] + movs r4, #1 + strh r4, [r1] + strb r3, [r1, #5] + strb r5, [r1, #0x10] + bl sub_08052E8C + adds r2, r0, #0 + ldr r1, _0807BD6C @ =gUnk_02033A90 + ldr r3, _0807BD70 @ =0x0000085C + adds r0, r1, r3 + str r2, [r0] + ldrb r0, [r1, #0xd] + ands r4, r0 + cmp r4, #0 + beq _0807BD98 + cmp r5, #1 + beq _0807BD7E + cmp r5, #1 + blo _0807BD74 + cmp r5, #2 + beq _0807BD86 + cmp r5, #3 + beq _0807BD90 + b _0807BD98 + .align 2, 0 +_0807BD68: .4byte gUnk_03000BF0 +_0807BD6C: .4byte gUnk_02033A90 +_0807BD70: .4byte 0x0000085C +_0807BD74: + ldrh r0, [r2, #6] + ldrh r1, [r2, #2] + subs r0, r0, r1 + strh r0, [r2, #6] + b _0807BD98 +_0807BD7E: + ldrh r0, [r2] + ldrh r1, [r2, #4] + adds r0, r0, r1 + b _0807BD96 +_0807BD86: + ldrh r0, [r2, #2] + ldrh r3, [r2, #6] + adds r0, r0, r3 + strh r0, [r2, #6] + b _0807BD98 +_0807BD90: + ldrh r0, [r2, #4] + ldrh r1, [r2] + subs r0, r0, r1 +_0807BD96: + strh r0, [r2, #4] +_0807BD98: + ldr r2, _0807BDB0 @ =gLinkEntity + ldrb r1, [r2, #0x11] + movs r0, #0x10 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #6 + orrs r0, r1 + strb r0, [r2, #0x11] + bl sub_0805E5A8 + movs r0, #1 + b _0807BDB6 + .align 2, 0 +_0807BDB0: .4byte gLinkEntity +_0807BDB4: + movs r0, #0 +_0807BDB6: + pop {r4, r5, pc} + + thumb_func_start sub_0807BDB8 +sub_0807BDB8: @ 0x0807BDB8 + push {r4, r5, lr} + adds r3, r0, #0 + movs r5, #0xff + movs r0, #7 + ands r1, r0 + cmp r1, #7 + bls _0807BDC8 + b _0807BEE2 +_0807BDC8: + lsls r0, r1, #2 + ldr r1, _0807BDD4 @ =_0807BDD8 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807BDD4: .4byte _0807BDD8 +_0807BDD8: @ jump table + .4byte _0807BDF8 @ case 0 + .4byte _0807BE10 @ case 1 + .4byte _0807BE30 @ case 2 + .4byte _0807BE4C @ case 3 + .4byte _0807BE78 @ case 4 + .4byte _0807BE94 @ case 5 + .4byte _0807BEB4 @ case 6 + .4byte _0807BEC4 @ case 7 +_0807BDF8: + movs r1, #0x32 + ldrsh r0, [r3, r1] + ldr r1, _0807BE0C @ =gUnk_03000BF0 + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BEE2 + movs r5, #0 + b _0807BEE2 + .align 2, 0 +_0807BE0C: .4byte gUnk_03000BF0 +_0807BE10: + movs r2, #0x32 + ldrsh r0, [r3, r2] + ldr r2, _0807BE2C @ =gUnk_03000BF0 + ldrh r1, [r2, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BE20 + movs r5, #0 +_0807BE20: + ldrh r0, [r2, #0x1e] + subs r0, #0xa + movs r4, #0x2e + ldrsh r1, [r3, r4] + ldrh r2, [r2, #6] + b _0807BE6A + .align 2, 0 +_0807BE2C: .4byte gUnk_03000BF0 +_0807BE30: + ldr r1, _0807BE48 @ =gUnk_03000BF0 + ldrh r2, [r1, #0x1e] + subs r2, #0xa + movs r4, #0x2e + ldrsh r0, [r3, r4] + ldrh r1, [r1, #6] + subs r0, r0, r1 + cmp r2, r0 + bhs _0807BEE2 + movs r5, #1 + b _0807BEE2 + .align 2, 0 +_0807BE48: .4byte gUnk_03000BF0 +_0807BE4C: + ldr r4, _0807BE74 @ =gUnk_03000BF0 + ldrh r0, [r4, #0x20] + subs r0, #0xa + movs r2, #0x32 + ldrsh r1, [r3, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BE60 + movs r5, #2 +_0807BE60: + ldrh r0, [r4, #0x1e] + subs r0, #0xa + movs r2, #0x2e + ldrsh r1, [r3, r2] + ldrh r2, [r4, #6] +_0807BE6A: + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BEE2 + movs r5, #1 + b _0807BEE2 + .align 2, 0 +_0807BE74: .4byte gUnk_03000BF0 +_0807BE78: + ldr r1, _0807BE90 @ =gUnk_03000BF0 + ldrh r2, [r1, #0x20] + subs r2, #0xa + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r2, r0 + bhs _0807BEE2 + movs r5, #2 + b _0807BEE2 + .align 2, 0 +_0807BE90: .4byte gUnk_03000BF0 +_0807BE94: + ldr r4, _0807BEB0 @ =gUnk_03000BF0 + ldrh r0, [r4, #0x20] + subs r0, #0xa + movs r2, #0x32 + ldrsh r1, [r3, r2] + ldrh r2, [r4, #8] + subs r1, r1, r2 + cmp r0, r1 + bhs _0807BEA8 + movs r5, #2 +_0807BEA8: + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldrh r1, [r4, #6] + b _0807BEDA + .align 2, 0 +_0807BEB0: .4byte gUnk_03000BF0 +_0807BEB4: + movs r2, #0x2e + ldrsh r0, [r3, r2] + ldr r1, _0807BEC0 @ =gUnk_03000BF0 + ldrh r1, [r1, #6] + b _0807BEDA + .align 2, 0 +_0807BEC0: .4byte gUnk_03000BF0 +_0807BEC4: + movs r4, #0x32 + ldrsh r0, [r3, r4] + ldr r2, _0807BEE8 @ =gUnk_03000BF0 + ldrh r1, [r2, #8] + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BED4 + movs r5, #0 +_0807BED4: + movs r1, #0x2e + ldrsh r0, [r3, r1] + ldrh r1, [r2, #6] +_0807BEDA: + subs r0, r0, r1 + cmp r0, #9 + bhi _0807BEE2 + movs r5, #3 +_0807BEE2: + adds r0, r5, #0 + pop {r4, r5, pc} + .align 2, 0 +_0807BEE8: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807BEEC +sub_0807BEEC: @ 0x0807BEEC + push {r4, r5, r6, r7, lr} + adds r6, r0, #0 + adds r7, r1, #0 + ldr r0, _0807BF04 @ =gUnk_02033A90 + ldrb r1, [r0, #0xd] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807BF0C + ldr r0, _0807BF08 @ =gUnk_03000BF0 + ldrb r0, [r0, #5] + b _0807BF7C + .align 2, 0 +_0807BF04: .4byte gUnk_02033A90 +_0807BF08: .4byte gUnk_03000BF0 +_0807BF0C: + cmp r2, #1 + beq _0807BF2C + cmp r2, #1 + blo _0807BF1E + cmp r2, #2 + beq _0807BF40 + cmp r2, #3 + beq _0807BF58 + b _0807BF7A +_0807BF1E: + ldr r0, _0807BF28 @ =gUnk_03000BF0 + ldrh r0, [r0, #8] + adds r7, r0, #0 + subs r7, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF28: .4byte gUnk_03000BF0 +_0807BF2C: + ldr r0, _0807BF3C @ =gUnk_03000BF0 + ldrh r1, [r0, #6] + ldrh r0, [r0, #0x1e] + adds r1, r1, r0 + adds r6, r1, #0 + adds r6, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF3C: .4byte gUnk_03000BF0 +_0807BF40: + ldr r0, _0807BF50 @ =gUnk_03000BF0 + ldrh r1, [r0, #8] + ldrh r0, [r0, #0x20] + adds r1, r1, r0 + adds r7, r1, #0 + adds r7, #0x10 + b _0807BF60 + .align 2, 0 +_0807BF50: .4byte gUnk_03000BF0 +_0807BF54: + adds r0, r4, #0 + b _0807BF7C +_0807BF58: + ldr r0, _0807BF80 @ =gUnk_03000BF0 + ldrh r0, [r0, #6] + adds r6, r0, #0 + subs r6, #0x10 +_0807BF60: + ldr r5, _0807BF84 @ =gUnk_02033ACC + movs r4, #0 +_0807BF64: + adds r0, r6, #0 + adds r1, r7, #0 + adds r2, r5, #0 + bl sub_0807BF88 + cmp r0, #0 + bne _0807BF54 + adds r4, #1 + adds r5, #0x20 + cmp r4, #0x3f + bls _0807BF64 +_0807BF7A: + movs r0, #0xff +_0807BF7C: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807BF80: .4byte gUnk_03000BF0 +_0807BF84: .4byte gUnk_02033ACC + + thumb_func_start sub_0807BF88 +sub_0807BF88: @ 0x0807BF88 + push {r4, lr} + adds r3, r2, #0 + ldrh r2, [r3, #4] + subs r0, r0, r2 + ldrh r2, [r3, #6] + subs r1, r1, r2 + movs r2, #0 + ldrh r4, [r3] + cmp r0, r4 + bhs _0807BFA4 + ldrh r3, [r3, #2] + cmp r1, r3 + bhs _0807BFA4 + movs r2, #1 +_0807BFA4: + adds r0, r2, #0 + pop {r4, pc} + + thumb_func_start sub_0807BFA8 +sub_0807BFA8: @ 0x0807BFA8 + ldr r2, _0807BFC4 @ =gUnk_03000BF0 + ldr r0, _0807BFC8 @ =gUnk_02033A90 + ldr r1, _0807BFCC @ =0x0000085C + adds r0, r0, r1 + ldr r1, [r0] + ldrh r0, [r1, #4] + strh r0, [r2, #6] + ldrh r0, [r1, #6] + strh r0, [r2, #8] + ldrh r0, [r1] + strh r0, [r2, #0x1e] + ldrh r0, [r1, #2] + strh r0, [r2, #0x20] + bx lr + .align 2, 0 +_0807BFC4: .4byte gUnk_03000BF0 +_0807BFC8: .4byte gUnk_02033A90 +_0807BFCC: .4byte 0x0000085C + + thumb_func_start sub_0807BFD0 +sub_0807BFD0: @ 0x0807BFD0 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + bl sub_0801B170 + bl sub_0807BFA8 + ldr r7, _0807C0B8 @ =0x0000FFFF + ldr r6, _0807C0BC @ =gUnk_0202AEB4 + movs r0, #0x80 + lsls r0, r0, #5 + mov r8, r0 + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_0801D5EC + movs r5, #0 + strh r5, [r6] + ldr r4, _0807C0C0 @ =gUnk_02010654 + adds r0, r7, #0 + adds r1, r4, #0 + mov r2, r8 + bl sub_0801D5EC + strh r5, [r4] + ldr r2, _0807C0C4 @ =gUnk_03000BF0 + ldr r0, _0807C0C8 @ =gUnk_02033A90 + ldr r1, _0807C0CC @ =0x0000085C + adds r4, r0, r1 + ldr r0, [r4] + ldr r1, [r2, #0x34] + ldr r0, [r0, #8] + cmp r1, r0 + beq _0807C01C + str r0, [r2, #0x34] + bl sub_080197D4 +_0807C01C: + ldr r0, [r4] + ldr r0, [r0, #0x10] + bl sub_080197D4 + ldr r1, _0807C0D0 @ =gUnk_020176A0 + adds r0, r1, #0 + adds r0, #0x60 + movs r2, #0xa8 + lsls r2, r2, #2 + adds r1, r1, r2 + movs r2, #0x20 + bl sub_0801D66C + ldr r2, _0807C0D4 @ =gUnk_0200B644 + ldr r0, [r2] + movs r1, #0x80 + lsls r1, r1, #0xe + orrs r0, r1 + str r0, [r2] + ldr r0, [r4] + ldr r0, [r0, #0x14] + cmp r0, #0 + beq _0807C04E + bl sub_0801B130 +_0807C04E: + adds r5, r6, #0 + movs r0, #0x80 + lsls r0, r0, #5 + adds r6, r5, r0 + adds r0, r7, #0 + adds r1, r6, #0 + mov r2, r8 + bl sub_0801D5EC + movs r2, #0 + ldr r3, _0807C0D8 @ =0x000007FF + adds r4, r7, #0 +_0807C066: + ldrh r0, [r5] + cmp r0, r3 + bhi _0807C078 + lsls r0, r0, #1 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, r4 + bne _0807C078 + strh r2, [r1] +_0807C078: + adds r2, #1 + adds r5, #2 + cmp r2, r3 + ble _0807C066 + movs r2, #0x80 + lsls r2, r2, #5 + ldr r5, _0807C0C0 @ =gUnk_02010654 + adds r6, r5, r2 + ldr r4, _0807C0B8 @ =0x0000FFFF + adds r0, r4, #0 + adds r1, r6, #0 + bl sub_0801D5EC + movs r2, #0 + ldr r3, _0807C0D8 @ =0x000007FF +_0807C096: + ldrh r0, [r5] + cmp r0, r3 + bhi _0807C0A8 + lsls r0, r0, #1 + adds r1, r0, r6 + ldrh r0, [r1] + cmp r0, r4 + bne _0807C0A8 + strh r2, [r1] +_0807C0A8: + adds r2, #1 + adds r5, #2 + cmp r2, r3 + ble _0807C096 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807C0B8: .4byte 0x0000FFFF +_0807C0BC: .4byte gUnk_0202AEB4 +_0807C0C0: .4byte gUnk_02010654 +_0807C0C4: .4byte gUnk_03000BF0 +_0807C0C8: .4byte gUnk_02033A90 +_0807C0CC: .4byte 0x0000085C +_0807C0D0: .4byte gUnk_020176A0 +_0807C0D4: .4byte gUnk_0200B644 +_0807C0D8: .4byte 0x000007FF + + thumb_func_start sub_0807C0DC +sub_0807C0DC: @ 0x0807C0DC + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + bl sub_0807BFA8 + ldr r7, _0807C158 @ =gUnk_03000BF0 + ldrb r1, [r7, #0xf] + movs r0, #0xfc + ands r0, r1 + strb r0, [r7, #0xf] + ldr r5, _0807C15C @ =gUnk_0200B654 + movs r6, #0x80 + lsls r6, r6, #6 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + adds r0, r5, r6 + movs r1, #0x80 + lsls r1, r1, #5 + bl sub_0801D630 + ldr r0, _0807C160 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C164 @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C168 @ =gUnk_02033A90 + ldr r1, _0807C16C @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0, #0xc] + bl sub_080197D4 + ldr r2, _0807C170 @ =gUnk_02025EB0 + ldrh r1, [r2, #4] + ldr r0, _0807C174 @ =0x0000FFFF + cmp r1, r0 + beq _0807C178 + adds r0, r2, #4 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C8B0 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + adds r0, r5, #0 + bl sub_0807C8B0 + movs r2, #0 + mov sb, r2 + b _0807C184 + .align 2, 0 +_0807C158: .4byte gUnk_03000BF0 +_0807C15C: .4byte gUnk_0200B654 +_0807C160: .4byte gUnk_02019EE0 +_0807C164: .4byte gUnk_02002F00 +_0807C168: .4byte gUnk_02033A90 +_0807C16C: .4byte 0x0000085C +_0807C170: .4byte gUnk_02025EB0 +_0807C174: .4byte 0x0000FFFF +_0807C178: + adds r0, r2, #4 + adds r1, r6, #0 + bl sub_0801D630 + movs r3, #1 + mov sb, r3 +_0807C184: + ldr r0, _0807C1B0 @ =gUnk_030010A0 + adds r0, #0x2d + ldrb r0, [r0] + cmp r0, #0 + bne _0807C1BC + ldr r0, _0807C1B4 @ =gUnk_02025EB4 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + movs r4, #0x80 + lsls r4, r4, #6 + adds r2, r4, #0 + bl sub_0801D66C + ldr r0, _0807C1B8 @ =gUnk_0200B654 + movs r3, #0xc0 + lsls r3, r3, #6 + adds r1, r0, r3 + adds r2, r4, #0 + bl sub_0801D66C + b _0807C26C + .align 2, 0 +_0807C1B0: .4byte gUnk_030010A0 +_0807C1B4: .4byte gUnk_02025EB4 +_0807C1B8: .4byte gUnk_0200B654 +_0807C1BC: + cmp r0, #2 + bne _0807C26C + ldr r4, _0807C278 @ =gUnk_02025EB4 + movs r0, #0xb0 + lsls r0, r0, #8 + adds r0, r0, r4 + mov r8, r0 + movs r5, #0x80 + lsls r5, r5, #5 + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r1, #0xc0 + lsls r1, r1, #6 + adds r6, r4, r1 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r6, r4, r5 + adds r0, r6, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r2, #0x80 + lsls r2, r2, #7 + adds r4, r4, r2 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + ldr r4, _0807C27C @ =gUnk_0200B654 + movs r3, #0xb0 + lsls r3, r3, #8 + adds r3, r3, r4 + mov r8, r3 + adds r0, r4, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r0, #0xc0 + lsls r0, r0, #6 + adds r6, r4, r0 + adds r0, r6, #0 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + adds r6, r4, r5 + adds r0, r6, #0 + mov r1, r8 + adds r2, r5, #0 + bl sub_0801D66C + movs r1, #0x80 + lsls r1, r1, #7 + adds r4, r4, r1 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + bl sub_0801D66C + mov r0, r8 + adds r1, r4, #0 + adds r2, r5, #0 + bl sub_0801D66C +_0807C26C: + mov r2, sb + cmp r2, #0 + bne _0807C280 + bl sub_0807BBE4 + b _0807C2A0 + .align 2, 0 +_0807C278: .4byte gUnk_02025EB4 +_0807C27C: .4byte gUnk_0200B654 +_0807C280: + ldr r0, _0807C2CC @ =gUnk_02027EB4 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C69C + ldr r0, _0807C2D0 @ =gUnk_0200D654 + ldrh r1, [r7, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r7, #0x20] + lsrs r2, r2, #4 + bl sub_0807C69C + bl sub_0807C460 +_0807C2A0: + bl sub_0807BC84 + ldr r4, _0807C2D4 @ =gUnk_02025EB0 + adds r0, r4, #0 + bl sub_08080B60 + ldr r5, _0807C2D8 @ =gUnk_0200B650 + adds r0, r5, #0 + bl sub_08080B60 + mov r3, sb + cmp r3, #0 + bne _0807C2E4 + ldr r0, _0807C2DC @ =gUnk_02019EE0 + adds r1, r4, #0 + bl sub_0801AB08 + ldr r0, _0807C2E0 @ =gUnk_02002F00 + adds r1, r5, #0 + bl sub_0801AB08 + b _0807C326 + .align 2, 0 +_0807C2CC: .4byte gUnk_02027EB4 +_0807C2D0: .4byte gUnk_0200D654 +_0807C2D4: .4byte gUnk_02025EB0 +_0807C2D8: .4byte gUnk_0200B650 +_0807C2DC: .4byte gUnk_02019EE0 +_0807C2E0: .4byte gUnk_02002F00 +_0807C2E4: + ldr r4, _0807C34C @ =gUnk_02019EE0 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r6, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + ldr r4, _0807C350 @ =gUnk_02002F00 + adds r5, r4, r6 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 +_0807C326: + mov r1, sb + cmp r1, #0 + bne _0807C332 + ldrb r0, [r7, #4] + cmp r0, #0x71 + bne _0807C33A +_0807C332: + ldrb r1, [r7, #0xf] + movs r0, #1 + orrs r0, r1 + strb r0, [r7, #0xf] +_0807C33A: + ldrb r0, [r7, #4] + subs r0, #0x20 + cmp r0, #0x18 + bhi _0807C400 + lsls r0, r0, #2 + ldr r1, _0807C354 @ =_0807C358 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807C34C: .4byte gUnk_02019EE0 +_0807C350: .4byte gUnk_02002F00 +_0807C354: .4byte _0807C358 +_0807C358: @ jump table + .4byte _0807C3BC @ case 0 + .4byte _0807C3E4 @ case 1 + .4byte _0807C3E4 @ case 2 + .4byte _0807C3E4 @ case 3 + .4byte _0807C3E4 @ case 4 + .4byte _0807C3E4 @ case 5 + .4byte _0807C400 @ case 6 + .4byte _0807C3E4 @ case 7 + .4byte _0807C3E4 @ case 8 + .4byte _0807C400 @ case 9 + .4byte _0807C400 @ case 10 + .4byte _0807C400 @ case 11 + .4byte _0807C400 @ case 12 + .4byte _0807C3BC @ case 13 + .4byte _0807C400 @ case 14 + .4byte _0807C400 @ case 15 + .4byte _0807C3E4 @ case 16 + .4byte _0807C400 @ case 17 + .4byte _0807C400 @ case 18 + .4byte _0807C400 @ case 19 + .4byte _0807C400 @ case 20 + .4byte _0807C400 @ case 21 + .4byte _0807C400 @ case 22 + .4byte _0807C400 @ case 23 + .4byte _0807C3E4 @ case 24 +_0807C3BC: + ldr r0, _0807C3D8 @ =gUnk_02025EB0 + ldr r2, [r0] + cmp r2, #0 + beq _0807C3CC + ldrh r1, [r2] + movs r0, #0x80 + orrs r0, r1 + strh r0, [r2] +_0807C3CC: + ldr r2, _0807C3DC @ =gUnk_03000F50 + ldrh r1, [r2] + ldr r0, _0807C3E0 @ =0x0000FDFF + ands r0, r1 + strh r0, [r2] + b _0807C444 + .align 2, 0 +_0807C3D8: .4byte gUnk_02025EB0 +_0807C3DC: .4byte gUnk_03000F50 +_0807C3E0: .4byte 0x0000FDFF +_0807C3E4: + ldr r0, _0807C3F8 @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _0807C3F2 + ldr r0, _0807C3FC @ =gUnk_080B77C0 + ldrh r0, [r0, #4] + strh r0, [r1] +_0807C3F2: + bl sub_0807C5B0 + b _0807C444 + .align 2, 0 +_0807C3F8: .4byte gUnk_0200B650 +_0807C3FC: .4byte gUnk_080B77C0 +_0807C400: + ldr r0, _0807C44C @ =gUnk_02025EB0 + ldr r1, [r0] + cmp r1, #0 + beq _0807C40E + ldr r0, _0807C450 @ =gUnk_080B77C0 + ldrh r0, [r0] + strh r0, [r1] +_0807C40E: + ldr r0, _0807C454 @ =gUnk_0200B650 + ldr r1, [r0] + cmp r1, #0 + beq _0807C41C + ldr r0, _0807C450 @ =gUnk_080B77C0 + ldrh r0, [r0, #2] + strh r0, [r1] +_0807C41C: + ldr r2, _0807C458 @ =gUnk_03000F50 + ldrh r0, [r2] + movs r1, #0x80 + lsls r1, r1, #4 + ands r1, r0 + movs r3, #0xba + lsls r3, r3, #5 + adds r0, r3, #0 + movs r3, #0 + orrs r1, r0 + strh r1, [r2] + ldr r0, _0807C45C @ =gUnk_02033A90 + ldrb r0, [r0, #0xc] + cmp r0, #0 + beq _0807C444 + movs r3, #0xa0 + lsls r3, r3, #8 + adds r0, r3, #0 + orrs r1, r0 + strh r1, [r2] +_0807C444: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807C44C: .4byte gUnk_02025EB0 +_0807C450: .4byte gUnk_080B77C0 +_0807C454: .4byte gUnk_0200B650 +_0807C458: .4byte gUnk_03000F50 +_0807C45C: .4byte gUnk_02033A90 + + thumb_func_start sub_0807C460 +sub_0807C460: @ 0x0807C460 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r7, _0807C4E8 @ =gUnk_02025EB4 + ldr r6, _0807C4EC @ =gUnk_0200B654 + ldr r0, _0807C4F0 @ =gUnk_03000BF0 + ldrh r1, [r0, #0x1e] + lsrs r3, r1, #4 + ldrh r0, [r0, #0x20] + lsrs r0, r0, #4 + str r0, [sp] + movs r4, #0 + movs r1, #0 + cmp r1, r0 + bhs _0807C4DC + movs r0, #0x40 + subs r0, r0, r3 + lsls r0, r0, #1 + mov sb, r0 +_0807C48C: + movs r5, #0 + adds r1, #1 + mov sl, r1 + cmp r5, r3 + bhs _0807C4CA + ldr r0, _0807C4F4 @ =0x00003FFF + mov r8, r0 +_0807C49A: + ldrh r0, [r7] + cmp r0, r8 + bls _0807C4AC + adds r1, r4, #0 + movs r2, #1 + str r3, [sp, #4] + bl sub_0800015E + ldr r3, [sp, #4] +_0807C4AC: + ldrh r0, [r6] + cmp r0, r8 + bls _0807C4BE + adds r1, r4, #0 + movs r2, #2 + str r3, [sp, #4] + bl sub_0800015E + ldr r3, [sp, #4] +_0807C4BE: + adds r7, #2 + adds r6, #2 + adds r4, #1 + adds r5, #1 + cmp r5, r3 + blo _0807C49A +_0807C4CA: + add r7, sb + add r6, sb + adds r0, r4, #0 + adds r0, #0x40 + subs r4, r0, r3 + mov r1, sl + ldr r0, [sp] + cmp r1, r0 + blo _0807C48C +_0807C4DC: + 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 +_0807C4E8: .4byte gUnk_02025EB4 +_0807C4EC: .4byte gUnk_0200B654 +_0807C4F0: .4byte gUnk_03000BF0 +_0807C4F4: .4byte 0x00003FFF + + thumb_func_start sub_0807C4F8 +sub_0807C4F8: @ 0x0807C4F8 + push {r4, r5, r6, lr} + ldr r0, _0807C594 @ =gUnk_03000BF0 + ldrb r0, [r0, #4] + cmp r0, #0x71 + beq _0807C592 + ldr r0, _0807C598 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl sub_0801D630 + ldr r0, _0807C59C @ =gUnk_02002F00 + adds r1, r4, #0 + bl sub_0801D630 + ldr r5, _0807C5A0 @ =gUnk_02022830 + ldr r0, _0807C5A4 @ =gUnk_02033A90 + ldr r1, _0807C5A8 @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r4, [r0, #0xc] + subs r4, #0xc +_0807C524: + adds r4, #0xc + ldr r1, [r4, #4] + ldr r0, _0807C598 @ =gUnk_02019EE0 + cmp r1, r0 + beq _0807C534 + ldr r0, _0807C59C @ =gUnk_02002F00 + cmp r1, r0 + bne _0807C54A +_0807C534: + ldr r0, [r4] + ldr r1, _0807C5AC @ =0x7FFFFFFF + ands r0, r1 + str r0, [r5] + ldr r0, [r4, #4] + str r0, [r5, #4] + ldr r0, [r4, #8] + str r0, [r5, #8] + adds r0, r5, #0 + bl sub_080197D4 +_0807C54A: + ldr r0, [r4] + cmp r0, #0 + blt _0807C524 + ldr r4, _0807C598 @ =gUnk_02019EE0 + movs r0, #0x80 + lsls r0, r0, #7 + adds r5, r4, r0 + adds r6, r0, #0 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 + ldr r4, _0807C59C @ =gUnk_02002F00 + adds r5, r4, r6 + adds r0, r4, #0 + adds r1, r5, #0 + adds r2, r6, #0 + bl sub_0801D66C + adds r0, r4, #0 + adds r1, r5, #0 + bl sub_0807C5F4 + adds r0, r5, #0 + adds r1, r6, #0 + bl sub_0801D630 +_0807C592: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C594: .4byte gUnk_03000BF0 +_0807C598: .4byte gUnk_02019EE0 +_0807C59C: .4byte gUnk_02002F00 +_0807C5A0: .4byte gUnk_02022830 +_0807C5A4: .4byte gUnk_02033A90 +_0807C5A8: .4byte 0x0000085C +_0807C5AC: .4byte 0x7FFFFFFF + + thumb_func_start sub_0807C5B0 +sub_0807C5B0: @ 0x0807C5B0 + push {r4, r5, r6, lr} + ldr r5, _0807C5E8 @ =gUnk_0200D654 + movs r4, #0x80 + lsls r4, r4, #5 + movs r3, #0 + ldr r6, _0807C5EC @ =gUnk_03000BF0 + ldr r2, _0807C5F0 @ =gUnk_02027EB4 +_0807C5BE: + adds r0, r5, r3 + ldrb r0, [r0] + cmp r0, #0 + beq _0807C5D4 + cmp r0, #0xf + bhi _0807C5D2 + ldrb r1, [r2] + cmp r1, #0xf + bhi _0807C5D4 + orrs r0, r1 +_0807C5D2: + strb r0, [r2] +_0807C5D4: + adds r2, #1 + adds r3, #1 + cmp r3, r4 + blo _0807C5BE + ldrb r1, [r6, #0xf] + movs r0, #2 + orrs r0, r1 + strb r0, [r6, #0xf] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C5E8: .4byte gUnk_0200D654 +_0807C5EC: .4byte gUnk_03000BF0 +_0807C5F0: .4byte gUnk_02027EB4 + + thumb_func_start sub_0807C5F4 +sub_0807C5F4: @ 0x0807C5F4 + push {r4, r5, r6, lr} + adds r5, r0, #0 + adds r2, r5, #0 + movs r0, #0x20 + ldr r6, _0807C698 @ =gUnk_03000BF0 +_0807C5FE: + movs r3, #0 + subs r4, r0, #1 +_0807C602: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C602 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C5FE + ldrh r0, [r6, #0x1e] + cmp r0, #0xff + bls _0807C63E + adds r2, r5, #0 + adds r2, #0x40 + movs r0, #0x20 +_0807C624: + movs r3, #0 + subs r4, r0, #1 +_0807C628: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C628 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C624 +_0807C63E: + ldrh r0, [r6, #0x20] + cmp r0, #0xff + bls _0807C666 + movs r0, #0x80 + lsls r0, r0, #6 + adds r2, r5, r0 + movs r0, #0x20 +_0807C64C: + movs r3, #0 + subs r4, r0, #1 +_0807C650: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C650 + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C64C +_0807C666: + ldrh r0, [r6, #0x1e] + cmp r0, #0xff + bls _0807C694 + ldrh r0, [r6, #0x20] + cmp r0, #0xff + bls _0807C694 + movs r0, #0x81 + lsls r0, r0, #6 + adds r2, r5, r0 + movs r0, #0x20 +_0807C67A: + movs r3, #0 + subs r4, r0, #1 +_0807C67E: + ldrh r0, [r1] + strh r0, [r2] + adds r1, #2 + adds r2, #2 + adds r3, #1 + cmp r3, #0x1f + bls _0807C67E + adds r2, #0xc0 + adds r0, r4, #0 + cmp r0, #0 + bne _0807C67A +_0807C694: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C698: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807C69C +sub_0807C69C: @ 0x0807C69C + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov sb, r0 + adds r6, r1, #0 + mov r8, r2 + mov r0, r8 + muls r0, r6, r0 + add r0, sb + subs r2, r0, #1 + mov r0, r8 + subs r0, #1 + lsls r0, r0, #6 + add r0, sb + subs r1, r6, #1 + adds r4, r0, r1 + movs r5, #0 + cmp r5, r8 + bhs _0807C6EA +_0807C6C4: + movs r3, #0 + adds r7, r4, #0 + subs r7, #0x40 + subs r0, r2, r6 + mov ip, r0 + cmp r3, r6 + bhs _0807C6E0 +_0807C6D2: + subs r0, r4, r3 + subs r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, #1 + cmp r3, r6 + blo _0807C6D2 +_0807C6E0: + adds r4, r7, #0 + mov r2, ip + adds r5, #1 + cmp r5, r8 + blo _0807C6C4 +_0807C6EA: + movs r0, #0x40 + subs r7, r0, r6 + movs r5, #0 + mov r1, r8 + lsls r2, r1, #6 + mov r0, sb + adds r1, r0, r6 +_0807C6F8: + lsls r0, r5, #6 + adds r4, r1, r0 + movs r3, #0 + adds r6, r5, #1 + cmp r3, r7 + bhs _0807C710 + movs r5, #0 +_0807C706: + adds r0, r4, r3 + strb r5, [r0] + adds r3, #1 + cmp r3, r7 + blo _0807C706 +_0807C710: + adds r5, r6, #0 + cmp r5, #0x3f + bls _0807C6F8 + movs r0, #0x40 + mov r1, r8 + subs r7, r0, r1 + mov r0, sb + adds r4, r0, r2 + movs r5, #0 + cmp r5, r7 + bhs _0807C736 +_0807C726: + adds r0, r4, #0 + movs r1, #0x40 + bl sub_0801D630 + adds r4, #0x40 + adds r5, #1 + cmp r5, r7 + blo _0807C726 +_0807C736: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807C740 +sub_0807C740: @ 0x0807C740 + push {r4, r5, lr} + bl sub_0807BFD0 + bl sub_0807C0DC + ldr r4, _0807C780 @ =gUnk_03000BF0 + ldr r2, [r4, #0x30] + cmp r2, #0 + beq _0807C788 + ldrh r1, [r2, #0x2e] + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0807C764 + ldr r0, _0807C784 @ =0x00007FFF + ands r0, r1 + ldrh r1, [r4, #6] + subs r0, r0, r1 + strh r0, [r2, #0x2e] +_0807C764: + movs r0, #0x2e + ldrsh r3, [r2, r0] + ldrh r1, [r2, #0x32] + lsls r0, r1, #0x10 + cmp r0, #0 + bge _0807C77A + ldr r0, _0807C784 @ =0x00007FFF + ands r0, r1 + ldrh r1, [r4, #8] + subs r0, r0, r1 + strh r0, [r2, #0x32] +_0807C77A: + movs r0, #0x32 + ldrsh r5, [r2, r0] + b _0807C78C + .align 2, 0 +_0807C780: .4byte gUnk_03000BF0 +_0807C784: .4byte 0x00007FFF +_0807C788: + movs r3, #0 + movs r5, #0 +_0807C78C: + cmp r3, #0x77 + bgt _0807C794 + movs r0, #0 + b _0807C7A2 +_0807C794: + ldrh r1, [r4, #0x1e] + adds r0, r1, #0 + subs r0, #0x78 + cmp r0, r3 + blt _0807C7A0 + adds r0, r3, #0 +_0807C7A0: + subs r0, #0x78 +_0807C7A2: + strh r0, [r4, #0xa] + ldrh r1, [r4, #6] + ldrh r2, [r4, #0xa] + adds r0, r1, r2 + strh r0, [r4, #0xa] + cmp r5, #0x4f + bgt _0807C7B4 + movs r0, #0 + b _0807C7C2 +_0807C7B4: + ldrh r2, [r4, #0x20] + adds r0, r2, #0 + subs r0, #0x50 + cmp r0, r5 + blt _0807C7C0 + adds r0, r5, #0 +_0807C7C0: + subs r0, #0x50 +_0807C7C2: + strh r0, [r4, #0xc] + ldrh r0, [r4, #8] + ldrh r3, [r4, #0xc] + adds r0, r0, r3 + strh r0, [r4, #0xc] + ldr r2, [r4, #0x30] + cmp r2, #0 + beq _0807C7FC + ldrh r3, [r2, #0x2e] + adds r0, r1, r3 + strh r0, [r2, #0x2e] + ldr r1, [r4, #0x30] + ldrh r0, [r4, #8] + ldrh r2, [r1, #0x32] + adds r0, r0, r2 + strh r0, [r1, #0x32] + ldr r0, _0807C80C @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807C7FC + ldr r0, [r4, #0x30] + adds r0, #0x38 + movs r1, #1 + strb r1, [r0] + ldr r0, [r4, #0x30] + bl sub_08016A04 +_0807C7FC: + ldrb r1, [r4, #0xf] + movs r0, #0xfb + ands r0, r1 + strb r0, [r4, #0xf] + bl sub_08080BC4 + pop {r4, r5, pc} + .align 2, 0 +_0807C80C: .4byte gUnk_03000BF0 + + thumb_func_start sub_0807C810 +sub_0807C810: @ 0x0807C810 + push {r4, r5, r6, lr} + bl sub_0807BFD0 + ldr r2, _0807C850 @ =gUnk_03004030 + ldr r6, _0807C854 @ =gLinkEntity + ldr r4, _0807C858 @ =gUnk_03000BF0 + ldr r3, [r2] + ldrh r1, [r3, #6] + movs r0, #0x3f + ands r0, r1 + lsls r0, r0, #4 + ldrh r1, [r4, #6] + adds r0, r0, r1 + ldrh r1, [r2, #4] + adds r1, r1, r0 + movs r5, #0 + strh r1, [r6, #0x2e] + ldrh r1, [r3, #6] + movs r0, #0xfc + lsls r0, r0, #4 + ands r0, r1 + lsrs r0, r0, #2 + ldrh r4, [r4, #8] + adds r0, r0, r4 + ldrh r1, [r2, #6] + adds r1, r1, r0 + strh r1, [r6, #0x32] + bl sub_080809D4 + ldr r0, _0807C85C @ =gUnk_02000070 + strb r5, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807C850: .4byte gUnk_03004030 +_0807C854: .4byte gLinkEntity +_0807C858: .4byte gUnk_03000BF0 +_0807C85C: .4byte gUnk_02000070 + + thumb_func_start sub_0807C860 +sub_0807C860: @ 0x0807C860 + push {r4, lr} + ldr r0, _0807C88C @ =gUnk_030010A0 + adds r0, #0x2d + movs r1, #1 + strb r1, [r0] + ldr r0, _0807C890 @ =gUnk_02025EB4 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + movs r4, #0x80 + lsls r4, r4, #6 + adds r2, r4, #0 + bl sub_0801D66C + ldr r0, _0807C894 @ =gUnk_0200B654 + movs r2, #0xc0 + lsls r2, r2, #6 + adds r1, r0, r2 + adds r2, r4, #0 + bl sub_0801D66C + pop {r4, pc} + .align 2, 0 +_0807C88C: .4byte gUnk_030010A0 +_0807C890: .4byte gUnk_02025EB4 +_0807C894: .4byte gUnk_0200B654 + + thumb_func_start sub_0807C898 +sub_0807C898: @ 0x0807C898 + push {r4, r5, lr} + ldr r4, _0807C8AC @ =gUnk_030010A0 + adds r4, #0x2d + movs r5, #0 + movs r0, #2 + strb r0, [r4] + bl sub_0807C0DC + strb r5, [r4] + pop {r4, r5, pc} + .align 2, 0 +_0807C8AC: .4byte gUnk_030010A0 + + thumb_func_start sub_0807C8B0 +sub_0807C8B0: @ 0x0807C8B0 + push {r4, r5, r6, r7, lr} + mov r7, sb + mov r6, r8 + push {r6, r7} + mov r8, r0 + adds r4, r1, #0 + mov ip, r2 + mov r0, ip + muls r0, r4, r0 + lsls r0, r0, #1 + add r0, r8 + subs r7, r0, #2 + mov r0, ip + subs r0, #1 + lsls r0, r0, #7 + add r0, r8 + lsls r3, r4, #1 + subs r1, r3, #2 + adds r0, r0, r1 + movs r5, #0 + cmp r5, ip + bhs _0807C906 + mov sb, r3 +_0807C8DE: + movs r2, #0 + adds r6, r0, #0 + subs r6, #0x80 + cmp r2, r4 + bhs _0807C8FA + adds r1, r7, #0 + adds r3, r0, #0 +_0807C8EC: + ldrh r0, [r1] + strh r0, [r3] + subs r1, #2 + subs r3, #2 + adds r2, #1 + cmp r2, r4 + blo _0807C8EC +_0807C8FA: + adds r0, r6, #0 + mov r1, sb + subs r7, r7, r1 + adds r5, #1 + cmp r5, ip + blo _0807C8DE +_0807C906: + movs r0, #0x40 + subs r6, r0, r4 + movs r5, #0 + lsls r0, r4, #1 + mov r2, ip + lsls r7, r2, #7 + mov r2, r8 + adds r1, r2, r0 +_0807C916: + lsls r0, r5, #7 + adds r0, r1, r0 + movs r2, #0 + adds r3, r5, #1 + cmp r2, r6 + bhs _0807C92E + movs r4, #0 +_0807C924: + strh r4, [r0] + adds r0, #2 + adds r2, #1 + cmp r2, r6 + blo _0807C924 +_0807C92E: + adds r5, r3, #0 + cmp r5, #0x3f + bls _0807C916 + movs r0, #0x40 + mov r1, ip + subs r6, r0, r1 + mov r2, r8 + adds r0, r2, r7 + movs r5, #0 + cmp r5, r6 + bhs _0807C956 + adds r4, r0, #0 +_0807C946: + adds r0, r4, #0 + movs r1, #0x80 + bl sub_0801D630 + adds r4, #0x80 + adds r5, #1 + cmp r5, r6 + blo _0807C946 +_0807C956: + pop {r3, r4} + mov r8, r3 + mov sb, r4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start sub_0807C960 +sub_0807C960: @ 0x0807C960 + push {lr} + adds r2, r0, #0 + movs r0, #1 + rsbs r0, r0, #0 + cmp r1, r0 + beq _0807C994 + ldr r0, _0807C984 @ =0x7FFFFFFF + ands r0, r1 + ldr r1, _0807C988 @ =gUnk_08324AE4 + adds r1, r0, r1 + lsrs r0, r2, #0x18 + cmp r0, #6 + bne _0807C98C + adds r0, r1, #0 + adds r1, r2, #0 + bl LZ77UnCompVram + b _0807C994 + .align 2, 0 +_0807C984: .4byte 0x7FFFFFFF +_0807C988: .4byte gUnk_08324AE4 +_0807C98C: + adds r0, r1, #0 + adds r1, r2, #0 + 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 + + thumb_func_start sub_0807CA84 +sub_0807CA84: @ 0x0807CA84 + adds r2, r0, #0 + lsrs r0, r2, #2 + ldr r1, _0807CA9C @ =gUnk_02002B32 + adds r0, r0, r1 + ldrb r0, [r0] + movs r1, #3 + ands r2, r1 + lsls r2, r2, #1 + asrs r0, r2 + ands r0, r1 + bx lr + .align 2, 0 +_0807CA9C: .4byte gUnk_02002B32 + + thumb_func_start sub_0807CAA0 +sub_0807CAA0: @ 0x0807CAA0 + push {r4, lr} + adds r3, r0, #0 + lsrs r4, r3, #2 + ldr r0, _0807CAC4 @ =gUnk_02002B32 + adds r4, r4, r0 + movs r0, #3 + ands r3, r0 + lsls r3, r3, #1 + lsls r1, r3 + ldrb r2, [r4] + lsls r0, r3 + ands r0, r2 + eors r2, r0 + orrs r2, r1 + strb r2, [r4] + lsrs r0, r3 + pop {r4, pc} + .align 2, 0 +_0807CAC4: .4byte gUnk_02002B32 + + thumb_func_start sub_0807CAC8 +sub_0807CAC8: @ 0x0807CAC8 + ldr r2, _0807CAE0 @ =gUnk_02002A40 + ldr r1, _0807CAE4 @ =gUnk_02033A90 + ldr r3, _0807CAE8 @ =0x0000047C + adds r2, r2, r3 + ldrb r1, [r1, #3] + adds r2, r2, r1 + movs r1, #1 + lsls r1, r0 + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] + bx lr + .align 2, 0 +_0807CAE0: .4byte gUnk_02002A40 +_0807CAE4: .4byte gUnk_02033A90 +_0807CAE8: .4byte 0x0000047C + + thumb_func_start sub_0807CAEC +sub_0807CAEC: @ 0x0807CAEC + adds r2, r0, #0 + ldr r0, _0807CB04 @ =gUnk_02002A40 + ldr r1, _0807CB08 @ =gUnk_02033A90 + ldr r3, _0807CB0C @ =0x0000047C + adds r0, r0, r3 + ldrb r1, [r1, #3] + adds r0, r0, r1 + ldrb r0, [r0] + asrs r0, r2 + movs r1, #1 + ands r0, r1 + bx lr + .align 2, 0 +_0807CB04: .4byte gUnk_02002A40 +_0807CB08: .4byte gUnk_02033A90 +_0807CB0C: .4byte 0x0000047C + + thumb_func_start GetProgressFlagWithOffset +GetProgressFlagWithOffset: @ 0x0807CB10 + push {lr} + adds r2, r0, #0 + ldr r0, _0807CB20 @ =gUnk_02002C9C + adds r2, r2, r1 + adds r1, r2, #0 + bl sub_0801D5A8 + pop {pc} + .align 2, 0 +_0807CB20: .4byte gUnk_02002C9C + + thumb_func_start sub_0807CB24 +sub_0807CB24: @ 0x0807CB24 + push {lr} + adds r2, r0, #0 + adds r3, r1, #0 + cmp r2, #0x11 + bhi _0807CB84 + lsls r0, r2, #2 + ldr r1, _0807CB38 @ =_0807CB3C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807CB38: .4byte _0807CB3C +_0807CB3C: @ jump table + .4byte _0807CB84 @ case 0 + .4byte _0807CB88 @ case 1 + .4byte _0807CB88 @ case 2 + .4byte _0807CB88 @ case 3 + .4byte _0807CB88 @ case 4 + .4byte _0807CB88 @ case 5 + .4byte _0807CB88 @ case 6 + .4byte _0807CB88 @ case 7 + .4byte _0807CB88 @ case 8 + .4byte _0807CB88 @ case 9 + .4byte _0807CB88 @ case 10 + .4byte _0807CB88 @ case 11 + .4byte _0807CB88 @ case 12 + .4byte _0807CB88 @ case 13 + .4byte _0807CB84 @ case 14 + .4byte _0807CBA0 @ case 15 + .4byte _0807CBAE @ case 16 + .4byte _0807CBBC @ case 17 +_0807CB84: + movs r1, #0 + b _0807CBCA +_0807CB88: + ldr r0, _0807CB9C @ =gUnk_0811E454 + lsls r1, r2, #1 + adds r1, r1, r0 + ldrh r0, [r1] + adds r1, r3, #0 + bl GetProgressFlagWithOffset +_0807CB96: + adds r1, r0, #0 + b _0807CBCA + .align 2, 0 +_0807CB9C: .4byte gUnk_0811E454 +_0807CBA0: + adds r0, r3, #0 + bl sub_0807CA84 + cmp r0, #0 + beq _0807CB96 + movs r0, #1 + b _0807CB96 +_0807CBAE: + adds r0, r3, #0 + bl sub_0807CA84 + movs r1, #0 + cmp r0, #1 + bne _0807CBCA + b _0807CBC8 +_0807CBBC: + adds r0, r3, #0 + bl sub_0807CA84 + movs r1, #0 + cmp r0, #2 + bne _0807CBCA +_0807CBC8: + movs r1, #1 +_0807CBCA: + adds r0, r1, #0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807CBD0 +sub_0807CBD0: @ 0x0807CBD0 + push {lr} + adds r1, r0, #0 + ldr r0, _0807CBE0 @ =gUnk_02033A90 + ldrh r0, [r0, #4] + bl GetProgressFlagWithOffset + pop {pc} + .align 2, 0 +_0807CBE0: .4byte gUnk_02033A90 + + thumb_func_start sub_0807CBE4 +sub_0807CBE4: @ 0x0807CBE4 + push {lr} + ldr r3, _0807CC14 @ =0x000003FF + ands r3, r0 + movs r1, #0xf0 + lsls r1, r1, #6 + ands r1, r0 + lsrs r1, r1, #0xa + adds r2, r1, #1 + movs r1, #0xc0 + lsls r1, r1, #8 + ands r1, r0 + lsrs r1, r1, #0xe + cmp r1, #1 + beq _0807CC22 + cmp r1, #1 + blo _0807CC18 + cmp r1, #2 + bne _0807CC2C + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807CC88 + b _0807CC2E + .align 2, 0 +_0807CC14: .4byte 0x000003FF +_0807CC18: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807CC60 + b _0807CC2E +_0807CC22: + adds r0, r3, #0 + adds r1, r2, #0 + bl sub_0807CC78 + b _0807CC2E +_0807CC2C: + movs r0, #0 +_0807CC2E: + pop {pc} \ No newline at end of file diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index 55c137c5..68e2c8c3 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -2949,7 +2949,7 @@ sub_0807E148: @ 0x0807E148 push {lr} ldr r0, [r1] bl sub_08016998 - bl sub_0804ADDC + bl LoadRoomEntityList pop {pc} .align 2, 0 @@ -63425,7 +63425,7 @@ sub_0809AB04: @ 0x0809AB04 _0809AB22: movs r0, #0x36 movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _0809AB9C @@ -63739,14 +63739,14 @@ sub_0809AD68: @ 0x0809AD68 adds r4, r0, #0 ldrb r0, [r4, #0xa] bl sub_0804B128 - bl sub_0804ADDC + bl LoadRoomEntityList movs r0, #0x17 bl sub_0807CA84 cmp r0, #0 beq _0809AD8A ldrb r0, [r4, #0xb] bl sub_0804B128 - bl sub_0804ADDC + bl LoadRoomEntityList _0809AD8A: pop {r4, pc} @@ -73042,7 +73042,7 @@ sub_0809F5B0: @ 0x0809F5B0 movs r0, #0x24 bl sub_0807CD04 ldr r0, _0809F5D8 @ =gUnk_080DD750 - bl sub_0804ADDC + bl LoadRoomEntityList bl sub_0805E780 _0809F5D4: pop {pc} @@ -77290,7 +77290,7 @@ _080A15BC: ldrsh r1, [r5, r0] subs r1, #1 movs r0, #0x41 - bl sub_0804AA60 + bl CreateEnemy adds r4, r0, #0 cmp r4, #0 beq _080A15E6 @@ -77479,13 +77479,13 @@ _080A171E: str r0, [r7] movs r0, #0x5c movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 str r7, [r1, #0x64] str r1, [r7, #4] movs r0, #0x5d movs r1, #0 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 ldr r4, _080A182C @ =gUnk_03000BF0 movs r2, #0x80 @@ -77504,7 +77504,7 @@ _080A171E: str r1, [r7, #8] movs r0, #0x5d movs r1, #1 - bl sub_0804AA60 + bl CreateEnemy adds r1, r0, #0 movs r2, #0x98 lsls r2, r2, #2 @@ -78485,7 +78485,7 @@ sub_080A1ED0: @ 0x080A1ED0 _080A1F1C: movs r0, #0x60 mov r1, sb - bl sub_0804AA60 + bl CreateEnemy adds r2, r0, #0 cmp r2, #0 beq _080A1FA6 diff --git a/asm/code_080A29BC.s b/asm/code_080A29BC.s index 83f44625..b5e64d69 100644 --- a/asm/code_080A29BC.s +++ b/asm/code_080A29BC.s @@ -3581,7 +3581,7 @@ _080A4544: bne _080A45A2 ldrb r0, [r2, #9] ldrb r1, [r2, #0xa] - bl sub_0804AA60 + bl CreateEnemy _080A4550: adds r4, r0, #0 cmp r4, #0 @@ -16248,7 +16248,7 @@ sub_080AA654: @ 0x080AA654 adds r0, #8 strh r0, [r4, #0xa] adds r0, r4, #0 - bl sub_0804ADF8 + bl CreateEntity pop {r4, r5, pc} .align 2, 0 _080AA688: .4byte gUnk_0812A004 diff --git a/asm/createEntity.s b/asm/createEntity.s new file mode 100644 index 00000000..4dc2fcf5 --- /dev/null +++ b/asm/createEntity.s @@ -0,0 +1,101 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start CreateEntity +CreateEntity: @ 0x0804ADF8 + push {r4, r5, r6, r7, lr} + adds r4, r0, #0 + ldrb r0, [r4] + movs r6, #0xf + ands r6, r0 + ldrb r1, [r4, #1] + movs r0, #0xf0 + ands r0, r1 + cmp r0, #0x50 + bne _0804AE1C + ldrb r1, [r4, #2] + adds r0, r6, #0 + bl sub_0805EB9C + cmp r0, #0 + beq _0804AE1C + movs r0, #0 + b _0804AEAC +_0804AE1C: + adds r0, r6, #0 + bl sub_0805E768 + adds r5, r0, #0 + cmp r5, #0 + beq _0804AEAA + strb r6, [r5, #8] + ldrb r0, [r4, #2] + strb r0, [r5, #9] + ldrb r0, [r4, #3] + strb r0, [r5, #0xa] + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0804AEB0 + ldrb r1, [r4, #1] + movs r7, #0xf0 + adds r0, r7, #0 + ands r0, r1 + cmp r0, #0x10 + beq _0804AEAA + ldrb r0, [r4, #4] + strb r0, [r5, #0xb] + ldr r0, [r4, #4] + movs r1, #0xff + lsls r1, r1, #8 + ands r0, r1 + lsrs r0, r0, #8 + strb r0, [r5, #0xe] + cmp r6, #9 + beq _0804AEAA + adds r0, r5, #0 + adds r1, r4, #0 + bl sub_0804AF0C + ldr r0, [r5, #4] + cmp r0, #0 + beq _0804AEAA + ldrb r0, [r4] + adds r2, r7, #0 + ands r2, r0 + movs r0, #0x10 + ands r0, r2 + cmp r0, #0 + bne _0804AE94 + movs r0, #0x20 + ands r2, r0 + cmp r2, #0 + beq _0804AE88 + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #2 + strb r0, [r1] + b _0804AEAA +_0804AE88: + ldr r0, _0804AEA0 @ =gUnk_03000BF0 + ldrb r1, [r0, #0xf] + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0804AEA4 +_0804AE94: + adds r1, r5, #0 + adds r1, #0x38 + movs r0, #1 + strb r0, [r1] + b _0804AEAA + .align 2, 0 +_0804AEA0: .4byte gUnk_03000BF0 +_0804AEA4: + adds r0, r5, #0 + bl sub_08016A30 +_0804AEAA: + adds r0, r5, #0 +_0804AEAC: + pop {r4, r5, r6, r7, pc} + .align 2, 0 \ No newline at end of file diff --git a/asm/getEmptyEntity.s b/asm/getEmptyEntity.s new file mode 100644 index 00000000..9a58be3d --- /dev/null +++ b/asm/getEmptyEntity.s @@ -0,0 +1,113 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0805E678 +sub_0805E678: @ 0x0805E678 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, _0805E698 @ =gUnk_03003DBC + ldrb r0, [r0] + cmp r0, #0x46 + bhi _0805E6A6 + ldr r4, _0805E69C @ =gUnk_030015A0 + movs r0, #0x99 + lsls r0, r0, #6 + adds r1, r4, r0 +_0805E68E: + ldr r0, [r4] + cmp r0, #0 + bne _0805E6A0 + adds r0, r4, #0 + b _0805E730 + .align 2, 0 +_0805E698: .4byte gUnk_03003DBC +_0805E69C: .4byte gUnk_030015A0 +_0805E6A0: + adds r4, #0x88 + cmp r4, r1 + blo _0805E68E +_0805E6A6: + ldr r4, _0805E6CC @ =gLinkEntity +_0805E6A8: + ldr r0, [r4] + cmp r0, #0 + bge _0805E6D4 + ldrb r1, [r4, #0x10] + movs r0, #0xc + ands r0, r1 + cmp r0, #0 + beq _0805E6D4 + ldr r0, _0805E6D0 @ =gUnk_03003DD0 + ldr r0, [r0, #8] + cmp r4, r0 + beq _0805E6D4 + adds r0, r4, #0 + bl sub_0805E870 + adds r0, r4, #0 + b _0805E730 + .align 2, 0 +_0805E6CC: .4byte gLinkEntity +_0805E6D0: .4byte gUnk_03003DD0 +_0805E6D4: + adds r4, #0x88 + ldr r0, _0805E738 @ =gUnk_03003BE0 + cmp r4, r0 + blo _0805E6A8 + movs r0, #0 + mov ip, r0 + movs r5, #0 + ldr r2, _0805E73C @ =gUnk_03003D70 + movs r0, #0x48 + adds r0, r0, r2 + mov r8, r0 +_0805E6EA: + ldr r4, [r2, #4] + adds r3, r2, #0 + adds r3, #8 + cmp r4, r2 + beq _0805E718 + movs r7, #0x1c + ldr r6, _0805E740 @ =gUnk_03003DD0 +_0805E6F8: + ldrb r0, [r4, #8] + cmp r0, #9 + beq _0805E712 + ldrb r0, [r4, #0x10] + adds r1, r7, #0 + ands r1, r0 + cmp ip, r1 + bhs _0805E712 + ldr r0, [r6, #8] + cmp r0, r4 + beq _0805E712 + mov ip, r1 + adds r5, r4, #0 +_0805E712: + ldr r4, [r4, #4] + cmp r4, r2 + bne _0805E6F8 +_0805E718: + adds r2, r3, #0 + cmp r2, r8 + blo _0805E6EA + cmp r5, #0 + beq _0805E72E + adds r0, r5, #0 + bl sub_0805E7BC + adds r0, r5, #0 + bl sub_0805E870 +_0805E72E: + adds r0, r5, #0 +_0805E730: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0805E738: .4byte gUnk_03003BE0 +_0805E73C: .4byte gUnk_03003D70 +_0805E740: .4byte gUnk_03003DD0 diff --git a/asm/readKeyInput.s b/asm/readKeyInput.s index eca09890..50e63e38 100644 --- a/asm/readKeyInput.s +++ b/asm/readKeyInput.s @@ -19,3 +19,36 @@ ReadKeyInput: @ 0x0801D6C0 _0801D6D4: .4byte 0x04000130 _0801D6D8: .4byte 0x000003FF _0801D6DC: .4byte gUnk_03000FF0 + + + thumb_func_start sub_0801D6E0 +sub_0801D6E0: @ 0x0801D6E0 + push {lr} + adds r2, r0, #0 + ldrh r0, [r2] + adds r3, r1, #0 + bics r3, r0 + strh r3, [r2, #2] + cmp r1, r0 + bne _0801D70A + ldrb r0, [r2, #7] + subs r0, #1 + strb r0, [r2, #7] + lsls r0, r0, #0x18 + cmp r0, #0 + bne _0801D704 + movs r0, #4 + strb r0, [r2, #7] + strh r1, [r2, #4] + b _0801D710 +_0801D704: + movs r0, #0 + strh r0, [r2, #4] + b _0801D710 +_0801D70A: + movs r0, #0x14 + strb r0, [r2, #7] + strh r3, [r2, #4] +_0801D710: + strh r1, [r2] + pop {pc} diff --git a/asm/updateBackgroundRegisters.s b/asm/updateBackgroundRegisters.s new file mode 100644 index 00000000..54aa93bf --- /dev/null +++ b/asm/updateBackgroundRegisters.s @@ -0,0 +1,138 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_08016CF4 +sub_08016CF4: @ 0x08016CF4 + ldr r3, _08016DF0 @ =gUnk_03000F50 + ldrh r1, [r3] + ldrh r0, [r3, #6] + ands r0, r1 + movs r1, #0x80 + lsls r1, r1, #0x13 + strh r0, [r1] + adds r1, #8 + ldrh r0, [r3, #8] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x14] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x20] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x2c] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0xa] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0xc] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x16] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x18] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x22] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x24] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x2e] + strh r0, [r1] + adds r1, #2 + ldrh r0, [r3, #0x30] + strh r0, [r1] + adds r1, r3, #0 + adds r1, #0x38 + ldr r2, _08016DF4 @ =0x04000020 + ldrh r0, [r3, #0x38] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #6] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #8] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xa] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xc] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xe] + strh r0, [r2] + adds r1, #0x10 + adds r2, #2 + ldrh r0, [r1] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #6] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #8] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xa] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xc] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xe] + strh r0, [r2] + adds r1, #0x10 + adds r2, #2 + ldrh r0, [r1] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #2] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #4] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #6] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #8] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xa] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0xc] + strh r0, [r2] + adds r2, #4 + ldrh r0, [r1, #0xe] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0x10] + strh r0, [r2] + adds r2, #2 + ldrh r0, [r1, #0x12] + strh r0, [r2] + bx lr + .align 2, 0 +_08016DF0: .4byte gUnk_03000F50 +_08016DF4: .4byte 0x04000020 diff --git a/asm/upperInn.s b/asm/upperInn.s new file mode 100644 index 00000000..6faf2906 --- /dev/null +++ b/asm/upperInn.s @@ -0,0 +1,96 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0804B938 +sub_0804B938: @ 0x0804B938 + push {lr} + ldr r0, _0804B968 @ =gUnk_02002A40 + ldrb r0, [r0, #8] + cmp r0, #3 + bls _0804B9F2 + movs r0, #0x2b + bl GetProgressFlag + cmp r0, #0 + beq _0804B970 + movs r0, #0x2f + bl GetProgressFlag + cmp r0, #0 + bne _0804B984 + movs r0, #0x30 + bl GetProgressFlag + cmp r0, #0 + bne _0804B9BC + ldr r0, _0804B96C @ =gUnk_080D6C64 + bl LoadRoomEntityList + b _0804B9F2 + .align 2, 0 +_0804B968: .4byte gUnk_02002A40 +_0804B96C: .4byte gUnk_080D6C64 +_0804B970: + movs r0, #0x2c + bl GetProgressFlag + cmp r0, #0 + beq _0804B9A8 + movs r0, #0x2e + bl GetProgressFlag + cmp r0, #0 + beq _0804B990 +_0804B984: + ldr r0, _0804B98C @ =gUnk_080D6D04 + bl LoadRoomEntityList + b _0804B9F2 + .align 2, 0 +_0804B98C: .4byte gUnk_080D6D04 +_0804B990: + movs r0, #0x30 + bl GetProgressFlag + cmp r0, #0 + bne _0804B9D2 + ldr r0, _0804B9A4 @ =gUnk_080D6C94 + bl LoadRoomEntityList + b _0804B9F2 + .align 2, 0 +_0804B9A4: .4byte gUnk_080D6C94 +_0804B9A8: + movs r0, #0x2d + bl GetProgressFlag + cmp r0, #0 + beq _0804B9EC + movs r0, #0x2e + bl GetProgressFlag + cmp r0, #0 + beq _0804B9C8 +_0804B9BC: + ldr r0, _0804B9C4 @ =gUnk_080D6CE4 + bl LoadRoomEntityList + b _0804B9F2 + .align 2, 0 +_0804B9C4: .4byte gUnk_080D6CE4 +_0804B9C8: + movs r0, #0x2f + bl GetProgressFlag + cmp r0, #0 + beq _0804B9E0 +_0804B9D2: + ldr r0, _0804B9DC @ =gUnk_080D6CC4 + bl LoadRoomEntityList + b _0804B9F2 + .align 2, 0 +_0804B9DC: .4byte gUnk_080D6CC4 +_0804B9E0: + ldr r0, _0804B9E8 @ =gUnk_080D6C34 + bl LoadRoomEntityList + b _0804B9F2 + .align 2, 0 +_0804B9E8: .4byte gUnk_080D6C34 +_0804B9EC: + ldr r0, _0804B9F4 @ =gUnk_080D6BF4 + bl LoadRoomEntityList +_0804B9F2: + pop {pc} + .align 2, 0 +_0804B9F4: .4byte gUnk_080D6BF4 \ No newline at end of file diff --git a/include/createEnemy.h b/include/createEnemy.h new file mode 100644 index 00000000..5812baa5 --- /dev/null +++ b/include/createEnemy.h @@ -0,0 +1 @@ +Entity * CreateEnemy(u8, u8); \ No newline at end of file diff --git a/include/entity.h b/include/entity.h index 83d86165..b12fbd09 100644 --- a/include/entity.h +++ b/include/entity.h @@ -1,6 +1,12 @@ -struct Entity { - void *field_0x0; - struct Entity * field_0x4; +#ifndef ENTITY_H +#define ENTITY_H + +#include "global.h" + +typedef struct +{ + u32 *field_0x0; + u32 * field_0x4; u8 type; u8 subtype; u8 parameter1; @@ -21,7 +27,7 @@ struct Entity { u8 palette; u8 spriteOrientation[3]; u16 spritePointer; - uint field_0x20; + u16 field_0x20; s16 nonPlanarMovement; u8 spriteAnimation[3]; u8 ticks; @@ -48,13 +54,13 @@ struct Entity { u8 field_0x44; u8 currentHealth; s16 field_0x46; - void * boundingBox; + u32 * boundingBox; u8 field_0x4c; u8 field_0x4d; u8 field_0x4e; u8 field_0x4f; - void * spritePtr; - struct Entity * attachedEntity; + u32 * spritePtr; + u32 * attachedEntity; u8 field_0x58; u8 field_0x59; u8 frames; @@ -67,27 +73,10 @@ struct Entity { u8 spriteRenderPositionOffset; u8 field_0x63; u8 * field_0x64; - struct Entity * otherEntity; - u8 field_0x6c; - u8 field_0x6d; - u8 field_0x6e; - u8 field_0x6f; - u8 field_0x70; - u8 field_0x71; - u8 field_0x72; - u8 field_0x73; - struct Entity * heldObjectPtr; - u8 field_0x78; - u8 field_0x79; - u8 field_0x7a; - u8 field_0x7b; - u8 field_0x7c; - u8 field_0x7d; - u8 field_0x7e; - u8 field_0x7f; - u8 field_0x80; - u8 field_0x81; - u8 field_0x82; - u8 field_0x83; - int * field_0x84; -}; \ No newline at end of file + u32 * otherEntity; + u8 filler2[8]; + u32 * heldObjectPtr; + u8 filler[12]; + u32 * field_0x84; +} Entity; +#endif \ No newline at end of file diff --git a/include/entityData.h b/include/entityData.h new file mode 100644 index 00000000..10266725 --- /dev/null +++ b/include/entityData.h @@ -0,0 +1,14 @@ +#ifndef ENTITYDATA_H +#define ENTITYDATA_H +#include "global.h" +typedef struct { + u8 entityType; + u8 unk; + u8 entitySubtype; + u8 entityParameter1; + u32 entityParameter2; + u16 xPos; + u16 yPos; + u32 spritePtr; +} EntityData; +#endif \ No newline at end of file diff --git a/include/readKeyInput.h b/include/readKeyInput.h new file mode 100644 index 00000000..3fe77ce6 --- /dev/null +++ b/include/readKeyInput.h @@ -0,0 +1,9 @@ +struct Input { + u16 unk0; + u16 unk1; + u16 unk2; + u8 unk3; + u8 unk4; +}; + +//void ReadKeyInput(void); diff --git a/linker.ld b/linker.ld index 4d78e213..28567bf6 100644 --- a/linker.ld +++ b/linker.ld @@ -293,17 +293,29 @@ SECTIONS { /* C source compiled with interworking */ asm/code_08016B30.o(.text); + asm/updateBackgroundRegisters.o(.text); + asm/code_08016DF8.o(.text); /* C source compiled without interworking */ asm/code.o(.text); + src/readKeyInput.o(.text); asm/readKeyInput.o(.text); - asm/code_0801D6E0.o(.text); + asm/code_0801D714.o(.text); + src/createEnemy.o(.text); + asm/code_0804AA84.o(.text); + src/loadRoomEntityList.o(.text); + asm/createEntity.o(.text); + asm/code_0804AEB0.o(.text); src/loadRoom.o(.text); asm/code_0804B058.o(.text); - asm/InitializeLink.o(.text); + asm/upperInn.o(.text); + asm/code_0804B9F8.o(.text); + asm/initializeLink.o(.text); asm/code_08052620.o(.text); asm/mainLoop.o(.text); asm/code_08055FF4.o(.text); - asm/GetProgressFlag.o(.text); + asm/getEmptyEntity.o(.text); + asm/code_0805E744.o(.text); + src/getProgressFlag.o(.text); asm/code_0807CC3C.o(.text); asm/createFx.o(.text); asm/code_080A29BC.o(.text); diff --git a/src/createEnemy.c b/src/createEnemy.c new file mode 100644 index 00000000..ee49e8fc --- /dev/null +++ b/src/createEnemy.c @@ -0,0 +1,19 @@ +#include "entity.h" +#include "global.h" + +extern Entity * sub_0805E678(); +extern void sub_0805EA2C(Entity *, u8); + +Entity * CreateEnemy(u32 subtype, u32 param1) +{ + Entity *enemy; + + enemy = sub_0805E678(); + if (enemy != NULL) { + enemy->type = 3; + enemy->subtype = subtype; + enemy->parameter1 = param1; + sub_0805EA2C(enemy,4); + } + return enemy; +} \ No newline at end of file diff --git a/src/getProgressFlag.c b/src/getProgressFlag.c new file mode 100644 index 00000000..200167f4 --- /dev/null +++ b/src/getProgressFlag.c @@ -0,0 +1,7 @@ +#include "global.h" + +u32 extern GetProgressFlagWithOffset(u32, u32); + +u32 GetProgressFlag (u32 index) { + return GetProgressFlagWithOffset(0, index); +} \ No newline at end of file diff --git a/src/loadRoom.c b/src/loadRoom.c index 63721fcd..d51a2a35 100644 --- a/src/loadRoom.c +++ b/src/loadRoom.c @@ -1,7 +1,7 @@ #include "global.h" /* called when loading any room */ - extern void sub_0804ADDC(); + extern void LoadRoomEntityList(); extern s32 GetProgressFlag(u32 flag); extern s32* sub_0804B128(u8 unk); extern void sub_0804B058(s32 *unk); @@ -16,9 +16,9 @@ void LoadRoom(void) s32 *dat; sub_0804B128(1); - sub_0804ADDC(); + LoadRoomEntityList(); sub_0804B128(0); - sub_0804ADDC(); + LoadRoomEntityList(); iVar1 = GetProgressFlag(21); if (iVar1 != 0) { diff --git a/src/loadRoomEntityList.c b/src/loadRoomEntityList.c new file mode 100644 index 00000000..d877a1aa --- /dev/null +++ b/src/loadRoomEntityList.c @@ -0,0 +1,12 @@ +#include "global.h" +#include "entityData.h" + +void extern CreateEntity(EntityData *); + +void LoadRoomEntityList(EntityData *listPtr) { + if (listPtr != NULL) { + while (listPtr->entityType != 0xFF) { + CreateEntity(listPtr++); + } + } +} \ No newline at end of file